Browser lacks capabilities required to play.

Upgrade or switch to another browser.

Loading…
Welcome to Degrees of Lewdity <<print StartConfig.version>><<if StartConfig.versionName>> <<print StartConfig.versionName>><</if>>. We're making a few changes to your game so it supports this latest version. Remember to update your save if things appear to be working. <<silently>> <<variablesVersionUpdate>> <<pregnancyVar>> <<setFont>> <<set $runWardrobeSanityChecker to true>> <</silently>> Looks like we're done already. <<link [[Resume|$navigation.stack.last()]]>><<run $navigation.stack.pop()>><</link>>Welcome back to Degrees of Lewdity <<- StartConfig.version>><<if StartConfig.versionName>> <<print StartConfig.versionName>><</if>>. <br><br> You have switched to an older version of the game, from <<- $saveVersions.last()>>, so we just want to confirm you know what you're doing. <br><br> <<link [[Confirm|$passagePrev]]>><</link>> <br> <span class="red">If you want to avoid potential issues, go back to the latest version.</span><<if $intro is undefined>> <<gameStartOnly>> <<if !localStorage.getItem("verifiedAge")>> <<set _linksenabled to Links.enabled>> <<set Links.enabled to false>> <<run $("#story").addClass("gateBlur")>> <<run $("#ui-bar").addClass("gateBlur")>> <<dialog 'Welcome to Degrees of Lewdity' 'class' true>> This work of fiction is only intended for an adult audience. It contains themes of a sexual nature that may be disturbing to some players and is inappropriate for minors. All characters depicted in sexual situations are 18 years or older. By continuing, you agree that you are above the age of 18, and acknowledge that you are willing to be exposed to aspects of the game's writing that include depictions of themes including, but not limited to: <br><br> Rape, Physical and Mental Abuse, Sex with Non-Humans, Forced Pregnancy, Watersports, Asphyxiation, Soft Vore, Sex Slavery, Monsters, Monster People, Mindbreak, Hypnosis, and more. Many of these can be disabled prior to, or after, starting the game. Some story content may require specific fetishes to be enabled. <br><br> <div class="text-align-center"> <label><<checkbox "_verify" false true autocheck>> I confirm that I am 18 years of age or older</label> <br> <div class="m-2"> <<button "Enter">> <<if _verify>> <<set Links.enabled to _linksenabled>> <<run $("#story").removeClass("gateBlur")>> <<run $("#ui-bar").removeClass("gateBlur")>> <<run localStorage.setItem("verifiedAge", true)>> <<dialogclose>> <</if>> <</button>> <br><br> </div> </div> <</dialog>> <</if>> <</if>> <<if $options.images is 1>> <<banner>> <</if>> This work of fiction is only intended for an adult audience. It contains themes of a sexual nature that may be disturbing to some players and is inappropriate for minors. All characters <span class="camouflage text" onclick="V.debug = 1, V.options.debugdisable = 'f', V.options.historyControls = true">de</span>picted in sexual situations are at least 18 years of age. This game and works relating to it should not be shared on any platform that lacks age verification. <br><br> <<set $settingsExitPassage to "Start2">> <<initsettings>> <div id="settingsStart"> <<settingsStart>> </div><<variablesStart2>> Welcome to the alpha of Degrees of Lewdity! <br><br> If you want to avoid trouble, dress modestly and stick to safe, well-lit areas. Nights are particularly dangerous. Dressing lewd will attract attention, both good and bad. <br><br> <<if Time.season is "winter">> The school year starts on the first Monday of January at <<ampm 9 0>>. The bus service is the easiest way to get around town. Don't forget your uniform and backpack! <<elseif Time.season is "spring" or Time.season is "summer">> School starts tomorrow at <<ampm 9 0>>. The bus service is the easiest way to get around town. Don't forget your uniform and backpack! <<else>> The new school year starts tomorrow at <<ampm 9 00>>. The bus service is the easiest way to get around town. Don't forget your uniform and backpack! <</if>> <br><br> <<doVersionCheck>> <<link [[Next|Orphanage Intro]]>><</link>> <br><br> <<if $debug is 1>> These options start with cheats enabled and £5000 <br> <<link [[Standard start|Orphanage Intro]]>><<cheatStart>><</link>> <br> <<link [[School Start|Oxford Street]]>><<cheatStart>><<pass 1 day>><</link>> <br> <<link [[Science Start|Oxford Street]]>><<cheatStart>><<pass 1 day>><<pass 2 hours>><</link>> <br> <<link [[Maths Start|Oxford Street]]>><<cheatStart>><<pass 1 day>><<pass 3 hours>><</link>> <br> <<link [[English Start|Oxford Street]]>><<cheatStart>><<pass 1 day>><<pass 4 hours>><</link>> <br> <<link [[History Start|Oxford Street]]>><<cheatStart>><<pass 1 day>><<pass 6 hours>><</link>> <br> <<link [[Swimming Start|Oxford Street]]>><<cheatStart>><<pass 1 day>><<pass 7 hours>><</link>> <br> <<link [[Testing Room|Testing Room]]>><<cheatStart>><<upperstrip>><<lowerstrip>><<underlowerstrip>><</link>> <br> <<link [[Robin Low Trauma Low Love|Robin's Room Entrance]]>><<cheatStart>><<npc Robin>><<endevent>><<set C.npc.Robin.love to 0>><<set C.npc.Robin.init to 1>><<set $trauma to ($traumamax / 7) * 2>><<trauma 60>><</link>> <br> <<link [[Robin Low Trauma Medium Love|Robin's Room Entrance]]>><<cheatStart>><<npc Robin>><<endevent>><<set C.npc.Robin.love to 50>><<set C.npc.Robin.init to 1>><<set $trauma to ($traumamax / 7) * 2>><<trauma 60>><</link>> <br> <<link [[Robin Low Trauma High Love|Robin's Room Entrance]]>><<cheatStart>><<npc Robin>><<endevent>><<set C.npc.Robin.love to 90>><<set C.npc.Robin.init to 1>><<set $trauma to ($traumamax / 7) * 2>><<trauma 60>><</link>> <br> <<link [[Robin High Trauma Low Love|Robin's Room Entrance]]>><<cheatStart>><<npc Robin>><<endevent>><<set C.npc.Robin.love to 0>><<set C.npc.Robin.init to 1>><<set $trauma to ($traumamax / 7) * 4>><<trauma 60>><</link>> <br> <<link [[Robin High Trauma Medium Love|Robin's Room Entrance]]>><<cheatStart>><<npc Robin>><<endevent>><<set C.npc.Robin.love to 50>><<set C.npc.Robin.init to 1>><<set $trauma to ($traumamax / 7) * 4>><<trauma 60>><</link>> <br> <<link [[Robin High Trauma High Love|Robin's Room Entrance]]>><<cheatStart>><<npc Robin>><<endevent>><<set C.npc.Robin.love to 90>><<set C.npc.Robin.init to 1>><<set $trauma to ($traumamax / 7) * 4>><<trauma 60>><</link>> <br> <<link [[Robin After Paying Police With Money|Robin's Room Entrance]]>><<cheatStart>><<npc Robin>><<endevent>><<set $daily.robin.policePay to 1>><<set C.npc.Robin.init to 1>><<set $trauma to ($traumamax / 7) * 4>><<trauma 60>><</link>> <br> <<link [[Robin After Paying Police With Body|Robin's Room Entrance]]>><<cheatStart>><<npc Robin>><<endevent>><<set $daily.robin.policeBody to 1>><<set C.npc.Robin.init to 1>><<set $trauma to ($traumamax / 7) * 4>><<trauma 60>><</link>> <br> <<link [[Robin's Debt Paid|Robin's Room Entrance]]>><<cheatStart>><<npc Robin>><<endevent>><<set $robinpaid to 1>><<set C.npc.Robin.init to 1>><<set $trauma to ($traumamax / 7) * 4>><<trauma 60>><</link>> <br><br> <<link [[Black Wolf|ForestHuntDebug]]>><<cheatStart>><<npc "Black Wolf">><<ruined>><<endevent>><<set $forestHunter to "Black Wolf">><<set $wolfpacktrust to 10>><</link>> <br><br> <<link [[Winter Start|Orphanage Intro]]>><<set Time.startDate to new DateTime(2022, 12, 4, 7)>><</link>> (Begins the game at the start of winter. For testing.) <br> <<link [[Christmas Start|Orphanage Intro]]>><<npc Kylar>><<person1>><<endevent>><<set C.npc.Kylar.state to "active">><<set Time.startDate to new DateTime(2022, 12, 23, 7)>><<money 50000 "debug">><</link>> (Begins the game two days before Christmas. For testing.) <br> <<link [[Valentine's Day Start|Orphanage Intro]]>><<set Time.startDate to new DateTime(2022, 2, 12, 7)>><</link>> (Begins the game 2 days before Valentine's Day. For testing.) <br> <</if>><<widget "versioninfo">> <h3>Version <<print StartConfig.version>></h3> <<if StartConfig.versionName>> <h4><<print StartConfig.versionName>></h4> <</if>> <<if StartConfig.sneaky>> <h4 class="orange">SNEAKY BUILD</h4> <</if>> <</widget>> <<widget "linkinformation">> <div class="m-2"> <p class="gold m-0">Official website</p> [[vrelnir.com|"https://www.vrelnir.com"]] </div> <div class="m-2"> <p class="gold m-0">Changelog and information</p> [[vrelnir.blogspot.com|"https://vrelnir.blogspot.com"]] </div> <div class="m-2"> <p class="gold m-0">Support development</p> [[https://vrelnir.fanbox.cc/|"https://vrelnir.fanbox.cc/"]] </div> <<if StartConfig.sourceLinkEnabled>> <div class="m-2"> <p class="gold m-0">Source code</p> [[gitgud.io/Vrelnir|"https://gitgud.io/Vrelnir/degrees-of-lewdity"]] </div> <</if>> <<if StartConfig.socialMediaEnabled>> <div class="m-2"> <p class="gold m-0">Official Discord</p> [[discord.gg/VznUtEh|"https://discord.gg/VznUtEh"]] </div> <</if>> <</widget>><<set $demo to $demo or { type: "human", position: "missionary", consent: true, debug: true, }>> <<if $sexstart is 1>> <<set $sexstart to 0>> <div class="combat-init"> <<switch $demo.type>> <<case "human">> <p class="text-muted">Man init</p> <<maninit>> <<case "bestial">> <p class="text-muted">Beast init</p> <<beastCombatInit>> <</switch>> <<if $demo.consent>> <<consensual>> <<set $consensual to 1>> <<else>> <<molested>> <<set $consensual to 0>> <</if>> <<set $position to $demo.position>> </div> <</if>> <<if $demo.type is "tentacles">> <div class="combat-state"> <p class="text-muted">State tentacles</p> <<statetentacles>> </div> <</if>> <div class="combat-effects"> <p class="text-muted">Effects</p> <<effects>> </div> <div class="combat-effectsman"> <p class="text-muted">Effects man</p> <<effectsman>> </div> <div class="combat-man"> <<switch $demo.type>> <<case "human">> <p class="text-muted">Man</p> <<man>> <<case "bestial">> <p class="text-muted">Beast</p> <<beast>> <</switch>> </div> <<if $demo.type.includes("human")>> <div class="combat-state"> <p class="text-muted">State man</p> <<stateman>> </div> <</if>> <div class="combat-actions"> <p class="text-muted">Animate combat</p> <<animateCombat>> </div> <div class="combat-actions"> <p class="text-muted">Actions man</p> <<actionsman>> </div> <span id="next"><<link [[Next|$passage]]>><</link>></span><<nexttext>> <<link [[Bedroom|Bedroom]]>> <<endcombatdemo>> <</link>> <br><br><<set $demo to $demo or { type: "human", position: "missionary", consent: true, debug: true, }>> <<endcombat>> Configure setup for the combat system:<br><br> Type: <div> <label><<radiobutton "$demo.type" "human" autocheck>> Human</label> <label><<radiobutton "$demo.type" "animal" autocheck>> Bestial</label> </div> Consent: <div> <label><<radiobutton "$demo.consent" true autocheck>> Consensual</label> <label><<radiobutton "$demo.consent" false autocheck>> Non-con</label> </div> Debugging: <div> <label><<radiobutton "$demo.debug" true autocheck>> Enabled</label> <label><<radiobutton "$demo.debug" false autocheck>> Disabled</label> </div> <div id="combat-setup"> <<combatsetup>> </div> <<combatdemotools>> <br> <<link [[Start|Combat Demo]]>><<set $sexstart to 1>><</link>> <br> <<link [[Editor|Canvas Combat Editor]]>><<set $sexstart to 1>><</link>> <br><br> <<link [[Bedroom|Bedroom]]>><</link>> <br> <<link [[Clothing store|Shopping Centre Top]]>><</link>> <br> <<link [[Forest store|Forest Shop]]>><</link>><<set $demo to $demo or { type: "human", position: "missionary", consent: true, debug: true, }>> <<if $sexstart is 1>> <<set $sexstart to 0>> <div class="combat-init"> <<switch $demo.type>> <<case "human">> <p class="text-muted">Man init</p> <<maninit>> <<case "bestial">> <p class="text-muted">Beast init</p> <<beastCombatInit>> <</switch>> <<if $demo.consent>> <<consensual>> <<set $consensual to 1>> <<else>> <<molested>> <<set $consensual to 0>> <</if>> <<set $position to $demo.position>> </div> <</if>> <<if $demo.type is "tentacles">> <div class="combat-state"> <p class="text-muted">State tentacles</p> <<statetentacles>> </div> <</if>> <div class="combat-effects"> <p class="text-muted">Effects</p> <<effects>> </div> <div class="combat-effectsman"> <p class="text-muted">Effects man</p> <<effectsman>> </div> <div class="combat-man"> <<switch $demo.type>> <<case "human">> <p class="text-muted">Man</p> <<man>> <<case "bestial">> <p class="text-muted">Beast</p> <<beast>> <</switch>> </div> <<if $demo.type.includes("human")>> <div class="combat-state"> <p class="text-muted">State man</p> <<stateman>> </div> <</if>> <div class="combat-actions"> <p class="text-muted">Animate combat</p> <<animateCombat>> </div> <div class="combat-actions"> <p class="text-muted">Actions man</p> <<actionsman>> </div> <span id="next"><<link [[Next|$passage]]>><</link>></span><<nexttext>> <<link [[Bedroom|Bedroom]]>> <<endcombatdemo>> <</link>> <br><br> <<combatdemotools>> <br> <<if $demo.consent>> <<link [[Set to Rape|$passage]]>> <<set $demo.consent to false>> <<endcombat>> <<set $sexstart to 1>> <</link>> <<else>> <<link [[Set to Consensual|$passage]]>> <<set $demo.consent to true>> <<endcombat>> <<set $sexstart to 1>> <</link>> <</if>> <br><br> <<if $position isnot "wall">> <<link [[Set to missionary|$passage]]>> <<set $demo.position to "missionary">> <<endcombat>> <<set $sexstart to 1>> <</link>> | <<link [[Set to doggy|$passage]]>> <<set $demo.position to "doggy">> <<endcombat>> <<set $sexstart to 1>> <</link>> | <<link [[Don't set position|$passage]]>> <<set $demo.position to 0>> <<endcombat>> <<set $sexstart to 1>> <</link>> | <br><br> <</if>><<link [[Bedroom]]>><</link>> <hr> <!-- "divsex" is cache slot id to preserve layer caches between passages --> <<selectmodel "sexdemo" "divsex">> <<set _modeloptions.animation_speed to "fast">> <<set _modeloptions.position to "doggy">> <<set _modeloptions.penis to "default">> <<set _modeloptions.vagina to true>> <<set _modeloptions.worn.under_lower.index to 1>> <<set _modeloptions.worn.under_lower.state to "totheside">> <<set _modeloptions.worn.under_lower.colour to "blue">> <<set _modeloptions.xray_vaginal_show to true>> <<set _modeloptions.close_vagina_show to true>> <<set _modeloptions.vagina_state to "penetrated">> <<set _modeloptions.vagina_penetrator to "tentacle">> <<set _modeloptions.vagina_penetrator_size to 5>> <<set _modeloptions.vagina_cumming to true>> <<animatemodel "">> <!-- Editor hooks to "last model" --> <<canvasModelEditor>><<widget "animateCombat">> <<if !$options.images or !$options.combatImages>> <<exit>> <</if>> <<if $position is "stalk">> <<exit>> <</if>> <<if $debug>> <<addLayerDialog>> <</if>> <<canvasCombatEditor>> <!-- Centres the inner grid --> <div class="d-flex flex-row flex-centre flex-wrap"> <!-- Organises canvas windows into a grid --> <div class="combat-grid d-grid"> <div class="combat-centre"> <!-- Top row - Contains miniture viewports --> <<if !_crHideCloseImages>> <div class="combat-close d-flex flex-row justify-content-center"> <div class="combat-close-chest"> <<selectmodel "combatCloseChest" "divCloseChest">> <<animatemodel "">> </div> <div class="combat-close-penis"> <<selectmodel "combatClosePenis" "divClosePenis">> <<animatemodel "">> </div> <div class="combat-close-vagina"> <<selectmodel "combatCloseVagina" "divCloseVagina">> <<animatemodel "">> </div> <div class="combat-close-arse"> <<selectmodel "combatCloseArse" "divCloseArse">> <<animatemodel "">> </div> </div> <</if>> <!-- Main canvas container. --> <div class="combat-main d-flex justify-content-center position-relative"> <<selectmodel "lighting" "combat-lighting">> <<configureCombatLighting>> <<rendermodel "lighting position-absolute z-hidden">> <<setup-multi-canvas "combatMain" "combatMainPc" "combatMainPc0">> <<for $_npcIndex, $_npc range $NPCList>> <<if CombatRenderer.npcTypes.includes($_npc.type)>> <<set _metadata to { index: $_npcIndex }>> <<add-multi-canvas "combatMain" "combatMainNpc" `"combatMainNpc" + $_npcIndex` _metadata>> <</if>> <</for>> <<add-multi-canvas "combatMain" "combatMainSwarm" "combatMainSwarm0">> <<reset-multi-canvas "combatMain">> <<start-multi-canvas-rendering "combatMain">> <<set _animspeed to NpcCombatMapper.getNpcAnimationSpeed()>> </div> </div> <<if XrayCombatMapper.isPcBlowjobVisible()>> <div class="combat-xray-penis"> <<selectmodel "combatXrayPenis" "divXrayPenis">> <<animatemodel "w-100 mw-256">> </div> <</if>> <<if XrayCombatMapper.isPcVaginaVisible()>> <div class="combat-xray-vagina"> <<selectmodel "combatXrayVagina" "divXrayVagina">> <<animatemodel "w-100 mw-256">> </div> <</if>> <<if XrayCombatMapper.isPcAnusVisible()>> <div class="combat-xray-arse"> <<selectmodel "combatXrayArse" "divXrayArse">> <<animatemodel "w-100 mw-256">> </div> <</if>> </div> </div> <<if $debug and $options.showCombatTools>> <<set _crOverrides to {}>> <<set _options to T.multiCombatModels.combatMain.models.combatMainPc0.options>> <div class="combat"> <<bindCombatDebugControls>> <details> <summary class="d-flex flex-row justify-content-between"> <span>Layers</span> <<if CombatEditor.layersChecked>> <input type="checkbox" name="layers" checked /> <<else>> <input type="checkbox" name="layers" /> <</if>> </summary> <div @class="'combat-layers ' + (CombatEditor.layersChecked ? 'show-first' : '')"> <<addLayerElements>> </div> </details> <details> <summary>Main options</summary> <label class="d-inline-flex flex-column"> Position: <<listbox "$position" autoselect>> <<optionsfrom setup.positions>> <</listbox>> </label> <<set _crOverrides.legFrontPosition to PlayerCombatMapper.mapPcToLegFrontPosition(_options)>> <label class="d-inline-flex flex-column"> Front leg: <<listbox "_crOverrides.legFrontPosition" autoselect>> <<optionsfrom setup.legPositions>> <</listbox>> </label> <<set _crOverrides.legBackPosition to PlayerCombatMapper.mapPcToLegBackPosition(_options)>> <label class="d-inline-flex flex-column"> Back leg: <<listbox "_crOverrides.legBackPosition" autoselect>> <<optionsfrom setup.legPositions>> <</listbox>> </label> <<set _crOverrides.animFrames to PlayerCombatMapper.getPcAnimationFrameCount(_options)>> <label class="d-inline-flex flex-column"> Frames: <<listbox "_crOverrides.animFrames" autoselect>> <<option "4" 4>> <<option "2" 2>> <</listbox>> </label> <<set _crOverrides.animSpeed to PlayerCombatMapper.getPcAnimationSpeed(_options)>> <label class="d-inline-flex flex-column"> Speed: <<listbox "_crOverrides.animSpeed" autoselect>> <<option "VFast" "vfast">> <<option "Fast" "fast">> <<option "Mid" "mid">> <<option "Slow" "slow">> <<option "Idle" "idle">> <</listbox>> </label> </details> <details> <summary>Clothing options</summary> <div class="d-grid grid-auto-2 gap-1"> <<for _slot range Object.keys($worn)>> <<set _wornSetup to CombatRenderer.getClothingSetupBySlot(_slot)>> <<set _source to CombatRenderer.getSourceClothing(_slot, _wornSetup)>> <<set _worn to $worn[_slot]>> <<capture _worn, _wornSetup, _source>> <div class="d-flex flex-column border rounded justify-content-space-between p-1"> <label class="d-flex flex-row justify-content-space-between"> <<= _slot>> </label> <label class="d-flex flex-row justify-content-space-between"> <<= _wornSetup.name_cap>> </label> <label class="d-flex flex-row justify-content-space-between"> <<= _source.variable>> </label> <label class="d-flex flex-row justify-content-space-between"> State: <<listbox "_worn.state" autoselect>> <<optionsfrom setup.clothingStates>> <</listbox>> </label> </div> <</capture>> <</for>> </div> </details> </div> <</if>> <</widget>> <<widget "endcombatdemo">> <<run delete $demo>> <<endcombat>> <</widget>> <<widget "combatsetup">> <div class="d-flex flex-horizontal flex-wrap gap-2 my-2"> <<for _i = 0; _i lt $NPCList.length; _i++>> <<set _npc to $NPCList[_i]>> <<if _npc.type eq null>> <<continue>> <</if>> <<capture _npc>> <div class="p-2 border border-primary"> Type: <<- _npc.type>> Sex: <<- _npc.gender>> Appearance: <<- _npc.pronoun>> </div> <</capture>> <</for>> </div> <div class="d-flex flex-vertical"> <<button "Add human">> <<generateNPC `$NPCList.countWith(a => a.type) + 1`>> <<replace "#combat-setup">> <<combatsetup>> <</replace>> <</button>> <<listbox "_animalType" autoselect>> <<optionsfrom $BeastList>> <</listbox>> <<button `"Set " + _animalType`>> <<beastNEWinit `$NPCList.countWith(a => a.type) + 1` _animalType>> <<replace "#combat-setup">> <<combatsetup>> <</replace>> <</button>> <<button "Clear">> <<endevent>> <<replace "#combat-setup">> <<combatsetup>> <</replace>> <</button>> </div> <</widget>> <<widget "combatdemotools">> Tools: <div> <div id="tools-random-peek"> Next random: <<- State.prng.peek(1)>> </div> <<button "Randomly shift RNG">> <<script>> const iterations = Math.trunc(Math.random() * 1000); for (let index = 0; index < iterations; index++) { State.random(); } <</script>> <<replace "#tools-random-peek">> Next random: <<- State.prng.peek(1)>> <</replace>> <</button>> </div> <</widget>>/*Add new hairstyles here. Please put in alphabetical order! alt: Alternate hairstyle to use for certain styles of headwear alt_head_type: Type of headwear that alt style is used for*/ /*Side Styles*/ <<widget "init_hairsides">> <<set setup.hairstyles.sides to [ {name: "natural", name_cap: "Natural", variable: "default", hasCombatImg: true, type: ["loose", "wavy"], shop: ["mirrorhair"], }, {name: "afro", name_cap: "Afro", variable: "fro", type: ["textured", "loose"], shop: ["mirrorhair"], }, {name: "afro pouf", name_cap: "Afro Pouf", variable: "afro pouf", type: ["textured", "ponytail"], shop: ["mirrorhair"], }, {name: "afro puffs", name_cap: "Afro Puffs", variable: "afro puffs", type: ["textured", "pigtails"], shop: ["mirrorhair"], }, {name: "all down", name_cap: "All Down", variable: "all down", type: ["loose"], shop: ["mirrorhair"], }, {name: "bedhead", name_cap: "Bedhead", variable: "bedhead", type: ["loose"], shop: ["mirrorhair"], }, {name: "braid left", name_cap: "Braid Left", variable: "braid left", type: ["braids"], shop: ["mirrorhair"], }, {name: "braid right", name_cap: "Braid Right", variable: "braid right", type: ["braids"], shop: ["mirrorhair"], }, {name: "bubble tails", name_cap: "Bubble Tails", variable: "bubble tails", type: ["pigtails"], shop: ["mirrorhair"], }, {name: "crescent tails", name_cap: "Crescent Tails", variable: "crescent tails", type: ["pigtails"], shop: ["mirrorhair"], }, {name: "curly", name_cap: "Curly", variable: "curl", type: ["loose", "curly"], shop: ["mirrorhair"], }, {name: "curly pigtails", name_cap: "Curly Pigtails", variable: "curly pigtails", type: ["pigtails", "curly"], alt: "shaved", alt_head_type: ["veil"], shop: ["mirrorhair"], }, {name: "curly side up", name_cap: "Curly Side Up", variable: "curly side up", type: ["curly", "loose"], shop: ["mirrorhair"], }, {name: "defined curls", name_cap: "Defined Curls", variable: "defined curl", type: ["loose", "curly"], shop: ["mirrorhair"], }, {name: "draggletail", name_cap: "Draggletail", variable: "messy ponytail", type: ["ponytail"], shop: ["mirrorhair"], }, {name: "dreads", name_cap: "Dreads", variable: "dreads", type: ["braids", "textured"], shop: ["mirrorhair"], }, {name: "drill ringlets", name_cap: "Drill Ringlets", variable: "drill ringlets", type: ["curly", "loose"], shop: ["mirrorhair"], }, {name: "flat ponytail", name_cap: "Flat Ponytail", variable: "flat ponytail", type: ["ponytail", "sleek"], shop: ["mirrorhair"], }, {name: "fluffy ponytail", name_cap: "Fluffy Ponytail", variable: "fluffy ponytail", type: ["ponytail", "wavy"], alt: "shaved", alt_head_type: ["veil"], shop: ["mirrorhair"], }, {name: "french bob", name_cap: "French Bob", variable: "french bob", type: ["loose", "sleek", "short"], shop: ["mirrorhair"], }, {name: "half-up", name_cap: "Half-up", variable: "half-up", type: ["loose"], alt: "all down", alt_head_type: ["hat", "veil"], shop: ["mirrorhair"], }, {name: "half-up twintail", name_cap: "Half-up Twintail", variable: "half up twintail", type: ["loose", "pigtails"], alt: "princess wave", alt_head_type: ["hat", "veil"], shop: ["mirrorhair"], }, {name: "heart braids", name_cap: "Heart Braids", variable: "heart braid", type: ["braids", "loose", "wavy"], shop: ["mirrorhair"], }, {name: "jellyfish ponytail", name_cap: "Jellyfish Ponytail", variable: "jellyfish ponytail", type: ["ponytail", "curly"], shop: ["mirrorhair"], }, {name: "jellyfish twintails", name_cap: "Jellyfish Twintails", variable: "jellyfish twintails", type: ["pigtails", "curly"], shop: ["mirrorhair"], }, {name: "layered bob", name_cap: "Layered Bob", variable: "layered bob", hasCombatImg: true, type: ["short", "loose", "sleek"], shop: ["mirrorhair"], }, {name: "left fishtail", name_cap: "Left Fishtail", variable: "left fishtail", type: ["loose", "braids"], shop: ["mirrorhair"], }, {name: "loop braids", name_cap: "Loop Braids", variable: "loop braid", type: ["braids", "pigtails"], alt: "shaved", alt_head_type: ["veil"], shop: ["mirrorhair"], }, {name: "loose", name_cap: "Loose", variable: "loose", type: ["loose", "sleek"], shop: ["mirrorhair"], }, {name: "low tails", name_cap: "Low Tails", variable: "low tails", type: ["pigtails"], shop: ["mirrorhair"], }, {name: "messy", name_cap: "Messy", variable: "messy", type: ["short"], shop: ["mirrorhair"], }, {name: "messy bun", name_cap: "Messy Bun", variable: "messy bun", type: ["buns"], shop: ["mirrorhair"], }, {name: "neat", name_cap: "Neat", variable: "neat", type: ["loose", "sleek"], shop: ["mirrorhair"], }, {name: "pigtails", name_cap: "Pigtails", variable: "pigtails", type: ["pigtails", "sleek"], shop: ["mirrorhair"], }, {name: "ponytail", name_cap: "Ponytail", variable: "ponytail", type: ["ponytail", "sleek"], shop: ["mirrorhair"], }, {name: "princess twintails", name_cap: "Princess Twintails", variable: "princess twintails", alt: "shaved", alt_head_type: ["veil"], type: ["wavy", "pigtails"], shop: ["mirrorhair"], }, {name: "princess wave", name_cap: "Princess Wave", variable: "princess wave", type: ["loose", "wavy"], shop: ["mirrorhair"], }, {name: "ribbon tail", name_cap: "Ribbon Tail", variable: "ribbon tail", type: ["loose"], alt: "shaved", alt_head_type: ["veil"], shop: ["mirrorhair"], }, {name: "right fishtail", name_cap: "Right Fishtail", variable: "right fishtail", type: ["loose", "braids"], shop: ["mirrorhair"], }, {name: "ruffled", name_cap: "Ruffled", variable: "ruffled", type: ["loose", "wavy"], shop: ["mirrorhair"], }, {name: "sailor buns", name_cap: "Sailor Buns", variable: "sailor buns", type: ["buns", "loose"], alt: "shaved", alt_head_type: ["veil"], shop: ["mirrorhair"], }, {name: "scorpion tails", name_cap: "Scorpion Tails", variable: "scorpion tails", type: ["pigtails"], alt: "bubble tails", alt_head_type: ["veil"], shop: ["mirrorhair"], }, {name: "shaved", name_cap: "Shaved", variable: "shaved", type: ["short"], shop: ["mirrorhair"], }, {name: "short", name_cap: "Short", variable: "short", hasCombatImg: true, type: ["short"], shop: ["mirrorhair"], }, {name: "short spiky", name_cap: "Short Spiky", variable: "short spiky", type: ["loose", "short"], shop: ["mirrorhair"], }, {name: "straight bob", name_cap: "Straight bob", variable: "straight bob", type: ["loose", "sleek", "short"], shop: ["mirrorhair"], }, {name: "sidecut", name_cap: "Sidecut", variable: "sidecut", type: ["loose", "curly"], shop: ["mirrorhair"], }, {name: "sidetail left", name_cap: "Sidetail Left", variable: "sidetail left", type: ["ponytail"], shop: ["mirrorhair"], }, {name: "sidetail right", name_cap: "Sidetail Right", variable: "sidetail right", type: ["ponytail"], shop: ["mirrorhair"], }, {name: "sleek", name_cap: "Sleek", variable: "sleek", type: ["loose", "sleek"], shop: ["mirrorhair"], }, {name: "space buns", name_cap: "Space Buns", variable: "space buns", type: ["buns", "loose", "sleek"], shop: ["mirrorhair"], }, {name: "straight", name_cap: "Straight", variable: "straight", type: ["loose", "sleek"], shop: ["mirrorhair"], }, {name: "swept left", name_cap: "Swept Left", variable: "swept left", type: ["loose", "sleek"], shop: ["mirrorhair"], }, {name: "thick pigtails", name_cap: "Thick Pigtails", variable: "thick pigtails", type: ["pigtails"], alt: "shaved", alt_head_type: ["veil"], shop: ["mirrorhair"], }, {name: "thick ponytail", name_cap: "Thick Ponytail", variable: "thick ponytail", type: ["ponytail"], alt: "shaved", alt_head_type: ["veil"], shop: ["mirrorhair"], }, {name: "thick sidetail", name_cap: "Thick Sidetail", variable: "thick sidetail", type: ["ponytail"], alt: "shaved", alt_head_type: ["veil"], shop: ["mirrorhair"], }, {name: "thick twintails", name_cap: "Thick Twintails", variable: "thick twintails", type: ["pigtails"], alt: "shaved", alt_head_type: ["veil"], shop: ["mirrorhair"], }, {name: "twin braids", name_cap: "Twin Braids", variable: "twin braids", type: ["braids"], shop: ["mirrorhair"], }, {name: "twin fishtails", name_cap: "Twin Fishtails", variable: "twin fishtails", type: ["loose", "braids"], shop: ["mirrorhair"], }, {name: "twintails", name_cap: "Twintails", variable: "twintails", type: ["pigtails"], shop: ["mirrorhair"], }, {name: "twin double braids", name_cap: "Twin Double Braids", variable: "twin double braids", type: ["braids"], shop: ["mirrorhair"], }, ]>> <</widget>> /*Fringe Styles */ <<widget "init_hairfringe">> <<set setup.hairstyles.fringe to [ {name: "natural", name_cap: "Natural", variable: "default", type: ["short"], shop: ["mirrorhair"], }, {name: "aerial", name_cap: "Aerial", variable: "aerial", type: ["sleek"], shop: ["mirrorhair"], }, {name: "blunt locks", name_cap: "Blunt Locks", variable: "blunt locks", type: ["loose", "sleek"], shop: ["mirrorhair"], }, {name: "bowl cut", name_cap: "Bowl Cut", variable: "bowl", type: ["loose", "sleek"], shop: ["mirrorhair"], }, {name: "bedhead", name_cap: "Bedhead", variable: "bedhead", type: ["short"], shop: ["mirrorhair"], }, {name: "buzzcut", name_cap: "Buzzcut", variable: "buzzcut", hasCombatImg: true, type: ["short"], shop: ["mirrorhair"], }, {name: "curtain", name_cap: "Curtain", variable: "curtain", hasCombatImg: true, type: ["short", "sleek"], shop: ["mirrorhair"], }, {name: "drill ringlets", name_cap: "Drill Ringlets", variable: "drill ringlets", type: ["curly", "loose"], shop: ["mirrorhair"], }, {name: "dreadlocks", name_cap: "Dreadlocks", variable: "dreadlocks", type: ["textured", "short"], shop: ["mirrorhair"], }, {name: "dread bun", name_cap: "Dread Bun", variable: "dread bun", type: ["textured", "buns"], shop: ["mirrorhair"], }, {name: "emo", name_cap: "Emo", variable: "emo", type: ["wavy", "short"], shop: ["mirrorhair"], }, {name: "emo left", name_cap: "Emo Left", variable: "emo left", type: ["wavy", "short"], shop: ["mirrorhair"], }, {name: "emo right", name_cap: "Emo Right", variable: "emo right", type: ["wavy", "short"], shop: ["mirrorhair"], }, {name: "flat", name_cap: "Flat", variable: "flat", type: ["short", "sleek"], shop: ["mirrorhair"], }, {name: "framed", name_cap: "Framed", variable: "framed", type: ["loose", "sleek"], shop: ["mirrorhair"], }, {name: "fro", name_cap: "Fro", variable: "fro", type: ["textured", "loose"], shop: ["mirrorhair"], }, {name: "front braids", name_cap: "Front Braids", variable: "front braids", type: ["braids", "pigtails"], shop: ["mirrorhair"], }, {name: "hime", name_cap: "Hime", variable: "hime", hasCombatImg: true, type: ["loose", "sleek"], shop: ["mirrorhair"], }, {name: "loose", name_cap: "Loose", variable: "loose", type: ["loose"], shop: ["mirrorhair"], }, {name: "messy", name_cap: "Messy", variable: "messy", type: ["short"], shop: ["mirrorhair"], }, {name: "messy curls", name_cap: "Messy curls", variable: "messy curls", type: ["short", "curly"], shop: ["mirrorhair"], }, {name: "middle part", name_cap: "Middle part", variable: "middlepart", type: ["sleek"], shop: ["mirrorhair"], }, {name: "milkmaid braid", name_cap: "Milkmaid braid", variable: "milkmaid", type: ["braid"], shop: ["mirrorhair"], }, {name: "mohawk", name_cap: "Mohawk", variable: "mohawk", hasCombatImg: true, type: ["short"], shop: ["mirrorhair"], }, {name: "overgrown", name_cap: "Overgrown", variable: "overgrown", type: ["short", "sleek"], shop: ["mirrorhair"], }, {name: "parted", name_cap: "Parted", variable: "parted", type: ["short", "sleek"], shop: ["mirrorhair"], }, {name: "princess wave", name_cap: "Princess Wave", variable: "princess wave", type: ["loose", "wavy"], shop: ["mirrorhair"], }, {name: "quiff", name_cap: "Quiff", variable: "quiff", type: ["short", "sleek"], shop: ["mirrorhair"], }, {name: "ringlet curls", name_cap: "Ringlet Curls", variable: "ringlet curl", type: ["curly", "loose"], shop: ["mirrorhair"], }, {name: "ringlets", name_cap: "Ringlets", variable: "ringlets", type: ["curly", "loose"], shop: ["mirrorhair"], }, {name: "ruffled", name_cap: "Ruffled", variable: "ruffled", type: ["loose", "wavy"], shop: ["mirrorhair"], }, {name: "sectioned", name_cap: "Sectioned", variable: "sectioned", type: ["straight"], shop: ["mirrorhair"], }, {name: "sidecut", name_cap: "Sidecut", variable: "sidecut", type: ["loose", "curly"], shop: ["mirrorhair"], }, {name: "side braid", name_cap: "Side Braid", variable: "sideswept braid", type: ["braids", "curly"], shop: ["mirrorhair"], }, {name: "side-pinned", name_cap: "Side-pinned", variable: "side-pinned", type: ["loose", "sleek"], shop: ["mirrorhair"], }, {name: "short air vents", name_cap: "Short Air Vents", variable: "short air vents", type: ["loose", "sleek"], shop: ["mirrorhair"], }, {name: "sleek", name_cap: "Sleek", variable: "sleek", type: ["loose", "sleek"], shop: ["mirrorhair"], }, {name: "split", name_cap: "Split", variable: "split", type: ["loose", "sleek"], shop: ["mirrorhair"], }, {name: "straight", name_cap: "Straight", variable: "straight", type: ["loose", "sleek"], shop: ["mirrorhair"], }, {name: "straight curls", name_cap: "Straight Curls", variable: "straight curl", type: ["curly", "short"], shop: ["mirrorhair"], }, {name: "straight tails", name_cap: "Straight Tails", variable: "straight tails", type: ["loose", "sleek"], shop: ["mirrorhair"], }, {name: "swept back", name_cap: "Swept Back", variable: "swept back", type: ["short", "sleek"], shop: ["mirrorhair"], }, {name: "swept left", name_cap: "Swept Left", variable: "swept left", type: ["short", "sleek"], shop: ["mirrorhair"], }, {name: "thin flaps", name_cap: "Thin Flaps", variable: "thin flaps", type: ["loose"], shop: ["mirrorhair"], }, {name: "tied back", name_cap: "Tied Back", variable: "tied back", type: ["short", "sleek"], shop: ["mirrorhair"], }, {name: "trident", name_cap: "Trident", variable: "trident", type: ["loose", "sleek"], shop: ["mirrorhair"], }, {name: "wide flaps", name_cap: "Wide Flaps", variable: "wide flaps", hasCombatImg: true, type: ["loose", "sleek"], shop: ["mirrorhair"], }, {name: "loose antenna", name_cap: "Loose Antenna", variable: "loose antenna", type: ["loose"], shop: ["mirrorhair"], }, ]>> <</widget>> <<widget "hair_data">> <<set setup.hairstyles to {}>> <<init_hairfringe>> <<init_hairsides>> <<set setup.hairTraits = [...new Set(Object.keys(setup.hairstyles).flatMap(x => setup.hairstyles[x]).flatMap(x => x.type))]>> <</widget>><<widget "npcList">> <<script>> const NPCList = []; for (let idx = 0; idx < 6; ++idx) { NPCList.push(clone(setup.baseNPC)); /* carry over values from existing generated npcs and add current index */ /* uses .description to detect if npc is not a stub, in case of trouble try another variable */ if (V.NPCList && V.NPCList[idx].description) { const npc = NPCList[idx]; npc.index = idx; Object.assign(npc, V.NPCList[idx]); if (!npc.type) npc.type = "human"; } } V.NPCList = clone(NPCList); <</script>> /* should this even be here? */ <<set $BeastList to ["dog","cat","pig","wolf","dolphin","lizard","bear","boar","creature","horse","fox","hawk","cow","spider"]>> <<set $npcListVersion to 3>> <</widget>><<widget "npcNamed">> <!-- To add new Named NPCs, add the new NPC name to setup.NPCNameList in variables-static.twee, and tag values to end. The rest of the code should automatically scope based on the size of the list. --> <!-- NPC descriptions are set as names, and their titles are being established for compatibility with general NPCs --> <<if $npcNamedVersion is 1>> <<set _tempNPCName to clone($NPCName)>> <</if>> <<set $NPCName = []>> <<for _npc range setup.NPCNameList>> <<run $NPCName.push(clone(setup.baseNNPC))>> <</for>> <<set $NPCNameList to setup.NPCNameList>> /* temporary compatibility layer before full C.npc conversion */ <!-- Draft default pronoun list. Random selection is part of initNPCgender widget --> /% <<set _pro to ["m","f","f","m","m","m","m","m","f","f","m","m","f","m","f","m","m","m","f","m","m","m","m","m","f","m","m"]>> %/ <<set _tit to ["businessperson", "caretaker", "brothel owner", "dance coach", "club owner", "English teacher", "hunter", "shopkeeper", "doctor", "pious", "loner", "criminal", "headteacher", "swimming teacher", "sewer dweller", "maths teacher", "orphan", "cafe owner", "science teacher", "bully", "history teacher", "alpha", "photographer", "mayor", "farmer", "farmhand", "terror", "smuggler", "faithful", "reflection", "pirate"]>> <<set _ins to ["weak", "weak", "looks", "ethics", "ethics", "ethics", "looks", "weak", "skill", "ethics", "weak", "skill", "skill", "ethics", "weak", "ethics", "ethics", "ethics", "ethics", "looks", "skill", "weak", "skill", "looks", "looks", "weak", "looks", "ethics", "skill", "looks", "skill"]>> <!-- Type needs to conform to beast type: wolf, dog, etc. --> <<set _tpe to ["human", "human", "human", "human", "human", "human", "human", "human", "human", "human", "human", "human", "human", "human", "human", "human", "human", "human", "human", "human", "human", "wolf", "human", "human", "human", "human", "hawk", "human", "human", "human", "human"]>> <<set _swi to ["a","a","a","a","a","a","a","t","a","a","t","a","a","a","a","a","t","a","a","t","a","a","a","a","a","t","a","a","t","a","a"]>> <<for _i to 0; _i lt $NPCName.length; _i++>> <<set $NPCName[_i].nam to $NPCNameList[_i]>> <<set $NPCName[_i].description to $NPCNameList[_i]>> <<set $NPCName[_i].title to _tit[_i]>> <<set $NPCName[_i].chastity to {penis:"", vagina:"", anus:""}>> <<set $NPCName[_i].insecurity to _ins[_i]>> <<if _swi[_i] is "t">> <<set $NPCName[_i].adult to 0>> <<set $NPCName[_i].teen to 1>> <<else>> <<set $NPCName[_i].adult to 1>> <<set $NPCName[_i].teen to 0>> <</if>> <<set $NPCName[_i].type to _tpe[_i]>> <<set $NPCName[_i].purity to 0>> <<set $NPCName[_i].corruption to 0>> <<if _tpe[_i] is "wolf">> <<set $NPCName[_i].claws to "claws">> <!-- Adjusted Wolf and Hawk for the changes converting $claws to .claws --> <<elseif _tpe[_i] is "hawk">> <<set $NPCName[_i].claws to "talons">> <</if>> <</for>> <<generateNPCNameHairAndEyeColors true>> <<npcPregnancyUpdater>> <</widget>> <<widget "npcNamedUpdate">>/*Applies new system to old saves and carries over relevant variables.*/ <<if $npcNamedVersion isnot 2>><!-- Needed for compatibility with V2.5 and prior saves --> <<npcNamed>> <<for _e to 0; _e lt $NPCNameList.length; _e++>> <<set _lowerCaseName to $NPCNameList[_e].toLowerCase()>> <<set _upperCaseName to $NPCNameList[_e]>> <<if $npcNamedVersion is undefined>> /* .init and .pronoun can't be set within an easy loop */ <<if V['init' + _lowerCaseName] isnot undefined>> <<set C.npc[_upperCaseName].init to V['init' + _lowerCaseName]>> <<run delete V['init' + _lowerCaseName]>> <</if>> <<if V[_lowerCaseName + 'gender'] isnot undefined>> <<set C.npc[_upperCaseName].pronoun to V[_lowerCaseName + 'gender']>> /* do not unset old gender, it is still needed within a loop */ <</if>> /* set new npc attribute vars and remove old ones in a loop */ <<for _attribute range ["trust", "love", "dom", "lust", "rage", "state", "trauma", "gender", "penissize", "penisdesc", "penis", "vagina"]>> <<if V[_lowerCaseName + _attribute] isnot undefined>> <<set C.npc[_upperCaseName][_attribute] to V[_lowerCaseName + _attribute]>> <<run delete V[_lowerCaseName + _attribute]>> <</if>> <</for>> <<elseif $npcNamedVersion is 1>> <<if V[_lowerCaseName + 'gender'] isnot undefined>> <<set C.npc[_upperCaseName].pronoun to V[_lowerCaseName + 'gender']>> <<run delete V[_lowerCaseName + 'gender']>> <</if>> <<if V[_lowerCaseName + 'penis'] isnot undefined>> <<set C.npc[_upperCaseName].penis to V[_lowerCaseName + 'penis']>> <<run delete V[_lowerCaseName + 'penis']>> <</if>> <<if V[_lowerCaseName + 'vagina'] isnot undefined>> <<set C.npc[_upperCaseName].vagina to V[_lowerCaseName + 'vagina']>> <<run delete V[_lowerCaseName + 'vagina']>> <</if>> <</if>> <</for>> <<set $npcNamedVersion to 2>> <<updateNewNamedNpcs>> <</if>> <</widget>> <<widget "newNamedNpc">> <<if _args[0]>> <<if !$NPCNameList.includes(_args[0].nam)>> <<set _values to clone(_args[0])>> <<set _valueKeys to Object.keys(_values)>> <<set _nnpc to clone(setup.baseNNPC)>> <<for _i to 0; _i lt _valueKeys.length; _i++>> <<set _nnpc[_valueKeys[_i]] to _values[_valueKeys[_i]]>> <</for>> <<if !_nnpc.description>><<set _nnpc.description to _nnpc.nam>><</if>> <<set $NPCName.push(clone(_nnpc))>> <<set $NPCNameList.push(clone(_nnpc.nam))>> <<initNNPCVirginity $NPCName.length-1>> <<initnpcgendersingle $NPCName.length-1>> <</if>> <</if>> <</widget>> <<widget "updateNewNamedNpcs">> <<if $npcListVersion gte 1>> <<set _newNNPCs to { "blackwolf": {nam : "Black Wolf", title: "alpha", insecurity: "weak", adult: 1, type: "wolf", claws: "claws"}, "niki": {nam : "Niki", title: "photographer", insecurity: "skill", adult: 1}, "quinn": {nam : "Quinn", title: "mayor", insecurity: "looks", adult: 1}, "remy": {nam : "Remy", title: "farmer", insecurity: "looks", adult: 1}, "alex": {nam : "Alex", title: "farmhand", insecurity: "weak", teen: 1}, "greathawk": {nam : "Great Hawk", title: "terror", insecurity: "looks", adult: 1, type: "hawk", claws: "talons"}, "wren": {nam : "Wren", title: "smuggler", insecurity: "ethics", adult: 1}, "sydney": {nam : "Sydney", title: "faithful", insecurity: "skill", teen: 1}, "ivorywraith": {nam : "Ivory Wraith", title: "reflection", insecurity: "looks", adult: 1}, "zephyr": {nam : "Zephyr", title: "captain", insecurity: "skill", adult: 1} }>> <<for _npc range Object.keys(_newNNPCs)>> <<if !$NPCNameList.includes(_newNNPCs[_npc].nam)>> <<newNamedNpc _newNNPCs[_npc]>> <<set _npcsAdded to true>> <</if>> <</for>> <<if _npcsAdded is true>> <<generateNPCNameHairAndEyeColors>> <</if>> <</if>> <</widget>> <<widget "generateNPCNameHairAndEyeColors">> <<for _i to 0; _i lt $NPCName.length; _i++>> <<switch $NPCName[_i].nam>> <<case "Whitney">> <<if $NPCName[_i].eyeColour is 0 or $NPCName[_i].eyeColour is undefined>> <<set $NPCName[_i].eyeColour to ["purple","dark blue","light blue","amber","hazel","green","red","pink","grey", "light grey", "lime green"].pluck()>> <</if>> <<if $NPCName[_i].hairColour is 0 or $NPCName[_i].hairColour is undefined or _args[0] is "default">> <<set $NPCName[_i].hairColour to "blond">> <</if>> <<case "Jordan">> <<if $NPCName[_i].eyeColour is 0 or $NPCName[_i].eyeColour is undefined or _args[0] is "default">> <<set $NPCName[_i].eyeColour to "light blue">> <<set $NPCName[_i].hairColour to "blond">> <</if>> <<case "Leighton">> <<if $NPCName[_i].eyeColour is 0 or $NPCName[_i].eyeColour is undefined or _args[0] is "default">> <<set $NPCName[_i].eyeColour to "green">> <<set $NPCName[_i].hairColour to "black">> <</if>> <<case "Landry">> <<if $NPCName[_i].eyeColour is 0 or $NPCName[_i].eyeColour is undefined>> <<set $NPCName[_i].eyeColour to ["purple","dark blue","light blue","amber","hazel","green","red","pink","grey", "light grey", "lime green"].pluck()>> <</if>> <<if $NPCName[_i].hairColour is 0 or $NPCName[_i].hairColour is undefined or _args[0] is "default">> <<set $NPCName[_i].hairColour to "black">> <</if>> <<case "Darryl">> <<if $NPCName[_i].eyeColour is 0 or $NPCName[_i].eyeColour is undefined>> <<set $NPCName[_i].eyeColour to ["purple","dark blue","light blue","amber","hazel","green","red","pink","grey", "light grey", "lime green"].pluck()>> <</if>> <<if $NPCName[_i].hairColour is 0 or $NPCName[_i].hairColour is undefined or _args[0] is "default">> <<set $NPCName[_i].hairColour to "brown">> <</if>> <<case "River">> <<if $NPCName[_i].eyeColour is 0 or $NPCName[_i].eyeColour is undefined or _args[0] is "default">> <<set $NPCName[_i].eyeColour to "light blue">> <<set $NPCName[_i].hairColour to "brown">> <</if>> <<case "Kylar" "Bailey">> <<if $NPCName[_i].eyeColour is 0 or $NPCName[_i].eyeColour is undefined>> <<set $NPCName[_i].eyeColour to ["purple","dark blue","light blue","amber","hazel","green","red","pink","grey", "light grey", "lime green"].pluck()>> <</if>> <<if $NPCName[_i].hairColour is 0 or $NPCName[_i].hairColour is undefined or _args[0] is "default">> <<set $NPCName[_i].hairColour to ["black","brown"].pluck()>> <</if>> <<case "Gwylan">> <<if $NPCName[_i].eyeColour is 0 or $NPCName[_i].eyeColour is undefined>> <<set $NPCName[_i].eyeColour to "green">> <</if>> <<if $NPCName[_i].hairColour is 0 or $NPCName[_i].hairColour is undefined or _args[0] is "default">> <<set $NPCName[_i].hairColour to "mousy">> <</if>> <<case "Doren">> <<if $NPCName[_i].eyeColour is 0 or $NPCName[_i].eyeColour is undefined>> <<set $NPCName[_i].eyeColour to ["purple","dark blue","light blue","amber","hazel","green","red","pink","grey", "light grey", "lime green"].pluck()>> <</if>> <<if $NPCName[_i].hairColour is 0 or $NPCName[_i].hairColour is undefined or _args[0] is "default">> <<set $NPCName[_i].hairColour to "red">> <</if>> <<case "Charlie" "Morgan">> <<if $NPCName[_i].eyeColour is 0 or $NPCName[_i].eyeColour is undefined>> <<set $NPCName[_i].eyeColour to ["purple","dark blue","light blue","amber","hazel","green","red","pink","grey", "light grey", "lime green"].pluck()>> <</if>> <<if $NPCName[_i].hairColour is 0 or $NPCName[_i].hairColour is undefined or _args[0] is "default">> <<set $NPCName[_i].hairColour to "ginger">> <</if>> <<case "Black Wolf">> <<if $NPCName[_i].eyeColour is 0 or $NPCName[_i].eyeColour is undefined>> <<set $NPCName[_i].eyeColour to "amber">> <</if>> <<if $NPCName[_i].hairColour is 0 or $NPCName[_i].hairColour is undefined or _args[0] is "default">> <<set $NPCName[_i].hairColour to "black">> <</if>> <<case "Remy">> <<if $NPCName[_i].eyeColour is 0 or $NPCName[_i].eyeColour is undefined>> <<set $NPCName[_i].eyeColour to "green">> <</if>> <<if $NPCName[_i].hairColour is 0 or $NPCName[_i].hairColour is undefined or _args[0] is "default">> <<set $NPCName[_i].hairColour to "brown">> <</if>> <<case "Alex">> <<if $NPCName[_i].eyeColour is 0 or $NPCName[_i].eyeColour is undefined>> <<set $NPCName[_i].eyeColour to "green">> <</if>> <<if $NPCName[_i].hairColour is 0 or $NPCName[_i].hairColour is undefined or _args[0] is "default">> <<set $NPCName[_i].hairColour to "red">> <</if>> <<case "Great Hawk">> <<if $NPCName[_i].eyeColour is 0 or $NPCName[_i].eyeColour is undefined>> <<set $NPCName[_i].eyeColour to "light blue">> <</if>> <<if $NPCName[_i].hairColour is 0 or $NPCName[_i].hairColour is undefined or _args[0] is "default">> <<set $NPCName[_i].hairColour to "brown">> <</if>> <<case "Wren">> <<if $NPCName[_i].eyeColour is 0 or $NPCName[_i].eyeColour is undefined or _args[0] is "default">> <<set $NPCName[_i].eyeColour to "brown">> <<set $NPCName[_i].hairColour to "blond">> <</if>> <<case "Sydney">> <<if $NPCName[_i].eyeColour is 0 or $NPCName[_i].eyeColour is undefined>> <<set $NPCName[_i].eyeColour to "amber">> <</if>> <<if $NPCName[_i].hairColour is 0 or $NPCName[_i].hairColour is undefined or _args[0] is "default">> <<set $NPCName[_i].hairColour to "strawberryblond">> <</if>> <<case "Ivory Wraith">> <<if $NPCName[_i].eyeColour is 0 or $NPCName[_i].eyeColour is undefined>> <<set $NPCName[_i].eyeColour to "dark blue">> <</if>> <<if $NPCName[_i].hairColour is 0 or $NPCName[_i].hairColour is undefined or _args[0] is "default">> <<set $NPCName[_i].hairColour to "white">> <</if>> <<case "Zephyr">> <<if $NPCName[_i].eyeColour is 0 or $NPCName[_i].eyeColour is undefined or _args[0] is "default">> <<set $NPCName[_i].eyeColour to "green">> <<set $NPCName[_i].hairColour to "black">> <</if>> <<case "Harper">> <<if $NPCName[_i].eyeColour is 0 or $NPCName[_i].eyeColour is undefined>> <<set $NPCName[_i].eyeColour to ["purple","dark blue","light blue","amber","hazel","green","red","pink","grey", "light grey", "lime green"].pluck()>> <</if>> <<if $NPCName[_i].hairColour is 0 or $NPCName[_i].hairColour is undefined or _args[0] is "default">> <<set $NPCName[_i].hairColour to "blond">> <</if>> <<case "Briar">> <<if $NPCName[_i].eyeColour is 0 or $NPCName[_i].eyeColour is undefined or _args[0] is "default">> <<set $NPCName[_i].eyeColour to "hazel">> <<set $NPCName[_i].hairColour to "chestnut">> <</if>> <<default>> <<if $NPCName[_i].eyeColour is 0 or $NPCName[_i].eyeColour is undefined>> <<set $NPCName[_i].eyeColour to ["purple","dark blue","light blue","amber","hazel","green","red","pink","grey", "light grey", "lime green"].pluck()>> <<set $NPCName[_i].hairColour to ["red","black","brown","lightbrown","blond","platinumblond","strawberryblond","ginger"].pluck()>> <</if>> <</switch>> <</for>> <</widget>> <<widget "initAllNNPCVirginities">> <<for _i to 0; _i lt $NPCNameList.length; _i++>> <<initNNPCVirginity _i>> <</for>> <</widget>> <<widget "initNNPCVirginity">> <<set $NPCName[_args[0]].purity to 0>> <<set $NPCName[_args[0]].corruption to 0>> <<set $NPCName[_args[0]].virginity to clone(setup.NPCVirginityTypesVirgin)>> <<set $NPCName[_args[0]].chastity to {penis:"", vagina:"", anus:""}>> <<switch $NPCNameList[_args[0]]>> <<case "Sydney">> /* Has all virginities + temple virginity. */ <<set $NPCName[_args[0]].virginity to {"anal": true, "oral": true, "penile": true, "vaginal": true, "handholding": true, "temple": true, "kiss": true}>> <<case "Robin" "Kylar" "Great Hawk">> /* Has all virginities. */ <<case "Jordan">> /* Has anal, oral, penile/vaginal, and kiss virginities. Missing handholding. */ <<set $NPCName[_args[0]].virginity.handholding to false>> <<case "Black Wolf">> /* Has anal, oral, kiss, and handholding virginities. Missing penile/vaginal. */ <<set $NPCName[_args[0]].virginity.penile to false>> <<set $NPCName[_args[0]].virginity.vaginal to false>> <<case "Gwylan" "Zephyr">> /* Missing all virginities. */ <<set $NPCName[_args[0]].virginity to clone(setup.NPCVirginityTypes)>> <<case "Charlie">> /* Has oral, anal, and vaginal/penile virginities. Missing kiss and handholding. */ <<set $NPCName[_args[0]].virginity.kiss to false>> <<set $NPCName[_args[0]].virginity.handholding to false>> <<case "Eden">> /* Has anal, oral and handholding virginity. Missing penile/vaginal and kiss. */ <<set $NPCName[_args[0]].virginity.penile to false>> <<set $NPCName[_args[0]].virginity.vaginal to false>> <<set $NPCName[_args[0]].virginity.kiss to false>> <<case "Sam" "Mason">> /* Has anal and oral virginity. Missing penile/vaginal, kiss, and handholding. */ <<set $NPCName[_args[0]].virginity.penile to false>> <<set $NPCName[_args[0]].virginity.vaginal to false>> <<set $NPCName[_args[0]].virginity.kiss to false>> <<set $NPCName[_args[0]].virginity.handholding to false>> <<case "Alex" "Darryl" "Sirris" "Briar" "Wren" "Ivory Wraith">> /* Missing all virginities. */ <<set $NPCName[_args[0]].virginity to clone(setup.NPCVirginityTypes)>> <<default>> /* Defaults to only having anal virginity. */ <<set $NPCName[_args[0]].virginity.oral to false>> <<set $NPCName[_args[0]].virginity.penile to false>> <<set $NPCName[_args[0]].virginity.vaginal to false>> <<set $NPCName[_args[0]].virginity.kiss to false>> <<set $NPCName[_args[0]].virginity.handholding to false>> <</switch>> <</widget>><<widget "pregnancyVar">> <<if $pregnancyStats is undefined>> <<set $pregnancyStats to { playerChildren:0, humanChildren:0, wolfChildren:0, npcChildren:0, npcChildrenUnrelatedToPlayer:0, npcTotalBirthEvents:0, humanToysUnlocked: false, wolfToysUnlocked: false, hawkToysUnlocked: false, mother: 0, aftermorningpills: 0, pregnancyTestsTaken: 0, parasiteBook: 0, parasiteDoctorEvents: 0, awareOfBirthId: {}, }>> <</if>> <<containersInit>> <<if $objectVersion.prenancyObjectRepair isnot 2>> <<prenancyObjectRepair>> <<set $objectVersion.prenancyObjectRepair to 2>> <</if>> <<if $pregnancyStats.morningSicknessGeneral is undefined>> <<set $pregnancyStats.morningSicknessGeneral to 0>> <<set $pregnancyStats.morningSicknessWaking to 0>> <<set $pregnancyStats.parasiteBook to 0>> <</if>> <<if $pregnancyStats.awareOfBirthId is undefined>> /* This will track when the player or npc is aware of a specific pregnancy 'birthid:["pc","NPCNameIndex"]' */ <<set $pregnancyStats.awareOfBirthId to {}>> <</if>> <<if $pregnancyStats.childInteractions is undefined>> <<set $pregnancyStats.childInteractions to 0>> <<set $pregnancyStats.childBreastfedInteractions to 0>> <<set $pregnancyStats.childBottlefedInteractions to 0>> <<set $pregnancyStats.childFirstWordInteractions to 0>> <<set $pregnancyStats.orphanageInteractions to 0>> <<set $pregnancyStats.orphanageMilkBottles to 0>> <<set $pregnancyStats.orphanageMilkBottlesTotal to 0>> <</if>> <<if $pregnancyStats.playerVirginBirths is undefined>> <<set $pregnancyStats.playerVirginBirths to []>> <<set $pregnancyStats.totalDaysPregnant to 0>> <<set $pregnancyStats.totalDaysPregnancyKnown to 0>> <</if>> <<if $pregnancyStats.parasiteBook is undefined>> <<set $pregnancyStats.parasiteBook to 0>> <</if>> <<if $pregnancyStats.parasiteDoctorEvents is undefined>> <<set $pregnancyStats.parasiteDoctorEvents to 0>> <</if>> <<if $pregnancyStats.talkedAboutPregnancy is undefined>> /* This will track when the player or npc has ever talked about specific pregnancy, the set should be during the pregnancy only 'birthid:["pc","NPCNameIndex"]' */ <<set $pregnancyStats.talkedAboutPregnancy to {}>> <</if>> <<if $pregnancyStats.hawkChildren is undefined>> <<set $pregnancyStats.hawkChildren to 0>> <</if>> <</widget>> <<widget "containersInit">> <<if $container is undefined>> <<set $container to { "lastLocation": null, "list":["home", "lake"], "home":{ "upgrades":{ "capacity":0, "foodStorage":0, "luxury":0 }, "name": "Tiny Fish Tank", "count": 0, "maxCount": 1, "daysSinceFed": 0, "maxDaysWithoutFood": 3, "creatures":{ 0: null }, "deadCreatures": 0, "visited": false, "leaveLink": "Bedroom" }, "portable":{ "creatures":[], "value":0 }, "lake":{ "upgrades":{ "capacity":0, "foodStorage":0, "luxury":0 }, "name": "pond", "count": 0, "maxCount": 3, "daysSinceFed": 0, "maxDaysWithoutFood": 31, "creatures":{ 0: null }, "deadCreatures": 0, "visited": false, "leaveLink": "Lake Waterfall" } }>> <</if>> <<if $container.home.kylarDelay is undefined>> <<set $container.home.kylarDelay to 0>> <<set $container.home.kylarFed to false>> <<set $container.home.kylarHelp to false>> <</if>> <<if $container.farm is undefined>> <<set $container.farm to { "upgrades":{ "capacity":0, "foodStorage":0, "luxury":0 }, "name": "Parasite Barn", "count": 0, "maxCount": 5, "daysSinceFed": 0, "maxDaysWithoutFood": 14, "creatures":{ 0: null }, "deadCreatures": 0, "visited": false, "leaveLink": "Farm Work" }>> <<set $container.list.pushUnique("farm")>> <</if>> <<if $pregnancyStats.parasiteTypesSeen is undefined or $pregnancyStats.parasiteVariantsSeen is undefined>> <<set $pregnancyStats.parasiteTypesSeen to []>><<set $pregnancyStats.parasiteVariantsSeen to []>> <<for _i range $container.list>> <<for _o to 0; _o lt $container[_i].maxCount; _o++>> <<if $container[_i].creatures[_o] isnot undefined and $container[_i].creatures[_o] isnot null>> <<if $container[_i].creatures[_o].creature.includes("Tentacle")>> <<set $pregnancyStats.parasiteTypesSeen.pushUnique("Tentacle")>> <<elseif $container[_i].creatures[_o].creature.includes("Vine")>> <<set $pregnancyStats.parasiteTypesSeen.pushUnique("Vine")>> <<elseif $container[_i].creatures[_o].creature.includes("Slime")>> <<set $pregnancyStats.parasiteTypesSeen.pushUnique("Slime")>> <<else>> <<set $pregnancyStats.parasiteTypesSeen.pushUnique($container[_i].creatures[_o].creature)>> <</if>> <<if $container[_i].creatures[_o].creature.includes("Pale")>> <<set $pregnancyStats.parasiteVariantsSeen.pushUnique("Pale")>> <<elseif $container[_i].creatures[_o].creature.includes("Metal")>> <<set $pregnancyStats.parasiteVariantsSeen.pushUnique("Metal")>> <</if>> <<else>> <<break>> <</if>> <</for>> <</for>> <</if>> <<if $containerVine or $containerMetal or $containerPale>> <<unset $containerVine, $containerMetal, $containerPale>> <</if>> <</widget>> <<widget "prenancyObjectRepair">> <<set _pregnancy to $sexStats.anus.pregnancy>> <<if _pregnancy.type is "parasite">> <<for _i to 0; _i lt 4; _i++>> <<if _pregnancy.fetus[_i]>> <<if _pregnancy.fetus[_i].creature is undefined>> <<set _pregnancy.fetus[_i].creature to either("Tentacle","Spider","Fish","Snake","Eel")>> <</if>> <</if>> <</for>> <</if>> <<set _list to ["home", "lake", "farm", "portable"]>> <<for _i to 0; _i lt _list.length; _i++>> <<set _container to $container[_list[_i]]>> <<for _j to 0; _j lt _container.maxCount; _j++>> <<if _container.creatures[_j] isnot undefined and _container.creatures[_j] isnot null>> <<if _container.creatures[_j].creature is undefined>> <<set _container.creatures[_j].creature to either("Tentacle","Spider","Fish","Snake","Eel")>> <</if>> <</if>> <<if _container.upgrades.luxury is undefined>> <<set _container.upgrades.luxury to 0>> <</if>> <</for>> <</for>> <</widget>><!--Needs to be json strings, not json objects--> <<widget "presets">> <<unset _preset>> <<unset _presetName>> <<if _args[0]>> <<switch _args[0]>> <<case "femaleWaif">> <<set _preset to '{"starting":{"player":{"gender":"f","gender_body":"f","bodyshape":"curvy","ballsExist":false,"freckles":false,"breastsize":3,"penissize":1,"bottomsize":0},"skinColor":{"natural":"light","range":0},"bodysize":3,"breastsensitivity":1,"genitalsensitivity":1,"eyeselect":"purple","hairselect":"red","hairlength":200,"awareselect":"innocent","background":"waif"}}'>> <<case "maleWaif">> <<set _preset to '{"starting":{"player":{"gender":"m","gender_body":"m","bodyshape":"classic","ballsExist":false,"freckles":false,"breastsize":3,"penissize":1,"bottomsize":0},"skinColor":{"natural":"light","range":0},"bodysize":3,"breastsensitivity":1,"genitalsensitivity":1,"eyeselect":"purple","hairselect":"brown","hairlength":0,"awareselect":"innocent","background":"waif"}}'>> <<case "hermaphroditeWaif">> <<set _preset to '{"starting":{"player":{"gender":"h","gender_body":"a","bodyshape":"slender","ballsExist":true,"freckles":false,"breastsize":3,"penissize":1,"bottomsize":0},"skinColor":{"natural":"light","range":0},"bodysize":3,"breastsensitivity":3,"genitalsensitivity":3,"eyeselect":"purple","hairselect":"red","hairlength":200,"awareselect":"innocent","background":"waif"}}'>> <<case "vrel">> <<set _preset to '{"starting":{"player":{"gender":"f","gender_body":"f","bodyshape":"curvy","ballsExist":false,"freckles":false,"breastsize":0,"penissize":0,"bottomsize":0},"skinColor":{"natural":"light","range":0},"bodysize":3,"breastsensitivity":5,"genitalsensitivity":3,"eyeselect":"purple","hairselect":"burntorange","hairlength":400,"awareselect":"knowledgeable","background":"beautiful"}}'>> <<case "crossdresser">> <<set _preset to '{"starting":{"player":{"gender":"m","gender_body":"f","bodyshape":"curvy","ballsExist":false,"freckles":false,"breastsize":2,"penissize":0,"bottomsize":0},"skinColor":{"natural":"light","range":0},"bodysize":0,"breastsensitivity":3,"genitalsensitivity":1,"eyeselect":"light blue","hairselect":"blond","hairlength":400,"awareselect":"innocent","background":"crossdresser"}}'>> <<case "toughGuy">> <<set _preset to '{"starting":{"player":{"gender":"m","gender_body":"m","bodyshape":"classic","ballsExist":false,"freckles":false,"breastsize":0,"penissize":3,"bottomsize":0},"skinColor":{"natural":"light","range":50},"bodysize":2,"breastsensitivity":1,"genitalsensitivity":1,"eyeselect":"light blue","hairselect":"brown","hairlength":0,"awareselect":"knowledgeable","background":"athlete"}}'>> <<case "genericNpcDefaultGender">> <<set _preset to '{"general":{"settings":{"maleChanceMale":50,"maleChanceFemale":50,"malevictimchance":50}}}'>> <<case "genericNpcAllMaleGender">> <<set _preset to '{"general":{"settings":{"maleChanceMale":100,"maleChanceFemale":100,"malevictimchance":100}}}'>> <<case "genericNpc75MaleGender">> <<set _preset to '{"general":{"settings":{"maleChanceMale":75,"maleChanceFemale":75,"malevictimchance":75}}}'>> <<case "genericNpcAllFemaleGender">> <<set _preset to '{"general":{"settings":{"maleChanceMale":0,"maleChanceFemale":0,"malevictimchance":0}}}'>> <<case "genericNpc75FemaleGender">> <<set _preset to '{"general":{"settings":{"maleChanceMale":25,"maleChanceFemale":25,"malevictimchance":25}}}'>> <<case "beastDefaultGenders">> <<set _preset to '{"general":{"settings":{"beastMaleChanceMale":50,"beastMaleChanceFemale":50,"bestialityEnabled":true}}}'>> <<case "beastMaleGenders">> <<set _preset to '{"general":{"settings":{"beastMaleChanceMale":100,"beastMaleChanceFemale":100,"bestialityEnabled":true}}}'>> <<case "beast75MaleGenders">> <<set _preset to '{"general":{"settings":{"beastMaleChanceMale":75,"beastMaleChanceFemale":75,"bestialityEnabled":true}}}'>> <<case "beastFemaleGenders">> <<set _preset to '{"general":{"settings":{"beastMaleChanceMale":0,"beastMaleChanceFemale":0,"bestialityEnabled":true}}}'>> <<case "beast75FemaleGenders">> <<set _preset to '{"general":{"settings":{"beastMaleChanceMale":25,"beastMaleChanceFemale":25,"bestialityEnabled":true}}}'>> <<case "beastDisable">> <<set _preset to '{"general":{"settings":{"bestialityEnabled":false}}}'>> <<case _kinkPreset>> <<switch _kinkPreset>> <<case "kinkDefault">> <<set _preset to '{"general":{"settings":{"bestialityEnabled":true,"swarmsEnabled":true,"slimesEnabled":true,"voreEnabled":true,"tentaclesEnabled":true,"plantsEnabled":true,"analEnabled":true,"analDoubleEnabled":true,"footFetishEnabled":true,"analingusGivingEnabled":true,"analingusReceivingEnabled":true,"vaginalDoubleEnabled":true,"transformAnimalEnabled":true,"transformDivineEnabled":true,"breastFeedingEnabled":true,"parasitePregnancyEnabled":true,"watersportsEnabled":false,"facesitEnabled":true,"spidersEnabled":true,"bodyWritingLevel":3,"parasitesEnabled":true,"slugsEnabled":true,"waspsEnabled":true,"lurkersEnabled":true,"beesEnabled":true,"horsesEnabled":true,"pregnancySpeechEnabled":true,"toyDildoEnabled":true,"toyWhipEnabled":true,"playerPregnancyHumanEnabled":true,"playerPregnancyBeastEnabled":true,"playerPregnancyEggLayingEnabled":true,"hypnosisEnabled":true}}}'>> <<case "kinkVanilla">> <<set _preset to '{"general":{"settings":{"bestialityEnabled":false,"swarmsEnabled":false,"slimesEnabled":false,"voreEnabled":false,"tentaclesEnabled":false,"plantsEnabled":false,"analEnabled":true,"analDoubleEnabled":false,"footFetishEnabled":true,"analingusGivingEnabled":true,"analingusReceivingEnabled":true,"vaginalDoubleEnabled":false,"transformAnimalEnabled":true,"transformDivineEnabled":true,"breastFeedingEnabled":false,"parasitePregnancyEnabled":false,"watersportsEnabled":false,"facesitEnabled":false,"spidersEnabled":false,"bodyWritingLevel":2,"parasitesEnabled":false, "slugsEnabled":false,"waspsEnabled":false,"lurkersEnabled":false,"beesEnabled":false,"horsesEnabled":false,"pregnancySpeechEnabled":true,"toyDildoEnabled":true,"toyWhipEnabled":true,"playerPregnancyHumanEnabled":true,"playerPregnancyBeastEnabled":false,"playerPregnancyEggLayingEnabled":false,"hypnosisEnabled":true}}}'>> <<case "kinkNoBeasts">> <<set _preset to '{"general":{"settings":{"bestialityEnabled":false,"swarmsEnabled":false,"slimesEnabled":true,"voreEnabled":false,"tentaclesEnabled":true,"plantsEnabled":true,"analEnabled":true,"analDoubleEnabled":true,"footFetishEnabled":true,"analingusGivingEnabled":true,"analingusReceivingEnabled":true,"vaginalDoubleEnabled":true,"transformAnimalEnabled":true,"transformDivineEnabled":true,"breastFeedingEnabled":true,"parasitePregnancyEnabled":false,"watersportsEnabled":false,"facesitEnabled":true,"spidersEnabled":false,"bodyWritingLevel":3,"parasitesEnabled":false,"slugsEnabled":false,"waspsEnabled":false,"lurkersEnabled":false,"beesEnabled":false,"horsesEnabled":false,"pregnancySpeechEnabled":true,"toyDildoEnabled":true,"toyWhipEnabled":true,"playerPregnancyHumanEnabled":true,"playerPregnancyBeastEnabled":false,"playerPregnancyEggLayingEnabled":false,"hypnosisEnabled":true}}}'>> <<case "kinkEverything">> <<set _preset to '{"general":{"settings":{"bestialityEnabled":true,"swarmsEnabled":true,"slimesEnabled":true,"voreEnabled":true,"tentaclesEnabled":true,"plantsEnabled":true,"analEnabled":true,"analDoubleEnabled":true,"footFetishEnabled":true,"analingusGivingEnabled":true,"analingusReceivingEnabled":true,"vaginalDoubleEnabled":true,"transformAnimalEnabled":true,"transformDivineEnabled":true,"breastFeedingEnabled":true,"parasitePregnancyEnabled":true,"watersportsdisable":"f","facesitEnabled":true,"spidersEnabled":true,"bodyWritingLevel":3,"parasitesEnabled":true,"slugsEnabled":true,"waspsEnabled":true,"lurkersEnabled":true,"beesEnabled":true,"horsesEnabled":true,"pregnancySpeechEnabled":true,"toyDildoEnabled":true,"toyWhipEnabled":true,"playerPregnancyHumanEnabled":true,"playerPregnancyBeastEnabled":true,"playerPregnancyEggLayingEnabled":true,"hypnosisEnabled":true}}}'>> <<default>> <<set _preset to '{"general":{"settings":{"bestialityEnabled":true,"swarmsEnabled":true,"slimesEnabled":true,"voreEnabled":true,"tentaclesEnabled":true,"plantsEnabled":true,"analEnabled":true,"analDoubleEnabled":true,"footFetishEnabled":true,"analingusGivingEnabled":true,"analingusReceivingEnabled":true,"vaginalDoubleEnabled":true,"transformAnimalEnabled":true,"transformDivineEnabled":true,"breastFeedingEnabled":true,"parasitePregnancyEnabled":true,"watersportsEnabled":false,"facesitEnabled":true,"spidersEnabled":true,"bodyWritingLevel":3,"parasitesEnabled":true,"slugsEnabled":true,"waspsEnabled":true,"lurkersEnabled":true,"beesEnabled":true,"horsesEnabled":true,"pregnancySpeechEnabled":true,"toyDildoEnabled":true,"toyWhipEnabled":true,"playerPregnancyHumanEnabled":true,"playerPregnancyBeastEnabled":true,"playerPregnancyEggLayingEnabled":true,"hypnosisEnabled":true}}}'>> <</switch>> <<case _namedNpcPreset>> <<set _npcs to { npc: {} }>> <<switch _namedNpcPreset>> <<case "namedNpcAllMaleGender">> <<set _pronoun to "m">> <<set _gender to "m">> <<case "namedNpcAllFemaleGender">> <<set _pronoun to "f">> <<set _gender to "f">> <<default>> <<set _pronoun to "none">> <<set _gender to "none">> <</switch>> <<for _name range setup.NPCNameList>> <<if _name is "Ivory Wraith">> <<continue>> <<else>> <<set _npcs.npc[_name] to { pronoun: _pronoun, gender: _gender, skincolour: "none" }>> <</if>> <</for>> <<set _preset to JSON.stringify(_npcs)>> <<case _monstersPreset>> <<switch _monstersPreset>> <<case "monstersDefault">> <<set _preset to '{"general":{"settings":{"monsterChance":20,"monsterHallucinationsOnly":true},"blackwolfmonster":0,"greathawkmonster":0}}'>> <<case "monstersNone">> <<set _preset to '{"general":{"settings":{"monsterChance":0,"monsterHallucinationsOnly":false},"blackwolfmonster":0,"greathawkmonster":0}}'>> <<case "monstersAll">> <<set _preset to '{"general":{"settings":{"monsterChance":100,"monsterHallucinationsOnly":false},"blackwolfmonster":2,"greathawkmonster":2}}'>> <<default>> <<set _preset to '{"general":{"settings":{"monsterChance":20,"monsterHallucinationsOnly":true},"blackwolfmonster":0,"greathawkmonster":0}}'>> <</switch>> <<case "randomize">> <<set _preset to _args[2]>> <</switch>> <<set _presetName to _args[0]>> <</if>> <<if _args[1]>> <<set _presetPage to _args[1]>> <<else>> <<set _presetPage to "characterSettings">> <</if>> <<run importSettings(_preset, "function")>><<if StartConfig.enableImages is true and $passage is "Start" and _presetPage is "characterSettings">><<startingPlayerImageUpdate>><<removeclass #startingPlayerImage "hidden">><</if>> <<if _args[1] isnot "save">> <<displaySettings _presetPage>> <</if>> <</widget>> <<widget "presetConfirmDetails">> <<set _presetObject to JSON.parse(_preset)>> <div style="padding:5px 0px 0px 10px"> <span class="green">Change the below settings?</span><br> <div class="presetButtons"> <<button "Yes">><<run importSettings(_preset, "function")>><<displaySettings "quickStart">><<if StartConfig.enableImages is true and $passage is "Start">><<startingPlayerImageUpdate>><<removeclass #startingPlayerImage "hidden">><</if>><</button>> <<button "No">><<displaySettings "quickStart">><</button>> </div> </div> <<importDetailsDisplay _presetObject>> <</widget>> <<widget "importConfirmDetails">> <<if isJsonString($importString)>> <div style="padding:5px 0px 0px 10px"> <span class="green">Change the below settings?</span><br> <div class="presetButtons"> <<button "Yes">><<run importSettings($importString, "function")>><<displaySettings "exportsettings">><<if StartConfig.enableImages is true and $passage is "Start">><<startingPlayerImageUpdate>><<startingPlayerImageUpdate>><</if>><</button>> <<button "No">><<displaySettings "exportsettings">><<unset $importString>><</button>> </div> </div> <<importDetailsDisplay `JSON.parse($importString)`>> <<else>> <<link "Back">><<displaySettings "exportsettings">><</link>> <br><br> <span class="red">Import is invalid</span>. Please double check the settings import string before importing again. <</if>> <</widget>> <<widget "importDetailsDisplay">> <<if _args[0]>> <div class="presetConfirm settingsGrid"> <<if _args[0].starting isnot undefined>> <div class="settingsHeader"> Imported Settings </div> <div class="settingsToggleItem"> <span class="gold">Base:</span> <<set _validatorObject to settingsObjects("starting")>> <<presetConfirm _args[0].starting>> </div> <<if _args[0].starting.player isnot undefined>> <div class="settingsToggleItem"> <span class="gold">Player:</span> <<set _validatorObject to settingsObjects("starting")>> <<presetConfirm _args[0].starting.player>> <<if _args[0].starting.skinColor isnot undefined>> <hr style="border-top:1px solid var(--700)"> <span class="gold">Skin Colour:</span> <<set _validatorObject to settingsObjects("starting")>> <<presetConfirm _args[0].starting.skinColor>> <</if>> </div> <</if>> <</if>> <<if _args[0].general isnot undefined>> <div class="settingsToggleItem"> <<if _args[0].general.settings isnot undefined>> <span class="gold">Settings:</span> <<set _validatorObject to settingsObjects("general")>> <<presetConfirm _args[0].general.settings>> <</if>> </div> <div class="settingsToggleItem"> <<if _args[0].general.options isnot undefined>> <span class="gold">Options:</span> <<set _validatorObject to settingsObjects("general")>> <<presetConfirm _args[0].general.options>> <</if>> </div> <div class="settingsToggleItem"> <span class="gold">General Settings:</span> <<set _validatorObject to settingsObjects("general")>> <<presetConfirm _args[0].general>> <<silently>> <<if _args[0].general.skinColor isnot undefined>> <span class="gold">Skin Colour:</span> <<set _validatorObject to settingsObjects("general")>> <<presetConfirm _args[0].general.skinColor>> <</if>> <<if _args[0].general.map isnot undefined>> <span class="gold">Map Settings:</span> <<set _validatorObject to settingsObjects("general")>> <<presetConfirm _args[0].general.map>> <</if>> <<if _args[0].general.shopDefaults isnot undefined>> <span class="gold">Shop Settings:</span> <<set _validatorObject to settingsObjects("general")>> <<presetConfirm _args[0].general.shopDefaults>> <</if>> <<if _args[0].general.wardrobeDefaults isnot undefined>> <span class="gold">Wardrobe Settings:</span> <<set _validatorObject to settingsObjects("general")>> <<presetConfirm _args[0].general.wardrobeDefaults>> <</if>> <</silently>> </div> <</if>> <<if _args[0].npc isnot undefined>> <div class="settingsHeader"> Imported NPCs <<set _validatorObject to settingsObjects("npc")>> </div> <<for $_label, $_value range _args[0].npc>> <<if $_label is "Ivory Wraith">> <<continue>> <<else>> <div class="settingsToggleItem"> <span class="gold"><<print $_label>>:</span> <<presetConfirm $_value $_label>> </div> <</if>> <</for>> <</if>> </div> <</if>> <</widget>> <<widget "presetConfirm">> <<if _args[0]>> <<if _args[0].breastsizemin gt _args[0].breastsizemax>> <<set _temp to _args[0].breastsizemin>> <<set _args[0].breastsizemin to _args[0].breastsizemax>> <<set _args[0].breastsizemax to _temp>> <</if>> <<if _args[0].penissizemin gt _args[0].penissizemax>> <<set _temp to _args[0].penissizemin>> <<set _args[0].penissizemin to _args[0].penissizemax>> <<set _args[0].penissizemax to _temp>> <</if>> <ul> <<for $_label, $_value range _args[0]>> <<unset _altValue>> <<unset _altValue2>> <<if ["player","skinColor","map","shopDefaults","settings","options", "wardrobeDefaults"].includes($_label)>> <<continue>> <</if>> <<unset _object>> <<unset _valid>> <<set _object to _validatorObject[$_label]>> <<if _object isnot undefined>> <<set _valid to validateValue(_object, $_value)>> <<if Object.keys(_object).includes("boolLetter")>> <<set _oldValue to V[$_label]>> <<if _oldValue is "t">> <<set _altValue to "True">> <<elseif _oldValue is "f">> <<set _altValue to "False">> <</if>> <<if $_value is "t">> <<set _altValue2 to "True">> <<elseif $_value is "f">> <<set _altValue2 to "False">> <</if>> <</if>> <</if>> <li> <<switch $_label>> <<case "numberify_enabled">> <<set _object to _validatorObject["options"][$_label]>> <<if _object isnot undefined>> <<set _valid to validateValue(_object, $_value)>> <</if>> Numbered link navigation: <span class="green"><<print (_altValue2 isnot undefined ? _altValue2 : $_value) is false ? "Disabled" : "Enabled">></span> <<case "maleChance" "maleChanceMale" "maleChanceFemale" "femaleNPCPenisChance" "maleNPCVaginaChance" "maleVictimChance" "npcVirginChanceStudent" "npcVirginChanceAdult" "straponChance" "darkSkinChance" "beastMaleChance" "beastMaleChanceMale" "beastMaleChanceFemale" "monsterChance">> <<set _object to _validatorObject["settings"][$_label]>> <<if _object isnot undefined>> <<set _valid to validateValue(_object, $_value)>> <</if>> <<set _displayName to _validatorObject["settings"][$_label]["displayName"]>> <<print _displayName>> <span class="green"><<print (_altValue2 isnot undefined ? _altValue2 : $_value) + "%">></span> <<case "eyeselect" "hairselect" "awareselect" "background" "gamemode">> <<set _object to _validatorObject[$_label]>> <<if _object isnot undefined>> <<set _valid to validateValue(_object, $_value)>> <</if>> <<set _displayName to _validatorObject[$_label]["displayName"]>> <<set _currentValue to (_altValue2 isnot undefined ? _altValue2 : $_value)>> <<print _displayName>> <span class="green"><<print _currentValue .toString().toUpperFirst()>></span> <<case "bodysize" "breastsensitivity" "genitalsensitivity" "mouthsensitivity" "bottomsensitivity" "facevariant">> <<set _object to _validatorObject[$_label]>> <<if _object isnot undefined>> <<set _valid to validateValue(_object, $_value)>> <</if>> <<set _displayName to _validatorObject[$_label]["displayName"]>> <<set _currentValue to (_altValue2 isnot undefined ? _validatorObject[$_label]["textMap"][_altValue2] : _validatorObject[$_label]["textMap"][$_value])>> <<print _displayName>> <span class="green"><<print _currentValue .toString().toUpperFirst()>></span> <<case "hairlength">> <<set _displayName to _validatorObject[$_label]["displayName"]>> <<print _displayName>> <span class="green"><<print (_altValue2 isnot undefined ? _altValue2 : $_value) gte 400 ? "Chest" : (_altValue2 isnot undefined ? _altValue2 : $_value) gte 200 ? "Neck" : "Ear">></span> <<case "ironmanmode">> Ironman Mode: <span class="green"><<print (_altValue2 isnot undefined ? _altValue2 : $_value) is false ? "Disabled" : "Enabled">></span> <<case "timestyle">> <<set _object to _validatorObject["options"][$_label]>> <<if _object isnot undefined>> <<set _valid to validateValue(_object, $_value)>> <</if>> <<set _displayName to _validatorObject["options"][$_label]["displayName"]>> <<set _currentValue to (_altValue2 isnot undefined ? _altValue2 : $_value) is "military" ? "Military (24-Hour)" : "AM/PM (12-Hour)">> <<print _displayName>> <span class="green"><<print _currentValue .toString().toUpperFirst()>></span> <<case "images" "combatImages" "bodywritingImages" "silhouetteEnabled" "characterLightEnabled" "halfClosedEnabled" "combatAnimations" "blinkingEnabled" "sidebarAnimations" "dateFormat" "historyControls" "clothingCaption">> <<set _object to _validatorObject["options"][$_label]>> <<if _object isnot undefined>> <<set _valid to validateValue(_object, $_value)>> <</if>> <<set _displayName to _validatorObject["options"][$_label]["displayName"]>> <<set _currentValue to (_altValue2 isnot undefined ? _altValue2 : $_value) is 1 ? "Enabled" : (_altValue2 isnot undefined ? _altValue2 : $_value) is true ? "Enabled" : "Disabled">> <<print _displayName>> <span class="green"><<print _currentValue .toString().toUpperFirst()>></span> <<case "basePlayerPregnancyChance" "baseNpcPregnancyChance">> <<set _object to _validatorObject["settings"][$_label]>> <<if _object isnot undefined>> <<set _valid to validateValue(_object, $_value)>> <</if>> <<set _displayName to _validatorObject["settings"][$_label]["displayName"]>> <<set _previousValue to _validatorObject["settings"][$_label]>> <<set _changedValue to (_altValue2 isnot undefined ? _validatorObject["settings"][$_label][_altValue2] : _validatorObject["settings"][$_label][$_value])>> <<if $_label is "basePlayerPregnancyChance">> <<print _displayName>> <span class="green"><<print "1 in "+(100-(_altValue2 isnot undefined ? _altValue2 : $_value))>></span> <<else>> <<print _displayName>> <span class="green"><<print "1 in "+(20-(_altValue2 isnot undefined ? _altValue2 : $_value))>></span> <</if>> <<case "humanPregnancyMonths">> <<set _object to _validatorObject["settings"][$_label]>> <<if _object isnot undefined>> <<set _valid to validateValue(_object, $_value)>> <</if>> <<set _displayName to _validatorObject["settings"][$_label]["displayName"]>> <<set _currentValue to (_altValue2 isnot undefined ? _altValue2 : $_value)>> <<print _displayName>> <span class="green"><<print _currentValue .toString().toUpperFirst() + " months">></span> <<case "wolfPregnancyWeeks">> <<set _object to _validatorObject["settings"][$_label]>> <<if _object isnot undefined>> <<set _valid to validateValue(_object, $_value)>> <</if>> <<set _displayName to _validatorObject["settings"][$_label]["displayName"]>> <<set _currentValue to (_altValue2 isnot undefined ? _altValue2 : $_value)>> <<print _displayName>> <span class="green"><<print _currentValue .toString().toUpperFirst() + " weeks">></span> <<case "alwaysBackToShopButton" "color" "colourItems" "compactMode" "disableReturn" "highContrast" "mannequinGender" "mannequinGenderFromClothes" "noHelp" "noTraits" "secColor">> <<set _object to _validatorObject["shopDefaults"][$_label]>> <<if _object isnot undefined>> <<set _valid to validateValue(_object, $_value)>> <</if>> Changes <<print $_label>> from <span class="green"><<print `$shopDefaults.`+$_label>></span> to <span class="green"><<print (_altValue2 isnot undefined ? _altValue2 : $_value)>></span> <<case "neverNudeMenus" "showCaptionText" "sidebarStats" "sidebarTime" "combatControls" "mapMovement" "mapTop" "mapMarkers" "images" "combatImages" "bodywritingImages" "silhouetteEnabled" "images" "sidebarAnimations" "blinkingEnabled" "combatAnimations" "halfClosedEnabled" "characterLightEnabled" "lightSpotlight" "lightGradient" "lightGlow" "lightFlat" "lightTFColor" "combatLightEnabled" "combatLightSpotlight" "combatLightSpotlightX" "combatLightSpotlightY" "combatLightOffsetY" "combatLightGradient" "combatLightGlow" "combatLightFlat" "combatLightTFColor" "maxStates" "useNarrowMarket" "skipStatisticsConfirmation" "passageCount" "playtime" "pepperSprayDisplay" "condomsDisplay" "closeButtonMobile" "showDebugRenderer" "showCombatTools" "numpad" "traitOverlayFormat" "font" "passageLineHeight" "overlayLineHeight" "sidebarLineHeight" "passageFontSize" "overlayFontSize" "sidebarFontSize">> <<set _object to _validatorObject["options"][$_label]>> <<if _object isnot undefined>> <<set _valid to validateValue(_object, $_value)>> <</if>> <<set _displayName to _validatorObject["options"][$_label]["displayName"]>> <<set _currentValue to (_altValue2 isnot undefined ? _altValue2 : $_value)>> <<print _displayName>> <span class="green"><<print _currentValue .toString().toUpperFirst()>></span> <<case "skillCheckStyle" "breastModifier" "allureModifier" "multipleWardrobes" "pregnancyType" "penisModifier">> <<set _object to _validatorObject["settings"][$_label]>> <<if _object isnot undefined>> <<set _valid to validateValue(_object, $_value)>> <</if>> <<set _displayName to _validatorObject["settings"][$_label]["displayName"]>> <<set _currentValue to (_altValue2 isnot undefined ? _altValue2 : $_value)>> <<print _displayName>> <span class="green"><<print _currentValue .toString().toUpperFirst()>></span> <<case "tipdisable">> <<set _object to _validatorObject["options"][$_label]>> <<if _object isnot undefined>> <<set _valid to validateValue(_object, $_value)>> <</if>> <<set _displayName to _validatorObject["options"][$_label]["displayName"]>> <<set _currentValue to (_altValue2 isnot undefined ? _altValue2 : $_value) is false ? "Enabled" : "Disabled">> <<print _displayName>> <span class="green"><<print _currentValue .toString().toUpperFirst()>></span> <<case "skin">> <<set _object to _validatorObject.player.skin>> <<if _object isnot undefined>> <<set _valid to validateValue(_object.color, $_value.color)>> <</if>> <<set _displayName to "Skin colour">> <<set _currentValue to (_altValue2 isnot undefined ? _altValue2 : $_value.color)>> <<print _displayName>> <span class="green"><<print _currentValue.toString().toUpperFirst()>></span> <<case "movement" "top" "markers">> <<set _valid to false>> <<if _object isnot undefined>> <<set _valid to validateValue(_object, $_value)>> <</if>> <<set _displayName to _validatorObject[$_label]["displayName"]>> <<set _currentValue to (_altValue2 isnot undefined ? _altValue2 : $_value)>> <<print _displayName>> <span class="green"><<print _currentValue .toString().toUpperFirst()>></span> <<case "blindStatsEnabled" "monsterHallucinationsOnly" "beastMaleChanceSplit" "maleChanceSplit" "bestialityEnabled" "slimesEnabled" "voreEnabled" "tentaclesEnabled" "analEnabled" "analDoubleEnabled" "analingusGivingEnabled" "analingusReceivingEnabled" "vaginalDoubleEnabled" "transformAnimalEnabled" "transformDivineEnabled" "pubicHairEnabled" "breastFeedingEnabled" "parasitePregnancyEnabled" "watersportsEnabled" "spidersEnabled" "facesitEnabled" "parasitesEnabled" "swarmsEnabled" "slugsEnabled" "waspsEnabled" "beesEnabled" "lurkersEnabled" "horsesEnabled" "pregnancySpeechEnabled" "plantsEnabled" "footFetishEnabled" "toyDildoEnabled" "toyWhipEnabled" "toyMultiplePenetrationEnabled" "hypnosisEnabled" "forcedCrossdressingEnabled" "playerPregnancyEggLayingEnabled" "playerPregnancyHumanEnabled" "playerPregnancyBeastEnabled" "playerPregnancyEggLayingEnabled" "npcPregnancyEnabled" "incompletePregnancyEnabled" "fertilityCycleEnabled" "cheatsEnabledToggle" "ruinedOrgasmEnabled">> <<set _object to _validatorObject["settings"][$_label]>> <<if _object isnot undefined>> <<set _valid to validateValue(_object, $_value)>> <</if>> <<set _displayName to _validatorObject["settings"][$_label]["displayName"]>> <<set _currentValue to (_altValue2 isnot undefined ? _altValue2 : $_value)>> <<print _displayName>> <span class="green"><<print _currentValue .toString().toUpperFirst()>></span> <<case "breastsizemin" "breastsizemax" "penissizemin" "penissizemax" "bottomsizemin" "bottomsizemax" "blackwolfmonster" "greathawkmonster">> <<set _object to _validatorObject[$_label]>> <<if _object isnot undefined>> <<set _valid to validateValue(_object, $_value)>> <</if>> <<set _displayName to _validatorObject[$_label]["displayName"]>> <<set _currentValue to (_altValue2 isnot undefined ? _validatorObject[$_label]["textMap"][_altValue2] : _validatorObject[$_label]["textMap"][$_value])>> <<if $_label is "penissizemin" or $_label is "penissizemax">> <<if $_currentSex is "Female">> <<print _displayName>> <span class="green">Not Applicable</span> /*Don't show min/max penis size for players without a penis*/ <<else>> <<print _displayName>> <span class="green"><<print _currentValue>></span> <</if>> <<else>> <<print _displayName>> <span class="green"><<print _currentValue>></span> <</if>> <<case "bodyWritingLevel" "asphyxiaLevel" "nudeGenderPerception" "condomLevel">> <<set _object to _validatorObject["settings"][$_label]>> <<if _object isnot undefined>> <<set _valid to validateValue(_object, $_value)>> <</if>> <<set _displayName to _validatorObject["settings"][$_label]["displayName"]>> <<set _currentValue to (_altValue2 isnot undefined ? _validatorObject["settings"][$_label]["textMap"][_altValue2] : _validatorObject["settings"][$_label]["textMap"][$_value])>> <<print _displayName>> <span class="green"><<print _currentValue>></span> <<case "underwearCostModifier" "schoolClothingCostModifier" "lewdClothingCostModifier" "furnitureCostModifier" "clothingCostModifier" "rentCostModifier" "tendingYieldModifier">> <<set _object to _validatorObject["settings"][$_label]>> <<if _object isnot undefined>> <<set _valid to validateValue(_object, $_value)>> <</if>> <<set _displayName to _validatorObject["settings"][$_label]["displayName"]>> <<set _currentValue to (_altValue2 isnot undefined ? _altValue2 : $_value)>> <<print _displayName>> <span class="green"><<print _currentValue * 100 + "%">></span> <<case "pronoun" "sex" "gender" "skincolour" "penissize" "breastsize" "bottomsize" "gender_body" "ballsExist" "freckles" "bodyshape">> <<if _args[1]>> <<set _object to _validatorObject[$_label]>> <<set _displayName to _validatorObject[$_label]["displayName"]>> <<set _currentValue to (_altValue2 isnot undefined ? _validatorObject[$_label]["textMap"][_altValue2] : _validatorObject[$_label]["textMap"][$_value])>> <<if $_label is "pronoun">> <<set $_npcGender to _currentValue>> <</if>> <<if $_npcGender is "N/A">> <<print _displayName>><span class="green"><<print "N/A">></span> <<else>> <<print _displayName>><span class="green"><<print _currentValue>></span> <</if>> <<if $_value is "none" and $passage is "Start">> <<set _valid to true>> <</if>> <<elseif $_label is "sex">> <<set _object to _validatorObject["player"][$_label]>> <<if _object isnot undefined>> <<set _valid to validateValue(_object, $_value)>> <</if>> <<set _displayName to _validatorObject["player"][$_label]["displayName"]>> <<set $_currentSex to (_altValue2 isnot undefined ? _validatorObject["player"][$_label]["textMap"][_altValue2] : _validatorObject["player"][$_label]["textMap"][$_value])>> <<print _displayName>> <span class="green"><<print $_currentSex>></span> <<elseif $_label is "penissize">> <<set _object to _validatorObject["player"][$_label]>> <<if _object isnot undefined>> <<set _valid to validateValue(_object, $_value)>> <</if>> <<set _displayName to _validatorObject["player"][$_label]["displayName"]>> <<set _currentValue to (_altValue2 isnot undefined ? _validatorObject["player"][$_label]["textMap"][_altValue2] : _validatorObject["player"][$_label]["textMap"][$_value])>> <<if $_currentSex is "Female">> <<print _displayName>> <span class="green">None</span> /*Don't show penis size for players without a penis*/ <<else>> <<print _displayName>> <span class="green"><<print _currentValue .toString().toUpperFirst()>></span> <</if>> <<elseif $_label is "ballsExist">> <<set _object to _validatorObject["player"][$_label]>> <<if _object isnot undefined>> <<set _valid to validateValue(_object, $_value)>> <</if>> <<set _displayName to _validatorObject["player"][$_label]["displayName"]>> <<set _currentValue to (_altValue2 isnot undefined ? _validatorObject["player"][$_label]["textMap"][_altValue2] : _validatorObject["player"][$_label]["textMap"][$_value])>> <<if $_currentSex is "Male">> <<print _displayName>> <span class="green">Existent</span> /*Don't show 'nonexistent' for players who have a penis*/ <<else>> <<print _displayName>> <span class="green"><<print _currentValue>></span> <</if>> <<else>> <<set _object to _validatorObject["player"][$_label]>> <<if _object isnot undefined>> <<set _valid to validateValue(_object, $_value)>> <</if>> <<set _displayName to _validatorObject["player"][$_label]["displayName"]>> <<set _currentValue to (_altValue2 isnot undefined ? _validatorObject["player"][$_label]["textMap"][_altValue2] : _validatorObject["player"][$_label]["textMap"][$_value])>> <<print _displayName>> <span class="green"><<print _currentValue>></span> <</if>> <<default>> <<if _validatorObject[$_label]>> <<set _displayName to _validatorObject[$_label]["displayName"]>> <<set _currentValue to (_altValue2 isnot undefined ? _altValue2 : $_value)>> <<print _displayName>> <span class="green"><<print _currentValue .toString().toUpperFirst()>></span> <<else>> <<set _currentValue to (_altValue2 isnot undefined ? _altValue2 : $_value)>> <<print $_label + ":">> <span class="green"><<print _currentValue .toString().toUpperFirst()>></span> <</if>> <</switch>> <<if _valid is undefined>> <span class="red">(Setting is not recognised so will not be imported)</span> <<elseif _valid is false>> <span class="red">(Value is not valid so will not be imported)</span> <</if>> </li> <</for>> </ul> <</if>> <</widget>><div id="gameVersionDisplay"> <<if $options.passageCount is "total">> Passage Count: <<print $passageCount>> | <</if>> <<if $options.passageCount is "changes">> Passage Changes Count: <<print $passageChangesCount>> | <</if>> <<if $options.playtime>> Play Time: <<print msToTime(($saveDetails.playTime ? $saveDetails.playTime : 0) + ($saveDetails.loadTime ? new Date() - $saveDetails.loadTime : 0))>> | <</if>> <<print StartConfig.version>><<if StartConfig.sneaky>> SNEAKY<</if>> </div> <div id="gameVersionDisplay2"><<print StartConfig.version.slice(1)>></div> <<if $passage isnot "Start">> <div id="feat"></div> <div id="exportWarning" @class="'no-numberify ' + (!$statFreeze and Time.days gte $saveDetails.exported.days + $saveDetails.exported.frequency ? '':'hidden')"> <span class="red">You haven't exported your save in a while</span> | <<if !Browser.isMobile.any()>> <<link "Export">> <<run Save.export("degrees-of-lewdity")>> <</link>> | <</if>> <<link "Help me export">> <<overlayReplace "export">> <</link>> | <<link "Ignore for now">><<set $saveDetails.exported.days to Math.floor(Time.days - ($saveDetails.exported.frequency * 0.5))>><<addclass #exportWarning "hidden">><</link>> </div> <</if>> <div id="customOverlayContainer" class="customOverlayContainer no-numberify hidden" onclick="closeOverlay()"> <div id="customOverlay" @class="'customOverlay hidden' + ($options.overlayFontSize ? ' fontSize' + $options.overlayFontSize : '') + ($options.overlayLineHeight ? ' lineHeight' + $options.overlayLineHeight.toString().replace('.','') : '')" onclick="event.stopPropagation()"> <div id="customOverlayTitle"></div> <div id="customOverlayContent"></div> </div> </div> <<if $debug is 1>> <div id="debugOverlay" class="debugOverlay"></div> <</if>> <<if $combat is 1>> <<printCombatMenu>> <</if>> <<if !Story.has($passage)>> <br> Please report this and either reload a previous save or take the emergency exit at the bottom of the page to the last safe location you were in. <<if State.history.length gt 1>> Alternatively, return to the previous passage using the history depth function<<if !Config.history.controls>> that can be enabled in the options<</if>>. <</if>> <br> <<set _exit to $safePassage ? $safePassage : "Bedroom">> <span id="next"><<link [[Back to safety|_exit]]>><<endcombat>><<clotheson>><</link>></span> <<elseif !_link and !tags().includes("exitCheckBypass")>> /* Does not trigger if the scene has a red link. Those will probably be reported anyway */ <br> <<error { message : `The passage ${$passage} has no usable links.`, source : `Previous passage: ${$passagePrev} | phase: ${$phase} | rng: ${$rng}.` }>> <br><br> Please report this, <<if $cheatsEnabled is true>> unless you got here through the use of a cheat, <</if>> and either reload a previous save or take the emergency exit at the bottom of the page to the last safe location you were in. <<if State.history.length gt 1>> Alternatively, return to the previous passage using the history depth function<<if !Config.history.controls>> that can be enabled in the options<</if>>. <</if>> <br><br><br> <<set _exit to $safePassage ? $safePassage : "Bedroom">> <span id="next"><<link [[Back to safety|_exit]]>><<endcombat>><<clotheson>><</link>></span> <</if>> <!-- handle autosaves in the footer, so the description getter don't have to guess what happened in the passage --> <<if _autosavehere and !_preventUpdate and !$options.autosaveDisabled>> <<if idb.active>> <<run idb.saveState(0)>> <<else>> <<run Save.autosave.save(null, {"saveId":$saveId, "saveName":$saveName})>> <<run setSaveDetail("autosave",{"saveId":$saveId,"saveName":$saveName},Story.get($passage).description())>> <</if>> <</if>> <<if $options.debugdisable is "f">> <<set _normalised to scanNaNs(V)>> <<if _normalised neq null>> <<error { message: "Corrupted variables have been detected.", source: "The following variables have invalid values:\n" + JSON.stringify(_normalised) + "\n\nCurrent passage is: '" + $passage + "'\nPlease report this to the DoL Discord #bug-reports.", exportable: false, }>> <br> Please expand the above box (click the dropdown arrow on the left) before taking a screenshot. <br><br> <div id="nanClear"> If you are advised to do so by developers, you can click below to reset the corrupted variables. <br> <<link "Reset Corrupted Variables">> <<silently>><<run nukeNaNs()>><</silently>> <<replace "#nanClear" t8n>><span class="green">The variables have been cleared.</span><</replace>> <</link>> <br> <span class="red">WARNING: This will set all corrupted variables to 0. This may have unintended consequences to your game state. Proeceed with caution!</span> </div> <br><br> <</if>> <</if>><<if !$cheatReload>> <<set $passagePrev to $passage ? $passage : "none">> <</if>> <<set $passage to $passageOverride ? $passageOverride : passage()>> <<set $tags to tags()>> <<set l10nStrings.errorTitle = StartConfig.version + " Error" + ($passage ? ` (:: ${$passage})` : "")>> <<if !["Start", "Start2", "Clothes Testing", "Renderer Test Page", "Tips"].includes($passage) && !$bypassHeader>> <<doVersionCheck>> <<if !$passage.includes(" Settings") and !$cheatReload>> <<if $passagePrev isnot $passage>> <<set $passageChangesCount to ($passageChangesCount || 0) + 1>> <</if>> <<set $passageCount to ($passageCount || 0) + 1>> <</if>> <</if>> <<unset $passageOverride>> <<unset $bypassHeader>> <<unset $cheatReload>><<widget "doVersionCheck">> /* Run stuff on every save load */ <<if onLoadUpdateCheck>> <<set $saveVersion to ($saveVersions ? $saveVersions.last() : "ancient")>> /*update save version */ <</if>> /* Run stuff on every page refresh, save load, or version mismatch */ <<if versionUpdateCheck or onLoadUpdateCheck or !$saveVersions or $saveVersions.last() isnot StartConfig.version>> <<set versionUpdateCheck to false>> <<set onLoadUpdateCheck to false>> /* convert game version to numeric value for use in <<backComp>> */ <<set _version to (V.saveVersions?.last()?.match(/\d+/g) || [0]).map(Number).reduce((acc, num, index) => acc + num * Math.pow(100, 3 - index), 0)>> /* preserve prng so updater code won't alter which events are picked, don't forget to restore it it needs to use $ instead of _ because pre-weather save update code runs Engine.play() and that destroys temp variables and probably causes some other bad effects. honestly, version updater needs a major update itself. */ <<set $prngpull to State.prng.pull>> <<backComp>> <<updatehistorycontrols>> <<set _preventUpdate to true>> /*prevent rewriting autosaves */ <<set _saveLoaded to true>> <<set Time.set()>> <<setFont>> <<run zoom($options.zoom)>> <<run syncFavourites()>> <<run initCustomLenses()>> /* push custom eyelenses inside setup.colours.eyes; on every load/refresh it needs to be done. */ <<run syncDebugAddedEvents()>> <<run toggleConfirmDialogUponTabClose()>> /* enable/disable confirm dialog when user tries to close browser tab. based on V.options.confirmDialogUponTabClose */ <<set State.prng.pull to $prngpull>> /* restore prng */ <<unset $prngpull>> <<generateTipsList>> <</if>> /* Variables that you need to check on every passage */ <<set $link_table to []>> <<set $map.hideLinksCheck to []>> /* Determine if the player is in a safe passage. Used to catch softlocks */ <<if setup.majorAreas.includes($passage)>> <<set $safePassage to $passage>> <</if>> <</widget>>/* This passage runs EVERY time the page is opened or refreshed, not just when a new game is started */ /* This passage ALWAYS runs BEFORE story variables are loaded, meaning EVERY variable is undefined. Checking if they are undefined WILL NOT WORK. */ /* You should ONLY use this passage to define setup variables, NOT $variables. */ <<variablesStatic>>/* The following is only run when the widget is called, which is only on new game start. Add to this if you want something to be run when you start a new game. */ <<widget "gameStartOnly">> <<set _globalThemeDefaults to JSON.parse(localStorage.getItem("dolDefaultThemeSettings"))>> <<set _globalGeneralDefaults to JSON.parse(localStorage.getItem("dolDefaultGeneralSettings"))>> <<if !_globalThemeDefaults>> <<set _globalThemeDefaults to {}>> <</if>> <<if !_globalGeneralDefaults>> <<set _globalGeneralDefaults to {}>> <</if>> <<set $settings to {}>> <<set $options to { neverNudeMenus: _globalGeneralDefaults.neverNudeMenus or false, autosaveDisabled: false, showCaptionText: true, showSidebarEffects: true, clothingCaption: true, sidebarStats: "all", sidebarTime: "top", combatControls: "radio", targetYourself: false, scrollRemember: false, mapMovement: _globalGeneralDefaults.mapMovement or true, mapLegacy: _globalGeneralDefaults.mapLegacy or false, mapMarkers: _globalGeneralDefaults.mapMarkers or false, mapTop: _globalGeneralDefaults.mapTop or false, images: 1, combatImages: 1, bodywritingImages: true, silhouetteEnabled: true, tanLines: true, sidebarAnimations: true, locationAnimations: true, blinkingEnabled: true, combatAnimations: true, textAnimsAll: true, textAnimsDrunk: true, textAnimsHeat: true, textAnimsHypno: true, halfClosedEnabled: false, characterLightEnabled: true, lightSpotlight: 0.2, lightGradient: 0.1, lightGlow: 0.1, lightFlat: 0, lightTFColor: 0.2, combatLightEnabled: true, combatLightSpotlight: 0.2, combatLightSpotlightX: 118, combatLightSpotlightY: 15, combatLightOffsetY: 52, combatLightGradient: 0, combatLightGlow: 0.1, combatLightFlat: 0, combatLightTFColor: 0.2, maxStates: 5, historyControls: false, numpad: false, useNarrowMarket: false, skipStatisticsConfirmation: false, showDebugRenderer: false, showCombatTools: false, pepperSprayDisplay: "sprays", condomsDisplay: "standard", closeButtonMobile: _globalGeneralDefaults.closeButtonMobile or false, zoom: 100, numberify_enabled: _globalGeneralDefaults.numberify_enabled or 1, timestyle: _globalGeneralDefaults.timestyle or "military", tipdisable: "f", passageCount: _globalGeneralDefaults.passageCount or "disabled", playtime: _globalGeneralDefaults.playtime or false, traitOverlayFormat: "table", debugdisable: "t", theme: _globalThemeDefaults.theme, dateFormat: _globalGeneralDefaults.dateFormat or "en-GB", passageMaxWidth: _globalThemeDefaults.passageMaxWidth, passageLineHeight: _globalThemeDefaults.passageLineHeight, overlayLineHeight: _globalThemeDefaults.overlayLineHeight, sidebarLineHeight: _globalThemeDefaults.sidebarLineHeight, passageFontSize: _globalThemeDefaults.passageFontSize, overlayFontSize: _globalThemeDefaults.overlayFontSize, sidebarFontSize: _globalThemeDefaults.sidebarFontSize, font: _globalThemeDefaults.font, weatherUpdate: true, reflections: true, fahrenheit: _globalGeneralDefaults.fahrenheit or false, }>> <<setFont>> <<if StartConfig.enableImages is false>> <<set $options.images to 0>> <<set $options.combatImages to 0>> <</if>> <<if StartConfig.debug is true>> <<set $debug to 1>> <<else>> <<set $debug to 0>> <</if>> <<if $objectVersion is undefined>> <<set $objectVersion to { "updateClothes": 74, "specialClothes": 19, "feats": 1, "wardrobes": 15, "customColors": 4, "uncomfortable": 2, "chastity": 3, "skinColor": 1, "prenancyObjectRepair": 2, "museumAntiques": 20, "npcClothes": 1, "animations": 1, "plants": 1, "npcPregnancyGenderChange" : 1, }>> <</if>> <<set $saveVersions to [StartConfig.version]>> <<set $numberify_enabled to 1>> <<set $options.showDebugRenderer to !!StartConfig.debug>> <<set $lastWardrobeSlot to "head">> <<set $gamemode to "normal">> <<set $intro to 1>> <<set $tutorial to 0>> <<set $initnpccompatibility to 1>> <<set $clothing_update to 1>> <<set $parasite_update to 1>> <<set $npcNamedVersion to 2>> <<set $player = { gender: 0, sex: 0, appearance: 0, penis: 0, vagina: 0, penissize: 0, breastsize: 0, bottomsize: 0, ballssize: 0, pronoun: 0, pronouns: { he: 0, his: 0 }, gender_body: 0, condom: false, virginity: { anal: true, oral: true, penile: true, vaginal: true, temple: false, handholding: true, kiss: true }, bodyTemperature: 37, skin: { color: "light", layers: [], sunscreen: { usesLeft: 0, } } }>> <<npcList>> <<npcNamed>> <<set $controlmax to 1000>> <<set $control to 1000>> <<clothinginit>> <<parasiteinit>> <<init_names>> <<set $money to 500>> <<set $moneyStats to { cheats: { earned: 0, earnedCount: 1 }, startingMoney: { earned: 500, earnedCount: 1 }, }>> <<set $timeStats to {}>> <<set $badEndStats to []>> <<set $awareness to 0>> <<set $awarelevel to 0>> <<set $purity to 1000>> <<set $hairlength to 200>> <<set $fringelength to 200>> <<set $hairtype to "default">> <<set $fringetype to "default">> <<set $trauma to 0>> <<set $traumamax to 5000>> <<set $stressmax to 10000>> <<set $arousalmax to 10000>> <<set $physique to 3500>> <<set $physiquemax to 20000>> <<set $willpower to 200>> <<set $willpowermax to 1000>> <<set $beauty to 100>> <<set $beautymax to 10000>> <<set $birthmonth to "september">> <<set $birthday to 3>> <<set $npc to []>> <<set $npcnum to []>> <<set $npcrow to []>> <<set $dancestudioanger to 0>> <<set $dancelocation to 0>> <<set $alarm to 0>> <<set $finish to 0>> <<set $id to 0>> <<set $forest to 0>> <<set $forestmod to 1>> <<set $tipmod to 1>> /*<<set $worn.genitals.anal_shield to 0>>*/ <<set $blackmoney to 0>> <<set $crime to {}>> <<for _cr range Object.keys(setup.crimeNames)>> /* look in variables-static for the list of crime categories */ <<set $crime[_cr] to {current: 0, history: 0, daily: 0, count: 0, countHistory: 0}>> <</for>> <<set $crime.events to {}>> <<set $ironmanmode to false>> <<set $worn.neck.collaredpolice to 0>> <<set $bullytimer to 50>> <<set $bullytimeroutside to 0>> <<set $bullyevent to 0>> <<set $bullyeventoutside to 0>> <<set $masturbationorgasm to 0>> <<set $masturbationRuinedOrgasm to 0>> <<set $ruinedOrgasmStat to 0>> <<set $settings.maleChance to 50>> <<set $settings.maleChanceMale to 50>> <<set $settings.maleChanceFemale to 50>> <<set $settings.maleChanceSplit to false>> <<set $settings.maleVictimChance to 50>> <<set $homochance to 4>> <<set $settings.beastMaleChance to 80>> <<set $settings.beastMaleChanceMale to 80>> <<set $settings.beastMaleChanceFemale to 80>> <<set $settings.beastMaleChanceSplit to false>> <<set $settings.monsterHallucinationsOnly to true>> <<set $settings.monsterChance to 50>> <<set $deviancy to 0>> <<set $baileydefeated to 0>> <<set $baileydefeatedlewd to 0>> <<set $baileydefeatedchain to 0>> <<set $baileyRefusedToPay to 0>> /* Dupicate stats are intentional to use as a potential gameplay mode */ <<set $baileyRefusedToPayTotal to 0>> <<set $baileyRefusedToPayTotalStat to 0>> <<set $soldCount to 0>> <<set $robinmoney to 300>> <<set $settings.allureModifier to 1>> <<set $speechcycle to 0>> <<set $npcspeechcycle to 0>> <<set $museuminterest to 0>> <<set $orphan_hope to 0>> <<set $orphan_reb to 0>> <<set $masochism to 0>> <<set $masochism_level to 0>> <<set $sadism to 0>> <<set $sadism_level to 0>> <<set $lessonmissedtext to 0>> <<set $lessonmissed to 0>> <<set $home_event_timer to 3>> <<set $home_event_count to 0>> <<set $home_event_ward_timer to 3>> <<set $home_event_ward_count to 0>> <<set $home_gone to 0>> <<resetEarSlime>> <<set $lactating to 0>> <<set $lactation_pressure to 0>> <<set $milk_amount to 30>> <<set $milk_volume to 30>> <<set $milk_max to 3000>> <<set $milk_produced_stat to 0>> <<set $semen_max to 3000>> <<set $semen_produced_stat to 0>> <<set $lube_produced_stat to 0>> <<set $masturbation_semen to 0>> <<set $masturbation_milk to 0>> <<set $bunstat to 0>> <<set $creamstat to 0>> <<set $chef_sus to 0>> <<set $fluid_forced_stat to 0>> <<set $smuggler_location to "sewer">> <<set $smuggler_timer to 0>> <<set $smuggler_stolen_stat to 0>> <<set $pub_task_stat to 0>> <<set $player.gender_body to "a">> <<set $player.bodyshape to "classic">> <<set $closinghour to 21>> <<set $openinghours to 1>> <<set $dontHide to false>> <<set $swimnudecounter to 0>> <<set $swimall to 0>> <<set $garden_flowers_intro to 1>> <<set $eden_plot_intro to 1>> <<set $wolf_plot_intro to 1>> <<set $asylum_plot_intro to 1>> <<set $plots to {}>> <<set $tendingvars to {}>> <<set $settings.tendingYieldModifier to 5>> <<set $plants_known to []>> <<set $plants to {}>> <<set $stall_rejected to 0>> <<set $produce_sold to 0>> <<set $stat_shoot to 0>> <<set $stat_lurkers_captured to 0>> <<set $stat_aphrodisiacs_sold to 0>> <<set $stat_panties_stolen to 0>> <<set $farm_shift to 0>> <<set $cattle_milked to 0>> <<set $masseur_stat to 0>> <<set $machine_stat to 0>> <<set $wild_plant_stat to 0>> <<set $bird to {}>> <<set $moonstate to 0>> <<set $blackjack_played to 0>> <<set $blackjack_won to 0>> <<set $blackjack_streak to 0>> <<set $blackjack_streak_high to 0>> <<set $cardcover = { style: 0, colour: 'red' }>> <<set $hoodDown to 0>> <<set $prof to {}>> <<set $prof.spray to 0>> <<set $stat_police to {}>> <<set $stat_police.pillory to 0>> <<set $stat_police.community to 0>> <<set $stat_police.prison to 0>> <<set $child_played to []>> <<set $speech_attitude to "neutral">> <<set $housekeepingTips to []>> <<set $orgasmtrait to 0>> <<set $ejactrait to 0>> <<set $molesttrait to 0>> <<set $rapetrait to 0>> <<set $bestialitytrait to 0>> <<set $tentacletrait to 0>> <<set $voretrait to 0>> <<set $milkdranktrait to 0>> <<set $choketrait to 0>> <<set $physicalTransform to 0>> <<set $specialTransform to 0>> <<set $angelbuild to 0>> <<set $angel to 0>> <<set $angelforgive to 0>> <<set $angelBanish to 0>> <<set $angelBanishMax to 0>> <<set $demonbuild to 0>> <<set $demon to 0>> <<set $demonabsorb to 0>> <<set $fallenangel to 0>> <<set $fallenbuild to 0>> <<set $catbuild to 0>> <<set $cat to 0>> <<set $heterochromia to 0>> <<set $cowbuild to 0>> <<set $cow to 0>> <<set $birdbuild to 0>> <<set $harpy to 0>> <<set $foxbuild to 0>> <<set $fox to 0>> <<set $stray_happiness to 50>> <<set $seductionskill to 0>> <<set $oralskill to 0>> <<set $vaginalskill to 0>> <<set $analskill to 0>> <<set $handskill to 0>> <<set $feetskill to 0>> <<set $bottomskill to 0>> <<set $thighskill to 0>> <<set $chestskill to 0>> <<set $penileskill to 0>> <<set $skulduggery to 0>> <<set $skulduggeryday to 0>> <<set $danceskill to 0>> <<set $swimmingskill to 0>> <<set $athletics to 0>> <<set $tending to 0>> <<set $housekeeping to 0>> <<set $hygiene to 0>> <<set $hunger to 0>> <<set $thirst to 0>> <<set $tiredness to 0>> <<set $arousal to 0>> <<set $arousalmasochism to 0>> <<set $stress to 0>> <<set $pain to 0>> <<set $combat to 0>> <<set $location to "banner">> <<set $breastsizeold to 0>> <<set $breastsizemax to 12>> <<set $breastsizemin to 0>> <<set $mouthsensitivity to 1>> <<set $breastsensitivity to 1>> <<set $bottomsensitivity to 1>> <<set $genitalsensitivity to 1>> <<set $bottomsizeold to 0>> <<set $bottomsizemax to 8>> <<set $bottomsizemin to 0>> <<set $bottomgrowthtimer to 350>> <<set $workouts to 0>> <<set $player.penissize to 2>> <<set $penissizemax to 4>> <<set $penissizemin to -2>> <<set $penisgrowthtimer to 700>> <<set $ballssize to 2>> <<set $ballssizemax to 4>> <<set $ballssizemin to 0>> <<set $ballsgrowthtimer to 700>> <<set $physiqueuse to 0>> <<set $rapeavoid to 1>> <<set $sexavoid to 1>> <<set $molestavoid to 1>> <<set $rescued to 0>> <<set $baileyhospital to 0>> <<set $squidcount to 0>> <<set $no_underwear to 0>> <<set $upperwet to 0>> <<set $upperwetstage to 0>> <<set $lowerwet to 0>> <<set $lowerwetstage to 0>> <<set $underlowerwet to 0>> <<set $underlowerwetstage to 0>> <<set $underupperwet to 0>> <<set $underupperwetstage to 0>> <<set $overlowerwet to 0>> <<set $overlowerwetstage to 0>> <<set $overupperwet to 0>> <<set $overupperwetstage to 0>> <<set $genderknown to ["Robin", "Bailey"]>> <<set $vaginause to 0>> <<set $anususe to 0>> <<set $mouthuse to 0>> <<set $leftarm to 0>> <<set $rightarm to 0>> <<set $chestuse to 0>> <<set $penisuse to 0>> <<set $thighuse to 0>> <<set $bottomuse to 0>> <<set $feetuse to 0>> <<set $vaginastate to 0>> <<set $anusstate to 0>> <<set $mouthstate to 0>> <<set $penisstate to 0>> <<set $cheststate to 0>> <<set $head to 0>> <<set $front to 0>> <<set $back to 0>> <<set $chest to 0>> <<set $carryblock to 0>> <<set $beastgenderoverride to 0>> <<set $settings.femaleNPCPenisChance to 0>> <<set $settings.maleNPCVaginaChance to 0>> <<set $settings.straponChance to 0>> <<set $settings.breastModifier to 0>> <<set $settings.penisModifier to 0>> <<set $facebruise to 0>> <<set $chestbruise to 0>> <<set $tummybruise to 0>> <<set $vaginabruise to 0>> <<set $penisbruise to 0>> <<set $anusbruise to 0>> <<set $bottombruise to 0>> <<set $thighbruise to 0>> <<set $leftarmbruise to 0>> <<set $rightarmbruise to 0>> <<set $neckbruise to 0>> <<set $rapestat to 0>> <<set $beastrapestat to 0>> <<set $tentaclerapestat to 0>> <<set $moleststat to 0>> <<set $vaginalstat to 0>> <<set $vaginalejacstat to 0>> <<set $analstat to 0>> <<set $analejacstat to 0>> <<set $oralstat to 0>> <<set $oralejacstat to 0>> <<set $cunnilingusstat to 0>> <<set $cunnilingusejacstat to 0>> <<set $semenswallowedstat to 0>> <<set $animalsemenswallowedstat to 0>> <<set $handstat to 0>> <<set $handejacstat to 0>> <<set $feetstat to 0>> <<set $feetejacstat to 0>> <<set $thighstat to 0>> <<set $thighejacstat to 0>> <<set $bottomstat to 0>> <<set $bottomejacstat to 0>> <<set $penilestat to 0>> <<set $penileejacstat to 0>> <<set $straponstat to 0>> <<set $clothesstripstat to 0>> <<set $clothesruinstat to 0>> <<set $orgasmstat to 0>> <<set $vaginalentranceejacstat to 0>> <<set $faceejacstat to 0>> <<set $cheststat to 0>> <<set $chestejacstat to 0>> <<set $hairejacstat to 0>> <<set $tummyejacstat to 0>> <<set $neckejacstat to 0>> <<set $ejacstat to 0>> <<set $unsafeSexTimeStat to {}>> <<set $hitstat to 0>> <<set $attackstat to 0>> <<set $prostitutionstat to 0>> <<set $forcedprostitutionstat to 0>> <<set $tablesservedstat to 0>> <<set $parasitestat to 0>> <<set $passoutstat to 0>> <<set $masturbationstat to 0>> <<set $masturbationorgasmstat to 0>> <<set $secondsSpentMasturbating to 0>> <<set $milk_drank_stat to 0>> <<set $nectar_drank_stat to 0>> <<set $nectar_addiction to 0>> <<set $nectar_timer to 0>> <<set $gloryholestat to 0>> <<set $parasite_known to []>> <<set $chokeorgasm to 0>> <<set $analdoublestat to 0>> <<set $vaginaldoublestat to 0>> <<set $sextoystat to 0>> <<set $urinestat to 0>> <<set $hypnosis_traits to {}>> <<set $hypnosisTimers to {}>> <<set $town_projects to {}>> <<set $danceaction to 0>> <<set $danceactiondefault to 0>> <<set $dancestat to 0>> <<set $dancing to 0>> <<set $pullaway to 0>> <<set $novaginal to 0>> <<set $noanal to 0>> <<set $nopenile to 0>> <<set $nochoke to 0>> <<set $vaginalchastity to 0>> <<set $analchastity to 0>> <<set $penilechastity to 0>> <<set $drinksservedstat to 0>> <<if $rng gte 96>> <<set $brothel_basement_price to 3000>> <<elseif $rng gte 86>> <<set $brothel_basement_price to 2000>> <<elseif $rng gte 46>> <<set $brothel_basement_price to 1000>> <<else>> <<set $brothel_basement_price to 500>> <</if>> <<set $brothelshowdata to { counts:{ agreed:0, done:0 }, type:"none", intro:0, done:false, missed:false }>> <<set $speechorgasmweakcumcount to 0>> <<set $speechorgasmnocumcount to 0>> <<set $speechorgasmcount to 0>> <<set $speechorgasmrepeat to 0>> <<set $underwatertime to 0>> <<set $underwater to 0>> <<set $walltype to "wall">> <<set $position to 0>> <<set $prop to []>> <<set $submissive to 1000>> <<set $assertive to 0>> <<set $assertiveaction to "trauma">> <<set $uncomfortable to { underwear: true, nude: true, prostituting: true, lewd: true, hypnosis: true }>> <<set $rescue to 0>> <<set $drugged to 0>> <<set $drunk to 0>> <<set $exposed to 0>> <<set $traumagain to 0>> <<set $stressgain to 0>> <<set $traumasaved to 0>> <<set $stresssaved to 0>> <<set $phase to 0>> <<set $phase2 to 0>> <<set $orgasmdown to 0>> <<set $noise to 0>> <<set $enemywounded to 0>> <<set $enemyejaculated to 0>> <<set $enemyno to 0>> <<set $enemynomax to 0>> <<set $enemyanger to 0>> <<set $enemytrust to 0>> <<set $semenpuddle to 0>> <<set $eventskip to 0>> <<set $menu to 0>> <<set $consensual to 0>> <<set $attention to 0>> <<set $orgasmcount to 0>> <<set $leftboundcarry to 0>> <<set $rightboundcarry to 0>> <<set $orgasmcurrent to 0>> <<set $hospitalintro to 0>> <<set $traumafocus to 0>> <<set $pubwhore to 0>> <<set $policemolestation to 0>> <<set $npclovehigh to 10>> <<set $npclovehighsu to 30>> /* unused */ <<set $npclovelow to -10>> <<set $npclovelowsu to -30>> /* unused */ <<set $npcdomhigh to 10>> <<set $npcdomlow to -10>> <<set $schoolevent to 0>> <<set $schooleventtimer to 10>> <<set $schoolrep to {}>> <<set $schoolrep.crossdress to 0>> <<set $schoolrep.herm to 0>> <<set $flashbackhome to 0>> <<set $flashbacktown to 0>> <<set $flashbackbeach to 0>> <<set $flashbackunderground to 0>> <<set $flashbackschool to 0>> <<set $panicviolence to 0>> <<set $panicparalysis to 0>> <<set $colouraction to 0>> <<set $hungerenabled to 0>> /* unused */ <<set $thirstenabled to 0>> /* unused */ <<set $hygieneenabled to 0>> /* unused */ <<set $exhibitionism to 0>> <<set $promiscuity to 0>> <<set $diagnosis to 0>> <<set $asylum to 0>> <<set $audience to 0>> <<set $audienceexcitement to 0>> <<set $audiencearousal to 0>> <<set $audiencemod to 1>> <<set $venuemod to 1>> <<set $danceevent to 0>> <<set $dancephysique to 0>> <<set $hypnotised to 0>> <<set $pillsconsumed to 0>> <<set $medicated to 0>> <<set $trance to 0>> <<set $schoolLessonsMissed = { science: 0, maths: 0, english: 0, history: 0, swimming: 0, housekeeping: 0 }>> <<set $science_star to 0>> <<set $maths_star to 0>> <<set $english_star to 0>> <<set $history_star to 0>> <<set $fame to { exhibitionism: 0, prostitution: 0, bestiality: 0, sex: 0, rape: 0, good: 0, business: 0, scrap: 0, pimp: 0, social: 0, model: 0, pregnancy: 0, impreg: 0, }>> <<set $internet to { photos: [], videos: [] }>> <<set $park_fame to 0>> <<set $park_run_seen_by to []>> <<set $spray to 0>> <<set $spraymax to 0>> <<set $spraystat to 0>> <<set $infinitespray to 0>> <<set $mathstrait to 0>> <<set $englishtrait to 0>> <<set $sciencetrait to 0>> <<set $historytrait to 0>> <<set $wolfgirl to 0>> <<set $wolfbuild to 0>> <<set $swarm to { "type":0, "name":0, "move":0, "spill":0, "steady":0, "amount":{}, "data":{} }>> <!-- <<set $claws to 1>> --> <<set $water to 0>> <<set $foresthunt to 0>> <<set $forestHunter to "">> <<set $wolfpacktrust to 0>> <<set $wolfpackfear to 0>> <<set $sea to 0>> <<set $penilechastityparasite to 0>> <<set $vaginalchastityparasite to 0>> <<set $analchastityparasite to 0>> <<removeparasite penis>> <<removeparasite clit>> <<removeparasite nipples>> <<set $vorestrength to 0>> <<set $vorestruggle to 0>> <<set $voretentacles to 0>> <<set $vorestage to 0>> <<set $vorecreature to 0>> <<set $swallowed to 0>> <<set $swallowedstat to 0>> <<set $tentacles to { 0: null, 1: null, 2: null, 3: null, 4: null, 5: null, 6: null, 7: null, 8: null, 9: null, 10: null, 11: null, 12: null, 13: null, 14: null, 15: null, 16: null, 17: null, 18: null, 19: null, 20: null, "active": 0, "max": 0 }>> <<set $leftleg to 0>> <<set $rightleg to 0>> <<set $leftnipple to 0>> <<set $rightnipple to 0>> <<set $leftarmstate to 0>> <<set $rightarmstate to 0>> <<set $feetstate to 0>> <<set $player.bodyliquid to {}>> <<for _bodypart range setup.bodyliquid.bodyparts>> /* look in variables-static for the list of body parts */ <<set $player.bodyliquid[_bodypart] to {}>> <<set $player.bodyliquid[_bodypart]["goo"] to 0>> <<set $player.bodyliquid[_bodypart]["semen"] to 0>> <<set $player.bodyliquid[_bodypart]["nectar"] to 0>> <</for>> <<exam_difficulty>> <<set $detention to 0>> <<set $delinquency to 10>> <<set $cool to 120>> <<set $coolmax to 400>> <<set $school to 400>> <<set $maths to 100>> <<set $science to 100>> <<set $english to 100>> <<set $history to 100>> <<set $science_exam to 0>> <<set $maths_exam to 0>> <<set $english_exam to 0>> <<set $history_exam to 0>> <<set $sciencetrait to 0>> <<set $mathstrait to 0>> <<set $englishtrait to 0>> <<set $historytrait to 0>> <<set $scienceprogression to 0>> <<set $distinction_stat to 0>> <<set $audienceselector to 0>> <<set $audiencecamera to 0>> <<set $audiencecamera1 to 0>> <<set $audiencecamera2 to 0>> <<set $audiencecamera3 to 0>> <<set $audiencecamera4 to 0>> <<set $audiencecamera5 to 0>> <<set $audiencecamera6 to 0>> <<set $audiencemember to 0>> <<set $leftactioncarry to "leftcoverface">> <<set $rightactioncarry to "rightcoverface">> <<set $feetactioncarry to "rest">> <<set $mouthactioncarry to "plead">> <<set $leftactioncarrypain to "leftprotect">> <<set $rightactioncarrypain to "rightprotect">> <<set $mouthactioncarrypain to "letout">> <<set $leftactioncarryorgasm to "leftgrip">> <<set $rightactioncarryorgasm to "rightgrip">> <<set $feetactioncarryorgasm to "feetCurl">> <<set $mouthactioncarryorgasm to "letoutorgasm">> <<set $leftactioncarrydissociation to "leftcurl">> <<set $rightactioncarrydissociation to "rightcurl">> <<set $mouthactioncarrydissociation to "noises">> <<set $sleeptrouble to 0>> <<set $nightmares to 0>> <<set $anxiety to 0>> <<set $flashbacks to 0>> <<set $panicattacks to 0>> <<set $hallucinations to 0>> <<set $dissociation to 0>> <<set $scienceproject to "none">> <<set $mathsproject to "none">> <<set $englishPlay to "none">> <<set $oxygenmax to 1200>> <<set $oxygen to 1200>> <<set $suffocating to 0>> <<set $hallucinogen to 0>> <<set $antiquemoney to 0>> <<set $antiquemoneyhistory to 0>> <<set $alluretest to 0>> <<set $whitneypantiescheck to 0>> <<set $insecurity_penis_small to 0>> <<set $insecurity_penis_big to 0>> <<set $insecurity_breasts_small to 0>> <<set $insecurity_breasts_big to 0>> <<set $insecurity_pregnancy to 0>> <<set $acceptance_penis_small to 0>> <<set $acceptance_penis_big to 0>> <<set $acceptance_breasts_small to 0>> <<set $acceptance_breasts_big to 0>> <<set $acceptance_pregnancy to 0>> <<set $anus_climax to 0>> <<set $penis_climax to 0>> <<set $mouth_climax to 0>> <<set $active_enemy to 0>> <<set $sewingKit to 0>> <<bodywriting_init>> /*pillory related*/ <<set $pillory to {}>> <<if ndef $pillory.tenant>><<setup_pillory>><</if>> <<set $police_access_card to 0>> <<set $police_intro to 0>> <<set $police_hack to 0>> <<set $pub_hack_job to 0>> <<set $hacker_tasks to []>> <<set $framed to 0>> /*raid related*/ <<set $brothel_raid to 0>> <<set $brothel_raid_day to 0>> <<set $brothel_thief to 0>> /*pharmacy contact lenses related */ <<set $lenses_ordered to []>> <<set $custom_lenses_already_ordered to 0>> <<set $custom_eyecolours to []>> /*long hair related*/ <<set $o_long_and_beautiful to 0>> <<set $hy_sibling to 0>> <<set $hy_parent to 0>> <<set $long_hair_meet_day to 99999>> <<set $misbehaviour_day to 99999>> /*steal related*/ <<set $stealtarget to "">> <<set $stealdifficulty to 1>> <<set $compressSave to true>> <<set $confirmSave to false>> <<set $confirmLoad to false>> <<set $confirmDelete to true>> <<mapLocations>> <<wetness_init>> <<updateMuseumAntiques>> <<set $feats to { "locked":false, "soft":false, "allSaves":{}, "currentSave":{}, "filter":"All" }>> <<set _passageCheck to "Start">> <<updateFeats>> <<unset _passageCheck>> <<setupFeats>> <<set $tfFIX to 7>> <<setupTransformationPiecesObject>> <<if $facestyle is undefined>> <<set $facestyle to "default">> <</if>> <<if $facevariant is undefined>> <<set $facevariant to "default">> <</if>> <<if $makeup is undefined>> <<set $makeup = {}>> <<set $makeup.owned = {}>> <<set $makeup.owned.lipstick = []>> <<set $makeup.owned.eyeshadow = []>> <<set $makeup.owned.eyelenses = []>> <<set $makeup.owned.hairdye = []>> <<set $makeup.owned.mascara = []>> <<set $makeup.owned.blusher = []>> <<set $makeup.lipstick = 0>> <<set $makeup.eyeshadow = 0>> <<set $makeup.blusher = 0>> <<set $makeup.eyelenses = {"left":0, "right":0}>> <<set $makeup.mascara = 0>> <<set $makeup.mascara_running = 0>> <<set $makeup.pbcolour = 0>> <<set $makeup.browscolour = 0>> <<set $makeup.concealer = 0>> <</if>> <<if $makeup.owned.custom_eyelenses is undefined>> <<set $makeup.owned.custom_eyelenses to []>> /* pharmacy custom eye lenses */ <</if>> <<set $leftEyeColour to "purple">> <<set $rightEyeColour to "purple">> <<set $prepareSaveDetails to true>> <<if $saveDetails is undefined>> <<set $saveDetails to { exported:{ days: 0, frequency: 15, count: 0, dayCount: 0, }, auto:{ count: 0 }, slot:{ count: 0, dayCount: 0, }, playTime: 0, loadTime: new Date(), loadCount: 0, }>> <<unset $lastExported>> <</if>> <<if $saveDetails.exported.dayCount is undefined>> <<set $saveDetails.exported.dayCount to 0>> <<set $saveDetails.slot.dayCount to 0>> <</if>> <<set $shopDefaults to { "color":"black", "colorSet":null, "secColor":"black", "secColorSet":null, "disableReturn": false, "alwaysBackToShopButton": false, "noHelp": false, "noTraits": false, "highContrast": false, "mannequinGender": "same", "mannequinGenderFromClothes": false, "colourItems": "random", "compactMode": false, }>> <<set $wardrobeDefaults to { "showTraits": false, "extraInfo": false, }>> <<initAllNNPCVirginities>> <<set $templePromised to "">> <<if $sleepStat is undefined>> <<set $sleepStat to 0>> <</if>> <<run window.createInventoryObject()>> <<initEstatePersistent>> <<set $modeloptionsOverride to {}>> <<set $wraith to {"state": "", "init": 0}>> <<set $necklaceThief to "">> <<set $world_corruption_soft to 0>> <<set $world_corruption_hard to 2>> <<set $world_corruption_reduced to 0>> <<set $passageCount to 0>> <<set $passageChangesCount to 0>> <<set $timeMessages to []>> <</widget>><<widget "variablesStart2">> /*Variables required at the start of passage 'Start2', please remove if not required"*/ /*This widget should be used to initialise most or all variables that are required when you begin a new game. also check <<gameStartOnly>> for other initialisations. */ <<set $location to "home">> <<if $hairselect is "random">> <<set $hairselect to ["red","jetblack","black","brown","softbrown","lightbrown","burntorange","blond","softblond","platinumblond","ashyblond","strawberryblond","ginger"].random()>> <</if>> <<if $eyeselect is "random">> <<set $eyeselect to ["purple","dark blue","light blue","amber","hazel","green","red","pink","grey", "light grey", "lime green"].random()>> <</if>> <<if $background is "random">> <<set _backgroundOptions to ["waif","nerd","athlete","delinquent","promiscuous","exhibitionist","deviant","beautiful","lustful","plantlover"]>> <<if $player.sex isnot "h">> <<run _backgroundOptions.push("crossdresser")>> <</if>> <<set $background to _backgroundOptions.random()>> <</if>> <<switch $bodysize>> <<case 0>><<set $physiquesize to 6000>> <<case 1>><<set $physiquesize to 10000>> <<case 2>><<set $physiquesize to 12000>> <<case 3>><<set $physiquesize to 16000>> <</switch>> <<clamp>> <!-- <<effects>> --> <<initnpcgender>> <<initnpcskin>> <<if $debug is 1 and $spraymax lt 1>> <<set $spraymax += 1>> <<set $spray += 1>> <</if>> <<set $per_npc to {}>> <<set $storedNPCs to {}>> <<set $perNPCFix to 4>> <<set $physique to ($physiquesize / 7) * 3>> <<set $beauty to ($beautymax / 7)>> <<set $breastgrowthtimer to 350>> <<tryOnInit>> <<givestartclothing>> <<set $intro to 0>> <<set $naturalhaircolour to $hairselect>> <<set $haircolour to $naturalhaircolour>> <<set $hairColourStyle to "simple">> <<set $hairColourGradient to { style: "split", colours: ["red", "black"]}>> <<set $hairfringecolour to $naturalhaircolour>> <<set $hairFringeColourStyle to "simple">> <<set $hairFringeColourGradient to { style: "split", colours: ["red", "black"]}>> <<if $cheatsEnabled is true and !$debug or $settings.rentCostModifier lt 1 and !$debug>> <<set $feats.locked to true>> <</if>> <<set $leftEyeColour to $eyeselect>> <<set $rightEyeColour to $eyeselect>> <<if $awareselect is "innocent">> <<elseif $awareselect is "knowledgeable">> <<set $awareness += 200>> <<set $awarelevel to 1>> <</if>> /*pharmacy contact lenses related */ <<if ndef $lenses_ordered>> <<set $lenses_ordered to []>> <</if>> <<if ndef $custom_lenses_already_ordered>> <<set $custom_lenses_already_ordered to 0>> <</if>> <<if ndef $custom_eyecolours>> <<set $custom_eyecolours to []>> <</if>> <<if ndef $makeup.owned>> <<set $makeup.owned to []>> <<if ndef $makeup.owned.custom_eyelenses>> <<set $makeup.owned.custom_eyelenses to []>> <</if>> <</if>> <<set $player.gender_appearance to $player.gender>> <<set $player.gender_appearance_factors to []>> <<set $player.femininity to 0>> <<set $player.gender_appearance_without_overwear to $player.gender>> <<set $player.gender_appearance_without_overwear_factors to []>> <<set $player.femininity_without_overwear to 0>> <<set $player.gender_posture to "n">> <<if $player.sex is "f">> <<set $vaginause to 0>> <<set $vaginastate to 0>> <<set $penisuse to "none">> <<set $penisstate to "none">> <<set $player.vaginaExist to true>> <<set $player.penisExist to false>> <<set $player.ballsExist to false>> <<elseif $player.sex is "m">> <<set $vaginause to "none">> <<set $vaginastate to "none">> <<set $penisuse to 0>> <<set $penisstate to 0>> <<set $player.vaginaExist to false>> <<set $player.penisExist to true>> <<set $player.ballsExist to true>> <<elseif $player.sex is "h">> <<set $vaginause to 0>> <<set $vaginastate to 0>> <<set $penisuse to 0>> <<set $penisstate to 0>> <<set $player.penisExist to true>> <<set $player.vaginaExist to true>> <</if>> <<physicalAdjustmentsInit>> <<set $player.perceived_breastsize = $player.breastsize>> <<set $player.perceived_bottomsize = $player.bottomsize>> /* Do not use this object directly - use the Weather singleton instead */ <<set $weatherObj to { name: "clear", snow: 0, ice: {}, fog: 0, overcast: 0, targetOvercast: 0, monthlyTemperatures: [], keypointsArr: [] }>> /* Default start date: 6 sept (sunday), 2020, 07:00 */ /* Do not change start date during gameplay as time is relative to the start date */ <<if $startingseason is "random">> <<set $startingseason to ["autumn","winter","spring","summer"].random()>> <</if>> <<switch $startingseason>> <<case "winter">> <<set Time.startDate to new DateTime(2022, 12, 4, 7)>> <<case "spring">> <<set Time.startDate to new DateTime(2022, 3, 6, 7)>> <<case "summer">> <<set Time.startDate to new DateTime(2022, 6, 5, 7)>> <<default>> <<set Time.startDate to new DateTime(2022, 9, 4, 7)>> <</switch>> <<unset $startingseason>> <<set $timeStamp to 0>> <<set Time.set()>> <<run Weather.activeRenderer = Weather.sky>> <<run Weather.sky.initialize()>> <<set $hourly to {}>> <<if $background is "nerd">> <<set $science += 100>><<set $maths += 100>><<set $english += 100>><<set $history += 100>><<set $school += 400>><<set $cool to 0>> <<set $sciencetrait to 1>><<set $mathstrait to 1>><<set $englishtrait to 1>><<set $historytrait to 1>> <<elseif $background is "athlete">> <<set $physique += ($physiquesize / 4)>><<set $swimmingskill += 200>><<set $athletics += 200>> <<set $science to 0>><<set $maths to 0>><<set $english to 0>><<set $history to 0>><<set $school to 0>> <<set $sciencetrait to -1>><<set $mathstrait to -1>><<set $englishtrait to -1>><<set $historytrait to -1>> <<elseif $background is "delinquent">> <<set $delinquency += 401>><<set $cool += 200>> <<elseif $background is "promiscuous">> <<set $promiscuity += 35>> <<elseif $background is "exhibitionist">> <<set $exhibitionism += 35>> <<elseif $background is "deviant">> <<set $deviancy += 35>> <<elseif $background is "beautiful">> <<set $beauty += ($beautymax / 2)>> <<elseif $background is "crossdresser">> <<if $player.sex is "f">> <<set $player.gender_posture to "m">> <<elseif $player.sex is "m">> <<set $player.gender_posture to "f">> <<else>> <<set $player.gender_posture to "n">> <<set $background to "waif">> <</if>> <<elseif $background is "greenthumb">> /* Leaving this here in case we ever turn Green Thumb back into a background. Can't be set to the background variable in current state. */ <<set $tending += 200>> <<elseif $background is "plantlover">> <<set $nectar_addiction to 200>> <<set $nectar_timer to 21>> <</if>> <<set $backgroundTraits to [$background]>> <<if $hairlength gte 900>> <<set $hairlengthstage to "feet">> <<elseif $hairlength gte 700>> <<set $hairlengthstage to "thighs">> <<elseif $hairlength gte 600>> <<set $hairlengthstage to "navel">> <<elseif $hairlength gte 400>> <<set $hairlengthstage to "chest">> <<elseif $hairlength gte 200>> <<set $hairlengthstage to "shoulder">> <<else>> <<set $hairlengthstage to "short">> <</if>> <<if $fringelength gte 900>> <<set $fringelengthstage to "feet">> <<elseif $fringelength gte 700>> <<set $fringelengthstage to "thighs">> <<elseif $fringelength gte 600>> <<set $fringelengthstage to "navel">> <<elseif $fringelength gte 400>> <<set $fringelengthstage to "chest">> <<elseif $fringelength gte 200>> <<set $fringelengthstage to "shoulder">> <<else>> <<set $fringelengthstage to "short">> <</if>> <<if $saveId is undefined>> <<set $saveId to random(10000, 99999)>> <</if>> <<if $player.penisExist>> <<set $semen_amount to 90>> <<set $semen_volume to 90>> <<else>> <<set $semen_amount to 0>> <<set $semen_volume to 0>> <</if>> <<if $dateCount is undefined>> <<set $dateCount to { Total: 0, Robin: 0, Whitney: 0, Kylar: 0, Eden: 0, Avery: 0, BlackWolfHunts: 0, GreatHawkHunts: 0, GreatHawkCasual: 0, Alex: 0, Sydney: 0, Gwylan: 0, GwylanBeast: 0, GwylanSex: 0 }>> <</if>> <<if $virginTaken is undefined>> <<set $virginTaken to { kiss: [], handholding: [], oral: [], anal: [], vaginal: [], penile: [] }>> <</if>> <<set $loveInterest to { primary: "None", secondary: "None", tertiary: "None" }>> <<set $attitudesControl to { showGoldLink:false, unlockExhibitionismUnderwear:false, unlockExhibitionismNude:false, unlockTransformation:false, unlockDemonFlaunt:false, unlockProstitution:false, unlockLoveInterest1:false, unlockLoveInterest2:false, unlockLoveInterest3:false, unlockDefaultActions:false, unlockHypnosis:false, unlockLewd:false, }>> <<set $clothingShop to { ban: 0, banExtension: false, spotted: false, stolenClothes: 0, totalStolenClothes: 0, banCount: 0, rng: random(0,1000) }>> <<set $adultShop to { ban: 0, banExtension: false, spotted: false, stolenClothes: 0, totalStolenClothes: 0, banCount: 0, rng: random(0,1000) }>> <<set $propEquipped to 0>> <<set $balloonStand to { open: false, owner: "friendly", freeDrink: false, robin: {status: "unaffected", talked: false, knows: false} }>> <<set $retrieveShopCustomColor to {}>> <<set $customColors to { presets:{}, action: "set", currentType: "primary", color:{primary:0, secondary:0}, saturation:{primary:1, secondary:1}, brightness:{primary:1, secondary:1}, contrast:{primary:1, secondary:1}, sepia:{primary:1, secondary:1}, value:{primary:100, secondary:100} }>> <<set $combatTrain to { length: 0, generateInit: 1, beastTypes: [], numberPerTrain: [], }>> <<set $enemyArousalLossReduction to 1>> <<set $robinTattoo to []>> <<set $robinmissing to 0>> <<set $robin to { timer: {hurt:0, customer:0}, hurtReason: "nothing", moneyModifier: 0 }>> <<set $kylar to { raped: 0, riddle: 0, timer: {halls:0,street:0,home:0,love:0}, fameStage: 0, }>> <<set $kylarSeen to []>> <<set $museumAntiqueJournalHints to []>> <<specialClothesUpdate>> <<pregnancyVar>> <<set $specialClothesEffects to { bimbo: { progress: 0, total: 0, message: 0 }, pimp: { progress: 0, total: 0, message: 0 }, }>> <<childrenSetup>> <<setupTransformationPiecesObject>> <<if $fertiliser is undefined>> <<set $fertiliser to {current:0,used:0}>> <</if>> <<set $actionDefaults = DefaultActions.setDefaults()>> <<set versionUpdateCheck to false>> <<set $rebuy_failure to []>> <<set $rebuy_success to []>> <<pbhairinit>> <<resetLastOptions>> <<set $adultshopprogress to 0>> <<set $adultshopcontribution to 0>> <<run createInventoryObject()>> <<set $robinPunishments to []>> <<set $robinTraumaMultiplier to 1>> <<set $daily to { school: { attended: {} }, whitney: {}, robin: {}, kylar: {}, morgan: {}, eden: {}, alex: {}, sydney: {}, gwylan: {}, ex: {}, pharm: {}, prison: {}, livestock: {}, giftedFood: {}, avery: {} }>> <<updatePlants>> <<supermarketWeekly>> <<set $weekly to { theft: {}, sewers: {}, maze: {} }>> <<set $yearly to { }>> <<if $feats.allSaves.points gt 0>> <<applyFeatsBoost>> <</if>> <<set $school to $science + $english + $maths + $history>> <<set $schooltrait = $school >= 2800 ? 4 : $school >= 2000 ? 3 : $school >= 1600 ? 2 : $school >= 1200 ? 1 : 0>> <<if $ironmanmode is true>> <<set $options.confirmDialogUponTabClose to true>> <<else>> <<set $options.confirmDialogUponTabClose to false>> <</if>> <<run toggleConfirmDialogUponTabClose()>> <<run Furniture.update()>> <<set $harper_appointments to {dog: 0, exam: 0, hypnosis: 0}>> <<set $auriga_scar to 0>> <<set $compound to { alarm: 0, bluff: false, card: 0, interrogation: {}, theft: { centre: false, smoke: false, pipes: false, }, symbol: [], }>> <<set $transformationHistory to []>> <<generateTipsList>> <</widget>><<widget "variablesStatic">> /*This is for static variables that will not change during gameplay*/ /*These will not be saved to saves and are best when they are required in multiple location and are required for processing for loops, default objects, etc.*/ /*Can be found at 'SugarCube.setup'*/ <<run try { new Function("const foo = {}; foo?.bar;"); } catch (e) { window.Utils.Defer(() => { Errors.report('This browser does not meet the minimum requirements for DoL (ES2020). Please alert Vrelnir + the dev team and update your web browser.'); Errors.Reporter.show(); }); }>> <<set setup.test to "testing">> <<set setup.baseNPC = { "chastity": { penis: "", vagina: "", anus: "" }, "location": {}, "skills": {}, "pronouns": {}, "traits": [] }>> <<clothing_data>> <<hair_data>> <<init_bodywriting_objects>> <<init_plant_objects>> <<init_locations>> <<init_tips>> <<set setup.baseNNPC = {penis : 0, vagina: 0, gender: "none", description: 0, title: 0, insecurity: 0, pronoun: "none", penissize: 0, penisdesc: "none", bottomsize: 0, ballssize: 0, breastsize: 0, breastdesc: 0, breastsdesc: 0, skincolour: 0, teen: 0, adult: 0, init: 0, intro: 0, type: "human", trust: 0, love: 0, dom: 0, lust: 0, rage: 0, state: "", trauma: 0, eyeColour: 0, hairColour: 0, chastity: {penis: "", vagina: "", anus: ""}}>> <<set setup.NPCNameList = ["Avery","Bailey","Briar","Charlie","Darryl","Doren","Eden","Gwylan","Harper","Jordan","Kylar","Landry","Leighton","Mason","Morgan","River","Robin","Sam","Sirris","Whitney","Winter","Black Wolf","Niki","Quinn","Remy","Alex","Great Hawk","Wren","Sydney","Ivory Wraith","Zephyr"]>> <<set setup.loveInterestNpc = ["Robin","Whitney","Kylar","Sydney","Eden","Avery","Black Wolf","Great Hawk","Alex","Gwylan"]>> <<set setup.loveAlias to { /* Named NPC */ "Avery": () => "Love", "Bailey": () => "Respect", "Briar": () => "Respect", "Charlie": () => "Respect", "Darryl": () => "Affection", "Doren": () => "Affection", "Eden": () => "Love", "Gwylan": () => V.gwylanSeen?.includes("partners") ? "Love" : "Interest", "Harper": () => "Interest", "Jordan": () => "Respect", "Kylar": () => "Love", "Landry": () => "Interest", "Leighton": () => "Interest", "Mason": () => "Affection", "Morgan": () => "Affection", "River": () => "Respect", "Robin": () => "Love", "Sam": () => "Respect", "Sirris": () => "Affection", "Whitney": () => "Love", "Winter": () => "Affection", "Black Wolf": () => "Love", "Niki": () => "Respect", "Quinn": () => "Interest", "Remy": () => "Interest", "Alex": () => "Love", "Great Hawk": () => "Love", "Wren": () => "Affection", "Sydney": () => "Love", "Ivory Wraith": () => "Love", "Zephyr": () => "Interest", /* Persistent NPC */ "anxious_guard": () => "Respect", "hacker": () => "Respect", "manager": () => "Affection", "methodical_guard": () => "Respect", "relaxed_guard": () => "Respect", "scarred_inmate": () => "Affection", "tattoed_inmate": () => "Interest", "veteran_guard": () => "Respect" }>> <<set setup.perName to { "anxious_guard": () => V.per_npc["anxious_guard"]?.name_known is 1 ? V.per_npc["anxious_guard"]?.name : "Anxious Guard", "hacker": () => V.per_npc["hacker"]?.name_known is 1 ? V.mickeyName : "Mickey", "manager": () => V.per_npc["manager"]?.name, "methodical_guard": () => V.per_npc["methodical_guard"]?.name_known is 1 ? V.per_npc["methodical_guard"]?.name : "Methodical Guard", "relaxed_guard": () => V.per_npc["relaxed_guard"]?.name_known is 1 ? V.per_npc["relaxed_guard"]?.name : "Relaxed Guard", "scarred_inmate": () => V.per_npc["scarred_inmate"]?.name_known is 1 ? V.per_npc["scarred_inmate"]?.name : "Scarred Inmate", "tattoed_inmate": () => V.per_npc["tattoed_inmate"]?.name_known is 1 ? V.per_npc["tattoed_inmate"]?.name : "Tattoed Inmate", "veteran_guard": () => V.per_npc["veteran_guard"]?.name_known is 1 ? V.per_npc["veteran_guard"]?.name : "Veteran Guard" }>> /* this initialises the C.npc object */ <<run initCNPC()>> <<set setup.crimeNames to { assault: "assault", coercion: "coercion", destruction: "destruction of property", exposure: "indecent exposure", obstruction: "obstruction of justice", prostitution: "prostitution", resisting: "resisting arrest", thievery: "thievery", petty: "petty thievery", trespassing: "trespassing", }>> <<set setup.crimeDescs to { default: "general", legacy: "a string of crimes that slipped through the cracks", escape: "escaping prison", cake: "a high-profile theft involving a noble's wedding cake", kylarPrison: "assisting in a prison escape", debug: "wearing clothes of mixed fabrics, you sick fuck", }>> /* this initialises the C.crime object */ <<run initCCrime()>> <<set setup.skinColor to { light: { hStart: 30, hEnd: 47, sStart: 0.15, sEnd: 0.30, bStart: 4.3, bEnd: 3.4 }, medium: { hStart: 47, hEnd: 50, sStart: 0.30, sEnd: 0.32, bStart: 3.4, bEnd: 1.55 }, dark: { hStart: 50, hEnd: 50, sStart: 0.32, sEnd: 0.4, bStart: 1.55, bEnd: 0.6 }, gyaru: [ { hStart: 30, hEnd: 47, sStart: 0.15, sEnd: 0.30, bStart: 4.3, bEnd: 3.4 }, { hStart: 47, hEnd: 50, sStart: 0.30, sEnd: 0.32, bStart: 3.4, bEnd: 1.55 }, { hStart: 50, hEnd: 50, sStart: 0.32, sEnd: 0.4, bStart: 1.55, bEnd: 0.6 }, ], rlight: { hStart: 30, hEnd: 47, sStart: 0.15, sEnd: 0.30, bStart: 4.3, bEnd: 3 }, rmedium: { hStart: 47, hEnd: 35, sStart: 0.30, sEnd: 0.35, bStart: 3, bEnd: 1.6 }, rdark: { hStart: 35, hEnd: 30, sStart: 0.35, sEnd: 0.4, bStart: 1.6, bEnd: 0.8 }, rgyaru: [ { hStart: 30, hEnd: 47, sStart: 0.15, sEnd: 0.30, bStart: 4.3, bEnd: 3 }, { hStart: 47, hEnd: 35, sStart: 0.30, sEnd: 0.35, bStart: 3, bEnd: 1.6 }, { hStart: 35, hEnd: 30, sStart: 0.35, sEnd: 0.4, bStart: 1.6, bEnd: 0.8 }, ], ylight: { hStart: 50, hEnd: 55, sStart: 0.20, sEnd: 0.20, bStart: 4.4, bEnd: 3.6 }, ymedium: { hStart: 60, hEnd: 60, sStart: 0.25, sEnd: 0.25, bStart: 3.6, bEnd: 2.0 }, ydark: { hStart: 60, hEnd: 60, sStart: 0.25, sEnd: 0.25, bStart: 2.0, bEnd: 1.0 }, ygyaru: [ { hStart: 50, hEnd: 55, sStart: 0.20, sEnd: 0.20, bStart: 4.4, bEnd: 3.6 }, { hStart: 60, hEnd: 60, sStart: 0.25, sEnd: 0.25, bStart: 3.6, bEnd: 2.0 }, { hStart: 60, hEnd: 60, sStart: 0.25, sEnd: 0.25, bStart: 2.0, bEnd: 1.0 }, ], glight: { hStart: 55, hEnd: 55, sStart: 0.2, sEnd: 0.45, bStart: 4, bEnd: 3.4 }, gmedium: { hStart: 55, hEnd: 55, sStart: 0.45, sEnd: 0.55, bStart: 3.4, bEnd: 1.65 }, gdark: { hStart: 55, hEnd: 55, sStart: 0.55, sEnd: 0.7, bStart: 1.65, bEnd: 0.9 }, ggyaru: [ { hStart: 55, hEnd: 55, sStart: 0.2, sEnd: 0.45, bStart: 4, bEnd: 3.4 }, { hStart: 55, hEnd: 55, sStart: 0.45, sEnd: 0.55, bStart: 3.4, bEnd: 1.65 }, { hStart: 55, hEnd: 55, sStart: 0.55, sEnd: 0.7, bStart: 1.65, bEnd: 0.9 }, ], blight: { hStart: 25, hEnd: 30, sStart: 0.05, sEnd: 0.08, bStart: 4.4, bEnd: 3.3 }, bmedium: { hStart: 30, hEnd: 25, sStart: 0.08, sEnd: 0.15, bStart: 3.3, bEnd: 1.8 }, bdark: { hStart: 25, hEnd: 20, sStart: 0.15, sEnd: 0.15, bStart: 1.8, bEnd: 0.8 }, bgyaru: [ { hStart: 25, hEnd: 30, sStart: 0.05, sEnd: 0.08, bStart: 4.4, bEnd: 3.3 }, { hStart: 30, hEnd: 25, sStart: 0.08, sEnd: 0.15, bStart: 3.3, bEnd: 1.8 }, { hStart: 25, hEnd: 20, sStart: 0.15, sEnd: 0.15, bStart: 1.8, bEnd: 0.8 }, ], slime: { hStart: 200, hEnd: 200, sStart: 0.3, sEnd: 0.5,bStart: 3.6, bEnd: 3.1 }, dft: { hStart: 45, hEnd: 45, sStart: 0.2, sEnd: 0.4, bStart: 4.5, bEnd: 0.7} }>> <<set setup.tanImg to { "doggy":{ "t":{ "doggyactivebase":"img/sex/doggyRed/active/body/doggyactivebase.png", "doggyactivebaseleftarm":"img/sex/doggyRed/active/body/doggyactivebaseleftarm.png", "doggyactivebaselegs":"img/sex/doggyRed/active/body/doggyactivebaselegs.png", "doggyactivebaserightarm":"img/sex/doggyRed/active/body/doggyactivebaserightarm.png", "doggyactiveblush1":"img/sex/doggyRed/active/body/doggyactiveblush1.png", "doggyactiveblush2":"img/sex/doggyRed/active/body/doggyactiveblush2.png", "doggyactiveblush3":"img/sex/doggyRed/active/body/doggyactiveblush3.png", "doggyactiveblush4":"img/sex/doggyRed/active/body/doggyactiveblush4.png", "doggyactiveblush5":"img/sex/doggyRed/active/body/doggyactiveblush5.png", "doggyactivemouth":"img/sex/doggyRed/active/body/doggyactivemouth.png", "freckles":"img/sex/doggyRed/active/body/freckles.png", "breastsTiny":"img/sex/doggyRed/active/body/doggyactivebreaststiny.png", "breastsSmall":"img/sex/doggyRed/active/body/doggyactivebreastssmall.png", "breastsLarge":"img/sex/doggyRed/active/body/doggyactivebreastslarge.png", "breastsHuge":"img/sex/doggyRed/active/body/doggyactivebreastshuge.png", "doggyactivefeetjob":"img/sex/doggyRed/active/body/doggyactivefeetjob.png", "doggyactivefeetjobpenis":"img/sex/doggyRed/active/body/doggyactivefeetjobpenis.png", "doggyactiveleftarmbound":"img/sex/doggyRed/active/body/doggyactiveleftarmbound.png", "doggyactivelefthandjob":"img/sex/doggyRed/active/body/doggyactivelefthandjob.png", "doggyactivelefthandjobpenis":"img/sex/doggyRed/active/body/doggyactivelefthandjobpenis.png", "doggyactivepenis":"img/sex/doggyRed/active/body/doggyactivepenis.png", "doggyactivepenisvirgin":"img/sex/doggyRed/active/body/doggyactivepenisvirgin.png", "doggyactivepush":"img/sex/doggyRed/active/body/doggyactivepush.png", "doggyactivepushlight":"img/sex/doggyRed/active/body/doggyactivepushlight.png", "doggyactiverighthandjob":"img/sex/doggyRed/active/body/doggyactiverighthandjob.png", "doggyactiverighthandjobpenis":"img/sex/doggyRed/active/body/doggyactiverighthandjobpenis.png", "doggyactiveeyelids":"img/sex/doggyRed/active/doggyactiveeyelids.png", "doggyactiveclosedmouth":"img/sex/doggyRed/active/body/doggyactiveclosedmouth.png", "activebeastlefthand":"img/sex/doggyRed/frontbeast/activebeastlefthand.png", "activebeastlefthandpenis":"img/sex/doggyRed/frontbeast/activebeastlefthandpenis.png", "activebeastrighthand":"img/sex/doggyRed/frontbeast/activebeastrighthand.png", "activebeastrighthandpenis":"img/sex/doggyRed/frontbeast/activebeastrighthandpenis.png", "activebearlefthand":"img/sex/doggyRed/frontbeast/bear/activebearlefthand.png", "activebearlefthandpenis":"img/sex/doggyRed/frontbeast/bear/activebearlefthandpenis.png", "activebearrighthand":"img/sex/doggyRed/frontbeast/bear/activebearrighthand.png", "activebearrighthandpenis":"img/sex/doggyRed/frontbeast/bear/activebearrighthandpenis.png", "activecatlefthand":"img/sex/doggyRed/frontbeast/cat/activecatlefthand.png", "activecatlefthandpenis":"img/sex/doggyRed/frontbeast/cat/activecatlefthandpenis.png", "activecatrighthand":"img/sex/doggyRed/frontbeast/cat/activecatrighthand.png", "activecatrighthandpenis":"img/sex/doggyRed/frontbeast/cat/activecatrighthandpenis.png", "activedolphinlefthand":"img/sex/doggyRed/frontbeast/dolphin/activedolphinlefthand.png", "activedolphinlefthandpenis":"img/sex/doggyRed/frontbeast/dolphin/activedolphinlefthandpenis.png", "activedolphinrighthand":"img/sex/doggyRed/frontbeast/dolphin/activedolphinrighthand.png", "activedolphinrighthandpenis":"img/sex/doggyRed/frontbeast/dolphin/activedolphinrighthandpenis.png", "doggyactiveshadow":"img/sex/doggyRed/active/body/doggyactiveshadow.png", "doggyactivechastitycagepenis":"img/sex/doggyRed/active/body/doggyactivechastitycagepenis.png", "doggyactivechastitycagepenissmall":"img/sex/doggyRed/active/body/doggyactivechastitycagepenissmall.png", "doggyactivestrapon":"img/sex/doggyRed/active/body/doggyactivepenisvirgin.png", "doggyanalentrance":"img/sex/doggyRed/doggyanalentrance.png", "doggyanalimminent":"img/sex/doggyRed/doggyanalimminent.png", "doggyoralentrance":"img/sex/doggyRed/doggyoralentrance.png", "doggyoralimminent":"img/sex/doggyRed/doggyoralimminent.png", "doggyvaginalentrance":"img/sex/doggyRed/doggyvaginalentrance.png", "doggyvaginalimminent":"img/sex/doggyRed/doggyvaginalimminent.png", "doggyactiveanal":"img/sex/doggyRed/active/body/doggyactiveanal.png", "doggyactiveanaldap":"img/sex/doggyRed/active/body/doggyactiveanaldap.png", "doggyactiveanaldpp":"img/sex/doggyRed/active/body/doggyactiveanaldpp.png", "doggyactivecheeks":"img/sex/doggyRed/active/body/doggyactivecheeks.png", "doggyactivechest":"img/sex/doggyRed/active/body/doggyactivechest.png", "doggyactivefeetjobpenis":"img/sex/doggyRed/active/body/doggyactivefeetjobpenis.png", "doggyactivefencing":"img/sex/doggyRed/active/body/doggyactivefencing.png", "doggyactivelefthandjobpenis":"img/sex/doggyRed/active/body/doggyactivelefthandjobpenis.png", "doggyactiverighthandjobpenis":"img/sex/doggyRed/active/body/doggyactiverighthandjobpenis.png", "doggyactiveoral":"img/sex/doggyRed/active/body/doggyactiveoral.png", "doggyactivethighs":"img/sex/doggyRed/active/body/doggyactivethighs.png", "doggyactivevaginal":"img/sex/doggyRed/active/body/doggyactivevaginal.png", "doggyactivevaginaldp":"img/sex/doggyRed/active/body/doggyactivevaginaldp.png", "doggyactivepreggybelly":"img/sex/doggyRed/active/body/preggyBelly/pregnancy_belly_" }, "f":{ "doggyactivebase":"img/sex/doggy/active/body/doggyactivebase.png", "doggyactivebaseleftarm":"img/sex/doggy/active/body/doggyactivebaseleftarm.png", "doggyactivebaselegs":"img/sex/doggy/active/body/doggyactivebaselegs.png", "doggyactivebaserightarm":"img/sex/doggy/active/body/doggyactivebaserightarm.png", "breastsTiny":"img/sex/doggy/active/body/doggyactivebreaststiny.png", "doggyactiveblush1":"img/sex/doggy/active/body/doggyactiveblush1.png", "doggyactiveblush2":"img/sex/doggy/active/body/doggyactiveblush2.png", "doggyactiveblush3":"img/sex/doggy/active/body/doggyactiveblush3.png", "doggyactiveblush4":"img/sex/doggy/active/body/doggyactiveblush4.png", "doggyactiveblush5":"img/sex/doggy/active/body/doggyactiveblush5.png", "doggyactivemouth":"img/sex/doggy/active/body/doggyactivemouth.png", "freckles":"img/sex/doggy/active/body/freckles.png", "breastsSmall":"img/sex/doggy/active/body/doggyactivebreastssmall.png", "breastsLarge":"img/sex/doggy/active/body/doggyactivebreastslarge.png", "breastsHuge":"img/sex/doggy/active/body/doggyactivebreastshuge.png", "doggyactivefeetjob":"img/sex/doggy/active/body/doggyactivefeetjob.png", "doggyactivefeetjobpenis":"img/sex/doggy/active/body/doggyactivefeetjobpenis.png", "doggyactiveleftarmbound":"img/sex/doggy/active/body/doggyactiveleftarmbound.png", "doggyactivelefthandjob":"img/sex/doggy/active/body/doggyactivelefthandjob.png", "doggyactivelefthandjobpenis":"img/sex/doggy/active/body/doggyactivelefthandjobpenis.png", "doggyactivepenis":"img/sex/doggy/active/body/doggyactivepenis.png", "doggyactivepenisvirgin":"img/sex/doggy/active/body/doggyactivepenisvirgin.png", "doggyactivepush":"img/sex/doggy/active/body/doggyactivepush.png", "doggyactivepushlight":"img/sex/doggy/active/body/doggyactivepushlight.png", "doggyactiverighthandjob":"img/sex/doggy/active/body/doggyactiverighthandjob.png", "doggyactiverighthandjobpenis":"img/sex/doggy/active/body/doggyactiverighthandjobpenis.png", "doggyactiveeyelids":"img/sex/doggy/active/doggyactiveeyelids.png", "doggyactiveclosedmouth":"img/sex/doggy/active/body/doggyactiveclosedmouth.png", "activebeastlefthand":"img/sex/doggy/frontbeast/activebeastlefthand.png", "activebeastlefthandpenis":"img/sex/doggy/frontbeast/activebeastlefthandpenis.png", "activebeastrighthand":"img/sex/doggy/frontbeast/activebeastrighthand.png", "activebeastrighthandpenis":"img/sex/doggy/frontbeast/activebeastrighthandpenis.png", "activebearlefthand":"img/sex/doggy/frontbeast/bear/activebearlefthand.png", "activebearlefthandpenis":"img/sex/doggy/frontbeast/bear/activebearlefthandpenis.png", "activebearrighthand":"img/sex/doggy/frontbeast/bear/activebearrighthand.png", "activebearrighthandpenis":"img/sex/doggy/frontbeast/bear/activebearrighthandpenis.png", "activecatlefthand":"img/sex/doggy/frontbeast/cat/activecatlefthand.png", "activecatlefthandpenis":"img/sex/doggy/frontbeast/cat/activecatlefthandpenis.png", "activecatrighthand":"img/sex/doggy/frontbeast/cat/activecatrighthand.png", "activecatrighthandpenis":"img/sex/doggy/frontbeast/cat/activecatrighthandpenis.png", "activedolphinlefthand":"img/sex/doggy/frontbeast/dolphin/activedolphinlefthand.png", "activedolphinlefthandpenis":"img/sex/doggy/frontbeast/dolphin/activedolphinlefthandpenis.png", "activedolphinrighthand":"img/sex/doggy/frontbeast/dolphin/activedolphinrighthand.png", "activedolphinrighthandpenis":"img/sex/doggy/frontbeast/dolphin/activedolphinrighthandpenis.png", "doggyactiveshadow":"img/sex/doggy/active/body/doggyactiveshadow.png", "doggyactivechastitycagepenis":"img/sex/doggy/active/body/doggyactivechastitycagepenis.png", "doggyactivechastitycagepenissmall":"img/sex/doggy/active/body/doggyactivechastitycagepenissmall.png", "doggyactivestrapon":"img/sex/doggy/active/body/doggyactivepenisvirgin.png", "doggyanalentrance":"img/sex/doggy/doggyanalentrance.png", "doggyanalimminent":"img/sex/doggy/doggyanalimminent.png", "doggyoralentrance":"img/sex/doggy/doggyoralentrance.png", "doggyoralimminent":"img/sex/doggy/doggyoralimminent.png", "doggyvaginalentrance":"img/sex/doggy/doggyvaginalentrance.png", "doggyvaginalimminent":"img/sex/doggy/doggyvaginalimminent.png", "doggyactiveanal":"img/sex/doggy/active/body/doggyactiveanal.png", "doggyactiveanaldap":"img/sex/doggy/active/body/doggyactiveanaldap.png", "doggyactiveanaldpp":"img/sex/doggy/active/body/doggyactiveanaldpp.png", "doggyactivecheeks":"img/sex/doggy/active/body/doggyactivecheeks.png", "doggyactivechest":"img/sex/doggy/active/body/doggyactivechest.png", "doggyactivefeetjobpenis":"img/sex/doggy/active/body/doggyactivefeetjobpenis.png", "doggyactivefencing":"img/sex/doggy/active/body/doggyactivefencing.png", "doggyactivelefthandjobpenis":"img/sex/doggy/active/body/doggyactivelefthandjobpenis.png", "doggyactiverighthandjobpenis":"img/sex/doggy/active/body/doggyactiverighthandjobpenis.png", "doggyactiveoral":"img/sex/doggy/active/body/doggyactiveoral.png", "doggyactivethighs":"img/sex/doggy/active/body/doggyactivethighs.png", "doggyactivevaginal":"img/sex/doggy/active/body/doggyactivevaginal.png", "doggyactivevaginaldp":"img/sex/doggy/active/body/doggyactivevaginaldp.png", "doggyactivepreggybelly":"img/sex/doggy/active/body/preggyBelly/pregnancy_belly_" } }, "missionary":{ "t":{ "activearmsbound":"img/sex/missionaryRed/active/body/activearmsbound.png", "activebase":"img/sex/missionaryRed/active/body/activebase.png", "activebaseleftarm":"img/sex/missionaryRed/active/body/activebaseleftarm.png", "activebaselegl":"img/sex/missionaryRed/active/body/activebaselegl.png", "activebaselegldown":"img/sex/missionaryRed/active/body/activebaselegldown.png", "activebaselegr":"img/sex/missionaryRed/active/body/activebaselegr.png", "activebaselegrdown":"img/sex/missionaryRed/active/body/activebaselegrdown.png", "activebaserightarm":"img/sex/missionaryRed/active/body/activebaserightarm.png", "activebaserightarmstroke":"img/sex/missionaryRed/active/body/activebaserightarmstroke.png", "activeblush1":"img/sex/missionaryRed/active/body/activeblush1.png", "activeblush2":"img/sex/missionaryRed/active/body/activeblush2.png", "activeblush3":"img/sex/missionaryRed/active/body/activeblush3.png", "activeblush4":"img/sex/missionaryRed/active/body/activeblush4.png", "activeblush5":"img/sex/missionaryRed/active/body/activeblush5.png", "activemouth":"img/sex/missionaryRed/active/body/activemouth.png", "freckles":"img/sex/missionaryRed/active/body/freckles.png", "breastsTiny":"img/sex/missionaryRed/active/body/activebreaststiny.png", "breastsSmall":"img/sex/missionaryRed/active/body/activebreastssmall.png", "breastsLarge":"img/sex/missionaryRed/active/body/activebreastslarge.png", "breastsHuge":"img/sex/missionaryRed/active/body/activebreastshuge.png", "activefeetjob":"img/sex/missionaryRed/active/body/activefeetjob.png", "activefeetjobpenis":"img/sex/missionaryRed/active/body/activefeetjobpenis.png", "activeleftarmbound":"img/sex/missionaryRed/active/body/activeleftarmbound.png", "activelefthandjob":"img/sex/missionaryRed/active/body/activelefthandjob.png", "activelefthandjobpenis":"img/sex/missionaryRed/active/body/activelefthandjobpenis.png", "activepenis":"img/sex/missionaryRed/active/body/activepenis.png", "activepenisdown":"img/sex/missionaryRed/active/body/activepenisdown.png", "activepenisvirgin":"img/sex/missionaryRed/active/body/activepenisvirgin.png", "activepenisvirgindown":"img/sex/missionaryRed/active/body/activepenisvirgindown.png", "activepush":"img/sex/missionaryRed/active/body/activepush.png", "activepushlight":"img/sex/missionaryRed/active/body/activepushlight.png", "activerighthandjob":"img/sex/missionaryRed/active/body/activerighthandjob.png", "activerighthandjobpenis":"img/sex/missionaryRed/active/body/activerighthandjobpenis.png", "activeeyelids":"img/sex/missionaryRed/active/activeeyelids.png", "activeshadow":"img/sex/missionaryRed/active/body/activeshadow.png", "activechastitycagepenis":"img/sex/missionaryRed/active/body/activechastitycagepenis.png", "activechastitycagedownpenis":"img/sex/missionaryRed/active/body/activechastitycagedownpenis.png", "activechastitycagedownpenissmall":"img/sex/missionaryRed/active/body/activechastitycagedownpenissmall.png", "activechastitycagedownpenisflat":"img/sex/missionaryRed/active/body/activechastitycagedownpenisflat.png", "activeclosedmouth":"img/sex/missionaryRed/active/body/activeclosedmouth.png", "activestrapon":"img/sex/missionaryRed/active/body/activepenisvirgin.png", "activestrapondown":"img/sex/missionaryRed/active/body/activepenisvirgindown.png", "analentrance":"img/sex/missionaryRed/analentrance.png", "vaginalentrance":"img/sex/missionaryRed/vaginalentrance.png", "activeanal":"img/sex/missionaryRed/active/body/activeanal.png", "activeanaldoublemissionary":"img/sex/missionaryRed/active/body/activeanaldoublemissionary.png", "activechest":"img/sex/missionaryRed/active/body/activechest.png", "activefeetjobpenis":"img/sex/missionaryRed/active/body/activefeetjobpenis.png", "activeanal":"img/sex/missionaryRed/active/body/activeanal.png", "activefencing":"img/sex/missionaryRed/active/body/activefencing.png", "activelefthandjobpenis":"img/sex/missionaryRed/active/body/activelefthandjobpenis.png", "activerighthandjobpenis":"img/sex/missionaryRed/active/body/activerighthandjobpenis.png", "activeoral":"img/sex/missionaryRed/active/body/activeoral.png", "activethighs":"img/sex/missionaryRed/active/body/activethighs.png", "activevaginal":"img/sex/missionaryRed/active/body/activevaginal.png", "activevaginaldouble":"img/sex/missionaryRed/active/body/activevaginaldouble.png", "activepreggybelly":"img/sex/missionaryRed/active/body/preggyBelly/pregnancy_belly_" }, "f":{ "activearmsbound":"img/sex/missionary/active/body/activearmsbound.png", "activebase":"img/sex/missionary/active/body/activebase.png", "activebaseleftarm":"img/sex/missionary/active/body/activebaseleftarm.png", "activebaselegl":"img/sex/missionary/active/body/activebaselegl.png", "activebaselegldown":"img/sex/missionary/active/body/activebaselegldown.png", "activebaselegr":"img/sex/missionary/active/body/activebaselegr.png", "activebaselegrdown":"img/sex/missionary/active/body/activebaselegrdown.png", "activebaserightarm":"img/sex/missionary/active/body/activebaserightarm.png", "activebaserightarmstroke":"img/sex/missionary/active/body/activebaserightarmstroke.png", "activeblush1":"img/sex/missionary/active/body/activeblush1.png", "activeblush2":"img/sex/missionary/active/body/activeblush2.png", "activeblush3":"img/sex/missionary/active/body/activeblush3.png", "activeblush4":"img/sex/missionary/active/body/activeblush4.png", "activeblush5":"img/sex/missionary/active/body/activeblush5.png", "activemouth":"img/sex/missionary/active/body/activemouth.png", "freckles":"img/sex/missionary/active/body/freckles.png", "breastsTiny":"img/sex/missionary/active/body/activebreaststiny.png", "breastsSmall":"img/sex/missionary/active/body/activebreastssmall.png", "breastsLarge":"img/sex/missionary/active/body/activebreastslarge.png", "breastsHuge":"img/sex/missionary/active/body/activebreastshuge.png", "activefeetjob":"img/sex/missionary/active/body/activefeetjob.png", "activefeetjobpenis":"img/sex/missionary/active/body/activefeetjobpenis.png", "activeleftarmbound":"img/sex/missionary/active/body/activeleftarmbound.png", "activelefthandjob":"img/sex/missionary/active/body/activelefthandjob.png", "activelefthandjobpenis":"img/sex/missionary/active/body/activelefthandjobpenis.png", "activepenis":"img/sex/missionary/active/body/activepenis.png", "activepenisdown":"img/sex/missionary/active/body/activepenisdown.png", "activepenisvirgin":"img/sex/missionary/active/body/activepenisvirgin.png", "activepenisvirgindown":"img/sex/missionary/active/body/activepenisvirgindown.png", "activepush":"img/sex/missionary/active/body/activepush.png", "activepushlight":"img/sex/missionary/active/body/activepushlight.png", "activerighthandjob":"img/sex/missionary/active/body/activerighthandjob.png", "activerighthandjobpenis":"img/sex/missionary/active/body/activerighthandjobpenis.png", "activeeyelids":"img/sex/missionary/active/activeeyelids.png", "activeshadow":"img/sex/missionary/active/body/activeshadow.png", "activechastitycagepenis":"img/sex/missionary/active/body/activechastitycagepenis.png", "activechastitycagedownpenis":"img/sex/missionary/active/body/activechastitycagedownpenis.png", "activechastitycagedownpenissmall":"img/sex/missionary/active/body/activechastitycagedownpenissmall.png", "activechastitycagedownpenisflat":"img/sex/missionary/active/body/activechastitycagedownpenisflat.png", "activeclosedmouth":"img/sex/missionary/active/body/activeclosedmouth.png", "activestrapon":"img/sex/missionary/active/body/activepenisvirgin.png", "activestrapondown":"img/sex/missionary/active/body/activepenisvirgindown.png", "analentrance":"img/sex/missionary/analentrance.png", "vaginalentrance":"img/sex/missionary/vaginalentrance.png", "activeanal":"img/sex/missionary/active/body/activeanal.png", "activeanaldoublemissionary":"img/sex/missionary/active/body/activeanaldoublemissionary.png", "activechest":"img/sex/missionary/active/body/activechest.png", "activefeetjobpenis":"img/sex/missionary/active/body/activefeetjobpenis.png", "activeanal":"img/sex/missionary/active/body/activeanal.png", "activefencing":"img/sex/missionary/active/body/activefencing.png", "activelefthandjobpenis":"img/sex/missionary/active/body/activelefthandjobpenis.png", "activerighthandjobpenis":"img/sex/missionary/active/body/activerighthandjobpenis.png", "activeoral":"img/sex/missionary/active/body/activeoral.png", "activethighs":"img/sex/missionary/active/body/activethighs.png", "activevaginal":"img/sex/missionary/active/body/activevaginal.png", "activevaginaldouble":"img/sex/missionary/active/body/activevaginaldouble.png", "activepreggybelly":"img/sex/missionary/active/body/preggyBelly/pregnancy_belly_" } }, "close":{ "missionary":{ "t":{ "anus":"img/sex/closeRed/missionary/anus.png", "anuspenetrate":"img/sex/closeRed/missionary/anuspenetrate.png", "penis":"img/sex/closeRed/missionary/penis.png", "penisparasite":"img/sex/closeRed/missionary/penisparasite.png", "penisentrance":"img/sex/closeRed/missionary/penisentrance.png", "penispenetrated":"img/sex/closeRed/missionary/penispenetrated.png", "chastitypenis":"img/sex/closeRed/missionary/chastitypenis.png", "chastitypenisparasite":"img/sex/closeRed/missionary/chastitypenisparasite.png", "chastitypenissmall":"img/sex/closeRed/missionary/chastitypenissmall.png", "chastitypenisparasitesmall":"img/sex/closeRed/missionary/chastitypenisparasitesmall.png", "chastitypenisflat":"img/sex/closeRed/missionary/chastitypenisflat.png", "chastitypenisparasiteflat":"img/sex/closeRed/missionary/chastitypenisparasiteflat.png", "penisbase":"img/sex/closeRed/missionary/penisbase.png", "futapenisnoballs":"img/sex/closeRed/missionary/futapenisnoballs.png", "futapenisbase":"img/sex/closeRed/missionary/futapenisbase.png", "vagina":"img/sex/closeRed/missionary/vagina.png", "vaginaaroused":"img/sex/closeRed/missionary/vaginaaroused.png", "futavagina":"img/sex/closeRed/missionary/futavagina.png", "futavaginaparasite":"img/sex/closeRed/missionary/futavaginaparasite.png", "futavaginanoballs":"img/sex/closeRed/missionary/futavaginanoballs.png", "vaginaChastityBase":"img/sex/closeRed/missionary/chastityBelt/vaginaBase.png", "vaginaChastityMan":"img/sex/closeRed/missionary/chastityBelt/man.png", "vaginapenetrate":"img/sex/closeRed/missionary/vaginapenetrate.png", "vaginapenetratebig":"img/sex/closeRed/missionary/vaginapenetratebig.png", "penis1":"img/sex/closeRed/missionary/beast/penis1.png", "penisparasite1":"img/sex/closeRed/missionary/beast/penisparasite1.png", "penisentrance1":"img/sex/closeRed/missionary/beast/penisentrance1.png", "penisparasiteentrance1":"img/sex/closeRed/missionary/beast/penisparasiteentrance1.png", "penisimminent1":"img/sex/closeRed/missionary/beast/penisimminent1.png", "penisparasiteimminent1":"img/sex/closeRed/missionary/beast/penisparasiteimminent1.png", "penisnoballs":"img/sex/closeRed/missionary/beast/penisnoballs.png", "penisentrancenoballs":"img/sex/closeRed/missionary/beast/penisentrancenoballs.png", "penisimminentnoballs":"img/sex/closeRed/missionary/beast/penisimminentnoballs.png", "chest":"img/sex/closeRed/chest/" }, "f":{ "anus":"img/sex/close/missionary/anus.png", "anuspenetrate":"img/sex/close/missionary/anuspenetrate.png", "penis":"img/sex/close/missionary/penis.png", "penisparasite":"img/sex/close/missionary/penisparasite.png", "penisentrance":"img/sex/close/missionary/penisentrance.png", "penispenetrated":"img/sex/close/missionary/penispenetrated.png", "chastitypenis":"img/sex/close/missionary/chastitypenis.png", "chastitypenisparasite":"img/sex/close/missionary/chastitypenis.png", "chastitypenissmall":"img/sex/close/missionary/chastitypenissmall.png", "chastitypenisparasitesmall":"img/sex/close/missionary/chastitypenissmall.png", "chastitypenisflat":"img/sex/close/missionary/chastitypenisflat.png", "chastitypenisparasiteflat":"img/sex/close/missionary/chastitypenisflat.png", "penisbase":"img/sex/close/missionary/penisbase.png", "futapenisnoballs":"img/sex/close/missionary/futapenisnoballs.png", "futapenisbase":"img/sex/close/missionary/futapenisbase.png", "vagina":"img/sex/close/missionary/vagina.png", "vaginaaroused":"img/sex/close/missionary/vaginaaroused.png", "futavagina":"img/sex/close/missionary/futavagina.png", "futavaginaparasite":"img/sex/close/missionary/futavaginaparasite.png", "futavaginanoballs":"img/sex/close/missionary/futavaginanoballs.png", "vaginaChastityBase":"img/sex/close/missionary/chastityBelt/vaginaBase.png", "vaginaChastityMan":"img/sex/close/missionary/chastityBelt/man.png", "vaginapenetrate":"img/sex/close/missionary/vaginapenetrate.png", "vaginapenetratebig":"img/sex/close/missionary/vaginapenetratebig.png", "penis1":"img/sex/close/missionary/beast/penis1.png", "penisparasite1":"img/sex/close/missionary/beast/penisparasite1.png", "penisentrance1":"img/sex/close/missionary/beast/penisentrance1.png", "penisparasiteentrance1":"img/sex/close/missionary/beast/penisparasiteentrance1.png", "penisimminent1":"img/sex/close/missionary/beast/penisimminent1.png", "penisparasiteimminent1":"img/sex/close/missionary/beast/penisparasiteimminent1.png", "penisnoballs":"img/sex/close/missionary/beast/penisnoballs.png", "penisentrancenoballs":"img/sex/close/missionary/beast/penisentrancenoballs.png", "penisimminentnoballs":"img/sex/close/missionary/beast/penisimminentnoballs.png", "chest":"img/sex/close/chest/" } }, "doggy":{ "t":{ "anus":"img/sex/closeRed/doggy/anus.png", "anuspenetrate":"img/sex/closeRed/doggy/anuspenetrate.png", "penis":"img/sex/closeRed/doggy/penis.png", "penisparasite":"img/sex/closeRed/doggy/penisparasite.png", "penisentrance":"img/sex/closeRed/doggy/penisentrance.png", "penispenetrated":"img/sex/closeRed/doggy/penispenetrated.png", "chastitypenis":"img/sex/closeRed/doggy/chastitypenis.png", "chastitypenisparasite":"img/sex/closeRed/doggy/chastitypenisparasite.png", "chastitypenissmall":"img/sex/closeRed/doggy/chastitypenissmall.png", "chastitypenisparasitesmall":"img/sex/closeRed/doggy/chastitypenisparasitesmall.png", "chastitypenisflat":"img/sex/closeRed/doggy/chastitypenisflat.png", "chastitypenisparasiteflat":"img/sex/closeRed/doggy/chastitypenisparasiteflat.png", "penisbase":"img/sex/closeRed/doggy/penisbase.png", "futapenisnoballs":"img/sex/closeRed/doggy/futapenisnoballs.png", "futapenisbase":"img/sex/closeRed/doggy/futapenisbase.png", "vagina":"img/sex/closeRed/doggy/vagina.png", "vaginaaroused":"img/sex/closeRed/doggy/vaginaaroused.png", "futavagina":"img/sex/closeRed/doggy/futavagina.png", "futavaginaparasite":"img/sex/closeRed/doggy/futavaginaparasite.png", "futavaginanoballs":"img/sex/closeRed/doggy/futavaginanoballs.png", "vaginaChastityBase":"img/sex/closeRed/doggy/chastityBelt/vaginaBase.png", "vaginaChastityMan":"img/sex/closeRed/doggy/chastityBelt/man.png", "vaginapenetrate":"img/sex/closeRed/doggy/vaginapenetrate.png", "vaginapenetratebig":"img/sex/closeRed/doggy/vaginapenetratebig.png", "penis1":"img/sex/closeRed/doggy/beast/penis1.png", "penisparasite1":"img/sex/closeRed/doggy/beast/penisparasite1.png", "penisentrance1":"img/sex/closeRed/doggy/beast/penisentrance1.png", "penisparasiteentrance1":"img/sex/closeRed/doggy/beast/penisparasiteentrance1.png", "penisimminent1":"img/sex/closeRed/doggy/beast/penisimminent1.png", "penisparasiteimminent1":"img/sex/closeRed/doggy/beast/penisparasiteimminent1.png", "penisnoballs":"img/sex/closeRed/doggy/beast/penisnoballs.png", "penisentrancenoballs":"img/sex/closeRed/doggy/beast/penisentrancenoballs.png", "penisimminentnoballs":"img/sex/closeRed/doggy/beast/penisimminentnoballs.png", "chest":"img/sex/closeRed/chest/" }, "f":{ "anus":"img/sex/close/doggy/anus.png", "anuspenetrate":"img/sex/close/doggy/anuspenetrate.png", "penis":"img/sex/close/doggy/penis.png", "penisparasite":"img/sex/close/doggy/penisparasite.png", "penisentrance":"img/sex/close/doggy/penisentrance.png", "penispenetrated":"img/sex/close/doggy/penispenetrated.png", "chastitypenis":"img/sex/close/doggy/chastitypenis.png", "chastityparasitepenis":"img/sex/close/doggy/chastitypenis.png", "chastitypenissmall":"img/sex/close/doggy/chastitypenissmall.png", "chastitypenisparasitesmall":"img/sex/close/doggy/chastitypenissmall.png", "chastitypenisflat":"img/sex/close/doggy/chastitypenisflat.png", "chastitypenisparasiteflat":"img/sex/close/doggy/chastitypenisflat.png", "penisbase":"img/sex/close/doggy/penisbase.png", "futapenisnoballs":"img/sex/close/doggy/futapenisnoballs.png", "futapenisbase":"img/sex/close/doggy/futapenisbase.png", "vagina":"img/sex/close/doggy/vagina.png", "vaginaaroused":"img/sex/close/doggy/vaginaaroused.png", "futavagina":"img/sex/close/doggy/futavagina.png", "futavaginaparasite":"img/sex/close/doggy/futavaginaparasite.png", "futavaginanoballs":"img/sex/close/doggy/futavaginanoballs.png", "vaginaChastityBase":"img/sex/close/doggy/chastityBelt/vaginaBase.png", "vaginaChastityMan":"img/sex/close/doggy/chastityBelt/man.png", "vaginapenetrate":"img/sex/close/doggy/vaginapenetrate.png", "vaginapenetratebig":"img/sex/close/doggy/vaginapenetratebig.png", "penis1":"img/sex/close/doggy/beast/penis1.png", "penisparasite1":"img/sex/close/doggy/beast/penisparasite1.png", "penisentrance1":"img/sex/close/doggy/beast/penisentrance1.png", "penisparasiteentrance1":"img/sex/close/doggy/beast/penisparasiteentrance1.png", "penisimminent1":"img/sex/close/doggy/beast/penisimminent1.png", "penisparasiteimminent1":"img/sex/close/doggy/beast/penisparasiteimminent1.png", "penisnoballs":"img/sex/close/doggy/beast/penisnoballs.png", "penisentrancenoballs":"img/sex/close/doggy/beast/penisentrancenoballs.png", "penisimminentnoballs":"img/sex/close/doggy/beast/penisimminentnoballs.png", "chest":"img/sex/close/chest/" } } } }>> <<set setup.npcSkinDefaults to { "white":"hue-rotate(30deg) saturate(0.20) brightness(4.10)", "black":"hue-rotate(52deg) saturate(0.45) brightness(1.70)", "ghost":"hue-rotate(30deg) saturate(0.10) brightness(4.50) opacity(80%)" }>> <<set setup.shadowImage to { "doggy": [ "sexbase", "sexlegsdoggy", "sexbasefront", "beastforeground", "shadowman", "shadowmanbackground", "shadowmanforeground" ], "missionary": [ "sexbase", "sexlower", "sexhair", "sexbasefront", "layer-sexwings", "halo-front", "sexrightleg", "sexarmsbound", "sexaboveclothes", "foreground", "sexbaseoverlay", "beastforeground", "shadowman", "shadowmanbackground", "shadowmanforeground" ] }>> <<set setup.bodyliquid to { /* edit the bodyparts list to add a new bodypart, or the liquidtypes list to add a new liquid */ "bodyparts": [ "neck","rightarm","leftarm","thigh","bottom","tummy","chest","face","hair","feet","vaginaoutside","vagina","penis","anus","mouth" ], "outerbodyparts": [ "neck","rightarm","leftarm","thigh","bottom","tummy","chest","face","hair","feet","vaginaoutside","penis" ], "innerbodyparts": [ "vagina","anus","mouth" ], "liquidtype": [ "goo", "semen", "nectar" ], combined(bodypart){ return $player.bodyliquid[bodypart].goo + $player.bodyliquid[bodypart].semen + $player.bodyliquid[bodypart].nectar; } }>> <<set setup.bodyparts to ["forehead", "left_cheek", "right_cheek", "left_shoulder", "right_shoulder", "breasts", "back", "left_bottom", "right_bottom", "pubic", "left_thigh", "right_thigh"]>> <<set setup.clothingLayer to { "all": ["over_upper","over_lower","over_head","upper","lower","under_upper","under_lower","head","face","neck","hands","handheld","legs","feet"], "body": ["upper","lower","under_upper","under_lower","head","face","neck","hands","handheld","legs","feet"], "torso": ["over_upper","over_lower","upper","lower","under_upper","under_lower"], "torso_inner": ["upper","lower","under_upper","under_lower"], "torso_outer": ["over_upper","over_lower","upper","lower"], "over": ["over_upper","over_lower","over_head"], "upper": ["upper", "under_upper"], "lower": ["lower","under_lower"] }>> /*All items that should never be placed in the wardrobe*/ <<set setup.wardrobeSkip to ["naked","towel top","large towel","towel skirt","large towel bottom","plant skirt","plant top"]>> <<set setup.actionsTypes to { 'personTypes': [ 'Everyone', 'Strangers', 'Acquaintances', 'Alternative', 'Defiant', 'Submissive', 'Animals', 'Tentacles', 'Bailey', 'Robin', 'Whitney', 'Kylar', 'Sydney', 'Eden', 'Avery', 'Leighton', 'Alex', 'Ivory Wraith', 'Black Wolf', 'Great Hawk' ], 'combatTypes': [ 'rape', 'consensual' ], 'actionTypes': [ 'leftaction', 'rightaction', 'feetaction', 'mouthaction', 'penisaction', 'vaginaaction', 'anusaction', 'askActions', 'regrab' ] }>> /* Temporary until location rework */ <<set setup.majorAreas to [ "Orphanage", "Bedroom", "Barb Street", "Cliff Street", "Connudatus Street", "Danube Street", "Domus Street", "Elk Street", "Harvest Street", "High Street", "Mer Street", "Nightingale Street", "Oxford Street", "Starfish Street", "Wolf Street", "Residential Alleyways", "Commercial Alleyways", "Industrial Alleyways", "Park", "Hallways", "Brothel", "Strip Club", "Beach", "Ocean Breeze", "Docks Work", "Residential Drain", "Commercial Drain", "Industrial Drain", "Forest", "Farmland", "Livestock Field", "Moor", "Forest Wolf Cave", "Wolf Cave", "Wolf Cave Clearing", "Asylum", "Asylum Cell", "Underground Cell", "Prison Cell", "Island", "Eden Cabin", "Bird Tower", ]>> /* Temporary until location rework */ <<set setup.passOutAreas to [...setup.majorAreas, "Sea", "Lake Underwater", "Sea Cliffs", "Sea Docks", "Sea Rocks", "Sea Beach", "Lake Shallows", "Lake Depths", "Lake Shallows Ice", "Lake Depths Ice", "Estate"]>> <<set setup.clothingStateIndex to {"chest": 6, "midriff": 5, "waist": 4, "thighs": 3, "knees": 2, "ankles": 1}>> <<set setup.clothingStateNextDown to { "chest": "midriff", "midriff": "waist", "waist": "thighs", "thighs": "knees", "knees": "ankles", "ankles": 0, }>> <<set setup.clothingStateNextUp to { "chest": 0, "midriff": "chest", "waist": "midriff", "thighs": "waist", "knees": "thighs", "ankles": "knees", }>> <<set setup.npcPenisRemarks to { "big": ["Your body feels weak at the sight.","You shudder at the sight.","You moan involuntarily at its size.","You gasp at its massive girth.","Your thighs feel weak as you look on."], "small": ["You stifle a laugh at the sight.","You smirk at the sight.","You stifle a chuckle at the sight.","You stifle a giggle at the sight.","You try not to laugh."] }>> <<set setup.breastsizes to ["", "budding", "tiny", "small", "pert", "modest", "full", "large", "ample", "massive", "huge", "gigantic", "enormous"]>> <<set setup.penisSizes to ["micro", "mini", "tiny", "small", "normal", "large", "enormous"]>> <<set setup.NPCVirginityTypes to {"anal": false, "oral": false, "penile": false, "vaginal": false, "handholding": false, "temple": false, "kiss": false}>> <<set setup.NPCVirginityTypesVirgin to {"anal": true, "oral": true, "penile": true, "vaginal": true, "handholding": true, "temple": false, "kiss": true}>> <<set setup.pharmacyItems to { "penis_reduction": { "type": "penis reduction", "name": "penis reduction pills", "price": 15000, }, "penis_growth": { "type": "penis growth", "name": "penis growth pills", "price": 15000, }, "penis_blocker": { "type": "penis blocker", "name": "penis growth blocker pills", "price": 20000, }, "breast_reduction": { "type": "breast reduction", "name": "breast reduction pills", "price": 15000, }, "breast_growth": { "type": "breast growth", "name": "breast growth pills", "price": 15000, }, "breast_blocker": { "type": "breast blocker", "name": "breast growth blocker pills", "price": 20000, }, "bottom_reduction": { "type": "bottom reduction", "name": "bottom reduction pills", "price": 15000, }, "bottom_growth": { "type": "bottom growth", "name": "bottom growth pills", "price": 15000, }, "bottom_blocker": { "type": "bottom blocker", "name": "bottom growth blocker pills", "price": 20000, }, "Anti-Parasite Cream": { "type": "Anti-Parasite Cream", "name": "anti-parasite cream", "price": 25000, }, "condoms": { "type": "condoms", "name": "condoms", "price": 6000, }, "pregnancy_test": { "type": "pregnancy test", "name": "pregnancy test", "price": 2500, }, "fertility_pills": { "type": "fertility booster", "name": "fertility booster", "price": 50000, }, "contraceptive_pills": { "type": "contraceptive", "name": "contraceptive", "price": 25000, }, "Morning_After_pill": { "type": "Morning After pill", "name": "Morning After pill", "price": 200, }, "breast_pump": { "type": "Breast Pump", "name": "breast pump", "price": 5000, }, }>> <<set setup.estateBlackjack to { /* stats don't go down, so you can consider the money to be a temporary bypass ("I have £452501558102 so I'll be fine if I lose"), while the stat checks give a "I have won 21958125 games, I won't lose" confidence boost */ /* primary requirements given which the player can choose a given ante */ "primaryRequirements": [ { "message": "Win at least 10 rounds of blackjack, or have £2,500 on you.", "check": "$estatePersistent.totalRoundsWon gte 10" }, { "message": "Win at least £500 worth of bets, or have £5,000 on you.", "check": "$estatePersistent.totalBetMoneyMade gte 50000" }, { "message": "Win at least £1,000 worth of bets, or have £10,000 on you.", "check": "$estatePersistent.totalBetMoneyMade gte 100000" } ], /* alternatively, the minimum amount of money you need to have for PC to be confident enough to risk betting it */ "confidenceMoney": [250000, 500000, 1000000], /* low max bet usually is used by casinos to make sure players don't make more than the casino can pay out (or rather, makes it safer for the casino) however, there's also the fact that you can use low bets, or a small ratio between the min and max bet prevents the usage of the martingale strategy */ "betSteps": [100, 200, 500 ], "baseMaxBets": [2500, 5000, 10000 ], "anteSizes": [25000, 50000, 100000], }>> <<set setup.parasiteTypesPerBodypart to { "nipples": ["none", "urchin", "slime"], "penis": ["none", "urchin", "slime"], "clit": ["none", "urchin", "slime"], "bottom": ["none", "urchin", "slime", "maggot"], "left_thigh": ["none", "maggot"], "right_thigh": ["none", "maggot"], "left_arm": ["none", "maggot"], "right_arm": ["none", "maggot"], "left_ear": ["none", "slime"], "right_ear": ["none", "slime"], "tummy": ["none", "urchin", "slime", "maggot"], }>> /*Note: Pregnancy - adjust as require and ensure that <<npcPregnancyUpdater>> is running in backComp*/ /*Should match with $NPCNameList*/ /*FOR `canBePregnant` DO NOT REMOVE FROM LIST ONCE ENABLED FOR OFFICAL VERSIONS, IT WILL DELETE EXISTING PREGNANCIES FOR NPCS*/ /*For `typesEnabled` only include pregnancy types that can be achieved ingame, parasites or their sub-types should never be included*/ /* ToDo: Gwylan - re-add Gwylan here later */ <<set setup.pregnancy to { canBePregnant: ["Alex","Black Wolf","Great Hawk"], canImpregnatePlayer: ["Alex","Black Wolf","Great Hawk"], infertile: ["Bailey", "Leighton"], ignoresIncompleteCheck: ["Ivory Wraith"], typesEnabled: ["human", "wolf", "wolfboy", "wolfgirl", "hawk", "harpy"], randomAlwaysKeep: ["wolf_cave"] }>> /* The list of art styles for the face. Please follow this convention: */ /* { "Name presented ingame to players": "actual value within the code / folder name" } */ <<set setup.faceStyleOptions to { "Traditional": "default" }>> /* The list of $facevariant options grouped by $facestyle. Please follow this convention: */ /* { "$facestyle value": */ /* { "Face variant name": "actual value / folder name" } */ /* } */ /* Please update whenever a new face variant or face style is added */ /* The first variant of a style should always be assigned the value "default" within the code, regardless of */ /* what it is presented as to players. As an example: players will see it called "Gentle" variant, but its value */ /* in code and its folder name shall be "default" */ <<set setup.faceVariantOptions to { "default": { "Gentle": "default", "Catty": "catty", "Aloof": "aloof", "Sweet": "sweet", "Foxy": "foxy", "Gloomy": "gloomy", }, }>> <<set setup.bodyShapes to ["classic", "slender", "curvy", "soft"]>> <<setupTransformations>> <<set setup.badEndReasonText = { abductedMoor: "Abducted by Remy's goons on the moor", arrested: "Arrested by corrupt cops", asylumBlackWolf: "Rescued by the Black Wolf", asylumDischarged: "Discharged by Harper", asylumDischargedLabour: "Discharged by Harper after giving birth", asylumEden: "Rescued by Eden", asylumHospital: "Hospital bed examination", asylumHospital2: "Asked for an emergency appointment", asylumSabotage: "Escaped by sabotage", asylumTentacle: "Escaped through your mirror in the tentacle plains", asylumTentacleAngel: "Escaped by the tentacle plains with angelic power", cardCheating: "Caught cheating at cards", edenAccepted: "Accepted Eden", edenEscape: "Escaped", edenEscapeNight: "Escaped at night", edenHunted: "Hunted and caught by Eden", edenHuntedSubmitted: "Hunted and submitted to Eden", escaped: "Escaped", escapedSoaring: "Escaped by soaring away", kylarAbduction: "", kylarAbductionLeave: "Escaped", kylarAbductionRescued: "Rescued by Jordan and Bailey", kylarAbductionReleased: "Released by Kylar", kylarStockholm: "Accepted by Kylar", kylarStockholmRefused: "Accepted by Kylar", labour: "Went into labour", minesEscapedBasement: "Found an entrance to a basement", minesEscapedDrain: "Found the town drains", minesEscapedPassoutDrain: "Passed out and found the town drains", minesSold: "Sold to the mines", poundMistake: "Mistaken for a dog", poundSubmitted: "Submitted after freeing the black dog", poundCaught: "Caught after freeing the black dog", poundEscapeCages: "Escaped after opening all of the cages", poundEscapeDoor: "Escaped through the metal door", poundEscapeWon: "Won the pound show", prisonWren: "Escaped on Wren's boat", prisonWrenKylar: "Escaped on Wren's boat with Kylar", prisonRut: "Passed out in the rut", prisonSentenced: "Sentenced to prison", prisonServed: "Served your sentence", prisonSwimming: "Escaped by swimming away", soldBailey: "Sold by Bailey", soldBaileyRobin: "Sold with Robin by Bailey", soldBriar: "Sold out by Briar", tempPassout: "Caught when passed out due to extreme temperatures", uDungeonDefeated: "Defeated a client and escaped", uDungeonDumped: "Dumped like a broken toy", uDungeonLake: "Escaped into the underground lake", uDungeonLakeRobin: "Escaped into the underground lake with Robin", uDungeonSneak: "No cell could hold you", uDungeonOutran: "Outran the hunters", uDungeonOutranRobin: "Outran the hunters with Robin", uDungeonPolice: "Abducted while trying to escape the police", uDungeonPresented: "Escaped while being presented", uDungeonSaved: "Saved by a plant person", uFarmBetrayedLost: "Lost a fight after being betrayed by the van owner", uFarmBetrayed: "Betrayed by the van owner", uFarmEscapedCentaurKiss: "Escaped after kissing the centaur", uFarmEscapedCentaurThank: "Escaped after thanking the centaur", uFarmEscapedHorse: "Escaped on a horse", uFarmEscapedNightRiver: "Escaped into the river at night", uFarmEscapedNightHole: "Escaped at night after digging a hole", uFarmEscapedFamiliar: "Dumped in the moor as tainted stock", wolfCaveCaptured: "", wolfCaveAccepted: "Accepted as a member of the pack", wolfCaveDiggingAHole: "Escaped after digging a hole", wolfCaveDefeated: "Defeated the pack", wolfCaveFeared: "Feared enough to walk away", wolfCaveTrusted: "Trusted enough to walk away", teleportCheater: "Teleported out. You cheater.", }>> /* key: internal name of the challenge. used to determine what set a challenge is part of with regex .split(), so all keys must be camelCase and start with their set name: the name that gets printed, the name the player sees desc1: the full description. if solo, the second sentence is isolated for the summary desc2: the summary. optional, only included for cases where it's different from the second sentence of desc1, like handLongPatrol, where desc1 has "He" and desc2 has "The Bishop's Hand" */ <<set setup.hopelessCycleChallenges to [ { key: "handLongPatrol", name: "A Steady Hand", desc1: "The Bishop's Hand is dedicated to his job. He will patrol the dungeon one hour earlier and one hour later each day.", desc2: "The Bishop's Hand will patrol the dungeon one hour earlier and one hour later each day.", }, { key: "handStrict", name: "A Firm Hand", desc1: "The Bishop's Hand is strict about prisoner inspection. If he notices something about the witch before penance, he will comment on it even if he commented on it a previous day.", desc2: "If the Bishop's Hand notices something about the witch during penance, he will comment on it, even if he commented on it a previous day.", }, { key: "handCruel", name: "A Cruel Hand", desc1: "The Bishop's Hand seeks to make the witch suffer. Damage dealt to the witch during penance is increased, and penance will always result in a physical punishment.", }, { key: "torchFaster", name: "Drown in Smoke", desc1: "Kindling is in short supply. Any torches that can be taken as items only have half the lifespan, though dungeon torches are unaffected.", }, { key: "torchSnuffer", name: "Not Up to Snuff", desc1: "Dungeon equipment is heavily monitored. The snuffer can only be used to snuff the dungeon torches and cannot be taken as an item.", }, { key: "torchDarker", name: "Artificial Daylight", desc1: "The sunlight doesn't reach so far down. Torches are required to see the witch, even during the day.", }, { key: "faithBanish", name: "Wavering Resolve", desc1: "The gaoler lacks faith in his beliefs. The 'Banish' action is restricted to once for the entire week.", }, { key: "faithBurden", name: "A Heart So Burdened", desc1: "The gaoler shoulders as much as he can muster, for Holy Virgo's sake. Permanent 50% temple burden.", }, { key: "faithBlooms", name: "Cruelty's Sake", desc1: "The gaoler's charge has been victimized. There is a new requirement to achieve Ending S.", }, { key: "forestFurther", name: "Nature's Encroachment", desc1: "The wild forest grows uncontrolled. Traversing the forest takes longer.", }, { key: "forestNoShortcut", name: "Glass Gatekeeper", desc1: "The disposal channel hides a hall of mirrors. You must pay tribute before taking the shortcut from the disposal channel to the forest.", }, { key: "forestItem", name: "Thieving Spirits", desc1: "There have been whispers of mischievous spirits, as much plant as they are people. Dropped items in the forest will disappear extremely quickly.", }, { key: "waterLeaky", name: "Leaky Buckets", desc1: "The buckets are full of holes. Water can only remain in a bucket for five hours before automatically spilling out.", }, { key: "waterDirty", name: "Inefficient Cleaning", desc1: "Cleaning is less effective. Water becomes tainted after only being used once.", }, { key: "waterEarly", name: "Unwell", desc1: "Disaster strikes. The well is tainted from the start.", }, { key: "itemDirty", name: "Unclean Floors", desc1: "The temple floors are unswept. All items will immediately become dirty upon being placed down, unless they are in buckets.", }, { key: "itemFind", name: "Keen-Eyed Clergy", desc1: "The faith has eyes everywhere. Items left on the ground will be discovered twice as fast.", }, { key: "itemNoHide", name: "Thin Sheets", desc1: "The bedsheets are very thin. Bedsheets on the ground no longer hide items, though they still hide items in buckets.", }, { key: "suspicionIncrease", name: "High-Strung", desc1: "The flock is antsy. All suspicion increases will be doubled.", }, { key: "suspicionDecrease", name: "Unforgiving", desc1: "The flock does not forget so easily. All suspicion decreases will be halved.", }, { key: "suspicionSermon", name: "Mandatory Sermons", desc1: "Attendance is no longer merely expected. Attending sermons no longer lowers suspicion, and missing sermons is considered a sign of bewitchment.", }, { key: "prisonerFood", name: "Small Stomach", desc1: "The witch's appetite is reduced from her mistreatment. She can only eat one meal per day.", desc2: "The witch can only eat one meal per day.", }, { key: "prisonerHealth", name: "Fragile", desc1: "The witch's constitution is feeble. Her health degrades more each night.", desc2: "The witch's health degrades more each night.", }, { key: "prisonerClean", name: "Foul Wounds", desc1: "The witch's corruption spreads. Her body, and bandages, will always be as dirty as possible by morning.", desc2: "The witch's body, and bandages, will always be as dirty as possible by morning.", }, { key: "dogsTwice", name: "Bothersome Dogs", desc1: "The dogs are extra neglected. The dog will need to be quieted twice per day.", }, { key: "dogsEarly", name: "Dogbotherers", desc1: "You can't remember the last time you woke up without barking. Dogs will be present from the start.", }, { key: "dogsDouble", name: "Double Trouble", desc1: "Another dog awaits its turn. There are two dogs instead of one.", }, { key: "timeSleep", name: "Poor Beds", desc1: "It's hard to get comfortable. Less fatigue reduction from sleeping.", }, { key: "timeLonger", name: "Work Ethic", desc1: "All tasks must be done thoroughly. Tasks in the temple take 50% longer to complete.", }, { key: "timePrayer", name: "New Priests", desc1: "The priests standing watch at the dungeon are inexperienced. Sanctification takes 50% longer when entering and exiting the dungeon.", } ]>> <</widget>><<widget "variablesVersionUpdate">> /* * * * * * * * * * * * * * * * * * * OLD BACKWARDS COMPATIBILITY CODE * EDIT widget "backComp" FOR VERSIONS 0.3.4.8+ */ <<if $objectVersion is undefined>> <<set $objectVersion to {}>> <</if>> <<if $saveVersions is undefined>> <<set $saveVersions to [StartConfig.version]>> <<elseif $saveVersions.last() isnot StartConfig.version>> <<set $saveVersions.push(StartConfig.version)>> <</if>> <<if $saveId is undefined>> <<set $saveId to random(10000, 99999)>> <</if>> <<if $saveName is undefined>> <<set $saveName to "">> <</if>> <<if $player is undefined>> <<set $player to {}>> <<set $player.sex to $playergender>> <<set $player.gender to $playergender>> <<set $player.gender_appearance to $playergenderappearance>> <<unset $playergenderappearance>> <</if>> <<if $player.appearance isnot undefined>> <<set $player.gender_appearance to $player.appearance>> <<run delete $player.appearance>> <</if>> <<if $toplessgender isnot undefined>> <<set $player.gender_appearance_without_overwear to $toplessgender>> <<unset $toplessgender>> <</if>> <<if $player.virginity is undefined>> <<set $player.virginity to {anal:true,oral:true,penile:true,vaginal:true,temple:false,handholding:true,kiss:true}>> <<if $analvirginity is 0>> <<set $player.virginity.anal to false>> <</if>> <<if $oralvirginity is 0>> <<set $player.virginity.oral to false>> <</if>> <<if $penilevirginity is 0>> <<set $player.virginity.penile to false>> <</if>> <<if $vaginalvirginity is 0>> <<set $player.virginity.vaginal to false>> <</if>> <</if>> <<if $player.virginity.handholding is undefined>> <<set $player.virginity.handholding to true>> <<set $player.virginity.kiss to true>> <</if>> <<if $analvirginity isnot undefined>> <<unset $analvirginity>> <<unset $oralvirginity>> <<unset $penilevirginity>> <<unset $vaginalvirginity>> <<unset $temple_virginity>> <</if>> <<if $player.penisExist is undefined and $penisexist isnot undefined>> <<set $player.penisExist to ($penisexist is 1 ? true : false)>> <<set $player.vaginaExist to ($vaginaexist is 1 ? true : false)>> <</if>> <<if $player.ballsExist is undefined>> <<set $player.ballsExist to ($player.sex isnot "f")>> <</if>> <<if $clothing_update is undefined>><<set $clothing_update to 1>> <<clothinginit>> <<givestartclothing>> <</if>> <<if $outfit_update is undefined or $outfit_update lt 3>><<set $outfit_update to 3>> <<for _i to 0; _i lt $outfit.length; _i++>> <<if $outfit[_i].colors is undefined>> <<set $outfit[_i].colors to false>> <</if>> <<if $outfit[_i].over_upper is undefined>> <<set $outfit[_i].over_upper to "naked">> <<set $outfit[_i].over_lower to "naked">> <<set $outfit[_i].over_head to "naked">> <</if>> <<if $outfit[_i].type[1]>> <<set $outfit[_i].type[0] to $outfit[_i].type[1]>> <<set $outfit[_i].type.deleteAt(1)>> <</if>> <</for>> <</if>> <<if $NPCName>> <<if $NPCName[21].nam is "Remy" and $NPCName[22].nam is "Alex">>/*0.2.20.0 fix for Black Wolf/Quinn/Niki only being partially implemented in rare cases.*/ <<set $NPCNameList.delete("Black Wolf", "Quinn", "Niki", "Remy", "Alex")>> <<set $NPCName.deleteAt(21, 22)>>/*Resets Remy and Alex to ensure proper array order.*/ <</if>> <</if>> <<if $npcNamedVersion gte 2>> <<updateNewNamedNpcs>> <</if>> /* <<clothing_data>> Keeps clothing data up to date with new and changed items */ /* unnecessary because it is run in variables-static every time game is loaded */ <<if $npcListVersion isnot 2>> <<npcList>> <</if>> <<npcNamedUpdate>> /*Updates old Named NPC code to new system*/ <<if $availableMapsVersion isnot 3>> <<mapLocations>> <</if>> <<unset $availableMapsVersion>> <<if $parasite_update is undefined>><<set $parasite_update to 1>> <<parasiteinit>> <<if $penisparasite is 1>><<unset $penisparasite>> <<parasite penis urchin>> <<set $parasitestat -= 1>> <</if>> <<if $clitparasite is 1>><<unset $clitparasite>> <<parasite clit urchin>> <<set $parasitestat -= 1>> <</if>> <<if $chestparasite is 1>><<unset $chestparasite>> <<parasite nipples urchin>> <<set $parasitestat -= 1>> <</if>> <</if>> <<if $pubwhore is undefined>> <<set $pubwhore to 0>> <</if>> <<if $masturbationstat is undefined>> <<set $masturbationstat to 0>> <<set $masturbationorgasmstat to 0>> <<set $masturbationtimestat to 0>> <<set $masturbationorgasm to 0>> <</if>> <<if $blackchance is undefined>> <<set $blackchance to 10>> <</if>> <<if $angel is undefined>> <<set $angel to 0>> <<set $angelbuild to 0>> <</if>> <<if $angelBanish is undefined>> <<set $angelBanishMax to 0>> <<set $angelBanish to 0>> <<if $angel gte 4>> <<set $angelBanishMax to Math.floor($angelbuild / 10)>> <<set $angelBanish to $angelBanishMax>> <</if>> <</if>> <<if $demon is undefined>> <<set $demon to 0>> <</if>> <<if $demonbuild is undefined>> <<set $demonbuild to 0>> <</if>> <<if $demonabsorb is undefined>> <<set $demonabsorb to 0>> <</if>> <<if $upperwet is undefined>> <<set $upperwet to 0>> <<set $upperwetstage to 0>> <</if>> <<if $lowerwet is undefined>> <<set $lowerwet to 0>> <<set $lowerwetstage to 0>> <</if>> <<if $underlowerwet is undefined>> <<set $underlowerwet to 0>> <<set $underlowerwetstage to 0>> <<set $underupperwet to 0>> <<set $underupperwetstage to 0>> <<set $overlowerwet to 0>> <<set $overlowerwetstage to 0>> <<set $overupperwet to 0>> <<set $overupperwetstage to 0>> <</if>> <<if $schoolevent is undefined>> <<set $schoolevent to 0>> <<set $schooleventtimer to 5>> <</if>> <<if $stressmax is undefined or $stressmax is 10010>> <<set $stressmax to 10000>> <</if>> <<if $tirednessmax is undefined>> <<set $tirednessmax to 2000>> <</if>> <<if $physiquemax is undefined>> <<set $physiquemax to 20000>> <</if>> <<if $beautymax is undefined>> <<set $beautymax to 10000>> <</if>> <<if $malechance is undefined>> <<set $malechance to 50>> <<if $genderdisable is "f">> <<set $malechance to 100>> <<elseif $genderdisable is "m">> <<set $malechance to 0>> <<elseif $genderdisable is 90>> <<set $malechance to 90>> <<elseif $genderdisable is 10>> <<set $malechance to 10>> <</if>> <</if>> <<if $transformdisable is undefined>> <<set $transformdisable to "f">> <</if>> <<if $robindebtlimit is undefined and $docksrobinintro is 1>> <<set $robindebtlimit to 5>> <<if $robindebt gte $robindebtlimit>> <<set $robindebt to ($robindebtlimit - 1)>> <</if>> <</if>> <<if $robinrescued isnot undefined>> <<set $robindebtknown to 1>> <</if>> <<if $averygender isnot undefined>> <<for _npc range ["avery", "morgan", "kylar", "blackwolf"]>> <<run delete V[_npc + "gender"]>> <<run delete V[_npc + "genitals"]>> <</for>> <</if>> <<if $blackwolfmonster is undefined>> <<rng>> <<if $monsterchance gte $rng>> <<set $blackwolfmonster to 1>> <<else>> <<set $blackwolfmonster to 0>> <</if>> <</if>> <<if $genderknown is undefined>> <<set $genderknown to ["Robin", "Bailey"]>> <</if>> <<if $waterwash is undefined>> <<set $waterwash to 0>> <</if>> <<if C.npc.Whitney.state is undefined and C.npc.Whitney.init is 1>> <<set C.npc.Whitney.state to "active">> <<set C.npc.Whitney.dom to 10>> <</if>> <<if $bullytimeroutside is undefined>> <<set $bullytimeroutside to 0>> <</if>> <<if $bullyeventoutside is undefined>> <<set $bullyeventoutside to 0>> <</if>> <<if $whitneylust is undefined>> <<set $whitneylust to 0>> <</if>> <<if $upperoutfitcasual is undefined>> <<if $player.sex is "m">> <<set $upperoutfitcasual to "t-shirt">> <<set $loweroutfitcasual to "shorts">> <<set $underoutfitcasual to "Y fronts">> <<set $upperoutfitschool to "school shirt">> <<set $loweroutfitschool to "school shorts">> <<set $underoutfitschool to "Y fronts">> <<else>> <<set $upperoutfitcasual to "sundress">> <<set $loweroutfitcasual to "sundress skirt">> <<set $underoutfitcasual to "plain panties">> <<set $upperoutfitschool to "school shirt">> <<set $loweroutfitschool to "school skirt">> <<set $underoutfitschool to "plain panties">> <</if>> <</if>> <<if $famesex is undefined>> <<set $famesex to 0>> <</if>> <<if $famerape is undefined>> <<set $famerape to 0>> <</if>> <<if $pillsconsumed is undefined>> <<set $pillsconsumed to 0>> <</if>> <<if $famegood is undefined>> <<set $famegood to 0>> <</if>> <<if $famebusiness is undefined>> <<set $famebusiness to 0>> <</if>> <<if $arousalmax is undefined>> <<set $arousalmax to 10000>> <</if>> <<if $deviancy is undefined>> <<set $deviancy to 0>> <</if>> <<if $squidcount is undefined>> <<set $squidcount to 0>> <</if>> <<if $schoolevent is -1>> <<set $schoolevent to 1>> <</if>> <<if $baileydefeated is undefined>> <<set $baileydefeated to 0>> <<set $baileydefeatedlewd to 0>> <<set $baileydefeatedchain to 0>> <</if>> <<if $soldCount is undefined>> <<if $rentsale isnot undefined>> <<set $soldCount to $rentsale>> <<else>> <<set $soldCount to 0>> <</if>> <</if>> <<if $robinmoney is undefined>> <<set $robinmoney to 300>> <</if>> <<if $robinPayout is undefined>> <<set $robinPayout to 0>> <</if>> <<if $scienceproject is undefined>> <<set $scienceproject to "none">> <</if>> <<if $yeardays is undefined>> <<set $yeardays to 0>> <</if>> <<if $mathsproject is undefined>> <<set $mathsproject to "none">> <</if>> <<if $gamemode is undefined>> <<set $gamemode to "normal">> <</if>> <<if $alluremod is undefined>> <<set $alluremod to 1>> <</if>> <<if $oxygenmax is undefined>> <<set $oxygenmax to 1200>> <<set $oxygen to 1200>> <</if>> <<if $suffocating is undefined>> <<set $suffocating to 0>> <</if>> <<if $asphyxiaLvl is undefined>> <<set $asphyxiaLvl to 3>> <</if>> <<if $chokeorgasm is undefined>> <<set $chokeorgasm to 0>> <</if>> <<if $NudeGenderDC is undefined or $NudeGenderDC gt 2>> <<set $NudeGenderDC to 2>> <</if>> <<if $hallucinogen is undefined>> <<set $hallucinogen to 0>> <</if>> <<if $antiquemoney is undefined>> <<set $antiquemoney to 0>> <<set $antiquemoneyhistory to 0>> <<if $scienceproject is "done" or $scienceproject is "won">> <<set $scienceproject to "none">> <</if>> <</if>> <<if $controlmax is undefined>> <<set $controlmax to 1000>> <<if $control is 1>> <<set $control to 1000>> <<else>> <<set $control to 0>> <</if>> <</if>> <<if $background is undefined>> <<set $background to "waif">> <</if>> <<if $orgasmtrait is undefined>> <<set $orgasmtrait to 0>> <</if>> <<if $ejactrait is undefined>> <<set $ejactrait to 0>> <</if>> <<if $molesttrait is undefined>> <<set $molesttrait to 0>> <</if>> <<if $rapetrait is undefined>> <<set $rapetrait to 0>> <</if>> <<if $bestialitytrait is undefined>> <<set $bestialitytrait to 0>> <</if>> <<if $tentacletrait is undefined>> <<set $tentacletrait to 0>> <</if>> <<if $voretrait is undefined>> <<set $voretrait to 0>> <</if>> <<if $milkdranktrait is undefined>> <<set $milkdranktrait to 0>> <</if>> <<if $alluretest is undefined>> <<set $alluretest to 0>> <</if>> <<if $whitneypantiescheck is undefined>> <<set $whitneypantiescheck to 0>> <</if>> <<if $assertiveaction is 0 or $assertiveaction is undefined>> <<set $assertiveaction to "trauma">> <</if>> <<if $famepark is undefined>> <<set $famepark to 0>> <</if>> <<if $beastmalechance is undefined>> <<set $beastmalechance to 80>> <</if>> <<if StartConfig.enableImages is false>> <<set $images to 0>> <</if>> <<if $beastgenderoverride is undefined>> <<set $beastgenderoverride to 0>> <</if>> <<if $speechcycle is undefined>> <<set $speechcycle to 0>> <</if>> <<if $npcspeechcycle is undefined>> <<set $npcspeechcycle to 0>> <</if>> <<if $breastfeedingdisable is undefined>> <<set $breastfeedingdisable to "f">> <</if>> <<if $real_gender isnot undefined>> <<set $player.gender to $real_gender>> <<unset $real_gender>> <</if>> <<if $physiquesize is undefined>> <<set $physiquesize to (1000 * $devlevel)>> <<if $physique gte 1>> <<else>> <<set $physique to $physiquemax>> <</if>> <</if>> <<if $fringelength is undefined>> <<set $fringelength to 200>> <<set $hairtype to "default">> <<set $fringetype to "default">> <</if>> <<if $famescrap is undefined>> <<set $famescrap to 0>> <</if>> <<if $famepimp is undefined>> <<set $famepimp to 0>> <</if>> <<if $spray is undefined>> <<set $spray to 1>> <</if>> <<if $spraymax is undefined>> <<set $spraymax to 1>> <</if>> <<if $spraystat is undefined>> <<set $spraystat to 0>> <</if>> <<if $silhouettedisable is undefined>> <<set $silhouettedisable to "f">> <</if>> <<if $watersportsdisable is undefined>> <<set $watersportsdisable to "f">> <</if>> <<if $averyrage isnot undefined>> <<unset $averyrage>> <</if>> <<if (C.npc.Avery.state is undefined or C.npc.Avery.state is "") and C.npc.Avery.init is 1>> <<npcset Avery state "active">> <</if>> <<if (C.npc.Robin.state is undefined or C.npc.Robin.state is "") and C.npc.Robin.init is 1>> <<npcset Robin state "active">> <</if>> <<if $catbuild is undefined>> <<set $catbuild to 0>> <<set $cat to 0>> <</if>> <<if $pain is undefined>> <<set $pain to 0>> <</if>> <<if $hairupdate isnot 1>> <<set $hairupdate to 1>> <<if $hairlength gte 900>> <<set $hairlengthstage to "feet">> <<elseif $hairlength gte 700>> <<set $hairlengthstage to "thighs">> <<elseif $hairlength gte 600>> <<set $hairlengthstage to "navel">> <<elseif $hairlength gte 400>> <<set $hairlengthstage to "chest">> <<elseif $hairlength gte 200>> <<set $hairlengthstage to "shoulder">> <<else>> <<set $hairlengthstage to "short">> <</if>> <<if $fringelength gte 900>> <<set $fringelengthstage to "feet">> <<elseif $fringelength gte 700>> <<set $fringelengthstage to "thighs">> <<elseif $fringelength gte 600>> <<set $fringelengthstage to "navel">> <<elseif $fringelength gte 400>> <<set $fringelengthstage to "chest">> <<elseif $fringelength gte 200>> <<set $fringelengthstage to "shoulder">> <<else>> <<set $fringelengthstage to "short">> <</if>> <</if>> <<if $dockhours is undefined>> <<set $dockhours to 0>> <</if>> <<if $infinitespray is undefined>> <<set $infinitespray to 0>> <</if>> <<if $hairtype is "braided ponytail">> <<set $hairtype to "ponytail">> <</if>> <<if $monsterhallucinations is undefined>> <<set $monsterhallucinations to "t">> <<set $monsterchance to 50>> <</if>> <<if $policemolestation is undefined>> <<set $policemolestation to 0>> <</if>> <<if $player.penissize is undefined>> <<set $player.penissize to 2>> <<set $penissizemax to 4>> <<set $penisgrowthtimer to 700>> <</if>> <<if $penissizemin is undefined>> <<set $penissizemin to -2>> <</if>> <<if $insecurity_penis_tiny is undefined>> <<set $insecurity_penis_tiny to 0>> <<set $insecurity_penis_small to 0>> <<set $insecurity_penis_big to 0>> <<set $insecurity_breasts_tiny to 0>> <<set $insecurity_breasts_small to 0>> <<set $insecurity_breasts_big to 0>> <<set $acceptance_penis_tiny to 0>> <<set $acceptance_penis_small to 0>> <<set $acceptance_penis_big to 0>> <<set $acceptance_breasts_tiny to 0>> <<set $acceptance_breasts_small to 0>> <<set $acceptance_breasts_big to 0>> <</if>> <<if $willpower is undefined>> <<set $willpower to 200>> <<set $willpowermax to 1000>> <</if>> <<if $fringetype is "swept back">> <<set $fringetype to "swept right">> <</if>> <<if $museuminterest is undefined>> <<set $museuminterest to 0>> <</if>> <<if $position is undefined>> <<set $position to 0>> <</if>> <<if $wear_upper is undefined>> <<set $wear_upper to "none">> <<set $wear_lower to "none">> <<set $wear_under_upper to "none">> <<set $wear_under_lower to "none">> <<set $wear_head to "none">> <<set $wear_face to "none">> <<set $wear_neck to "none">> <<set $wear_legs to "none">> <<set $wear_feet to "none">> <<set $wear_genitals to "none">> <<set $wear_outfit to "none">> <</if>> <<if $wear_over_upper is undefined>> <<set $wear_over_upper to "none">> <<set $wear_over_lower to "none">> <<set $wear_over_head to "none">> <</if>> <<if $no_underwear is undefined>> <<set $no_underwear to 0>> <</if>> <<if $arousal is undefined>> <<set $arousal to 0>> <</if>> <<if $breastsensitivity is undefined>> <<set $breastsensitivity to 1>> <</if>> <<if $genitalsensitivity is undefined>> <<set $genitalsensitivity to 1>> <</if>> <<if $hairtype is "swept right">> <<set $hairtype to "swept left">> <</if>> <<if $headnodetention is 1 or $headmoney is 1 or $headphotoshoot is 1>> <<set $headblackmailed to 1>> <</if>> <<physicalAdjustmentsInit>> <<if $tryOn is undefined>> <<tryOnInit>> <</if>> <<if $carryblock is undefined>> <<set $carryblock to 0>> <</if>> <<if $milk_drank_stat is undefined>> <<set $milk_drank_stat to 0>> <<set $milkdranktrait to 0>> <<set $breast_mod to 0>> <</if>> <<if $ballssize is undefined>> <<set $ballssize to $player.penissize>> <<set $ballssizemax to $penissizemax>> <<set $ballssizemin to $penissizemin>> <<set $ballsgrowthtimer to $penisgrowthtimer>> <</if>> <<if $player.bottomsize is undefined>> <<set $player.bottomsize to 2>> <<set $bottomsizemax to 8>> <<set $bottomsizemin to 0>> <<set $bottomsizeold to 0>> <<set $bottomgrowthtimer to 350>> <</if>> <<if $workouts is undefined>> <<set $workouts to 0>> <</if>> <<if $sewingKit is undefined>> <<set $sewingKit to 0>> <</if>> <<if $penis_mod is undefined>> <<set $penis_mod to 0>> <</if>> <<if $tanned is undefined>> <<set $tanned to 0>> <</if>> <<if $avery_penis_size isnot undefined>> <<for _npc range ["avery", "bailey", "charlie", "darryl", "doren", "eden", "gwylan", "harper", "jordan", "kylar", "landry", "leighton", "mason", "morgan", "river", "robin", "sam", "sirris", "whitney", "winter", "zephyr"]>> <<run delete V[_npc + "_penis_size"]>> <</for>> <</if>> <<if $breast_mod lt -12>> <<set $breast_mod to -12>> <</if>> <<if $breast_mod gt 12>> <<set $breast_mod to 12>> <</if>> <<if $shopDefaults is undefined>> <<set $shopDefaults to { "color":"black", "colorSet":null, "secColor":"black", "secColorSet":null, "disableReturn": false }>> <</if>> <<if $shopDefaults.alwaysBackToShopButton is undefined>> <<set $shopDefaults.alwaysBackToShopButton to false>> <</if>> <<if $shopDefaults.colourItems is undefined>> <<set $shopDefaults.colourItems = "random">> <</if>> <<if $shopDefaults.mannequinGender is undefined>> <<set $shopDefaults.mannequinGender = "same">> <</if>> <<if $shopDefaults.noHelp is undefined>> <<set $shopDefaults.compactMode to false>> <<set $shopDefaults.mannequinGenderFromClothes to false>> <<set $shopDefaults.highContrast to false>> <<set $shopDefaults.noTraits to false>> <<set $shopDefaults.noHelp to false>> <</if>> <<if $tentacles is undefined>> <<set $tentacles to { 0: null, 1: null, 2: null, 3: null, 4: null, 5: null, 6: null, 7: null, 8: null, 9: null, 10: null, 11: null, 12: null, 13: null, 14: null, 15: null, 16: null, 17: null, 18: null, 19: null, 20: null, "active": 0, "max": 0 }>> <</if>> <<if $npclovehigh isnot 10>> <<set $npclovehigh to 10>> <</if>> <<if $npclovelow isnot -10>> <<set $npclovelow to -10>> <</if>> <<if $npcdomhigh isnot 10>> <<set $npcdomhigh to 10>> <</if>> <<if $npcdomlow isnot -10>> <<set $npcdomlow to -10>> <</if>> <<if $scienceproject is "ongoing" and $sciencephallus is undefined>> <<set $sciencephallusready to 0>> <<set $sciencephallus to 0>> <<set $sciencephalluspenis to 0>> <<set $sciencephallusclit to 0>> <</if>> <<if $fallenangel is 2>> <<set $angelbuild to 0>> <</if>> <<if $demon gte 6>> <<set $demonFeat to true>> <</if>> <<if $orphan_hope is undefined>> <<set $orphan_hope to 0>> <</if>> <<if $orphan_reb is undefined>> <<set $orphan_reb to 0>> <</if>> <<if $masochism is undefined>> <<set $masochism to 0>> <<set $masochism_level to 0>> <</if>> <<if $per_npc is undefined>> <<set $per_npc to {}>> <</if>> <<if $lessonmissedtext is undefined>> <<set $lessonmissedtext to 0>> <<set $lessonmissed to 0>> <</if>> <<if $home_event_timer is undefined>> <<set $home_event_timer to 0>> <<set $home_event_count to 0>> <</if>> <<if $gwylangender is undefined>> <<if $malechance lt random(1, 100)>> <<set $gwylangender to "f">> <<else>> <<set $gwylangender to "m">> <</if>> <</if>> <<if $gwylangenitals is undefined>> <<if $gwylangender is "m">> <<if random(0, 99) gte $cbchance>> <<set $gwylangenitals to "penis">> <<else>> <<set $gwylangenitals to "vagina">> <</if>> <<elseif $gwylangender is "f">> <<if random(0, 99) gte $dgchance>> <<set $gwylangenitals to "vagina">> <<else>> <<set $gwylangenitals to "penis">> <</if>> <</if>> <</if>> <<if $spiderdisable is undefined>> <<set $spiderdisable to "f">> <</if>> <<if $gloryholestat is undefined>> <<set $gloryholestat to 0>> <</if>> <<if $brothel_basement_price is undefined>> <<set $brothel_basement_price to 1000>> <</if>> <<if $brothelshowdata is undefined>> <<set $brothelshowdata to { counts:{ agreed:0, done:0 }, type:"none", intro:0, done:false, missed:false }>> <<if $brothelshow isnot undefined>> <<set $brothelshowdata.type to $brothelshow>> <<unset $brothelshow>> <</if>> <<if $brothelshowintro isnot undefined>> <<set $brothelshowdata.intro to !!$brothelshowintro>> <<unset $brothelshowintro>> <</if>> <<if $brothelshowdone isnot undefined>> <<set $brothelshowdata.done to !!$brothelshowdone>> <<unset $brothelshowdone>> <</if>> <<if $brothelshowmissed isnot undefined>> <<set $brothelshowdata.missed to !!$brothelshowmissed>> <<unset $brothelshowmissed>> <</if>> <</if>> <<if $money is undefined>> <<set $money to 0>> <</if>> <<if $syndromeeden is 1 and $edenshrooms is undefined>> <<unset $syndromeeden>> <</if>> <<if $initnpcfix is undefined>> <<set $initnpcfix to 1>>/*Applies missing NPC settings for saves before 0.2.5*/ <<initnpcgender>> <</if>> <<if C.npc.Kylar.init is 1 and C.npc.Kylar.state is "">> <<set C.npc.Kylar.init to 0>> <</if>> <<if $chestuse is undefined>> <<set $cheststate to 0>> <</if>> <<if $lactating is undefined>>/*Updating to 0.2.7*/ <<set $lactating to 0>> <<set $lactation_pressure to 0>> <<set $milk_amount to 30>> <<set $milk_volume to 30>> <<set $milk_max to 3000>> <<if $penisexist is 1>> <<set $semen_amount to 90>> <<set $semen_volume to 90>> <<else>> <<set $semen_amount to 0>> <<set $semen_volume to 0>> <</if>> <<set $semen_max to 3000>> <<set $milk_produced_stat to 0>> <<set $semen_produced_stat to 0>> <<set $masturbation_semen to 0>> <<set $masturbation_milk to 0>> <<set $bunstat to 0>> <<set $famesocial to 0>> <</if>> <<if $creamstat is undefined>> <<set $creamstat to 0>> <<set $lube_produced_stat to 0>> <</if>> <<if $chef_sus is undefined>> <<set $chef_sus to 0>> <</if>> <<if $pillory is undefined>> <<set $pillory to {}>> <</if>> <<if $pillory.tenant is undefined>> /* Pillory related */ <<setup_pillory>> <</if>> <<if ndef $police_intro>> /* Police hack related*/ <<set $police_intro to 0>> <<set $police_access_card to 0>> <<set $police_hack to 0>> <<set $pub_hack_job to 0>> <<set $hacker_tasks to []>> <</if>> <<if ndef $framed>> <<set $framed to 0>> <</if>> /* brothel */ <<if ndef $brothel_raid>> <<set $brothel_raid to 0>> <</if>> <<if ndef $brothel_raid_day>> <<set $brothel_raid_day to 0>> <</if>> <<if ndef $brothel_thief>> <<set $brothel_thief to 0>> <</if>> <<if $o_long_and_beautiful is undefined>> /*'long hair' girl related*/ <<set $o_long_and_beautiful to 0>> <<set $hy_sibling to 0>> <<set $hy_parent to 0>> <<set $long_hair_meet_day to 9999>> <<set $misbehaviour_day to 9999>> <</if>> <<if $objectVersion.chastity lt 3 or $objectVersion.chastity is undefined>> <<if $worn.genitals is undefined>> <<set $worn.genitals to clone(setup.clothes.genitals[0])>> <<set $carried.genitals to clone(setup.clothes.genitals[0])>> <</if>> <<if $worn.under_lower.type.includes("chastity")>> <<set $worn.genitals to clone($worn.under_lower)>> <<set $worn.under_lower to clone(setup.clothes.under_lower[0])>> <</if>> <<if $worn.genitals.name isnot "naked">> <<set $worn.genitals.hideUnderLower to setup.clothes.genitals[1].hideUnderLower>> <<set $worn.genitals.type to setup.clothes.genitals[1].type>> <</if>> <<set $objectVersion.chastity to 3>> <</if>> <<if $showCaptionText is undefined>> <<set $showCaptionText to true>> <</if>> <<if $parasite.types is undefined>> <<set _oldparasite to $parasite>> <<parasiteinit>> <<for _part, _type range _oldparasite>> <<if _type.name isnot undefined>> <<set $parasite[_part].name to _type.name>> <<set $parasite[_type.name].push(_part.replace(/_/g, " "))>> <</if>> <</for>> <</if>> <<if $slimeSleepEvent is undefined>> <<set $slimeSleepEvent to 0>> <</if>> <<if $parasite.left_thigh.name is undefined>> <<removeparasite left_thigh>> <</if>> <<if $parasite.right_thigh.name is undefined>> <<removeparasite right_thigh>> <</if>> <<if $parasite.left_arm.name is undefined>> <<removeparasite left_arm>> <</if>> <<if $parasite.right_arm.name is undefined>> <<removeparasite right_arm>> <</if>> <<if $objectVersion.feats lt 1 or $objectVersion.feats is undefined>> <<set $feats to { "locked":false, "soft":false, "allSaves":{}, "currentSave":{}, "filter":"All" }>> <<set $objectVersion.feats to 1>> <</if>> <<if ($cheatsEnabled is true and !$debug) or $locked is true>> <<run delete $locked>> <<set $feats.locked to true>> <</if>> <<if $smuggler_location is undefined>> <<set $smuggler_location to "sewer">> <<set $smuggler_timer to 0>> <<set $smuggler_stolen_stat to 0>> <</if>> <<if $gamemode is "soft" or $alluremod lt 1>> <<set $feats.soft to true>> <</if>> <<updateFeats>> <<if $straponchance is undefined>> <<set $straponchance to 0>> <</if>> <<if $lastWardrobeSlot is undefined>> <<set $lastWardrobeSlot to "head">> <</if>> <<if $objectVersion.customColors lt 4 or $objectVersion.customColors is undefined>> <<if $customColors is undefined>> <<set $customColors to { presets:{}, action: "set", currentType: "primary", color:{primary:0, secondary:0}, saturation:{primary:1, secondary:1}, brightness:{primary:1, secondary:1}, value:{primary:100, secondary:100} }>> <</if>> <<if $customColors.contrast is undefined>> <<set $customColors.contrast to{primary:1, secondary:1}>> <</if>> <<if $customColors.sepia is undefined>> <<set $customColors.sepia to{primary:0, secondary:0}>> <</if>> <<set $objectVersion.customColors to 4>> <</if>> <<if $objectVersion.customColors lt 5 or $objectVersion.customColors is undefined>> <<if $customColors.value is undefined>> <<set $customColors.value to {primary:100, secondary:100}>> <</if>> <<set $objectVersion.customColors to 5>> <</if>> <<if $swarm is undefined or $swarm.type is undefined>> <<set $swarm to { "type":0, "name":0, "move":0, "spill":0, "steady":0, "amount":{}, "data":{} }>> <</if>> <<if $bodypart_number is undefined>> <<bodywriting_init>> <</if>> <<if $newlyWritten is undefined and $combat is 1>> <<set $newlyWritten to []>> <</if>> <<wetness_init>> <<if $player.gender_appearance_factors is undefined>> <<set $player.gender_appearance_factors to []>> <</if>> <<if $player.gender_appearance_without_overwear_factors is undefined>> <<set $player.gender_appearance_without_overwear_factors to []>> <</if>> <<if $player.gender_posture is undefined>> <<if $background is "crossdresser">> <<if $player.sex is "f">> <<set $player.gender_posture to "m">> <<elseif $player.sex is "m">> <<set $player.gender_posture to "f">> <</if>> <<else>> <<set $player.gender_posture to "n">> <</if>> <</if>> <<if $player.femininity is undefined>> <<set $player.femininity to 0>> <</if>> <<if $player.femininity_without_overwear is undefined>> <<set $player.femininity_without_overwear to 0>> <</if>> <<if $player.condom is undefined>> <<set $player.condom to false>> <<set $condomchance to 50>> <<set $condomautochance to 50>> <</if>> <<unset $clothes>> <<if $cat gte 1 or $wolfgirl gte 1 or $cow gte 1 or $harpy gte 1>> <<set $physicalTransform to 1>> <<else>> <<set $physicalTransform to 0>> <</if>> <<if $demon gte 1 or $angel gte 1 or $fallenangel gte 2>> <<set $specialTransform to 1>> <<else>> <<set $specialTransform to 0>> <</if>> <<unset $transformed>> <<if $backgroundTraits is undefined>> <<set $backgroundTraits to [$background]>> <</if>> <<if Array.isArray($rebuy_success) is false>> <<set $rebuy_failure to []>> <<set $rebuy_success to []>> <</if>> <<if $dissociation is undefined>> <<set $dissociation to 0>> <</if>> <<if $worn.over_upper is undefined>> <<set $worn.over_upper to clone(setup.clothes.over_upper[0])>> <<set $worn.over_lower to clone(setup.clothes.over_lower[0])>> <<set $worn.over_head to clone(setup.clothes.over_head[0])>> <<set $carried.over_upper to clone(setup.clothes.over_upper[0])>> <<set $carried.over_lower to clone(setup.clothes.over_lower[0])>> <<set $carried.over_head to clone(setup.clothes.over_head[0])>> <<set $wardrobe.over_upper to []>> <<set $wardrobe.over_lower to []>> <<set $wardrobe.over_head to []>> <<set $store.over_upper to []>> <<set $store.over_lower to []>> <<set $store.over_head to []>> <</if>> <<if $wardrobe.over_head is undefined>> <<set $wardrobe.over_head to []>> <</if>> <<if $worn.hands is undefined>> <<set $worn.hands to clone(setup.clothes.hands[0])>> <<set $carried.hands to clone(setup.clothes.hands[0])>> <<set $wardrobe.hands to []>> <<set $store.hands to []>> <<set $wear_hands to "none">> <</if>> <!-- updateClothes was moved to <<backcomp>> at the bottom of this file --> <<if $objectVersion.wardrobes lt 4 or $objectVersion.wardrobes is undefined>> <<wardrobesUpdate>> <<set $objectVersion.wardrobes to 4>> <</if>> <<if $mathsprojectwon is 1>> <<earnFeat "Maths Competition Winner">> <</if>> <<if $scienceprojectwon is 1>> <<earnFeat "Science Fair Winner">> <</if>> <<if $bodywritingdisable is undefined>> <<set $bodywritingdisable to "f">> <</if>> <<if $arousal is NaN or $arousal is undefined>> <<set $arousal to 0>> <</if>> <<if $pain is NaN or $pain is undefined>> <<set $pain to 0>> <</if>> <<if !$skin.forehead>> <<bodywriting_clear forehead>> <</if>> <<if !$skin.left_cheek>> <<bodywriting_clear left_cheek>> <</if>> <<if !$skin.right_cheek>> <<bodywriting_clear right_cheek>> <</if>> <<if !$skin.left_shoulder>> <<bodywriting_clear left_shoulder>> <</if>> <<if !$skin.right_shoulder>> <<bodywriting_clear right_shoulder>> <</if>> <<if !$skin.breasts>> <<bodywriting_clear breasts>> <</if>> <<if !$skin.back>> <<bodywriting_clear back>> <</if>> <<if !$skin.pubic>> <<bodywriting_clear pubic>> <</if>> <<if !$skin.left_thigh>> <<bodywriting_clear left_thigh>> <</if>> <<if !$skin.right_thigh>> <<bodywriting_clear right_thigh>> <</if>> <<if !$skin.left_bottom>> <<bodywriting_clear left_bottom>> <</if>> <<if !$skin.right_bottom>> <<bodywriting_clear right_bottom>> <</if>> <<if $crime is null or $crime is undefined>> <<set $crime to 0>> <<set $crimehistory to 0>> <<set $blackmoney to 0>> <</if>> <<if isNaN(parseInt($crime))>> <<set $crime to 0>> <</if>> <<if isNaN(parseInt($crimehistory))>> <<set $crimehistory to 0>> <</if>> <<if isNaN(parseInt($blackmoney))>> <<set $blackmoney to 0>> <</if>> <<if $worn.upper is undefined>> <<set $worn.upper to clone(setup.clothes.upper[0])>> <</if>> <<if $worn.lower is undefined>> <<set $worn.lower to clone(setup.clothes.lower[0])>> <</if>> <<if $worn.under_upper is undefined>> <<set $worn.under_upper to clone(setup.clothes.under_upper[0])>> <</if>> <<if $worn.under_lower is undefined>> <<set $worn.under_lower to clone(setup.clothes.under_lower[0])>> <</if>> <<if $worn.head is undefined>> <<set $worn.head to clone(setup.clothes.head[0])>> <</if>> <<if $worn.face is undefined>> <<set $worn.face to clone(setup.clothes.face[0])>> <</if>> <<if $worn.neck is undefined>> <<set $worn.neck to clone(setup.clothes.neck[0])>> <</if>> <<if $worn.legs is undefined>> <<set $worn.legs to clone(setup.clothes.legs[0])>> <</if>> <<if $worn.feet is undefined>> <<set $worn.feet to clone(setup.clothes.feet[0])>> <</if>> <<if ndef $swimnudecounter>> <<set $swimnudecounter to 0>> <<set $swimall to 0>> <</if>> /*for swimming*/ <<if $player.gender_body is undefined>> <<set $player.gender_body to clone($player.gender)>> <</if>> <<if $worn.genitals.exposed is undefined>> <<if $worn.genitals.exposed_base is 0>> <<set $worn.genitals.exposed to 0>> <<else>> <<set $worn.genitals.exposed to 1>> <</if>> <</if>> <<if $closinghour isnot 21>> <<set $closinghour to 21>> <</if>> <!-- specialClothesUpdate was moved to <<backComp>> --> <<if $objectVersion.uncomfortable lt 2 or $objectVersion.uncomfortable is undefined>> <<if $uncomfortable is undefined>> <<if $lightexhibitionismaction isnot undefined>> <<set $uncomfortable to { underwear: ($lightexhibitionismaction is "embarrassed" ? true : false), nude: ($exhibitionismaction is "embarrassed" ? true : false), }>> <<unset $lightexhibitionismaction>> <<unset $exhibitionismaction>> <<else>> <<set $uncomfortable to { underwear: true, nude: true, }>> <</if>> <</if>> <<set $objectVersion.uncomfortable to 2>> <</if>> <<if $sidebarStats is undefined>> <<set $sidebarStats to "Disabled">> <</if>> <<if $openinghours is undefined>> <<if $hour gte 8 and $hour lt 21>> <<set $openinghours to 1>> <<else>> <<set $openinghours to 0>> <</if>> <</if>> <<if $athletics is undefined>> <<set $athletics to Math.trunc(($physique / $physiquesize) * 1000)>> <</if>> <<if $dontHide is undefined>> <<set $dontHide to false>> <</if>> <<if $checkstyle is undefined>> <<set $checkstyle to "words">> <<set $tending to 0>> <<set $garden_flowers_intro to 1>> <<set $eden_plot_intro to 1>> <<set $wolf_plot_intro to 1>> <<set $asylum_plot_intro to 1>> <<set $plots to {}>> <<set $plants_known to []>> <<set $plants to {}>> <<set $stall_rejected to 0>> <<set $produce_sold to 0>> <</if>> <<if $combatControls is undefined>> <<set $combatControls to "radio">> <</if>> <<if $loveInterest is undefined>> <<set $loveInterest to { primary: "None", secondary: "None", tertiary: "None" }>> <</if>> <<if $dateCount is undefined>> <<set $dateCount to { Total: 0, Robin: 0, Whitney: 0, Kylar: 0, Eden: 0, Avery: 0, BlackWolfHunts: 0 }>> <</if>> <<if $dateCount.Alex is undefined>> <<set $dateCount.GreatHawkHunts to 0>> <<set $dateCount.Alex to 0>> <<set $dateCount.Sydney to 0>> <</if>> <<if $virginTaken is undefined>> <<set $virginTaken to { kiss: [], handholding: [], oral: [], anal: [], vaginal: [], penile: [] }>> <</if>> <<setupDefaults>> <<if $bodywritingImages is undefined>> <<set $bodywritingImages to true>> <</if>> <<if !$physique and $physique isnot 0>> <<set $physique to ($physiquesize / 7) * 3>> <</if>> <<if !$tiredness and $tiredness isnot 0>> <<set $tiredness to 0>> <</if>> <!-- updateMuseumAntiques was moved to <<backComp>> --> <!-- specialClothesEffectsSetup was moved to <<backComp>> --> <<if $masturbationFix is undefined>> <<set $mouthactiondefault to 0>> <<set $mouthaction to 0>> <<set $mouth to 0>> <<set $masturbationFix to true>> <</if>> <<if $lastOptions is undefined>> <<resetLastOptions>> <</if>> <<set $_npcHairEyeNeedsGenerating to $NPCName.some(n => !(n.eyeColour || n.hairColour))>> <<if $_npcHairEyeNeedsGenerating>> <<generateNPCNameHairAndEyeColors>> <</if>> <<if $stat_shoot is undefined>> <<set $stat_shoot to 0>> <<set $cow to 0>> <<set $cowbuild to 0>> <<set $fluid_forced_stat to 0>> <</if>> <<if $shoot_stat>> /*Checking shoot_stat's existence to assist clean-up for 0.2.14.1 fix*/ <<if $shoot_stat gt 0>> <<set $stat_shoot += $shoot_stat>> <</if>> <<unset $shoot_stat>> <</if>> <<set $BeastList to ["dog","cat","pig","wolf","dolphin","lizard","bear","boar","creature","horse","fox","hawk","spider"]>> <<if $active_enemy is undefined>> <<set $active_enemy to 0>> <</if>> <<if $combatTrain is undefined>> <<set $combatTrain to { length: 0, generateInit: 1, beastTypes: [], numberPerTrain: [] }>> <</if>> <<if isNaN(parseInt($trauma))>> <<set $trauma to 0>> <</if>> <<if $arousalError isnot undefined>> <<set $arousalError to [$arousalError.length]>> <</if>> <<if !$livestock_obey and $livestock_obey isnot 0>> <<set $livestock_obey to 50>> <</if>> <<setupTransformationPiecesObject>> <<if $clothingShop is undefined>> <<set $clothingShop to { ban: 0, banExtension: false, spotted: false, stolenClothes: 0, totalStolenClothes: 0, banCount: 0, rng: random(0,1000) }>> <</if>> <<if $adultShop is undefined>> <<set $adultShop to { ban: 0, banExtension: false, spotted: false, stolenClothes: 0, totalStolenClothes: 0, banCount: 0, rng: random(0,1000) }>> <</if>> <<if $penisWetness is undefined>> <<set $penisWetness to 0>> <</if>> <<if $pbdisable is undefined>> <<set $pbdisable to "t">> <</if>> <<if $facestyle is undefined>> <<set $facestyle to "default">> <</if>> <<if $blinkingdisable is undefined>> <<set $blinkingdisable to "f">> <</if>> <<if $makeup is undefined>> <<set $makeup = {}>> <<set $makeup.owned = {}>> <<set $makeup.owned.lipstick = []>> <<set $makeup.owned.eyeshadow = []>> <<set $makeup.owned.eyelenses = []>> <<set $makeup.owned.hairdye = []>> <<set $makeup.owned.mascara = []>> <<set $makeup.lipstick = 0>> <<set $makeup.eyeshadow = 0>> <<set $makeup.eyelenses = {"left":0, "right":0}>> <<set $makeup.mascara = 0>> <<set $makeup.mascara_running = 0>> <<set $makeup.pbcolour = 0>> <<set $makeup.browscolour = 0>> <<set $makeup.concealer = 0>> <</if>> <<if $makeup.owned.custom_eyelenses is undefined>> <<set $makeup.owned.custom_eyelenses to []>> /* pharmacy custom eye lenses */ <</if>> <<if $uncomfortable.prostituting is undefined>> <<set $uncomfortable.prostituting to true>> <</if>> <<if $malevictimchance is undefined>> <<set $malevictimchance to $malechance>> <<set $homochance to 4>> <</if>> <<if $livestock_intro is 0>> <<if $remySeen is undefined>> <<set $livestock_robin to 1>> <</if>> <<if $livestock_noise is undefined>> <<set $livestock_noise to false>> <</if>> <</if>> <<if $birdbuild is undefined>> <<set $birdbuild to 0>> <<set $harpy to 0>> <<set $home_gone to 0>> <</if>> <<if $hirsutedisable>> <<if $hirsutedisable is "f">> <<if $wolfgirl gte 4>> <<set $transformationParts.wolf.pubes to "default">> <<set $transformationParts.wolf.pits to "default">> <<else>> <<set $transformationParts.wolf.pubes to "disabled">> <<set $transformationParts.wolf.pits to "disabled">> <</if>> <<if $harpy gte 6>> <<set $transformationParts.bird.pubes to "default">> <<else>> <<set $transformationParts.bird.pubes to "disabled">> <</if>> <<else>> <<if $wolfgirl gte 4>> <<set $transformationParts.wolf.pubes to "hidden">> <<set $transformationParts.wolf.pits to "hidden">> <<else>> <<set $transformationParts.wolf.pubes to "disabled">> <<set $transformationParts.wolf.pits to "disabled">> <</if>> <<if $harpy gte 6>> <<set $transformationParts.bird.pubes to "hidden">> <<else>> <<set $transformationParts.bird.pubes to "disabled">> <</if>> <</if>> <<unset $hirsutedisable>> <</if>> <<hirsuteHideCheck>> <<if $per_npc.janitor isnot undefined>> <<clearNPC "janitor">> <</if>> <<if $prop is undefined>> <<set $prop to []>> <</if>> <<if $punishmentposition isnot 0 and $location isnot "brothel">> <<set $punishmentposition to 0>> <</if>> <<if $schoolrep is undefined>> <<set $schoolrep to {}>> <<set $schoolrep.crossdress to 0>> <<set $schoolrep.herm to 0>> <</if>> <<if $science_star is undefined>> <<set $science_star to 0>> <<set $maths_star to 0>> <<set $english_star to 0>> <<set $history_star to 0>> <</if>> <<if $farm_shift is undefined>> <<set $farm_shift to 0>> <<unset $beaststance>> <<set $cattle_milked to 0>> <</if>> <<if $fringetype is "swept right">> <<set $fringetype to "swept left">> <</if>> <<if $version === undefined>> <<set $version={}>> <</if>> <<if $version.schema === undefined>> <<set $version.schema = 1>> <</if>> <<if typeof $farm_yield_alex is "string">> <<set $farm_yield_alex to 0>> <</if>> <<if typeof $farm_yield is "string">> <<set $farm_yield to 0>> <</if>> <<if $farm is undefined>> <<elseif $farm.build_finished is "parasite 1">> <<set $farm.build_finished to ["parasites 1"]>> <<elseif $farm.build_finished is "parasite 2">> <<set $farm.build_finished to ["parasites 2"]>> <</if>> <<if $farm is undefined>> <<elseif $farm.build_finished is undefined or $farm.build_finished is 0>> <<set $farm.build_finished to []>> <<elseif Array.isArray($farm.build_finished)>> <<else>> <<set $farm.build_finished to [$farm.build_finished]>> <</if>> <<if typeof $money is "string">> <<set $money to 0>> <</if>> <<if $masseur_stat is undefined>> <<set $masseur_stat to 0>> <<set $machine_stat to 0>> <</if>> /* <<if $year % 4 is 0 and $yeardays gte 366 or $yeardays gte 365>> <<year>> <</if>> */ <<if $mason_pond is 5 and $garden_flowers_intro is 1>> <<unset $garden_flowers_intro>> <<plots_init garden 3 earth 1 small>> <<add_plot garden water 1 small>> <<elseif $mason_pond is 5>> <<if !$plots.garden[3]>> <<add_plot garden water 1 small>> <</if>> <</if>> <<if $science_exam is undefined>> <<set $science_exam to (40 + ($weekday * 10))>> <<set $maths_exam to (40 + ($weekday * 10))>> <<set $english_exam to (40 + ($weekday * 10))>> <<set $history_exam to (40 + ($weekday * 10))>> <<if $science gte 700>> <<set $sciencetrait to 4>> <<set $science to 1000>> <<elseif $science gte 500>> <<set $sciencetrait to 3>> <<set $science to 700>> <<elseif $science gte 400>> <<set $sciencetrait to 2>> <<set $science to 400>> <<elseif $science gte 200>> <<set $sciencetrait to 1>> <<set $science to 200>> <<elseif $science gte 100>> <<set $sciencetrait to 0>> <<set $science to 100>> <<else>> <<set $sciencetrait to -1>> <<set $science to 0>> <</if>> <<if $maths gte 700>> <<set $mathstrait to 4>> <<set $maths to 1000>> <<elseif $maths gte 500>> <<set $mathstrait to 3>> <<set $maths to 700>> <<elseif $maths gte 400>> <<set $mathstrait to 2>> <<set $maths to 400>> <<elseif $maths gte 200>> <<set $mathstrait to 1>> <<set $maths to 200>> <<elseif $maths gte 100>> <<set $mathstrait to 0>> <<set $maths to 100>> <<else>> <<set $mathstrait to -1>> <<set $maths to 0>> <</if>> <<if $english gte 700>> <<set $englishtrait to 4>> <<set $english to 1000>> <<elseif $english gte 500>> <<set $englishtrait to 3>> <<set $english to 700>> <<elseif $english gte 400>> <<set $englishtrait to 2>> <<set $english to 400>> <<elseif $english gte 200>> <<set $englishtrait to 1>> <<set $english to 200>> <<elseif $english gte 100>> <<set $englishtrait to 0>> <<set $english to 100>> <<else>> <<set $englishtrait to -1>> <<set $english to 0>> <</if>> <<if $history gte 700>> <<set $historytrait to 4>> <<set $history to 1000>> <<elseif $history gte 500>> <<set $historytrait to 3>> <<set $history to 700>> <<elseif $history gte 400>> <<set $historytrait to 2>> <<set $history to 400>> <<elseif $history gte 200>> <<set $historytrait to 1>> <<set $history to 200>> <<elseif $history gte 100>> <<set $historytrait to 0>> <<set $history to 100>> <<else>> <<set $historytrait to -1>> <<set $history to 0>> <</if>> <<exam_difficulty>> <<set $distinction_stat to 0>> <<unset $arousalsaved>> <</if>> <<if isNaN(parseInt($tiredness))>> <<set $tiredness to 0>> <</if>> <<if ($minute % $time) isnot ($time - ($hour * 60))>> <<set $minute to ($time - ($hour * 60))>> <</if>> <<if $waspdisable is undefined>> <<set $waspdisable to "f">> <</if>> <<if $slugdisable is undefined>> <<set $slugdisable to "f">> <</if>> <<if $season is undefined>> <<if $month is "december" or $month is "january" or $month is "february">> <<set $season to "winter">> <<elseif $month is "march" or $month is "april" or $month is "may">> <<set $season to "spring">> <<elseif $month is "june" or $month is "july" or $month is "august">> <<set $season to "summer">> <<else>> <<set $season to "autumn">> <</if>> <</if>> <<farm_update>> <<if $prepareSaveDetails is undefined>> <<set $prepareSaveDetails to true>> <</if>> <<if $attitudesControl is undefined>> <<set $attitudesControl to { showGoldLink:false, unlockExhibitionismUnderwear:false, unlockExhibitionismNude:false, unlockTransformation:false, unlockDemonFlaunt:false, unlockProstitution:false, unlockLoveInterest1:false, unlockLoveInterest2:false, unlockLoveInterest3:false, unlockDefaultActions:false }>> <</if>> <<if $wild_plant_stat is undefined>> <<set $wild_plant_stat to 0>> <</if>> <<if $fertiliser is undefined>> <<set $fertiliser to {current:0,used:0}>> <</if>> <<if $saveName.includes("<")>> <<set $saveName to $saveName.replace(/[^a-zA-Z\u4e00-\u9fa5 0-9]+/g,"")>> <</if>> <<if $imgLighten is false>> <<set $imgLighten to "">> <<elseif $imgLighten is true>> <<set $imgLighten to "imgLighten">> <</if>> <<if $enemyArousalLossReduction is undefined>> <<set $enemyArousalLossReduction to 1>> <</if>> <<if $pubtask is 1>> <<set $pubtask to "forest">> <</if>> <<if $plants_known.includes("garlic bulb")>> <<set $plants_known.delete("garlic bulb")>> <<set $plants_known.push("garlic_bulb")>> <</if>> <<if $outbuildingvisited is 1 and $outbuildingBeast is undefined>> <<set $outbuildingBeast to "dog">> <</if>> <<if $o_long_and_beautiful gt 10>> <<set $o_long_and_beautiful to 10>> <<elseif !$hy_parent and !$hy_student and $o_long_and_beautiful is 10>> <<set $o_long_and_beautiful to 9>> <</if>> <<if $money is NaN or $money is undefined>> <<set $money to 0>> <</if>> <<if $mannequinHasPenis is undefined>> <<set $mannequinHasPenis to $player.penisExist>> <<set $mannequinBreastsSize to $mannequinHasPenis ? 0 : 3>> <</if>> <<if $shopPage is undefined>> <<set $shopPage = 0>> <</if>> <<if $shopClothingFilter is undefined>> <<shopClothingFilterReset>> <</if>> <<if $shopItemsPerPage is undefined>> <<set $shopItemsPerPage = 12>> <</if>> <<if $saveDetails is undefined>> <<set $saveDetails to { exported:{ days: clone($days), frequency: 15, count: 0, dayCount: 0, }, auto:{ count: 0 }, slot:{ count: 0, dayCount: 0, }, playTime: 0, loadTime: new Date(), loadCount: 0, }>> <<unset $lastExported>> <</if>> <<if $saveDetails.exported.dayCount is undefined>> <<set $saveDetails.exported.dayCount to 0>> <<set $saveDetails.slot.dayCount to 0>> <</if>> <<if $sleepStat is undefined>> <<set $sleepStat to 0>> <</if>> <<if $greathawkmonster is undefined>> <<rng>> <<if $monsterchance gte $rng>> <<set $greathawkmonster to 1>> <<else>> <<set $greathawkmonster to 0>> <</if>> <<set $bird to {}>> <</if>> <<if $harpy is undefined>> <<set $harpy to 0>> <</if>> <<if C.npc["Great Hawk"].type is "bird">> <<set C.npc["Great Hawk"].type to "hawk">> <</if>> <<if $clothesPrice is undefined>> <<set $clothesPrice to 1>> <</if>> <<if $clothesPriceUnderwear is undefined>> <<set $clothesPriceUnderwear to 1>> <<set $clothesPriceSchool to 1>> <<set $clothesPriceLewd to 1>> <</if>> <<childrenSetup>> <<if $basePlayerPregnancyChance is undefined>> <<set $basePlayerPregnancyChance to 50>> <<set $humanPregnancyMonths to 3>> <<set $wolfPregnancyWeeks to 4>> <<set $playerPregnancyHumanDisable to "f">> <<set $playerPregnancyBeastDisable to "f">> <<set $npcPregnancyDisable to "f">> <</if>> <<if $famepregnancy is undefined>> <<set $famepregnancy to 0>> <<set $baseNpcPregnancyChance to 8>> <</if>> <<if $analingusdisablegiving is undefined or $analingusdisablereceiving is undefined>> <<set $analingusdisablegiving to $analdisable>> <<set $analingusdisablereceiving to $analdisable>> <</if>> <<if $analdoubledisable is undefined>> <<set $analdoubledisable to $analdisable>> <</if>> <<if $vaginaldoubledisable is undefined>> <<set $vaginaldoubledisable to "f">> <</if>> <<if $furniturePriceFactor is undefined>> <<set $furniturePriceFactor to 1>> <</if>> <<if $rentmod is undefined>> <<set $rentmod to 1>> <<elseif $rentmod gt 3>> <<set $rentmod to 3>> <</if>> <<if $money % 1>> <<set $money to Math.floor($money)>> <</if>> <<if $blackjack_played is undefined>> <<set $blackjack_played to 0>> <<set $blackjack_won to 0>> <<set $blackjack_streak to 0>> <<set $blackjack_streak_high to 0>> <</if>> /*To prevent the wardrobe from being inaccessable due to nulls*/ <<for $_label, $_value range $wardrobe>> <<if $_label is "space">> <<continue>> <</if>> <<run $wardrobe[$_label].delete(null)>> <</for>> <<if $fringetype is "flaps">> <<set $fringetype to "thin flaps">> <</if>> <<if $player.virginity.penile is "Great Hawk" or $player.virginity.vaginal is "Great Hawk">> <<earnFeat "Great Hawk the Terror">> <</if>> <<if $player.virginity.penile is "Black Wolf" or $player.virginity.vaginal is "Black Wolf">> <<earnFeat "Great Wolf the Alpha">> <</if>> <<if $bodyPartSelectedKey isnot undefined>> <<set $bodyPartSelected to $bodyPartSelectedKey>> <<unset $bodyPartSelectedKey>> <</if>> <<if $hoodDown is undefined>> <<set $hoodDown to 0>> <</if>> <<if $cardcover is undefined>> <<set $cardcover = { style: 0, colour: 'red' }>> <</if>> <<if $templePromised is undefined>> <<set $templePromised to "">> <</if>> <<if $perNPCFix isnot 2>> <<set $perNPCFix to 2>><<unset $perPronounFix>><<unset $perChastityFix>> <<set _keys to Object.keys($per_npc)>> <<for _npc range _keys>> <<if $per_npc[_npc].pronouns is undefined or $per_npc[_npc].pronouns.he is 0>> <<generatePronouns $per_npc[_npc]>> <</if>> <<if $per_npc[_npc].chastity is undefined>> <<set $per_npc[_npc].chastity to {penis:"", vagina:"", anus:""}>> <</if>> <<if $per_npc[_npc].role is undefined>> <<set $per_npc[_npc].role to "normal">> <</if>> <<if $per_npc[_npc].condom is undefined>> <<set $per_npc[_npc].condom to false>> <</if>> <<if $per_npc[_npc].name_known is undefined>> <<set $per_npc[_npc].name_known to 0>> <</if>> <</for>> <</if>> <<if $sidebarRenderer is undefined>> <<set $sidebarRenderer to 'canvas'>> <</if>> <<if $showDebugRenderer is undefined>> <<set $showDebugRenderer to !!StartConfig.debug>> <</if>> <<if $makeup.pbcolour isnot 0 and !($makeup.pbcolour in setup.colours.hair_map)>> <<set _record to setup.guessColourInMap(setup.colours.hair_map, $makeup.pbcolour)>> <<if _record>> <<set $makeup.pbcolour to _record.variable>> <<else>> <<run Errors.report("Failed to update makeup.pbcolour from " + $makeup.pbcolour)>> <</if>> <</if>> <<for _item range $makeup.owned.hairdye>> <<if !(_item.colour in setup.colours.hair_map)>> <<set _record to setup.guessColourInMap(setup.colours.hair_map, _item.colour)>> <<if _record>> <<set _item.colour to _record.variable>> <<else>> <<run Errors.report("Failed to update dye from " + _item.colour)>> <</if>> <</if>> <</for>> <<if $notifyUpdate is undefined>> <<set $notifyUpdate = true>> <</if>> <<if $beedisable is undefined>> <<set $beedisable to "f">> <</if>> <<if $lurkerdisable is undefined>> <<set $lurkerdisable to "f">> <</if>> <<if $prof is undefined>> <<set $prof to {}>> <<set $prof.spray to 0>> <<set $stat_lurkers_captured to 0>> <<set $stat_aphrodisiacs_sold to 0>> <<set $sadism to 0>> <<set $sadism_level to 0>> <</if>> <<if $horsedisable is undefined>> <<set $horsedisable to "f">> <</if>> <<if $farm_stage gte 10 and $lurkers_held is undefined>> <<set $lurkers_held to 0>> <</if>> <<if $edenprepare is 1 and $edenwall is undefined>> <<set $edenwall to 0>> <<set $edenchimney to 0>> <<set $edenroof to 0>> <</if>> <<if $stat_panties_stolen is undefined>> <<set $stat_panties_stolen to 0>> <<set $stat_police to {}>> <<set $stat_police.pillory to 0>> <<set $stat_police.community to 0>> <<set $stat_police.prison to 0>> <</if>> <<if !$locker_suspicion or !$panties_held or $locker_suspicion lt 0>> <<set $locker_suspicion to 0>> <<set $panties_held to 0>> <</if>> <<if $footdisable is undefined>> <<set $footdisable to "f">> <<set $uncomfortable.lewd to true>> <</if>> <<if $player.bodyliquid is undefined>> <<set $player.bodyliquid to {}>> <<for _bodypart range setup.bodyliquid.bodyparts>> <<set $player.bodyliquid[_bodypart] to {}>> <<set $player.bodyliquid[_bodypart].goo to V[_bodypart+"goo"]>> <<set $player.bodyliquid[_bodypart].semen to V[_bodypart+"semen"]>> <<run delete V[_bodypart+"goo"]>> <<run delete V[_bodypart+"semen"]>> <</for>> <</if>> <<if $npc is 0>> <<unset $npc>> <<set $npc to []>> <<elseif !(Array.isArray($npc))>> <<set _npcsubstitute to clone($npc)>> <<unset $npc>> <<set $npc to [_npcsubstitute]>> <<unset _npcsubstitute>> <</if>> <<if $npcnum is undefined>> <<set $npcnum to []>> <<elseif !(Array.isArray($npcnum))>> <<set _npcsubstitute to clone($npcnum)>> <<unset $npcnum>> <<set $npcnum to [_npcsubstitute]>> <<unset _npcsubstitute>> <</if>> <<if $npcrow is undefined>> <<set $npcrow to []>> <<if $npc[0]>> <<set $npcrow[0] to 0>> <</if>> <</if>> <<if $choketrait is undefined>> <<set $choketrait to 0>> <</if>> <<if $museumAntiqueJournalHints is undefined>> <<set $museumAntiqueJournalHints to []>> <</if>> <<if $plants_known.includes("red rose")>> <<run $plants_known.delete("red rose")>> <<set $plants_known.push("red_rose")>> <</if>> <<if $transformdisabledivine is undefined>> <<if $transformdisable is "f">> <<set $transformdisabledivine to "f">> <<else>> <<set $transformdisabledivine to "t">> <</if>> <</if>> <<if $penisexist isnot undefined and ($player.penisExist != $penisexist or $player.vaginaExist != $vaginaexist)>> <<set $player.vaginaExist to ($player.sex isnot "m")>> /* <<set $vaginaexist to ($player.sex isnot "m" ? 1 : 0)>> */ <<set $player.penisExist to ($player.sex isnot "f")>> /* <<set $penisexist to ($player.sex isnot "f" ? 1 : 0)>> */ <</if>> <<if $penisexist isnot undefined>> <<unset $penisexist>> <<unset $vaginaexist>> <</if>> <<if $NPCName[0].penis is 0>> <<initnpcgender>> <</if>> <<if $kylar is undefined>> <<set $kylar to {}>> <<set $kylar.raped to 0>> <<set $kylar.riddle to 0>> <<set $kylar.timer to {halls:0,street:0,home:0,love:0}>> <<set $kylarSeen to []>> <</if>> <<if $kylarsydneywriting is 1>> <<set $kylarSeen.pushUnique("sydneyWriting")>> <<unset $kylarsydneywriting>> <</if>> <<if $sydneySeen isnot undefined>> <<if $sydneySeen.includes("kylarwriting")>> <<set $kylarSeen.pushUnique("sydneyWriting")>> <<run delete $sydneySeen.pushUnique("kylarwriting")>> <</if>> <</if>> <<if $kylarraped isnot undefined>> <<set $kylar.raped to $kylarraped>> <<unset $kylarraped>> <</if>> <<if $kylartimer isnot undefined>> <<set $kylar.timer.halls to $kylartimer>> <<unset $kylartimer>> <</if>> <<if $kylarstreettimer isnot undefined>> <<set $kylar.timer.street to $kylarstreettimer>> <<unset $kylarstreettimer>> <</if>> <<if $kylarsaidlove isnot undefined>> <<set $kylarSeen.pushUnique("saidLove")>> <<unset $kylarsaidlove>> <</if>> <<if $kylarspray is 1>> <<set $kylarDaily.spray to true>> <<unset $kylarspray>> <</if>> <<if $kylar_bodywriting is 1>> <<set $kylarDaily.bodywriting to true>> <<unset $kylar_bodywriting>> <</if>> <<if $kylar_invite isnot undefined>> <<if $kylar_invite is 1>> <<set $kylarDaily.invite to "home">> <<else>> <<set $kylarDaily.invite to "school">> <</if>> <<unset $kylar_invite>> <</if>> <<if $kylar_undies_taken isnot undefined>> <<set $kylarDaily.undies to true>> <</if>> <<if $kylarpantiescheck isnot undefined>> <<set $kylarSeen.pushUnique("commando")>> <<unset $kylarpantiescheck>> <</if>> <<if $kylarsleeprape isnot undefined>> <<set $kylarDaily.sleepRape to true>> <<unset $kylarsleeprape>> <</if>> <<if $kylarconfessiontimer isnot undefined>> <<set $kylar.timer.love to $kylarconfessiontimer>> <<unset $kylarconfessiontimer>> <</if>> <<if $kylarhome isnot undefined>> <<set $kylar.home to $kylarhome>> <<unset $kylarhome>> <</if>> <<if $kylarhometimer isnot undefined>> <<set $kylar.timer.home to $kylarhometimer>> <<unset $kylarhometimer>> <</if>> <<if $kylarhomeinterrupted isnot undefined>> <<set $kylarSeen.includes("home")>> <<unset $kylarhomeinterrupted>> <</if>> <<if $kylarwalk isnot undefined>> <<set $daily.kylar.walk to true>> <<unset $kylarwalk>> <</if>> <<if $kylarFountain isnot undefined>> <<set $kylar.fountain to $kylarFountain>> <<unset $kylarFountain>> <</if>> <<if $kylarFountainIntroWinter>> <<set $kylarSeen.pushUnique("fountainWinter")>> <<unset $kylarFountainIntroWinter>> <</if>> <<if $kylarFountainKiss isnot undefined>> <<if $kylarFountainKiss is 1>> <<set $daily.kylar.walkKiss to true>> <</if>> <<unset $kylarFountainKiss>> <</if>> <<if $kylarFountainIntro isnot undefined>> <<if $kylarFountainIntro is 1>> <<set $kylarSeen.pushUnique("fountainIntro")>> <</if>> <<unset $kylarFountainIntro>> <</if>> <<if $kylarFountainCoin isnot undefined>> <<set $kylar.fountainCoin to $kylarFountainCoin>> <<unset $kylarFountainCoin>> <</if>> <<if $kylarfamestage isnot undefined>> <<set $kylar.fameStage to $kylarfamestage>> <<unset $kylarfamestage>> <</if>> <<if $kylarchatintro isnot undefined>> <<set $kylarSeen.pushUnique("chatIntro")>> <<unset $kylarchatintro>> <</if>> <<if $kylarcanteen isnot undefined>> <<set $kylarSeen.pushUnique("canteen")>> <<unset $kylarcanteen>> <</if>> <<if $kylarriddle isnot undefined>> <<set $kylar.riddle to $kylarriddle>> <<unset $kylarriddle>> <</if>> <<if $kylar_play isnot undefined>> <<set $kylar.play to $kylar_play>> <<unset $kylar_play>> <</if>> <<if typeof($semen_produced_stat) is "string">> <<set $semen_produced_stat to parseFloat($semen_produced_stat)>> <</if>> <<if !(Array.isArray($event))>> <<unset $event>> <</if>> <<if $multipleWardrobes is undefined>> <<set $multipleWardrobes to "isolated">> <</if>> <<if $nectar_drank_stat is undefined>> <<set $nectar_drank_stat to 0>> <<set $tentacleMouth to 0>> <<set $tentacleAnus to 0>> <<set $tentacleAnusBaby to 0>> <<set $tentacleVagina to 0>> <<set $tentaclePenis to 0>> <</if>> <<if $index is undefined and $enemyno gte 1>> <<set $index to 0>> <<for _n to 0; _n lt $NPCList.length; _n++>> <<if $NPCList[_n].desc is $description>> <<set $index to _n>> <<break>> <</if>> <</for>> <</if>> <<if !$NPC_names_m>> <<init_names>> <</if>> <<if $prison and $prison.kylar is undefined>> <<set $prison.kylar to 0>> <</if>> <<if $plantdisable is undefined>> <<set $plantdisable to "f">> <</if>> <!-- Makes sure $kennel_treats aren't strings due to bug. --> <<if typeof $kennel_treats isnot "number">> <<set $kennel_treats to 0>> <</if>> <<if $bodywritingLvl is undefined>> <<set $bodywritingLvl to ($bodywritingdisable is "f" ? 3 : 0)>> <</if>> /* Start of Target variables */ <<if $npcDAP isnot undefined>> <<set $anustarget to $npcDAP[0]>> <<set $anusdoubletarget to $npcDAP[1]>> <<unset $npcDAP>> <</if>> <<if $targetYourself is undefined>> <<set $targetYourself to false>> <</if>> <<if $NPCList isnot undefined and $NPCList[0].active is undefined>> <<for _i = 0; _i < $NPCList.length; _i++>> <<set $NPCList[_i].active to 0>> <</for>> <<if $combat is 1>> <<for _i = 0; _i < $enemyno; _i++>> <<set $NPCList[_i].active to "active">> <<if $NPCList[_i].type is 0>> <<set $NPCList[_i].type to "human">> <</if>> <<set $NPCList[_i].healthmax to $NPCList[_i].health>> <</for>> <</if>> <</if>> <<if $breastuse isnot undefined and $breastuse isnot 0>> <<set $chestuse to $breastuse>> <<unset $breastuse>> <</if>> <<if $machine isnot undefined and $machine.number lte 0>> <<unset $machine>> <<elseif $enemytype isnot "machine">> <<unset $machine>> <<elseif $combat isnot 1>> <<unset $machine>> <</if>> /* End of Target variables */ <!-- remove duplicates from the hints list --> <<if $objectVersion.museumAntiques lt 8>> <<set $objectVersion.museumAntiques to 8>> <<set _newlist to []>> <!-- run in reverse to preserve only most recently added entries --> <<for _i = $museumAntiqueJournalHints.length - 1; _i gte 0; _i-->> <<if $museumAntiques.antiques[$museumAntiqueJournalHints[_i]] is "notFound">> <<set _newlist.pushUnique($museumAntiqueJournalHints[_i])>> <</if>> <</for>> <<set $museumAntiqueJournalHints to clone(_newlist).reverse()>> <</if>> <<if $stealtarget is undefined>> <<if $combat is 1 and $stealstate is 3>> <<set $stealtarget to "012345">> <<else>> <<set $stealtarget to "">> <</if>> <</if>> <<if $stealdifficulty is undefined>> <<set $stealdifficulty to 1>> <</if>> <<if $stealstate isnot undefined>> <<set $stealstateleft to $stealstate>> <<set $stealstateright to $stealstate>> <<unset $stealstate>> <</if>> <<if $righttarget is undefined>> <<set $righttarget to 0>> <<set $lefttarget to 0>> <</if>> <<if !$NPCList[0].chastity>> <<for _i to 0; _i lt $NPCList.length; _i++>> <<set $NPCList[_i].chastity to {penis: "", vagina: "", anus: ""}>> <</for>> <</if>> <<for _i to 0; _i lt $NPCList.length; _i++>> <<if $NPCList[_i].pronoun and (!$NPCList.pronouns or !$NPCList.pronouns.man)>> <<generatePronouns $NPCList[_i]>> <</if>> <</for>> <!-- pregnancyVar was moved to <<backComp>>--> <</widget>> <<widget "variablesVersionUpdate2">> /* 0.4.0.0 is the last version that should need the old vvu */ <<run window.backCompPillsInventory()>> /* restructure V.sexStats.pills inventory */ <!--Tracking for the Plant Lover trait--> <<if $nectar_addiction is undefined>> <<set $nectar_addiction to 0>> <<set $nectar_timer to 0>> <</if>> <<if $hypnotised is undefined>> <<set $hypnotised to 0>> <<set $famemodel to 0>> <</if>> <<if $chef_state gte 5 and $photo_known is undefined>> <<set $photo_known to 1>> <</if>> <<if $cardcover is undefined>> <<set $cardcover = { style: 0, colour: 'red' }>> <</if>> <<if $sleepStat is undefined>> <<set $sleepStat to 0>> <</if>> <<for $_i = 0; $_i < $NPCName.length; $_i++>> <<if $NPCName[$_i].virginity is undefined>> <<initNNPCVirginity $_i>> <</if>> <</for>> <<if $player.virginity.vaginal is "Harper" or $player.virginity.penile is "Harper">> <<earnFeat "Harper the Hypnotist">> <</if>> <<if $player.virginity.vaginal is "Morgan" or $player.virginity.penile is "Morgan">> <<earnFeat "Morgan the Lost">> <</if>> <!-- Jimmy: DefaultActions JS routine for error correction. --> <<run /* Perform check for broken default action structures. */ if ($actionDefaults != undefined) { /* Test 1 - If regrab[0] is an object, there was a failure. */ let temp = DefaultActions.get('rape', 'Everyone', 'regrab')[0]; if (typeof temp === 'object') { /* Reset everything as a final step, the error is consumed. */ V.actionDefaults = temp; V.actionDefaults = DefaultActions.check(DefaultActions.setup()) } } >> <!-- Jimmy: Updater for NNPCs that lack pronouns structures. Based off of $perNPCFix located in VVU --> <<if $pronounsNPCFix isnot 1>> <<for $_npc range $NPCName>> <<if $_npc.pronouns is undefined>> <<generatePronouns $_npc>> <</if>> <</for>> <<set $pronounsNPCFix = 1>> <</if>> <!-- persistent npc fix v3 --> <<if $perNPCFix isnot 4>> <<set $perNPCFix to 4>> <!-- clean nulls and undefineds from name lists --> <<run $NPC_names_f.delete(null, undefined)>> <<run $NPC_names_m.delete(null, undefined)>> <<set $_per_keys to Object.keys($per_npc)>> <<for $_per_ctrl range $_per_keys>> <<if !$per_npc[$_per_ctrl]>> <!-- remove null and undefined --> <<run delete $per_npc[$_per_ctrl]>> <<elseif !$per_npc[$_per_ctrl].type>> <!-- type fix --> <<set $per_npc[$_per_ctrl].type to "human">> <</if>> <</for>> <!-- prison npcs --> <<for $_npc range ["anxious_guard", "methodical_guard", "relaxed_guard", "veteran_guard", "scarred_inmate"]>> <<if $per_npc[$_npc]>> <!-- restore null names--> <<if !$per_npc[$_npc].name>> <<set $per_npc[$_npc].name to ($per_npc[$_npc].pronoun is "m" ? $NPC_names_m.pluck() : $NPC_names_f.pluck())>> <</if>> <!-- fix descriptions --> <<if $per_npc[$_npc].name_known>> <<set $per_npc[$_npc].fullDescription to $per_npc[$_npc].name>> <<else>> <<set $per_npc[$_npc].fullDescription to $_npc.replace('_', ' ')>> <</if>> <</if>> <</for>> <</if>> <!-- v0.3.5.4: pubic hair was accidentally disabled on new saves bc it wasn't initialised properly. --> <<pbhairinit>> <!-- v0.3.6.2: blind stats mode --> <<if $statdisable is undefined>> <<set $statdisable to "f">> <</if>> <!-- v0.3.6.2: tending update --> <<if $tendingvars is undefined>> <<set $tendingvars to {}>> <<for $_plot_locations range $plots>> <<for $_plot range $_plot_locations>> <<set $_plot.plant to ($_plot.name and $_plot.stage gt 0 ? $_plot.name : "none")>> <<run delete $_plot.name>> <</for>> <</for>> <</if>> <<if $tending_yield_factor is undefined>> <<set $tending_yield_factor to 5>> <<else>> <<set $tending_yield_factor to Math.clamp($tending_yield_factor, 1, 10)>> <</if>> <!-- Jimmy: [<=0.3.6.2] Asserts that $outfit[].colors is assigned, default to false. --> <<if $outfit_update is undefined or $outfit_update lt 3>> <<set $outfit_update to 3>> <<for $_i to 0; $_i lt $outfit.length; $_i++>> <<if $outfit[$_i].colors is undefined>> <<set $outfit[$_i].colors to false>> <</if>> <</for>> <</if>> <!-- v0.3.6.2: herm wraith fix --> <<if $per_npc.wraith and ["m", "f"].includes($per_npc.wraith.gender) and $per_npc.wraith.penis isnot "none" and $per_npc.wraith.vagina isnot "none">> <<if $per_npc.wraith.gender is "m">><<set $per_npc.wraith.vagina to "none">><</if>> <<if $per_npc.wraith.gender is "f">><<set $per_npc.wraith.penis to "none">><</if>> <</if>> <!-- v0.3.6.2: Giving Robin clothes if their outfits array is already defined, but they lack the proper normal clothes --> <<if C.npc.Robin.outfits isnot undefined and !C.npc.Robin.outfits.includes("maleSchool")>> <<set $_robin to C.npc.Robin>> <<if $_robin.outfits.includes("shirt")>> <<run $_robin.outfits.delete("shirt")>> <<set $_robin.outfits.pushUnique("robinGiftShirt")>> <</if>> <<if $_robin.outfits.includes("sundress")>> <<run $_robin.outfits.delete("sundress")>> <<set $_robin.outfits.pushUnique("robinGiftSundress")>> <</if>> <<if $_robin.outfits.includes("kimono")>> <<run $_robin.outfits.delete("kimono")>> <<set $_robin.outfits.pushUnique("robinGiftKimono")>> <</if>> <<if $_robin.outfits.includes("tuxedo")>> <<run $_robin.outfits.delete("tuxedo")>> <<set $_robin.outfits.pushUnique("robinGiftTux")>> <</if>> <<if $_robin.outfits.includes("gothic gown")>> <<run $_robin.outfits.delete("gothic gown")>> <<set $_robin.outfits.pushUnique("robinGiftGown")>> <</if>> <<if $_robin.outfits.includes("christmas")>> <<run $_robin.outfits.delete("christmas")>> <<set $_robin.outfits.pushUnique("robinGiftChristmas")>> <</if>> <<initNNPCClothes "Robin" "update">> <<set $_robin.outfits.pushUnique("naked", "maleDefault", "femaleDefault")>> <<if $_robin.currentOutfit>> <<switch $_robin.currentOutfit>> <<case "shirt">><<set $_clothesReplace to "robinGiftShirt">> <<case "sundress">><<set $_clothesReplace to "robinGiftSundress">> <<case "kimono">><<set $_clothesReplace to "robinGiftKimono">> <<case "tuxedo">><<set $_clothesReplace to "robinGiftTuxedo">> <<case "gothic gown">><<set $_clothesReplace to "robinGiftGown">> <<case "christmas">><<set $_clothesReplace to "robinGiftChristmas">> <</switch>> <<npcClothesName $_robin $_clothesReplace>> <<run delete $_robin.currentOutfit>> <</if>> <</if>> <!-- v0.3.6.2: Fixing undefined animations, printing one-time notification for any who had them disabled. --> <<if $objectVersion.animations lt 1 or $objectVersion.animations is undefined>> <<set $objectVersion.animations to 1>> <<if $combatAnimations is false and $sidebarAnimations is false>> <div id="animWarning" @class="'no-numberify '"> <span class='teal'>Animations are currently disabled. This may have been caused by a one-time bug. You can re-enable animations immediately, or in the "general" tab of the settings menu.</span> | <<link "Enable all animations">><<addclass #animWarning "hidden">><<set $combatAnimations to true>><<set $sidebarAnimations to true>><</link>> | <<link "Disable this message">><<addclass #animWarning "hidden">><</link>> </div> <</if>> <<if $combatAnimations is undefined>> <<set $combatAnimations to true>> <<set $sidebarAnimations to true>> <</if>> <</if>> <!-- v0.3.6.2: Improved debug menu --> <<if $debug_favourite is undefined>> /* add favourites constant variable */ <<set $debug_favourite = []>> <</if>> <!-- v0.3.6.2: Init variables necessary for custom contact lenses --> <<if ndef $lenses_ordered>> <<set $lenses_ordered to []>> <</if>> <<if ndef $custom_lenses_already_ordered>> <<set $custom_lenses_already_ordered to 0>> <</if>> <<if ndef $custom_eyecolours>> <<set $custom_eyecolours to []>> <</if>> <<if ndef $makeup.owned.custom_eyelenses>> <<set $makeup.owned.custom_eyelenses to []>> /* pharmacy custom eye lenses */ <</if>> <<if $adultShop is undefined>> <<set $adultShop to { ban: 0, banExtension: false, spotted: false, stolenClothes: 0, totalStolenClothes: 0, banCount: 0, rng: random(0,1000) }>> <</if>> <!-- v0.3.6.2: convert all "underclothes" to "underlowerclothes" --> <<if $handtarget is "underclothes">> <<set $handtarget to "underlowerclothes">> <</if>> <!-- v0.3.6.2: refactor transformation stuff --> <<setupTransformationPiecesObject>> <<for $_npc range $NPCList>> <<if $_npc.mouth is "underclothes">> <<set $_npc.mouth to "underlowerclothes">> <</if>> <<if $_npc.lefthand is "underclothes">> <<set $_npc.lefthand to "underlowerclothes">> <</if>> <<if $_npc.righthand is "underclothes">> <<set $_npc.righthand to "underlowerclothes">> <</if>> <</for>> <!-- v0.3.6.2: convert all "understruggle" to "underlowerstruggle" --> <<if $understruggle isnot undefined>> <<set $underlowerstruggle to $understruggle>> <<unset $understruggle>> <</if>> <!-- v0.3.6.2: remove all of the deprecated variables used in npcstrip --> <!-- note for the future: it's probably a good idea to avoid using these variable names for anything else in the future, they're too non-specific. --> <<if $anus>> <<unset $lefthand, $righthand, $anus, $gender1, $penis, $vagina>> <<unset $lefthand2, $righthand2, $anus2, $gender2, $penis2, $vagina2>> <<unset $lefthand3, $righthand3, $anus3, $gender3, $penis3, $vagina3>> <<unset $lefthand4, $righthand4, $anus4, $gender4, $penis4, $vagina4>> <<unset $lefthand5, $righthand5, $anus5, $gender5, $penis5, $vagina5>> <<unset $lefthand6, $righthand6, $anus6, $gender6, $penis6, $vagina6>> <</if>> <!-- v0.3.7.4: NPC sex toys --> <<if $toydildodisable is undefined>> <<set $toydildodisable to "f">> <</if>> <<if $toywhipdisable is undefined>> <<set $toywhipdisable to "f">> <</if>> <!-- v0.3.6.2 unnamed npc virginity update --> <<if $npcVirginityChance is undefined>> <<set $npcVirginityChance to 50>> <<set $npcVirginityChanceAdult to 10>> <</if>> <!-- for v0.3.7.1 and earlier versions --> <<if _version lte 30701>> <<run window.patchCorruptLensesColors()>> /* custom contact lenses fix corrupt colours */ <</if>> <!-- for v0.3.7.4 and earlier versions --> <<if _version lte 30704>> <<if ndef $pillsTakenOn>> <<set $pillsTakenOn to ($monthday.toString() + $month + $year.toString())>> <</if>> <<if ndef $famemodel>> <<set $famemodel to 0>> <</if>> <<if ndef $heterochromia>> <<set $heterochromia to 0>> <<if $cat > 6>> <<set $cat to 6>> <</if>> <</if>> <<if $ironmanmode == undefined>> <<set $ironmanmode to false>> <</if>> <<if def $breastsize>> <<set $player.breastsize to clone($breastsize)>> <<unset $breastsize>> <</if>> <<if def $penissize>> <<set $player.penissize to clone($penissize)>> <<unset $penissize>> <</if>> <<if def $bottomsize>> <<set $player.bottomsize to clone($bottomsize)>> <<unset $bottomsize>> <</if>> <<run window.createInventoryObject()>> <!-- fix for desynch between TFs and $specialTransform --> <<if $demon gte 1 or $angel gte 1 or $fallenangel gte 2>> <<set $specialTransform to 1>> <<else>> <<set $specialTransform to 0>> <</if>> <!-- fix for transformation traits trauma bugs --> <<if $transformationParts.traits.fangs is "hidden">> <<set $transformationParts.traits.fangs to "default">> <</if>> <<if $transformationParts.traits.sharpEyes is "hidden">> <<set $transformationParts.traits.sharpEyes to "default">> <</if>> <</if>> <!-- v0.3.7.4 RobinCrossDressingQuest update --> <<if C.npc.Robin.cdquest is undefined>> <<set C.npc.Robin.cdquest to 0>> <</if>> <!-- v0.3.7.4: sleep code readability update --> <<if $schoolwake isnot undefined>> <<unset $schoolwake>> <</if>> <!-- v0.3.7.4: An old pregnancy code issue where .fertilize was used and not updated. --> <<script>> const pregnancy = V.sexStats.anus.pregnancy; if(Array.isArray(pregnancy.fetus)){ for (let i = 0; i < pregnancy.fetus.length; i++) { const slot = pregnancy.fetus[i]; if (slot != undefined && slot.hasOwnProperty('fertilized')) { slot.fertilised = slot.fertilized; delete slot.fertilized; } } /* Part 2: Futa manipulation. */ let hasFuta = false; for (let i = 0; i < pregnancy.fetus.length; i++) { const slot = pregnancy.fetus[i]; if (slot != undefined && slot.stats != null && slot.stats.gender === 'Futa') { if (hasFuta) { /* Abort the futa. */ pregnancy.fetus[i].toDelete = true; } else { hasFuta = true; if (V.pregnancyStats.parasiteDoctorEvents < 2) { V.pregnancyStats.parasiteDoctorEvents = 2; } pregnancy.motherStatus = 2; } } } V.sexStats.anus.pregnancy.fetus = V.sexStats.anus.pregnancy.fetus.filter(p => p && !p.toDelete); } <</script>> <!-- v0.3.7.4: sex toy and double penetration stats--> <<if $sextoystat is undefined>> <<set $sextoystat to 0>> <<set $analdoublestat to 0>> <<set $vaginaldoublestat to 0>> <</if>> <!-- v0.3.7.4: underground brothel cleanup --> <<if $undergroundtime isnot undefined>> <<set $undergroundbrothel to { "time": $undergroundtime, "timepass": true, "water": $undergroundwater, "escape": $undergroundescape }>> <<unset $undergroundtime>> <<unset $undergroundwater>> <<unset $undergroundescape>> <<set $undergroundbrothelescaped to true>> <</if>> <<if $adultshopprogress is undefined>> <<set $adultshopprogress to 0>> <</if>> <<if $adultshopcontribution is undefined>> <<set $adultshopcontribution to 0>> <</if>> <<if $facesitdisable is undefined>> <<set $facesitdisable to "f">> <</if>> <<if $objectVersion.sexToys is undefined>> <!-- First fix to sextoy objects: Specifically for NNPCs containing an undefined string in their desc. --> <<script>> V.NPCName.forEach(nnpc => { if (nnpc.strapons instanceof Array) { nnpc.strapons.forEach(strapon => { if (typeof strapon.description === 'string') { strapon.description = strapon.description.replace(/undefined/, 'dildo'); } }); } }); <</script>> <<set $objectVersion.sexToys to 1>> <</if>> <!-- v0.3.8.2: sex toy and double penetration stats--> <<if $toymultiplepenetration is undefined>> <<set $toymultiplepenetration to "f">> <</if>> <!-- v0.3.8.2: sextoy inventory code cleanup --> <<if $passage.startsWith("Sextoys Inventory ") and ["Sextoys Inventory Home","Sextoys Inventory Brothel","Sextoys Inventory Cottage","Sextoys Inventory Cabin"].includes($passage)>> <<set $sextoyInvReturnLink to { "Sextoys Inventory Home": "Bedroom", "Sextoys Inventory Brothel": "Brothel Dressing Room", "Sextoys Inventory Cottage": "Farm Bedroom", "Sextoys Inventory Cabin": "Cabin Actions" }[$passage]>> <</if>> <!-- v.0.3.8.2: undefined $control --> <<if $control is undefined>> <<if $controlSaved>> <<set $control to $controlSaved>><<unset $controlSaved>> <<else>> <<set $control to $controlmax>> <</if>> <</if>> <!-- v0.3.8.6: Fixing mismatched specialtransform after losing your virginity --> <<if $demon gte 1 or $angel gte 1 or $fallenangel gte 2>> <<set $specialTransform to 1>> <<else>> <<set $specialTransform to 0>> <</if>> <!-- v0.3.8.6: Traubin overhaul --> <<if $robinTraumaMultiplier is undefined>> <<set $robinTraumaMultiplier to 1>> <</if>> <<if $robinSeen is undefined>> <<set $robinSeen to []>> <</if>> <<if !$robinTattoo>> <<set $robinTattoo to []>> <</if>> <<if $robinPunishments is undefined>> <<set $robinPunishments to []>> <<if C.npc.Robin.trauma gt 0>> <<set $robinPunishments.pushUnique("docks")>> <<set $robinLastPunishment to "docks">> <</if>> <</if>> <<if $robinmissing is undefined>> <<set $robinmissing to 0>> <<elseif $robinmissing is 1>> <<set $robinmissing to "docks">> <<set $robinLastPunishment to "docks">> <</if>> <<if $baileypaychain is undefined>> <<set $baileypaychain to 0>> <</if>> <<if $NPCList[0].index is undefined>> <<for _i to 0; _i lt $NPCList.length; _i++>> <<set $NPCList[_i].index to _i>> <</for>> <</if>> <!-- v0.3.8.6: Awarding the "Robin's Song" feat to players who missed it --> <<if C.npc.Robin.cdquest gte 7>> <<earnFeat "Robin's Song">> <</if>> <!-- v0.3.8.6: Kylar rework --> <<if $kylar.fameStage is undefined>> <<set $kylar.fameStage to 0>> <</if>> <!-- v0.3.9.0: update --> <<if $pregnancyspeechdisable is undefined>> <<set $pregnancyspeechdisable to "f">> <</if>> <<if $stray_happiness is undefined>> <<set $stray_happiness to 50>> <</if>> <!-- v0.3.9.2: Wardrobe teleport error fix --> <<if $clothes_choice isnot undefined and !["Clothing Shop", "Forest Shop", "School Library Shop", "Adult Shop Store"].includes($passage)>> <<unset $clothes_choice>> <</if>> <!-- v0.3.9.3: Robin pillory bug --> <<if $robinPillory and $robinPillory.danger gt 15>> <<unset $robinPillory>> <</if>> <!-- v0.3.9.3: Heterochromia disablable --> <<if $transformationParts.cat.heterochromia is undefined>> <<if $cat gte 7>> <<set $transformationParts.cat.heterochromia to "default">> <<else>> <<set $transformationParts.cat.heterochromia to "disabled">> <</if>> <</if>> <!-- v0.3.9.3: customColors 'value' property added --> <<if $objectVersion.customColors lt 5 or $objectVersion.customColors is undefined>> <<if $customColors.value is undefined>> <<set $customColors.value to {primary:100, secondary:100}>> <</if>> <<set $objectVersion.customColors to 5>> <</if>> <!-- v0.3.9.3: $retrieveShopCustomColor added // used for shop colour sliders --> <<if $retrieveShopCustomColor is undefined or $retrieveShopCustomColor isnot {}>> <<set $retrieveShopCustomColor to {}>> <</if>> <<if !$objectVersion.transformations>> <<set $_demon to $transformationParts.demon>> <<set $_tfConverter to { blue: { type: 'default', colour: { h: 240, s: 100, l: 50 } }, lime: { type: 'default', colour: { h: 90, s: 100, l: 50 } }, red: { type: 'default', colour: { h: 0, s: 100, l: 50 } }, yellow: { type: 'default', colour: { h: 55, s: 100, l: 50 } }, pink: { type: 'succubus', colour: { h: 320, s: 100, l: 50 } } }>> <<set $_demonHorn to $_tfConverter[$transformationParts.demon.horns]>> <<if typeof $_demonHorn === 'object'>> <<set $_demon.horns to $_demonHorn.type>> <<set $_demon.horns_colour to $_demonHorn.colour>> <</if>> <<set $_demonWings to $_tfConverter[$transformationParts.demon.wings]>> <<if typeof $_demonWings === 'object'>> <<set $_demon.wings to $_demonWings.type>> <<set $_demon.wings_colour to $_demonWings.colour>> <</if>> <<set $_demonTail to $_tfConverter[$transformationParts.demon.tail]>> <<if typeof $_demonTail === 'object'>> <<set $_demon.tail to $_demonTail.type>> <<set $_demon.tail_colour to $_demonTail.colour>> <</if>> <<set $objectVersion.transformations to 0>> <</if>> <!-- v0.3.10.0 update --> <<if $leftarmbruise is undefined>> <<set $leftarmbruise to 0>> <<set $rightarmbruise to 0>> <</if>> <<if $urinestat is "undefined">> <<set $urinestat to 0>> <</if>> <<if $hypnosis_traits is undefined>> <<set $hypnosis_traits to {}>> <</if>> <!-- v0.3.10.0 farm wage fix --> <<if $farm and $farm.wage gte 1500>> <<set $farm.wage to $farm.wage / 100>> <</if>> <!-- v0.3.10.1: Kylar dominance --> <<if C.npc.Kylar.dom gte 1 and ($bus isnot "kylarmanor" or $syndromekylar is 1)>> <<npcincr Kylar dom -100>> <</if>> <!-- v0.3.10.3: fix for Kylar being initialized weirdly in combat after a prior bug set kylar's NPCName data weirdly --> <<if _version lte 31003>> <<set _kylar to C.npc.Kylar>> <<if _kylar.penis isnot "none">> <<set _kylar.penis to "clothed">> <</if>> <<if _kylar.vagina isnot "none">> <<set _kylar.vagina to "clothed">> <</if>> <<run delete _kylar.lefthand>> <<run delete _kylar.righthand>> <</if>> <!-- v0.3.10.4: New character lighting variables --> <<if $imgLighten != undefined>> <<set $lightSpotlight to 0.2>> <<set $lightGradient to 0>> <<set $lightGlow to 0>> <<set $lightFlat to 0>> <<set $lightCombat to 0.2>> <<set $lightTFColor to 0.2>> <<if $imgLighten == "imgLighten">> <<set $lightFlat to 0.5>> <<elseif $imgLighten == "imgLighten2">> <<set $lightFlat to 1>> <</if>> <<unset $imgLighten>> <</if>> <<if $estatePersistent and !$estatePersistent.markedCards>> <<set $estatePersistent.markedCards = new Set()>> <<set $estatePersistent.newDeckTimer = 3>> <</if>> <!-- v0.3.10: blackjack update --> <<initEstatePersistent>> <!-- v0.3.10.5: Kylar scene viewer scenes --> <<if C.npc.Kylar.state is "prison">> <<set $kylarSeen.pushUnique("basement")>> <</if>> <!-- v0.3.10.5: Hypnotic flaunting --> <<if $uncomfortable.hypnosis is undefined>> <<set $uncomfortable.hypnosis to true>> <</if>> <!-- v0.3.10.5: nectar bodyliquid --> <<if $player.bodyliquid.neck.nectar is undefined>> <<for _bodypart range setup.bodyliquid.bodyparts>> <<set $player.bodyliquid[_bodypart].nectar to 0>> <</for>> <</if>> <<unset $goobodycount, $semenbodycount, $liquidbodycount>> <!-- v0.3.10.5/0.3.11.0: Overall school performance fix --> <<if _version lte 31100>> <<run ["science", "maths", "english", "history"].forEach( skill => { V[skill] = [0,100,200,400,700,1000].select(V[skill + "trait"] + 1); })>> <<set $school to $science + $english + $maths + $history>> <</if>> <!-- v0.3.11.0: Dancing Fixes --> <<if _version lte 31100 and $dancing is 1>> <<if $dance_place is undefined>> <<set $dance_place to 1>> <</if>> <<set $dance_place -= 1>> <</if>> <!-- v0.3.11.0: Combat images --> <<if $combatimages is undefined>> <<set $combatimages to $images>> <</if>> <!-- v0.3.10.0/v0.3.10.1/0.3.11.0 NaN variables fix --> <<if _version lte 31100>> /*Check to see if these variables are NaN. If they are, reset them to 0*/ <<run ["stress", "drugged", "drunk", "hallucinogen", "milk_amount", "orgasmcount", "urinestat", "traumagain", "stressgain", "traumasaved", "stresssaved", "enemyanger", "enemytrust", "turnCount"].forEach( v => V[v] ? true : V[v] = 0)>> <</if>> <!-- v0.3.11.4 --> <<if $outfitTmp is undefined>> <<set $outfitTmp to {}>> <</if>> <!-- v0.3.11.4 - Remove $crimemax --> <<if $crimemax isnot undefined>> <<unset $crimemax>> <</if>> <!-- v0.3.11.4 options rework --> <<if $options is undefined>> <<set $options to { neverNudeMenus: $neverNudeMenus !== undefined ? $neverNudeMenus : false, autosaveDisabled: $autosaveDisabled !== undefined ? $autosaveDisabled : false, showCaptionText: $showCaptionText !== undefined ? $showCaptionText : true, sidebarRenderer: $sidebarRenderer !== undefined ? $sidebarRenderer : "canvas", sidebarStats: $sidebarStats && ["disabled", "limited", "all"].includes($sidebarStats) ? $sidebarStats : "disabled", sidebarTime: $sidebarTime && ["disabled", "top", "bottom"].includes($sidebarTime) ? $sidebarTime : "disabled", combatControls: $combatControls !== undefined ? $combatControls : "radio", targetYourself: $targetYourself !== undefined ? $targetYourself : false, scrollRemember: $scroll_remember !== undefined ? $scroll_remember : false, mapMovement: $map.movement !== undefined ? $map.movement : true, mapLegacy: $map.legacy !== undefined ? $map.legacy : false, mapMarkers: $map.markers !== undefined ? $map.markers : false, mapTop: $map.top !== undefined ? $map.top : false, images: $images !== undefined && StartConfig.enableImages !== false ? $images : 0, combatImages: $combatimages !== undefined && StartConfig.enableImages !== false ? $combatimages : 0, bodywritingImages: $bodywritingImages !== undefined ? $bodywritingImages : true, silhouetteEnabled: $silhouettedisable !== undefined ? $silhouettedisable === "f" : true, sidebarAnimations: $sidebarAnimations !== undefined ? $sidebarAnimations : true, blinkingEnabled: $blinkingdisable !== undefined ? $blinkingdisable === "f" : true, combatAnimations: $combatAnimations !== undefined ? $combatAnimations : true, halfClosedEnabled: $halfcloseddisable !== undefined ? $halfcloseddisable === "f" : true, characterLightEnabled: true, lightSpotlight: $lightSpotlight !== undefined ? $lightSpotlight : 0.2, lightGradient: $lightGradient !== undefined ? $lightGradient : 0.1, lightGlow: $lightGlow !== undefined ? $lightGlow : 0.1, lightFlat: $lightFlat !== undefined ? $lightFlat : 0, lightCombat: $lightCombat !== undefined ? $lightCombat : 0.2, lightTFColor: $lightTFColor !== undefined ? $lightTFColor : 0.2, maxStates: $maxStates !== undefined ? $maxStates : 5, historyControls: false, numpad: $numpad !== undefined ? $numpad : false, useNarrowMarket: $useNarrowMarket !== undefined ? $useNarrowMarket : false, skipStatisticsConfirmation: $skipStatisticsConfirmation !== undefined ? $skipStatisticsConfirmation : false, showDebugRenderer: $showDebugRenderer !== undefined ? $showDebugRenderer : !!StartConfig.debug, };>> <</if>> <!-- v0.3.11.4 creampie.npc.penis and tentacle fix --> <!-- IMPORTANT NOTE: please REMOVE this section if these stats come back into use --> <<if _version lte 31104>> <<run delete $sexStats.creampie.npc.penis>> <<run delete $sexStats.creampie.npc.tentacle>> <!-- Fixing most named npcs missing all of their virginities --> <!-- Resetting all virginities to defaults, keeping virginities already taken by player --> <<if C.npc.Jordan.virginity.penile is false>> <<for $_i to 0; $_i lt $NPCNameList.length; $_i++>> <<set $_takenVirginities to []>> <<for $_virginity, $_status range $NPCName[$_i].virginity>> <<if $_status is "player">> <<set $_takenVirginities.push($_virginity)>> <</if>> <</for>> <<if $NPCNameList[$_i] is "Sydney">> <<set $NPCName[$_i].virginity to {"anal": true, "oral": true, "penile": true, "vaginal": true, "handholding": true, "temple": true, "kiss": true}>> <<else>> <<initNNPCVirginity $_i>> <</if>> <<set $_takenVirginities.forEach(taken => $NPCName[$_i].virginity[taken] = "player")>> <</for>> <</if>> <!-- Fix for saves where people were able to change wraith's gender --> <<if $per_npc.wraith and $per_npc.wraith.pronoun isnot "i">> <<set $per_npc.wraith.pronoun to "i">> <<generatePronouns $per_npc.wraith>> <</if>> <</if>> <!-- v0.3.11.4 $tirednessmax change to C.tiredness.max --> <<if $tirednessmax>> <<unset $tirednessmax>> <</if>> <!-- v0.3.11.4 - Add $makeup.mascara_running --> <<if $makeup.mascara_running is undefined>> <<set $makeup.mascara_running = 0>> <</if>> <!-- v0.3.11.4 - Remove defunct vars --> <<if $npcdescription isnot undefined>> <<unset $npcdescription>> <</if>> <<if $currentOverlay isnot undefined>> <<unset $currentOverlay>> <</if>> <!-- v0.3.11.4 New pepper spray display --> <<if $options.pepperSprayDisplay is undefined>> <<set $options.pepperSprayDisplay to "sprays">> <</if>> <<prison_feat_check>> <!-- v0.3.12.1: Changing room refactor --> <<if $bus is "girls" or $bus is "boys">> <<set $changingRoomGender to $bus>> <</if>> <!-- v.0.3.12.1 Fix classroom attendance vars --> <<if _version lte 31201>> <<set $scienceattended to $scienceattended || 0>> <<set $mathsattended to $mathsattended || 0>> <<set $englishattended to $englishattended || 0>> <<set $historyattended to $historyattended || 0>> <<set $swimmingattended to $swimmingattended || 0>> <</if>> <!-- v0.3.12.3 Fix heterochromia --> <<if V.custom_eyecolours.findIndex(i => i.variable === "cat_tf_stage_-1_left") !== -1>> <!-- if there's objects with a bugged variable --> <<script>> /* re-create custom eyecolours without broken variables */ const repairedEyeColours = []; V.custom_eyecolours.forEach(c => c.variable.startsWith("cat_tf") || repairedEyeColours.push(c)); V.custom_eyecolours = repairedEyeColours; /* regenerate cat eye stages from "natural" eye colour (selected at game start) while preserving the current colours */ const lEC = V.leftEyeColour; const rEC = V.rightEyeColour; V.leftEyeColour = V.eyeselect; V.rightEyeColour = V.eyeselect; determineCatEyeStages(); V.leftEyeColour = lEC; V.rightEyeColour = rEC; <</script>> <</if>> <<if $parasitepregdisable is undefined>> <<set $parasitepregdisable to $analpregdisable>> <<unset $analpregdisable>> <</if>> <!-- v0.3.12.4 --> <<if $options.closeButtonMobile is undefined>> <<set $options.closeButtonMobile to false>> <</if>> <!-- v0.3.12.4: Wraith Compound scene/canvasmodel override --> <<if $modeloptionsOverride is undefined>> <<set $modeloptionsOverride to {}>> <</if>> <!-- v0.3.12.4: pubfame --> <<if $pub_task_stat is undefined>> <<set $pub_task_stat to 0>> <</if>> <!-- v0.3.12.4: semen swallowing framework --> <<if $semenswallowedstat is undefined>> <<set $semenswallowedstat to 0>> <<set $animalsemenswallowedstat to 0>> <</if>> <<if $options.passageCount is undefined>> <<set $options.passageCount to "disabled">> <<set $options.playtime to false>> <</if>> <!-- v0.3.12.4 Sensitivity overhaul changes --> <<if $mouthsensitivity is undefined>> <!-- Initialise new sensitivities --> <<set $mouthsensitivity to 1>> <<set $bottomsensitivity to 1>> <!-- Map old sensitivity values (1-6) to new range (1-4), with step 0.25 --> <<set $breastsensitivity to Math.floor(4 + ($breastsensitivity - 1) * 12 / 5) / 4>> <<set $genitalsensitivity to Math.floor(4 + ($genitalsensitivity - 1) * 12 / 5) / 4>> <</if>> <!-- v0.3.12.4 Wraith update --> <<if !$wraith>> <<set $wraith to {"state": "", "init": 0}>> <<elseif $wraith.init is undefined>> <<set $wraith.init to 1>> <<set $wraith.days to 0>> <</if>> <<if $per_npc.wraith>> <<if $wraithAnger>> <<set $wraithAngerCooldown to $wraithAnger>> <<unset $wraithAnger>> <</if>> <<initnpc "Ivory Wraith">> <<run ["pronouns", "pronoun", "gender", "pregnancyAvoidance", "vagina", "penis", "clothes", "chest", "skincolour", "breastsize", "breastsdesc", "breastdesc", "penisdesc", "penissize", "trust", "type"].forEach(s => C.npc["Ivory Wraith"][s] = clone($per_npc.wraith[s]))>> <<set C.npc["Ivory Wraith"].lust to 0>> <<if $wraith.state is "haunt">> <<set C.npc["Ivory Wraith"].lust to 20>> <<if ($wraithPrison and $wraithPrison.vision) or Object.keys(V.feats.currentSave).includes("Schism")>> <<set $wraithPrison.vision to true>> <<set C.npc["Ivory Wraith"].lust -= 5>> <</if>> <</if>> <<if $wraithAngerCooldown>> <<set C.npc["Ivory Wraith"].lust += 3>> <</if>> <<set C.npc["Ivory Wraith"].lust = Math.clamp(C.npc["Ivory Wraith"].lust, 0, 20)>> <<clearNPC "wraith">> <<if $NPC_names_m.includes("Ivory Wraith") or $NPC_names_f.includes("Ivory Wraith")>> <<run delete $NPC_names_m["Ivory Wraith"]>> <<run delete $NPC_names_f["Ivory Wraith"]>> <</if>> <<if $wraith.state and !$wraith.days>> <<set $wraith.days to ($days - 60)>> <</if>> <</if>> <!-- To update the player and named npc pregnancy objects from numbers to a single array --> <<if $sexStats.vagina.pregnancy.fetus is undefined or $sexStats.anus.pregnancy.fetus is undefined or $sexStats.anus.pregnancy.type is undefined or $sexStats.anus.pregnancy.nonCycleRng is undefined or !Array.isArray($sexStats.vagina.sperm) or !$parentList>> <<physicalAdjustmentsInit>> <</if>> <<if !$pregnancytype>> <<set $cycledisable to "f">> <<set $pregnancytype to "realistic">> <</if>> <<if $adultshopunlocked and $adultshopcontribution>> <<earnFeat "Opened Pandoras Box">> <<if $adultshopcontribution gte 11>> <<earnFeat "Opened Pandoras Cocks">> <</if>> <</if>> <<if $baseVaginalPregnancyChance>> <<set $basePlayerPregnancyChance to $baseVaginalPregnancyChance>> <<unset $baseVaginalPregnancyChance>> <</if>> <<if $insecurity_pregnancy is undefined>> <<set $insecurity_pregnancy to 0>> <<set $acceptance_pregnancy to 0>> <</if>> /* For saves where it was set to undefined */ <<if $sciencemissed is undefined>> <<set $sciencemissed to 0>> <<set $mathsmissed to 0>> <<set $englishmissed to 0>> <<set $historymissed to 0>> <<set $swimmingmissed to 0>> <</if>> /* To correct some bad math that let it get into the negatives */ <<if Math.min($sciencemissed,$mathsmissed,$englishmissed,$historymissed,$swimmingmissed) lt 0>> <<set $_min to Math.min($sciencemissed,$mathsmissed,$englishmissed,$historymissed,$swimmingmissed)>> <<set $sciencemissed -= $_min>> <<set $mathsmissed -= $_min>> <<set $englishmissed -= $_min>> <<set $historymissed -= $_min>> <<set $swimmingmissed -= $_min>> <</if>> /* Attempt to sync up individual lessons missed with $lessonmissed */ <<set $_totalMissed to $sciencemissed + $mathsmissed + $englishmissed + $historymissed + $swimmingmissed>> <<if $_totalMissed gt $lessonmissed>> <<set $lessonmissed to $_totalMissed>> <<elseif $_totalMissed lt $lessonmissed>> <<set $_totalToAdd to $lessonmissed - $_totalMissed>> <<set $_toAdd to Math.ceil($_totalToAdd / 5)>> <<if $_totalToAdd gt 0>> <<set $sciencemissed += $_toAdd lt $_totalToAdd ? $_toAdd : $_totalToAdd>> <<set $_totalToAdd -= $_toAdd lt $_totalToAdd ? $_toAdd : $_totalToAdd>> <</if>> <<if $_totalToAdd gt 0>> <<set $mathsmissed += $_toAdd lt $_totalToAdd ? $_toAdd : $_totalToAdd>> <<set $_totalToAdd -= $_toAdd lt $_totalToAdd ? $_toAdd : $_totalToAdd>> <</if>> <<if $_totalToAdd gt 0>> <<set $englishmissed += $_toAdd lt $_totalToAdd ? $_toAdd : $_totalToAdd>> <<set $_totalToAdd -= $_toAdd lt $_totalToAdd ? $_toAdd : $_totalToAdd>> <</if>> <<if $_totalToAdd gt 0>> <<set $historymissed += $_toAdd lt $_totalToAdd ? $_toAdd : $_totalToAdd>> <<set $_totalToAdd -= $_toAdd lt $_totalToAdd ? $_toAdd : $_totalToAdd>> <</if>> <<if $_totalToAdd gt 0>> <<set $swimmingmissed += $_totalToAdd>> <</if>> <</if>> <<if $wolfstate is "hunt" and $huntstate isnot "success">><<set $huntstate to "ongoing">><</if>> <</widget>> <<widget "backComp">> <!-- v0.3.12.4 $daily object --> <<run dailyConvert()>> <<if _version lte 30408>>/* DO NOT INCREMENT */ /* 0.3.4.8 is the last version that should need the old vvu */ /* for versions <= 0.3.4.8, run old version handler */ <<variablesVersionUpdate>> <</if>> <<if $saveVersions.last() isnot StartConfig.version>> <<set $saveVersions.push(StartConfig.version)>> <</if>> /* * * * * * * * * * * * * * * * * * * * * * * * new backwards compatibility code goes here */ /* Code that should not be moved into a check like above */ <<set $runWardrobeSanityChecker to true>> <<if $objectVersion.updateClothes lt 74 or $objectVersion.updateClothes is undefined>> <<updateClothes>> <<if $objectVersion.updateClothes lt 38>> <!-- V0.4.0.7 return items stuck in $store without proper .location --> <<run for (const slot in V.store) V.store[slot].forEach(i => { if (i.location === 0) i.location = "getBack" })>> <<storeon "getBack" "return">> <</if>> <<if $objectVersion.updateClothes lt 63>> <!--Should'nt need to re-run that often--> <<run clothesDataTrimmerLoop()>> <</if>> <!--If you have added any `colour_combat` or `accessory_colour_combat` to clothes that need their `colour` or `accessory_colour`, this will clear them. Remove `colour_combat` or `accessory_colour_combat` where this is the case, they are independant so `colour_combat` will only clear `colour`--> <!-- integrity_max was zero for a piece of clothing [Skimpy Leotard], this caused an infinity money bug at tailor, update people's clothing here --> <<if $objectVersion.updateClothes lt 56>> <<run fixIntegrityUpdater()>> <</if>> <!-- reset propEquipped --> <<if $objectVersion.updateClothes lt 62>> <<if $propEquipped is 1 and $worn.handheld.type !== "prop" and $worn.handheld.variable !== "featherduster">><<set $propEquipped to 0>><</if>> <</if>> <!-- 0.5.6.9 Rename Nurse Hat --> <<if $objectVersion.updateClothes lt 73>> <<if $gwylan?.request?.items?.length>> <<for _i to 0; _i lt $gwylan.request.items.length; _i++>> <<if $gwylan.request.items[_i].name is "pink nurse hat">> <<set $gwylan.request.items[_i].name to "nurse hat">> <</if>> <</for>> <</if>> <</if>> <!-- do NOT forget to bump this version in variables-start.twee, too --> <<set $objectVersion.updateClothes to 74>> <</if>> <<if !$specialClothesEffects?.pimp>> <<set $specialClothesEffects to { bimbo: { progress: 0, total: 0, message: 0 }, pimp: { progress: 0, total: 0, message: 0 }, }>> <</if>> <<if $objectVersion.specialClothes lt 20 or $objectVersion.specialClothes is undefined>> <!-- Old special clothing system conversion code, DO NOT INCREMENT --> <<if $objectVersion.specialClothes lt 20 and !Array.isArray($specialClothes)>> <!-- Save any unlocked clothes from old system --> <<set _oldSpecialClothesObject to {}>> <<run Object.keys($specialClothes).filter(oldClothes => $specialClothes[oldClothes] is "unlocked").forEach(item => _oldSpecialClothesObject[item] = "unlocked")>> <<set _oldSpecialClothesUnlocked to updateSpecialClothesNames(_oldSpecialClothesObject)>> <<specialClothesUpdate>> <<if _oldSpecialClothesUnlocked>> /* Forward previous unlocked items to new system. For items with requirements that could have become false in the meantime, grant true unlock as long as cheats aren't on. */ <<run $specialClothes.filter(newItem => _oldSpecialClothesUnlocked.includes(newItem.name)).forEach(item => { /* Cheat unlock */ item.unlocked = 1; /* Bypass unlocked (feat boost etc.) needs to check old cheat variable for compatibility reasons */ if (V.cheatdisable === "t" || V.settings && !V.settings?.cheatsEnabled) item.unlocked = 2; /*Requirement unlock */ if (["spirit mask", "rag top", "rag skirt", "holy stole"].includes(item.name) && (V.cheatdisable === "t" || V.settings && !V.settings?.cheatsEnabled)) item.unlocked = 3; })>> /* Holy stole condition is grace >= 100, could have become false in the meantime */ <<set $specialClothes.find(item => item.name === "long holy stole").unlocked to $specialClothes.find(item => item.name === "holy stole").unlocked>> /* Previous spirit mask condition was V.fox >= 6, could have become false in the meantime */ <<set $specialClothes.find(item => item.name === "shrine maiden robes").unlocked to $specialClothes.find(item => item.name === "spirit mask").unlocked>> <</if>> <<if $fedora_unlock>> <<unset $fedora_unlock>> <<set $specialClothesEvents.pushUnique("smuggling")>> <</if>> <!-- Conversion code end --> <<else>> <<specialClothesUpdate>> <</if>> <<specialClothesRefresh>> <<updateFeats>> <!-- DO increment this, and don't forget to do it in variables-start.twee, too --> <<set $objectVersion.specialClothes to 20>> <</if>> <<if $objectVersion.wardrobes lt 15 or $objectVersion.wardrobes is undefined>> <<wardrobesUpdate>> <<set $objectVersion.wardrobes to 15>> <</if>> <<if $objectVersion.museumAntiques lte 14 and $museumAntiques.antiques.antiquewhitescrystal isnot undefined>> <<run delete $museumAntiques.antiques.antiquewhitescrystal>> <</if>> <<if $objectVersion.museumAntiques lt 20 or $objectVersion.museumAntiques is undefined>> /*Moved undefined checks for new antiques to the widget below*/ <<updateMuseumAntiques>> <<set $objectVersion.museumAntiques to 20>> <</if>> <<if $objectVersion.sexToys lt 2 or $objectVersion.sexToys is undefined>> /* Removal of clothes_index from inventory items, as it should be referenced via setup */ <<run Object.values(V.player.inventory.sextoys).forEach(arr => arr.forEach(toy => delete toy.clothes_index) ) >> <<set $objectVersion.sexToys to 2>> <</if>> <<pregnancyVar>> <!-- Jimmy: Reset NPC slots if necessary Old versions prior to 3.4.* did not have empty slots properly set to baseNPC. --> <<if $npcListVersion lt 3>> <<npcList>> <</if>> <!-- Jimmy: Run updater for EventSystem. Only runs if behind on schema and if $event exists. --> <<run EventSystem.update()>> <!-- v0.3.6.2: Updating NPC clothing when needed --> <<if $objectVersion.npcClothes lt 1 or $objectVersion.npcClothes is undefined>> <<set $objectVersion.npcClothes to 1>> <<if $halloween is 1 and $robinmissing is 0 and $hour gte 16 and $hour lt 19 and $monthday is 31 and $halloween_robin_costume and C.npc.Robin.init is 1>> <<if !C.npc.Robin.outfits>> <<initNNPCClothes "Robin">> <</if>> <<if !C.npc.Robin.outfits.includes($halloween_robin_costume)>> <<addNNPCOutfit "Robin" $halloween_robin_costume>> <</if>> <</if>> <<if C.npc.Kylar.state is "prison">> <<if !C.npc.Kylar.outfits>> <<initNNPCClothes "Kylar">> <</if>> <<if !C.npc.Kylar.outfits.includes("prisonJumpsuit")>> <<addNNPCOutfit "Kylar" "prisonJumpsuit">> <</if>> <</if>> <!-- Bestow clothing to any active NPCs--> <<if $NPCList isnot undefined and !$NPCList[0].clothes>> <<for _i = 0; _i < $NPCList.length; _i++>> <<if $NPCList[_i].type>> <<if $NPCList[_i].type is "human">> <<npcClothesType $NPCList[_i] "default">> <<else>> <<npcClothesType $NPCList[_i] "naked">> <</if>> <</if>> <</for>> <</if>> <<for $_key, $_npc range $per_npc>> <<if $_npc>> <!-- Bestow clothing to persistent NPCs--> <<if !$_npc.clothes>> <<if ["anxious_guard", "methodical_guard", "relaxed_guard", "veteran_guard"].includes($_key)>> <<npcClothesType $per_npc[$_key] "security">> <<elseif ["scarred_inmate", "tattooed_inmate"].includes($_key)>> <<npcClothesType $per_npc[$_key] "prison">> <<elseif ["tower_creature"].includes($_key)>> <<npcClothesType $per_npc[$_key] "naked">> <<elseif ["farm_tower_guard"].includes($_key)>> <<npcClothesName $per_npc[$_key] "wildsFlannel">> <<elseif ["prison_intro_officer"].includes($_key)>> <<npcClothesType $per_npc[$_key] "police">> <<elseif ["pinch"].includes($_key)>> <<npcClothesType $per_npc[$_key] "robinGiftChristmas">> <<elseif ["wraith"].includes($_key)>> <<npcClothesType $per_npc[$_key] "Wraith">> <<else>> <<npcClothesType $per_npc[$_key] "default">> <</if>> <</if>> <</if>> <</for>> <</if>> <!-- v0.3.8.2: fix for cursed clothing being present in the player's wardrobes --> <<if Object.keys($wardrobe).some(slot => Object.values($wardrobe[slot]).some(clothing => clothing.cursed))>> <<run Object.keys($wardrobe).forEach(slot => { if (slot is "space") return; $wardrobe[slot] = $wardrobe[slot].filter(clothing => clothing.cursed is 0); })>> <<run Object.keys($wardrobes).forEach(location =>{ if (location is "shopReturn" || location is "wardrobe") return; Object.keys($wardrobes[location]).forEach(slot => { if (["isolated", "name", "shopSend", "space", "transfer", "unlocked"].includes(slot)) return; $wardrobes[location][slot] = $wardrobes[location][slot].filter(clothing => clothing.cursed === 0); }) })>> <</if>> <<if _version lt 40000>>/* DO NOT INCREMENT */ /* 0.4.0.0 is the last version that should need the old vvu */ /* for versions <= 0.4.0.0, run old version handler */ <<variablesVersionUpdate2>> <</if>> <!-- Fix for hair style renames --> <<if !$objectVersion.hairFix lt 1 or $objectVersion.hairFix is undefined>> <<set _hairUpdate to { "left fishtail braid": "left fishtail", "right fishtail braid": "right fishtail", "side thicktail": "thick pigtails", "side tail left": "sidetail left", "side tail right": "sidetail right", "side thicktail": "thick sidetail", }>> <<set _fringeUpdate to { "blunt sidelocks": "blunt locks", "french bob": "tied back", }>> <<if _hairUpdate[$hairtype]>><<set $hairtype to _hairUpdate[$hairtype]>><</if>> <<if _fringeUpdate[$fringetype]>><<set $fringetype to _fringeUpdate[$fringetype]>><</if>> <<if $savedHairStyles>> <<run Object.values($savedHairStyles).forEach(style => { if (T.hairUpdate[style.hairtype]) style.hairtype = T.hairUpdate[style.hairtype]; if (T.fringeUpdate[style.fringetype]) style.fringetype = T.fringeUpdate[style.fringetype]; })>> <</if>> <<set $objectVersion.hairFix to 1>> <</if>> <!-- Fix for child toy --> <<if !$objectVersion.toyFix lt 1 or $objectVersion.toyFix is undefined>> <<set _nameChanges to { "Mrs Teddy": "Mrs. Teddy", "Mr Teddy": "Mr. Teddy", "See through dummy": "Clear dummy", "Baby Doll": "Baby doll", "Green race toy car": "Green toy racecar", "Blue race toy car": "Blue toy racecar", "Green Robot": "Green robot", "Red Robot": "Red robot", "Chew Bone": "Chew bone", "Squeaky Sheep": "Squeaky sheep", "Squeaky Chicken": "Squeaky chicken", "Chew Ball": "Chew ball" }>> <<set _nameLowerChanges to { "Mrs Teddy": "Mrs. Teddy", "Mr Teddy": "Mr. Teddy", "See through dummy": "clear dummy", "Green race toy car": "green toy racecar", "Blue race toy car": "blue toy racecar", }>> <<set _colourChanges to { "See through dummy": "light-grey", "White dummy": "light-grey", "Teddy bear": "tan", "Limousine toy car": "grey", "Squeaky Sheep": "light-grey", "Chew Ball": "light-green" }>> <<set _allToys = []>> <<if V.storedChildrenToys and Object.keys(V.storedChildrenToys).length>> <<for _nursery range Object.keys(V.storedChildrenToys)>> <<set _allToys.push(...V.storedChildrenToys[_nursery])>> <</for>> <</if>> <<if V.player.inventory.childrenToys?.length>> <<set _allToys.push(...V.player.inventory.childrenToys)>> <</if>> <<if V.selectedToy?.options>> <<set _allToys.push(...V.selectedToy.options)>> <</if>> <<for _toy range _allToys>> <<if _colourChanges[_toy.name]>> <<set _toy.colour to _colourChanges[_toy.name]>> <</if>> <<if _nameChanges[_toy.name]>> <<set _toy.name_lower to _nameLowerChanges[_toy.name]>> <<set _toy.name to _nameChanges[_toy.name]>> <</if>> <</for>> <<set $objectVersion.toyFix to 1>> <</if>> /* End of Code that should not be moved */ <!-- version 0.5.6.0 START Gameplay Options Variable Refactor START --> <<script>> if (V.settings === undefined) { const oldVariableMap = { alluremod: { key: "allureModifier", invert: false }, analdisable: { key: "analEnabled", invert: true }, analdoubledisable: { key: "analDoubleEnabled", invert: true }, analingusdisablegiving: { key: "analingusGivingEnabled", invert: true }, analingusdisablereceiving: { key: "analingusReceivingEnabled", invert: true }, asphyxiaLvl: { key: "asphyxiaLevel", invert: false }, baseNpcPregnancyChance: { key: "baseNpcPregnancyChance", invert: false }, basePlayerPregnancyChance: { key: "basePlayerPregnancyChance", invert: false }, beastmalechance: { key: "beastMaleChance", invert: false }, beastMaleChanceFemale: { key: "beastMaleChanceFemale", invert: false }, beastMaleChanceMale: { key: "beastMaleChanceMale", invert: false }, beastMaleChanceSplit: { key: "beastMaleChanceSplit", invert: false }, beedisable: { key: "beesEnabled", invert: true }, bestialitydisable: { key: "bestialityEnabled", invert: true }, blackchance: { key: "darkSkinChance", invert: false }, bodywritingLvl: { key: "bodyWritingLevel", invert: false }, breast_mod: { key: "breastModifier", invert: false }, breastfeedingdisable: { key: "breastFeedingEnabled", invert: true }, cbchance: { key: "maleNPCVaginaChance", invert: false }, cheatdisabletoggle: { key: "cheatsEnabledToggle", invert: true }, checkstyle: { key: "skillCheckStyle", invert: false }, clothesPrice: { key: "clothingCostModifier", invert: false }, clothesPriceLewd: { key: "lewdClothingCostModifier", invert: false }, clothesPriceSchool: { key: "schoolClothingCostModifier", invert: false }, clothesPriceUnderwear: { key: "underwearCostModifier", invert: false }, condomChance: { key: "condomChance", invert: false }, condomLvl: { key: "condomLevel", invert: false }, condomUseChanceCon: { key: "condomUseChanceConsensual", invert: false }, condomUseChanceRape: { key: "condomUseChanceRape", invert: false }, cycledisable: { key: "fertilityCycleEnabled", invert: true }, dgchance: { key: "femaleNPCPenisChance", invert: false }, facesitdisable: { key: "facesitEnabled", invert: true }, footdisable: { key: "footFetishEnabled", invert: true }, forcedcrossdressingdisable: { key: "forcedCrossdressingEnabled", invert: true }, furniturePriceFactor: { key: "furnitureCostModifier", invert: false }, horsedisable: { key: "horsesEnabled", invert: true }, humanPregnancyMonths: { key: "humanPregnancyMonths", invert: false }, hypnosisdisable: { key: "hypnosisEnabled", invert: true }, incompletePregnancyDisable: { key: "incompletePregnancyEnabled", invert: true }, lurkerdisable: { key: "lurkersEnabled", invert: true }, malechance: { key: "maleChance", invert: false }, maleChanceFemale: { key: "maleChanceFemale", invert: false }, maleChanceMale: { key: "maleChanceMale", invert: false }, maleChanceSplit: { key: "maleChanceSplit", invert: false }, malevictimchance: { key: "maleVictimChance", invert: false }, monsterchance: { key: "monsterChance", invert: false }, monsterhallucinations: { key: "monsterHallucinationsOnly", invert: false }, multipleWardrobes: { key: "multipleWardrobes", invert: false }, npcPregnancyDisable: { key: "npcPregnancyEnabled", invert: true }, npcVirginityChance: { key: "npcVirginChanceStudent", invert: false }, npcVirginityChanceAdult: { key: "npcVirginChanceAdult", invert: false }, NudeGenderDC: { key: "nudeGenderPerception", invert: false }, parasitedisable: { key: "parasitesEnabled", invert: true }, parasitepregdisable: { key: "parasitePregnancyEnabled", invert: true }, pbdisable: { key: "pubicHairEnabled", invert: true }, penis_mod: { key: "penisModifier", invert: false }, plantdisable: { key: "plantsEnabled", invert: true }, playerPregnancyBeastDisable: { key: "playerPregnancyBeastEnabled", invert: true }, playerPregnancyEggLayingDisable: { key: "playerPregnancyEggLayingEnabled", invert: true }, playerPregnancyHumanDisable: { key: "playerPregnancyHumanEnabled", invert: true }, pregnancyspeechdisable: { key: "pregnancySpeechEnabled", invert: true }, pregnancytype: { key: "pregnancyType", invert: false }, rentmod: { key: "rentCostModifier", invert: false }, ruinedorgasmdisable: { key: "ruinedOrgasmEnabled", invert: true }, slimedisable: { key: "slimesEnabled", invert: true }, slugdisable: { key: "slugsEnabled", invert: true }, spiderdisable: { key: "spidersEnabled", invert: true }, statdisable: { key: "blindStatsEnabled", invert: false }, straponchance: { key: "straponChance", invert: false }, swarmdisable: { key: "swarmsEnabled", invert: true }, tending_yield_factor: { key: "tendingYieldModifier", invert: false }, tentacledisable: { key: "tentaclesEnabled", invert: true }, toydildodisable: { key: "toyDildoEnabled", invert: true }, toymultiplepenetration: { key: "toyMultiplePenetrationEnabled", invert: true }, toywhipdisable: { key: "toyWhipEnabled", invert: true }, transformdisable: { key: "transformAnimalEnabled", invert: true }, transformdisabledivine: { key: "transformDivineEnabled", invert: true }, vaginaldoubledisable: { key: "vaginalDoubleEnabled", invert: true }, voredisable: { key: "voreEnabled", invert: true }, waspdisable: { key: "waspsEnabled", invert: true }, watersportsdisable: { key: "watersportsEnabled", invert: true }, wolfPregnancyWeeks: { key: "wolfPregnancyWeeks", invert: false }, }; V.settings ??= {}; V.cheatsEnabled = V.cheatdisable === "f" ? true : false; if (V.cheatdisable !== undefined) { delete V.cheatdisable; } for (const legacyKey in oldVariableMap) { if (!(legacyKey in V)) continue; const { key, invert } = oldVariableMap[legacyKey]; const legacyValue = V[legacyKey]; V.settings[key] = legacyValue === "f" ? invert : legacyValue === "t" ? !invert : legacyValue; delete V[legacyKey]; }; } <</script>> <!-- version 0.5.6.0 END Gameplay Options Variable Refactor END --> <!-- DO NOT MOVE ABOVE "Gameplay Options Variable Refactor" --> <<updateNewNamedNpcs>> <<npcPregnancyUpdater>> <!-- v0.3.6.2: cow update - ToDo: Move to variables-static --> <<set $BeastList to ["dog","cat","pig","wolf","dolphin","lizard","bear","boar","creature","horse","fox","hawk","cow","spider", "snake"]>> <!-- Will navigate to V.makeup.eyelenses and attempt to turn that into the proper object this time. Needs configing if it can be moved to `variablesVersionUpdate2`--> <<run restructureEyeColourVariable()>> <!-- v0.3.8.6: furniture update --> <<run Furniture.update(true)>> <!-- v0.3.8.6: Sydney Rite of Promise protects PC's angel TF --> <!-- !! Readjust after marriage is added !! --> <<if $templePromised isnot "" and $player.virginity.vaginal is true and $player.virginity.penile is true>> <<set $virginityProtected to true>> <</if>> <!-- <= v0.3.8.6: fame object --> <<if !$objectVersion.fame>> <<if typeof $fame isnot "object">> <<set $fame to { exhibitionism: $fameexhibitionism, prostitution: $fameprostitution, bestiality: $famebestiality, sex: $famesex, rape: $famerape, good: $famegood, business: $famebusiness, scrap: $famescrap, pimp: $famepimp, social: $famesocial, model: $famemodel, pregnancy: $famepregnancy }>> <<if $statFreeze and !$frozenValues>> <!-- For scenes like Janet and Raul, Pinch, or the Schism --> <<set $real_fame to { exhibitionism: $real_fameexhibitionism, prostitution: $fameprostitution, bestiality: $famebestiality, sex: $real_famesex, rape: $real_famerape, good: $famegood, business: $famebusiness, scrap: $real_famescrap, pimp: $famepimp, social: $famesocial, model: $famemodel, pregnancy: $famepregnancy }>> <</if>> <<unset $fameexhibitionism>> <<unset $fameprostitution>> <<unset $famebestiality>> <<unset $famesex>> <<unset $famerape>> <<unset $famegood>> <<unset $famebusiness>> <<unset $famescrap>> <<unset $famepimp>> <<unset $famesocial>> <<unset $famemodel>> <<unset $famepregnancy>> <<unset $real_fameexhibitionism>> <<unset $real_famesex>> <<unset $real_famerape>> <<unset $real_famescrap>> <<if $park_fame is undefined>> <<set $park_fame to $famepark>> <<unset $famepark>> <</if>> <</if>> <<set $objectVersion.fame to 1>> <</if>> <!-- This patch makes sure certain properties exist in $fame. Defaults to 0. --> <<if $objectVersion.fame is 1>> <<set $_keys to [ 'exhibitionism', 'prostitution', 'bestiality', 'sex', 'rape', 'good', 'business', 'scrap', 'pimp', 'social', 'model', 'pregnancy' ]>> <<for $_key range $_keys>> <<if $fame[$_key] eq null>> <<set $fame[$_key] to 0>> <</if>> <</for>> <<set $objectVersion.fame to 2>> <</if>> <!-- This patch checks existing properties of $fame for non-numeric values and assigns them a default of 0. --> <<if $objectVersion.fame is 2>> <<for $_key, $_val range $fame>> <<if typeof $_val isnot 'number' or $_val is NaN>> <<set $fame[$_key] to 0>> <</if>> <</for>> <<set $objectVersion.fame to 3>> <</if>> <!-- <= v0.3.8.6: Modeling rework --> <<if typeof $photo is 'object'>> <<script>> const photo = V.photo; const versions = V.objectVersion; if (versions.photo === undefined) { versions.photo = 0; } switch (versions.photo) { case 0: if (typeof photo.fame_stage === 'number') { photo.audienceSize = Math.ceil(photo.fame_stage / 2); photo.timesWithThisAudienceSize = ((photo.fame_stage - 1) % 2) + 1; } else { photo.audienceSize = 1; photo.timesWithThisAudienceSize = 0; } delete photo.fame_stage; if (typeof photo.money !== 'number' || Number.isNaN(photo.money)) { photo.money = 450; } versions.photo = 1; } <</script>> <</if>> <!-- v0.3.13.0 Persistent NPCs stealing the Wraith's name --> <<if $NPC_names_m.includes("Ivory Wraith") or $NPC_names_f.includes("Ivory Wraith")>> <<set $NPC_names_m.delete("Ivory Wraith")>> <<set $NPC_names_f.delete("Ivory Wraith")>> <</if>> <<if Object.values($per_npc).some(npc => npc.name is "Ivory Wraith")>> <<for _i, _npc range $per_npc>> <<if $per_npc[_i].name is "Ivory Wraith">> <<set $per_npc[_i].name to ($per_npc[_i].pronoun is "m" ? $NPC_names_m.pluck() : $NPC_names_f.pluck())>> <</if>> <</for>> <</if>> <!-- v0.3.13.0 Fixed Landry forgetting about Mickey --> <<if $police_hack gte 4>> <<set $mickeyPub to 2>> <</if>> <!-- v0.3.13.3 Schism unset fix --> <<if $schism>> <<unset $schism>> <</if>> <!-- v0.3.13.5 --> <<if $zoom isnot undefined>> <<set $options.zoom to $zoom>> <<unset $zoom>> <</if>> <<if $options.zoom is undefined>> <<set $options.zoom to 100>> <</if>> <<if $numberify_enabled isnot undefined>> <<set $options.numberify_enabled to $numberify_enabled>> <<unset $numberify_enabled>> <</if>> <<if $options.numberify_enabled is undefined>> <<set $options.numberify_enabled to 1>> <</if>> <<if $timestyle isnot undefined>> <<set $options.timestyle to $timestyle>> <<unset $timestyle>> <</if>> <<if $options.timestyle is undefined>> <<set $options.timestyle to "military">> <</if>> <<if $oldclock isnot undefined>> <<unset $oldclock>> <</if>> <!-- v0.3.13.5 Impreg fame in fame object --> <<if $fame.impreg is undefined>> <<set $fame.impreg to 0>> <</if>> <!-- v0.3.13.5 Condom sidebar display --> <<if $options.condomsDisplay is undefined>> <<set $options.condomsDisplay to "standard">> <<set $options.traitOverlayFormat to "table">> <</if>> <!-- v0.3.13.5 Deprecated Code and Bodysize Fix --> <<if !$bodysize>> <<switch $physiquesize>> <<case 6000>><<set $bodysize to 0>> <<case 10000>><<set $bodysize to 1>> <<case 12000>><<set $bodysize to 2>> <<case 16000>><<set $bodysize to 3>> <<default>><<set $bodysize to 2>><<set $physiquesize to 12000>> <</switch>> <</if>> <!-- v0.3.13.5 undefined fringe colour --> <<if $hairfringecolour is undefined>> <<set $hairfringecolour to $haircolour>> <</if>> <!-- v0.3.13.5 Nightmares ruining angel TF --> <<if $activeNightmare and $real_transformationParts is undefined>> <<set $real_angel to $angel>> <<set $real_angelbuild to $angelbuild>> <<set $real_fallenangel to $fallenangel>> <<set $real_transformationParts to clone($transformationParts)>> <<set $real_purity to $purity>> <</if>> <!-- v0.3.13.5 Pregnancy Utilities --> <<if $storedNPCs is undefined>> <!-- Separated object for compressing NPCs --> <<set $storedNPCs to {}>> <!-- Timer for events at the nursery --> <<if $home_event_ward_timer is undefined>> <<set $home_event_ward_timer to 3>> <<set $home_event_ward_timer to 0>> <</if>> <!-- Default condom setting --> <<if $condomLvl is undefined>> <<set $condomLvl to 3>> <</if>> <!-- Condom object for when more condom types are implemented --> <<if $player.inventory and !$player.inventory.condoms>> <<set $player.inventory.condoms to {}>> <</if>> <!-- Clears unused values, establishes debug values --> <<if $condomchance>> <<set $condomChance to 60>> <<set $condomUseChanceRape to 33>> <<set $condomUseChanceCon to 83>> <<unset $condomchance>> <<unset $condomautochance>> <</if>> <!-- Old testing variable I forgot to clear --> <<unset $test>> <</if>> <!-- v0.3.13.5 Save compression --> <<if $compressSave is undefined>> <<set $compressSave to true>> <</if>> <!-- v0.3.13.5 Two-tone hair --> <<if $hairColourStyle is undefined>> <<set $hairColourStyle to "simple">> <<set $hairColourGradient to { style: "split", colours: ["red", "black"]}>> <</if>> <<if $hairFringeColourStyle is undefined>> <<set $hairFringeColourStyle to "simple">> <<set $hairFringeColourGradient to { style: "split", colours: ["red", "black"]}>> <</if>> <!-- v0.3.13.5 Whitney rescued state removal and pillory state addition --> <<if C.npc.Whitney.state is "rescued">> <<set $whitneyrescued to true>> <<set C.npc.Whitney.state to "active">> <</if>> <<if $pillory_tenant isnot undefined and ($pillory_tenant.special.name is "Whitney" and C.npc.Whitney.state isnot "pillory")>> <!-- Making "pillory" a state means that whitney's state shouldn't be anything but "pillory" when they're locked up --> <<set C.npc.Whitney.state to "pillory">> <</if>> <!-- v0.3.13.5 NPC Skin simplification --> <<if $whitechance>> <<unset $whitechance>> <<unset $whitechanceselector>> <<unset $blackchanceselector>> <<for $_i to 0; $_i lt $NPCNameList.length; $_i++>> <<if $NPCName[$_i].init is 1 and !$NPCName[$_i].skincolour>> <<if random(1, 100) lte $blackchance>> <<set $NPCName[$_i].skincolour to "black">> <<else>> <<set $NPCName[$_i].skincolour to "white">> <</if>> <</if>> <</for>> <<if C.npc["Ivory Wraith"].init is 1>> <<set C.npc["Ivory Wraith"].skincolour to "ghost">> <</if>> <<for $_s to 0; $_s lt $NPCList.length; $_s++>> <<if $NPCList[$_s].health and !$NPCList[$_s].skincolour>> <<if $NPCList[$_s].fullDescription is $npc[$_s]>> <<set $NPCList[$_s].skincolour to C.npc[$npc[$_s]].skincolour>> <<else>> <<if random(1, 100) lte $blackchance>> <<set $NPCList[$_s].skincolour to "black">> <<else>> <<set $NPCList[$_s].skincolour to "white">> <</if>> <</if>> <</if>> <</for>> <</if>> <!-- v0.3.13.5 disable old renderer settings --> <<if $options.sidebarRenderer is "both" or $options.sidebarRenderer is 'img'>> <<set $options.sidebarRenderer to 'canvas'>> <</if>> <!-- v0.3.13.5 English play event and some passage renames--> <<if $englishPlay is undefined>> <<set $englishPlay to "none">> <</if>> <<if $debugdisable isnot undefined>> <<set $options.debugdisable to $debugdisable>> <<unset $debugdisable>> <</if>> <<if $masturbationtimestat isnot undefined>> <<if !$secondsSpentMasturbating>> <<set $secondsSpentMasturbating to $masturbationtimestat * 60>> <</if>> <<unset $masturbationtimestat>> <</if>> <<if $prison_scarred_done isnot undefined>> <<unset $prison_scarred_done>> <<set $daily.prison.scarredDone to true>> <</if>> <<if $prison_relaxed_spoke isnot undefined>> <<unset $prison_relaxed_spoke>> <<set $daily.prison.relaxedSpoke to true>> <</if>> <<if $prison_relaxed_greet isnot undefined>> <<unset $prison_relaxed_greet>> <<set $daily.prison.relaxedGreet to true>> <</if>> <<if $prison_anxious_spoke isnot undefined>> <<unset $prison_anxious_spoke>> <<set $daily.prison.anxiousSpoke to true>> <</if>> <<if $prison_anxious_greet isnot undefined>> <<unset $prison_anxious_greet>> <<set $daily.prison.anxiousGreet to true>> <</if>> <<if $prison_veteran_spoke isnot undefined>> <<unset $prison_veteran_spoke>> <</if>> <<if $prison_veteran_greet isnot undefined>> <<unset $prison_veteran_greet>> <<set $daily.prison.veteranGreet to true>> <</if>> <<if $prison_methodical_spoke isnot undefined>> <<unset $prison_methodical_spoke>> <<set $daily.prison.methodicalSpoke to true>> <</if>> <<if $prisonwake isnot undefined>> <<unset $prisonwake>> <<set $daily.prison.wake to true>> <</if>> <<if $prison_attention_day isnot undefined>> <<unset $prison_attention_day>> <<set $daily.prison.attentionDay to true>> <</if>> <<if $glideScared isnot undefined>> <<unset $glideScared>> <<set $daily.glideScared to true>> <</if>> <<if !$daily.school.attended>> <<set $daily.school.attended to {}>> <</if>> <<if $scienceattended isnot undefined>> <<set $daily.school.attended.science to $scienceattended == 1>> <<unset $scienceattended>> <<set $daily.school.attended.maths to $mathsattended == 1>> <<unset $mathsattended>> <<set $daily.school.attended.english to $englishattended == 1>> <<unset $englishattended>> <<set $daily.school.attended.history to $historyattended == 1>> <<unset $historyattended>> <<set $daily.school.attended.swimming to $swimmingattended == 1>> <<unset $swimmingattended>> <</if>> <<if $weekly is undefined>> <<set $weekly to { theft: {}, sewers: {} }>> <</if>> <<if $robinBrothelWeekly isnot undefined>> <<set $weekly.robinBrothel to $robinBrothelWeekly>> <<unset $robinBrothelWeekly>> <</if>> <<if $edenPreyWeekly isnot undefined>> <<set $weekly.edenPrey to $edenPreyWeekly>> <<unset $edenPreyWeekly>> <</if>> <<if $leightondancerefused isnot undefined>> <<set $weekly.leightonDanceRefused to $leightondancerefused>> <<unset $leightondancerefused>> <</if>> <<if $dancestudiotheft isnot undefined>> <<set $weekly.theft.danceStudio to $dancestudiotheft>> <<unset $dancestudiotheft>> <</if>> <<if $oceanbreezetheft isnot undefined>> <<set $weekly.theft.oceanBreeze to $oceanbreezetheft>> <<unset $oceanbreezetheft>> <</if>> <<if $stripclubtheft isnot undefined>> <<set $weekly.theft.stripClub to $stripclubtheft>> <<unset $stripclubtheft>> <</if>> <<if $clothingshoptheft isnot undefined>> <<set $weekly.theft.clothingShop to $clothingshoptheft>> <<unset $clothingshoptheft>> <</if>> <<if $adultshoptheft isnot undefined>> <<set $weekly.theft.adultShop to $adultshoptheft>> <<unset $adultshoptheft>> <</if>> <<if $hairdresserstheft isnot undefined>> <<set $weekly.theft.hairDressers to $hairdresserstheft>> <<unset $hairdresserstheft>> <</if>> <<if $tailortheft isnot undefined>> <<set $weekly.theft.tailor to $tailortheft>> <<unset $tailortheft>> <</if>> <<if $petshoptheft isnot undefined>> <<set $weekly.theft.petShop to $petshoptheft>> <<unset $petshoptheft>> <</if>> <<if $toyshoptheft isnot undefined>> <<set $weekly.theft.toyShop to $toyshoptheft>> <<unset $toyshoptheft>> <</if>> <<if $tattooparlourtheft isnot undefined>> <<set $weekly.theft.tattooParlour to $tattooparlourtheft>> <<unset $tattooparlourtheft>> <</if>> <<if $ridingschooltheft isnot undefined>> <<set $weekly.theft.ridingSchool to $ridingschooltheft>> <<unset $ridingschooltheft>> <</if>> <<if $spatheft isnot undefined>> <<set $weekly.theft.spa to $spatheft>> <<unset $spatheft>> <</if>> <<if $schoollibrarymoneytheft isnot undefined>> <<set $weekly.theft.schoolLibraryMoney to $schoollibrarymoneytheft>> <<unset $schoollibrarymoneytheft>> <</if>> <<if $infirmarydrugstheft isnot undefined>> <<set $weekly.theft.infirmaryDrugs to $infirmarydrugstheft>> <<unset $infirmarydrugstheft>> <</if>> <<if $furnitureshoptheft isnot undefined>> <<set $weekly.theft.furnitureShop to $furnitureshoptheft>> <<unset $furnitureshoptheft>> <</if>> <<if $streetpolice isnot undefined>> <<set $weekly.streetPolice to $streetpolice>> <<unset $streetpolice>> <</if>> <<if $sewersantiquecrystal isnot undefined>> <<set $weekly.sewers.antiqueCrystal to $sewersantiquecrystal>> <<unset $sewersantiquecrystal>> <</if>> <<if $sewersantiquewatch isnot undefined>> <<set $weekly.sewers.antiqueWatch to $sewersantiquewatch>> <<unset $sewersantiquewatch>> <</if>> <<if $sewersantiquedildo isnot undefined>> <<set $weekly.sewers.antiqueDildo to $sewersantiquedildo>> <<unset $sewersantiquedildo>> <</if>> <<if $sewersantiquecandlestick isnot undefined>> <<set $weekly.sewers.antiqueCandlestick to $sewersantiquecandlestick>> <<unset $sewersantiquecandlestick>> <</if>> <<if $sewersantiquehorn isnot undefined>> <<set $weekly.sewers.antiqueHorn to $sewersantiquehorn>> <<unset $sewersantiquehorn>> <</if>> <<if $temple_fire isnot undefined>> <<set $weekly.templeFire to $temple_fire>> <<unset $temple_fire>> <</if>> <<if $police_high isnot undefined>> <<set $weekly.policeHigh to $police_high>> <<unset $police_high>> <</if>> <<if $school_pool_swap isnot undefined>> <<set $weekly.schoolPoolSwap to $school_pool_swap>> <<unset $school_pool_swap>> <</if>> <<if $beach_cave_compass isnot undefined>> <<set $weekly.beachCaveCompass to $beach_cave_compass>> <<unset $beach_cave_compass>> <</if>> <<if $dance_job isnot undefined>> <<set $weekly.danceJob to $dance_job>> <<unset $dance_job>> <</if>> <<if $whitneyPub isnot undefined>> <<set $weekly.whitneyPub to $whitneyPub>> <<unset $whitneyPub>> <</if>> <<if $adultShopWhitney isnot undefined>> <<set $weekly.adultShopWhitney to $adultShopWhitney>> <<unset $adultShopWhitney>> <</if>> <!-- v0.4.0.6 change (87f8e633085bb4be8f4f0d099012b1e0b077242a) that I've moved up here. the reason is - this variable is used in the edge-case handled below (the <<pass _passMinutes>> macro that the v0.4 Time refactor sometimes calls ends up reading schoolLessonsMissed.science, which obviously breaks if this initialisation doesn't happen at this point. If you add any calls to <<pass>> before this line in backComp - it will also break for any players whose save doesn't have the schoolLessonsMissed paramm yet. --> <<if $sciencemissed isnot undefined>> <<set $schoolLessonsMissed to { science: $sciencemissed, maths: $mathsmissed, english: $englishmissed, history: $historymissed, swimming: $swimmingmissed }>> <<unset $sciencemissed>> <<unset $mathsmissed>> <<unset $englishmissed>> <<unset $historymissed>> <<unset $swimmingmissed>> <</if>> <!-- v0.4 Time refactor --> <<if $time isnot undefined and !$timeStamp>> <<script>> /* Tries to set the date to the same as the previous version's date. If weekday is different from the real date, well shit, we're faking it. */ const month = Time.monthNames.map(month => month.toLowerCase()).indexOf(V.month) + 1; const date = new DateTime(V.year, month, V.monthday, Math.min(V.hour, 23), Math.min(V.minute, 59), V.seconds); const startDate = new DateTime(date); Time.startDate = startDate.addDays(-V.days); const passMinutes = (V.hour > 23 ? (V.hour - 23) * 60 : 0) + (V.minute > 59 ? V.minute - 59 : 0); if (V.real_season) V.real_timeStamp = new DateTime(V.real_year, Time.monthNames.indexOf(V.real_month.toUpperFirst()) + 1, V.real_monthday, V.real_hour, V.real_minute).timeStamp - V.startDate; Time.setDate(date); V.weekDayOffset = (V.weekday - Time.weekDay + 6) % 7; /* stay positive */ if (V.weekDayOffset === 6) delete V.weekDayOffset; /* and clean the rubbish */ ["time", "year", "yeardays", "season", "month", "monthday", "weekday", "schoolday", "days", "daystate", "dayname", "hour", "minute", "seconds", "pass", "real_year", "real_season", "real_month", "real_monthday", "real_hour", "real_minute", "real_time"].forEach(v => delete V[v]); Time.set(V.timeStamp + passMinutes * 60); <</script>> <</if>> <!-- v0.4 Vrel stuff that he forgot to label --> <<if $hypnosisdisable is undefined>> <<set $hypnosisdisable to "f">> <</if>> <<if $housekeeping is undefined>> <<set $housekeeping to 0>> <</if>> <<if $town_projects is undefined>> <<set $town_projects to {}>> <</if>> <<if $ruffledisable is undefined>> <<set $ruffledisable to "f">> <</if>> <<if $child_played is undefined>> <<set $child_played to []>> <</if>> <!-- v0.4 Wraith stuff --> <<if $necklaceThief is undefined>> <<if $museumAntiques.antiques.antiqueivorynecklace isnot "notFound">> <<set $necklaceThief to "player">> <<elseif $town_projects.diving gte 3 and $museumAntiques.antiques.antiqueivorynecklace is "notFound">> /* for anyone on the dev build that passed the normal trigger already */ <<museumAntiqueStatus "antiqueivorynecklace" "found">> <<museumAntiqueStatus "antiqueivorynecklace" "talk">> <<set $necklaceThief to "diver">> <<else>> <<set $necklaceThief to "">> <</if>> <</if>> <!-- v0.4 Fox TF and fox encounters --> <<if $fox is undefined or typeof $fox is "string">> <<set $foxbuild to 0>> <<set $fox to 0>> <<set $transformationParts.traits.mateForLife to ($harpy gte 3 ? "default" : "disabled")>> <!-- Unrelated fix for fallenbuild being NaN on existing saves --> <<if !$fallenbuild>> <<set $fallenbuild to 0>> <</if>> <</if>> <!-- V0.4 Moving flaunting to mirror --> <<if $uncomfortable.flaunting isnot undefined>> <<if $uncomfortable.flaunting is false and $demon gte 4 and $exhibitionism gte 95>> <<set $transformationParts.traits.flaunting to "default">> <<else>> <<set $transformationParts.traits.flaunting to "disabled">> <</if>> <<run delete $uncomfortable.flaunting>> <</if>> <!-- V0.4 egg --> <<if $plants.egg>> <<set $plants.chicken_egg to $plants.egg>> <<run delete $plants.egg>> <<set $plants.chicken_egg.name to "chicken_egg">> <<set $plants.chicken_egg.plural to "chicken eggs">> <</if>> <<if $farmersProduce !== undefined and $farmersProduce.selling !== undefined && $farmersProduce.selling.egg>> <<set $farmersProduce.selling.chicken_egg to $farmersProduce.selling.egg>> <<run delete $farmersProduce.selling.egg>> <</if>> <!-- V0.4 tower guard state saved --> <<if $per_npc.farm_tower_guard and $per_npc.farm_tower_guard.active isnot undefined>> <<run delete $per_npc.farm_tower_guard.active>> <<set $per_npc.farm_tower_guard.bold to 0>> <<set $per_npc.farm_tower_guard.lefthand to 0>> <<set $per_npc.farm_tower_guard.righthand to 0>> <<set $per_npc.farm_tower_guard.mouth to 0>> <<set $per_npc.farm_tower_guard.chest to "clothed">> <<set $per_npc.farm_tower_guard.health to $per_npc.farm_tower_guard.healthmax>> <<set $per_npc.farm_tower_guard.location to {head: 0, genitals: 0}>> <<set $per_npc.farm_tower_guard.penis to ($per_npc.farm_tower_guard.penis isnot "none") ? "clothed" : "none">> <<set $per_npc.farm_tower_guard.vagina to ($per_npc.farm_tower_guard.vagina isnot "none") ? "clothed" : "none">> <</if>> <!-- V0.4.0.2 SNEAKY posture undefined --> <<if $player.gender_posture is undefined>> <<if $background is "crossdresser">> <<if $player.sex is "f">> <<set $player.gender_posture to "m">> <<elseif $player.sex is "m">> <<set $player.gender_posture to "f">> <</if>> <<else>> <<set $player.gender_posture to "n">> <</if>> <</if>> <!-- V0.4.0.3 SNEAKY - V0.4.0.6 empty NPC name arrays --> <<if !$NPC_names_m or $NPC_names_m.length is 0 or !$NPC_names_f or $NPC_names_f.length is 0>> <<init_names>> <<set $_per_k to Object.keys($per_npc)>> <<for $_per_c range $_per_k>> <<set $NPC_names_m.delete($per_npc[$_per_c].name)>> <<set $NPC_names_f.delete($per_npc[$_per_c].name)>> <</for>> <</if>> <<if $combat is 1>> <!-- Update the index attached to NPC properties if they exist. --> <<script>> V.NPCList.forEach((e, i) => { if (e.type && !Number.isFinite(e.index)) e.index = i; }); <</script>> <</if>> <!-- Fixing broken transformation stuff --> <<if $tfFIX is undefined or $tfFIX lte 6>> <<if $tfFIX is undefined>> <!-- V0.4.0.5 repair transformationParts object after damage from mid-prayer room or nightmare saves --> <<if $transformationParts.fox is undefined>> <<set $transformationParts.fox to {ears:"disabled", tail:"disabled", cheeks:"disabled"}>> <<if $transformationParts.traits.mateForLife is undefined or $transformationParts.traits.flaunting is undefined>> <<set $transformationParts.traits to {fangs:"disabled", sharpEyes:"disabled", mateForLife:"disabled", flaunting:"disabled"}>> <<if $wolfgirl gte 2 or $cat gte 2 or $fox gte 2>> <<set $transformationParts.traits.fangs to "default">> <</if>> <<if $cat gte 2 or $harpy gte 2 or $fox gte 2>> <<set $transformationParts.traits.sharpEyes to "default">> <</if>> <<if $fox gte 3 or $harpy gte 3>> <<set $transformationParts.traits.mateForLife to "default">> <<else>> <<set $transformationParts.traits.mateForLife to "disabled">> <</if>> <<set $transformationParts.traits.flaunting to "disabled">> <</if>> <<if $fox gte 4>> <<set $transformationParts.fox.ears to "default">> <</if>> <<if $fox gte 5>> <<set $transformationParts.fox.cheeks to "default">> <</if>> <<if $fox gte 6>> <<set $transformationParts.fox.tail to "default">> <</if>> <</if>> <!-- V0.4.0.5 Stop any saves in the above situation from being broken upon leaving --> <<if $real_transformationParts and !$real_transformationParts.fox>> <<set $real_transformationParts.fox to {ears:"disabled", tail:"disabled", cheeks:"disabled"}>> <<if !$real_transformationParts.traits>> <<set $real_transformationParts.traits to clone($transformationParts.traits)>> <</if>> <<if $real_transformationParts.traits.mateForLife is undefined or $real_transformationParts.traits.flaunting is undefined>> <<if $fox gte 3 or $harpy gte 3>> <<set $real_transformationParts.traits.mateForLife to "default">> <<else>> <<set $real_transformationParts.traits.mateForLife to "disabled">> <</if>> <<set $real_transformationParts.traits.flaunting to "disabled">> <</if>> <</if>> <</if>> <<if $tfFIX is undefined or $tfFIX is 1>> <!-- v0.3.13.5 - v0.4.0.8 Fix for virgin fallen angels, moved and fixed from earlier part of versionupdate --> <<if $fallenangel is 2>> <<set $_isHerm to $player.sex is "h">> <<set $_hasVaginalVirginity to $player.vaginaExist and $player.virginity.vaginal is true>> <<set $_hasPenileVirginity to $player.penisExist and $player.virginity.penile is true>> <<if !$_isHerm and ($_hasVaginalVirginity or $_hasPenileVirginity) or $_isHerm and $_hasVaginalVirginity and $_hasPenileVirginity>> <<set $fallenangel to 0>> <<angelTransform>> <<set $transformationParts.fallenAngel.halo to "disabled">> <<set $transformationParts.fallenAngel.wings to "disabled">> <</if>> <</if>> <!-- V0.4.0.8 Fix for non-virgin herm angels from bad fix earlier that didn't take herms into account --> <<if $angel gte 6 and $player.sex is "h" and !$virginityProtected and ($player.virginity.vaginal isnot true or $player.virginity.penile isnot true)>> <<fallenTransform>> <</if>> <</if>> <!-- 0.5.3.0 Clear invalid transformation parts --> <<if $tfFIX is undefined or $tfFIX lte 4>> <<validateTransformations>> <</if>> <!-- 0.5.4.0 Update chimera parts --> <<if $tfFIX is undefined or $tfFIX lte 6>> <<setupTransformationPiecesObject>> <</if>> <<set $tfFIX to 7>> <</if>> <!-- V0.4.0.5 Old saves with untyped named NPCs --> <<if $NPCName[0].type is undefined>> <<set $_WHY to ["human", "human", "human", "human", "human", "human", "human", "human", "human", "human", "human", "human", "human", "human", "human", "human", "human", "human", "human", "human", "human", "wolf", "human", "human", "human", "human", "hawk", "human", "human", "human"]>> <<for $_killMe to 0; $_killMe lte $NPCName.length -1; $_killMe++>> <<set $NPCName[$_killMe].type to $_WHY[$_killMe]>> <</for>> <</if>> <!-- To fix issues from when the strap ons overwrote $player.penissize --> <<if $player.penisExist and $playerPenisSizeBackup>> <<set $player.penissize to $playerPenisSizeBackup>> <<elseif $player.penissize is undefined>> <<set $player.penissize to 1>> <</if>> <<unset $playerPenisSizeBackup>> <!-- V0.4.0.6 Separating tentacle forest lurker from daily object to prevent midnight errors in tentacle forest --> <<if $daily and $daily.tentacle_forest_lurker>> <<set $tentacle_forest_lurker to $daily.tentacle_forest_lurker>> <</if>> <!-- To fix issue where Dr Harper failed to remove both hermaphrodite parasites --> <<if $sexStats.vagina.pregnancy.type is "parasite" and $sexStats.vagina.pregnancy.fetus.find(parasite => parasite.stats.gender === "Hermaphrodite")>> <<set $sexStats.vagina.pregnancy.motherStatus to 2>> <</if>> <<if !$objectVersion.wardForceUnlock>> <<if !$objectVersion.wardForceUnlock and !$ward_unlocked and Object.values($children).find(child => child.location is "home" and child.birthLocation isnot "hospital")>> <<set $_childrenToIntro to Object.values($children).filter(child => child.location is "home" and child.birthLocation isnot "hospital")>> <<run console.log($_childrenToIntro)>> <<run $_childrenToIntro.forEach(child => wikifier("setBabyIntro", child.mother, "Bailey", child.birthId))>> <</if>> <<set $objectVersion.wardForceUnlock to 1>> <</if>> <<if $maleChanceMale is undefined>> <<set $maleChanceMale to $malechance>> <<set $maleChanceFemale to $malechance>> <<set $maleChanceSplit to "f">> <<set $beastMaleChanceMale to $beastmalechance>> <<set $beastMaleChanceFemale to $beastmalechance>> <<set $beastMaleChanceSplit to "f">> <</if>> <<if $forcedcrossdressingdisable is undefined>> <<set $forcedcrossdressingdisable to "f">> <</if>> <!-- V0.4.0.9 $currentFurnishing should not be a story variable, and no story variables should be (or include) functions --> <<if $currentFurnishing>> <<unset $currentFurnishing>> <<run State.history.forEach(s => delete s.variables.currentFurnishing)>> <</if>> <!-- V0.4.1.1 Fixed for some wolves having "human" sperm --> <<if !$objectVersion.pregnancyFix>> <<physicalAdjustmentsInit>> <</if>> <<if $speech_attitude is undefined>> <<set $speech_attitude to "neutral">> <</if>> <!-- V0.4.1.7 Set V.options.confirmDialogUponTabClose for the new confirm dialog box prompting when user closes/refresh tab --> <<if $options.confirmDialogUponTabClose is undefined>> <<if $ironmanmode is true>> <<set $options.confirmDialogUponTabClose to true>> <<else>> <<set $options.confirmDialogUponTabClose to false>> <</if>> <</if>> <!-- V0.4.2.0 Ear Slime Extension --> <<if $earSlime is undefined>> <<resetEarSlime>> <<set $earSlime.corruption to $corruption_slime or 0>> <<set $earSlime.event to $slimeEvent or "">> <<set $earSlime.eventTimer to $slimeSleepEvent or 0>> <<set $earSlime.eventLength to $slimeEventLength or 0>> <<set $earSlime.defyCooldown to $slimeDefyCooldown or 0>> <<set $masturbationRuinedOrgasm to 0>> <<set $ruinedOrgasmStat to 0>> <<if ["go running or swimming for an hour", "steal something", "go running or swimming naked for an hour"].includes($earSlime.event)>> <<set $earSlime.noSleep to true>> <</if>> <<unset $corruption_slime>> <<unset $slimeEvent>> <<unset $slimeSleepEvent>> <<unset $slimeDefyCooldown>> <<set $ruinedorgasmdisable to "f">> <</if>> <<if $earSlime.promiscuity is undefined>> <<set $earSlime.promiscuity to 0>> <<set $earSlime.deviancy to 0>> <<set $earSlime.exhibitionism to 0>> /* One off changes */ <<if $earSlime.event is "go commando" and !$slimeBedroomExit>> <<if $earSlime.corruption lt 50 and $earSlime.growth is 0>> <<set $earSlime.forcedCommando to random(2, 4)>> <<elseif $earSlime.growth is 0>> <<set $earSlime.forcedCommando to random(7, 21)>> <<else>> <<set $earSlime.forcedCommando to random(14, 31)>> <</if>> <<set $earSlime.event to "">> <</if>> <<if $earSlimeDaysStat is undefined>> <<set $earSlimeDaysStat to 0>> <<set $earSlimePassiveDaysStat to 0>> <<set $earSlime.days to 0>> /* All old ear slimes were aggressive */ <<set $earSlime.startedThreats to true>> <</if>> <</if>> <<if !$parasite.types.includes("parasite")>> <<run $parasite.types.push("parasite")>> <<run $parasite.parasite to []>> <<run $parasite.breasts to {}>> <</if>> <!-- V0.4.2.0 Give leotards a default colour of black after making them recolourable--> <<script>> let underUpperChanger = item => { if (item.index === 3 || item.index === 4 || item.index === 5 || item.index === 8) { if (item.colour === 0) { item.colour = "black"; item.colour_combat = "black"; } } }; V.wardrobe.under_upper.forEach(underUpperChanger); underUpperChanger(V.worn.under_upper); const underLowerChanger = item => { if (item.index === 8 || item.index === 9 || item.index === 10 || item.index === 13) { if (item.colour === 0) { item.colour = "black"; item.colour_combat = "black"; } } }; V.wardrobe.under_lower.forEach(underLowerChanger); underLowerChanger(V.worn.under_lower); <</script>> <!-- V0.4.2.0 Crime Overhaul --> <<if !$objectVersion.crime>> <<set _oldCrime to parseInt($crime) || 0>> <<set _oldCrimeHistory to parseInt($crimehistory) || 0>> <<unset $crime>><<unset $crimehistory>> <<set $crime to { assault: {current: 0, history: 0, daily: 0, count: 0, countHistory: 0}, coercion: {current: 0, history: 0, daily: 0, count: 0, countHistory: 0}, destruction: {current: 0, history: 0, daily: 0, count: 0, countHistory: 0}, exposure: {current: 0, history: 0, daily: 0, count: 0, countHistory: 0}, obstruction: {current: 0, history: 0, daily: 0, count: 0, countHistory: 0}, prostitution: {current: 0, history: 0, daily: 0, count: 0, countHistory: 0}, resisting: {current: 0, history: 0, daily: 0, count: 0, countHistory: 0}, thievery: {current: _oldCrime, history: _oldCrimeHistory, daily: 0, count: 0, countHistory: 0}, petty: {current: 0, history: 0, daily: 0, count: 0, countHistory: 0}, trespassing: {current: 0, history: 0, daily: 0, count: 0, countHistory: 0}, events: {}, }>> <<if $crime.thievery.current gte 1>> <<set $crime.thievery.count to 1>><<set $crime.thievery.countHistory to 1>> <<set C.crime.logEvent(_oldCrime, "thievery", "legacy", 0)>> <</if>> <<set $objectVersion.crime to 1>> <</if>> <!-- V0.4.2.0 Temple rank prep --> <<if $world_corruption_soft is undefined>> <<set $world_corruption_soft to 0>> <<set $world_corruption_hard to 2>> <<set $world_corruption_reduced to 0>> <<if $stat_aphrodisiacs_sold gte 1>> <<world_corruption "soft" $stat_aphrodisiacs_sold>> <</if>> <<if $sydneySeen>> <<if $sydneySeen.includes("corruptroom")>> <<world_corruption "hard" 1>> <</if>> <</if>> <<if $museumAntiques.antiques.antiquebell is "stolen">> <<world_corruption "hard" 2>> <</if>> <<if $museumAntiques.antiques.antiqueivorynecklace is "talk" or $museumAntiques.antiques.antiqueivorynecklace is "museum">> <<world_corruption "hard" 2>> <</if>> <<if $templePromised is "Sydney">> <<world_corruption "hard" -1>> <</if>> <</if>> <!-- V0.4.2.3 Fixes existing saves affected by Moderate Start "f" bug --> <<if $malechance is "f">> <<set $malechance to 0>> <</if>> <<if $beastmalechance is "f">> <<set $beastmalechance to 0>> <</if>> <!-- V0.4.2.7 livestock daily variable --> <<if $daily.livestock is undefined>> <<set $daily.livestock to {}>> <</if>> <!-- V0.4.2.7 Pregnancy type fix --> <<if $pregnancytype is "f">> <<set $pregnancytype to "realistic">> <</if>> <!-- V0.4.2.7 We will never ever know what this code does because Scythe didn't comment it and I had to do it instead --> <<if $straponstat is undefined>> <<set $straponstat to 0>> <</if>> <!-- V0.4.3.0 Confess --> <<if C.npc.Sydney.init is 1 and $sydney and !$sydney.rank>> <<set $sydney.rank to "initiate">> <</if>> <<if $temple_rank is "initiate" or $temple_rank is "monk" or $temple_rank is "priest" and $temple_initiate_days is undefined>> <<set $temple_initiate_days to 0>> <</if>> <<if ($temple_rank is "monk" or $temple_rank is "priest") and $temple_monk_days is undefined>> <<set $temple_monk_days to 0>> <</if>> <!-- V0.4.3.2 Jordan title fix --> <<if C.npc.Jordan.title is "monk">> <<set C.npc.Jordan.title to "priest">> <</if>> <<if C.npc.Jordan.title is "nun">> <<set C.npc.Jordan.title to "priestess">> <</if>> <!-- V.pillory_tenant.endDate update --> <<if $pillory_tenant isnot undefined and (!$pillory_tenant.endDate and $pillory_tenant.endday)>> <<set $pillory_tenant.endDate to ($pillory_tenant.endday * TimeConstants.secondsPerDay + ($pillory_tenant.endhour - 7) * TimeConstants.secondsPerHour)>> <<run delete $pillory_tenant.endday>> <</if>> <<if !$options.dateFormat>> <<set $options.dateFormat to "en-GB">> <</if>> <!-- Fix for the players being able to access the Nursery while refusing to pay Bailey outside the orphanage --> <<if $baileyRefusedToPay is undefined>> <<set $baileyRefusedToPay to 0>> <</if>> <!-- Fix for alex pregnancy to allow for both the pc and Alex to be pregnant at the same time --> <<if C.npc.Alex.pregnancy and C.npc.Alex.pregnancy.knowledge>> <<set _pregnancyUpdate to getPregnancyObject()>> <<if _pregnancyUpdate.type is "human" and _pregnancyUpdate.fetus.length and _pregnancyUpdate.fetus[0].father is "Alex">> <<set C.npc.Alex.pregnancy.pcKnowledge to true>> <</if>> <<set _pregnancyUpdate to getPregnancyObject("Alex")>> <<if _pregnancyUpdate.type is "human" and _pregnancyUpdate.fetus.length>> <<set C.npc.Alex.pregnancy.selfKnowledge to true>> <</if>> <<run delete C.npc.Alex.pregnancy.knowledge>> <</if>> <!-- V0.4.4.0 fix blackjack related sets --> <<if typeof $estatePersistent.markedCards is "string">> <<set $estatePersistent.markedCards to JSON.parse($estatePersistent.markedCards)>> <</if>> <<if $blackjack && typeof $blackjack.seenMarkedCardsSoFar is "string">> <<set $blackjack.seenMarkedCardsSoFar to JSON.parse($blackjack.seenMarkedCardsSoFar)>> <</if>> <!-- V0.4.4.4 clothesPriceLewd being higher than 2 --> <<if $clothesPriceLewd gt 2>><<set $clothesPriceLewd to 2>><</if>> <!-- V0.4.4.4 ear slime typo fix --> <<if !$objectVersion.earSlimeFix and $parasite.left_ear.name isnot "slime" and $parasite.right_ear.name isnot "slime" and $earSlime and ($earSlime.days or $earSlime.corruption or $earSlime.growth)>> <<resetEarSlime>> <<set $objectVersion.earSlimeFix to 1>> <</if>> <!-- Added the new hair growth pills data --> <<if $sexStats.pills.pills && $sexStats.pills.pills["Hair Growth Formula"] is undefined>> <<physicalAdjustmentsInit>> <</if>> <!-- V0.4.5.0 Handheld Items --> <<if $worn.handheld is undefined>> <<set $worn.handheld to clone(setup.clothes.handheld[0])>> <<set $carried.handheld to clone(setup.clothes.handheld[0])>> <<set $wardrobe.handheld to []>> <<set $store.handheld to []>> <<set $wear_handheld to "none">> <<if ($player.sex is "f" and $background isnot "crossdresser") or ($player.sex is "m" and $background is "crossdresser") or ($player.sex is "h" and ( (($player.gender_body is "m" or ($player.gender_body is "a" and $player.breastsize lte 3)) and $background is "crossdresser") or (($player.gender_body is "f" or ($player.gender_body is "a" and $player.breastsize gt 3)) and $background isnot "crossdresser") ) )>> <<set $wardrobe.handheld.push(clone(setup.clothes.handheld[8]))>> <<set $wardrobe.handheld.last().colour to "purple">> <<else>> <<set $wardrobe.handheld.push(clone(setup.clothes.handheld[8]))>> <<set $wardrobe.handheld.last().colour to "blue">> <</if>> <</if>> <<if $propEquipped is undefined>> <<set $propEquipped to 0>> <</if>> <<if $balloonStand is undefined>> <<set $balloonStand to { open: false, owner: "friendly", freeDrink: false, robin: {status: "unaffected", talked: false, knows: false} }>> <</if>> <<if $robin is undefined>> <<set $robin to { timer: {hurt:0, customer:0}, hurtReason: "nothing", moneyModifier: 0 }>> <</if>> <<if $outfit_update is undefined or $outfit_update lt 5>> <<set $outfit_update to 5>> <<for $_i to 0; $_i lt $outfit.length; $_i++>> <<if $outfit[$_i].handheld is undefined>> <<set $outfit[$_i].handheld to "naked">> <</if>> <<if $outfit[$_i].colors and !$outfit[$_i].colors.handheld>> <<set $outfit[$_i].colors.handheld to [0, 0]>> <</if>> <</for>> <</if>> <<if $brothelVending and $brothelVending.status is "sold" and $brothelVending.weeksEmpty lt 4 and ($brothelVending.condomsSold >= 1 or $brothelVending.lubeSold >= 1)>> /* condomsSold or lubeSold checks added later to prevent bugs. This won't fix old save vending machine disappearances as cleanly, but it fixes importing a save in the first 4 weeks after the machine has been sold giving a free machine */ <<set $brothelVending.status to "set">>/*return vending machine to players whose machines were incorrectly eaten*/ <</if>> <<if $brothelVending and $brothelVending.products is 0 and $brothelVending.weeksEmpty gt 0>> <<set $brothelVending.weeksEmpty to 0>> <<set $brothelVending.weeksRent to 0>> <<if $brothelVending.status is "sold">><<set $brothelVending.status to "idea">><</if>> /*fix weeksEmpty increasing even when the player hasn't started the vending machine questline. reset vending machine questline if vending machines were sold despite never having started the questline*/ <</if>> /* To fix cases where the value could be deleted after starting the game */ <<if $cycledisable is undefined>> <<set $cycledisable to "f">> <</if>> /*0.4.6.0 Adding arrays for photos and videos taken of the PC that they'll be able to find online*/ <<if $internet is undefined>> <<set $internet to { photos: [], videos: [] }>> <</if>> <!-- V0.4.6.0 Vision type events refactor and $real_ variables cleanup --> <<if !$objectVersion.realVarsFix>><<script>> if (V.passage.startsWith('ScarletBook') && !V.scarletExitPassage){ V.scarletExitPassage = 'School Library'; } else if (V.passage.startsWith('Olive Book ') && V.per_npc.pinch && V.per_npc.pinch.name !== V.per_npc.pinch.fullDescription){ V.per_npc.pinch.name = V.per_npc.pinch.fullDescription; V.per_npc.pinch.name_known = 1; if (V.NPCList[0].fullDescription && V.NPCList[0].fullDescription.endsWith('Pinch')) { V.NPCList[0].name = V.NPCList[0].fullDescription; V.NPCList[0].name_known = 1; } } let event; if (V.passage.match(/^(Drama|Loveth|ScarletBook([^1-5]|10))/)) { event = 'janet'; } else if (V.passage.startsWith('Schism ')) { event = 'wraith'; } else if (V.passage.match(/^Olive Book [^1-4]/)) { event = 'pinch'; } else if (V.activeNightmare) { event = 'nightmare'; } else if ( V.passage.match(/^Sydney Temple Corrupt (Sex( Finish)?|End( [^2F]|$))/) || (V.passage === 'Sydney Temple Corrupt End 2' && !V.sydneySeen.includes("corruptroom")) ) { event = 'prayerroom'; } if (event) { /* $real_ variables are in use */ if (!V.frozenValues) { V.statFreeze = true; V.frozenValues = {}; const skipKeys = ['replayScene', 'frozenKeys', 'frozenValues', 'statFreeze', 'passage', 'debug']; V.frozenKeys = Object.keys(V); V.frozenKeys.forEach(k => { if (skipKeys.includes(k) || k.startsWith('real_')) return; V.frozenValues[k] = clone(V[k]); }); ['pinchSpeech', 'pinchArousal', 'pinchPronoun', 'pinchPenile', 'pinchVaginal', 'pinchAnal', 'pinchKiss', 'pinchSong', 'nightmareWake', 'prayerRoom', 'loveDrunk', 'examSafe', 'wraithSkin', 'penisusue', 'saveTransformtaions'].forEach(v => delete V.frozenValues[v]); } const realVarsToCopy = [ 'moonstate', 'haircolour', 'hairlength', 'goooutsidecount', 'semenoutsidecount', 'pain', 'arousal', 'tiredness', 'stress', 'trauma', 'control', 'angel', 'fallenangel', 'angelbuild', 'demon', 'wolfgirl', 'cat', 'cow', 'harpy', 'fox', 'sexStats', 'skulduggery', 'purity', 'spray', 'skin', 'parasite', 'hairfringecolour', 'hairColourStyle', 'hairColourGradient', 'hairFringeColourStyle', 'hairFringeColourGradient', 'timeStamp', /* only overwrite the frozen values with variables from the current scene, to avoid restoring outdated values */ ...(event === 'wraith' ? [ 'spraymax', 'hairtype', 'fringelength', 'fringetype', 'fringelengthstage', 'submissive', 'awareness', 'awarelevel', 'skinColor', 'condoms', ] : []) ]; const migrateRealVars = (whitelist = realVarsToCopy) => { whitelist.forEach(k => { if (V['real_' + k] !== undefined && V.frozenValues[k] !== undefined) { V.frozenValues[k] = clone(V['real_' + k]); } }); }; const overwriteObjProp = (key, value, obj = V.frozenValues) => { if (value !== undefined) obj[key] = clone(value); }; const freezeRealClothes = (storeKey) => { const tmpWorn = clone(V.worn); Wikifier.wikifyEval(`<<storeon "${storeKey}">>`); V.frozenValues.worn = V.worn; V.worn = tmpWorn; }; const freezeRealSexStats = () => { const tmpSexStats = clone(V.sexStats); V.sexStats = V.frozenValues.sexStats; if (V.sexStats.pills.pills === undefined){ backCompPillsInventory(); } Wikifier.wikifyEval('<<physicalAdjustmentsInit>>'); V.sexStats = tmpSexStats; }; if (event === 'janet') { if (V.frozenValues.scarletExitPassage === undefined) { V.frozenValues.scarletExitPassage = V.scarletExitPassage; } overwriteObjProp('sex', V.real_playersex, V.frozenValues.player); overwriteObjProp('gender', V.real_playergender, V.frozenValues.player); overwriteObjProp('penisExist', V.real_penisexist, V.frozenValues.player); overwriteObjProp('vaginaExist', V.real_vaginaexist, V.frozenValues.player); overwriteObjProp('leftEyeColour', V.real_lefteyecolour || V.real_eyecolour); overwriteObjProp('rightEyeColour', V.real_righteyecolour || V.real_eyecolour); overwriteObjProp('eyecolour', V.real_lefteyecolour || V.real_eyecolour); overwriteObjProp('breastsize', V.real_breastsize, V.frozenValues.player); overwriteObjProp('ballsExist', V.real_ballsexist, V.frozenValues.player); Object.assign(V.frozenValues.player.bodyliquid, V.player.bodyliquid, V.real_bodyliquid); overwriteObjProp('virginity', V.real_virginity, V.frozenValues.player); freezeRealClothes(event); overwriteObjProp('genitals', V.real_wornGenitals, V.frozenValues.worn); Object.assign(V.frozenValues.transformationParts, V.saveTransformtaions); migrateRealVars(); freezeRealSexStats(); } else if (event === 'wraith') { overwriteObjProp('sex', V.real_playersex, V.frozenValues.player); overwriteObjProp('gender', V.real_playergender, V.frozenValues.player); overwriteObjProp('penisExist', V.real_penisexist, V.frozenValues.player); overwriteObjProp('vaginaExist', V.real_vaginaexist, V.frozenValues.player); overwriteObjProp('leftEyeColour', V.real_lefteyecolour || V.real_eyecolour); overwriteObjProp('rightEyeColour', V.real_righteyecolour || V.real_eyecolour); overwriteObjProp('eyecolour', V.real_lefteyecolour || V.real_eyecolour); overwriteObjProp('breastsize', V.real_breastsize, V.frozenValues.player); overwriteObjProp('ballsExist', V.real_ballsexist, V.frozenValues.player); Object.assign(V.frozenValues.player.bodyliquid, V.player.bodyliquid, V.real_bodyliquid); overwriteObjProp('virginity', V.real_virginity, V.frozenValues.player); freezeRealClothes(event); overwriteObjProp('genitals', V.real_wornGenitals, V.frozenValues.worn); Object.assign(V.frozenValues.transformationParts, V.saveTransformtaions); migrateRealVars(); freezeRealSexStats(); overwriteObjProp('hairlengthstage', V.real_hairlenghthstage); overwriteObjProp('state', V.real_wraithState, V.frozenValues.wraith); overwriteObjProp('clothingrebuy', V.real_rebuy); overwriteObjProp('condomLvl', V.real_condomLevel); } else if (event === 'pinch') { overwriteObjProp('location', V.oliveExitPassage === 'School Library' ? 'school' : 'home'); if (V.passage.match(/^Olive Book (Lew|Pinch) /) || (V.phase === 1 && V.passage.match(/(End|8)$/))) { /* player is currently another character */ overwriteObjProp('sex', V.real_playersex, V.frozenValues.player); overwriteObjProp('gender', V.real_playergender, V.frozenValues.player); overwriteObjProp('penisExist', V.real_penisexist, V.frozenValues.player); overwriteObjProp('vaginaExist', V.real_vaginaexist, V.frozenValues.player); overwriteObjProp('leftEyeColour', V.real_lefteyecolour || V.real_eyecolour); overwriteObjProp('rightEyeColour', V.real_righteyecolour || V.real_eyecolour); overwriteObjProp('eyecolour', V.real_lefteyecolour || V.real_eyecolour); overwriteObjProp('breastsize', V.real_breastsize, V.frozenValues.player); overwriteObjProp('ballsExist', V.real_ballsexist, V.frozenValues.player); Object.assign(V.frozenValues.player.bodyliquid, V.player.bodyliquid, V.real_bodyliquid); overwriteObjProp('virginity', V.real_virginity, V.frozenValues.player); freezeRealClothes(event); overwriteObjProp('genitals', V.real_wornGenitals, V.frozenValues.worn); Object.assign(V.frozenValues.transformationParts, V.saveTransformtaions); migrateRealVars(); freezeRealSexStats(); overwriteObjProp('penissize', V.real_penissize, V.frozenValues.player); } else { /* do not copy other variables, even if they exist */ migrateRealVars(['moonstate', 'timeStamp']); } } else if (event === 'nightmare') { Object.assign(V.frozenValues.player.bodyliquid, V.real_bodyliquid); overwriteObjProp('virginity', V.real_virginity, V.frozenValues.player); overwriteObjProp('clothingrebuy', V.real_rebuy); migrateRealVars(['moonstate', 'timeStamp', 'location', 'parasite', 'pain', 'arousal', 'tiredness', 'trauma', 'control', 'angel', 'angelbuild', 'fallenangel', 'transformationParts', 'purity', 'parasitepregdisable', 'worn', 'skin']); } else if (event === 'prayerroom') { /* DO NOT MODIFY FURTHER, SEE 'Fix to freezePlayerStats being used in the Corrupt Temple scene' */ overwriteObjProp('virginity', V.real_virginity, V.frozenValues.player); overwriteObjProp('virginity', V.real_virginity_sydney, V.frozenValues.NPCName[V.NPCNameList.indexOf('Sydney')]); migrateRealVars(['angel', 'fallenangel', 'transformationParts', 'purity', 'trauma']); } V.frozenValues.objectVersion.realVarsFix = 1; } delete V.saveTransformtaions; delete V.penisusue; /* clean up $real_ variables */ Object.keys(V).forEach(k => { if (k.startsWith('real_')) { delete V[k]; } }); V.objectVersion.realVarsFix = 1; <</script>><</if>> <<if $noTraitDescription isnot undefined>> <<unset $noTraitDescription>> <</if>> <<if $shopListMax isnot undefined>> <<unset $shopListMax>> <</if>> <<if $baileyRefusedToPayTotal is undefined>> /* Dupicate stats are intentional to use as a potential gameplay mode */ <<set $baileyRefusedToPayTotal to 0>> <<set $baileyRefusedToPayTotalStat to 0>> <</if>> <!-- V0.4.6.0 Removed a legacy variable that was never needed --> <<unset $robin_naked_room_clothes>> <!-- v <= 0.4.5.3: Consolidated these into $speechSextoyState --> <<unset $speechsextoyangry>> <<unset $speechsextoyshocked>> <<unset $speechsextoyaroused>> <<unset $speechsextoydisappointed>> /*Added npc generation and pronoun widgets to the livestock horse passages*/ <<if $livestock_horse_rescued is $pronoun>> <<set $livestock_horse_rescued to true>> <</if>> /*Adds Gift Variable for Office Manager for old saves*/ <<if $managerGift is undefined>> <<set $managerGift to 1>> <</if>> /* Stat tracking for unsafe sex */ <<if $unsafeSexTimeStat is undefined>> <<set $unsafeSexTimeStat to {}>> <</if>> <!-- V0.4.6.0 Draggletail fix --> <<if $hairtype is "draggletail">> <<set $hairtype to "messy ponytail">> <</if>> /*Fix inconsistent naming for ufarm escape variable*/ <<if $livestockEscape is "birth">> <<set $livestock_escape to "birth">> <<unset $livestockEscape>> <</if>> /* Fix to freezePlayerStats being used in the Corrupt Temple scene, modification of '$real_ variables cleanup' related to this even shouldn't be modified any longer */ <<if !$replayScene and $statFreeze and $frozenValues and ($passage.match(/^Sydney Temple Corrupt (Sex( Finish)?|End( [^2F]|$))/) || ($passage === 'Sydney Temple Corrupt End 2' && !$sydneySeen.includes("corruptroom"))) and !$defileSacredGroundStore and !$objectVersion.defileSacredGroundStore>> <<set $defileSacredGroundStore to { playerVirginity: clone($frozenValues.player.virginity), sydneyVirginity: clone($frozenValues.NPCName[$NPCNameList.indexOf("Sydney")].virginity), angel: $frozenValues.angel, angelbuild: $frozenValues.angelbuild, fallenangel: $frozenValues.fallenangel, transformationParts: $frozenValues.transformationParts, purity: $frozenValues.purity, trauma: $frozenValues.trauma, }>> <<unset $frozenValues>> <<unset $frozenKeys>> <<unset $statFreeze>> <<set $objectVersion.defileSacredGroundStore to 1>> <</if>> /* Fix to statFreeze being left from the previous fix, be aware of this fix when using statFreeze outside of freezePlayerStats */ <<if (!$objectVersion.defileSacredGroundStore or $objectVersion.defileSacredGroundStore lt 2) and !$replayScene and $statFreeze and !$frozenValues>> <<unset $statFreeze>> <<set $objectVersion.defileSacredGroundStore to 2>> <</if>> /* Docks dog-related scenes refactor*/ <<if $dock_dog isnot undefined and typeof $dock_dog is "string">> <<set $_indexTmp to $index>> <<set $_isOverwritingNPC to !!$NPCList[0].fullDescription>> <<if $_isOverwritingNPC>> <<saveNPC 0 "dockDogUpdate">> <<clearsinglenpc 0>> <</if>> <<generateBEAST 1 "dog">> <<set $dock_dog to clone($NPCList[0])>> <<if $_isOverwritingNPC>> <<loadNPC 0 "dockDogUpdate">> <<clearNPC "dockDogUpdate">> <</if>> <<personselect $_indexTmp>> <<run delete $_indexTmp>> <<run delete $_isOverwritingNPC>> <</if>> /* Kill the leather leggings with fire */ /* Commenting out again due to continued issues <<if !$objectVersion.itemFix lt 1 or $objectVersion.itemFix is undefined>> <<if $worn.under_lower.name isnot "naked" and $worn.legs.name is "leather leggings">><<generalUndress "wardrobe" "under_lower">><</if>> <<run convertLegstoUnder()>> <<set $objectVersion.itemFix to 1>> <</if>>*/ <<if $sydney_spear_talk is 1>> <<set $sydneySeen.pushUnique("spearMission")>> <<unset $sydney_spear_talk>> <</if>> <!-- V0.4.7.0 Unmod --> <!-- To mod dev: SIMPLY REMOVE THIS SECTION WHEN MERGING--> <<if $pplace_number isnot undefined or $pplaces>> <<unset $pplace_number>><<unset $pplaces>> <</if>> <!--V0.5 Great Hawk expansion --> <<if $playerPregnancyEggLayingDisable is undefined>> <<set $playerPregnancyEggLayingDisable to $playerPregnancyBeastDisable>> <</if>> <<if $bird and $bird.state and !$bird.hunts>> <<set $bird.injured to 0>> <<set $bird.clean to 0>> <<set $bird.lurkersEaten to 0>> <<set $bird.firepit to Cooker.create({cookTime: {lurker: 1440 * 60}})>> <<set $bird.hunts to { unlocked: false, lurkers: false, materials: false, valuables: false, estate: false }>> <<set $bird.materials to { wood: 0, fabric: 0, sticks: 0, leaves: 0, junk: 0, lurkers: 0, leather: 0, feathers: 0, valuables: {} }>> <<set $bird.upgrades to { mirror: 0, tools: 0, tarp: 0, telescope: 0, shelter: 1, nest: 0, firepit: 0, pot: 0, rack: 0, snare: 0, decor: 0, wardrobe: 0 }>> <<if $bird.mirror is 1>> <<run delete $bird.mirror>> <<set $bird.upgrades.mirror to 1>> <</if>> <<if $bird.fabric>> <<set $bird.materials.fabric += $bird.fabric>> <<run delete $bird.fabric>> <</if>> <</if>> <<if $dateCount.GreatHawkCasual is undefined>> <<set $dateCount.GreatHawkCasual to 0>> <</if>> <!-- Pillory time fixes --> <<if $pillory_tenant isnot undefined and ($pillory_tenant.starthour isnot undefined or $pillory_tenant.startday isnot undefined)>> <!-- The start day / hour are broken anyways - so resetting the starttime to current time --> <<set $_newTime to new DateTime(Time.date)>> <<set $_endTime to new DateTime($_newTime.timeStamp).addHours($pillory_tenant.duration)>> <<set $pillory_tenant.startTime to $_newTime.timeStamp>> <<set $pillory_tenant.endTime to $_endTime.timeStamp>> <<set $pillory_tenant.lastViewed to $_newTime.timeStamp>> <<unset $pillory_tenant.starthour>> <<unset $pillory_tenant.startday>> <<unset $pillory_tenant.endDate>> <<unset $pillory_tenant.endhour>> <<unset $pillory_tenant.duration>> <</if>> <!-- 5.0.6 --> <<if $pillory is undefined>> <<set $pillory to {}>> <</if>> <<if $pillorytime isnot undefined or $pillory.time is undefined>> <<set _pilloryStartTime to new DateTime(Time.date)>> <<set _pilloryEndTime to new DateTime(Time.date).addMinutes(60 - Time.date.minute)>> <<if !isNaN($pillorytime) and $pillorytime gte 0>> <<set _pilloryEndTime.addHours($pillortime)>> <</if>> <<set $pillory.time to { start: _pilloryStartTime.timeStamp, end: _pilloryEndTime.timeStamp, }>> <<unset $pillorytime>> <</if>> <<if $pilloryaudience isnot undefined>> <<if !isNaN($pilloryaudience) and $pilloryaudience gte 0>> <<set $pillory.audience to $pilloryaudience>> <</if>> <<unset $pilloryaudience>> <</if>> <<if $pillory_tenant isnot undefined>> <<set $pillory.tenant to $pillory_tenant>> <<unset $pillory_tenant>> <</if>> <<if $options.oldclock isnot undefined>> <<run delete $options.oldclock>> <</if>> <<if $options.newWardrobeStyle isnot undefined>> <<run delete $options.newWardrobeStyle>> <</if>> <!-- 5.2 tanning rework --> <!-- Don't move to bottom --> <<if $player.skin is undefined>> <<set $player.skin to { color: "light", layers: [], }>> <</if>> <<if $skinColor isnot undefined>> <<set $player.skin.color to $skinColor.natural>> <<script>> const colorValue = V.skinColor.tanValues ? Math.max(...V.skinColor.tanValues) : 0; V.player.skin.layers = [ { layers: [], slots: {}, value: colorValue, } ]; <</script>> <<unset $skinColor>> <</if>> <!-- 0.5.4.3 console error fixes --> <<if $objectVersion.updateClothes lt 68>> <<script>> for (const layer of Skin.tanningLayers) { for (const [key, value] of Object.entries(layer.slots)) { const patterns = setup.clothes[key].filter(item => item.index === value.index)[0].pattern_options; if (patterns) { value.pattern = patterns[0]; } } } <</script>> <</if>> <<if $player.skin.sunscreen is undefined>> <<set $player.skin.sunscreen to { usesLeft: 0 }>> <</if>> <<if $options.tanningEnabled isnot undefined>> <<set delete $options.tanningEnabled>> <</if>> <<if $options.tanLines is undefined>> <<set $options.tanLines to true>> <</if>> <<if $tanned isnot undefined>> <<unset $tanned>> <</if>> <<if $gameTanImgSetting isnot undefined>> <<unset $gameTanImgSetting>> <</if>> <!--Skin colours for nonhuman children and inconsistency npc skin colour fix --> <<if !$objectVersion.missingChildSkinColors or $objectVersion.missingChildSkinColors lt 3>> <<script>> const fixChild = (child) => { if (!child.features) return; if (!child.features.skinColour) child.features.skinColour = Skin.color.natural; if (child.features.skinColour === "black") child.features.skinColour = "dark"; if (child.features.skinColour === "white") child.features.skinColour = "light"; }; Object.values(V.children).forEach(child => fixChild(child)); getPregnancyObject().fetus.forEach(child => fixChild(child)); Object.values(V.NPCName).forEach(npc => { if (npc.pregnancy.fetus) { npc.pregnancy.fetus.forEach(child => fixChild(child)); } }); Object.values(V.storedNPCs).forEach(npc => { if (npc?.pregnancy.fetus) { npc.pregnancy.fetus.forEach(child => fixChild(child)); } }) <</script>> <<set $objectVersion.missingChildSkinColors to 3>> <</if>> <!-- 0.5 Weather update --> <<if Time.year is 361 and $location is "temple">> <<set $location to "old_temple">> <</if>> <<if $weatherObj is undefined>> <<switch $weather>> <<case "rain" "snow">> <<set _weather to "heavyPrecipitation">> <<case "overcast">> <<set _weather to "heavyClouds">> <<default>> <<set _weather to "lightClouds">> <</switch>> <<set $weatherObj to { name: _weather, snow: 0, ice: {}, fog: 0, overcast: 0, targetOvercast: 0, monthlyTemperatures: [], keypointsArr: [] }>> <<set $player.bodyTemperature to 37>> <<set $options.weatherUpdate to true>> <<set $options.reflections to true>> <<set $options.fahrenheit to false>> <<unset $weather>> <<unset $nextWeather>> <<unset $warmth>> <<unset $chill>> <<unset $chill_day>> <<unset $body_temperature>> <<unset $body_temperature_outside>> <<unset $skyHidden>> <!-- Also reset the frozenValues (statFreeze) --> <<if $statFreeze>> <<unset $frozenValues.weather>> <<unset $frozenValues.nextWeather>> <<unset $frozenValues.warmth>> <<unset $frozenValues.chill>> <<unset $frozenValues.chill_day>> <<unset $frozenValues.body_temperature>> <<unset $frozenValues.body_temperature_outside>> <<unset $frozenValues.skyHidden>> <</if>> <!-- Failsafe if changing options immediately after load --> <<run Weather.WeatherGeneration.generate(Time.date)>> <<run Weather.sky.initialize()>> <</if>> <<if $options.clothingCaption is undefined>> <<set $options.clothingCaption to true>> <</if>> <<if $frozenKeys isnot undefined>> <<unset $frozenKeys>> <</if>> <<if $startingseason isnot undefined>> <<unset $startingseason>> <</if>> <<if $clothing_number isnot undefined>> <<unset $clothing_number>> <</if>> <!-- Remove old character renderer remnants --> <<if $options.sidebarRenderer isnot undefined>> <<unset $options.sidebarRenderer>> <</if>> <!-- 5.0.3 --> <<if $yearly is undefined>> <<set $yearly = {}>> <</if>> <<if !($popcorn gte 0)>> <<set $popcorn to 0>> <</if>> <<if !Number.isFinite($money)>> <<set $money to 0>> <</if>> <!-- 5.0.6 --> <!-- Fix for not having an island home set, should only be run once --> <<if !$objectVersion.islandHomeFix>> <<if $passage.startsWith("Island") and $island and $island.home is undefined>> <<set $island.home to "rocky_hillock">> <</if>> <<set $objectVersion.islandHomeFix to 1>> <</if>> <!-- Fix for not having an island home set, should only be run once --> <<if !$objectVersion.islandHomeFix>> <<if $passage.startsWith("Island") and $island and $island.home is undefined>> <<set $island.home to "rocky_hillock">> <</if>> <<set $objectVersion.islandHomeFix to 1>> <</if>> <!-- Fix for older instance of 'cat_tf_stage_' not being cleared, leading to exceeded loop iterations --> <<if $custom_eyecolours.filter(obj => obj.variable.includes("cat_tf_stage_")).length gt 8>> <!-- filter out cat_tf_stages, then append only the first instances of them found in the original array --> <<set _newEyecolours to V.custom_eyecolours.filter(i => !i.variable.startsWith("cat_tf_stage_")).concat(["cat_tf_stage_0_left", "cat_tf_stage_0_right", "cat_tf_stage_1_left", "cat_tf_stage_1_right", "cat_tf_stage_2_left", "cat_tf_stage_2_right", "cat_tf_stage_3_left", "cat_tf_stage_3_right"].map(o => V.custom_eyecolours.find(c => c.variable === o)));>> <<set $custom_eyecolours to _newEyecolours>> <</if>> <!-- 0.5.2.0 --> <!-- Converting NPC seen variables to arrays --> <<if $remy_seen isnot undefined>> <<set $remySeen to []>> <<set $remySeen.pushUnique($remy_seen)>> <<set $remySeenLast to $remy_seen>> <<unset $remy_seen>> <<if $farm_stage gte 5>> <<set $remySeen.pushUnique("farm")>> <</if>> <<if $livestock_intro isnot undefined>> <<set $remySeen.pushUnique("livestock")>> <</if>> <<if $ridingschoolintro isnot undefined>> <<set $remySeen.pushUnique("riding_school")>> <</if>> <</if>> <<if $wren_seen isnot undefined>> <<set $wrenSeen to []>> <<set $wrenSeen.pushUnique($wren_seen)>> <<set $wrenSeenLast to $wren_seen>> <<unset $wren_seen>> <<if $wren_intro isnot undefined>> <<set $wrenSeen.pushUnique("cards")>> <</if>> <<if $winterLakeTalk gte 3>> <<set $wrenSeen.pushUnique("winter")>> <</if>> <</if>> <<if $niki_seen isnot undefined>> <<set $nikiSeen to []>> <<set $nikiSeen.pushUnique($niki_seen)>> <<unset $niki_seen>> <<if $livestock_pig gte 1>> <<set $nikiSeen.pushUnique("farm")>> <</if>> <<if $chef_state gte 5>> <<set $nikiSeen.pushUnique("chef")>> <</if>> <<if $winterLakeTalk gte 3>> <<set $nikiSeen.pushUnique("winter")>> <</if>> <</if>> <<if C.npc.Niki.init is 1 and $nikiSeen is undefined>> <<set $nikiSeen to []>> <</if>> <!-- Disabled the npc compressor --> <<if !$objectVersion.npcCompressorDisable>> <<set _storedNPCToDelete to []>> <<run Object.entries($storedNPCs).forEach(([key, npcStore]) => { if (npcStore.npc && (typeof npcStore.npc === 'string' || npcStore.npc instanceof String)) { try { npcStore.npc = npcDecompressor(npcStore.npc); } catch (e) { T.storedNPCToDelete.push(key); } } })>> <<run _storedNPCToDelete.forEach(key => { delete $storedNPCs[key]; })>> <<set $objectVersion.npcCompressorDisable to 1>> <</if>> <<if $objectVersion.npcCompressorDisable lt 2>> <<script>> const decompress = (parent) => { let result = parent; try { result = npcDecompressor(parent); } catch (e) { result = null; } return result; }; V.parentList.fathers.forEach(parent => { if (parent.compressed && parent.compressed !== "none") { parent.npc = decompress(parent.compressed); delete parent.compressed; } else { parent.npc = false; delete parent.compressed; } }); V.parentList.mothers.forEach(parent => { if (parent.compressed && parent.compressed !== "none") { parent.npc = decompress(parent.compressed); delete parent.compressed; } else { parent.npc = false; delete parent.compressed; } }); <</script>> <<set $objectVersion.npcCompressorDisable to 2>> <</if>> <!-- Fix for named npcs whose gender could be changed by the randomizer --> <<if !$objectVersion.npcPregnancyGenderChange>> <<initnpcgender>> <<set $objectVersion.npcPregnancyGenderChange to 1>> <</if>> <<if $moneyStats is undefined>> <<set $moneyStats to { cheats: { earned: 0, earnedCount: 1 }, startingMoney: { earned: 500, earnedCount: 1 }, }>> <<if $farm>> <<if $farm.wall gte 1>><<money -350000 "farmUpgrades" { recordOnly: true }>><</if>> <<if $farm.wall gte 2>><<money -1000000 "farmUpgrades" { recordOnly: true }>><</if>> <<if $farm.wall gte 3>><<money -2500000 "farmUpgrades" { recordOnly: true }>><</if>> <<if $farm.wall gte 4>><<money -500000 "farmUpgrades" { recordOnly: true }>><</if>> <<if $farm.tower gte 1>><<money -2000000 "farmUpgrades" { recordOnly: true }>><</if>> <<if $farm.tower gte 2>><<money -500000 "farmUpgrades" { recordOnly: true }>><</if>> <<if $farm.woodland gte 1>><<money -1000000 "farmUpgrades" { recordOnly: true }>><</if>> <<if $farm.woodland gte 2>><<money -2000000 "farmUpgrades" { recordOnly: true }>><</if>> <<if $farm.woodland gte 3>><<money -5000000 "farmUpgrades" { recordOnly: true }>><</if>> <<if $farm.kennel gte 1>><<money -1500000 "farmUpgrades" { recordOnly: true }>><</if>> <<if $farm.barn gte 1>><<money -500000 "farmUpgrades" { recordOnly: true }>><</if>> <<if $farm.barn gte 2>><<money -2000000 "farmUpgrades" { recordOnly: true }>><</if>> <<if $farm.stable gte 1>><<money -2000000 "farmUpgrades" { recordOnly: true }>><</if>> <<if $farm.coop gte 1>><<money -200000 "farmUpgrades" { recordOnly: true }>><</if>> <<if $farm.coop gte 2>><<money -500000 "farmUpgrades" { recordOnly: true }>><</if>> <<if $farm.parasitebarn gte 1>><<money -500000 "farmUpgrades" { recordOnly: true }>><</if>> <<if $farm.parasitebarn gte 2>><<money -2000000 "farmUpgrades" { recordOnly: true }>><</if>> <<if $farm.irrigation gte 1>><<money `-500000 * $farm.irrigation` "farmUpgrades" { recordOnly: true }>><</if>> <<if C.npc.Alex?.pregnancy.nursery>><<money -300000 "farmUpgrades" { recordOnly: true }>><</if>> <</if>> <<if $loft_river>><<money -2000000 "orphanageUpgrades" { recordOnly: true }>><</if>> <<if $loft_kylar>><<money -2000000 "orphanageUpgrades" { recordOnly: true }>><</if>> <<if $mason_pond gte 3>><<money -600000 "orphanageUpgrades" { recordOnly: true }>><</if>> <<if $loft_whitney gte 6>><<money -200000 "orphanageUpgrades" { recordOnly: true }>><</if>> <<if $estatePersistent>> <<money `$estatePersistent.totalBetMoneyMade or 0` "blackjack" { recordOnly: true }>> <<money `-$estatePersistent.totalBetMoneyLost or 0` "blackjack" { recordOnly: true }>> <<money `-$estatePersistent.totalMoneyConfiscated or 0` "blackjack" { recordOnly: true }>> <<money `$estatePersistent.totalTipMoneyMade or 0` "blackjack" { recordOnly: true }>> <</if>> <<money `-$baileyPaidStat or 0` "baileyRent" { recordOnly: true }>> <<unset $baileyPaidStat>> <<if $museumAntiques.antiques>> <<set _museumAntiquesAmount to 0>> <<run Object.entries($museumAntiques.antiques).forEach(([name, status]) => { if (["museum", "stolen", "recovered"].includes(status)) { switch(name) { case "antiquecopperring": T.museumAntiquesAmount += 500; break; case "antiquecoppercoin": case "antiquerustedcutlass": T.museumAntiquesAmount += 1000; break; case "antiquestrangefetish": case "antiquewoodenfigurine": T.museumAntiquesAmount += 1500; break; case "antiquesilvercoin": case "antiqueforestarrow": case "antiquebox": case "antiqueislandarrow": case "antiqueteacaddy": T.museumAntiquesAmount += 2000; break; case "antiquechocolate": T.museumAntiquesAmount += 2500; break; case "antiquesilverring": T.museumAntiquesAmount += 3000; break; case "antiqueforestdagger": case "antiquewoodenmask": case "antiqueforestdagger": T.museumAntiquesAmount += 4000; break; case "antiquebullet": case "antiquesilverbrooch": case "antiquetrilobitefossil": case "antiquetrashcup": case "antiqueswordcane": case "antiquecoppercompass": case "antiquecandlestick": case "antiquedildo": T.museumAntiquesAmount += 5000; break; case "antiquegrenade": T.museumAntiquesAmount += 8000; break; case "antiquegoldcoin": case "antiqueforestgem": case "antiqueshell": case "antiquetrashburner": case "antiquehorn": T.museumAntiquesAmount += 10000; break; case "antiquebrassstatuette": case "antiquecutlass": T.museumAntiquesAmount += 12000; break; case "antiqueminesign": T.museumAntiquesAmount += 14000; break; case "antiquecrystal": case "antiquewatch": case "antiquebucket": case "antiquesnuffer": case "antiquewhip": T.museumAntiquesAmount += 20000; break; case "antiquesilverdagger": T.museumAntiquesAmount += 24000; break; case "antiqueivorystatuette": case "antiquegoldnecklace": case "antiquegoldbrooch": case "antiqueobsidiandisc": T.museumAntiquesAmount += 50000; break; case "antiquesilveramulet": T.museumAntiquesAmount += 30000; break; case "antiquesilvermanacle": case "antiquehorn2": T.museumAntiquesAmount += 40000; break; case "antiquecoralring": T.museumAntiquesAmount += 80000; break; case "antiquesilvercrown": case "antiquestonetalisman": T.museumAntiquesAmount += 120000; break; case "antiquehourglass": T.museumAntiquesAmount += 140000; break; case "antiquewhitecrystal": case "antiqueivorynecklace": case "antiquegoldchastitybelt": case "antiquediamond": T.museumAntiquesAmount += 200000; break; case "antiquesilvercompass": T.museumAntiquesAmount += 220000; break; case "antiquegoldring": case "antiquesilvermask": T.museumAntiquesAmount += 300000; break; case "antiqueleathermap": T.museumAntiquesAmount += 400000; break; case "antiquegoldcompass": T.museumAntiquesAmount += 500000; break; case "antiquegoldamulet": case "antiquegolddagger": T.museumAntiquesAmount += 400000; break; case "antiquebell": T.museumAntiquesAmount += 1000000; break; case "antiquegoldmask": T.museumAntiquesAmount += 1200000; break; } } })>> /* Estimate a reasonable minimum value */ <<set _filteredAntiques to Object.values($museumAntiques.antiques).filter(status => ["museum", "stolen", "recovered"].includes(status)).length>> <<if $museumAntiques.museumCount - _filteredAntiques gt 0>> <<set _museumAntiquesAmount += ($museumAntiques.museumCount - _filteredAntiques) * 5000>> <</if>> <<money _museumAntiquesAmount "museumAntique" { recordOnly: true }>> <</if>> <<if $bunstat gt 0>> <<set _bunMoney to 0>> <<set _bunMoney += (5000 * 0.2) * Math.min($bunstat, 50)>> <<if $bunstat gt 50>> <<set _bunMoney += (10000 * 0.2) * Math.min($bunstat - 50, 200)>> <<elseif $bunstat gt 250 and $bun_cut is 0.2>> <<set _bunMoney += (10000 * 0.2) * ($bunstat - 250)>> <</if>> /* Assumes the player didn't get perfect numbers from here */ <<if $bunstat gt 250>> <<set _bunMoney += (10000 * 0.3) * Math.min($bunstat - 250, 200)>> <<elseif $bunstat gt 450 and $bun_cut is 0.3 and $bun_value is 10000>> <<set _bunMoney += (10000 * 0.3) * ($bunstat - 450)>> <</if>> <<if $bunstat gt 450 and $bun_value gte 15000>> <<set _bunMoney += (15000 * 0.3) * ($bunstat - 450)>> <</if>> <<money _bunMoney "cafeChef" { recordOnly: true }>> <</if>> <<set $_earnedTotal to 0>> <<set $_spentTotal to 0>> <<run Object.values(V.moneyStats).forEach(stat => { if (stat.earned) _earnedTotal += stat.earned; if (stat.spent) _spentTotal += stat.spent; })>> <<set $_earnedTotal += $_spentTotal>> <<if $money gt $_earnedTotal>> <<money `$money - $_earnedTotal` "notTracked" { recordOnly: true }>> <</if>> <</if>> <<if $timeStats is undefined>> <<set $timeStats to {}>> <<if $dockhours>> <<timeTrackingManual "docks" $dockhours>> <<unset $dockhours>> <</if>> <<if $adultshopcontribution>> <<timeTrackingManual "adultShop" $adultshopcontribution>> <</if>> <</if>> /* Money Name corrections */ <<set _moneyIncorrectKeys to ["brothal", "brothalShow"]>> <<if Object.keys($moneyStats).includesAny(_moneyIncorrectKeys)>> <<set _moneyFixedKeys to ["brothel", "brothelShow"]>> <<run _moneyIncorrectKeys.forEach((key, index) => { if ($moneyStats[key]) { $moneyStats[_moneyFixedKeys[index]] to clone($moneyStats[key]); delete $moneyStats[key]; } })>> <</if>> <!-- Setting the default face variant value for existing PCs --> <<if $facevariant is undefined>> <<set $facevariant to "default">> <</if>> <!-- Updating old characters to keep using their chosen body sprite --> <<if $player.bodyshape is undefined>> <<set _map to { "m": "classic", "f": "curvy", "a": "slender" }>> <<set $player.bodyshape to _map[$player.gender_body]>> <</if>> /* Police hack caught */ <<if $police_delete is undefined>> <<set $police_delete to 0>> <</if>> /* Setup object for bad end tracking */ <<if !$badEndStats>> <<set $badEndStats to []>> <</if>> <!-- 0.5.3.0; re-enable combat animations on mobile on any save that had it disabled by versionupdate previously.--> <!-- The code that set the combatfix var has been removed.--> <<if Browser.isMobile.any() and $options.combatAnimations is false and $combatFix is 1>> <<unset $combatFix>> <<set $options.combatAnimations to true>> <</if>> <<unset $mobileZoomFix>> <!-- 0.5.3.0; option to disable text effect from drunk and heat/rut lewd options--> <<if $options.textAnimations is undefined and !$options.textAnimsAll>> <<set $options.textAnimations to true>> <</if>> <!-- Insecurity Rework --> <<if $insecurity_breasts_tiny isnot undefined or $insecurity_penis_tiny isnot undefined>> <<set $insecurity_breasts_small to Math.max($insecurity_breasts_small, $insecurity_breasts_tiny)>> <<set $acceptance_breasts_small to Math.max($acceptance_breasts_small, $acceptance_breasts_tiny)>> <<if $player.sex is "m">> <<set $insecurity_breasts_big to Math.max($insecurity_breasts_big, $insecurity_breasts_small)>> <<set $acceptance_breasts_big to Math.max($acceptance_breasts_big, $acceptance_breasts_small)>> <<set $insecurity_breasts_small to 0>> <<set $acceptance_breasts_small to 0>> <</if>> <<set $insecurity_penis_small to Math.max($insecurity_penis_small, $insecurity_penis_tiny)>> <<set $acceptance_penis_small to Math.max($acceptance_penis_small, $acceptance_penis_tiny)>> <<unset $insecurity_breasts_tiny>> <<unset $acceptance_breasts_tiny>> <<unset $insecurity_penis_tiny>> <<unset $acceptance_penis_tiny>> <</if>> <!-- New Makeup Category --> <<if $makeup.owned.blusher is undefined>> <<set $makeup.owned.blusher = []>> <<set $makeup.blusher = 0>> <</if>> <!-- 0.5.3.0 makes sure $plants is defined on all saves and stocks supermarket--> <<if $plants.salt is undefined>> <<set _food_keys to Object.keys(setup.plants)>> <<for _i to 0; _i lt _food_keys.length; _i++>> <<set $_type to _food_keys[_i]>> <<if $plants[$_type] is undefined>> <<set $plants[$_type] to {"name": setup.plants[$_type].name, "plural": setup.plants[$_type].plural, "amount": 0}>> <<elseif $plants[$_type].name is undefined>> <<set $plants[$_type] to {"name": setup.plants[$_type].name, "plural": setup.plants[$_type].plural, "amount": $plants[$_type].amount}>> <</if>> <</for>> <<supermarketWeekly>> <</if>> <<if $schoolLessonsMissed.housekeeping is undefined>> <<set $schoolLessonsMissed.housekeeping to 0>> <</if>> <!-- 0.5.3.0 make sure named NPCs have .name_known property --> <<if C.npc.Robin.name_known isnot 1>> <<for _i to 0; _i lt $NPCName.length; _i++>> <<switch $NPCName[_i].nam>> <<case "Eden">> <<if $hunterintro is 1>> <<set $NPCName[_i].name_known to 1>> <<else>> <<set $NPCName[_i].name_known to 0>> <</if>> <<default>> <<set $NPCName[_i].name_known to 1>> <</switch>> <</for>> <</if>> <!-- 0.5.3.0 giftedFood $daily variable --> <<if $daily.giftedFood is undefined>> <<set $daily.giftedFood to {}>> <</if>> <!-- 0.5.3.1 makes sure the related $plants names use _ rather than spaces as they get used as object keys --> <<if $plants.cheese_and_crackers.name is "cheese and crackers">> <<run ["cheese_and_crackers", "choc_chip_cookie", "spaghetti_bolognese", "porridge"].forEach(key => $plants[key].name to key)>> <<set $plants.porridge.plural to "servings of porridge">> <<set $plants.chips.plural to "packets of chips">> <<set $plants.yorkshire_pudding.plural to "yorkshire puddings">> <<set $plants.choc_chip_cookie.plural to "chocolate chip cookies">> <</if>> <<if $plants.chilli_con_carne.singular is "serving ">> <<set $plants.chilli_con_carne.singular to "serving of chilli con carne">> <</if>> <!-- $daily.prison not set in at least one save game --> <<set $daily.prison ||= {}>> <!-- Rice does not have a supermarket quantity --> <<set $plants.rice.supermarket ||= 0>> <!-- Avery cards sending face items of the wrong colour --> <<if $avery_cards?.face>> <<facesend `clothesIndex('face',$avery_cards.face)` wardrobe $avery_cards.face.colour $avery_cards.face.accessory_colour>> <<run delete $avery_cards.face>> <</if>> <!-- 0.5.4.0 --> <!-- Fix for child toy typos --> <<if !$objectVersion.toyFix lt 2 or $objectVersion.toyFix is undefined>> <<set _nameChanges to { "Mrs Teddy": "Mrs. Teddy", "Mr Teddy": "Mr. Teddy", "See through dummy": "Clear dummy", "Baby Doll": "Baby doll", "Green race toy car": "Green toy racecar", "Blue race toy car": "Blue toy racecar", "Green Robot": "Green robot", "Red Robot": "Red robot", "Chew Bone": "Chew bone", "Squeaky Sheep": "Squeaky sheep", "Squeaky Chicken": "Squeaky chicken", "Chew Ball": "Chew ball" }>> <<set _nameLowerChanges to { "Mrs Teddy": "Mrs. Teddy", "Mr Teddy": "Mr. Teddy", "See through dummy": "clear dummy", "Green race toy car": "green toy racecar", "Blue race toy car": "blue toy racecar", }>> <<set _colourChanges to { "See through dummy": "light-grey", "White dummy": "light-grey", "Teddy bear": "tan", "Limousine toy car": "grey", "Squeaky Sheep": "light-grey", "Chew Ball": "light-green" }>> <<set _allToys = []>> <<if V.storedChildrenToys and Object.keys(V.storedChildrenToys).length>> <<for _nursery range Object.keys(V.storedChildrenToys)>> <<set _allToys.push(...V.storedChildrenToys[_nursery])>> <</for>> <</if>> <<if V.player.inventory.childrenToys?.length>> <<set _allToys.push(...V.player.inventory.childrenToys)>> <</if>> <<if V.selectedToy?.options>> <<set _allToys.push(...V.selectedToy.options)>> <</if>> <<for _toy range _allToys>> <<if _colourChanges[_toy.name]>> <<set _toy.colour to _colourChanges[_toy.name]>> <</if>> <<if _nameChanges[_toy.name]>> <<set _toy.name_lower to _nameLowerChanges[_toy.name]>> <<set _toy.name to _nameChanges[_toy.name]>> <</if>> <<if !_toy.name_lower>><<set _toy.name_lower to _toy.name.toLowerCase()>><</if>> <</for>> <<set $objectVersion.toyFix to 2>> <</if>> <!-- Avery's seen and tracking the number of rejections of Avery --> <<if C.npc.Avery.init is 1>> <<if $averySeen is undefined>> <<set $averySeen to []>> <</if>> <<if $averyRejected is undefined>> <<set $averyRejected to {}>> <<set $weekly.averyRejected to {}>> <</if>> <!-- Fix NaN values --> <<if isNaN($averyRejected.dropOff)>> <<set $averyRejected.dropOff to 0>> <</if>> <<if isNaN(C.npc.Avery.rage)>> <<set C.npc.Avery.rage to 0>> <</if>> <</if>> <!-- 0.5.3.7: $housekeepingTips not defined --> <<if !$housekeepingTips>> <<set $housekeepingTips to []>> <</if>> <!-- 0.5.4.0 Remove NudeGenderDC -1--> <<if $NudeGenderDC is -1 || $player.gender is "h">> <<set $player.gender to $player.gender_posture>> <<if $NudeGenderDC is -1>><<set $NudeGenderDC to 0>><</if>> <</if>> <<if $farm>> <<if $farm.stock>> <<if $farm_stage gte 6 and $farm.stock.cream is undefined>> <<set $farm.stock.cream to 0>> <</if>> <</if>> <</if>> <!-- 0.5.4.0 object for maze antiques --> <<if $weekly.maze is undefined>> <<set $weekly.maze to {}>> <</if>> <!-- 0.5.4.6 pbdisable never defined if the player started from the 'quick start' tab --> <<if $pbdisable is undefined>> <<set $pbdisable to "t">> <</if>> <!-- 0.5.4.9 remove tanImgEnabled after being disabled and non-functional since September 2024--> <<if $options.tanImgEnabled>> <<run delete $options.tanImgEnabled>> <</if>> <!-- 0.5.4.9 precipitation in player canvas --> /* showSidebarPrecipitation replaced by showSidebarEffects in 0.5.5.4 <<if $options.showSidebarPrecipitation is undefined>> <<set $options.showSidebarPrecipitation to true>> <</if>> */ <!-- 0.5.4.9 Fox additions --> <<if $transformationParts.traits.chase is undefined>> <<set $transformationParts.traits.chase to ($fox gte 4 ? "default" : "disabled")>> <</if>> <!-- 0.5.4.9 Hopeless Cycle challenges --> <<if $hc and !$hcChallenge>> <<set $hcChallenge to { handLongPatrol: false, handStrict: false, handCruel: false, torchFaster: false, torchSnuffer: false, torchDarker: false, faithBanish: false, faithBurden: false, faithBlooms: false, forestFurther: false, forestNoShortcut: false, forestItem: false, waterLeaky: false, waterDirty: false, waterEarly: false, itemDirty: false, itemFind: false, itemNoHide: false, prisonerFood: false, prisonerHealth: false, prisonerClean: false, suspicionIncrease: false, suspicionDecrease: false, suspicionSermon: false, dogsTwice: false, dogsEarly: false, dogsDouble: false, timeSleep: false, timeLonger: false, timePrayer: false }>> <<if typeof $hc.dogs is "string">> <<set $_hcDog to $hc.dogs>> <<set $hc.dogs to []>> <<set $hc.dogs[0] to $_hcDog>> <</if>> <</if>> <!-- 0.5.4.9 replace 'pale slimes' with 'pale slime' --> <<if !$objectVersion.parasitePregnancy>> <<if $sexStats>> <<run ["vagina", "anus"].forEach((orfice) => { const fetuses = V.sexStats[orfice]?.pregnancy?.fetus; if (!fetuses) return; fetuses.forEach((fetus) => { if (fetus.creature && fetus.creature.match(/^pale slimes$/i)) fetus.creature = "Pale Slime"; }); })>> <</if>> <<if $container>> <<run [...V.container.list, "portable"].forEach((location) => { if (!V.container[location]?.creatures) return; const specimenList = Object.values(V.container[location].creatures); specimenList.forEach((specimen) => { if (specimen?.creature && specimen.creature.match(/^pale slimes$/i)) specimen.creature = "Pale Slime"; }); })>> <</if>> <<if $pregnancyStats?.parasiteTypesSeen>> <<run $pregnancyStats.parasiteTypesSeen.deleteWith(type => type.match(/^slimes$/i))>> <<set $pregnancyStats.parasiteTypesSeen.pushUnique("Slime")>> <</if>> <<set $objectVersion.parasitePregnancy to 1>> <</if>> <!-- New wardrobe options --> <<if $wardrobeDefaults is undefined>> <<set $wardrobeDefaults to { "showTraits": false, "extraInfo": false }>> <</if>> <<if $wardrobeDefaults.showTraits is undefined>> <<set $wardrobeDefaults.showTraits to false>> <</if>> <<if $wardrobeDefaults.extraInfo is undefined>> <<set $wardrobeDefaults.extraInfo to false>> <</if>> <!-- add $hourly --> <<if !$hourly>> <<set $hourly to {}>> <</if>> <!-- Move Harper specific variables to Harper object --> <<if $harper_appointments is undefined>> <<set $harper_appointments to {dog: 0}>> <<if $psych is 1>> <<set $harper_appointments.enabled to true>> <</if>> <<if $harperintro is 1>> <<set $harper_appointments.hypnosis_intro to true>> <</if>> <<if $harperexam gte 0>> <<set $harper_appointments.exam to $harperexam>> <<else>> <<set $harper_appointments.exam to 0>> <</if>> <<set $harper_appointments.hypnosis to $hypnosis>> <<set $hypnosis_traits.suggestion to $hypnosis>> <<unset $psych>> <<unset $harperintro>> <<unset $harperexam>> <<unset $hypnosis>> <</if>> <<unset $danger>> <!-- Change all of PCs children with "gray" hair to "grey" hair --> <<for _child range $children>> <<if $children[_child.childId].features.hairColour is "gray">> <<set $children[_child.childId].features.hairColour to "grey">> <</if>> <</for>> <<unset $topless>> <!-- 0.5.5.1, repair Avery recipe request if it pulled a string instead of the setup object --> <<if $avery_mansion?.food and typeof $avery_mansion.food is "string">> <<set $_recipeToFix to $avery_mansion.food>> <<set $avery_mansion.food to Object.entries(clone(setup.plants)).find(([key, item]) => key === $_recipeToFix)[1]>> <</if>> <!-- 0.5.5.1, add kitchen stock to Avery's mansion object --> <<if $avery_mansion and !$avery_mansion.kitchen_stock>> <<set $avery_mansion.kitchen_stock to { normal: ["salt", "vegetable_oil", "bottle_of_milk", "flour", "chicken_egg", "beef", "pork", "truffle", "cream", "tomato", "red_wine", "white_wine", "rice", "chilli_pepper"], requested: [] }>> <<set $avery_mansion.kitchen_made to 0>> <</if>> <!-- 0.5.5.2, proper skyscraper init --> <<if $avery_tower and $avery_tower.effects?.includes("bailey")>> <<set $avery_tower.effects.delete("bailey")>> <<set $avery_tower.effects.pushUnique("Bailey")>> <<set $avery_tower.intro to 1>> <</if>> <!-- 0.5.5.2, fix Avery recipe object --> <<if $avery_mansion and (!$avery_mansion.recipe or typeof $avery_mansion.recipe is "string")>> <<set $avery_mansion.recipe to $avery_mansion.recipe ? [$avery_mansion.recipe] : []>> <</if>> <!-- 0.5.5.3, brown fox init --> <<if $avery_mansion and !$avery_mansion.fox>> <<set $avery_mansion.fox to {}>> <<set $avery_mansion.fox.progress to 0>> <<set $avery_mansion.fox.known to false>> <</if>> <!-- 0.5.5.4, party states overhaul --> <<if $avery_mansion and !$avery_mansion.version>> <<set $avery_mansion.version to 1>> <<if $avery_mansion.rage.party_missed>> <<set $avery_mansion.party_state to "missed">> <<elseif $avery_party_skipped and Time.weekDay is 1>> <<set $avery_mansion.party_state to "skipped">> <<elseif $avery_mansion.guest.includes("Bailey_skip") and Time.weekDay is 1>> <<set $avery_mansion.party_state to "first sunday skip">> <<else>> <<set $avery_mansion.party_state to "waiting">> <</if>> <<run delete V.avery_mansion.rage.party_missed>> <<run delete V.avery_party_skipped>> <<if $avery_mansion.guest.includes("_")>> <<if $avery_mansion.guest.includes("Bailey")>> <<set $avery_mansion.guest to "Bailey">> <<elseif $avery_mansion.guest.includes("Quinn")>> <<set $avery_mansion.guest to "Quinn">> <<elseif $avery_mansion.guest.includes("Remy")>> <<set $avery_mansion.guest to "Remy">> <<elseif $avery_mansion.guest.includes("Briar")>> <<set $avery_mansion.guest to "Briar">> <<elseif $avery_mansion.guest.includes("Harper")>> <<set $avery_mansion.guest to "Harper">> <<elseif $avery_mansion.guest.includes("Jordan")>> <<set $avery_mansion.guest to "Jordan">> <</if>> <</if>> <<if $avery_mansion.injury is true>> <<set $avery_injury to true>> <</if>> <</if>> <<if $daily.avery is undefined>> <<set $daily.avery to {}>> <</if>> <!-- 0.5.5.5, housekeeping events only once a day --> <<if $avery_mansion and $avery_mansion.version is 1>> <<set $avery_mansion.version to 2>> <<set $daily.avery.housekeeping_events to {}>> <</if>> <!-- 0.5.5.5 non-precipitation effects in player canvas --> <<if $options.showSidebarEffects is undefined>> <<set $options.showSidebarEffects to $options.showSidebarPrecipitation or true>> <<unset $options.showSidebarPrecipitation>> <</if>> <!-- 0.5.5.5, farm assault fields_damaged --> <<if $farm and $plots.farm and ($fields_damaged is undefined or typeof $fields_damaged is "number")>> <<if $farm_assault>> <span class="orange italic small-description">Due to changes to the way damaged fields are tracked in update 0.5.5.5, we could not accurately determine which fields were damaged during the assault and which were damaged before the assault or left empty. Because of this, the message at the end of this scene will not accurately portray the outcome. This is purely a cosmetic discrepancy; the farm plots themselves have not changed in any way.</span> <br><br> <<elseif $farm_attacked>> <span class="orange italic small-description">Due to changes to the way damaged fields are tracked in update 0.5.5.5, we could not accurately determine which fields of Alex's farm were damaged during missed assaults and which were damaged before the assault or left empty. Because of this, the message the next time you visit the farm will not accurately portray the outcome. This is purely a cosmetic discrepancy; the farm plots themselves have not changed in any way.</span> <br><br> <</if>> <<set $fields_damaged to []>> <<if $farm_assault or $farm_attacked>> <<for _i to 0; _i lt $plots.farm.length; _i++>> <<if $plots.farm[_i].stage is 0>> <<set $fields_damaged.pushUnique(_i)>> <</if>> <</for>> <</if>> <</if>> <!-- 0.5.5.5, NPC title changes --> <<if $avery_fate is "ascended" and C.npc.Harper.title isnot "silver fox">> <<set C.npc.Avery.title to "crimson hound">> <<set C.npc.Harper.title to "silver fox">> <<set C.npc.Remy.title to "high elk">> <<elseif $avery_fate and $avery_fate isnot "ascended" and C.npc.Remy.title isnot "scarred">> <<set C.npc.Remy.title to "scarred">> <</if>> <<if $auriga_scar is undefined>> <<if $avery_fate is "ascended">> <<set $auriga_scar to 1>> <<else>> <<set $auriga_scar to 0>> <</if>> <</if>> <!-- 0.5.5.8 fix being able to swap out the stones after skyscraper completion --> <<if $avery_fate is "ascended" and $fake_artefact is "Avery">> <<set $auriga_artefact to "Avery">> <<if $fake_artefact>> <<set $fake_artefact to "pc">> <</if>> <</if>> <!-- 0.5.5.9 fix map.available object on older saves --> <<if $availableMapsVersion isnot 4>> <<mapLocations>> <</if>> <!-- 0.5.6.0 Gwylan content --> <<if !$daily.gwylan>> <<set $daily.gwylan to {}>> <</if>> <<if !$hypnosisTimers>> <<set $hypnosisTimers to {}>> <</if>> /* Fixing some clumsy BF code and var nesting */ <<if $avery_mansion?.fox?.wounded>> <<if $avery_mansion.fox.cover_blown_wounded>> <<set $brownFoxCoverBlown to true>> <<run delete $avery_mansion.fox.cover_blown_wounded>> <<set $_woundDays to 40>> <<elseif $avery_mansion.fox.remy_warn>> <<set $_woundDays to 20>> <<else>> <<set $_woundDays to 30>> <</if>> <<set $_woundTimeRemaining to $_woundDays + Time.date.dayDifference(new DateTime($avery_mansion.fox.wounded))>> <<set $brownFoxWoundedTimer to new DateTime(Time.date).addDays($_woundTimeRemaining).timeStamp>> <<run delete $avery_mansion.fox.wounded>> <<if $avery_mansion.fox.unlocked>> <<set $brownFoxWounded to true>> <<run delete $avery_mansion.fox.unlocked>> <</if>> <</if>> <<if C.npc.Gwylan.init is 1 and !$gwylan>> <<set $gwylanSeen to []>> <<set $gwylanTalked to []>> <<set $gwylan to { progress: 0, stage: 0, sea: 0, wary: 0, robin: 0, purged: 0, timer: {}, request: {}, requestCount: 0, requestDone: false, }>> <<set $gwylan.timer.lastSeen to Time.date.timeStamp>> <<if $robin_forest_visited>> <<set $gwylanSeen.pushUnique("robin_halloween")>> <<set $gwylan.robinShop to true>> <<set $gwylan.robin += 5>> <</if>> <<if $gwylanTea>> <<set $gwylanSeen.pushUnique("passout_hot_cold")>> <</if>> <<if C.npc.Gwylan.outfits>> <<initNNPCClothes "Gwylan" "update">> <</if>> <<specialClothesRefresh>> <<set C.npc.Gwylan.pregnancyAvoidance to 0>> /* Convert some brown fox vars to Gwylan vars, if applicable, and apply consequences for previous decisions */ <<if $avery_mansion?.fox>> <<if $avery_mansion.fox.flirt>> <<run delete $avery_mansion.fox.flirt>> <<set $gwylanSeen.pushUnique("bf_flirt")>> <<npcincr Gwylan lust 15>><<npcincr Gwylan dom 2>> <</if>> <<if $avery_mansion.fox.harper_sabotage>> <<run delete $avery_mansion.fox.harper_sabotage>> <<set $gwylanSeen.pushUnique("bf_harper")>> <<npcincr Gwylan dom 1>> <</if>> <<if $avery_mansion.fox.aid>> <<run delete $avery_mansion.fox.aid>> <<set $gwylanSeen.pushUnique("bf_aid")>> <<npcincr Gwylan dom 2>> <</if>> <<if $avery_mansion.fox.drink>> <<run delete $avery_mansion.fox.drink>> <<set $gwylanSeen.pushUnique("bf_drink")>> <<npcincr Gwylan dom 2>> <</if>> <<if $brownFoxCoverBlown>> <<npcincr Gwylan dom -10>> <<if !$avery_fate or $avery_fate is "ascended">> <<set $gwylan.wary += 2>> <</if>> <</if>> <<if $avery_fate is "ascended">> <<set $gwylan.wary += 3>> <<elseif $avery_fate and $avery_mansion.fox.end>> <<npcincr Gwylan dom 3>> <</if>> <<if $avery_mansion?.heist_suspicion isnot undefined>> <<set $gwylan.progress += 2>> <</if>> <</if>> <<if !$gwylanRescue and ($gwylan_aborted isnot undefined or $gwylan_eden_coop)>> <<set $gwylanRescue to { seen: [], failed: ["","Eden","Black Wolf","Wraith"][$gwylan_aborted] || "", count: 0, eden: $gwylan_eden_coop || 0, }>> <</if>> <<unset $gwylan_aborted>><<unset $gwylan_eden_coop>> <</if>> <<if $dateCount.Gwylan is undefined>> <<set $dateCount.Gwylan to 0>> <<set $dateCount.GwylanBeast to 0>> <<set $dateCount.GwylanSex to 0>> <</if>> <!-- Increment in variables-start.twee as well whenever new tending objects are added --> <<if !$objectVersion.plants or $objectVersion.plants lt 1>> <<updatePlants>> <<set $objectVersion.plants to 1>> <</if>> /* Text animation accessibility options */ <<if $options.textAnimations isnot undefined>> <<set $options.textAnimsAll to $options.textAnimations>> <<set $options.textAnimsDrunk to $options.textAnimations>> <<set $options.textAnimsHeat to $options.textAnimations>> <<set $options.textAnimsHypno to $options.textAnimations>> <<run delete $options.textAnimations>> <</if>> /* Forest hunt refactor */ <<if $edenforesthunt isnot undefined or $blackwolfhunt isnot undefined>> <<if $edenforesthunt>> <<set $forestHunter to "Eden">> <</if>> <<if $blackwolfhunt>> <<set $forestHunter to "Black Wolf">> <</if>> <<unset $edenforesthunt>><<unset $blackwolfhunt>> <</if>> <!-- compound variable cleanup --> <<if !$compound>> <<set $compound to { alarm: $compoundalarm || 0, bluff: $compoundbluff is 1 ? true : false, card: $compoundcard || 0, symbol: [], interrogation: {}, theft: { centre: $compoundcentre is 1 ? true : false, smoke: $compoundsmoke is 1 ? true : false, pipes: $compoundpipes is 1 ? true : false, } }>> <<if $compoundmock>> <<set $compound.interrogation to { beg: $compoundbeg || 0, flirt: $compoundflirt || 0, honest: $compoundhonest || 0, lie: $compoundlie || 0, mock: $compoundmock || 0, }>> <</if>> <<if $compoundcentre is 1>> <<set $weekly.compoundCentre to true>> <</if>> <<if $compoundWraith>> <<set $compound.wraith to $compoundWraith>> <</if>> <<if $wraithCompoundSeen>> <<set $compound.wraithSeen to true>> <</if>> <<if $compound_breakout>> <<set $compound.breakout to true>> <</if>> <<run ["compoundalarm", "compoundbluff", "compoundcard", "compoundcentre", "compoundsmoke", "compoundpipes", "compoundbeg", "compoundflirt", "compoundhonest", "compoundlie", "compoundmock", "compoundWraith", "wraithCompoundSeen", "compound_breakout"].forEach(v => delete V[v]);>> <</if>> <!-- 0.5.6.1 Tracking TF history --> <<if !$transformationHistory>> <<set $transformationHistory to []>> <<if $angel gte 6>><<set $transformationHistory.pushUnique("angel")>><</if>> <<if $fallenangel gte 2>><<set $transformationHistory.pushUnique("fallenangel")>><</if>> <<if $demon gte 6>><<set $transformationHistory.pushUnique("demon")>><</if>> <<if $wolfgirl gte 6>><<set $transformationHistory.pushUnique("wolfgirl")>><</if>> <<if $cat gte 6>><<set $transformationHistory.pushUnique("cat")>><</if>> <<if $cow gte 6>><<set $transformationHistory.pushUnique("cow")>><</if>> <<if $harpy gte 6>><<set $transformationHistory.pushUnique("harpy")>><</if>> <<if $fox gte 6>><<set $transformationHistory.pushUnique("fox")>><</if>> <</if>> <!-- 0.5.6.5: Hopeless Cycle persistent memory --> <<if $hcEndings and localStorage.getItem("hopelessCycle") is null>> <<run localStorage.setItem("hopelessCycle", $hcEndings)>> <</if>> <!-- 0.5.6.8: Fix bad end typos --> <<if !$objectVersion.badEnd or $objectVersion.badEnd lt 1>> <<set $objectVersion.badEnd to 1>> <<for _i to 0; _i lt $badEndStats.length; _i++>> <<set $badEndStats[_i].reasonEnd to $badEndStats[_i].reasonEnd?.replace("Escapted", "Escaped")>> <</for>> <</if>> <!-- 0.5.6.7 restore combat lighting --> <<set $options.combatLightEnabled ??= true>> <<set $options.combatLightSpotlight ??= 0.2>> <<set $options.combatLightSpotlightX ??= 118>> <<set $options.combatLightSpotlightY ??= 15>> <<set $options.combatLightOffsetY ??= 52>> <<set $options.combatLightGradient ??= 0>> <<set $options.combatLightGlow ??= 0.1>> <<set $options.combatLightFlat ??= 0>> <<set $options.combatLightTFColor ??= 0.2>> <<unset $options.lightCombat>> <!-- 0.5.6.8 Fix for very old saves with beastMaleChance never defined --> <<if $settings.maleChanceMale is undefined>> <<set $settings.maleChanceMale to 50>> <<set $settings.maleChanceFemale to 50>> <<set $settings.maleChanceSplit to false>> <<set $settings.beastMaleChanceMale to 80>> <<set $settings.beastMaleChanceFemale to 20>> <<set $settings.beastMaleChanceSplit to false>> <</if>> <<if $skin.undefined>> <<run delete $skin.undefined>> <</if>> <!-- 0.5.6.10 Gwylan NaN lust fix --> <<if isNaN(C.npc.Gwylan.lust)>> <<set C.npc.Gwylan.lust to 25>> <</if>> <!-- 0.5.7.0, Avery talk --> <<if $avery_mansion and $avery_mansion.version is 2>> <<set $avery_mansion.version to 3>> <<if $avery_mansion.injury_timer gte 1>> <<set $avery_mansion.injury_stage to "fresh">> <</if>> <<set $avery_mansion.attend to {}>> <</if>> <!-- 0.5.7.1, Avery talk for real --> <<if $avery_mansion and $avery_mansion.version is 3>> <<set $avery_mansion.version to 4>> <<set $daily.avery.talk to {}>> <<set $daily.avery.talk.ignore to false>> <<set $daily.avery.talk.limit to false>> <<set $daily.avery.talk.flirt to false>> <<set $daily.avery.talk.seduce to false>> <<set $daily.avery.talk.count to 0>> <<set $daily.avery.talk.annoyed to 0>> <<set $daily.avery.talk.chat to 0>> <<set $daily.avery.ask to {}>> <<set $daily.avery.ask.science to false>> <<set $daily.avery.ask.maths to false>> <<set $daily.avery.ask.play to false>> <</if>> <!-- 0.5.7.7, Allowing crossdressing reactions --> <<if $passage isnot "Gwylan Ritual Bait Sex Plant" and $genitalReactionDisable>> <<unset $genitalReactionDisable>> <</if>> <</widget>><!-- Low-level canvas renderer composition functions. Example usage: <<set _wetness to 0.9>> <<canvasstart 256 256>> <<run canvaslayer(10, 'img/shirt.png', {blend:'#ff0000',alpha:_wetness})>> <<run canvaslayer(11, 'img/shirt_acc.png', {alpha:_wetness})>> <<run canvaslayer( 8, 'img/skirt.png', {blend:'#ff0000',alpha:_wetness})>> <<canvasdraw>> will create a 256x256 canvas and render 3 images in it: skirt, shirt, and shirt_acc (order by z-index) shirt and skirt are multiplied by red (#ff0000) colour (blend option) the images are semi-transparent (alpha=_wetness=0.9, alpha option) actual <canvas> element will be placed where <<canvasdraw>> is called --> <<widget "canvasstart">> <!-- Creates an off-screen <canvas> element. Usage: <<canvasstart WIDTH HEIGHT FRAMES>> --> <<if _Canvas !== undefined>> <<run throw "Duplicate 'canvasstart' call">> <<elseif _args.length !== 3 or typeof _args[0] !== 'number' or typeof _args[1] !== 'number' or typeof _args[2] !== 'number'>> <<run throw "Invalid 'canvasstart' call">> <<else>> <<set _Canvas = Renderer.createCanvas(_args[0]*_args[2], _args[1])>> <<set _CanvasLayers = []>> <<set _CanvasFrames = _args[2];>> <</if>> <</widget>> <<widget "canvaslayer">> <!-- Prepares a layer to be rendered Usage: <<canvaslayer Z SOURCE [OPTIONS...]*>> where: Z: z-index of the layer (bigger above lower). SOURCE: is URL to the image OPTIONS: Extra CompositeLayerSpec option objects - they are merged, last has most priority Example: <<canvaslayer 20 'img/clothers/upper/schoolshirt/full.png' `{blend:'#00ff00', blendMode:'hard-light'}`>> --> <<twinescript>> var opts = {z:_args[0],src:_args[1]}; for (var i = 2; i < _args.length; i ++) opts = jQuery.extend(opts, _args[i]); _CanvasLayers.push(opts); <</twinescript>> <</widget>> <<widget "canvasanimate">> <!-- Insert HTML <canvas> element right here. Render and animate previously prepared images into it. Usage: <<canvasanimate [CSS_CLASSES]>> --> <<twinescript>> if (!_Canvas) { Errors.report("'canvasdraw' without 'canvasstart'"); } else { Renderer.animateLayers(_Canvas, _CanvasLayers, Renderer.Animations, Renderer.defaultListener); if (typeof _args[0] === 'string') { _Canvas.canvas.className = _args[0]; } output.appendChild(_Canvas.canvas); } <</twinescript>> <<unset _Canvas,_CanvasLayers,_CanvasFrames>> <</widget>> <<widget "canvasdraw">> <!-- Insert HTML <canvas> element right here. Render previously prepared images into it. Usage: <<canvasdraw [FRAMECOUNT] [CSS_CLASSES]>> --> <<twinescript>> if (!_Canvas) { Errors.report("'canvasdraw' without 'canvasstart'"); } else { Renderer.composeLayers(_Canvas, _CanvasLayers, _args[0] || 1, Renderer.defaultListener); if (typeof _args[1] === 'string') { _Canvas.canvas.className = _args[1]; } output.appendChild(_Canvas.canvas); } <</twinescript>> <<unset _Canvas,_CanvasLayers,_CanvasFrames>> <</widget>><!-- <<canvasimg [CSSCLASSES]>> Render full player image. --> <<widget "canvasimg">> <<selectmodel "lighting" "sidebar">> <<rendermodel "lighting">> <<selectmodel "main" "sidebar">> <<modelprepare-player-body>> <<modelprepare-player-clothes>> <<if $options.sidebarAnimations isnot false>> <<animatemodel _args[0]>> <<else>> <<rendermodel _args[0]>> <</if>> <<if playerHasStrapon()>> <<set _modeloptions.crotch_visible to false>> <<set _modeloptions.crotch_exposed to false>> <<if $worn.lower.exposed lte 1 and $lowerwetstage lte 0>> <<set _modeloptions.worn.under_lower.index to 0>> <</if>> <</if>> <</widget>> <!-- Set model options & filters from player body Requires prior <<selectmodel "main">> --> <!-- - ██████ ██ ██████ ████████ ██ ██ ███████ ███████ - ██ ██ ██ ██ ██ ██ ██ ██ ██ - ██ ██ ██ ██ ██ ███████ █████ ███████ - ██ ██ ██ ██ ██ ██ ██ ██ ██ - ██████ ███████ ██████ ██ ██ ██ ███████ ███████ --> <!-- Set model options & filters for player clothes --> <<widget "canvas-player-base-body">> <<selectmodel "lighting">> <<set _modeloptions.lights.gradient.enabled = false>> <<set _modeloptions.lights.flat.enabled = false>> <<rendermodel "lighting">> <<selectmodel "main">> <<set _chestVisible to !$options.neverNudeMenus>> <<modelprepare-player-body>> <!-- Reset covering --> <<set _modeloptions.arm_left to "idle">> <<set _modeloptions.arm_right to "idle">> <<set _modeloptions.angel_wing_left to "idle">> <<set _modeloptions.angel_wing_right to "idle">> <<set _modeloptions.fallen_wing_left to "idle">> <<set _modeloptions.fallen_wing_right to "idle">> <<set _modeloptions.demon_wing_left to "idle">> <<set _modeloptions.demon_wing_right to "idle">> <<set _modeloptions.bird_wing_left to "idle">> <<set _modeloptions.bird_wing_right to "idle">> <!-- Reset face --> <<set _modeloptions.blink to false>> <<set _modeloptions.eyes_half to false>> <<set _modeloptions.brows to "top">> <<set _modeloptions.mouth to "neutral">> <<set _modeloptions.tears to 0>> <<set _modeloptions.blush to 0>> <!-- Reset effects --> <<set _modeloptions.drip_vaginal to "">> <<set _modeloptions.drip_anal to "">> <<set _modeloptions.drip_mouth to "">> <<set _modeloptions.follower to false>> <<set _modeloptions.precipitation to false>> <<set _modeloptions.temperature to false>> <<if $options.neverNudeMenus>> <<set _modeloptions.crotch_visible to false>> <<set _modeloptions.penis to "">> <<if $player.gender_appearance neq "m" or $player.perceived_breastsize gte 3>> <<set _modeloptions.worn.under_upper.index to 12>> <<set _modeloptions.worn.under_upper.colour to "pale white">> <</if>> <<set _modeloptions.worn.under_lower.colour to "pale white">> <<if $player.gender_appearance is "m">> <<set _modeloptions.worn.under_lower.index to 4>> <<else>> <<set _modeloptions.worn.under_lower.index to 1>> <</if>> <</if>> <<if playerHasStrapon()>> <<set _modeloptions.worn.under_lower.index to $worn.under_lower.index>> <<set _modeloptions.worn.under_lower.colour to ($worn.under_lower.colourCustom ? $worn.under_lower.colourCustom : $worn.under_lower.colour)>> <</if>> <<rendermodel>> <</widget>> <<widget "canvas-model-override">> <<if _args[0] is "clear">> <<set $modeloptionsOverride to {}>> <<else>> <<set $modeloptionsOverride[_args[0]] to _args[1]>> <</if>> <</widget>> <<widget "canvas-model-temporary-effect">> <<set _tempEffects ||= {}>> <<set _tempEffects[_args[0]] to _args[1] or true>> <</widget>> <<widget "canvas-model-freeze">> <<if !_canvasFrozen>> <<set _canvasFrozen to []>> <</if>> <<if _args.includes(true)>> <<run _args.filter(x => typeof(x) is "string").forEach(x => _canvasFrozen.pushUnique(x))>> <<else>> <<if _args.includesAny("precipitation")>> <<set _canvasFrozen.pushUnique("rain","snowFront","snowBack","precipitation")>> <</if>> <<if _args.includesAny("blink","player")>> <<set _canvasFrozen.pushUnique("blink","blink-trauma")>> <</if>> <<if _args.includesAny("bodyliquid","player")>> <<set _canvasFrozen.pushUnique("AnalCumDripStart","AnalCumDripVerySlow","AnalCumDripSlow","AnalCumDripFast","AnalCumDripVeryFast", "MouthCumDripStart","MouthCumDripVerySlow","MouthCumDripSlow","MouthCumDripFast","MouthCumDripVeryFast", "VaginalCumDripStart","VaginalCumDripVerySlow","VaginalCumDripSlow","VaginalCumDripFast","VaginalCumDripVeryFast")>> <</if>> <<if _args.includesAny("playerBreath","player")>> <<set _canvasFrozen.pushUnique("playerBreath","playerBreathFast")>> <</if>> <<if _args.includes("all")>> <<set _canvasFrozen.pushUnique("all")>> <</if>> <</if>> <</widget>><!-- High-level canvas model widgets. Example #1: <<selectmodel "main">> /* set model parameters. see model source/docs on required options and filters */ <<set _modeloptions.showEyes to true>> <<modelfilter eyes setup.colours.eyes["hazel"].canvasfilter>> /* show layers */ <<showlayer "base" `{alpha:0.5}`>> <<showlayer "eyes">> /* ignite the sin machine */ <<animatemodel>> /* Will insert <canvas> element here and animate it */ /* <<rendermodel>> can be used for static (non-animated) model */ --> <!-- Example #2. Rerender model with new options. <<selectmodel "main">> /* set options and filters */ <<set _modeloptions.size to 10>> <<animatemodel>> /* _modelclass is used to keep model; preserve it somewhere */ <<set _testmodel to _modelclass>> <<button "Randomize me">> <<set _testmodel.options.size to random(20)>> <<run _testmodel.redraw()>> <</button>> --> <!-- Select model and prepare for rendering <<selectmodel NAME [INSTANCE]>> Parameter INSTANCE is id for caching between passages. Do not render instance multiple times on same passage. --> <<widget "selectmodel">> <<set _modelclass to Renderer.locateModel(_args[0], _args[1])>> <<set _modeloptions to _modelclass.defaultOptions()>> <<run _modelclass.reset()>> <</widget>> <!-- Show layer and optionaly add filters <<showlayer LAYERNAME [...FILTERS]>> --> <<widget "showlayer">> <<run _modelclass.showLayer(_args[0], _args.slice(1))>> <</widget>> <!-- Hide layer <<hidelayer LAYERNAME>> --> <<widget "hidelayer">> <<run _modelclass.hideLayer(_args[0])>> <</widget>> <!-- Set model filter object. <<modelfilter FILTERNAME FILTER>> Will do a copy, so you can safely edit filter options --> <<widget "modelfilter">> <<set _modeloptions.filters[_args[0]] to clone(_args[1])>> <</widget>> <!-- Set model filter option <<modelfilterset FILTERNAME OPTIONNAME OPTIONVALUE>> --> <<widget "modelfilterset">> <<script>> const filter = T.modeloptions.filters[T.args[0]]; if (!filter) filter = T.modeloptions.filters[T.args[0]] = {}; filter[T.args[1]] = T.args[2]; <</script>> <</widget>> <!-- <<animatemodel [CSSCLASS]>> Render model and JS-animate it --> <<widget "animatemodel">> <<script>> const canvas = T.modelclass.canvas || T.modelclass.createCanvas(); T.modelclass.animate(canvas, T.modeloptions, Renderer.defaultListener); canvas.canvas.className = typeof T.args[0] === 'string' ? T.args[0] : ''; output.append(canvas.canvas); <</script>> <</widget>> <!-- <<rendermodel [CSSCLASS] [CSSANIM]>> Render model as a static image If CSSANIM is true (default false), render multiple frames for CSS animation --> <<widget "rendermodel">> <<script>> const canvas = T.modelclass.createCanvas(!!T.args[1]); T.modelclass.render(canvas, T.modeloptions, Renderer.defaultListener); canvas.canvas.className = typeof T.args[0] === 'string' ? T.args[0] : ''; output.append(canvas.canvas); <</script>> <</widget>><<widget "clothingCaptionText">> <<run window.outfitChecks()>> <<if _fullyNaked is false>> <<set _clothingCaptionItems to []>> <<set _finally to ".">> <<set _text_output to "">> <<set _wearing to "<<possessedWord 'You'>> are " + (_topless ? "<span class='pink'>topless</span>, " : "") + "wearing ">> <<if !_overNaked>> <<clothingCaptionTextOver>> <</if>> <<if !_middleNaked>> <<clothingCaptionTextMiddle>> <</if>> <<clothingCaptionTextUnder>> <<set _text_output to _wearing>> <<if _clothingCaptionItems.length is 1>> <<set _text_output += (_nothingBut ? "nothing but" : "only")>> <</if>> <<set _text_output += formatList(_clothingCaptionItems) + _finally>> <<print _text_output>> <<clothingCaptionTextGenitals>> <<clothingCaptionTextHandheld>> <<elseif playerHasButtPlug()>> <<set $_a to ($worn.butt_plug.name is "anal beads"? "": "a ")>> <<print `<<possessedWord 'You'>> wear ${$_a}$worn.butt_plug.name.`>> <</if>> <<clothingCaptionTextNothing>> <<clothingCaptionTextMask>> <<if window.checkForExposedClothing()>> <br> <<clothingCaptionTextStrip>> <</if>> <<if isHermOrCrossdresser() or ($player.gender_appearance isnot $player.gender and $player.gender isnot "n")>> <br> <<clothingCaptionTextGender>> <</if>> <<if playerIsPregnant() and playerAwareTheyArePregnant() and playerBellySize() gt 7 or $bellySizeDebug>> <br> <<clothingCaptionTextPreggy>> <</if>> <<if $follower>> <!-- lack of line break intentional, line break present in widget --> <<clothingCaptionTextFollower>> <</if>> <</widget>> <<widget "pushClothingCaption">> <<set $_output to " ">> <<set $_wornItem to $worn[_args[0]]>> /* word 1: article, example: "a" or "an" or "a pair of" */ <<if def _args[1]>> <<set $_output += _args[1] + " ">> <<else>> <<set $_wornItemWord to setup.clothes[_args[0]][clothesIndex(_args[0],$_wornItem)].word>> <<set $_output += ($_wornItemWord isnot "n" ? $_wornItemWord : "") + " ">> <</if>> /* word 2: damage, example "frayed" */ <<run $_output += window.integrityWord($_wornItem,_args[0])>> /* word 3: colour, example: "red" */ <<run $_output += window.clothesColour($_wornItem) + " ">> /* word 4: clothes name, example: "school shirt" */ <<set $_output += $_wornItem.name>> /* push */ <<set _clothingCaptionItems.pushUnique($_output)>> <</widget>> <<widget "clothingCaptionTextOver">><<silently>> <<if $worn.over_upper.name isnot "naked">> <!--Upper and maybe lower--> <<pushClothingCaption "over_upper">> <</if>> <<if $worn.over_lower.name isnot "naked" and !_overOutfit>> <!-- Lower, if not outfit --> <<pushClothingCaption "over_lower">> <</if>> <</silently>><</widget>> <<widget "clothingCaptionTextMiddle">><<silently>> <<if $worn.upper.name isnot "naked">> <!--Upper and maybe lower--> <<pushClothingCaption "upper">> <</if>> <<if $worn.lower.name isnot "naked" and !_middleOutfit>> <!-- Lower, if not outfit --> <<pushClothingCaption "lower">> <</if>> <</silently>><</widget>> <<widget "clothingCaptionTextUnder">><<silently>> <<set $_exposed to (_overNaked and _middleNaked)>> <<if _underNaked>> <!--Not wearing--> <<if ($worn.over_upper.name isnot "naked" or $worn.upper.name isnot "naked") and ($worn.over_lower.name isnot "naked" or $worn.lower.name isnot "naked")>> <<set _finally to " <span class='purple'>with nothing beneath.</span>">> <<elseif $worn.over_upper.name is "naked" or $worn.over_lower.name is "naked" or $worn.upper.name is "naked" or $worn.lower.name is "naked">> <<set _finally to " <span class='purple'>and no underwear.</span>">> <</if>> <<else>> <<if $_exposed>> <<set _wearing to "<span class='pink'><<possessedWord 'You' 'pink'>> are " + (_topless ? "topless, " : "") + "wearing ">> <<set _finally to ".</span>">> <</if>> <<if $worn.under_upper.name isnot "naked" and $worn.under_lower.name isnot "naked">> <!--Both--> <<set _nothingBut to $_exposed and _underOutfit>> <<pushClothingCaption "under_upper">> <<if !_underOutfit>> <<pushClothingCaption "under_lower">> <</if>> <<elseif $worn.under_upper.name isnot "naked">> <!--Upper only--> <<pushClothingCaption "under_upper">> <<set _nothingBut to $_exposed>> <<if !$_exposed and !_bottomless>> <<set _finally to ". <span class='purple'><<possessedWord 'You' 'purple'>> are not wearing " + ($player.gender_appearance isnot "m" ? "any panties" : "undies") + ".</span>">> <</if>> <<elseif $worn.under_lower.name isnot "naked">> <!--Lower only--> <<set $_pair to ($worn.under_lower.name.last() is "s" ? "a pair of" : "<<word under_lower>>")>> <<pushClothingCaption "under_lower" $_pair>> <<set _nothingBut to $_exposed>> <<if !$_exposed and !_topless and $player.breastsize gte 4 and ($player.sex isnot "m" or $backgroundTraits.includes("crossdresser"))>> <<set _finally to ". <span class='purple'><<possessedWord 'You' 'purple'>> are not wearing a bra.</span>">> <</if>> <</if>> <</if>> <</silently>><</widget>> <<widget "clothingCaptionTextHandheld">> <<silently>> <<if $worn.handheld.name isnot "naked" and !pcAreArmsBound("right")>> <<set $_text_output to `<<possessedWord 'You'>> are carrying ${$worn.handheld?.pattern_caption ? ($worn.handheld.pattern.match(/^[aeiou]/i) ? "an " : "a ") + $worn.handheld.pattern : "<<word 'handheld'>>"} ${$worn.handheld.name}.`>> <</if>> <</silently>> <<if $_text_output>><<print $_text_output>><</if>> <</widget>> <<widget "clothingCaptionTextGenitals">><<silently>> <<if $worn.genitals.name isnot "naked">> <<if _bottomless>> <<set $_text_output to " <span class='red'><<possessedWord 'Your' 'red'>> <<clothingCaptionChastityEffect>> <<genitalsintegrity>> $worn.genitals.name <<if playerChastity('anus')>>with an anal shield<</if>><<if playerHasButtPlug()>> and $worn.butt_plug.name give<<else>> gives<</if>> <<possessedWord 'you' 'red'>> no comfort.</span>">> <<else>> <<set $_text_output to " <<possessedWord 'You'>> wear <<genitalsword>> <<clothingCaptionChastityEffect>> <<genitalsintegrity>> $worn.genitals.name<<if playerChastity('anus')>> with an anal shield<</if>><<if playerHasButtPlug()>> and $worn.butt_plug.name<</if>>.">> <</if>> <<elseif playerHasButtPlug()>> <<set $_a to ($worn.butt_plug.name is "anal beads"? "": "a ")>> <<set $_text_output to ` <<possessedWord 'You'>> wear ${$_a}$worn.butt_plug.name.`>> <</if>> <</silently>><<if $_text_output>><<print $_text_output>><</if>> <</widget>> <<widget "clothingCaptionTextMask">> <<if $worn.face.type.includes("mask")>> <br> <<possessedWord 'Your'>> identity is concealed by <<possessedWord 'your'>> <<faceintegrity>> $worn.face.name. <</if>> <</widget>> <<widget "clothingCaptionTextNothing">><<silently>> <<if _fullyNaked>> <<if $worn.genitals.name isnot "naked">> <<set $_text_output to "<<possessedWord 'Your' 'red'>> <<clothingCaptionChastityEffect>> <<genitalsintegrity>> $worn.genitals.name <<if playerChastity('anus')>>with an anal shield<</if>> gives <<possessedWord 'you' 'red'>> no comfort.">> <<else>> <<set $_text_output to "<<possessedWord 'You' 'red'>> are completely naked!">> <</if>> <<elseif _bottomless>> <<set $_text_output to "<<possessedWord 'Your' 'red'>> bottom half is completely exposed!">> <</if>> <</silently>><<if $_text_output>><span class="red"><<print $_text_output>></span><</if>><</widget>> <<widget "clothingstatecompare">> /* One argument, a clothing article whose state you want to compare against its original state. Must be the ENTIRE variable, not .name! */ /* Returns the difference between the current and base states. Negative means it's pulled down, positive means it's pulled up. */ /* If the clothing was pulled to the side, this returns 0. It would also return 0 if the current state is the base state. */ <<set _compare_result to _clothing_levels.indexOf($worn[_args[0]].state) - _clothing_levels.indexOf(setup.clothes[_args[0]][clothesIndex(_args[0],$worn[_args[0]])].state_base)>> <<if $worn[_args[0]].state is "totheside">><<set _compare_result to 0>><</if>> <</widget>> <<widget "clothingCaptionTextStrip">> <<set _captionCount to 0>> <<set _clothing_levels to [0,"ankles","knees","thighs","waist","midriff","chest"]>> <<clothingCaptionExposed "upper">> <<clothingCaptionExposed "lower">> /* insert extra newlines after the caption, if there is one, for better style (disabled as adds too many) <<if _captionCount gte 1>> <br><br> <</if>> */ <<unset _captionCount>> <</widget>> <<widget "clothingCaptionExposed">> <<set $_clothes to {"naked": [], "wet": [], "up": [], "down": [], "totheside": [], "exposed": []}>> <<set $_plural to {"naked": false, "wet": false, "up": false, "down": false, "totheside": false, "exposed": false}>> <<set $_isExposed to false>> <<set $_revealColour to "purple">> <<set $_highestLevelCovered to "">> <<set $_clothingRevealType to {}>> <<set $_outfitType to _args[0]>> /* Find which clothes are failing to cover the player */ <<for $_i, $_outfitLayer range ["over", "", "under"]>> <<set $_clothing to [$_outfitLayer, $_outfitType].filter(Boolean).join("_")>> <<set _wetstage to $_outfitLayer + $_outfitType + "wetstage">> <<set $_wornClothing to $worn[$_clothing]>> <<if $_wornClothing.type.includes("naked")>> <<set $_clothingRevealType[$_clothing] to "naked">> <<continue>> <<elseif $_wornClothing.state isnot setup.clothes[$_clothing][clothesIndex($_clothing,$_wornClothing)].state_base>> <<clothingstatecompare $_clothing>> <<if _compare_result gte 1>> <<set $_clothingRevealType[$_clothing] to "up">> <<elseif _compare_result lte -1>> <<set $_clothingRevealType[$_clothing] to "down">> <<else>> <<set $_clothingRevealType[$_clothing] to "totheside">> <</if>> <<elseif $_wornClothing.exposed is 2>> <<set $_clothingRevealType[$_clothing] to "exposed">> <<elseif V[_wetstage] gte 3>> <<set $_clothingRevealType[$_clothing] to "wet">> <<else>> <<set $_clothingRevealType[$_clothing] to false>> <<set $_highestLevelCovered to $_wornClothing.name>> <<break>> /* don't check clothing below the current layer if this layer is blocking visibility */ <</if>> <<set $_revealType to $_clothingRevealType[$_clothing]>> <<set $_clothes[$_revealType].pushUnique($_wornClothing.name)>> <<set $_plural[$_revealType] to ($_plural[$_revealType] or ($_wornClothing.plural is 1))>> <<set $_isExposed to true>> <</for>> <<if $_isExposed>> /* Find which areas are exposed */ <<if $_highestLevelCovered is "">> <<silently>> <<if $_outfitType is "upper">> <<breasts>><<set $_undertext to _text_output>> <<else>> <<set $_revealColour to "pink">> <<genitals>><<set $_undertext to _text_output>> <</if>> <</silently>> <<else>> <<set $_undertext to $_highestLevelCovered>> <</if>> /* Piece together the caption */ <<set _output to "">> <<for $_type range ["wet", "up", "down", "totheside", "exposed"]>> <<if $_clothes[$_type].length lte 0>> <<continue>> <</if>> <<set $_verbIsPlural to ($_clothes[$_type].length gte 2 or $_plural[$_type])>> <<switch $_type>> <<case "wet">> <<set $_verb to ($_verbIsPlural ? " are drenched, " : " is drenched, ")>> <<case "exposed">> <<set $_verb to ($_verbIsPlural ? " have been pulled aside, " : " has been pulled aside, ")>> <<case "up">> <<set $_verb to ($_verbIsPlural ? " have been pulled up, " : " has been pulled up, ")>> <<case "down">> <<set $_verb to ($_verbIsPlural ? " have been pulled down, " : " has been pulled down, ")>> <<case "totheside">> <<set $_verb to ($_verbIsPlural ? " have been pulled to the side, " : " has been pulled to the side, ")>> <</switch>> <<if _output isnot "">><<set _output += " and <<possessedWord 'your'>> ">><</if>> <<set _output += formatList($_clothes[$_type]) + $_verb>> <</for>> /* Print the caption */ <<set _captionCount += 1>> <br> <<possessedWord 'Your'>> _output <span @class="$_revealColour">revealing <<possessedWord 'your' $_revealColour>> $_undertext.</span> <</if>> <</widget>> <<widget "clothingCaptionTextGender">><<silently>> <<if $player.gender_appearance is "f" and ($player.gender is "m" or (isHermOrCrossdresser() and $player.sex isnot "f"))>> <<if $exposed gte 2 and $player.gender is "m">> <<set $_text_output to `The way <<possessedWord 'you' 'pink'>> look, people will think <<possessedWord "you're" 'pink'>> a girl!`>> <<elseif $breastindicator is 1 and $player.perceived_breastsize gt 1 and $player.gender is "m">> <<set $_text_output to `<<possessedWord 'Your' 'pink'>> exposed breasts will make people think <<possessedWord "you're" 'pink'>> a girl!`>> <<elseif nudeGenderAppearance() is "m" and $player.gender is "f">> <<set $_text_output to `If people see <<possessedWord 'your' 'pink'>> genitals, they will think <<possessedWord "you're" 'pink'>> a boy!`>> <<elseif $player.gender is "m">> <<set $_text_output to `The way <<possessedWord "you're" 'pink'>> dressed, people will think <<possessedWord "you're" 'pink'>> a girl!`>> <</if>> <<elseif $player.gender_appearance is "m" and ($player.gender is "f" or (isHermOrCrossdresser() and $player.sex isnot "m"))>> <<if $exposed gte 2>> <<set $_text_output to `The way <<possessedWord 'you' 'pink'>> look, people will think <<possessedWord "you're" 'pink'>> a boy!`>> <<elseif $breastindicator is 1 and $player.perceived_breastsize lte 1 and $player.gender is "f">> <<set $_text_output to `<<possessedWord 'Your' 'pink'>> exposed flat chest will make people think <<possessedWord "you're" 'pink'>> a boy!`>> <<elseif nudeGenderAppearance() is "f" and $player.gender is "m">> <<set $_text_output to `If people see <<possessedWord 'your' 'pink'>> genitals, they will think <<possessedWord "you're" 'pink'>> a girl!`>> <<elseif $player.gender is "f">> <<set $_text_output to `The way <<possessedWord "you're" 'pink'>> dressed, people will think <<possessedWord "you're" 'pink'>> a boy!`>> <</if>> <</if>> <</silently>><<if $_text_output>><span class="pink"><<print $_text_output>></span><</if>><</widget>> <<widget "clothingCaptionTextPreggy">><<silently>> <<if playerBellyVisible()>> <<set $_textCol to "pink">> <<if _fullyNaked>> <<set $_text_output to `<<possessedWord 'Your' $_textCol>> complete lack of clothing makes <<possessedWord 'your' $_textCol>> <<bellyDescription "pc">> more obvious.`>> <<elseif $worn.upper.type.includes("naked") and $worn.over_upper.type.includes("naked")>> <<if $worn.under_upper.type.includes("naked")>> <<set $_text_output to `<<possessedWord 'Your' $_textCol>> exposed upper body makes <<possessedWord 'your' $_textCol>> <<bellyDescription "pc">> more obvious.`>> <<else>> <<set $_text_output to `<<possessedWord 'Your' $_textCol>> $worn.under_upper.name does nothing to conceal <<possessedWord 'your' $_textCol>> <<bellyDescription "pc">>.`>> <</if>> <<elseif $worn.upper.type.includes("bellyShow") and $worn.over_upper.type.includes("naked")>> <<set $_text_output to `<<possessedWord 'Your' $_textCol>> $worn.upper.name shows off <<possessedWord 'your' $_textCol>> <<bellyDescription "pc">>.`>> <<elseif $worn.upper.type.includes("bellyHide") and $worn.over_upper.type.includes("naked")>> <<set $_text_output to `<<possessedWord 'Your' $_textCol>> <<bellyDescription "pc">> is too large for <<possessedWord 'your' $_textCol>> $worn.upper.name to hide.`>> <<elseif $worn.lower.type.includes("bellyHide") and $worn.over_upper.type.includes("naked")>> <<set $_text_output to `<<possessedWord 'Your' $_textCol>> <<bellyDescription "pc">> is too large for <<possessedWord 'your' $_textCol>> $worn.lower.name to hide.`>> <<else>> <<set $_text_output to `<<possessedWord 'Your' $_textCol>> <<bellyDescription "pc">> is visible.`>> <</if>> <<else>> <<set $_textCol to "blue">> <<if $worn.upper.type.includes("bellyHide")>> <<set $_text_output to `<<possessedWord 'Your' $_textCol>> $worn.upper.name hides <<possessedWord 'your' $_textCol>> <<bellyDescription "pc">>.`>> <<elseif $worn.lower.type.includes("bellyHide")>> <<set $_text_output to `<<possessedWord 'Your' $_textCol>> $worn.lower.name hides <<possessedWord 'your' $_textCol>> <<bellyDescription "pc">>.`>> <<elseif !$worn.over_upper.type.includes("naked")>> <<set $_text_output to `<<possessedWord 'Your' $_textCol>> $worn.over_upper.name hides <<possessedWord 'your' $_textCol>> <<bellyDescription "pc">>.`>> <<else>> <<set $_text_output to `<<possessedWord 'Your' $_textCol>> <<bellyDescription "pc">> is not visible.`>> <</if>> <</if>> <</silently>><<if $_text_output>><span @class=$_textCol><<print $_text_output>></span><</if>><</widget>> <<widget "clothingCaptionChastityEffect">><<silently>> <<if $worn.genitals.name is "chastity parasite">> <<if $earSlime.defyCooldown>> <<set $_text_output to (integrityWord(V.worn.genitals, "genitals") ? "compressed," : "compressed")>> <<elseif $earSlime.vibration and $earSlime.vibration lte 20>> <<set $_text_output to (integrityWord(V.worn.genitals, "genitals") ? "pulsating," : "pulsating")>> <<elseif $earSlime.vibration>> <<set $_text_output to (integrityWord(V.worn.genitals, "genitals") ? "vibrating," : "vibrating")>> <</if>> <</if>> <</silently>><<if $_text_output>><<print $_text_output>><</if>> <</widget>> <<widget "clothingCaptionTextFollower">> <<switch $follower.name>> <<case "witchprisoner">> <br> <<possessedWord 'You'>> carry <<= $prisoner.name>> in <<possessedWord 'your'>> arms. <<case "witchstanding">> <br> <<= $prisoner.name.toUpperFirst()>> stands beside <<possessedWord 'you'>>. <<default>> <<run console.log("follower " + $follower.name + " has no clothingCaptionTextFollower text!")>> <</switch>> <</widget>><<widget "listoutfits">> <label class="no-numberify"><<link "Create new set from current clothing">><<toggleclass "#newClothingSetFromCurrent" "hidden">><</link>></label> | <label class="no-numberify"><<link "Edit all sets">><<overlayReplace "outfitEditor">><</link>></label> <br> <div id="newClothingSetFromCurrent" class="wardrobeSubSection hidden"> <<wardrobeNewOutfit>> <br> </div> <br> <label><<radiobutton "$delete_outfit" "none" checked>> Wear</label> | <label><<radiobutton "$delete_outfit" 1>> Delete</label> | <label><<radiobutton "$delete_outfit" 2>> Overwrite with current clothing</label> <br><br> <!-- List the currently saved outfits --> <div class="outfitContainer no-numberify"> <<for _index, $_outfit range $outfit>> <<if $_outfit.location and $_outfit.location isnot $wardrobe_location>> <<continue>> <</if>> <<set _outfitname to $_outfit.name + ($_outfit.colors is false ? "" : " [C]") + ($_outfit.location is undefined ? "" : " [L]")>> <<capture _index>> <<button _outfitname>><<set $wear_outfit to _index>><<updatewardrobe "outfits">><</button>> <</capture>> <</for>> </div> <</widget>> <<widget "listoutfitsPassage">> <<set $wardrobe_location to _args[0]>> <<set _store_location to _args[1] || _args[0]>> <<set $_indent to _args[2] || false>> <<wardrobeSelection true>> <<for _index, _outfit range $outfit>> <<if (_outfit.location and _outfit.location isnot $wardrobe_location) or _outfit.type.includes("swim") or _outfit.type.includes("sleep")>> <<continue>> <</if>> <<capture _index _outfit>> <<if $_indent>><<ind>><</if>> <<if _outfit.name is currentOutfit()>> <span class="grey"><<print _outfit.name>> (Equipped)</span> <<else>> <<link [["Wear "+_outfit.name|$passage]]>> <<if clothingInStorage(_store_location).length is 0>> <<storesave _store_location>> <</if>> <<set $wearoutfittext to _outfit.name + " clothes">> <<set $eventskip to 1>> <<set $wear_outfit to _index>> <<set $storeLocation to _args[0]>> <</link>> <</if>> <br> <</capture>> <</for>> <</widget>> <<widget "listsleepoutfits">> <<switch _args[0]>> <<case "Farm Bed">> <<set _passage to "Farm Bed">> <<set $wardrobe_location to "alexFarm">> <<set $storeLocation to "Farm Bed">> <<case "prison bed">> <<set _passage to "Prison Bed">> <<set $wardrobe_location to "prison">> <<set $storeLocation to "prison bed">> <<case "Robin Bed">> <<set _passage to "Robin Room Bed">> <<set $wardrobe_location to "wardrobe">> <<set $storeLocation to "bed">> <<case "Temple Bunk Bed">> <<set _passage to "Temple Bunk Bed">> <<set $wardrobe_location to "temple">> <<set $storeLocation to "Temple Bunk Bed">> <<case "Pirate Bed Lie">> <<set _passage to "Pirate Bed Lie">> <<set $wardrobe_location to "pirate">> <<set $storeLocation to "Pirate Bed Lie">> <<case "Mansion Bed">> <<set _passage to "Mansion Bed">> <<set $wardrobe_location to "avery_mansion">> <<set $storeLocation to "Mansion Bed">> <<default>> <<set _passage to "Bed">> <<set $wardrobe_location to "wardrobe">> <<set $storeLocation to "bed">> <</switch>> <<wardrobeSelection true>> <<if $earSlime.alwaysSleepNaked is false or $hypnosis_traits.silence>> <<for _index, $_outfit range $outfit>> <<if $_outfit.type.includes("sleep")>> <<if _passage is "Bed">> <<furnitureicon _bed.iconFile>> <<elseif _passage is "Prison Bed">> <<prisonicon "bed">> <<elseif _passage is "Asylum Bed">> <<bedicon "hospital">> <<elseif $location is "alex_cottage">> <<set _farmbed to (isLoveInterest("Alex")) ? "alex" : "farm">> <<bedicon _farmbed>> <<elseif $location is "avery_mansion">> <<icon "avery_bedroom.png">> <<else>> <<bedicon>> <</if>> <<capture _index>> <<set _outfitname to $_outfit.name + ($_outfit.colors is false ? "" : " [C]")>> <<link [["Wear "+_outfitname+" and climb in bed"|_passage]]>><<if _args[0] is "Robin Bed">><<storeon "Robin's Room">><</if>><<set $wear_outfit to _index>><<saveTempHairStyle>><</link>> <</capture>> <br> <</if>> <</for>> <<elseif $outfit.find(outfitSet => outfitSet.type.includes("sleep"))>> <<icon "cross.png" "infront">> <<if _passage is "Bed">> <<furnitureicon _bed.iconFile>> <<elseif _passage is "Prison Bed">> <<prisonicon "bed">> <<elseif _passage is "Asylum Bed">> <<bedicon "hospital">> <<else>> <<bedicon>> <</if>> <<if $possessed>> <span class="purple">The slime in your head is silent.</span> <br> <<else>> <span class="purple">The slime is not allowing you to sleep with anything on.</span> <br> <</if>> <</if>> <</widget>> <<widget "listswimoutfits">> <<set $wardrobe_location to _args[0]>> <<set _store_location to _args[1] || _args[0]>> <<set $_indent to _args[2] || false>> <<wardrobeSelection true>> <<for _index, _outfit range $outfit>> <<if (_outfit.location and _outfit.location isnot $wardrobe_location) or !_outfit.type.includes("swim")>> <<continue>> <</if>> <<capture _index _outfit>> <<if $_indent>><<ind>><</if>> <<if _outfit.name is currentOutfit()>> <span class="grey"><<print _outfit.name>> (Equipped)</span> <<else>> <<link [["Wear "+_outfit.name|$passage]]>> <<storesave _store_location>> <<set $wearoutfittext to _outfit.name>> <<set $eventskip to 1>> <<set $wear_outfit to _index>> <<set $storeLocation to _args[0]>> <</link>> <</if>> <br> <</capture>> <</for>> <</widget>> <<widget "listdancingclothes">> <<set _store_location to _args[0]>> <<set _slot to "under_upper">> <<for _index, _outfit range $wardrobe[_slot].sort((a, b) => (a.name > b.name) ? 1 : -1)>> <<if !_outfit.type.includes("dance")>> <<continue>> <</if>> <<capture _outfit>> <<if !$wardrobe.under_lower.find(item => item.variable is _outfit.variable)>> <span class="grey"><<print _outfit.name>> (Broken)</span> <br> <<elseif _outfit.name isnot _prevName>> <<set _prevName to _outfit.name>> <<if _outfit.name is $worn.under_upper.name>> <span class="grey"><<print _outfit.name>> (Equipped)</span> <<else>> <<link [["Wear "+_outfit.name|$passage]]>> <<if clothingInStorage(_store_location).length is 0>> <<storesave _store_location>> <<set $wearoutfittext to _outfit.name>> <</if>> <<set $eventskip to 1>> <<set _item_index to $wardrobe[_slot].indexOf(_outfit)>> <<generalWearFromWardrobe _slot _item_index>> <</link>> <</if>> <br> <</if>> <</capture>> <</for>> <</widget>> <<widget "radiooutfits">> <<if $options.listboxOutfitsEnabled>> <<set _dropdownOptions to {}>> <<for _index, $_outfit range $outfit>> <<if $_outfit.location and $_outfit.location isnot $wardrobe_location>> <<continue>> <</if>> <<set _displayName to $_outfit.name>> <<if _displayName in _dropdownOptions>> <<set _displayName to $_outfit.name + " (" + _index + ")" >> <</if>> <<set _dropdownOptions[_displayName] to _index>> <</for>> Get dressed: <<listbox "$wear_outfit">> <<option "Dress like you were" "clotheson" selected>> <<optionsfrom _dropdownOptions>> <</listbox>> <<else>> <<for _index, $_outfit range $outfit>> <<if $_outfit.location and $_outfit.location isnot $wardrobe_location>> <<continue>> <</if>> <<capture _index>> <label>Wear $_outfit.name <<radiobutton "$wear_outfit" _index>></label> | <</capture>> <</for>> <label>Dress like you were <<radiobutton "$wear_outfit" "clotheson" checked>></label> <</if>> <</widget>> <<widget "deleteoutfit">> <<if $delete_outfit is 1 and $wear_outfit isnot "none">> <<set $outfit.deleteAt($wear_outfit)>> <<set $wear_outfit to "none">> <</if>> <</widget>> <<widget "saveTempHairStyle">> <<set $tempSavedHairStyles to {hairtype:$hairtype, fringetype:$fringetype, hairposition:$hairposition}>> <</widget>> <<widget "loadTempHairStyle">> <<if $tempSavedHairStyles>> <<set $hairtype to $tempSavedHairStyles['hairtype']>> <<set $fringetype to $tempSavedHairStyles['fringetype']>> <<set $hairposition to $tempSavedHairStyles['hairposition']>> <<unset $tempSavedHairStyles>> <</if>> <</widget>> <<widget "wearoutfit">> /* Strip worn strap-on before equipping outfit */ <<if $wear_outfit isnot "none" and $worn.under_lower.type.includes("strap-on")>> <<set _strap to $player.inventory.sextoys[$worn.under_lower.name].find(toy => toy.worn)>> <<set _strap.worn to false>> <<set $worn.under_lower to clone(setup.clothes.under_lower[0])>> <</if>> <<set _selectedWardrobe to selectWardrobe()>> <<updateWornClothingLocation $wardrobe_location>> <<deleteoutfit>> <<overwriteoutfit>> <<set $delete_outfit to "none">> <<if $wear_outfit is "clotheson">> <<storeon $storeLocation>> <<elseif $wear_outfit isnot "none">> <<set _equip to setup.clothingLayer.all>> <<set _equipSkip to {"over_upper":false, "over_lower":false, "upper":false, "lower":false, "under_upper":false, "under_lower":false, "over_head":false, "head":false, "face":false, "neck":false, "hands":false, "handheld":false, "legs":false, "feet":false}>> <<set _storeItemSkip to {"over_upper":false, "over_lower":false, "upper":false, "lower":false, "under_upper":false, "under_lower":false, "over_head":false, "head":false, "face":false, "neck":false, "hands":false, "handheld":false, "legs":false, "feet":false}>> <<set _equipDamageValue to {"over_upper":3, "over_lower":3, "upper":3, "lower":3, "under_upper":3, "under_lower":3, "over_head":1, "head":1, "face":1, "neck":1, "hands":1, "handheld":1, "legs":1, "feet":1}>> <<set _corruptionEquipSkip to ["over_upper","over_lower","upper", "lower", "under_upper", "under_lower"]>> <<set _towels to ["towel top","large towel","towel skirt"]>> <<set _notEquipped to {}>> <<for $_slot range _equip>> /*Skip slots that have been equipped with*/ <<if _equipSkip[$_slot] is true>> <<continue>> <</if>> <<set $_incomingItemName to $outfit[$wear_outfit][$_slot]>> /*Skip slots that have not been defined*/ <<if $_incomingItemName is undefined>> <<continue>> <</if>> /*Check for items that are cursed*/ <<unset _preventItemEquip>> <<if $worn[$_slot].cursed is 1>> <<set _preventItemEquip to true>> <<elseif $worn[$_slot].outfitPrimary isnot undefined>> <<set _preventItemEquip to Object.entries($worn[$_slot].outfitPrimary).some(([slot, name]) => { if (!["broken", "split"].includes(name) and $worn[slot].cursed is 1) _preventItemEquip = true; })>> <</if>> /* Equip saved outfit's strap-on. If saved outfit doesn't have a strap-on or any underwear, and player was wearing a strap, re-equip it */ <<if $_slot is "under_lower" and ($_incomingItemName.includes("strap-on") or ($_incomingItemName is "naked" and _strap))>> <<set _equippedStrap to $_incomingItemName is "naked" ? _strap.name : $_incomingItemName>> <<set _toy to $player.inventory.sextoys[_equippedStrap]>> <<set _toySetup to setup.sextoys.find(t => t.name === _equippedStrap)>> <<if !_toy or _toy?.length is 0>> <<set _notEquipped[$_slot] to {"name": _equippedStrap, "reason": "strapon"}>> <<elseif _toySetup>> <<set _index to _toySetup.clothes_index>> <<if $outfit[$wear_outfit].colors and $_incomingItemName isnot "naked">> <<set _strap to _strap or _toy.find(toy => toy.colour === $outfit[$wear_outfit].colors.under_lower[0])>> <<if _strap>> <<set $worn[$_slot] to clone(setup.clothes[$_slot][_index])>> <<set $worn[$_slot].colour to $outfit[$wear_outfit].colors.under_lower[0]>> <<set _strap.worn to true>> <<else>> <<set _notEquipped[$_slot] to {"name": _equippedStrap, "reason": "strapon"}>> <</if>> <<else>> <<set $worn[$_slot] to clone(setup.clothes[$_slot][_index])>> <<set $worn[$_slot].colour to _toy[0].colour>> <<set _toy[0].worn to true>> <</if>> <<else>> <<exit '<span class="red">ERROR: Equipped _equippedStrap does not exist. Please report.</span>'>> <</if>> <<continue>> <</if>> <<set $_storeLocation to ($storeLocation ? $storeLocation : $wardrobe_location)>> <<if _preventItemEquip is true>> <<if $_incomingItemName is "naked">> /*Can't unequip cursed item */ <<set _notEquipped[$_slot] to {"name": setup.clothes[$_slot][clothesIndex($_slot,$worn[$_slot])].name, "reason": "cursed unequip"}>> <<else>> /*Can't swap cursed item for anything else */ <<set _notEquipped[$_slot] to {"name": $_incomingItemName, "reason": "cursed slot"}>> <</if>> <<else>> <<if $_incomingItemName is "naked">> <<generalUndress $_storeLocation $_slot>> <<elseif _towels.includes($_incomingItemName)>> <<generalUndress $_storeLocation $_slot>> <<if $worn[$_slot].name is "naked">> <<switch $_incomingItemName>> <<case "towel top">> <<set $worn.upper to clone(setup.clothes.upper[3])>><<set $worn.upper.colour to clone($worn.upper.colour_options.random())>> <<case "large towel">> <<generalUndress $_storeLocation "lower">> <<if $worn.lower.name is "naked">> <<set $worn.upper to clone(setup.clothes.upper[14])>><<set $worn.upper.colour to clone($worn.upper.colour_options.random())>> <<set $worn.lower to clone(setup.clothes.lower[15])>><<set $worn.lower.colour to clone($worn.upper.colour)>> <<set _equipSkip.lower to true>> <</if>> <<case "towel skirt">> <<set $worn.lower to clone(setup.clothes.lower[3])>><<set $worn.lower.colour to clone($worn.lower.colour_options.random())>> <</switch>> <</if>> <<else>> <<set _foundEquip to null>><<set _lastResort to null>> <<unset _randomColourData>> <<unset _randomColourAccData>> <<for $_equipIndex, $_wardrobeItem range _selectedWardrobe[$_slot]>> <<if $_incomingItemName isnot $_wardrobeItem.name or ($_wardrobeItem.outfitSecondary and !["broken", "split"].includes($_wardrobeItem.outfitSecondary[1]))>> <<continue>> <</if>> /* Check for saved colors in clothing set */ <<set $_outfitColors to $outfit[$wear_outfit].colors>> <<if $_outfitColors>> <<if $_outfitColors[$_slot][0] is 0 and setup.clothes[$_slot].find(item => item.name === $_wardrobeItem.name).colour_options.length>> <<set $_outfitColors[$_slot][0] to setup.clothes[$_slot].find(item => item.name === $_wardrobeItem.name).colour_options[0]>> <</if>> <<if $_outfitColors[$_slot][1] is 0 and setup.clothes[$_slot].find(item => item.name === $_wardrobeItem.name).accessory_colour_options.length>> <<set $_outfitColors[$_slot][1] to setup.clothes[$_slot].find(item => item.name === $_wardrobeItem.name).accessory_colour_options[0]>> <</if>> <<if $_outfitColors[$_slot][2] is 0 and setup.clothes[$_slot].find(item => item.name === $_wardrobeItem.name).pattern_options?.length>> <<set $_outfitColors[$_slot][2] to setup.clothes[$_slot].find(item => item.name === $_wardrobeItem.name).pattern_options[0]>> <</if>> /* Start of checking for random colours */ <<set _randomColourListItem to $_wardrobeItem.name>> <<if $_outfitColors[$_slot][0] is "random" or $_outfitColors[$_slot][1] is "random">> <<set $_randomColourItems to _selectedWardrobe[$_slot].filter(item => item.name === T.randomColourListItem)>> /* Ensures that non-random colours are accounted for*/ <<if $_outfitColors[$_slot][0] and $_outfitColors[$_slot][0] isnot "random">> <<set _tempColour to $_outfitColors[$_slot][0]>> <<set $_randomColourItems to $_randomColourItems.filter(item => item.colour === T.tempColour)>> /* Keep only the specific custom colour in the random pool */ <<if $_outfitColors[$_slot][0] is "custom">> <<set _tempColourCustom to $_outfitColors[$_slot+"custom"][0]>> <<set $_randomColourItems to $_randomColourItems.filter(item => item.colourCustom === _tempColourCustom)>> <</if>> <<unset _tempColour>> <</if>> <<if $_outfitColors[$_slot][1] and $_outfitColors[$_slot][1] isnot "random">> <<set _tempColour to $_outfitColors[$_slot][1]>> <<set $_randomColourItems to $_randomColourItems.filter(item => item.accessory_colour === T.tempColour)>> /* Keep only the specific custom accessory colour in the random pool */ <<if $_outfitColors[$_slot][1] is "custom">> <<set _tempColourCustom to $_outfitColors[$_slot+"custom"][1]>> <<set $_randomColourItems to $_randomColourItems.filter(item => item.accessory_colourCustom === _tempColourCustom)>> <</if>> <<unset _tempColour>> <</if>> <<if $_outfitColors[$_slot][2] and $_outfitColors[$_slot][2] isnot "random">> <<set _tempColour to $_outfitColors[$_slot][2]>> <<set $_randomColourItems to $_randomColourItems.filter(item => item.pattern === T.tempColour)>> <<unset _tempColour>> <</if>> <</if>> /* Picks the random colours*/ <<if $_outfitColors[$_slot][0] is "random" and !_randomColourData>> <<set _randomColourList to []>> <<if $_randomColourItems?.length>> /* This used to be "T.randomColourList.pushUnique", but we need to account for custom colours */ <<run $_randomColourItems.forEach(item => { var colourData = {colour: item.colour}; if (item.colour === "custom") { colourData.colourCustom = item.colourCustom; } if (!T.randomColourList.some((item) => item.colour === colourData.colour && item.colourCustom === colourData.colourCustom)) { T.randomColourList.push(colourData); } })>> <</if>> <<if _randomColourList.length>> /* _randomColourData might look like this: {colour:"red"} or {colour:"custom",colourCustom:"filter..."} */ <<set _randomColourData to _randomColourList[random(0, _randomColourList.length - 1)]>> <<set $_randomColourItems to $_randomColourItems.filter(item => item.colour === T.randomColourData.colour && item.colourCustom === T.randomColourData.colourCustom)>> <</if>> <</if>> <<if $_outfitColors[$_slot][1] is "random" and !_randomColourAccData>> <<set _randomColourAccList to []>> <<if $_randomColourItems?.length>> <<run $_randomColourItems.forEach(item => { var colourData = {accessory_colour: item.accessory_colour}; if (item.accessory_colour === "custom") { colourData.accessory_colourCustom = item.accessory_colourCustom; } if (!T.randomColourAccList.some((item) => item.accessory_colour === colourData.accessory_colour && item.accessory_colourCustom === colourData.accessory_colourCustom)) { T.randomColourAccList.push(colourData); } })>> <</if>> <<if _randomColourAccList.length>> /* _randomColourAccData might look like this: {accessory_colour:"red"} or {accessory_colour:"custom",accessory_colourCustom:"filter..."} */ <<set _randomColourAccData to _randomColourAccList[random(0, _randomColourAccList.length - 1)]>> <</if>> <</if>> <<unset _randomColourListItem>> <<if $_outfitColors[$_slot][2] is "random" and !_randomColourPatternData>> <<set _randomColourPatternList to []>> <<if $_randomColourItems?.length>> <<run $_randomColourItems.forEach(item => { var colourData = {pattern: item.pattern}; if (!T._randomColourPatternList.some((item) => item.pattern === colourData.pattern)) { T.randomColourPatternList.push(colourData); } })>> <</if>> <<if _randomColourPatternList.length>> <<set _randomColourPatternData to _randomColourPatternList[random(0, _randomColourPatternList.length - 1)]>> <</if>> <</if>> <<unset _randomColourListItem>> /* Skips over items that do not match the random colours */ <<if _randomColourData?.colour isnot $_wardrobeItem.colour and $_outfitColors[$_slot][0] isnot 0 and $_outfitColors[$_slot][0] isnot $_wardrobeItem.colour>> <<continue>> <</if>> <<if _randomColourAccData?.accessory_colour isnot $_wardrobeItem.accessory_colour and $_outfitColors[$_slot][1] isnot 0 and $_outfitColors[$_slot][1] isnot $_wardrobeItem.accessory_colour>> <<continue>> <</if>> <<if _randomColourPatternData?.pattern isnot $_wardrobeItem.pattern and $_outfitColors[$_slot][2] isnot 0 and $_outfitColors[$_slot][2] isnot $_wardrobeItem.pattern>> <<continue>> <</if>> /* End of checking for random colours */ <<set $_outfitCustomColors to $_outfitColors[$_slot+"custom"] || [undefined, undefined]>> <<if $_wardrobeItem.colour is "custom" and $_outfitColors[$_slot][0] isnot "random" and $_wardrobeItem.colourCustom isnot undefined and $_wardrobeItem.colourCustom isnot $_outfitCustomColors[0]>> /* this item is not a match, move on to the next item */ <<continue>> <</if>> <<if $_wardrobeItem.accessory_colour is "custom" and $_outfitColors[$_slot][1] isnot "random" and $_wardrobeItem.accessory_colourCustom isnot undefined and $_wardrobeItem.accessory_colourCustom isnot $_outfitCustomColors[1]>> <<continue>> <</if>> <</if>> /*Check for preggy restriction*/ <<if playerBellySize() gte 12 and $_wardrobeItem.type.includes("constricting")>> <<if $_wardrobeItem.type.includes("chest_bind")>> <<set _notEquipped[$_slot] to {"name": $_incomingItemName, "reason": "constrictingChest"}>> <<else>> <<set _notEquipped[$_slot] to {"name": $_incomingItemName, "reason": "constricting"}>> <</if>> <<break>> <</if>> /*Check for slime corruption*/ <<if _corruptionEquipSkip.includes($_slot) and $earSlime.corruption gte 10>> <<if $earSlime.forcedCommando isnot undefined and ($_slot is "under_lower" or ($_wardrobeItem.outfitPrimary and $_wardrobeItem.outfitPrimary.under_lower and !["broken","split"].includes($_wardrobeItem.outfitPrimary.under_lower)))>> <<if $_wardrobeItem.type.includes("naked") or (_earSlimeEnableSwimwear and $_wardrobeItem.type.includes("swim")) or (_earSlimeEnableDancewear and $_wardrobeItem.type.includes("dance"))>> <<elseif $earSlime.forcedCommando gt 0>> <<set _notEquipped[$_slot] to {"name": $_incomingItemName, "reason": "corruption_slime_deny_commando"}>> <<break>> <<else>> <<run delete $earSlime.forcedCommando>> <</if>> <<elseif $_wardrobeItem.reveal lt earSlimeCorruptionClothes() and (["prison", "asylum"].includes($location) or !_allowSchoolClothes) and !$_wardrobeItem.type.includesAny("event")>> <<set _notEquipped[$_slot] to {"name": $_incomingItemName, "reason": "corruption_slime_deny"}>> <<break>> <<elseif $earSlime.forcedDressing and $_wardrobeItem.gender isnot $earSlime.forcedDressing.type and $_wardrobeItem.gender isnot "n" and !$_wardrobeItem.type.includesAny("event")>> <<if $earSlime.forcedDressing.days gt 0>> <<set _notEquipped[$_slot] to {"name": $_incomingItemName, "reason": "corruption_slime_deny_forcedDressing"}>> <<break>> <<else>> <<run delete $earSlime.forcedDressing>> <</if>> <</if>> <</if>> /*Finds the least damaged outfit if the current clothing item is the main part and sets it as a last resort in case an undamaged one isn't found*/ <<set _damage to 0>> <<if $_wardrobeItem.outfitPrimary isnot undefined>> <<set _outfitPrimaryWearOutfit to $_wardrobeItem.outfitPrimary>> /*Check for damaged parts*/ <<for $_outfitSlot, $_outfitPieceName range _outfitPrimaryWearOutfit>> <<if $_outfitPieceName is "broken" or $_outfitPieceName is "split">> <<set _damage += _equipDamageValue[$_outfitSlot]>> <</if>> <</for>> <<if _damage gt 0>> <<if _lastResort is null or _damage lt _lastResort.damage>> <<set _lastResort to { damage: clone(_damage), id: clone($_equipIndex) }>> <</if>> <<continue>> <</if>> <</if>> <<if _damage is 0>> <<set _foundEquip to {}>> <<set _foundEquip[$_slot] to clone($_equipIndex)>> <<break>> <</if>> <</for>> /*If the main outfit has not been found, use the last resort*/ <<if _foundEquip is null and _lastResort isnot null>> <<if !($worn[$_slot].name is $_incomingItemName and $worn[$_slot].one_piece is 1)>> <<set _foundEquip to {}>> <<set _foundEquip[$_slot] to _lastResort.id>> <</if>> <</if>> /*Ensure at this point, the main piece of clothing has been found*/ <<if _foundEquip isnot null>> /*Undress equip*/ <<generalUndress $_storeLocation $_slot>> /*Find all the outfit pieces now the main least damaged piece has been found if the clothing is part of an outfit*/ <<set $_foundPrimary to _selectedWardrobe[$_slot][_foundEquip[$_slot]]>> <<if $_foundPrimary and $_foundPrimary.outfitPrimary isnot undefined>> /*Check these values once, outside of the loop, so we don't continuously check them on every loop iteration*/ <<set $_primaryColourIsCustom to ($_foundPrimary.colour is "custom")>> <<set $_primaryAccColourIsCustom to ($_foundPrimary.accessory_colour is "custom")>> <<for $_outfitSlot, $_outfitPieceName range $_foundPrimary.outfitPrimary>> <<if $worn[$_outfitSlot].cursed is 1>> <<set _preventItemEquip to true>> <<break>> <</if>> <<if $_outfitPieceName is "broken" or $_outfitPieceName is "split">> <<continue>> <</if>> <<if !_storeItemSkip[$_outfitSlot]>> <<generalUndress $_storeLocation $_outfitSlot>> <</if>> <<set $_itemFound to false>> <<for _index, $_possiblePiece range _selectedWardrobe[$_outfitSlot]>> <<if $_outfitPieceName isnot $_possiblePiece.name>> <<continue>> <</if>> /*Skip broken and split pieces*/ <<if $_possiblePiece.outfitSecondary[1] is "broken" or $_possiblePiece.outfitSecondary[1] is "split">> <<continue>> <</if>> /*Skip items that don't have matching colours*/ <<if $_foundPrimary.colour isnot $_possiblePiece.colour or ($_foundPrimary.accessory isnot 0 and ($_possiblePiece.accessory isnot 0 and $_foundPrimary.accessory_colour isnot $_possiblePiece.accessory_colour))>> <<continue>> <</if>> /*Skip items that don't have matching custom colours*/ <<if $_primaryColourIsCustom and ($_foundPrimary.colourCustom is undefined or $_foundPrimary.colourCustom isnot $_possiblePiece.colourCustom)>> <<continue>> <</if>> <<if $_primaryAccColourIsCustom and ($_foundPrimary.accessory isnot 0 and ($_possiblePiece.accessory isnot 0 and ($_foundPrimary.accessory_colourCustom is undefined or $_foundPrimary.accessory_colourCustom isnot $_possiblePiece.accessory_colourCustom)))>> <<continue>> <</if>> /*Skip items that don't have matching patterns*/ <<if $_possiblePiece.pattern and $_possiblePiece.pattern isnot 0 and $_foundPrimary.pattern isnot $_possiblePiece.pattern>> <<continue>> <</if>> /*Found the correct item*/ <<set _foundEquip[clone($_outfitSlot)] to clone(_index)>> <<set _equipSkip[$_outfitSlot] to true>> <<set $_itemFound to true>> <</for>> <<if $_itemFound is false>> /*None were found, error in code/save?*/ <<set _notEquipped[$_outfitSlot] to {"name": $_incomingItemName, "reason": "not found piece"}>> <</if>> <</for>> <</if>> /*Equip all the clothing items*/ <<if !_preventItemEquip>> <<for $_outfitslot, _index range _foundEquip>> <<set $worn[$_outfitslot] to clone(_selectedWardrobe[$_outfitslot][_index])>> <<set $worn[$_outfitslot].lastTaken to $wardrobe_location>> <<set _selectedWardrobe[$_outfitslot].deleteAt(_index)>> <<run resetClothingState($_outfitslot)>> <</for>> /*If the worn item was a hoodie, make sure the hood is in the correct position*/ <<if $_slot is "upper" and $worn.upper.hoodposition and $worn.upper.outfitPrimary.head isnot "broken" and $worn.upper.outfitPrimary.head isnot "split">> <<if $worn.upper.hoodposition isnot outfitHoodPosition($outfit[$wear_outfit])>> <<toggleHood>> <<set _equipSkip["head"] to ($worn.upper.hoodposition is "up" ? true : false)>> <</if>> <</if>> <<else>> <<set _notEquipped[$_slot] to {"name": $_incomingItemName, "reason": "cursed slot"}>> <</if>> <<else>> <<if $worn[$_slot].name is $_incomingItemName>> <<if !_notEquipped[$_slot]>> <<set _notEquipped[$_slot] to {"name": $_incomingItemName, "reason": "not found replacement"}>> <</if>> /*If the worn item was a hoodie, make sure the hood is in the correct position*/ <<if $_slot is "upper" and $worn.upper.hoodposition and $worn.upper.outfitPrimary.head isnot "broken" and $worn.upper.outfitPrimary.head isnot "split" and $worn.upper.hoodposition isnot outfitHoodPosition($outfit[$wear_outfit])>> <<toggleHood>> <</if>> <<if $wardrobe_location isnot "wardrobe">> <<set _makeTempClothing to 1>> <<storeItem $wardrobe_location $_slot>> <</if>> <<else>> <<if !_notEquipped[$_slot]>> <<set _notEquipped[$_slot] to {"name": $_incomingItemName, "reason": "not found"}>> <</if>> <<if $wardrobe_location isnot "wardrobe" and $worn[$_slot].name isnot "naked">> <<set _makeTempClothing to 1>> <<storeItem $wardrobe_location $_slot>> <</if>> <</if>> <</if>> <</if>> <</if>> <</for>> <<if $outfit[$wear_outfit].hairStyle>> /*Update Hairstyle*/ <<set $_outfitHair to $savedHairStyles[$outfit[$wear_outfit].hairStyle]>> <<set $hairtype to $_outfitHair.hairtype>> <<set $fringetype to $_outfitHair.fringetype>> <<set $hairposition to $_outfitHair.hairposition>> <</if>> <</if>> <<if $worn.under_lower.type.includes("naked")>> <<set $worn.under_lower.exposedType to "notWorn">> <</if>> <<if $wear_outfit isnot "none" and _notEquipped>> <<if Object.values(_notEquipped).length gt 0>> <<set _resultStrings to {}>> <<set _locationName to ($wardrobes[$wardrobe_location] is undefined ? "wardrobe" : $wardrobe_location)>> <<set _wardrobeName to $wardrobes[_locationName].name + (!$wardrobes[_locationName].name.includes("locker") ? " wardrobe" : "")>> <<run Object.entries(_notEquipped).forEach(([slot, notEquippedItem]) => { switch (notEquippedItem.reason) { case "not found": if (_resultStrings.notFound === undefined) { _resultStrings.notFound = { "start": "You were unable to find any ", "joiner": "or", "end": " in your " + _wardrobeName + ".", "names": [], "color": "purple" } } _resultStrings.notFound.names.push(notEquippedItem.name); break; case "not found replacement": if (_resultStrings.notFoundReplacement === undefined) { _resultStrings.notFoundReplacement = { "start": "You were unable to find any ", "joiner": "or", "end": " in your " + _wardrobeName + " to replace what you're already wearing.", "names": [], "color": "lewd" } } _resultStrings.notFoundReplacement.names.push(notEquippedItem.name); break; case "constricting": if (_resultStrings.constricting === undefined) { _resultStrings.constricting = { "start": "Your <<bellyDescription 'pc'>> is too large to wear your ", "joiner": "and", "end": ".", "names": [], "color": "red" } } _resultStrings.constricting.names.push(notEquippedItem.name); break; case "constrictingChest": if (_resultStrings.constrictingChest === undefined) { _resultStrings.constrictingChest = { "start": "Your pregnant body is too sensitive to wear your ", "joiner": "and", "end": ".", "names": [], "color": "red" } } _resultStrings.constrictingChest.names.push(notEquippedItem.name); break; case "corruption_slime_deny": if (_resultStrings.corruption_slime_deny === undefined) { _resultStrings.corruption_slime_deny = { "start": "You were unable to equip your ", "joiner": "and", "end": " as the slime in your ear did not permit it.", "names": [], "color": "red" } } _resultStrings.corruption_slime_deny.names.push(notEquippedItem.name); break; case "corruption_slime_deny_commando": if (_resultStrings.corruption_slime_deny_commando === undefined) { _resultStrings.corruption_slime_deny_commando = { "start": "You were unable to equip your ", "joiner": "and", "end": " as the slime in your ear is forcing you to go commando.", "names": [], "color": "red" } } _resultStrings.corruption_slime_deny_commando.names.push(notEquippedItem.name); break; case "corruption_slime_deny_forcedDressing": if (_resultStrings.corruption_slime_deny_forcedDressing === undefined) { _resultStrings.corruption_slime_deny_forcedDressing = { "start": "You were unable to equip your ", "joiner": "and", "end": ` as the slime in your ear is only permitting more ${$earSlime.forcedDressing.type is "f" ? "feminine" : "masculine"} clothing.`, "names": [], "color": "red" } } _resultStrings.corruption_slime_deny_forcedDressing.names.push(notEquippedItem.name); break; case "cursed slot": if (_resultStrings.cursed === undefined) { _resultStrings.cursed = { "start": "You were unable to equip your ", "joiner": "and", "end": " due to not being able to remove what you're already wearing.", "names": [], "color": "red" } } _resultStrings.cursed.names.push(notEquippedItem.name); break; case "cursed unequip": if (_resultStrings.cursedUnequip === undefined) { _resultStrings.cursedUnequip = { "start": "You were unable to unequip your ", "joiner": "and", "end": " due to not being able to remove it on your own.", "names": [], "color": "red" } } _resultStrings.cursedUnequip.names.push(notEquippedItem.name); break; case "not found piece": if (V.worn[slot].name === notEquippedItem.name) break; if (_resultStrings.notFoundPiece === undefined) { _resultStrings.notFoundPiece = { "start": "You were unable to fully equip your ", "joiner": "and", "end": " due to an unexpected issue (Error in save most likely). Discarding and replacing related items should deal with the issue.", "names": [], "color": "red" } } _resultStrings.notFoundPiece.names.push(notEquippedItem.name); break; case "strapon": if (V.worn[slot].name === notEquippedItem.name) break; if (_resultStrings.strapon === undefined) { _resultStrings.strapon = { "start": "You were unable to find a matching ", "joiner": "or", "end": " in your sex toy inventory.", "names": [], "color": "lewd" } } _resultStrings.strapon.names.push(notEquippedItem.name); break; } })>> <<for $_clothingStrings range _resultStrings>> <<if $_clothingStrings.names.length gt 0>> <<set _string to $_clothingStrings.start>> <<set _string += formatList($_clothingStrings.names, $_clothingStrings.joiner)>> <<set _string += $_clothingStrings.end>> <span @class="$_clothingStrings.color">_string</span> <br> <</if>> <</for>> <</if>> <</if>> <<if $wear_outfit isnot "none" and $outfit[$wear_outfit]?.positions>> <<for $_slot range setup.clothingLayer.all>> <<if $worn[$_slot].altposition and $outfit[$wear_outfit].positions[$_slot]>> <<set $worn[$_slot].altposition to $outfit[$wear_outfit].positions[$_slot]>> <</if>> <<if $worn[$_slot].altsleeve and $outfit[$wear_outfit].positions.sleeves>> <<set $worn[$_slot].altsleeve to $outfit[$wear_outfit].positions.sleeves>> <</if>> <</for>> <</if>> <<set $wear_outfit to "none">> <<unset $storeLocation>> <</widget>> <<widget "overwriteoutfit">> <<if $delete_outfit is 2 and $wear_outfit isnot "none">> <<set _equip to setup.clothingLayer.all>> <<set _outfit to $outfit[$wear_outfit]>> <<set _positions to {}>> <<for $_slot range _equip>> <<set _outfit[$_slot] to $worn[$_slot].name>> <<if _outfit.colors>> <<set _outfit.colors[$_slot] to [clone($worn[$_slot].colour),clone($worn[$_slot].accessory_colour)]>> <<if $worn[$_slot].pattern>> <<run _outfit.colors[$_slot].push(clone($worn[$_slot].pattern))>> <</if>> <<if $worn[$_slot].colour is "custom" or $worn[$_slot].accessory_colour is "custom">> <<run _outfit.colors[$_slot+"custom"] to [clone($worn[$_slot].colourCustom),clone($worn[$_slot].accessory_colourCustom)]>> <</if>> <</if>> <<if $worn[$_slot].altposition>> <<set _positions[$_slot] to $worn[$_slot].altposition>> <</if>> <<if $worn[$_slot].altsleeve>> <<set _positions.sleeves to $worn[$_slot].altsleeve>> <</if>> <</for>> <<if Object.keys(_positions).length > 0>> <<set _outfit.positions to _positions>> <</if>> <<set $wear_outfit to "none">> <</if>> <</widget>> <<widget "outfitEditor">> <<link "Filter Options">><<toggleclass "#outfitEditorFilter" "hidden">><</link>> | <<link "Help">><<toggleclass "#outfitEditorHelp" "hidden">><</link>> <div id="outfitEditorHelp" class="hidden"> All options change the settings the moment you change the option, however, they will only save or be updated in the passage only if you first change the passage (Leave the wardrobe or click on 'Update Wardrobe' at the bottom of this overlay). <br><br> Changing the clothing items may result in the colour settings being reset for that item. This is caused from going from an item with colour options to one that doesn't have any colour options. Just because you can change it to some item's doesn't mean you have access to every item. <br><br> Location is where the Outfit is unique to and will only show for that wardrobe. Please note, where it says 'No access', this is either based on the multiple wardrobe setting or may not be available till a later version of the game. In most cases the 'Orphanage' wardrobe will be shared when Multiple wardrobes is set to 'isolated only' or is disabled. <br><br> </div> <<if _outfitEditorFilter is undefined>> <<outfitEditorDefaultFilter>> <</if>> <<outfitEditorUpdateFilter>> <<set _subState to {}>> <div id="outfitEditorFilter" class="hidden"> <<outfitEditorFilter>> </div> <div id="outfitEditor"> <<outfitEditorList>> </div> <<link [[Update wardrobe|$passage]]>><</link>> <</widget>> <<widget "outfitEditorFilter">> <h4>Filter</h4> <label>Items Per Page: <<numberslider "$outfitEditorPerPage" $outfitEditorPerPage 5 20 1>></label> <br><br> Type: <label><<checkbox "_outfitEditorFilter.type.normal" false true autocheck>> Normal</label> | <label><<checkbox "_outfitEditorFilter.type.sleep" false true autocheck>> Sleep</label> | <label><<checkbox "_outfitEditorFilter.type.swim" false true autocheck>> Swim</label> | <label><<checkbox "_outfitEditorFilter.type.school" false true autocheck>> School (Only used by starter outfits, may be added later)</label> | <br><br> Location: <<for $_label, $_value range _outfitEditorFilter.location>> <<set $_name to $wardrobes[$_label] ? $wardrobes[$_label].name : $_label>> <<set $_var to "_outfitEditorFilter.location." + $_label>> <<capture $_var>> <label> <<checkbox $_var false true autocheck>> <<print $_name>> <<if (!$settings.multipleWardrobes or ($settings.multipleWardrobes is "isolated" and !$_value.isolated)) and $_label isnot "wardrobe">> (No access) <</if>> </label> | <</capture>> <</for>> <br><br> Colour Saved in Outfit: <label><<checkbox "_outfitEditorFilter.colors.notSaved" false true autocheck>> No</label> | <label><<checkbox "_outfitEditorFilter.colors.saved" false true autocheck>> Yes</label> | <br><br> <<link "Update Filter">> <<outfitEditorUpdateFilter>> <<replace "#outfitEditor">><<outfitEditorList>><</replace>> <</link>> | <<link "Reset Filter">> <<outfitEditorDefaultFilter>> <<outfitEditorPageSetup>> <<replace "#outfitEditorFilter">><<outfitEditorFilter>><</replace>> <<replace "#outfitEditor">><<outfitEditorList>><</replace>> <</link>> <br><br> <</widget>> <<widget "outfitEditorDefaultFilter">> <<if $outfitEditorPerPage is undefined>> <<set $outfitEditorPerPage to 10>> <</if>> <<set _outfitEditorFilter to { type:{ normal: true, sleep: true, swim: true, school: true, }, location:{ All: true, disabled: true, }, colors:{ notSaved: true, saved: true }, outfitIndex:[], }>> <<for $_label, $_value range $wardrobes>> <<if $_value.unlocked>> <<set _outfitEditorFilter.location[$_label] to true>> <</if>> <</for>> <<set _outfitEditorFilter.outfitIndex to []>> <<run $outfit.forEach((item, index) => {T.outfitEditorFilter.outfitIndex.push(index);})>> <</widget>> <<widget "outfitEditorUpdateFilter">> <<set _outfitEditorFilter.outfitIndex to []>> <<run $outfit.forEach((item, index) => { if(T.outfitEditorFilter.type[item.type[0]]){ if((T.outfitEditorFilter.location.All && item.type[0].location === undefined) || T.outfitEditorFilter.location[item.type[0].location]){ if((!item.colors && T.outfitEditorFilter.colors.notSaved) || (item.colors && T.outfitEditorFilter.colors.saved)){ T.outfitEditorFilter.outfitIndex.push(index); } } } })>> <<outfitEditorPageSetup>> <</widget>> <<widget "outfitEditorPageSetup">> <<set _outfitEditorPages to { page:1, perPage:$outfitEditorPerPage }>> <<set _outfitEditorPages.maxPages to Math.ceil(_outfitEditorFilter.outfitIndex.length / _outfitEditorPages.perPage)>> <</widget>> <<widget "outfitEditorList">> <<outfitEditorPageControls>> <div id="outfitEditorList"> <<set $_start to (_outfitEditorPages.page - 1) * _outfitEditorPages.perPage>> <<for $_i to $_start; $_i lt $_start + _outfitEditorPages.perPage; $_i++>> <<set _index to _outfitEditorFilter.outfitIndex[$_i]>> <<if !$outfit[_index]>> <<break>> <</if>> <div @id="'outfitItem-' + _index" class="outfitEditorItem"> <<outfitEditorItem _index>> </div> <</for>> </div> <<outfitEditorPageControls>> <</widget>> <<widget "outfitEditorPageControls">> <<if _outfitEditorPages.page gt 1>> <<link "Previous">> <<set _outfitEditorPages.page-->> <<replace "#outfitEditor">><<outfitEditorList>><</replace>> <</link>> | <<else>> Previous | <</if>> Page <<print _outfitEditorPages.page>>/<<print _outfitEditorPages.maxPages>> | <<if _outfitEditorPages.page lt _outfitEditorPages.maxPages and _outfitEditorPages.maxPages gt 1>> <<link "Next">> <<set _outfitEditorPages.page++>> <<replace "#outfitEditor">><<outfitEditorList>><</replace>> <</link>> <<else>> Next <</if>> <</widget>> <<widget "outfitEditorItem">> <<capture _args[0]>> <<set _subState[_args[0]] to "">> <div class="name"> <<set $_name to "$outfit["+_args[0]+"].name">> <label>Name: <<textbox $_name $outfit[_args[0]].name>></label> <!--Runs too many times for some reason, needs to be improved--> <<run $(() => { $('.outfitEditorItem .name .macro-textbox').on('input change', e => { let index = e.target.name.replace(/\D/g,''); V.outfit[index].name = V.outfit[index].name.replace(/[^a-zA-Z\u4e00-\u9fa5 0-9.!()]+/g,"").substr(0,30); }).trigger('input change') })>> </div> <div> <<set $_type to "$outfit["+_args[0]+"].type[0]">> <label> Type: <<listbox $_type autoselect>> <<option "Normal" "normal">> <<option "Sleep" "sleep">> <<option "Swim" "swim">> <<option "School" "school">> <</listbox>> </label> </div> <div> <<set $_location to "$outfit["+_args[0]+"].location">> <<set $_locations to {}>> <<for $_label, $_value range $wardrobes>> <<if $_value.unlocked>> <<set _warning to "">> <<if (!$settings.multipleWardrobes or ($settings.multipleWardrobes is "isolated" and !$_value.isolated)) and $_label isnot "wardrobe">> <<set _warning to " (No access)">> <</if>> <<set $_locations[$_value.name + _warning] to $_label>> <</if>> <</for>> <label> Location: <<listbox $_location autoselect>> <<option "All" undefined>> <<option "Disabled" "disabled">> <<optionsfrom $_locations>> <</listbox>> </label> </div> <div> Items: <<link "View">> <<set _subId to "#outfitItemSub-" + _args[0]>> <<if _subState[_args[0]] is "itemEdit">> <<set _subState[_args[0]] to "">> <<replace _subId>><</replace>> <<else>> <<set _subState[_args[0]] to "itemEdit">> <<replace _subId>><<outfitEditorItemClothes _args[0]>><</replace>> <</if>> <</link>> </div> <div> Colours: <<print $outfit[_args[0]].colors ? "Enabled" : "Disabled">> | <<if $outfit[_args[0]].colors>> <<link "Disable">> <<set $outfit[_args[0]].colors to false>> <<set _id to "#outfitItem-" + _args[0]>> <<replace `_id`>><<outfitEditorItem _args[0]>><</replace>> <</link>> | <<link "Edit">> <<set _subId to "#outfitItemSub-" + _args[0]>> <<if _subState[_args[0]] is "colourView">> <<set _subState[_args[0]] to "">> <<replace _subId>><</replace>> <<else>> <<set _subState[_args[0]] to "colourView">> <<replace _subId>><<outfitEditorItemColour _args[0]>><</replace>> <</if>> <</link>> <<else>> <<link "Enable">> <<set $outfit[_args[0]].colors to {}>> <<set _outfitIndex to _args[0]>> <<for _label, _value range setup.clothes>> <<set _item to setup.clothes[_label].filter((item) => item.name === $outfit[_outfitIndex][_label])[0]>> <<set _colors to [0,0]>> <<if _item>> <<if _item.colour_options.length gt 0>> <<set _colors[0] to _item.colour_options[0]>> <</if>> <<if _item.accessory_colour_options.length gt 0>> <<set _colors[1] to _item.accessory_colour_options[0]>> <</if>> <<if _item.pattern_options?.length gt 0>> <<set _colors[2] to _item.pattern_options[0]>> <</if>> <</if>> <<set $outfit[_args[0]].colors[_label] to clone(_colors)>> <</for>> <<set _id to "#outfitItem-" + _args[0]>> <<replace `_id`>><<outfitEditorItem _args[0]>><</replace>> <</link>> <</if>> </div> <<if $savedHairStyles>> <div> <<set _savedHairStylesKeys to Object.keys($savedHairStyles)>> Hair Style: <<set $_hairStyle to "$outfit["+_args[0]+"].hairStyle">> <<listbox $_hairStyle autoselect>> <<option "Not set" undefined>> <<optionsfrom _savedHairStylesKeys>> <</listbox>> </div> <<else>> <div> Hair Style: No sets saved (Check mirror) </div> <</if>> <div @id="'outfitItemSub-' + _args[0]"></div> <</capture>> <</widget>> <<widget "outfitEditorItemClothes">> <<capture _args[0]>> <<for $_label, $_value range setup.clothes>> <<set $_itemName to $outfit[_args[0]][$_label]>> <<if $_itemName and !setup.clothingLayer.over.includes($_label)>> <label class="outfitEditorItemClothes"> <<set $_options to []>> <<for $_value2 range $_value>> <<run $_options.push($_value2.name)>> <</for>> <<print $_label>> - <<set $_var to "$outfit[" + _args[0] + "]['" + $_label + "']">> <<listbox `$_var` autoselect>> <<optionsfrom $_options>> <</listbox>> <!--Runs too many times for some reason, needs to be improved--> <<run $(() => { $('.outfitEditorItemClothes select').on('input change', e => { let outfitIndex = e.target.name.replace(/\D/g,''); if(!V.outfit[outfitIndex].colors) return; let target = e.target.name.match(/[a-zA-Z]+/g); let slot = target[2] + (target[3] !== undefined ? '_' + target[3] : ''); let item = setup.clothes[slot].filter((item) => item.name === V.outfit[outfitIndex][slot])[0]; if(item !== undefined){ if(item.colour_options.length > 0 && V.outfit[outfitIndex].colors[slot][0] === 0){ V.outfit[outfitIndex].colors[slot][0] = item.colour_options[0]; } else if(item.colour_options.length === 0 && V.outfit[outfitIndex].colors[slot][0] !== 0) { V.outfit[outfitIndex].colors[slot][0] = 0; } if(item.accessory_colour_options.length > 0 && V.outfit[outfitIndex].colors[slot][1] === 0){ V.outfit[outfitIndex].colors[slot][0] = item.accessory_colour_options[0]; } else if(item.accessory_colour_options.length === 0 && V.outfit[outfitIndex].colors[slot][1] !== 0) { V.outfit[outfitIndex].colors[slot][1] = 0; } if(item.pattern_options?.length > 0 && V.outfit[outfitIndex].colors[slot][2] === 0){ V.outfit[outfitIndex].colors[slot][2] = item.pattern_options[0]; } else if(item.pattern_options?.length === 0 && V.outfit[outfitIndex].colors[slot][2] !== 0) { V.outfit[outfitIndex].colors[slot][2] = 0; } } }).trigger('input change') })>> </label> <br> <</if>> <</for>> <</capture>> <</widget>> <<widget "outfitEditorItemColour">> <<capture _args[0]>> <<for $_label, $_value range setup.clothes>> <<set _colourLabel to $_label>> <<set _colourOutfit to _args[0]>> <<set $_item to setup.clothes[$_label].filter((item) => item.name === $outfit[_colourOutfit][_colourLabel])[0]>> <<if $_item>> <<if $_item.colour_options.length gt 0 or $_item.accessory_colour_options.length gt 0 or $_item.pattern_options?.length gt 0>> <<print $_label>> - <<print $_item.name>>: <<if $_item.colour_options.length gt 0>> <<set $_colour_options to "$outfit["+_args[0]+"].colors['"+$_label+"'][0]">> <<listbox `$_colour_options` autoselect>> <<optionsfrom $_item.colour_options>> <<option "random">> <</listbox>> <</if>> <<if $_item.accessory_colour_options.length gt 0>> <<set $_accessory_colour_options to "$outfit["+_args[0]+"].colors['"+$_label+"'][1]">> <<listbox `$_accessory_colour_options` autoselect>> <<optionsfrom $_item.accessory_colour_options>> <<option "random">> <</listbox>> <</if>> <<if $_item.pattern_options?.length gt 1>> <<set $_pattern_options to "$outfit["+_args[0]+"].colors['"+$_label+"'][2]">> <<listbox `$_pattern_options` autoselect>> <<optionsfrom $_item.pattern_options>> <<option "random">> <</listbox>> <</if>> <br> <</if>> <</if>> <</for>> <</capture>> <</widget>><<widget "dancestripeffects">> <<outfitChecks>> <<switch $danceaction>> <<case "stripOverOutfit">> <<if $worn.upper.name isnot "naked" and $worn.lower.name isnot "naked">> You gracefully remove your $worn.over_upper.name, exposing your <<outfit>>. You're careful not to give too much away, but such a lewd gesture thrills you nonetheless. <<set $audiencearousal += 3>><<set $audienceexcitement += 3>><<set $audiencemod += 1>><<arousal 100>><<overupperstrip>><<exhibitionism1>> <<elseif $worn.upper.name isnot "naked">> <<if !$worn.under_lower.type.includes("naked")>> You gracefully remove your $worn.over_upper.name, exposing your $worn.under_lower.name. Being seen in your underwear excites you. <<set $audiencearousal += 6>><<set $audienceexcitement += 6>><<set $audiencemod += 2>><<arousal 300>><<overupperstrip>><<exhibitionism3>> <<else>> You gracefully remove your $worn.over_upper.name, exposing your <<genitals 1>>. <<if $worn.upper.type.includes("naked")>> You shiver with excitement, your body laid totally bare. <<else>> Your <<allTops>> makes your naked lower half feel particularly conspicuous. <</if>> <<set $audiencearousal += 10>><<set $audienceexcitement += 10>><<set $audiencemod += 4>><<arousal 300>><<overupperstrip>><<exhibitionism5>> <<dance_crossdress_reveal>> <</if>> <<elseif $worn.lower.name isnot "naked">> <<if !$worn.under_upper.type.includes("naked")>> You gracefully remove your $worn.over_upper.name, exposing your $worn.under_upper.name. Being seen in your underwear excites you. <<set $audiencearousal += 6>><<set $audienceexcitement += 6>><<set $audiencemod += 2>><<arousal 300>><<overupperstrip>><<exhibitionism3>> <<else>> <<if $player.breastsize gte 3>> You gracefully remove your $worn.over_upper.name, exposing your $worn.lower.name and <<breasts>>. The exhibition of your breasts makes them feel raw and sensitive. <<set $audiencearousal += 8>><<set $audienceexcitement += 8>><<set $audiencemod += 3>><<arousal 300>><<overupperstrip>><<exhibitionism4>> <<elseif $player.gender_appearance isnot "m" and $worn.lower.gender isnot "m">> <<if $player.sex is "m">> You gracefully remove your $worn.over_upper.name, exposing your $worn.lower.name and <<breasts>>. Your feminine countenance makes your revealed chest feel especially lewd. <<else>> You gracefully remove your $worn.over_upper.name, exposing your $worn.lower.name and <<breasts>>. You feel your nipples harden in response to being revealed. <</if>> <<set $audiencearousal += 8>><<set $audienceexcitement += 8>><<set $audiencemod += 3>><<arousal 300>><<overupperstrip>><<exhibitionism4>> <<else>> You gracefully remove your $worn.over_upper.name, exposing your $worn.lower.name and <<breasts>>. You feel your nipples harden in response to being revealed. <<set $audiencearousal += 6>><<set $audienceexcitement += 6>><<set $audiencemod += 2>><<arousal 300>><<overupperstrip>><<exhibitionism3>> <</if>> <</if>> <<else>> <<if !$worn.under_upper.type.includes("naked") and !$worn.under_lower.type.includes("naked")>> You gracefully remove your $worn.over_upper.name, exposing your $worn.under_upper.name and $worn.under_lower.name. Being seen in your underwear excites you. <<set $audiencearousal += 6>><<set $audienceexcitement += 6>><<set $audiencemod += 2>><<arousal 300>><<overupperstrip>><<exhibitionism3>> <<elseif !$worn.under_lower.type.includes("naked")>> <<if $player.breastsize gte 3>> You gracefully remove your $worn.over_upper.name, exposing your $worn.under_lower.name and <<breasts>>. The exhibition of your breasts makes them feel raw and sensitive. <<set $audiencearousal += 8>><<set $audienceexcitement += 8>><<set $audiencemod += 3>><<arousal 300>><<overupperstrip>><<exhibitionism4>> <<elseif $player.gender_appearance isnot "m" and $worn.lower.gender isnot "m">> <<if $player.sex is "m">> You gracefully remove your $worn.over_upper.name, exposing your $worn.under_lower.name and <<breasts>>. Your feminine countenance makes your revealed chest feel especially lewd. <<else>> You gracefully remove your $worn.over_upper.name, exposing your $worn.under_lower.name and <<breasts>>. You feel your nipples harden in response to being revealed. <</if>> <<set $audiencearousal += 8>><<set $audienceexcitement += 8>><<set $audiencemod += 3>><<arousal 300>><<overupperstrip>><<exhibitionism4>> <<else>> You gracefully remove your $worn.over_upper.name, exposing your $worn.under_lower.name and <<breasts>>. You feel your nipples harden in response to being revealed. <<set $audiencearousal += 6>><<set $audienceexcitement += 6>><<set $audiencemod += 2>><<arousal 300>><<overupperstrip>><<exhibitionism3>> <</if>> <<elseif !$worn.under_upper.type.includes("naked")>> You gracefully remove your $worn.over_upper.name, exposing your <<genitals 1>>. <<set $audiencearousal += 10>><<set $audienceexcitement += 10>><<set $audiencemod += 4>><<arousal 300>><<overupperstrip>><<exhibitionism5>> <<dance_crossdress_reveal>> <<else>> You gracefully remove your $worn.over_upper.name, exposing your <<genitals 1>>. You shiver with excitement, your body laid totally bare. <<set $audiencearousal += 10>><<set $audienceexcitement += 10>><<set $audiencemod += 4>><<arousal 300>><<overupperstrip>><<exhibitionism5>> <<dance_crossdress_reveal>> <</if>> <</if>> <<set $danceaction to 0>> <<case "stripOverUpper">> <<if $worn.upper.name isnot "naked">> You gracefully remove your $worn.over_upper.name, exposing your $worn.upper.name. You're careful not to give too much away, but such a lewd gesture thrills you nonetheless. <<set $audiencearousal += 3>><<set $audienceexcitement += 3>><<set $audiencemod += 1>><<arousal 100>><<overupperstrip>><<exhibitionism1>> <<elseif !$worn.under_upper.type.includes("naked")>> You gracefully remove your $worn.over_upper.name, exposing your $worn.under_upper.name. Only one garment protects your chest from the hungry eyes surrounding you. <<set $audiencearousal += 2>><<set $audienceexcitement += 2>><<set $audiencemod += 1>><<arousal 100>><<overupperstrip>><<exhibitionism1>> <<else>> <<if $player.breastsize gte 3>> You gracefully remove your $worn.over_upper.name, exposing your <<breasts>>. The exhibition of your breasts makes them feel raw and sensitive. <<set $audiencearousal += 8>><<set $audienceexcitement += 8>><<set $audiencemod += 3>><<arousal 300>><<overupperstrip>><<exhibitionism4>> <<elseif $player.gender_appearance isnot "m" and $worn.lower.gender isnot "m">> <<if $player.sex is "m">> You gracefully remove your $worn.over_upper.name, exposing your <<breasts>>. Your feminine countenance makes your revealed chest feel especially lewd. <<else>> You gracefully remove your $worn.over_upper.name, exposing your <<breasts>>. You feel your nipples harden in response to being revealed. <</if>> <<set $audiencearousal += 8>><<set $audienceexcitement += 8>><<set $audiencemod += 3>><<arousal 300>><<overupperstrip>><<exhibitionism4>> <<else>> You gracefully remove your $worn.over_upper.name, exposing your <<breasts>>. You feel your nipples harden in response to being revealed. <<set $audiencearousal += 2>><<set $audienceexcitement += 2>><<set $audiencemod += 1>><<arousal 300>><<overupperstrip>><<exhibitionism1>> <</if>> <</if>> <<set $danceaction to 0>> <<case "stripOverLower">> <<if $worn.lower.name isnot "naked">> You gracefully remove your $worn.over_lower.name, exposing your $worn.lower.name. You're careful not to give too much away, but such a lewd gesture thrills you nonetheless. <<set $audiencearousal += 3>><<set $audienceexcitement += 3>><<set $audiencemod += 1>><<arousal 100>><<overlowerstrip>><<exhibitionism1>> <<elseif !$worn.under_lower.type.includes("naked")>> You gracefully remove your $worn.over_lower.name, exposing your $worn.under_lower.name. Being seen in your underwear excites you. <<set $audiencearousal += 6>><<set $audienceexcitement += 6>><<set $audiencemod += 2>><<arousal 300>><<overlowerstrip>><<exhibitionism3>> <<else>> You gracefully remove your $worn.over_lower.name, exposing your <<genitals 1>>. <<if $worn.upper.type.includes("naked") or $worn.over_upper.type.includes("naked")>> You shiver with excitement, your body laid totally bare. <<else>> Your <<allTops>> makes your naked lower half feel particularly conspicuous. <</if>> <<set $audiencearousal += 10>><<set $audienceexcitement += 10>><<set $audiencemod += 4>><<arousal 300>><<overlowerstrip>><<exhibitionism5>> <<dance_crossdress_reveal>> <</if>> <<set $danceaction to 0>> <<case "stripOutfit">> <<if !$worn.under_upper.type.includes("naked") and !$worn.under_lower.type.includes("naked")>> <<if $player.breastsize gte 3 or $player.gender_appearance isnot "m">> You gracefully remove your $worn.upper.name, exposing your <<upperstrip>><<lowerstrip>><<underoutfit>>. Being seen in your underwear excites you. <<set $audiencearousal += 10>><<set $audienceexcitement += 10>><<set $audiencemod += 4>><<arousal 500>><<exhibitionism4>> <<else>> You gracefully remove your $worn.upper.name, exposing your <<upperstrip>><<lowerstrip>><<underoutfit>>. Being seen in your underwear excites you. <<set $audiencearousal += 8>><<set $audienceexcitement += 8>><<set $audiencemod += 3>><<arousal 300>><<exhibitionism3>> <</if>> <<elseif !$worn.under_lower.type.includes("naked")>> <<if $player.breastsize gte 3>> You gracefully remove your $worn.upper.name, exposing your <<upperstrip>><<lowerstrip>><<underoutfit>>. The exhibition of your breasts makes them feel raw and sensitive. <<set $audiencearousal += 8>><<set $audienceexcitement += 8>><<set $audiencemod += 3>><<arousal 300>><<exhibitionism4>> <<elseif $player.gender_appearance isnot "m" and $worn.lower.gender isnot "m">> <<if $player.sex is "m">> You gracefully remove your $worn.upper.name, exposing your <<upperstrip>><<lowerstrip>><<underoutfit>>. Your feminine countenance makes your revealed chest feel especially lewd. <<else>> You gracefully remove your $worn.upper.name, exposing your <<upperstrip>><<lowerstrip>><<underoutfit>>. You feel your <<nipples>> harden in response to being revealed. <</if>> <<set $audiencearousal += 8>><<set $audienceexcitement += 8>><<set $audiencemod += 3>><<arousal 300>><<exhibitionism4>> <<else>> You gracefully remove your $worn.upper.name, exposing your <<upperstrip>><<lowerstrip>><<underoutfit>>. Being seen in your underwear excites you. <<set $audiencearousal += 6>><<set $audienceexcitement += 6>><<set $audiencemod += 2>><<arousal 300>><<exhibitionism3>> <</if>> <<else>> You gracefully remove your $worn.upper.name, exposing your nude form. You shiver with excitement, your <<genitals 1>> laid totally bare. <<set $audiencearousal += 10>><<set $audienceexcitement += 10>><<set $audiencemod += 4>><<arousal 300>><<upperstrip>><<lowerstrip>><<exhibitionism5>> <<dance_crossdress_reveal>> <</if>> <<set $danceaction to 0>> <<case "stripUpper">> <<if !$worn.under_upper.type.includes("naked")>> <<if $player.breastsize gte 3 or $player.gender_appearance isnot "m">> You gracefully remove your $worn.upper.name, exposing your $worn.under_upper.name. Only one garment protects your chest from the hungry eyes surrounding you. <<set $audiencearousal += 4>><<set $audienceexcitement += 4>><<set $audiencemod += 2>><<arousal 200>><<upperstrip>><<exhibitionism3>> <<else>> You gracefully remove your $worn.upper.name, exposing your $worn.under_upper.name. Only one garment protects your chest from the hungry eyes surrounding you. <<set $audiencearousal += 2>><<set $audienceexcitement += 2>><<set $audiencemod += 1>><<arousal 100>><<upperstrip>><<exhibitionism1>> <</if>> <<else>> <<if $player.breastsize gte 3>> You gracefully remove your $worn.upper.name, exposing your <<breasts>>. The exhibition of your breasts makes them feel raw and sensitive. <<set $audiencearousal += 8>><<set $audienceexcitement += 8>><<set $audiencemod += 3>><<arousal 300>><<upperstrip>><<exhibitionism4>> <<elseif $player.gender_appearance isnot "m" and $worn.lower.gender isnot "m">> <<if $player.sex is "m">> You gracefully remove your $worn.upper.name, exposing your <<breasts>>. Your feminine countenance makes your revealed chest feel especially lewd. <<else>> You gracefully remove your $worn.upper.name, exposing your <<breasts>>. You feel your nipples harden in response to being revealed. <</if>> <<set $audiencearousal += 8>><<set $audienceexcitement += 8>><<set $audiencemod += 3>><<arousal 300>><<upperstrip>><<exhibitionism4>> <<else>> You gracefully remove your $worn.upper.name, exposing your <<breasts>>. You feel your nipples harden in response to being revealed. <<set $audiencearousal += 2>><<set $audienceexcitement += 2>><<set $audiencemod += 1>><<arousal 300>><<upperstrip>><<exhibitionism1>> <</if>> <</if>> <<set $danceaction to 0>> <<case "stripLower">> <<if $worn.over_lower.name isnot "naked">> You gracefully remove your $worn.lower.name from below your $worn.over_lower.name. You're careful not to give too much away, but such a lewd gesture thrills you nonetheless. <<set $audiencearousal += 3>><<set $audienceexcitement += 3>><<set $audiencemod += 1>><<arousal 100>><<lowerstrip>><<exhibitionism1>> <<elseif !$worn.under_lower.type.includes("naked")>> You gracefully remove your $worn.lower.name, exposing your $worn.under_lower.name. Being seen in your underwear excites you. <<set $audiencearousal += 6>><<set $audienceexcitement += 6>><<set $audiencemod += 2>><<arousal 300>><<lowerstrip>><<exhibitionism3>> <<else>> You gracefully remove your $worn.lower.name, exposing your <<genitals 1>>. <<if $worn.upper.type.includes("naked") or $worn.over_upper.type.includes("naked")>> You shiver with excitement, your body laid totally bare. <<else>> Your <<allTops>> makes your naked lower half feel particularly conspicuous. <</if>> <<set $audiencearousal += 10>><<set $audienceexcitement += 10>><<set $audiencemod += 4>><<arousal 300>><<lowerstrip>><<exhibitionism5>> <<dance_crossdress_reveal>> <</if>> <<set $danceaction to 0>> <<case "stripUnderOutfit">> You gracefully remove your $worn.under_upper.name, exposing your <<genitals 1>>. You shiver with excitement, now laid totally bare. <<set $audiencearousal += 8>><<set $audienceexcitement += 8>><<set $audiencemod += 3>><<arousal 300>><<underupperstrip>><<exhibitionism5>> <<dance_crossdress_reveal>> <<set $danceaction to 0>> <<case "stripUnderUpper">> <<if (!$worn.upper.type.includes("naked") and $worn.upper.open is 1) and $worn.over_upper.type.includes("naked")>> You gracefully remove your $worn.under_upper.name from beneath your $worn.upper.name. You're careful not to give too much away, but such a lewd gesture thrills you nonetheless. <<set $audiencearousal += 3>><<set $audienceexcitement += 3>><<set $audiencemod += 1>><<arousal 100>><<underupperstrip>><<exhibitionism1>> <<elseif $player.breastsize gte 3>> You gracefully remove your $worn.under_upper.name, <<if $worn.under_upper.type.includes("naked")>>despite them not concealing your <<breasts>> at all.<<else>>exposing your <<breasts>>. The exhibition of your breasts makes them feel raw and sensitive.<</if>> <<set $audiencearousal += 8>><<set $audienceexcitement += 8>><<set $audiencemod += 3>><<arousal 300>><<underupperstrip>><<exhibitionism4>> <<elseif $player.gender_appearance isnot "m" and $worn.under_lower.gender isnot "m">> <<set $danceaction to 0>> <<if $player.sex is "m">> You gracefully remove your $worn.under_upper.name, <<if $worn.under_upper.type.includes("naked")>>despite them not concealing your <<breasts>> at all, you feel more exposed.<<else>>exposing your <<breasts>>. Your feminine countenance makes your revealed chest feel especially lewd.<</if>> <<else>> You gracefully remove your $worn.under_upper.name, <<if $worn.under_upper.type.includes("naked")>>despite them not concealing your <<breasts>> at all, you feel more exposed.<<else>>exposing your <<breasts>>. You feel your nipples harden in response to being revealed.<</if>> <</if>> <<set $audiencearousal += 8>><<set $audienceexcitement += 8>><<set $audiencemod += 3>><<arousal 300>><<underupperstrip>><<exhibitionism4>> <<else>> You gracefully remove your $worn.under_upper.name, <<if $worn.under_upper.type.includes("naked")>>despite them not concealing your <<breasts>> at all, you feel more exposed.<<else>>exposing your <<breasts>>. You feel your nipples harden in response to being revealed.<</if>> <<set $audiencearousal += 2>><<set $audienceexcitement += 2>><<set $audiencemod += 1>><<arousal 300>><<underupperstrip>><<exhibitionism1>> <</if>> <<set $danceaction to 0>> <<case "stripUnderLower">> <<if $worn.under_lower.type.includes("naked")>> <<if (!$worn.lower.type.includes("naked") or !$worn.over_lower.type.includes("naked"))>> You gracefully remove your $worn.under_lower.name from beneath your <<allBottoms>>. You're careful not to give too much away, but such a lewd gesture thrills you nonetheless. <<else>> You gracefully remove your $worn.under_lower.name, despite having your <<genitals 1>> exposed already. <</if>> <<set $audiencearousal += 6>><<set $audienceexcitement += 6>><<set $audiencemod += 2>><<arousal 300>><<underlowerstrip>><<exhibitionism3>> <<elseif !$worn.lower.type.includes("naked") or !$worn.over_lower.type.includes("naked")>> You gracefully remove your $worn.under_lower.name from beneath your <<allBottoms>>. You're careful not to give too much away, but such a lewd gesture thrills you nonetheless. <<set $audiencearousal += 6>><<set $audienceexcitement += 6>><<set $audiencemod += 2>><<arousal 300>><<underlowerstrip>><<exhibitionism3>> <<else>> You gracefully remove your $worn.under_lower.name, exposing your <<genitals 1>>. You shiver with excitement, your body laid totally bare. <<set $audiencearousal += 10>><<set $audienceexcitement += 10>><<set $audiencemod += 4>><<arousal 300>><<underlowerstrip>><<exhibitionism5>> <<dance_crossdress_reveal>> <</if>> <<set $danceaction to 0>> <</switch>> <!--Old clothing actions below, to be removed at a later date--> <<if $danceaction is "outfitstripbreasts">><<set $danceaction to 0>> You gracefully remove your $worn.upper.name, exposing your <<upperstrip>><<lowerstrip>><<underoutfit>>. The exhibition of your breasts makes them feel raw and sensitive. <<set $audiencearousal += 8>><<set $audienceexcitement += 8>><<set $audiencemod += 3>><<arousal 300>><<exhibitionism4>> <</if>> <<if $danceaction is "outfitstripchest">><<set $danceaction to 0>> <<if $player.sex is "m">> You gracefully remove your $worn.upper.name, exposing your <<upperstrip>><<lowerstrip>><<underoutfit>>. Your feminine countenance makes your revealed chest feel especially lewd. <<else>> You gracefully remove your $worn.upper.name, exposing your <<upperstrip>><<lowerstrip>><<underoutfit>>. You feel your <<nipples>> harden in response to being revealed. <</if>> <<set $audiencearousal += 8>><<set $audienceexcitement += 8>><<set $audiencemod += 3>><<arousal 300>><<exhibitionism4>> <</if>> <<if $danceaction is "outfitstripunderbreasts">><<set $danceaction to 0>> You gracefully remove your $worn.upper.name, exposing your <<upperstrip>><<lowerstrip>><<underoutfit>>. Being seen in your underwear excites you. <<set $audiencearousal += 10>><<set $audienceexcitement += 10>><<set $audiencemod += 4>><<arousal 500>><<exhibitionism4>> <</if>> <<if $danceaction is "outfitstripunderchest">><<set $danceaction to 0>> You gracefully remove your $worn.upper.name, exposing your <<upperstrip>><<lowerstrip>><<underoutfit>>. Being seen in your underwear excites you. <<set $audiencearousal += 8>><<set $audienceexcitement += 8>><<set $audiencemod += 3>><<arousal 300>><<exhibitionism3>> <</if>> <<if $danceaction is "outfitstripunder">> <<set $danceaction to 0>> You gracefully remove your $worn.upper.name, exposing your <<upperstrip>><<lowerstrip>><<underoutfit>>. Being seen in your underwear excites you. <<set $audiencearousal += 6>><<set $audienceexcitement += 6>><<set $audiencemod += 2>><<arousal 300>><<exhibitionism3>> <</if>> <<if $danceaction is "outfitstripnude">> <<set $danceaction to 0>> You gracefully remove your $worn.upper.name, exposing your nude form. You shiver with excitement, your <<genitals 1>> laid totally bare. <<set $audiencearousal += 10>><<set $audienceexcitement += 10>><<set $audiencemod += 4>><<arousal 300>><<upperstrip>><<lowerstrip>><<exhibitionism5>> <<dance_crossdress_reveal>> <</if>> <<if $danceaction is "upperstripbreasts">> <<set $danceaction to 0>> You gracefully remove your $worn.upper.name, exposing your <<breasts>>. The exhibition of your breasts makes them feel raw and sensitive. <<set $audiencearousal += 8>><<set $audienceexcitement += 8>><<set $audiencemod += 3>><<arousal 300>><<upperstrip>><<exhibitionism4>> <</if>> <<if $danceaction is "upperstripunderbreasts">> <<set $danceaction to 0>> You gracefully remove your $worn.upper.name, exposing your $worn.under_upper.name. Only one garment protects your chest from the hungry eyes surrounding you. <<set $audiencearousal += 4>><<set $audienceexcitement += 4>><<set $audiencemod += 2>><<arousal 200>><<upperstrip>><<exhibitionism2>> <</if>> <<if $danceaction is "upperstripunderchest">> <<set $danceaction to 0>> You gracefully remove your $worn.upper.name, exposing your $worn.under_upper.name. Only one garment protects your chest from the hungry eyes surrounding you. <<set $audiencearousal += 2>><<set $audienceexcitement += 2>><<set $audiencemod += 1>><<arousal 100>><<upperstrip>><<exhibitionism1>> <</if>> <<if $danceaction is "upperstripfchest">> <<set $danceaction to 0>> <<if $player.sex is "m">> You gracefully remove your $worn.upper.name, exposing your <<breasts>>. Your feminine countenance makes your revealed chest feel especially lewd. <<else>> You gracefully remove your $worn.upper.name, exposing your <<breasts>>. You feel your nipples harden in response to being revealed. <</if>> <<set $audiencearousal += 8>><<set $audienceexcitement += 8>><<set $audiencemod += 3>><<arousal 300>><<upperstrip>><<exhibitionism4>> <</if>> <<if $danceaction is "upperstripmchest">> <<set $danceaction to 0>> You gracefully remove your $worn.upper.name, exposing your <<breasts>>. You feel your nipples harden in response to being revealed. <<set $audiencearousal += 2>><<set $audienceexcitement += 2>><<set $audiencemod += 1>><<arousal 300>><<upperstrip>><<exhibitionism1>> <</if>> <<if $danceaction is "underoutfitstripbreasts">> <<set $danceaction to 0>> You gracefully remove your $worn.under_upper.name, exposing your <<breasts>>. The exhibition makes you feel raw and sensitive. <<set $audiencearousal += 8>><<set $audienceexcitement += 8>><<set $audiencemod += 3>><<arousal 300>><<underupperstrip>><<exhibitionism4>> <</if>> <<if $danceaction is "underoutfitstripchest">> <<set $danceaction to 0>> <<if $player.sex is "m">> You gracefully remove your $worn.under_upper.name, exposing your <<breasts>>. Your feminine countenance makes your revealed chest feel especially lewd. <<else>> You gracefully remove your $worn.under_upper.name, exposing your <<breasts>>. You feel your buds harden in response to being revealed. <</if>> <<set $audiencearousal += 8>><<set $audienceexcitement += 8>><<set $audiencemod += 3>><<arousal 300>><<underupperstrip>><<exhibitionism4>> <</if>> <<if $danceaction is "underoutfitstripunder">> <<set $danceaction to 0>> You gracefully remove your $worn.under_upper.name, exposing your <<breasts>>. You feel your nipples harden in response to being revealed. <<set $audiencearousal += 6>><<set $audienceexcitement += 6>><<set $audiencemod += 2>><<arousal 300>><<underupperstrip>><<exhibitionism3>> <</if>> <<if $danceaction is "underoutfitstripnude">> <<set $danceaction to 0>> You gracefully remove your $worn.under_upper.name, exposing your nude form. You shiver with excitement, your <<genitals 1>> laid totally bare. <<set $audiencearousal += 10>><<set $audienceexcitement += 10>><<set $audiencemod += 4>><<arousal 300>><<underupperstrip>><<exhibitionism5>> <<dance_crossdress_reveal>> <</if>> <<if $danceaction is "underoutfitstriptop">> <<set $danceaction to 0>> You gracefully remove your $worn.under_upper.name, exposing your <<genitals 1>>. You shiver with excitement, now laid totally bare. <<set $audiencearousal += 8>><<set $audienceexcitement += 8>><<set $audiencemod += 3>><<arousal 300>><<underupperstrip>><<exhibitionism5>> <<dance_crossdress_reveal>> <</if>> <<if $danceaction is "underupperstripbreasts">> <<set $danceaction to 0>> You gracefully remove your $worn.under_upper.name, exposing your <<breasts>>. The exhibition of your breasts makes them feel raw and sensitive. <<set $audiencearousal += 8>><<set $audienceexcitement += 8>><<set $audiencemod += 3>><<arousal 300>><<underupperstrip>><<exhibitionism4>> <</if>> <<if $danceaction is "underupperstripfchest">> <<set $danceaction to 0>> <<if $player.sex is "m">> You gracefully remove your $worn.under_upper.name, exposing your <<breasts>>. Your feminine countenance makes your revealed chest feel especially lewd. <<else>> You gracefully remove your $worn.under_upper.name, exposing your <<breasts>>. You feel your nipples harden in response to being revealed. <</if>> <<set $audiencearousal += 8>><<set $audienceexcitement += 8>><<set $audiencemod += 3>><<arousal 300>><<underupperstrip>><<exhibitionism4>> <</if>> <<if $danceaction is "underupperstripmchest">> <<set $danceaction to 0>> You gracefully remove your $worn.under_upper.name, exposing your <<breasts>>. You feel your nipples harden in response to being revealed. <<set $audiencearousal += 2>><<set $audienceexcitement += 2>><<set $audiencemod += 1>><<arousal 300>><<underupperstrip>><<exhibitionism1>> <</if>> <<if $danceaction is "lowerstripunder">><<set $danceaction to 0>> You gracefully remove your $worn.lower.name, exposing your $worn.under_lower.name. Being seen in your underwear excites you. <<set $audiencearousal += 6>><<set $audienceexcitement += 6>><<set $audiencemod += 2>><<arousal 300>><<lowerstrip>><<exhibitionism3>> <</if>> <<if $danceaction is "lowerstripnude">><<set $danceaction to 0>> You gracefully remove your $worn.lower.name, exposing your <<genitals 1>>. <<if $worn.upper.type.includes("naked")>> You shiver with excitement, your body laid totally bare. <<else>> Your $worn.upper.name makes your naked lower half feel particularly conspicuous. <</if>> <<set $audiencearousal += 10>><<set $audienceexcitement += 10>><<set $audiencemod += 4>><<arousal 300>><<lowerstrip>><<exhibitionism5>> <<dance_crossdress_reveal>> <</if>> <<if $danceaction is "underupperstripopen">><<set $danceaction to 0>> You gracefully remove your $worn.under_upper.name from beneath your $worn.upper.name. You're careful not to give too much away, but such a lewd gesture thrills you nonetheless. <<set $audiencearousal += 3>><<set $audienceexcitement += 3>><<set $audiencemod += 1>><<arousal 100>><<underupperstrip>><<exhibitionism1>> <</if>> <<if $danceaction is "underoutfitstripopen">><<set $danceaction to 0>> You gracefully remove your $worn.under_upper.name from beneath your $worn.upper.name. You're careful not to give too much away, but such a lewd gesture thrills you nonetheless. <<set $audiencearousal += 9>><<set $audienceexcitement += 9>><<set $audiencemod += 3>><<arousal 500>><<underupperstrip>><<exhibitionism3>> <</if>> <<if $danceaction is "understripskirt">><<set $danceaction to 0>> You gracefully remove your $worn.under_lower.name from beneath your $worn.lower.name. You're careful not to give too much away, but such a lewd gesture thrills you nonetheless. <<set $audiencearousal += 6>><<set $audienceexcitement += 6>><<set $audiencemod += 2>><<arousal 300>><<underlowerstrip>><<exhibitionism3>> <</if>> <<if $danceaction is "underoutfitstripskirt">><<set $danceaction to 0>> You gracefully remove your $worn.under_upper.name from beneath your $worn.upper.name. You're careful not to give too much away, but such a lewd gesture thrills you nonetheless. <<set $audiencearousal += 9>><<set $audienceexcitement += 9>><<set $audiencemod += 3>><<arousal 500>><<underlowerstrip>><<exhibitionism3>> <</if>> <<if $danceaction is "understripnude">><<set $danceaction to 0>> You gracefully remove your $worn.under_lower.name, exposing your <<genitals 1>>. You shiver with excitement, your body laid totally bare. <<set $audiencearousal += 10>><<set $audienceexcitement += 10>><<set $audiencemod += 4>><<arousal 300>><<underlowerstrip>><<exhibitionism5>> <<dance_crossdress_reveal>> <</if>> <<if $danceaction is "understripclothed">><<set $danceaction to 0>> You gracefully remove your $worn.under_lower.name, exposing your <<genitals 1>>. You shiver with excitement, your body laid totally bare. <<set $audiencearousal += 10>><<set $audienceexcitement += 10>><<set $audiencemod += 4>><<arousal 300>><<underlowerstrip>><<exhibitionism5>> <<dance_crossdress_reveal>> <</if>> <</widget>> <<widget "danceStripActionObject">> <<set _danceExhibition to { "overOutfit":null, "over_upper":null, "over_lower":null, "middleOutfit":null, "upper":null, "lower":null, "underOutfit":null, "under_upper":null, "under_lower":null, }>> <<set _exhibitionObject to { 1:[1,0], 2:[2,15], 3:[3,35], 4:[4,55], 5:[5,75] }>> <<if _overOutfit>> <<if $worn.upper.name isnot "naked" and $worn.lower.name isnot "naked">> <<set _danceExhibition.overOutfit to clone(_exhibitionObject[1])>> <<elseif $worn.upper.name isnot "naked">> <<if !$worn.under_lower.type.includes("naked")>> <<set _danceExhibition.overOutfit to clone(_exhibitionObject[3])>> <<else>> <<set _danceExhibition.overOutfit to clone(_exhibitionObject[5])>> <</if>> <<elseif $worn.lower.name isnot "naked">> <<if !$worn.under_upper.type.includes("naked")>> <<set _danceExhibition.overOutfit to clone(_exhibitionObject[3])>> <<else>> <<if $player.breastsize gte 3>> <<set _danceExhibition.overOutfit to clone(_exhibitionObject[4])>> <<elseif $player.gender_appearance isnot "m" and $worn.lower.gender isnot "m">> <<set _danceExhibition.overOutfit to clone(_exhibitionObject[4])>> <<else>> <<set _danceExhibition.overOutfit to clone(_exhibitionObject[3])>> <</if>> <</if>> <<else>> <<if !$worn.under_upper.type.includes("naked") and !$worn.under_lower.type.includes("naked")>> <<set _danceExhibition.overOutfit to clone(_exhibitionObject[3])>> <<elseif $worn.under_lower.name isnot "naked">> <<if $player.breastsize gte 3>> <<set _danceExhibition.overOutfit to clone(_exhibitionObject[4])>> <<elseif $player.gender_appearance isnot "m" and $worn.lower.gender isnot "m">> <<set _danceExhibition.overOutfit to clone(_exhibitionObject[4])>> <<else>> <<set _danceExhibition.overOutfit to clone(_exhibitionObject[3])>> <</if>> <<elseif !$worn.under_upper.type.includes("naked")>> <<set _danceExhibition.overOutfit to clone(_exhibitionObject[5])>> <<else>> <<set _danceExhibition.overOutfit to clone(_exhibitionObject[5])>> <</if>> <</if>> <<elseif _overOutfit is false>> <<if !$worn.over_upper.type.includes("naked")>> <<if $worn.upper.name isnot "naked">> <<set _danceExhibition.over_upper to clone(_exhibitionObject[1])>> <<elseif !$worn.under_upper.type.includes("naked")>> <<set _danceExhibition.over_upper to clone(_exhibitionObject[3])>> <<else>> <<if $player.breastsize gte 3>> <<set _danceExhibition.over_upper to clone(_exhibitionObject[4])>> <<elseif $player.gender_appearance isnot "m" and $worn.lower.gender isnot "m">> <<set _danceExhibition.over_upper to clone(_exhibitionObject[4])>> <<else>> <<set _danceExhibition.over_upper to clone(_exhibitionObject[1])>> <</if>> <</if>> <</if>> <<if !$worn.over_lower.type.includes("naked")>> <<if $worn.lower.name isnot "naked">> <<set _danceExhibition.over_lower to clone(_exhibitionObject[1])>> <<elseif !$worn.under_lower.type.includes("naked")>> <<set _danceExhibition.over_lower to clone(_exhibitionObject[3])>> <<else>> <<set _danceExhibition.over_lower to clone(_exhibitionObject[5])>> <</if>> <</if>> <</if>> <<if _middleOutfit and $worn.over_upper.type.includes("naked") and $worn.over_lower.type.includes("naked")>> <<if !$worn.under_upper.type.includes("naked") and !$worn.under_lower.type.includes("naked")>> <<if $player.breastsize gte 3 or $player.gender_appearance isnot "m">> <<set _danceExhibition.middleOutfit to clone(_exhibitionObject[4])>> <<else>> <<set _danceExhibition.middleOutfit to clone(_exhibitionObject[3])>> <</if>> <<elseif !$worn.under_lower.type.includes("naked")>> <<if $player.breastsize gte 3>> <<set _danceExhibition.middleOutfit to clone(_exhibitionObject[4])>> <<elseif $player.gender_appearance isnot "m" and $worn.lower.gender isnot "m">> <<set _danceExhibition.middleOutfit to clone(_exhibitionObject[4])>> <<else>> <<set _danceExhibition.middleOutfit to clone(_exhibitionObject[4])>> <</if>> <<else>> <<set _danceExhibition.middleOutfit to clone(_exhibitionObject[5])>> <</if>> <<elseif _middleOutfit is false>> <<if !$worn.upper.type.includes("naked") and $worn.over_upper.type.includes("naked")>> <<if !$worn.under_upper.type.includes("naked")>> <<if $player.breastsize gte 3 or $player.gender_appearance isnot "m">> <<set _danceExhibition.upper to clone(_exhibitionObject[3])>> <<else>> <<set _danceExhibition.upper to clone(_exhibitionObject[1])>> <</if>> <<else>> <<if $player.breastsize gte 3>> <<set _danceExhibition.upper to clone(_exhibitionObject[4])>> <<elseif $player.gender_appearance isnot "m" and $worn.lower.gender isnot "m">> <<set _danceExhibition.upper to clone(_exhibitionObject[4])>> <<else>> <<set _danceExhibition.upper to clone(_exhibitionObject[1])>> <</if>> <</if>> <</if>> <<if !$worn.lower.type.includes("naked") and ($worn.over_lower.type.includes("naked") or setup.clothes.over_lower[clothesIndex('over_lower', $worn.over_lower)].skirt is 1)>> <<if $worn.over_lower.name isnot "naked">> <<set _danceExhibition.lower to clone(_exhibitionObject[3])>> <<elseif !$worn.under_lower.type.includes("naked")>> <<set _danceExhibition.lower to clone(_exhibitionObject[3])>> <<else>> <<set _danceExhibition.lower to clone(_exhibitionObject[5])>> <</if>> <</if>> <</if>> <<if _underOutfit and $worn.over_upper.type.includes("naked") and $worn.over_lower.type.includes("naked") and $worn.upper.type.includes("naked") and $worn.lower.type.includes("naked")>> <<set _danceExhibition.underOutfit to clone(_exhibitionObject[5])>> <<elseif _underOutfit is false>> <<if $worn.under_upper.name isnot "naked" and $worn.over_upper.type.includes("naked")>> <<if (!$worn.upper.type.includes("naked") and $worn.upper.open is 1) and $worn.over_upper.type.includes("naked")>> <<set _danceExhibition.under_upper to clone(_exhibitionObject[1])>> <<elseif $player.breastsize gte 3>> <<set _danceExhibition.under_upper to clone(_exhibitionObject[4])>> <<elseif $player.gender_appearance isnot "m" and $worn.under_lower.gender isnot "m">> <<set _danceExhibition.under_upper to clone(_exhibitionObject[4])>> <<else>> <<set _danceExhibition.under_upper to clone(_exhibitionObject[1])>> <</if>> <</if>> <<if $worn.under_lower.name isnot "naked" and ((setup.clothes.over_lower[clothesIndex('over_lower', $worn.over_lower)].skirt is 1 or $worn.over_lower.type.includes("naked")) and (setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1 or $worn.lower.type.includes("naked")))>> <<if $worn.under_lower.type.includes("naked")>> <<set _danceExhibition.under_lower to clone(_exhibitionObject[3])>> <<elseif !$worn.lower.type.includes("naked") or !$worn.over_lower.type.includes("naked")>> <<set _danceExhibition.under_lower to clone(_exhibitionObject[3])>> <<else>> <<set _danceExhibition.under_lower to clone(_exhibitionObject[5])>> <</if>> <</if>> <</if>> <</widget>> <<widget "dancestripactions">> <<outfitChecks>> <<danceStripActionObject>> <br><br> <<if _danceExhibition isnot undefined>> <<if _danceExhibition.overOutfit isnot null>> <<if $exhibitionism gte _danceExhibition.overOutfit[1]>> <label> <span class="meek">Strip $worn.over_upper.name</span> <<print '<<combatexhibitionist'+_danceExhibition.overOutfit[0]+'>>'>> <<radiobutton "$danceaction" "stripOverOutfit">> </label> | <</if>> <</if>> <<if _danceExhibition.over_upper isnot null>> <<if $exhibitionism gte _danceExhibition.over_upper[1]>> <label> <span class="meek">Strip $worn.over_upper.name</span> <<print '<<combatexhibitionist'+_danceExhibition.over_upper[0]+'>>'>> <<radiobutton "$danceaction" "stripOverUpper">> </label> | <</if>> <</if>> <<if _danceExhibition.over_lower isnot null>> <<if $exhibitionism gte _danceExhibition.over_lower[1]>> <label> <span class="meek">Strip $worn.over_lower.name</span> <<print '<<combatexhibitionist'+_danceExhibition.over_lower[0]+'>>'>> <<radiobutton "$danceaction" "stripOverLower">> </label> | <</if>> <</if>> <<if _danceExhibition.middleOutfit isnot null and $worn.upper.cursed isnot 1>> <<if $exhibitionism gte _danceExhibition.middleOutfit[1]>> <label> <span class="meek">Strip $worn.upper.name</span> <<print '<<combatexhibitionist'+_danceExhibition.middleOutfit[0]+'>>'>> <<radiobutton "$danceaction" "stripOutfit">> </label> | <</if>> <</if>> <<if _danceExhibition.upper isnot null and $worn.upper.cursed isnot 1>> <<if $exhibitionism gte _danceExhibition.upper[1]>> <label> <span class="meek">Strip $worn.upper.name</span> <<print '<<combatexhibitionist'+_danceExhibition.upper[0]+'>>'>> <<radiobutton "$danceaction" "stripUpper">> </label> | <</if>> <</if>> <<if _danceExhibition.lower isnot null and $worn.lower.cursed isnot 1>> <<if $exhibitionism gte _danceExhibition.lower[1]>> <label> <span class="meek">Strip $worn.lower.name</span> <<print '<<combatexhibitionist'+_danceExhibition.lower[0]+'>>'>> <<radiobutton "$danceaction" "stripLower">> </label> | <</if>> <</if>> <<if _danceExhibition.underOutfit isnot null>> <<if $exhibitionism gte _danceExhibition.underOutfit[1]>> <label> <span class="meek">Strip $worn.under_upper.name</span> <<print '<<combatexhibitionist'+_danceExhibition.underOutfit[0]+'>>'>> <<radiobutton "$danceaction" "stripUnderOutfit">> </label> | <</if>> <</if>> <<if _danceExhibition.under_upper isnot null>> <<if $exhibitionism gte _danceExhibition.under_upper[1]>> <label> <span class="meek">Strip $worn.under_upper.name</span> <<print '<<combatexhibitionist'+_danceExhibition.under_upper[0]+'>>'>> <<radiobutton "$danceaction" "stripUnderUpper">> </label> | <</if>> <</if>> <<if _danceExhibition.under_lower isnot null>> <<if $exhibitionism gte _danceExhibition.under_lower[1]>> <label> <span class="meek">Strip $worn.under_lower.name</span> <<print '<<combatexhibitionist'+_danceExhibition.under_lower[0]+'>>'>> <<radiobutton "$danceaction" "stripUnderLower">> </label> | <</if>> <</if>> <</if>> <<if $debug is 1>> <br><br> Old Clothing Controls <br><br> <<if _middleOutfit>> <<if !$worn.under_lower.type.includes("naked")>> <<if !$worn.under_upper.type.includes("naked")>> <<if $player.breastsize gte 3 or $player.gender_appearance isnot "m">> <<if hasSexStat("exhibitionism", 4)>> <label><span class="meek">Strip $worn.upper.name</span> <<combatexhibitionist4>> <<radiobutton "$danceaction" "outfitstripunderbreasts">></label> | <</if>> <<else>> <<if hasSexStat("exhibitionism", 3)>> <label><span class="meek">Strip $worn.upper.name</span> <<combatexhibitionist3>> <<radiobutton "$danceaction" "outfitstripunderchest">></label> | <</if>> <</if>> <<else>> <<if $player.breastsize gte 3>> <<if hasSexStat("exhibitionism", 4)>> <label><span class="meek">Strip $worn.upper.name</span> <<combatexhibitionist4>> <<radiobutton "$danceaction" "outfitstripbreasts">></label> | <</if>> <<elseif $player.gender_appearance isnot "m" and $worn.lower.gender isnot "m">> <<if hasSexStat("exhibitionism", 4)>> <label><span class="meek">Strip $worn.upper.name</span> <<combatexhibitionist4>> <<radiobutton "$danceaction" "outfitstripchest">></label> | <</if>> <<else>> <<if hasSexStat("exhibitionism", 3)>> <label><span class="meek">Strip $worn.upper.name</span> <<combatexhibitionist3>> <<radiobutton "$danceaction" "outfitstripunder">></label> | <</if>> <</if>> <</if>> <<else>> <<if hasSexStat("exhibitionism", 5)>> <label><span class="meek">Strip $worn.upper.name</span> <<combatexhibitionist5>> <<radiobutton "$danceaction" "outfitstripnude">></label> | <</if>> <</if>> <</if>> <<if !$worn.upper.type.includes("naked") and _middleOutfit is false>> <<if !$worn.under_upper.type.includes("naked")>> <<if $player.breastsize gte 3 or $player.gender_appearance isnot "m">> <<if hasSexStat("exhibitionism", 2)>> <label><span class="meek">Strip $worn.upper.name</span> <<combatexhibitionist2>> <<radiobutton "$danceaction" "upperstripunderbreasts">></label> | <</if>> <<else>> <label><span class="meek">Strip $worn.upper.name</span> <<combatexhibitionist1>> <<radiobutton "$danceaction" "upperstripunderchest">></label> | <</if>> <<else>> <<if $player.breastsize gte 3>> <<if hasSexStat("exhibitionism", 4)>> <label><span class="meek">Strip $worn.upper.name</span> <<combatexhibitionist4>> <<radiobutton "$danceaction" "upperstripbreasts">></label> | <</if>> <<elseif $player.gender_appearance isnot "m" and $worn.lower.gender isnot "m">> <<if hasSexStat("exhibitionism", 4)>> <label><span class="meek">Strip $worn.upper.name</span> <<combatexhibitionist4>> <<radiobutton "$danceaction" "upperstripfchest">></label> | <</if>> <<else>> <label><span class="meek">Strip $worn.upper.name</span> <<combatexhibitionist1>> <<radiobutton "$danceaction" "upperstripmchest">></label> | <</if>> <</if>> <</if>> <<if !$worn.lower.type.includes("naked") and _middleOutfit is false>> <<if !$worn.under_lower.type.includes("naked")>> <<if hasSexStat("exhibitionism", 3)>> <label><span class="meek">Strip $worn.lower.name</span> <<combatexhibitionist3>> <<radiobutton "$danceaction" "lowerstripunder">></label> | <</if>> <<else>> <<if hasSexStat("exhibitionism", 5)>> <label><span class="meek">Strip $worn.lower.name</span> <<combatexhibitionist5>> <<radiobutton "$danceaction" "lowerstripnude">></label> | <</if>> <</if>> <</if>> <<if _underOutfit>> <<if !$worn.lower.type.includes("naked") and !$worn.upper.type.includes("naked")>> <<if setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1>> <<if hasSexStat("exhibitionism", 3)>> <label><span class="meek">Strip $worn.under_upper.name</span> <<combatexhibitionist3>> <<radiobutton "$danceaction" "underoutfitstripskirt">></label> | <</if>> <<elseif $worn.upper.open is 1>> <<if hasSexStat("exhibitionism", 3)>> <label><span class="meek">Strip $worn.under_upper.name</span> <<combatexhibitionist3>> <<radiobutton "$danceaction" "underoutfitstripopen">></label> | <</if>> <</if>> <<elseif !$worn.lower.type.includes("naked")>> <<if $player.breastsize gte 3>> <<if hasSexStat("exhibitionism", 4)>> <label><span class="meek">Strip $worn.under_upper.name</span> <<combatexhibitionist4>> <<radiobutton "$danceaction" "underoutfitstripbreasts">></label> | <</if>> <<elseif $player.gender_appearance isnot "m" and $worn.under_lower.gender isnot "m">> <<if hasSexStat("exhibitionism", 4)>> <label><span class="meek">Strip $worn.under_upper.name</span> <<combatexhibitionist4>> <<radiobutton "$danceaction" "underoutfitstripchest">></label> | <</if>> <<else>> <<if hasSexStat("exhibitionism", 3)>> <label><span class="meek">Strip $worn.under_upper.name</span> <<combatexhibitionist3>> <<radiobutton "$danceaction" "underoutfitstripunder">></label> | <</if>> <</if>> <<else>> <<if hasSexStat("exhibitionism", 5)>> <label><span class="meek">Strip $worn.under_upper.name</span> <<combatexhibitionist5>> <<radiobutton "$danceaction" "underoutfitstripnude">></label> | <</if>> <</if>> <</if>> <<if !$worn.under_upper.type.includes("naked") and _underOutfit is false>> <<if !$worn.upper.type.includes("naked") and $worn.upper.open is 1>> <label><span class="meek">Strip $worn.under_upper.name</span> <<combatexhibitionist1>> <<radiobutton "$danceaction" "underupperstripopen">></label> | <<elseif $player.breastsize gte 3>> <<if hasSexStat("exhibitionism", 4)>> <label><span class="meek">Strip $worn.under_upper.name</span> <<combatexhibitionist4>> <<radiobutton "$danceaction" "underupperstripbreasts">></label> | <</if>> <<elseif $player.gender_appearance isnot "m" and $worn.under_lower.gender isnot "m">> <<if hasSexStat("exhibitionism", 4)>> <label><span class="meek">Strip $worn.under_upper.name</span> <<combatexhibitionist4>> <<radiobutton "$danceaction" "underupperstripfchest">></label> | <</if>> <<else>> <label><span class="meek">Strip $worn.under_upper.name</span> <<combatexhibitionist1>> <<radiobutton "$danceaction" "underupperstripmchest">></label> | <</if>> <</if>> <<if !$worn.under_lower.type.includes("naked") and _underOutfit is false>> <<if !$worn.lower.type.includes("naked") and setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1>> <<if hasSexStat("exhibitionism", 3)>> <label><span class="meek">Strip $worn.under_lower.name</span> <<combatexhibitionist3>> <<radiobutton "$danceaction" "understripskirt">></label> | <</if>> <<elseif $worn.lower.type.includes("naked")>> <<if hasSexStat("exhibitionism", 5)>> <label><span class="meek">Strip $worn.under_lower.name</span> <<combatexhibitionist5>> <<radiobutton "$danceaction" "understripnude">></label> | <</if>> <</if>> <</if>> <</if>> <</widget>> <<widget "dance_stage_cum">> <<if $dance_stage_cum is undefined>> <<set $dance_stage_cum to 0>> <</if>> <<if _args[0]>> <<set $dance_stage_cum += _args[0]>> <</if>> <</widget>> <<widget "dance_private_init">> <<if $dance_place isnot 0>> <<saveNPC $dance_place chosen_npc>> <<saveNPC 0 zero_npc>> <<clearsinglenpc $dance_place>> <<clearsinglenpc 0>> <<loadNPC 0 chosen_npc>> <<loadNPC $dance_place zero_npc>> <<clearNPC zero_npc>> <<clearNPC chosen_npc>> <</if>> <<set $enemyno to 1>> <<unset $corruptionDancing>> <<set $phase to 0>> <<person1>> <</widget>><<widget "img">> <<if !_thermoDisable>> <<thermometer>> <</if>> <div id="imgInv"> <<if $condoms>> <div><<condomsSidebar>></div> <<else>> <div></div> <</if>> <<if $spraymax>> <div><<peppersprays>></div> <</if>> </div> <div id="img"> <<canvasimg "mainCanvas">> </div> <div id="characterTooltip"></div> <</widget>><<widget "baseClothingStrings">> <<set _worn = $worn[_args[0]]>> <<set _class to 'anim-idle-2f' + (_worn.colour_sidebar and typeof(_worn.colour) == "string" ? ' clothes-'+_worn.colour.replace(/ /g, '-'):'')>> <<set _classAcc to 'anim-idle-2f ' + (_worn.accessory_colour_sidebar and typeof(_worn.accessory_colour) == "string" ? ' clothes-'+_worn.accessory_colour.replace(/ /g, '-') :'')>> <<set _style to (_worn.colourCustom ? _worn.colourCustom :'')>> <<set _styleAcc to (_worn.accessory_colourCustom ? _worn.accessory_colourCustom :'')>> <</widget>> <<widget "baseClothingImg">> <<if $worn[_args[0]].name isnot "naked">> <<baseClothingStrings _args[0]>> <div @class="'clothes-div layer-'+_args[0]"> <<if $worn[_args[0]].mainImage isnot 0>> <img @class="_class" @src="'img/clothes/'+[_args[0]]+'/' + $worn[_args[0]].variable + '/' + 'full.png'" @style="_style"> <</if>> <<if $worn[_args[0]].accessory is 1>> <img @class="_classAcc" @src="'img/clothes/'+[_args[0]]+'/' + $worn[_args[0]].variable + '/' + 'acc.png'" @style="_styleAcc"> <</if>> </div> <<if $worn[_args[0]].back_img is 1>> <div @class="'clothes-div layer-'+_args[0]+'-back'"> <img @class="$worn[_args[0]].back_img_colour is 'secondary' ? _classAcc : _class" @src="'img/clothes/'+[_args[0]]+'/' + $worn[_args[0]].variable + '/' + 'back.png'" @style="_styleAcc"> </div> <</if>> <</if>> <</widget>> <<widget "neckimg">> <<if $worn.neck.name isnot "naked">> <<if $worn.neck.name is "necktie">> <<baseClothingStrings "neck">> <<if $worn.upper.has_collar is 1>> <<set _tieimg = "full_nocollar">> <<else>> <<set _tieimg = "full">> <</if>> <div @class="'clothes-div layer-neck'"> <img @class="_class" @src="'img/clothes/neck/' + $worn.neck.variable + '/' + _tieimg + '.png'" @style="_style"> <img @class="_classAcc" @src="'img/clothes/neck/' + $worn.neck.variable + '/' + 'acc.png'" @style="_styleAcc"> <<if $worn.neck.leash is 1>> <img @class="_class" @src="'img/clothes/neck/collar/leash.png'"> <</if>> </div> <<else>> <<baseClothingImg "neck">> <</if>> <</if>> <</widget>> <<widget "handsimg">> <<if $worn.hands.name isnot "naked">> <<baseClothingStrings "hands">> <div @class="'clothes-div layer-hands'"> <<if $worn.hands.mainImage isnot 0>> <img @class="_class" @src="'img/clothes/hands/' + $worn.hands.variable + '/' + 'full.png'" @style="_style"> <</if>> <<if $worn.hands.leftImage is 1 and $leftarm isnot "bound" and $leftarm isnot "grappled" and $leftarm isnot "behind">> <<set _leftImage to "left">> <<if _coverLeft is true>> <<run _leftImage += "_cover">> <</if>> <img @class="_class" @src="'img/clothes/hands/' + $worn.hands.variable + '/' + _leftImage + '.png'" @style="_style"> <<if $worn.hands.accessory is 1>> <img @class="_classAcc" @src="'img/clothes/hands/' + $worn.hands.variable + '/' + _leftImage + '_acc.png'" @style="_styleAcc"> <</if>> <</if>> <<if $worn.hands.rightImage is 1 and $rightarm isnot "bound" and $rightarm isnot "grappled" and $rightarm isnot "behind">> <<set _rightImage to "right">> <<if _coverRight is true>> <<run _rightImage += "_cover">> <</if>> <img @class="_class" @src="'img/clothes/hands/' + $worn.hands.variable + '/' + _rightImage + '.png'" @style="_style"> <<if $worn.hands.accessory is 1>> <img @class="_classAcc" @src="'img/clothes/hands/' + $worn.hands.variable + '/' + _rightImage + '_acc.png'" @style="_styleAcc"> <</if>> <</if>> </div> <</if>> <</widget>> <<widget "underupperimg">> <<if $worn.under_upper.name isnot "naked">> <<baseClothingStrings "under_upper">> <<switch $underupperwetstage>> <<case 1>><<set _underUpperWetness to " clothes-damp">> <<case 2>><<set _underUpperWetness to " clothes-wet">> <<case 3>><<set _underUpperWetness to " clothes-drenshed">> <<default>><<set _underUpperWetness to "">> <</switch>> <<if $worn.under_upper.integrity lte (clothingData('under_upper',$worn.under_upper,'integrity_max') / 10) * 2>> <<set _imgName to "tattered">> <<elseif $worn.under_upper.integrity lte (clothingData('under_upper',$worn.under_upper,'integrity_max') / 10) * 5>> <<set _imgName to "torn">> <<elseif $worn.under_upper.integrity lte (clothingData('under_upper',$worn.under_upper,'integrity_max') / 10) * 9>> <<set _imgName to "frayed">> <<else>> <<set _imgName to "full">> <</if>> <div @class="'clothes-div layer-under_upper' + _underUpperWetness"> <<if $worn.under_upper.mainImage isnot 0>> <img @class="_class" @src="'img/clothes/under_upper/' + $worn.under_upper.variable + '/' + _imgName + '.png'" @style="_style"> <</if>> <<if setup.clothes.under_upper[clothesIndex('under_upper', $worn.under_upper)].breast_img is 1>> <img @class="_class" @src="'img/clothes/under_upper/' + $worn.under_upper.variable + '/' + (Math.min(_breastSize, 5)) + '.png'" @style="_style"> <</if>> <<if $worn.under_upper.accessory is 1>> <img @class="_classAcc" @src="'img/clothes/under_upper/' + $worn.under_upper.variable + '/' + 'acc' + ($worn.under_upper.accessory_integrity_img ? '_' + _imgName : '') + '.png'" @style="_styleAcc"> <</if>> <<if $worn.under_upper.breast_acc_img is 1>> <img @class="_classAcc" @src="'img/clothes/under_upper/' + $worn.under_upper.variable + '/' + (Math.min(_breastSize, 5)) + '_acc.png'" @style="_styleAcc"> <</if>> </div> <<set _sleeveClass to { "": _class, "primary": _class, "no": "", "secondary": _classAcc }[$worn.under_upper.sleeve_colour||""]>> <<if _coverRight isnot undefined and $worn.under_upper.sleeve_img is 1>> <div @class="'clothes-div layer-rightarmunderclothes' + _underUpperWetness"> <<if _coverRight is true>> <img @class="_sleeveClass" @src="'img/clothes/under_upper/' + $worn.under_upper.variable + '/' + 'right_cover.png'" @style="_style"> <<else>> <img @class="_sleeveClass" @src="'img/clothes/under_upper/' + $worn.under_upper.variable + '/' + 'right.png'" @style="_style"> <</if>> </div> <</if>> <<if _coverLeft isnot undefined and $worn.under_upper.sleeve_img is 1>> <div @class="'clothes-div layer-leftarmunderclothes' + _underUpperWetness"> <<if _coverLeft is true>> <img @class="_sleeveClass" @src="'img/clothes/under_upper/' + $worn.under_upper.variable + '/' + 'left_cover.png'" @style="_style"> <<else>> <img @class="_sleeveClass" @src="'img/clothes/under_upper/' + $worn.under_upper.variable + '/' + 'left.png'" @style="_style"> <</if>> </div> <</if>> <</if>> <</widget>> <<widget "underlowerimg">> <<if $worn.under_lower.name isnot "naked">> <<baseClothingStrings "under_lower">> <<switch $underlowerwetstage>> <<case 1>><<set _underlowerWetness to " clothes-damp">> <<case 2>><<set _underlowerWetness to " clothes-wet">> <<case 3>><<set _underlowerWetness to " clothes-drenshed">> <<default>><<set _underlowerWetness to "">> <</switch>> <<if $worn.under_lower.integrity lte (clothingData('under_lower',$worn.under_lower,'integrity_max') / 10) * 2>> <<set _imgName to "tattered">> <<elseif $worn.under_lower.integrity lte (clothingData('under_lower',$worn.under_lower,'integrity_max') / 10) * 5>> <<set _imgName to "torn">> <<elseif $worn.under_lower.integrity lte (clothingData('under_lower',$worn.under_lower,'integrity_max') / 10) * 9>> <<set _imgName to "frayed">> <<else>> <<set _imgName to "full">> <</if>> <<if $worn.under_lower.mainImage isnot 0 and $worn.under_lower.high_img is 1>> <div @class="'clothes-div layer-under_lower-high' + _underlowerWetness"> <img @class="_class" @src="'img/clothes/under_lower/' + $worn.under_lower.variable + '/' + _imgName + '.png'" @style="_style"> </div> <</if>> <div @class="'clothes-div layer-under_lower' + _underlowerWetness"> <<if $worn.under_lower.mainImage isnot 0 and $worn.under_lower.high_img isnot 1>> <img @class="_class" @src="'img/clothes/under_lower/' + $worn.under_lower.variable + '/' + _imgName + '.png'" @style="_style"> <</if>> <<if $worn.under_lower.accessory is 1>> <img @class="_classAcc" @src="'img/clothes/under_lower/' + $worn.under_lower.variable + '/' + 'acc.png'" @style="_styleAcc"> <</if>> </div> <<if $worn.under_lower.penis_img is 1 and $player.penisExist>> <div @class="'clothes-div layer-under_lower-top' + _underlowerWetness"> <img @class="_class" @src="'img/clothes/under_lower/' + $worn.under_lower.variable + '/' + 'penis.png'" @style="_style"> <<if $worn.under_lower.accessory is 1>> <img @class="_classAcc" @src="'img/clothes/under_lower/' + $worn.under_lower.variable + '/' + 'acc_penis.png'" @style="_styleAcc"> <</if>> </div> <</if>> <</if>> <</widget>> <<widget "lowerimg">> <<if $worn.lower.name isnot "naked">> <<baseClothingStrings "lower">> <<switch $lowerwetstage>> <<case 1>><<set _lowerWetness to " clothes-damp">> <<case 2>><<set _lowerWetness to " clothes-wet">> <<case 3>><<set _lowerWetness to " clothes-drenshed">> <<default>><<set _lowerWetness to "">> <</switch>> <<if $worn.lower.integrity lte (clothingData('lower',$worn.lower,'integrity_max') / 10) * 2>> <<set _imgName to "tattered">> <<elseif $worn.lower.integrity lte (clothingData('lower',$worn.lower,'integrity_max') / 10) * 5>> <<set _imgName to "torn">> <<elseif $worn.lower.integrity lte (clothingData('lower',$worn.lower,'integrity_max') / 10) * 9>> <<set _imgName to "frayed">> <<else>> <<set _imgName to "full">> <</if>> <<if $worn.lower.mainImage isnot 0 and $worn.lower.high_img is 1>> <div @class="'clothes-div layer-lower-high' + _lowerWetness"> <img @class="_class" @src="'img/clothes/lower/' + $worn.lower.variable + '/' + _imgName + '.png'" @style="_style"> </div> <</if>> <div @class="'clothes-div layer-lower' + _lowerWetness"> <<if $worn.lower.mainImage isnot 0 and $worn.lower.high_img isnot 1>> <img @class="_class" @src="'img/clothes/lower/' + $worn.lower.variable + '/' + _imgName + '.png'" @style="_style"> <</if>> <<if $worn.lower.accessory is 1>> <img @class="_classAcc" @src="'img/clothes/lower/' + $worn.lower.variable + '/' + 'acc' + ($worn.lower.accessory_integrity_img ? '_' + _imgName : '') + '.png'" @style="_styleAcc"> <</if>> </div> <<if $worn.lower.back_img is 1>> <div @class="'clothes-div layer-back-lower' + _lowerWetness"> <img @class="$worn.lower.back_img_colour is 'secondary' ? _classAcc : _class" @src="'img/clothes/lower/' + $worn.lower.variable + '/' + 'back.png'" @style="_style"> </div> <</if>> <</if>> <</widget>> <<widget "overlowerimg">> <<if $worn.over_lower.name isnot "naked">> <<baseClothingStrings "over_lower">> <<if $worn.over_lower.integrity lte (clothingData('over_lower',$worn.over_lower,'integrity_max') / 10) * 2>> <<set _imgName to "tattered">> <<elseif $worn.over_lower.integrity lte (clothingData('over_lower',$worn.over_lower,'integrity_max') / 10) * 5>> <<set _imgName to "torn">> <<elseif $worn.over_lower.integrity lte (clothingData('over_lower',$worn.over_lower,'integrity_max') / 10) * 9>> <<set _imgName to "frayed">> <<else>> <<set _imgName to "full">> <</if>> <div class="layer-over_lower"> <<if $worn.over_lower.mainImage isnot 0>> <img @class="_class" @src="'img/clothes/over_lower/' + $worn.over_lower.variable + '/' + _imgName + '.png'" @style="_style"> <</if>> <<if $worn.over_lower.accessory is 1>> <img @class="_classAcc" @src="'img/clothes/over_lower/' + $worn.over_lower.variable + '/' + 'acc.png'" @style="_styleAcc"> <</if>> </div> <<if $worn.over_lower.back_img is 1>> <div class="layer-back-lower"> <img @class="$worn.over_lower.back_img_colour is 'secondary' ? _classAcc : _class" @src="'img/clothes/over_lower/' + $worn.over_lower.variable + '/' + 'back.png'" @style="_style"> </div> <</if>> <</if>> <</widget>> <<widget "genitalsimg">> <<if $worn.genitals.name isnot "naked">> <<set _genitalsColour = ($worn.genitals.colour ? " clothes-"+$worn.genitals.colour.replace(/ /g, '-') : "")>> <div class="layer-genitals"> <<if $worn.genitals.mainImage isnot 0 and !setup.clothes.genitals[clothesIndex('genitals',$worn.genitals)].hideUnderLower.includes($worn.under_lower.name)>> <<if $worn.genitals.name is "chastity cage" and $parasite.penis.name is "urchin">> <<if $worn.genitals.integrity lte (clothingData('genitals',$worn.genitals,'integrity_max') / 10) * 2>> <img @class="'anim-idle-2f' + _genitalsColour" @src="'img/clothes/genitals/' + $worn.genitals.variable + '/' + 'tattered_urchin.png'" @style="$worn.genitals.colourCustom"> <<elseif $worn.genitals.integrity lte (clothingData('genitals',$worn.genitals,'integrity_max') / 10) * 5>> <img @class="'anim-idle-2f' + _genitalsColour" @src="'img/clothes/genitals/' + $worn.genitals.variable + '/' + 'torn_urchin.png'" @style="$worn.genitals.colourCustom"> <<elseif $worn.genitals.integrity lte (clothingData('genitals',$worn.genitals,'integrity_max') / 10) * 9>> <img @class="'anim-idle-2f' + _genitalsColour" @src="'img/clothes/genitals/' + $worn.genitals.variable + '/' + 'frayed_urchin.png'" @style="$worn.genitals.colourCustom"> <<else>> <img @class="'anim-idle-2f' + _genitalsColour" @src="'img/clothes/genitals/' + $worn.genitals.variable + '/' + 'full_urchin.png'" @style="$worn.genitals.colourCustom"> <</if>> <<elseif $worn.genitals.name is "chastity cage" and $parasite.penis.name is "slime">> <<if $worn.genitals.integrity lte (clothingData('genitals',$worn.genitals,'integrity_max') / 10) * 2>> <img @class="'anim-idle-2f' + _genitalsColour" @src="'img/clothes/genitals/' + $worn.genitals.variable + '/' + 'tattered_slime.png'" @style="$worn.genitals.colourCustom"> <<elseif $worn.genitals.integrity lte (clothingData('genitals',$worn.genitals,'integrity_max') / 10) * 5>> <img @class="'anim-idle-2f' + _genitalsColour" @src="'img/clothes/genitals/' + $worn.genitals.variable + '/' + 'torn_slime.png'" @style="$worn.genitals.colourCustom"> <<elseif $worn.genitals.integrity lte (clothingData('genitals',$worn.genitals,'integrity_max') / 10) * 9>> <img @class="'anim-idle-2f' + _genitalsColour" @src="'img/clothes/genitals/' + $worn.genitals.variable + '/' + 'frayed_slime.png'" @style="$worn.genitals.colourCustom"> <<else>> <img @class="'anim-idle-2f' + _genitalsColour" @src="'img/clothes/genitals/' + $worn.genitals.variable + '/' + 'full_slime.png'" @style="$worn.genitals.colourCustom"> <</if>> <<else>> <<if $worn.genitals.integrity lte (clothingData('genitals',$worn.genitals,'integrity_max') / 10) * 2>> <img @class="'anim-idle-2f' + _genitalsColour" @src="'img/clothes/genitals/' + $worn.genitals.variable + '/' + 'tattered.png'" @style="$worn.genitals.colourCustom"> <<elseif $worn.genitals.integrity lte (clothingData('genitals',$worn.genitals,'integrity_max') / 10) * 5>> <img @class="'anim-idle-2f' + _genitalsColour" @src="'img/clothes/genitals/' + $worn.genitals.variable + '/' + 'torn.png'" @style="$worn.genitals.colourCustom"> <<elseif $worn.genitals.integrity lte (clothingData('genitals',$worn.genitals,'integrity_max') / 10) * 9>> <img @class="'anim-idle-2f' + _genitalsColour" @src="'img/clothes/genitals/' + $worn.genitals.variable + '/' + 'frayed.png'" @style="$worn.genitals.colourCustom"> <<else>> <img @class="'anim-idle-2f' + _genitalsColour" @src="'img/clothes/genitals/' + $worn.genitals.variable + '/' + 'full.png'" @style="$worn.genitals.colourCustom"> <</if>> <</if>> <</if>> </div> <</if>> <</widget>> <<widget "upperimg">> <<if $worn.upper.name isnot "naked">> <<baseClothingStrings "upper">> <<switch $upperwetstage>> <<case 1>><<set _upperWetness to " clothes-damp">> <<case 2>><<set _upperWetness to " clothes-wet">> <<case 3>><<set _upperWetness to " clothes-drenshed">> <<default>><<set _upperWetness to "">> <</switch>> <<set _tucked = $upperTucked and !setup.clothes.upper[clothesIndex('upper', $worn.upper)].notuck and $worn.upper.outfitPrimary is undefined ? " tucked" : "">> <<set $_hoodDown to $worn.upper.hoodposition is "down" ? "_down" : "">> <<set $_altPosition to $worn.upper.altposition is "alt" ? "_alt" : "">> <div @class="'clothes-div layer-upper' + _tucked + _upperWetness"> <<if $worn.upper.mainImage isnot 0>> <<if $worn.upper.integrity lte (clothingData('upper',$worn.upper,'integrity_max') / 10) * 2>> <<set _imgName to "tattered">> <<elseif $worn.upper.integrity lte (clothingData('upper',$worn.upper,'integrity_max') / 10) * 5>> <<set _imgName to "torn">> <<elseif $worn.upper.integrity lte (clothingData('upper',$worn.upper,'integrity_max') / 10) * 9>> <<set _imgName to "frayed">> <<else>> <<set _imgName to "full">> <</if>> <img @class="_class" @src="'img/clothes/upper/' + $worn.upper.variable + '/' + _imgName + $_hoodDown + $_altPosition + '.png'" @style="_style"> <</if>> <<if setup.clothes.upper[clothesIndex('upper', $worn.upper)].breast_img is 1>> <img @class="_class" @src="'img/clothes/upper/' + $worn.upper.variable + '/' + (Math.min(_breastSize, 5)) + $_altPosition + '.png'" @style="_style"> <</if>> <<if $worn.upper.accessory is 1>> <img @class="_classAcc" @src="'img/clothes/upper/' + $worn.upper.variable + '/' + 'acc' + ($worn.upper.accessory_integrity_img ? '_' + _imgName : '') + $_hoodDown + $_altPosition + '.png'" @style="_styleAcc"> <</if>> <<if $worn.upper.breast_acc_img is 1>> <img @class="_classAcc" @src="'img/clothes/upper/' + $worn.upper.variable + '/' + (Math.min(_breastSize, 5)) + '_acc.png'" @style="_styleAcc"> <</if>> </div> <<set _sleeveClass to { "": _class, "primary": _class, "no": "", "secondary": _classAcc }[$worn.upper.sleeve_colour||""]>> <<set _altPosition to setup.clothes.upper[clothesIndex('upper', $worn.upper)].altposition is 'alt' ? '_alt' : '' >> <<set _sleeveState to setup.clothes.upper[clothesIndex('upper', $worn.upper)].altsleeve is 'alt' ? '_rolled.png' : '.png'>> <<if _coverRight isnot undefined and setup.clothes.upper[clothesIndex('upper', $worn.upper)].sleeve_img is 1>> <div @class="'clothes-div layer-rightarmclothes' + _upperWetness"> <<if _coverRight is true>> <img @class="_sleeveClass" @src="'img/clothes/upper/' + $worn.upper.variable + '/' + 'right_cover' + _altPosition + _sleeveState" @style="_style"> <<else>> <img @class="_sleeveClass" @src="'img/clothes/upper/' + $worn.upper.variable + '/' + 'right' + _altPosition + _sleeveState" @style="_style"> <</if>> </div> <</if>> <<if _coverLeft isnot undefined and setup.clothes.upper[clothesIndex('upper', $worn.upper)].sleeve_img is 1>> <div @class="'clothes-div layer-leftarmclothes' + _upperWetness"> <<if _coverLeft is true>> <img @class="_sleeveClass" @src="'img/clothes/upper/' + $worn.upper.variable + '/' + 'left_cover' + _altPosition + _sleeveState" @style="_style"> <<else>> <img @class="_sleeveClass" @src="'img/clothes/upper/' + $worn.upper.variable + '/' + 'left' + _altPosition + _sleeveState" @style="_style"> <</if>> </div> <</if>> <</if>> <</widget>> <<widget "overupperimg">> <<if $worn.over_upper.name isnot "naked">> <<baseClothingStrings "over_upper">> <<if $worn.over_upper.integrity lte (clothingData('over_upper',$worn.over_upper,'integrity_max') / 10) * 2>> <<set _imgName to "tattered">> <<elseif $worn.over_upper.integrity lte (clothingData('over_upper',$worn.over_upper,'integrity_max') / 10) * 5>> <<set _imgName to "torn">> <<elseif $worn.over_upper.integrity lte (clothingData('over_upper',$worn.over_upper,'integrity_max') / 10) * 9>> <<set _imgName to "frayed">> <<else>> <<set _imgName to "full">> <</if>> <div class="layer-over_upper"> <<if $worn.over_upper.mainImage isnot 0>> <img @class="_class" @src="'img/clothes/over_upper/' + $worn.over_upper.variable + '/' + _imgName + '.png'" @style="_style"> <</if>> <<if setup.clothes.over_upper[clothesIndex('over_upper', $worn.over_upper)].breast_img is 1>> <img @class="_class" @src="'img/clothes/over_upper/' + $worn.over_upper.variable + '/' + (Math.min(_breastSize, 5)) + '.png'" @style="_style"> <</if>> <<if $worn.over_upper.accessory is 1>> <img @class="_classAcc" @src="'img/clothes/over_upper/' + $worn.over_upper.variable + '/' + 'acc.png'" @style="_styleAcc"> <</if>> </div> <<set _sleeveClass to { "": _class, "primary": _class, "no": "", "secondary": _classAcc }[$worn.over_upper.sleeve_colour||""]>> <<if _coverRight isnot undefined and setup.clothes.over_upper[clothesIndex('over_upper', $worn.over_upper)].sleeve_img is 1>> <div class="layer-rightarmoverclothes"> <<if _coverRight is true>> <img @class="_sleeveClass" @src="'img/clothes/over_upper/' + $worn.over_upper.variable + '/' + 'right_cover.png'" @style="_style"> <<else>> <img @class="_sleeveClass" @src="'img/clothes/over_upper/' + $worn.over_upper.variable + '/' + 'right.png'" @style="_style"> <</if>> </div> <</if>> <<if _coverLeft isnot undefined and setup.clothes.over_upper[clothesIndex('over_upper', $worn.over_upper)].sleeve_img is 1>> <div class="layer-leftarmoverclothes"> <<if _coverLeft is true>> <img @class="_sleeveClass" @src="'img/clothes/over_upper/' + $worn.over_upper.variable + '/' + 'left_cover.png'" @style="_style"> <<else>> <img @class="_sleeveClass" @src="'img/clothes/over_upper/' + $worn.over_upper.variable + '/' + 'left.png'" @style="_style"> <</if>> </div> <</if>> <</if>> <</widget>> <<widget "imgOpacity">> <<if _underUpperOpacity is undefined>> <<set _opacity to 1>> <<if !$worn.under_upper.type.includes("swim")>> <<if $underupperwetstage gte 3>> <<set _opacity = Math.clamp(_opacity - 0.5, 0, 1)>> <<elseif $underupperwetstage gte 2>> <<set _opacity = Math.clamp(_opacity - 0.25, 0, 1)>> <</if>> <</if>> <<set _underUpperOpacity to " opacity("+_opacity+")">> <</if>> <<if _underLowerOpacity is undefined>> <<set _opacity to 1>> <<if !$worn.under_lower.type.includes("swim")>> <<if $underlowerwetstage gte 3>> <<set _opacity = Math.clamp(_opacity - 0.5, 0, 1)>> <<elseif $underlowerwetstage gte 2>> <<set _opacity = Math.clamp(_opacity - 0.25, 0, 1)>> <</if>> <</if>> <<set _underLowerOpacity to " opacity("+_opacity+")">> <</if>> <<if _lowerOpacity is undefined>> <<set _opacity to 1>> <<if !$worn.lower.type.includes("swim")>> <<if $lowerwetstage gte 3>> <<set _opacity = Math.clamp(_opacity - 0.5, 0, 1)>> <<elseif $lowerwetstage gte 2>> <<set _opacity = Math.clamp(_opacity - 0.25, 0, 1)>> <</if>> <</if>> <<set _lowerOpacity to " opacity("+_opacity+")">> <</if>> <<if _upperOpacity is undefined>> <<set _opacity to 1>> <<if !$worn.upper.type.includes("swim")>> <<if $upperwetstage gte 3>> <<set _opacity = Math.clamp(_opacity - 0.5, 0, 1)>> <<elseif $upperwetstage gte 2>> <<set _opacity = Math.clamp(_opacity - 0.25, 0, 1)>> <</if>> <</if>> <<set _upperOpacity to " opacity("+_opacity+")">> <</if>> <</widget>> <<widget "player-base-body">> <div id="img"> <<canvas-player-base-body>> </div> <</widget>>/* Written for a bit of fun over a couple of hours, feel free to mod it in or re-work it. Follow the comments to run in the game. Lollipop Scythe */ /*Run at the start of the game and in version update*/ <<widget "portalPantiesSetup">> <<if $portalPanties is undefined>> <<set $portalPanties to { toPass: 0, totalPassed: 0, cooldown: 0, state: { mouth: null, anus: null, vagina: null, }, ownPenisOrgasms: { mouth: 0, anus: 0, vagina: 0, }, portalPenisOrgasms: { mouth: 0, anus: 0, vagina: 0, }, message: { started: [], continued: [], disappeared: [], finished: [], } }>> <</if>> <</widget>> /* Place '<<portalPantiesPass $pass>>' within <<widget "pass">> */ <<widget "portalPantiesPass">> <<if $event or playerChastity("hidden")>>/*Prevents it from running during events or if the player has a chastity belt*/ <<elseif $worn.under_lower.type.includes("Portal")>> <<set $portalPanties.totalPassed += _args[0]>> <<if $portalPanties.cooldown gte 0 and _args[0] gt 0>> <<set $portalPanties.cooldown to Math.clamp($portalPanties.cooldown - _args[0], 0, 1440)>> <</if>> <<if ["mouth","anus","vagina"].find((location) => $portalPanties.state[location])>> <<set $portalPanties.toPass to Math.clamp($portalPanties.toPass + _args[0], 0, 1440)>> <</if>> <<set $_penisLocation to ["mouth","anus","vagina"].find((location) => $portalPanties.state[location] and $portalPanties.state[location].owner is "pc")>> <<if $portalPanties.cooldown is 0>> /* Attempt to fill a hole */ <<set $_free to []>> <<if !$portalPanties.state.mouth>><<run $_free.push("mouth")>><</if>> <<if !$portalPanties.state.anus>><<run $_free.push("anus")>><</if>> <<if !$portalPanties.state.vagina>><<run $_free.push("vagina")>><</if>> <<set $_playersPPFree to $player.penisExist and $player.penissize gte 0 and !playerChastity("cage") and !$_penisLocation>> <<set $_toFill to $_free[random(0, $_free.length - 1)]>> <<if $_toFill>> <<portalPantiesFillHole $_toFill $_playersPPFree>> <</if>> /* Sets the cooldown, 1440 is 1 day */ <<if between($portalPanties.totalPassed, 0, 1440 * 2)>> <<set $portalPanties.cooldown to 720>> <<elseif between($portalPanties.totalPassed, 1440 * 2, 1440 * 5)>> <<set $portalPanties.cooldown to 360>> <<elseif between($portalPanties.totalPassed, 1440 * 5, 1440 * 10)>> <<set $portalPanties.cooldown to 180>> <<elseif between($portalPanties.totalPassed, 1440 * 10, 1440 * 20)>> <<set $portalPanties.cooldown to 90>> <<else>> <<set $portalPanties.cooldown to 30>> <</if>> <</if>> /*Runs the 'fucking' effect */ <<if $player.vaginaExist>> <<portalPantiesFuck "vagina" `$_penisLocation === "vagina" ? 2 : 1`>> <</if>> <<portalPantiesFuck "anus" `$_penisLocation === "anus" ? 2 : 1`>> <<portalPantiesFuck "mouth" `$_penisLocation === "mouth" ? 2 : 1`>> <<set $portalPanties.toPass to 0>> <<else>> /*Stop the effect if it should no longer apply */ <<set $portalPanties.cooldown to 0>> <<set $portalPanties.toPass to 0>> <<portalPantiesClear "vagina">> <<portalPantiesClear "anus">> <<portalPantiesClear "mouth">> <</if>> <</widget>> <<widget "portalPantiesFillHole">> <<if !$portalPanties.state[_args[0]]>> <<set $portalPanties.state[_args[0]] to { owner: _args[1] ? "pc" : "portal", size: _args[1] ? $player.penissize : random(1,4), timer: _args[1] ? null : random(5,15), type: _args[1] ? "human" : "human", new: true, tempRemoval: false, }>> <</if>> <</widget>> <<widget "portalPantiesFuck">> <<if $portalPanties.state[_args[0]] and !$portalPanties.state[_args[0]].new and !$portalPanties.state[_args[0]].tempRemoval>> <<switch _args[0]>> <<case "vagina">><<arousal `$portalPanties.toPass * _args[1] * 100` "vagina">> <<case "anus">><<arousal `$portalPanties.toPass * _args[1] * 100` "anus">> <<case "mouth">><<arousal `$portalPanties.toPass * _args[1] * 100` "oral">> <</switch>> <<if $portalPanties.state[_args[0]].timer>> <<set $portalPanties.state[_args[0]].timer -= $portalPanties.toPass>> <</if>> <</if>> <</widget>> <<widget "portalPantiesClear">> <<set $portalPanties.state[_args[0]] to null>> <</widget>> /* Place '<<portalPantiesDisplay>>' within '<<widget "effects">>' */ <<widget "portalPantiesDisplay">><<silently>> <<if $worn.under_lower.type.includes("Portal")>> <<if $player.vaginaExist>> <<portalPantiesDisplayItem "vagina">> <</if>> <<portalPantiesDisplayItem "anus">> <<portalPantiesDisplayItem "mouth">> <</if>> <</silently>><<portalPantiesDisplayMessage>> <</widget>> <<widget "portalPantiesDisplayItem">> <<if $portalPanties.state[_args[0]]>> <<set $_disabled to !!$event or !!$NPCList.name>> <<if $_disabled and !$portalPanties.state[_args[0]].tempRemoval and !$portalPanties.state[_args[0]].new>> <<set $portalPanties.message.disappeared.push(_args[0])>> <<set $portalPanties.state[_args[0]].tempRemoval to true>> <<elseif $_disabled>> <<elseif !$_disabled and $portalPanties.state[_args[0]].tempRemoval and !$portalPanties.state[_args[0]].new>> <<set $portalPanties.state[_args[0]].tempRemoval to false>> <<elseif $portalPanties.state[_args[0]].new>> <<set $portalPanties.message.started.push(_args[0])>> <<set $portalPanties.state[_args[0]].new to false>> <<else>> <<set $portalPanties.message.continued.push(_args[0])>> <<if $portalPanties.state[_args[0]].owner is "pc">> <<else>> <<if $portalPanties.state[_args[0]].timer lte 0>> <<set $portalPanties.message.finished.push(_args[0])>> <</if>> <</if>> <</if>> <</if>> <</widget>> <<widget "portalPantiesDisplayMessage">> <<penetrationPainCalculate>> <<set _awareOfPenis to $awareness gte 300>> <<set $_started to $portalPanties.message.started>> <<set $_continued to $portalPanties.message.continued>> <<set $_finished to $portalPanties.message.finished>> <<set $_disappeared to $portalPanties.message.disappeared>> <<set $_startedPlayerPenis to $_started.find((location) => $portalPanties.state[location] and $portalPanties.state[location].owner is "pc")>> <<set $_continuedPlayerPenis to $_continued.find((location) => $portalPanties.state[location] and $portalPanties.state[location].owner is "pc")>> <<set $_penisLocation to ["mouth","anus","vagina"].find((location) => $portalPanties.state[location] and $portalPanties.state[location].owner is "pc")>> <<if $_started.length>> You feel <<if _awareOfPenis>> <<pluralise $_started.length "a foreign penis" "foreign penises">> <<else>> <<pluralise $_started.length "a foreign object" "foreign objects">> <</if>> penetrate your <<print formatList($_started)>><<if $_startedPlayerPenis>>, while your penis is enveloped by <<if _awareOfPenis>>a <<print $_penisLocation>><<else>>something<</if>><</if>>. <</if>> <<if $_continued.length>> <<if !$_started.length>> <<if _awareOfPenis>> The foreign <<pluralise $_continued.length "penis" "penises">> <<else>> The foreign <<pluralise $_continued.length "object">> <</if>> <<else>> <<pluralise $_continued.length "The one" "Those">> <</if>> in your <<print formatList($_continued)>> <<pluralise $_continued.length "is" "are">> constantly thrusting into you<<if $_continuedPlayerPenis>>, while your penis is forced <<if _awareOfPenis>>to thrust into a <<print $_penisLocation>><<else>>in and out of something<</if>><</if>>.<<garousal>> <br> <</if>> <<if $_finished.length>> The one in your <<print formatList($_finished)>> releases something then disappears. <<for $_item range $_finished>> <<portalPantiesPortalCum $_item>> <</for>> <br> <</if>> <<if $_disappeared.length>> You feel the foreign <<if _awareOfPenis>> <<pluralise $_disappeared.length "penis" "penises">> <<else>> <<pluralise $_disappeared.length "object">> <</if>> in your <<print formatList($_disappeared)>> disappear suddenly, leaving you feeling empty. <br> <</if>> <<set _firstItem to true>> <<for $_item range $portalPanties.message.started>> <<portalPantiesDisplayVirginity $_item>> <</for>> <<if $_penisLocation>> <<portalPantiesDisplayVirginity "penis">> <</if>> <<set $portalPanties.message.started to []>> <<set $portalPanties.message.continued to []>> <<set $portalPanties.message.finished to []>> <<set $portalPanties.message.disappeared to []>> <</widget>> /*Every widget below here might need to be checked for issues, didn't spent too long on it */ <<widget "portalPantiesDisplayVirginity">><<silently>> <<switch _args[0]>> <<case "vagina">> <<if $player.virginity.vaginal is true>> <<takeVirginity "Portal Panties" "vaginal">> <<run console.log($vaginalPain, $portalPanties.state[_args[0]].size, $vaginalPain * (1.5 / (5 - ($portalPanties.state[_args[0]].size))))>> <<pain `$vaginalPain * $portalPanties.state[_args[0]].size`>> <<if $sexStats.vagina.pregnancy.totalBirthEvents gt 0>> <<set $_text_output to "<span class='red'>Despite your lack of a hymen, you feel <<if _awareOfPenis>>a penis<<else>>something<</if>> inside you change as your virginity and purity are taken.</span><<fallenTransform>><<ggpain>>">> <<else>> <<if $portalPanties.state[_args[0]].size is 4>> <<set $_text_output to "<span class='red'>Your hymen obliterated, you whimper as your <<pussy>> struggles to accommodate the <<if _awareOfPenis>>penis<<else>>object<</if>>.</span><<fallenTransform>><<ggpain>>">> <<else>> <<set $_text_output to "<span class='red'>Your hymen is torn as your vaginal virginity is taken by the <<if _awareOfPenis>>penis<<else>>object<</if>>.</span><<fallenTransform>><<ggpain>>">> <</if>> <</if>> <</if>> <<case "anus">> <<if $player.virginity.anal is true>> <<takeVirginity "Portal Panties" "anal">> <<pain `$analPain * (1.5 / (5 - ($portalPanties.state[_args[0]].size)))`>> <<if $portalPanties.state[_args[0]].size is 4>> <<set $_text_output to "<span class='red'>You whimper as your virgin anus struggles to accommodate the <<if _awareOfPenis>>penis<<else>>object<</if>>, violating you in a way you hadn't conceived of.</span><<ggpain>>">> <<else>> <<set $_text_output to "<span class='red'>Your anus virginity is taken, the <<if _awareOfPenis>>penis<<else>>object<</if>> violating you in a way you hadn't conceived of.</span><<ggpain>>">> <</if>> <</if>> <<case "mouth">> <<if $player.virginity.oral is true>> <<takeVirginity "Portal Panties" "oral">> <<set $_text_output to "<span class='red'>The <<if _awareOfPenis>>penis<<else>>object<</if>> in your mouth tastes strange.</span><<ggpain>>">> <</if>> <<case "penis">> <<if $player.virginity.penile is true>> <<set $_text_output to "<span class='red'>Your penis virginity is taken.</span><<fallenTransform>>">> <</if>> <</switch>> <</silently>><<if _firstItem>><br><<set _firstItem to false>><</if>><<print $_text_output>> <</widget>> <<widget "portalPantiesPortalCum">> <<switch _args[0]>> <<case "mouth">> <<oralejacstat>><<ejacstat>><<cumswallow $portalPanties.state[_args[0]].type undefined "forced">> <<set $portalPanties.portalPenisOrgasms.mouth++>> <<portalPantiesClear _args[0]>> <<case "anus">> <<recordSperm `{target: "pc", spermOwner: $portalPanties.state[_args[0]].owner, spermType: $portalPanties.state[_args[0]].type, genital: "anus"}`>> <<portalPantiesClear "anus">> <<analejacstat>><<ejacstat>><<set $hunger -= 200>><<set $thirst -= 200>><<set $hygiene += 500>><<bodyliquid "anus" "semen">> <<set $portalPanties.portalPenisOrgasms.anus++>> <<portalPantiesClear _args[0]>> <<case "vagina">> <<recordSperm `{target: "pc", spermOwner: $portalPanties.state[_args[0]].owner, spermType: $portalPanties.state[_args[0]].type}`>> <<portalPantiesClear _args[0]>> <<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vagina" "semen">> <<set $portalPanties.portalPenisOrgasms.vagina++>> <<portalPantiesClear _args[0]>> <</switch>> <</widget>> /* Place within '<<widget "orgasm">>' '<<elseif ["mouth","anus","vagina"].find((location) => $portalPanties.state[location] and $portalPanties.state[location].owner is "pc")>> <<portalPantiesPlayerCum>>' */ <<widget "portalPantiesPlayerCum">> <<if $portalPanties.state.mouth and $portalPanties.state.mouth.owner is "pc">> <span class="pink">You are overcome by sensation. A surge of cum erupts from your penis and goes straight into your mouth.</span> <<oralejacstat>><<ejacstat>><<cumswallow "human" undefined "selfForced">> <<portalPantiesClear "mouth">> <<set $portalPanties.ownPenisOrgasms.mouth++>> <<elseif $portalPanties.state.anus and $portalPanties.state.anus.owner is "pc">> <span class="pink">You are overcome by sensation. A surge of cum erupts from your penis and goes straight into your anus.</span> <<recordSperm `{target: "pc", spermOwner: "pc", spermType: "human", genital: "anus"}`>> <<portalPantiesClear "anus">> <<analejacstat>><<ejacstat>><<set $hunger -= 200>><<set $thirst -= 200>><<set $hygiene += 500>><<bodyliquid "anus" "semen">> <<set $portalPanties.ownPenisOrgasms.anus++>> <<elseif $portalPanties.state.vagina and $portalPanties.state.vagina.owner is "pc">> <span class="pink">You are overcome by sensation. A surge of cum erupts from your penis and goes straight into your <<pussy>>.</span> <<recordSperm `{target: "pc", spermOwner: "pc", spermType: "human"}`>> <<portalPantiesClear "vagina">> <<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vagina" "semen">> <<set $portalPanties.ownPenisOrgasms.vagina++>> <</if>> <</widget>> /* Place within '<<widget "cumswallow">>' '<<elseif _args[2] is "forced">> <<if $ejactrait gte 1>> You swallow it, its <<print either("strong", "bitter", "sweet", "creamy", "sharp", "salty")>> taste pleasing. <<else>> You're forced to swallow it. <</if>> <<set $hunger -= 200>> <<set $thirst -= 200>> <<bodyliquid "mouth" "semen" 1>> <<elseif _args[2] is "selfForced">> <<if $ejactrait gte 1>> You swallow the cum, enjoying its personal taste. <<else>> You're forced to swallow the cum. <</if>> <<set $hunger -= 200>> <<set $thirst -= 200>> <<bodyliquid "mouth" "semen" 1>>' */<div id="clothingShop-div" class="main-shop-div"> <<schoolShop-main>> </div><<widget "schoolShop-main">> <<set $outside to 0>><<set $location to "school">><<effects>> <<set $shopName = "school">> <<if $tryOn.autoReset isnot false>><<tryOnReset>><</if>> <<if $school_shop_intro isnot 1>> <<set $school_shop_intro to 1>> Sydney nods, leading you to the other end of the counter. Shirts, trousers, and skirts hang from circular stands, while swimsuits stay compactly folded on shelves. <br><br> "You can find just about anything that matches the dress code here," <<he>> says, gesturing to the wall behind <<him>>. "There's also a small changing room, right this way. N-no one will peek, don't worry." <<His>> face turns red. <br><br> <<link [[Next|School Library Shop]]>><<endevent>><</link>> <br> <<else>> Around the corner from the rental counter is a small area reserved for school-sanctioned clothing. Shirts, trousers, and skirts hang from circular stands, while swimsuits stay compactly folded on shelves. <br><br> <<if $schoolShopAction is undefined>> <<set $schoolShopAction to []>> <</if>> <<run statusCheck("Sydney")>> <<if $schoolShopAction.includes("wear") or $schoolShopAction.includes("try") or $schoolShopAction.includes("under")>> <<if random(1,10) is 1>> You hear Sydney speaking outside. "Um, the changing room is currently occupied! Sorry." <<elseif !$daily.sydney.peek and random(1,10) is 2 and (_sydneyStatus.includes("corrupt") or _sydneyStatus.includes("Lust"))>> <<set $daily.sydney.peek to true>><<set $sydneySeen.pushUnique("changing room")>> You hear the curtain shift behind you. You quickly turn around and hear a gasp. <span class="lewd">Sydney's face disappears behind the curtain.</span> <<stress 3>><<gstress>><<npcincr Sydney lust 1>><<glust>><<arousal 50>><<garousal>> <<else>> Sydney patiently waits for you outside the changing room. <</if>> <<else>> Sydney patiently waits for you. <</if>> <br><br> <div id="tryonstats-div"><<tryOnStats>></div> <<unset $shopListStartCount>> <<unset $clothes_choice>> <<set $shopPage = 0>> <span>Warmth:</span> <<warmthscale>> <div id="warmth-description"> <<warmth_description>> </div> <br><br> <<clothingcategoryicon "all">> <<link "View All">><<replace "#clothingShop-div">><<AllShop>><</replace>><</link>> <br><br> <<if $debug is 1>> <<clothingcategoryicon "overoutfit">> <<link "View Over Outfits">><<replace "#clothingShop-div">><<OverOutfitShop>><</replace>><</link>> <br><br> <</if>> /* *<<clothingcategoryicon "outfit">> *<<link "View Outfits">><<replace "#clothingShop-div">><<OutfitShop>><</replace>><</link>> *<br> */ <<clothingcategoryicon "upper">> <<link "View Tops">><<replace "#clothingShop-div">><<TopShop>><</replace>><</link>> <br> <<clothingcategoryicon "lower">> <<link "View Bottoms">><<replace "#clothingShop-div">><<BottomShop>><</replace>><</link>> <br><br> <<clothingcategoryicon "underoutfit">> <<link "View Under Outfits">><<replace "#clothingShop-div">><<UnderOutfitShop>><</replace>><</link>> <br> <<clothingcategoryicon "underupper">> <<link "View Under Tops">><<replace "#clothingShop-div">><<UnderTopShop>><</replace>><</link>> <br> <<clothingcategoryicon "underlower">> <<link "View Under Bottoms">><<replace "#clothingShop-div">><<UnderBottomShop>><</replace>><</link>> <br><br> <<clothingcategoryicon "head">> <<link "View Head Accessories">><<replace "#clothingShop-div">><<HeadShop>><</replace>><</link>> <br> <<clothingcategoryicon "face">> <<link "View Face Accessories">><<replace "#clothingShop-div">><<FaceShop>><</replace>><</link>> <br> /* *<<clothingcategoryicon "neck">> *<<link "View Neck Accessories">><<replace "#clothingShop-div">><<NeckShop>><</replace>><</link>> *<br>*/ <<clothingcategoryicon "handheld">> <<link "View Handheld Items">><<replace "#clothingShop-div">><<HandheldShop>><</replace>><</link>> <br> <<clothingcategoryicon "hand">> <<link "View Hand Accessories">><<replace "#clothingShop-div">><<HandsShop>><</replace>><</link>> <br> <<clothingcategoryicon "legs">> <<link "View Legwear">><<replace "#clothingShop-div">><<LegsShop>><</replace>><</link>> <br> <<clothingcategoryicon "feet">> <<link "View Shoes">><<replace "#clothingShop-div">><<FeetShop>><</replace>><</link>> <br><br> <<run linkifyDivs('.button-back-to-shop')>> <<if $tryOn.value isnot 0>> <<icon "hanger.png">><<link "Return clothes">><<clothingReset>> <<updatesidebarimg>> <<updatesidebardescription>> <<updateallure>> <<updatewarmthscale>> <<updatewarmthdescription>> <<updateclothingshop>> <<run updateMoment()>> <</link>> <br> <<if $tryOn.value gt 0 and $tryOn.value lte $money>> <<sendItemsToDropdown>> <<highicon>><<link "Buy clothes">><<buyTryOnClothes "wear">><<updatesidebarmoney>><<updateclothingshop>><</link>> <br> <<wardrobeicon>><<link "Buy clothes and send to wardrobe">> <<buyTryOnClothes "wardrobe">> <<updatesidebarmoney>> <<updatesidebarimg>> <<updatesidebardescription>> <<updateallure>> <<updatewarmthscale>> <<updatewarmthdescription>> <<updateclothingshop>> <</link>> <br> <</if>> <<elseif $tryOn.value is 0>> <<getouticon>><<link [[Leave|Library Rental Counter]]>><<shopClothingFilterReset>><<ShowUnderEquip "normal">><<endnpc>><<unset $clothes_choice>><<set $tryOn.autoReset to true>><<set $eventskip to 1>><<unset $tempDisable>><<shopCommandoCheck>><<endevent>><</link>> <br><br> <</if>> <</if>> <</widget>><<widget "storeactions">> <<set _temp_strip to _args[0]>> <<exposure>> <<outfitChecks>> <<otherOutfitChecks>> <<if $action_unclad_over_outfit is 1>> <<unset $action_unclad_over_outfit>> <<if $worn.upper.name isnot "naked" and $worn.lower.name isnot "naked">> You remove your $worn.over_upper.name. <<elseif _temp_strip is "wolfcave">> You remove your $worn.over_upper.name. They may be animals, but stripping in front of them makes a chill run through your spine. <br> <<elseif _temp_strip is "birdtower">> You remove your $worn.over_upper.name.<<if $bird.activity is "bathe">> The <<beasttype>> doesn't seem to mind your exposure.<</if>> <br> <br> <<else>> You check to make sure no one is around, then slowly remove your $worn.over_upper.name. Despite being alone, doing this in a public space makes a chill run through your spine. <br> <</if>> <<overupperundress _temp_strip>> <</if>> <<if $action_unclad_over_upper is 1>> <<unset $action_unclad_over_upper>> <<if $worn.upper.name isnot "naked">> You remove your $worn.over_upper.name. <<elseif _temp_strip is "wolfcave">> You remove your $worn.over_upper.name. They may be animals, but stripping in front of them makes your <<nipples>> erect and your newly-exposed skin tingle. <br> <<elseif _temp_strip is "birdtower">> You remove your $worn.over_upper.name.<<if $bird.activity is "bathe">> The <<beasttype>> doesn't seem to mind your exposure.<</if>> <br> <br> <<else>> You check to make sure no one is around, then slowly remove your $worn.over_upper.name. Despite being alone, doing this in a public space makes your <<nipples>> erect and your newly-exposed skin tingle. <br> <</if>> <<overupperundress _temp_strip>> <</if>> <<if $action_unclad_over_lower is 1>> <<unset $action_unclad_over_lower>> <<if $worn.lower.name isnot "naked">> You remove your $worn.over_lower.name. <<elseif _temp_strip is "wolfcave">> You remove your $worn.over_lower.name. They may be animals, but stripping in front of them makes you shiver delightfully. <br> <<elseif _temp_strip is "birdtower">> You remove your $worn.over_lower.name.<<if $bird.activity is "bathe">> The <<beasttype>> doesn't seem to mind your exposure.<</if>> <br> <<else>> You check to make sure no one is around, then slowly remove your $worn.over_lower.name. Despite being alone, doing this in a public space makes you shiver delightfully. <br> <</if>> <<overlowerundress _temp_strip>> <</if>> <<if $action_unclad_outfit is 1>> <<unset $action_unclad_outfit>> <<if _temp_strip is "wolfcave">> You remove your $worn.upper.name. They may be animals, but stripping in front of them makes a chill run through your spine. <br> <<elseif _temp_strip is "birdtower">> You remove your $worn.upper.name.<<if $bird.activity is "bathe">> The <<beasttype>> doesn't seem to mind your exposure.<</if>> <br> <<else>> You check to make sure no one is around, then slowly remove your $worn.upper.name. Despite being alone, doing this in a public space makes a chill run through your spine. <br> <</if>> <<upperundress _temp_strip>> <</if>> <<if $action_unclad_upper is 1>> <<unset $action_unclad_upper>> <<if _temp_strip is "wolfcave">> You remove your $worn.upper.name. They may be animals, but stripping in front of them makes your <<nipples>> erect and your newly-exposed skin tingle. <br> <<elseif _temp_strip is "birdtower">> You remove your $worn.upper.name.<<if $bird.activity is "bathe">> The <<beasttype>> doesn't seem to mind your exposure.<</if>> <br> <<else>> You check to make sure no one is around, then slowly remove your $worn.upper.name. Despite being alone, doing this in a public space makes your <<nipples>> erect and your newly-exposed skin tingle. <br> <</if>> <<upperundress _temp_strip>> <</if>> <<if $action_unclad_lower is 1>> <<unset $action_unclad_lower>> <<if _temp_strip is "wolfcave">> You remove your $worn.lower.name. They may be animals, but stripping in front of them makes you shiver delightfully. <br> <<elseif _temp_strip is "birdtower">> You remove your $worn.lower.name.<<if $bird.activity is "bathe">> The <<beasttype>> doesn't seem to mind your exposure.<</if>> <br> <<else>> You check to make sure no one is around, then slowly remove your $worn.lower.name. Despite being alone, doing this in a public space makes you shiver delightfully. <br> <</if>> <<lowerundress _temp_strip>> <</if>> <<if $action_unclad_under_outfit is 1>> <<unset $action_unclad_under_outfit>> <<if _temp_strip is "wolfcave">> You remove your $worn.under_upper.name. They may be animals, but stripping in front of them makes a chill run through your spine. <br> <<elseif _temp_strip is "birdtower">> You remove your $worn.under_upper.name.<<if $bird.activity is "bathe">> The <<beasttype>> doesn't seem to mind your exposure.<</if>> <br> <<else>> You check to make sure no one is around, then slowly remove your $worn.under_upper.name. Despite being alone, doing this in a public space makes a chill run through your spine. <br> <</if>> <<underupperundress _temp_strip>><<underlowerundress _temp_strip>> <</if>> <<if $action_unclad_under_upper is 1>> <<unset $action_unclad_under_upper>> <<if _temp_strip is "wolfcave">> You remove your $worn.under_upper.name. They may be animals, but stripping in front of them makes your skin and <<genitals 1>> tingle. <br> <<elseif _temp_strip is "birdtower">> You remove your $worn.under_upper.name.<<if $bird.activity is "bathe">> The <<beasttype>> doesn't seem to mind your exposure.<</if>> <br> <<else>> You check to make sure no one is around, then slowly remove your $worn.under_upper.name. Despite being alone, doing this in a public space makes your skin and <<genitals 1>> tingle. <br> <</if>> <<underupperundress _temp_strip>> <</if>> <<if $action_unclad_under_lower is 1>> <<unset $action_unclad_under_lower>> <<if _temp_strip is "wolfcave">> You remove your $worn.under_lower.name. They may be animals, but stripping in front of them makes your skin and <<genitals 1>> tingle. <br> <<elseif _temp_strip is "birdtower">> You remove your $worn.under_lower.name.<<if $bird.activity is "bathe">> The <<beasttype>> doesn't seem to mind your exposure.<</if>> <br> <<else>> You check to make sure no one is around, then slowly remove your $worn.under_lower.name. Despite being alone, doing this in a public space makes your skin and <<genitals 1>> tingle. <br> <</if>> <<underlowerundress _temp_strip>> <</if>> <<if $action_unclad_legs is 1>> <<unset $action_unclad_legs>> <<if _temp_strip is "wolfcave">> You remove your $worn.legs.name. <br> <<elseif _temp_strip is "birdtower">> You remove your $worn.legs.name<<if $worn.feet.type.includes("naked")>> and dip your feet into the water<</if>>.<<if $bird.activity is "bathe">> The <<beasttype>> looks at your legs, then at <<bhis>> own quizzically.<</if>> <<else>> You remove your $worn.legs.name. <br> <</if>> <<legsundress _temp_strip>> <</if>> <<if $action_unclad_feet is 1>> <<unset $action_unclad_feet>> <<if _temp_strip is "wolfcave">> You remove your $worn.feet.name. You're glad you aren't the only one barefoot here. <br> <<elseif _temp_strip is "birdtower">> You remove your $worn.feet.name<<if $worn.legs.type.includes("naked")>> and dip your feet into the water<</if>>.<<if $bird.activity is "bathe" and $monster is 1>> The <<beasttype>> almost looks envious of your ability to hide your "talons".<</if>> <<else>> You remove your $worn.feet.name. <br> <</if>> <<feetundress _temp_strip>> <</if>> <<if $action_unclad_neck is 1>> <<unset $action_unclad_neck>> <<if _temp_strip is "wolfcave">> You remove your $worn.neck.name. <br> <<elseif _temp_strip is "birdtower">> You remove your $worn.neck.name. <<else>> You remove your $worn.neck.name. <br> <</if>> <<neckundress _temp_strip>> <</if>> <<if $action_unclad_over_head is 1>> <<unset $action_unclad_over_head>> <<if _temp_strip is "wolfcave">> You remove your $worn.over_head.name. <br> <<elseif _temp_strip is "birdtower">> You remove your $worn.over_head.name. <<else>> You remove your $worn.over_head.name. <br> <</if>> <<overheadundress _temp_strip>> <</if>> <<if $action_unclad_head is 1>> <<unset $action_unclad_head>> <<if _temp_strip is "wolfcave">> You remove your $worn.head.name. <br> <<elseif _temp_strip is "birdtower">> You remove your $worn.head.name. <<else>> You remove your $worn.head.name. <br> <</if>> <<headundress _temp_strip>> <</if>> <<if $action_unclad_face is 1>> <<unset $action_unclad_face>> You remove your $worn.face.name. <br> <<faceundress _temp_strip>> <</if>> <<if $action_unclad_handheld is 1>> <<unset $action_unclad_handheld>> <<if _temp_strip isnot "lockers" and _temp_strip isnot "lockers2">> You put down your $worn.handheld.name. <br> <</if>> <<handheldundress _temp_strip>> <</if>> <<if $action_unclad_hands is 1>> <<unset $action_unclad_hands>> <<if _temp_strip is "wolfcave">> You remove your $worn.hands.name. You try to think up a pun about being "bear handed", but then remember you're surrounded by wolves, not bears. <br> <<else>> You remove your $worn.hands.name. <br> <</if>> <<handsundress _temp_strip>> <</if>> <<for _active_clothes range Object.keys($store)>> <<for _i to 0; _i lt $store[_active_clothes].length; _i++>> <<if $store[_active_clothes][_i].location is _temp_strip>> <<set _temp_clothes_present to 1>> <</if>> <</for>> <</for>> <<if _temp_clothes_present is 1 and _temp_strip isnot "lakeshore" and _temp_strip isnot "lockers" and _temp_strip isnot "lockers2">> <br> <<dressasyouwereicon>><<link [[Get dressed|$passage]]>><<storeon _temp_strip "noreplace">><<set $eventskip to 1>><</link>> <br> <</if>> /*Just in case some items are removed*/ <<outfitChecks>> <<otherOutfitChecks>> <<set _stripOptions to {}>> <!-- set up the checks --> <<set _over_upper_protected to $worn.over_upper.exposed lt 2 or $player.gender_appearance_without_overwear isnot "f"; _over_lower_protected to $worn.over_lower.exposed lt 2 and !setup.clothes.over_lower[clothesIndex('over_lower', $worn.over_lower)].skirt; _upper_protected to $worn.upper.exposed lt 2 or $player.gender_appearance_without_overwear isnot "f"; _lower_protected to $worn.lower.exposed lt 2 and !setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt; _under_upper_protected to !$worn.under_upper.exposed or $player.gender_appearance_without_overwear isnot "f"; _under_lower_protected to !$worn.under_lower.exposed; >> <<if _temp_strip isnot "lockers" and _temp_strip isnot "lockers2">> <<if !$worn.over_upper.cursed and !$worn.over_lower.cursed and _overOutfit>> <!-- over outfit can be stripped --> <<if hasSexStat("exhibitionism", 2) or ((_lower_protected or _under_lower_protected) and (_upper_protected or _under_upper_protected))>> <!-- pc will still be protected after stripping (or won't care) --> <<set _stripOptions[$worn.over_upper.name] to "stripOverOutfit">> <</if>> <</if>> <<if !$worn.over_upper.cursed and $worn.over_upper.name isnot "naked" and !_overOutfit>> <!-- over_upper can be stripped --> <<if hasSexStat("exhibitionism", 2) or _upper_protected or _under_upper_protected>> <<set _stripOptions[$worn.upper.name] to "stripOverUpper">> <</if>> <</if>> <<if !$worn.over_lower.cursed and $worn.over_lower.name isnot "naked" and !_overOutfit>> <!-- over_lower can be stripped --> <<if hasSexStat("exhibitionism", 3) or _lower_protected or _under_lower_protected>> <<set _stripOptions[$worn.over_lower.name] to "stripOverLower">> <</if>> <</if>> <<if !$worn.upper.cursed and !$worn.lower.cursed and _middleOutfit>> <<if hasSexStat("exhibitionism", 2) or ((_over_lower_protected or _under_lower_protected) and (_over_upper_protected or _under_upper_protected))>> <<set _stripOptions[$worn.upper.name] to "stripOutfit">> <</if>> <</if>> <<if $worn.upper.cursed isnot 1 and $worn.upper.name isnot "naked" and !_middleOutfit>> <<if hasSexStat("exhibitionism", 2) or _over_upper_protected or _under_upper_protected>> <<set _stripOptions[$worn.upper.name] to "stripUpper">> <</if>> <</if>> <<if !$worn.lower.cursed and $worn.lower.name isnot "naked" and !_middleOutfit>> <<if hasSexStat("exhibitionism", 3) or _over_lower_protected or _under_lower_protected>> <<set _stripOptions[$worn.lower.name] to "stripLower">> <</if>> <</if>> <<if !$worn.under_upper.cursed and !$worn.under_lower.cursed and _underOutfit>> <<if hasSexStat("exhibitionism", 2) or ((_over_lower_protected or _lower_protected) and (_over_upper_protected or _upper_protected))>> <<set _stripOptions[$worn.under_upper.name] to "stripUnderOutfit">> <</if>> <</if>> <<if !$worn.under_upper.cursed and $worn.under_upper.name isnot "naked" and !_underOutfit>> <<if hasSexStat("exhibitionism", 2) or _over_upper_protected or _upper_protected>> <<set _stripOptions[$worn.under_upper.name] to "stripUnderUpper">> <</if>> <</if>> <<if !$worn.under_lower.cursed and $worn.under_lower.name isnot "naked" and !_underOutfit>> <<if hasSexStat("exhibitionism", 3) or _over_lower_protected or _lower_protected>> <<set _stripOptions[$worn.under_lower.name] to "stripUnderLower">> <</if>> <</if>> <<if !$worn.legs.cursed and !_otherOutfits.legs and $worn.legs.name isnot "naked">> <<set _stripOptions[$worn.legs.name] to "stripLegs">> <</if>> <<if !$worn.feet.cursed and !_otherOutfits.feet and $worn.feet.name isnot "naked">> <<set _stripOptions[$worn.feet.name] to "stripFeet">> <</if>> <<if !$worn.neck.cursed and !_otherOutfits.neck and $worn.neck.name isnot "naked">> <<set _stripOptions[$worn.neck.name] to "stripNeck">> <</if>> <<if !$worn.over_head.cursed and !_otherOutfits.over_head and $worn.over_head.name isnot "naked">> <<set _stripOptions[$worn.over_head.name] to "stripOverHead">> <</if>> <<if !$worn.head.cursed and !_otherOutfits.head and $worn.head.name isnot "naked">> <<set _stripOptions[$worn.head.name] to "stripHead">> <</if>> <<if !$worn.face.cursed and !_otherOutfits.face and $worn.face.name isnot "naked">> <<set _stripOptions[$worn.face.name] to "stripFace">> <</if>> <<if !$worn.hands.cursed and !_otherOutfits.hands and $worn.hands.name isnot "naked">> <<set _stripOptions[$worn.hands.name] to "stripHands">> <</if>> <</if>> <<if !$worn.handheld.cursed and !_otherOutfits.handheld and $worn.handheld.name isnot "naked">> <<set _stripOptions[$worn.handheld.name] to "stripHandheld">> <</if>> <<if Object.keys(_stripOptions).length gt 0>> <<if _temp_strip isnot "lockers" and _temp_strip isnot "lockers2">> Remove<<if _temp_strip isnot "birdtower">> and hide<</if>> your... <<listbox "$storeActions">> <<optionsfrom _stripOptions>> <</listbox>> <<link [[Confirm|$passage]]>> <<set $eventskip to 1>> <<switch $storeActions>> <<case "stripOverOutfit">><<set $action_unclad_over_outfit to 1>> <<case "stripOverUpper">><<set $action_unclad_over_upper to 1>> <<case "stripOverLower">><<set $action_unclad_over_lower to 1>> <<case "stripOutfit">><<set $action_unclad_outfit to 1>> <<case "stripUpper">><<set $action_unclad_upper to 1>> <<case "stripLower">><<set $action_unclad_lower to 1>> <<case "stripUnderOutfit">><<set $action_unclad_under_outfit to 1>> <<case "stripUnderUpper">><<set $action_unclad_under_upper to 1>> <<case "stripUnderLower">><<set $action_unclad_under_lower to 1>> <<case "stripLegs">><<set $action_unclad_legs to 1>> <<case "stripFeet">><<set $action_unclad_feet to 1>> <<case "stripNeck">><<set $action_unclad_neck to 1>> <<case "stripOverHead">><<set $action_unclad_over_head to 1>> <<case "stripHead">><<set $action_unclad_head to 1>> <<case "stripFace">><<set $action_unclad_face to 1>> <<case "stripHands">><<set $action_unclad_hands to 1>> <<case "stripHandheld">><<set $action_unclad_handheld to 1>> <<default>> <</switch>> <</link>> <br><br> <<elseif (_temp_strip is "lockers" and clothingInStorage("lockers").length is 0 and clothingInStorage("lockers2").length is 0)>> <br> <<lockericon>> <<link [[`Put your ${$worn.handheld.name} in your locker`|$passage]]>> <<set $eventskip to 1>> <<set $action_unclad_handheld to 1>> <</link>> <br> <</if>> <</if>> <<exposure>> <</widget>><<widget "wardrobewear">> <!-- Note: Don't use $_ in this widget, because this widget gets <<replace>>'d into the passage body --> <<if $wardrobes[$wardrobe_location] is undefined>> <span class="red">A wardrobe error occurred, please report. The default wardrobe will be shown in place of the intended wardrobe.</span> <br> <!--$wardrobe_location should always point to a specific wardrobe inside of $wardrobes--> wardrobe_location: <<print $wardrobe_location>> <br> passage: <<print $passage>> <br><br> <<wardrobeSelection true>> <</if>> <<set _selectedWardrobe to selectWardrobe()>> <<wardrobeSanityCheck>> <<if $clothingShop.stolenClothes gt 0>> <<set $clothingShop.stolenClothes to 0>> <span class="gold">You place the clothes you recently stole from the shop in your wardrobe.</span> <br> <</if>> <<if $adultShop isnot undefined and $adultShop.stolenClothes gt 0>> <<set $adultShop.stolenClothes to 0>> <span class="gold">You place the clothes you recently stole from the adult shop in your wardrobe.</span> <br> <</if>> <<if _wearAction is "strip">> You remove your clothing. <br><br> <<if $worn.under_lower.type.includes("strap-on")>> <<undressKeepSlot $wardrobe_location "under_lower">> <<else>> <<undress $wardrobe_location>> <</if>> <</if>> <<wearoutfit>> <<if $randomWear>> <<randomWear>> <</if>> <<set _equip to ["over_upper", "over_lower", "upper", "lower", "under_upper", "under_lower", "over_head", "head", "face", "neck", "hands", "handheld", "legs", "feet", "genitals"]>> <<set _slimePrevent to ["upper", "lower", "under_upper", "under_lower"]>> <<set _towelCheck to ["upper", "lower"]>> <<set _equipSkip to {"over_upper":false, "over_lower":false, "upper":false, "lower":false, "under_upper":false, "under_lower":false, "over_head":false, "head":false, "face":false, "neck":false, "hands":false, "handheld":false, "legs":false, "feet":false, "genitals":false}>> <<set _eIndextemNames to []>> <<for _slot range _equip>> <<unset _outfitPieceIds>> <<unset _item>> <<if _equipSkip[_slot] is true>> <<continue>> <</if>> <<if !Object.keys($worn).includes(_slot)>> <<continue>> <<else>> <<set _wearId to V["wear_"+_slot]>> <</if>> <<if _wearId is "none">> <<continue>> <</if>> <<if $wardrobeOption is "wear" or ["strip","towel","large_towel"].includes(_wearId)>> /*Checks for cursed equip*/ <<unset _cursedPrevent>> <<set _wornOutfitPrimary to $worn[_slot].outfitPrimary>> <<if $worn[_slot].cursed is 1>> You try to remove the <<print $worn[_slot].name>>, but fail. <<cursedtext $worn[_slot].name>> <br> <<set _cursedPrevent to true>> <</if>> <<if _wornOutfitPrimary isnot undefined>> <<for $_outfitPieceSlot, $_outfitPieceName range _wornOutfitPrimary>> <<if $worn[$_outfitPieceSlot].cursed is 1 and _cursedPrevent isnot true>> <<capture $_outfitPieceSlot>> <<cursedtext $worn[$_outfitPieceSlot].name>> <</capture>> <<set _cursedPrevent to true>> <</if>> <</for>> <</if>> <<if _cursedPrevent is true>> <<continue>> <</if>> /* Strip strap-on */ <<if $worn[_slot].type.includes("strap-on")>> <<set _strap to $player.inventory.sextoys[$worn[_slot].name].find(toy => toy.worn)>> <<set _strap.worn to false>> You remove your <<= $worn[_slot].name>>. <<set $worn[_slot] to clone(setup.clothes[_slot][0])>> <</if>> /*Strips equip and puts it in the wardrobe*/ <<if _wearId is "strip" and $worn[_slot].name isnot "naked">> You remove the <<print $worn[_slot].name>>. <<generalUndress $wardrobe_location _slot>> <br> <<if _wornOutfitPrimary isnot undefined>> <<for $_outfitPieceSlot, $_outfitPieceName range _wornOutfitPrimary>> <<if $_outfitPieceName isnot "broken" and $_outfitPieceName isnot "split" and $worn[$_outfitPieceSlot].name isnot "naked">> You remove the <<print $worn[$_outfitPieceSlot].name>>. <<generalUndress $wardrobe_location $_outfitPieceSlot>> <</if>> <</for>> <</if>> <<continue>> <</if>> <<unset _wornOutfitPrimary>> /*Strips equip, puts it in the wardrobe and equips a towl*/ <<if _wearId is "towel" and _towelCheck.includes(_slot)>> <<generalUndress $wardrobe_location _slot>> <<set $worn[_slot] to clone(setup.clothes[_slot][3])>><<set $worn[_slot].colour to clone($worn[_slot].colour_options.random())>> <<if _slot is "upper">> You tie a towel around your chest. <<else>> You tie a towel around your waist. <</if>> <br><br> <<continue>> <</if>> <<if _wearId is "large_towel" and _slot is "upper">> <<generalUndress $wardrobe_location "upper">><<generalUndress $wardrobe_location "lower">> <<set $worn.upper to clone(setup.clothes.upper[14])>><<set $worn.upper.colour to clone($worn.upper.colour_options.random())>> <<set $worn.lower to clone(setup.clothes.lower[15])>><<set $worn.lower.colour to clone($worn.upper.colour)>> You tie a large towel around your chest. <br><br> <<continue>> <</if>> <</if>> /*Find the item to equip*/ <<if _wearId gte 0>> <<set _item to _selectedWardrobe[_slot][_wearId]>> <<else>> <<continue>> <</if>> /*Prevent equip when preggy*/ <<if playerBellySize() gte 12 and _item.type.includes("constricting") and $wardrobeOption is "wear">> <<if _item.type.includes("chest_bind")>> <span class="red">Your pregnant body is too sensitive to wear your _item.name.</span> <<else>> <span class="red">Your <<bellyDescription "pc">> is too large to wear your _item.name.</span> <</if>> <br> <<continue>> <</if>> /*Prevent equip when the ear slime doesn't allow it*/ <<if _slimePrevent.includes(_slot) and $wardrobeOption is "wear" and $earSlime.corruption gte 10>> <<if $earSlime.forcedCommando isnot undefined and (_slot is "under_lower" or (_item.outfitPrimary and _item.outfitPrimary.under_lower and !["broken","split"].includes(_item.outfitPrimary.under_lower)))>> <<if _item.type.includes("naked") or (_earSlimeEnableSwimwear and _item.type.includes("swim")) or (_earSlimeEnableDancewear and _item.type.includes("dance"))>> <<elseif $earSlime.forcedCommando gt 0>> <span class="red">You are unable to equip your _item.name, as the slime in your ear is forcing you to go commando.</span> <br> <<continue>> <<else>> <<run delete $earSlime.forcedCommando>> <</if>> <<elseif _item.reveal lt earSlimeCorruptionClothes() and (["prison", "asylum"].includes($location) or !_allowSchoolClothes) and !_item.type.includesAny("event")>> <span class="red">You were unable to equip your _item.name as the slime in your ear did not permit it.</span> <br> <<continue>> <<elseif $earSlime.forcedDressing and _item.gender isnot $earSlime.forcedDressing.type and _item.gender isnot "n" and !_item.type.includesAny("event")>> <<if $earSlime.forcedDressing.days gt 0>> <span class="red">You are unable to equip your _item.name, as the slime in your ear is only permitting more <<print $earSlime.forcedDressing.type is "f" ? "feminine" : "masculine">> clothing.</span> <br> <<continue>> <<else>> <<run delete $earSlime.forcedDressing>> <</if>> <</if>> <</if>> /*Finds any outfit pieces and records the Ids*/ <<set _outfitPieceIds to {}>> <<if _item.outfitPrimary isnot undefined>> <<for $_outfitPieceSlot, $_outfitPieceName range _item.outfitPrimary>> <<if $_outfitPieceName is "broken" or $_outfitPieceName is "split">> <<continue>> <</if>> <<for $_outfitPieceId, $_wardrobeItem range _selectedWardrobe[$_outfitPieceSlot]>> <<if $_wardrobeItem.name isnot $_outfitPieceName>> <<continue>> <</if>> <<if _item.colour isnot $_wardrobeItem.colour or ($_wardrobeItem.accessory isnot 0 and _item.accessory_colour isnot $_wardrobeItem.accessory_colour) or ($_wardrobeItem.pattern and _item.pattern and $_wardrobeItem.pattern isnot 0 and _item.pattern isnot $_wardrobeItem.pattern)>> <<continue>> <</if>> <<if $_wardrobeItem.outfitSecondary[1] isnot _item.name>> <<continue>> <</if>> <<set _matched to 0>> <<if $_wardrobeItem.colour isnot "custom" or (_item.colourCustom isnot undefined and _item.colourCustom is $_wardrobeItem.colourCustom)>> <<set _matched++>> <</if>> <<if $_wardrobeItem.accessory is 0 or $_wardrobeItem.accessory_colour isnot "custom" or (_item.accessory_colourCustom isnot undefined and _item.accessory_colourCustom is $_wardrobeItem.accessory_colourCustom)>> <<set _matched++>> <</if>> <<if _matched is 2>> <<set _outfitPieceIds[$_outfitPieceSlot] to $_outfitPieceId>> <<set _equipSkip[$_outfitPieceSlot] to true>> <<break>> <</if>> <</for>> <</for>> <</if>> <<if $wardrobeOption is "delete">> /*Delete the relating items*/ <<for $_outfitSlot, $_outfitId range _outfitPieceIds>> <<set _selectedWardrobe[$_outfitSlot].deleteAt($_outfitId)>> <</for>> You discard the <<print _item.name>>. <<set _selectedWardrobe[_slot].deleteAt(_wearId)>> <br> <<elseif $wardrobeOption is "repair">> <<set _item.integrity to clothingData(_slot,_item,'integrity_max')>> <<set $_timeSpent to 5>> /*Repair the relating items*/ <<for $_outfitSlot, $_outfitId range _outfitPieceIds>> <<set _selectedWardrobe[$_outfitSlot][$_outfitId].integrity to clothingData($_outfitSlot,_selectedWardrobe[$_outfitSlot][$_outfitId],'integrity_max')>> <<set $_timeSpent += 5>> <</for>> <<pass $_timeSpent>> You repair the <<print _item.name>>. <br> <<elseif $wardrobeOption is "separateOutfits" and Object.values(_outfitPieceIds).length gt 0>> <<for $_outfitSlot, $_outfitId range _outfitPieceIds>> <<set $_secondaryItem to _selectedWardrobe[$_outfitSlot][$_outfitId]>> <<set $_secondaryItem.outfitSecondary[1] to "split">> <<set $_secondaryItem.one_piece to "split">> <<if _item.accessory_colour and !$_secondaryItem.accessory_colour>> <<set $_secondaryItem.accessory_colour to _item.accessory_colour>> <<if _item.accessory_colourCustom>> <<set $_secondaryItem.accessory_colourCustom to _item.accessory_colourCustom>> <</if>> <</if>> <<set _item.outfitPrimary[$_outfitSlot] to "split">> <</for>> <<set _item.one_piece to "split">> You cut up the <<print _item.name>>. <<pass 10>> <br> <<elseif $wardrobeOption is "transfer" and _wardrobeTransfer isnot $wardrobe_location and _wardrobeTransfer isnot undefined>> <<unset _slotsFull>> /*Set the target wardrobe*/ <<set _wardrobeTransferObject to selectWardrobe(_wardrobeTransfer)>> /*Make sure there is enough space*/ <<if _wardrobeTransferObject[_slot].length gt _wardrobeTransferObject.space>> <<set _slotsFull to true>> <</if>> <<for $_outfitSlot, $_outfitId range _outfitPieceIds>> <<if _wardrobeTransferObject[$_outfitSlot].length gt _wardrobeTransferObject.space>> <<set _slotsFull to true>> <</if>> <</for>> <<if !_slotsFull>> You transferred the <<print _item.name>> to the <<print $wardrobes[_wardrobeTransfer].name>> storage. /*Transfer everything*/ <<run transferClothing(_slot,_wearId,_wardrobeTransfer)>> <<for $_outfitSlot, $_outfitId range _outfitPieceIds>> <<run transferClothing($_outfitSlot,$_outfitId,_wardrobeTransfer)>> <</for>> <<else>> You were unable to transfer the <<print _item.name>> to the <<print $wardrobes[_wardrobeTransfer].name>> wardrobe due to lack of space there. <</if>> <<elseif $wardrobeOption is "wear">> /*Equip the relating items*/ <<generalUndress $wardrobe_location _slot>> <<for $_outfitSlot, $_outfitId range _outfitPieceIds>> <<generalUndress $wardrobe_location $_outfitSlot>> <<set $worn[$_outfitSlot] to clone(_selectedWardrobe[$_outfitSlot][$_outfitId])>> <<set $worn[$_outfitSlot].lastTaken to $wardrobe_location>> <<set _selectedWardrobe[$_outfitSlot].deleteAt($_outfitId)>> <<run resetClothingState($_outfitSlot)>> <</for>> <<set $worn[_slot] to clone(_item)>> <<set $worn[_slot].lastTaken to clone($wardrobe_location)>> <<run resetClothingState(_slot)>> <<set _eIndextemNames.push(_item.name)>> <<set _selectedWardrobe[_slot].deleteAt(_wearId)>> <</if>> <</for>> <<if $worn.under_lower.type.includes("naked")>> <<set $worn.under_lower.exposedType to "notWorn">> <</if>> <<if $wardrobeOption is "wear" and _eIndextemNames.length gte 1>> You put on the <<print formatList(_eIndextemNames)>>. <</if>> <<if _wearAction is "dry">> <<dry>> You wring out your clothes. <<effectswater "liquid">> <br><br> <</if>> <<unset _wearAction>> <<set $wear_over_upper to "none">> <<set $wear_over_lower to "none">> <<set $wear_upper to "none">> <<set $wear_lower to "none">> <<set $wear_under_upper to "none">> <<set $wear_under_lower to "none">> <<set $wear_over_head to "none">> <<set $wear_head to "none">> <<set $wear_face to "none">> <<set $wear_neck to "none">> <<set $wear_hands to "none">> <<set $wear_handheld to "none">> <<set $wear_legs to "none">> <<set $wear_feet to "none">> <<set $wear_genitals to "none">> <<set $wear_outfit to "none">> <<exposure>> <</widget>> <<widget "loadWardrobeOptions">> <div onclick="event.stopPropagation()"> <div class="legend-caption bold gold">Settings</div> <div> <label> <<checkbox "$wardrobeDefaults.showTraits" false true autocheck>> Show clothing trait icons. </label> </div> <div> <label> <<checkbox "$wardrobeDefaults.extraInfo" false true autocheck>> Show 'Extra Info' by default. </label> </div> <<link [[Update wardrobe|$passage]]>><</link>> </div> <</widget>> <<widget "wardrobe">> <<set _inWardrobe to true>> <div id="action-popup">Don't look here.</div> <<unset $tempDisable>> <!-- Options --> <div id="wardrobe-options-div" class="main-shop-div"> <div class="wardrobe-options-button no-numberify div-link"> <<if $options.images is 1>> <span class="button-icon"><img src="img/ui/options.png"></span> <<else>> Opt. <</if>> <<link "">> <<replace '#shop-options'>><<loadWardrobeOptions>><</replace>> <<run linkifyDivs('#shop-options')>> <<toggleclass '#shop-options' 'hidden'>> <</link>> </div> <div id="shop-options" class="wardrobe-options no-numberify hidden" onclick="$(this).addClass('hidden')"> </div> </div> <<run linkifyDivs('#wardrobe-options-div')>> <hr> <span>Warmth:</span> <<warmthscale>> <div id="warmth-description"> <<warmth_description>> </div> <br> <div id="clotheson"><<clotheson>></div> /*Fixes perma pulled aside clothes introduced by 0.2.3.0 bug.*/ <<if $upperwet gte 1 or $lowerwet gte 1 or $underlowerwet gte 1 or $underupperwet gte 1>> <div class="wardrobe-dry"> <<link "Dry your clothes">> <<set _wearAction to "dry">> <<updatewardrobe>> <<if $upperwet lt 1 and $lowerwet lt 1 and $underlowerwet lt 1 and $underupperwet lt 1>> <<remove ".wardrobe-dry">> <</if>> <</link>> <br> </div> <</if>> <div class="wardrobe-action"> <<link "Strip all">> <<set _wearAction to "strip">> <<updatewardrobe>> <</link>> </div> | <div class="wardrobe-action"> <<link "Wear random clothes">> <<set $randomWear to true>> <<updatewardrobe>> <</link>> </div> | <div class="wardrobe-action"> <<link "Configure random">><<toggleclass "#randomClothingConfigure" "hidden">><</link>> </div> | <<if $options.images and ($uncomfortable.underwear or $uncomfortable.nude)>> <div class="wardrobe-action"> <span id="wardrobe-cover" @class="$dontHide ? '' : 'hidden'"> <<link "Cover yourself">> <<dontHideRevert>> <<toggleclass "#wardrobe-cover" "hidden">> <<toggleclass "#wardrobe-dontCover" "hidden">> <<updatesidebarimg>> <</link>> </span> <span id="wardrobe-dontCover" @class="$dontHide ? 'hidden' : ''"> <<link "Don't cover yourself">> <<dontHideForNow>> <<toggleclass "#wardrobe-cover" "hidden">> <<toggleclass "#wardrobe-dontCover" "hidden">> <<updatesidebarimg>> <</link>> </span> </div> | <</if>> <div id="randomClothingConfigure" class="hidden"> <<if $randomEquipConfigure is undefined>> <<set $randomEquipConfigure to {face: true, feet: true, head: true, hands: true, legs: true, lower: true, neck: true, under_lower: true, under_upper: true, upper: true}>> <</if>> <<for _slot range Object.keys($randomEquipConfigure)>> <<capture _slot>> <label><<checkbox "$randomEquipConfigure[_slot]" false true autocheck>> <<print _slot.replace("_"," ")>></label><br> <</capture>> <</for>> </div> <br><br> <<if $location is "home" or $location is "town">> <<if $tailorMonthlyService is "repair">> __Wardrobe Repair Crate__ <br> There is a small crate ready for sending clothes to be repaired. <br> <<link [[Add damaged items and send|Wardrobe Repair Crate]]>> <<set $wardrobeReturnLink to $passage>> <<set $crateContents to "damaged">> <</link>> <br> <<link [[Add outfits and send|Wardrobe Repair Crate]]>> <<set $wardrobeReturnLink to $passage>> <<set $crateContents to "outfits">> <</link>> <br> <<link [[Add all items and send|Wardrobe Repair Crate]]>> <<set $wardrobeReturnLink to $passage>> <<set $crateContents to "all">> <</link>> <br><br> <<link [[Cancel the request|$passage]]>><<set $tailorMonthlyService to 1>><</link>> <br><br> <<elseif $tailorMonthlyService is "discard">> __Wardrobe Sale Crate__ There is a small crate ready for sending clothes to be sold. <br> <<link [[Add outfits and send|Wardrobe Sale Crate]]>> <<set $wardrobeReturnLink to $passage>> <<set $crateContents to "outfits">> <</link>> <br> <<link [[Add all items and send|Wardrobe Sale Crate]]>> <<set $wardrobeReturnLink to $passage>> <<set $crateContents to "all">> <</link>> <br><br> <<link [[Cancel the request|$passage]]>><<set $tailorMonthlyService to 1>><</link>> <br><br> <</if>> <<if $wardrobeRepair is undefined>> <<elseif $wardrobeRepair.timeLeft is 0>> The clothes sent to the tailor have been repaired and added back into your wardrobe. <<wardrobeGetRepairedClothes>> <br><br> <</if>> <</if>> __Clothing sets__ <br> <div id="listoutfits"><<listoutfits>></div> <hr> __Clothing__ <br> <<dynamic "wardrobeLinks" "wardrobeLinks">> <<dynamic "wardrobeContents" "wardrobeList">> <br> <<set $upperoff to 0>> <<set $loweroff to 0>> <<set $underloweroff to 0>> <<set $underupperoff to 0>> <<exposure>> <!-- Code responsible for brief highlighting of links in wardrobe when you click them --> <<run $(document).on('mousedown', '.wardrobe-action a', (e) => { let target = $(e.currentTarget).parent(); target.addClass('notransition action-flash'); setTimeout(() => { target.removeClass('notransition action-flash') }, 100); })>> <</widget>> <<widget "wardrobeContents">> <<if $lastWardrobeSlot is "NewOutfit">> <<wardrobeNewOutfit>> <<else>> <<wardrobeList $lastWardrobeSlot>> <</if>> <</widget>> <<widget "wardrobeLinks">> <<set _wardrobeLinks=[ { id: 'over_head', label: 'Over Head', disabled: !$debug }, { id: 'over_upper', label: 'Over Upper', disabled: !$debug }, { id: 'over_lower', label: 'Over Lower', disabled: !$debug }, { id: 'head', label: 'Head' }, { id: 'face', label: 'Face' }, { id: 'neck', label: 'Neck' }, { id: 'upper', label: 'Upper' }, { id: 'lower', label: 'Lower' }, { id: 'under_upper', label: 'Under Upper' }, { id: 'under_lower', label: 'Under Lower' }, { id: 'hands', label: 'Hands' }, { id: 'handheld', label: 'Handheld' }, { id: 'legs', label: 'Legs' }, { id: 'feet', label: 'Feet' }, ]>> <<for _i = 0; _i < _wardrobeLinks.length; _i++>> <<set _wardrobeLink=_wardrobeLinks[_i]>> <<if !_wardrobeLink.disabled>> <a @class="($lastWardrobeSlot is _wardrobeLink.id ? 'selected' : '')" @id="Dynamic.eventBinder(_wardrobeLink.id)" onclick="(id) => $lastWardrobeSlot = id" >_wardrobeLink.label</a><<if _i < _wardrobeLinks.length - 1>> | <</if>> <</if>> <</for>> <</widget>> <<widget "wardrobeClothingOptions">> <br> <<if $wardrobeOption is undefined or $wardrobeOption is 0>><<set $wardrobeOption to "wear">><</if>> <<if $wardrobeRepeat isnot true or ($wardrobeOption is "repair" and $location isnot "home")>><<set $wardrobeOption to "wear">><</if>> <label><<radiobutton "$wardrobeOption" "wear" autocheck>> Wear</label> | <label><<radiobutton "$wardrobeOption" "delete" autocheck>> Discard</label> | <<if $sewingKit is 1 and $location is "home">> <label><<radiobutton "$wardrobeOption" "repair" autocheck>> Repair (0:05 per piece)</label> | <</if>> <label><<radiobutton "$wardrobeOption" "separateOutfits" autocheck>> Separate Outfits (0:10)</label> | <<if $settings.multipleWardrobes and $wardrobes[$wardrobe_location].transfer && Object.values($wardrobes).filter(w => w.unlocked && w.shopSend).length > 1>> <label><<radiobutton "$wardrobeOption" "transfer" autocheck>> Transfer:</label> <<set _options to {}>> <<for _label, _value range $wardrobes>> <<if _value.unlocked and _label isnot $wardrobe_location and $wardrobes[_label].shopSend>> <<set _options[_value.name] to _label>> <</if>> <</for>> <<listbox "_wardrobeTransfer" autoselect>> <<optionsfrom _options>> <</listbox>> | <</if>> <label><<checkbox "$wardrobeRepeat" false true autocheck>> Repeat Actions</label> <<if $wardrobeOption is "delete" and $wardrobeRepeat is true>> <h2 class="red">Discard On Repeat</h2> <<else>> <br><br> <</if>> <</widget>> <<widget "wardrobeNewOutfit">> <br> Add new set: <br> Name: <input id="outfitName" type="text" value="Custom" maxlength="30" onfocus="V.tempDisable = true;"> <br> Type: <<listbox "$outfit_type">> <<option "Normal" 0 selected>> <<option "Sleep" "sleep">> <<option "Swimming" "swim">> <<option "School" "school">> <</listbox>> <br> <label> Save Clothes Colours in Set <<checkbox "_saveColor" false true autocheck>> </label> <br> <<if $settings.multipleWardrobes>> <label> Make clothes set unique to this wardrobe <<checkbox "_saveLocation" false true autocheck>> </label> <br> <</if>> <<if $savedHairStyles>> <div> <<set _savedHairStylesKeys to Object.keys($savedHairStyles)>> Hair Style: <<listbox "_hairStyle" autoselect>> <<option "Not set" undefined>> <<optionsfrom _savedHairStylesKeys>> <</listbox>> <mouse class="tooltip linkBlue">(?)<span>'Not set' will not change the current hairstyle.</span></mouse> </div> <<else>> <div> Hair Style: No sets saved (Check mirror) </div> <</if>> <br> <div class="wardrobe-action"> <<link "Add current clothes as new set">> <<set $outfit_name to document.getElementById("outfitName").value.replace(/[^a-zA-Z\u4e00-\u9fa5 0-9.!()]+/g,"")>> <<set _newOutfit to { index: $outfit.length, name: $outfit_name, over_upper: clone($worn.over_upper.name), over_lower: clone($worn.over_lower.name), upper: clone($worn.upper.name), lower: clone($worn.lower.name), under_upper: clone($worn.under_upper.name), under_lower: clone($worn.under_lower.name), over_head: clone($worn.over_head.name), head: clone($worn.head.name), face: clone($worn.face.name), neck: clone($worn.neck.name), hands: clone($worn.hands.name), handheld: clone($worn.handheld.name), legs: clone($worn.legs.name), feet: clone($worn.feet.name), genitals: clone($worn.genitals.name), type: ["normal"], colors: false, }>> <<if $outfit_name is "" or $outfit_name is "Custom">><<set $outfit_name to "Custom " + $outfit.length>><</if>> <<set _newOutfit.name to $outfit_name>> <<if $outfit_type>> <<set _newOutfit.type[0] to $outfit_type>> <</if>> <<if _saveColor>> <<set _equip to ["over_upper", "over_lower", "upper", "lower", "under_upper", "under_lower", "over_head", "head", "face", "neck", "hands", "handheld", "legs", "feet"]>> <<set _colors to {}>> <<for _slot range _equip>> <<set _colors[_slot] to [$worn[_slot].colour, $worn[_slot].accessory_colour]>> <<if $worn[_slot].colour is "custom" or $worn[_slot].accessory_colour is "custom">> <<run _colors[_slot+"custom"] to [$worn[_slot].colourCustom, $worn[_slot].accessory_colourCustom]>> <</if>> <</for>> <<set _newOutfit.colors to _colors>> <<else>> <<set _newOutfit.colors to false>> <</if>> <<set _positions to {}>> <<for _slot range _equip>> <<if $worn[_slot].altposition>> <<set _positions[_slot] to $worn[_slot].altposition>> <</if>> <<if $worn[_slot].altsleeve>> <<set _positions.sleeves to $worn[_slot].altsleeve>> <</if>> <</for>> <<if Object.keys(_positions).length > 0>> <<set _newOutfit.positions to _positions>> <</if>> <<if _saveLocation>> <<set _newOutfit.location to $wardrobe_location>> <</if>> <<if _hairStyle>> <<set _newOutfit.hairStyle to _hairStyle>> <</if>> <<set $outfit.push(_newOutfit)>> <<updatewardrobe "outfits">> <</link>> </div> <</widget>> <<widget "wardrobeintegrity">><<silently>> <<set _eIndextem to _args[0]>> <<set _eIndexntegrityMax to clothingData(_args[1],_eIndextem,'integrity_max')>> <<if _eIndextem.integrity gt (_eIndexntegrityMax * 9 / 10)>> <<set $_output to "">> <<elseif _eIndextem.integrity gt (_eIndexntegrityMax * 5 / 10)>> <<set $_output to "<span>(frayed)</span>">> <<elseif _eIndextem.integrity gt (_eIndexntegrityMax * 2 / 10)>> <<set $_output to "<span>(torn)</span>">> <<else>> <<set $_output to "<span>(tattered)</span>">> <</if>> <</silently>><<print $_output>><</widget>> <<widget "toggleHoodLink">> <div class="toggleHoodLink"> <<link `($worn.upper.hoodposition is "down" ? "Pull hood up" : "Pull hood down")`>> <<toggleHood _args[0]>> <<updatesidebarimg>> <<if _args[0] isnot "shop">> <<updatewardrobe>> <</if>> <<run $(".toggleHoodLink .link-internal").html($worn.upper.hoodposition is "down" ? "Pull hood up" : "Pull hood down")>> <<run Links.generateLinkNumbers($(".passage"))>> <</link>> </div> <</widget>> <<widget "toggleHood">> /* If hood is up, put it down and free up the head slot*/ <<if $worn.upper.hoodposition is "up" and $worn.head.hood is 1 and $worn.upper.outfitPrimary.head is $worn.head.name>> <<run delete $worn.upper.outfitPrimary.head>> <<set $worn.upper.hoodposition to "down">> <<if _args[0] is "shop" and $tryOn.ownedStored.head.name isnot $worn.head.name and !($tryOn.ownedStored.head.outfitSecondary and $tryOn.ownedStored.head.outfitSecondary[1] isnot "broken" and $tryOn.ownedStored.head.outfitSecondary[1] isnot "split")>> <<set $worn.head to clone($tryOn.ownedStored.head)>> <<else>> <<set $worn.head to clone(setup.clothes.head[0])>> <</if>> <<if _args[0] is "shop" and $tryOn.tryingOn.upper is null>> <<updateOwned "upper">> <<updateOwned "head">> <</if>> /* If hood is down, put it back up and remove anything on the head if necessary */ <<elseif $worn.upper.hoodposition is "down">> <<if !$worn.head.cursed>> /* No cursed head items yet, but if one is made, should probably have some popup saying this was prevented */ <<if $worn.head.outfitSecondary and $worn.head.outfitSecondary[1] isnot "broken" and $worn.head.outfitSecondary[1] isnot "split">> <<if $worn.head.hood is 1 and $worn.head.outfitSecondary[1] is $worn.upper.name and $worn.head.colour is $worn.upper.colour and $worn.head.accessory_colour is $worn.upper.accessory_colour and $worn.head.colourCustom is $worn.upper.colourCustom and $worn.head.accessory_colourCustom is $worn.upper.accessory_colourCustom>> <<set $worn.upper.outfitPrimary.head to clone(setup.clothes.upper[$worn.upper.index].outfitPrimary.head)>> <<set $worn.upper.hoodposition to "up">> <</if>> <<else>> <<if _args[0] is "shop">> /*If in a shop, make sure the head item is accounted for first*/ <<if $tryOn.tryingOn.head isnot null>> <<shopbuyv2 "head" "return" null>>/*return if trying on*/ <</if>> <<if $tryOn.tryingOn.upper is null and $worn.head.name isnot "naked">> <<generalUndress $wardrobe_location "head">>/*send back to wardrobe if already owned*/ <</if>> <<elseif $worn.head.name isnot "naked">> <<generalUndress $wardrobe_location "head">> <</if>> <<set $worn.upper.outfitPrimary.head to clone(setup.clothes.upper[$worn.upper.index].outfitPrimary.head)>> <<set $worn.upper.hoodposition to "up">> /* re-create the hood using colors from the hoodie */ <<set $_hoodIndex to setup.clothes.head.findIndex(x => x.name === $worn.upper.outfitPrimary.head)>> <<set $worn.head to clone(setup.clothes.head[$_hoodIndex])>> <<set $worn.head.colour to $worn.upper.colour>> <<if $worn.head.colour is "custom">> <<set $worn.head.colourCustom to $worn.upper.colourCustom>> <</if>> <<set $worn.head.accessory_colour to $worn.upper.accessory_colour>> <<if $worn.head.accessory_colour is "custom">> <<set $worn.head.accessory_colourCustom to $worn.upper.accessory_colourCustom>> <</if>> <<if _args[0] is "shop" and $tryOn.tryingOn.upper is null>> <<updateOwned "upper">> <</if>> <</if>> <</if>> <<elseif $worn.upper.hoodposition is undefined and setup.clothes.upper[$worn.upper.index].hoodposition isnot undefined>> <<set $worn.upper.hoodposition to "up">> <</if>> <</widget>> <<widget "toggleUpperTuck">> <<set _linkOption1 to _args[0] || `Untuck from ${$worn.lower.name}`>> <<set _linkOption2 to _args[1] || `Tuck into ${$worn.lower.name}`>> <div class="toggleUpperTuck"> <<link `($upperTucked ? _linkOption1 : _linkOption2)`>> <<set $upperTucked to +!$upperTucked>> <<updatesidebarimg>> <<run $(".toggleUpperTuck .link-internal").html($upperTucked ? _linkOption1 : _linkOption2)>> <<run Links.generateLinkNumbers($(".passage"))>> <</link>> </div> <</widget>> <<widget "toggleLowerTuck">> <<set _linkOption1 to _args[0] || `Untuck from ${$worn.feet.name}`>> <<set _linkOption2 to _args[1] || `Tuck into ${$worn.feet.name}`>> <div class="toggleLowerTuck"> <<link `($lowerTucked ? _linkOption1 : _linkOption2)`>> <<set $lowerTucked to +!$lowerTucked>> <<updatesidebarimg>> <<run $(".toggleLowerTuck .link-internal").html($lowerTucked ? _linkOption1 : _linkOption2)>> <<run Links.generateLinkNumbers($(".passage"))>> <</link>> </div> <</widget>> <<widget "toggleBellyTuck">> <<set _softOption1 to _args[0] || `Tug down your ${$worn.lower.name}`>> <<set _softOption2 to _args[1] || `Pull up your ${$worn.lower.name}`>> <div class="toggleBellyTuck"> <<link `($bellyTucked ? _softOption1 : _softOption2)`>> <<set $bellyTucked to +!$bellyTucked>> <<updatesidebarimg>> <<run $(".toggleBellyTuck .link-internal").html($bellyTucked ? _softOption1 : _softOption2)>> <<run Links.generateLinkNumbers($(".passage"))>> <</link>> </div> <</widget>> <<widget "toggleLeash">> <<if ["collar", "free use collar", "leather collar", "spiked collar"].includes($worn.neck.name)>> <<link "Attach Leash">> <<attach_leash true true>> <<updatesidebarimg>> <<replace "#wardrobeLeash">><<toggleLeash>><</replace>> <</link>> <<elseif ["collar with leash", "free use collar with leash", "leather collar with leash", "spiked collar with leash"].includes($worn.neck.name)>> <<link "Detach Leash">> <<detach_leash true true>> <<updatesidebarimg>> <<replace "#wardrobeLeash">><<toggleLeash>><</replace>> <</link>> <</if>> <</widget>> <<widget "toggleAltLink">><<silently>> <<switch _args[0]>> <<case "upper">> <<switch $worn.upper.variable>> <<case "schoolcardigan">><<set _altLink to ["Tie cardigan around waist", "Wear cardigan normally"]>> <<case "brownleather" "blackleather" "leathercropjacket" "winterjacket">><<set _altLink to ["Zip jacket", "Unzip jacket"]>> <<case "waistcoat" "waistcoatlapel" "blazershirt">><<set _altLink to ["Tuck in", "Untuck"]>> <<case "dress" "buttondown" "oversizedbuttondown">><<set _altLink to ["Unbutton shirt", "Button up shirt"]>> <<case "catsuit">><<set _altLink to ["Unzip", "Zip"]>> <<case "kimono" "kimonomini">><<set _altLink to ["Loosen", "Tighten"]>> <<default>><<exit>> <</switch>> <<case "neck">> <<switch $worn.neck.variable>> <<case "suspenders">><<set _altLink to ["Lower suspenders", "Wear suspenders normally"]>> <<case "tie">><<set _altLink to ["Loosen", "Tighten"]>> <<default>><<exit>> <</switch>> <<case "face">> <<if $worn.face.type.includes("cool") or $worn.face.type.includes("glasses")>> <<switch $worn.face.variable>> <<case "monocle">><<set _altLink to ["Cover left eye", "Cover right eye"]>> <<default>><<set _altLink to ["Push on head", "Wear normally"]>> <</switch>> <<else>> <<switch $worn.face.variable>> <<case "medical eyepatch" "eyepatch">><<set _altLink to ["Cover left eye", "Cover right eye"]>> <<case "swimgoggles">><<set _altLink to ["Push on head", "Wear normally"]>> <<default>><<exit>> <</switch>> <</if>> <<default>><<exit>> <</switch>> <</silently>> <span @class="_args[0]"> <<capture _args[0] _altLink>> <<link `($worn[_args[0]].altposition is "none" ? _altLink[0] : _altLink[1])`>> <<toggleAltPosition _args[0]>> <<updatesidebarimg>> <<if _args[1] is "wardrobe">> <<updatewardrobe>> <</if>> <<run $(".toggleAltLink ." + _args[0] + " .link-internal").html($worn[_args[0]].altposition is "none" ? _altLink[0] : _altLink[1])>> <<run Links.generateLinkNumbers($(".passage"))>> <</link>> <</capture>> </span> <</widget>> <<widget "toggleAltPosition">> /*Changes sprite to an alternate image*/ <<if $worn[_args[0]].altposition is undefined and setup.clothes[_args[0]][$worn[_args[0]].index].altposition isnot undefined>> <<set $worn[_args[0]].altposition to "none">> <<else>> <<set $worn[_args[0]].altposition to ($worn[_args[0]].altposition is "none" ? "alt" : "none")>> <</if>> <</widget>> <<widget "toggleAltSleeve">> <<set _inDefaultState to _args[0] || "Roll up sleeves">> <<set _inAltState to _args[1] || "Unroll sleeves">> <div class="toggleAltSleeve"> <<link `($worn.upper.altsleeve is "none" ? _inDefaultState : _inAltState)`>> <<set $worn.upper.altsleeve to ($worn.upper.altsleeve is "none" ? "alt" : "none")>> <<updatesidebarimg>> <<run $(".toggleAltSleeve .link-internal").html($worn.upper.altsleeve is "none" ? _inDefaultState : _inAltState)>> <<run Links.generateLinkNumbers($(".passage"))>> <</link>> </div> <</widget>> <<widget "toggleFaceLayer">> /*changes z-index */ <<set _linkOption1 to "Move hair in front">> <<set _linkOption2 to "Tuck hair behind">> <div class="toggleFaceLayer"> <<link `($facelayer is "front" ? _linkOption2 : _linkOption1)`>> <<set $facelayer to ($facelayer is "front" ? "back" : "front")>> <<updatesidebarimg>> <<if _args[0] is "wardrobe">> <<updatewardrobe>> <</if>> <<run $(".toggleFaceLayer .link-internal").html($facelayer is "front" ? _linkOption2 : _linkOption1)>> <<run Links.generateLinkNumbers($(".passage"))>> <</link>> </div> <br> <</widget>> <<widget "wardrobeList">> <<wardrobeClothingOptions>> <<set _wardrobe_list to _args[0]>> <<if !Object.keys($worn).includes(_wardrobe_list)>> An error occurred to 'widget "wardrobeList"', please report if you did not edit the save data manually in any way. <<else>> <<set _wear to "wear_"+_wardrobe_list>> <<set _outfitTypes to setup.clothingLayer.torso_inner>> <<set _loweroutfitCheck to setup.clothingLayer.lower>> __<<print _wardrobe_list[0].toUpperCase() + _wardrobe_list.substring(1)>>__ <i>_selectedWardrobe[_wardrobe_list].length / _selectedWardrobe.space</i> <<if _wardrobe_list is "upper">>(Outfits will also take a lower slot)<</if>> <<if _wardrobe_list is "under_upper">>(Outfits will also take an under lower slot)<</if>> <br> Order by: /*Undefined error for unknown reason*/ /*<a @onclick="`wikifier('wardrobeListReorder', '`+ $lastWardrobeSlot + `', 'name');`">Name</a> |*/ <div class="wardrobe-action"><a onclick="wikifier('wardrobeListReorder', V.lastWardrobeSlot, 'name');">Name</a></div> | <div class="wardrobe-action"><a onclick="wikifier('wardrobeListReorder', V.lastWardrobeSlot, 'color');">Colour</a></div> | <div class="wardrobe-action"><a onclick="wikifier('wardrobeListReorder', V.lastWardrobeSlot, 'lewd');">Lewd</a></div> | <div class="wardrobe-action"><a onclick="wikifier('wardrobeListReorder', V.lastWardrobeSlot, 'integrity');">Integrity</a></div> | <div class="wardrobe-action"><a onclick="wikifier('wardrobeListReorder', V.lastWardrobeSlot, 'warmth');">Warmth</a></div> | <<if _outfitTypes.includes(_wardrobe_list)>> <div class="wardrobe-action"><a onclick="wikifier('wardrobeListReorder', V.lastWardrobeSlot, 'outfit');">Outfit Status</a></div> | <</if>> <br> Inverse Order by: <div class="wardrobe-action"><a onclick="wikifier('wardrobeListReorder', V.lastWardrobeSlot, 'name', true);">Name</a></div> | <div class="wardrobe-action"><a onclick="wikifier('wardrobeListReorder', V.lastWardrobeSlot, 'color', true);">Colour</a></div> | <div class="wardrobe-action"><a onclick="wikifier('wardrobeListReorder', V.lastWardrobeSlot, 'lewd', true);">Lewd</a></div> | <div class="wardrobe-action"><a onclick="wikifier('wardrobeListReorder', V.lastWardrobeSlot, 'integrity', true);">Integrity</a></div> | <div class="wardrobe-action"><a onclick="wikifier('wardrobeListReorder', V.lastWardrobeSlot, 'warmth', true);">Warmth</a></div> | <<if _outfitTypes.includes(_wardrobe_list)>> <div class="wardrobe-action"><a onclick="wikifier('wardrobeListReorder', V.lastWardrobeSlot, 'outfit', true);">Outfit Status</a></div> | <</if>> <br><br> Currently equipped: <<if $worn[_wardrobe_list].name is "naked">> nothing <br> <<else>> <<set _wornItem to $worn[_wardrobe_list]>> <<set _wornItemData to setup.clothes[_wardrobe_list][clothesIndex(_wardrobe_list,_wornItem)]>> <<clothingicon _wornItem _wardrobe_list>> <<print _wornItemData.name_cap>> <<if _wornItem.colour and _wornItem.colour isnot 0>> <span @class="_wornItem.colour?.replace(' ','-')"> <<if _wornItem.pattern and ![0, "plain"].includes(_wornItem.pattern) and _wornItemData.pattern_options?.length gt 1>> (_wornItem.colour _wornItem.pattern) <<else>> (_wornItem.colour) <</if>> </span> <<elseif _wornItem.pattern and _wornItem.pattern isnot 0 and _wornItemData.pattern_options?.length gt 1>> <span @class="_wornItem.pattern?.replace(' ','-')">(_wornItem.pattern)</span> <</if>> <<if _wornItem.outfitPrimary isnot undefined>> <<set _keys to Object.keys(_wornItem.outfitPrimary)>> <<set _broken to 0>> <<for _j to 0; _j lt _keys.length; _j++>> <<if _wornItem.outfitPrimary[_keys[_j]] is "broken">> <<set _broken++>> <</if>> <</for>> <<if _broken is 0>> <span class="gold">(Outfit)</span> <<elseif _broken lt _keys.length>> <span class="red">(Partly Broken)</span> <<else>> <span class="red">(Broken)</span> <</if>> <<if _wornItem.one_piece is "split">> <span class="separated-indicator">(Separated)</span> <</if>> <</if>> <<if _wornItem.outfitSecondary isnot undefined>> <<if _wornItem.outfitSecondary[1] is "broken">> <span class="red">(Broken)</span> <<else>> <span class="gold">(Outfit)</span> <<if _wornItem.one_piece is "split">> <span class="separated-indicator">(Separated)</span> <</if>> <</if>> <</if>> <<wardrobeintegrity _wornItem _wardrobe_list>> <a onclick="document.getElementById('wardrobeItemDetails').classList.toggle('hidden')">Extra Info</a> <br> <div id="wardrobeItemDetails" @class="$wardrobeDefaults.extraInfo?'':'hidden'"> <<if _wornItem.plural is 1>> <<integrity `clothingData(_wardrobe_list,_wornItem,'integrity_max')` "cap">> <<else>> A <<integrity `clothingData(_wardrobe_list,_wornItem,'integrity_max')`>> <</if>> and <<reveal _wornItem.reveal>> <<print _wornItem.name>>. <<if _wornItem.gender is "m">> <span class="lblue">For boys ♂.</span> <<elseif _wornItem.gender is "f">> <span class="pink">For girls ♀.</span> <</if>> <<print _wornItemData.description>> <br> <<print setup.WeatherDescriptions.clothingWarmth(getTrueWarmth(_wornItem))>> <br><br> <<set _temp_choice to $worn[_wardrobe_list]>> <<shoptraits>> </div> <<if isConnectedToHood(_wardrobe_list)>> <!-- If selected item is a hood or selected item has a secondary hood piece --> <div class="no-numberify"><<toggleHoodLink>></div> <</if>> <<if _wardrobe_list is "upper" and $worn.lower.name isnot "naked" and !_wornItemData.notuck and V.worn.upper.outfitPrimary is undefined>> <div class="no-numberify"><<toggleUpperTuck>></div> <<elseif _wardrobe_list is "lower" and $worn.feet.name isnot "naked" and !_wornItemData.notuck and !setup.clothes.feet[clothesIndex("feet",$worn.feet)].notuck>> <div class="no-numberify"><<toggleLowerTuck>></div> <</if>> <<if _wardrobe_list is "lower" and $player.bodyshape is "soft" and $worn.lower.name isnot "naked" and (!setup.clothes.lower[clothesIndex("lower",$worn.lower)].outfitSecondary or setup.clothes.lower[clothesIndex("lower",$worn.lower)]?.outfitSecondary[1] isnot $worn.upper.name)>> <div class="no-numberify"><<toggleBellyTuck>></div> <</if>> <<if _wardrobe_list is "upper" and $worn.upper.name isnot "naked" and _wornItemData.altsleeve>> <div class="no-numberify toggleAltSleeve"><<toggleAltSleeve>></div> <</if>> <div class="no-numberify toggleAltLink"><<toggleAltLink _wardrobe_list "wardrobe">></div> <<if _wardrobe_list is "neck">> <div id="wardrobeLeash" class="no-numberify"><<toggleLeash>></div> <</if>> <<if _wardrobe_list is "face">> <div class="no-numberify toggleAltLink"><<toggleFaceLayer "wardrobe">></div> <</if>> <</if>> <br> <<if $worn[_wardrobe_list].name isnot "naked">> <div class="wardrobeItem wardrobe-action no-numberify"><<wearlink_norefresh "Strip" 'strip'>></div> <</if>> <<if _wardrobe_list is "upper">> <div class="wardrobeItem wardrobe-action no-numberify"><<wearlink_norefresh "Large towel" 'large_towel'>></div> <</if>> <<if _wardrobe_list is "upper" or _wardrobe_list is "lower">> <div class="wardrobeItem wardrobe-action no-numberify"><<wearlink_norefresh "Towel" 'towel'>></div> <</if>> <<for _i to 0; _i lt _selectedWardrobe[_wardrobe_list].length; _i++>> <<set _item to _selectedWardrobe[_wardrobe_list][_i]>> <<set _itemData to setup.clothes[_wardrobe_list][clothesIndex(_wardrobe_list,_item)]>> <<if _item.outfitSecondary isnot undefined>> <<if _item.outfitSecondary[1] isnot "broken" and _item.outfitSecondary[1] isnot "split">> <<continue>> <</if>> <</if>> <div class="wardrobeItem wardrobe-action no-numberify"> <<clothingicon _item _wardrobe_list>> <<wearlink_norefresh _itemData.name_cap _i>> <<if _item.gender is "m">> <span class="blue">♂</span> <<elseif _item.gender is "f">> <span class="pink">♀</span> <<else>> <</if>> <<if _item.colour and _item.colour isnot 0>> <span @class="_item.colour?.replace(' ','-')"> <<if _item.pattern and ![0, "plain"].includes(_item.pattern) and _itemData.pattern_options?.length gt 1>> (_item.colour _item.pattern) <<else>> (_item.colour) <</if>> </span> <<elseif _item.pattern and _item.pattern isnot 0 and _itemData.pattern_options?.length gt 1>> <span @class="_item.pattern?.replace(' ','-')">(_item.pattern)</span> <</if>> <<if _item.outfitPrimary isnot undefined>> <<set _keys to Object.keys(_item.outfitPrimary)>> <<set _broken to 0>> <<for _j to 0; _j lt _keys.length; _j++>> <<if _item.outfitPrimary[_keys[_j]] is "broken">> <<set _broken++>> <</if>> <</for>> <<if _broken is 0>> <span class="gold">(Outfit)</span> <<elseif _broken lt _keys.length>> <span class="red">(Partly Broken)</span> <<else>> <span class="red">(Broken)</span> <</if>> <<if _item.one_piece is "split">> <span class="separated-indicator">(Separated)</span> <</if>> <</if>> <<if _item.outfitSecondary isnot undefined>> <<if _item.one_piece is "split">> <span class="separated-indicator">(Separated)</span> <<else>> <span class="red">(Broken)</span> <</if>> <</if>> <<wardrobeintegrity _item _wardrobe_list>> <<reveal _item.reveal>> | <span class="cold-resist-icon noDivider"><<print getTrueWarmth(_item)>></span> <<if $wardrobeDefaults.showTraits>> | <span class="wardrobe-traits noDivider"><<for _n, _trait range _item.type>> <<clothingtrait _trait>> <</for>></span> <</if>> </div> <</for>> <div style="clear:both;"></div> <</if>> <</widget>> <<widget "wearlink_norefresh">> <<capture _args[1] _args[2]>> <<link _args[0]>> <<if _args[2]>> <<set V[_args[2]] = _args[1]>> <<else>> <<set V[_wear] = _args[1]>> <</if>> <<updatewardrobe undefined _args[2]>> <</link>> <</capture>> <</widget>> <<widget "updatewardrobe">> <<if window.scrollY > 130>> <<run $('#action-popup, #wardrobewear').html(new Wikifier(null, "<<wardrobewear>>").output)>> <<run $('#action-popup').css('transform', 'translateY(0)'); setTimeout(() => { $('#action-popup').css('transform', 'translateY(-100%)') }, 3200);>> <<else>> <<run $('#wardrobewear').html(new Wikifier(null, "<<wardrobewear>>").output)>> <</if>> <<run $('#wardrobewear').addClass('notransition flash'); setTimeout(() => { $('#wardrobewear').removeClass('notransition flash') }, 100);>> <<updatesidebarimg>> <<updatesidebardescription>> <<updateallure>> <<updatewarmthscale>> <<updatewarmthdescription>> <<if _args[0] == "outfits">> <<replace "#listoutfits">><<listoutfits>><</replace>> <</if>> <<replace '#clotheson'>><<clotheson>><</replace>> <<if $('#wardrobeList')[0]>><<replace '#wardrobeList'>><<wardrobeContents>><</replace>><</if>> <<if $('#oldWardrobeListDisplay')[0]>> <<if _args[1]>> <<set $_slot to _args[1].slice(5)>> <<switch $_slot>> <<case "upper">> <<replace '#clothingBox-upper'>> <<oldWardrobeList "upper" "outfits">> <<oldWardrobeList "upper" "non-outfits">> <</replace>> <<replace '#clothingBox-lower'>> <<oldWardrobeList "lower">> <</replace>> <<case "under_upper">> <<replace '#clothingBox-under_upper'>> <<oldWardrobeList "under_upper" "outfits">> <<oldWardrobeList "under_upper" "non-outfits">> <</replace>> <<replace '#clothingBox-under_lower'>> <<oldWardrobeList "under_lower">> <</replace>> <<default>> <<replace `'#clothingBox-' + $_slot`>><<oldWardrobeList $_slot>><</replace>> <</switch>> <<replace '#wardrobeMinorOptions'>><<oldWardrobeMinorOptions>><</replace>> <<else>> <<replace '#oldWardrobeListDisplay'>><<oldWardrobeListDisplay>><</replace>> <</if>> <</if>> <<exposure>> <<run $('#wardrobeExits').html(new Wikifier(null, "<<wardrobeExits>>").output)>> <<numberify ".passage">> <<run updateMoment()>> <</widget>> <<widget "oldWardrobeMinorOptions">> <div id="wardrobeMinorOptions"> <<if $worn.lower.name isnot "naked" and $worn.upper.outfitPrimary is undefined and !setup.clothes.upper[clothesIndex('upper', $worn.upper)].notuck>> <<set $_linkOption1 to `Untuck your ${$worn.upper.name}`>> <<set $_linkOption2 to `Tuck your ${$worn.upper.name} into your ${$worn.lower.name}`>> <<toggleUpperTuck $_linkOption1 $_linkOption2>> <</if>> <<if $worn.head.hood>> <!-- If selected item is a hood or selected item has a secondary hood piece --> <<toggleHoodLink>> <</if>> <<if ["collar", "free use collar", "leather collar", "spiked collar", "collar with leash", "free use collar with leash", "leather collar with leash", "spiked collar with leash"].includes($worn.neck.name)>> <div id="wardrobeLeash" class="no-numberify"><<toggleLeash>></div> <</if>> </div> <</widget>> <<widget "oldWardrobeListDisplay">> <<wardrobeClothingOptions>> <<oldWardrobeMinorOptions>> <br> <<if $debug is 1>> <<oldWardrobeList "over_upper">> <<oldWardrobeList "over_lower">> <</if>> <div id="clothingBox-upper"> <<oldWardrobeList "upper" "outfits">> <<oldWardrobeList "upper" "non-outfits">> </div> <div id="clothingBox-lower"> <<oldWardrobeList "lower">> </div> <div id="clothingBox-under_upper"> <<oldWardrobeList "under_upper" "outfits">> <<oldWardrobeList "under_upper" "non-outfits">> </div> <div id="clothingBox-under_lower"> <<oldWardrobeList "under_lower">> </div> <<if $debug is 1>> <<oldWardrobeList "over_head">> <</if>> <div id="clothingBox-head"><<oldWardrobeList "head">></div> <div id="clothingBox-face"><<oldWardrobeList "face">></div> <div id="clothingBox-neck"><<oldWardrobeList "neck">></div> <div id="clothingBox-hands"><<oldWardrobeList "hands">></div> <div id="clothingBox-handheld"><<oldWardrobeList "handheld">></div> <div id="clothingBox-legs"><<oldWardrobeList "legs">></div> <div id="clothingBox-feet"><<oldWardrobeList "feet">></div> <div style="clear:both;"></div> <<wardrobeNewOutfit>> <</widget>> <<widget "oldWardrobeList">> <<set _wardrobe_list to _args[0]>> <<set _showType to _args[1]>> <<if !Object.keys($worn).includes(_wardrobe_list)>> An error occurred to 'widget "oldWardrobeList"', please report if you did not edit the save data manually in any way. <<else>> <<set _wear to "wear_"+_wardrobe_list>> <div class="clothingBox"> __<<print _wardrobe_list[0].toUpperCase() + _wardrobe_list.substring(1) + (_showType is "outfits" ? " Outfits" : "")>>__ <i>_selectedWardrobe[_wardrobe_list].length / _selectedWardrobe.space</i> <br><br> <div> <ul> <<if $worn[_wardrobe_list].name isnot "naked">> <li class="no-numberify"><<wearlink_norefresh "Strip" 'strip' _wear>></li> <</if>> <<if _wardrobe_list is "upper" and _showType is "outfits">> <li class="no-numberify"><<wearlink_norefresh "Large towel" 'large_towel' _wear>></li> <</if>> <<if (_wardrobe_list is "upper" or _wardrobe_list is "lower") and _showType isnot "outfits">> <li class="no-numberify"><<wearlink_norefresh "Towel" 'towel' _wear>></li> <</if>> <<for _i to 0; _i lt _selectedWardrobe[_wardrobe_list].length; _i++>> <<set _item to _selectedWardrobe[_wardrobe_list][_i]>> <<if _item.outfitSecondary isnot undefined>> <<if _item.outfitSecondary[1] isnot "broken" and _item.outfitSecondary[1] isnot "split">> <<continue>> <</if>> <</if>> <<if (_item.outfitPrimary isnot undefined and _showType is "non-outfits") or (_item.outfitPrimary is undefined and _showType is "outfits")>> <<continue>> <</if>> <li class="no-numberify">/*<<clothingicon _item>>*/<<wearlink_norefresh setup.clothes[_wardrobe_list][clothesIndex(_wardrobe_list,_item)].name_cap _i _wear>> <<if _item.colour isnot 0>> <span @class="_item.colour?.replace(' ','-')">(_item.colour)</span> <</if>> <<wardrobeintegrity _item _wardrobe_list>> </li> <</for>> </ul> </div></div> <</if>> <</widget>> <<widget "wardrobeListReorder">> <<if _args[0] and _args[1]>> <<set _slot to _args[0]>> <<set _orderType to _args[1]>> <<set _descending to _args[2]>> <<set _wardrobeItems to clone(_selectedWardrobe[_slot])>> <<set _newWardrobeItems to []>> <<switch _orderType>> <<case "name">> <<set _itemNames to []>> <<for _i to 0; _i lt _wardrobeItems.length; _i++>> <<run _itemNames.pushUnique(_wardrobeItems[_i].name)>> <</for>> <<if _descending>> <<set _sortedItemNames to _itemNames.sort(function(a, b){return b.localeCompare(a)})>> <<else>> <<set _sortedItemNames to _itemNames.sort()>> <</if>> <<for _i to 0; _i lt _sortedItemNames.length; _i++>> <<for _j to 0; _j lt _wardrobeItems.length; _j++>> <<if _wardrobeItems[_j].name is _sortedItemNames[_i]>> <<run _newWardrobeItems.push(clone(_wardrobeItems[_j]))>> <</if>> <</for>> <</for>> <<case "color">> <<set _itemColors to []>> <<for _i to 0; _i lt _wardrobeItems.length; _i++>> <<run _itemColors.pushUnique(_wardrobeItems[_i].colour)>> <</for>> <<if _descending>> <<set _sortedItemColors to _itemColors.sort(function(a, b){ if(a === 0){ return 0; } if(b === 0){ return 0; } return b.localeCompare(a); })>> <<else>> <<set _sortedItemColors to _itemColors.sort()>> <</if>> <<for _i to 0; _i lt _sortedItemColors.length; _i++>> <<for _j to 0; _j lt _wardrobeItems.length; _j++>> <<if _wardrobeItems[_j].colour is _sortedItemColors[_i]>> <<run _newWardrobeItems.push(clone(_wardrobeItems[_j]))>> <</if>> <</for>> <</for>> <<case "integrity">> <<set _itemIntegrity to []>> <<for _i to 0; _i lt _wardrobeItems.length; _i++>> <<run _itemIntegrity.pushUnique((_wardrobeItems[_i].integrity / clothingData(_slot,_wardrobeItems[_i],'integrity_max')))>> <</for>> <<if _descending>> <<set _sortedItemIntegrity to _itemIntegrity.sort()>> <<else>> <<set _sortedItemIntegrity to _itemIntegrity.sort(function(a, b){return b-a})>> <</if>> <<for _i to 0; _i lt _sortedItemIntegrity.length; _i++>> <<for _j to 0; _j lt _wardrobeItems.length; _j++>> <<if (_wardrobeItems[_j].integrity / clothingData(_slot,_wardrobeItems[_j],'integrity_max')) is _sortedItemIntegrity[_i]>> <<run _newWardrobeItems.push(clone(_wardrobeItems[_j]))>> <</if>> <</for>> <</for>> <<case "warmth">> <<set _itemWarmth to []>> <<for _i to 0; _i lt _wardrobeItems.length; _i++>> <<run _itemWarmth.pushUnique(_wardrobeItems[_i].warmth)>> <</for>> <<if _descending>> <<set _sortedItemWarmth to _itemWarmth.sort()>> <<else>> <<set _sortedItemWarmth to _itemWarmth.sort(function(a, b){return b-a})>> <</if>> <<for _i to 0; _i lt _sortedItemWarmth.length; _i++>> <<for _j to 0; _j lt _wardrobeItems.length; _j++>> <<if _wardrobeItems[_j].warmth is _sortedItemWarmth[_i]>> <<run _newWardrobeItems.push(clone(_wardrobeItems[_j]))>> <</if>> <</for>> <</for>> <<case "outfit">> <<if _descending>> <<set _status to ["broken","split",0,1]>> /* NO SPLIT ADDED */ <<else>> <<set _status to [1,0,"split","broken"]>> /* NO SPLIT ADDED */ <</if>> <<for _i to 0; _i lt _status.length; _i++>> <<for _j to 0; _j lt _wardrobeItems.length; _j++>> <<if _wardrobeItems[_j].one_piece is _status[_i]>> <<run _newWardrobeItems.push(clone(_wardrobeItems[_j]))>> <</if>> <</for>> <</for>> <<case "lewd">> <<set _itemReveal to []>> <<for _i to 0; _i lt _wardrobeItems.length; _i++>> <<run _itemReveal.pushUnique(_wardrobeItems[_i].reveal)>> <</for>> <<if _descending>> <<set _sortedItemReveal to _itemReveal.sort((a, b) => a - b)>> <<else>> <<set _sortedItemReveal to _itemReveal.sort((a, b) => b - a)>> <</if>> <<for _i to 0; _i lt _sortedItemReveal.length; _i++>> <<for _j to 0; _j lt _wardrobeItems.length; _j++>> <<if _wardrobeItems[_j].reveal is _sortedItemReveal[_i]>> <<run _newWardrobeItems.push(clone(_wardrobeItems[_j]))>> <</if>> <</for>> <</for>> <</switch>> <<if _newWardrobeItems isnot []>> <<set _selectedWardrobe[_slot] to clone(_newWardrobeItems)>> <</if>> <<run Dynamic.render()>> <</if>> <</widget>> <<widget "wardrobeSanityCheck">> /*Fixes invisible outfit bottoms caused by bugs in previous versions*/ <<if $runWardrobeSanityChecker is true>> <<set $lastWardrobeSanityCheck to $saveVersions.last()>> /*Update _equip as required*/ <<set _equip to ["lower", "under_lower", "head"]>> <<for _slot range _equip>> <<set _eIndextemIndex to {}>> <<for _eIndex to 0; _eIndex lt _selectedWardrobe[_slot].length; _eIndex++>> <<if _selectedWardrobe[_slot][_eIndex].outfitSecondary is undefined>> <<continue>> <</if>> <<if _selectedWardrobe[_slot][_eIndex].outfitSecondary[1] is "broken" or _selectedWardrobe[_slot][_eIndex].outfitSecondary[1] is "split">> <<continue>> <</if>> /*Prep*/ <<set $_markBroken to true>> <<set $_found to false>> <<set _eIndextem to _selectedWardrobe[_slot][_eIndex]>> <<set $_outfitSecondary to _selectedWardrobe[_slot][_eIndex].outfitSecondary>> <<if _eIndextemIndex[$_outfitSecondary[0]] is undefined>> <<set _eIndextemIndex[$_outfitSecondary[0]] to []>> <</if>> /*Look for a primary piece that matches*/ <<for _iIndex to 0; _iIndex lt _selectedWardrobe[$_outfitSecondary[0]].length; _iIndex++>> <<if _selectedWardrobe[$_outfitSecondary[0]][_iIndex].name isnot $_outfitSecondary[1]>> <<continue>> <</if>> <<if _eIndextemIndex[$_outfitSecondary[0]].includes(_iIndex)>> <<continue>> <</if>> <<if _selectedWardrobe[$_outfitSecondary[0]][_iIndex].colour is _eIndextem.colour and (_eIndextem.accessory is 0 or _selectedWardrobe[$_outfitSecondary[0]][_iIndex].accessory is 0 or _selectedWardrobe[$_outfitSecondary[0]][_iIndex].accessory_colour is _eIndextem.accessory_colour)>> <<if _eIndextem.colour isnot "custom" and (_eIndextem.accessory is 0 or _selectedWardrobe[$_outfitSecondary[0]][_iIndex].accessory is 0 or _eIndextem.accessory_colour isnot "custom")>> <<set $_markBroken to false>> <<run _eIndextemIndex[$_outfitSecondary[0]].push(clone(_iIndex))>> <<break>> <<elseif _eIndextem.colourCustom is _selectedWardrobe[$_outfitSecondary[0]][_iIndex].colourCustom and (_eIndextem.accessory is 0 or _selectedWardrobe[$_outfitSecondary[0]][_iIndex].accessory is 0 or _eIndextem.accessory_colourCustom is _selectedWardrobe[$_outfitSecondary[0]][_iIndex].accessory_colourCustom)>> <<set $_markBroken to false>> <<run _eIndextemIndex[$_outfitSecondary[0]].push(clone(_iIndex))>> <<break>> <</if>> <</if>> <</for>> <<if $_markBroken is true>> /*Mark as broken*/ <<set _selectedWardrobe[_slot][_eIndex].outfitSecondary[1] to "broken">> <<set _selectedWardrobe[_slot][_eIndex].one_piece to "broken">> <<set _selectedWardrobe[_slot][_eIndex].set to clone(_slot)>> <<set _selectedWardrobe[_slot][_eIndex].sanityCheck to true>> <</if>> <</for>> <</for>> <<set $runWardrobeSanityChecker to false>> <</if>> <<if $worn.handheld.type.includes("prop")>> <<error { message: `Removed a prop that should have been destroyed: '${$worn.handheld.name}'. Please report the location where this prop was equipped.` }>> <<handheldruined true>> <<handheldon>> <</if>> <</widget>> <<widget "wardrobeGetRepairedClothes">> <<set _equip to setup.clothingLayer.all>> <<set _takenAway to 0>> <<for _eIndex to 0; _eIndex lt _equip.length; _eIndex++>> <<if $wardrobeRepair[_equip[_eIndex]] is undefined>> <<continue>> <</if>> <<for _iIndex to 0; _iIndex lt $wardrobeRepair[_equip[_eIndex]].length; _iIndex++>> <<set _itemStats to $wardrobeRepair[_equip[_eIndex]][_iIndex]>> <<if typeof _itemStats is "object" and _itemStats?.length >= 5>> /* Players might have old $wardrobeRepair already set before version updated */ <<set _itemStats to { index: _itemStats[0], colour: _itemStats[1], colourCustom: _itemStats[2], accessory_colour: _itemStats[3], accessory_colourCustom: _itemStats[4], one_piece: _itemStats[5] === true ? "split" : undefined }>> <</if>> <<if _selectedWardrobe[_equip[_eIndex]].length gte _selectedWardrobe.space>> <<set _takenAwayCheckitem to setup.clothes[_equip[_eIndex]][_itemStats.index]>> <<if _takenAwayCheckitem.one_piece != 1>> <<set _takenAway++>> <<continue>> <</if>> <</if>> <<sendToWardrobeFromDefault "wardrobe" _equip[_eIndex] `_itemStats.index` `_itemStats.colour` `_itemStats.accessory_colour` `_itemStats.pattern`>> <<set _latestWardrobeAddition to _selectedWardrobe[_equip[_eIndex]].last()>> <<run Object.entries(_itemStats).forEach(([key, itemStatValue]) => { if (!itemStatValue) return; switch (key) { case "accessory_colour": case "accessory_colourCustom": if (!T.latestWardrobeAddition.accessory_colour_sidebar && T.itemStats.one_piece != "split") return; break; case "index": case "colour": case "pattern": return; break; case "altposition": case "altsleeve": if (!T.latestWardrobeAddition[key]) return; break; case "one_piece": if (T.latestWardrobeAddition[key] != 1) return; if (itemStatValue === "split") { if (T.latestWardrobeAddition.outfitPrimary) { Object.keys(T.latestWardrobeAddition.outfitPrimary).forEach((label) => { T.latestWardrobeAddition.outfitPrimary[label] = itemStatValue; }) } else if (T.latestWardrobeAddition.outfitSecondary) { T.latestWardrobeAddition.outfitSecondary[1] = itemStatValue; } } break; case "hoodposition": if (!T.latestWardrobeAddition[key]) return; if (itemStatValue === "down") { delete T.latestWardrobeAddition.outfitPrimary.head; delete T.latestWardrobeAddition.outfitPrimary.over_head; } break; } T.latestWardrobeAddition[key] = itemStatValue; })>> <</for>> <</for>> <<if _takenAway gt 0>> <br> The driver thanks you for the donation of _takenAway items due to you not having enough space. <</if>> <<unset $wardrobeRepair>> <</widget>> <<widget "randomWear">> <<set $wardrobeOption to "wear">> <<set $_equip to []>> <<set _equipped to []>> <<for $_slot, $_value range $randomEquipConfigure>> <<if $worn[$_slot].type.includes("strap-on")>> <<continue>> <</if>> <<if $_value>> <<generalUndress $wardrobe_location $_slot>> <<run $_equip.push($_slot)>> <</if>> <</for>> <<for $_slot range $_equip>> <<if !_equipped.includes($_slot) and $worn[$_slot].name is "naked">> <<set _eIndexds to _selectedWardrobe[$_slot].map((item, index) => { if (!item.outfitSecondary or item.outfitSecondary[1] is "broken" or item.outfitSecondary[1] is "split") return index; }).filter(Boolean)>> <<if _eIndexds.length gt 0>> <<set _eIndexd to _eIndexds.random()>> <<set $_selectedItem to _selectedWardrobe[$_slot][_eIndexd]>> <<run _equipped.pushUnique($_slot)>> <<if $_selectedItem.outfitPrimary isnot undefined>> <<run Object.entries($_selectedItem.outfitPrimary).forEach((slot,value) => { if (value !== "broken" && value !== "split") _equipped.pushUnique(slot) })>> <</if>> <<set V["wear_" + $_slot] to _eIndexd>> <<unset _eIndexd>> <</if>> <</if>> <</for>> <<unset $randomWear>> <</widget>> <<widget "warmth_description">> <<print setup.WeatherDescriptions.shop()>> <br> Your clothing warmth is currently <span class="orange"><<print Weather.BodyTemperature.getWarmth()>></span>. <br> <<set $_minWarmth to getTargetWarmth(36.4)>> <<set $_maxWarmth to getTargetWarmth(37.6)>> To be comfortable you'll need <<if $_minWarmth and $_maxWarmth>> a clothing warmth between <span class="orange"><<print getTargetWarmth(36.5)>></span> and <span class="orange"><<print getTargetWarmth(37.5)>></span>. <<elseif $_minWarmth>> at least a clothing warmth of <span class="orange"><<print getTargetWarmth(36.5)>></span>. <<elseif $_maxWarmth>> at most a clothing warmth of <span class="orange"><<print getTargetWarmth(37.5)>></span>. <<else>> to stay indoors. <</if>> <hr /> <</widget>> <<widget "wardrobeSelection">> <<if !$settings.multipleWardrobes or !$wardrobes[$wardrobe_location]>> <<set $wardrobe_location to "wardrobe">> <<elseif $forceWardrobeLocation>> <<set $wardrobe_location to $forceWardrobeLocation>> <<elseif $settings.multipleWardrobes is "isolated" and !$wardrobes[$wardrobe_location].isolated>> <<set $wardrobe_location to "wardrobe">> <</if>> <<if $debug and $settings.multipleWardrobes and !_args[0]>> <div class="no-numberify">Debug: <<for _label, _value range $wardrobes>> <<if _value.unlocked is undefined>> <<elseif $wardrobe_location is _label>> <span class="gold"><<print _value.name>></span> | <<else>> <<capture _label>><<link [[_value.name|$passage]]>><<set $forceWardrobeLocation to _label>><</link>> |<</capture>> <</if>> <</for>> </div> <br> <</if>> <</widget>> <<widget "cleanupOnWardrobeExit">> <<if $bus is "clothingshop">><<set $tryOn.autoReset to true>><</if>> <<unset $saveColor>><<unset $wardrobeRepeat>><<unset $tempDisable>><<set $delete_outfit to "none">><<unset $forceWardrobeLocation>><<set $dontHide to false>><<run delete $wardrobeExit>> <</widget>> <<widget "wardrobeExits">> <!-- Note: Don't use $_ in this widget, because this widget gets <<replace>>'d into the passage body --> <!-- this widget doesn't make sense because these links ALWAYS depend on the passage this widget is called from, so there's no reason to make it a widget --> <<switch $passage>> <<case "Wardrobe">> <<link [[Close wardrobe|Bedroom]]>><<cleanupOnWardrobeExit>><</link>> <<case "Changing Room">> <<if $exposed lte 1>> <<set _exit to $wardrobeExit or "Beach">> <<getouticon>><<link [[Leave|_exit]]>><<cleanupOnWardrobeExit>><</link>> <<elseif hasSexStat("exhibitionism", 5)>> <<set _exitSneak to $wardrobeExit or "Beach Changing Room Sneak">> <<sneakicon>><<link [[Sneak outside|_exitSneak]]>><<cleanupOnWardrobeExit>><</link>><<exhibitionist5>> <<else>> You can't go out like this! <</if>> <<case "Sydney Beach Changing Room">> <<set _earSlimeEnableSwimwear to true>> <<if $exposed lte 1>> <<getouticon>><<link [[Leave|Sydney Beach Swimsuit]]>><<cleanupOnWardrobeExit>><</link>> <<else>> You can't go out like this! <</if>> <<case "Sydney Beach Changing Room Leave">> <<set _earSlimeEnableSwimwear to true>> <<if $earSlime.forcedCommando isnot undefined and !$worn.under_lower.type.includes("naked")>> <span class="red">The slime in your ear refuses to allow you to leave with <<underwearTypeText>> on.</span> <<elseif $exposed lte 1>> <<getouticon>><<link [[Leave|Sydney Beach Leave]]>><<cleanupOnWardrobeExit>><</link>> <<else>> You can't go out like this! <</if>> <<case "Eden Wardrobe">> <<if isLoveInterest("Eden") or hasSexStat("exhibitionism", 5) or $exposed lte 0 or (hasSexStat("exhibitionism", 4) and $exposed lte 1)>> <<link [[Done|Eden Cabin]]>><<cleanupOnWardrobeExit>><</link>> <<else>> You can't remain undressed like this! <</if>> <<case "Eden Night Wardrobe">> <<if isLoveInterest("Eden") or hasSexStat("exhibitionism", 5) or $exposed lte 0 or (hasSexStat("exhibitionism", 4) and $exposed lte 1)>> <<link [[Done|Eden Cabin Bed]]>><<cleanupOnWardrobeExit>><</link>> <<else>> You can't remain undressed like this! <</if>> <<case "Asylum Wardrobe">> <<if hasSexStat("exhibitionism", 5) or $exposed lte 0 or (hasSexStat("exhibitionism", 4) and $exposed lte 1)>> <<link [[Done|Asylum Cell]]>><<cleanupOnWardrobeExit>><</link>> <<else>> You can't remain undressed like this! <</if>> <<case "Farm Wardrobe">> <<if hasSexStat("exhibitionism", 5) or $exposed lte 0 or (hasSexStat("exhibitionism", 4) and $exposed lte 1)>> <<link [[Done|Farm Bedroom]]>><<cleanupOnWardrobeExit>><</link>> <<else>> You can't remain undressed like this! <</if>> <<case "Strip Club Wardrobe">> <<if hasSexStat("exhibitionism", 4) or $exposed lte 0 or (hasSexStat("exhibitionism", 2) and $exposed lte 1)>> <<link [[Step away|Strip Club Dressing Room]]>><<cleanupOnWardrobeExit>><</link>> <<else>> You can't go out like this! <</if>> <<case "Brothel Wardrobe">> <<if hasSexStat("exhibitionism", 4) or $exposed lte 0 or (hasSexStat("exhibitionism", 2) and $exposed lte 1)>> <<link [[Step away|Brothel Dressing Room]]>><<cleanupOnWardrobeExit>><</link>> <<else>> You can't go out like this! <</if>> <<case "School Pool Wardrobe">> <<if $changingRoomGender is "boys">> <<getouticon>><<link [[Leave|School Boy Changing Room]]>><<cleanupOnWardrobeExit>><</link>> <<else>> <<getouticon>><<link [[Leave|School Girl Changing Room]]>><<cleanupOnWardrobeExit>><</link>> <</if>> <<case "Farm Assault Wardrobe">> <<if hasSexStat("exhibitionism", 5) or $exposed lte 0 or (hasSexStat("exhibitionism", 4) and $exposed lte 1)>> <<link [[Done|Farm Assault Intro]]>><<cleanupOnWardrobeExit>><</link>> <<else>> You can't remain undressed like this! <</if>> <<case "Prison Wardrobe">> <<link [[Close|Prison Cell]]>><<cleanupOnWardrobeExit>><</link>> <<case "Temple Wardrobe">> <<link [[Close|Temple Bunk]]>><<cleanupOnWardrobeExit>><</link>> <<case "Pirate Wardrobe">> <<link [[Close|Pirate Bed]]>><<cleanupOnWardrobeExit>><</link>> <<case "Office Agency Changing Room">> <<if $exposed lte 1>> <<getouticon>><<link [[Leave|Office Agency]]>><<cleanupOnWardrobeExit>><</link>> <<elseif hasSexStat("exhibitionism", 4)>> <<sneakicon>><<link [[Sneak outside|Office Agency Streak]]>><<cleanupOnWardrobeExit>><</link>><<exhibitionist4>> <<else>> You can't go out like this! <</if>> <<case "Bird Tower Wardrobe">> <<link [[Close|Bird Tower]]>><<cleanupOnWardrobeExit>><</link>> <<case "Mansion Wardrobe">> <<if $avery_party>> <<link [[Exit|Mansion Party Quinn Change 2]]>><<cleanupOnWardrobeExit>><</link>> <br> <<elseif $avery_mansion_skyscraper_wardrobe>> <<link [[Exit|Mansion Skyscraper Wardrobe Exit]]>><<cleanupOnWardrobeExit>><</link>> <br> <<elseif $wardrobe_residential_alleys gte 2>> <<if $exposed lte 0>> <<link [[Exit|Residential Alleyways]]>><</link>> <br> <<elseif $exposed is 1 and hasSexStat("exhibitionism", 4)>> <<link [[Exit|Residential Mansion Undies]]>><</link>><<exhibitionist4>> <br> <<elseif $exposed is 2 and hasSexStat("exhibitionism", 5)>> <<link [[Exit|Residential Mansion Naked]]>><</link>><<exhibitionist5>> <br> <<else>> You can't leave dressed like this! <</if>> <<else>> <<link [[Exit|Mansion Bedroom]]>><<cleanupOnWardrobeExit>><</link>> <br> <</if>> <</switch>> <br><br> <</widget>> <<widget "underwearTypeText">><<silently>> <<if $worn.under_lower.name is "naked">> <<elseif $worn.under_lower.type.includes("swim")>> <<set $_text_output to "swimwear">> <<elseif $worn.under_lower.type.includes("dance")>> <<set $_text_output to "dancewear">> <<else>> <<set $_text_output to "underwear">> <</if>> <</silently>><<if $_text_output>><<print $_text_output>><</if>> <</widget>><<effects>> <<set $wardrobe_location to "wardrobe">> <<wardrobeSelection>> You look in your wardrobe. <br><br> <div id="wardrobewear"><<wardrobewear>></div> <div id="wardrobeExits"><<wardrobeExits>></div> <<wardrobe>><<effects>><<location "changingroom">> <<set $wardrobe_location to "changingRoom">> <<set _earSlimeEnableSwimwear to true>> <<wardrobeSelection>> You are in a small<<if $bus isnot "clothingshop">> wooden<</if>> changing room. <br><br> <div id="wardrobewear"><<wardrobewear>></div> <div id="wardrobeExits"><<wardrobeExits>></div> <<wardrobe>><<effects>> You look through the cupboard containing your clothes. There's an old dressing screen for privacy. <br><br> <<set $wardrobe_location to "edensCabin">> <<wardrobeSelection>> <div id="wardrobewear"><<wardrobewear>></div> <div id="wardrobeExits"><<wardrobeExits>></div> <<wardrobe>><<effects>> You look through the cupboard containing your clothes. <br><br> <<set $wardrobe_location to "asylum">> <<wardrobeSelection>> <div id="wardrobewear"><<wardrobewear>></div> <div id="wardrobeExits"><<wardrobeExits>></div> <<wardrobe>><<effects>> You look through the rustic wardrobe. <br><br> <<set $wardrobe_location to "alexFarm">> <<wardrobeSelection>> <div id="wardrobewear"><<wardrobewear>></div> <div id="wardrobeExits"><<wardrobeExits>></div> <<wardrobe>><<effects>> <<set $wardrobe_location to "stripClub">> <<wardrobeSelection>> <div id="wardrobewear"><<wardrobewear>></div> <div id="wardrobeExits"><<wardrobeExits>></div> <<wardrobe>><<effects>> <<set $wardrobe_location to "brothel">> <<wardrobeSelection>> <div id="wardrobewear"><<wardrobewear>></div> <div id="wardrobeExits"><<wardrobeExits>></div> <<wardrobe>><<effects>> <<wardrobeSelection>> <<set _earSlimeEnableSwimwear to true>> You stand in front of your open locker. <br><br> <div id="wardrobewear"><<wardrobewear>></div> <div id="wardrobeExits"><<wardrobeExits>></div> <<wardrobe>><<effects>> You look through the cupboard containing your clothes. <br><br> <<set $wardrobe_location to "temple">> <<wardrobeSelection>> <div id="wardrobewear"><<wardrobewear>></div> <div id="wardrobeExits"><<wardrobeExits>></div> <<wardrobe>><<effects>> You look through the cupboard containing your clothes. <br><br> <<set $wardrobe_location to "pirate">> <<wardrobeSelection>> <div id="wardrobewear"><<wardrobewear>></div> <div id="wardrobeExits"><<wardrobeExits>></div> <<wardrobe>><<effects>><<location "officeBuilding">> <<set $wardrobe_location to "officeBuilding">> <<wardrobeSelection>> You are in the small storage room sanctioned for temps to use for changing. <br><br> <div id="wardrobewear"><<wardrobewear>></div> <div id="wardrobeExits"><<wardrobeExits>></div> <<wardrobe>><<effects>> You look through the wardrobe you built. <br><br> <<set $wardrobe_location to "birdTower">> <<wardrobeSelection>> <div id="wardrobewear"><<wardrobewear>></div> <div id="wardrobeExits"><<wardrobeExits>></div> <<wardrobe>><<effects>> <<set $wardrobe_location to "avery_mansion">> <<wardrobeSelection>> <<if $wardrobe_residential_alleys gte 2>> You enter the storage unit. <<else>> You enter the large wardrobe. <</if>> <br><br> <div id="wardrobewear"><<wardrobewear>></div> <div id="wardrobeExits"><<wardrobeExits>></div> <<wardrobe>>Are you prepared to add all your <<if $crateContents is "all">> clothes <<else>> outfits <</if>> to the crate and send them to be sold? Might be best to go shopping shortly after. <br><br> <<set _value to 0>> <<for _label, _items range $wardrobe>> <<for _i to 0; _i lt _items.length; _i++>> <<if setup.clothes[_label][clothesIndex(_label,_items[_i])].shop.length is 0>> <<continue>> <</if>> <<if _items[_i].outfitSecondary isnot undefined>> <<continue>> <</if>> <<if _items[_i].outfitPrimary is undefined and $crateContents is "outfits">> <<continue>> <</if>> <<set _value += Math.floor(getClothingCost(_items[_i], _label) * (_items[_i].integrity / clothingData(_label,_items[_i],'integrity_max')) / 3)>> <</for>> <</for>> It will earn you <<printmoney `_value + 5000`>>. <br><br> <<link [[Yes|Wardrobe Sale Crate Result]]>><</link>> <br> <<link [[No|$wardrobeReturnLink]]>> <<unset $wardrobeReturnLink>> <<unset $crateContents>> <</link>><<set $tailorMonthlyService to 7>> <<set _value to 0>> <<set _equip to setup.clothingLayer.all>> <<for _eIndex to 0; _eIndex lt _equip.length; _eIndex++>> <<set _toDelete to []>> <<for _iIndex to 0; _iIndex lt $wardrobe[_equip[_eIndex]].length; _iIndex++>> <<if setup.clothes[_equip[_eIndex]][clothesIndex(_equip[_eIndex],$wardrobe[_equip[_eIndex]][_iIndex])].shop.length is 0>> <<continue>> <</if>> <<if $wardrobe[_equip[_eIndex]][_iIndex].outfitPrimary is undefined and $crateContents is "outfits">> <<continue>> <</if>> <<set _value += Math.floor(tailorClothingCost($wardrobe[_equip[_eIndex]][_iIndex],_equip[_eIndex]) * ($wardrobe[_equip[_eIndex]][_iIndex].integrity / clothingData(_equip[_eIndex],$wardrobe[_equip[_eIndex]][_iIndex],'integrity_max')) / 3)>> <<run _toDelete.push(clone(_iIndex))>> <</for>> <<for _iIndex to $wardrobe[_equip[_eIndex]].length; _iIndex gte 0; _iIndex-->> <<if _toDelete.includes(_iIndex)>> <<run $wardrobe[_equip[_eIndex]].deleteAt(_iIndex)>> <</if>> <</for>> <</for>> The driver takes the crate away, leaving <<printmoney `_value + 5000`>> in its place. <<money `Math.floor(_value + 5000)` "tailor">> <br><br> <<link [[Continue|$wardrobeReturnLink]]>> <<unset $wardrobeReturnLink>> <<unset $crateContents>> <</link>>Are you prepared to add all your <<if $crateContents is "all">> clothes <<elseif $crateContents is "damaged">> damaged clothes <<else>> outfits <</if>> to the crate and send them to be repaired? Might be best to go shopping shortly after. <br><br> <<set _value to 0>> /* recalculated with adding lower or upper halves when missing */ <<for _label, _items range $wardrobe>> <<for _i to 0; _i lt _items.length; _i++>> <<if isNaN(clothingData(_label,_items[_i],'integrity_max'))>><<continue>><</if>> <<if (_items[_i].outfitPrimary is undefined and _items[_i].outfitSecondary is undefined and $crateContents is "outfits") or (_items[_i].integrity gt clothingData(_label,_items[_i],'integrity_max'))>> <<continue>> <</if>> <<set _value += Math.floor(tailorClothingCost(_items[_i],_label) * (1 - (_items[_i].integrity / clothingData(_label,_items[_i],'integrity_max'))) * 1.25)>> <</for>> <</for>> It will cost you <<if _value gt 5000>> <<printmoney `_value - 5000`>>. <<else>> nothing. <</if>> <br><br> <<if $money gte _value>> <<link [[Yes|Wardrobe Repair Crate Result]]>><</link>> <<else>> Not enough money. <</if>> <br> <<link [[No|$wardrobeReturnLink]]>> <<unset $wardrobeReturnLink>> <<unset $crateContents>> <</link>><<set $tailorMonthlyService to 7>> <<set $wardrobeRepair to {timeLeft: 1}>> <<set _equip to setup.clothingLayer.all>> <<set _value to 0>> /* item stat keys to find matching clothing */ <<set _itemStatsIdentifierKeys to [ "colour", "colourCustom", "accessory_colour", "accessory_colourCustom", "one_piece", "pattern" ]>> /* Add a new key whenever the clothing object is updated */ <<set _itemStatsConditionalKeys to [ ...T.itemStatsIdentifierKeys, "hoodposition", "altposition", "altsleeve" ]>> <<for _eIndex to 0; _eIndex lt _equip.length; _eIndex++>> <<set _toDelete to []>> <<for _iIndex to 0; _iIndex lt $wardrobe[_equip[_eIndex]].length; _iIndex++>> <<set _currentClothing to $wardrobe[_equip[_eIndex]][_iIndex]>> <<if isNaN(clothingData(_equip[_eIndex],_currentClothing,'integrity_max'))>><<continue>><</if>> <<if _currentClothing.integrity gte clothingData(_equip[_eIndex],_currentClothing,'integrity_max') and _currentClothing.one_piece isnot "broken" and $crateContents is "damaged">> <<continue>> <</if>> <<if (_currentClothing.outfitPrimary is undefined and _currentClothing.outfitSecondary is undefined and $crateContents is "outfits") or (_currentClothing.integrity gt clothingData(_equip[_eIndex],_currentClothing,'integrity_max'))>> <<continue>> <</if>> <<set _value += Math.floor(tailorClothingCost(_currentClothing,_equip[_eIndex]) * (1 - (_currentClothing.integrity / clothingData(_equip[_eIndex],_currentClothing,'integrity_max'))) * 1.25)>> /* Deletes the full outfit set paired with a damaged outfit piece in wardrobe before duplicating */ <<if $crateContents is "damaged" and _currentClothing.one_piece is 1 and (_currentClothing.outfitPrimary or _currentClothing.outfitSecondary)>> <<set _ignoreSlot to _equip[_eIndex]>> <<if _currentClothing.outfitSecondary>> <<set _upperSlot to _currentClothing.outfitSecondary[0]>> <<set _upperOutfit to setup.clothes[_upperSlot][clothesIndex(_upperSlot, _currentClothing)]>> <<else>> <<set _upperSlot to _ignoreSlot>> <<set _upperOutfit to _currentClothing>> <</if>> <<set _itemDeleteSlots to new Set([_upperOutfit.slot, ...Object.keys(_upperOutfit.outfitPrimary)])>> <<set _itemDeleteSlots.delete(_ignoreSlot)>> /* Searches wardrobe to mark one outfit piece each for deletion before duplicating */ <<set _itemDeleteCandidates to Object.fromEntries(Object.entries($wardrobe) .filter(([slot, items]) => T.itemDeleteSlots.has(slot)) .map(([slot, items]) => { /* Converted to entries in order to preserve index */ const itemEntry = Object.entries(items) .filter(([, item]) => T.upperOutfit.variable === item.variable) /* Colours and pattern must match */ .filter(([, item]) => T.itemStatsIdentifierKeys.every((key) => { /* Some outfit secondaries (hanfu, overalls) do not store accessory_colour */ if ((!T.currentClothing.accessory_colour_sidebar || !item.accessory_colour_sidebar) && key.includes("accessory_colour")) { return true; } return T.currentClothing[key] === item[key]; }) ) /* Edge case for damaged hood paired with an upper w/ hoodposition === "down" */ .filter(([, item]) => { if (item.outfitPrimary) { return Object.keys(item.outfitPrimary).includes(T.ignoreSlot); } return true; }) /* Get most damaged item */ .reduce((minimum, [index, item]) => { if (minimum === undefined || item.integrity < minimum.item.integrity) { return {index: Number(index), item: item}; } return minimum; }, undefined); return [slot, itemEntry]; }) .filter(([slot, itemEntry]) => itemEntry)) >> <<if _ignoreSlot isnot _upperSlot>> <<if _itemDeleteCandidates[_upperSlot]>> /* Edge case for damaged lower paired with an upper w/ hoodposition === "down" */ <<set _upperOutfit to _itemDeleteCandidates[_upperSlot].item>> <<set _currentClothing to clone(_upperOutfit)>> <<run _itemDeleteSlots.clear()>> <<run [_upperSlot, ...Object.keys(_upperOutfit.outfitPrimary)].forEach((k) => T.itemDeleteSlots.add(k))>> <<set _itemDeleteSlots.delete(_ignoreSlot)>> <<run Object.entries(_itemDeleteCandidates).forEach(([slot]) => { if (!T.itemDeleteSlots.has(slot)) { delete T.itemDeleteCandidates[slot]; } })>> <<else>> /* Edge case for damaged secondary paired with split/partly broken upper */ <<set _outfitRepairSkip to true>> <</if>> <</if>> <<if !_outfitRepairSkip>> /* Deletes each outfit component except for current slot and adds repair costs */ <<run Object.entries(_itemDeleteCandidates).forEach(([slot, {index, item}]) => { T.value += Math.floor(tailorClothingCost(item,slot) * (1 - (item.integrity / clothingData(slot,item,'integrity_max'))) * 1.25); V.wardrobe[slot].deleteAt(index); })>> /* _currentClothing marked "broken" to trigger full repair */ <<set _currentClothing.one_piece to "broken">> <<if _currentClothing.outfitSecondary>> <<set _currentClothing.outfitSecondary[1] to "broken">> <</if>> <<if _currentClothing.outfitPrimary>> <<run Object.entries(_currentClothing.outfitPrimary).forEach(([itemSlot, itemName]) => { T.currentClothing.outfitPrimary[itemSlot] = "broken"; })>> <</if>> <</if>> <<unset _outfitRepairSkip>> <</if>> <<set $wardrobeRepair[_currentClothing.slot] ||= []>> <<set _itemStats to { index: _currentClothing.index }>> /* Conditionally stores values in _itemStats if they are not 0 or undefined */ <<run _itemStatsConditionalKeys.forEach((key) => { if (!T.currentClothing[key]) return; switch (key) { case "one_piece": if (T.currentClothing[key] != "split") return; break; case "altposition": case "altsleeve": if (T.currentClothing[key] === "none") return; break; case "hoodposition": if (T.currentClothing[key] === "up") return; break; } T.itemStats[key] = T.currentClothing[key]; })>> <<set _isBroken to (_currentClothing.one_piece === "broken")>> <<if _currentClothing.outfitSecondary and _isBroken>> /* If a secondary part of an outfit is broken adds the primary part so the complete outfit will be repaired */ <<set _upperSlot to _currentClothing.outfitSecondary[0]>> <<set _upperIndex to clothesIndex(_upperSlot, _currentClothing)>> <<set $wardrobeRepair[_upperSlot] ||= []>> /* clothing to send for repair is now _currentClothing's upper part */ <<set _itemStats.index to _upperIndex>> <<run $wardrobeRepair[_upperSlot].push(clone(_itemStats))>> /* Adds all outfit components from upper primary (i.e. bottom + hood from a cow onesie) */ <<set _upperOutfit to setup.clothes[_upperSlot][_upperIndex]>> <<run Object.keys(_upperOutfit.outfitPrimary).forEach((itemSlot) => { T.itemStats.index = clothesIndex(itemSlot, T.upperOutfit); V.wardrobeRepair[itemSlot] ||= [] V.wardrobeRepair[itemSlot].push(clone(T.itemStats)); })>> <<else>> <<run $wardrobeRepair[_currentClothing.slot].push(clone(_itemStats))>> <<if _currentClothing.outfitPrimary and _isBroken>> /* Adds all broken outfit components from upper primary */ <<set _upperOutfit to _currentClothing>> <<run Object.entries(_upperOutfit.outfitPrimary).forEach(([itemSlot, itemName]) => { if (itemName === "broken") { T.itemStats.index = clothesIndex(itemSlot, T.upperOutfit); V.wardrobeRepair[itemSlot] ||= [] V.wardrobeRepair[itemSlot].push(clone(T.itemStats)); } })>> <</if>> <</if>> <<run _toDelete.push(clone(_iIndex))>> <</for>> <<for _iIndex to $wardrobe[_equip[_eIndex]].length; _iIndex gte 0; _iIndex-->> <<if _toDelete.includes(_iIndex)>> <<run $wardrobe[_equip[_eIndex]].deleteAt(_iIndex)>> <</if>> <</for>> <</for>> <<if _value gt 5000>> <<money `-(_value - 5000)` "tailor">> The driver takes <<printmoney `_value - 5000`>> and the crate away. <<else>> The driver takes the crate away. <</if>> <br><br> <<link [[Continue|$wardrobeReturnLink]]>> <<unset $wardrobeReturnLink>> <<unset $crateContents>> <</link>>/*The "generalWear" widget works in the same way as the "...wear" widgets, however, the argument are as follows; slot, item index, colour, accessory_colour, pattern*/ <<widget "generalWear">> <<if $worn[_args[0]].cursed is 1>> <<elseif _args[0] and _args[1]>> <<set $_slot to _args[0]>> <<unset _strip_restrict>><<unset _cursedPrevent>> /*Check the current worn outfit related items for being locked on the character*/ <<set _outfitPrimaryWear to setup.clothes[$_slot][_args[1]].outfitPrimary>> <<if _outfitPrimaryWear isnot undefined>> <<for _outfitSlot, _value range _outfitPrimaryWear>> <<if $worn[_outfitSlot].cursed is 1>> <<set _cursedPrevent to true>> <</if>> <</for>> <</if>> <<if _cursedPrevent isnot true>> /*Primary Piece*/ <<if $worn[$_slot].name isnot "naked">> <<generalUndress `clothesReturnLocation($worn[$_slot])` $_slot>> <</if>> <<equipClothesItemFromDefault $_slot _args[1] _args[2] _args[3] _args[4]>> /*Outfit pieces*/ <<if _outfitPrimaryWear isnot undefined>> <<set _colour to $worn[$_slot].colour>> <<set _accessory_colour to $worn[$_slot].accessory_colour>> <<set _pattern to $worn[$_slot].pattern>> <<for _outfitSlot, _outfitName range _outfitPrimaryWear>> <<if $worn[_outfitSlot].name isnot "naked">> <<generalUndress `clothesReturnLocation($worn[_outfitSlot])` _outfitSlot>> <</if>> <<set _pieceId to setup.clothes[_outfitSlot].findIndex(item => item.name is _outfitName)>> <<if _pieceId isnot -1>> <!-- findIndex() returns -1 if no index is found --> <<equipClothesItemFromDefault _outfitSlot _pieceId _colour _accessory_colour _pattern>> <<else>> <!-- Error --> <</if>> <</for>> <</if>> <</if>> <<unset _outfitPrimaryWear>> <</if>> <</widget>> <!-- args: slot, item index, colour, accessory_colour, pattern --> <<widget "equipClothesItemFromDefault">> <<set $_slot to _args[0]>> <<set $_item to clone(setup.clothes[$_slot][_args[1]])>> <<set $_item.lastTaken to clone($wardrobes.shopReturn)>> <<if $_item.colour_options.length gt 0>> <<if _args[2]>> <<set $_item.colour to _args[2]>> <<if $_item.colour is "custom">> <<set $_item.colourCustom to customColour($customColors.color.primary, $customColors.saturation.primary, $customColors.brightness.primary, $customColors.contrast.primary, $customColors.sepia.primary)>> <</if>> <<else>> <<set _colorOption to clone($_item.colour_options)>> <<run _colorOption.delete("custom")>> <<set $_item.colour to _colorOption.random()>> <</if>> <</if>> <<if $_item.accessory_colour_options.length gt 0 and $_item.accessory_colour_sidebar>> <<if _args[3]>> <<set $_item.accessory_colour to _args[3]>> <<if $_item.accessory_colour is "custom">> <<set $_item.accessory_colourCustom to customColour($customColors.color.secondary, $customColors.saturation.secondary, $customColors.brightness.secondary, $customColors.contrast.secondary, $customColors.sepia.secondary)>> <</if>> <<else>> <<set _accessoryColorOption to clone($_item.accessory_colour_options)>> <<run _accessoryColorOption.delete("custom")>> <<set $_item.accessory_colour to _accessoryColorOption.random()>> <</if>> <</if>> <<if $_item.pattern_options?.length gt 0>> <<if _args[4]>> <<set $_item.pattern to _args[4]>> <<else>> <<set _patternOption to clone($_item.pattern_options)>> <<set $_item.pattern to _patternOption.random()>> <</if>> <</if>> <<set $worn[$_slot] to $_item>> <<run clothesDataTrimmer($worn[$_slot])>> <</widget>> /*The "...wear" widgets give the player character new clothing. They take the index of the item you want to provide as the first argument, and the colour of the item as an optional second argument. The third argument defines the secondary colour, optionally. Only the upper half is required in the case of outfits. Currently worn clothes are sent to wardrobe.*/ <<widget "overupperwear">> <<generalWear "over_upper" _args[0] _args[1] _args[2] _args[3]>> <</widget>> <<widget "overlowerwear">> <<generalWear "over_lower" _args[0] _args[1] _args[2] _args[3]>> <</widget>> <<widget "upperwear">> <<generalWear "upper" _args[0] _args[1] _args[2] _args[3]>> <</widget>> <<widget "lowerwear">> <<generalWear "lower" _args[0] _args[1] _args[2] _args[3]>> <</widget>> <<widget "underupperwear">> <<generalWear "under_upper" _args[0] _args[1] _args[2] _args[3]>> <</widget>> <<widget "underlowerwear">> <<generalWear "under_lower" _args[0] _args[1] _args[2] _args[3]>> <</widget>> <<widget "genitalswear">> <<generalWear "genitals" _args[0] _args[1] _args[2] _args[3]>> <</widget>> <<widget "overheadwear">> <<generalWear "over_head" _args[0] _args[1] _args[2] _args[3]>> <</widget>> <<widget "headwear">> <<generalWear "head" _args[0] _args[1] _args[2] _args[3]>> <</widget>> <<widget "facewear">> <<generalWear "face" _args[0] _args[1] _args[2] _args[3]>> <</widget>> <<widget "neckwear">> <<generalWear "neck" _args[0] _args[1] _args[2] _args[3]>> <</widget>> <<widget "leash">>/*Always replaces neckwear, even if cursed. */ <<if $worn.neck.cursed is 1>> <<set $worn.neck.type.push("broken")>> <<neckruined>> <</if>> <<generalWear "neck" _args[0] _args[1] _args[2] _args[3]>> <</widget>> <<widget "handswear">> <<generalWear "hands" _args[0] _args[1] _args[2] _args[3]>> <</widget>> <<widget "handheldwear">> <<generalWear "handheld" _args[0] _args[1] _args[2] _args[3]>> <</widget>> <<widget "legswear">> <<generalWear "legs" _args[0] _args[1] _args[2] _args[3]>> <</widget>> <<widget "feetwear">> <<generalWear "feet" _args[0] _args[1] _args[2] _args[3]>> <</widget>> /*The "generalSend" widget works in the same way as the "...send" widgets, however, the argument are as follows; Location, slot, item index, colour, accessory_colour, pattern*/ <<widget "generalSend">> <<set $_selectedWardrobe to (_args[0] is "wardrobe" or !(_args[0] in $wardrobes) ? $wardrobe : $wardrobes[_args[0]])>> <<set $_outfitPrimary to setup.clothes[_args[1]][_args[2]].outfitPrimary>> <<if _args[0]>> <<sendToWardrobeFromDefault _args[0] _args[1] _args[2] _args[3] _args[4] _args[5]>> <<if $_outfitPrimary isnot undefined>> <<set $_outfitPiece to $_selectedWardrobe[_args[1]].last()>> <<set _colour to $_outfitPiece.colour>> <<set _colourCustom to $_outfitPiece.colourCustom>> <<set _accessory_colour to $_outfitPiece.accessory_colour>> <<set _accessory_colourCustom to $_outfitPiece.accessory_colourCustom>> <<set _pattern to $_outfitPiece.pattern>> <<for $_label, $_value range $_outfitPrimary>> <<set _pieceId to setup.clothes[$_label].findIndex(item => item.name is $_value)>> <<if _pieceId isnot -1>> <!-- findIndex() returns -1 if no index is found --> <<if (!_hoodDown or $_label isnot "head") and _pieceId.one_piece isnot "split">> /*If hood is down, don't make a hood. If an upper part of an outfit is separated don't add a lower part*/ <<sendToWardrobeFromDefault _args[0] $_label _pieceId _colour _accessory_colour _pattern>> <</if>> <<else>> <!-- Error --> <</if>> <</for>> <</if>> <</if>> <</widget>> <<widget "carriedSend">> <<if _args[0] is "wardrobe" or Object.keys($wardrobes).includes(_args[0])>> <<set $_undressSlot to _args[1]>> /*Checks if the current slot is part of an outfit and switches to the main piece if that is the case*/ <<if $carried[$_undressSlot].outfitSecondary isnot undefined and $carried[$carried[$_undressSlot].outfitSecondary[0]].name is $carried[$_undressSlot].outfitSecondary[1]>> <<set $_undressSlot to $carried[$_undressSlot].outfitSecondary[0]>> <</if>> <<set $_outfitPrimaryUndress to $carried[$_undressSlot].outfitPrimary>> <<set _slots to []>> <<set $_selectedWardrobe to selectWardrobe()>> <<if $_outfitPrimaryUndress isnot undefined>> <<for _labelUndress, _valueUndress range $_outfitPrimaryUndress>> <<if _valueUndress isnot "broken" and _valueUndress isnot "split">> <<if !setup.wardrobeSkip.includes($carried[_labelUndress].name) and $carried[_labelUndress].name is _valueUndress>> <<set $_selectedWardrobe[_labelUndress].push(clone($carried[_labelUndress]))>> <<run _slots.push(_labelUndress)>> <</if>> <<set $carried[_labelUndress] to clone(setup.clothes[_labelUndress][0])>> <</if>> <</for>> <</if>> <<if !setup.wardrobeSkip.includes($carried[$_undressSlot].name)>> <<set $_selectedWardrobe[$_undressSlot].push(clone($carried[$_undressSlot]))>> <</if>> <<set $carried[$_undressSlot] to clone(setup.clothes[$_undressSlot][0])>> <<run _slots.push($_undressSlot)>> <</if>> <</widget>> <<widget "sendToWardrobeFromDefault">> <<set $_location to _args[0]>> <<set $_slot to _args[1]>> <<set $_selectedWardrobe to ($_location is "wardrobe" or !($_location in $wardrobes) ? $wardrobe : $wardrobes[$_location])>> <<set $_selectedWardrobe[$_slot].push(clone(setup.clothes[$_slot][_args[2]]))>> <<set $_item to $_selectedWardrobe[$_slot].last()>> <<if $_item.colour_options.length gt 0>> <<if _args[3]>> <<set $_item.colour to _args[3]>> <<if $_item.colour is "custom">> <<if _colourCustom isnot undefined>> <<set $_item.colourCustom to _colourCustom>> <<unset _colourCustom>> <<else>> <<set $_item.colourCustom to customColour($customColors.color.primary, $customColors.saturation.primary, $customColors.brightness.primary, $customColors.contrast.primary, $customColors.sepia.primary)>> <</if>> <</if>> <<else>> <<set $_item.colour to clone($_item.colour_options.random())>> <</if>> <</if>> <<if $_item.accessory_colour_options.length gt 0 and $_item.accessory_colour_sidebar>> <<if _args[4]>> <<set $_item.accessory_colour to _args[4]>> <<if $_item.accessory_colour is "custom">> <<if _accessory_colourCustom isnot undefined>> <<set $_item.accessory_colourCustom to _accessory_colourCustom>> <<unset _accessory_colourCustom>> <<else>> <<set $_item.accessory_colourCustom to customColour($customColors.color.secondary, $customColors.saturation.secondary, $customColors.brightness.secondary, $customColors.contrast.secondary, $customColors.sepia.secondary)>> <</if>> <</if>> <<else>> <<set $_item.accessory_colour to clone($_item.accessory_colour_options.random())>> <</if>> <</if>> <<if $_item.pattern_options and $_item.pattern_options.length gt 0>> <<if _args[5]>> <<set $_item.pattern to _args[5]>> <<else>> <<set $_item.pattern to clone($_item.pattern_options[0])>> <</if>> <</if>> <<if _hoodDown and $_item.hoodposition isnot undefined>> <<set $_item.hoodposition to "down">> <<run delete $_item.outfitPrimary.head>> <</if>> <<run clothesDataTrimmer($_item)>> <</widget>> /*The "...send" widgets give the player character new clothing. They take the index of the item you want to provide as an argument, the location you want to send it to as a second argument, (such as "wardrobe",) and the colour of the item as an optional third argument. Fourth argument defines the secondary colour, if present. Fifth argument defines the pattern, if present. Only the upper half is required in the case of outfits. They differ from the "...wear" widgets in that they send clothes to your wardrobe, rather than put them on your character.*/ <<widget "overuppersend">> <<generalSend _args[1] "over_upper" _args[0] _args[2] _args[3] _args[4]>> <</widget>> <<widget "overlowersend">> <<generalSend _args[1] "over_lower" _args[0] _args[2] _args[3] _args[4]>> <</widget>> <<widget "uppersend">> <<generalSend _args[1] "upper" _args[0] _args[2] _args[3] _args[4]>> <</widget>> <<widget "lowersend">> <<generalSend _args[1] "lower" _args[0] _args[2] _args[3] _args[4]>> <</widget>> <<widget "underuppersend">> <<generalSend _args[1] "under_upper" _args[0] _args[2] _args[3] _args[4]>> <</widget>> <<widget "underlowersend">> <<generalSend _args[1] "under_lower" _args[0] _args[2] _args[3] _args[4]>> <</widget>> <<widget "genitalssend">> <<generalSend _args[1] "genitals" _args[0] _args[2] _args[3] _args[4]>> <</widget>> <<widget "overheadsend">> <<generalSend _args[1] "over_head" _args[0] _args[2] _args[3] _args[4]>> <</widget>> <<widget "headsend">> <<generalSend _args[1] "head" _args[0] _args[2] _args[3] _args[4]>> <</widget>> <<widget "facesend">> <<generalSend _args[1] "face" _args[0] _args[2] _args[3] _args[4]>> <</widget>> <<widget "necksend">> <<generalSend _args[1] "neck" _args[0] _args[2] _args[3] _args[4]>> <</widget>> <<widget "handssend">> <<generalSend _args[1] "hands" _args[0] _args[2] _args[3] _args[4]>> <</widget>> <<widget "handheldsend">> <<generalSend _args[1] "handheld" _args[0] _args[2] _args[3] _args[4]>> <</widget>> <<widget "legssend">> <<generalSend _args[1] "legs" _args[0] _args[2] _args[3] _args[4]>> <</widget>> <<widget "feetsend">> <<generalSend _args[1] "feet" _args[0] _args[2] _args[3] _args[4]>> <</widget>> /*The "...strip" widgets remove the player character's clothing. The clothing remains with the player character, ready to be put back on.*/ <<widget "strip">> <<overupperstrip>> <<overlowerstrip>> <<upperstrip>> <<lowerstrip>> <<underupperstrip>> <<if playerHasStrapon() and _args[0] isnot undefined>> <!-- keep wearing the strap-on --> <<else>> <<underlowerstrip>> <</if>> <<headstrip>> <<facestrip>> <<neckstrip>> <<handsstrip>> <<handheldstrip>> <<legsstrip>> <<feetstrip>> <<setKnowsAboutPregnancyCurrentLoaded>> <</widget>> <<widget "clothesstrip">> <<overupperstrip>> <<overlowerstrip>> <<upperstrip>> <<lowerstrip>> <<underupperstrip>> <<underlowerstrip>> <<setKnowsAboutPregnancyCurrentLoaded>> <</widget>> <<widget "shavestrip">> <<overupperstrip>> <<overlowerstrip>> <<upperstrip>> <<lowerstrip>> <<underlowerstrip>> <<legsstrip>> <<feetstrip>> <<setKnowsAboutPregnancyCurrentLoaded>> <</widget>> <<widget "generalStrip">> <<if _args[0]>> <<unset _stripSlot>> /*Checks if the current slot is part of an outfit and switches to the main piece if that is the case*/ <<if $worn[_args[0]].outfitSecondary isnot undefined>> <<if $worn[$worn[_args[0]].outfitSecondary[0]].name is $worn[_args[0]].outfitSecondary[1]>> <<set _stripSlot to $worn[_args[0]].outfitSecondary[0]>> <</if>> <</if>> <<if _stripSlot is undefined>> <<set _stripSlot to _args[0]>> <</if>> <<if $worn[_stripSlot].cursed is 1>> <<elseif $worn[_stripSlot].name isnot "naked">> <<unset _cursedPrevent>> /*Check the current worn outfit related items for being locked on the character*/ <<set _outfitPrimaryStrip to $worn[_stripSlot].outfitPrimary>> <<if _outfitPrimaryStrip isnot undefined>> <<for _labelStrip, _valueStrip range _outfitPrimaryStrip>> <<if $worn[_labelStrip].cursed is 1 and $worn[_labelStrip].name is _valueStrip>> <<set _cursedPrevent to true>> <</if>> <</for>> <</if>> <<if _cursedPrevent isnot true>> <<set V[_stripSlot.replace(/_/g,"")+'last'] to $worn[_stripSlot].name>> <<if $carried[_stripSlot].name isnot "naked">> <<carriedSend "wardrobe" _stripSlot>> <</if>> <<set $carried[_stripSlot] to clone($worn[_stripSlot])>> <<set $worn[_stripSlot] to clone(setup.clothes[_stripSlot][0])>> <<if _outfitPrimaryStrip isnot undefined>> <<for _labelStrip, _valueStrip range _outfitPrimaryStrip>> <<if $worn[_labelStrip].name is _valueStrip>> <<set V[_labelStrip.replace(/_/g,"")+'last'] to $worn[_labelStrip].name>> <<if $carried[_labelStrip].name isnot "naked">> <<carriedSend "wardrobe" _labelStrip>> <</if>> <<set $carried[_labelStrip] to clone($worn[_labelStrip])>> <<set $worn[_labelStrip] to clone(setup.clothes[_labelStrip][0])>> <</if>> <</for>> <</if>> <</if>> <<unset _outfitPrimaryStrip>> <</if>> <</if>> <</widget>> <<widget "overupperstrip">> <<generalStrip "over_upper">> <</widget>> <<widget "overlowerstrip">> <<generalStrip "over_lower">> <</widget>> <<widget "upperstrip">> <<generalStrip "upper">> <</widget>> <<widget "lowerstrip">> <<generalStrip "lower">> <</widget>> <<widget "underupperstrip">> <<generalStrip "under_upper">> <</widget>> <<widget "underlowerstrip">> <<generalStrip "under_lower">> <</widget>> <<widget "overheadstrip">> <<generalStrip "over_head">> <</widget>> <<widget "headstrip">> <<generalStrip "head">> <</widget>> <<widget "facestrip">> <<generalStrip "face">> <</widget>> <<widget "neckstrip">> <<generalStrip "neck">> <</widget>> <<widget "handsstrip">> <<generalStrip "hands">> <</widget>> <<widget "handheldstrip">> <<generalStrip "handheld">> <</widget>> <<widget "legsstrip">> <<generalStrip "legs">> <</widget>> <<widget "feetstrip">> <<generalStrip "feet">> <</widget>> /* temporarily equips a handheld "prop" for visual effect in scenes. props can be cleared earlier in a scene via <<handheldon>> or <<clotheson>> and are cleared in <<endevent>> */ <<widget "wearProp">> <<if _args[0].includes('|')>> <<set _prop to _args[0].split('|')>> <<set _var to _prop[0]>> <<set _colour to _prop[1] || 0>> <<set _pattern to _prop[2] || 0>> <<else>> <<set _var to _args[0]>> <<set _colour to _args[1] || 0>> <<set _pattern to _args[2] || 0>> <</if>> <<set _propIndex to (setup.clothes.handheld.findIndex(item => item.variable is _var) || 0)>> <<if $worn.handheld.type.includes("prop")>> <<handheldon>> <</if>> <<set $propEquipped to 1>> <<handheldstrip>> <<if _propIndex gt 1>> <<handheldwear _propIndex _colour 0 _pattern>> <<else>> <<run Errors.report("Invalid prop variable: " + _args[0])>> <</if>> <</widget>> /*Returns all carried clothes back to the wardrobe*/ <<widget "returnCarried">> <<if _args[0] is "wardrobe" or $wardrobes[_args[0]] is undefined>> <<set $_selectedWardrobe to $wardrobe>> <<else>> <<set $_selectedWardrobe to $wardrobes[_args[0]]>> <</if>> <<run Object.keys($carried).forEach(slot => { if (!setup.wardrobeSkip.includes($carried[slot].name)) { let location = clothesReturnLocation($carried[slot]); if(location === "wardrobe" || !$wardrobes[location].unlocked){ $wardrobe[slot].push(clone($carried[slot])); } else { $wardrobes[location][slot].push(clone($carried[slot])); } } $carried[slot] = clone(setup.clothes[slot][0]); })>> <</widget>> /*The "dontHideForNow" widget makes the player character not cover themselves even when self-conscious*/ /*Use "dontHideRevert" widget to go back to normal behaviour*/ <<widget "dontHideForNow">> <<set $dontHideNormal to $dontHide>> <<set $dontHide to true>> <</widget>> <<widget "dontHideRevert">> <<set $dontHide to $dontHideNormal>> <</widget>> /*The "...ruined" widgets destroy the player character's current clothing, whether worn or carried.*/ <<widget "ruined">> <<overupperruined>> <<overlowerruined>> <<upperruined>> <<lowerruined>> <<underupperruined>> <<underlowerruined>> <<headruined>> <<faceruined>> <<neckruined>> <<handsruined>> <<legsruined>> <<feetruined>> <<handheldruined>> <<setKnowsAboutPregnancyCurrentLoaded>> <</widget>> <<widget "clothesruined">> <<overupperruined>> <<overlowerruined>> <<upperruined>> <<lowerruined>> <<underupperruined>> <<underlowerruined>> <<setKnowsAboutPregnancyCurrentLoaded>> <</widget>> <<widget "overruined">> <<overupperruined>> <<overlowerruined>> <<setKnowsAboutPregnancyCurrentLoaded>> <</widget>> <<widget "middleruined">> <<upperruined>> <<lowerruined>> <<setKnowsAboutPregnancyCurrentLoaded>> <</widget>> <<widget "underruined">> <<underupperruined>> <<underlowerruined>> <<setKnowsAboutPregnancyCurrentLoaded>> <</widget>> /*_args[0] = slot name*/ /*_args[1] = true for ruin all pieces of an outfit*/ /*_args[2] = "worn" or "carried" to destroy just that category"*/ <<widget "generalRuined">> <<set _destroyWorn to !_args[2] || _args[2] is "worn">> <<set _destroyCarry to !_args[2] || _args[2] is "carried">> <<if _args[0]>> <<set $eventskipoverrule to 1>> <<if $worn[_args[0]].cursed is 1 and !$worn[_args[0]].type.includes("broken") and !$worn[_args[0]].type.includes("split") or ($worn[_args[0]].name is "naked" and $carried[_args[0]].name is "naked")>> <<else>> <<if _destroyWorn>> <<switch _args[0]>> <<case "upper">> <<set $upperwet to 0>><<set $upperwetstage to 0>> <<if $worn.upper.type.includes("binding") and _unbind_check isnot 1>> <<unbind>> <</if>> <<case "lower">><<set $lowerwet to 0>><<set $lowerwetstage to 0>> <<case "under_upper">><<set $underupperwet to 0>><<set $underupperwetstage to 0>> <<case "under_lower">><<set $underlowerwet to 0>><<set $underlowerwetstage to 0>> <<if $worn.under_lower.type.includes("strap-on")>> <<set $penisstate to "none">><<set $penisuse to "none">> <<if $penistarget isnot undefined and typeof $penistarget is "number">> <<if $NPCList[$penistarget].penis isnot "none">> <<set $NPCList[$penistarget].penis to 0>> <</if>> <</if>> <</if>> <</switch>> /* In case you lose the gold chastity belt before donating it */ <<if $worn[_args[0]].name is "gold chastity belt" and $gold_chastity_held isnot true and ($museumAntiques.antiques.antiquegoldchastitybelt is "found" or $museumAntiques.antiques.antiquegoldchastitybelt is "talk")>> <<museumAntiqueStatus "antiquegoldchastitybelt" "notFound">> <</if>> <</if>> <<set _clothingInventoryTargets to {}>> <<if _destroyCarry>> <<set _clothingInventoryTargets.carried to $carried>> <</if>> <<if _destroyWorn>> <<set _clothingInventoryTargets.worn to $worn>> <</if>> /*Re-buy*/ <<if _args[0] isnot "genitals" and $clothingrebuy is 1 and !_noRebuy>> <<for $_wornOrCarriedKey,$_wornOrCarried range _clothingInventoryTargets>> <<if $_wornOrCarried[_args[0]].name isnot "naked" and $_wornOrCarried[_args[0]].cursed isnot 1>> <<generalRuinedRebuy _args[0] $_wornOrCarried>> <</if>> <</for>> <</if>> <<unset _noRebuy>> <<for $_wornOrCarriedKey,$_wornOrCarried range _clothingInventoryTargets>> <<set $_item to $_wornOrCarried[_args[0]]>> /*Other Pieces*/ <<set _outfitPrimaryRuined to $_item.outfitPrimary>> <<if _outfitPrimaryRuined isnot undefined>> <<for _labelRuined, _valueRuined range _outfitPrimaryRuined>> <<set $_secondaryItem to $_wornOrCarried[_labelRuined]>> <<if $_secondaryItem.outfitSecondary isnot undefined>> <<if $_secondaryItem.outfitSecondary[1] is $_item.name>> <<if _args[1] or (_labelRuined is "head" and $_wornOrCarried.head.hood) or (_labelRuined is "over_head" and $_wornOrCarried.over_head.hood)>> <<generalRuined _labelRuined false $_wornOrCarriedKey>> <<else>> <<set $_secondaryItem.outfitSecondary[1] to "broken">> <<set $_secondaryItem.one_piece to "broken">> <<set $_secondaryItem.set to _labelRuined>> /*Inherit primary's accessory_colour for repairs (i.e. overall buttons or hanfu sash)*/ <<if $_item.accessory_colour and !$_secondaryItem.accessory_colour>> <<set $_secondaryItem.accessory_colour to $_item.accessory_colour>> <<if $_item.accessory_colourCustom>> <<set $_secondaryItem.accessory_colourCustom to $_item.accessory_colourCustom>> <</if>> <</if>> <</if>> <</if>> <</if>> <</for>> <</if>> <<unset _outfitPrimaryRuined>> /*Main Outfit Piece*/ <<set _outfitSecondaryRuined to $_wornOrCarried[_args[0]].outfitSecondary>> <<if _outfitSecondaryRuined isnot undefined>> <<set $_primaryItem to $_wornOrCarried[_outfitSecondaryRuined[0]]>> <<if $_primaryItem.name is _outfitSecondaryRuined[1] and $_primaryItem.outfitPrimary isnot undefined>> <<if $_primaryItem.outfitPrimary[_args[0]] is $_item.name>> <<if _args[1]>> <<generalRuined _outfitSecondaryRuined[0] _args[1] $_wornOrCarriedKey>> <<else>> <<set $_primaryItem.outfitPrimary[_args[0]] to "broken">> <<set $_primaryItem.one_piece to "broken">> <</if>> <</if>> <</if>> <</if>> <<unset _outfitSecondaryRuined>> <<set $_wornOrCarried[_args[0]] to clone(setup.clothes[_args[0]][0])>> <</for>> <</if>> <</if>> <</widget>> /*_args[0] - slot, _args[1] - $worn or $carried*/ <<widget "generalRuinedRebuy">> <<if _args[0] and _args[1]>> <<set $_slot to _args[0]>> <<set $_item to _args[1][$_slot]>> <<set $_setupItem to setup.clothes[$_slot][clothesIndex($_slot,$_item)]>> <<set $_return to clothesReturnLocation($_item,"rebuy")>> <<if $_setupItem.shop.length isnot 0 and $_item.one_piece isnot "broken" and $_setupItem.cursed isnot 1>> /* NO SPLIT ADDED */ /*If item is half of an outfit, rebuy the primary half instead by redefining the variables defined above*/ <<if $_item.outfitSecondary isnot undefined and $_item.outfitSecondary[1] isnot "broken" and $_item.outfitSecondary[1] isnot "split">> <<set $_slot to $_item.outfitSecondary[0]>> <<set $_item to _args[1][$_slot]>> <<set $_setupItem to setup.clothes[$_slot][clothesIndex($_slot,$_item)]>> <</if>> <<set $_cost to Math.trunc(tailorClothingCost($_item, $_slot) * 1.5)>> <<set _hoodDown to $_item.hoodposition is "down">> <<if $_item.colourCustom isnot undefined>><<set _colourCustom to $_item.colourCustom>><</if>> <<if $_item.accessory_colourCustom isnot undefined>><<set _accessory_colourCustom to $_item.accessory_colourCustom>><</if>> <<if $_item.outfitSecondary isnot undefined and $_item.outfitSecondary[1] is "broken">> /* NO SPLIT ADDED */ <<elseif $money gte $_cost>> <<generalSend $_return $_slot $_setupItem.index $_item.colour $_item.accessory_colour $_item.pattern>> <<if $_item.one_piece is "split">> <<set $_selectedWardrobe to selectWardrobe($_return, "return")>> <<set $_selectedWardrobe[$_slot].last().one_piece to "split">> <<if $_item.outfitPrimary>> <<for $_rangeSlot, $_value range $_selectedWardrobe[$_slot].last().outfitPrimary>> <<set $_selectedWardrobe[$_slot].last().outfitPrimary[$_rangeSlot] to "split">> <</for>> <<elseif $_item.outfitSecondary>> <<set $_selectedWardrobe[$_slot].last().outfitSecondary[1] to "split">> <</if>> <</if>> <<money `-$_cost` "clothes">> <<run $rebuy_success.push([clone($_item.name), $_return])>> <<set $effectsmessage to 1>> <<else>> <<run $rebuy_failure.push(clone($_item.name))>> <<set $effectsmessage to 1>> <</if>> <<unset _hoodDown>> <</if>> <</if>> <</widget>> <<widget "overupperruined">> <<set _noRebuy to _args[0]>> <<generalRuined "over_upper">> <</widget>> <<widget "overlowerruined">> <<set _noRebuy to _args[0]>> <<generalRuined "over_lower">> <</widget>> <<widget "upperruined">> <<set _noRebuy to _args[0]>> <<if $worn.upper.name is "naked" and $worn.under_upper.type.includes("covered")>> <<generalRuined "under_upper">> <<else>> <<generalRuined "upper">> <</if>> <</widget>> <<widget "lowerruined">> <<set _noRebuy to _args[0]>> <<if $worn.lower.name is "naked" and $worn.under_lower.type.includes("covered")>> <<generalRuined "under_lower">> <<else>> <<generalRuined "lower">> <</if>> <</widget>> <<widget "underupperruined">> <<set _noRebuy to _args[0]>> <<if $worn.under_lower.type.includes("naked")>> <<set $_exposedType to $worn.under_lower.exposedType>> <</if>> <<generalRuined "under_upper">> <<if $_exposedType and $worn.under_lower.type.includes("naked")>> <<set $worn.under_lower.exposedType to $_exposedType>> <</if>> <</widget>> <<widget "underlowerruined">> <<set _noRebuy to _args[0]>> <<if $worn.under_lower.type.includes("naked")>> <<set $_exposedType to $worn.under_lower.exposedType>> <</if>> <<generalRuined "under_lower">> <<if _args[1] and $worn.under_lower.type.includes("naked")>> <<set $worn.under_lower.exposedType to _args[1]>> <<elseif $_exposedType and $worn.under_lower.type.includes("naked")>> <<set $worn.under_lower.exposedType to $_exposedType>> <<elseif !$_exposedType>> <<set $worn.under_lower.exposedType to "ruined">> <</if>> <</widget>> <<widget "genitalsruined">> <<set _noRebuy to _args[0]>> <<generalRuined "genitals">> <</widget>> <<widget "overheadruined">> <<set _noRebuy to _args[0]>> <<generalRuined "over_head">> <</widget>> <<widget "headruined">> <<set _noRebuy to _args[0]>> <<generalRuined "head">> <</widget>> <<widget "faceruined">> <<set _noRebuy to _args[0]>> <<generalRuined "face">> <</widget>> <<widget "neckruined">> <<set _noRebuy to _args[0]>> <<generalRuined "neck">> <</widget>> <<widget "handsruined">> <<set _noRebuy to _args[0]>> <<generalRuined "hands">> <</widget>> <<widget "handheldruined">> <<set _noRebuy to _args[0]>> <<if _args[1] is true>> /* only destroy prop */ <<if $propEquipped is 1>> <<generalRuined "handheld" true "worn">> <<set $propEquipped to 0>> <</if>> <<else>> <<generalRuined "handheld">> <</if>> <</widget>> <<widget "legsruined">> <<set _noRebuy to _args[0]>> <<generalRuined "legs">> <</widget>> <<widget "feetruined">> <<set _noRebuy to _args[0]>> <<generalRuined "feet">> <</widget>> /*The "...on" widgets put on clothing removed with the "...strip" widgets.*/ <<widget "outfiton">> <<for $_slot range setup.clothingLayer.torso_inner>> <<generalOn $_slot>> <</for>> <</widget>> <<widget "clotheson">> <<for $_slot range setup.clothingLayer.all>> <<generalOn $_slot>> <</for>> <<buttplugon>> <<outfitChecks>> <<if !_fullyNaked>> <<set $_clothesbr to true>> You fix your clothing<<if !pcAreArmsBound("right") and $worn.handheld.name isnot "naked">> and <<= $worn.handheld.name.includes("balloon") ? "retrieve" : "pick up">> your $worn.handheld.name<</if>>. <<elseif !pcAreArmsBound("right") and $worn.handheld.name isnot "naked">> <<set $_clothesbr to true>> You <<= $worn.handheld.name.includes("balloon") ? "retrieve" : "pick up">> your $worn.handheld.name. <</if>> <<if !pcAreArmsBound("both") and !_rubbedNecklace and !$passage.includes("Wardrobe") and random(1, 3) is 1>> <<if $worn.neck.name is "ivory necklace">> <<set $_clothesbr to true>><<set _rubbedNecklace to true>> You hold your necklace. <<elseif $worn.neck.name is "familiar collar" and $worn.neck.cursed is 1>> <<set $_clothesbr to true>><<set _rubbedNecklace to true>> You rub the heart on your collar. <<if $hypnosis_traits.devotion gte 5>> <<stress -1>><<lstress>> <<if $npc.includes("Gwylan")>> <<arousal 200>><<garousal>> <</if>> <</if>> <</if>> <</if>> <<if $_clothesbr>> <br><br> <</if>> <<exposure>> <<if _args[0] is "towel">> <<towelup>> <<elseif ["seaweed", "plant"].includes(_args[0])>> <<plantup _args[0]>> <</if>> <<if $exposed gte 1>> You are conscious of your <<nudity>>. <br><br> <</if>> <</widget>> <<widget "generalOn">> <<if _args[0]>> /*Checks if the current slot is part of an outfit and switches to the main piece if that is the case*/ <<if $carried[_args[0]].outfitSecondary isnot undefined and $carried[$carried[_args[0]].outfitSecondary[0]].name is $carried[_args[0]].outfitSecondary[1]>> <<set $_slot to $carried[_args[0]].outfitSecondary[0]>> <<else>> <<set $_slot to _args[0]>> <</if>> <<set _slots to []>> <<if $propEquipped is 1>> <<set _noRebuy to true>> <<generalRuined "handheld" true "worn">> <<set $propEquipped to 0>> <</if>> <<if $carried[$_slot].name isnot "naked">> <<if $worn[$_slot].cursed is 1>> <<carriedSend "wardrobe" $_slot>> <<else>> <<set _slots.pushUnique($_slot)>> <<if $worn[$_slot].name isnot "naked">> <<generalUndress "wardrobe" $_slot>> <</if>> <<set $worn[$_slot] to clone($carried[$_slot])>> <<set $carried[$_slot] to clone(setup.clothes[$_slot][0])>> <!-- set this slot to "naked" --> <<set _outfitPrimaryOn to $worn[$_slot].outfitPrimary or []>> <<for $_outfitPieceSlot, $_outfitPieceName range _outfitPrimaryOn>> <<if $carried[$_outfitPieceSlot].name is $_outfitPieceName>> <<if $worn[$_outfitPieceSlot].name isnot "naked">> <<generalUndress "wardrobe" $_outfitPieceSlot>> <</if>> <<set $worn[$_outfitPieceSlot] to clone($carried[$_outfitPieceSlot])>> <<set $carried[$_outfitPieceSlot] to clone(setup.clothes[$_outfitPieceSlot][0])>> <!-- set this slot to "naked" --> <<set _slots.pushUnique($_outfitPieceSlot)>> <</if>> <</for>> <<unset _outfitPrimaryOn>> <</if>> <</if>> <<run _slots.pushUnique($_slot)>> <!-- Ensure that this slot's state is properly reset --> /*Resets status of existing clothing*/ <<run _slots.forEach(slot => resetClothingState(slot))>> <<if _slots.includes("under_lower") and $worn.under_lower.type.includes("strap-on")>> <<run patchStraponsWearStatus()>> <</if>> <</if>> <</widget>> <<widget "overupperon">> <<generalOn "over_upper">> <</widget>> <<widget "overloweron">> <<generalOn "over_lower">> <</widget>> <<widget "upperon">> <<generalOn "upper">> <</widget>> <<widget "loweron">> <<generalOn "lower">> <</widget>> <<widget "underupperon">> <<generalOn "under_upper">> <</widget>> <<widget "underloweron">> <<generalOn "under_lower">> <</widget>> <<widget "overheadon">> <<generalOn "over_head">> <</widget>> <<widget "headon">> <<generalOn "head">> <</widget>> <<widget "faceon">> <<generalOn "face">> <</widget>> <<widget "neckon">> <<generalOn "neck">> <</widget>> <<widget "handson">> <<generalOn "hands">> <</widget>> <!-- [0] - if truthy, only run if player has a prop --> <<widget "handheldon">> <<if _args[0]>> <<if $propEquipped is 1 and $worn.handheld.type.includes("prop")>> <<generalOn "handheld">> <<set $propEquipped to 0>> <</if>> <<else>> <<generalOn "handheld">> <</if>> <</widget>> <<widget "legson">> <<generalOn "legs">> <</widget>> <<widget "feeton">> <<generalOn "feet">> <</widget>> <<widget "buttplugon">> <<if $worn.butt_plug isnot undefined and $worn.butt_plug.state is "removed">> <<set $worn.butt_plug.state to "worn">> <</if>> <</widget>> <<widget "clothesontowel">> <<clotheson "towel">> <</widget>> <<widget "clothesonplant">> <<clotheson "plant">> <</widget>> /*The "...steal" widgets destroy clothing carried by the PC and output text describing the event. If the argument is "strip", then they'll also take clothes worn by the PC.*/ <<widget "steal">> <<set _temp_steal to _args[0]>> <<for $_slot range setup.clothingLayer.body>> <<generalSteal $_slot _temp_steal>> <</for>> <</widget>> <<widget "stealclothes">> <<set _temp_steal to _args[0]>> <<for $_slot range setup.clothingLayer.torso_inner>> <<generalSteal $_slot _temp_steal>> <</for>> <</widget>> <<widget "generalSteal">> <<if _args[0]>> <<set $_wornTarget to $worn[_args[0]]>> <<set $_carriedTarget to $carried[_args[0]]>> <<if $_wornTarget.name isnot "naked" and !$_wornTarget.type.includes("heavy") and $_wornTarget.cursed isnot 1 and _args[1] is "strip">> <<if $stealtextskip isnot 1>> <<if $enemyno gte 2>>They tear<<else>><<He>> tears<</if>> your <<print $_wornTarget.name>> off your body. <br> <</if>> <<generalRuined _args[0]>> <<elseif $_carriedTarget.name isnot "naked" and !$_carriedTarget.type.includes("heavy")>> <<if $stealtextskip isnot 1>> <<if $enemyno gte 2>>They keep<<else>><<He>> keeps<</if>> your <<print $_carriedTarget.name>> as a souvenir. <br> <</if>> <<if $_carriedTarget.outfitSecondary isnot undefined>> <<if $carried[$_carriedTarget.outfitSecondary[0]].name is $_carriedTarget.outfitSecondary[1]>> <<generalSteal $_carriedTarget.outfitSecondary[0]>> <</if>> <</if>> <<set _outfitPrimarySteal to $_carriedTarget.outfitPrimary>> <<if _outfitPrimarySteal isnot undefined>> <<for _labelSteal, _valueSteal range _outfitPrimarySteal>> <<if $carried[_labelSteal].name is _valueSteal>> <<generalRuined _labelSteal>> <</if>> <</for>> <</if>> <<unset _outfitPrimarySteal>> <<generalRuined _args[0]>> <</if>> <</if>> <</widget>> <<widget "overuppersteal">> <<generalSteal "over_upper" _args[0]>> <</widget>> <<widget "overlowersteal">> <<generalSteal "over_lower" _args[0]>> <</widget>> <<widget "uppersteal">> <<generalSteal "upper" _args[0]>> <</widget>> <<widget "lowersteal">> <<generalSteal "lower" _args[0]>> <</widget>> <<widget "underuppersteal">> <<if $worn.under_lower.type.includes("naked")>> <<set $_exposedType to $worn.under_lower.exposedType>> <</if>> <<generalSteal "under_upper" _args[0]>> <<if $_exposedType and $worn.under_lower.type.includes("naked")>> <<set $worn.under_lower.exposedType to $_exposedType>> <</if>> <</widget>> <<widget "underlowersteal">> <<if $worn.under_lower.type.includes("naked")>> <<set $_exposedType to $worn.under_lower.exposedType>> <</if>> <<generalSteal "under_lower" _args[0]>> <<if _args[1] and $worn.under_lower.type.includes("naked")>> <<set $worn.under_lower.exposedType to _args[1]>> <<elseif $_exposedType and $worn.under_lower.type.includes("naked")>> <<set $worn.under_lower.exposedType to $_exposedType>> <<else>> <<set $worn.under_lower.exposedType to "stolen">> <</if>> <</widget>> <<widget "overheadsteal">> <<generalSteal "over_head" _args[0]>> <</widget>> <<widget "headsteal">> <<generalSteal "head" _args[0]>> <</widget>> <<widget "facesteal">> <<generalSteal "face" _args[0]>> <</widget>> <<widget "necksteal">> <<generalSteal "neck" _args[0]>> <</widget>> <<widget "handssteal">> <<generalSteal "hands" _args[0]>> <</widget>> <<widget "handheldsteal">> <<generalSteal "handheld" _args[0]>> <</widget>> <<widget "legssteal">> <<generalSteal "legs" _args[0]>> <</widget>> <<widget "feetsteal">> <<generalSteal "feet" _args[0]>> <</widget>> /*The "...undress" widgets remove the player character's clothing. Where they end up depends on the argument supplied. "wardrobe" sends it to the bedroom wardrobe. Other arguments store the clothing elsewhere in the world. The "...storeon" widgets can retrieve those clothes.*/ <<widget "undress">> <<set $_location to _args[0]>> <<for $_slot range setup.clothingLayer.all>> <<generalUndress $_location $_slot>> <</for>> <</widget>> <<widget "undressKeepSlot">> <<set $_location to _args[0]>> <<for $_slot range setup.clothingLayer.all.except(_args[1])>> <<generalUndress $_location $_slot>> <</for>> <</widget>> <<widget "undressSleep">> <<set $_location to _args[0]>> <<saveTempHairStyle>> <<for $_slot range setup.clothes_all_slots>> <<if $worn[$_slot].type.includes("eerie")>> <<set _makeTempClothing to 1>> <<storeItem $_location $_slot>> <<continue>> <</if>> <<generalUndress $_location $_slot>> <</for>> <<if $worn.under_lower.type.includes("naked")>> <<set $worn.under_lower.exposedType to "notWorn">> <</if>> <</widget>> <<widget "undressOverClothes">> <<set $_location to _args[0]>> <<for $_slot range setup.clothingLayer.over>> <<generalUndress $_location $_slot>> <</for>> <</widget>> <<widget "undressclothes">> <<set $_location to _args[0]>> <<for $_slot range setup.clothingLayer.torso>> <<generalUndress $_location $_slot>> <</for>> <</widget>> <<widget "undressmid">> <<set $_location to _args[0]>> <<generalUndress $_location "upper">> <<generalUndress $_location "lower">> <</widget>> /*The "generalWear" widget works in the same way as the "...wear" widgets, however, the argument are as follows; Location, slot*/ <<widget "generalUndress">> <<if _args[0] and _args[1]>> <<if _storeItemSkip is undefined>> <<set _storeItemSkip to {"over_upper":false, "over_lower":false, "upper":false, "lower":false, "under_upper":false, "under_lower":false, "over_head":false, "head":false, "face":false, "neck":false, "hands":false, "handheld":false, "legs":false, "feet":false, "butt_plug":true}>> <</if>> <<unset _undressSlot>> /*Checks if the current slot is part of an outfit and switches to the main piece if that is the case*/ <<if $worn[_args[1]].outfitSecondary isnot undefined>> <<if $worn[$worn[_args[1]].outfitSecondary[0]].name is $worn[_args[1]].outfitSecondary[1]>> <<set _undressSlot to $worn[_args[1]].outfitSecondary[0]>> <</if>> <</if>> <<if _undressSlot is undefined>> <<set _undressSlot to _args[1]>> <</if>> <<set $_cursedPrevent to false>> <<set _outfitPrimaryUndress to $worn[_undressSlot].outfitPrimary>> <<if _outfitPrimaryUndress isnot undefined>> <<for _labelUndress, _valueUndress range _outfitPrimaryUndress>> <<if $worn[_labelUndress].cursed is 1 and $worn[_labelUndress].name is _valueUndress>> <<set $_cursedPrevent to true>> <</if>> <</for>> <</if>> <<if $_cursedPrevent isnot true and _strip_restrict isnot 1 and $worn[_undressSlot].cursed isnot 1>> <<set _slots to []>> <<if _args[0] is "wardrobe" or Object.keys($wardrobes).includes(_args[0])>> <<set $_selectedWardrobe to selectWardrobe()>> <<if _outfitPrimaryUndress isnot undefined>> <<for _labelUndress, _valueUndress range _outfitPrimaryUndress>> <<if _valueUndress isnot "broken" and _valueUndress isnot "split" and $worn[_labelUndress].name is _valueUndress>> <<if !setup.wardrobeSkip.includes($worn[_labelUndress].name)>> <<set $_selectedWardrobe[_labelUndress].push(clone($worn[_labelUndress]))>> <<run _slots.push(_labelUndress)>> <</if>> <<set $worn[_labelUndress] to clone(setup.clothes[_labelUndress][0])>> <</if>> <</for>> <</if>> <<if !setup.wardrobeSkip.includes($worn[_undressSlot].name)>> <<set $_selectedWardrobe[_undressSlot].push(clone($worn[_undressSlot]))>> <</if>> <<set $worn[_undressSlot] to clone(setup.clothes[_undressSlot][0])>> <<run _slots.push(_undressSlot)>> <<elseif _args[0] and !_storeItemSkip[_undressSlot]>> <<if $worn[_undressSlot].name isnot "naked">> <<if _outfitPrimaryUndress isnot undefined>> <<for _labelUndress, _valueUndress range _outfitPrimaryUndress>> <<if $worn[_labelUndress].outfitSecondary isnot undefined>> <<if $worn[_labelUndress].outfitSecondary[1] is $worn[_undressSlot].name>> <<storeItem _args[0] _labelUndress>> <<run _slots.push(_labelUndress)>> <<set _storeItemSkip[_labelUndress] to true>> <</if>> <</if>> <</for>> <</if>> <<storeItem _args[0] _undressSlot>> <<run _slots.push(_undressSlot)>> <<elseif $outfit[$wear_outfit] and $outfit[$wear_outfit][_undressSlot] isnot "naked">> <<set _makeTempClothing to 1>> <<storeItem _args[0] _undressSlot>> <</if>> <</if>> <<if _slots.includes("upper")>> <<set $upperwet to 0>><<set $upperwetstage to 0>> <</if>> <<if _slots.includes("lower")>> <<set $lowerwet to 0>><<set $lowerwetstage to 0>> <</if>> <<if _slots.includes("under_upper")>> <<set $underupperwet to 0>><<set $underupperwetstage to 0>> <</if>> <<if _slots.includes("under_lower")>> <<set $underlowerwet to 0>><<set $underlowerwetstage to 0>> <</if>> <</if>> <<unset _outfitPrimaryUndress>> <</if>> <<unset _strip_restrict>> <</widget>> <<widget "storeItem">> <<set $_slot to _args[1]>> <<set $_item to $store[$_slot].find(item => item.location is _args[0])>> <<if $_item>> <<if $_item.outfitPrimary isnot undefined>> <<for _labelStore, _unused range $_item.outfitPrimary>> <<set $_itemPair to $store[_labelStore].find(item => item.location is _args[0])>> <<if $_itemPair and $_itemPair.outfitSecondary isnot undefined and $_itemPair.outfitSecondary[1] is $_item.name>> <<if !setup.wardrobeSkip.includes($_itemPair.name)>> <<set $wardrobe[_labelStore].push(clone($_itemPair))>> <</if>> <<set $store[_labelStore].delete($_itemPair)>> <</if>> <</for>> <</if>> <<if !setup.wardrobeSkip.includes($_item.name) and $_item.temp is undefined>> <<set $wardrobe[$_slot].push(clone($_item))>> <</if>> <<set $store[$_slot].delete($_item)>> <</if>> <<if _makeTempClothing is 1>> <<set _temp_clothing to clone($worn[$_slot].name is "naked" ? {name: "naked"} : clone($worn[$_slot]))>> <<set _temp_clothing.temp to 1>> <<set _temp_clothing.location to _args[0]>> <<set $store[$_slot].push(clone(_temp_clothing))>> <<unset _makeTempClothing>> <<else>> <<set $store[$_slot].push(clone($worn[$_slot]))>> <<set $store[$_slot].last().location to _args[0]>> <<set $worn[$_slot] to clone(setup.clothes[$_slot][0])>> <</if>> <</widget>> <<widget "overupperundress">> <<generalUndress _args[0] "over_upper">> <</widget>> <<widget "overlowerundress">> <<generalUndress _args[0] "over_lower">> <</widget>> <<widget "upperundress">> <<generalUndress _args[0] "upper">> <</widget>> <<widget "lowerundress">> <<generalUndress _args[0] "lower">> <</widget>> <<widget "underupperundress">> <<generalUndress _args[0] "under_upper">> <</widget>> <<widget "underlowerundress">> <<generalUndress _args[0] "under_lower">> <</widget>> <<widget "genitalsundress">> <<generalUndress _args[0] "genitals">> <</widget>> <<widget "overheadundress">> <<generalUndress _args[0] "over_head">> <</widget>> <<widget "headundress">> <<generalUndress _args[0] "head">> <</widget>> <<widget "faceundress">> <<generalUndress _args[0] "face">> <</widget>> <<widget "neckundress">> <<generalUndress _args[0] "neck">> <</widget>> <<widget "handsundress">> <<generalUndress _args[0] "hands">> <</widget>> <<widget "handheldundress">> <<generalUndress _args[0] "handheld">> <</widget>> <<widget "legsundress">> <<generalUndress _args[0] "legs">> <</widget>> <<widget "feetundress">> <<generalUndress _args[0] "feet">> <</widget>> /* Returns stored items that are a part of an outfit (wear_outfit) to the wardrobe so that they can be used by another outfit. */ /* args[0] specifies the location identifier */ <<widget "storereturn">> <<if !isNaN($wear_outfit) and _args[0] isnot undefined>> <<for $_slot range setup.clothingLayer.all>> <<set $_name to $outfit[$wear_outfit][$_slot]>> <<set $_item to $store[$_slot].find(item => item.location is _args[0])>> <<generalStoreon _args[0] $_slot "check">> <<if _store_check and $_item isnot undefined and $_name isnot "naked" and $_name isnot undefined>> <<if $store[$_slot].length gt 0 and $_name is $_item.name>> <<if !setup.wardrobeSkip.includes($_item.name)>> <<set $wardrobe[$_slot].push(clone($_item))>> <</if>> <<set $store[$_slot].deleteAt($store[$_slot].indexOf($_item))>> <</if>> <</if>> <</for>> <</if>> <</widget>> /* Unequips items, then saves a copy of stored items to a temporary variable */ /* args[0] specifies the location identifier */ <<widget "storesave">> <<if _args[0] isnot undefined>> <<undress _args[0]>> <<set $outfitTmp[_args[0]] to {}>> <<for $_slot range setup.clothingLayer.all>> <<if $store[$_slot].length gt 0>> <<set $_copy to $store[$_slot].find(item => item.location is _args[0])>> <<if $_copy isnot undefined and $_copy.name isnot "naked" and $_copy.name isnot undefined>> <<set $outfitTmp[_args[0]][$_slot] to clone($_copy)>> <</if>> <</if>> <</for>> <</if>> <</widget>> /* Loads a list of stored items previously saved by 'storesave' and tries to equip it on the player */ /* If the items have been removed from storage, it checks if the player is currently wearing them and will not unequip them if so */ /* args[0] specifies the location identifier */ <<widget "storeload">> <<if $propEquipped is 1>><<handheldon>><</if>> <<if _args[0] isnot undefined and $outfitTmp[_args[0]] isnot undefined and Object.keys($outfitTmp[_args[0]]).length gt 0>> <<if _args[1] isnot undefined>> <<set $_item to $outfitTmp[_args[0]][_args[1]]>> <<storeloaditem $_item _args[1]>> <<run delete V.outfitTmp[_args[0][_args[1]]]>> <<if Object.keys(V.outfitTmp[_args[0]]).length is 0>> <<run delete V.outfitTmp[_args[0]]>> <</if>> <<else>> /* Check if any worn items are cursed */ <<set _cursedSlots to Object.keys($worn).filter(slot => $worn[slot].cursed)>> /* Check if any of the outfit items can't be worn, run multiple times to check for nested outfits, or when the curses status is found later */ <<set _runtime to 2>> <<for _i to 0; _i lte _runtime; _i++>> <<run Object.entries($outfitTmp[_args[0]]).forEach(([slot, item]) => { let cursedLength = T.cursedSlots.length; let cursed = T.cursedSlots.includes(slot); if (item.outfitSecondary && !["broken", "split"].includes(item.outfitSecondary[1])) { if (T.cursedSlots.includes(item.outfitSecondary[0])) { T.cursedSlots.pushUnique(slot); cursed = true; } if (cursed) T.cursedSlots.pushUnique(item.outfitSecondary[0]); } if (item.outfitPrimary) { Object.entries(item.outfitPrimary).forEach(([slot2, itemName]) => { if (!["broken", "split"].includes(itemName)) { if (T.cursedSlots.includes(slot2)) { T.cursedSlots.pushUnique(slot); cursed = true; } if (cursed) T.cursedSlots.pushUnique(slot2); } }); } /* Found a new item effected by a cursed slot, run again */ if (cursedLength < T.cursedSlots.length) T.runtime++; })>> <</for>> <<for $_slot range setup.clothingLayer.all>> <<set $_item to $outfitTmp[_args[0]][$_slot]>> <<if $_item is undefined or $worn[$_slot].name isnot $_item.name>> <<generalStrip $_slot>> <<returnCarried>> <</if>> <<if $_item isnot undefined>> <<set $_storedIndex to $store[$_slot].findIndex(item => item.name is $_item.name and item.location is _args[0])>> <<if $_storedIndex isnot -1>> <<if ($worn[$_slot].name is "naked" and !_cursedSlots.includes($_slot)) or (!_cursedSlots.includes($_slot) and _args[0] is "lockers")>> <<set $worn[$_slot] to clone($store[$_slot][$_storedIndex])>> <<set $worn[$_slot].location to 0>> <<set $store[$_slot].deleteAt($_storedIndex)>> /* dry the clothes */ <<set V[$_slot.replace(/_/g, "") + "wet"] to 0>> <<set V[$_slot.replace(/_/g, "") + "wetstage"] to 0>> <<else>> /* Send the item to the wardrobe, as the item was not unequipped by generalStrip */ <<if ["asylum", "prison"].includes($location)>> <<set $_selectedWardrobe to $wardrobes[$location]>> <<elseif $settings.multipleWardrobes is "all" and $worn[$_slot].lastTaken isnot undefined>> <<set $_selectedWardrobe to $wardrobes[$worn[$_slot].lastTaken]>> <</if>> <<if $_selectedWardrobe isnot "wardrobe" and $wardrobes[$_selectedWardrobe]>> <<set $_selectedWardrobe to $wardrobes[$_selectedWardrobe]>> <<else>> <<set $_wardrobe to $wardrobe>> <</if>> <<run $_wardrobe[$_slot].push(clone($store[$_slot][$_storedIndex]))>> <<run $store[$_slot].deleteAt($_storedIndex)>> <</if>> <</if>> <</if>> <</for>> <<run delete V.outfitTmp[_args[0]]>> <</if>> <<elseif _args[0] isnot undefined and clothingInStorage(_args[0]).length gt 0>> <<storeon _args[0] "noreplace">> <</if>> <</widget>> <<widget "storeloaditem">> <<set $_item to _args[0]>> <<set $_slot to _args[1]>> <<if $_item isnot undefined>> <<set $_stored to $store[$_slot].find(item => item.name is $_item.name)>> <<if $_stored>> <<set $worn[$_slot] to clone($_item)>> <<set $worn[$_slot].location to 0>> <<set $store[$_slot].deleteAt($store[$_slot].indexOf($_stored))>> /* dry the clothes */ <<set V[$_slot.replace(/_/g, "") + "wet"] to 0>> <<set V[$_slot.replace(/_/g, "") + "wetstage"] to 0>> <</if>> <</if>> <</widget>> /* The "storeon..." widgets retrieve the clothing stored with the "...undress" widgets, that weren't put in a wardrobe. */ /* Requires the same argument that was used to store the clothing in order to correctly identify. Optionally accepts a second argument. */ /* Inputting "delete" will destroy the stored item, rather than wear it. */ /* Inputting "check" will set _store_check to 1, for when you want to check whether or not an item exists in a given location. */ /* Inputting "return" will return the item to the wardrobe */ <<widget "storeon">> <<set _equipSkip to {"over_upper":false, "over_lower":false, "upper":false, "lower":false, "under_upper":false, "under_lower":false, "over_head":false, "head":false, "face":false, "neck":false, "hands":false, "handheld":false, "legs":false, "feet":false}>> <<set _store_temp to _args[0]>> <<set _store_option to _args[1] or 0>> <<for $_slot range setup.clothingLayer.all>> <<generalStoreon _store_temp $_slot _store_option>> <</for>> <</widget>> <<widget "generalStoreon">> <<if _args[0] and _args[1]>> <<set $_location to _args[0]>> <<set $_slot to _args[1]>> <<if $store[$_slot] is undefined>>/* Slot not found */<<exit>><</if>> <<set $_item to $store[$_slot].find(item => item.location is $_location)>> <<if $_item isnot undefined>> <<set $_index to $store[$_slot].indexOf($_item)>> <<if $worn[$_slot].cursed is 1>> <<elseif _equipSkip isnot undefined and _equipSkip[$_slot] is true>> <<if $_item.temp is undefined>> <<set $_selectedWardrobe to $wardrobe>> <<if $settings.multipleWardrobes>> <<if ["asylum", "prison"].includes($location)>> <<set $_selectedWardrobe to $wardrobes[$location]>> <<elseif $settings.multipleWardrobes is "all" and $worn[$_slot].lastTaken isnot undefined>> <<set $_selectedWardrobe to $wardrobes[$worn[$_slot].lastTaken]>> <</if>> <</if>> <<set $_selectedWardrobe[$_slot].push(clone($_item))>> <</if>> <<set $store[$_slot].deleteAt($_index)>> <<else>> <<if _args[2] is "wardrobe" or $wardrobes[_args[2]] isnot undefined>> <<if !setup.wardrobeSkip.includes($_item.name) and $_item.temp is undefined>> <<set $_location to clothesReturnLocation($_item)>> <<set $_selectedWardrobe to ($_location is "wardrobe" ? $wardrobe : $wardrobes[$_location])>> <<set $_selectedWardrobe[$_slot].push(clone($_item))>> <</if>> <<set $store[$_slot].deleteAt($_index)>> <<elseif _args[2] is "delete">> <<set $store[$_slot].deleteAt($_index)>> <<elseif _args[2] is "return">> <<if !setup.wardrobeSkip.includes($_item.name) and $_item.temp is undefined>> <<set $wardrobe[$_slot].push(clone($_item))>> <</if>> <<set $store[$_slot].deleteAt($_index)>> <<run delete V.outfitTmp[_args[0]]>> <<elseif _args[2] is "check">> <<set _store_check to 1>> <<else>> <<set $_location to clothesReturnLocation($worn[$_slot])>> <<generalUndress $_location $_slot>> <<if $_item.name isnot "naked">> <<if $_item.temp is undefined>> <<set $worn[$_slot] to clone($_item)>> <<set $worn[$_slot].location to 0>> <<else>> <<searchWardrobeForItem $_slot $_index>> <<generalWearFromWardrobe $_slot _wardrobeId>> <</if>> <</if>> <<set $store[$_slot].deleteAt($_index)>> <</if>> <</if>> /* todo: find a way to save naked into outfits */ <</if>> <</if>> <</widget>> <<widget "storeonoverupper">> <<generalStoreon _args[0] "over_upper" _args[1]>> <</widget>> <<widget "storeonoverlower">> <<generalStoreon _args[0] "over_lower" _args[1]>> <</widget>> <<widget "storeonupper">> <<generalStoreon _args[0] "upper" _args[1]>> <</widget>> <<widget "storeonlower">> <<generalStoreon _args[0] "lower" _args[1]>> <</widget>> <<widget "storeonunderupper">> <<generalStoreon _args[0] "under_upper" _args[1]>> <</widget>> <<widget "storeonunderlower">> <<generalStoreon _args[0] "under_lower" _args[1]>> <</widget>> <<widget "storeonoverhead">> <<generalStoreon _args[0] "over_head" _args[1]>> <</widget>> <<widget "storeonhead">> <<generalStoreon _args[0] "head" _args[1]>> <</widget>> <<widget "storeonface">> <<generalStoreon _args[0] "face" _args[1]>> <</widget>> <<widget "storeonneck">> <<generalStoreon _args[0] "neck" _args[1]>> <</widget>> <<widget "storeonhands">> <<generalStoreon _args[0] "hands" _args[1]>> <</widget>> <<widget "storeonhandheld">> <<generalStoreon _args[0] "handheld" _args[1]>> <</widget>> <<widget "storeonlegs">> <<generalStoreon _args[0] "legs" _args[1]>> <</widget>> <<widget "storeonfeet">> <<generalStoreon _args[0] "feet" _args[1]>> <</widget>> <<widget "dry">> <<set $upperwet to 0>><<set $lowerwet to 0>><<set $underlowerwet to 0>><<set $underupperwet to 0>> <</widget>> <<widget "dry_full">> <<dry>> <<set $upperwetstage to 0>><<set $lowerwetstage to 0>><<set $underupperwetstage to 0>><<set $underlowerwetstage to 0>> <</widget>> /*The "searchWardrobeForItem" widget searches the wardrobe for an item that matches a given item stored somewhere else, the argument are as follows; slot, item index.*/ <<widget "searchWardrobeForItem">> <<set _slot to _args[0]>> <<set _wearId to _args[1]>> <<unset _wardrobeId>><<unset _item>><<unset _brokenId>><<unset _secondChoice>> <<set $_selectedWardrobe to selectWardrobe()>> <<if _wearId gte 0>> <<set _item to $store[_slot][_wearId]>> <</if>> <<for _j to 0; _j lt $_selectedWardrobe[_slot].length; _j++>> <<set $_selectedItem to $_selectedWardrobe[_slot][_j]>> <<if _item.name is $_selectedItem.name and _item.colour is $_selectedItem.colour and _item.accessory_colour is $_selectedItem.accessory_colour>> <<set _matched to (_item.colour isnot "custom") + (_item.accessory is 0 or _item.accessory_colour isnot "custom")>> <<if _item.colourCustom isnot undefined and _item.colourCustom is $_selectedItem.colourCustom>> <<set _matched++>> <</if>> <<if _item.accessory_colourCustom isnot undefined and _item.accessory_colourCustom is $_selectedItem.accessory_colourCustom>> <<set _matched++>> <</if>> <<if _matched is 2>> <<if $_selectedItem.outfitPrimary isnot undefined>> <<set _matched to 0>> <<for _labelWW, _valueWW range $_selectedItem.outfitPrimary>> <<if _item.outfitPrimary[_labelWW] is _valueWW>> <<set _matched++>> <</if>> <</for>> <<if _matched is Object.keys($_selectedItem.outfitPrimary).length>> <<set _wardrobeId to _j>> <<break>> <<else>> <<set _secondChoice to _j>> <</if>> <<else>> <<set _wardrobeId to _j>> <<break>> <</if>> <</if>> <</if>> <</for>> <<if _wardrobeId is undefined and _secondChoice isnot undefined>> <<set _wardrobeId to clone(_secondChoice)>> <</if>> <</widget>> /*The "generalWearFromWardrobe" widget allows the player to equip a specific item from the wardrobe, the argument are as follows; slot, item index.*/ <<widget "generalWearFromWardrobe">> <<set _slot to _args[0]>> <<set _wearId to _args[1]>> <<set _slimePrevent to setup.clothingLayer.torso_inner>> <<set $_selectedWardrobe to selectWardrobe()>> <<unset _cursedPrevent>><<unset _outfitPieceIds>><<unset _item>> <<set _wornOutfitPrimary to $worn[_slot].outfitPrimary>> <<if $worn[_slot].cursed is 1>> You try to remove the <<print $worn[_slot].name>>, but fail. <<cursedtext $worn[_slot].name>> <br> <<set _cursedPrevent to true>> <</if>> <<if _wornOutfitPrimary isnot undefined>> <<for _labelWW, _valueWW range _wornOutfitPrimary>> <<if $worn[_labelWW].cursed is 1 and _cursedPrevent isnot true>> <<capture _labelWW>> <<cursedtext $worn[_labelWW].name>> <</capture>> <<set _cursedPrevent to true>> <</if>> <</for>> <</if>> <<if _cursedPrevent isnot true>> <<if _wearId gte 0>> <<set _item to $_selectedWardrobe[_slot][_wearId]>> <</if>> /*Prevent equip when preggy*/ <<if _wearId gte 0 and playerBellySize() gte 12 and _item.type.includes("constricting")>> <<if _item.type.includes("chest_bind")>> <span class="red">Your pregnant body is too sensitive to wear your _item.name.</span> <<else>> <span class="red">Your <<bellyDescription "pc">> is too large to wear your _item.name.</span> <</if>> <br> <<continue>> <</if>> /*Prevent equip when the ear slime doesn't allow it*/ <<if _wearId gte 0 and _slimePrevent.includes(_slot) and $earSlime.corruption gte 10>> <<if _item.reveal lt earSlimeCorruptionClothes() and (["prison", "asylum"].includes($location) or !_allowSchoolClothes) and !_item.type.includesAny("event")>> <span class="red">You were unable to equip your _item.name as the slime in your ear did not permit it.</span> <br> <<continue>> <</if>> <</if>> /*Finds any outfit pieces and records the Ids*/ <<if _item isnot undefined>> <<set _outfitPrimary to _item.outfitPrimary>> <<if _outfitPrimary isnot undefined>> <<set _outfitPieceIds to {}>> <<for _labelWW, _valueWW range _outfitPrimary>> <<if _valueWW isnot "broken" and _valueWW isnot "split">> <<for _j to 0; _j lt $_selectedWardrobe[_labelWW].length; _j++>> <<if $_selectedWardrobe[_labelWW][_j].name is _valueWW and _item.colour is $_selectedWardrobe[_labelWW][_j].colour and _item.accessory_colour is $_selectedWardrobe[_labelWW][_j].accessory_colour and _item.pattern is $_selectedWardrobe[_labelWW][_j].pattern>> <<if $_selectedWardrobe[_labelWW][_j].outfitSecondary[1] isnot _item.name>> <<continue>> <</if>> <<set _matched to 0>> <<if $_selectedWardrobe[_labelWW][_j].colour isnot "custom">> <<set _matched++>> <<elseif _item.colourCustom isnot undefined and $_selectedWardrobe[_labelWW][_j].colourCustom isnot undefined>> <<if _item.colourCustom is $_selectedWardrobe[_labelWW][_j].colourCustom>> <<set _matched++>> <</if>> <</if>> <<if $_selectedWardrobe[_labelWW][_j].accessory is 0 or $_selectedWardrobe[_labelWW][_j].accessory_colour isnot "custom">> <<set _matched++>> <<elseif _item.accessory_colourCustom isnot undefined and $_selectedWardrobe[_labelWW][_j].accessory_colourCustom isnot undefined>> <<if _item.accessory_colourCustom is $_selectedWardrobe[_labelWW][_j].accessory_colourCustom>> <<set _matched++>> <</if>> <</if>> <<if _matched is 2>> <<set _outfitPieceIds[clone(_labelWW)] to clone(_j)>> <<if _equipSkip isnot undefined>> <<set _equipSkip[_labelWW] to true>> <</if>> <<break>> <</if>> <</if>> <</for>> <</if>> <</for>> <<if Object.keys(_outfitPieceIds).length is 0>> <<unset _outfitPieceIds>> <</if>> <</if>> <</if>> <<unset _outfitPrimary>> <<if _wearId gte 0>> /*Equip the relating items*/ <<generalUndress $wardrobe_location _slot>> <<if _outfitPieceIds isnot undefined>> <<for _labelWW, _valueWW range _outfitPieceIds>> <<generalUndress $wardrobe_location `clone(_labelWW)`>> <<set $worn[clone(_labelWW)] to clone($_selectedWardrobe[clone(_labelWW)][clone(_valueWW)])>> <<set $worn[clone(_labelWW)].lastTaken to "wardrobe">> <<set $_selectedWardrobe[_labelWW].deleteAt(_valueWW)>> <</for>> <</if>> <<set $worn[_slot] to clone($_selectedWardrobe[_slot][_wearId])>> <<set $worn[_slot].lastTaken to "wardrobe">> <<set $_selectedWardrobe[_slot].deleteAt(_wearId)>> <</if>> <</if>> <</widget>> <<widget "outfitChecksExposed">> <<set _underNakedExposed to ($worn.under_lower.exposed isnot 0 and $worn.under_upper.exposed isnot 0)>> <<set _middleNakedExposed to ($worn.lower.exposed isnot 0 and $worn.upper.exposed isnot 0)>> <<set _overNakedExposed to ($worn.over_lower.exposed isnot 0 and $worn.over_upper.exposed isnot 0)>> <<set _toplessExposed to ($worn.over_upper.exposed isnot 0 and $worn.upper.exposed isnot 0 and $worn.under_upper.exposed isnot 0)>> <<set _bottomlessExposed to ($worn.over_lower.exposed isnot 0 and $worn.lower.exposed isnot 0 and $worn.under_lower.exposed isnot 0)>> <<set _fullyNakedExposed to (_toplessExposed and _bottomlessExposed)>> <</widget>> <<widget "otherOutfitChecks">> <<set _otherOutfits to { over_head:false, head:false, neck:false, face:false, hands:false, handheld:false, legs:false, feet:false, genitals:false, }>> <<for $_label, $_value range _otherOutfits>> <<if $worn[$_label].outfitSecondary is undefined>> <<elseif $worn[$_label].outfitSecondary[1] is "broken" or $worn[$_label].outfitSecondary[1] is "split">> <<else>> <<set _otherOutfits[$_label] to true>> <</if>> <</for>> <</widget>> <<widget "noClothingCheck">> <<set _nude to Object.keys($worn).every(slot => ["butt_plug", "genitals"].includes(slot) or $worn[slot].name is "naked" or (slot is "neck" and $worn.neck.cursed))>> <</widget>> <<widget "updateWornClothingLocation">> <<if $wardrobes[_args[0]]>> <<for $_label, $_value range $worn>> <<if typeof $_value is "object">> <<set $_value.lastTaken to _args[0]>> <<else>> <!-- Expanded error handling here to help with understanding an intermittent issue. If a bug is squashed relating to an undefined $worn entry, this error handler may become redundant. --> <<error { message : `Expected an object in $worn[${$_label}].`, source : `Location: ${Utils.GetStack()}.\nLabel: ${$_label}. Value: ${$_value}. Wardrobe: ${_args[0]}.` }>> <</if>> <</for>> <</if>> <</widget>> <<widget "damageClothing">> <<if _args[0] is "face" and _args[1]>> <<set $worn.face.integrity -= _args[1]>> <<if $worn.face.integrity lt 0>> <<set $_mask to $worn.face.name>> <<faceruined>><<set $worn.face.type.push("broken")>> <span class="red">Your $_mask is torn to shreds!</span> <</if>> <</if>> <</widget>> <<widget "damageFaceCover">> <<if _args[1] and _args[1] is "struggle" and $worn.face.cursed isnot 1>> <<set $worn.face.integrity -= _args[0]>> <<elseif _args[0] and $worn.face.cursed isnot 1>> <<set $worn.face.integrity -= _args[0]>> <<if $worn.face.integrity lte 0>> <span class="red">Your $worn.face.name is torn to shreds!</span> <<faceruined>><<set $worn.face.type.push("broken")>> <</if>> <</if>> <</widget>> <<widget "getDressedList">> <<set _slots to []>> <<for _slot range setup.clothes_all_slots>> <<if $carried[_slot].name isnot "naked">> <<if $carried[_slot].outfitSecondary>> <<if $carried[_slot].outfitSecondary[0].name is $carried[_slot].outfitSecondary[1]>> <<set _slots.pushUnique(_slot)>> <</if>> <<else>> <<set _slots.pushUnique(_slot)>> <</if>> <</if>> <</for>> <<for _item range _slots>> <<capture _item, _slots>> <<link [[`Put on your ${$carried[_item].name}`|$passage]]>> <<if $worn.upper.outfitSecondary and $worn.upper.outfitSecondary[0] is $worn.upper.outfitSecondary[1] and _item is "upper" or _item is "lower">> <<upperruined>> <</if>> <<run _slots.delete(_item)>> <<generalOn _item $carried[_item].index>> <</link>> <</capture>> <br> <</for>> <br> <<if _slots.length gt 1>> <<link [[Get fully dressed|$passage]]>><<clotheson>><</link>> <br> <</if>> <</widget>> <<widget "peppersprays">> <<if $options.pepperSprayDisplay isnot "none">> <div tooltip="<span class='def'>Pepper sprays: $spray / $spraymax</span>" id="pepper-sprays" class="pepper-sprays"> <!-- Compact style (dots) --> <<if $options.pepperSprayDisplay is "compact" or $spraymax gt 7>> <div class="pepper-sprays-dots"> <<for _i to 1; _i lte $spraymax; _i++>> <<if $spray gte _i>> <div class="pepper-spray-dot-full"></div> <<else>> <div class="pepper-spray-dot-empty"></div> <</if>> <</for>> </div> <!-- "Sprays" style (up to 7 sprays) --> <<else>> <<for _i to 1; _i lte $spraymax; _i++>> <<if $spray gte _i>> <img draggable="false" src="img/ui/pepperspray.png"> <<else>> <img draggable="false" src="img/ui/emptyspray.png"> <</if>> <</for>> <</if>> </div> <</if>> <</widget>> <<widget "condomsSidebar">> <<if $settings.condomLevel gte 1 and $options.condomsDisplay isnot "none" and $condoms isnot null and $condoms isnot undefined>> <div tooltip="<span class='meek'>Total condoms: $condoms</span>" id="condoms-sidebar" class="condoms-sidebar"> <img draggable="false" src="img/ui/condom.png"> </div> <div id="condoms-sidebar-text" class="condoms-sidebar-text"> $condoms x </div> <</if>> <</widget>><<widget "actionsanustopenis">> <<if $combattype is "train">> <<set _end to $enemyno-1>> <<else>> <<set _end to 0>> <</if>> <<for _j = $enemyno-1; _j gte _end; _j-->> <<if $NPCList[_j].penis is 0>> <<if $consensual is 1 and !hasSexStat("promiscuity", 5) and $enemytype is "man" or $consensual is 1 and !hasSexStat("deviancy", 5) and $enemytype isnot "man">> <!-- Do Nothing --> <<elseif $NPCList[_j].stance isnot "topface">> <<if $anusactiondefault is "anustopenis">> | <label><span class="sub">Straddle <<his>> penis</span> <<radiobutton "$anusaction" "anustopenis" checked>><<analdifficulty>> <<combatpromiscuous5>></label> <<else>> | <label><span class="sub">Straddle <<his>> penis</span> <<radiobutton "$anusaction" "anustopenis">><<analdifficulty>> <<combatpromiscuous5>></label> <</if>> <<break>> <</if>> <</if>> <</for>> <</widget>> <<widget "actionsanustopenisnew">> <<if $NPCList[$anustarget].penis is 0>> <<if $consensual is 1 and (!hasSexStat("promiscuity", 5) and $enemytype is "man" or !hasSexStat("deviancy", 5) and $enemytype isnot "man") and !$promiscuityIgnore>> <!-- Do Nothing --> <<elseif $NPCList[$anustarget].stance isnot "topface" and ($enemytype isnot "man" or ($NPCList[$anustarget].location.genitals is 0 and $NPCList[$anustarget].location.head isnot "genitals"))>> <<set _penis to (npcHasStrapon($anustarget) ? "strap-on" : "penis")>> <<if $NPCList[$anustarget].chastity.penis.includes("chastity")>> <<set _anusaction["Straddle " + $NPCList[$anustarget].pronouns.his + " " + $NPCList[$anustarget].chastity.penis] to "anustopenis">> <<else>> <<set _anusaction["Straddle " + $NPCList[$anustarget].pronouns.his + " " + _penis] to "anustopenis">> <</if>> <</if>> <</if>> <</widget>> <<widget "actionsanuspenisfuck">> <<if $combattype is "train">> <<set _end to $enemyno-1>> <<else>> <<set _end to 0>> <</if>> <<if playerChastity("anus")>> <!-- Do Nothing --> <<elseif $worn.under_lower.anus_exposed is 1 and $worn.lower.anus_exposed is 1>> <<for _j = $enemyno-1; _j gte _end; _j-->> <<if $NPCList[_j].penis is "anusentrance" or $NPCList[_j].penis is "anusimminent">> <<if $consensual is 1 and !hasSexStat("promiscuity", 5) and $enemytype is "man" or $consensual is 1 and !hasSexStat("deviancy", 5) and $enemytype isnot "man">> <!-- Do Nothing --> <<else>> <<if $anusactiondefault is "anuspenisfuck">> | <label><span class="sub">Envelop <<his>> penis</span> <<radiobutton "$anusaction" "anuspenisfuck" checked>> <<combatpromiscuous5>><<analvirginitywarning>><<NPCvirginitywarning $NPCList[_j].fullDescription "penile">></label> <<else>> | <label><span class="sub">Envelop <<his>> penis</span> <<radiobutton "$anusaction" "anuspenisfuck">> <<combatpromiscuous5>><<analvirginitywarning>><<NPCvirginitywarning $NPCList[_j].fullDescription "penile">></label> <</if>> <<break>> <</if>> <</if>> <</for>> <</if>> <</widget>> <<widget "actionsanuspenisfucknew">> <<if playerChastity("anus")>> <!-- Do Nothing --> <<elseif $worn.under_lower.anus_exposed is 1 and $worn.lower.anus_exposed is 1>> <<if $NPCList[$anustarget].penis is "anusentrance" or $NPCList[$anustarget].penis is "anusimminent">> <<if $consensual is 1 and ((!hasSexStat("promiscuity", 5) and $enemytype is "man" or !hasSexStat("deviancy", 5) and $enemytype isnot "man") and !$promiscuityIgnore) or $NPCList[$anustarget].chastity.penis.includes("chastity")>> <!-- Do Nothing --> <<else>> <<set _penis to (npcHasStrapon($anustarget) ? "strap-on" : "penis")>> <<set _anusaction["Envelop " + $NPCList[$anustarget].pronouns.his + " " + _penis] to "anuspenisfuck">> <</if>> <</if>> <</if>> <</widget>> <<widget "actionsanuspenisdoublefuck">> <<if playerChastity("anus")>> <!-- Do Nothing --> <<elseif $worn.under_lower.anus_exposed is 1 and $worn.lower.anus_exposed is 1>> <<if $consensual is 1 and ((!hasSexStat("promiscuity", 5) and $enemytype is "man" or !hasSexStat("deviancy", 5) and $enemytype isnot "man") and !$promiscuityIgnore) or $awareness lt 300>> <!-- Do Nothing --> <<else>> <<if ($NPCList[$anustarget].penis is "anusdouble" or $NPCList[$anustarget].chastity.penis.includes("chastity")) and !$NPCList[$anusdoubletarget].chastity.penis.includes("chastity")>> <<set _anusaction["Envelop " + $NPCList[$anusdoubletarget].pronouns.his + " " + $NPCList[$anusdoubletarget].penisdesc] to "anuspenisdoublefuck">> <<elseif ($NPCList[$anusdoubletarget].penis is "anusdouble" or $NPCList[$anusdoubletarget].chastity.penis.includes("chastity")) and !$NPCList[$anustarget].chastity.penis.includes("chastity")>> <<set _anusaction["Envelop " + $NPCList[$anustarget].pronouns.his + " " + $NPCList[$anustarget].penisdesc] to "anuspenisdoublefuck">> <<elseif !($NPCList[$anustarget].chastity.penis.includes("chastity") and $NPCList[$anusdoubletarget].chastity.penis.includes("chastity"))>> <<set _anusaction["Envelop both their penises"] to "anuspenisdoublefuck">> <</if>> <</if>> <</if>> <</widget>> <<widget "actionsanusMouthEntrance">> <<if $NPCList[$anustarget].mouth is "anusentrance">> <<if $consensual is 1 and $promiscuity lt 0 and !$promiscuityIgnore>> <<else>> <<set _anusaction["Press your butt against " + $NPCList[$anustarget].pronouns.his + " mouth"] to "bottombay">> <</if>> <<set _anusaction["Rub against " + $NPCList[$anustarget].pronouns.his + " face"] to "othermouthtease">> <</if>> <</widget>> <<widget "actionsanusMouthImminent">> <<if $NPCList[$anustarget].mouth is "anusimminent">> <<set _anusaction["Rub against " + $NPCList[$anustarget].pronouns.his + " lips"] to "othermouthrub">> <<set _anusaction["Pull away"] to "othermouthescape">> <</if>> <</widget>> <<widget "actionsanusMouthPenetration">> <<if $consensual is 0 or (!hasSexStat("promiscuity", 4) and $enemytype is "man" and !$promiscuityIgnore) or (!hasSexStat("deviancy", 4) and $enemytype isnot "man" and !$promiscuityIgnore)>> <<set _anusaction["Cooperate"] to "othermouthcooperate">> <<else>> <<set _anusaction["Hump"] to "othermouthcooperate">> <</if>> <</widget>> <<widget "actionsanusHandEntrance">> <<if $NPCList[$anustarget].lefthand is "anusentrance" or $NPCList[$anustarget].righthand is "anusentrance">> <<if $consensual is 1 and $promiscuity lt 0 and !$promiscuityIgnore>> <<else>> <<set _anusaction["Clench your buttcheeks against " + $NPCList[$anustarget].pronouns.his + " hand"] to "bottomhandbay">> <</if>> <<set _anusaction["Rub your butthole against " + $NPCList[$anustarget].pronouns.his + " fingers"] to "handtease">> <</if>> <</widget>> <<widget "actionsanusHandPenetration">> <<if $consensual is 0 or (!hasSexStat("promiscuity", 4) and $enemytype is "man" and !$promiscuityIgnore) or (!hasSexStat("deviancy", 4) and $enemytype isnot "man" and !$promiscuityIgnore)>> <<set _anusaction["Cooperate"] to "handcooperate">> <<else>> <<set _anusaction["Take it"] to "handtake">> <<set _anusaction["Hump"] to "handcooperate">> <</if>> <</widget>> <<widget "actionsanusPenisEntrance">> <<actionsanuspenisfucknew>> <<if $consensual is 1 and (!hasSexStat("promiscuity", 4) and $enemytype is "man" or !hasSexStat("deviancy", 4) and $enemytype isnot "man") and !$promiscuityIgnore>> <<else>> <<set _anusaction["Keep it away with your cheeks"] to "penischeeks">> <</if>> <<if $vaginause is 0 and !playerChastity("vagina")>> <<set _anusaction["Offer your pussy instead"] to "penispussy">> <</if>> <<if $settings.vaginalDoubleEnabled and $awareness gt 300 and $vaginause is "penis" and $NPCList[$vaginatarget].penissize gte 2 and $NPCList[$anustarget].penissize gte 2 and !playerChastity("vagina") and !["legLock","legLocked"].includes($feetuse)>> <<set _anusaction["Offer double vaginal instead"] to "penispussydouble">> <</if>> <<set _anusaction["Tease the tip"] to "penistease">> <<if $settings.analDoubleEnabled and _secondtarget is true and ($vaginause is 0 or ($vaginause isnot 0 and $vaginause isnot "penisdouble")) and $awareness gte 300 and !["legLock","legLocked"].includes($feetuse)>> <<if $npc.includes($NPCList[$anusdoubletarget].fullDescription)>> <<set _anusaction["Straddle " + $NPCList[$anusdoubletarget].fullDescription + "'s " + $NPCList[$anusdoubletarget].penisdesc] to "anustopenisdouble">> <<else>> <<set _anusaction["Straddle the " + $NPCList[$anusdoubletarget].fullDescription + "'s " + $NPCList[$anusdoubletarget].penisdesc] to "anustopenisdouble">> <</if>> <</if>> <</widget>> <<widget "actionsanusPenisImminent">> <<actionsanuspenisfucknew>> <<set _anusaction["Rub"] to "rub">> <<if ($consensual is 0 or (hasSexStat("promiscuity", 4) and $enemytype is "man") or (hasSexStat("deviancy", 4) and $enemytype isnot "man")) and currentSkillValue("analskill") gte 800>> <<set _anusaction["Edge " + $NPCList[$anustarget].pronouns.him] to "penisEdging">> <</if>> <<set _anusaction["Pull away"] to "escape">> <</widget>> <<widget "actionsanusPenisPenetration">> <<set _anusaction["Take it"] to "take">> <<if $consensual is 0 or (!hasSexStat("promiscuity", 4) and $enemytype is "man" and !$promiscuityIgnore) or (!hasSexStat("deviancy", 4) and $enemytype isnot "man" and !$promiscuityIgnore)>> <<set _anusaction["Cooperate"] to "cooperate">> <<else>> <<set _anusaction["Fuck"] to "cooperate">> <</if>> <<if ($consensual is 0 or (hasSexStat("promiscuity", 4) and $enemytype is "man") or (hasSexStat("deviancy", 4) and $enemytype isnot "man")) and currentSkillValue("analskill") gte 800>> <<set _anusaction["Edge " + $NPCList[$anustarget].pronouns.him] to "penisEdging">> <</if>> <<if !playerIsPregnant() and canBeMPregnant() and $sexStats.vagina.menstruation.currentState isnot "recovering" and !$player.vaginaExist and playerPregnancyPossibleWith($NPCList[$anustarget]) and $enemyarousal gte $enemyarousalmax and $demon gte 6 and $demonbuild gte 90>> <<if playerAwareTheyCanBePregnant()>> <<set _anusaction["Force Impregnation"] to "forceImpregnation">> <<else>> <<set _anusaction["?????"] to "forceImpregnation">> <</if>> <</if>> <<if _secondtarget is true and ($vaginause is 0 or ($vaginause isnot 0 and $vaginause isnot "penisdouble")) and $awareness gte 300 and !["legLock","legLocked"].includes($feetuse)>> <<if $npc.includes($NPCList[$anusdoubletarget].fullDescription)>> <<set _anusaction["Straddle " + $NPCList[$anusdoubletarget].fullDescription + "'s " + $NPCList[$anusdoubletarget].penisdesc] to "anustopenisdouble">> <<else>> <<set _anusaction["Straddle the " + $NPCList[$anusdoubletarget].fullDescription + "'s " + $NPCList[$anusdoubletarget].penisdesc] to "anustopenisdouble">> <</if>> <</if>> <</widget>> <<widget "actionsanusPenisDoubleEntrance">> <<actionsanuspenisdoublefuck>> <<set _anusaction["Tease"] to "penisdoubletease">> <<if $vaginause is 0 and !playerChastity("vagina")>> <<set _anusaction["Offer your pussy instead"] to "penispussydap">> <</if>> <</widget>> <<widget "actionsanusPenisDoubleImminent">> <<actionsanuspenisdoublefuck>> <<set _anusaction["Rub"] to "rub">> <<if ($consensual is 0 or (hasSexStat("promiscuity", 5) and $enemytype is "man") or (hasSexStat("deviancy", 5) and $enemytype isnot "man")) and currentSkillValue("analskill") gte 800>> <<set _anusaction["Edge them"] to "penisDoubleEdging">> <</if>> <<set _anusaction["Pull away"] to "doubleescape">> <</widget>> <<widget "actionsanusPenisDoublePenetration">> <<set _anusaction["Take it"] to "doubletake">> <<if $consensual is 0 or (!hasSexStat("promiscuity", 5) and $enemytype is "man" and !$promiscuityIgnore) or (!hasSexStat("deviancy", 5) and $enemytype isnot "man" and !$promiscuityIgnore)>> <<set _anusaction["Cooperate"] to "doublecooperate">> <<else>> <<set _anusaction["Fuck"] to "doublecooperate">> <<if $NPCList[$anustarget].penis isnot "anusdouble" or $NPCList[$anusdoubletarget].penis isnot "anusdouble">> <<set _anusaction["Envelop the second penis"] to "anuspenisdoublefuck">> <</if>> <</if>> <<if ($consensual is 0 or (hasSexStat("promiscuity", 5) and $enemytype is "man") or (hasSexStat("deviancy", 5) and $enemytype isnot "man")) and currentSkillValue("analskill") gte 800>> <<set _anusaction["Edge them"] to "penisDoubleEdging">> <</if>> <</widget>> <<widget "actionsanusFaceAgainstAnus">> <<set _anusaction["Rub"] to "otherMouthAnusRub">> <<set _anusaction["Stop"] to "otherMouthAnusStop">> <</widget>> <<widget "actionsanusHandAgainstAnus">> <<set _anusaction["Rub"] to "handAnusRub">> <<set _anusaction["Stop"] to "handAnusStop">> <</widget>> <<widget "actionsanusPenisAgainstAnus">> <<set _anusaction["Rub"] to "otherAnusRub">> <<set _anusaction["Stop"] to "otherAnusStop">> <</widget>><<widget "effectsanustopenis">> <<if $anusaction is "anustopenis">> <<if $anusstate is "entrance">> <<selectNpcWithPartInPosition "penis" "anusentrance">> <<set $anusdoubletarget to $anustarget>> <<set $anustarget to _j>> <<set $anusaction to "anustopenisdouble">> <<else>> <<personselect $anustarget>> <<set $anusaction to 0>><<submission 10>><<analskilluse>><<combatpromiscuity5>> <<if $anususe is 0 or $anusstate is "entrance">> <<if combatSkillCheck("anal", $anustarget)>> <<if $NPCList[$anustarget].penis is 0>> <<submission 2>><<set $anususe to "penis">><<set $NPCList[$anustarget].penis to "anusentrance">><<set $anusstate to "entrance">><<set $anusactiondefault to "penistease">> <<if $leftarm is "anus">> <<set $leftarm to 0>> <</if>> <<if $rightarm is "anus">> <<set $rightarm to 0>> <</if>> <span class="lblue">You straddle <<combatperson>> and press <<his>> <<npcPenis $anustarget>> with your <<bottom>>.</span> <<if $NPCList[$anustarget].type is "plant" and $NPCList[$anustarget].penissize gte 4 and canImpregnateParasite("anus")>> <span class="red">Something about it scares you.</span> <</if>> <<if $NPCList[$anustarget].condom and $NPCList[$anustarget].condom.willUse is true and $NPCList[$anustarget].condom.worn is false and !$NPCList[$anustarget].penisdesc.includes("strap-on")>> <<if $NPCList[$anustarget].chastity.penis.includes("chastity")>> <<He>> tries to put a condom on, but can't seem to get it over <<his>> $NPCList[$anustarget].chastity.penis. <span class="red"><<He>> quickly gives up.</span> <<set $NPCList[$anustarget].condom.willUse to false>> <<else>> <span class="green"><<He>> slips <<condomDesc $anustarget>> on <<his>> penis.</span> <<equipNPCCondom $anustarget>> <</if>> <</if>> <<if $enemytype is "beast">><<set $NPCList[$anustarget].stance to "top">><</if>> <<set $NPCList[$anustarget].location.genitals to "genitals">> <<else>> <span class="blue">You try to straddle <<combatperson>> with your <<bottom>>, but the phallus is already occupied.</span><<set $anusactiondefault to "anustopenis">> <</if>> <<else>> <span class="blue">You try to straddle <<combatperson>> with your <<bottom>> but <<ohe>> pushes you off.</span><<set $anusactiondefault to "anustopenis">> <</if>> <</if>> <</if>> <</if>> <</widget>> <<widget "effectsanuspenisfuck">> <<if $anusaction is "anuspenisfuck" and ["anusentrance","anusimminent","anusentrancedouble","anusimminentdouble"].includes($NPCList[$anustarget].penis)>> <<set $anusaction to 0>><<submission 20>><<analskilluse>><<combatpromiscuity5>> <<if $anusWetness + (currentSkillValue("analskill") / 10) gte ($NPCList[$anustarget].penissize * 15) + random(1, 40) or random(1, 2) is 2>> <<if $anususe is "penisdouble">> <<set _dub to "double">> <<selectNpcWithPartInPosition "penis" "anusentrance">> <<set $anusdoubletarget to _j>> <<else>> <<set _dub to "">> <</if>> <<set $anusactiondefault to "cooperate" + _dub>> <<set $NPCList[$anustarget].penis to "anus" + _dub>> <<if $player.virginity.anal isnot true>> <<anus_lube_text>> <span class="pink">you <<analtext>> push against <<personselect $anustarget>><<combatpersons>> $NPCList[$anustarget].penisdesc, taking it deep into your <<bottom>>.</span> <<switch $NPCList[$anustarget].penissize>> <<case 5>> <span class="lewd">You'd moan, but the sheer size drives all breath from your body.</span> <<case 4>> <span class="lewd">You shiver as your ass stretches to accommodate <<his>> cock.</span> <<case 1>> <span class="lewd">It's so small you can barely feel it.</span> <<default>> <span class="lewd">You shiver as the phallus invades your body.</span> <</switch>> <<sex 30 "anus" $anustarget>> <<elseif $player.virginity.anal is true>> <<anus_lube_text>> <span class="pink">you <<analtext>> push against <<personselect $anustarget>><<combatpersons>> $NPCList[$anustarget].penisdesc, taking it deep into</span> <span class="red">your virgin <<bottom>>.</span> <<switch $NPCList[$anustarget].penissize>> <<case 5>><span class="red">You'd scream, but the sheer size of the invading phallus drives out all thought and breath.</span> <<case 4>><span class="red">You scream as your ass struggles to accommodate <<his>> cock.</span> <<case 1>><span class="red">It may be the first time your <<bottom>> has been violated so, but <<his>> cock is so small you can barely feel it.</span> <<default>><span class="red">You gasp as your <<bottom>> is violated for the first time.</span> <</switch>> <<sex 100 "anus" $anustarget>><<takeVirginity $NPCList[$anustarget].fullDescription "anal">><<bruise anus>><<violence 30>><<set $speechanusvirgin to 1>> <</if>> <<takeNPCVirginity $anustarget "penile">><<analstat>><<raped>><<anusraped>><<set $anusstate to _dub + "penetrated">> <<unset _dub>> <<else>> You <<analtext>> press your <<bottom>> against <<personselect $anustarget>><<combatpersons>> $NPCList[$anustarget].penisdesc, <span class="blue">but fail to envelop.</span> <<His>> penis angles away and rubs between your cheeks. <<sex 20 "anus" $anustarget>><<analstat>><<set $anusactiondefault to "anuspenisfuck">> <</if>> <</if>> <</widget>> <<widget "effectsanustopenisdouble">> <<if $anusaction is "anustopenisdouble">> <<if !$anusstate.includes("double")>> <<set $anusaction to 0>><<submission 10>><<analskilluse>><<combatpromiscuity5>> <<if combatSkillCheck("anal", $anusdoubletarget)>> <<submission 2>><<set $anususe to "penisdouble">><<set $anusstate to "doubleentrance">> <<set $NPCList[$anustarget].penis to $NPCList[$anustarget].penis + "double">> <<set $NPCList[$anusdoubletarget].penis to "anusentrancedouble">> <<if $leftarm is "anus">> <<set $leftarm to 0>> <</if>> <<if $rightarm is "anus">> <<set $rightarm to 0>> <</if>> <span class="lblue">You straddle <<personselect $anusdoubletarget>><<combatperson>> and press <<his>> <<npcPenis $anusdoubletarget>> with your <<bottom>>, joining <<personselect $anustarget>><<combatpersons>> <<npcPenisSimple $anustarget>>.</span> <<if $NPCList[$anusdoubletarget].condom and $NPCList[$anusdoubletarget].condom.willUse is true and $NPCList[$anusdoubletarget].condom.worn is false and !$NPCList[$anusdoubletarget].penisdesc.includes("strap-on")>> <<if $NPCList[$anusdoubletarget].chastity.penis.includes("chastity")>> <<He>> tries to put a condom on, but can't seem to get it over <<his>> $NPCList[$anusdoubletarget].chastity.penis. <span class="red"><<He>> quickly gives up.</span> <<set $NPCList[$anusdoubletarget].condom.willUse to false>> <<else>> <span class="green"><<He>> puts <<condomDesc $anusdoubletarget>> on <<his>> penis.</span> <<equipNPCCondom $anusdoubletarget>> <</if>> <</if>> <<if $enemytype is "beast">><<set $NPCList[$anusdoubletarget].stance to "top">><</if>> <<set $NPCList[$anusdoubletarget].location.genitals to "genitals">><<set $anusactiondefault to "penisdoubletease">> <<else>> <span class="blue">You try to straddle <<personselect $anusdoubletarget>><<combatperson>> but <<ohe>> pushes you off.</span><<set $anusactiondefault to "anustopenisdouble">> <</if>> <<else>> You tried to straddle <<personselect $anusdoubletarget>><<combatperson>> but your <<bottom>> is already full. <</if>> <</if>> <</widget>> <<widget "effectsanuspenisdoublefuck">> <<if $anusaction is "anuspenisdoublefuck">> <<set $anusaction to 0>><<submission 20>><<analskilluse>><<combatpromiscuity5>> /* Ensure combined they're not larger than the largest possible phallus */ <<set _doublepenissize to Math.clamp(Math.max($NPCList[$anustarget].penissize+1, $NPCList[$anusdoubletarget].penissize+1), -1, 5)>> <<if $anusWetness + (currentSkillValue("analskill") / 10) gte (_doublepenissize * 15) + random(1, 40) or random(1, 3) is 2>> <<set $anusactiondefault to "doublecooperate">> <<set $NPCList[$anustarget].penis to "anusdouble">> <<set $NPCList[$anusdoubletarget].penis to "anusdouble">> <<if $player.virginity.anal isnot true>> <<anus_lube_text>> <span class="pink">you <<analtext>> push against the $NPCList[$anustarget].fullDescription's $NPCList[$anustarget].penisdesc and the $NPCList[$anusdoubletarget].fullDescription's $NPCList[$anusdoubletarget].penisdesc, taking them deep into your <<bottom>>.</span> <<switch _doublepenissize>> <<case 5>> <span class="lewd">You'd moan, but the sheer size of both cocks drives all breath from your body.</span> <<case 4>> <span class="lewd">You shiver as your ass stretches to accommodate both cocks.</span> <<default>> <span class="lewd">You shiver as the phalluses invade your body.</span> <</switch>> <<sex 15 "anus" $anustarget>><<sex 15 "anus" $anusdoubletarget>> <<elseif $player.virginity.anal is true>> <<anus_lube_text>> <span class="pink">you <<analtext>> push against the $NPCList[$anustarget].fullDescription's $NPCList[$anustarget].penisdesc and the $NPCList[$anusdoubletarget].fullDescription's $NPCList[$anusdoubletarget].penisdesc, taking them deep into</span> <span class="red">your virgin <<bottom>>.</span> <<switch _doublepenissize>> <<case 5>><span class="red">You'd scream, but the sheer size of the invading phalluses drive out all thought and breath.</span> <<case 4>><span class="red">You scream as your ass struggles to accommodate both cocks.</span> <<default>><span class="red">You gasp as your <<bottom>> is violated for the first time.</span> <</switch>> <<set _mydesc to ($NPCList[$anustarget].fullDescription + " and " + $NPCList[$anusdoubletarget].fullDescription)>> <<sex 50 "anus" $anustarget>><<sex 50 "anus" $anusdoubletarget>><<takeVirginity `[$anustarget, $anusdoubletarget]` "anal">><<bruise anus>><<violence 30>><<set $speechanusvirgin to 1>> <</if>> <<takeNPCVirginity $anustarget "penile">><<takeNPCVirginity $anusdoubletarget "penile">><<analstat>><<analdoublestat>><<raped>><<anusraped>><<set $anusstate to "doublepenetrated">> <span class="pink">Your nipples harden while your body shivers from taking two cocks.</span> <<else>> You <<analtext>> press your <<bottom>> against their cocks, <span class="blue">but fail to envelop.</span> Their penises angle away and rubs between your cheeks. <<sex 10 "anus" $anustarget>><<sex 10 "anus" $anusdoubletarget>><<set $anusactiondefault to "anuspenisdoublefuck">> <</if>> <</if>> <</widget>><<widget "feetgrab">> <<if $combattype is "train">> <<set _end to $enemyno-1>> <<else>> <<set _end to 0>> <</if>> <<set _xx to $enemyno-1>> <<if _xx is -1>> <<set _stanceCheck to 0>> <<else>> <<set _stanceCheck to $NPCList[_xx].stance>> <</if>> <<if $consensual is 1 and !hasSexStat("promiscuity", 3) and $enemytype is "man" or $consensual is 1 and !hasSexStat("deviancy", 3) and $enemytype isnot "man">> <!-- Do Nothing --> <<elseif _stanceCheck isnot "topface">> <<for _j = $enemyno-1; _j gte _end; _j-->> <<if $NPCList[_j].penis is 0>> <<if $feetactiondefault is "grab">> | <label><span class="sub">Grab <<his>> penis</span> <<radiobutton "$feetaction" "grab" checked>><<feetdifficulty>> <<combatpromiscuous3>></label> <<else>> | <label><span class="sub">Grab <<his>> penis</span> <<radiobutton "$feetaction" "grab">><<feetdifficulty>> <<combatpromiscuous3>></label> <</if>> <<break>> <</if>> <</for>> <<for _j = $enemyno-1; _j gte _end; _j-->> <<if $NPCList[_j].vagina is 0>> <<if $feetactiondefault is "vaginagrab">> | <label><span class="sub">Press your feet against <<his>> pussy</span> <<radiobutton "$feetaction" "vaginagrab" checked>><<feetdifficulty>> <<combatpromiscuous3>></label> <<else>> | <label><span class="sub">Press your feet against <<his>> pussy</span> <<radiobutton "$feetaction" "vaginagrab">><<feetdifficulty>> <<combatpromiscuous3>></label> <</if>> <<break>> <</if>> <</for>> <</if>> <</widget>> <<widget "feetgrabnew">> <<if $feettarget isnot "self">> <<set _stanceCheck to $NPCList[$feettarget].stance>> <<set $_penis to (npcHasStrapon($feettarget) ? "strap-on" : "penis")>> <<if $consensual is 1 and (!hasSexStat("promiscuity", 3) and $enemytype is "man" or !hasSexStat("deviancy", 3) and $enemytype isnot "man") and !$promiscuityIgnore>> <!-- Do Nothing --> <<elseif _stanceCheck isnot "topface">> <<if $NPCList[$feettarget].penis is 0>> <<if $NPCList[$feettarget].chastity.penis.includes("chastity")>> <<set _feetaction["Press your foot on " + $NPCList[$feettarget].pronouns.his + " " + $NPCList[$feettarget].chastity.penis] to "grab">> <<elseif !($leftleg isnot 0 or $rightleg isnot 0)>> <<set _feetaction["Grab "+ $NPCList[$feettarget].pronouns.his + " " + $_penis] to "grab">> <</if>> <</if>> <<if $NPCList[$feettarget].vagina is 0>> <<if $NPCList[$feettarget].chastity.vagina.includes("chastity")>> <<set _feetaction["Press your feet against " + $NPCList[$feettarget].pronouns.his + " " + $NPCList[$feettarget].chastity.vagina] to "vaginagrab">> <<else>> <<set _feetaction["Press your feet against " + $NPCList[$feettarget].pronouns.his + " pussy"] to "vaginagrab">> <</if>> <</if>> <</if>> <</if>> <</widget>> <<widget "feetKick">> <<if $feettarget isnot "self">> <<if $consensual isnot 1 and ($fightTargets is undefined or $fightTargets.includes($feettarget))>> <<set _feetaction["Kick"] to "kick">> <</if>> <</if>> <</widget>> <<widget "feetGrabRub">> <<set _feetaction["Rub"] to "grabrub">> <<set _feetaction["Stop"] to "stop">> <</widget>> <<widget "feetOthervagina">> <<set _feetaction["Rub"] to "vaginagrabrub">> <<set _feetaction["Stop"] to "stop">> <</widget>> <<widget "feetRunClothed">> /* Commented for lack of effect <<if $NPCList[$feettarget].vagina is "clothed" or $NPCList[$feettarget].penis is "clothed">> <<set _feetaction["Rub " + $NPCList[$feettarget].pronouns.his + " crotch"] to "rub">> <</if>>*/ <</widget>> <<widget "feetshoes">> <<if $feettarget is "self" or $options.targetYourself is false or _targetnumber is 1>> <<if !$worn.feet.type.includes("shackle") and !$worn.feet.type.includes("naked")>> <<set _feetaction["Kick off your shoes"] to "feetshoes">> <</if>> <</if>> <</widget>> <<widget "feetsocks">> <<if $feettarget is "self" or $options.targetYourself is false or _targetnumber is 1>> <<if $worn.feet.type.includes("shackle") or $worn.feet.type.includes("naked")>> <<if $worn.legs.state is "ankles">> <<set _feetaction["Kick off your legwear"] to "feetsocks">> <<elseif $worn.legs.state is "thighs">> <<set _feetaction["Peel down your legwear"] to "feetsocks">> <</if>> <</if>> <</if>> <</widget>> <<widget "legLock">> <<if typeof $feettarget != "string">> <<if ($vaginastate is "penetrated" or $anusstate is "penetrated") and ($NPCList[$feettarget].penis is "vagina" or $NPCList[$feettarget].penis is "anus") and $leglocktarget is undefined>> <<if ($consensual is 0 and ($enemytype is "man" ? $promiscuity : $deviancy) lte 94) or ($consensual is 1 and ($enemytype is "man" ? $promiscuity : $deviancy) lte 34 and !$promiscuityIgnore)>> <!-- Do Nothing --> <<else>> <<if $position is "missionary">> <<set _feetaction["Leg lock " + $NPCList[$feettarget].pronouns.him] to "legLock">> <<else>> <<set _feetaction["Push back against " + $NPCList[$feettarget].pronouns.him] to "legLock">> <</if>> <</if>> <</if>> <</if>> <</widget>> <<widget "legLocked">> <<if $position is "missionary">> <<set _feetaction["Maintain the leg lock"] to "legLocked">> <<set _feetaction["Release"] to "legRelease">> <<else>> <<set _feetaction["Keep pushing back"] to "legLocked">> <<set _feetaction["Stop"] to "legRelease">> <</if>> <</widget>><<widget "leftdefault">> <<if $lefttarget isnot "self" and $punishmentposition isnot "gloryhole">> <<set _leftaction["Stroke"] to "leftchest">> <<if $consensual isnot 1 and ($fightTargets is undefined or $fightTargets.includes($lefttarget))>> <<set _leftaction["Punch"] to "lefthit">> <</if>> <</if>> <<if $lefttarget is "self" or $options.targetYourself is false or _targetnumber is 1>> <<set _leftaction["Hold behind back"] to "behind">> <<leftcoverface>> <</if>> <</widget>> <<widget "leftcoverface">> <<set _leftaction["Cover your face"] to "leftcoverface">> <</widget>> <<widget "leftcamerapose">> <<if $audiencecamera1 isnot 0>> <<set _leftaction["Pose for camera"] to "leftcamerapose">> <</if>> <</widget>> <<widget "lefthandpull">> <<if $lefttarget isnot "self">> <<if ($NPCList[$lefttarget].lefthand and $NPCList[$lefttarget].lefthand.startsWith("penis")) or ($NPCList[$lefttarget].righthand and $NPCList[$lefttarget].righthand.startsWith("penis"))>> <<set _leftaction["Take " + $NPCList[$lefttarget].pronouns.his + " hand off your penis"] to "handpullpenis">> <</if>> <<if ($NPCList[$lefttarget].lefthand and $NPCList[$lefttarget].lefthand.startsWith("vagina")) or ($NPCList[$lefttarget].righthand and $NPCList[$lefttarget].righthand.startsWith("vagina"))>> <<set _leftaction["Take " + $NPCList[$lefttarget].pronouns.his + " hand off your pussy"] to "handpullvagina">> <</if>> <<if ($NPCList[$lefttarget].lefthand and $NPCList[$lefttarget].lefthand.startsWith("anus")) or ($NPCList[$lefttarget].righthand and $NPCList[$lefttarget].righthand.startsWith("anus"))>> <<set _leftaction["Take " + $NPCList[$lefttarget].pronouns.his + " hand off your ass"] to "handpullanus">> <</if>> <</if>> <</widget>> <<widget "leftgrabnew">> <<if $lefttarget isnot "self">> <<set $_target to $NPCList[$lefttarget]>> <<if $_target.penis is 0>> <<set $_penis to (npcHasStrapon($lefttarget) ? "strap-on" : "penis")>> <<if $consensual is 1 and ($enemytype is "man" ? $promiscuity : $deviancy) lte 34 and !$promiscuityIgnore>> <!-- Do Nothing --> <<else>> <<if $_target.chastity.penis.includes("chastity")>> <<set _leftaction["Tease " + $_target.pronouns.his + " " + $_penis + " through " + $_target.pronouns.his + " " + $_target.chastity.penis] to "leftgrab">> <<else>> <<set _leftaction["Grab " + $_target.pronouns.his + " " + $_penis] to "leftgrab">> <</if>> <</if>> <<if $_target.chastity.penis.includes("chastity")>> <<set _leftaction["Stroke " + $_target.pronouns.his + " " + $_penis + " through " + $_target.pronouns.his + " " + $_target.chastity.penis] to "leftstroke">> <<else>> <<set _leftaction["Stroke "+ $_target.pronouns.his + " " + $_penis] to "leftstroke">> <</if>> <</if>> <</if>> <</widget>> <<widget "leftplaynew">> <<if $lefttarget isnot "self">> <<set $_target to $NPCList[$lefttarget]>> <<if $consensual is 1 and ($enemytype is "man" ? $promiscuity : $deviancy) lte 34 and !$promiscuityIgnore>> <!-- Do Nothing --> <<else>> <<if $_target.vagina is 0>> <<if $_target.chastity.vagina.includes("chastity")>> <<set _leftaction["Play with " + $_target.pronouns.his + " pussy through " + $_target.pronouns.his + " " + $_target.chastity.vagina] to "leftplay">> <<else>> <<set _leftaction["Play with " + $_target.pronouns.his + " pussy"] to "leftplay">> <</if>> <</if>> <</if>> <</if>> <</widget>> <<widget "leftclothesnew">> <<if $lefttarget is "self" or $options.targetYourself is false or _targetnumber is 1>> <<if $worn.over_upper.state is setup.clothes.over_upper[clothesIndex('over_upper', $worn.over_upper)].state_base and $worn.over_upper.state_top is setup.clothes.over_upper[clothesIndex('over_upper', $worn.over_upper)].state_top_base and !$worn.over_upper.type.includes("naked")>> <<set _leftaction["Displace your "+$worn.over_upper.name] to "over_upper">> <</if>> <<if $worn.upper.state is setup.clothes.upper[clothesIndex('upper', $worn.upper)].state_base and $worn.upper.state_top is setup.clothes.upper[clothesIndex('upper', $worn.upper)].state_top_base and !$worn.upper.type.includes("naked")>> <<set _leftaction["Displace your "+$worn.upper.name] to "upper">> <</if>> <<if $worn.under_upper.state is setup.clothes.under_upper[clothesIndex('under_upper', $worn.under_upper)].state_base and $worn.under_upper.state_top is setup.clothes.under_upper[clothesIndex('under_upper', $worn.under_upper)].state_top_base and !$worn.under_upper.type.includes("naked")>> <<set _leftaction["Displace your "+$worn.under_upper.name] to "under_upper">> <</if>> <<if $worn.over_lower.state is setup.clothes.over_lower[clothesIndex('over_lower', $worn.over_lower)].state_base and setup.clothes.over_lower[clothesIndex('over_lower', $worn.over_lower)].skirt isnot 1 and !$worn.over_lower.type.includes("naked")>> <<set _leftaction["Displace your "+$worn.over_lower.name] to "over_lower">> <<elseif setup.clothes.over_lower[clothesIndex('over_lower', $worn.over_lower)].skirt is 1 and $worn.over_lower.skirt_down is 1>> <<set _leftaction["Displace your "+$worn.over_lower.name] to "over_lower">> <</if>> <<if $worn.lower.state is setup.clothes.lower[clothesIndex('lower', $worn.lower)].state_base and setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt isnot 1 and !$worn.lower.type.includes("naked")>> <<set _leftaction["Displace your "+$worn.lower.name] to "lower">> <<elseif setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1 and $worn.lower.skirt_down is 1>> <<set _leftaction["Displace your "+$worn.lower.name] to "lower">> <</if>> <<if $worn.under_lower.state is setup.clothes.under_lower[clothesIndex('under_lower', $worn.under_lower)].state_base and !$worn.under_lower.type.includes("naked") and !($penisstate isnot 0 and playerHasStrapon())>> <<if $worn.lower.state isnot setup.clothes.lower[clothesIndex('lower', $worn.lower)].state_base or setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1 or $worn.lower.type.includes("naked")>> <<set _leftaction["Displace your "+$worn.under_lower.name] to "under_lower">> <</if>> <</if>> <<if $worn.under_lower.state is setup.clothes.under_lower[clothesIndex('under_lower', $worn.under_lower)].state_base and !$worn.under_lower.type.includes("naked") and !playerHasStrapon()>> <<if $worn.lower.state isnot setup.clothes.lower[clothesIndex('lower', $worn.lower)].state_base or setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1 or $worn.lower.type.includes("naked")>> <<set _leftaction["Pull your "+$worn.under_lower.name+" to the side"] to "under_lower_to_the_side">> <</if>> <</if>> <<if $worn.face.state is setup.clothes.face[clothesIndex('face', $worn.face)].state_base and !$worn.face.type.includes("naked") and $worn.face.type.includes("mask")>> <<set _leftaction["Displace your "+$worn.face.name] to "mask">> <</if>> <</if>> <</widget>> <<widget "leftspraynew">> <<if $lefttarget isnot "self">> <<if $consensual isnot 1 and $spray gte 1 and $NPCList.some(npc => npc.health >= 0 && (!$fightTargets || $fightTargets.includes(npc.index)))>> <<set _leftaction["Pepper spray"] to "spray">> <</if>> <</if>> <</widget>> <<widget "leftstealnew">> <<if $lefttarget isnot "self" and !($stealtarget.includes($lefttarget)) and $NPCList[$lefttarget].clothes?.set isnot "naked">> <<if (currentSkillValue('skulduggery') gte 200 or $easySteal is 1) and $enemytype is "man" and $abomination isnot 1 and !($npcrow.includes($lefttarget)) and $water isnot 1 and $punishmentposition isnot "gloryhole">> <<set $skulduggerydifficulty to (1000 - ($enemyarousal / $enemyarousalmax * 400) - $skulduggery - $enemytrust + $enemyanger) * $stealdifficulty>> <<if $easySteal is 1>><<set $skulduggerydifficulty to 0>><</if>> /*Missing <<skulduggerydifficulty>><<combatcrime>>*/ <<if !isNaN($lefttarget) and $NPCList[$lefttarget] and $NPCList[$lefttarget].clothes and $NPCList[$lefttarget].clothes.set is "naked">> <<elseif $stealstateleft is undefined>> <<set _leftaction["Steal"] to "steal">> <<elseif $stealstateleft is 2>> <<set _leftaction["Take " + $NPCList[$lefttarget].pronouns.his + " belongings"] to "steal">> <<else>> <<set _leftaction["Commit to stealing"] to "steal">> <</if>> <</if>> <</if>> <</widget>> <<widget "leftpenwhacknew">> <<if $lefttarget isnot "self">> <<set $_target to $NPCList[$lefttarget]>> <<if $_target.lefthand and ($_target.lefthand is "pen" or $_target.lefthand.startsWith("pen_")) or $_target.righthand and ($_target.righthand is "pen" or $_target.righthand.startsWith("pen_"))>> <<set _leftaction["Whack the writing tool away"] to "penwhack">> <</if>> <</if>> <</widget>> <<widget "leftshacklewhack">> <<if $lefttarget isnot "self">> <<if $NPCList[$lefttarget].lefthand is "shackle_entrance" or $NPCList[$lefttarget].lefthand is "shackle_imminent" or $NPCList[$lefttarget].righthand is "shackle_entrance" or $NPCList[$lefttarget].righthand is "shackle_imminent">> <<set _leftaction["Whack away the shackles"] to "shacklewhack">> <</if>> <</if>> <</widget>> <<widget "lefthypnosiswhack">> <<if $lefttarget isnot "self">> <<set $_target to $NPCList[$lefttarget]>> <<if $_target.lefthand and ($_target.lefthand is "hypnosis" or $_target.lefthand.startsWith("hypnosis_")) or $_target.righthand and ($_target.righthand is "hypnosis" or $_target.righthand.startsWith("hypnosis_"))>> <<set _leftaction["Whack the hypnotic instrument away"] to "hypnosiswhack">> <</if>> <</if>> <</widget>> <<widget "leftdildowhack">> <<if $lefttarget isnot "self">> <<if $NPCList[$lefttarget].lefthand is "dildo" or $NPCList[$lefttarget].righthand is "dildo">> <<if getSexToysofType("all").includes($NPCList[$lefttarget].lefttool)>> <<set _leftaction["Whack the "+ $NPCList[$lefttarget].lefttool +" away"] to "dildowhack">> <<elseif getSexToysofType("all").includes($NPCList[$lefttarget].righttool)>> <<set _leftaction["Whack the "+ $NPCList[$lefttarget].righttool +" away"] to "dildowhack">> <</if>> <</if>> <</if>> <</widget>> <<widget "leftFixAndCoverActions">> <<if $player.vaginaExist and (($worn.lower.vagina_exposed is 1 and $worn.under_lower.vagina_exposed is 1) or $leftactiondefault is "leftcovervaginalewd")>> <<if $NPCList[0].state is "stalk" and $NPCList[0].legs isnot "run">> <<if $vaginause is "cover">> <<if $leftactiondefault is "leftcovervaginalewd" or $rightactiondefault is "rightcovervaginalewd">> <<set _leftaction["Keep playing with your pussy"] to "leftcovervaginalewd">> <<else>> <<set _leftaction["Keep covering your pussy"] to "leftcovervaginameek">> <</if>> <<elseif $vaginause is 0>> <<set _leftaction["Cover your pussy"] to "leftcovervaginameek">> <</if>> <<elseif $lefttarget is "self" or $options.targetYourself is false or _targetnumber is 1 or $NPCList[0].state is "stalk">> <<if $vaginause is "cover">> <<if $leftactiondefault is "leftcovervaginalewd" or $rightactiondefault is "rightcovervaginalewd">> <<set _leftaction["Keep playing with your pussy"] to "leftcovervaginalewd">> <<else>> <<set _leftaction["Keep covering your pussy"] to "leftcovervagina">> <</if>> <<elseif $vaginause is 0>> <<set _leftaction["Cover your pussy"] to "leftcovervagina">> <</if>> <</if>> <</if>> <<if ($player.penisExist or playerHasStrapon()) and (($worn.lower.vagina_exposed is 1 and $worn.under_lower.vagina_exposed is 1) or $leftactiondefault is "leftcoverpenislewd")>> <<set _penis to playerHasStrapon() ? "strap-on" : (playerChastity("penis") ? $worn.genitals.name : "penis")>> <<set _straponDisplaced to (!playerHasStrapon() && $worn.under_lower.type.includes("strap-on"))>> <<if $NPCList[0].state is "stalk" and $NPCList[0].legs isnot "run">> <<if $penisuse is "cover">> <<if $leftactiondefault is "leftcoverpenislewd" or $rightactiondefault is "rightcoverpenislewd">> <<set _leftaction["Keep playing with your " + _penis] to "leftcoverpenislewd">> <<else>> <<set _leftaction["Keep covering your " + _penis] to "leftcoverpenismeek">> <</if>> <<elseif $penisuse is 0>> <<if !_straponDisplaced>> <<set _leftaction["Cover your " + _penis] to "leftcoverpenismeek">> <</if>> <</if>> <<elseif $lefttarget is "self" or $options.targetYourself is false or _targetnumber is 1 or $NPCList[0].state is "stalk">> <<if $penisuse is "cover">> <<if $leftactiondefault is "leftcoverpenislewd" or $rightactiondefault is "rightcoverpenislewd">> <<set _leftaction["Keep playing with your " + _penis] to "leftcoverpenislewd">> <<else>> <<set _leftaction["Keep covering your " + _penis] to "leftcoverpenis">> <</if>> <<elseif $penisuse is 0>> <<if !_straponDisplaced>> <<set _leftaction["Cover your " + _penis] to "leftcoverpenis">> <</if>> <</if>> <</if>> <</if>> <<if ($worn.lower.anus_exposed is 1 and $worn.under_lower.anus_exposed is 1) or $leftactiondefault is "leftcoveranuslewd">> <<if $NPCList[0].state is "stalk" and $NPCList[0].legs isnot "run">> <<if $anususe is "cover">> <<if $leftactiondefault is "leftcoveranuslewd" or $rightactiondefault is "rightcoveranuslewd">> <<set _leftaction["Keep playing with your ass"] to "leftcoveranuslewd">> <<else>> <<set _leftaction["Keep covering your ass"] to "leftcoveranusmeek">> <</if>> <<else>> <<set _leftaction["Cover your ass"] to "leftcoveranusmeek">> <</if>> <<elseif $lefttarget is "self" or $options.targetYourself is false or _targetnumber is 1 or $NPCList[0].state is "stalk">> <<if $anususe is "cover">> <<if $leftactiondefault is "leftcoveranuslewd" or $rightactiondefault is "rightcoveranuslewd">> <<set _leftaction["Keep playing with your ass"] to "leftcoveranuslewd">> <<else>> <<set _leftaction["Keep covering your ass"] to "leftcoveranus">> <</if>> <<else>> <<set _leftaction["Cover your ass"] to "leftcoveranus">> <</if>> <</if>> <</if>> <<if $lefttarget is "self" or $options.targetYourself is false or _targetnumber is 1>> <<if $worn.under_lower.name isnot "naked">> <<if $worn.under_lower.state is "thighs" or $worn.under_lower.state is "knees" or $worn.under_lower.state is "ankles">> <<set _leftaction["Pull up your " + $worn.under_lower.name] to "leftunderpull">> <</if>> <</if>> <<if setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1>> <<if $worn.lower.skirt_down is 0>> <<if $worn.lower.state is "waist">> <<set _leftaction["Cover your crotch with your " + $worn.lower.name] to "leftskirtpull">> <</if>> <</if>> <</if>> <<if $worn.lower.name isnot "naked">> <<if $worn.upper.set is $worn.lower.set>> <<if $worn.lower.state isnot setup.clothes.lower[clothesIndex('lower', $worn.lower)].state_base and $worn.upper.state is setup.clothes.upper[clothesIndex('upper', $worn.upper)].state_base and $worn.upper.state_top is setup.clothes.upper[clothesIndex('upper', $worn.upper)].state_top_base>> <<set _leftaction["Fix your " + $worn.lower.name] to "leftlowerpull">> <</if>> <<elseif $worn.lower.state isnot setup.clothes.lower[clothesIndex('lower', $worn.lower)].state_base>> <<set _leftaction["Fix your " + $worn.lower.name] to "leftlowerpull">> <</if>> <</if>> <<if $worn.over_lower.name isnot "naked">> <<if $worn.over_upper.set is $worn.over_lower.set>> <<if $worn.over_lower.state isnot setup.clothes.over_lower[clothesIndex('over_lower', $worn.over_lower)].state_base and $worn.over_upper.state is setup.clothes.over_upper[clothesIndex('over_upper', $worn.over_upper)].state_base and $worn.over_upper.state_top is setup.clothes.over_upper[clothesIndex('over_upper', $worn.over_upper)].state_top_base>> <<set _leftaction["Fix your " + $worn.over_lower.name] to "leftoverlowerpull">> <</if>> <<elseif $worn.over_lower.state isnot setup.clothes.over_lower[clothesIndex('over_lower', $worn.over_lower)].state_base>> <<set _leftaction["Fix your " + $worn.over_lower.name] to "leftoverlowerpull">> <</if>> <</if>> <<if $worn.upper.name isnot "naked">> <<if $worn.upper.state isnot setup.clothes.upper[clothesIndex('upper', $worn.upper)].state_base or $worn.upper.state_top isnot setup.clothes.upper[clothesIndex('upper', $worn.upper)].state_top_base>> <<set _leftaction["Fix your " + $worn.upper.name] to "leftupperpull">> <</if>> <</if>> <<if $worn.over_upper.name isnot "naked">> <<if $worn.over_upper.state isnot setup.clothes.over_upper[clothesIndex('over_upper', $worn.over_upper)].state_base or $worn.over_upper.state_top isnot setup.clothes.over_upper[clothesIndex('over_upper', $worn.over_upper)].state_top_base>> <<set _leftaction["Fix your " + $worn.over_upper.name] to "leftoverupperpull">> <</if>> <</if>> <</if>> <</widget>> <<widget "leftchoke">> <<if $lefttarget isnot "self">> <<set $_target to $NPCList[$lefttarget]>> <<if $_target.lefthand is "throat" or $_target.righthand is "throat">> <<if $consensual == 1>> <<set _leftaction["Press " + $_target.pronouns.his + " hand to your neck"] to "keepchoke">> <<set _leftaction["Take " + $_target.pronouns.his + " hand off your neck"] to "stopchoke">> <<else>> <<set _leftaction["Pull " + $_target.pronouns.his + " hand off your neck"] to "stopchokenoncon">> <</if>> <</if>> <</if>> <</widget>> <<widget "leftCondom">> <<if $lefttarget is "self" or $options.targetYourself is false or _targetnumber is 1>> <<if !["othermouthentrance","othermouthimminent","othermouth","penetrated","otheranus"].includes($penisstate) and $player.penisExist and $worn.lower.exposed gte 2 and $worn.under_lower.exposed gte 1 and !playerChastity("penis")>> <<if !$player.condom and $condoms gt 0 and $parasite.penis.name is undefined>> <<set _leftaction["Put on a condom (" + $condoms + " left)"] to "peniscondom">> <</if>> <<if $player.condom>> <<set _leftaction["Remove your condom"] to "penisremovecondom">> <</if>> <</if>> <</if>> <</widget>> <<widget "leftNPCCondom">> <<if $lefttarget isnot "self">> <<set $_target to $NPCList[$lefttarget]>> <<if wearingCondom($lefttarget)>> <<if ($consensual is 0 and ($enemytype is "man" ? $promiscuity : $deviancy) lte 94) and playerPregnancyPossibleWith($_target)>> <!-- Do Nothing --> <<else>> <<set _leftaction["Remove " + $_target.pronouns.his + " condom"] to "npcremovecondom">> <</if>> <<elseif $prayerRoom or $NPCList[$lefttarget].fullDescription is "Ivory Wraith">> <!-- Do Nothing --> <<elseif !$_target.condom and $condoms gte 1 and ($_target.condomCanGive or $settings.condomLevel is 1)>> <<set _leftaction["Give " + $_target.pronouns.him + " a condom (" + $condoms + " left)"] to "npcgivecondom">> <</if>> <</if>> <</widget>> <<widget "leftUndressOther">> <<if $lefttarget isnot "self">> <<set $_target to $NPCList[$lefttarget]>> <<if $_target.penis is "clothed" or $_target.vagina is "clothed" or $_target.chest is "clothed">> <<if ($consensual is 1 and ($enemytype is "man" ? $promiscuity : $deviancy) lte 14 and !$promiscuityIgnore) or $punishmentposition is "gloryhole">> <!-- Do Nothing --> <<else>> <<set _leftaction["Undress:"] to "leftUndressOther">> <<set _undressLeftTargets to {"Nothing":"rest"}>> <<set $_doText to ($consensual isnot 1 ? "try to " : "")>> <<if $_target.penis is "clothed" or $_target.vagina is "clothed">> <<silently>><<npcUndressText $NPCList[$lefttarget] "lower">><</silently>> <<set _undressLeftTargets[($_doText + _actionText + " " + $_target.pronouns.his + " " + $_target.clothes.lower.name).toUpperFirst()] to "lower">> <</if>> <<if $_target.chest is "clothed">> <<silently>><<npcUndressText $NPCList[$lefttarget] "upper">><</silently>> <<set _undressLeftTargets[($_doText + _actionText + " " + $_target.pronouns.his + " " + $_target.clothes.upper.name).toUpperFirst()] to "upper">> <</if>> <</if>> <</if>> <</if>> <</widget>><<widget "rightdefault">> <<if $righttarget isnot "self" and $punishmentposition isnot "gloryhole">> <<set _rightaction["Stroke"] to "rightchest">> <<if $consensual isnot 1 and ($fightTargets is undefined or $fightTargets.includes($righttarget))>> <<set _rightaction["Punch"] to "righthit">> <</if>> <</if>> <<if $righttarget is "self" or $options.targetYourself is false or _targetnumber is 1>> <<set _rightaction["Hold behind back"] to "behind">> <<rightcoverface>> <</if>> <</widget>> <<widget "rightcoverface">> <<set _rightaction["Cover your face"] to "rightcoverface">> <</widget>> <<widget "rightcamerapose">> <<if $audiencecamera1 isnot 0>> <<set _rightaction["Pose for camera"] to "rightcamerapose">> <</if>> <</widget>> <<widget "righthandpull">> <<if $righttarget isnot "self">> <<if ($NPCList[$righttarget].lefthand and $NPCList[$righttarget].lefthand.startsWith("penis")) or ($NPCList[$righttarget].righthand and $NPCList[$righttarget].righthand.startsWith("penis"))>> <<set _rightaction["Take " + $NPCList[$righttarget].pronouns.his + " hand off your penis"] to "handpullpenis">> <</if>> <<if ($NPCList[$righttarget].lefthand and $NPCList[$righttarget].lefthand.startsWith("vagina")) or ($NPCList[$righttarget].righthand and $NPCList[$righttarget].righthand.startsWith("vagina"))>> <<set _rightaction["Take " + $NPCList[$righttarget].pronouns.his + " hand off your pussy"] to "handpullvagina">> <</if>> <<if ($NPCList[$righttarget].lefthand and $NPCList[$righttarget].lefthand.startsWith("anus")) or ($NPCList[$righttarget].righthand and $NPCList[$righttarget].righthand.startsWith("anus"))>> <<set _rightaction["Take " + $NPCList[$righttarget].pronouns.his + " hand off your ass"] to "handpullanus">> <</if>> <</if>> <</widget>> <<widget "rightgrabnew">> <<if $righttarget isnot "self">> <<set $_target to $NPCList[$righttarget]>> <<if $_target.penis is 0>> <<set $_penis to (npcHasStrapon($righttarget) ? "strap-on" : "penis")>> <<if $consensual is 1 and ($enemytype is "man" ? $promiscuity : $deviancy) lte 34 and !$promiscuityIgnore>> <!-- Do Nothing --> <<else>> <<if $_target.chastity.penis.includes("chastity")>> <<set _rightaction["Tease " + $_target.pronouns.his + " " + $_penis + " through " + $_target.pronouns.his + " " + $_target.chastity.penis] to "rightgrab">> <<else>> <<set _rightaction["Grab " + $_target.pronouns.his + " " + $_penis] to "rightgrab">> <</if>> <</if>> <<if $_target.chastity.penis.includes("chastity")>> <<set _rightaction["Stroke " + $_target.pronouns.his + " " + $_penis + " through " + $_target.pronouns.his + " " + $_target.chastity.penis] to "rightstroke">> <<else>> <<set _rightaction["Stroke " + $_target.pronouns.his + " " + $_penis] to "rightstroke">> <</if>> <</if>> <</if>> <</widget>> <<widget "rightplaynew">> <<if $righttarget isnot "self">> <<set $_target to $NPCList[$righttarget]>> <<if $consensual is 1 and ($enemytype is "man" ? $promiscuity : $deviancy) lte 34 and !$promiscuityIgnore>> <!-- Do Nothing --> <<else>> <<if $_target.vagina is 0>> <<if $_target.chastity.vagina.includes("chastity")>> <<set _rightaction["Play with " + $_target.pronouns.his + " pussy through " + $_target.pronouns.his + " " + $_target.chastity.vagina] to "rightplay">> <<else>> <<set _rightaction["Play with " + $_target.pronouns.his + " pussy"] to "rightplay">> <</if>> <</if>> <</if>> <</if>> <</widget>> <<widget "rightclothesnew">> <<if $righttarget is "self" or $options.targetYourself is false or _targetnumber is 1>> <<if $worn.over_upper.state is setup.clothes.over_upper[clothesIndex('over_upper', $worn.over_upper)].state_base and $worn.over_upper.state_top is setup.clothes.over_upper[clothesIndex('over_upper', $worn.over_upper)].state_top_base and !$worn.over_upper.type.includes("naked")>> <<set _rightaction["Displace your "+$worn.over_upper.name] to "over_upper">> <</if>> <<if $worn.upper.state is setup.clothes.upper[clothesIndex('upper', $worn.upper)].state_base and $worn.upper.state_top is setup.clothes.upper[clothesIndex('upper', $worn.upper)].state_top_base and !$worn.upper.type.includes("naked")>> <<set _rightaction["Displace your "+$worn.upper.name] to "upper">> <</if>> <<if $worn.under_upper.state is setup.clothes.under_upper[clothesIndex('under_upper', $worn.under_upper)].state_base and $worn.under_upper.state_top is setup.clothes.under_upper[clothesIndex('under_upper', $worn.under_upper)].state_top_base and !$worn.under_upper.type.includes("naked")>> <<set _rightaction["Displace your "+$worn.under_upper.name] to "under_upper">> <</if>> <<if $worn.over_lower.state is setup.clothes.over_lower[clothesIndex('over_lower', $worn.over_lower)].state_base and setup.clothes.over_lower[clothesIndex('over_lower', $worn.over_lower)].skirt isnot 1 and !$worn.over_lower.type.includes("naked")>> <<set _rightaction["Displace your "+$worn.over_lower.name] to "over_lower">> <<elseif setup.clothes.over_lower[clothesIndex('over_lower', $worn.over_lower)].skirt is 1 and $worn.over_lower.skirt_down is 1>> <<set _rightaction["Displace your "+$worn.over_lower.name] to "over_lower">> <</if>> <<if $worn.lower.state is setup.clothes.lower[clothesIndex('lower', $worn.lower)].state_base and setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt isnot 1 and !$worn.lower.type.includes("naked")>> <<set _rightaction["Displace your "+$worn.lower.name] to "lower">> <<elseif setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1 and $worn.lower.skirt_down is 1>> <<set _rightaction["Displace your "+$worn.lower.name] to "lower">> <</if>> <<if $worn.under_lower.state is setup.clothes.under_lower[clothesIndex('under_lower', $worn.under_lower)].state_base and !$worn.under_lower.type.includes("naked") and !($penisstate isnot 0 and playerHasStrapon())>> <<if $worn.lower.state isnot setup.clothes.lower[clothesIndex('lower', $worn.lower)].state_base or setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1 or $worn.lower.type.includes("naked")>> <<set _rightaction["Displace your "+$worn.under_lower.name] to "under_lower">> <</if>> <</if>> <<if $worn.under_lower.state is setup.clothes.under_lower[clothesIndex('under_lower', $worn.under_lower)].state_base and !$worn.under_lower.type.includes("naked") and !playerHasStrapon()>> <<if $worn.lower.state isnot setup.clothes.lower[clothesIndex('lower', $worn.lower)].state_base or setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1 or $worn.lower.type.includes("naked")>> <<set _rightaction["Pull your "+$worn.under_lower.name+" to the side"] to "under_lower_to_the_side">> <</if>> <</if>> <<if $worn.face.state is setup.clothes.face[clothesIndex('face', $worn.face)].state_base and !$worn.face.type.includes("naked") and $worn.face.type.includes("mask")>> <<set _rightaction["Displace your "+$worn.face.name] to "mask">> <</if>> <</if>> <</widget>> <<widget "rightspraynew">> <<if $righttarget isnot "self">> <<if $consensual isnot 1 and $spray gte 1 and $NPCList.some(npc => npc.health >= 0 && (!$fightTargets || $fightTargets.includes(npc.index)))>> <<set _rightaction["Pepper spray"] to "spray">> <</if>> <</if>> <</widget>> <<widget "rightstealnew">> <<if $righttarget isnot "self" and !($stealtarget.includes($righttarget)) and $NPCList[$righttarget].clothes?.set isnot "naked">> <<if (currentSkillValue('skulduggery') gte 200 or $easySteal is 1) and $enemytype is "man" and $abomination isnot 1 and !($npcrow.includes($righttarget)) and $water isnot 1 and $punishmentposition isnot "gloryhole">> <<set $skulduggerydifficulty to (1000 - ($enemyarousal / $enemyarousalmax * 400) - $skulduggery - $enemytrust + $enemyanger) * $stealdifficulty>> <<if $easySteal is 1>><<set $skulduggerydifficulty to 0>><</if>> /*Missing <<skulduggerydifficulty>><<combatcrime>>*/ <<if !isNaN($righttarget) and $NPCList[$righttarget] and $NPCList[$righttarget].clothes and $NPCList[$righttarget].clothes.set is "naked">> <<elseif $stealstateright is undefined>> <<set _rightaction["Steal"] to "steal">> <<elseif $stealstateright is 2>> <<set _rightaction["Take " + $NPCList[$righttarget].pronouns.his + " belongings"] to "steal">> <<else>> <<set _rightaction["Commit to stealing"] to "steal">> <</if>> <</if>> <</if>> <</widget>> <<widget "rightpenwhacknew">> <<if $righttarget isnot "self">> <<set $_target to $NPCList[$righttarget]>> <<if $_target.lefthand and ($_target.lefthand is "pen" or $_target.lefthand.startsWith("pen_")) or $_target.righthand and ($_target.righthand is "pen" or $_target.righthand.startsWith("pen_"))>> <<set _rightaction["Whack the writing tool away"] to "penwhack">> <</if>> <</if>> <</widget>> <<widget "rightshacklewhack">> <<if $righttarget isnot "self">> <<if $NPCList[$righttarget].lefthand is "shackle_entrance" or $NPCList[$righttarget].lefthand is "shackle_imminent" or $NPCList[$righttarget].righthand is "shackle_entrance" or $NPCList[$righttarget].righthand is "shackle_imminent">> <<set _rightaction["Whack away the shackles"] to "shacklewhack">> <</if>> <</if>> <</widget>> <<widget "righthypnosiswhack">> <<if $righttarget isnot "self">> <<set $_target to $NPCList[$righttarget]>> <<if $_target.righthand and ($_target.righthand is "hypnosis" or $_target.righthand.startsWith("hypnosis_")) or $_target.righthand and ($_target.righthand is "hypnosis" or $_target.righthand.startsWith("hypnosis_"))>> <<set _rightaction["Whack the hypnotic instrument away"] to "hypnosiswhack">> <</if>> <</if>> <</widget>> <<widget "rightdildowhack">> <<if $righttarget isnot "self">> <<if $NPCList[$righttarget].lefthand is "dildo" or $NPCList[$righttarget].righthand is "dildo">> <<if getSexToysofType("all").includes($NPCList[$righttarget].lefttool)>> <<set _rightaction["Whack the "+ $NPCList[$righttarget].lefttool +" away"] to "dildowhack">> <<elseif getSexToysofType("all").includes($NPCList[$righttarget].righttool)>> <<set _rightaction["Whack the "+ $NPCList[$righttarget].righttool +" away"] to "dildowhack">> <</if>> <</if>> <</if>> <</widget>> <<widget "rightFixAndCoverActions">> <<if $player.vaginaExist and (($worn.lower.vagina_exposed is 1 and $worn.under_lower.vagina_exposed is 1) or $rightactiondefault is "rightcovervaginalewd")>> <<if $NPCList[0].state is "stalk" and $NPCList[0].legs isnot "run">> <<if $vaginause is "cover">> <<if $leftactiondefault is "leftcovervaginalewd" or $rightactiondefault is "rightcovervaginalewd">> <<set _rightaction["Keep playing with your pussy"] to "rightcovervaginalewd">> <<else>> <<set _rightaction["Keep covering your pussy"] to "rightcovervaginameek">> <</if>> <<elseif $vaginause is 0>> <<set _rightaction["Cover your pussy"] to "rightcovervaginameek">> <</if>> <<elseif $righttarget is "self" or $options.targetYourself is false or _targetnumber is 1 or $NPCList[0].state is "stalk">> <<if $vaginause is "cover">> <<if $leftactiondefault is "leftcovervaginalewd" or $rightactiondefault is "rightcovervaginalewd">> <<set _rightaction["Keep playing with your pussy"] to "rightcovervaginalewd">> <<else>> <<set _rightaction["Keep covering your pussy"] to "rightcovervagina">> <</if>> <<elseif $vaginause is 0>> <<set _rightaction["Cover your pussy"] to "rightcovervagina">> <</if>> <</if>> <</if>> <<if ($player.penisExist or playerHasStrapon()) and (($worn.lower.vagina_exposed is 1 and $worn.under_lower.vagina_exposed is 1) or $rightactiondefault is "rightcoverpenislewd")>> <<set _penis to playerHasStrapon() ? "strap-on" : (playerChastity("penis") ? $worn.genitals.name : "penis")>> <<set _straponDisplaced to (!playerHasStrapon() && $worn.under_lower.type.includes("strap-on"))>> <<if $NPCList[0].state is "stalk" and $NPCList[0].legs isnot "run">> <<if $penisuse is "cover">> <<if $leftactiondefault is "leftcoverpenislewd" or $rightactiondefault is "rightcoverpenislewd">> <<set _rightaction["Keep playing with your " + _penis] to "rightcoverpenislewd">> <<else>> <<set _rightaction["Keep covering your " + _penis] to "rightcoverpenismeek">> <</if>> <<elseif $penisuse is 0>> <<if !_straponDisplaced>> <<set _rightaction["Cover your " + _penis] to "rightcoverpenismeek">> <</if>> <</if>> <<elseif $righttarget is "self" or $options.targetYourself is false or _targetnumber is 1 or $NPCList[0].state is "stalk">> <<if $penisuse is "cover">> <<if $leftactiondefault is "leftcoverpenislewd" or $rightactiondefault is "rightcoverpenislewd">> <<set _rightaction["Keep playing with your " + _penis] to "rightcoverpenislewd">> <<else>> <<set _rightaction["Keep covering your " + _penis] to "rightcoverpenis">> <</if>> <<elseif $penisuse is 0>> <<if !_straponDisplaced>> <<set _rightaction["Cover your " + _penis] to "rightcoverpenis">> <</if>> <</if>> <</if>> <</if>> <<if ($worn.lower.anus_exposed is 1 and $worn.under_lower.anus_exposed is 1) or $rightactiondefault is "rightcoveranuslewd">> <<if $NPCList[0].state is "stalk" and $NPCList[0].legs isnot "run">> <<if $anususe is "cover">> <<if $leftactiondefault is "leftcoveranuslewd" or $rightactiondefault is "rightcoveranuslewd">> <<set _rightaction["Keep playing with your ass"] to "rightcoveranuslewd">> <<else>> <<set _rightaction["Keep covering your ass"] to "rightcoveranusmeek">> <</if>> <<else>> <<set _rightaction["Cover your ass"] to "rightcoveranusmeek">> <</if>> <<elseif $righttarget is "self" or $options.targetYourself is false or _targetnumber is 1 or $NPCList[0].state is "stalk">> <<if $anususe is "cover">> <<if $leftactiondefault is "leftcoveranuslewd" or $rightactiondefault is "rightcoveranuslewd">> <<set _rightaction["Keep playing with your ass"] to "rightcoveranuslewd">> <<else>> <<set _rightaction["Keep covering your ass"] to "rightcoveranus">> <</if>> <<else>> <<set _rightaction["Cover your ass"] to "rightcoveranus">> <</if>> <</if>> <</if>> <<if $righttarget is "self" or $options.targetYourself is false or _targetnumber is 1>> <<if $worn.under_lower.name isnot "naked">> <<if $worn.under_lower.state is "thighs" or $worn.under_lower.state is "knees" or $worn.under_lower.state is "ankles">> <<set _rightaction["Pull up your " + $worn.under_lower.name] to "rightunderpull">> <</if>> <</if>> <<if setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1>> <<if $worn.lower.skirt_down is 0>> <<if $worn.lower.state is "waist">> <<set _rightaction["Cover your crotch with your " + $worn.lower.name] to "rightskirtpull">> <</if>> <</if>> <</if>> <<if $worn.lower.name isnot "naked">> <<if $worn.upper.set is $worn.lower.set>> <<if $worn.lower.state isnot setup.clothes.lower[clothesIndex('lower', $worn.lower)].state_base and $worn.upper.state is setup.clothes.upper[clothesIndex('upper', $worn.upper)].state_base and $worn.upper.state_top is setup.clothes.upper[clothesIndex('upper', $worn.upper)].state_top_base>> <<set _rightaction["Fix your " + $worn.lower.name] to "rightlowerpull">> <</if>> <<elseif $worn.lower.state isnot setup.clothes.lower[clothesIndex('lower', $worn.lower)].state_base>> <<set _rightaction["Fix your " + $worn.lower.name] to "rightlowerpull">> <</if>> <</if>> <<if $worn.over_lower.name isnot "naked">> <<if $worn.over_upper.set is $worn.over_lower.set>> <<if $worn.over_lower.state isnot setup.clothes.over_lower[clothesIndex('over_lower', $worn.over_lower)].state_base and $worn.over_upper.state is setup.clothes.over_upper[clothesIndex('over_upper', $worn.over_upper)].state_base and $worn.over_upper.state_top is setup.clothes.over_upper[clothesIndex('over_upper', $worn.over_upper)].state_top_base>> <<set _rightaction["Fix your " + $worn.over_lower.name] to "rightoverlowerpull">> <</if>> <<elseif $worn.over_lower.state isnot setup.clothes.over_lower[clothesIndex('over_lower', $worn.over_lower)].state_base>> <<set _rightaction["Fix your " + $worn.over_lower.name] to "rightoverlowerpull">> <</if>> <</if>> <<if $worn.upper.name isnot "naked">> <<if $worn.upper.state isnot setup.clothes.upper[clothesIndex('upper', $worn.upper)].state_base or $worn.upper.state_top isnot setup.clothes.upper[clothesIndex('upper', $worn.upper)].state_top_base>> <<set _rightaction["Fix your " + $worn.upper.name] to "rightupperpull">> <</if>> <</if>> <<if $worn.over_upper.name isnot "naked">> <<if $worn.over_upper.state isnot setup.clothes.over_upper[clothesIndex('over_upper', $worn.over_upper)].state_base or $worn.over_upper.state_top isnot setup.clothes.over_upper[clothesIndex('over_upper', $worn.over_upper)].state_top_base>> <<set _rightaction["Fix your " + $worn.over_upper.name] to "rightoverupperpull">> <</if>> <</if>> <</if>> <</widget>> <<widget "rightchoke">> <<if $righttarget isnot "self">> <<set $_target to $NPCList[$righttarget]>> <<if $_target.lefthand is "throat" or $_target.righthand is "throat">> <<if $consensual == 1>> <<set _rightaction["Press " + $_target.pronouns.his + " hand to your neck"] to "keepchoke">> <<set _rightaction["Take " + $_target.pronouns.his + " hand off your neck"] to "stopchoke">> <<else>> <<set _rightaction["Pull " + $_target.pronouns.his + " hand off your neck"] to "stopchokenoncon">> <</if>> <</if>> <</if>> <</widget>> <<widget "rightCondom">> <<if $righttarget is "self" or $options.targetYourself is false or _targetnumber is 1>> <<if !["othermouthentrance","othermouthimminent","othermouth","penetrated","otheranus"].includes($penisstate) and $player.penisExist and $worn.lower.exposed gte 2 and $worn.under_lower.exposed gte 1 and !playerChastity("penis")>> <<if !$player.condom and $condoms gt 0 and $parasite.penis.name is undefined>> <<set _rightaction["Put on a condom (" + $condoms + " left)"] to "peniscondom">> <</if>> <<if $player.condom>> <<set _rightaction["Remove your condom"] to "penisremovecondom">> <</if>> <</if>> <</if>> <</widget>> <<widget "rightNPCCondom">> <<if $righttarget isnot "self">> <<set $_target to $NPCList[$righttarget]>> <<if wearingCondom($righttarget)>> <<if ($consensual is 0 and ($enemytype is "man" ? $promiscuity : $deviancy) lte 94) and playerPregnancyPossibleWith($_target)>> <!-- Do Nothing --> <<else>> <<set _rightaction["Remove " + $_target.pronouns.his + " condom"] to "npcremovecondom">> <</if>> <<elseif $prayerRoom or $NPCList[$righttarget].fullDescription is "Ivory Wraith">> <!-- Do Nothing --> <<elseif !$_target.condom and $condoms gte 1 and ($_target.condomCanGive or $settings.condomLevel is 1)>> <<set _rightaction["Give " + $_target.pronouns.him + " a condom (" + $condoms + " left)"] to "npcgivecondom">> <</if>> <</if>> <</widget>> <<widget "rightUndressOther">> <<if $righttarget isnot "self">> <<set $_target to $NPCList[$righttarget]>> <<if $_target.penis is "clothed" or $_target.vagina is "clothed" or $_target.chest is "clothed">> <<if ($consensual is 1 and ($enemytype is "man" ? $promiscuity : $deviancy) lte 14 and !$promiscuityIgnore) or $punishmentposition is "gloryhole">> <!-- Do Nothing --> <<else>> <<set _rightaction["Undress:"] to "rightUndressOther">> <<set _undressRightTargets to {"Nothing":"rest"}>> <<set $_doText to ($consensual isnot 1 ? "try to " : "")>> <<if $_target.penis is "clothed" or $_target.vagina is "clothed">> <<silently>><<npcUndressText $NPCList[$righttarget] "lower">><</silently>> <<set _undressRightTargets[($_doText + _actionText + " " + $_target.pronouns.his + " " + $_target.clothes.lower.name).toUpperFirst()] to "lower">> <</if>> <<if $_target.chest is "clothed">> <<silently>><<npcUndressText $NPCList[$righttarget] "upper">><</silently>> <<set _undressRightTargets[($_doText + _actionText + " " + $_target.pronouns.his + " " + $_target.clothes.upper.name).toUpperFirst()] to "upper">> <</if>> <</if>> <</if>> <</if>> <</widget>>/* this is for widgets done in a generic way to cover either hand in either old or new style */ <<widget "handsstrugglefreebodypart">> <<if $consensual isnot 1>> <<set _hand to _args[0]>> <<set _style to _args[1]>> <<if _hand is "right">> <<set _default to $rightactiondefault>> <<set _actionVariable to "$rightaction">> <<set _actions to _rightaction>> <<else>> <<set _default to $leftactiondefault>> <<set _actionVariable to "$leftaction">> <<set _actions to _leftaction>> <</if>> <<if (_hand is "left" and $lefttarget isnot "self") or (_hand is "right" and $righttarget isnot "self")>> <<if ["breasts", "nipple", "otheranus"].includes($mouthstate) or ["lefthand", "righthand", "facesit"].includes($mouthuse)>> <<if _style is "old">> | <label><span class="brat">Free your face</span><<radiobutton _actionVariable "freeface" `_default is "freeface" ? 'checked' : ''`>></label> <<else>> <<set _actions["Free your face"] to "freeface">> <</if>> <</if>> <</if>> <</if>> <</widget>> <<widget "combathandhold">> <<set $_heldhand to _args[0]>> <<if $enemytype isnot "beast" and $consensual is 1>> <<if $_heldhand is "righthand" and $righttarget isnot "self">> <<if $NPCList[$righttarget].lefthand is 0 or $NPCList[$righttarget].lefthand is "idle">> <<set _rightaction["Hold " + $NPCList[$righttarget].pronouns.his + " hand"] to "righthandholdnew">> <</if>> <<elseif $_heldhand is "lefthand" and $lefttarget isnot "self">> <<if $NPCList[$lefttarget].righthand is 0 or $NPCList[$lefttarget].righthand is "idle">> <<set _leftaction["Hold " + $NPCList[$lefttarget].pronouns.his + " hand"] to "lefthandholdnew">> <</if>> <</if>> <</if>> <</widget>> <<widget "combathandguide">> <<if $consensual is 1 and ($enemytype is "man" ? $promiscuity : $deviancy) lt 15 and !$promiscuityIgnore>> <!-- Do Nothing --> <<else>> <<set _handGuideOptions to {}>> <<set $_genitals_exposed to $worn.over_lower.vagina_exposed gte 1 and ($worn.lower.vagina_exposed gte 1 or setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt gte 1) and $worn.under_lower.vagina_exposed gte 1 and $worn.genitals.vagina_exposed gte 1>> <<set $_anus_exposed to $worn.over_lower.anus_exposed gte 1 and ($worn.lower.anus_exposed gte 1 or setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt gte 1) and $worn.under_lower.anus_exposed gte 1 and $worn.genitals.anus_exposed gte 1>> <<if $_genitals_exposed>> <<if $player.penisExist or playerHasStrapon() and $penisuse is 0>> <<set _handGuideOptions["your penis"] to "penis">> <</if>> <<if $player.vaginaExist and $vaginause is 0>> <<set _handGuideOptions["your pussy"] to "pussy">> <</if>> <</if>> <<if $anususe is 0 and $_anus_exposed>> <<set _handGuideOptions["your ass"] to "ass">> <</if>> <<if Object.keys(_handGuideOptions).length gt 0>> <<if _args[0] is "left">> <<set _leftaction["Guide " + $NPCList[$lefttarget].pronouns.him + " to"] to "handguide">> <<else>> <<set _rightaction["Guide " + $NPCList[$righttarget].pronouns.him + " to"] to "handguide">> <</if>> <</if>> <</if>> <</widget>> <<widget "removeButtplug">> <<if _args[0] and ($lefttarget is "self" or $options.targetYourself is false or _targetnumber is 1) and playerHasButtPlug() and !playerChastity("anus")>> <<if _args[0] is "left">> <<if ($worn.over_lower.exposed gte 1 and $worn.lower.exposed gte 1) or setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1 or $worn.lower.type.includes("naked") and !["othermouthImminent","othermouth","imminent","doubleimminent","penetrated","doublepenetrated"].includes($anusstate)>> <<set _leftaction["Remove your "+$worn.butt_plug.name] to "removebuttplug">> <</if>> <</if>> <<if _args[0] is "right">> <<if ($worn.over_lower.exposed gte 1 and $worn.lower.exposed gte 1) or setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1 or $worn.lower.type.includes("naked") and !["othermouthImminent","othermouth","imminent","doubleimminent","penetrated","doublepenetrated"].includes($anusstate)>> <<set _rightaction["Remove your "+$worn.butt_plug.name] to "removebuttplug">> <</if>> <</if>> <</if>> <</widget>> <<widget "combatMasturbate">> <<set _stat to $enemytype is "man" ? "promiscuity" : "deviancy">> <<if _args[0] isnot undefined>> <<if ($worn.over_lower.exposed gte 1 and $worn.lower.exposed gte 1) or setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1 or $worn.lower.type.includes("naked")>> <<if _args[0] is "left">> <<if hasSexStat(_stat, 2) and ($lefttarget is "self" or $options.targetYourself is false or _targetnumber is 1)>> <<if $player.penisExist and $penisuse is 0 and !playerChastity("penis")>> <<set _leftaction["Stroke your penis"] to "leftmasturbatepenis">> <</if>> <<if $player.vaginaExist and $vaginause is 0 and !playerChastity("vagina")>> <<set _leftaction["Play with your pussy"] to "leftmasturbatepussy">> <</if>> <<if hasSexStat(_stat, 3) and $awareness gte 200 and $anususe is 0 and !playerChastity("anus")>> <<set _leftaction["Play with your anus"] to "leftmasturbateanus">> <</if>> <</if>> <</if>> <<if _args[0] is "right">> <<if hasSexStat(_stat, 2) and ($righttarget is "self" or $options.targetYourself is false or _targetnumber is 1)>> <<if $player.penisExist and $penisuse is 0 and !playerChastity("penis")>> <<set _rightaction["Stroke your penis"] to "rightmasturbatepenis">> <</if>> <<if $player.vaginaExist and $vaginause is 0 and !playerChastity("vagina")>> <<set _rightaction["Play with your pussy"] to "rightmasturbatepussy">> <</if>> <<if hasSexStat(_stat, 3) and $awareness gte 200 and $anususe is 0 and !playerChastity("anus")>> <<set _rightaction["Play with your anus"] to "rightmasturbateanus">> <</if>> <</if>> <</if>> <</if>> <</if>> <</widget>> <<widget "applyLube">> <<if _args[0] is "left" and ($lefttarget is "self" or $options.targetYourself is false or _targetnumber is 1)>> <<set _items to window.listUniqueCarriedSextoys()>> <<for _i = 0; _i < _items.length; _i++>> <<if _items[_i].type.includes("lube")>> <<set _hasLube to true>> <<break>> <</if>> <</for>> <<if _hasLube is true>> <<if $worn.over_lower.vagina_exposed isnot 0 and $worn.lower.vagina_exposed isnot 0 and $worn.under_lower.vagina_exposed isnot 0 and $worn.genitals.vagina_exposed isnot 0>> <<if !["othermouthentrance","othermouthimminent","othermouth","penetrated","otheranus"].includes($penisstate) and $player.penisExist>> <<set $_penis to (!playerHasStrapon() ? "penis" : "strap-on")>> <<set _leftaction["Lubricate your " + $_penis] to "lubepenis">> <</if>> <<if !["othermouthimminent","othermouth","imminent","penetrated","doubleimminent","doublepenetrated"].includes($vaginastate) and $player.vaginaExist>> <<set _leftaction["Lubricate your pussy"] to "lubepussy">> <</if>> <</if>> <<if $worn.over_lower.anus_exposed isnot 0 and $worn.lower.anus_exposed isnot 0 and $worn.under_lower.anus_exposed isnot 0 and $worn.genitals.anus_exposed isnot 0>> <<if !["othermouthimminent","othermouth","imminent","penetrated","doubleimminent","doublepenetrated"].includes($anusstate)>> <<set _leftaction["Lubricate your anus"] to "lubeanus">> <</if>> <</if>> <</if>> <</if>> <<if _args[0] is "right" and ($righttarget is "self" or $options.targetYourself is false or _targetnumber is 1)>> <<set _items to window.listUniqueCarriedSextoys()>> <<for _i; _i < _items.length; _i++>> <<if _items[_i].type.includes("lube")>> <<set _hasLube to true>> <<break>> <</if>> <</for>> <<if _hasLube is true>> <<if $worn.over_lower.vagina_exposed isnot 0 and $worn.lower.vagina_exposed isnot 0 and $worn.under_lower.vagina_exposed isnot 0 and $worn.genitals.vagina_exposed isnot 0>> <<if !["othermouthentrance","othermouthimminent","othermouth","penetrated","otheranus"].includes($penisstate) and $player.penisExist>> <<set _rightaction["Lubricate your penis"] to "lubepenis">> <</if>> <<if !["othermouthimminent","othermouth","imminent","penetrated","doubleimminent","doublepenetrated"].includes($vaginastate) and $player.vaginaExist>> <<set _rightaction["Lubricate your pussy"] to "lubepussy">> <</if>> <</if>> <<if $worn.over_lower.anus_exposed isnot 0 and $worn.lower.anus_exposed isnot 0 and $worn.under_lower.anus_exposed isnot 0 and $worn.genitals.anus_exposed isnot 0>> <<if !["othermouthimminent","othermouth","imminent","penetrated","doubleimminent","doublepenetrated"].includes($anusstate)>> <<set _rightaction["Lubricate your anus"] to "lubeanus">> <</if>> <</if>> <</if>> <</if>> <</widget>> <<widget "heldSexToy">> <<if _args[0] isnot undefined>> <<if _args[0] is "left">> /* rest */ <<set _leftaction["Rest"] to "heldSexToy">> /* Drop sex toy */ <<set _leftaction["Drop your "+$currentSexToyLeft.name] to "dildoDrop">> /* NPC fuck */ <<if $lefttarget isnot undefined and $lefttarget isnot "self">> <<if $NPCList[$lefttarget].vagina isnot "none" and $NPCList[$lefttarget].vagina is 0 and $currentSexToyLeft.type.includes("dildo")>> <<set _leftaction["Move your "+$currentSexToyLeft.name+" to "+$NPCList[$lefttarget].pronouns.his+" pussy"] to "dildoOtherPussyTease">> <</if>> <<if $NPCList[$lefttarget].penis isnot "none" and $NPCList[$lefttarget].penis is 0 and !npcHasStrapon($lefttarget) and $currentSexToyLeft.type.includes("stroker")>> <<set _leftaction["Move your " + $currentSexToyLeft.name + " to " + $NPCList[$lefttarget].pronouns.his + " penis"] to "strokerOtherPenisTease">> <</if>> <<if $settings.analEnabled and $NPCList[$lefttarget].vagina isnot "none" and $NPCList[$lefttarget].vagina is 0 and $currentSexToyLeft.type.includes("dildo")>> <<set _leftaction["Move your "+$currentSexToyLeft.name+" to "+$NPCList[$lefttarget].pronouns.his+" anus"] to "dildoOtherAnusTease">> <</if>> <<if $settings.analEnabled and $NPCList[$lefttarget].penis isnot "none" and $NPCList[$lefttarget].penis is 0 and $currentSexToyLeft.type.includes("dildo")>> <<set _leftaction["Move your "+$currentSexToyLeft.name+" to "+$NPCList[$lefttarget].pronouns.his+" anus"] to "dildoOtherAnusTease">> <</if>> <</if>> /* Masturbate */ <<if $worn.lower.state isnot setup.clothes.lower[clothesIndex('lower', $worn.lower)].state_base or setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1 or $worn.lower.type.includes("naked")>> <<if hasSexStat("promiscuity", 3) and ($lefttarget is "self" or $options.targetYourself is false or _targetnumber is 1)>> <<if $player.vaginaExist and $currentSexToyLeft.type.includes("dildo")>> <<set _leftaction["Move your "+$currentSexToyLeft.name+" to your pussy"] to "dildoSelfPussyEntrance">> <</if>> <<if $settings.analEnabled and $currentSexToyLeft.type.includes("dildo")>> <<set _leftaction["Move your "+$currentSexToyLeft.name+" to your anus"] to "dildoSelfAnusEntrance">> <</if>> <<if $player.penisExist and $currentSexToyLeft.type.includes("stroker")>> <<set _leftaction["Move your "+$currentSexToyLeft.name+" to your penis"] to "strokerSelfPenisEntrance">> <</if>> <</if>> <</if>> <</if>> <<if _args[0] is "right">> /* rest */ <<set _rightaction["Rest"] to "heldSexToy">> /* Drop sex toy */ <<set _rightaction["Drop your "+$currentSexToyRight.name] to "dildoDrop">> /* NPC fuck */ <<if $righttarget isnot undefined and $righttarget isnot "self">> <<if $NPCList[$righttarget].vagina isnot "none" and $NPCList[$righttarget].vagina is 0 and $currentSexToyRight.type.includes("dildo")>> <<set _rightaction["Move your "+$currentSexToyRight.name+" to "+$NPCList[$righttarget].pronouns.his+" pussy"] to "dildoOtherPussyTease">> <</if>> <<if $NPCList[$righttarget].penis isnot "none" and $NPCList[$righttarget].penis is 0 and !npcHasStrapon($righttarget) and $currentSexToyRight.type.includes("stroker")>> <<set _rightaction["Move your " + $currentSexToyRight.name + " to " + $NPCList[$righttarget].pronouns.his + " penis"] to "strokerOtherPenisTease">> <</if>> <<if $settings.analEnabled and $NPCList[$righttarget].vagina isnot "none" and $NPCList[$righttarget].vagina is 0 and $currentSexToyRight.type.includes("dildo")>> <<set _rightaction["Move your "+$currentSexToyRight.name+" to "+$NPCList[$righttarget].pronouns.his+" anus"] to "dildoOtherAnusTease">> <</if>> <<if $settings.analEnabled and $NPCList[$righttarget].penis isnot "none" and $NPCList[$righttarget].penis is 0 and $currentSexToyRight.type.includes("dildo")>> <<set _rightaction["Move your "+$currentSexToyRight.name+" to "+$NPCList[$righttarget].pronouns.his+" anus"] to "dildoOtherAnusTease">> <</if>> <</if>> /* Masturbate */ <<if $worn.lower.state isnot setup.clothes.lower[clothesIndex('lower', $worn.lower)].state_base or setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1 or $worn.lower.type.includes("naked")>> <<if hasSexStat("promiscuity", 3) and ($righttarget is "self" or $options.targetYourself is false or _targetnumber is 1)>> <<if $player.vaginaExist and $currentSexToyRight.type.includes("dildo")>> <<set _rightaction["Move your "+$currentSexToyRight.name+" to your pussy"] to "dildoSelfPussyEntrance">> <</if>> <<if $settings.analEnabled and $currentSexToyRight.type.includes("dildo")>> <<set _rightaction["Move your "+$currentSexToyRight.name+" to your anus"] to "dildoSelfAnusEntrance">> <</if>> <<if $player.penisExist and $currentSexToyRight.type.includes("stroker")>> <<set _rightaction["Move your "+$currentSexToyRight.name+" to your penis"] to "strokerSelfPenisEntrance">> <</if>> <</if>> <</if>> <</if>> <</if>> <</widget>> <<widget "dildoSelfPussyEntrance">> <<if _args[0] isnot undefined>> <<if _args[0] is "left">> <<set $_genitals_exposed to $worn.over_lower.vagina_exposed gte 1 and ($worn.lower.vagina_exposed gte 1 or setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt gte 1) and $worn.under_lower.vagina_exposed gte 1 and $worn.genitals.vagina_exposed gte 1>> <<if hasSexStat("promiscuity", 3) and ($lefttarget is "self" or $options.targetYourself is false or _targetnumber is 1)>> <<if $_genitals_exposed and $vaginause is 0>> <<set _leftaction["Push your " + $currentSexToyLeft.name + " in"] to "dildoSelfPussy">> <</if>> <<if $_genitals_exposed and $anususe is 0>> <<set _leftaction["Move your "+$currentSexToyLeft.name+" to your anus"] to "dildoSelfAnusEntrance">> <</if>> <</if>> <<set _leftaction["Tease your pussy"] to "dildoSelfPussyEntrance">> <<set _leftaction["Drop your " + $currentSexToyLeft.name] to "dildoDrop">> <</if>> <<if _args[0] is "right">> <<set $_genitals_exposed to $worn.over_lower.vagina_exposed gte 1 and ($worn.lower.vagina_exposed gte 1 or setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt gte 1) and $worn.under_lower.vagina_exposed gte 1 and $worn.genitals.vagina_exposed gte 1>> <<if hasSexStat("promiscuity", 3) and ($righttarget is "self" or $options.targetYourself is false or _targetnumber is 1)>> <<if $_genitals_exposed and $vaginause is 0>> <<set _rightaction["Push your " + $currentSexToyRight.name + " in"] to "dildoSelfPussy">> <</if>> <<if $_genitals_exposed and $anususe is 0>> <<set _rightaction["Move your "+$currentSexToyRight.name+" to your anus"] to "dildoSelfAnusEntrance">> <</if>> <</if>> <<set _rightaction["Tease your pussy"] to "dildoSelfPussyEntrance">> <<set _rightaction["Drop your " + $currentSexToyRight.name] to "dildoDrop">> <</if>> <</if>> <</widget>> <<widget "dildoSelfAnusEntrance">> <<if _args[0] isnot undefined>> <<if _args[0] is "left">> <<set $_genitals_exposed to $worn.over_lower.vagina_exposed gte 1 and ($worn.lower.vagina_exposed gte 1 or setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt gte 1) and $worn.under_lower.vagina_exposed gte 1 and $worn.genitals.vagina_exposed gte 1>> <<set $_anus_exposed to $worn.over_lower.anus_exposed gte 1 and ($worn.lower.anus_exposed gte 1 or setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt gte 1) and $worn.under_lower.anus_exposed gte 1 and $worn.genitals.anus_exposed gte 1>> <<if hasSexStat("promiscuity", 3) and ($lefttarget is "self" or $options.targetYourself is false or _targetnumber is 1)>> <<if $_anus_exposed and $anususe is 0>> <<set _leftaction["Push your " + $currentSexToyLeft.name + " in"] to "dildoSelfAnus">> <</if>> <<if $_genitals_exposed and $vaginause is 0>> <<set _leftaction["Move your "+$currentSexToyLeft.name+" to your pussy"] to "dildoSelfPussyEntrance">> <</if>> <</if>> <<set _leftaction["Tease your anus"] to "dildoSelfAnusEntrance">> <<set _leftaction["Drop your " + $currentSexToyLeft.name] to "dildoDrop">> <</if>> <<if _args[0] is "right">> <<set $_genitals_exposed to $worn.over_lower.vagina_exposed gte 1 and ($worn.lower.vagina_exposed gte 1 or setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt gte 1) and $worn.under_lower.vagina_exposed gte 1 and $worn.genitals.vagina_exposed gte 1>> <<set $_anus_exposed to $worn.over_lower.anus_exposed gte 1 and ($worn.lower.anus_exposed gte 1 or setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt gte 1) and $worn.under_lower.anus_exposed gte 1 and $worn.genitals.anus_exposed gte 1>> <<if hasSexStat("promiscuity", 3) and ($righttarget is "self" or $options.targetYourself is false or _targetnumber is 1)>> <<if $_anus_exposed and $anususe is 0>> <<set _rightaction["Push your " + $currentSexToyRight.name + " in"] to "dildoSelfAnus">> <</if>> <<if $_genitals_exposed and $vaginause is 0>> <<set _rightaction["Move your "+$currentSexToyRight.name+" to your pussy"] to "dildoSelfPussyEntrance">> <</if>> <</if>> <<set _rightaction["Tease your anus"] to "dildoSelfAnusEntrance">> <<set _rightaction["Drop your " + $currentSexToyRight.name] to "dildoDrop">> <</if>> <</if>> <</widget>> <<widget "strokerSelfPenisEntrance">> <<if _args[0] isnot undefined>> <<if _args[0] is "left">> <<set $_genitals_exposed to $worn.over_lower.vagina_exposed gte 1 and ($worn.lower.vagina_exposed gte 1 or setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt gte 1) and $worn.under_lower.vagina_exposed gte 1 and $worn.genitals.vagina_exposed gte 1>> <<if hasSexStat("promiscuity", 3) and ($lefttarget is "self" or $options.targetYourself is false or _targetnumber is 1)>> <<if $_genitals_exposed and $penisuse is 0>> <<set _leftaction["Penetrate your " + $currentSexToyLeft.name] to "strokerSelfPenis">> <</if>> <</if>> <<set _leftaction["Tease your penis"] to "strokerSelfPenisEntrance">> <<set _leftaction["Drop your " + $currentSexToyLeft.name] to "dildoDrop">> <</if>> <<if _args[0] is "right">> <<set $_genitals_exposed to $worn.over_lower.vagina_exposed gte 1 and ($worn.lower.vagina_exposed gte 1 or setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt gte 1) and $worn.under_lower.vagina_exposed gte 1 and $worn.genitals.vagina_exposed gte 1>> <<if hasSexStat("promiscuity", 3) and ($righttarget is "self" or $options.targetYourself is false or _targetnumber is 1)>> <<if $_genitals_exposed and $penisuse is 0>> <<set _rightaction["Penetrate your " + $currentSexToyRight.name] to "strokerSelfPenis">> <</if>> <</if>> <<set _rightaction["Tease your penis"] to "strokerSelfPenisEntrance">> <<set _rightaction["Drop your " + $currentSexToyRight.name] to "dildoDrop">> <</if>> <</if>> <</widget>><<widget "effectshandsclothes">> /* Unified each clothing action for both hands. To add conditionals for both hands, use: if $leftaction is $rightaction as a block inside */ <<if $leftaction is "over_upper" or $rightaction is "over_upper">> <<if $leftaction is "over_upper">><<set $leftaction to 0>><<set $leftactiondefault to "rest">><</if>> <<if $rightaction is "over_upper">><<set $rightaction to 0>><<set $rightactiondefault to "rest">><</if>> <<if $worn.over_upper.name is "naked">> You clutch the tattered remains of your clothing. <<elseif $worn.over_upper.open is 1>> <<set $worn.over_upper.exposed to 2>><<set $worn.over_upper.state_top to "midriff">> <<if $worn.upper.exposed lt 2>> You pull down your $worn.over_upper.name. <<elseif $player.breastsize gte 3>> You pull down your $worn.over_upper.name <span class="lewd">and your <<breasts>> flop out.</span> <<else>> You pull down your $worn.over_upper.name, <span class="lewd">exposing your <<breasts>>.</span> <</if>> <<overupperstrip>> <<else>> <<set $worn.over_upper.exposed to 2>><<set $worn.over_upper.state to "chest">> <<if $worn.upper.exposed lt 2>> You pull up your $worn.over_upper.name. <<elseif $player.breastsize gte 3>> You pull up your $worn.over_upper.name <span class="lewd">and your <<breasts>> flop out.</span> <<else>> You pull up your $worn.over_upper.name, <span class="lewd">exposing your <<breasts>>.</span> <</if>> <<overupperstrip>> <</if>> <</if>> <<if $leftaction is "upper" or $rightaction is "upper">> <<if $leftaction is "upper">><<set $leftaction to 0>><<set $leftactiondefault to "rest">><</if>> <<if $rightaction is "upper">><<set $rightaction to 0>><<set $rightactiondefault to "rest">><</if>> <<if $worn.upper.name is "naked">> You clutch the tattered remains of your clothing. <<elseif $worn.upper.open is 1>> <<set $worn.upper.exposed to 2>><<set $worn.upper.state_top to "midriff">> <<if $player.breastsize gte 3>> You pull down your $worn.upper.name <span class="lewd">and your <<breasts>> flop out.</span> <<else>> You pull down your $worn.upper.name, <span class="lewd">exposing your <<breasts>>.</span> <</if>> <<upperstrip>> <<else>> <<set $worn.upper.exposed to 2>><<set $worn.upper.state to "chest">> <<if $player.breastsize gte 3>> You pull up your $worn.upper.name <span class="lewd">and your <<breasts>> flop out.</span> <<else>> You pull up your $worn.upper.name, <span class="lewd">exposing your <<breasts>>.</span> <</if>> <<upperstrip>> <</if>> <</if>> <<if $leftaction is "under_upper" or $rightaction is "under_upper">> <<if $leftaction is "under_upper">><<set $leftaction to 0>><<set $leftactiondefault to "rest">><</if>> <<if $rightaction is "under_upper">><<set $rightaction to 0>><<set $rightactiondefault to "rest">><</if>> <<if $worn.under_upper.name is "naked">> You clutch the tattered remains of your clothing. <<elseif $worn.under_upper.open is 1>> <<set $worn.under_upper.exposed to 2>><<set $worn.under_upper.state_top to "midriff">> <<if $player.breastsize gte 3>> You pull down your $worn.under_upper.name <span class="lewd">and your <<breasts>> flop out.</span> <<else>> You pull down your $worn.under_upper.name, <span class="lewd">exposing your <<breasts>>.</span> <</if>> <<underupperstrip>> <<else>> <<set $worn.under_upper.exposed to 2>><<set $worn.under_upper.state to "chest">> <<if $player.breastsize gte 3>> You pull up your $worn.under_upper.name <span class="lewd">and your <<breasts>> flop out.</span> <<else>> You pull up your $worn.under_upper.name, <span class="lewd">exposing your <<breasts>>.</span> <</if>> <<underupperstrip>> <</if>> <</if>> /* Todo: over_lower here, but I don't know what the conditions should be. Please remove this comment when it's been fixed. */ <<if $leftaction is "lower" or $rightaction is "lower">> <<if $leftaction is "lower">><<set $leftaction to 0>><<set $leftactiondefault to "rest">><</if>> <<if $rightaction is "lower">><<set $rightaction to 0>><<set $rightactiondefault to "rest">><</if>> <<set $worn.lower.vagina_exposed to 1>><<set $worn.lower.anus_exposed to 1>><<set $worn.lower.exposed to 2>> <<if $worn.lower.name is "naked">> You clutch the tattered remains of your clothing. <<elseif setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1>> <<set $worn.lower.skirt_down to 0>> You lift up your $worn.lower.name, <span class="lewd">exposing your <<undies>>.</span> <<lowerstrip>> <<else>> <<set $worn.lower.state to "thighs">> You pull down your $worn.lower.name, <span class="lewd">exposing your <<undies>>.</span> <<lowerstrip>> <</if>> <</if>> <<if $leftaction is "under_lower" or $rightaction is "under_lower">> <<if $leftaction is "under_lower">><<set $leftaction to 0>><<set $leftactiondefault to "rest">><</if>> <<if $rightaction is "under_lower">><<set $rightaction to 0>><<set $rightactiondefault to "rest">><</if>> <<set $worn.under_lower.anus_exposed to 1>><<set $worn.under_lower.vagina_exposed to 1>><<set $worn.under_lower.exposed to 2>> <<set $worn.under_lower.state to "thighs">> /* Strapon code is here, if needed to move to the genital-clothing section */ /*<<if playerHasStrapon()>> <<if $playerPenisSizeBackup isnot undefined>> <<set $player.penissize to $playerPenisSizeBackup>> <</if>> <</if>>*/ <<if $worn.under_lower.name is "naked">> You clutch the tattered remains of your clothing. <<elseif $worn.lower.exposed gte 2>> You pull down your $worn.under_lower.name, <span class="lewd">exposing your <<genitals>>.</span> <<underlowerstrip>> <<else>> You pull down your $worn.under_lower.name under your $worn.lower.name. <<underlowerstrip>> <</if>> <</if>> <<if $leftaction is "under_lower_to_the_side" or $rightaction is "under_lower_to_the_side">> <<if $leftaction is "under_lower_to_the_side">><<set $leftaction to 0>><<set $leftactiondefault to "rest">><</if>> <<if $rightaction is "under_lower_to_the_side">><<set $rightaction to 0>><<set $rightactiondefault to "rest">><</if>> <<set $worn.under_lower.anus_exposed to 1>><<set $worn.under_lower.vagina_exposed to 1>><<set $worn.under_lower.exposed to 2>> <<set $worn.under_lower.state to "totheside">> <<if $worn.under_lower.name is "naked">> You clutch the tattered remains of your clothing. <<elseif $worn.lower.exposed gte 2>> You pull your $worn.under_lower.name to the side, <span class="lewd">exposing your <<genitals>>.</span> <<else>> You pull your $worn.under_lower.name to the side under your $worn.lower.name. <</if>> <</if>> <<if $leftaction is "mask" or $rightaction is "mask">> <<if $leftaction is "mask">><<set $leftaction to 0>><<set $leftactiondefault to "rest">><</if>> <<if $rightaction is "mask">><<set $rightaction to 0>><<set $rightactiondefault to "rest">><</if>> <<if $worn.face.name is "naked">> You clutch the tattered remains of your mask. <<else>> You pull down your $worn.face.name, <span class="lewd">revealing your face.</span> <</if>> <<facestrip>> <</if>> <</widget>> <<widget "effectsspray">> <<if $leftaction is "spray" and $rightaction is "spray">> <<set $leftactiondefault to "lefthit">><<set $rightactiondefault to "righthit">><<set $leftaction to 0>><<set $rightaction to 0>> <<if $spray gte 2>> <<set _baseDamage to 400>> <<set $spraystat += 2>><<spray -2>><<set $speechspray to 1>> <<if $enemytype is "beast">> You hold the spray in both hands and unload a full blast in the <<beasttypes>> face. It whimpers. <<elseif $NPCList[0].fullDescription is "Ivory Wraith">> You hold the spray in both hands and unload a full blast in the figure's face. <span class="red">It doesn't even blink.</span> <<elseif $enemyno gte 2>> You hold the spray in both hands, and unload a full blast at the <<group>>. They clutch their faces. <<if !$npc.includesAny("Eden", "Morgan", "Kylar", "Gwylan") and !$abomination and !["island"].includes($location)>> <<ggcrime "assault">><<crimeUp 500 "assault">> <</if>> <<else>> You hold the spray in both hands, and unload a full blast at the assailant. <<if $NPCList[0].traits.includes("drug resistant")>> <span class="blue"><<He>> recoils, but seems to have a resistance.</span> <<else>> <<He>> clutches <<his>> face. <</if>> <<if !$npc.includesAny("Eden", "Morgan", "Kylar", "Gwylan") and !$abomination and !["island"].includes($location)>> <<ggcrime "assault">><<crimeUp 500 "assault">> <</if>> <</if>> <<effectssprayFree>> <<elseif $spray gte 1>> <<set _baseDamage to 200>> <<set $spraystat += 1>><<spray -1>><<set $speechspray to 1>> <<if $enemytype is "beast">> You spray the <<beasttype>> in the face. It whimpers. <<elseif $NPCList[0].fullDescription is "Ivory Wraith">> You spray the figure in the face. <span class="red">It doesn't even blink.</span> <<elseif $enemyno gte 2>> You spray the <<group>>. They clutch their faces. <<if !$npc.includesAny("Eden", "Morgan", "Kylar", "Gwylan") and !$abomination and !["island"].includes($location)>> <<ggcrime "assault">><<crimeUp 500 "assault">> <</if>> <<else>> You spray the assailant. <<if $NPCList[0].traits.includes("drug resistant")>> <span class="blue"><<He>> recoils, but seems to have a resistance.</span> <<else>> <<He>> clutches <<his>> face. <</if>> <<if !$npc.includesAny("Eden", "Morgan", "Kylar", "Gwylan") and !$abomination and !["island"].includes($location)>> <<ggcrime "assault">><<crimeUp 500 "assault">> <</if>> <</if>> <<effectssprayFree>> <<else>> <<if $enemytype is "beast">> You try to spray the <<beasttype>> in the face. Nothing comes out. <<elseif $enemyno gte 2>> You try to spray the <<group>>. Nothing comes out. <<else>> You try to spray the assailant. Nothing comes out. <</if>> <</if>> <<elseif $leftaction is "spray">> <<set $leftactiondefault to "lefthit">><<set $leftaction to 0>> <<if $spray gte 1>> <<set _baseDamage to 200>> <<set $spraystat += 1>><<spray -1>><<set $speechspray to 1>> <<if $enemytype is "beast">> You spray the <<beasttype>> in the face. It whimpers. <<elseif $NPCList[0].fullDescription is "Ivory Wraith">> You spray the figure in the face. <span class="red">It doesn't even blink.</span> <<elseif $enemyno gte 2>> You spray the <<group>>. They clutch their faces. <<if !$npc.includesAny("Eden", "Morgan", "Kylar", "Gwylan") and !$abomination and !["island"].includes($location)>> <<ggcrime "assault">><<crimeUp 500 "assault">> <</if>> <<else>> You spray the assailant. <<if $NPCList[0].traits.includes("drug resistant")>> <span class="blue"><<He>> recoils, but seems to have a resistance.</span> <<else>> <<He>> clutches <<his>> face. <</if>> <<if !$npc.includesAny("Eden", "Morgan", "Kylar", "Gwylan") and !$abomination and !["island"].includes($location)>> <<ggcrime "assault">><<crimeUp 500 "assault">> <</if>> <</if>> <<effectssprayFree>> <<else>> <<if $enemytype is "beast">> You try to spray the <<beasttype>> in the face. Nothing comes out. <<elseif $enemyno gte 2>> You try to spray the <<group>>. Nothing comes out. <<else>> You try to spray the assailant. Nothing comes out. <</if>> <</if>> <<elseif $rightaction is "spray">> <<set $rightactiondefault to "righthit">><<set $rightaction to 0>> <<if $spray gte 1>> <<set _baseDamage to 200>> <<set $spraystat += 1>><<spray -1>><<set $speechspray to 1>> <<if $enemytype is "beast">> You spray the <<beasttype>> in the face. It whimpers. <<elseif $NPCList[0].fullDescription is "Ivory Wraith">> You spray the figure in the face. <span class="red">It doesn't even blink.</span> <<elseif $enemyno gte 2>> You spray the <<group>>. They clutch their faces. <<if !$npc.includesAny("Eden", "Morgan", "Kylar", "Gwylan") and !$abomination and !["island"].includes($location)>> <<ggcrime "assault">><<crimeUp 500 "assault">> <</if>> <<else>> You spray the assailant. <<if $NPCList[0].traits.includes("drug resistant")>> <span class="blue"><<He>> recoils, but seems to have a resistance.</span> <<else>> <<He>> clutches <<his>> face. <</if>> <<if !$npc.includesAny("Eden", "Morgan", "Kylar", "Gwylan") and !$abomination and !["island"].includes($location)>> <<ggcrime "assault">><<crimeUp 500 "assault">> <</if>> <</if>> <<effectssprayFree>> <<else>> <<if $enemytype is "beast">> You try to spray the <<beasttype>> in the face. Nothing comes out. <<elseif $enemyno gte 2>> You try to spray the <<group>>. Nothing comes out. <<else>> You try to spray the assailant. Nothing comes out. <</if>> <</if>> <</if>> <<if _baseDamage>> <<set _totalDamage to 0>> <<set _npctodefeat to []>> <<for _npctodamage to 0; _npctodamage lt $enemynomax; _npctodamage++>> <<if $NPCList[_npctodamage].active is "active" and $NPCList[_npctodamage].stance isnot "defeated" and (!$fightTargets or $fightTargets.includes(_npctodamage))>> <<set _enemydivide to $fightTargets ? $enemyno-$fightTargets.length : $enemyno>> /* Divide damage by all current active enemies. */ <<set _thedamage to _baseDamage/_enemydivide>> <<if $NPCList[_npctodamage].fullDescription is "Ivory Wraith">> <<set _thedamage to (_thedamage / 4)>> <<elseif $NPCList[_npctodamage].traits.includes("drug resistant")>> <<set _thedamage to (_thedamage / 3)>> <</if>> <<set $NPCList[_npctodamage].health -= _thedamage>> <<set _totalDamage += _thedamage>> <<if $enemyno gte 2 and $NPCList[_npctodamage].health lte 0>> <<set _npctodefeat.push(_npctodamage)>> <</if>> <</if>> <</for>> <<for $_defeatcontroller to 0; $_defeatcontroller lt _npctodefeat.length; $_defeatcontroller++>> <<if $enemyno gte 2>> <<defeatnpc _npctodefeat[$_defeatcontroller]>> <</if>> <</for>> <<set $enemyhealth -= _totalDamage>> <</if>> <</widget>> <<widget "effectssprayFree">><<silently>> <<if $prof_spray_message>> <<set $_text_output to "Your spray was accurate. You didn't need to use a full cartridge, saving ammo.">> <<unset $prof_spray_message>> <</if>> <</silently>><<if $_text_output>><span class="green"><<print $_text_output>></span><</if>> <</widget>> <<widget "effectssteal">> <<if $leftaction is "steal" and $rightaction is "steal" and $lefttarget is $righttarget>> <<set $leftaction to 0>><<set $rightaction to 0>> <<set $leftactiondefault to "steal">><<set $rightactiondefault to "steal">> <<if $easySteal isnot 1>><<set $skulduggerydifficulty += 400>><</if>><<skulduggerycheck>> <<unset $stealstateleft>><<unset $stealstateright>> <<personselect $lefttarget>> <<if $skulduggerysuccess is 1>> <<set $stealtarget += $lefttarget>><<set $stealdifficulty += 0.2>> You rummage through the <<persons>> <<wallet $lefttarget>>. <<encountersteal>> <<set $leftactiondefault to "rest">><<set $rightactiondefault to "rest">> <<else>> <<brat 30 $lefttarget>><<set $speechsteal to 1>> You rummage inside the <<persons>> <<wallet $lefttarget>>. <<He>> notices and shifts <<his>> valuables away from your hands. <</if>> <</if>> <<if $leftaction is "steal">> <<set $leftactiondefault to "steal">><<set $leftaction to 0>><<skulduggerycheck>> <<personselect $lefttarget>> <<if $skulduggerysuccess is 1>> <<if $stealstateleft is undefined>> <<set $stealstateleft to 0>> You run your hand over the <<persons>> skin, until it rests on <<his>> <<wallet $lefttarget>>. <<elseif $stealstateleft is 0>> <<set $stealstateleft to 1>> You open the <<persons>> <<wallet $lefttarget>>. <<elseif $stealstateleft is 1>> <<set $stealstateleft to 2>> You rummage through the <<persons>> <<wallet $lefttarget>>. <<else>> <<unset $stealstateleft>><<set $stealtarget += $lefttarget>><<set $stealdifficulty += 0.2>> You sneak your hand into the <<persons>> <<wallet $lefttarget>>. <<encountersteal>><<set $leftactiondefault to "rest">> <</if>> <<else>> <<brat 30 $lefttarget>><<set $speechsteal to 1>> <<if $stealstateleft is undefined>> You run your hand over the <<persons>> skin, until it rests on <<his>> <<wallet $lefttarget>>. <<He>> isn't fooled. <<He>> shifts <<his>> valuables away from you. <<elseif $stealstateleft is 0>> You try to open the <<persons>> <<wallet $lefttarget>>. <<He>> notices and shifts <<his>> valuables away. <<elseif $stealstateleft is 1>> You rummage through the <<persons>> <<wallet $lefttarget>>. <<He>> notices and shifts <<his>> valuables away. <<else>> You sneak your hand into the <<persons>> <<wallet $lefttarget>>. <<He>> notices and shifts <<his>> valuables away. <</if>> <<unset $stealstateleft>> <</if>> <</if>> <<if $rightaction is "steal">> <<set $rightaction to 0>><<set $rightactiondefault to "steal">><<skulduggerycheck>> <<personselect $righttarget>> <<if $skulduggerysuccess is 1>> <<if $stealstateright is undefined>> <<set $stealstateright to 0>> You run your hand over the <<persons>> skin, until it rests on <<his>> <<wallet $righttarget>>. <<elseif $stealstateright is 0>> <<set $stealstateright to 1>> You open the <<persons>> <<wallet $righttarget>>. <<elseif $stealstateright is 1>> <<set $stealstateright to 2>> You rummage through the <<persons>> <<wallet $righttarget>>. <<else>> <<unset $stealstateright>><<set $stealtarget += $righttarget>><<set $stealdifficulty += 0.2>> You sneak your hand into the <<persons>> <<wallet $righttarget>>. <<encountersteal>><<set $rightactiondefault to "rest">> <</if>> <<else>> <<brat 30 $righttarget>><<set $speechsteal to 1>> <<if $stealstateright is undefined>> You run your hand over the <<persons>> skin, until it rests on <<his>> <<wallet $righttarget>>. <<He>> isn't fooled. <<He>> shifts <<his>> valuables away from you. <<elseif $stealstateright is 0>> You try to open the <<persons>> <<wallet $righttarget>>. <<He>> notices and shifts <<his>> valuables away. <<elseif $stealstateright is 1>> You rummage through the <<persons>> <<wallet $righttarget>>. <<He>> notices and shifts <<his>> valuables away. <<else>> You sneak your hand into the <<persons>> <<wallet $righttarget>>. <<He>> notices and shifts <<his>> valuables away. <</if>> <<unset $stealstateright>> <</if>> <</if>> <</widget>> <<widget "effectspenwhack">> <!--todo: maybe add some botched tattoos if pen is too close --> <<if $leftaction is "penwhack">> <<set $leftaction to 0>> <<set $_target to $NPCList[$lefttarget]>> <<if $_target.lefthand and ($_target.lefthand is "pen" or $_target.lefthand.startsWith("pen_"))>> You whack the <<print $_target.lefttool>> from the <<personselect $lefttarget>><<persons>> hand. <<if $_target.fullDescription is "Sydney" or ($_target.fullDescription is "Kylar" and C.npc.Kylar.rage lte 35) or $_target.type is "plant">> <<He>> pouts at you. <<brat 2 $lefttarget>> <<else>> Anger flashes across <<his>> face. <<brat 5 $lefttarget>> <</if>> <<brat 5 $lefttarget>><<set $_target.lefthand to 0>><<set $_target.lefttool to 0>> <<elseif $_target.righthand and ($_target.righthand is "pen" or $_target.righthand.startsWith("pen_"))>> You whack the <<print $_target.righttool>> from the <<personselect $lefttarget>><<persons>> hand. <<if $_target.fullDescription is "Sydney" or ($_target.fullDescription is "Kylar" and C.npc.Kylar.rage lte 35) or $_target.type is "plant">> <<He>> pouts at you. <<brat 2 $lefttarget>> <<else>> Anger flashes across <<his>> face. <<brat 5 $lefttarget>> <</if>> <<brat 5 $lefttarget>><<set $_target.righthand to 0>><<set $_target.righttool to 0>> <</if>> <</if>> <<if $rightaction is "penwhack">> <<set $rightaction to 0>> <<set $_target to $NPCList[$righttarget]>> <<if $_target.lefthand and ($_target.lefthand is "pen" or $_target.lefthand.startsWith("pen_"))>> You whack the <<print $_target.lefttool>> from the <<personselect $righttarget>><<persons>> hand. <<if $_target.fullDescription is "Sydney" or ($_target.fullDescription is "Kylar" and C.npc.Kylar.rage lte 35) or $_target.type is "plant">> <<He>> pouts at you. <<brat 2 $righttarget>> <<else>> Anger flashes across <<his>> face. <<brat 5 $righttarget>> <</if>> <<brat 5 $righttarget>><<set $_target.lefthand to 0>><<set $_target.lefttool to 0>> <<elseif typeof($_target.righthand) is "string" and ($_target.righthand is "pen" or $_target.righthand.startsWith("pen_"))>> You whack the <<print $_target.righttool>> from the <<personselect $righttarget>><<persons>> hand. <<if $_target.fullDescription is "Sydney" or ($_target.fullDescription is "Kylar" and C.npc.Kylar.rage lte 35) or $_target.type is "plant">> <<He>> pouts at you. <<brat 2 $righttarget>> <<else>> Anger flashes across <<his>> face. <<brat 5 $righttarget>> <</if>> <<brat 5 $righttarget>><<set $_target.righthand to 0>><<set $_target.righttool to 0>> <</if>> <</if>> <</widget>> <<widget "effectsshacklewhack">> <<if $leftaction is "shacklewhack">> <<set $leftaction to 0>> <<personselect $lefttarget>> <<set $_target to $NPCList[$lefttarget]>> <<if $_target.lefthand is "shackle_entrance" or $_target.lefthand is "shackle_imminent">> <<combat-reset-hand "left">> <<elseif $_target.righthand is "shackle_entrance" or $_target.righthand is "shackle_imminent">> <<combat-reset-hand "right">> <</if>> You whack the shackles from <<combatpersons>> hands. <<He>> clenches <<his>> fist. <<brat 10 $lefttarget>> <</if>> <<if $rightaction is "shacklewhack">> <<set $rightaction to 0>> <<personselect $righttarget>> <<set $_target to $NPCList[$righttarget]>> <<if $_target.lefthand is "shackle_entrance" or $_target.lefthand is "shackle_imminent">> <<combat-reset-hand "left">> <<elseif $_target.righthand is "shackle_entrance" or $_target.righthand is "shackle_imminent">> <<combat-reset-hand "right">> <</if>> You whack the shackles from <<combatpersons>> hands. <<He>> clenches <<his>> fist. <<brat 10 $righttarget>> <</if>> <</widget>> <<widget "effectshypnosiswhack">> <<if $leftaction is "hypnosiswhack">> <<set $leftaction to 0>> <<personselect $lefttarget>> <<set $_target to $NPCList[$lefttarget]>> <<if $_target.lefthand and ($_target.lefthand is "hypnosis" or $_target.lefthand.startsWith("hypnosis_"))>> You whack the <<print $_target.lefttool>> from <<personselect $lefttarget>><<combatpersons>> hand. <<combat-reset-hand "left">><<set $_target.lefttool to 0>> <<elseif $_target.righthand and ($_target.righthand is "hypnosis" or $_target.righthand.startsWith("hypnosis_"))>> You whack the <<print $_target.righttool>> from <<personselect $lefttarget>><<combatpersons>> hand. <<combat-reset-hand "right">><<set $_target.righttool to 0>> <</if>> <<brat 10 $lefttarget>> <</if>> <<if $rightaction is "hypnosiswhack">> <<set $rightaction to 0>> <<personselect $righttarget>> <<set $_target to $NPCList[$righttarget]>> <<if $_target.lefthand is "hypnosis" or $_target.lefthand and $_target.lefthand.startsWith("hypnosis_")>> You whack the <<print $_target.lefttool>> from <<personselect $righttarget>><<combatpersons>> hand. <<combat-reset-hand "left">><<set $_target.lefttool to 0>> <<elseif $_target.righthand is "hypnosis" or $_target.righthand and $_target.righthand.startsWith("hypnosis_")>> You whack the <<print $_target.righttool>> from <<personselect $righttarget>><<combatpersons>> hand. <<combat-reset-hand "right">><<set $_target.righttool to 0>> <</if>> <<brat 10 $righttarget>> <</if>> <</widget>> <<widget "effectsdildowhack">> <<if $leftaction is "dildowhack">> <<set $leftaction to 0>> <<set $_target to $NPCList[$lefttarget]>> <<if typeof($_target.lefthand) is "string" and $_target.lefthand.includes("dildo")>> You whack the <<print $_target.lefttool>> from the <<personselect $lefttarget>><<persons>> hand. <<if $_target.fullDescription is "Sydney" or ($_target.fullDescription is "Kylar" and C.npc.Kylar.rage lte 35) or $_target.type is "plant">> <<He>> pouts at you. <<brat 2 $lefttarget>> <<elseif $consensual is 1>> Disappointment flashes across <<his>> face. <<brat 2 $lefttarget>> <<else>> Anger flashes across <<his>> face. <<brat 5 $lefttarget>> <</if>> <<brat 5 $lefttarget>><<set $_target.lefthand to 0>><<set $_target.lefttool to 0>> <<elseif typeof($_target.righthand) is "string" and $_target.righthand.includes("dildo")>> You whack the <<print $_target.righttool>> from the <<personselect $lefttarget>><<persons>> hand. <<if $_target.fullDescription is "Sydney" or ($_target.fullDescription is "Robin" and C.npc.Robin.rage lte 35) or $_target.type is "plant">> <<He>> pouts at you. <<brat 2 $lefttarget>> <<elseif $consensual is 1>> Disappointment flashes across <<his>> face. <<else>> Anger flashes across <<his>> face. <<brat 5 $lefttarget>> <</if>> <<brat 5 $lefttarget>><<set $_target.righthand to 0>><<set $_target.righttool to 0>> <</if>> <</if>> <<if $rightaction is "dildowhack">> <<set $rightaction to 0>> <<set $_target to $NPCList[$righttarget]>> <<if typeof($_target.lefthand) is "string" and $_target.lefthand.includes("dildo")>> You whack the <<print $_target.lefttool>> from the <<personselect $righttarget>><<persons>> hand. <<if $_target.fullDescription is "Sydney" or ($_target.fullDescription is "Robin" and C.npc.Robin.rage lte 35) or $_target.type is "plant">> <<He>> pouts at you. <<brat 2 $righttarget>> <<elseif $consensual is 1>> Disappointment flashes across <<his>> face. <<brat 2 $righttarget>> <<else>> Anger flashes across <<his>> face. <<brat 5 $righttarget>> <</if>> <<brat 5 $righttarget>><<set $_target.lefthand to 0>><<set $_target.lefttool to 0>> <<elseif typeof($_target.righthand) is "string" and $_target.righthand.includes("dildo")>> You whack the <<print $_target.righttool>> from the <<personselect $righttarget>><<persons>> hand. <<if $_target.fullDescription is "Sydney" or ($_target.fullDescription is "Robin" and C.npc.Robin.rage lte 35) or $_target.type is "plant">> <<He>> pouts at you. <<brat 2 $righttarget>> <<elseif $consensual is 1>> Disappointment flashes across <<his>> face. <<brat 2 $righttarget>> <<else>> Anger flashes across <<his>> face. <<brat 5 $righttarget>> <</if>> <<brat 5 $righttarget>><<set $_target.righthand to 0>><<set $_target.righttool to 0>> <</if>> <</if>> <</widget>> <<widget "effectshandsfreeface">> <<if $leftaction is "freeface" or $rightaction is "freeface">> <<if $leftaction is "freeface" and $rightaction is "freeface">> <<set $leftaction to 0>><<set $leftactiondefault to "freeface">> <<set $rightaction to 0>><<set $rightactiondefault to "freeface">> <<set _freestrength to 2.5>> You try to use both hands to free your face, <<elseif $leftaction is "freeface">> <<set $leftaction to 0>><<set $leftactiondefault to "freeface">> <<set _freestrength to 1>> You try to use your hand to free your face, <<elseif $rightaction is "freeface">> <<set $rightaction to 0>><<set $rightactiondefault to "freeface">> <<set _freestrength to 1>> You try to use your hand to free your face, <</if>> <<set _npc to $NPCList[$mouthtarget]>><<personselect $mouthtarget>> <<set _nectarDifficulty to Math.clamp($drugged, 0, 500) + Math.clamp($nectar_addiction, 0, 500)>> <<willpowerdifficulty _nectarDifficulty $willpowermax "silent">> <<if (($mouthuse is "facesit" and $mouthstate is "vagina") or ["nipple","breasts"].includes($mouthstate)) and (_npc.type is "plant") and !$willpowerSuccess>> <span class="red">but you can't tear yourself from the sweet nectar.</span> <<if $mouthstate is "nipple">> You desperately suck <<his>> _npc.breastdesc. <<elseif $mouthstate is "breasts">> You push your face back into <<his>> _npc.breastdesc. <<else>> You desperately lick the pussy pressing into your face. <</if>> <<willpower 1>> <<else>> <<if (1000 - ($rng * 10) - ((currentSkillValue('physique') / $physiquemax * 100) * _freestrength) + ($enemyanger * 0.5)) lte (200 + $enemytrust)>> <span class="green"> <<if $mouthuse is "facesit">> <<print either( "and manage to wrestle <<him>> off of your face.", "and lift <<his>> hips enough for you to escape out from under <<him>>.", "and manage to tip <<him>> off of your face." )>> <<set _npc.vagina to 0>><<set _npc.location.genitals to 0>> <<elseif $mouthstate is "nipple">> <<print either( "and manage to extricate your mouth from <<his>> _npc.breastdesc.", "and push <<his>> nipple out of your mouth, pushing away <<his>> _npc.breastdesc.", "and manage to shove <<his>> _npc.breastdesc out of your face, freeing your mouth." )>> <<set _npc.chest to 0>><<set _npc.location.head to 0>> <<if _npc.lefthand is "head_nipples">> <<set _npc.lefthand to 0>> <</if>> <<if _npc.righthand is "head_nipples">> <<set _npc.righthand to 0>> <</if>> <<elseif $mouthstate is "breasts">> <<print either( "and manage to free your face from <<if _npc.breastsize gte 6>>in between <</if>><<his>> _npc.breastsdesc.", "and wriggle out from <<if _npc.breastsize gte 6>>in between <</if>><<his>> _npc.breastsdesc.", "and <<if _npc.breastsize lt 6>>shove<<else>>heave<</if>> <<his>> _npc.breastsdesc away from your face." )>> <<set _npc.chest to 0>><<set _npc.location.head to 0>> <<if _npc.lefthand is "head_breasts">> <<set _npc.lefthand to 0>> <</if>> <<if _npc.righthand is "head_breasts">> <<set _npc.righthand to 0>> <</if>> <<elseif ["lefthand", "righthand"].includes($mouthuse)>> <<print either( "and manage to wrench <<his>> hand off of your mouth.", "and wrestle <<his>> hand away from your face.", "and twist out of <<his>> grip, freeing your mouth." )>> <<if _npc.lefthand is "mouth">> <<set _npc.lefthand to 0>> <</if>> <<if _npc.righthand is "mouth">> <<set _npc.righthand to 0>> <</if>> <<elseif $mouthstate is "otheranus">> <<print either( "and push <<his>> ass away from your face.", "and manage to shove <<his>> ass from off of your face.", "and wrestle <<him>> and <<his>> ass away from your mouth." )>> <<if _npc.penis is "mouthotheranus">> <<set _npc.penis to 0>> <</if>> <<if _npc.vagina is "mouthotheranus">> <<set _npc.vagina to 0>> <</if>> <<set _npc.location.genitals to 0>> <</if>> </span> <<set $mouthuse to 0>><<set $mouthstate to 0>><<set $mouthaction to 0>><<set $head to 0>> <<brat 4>><<brat 1>> <<else>> <span class="red"> <<if $mouthuse is "facesit">> <<if $rng % 4 == 0 and (_npc.lefthand is 0 or _npc.righthand is 0)>> <<if _npc.lefthand is 0>> <<set _npc.lefthand to "arms">> <<else>> <<set _npc.righthand to "arms">> <</if>> <<if $leftactiondefault is "freeface">> <<set $leftarm to "grappled">> <</if>> <<if $rightactiondefault is "freeface">> <<set $rightarm to "grappled">> <</if>> <<if _freestrength is 1>> however, <<he>> seizes your arm and traps it against <<his>> thigh. <<else>> however, <<he>> grabs your arms and pins them against <<his>> thighs. <</if>> <<else>> <<print either( "but you can't budge <<his>> weight from off of your face.", "but <<he>> settles <<himself>> down more firmly on your face.", "but <<he>> adjusts <<his>> position and sits down harder." )>> <</if>> <<elseif $mouthstate is "nipple">> <<if $rng % 4 == 0>> however, <<he>> shoves <<his>> _npc.breastdesc forcefully into your face, forcing <<his>> nipple further into your protesting mouth. <<violence 3>> <<else>> <<print either( "but cannot remove <<his>> _npc.breastdesc from your mouth.", "but <<his>> nipple remains firmly plugged into your mouth.", "but aren't able to push <<his>> _npc.breastdesc out of your mouth." )>> <</if>> <<elseif $mouthstate is "breasts">> <<if $rng % 4 == 0>> <<if _npc.breastsize gte 6>> however, <<he>> more firmly squashes your face between <<his>> _npc.breastsdesc. <<violence 4>><<bruise face>> <<else>> however, <<he>> more firmly shoves your face against <<his>> _npc.breastsdesc. <<violence 1>> <</if>> <<else>> <<print either( "but cannot escape <<his>> _npc.breastsdesc.", "but <<his>> _npc.breastsdesc continue to <<if _npc.breastsize gte 6>>engulf<<else>>press against<</if>> your face.", "but aren't able to push <<his>> _npc.breastsdesc away from your face." )>> <</if>> <<elseif ["lefthand", "righthand"].includes($mouthuse)>> <<if $rng % 4 == 0>> but <<he>> more firmly clamps down on your mouth, digging <<his>> nails into your face in <<his>> effort to keep hold. <<violence 3>><<bruise face>> <<else>> <<print either( "but you can't pull <<his>> hand away.", "but <<his>> hand stays firm over your mouth.", "but you can't prise <<his>> hand from off of your mouth." )>> <</if>> <<elseif $mouthstate is "otheranus">> <<if $rng % 4 == 0>> but <<he>> swats your hand away and cuffs you around the head. <<violence 1>><<bruise face>> <<else>> <<print either( "but you aren't able to move <<him>> away.", "but <<his>> ass remains pressed against your lips.", "but you can't keep <<him>> away from your face." )>> <</if>> <</if>> </span> <<brat 2>> <</if>> <</if>> <</if>> <</widget>> <<widget "effectshandpull">> <<if $leftaction is "handpullpenis" or $rightaction is "handpullpenis">> <<if $leftaction is "handpullpenis" and $rightaction is "handpullpenis">> <<set $leftaction to 0>><<set $leftactiondefault to "handpullpenis">> <<set $rightaction to 0>><<set $rightactiondefault to "handpullpenis">> <<personselect $lefttarget>><<set $_handPullDifficulty to 500>> <<elseif $leftaction is "handpullpenis">> <<set $leftaction to 0>><<set $leftactiondefault to "handpullpenis">> <<personselect $lefttarget>><<set $_handPullDifficulty to 1000>> <<else>> <<set $rightaction to 0>><<set $rightactiondefault to "handpullpenis">> <<personselect $righttarget>><<set $_handPullDifficulty to 1000>> <</if>> <<brat 1>> <<if combatSkillCheck("hand", _n, $NPCList[_n].fullDescription, $_handPullDifficulty)>> You grasp <<combatpersons>> wrist, <<if $penisstate is "otherhand">> <span class="green">and pry <<his>> fingers off your <<penis>>.</span> <<else>> <span class="green">and pull it off your crotch.</span> <</if>> <<if $NPCList[_n].lefthand and $NPCList[_n].lefthand.startsWith("penis")>> <<combat-reset-hand "left">> <<else>> <<combat-reset-hand "right">> <</if>> <<set $penisuse to 0>><<set $penisstate to 0>> <<else>> You try to grab <<combatpersons>> wrist, <<if $penisstate is "otherhand">> <span class="red">but <<he>> tightens <<his>> grip in retaliation.</span> <<else>> <span class="red">but <<he>> swats your hand away and resumes <<his>> stroking.</span> <</if>> <<if $consensual is 1>> <<set $consensual to 0>><<molested>><<controlloss>> <</if>> <<violence 1>> <</if>> <</if>> <<if $leftaction is "handpullvagina" or $rightaction is "handpullvagina">> <<if $leftaction is "handpullvagina" and $rightaction is "handpullvagina">> <<set $leftaction to 0>><<set $leftactiondefault to "handpullvagina">> <<set $rightaction to 0>><<set $rightactiondefault to "handpullvagina">> <<personselect $lefttarget>><<set $_handPullDifficulty to 500>> <<elseif $leftaction is "handpullvagina">> <<set $leftaction to 0>><<set $leftactiondefault to "handpullvagina">> <<personselect $lefttarget>><<set $_handPullDifficulty to 1000>> <<else>> <<set $rightaction to 0>><<set $rightactiondefault to "handpullvagina">> <<personselect $righttarget>><<set $_handPullDifficulty to 1000>> <</if>> <<brat 1>> <<if combatSkillCheck("hand", _n, $NPCList[_n].fullDescription, $_handPullDifficulty)>> You grasp <<combatpersons>> wrist, <<if $vaginastate is "otherhand">> <span class="green">and pry <<his>> fingers out of your <<pussy>>.</span> <<else>> <span class="green">and pull it off your crotch.</span> <</if>> <<if $NPCList[_n].lefthand and $NPCList[_n].lefthand.startsWith("vagina")>> <<combat-reset-hand "left">> <<else>> <<combat-reset-hand "right">> <</if>> <<set $vaginause to 0>><<set $vaginastate to 0>> <<else>> You try to grab <<combatpersons>> wrist, <<if $vaginastate is "otherhand">> <span class="red">but <<he>> jams <<his>> fingers deeper in retaliation.</span> <<else>> <span class="red">but <<he>> swats your hand away and resumes <<his>> stroking.</span> <</if>> <<if $consensual is 1>> <<set $consensual to 0>><<molested>><<controlloss>> <</if>> <<violence 1>> <</if>> <</if>> <<if $leftaction is "handpullanus" or $rightaction is "handpullanus">> <<if $leftaction is "handpullanus" and $rightaction is "handpullanus">> <<set $leftaction to 0>><<set $leftactiondefault to "handpullanus">> <<set $rightaction to 0>><<set $rightactiondefault to "handpullanus">> <<personselect $lefttarget>><<set $_handPullDifficulty to 500>> <<elseif $leftaction is "handpullanus">> <<set $leftaction to 0>><<set $leftactiondefault to "handpullanus">> <<personselect $lefttarget>><<set $_handPullDifficulty to 1000>> <<else>> <<set $rightaction to 0>><<set $rightactiondefault to "handpullanus">> <<personselect $righttarget>><<set $_handPullDifficulty to 1000>> <</if>> <<brat 1>> <<if combatSkillCheck("hand", _n, $NPCList[_n].fullDescription, $_handPullDifficulty)>> You grasp <<combatpersons>> wrist, <<if $anusstate is "otherhand">> <span class="green">and pry <<his>> fingers out of your asshole.</span> <<else>> <span class="green">and pull it off your <<bottom>>.</span> <</if>> <<if $NPCList[_n].lefthand and $NPCList[_n].lefthand.startsWith("anus")>> <<combat-reset-hand "left">> <<else>> <<combat-reset-hand "right">> <</if>> <<set $anususe to 0>><<set $anusstate to 0>> <<else>> You try to grab <<combatpersons>> wrist, <<if $anusstate is "otherhand">> <span class="red">but <<he>> jams <<his>> fingers deeper in retaliation.</span> <<else>> <span class="red">but <<he>> swats your hand away and resumes <<his>> stroking.</span> <</if>> <<if $consensual is 1>> <<set $consensual to 0>><<molested>><<controlloss>> <</if>> <<violence 1>> <</if>> <</if>> <</widget>> <<widget "hand_section">> <!-- This widget is for NPC hands. --> <!-- Section for widgets that have special output when both hands are performing the same action. --> <!-- These widgets should set _bothHandsUsed to true when they are done if you want them to only run once. --> <<if $NPCList[_n].lefthand is $NPCList[_n].righthand>> <<set $_bothHandsUsed to true>> <<switch $NPCList[_n].lefthand>> <<case "throat">> <<combat-hand-on-throat>> <<case "mask">> <<combat-hand-on-mask "both" "hands">> <<case "genitals">> <<combat-hand-on-chastity "both">> <<default>> <<set $_bothHandsUsed to false>> <</switch>> <</if>> <<if !$_bothHandsUsed>> <<if random(0,1) is 1>> <<hand_section_two "left">> <<hand_section_two "right">> <<else>> <<hand_section_two "right">> <<hand_section_two "left">> <</if>> <</if>> <</widget>> <<widget "hand_section_two">> <<rng>> <<set $_hand to _args[0]>> <<set $_npcHand to $NPCList[_n][$_hand + "hand"]>> <!-- Note for future coders: this is an EXCEPTION because there are a LOT of pen_x states, and this is the best way to handle it. --> <!-- If you are adding new states, add them to the switch. Do your BEST to NOT ADD EXTRA CODE TO THIS WIDGET outside of the switch. --> <<if $_npcHand isnot 0 and $_npcHand.startsWith("pen_")>> <<set $_penbodypart to $_npcHand.slice(4)>> <<set $_npcHand to "pen_">> <</if>> <<switch $_npcHand>> <<case "none" "idle">> <<case "spank">> <<combat-spank $_hand>> <<case "handhold">> <<combat-hand-on-hand $_hand>> <<case "arms">> <<combat-hand-on-arms $_hand>> <<case "leftarm">> <<combat-hand-on-one-arm $_hand "left">> <<case "rightarm">> <<combat-hand-on-one-arm $_hand "right">> <<case "vaginaentrance">> <<combat-hand-on-vaginaentrance $_hand>> <<case "penisentrance">> <<combat-hand-on-penisentrance $_hand>> <<case "vagina">> <<combat-hand-on-vagina $_hand>> <<case "penis">> <<combat-hand-on-penis $_hand>> <<case "anusentrance">> <<combat-hand-on-anusentrance $_hand>> <<case "anus">> <<combat-hand-on-anus $_hand>> <<case "bottom">> <<combat-hand-on-bottom $_hand>> <<case "throat">> <<combat-hand-on-throat $_hand>> <<case "mouth">> <<combat-hand-on-mouth $_hand>> <<case "hair">> <<combat-hand-on-hair $_hand>> <<case "genitals">> <<combat-hand-on-chastity $_hand>> <<case "underlowerclothes">> <<combat-hand-on-clothes "under_lower" $_hand>> <<case "underupperclothes">> <<combat-hand-on-clothes "under_upper" $_hand>> <<case "lowerclothes">> <<combat-hand-on-clothes "lower" $_hand>> <<case "upperclothes">> <<combat-hand-on-clothes "upper" $_hand>> <<case "overlowerclothes">> <<combat-hand-on-clothes "over_lower" $_hand>> <<case "overupperclothes">> <<combat-hand-on-clothes "over_upper" $_hand>> <<case "head_nipples">> <<combat-hand-on-head_nipples $_hand>> <<case "head_breasts">> <<combat-hand-on-head_breasts $_hand>> <<case "mask">> <<combat-hand-on-mask $_hand "hand">> <<case "pen">> <<bodywriting_npc_bodypart $_hand $NPCList[_n][$_hand + "tool"]>> <<case "pen_">> <<combat-pen-on-bodypart $_hand $_penbodypart>> <<case "lube">> <<combat-hand-on-lube $_hand>> <<case "shoes">> <<combat-hand-on-shoes $_hand>> <<case "socks">> <<combat-hand-on-socks $_hand>> <<case "shackle_imminent">> <<combat-hand-on-shackle $_hand>> <<case "shackle_entrance">> <<combat-hand-on-shackle-imminent $_hand>> <<case "dildo_reveal">> <<combat-reveal-sextoy $_hand>> <<case "dildo">> <<combat-hand-on-sextoy $_hand>> <<case "stroker">> <<combat-stroker-on-penisentrance $_hand>> <<case "vaginadildo">> <<combat-dildo-on-vagina $_hand>> <<case "anusdildo">> <<combat-dildo-on-anus $_hand>> <<case "penisdildo">> <<combat-dildo-on-penis $_hand>> <<case "penisstroker">> <<combat-stroker-on-penis $_hand>> <<case "buttplug">> <<combat-hand-on-buttplug $_hand>> <<case "hypnosis">> <<combat-hand-hypnosis $_hand>> <<case "hypnosis_scream">> <<combat-hand-hypnosis-scream $_hand>> <<case "hypnosis_cover">> <<combat-hand-hypnosis-cover $_hand>> <<case "hypnosis_orgasm">> <<combat-hand-hypnosis-orgasm $_hand>> <<case "hypnosis_masochism">> <<combat-hand-hypnosis-masochism $_hand>> <<case "hypnosis_devotion">> <<combat-hand-hypnosis-devotion $_hand>> <<case 0>> <<combat-set-hand-start $_hand>> <<default>> <<run console.error("NPC hand action unaccounted for! Hand: " + $_hand + " Value: " + $_npcHand)>> <<run throw new Error("NPC hand action unaccounted for! Hand: " + $_hand + " Value: " + $_npcHand)>> <</switch>> <</widget>> <<widget "effectsremovebuttplug">> <<if !playerChastity("anus")>> <<if $leftaction is "removebuttplug" and playerHasButtPlug()>> <<set $leftaction to 0>> You remove your $worn.butt_plug.name, exposing your anus. <<set $worn.butt_plug.state to "removed">> <<elseif $rightaction is "removebuttplug" and playerHasButtPlug()>> <<set $rightaction to 0>> You remove your $worn.butt_plug.name, exposing your anus. <<set $worn.butt_plug.state to "removed">> <</if>> <</if>> <</widget>> <<widget "effectsPickupSexToy">> /* Start with a sex toy: Before combat do this: <<set $leftarm to "heldSexToy">><<set $currentSexToyLeft to clone(setup.sextoys[0])>> */ /* That will effectively mimic this widget so that a player starts combat holding a dildo(setup.sextoys[0]) */ <<if $leftaction is "pickupSexToy" and $rightaction is "pickupSexToy" and $selectedItemRight.name is $selectedItemLeft.name>> <<set $leftaction to 0>><<set $leftactiondefault to "rest">><<set $rightaction to 0>><<set $rightactiondefault to "rest">><<set $rightarm to "heldSexToy">> <<set $currentSexToyRight to $selectedItemRight>><<set $dildoreveal to 1>> You retrieve your $currentSexToyRight.name and hold it with your right hand. <<else>> <<if $leftaction is "pickupSexToy" and $selectedItemLeft>> <<set $leftaction to 0>><<set $leftactiondefault to "rest">><<set $leftarm to "heldSexToy">> <<set $currentSexToyLeft to $selectedItemLeft>><<set $dildoreveal to 1>> You retrieve your $currentSexToyLeft.name with your left hand. <</if>> <<if $rightaction is "pickupSexToy" and $selectedItemRight>> <<set $rightaction to 0>><<set $rightactiondefault to "rest">><<set $rightarm to "heldSexToy">> <<set $currentSexToyRight to $selectedItemRight>><<set $dildoreveal to 1>> You retrieve your $currentSexToyRight.name with your right hand. <</if>> <</if>> <</widget>> <<widget "effectsDropSexToy">> <<if $leftaction is "dildoDrop" and $rightaction is "dildoDrop">> <<set $leftaction to 0>><<set $leftactiondefault to "rest">><<set $leftarm to 0>><<set $rightaction to 0>><<set $rightactiondefault to "rest">><<set $rightarm to 0>> You drop your sex toys. <<unset $currentSexToyLeft>><<unset $currentSexToyRight>> <<else>> <<if $leftaction is "dildoDrop">> <<set $leftaction to 0>><<set $leftactiondefault to "rest">><<set $leftarm to 0>> You drop your $currentSexToyLeft.name in your left hand. <<unset $currentSexToyLeft>> <</if>> <<if $rightaction is "dildoDrop">> <<set $rightaction to 0>><<set $rightactiondefault to "rest">><<set $rightarm to 0>> You drop your $currentSexToyRight.name in your right hand. <<unset $currentSexToyRight>> <</if>> <</if>> <<if $leftaction is "dildoDropLeft" and $rightaction is "dildoDropRight">> <<set $leftaction to 0>><<set $leftactiondefault to "rest">><<set $leftarm to 0>><<set $rightaction to 0>><<set $rightactiondefault to "rest">><<set $rightarm to 0>> You drop your sex toys. <<unset $currentSexToyLeft>><<unset $currentSexToyRight>> <<for $_i = 0; $_i lt $enemyno; $_i++>> <<if ["leftDildo","leftDildoTease"].includes($NPCList[$_i].vagina)>> <<set $NPCList[$_i].vagina to 0>> <</if>> <<if ["leftDildo","leftDildoTease"].includes($NPCList[$_i].penis)>> <<set $NPCList[$_i].penis to 0>> <</if>> <<if ["rightDildo","rightDildoTease"].includes($NPCList[$_i].vagina)>> <<set $NPCList[$_i].vagina to 0>> <</if>> <<if ["rightDildo","rightDildoTease"].includes($NPCList[$_i].penis)>> <<set $NPCList[$_i].penis to 0>> <</if>> <</for>> <<else>> <<if $leftaction is "dildoDropLeft">> <<set $leftaction to 0>><<set $leftactiondefault to "rest">><<set $leftarm to 0>> You drop your $currentSexToyLeft.name in your left hand. <<unset $currentSexToyLeft>> <<for $_i = 0; $_i lt $enemyno; $_i++>> <<if $NPCList[$_i].vagina is "leftDildo">> <<set $NPCList[$_i].vagina to 0>> <</if>> <<if $NPCList[$_i].penis is "leftDildo">> <<set $NPCList[$_i].penis to 0>> <</if>> <</for>> <</if>> <<if $rightaction is "dildoDropRight">> <<set $rightaction to 0>><<set $rightactiondefault to "rest">><<set $rightarm to 0>> You drop your $currentSexToyRight.name in your right hand. <<unset $currentSexToyRight>> <<for $_i = 0; $_i lt $enemyno; $_i++>> <<if $NPCList[$_i].vagina is "rightDildo">> <<set $NPCList[$_i].vagina to 0>> <</if>> <<if $NPCList[$_i].penis is "rightDildo">> <<set $NPCList[$_i].penis to 0>> <</if>> <</for>> <</if>> <</if>> <<if $leftaction is "dildoDropAnusLeft" and $rightaction is "dildoDropAnusRight">> <<set $leftaction to 0>><<set $leftactiondefault to "rest">><<set $leftarm to 0>><<set $rightaction to 0>><<set $rightactiondefault to "rest">><<set $rightarm to 0>> You drop your sex toys. <<unset $currentSexToyLeft>><<unset $currentSexToyRight>> <<for $_i = 0; $_i lt $enemyno; $_i++>> <<if ["leftDildoAnus","leftDildoAnusTease"].includes($NPCList[$_i].vagina)>> <<set $NPCList[$_i].vagina to 0>> <</if>> <<if ["leftDildoAnus","leftDildoAnusTease"].includes($NPCList[$_i].penis)>> <<set $NPCList[$_i].penis to 0>> <</if>> <<if ["rightDildoAnus","rightDildoAnusTease"].includes($NPCList[$_i].vagina)>> <<set $NPCList[$_i].vagina to 0>> <</if>> <<if ["rightDildoAnus","rightDildoAnusTease"].includes($NPCList[$_i].penis)>> <<set $NPCList[$_i].penis to 0>> <</if>> <</for>> <<else>> <<if ["dildoDropAnusLeft","dildoDropAnusTeaseLeft"].includes($leftaction)>> <<set $leftaction to 0>><<set $leftactiondefault to "rest">><<set $leftarm to 0>> You drop your $currentSexToyLeft.name in your left hand. <<unset $currentSexToyLeft>> <<for $_i = 0; $_i lt $enemyno; $_i++>> <<if ["leftDildoAnus","leftDildoAnusTease"].includes($NPCList[$_i].vagina)>> <<set $NPCList[$_i].vagina to 0>> <</if>> <<if ["leftDildoAnus","leftDildoAnusTease"].includes($NPCList[$_i].penis)>> <<set $NPCList[$_i].penis to 0>> <</if>> <</for>> <</if>> <<if ["dildoDropAnusRight","dildoDropAnusTeaseRight"].includes($rightaction)>> <<set $rightaction to 0>><<set $rightactiondefault to "rest">><<set $rightarm to 0>> You drop your $currentSexToyRight.name in your right hand. <<unset $currentSexToyRight>> <<for $_i = 0; $_i lt $enemyno; $_i++>> <<if ["rightDildoAnus","rightDildoAnusTease"].includes($NPCList[$_i].vagina)>> <<set $NPCList[$_i].vagina to 0>> <</if>> <<if ["rightDildoAnus","rightDildoAnusTease"].includes($NPCList[$_i].penis)>> <<set $NPCList[$_i].penis to 0>> <</if>> <</for>> <</if>> <</if>> <<if $leftaction is "strokerDropLeft" and $rightaction is "strokerDropRight">> <<set $leftaction to 0>><<set $leftactiondefault to "rest">><<set $leftarm to 0>><<set $rightaction to 0>><<set $rightactiondefault to "rest">><<set $rightarm to 0>> You drop your sex toys. <<unset $currentSexToyLeft>><<unset $currentSexToyRight>> <<for $_i = 0; $_i lt $enemyno; $_i++>> <<if ["leftStroker","leftStrokerTease"].includes($NPCList[$_i].vagina)>> <<set $NPCList[$_i].vagina to 0>> <</if>> <<if ["leftStroker","leftStrokerTease"].includes($NPCList[$_i].penis)>> <<set $NPCList[$_i].penis to 0>> <</if>> <<if ["rightStroker","rightStrokerTease"].includes($NPCList[$_i].vagina)>> <<set $NPCList[$_i].vagina to 0>> <</if>> <<if ["rightStroker","rightStrokerTease"].includes($NPCList[$_i].penis)>> <<set $NPCList[$_i].penis to 0>> <</if>> <</for>> <<else>> <<if $leftaction is "strokerDropLeft">> <<set $leftaction to 0>><<set $leftactiondefault to "rest">><<set $leftarm to 0>> You drop the $currentSexToyLeft.name in your left hand. <<unset $currentSexToyLeft>> <<for $_i = 0; $_i lt $enemyno; $_i++>> <<if $NPCList[$_i].vagina is "leftStroker">> <<set $NPCList[$_i].vagina to 0>> <</if>> <<if $NPCList[$_i].penis is "leftStroker">> <<set $NPCList[$_i].penis to 0>> <</if>> <</for>> <<if $penisuse is "strokerSelfPenis">> <<set $penisuse to 0>><<set $penisstate to 0>> <</if>> <</if>> <<if $rightaction is "strokerDropRight">> <<set $rightaction to 0>><<set $rightactiondefault to "rest">><<set $rightarm to 0>> You drop the $currentSexToyRight.name in your right hand. <<unset $currentSexToyRight>> <<for $_i = 0; $_i lt $enemyno; $_i++>> <<if $NPCList[$_i].vagina is "rightStroker">> <<set $NPCList[$_i].vagina to 0>> <</if>> <<if $NPCList[$_i].penis is "rightStroker">> <<set $NPCList[$_i].penis to 0>> <</if>> <</for>> <<if $penisuse is "strokerSelfPenis">> <<set $penisuse to 0>><<set $penisstate to 0>> <</if>> <</if>> <</if>> <</widget>> <<widget "effectsCoverVagina">> <<if _args[1] is "lewd">> <<set $_hypnosis to "lewd">> <<elseif $uncomfortable.hypnosis is false and $hypnosis_traits.cover gte random(1,5)>> <<set $_hypnosis to "accepted">> <<elseif $hypnosis_traits.cover gte 1 and $willpower lt random(1, (200 * $hypnosis_traits.cover))>> <<set $_hypnosis to "forced">> <</if>> <<switch _args[0]>> <<case "both">> <<set $_hands to "hands">> <<set $leftactiondefault to $leftaction>> <<set $rightactiondefault to $rightaction>> <<set $leftaction to 0>><<set $rightaction to 0>> <<if $_hypnosis is "forced">> <<set $leftarm to 0>><<set $rightarm to 0>><<set $vaginause to 0>> <<set $leftactiondefault to "leftstopvagina">> <<set $rightactiondefault to "rightstopvagina">> <<elseif $_hypnosis>> <<set $leftarm to "vagina">><<set $rightarm to "vagina">><<set $vaginause to "cover">> <<set $leftactiondefault to "leftcovervaginalewd">> <<set $rightactiondefault to "rightcovervaginalewd">> <<else>> <<brat 2>><<set $leftarm to "vagina">><<set $rightarm to "vagina">><<set $vaginause to "cover">><<set $speechcovervagina to 1>> <</if>> <<case "left">> <<set $_hands to _args[0] + " hand">> <<set $leftactiondefault to $leftaction>> <<set $leftaction to 0>> <<if $_hypnosis is "forced">> <<set $leftarm to 0>><<if !$rightactiondefault.includes("leftcovervagina")>><<set $vaginause to 0>><</if>> <<set $leftactiondefault to "leftstopvagina">> <<elseif $_hypnosis>> <<set $leftarm to "vagina">><<set $vaginause to "cover">> <<set $leftactiondefault to "leftcovervaginalewd">> <<else>> <<brat 1>><<set $leftarm to "vagina">><<set $vaginause to "cover">><<set $speechcovervagina to 1>> <</if>> <<case "right">> <<set $_hands to _args[0] + " hand">> <<set $rightactiondefault to $rightaction>> <<set $rightaction to 0>> <<if $_hypnosis is "forced">> <<set $rightarm to 0>><<if !$leftactiondefault.includes("leftcovervagina")>><<set $vaginause to 0>><</if>> <<set $rightactiondefault to "rightstopvagina">> <<elseif $_hypnosis>> <<set $rightarm to "vagina">><<set $vaginause to "cover">> <<set $rightactiondefault to "rightcovervaginalewd">> <<else>> <<brat 1>><<set $rightarm to "vagina">><<set $vaginause to "cover">><<set $speechcovervagina to 1>> <</if>> <</switch>> <<if playerChastity("vagina")>> <<set $_genital to $worn.genitals.name>> <<else>> <<set $_genital to "pussy">> <</if>> <<if _args[1] is "lewd">> <<if $worn.genitals.name is "chastity parasite">> You squeeze your chastity parasite, enjoying the waves of pleasure moving through your body. <<if _args[0] is "both">> <<arousal 500 "genitals">> <<else>> <<arousal 250 "genitals">> <</if>> <<if !$stalk_end>> <<submission 5>><<set _stalkNoRunning to "chastity parasite">> <</if>> <<elseif playerChastity("vagina")>> You caress your inner thighs. <<elseif _args[0] is "both">> You tease your pussy, spreading it open with your <<print $_hands>>. <<else>> You tease your pussy with your <<print $_hands>>, pointing at it. <</if>> <<submission 1>><<set $speechcamerapose to 1>> <<elseif $_hypnosis>> You intend to cover your vagina, <<if $_hypnosis is "accepted">> <<hypnosisText 'but a lewd thought intrudes <span class="lewd">and your mind immediately accepts it.</span>'>> <<else>> <<hypnosisText '<span class="pink">but the thought is snatched from your mind and replaced with another.</span>'>> <</if>> <<if $worn.genitals.name is "chastity parasite">> You gently squeeze your chastity parasite, it sends a wave of pleasure through your body. <<if _args[0] is "both">> <<arousal 400 "genitals">> <<else>> <<arousal 200 "genitals">> <</if>> <<if !$stalk_end>> <<meek 5>><<set _stalkNoRunning to "chastity parasite">> <</if>> <<elseif playerChastity("vagina")>> You gently caress your inner thighs. <<elseif _args[0] is "both">> You gently tease your pussy, spreading it open with your <<print $_hands>>. <<else>> You gently tease your pussy with your <<print $_hands>>, pointing at it. <</if>> <<submission 1>><<set $speechcamerapose to 1>><<hypnotised 1>> <<if $_hypnosis is "forced" and $daily.stalkWillpower lt 20>> <<gwillpower>><<willpower 1>> <<set $daily.stalkWillpower to ($daily.stalkWillpower or 0) + 1>> <</if>> <<else>> You <<if $hypnosis_traits.cover gte 1>> <span class="green">resist the intrusive thoughts</span> and <</if>> <<if ($worn.lower.name is "towel skirt" or $worn.lower.name is "large towel bottom") and $worn.lower.state is "waist">> cover your <<print $_genital>> with your <<print $_hands>>, tugging the towel further over it. <<else>> cover your <<print $_genital>> with your <<print $_hands>>. <</if>> <</if>> <</widget>> <<widget "effectsCoverPenis">> <<if _args[1] is "lewd">> <<set $_hypnosis to "lewd">> <<elseif $uncomfortable.hypnosis is false and $hypnosis_traits.cover gte random(1,5)>> <<set $_hypnosis to "accepted">> <<elseif $hypnosis_traits.cover gte 1 and $willpower lt random(1, (200 * $hypnosis_traits.cover))>> <<set $_hypnosis to "forced">> <</if>> <<switch _args[0]>> <<case "both">> <<set $_hands to "hands">> <<set $leftactiondefault to $leftaction>> <<set $rightactiondefault to $rightaction>> <<set $leftaction to 0>><<set $rightaction to 0>> <<if $_hypnosis is "forced">> <<set $leftarm to 0>><<set $rightarm to 0>><<set $penisuse to 0>> <<set $leftactiondefault to "leftstopcoverpenis">> <<set $rightactiondefault to "rightstopcoverpenis">> <<elseif $_hypnosis>> <<set $leftarm to "coverpenis">><<set $rightarm to "coverpenis">><<set $penisuse to "cover">> <<set $leftactiondefault to "leftcoverpenislewd">> <<set $rightactiondefault to "rightcoverpenislewd">> <<else>> <<brat 2>><<set $leftarm to "coverpenis">><<set $rightarm to "coverpenis">><<set $penisuse to "cover">><<set $speechcoverpenis to 1>> <</if>> <<case "left">> <<set $_hands to _args[0] + " hand">> <<set $leftactiondefault to $leftaction>> <<set $leftaction to 0>> <<if $_hypnosis is "forced">> <<set $leftarm to 0>><<set $rightarm to 0>><<if !$leftactiondefault.includes("leftcoverpenis")>><<set $penisuse to 0>><</if>> <<set $leftactiondefault to "leftstopcoverpenis">> <<set $rightactiondefault to "rightstopcoverpenis">> <<elseif $_hypnosis>> <<set $leftarm to "coverpenis">><<set $rightarm to "coverpenis">><<set $penisuse to "cover">> <<set $leftactiondefault to "leftcoverpenislewd">> <<set $rightactiondefault to "rightcoverpenislewd">> <<else>> <<brat 1>><<set $leftarm to "coverpenis">><<set $penisuse to "cover">><<set $speechcoverpenis to 1>> <</if>> <<case "right">> <<set $_hands to _args[0] + " hand">> <<set $rightactiondefault to $rightaction>> <<set $rightaction to 0>> <<if $_hypnosis is "forced">> <<set $rightarm to 0>><<if !$leftactiondefault.includes("leftcoverpenis")>><<set $penisuse to 0>><</if>> <<set $rightactiondefault to "rightstopcoverpenis">> <<elseif $_hypnosis>> <<set $rightarm to "coverpenis">><<set $penisuse to "cover">> <<set $rightactiondefault to "rightcoverpenislewd">> <<else>> <<brat 1>><<set $rightarm to "coverpenis">><<set $penisuse to "cover">><<set $speechcoverpenis to 1>> <</if>> <</switch>> <<if playerChastity("penis")>> <<set $_genital to $worn.genitals.name>> <<else>> <<set $_genital to "penis">> <</if>> <<if _args[1] is "lewd">> <<if $worn.genitals.name is "chastity parasite">> You squeeze your chastity parasite, enjoying the waves of pleasure moving through your body. <<if _args[0] is "both">> <<arousal 500 "genitals">> <<else>> <<arousal 250 "genitals">> <</if>> <<if !$stalk_end>> <<submission 5>><<set _stalkNoRunning to "chastity parasite">> <</if>> <<elseif playerChastity("penis")>> You caress your inner thighs. <<elseif _args[0] is "both">> You tease your penis, tracing a finger down the length with one hand and circling the tip with another. <<else>> You tease your penis with your left hand, tracing a finger down the length. <</if>> <<submission 1>><<set $speechcamerapose to 1>> <<elseif $_hypnosis>> You intend to cover your penis, <<if $_hypnosis is "accepted">> <<hypnosisText 'but a lewd thought intrudes <span class="lewd">and your mind immediately accepts it.</span>'>> <<else>> <<hypnosisText '<span class="pink">but the thought is snatched from your mind and replaced with another.</span>'>> <</if>> <<if $worn.genitals.name is "chastity parasite">> You gently squeeze your chastity parasite, it sends a wave of pleasure through your body. <<if _args[0] is "both">> <<arousal 400 "genitals">> <<else>> <<arousal 200 "genitals">> <</if>> <<if !$stalk_end>> <<meek 5>><<set _stalkNoRunning to "chastity parasite">> <</if>> <<elseif playerChastity("penis")>> You gently caress your inner thighs. <<elseif _args[0] is "both">> You gently tease your penis, tracing a finger down the length with one hand and circling the tip with another. <<else>> You gently tease your penis with your left hand, tracing a finger down the length. <</if>> <<submission 1>><<set $speechcamerapose to 1>><<hypnotised 1>> <<if $_hypnosis is "forced" and $daily.stalkWillpower lt 20>> <<gwillpower>><<willpower 1>> <<set $daily.stalkWillpower to ($daily.stalkWillpower or 0) + 1>> <</if>> <<else>> You <<if $hypnosis_traits.cover gte 1>> <span class="green">resist intrusive thoughts</span> and <</if>> <<if ($worn.lower.name is "towel skirt" or $worn.lower.name is "large towel bottom") and $worn.lower.state is "waist">> cover your <<print $_genital>> with your <<print $_hands>>, tugging the towel further over it. <<else>> cover your <<print $_genital>> with your <<print $_hands>>. <</if>> <</if>> <</widget>> <<widget "effectsCoverAnus">> <<if _args[1] is "lewd">> <<set $_hypnosis to "lewd">> <<elseif $uncomfortable.hypnosis is false and $hypnosis_traits.cover gte random(1,5)>> <<set $_hypnosis to "accepted">> <<elseif $hypnosis_traits.cover gte 1 and $willpower lt random(1, (200 * $hypnosis_traits.cover))>> <<set $_hypnosis to "forced">> <</if>> <<switch _args[0]>> <<case "both">> <<set $_hands to "hands">> <<set $leftactiondefault to $leftaction>> <<set $rightactiondefault to $rightaction>> <<set $leftaction to 0>><<set $rightaction to 0>> <<if $_hypnosis is "forced">> <<set $leftarm to 0>><<set $rightarm to 0>><<set $anususe to 0>> <<set $leftactiondefault to "leftstopanus">> <<set $rightactiondefault to "rightstopanus">> <<elseif $_hypnosis>> <<set $leftarm to "anus">><<set $rightarm to "anus">><<set $anususe to "cover">> <<set $leftactiondefault to "leftcoveranuslewd">> <<set $rightactiondefault to "rightcoveranuslewd">> <<else>> <<brat 2>><<set $leftarm to "anus">><<set $rightarm to "anus">><<set $anususe to "cover">> <</if>> <<case "left">> <<set $_hands to _args[0] + " hand">> <<set $leftactiondefault to $leftaction>> <<set $leftaction to 0>> <<if $_hypnosis is "forced">> <<set $leftarm to 0>><<set $rightarm to 0>><<if !$rightactiondefault.includes("leftcoveranus")>><<set $anususe to 0>><</if>> <<set $leftactiondefault to "leftstopanus">> <<elseif $_hypnosis>> <<set $leftarm to "anus">><<set $anususe to "cover">> <<set $leftactiondefault to "leftcoveranuslewd">> <<else>> <<brat 1>><<set $leftarm to "anus">><<set $anususe to "cover">> <</if>> <<case "right">> <<set $_hands to _args[0] + " hand">> <<set $rightactiondefault to $rightaction>> <<set $rightaction to 0>> <<if $_hypnosis is "forced">> <<set $rightarm to 0>><<if !$leftactiondefault.includes("leftcoveranus")>><<set $anususe to 0>><</if>> <<set $rightactiondefault to "rightstopanus">> <<elseif $_hypnosis>> <<set $rightarm to "anus">><<set $anususe to "cover">> <<set $rightactiondefault to "rightcoveranuslewd">> <<else>> <<brat 1>><<set $rightarm to "anus">><<set $anususe to "cover">> <</if>> <</switch>> <<if _args[1] is "lewd">> <<if _args[0] is "both">> You grope your <<bottom>>, spreading your cheeks apart with both hands. <<else>> You grope your <<bottom>> with your <<print $_hands>>, giving it small slaps. <</if>> <<submission 1>><<set $speechcamerapose to 1>> <<elseif $_hypnosis>> You intend to cover your ass <<if $_hypnosis is "accepted">> <<hypnosisText 'but a lewd thought intrudes <span class="lewd">and your mind immediately accepts it.</span>'>> <<else>> <<hypnosisText '<span class="pink">but the thought is snatched from your mind and replaced with another.</span>'>> <</if>> <<if _args[0] is "both">> You grope your <<bottom>>, spreading your cheeks apart with both hands. <<else>> You grope your <<bottom>> with your <<print $_hands>>, giving it a small slap. <</if>> <<submission 1>><<set $speechcamerapose to 1>><<hypnotised 1>> <<if $_hypnosis is "forced" and $daily.stalkWillpower lt 20>> <<gwillpower>><<willpower 1>> <<set $daily.stalkWillpower to ($daily.stalkWillpower or 0) + 1>> <</if>> <<else>> You <<if $hypnosis_traits.cover gte 1>> <span class="green">resist intrusive thoughts</span> and <</if>> <<if ($worn.lower.name is "towel skirt" or $worn.lower.name is "large towel bottom") and $worn.lower.state is "waist">> cover your ass with your <<print $_hands>>, tugging the towel further over it. <<else>> cover your ass with your <<print $_hands>>. <</if>> <</if>> <</widget>><<widget "breastFlavorText">> <<set _j to ($NPCList.findIndex(x => x.chest is "mouthentrance"))>> <<if _j gte 0>> <<personselect _j>> Your head is pressed <<print ($NPCList[_j].breastsize gte 6?"between":"against")>> <<if $enemyno gte 2>> the <<persons>> <<else>> <<his>> <</if>> $NPCList[_j].breastsdesc. <<elseif $debug or $options.debugdisable is "f">> Errors.report("breastFlavorText failed to find correct index, ignoring") <</if>> <</widget>> <<widget "nippleFlavorText">> <<set _j to ($NPCList.findIndex(x => x.chest is "mouth"))>> <<if _j gte 0>> <<personselect _j>> Your head is pressed against <<if $enemyno gte 2>> the <<persons>> <<else>> <<his>> <</if>> <<if $NPCList[_j].lactation is 1 and $settings.breastFeedingEnabled>> leaking <</if>> $NPCList[_j].breastdesc. <<elseif $debug or $options.debugdisable is "f">> Errors.report("nippleFlavorText failed to find correct index, ignoring") <</if>> <</widget>> <<widget "facesitFlavorText">> <<if $enemyno lt 2>> <<personselect $mouthtarget>> <<if $npc.length isnot 0 and $NPCList[0].name_known is 1>> <<print $npc[0]>> <<else>> <<He>> <</if>> <<else>> <<if $mouthstate is "anal">> <<selectNpcWithPartInPosition "vagina" "facesitanal">> <<else>> <<selectNpcWithPartInPosition "vagina" "facesit">> <</if>> <<if $npcrow.includes(_j)>> <<print $npc[$npcrow.indexOf(_j)]>> <<else>> The <<person>> <</if>> <</if>> <<if $mouthstate is "anal">> sits on your mouth. <<else>> sits on your face. <</if>> <</widget>><<widget "oral">> <<if $combattype is "train">> <<set _end to $enemyno-1>> <<else>> <<set _end to 0>> <</if>> <<set _xx to $enemyno-1>> <<if _xx is -1>> <<set _stanceCheck to 0>> <<else>> <<set _stanceCheck to $NPCList[_xx].stance>> <</if>> <<if $consensual is 1 and !hasSexStat("promiscuity", 4) and $enemytype is "man" or $consensual is 1 and !hasSexStat("deviancy", 4) and $enemytype isnot "man">> <!-- Do Nothing --> <<elseif _stanceCheck is "top">> <!-- Do Nothing --> <<else>> <<for _j = $enemyno-1; _j gte _end; _j-->> <<if $NPCList[_j].penis is 0>> <<if $mouthactiondefault is "mouth">> | <label><span class="sub">Move your lips to <<his>> penis</span> <<radiobutton "$mouthaction" "mouth" checked>><<oraldifficulty>> <<combatpromiscuous4>></label> <<else>> | <label><span class="sub">Move your lips to <<his>> penis</span> <<radiobutton "$mouthaction" "mouth">><<oraldifficulty>> <<combatpromiscuous4>></label> <</if>> <<break>> <</if>> <</for>> <<for _j = $enemyno-1; _j gte _end; _j-->> <<if $NPCList[_j].vagina is 0>> <<if $mouthactiondefault is "othervagina">> | <label><span class="sub">Move your mouth to <<his>> pussy</span><<radiobutton "$mouthaction" "othervagina" checked>><<oraldifficulty>> <<combatpromiscuous4>></label> <<else>> | <label><span class="sub">Move your mouth to <<his>> pussy</span><<radiobutton "$mouthaction" "othervagina">><<oraldifficulty>> <<combatpromiscuous4>></label> <</if>> <<break>> <</if>> <</for>> <</if>> <<if $consensual is 1 and !hasSexStat("promiscuity", 3)>> <!-- Do Nothing --> <<elseif !$gloryhole>> <<for _j = $enemyno-1; _j gte _end; _j-->> <<if $NPCList[_j].chest is 0>> <<if $mouthactiondefault is "movetochest">> | <label><span class="sub">Move your lips to <<his>> chest</span> <<radiobutton "$mouthaction" "movetochest" checked>><<oraldifficulty>> <<combatpromiscuous3>></label> <<else>> | <label><span class="sub">Move your lips to <<his>> chest</span> <<radiobutton "$mouthaction" "movetochest">><<oraldifficulty>> <<combatpromiscuous3>></label> <</if>> <<break>> <</if>> <</for>> <</if>> <</widget>> <<widget "oralnew">> <<set _stanceCheck to $NPCList[$mouthtarget].stance>> <<if $consensual is 1 and (!hasSexStat("promiscuity", 4) and $enemytype is "man" or !hasSexStat("deviancy", 4) and $enemytype isnot "man") and !$promiscuityIgnore>> <!-- Do Nothing --> <<elseif _stanceCheck is "top">> <!-- Do Nothing --> <<else>> <<if $NPCList[$mouthtarget].penis is 0 and ($enemytype isnot "man" or ($NPCList[$mouthtarget].location.genitals is 0 and $NPCList[$mouthtarget].location.head isnot "head")) and !$worn.face.type.includes("covered") and !$worn.face.type.includes("gag")>> <<if $NPCList[$mouthtarget].chastity.penis.includes("chastity")>> <<set _mouthaction["Move your head to " + $NPCList[$mouthtarget].pronouns.his + " " + $NPCList[$mouthtarget].chastity.penis] to "mouth">> <<elseif npcHasStrapon($mouthtarget)>> <<set _mouthaction["Move your lips to " + $NPCList[$mouthtarget].pronouns.his + " strap-on"] to "mouth">> <<else>> <<set _mouthaction["Move your lips to " + $NPCList[$mouthtarget].pronouns.his + " penis"] to "mouth">> <</if>> <</if>> <<if $NPCList[$mouthtarget].vagina is 0 and ($enemytype isnot "man" or ($NPCList[$mouthtarget].location.genitals is 0 and $NPCList[$mouthtarget].location.head isnot "head")) and !$worn.face.type.includes("covered") and !$worn.face.type.includes("gag")>> <<if $NPCList[$mouthtarget].chastity.vagina.includes("chastity")>> <<set _mouthaction["Move your head to " + $NPCList[$mouthtarget].pronouns.his + " " + $NPCList[$mouthtarget].chastity.vagina] to "othervagina">> <<else>> <<set _mouthaction["Move your mouth to " + $NPCList[$mouthtarget].pronouns.his + " pussy"] to "othervagina">> <</if>> <</if>> <</if>> <<if $consensual is 1 and (!hasSexStat("promiscuity", 3) and $enemytype is "man" or !hasSexStat("deviancy", 3) and $enemytype isnot "man") and !$promiscuityIgnore>> <!-- Do Nothing --> <<elseif _stanceCheck is "topface">> <!-- Do Nothing --> <<elseif !$gloryhole>> <<if $NPCList[$mouthtarget].chest is 0 and $NPCList[$mouthtarget].location.genitals isnot "head" and $NPCList[$mouthtarget].location.head isnot "head" and $NPCList[$mouthtarget].location.head isnot "genitals" and !$worn.face.type.includes("covered") and !$worn.face.type.includes("gag")>> <<set _mouthaction["Move your lips to " + $NPCList[$mouthtarget].pronouns.his + " chest"] to "movetochest">> <</if>> <</if>> <</widget>> <<widget "oralswallow">> <!-- Below if-or statement is super-clumsy but not sure how to shorten NG --> <<if $consensual is 1 and !hasSexStat("promiscuity", 5) and $enemytype is "man" or $consensual is 1 and !hasSexStat("deviancy", 5) and $enemytype isnot "man">> <<else>> <<if $NPCList[0].penis is "mouthentrance" or $NPCList[0].penis is "mouthimminent" or $NPCList[1].penis is "mouthentrance" or $NPCList[1].penis is "mouthimminent" or $NPCList[2].penis is "mouthentrance" or $NPCList[2].penis is "mouthimminent" or $NPCList[3].penis is "mouthentrance" or $NPCList[3].penis is "mouthimminent" or $NPCList[4].penis is "mouthentrance" or $NPCList[4].penis is "mouthimminent" or $NPCList[5].penis is "mouthentrance" or $NPCList[5].penis is "mouthimminent">> <<if $mouthactiondefault is "mouth">> | <label><span class="sub">Take <<his>> penis into your mouth</span> <<radiobutton "$mouthaction" "swallow" checked>><<oralvirginitywarning>> <<combatpromiscuous5>></label> <<else>> | <label><span class="sub">Take <<his>> penis into your mouth</span> <<radiobutton "$mouthaction" "swallow">><<oralvirginitywarning>> <<combatpromiscuous5>></label> <</if>> <</if>> <</if>> <</widget>> <<widget "oralswallownew">> <<if $consensual is 1 and (!hasSexStat("promiscuity", 5) and $enemytype is "man" or !hasSexStat("deviancy", 5) and $enemytype isnot "man") and !$promiscuityIgnore>> <<else>> <<set $_pp to (npcHasStrapon($mouthtarget) ? "strap-on" : "penis")>> <<set $_npc to $NPCList[$mouthtarget]>> <<set $_facetype to $worn.face.type>> <<if !$_npc.chastity.penis.includes("chastity") and ($_npc.penis is "mouthentrance" or $_npc.penis is "mouthimminent") and !$_facetype.includes("covered") and !$_facetype.includes("gag")>> <<set _mouthaction["Take " + $NPCList[$mouthtarget].pronouns.his + " " + $_pp + " into your mouth"] to "swallow">> <</if>> <</if>> <</widget>> <<widget "combatApologise">> <<if $enemyanger gte 20 and $underwater lte 0 and !$combat_silenced>> <<set _mouthaction["Apologise"] to "apologise">> <</if>> <</widget>> <<widget "combatPenisEntrance">> <<if !$worn.face.type.includes("covered") and !$worn.face.type.includes("gag")>> <<set _mouthaction["Kiss"] to "peniskiss">> <</if>> <<if $consensual is 1 and (!hasSexStat("promiscuity", 3) and $enemytype is "man" or !hasSexStat("deviancy", 3) and $enemytype isnot "man") and !$promiscuityIgnore>> <<elseif $chestuse is 0>> <<set _mouthaction["Grab between breasts"] to "grasp">> <</if>> <<if $head isnot "grappled" and $head isnot "bound">> <<set _mouthaction["Pull away"] to "pullaway">> <</if>> <<oralswallownew>> <<speak>> <</widget>> <<widget "combatPenisImminent">> <<if !$worn.face.type.includes("covered") and !$worn.face.type.includes("gag")>> <<set _mouthaction["Lick"] to "lick">> <</if>> <<if ($consensual is 0 or ($enemytype is "man" ? $promiscuity : $deviancy) gte 55 or $promiscuityIgnore) and currentSkillValue("oralskill") gte 800>> <<set _mouthaction["Edge"] to "oraledge">> <</if>> <<set _mouthaction["Pull away"] to "pullaway">> <<oralswallownew>> <<speak>> <</widget>> <<widget "combatPenisPenetrated">> <<if $enemyarousal gte $enemyarousalmax and $consensual is 1 and ($enemytype is "man" ? $promiscuity : $deviancy) gte 75>> <<set _mouthaction["Swallow"] to "ejacswallow">> <<else>> <<set _mouthaction["Suck"] to "suck">> <</if>> <<if ($consensual is 0 or (($enemytype is "man" ? $promiscuity : $deviancy) gte 55 or $promiscuityIgnore ) and $enemyarousal lte $enemyarousalmax) and currentSkillValue("oralskill") gte 800>> <<set _mouthaction["Edge"] to "oraledge">> <</if>> <<if $consensual isnot 1 and ($fightTargets is undefined or $fightTargets.includes($mouthtarget))>> <<set _mouthaction["Bite"] to "bite">> <</if>> <<if $head isnot "grappled" and $head isnot "bound">> <<if $enemyarousal gte $enemyarousalmax and $consensual is 1>> <<set _mouthaction["Spit"] to "ejacspit">> <<else>> <<set _mouthaction["Pull away"] to "pullaway">> <</if>> <</if>> <</widget>> <<widget "combatOthervagina">> <<set _mouthaction["Lick"] to "vaginalick">> <<if ($consensual is 0 or ($enemytype is "man" ? $promiscuity : $deviancy) gte 55 or $promiscuityIgnore) and currentSkillValue("oralskill") gte 800>> <<set _mouthaction["Edge"] to "oraledge">> <</if>> <<if $consensual isnot 1 and ($fightTargets is undefined or $fightTargets.includes($mouthtarget))>> <<set _mouthaction["Bite"] to "bitepussy">> <</if>> <<if $head isnot "grappled" and $head isnot "bound" and $mouthuse isnot "facesit">> <<set _mouthaction["Pull away"] to "pullawayvagina">> <</if>> <</widget>> <<widget "combatMouthOtherAnus">> <<if !$worn.face.type.includes("covered") and !$worn.face.type.includes("gag")>> <<set _mouthaction["Lick ass"] to "anallick">> <<if $submissive gte 1150>> <<set _mouthaction["Kiss ass"] to "analkiss">> <</if>> <</if>> <<if $consensual is 1 and $head isnot "grappled" and $head isnot "bound" and $mouthuse isnot "facesit">> <<set _mouthaction["Pull away"] to "analpull">> <</if>> <</widget>> <<widget "combatBreast">> <<if !$worn.face.type.includes("covered") and !$worn.face.type.includes("gag")>> <<set _mouthaction["Suck"] to "breastsuck">> <<set _mouthaction["Lick"] to "breastlick">> <<set _mouthaction["Keep your mouth closed"] to "breastclosed">> <</if>> <<if $consensual is 1 or $head isnot "breasts">> <<set _mouthaction["Pull away"] to "breastpull">> <</if>> <</widget>> <<widget "combatNipple">> <<set _mouthaction["Suck"] to "breastsuck">> <<set _mouthaction["Keep your mouth closed"] to "breastclosed">> <<if $consensual is 1 or $head isnot "breasts">> <<set _mouthaction["Pull away"] to "breastpull">> <</if>> <<if $consensual isnot 1 and ($fightTargets is undefined or $fightTargets.includes($mouthtarget))>> <<set _mouthaction["Bite"] to "breastbite">> <</if>> <</widget>><<widget "actionspenistovaginanew">> <<if !playerChastity("penis") or playerHasStrapon()>> <<set $_target to $NPCList[$penistarget]>> <<if $_target.vagina is 0>> <<if $consensual is 1 and ($enemytype is "man" ? $promiscuity : $deviancy) lte 74 and !$promiscuityIgnore>> <!-- Do Nothing --> <<elseif $_target.stance isnot "topface" and ($enemytype isnot "man" or ($_target.location.genitals is 0 and $_target.location.head isnot "genitals"))>> <<if $_target.chastity.vagina.includes("chastity")>> <<set _penisaction["Press against " + $_target.pronouns.his + " " + $_target.chastity.vagina] to "penistovagina">> <<else>> <<set _penisaction["Press against " + $_target.pronouns.his + " pussy"] to "penistovagina">> <</if>> <</if>> <</if>> <</if>> <</widget>> <<widget "actionspenistopenisfucknew">> <<set $_target to $NPCList[$penistarget]>> <<if $_target.penis is "penisentrance" or $_target.penis is "penisimminent">> <<if $consensual is 1 and (($enemytype is "man" ? $promiscuity : $deviancy) lte 54 and !$promiscuityIgnore) or $_target.chastity.penis.includes("chastity")>> <!-- Do Nothing --> <<else>> <<set _pp to "">> <<if $_target.chastity.penis.includes("chastity")>> <<set _pp to "caged penis">> <<elseif npcHasStrapon($penistarget)>> <<set _pp to "strap-on cock">> <<else>> <<set _pp to "penis">> <</if>> <<if playerHasStrapon()>> <<set _penisaction["Push your strap-on against " + $_target.pronouns.his + " " + _pp] to "penistopenisfuck">> <<elseif playerChastity("penis")>> <<set _penisaction["Push your " + $worn.genitals.name +" against " + $_target.pronouns.his + " " + _pp] to "penistopenisfuck">> <<else>> <<set _penisaction["Push your penis against " + $_target.pronouns.his + " " + _pp] to "penistopenisfuck">> <</if>> <</if>> <</if>> <</widget>> <<widget "actionspenistopenis">> <<set $_target to $NPCList[$penistarget]>> <<if $_target.penis is 0>> <<if $consensual is 1 and ($enemytype is "man" ? $promiscuity : $deviancy) lte 54 and !$promiscuityIgnore>> <!-- Do Nothing --> <<elseif $_target.stance isnot "topface" and ($enemytype isnot "man" or ($_target.location.genitals is 0 and $_target.location.head isnot "genitals"))>> <<if $_target.chastity.penis.includes("chastity")>> <<set _penisaction["Frot " + $_target.pronouns.his + " " + $_target.chastity.penis] to "penistopenis">> <<elseif npcHasStrapon($penistarget)>> <<set _penisaction["Frot " + $_target.pronouns.his + " strap-on"] to "penistopenis">> <<else>> <<set _penisaction["Frot " + $_target.pronouns.his + " penis"] to "penistopenis">> <</if>> <</if>> <</if>> <</widget>> <<widget "actionspenisPenisEntrance">> <<if $consensual is 0 or (($enemytype is "man" ? $promiscuity : $deviancy) lte 54 and !$promiscuityIgnore)>> <<set _penisaction["Cooperate"] to "otherpenisrub">> <<else>> <<set _penisaction["Rub"] to "otherpenisrub">> <</if>> <<if $thighuse is 0>> <<set _penisaction["Try to keep it away with your thighs"] to "penisthighs">> <</if>> <<if $settings.analEnabled and $anususe is 0 and !playerChastity("anus")>> <<set _penisaction["Offer your anus instead"] to "penisanus">> <</if>> <<if $vaginause is 0 and !playerChastity("vagina")>> <<set _penisaction["Offer your pussy instead"] to "penispussy">> <</if>> <<if $settings.vaginalDoubleEnabled and $awareness gt 300 and $vaginause is "penis" and $NPCList[$vaginatarget].penissize gte 2 and $NPCList[$penistarget].penissize gte 2 and !playerChastity("vagina") and !["legLock","legLocked"].includes($feetuse)>> <<set _penisaction["Offer double vaginal instead"] to "penispussydouble">> <</if>> <<if $settings.analDoubleEnabled and $awareness gt 300 and $anususe is "penis" and !playerChastity("anus") and $NPCList[$anustarget].penissize gte 2 and $NPCList[$penistarget].penissize gte 2 and !["legLock","legLocked"].includes($feetuse)>> <<set _penisaction["Offer double anal instead"] to "penisanusdouble">> <</if>> <</widget>> <<widget "actionspenisPenisImminent">> <<if $consensual is 0 or (!$promiscuityIgnore and ($enemytype is "man" ? $promiscuity : $deviancy) lte 54)>> <<set _penisaction["Cooperate"] to "otherpenisrub">> <<else>> <<set _penisaction["Rub"] to "otherpenisrub">> <</if>> <<if $settings.analEnabled and $anususe is 0 and !playerChastity("anus")>> <<set _penisaction["Offer your anus instead"] to "penisanus">> <</if>> <<if $vaginause is 0 and !playerChastity("vagina")>> <<set _penisaction["Offer your pussy instead"] to "penispussy">> <</if>> <<if $settings.vaginalDoubleEnabled and $awareness gt 300 and $vaginause is "penis" and $NPCList[$vaginatarget].penissize gte 2 and $NPCList[$penistarget].penissize gte 2 and !playerChastity("vagina") and !["legLock","legLocked"].includes($feetuse)>> <<set _penisaction["Offer double vaginal instead"] to "penispussydouble">> <</if>> <<if $settings.analDoubleEnabled and $awareness gt 300 and $anususe is "penis" and !playerChastity("anus") and $NPCList[$anustarget].penissize gte 2 and $NPCList[$penistarget].penissize gte 2 and !["legLock","legLocked"].includes($feetuse)>> <<set _penisaction["Offer double anal instead"] to "penisanusdouble">> <</if>> <<set _penisaction["Pull away"] to "fencingescape">> <</widget>> <<widget "actionspenistoanusnew">> <<set $_target to $NPCList[$penistarget]>> <<if !playerChastity("penis") or playerHasStrapon()>> <<if $_target.stance isnot "topface">> <<if $_target.vagina is 0 or $_target.penis is 0>> <<if $consensual is 1 and ($enemytype is "man" ? $promiscuity : $deviancy) lte 74 and !$promiscuityIgnore>> <!-- Do Nothing --> <<elseif $enemytype isnot "man" or ($_target.location.genitals is 0 and $_target.location.head isnot "genitals")>> <<if $_target.chastity.anus.includes("shield")>> <<set _penisaction["Rub against " + $_target.pronouns.his + " " + $_target.chastity.anus] to "penistoanus">> <<else>> <<set _penisaction["Press against " + $_target.pronouns.his + " ass"] to "penistoanus">> <</if>> <</if>> <</if>> <</if>> <</if>> <</widget>> <<widget "actionspenisvaginafucknew">> <<if (!playerChastity("penis") or playerHasStrapon()) and $worn.under_lower.vagina_exposed is 1 and $worn.lower.vagina_exposed is 1>> <<set $_target to $NPCList[$penistarget]>> <<if $_target.vagina is "penisentrance" or $_target.vagina is "penisimminent">> <<if $consensual is 1 and (($enemytype is "man" ? $promiscuity : $deviancy) lte 74 and !$promiscuityIgnore) or $_target.chastity.vagina.includes("chastity")>> <!-- Do Nothing --> <<else>> <<set _penisaction["Penetrate " + $_target.pronouns.his + " pussy"] to "penisvaginafuck">> <</if>> <</if>> <</if>> <</widget>> <<widget "actionspenisanusfucknew">> <<if (!playerChastity("penis") or playerHasStrapon()) and $worn.under_lower.vagina_exposed is 1 and $worn.lower.vagina_exposed is 1>> <<set $_target to $NPCList[$penistarget]>> <<if $_target.vagina is "otheranusentrance" or $_target.vagina is "otheranusimminent" or $_target.penis is "otheranusentrance" or $_target.penis is "otheranusimminent">> <<if $_target.chastity.anus.includes("shield") or ($consensual is 1 and !$promiscuityIgnore and ($enemytype is "man" ? $promiscuity : $deviancy) lte 74)>> <!-- Do Nothing --> <<else>> <<set _penisaction["Penetrate " + $_target.pronouns.his + " ass"] to "penisanusfuck">> <</if>> <</if>> <</if>> <</widget>> <<widget "actionspenisMouthEntrance">> <<set $_target to $NPCList[$penistarget]>> <<if $_target.mouth is "penisentrance">> <<if $consensual is 1 and !$promiscuityIgnore and ($enemytype is "man" ? $promiscuity : $deviancy) lte 54>> <<else>> <<set _penisaction["Press your thigh against " + $_target.pronouns.his + " mouth"] to "thighbay">> <</if>> <<set _penisaction["Rub against " + $_target.pronouns.his + " face"] to "othermouthtease">> <</if>> <</widget>> <<widget "actionspenisMouthImminent">> <<set $_target to $NPCList[$penistarget]>> <<if $_target.mouth is "penisimminent">> <<set _penisaction["Rub against " + $_target.pronouns.his + " lips"] to "othermouthrub">> <<set _penisaction["Pull away"] to "othermouthescape">> <</if>> <</widget>> <<widget "actionspenisMouthPenetration">> <<if $consensual is 0 or ($enemytype is "man" ? $promiscuity : $deviancy) lte 54>> <<set _penisaction["Cooperate"] to "othermouthcooperate">> <<else>> <<set _penisaction["Fuck"] to "othermouthcooperate">> <</if>> <<set _penisaction["Pull out"] to "pullOut">> <</widget>> <<widget "actionspenisPussyEntrance">> <<actionspenisvaginafucknew>> <<if $consensual is 1 and !$promiscuityIgnore and ($enemytype is "man" ? $promiscuity : $deviancy) lte 54>> <<else>> <<set _penisaction["Frot against the clit"] to "bay">> <</if>> <<set _penisaction["Tease"] to "tease">> <</widget>> <<widget "actionspenisPussyImminent">> <<actionspenisvaginafucknew>> <<set _penisaction["Rub"] to "rub">> <<if ($consensual is 0 or ($enemytype is "man" ? $promiscuity : $deviancy) gte 55) and currentSkillValue("penileskill") gte 800>> <<set _penisaction["Edge " + $NPCList[$penistarget].pronouns.him] to "vaginaEdging">> <</if>> <<set _penisaction["Pull away"] to "escape">> <</widget>> <<widget "actionspenisPussyPenetration">> <<set _penisaction["Take it"] to "take">> <<if $consensual is 0 or ($enemytype is "man" ? $promiscuity : $deviancy) lte 54>> <<set _penisaction["Cooperate"] to "cooperate">> <<else>> <<set _penisaction["Fuck"] to "cooperate">> <</if>> <<if !npcIsPregnant($NPCList[$penistarget].fullDescription) and NPCPregnancyPossibleWithPlayer($NPCList[$penistarget]) and $arousal gte $arousalmax - 1000 and $demon gte 6 and $demonbuild gte 90>> <<set _penisaction["Force Impregnation"] to "forceImpregnation">> <</if>> <<if ($consensual is 0 or ($enemytype is "man" ? $promiscuity : $deviancy) gte 55) and currentSkillValue("penileskill") gte 800>> <<set _penisaction["Edge " + $NPCList[$penistarget].pronouns.him] to "vaginaEdging">> <</if>> <<set _penisaction["Pull out"] to "pullOut">> <</widget>> <<widget "actionspenisPenisFencing">> <<if $consensual is 0 or (($enemytype is "man" ? $promiscuity : $deviancy) lte 54 and !$promiscuityIgnore)>> <<set _penisaction["Cooperate"] to "fencingcooperate">> <<else>> <<set _penisaction["Rub"] to "fencingcooperate">> <</if>> <<set _penisaction["Take it"] to "fencingtake">> <<set _penisaction["Pull away"] to "fencingescape">> <<if $settings.analDoubleEnabled and $awareness gt 300 and $anususe is "penis" and $NPCList[$anustarget].penissize gte 2 and $NPCList[$penistarget].penissize gte 2 and !["legLock","legLocked"].includes($feetuse)>> <<if !($consensual is 1 and ($enemytype is "man" ? $promiscuity : $deviancy) lte 74 and !$promiscuityIgnore)>> <<set _penisaction["Offer double anal instead"] to "penisanusdouble">> <</if>> <</if>> <</widget>> <<widget "actionspenisAnusEntrance">> <<actionspenisanusfucknew>> <<if $consensual is 1 and ($enemytype is "man" ? $promiscuity : $deviancy) lte 54 and !$promiscuityIgnore>> <<else>> <<set _penisaction["Frot against the ass"] to "otheranusbay">> <</if>> <<set _penisaction["Tease"] to "otheranustease">> <</widget>> <<widget "actionspenisAnusImminent">> <<actionspenisanusfucknew>> <<set _penisaction["Rub"] to "otheranusrub">> <<if ($consensual is 0 or ($enemytype is "man" ? $promiscuity : $deviancy) gte 55) and currentSkillValue("penileskill") gte 800>> <<set _penisaction["Edge " + $NPCList[$penistarget].pronouns.him] to "otheranusEdging">> <</if>> <<set _penisaction["Pull away"] to "otheranusescape">> <</widget>> <<widget "actionspenisAnusPenetration">> <<set _penisaction["Take it"] to "otheranustake">> <<if $consensual is 0 or ($enemytype is "man" ? $promiscuity : $deviancy) lte 54>> <<set _penisaction["Cooperate"] to "otheranuscooperate">> <<else>> <<set _penisaction["Fuck"] to "otheranuscooperate">> <</if>> <<if ($consensual is 0 or ($enemytype is "man" ? $promiscuity : $deviancy) gte 55) and currentSkillValue("penileskill") gte 800>> <<set _penisaction["Edge " + $NPCList[$penistarget].pronouns.him] to "otheranusEdging">> <</if>> <<set _penisaction["Pull out"] to "pullOut">> <</widget>> <<widget "actionspenisAgainstAss">> <<set _penisaction["Rub"] to "otheranusrub">> <<set _penisaction["Stop"] to "otheranusstop">> <</widget>> <<widget "actionspenisAgainstClit">> <<set _penisaction["Rub"] to "clitrub">> <<set _penisaction["Stop"] to "stop">> <</widget>><<widget "effectspenistovagina">> <<if $penisaction is "penistovagina">> <<personselect $penistarget>> <<set $penisaction to 0>><<submission 10>><<penileskilluse>><<combatpromiscuity5>> <<if combatSkillCheck("penile", $penistarget)>> <<if $NPCList[$penistarget].vagina is 0>> <<set $_target to $NPCList[$penistarget]>> <<set $_target.vagina to "penisentrance">> <<submission 2>> <<set $penisuse to "othervagina">><<set $penisstate to "entrance">> <<if $leftarm is "coverpenis">> <<set $leftarm to 0>> <</if>> <<if $rightarm is "coverpenis">> <<set $rightarm to 0>> <</if>> <span class="lblue">You press your <<penis>> against <<combatpersons>> <<npcVagina $penistarget>>.</span> <<if $NPCList[$penistarget].condom and $NPCList[$penistarget].condom.willUse is true and !$player.condom and $parasite.penis.name is undefined>> <<if playerChastity("penis")>> <<He>> tries to put a condom on your penis, but can't seem to get it over your $worn.genitals.name. <span class="red"><<He>> quickly gives up.</span> <<set $NPCList[$penistarget].condom.willUse to false>> <<else>> <span class="green"><<He>> slips <<condomDesc $penistarget>> on your <<penis>>.</span> <<equipNPCCondom $penistarget "player">> <</if>> <</if>> <<if $enemytype is "beast">><<set $_target.stance to "top">><</if>> <<set $_target.location.genitals to "genitals">> <<else>> <span class="blue">You try to press your <<penis>> against <<combatpersons>> <<npcVagina $penistarget>>, but the entrance is already occupied.</span><<set $penisactiondefault to "penistovagina">> <</if>> <<else>> <span class="blue">You try to press your <<penis>> against <<combatpersons>> <<npcVagina $penistarget>> but <<he>> pushes you away.</span><<set $penisactiondefault to "penistovagina">> <</if>> <</if>> <</widget>> <<widget "effectspenistoanus">> <<if $penisaction is "penistoanus">> <<personselect $penistarget>> <<set $penisaction to 0>><<submission 10>><<penileskilluse>><<combatpromiscuity5>> <<if combatSkillCheck("penile", $penistarget)>> <<if ($NPCList[$penistarget].vagina is 0 or $NPCList[$penistarget].vagina is "none") and ($NPCList[$penistarget].penis is 0 or $NPCList[$penistarget].penis is "none")>> <<set $_target to $NPCList[$penistarget]>> <<if $_target.vagina isnot "none">> <<set $_target.vagina to "otheranusentrance">> <</if>> <<if $_target.penis isnot "none">> <<set $_target.penis to "otheranusentrance">> <</if>> <<submission 2>> <<set $penisuse to "otheranus">><<set $penisstate to "otheranusentrance">><<set $penisactiondefault to "otheranustease">> <<if $leftarm is "coverpenis">> <<set $leftarm to 0>> <</if>> <<if $rightarm is "coverpenis">> <<set $rightarm to 0>> <</if>> <span class="lblue">You press your <<penis>> against <<combatpersons>> ass.</span> <<if $enemytype is "beast">><<set $_target.stance to "top">><</if>> <<set $_target.location.genitals to "genitals">> <<else>> <span class="blue">You try to press your <<penis>> against <<combatpersons>> <<npcAnus $penistarget>>, but your position won't let you.</span> <<set $penisactiondefault to "penistoanus">> <<if $NPCList[$penistarget].condom and $NPCList[$penistarget].condom.willUse is true and !$player.condom and $parasite.penis.name is undefined>> <<if playerChastity("penis")>> <<He>> tries to put a condom on your penis, but can't seem to get it over your $worn.genitals.name. <span class="red"><<He>> quickly gives up.</span> <<set $NPCList[$penistarget].condom.willUse to false>> <<else>> <span class="green"><<He>> slips <<condomDesc $penistarget>> on your <<penis>>.</span> <<equipNPCCondom $penistarget "player">> <</if>> <</if>> <</if>> <<else>> <span class="blue">You try to press your <<penis>> against <<combatpersons>> <<npcAnus $penistarget>> but <<he>> pushes you away.</span> <<set $penisactiondefault to "penistoanus">> <<if $NPCList[$penistarget].condom and $NPCList[$penistarget].condom.willUse is true and !$player.condom and $parasite.penis.name is undefined>> <<if playerChastity("penis")>> <<He>> tries to put a condom on your penis, but can't seem to get it over your $worn.genitals.name. <span class="red"><<He>> quickly gives up.</span> <<set $NPCList[$penistarget].condom.willUse to false>> <<else>> <span class="green"><<He>> slips <<condomDesc $penistarget>> on your <<penis>>.</span> <<equipNPCCondom $penistarget "player">> <</if>> <</if>> <</if>> <</if>> <</widget>> <<widget "effectspenisvaginafuck">> <<if $penisaction is "penisvaginafuck" and (playerPenisSize() gte 0 or $arousal gte $arousalmax * (3 / 4))>> <<personselect $penistarget>> <<set $penisaction to 0>><<submission 20>><<penileskilluse>><<combatpromiscuity5>> <<if random(0,1) is 1 or ($penisWetness + (currentSkillValue("penileskill") / 10)) gte (playerPenisSize() * 15) + random(1, 40)>> <<set $_target to $NPCList[$penistarget]>> <<set $_target.vagina to "penis">><<set $penisactiondefault to "cooperate">> <<if playerHasStrapon()>> <<penis_lube_text>> <span class="pink">you <<peniletext>> thrust deep into <<combatpersons>> pussy.</span> <<sex 30 "genitals" $penistarget>> <<elseif $player.virginity.penile isnot true>> <<penis_lube_text>> <span class="pink">you <<peniletext>> thrust deep into <<combatpersons>> pussy.</span> <<sex 30 "genitals" $penistarget>> <<raped>><<penisraped>> <<elseif $player.virginity.penile is true>> <<penis_lube_text>> <span class="pink">you <<peniletext>> thrust your virgin penis into <<combatpersons>> pussy.</span> <span class="red">You feel your foreskin separate from your glans, <<virginitylosttext $NPCList[_n].fullDescription>></span> <<sex 100 "genitals" $penistarget>><<violence 30>><<bruise penis>><<set $speechpenisvirgin to 1>> <<raped>><<penisraped>> <</if>> <<penilestat>> <<set $penisstate to "penetrated">> <<takeVirginity $_target.fullDescription "penile">> <<takeNPCVirginity $penistarget "vaginal">> <<else>> You <<peniletext>> press your <<penis>> against <<combatpersons>> pussy, <span class="blue">but fail to penetrate,</span> instead angling away and rubbing past <<his>> clit. <<sex 20 "genitals" $penistarget>><<penilestat>><<set $penisactiondefault to "penisvaginafuck">> <</if>> <<elseif $penisaction is "penisvaginafuck">> <<personselect $penistarget>> <<set $penisaction to 0>><<set $penisactiondefault to "penisvaginafuck">> <span class="red">You fail to penetrate <<combatpersons>> pussy.</span> Such a tiny penis is hard to wield. You need to be more aroused. <</if>> <</widget>> <<widget "effectspenisanusfuck">> <<if $penisaction is "penisanusfuck" and (playerPenisSize() gte 0 or $arousal gte ($arousalmax / 4) * 3)>> <<personselect $penistarget>> <<set $penisaction to 0>><<submission 20>><<penileskilluse>><<combatpromiscuity5>> <<if random(0,1) is 1 or ($penisWetness + (currentSkillValue("penileskill") / 10)) gte (playerPenisSize() * 15) + random(1, 40)>> <<set $_target to $NPCList[$penistarget]>> <<if $_target.vagina is "otheranusentrance" or $_target.vagina is "otheranusimminent">> <<set $_target.vagina to "otheranus">> <</if>> <<if $_target.penis is "otheranusentrance" or $_target.penis is "otheranusimminent">> <<set $_target.penis to "otheranus">> <</if>> <<set $penisactiondefault to "otheranuscooperate">> <<if playerHasStrapon()>> <<penis_lube_text>> <span class="pink">you <<peniletext>> thrust deep into <<combatpersons>> ass.</span> <<sex 30 "genitals" $penistarget>> <<elseif $player.virginity.penile isnot true>> <<penis_lube_text>> <span class="pink">you <<peniletext>> thrust deep into <<combatpersons>> ass.</span> <<sex 30 "genitals" $penistarget>> <<penilestat>><<raped>><<penisraped>> <<elseif $player.virginity.penile is true>> <<penis_lube_text>> <span class="pink">you <<peniletext>> thrust your virgin penis into <<combatpersons>> ass.</span> <span class="red">You feel your foreskin separate from your glans, <<virginitylosttext $NPCList[_n].fullDescription>></span> <<sex 100 "genitals" $penistarget>><<violence 30>><<bruise penis>><<set $speechpenisvirgin to 1>> <<penilestat>><<raped>><<penisraped>> <</if>> <<set $penisstate to "otheranus">> <<takeVirginity $_target.fullDescription "penile">> <<takeNPCVirginity $penistarget "anal">> <<else>> You <<peniletext>> press your <<penis>> against <<combatpersons>> ass, <span class="blue">but fail to penetrate,</span> instead angling away and rubbing between <<his>> cheeks. <<sex 20 "genitals" $penistarget>><<penilestat>><<set $penisactiondefault to "penisanusfuck">> <</if>> <<elseif $penisaction is "penisanusfuck">> <<personselect $penistarget>> <<set $penisaction to 0>><<set $penisactiondefault to "penisanusfuck">> <span class="red">You fail to penetrate <<combatpersons>> ass.</span> Such a tiny penis is hard to wield. You need to be more aroused. <</if>> <</widget>> <<widget "effectspenistopenis">> <<if $penisaction is "penistopenis">> <<personselect $penistarget>> <<set $penisaction to 0>><<submission 5>><<penileskilluse>><<combatpromiscuity4>> <<if combatSkillCheck("penile", $penistarget)>> <<if $NPCList[$penistarget].penis is 0>> <<set $_target to $NPCList[$penistarget]>> <<submission 5>><<set $penisuse to "otherpenis">><<set $penisstate to "otherpenisentrance">> <<set $_target.penis to "penisentrance">><<set $penisactiondefault to "otherpenisrub">> <<if $leftarm is "coverpenis">> <<set $leftarm to 0>> <</if>> <<if $rightarm is "coverpenis">> <<set $rightarm to 0>> <</if>> <span class="lblue">You caress <<combatpersons>> <<npcPenisSimple $penistarget>> with your <<penisSimple>><<if playerChastity("penis")>>, through your $worn.genitals.name<</if>>.</span> <<if $enemytype is "beast">> <<set $_target.stance to "top">> <</if>> <<set $_target.location.genitals to "genitals">> <<else>> <span class="blue">You try to press your <<penis>> against <<combatpersons>> <<npcPenisSimple $penistarget>>, but the phallus is already occupied.</span><<set $penisactiondefault to "penistopenis">> <</if>> <<else>> <span class="blue">You try to move your <<penis>> nearer <<combatpersons>> <<npcPenisSimple $penistarget>>, but <<ohe>> pushes you off.</span><<set $penisactiondefault to "penistopenis">> <</if>> <</if>> <</widget>> <<widget "effectspenistopenisfuck">> <<if $penisaction is "penistopenisfuck" and ["penisentrance", "penisimminent"].includes($NPCList[$penistarget].penis)>> <<personselect $penistarget>> <<set $penisaction to 0>><<submission 5>><<penileskilluse>><<combatpromiscuity4>> <<if combatSkillCheck("penile", $penistarget)>> <<submission 5>><<set $penisuse to "otherpenis">><<set $penisstate to "otherpenis">> <<set $NPCList[$penistarget].penis to "penis">><<set $penisactiondefault to "fencingcooperate">> <span class="blue">You press <<combatpersons>> <<npcPenisSimple $penistarget>> with your penis<<if playerChastity("penis")>>, through your $worn.genitals.name<</if>>.</span> <<else>> <span class="blue">You try to press your <<penis>> against <<combatpersons>>, but <<ohe>> keeps you away.</span> <<set $penisactiondefault to "penistopenisfuck">> <</if>> <</if>> <</widget>><<widget "speak">> <<if $underwater lte 0 and !$combat_silenced>> <<if $enemyno gte 2>> <<set _pron to "them">> <<else>> <<switch $pronoun>> <<case "m">><<set _pron to "him">> <<case "f">><<set _pron to "her">> <<case "i">><<set _pron to "it">> <</switch>> <</if>> <<set _askActions to {"Nothing":"rest"}>> <<if !$gloryhole and $gamemode isnot "soft">> <<seductiondifficulty true>> <<set _diffText to " " + clone(_text_output)>> <<else>> <<set _diffText to "">> <</if>> <<if $consensual is 1>> <<if $wolfgirl gte 2>> <<set _mouthaction["Growl"] to "growl">> <</if>> <<if $noFinish isnot 1>> <<set _askActions["to stop" + _diffText] to "finish">> <</if>> <<if $enemytype is "man" and !$npcSub>> <<if $player.vaginaExist and $vaginalchastity is 0 and $novaginal is 0>> <<if $vaginastate is "penetrated" or $vaginastate is "doublepenetrated">> <<set _askActions["to pull out of your pussy immediately" + _diffText] to "novaginal">> <<else>> <<set _askActions["to not put anything in your pussy" + _diffText] to "novaginal">> <</if>> <</if>> <<if $player.penisExist and $penilechastity is 0 and $nopenile is 0>> <<if $penisstate is "penetrated">> <<set _askActions["to withdraw your penis immediately" + _diffText] to "nopenile">> <<else>> <<set _askActions["to not put your penis in anything" + _diffText] to "nopenile">> <</if>> <</if>> <<if $analchastity is 0 and $noanal is 0>> <<if $anusstate is "penetrated" or $anusstate is "doublepenetrated">> <<set _askActions["to pull out of your anus immediately" + _diffText] to "noanal">> <<else>> <<set _askActions["to not put anything in your anus" + _diffText] to "noanal">> <</if>> <</if>> <<if $settings.asphyxiaLevel gte 1 and $nochoke isnot 1 and !$gloryhole>> <<set _askActions["to not choke you" + _diffText] to "nochoke">> <</if>> <</if>> <<set $_npcname to $npc[$npcrow.indexOf($mouthtarget)]>> <<if ["Robin","Kylar","Alex","Avery","Whitney","Eden","Sydney"].includes($_npcname) and !npcHasStrapon($mouthtarget) and [0, "clothed"].includes($NPCList[$mouthtarget].vagina)>> <<if ["Avery","Whitney"].includes($_npcname) or $npc[$npcrow.indexOf($mouthtarget)] is $_npcname and checkIfNPCHasCategorySextoy($_npcname,"strap-on").length > 0>> <<set _askActions["to wear a strap-on"] to "wearStrapon">> <</if>> <</if>> <<if npcHasStrapon($mouthtarget) and $NPCList[$mouthtarget].penis is 0>> <<set _askActions["to remove "+$NPCList[$mouthtarget].pronouns.his+" strap-on"] to "removeStrapon">> <</if>> <<else>> <<set _mouthaction["Scream"] to "scream">> <<set _mouthaction["Plead"] to "plead">> <<if $wolfgirl gte 2>> <<set _mouthaction["Growl"] to "growl">> <</if>> <<if $angel gte 6 and $angelforgive isnot 1>> <<set _mouthaction["Forgive"] to "forgive">> <</if>> <<if $fallenangel gte 4 and $angelforgive isnot 1 and $enemytype is "man">> <<set _mouthaction["Disparage"] to "disparage">> <</if>> <<if displayDefiantOption(850)>> <<if $fightTargets is undefined>> <<set _mouthaction["Demand"] to "demand">> <</if>> <</if>> <</if>> <<if $worn.over_upper.name isnot "naked" and $worn.over_upper.cursed isnot 1 or $worn.upper.name isnot "naked" and $worn.upper.cursed isnot 1 or $worn.under_upper.name isnot "naked" and $worn.under_upper.cursed isnot 1>> <<if $noupper isnot 1 and $noupperasked isnot 1 and $enemytype is "man" and !$npcSub and !$gloryhole>> <<set _askActions["to leave your top on" + _diffText] to "noupper">> <</if>> <</if>> <<if ($submissive gte 1150 or (hasSexStat("promiscuity", 3) and $consensual is 1)) and !$robinRentEvent>> <<set _mouthaction["Moan"] to "moan">> <</if>> <<if !$npcSub and $settings.asphyxiaLevel gte 1 and $consensual is 1 and $enemytype is "man" and ($choketrait or ($chokeorgasm gte 1 and $submissive gt 850) or ($awarelevel gte 2 and $submissive gte 1150)) and !$gloryhole>> <<set _askActions["to choke you"] to "askchoke">> <</if>> <<if $consensual is 1 and $masochism_level gte 1 or $masochism_level gte 3>> <<set _askActions["to be more rough"] to "askrough">> <</if>> <<if $enemytype is "man" and !$NPCList[$mouthtarget].condomAsk and $settings.condomLevel gte 1 and !$abomination and $NPCList[$mouthtarget].fullDescription isnot "Ivory Wraith">> <<if ($NPCList[$mouthtarget].penis is "none" or $NPCList[$mouthtarget].penisdesc.includes("strap-on")) and (!$player.penisExist or $crossdressing gte 1)>> /*Prevent condoms in situations where none can be equipped*/ <<else>> <<if !wearingCondom($mouthtarget)>> <<set _askActions["to use a condom"] to "condoms">> <</if>> <<set _askActions["to not use a condom"] to "noCondoms">> <</if>> <</if>> <<if $enemytype is "man" and !$pullOutAsk and !$NPCList[$mouthtarget].condom and !$abomination and $NPCList[$mouthtarget].fullDescription isnot "Ivory Wraith">> <<if $NPCList[$mouthtarget].penis.toString().includes("vagina") or $NPCList[$mouthtarget].penis.toString().includes("anus")>> <<set _askActions["to pull out before finishing"] to "askPullOut">> <</if>> <</if>> <<if $robinRentEvent is 1 and $combatPhase is "pay">> <<if $money gte $rentmoney + ($babyRent or 0)>> <<set _mouthaction["Pay Bailey"] to "pay">> <<else>> <<set _mouthaction["Tell Bailey you can't afford it"] to "pay">> <</if>> <</if>> <<if $worn.face.name isnot "naked" and $worn.face.type.includes("mask") and $consensual is 1 and $enemytype is "man" and !$npcSub and !$gloryhole and $nomaskasked isnot 1>> <<set _askActions["to leave your mask on" + _diffText] to "nomask">> <</if>> <<set _askValues to Object.values(_askActions)>> <<if _askValues.length gt 0>> <<set _mouthaction["Ask "+_pron+""] to "ask">> <<set _actionsSet = DefaultActions.get($defaultsCombatType, $defaultsType, "askActions")>> <<set $askAction to _actionsSet.find(action => _askValues.includes(action)) || _askValues[0]>> <<switch $askAction>> <<case "askchoke" "condoms" "noCondoms">><<set $askActionColour to "sub">> <<default>><<set $askActionColour to "brat">> <</switch>> <</if>> <<if $awarelevel gte 2 and $enemytype is "man">> <<if $consensual is 1>> <<set _mouthaction["Tease " + $NPCList[$mouthtarget].pronouns.his] to "mock">> <<else>> <<set _mouthaction["Mock " + $NPCList[$mouthtarget].pronouns.his] to "mock">> <</if>> <</if>> <</if>> <</widget>> <<widget "replaceAskColour">> <<switch $askAction>> <<case "askchoke" "condoms" "noCondoms">> <<if $options.combatControls.includes("adio")>> <<addclass "#askLabel" "sub">><<removeclass "#askLabel" "brat">> <<else>> <<addclass "#askDifficulty" "subList">><<removeclass "#askDifficulty" "bratList">> <</if>> <<case "askchoke" "askPullOut">> <<default>> <<if $options.combatControls.includes("adio")>> <<addclass "#askLabel" "brat">><<removeclass "#askLabel" "sub">> <<else>> <<addclass "#askDifficulty" "bratList">><<removeclass "#askDifficulty" "subList">> <</if>> <</switch>> <</widget>><<widget "actionsmouththighrub">> <<if $enemytype is "beast">> <<if $arousal gte ($arousalmax / 5) * 4>> <<if $enemyanger gte (($enemyangermax / 5) * 2)>> You <<thightext>> press your thigh into the <<beasttypes>> mouth, keeping it at bay. It bites down a little harder than you would like, you hope it doesn't consider you food. <<else>> You <<thightext>> press your thigh into the <<beasttypes>> mouth, keeping it at bay. <</if>> <<else>> <<if $enemyanger gte (($enemyangermax / 5) * 2)>> You <<thightext>> press your thigh into the <<beasttypes>> mouth, keeping it at bay. It bites down a little harder than you would like, you hope it doesn't consider you food. <<else>> You <<thightext>> press your thigh into the <<beasttypes>> mouth, keeping it at bay. <</if>> <</if>> <<else>> <<if $arousal gte ($arousalmax / 5) * 4>> <<if $pain gte 40>> You <<thightext>> keep your shaking thigh pressed against <<their _args[0]>> mouth. <<else>> You <<thightext>> keep your trembling thigh pressed against <<their _args[0]>> mouth. <</if>> <<else>> <<if $pain gte 40>> You <<thightext>> keep your quivering thigh pressed against <<their _args[0]>> mouth. <<else>> You <<thightext>> keep your thigh pressed against <<their _args[0]>> mouth. <</if>> <</if>> <</if>> <</widget>> <<widget "actionsothermouthpenistease">> <<if $enemytype is "beast">> <<if $arousal gte ($arousalmax / 5) * 4>> <<if $pain gte 40>> You <<peniletext>> and carefully rub the <<beasttypes>> tongue with your <<penis>>. <<else>> You <<peniletext>> rub the <<beasttypes>> tongue with your <<penis>>. <</if>> <<else>> <<if $pain gte 40>> You <<peniletext>> and carefully prod the <<beasttypes>> tongue with your <<penis>>. <<else>> You <<peniletext>> prod the <<beasttypes>> tongue with your <<penis>>. <</if>> <</if>> <<else>> <<if $arousal gte ($arousalmax / 5) * 4>> <<if $pain gte 40>> You <<peniletext>> rub your <<penis>> against <<their _args[0]>> tongue. <<else>> You <<peniletext>> slap your <<penis>> against <<their _args[0]>> tongue. <</if>> <<else>> <<if $pain gte 40>> You <<peniletext>> rub your <<penis>> against <<their _args[0]>> cheek. <<else>> You <<peniletext>> slap your <<penis>> against <<their _args[0]>> cheek. <</if>> <</if>> <</if>> <</widget>> <<widget "actionsothermouthpenisrub">> <<if $enemytype is "beast">> <<if $arousal gte ($arousalmax / 5) * 4>> <<if $pain gte 40>> You <<peniletext>> and carefully rub the <<beasttypes>> tongue with your <<penis>>. <<else>> You <<peniletext>> rub the <<beasttypes>> tongue with your <<penis>>. <</if>> <<else>> <<if $pain gte 40>> You <<peniletext>> and carefully prod the <<beasttypes>> tongue with your <<penis>>. <<else>> You <<peniletext>> prod the <<beasttypes>> tongue with your <<penis>>. <</if>> <</if>> <<else>> <<if $arousal gte ($arousalmax / 5) * 4>> <<if $pain gte 40>> You <<peniletext>> rub the tip of your <<penis>> between <<their _args[0]>> lips. <<else>> You <<peniletext>> caress <<their _args[0]>> lips with your <<penis>>. <</if>> <<else>> <<if $pain gte 40>> You <<peniletext>> circle <<their _args[0]>> lips with the tip of your <<penis>>. <<else>> You <<peniletext>> prod <<their _args[0]>> lips with the tip of your <<penis>>. <</if>> <</if>> <</if>> <</widget>> <<widget "penises">><<silently>> <!-- possible alternatives: ...--> <<if $arousal gte ($arousalmax / 5) * 4>> <<set _text_output to "shafts">> <<elseif $arousal gte ($arousalmax / 5) * 3>> <<set _text_output to "boners">> <<elseif $arousal gte ($arousalmax / 5) * 2>> <<set _text_output to "dicks">> <<elseif $arousal gte $arousalmax / 5>> <<set _text_output to "glandes">> <<else>> <<set _text_output to "penises">> <</if>> <</silently>><<print _text_output>><</widget>> <<widget "pussies">><<silently>> <!-- possible alternatives: muffs, twats, slits, snatches, vulvas ...--> <<if $arousal gte ($arousalmax / 5) * 4>> <<set _text_output to "clits">> <<elseif $arousal gte ($arousalmax / 5) * 3>> <<set _text_output to "cunts">> <<elseif $arousal gte ($arousalmax / 5) * 2>> <<set _text_output to "pussies">> <<elseif $arousal gte $arousalmax / 5>> <<set _text_output to "quims">> <<else>> <<set _text_output to "vaginas">> <</if>> <</silently>><<print _text_output>><</widget>> <<widget "actionsothervaginavaginarub">> <<if $enemytype is "beast">> <<if $arousal gte ($arousalmax / 5) * 4>> <<if $pain gte 40>> You <<vaginaltext>> and carefully rub the <<beasttypes>> pussy with your own. <<else>> You <<vaginaltext>> rub the <<beasttypes>> pussy with your own. <</if>> <<else>> <<if $pain gte 40>> You <<vaginaltext>> and carefully kiss the <<beasttypes>> pussy with your own. <<else>> You <<vaginaltext>> kiss the <<beasttypes>> pussy with your own. <</if>> <</if>> <<else>> <<if $arousal gte ($arousalmax / 5) * 4>> <<if $pain gte 40>> You <<vaginaltext>> rub your <<pussies>> together. <<else>> You <<vaginaltext>> knead your <<pussies>> together. <</if>> <<else>> <<if $pain gte 40>> You <<vaginaltext>> rub your <<pussy>> against <<their _args[0]>> own. <<else>> You <<vaginaltext>> kiss <<their _args[0]>> pussy with your own. <</if>> <</if>> <</if>> <</widget>> <<widget "actionsotherpenispenisrub">> /* fencing */ <<if $enemytype is "beast">> <<if $arousal gte ($arousalmax / 5) * 4>> <<if $pain gte 40>> You <<peniletext>> and carefully rub the <<beasttypes>> penis with your <<penis>>. <<else>> You <<peniletext>> rub the <<beasttypes>> penis with your <<penis>>. <</if>> <<else>> <<if $pain gte 40>> You <<peniletext>> and carefully caress the <<beasttypes>> penis with your <<penis>>. <<else>> You <<peniletext>> caress the <<beasttypes>> penis with your <<penis>>. <</if>> <</if>> <<else>> <<if $arousal gte ($arousalmax / 5) * 4>> <<if $pain gte 40>> You <<peniletext>> rub your <<penises>> together. <<else>> You <<peniletext>> knead your <<penises>> together. <</if>> <<else>> <<if $pain gte 40>> You <<peniletext>> rub your <<penis>> against <<their _args[0]>> own. <<else>> You <<peniletext>> caress <<their _args[0]>> penis with your own. <</if>> <</if>> <</if>> <</widget>> <<widget "actionsothermouthpenisthrust">> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<if $arousal gte ($arousalmax / 5) * 4>> Your <<penis>> is ruthlessly fucked by <<their _args[0]>> mouth. Driven by instinct, you <<peniletext>> push back as you approach your peak. <<elseif $arousal gte ($arousalmax / 5) * 2>> Your <<penis>> is ruthlessly fucked by <<their _args[0]>> mouth. You <<peniletext>> push back against the movements. <<else>> Your <<penis>> is ruthlessly fucked by <<their _args[0]>> mouth. You <<peniletext>> push back, trying to reduce your discomfort. <</if>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<if $arousal gte ($arousalmax / 5) * 4>> Your <<penis>> is hungrily enveloped by <<their _args[0]>> mouth. Driven by instinct, you <<peniletext>> push back as you approach your peak. <<elseif $arousal gte ($arousalmax / 5) * 2>> Your <<penis>> is hungrily enveloped by <<their _args[0]>> mouth. You <<peniletext>> push back against the movements. <<else>> Your <<penis>> is hungrily enveloped by <<their _args[0]>> mouth. You <<peniletext>> push back, trying to reduce your discomfort. <</if>> <<else>> <<if $arousal gte ($arousalmax / 5) * 4>> Your <<penis>> is rhythmically engulfed and regurgitated by <<their _args[0]>> mouth. Driven by instinct, you <<peniletext>> push back as you approach your peak. <<elseif $arousal gte ($arousalmax / 5) * 2>> Your <<penis>> is rhythmically engulfed and regurgitated by <<their _args[0]>> mouth. You <<peniletext>> push back against the movements. <<else>> Your <<penis>> is rhythmically engulfed and regurgitated by <<their _args[0]>> mouth. You <<peniletext>> push back, trying to reduce your discomfort. <</if>> <</if>> <</widget>> <<widget "actionsothermouthpenisescape">> <<if $enemytype is "beast">> <<if $enemyanger lte 20>> <span class="blue">You shift your pelvis, moving your <<penis>> away from the <<beasttypes>> mouth before it can envelop you.</span> It doesn't give up however. <<elseif $enemyanger lte 100>> <span class="blue">You shift your pelvis, moving your <<penis>> away from the beast's incessant probing before it can envelop you.</span> It snarls in frustration. <<else>> <span class="blue">You shift your pelvis, moving your <<penis>> away from the beast's savage probing before it can envelop you.</span> <</if>> <<else>> <<if $pain lte 20>> <span class="blue">You shift your pelvis, moving your <<penis>> away from <<their _args[0]>> mouth.</span> <<elseif $pain lte 60>> <span class="blue">You shift your pelvis, moving your <<penis>> away from <<their _args[0]>> mouth.</span> <<else>> <span class="blue">You shift your pelvis in desperation, moving your <<penis>> away from <<their _args[0]>> mouth.</span> <</if>> <</if>> <</widget>> <<widget "actionsothermouthvaginatease">> <<if $enemytype is "beast">> <<if $arousal gte ($arousalmax / 5) * 4>> <<if $pain gte 40>> You <<vaginaltext>> and carefully rub the <<beasttypes>> tongue with your <<pussy>>. <<else>> You <<vaginaltext>> rub the <<beasttypes>> tongue with your <<pussy>>. <</if>> <<else>> <<if $pain gte 40>> You <<vaginaltext>> and carefully kiss the <<beasttypes>> tongue with your <<pussy>>. <<else>> You <<vaginaltext>> kiss the <<beasttypes>> tongue with your <<pussy>>. <</if>> <</if>> <<else>> <<if $arousal gte ($arousalmax / 5) * 4>> <<if $pain gte 40>> You <<vaginaltext>> rub your <<pussy>> against <<their _args[0]>> tongue. <<else>> You <<vaginaltext>> smooch <<their _args[0]>> tongue with your <<pussy>>. <</if>> <<else>> <<if $pain gte 40>> You <<vaginaltext>> rub your <<pussy>> against <<their _args[0]>> cheek. <<else>> You <<vaginaltext>> kiss <<their _args[0]>> cheek with your <<pussy>>. <</if>> <</if>> <</if>> <</widget>> <<widget "actionsothermouthvaginarub">> <<if $enemytype is "beast">> <<if $arousal gte ($arousalmax / 5) * 4>> <<if $pain gte 40>> You <<vaginaltext>> and carefully rub the <<beasttypes>> tongue with your <<pussy>>. <<else>> You <<vaginaltext>> rub the <<beasttypes>> tongue with your <<pussy>>. <</if>> <<else>> <<if $pain gte 40>> You <<vaginaltext>> and carefully kiss the <<beasttypes>> tongue with your <<pussy>>. <<else>> You <<vaginaltext>> kiss the <<beasttypes>> tongue with your <<pussy>>. <</if>> <</if>> <<else>> <<if $arousal gte ($arousalmax / 5) * 4>> <<if $pain gte 40>> You <<vaginaltext>> your <<pussy>> against <<their _args[0]>> tongue. <<else>> You <<vaginaltext>> caress <<their _args[0]>> tongue with your <<pussy>>. <</if>> <<else>> <<if $pain gte 40>> You <<vaginaltext>> kiss <<their _args[0]>> tongue with your <<pussy>>. <<else>> You <<vaginaltext>> rub <<their _args[0]>> lips with your <<pussy>>. <</if>> <</if>> <</if>> <</widget>> <<widget "actionsothermouthvaginathrust">> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<if $arousal gte ($arousalmax / 5) * 4>> Your <<pussy>> is ruthlessly fucked by <<their _args[0]>> tongue as <<their _args[0]>> lips knead your labia. Driven by instinct, you <<vaginaltext>> push back as you approach your peak. <<elseif $arousal gte ($arousalmax / 5) * 2>> Your <<pussy>> is ruthlessly fucked by <<their _args[0]>> tongue as <<their _args[0]>> lips knead your labia. You <<vaginaltext>> push back against the movements. <<else>> Your <<pussy>> is ruthlessly fucked by <<their _args[0]>> tongue as <<their _args[0]>> lips knead your labia. You <<vaginaltext>> push back, trying to reduce your discomfort. <</if>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<if $arousal gte ($arousalmax / 5) * 4>> Your <<pussy>> is hungrily penetrated by <<their _args[0]>> tongue as <<their _args[0]>> lips knead your labia. Driven by instinct, you <<vaginaltext>> push back as you approach your peak. <<elseif $arousal gte ($arousalmax / 5) * 2>> Your <<pussy>> is hungrily penetrated by <<their _args[0]>> tongue as <<their _args[0]>> lips knead your labia. You <<vaginaltext>> push back against the movements. <<else>> Your <<pussy>> is hungrily penetrated by <<their _args[0]>> tongue as <<their _args[0]>> lips knead your labia. You <<vaginaltext>> push back, trying to reduce your discomfort. <</if>> <<else>> <<if $arousal gte ($arousalmax / 5) * 4>> Your <<pussy>> is rhythmically invaded by <<their _args[0]>> tongue as <<their _args[0]>> lips knead your labia. Driven by instinct, you <<vaginaltext>> push back as you approach your peak. <<elseif $arousal gte ($arousalmax / 5) * 2>> Your <<pussy>> is rhythmically invaded by <<their _args[0]>> tongue as <<their _args[0]>> lips knead your labia. You <<vaginaltext>> push back against the movements. <<else>> Your <<pussy>> is rhythmically invaded by <<their _args[0]>> tongue as <<their _args[0]>> lips knead your labia. You <<vaginaltext>> push back, trying to reduce your discomfort. <</if>> <</if>> <</widget>> <<widget "actionsothermouthvaginaescape">> <<if $enemytype is "beast">> <<if $enemyanger lte 20>> <span class="blue">You shift your pelvis, moving your <<pussy>> away from the <<beasttypes>> mouth before it can penetrate you.</span> It doesn't give up however. <<elseif $enemyanger lte 100>> <span class="blue">You shift your pelvis, moving your <<pussy>> away from the beast's incessant probing before it can penetrate you.</span> It snarls in frustration. <<else>> <span class="blue">You shift your pelvis, moving your <<pussy>> away from the beast's savage probing before it can penetrate you.</span> <</if>> <<else>> <<if $pain lte 20>> <span class="blue">You shift your pelvis, moving your <<pussy>> away from <<their _args[0]>> mouth.</span> <<elseif $pain lte 60>> <span class="blue">You shift your pelvis, moving your <<pussy>> away from <<their _args[0]>> mouth.</span> <<else>> <span class="blue">You shift your pelvis in desperation, moving your <<pussy>> away from <<their _args[0]>> mouth.</span> <</if>> <</if>> <</widget>> <<widget "actionsmouthbottomrub">> <<if $enemytype is "beast">> <<if $arousal gte ($arousalmax / 5) * 4>> <<if $enemyanger gte (($enemyangermax / 5) * 2)>> You <<bottomtext>> press your <<bottom>> into the <<beasttypes>> mouth, keeping it at bay. It bites down a little harder than you would like. You hope it doesn't consider you food. <<else>> You <<bottomtext>> press your <<bottom>> into the <<beasttypes>> mouth, keeping it at bay. <</if>> <<else>> <<if $enemyanger gte (($enemyangermax / 5) * 2)>> You <<bottomtext>> press your <<bottom>> into the <<beasttypes>> mouth, keeping it at bay. It bites down a little harder than you would like. You hope it doesn't consider you food. <<else>> You <<bottomtext>> press your <<bottom>> into the <<beasttypes>> mouth, keeping it at bay. <</if>> <</if>> <<else>> <<if $arousal gte ($arousalmax / 5) * 4>> <<if $pain gte 40>> You <<bottomtext>> keep your shaking <<bottom>> pressed against <<their _args[0]>> mouth. <<else>> You <<bottomtext>> keep your trembling <<bottom>> pressed against <<their _args[0]>> mouth. <</if>> <<else>> <<if $pain gte 40>> You <<bottomtext>> keep your quivering <<bottom>> pressed against <<their _args[0]>> mouth. <<else>> You <<bottomtext>> keep your <<bottom>> pressed against <<their _args[0]>> mouth. <</if>> <</if>> <</if>> <</widget>> <<widget "actionsothermouthanustease">> <<if $enemytype is "beast">> <<if $arousal gte ($arousalmax / 5) * 4>> <<if $pain gte 40>> You <<analtext>> and carefully rub the <<beasttypes>> lips with your <<bottom>>. <<else>> You <<analtext>> rub the <<beasttypes>> lips with your <<bottom>>. <</if>> <<else>> <<if $pain gte 40>> You <<analtext>> and carefully rub the <<beasttypes>> face with your <<bottom>>. <<else>> You <<analtext>> rub the <<beasttypes>> face with your <<bottom>>. <</if>> <</if>> <<else>> <<if $arousal gte ($arousalmax / 5) * 4>> <<if $pain gte 40>> You <<analtext>> rub your <<bottom>> against <<their _args[0]>> lips. <<else>> You <<analtext>> rub <<their _args[0]>> face with your <<bottom>>. <</if>> <<else>> <<if $pain gte 40>> You <<analtext>> rub your <<bottom>> against <<their _args[0]>> cheek. <<else>> You <<analtext>> rub <<their _args[0]>> cheek with your <<bottom>>. <</if>> <</if>> <</if>> <</widget>> <<widget "actionsothermouthanusrub">> <<if $enemytype is "beast">> <<if $arousal gte ($arousalmax / 5) * 4>> <<if $pain gte 40>> You <<analtext>> and carefully rub your anus against the <<beasttypes>> tongue. <<else>> You <<analtext>> rub your anus against the <<beasttypes>> tongue. <</if>> <<else>> <<if $pain gte 40>> You <<analtext>> and carefully rub your <<bottom>> against the <<beasttypes>> tongue. <<else>> You <<analtext>> rub your <<bottom>> against the <<beasttypes>> tongue. <</if>> <</if>> <<else>> <<if $arousal gte ($arousalmax / 5) * 4>> <<if $pain gte 40>> You <<analtext>> your anus against <<their _args[0]>> tongue. <<else>> You <<analtext>> caress <<their _args[0]>> tongue with your anus. <</if>> <<else>> <<if $pain gte 40>> You <<analtext>> rub <<their _args[0]>> tongue with your <<bottom>>. <<else>> You <<analtext>> rub <<their _args[0]>> lips with your <<bottom>>. <</if>> <</if>> <</if>> <</widget>> <<widget "actionsothermouthanusthrust">> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<if $arousal gte ($arousalmax / 5) * 4>> Your <<bottom>> is ruthlessly fucked by <<their _args[0]>> tongue as <<their _args[0]>> lips knead your anus. Driven by instinct, you <<analtext>> push back as you approach your peak. <<elseif $arousal gte ($arousalmax / 5) * 2>> Your <<bottom>> is ruthlessly fucked by <<their _args[0]>> tongue as <<their _args[0]>> lips knead your anus. You <<analtext>> push back against the movements. <<else>> Your <<bottom>> is ruthlessly fucked by <<their _args[0]>> tongue as <<their _args[0]>> lips knead your anus. You <<analtext>> push back, trying to reduce your discomfort. <</if>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<if $arousal gte ($arousalmax / 5) * 4>> Your <<bottom>> is hungrily penetrated by <<their _args[0]>> tongue as <<their _args[0]>> lips knead your anus. Driven by instinct, you <<analtext>> push back as you approach your peak. <<elseif $arousal gte ($arousalmax / 5) * 2>> Your <<bottom>> is hungrily penetrated by <<their _args[0]>> tongue as <<their _args[0]>> lips knead your anus. You <<analtext>> push back against the movements. <<else>> Your <<bottom>> is hungrily penetrated by <<their _args[0]>> tongue as <<their _args[0]>> lips knead your anus. You <<analtext>> push back, trying to reduce your discomfort. <</if>> <<else>> <<if $arousal gte ($arousalmax / 5) * 4>> Your <<bottom>> is rhythmically invaded by <<their _args[0]>> tongue as <<their _args[0]>> lips knead your anus. Driven by instinct, you <<analtext>> push back as you approach your peak. <<elseif $arousal gte ($arousalmax / 5) * 2>> Your <<bottom>> is rhythmically invaded by <<their _args[0]>> tongue as <<their _args[0]>> lips knead your anus. You <<analtext>> push back against the movements. <<else>> Your <<bottom>> is rhythmically invaded by <<their _args[0]>> tongue as <<their _args[0]>> lips knead your anus. You <<analtext>> push back, trying to reduce your discomfort. <</if>> <</if>> <</widget>> <<widget "actionshandanustease">> <<if $enemytype is "beast">> <<if $arousal gte ($arousalmax / 5) * 4>> <<if $pain gte 40>> You <<analtext>> and carefully rub the <<beasttypes>> fingers with your <<bottom>>. <<else>> You <<analtext>> rub the <<beasttypes>> fingers with your <<bottom>>. <</if>> <<else>> <<if $pain gte 40>> You <<analtext>> and carefully rub the <<beasttypes>> fingers with your <<bottom>>. <<else>> You <<analtext>> rub the <<beasttypes>> fingers with your <<bottom>>. <</if>> <</if>> <<else>> <<if $arousal gte ($arousalmax / 5) * 4>> <<if $pain gte 40>> You <<analtext>> rub your <<bottom>> against <<their _args[0]>> fingers. <<else>> You <<analtext>> rub <<their _args[0]>> fingers with your <<bottom>>. <</if>> <<else>> <<if $pain gte 40>> You <<analtext>> rub your <<bottom>> against <<their _args[0]>> hand. <<else>> You <<analtext>> rub <<their _args[0]>> hand with your <<bottom>>. <</if>> <</if>> <</if>> <</widget>> <<widget "actionshandanusthrust">> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<if $arousal gte ($arousalmax / 5) * 4>> Your <<bottom>> is ruthlessly fucked by <<their _args[0]>> hand as <<their _args[0]>> finger pounds your anus. Driven by instinct, you <<analtext>> push back as you approach your peak. <<elseif $arousal gte ($arousalmax / 5) * 2>> Your <<bottom>> is ruthlessly fucked by <<their _args[0]>> hand as <<their _args[0]>> finger pounds your anus. You <<analtext>> push back against the movements. <<else>> Your <<bottom>> is ruthlessly fucked by <<their _args[0]>> hand as <<their _args[0]>> finger pounds your anus. You <<analtext>> push back, trying to reduce your discomfort. <</if>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<if $arousal gte ($arousalmax / 5) * 4>> Your <<bottom>> is hungrily penetrated by <<their _args[0]>> hand as <<their _args[0]>> finger pounds your anus. Driven by instinct, you <<analtext>> push back as you approach your peak. <<elseif $arousal gte ($arousalmax / 5) * 2>> Your <<bottom>> is hungrily penetrated by <<their _args[0]>> hand as <<their _args[0]>> finger pounds your anus. You <<analtext>> push back against the movements. <<else>> Your <<bottom>> is hungrily penetrated by <<their _args[0]>> hand as <<their _args[0]>> finger pounds your anus. You <<analtext>> push back, trying to reduce your discomfort. <</if>> <<else>> <<if $arousal gte ($arousalmax / 5) * 4>> Your <<bottom>> is rhythmically invaded by <<their _args[0]>> hand as <<their _args[0]>> finger pounds your anus. Driven by instinct, you <<analtext>> push back as you approach your peak. <<elseif $arousal gte ($arousalmax / 5) * 2>> Your <<bottom>> is rhythmically invaded by <<their _args[0]>> hand as <<their _args[0]>> finger pounds your anus. You <<analtext>> push back against the movements. <<else>> Your <<bottom>> is rhythmically invaded by <<their _args[0]>> hand as <<their _args[0]>> finger pounds your anus. You <<analtext>> push back, trying to reduce your discomfort. <</if>> <</if>> <</widget>> <<widget "actionshandanustake">> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<if $arousal gte ($arousalmax / 5) * 4>> Your anus is ruthlessly finger-fucked. <<elseif $arousal gte ($arousalmax / 5) * 2>> Your anus is ruthlessly finger-fucked. <<else>> Your anus is ruthlessly finger-fucked. <</if>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<if $arousal gte ($arousalmax / 5) * 4>> Your anus is relentlessly pounded by <<their _args[0]>> finger. <<elseif $arousal gte ($arousalmax / 5) * 2>> Your anus is relentlessly pounded by <<their _args[0]>> finger. <<else>> Your anus is relentlessly pounded by <<their _args[0]>> finger. <</if>> <<else>> <<if $arousal gte ($arousalmax / 5) * 4>> Your anus yields to the repeated insertions of <<their _args[0]>> finger. <<elseif $arousal gte ($arousalmax / 5) * 2>> Your anus yields to the repeated insertions of <<their _args[0]>> finger. <<else>> Your anus yields to the repeated insertions of <<their _args[0]>> finger. <</if>> <</if>> <</widget>> <<widget "actionsothermouthanusescape">> <<if $enemytype is "beast">> <<if $enemyanger lte 20>> <span class="blue">You shift your pelvis, moving your <<bottom>> away from the <<beasttypes>> mouth before it can penetrate you.</span> It doesn't give up however. <<elseif $enemyanger lte 100>> <span class="blue">You shift your pelvis, moving your <<bottom>> away from the beast's incessant probing before it can penetrate you.</span> It snarls in frustration. <<else>> <span class="blue">You shift your pelvis, moving your <<bottom>> away from the beast's savage probing before it can penetrate you.</span> <</if>> <<else>> <<if $pain lte 20>> <span class="blue">You shift your pelvis, moving your <<bottom>> away from <<their _args[0]>> mouth.</span> <<elseif $pain lte 60>> <span class="blue">You shift your pelvis, moving your <<bottom>> away from <<their _args[0]>> mouth.</span> <<else>> <span class="blue">You shift your pelvis in desperation, moving your <<bottom>> away from <<their _args[0]>> mouth.</span> <</if>> <</if>> <</widget>> <<widget "actionspenisstroke">> <<if $enemytype is "beast">> You gingerly caress the beast's penis. <<else>> <<if _args[1] isnot undefined>> <<set $_target to "two">> <<elseif _args[0] isnot undefined>> <<set $_target to _args[0]>> <<else>> <<set $_target to 0>> <</if>> <<if $consensual is 1>> <<if $arousal lte ($arousalmax / 5) * 3>> You reach for <<someones $_target>> penis and gently caress its length. <<else>> You eagerly reach for <<someones $_target>> penis and caress its length. <</if>> <<else>> You gingerly rub <<someones $_target>> penis. <</if>> <</if>> <</widget>> <<widget "actionsStroke">> <<if _args.length lte 0>> <<error { message : "Missing parameters for <<actionsStroke>> ", source : "Called from: " + Utils.GetStack() }>> <</if>> <<if $enemytype is "beast">> You pat the <<beasttype>> on the head. <<else>> You ?stroke <<if _args.length is 2 and _args[0] isnot _args[1]>> the <<personselect _args[0]>><<persons>> and the <<personselect _args[1]>><<persons>> <<elseif $enemyno lte 1>> <<personselect _args[0]>><<his>> <<else>> the <<personselect _args[0]>><<persons>> <</if>> skin. <</if>> <</widget>> <<widget "actionshit">> <<if _args[0] is "both">> <<set _hand to "hands">> <<set $_target to $lefttarget>> <<else>> <<set _hand to "hand">> <<if _args[0] isnot undefined>> <<set $_target to _args[0]>> <<else>> <<set $_target to 0>> <</if>> <</if>> <<if $enemytype is "beast">> <<if $pain lte 20>> You smack the <<beasttype>> with your _hand. <<elseif $pain lte 60>> You fight through pain and smack the <<beasttype>> with your _hand. <<else>> Pained and terrified, you flail at the <<beasttype>>. <</if>> <<else>> <<if $pain lte 20>> You strike <<someone $_target>> with your _hand. <<elseif $pain lte 60>> You fight through the pain and strike at <<someone $_target>> with your _hand. <<else>> Pained and terrified, you flail in self-defence. <</if>> <</if>> <</widget>> <<widget "actionsclitstroke">> <<if $consensual is 1>> <<if $arousal lte ($arousalmax / 5) * 3>> You <<handtext>> stroke <<their _args[0]>> clitoris between your fingers. <<else>> Eager, you <<handtext>> fondle <<their _args[0]>> clitoris between your fingers. <</if>> <<else>> Hoping to mollify, you <<handtext>> stroke <<their _args[0]>> clitoris between your fingers. <</if>> <</widget>> <<widget "actionshandedge">> <<if $arousal gte ($arousalmax / 5) * 4>> <<print either( "It's a struggle to keep still, but you <<handtext>>", "With a trembling hand, you <<handtext>>", "Your hand twitches as you <<handtext>>" )>> <<elseif $arousal gte ($arousalmax / 5) * 2>> <<print either( "Warmth creeps up your arm as you <<handtext>>", "Despite the rising heat, you <<handtext>>", "You steady your hand and <<handtext>>" )>> <<else>> You <<handtext>> <</if>> <<if _args[1].includes("penis")>> <<print either( "pinch <<his>> shaft between your fingers,", "trail a finger around <<his>> groin,", "thumb the tip of <<his>> cock," )>> <<else>> <<print either( "press <<his>> lips between your fingers,", "trail a finger around <<his>> labia,", "ease your palm against <<his>> clit," )>> <</if>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<print either( "holding <<him>> on the brink of an orgasm.", "waving relief just out of <<his>> reach.", "torturing <<his>> yearning body." )>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<print either( "slowly coaxing <<him>> to climax.", "letting <<his>> arousal swell.", "keeping <<him>> on edge." )>> <<else>> <<print either( "controlling <<his>> arousal.", "curbing <<his>> arousal.", "stirring pleasure." )>> <</if>> <</widget>> <<widget "actionskick">> <<if $enemytype is "beast">> <<if $pain lte 20>> You kick the <<beasttype>>. <<elseif $pain lte 60>> You try to kick the <<beasttype>> away from you. <<else>> You desperately try to kick the <<beasttype>> away. <</if>> <<else>> <<if $leftarm is "grappled" or $rightarm is "grappled">> You struggle against the attacker's grasp, kicking shins while trying to twist free. <<else>> <<if $pain lte 20>> Defiant, you lash out with your feet. <<elseif $pain lte 60>> Though hurt, you lash out with your feet. <<else>> You lash out in desperation. <</if>> <</if>> <</if>> <</widget>> <<widget "actionsfeetrub">> <<if $enemytype is "beast">> You fondle <<their>> penis with your toes. <<else>> <<if _args[0] isnot undefined>> <<set $_target to _args[0]>> <<else>> <<set $_target to 0>> <</if>> <<if $consensual is 1>> <<if $arousal lte ($arousalmax / 5) * 3>> You fondle <<someones $_target>> penis with your toes. <<else>> You eagerly stroke <<someones $_target>> penis with your toes. <</if>> <<else>> You stroke <<someones $_target>> penis with your toes. <</if>> <</if>> <</widget>> <<widget "actionsgrabrub">> <<if $enemytype is "beast">> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> You <<feettext>> hold <<his>> penis between your feet as <<he>> furiously humps against them. <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> You <<feettext>> hold the penis between your feet as <<he>> humps against them. <<else>> You <<feettext>> hold and rub the penis between your feet. <</if>> <<else>> <<if $consensual is 1>> <<if $arousal lte ($arousalmax / 5) * 3>> You keep <<their _args[0]>> penis held firmly between your feet as you <<feettext>> stroke and fondle the glans with your toes. <<else>> You <<feettext>> hold and rub <<their _args[0]>> penis between your feet. <</if>> <<else>> You <<feettext>> occupy <<their _args[0]>> penis with your feet, rubbing the glans between your toes. <</if>> <</if>> <</widget>> <<widget "actionsfeetpussy">> <<if $consensual is 1>> <<if $arousal lte ($arousalmax / 5) * 3>> You <<feettext>> fondle <<their _args[0]>> vulva with your toes. <<else>> You <<feettext>> stroke <<their _args[0]>> vulva with your toes. <</if>> <<else>> You <<feettext>> press your feet against <<their _args[0]>> pelvis and fondle <<their _args[0]>> pussy with your toes. <</if>> <</widget>> <<widget "actionskiss">> <<if $enemytype is "beast">> You kiss the <<beasttype>> on the head. <<else>> <<if _args[0] isnot undefined>> <<set $_target to _args[0]>> <<else>> <<set $_target to 0>> <</if>> <<if $consensual is 1>> <<if $arousal lte ($arousalmax / 5) * 3>> You flutter your lips against <<someones $_target>> skin. <<else>> You kiss <<someones $_target>> skin, tongue first. <</if>> <<else>> You press your lips against <<someones $_target>> skin. <</if>> <</if>> <</widget>> <<widget "actionsgrowl">> <<if $enemytype is "beast">> You growl and bare your fangs at the <<beasttype>>. <<else>> You growl and bare your fangs. <</if>> <</widget>> <<widget "actionsplead">> <<checkforloveinterests>> <<if $robinRentEvent is 1 and ["Robin","pay","still"].includes($combatPhase)>> You <<voice "plead">>. <<switch random(1,5)>> <<case 1>> "Not Robin! Stop!" <<case 2>> "Let Robin go, please!" <<case 3>> "You can't! Let <<nnpc_him "Robin">> go!" <<case 4>> "Please, Bailey, don't!" <<case 5>> <<if isLoveInterest("Robin")>> "Don't take <<nnpc_him "Robin">> away from me!" <<else>> "Don't hurt <<nnpc_him "Robin">>!" <</if>> <</switch>> <<elseif $enemytype is "beast">> You <<voice "plead">>. <<if _loveInterest is "Eden" and $location is "forest" and random(0,100) lte 15>> "Please..." You gaze in the direction of Eden's cabin. <<if $npc.includes("Black Wolf")>> <br> The Black Wolf seems to notice and releases a low growl. <</if>> <<elseif $vaginastate is "imminent" or $vaginastate is "doubleimminent">> <<if $player.virginity.vaginal is true>> <<if $awarelevel gte 1>> "No! I don't want to lose my virginity to a <<beasttype>>!" <<else>> "Why are you poking me there? Stop!" <</if>> <<else>> "No, don't put it in!" <</if>> <<elseif $penisstate is "imminent">> <<if $player.virginity.penile is true>> <<if $awarelevel gte 1>> "No! I don't want to lose my virginity to a <<beasttype>>!" <<else>> "Stop pushing my private place like that, you're making me feel strange." <</if>> <<else>> "Please don't put it in!" <</if>> <<elseif $penisstate is "otheranusimminent">> <<if $player.virginity.penile is true>> <<if $awarelevel gte 1>> "No! I don't want to lose my virginity to a <<beasttype>>!" <<else>> "Stop pushing my private place like that, you're making me feel strange." <</if>> <<else>> "Please don't put it in!" <</if>> <<elseif $anusstate is "imminent" or $anusstate is "doubleimminent">> <<if $player.virginity.anal is true>> <<if $awarelevel gte 1>> "Why are you poking me there? What do you want?" <<else>> "Don't poke me there, it's dirty!" <</if>> <<else>> "No, not there! I don't want it!" <</if>> <<elseif $vaginastate is "penetrated" or $vaginastate is "doublepenetrated">> <<if $arousal lte $arousalmax / 5>> "Take it out, take it out!" <<elseif $arousal lte ($arousalmax / 5) * 4>> "Please, just take it out!" <<else>> "P-please... s-someone help..." <</if>> <<elseif $penisstate is "penetrated">> <<if $arousal lte $arousalmax / 5>> "Take it out, take it out!" <<elseif $arousal lte ($arousalmax / 5) * 4>> "Please, just take it out!" <<else>> "P-please... s-someone help..." <</if>> <<elseif $penisstate is "otheranus">> <<if $arousal lte $arousalmax / 5>> "Take it out, take it out!" <<elseif $arousal lte ($arousalmax / 5) * 4>> "Please, just take it out!" <<else>> "P-please... s-someone help..." <</if>> <<elseif $anusstate is "penetrated" or $anusstate is "doublepenetrated">> <<if $arousal lte $arousalmax / 5>> "Take it out, take it out!" <<elseif $arousal lte ($arousalmax / 5) * 4>> "Please, just take it out!" <<else>> "P-please... s-someone help..." <</if>> <<elseif $vaginastate is "othermouthimminent" or $vaginastate is "othermouthentrance">> <<switch $speechcycle>> <<case 0>> "Stop, it tickles." <<case 1>> "Please don't eat me." <<case 2>> "Stop licking there!" <<case 3>> "I'm not food!" <<case 4>> "Your tongue is too slimy." <<case 5>> "Your tongue is making me feel funny." <<default>> "S-stop. That's not for a <<beasttype>> to lick." <</switch>> <<elseif $vaginastate is "othermouth">> <<switch $speechcycle>> <<case 0>> "It's all squirmy." <<case 1>> "Please take your tongue out." <<case 2>> "There's no food in there." <<case 3>> "S-stop. That's not for <<beasttype>> tongues." <<case 4>> "Get it out!" <<case 5>> "Please stop licking inside me!" <<default>> "I-is it tasty? Please stop." <</switch>> <<elseif $penisstate is "othermouthimminent" or $penisstate is "othermouthentrance">> <<switch $speechcycle>> <<case 0>> "Stop, it tickles." <<case 1>> "Please don't eat me." <<case 2>> "Stop licking there!" <<case 3>> "I'm not food!" <<case 4>> "Your tongue is too slimy." <<case 5>> "Your tongue is making me feel funny." <<default>> "S-stop. That's not for a <<beasttype>> to lick." <</switch>> <<elseif $penisstate is "othermouth">> <<switch $speechcycle>> <<case 0>> "Your mouth's too slimy." <<case 1>> "Please don't bite me." <<case 2>> "I don't wanna go in your mouth." <<case 3>> "S-stop. That's not for <<beasttype>> tongues." <<case 4>> "Let me go!" <<case 5>> "That's not food!" <<default>> "Please don't move your tongue like that." <</switch>> <<elseif $anusstate is "othermouthimminent" or $anusstate is "othermouthentrance">> <<switch $speechcycle>> <<case 0>> "Stop, it tickles." <<case 1>> "Please don't eat me." <<case 2>> "Stop licking there!" <<case 3>> "I'm not food!" <<case 4>> "Your tongue is too slimy." <<case 5>> "Your tongue is making me feel funny." <<default>> "S-stop. That's not for a <<beasttype>> to lick." <</switch>> <<elseif $anusstate is "othermouth">> <<switch $speechcycle>> <<case 0>> "It's all squirmy." <<case 1>> "Please take your tongue out." <<case 2>> "There's no food in there." <<case 3>> "S-stop. That's not for <<beasttype>> tongues." <<case 4>> "Get it out!" <<case 5>> "Please stop licking inside me!" <<default>> "I-is it tasty? Please stop." <</switch>> <<elseif $exposed gte 2>> <<switch random(1,5)>> <<case 1>> "W-why are you looking at me like that?" <<case 2>> "That's not for you!" <<case 3>> "D-don't look." <<case 4>> "No, don't look at me!" <<case 5>> "Please be a good <<beasttype>>, you're scaring me." <</switch>> <<elseif $awarelevel gte 1>> <<if $pain lte 20>> "You're a good <<beasttype>> right? You'll let me go?" <<elseif $pain lte 60>> "Why are you hurting me? I'm not a threat!" <<else>> "It hurts! Why are you doing this? Let me go!" <</if>> <<else>> <<if $pain lte 20>> <<switch random(1,3)>> <<case 1>> "You're a good <<beasttype>> right? You'll let me go?" <<case 2>> "What are you doing? I haven't been mean to you!" <<case 3>> "I don't like this, leave me alone!" <</switch>> <<elseif $pain lte 60>> "You're hurting me!" <<else>> "P-please stop hurting me!" <</if>> <</if>> <<else>> <<if _loveInterest isnot undefined and random(0, 100) lte 15>> <<set $speechnamedrop to $npc.includes(_loveInterest) ? 0 : 1>> <<if $speechnamedrop is 0>> You speak. <<else>> You <<voice "plead">>. <</if>> <<rng>> <<switch _loveInterest>> <<case "Robin">> <<if $npc.includes("Robin")>> "Robin, please stop!" <<elseif $vaginastate is "imminent" or $penisstate is "imminent" or $penisstate is "otheranusimminent">> <<if $player.virginity.vaginal is true and $player.virginity.penile is true>> <<if $awarelevel gte 1>> "Please, no! I'm saving that for Robin!" <<else>> "Please stop poking me there, I only let Robin do that!" <</if>> <<else>> "B...but, I only let Robin do this!" <</if>> <<elseif $vaginastate is "penetrated" or $anusstate is "penetrated">> <<if $arousal lte $arousalmax / 5>> "I'm sorry, Robin..." <<elseif $arousal lte ($arousalmax / 5) * 4>> "Please just take it out! I only want Robin!" <<else>> "Robin... help me..." <</if>> <<elseif $penisstate is "penetrated" or $penisstate is "otheranus">> <<if $arousal lte $arousalmax / 5>> "I'm sorry, Robin..." <<elseif $arousal lte ($arousalmax / 5) * 4>> "Please just get off me! I only want Robin!" <<else>> "Robin... help me..." <</if>> <<elseif $exposed gte 2>> <<switch random(1,3)>> <<case 1>> "Please don't look! Only Robin can see me like this!" <<case 2>> "Please, Robin will be heartbroken..." <<case 3>> "Stop staring... I only want Robin..." <</switch>> <<else>> <<if $pain lte 20>> <<switch random(1,3)>> <<case 1>> <<if $awarelevel gte 1>>"Please no! I'm already taken by Robin!"<<else>>"Leave me alone! I only want Robin!"<</if>> <<case 2>> "Why are you doing this? Let me go back to Robin!" <<case 3>> "Robin needs me, please just let me go..." <</switch>> <<elseif $pain lte 60>> "Robin never hurts me like this..." <<else>> "No... I need to get back to Robin..." <</if>> <</if>> <<case "Kylar">> <<if $npc.includes("Kylar")>> "Kylar... I thought you loved me..." <<elseif $vaginastate is "imminent" or $penisstate is "imminent" or $penisstate is "otheranusimminent">> <<if $player.virginity.vaginal is true and $player.virginity.penile is true>> <<if $awarelevel gte 1>> "Please, I wanted Kylar to be the one to take me!" <<else>> "Only Kylar is allowed to do this, please stop!" <</if>> <<else>> "Kylar hurts people who violate me... please stop..." <</if>> <<elseif $vaginastate is "penetrated" or $anusstate is "penetrated">> <<if $arousal lte $arousalmax / 5>> "Forgive me, Kylar..." <<elseif $arousal lte ($arousalmax / 5) * 4>> "Please take it out! Kylar will be so upset about this!" <<else>> "S-Save me, Kylar..." <</if>> <<elseif $penisstate is "penetrated" or $penisstate is "otheranus">> <<if $arousal lte $arousalmax / 5>> "Forgive me, Kylar..." <<elseif $arousal lte ($arousalmax / 5) * 4>> "Please take it out! Kylar will be so upset about this!" <<else>> "S-Save me, Kylar..." <</if>> <<elseif $exposed gte 2>> <<switch random(1,3)>> <<case 1>> "I only want Kylar to see me like this..." <<case 2>> "Please, I only let Kylar take my clothes!" <<case 3>> "Kylar will be mad at me for this!" <</switch>> <<else>> <<if $arousal lte $arousalmax / 5>> <<if $pain lte 20>> <<if $awarelevel gte 1>> "B-But, I'm already taken by Kylar!" <<else>> "I want Kylar to hold me..." <</if>> <<elseif $rng lte 70>> "Kylar will be so upset..." <<else>> "N...no, Kylar will be jealous!" <</if>> <<elseif $pain lte 60>> "Kylar hurts people who touch me, please stop for your own sake!" <<else>> "K...Kylar... help me..." <</if>> <</if>> <<if $location is "school" and $speechnamedrop is 1 and Time.schoolDay>> <<status -1>><<lcool>> <</if>> <<case "Whitney">> <<if $npc.includes("Whitney")>> "Please be gentle, Whitney..." <<elseif $vaginastate is "imminent" or $penisstate is "imminent" or $penisstate is "otheranusimminent">> <<if $player.virginity.vaginal is true and $player.virginity.penile is true>> <<if $awarelevel gte 1>> "I'm saving that for Whitney! Please don't steal this from me!" <<else>> "Only Whitney can hold me like this! Please stop!" <</if>> <<else>> "No... that only belongs to Whitney..." <</if>> <<elseif $vaginastate is "penetrated" or $anusstate is "penetrated">> <<if $arousal lte $arousalmax / 5>> "I'm sorry, Whitney..." <<elseif $arousal lte ($arousalmax / 5) * 4>> "Whitney will give me hell for this, please get it out!" <<else>> "Whitney... please help me..." <</if>> <<elseif $penisstate is "penetrated" or $penisstate is "otheranus">> <<if $arousal lte $arousalmax / 5>> "I'm sorry, Whitney..." <<elseif $arousal lte ($arousalmax / 5) * 4>> "Whitney will give me hell for this, please get off!" <<else>> "Whitney... please help me..." <</if>> <<elseif $exposed gte 2>> <<switch random(1,3)>> <<case 1>> "But only Whitney can strip me!" <<case 2>> "At least Whitney gives me a choice..." <<case 3>> "I only want to be seen like this if it's Whitney doing it! Please stop!" <</switch>> <<else>> <<if $pain lte 20>> <<switch random(1,3)>> <<case 1>> <<if $awarelevel gte 1>>"Please, I'm only Whitney's toy!"<<else>>"My bully treats me better than you..."<</if>> <<case 2>> "I only let someone special bully me. Please stop." <<case 3>> "Everyone knows I'm Whitney's property, so please stop!" <</switch>> <<elseif $pain lte 60>> "Please, I only like it when Whitney hits me!" <<else>> "Not even Whitney beats me this much!" <</if>> <</if>> <<if $location is "school" and Time.schoolDay>> <<status 1>><<gcool>> <</if>> <<case "Eden">> <<if $npc.includes("Eden")>> "N...not so rough, Eden..." <<elseif $vaginastate is "imminent" or $penisstate is "imminent" or $penisstate is "otheranusimminent">> <<if $player.virginity.vaginal is true and $player.virginity.penile is true>> <<if $awarelevel gte 1>> "I wanted to share this moment with Eden! Please don't take my virginity!" <<else>> "N...No! Eden! Help me!" <</if>> <<else>> "Please, I only let Eden take me! Don't!" <</if>> <<elseif $vaginastate is "penetrated" or $anusstate is "penetrated">> <<if $arousal lte $arousalmax / 5>> "I... was only supposed to be Eden's prey..." <<elseif $arousal lte ($arousalmax / 5) * 4>> "I can only do this with Eden! Take it out! Please!" <<else>> "Eden... please save me..." <</if>> <<elseif $penisstate is "penetrated" or $penisstate is "otheranus">> <<if $arousal lte $arousalmax / 5>> "I... was only supposed to be Eden's prey..." <<elseif $arousal lte ($arousalmax / 5) * 4>> "I can only do this with Eden! Get off me! Please!" <<else>> "Eden... please save me..." <</if>> <<elseif $exposed gte 2>> <<switch random(1,3)>> <<case 1>> "I'm cold... I want to go back to the cabin with Eden..." <<case 2>> "I only want Eden to see me like this..." <<case 3>> "Please don't look! I'm for Eden, not you!" <</switch>> <<else>> <<if $pain lte 20>> <<switch random(1,3)>> <<case 1>> <<if $awarelevel gte 1>>"I'm Eden's mate, not yours! Let me go!"<<else>>"I'm Eden's companion, not yours! Let me go!"<</if>> <<case 2>> "I want to go back to the cabin with Eden... please..." <<case 3>> "Eden warned me about people like you..." <</switch>> <<elseif $pain lte 60>> "Please... my heart belongs in the forest with Eden..." <<else>> "No! Eden will smell you on me! Please stop!" <</if>> <</if>> <<case "Black Wolf">> <<if $npc.includes("Black Wolf")>> "Gently, please..." <<elseif $vaginastate is "imminent" or $penisstate is "imminent" or $penisstate is "otheranusimminent">> <<if $player.virginity.vaginal is true and $player.virginity.penile is true>> <<if $awarelevel gte 1>> "I was saving this for my wolf! Please no!" <<else>> "Only the wolves know how to be gentle with me down there! Please stop!" <</if>> <<else>> "Please, I only let my pack down there..." <</if>> <<elseif $vaginastate is "penetrated" or $anusstate is "penetrated">> <<if $arousal lte $arousalmax / 5>> "It's so uncomfortable! Please stop, I only want the wolves!" <<elseif $arousal lte ($arousalmax / 5) * 4>> "Please just take it out! That's for my wolves!" <<else>> "The big wolf will save me..." <</if>> <<elseif $penisstate is "penetrated" or $penisstate is "otheranus">> <<if $arousal lte $arousalmax / 5>> "It's so uncomfortable! Please stop, I only want the wolves!" <<elseif $arousal lte ($arousalmax / 5) * 4>> "Please get off! That's for my wolves!" <<else>> "The big wolf will save me..." <</if>> <<elseif $exposed gte 2>> <<switch random(1,3)>> <<case 1>> "Not even the wolves stare this much... please stop looking..." <<case 2>> "You're creepier than the wolves... no more..." <<case 3>> "Y-You won't find any meat here... I belong to the wolves!" <</switch>> <<else>> <<if $pain lte 20>> <<switch random(1,3)>> <<case 1>> <<if $awarelevel gte 1>>"I only want the wolves as mates, please leave me alone!"<<else>>"I only let the big wolf play rough with me, please stop!"<</if>> <<case 2>> "Please let me go, I want to go back to my wolves!" <<case 3>> "Let me go... I want to go back to the wolf cave..." <</switch>> <<elseif $pain lte 60>> "Please stop hurting me! The wolves are more gentle than this!" <<else>> "You're more of an animal... than my wolf..." <</if>> <</if>> <<famebestiality $enemyno>> <<case "Avery">> <<if $npc.includes("Avery")>> "Was this all the date was for...?" <<elseif $vaginastate is "imminent" or $penisstate is "imminent" or $penisstate is "otheranusimminent">> <<if $player.virginity.vaginal is true and $player.virginity.penile is true>> <<if $awarelevel gte 1>> "I only wanted Avery to take my virginity! Please don't!" <<else>> "Avery will save me..." <</if>> <<else>> "Please no! That's Avery's!" <</if>> <<elseif $vaginastate is "penetrated" or $anusstate is "penetrated">> <<if $arousal lte $arousalmax / 5>> "I'm so sorry, Avery..." <<elseif $arousal lte ($arousalmax / 5) * 4>> "Avery will punish me for this! Please just take it out!" <<else>> "Save me, Avery..." <</if>> <<elseif $penisstate is "penetrated" or $penisstate is "otheranus">> <<if $arousal lte $arousalmax / 5>> "I'm so sorry, Avery..." <<elseif $arousal lte ($arousalmax / 5) * 4>> "Avery will punish me for this! Please just get off!" <<else>> "Save me, Avery..." <</if>> <<elseif $exposed gte 2>> <<switch random(1,3)>> <<case 1>> "Avery takes me on a date first... please look away..." <<case 2>> "No! You can't look! Only Avery can see me like this!" <<case 3>> "Avery will be so upset... please..." <</switch>> <<else>> <<if $pain lte 20>> <<switch random(1,3)>> <<case 1>> <<if $awarelevel gte 1>>"Avery can screw us both up for this, so please stop!"<<else>>"I only want Avery..."<</if>> <<case 2>> "I need to keep Avery's trust, please stop!" <<case 3>> "My heart belongs to Avery! I don't want this, please just stop!" <</switch>> <<elseif $pain lte 60>> "Avery... Please help me..." <<else>> "You're scarier... than Avery..." <</if>> <</if>> <<case "Great Hawk">> <<if $npc.includes("Great Hawk")>> "Y-you're going to take care of me, right?" <<elseif $vaginastate is "imminent" or $penisstate is "imminent" or $penisstate is "otheranusimminent">> <<if $player.virginity.vaginal is true and $player.virginity.penile is true>> <<if $awarelevel gte 1>> "Please stop! I'm saving myself for my <<hawkText>> spouse!" <<else>> "Only my <<hawkText>> can touch me. Please let me go..." <</if>> <<else>> "You can't! I only want my <<hawkText>> to do this!" <</if>> <<elseif $vaginastate is "penetrated" or $anusstate is "penetrated">> <<if $arousal lte $arousalmax / 5>> "I don't like this! That's the <<hawkText>>'s place!" <<elseif $arousal lte ($arousalmax / 5) * 4>> "Stop! Just let me go back to my <<hawkText>>!" <<else>> "No! I'm only for the Great Hawk!" <</if>> <<elseif $penisstate is "penetrated" or $penisstate is "otheranus">> <<if $arousal lte $arousalmax / 5>> "I don't like this! That's the <<hawkText>>'s place!" <<elseif $arousal lte ($arousalmax / 5) * 4>> "Stop! Just let me go back to my <<hawkText>>!" <<else>> "No! I'm only for the Great Hawk!" <</if>> <<elseif $exposed gte 2>> <<switch random(1,3)>> <<case 1>> "M-My <<hawkText>> respects my body. Please stop staring." <<case 2>> "My body's for my <<hawkText>>. Stop staring, please!" <<case 3>> "You're scaring me with that look. My body is for the Great Hawk!" <</switch>> <<else>> <<if $pain lte 20>> <<switch random(1,3)>> <<case 1>> <<if $awarelevel gte 1>>"My <<hawkText>> knows how to treat a mate, please let me go!"<<else>>"Nobody can do this to me except for my <<hawkText>>, get off of me!"<</if>> <<case 2>> "I can't cheat on the Great Hawk, please stop!" <<case 3>> "My heart belongs to the Great Hawk! I don't want this, please just stop!" <</switch>> <<elseif $pain lte 60>> "It hurts! I want my <<hawkText>>'s touch!" <<else>> "You're hurting me more than my <<hawkText>>'s talons!" <</if>> <</if>> <<famebestiality $enemyno>> <<case "Alex">> <<if $npc.includes("Alex")>> "Alex, control yourself!" <<elseif $vaginastate is "imminent" or $penisstate is "imminent" or $penisstate is "otheranusimminent">> <<if $player.virginity.vaginal is true and $player.virginity.penile is true>> <<if $awarelevel gte 1>> "N-not there, that's for Alex!" <<else>> "Don't poke me there, that's Alex's spot!" <</if>> <<else>> "That's Alex's territory!" <</if>> <<elseif $vaginastate is "penetrated" or $anusstate is "penetrated">> <<if $arousal lte $arousalmax / 5>> "I'm sorry, Alex..." <<elseif $arousal lte ($arousalmax / 5) * 4>> "Take it out right now, or I'll tell Alex!" <<else>> "Help me, Alex." <</if>> <<elseif $penisstate is "penetrated" or $penisstate is "otheranus">> <<if $arousal lte $arousalmax / 5>> "I'm sorry, Alex..." <<elseif $arousal lte ($arousalmax / 5) * 4>> "Take it out right now, or I'll tell Alex!" <<else>> "Help me, Alex." <</if>> <<elseif $exposed gte 2>> <<switch random(1,3)>> <<case 1>> "That's for Alex's eyes only!" <<case 2>> "Alex won't be pleased with where you're looking." <<case 3>> "Stop staring, or Alex will be angry." <</switch>> <<else>> <<if $pain lte 20>> <<switch random(1,3)>> <<case 1>> <<if $awarelevel gte 1>>"Don't you dare. That's Alex's!"<<else>>"Leave me alone, or I'll tell Alex!"<</if>> <<case 2>> "Alex will come to my rescue, then you'll be sorry!" <<case 3>> "Alex will find out about you." <</switch>> <<elseif $pain lte 60>> "Alex will punish you for this." <<else>> "Alex, h-help me. Please." <</if>> <</if>> <<case "Sydney">> <<run statusCheck("Sydney")>> <<if $npc.includes("Sydney")>> <<if _sydneyStatus.includes("corrupt")>> "I thought... you said lust was a sin..." <<else>> "I'm sorry, I'll be pure! Please stop!" <</if>> <<elseif $vaginastate is "imminent" or $penisstate is "imminent" or $penisstate is "otheranusimminent">> <<if $templePromised is "Sydney">> <<if (($player.virginity.vaginal is true or $player.virginity.temple is true) and $vaginastate is "imminent") or (($player.virginity.penile is true and $player.virginity.temple is true) and ($penisstate is "imminent" or $penisstate is "otheranusimminent"))>> <<if $awarelevel gte 1>> "Please, not that! I'm bound to Sydney, you can't!" <<else>> "I'm bound to Sydney! Please don't take that away!" <</if>> <<else>> "Don't, that's only for Sydney!" <</if>> <<else>> <<if $player.virginity.vaginal is true>> <<if $awarelevel gte 1>> "Please, not that! I want it to be with Sydney, you can't!" <<else>> "I love Sydney! Don't take this from <<nnpc_him "Sydney">>!" <</if>> <<else>> "Don't! I only want to do it with Sydney!" <</if>> <</if>> <<elseif $vaginastate is "penetrated" or $penisstate is "penetrated" or $penisstate is "otheranus">> <<if $templePromised is "Sydney">> <<if $arousal lte $arousalmax / 5>> "What have you done..." <<elseif $arousal lte ($arousalmax / 5) * 4>> "I'm sorry, Sydney, I'm so sorry..." <<else>> "S-Sydney... It was supposed to be you..." <</if>> <<else>> <<if $arousal lte $arousalmax / 5>> "Please take it out, don't defile me!" <<elseif $arousal lte ($arousalmax / 5) * 4>> "I'm sorry, Sydney..." <<else>> "S-Sydney... It was supposed to be you..." <</if>> <</if>> <<elseif $anusstate is "penetrated">> <<if $templePromised is "Sydney">> <<if $arousal lte $arousalmax / 5>> "Take it out! That's for Sydney!" <<elseif $arousal lte ($arousalmax / 5) * 4>> "The temple might not care, but I know Sydney does!" <<else>> "S-Sydney... It was supposed to be you..." <</if>> <<else>> <<if $arousal lte $arousalmax / 5>> "Take it out! I want it to be Sydney!" <<elseif $arousal lte ($arousalmax / 5) * 4>> "I wanted it to be with Sydney..." <<else>> "S-Sydney... It was supposed to be you..." <</if>> <</if>> <<elseif $exposed gte 2>> <<if $templePromised is "Sydney">> <<switch random(1,3)>> <<case 1>> "Don't look! Only Sydney can see me like this!" <<case 2>> "I'm bound to Sydney! Please leave me alone!" <<case 3>> "Stop... I'm supposed to be with Sydney..." <</switch>> <<else>> <<switch random(1,3)>> <<case 1>> "Don't look! I only want Sydney to see me like this!" <<case 2>> "I want to be with Sydney! Please leave me alone..." <<case 3>> "Stop... I'm supposed to be with Sydney..." <</switch>> <</if>> <<else>> <<if $templePromised is "Sydney">> <<if $pain lte 20>> <<switch random(1,3)>> <<case 1>> <<if $awarelevel gte 1>>"Sydney and I are one! Please don't ruin that!"<<else>>"I'm bound to Sydney! Please don't take that away!"<</if>> <<case 2>> "Sydney's the one for me, so please leave." <<case 3>> "I want Sydney to hold me..." <</switch>> <<elseif $pain lte 60>> "The temple sanctioned me and Sydney's union, so leave me alone!" <<else>> "S-Sydney... I need a saviour..." <</if>> <<else>> <<if $pain lte 20>> <<switch random(1,3)>> <<case 1>> <<if $awarelevel gte 1>>"Sydney's the one I want! Please leave me alone!"<<else>>"I want to be with Sydney! Please don't!"<</if>> <<case 2>> "Sydney's the one for me, so please leave." <<case 3>> "I want Sydney to hold me..." <</switch>> <<elseif $pain lte 60>> "Sydney's the one I want to be with, so leave me alone!" <<else>> "S-Sydney... I need a saviour..." <</if>> <</if>> <</if>> <<case "Gwylan">> <<if $npc.includes("Gwylan")>> <<if $abomination is 1>> "Gwylan, come back! I'm scared!" <<elseif $hypnosis_traits.devotion gte 1 or $combat_hypnosis>> "Gwylan, please, I can't think straight!" <<else>> "Gwylan, please, this doesn't feel right!" <</if>> <<elseif $vaginastate is "imminent" or $penisstate is "imminent" or $penisstate is "otheranusimminent">> <<if $player.virginity.vaginal is true and $player.virginity.penile is true>> <<if $awarelevel gte 1>> "N-not there, I'm saving that for a special moment with Gwylan!" <<else>> "Not there, this only feels natural when Gwylan's doing it!" <</if>> <<else>> "That belongs to Gwylan!" <</if>> <<elseif $vaginastate is "penetrated" or $anusstate is "penetrated">> <<if $arousal lte $arousalmax / 5>> "Gwylan, I'll still keep my promise, please forgive me..." <<elseif $arousal lte ($arousalmax / 5) * 4>> "Take it out right now, or I'll tell Gwylan!" <<else>> "Help me, Gwylan... please..." <</if>> <<elseif $penisstate is "penetrated" or $penisstate is "otheranus">> <<if $arousal lte $arousalmax / 5>> "Gwylan, I'll still keep my promise, please forgive me..." <<elseif $arousal lte ($arousalmax / 5) * 4>> "Take it out right now, or I'll tell Gwylan!" <<else>> "Help me, Gwylan... please..." <</if>> <<elseif $exposed gte 2>> <<switch random(1,3)>> <<case 1>> "My body is for Gwylan's eyes only!" <<case 2>> "Gwylan won't be pleased with where you're looking." <<case 3>> "Stop staring, or Gwylan will get scary." <</switch>> <<else>> <<if $pain lte 20>> <<switch random(1,3)>> <<case 1>> <<if $awarelevel gte 1>>"Don't you dare. That's Gwylan's!"<<else>>"Leave me alone, or I'll tell Gwylan!"<</if>> <<case 2>> "Gwylan will protect me, then you'll be sorry!" <<case 3>> "Gwylan will find out about this." <</switch>> <<elseif $pain lte 60>> "Gwylan will curse you for this." <<else>> "Gwylan will protect me. Leave me alone." <</if>> <</if>> <<default>> <</switch>> <<else>> You <<voice "plead">>. <<if $npc.includes("Robin")>> <<if $robinmist>> "Robin, please! You can fight it!" <<else>> "N...not you, too..." <</if>> <<elseif $vaginastate is "imminent">> <<if $player.virginity.vaginal is true>> <<if $awarelevel gte 1>> "Please don't put it in, I'm a virgin!" <<else>> "Please stop poking me there, that's my private place!" <</if>> <<else>> "Please don't put it in!" <</if>> <<elseif $penisstate is "imminent">> <<if $player.virginity.penile is true>> <<if $awarelevel gte 1>> "Please don't put it in, I'm a virgin!" <<else>> "Stop pushing my private place like that, you're making me feel strange." <</if>> <<else>> "Please don't put it in!" <</if>> <<elseif $penisstate is "otheranusimminent">> <<if $player.virginity.penile is true>> <<if $awarelevel gte 1>> "Please don't put it in, I'm a virgin!" <<else>> "Stop pushing my private place like that, you're making me feel strange." <</if>> <<else>> "Please don't put it in!" <</if>> <<elseif $anusstate is "imminent">> <<if $player.virginity.anal is true>> <<if $awarelevel gte 1>> "Why are you poking me there? Please stop." <<else>> "Don't poke me there, it's dirty!" <</if>> <<else>> "No, not there! I don't want it!" <</if>> <<elseif $vaginastate is "penetrated">> <<if $arousal lte $arousalmax / 5>> "Take it out, take it out!" <<elseif $arousal lte ($arousalmax / 5) * 4>> "Please, I-I'll do what you ask, just take it out!" <<else>> "I c-can't... h-help it. P-please stop." <</if>> <<elseif $penisstate is "penetrated">> <<if $arousal lte $arousalmax / 5>> "Take it out, take it out!" <<elseif $arousal lte ($arousalmax / 5) * 4>> "Please, I-I'll do what you ask, just take it out!" <<else>> "I c-can't... h-help it. P-please stop." <</if>> <<elseif $penisstate is "otheranus">> <<if $arousal lte $arousalmax / 5>> "Take it out, take it out!" <<elseif $arousal lte ($arousalmax / 5) * 4>> "Please, I-I'll do what you ask, just take it out!" <<else>> "I c-can't... h-help it. P-please stop." <</if>> <<elseif $anusstate is "penetrated">> <<if $arousal lte $arousalmax / 5>> "Take it out, take it out!" <<elseif $arousal lte ($arousalmax / 5) * 4>> "Please, I-I'll do what you ask, just take it out!" <<else>> "I c-can't... h-help it. P-please stop." <</if>> <<elseif $exposed gte 2 and $rng gte 51>> <<switch random(1,5)>> <<case 1>> "That's my private place! Don't look!" <<case 2>> "Please don't look at me like that, it's scary." <<case 3>> "I don't like being exposed like this, please stop looking." <<case 4>> "No, don't look at me!" <<case 5>> "Please don't stare at me." <</switch>> <<elseif $awarelevel gte 1>> <<if $pain lte 20>> "Please, just let me go." <<elseif $pain lte 60>> "You're hurting me, please stop!" <<else>> "It hurts! Why are you doing this? Let me go!" <</if>> <<else>> <<if $pain lte 20>> <<switch random(1,3)>> <<case 1>> "Please stop touching me, you're making me feel all funny." <<case 2>> "Stop, I promise I haven't done anything wrong!" <<case 3>> "You're making me feel strange. Please stop." <</switch>> <<elseif $pain lte 60>> "Please no, you're hurting me!" <<else>> "P-please stop hurting me!" <</if>> <</if>> <</if>> <</if>> <</widget>> <!-- Ideally, the parameters here should be replaced when the way the Great Hawk is generated changes. --> <<widget "hawkText">><<silently>> <<if ($settings.monsterChance gte $rng and $hallucinations gte 1) or ($settings.monsterChance gte $rng and !$settings.monsterHallucinationsOnly) or ($greathawkmonster is 2) or (!$settings.bestialityEnabled)>> <<set _text_output to "harpy">> <<else>> <<set _text_output to "hawk">> <</if>> <</silently>><<print _text_output>><</widget>> <<widget "checkforloveinterests">> <<set _loveInterest to Object.values($loveInterest).filter(li => li isnot "None").random()>> <</widget>> <<widget "askrough">> <<if $speech_attitude is "meek">> You <<voice "plead">> for rougher treatment. <<switch $speechcycle>> <<case 0>> "Hit me harder. I deserve it." <<case 1>> "Beat me. Make me your <<bitch>>." <<case 2>> "Show me my place." <<case 3>> "Treat me like dirt." <<case 4>> "Make me squeal." <<case 5>> "Fuck me up." <<default>> "Treat me like the worthless pig I am." <</switch>> <<elseif $speech_attitude is "bratty">> You <<voice "demand">> for rougher treatment. <<switch $speechcycle>> <<case 0>> "Hit me harder, you wuss." <<case 1>> "That all you got?" <<case 2>> "Give me your best shot." <<case 3>> "Fuck me up, I dare you." <<case 4>> "This the best you can do?" <<case 5>> "Beat me. Or are you too weak?" <<default>> "Beat me harder, or I'll beat you." <</switch>> <<else>> You <<voice "moan">> for rougher treatment. <<switch $speechcycle>> <<case 0>> "You can be harder. I can take it." <<case 1>> "Smack me harder." <<case 2>> "Treat me like rubbish." <<case 3>> "Show me how strong you are." <<case 4>> "Make me feel worthless." <<case 5>> "Harder!" <<default>> "Beat me. I'm tough enough." <</switch>> <</if>> <</widget>> <<widget "actionsmoan">> <<checkforloveinterests>> You <<voice "moan">>. <<if $npc.includes(_loveInterest) and random(0,100) lte 45>> <<switch _loveInterest>> <<case "Robin">> <<if C.npc.Robin.dom gte 70>> "You know just how to turn me on." <<else>> "I'm gonna melt, you're making me so happy." <</if>> <<case "Sydney">> <<run statusCheck("Sydney")>> <<if !_sydneyChastity>> <<if _sydneyStatus.includes("corrupt")>> "You're the most delicious sin of all." <<else>> "Forever, as one." <</if>> <<else>> "You make me so lustful." <</if>> <<case "Whitney">> "Use me, Whitney. I'm yours." <<case "Black Wolf">> <<if $wolfpackleader is 1>> "Good <<nnpc_gendery "Black Wolf">>. Keep going." <<else>> "<<print ($settings.pregnancySpeechEnabled ? "Breed" : "Fuck")>> me, alpha!" <</if>> <<case "Great Hawk">> "You're not a terror. You're all I need." <<case "Eden">> "I belong to you, and you alone." <<case "Avery">> "You're worth more than any payout." <<case "Alex">> "I couldn't ask for a better partner." <<case "Kylar">> "You're the only one I need, Kylar." <<case "Gwylan">> "I think I'm bewitched." <</switch>> <<elseif $enemytype is "beast">> <<if $vaginastate is "imminent">> <<if $player.virginity.vaginal is true>> <<if $awarelevel gte 1>> "You want to <<print ($settings.pregnancySpeechEnabled ? "breed with" : "fuck")>> me? But it's my first time." <<else>> "Why are you poking my pussy? Silly <<beasttype>>!" <</if>> <<else>> "You want to put it in? Be gentle with me." <</if>> <<elseif $penisstate is "imminent">> <<if $player.virginity.penile is true>> <<if $awarelevel gte 1>> "You want to <<print ($settings.pregnancySpeechEnabled ? "breed with" : "fuck")>> me? But it's my first time." <<else>> "Why are you poking my penis? Silly <<beasttype>>!" <</if>> <<else>> "You want to put it in? Be gentle with me." <</if>> <<elseif $penisstate is "otheranusimminent">> <<if $player.virginity.penile is true>> <<if $awarelevel gte 1>> "You want to <<print ($settings.pregnancySpeechEnabled ? "breed with" : "fuck")>> me? But it's my first time." <<else>> "Why are you poking my willy? Silly <<beasttype>>!" <</if>> <<else>> "You want to put it in? Be gentle with me." <</if>> <<elseif $anusstate is "imminent">> <<if $player.virginity.anal is true>> <<if $awarelevel gte 1>> "You want to <<print ($settings.pregnancySpeechEnabled ? "breed with" : "fuck")>> me? Please be gentle, that hole hasn't been used before." <<else>> "Why are you poking my bottom? Silly <<beasttype>>!" <</if>> <<else>> "You want to put it in? Be gentle with me." <</if>> <<elseif $vaginastate is "penetrated">> <<if $arousal lte $arousalmax / 5>> "A <<beasttypes>> cock is inside me, mating with me." <<elseif $arousal lte ($arousalmax / 5) * 4>> "Good <<beasttype>>. <<print ($settings.pregnancySpeechEnabled ? "B-breed" : "F-fuck")>> me with your <<beasttype>> cock." <<else>> "I-I'm gonna cum, from a <<beasttype>> f-fucking my pussy." <</if>> <<elseif $penisstate is "penetrated">> <<if $arousal lte $arousalmax / 5>> "A <<beasttype>> is swallowing my cock, mating with me." <<elseif $arousal lte ($arousalmax / 5) * 4>> "Good <<beasttype>>. I'll fill you with my s-seed." <<else>> "I-I'm gonna cum... from a <<beasttype>> mating with me." <</if>> <<elseif $penisstate is "otheranus">> <<if $arousal lte $arousalmax / 5>> "A <<beasttype>> is swallowing my cock, mating with me." <<elseif $arousal lte ($arousalmax / 5) * 4>> "Good <<beasttype>>. I'll fill you with my s-seed." <<else>> "I-I'm gonna cum... from a <<beasttype>> mating with me." <</if>> <<elseif $anusstate is "penetrated">> <<if $arousal lte $arousalmax / 5>> "A <<beasttypes>> cock is inside my ass, mating with me." <<elseif $arousal lte ($arousalmax / 5) * 4>> "Good <<beasttype>>. F-fill my ass with your seed." <<else>> "I-I'm gonna cum... from a <<beasttype>> fucking my ass." <</if>> <<elseif $vaginastate is "othermouthimminent" or $vaginastate is "othermouthentrance">> <<switch $speechcycle>> <<case 0>> "I taste good, don't I." <<case 1>> "T-take me with your tongue." <<case 2>> "Your mouth is warm." <<case 3>> "What are you waiting for? Have a taste." <<case 4>> "I think <<beasttype>> tongues are the best." <<case 5>> "Your tongue is making me feel funny." <<default>> "L-lick harder." <</switch>> <<elseif $vaginastate is "othermouth">> <<switch $speechcycle>> <<case 0>> "It's all squirmy and slimy." <<case 1>> "That's it. F-fill me with your <<beasttype>> tongue." <<case 2>> "H-harder. Lick me harder." <<case 3>> "A <<beasttype>> is filling me." <<case 4>> "M-more!" <<case 5>> "I-I'm being fucked by a <<beasttypes>> tongue." <<default>> "I-is it tasty? Please don't stop." <</switch>> <<elseif $penisstate is "othermouthimminent" or $penisstate is "othermouthentrance">> <<switch $speechcycle>> <<case 0>> "I taste good, don't I." <<case 1>> "T-take me with your tongue." <<case 2>> "Your mouth is warm." <<case 3>> "What are you waiting for? Have a taste." <<case 4>> "I think <<beasttype>> tongues are the best." <<case 5>> "Your tongue is making me feel funny." <<default>> "L-lick harder." <</switch>> <<elseif $penisstate is "othermouth">> <<switch $speechcycle>> <<case 0>> "It's all squirmy and slimy." <<case 1>> "That's it. W-wrap around me with your <<beasttype>> tongue." <<case 2>> "H-harder. Lick me harder." <<case 3>> "I'm inside a <<beasttype>>." <<case 4>> "M-more!" <<case 5>> "I-I'm being fucked by a <<beasttypes>> mouth." <<default>> "I-is it tasty? Please don't stop." <</switch>> <<elseif $anusstate is "othermouthimminent" or $anusstate is "othermouthentrance">> <<switch $speechcycle>> <<case 0>> "I taste good, don't I." <<case 1>> "T-take me with your tongue." <<case 2>> "Your mouth is warm." <<case 3>> "What are you waiting for? Have a taste." <<case 4>> "I think <<beasttype>> tongues are the best." <<case 5>> "Your tongue is making me feel funny." <<default>> "L-lick harder." <</switch>> <<elseif $anusstate is "othermouth">> <<switch $speechcycle>> <<case 0>> "It's all squirmy and slimy." <<case 1>> "That's it. F-fill me with your <<beasttype>> tongue." <<case 2>> "H-harder. Lick me harder." <<case 3>> "A <<beasttype>> is filling me." <<case 4>> "M-more!" <<case 5>> "I-I'm being fucked by a <<beasttypes>> tongue." <<default>> "I-is it tasty? Please don't stop." <</switch>> <<elseif $exposed gte 2>> <<switch random(1,5)>> <<case 1>> "You like what you see?" <<case 2>> "Do I look tasty?" <<case 3>> "I-I'm all exposed in front of a <<beasttype>>. What will it do with me?" <<case 4>> "Look closer, I want you to see everything." <<case 5>> "You can do more than just look, you know." <</switch>> <<else>> <<if $awarelevel gte 1>> <<if $arousal lte $arousalmax / 5>> "Good <<beasttype>>. Please be gentle with me." <<elseif $arousal lte ($arousalmax / 5) * 3>> "You want to <<print ($settings.pregnancySpeechEnabled ? "breed with" : "fuck")>> me? I'm flattered." <<else>> "<<print ($settings.pregnancySpeechEnabled ? "B-breed" : "F-fuck")>> me. Make me your <<beasttype>> <<bitch>>." <</if>> <<else>> <<if $arousal lte $arousalmax / 5>> <<switch random(1,3)>> <<case 1>> "Good <<beasttype>>. Please be gentle with me." <<case 2>> "You're tickling me!" <<case 3>> "Do you want to be friends, <<beasttype>>?" <</switch>> <<elseif $arousal lte ($arousalmax / 5) * 3>> "You're making me feel strange." <<else>> "Y-you're m-making me feel strange." <</if>> <</if>> <</if>> <<else>> <<if $vaginastate is "imminent">> <<if $player.virginity.vaginal is true>> <<if $awarelevel gte 1>> "Please be gentle with my pussy, it's my first time." <<else>> "Poking me there is making me feel funny!" <</if>> <<else>> "Please stop teasing me, my pussy aches for you!" <</if>> <<elseif $penisstate is "imminent">> <<if $player.virginity.penile is true>> <<if $awarelevel gte 1>> "Please be gentle with my penis, it's my first time." <<else>> "My willy feels funny when you make it poke you there!" <</if>> <<else>> "Please hurry and swallow me, I can't take any teasing!" <</if>> <<elseif $penisstate is "otheranusimminent">> <<if $player.virginity.penile is true>> <<if $awarelevel gte 1>> "Please be gentle with my penis, It's my first time." <<else>> "My willy feels funny when you make it poke you there!" <</if>> <<else>> "Please hurry and swallow me, I can't take any teasing!" <</if>> <<elseif $anusstate is "imminent">> <<if $player.virginity.anal is true>> <<if $awarelevel gte 1>> "I don't know why you like my ass so much, but it's making me feel good." <<else>> "You're making my bottom tickle!" <</if>> <<else>> "I can't wait for you to fill my ass." <</if>> <<elseif $vaginastate is "penetrated">> <<if $arousal lte $arousalmax / 5>> "That's it, fill my pussy." <<elseif $arousal lte ($arousalmax / 5) * 4>> "You're making my pussy feel so good!" <<else>> "D-don't stop... I'm gonna c-cum." <</if>> <<elseif $penisstate is "penetrated">> <<if $arousal lte $arousalmax / 5>> "It's so warm inside you." <<elseif $arousal lte ($arousalmax / 5) * 4>> "T-take all of me!" <<else>> "D-don't stop... I'm gonna c-cum." <</if>> <<elseif $penisstate is "otheranus">> <<if $arousal lte $arousalmax / 5>> "It's so warm inside you." <<elseif $arousal lte ($arousalmax / 5) * 4>> "T-take all of me!" <<else>> "D-don't stop... I'm gonna c-cum." <</if>> <<elseif $anusstate is "penetrated">> <<if $arousal lte $arousalmax / 5>> "That's it, fill my ass up." <<elseif $arousal lte ($arousalmax / 5) * 4>> "K-keep going." <<else>> "D-don't stop... I'm gonna c-cum." <</if>> <<elseif $exposed gte 2 and $rng gte 51>> <<if not $gloryhole>> <<switch random(0,4)>> <<case 0>> "You like what you see?" <<case 1>> "I'm unwrapped and ready for you." <<case 2>> "I-I'm all exposed and vulnerable. What will you do with me?" <<case 3>> "Y-you can see everything." <<case 4>> "You can do more than just look." <</switch>> <<else>> <<switch random(0,4)>> <<case 0>> "I'm naked over here. Too bad you can't see me!" <<case 1>> "I'm all naked on this side." <<case 2>> "I-I'm all exposed and vulnerable at the other side. Wouldn't you love to see?" <<case 3>> "Such a shame you can't see my naked body." <<case 4>> "You don't know what you're missing by not seeing me!" <</switch>> <</if>> <<else>> <<if $awarelevel gte 1>> <<if not $gloryhole>> <<if $arousal lte $arousalmax / 5>> "I'm all yours." <<elseif $arousal lte ($arousalmax / 5) * 3>> "You're making me feel so good!" <<else>> "I'm gonna c-cum!" <</if>> <<else>> <<if $enemyno is 1 and $NPCList[0].penis !== "none" and random(0,4) !== 0>> <<set _dick to either('dick','penis')>> <<elseif $enemyno is 1 and $NPCList[0].vagina isnot "none" and random(0,4) isnot 0>> <<set _dick to either('cunt', 'quim', 'pussy', 'vagina')>> <<else>> <<set _dick to 0>> <</if>> <<switch random(0,1)>> <<case 0>> <<set _anonymous to 'gloryhole'>> <<set _Anonymous to 'Gloryhole'>> <<set _An_anonymous to 'A gloryhole'>> <<case 1>> <<set _anonymous to 'anonymous'>> <<set _Anonymous to 'Anonymous'>> <<set _An_anonymous to 'An anonymous'>> <</switch>> <<if _dick>> <<if $arousal lte $arousalmax / 5>> <<if $speech_attitude is "meek">> <<switch random(0,3)>> <<case 0>> "I'm here to please your _dick." <<case 1>> "I'll make your _dick feel good." <<case 2>> "I will serve your _dick." <<case 3>> "I love pleasuring your _dick." <</switch>> <<elseif $speech_attitude is "bratty">> <<switch random(0,2)>> <<case 0>> "_Anonymous _dick is just what I need." <<case 1>> "_An_anonymous _dick is just the toy I need!" <<case 2>> "This _anonymous _dick is all mine." <</switch>> <<else>> <<switch random(0,1)>> <<case 0>> "Let me take care of your _dick." <<case 0>> "I'll take care of your _dick." <</switch>> <</if>> <<elseif $arousal lte ($arousalmax / 5) * 2>> <<switch random(0,2)>> <<case 0>> "_Anonymous _dick is so exciting!" <<case 1>> "_Anonymous _dick is such a turn on!" <<case 2>> "_Anonymous _dick is so much fun!" <</switch>> <<elseif $arousal lte ($arousalmax / 5) * 3>> <<switch random(0,3)>> <<case 0>> "Who knew _anonymous _dick could feel so good?" <<case 1>> "This feels so good!" <<case 2>> "I love _anonymous _dick!" <<case 4>> "K-keep... d-doing... t-that!" <</switch>> <<else>> <<switch random(0,2)>> <<case 0>> "S-so close... to c-cumming!" <<case 1>> "Almost... that _dick... S-so g-good... Almost c-cumming!" <<case 2>> "I'm gonna c-cum!" <</switch>> <</if>> <<else>> <<if $arousal lte $arousalmax / 5>> <<if $speech_attitude is "meek">> <<switch random(0,3)>> <<case 0>> "I'm here to please you." <<case 1>> "I'll make you feel good." <<case 2>> "I will serve you." <<case 3>> "I love pleasuring you." <</switch>> <<elseif $speech_attitude is "bratty">> <<switch random(0,2)>> <<case 0>> "Just what I need." <<case 1>> "Such a nice plaything!" <<case 2>> "This is all mine." <</switch>> <<else>> <<switch random(0,1)>> <<case 0>> "Let me take care of you." <<case 0>> "I'll take care of you." <</switch>> <</if>> <<elseif $arousal lte ($arousalmax / 5) * 2>> <<switch random(0,2)>> <<case 0>> "Gloryholes are so exciting!" <<case 1>> "Gloryholes are such a turn on!" <<case 2>> "Gloryholes are so much fun!" <</switch>> <<elseif $arousal lte ($arousalmax / 5) * 3>> <<switch random(0,3)>> <<case 0>> "Who knew a gloryhole could feel so good?" <<case 1>> "This feels so good!" <<case 2>> "I love this gloryhole!" <<case 3>> "K-keep... d-doing... t-that!" <</switch>> <<else>> <<switch random(0,2)>> <<case 0>> "So close... t-to... c-cumming!" <<case 1>> "Almost... S-so g-good... A-almost cumming!" <<case 2>> "I'm gonna c-cum!" <</switch>> <</if>> <</if>> <</if>> <<else>> <<if $arousal lte $arousalmax / 5 and not $gloryhole>> <<switch random(1,3)>> <<case 1>> "You're making me feel funny." <<case 2>> "Will you take care of me?" <<case 3>> "You're very strong!" <</switch>> <<elseif $arousal lte ($arousalmax / 5) * 3>> "You're making me feel strange. Don't stop." <<else>> "D-don't... s-stop..." <</if>> <</if>> <</if>> <</if>> <</widget>> <<widget "actionschoke">> You <<voice "moan">>. <<if $NPCList[0].fullDescription is "Gwylan" and $rng gte 51>> "Take my breath away, Gwylan." <<elseif $awarelevel gte 2 or $choketrait is 1>> <<set _daddy to $enemyno is 1 and $NPCList[0].pronoun is 'm' and $submissive gte 1150 and random(1, 4) is 1>> <<switch $speechcycle>> <<case 0>> "Choke me<<if _daddy>>, daddy<</if>>." <<case 1>> "Put your hand on my neck, please." <<case 2>> "Harder<<if _daddy>>, daddy<</if>>! Choke me harder!" <<case 3>> "<<if _daddy>>Daddy, I<<else>>I<</if>> want you to choke me." <<case 4>> "Please, squeeze my throat!" <<case 5>> "Grab my neck<<if _daddy>>, daddy<</if>>." <<default>> "Choke me hard." <</switch>> <<else>> <<switch $speechcycle>> <<case 0>> "Can you put your hand on my neck?" <<case 1>> "Hold me by the neck, please." <<case 2>> "Put your hand on my neck, please." <<case 3>> "Last time it felt funny to have my neck squeezed. Can you do it, please?" <<case 4>> "Can you take my neck? I want to feel it again." <<case 5>> "Put your hand here, please." <<default>> "Hold me here, it feels good." <</switch>> <</if>> <</widget>> <<widget "actionsdemand">> <<checkforloveinterests>> <<if $robinRentEvent is 1 and ["Robin","pay","still"].includes($combatPhase)>> You <<voice "demand">>. <<switch random(1,5)>> <<case 1>> "Let Robin go right now!" <<case 2>> "Let <<nnpc_him "Robin">> go, Bailey!" <<case 3>> "I'm not letting you take <<nnpc_him "Robin">> away!" <<case 4>> "Get off of me! Let me help Robin!" <<case 5>> <<if isLoveInterest("Robin")>> "Don't you dare touch <<nnpc_him "Robin">> ever again!" <<else>> "Don't you dare hurt <<nnpc_him "Robin">>!" <</if>> <</switch>> <<elseif $enemytype is "beast">> You <<voice "demand">>. <<if _loveInterest is "Eden" and $location is "forest" and random(0,100) lte 15>> <<switch random(0,1)>> <<case 0>> "I know someone that will skin you alive for this!" <<case 1>> "Eden will have your hide for this, you damned <<beasttype>>." <</switch>> <<if $npc.includes("Black Wolf")>> <br> The Black Wolf seems especially agitated by your words. <</if>> <<elseif _loveInterest is "Gwylan" and $location is "forest" and random(0,100) lte 15>> <<switch random(0,1)>> <<case 0>> "The witch will curse you for this, stupid <<beasttype>>!" <<case 1>> "Gwylan will curse you for this, you damned <<beasttype>>." <</switch>> <<if $npc.includes("Black Wolf")>> <br> The Black Wolf growls viciously. <</if>> <<elseif $vaginastate is "imminent">> <<if $player.virginity.vaginal is true>> <<if $awarelevel gte 1>> "There's no way I'm letting a filthy <<beasttype>> take my virginity!" <<else>> "Stop poking me there, stupid <<beasttype>>." <</if>> <<else>> "I'm not letting a <<beasttype>> fuck me. Get off!" <</if>> <<elseif $penisstate is "imminent">> <<if $player.virginity.penile is true>> <<if $awarelevel gte 1>> "There's no way I'm letting a filthy <<beasttype>> take my virginity!" <<else>> "Stop poking me there, stupid <<beasttype>>." <</if>> <<else>> "I'm not letting a <<beasttype>> fuck me. Get off!" <</if>> <<elseif $penisstate is "otheranusimminent">> <<if $player.virginity.penile is true>> <<if $awarelevel gte 1>> "There's no way I'm letting a filthy <<beasttype>> ass take my virginity!" <<else>> "Stop poking me there, stupid <<beasttype>>." <</if>> <<else>> "I'm not letting a <<beasttype>> fuck me. Get off!" <</if>> <<elseif $anusstate is "imminent">> <<if $player.virginity.anal is true>> <<if $awarelevel gte 1>> "What do you think you're doing back there? Stop it!" <<else>> "Stop poking my bottom. Stupid <<beasttype>>." <</if>> <<else>> "Get the fuck away from my ass!" <</if>> <<elseif $vaginastate is "penetrated">> <<if $arousal lte $arousalmax / 5>> "Take your filthy <<beasttype>> cock out of my pussy right now!" <<elseif $arousal lte ($arousalmax / 5) * 4>> "Get off of me you fucking <<beasttype>>, I'm not your toy!" <<else>> "I-I'm not gonna cum from a stupid <<beasttype>> fucking me... I'm not..." <</if>> <<elseif $penisstate is "penetrated">> <<if $arousal lte $arousalmax / 5>> "Release me this instant, stupid <<beasttype>>!" <<elseif $arousal lte ($arousalmax / 5) * 4>> "Get off of me you fucking <<beasttype>>, I'm not your toy!" <<else>> "I-I'm not gonna cum from a stupid <<beasttype>> fucking me... I'm not..." <</if>> <<elseif $penisstate is "otheranus">> <<if $arousal lte $arousalmax / 5>> "Release me this instant, stupid <<beasttype>>!" <<elseif $arousal lte ($arousalmax / 5) * 4>> "Get off of me you fucking <<beasttype>>, I'm not your toy!" <<else>> "I-I'm not gonna cum from a stupid <<beasttype>> fucking me... I'm not..." <</if>> <<elseif $anusstate is "penetrated">> <<if $arousal lte $arousalmax / 5>> "Get your filthy <<beasttype>> cock out of my ass right now!" <<elseif $arousal lte ($arousalmax / 5) * 4>> "Get off of me you fucking <<beasttype>>, I'm not your toy!" <<else>> "I-I'm not gonna cum from a stupid <<beasttype>> fucking my ass... I'm not..." <</if>> <<elseif $vaginastate is "othermouthimminent" or $vaginastate is "othermouthentrance">> <<switch $speechcycle>> <<case 0>> "Get your disgusting tongue away from me!" <<case 1>> "No <<beasttype>> tongue belongs anywhere near me." <<case 2>> "Eww, get away!" <<case 3>> "I'm not gonna be licked by a dumb <<beasttypes>> tongue." <<case 4>> "Your tongue is slimy and horrible." <<case 5>> "Get that tongue away from my pussy." <<default>> "Don't you dare lick me there." <</switch>> <<elseif $vaginastate is "othermouth">> <<switch $speechcycle>> <<case 0>> "Take your <<beasttype>> tongue out of me this instant!" <<case 1>> "I'm not for tasting." <<case 2>> "It's all slimy and disgusting." <<case 3>> "Hurry up and have your fill." <<case 4>> "No <<beasttype>> deserves to taste me there." <<case 5>> "I can't believe a <<beasttype>> is licking me in such a place." <<default>> "Stop licking me there!" <</switch>> <<elseif $penisstate is "othermouthimminent" or $penisstate is "othermouthentrance">> <<switch $speechcycle>> <<case 0>> "Get your disgusting tongue away from me!" <<case 1>> "No <<beasttype>> tongue belongs anywhere near me." <<case 2>> "Eww, get away!" <<case 3>> "I'm not gonna be licked by a dumb <<beasttypes>> tongue." <<case 4>> "Your tongue is slimy and horrible." <<case 5>> "Get that tongue away from my dick." <<default>> "Don't you dare lick me there." <</switch>> <<elseif $penisstate is "othermouth">> <<switch $speechcycle>> <<case 0>> "Get your <<beasttype>> mouth away from me this instant!" <<case 1>> "I'm not for tasting." <<case 2>> "It's all slimy and disgusting." <<case 3>> "Hurry up and have your fill." <<case 4>> "No <<beasttype>> deserves to taste me there." <<case 5>> "I can't believe a <<beasttype>> is licking me in such a place." <<default>> "Stop licking me there!" <</switch>> <<elseif $anusstate is "othermouthimminent" or $anusstate is "othermouthentrance">> <<switch $speechcycle>> <<case 0>> "Get your disgusting tongue away from me!" <<case 1>> "No <<beasttype>> tongue belongs anywhere near me." <<case 2>> "Eww, get away!" <<case 3>> "I'm not gonna be licked by a dumb <<beasttypes>> tongue." <<case 4>> "Your tongue is slimy and horrible." <<case 5>> "Get that tongue away from my rear." <<default>> "Don't you dare lick me there." <</switch>> <<elseif $anusstate is "othermouth">> <<switch $speechcycle>> <<case 0>> "Take your <<beasttype>> tongue out of me this instant!" <<case 1>> "I'm not for tasting." <<case 2>> "It's all slimy and disgusting." <<case 3>> "Hurry up and have your fill." <<case 4>> "No <<beasttype>> deserves to taste me there." <<case 5>> "I can't believe a <<beasttype>> is licking me in such a place." <<default>> "Stop licking me there!" <</switch>> <<elseif $exposed gte 2>> <<switch random(0,4)>> <<case 0>> "Get away from my private place!" <<case 1>> "You like what you see, <<beasttype>>? I'll make you pay for it." <<case 2>> "Don't you dare look, filthy creature." <<case 3>> "I might be exposed, but I'm not afraid of you!" <<case 4>> "You like what you see? Of course you do, stupid <<beasttype>>." <</switch>> <<elseif $awarelevel gte 1>> <<if $arousal lte $arousalmax / 5>> "Stupid <<beasttype>>. Get away from me." <<elseif $arousal lte ($arousalmax / 5) * 3>> "Get the fuck away from me, right now!" <<else>> "Y-you'll pay for this, stupid <<beasttype>>." <</if>> <<else>> <<if $arousal lte $arousalmax / 5>> <<switch random(1,3)>> <<case 1>> "Stupid <<beasttype>>. Shoo!" <<case 2>> "I don't want to play with you. Go away." <<case 3>> "Go away, you're filthy." <</switch>> <<elseif $arousal lte ($arousalmax / 5) * 3>> "I want you to go away, isn't that clear?" <<else>> "I-I hate you, stupid <<beasttype>>." <</if>> <</if>> <<else>> <<if $npc.includes("Bailey")>> You <<voice "demand">>. <<if $rng lte 15>> <<if $awarelevel gte 1>> "I'm not letting you auction us off like whores!" <<else>> "What do you want from me?!" <</if>> <<elseif $rng lte 30>> <<if $robinmissing isnot 0>> "What the fuck did you do to Robin?" <<elseif C.npc.Robin.trauma gte 60>> "It's your fault Robin is hurt!" <<elseif $robindebtknown is 1>> "No more extortion!" <<else>> "You're a monster!" <</if>> <<elseif $rng lte 45>> "You're worse than the rapists you cater to." <<elseif $rng lte 60>> "You're a shit caretaker." <<elseif $rng lte 75>> "You're going to pay for what you've done." <<elseif $pain gte 40>> "You abusive, vindictive fuck!" <<else>> "I'm not going without a fight!" <</if>> <<elseif _loveInterest isnot undefined and random(0,100) lte 15>> <<set $speechnamedrop to $npc.includes(_loveInterest) ? 0 : 1>> <<if $speechnamedrop is 0>> You speak. <<else>> You <<voice "demand">>. <</if>> <<rng>> <<switch _loveInterest>> <<case "Robin">> <<if $npc.includes("Robin")>> "Robin, stop! I don't want this!" <<elseif $vaginastate is "imminent" or $penisstate is "imminent" or $penisstate is "otheranusimminent">> <<if $player.virginity.vaginal is true and $player.virginity.penile is true>> <<if $awarelevel gte 1>> "Robin is the only one that deserves my virginity!" <<else>> "Get away from my special place! I'll only let Robin have it!" <</if>> <<else>> "H-Hey! That's for Robin, not you, asshole!" <</if>> <<elseif $vaginastate is "penetrated" or $anusstate is "penetrated">> <<if $arousal lte $arousalmax / 5>> "Robin's the one I love! You could never satisfy me!" <<elseif $arousal lte ($arousalmax / 5) * 4>> "Get out! That's for Robin!" <<else>> "I-I'm not cheating on Robin, you piece of...!" <</if>> <<elseif $penisstate is "penetrated" or $penisstate is "otheranus">> <<if $arousal lte $arousalmax / 5>> "Robin's the one I love! You could never satisfy me!" <<elseif $arousal lte ($arousalmax / 5) * 4>> "Get off of me! That's for Robin!" <<else>> "I-I'm not cheating on Robin, you piece of...!" <</if>> <<elseif $exposed gte 2>> <<switch random(1,3)>> <<case 1>> "Robin's earned my body. You haven't. Look away. Now!" <<case 2>> "At least Robin holds my hand before trying to see me naked." <<case 3>> "Don't you dare look! This body is for Robin!" <</switch>> <<else>> <<if $arousal lte $arousalmax / 5>> <<switch random(1,3)>> <<case 1>> <<if $awarelevel gte 1>>"Fuck off, I already belong to Robin!"<<else>>"You're mean! I only want Robin!"<</if>> <<case 2>> "I'm not going to break Robin's heart!" <<case 3>> "Robin needs me, let me go!" <</switch>> <<elseif $arousal lte ($arousalmax / 5) * 3>> "Even Robin is better at touching me than you are." <<else>> "Only Robin can... make me feel like this! Not you!" <</if>> <</if>> <<case "Kylar">> <<if $npc.includes("Kylar")>> "I'm not in the mood for your shit right now, Kylar." <<elseif $vaginastate is "imminent">> <<if $player.virginity.vaginal is true>> <<if $awarelevel gte 1>> "If you make me bleed, Kylar will make you bleed!" <<else>> "That's my special place. Only Kylar's allowed there!" <</if>> <<else>> "Kylar will find you if you violate me!" <</if>> <<elseif $penisstate is "imminent" or $penisstate is "otheranusimminent">> <<if $player.virginity.penile is true>> <<if $awarelevel gte 1>> "I'm saving myself for Kylar! If you steal this from me, we'll never forgive you!" <<else>> "That's my special place. Only Kylar's allowed there!" <</if>> <<else>> "Kylar will find you if you violate me!" <</if>> <<elseif $vaginastate is "penetrated" or $anusstate is "penetrated">> <<if $arousal lte $arousalmax / 5>> "Pathetic. You could never make me happy like Kylar does." <<elseif $arousal lte ($arousalmax / 5) * 4>> "Get out! You don't know who you're going to piss off by doing this." <<else>> "I-I'd never cheat on Kylar, you piece of...!" <</if>> <<elseif $penisstate is "penetrated" or $penisstate is "otheranus">> <<if $arousal lte $arousalmax / 5>> "Pathetic. You could never make me happy like Kylar does." <<elseif $arousal lte ($arousalmax / 5) * 4>> "Get the fuck off of me! You don't know who you're going to piss off by doing this." <<else>> "I-I'd never cheat on Kylar, you piece of...!" <</if>> <<elseif $exposed gte 2>> <<switch random(1,3)>> <<case 1>> "Only Kylar deserves to see my body like this. Don't you dare look!" <<case 2>> "My body belongs to Kylar. Clothes too. Now fuck off." <<case 3>> "Kylar did something pretty nasty to the last person that saw me naked, you know." <</switch>> <<else>> <<if $arousal lte $arousalmax / 5>> <<switch random(1,3)>> <<case 1>> <<if $awarelevel gte 1>>"Kylar will fuck you up badly for this."<<else>>"I know someone who can hurt you. Badly!"<</if>> <<case 2>> "I won't break Kylar's heart. I'll break your face instead." <<case 3>> "Kylar likes to cut people who mess with me. Better leave." <</switch>> <<elseif $arousal lte ($arousalmax / 5) * 3>> "No one is scarier than Kylar, especially not you." <<else>> "Kylar will... hurt you for this...!" <</if>> <</if>> <<if $location is "school" and $speechnamedrop is 1 and Time.schoolDay>> <<status -1>><<lcool>> <</if>> <<case "Whitney">> <<if $npc.includes("Whitney")>> "You can't just fuck me whenever you want, Whitney!" <<elseif $vaginastate is "imminent" or $penisstate is "imminent" or $penisstate is "otheranusimminent">> <<if $player.virginity.vaginal is true and $player.virginity.penile is true>> <<if $awarelevel gte 1>> "Whitney will kill me if you take my virginity! Don't!" <<else>> "I only let Whitney touch my special place! Stop!" <</if>> <<else>> "PROPERTY! OF! WHITNEY!" <</if>> <<elseif $vaginastate is "penetrated" or $anusstate is "penetrated">> <<if $arousal lte $arousalmax / 5>> "Oh, please. Whitney fucks me way harder! This is nothing." <<elseif $arousal lte ($arousalmax / 5) * 4>> "Get out! Whitney will beat us both to a pulp for this!" <<else>> "Whitney will... end you...!" <</if>> <<elseif $penisstate is "penetrated" or $penisstate is "otheranus">> <<if $arousal lte $arousalmax / 5>> "Oh, please. Whitney fucks me way harder! This is nothing." <<elseif $arousal lte ($arousalmax / 5) * 4>> "Get out! Whitney will beat us both to a pulp for this!" <<else>> "Whitney will... end you...!" <</if>> <<elseif $exposed gte 2>> <<switch random(1,3)>> <<case 1>> "Just because I get naked for Whitney doesn't mean you can grab me!" <<case 2>> "I only strip for Whitney. Eyes off." <<case 3>> "I'm going to make sure Whitney gets you for this, pervert!" <</switch>> <<else>> <<if $arousal lte $arousalmax / 5>> <<switch random(1,3)>> <<case 1>> <<if $awarelevel gte 1>>"I'm Whitney's slut, not yours!"<<else>>"Only Whitney can play rough with me! Get away!"<</if>> <<case 2>> "I'm taken, and Whitney doesn't share with people like you." <<case 3>> "I'm Whitney's property, and you're trespassing." <</switch>> <<elseif $arousal lte ($arousalmax / 5) * 3>> "I'm Whitney's pet! You're just a lonely freak!" <<else>> "Only... Whitney can make me...!" <</if>> <</if>> <<if $location is "school" and Time.schoolDay>> <<status 1>><<gcool>> <</if>> <<case "Eden">> <<if $npc.includes("Eden")>> "I'm not your prey today, leave me alone." <<elseif $vaginastate is "imminent" or $penisstate is "imminent" or $penisstate is "otheranusimminent">> <<if $player.virginity.vaginal is true and $player.virginity.penile is true>> <<if $awarelevel gte 1>> "Eden will be the one to take me, not you!" <<else>> "I only trust Eden with that! Get away!" <</if>> <<else>> "If you violate me, Eden will kill you!" <</if>> <<elseif $vaginastate is "penetrated" or $anusstate is "penetrated">> <<if $arousal lte $arousalmax / 5>> "You may think you're a predator, but to Eden, you're nothing but prey!" <<elseif $arousal lte ($arousalmax / 5) * 4>> "Get out! I belong to the <<nnpc_title "Eden">>!" <<else>> "Y...you're trespassing on Eden's... AAH! Property!" <</if>> <<elseif $penisstate is "penetrated" or $penisstate is "otheranus">> <<if $arousal lte $arousalmax / 5>> "You may think you're a predator, but to Eden, you're nothing but prey!" <<elseif $arousal lte ($arousalmax / 5) * 4>> "Get off of me! I belong to the <<nnpc_title "Eden">>!" <<else>> "Y...you're trespassing on Eden's... AAH! Property!" <</if>> <<elseif $exposed gte 2>> <<switch random(1,3)>> <<case 1>> "Look while you still can, pervert. Eden will hunt you down for this." <<case 2>> "Eden will use your hide to make me new clothes!" <<case 3>> "I have to get back to the cabin... and tell Eden what you've done!" <</switch>> <<else>> <<if $arousal lte $arousalmax / 5>> <<switch random(1,3)>> <<case 1>> <<if $awarelevel gte 1>>"I am Eden's mate! You'll regret this!"<<else>>"I am Eden's companion! You'll regret this!"<</if>> <<case 2>> "You're so bad at this. I'm having a hard time pretending you're Eden." <<case 3>> "Eden was right about you people. Nothing but animals!" <</switch>> <<elseif $arousal lte ($arousalmax / 5) * 3>> "You might have my body, but my heart is in the forest with Eden!" <<else>> "Go ahead. Mark me with your scent. It will only make Eden's hunt that much easier." <</if>> <</if>> <<case "Black Wolf">> <<if $npc.includes("Black Wolf")>> "Down. DOWN!" <<elseif $vaginastate is "imminent" or $penisstate is "imminent" or $penisstate is "otheranusimminent">> <<if $player.virginity.vaginal is true and $player.virginity.penile is true>> <<if $awarelevel gte 1>> "My wolf is more worthy of my virginity than you!" <<else>> "Only the big wolf is allowed to touch me there!" <</if>> <<else>> "If you violate me, my pack will be jealous. Maybe they'll come for you next!" <</if>> <<elseif $vaginastate is "penetrated" or $anusstate is "penetrated">> <<if $arousal lte $arousalmax / 5>> "No knot, no interest." <<elseif $arousal lte ($arousalmax / 5) * 4>> "What's the point of your lousy dick if it doesn't even get stuck?" <<else>> "Y...your dick could never satisfy me the way the wolves do!" <</if>> <<elseif $penisstate is "penetrated" or $penisstate is "otheranus">> <<if $arousal lte $arousalmax / 5>> "Nothing like the wolves. Just give it up already." <<elseif $arousal lte ($arousalmax / 5) * 4>> "How does it feel knowing a wolf is a better fuck than you?" <<else>> "The wolves are the only ones that deserve my seed!" <</if>> <<elseif $exposed gte 2>> <<switch random(1,3)>> <<case 1>> "Ugh! The wolves don't stare as much! You're creepy!" <<case 2>> "Get your eyes off of me, only my wolf can lust after me!" <<case 3>> "This body was only meant for the wolf pack. Look away!" <</switch>> <<else>> <<if $arousal lte $arousalmax / 5>> <<switch random(1,3)>> <<case 1>> <<if $awarelevel gte 1>>"Only the wolves can <<print ($settings.pregnancySpeechEnabled ? "breed with" : "fuck")>> me!"<<else>>"Leave me alone! I only cuddle with the wolves!"<</if>> <<case 2>> "A wolf pack treats me with more courtesy than you." <<case 3>> "How is it that a wolf is more romantic than you?" <</switch>> <<elseif $arousal lte ($arousalmax / 5) * 3>> "Let go! I belong in the forest with my wolves!" <<else>> "I'll howl, and my big bad wolf will come. You'll be sorry then!" <</if>> <</if>> <<famebestiality $enemyno>> <<case "Avery">> <<if $npc.includes("Avery")>> "You don't pay me enough to treat me like this!" <<elseif $vaginastate is "imminent" or $penisstate is "imminent" or $penisstate is "otheranusimminent">> <<if $player.virginity.vaginal is true and $player.virginity.penile is true>> <<if $awarelevel gte 1>> "I'm saving myself for Avery, fuck off!" <<else>> "I only let Avery touch me there!" <</if>> <<else>> "H-Hey! That's for Avery, not you!" <</if>> <<elseif $vaginastate is "penetrated" or $anusstate is "penetrated">> <<if $arousal lte $arousalmax / 5>> "At least Avery pays me to do this!" <<elseif $arousal lte ($arousalmax / 5) * 4>> "Get out! Avery owns me!" <<else>> "Avery will give me hell for this, just stop!" <</if>> <<elseif $penisstate is "penetrated" or $penisstate is "otheranus">> <<if $arousal lte $arousalmax / 5>> "At least Avery pays me to do this!" <<elseif $arousal lte ($arousalmax / 5) * 4>> "Get off of me! Avery owns me!" <<else>> "Avery will give me hell for this, just stop!" <</if>> <<elseif $exposed gte 2>> <<switch random(1,3)>> <<case 1>> "Unlike Avery, you haven't paid to see me naked. Fuck off." <<case 2>> "At least Avery takes me to dinner first. Get your eyes off of me!" <<case 3>> "Don't you dare look! This body is for Avery!" <</switch>> <<else>> <<if $arousal lte $arousalmax / 5>> <<switch random(1,3)>> <<case 1>> <<if $awarelevel gte 1>>"Does the name Avery sound familiar, asshole? I can make sure you never work in this town again!"<<else>>"I only want Avery! Go away!"<</if>> <<case 2>> "I won't betray Avery's trust!" <<case 3>> "You could take notes from Avery on how to be romantic. Fuck off." <</switch>> <<elseif $arousal lte ($arousalmax / 5) * 3>> "I'll just close my eyes and pretend you're Avery, you're boring me." <<else>> "At least... Avery takes me on a date first...!" <</if>> <</if>> <<case "Great Hawk">> <<if $npc.includes("Great Hawk")>> "Stop pecking me!" <<elseif $vaginastate is "imminent" or $penisstate is "imminent" or $penisstate is "otheranusimminent">> <<if $player.virginity.vaginal is true and $player.virginity.penile is true>> <<if $awarelevel gte 1>> "Stop! I'm saving my virginity for my <<hawkText>> spouse!" <<else>> "Only my <<hawkText>> spouse gets to touch me in those areas!" <</if>> <<else>> "The Great Hawk has <<nnpc_his "Great Hawk">> eye on you." <</if>> <<elseif $vaginastate is "penetrated" or $anusstate is "penetrated">> <<if $arousal lte $arousalmax / 5>> "I'm not seeing any talons on you. I'm disappointed." <<elseif $arousal lte ($arousalmax / 5) * 4>> "I'd prefer feathery dicks, thanks." <<else>> "They didn't call <<nnpc_him "Great Hawk">> the "Great" Hawk for nothing. You're pathetic." <</if>> <<elseif $penisstate is "penetrated" or $penisstate is "otheranus">> <<if $arousal lte $arousalmax / 5>> "Cloacas are my area of expertise, not this." <<elseif $arousal lte ($arousalmax / 5) * 4>> "You're nothing compared to my <<hawkText>> spouse." <<else>> "I was meant to make babies with my <<hawkText>> spouse, so kindly get the fuck off of me!" <</if>> <<elseif $exposed gte 2>> <<switch random(1,3)>> <<case 1>> "Ugh, the Great Hawk doesn't even stare this much! You're creepy!" <<case 2>> "My eyes are up here. Is your name the 'Great Hawk'?" <<case 3>> "This body is preserved for the Great Hawk only." <</switch>> <<else>> <<if $arousal lte $arousalmax / 5>> <<switch random(1,3)>> <<case 1>> <<if $awarelevel gte 1>>"I have a <<hawkText>> spouse already. NOT. AVAILABLE."<<else>>"I live like a <<if $player.gender_appearance is "m">>king<<else>>queen<</if>> in a castle with a lovely <<hawkText>> spouse, why should I bother with you?"<</if>> <<case 2>> "A <<hawkText>> treats me better than you." <<case 3>> "At least bring me a ring first before you have your way with me, like the Great Hawk." <</switch>> <<elseif $arousal lte ($arousalmax / 5) * 3>> "You'd better keep your eyes on the sky, the Great Hawk will be after you for this!" <<else>> "I'll scream, and the Great Hawk will come swooping in. You just watch!" <</if>> <</if>> <<famebestiality $enemyno>> <<case "Alex">> <<if $npc.includes("Alex")>> "Alex, you idiot! Control yourself." <<elseif $vaginastate is "imminent" or $penisstate is "imminent" or $penisstate is "otheranusimminent">> <<if $player.virginity.vaginal is true and $player.virginity.penile is true>> <<if $awarelevel gte 1>> "My virginity belongs to Alex!" <<else>> "Get away from my special place! It's for Alex!" <</if>> <<else>> "That's Alex's territory, not yours!" <</if>> <<elseif $vaginastate is "penetrated" or $anusstate is "penetrated">> <<if $arousal lte $arousalmax / 5>> "Alex is much better than you!" <<elseif $arousal lte ($arousalmax / 5) * 4>> "Wait until Alex hears. You'll get smacked down!" <<else>> "I'm not doing this because I want to, Alex!" <</if>> <<elseif $penisstate is "penetrated" or $penisstate is "otheranus">> <<if $arousal lte $arousalmax / 5>> "Alex is much better than you!" <<elseif $arousal lte ($arousalmax / 5) * 4>> "Wait until Alex hears. You'll get smacked down!" <<else>> "I'm not doing this because I want to, Alex!" <</if>> <<elseif $exposed gte 2>> <<switch random(1,3)>> <<case 1>> "This body is for Alex, and Alex alone." <<case 2>> "Alex has more respect for my body." <<case 3>> "Alex, save me from these filthy eyes." <</switch>> <<else>> <<if $arousal lte $arousalmax / 5>> <<switch random(1,3)>> <<case 1>> <<if $awarelevel gte 1>>"Fuck off, or I'll tell Alex!"<<else>>"Alex will find out and beat you!"<</if>> <<case 2>> "I'm not going to betray Alex!" <<case 3>> "I'm Alex's partner, not yours!" <</switch>> <<elseif $arousal lte ($arousalmax / 5) * 3>> "You're nothing compared to Alex." <<else>> "I-I only feel like this because I'm thinking about Alex!" <</if>> <</if>> <<case "Sydney">> <<run statusCheck("Sydney")>> <<if $npc.includes("Sydney")>> <<if _sydneyStatus.includes("corrupt")>> "I miss when you were pure. At least you didn't pull shit like this." <<else>> "What sort of punishment is this? Get off me!" <</if>> <<elseif $vaginastate is "imminent" or $penisstate is "imminent" or $penisstate is "otheranusimminent">> <<if $templePromised is "Sydney">> <<if (($player.virginity.vaginal is true or $player.virginity.temple is true) and $vaginastate is "imminent") or (($player.virginity.penile is true and $player.virginity.temple is true) and ($penisstate is "imminent" or $penisstate is "otheranusimminent"))>> <<if $awarelevel gte 1>> "I'm bound to Sydney, not you! Get off me!" <<else>> "You can't! Me and Sydney are bound as one!" <</if>> <<else>> "Sydney's the only one that can defile me!" <</if>> <<else>> <<if $player.virginity.vaginal is true>> <<if $awarelevel gte 1>> "I love Sydney, not you! Get off me!" <<else>> "You can't! Me and Sydney are meant to be!" <</if>> <<else>> "Sydney's the only one that can please me!" <</if>> <</if>> <<elseif $vaginastate is "penetrated" or $penisstate is "penetrated" or $penisstate is "otheranus">> <<if $templePromised is "Sydney">> <<if $arousal lte $arousalmax / 5>> "This means nothing! Sydney and I are still one!" <<elseif $arousal lte ($arousalmax / 5) * 4>> "Sydney and I are bound, and you're NOT part of it!" <<else>> "You won't... break our bond...!" <</if>> <<else>> <<if $arousal lte $arousalmax / 5>> "This means nothing! Sydney and I are still together!" <<elseif $arousal lte ($arousalmax / 5) * 4>> "Sydney and I are together, and you're NOT part of it!" <<else>> "You won't... break our love...!" <</if>> <</if>> <<elseif $anusstate is "penetrated">> <<if $templePromised is "Sydney">> <<if $arousal lte $arousalmax / 5>> "The temple doesn't care about that, but I do! Back off!" <<elseif $arousal lte ($arousalmax / 5) * 4>> "Every part of me is Sydney's, even there!" <<else>> "You won't... break our bond...!" <</if>> <<else>> <<if $arousal lte $arousalmax / 5>> "The temple doesn't care about that, but I do! Back off!" <<elseif $arousal lte ($arousalmax / 5) * 4>> "I'm saving everything for Sydney, even there!" <<else>> "You won't... break our love...!" <</if>> <</if>> <<elseif $exposed gte 2>> <<if $templePromised is "Sydney">> <<switch random(1,3)>> <<case 1>> "I'm all for Sydney! Get away!" <<case 2>> "The temple joined Sydney and I, and you're NOT part of it!" <<case 3>> "See this? This belongs to Sydney, not you." <</switch>> <<else>> <<switch random(1,3)>> <<case 1>> "I'm all for Sydney! Get away!" <<case 2>> "Sydney's the one I love! This is for <<nnpc_him "Sydney">>!" <<case 3>> "See this? I'm saving this for Sydney, not you." <</switch>> <</if>> <<else>> <<if $templePromised is "Sydney">> <<if $arousal lte $arousalmax / 5>> <<switch random(1,3)>> <<case 1>> <<if $awarelevel gte 1>>"You damned sinner."<<else>>"You filthy sinner."<</if>> <<case 2>> "I won't break my promise to Sydney!" <<case 3>> "Don't even look at me. Your eyes make me feel impure." <</switch>> <<elseif $arousal lte ($arousalmax / 5) * 3>> "You'll burn for doing this to me! The temple will make sure!" <<else>> "My promise to Sydney... you won't make me break it...!" <</if>> <<else>> <<if $arousal lte $arousalmax / 5>> <<switch random(1,3)>> <<case 1>> <<if $awarelevel gte 1>>"You poor, damned soul."<<else>>"You poor, wretched soul."<</if>> <<case 2>> "I won't betray Sydney's trust!" <<case 3>> "Don't even look at me. You're not Sydney." <</switch>> <<elseif $arousal lte ($arousalmax / 5) * 3>> "You'll pay for doing this to me! The temple will make sure!" <<else>> "Our love... you won't take it from me and Sydney...!" <</if>> <</if>> <</if>> <<case "Gwylan">> <<if $npc.includes("Gwylan")>> <<if $abomination is 1>> "Gwylan, I know you're in there! Take control!" <<elseif $hypnosis_traits.devotion gte 4 or $combat_hypnosis>> "Gwylan, stop! Get out of my head!" <<elseif $gwylanSeen.includes("romance")>> "Gwylan, stop this! You promised!" <<else>> "Gwylan, stop this!" <</if>> <<elseif $vaginastate is "imminent" or $penisstate is "imminent" or $penisstate is "otheranusimminent">> <<if $player.virginity.vaginal is true and $player.virginity.penile is true>> <<if $awarelevel gte 1>> "My virginity belongs to Gwylan alone!" <<else>> "Get away from my magic place! That's for Gwylan!" <</if>> <<else>> "That's property of the witch!" <</if>> <<elseif $vaginastate is "penetrated" or $anusstate is "penetrated">> <<if $arousal lte $arousalmax / 5>> "I'm already bewitched by Gwylan, not you!" <<elseif $arousal lte ($arousalmax / 5) * 4>> "Get out! That belongs to Gwylan!" <<else>> "M-my heart belongs to Gwylan, you piece of...!" <</if>> <<elseif $penisstate is "penetrated" or $penisstate is "otheranus">> <<if $arousal lte $arousalmax / 5>> "I'm already bewitched by Gwylan, not you!" <<elseif $arousal lte ($arousalmax / 5) * 4>> "Get off of me! That belongs to Gwylan!" <<else>> "M-my heart belongs to Gwylan, you piece of...!" <</if>> <<elseif $exposed gte 2>> <<switch random(1,3)>> <<case 1>> "This body is for Gwylan only, avert your eyes!" <<case 2>> "I belong to the witch, look away or <<nnpc_he "Gwylan">>'ll see you too!" <<case 3>> "If your gaze lingers on me, Gwylan's gaze will fall on you in turn." <</switch>> <<else>> <<if $arousal lte $arousalmax / 5>> <<switch random(1,3)>> <<case 1>> <<if $awarelevel gte 1>>"Fuck off, I already belong to Gwylan!"<<else>>"You're mean! I only want Gwylan!"<</if>> <<case 2>> "Gwylan's heart is fragile, I won't break it!" <<case 3>> "I need to go see Gwylan, let me go!" <</switch>> <<elseif $arousal lte ($arousalmax / 5) * 3>> "You can't compare to Gwylan's skilled hands." <<else>> "Only Gwylan can bewitch me! Not you!" <</if>> <</if>> <<default>> <</switch>> <<else>> You <<voice "demand">>. <<if $npc.includes("Robin")>> <<if $robinmist>> "Robin, stop! This isn't like you!" <<else>> "Robin, get a hold of yourself!" <</if>> <<elseif $vaginastate is "imminent">> <<if $player.virginity.vaginal is true>> <<if $awarelevel gte 1>> "If you take my virginity I'll never forgive you." <<else>> "That's my special place. You're not allowed there!" <</if>> <<else>> "Get that disgusting thing away from me!" <</if>> <<elseif $penisstate is "imminent">> <<if $player.virginity.penile is true>> <<if $awarelevel gte 1>> "If you take my virginity I'll never forgive you." <<else>> "That's my special place. You're not allowed there!" <</if>> <<else>> "Get that disgusting thing away from me!" <</if>> <<elseif $penisstate is "otheranusimminent">> <<if $player.virginity.penile is true>> <<if $awarelevel gte 1>> "If you take my virginity I'll never forgive you." <<else>> "That's my special place. You're not allowed there!" <</if>> <<else>> "Get your disgusting ass away from me!" <</if>> <<elseif $anusstate is "imminent">> <<if $player.virginity.anal is true>> <<if $awarelevel gte 1>> "I don't know what you think you're doing, but you're gonna get the fuck away from me this instant." <<else>> "I don't know why you're poking my bottom, but stop right now!" <</if>> <<else>> "Get away from my ass, pervert!" <</if>> <<elseif $vaginastate is "penetrated">> <<if $arousal lte $arousalmax / 5>> "Get out of my pussy right now!" <<elseif $arousal lte ($arousalmax / 5) * 4>> "Get off me, rapist scum!" <<else>> "I-If you make me c-cum, I'll never forgive you." <</if>> <<elseif $penisstate is "penetrated">> <<if $arousal lte $arousalmax / 5>> "Get off my penis right now!" <<elseif $arousal lte ($arousalmax / 5) * 4>> "Get off me, rapist scum!" <<else>> "I-If you make me c-cum, I'll never forgive you." <</if>> <<elseif $penisstate is "otheranus">> <<if $arousal lte $arousalmax / 5>> "Get off my penis right now!" <<elseif $arousal lte ($arousalmax / 5) * 4>> "Get your ass off me, rapist scum!" <<else>> "I-If you make me c-cum, I'll never forgive you." <</if>> <<elseif $anusstate is "penetrated">> <<if $arousal lte $arousalmax / 5>> "Get out of my ass right now!" <<elseif $arousal lte ($arousalmax / 5) * 4>> "Get off me, rapist scum!" <<else>> "I-If you make me c-cum, I'll never forgive you." <</if>> <<elseif $exposed gte 2 and $rng gte 51>> <<switch random(0,4)>> <<case 0>> "Get away from my private place!" <<case 1>> "You like what you see, you useless fuck? I'll make you pay for it." <<case 2>> "Don't you dare look, rapist piece of shit." <<case 3>> "I might be exposed, but I'm not afraid of you!" <<case 4>> "You like what you see? Of course you do, pervert." <</switch>> <<elseif $awarelevel gte 1>> <<if $arousal lte $arousalmax / 5>> "Get away from me, pervert." <<elseif $arousal lte ($arousalmax / 5) * 3>> "Stop touching me right now or I'll make you pay!" <<else>> "I-I'm not gonna cum... I'm not." <</if>> <<else>> <<if $arousal lte $arousalmax / 5>> <<switch random(1,3)>> <<case 1>> "Go away!" <<case 2>> "I don't like you, get away from me." <<case 3>> "Stop touching me." <</switch>> <<elseif $arousal lte ($arousalmax / 5) * 3>> "Leave me alone." <<else>> "I-It's your fault I feel strange. Go away!" <</if>> <</if>> <</if>> <</if>> <</widget>> <<widget "actionsmock">> <<set $mockcycle to $mockcycle gt -1 ? ($mockcycle + 1) % 5 : 0>> <<if $mockaction is "penis">> <<if $vaginause is "penis">> <<if $vaginastate is "penetrated">> <<switch $mockcycle>> <<case 0>> "I can barely feel it," <<case 1>> "The last cock was much larger," <<case 2>> "Is it even in yet?" <<case 3>> "Don't you have something bigger?" <<case 4>> "How disappointing," <</switch>> <<else>> <<switch $mockcycle>> <<case 0>> "I bet the thought of entering my pussy is driving you mad," <<case 1>> "I'm not sure you're big enough," <<case 2>> "What are you waiting for?" <<case 3>> "I bet you cum before you get it in," <<case 4>> "Do you even know how to use that thing?" <</switch>> <</if>> <<elseif $anususe is "penis">> <<if $anusstate is "penetrated">> <<switch $mockcycle>> <<case 0>> "I can barely feel it," <<case 1>> "The last cock was much larger," <<case 2>> "Is it even in yet?" <<case 3>> "Don't you have something bigger?" <<case 4>> "How disappointing," <</switch>> <<else>> <<switch $mockcycle>> <<case 0>> "I bet the thought of entering my ass is driving you mad," <<case 1>> "I'm not sure you're big enough," <<case 2>> "What are you waiting for?" <<case 3>> "I bet you cum before you get it in," <<case 4>> "Do you even know how to use that thing?" <</switch>> <</if>> <<else>> <<switch $mockcycle>> <<case 0>> "How disappointing," <<case 1>> "You're pathetic," <<case 2>> "Is that all you've got?" <<case 3>> "Your little thing doesn't frighten me," <<case 4>> "Your cock is so small," <</switch>> <</if>> <<elseif $mockaction is "vagina">> <<if $penisuse is "othervagina">> <<if $penisstate is "penetrated">> <<switch $mockcycle>> <<case 0>> "You're confident for someone getting pounded," <<case 1>> "I'm gonna fill your womb," <<case 2>> "Your pussy feels weird," <<case 3>> "I think you've had one too many cocks in you," <<case 4>> "What's it like getting fucked like this?" <</switch>> <<else>> <<switch $mockcycle>> <<case 0>> "You're such a <<slut>>," <<case 1>> "I don't think you're ready for my cock," <<case 2>> "You think you can handle it?" <<case 3>> "I bet you try to ride every cock you see," <<case 4>> "You're very eager to take me inside you," <</switch>> <</if>> <<else>> <<switch $mockcycle>> <<case 0>> "You're so wet already," <<case 1>> "You're eager to get fucked," <<case 2>> "I bet your pussy has had lots of use," <<case 3>> "You might be too wide for me," <<case 4>> "Your pussy looks weird," <</switch>> <</if>> <<elseif $mockaction is "skill">> <<if $vaginause is "penis">> <<if $vaginastate is "penetrated">> <<switch $mockcycle>> <<case 0>> "At least you're trying," <<case 1>> "You're boring me," <<case 2>> "Your cock is so clumsy," <<case 3>> "Do you even know how to use that thing?" <<case 4>> "Is this your first time?" <</switch>> <<else>> <<switch $mockcycle>> <<case 0>> "Careful where you point that," <<case 1>> "You won't last long," <<case 2>> "I bet this is new to you," <<case 3>> "You're not good enough for my pussy," <<case 4>> "I don't expect much," <</switch>> <</if>> <<elseif $anususe is "penis">> <<if $anusstate is "penetrated">> <<switch $mockcycle>> <<case 0>> "At least you're trying," <<case 1>> "You're boring me," <<case 2>> "Your cock is so clumsy," <<case 3>> "Do you even know how to use that thing?" <<case 4>> "Is this your first time?" <</switch>> <<else>> <<switch $mockcycle>> <<case 0>> "Careful where you point that," <<case 1>> "You won't last long," <<case 2>> "I bet this is new to you," <<case 3>> "You're not good enough for my ass," <<case 4>> "I don't expect much," <</switch>> <</if>> <<elseif $penisuse is "othervagina" or $penisuse is "otheranus">> <<if $penisstate is "penetrated" or $penisstate is "otheranus">> <<switch $mockcycle>> <<case 0>> "At least you're trying," <<case 1>> "You're not making me cum," <<case 2>> "Move your hips more. Do I have to do everything?" <<case 3>> "Do you even know what you're doing?" <<case 4>> "Is this your first time?" <</switch>> <<else>> <<switch $mockcycle>> <<case 0>> "Careful where you point that," <<case 1>> "You won't last long," <<case 2>> "I doubt you know how handle it," <<case 3>> "You're not good enough for my penis," <<case 4>> "I don't expect much," <</switch>> <</if>> <<else>> <<switch $mockcycle>> <<case 0>> "At least you're trying," <<case 1>> "Wake me when it's over," <<case 2>> "I'd be better off using my hand," <<case 3>> "You don't know what you're doing, do you?" <<case 4>> "You're bad at this," <</switch>> <</if>> <<elseif $mockaction is "weak">> <<if $vaginause is "penis">> <<if $vaginastate is "penetrated">> <<switch $mockcycle>> <<case 0>> "Tired already?" <<case 1>> "I don't normally let such weaklings inside me," <<case 2>> "Careful you don't have a heart attack," <<case 3>> "You're too weak to keep this up," <<case 4>> "You're wearing out fast," <</switch>> <<else>> <<switch $mockcycle>> <<case 0>> "I don't think you're strong enough to push it in," <<case 1>> "It goes in when I say so," <<case 2>> "You gonna faint on me?" <<case 3>> "I could keep you away forever," <<case 4>> "If you want my pussy, you'll need to work harder than that," <</switch>> <</if>> <<elseif $anususe is "penis">> <<if $anusstate is "penetrated">> <<switch $mockcycle>> <<case 0>> "Tired already?" <<case 1>> "I don't normally let such weaklings inside me," <<case 2>> "Careful you don't have a heart attack," <<case 3>> "You're too weak to keep this up," <<case 4>> "You're wearing out fast," <</switch>> <<else>> <<switch $mockcycle>> <<case 0>> "I don't think you're strong enough to push it in," <<case 1>> "It goes in when I say so," <<case 2>> "You gonna faint on me?" <<case 3>> "I could keep you away forever," <<case 4>> "If you want my ass, you'll need to work harder than that," <</switch>> <</if>> <<elseif $penisuse is "othervagina" or $penisuse is "otheranus">> <<if $penisstate is "penetrated" or $penisstate is "otheranus">> <<switch $mockcycle>> <<case 0>> "Tired already?" <<case 1>> "I don't normally fuck such weaklings," <<case 2>> "Careful you don't have a heart attack," <<case 3>> "You're too weak to keep this up," <<case 4>> "You're wearing out fast," <</switch>> <<else>> <<switch $mockcycle>> <<case 0>> "I don't think you're strong enough to push it in," <<case 1>> "It goes in when I say so," <<case 2>> "You gonna faint on me?" <<case 3>> "I could keep you away forever," <<case 4>> "If you want my penis, you'll need to work harder than that," <</switch>> <</if>> <<else>> <<switch $mockcycle>> <<case 0>> "You're so weak," <<case 1>> "This is only happening because I let it," <<case 2>> "I'm doing this out of pity," <<case 3>> "You couldn't even force someone to fuck you," <<case 4>> "Is that all you've got?" <</switch>> <</if>> <<elseif $mockaction is "looks">> <<if $vaginause is "penis">> <<if $vaginastate is "penetrated">> <<switch $mockcycle>> <<case 0>> "At least don't make me look at your face," <<case 1>> "You could only ever get someone to fuck you through force," <<case 2>> "Hurry up. I don't want to look at you any more," <<case 3>> "I hope I don't have to fuck anyone as ugly as you again," <<case 4>> "I hope you're enjoying this. It's more than you deserve," <</switch>> <<else>> <<switch $mockcycle>> <<case 0>> "The thought of someone so revolting fucking me is making me queasy," <<case 1>> "You want me to pity fuck you?" <<case 2>> "I don't want any part of your disgusting body inside me," <<case 3>> "I've never fucked anyone as ugly as you," <<case 4>> "I look too good for you," <</switch>> <</if>> <<elseif $anususe is "penis">> <<if $anusstate is "penetrated">> <<switch $mockcycle>> <<case 0>> "At least don't make me look at your face," <<case 1>> "You could only ever get someone to fuck you through force," <<case 2>> "Hurry up. I don't want to look at you any more," <<case 3>> "I hope I don't have to fuck anyone as ugly as you again," <<case 4>> "I hope you're enjoying this. It's more than you deserve," <</switch>> <<else>> <<switch $mockcycle>> <<case 0>> "The thought of someone so revolting fucking me is making me queasy," <<case 1>> "You want me to pity fuck you?" <<case 2>> "I don't want any part of your disgusting body inside me," <<case 3>> "I've never fucked anyone as ugly as you," <<case 4>> "I look too good for you," <</switch>> <</if>> <<elseif $penisuse is "othervagina" or $penisuse is "otheranus">> <<if $penisstate is "penetrated" or $penisstate is "otheranus">> <<switch $mockcycle>> <<case 0>> "At least don't make me look at your face," <<case 1>> "You could only ever get someone to fuck you through force," <<case 2>> "Hurry up. I don't want to look at you any more," <<case 3>> "I hope I don't have to fuck anyone as ugly as you again," <<case 4>> "I hope you're enjoying this. It's more than you deserve," <</switch>> <<else>> <<switch $mockcycle>> <<case 0>> "The thought of someone so revolting fucking me is making me queasy," <<case 1>> "You want me to pity fuck you?" <<case 2>> "I don't want any part of me inside your disgusting body," <<case 3>> "I've never fucked anyone as ugly as you," <<case 4>> "I look too good for you," <</switch>> <</if>> <<else>> <<switch $mockcycle>> <<case 0>> "I'm out of your league," <<case 1>> "I don't want to see your face again," <<case 2>> "You're plain, at best," <<case 3>> "Ew, gross," <<case 4>> "Your body looks weird," <</switch>> <</if>> <<else>> <<if $vaginause is "penis">> <<if $vaginastate is "penetrated">> <<switch $mockcycle>> <<case 0>> "I hope you're happy defiling me like this," <<case 1>> "You're ravaging an innocent <<girl>>. Shame on you," <<case 2>> "You'll be punished for this," <<case 3>> "You're a bad person to be doing such things to my pussy," <<case 4>> "You're so cruel," <</switch>> <<else>> <<switch $mockcycle>> <<case 0>> "Are you really going to defile my innocent pussy?" <<case 1>> "Do you like being rough with <<girls>> like me?" <<case 2>> "You might hurt me with that," <<case 3>> "Do you still think you're a good person?" <<case 4>> "My pussy might not be able to take it," <</switch>> <</if>> <<elseif $anususe is "penis">> <<if $anusstate is "penetrated">> <<switch $mockcycle>> <<case 0>> "I hope you're happy defiling me like this," <<case 1>> "You're ravaging an innocent <<girl>>. Shame on you," <<case 2>> "You'll be punished for this," <<case 3>> "You're a bad person to be doing such things to my ass," <<case 4>> "You're so cruel," <</switch>> <<else>> <<switch $mockcycle>> <<case 0>> "Are you really going to defile my innocent ass?" <<case 1>> "Do you like being rough with <<girls>> like me?" <<case 2>> "You might hurt me with that," <<case 3>> "Do you still think you're a good person?" <<case 4>> "My ass might not be able to take it," <</switch>> <</if>> <<elseif $penisuse is "othervagina" or $penisuse is "otheranus">> <<if $penisstate is "penetrated" or $penisstate is "otheranus">> <<switch $mockcycle>> <<case 0>> "I hope you're happy defiling me like this," <<case 1>> "You're ravaging an innocent <<girl>>. Shame on you," <<case 2>> "You'll be punished for this," <<case 3>> "You're a bad person to be doing such things to my penis," <<case 4>> "You're so cruel," <</switch>> <<else>> <<switch $mockcycle>> <<case 0>> "Are you really going to defile my innocent penis?" <<case 1>> "Do you like being rough with <<girls>> like me?" <<case 2>> "You might hurt me with that," <<case 3>> "Do you still think you're a good person?" <<case 4>> "My penis might not be able to take it," <</switch>> <</if>> <<else>> <<switch $mockcycle>> <<case 0>> "You're so mean," <<case 1>> "Are you really the sort of person who treats innocent <<girls>> this way?" <<case 2>> "What you're doing is wrong," <<case 3>> "How will you live with yourself?" <<case 4>> "You're a bad person," <</switch>> <</if>> <</if>> you say in a <<if $consensual is 1>>teasing<<else>>mocking<</if>> tone. <<personselect $mouthtarget>> <<if $role is "islander" and (!$islander_language or $islander_language lt 100)>> <span class="red"><<if $enemyno gte 2>>They don't<<else>><<He>> doesn't<</if>> understand your words,</span> and <<if $enemyno gte 2>>ignore<<else>>ignores<</if>> them. <<elseif $mockaction is $NPCList[$mouthtarget].insecurity>> <<if $NPCList[$mouthtarget].fullDescription is "Gwylan" and $hypnosis_traits.devotion gte 2>> <br><br> <span class="red"><<He>> stops, suddenly glaring at you with an unreadable expression.</span> "Really? I dare you to repeat yourself." <br><br> You open your mouth to chide <<him>> again, only for <<his>> finger to trace up your neck. <<if $hallucinations gte 2>> <<hypnosisText "<span class='red'>A blue mist leaves your mouth, which <<he>> catches in <<his>> hand with a gentle grasp. Try as you might, no noise comes out, as if your voice had been stolen.</span>">> <<else>> <<hypnosisText "<span class='red'>Your voice catches in your throat. Try as you might, you can't say anything.</span>">> <</if>> <<gwylanHypnoName "cap">> smiles again. "I'll give it back if you behave. Now be a <<pcpetname "Gwylan" "good">> and shush." <<He>> gets back into position and resumes. <<set $combat_silenced to true>> <<if $consensual is 1>> <<set $consensual to 0>> <<molested>><<controlloss>> <</if>> <<elseif $consensual is 1>> <span class="teal"><<He $mouthtarget>> breathes faster as you speak.</span> <<else>> <span class="teal"><<He $mouthtarget>> winces at your words.</span> <<gcombatcontrol>> <</if>> <<else>> <span class="pink"><<He $mouthtarget>> isn't impressed by your words.</span> <</if>> <</widget>> <<widget "actionspeniskiss">> You <<oraltext>> kiss the tip of <<their _args[0]>> $NPCList[_n].penisdesc. <<if $NPCList[$mouthtarget].type is "plant">> <span class="pink">You lap up sweet nectar with your tongue.</span> <<nectarfed 8>> <</if>> <</widget>> <<widget "actionspenislick">> You <<oraltext>> lick <<their _args[0]>> $NPCList[_n].penisdesc. <<if $NPCList[$mouthtarget].type is "plant">> <span class="pink">You lap up sweet nectar with your tongue.</span> <<nectarfed 8>> <</if>> <</widget>> <<widget "actionspenissuck">> <<if $enemytype is "beast">> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> You <<oraltext>> suck the penis invading your mouth as the <<beasttype>> pounds furiously. <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> You <<oraltext>> suck the penis invading your mouth as the <<beasttype>> humps your face excitedly. <<else>> You <<oraltext>> suck the penis penetrating your mouth. <</if>> <<else>> <<set _penis to npcHasStrapon($mouthtarget) ? "strap-on" : "penis">> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> You <<oraltext>> suck the _penis invading your mouth as <<theowner>> thrusts against you. <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> You <<oraltext>> suck the _penis invading your mouth as <<theowner>> grinds against you. <<else>> You <<oraltext>> suck the _penis penetrating your mouth. <</if>> <</if>> <<if $NPCList[$mouthtarget].type is "plant">> <span class="pink">Sweet nectar drips into your mouth.</span> <<nectarfed 12>> <</if>> <</widget>> <<widget "actionspussylick">> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> You <<oraltext>> lick the pussy pressing against your mouth as <<theowner>> rubs against you. <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> You <<oraltext>> lick the pussy pressing against your mouth as <<theowner>> grinds against you. <<else>> You <<oraltext>> lick the pussy pressing against your mouth. <</if>> <<if $NPCList[$mouthtarget].type is "plant">> <span class="pink">You lap up sweet nectar with your tongue.</span> <<nectarfed 8>> <</if>> <</widget>> <<widget "actionsoraledge">> <<if $arousal gte ($arousalmax / 5) * 4>> Your lips quiver as you <<oraltext>> <<elseif $arousal gte ($arousalmax / 5) * 2>> You suppress a moan and <<oraltext>> <<else>> You <<oraltext>> <</if>> <<if $mouthuse.includes("penis")>> <<if $mouthstate is "imminent">> <<print either( "tease <<his>> $NPCList[$mouthtarget].penisdesc against your lips,", "roll your tongue against the base of <<his>> shaft,", "alternate between slow and sharp licks," )>> <<else>> <<print either( "vary your bobbing against <<his>> cock,", "slow <<his>> thrusts with your tongue,", "purse your lips around <<his>> shaft," )>> <</if>> <<else>> <<print either( "alternate between slow and sharp licks,", "press your tongue to <<his>> clit,", "blow on <<his>> clit," )>> <</if>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<print either( "holding <<him>> on the brink of an orgasm.", "waving relief just out of <<his>> reach.", "torturing <<his>> yearning body." )>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<print either( "slowly coaxing <<him>> to climax.", "letting <<his>> arousal swell.", "keeping <<him>> on edge." )>> <<else>> <<print either( "controlling <<his>> arousal.", "curbing <<his>> arousal.", "stirring pleasure." )>> <</if>> <</widget>> <<widget "actionsAnalLick">> <<print either( "You <<oraltext>> lick up and down the crack of the ass pressing down on your mouth", "You <<oraltext>> insert a tongue into the anus pressed against your mouth", "You <<oraltext>> tease the anus resting on your mouth with your tongue", "You <<oraltext>> lap at the asshole resting on your mouth with your tongue", "You move your tongue <<oraltext>> across the ass crack pressed on your face" )>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> as <<theowner>> slowly rubs their ass against your face in response. <</if>> <</widget>> <<widget "actionsAnalKiss">> <<print either( "You kiss one of the ass cheeks pressing down on your face.", "You begin kissing the ass crack pressed against your mouth.", "You kiss the anus pressing down against your mouth.", "You deliver a series of kisses on the asshole resting on your mouth.", "You repeatedly kiss the ass crack that is pressing on your face." )>> <</widget>> <<widget "actionskissback">> <<personselect $mouthtarget>> <<if $mouthstate is "kissentrance">> You gently brush your lips against <<hers>>. <<if $player.virginity.kiss is true>> <<set $speechkissvirgin to 1>> <</if>> <<if $NPCList[$mouthtarget].mouth is "kissentrance">> <<if $npcrow.includes($mouthtarget)>> <<takeKissVirginityNamed `$npc[$npcrow.indexOf($mouthtarget)]` true>> <<else>> <<takeKissVirginity $NPCList[$mouthtarget]>> <</if>> <</if>> <<elseif $mouthstate is "kissimminent">> <<if $arousal lte $arousalmax / 5>> You kiss <<him>> back, softly. <<elseif $arousal lte ($arousalmax / 5) * 4>> You kiss <<him>> back, parting <<his>> lips with your own. <<else>> You kiss <<him>> back, parting <<his>> lips with your tongue. <</if>> <<if $NPCList[$mouthtarget].type is "plant">> <span class="pink">Sweet nectar drips from <<his>> tongue and fills your mouth.</span> <<nectarfed 20>> <</if>> <<elseif $mouthstate is "kiss">> You kiss <<him>> back, caressing <<his>> tongue with your own. <<if $NPCList[$mouthtarget].type is "plant">> <span class="pink">Sweet nectar drips from <<his>> tongue and fills your mouth.</span> <<nectarfed 20>> <</if>> <</if>> <</widget>> <<widget "actionshandbite">> <<if $transformationParts.traits.fangs isnot "disabled">> <<print either( "Your fangs tear into their hand.", "Your fangs dig deep into their hand.", "You tear at the hand with your fangs.", "You sink your fangs into the hand.", "You puncture the hand with your fangs.", )>> <<else>> <<print either( "You bite the hand gagging you.", "You gnaw at the hand gagging you.", "You sink your teeth into their hand.", "You chomp at their hand.", "You crunch their hand with your teeth.", )>> <</if>> <</widget>> <<widget "actionscheekrub">> <<if $enemytype is "beast">> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> You <<bottomtext>> rub the penis between your cheeks as the <<beasttype>> pounds furiously. <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> You <<bottomtext>> rub the penis between your cheeks as the <<beasttype>> humps back excitedly. <<else>> You <<bottomtext>> rub the penis between your cheeks. <</if>> <<else>> <<set _penis to npcHasStrapon($anustarget) ? "strap-on" : "penis">> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> You <<bottomtext>> rub the _penis between your cheeks as <<theowner>> thrusts against you. <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> You <<bottomtext>> rub the _penis between your cheeks as <<theowner>> thrusts against you. <<else>> You <<bottomtext>> rub the _penis between your cheeks. <</if>> <</if>> <</widget>> <<widget "actionsthighrub">> <<if $enemytype is "beast">> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> You <<thightext>> rub the penis between your thighs as the <<beasttype>> pounds furiously. You jerk in shock whenever it incidentally rubs against your <<genitals>>. <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> You <<thightext>> rub the penis between your thighs as the <<beasttype>> humps back excitedly. You jerk in shock whenever it incidentally rubs against your <<genitals>>. <<else>> You <<thightext>> rub the penis between your thighs. You jerk in shock whenever it incidentally rubs against your <<genitals>>. <</if>> <<else>> <<set _penis to npcHasStrapon($thightarget) ? "strap-on" : "penis">> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> You <<thightext>> rub the _penis between your thighs as <<theowner>> thrusts against you. You jerk in shock whenever it incidentally rubs against your <<genitals>>. <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> You <<thightext>> rub the _penis between your thighs as <<theowner>> thrusts against you. You jerk in shock whenever it incidentally rubs against your <<genitals>>. <<else>> You <<thightext>> rub the _penis between your thighs. You jerk in shock whenever it incidentally rubs against your <<genitals>>. <</if>> <</if>> <</widget>> <<widget "actionspenistip">> You <<vaginaltext>> kiss the tip of <<their _args[0]>> $NPCList[_n].penisdesc with your <<pussy>>. <</widget>> <<widget "actionspenisdoubletip">> You <<vaginaltext>> kiss the tip of <<their>> phalluses with your <<pussy>>. <</widget>> <<widget "actionspenisrub">> You <<vaginaltext>> rub back against the <<= npcHasStrapon($vaginatarget) ? "strap-on" : "penis">> probing your <<pussy>>. <</widget>> <<widget "actionstribtease">>/*Unused*/ You <<vaginaltext>> tease the pussy with your own. <</widget>> <<widget "actionspenisride">><<silently>> <<pussy>> <<set _pussy to _text_output>> <<set _otheraction to "">> <<if $enemytype is "beast">> <<beasttype>> <<set _beasttype to _text_output>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<set _otheraction to "The _beasttype savagely hammers in and out of your _pussy.">> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<set _otheraction to "The _beasttype relentlessly pounds your _pussy.">> <<else>> <<set _otheraction to "The _beasttype rhythmically fucks your _pussy.">> <</if>> <<else>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<set _otheraction to "Your _pussy is ruthlessly fucked.">> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<set _otheraction to "Your _pussy is relentlessly pounded.">> <<else>> <<set _otheraction to "Your _pussy yields to the repeated insertions.">> <</if>> <</if>> <<vaginaltext>> <<set _vaginaltext to _text_output>> <<set _youraction to "">> <<set _islewd to ($enemytype is "man" ? $promiscuity : $deviancy) gte 55>> <<set _isverylewd to ($enemytype is "man" ? $promiscuity : $deviancy) gte 75>> <<if $consensual is 0 or currentSkillValue("vaginalskill") lt 600 and not _islewd>> <<if $arousal gte ($arousalmax / 5) * 4>> <<set _youraction to "Driven by instinct, you _vaginaltext push back as you approach your peak.">> <<elseif $arousal gte ($arousalmax / 5) * 2>> <<set _youraction to "You _vaginaltext push back against the movements.">> <<else>> <<if $consensual is 0>> <<set _youraction to "You _vaginaltext push back, trying to reduce your discomfort.">> <<else>> <<set _youraction to "You _vaginaltext push back, trying to enjoy it.">> <</if>> <</if>> <<elseif currentSkillValue("vaginalskill") lt 800 or not _isverylewd>> <<if $arousal gte ($arousalmax / 5) * 4>> <<set _enjoying to either("enjoying", "savouring", "delighting in", "relishing", "revelling in")>> <<set _youraction to "Driven by instinct, you _vaginaltext rock your pelvis back and forth, _enjoying every moment as you approach your peak.">> <<elseif $arousal gte ($arousalmax / 5) * 2>> <<set _youraction to "You _vaginaltext hump in sync with the movement.">> <<else>> <<set _youraction to "You _vaginaltext hump back against the movement.">> <</if>> <<else>> <<set _penis to "penis">> <<if $NPCList[$vaginatarget].penis is "vagina" and $NPCList[$vaginatarget].location.genitals is "genitals">> <<set _penis to $NPCList[$vaginatarget].penisdesc>> <</if>> <<if $arousal gte ($arousalmax / 5) * 4>> <<set _eagerclimax to either("You're eager to climax", "You look forward to climaxing", "You yearn to climax", "You crave climaxing", "You want to climax")>> <<set _youraction to "Lust taking over, you _vaginaltext rock your pelvis back and forth and squeeze the penis hard as you approach your peak. _eagerclimax with a _penis inside you.">> <<elseif $arousal gte ($arousalmax / 5) * 2>> <<set _youraction to "You _vaginaltext rock your pelvis back and forth, while also squeezing the _penis each time it slides into you.">> <<else>> <<set _eagerfor to either("eager for", "hungry for", "yearning", "craving", "keen on", "hungering for")>> <<set _youraction to "You _vaginaltext hump back in rhythm, _eagerfor the pleasure you know is coming.">> <</if>> <</if>> <</silently>>_otheraction _youraction<</widget>> <<widget "actionspenisedging">><<silently>> <<if $vaginastate is "imminent">> <<set _otheraction to "">> <<if $arousal gte ($arousalmax / 5) * 4>> <<set _youraction to "Driven partly by instinct, you <<vaginaltext>> rub your <<pussy>> against their penis to control their arousal as you approach your peak.">> <<elseif $arousal gte ($arousalmax / 5) * 2>> <<set _youraction to "You <<vaginaltext>> rub your <<pussy>> against their penis to control their arousal.">> <<else>> <<set _youraction to "You <<vaginaltext>> rub your <<pussy>> against their penis to control their arousal, trying to reduce your discomfort.">> <</if>> <<else>> <<pussy>> <<set _pussy to _text_output>> <<set _otheraction to "">> <<if $enemytype is "beast">> <<beasttype>> <<set _beasttype to _text_output>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<set _otheraction to "The _beasttype savagely hammers in and out of your _pussy.">> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<set _otheraction to "The _beasttype relentlessly pounds your _pussy.">> <<else>> <<set _otheraction to "The _beasttype rhythmically fucks your _pussy.">> <</if>> <<else>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<set _otheraction to "Your _pussy is ruthlessly fucked.">> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<set _otheraction to "Your _pussy is relentlessly pounded.">> <<else>> <<set _otheraction to "Your _pussy yields to the repeated insertions.">> <</if>> <</if>> <<if $arousal gte ($arousalmax / 5) * 4>> <<set _youraction to "Driven partly by instinct, you <<vaginaltext>> move your <<pussy>> to control their arousal as you approach your peak.">> <<elseif $arousal gte ($arousalmax / 5) * 2>> <<set _youraction to "You <<vaginaltext>> move your <<pussy>> to control their arousal.">> <<else>> <<set _youraction to "You <<vaginaltext>> move your <<pussy>> to control their arousal, trying to reduce your discomfort.">> <</if>> <</if>> <</silently>>_otheraction _youraction<</widget>> <<widget "actionspenistake">> <<if $enemytype is "beast">> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<if $arousal gte ($arousalmax / 5) * 4>> The <<beasttype>> savagely hammers in and out of your <<pussy>>. <<elseif $arousal gte ($arousalmax / 5) * 2>> The <<beasttype>> savagely hammers in and out of your <<pussy>>. <<else>> The <<beasttype>> savagely hammers in and out of your <<pussy>>. <</if>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<if $arousal gte ($arousalmax / 5) * 4>> The <<beasttype>> relentlessly pounds your <<pussy>>. <<elseif $arousal gte ($arousalmax / 5) * 2>> The <<beasttype>> relentlessly pounds your <<pussy>>. <<else>> The <<beasttype>> relentlessly pounds your <<pussy>>. <</if>> <<else>> <<if $arousal gte ($arousalmax / 5) * 4>> The <<beasttype>> rhythmically fucks your <<pussy>>. <<elseif $arousal gte ($arousalmax / 5) * 2>> The <<beasttype>> rhythmically fucks your <<pussy>>. <<else>> The <<beasttype>> rhythmically fucks your <<pussy>>. <</if>> <</if>> <<else>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<if $arousal gte ($arousalmax / 5) * 4>> Your <<pussy>> is ruthlessly fucked. <<elseif $arousal gte ($arousalmax / 5) * 2>> Your <<pussy>> is ruthlessly fucked. <<else>> Your <<pussy>> is ruthlessly fucked. <</if>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<if $arousal gte ($arousalmax / 5) * 4>> Your <<pussy>> is relentlessly pounded. <<elseif $arousal gte ($arousalmax / 5) * 2>> Your <<pussy>> is relentlessly pounded. <<else>> Your <<pussy>> is relentlessly pounded. <</if>> <<else>> <<if $arousal gte ($arousalmax / 5) * 4>> Your <<pussy>> yields to the repeated insertions. <<elseif $arousal gte ($arousalmax / 5) * 2>> Your <<pussy>> yields to the repeated insertions. <<else>> Your <<pussy>> yields to the repeated insertions. <</if>> <</if>> <</if>> <</widget>> <<widget "actionspenisdoubleride">> <!-- double vaginal --> <<silently>><<pussy>><<set _pussy to _text_output>><</silently>> <<set _otheraction to "">> <<set _npcA to (_n is $vaginatarget ? $vaginatarget : $vaginadoubletarget)>> <<set _npcB to (_n is $vaginatarget ? $vaginadoubletarget : $vaginatarget)>> /* State 1 is out of sync, state 2 is in sync */ <<set _dvp to ($NPCList[_npcB].penis isnot "vaginadouble" or $NPCList[_npcA].penis isnot "vaginadouble" ? 1 : 2)>> <<if _dvp is 2>> <<if $enemytype is "beast">> <!-- future proofing for beasts, text has not been updated --> <<beasttype>> <<set _beasttype to _text_output>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<set _otheraction to "The _beasttype savagely hammers in and out of your _pussy.">> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<set _otheraction to "The _beasttype relentlessly pounds your _pussy.">> <<else>> <<set _otheraction to "The _beasttype rhythmically fucks your _pussy.">> <</if>> <<else>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<set _otheraction to "Your _pussy is ruthlessly fucked by both cocks.">> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<set _otheraction to "Your _pussy is relentlessly pounded by both cocks.">> <<else>> <<set _otheraction to "Your _pussy yields to the repeated insertions by both cocks.">> <</if>> <</if>> <<silently>><<vaginaltext>><<set _vaginaltext to _text_output>><</silently>> <<set _youraction to "">> <<set _islewd to ($enemytype is "man" ? $promiscuity : $deviancy) gte 55>> <<set _isverylewd to ($enemytype is "man" ? $promiscuity : $deviancy) gte 75>> <<if $consensual is 0 or currentSkillValue("vaginalskill") lt 600 or not _islewd>> <<if $arousal gte ($arousalmax / 5) * 4>> <<set _youraction to "Driven by instinct, you _vaginaltext push back against their cocks as you approach your peak.">> <<elseif $arousal gte ($arousalmax / 5) * 2>> <<set _youraction to "You _vaginaltext push back against the movements of both cocks.">> <<else>> <<if $consensual is 0>> <<set _youraction to "You _vaginaltext push back against both cocks, trying to reduce your discomfort.">> <<else>> <<set _youraction to "You _vaginaltext push back against both cocks, trying to enjoy it.">> <</if>> <</if>> <<elseif currentSkillValue("vaginalskill") lt 800 or not _isverylewd>> <<if $arousal gte ($arousalmax / 5) * 4>> <<set _enjoying to either("enjoying", "savouring", "delighting in", "relishing", "revelling in")>> <<set _youraction to "Driven by instinct, you _vaginaltext rock your pelvis back and forth against both cocks, _enjoying every moment as you approach your peak.">> <<elseif $arousal gte ($arousalmax / 5) * 2>> <<set _youraction to "You _vaginaltext hump both cocks in sync with the movements.">> <<else>> <<set _youraction to "You _vaginaltext hump both cocks back against the movements.">> <</if>> <<else>> <<set _penis to "penis">> <<if $NPCList[$vaginatarget].penis is "vagina" and $NPCList[$vaginatarget].location.genitals is "genitals">> <<set _penis to $NPCList[$vaginatarget].penisdesc>> <</if>> <<set _penisB to "penis">> <<if $NPCList[$vaginadoubletarget].penis is "vagina" and $NPCList[$vaginadoubletarget].location.genitals is "genitals">> <<set _penisB to $NPCList[$vaginatarget].penisdesc>> <</if>> <<if $arousal gte ($arousalmax / 5) * 4>> <<set _eagerclimax to either("You're eager to climax", "You look forward to climaxing", "You yearn to climax", "You crave climaxing", "You want to climax")>> <<set _youraction to "Lust taking over, you _vaginaltext rock your pelvis back and forth and squeeze the penises hard as you approach your peak. _eagerclimax with two cocks inside you.">> <<elseif $arousal gte ($arousalmax / 5) * 2>> <<set _youraction to "You _vaginaltext rock your pelvis back and forth, while also squeezing <<combatperson $vaginatarget>>'s _penis and <<combatperson $vaginadoubletarget>>'s _penisB each time they slide into you.">> <<else>> <<set _eagerfor to either("eager for", "hungry for", "yearning", "craving", "keen on", "hungering for")>> <<set _youraction to "You _vaginaltext hump back in rhythm, _eagerfor the pleasure you know is coming.">> <</if>> <</if>> _otheraction _youraction <<else>> <<actionspenisride>> <</if>> <</widget>> <<widget "actionspenisdoubleedging">> <!-- double vaginal --> <<set _dvp to 1>> <<set _npcA to $vaginatarget>> <<set _npcB to $vaginadoubletarget>> /* State 1 is out of sync, state 2 is in sync */ <<set _dvp to ($NPCList[_npcB].penis isnot "vaginadouble" or $NPCList[_npcA].penis isnot "vaginadouble" ? 1 : 2)>> <<if _dvp is 2>> <<if $vaginastate is "doubleimminent">> <<set _otheraction to "">> <<if $arousal gte ($arousalmax / 5) * 4>> <<set _youraction to "Driven partly by instinct, you <<vaginaltext>> rub your ass against their penises to control their arousal as you approach your peak.">> <<elseif $arousal gte ($arousalmax / 5) * 2>> <<set _youraction to "You <<vaginaltext>> rub your <<bottom>> against their penises to control their arousal.">> <<else>> <<set _youraction to "You <<vaginaltext>> rub your <<bottom>> against their penises to control their arousal, trying to reduce your discomfort.">> <</if>> <<else>> <<silently>><<pussy>><<set _pussy to _text_output>><</silently>> <<set _otheraction to "">> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<set _otheraction to "Your _pussy is ruthlessly fucked by both cocks.">> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<set _otheraction to "Your _pussy is relentlessly pounded by both cocks.">> <<else>> <<set _otheraction to "Your _pussy yields to the repeated insertions by both cocks.">> <</if>> <<if $arousal gte ($arousalmax / 5) * 4>> <<set _youraction to "Driven partly by instinct, you <<vaginaltext>> move your <<pussy>> to control their arousal as you approach your peak.">> <<elseif $arousal gte ($arousalmax / 5) * 2>> <<set _youraction to "You <<vaginaltext>> move your <<pussy>> to control their arousal.">> <<else>> <<set _youraction to "You <<vaginaltext>> move your <<pussy>> to control their arousal, trying to reduce your discomfort.">> <</if>> <</if>> _otheraction _youraction <<else>> <<actionspenisedging>> <</if>> <</widget>> <<widget "actionspenisdoubletake">> <!-- double vaginal --> <<set _dvp to "f">> <<set _npcA to (_n is $vaginatarget ? $vaginatarget : $vaginadoubletarget)>> <<set _npcB to (_n is $vaginatarget ? $vaginadoubletarget : $vaginatarget)>> /* State 1 is out of sync, state 2 is in sync */ <<set _dvp to ($NPCList[_npcA].penis isnot "vaginadouble" and $NPCList[_npcB].penis isnot "vaginadouble" ? 1 : 2)>> <<if $enemytype is "beast">> <!-- future proofing for beasts, text has not been updated --> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<if $arousal gte ($arousalmax / 5) * 4>> The <<beasttype>> savagely hammers in and out of your <<pussy>>. <<elseif $arousal gte ($arousalmax / 5) * 2>> The <<beasttype>> savagely hammers in and out of your <<pussy>>. <<else>> The <<beasttype>> savagely hammers in and out of your <<pussy>>. <</if>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<if $arousal gte ($arousalmax / 5) * 4>> The <<beasttype>> relentlessly pounds your <<pussy>>. <<elseif $arousal gte ($arousalmax / 5) * 2>> The <<beasttype>> relentlessly pounds your <<pussy>>. <<else>> The <<beasttype>> relentlessly pounds your <<pussy>>. <</if>> <<else>> <<if $arousal gte ($arousalmax / 5) * 4>> The <<beasttype>> rhythmically fucks your <<pussy>>. <<elseif $arousal gte ($arousalmax / 5) * 2>> The <<beasttype>> rhythmically fucks your <<pussy>>. <<else>> The <<beasttype>> rhythmically fucks your <<pussy>>. <</if>> <</if>> <<else>> <<if _dvp is 2>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<if $arousal gte ($arousalmax / 5) * 4>> Your <<pussy>> is ruthlessly fucked by both cocks. <<elseif $arousal gte ($arousalmax / 5) * 2>> Your <<pussy>> is ruthlessly fucked by both cocks. <<else>> Your <<pussy>> is ruthlessly fucked by both cocks. <</if>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<if $arousal gte ($arousalmax / 5) * 4>> Your <<pussy>> is relentlessly pounded by both cocks. <<elseif $arousal gte ($arousalmax / 5) * 2>> Your <<pussy>> is relentlessly pounded by both cocks. <<else>> Your <<pussy>> is relentlessly pounded by both cocks. <</if>> <<else>> <<if $arousal gte ($arousalmax / 5) * 4>> Your <<pussy>> yields to the repeated insertions by both cocks. <<elseif $arousal gte ($arousalmax / 5) * 2>> Your <<pussy>> yields to the repeated insertions by both cocks. <<else>> Your <<pussy>> yields to the repeated insertions by both cocks. <</if>> <</if>> <<else>> <<actionspenistake>> <</if>> <</if>> <</widget>> <<widget "actionstribtake">> <<if $enemytype is "beast">> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<if $arousal gte ($arousalmax / 5) * 4>> The <<beasttype>> savagely rubs against your <<pussy>>. <<elseif $arousal gte ($arousalmax / 5) * 2>> The <<beasttype>> savagely rubs against your <<pussy>>. <<else>> The <<beasttype>> savagely rubs against your <<pussy>>. <</if>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<if $arousal gte ($arousalmax / 5) * 4>> The <<beasttype>> relentlessly thrusts against your <<pussy>>. <<elseif $arousal gte ($arousalmax / 5) * 2>> The <<beasttype>> relentlessly thrusts against your <<pussy>>. <<else>> The <<beasttype>> relentlessly thrusts against your <<pussy>>. <</if>> <<else>> <<if $arousal gte ($arousalmax / 5) * 4>> The <<beasttype>> rhythmically rubs against your <<pussy>>. <<elseif $arousal gte ($arousalmax / 5) * 2>> The <<beasttype>> rhythmically rubs against your <<pussy>>. <<else>> The <<beasttype>> rhythmically rubs against your <<pussy>>. <</if>> <</if>> <<else>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<if $arousal gte ($arousalmax / 5) * 4>> Your <<pussy>> is ruthlessly rubbed. <<elseif $arousal gte ($arousalmax / 5) * 2>> Your <<pussy>> is ruthlessly rubbed. <<else>> Your <<pussy>> is ruthlessly rubbed. <</if>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<if $arousal gte ($arousalmax / 5) * 4>> Your <<pussy>> is relentlessly rubbed. <<elseif $arousal gte ($arousalmax / 5) * 2>> Your <<pussy>> is relentlessly rubbed. <<else>> Your <<pussy>> is relentlessly rubbed. <</if>> <<else>> <<if $arousal gte ($arousalmax / 5) * 4>> Your <<pussy>> is squished and pressed by repeated pressure. <<elseif $arousal gte ($arousalmax / 5) * 2>> Your <<pussy>> is squished and pressed by repeated pressure. <<else>> Your <<pussy>> is squished and pressed by repeated pressure. <</if>> <</if>> <</if>> <</widget>> <<widget "actionstribcooperate">> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<if $arousal gte ($arousalmax / 5) * 4>> Driven by instinct, you <<vaginaltext>> push back as you approach your peak. <<elseif $arousal gte ($arousalmax / 5) * 2>> You <<vaginaltext>> thrust into the wet pussy pressed against yours. <<else>> You <<vaginaltext>> hump the wet pussy pressed against yours. <</if>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<if $arousal gte ($arousalmax / 5) * 4>> Driven by instinct, you <<vaginaltext>> push back as you approach your peak. <<elseif $arousal gte ($arousalmax / 5) * 2>> You <<vaginaltext>> thrust into the moist pussy pressed against yours. <<else>> You <<vaginaltext>> hump the moist pussy pressed against yours. <</if>> <<else>> <<if $arousal gte ($arousalmax / 5) * 4>> Your body shakes as you <<vaginaltext>> rub against the pussy. <<elseif $arousal gte ($arousalmax / 5) * 2>> You <<vaginaltext>> thrust against the pussy. <<else>> You <<vaginaltext>> press back against the pussy. <</if>> <</if>> <</widget>> <<widget "actionstribedge">> <<if $arousal gte ($arousalmax / 5) * 4>> Driven partly by instinct, you <<vaginaltext>> <<elseif $arousal gte ($arousalmax / 5) * 2>> You steady your shaky legs and <<vaginaltext>> <<else>> You <<vaginaltext>> <</if>> <<if $vaginastate is "othervaginaimminent">> <<print either( "thrust your <<pussy>> just shy of <<hers>>,", "pull back in time with <<his>> thrusts,", "clench your thighs over <<his>> pussy," )>> <<else>> <<print either( "weave your <<pussy>> away at the apex of each thrust,", "graze <<his>> pussy with yours,", "press against <<his>> clit," )>> <</if>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<print either( "holding <<him>> on the brink of an orgasm.", "waving relief just out of <<his>> reach.", "torturing <<his>> yearning body." )>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<print either( "slowly coaxing <<him>> to climax.", "letting <<his>> arousal swell.", "keeping <<him>> on edge." )>> <<else>> <<print either( "controlling <<his>> arousal.", "curbing <<his>> arousal.", "stirring pleasure." )>> <</if>> <</widget>> <<widget "actionsfencingtake">> <<if $enemytype is "beast">> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<if $arousal gte ($arousalmax / 5) * 4>> The <<beasttype>> savagely rubs against your <<penis>>. <<elseif $arousal gte ($arousalmax / 5) * 2>> The <<beasttype>> savagely rubs against your <<penis>>. <<else>> The <<beasttype>> savagely rubs against your <<penis>>. <</if>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<if $arousal gte ($arousalmax / 5) * 4>> The <<beasttype>> relentlessly thrusts against your <<penis>>. <<elseif $arousal gte ($arousalmax / 5) * 2>> The <<beasttype>> relentlessly thrusts against your <<penis>>. <<else>> The <<beasttype>> relentlessly thrusts against your <<penis>>. <</if>> <<else>> <<if $arousal gte ($arousalmax / 5) * 4>> The <<beasttype>> rhythmically rubs against your <<penis>>. <<elseif $arousal gte ($arousalmax / 5) * 2>> The <<beasttype>> rhythmically rubs against your <<penis>>. <<else>> The <<beasttype>> rhythmically rubs against your <<penis>>. <</if>> <</if>> <<else>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<if $arousal gte ($arousalmax / 5) * 4>> Your <<penis>> is ruthlessly rubbed. <<elseif $arousal gte ($arousalmax / 5) * 2>> Your <<penis>> is ruthlessly rubbed. <<else>> Your <<penis>> is ruthlessly rubbed. <</if>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<if $arousal gte ($arousalmax / 5) * 4>> Your <<penis>> is relentlessly rubbed. <<elseif $arousal gte ($arousalmax / 5) * 2>> Your <<penis>> is relentlessly rubbed. <<else>> Your <<penis>> is relentlessly rubbed. <</if>> <<else>> <<if $arousal gte ($arousalmax / 5) * 4>> Your <<penis>> is squished and pressed by repeated pressure. <<elseif $arousal gte ($arousalmax / 5) * 2>> Your <<penis>> is squished and pressed by repeated pressure. <<else>> Your <<penis>> is squished and pressed by repeated pressure. <</if>> <</if>> <</if>> <</widget>> <<widget "actionsfencingcooperate">> <<set _penis to npcHasStrapon($penistarget) ? "strap-on" : "penis">> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<if $arousal gte ($arousalmax / 5) * 4>> Driven by instinct, you <<peniletext>> rub back against the _penis as you approach your peak. <<elseif $arousal gte ($arousalmax / 5) * 2>> You <<peniletext>> thrust against the slick _penis pressed against your <<penis>>. <<else>> You <<peniletext>> hump the slick _penis pressed against your <<penis>>. <</if>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<if $arousal gte ($arousalmax / 5) * 4>> Driven by instinct, you <<peniletext>> rub your <<penises>> together as you approach your peak. <<elseif $arousal gte ($arousalmax / 5) * 2>> You <<peniletext>> thrust against the dripping _penis pressed against your <<penis>>. <<else>> You <<peniletext>> hump the dripping _penis pressed against your <<penis>>. <</if>> <<else>> <<if $arousal gte ($arousalmax / 5) * 4>> Your body shakes as you <<peniletext>> rub against the _penis. <<elseif $arousal gte ($arousalmax / 5) * 2>> You <<peniletext>> thrust against the _penis. <<else>> You <<peniletext>> press back against the _penis. <</if>> <</if>> <<set $penisstate to "otherpenis">> <</widget>> <<widget "actionsclitrub">> You <<peniletext>> frot your <<penisSimple>> against <<their _args[0]>> clit. <</widget>> <<widget "actionspussyrub">> You <<peniletext>> rub your <<penisSimple>> against <<their _args[0]>> pussy. <</widget>> <<widget "actionspussytease">> You <<peniletext>> rub your <<penisSimple>> against <<their _args[0]>> labia. <</widget>> <<widget "actionspussythrust">><<silently>> <<hisselect _args[0]>><<set _their to _text_output>> <<his>><<set _her to _text_output>> <<penis>><<set _penis to _text_output>> <<set _otheraction to "">> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<set _otheraction to "Your _penis is ruthlessly fucked by _their pussy.">> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<set _otheraction to "Your _penis is hungrily devoured by _their pussy.">> <<else>> <<set _otheraction to "Your _penis is rhythmically swallowed and regurgitated by _their pussy.">> <</if>> <<peniletext>><<set _skillfully to _text_output>> <<set _youraction to "">> <<set _islewd to ($enemytype is "man" ? $promiscuity : $deviancy) gte 55>> <<set _isverylewd to ($enemytype is "man" ? $promiscuity : $deviancy) gte 75>> <<if $consensual is 0 or currentSkillValue("penileskill") lt 600 or not _islewd>> <<if $arousal gte ($arousalmax / 5) * 4>> <<set _youraction to "Driven by instinct, you _skillfully push back as you approach your peak.">> <<elseif $arousal gte ($arousalmax / 5) * 2>> <<set _youraction to "You _skillfully push back against _her movements.">> <<else>> <<set _youraction to "You _skillfully push back, trying to reduce your discomfort.">> <</if>> <<elseif currentSkillValue("penileskill") lt 800 or not _isverylewd>> <<if $arousal gte ($arousalmax / 5) * 4>> <<set _youraction to "Driven by instinct, you _skillfully thrust your _penis deep and hard into _their pussy, as you approach your peak.">> <<elseif $arousal gte ($arousalmax / 5) * 2>> <<set _youraction to "You _skillfully push back in sync with _her movements.">> <<else>> <<set _youraction to "You _skillfully hump back in sync with _her movements.">> <</if>> <<else>> <<if $arousal gte ($arousalmax / 5) * 4>> <<if playerPenisSize() gte 2>> <<set _hammering to either("hammering deep into", "pounding", "bottoming out in", "battering", "driving deep and hard into", "thrusting deep into", "slamming the bottom of")>> <<set _youraction to "Driven by instinct, you _skillfully quicken the pace, your _penis _hammering _their pussy as you approach your peak.">> <<else>> <<set _hammering to either("hammering hard into", "pounding", "battering", "pushed fully into", "thrusting fast and hard into")>> <<set _youraction to "Driven by instinct, you _skillfully quicken the pace, your _penis _hammering _their pussy as you approach your peak.">> <</if>> <<elseif $arousal gte ($arousalmax / 5) * 2>> <<set _youraction to "You _skillfully thrust your _penis deep into _their pussy, in sync with _her movements.">> <<else>> <<set _youraction to "You _skillfully slide your _penis in and out of _their pussy, in sync with _her movements.">> <</if>> <</if>> <</silently>>_otheraction _youraction<</widget>> <<widget "actionspussyedging">><<silently>> <<if $penisstate is "imminent">> <<set _otheraction to "">> <<if $arousal gte ($arousalmax / 5) * 4>> <<set _youraction to "Driven partly by instinct, you <<peniletext>> rub your <<penis>> against their pussy to control their arousal as you approach your peak.">> <<elseif $arousal gte ($arousalmax / 5) * 2>> <<set _youraction to "You <<peniletext>> rub your <<penis>> against their pussy to control their arousal.">> <<else>> <<set _youraction to "You <<peniletext>> rub your <<penis>> against their pussy to control their arousal, trying to reduce your discomfort.">> <</if>> <<else>> <<hisselect _args[0]>><<set _their to _text_output>> <<his>><<set _her to _text_output>> <<penis>><<set _penis to _text_output>> <<set _otheraction to "">> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<set _otheraction to "Your _penis is ruthlessly fucked by _their pussy.">> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<set _otheraction to "Your _penis is hungrily devoured by _their pussy.">> <<else>> <<set _otheraction to "Your _penis is rhythmically swallowed and regurgitated by _their pussy.">> <</if>> <<if $arousal gte ($arousalmax / 5) * 4>> <<set _youraction to "Driven partly by instinct, you <<peniletext>> move your <<penis>> to control _her arousal as you approach your peak.">> <<elseif $arousal gte ($arousalmax / 5) * 2>> <<set _youraction to "You <<peniletext>> move your <<penis>> to control _her arousal.">> <<else>> <<set _youraction to "You <<peniletext>> move your <<penis>> to control _her arousal, trying to reduce your discomfort.">> <</if>> <</if>> <</silently>>_otheraction _youraction<</widget>> <<widget "actionspussytake">> <<set $_pussyDesc to (_args[0] is "tentacles" ? $tentaclePenis : "pussy")>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<if $arousal gte ($arousalmax / 5) * 4>> Your <<penis>> is ruthlessly fucked by <<their _args[0]>> $_pussyDesc. <<elseif $arousal gte ($arousalmax / 5) * 2>> Your <<penis>> is ruthlessly fucked by <<their _args[0]>> $_pussyDesc. <<else>> Your <<penis>> is ruthlessly fucked by <<their _args[0]>> $_pussyDesc. <</if>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<if $arousal gte ($arousalmax / 5) * 4>> Your <<penis>> is hungrily devoured by <<their _args[0]>> $_pussyDesc. <<elseif $arousal gte ($arousalmax / 5) * 2>> Your <<penis>> is hungrily devoured by <<their _args[0]>> $_pussyDesc. <<else>> Your <<penis>> is hungrily devoured by <<their _args[0]>> $_pussyDesc. <</if>> <<else>> <<if $arousal gte ($arousalmax / 5) * 4>> Your <<penis>> is rhythmically swallowed and regurgitated by <<their _args[0]>> $_pussyDesc. <<elseif $arousal gte ($arousalmax / 5) * 2>> Your <<penis>> is rhythmically swallowed and regurgitated by <<their _args[0]>> $_pussyDesc. <<else>> Your <<penis>> is rhythmically swallowed and regurgitated by <<their _args[0]>> $_pussyDesc. <</if>> <</if>> <</widget>> <<widget "actionsotheranusrub">> You <<peniletext>> frot your <<penis>> against <<their _args[0]>> ass. <</widget>> <<widget "actionsotheranustease">> You <<peniletext>> tease <<their _args[0]>> anus with your <<penis>>. <</widget>> <<widget "actionsotheranusthrust">> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<if $arousal gte ($arousalmax / 5) * 4>> Your <<penis>> is ruthlessly fucked by <<their _args[0]>> ass. Driven by instinct, you <<peniletext>> push back as you approach your peak. <<elseif $arousal gte ($arousalmax / 5) * 2>> Your <<penis>> is ruthlessly fucked by <<their _args[0]>> ass. You <<peniletext>> push back against the movements. <<else>> Your <<penis>> is ruthlessly fucked by <<their _args[0]>> ass. You <<peniletext>> push back, trying to reduce your discomfort. <</if>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<if $arousal gte ($arousalmax / 5) * 4>> Your <<penis>> is hungrily devoured by <<their _args[0]>> ass. Driven by instinct, you <<peniletext>> push back as you approach your peak. <<elseif $arousal gte ($arousalmax / 5) * 2>> Your <<penis>> is hungrily devoured by <<their _args[0]>> ass. You <<peniletext>> push back against the movements. <<else>> Your <<penis>> is hungrily devoured by <<their _args[0]>> ass. You <<peniletext>> push back, trying to reduce your discomfort. <</if>> <<else>> <<if $arousal gte ($arousalmax / 5) * 4>> Your <<penis>> is rhythmically swallowed and regurgitated by <<their _args[0]>> ass. Driven by instinct, you <<peniletext>> push back as you approach your peak. <<elseif $arousal gte ($arousalmax / 5) * 2>> Your <<penis>> is rhythmically swallowed and regurgitated by <<their _args[0]>> ass. You <<peniletext>> push back against the movements. <<else>> Your <<penis>> is rhythmically swallowed and regurgitated by <<their _args[0]>> ass. You <<peniletext>> push back, trying to reduce your discomfort. <</if>> <</if>> <</widget>> <<widget "actionsotheranusedging">> <<if $penisstate is "imminent">> <<if $arousal gte ($arousalmax / 5) * 4>> Driven partly by instinct, you <<peniletext>> rub your <<penis>> against their ass to control their arousal as you approach your peak. <<elseif $arousal gte ($arousalmax / 5) * 2>> You <<peniletext>> rub your <<penis>> against their ass to control their arousal. <<else>> You <<peniletext>> rub your <<penis>> against their ass to control their arousal, trying to reduce your discomfort. <</if>> <<else>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> Your <<penis>> is ruthlessly fucked by <<their _args[0]>> ass. <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> Your <<penis>> is hungrily devoured by <<their _args[0]>> ass. <<else>> Your <<penis>> is rhythmically swallowed and regurgitated by <<their _args[0]>> ass. <</if>> <<if $arousal gte ($arousalmax / 5) * 4>> Driven partly by instinct, you <<peniletext>> move your <<penis>> to control their arousal as you approach your peak. <<elseif $arousal gte ($arousalmax / 5) * 2>> You <<peniletext>> move your <<penis>> to control their arousal. <<else>> You <<peniletext>> move your <<penis>> to control their arousal, trying to reduce your discomfort. <</if>> <</if>> <</widget>> <<widget "actionsotheranustake">> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<if $arousal gte ($arousalmax / 5) * 4>> Your <<penis>> is ruthlessly fucked by <<their _args[0]>> ass. <<elseif $arousal gte ($arousalmax / 5) * 2>> Your <<penis>> is ruthlessly fucked by <<their _args[0]>> ass. <<else>> Your <<penis>> is ruthlessly fucked by <<their _args[0]>> ass. <</if>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<if $arousal gte ($arousalmax / 5) * 4>> Your <<penis>> is hungrily devoured by <<their _args[0]>> ass. <<elseif $arousal gte ($arousalmax / 5) * 2>> Your <<penis>> is hungrily devoured by <<their _args[0]>> ass. <<else>> Your <<penis>> is hungrily devoured by <<their _args[0]>> ass. <</if>> <<else>> <<if $arousal gte ($arousalmax / 5) * 4>> Your <<penis>> is rhythmically swallowed and regurgitated by <<their _args[0]>> ass. <<elseif $arousal gte ($arousalmax / 5) * 2>> Your <<penis>> is rhythmically swallowed and regurgitated by <<their _args[0]>> ass. <<else>> Your <<penis>> is rhythmically swallowed and regurgitated by <<their _args[0]>> ass. <</if>> <</if>> <</widget>> <<widget "actionsStrokerCooperate">> <<set $_stroker to ($NPCList[$penistarget].lefthand is "penisstroker" ? $NPCList[$penistarget].lefttool : $NPCList[$penistarget].righttool)>> <<if $arousal gte ($arousalmax / 5) * 4>> Driven by instinct, you <<peniletext>> thrust into the $_stroker as you approach your peak. <<elseif $arousal gte ($arousalmax / 5) * 2>> You <<peniletext>> thrust into the $_stroker on your <<penis>>. <<else>> You <<peniletext>> hump the $_stroker on your <<penis>>. <</if>> <</widget>> <<widget "actionsStrokerRest">> <<set $_stroker to ($NPCList[$penistarget].lefthand is "penisstroker" ? $NPCList[$penistarget].lefttool : $NPCList[$penistarget].righttool)>> Your <<penis>> is fucked by the $_stroker. <</widget>> <<widget "actionsanusrub">> You <<analtext>> move your hips, rubbing your <<bottom>> against <<their _args[0]>> penis. <</widget>> <<widget "actionsanusthrust">> <<if $enemytype is "beast">> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<if $arousal gte ($arousalmax / 5) * 4>> The <<beasttype>> savagely hammers in and out of your anus. Driven by instinct, you <<analtext>> push back as you approach your peak. <<elseif $arousal gte ($arousalmax / 5) * 2>> The <<beasttype>> savagely hammers in and out of your anus. You <<analtext>> push back against its movements. <<else>> The <<beasttype>> savagely hammers in and out of your anus. You <<analtext>> move with it, trying to reduce your discomfort. <</if>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<if $arousal gte ($arousalmax / 5) * 4>> The <<beasttype>> relentlessly pounds your anus. Driven by instinct, you <<analtext>> push back as you approach your peak. <<elseif $arousal gte ($arousalmax / 5) * 2>> The <<beasttype>> relentlessly pounds your anus. You <<analtext>> push back against its movements. <<else>> The <<beasttype>> relentlessly pounds your anus. You <<analtext>> move with it, trying to reduce your discomfort. <</if>> <<else>> <<if $arousal gte ($arousalmax / 5) * 4>> The <<beasttype>> rhythmically fucks your anus. Driven by instinct, you <<analtext>> push back as you approach your peak. <<elseif $arousal gte ($arousalmax / 5) * 2>> The <<beasttype>> rhythmically fucks your anus. You <<analtext>> push back against its movements. <<else>> The <<beasttype>> rhythmically fucks your anus. You <<analtext>> move with it, trying to reduce your discomfort. <</if>> <</if>> <<else>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<if $arousal gte ($arousalmax / 5) * 4>> Your anus is ruthlessly fucked. Driven by instinct, you <<analtext>> push back as you approach your peak. <<elseif $arousal gte ($arousalmax / 5) * 2>> Your anus is ruthlessly fucked. You <<analtext>> push back against the movements. <<else>> Your anus is ruthlessly fucked. You <<analtext>> push back, trying to reduce your discomfort. <</if>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<if $arousal gte ($arousalmax / 5) * 4>> Your anus is relentlessly pounded. Driven by instinct, you <<analtext>> push back as you approach your peak. <<elseif $arousal gte ($arousalmax / 5) * 2>> Your anus is relentlessly pounded. You <<analtext>> push back against the movements. <<else>> Your anus is relentlessly pounded. You <<analtext>> push back, trying to reduce your discomfort. <</if>> <<else>> <<if $arousal gte ($arousalmax / 5) * 4>> Your anus yields to the repeated insertions. Driven by instinct, you <<analtext>> push back as you approach your peak. <<elseif $arousal gte ($arousalmax / 5) * 2>> Your anus yields to the repeated insertions. You <<analtext>> push back against the movements. <<else>> Your anus yields to the repeated insertions. You <<analtext>> push back, trying to reduce your discomfort. <</if>> <</if>> <</if>> <</widget>> <<widget "actionsanusedging">> <<if $anusstate is "imminent">> <<if $arousal gte ($arousalmax / 5) * 4>> Driven partly by instinct, you <<analtext>> rub against their penis to control their arousal as you approach your peak. <<elseif $arousal gte ($arousalmax / 5) * 2>> You <<analtext>> rub against their penis to control their arousal. <<else>> You <<analtext>> rub against their penis to control their arousal, trying to reduce your discomfort. <</if>> <<else>> <<if $enemytype is "beast">> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> The <<beasttype>> savagely hammers in and out of your anus. <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> The <<beasttype>> relentlessly pounds your anus. <<else>> The <<beasttype>> rhythmically fucks your anus. <</if>> <<else>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> Your anus is ruthlessly fucked. <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> Your anus is relentlessly pounded. <<else>> Your anus yields to the repeated insertions. <</if>> <</if>> <<if $arousal gte ($arousalmax / 5) * 4>> Driven partly by instinct, you <<analtext>> move to control their arousal as you approach your peak. <<elseif $arousal gte ($arousalmax / 5) * 2>> You <<analtext>> move to control their arousal. <<else>> You <<analtext>> move to control their arousal, trying to reduce your discomfort. <</if>> <</if>> <</widget>> <<widget "actionsanustake">> <<if $enemytype is "beast">> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<if $arousal gte ($arousalmax / 5) * 4>> The <<beasttype>> savagely hammers in and out of your anus. <<elseif $arousal gte ($arousalmax / 5) * 2>> The <<beasttype>> savagely hammers in and out of your anus. <<else>> The <<beasttype>> savagely hammers in and out of your anus. <</if>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<if $arousal gte ($arousalmax / 5) * 4>> The <<beasttype>> relentlessly pounds your anus. <<elseif $arousal gte ($arousalmax / 5) * 2>> The <<beasttype>> relentlessly pounds your anus. <<else>> The <<beasttype>> relentlessly pounds your anus. <</if>> <<else>> <<if $arousal gte ($arousalmax / 5) * 4>> The <<beasttype>> rhythmically fucks your anus. <<elseif $arousal gte ($arousalmax / 5) * 2>> The <<beasttype>> rhythmically fucks your anus. <<else>> The <<beasttype>> rhythmically fucks your anus. <</if>> <</if>> <<else>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<if $arousal gte ($arousalmax / 5) * 4>> Your anus is ruthlessly fucked. <<elseif $arousal gte ($arousalmax / 5) * 2>> Your anus is ruthlessly fucked. <<else>> Your anus is ruthlessly fucked. <</if>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<if $arousal gte ($arousalmax / 5) * 4>> Your anus is relentlessly pounded. <<elseif $arousal gte ($arousalmax / 5) * 2>> Your anus is relentlessly pounded. <<else>> Your anus is relentlessly pounded. <</if>> <<else>> <<if $arousal gte ($arousalmax / 5) * 4>> Your anus yields to the repeated insertions. <<elseif $arousal gte ($arousalmax / 5) * 2>> Your anus yields to the repeated insertions. <<else>> Your anus yields to the repeated insertions. <</if>> <</if>> <</if>> <</widget>> <<widget "actionsanusdoublethrust">> /* State 1 is out of sync, state 2 is in sync */ <<if $NPCList[$anustarget].penis is "anusdouble" and $NPCList[$anusdoubletarget].penis is "anusdouble">> <<set _dap to 2>> <<else>> <<set _dap to 1>> <</if>> <<if $enemytype is "beast">> /* Beasts are only encountered individually. This is futureproofing */ <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<if $arousal gte ($arousalmax / 5) * 4>> The <<beasttype>> savagely hammers in and out of your anus. Driven by instinct, you <<analtext>> push back as you approach your peak. <<elseif $arousal gte ($arousalmax / 5) * 2>> The <<beasttype>> savagely hammers in and out of your anus. You <<analtext>> push back against its movements. <<else>> The <<beasttype>> savagely hammers in and out of your anus. You <<analtext>> move with it, trying to reduce your discomfort. <</if>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<if $arousal gte ($arousalmax / 5) * 4>> The <<beasttype>> relentlessly pounds your anus. Driven by instinct, you <<analtext>> push back as you approach your peak. <<elseif $arousal gte ($arousalmax / 5) * 2>> The <<beasttype>> relentlessly pounds your anus. You <<analtext>> push back against its movements. <<else>> The <<beasttype>> relentlessly pounds your anus. You <<analtext>> move with it, trying to reduce your discomfort. <</if>> <<else>> <<if $arousal gte ($arousalmax / 5) * 4>> The <<beasttype>> rhythmically fucks your anus. Driven by instinct, you <<analtext>> push back as you approach your peak. <<elseif $arousal gte ($arousalmax / 5) * 2>> The <<beasttype>> rhythmically fucks your anus. You <<analtext>> push back against its movements. <<else>> The <<beasttype>> rhythmically fucks your anus. You <<analtext>> move with it, trying to reduce your discomfort. <</if>> <</if>> <<else>> <<if _dap is 2>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<if $arousal gte ($arousalmax / 5) * 4>> Your anus is ruthlessly fucked by both cocks. Driven by instinct, you <<analtext>> push back as you approach your peak. <<elseif $arousal gte ($arousalmax / 5) * 2>> Your anus is ruthlessly fucked by both cocks. You <<analtext>> push back against the movements. <<else>> Your anus is ruthlessly fucked by both cocks. You <<analtext>> push back, trying to reduce your discomfort. <</if>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<if $arousal gte ($arousalmax / 5) * 4>> Your anus is relentlessly pounded by both cocks. Driven by instinct, you <<analtext>> push back as you approach your peak. <<elseif $arousal gte ($arousalmax / 5) * 2>> Your anus is relentlessly pounded by both cocks. You <<analtext>> push back against the movements. <<else>> Your anus is relentlessly pounded by both cocks. You <<analtext>> push back, trying to reduce your discomfort. <</if>> <<else>> <<if $arousal gte ($arousalmax / 5) * 4>> Your anus yields to the repeated insertions by both cocks. Driven by instinct, you <<analtext>> push back as you approach your peak. <<elseif $arousal gte ($arousalmax / 5) * 2>> Your anus yields to the repeated insertions by both cocks. You <<analtext>> push back against the movements. <<else>> Your anus yields to the repeated insertions by both cocks. You <<analtext>> push back, trying to reduce your discomfort. <</if>> <</if>> <<else>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<if $arousal gte ($arousalmax / 5) * 4>> Your anus is ruthlessly fucked. Driven by instinct, you <<analtext>> push back as you approach your peak. <<elseif $arousal gte ($arousalmax / 5) * 2>> Your anus is ruthlessly fucked. You <<analtext>> push back against the movements. <<else>> Your anus is ruthlessly fucked. You <<analtext>> push back, trying to reduce your discomfort. <</if>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<if $arousal gte ($arousalmax / 5) * 4>> Your anus is relentlessly pounded. Driven by instinct, you <<analtext>> push back as you approach your peak. <<elseif $arousal gte ($arousalmax / 5) * 2>> Your anus is relentlessly pounded. You <<analtext>> push back against the movements. <<else>> Your anus is relentlessly pounded. You <<analtext>> push back, trying to reduce your discomfort. <</if>> <<else>> <<if $arousal gte ($arousalmax / 5) * 4>> Your anus yields to the repeated insertions. Driven by instinct, you <<analtext>> push back as you approach your peak. <<elseif $arousal gte ($arousalmax / 5) * 2>> Your anus yields to the repeated insertions. You <<analtext>> push back against the movements. <<else>> Your anus yields to the repeated insertions. You <<analtext>> push back, trying to reduce your discomfort. <</if>> <</if>> <</if>> <</if>> <</widget>> <<widget "actionsanusdoubleedging">> /* State 1 is out of sync, state 2 is in sync */ <<if $NPCList[$anustarget].penis is "anusdouble" and $NPCList[$anusdoubletarget].penis is "anusdouble">> <<set _dap to 2>> <<else>> <<set _dap to 1>> <</if>> <<if $anusaction is "doubleimminent">> <<if $arousal gte ($arousalmax / 5) * 4>> Driven partly by instinct, you <<analtext>> rub against their penises to control their arousal as you approach your peak. <<elseif $arousal gte ($arousalmax / 5) * 2>> You <<analtext>> rub against their penises to control their arousal. <<else>> You <<analtext>> rub against their penises to control their arousal, trying to reduce your discomfort. <</if>> <<else>> <<if _dap is 2>> <<if $enemytype is "beast">> /* Beasts are only encountered individually. This is futureproofing */ <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> The <<beasttype>> savagely hammers in and out of your anus. <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> The <<beasttype>> relentlessly pounds your anus. <<else>> The <<beasttype>> rhythmically fucks your anus. <</if>> <<else>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> Your anus is ruthlessly fucked by both cocks. <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> Your anus is relentlessly pounded by both cocks. <<else>> Your anus yields to the repeated insertions by both cocks. <</if>> <</if>> <<else>> <<if $enemytype is "beast">> /* Beasts are only encountered individually. This is futureproofing */ <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> The <<beasttype>> savagely hammers in and out of your anus. <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> The <<beasttype>> relentlessly pounds your anus. <<else>> The <<beasttype>> rhythmically fucks your anus. <</if>> <<else>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> Your anus is ruthlessly fucked. <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> Your anus is relentlessly pounded. <<else>> Your anus yields to the repeated insertions. <</if>> <</if>> <</if>> <<if $arousal gte ($arousalmax / 5) * 4>> Driven partly by instinct, you <<analtext>> move to control their arousal as you approach your peak. <<elseif $arousal gte ($arousalmax / 5) * 2>> You <<analtext>> move to control the arousal of both cocks. <<else>> You <<analtext>> move to control the arousal of both cocks, trying to reduce your discomfort. <</if>> <</if>> <</widget>> <<widget "actionsanusdoubletake">> /* State 1 is out of sync, state 2 is in sync */ <<if $NPCList[$anustarget].penis is "anusdouble" and $NPCList[$anusdoubletarget].penis is "anusdouble">> <<set _dap to 2>> <<else>> <<set _dap to 1>> <</if>> <<if _dap is 2>> /* Beasts are only encountered individually. This is futureproofing */ <<if $enemytype is "beast">> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<if $arousal gte ($arousalmax / 5) * 4>> The <<beasttype>> savagely hammers in and out of your anus. <<elseif $arousal gte ($arousalmax / 5) * 2>> The <<beasttype>> savagely hammers in and out of your anus. <<else>> The <<beasttype>> savagely hammers in and out of your anus. <</if>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<if $arousal gte ($arousalmax / 5) * 4>> The <<beasttype>> relentlessly pounds your anus. <<elseif $arousal gte ($arousalmax / 5) * 2>> The <<beasttype>> relentlessly pounds your anus. <<else>> The <<beasttype>> relentlessly pounds your anus. <</if>> <<else>> <<if $arousal gte ($arousalmax / 5) * 4>> The <<beasttype>> rhythmically fucks your anus. <<elseif $arousal gte ($arousalmax / 5) * 2>> The <<beasttype>> rhythmically fucks your anus. <<else>> The <<beasttype>> rhythmically fucks your anus. <</if>> <</if>> <<else>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<if $arousal gte ($arousalmax / 5) * 4>> Your anus is ruthlessly destroyed by both cocks. <<elseif $arousal gte ($arousalmax / 5) * 2>> Your anus is ruthlessly fucked by both cocks. <<else>> Your anus is ruthlessly fucked by both cocks. <</if>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<if $arousal gte ($arousalmax / 5) * 4>> Your anus is relentlessly slammed by both cocks. <<elseif $arousal gte ($arousalmax / 5) * 2>> Your anus is relentlessly pounded by both cocks. <<else>> Your anus is relentlessly pounded by both cocks. <</if>> <<else>> <<if $arousal gte ($arousalmax / 5) * 4>> Your anus yields to the repeated insertions by both cocks. <<elseif $arousal gte ($arousalmax / 5) * 2>> Your anus yields to the repeated insertions by both cocks. <<else>> Your anus yields to the repeated insertions by both cocks. <</if>> <</if>> <</if>> <<else>> <<if $enemytype is "beast">> /* Beasts are only encountered individually. This is futureproofing */ <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<if $arousal gte ($arousalmax / 5) * 4>> The <<beasttype>> savagely hammers in and out of your anus. <<elseif $arousal gte ($arousalmax / 5) * 2>> The <<beasttype>> savagely hammers in and out of your anus. <<else>> The <<beasttype>> savagely hammers in and out of your anus. <</if>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<if $arousal gte ($arousalmax / 5) * 4>> The <<beasttype>> relentlessly pounds your anus. <<elseif $arousal gte ($arousalmax / 5) * 2>> The <<beasttype>> relentlessly pounds your anus. <<else>> The <<beasttype>> relentlessly pounds your anus. <</if>> <<else>> <<if $arousal gte ($arousalmax / 5) * 4>> The <<beasttype>> rhythmically fucks your anus. <<elseif $arousal gte ($arousalmax / 5) * 2>> The <<beasttype>> rhythmically fucks your anus. <<else>> The <<beasttype>> rhythmically fucks your anus. <</if>> <</if>> <<else>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<if $arousal gte ($arousalmax / 5) * 4>> Your anus is ruthlessly fucked. <<elseif $arousal gte ($arousalmax / 5) * 2>> Your anus is ruthlessly fucked. <<else>> Your anus is ruthlessly fucked. <</if>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<if $arousal gte ($arousalmax / 5) * 4>> Your anus is relentlessly slammed. <<elseif $arousal gte ($arousalmax / 5) * 2>> Your anus is relentlessly pounded. <<else>> Your anus is relentlessly pounded. <</if>> <<else>> <<if $arousal gte ($arousalmax / 5) * 4>> Your anus yields to the repeated insertions. <<elseif $arousal gte ($arousalmax / 5) * 2>> Your anus yields to the repeated insertions. <<else>> Your anus yields to the repeated insertions. <</if>> <</if>> <</if>> <</if>> <</widget>> <<widget "actionsshaftrub">> <<if $enemytype is "beast">> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> You <<handtext>> hold <<his>> penis in your hand as <<he>> furiously humps against it. <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> You <<handtext>> hold the penis in your hand as <<he>> humps against it. <<else>> You <<handtext>> hold and rub the penis in your hand. <</if>> <<else>> <<if $consensual is 1>> <<if $arousal lte ($arousalmax / 5) * 3>> You keep <<their _args[0]>> penis held firmly in your hand as you <<handtext>> stroke and work the shaft. <<else>> You <<handtext>> hold and rub <<their _args[0]>> shaft in your hand. <</if>> <<else>> You <<handtext>> occupy <<their _args[0]>> penis with your hand, working the shaft with your fingers. <</if>> <</if>> <</widget>> <<widget "actionsvaginaescape">> <<if $enemytype is "beast">> <<if $enemyanger lte 20>> <span class="blue">You shift your pelvis, moving your <<pussy>> away from the beast's probing before it can penetrate you.</span> It doesn't give up however. <<elseif $enemyanger lte 100>> <span class="blue">You shift your pelvis, moving your <<pussy>> away from the beast's incessant probing before it can penetrate you.</span> It snarls in frustration. <<else>> <span class="blue">You shift your pelvis, moving your <<pussy>> away from the beast's savage probing before it can penetrate you.</span> It frenziedly tries to regain purchase, furious at its attempt to <<if $settings.pregnancySpeechEnabled>>breed<<else>>fuck<</if>> being impeded. <</if>> <<else>> <<if $pain lte 20>> <span class="blue">You shift your pelvis, moving your <<pussy>> away from <<their _args[0]>> penis.</span> <<elseif $pain lte 60>> <span class="blue">You shift your pelvis, moving your <<pussy>> away from <<their _args[0]>> penis.</span> <<else>> <span class="blue">You shift your pelvis in desperation, moving your <<pussy>> away from <<their _args[0]>> penis.</span> <</if>> <</if>> <</widget>> <<widget "actionsvaginadoubleescape">> <<set $_penises to "penises">> <<if npcHasStrapon($vaginatarget) and npcHasStrapon($vaginadoubletarget)>> <<set $_penises to "strap-ons">> <<elseif npcHasStrapon($vaginatarget) and !npcHasStrapon($vaginadoubletarget) or !npcHasStrapon($vaginatarget) and npcHasStrapon($vaginadoubletarget)>> <<set $_penises to "cocks">> <</if>> <<if $pain lte 20>> <span class="blue">You shift your pelvis, moving your <<pussy>> away from their $_penises.</span> <<elseif $pain lte 60>> <span class="blue">You shift your pelvis, moving your <<pussy>> away from their $_penises.</span> <<else>> <span class="blue">You shift your pelvis in desperation, moving your <<pussy>> away from their $_penises.</span> <</if>> <</widget>> <<widget "actionstribescape">> <<if $enemytype is "beast">> <<if $enemyanger lte 20>> <span class="blue">You shift your pelvis, moving your <<pussy>> away from the beast's.</span> It doesn't give up however. <<elseif $enemyanger lte 100>> <span class="blue">You shift your pelvis, moving your <<pussy>> away from the beast's.</span> It snarls in frustration. <<else>> <span class="blue">You shift your pelvis, moving your <<pussy>> away from the beast's.</span> It desperately tries to regain purchase, furious at your refusal. <</if>> <<else>> <<if $pain lte 20>> <span class="blue">You shift your pelvis, moving your <<pussy>> away.</span> <<elseif $pain lte 60>> <span class="blue">You shift your pelvis, moving your <<pussy>> away.</span> <<else>> <span class="blue">You shift your pelvis in desperation, moving your <<pussy>> away.</span> <</if>> <</if>> <</widget>> <<widget "actionsfencingescape">> <<if $enemytype is "beast">> <<if $enemyanger lte 20>> <span class="blue">You shift your pelvis, moving your <<penis>> away from the beast's.</span> It doesn't give up however. <<elseif $enemyanger lte 100>> <span class="blue">You shift your pelvis, moving your <<penis>> away from the beast's.</span> It snarls in frustration. <<else>> <span class="blue">You shift your pelvis, moving your <<penis>> away from the beast's.</span> It desperately tries to regain purchase, furious at your refusal. <</if>> <<else>> <<if $pain lte 20>> <span class="blue">You shift your pelvis, moving your <<penis>> away.</span> <<elseif $pain lte 60>> <span class="blue">You shift your pelvis, moving your <<penis>> away.</span> <<else>> <span class="blue">You shift your pelvis in desperation, moving your <<penis>> away.</span> <</if>> <</if>> <</widget>> <<widget "actionspenisescape">> <<if $pain lte 20>> <span class="blue">You shift your pelvis, moving your <<penis>> away from <<their _args[0]>> pussy.</span> <<elseif $pain lte 60>> <span class="blue">You shift your pelvis, moving your <<penis>> away from <<their _args[0]>> pussy.</span> <<else>> <span class="blue">You shift your pelvis in desperation, moving your <<penis>> away from <<their _args[0]>> pussy.</span> <</if>> <</widget>> <<widget "actionsotheranusescape">> <<if $pain lte 20>> <span class="blue">You shift your pelvis, moving your <<penis>> away from <<their _args[0]>> ass.</span> <<elseif $pain lte 60>> <span class="blue">You shift your pelvis, moving your <<penis>> away from <<their _args[0]>> ass.</span> <<else>> <span class="blue">You shift your pelvis in desperation, moving your <<penis>> away from <<their _args[0]>> ass.</span> <</if>> <</widget>> <<widget "actionsanusescape">> <<if $enemytype is "beast">> <<if $enemyanger lte 20>> <span class="blue">You shift your pelvis, moving your <<bottom>> away from the beast's probing before it can penetrate you.</span> It doesn't give up however. <<elseif $enemyanger lte 100>> <span class="blue">You shift your pelvis, moving your <<bottom>> away from the beast's incessant probing before it can penetrate you.</span> It snarls in frustration. <<else>> <span class="blue">You shift your pelvis, moving your <<bottom>> away from the beast's savage probing before it can penetrate you.</span> It frenziedly tries to regain purchase, furious at its attempt to <<if $settings.pregnancySpeechEnabled>>breed<<else>>fuck<</if>> being impeded. <</if>> <<else>> <<if $pain lte 20>> <span class="blue">You shift your pelvis, moving your <<bottom>> away from <<their _args[0]>> penis.</span> <<elseif $pain lte 60>> <span class="blue">You shift your pelvis, moving your <<bottom>> away from <<their _args[0]>> penis.</span> <<else>> <span class="blue">You shift your pelvis in desperation, moving your <<bottom>> away from <<their _args[0]>> penis.</span> <</if>> <</if>> <</widget>> <<widget "actionsanusdoubleescape">> <<set $_penises to "penises">> <<if npcHasStrapon($anustarget) and npcHasStrapon($anusdoubletarget)>> <<set $_penises to "strap-ons">> <<elseif npcHasStrapon($anustarget) and !npcHasStrapon($anusdoubletarget) or !npcHasStrapon($anustarget) and npcHasStrapon($anusdoubletarget)>> <<set $_penises to "cocks">> <</if>> <<if $pain lte 20>> <span class="blue">You shift your pelvis, moving your <<bottom>> away from <<their>> $_penises.</span> <<elseif $pain lte 60>> <span class="blue">You shift your pelvis, moving your <<bottom>> away from <<their>> $_penises.</span> <<else>> <span class="blue">You shift your pelvis in desperation, moving your <<bottom>> away from <<their>> $_penises.</span> <</if>> <</widget>> <<widget "actionsconfront">> <<if $angel gte 6 and random(1, 2) is 2>> <<switch random(1, 3)>> <<case 1>> "Please don't debase yourself," you say. "The angels are watching." <<case 2>> "I'll forgive you if you hurt me," you say. "But the demons won't." <<case 3>> You mumble a quiet prayer. <</switch>> <<elseif $fallenangel gte 2 and random(1, 2) is 2>> <<switch random(1, 3)>> <<case 1>> "You're going to hurt me too," you laugh. "Aren't you?" <<case 2>> "D-don't touch me," you say. "Not now. Not again." <<case 3>> "D-don't hurt me," you say. "Please don't." <</switch>> <<elseif $demon gte 6 and random(1, 2) is 2>> <<switch random(1, 3)>> <<case 1>> "Are you going to 'prey' on me?" you ask with a smirk. "Delicious." <<case 2>> "Couldn't keep your eyes off," you say. "Don't worry. I'm used to it." <<case 3>> "Try it," you say. "I'm hungry." <</switch>> <<elseif $wolfgirl gte 6 and random(1, 2) is 2>> <<switch random(1, 3)>> <<case 1>> "Come closer," you say. "I dare you." You run your tongue over your exposed fangs. <<case 2>> You growl. <<case 3>> "I might be alone," you say. "But a lone wolf is still dangerous." <</switch>> <<elseif $cat gte 6 and random(1, 2) is 2>> <<switch random(1, 3)>> <<case 1>> "I'm not helpless," you say. "Try me." You run your tongue over your exposed fangs. <<case 2>> You hiss. <<case 3>> "Come closer," you say. "I'm itching to use these claws." <</switch>> <<elseif $cow gte 6 and random(1, 2) is 2>> <<switch random(1, 3)>> <<case 1>> "I'm not helpless," you say. "Keep away, or I'll charge you down." <<case 2>> "I know I'm a prize," you say. "But you'll be sorry if you try anything." <<case 3>> "Always after my milk," you tut. "But you haven't earned it." <</switch>> <<elseif $harpy gte 6 and random(1, 2) is 2>> <<switch random(1, 3)>> <<case 1>> You screech. <<case 2>> "Don't try anything," you say. "My mate won't be happy, and I'll remember you." <<case 3>> "I'll peck you if you get too close," you say. "Don't think I won't." <</switch>> <<elseif $fox gte 6 and random(1, 2) is 2>> <<switch random(1, 3)>> <<case 1>> "Feeling lucky?" you ask. "Fuck around and find out." You run your tongue over your exposed fangs. <<case 2>> You yip threateningly. <<case 3>> "Don't touch my tail," you say. "Or any other part of me." <</switch>> <<elseif $anxiety gte 1 and $controlled is 0>> <<switch random(1, 3)>> <<case 1>> You try to speak, but terror seizes your voice. <<case 2>> You can't find the words. Your heart thunders in your chest. <<case 3>> Fear consumes your thoughts. <</switch>> <<gstress>><<stress 6>> <<else>> <<set $_rng to random(1, 5)>> <<if $speech_attitude is "meek">> <<switch $_rng>> <<case 1>> "St-stay back," you say. "I-I can defend myself." <<case 2>> "Please don't come closer," you say. <<case 3>> "Don't hurt me," you say. "Please don't." <<case 4>> "You'll get in trouble if you touch me," you say. <<case 5>> "Don't try anything," you say. "P-people know I'm here." <</switch>> <<elseif $speech_attitude is "bratty">> <<switch $_rng>> <<case 1>> "Stay the fuck away," you say. "Or I'll make you sorry." <<case 2>> "Touch me and I'll kick your ass," you say. <<case 3>> "What you looking at?" you ask. <<case 4>> "Keep walking," you say. "Or I'll break your face." <<case 5>> "Don't even think about it," you say. "I've dealt with worse scum than you." <</switch>> <<else>> <<switch $_rng>> <<case 1>> "Keep your distance," you say. "Or you'll be sorry." <<case 2>> "Don't touch me," you say. "Or you'll be in trouble." <<case 3>> "Don't try anything," you say. <<case 4>> "I know how to look after myself," you say. "Don't you dare." <<case 5>> "Keep moving," you say. "I'm not defenceless." <</switch>> <</if>> <</if>> <</widget>> <<widget "actionstaunt">> <<if $angel gte 6 and random(1, 2) is 2>> <<switch random(1, 3)>> <<case 1>> "Chase an angel and you'll find heaven," you say. <<case 2>> "Dear sinner, do you believe you can keep up with an angel?" <<case 3>> "Run to paradise with me, sinner." <</switch>> <<elseif $fallenangel gte 2 and random(1, 2) is 2>> <<switch random(1, 3)>> <<case 1>> "If you want to hurt me like everyone else," you start with a laugh, "you'll have to work for it." <<case 2>> "I won't be defiled again," you say. <<case 3>> "You won't hurt me," you say. "Not again." <</switch>> <<elseif $demon gte 6 and random(1, 2) is 2>> <<switch random(1, 3)>> <<case 1>> "Are you going to 'prey' on me?" you ask with a smirk. "Show me how much you want it." <<case 2>> "Couldn't keep your eyes off," you say. "I'm used to it. You can look, but you can't touch!" <<case 3>> "Try it," you say. "Nothing works up my appetite like a good chase." <</switch>> <<elseif $wolfgirl gte 6 and random(1, 2) is 2>> <<switch random(1, 3)>> <<case 1>> "Chase me," you say. "I dare you." You run your tongue over your exposed fangs. <<case 2>> You growl. <<case 3>> "I might be alone," you say. "But a lone wolf is faster." <</switch>> <<elseif $cat gte 6 and random(1, 2) is 2>> <<switch random(1, 3)>> <<case 1>> "I'm too fast for you," you say. "Try me." You run your tongue over your exposed fangs. <<case 2>> You hiss. <<case 3>> "Chase me," you say. "I'm itching to use these claws." <</switch>> <<elseif $cow gte 6 and random(1, 2) is 2>> <<switch random(1, 3)>> <<case 1>> "I'm not helpless," you say. "You can't run down charging cattle." <<case 2>> "I know I'm a prize," you say. "But you'll have to catch me first." <<case 3>> "Always after my milk," you tut. "But you haven't earned it." <</switch>> <<elseif $harpy gte 6 and random(1, 2) is 2>> <<switch random(1, 3)>> <<case 1>> You screech. <<case 2>> "These wings aren't just for show," you say. <<case 3>> "Think you can chase down terror's mate?" you ask. <</switch>> <<elseif $fox gte 6 and random(1, 2) is 2>> <<switch random(1, 3)>> <<case 1>> "You look like fun. Come on, show me how fast you are!" <<case 2>> You yip, and your tail puffs out. "Come on, come get me!" <<case 3>> "I always love a good chase. Show me what you're made of." <</switch>> <<elseif $anxiety gte 1 and $controlled is 0>> <<switch random(1, 3)>> <<case 1>> You try to speak, but terror seizes your voice. <<case 2>> You can't find the words. Your heart thunders in your chest. <<case 3>> Fear consumes your thoughts. <</switch>> <<gstress>><<stress 6>> <<else>> <<set $_rng to random(1, 5)>> <<if $speech_attitude is "meek">> <<switch $_rng>> <<case 1>> "St-stay back," you say with a shy smile. "I-I can't run." <<case 2>> "Please don't come closer," you say with a shy smile. "I-I'm helpless." <<case 3>> "Don't hurt me," you say with a shy smile. "If you can catch me." <<case 4>> "If you catch me, be gentle," you say with a shy smile. <<case 5>> "No one knows I'm here," you say with a shy smile. "If you catch me, I'll be helpless." <</switch>> <<elseif $speech_attitude is "bratty">> <<switch $_rng>> <<case 1>> "You want some? Show me what you're made of." <<case 2>> "There's no way someone like you can catch me," you say. <<case 3>> You exaggerate a laugh. "You'll be easy to outrun." <<case 4>> "Sure, you look like you could use the exercise," you say with a grin. <<case 5>> "I've outrun worse," you say with a grin. <</switch>> <<else>> <<switch $_rng>> <<case 1>> "You won't catch me," you say. <<case 2>> "You'll have to catch me first," you say. <<case 3>> "If you want to try anything," you start, "you'll have to catch me first." <<case 4>> "I know how to look after myself," you say. "Catch me if you can." <<case 5>> "Keep moving," you say. "Or I'll slip away." <</switch>> <</if>> <</if>> <<if $feetuse isnot "run">> You break into a run. <</if>> <</widget>> <<widget "actionsconfrontNNPC">> <<if $wraith and $wraith.mimic>> <<set $_npc to $wraith.mimic>> <<else>> <<set $_npc to $NPCList[0].fullDescription>> <</if>> <<if isLoveInterest($_npc) and random(1)>> <<if $speech_attitude is "meek">> "I-is that you, <<print $_npc>>?" you ask. <<elseif $speech_attitude is "bratty">> "What do you want, <<print $_npc>>?" you demand. <<else>> "<<print $_npc>>?" you say. <</if>> <<else>> <<switch $_npc>> <<case "Whitney">> <<if $whitneyromance is 1>> <<if $speech_attitude is "meek">> <<switch random(1, 3)>> <<case 3>> You gulp. "You're not gonna pick on me, are you?" <<case 2>> "You wouldn't hurt your <<girlfriend>>," you stutter. "R-right?" <<case 1>> "Be gentle, Whitney..." you plead. <</switch>> <<elseif $speech_attitude is "bratty">> <<switch random(1, 3)>> <<case 3>> "Don't think you can walk all over me because we're dating," you say. <<case 2>> "I'm no one's property," you say. "Least of all yours." <<case 1>> "I know you didn't come all this way to chat," you say. <</switch>> <<else>> <<switch random(1, 3)>> <<case 3>> "You wouldn't hurt your <<girlfriend>>," you say. <<case 2>> "I know what you want," you sigh. <<case 1>> "I'm not a toy," you say. <</switch>> <</if>> <<else>> <<if $speech_attitude is "meek">> <<switch random(1, 3)>> <<case 3>> You hang your head. "Just... not too rough." <<case 2>> "Please," you say. "Leave me alone!" <<case 1>> "I won't be bullied," you mumble. <</switch>> <<elseif $speech_attitude is "bratty">> <<switch random(1, 3)>> <<case 3>> "Careful," you warn. "There're no teachers around to save you." <<case 2>> "Why don't you crawl back to your loser friends?" you say. <<case 1>> "Trying anything and I'll kick your ass," you say. <</switch>> <<else>> <<switch random(1, 3)>> <<case 3>> "I'm not gonna let you pick on me," you say. <<case 2>> "What're you trying to prove?" you say. <<case 1>> "Don't you dare," you say. <</switch>> <</if>> <</if>> <<case "Eden">> <<if $syndromeeden is 1>> <<if $speech_attitude is "meek">> <<switch random(1, 3)>> <<case 3>> You look down. "Are you mad at me...?" <<case 2>> "Eden, you're scaring me," you whimper. <<case 1>> You gulp. "Wh-why are you looking at me like I'm prey?" <</switch>> <<elseif $speech_attitude is "bratty">> <<switch random(1, 3)>> <<case 3>> "What the hell are you doing here?" you demand. <<case 2>> "I'll come home when I wanna come home," you say. <<case 1>> "Quit staring like I'm a piece of meat," you demand. <</switch>> <<else>> <<switch random(1, 3)>> <<case 3>> "You're a ways from home," you say. <<case 2>> "What are you doing out here?" you ask. <<case 1>> "How long have you been following me?" you ask. <</switch>> <</if>> <<else>> <<if $speech_attitude is "meek">> <<switch random(1, 3)>> <<case 3>> "Go away!" you cry. "You're scary!" <<case 2>> "Please don't shoot!" you cry. <<case 1>> "I'm not an animal!" you cry. <</switch>> <<elseif $speech_attitude is "bratty">> <<switch random(1, 3)>> <<case 3>> "I'm nobody's prey," you growl. <<case 2>> "Run home to your dirty old shack," you bark. <<case 1>> "Come any closer," you say, "and I'll stick that gun <<if $settings.analEnabled>>up your ass<<else>>down your throat<</if>>." <</switch>> <<else>> <<switch random(1, 3)>> <<case 3>> "Put the gun down," you say. <<case 2>> "Go back to chasing deer," you say. <<case 1>> "I'm not some helpless animal," you say. <</switch>> <</if>> <</if>> <<case "Ivory Wraith">> <<if $wraith.state is "haunt" and $wraithPrison and $wraithPrison.vision>> <<if $speech_attitude is "meek">> <<switch random(1, 3)>> <<case 3>> You cry. "I'm sorry! Just leave me alone!" <<case 2>> "Why can't you just let it go?" you ask. <<case 1>> You look down. "Please stop haunting me." <</switch>> <<elseif $speech_attitude is "bratty">> <<switch random(1, 3)>> <<case 3>> "I don't have your stupid necklace," you say. <<case 2>> "Here we stand, give it back," you mock. "Fuck off." <<case 1>> "Go back to the lake!" you shout. <</switch>> <<else>> <<switch random(1, 3)>> <<case 3>> "Is this about the necklace?" you ask. <<case 2>> "Why are you so obsessed with me?" you ask. <<case 1>> You sigh. "You again." <</switch>> <</if>> <<else>> <<if $speech_attitude is "meek">> <<switch random(1, 3)>> <<case 3>> You cry. "You're scary!" <<case 2>> "Why are you... floating?" you ask. <<case 1>> You try to speak, but your throat seizes as its <<wraithEyes>> eyes bore into you. <</switch>> <<elseif $speech_attitude is "bratty">> <<switch random(1, 3)>> <<case 3>> "Go away, you pale freak," you spit. <<case 2>> "Never knew thin air could be so ugly," you mock. <<case 1>> "What even are you?" you say. "Weird fucking creature." <</switch>> <<else>> <<switch random(1, 3)>> <<case 3>> "I'm not some sacrificial lamb," you say. <<case 2>> "I'm not afraid of you," you <<if $controlled>>say<<else>>lie<</if>>. <<case 1>> "I won't let you haunt me," you say. <</switch>> <</if>> <</if>> <<case "Gwylan">> <<if $gwylan.taken>> <<if $speech_attitude is "meek">> "I don't need you to take care of me anymore," you say. <<elseif $speech_attitude is "bratty">> "Stay away, and stay out of my head," you say. <<else>> "Let me go, Gwylan!" <</if>> <<else>> <<if $speech_attitude is "meek">> <<switch random(1, 3)>> <<case 3>> "Please don't cook me into a stew," you say. <<case 2>> "Please don't turn me into a frog," you say. <<case 1>> "Please stop following me, Gwylan," you say. <</switch>> <<elseif $speech_attitude is "bratty">> <<switch random(1, 3)>> <<case 3>> "Would you quit stalking me, Gwylan?" <<case 2>> "Leave me alone, you witch!" <<case 1>> "Go chase a wolf or something," you say. <</switch>> <<else>> <<switch random(1, 3)>> <<case 3>> "Can I help you, Gwylan?" <<case 2>> "Why are you following me?" <<case 1>> "You're making me nervous, Gwylan." <</switch>> <</if>> <</if>> <<default>> <<actionsconfront>> <</switch>> <</if>> <</widget>> <<widget "actionstauntNNPC">> <<if $wraith and $wraith.mimic>> <<set $_npc to $wraith.mimic>> <<else>> <<set $_npc to $NPCList[0].fullDescription>> <</if>> <<switch $_npc>> <<case "Eden">> <<if $syndromeeden is 1>> <<if $speech_attitude is "meek">> <<switch random(1, 3)>> <<case 3>> "Are you mad at me? Will you be more angry if I keep running?" <<case 2>> "Eden, you're scaring me," you whimper playfully. <<case 1>> You gulp. "You're looking at me like I'm prey. Th-that means I should..." <</switch>> <<elseif $speech_attitude is "bratty">> <<switch random(1, 3)>> <<case 3>> "I won't go back so easily," you say with a grin. <<case 2>> "If you want me to come home, you'll have to catch me first," you say. <<case 1>> "Quit staring like I'm a piece of meat," you demand. <</switch>> <<else>> <<switch random(1, 3)>> <<case 3>> "You're a ways from home," you say. "Think you can catch me again?" <<case 2>> "What are you doing out here?" you ask. "Think you can catch me again?" <<case 1>> "Think you can catch me again?" you ask. <</switch>> <</if>> <<if $feetuse isnot "run">> You break into a run. <</if>> <<else>> <<actionstaunt>> <</if>> <<case "Ivory Wraith">> <<if $wraith.state is "haunt" and $wraithPrison and $wraithPrison.vision>> "I've got your stupid necklace right here," you say. "Come get it." <<else>> <<if $speech_attitude is "meek">> <<switch random(1, 3)>> <<case 3>> You cry. "You're scary!" <<case 2>> "Why are you... floating?" you ask. <<case 1>> You try to speak, but your throat seizes as its <<wraithEyes>> eyes bore into you. <</switch>> <<elseif $speech_attitude is "bratty">> <<switch random(1, 3)>> <<case 3>> "Go away, you pale freak," you spit. <<case 2>> "Never knew thin air could be so ugly," you mock. <<case 1>> "What even are you?" you say. "Weird fucking creature." <</switch>> <<else>> <<switch random(1, 3)>> <<case 3>> "I'm not some sacrificial lamb," you say. <<case 2>> "I'm not afraid of you," you <<if $controlled>>say<<else>>lie<</if>>. <<case 1>> "I won't let you haunt me," you say. <</switch>> <</if>> <</if>> <<if $feetuse isnot "run">> You break into a run. <</if>> <<case "Gwylan">> <<if $gwylan.taken>> <<if $speech_attitude is "meek">> "It looks like my leash slipped," you say coyly. "Come grab it." <<elseif $speech_attitude is "bratty">> "If you want to keep me like one of your little knick-knacks, you'll have to catch me!" <<else>> "Better catch me before I end up somewhere dangerous," you say. <</if>> <<else>> <<if $speech_attitude is "meek">> <<switch random(1, 3)>> <<case 3>> "You wouldn't mind giving me a head start, would you?" <<case 2>> "Go easy on me, Gwylan. I'm not the best runner." <<case 1>> "Come catch me, Gwylan!" <</switch>> <<elseif $speech_attitude is "bratty">> <<switch random(1, 3)>> <<case 3>> "<<if $location is "forest">>Let's see how well you really know this forest.<<else>>Let's see if you're as agile here as in the forest.<</if>>" <<case 2>> "You think you're sneaky, but I could smell you." <<case 1>> "Nobody can catch me!" <</switch>> <<else>> <<switch random(1, 3)>> <<case 3>> "Up for a chase?" <<case 2>> "Where will we go, I wonder?" <<case 1>> "Come get me." <</switch>> <</if>> <</if>> <<if $feetuse isnot "run">> You break into a run. <</if>> <<default>> <<actionstaunt>> <</switch>> <</widget>><<widget "actionsvaginatopenis">> <<if $combattype is "train">> <<set _end to $enemyno-1>> <<else>> <<set _end to 0>> <</if>> <<for _j = $enemyno-1; _j gte _end; _j-->> <<if $NPCList[_j].penis is 0>> <<if $consensual is 1 and !hasSexStat("promiscuity", 5) and $enemytype is "man" or $consensual is 1 and !hasSexStat("deviancy", 5) and $enemytype isnot "man">> <!-- Do Nothing --> <<elseif $NPCList[_j].stance isnot "topface">> <<if $vaginaactiondefault is "vaginatopenis">> | <label><span class="sub">Straddle <<his>> penis</span> <<radiobutton "$vaginaaction" "vaginatopenis" checked>><<vaginaldifficulty>> <<combatpromiscuous5>></label> <<else>> | <label><span class="sub">Straddle <<his>> penis</span> <<radiobutton "$vaginaaction" "vaginatopenis">><<vaginaldifficulty>> <<combatpromiscuous5>></label> <</if>> <<break>> <</if>> <</if>> <</for>> <</widget>> <<widget "actionsvaginatovagina">> <<if $combattype is "train">> <<set _end to $enemyno-1>> <<else>> <<set _end to 0>> <</if>> <<if !playerChastity("vagina")>> <<for _j = $enemyno-1; _j gte _end; _j-->> <<if $NPCList[_j].vagina is 0>> <<if $consensual is 1 and !hasSexStat("promiscuity", 5) and $enemytype is "man" or $consensual is 1 and !hasSexStat("deviancy", 5) and $enemytype isnot "man">> <!-- Do Nothing --> <<elseif $NPCList[_j].stance isnot "topface">> <<if $vaginaactiondefault is "vaginatovagina">> | <label><span class="sub">Straddle <<his>> pussy</span> <<radiobutton "$vaginaaction" "vaginatovagina" checked>><<vaginaldifficulty>> <<combatpromiscuous5>></label> <<else>> | <label><span class="sub">Straddle <<his>> pussy</span> <<radiobutton "$vaginaaction" "vaginatovagina">><<vaginaldifficulty>> <<combatpromiscuous5>></label> <</if>> <<break>> <</if>> <</if>> <</for>> <</if>> <</widget>> <<widget "actionsvaginatovaginafuck">> <<if $combattype is "train">> <<set _end to $enemyno-1>> <<else>> <<set _end to 0>> <</if>> <<if !playerChastity("vagina")>> <<for _j = $enemyno-1; _j gte _end; _j-->> <<if $NPCList[_j].vagina is "vaginaentrance" or $NPCList[_j].vagina is "vaginaimminent">> <<if $consensual is 1 and !hasSexStat("promiscuity", 5) and $enemytype is "man" or $consensual is 1 and !hasSexStat("deviancy", 5) and $enemytype isnot "man">> <!-- Do Nothing --> <<elseif $NPCList[_j].stance isnot "topface">> <<if $vaginaactiondefault is "vaginatovaginafuck">> | <label><span class="sub">Push your pussy against theirs</span> <<radiobutton "$vaginaaction" "vaginatovaginafuck" checked>><<vaginaldifficulty>> <<combatpromiscuous5>></label> <<else>> | <label><span class="sub">Push your pussy against theirs</span> <<radiobutton "$vaginaaction" "vaginatovaginafuck">><<vaginaldifficulty>> <<combatpromiscuous5>></label> <</if>> <<break>> <</if>> <</if>> <</for>> <</if>> <</widget>> <<widget "actionsvaginatopenisnew">> <<if $NPCList[$vaginatarget].penis is 0>> <<if $consensual is 1 and (!hasSexStat("promiscuity", 5) and $enemytype is "man" or !hasSexStat("deviancy", 5) and $enemytype isnot "man") and !$promiscuityIgnore>> <!-- Do Nothing --> <<elseif $NPCList[$vaginatarget].stance isnot "topface" and ($enemytype isnot "man" or ($NPCList[$vaginatarget].location.genitals is 0 and $NPCList[$vaginatarget].location.head isnot "genitals"))>> <<if $NPCList[$vaginatarget].chastity.penis.includes("chastity")>> <<set _vaginaaction["Straddle " + $NPCList[$vaginatarget].pronouns.his + " " + $NPCList[$vaginatarget].chastity.penis] to "vaginatopenis">> <<elseif npcHasStrapon($vaginatarget)>> <<set _vaginaaction["Straddle " + $NPCList[$vaginatarget].pronouns.his + " strap-on"] to "vaginatopenis">> <<else>> <<set _vaginaaction["Straddle " + $NPCList[$vaginatarget].pronouns.his + " penis"] to "vaginatopenis">> <</if>> <</if>> <</if>> <</widget>> <<widget "actionsvaginatovaginanew">> <<if $NPCList[$vaginatarget].vagina is 0>> <<if $consensual is 1 and (!hasSexStat("promiscuity", 5) and $enemytype is "man" or !hasSexStat("deviancy", 5) and $enemytype isnot "man") and !$promiscuityIgnore>> <!-- Do Nothing --> <<elseif $NPCList[$vaginatarget].stance isnot "topface" and ($enemytype isnot "man" or ($NPCList[$vaginatarget].location.genitals is 0 and $NPCList[$vaginatarget].location.head isnot "genitals"))>> <<if $NPCList[$vaginatarget].chastity.penis.includes("chastity")>> <<set _vaginaaction["Straddle " + $NPCList[$vaginatarget].pronouns.his + " " + $NPCList[$vaginatarget].chastity.vagina] to "vaginatovagina">> <<else>> <<set _vaginaaction["Straddle " + $NPCList[$vaginatarget].pronouns.his + " pussy"] to "vaginatovagina">> <</if>> <</if>> <</if>> <</widget>> <<widget "actionsvaginatovaginafucknew">> <<if $NPCList[$vaginatarget].vagina is "vaginaentrance" or $NPCList[$vaginatarget].vagina is "vaginaimminent">> <<if $consensual is 1 and ((!hasSexStat("promiscuity", 5) and $enemytype is "man" or !hasSexStat("deviancy", 5) and $enemytype isnot "man") and !$promiscuityIgnore) or $NPCList[$vaginatarget].chastity.vagina.includes("chastity")>> <!-- Do Nothing --> <<else>> <<set _vaginaaction["Push your pussy against " + $NPCList[$vaginatarget].pronouns.hers] to "vaginatovaginafuck">> <</if>> <</if>> <</widget>> <<widget "actionsvaginapenisfuck">> <<if $combattype is "train">> <<set _end to $enemyno-1>> <<else>> <<set _end to 0>> <</if>> <<if !playerChastity("vagina") and $worn.under_lower.vagina_exposed is 1 and $worn.lower.vagina_exposed is 1>> <<for _j = $enemyno-1; _j gte _end; _j-->> <<if $NPCList[_j].penis is "vaginaentrance" or $NPCList[_j].penis is "vaginaimminent">> <<if $consensual is 1 and !hasSexStat("promiscuity", 5) and $enemytype is "man" or $consensual is 1 and !hasSexStat("deviancy", 5) and $enemytype isnot "man">> <!-- Do Nothing --> <<else>> <<if $vaginaactiondefault is "vaginapenisfuck">> | <label><span class="sub">Envelop <<his>> penis</span> <<radiobutton "$vaginaaction" "vaginapenisfuck" checked>> <<combatpromiscuous5>><<vaginalvirginitywarning $NPCList[_j].fullDescription>><<NPCvirginitywarning $NPCList[_j].fullDescription "penile">></label> <<else>> | <label><span class="sub">Envelop <<his>> penis</span> <<radiobutton "$vaginaaction" "vaginapenisfuck">> <<combatpromiscuous5>><<vaginalvirginitywarning $NPCList[_j].fullDescription>><<NPCvirginitywarning $NPCList[_j].fullDescription "penile">></label> <</if>> <<break>> <</if>> <</if>> <</for>> <</if>> <</widget>> <<widget "actionsvaginapenisfucknew">> <<if !playerChastity("vagina") and $worn.under_lower.vagina_exposed is 1 and $worn.lower.vagina_exposed is 1>> <<if $NPCList[$vaginatarget].penis is "vaginaentrance" or $NPCList[$vaginatarget].penis is "vaginaimminent">> <<if $consensual is 1 and ((!hasSexStat("promiscuity", 5) and $enemytype is "man" or !hasSexStat("deviancy", 5) and $enemytype isnot "man") and !$promiscuityIgnore) or $NPCList[$vaginatarget].chastity.penis.includes("chastity")>> <!-- Do Nothing --> <<else>> <<set _penis to (npcHasStrapon($vaginatarget) ? "strap-on" : "penis")>> <<set _vaginaaction["Envelop " + $NPCList[$vaginatarget].pronouns.his + " " + _penis] to "vaginapenisfuck">> <</if>> <</if>> <</if>> <</widget>> <<widget "actionsvaginaMouthEntrance">> <<if $NPCList[$vaginatarget].mouth is "vaginaentrance">> <<set _vaginaaction["Press your thigh against " + $NPCList[$vaginatarget].pronouns.his + " mouth"] to "thighbay">> <<set _vaginaaction["Rub against " + $NPCList[$vaginatarget].pronouns.his + " face"] to "othermouthtease">> <</if>> <</widget>> <<widget "actionsvaginaVaginaImminent">> <<if $consensual is 0 or (!hasSexStat("promiscuity", 4) and $enemytype is "man" and !$promiscuityIgnore) or (!hasSexStat("deviancy", 4) and $enemytype isnot "man" and !$promiscuityIgnore)>> <<set _vaginaaction["Cooperate"] to "othervaginarub">> <<else>> <<set _vaginaaction["Rub"] to "othervaginarub">> <</if>> <<if ($consensual is 0 or ($enemytype is "man" ? $promiscuity : $deviancy) gte 55 or $promiscuityIgnore) and currentSkillValue("vaginalskill") gte 800>> <<set _vaginaaction["Edge"] to "tribedge">> <</if>> <<set _vaginaaction["Pull away"] to "tribescape">> <</widget>> <<widget "actionsvaginaMouthImminent">> <<if $NPCList[$vaginatarget].mouth is "vaginaimminent">> <<set _vaginaaction["Rub against " + $NPCList[$vaginatarget].pronouns.his + " lips"] to "othermouthrub">> <<set _vaginaaction["Pull away"] to "othermouthescape">> <</if>> <</widget>> <<widget "actionsvaginaMouthPenetrated">> <<if $consensual is 0 or (!hasSexStat("promiscuity", 4) and $enemytype is "man" and !$promiscuityIgnore) or (!hasSexStat("deviancy", 4) and $enemytype isnot "man" and !$promiscuityIgnore)>> <<set _vaginaaction["Cooperate"] to "othermouthcooperate">> <<else>> <<set _vaginaaction["Hump"] to "othermouthcooperate">> <</if>> <</widget>> <<widget "actionsvaginaPenisEntrance">> <<actionsvaginapenisfucknew>> <<if $consensual is 1 and (!hasSexStat("promiscuity", 4) and $enemytype is "man" or !hasSexStat("deviancy", 4) and $enemytype isnot "man") and !$promiscuityIgnore>> <<else>> <<if $thighuse is 0>> <<set _vaginaaction["Try to keep it away with your thighs"] to "penisthighs">> <</if>> <</if>> <<if $anususe is 0 and !playerChastity("anus")>> <<set _vaginaaction["Offer your anus instead"] to "penisanus">> <</if>> <<if $settings.analDoubleEnabled and $awareness gt 300 and $anususe is "penis" and !playerChastity("anus")>> <<if $NPCList[$anustarget].penissize gte 2 and !($consensual is 1 and (!hasSexStat("promiscuity", 5) and $enemytype is "man" or !hasSexStat("deviancy", 5) and $enemytype isnot "man") and !$promiscuityIgnore) and !["legLock","legLocked"].includes($feetuse)>> <<set _vaginaaction["Offer double anal instead"] to "penisanusdouble">> <</if>> <</if>> <<set _vaginaaction["Tease the tip"] to "penistease">> <<if $settings.vaginalDoubleEnabled and _secondtarget is true and ($anususe is 0 or ($anususe isnot 0 and $anususe isnot "penisdouble")) and $awareness gte 300 and !["legLock","legLocked"].includes($feetuse)>> <<if $npc.includes($NPCList[$vaginadoubletarget].fullDescription)>> <<set _vaginaaction["Straddle " + $NPCList[$vaginadoubletarget].fullDescription + "'s " + $NPCList[$vaginadoubletarget].penisdesc] to "vaginatopenisdouble">> <<else>> <<set _vaginaaction["Straddle the " + $NPCList[$vaginadoubletarget].fullDescription + "'s " + $NPCList[$vaginadoubletarget].penisdesc] to "vaginatopenisdouble">> <</if>> <</if>> <</widget>> <<widget "actionsvaginaVaginaEntrance">> <<if $consensual is 0 or (!hasSexStat("promiscuity", 4) and $enemytype is "man" and !$promiscuityIgnore) or (!hasSexStat("deviancy", 4) and $enemytype isnot "man" and !$promiscuityIgnore)>> <<set _vaginaaction["Cooperate"] to "othervaginarub">> <<else>> <<set _vaginaaction["Rub"] to "othervaginarub">> <</if>> <</widget>> <<widget "actionsvaginaPenisImminent">> <<actionsvaginapenisfucknew>> <<set _vaginaaction["Rub"] to "rub">> <<if ($consensual is 0 or (hasSexStat("promiscuity", 4) and $enemytype is "man") or (hasSexStat("deviancy", 4) and $enemytype isnot "man")) and currentSkillValue("vaginalskill") gte 800>> <<set _vaginaaction["Edge " + $NPCList[$vaginatarget].pronouns.him] to "penisEdging">> <</if>> <<set _vaginaaction["Pull away"] to "escape">> <</widget>> <<widget "actionsvaginaPenisPenetrated">> <<set _vaginaaction["Take it"] to "take">> <<if $consensual is 0 or (!hasSexStat("promiscuity", 4) and $enemytype is "man" and !$promiscuityIgnore) or (!hasSexStat("deviancy", 4) and $enemytype isnot "man" and !$promiscuityIgnore)>> <<set _vaginaaction["Cooperate"] to "cooperate">> <<else>> <<set _vaginaaction["Fuck"] to "cooperate">> <</if>> <<if ($consensual is 0 or (hasSexStat("promiscuity", 4) and $enemytype is "man") or (hasSexStat("deviancy", 4) and $enemytype isnot "man")) and currentSkillValue("vaginalskill") gte 800>> <<set _vaginaaction["Edge " + $NPCList[$vaginatarget].pronouns.him] to "penisEdging">> <</if>> <<if !playerIsPregnant() and $sexStats.vagina.menstruation.currentState isnot "recovering" and playerPregnancyPossibleWith($NPCList[$vaginatarget]) and $enemyarousal gte $enemyarousalmax and $demon gte 6 and $demonbuild gte 90>> <<set _vaginaaction["Force impregnation"] to "forceImpregnation">> <</if>> <<if $settings.vaginalDoubleEnabled and _secondtarget is true and ($anususe is 0 or ($anususe isnot 0 and $anususe isnot "penisdouble")) and $awareness gte 300 and !["legLock","legLocked"].includes($feetuse)>> <<if $npc.includes($NPCList[$vaginadoubletarget].fullDescription)>> <<set _vaginaaction["Straddle " + $NPCList[$vaginadoubletarget].fullDescription + "'s " + $NPCList[$vaginadoubletarget].penisdesc] to "vaginatopenisdouble">> <<else>> <<set _vaginaaction["Straddle the " + $NPCList[$vaginadoubletarget].fullDescription + "'s " + $NPCList[$vaginadoubletarget].penisdesc] to "vaginatopenisdouble">> <</if>> <</if>> <</widget>> <<widget "actionsvaginaVagina">> <<if $consensual is 0 or (!hasSexStat("promiscuity", 4) and $enemytype is "man" and !$promiscuityIgnore) or (!hasSexStat("deviancy", 4) and $enemytype isnot "man" and !$promiscuityIgnore)>> <<set _vaginaaction["Cooperate"] to "tribcooperate">> <<else>> <<set _vaginaaction["Rub"] to "tribcooperate">> <</if>> <<if ($consensual is 0 or ($enemytype is "man" ? $promiscuity : $deviancy) gte 55 or $promiscuityIgnore) and currentSkillValue("vaginalskill") gte 800>> <<set _vaginaaction["Edge"] to "tribedge">> <</if>> <<set _vaginaaction["Take it"] to "tribtake">> <<set _vaginaaction["Pull away"] to "tribescape">> <</widget>> <<widget "actionsTribRest">> <<set _vaginaaction["Rest"] to "tribrest">> <</widget>> <<widget "actionsvaginaPenisDoubleEntrance">> <<actionsvaginapenisdoublefuck>> <<if $consensual is 1 and (!hasSexStat("promiscuity", 4) and $enemytype is "man" or !hasSexStat("deviancy", 4) and $enemytype isnot "man") and !$promiscuityIgnore>> <<else>>/* <<if $thighuse is 0>> <<set _vaginaaction["Try to keep it away with your thighs"] to "penisthighs">> <</if>>*/ <</if>> <<if $anususe is 0 and !playerChastity("anus")>> <<set _vaginaaction["Offer your anus instead"] to "penisanusdvp">> <</if>> <<set _vaginaaction["Tease the tip"] to "penistease">> <</widget>> <<widget "actionsvaginaPenisDoubleImminent">> <<actionsvaginapenisdoublefuck>> <<set _vaginaaction["Rub"] to "rub">> <<if ($consensual is 0 or (hasSexStat("promiscuity", 5) and $enemytype is "man") or (hasSexStat("deviancy", 5) and $enemytype isnot "man")) and currentSkillValue("vaginalskill") gte 800>> <<set _vaginaaction["Edge them"] to "penisDoubleEdging">> <</if>> <<if $anususe is 0 and !playerChastity("anus")>> <<set _vaginaaction["Offer your anus instead"] to "penisanusdvp">> <</if>> <<set _vaginaaction["Pull away"] to "doubleescape">> <</widget>> <<widget "actionsvaginaPenisDoublePenetrated">> <<set _vaginaaction["Take it"] to "take">> <<if $consensual is 0 or (!hasSexStat("promiscuity", 4) and $enemytype is "man" and !$promiscuityIgnore) or (!hasSexStat("deviancy", 4) and $enemytype isnot "man" and !$promiscuityIgnore)>> <<set _vaginaaction["Cooperate"] to "doublecooperate">> <<else>> <<set _vaginaaction["Fuck"] to "doublecooperate">> <</if>> <<if ($consensual is 0 or (hasSexStat("promiscuity", 5) and $enemytype is "man") or (hasSexStat("deviancy", 5) and $enemytype isnot "man")) and currentSkillValue("vaginalskill") gte 800>> <<set _vaginaaction["Edge them"] to "penisDoubleEdging">> <</if>> <</widget>> <<widget "actionsvaginapenisdoublefuck">> <<if !playerChastity("vagina") and $worn.under_lower.vagina_exposed is 1 and $worn.lower.vagina_exposed is 1 and $awareness gte 300>> <<if $consensual is 1 and ((!hasSexStat("promiscuity", 5) and $enemytype is "man" or !hasSexStat("deviancy", 5) and $enemytype isnot "man" and $awareness lt 300) and !$promiscuityIgnore) or $NPCList[$vaginatarget].chastity.penis.includes("chastity")>> <!-- Do Nothing --> <<else>> <<if $NPCList[$vaginatarget].penis is "vaginadouble" or $NPCList[$vaginatarget].chastity.penis.includes("chastity")>> <<set _vaginaaction["Envelop " + $NPCList[$vaginadoubletarget].pronouns.his + " " + $NPCList[$vaginadoubletarget].penisdesc] to "vaginapenisdoublefuck">> <<elseif $NPCList[$vaginadoubletarget].penis is "vaginadouble" or $NPCList[$vaginadoubletarget].chastity.penis.includes("chastity")>> <<set _vaginaaction["Envelop " + $NPCList[$vaginatarget].pronouns.his + " " + $NPCList[$vaginatarget].penisdesc] to "vaginapenisdoublefuck">> <<elseif !($NPCList[$vaginatarget].chastity.penis.includes("chastity") and $NPCList[$vaginadoubletarget].chastity.penis.includes("chastity"))>> <<set _vaginaaction["Envelop both their penises"] to "vaginapenisdoublefuck">> <</if>> <</if>> <</if>> <</widget>><<widget "effectsvaginatopenis">> <<if $vaginaaction is "vaginatopenis">> <<personselect $vaginatarget>> <<set $vaginaaction to 0>><<submission 10>><<vaginalskilluse>><<combatpromiscuity5>> <<if $vaginause is 0>> <<if combatSkillCheck("vaginal", $vaginatarget)>> <<if $NPCList[$vaginatarget].penis is 0>> <<submission 2>><<set $vaginause to "penis">><<set $NPCList[$vaginatarget].penis to "vaginaentrance">><<set $vaginastate to "entrance">><<set $vaginaactiondefault to "penistease">> <<if $leftarm is "vagina">> <<set $leftarm to 0>> <</if>> <<if $rightarm is "vagina">> <<set $rightarm to 0>> <</if>> <<if $NPCList[$vaginatarget].condom and $NPCList[$vaginatarget].condom.willUse is true and $NPCList[$vaginatarget].condom.worn is false and !$NPCList[$vaginatarget].penisdesc.includes("strap-on")>> <<if $NPCList[$vaginatarget].chastity.penis.includes("chastity")>> <<He>> tries to put a condom on, but can't seem to get it over <<his>> $NPCList[$vaginatarget].chastity.penis. <span class="red"><<He>> quickly gives up.</span> <<set $NPCList[$vaginatarget].condom.willUse to false>> <<else>> <span class="green"><<He>> slips <<condomDesc $vaginatarget>> on <<his>> penis.</span> <<equipNPCCondom $vaginatarget>> <</if>> <</if>> <span class="lblue">You straddle <<combatperson>> and kiss <<his>> $NPCList[$vaginatarget].penisdesc with your <<pussy>><<if $NPCList[$vaginatarget].chastity.penis.includes("chastity")>> through <<his>> $NPCList[$vaginatarget].chastity.penis<</if>>.</span> <<if $NPCList[$vaginatarget].type is "plant" and $NPCList[$vaginatarget].penissize gte 4 and canImpregnateParasite("vagina")>> <span class="red">Something about it scares you.</span> <</if>> <<if $enemytype is "beast">><<set $NPCList[$vaginatarget].stance to "top">><</if>> <<set $NPCList[$vaginatarget].location.genitals to "genitals">> <<else>> <span class="blue">You try to straddle <<combatpersons>> $NPCList[$vaginatarget].penisdesc, but the phallus is already occupied.</span><<set $vaginaactiondefault to "vaginatopenis">> <</if>> <<else>> <span class="blue">You try to straddle <<combatperson>> but <<ohe>> pushes you off.</span><<set $vaginaactiondefault to "vaginatopenis">> <</if>> <</if>> <</if>> <</widget>> <<widget "effectsvaginatovagina">> <<if $vaginaaction is "vaginatovagina">> <<personselect $vaginatarget>> <<set $vaginaaction to 0>><<submission 5>><<vaginalskilluse>><<combatpromiscuity5>> <<if combatSkillCheck("vaginal", $vaginatarget)>> <<if $NPCList[$vaginatarget].vagina is 0>> <<set $vaginause to "othervagina">><<set $vaginastate to "othervaginaentrance">><<set $NPCList[$vaginatarget].vagina to "vaginaentrance">><<submission 5>><<set $vaginaactiondefault to "othervaginarub">> <<if $leftarm is "vagina">> <<set $leftarm to 0>> <</if>> <<if $rightarm is "vagina">> <<set $rightarm to 0>> <</if>> <span class="lblue">You kiss <<combatpersons>> pussy with your own<<if $NPCList[$vaginatarget].chastity.vagina.includes("chastity")>> through <<his>> $NPCList[$vaginatarget].chastity.vagina<</if>>.</span> <<if $enemytype is "beast">><<set $NPCList[$vaginatarget].stance to "top">><</if>> <<set $NPCList[$vaginatarget].location.genitals to "genitals">> <<else>> <span class="blue">You try to move your <<pussy>> nearer <<combatpersons>>, but the entrance is already occupied.</span><<set $vaginaactiondefault to "vaginatovagina">> <</if>> <<else>> <span class="blue">You try to move your <<pussy>> nearer <<combatpersons>>, but <<ohe>> pushes you off.</span><<set $vaginaactiondefault to "vaginatovagina">> <</if>> <</if>> <</widget>> <<widget "effectsvaginatovaginafuck">> <<if $vaginaaction is "vaginatovaginafuck" and $NPCList[$vaginatarget].vagina.toString().includes("vagina")>> <<set $vaginaaction to 0>><<submission 5>><<vaginalskilluse>><<combatpromiscuity5>> <<if combatSkillCheck("vaginal", $vaginatarget)>> <<submission 5>><<set $vaginause to "othervagina">><<set $vaginastate to "othervagina">><<set $NPCList[$vaginatarget].vagina to "vagina">><<set $vaginaactiondefault to "tribcooperate">> <span class="blue">You press <<personselect $vaginatarget>><<combatpersons>> pussy with your own.</span> <<else>> <span class="blue">You try to press your <<pussy>> against <<personselect $vaginatarget>><<combatpersons>>, but <<ohe>> keeps you away.</span><<set $vaginaactiondefault to "vaginatovaginafuck">> <</if>> <</if>> <</widget>> <<widget "effectsvaginapenisfuck">> <<if $vaginaaction is "vaginapenisfuck" and $NPCList[$vaginatarget].penis.toString().includes("vagina")>> <<set $vaginaaction to 0>><<submission 20>><<vaginalskilluse>><<combatpromiscuity5>> <<if $vaginaWetness + (currentSkillValue("vaginalskill") / 10) gte ($NPCList[$vaginatarget].penissize * 15) + random(1, 40) or random(1, 2) is 2>> <<if $player.virginity.vaginal isnot true>> <<set $NPCList[$vaginatarget].penis to "vagina">> <<vagina_lube_text>> <span class="pink">you <<vaginaltext>> push against <<personselect $vaginatarget>><<combatpersons>> $NPCList[$vaginatarget].penisdesc, taking it deep into your <<pussy>>.</span> <<switch $NPCList[$vaginatarget].penissize>> <<case 5>> <span class="lewd">The sheer size of it forces the breath from your body.</span> <<case 4>> <span class="lewd">You shudder as your <<pussy>> stretches to accommodate <<his>> cock.</span> <<case 1>> <span class="lewd">It's so small you can barely feel it.</span> <<default>> <span class="lewd"></span> <</switch>> <<sex 30 "genitals" $vaginatarget>><<vaginalstat>><<raped>><<vaginaraped>><<takeVirginity $NPCList[$vaginatarget].fullDescription "vaginal">><<takeNPCVirginity $vaginatarget "penile">><<set $vaginastate to "penetrated">><<set $vaginaactiondefault to "cooperate">> <<elseif $player.virginity.vaginal is true>> <<set $NPCList[$vaginatarget].penis to "vagina">><<set $vaginaactiondefault to "cooperate">> <<vagina_lube_text>> <span class="pink">you <<vaginaltext>> push against <<personselect $vaginatarget>><<combatpersons>> $NPCList[$vaginatarget].penisdesc, taking it deep into your virgin pussy.</span> <<if $sexStats.vagina.pregnancy.totalBirthEvents gt 0>> <span class="red">Despite your lack of a hymen, you feel something inside you change as your virginity and purity are taken.</span> <<violence 10>> <<else>> <<switch $NPCList[$vaginatarget].penissize>> <<case 5>> The sheer size forces all thought from your mind. <span class="red">Your hymen is obliterated, <<virginitylosttext $NPCList[_n].fullDescription>></span> <<violence 50>> <<case 4>> <span class="red">Your hymen is destroyed, <<virginitylosttext $NPCList[_n].fullDescription>></span> <<violence 40>> <<case 1>> <span class="red">You feel your hymen tear despite its size, <<virginitylosttext $NPCList[_n].fullDescription>></span> <span class="green">While technically no longer a virgin, you can barely feel it.</span> <<violence 20>> <<default>> <span class="red">You feel your hymen tear, <<virginitylosttext $NPCList[_n].fullDescription>></span> <<violence 30>> <</switch>> <</if>> <<sex 100 "genitals" $vaginatarget>><<bruise vagina>><<vaginalstat>><<raped>><<vaginaraped>><<takeVirginity $NPCList[$vaginatarget].fullDescription "vaginal">><<takeNPCVirginity $vaginatarget "penile">><<set $vaginastate to "penetrated">><<set $speechvaginavirgin to 1>> <</if>> <<else>> You <<vaginaltext>> press your <<pussy>> against <<personselect $vaginatarget>><<combatpersons>> <<print $NPCList[$vaginatarget].penisdesc>>, <span class="blue">but fail to envelop.</span> <<His>> penis angles away and rubs against your <<if $player.penisExist>><<penis>><<else>>clit<</if>>. <<sex 20 "genitals" $vaginatarget>><<set $vaginaactiondefault to "vaginapenisfuck">> <</if>> <</if>> <</widget>> <<widget "effectsvaginatopenisdouble">> <<if $vaginaaction is "vaginatopenisdouble" and $NPCList[$vaginadoubletarget].penis is 0>> <<set $vaginaaction to 0>><<submission 10>><<vaginalskilluse>><<set $vaginaactiondefault to "vaginatopenisdouble">><<combatpromiscuity5>> <<if combatSkillCheck("vaginal", $vaginadoubletarget)>> <<submission 2>><<set $vaginause to "penisdouble">><<set $NPCList[$vaginadoubletarget].penis to "vaginaentrancedouble">><<set $vaginastate to "doubleentrance">> <<if $NPCList[$vaginatarget].penis is "vaginaimminent">> <<set $NPCList[$vaginatarget].penis to "vaginaimminentdouble">> <<set $vaginastate to "doubleimminent">> <<elseif $NPCList[$vaginatarget].penis is "vaginaentrance">> <<set $NPCList[$vaginatarget].penis to "vaginaentrancedouble">> <<else>> <<set $NPCList[$vaginatarget].penis to "vaginadouble">> <<set $vaginastate to "doublepenetrated">> <</if>> <<if $leftarm is "vagina">> <<set $leftarm to 0>> <</if>> <<if $rightarm is "vagina">> <<set $rightarm to 0>> <</if>> <<if $NPCList[$vaginadoubletarget].condom and $NPCList[$vaginadoubletarget].condom.willUse is true and $NPCList[$vaginadoubletarget].condom.worn is false and !$NPCList[$vaginadoubletarget].penisdesc.includes("strap-on")>> <<if $NPCList[$vaginadoubletarget].chastity.penis.includes("chastity")>> <<He>> tries to put a condom on, but can't seem to get it over <<his>> $NPCList[$vaginadoubletarget].chastity.penis. <span class="red"><<He>> quickly gives up.</span> <<set $NPCList[$vaginadoubletarget].condom.willUse to false>> <<else>> <span class="green"><<He>> slips <<condomDesc $vaginadoubletarget>> on <<his>> penis.</span> <<equipNPCCondom $vaginadoubletarget>> <</if>> <</if>> <span class="lblue">You straddle <<personselect $vaginadoubletarget>><<combatperson>> and kiss <<his>> $NPCList[$vaginadoubletarget].penisdesc with your <<pussy>><<if $NPCList[$vaginadoubletarget].chastity.penis.includes("chastity")>> through <<his>> $NPCList[$vaginadoubletarget].chastity.penis<</if>>, joining <<personselect $vaginatarget>><<combatpersons>> <<npcPenisSimple $vaginatarget>>.</span> <<if $enemytype is "beast">><<set $NPCList[$vaginadoubletarget].stance to "top">><</if>> <<set $NPCList[$vaginadoubletarget].location.genitals to "genitals">> <<else>> <span class="blue">You try to straddle <<personselect $vaginadoubletarget>><<combatperson>> but <<ohe>> pushes you off.</span> <</if>> <</if>> <</widget>> <<widget "effectsvaginapenisdoublefuck">> <<if $vaginaaction is "vaginapenisdoublefuck">> <<set $vaginaaction to 0>><<submission 20>><<vaginalskilluse>><<set $vaginaactiondefault to "vaginapenisdoublefuck">><<combatpromiscuity5>> <<set _npcA to $vaginatarget>> <<set _npcB to $vaginadoubletarget>> <<set _doublepenissize to $NPCList[$vaginatarget].penissize>> <<set _npcdicksizeA to $NPCList[_npcA].penissize>> <<set _npcdicksizeB to $NPCList[_npcB].penissize>> <<if _npcdicksizeA gte _npcdicksizeB>> <<set _doublepenissize to (_npcdicksizeA+1)>> <<else>> <<set _doublepenissize to (_npcdicksizeB+1)>> <</if>> <<if _doublepenissize gt 5>> /* Ensure combined they're not larger than the largest possible phallus */ <<set _doublepenissize to 5>> <</if>> <<if $vaginaWetness + (currentSkillValue("vaginalskill") / 10) gte (_doublepenissize * 15) + random(1, 40) or random(0, 2) isnot 3>> <<if $player.virginity.vaginal isnot true>> <<set $NPCList[_npcA].penis to "vaginadouble">> <<set $NPCList[_npcB].penis to "vaginadouble">> <<vagina_lube_text>> <span class="pink">you <<vaginaltext>> push against the $NPCList[_npcA].fullDescription's $NPCList[_npcA].penisdesc and the $NPCList[_npcB].fullDescription's $NPCList[_npcB].penisdesc, taking them deep into your <<pussy>>.</span> <<switch _doublepenissize>> <<case 5>> <span class="lewd">The sheer size of them forces the breath from your body.</span> <<case 4>> <span class="lewd">You shudder as your <<pussy>> stretches to accommodate their <<penises>>.</span> <<default>> <span class="lewd"></span> <</switch>> <span class="pink">Your nipples harden while your body shivers from taking two cocks.</span> <<set _mydesc to ($NPCList[_npcA].fullDescription + " and " + $NPCList[_npcB].fullDescription)>> <<sex 15 "genitals" $vaginatarget>><<sex 15 "genitals" $vaginadoubletarget>><<vaginalstat>><<vaginaldoublestat>><<raped>><<vaginaraped>><<set $vaginastate to "doublepenetrated">> <<takeVirginity `[_npcA, _npcB]` "vaginal">><<takeNPCVirginity _npcA "penile">><<takeNPCVirginity _npcB "penile">> <<elseif $player.virginity.vaginal is true>> <<set $NPCList[_npcA].penis to "vaginadouble">> <<set $NPCList[_npcB].penis to "vaginadouble">> <<vagina_lube_text>> <span class="pink">you <<vaginaltext>> push against the $NPCList[_npcA].fullDescription's $NPCList[_npcA].penisdesc and the $NPCList[_npcB].fullDescription's $NPCList[_npcB].penisdesc, taking them deep into your virgin pussy.</span> <<if $sexStats.vagina.pregnancy.totalBirthEvents gt 0>> <span class="red">Despite your lack of a hymen, you feel something inside you change as your virginity and purity are taken.</span> <<violence 10>> <<else>> <<switch _doublepenissize>> <<case 5>> The sheer size of their cocks forces all thought from your mind. <span class="red">Your hymen is obliterated, <<virginitylosttext $NPCList[_n].fullDescription>></span> <<violence 50>> <<case 4>> <span class="red">Your hymen is destroyed by both cocks, <<virginitylosttext $NPCList[_n].fullDescription>></span> <<violence 40>> <<default>> <span class="red">You feel your hymen tear from both cocks, <<virginitylosttext $NPCList[_n].fullDescription>></span> <<violence 30>> <</switch>> <</if>> <span class="pink">Your nipples harden while your body shivers from taking two cocks.</span> <<set _mydesc to ($NPCList[_npcA].fullDescription + " and " + $NPCList[_npcB].fullDescription)>> <<sex 50 "genitals" $vaginatarget>><<sex 50 "genitals" $vaginadoubletarget>><<bruise vagina>><<vaginalstat>><<vaginaldoublestat>><<raped>><<vaginaraped>><<takeVirginity `[_npcA, _npcB]` "vaginal">><<takeNPCVirginity _npcA "penile">><<takeNPCVirginity _npcB "penile">><<set $vaginastate to "doublepenetrated">><<set $speechvaginavirgin to 1>> <</if>> <<else>> You <<vaginaltext>> press your <<pussy>> against <<personselect $vaginatarget>><<combatpersons>> <<print $NPCList[$vaginatarget].penisdesc>>, <span class="blue">but fail to envelop.</span> <<His>> penis angles away and rubs against your <<if $player.penisExist>><<penis>><<else>>clit<</if>>. <<sex 10 "genitals" $vaginatarget>><<sex 10 "genitals" $vaginadoubletarget>><<set $vaginaactiondefault to "vaginapenisdoublefuck">> <</if>> <</if>> <</widget>><<widget "actionsman">> <<exposure>> <<set $face to 0>> <<if $enemyno gte 2>> <<set $pronoun to "n">> <<else>> <<if $NPCList[0].pronoun is "m">> <<set $pronoun to "m">> <</if>> <<if $NPCList[0].pronoun is "f">> <<set $pronoun to "f">> <</if>> <<if $NPCList[0].pronoun is "i">> <<set $pronoun to "i">> <</if>> <<if $NPCList[0].pronoun is "n">> <<set $pronoun to "n">> <</if>> <<if $NPCList[0].pronoun is "t">> <<set $pronoun to "t">> <</if>> <</if>> <<animateCombat>> <div @class="($debugLines ? 'debugLines-actionsman' : '')"> <<fetishPregnancyImg>> <<if $traumafocus gte 1 and $traumafocusintro isnot 1>> <<set $traumafocusintro to 1>> <i>As you gain focus, you become more and more likely to escape your helpless state of dissociation.</i> <br><br> <</if>> <<if $traumafocus gt random(1, 1000) and $dissociation gte 2 and $combat is 1>> <<set $traumafocus to 0>><<set $trauma -= 1000>><<set $dissociation to 1>> <span class="green">Your lucidity returns.</span> <<ltrauma>> <br> <span class="red">The weight of reality crashes down on you.</span> <br><br> <</if>> <<oxygen 50>> <<willpowerpain>> <<willpowerorgasm>> <<actioncarry>> <<actioncarrydrop>> <<combatstate>> <<carryblock>> <<if $trance lte 0 and $panicparalysis is 0 and ($panicviolence is 0 or $position is "stalk")>> <<if $dissociation lte 1 and $orgasmdown lte 0 and ($pain lt 100 or $willpowerpain is undefined) and !$possessed>> <<if $options.images is 1 and $options.combatImages is 1 and $consensual is 1 and $position_lock isnot 1>> <<if $position is "doggy">> | <label>Roll over <<radiobutton "$bodyaction" "missionary">></label> <<elseif $position is "missionary" and !["facesit", "anal"].includes($mouthuse)>> | <label>Roll over <<radiobutton "$bodyaction" "doggy">></label> <</if>> <<if $position isnot "stalk">> | <label>Rest <<radiobutton "$bodyaction" "rest" checked>></label> <br> <</if>> <</if>> <</if>> <<if $options.combatControls isnot "disabled">> <<generateActionsMan>> <</if>> <br> <</if>> <br><br> <<set $face to 0>> </div> /*Due to how combat is setup, this is the best location for it*/ <<setupMidOrgasm>> <<set _combatend to ($alarm is 1 and $rescue gte 1) or ($enemyhealth lte 0) or ($enemyarousal gte $enemyarousalmax) or ($finish is 1) >> <!-- Lose consciousness if it has been 20+ seconds since PC ran out of air --> <<if $suffocating gte 2 and $suffocated isnot 1 and !_combatend>> <<set $previousPassage = $passage>> <<set $suffocationPhase to 1>> <<set $suffocated to 1>> <<set $nextPassage to "Man combat suffocated">> <</if>> <<if $debug is 1 and $combatDemoDebugText isnot 0>> <div id="combatDebug"> __Debug__ <br> Enemy Health: $enemyhealth -- Enemy Health Max: $enemyhealthmax <br> Enemy number: $enemyno -- Enemy max number: $enemynomax <br><br> <<for _i to 0; _i lt $enemynomax; _i++>> #<<print _i>>: $NPCList[_i].fullDescription <br> Head Location: $NPCList[_i].location.head -- Genitals Location: $NPCList[_i].location.genitals <br> Active: $NPCList[_i].active -- Stance: $NPCList[_i].stance -- Health: $NPCList[_i].health <br> Penis: $NPCList[_i].penis -- Vagina: $NPCList[_i].vagina -- Mouth: $NPCList[_i].mouth -- Anus: $NPCList[_i].anus /* Note: Anus is literally not a real var for npcs yet. Don't think anything is wrong when you see it isn't printing a logical value. A rework is required first. */ <br> Left Hand: $NPCList[_i].lefthand -- Right Hand: $NPCList[_i].righthand <br><br> <</for>> </div> <</if>> <</widget>>/*Please read dev comments before making changes*/ /*Be careful with changing names around, they are intentional as can get re-used when the user uses the controls, leading to errors if incorrect*/ /*Generates the required divs and calls each type of action*/ <<widget "generateActionsMan">> <br> <<if $defaultsType is undefined>> <<getCombatDefaultsType>> <</if>> <<if $position isnot "stalk">> <div id="replaceAction"> <<replaceActionLink>> </div> <<if _targetlist is undefined>> <<getTargetList>> <</if>> <</if>> <<if !$stalk_end>> <div id="listContainer"> <div id="leftaction" @class="$options.combatControls + 'Control'"> <<leftActionInit>> </div> <div id="rightaction" @class="$options.combatControls + 'Control'"> <<rightActionInit>> </div> <div id="feetaction" @class="$options.combatControls + 'Control'"> <<feetActionInit>> </div> <div id="mouthaction" @class="$options.combatControls + 'Control'"> <<mouthActionInit>> </div> <<if $player.penisExist or $worn.genitals.type.includes("strap-on") or playerHasStrapon()>> <div id="penisaction" @class="$options.combatControls + 'Control'"> <<penisActionInit>> </div> <</if>> <<if $player.vaginaExist>> <div id="vaginaaction" @class="$options.combatControls + 'Control'"> <<vaginaActionInit>> </div> <</if>> <div id="anusaction" @class="$options.combatControls + 'Control'"> <<anusActionInit>> </div> <<if $chestuse isnot 0>> <div id="chestaction" @class="$options.combatControls + 'Control'"> <<chestActionInit>> </div> <</if>> <<if $thighuse isnot 0>> <div id="thighaction" @class="$options.combatControls + 'Control'"> <<thighActionInit>> </div> <</if>> </div> <</if>> <</widget>> /*Generates the required values for defaults to be setup based on the situation*/ <<widget "getCombatDefaultsType">> <<if $consensual == 1>> <<set $defaultsCombatType = "consensual">> <<else>> <<set $defaultsCombatType = "rape">> <</if>> <<switch $enemytype>> <<case "man">> <<if $NPCNameList.includes($NPCList[0].fullDescription)>> <<if $actionDefaults[$NPCList[0].fullDescription] isnot undefined>> <<set $defaultsType to $NPCList[0].fullDescription>> <<else>> <<set $defaultsType to "Acquaintances">> <</if>> <<else>> <<set $defaultsType to "Strangers">> <</if>> <<case "beast">><<set $defaultsType to "Animals">> <<case "tentacles" "vore">> <<set $defaultsType to "Tentacles">> <<set $regrab = DefaultActions.get($defaultsCombatType, 'Tentacles', 'regrab', $actionDefaults, 0)[0]>> <<default>><<set $defaultsType to "Everyone">> <</switch>> <</widget>> <<widget "getCombatDefaultsTypeClear">> <<unset $defaultsType>> <<unset $defaultsCombatType>> <<unset $replaceAction>> <<unset $regrab>> <</widget>> <<widget "replaceActionLink">> <<if $replaceAction isnot "Alternative">> <a onclick="wikifier('replaceAction','Alternative')">Switch to Alternative Actions</a> | <</if>> <<if $replaceAction isnot "Submissive">> <a onclick="wikifier('replaceAction','Submissive')">Switch to Submissive Actions</a> | <</if>> <<if $replaceAction isnot "Defiant">> <a onclick="wikifier('replaceAction','Defiant')">Switch to Defiant Actions</a> | <</if>> <<if $replaceAction isnot undefined>> <a onclick="wikifier('replaceAction','Normal')">Switch to Normal Actions</a> | <</if>> <br> <</widget>> <<widget "replaceAction">> <<set $_rape to ($actionDefaults || {}).rape || {}>> <<set $_consent to ($actionDefaults || {}).consensual || {}>> <<switch _args[0]>> <<case "Alternative">> <<if $_rape.Alternative === undefined || $_consent.Alternative === undefined>> <<setupDefaults>> <</if>> <<set $defaultsType to "Alternative">> <<set $replaceAction to "Alternative">> <<case "Submissive">> <<if $_rape.Submissive === undefined || $_consent.Submissive === undefined>> <<setupDefaults>> <</if>> <<set $defaultsType to "Submissive">> <<set $replaceAction to "Submissive">> <<case "Defiant">> <<if $_rape.Defiant === undefined || $_consent.Defiant === undefined>> <<setupDefaults>> <</if>> <<set $defaultsType to "Defiant">> <<set $replaceAction to "Defiant">> <<case "Normal">> <<getCombatDefaultsType>> <<unset $replaceAction>> <</switch>> <<safereplace #replaceAction>><<replaceActionLink _replace>><</safereplace>> <<safereplace #leftaction>><<leftActionInit true>><</safereplace>> <<safereplace #rightaction>><<rightActionInit true>><</safereplace>> <<safereplace #feetaction>><<feetActionInit true>><</safereplace>> <<safereplace #mouthaction>><<mouthActionInit true>><</safereplace>> <<if $player.penisExist or $worn.genitals.type.includes("strap-on") or playerHasStrapon()>> <<safereplace #penisaction>><<penisActionInit true>><</safereplace>> <</if>> <<if $player.vaginaExist>> <<safereplace #vaginaaction>><<vaginaActionInit true>><</safereplace>> <</if>> <<safereplace #anusaction>><<anusActionInit true>><</safereplace>> <<if $chestuse isnot 0>> <<safereplace #chestaction>><<chestActionInit true>><</safereplace>> <</if>> <<if $thighuse isnot 0>> <<safereplace #thighaction>><<thighActionInit true>><</safereplace>> <</if>> <</widget>> /*This takes two arguments and one optional argument*/ /*_arg[0] is the name of the body part*/ /*_arg[1] is the list of targets*/ /*_arg[2] is optional and used if a special receiver is needed*/ <<widget "targetListBox">> <<set _onChangeString to "actionsreplace('" + _args[0] + "')">> <<set _listBoxReceiver to _args[2] === undefined ? "$" + _args[0] + "target" : _args[2]>> <label> Target: <span @onchange=_onChangeString> <<listbox _listBoxReceiver autoselect>> <<optionsfrom _args[1]>> <</listbox>> </span> </label> <</widget>> /*Each set of actions are based on the same set of rules*/ /*Setup by getting the situation that the player is in. i.e Their left hand is hold onto a penis*/ /*This is then followed up in getting the options that are available to the player, this would be from <<leftActions>>*/ /*in the case for the left hand. An object will be provide that contain moves in the form of {"actionName":"actionValue"}*/ /*actionName will be shown to the player, actionValue will be used to do the action*/ /*After the list of actions is setup, as long as there is more than one provide it will continue on to setting up the defaults*/ /*This will use the object setup in "base-system\attitudes.twee"*/ /*To provide extra information to the player, widgets such as `<<leftactionDifficulty>> can be used to display extra*/ /*information to the player such as "<<handdifficulty>>"" or "<<skulduggerydifficulty>><<combatcrime>>"*/ /*This will use the previous "actionValue"*/ /*Move colors will be provided through "combatListColor" found in "03-JavaScript\ingame.js"*/ /*These again use the "actionValue"*/ <<widget "leftActionInit">> <<if ($NPCList[0].state is "pursuit" or $NPCList[0].state is "chased") and $NPCList[0].distance lte 0>> <<set _leftGold to true>> <<set _rightGold to true>> <</if>> <<switch $leftarm>> <<case 0>> <<if $orgasmdown gte 1>> <<set _leftOptions to "orgasm">> <span class="lewd">Your left arm is free, but you can't stop the spasms.</span> <<elseif $pain gte 100 and $willpowerpain is 0 and !$possessed>> <<set _leftOptions to "pain">> <span class="red">Your left arm is free, but hurts to move.</span> <<elseif $dissociation gte 2 and !$possessed>> <<set _leftOptions to "unreal">> <span class="pink">Your left arm is free, but doesn't feel real.</span> <<elseif $possessed>> <<set _leftOptions to "possessed">> Your left arm is free, <span class="pink">but not under your control.</span> <<else>> <<if _targetYourself is true and _targetnumber gt 1>> <<set _targetlistarms["Yourself"] to "self">> <</if>> <<if not $options.combatControls.includes("adio") and _targetnumber gt 1 and $stealstateleft is undefined>> <<targetListBox "left" _targetlistarms>> <</if>> <<set _leftOptions to "free">> <span @class="($lastOptions.left isnot _leftOptions or _leftGold is true ?'gold':'')">Your left hand is free.</span> <<if $options.combatControls.includes("adio") and _targetnumber gt 1 and $stealstateleft is undefined>> <<targetListBox "left" _targetlistarms>> <</if>> <<if _targetnumber is 1>> <<set $lefttarget to _firsttarget>> <</if>> <</if>> <<case "penis">> <<set _leftOptions to "penis">> <span @class="($lastOptions.left isnot _leftOptions or _leftGold is true ?'gold':'')"><<selectNpcWithPartInPosition "penis" "leftarm">><<set $lefttarget to $index>>Your left hand is <<if $NPCList[$index] and $NPCList[$index].chastity.penis.includes("chastity")>>teasing<<else>>holding<</if>> <<personselect $index>><<combatpersons>> $NPCList[$index].penisdesc<<if $NPCList[$index].chastity.penis.includes("chastity")>> through <<his>> $NPCList[$index].chastity.penis<</if>>.</span> <<case "grappled">> <<if $orgasmdown gte 1>> <<set _leftOptions to "bothBound">> <span class="lewd">Your left arm jerks against their grip.</span> <<elseif $pain gte 100 and $willpowerpain is 0>> <<set _leftOptions to "bothBound">> <span class="red">Your left arm is held in a painful grip.</span> <<elseif $dissociation gte 2>> <<set _leftOptions to "bothBound">> <span class="pink">Your left arm lies limp in their grip.</span> <<elseif $possessed>> <<set _leftOptions to "possessedBound">> Your left arm writhes in their grip, unbidden. <<else>> <<set _leftOptions to "grappled">> <span @class="($lastOptions.left isnot _leftOptions or _leftGold is true ?'gold':'')">Your left arm is being held down.</span> <</if>> <<case "bound">> <<set _leftOptions to "bothBound">> <<if $orgasmdown gte 1>> <span class="lewd">Your left arm jerks against its bonds.</span> <<elseif $pain gte 100 and $willpowerpain is 0>> <span class="red">Your left arm is held in a painful bind.</span> <<elseif $dissociation gte 2>> <span class="pink">Your left arm lies limp in its bonds.</span> <<elseif $possessed>> Your left arm writhes in its bounds, unbidden. <<else>> <span @class="($lastOptions.left isnot _leftOptions or _leftGold is true ?'gold':'')">Your arms are helplessly bound.</span> <</if>> <<case "othervagina">> <<set _leftOptions to "pussy">> <span @class="($lastOptions.left isnot _leftOptions or _leftGold is true ?'gold':'')"><<selectNpcWithPartInPosition "vagina" "leftarm">><<set $lefttarget to $index>>Your left hand is <<if $NPCList[$index].chastity.vagina.includes("chastity")>>teasing<<else>>stroking<</if>> <<personselect $index>><<combatpersons>> pussy<<if $NPCList[$index].chastity.vagina.includes("chastity")>> through <<his>> $NPCList[$index].chastity.vagina<</if>>.</span> <<case "vagina">> <<set _leftOptions to "coverVagina">> <span @class="($lastOptions.left isnot _leftOptions or _leftGold is true ?'gold':'')">Your left hand is protecting your <<pussy>>.</span> <<case "coverpenis">> <<set _leftOptions to "coverPenis">> <span @class="($lastOptions.left isnot _leftOptions or _leftGold is true ?'gold':'')">Your left hand is protecting your <<penis>>.</span> <<case "anus">> <<set _leftOptions to "coverAss">> <span @class="($lastOptions.left isnot _leftOptions or _leftGold is true ?'gold':'')">Your left hand is protecting your <<bottom>>.</span> <<case "behind">> <<set _leftOptions to "behind">> <span @class="($lastOptions.left isnot _leftOptions or _leftGold is true ?'gold':'')">Your left hand is behind your back.</span> <<case "handheld">> <<set _leftOptions to "handheld">> <span @class="($lastOptions.left isnot _leftOptions or _leftGold is true ?'gold':'')">Your left hand is being held.</span> <<case "heldSexToy">> <<if _targetYourself is true and _targetnumber gt 1>> <<set _targetlistarms["Yourself"] to "self">> <</if>> <<if not $options.combatControls.includes("adio") and _targetnumber gt 1>> <<targetListBox "left" _targetlistarms>> <</if>> <<set _leftOptions to "heldSexToy">> <span @class="($lastOptions.left isnot _leftOptions or _leftGold is true ?'gold':'')">Your left hand is holding the <<print $currentSexToyLeft.name>>.</span> <<if $options.combatControls.includes("adio") and _targetnumber gt 1>> <<targetListBox "left" _targetlistarms>> <</if>> <<if _targetnumber is 1>> <<set $lefttarget to _firsttarget>> <</if>> <<case "dildoSelfPussyEntrance">> <<set _leftOptions to "dildoSelfPussyEntrance">> <span @class="($lastOptions.left isnot _leftOptions or _leftGold is true ?'gold':'')">Your left hand is holding the <<print $currentSexToyLeft.name>> above your <<pussy>>.</span> <<case "dildoSelfPussy">> <<set _leftOptions to "dildoSelfPussy">> <span @class="($lastOptions.left isnot _leftOptions or _leftGold is true ?'gold':'')">Your left hand fucks your <<pussy>> with the <<print $currentSexToyLeft.name>>.</span> <<case "dildoSelfAnusEntrance">> <<set _leftOptions to "dildoSelfAnusEntrance">> <span @class="($lastOptions.left isnot _leftOptions or _leftGold is true ?'gold':'')">Your left hand is holding the <<print $currentSexToyLeft.name>> above your anus.</span> <<case "dildoSelfAnus">> <<set _leftOptions to "dildoSelfAnus">> <span @class="($lastOptions.left isnot _leftOptions or _leftGold is true ?'gold':'')">Your left hand fucks your <<bottom>> with the <<print $currentSexToyLeft.name>>.</span> <<case "strokerSelfPenisEntrance">> <<set _leftOptions to "strokerSelfPenisEntrance">> <span @class="($lastOptions.left isnot _leftOptions or _leftGold is true ?'gold':'')">Your left hand is holding the <<print $currentSexToyLeft.name>> above your <<penisSimple>>.</span> <<case "strokerSelfPenis">> <<set _leftOptions to "strokerSelfPenis">> <span @class="($lastOptions.left isnot _leftOptions or _leftGold is true ?'gold':'')">Your left hand fucks your <<penisSimple>> with the <<print $currentSexToyLeft.name>></span> <<case "dildoOtherPussyTease">> <<set _leftOptions to "dildoOtherPussyTease">> <span @class="($lastOptions.left isnot _leftOptions or _leftGold is true ?'gold':'')">Your left hand is <<if $NPCList[$lefttarget].chastity.vagina.includes("chastity")>>teasing<<else>>stroking<</if>> <<combatpersons>> pussy<<if $NPCList[$lefttarget].chastity.vagina.includes("chastity")>> through <<his>> $NPCList[$lefttarget].chastity.vagina<</if>> with your $currentSexToyLeft.name.</span> <<case "dildoOtherPussyFuck">> <<set _leftOptions to "dildoOtherPussyFuck">> <span @class="($lastOptions.left isnot _leftOptions or _leftGold is true ?'gold':'')"><<selectNpcWithPartInPosition "vagina" "leftDildo">><<set $lefttarget to $index>>Your left hand fucks the <<combatpersons>> pussy with the $currentSexToyLeft.name.</span> <<case "dildoOtherAnusTease">> <<set _leftOptions to "dildoOtherAnusTease">> <span @class="($lastOptions.left isnot _leftOptions or _leftGold is true ?'gold':'')">Your left hand is <<if $NPCList[$lefttarget].chastity.vagina.includes("chastity")>>teasing<<else>>stroking<</if>> <<combatpersons>> ass<<if $NPCList[$lefttarget].chastity.vagina.includes("chastity")>> through <<his>> $NPCList[$lefttarget].chastity.vagina<</if>> with your $currentSexToyLeft.name.</span> <<case "dildoOtherAnusFuck">> <<set _leftOptions to "dildoOtherAnusFuck">> <span @class="($lastOptions.left isnot _leftOptions or _leftGold is true ?'gold':'')"><<selectNpcWithPartInPositionAnus "leftDildoAnus">><<set $lefttarget to $index>>Your left hand fucks <<combatpersons>> ass with the $currentSexToyLeft.name.</span> <<case "strokerOtherPenisTease">> <<set _leftOptions to "strokerOtherPenisTease">> <span @class="($lastOptions.left isnot _leftOptions or _leftGold is true ?'gold':'')">Your left hand is <<if $NPCList[$lefttarget].chastity.penis.includes("chastity")>>teasing<<else>>stroking<</if>> <<combatpersons>> <<npcPenisSimple $lefttarget>><<if $NPCList[$lefttarget].chastity.penis.includes("chastity")>> through <<his>> $NPCList[$lefttarget].chastity.penis<</if>> with your $currentSexToyLeft.name.</span> <<case "strokerOtherPenisFuck">> <<set _leftOptions to "strokerOtherPenisFuck">> <span @class="($lastOptions.left isnot _leftOptions or _leftGold is true ?'gold':'')">Your left hand fucks <<combatpersons>> <<npcPenisSimple $lefttarget>> with the $currentSexToyLeft.name.</span> <<case "struggle">> <<set $_changetype to true>><<leftActionInitStruggle>> <<case "swarmgrappled">> <<set $_changetype to true>><<leftActionInitSwarm>> <<case "mechgrappled">> <<set $_changetype to true>><<leftActionInitMachine>> <<default>> <<set $_changetype to true>><<leftActionInitTentacle>> <</switch>> <<if $_changetype isnot true>> <<if $lastOptions.left isnot _leftOptions>> <<set _leftGold to true>> <</if>> <<leftActions>> <<if Object.keys(_leftaction).length gt 0>> <<assignCombatDefaults "left" _args[0]>> <<generateCombatAction _leftaction "leftaction">> /*Checks/Difficulty*/ <<if $options.combatControls.includes("ists")>> <div id="leftactionDifficulty"> <<leftactionDifficulty>> </div> <</if>> <</if>> <<set $lastOptions.left to clone(_leftOptions)>> <</if>> <</widget>> <<widget "leftactionDifficulty">> <<if _args[0] is undefined>> <<set _diffAction to $leftaction>> <<else>> <<set _diffAction to _args[0]>> <</if>> <<switch _diffAction>> <<case "leftwork" "leftclit">><<handdifficulty>> <<case "leftplay" "leftgrab">><<handdifficulty>> <<combatpromiscuous3>> <<case "handedge">> <<combatpromiscuous4>> <<case "steal">><<skulduggerydifficulty>><<combatcrime "petty">> <<case "spray">>Remaining: $spray / $spraymax <<case "lefthandholdnew">><<handholdingvirginitywarning>><<NPCvirginitywarning $NPCList[$lefttarget].fullDescription "handholding">> <<case "leftUndressOther">> <<if Object.keys(_undressLeftTargets).length gt 1>> <<listbox "$undressLeftTarget">> <<optionsfrom _undressLeftTargets>> <</listbox>> <<handdifficulty>> <<combatpromiscuous2>> <</if>> <<case "leftmasturbatepussy">> <<combatpromiscuous2>> <<case "leftmasturbatepenis">> <<combatpromiscuous2>> <<case "leftmasturbateanus">> <<combatpromiscuous3>> <<case "pickupSexToy">> <<if Object.keys(_itemsLeft).length gte 1>> <<listbox "$selectedItemLeft" autoselect>> <<optionsfrom _itemsLeft>> <</listbox>> <</if>> <<combatpromiscuous3>> <<case "handguide">> <<if Object.keys(_handGuideOptions).length gt 0>> <<listbox "$handGuideLeft" autoselect>> <<optionsfrom _handGuideOptions>> <</listbox>> <</if>> <<handdifficulty>> <<combatpromiscuous2>> <<case "peniscondom">><<handdifficulty>> <<case "penisremovecondom">><<handdifficulty>> <<case "npcremovecondom">><<handdifficulty>> <<if $consensual is 0 and playerPregnancyPossibleWith($NPCList[$lefttarget])>><<combatpromiscuous6>><</if>> <</switch>> <</widget>> <<widget "leftActions">> /*Generate Actions*/ <<set _leftaction to {}>> <<if $position is "stalk">> <<if $leftarm isnot "bound">> <<set _leftaction["Clench"] to "clench">> <<set _leftaction["Fold"] to "fold">> <<leftFixAndCoverActions>> <<leftcoverface>> <<left_pursuit_grab>> <</if>> <<else>> <<switch _leftOptions>> <<case "free">> <<set _leftaction["Rest"] to "rest">> <<leftdefault>> <<leftgrabnew>> <<leftplaynew>> <<combatMasturbate "left">> <<applyLube "left">> <<leftclothesnew>> <<removeButtplug "left">> <<leftspraynew>> <<leftstealnew>> <<leftpenwhacknew>> <<combathandhold "lefthand">> <<leftFixAndCoverActions>> <<leftchoke>> <<leftCondom>> <<leftNPCCondom>> <<leftshacklewhack>> <<lefthypnosiswhack>> <<handsstrugglefreebodypart "left">> <<leftUndressOther>> <<leftdildowhack>> <<pickupSexToy "left">> <<leftcamerapose>> <<lefthandpull>> <<case "handheld">> <<if $consensual is 1>> <<set _leftaction["Keep holding"] to "lefthandholdkeep">> <</if>> <<combathandguide "left">> <<set _leftaction["Stop"] to "lefthandholdstop">> <<case "penis">> <<if $NPCList[$lefttarget].chastity.penis.includes("chastity")>> <<set _leftaction["Tease " + $NPCList[$lefttarget].pronouns.him] to "leftwork">> <<else>> <<set _leftaction["Work " + $NPCList[$lefttarget].pronouns.his + " shaft"] to "leftwork">> <<if ($consensual is 0 or ($enemytype is "man" ? $promiscuity : $deviancy) gte 55 or $promiscuityIgnore) and currentSkillValue("handskill") gte 800>> <<set _leftaction["Edge"] to "handedge">> <</if>> <</if>> <<set _leftaction["Stop"] to "leftstoppenis">> <<case "grappled">> <<set _leftaction["Rest"] to "rest">> <<set _leftaction["Struggle"] to "leftstruggle">> <<case "bothBound">> <<case "pussy">> <<if $NPCList[$lefttarget].chastity.vagina.includes("chastity")>> <<set _leftaction["Tease " + $NPCList[$lefttarget].pronouns.him] to "leftclit">> <<else>> <<set _leftaction["Rub " + $NPCList[$lefttarget].pronouns.his + " clit"] to "leftclit">> <<if ($consensual is 0 or ($enemytype is "man" ? $promiscuity : $deviancy) gte 55 or $promiscuityIgnore) and currentSkillValue("handskill") gte 800>> <<set _leftaction["Edge"] to "handedge">> <</if>> <</if>> <<set _leftaction["Stop"] to "leftothervaginastop">> <<case "coverVagina">> <<set _leftaction["Keep covering"] to "leftcovervagina">> <<set _leftaction["Stop"] to "leftstopvagina">> <<case "coverPenis">> <<set _leftaction["Keep covering"] to "leftcoverpenis">> <<set _leftaction["Stop"] to "leftstopcoverpenis">> <<case "coverAss">> <<set _leftaction["Keep covering"] to "leftcoveranus">> <<set _leftaction["Stop"] to "leftstopanus">> <<case "behind">> <<set _leftaction["Keep behind"] to "behind">> <<set _leftaction["Stop"] to "stopbehind">> <<case "orgasm">> <<set _leftaction["Fold"] to "leftfold">> <<set _leftaction["Grip"] to "leftgrip">> <<case "pain">> <<set _leftaction["Struggle"] to "leftstruggleweak">> <<set _leftaction["Protect"] to "leftprotect">> <<case "unreal">> <<set _leftaction["Poke yourself"] to "leftpoke">> <<set _leftaction["Keep your arms out of the way"] to "leftcurl">> <<case "possessed">> <<set _leftaction["Accept it"] to "leftacceptW">> <<set _leftaction["Hold it still"] to "leftresistW">> <<case "possessedBound">> <<set _leftaction["Struggle"] to "leftstruggleW">> <<set _leftaction["Hold it still"] to "leftstillW">> <<case "heldSexToy">> <<heldSexToy "left">> <<case "dildoSelfPussyEntrance">> <<dildoSelfPussyEntrance "left">> <<case "dildoSelfPussy">> <<set _leftaction["Fuck your pussy with your "+$currentSexToyLeft.name] to "dildoSelfPussy">> <<set _leftaction["Drop your " + $currentSexToyLeft.name] to "dildoDrop">> <<case "dildoSelfAnusEntrance">> <<if $settings.analEnabled>> <<dildoSelfAnusEntrance "left">> <</if>> <<case "dildoSelfAnus">> <<set _leftaction["Fuck your ass with your "+$currentSexToyLeft.name] to "dildoSelfAnus">> <<set _leftaction["Drop your " + $currentSexToyLeft.name] to "dildoDrop">> <<case "strokerSelfPenisEntrance">> <<strokerSelfPenisEntrance "left">> <<case "strokerSelfPenis">> <<set _leftaction["Fuck your penis with your "+$currentSexToyLeft.name] to "strokerSelfPenis">> <<set _leftaction["Drop your " + $currentSexToyLeft.name] to "strokerDrop">> <<case "dildoOtherPussyTease">> <<if $NPCList[$lefttarget].vagina is 0>> /*<<set _leftaction["Tease " + $NPCList[$righttarget].pronouns.his + " pussy"] to "dildoOtherPussyTease">>*/ /* Kept in case someone wants to make this happen in the future */ <<set _leftaction["Fuck " + $NPCList[$lefttarget].pronouns.his + " pussy with your "+$currentSexToyLeft.name] to "dildoOtherPussyFuck">> <</if>> <<set _leftaction["Drop your " + $currentSexToyLeft.name] to "dildoDropLeft">> <<case "dildoOtherPussyFuck">> <<if $NPCList[$lefttarget].vagina is "leftDildo">> <<set _leftaction["Fuck " + $NPCList[$lefttarget].pronouns.his + " pussy with your "+$currentSexToyLeft.name] to "dildoOtherPussyFuck">> <</if>> <<set _leftaction["Drop your " + $currentSexToyLeft.name] to "dildoDropLeft">> <<case "dildoOtherAnusTease">> <<if $NPCList[$lefttarget].vagina is 0 or $NPCList[$lefttarget].penis is 0>> <<set _leftaction["Fuck " + $NPCList[$lefttarget].pronouns.his + " ass with your "+$currentSexToyLeft.name] to "dildoOtherAnusFuck">> <</if>> <<set _leftaction["Drop your " + $currentSexToyLeft.name] to "dildoDropAnusLeft">> <<case "dildoOtherAnusFuck">> <<if $NPCList[$lefttarget].vagina is "leftDildoAnus" or $NPCList[$lefttarget].penis is "leftDildoAnus">> <<set _leftaction["Fuck " + $NPCList[$lefttarget].pronouns.his + " ass with your "+$currentSexToyLeft.name] to "dildoOtherAnusFuck">> <</if>> <<set _leftaction["Drop your " + $currentSexToyLeft.name] to "dildoDropAnusLeft">> <<case "strokerOtherPenisTease">> <<if $NPCList[$lefttarget].penis is 0 or $NPCList[$lefttarget].penis is "leftStroker">> <<set _leftaction["Fuck " + $NPCList[$lefttarget].pronouns.his + " penis with your "+$currentSexToyLeft.name] to "strokerOtherPenisFuck">> <</if>> <<set _leftaction["Drop your " + $currentSexToyLeft.name] to "strokerDropLeft">> <<case "strokerOtherPenisFuck">> <<if $NPCList[$lefttarget].penis is "leftStroker">> <<set _leftaction["Fuck " + $NPCList[$lefttarget].pronouns.his + " penis with your "+$currentSexToyLeft.name] to "strokerOtherPenisFuck">> <</if>> <<set _leftaction["Drop your " + $currentSexToyLeft.name] to "strokerDropLeft">> <</switch>> <</if>> <</widget>> <<widget "rightActionInit">> <<switch $rightarm>> <<case 0>> <<if $orgasmdown gte 1>> <<set _rightOptions to "orgasm">> <span class="lewd">Your right arm is free, but you can't stop the spasms.</span> <<elseif $pain gte 100 and $willpowerpain is 0 and !$possessed>> <<set _rightOptions to "pain">> <span class="red">Your right arm is free, but hurts to move.</span> <<elseif $dissociation gte 2 and !$possessed>> <<set _rightOptions to "unreal">> <span class="pink">Your right arm is free, but doesn't feel real.</span> <<elseif $possessed>> <<set _rightOptions to "possessed">> Your right arm is free, <span class="pink">but not under your control.</span> <<else>> <<if _targetYourself is true and _targetnumber gt 1>> <<set _targetlistarms["Yourself"] to "self">> <</if>> <<if not $options.combatControls.includes("adio") and _targetnumber gt 1 and $stealstateright is undefined>> <<targetListBox "right" _targetlistarms>> <</if>> <<set _rightOptions to "free">> <span @class="($lastOptions.right isnot _rightOptions or _rightGold is true ?'gold':'')">Your right hand is free.</span> <<if $options.combatControls.includes("adio") and _targetnumber gt 1 and $stealstateright is undefined>> <<targetListBox "right" _targetlistarms>> <</if>> <<if _targetnumber is 1>> <<set $righttarget to _firsttarget>> <</if>> <</if>> <<case "penis">> <<set _rightOptions to "penis">> <span @class="($lastOptions.right isnot _rightOptions or _rightGold is true ?'gold':'')"><<selectNpcWithPartInPosition "penis" "rightarm">><<set $righttarget to $index>>Your right hand is <<if $NPCList[$index].chastity.penis.includes("chastity")>>teasing<<else>>holding<</if>> <<personselect $index>><<combatpersons>> $NPCList[$index].penisdesc<<if $NPCList[$index].chastity.penis.includes("chastity")>> through <<his>> $NPCList[$index].chastity.penis<</if>>.</span> <<case "grappled">> <<if $orgasmdown gte 1>> <<set _rightOptions to "bothBound">> <span class="lewd">Your right arm jerks against their grip.</span> <<elseif $pain gte 100 and $willpowerpain is 0>> <<set _rightOptions to "bothBound">> <span class="red">Your right arm is held in a painful grip.</span> <<elseif $dissociation gte 2>> <<set _rightOptions to "bothBound">> <span class="pink">Your right arm lies limp in their grip.</span> <<elseif $possessed>> <<set _rightOptions to "possessedBound">> Your right arm writhes in their grip, unbidden. <<else>> <<set _rightOptions to "grappled">> <span @class="($lastOptions.right isnot _rightOptions or _rightGold is true ?'gold':'')">Your right arm is being held down.</span> <</if>> <<case "bound">> <<set _rightOptions to "bothBound">> <<if $orgasmdown gte 1>> <span class="lewd">Your right arm jerks against its bonds.</span> <<elseif $pain gte 100 and $willpowerpain is 0>> <span class="red">Your right arm is held in a painful bind.</span> <<elseif $dissociation gte 2>> <span class="pink">Your right arm lies limp in its bonds.</span> <<elseif $possessed>> Your right arm writhes in its bounds, unbidden. <<else>> <span @class="($lastOptions.right isnot _rightOptions or _rightGold is true ?'gold':'')">Your arms are helplessly bound.</span> <</if>> <<case "othervagina">> <<set _rightOptions to "pussy">> <span @class="($lastOptions.right isnot _rightOptions or _rightGold is true ?'gold':'')"><<selectNpcWithPartInPosition "vagina" "rightarm">><<set $righttarget to $index>>Your right hand is <<if $NPCList[$index].chastity.vagina.includes("chastity")>>teasing<<else>>stroking<</if>> <<combatpersons>> pussy<<if $NPCList[$index].chastity.vagina.includes("chastity")>> through <<his>> $NPCList[$index].chastity.vagina<</if>>.</span> <<case "vagina">> <<set _rightOptions to "coverVagina">> <span @class="($lastOptions.right isnot _rightOptions or _rightGold is true ?'gold':'')">Your right hand is protecting your <<pussy>>.</span> <<case "coverpenis">> <<set _rightOptions to "coverPenis">> <span @class="($lastOptions.right isnot _rightOptions or _rightGold is true ?'gold':'')">Your right hand is protecting your <<penis>>.</span> <<case "anus">> <<set _rightOptions to "coverAss">> <span @class="($lastOptions.right isnot _rightOptions or _rightGold is true ?'gold':'')">Your right hand is protecting your <<bottom>>.</span> <<case "behind">> <<set _rightOptions to "behind">> <span @class="($lastOptions.right isnot _rightOptions or _rightGold is true ?'gold':'')">Your right hand is behind your back.</span> <<case "handheld">> <<set _rightOptions to "handheld">> <span @class="($lastOptions.right isnot _rightOptions or _rightGold is true ?'gold':'')">Your right hand is being held.</span> <<case "heldSexToy">> <<if _targetYourself is true and _targetnumber gt 1>> <<set _targetlistarms["Yourself"] to "self">> <</if>> <<if not $options.combatControls.includes("adio") and _targetnumber gt 1>> <<targetListBox "right" _targetlistarms>> <</if>> <<set _rightOptions to "heldSexToy">> <span @class="($lastOptions.right isnot _rightOptions or _rightGold is true ?'gold':'')">Your right hand is holding the $currentSexToyRight.name.</span> <<if $options.combatControls.includes("adio") and _targetnumber gt 1>> <<targetListBox "right" _targetlistarms>> <</if>> <<if _targetnumber is 1>> <<set $righttarget to _firsttarget>> <</if>> <<case "dildoSelfPussyEntrance">> <<set _rightOptions to "dildoSelfPussyEntrance">> <span @class="($lastOptions.right isnot _rightOptions or _rightGold is true ?'gold':'')">Your right hand is holding the <<print $currentSexToyRight.name>> above your <<pussy>>.</span> <<case "dildoSelfPussy">> <<set _rightOptions to "dildoSelfPussy">> <span @class="($lastOptions.right isnot _rightOptions or _rightGold is true ?'gold':'')">Your right hand fucks your <<pussy>> with the <<print $currentSexToyRight.name>>.</span> <<case "dildoSelfAnusEntrance">> <<set _rightOptions to "dildoSelfAnusEntrance">> <span @class="($lastOptions.right isnot _rightOptions or _rightGold is true ?'gold':'')">Your right hand is holding the <<print $currentSexToyRight.name>> above your anus.</span> <<case "dildoSelfAnus">> <<set _rightOptions to "dildoSelfAnus">> <span @class="($lastOptions.right isnot _rightOptions or _rightGold is true ?'gold':'')">Your right hand fucks your <<bottom>> with the <<print $currentSexToyRight.name>>.</span> <<case "strokerSelfPenisEntrance">> <<set _rightOptions to "strokerSelfPenisEntrance">> <span @class="($lastOptions.right isnot _rightOptions or _rightGold is true ?'gold':'')">Your right hand is holding the <<print $currentSexToyRight.name>> above your <<penisSimple>>.</span> <<case "strokerSelfPenis">> <<set _rightOptions to "strokerSelfPenis">> <span @class="($lastOptions.right isnot _rightOptions or _rightGold is true ?'gold':'')">Your right hand fucks your <<penisSimple>> with the <<print $currentSexToyRight.name>></span> <<case "dildoOtherPussyTease">> <<set _rightOptions to "dildoOtherPussyTease">> <span @class="($lastOptions.right isnot _rightOptions or _rightGold is true ?'gold':'')">Your right hand is <<if $NPCList[$righttarget].chastity.vagina.includes("chastity")>>teasing<<else>>stroking<</if>> <<combatpersons>> pussy<<if $NPCList[$righttarget].chastity.vagina.includes("chastity")>> through <<his>> $NPCList[$righttarget].chastity.vagina<</if>> with your $currentSexToyRight.name.</span> <<case "dildoOtherPussyFuck">> <<set _rightOptions to "dildoOtherPussyFuck">> <span @class="($lastOptions.right isnot _rightOptions or _rightGold is true ?'gold':'')"><<selectNpcWithPartInPosition "vagina" "rightDildo">><<set $righttarget to $index>>Your right hand fucks <<combatpersons>> pussy with the $currentSexToyRight.name.</span> <<case "dildoOtherAnusTease">> <<set _rightOptions to "dildoOtherAnusTease">> <span @class="($lastOptions.right isnot _rightOptions or _rightGold is true ?'gold':'')">Your right hand is <<if $NPCList[$righttarget].chastity.vagina.includes("chastity")>>teasing<<else>>stroking<</if>> <<combatpersons>> ass<<if $NPCList[$righttarget].chastity.vagina.includes("chastity")>> through <<his>> $NPCList[$righttarget].chastity.vagina<</if>> with your $currentSexToyRight.name.</span> <<case "dildoOtherAnusFuck">> <<set _rightOptions to "dildoOtherAnusFuck">> <span @class="($lastOptions.right isnot _rightOptions or _rightGold is true ?'gold':'')"><<selectNpcWithPartInPositionAnus "rightDildoAnus">><<set $righttarget to $index>>Your right hand fucks <<combatpersons>> ass with the $currentSexToyRight.name.</span> <<case "strokerOtherPenisTease">> <<set _rightOptions to "strokerOtherPenisTease">> <span @class="($lastOptions.right isnot _rightOptions or _rightGold is true ?'gold':'')">Your right hand is <<if $NPCList[$righttarget].chastity.penis.includes("chastity")>>teasing<<else>>stroking<</if>> <<combatpersons>> <<npcPenisSimple $righttarget>><<if $NPCList[$righttarget].chastity.penis.includes("chastity")>> through <<his>> $NPCList[$righttarget].chastity.penis<</if>> with your $currentSexToyRight.name.</span> <<case "strokerOtherPenisFuck">> <<set _rightOptions to "strokerOtherPenisFuck">> <span @class="($lastOptions.right isnot _rightOptions or _rightGold is true ?'gold':'')">Your right hand fucks <<combatpersons>> <<npcPenisSimple $righttarget>> with the $currentSexToyRight.name.</span> <<case "struggle">> <<set $_changetype to true>><<rightActionInitStruggle>> <<case "swarmgrappled">> <<set $_changetype to true>><<rightActionInitSwarm>> <<case "mechgrappled">> <<set $_changetype to true>><<rightActionInitMachine>> <<default>> <<set $_changetype to true>><<rightActionInitTentacle>> <</switch>> <<if $lastOptions.right isnot _rightOptions>> <<set _rightGold to true>> <</if>> <<if $_changetype isnot true>> <<rightActions>> <<if Object.keys(_rightaction).length gt 0>> <<assignCombatDefaults "right" _args[0]>> <<generateCombatAction _rightaction "rightaction">> /*Checks/Difficulty*/ <<if $options.combatControls.includes("ists")>> <div id="rightactionDifficulty"> <<rightactionDifficulty>> </div> <</if>> <</if>> <<set $lastOptions.right to clone(_rightOptions)>> <</if>> <</widget>> <<widget "rightactionDifficulty">> <<if _args[0] is undefined>> <<set _diffAction to $rightaction>> <<else>> <<set _diffAction to _args[0]>> <</if>> <<switch _diffAction>> <<case "rightwork" "rightclit">><<handdifficulty>> <<case "rightplay" "rightgrab">><<handdifficulty>> <<combatpromiscuous3>> <<case "handedge">> <<combatpromiscuous4>> <<case "steal">><<skulduggerydifficulty>><<combatcrime "petty">> <<case "spray">>Remaining: $spray / $spraymax <<case "righthandholdnew">><<handholdingvirginitywarning>><<NPCvirginitywarning $NPCList[$righttarget].fullDescription "handholding">> <<case "rightUndressOther">> <<if Object.keys(_undressRightTargets).length gt 1>> <<listbox "$undressRightTarget">> <<optionsfrom _undressRightTargets>> <</listbox>> <<handdifficulty>> <<combatpromiscuous2>> <</if>> <<case "rightmasturbatepussy">> <<combatpromiscuous2>> <<case "rightmasturbatepenis">> <<combatpromiscuous2>> <<case "rightmasturbateanus">> <<combatpromiscuous3>> <<case "pickupSexToy">> <<if Object.keys(_itemsRight).length gte 1>> <<listbox "$selectedItemRight" autoselect>> <<optionsfrom _itemsRight>> <</listbox>> <</if>> <<combatpromiscuous3>> <<case "handguide">> <<if Object.keys(_handGuideOptions).length gt 0>> <<listbox "$handGuideRight" autoselect>> <<optionsfrom _handGuideOptions>> <</listbox>> <</if>> <<handdifficulty>> <<combatpromiscuous2>> <<case "peniscondom">><<handdifficulty>> <<case "penisremovecondom">><<handdifficulty>> <<case "npcremovecondom">><<handdifficulty>> <<if $consensual is 0 and playerPregnancyPossibleWith($NPCList[$righttarget])>><<combatpromiscuous6>><</if>> <</switch>> <</widget>> <<widget "rightActions">> /*Generate Actions*/ <<set _rightaction to {}>> <<if $position is "stalk">> <<if $rightarm isnot "bound">> <<set _rightaction["Clench"] to "clench">> <<set _rightaction["Fold"] to "fold">> <<rightFixAndCoverActions>> <<rightcoverface>> <<right_pursuit_grab>> <</if>> <<else>> <<switch _rightOptions>> <<case "free">> <<set _rightaction["Rest"] to "rest">> <<rightdefault>> <<rightgrabnew>> <<rightplaynew>> <<combatMasturbate "right">> <<applyLube "right">> <<rightclothesnew>> <<removeButtplug "right">> <<rightspraynew>> <<rightstealnew>> <<rightpenwhacknew>> <<combathandhold "righthand">> <<rightFixAndCoverActions>> <<rightchoke>> <<rightCondom>> <<rightNPCCondom>> <<rightshacklewhack>> <<righthypnosiswhack>> <<handsstrugglefreebodypart "right">> <<rightUndressOther>> <<rightdildowhack>> <<pickupSexToy "right">> <<rightcamerapose>> <<righthandpull>> <<case "handheld">> <<if $consensual is 1>> <<set _rightaction["Keep holding"] to "righthandholdkeep">> <</if>> <<combathandguide "right">> <<set _rightaction["Stop"] to "righthandholdstop">> <<case "penis">> <<if $NPCList[$righttarget].chastity.penis.includes("chastity")>> <<set _rightaction["Tease " + $NPCList[$righttarget].pronouns.him] to "rightwork">> <<else>> <<set _rightaction["Work " + $NPCList[$righttarget].pronouns.his + " shaft"] to "rightwork">> <<if ($consensual is 0 or ($enemytype is "man" ? $promiscuity : $deviancy) gte 55 or $promiscuityIgnore) and currentSkillValue("handskill") gte 800>> <<set _rightaction["Edge"] to "handedge">> <</if>> <</if>> <<set _rightaction["Stop"] to "rightstoppenis">> <<case "grappled">> <<set _rightaction["Rest"] to "rest">> <<set _rightaction["Struggle"] to "rightstruggle">> <<case "bothBound">> <<case "pussy">> <<if $NPCList[$righttarget].chastity.vagina.includes("chastity")>> <<set _rightaction["Tease " + $NPCList[$righttarget].pronouns.him] to "rightclit">> <<else>> <<set _rightaction["Rub " + $NPCList[$righttarget].pronouns.his + " clit"] to "rightclit">> <<if ($consensual is 0 or ($enemytype is "man" ? $promiscuity : $deviancy) gte 55 or $promiscuityIgnore) and currentSkillValue("handskill") gte 800>> <<set _rightaction["Edge"] to "handedge">> <</if>> <</if>> <<set _rightaction["Stop"] to "rightothervaginastop">> <<case "coverVagina">> <<set _rightaction["Keep covering"] to "rightcovervagina">> <<set _rightaction["Stop"] to "rightstopvagina">> <<case "coverPenis">> <<set _rightaction["Keep covering"] to "rightcoverpenis">> <<set _rightaction["Stop"] to "rightstopcoverpenis">> <<case "coverAss">> <<set _rightaction["Keep covering"] to "rightcoveranus">> <<set _rightaction["Stop"] to "rightstopanus">> <<case "behind">> <<set _rightaction["Keep behind"] to "behind">> <<set _rightaction["Stop"] to "stopbehind">> <<case "orgasm">> <<set _rightaction["Fold"] to "rightfold">> <<set _rightaction["Grip"] to "rightgrip">> <<case "pain">> <<set _rightaction["Struggle"] to "rightstruggleweak">> <<set _rightaction["Protect"] to "rightprotect">> <<case "unreal">> <<set _rightaction["Poke yourself"] to "rightpoke">> <<set _rightaction["Keep your arms out of the way"] to "rightcurl">> <<case "possessed">> <<set _rightaction["Accept it"] to "rightacceptW">> <<set _rightaction["Hold it still"] to "rightresistW">> <<case "possessedBound">> <<set _rightaction["Struggle"] to "rightstruggleW">> <<set _rightaction["Hold it still"] to "rightstillW">> <<case "heldSexToy">> <<heldSexToy "right">> <<case "dildoSelfPussyEntrance">> <<dildoSelfPussyEntrance "right">> <<case "dildoSelfPussy">> <<set _rightaction["Fuck your pussy with your "+$currentSexToyRight.name] to "dildoSelfPussy">> <<set _rightaction["Drop your " + $currentSexToyRight.name] to "dildoDrop">> <<case "dildoSelfAnusEntrance">> <<if $settings.analEnabled>> <<dildoSelfAnusEntrance "right">> <</if>> <<case "dildoSelfAnus">> <<set _rightaction["Fuck your ass"] to "dildoSelfAnus">> <<set _rightaction["Drop your " + $currentSexToyRight.name] to "dildoDropAnus">> <<case "strokerSelfPenisEntrance">> <<strokerSelfPenisEntrance "right">> <<case "strokerSelfPenis">> <<set _rightaction["Fuck your penis with your "+$currentSexToyRight.name] to "strokerSelfPenis">> <<set _rightaction["Drop your " + $currentSexToyRight.name] to "strokerDrop">> <<case "dildoOtherPussyTease">> <<if $NPCList[$righttarget].vagina is 0>> /*<<set _rightaction["Tease " + $NPCList[$righttarget].pronouns.his + " pussy"] to "dildoOtherPussyTease">>*/ /* Kept in case someone wants to make this happen in the future. */ <<set _rightaction["Fuck " + $NPCList[$righttarget].pronouns.his + " pussy with your "+$currentSexToyRight.name] to "dildoOtherPussyFuck">> <</if>> <<set _rightaction["Drop your " + $currentSexToyRight.name] to "dildoDropRight">> <<case "dildoOtherPussyFuck">> <<if $NPCList[$righttarget].vagina is "rightDildo">> <<set _rightaction["Fuck " + $NPCList[$righttarget].pronouns.his + " pussy with your "+$currentSexToyRight.name] to "dildoOtherPussyFuck">> <</if>> <<set _rightaction["Drop your " + $currentSexToyRight.name] to "dildoDropRight">> <<case "dildoOtherAnusTease">> <<if $NPCList[$righttarget].vagina is 0 or $NPCList[$righttarget].penis is 0>> <<set _rightaction["Fuck " + $NPCList[$righttarget].pronouns.his + " ass with your "+$currentSexToyRight.name] to "dildoOtherAnusFuck">> <</if>> <<set _rightaction["Drop your " + $currentSexToyRight.name] to "dildoDropAnusRight">> <<case "dildoOtherAnusFuck">> <<if $NPCList[$righttarget].vagina is "rightDildoAnus" or $NPCList[$righttarget].penis is "rightDildoAnus">> <<set _rightaction["Fuck " + $NPCList[$righttarget].pronouns.his + " ass with your "+$currentSexToyRight.name] to "dildoOtherAnusFuck">> <</if>> <<set _rightaction["Drop your " + $currentSexToyRight.name] to "dildoDropAnusRight">> <<case "strokerOtherPenisTease">> <<if $NPCList[$righttarget].penis is 0 or $NPCList[$righttarget].penis is "rightStroker">> <<set _rightaction["Fuck " + $NPCList[$righttarget].pronouns.his + " penis with your "+$currentSexToyRight.name] to "strokerOtherPenisFuck">> <</if>> <<set _rightaction["Drop your " + $currentSexToyRight.name] to "strokerDropRight">> <<case "strokerOtherPenisFuck">> <<if $NPCList[$righttarget].penis is "rightStroker">> <<set _rightaction["Fuck " + $NPCList[$righttarget].pronouns.his + " penis with your "+$currentSexToyRight.name] to "strokerOtherPenisFuck">> <</if>> <<set _rightaction["Drop your " + $currentSexToyRight.name] to "strokerDropRight">> <</switch>> <</if>> <</widget>> <<widget "feetActionInit">> <<if $dissociation lte 1 and ($pain lt 100 or $willpowerpain is undefined or $possessed)>> <<switch $feetuse>> <<case 0>> <<if $possessed>> <<set _feetOptions to "possessed">> Your legs are free, <span class="pink">but you can't feel them beneath you.</span> <<elseif $orgasmdown gte 1>> <<set _feetOptions to "orgasm">> <span class="lewd">Your legs are free, but you can't stop the spasms.</span> <<else>> <<if _targetYourself is true and _targetnumber gt 1>> <<set _targetlistall["Yourself"] to "self">> <</if>> <<if not $options.combatControls.includes("adio") and _targetnumber gt 1>> <<if !(($leftleg is "grappled" and $rightleg is "grappled") or ($leftleg is "bound" and $rightleg is "bound"))>> <<targetListBox "feet" _targetlistall>> <</if>> <</if>> <<if $leftleg is 0 and $rightleg is 0>> <<set _feetOptions to "free">> <span @class="($lastOptions.feet isnot _feetOptions ?'gold':'')">Your legs are free.</span> <<elseif $leftleg is 0>> <<set _feetOptions to "leftFree">> <span @class="($lastOptions.feet isnot _feetOptions ?'gold':'')">Your left leg is free.</span> <<elseif $rightleg is 0>> <<set _feetOptions to "rightFree">> <span @class="($lastOptions.feet isnot _feetOptions ?'gold':'')">Your right leg is free.</span> <<elseif $leftleg is "grappled" and $rightleg is "grappled">> <<set _feetOptions to "grappled">> <span @class="($lastOptions.feet isnot _feetOptions ?'gold':'')">Your legs are entangled and forced apart, leaving you less able to protect your <<genitals>>.</span> <<elseif $leftleg is "bound" and $rightleg is "bound">> <<set _feetOptions to "bound">> <span @class="($lastOptions.feet isnot _feetOptions ?'gold':'')">Your legs are bound and forced apart, leaving you less able to protect your <<genitals>>.</span> <<else>> <<set _feetOptions to "free">> <span @class="($lastOptions.feet isnot _feetOptions or _feetGold is true ?'gold':'')">Your feet are free.</span> <</if>> <<if $options.combatControls.includes("adio") and _targetnumber gt 1 and _feetOptions.toLowerCase().includes("free")>> <<targetListBox "feet" _targetlistall>> <</if>> <<if _targetnumber is 1>> <<set $feettarget to _firsttarget>> <</if>> <</if>> <<case "penis">> <<set _feetOptions to "penis">> <span @class="($lastOptions.feet isnot _feetOptions or _feetGold is true ?'gold':'')"><<selectNpcWithPartInPosition "penis" "feet">><<set $feettarget to $index>>Your feet are <<if $NPCList[$feettarget].chastity.penis.includes("chastity")>>pressed against<<else>>holding<</if>> <<combatpersons>> <<npcPenis $feettarget>>.</span> <<case "othervagina">> <<set _feetOptions to "othervagina">> <span @class="($lastOptions.feet isnot _feetOptions or _feetGold is true ?'gold':'')"><<selectNpcWithPartInPosition "vagina" "feet">><<set $feettarget to $index>>Your feet are <<if $NPCList[$feettarget].chastity.vagina.includes("chastity")>>pressed against<<else>>holding back<</if>> <<combatpersons>> <<npcVagina $feettarget>>.</span> <<case "bound">> <<if $possessed>> Your legs thrash in their shackles, unbidden. <<elseif $orgasmdown gte 1>> <span class="lewd">Your legs thrash against their bindings.</span> <<else>> <<set _feetOptions to "bound">> <span @class="($lastOptions.feet isnot _feetOptions or _feetGold is true ?'gold':'')">Your legs are bound.</span> <</if>> <<case "walk">> <<set _feetOptions to "walk">> <span @class="($lastOptions.feet isnot _feetOptions or _feetGold is true ?'gold':'')">You are walking.</span> <<case "strut">> <<set _feetOptions to "strut">> <span @class="($lastOptions.feet isnot _feetOptions or _feetGold is true ?'gold':'')">You are strutting.</span> <<case "run">> <<set _feetOptions to "run">> <span @class="($lastOptions.feet isnot _feetOptions or _feetGold is true ?'gold':'')">You are running.</span> <<case "none">> <<set _feetOptions to "unusable">> <span @class="($lastOptions.feet isnot _feetOptions or _feetGold is true ?'gold':'')">Your feet are free but unusable in this position.</span> <<case "mechgrappled">> <<set $_changetype to true>><<feetActionInitMachine>> <<case "legLock">> <<if $orgasmdown gte 1>> <<set _feetOptions to "orgasmLegLock">> <span class="lewd"><<if $position is "missionary">>Your legs clench around<<else>>You push back against<</if>> $NPCList[$leglocktarget].pronouns.him even harder as you climax.</span> <<else>> <<set _feetOptions to "legLocked">> <span @class="($lastOptions.feet isnot _feetOptions or _feetGold is true ?'gold':'')">Your legs are locked around <<personselect $leglocktarget>><<combatperson>>.</span> <</if>> <<default>> <<set $_changetype to true>><<feetActionInitTentacle>> <</switch>> <<if $lastOptions.feet isnot _feetOptions>> <<set _feetGold to true>> <</if>> <<if $_changetype isnot true>> <<feetActions>> <<if Object.keys(_feetaction).length gt 0>> <<assignCombatDefaults "feet" _args[0]>> <<generateCombatAction _feetaction "feetaction">> /*Checks/Difficulty*/ <<if $options.combatControls.includes("ists")>> <div id="feetactionDifficulty"> <<feetactionDifficulty>> </div> <</if>> <</if>> <<set $lastOptions.feet to clone(_feetOptions)>> <</if>> <<else>> <<timed 100ms>> <<run jQuery("#feetaction").remove();>> <</timed>> <</if>> <</widget>> <<widget "feetactionDifficulty">> <<if _args[0] is undefined>> <<set _diffAction to $feetaction>> <<else>> <<set _diffAction to _args[0]>> <</if>> <<switch _diffAction>> <<case "grab" "vaginagrab">><<feetdifficulty>><<combatpromiscuous3>> <<case "legLock">><<thighdifficulty>><<if $consensual is 0>><<combatpromiscuous6>><<else>><<combatpromiscuous3>><</if>> <<case "legLocked">><<if _feetOptions isnot "orgasmLegLock">><<thighdifficulty>><</if>> <<case "run">><<if $NPCList[0].legs is "run">><<stalk_athletics_difficulty>><</if>> <<case "hide">><<if $NPCList[0].state is "stalk">><<stalk_skulduggery_difficulty>><</if>> <<case "ambush">><<if $NPCList[0].state is "stalk">><<stalk_skulduggery_difficulty>><</if>> <</switch>> <</widget>> <<widget "feetActions">> /*Generate Actions*/ <<set _feetaction to {}>> <<if $position is "stalk">> <<feet_walk>> <<feet_strut>> <<feet_run>> <<feet_hobble>> <<feet_stand>> <<feet_hide>> <<feet_confront>> <<feet_ambush>> <<else>> <<set _feetaction["Rest"] to "rest">> <<switch _feetOptions>> <<case "free">> <<feetgrabnew>> <<feetKick>> <<feetshoes>> <<feetsocks>> <<legLock>> <<case "leftfree" "rightFree">> <<feetgrabnew>> <<feetKick>> <<case "penis">> <<feetGrabRub>> <<case "othervagina">> <<feetOthervagina>> <<case "legLocked">> <<run delete _feetaction["Rest"]>> <<legLocked>> <<case "orgasm">> <<run delete _feetaction["Rest"]>> <<set _feetaction["Hold still"] to "feetHold">> <<set _feetaction["Curl toes"] to "feetCurl">> <<legLock>> <<case "orgasmLegLock">> <<run delete _feetaction["Rest"]>> <<set _feetaction["No escape!"] to "legLocked">> <<case "possessed">> <<set _feetaction to {}>> <<set _feetaction["Accept it"] to "feetacceptW">> <<set _feetaction["Hold it still"] to "feetresistW">> <</switch>> <</if>> <</widget>> <<widget "mouthActionInit">> <<if $robinRentEvent is 1 and ["pay","still"].includes($combatPhase)>> <<set _mouthGold to true>> <</if>> <<if $orgasmdown gte 1>> <<if $mouthuse is 0>> <<set _mouthOptions to "orgasm">> <span class="lewd">Your mouth is free, but involuntary moans and cries prevent speaking.</span> <<else>> <<timed 100ms>> <<run jQuery("#mouthaction").remove();>> <</timed>> <</if>> <<elseif $pain gte 100 and $willpowerpain is 0 and !$possessed>> <<if $mouthuse is 0>> <<set _mouthOptions to "pain">> <span class="red">Your mouth is free, but involuntary sobs and cries prevent speaking.</span> <<else>> <<timed 100ms>> <<run jQuery("#mouthaction").remove();>> <</timed>> <</if>> <<elseif $dissociation gte 2 and !$possessed>> <<if $mouthuse is 0>> <<set _mouthOptions to "unreal">> <span class="pink">Your mouth is free, but you don't know why.</span> <<else>> <<timed 100ms>> <<run jQuery("#mouthaction").remove();>> <</timed>> <</if>> <<elseif $possessed>> <<if $mouthuse is 0>> <<set _mouthOptions to "possessed">> Your mouth is free, <span class="pink">but unfamiliar words spill from your tongue.</span> <<elseif $mouthuse is "lefthand" or $mouthuse is "righthand">> <<set _mouthOptions to "possessedBound">> Your mouth is blocked, muffling the foreign words that well up within you. <<else>> <<timed 100ms>> <<run jQuery("#mouthaction").remove();>> <</timed>> <</if>> <<else>> <<switch $mouthuse>> <<case 0>> <<if not $options.combatControls.includes("adio") and _targetnumber gt 1>> <<targetListBox "mouth" _targetlist>> <</if>> <<set _mouthOptions to "free">> <span @class="($lastOptions.mouth isnot _mouthOptions or _mouthGold is true ?'gold':'')">Your mouth is free.</span> <<if $combat_silenced>> <span class="blue">Your voice is gone.</span> <</if>> <<if $options.combatControls.includes("adio") and _targetnumber gt 1>> <<targetListBox "mouth" _targetlist>> <</if>> <<if _targetnumber is 1>> <<set $mouthtarget to _firsttarget>> <</if>> <<case "othervagina">> <<set _mouthOptions to "othervagina">><<selectNpcWithPartInPosition "vagina" "mouth">><<set $mouthtarget to $index>> <span @class="($lastOptions.mouth isnot _mouthOptions or _mouthGold is true ?'gold':'')"><<combatPersons>> pussy presses against your lips.</span> <<case "kiss">> <<set _mouthOptions to "kiss">> <<switch $mouthstate>> <<case "kissentrance">> <<selectNpcWithPartInPosition "mouth" "kissentrance">><<set $mouthtarget to $index>> <span @class="($lastOptions.mouth isnot _mouthOptions or _mouthGold is true ?'gold':'')">Your mouth is about to be pressed by <<combatpersons>>.</span> <<if $player.virginity.kiss is true>><span class="red">Your first kiss is about to be taken.</span><</if>> <<case "kissimminent">> <<selectNpcWithPartInPosition "mouth" "kissimminent">><<set $mouthtarget to $index>> <span @class="($lastOptions.mouth isnot _mouthOptions or _mouthGold is true ?'gold':'')">Your mouth is pressed by <<combatpersons>>.</span> <<case "kiss">> <<selectNpcWithPartInPosition "mouth" "kiss">><<set $mouthtarget to $index>> <span @class="($lastOptions.mouth isnot _mouthOptions or _mouthGold is true ?'gold':'')">Your mouth is engulfed by <<combatpersons>>.</span> <</switch>> <<case "facesit">> <<switch $mouthstate>> <<case "vagina">> <<set _mouthOptions to "facesit">><<selectNpcWithPartInPosition "vagina" "facesit">> <<case "anal">> <<set _mouthOptions to "otheranus">><<selectNpcWithPartInPosition "vagina" "facesitanal">> <</switch>><<set $mouthtarget to $index>> <span @class="($lastOptions.mouth isnot _mouthOptions or _mouthGold is true ?'gold':'')"><<facesitFlavorText>></span> <<case "gagged">> <<set _mouthOptions to "gagged">> <span @class="($lastOptions.mouth isnot _mouthOptions or _mouthGold is true ?'gold':'')">Your mouth is helplessly gagged.</span> <<case "tentacle">> <<set $_changetype to true>><<mouthActionInitTentacle>> <<case "struggle">> <<set $_changetype to true>><<mouthActionInitStruggle>> <<default>> <<switch $mouthstate>> <<case "entrance">> <<set _mouthOptions to "penisEntrance">> <span @class="($lastOptions.mouth isnot _mouthOptions or _mouthGold is true ?'gold':'')"><<selectNpcWithPartInPosition "penis" "mouthentrance">><<set $mouthtarget to $index>><<combatPersons>> <<npcPenis $index>> hovers in front of your mouth.</span> <<case "imminent">> <<set _mouthOptions to "penisImminent">> <span @class="($lastOptions.mouth isnot _mouthOptions or _mouthGold is true ?'gold':'')"><<selectNpcWithPartInPosition "penis" "mouthimminent">><<set $mouthtarget to $index>><<combatPersons>> <<npcPenis $index>> presses against your lips.</span> <<case "penetrated">> <<set _mouthOptions to "penisPenetrated">> <<if $enemyarousal gte $enemyarousalmax>> <span class="gold"><<selectNpcWithPartInPosition "penis" "mouth">><<set $mouthtarget to $index>><<combatPersons>> <<npcPenis $index>> spasms in your mouth.</span> <<else>> <span @class="($lastOptions.mouth isnot _mouthOptions or _mouthGold is true ?'gold':'')"><<selectNpcWithPartInPosition "penis" "mouth">><<set $mouthtarget to $index>><<combatPersons>> <<npcPenis $index>> penetrates your mouth.</span> <</if>> <<case "gagged">> <<set _mouthOptions to "gagged">> <span @class="($lastOptions.mouth isnot _mouthOptions or _mouthGold is true ?'gold':'')">Your mouth is helplessly gagged.</span> <<case "breasts">> <<set _mouthOptions to "breasts">> <span @class="($lastOptions.mouth isnot _mouthOptions or _mouthGold is true ?'gold':'')"><<breastFlavorText>></span><<set $mouthtarget to $index>> <<case "nipple">> <<set _mouthOptions to "nipple">> <span @class="($lastOptions.mouth isnot _mouthOptions or _mouthGold is true ?'gold':'')"><<nippleFlavorText>></span><<set $mouthtarget to $index>> <<case "otheranus">> <<set _mouthOptions to "otheranus">><<selectNpcWithPartInPosition "penis" "mouthotheranus">><<set $mouthtarget to $index>> <span @class="($lastOptions.mouth isnot _mouthOptions or _mouthGold is true ?'gold':'')"><<combatPersons>> ass presses against your lips.</span> <<default>> <<if $mouthuse is "righthand" or $mouthuse is "lefthand">> <<set _mouthOptions to $mouthuse>> <<if $mouthuse is "righthand">> <<selectNpcWithPartInPosition "hand" "mouth">> <<else>> <<selectNpcWithPartInPosition "lefthand" "mouth">> <</if>><<set $mouthtarget to $index>> <span @class="($lastOptions.mouth isnot _mouthOptions or _mouthGold is true ?'gold':'')">Your mouth is blocked by <<combatpersons>> hand, muffling any noise you make.</span> <<else>> <<set _mouthOptions to "blocked">> <span @class="($lastOptions.mouth isnot _mouthOptions or _mouthGold is true ?'gold':'')">Your mouth is blocked, muffling any noise you make.</span> <</if>> <</switch>> <</switch>> <</if>> <<if $lastOptions.mouth isnot _mouthOptions>> <<set _mouthGold to true>> <</if>> <<if $_changetype isnot true>> <<mouthActions>> <<if Object.keys(_mouthaction).length gt 0>> <<assignCombatDefaults "mouth" _args[0]>> <<generateCombatAction _mouthaction "mouthaction">> /*Checks/Difficulty*/ <<if $options.combatControls.includes("ists")>> <div id="mouthactionDifficulty"> <<mouthactionDifficulty>> </div> <</if>> <</if>> <<set $lastOptions.mouth to clone(_mouthOptions)>> <</if>> <</widget>> <<widget "mouthactionDifficulty">> <<if _args[0] is undefined>> <<set _diffAction to $mouthaction>> <<else>> <<set _diffAction to _args[0]>> <</if>> <<switch _diffAction>> <<case "taunt">><<seductiondifficulty>> <<case "mouth" "othervagina">><<oraldifficulty>> <<combatpromiscuous4>> <<case "oraledge">> <<combatpromiscuous4>> <<case "movetochest">><<oraldifficulty>> <<combatpromiscuous3>> <<case "ejacswallow">><<oraldifficulty>> <<combatpromiscuous5>> <<case "ejacspit">><<oraldifficulty>> <<case "swallow">><<oralvirginitywarning>> <<combatpromiscuous5>> <<case "grasp">><<chestdifficulty>> <<combatpromiscuous3>> <<case "kisslips">><<oraldifficulty>> <<combatpromiscuous1>> <<kissvirginitywarning>> <<NPCvirginitywarning $npc[$npcrow.indexOf(_n)] "kiss">> <<case "pullaway" "pullawaykiss">><<oraldifficulty>> <<case "finish">><<if !$gloryhole and $gamemode isnot "soft">><<seductiondifficulty>><</if>> <<case "novaginal">><<if !$gloryhole and $gamemode isnot "soft">><<seductiondifficulty>><</if>> <<case "nopenile">><<if !$gloryhole and $gamemode isnot "soft">><<seductiondifficulty>><</if>> <<case "noanal">><<if !$gloryhole and $gamemode isnot "soft">><<seductiondifficulty>><</if>> <<case "noupper">><<if !$gloryhole and $gamemode isnot "soft">><<seductiondifficulty>><</if>> <<case "mock">> <<listbox "$mockaction">> <<option "ethics" "ethics" `$mockaction is "ethics" ? "selected" : ""`>> <<option "looks" "looks" `$mockaction is "looks" ? "selected" : ""`>> <<option "strength" "weak" `$mockaction is "weak" ? "selected" : ""`>> <<option "skill" "skill" `$mockaction is "skill" ? "selected" : ""`>> <<option "penis" "penis" `$mockaction is "penis" ? "selected" : ""`>> <<option "pussy" "vagina" `$mockaction is "vagina" ? "selected" : ""`>> <</listbox>> <<run $(() => { $('#listbox-mockaction').on('change', () => $('#listbox-mockaction').parent().click()) })>> <<case "ask">> <<switch $askAction>> <<case "askchoke" "condoms" "noCondoms">> <<set $_label to "subList">> <<default>> <<set $_label to "bratList">> <</switch>> <div id="askDifficulty" @class="($options.combatControls is 'radio' ? '' : $_label)" style="display:inline;"> <<listbox "$askAction" autoselect>> <<optionsfrom _askActions>> <</listbox>> </div> <<if _runOnce isnot true>><<updateAskColour>><<set _runOnce to true>><</if>> <<run $(() => { $('#askDifficulty select').on('change', () => $('#askDifficulty').click()) })>> <</switch>> <</widget>> <<widget "mouthActions">> /*Generate Actions*/ <<set _mouthaction to {}>> <<if !(["orgasm", "pain", "unreal", "possessed"].includes(_mouthOptions))>> <<set _mouthaction["Rest"] to "rest">> <</if>> <<if $position is "stalk">> <<head_turn>> <<head_down>> <<head_up>> <<stalk_taunt>> <<else>> <<switch _mouthOptions>> <<case "free">> <<if $head isnot "grappled" and $head isnot "bound">> <<if !$worn.face.type.includes("covered") and !$worn.face.type.includes("gag")>> <<if $chestuse is "penis">> <<set _mouthaction["Kiss"] to "peniskiss">> <<else>> <<set _mouthaction["Kiss " + $NPCList[$mouthtarget].pronouns.his + " skin"] to "kissskin">> <</if>> <<if $NPCList[$mouthtarget].mouth is 0 and $enemytype isnot "beast" and $NPCList[$mouthtarget].location.genitals isnot "head" and $consensual is 1 and !$gloryhole>> <<set _mouthaction["Move your lips to " + $NPCList[$mouthtarget].pronouns.hers] to "kisslips">> <</if>> <</if>> <</if>> <<oralnew>> <<speak>> <<combatApologise>> <<case "othervagina" "facesit">> <<combatOthervagina>> <<case "otheranus">> <<combatMouthOtherAnus>> <<case "kiss">> <<set _mouthaction["Kiss"] to "kissback">> <<if $head isnot "grappled" and $head isnot "bound">> <<set _mouthaction["Pull away"] to "pullawaykiss">> <</if>> <<if $consensual isnot 1 and ($fightTargets is undefined or $fightTargets.includes($mouthtarget))>> <<set _mouthaction["Headbutt"] to "headbutt">> <</if>> <<if $mouthstate isnot "kiss" and $mouthstate isnot "kissimminent">> <<speak>> <</if>> <<case "gagged">> <<case "penisEntrance">> <<combatPenisEntrance>> <<case "penisImminent">> <<combatPenisImminent>> <<case "penisPenetrated">> <<combatPenisPenetrated>> <<case "breasts">> <<combatBreast>> <<case "nipple">> <<combatNipple>> <<case "lefthand" "righthand">> <<if $fightTargets is undefined or $fightTargets.includes($mouthtarget)>> <<set _mouthaction["Bite"] to "handbite">> <</if>> <<case "orgasm">> <<set _mouthaction["Stifle"] to "stifleorgasm">> <<set _mouthaction["Let it out"] to "letoutorgasm">> <<case "pain">> <<set _mouthaction["Stifle"] to "stifle">> <<set _mouthaction["Let it out"] to "letout">> <<case "unreal">> <<set _mouthaction["Try to speak"] to "speak">> <<set _mouthaction["Make soft noises"] to "noises">> <<case "possessed">> <<set _mouthaction["Accept it"] to "mouthacceptW">> <<set _mouthaction["Clamp your mouth shut"] to "mouthresistW">> <<case "possessedBound">> <<set _mouthaction["Bite"] to "handbiteW">> <<set _mouthaction["Clamp your mouth shut"] to "handcloseW">> <</switch>> <</if>> <</widget>> <<widget "penisActionInit">> <<if $dissociation lte 1 and $orgasmdown lte 0 and ($pain lt 100 or $willpowerpain is undefined) and !$possessed>> <<switch $penisstate>> <<case 0>> <<if not $options.combatControls.includes("adio") and _targetnumber gt 1>> <<targetListBox "penis" _targetlist>> <</if>> <<set _penisOptions to "free">> <span @class="($lastOptions.penis isnot _penisOptions or _penisGold is true ?'gold':'')">Your <<penis>> is free.</span> <<if $options.combatControls.includes("adio") and _targetnumber gt 1>> <<targetListBox "penis" _targetlist>> <</if>> <<if _targetnumber is 1>> <<set $penistarget to _firsttarget>> <</if>> <<case "othermouthentrance">> <<set _penisOptions to "mouthEntrance">><<selectNpcWithPartInPosition "mouth" "penisentrance">><<set $penistarget to $index>> <span @class="($lastOptions.penis isnot _penisOptions or _penisGold is true ?'gold':'')">You feel breath on your <<penis>>.</span> <<case "othermouthimminent">> <<set _penisOptions to "mouthImminent">><<selectNpcWithPartInPosition "mouth" "penisimminent">><<set $penistarget to $index>> <span @class="($lastOptions.penis isnot _penisOptions or _penisGold is true ?'gold':'')"><<combatPersons>> lips press against the tip of your <<penis>>.</span> <<case "othermouth">> <<set _penisOptions to "mouthPenetration">><<selectNpcWithPartInPosition "mouth" "penis">><<set $penistarget to $index>> <span @class="($lastOptions.penis isnot _penisOptions or _penisGold is true ?'gold':'')"><<combatPersons>> mouth envelops your <<penis>>.</span> <<case "entrance">> <<set _penisOptions to "pussyEntrance">> <span @class="($lastOptions.penis isnot _penisOptions or _penisGold is true ?'gold':'')"><<selectNpcWithPartInPosition "vagina" "penisentrance">><<set $penistarget to $index>><<combatPersons>> <<npcVagina $penistarget>> hovers near your <<penis>>.</span> <<case "imminent">> <<set _penisOptions to "pussyImminent">> <span @class="($lastOptions.penis isnot _penisOptions or _penisGold is true ?'gold':'')"><<selectNpcWithPartInPosition "vagina" "penisimminent">><<set $penistarget to $index>><<combatPersons>> <<npcVagina $penistarget>> presses against your <<penis>>.</span> <<case "penetrated">> <<set _penisOptions to "pussyPenetration">><<selectNpcWithPartInPosition "vagina" "penis">><<set $penistarget to $index>> <span @class="($lastOptions.penis isnot _penisOptions or _penisGold is true ?'gold':'')"><<combatPersons>> vagina envelops your <<penis>>.</span> <<case "otheranusentrance">> <<set _penisOptions to "anusEntrance">> <span @class="($lastOptions.penis isnot _penisOptions or _penisGold is true ?'gold':'')"><<selectNpcWithPartInPositionAnus "otheranusentrance">><<set $penistarget to $index>><<combatPersons>> <<npcAnus $penistarget>> hovers near your <<penis>>.</span> <<case "otheranusimminent">> <<set _penisOptions to "anusImminent">> <span @class="($lastOptions.penis isnot _penisOptions or _penisGold is true ?'gold':'')"><<selectNpcWithPartInPositionAnus "otheranusimminent">><<set $penistarget to $index>><<combatPersons>> <<npcAnus $penistarget>> presses against your <<penis>>.</span> <<case "otheranus">> <<set _penisOptions to "anusPenetration">><<selectNpcWithPartInPositionAnus "otheranus">><<set $penistarget to $index>> <span @class="($lastOptions.penis isnot _penisOptions or _penisGold is true ?'gold':'')"><<combatPersons>> ass envelops your <<penis>>.</span> <<case "otherpenisentrance">> <<set _penisOptions to "penisEntrance">> <span @class="($lastOptions.penis isnot _penisOptions or _penisGold is true ?'gold':'')"><<selectNpcWithPartInPosition "penis" "penisentrance">><<set $penistarget to $index>><<combatPersons>> <<npcPenisSimple $penistarget>> hovers near your <<penis>>.</span> <<case "otherpenisimminent">> <<set _penisOptions to "penisImminent">> <span @class="($lastOptions.penis isnot _penisOptions or _penisGold is true ?'gold':'')"><<selectNpcWithPartInPosition "penis" "penisimminent">><<set $penistarget to $index>><<combatPersons>> <<npcPenisSimple $penistarget>> threatens your <<penis>>.</span> <<case "otherpenis">> <<set _penisOptions to "penisPenetration">> <span @class="($lastOptions.penis isnot _penisOptions or _penisGold is true ?'gold':'')"><<selectNpcWithPartInPosition "penis" "penis">><<set $penistarget to $index>><<combatPersons>> <<npcPenisSimple $penistarget>> presses against your <<penis>>.</span> <<case "otherhandentrance">> <<set _penisOptions to "otherHandEntrance">><<selectNpcWithPartInPosition "hand" "penisentrance">><<set $penistarget to $index>> <span @class="($lastOptions.penis isnot _penisOptions or _penisGold is true ?'gold':'')"><<combatPersons>> fingers brush against your shaft.</span> <<case "otherhand">> <<set _penisOptions to "otherHand">><<selectNpcWithPartInPosition "hand" "penis">><<set $penistarget to $index>> <span @class="($lastOptions.penis isnot _penisOptions or _penisGold is true ?'gold':'')"><<combatPerson>> holds your penis.</span> <<case "strokerSelfPenis">> <<set _penisOptions to "strokerSelfPenis">> <<if $currentSexToyLeft isnot undefined and $currentSexToyLeft.type.includes("stroker")>> <<set $_stroker to $currentSexToyLeft.name>> <<else>> <<set $_stroker to $currentSexToyRight.name>> <</if>> <span @class="($lastOptions.penis isnot _penisOptions or _penisGold is true ?'gold':'')">Your $_stroker envelops your <<penis>>.</span> <<case "stroker">> <<set _penisOptions to "strokerPenetration">><<selectNpcWithPartInPosition "hand" "penisstroker">> <span @class="($lastOptions.penis isnot _penisOptions or _penisGold is true ?'gold':'')"><<combatPersons>> stroker envelops your <<penis>>.</span> <<case "tentacleentrance" "tentacleimminent" "tentacle" "tentacledeep" "tentaclerub">> <<set $_changetype to true>><<penisActionInitTentacle>> <<case "struggle" "struggle_pen">> <<set $_changetype to true>><<penisActionInitStruggle>> <<default>> <<switch $penisuse>> <<case "clit">> <<set _penisOptions to "penisAgainstClit">><<selectNpcWithPartInPosition "vagina" "frot">><<set $penistarget to $index>> <span @class="($lastOptions.penis isnot _penisOptions or _penisGold is true ?'gold':'')">You press your <<penis>> against <<his>> <<if $enemytype is "beast">><<beasttype>> pussy<<else>>clit<</if>>.</span> <<case "otheranusrub">> <<set _penisOptions to "penisAgainstAss">> <span @class="($lastOptions.penis isnot _penisOptions or _penisGold is true ?'gold':'')"><<selectNpcWithPartInPositionAnus "otheranusfrot">><<set $penistarget to $index>>You hold your <<penis>> between <<his>> ass cheeks<<if $NPCList[$penistarget].chastity.anus.includes("shield")>>, teasing through <<his>> $NPCList[$penistarget].chastity.anus<</if>>.</span> <</switch>> <</switch>> <<if $lastOptions.penis isnot _penisOptions>> <<set _penisGold to true>> <</if>> <<if $_changetype isnot true>> <<penisActions>> <<if Object.keys(_penisaction).length gt 0>> <<assignCombatDefaults "penis" _args[0]>> <<generateCombatAction _penisaction "penisaction">> /*Checks/Difficulty*/ <<if $options.combatControls.includes("ists")>> <div id="penisactionDifficulty"> <<penisactionDifficulty>> </div> <</if>> <</if>> <<set $lastOptions.penis to clone(_penisOptions)>> <</if>> <<else>> <<timed 100ms>> <<run jQuery("#penisaction").remove();>> <</timed>> <</if>> <</widget>> <<widget "penisactionDifficulty">> <<if _args[0] is undefined>> <<set _diffAction to $penisaction>> <<else>> <<set _diffAction to _args[0]>> <</if>> <<switch _diffAction>> <<case "penistovagina" "penistoanus">><<peniledifficulty>> <<combatpromiscuous5>> <<case "penisvaginafuck" "penisanusfuck">><<combatpromiscuous5>> <<penilevirginitywarning $NPCList[_n].fullDescription>><<if _diffAction is "penisvaginafuck">><<NPCvirginitywarning $NPCList[_n].fullDescription "vaginal">><<else>><<NPCvirginitywarning $NPCList[_n].fullDescription "anal">><</if>> <<case "thighbay">><<thighdifficulty>> <<combatpromiscuous1>> <<case "bay">><<peniledifficulty>> <<combatpromiscuous4>> <<case "otheranusbay">><<peniledifficulty>> <<combatpromiscuous4>> <<case "clitrub" "otheranusrub">><<peniledifficulty>> <<case "vaginaEdging" "otheranusEdging">><<combatpromiscuous4>> <<case "penistopenis" "penistopenis">><<peniledifficulty>> <<combatpromiscuous4>> <<case "penistopenisfuck">><<combatpromiscuous4>> <<case "penisthighs">><<thighdifficulty>> <<combatpromiscuous4>> <<case "penisanus">><<analdifficulty>> <<case "penisanusdouble">><<analdifficulty>><<combatpromiscuous5>><<combataware 4>> <<case "penispussy">><<vaginaldifficulty>> <<case "penispussydouble">><<vaginaldifficulty>> <<combatpromiscuous5>> <<combataware 4>> <<case "pullOut">><<peniledifficulty>> <<case "forceImpregnation">><span class="red">- Demon</span> <</switch>> <</widget>> <<widget "penisActions">> /*Generate Actions*/ <<set _penisaction to {}>> <<if $position is "stalk">> <<else>> <<switch _penisOptions>> <<case "free">> <<set _penisaction["Rest"] to "rest">> <<actionspenistovaginanew>> <<actionspenistoanusnew>> <<actionspenistopenis>> <<case "mouthEntrance">> <<set _penisaction["Rest"] to "rest">> <<actionspenisMouthEntrance>> <<case "mouthImminent">> <<set _penisaction["Rest"] to "rest">> <<actionspenisMouthImminent>> <<case "mouthPenetration">> <<actionspenisMouthPenetration>> <<case "pussyEntrance">> <<set _penisaction["Rest"] to "rest">> <<actionspenisPussyEntrance>> <<case "pussyImminent">> <<set _penisaction["Rest"] to "rest">> <<actionspenisPussyImminent>> <<case "pussyPenetration">> <<actionspenisPussyPenetration>> <<case "anusEntrance">> <<set _penisaction["Rest"] to "rest">> <<actionspenisAnusEntrance>> <<case "anusImminent">> <<set _penisaction["Rest"] to "rest">> <<actionspenisAnusImminent>> <<case "anusPenetration">> <<actionspenisAnusPenetration>> <<case "penisAgainstClit">> <<actionspenisAgainstClit>> <<case "penisAgainstAss">> <<actionspenisAgainstAss>> <<case "penisEntrance">> <<set _penisaction["Rest"] to "rest">> <<actionspenistopenisfucknew>> <<actionspenisPenisEntrance>> <<case "penisImminent">> <<set _penisaction["Rest"] to "rest">> <<actionspenistopenisfucknew>> <<actionspenisPenisImminent>> <<case "penisPenetration">> <<actionspenisPenisFencing>> <<case "otherHandEntrance">> <<set _penisaction["Rest"] to "rest">> <<case "otherHand">> <<set _penisaction["Rest"] to "rest">> <<case "strokerSelfPenis">> <<set _penisaction["Rest"] to "rest">> <<case "strokerPenetration">> <<set _penisaction["Rest"] to "strokerRest">> <<set _penisaction["Cooperate"] to "strokerCooperate">> <</switch>> <</if>> <</widget>> <<widget "vaginaActionInit">> <<if $dissociation lte 1 and $orgasmdown lte 0 and ($pain lt 100 or $willpowerpain is undefined) and !$possessed>> <<switch $vaginastate>> <<case 0>> <<if not $options.combatControls.includes("adio") and _targetnumber gt 1>> <<targetListBox "vagina" _targetlist>> <</if>> <<set _vaginaOptions to "free">> <span @class="($lastOptions.vagina isnot _vaginaOptions or _vaginaGold is true ?'gold':'')">Your <<pussy>> is free.</span> <<if $options.combatControls.includes("adio") and _targetnumber gt 1>> <<targetListBox "vagina" _targetlist>> <</if>> <<if _targetnumber is 1>> <<set $vaginatarget to _firsttarget>> <</if>> <<case "othermouthentrance">> <<set _vaginaOptions to "mouthEntranch">><<selectNpcWithPartInPosition "mouth" "vaginaentrance">><<set $vaginatarget to $index>> <span @class="($lastOptions.vagina isnot _vaginaOptions or _vaginaGold is true ?'gold':'')">You feel breath on your <<pussy>>.</span> <<case "othermouthimminent">> <<set _vaginaOptions to "mouthImminent">><<selectNpcWithPartInPosition "mouth" "vaginaimminent">><<set $vaginatarget to $index>> <span @class="($lastOptions.vagina isnot _vaginaOptions or _vaginaGold is true ?'gold':'')"><<combatPersons>> lips press against your labia.</span> <<case "othermouth">> <<set _vaginaOptions to "mouthPenetrated">><<selectNpcWithPartInPosition "mouth" "vagina">><<set $vaginatarget to $index>> <span @class="($lastOptions.vagina isnot _vaginaOptions or _vaginaGold is true ?'gold':'')"><<combatPersons>> tongue penetrates your <<pussy>>.</span> <<case "entrance">> <<set _vaginaOptions to "penisEntrance">> <span @class="($lastOptions.vagina isnot _vaginaOptions or _vaginaGold is true ?'gold':'')"><<selectNpcWithPartInPosition "penis" "vaginaentrance">><<set $vaginatarget to $index>><<combatPersons>> <<npcPenis $vaginatarget>> hovers near your <<pussy>>.</span> <<if $settings.vaginalDoubleEnabled>> <<getDoubleTargetList>> <</if>> <<if _secondtarget is true>> <<if $options.combatControls.includes("adio") and _targetnumber gt 1>><br><</if>> <<if $vaginadoubletarget is undefined>> <<set $vaginadoubletarget to _firstdoubletarget>> <</if>> <<targetListBox "vagina" _doubletargetlist "$vaginadoubletarget">> <</if>> <<case "imminent">> <<set _vaginaOptions to "penisImminent">> <span @class="($lastOptions.vagina isnot _vaginaOptions or _vaginaGold is true ?'gold':'')"><<selectNpcWithPartInPosition "penis" "vaginaimminent">><<set $vaginatarget to $index>><<combatPersons>> <<npcPenis $vaginatarget>> presses against your <<pussy>>.</span> <<if $settings.vaginalDoubleEnabled>> <<getDoubleTargetList>> <</if>> <<if _secondtarget is true>> <<if $options.combatControls.includes("adio") and _targetnumber gt 1>><br><</if>> <<if $vaginadoubletarget is undefined>> <<set $vaginadoubletarget to _firstdoubletarget>> <</if>> <<targetListBox "vagina" _doubletargetlist "$vaginadoubletarget">> <</if>> <<case "penetrated">> <<set _vaginaOptions to "penisPenetrated">> <span @class="($lastOptions.vagina isnot _vaginaOptions or _vaginaGold is true ?'gold':'')"><<selectNpcWithPartInPosition "penis" "vagina">><<set $vaginatarget to $index>><<combatPersons>> <<npcPenis $vaginatarget>> penetrates your <<pussy>>.</span> <<if $settings.vaginalDoubleEnabled>> <<getDoubleTargetList>> <</if>> <<if _secondtarget is true>> <<if $options.combatControls.includes("adio") and _targetnumber gt 1>><br><</if>> <<if $vaginadoubletarget is undefined>> <<set $vaginadoubletarget to _firstdoubletarget>> <</if>> <<targetListBox "vagina" _doubletargetlist "$vaginadoubletarget">> <</if>> <<case "othervaginaentrance">> <<set _vaginaOptions to "vaginaEntrance">><<selectNpcWithPartInPosition "vagina" "vaginaentrance">><<set $vaginatarget to $index>> <span @class="($lastOptions.vagina isnot _vaginaOptions or _vaginaGold is true ?'gold':'')"><<combatPersons>> pussy hovers near yours.</span> <<case "othervaginaimminent">> <<set _vaginaOptions to "vaginaImminent">><<selectNpcWithPartInPosition "vagina" "vaginaimminent">><<set $vaginatarget to $index>> <span @class="($lastOptions.vagina isnot _vaginaOptions or _vaginaGold is true ?'gold':'')"><<combatPersons>> pussy threatens yours.</span> <<case "othervagina">> <<set _vaginaOptions to "vaginaPenetrated">><<selectNpcWithPartInPosition "vagina" "vagina">><<set $vaginatarget to $index>> <span @class="($lastOptions.vagina isnot _vaginaOptions or _vaginaGold is true ?'gold':'')"><<combatPersons>> pussy presses against yours.</span> <<case "doubleentrance">> <<set _vaginaOptions to "penisDoubleEntrance">> <<set $_npcA to ($NPCList[$vaginatarget].penis is "vaginaentrancedouble" ? $vaginatarget : $vaginadoubletarget)>> <<set $_npcB to ($NPCList[$vaginatarget].penis is "vaginaentrancedouble" ? $vaginadoubletarget : $vaginatarget)>> <<if $NPCList[$vaginatarget].penis is "vaginaentrancedouble" and $NPCList[$vaginadoubletarget].penis is "vaginaentrancedouble">> <span @class="($lastOptions.vagina isnot _vaginaOptions or _vaginaGold is true ?'gold':'')">Their cocks hover near your <<pussy>>.</span> <<elseif ($NPCList[$vaginatarget].penis is "vaginadouble" and $NPCList[$vaginadoubletarget].penis is "vaginaentrancedouble") or ($NPCList[$vaginatarget].penis is "vaginaentrancedouble" and $NPCList[$vaginadoubletarget].penis is "vaginadouble")>> <span @class="($lastOptions.vagina isnot _vaginaOptions or _vaginaGold is true ?'gold':'')"> <<personselect $_npcA>><<combatPersons>> <<npcPenisSimple $_npcA>> presses against your ?vulva while <<personselect $_npcB>><<combatpersons>> <<npcPenisSimple $_npcB>> hovers nearby. </span> <<else>> <span @class="($lastOptions.vagina isnot _vaginaOptions or _vaginaGold is true ?'gold':'')">Their cocks hover near your <<pussy>>.</span> <</if>> <<case "doubleimminent">> <<set _vaginaOptions to "penisDoubleImminent">> <<set $_npcA to ($NPCList[$vaginatarget].penis is "vaginaimminentdouble" ? $vaginatarget : $vaginadoubletarget)>> <<set $_npcB to ($NPCList[$vaginatarget].penis is "vaginaimminentdouble" ? $vaginadoubletarget : $vaginatarget)>> <<if $NPCList[$vaginatarget].penis is "vaginaimminentdouble" and $NPCList[$vaginadoubletarget].penis is "vaginaimminentdouble">> <span @class="($lastOptions.vagina isnot _vaginaOptions or _vaginaGold is true ?'gold':'')">Their cocks press against your <<pussy>>.</span> <<elseif ($NPCList[$vaginatarget].penis is "vaginadouble" and $NPCList[$vaginadoubletarget].penis is "vaginaimminentdouble") or ($NPCList[$vaginatarget].penis is "vaginaimminentdouble" and $NPCList[$vaginadoubletarget].penis is "vaginadouble")>> <span @class="($lastOptions.vagina isnot _vaginaOptions or _vaginaGold is true ?'gold':'')"> <<personselect $_npcA>><<combatPersons>> <<npcPenisSimple $_npcA>> penetrates your vagina while <<personselect $_npcB>><<combatpersons>> <<npcPenisSimple $_npcB>> presses against your ?vulva. </span> <<else>> <span @class="($lastOptions.vagina isnot _vaginaOptions or _vaginaGold is true ?'gold':'')"> <<personselect $_npcA>><<combatPersons>> <<npcPenisSimple $_npcA>> presses against your ?vulva while <<personselect $_npcB>><<combatpersons>> <<npcPenisSimple $_npcB>> hovers nearby. </span> <</if>> <<case "doublepenetrated">> <<set _vaginaOptions to "penisDoublePenetration">> <<set $_npcA to ($NPCList[$vaginatarget].penis is "vaginadouble" ? $vaginatarget : $vaginadoubletarget)>> <<set $_npcB to ($NPCList[$vaginatarget].penis is "vaginadouble" ? $vaginadoubletarget : $vaginatarget)>> <<if $NPCList[$vaginatarget].penis is "vaginadouble" and $NPCList[$vaginadoubletarget].penis is "vaginadouble">> <span @class="($lastOptions.vagina isnot _vaginaOptions or _vaginaGold is true ?'gold':'')">Their cocks penetrate your <<pussy>>.</span> <<elseif ($NPCList[$vaginatarget].penis is "vaginadouble" and $NPCList[$vaginadoubletarget].penis is "vaginaimminentdouble") or ($NPCList[$vaginatarget].penis is "vaginaimminentdouble" and $NPCList[$vaginadoubletarget].penis is "vaginadouble")>> <span @class="($lastOptions.vagina isnot _vaginaOptions or _vaginaGold is true ?'gold':'')"> <<personselect $_npcA>><<combatPersons>> <<npcPenisSimple $_npcA>> penetrates your vagina while <<personselect $_npcB>><<combatpersons>> <<npcPenisSimple $_npcB>> presses against your ?vulva. </span> <<else>> <span @class="($lastOptions.vagina isnot _vaginaOptions or _vaginaGold is true ?'gold':'')"> <<personselect $_npcA>><<combatPersons>> <<npcPenisSimple $_npcA>> penetrates your vagina while the other hovers nearby. </span> <</if>> <<case "otherhandentrance">> <<set _vaginaOptions to "otherHandEntrance">><<selectNpcWithPartInPosition "hand" "vaginaentrance">><<set $vaginatarget to $index>> <span @class="($lastOptions.vagina isnot _vaginaOptions or _vaginaGold is true ?'gold':'')"><<combatPersons>> fingers press against your ?vulva.</span> <<case "otherhand">> <<set _vaginaOptions to "otherHand">><<selectNpcWithPartInPosition "hand" "vagina">><<set $vaginatarget to $index>> <span @class="($lastOptions.vagina isnot _vaginaOptions or _vaginaGold is true ?'gold':'')"><<combatPerson>> fingers your pussy.</span> <<case "tentacleentrance" "tentacleimminent" "tentacle" "tentacledeep" "tentaclerub">> <<set $_changetype to true>><<vaginaActionInitTentacle>> <<case "struggle" "struggle_pen">> <<set $_changetype to true>><<vaginaActionInitStruggle>> <</switch>> <<if $lastOptions.vagina isnot _vaginaOptions>> <<set _vaginaGold to true>> <</if>> <<if $_changetype isnot true>> <<vaginaActions>> <<if Object.keys(_vaginaaction).length gt 0>> <<assignCombatDefaults "vagina" _args[0]>> <<generateCombatAction _vaginaaction "vaginaaction">> /*Checks/Difficulty*/ <<if $options.combatControls.includes("ists")>> <div id="vaginaactionDifficulty"> <<vaginaactionDifficulty>> </div> <</if>> <</if>> <<set $lastOptions.vagina to clone(_vaginaOptions)>> <</if>> <<else>> <<timed 100ms>> <<run jQuery("#vaginaaction").remove();>> <</timed>> <</if>> <</widget>> <<widget "vaginaactionDifficulty">> <<if _args[0] is undefined>> <<set _diffAction to $vaginaaction>> <<else>> <<set _diffAction to _args[0]>> <</if>> <<switch _diffAction>> <<case "vaginatopenis" "vaginatopenis">><<vaginaldifficulty>> <<combatpromiscuous5>> <<case "vaginatovagina" "vaginatovagina">><<vaginaldifficulty>> <<combatpromiscuous5>> <<case "vaginapenisfuck">><<combatpromiscuous5>> <<vaginalvirginitywarning $NPCList[_n].fullDescription>><<NPCvirginitywarning $NPCList[_n].fullDescription "penile">> <<case "vaginatovaginafuck">><<combatpromiscuous5>> <<case "thighbay">><<thighdifficulty>> <<combatpromiscuous1>> <<case "penisthighs">><<thighdifficulty>> <<combatpromiscuous4>> <<case "penisanus">><<analdifficulty>> <<case "penisanusdvp">><<analdifficulty>> <<case "penisanusdouble">><<analdifficulty>> <<combatpromiscuous5>> <<combataware 4>> <<case "penisDoubleEdging">><<combatpromiscuous5>> <<combataware 4>> <<case "vaginatopenisdouble">><<vaginaldifficulty>> <<combatpromiscuous5>> <<combataware 4>> <<case "vaginapenisdoublefuck">><<vaginaldifficulty>> <<combatpromiscuous5>> <<combataware 4>> <<vaginalvirginitywarning $NPCList[_n].fullDescription>><<NPCvirginitywarning $NPCList[_n].fullDescription "penile">> <<case "penisEdging" "tribedge">><<combatpromiscuous4>> <<case "forceImpregnation">><span class="red">- Demon</span> <</switch>> <</widget>> <<widget "vaginaActions">> /*Generate Actions*/ <<set _vaginaaction to {}>> <<if $position is "stalk">> <<else>> <<switch _vaginaOptions>> <<case "free">> <<set _vaginaaction["Rest"] to "rest">> <<actionsvaginatopenisnew>> <<actionsvaginatovaginanew>> <<case "mouthEntranch">> <<set _vaginaaction["Rest"] to "rest">> <<actionsvaginaMouthEntrance>> <<case "mouthImminent">> <<set _vaginaaction["Rest"] to "rest">> <<actionsvaginaMouthImminent>> <<case "mouthPenetrated">> <<actionsvaginaMouthPenetrated>> <<case "penisEntrance">> <<set _vaginaaction["Rest"] to "rest">> <<actionsvaginaPenisEntrance>> <<case "penisImminent">> <<set _vaginaaction["Rest"] to "rest">> <<actionsvaginaPenisImminent>> <<case "penisPenetrated">> <<actionsvaginaPenisPenetrated>> <<case "vaginaEntrance">> <<actionsTribRest>> <<actionsvaginatovaginafucknew>> <<actionsvaginaVaginaEntrance>> <<case "vaginaImminent">> <<actionsTribRest>> <<actionsvaginatovaginafucknew>> <<actionsvaginaVaginaImminent>> <<case "vaginaPenetrated">> <<actionsvaginaVagina>> <<case "penisDoubleEntrance">> <<set _vaginaaction["Rest"] to "rest">> <<actionsvaginapenisdoublefuck>> <<actionsvaginaPenisDoubleEntrance>> <<case "penisDoubleImminent">> <<set _vaginaaction["Rest"] to "rest">> <<actionsvaginapenisdoublefuck>> <<actionsvaginaPenisDoubleImminent>> <<case "penisDoublePenetration">> <<actionsvaginaPenisDoublePenetrated>> <<case "otherHandEntrance">> <<set _vaginaaction["Rest"] to "rest">> <<case "otherHand">> <<set _vaginaaction["Rest"] to "rest">> <</switch>> <</if>> <</widget>> <<widget "anusActionInit">> <<if $dissociation lte 1 and $orgasmdown lte 0 and ($pain lt 100 or $willpowerpain is undefined) and !$possessed>> <<if $bottomuse is "mouth">> <<set _anusOptions to "faceAgainstAnus">><<selectNpcWithPartInPosition "mouth" "bottom">><<set $anustarget to $index>> <span @class="($lastOptions.anus isnot _anusOptions or _anusGold ?'gold':'')">You press your <<bottom>> against <<combatpersons>> face.</span> <<elseif $bottomuse is "penis">> <<set _anusOptions to "penisAgainstAnus">><<selectNpcWithPartInPosition "penis" "cheeks">><<set $anustarget to $index>> <span @class="($lastOptions.anus isnot _anusOptions or _anusGold ?'gold':'')">You hold <<combatpersons>> <<npcPenis $anustarget>> between your buttocks.</span> <<elseif $bottomuse is "hand">> <<set _anusOptions to "handAgainstAnus">><<selectNpcWithPartInPosition "hand" "bottom">><<set $anustarget to $index>> <span @class="($lastOptions.anus isnot _anusOptions or _anusGold ?'gold':'')">You rub your clenched buttcheeks against <<combatpersons>> hand.</span> <<else>> <<switch $anusstate>> <<case 0>> <<if not $options.combatControls.includes("adio") and _targetnumber gt 1>> <<targetListBox "anus" _targetlist>> <</if>> <<set _anusOptions to "free">> <span @class="($lastOptions.anus isnot _anusOptions or _anusGold ?'gold':'')">Your <<bottom>> is free.</span> <<if $options.combatControls.includes("adio") and _targetnumber gt 1>> <<targetListBox "anus" _targetlist>> <</if>> <<if _targetnumber is 1>> <<set $anustarget to _firsttarget>> <</if>> <<case "othermouthentrance">> <<set _anusOptions to "mouthEntrance">><<selectNpcWithPartInPosition "mouth" "anusentrance">><<set $anustarget to $index>> <span @class="($lastOptions.anus isnot _anusOptions or _anusGold ?'gold':'')">You feel breath on your <<bottom>>.</span> <<case "othermouthimminent">> <<set _anusOptions to "mouthImminent">><<selectNpcWithPartInPosition "mouth" "anusimminent">><<set $anustarget to $index>> <span @class="($lastOptions.anus isnot _anusOptions or _anusGold ?'gold':'')"><<combatPersons>> lips press against your anus<<andButtPlug>>.</span> <<case "othermouth">> <<set _anusOptions to "mouthPenetration">><<selectNpcWithPartInPosition "mouth" "anus">><<set $anustarget to $index>> <span @class="($lastOptions.anus isnot _anusOptions or _anusGold ?'gold':'')"><<combatPersons>> tongue penetrates your <<bottom>>.</span> <<case "handentrance">> <<set _anusOptions to "handEntrance">><<selectNpcWithPartInPosition "hand" "anusentrance">><<set $anustarget to $index>> <span @class="($lastOptions.anus isnot _anusOptions or _anusGold ?'gold':'')">You feel <<combatpersons>> hand on your <<bottom>>.</span> <<case "hand">> <<set _anusOptions to "handPenetration">><<selectNpcWithPartInPosition "hand" "anus">><<set $anustarget to $index>> <span @class="($lastOptions.anus isnot _anusOptions or _anusGold ?'gold':'')"><<combatPersons>> finger penetrates your <<bottom>>.</span> <<case "entrance">> <<set _anusOptions to "penisEntrance">><<selectNpcWithPartInPosition "penis" "anusentrance">><<set $anustarget to $index>> <span @class="($lastOptions.anus isnot _anusOptions or _anusGold ?'gold':'')"><<combatPersons>> <<npcPenis $anustarget>> hovers near your <<bottom>><<andButtPlug>>.</span> <<if $settings.analDoubleEnabled>> <<getDoubleTargetList>> <</if>> <<if _secondtarget is true>> <<if $options.combatControls.includes("adio") and _targetnumber gt 1>><br><</if>> <<if $anusdoubletarget is undefined>> <<set $anusdoubletarget to _firstdoubletarget>> <</if>> <<targetListBox "anus" _doubletargetlist "$anusdoubletarget">> <</if>> <<case "imminent">> <<set _anusOptions to "penisImminent">><<selectNpcWithPartInPosition "penis" "anusimminent">><<set $anustarget to $index>> <span @class="($lastOptions.anus isnot _anusOptions or _anusGold ?'gold':'')"><<combatPersons>> <<npcPenis $anustarget>> presses against your anus<<andButtPlug>>.</span> <<case "penetrated">> <<set _anusOptions to "penisPenetration">><<selectNpcWithPartInPosition "penis" "anus">><<set $anustarget to $index>> <span @class="($lastOptions.anus isnot _anusOptions or _anusGold ?'gold':'')"><<combatPersons>> <<npcPenisSimple $anustarget>> penetrates your anus.</span> <<if $settings.analDoubleEnabled>> <<getDoubleTargetList>> <</if>> <<if _secondtarget is true>> <<if $options.combatControls.includes("adio") and _targetnumber gt 1>><br><</if>> <<if $anusdoubletarget is undefined>> <<set $anusdoubletarget to _firstdoubletarget>> <</if>> <<targetListBox "anus" _doubletargetlist "$anusdoubletarget">> <</if>> <<case "doubleentrance">> <<set _anusOptions to "penisDoubleEntrance">> <<if $NPCList[$anustarget].penis is "anusentrancedouble" and $NPCList[$anusdoubletarget].penis is "anusentrancedouble">> <span @class="($lastOptions.anus isnot _anusOptions or _anusGold ?'gold':'')">Their cocks hover near your <<bottom>><<andButtPlug>>.</span> <<elseif ($NPCList[$anustarget].penis is "anusdouble" and $NPCList[$anusdoubletarget].penis is "anusentrancedouble") or ($NPCList[$anustarget].penis is "anusentrancedouble" and $NPCList[$anusdoubletarget].penis is "anusdouble")>> <<selectNpcWithPartInPosition "penis" "anusdouble">> <span @class="($lastOptions.anus isnot _anusOptions or _anusGold ?'gold':'')"><<combatPersons>> <<npcPenisSimple $anusdoubletarget>> penetrates your anus while the other penis hovers nearby.</span> <<else>> <span @class="($lastOptions.anus isnot _anusOptions or _anusGold ?'gold':'')">Their cocks hover near your <<bottom>><<andButtPlug>>.</span> <</if>> <<case "doubleimminent">> <<set _anusOptions to "penisDoubleImminent">> <<if $NPCList[$anustarget].penis is "anusimminentdouble" and $NPCList[$anusdoubletarget].penis is "anusimminentdouble">> <span @class="($lastOptions.anus isnot _anusOptions or _anusGold ?'gold':'')">Their cocks press against your anus<<andButtPlug>>.</span> <<elseif ($NPCList[$anustarget].penis is "anusdouble" and $NPCList[$anusdoubletarget].penis is "anusimminentdouble") or ($NPCList[$anustarget].penis is "anusimminentdouble" and $NPCList[$anusdoubletarget].penis is "anusdouble")>> <<selectNpcWithPartInPosition "penis" "anusdouble">> <span @class="($lastOptions.anus isnot _anusOptions or _anusGold ?'gold':'')"><<combatPersons>> <<npcPenisSimple $anusdoubletarget>> penetrates your anus while the other penis presses against the entrance.</span> <<else>> <span @class="($lastOptions.anus isnot _anusOptions or _anusGold ?'gold':'')">Their cocks press against your anus<<andButtPlug>>.</span> <</if>> <<case "doublepenetrated">> <<set _anusOptions to "penisDoublePenetration">> <<if $NPCList[$anustarget].penis is "anusdouble" and $NPCList[$anusdoubletarget].penis is "anusdouble">> <span @class="($lastOptions.anus isnot _anusOptions or _anusGold ?'gold':'')">Their cocks penetrate your anus.</span> <<else>> <<selectNpcWithPartInPosition "penis" "anusdouble">> <span @class="($lastOptions.anus isnot _anusOptions or _anusGold ?'gold':'')"><<combatPersons>> cock penetrates your anus while the other hovers nearby.</span> <</if>> <<case "tentacleentrance" "tentacleimminent" "tentacle" "tentacledeep" "tentaclerub">> <<set $_changetype to true>><<anusActionInitTentacle>> <<case "struggle" "struggle_pen">> <<set $_changetype to true>><<anusActionInitStruggle>> <</switch>> <</if>> <<if $lastOptions.anus isnot _anusOptions>> <<set _anusGold to true>> <</if>> <<if $_changetype isnot true>> <<anusActions>> <<if Object.keys(_anusaction).length gt 0>> <<assignCombatDefaults "anus" _args[0]>> <<generateCombatAction _anusaction "anusaction">> /*Checks/Difficulty*/ <<if $options.combatControls.includes("ists")>> <div id="anusactionDifficulty"> <<anusactionDifficulty>> </div> <</if>> <</if>> <<set $lastOptions.anus to clone(_anusOptions)>> <</if>> <<else>> <<timed 100ms>> <<run jQuery("#anusaction").remove();>> <</timed>> <</if>> <</widget>> <<widget "anusactionDifficulty">> <<if _args[0] is undefined>> <<set _diffAction to $anusaction>> <<else>> <<set _diffAction to _args[0]>> <</if>> <<switch _diffAction>> <<case "wiggle">><<seductiondifficulty>> <<case "bottombay" "bottomhandbay">><<bottomdifficulty>> <<combatpromiscuous1>> <<case "otherAnusRub" "handAnusRub" "otherMouthAnusRub">><<bottomdifficulty>> <<case "penischeeks">><<bottomdifficulty>> <<combatpromiscuous4>> <<case "anustopenis">><<analdifficulty>> <<combatpromiscuous5>> <<case "anuspenisfuck">><<combatpromiscuous5>> <<analvirginitywarning>><<NPCvirginitywarning $NPCList[_n].fullDescription "penile">> <<case "penisEdging">><<combatpromiscuous4>> <<case "penispussy">><<vaginaldifficulty>> <<case "penispussydap">><<vaginaldifficulty>> <<combatpromiscuous5>> <<combataware 4>> <<case "penispussydouble">><<vaginaldifficulty>> <<combatpromiscuous5>> <<combataware 4>> <<case "penisDoubleEdging">><<combatpromiscuous5>> <<combataware 4>> <<case "anustopenisdouble">><<analdifficulty>> <<combatpromiscuous5>> <<combataware 4>> <<case "anuspenisdoublefuck">><<combatpromiscuous5>> <<combataware 4>> <<analvirginitywarning>><<NPCvirginitywarning $NPCList[_n].fullDescription "penile">> <<case "forceImpregnation">><span class="red">- Demon</span> <</switch>> <</widget>> <<widget "anusActions">> /*Generate Actions*/ <<set _anusaction to {}>> <<if $position is "stalk">> <<set _anusaction["Rest"] to "rest">> <<bottom_wiggle>> <<else>> <<switch _anusOptions>> <<case "free">> <<set _anusaction["Rest"] to "rest">> <<actionsanustopenisnew>> <<case "mouthEntrance">> <<set _anusaction["Rest"] to "rest">> <<actionsanusMouthEntrance>> <<case "mouthImminent">> <<set _anusaction["Rest"] to "rest">> <<actionsanusMouthImminent>> <<case "mouthPenetration">> <<actionsanusMouthPenetration>> <<case "handEntrance">> <<set _anusaction["Rest"] to "rest">> <<actionsanusHandEntrance>> <<case "handPenetration">> <<actionsanusHandPenetration>> <<case "handAgainstAnus">> <<actionsanusHandAgainstAnus>> <<case "penisEntrance">> <<set _anusaction["Rest"] to "rest">> <<actionsanusPenisEntrance>> <<case "penisImminent">> <<set _anusaction["Rest"] to "rest">> <<actionsanusPenisImminent>> <<case "penisPenetration">> <<actionsanusPenisPenetration>> <<case "faceAgainstAnus">> <<actionsanusFaceAgainstAnus>> <<case "penisAgainstAnus">> <<actionsanusPenisAgainstAnus>> <<case "penisDoubleEntrance">> <<set _anusaction["Rest"] to "rest">> <<actionsanusPenisDoubleEntrance>> <<case "penisDoubleImminent">> <<set _anusaction["Rest"] to "rest">> <<actionsanusPenisDoubleImminent>> <<case "penisDoublePenetration">> <<actionsanusPenisDoublePenetration>> <</switch>> <</if>> <</widget>> <<widget "chestActionInit">> <<if $dissociation lte 1 and $orgasmdown lte 0 and ($pain lt 100 or $willpowerpain is undefined) and !$possessed>> <<switch $chestuse>> <<case "penis">> <<set _chestOptions to "penis">><<selectNpcWithPartInPosition "penis" "chest">><<set $chesttarget to $index>> <span @class="($lastOptions.chest isnot _chestOptions ?'gold':'')"><<combatPersons>> <<npcPenisSimple $chesttarget>> rests <<print ($player.breastsize is 0 ?"against":"between")>> your <<breasts>>.</span> <<case "tentaclerub">> <<set $_changetype to true>><<chestActionInitTentacle>> <</switch>> <<if $_changetype isnot true>> <<chestActions>> <<if Object.keys(_chestaction).length gt 0>> <<if $chestactiondefault is 0>> <<set $chestactiondefault to Object.values(_chestaction)[0]>> <</if>> <<set $chestaction to $chestactiondefault>> <<generateCombatAction _chestaction "chestaction">> /*Checks/Difficulty*/ <<if $options.combatControls.includes("ists")>> <div id="chestactionDifficulty"> <<chestactionDifficulty>> </div> <</if>> <</if>> <<set $lastOptions.chest to clone(_chestOptions)>> <</if>> <<else>> <<timed 100ms>> <<run jQuery("#chestaction").remove();>> <</timed>> <</if>> <</widget>> <<widget "chestactionDifficulty">> <<if _args[0] is undefined>> <<set _diffAction to $chestaction>> <<else>> <<set _diffAction to _args[0]>> <</if>> <<switch _diffAction>> <<case "rub">><<chestdifficulty>> <</switch>> <</widget>> <<widget "chestActions">> /*Generate Actions*/ <<set _chestaction to {}>> /*<<set _chestaction["Rest"] to "rest">>*/ <<if $position is "stalk">> <<else>> <<switch _chestOptions>> <<case "penis">> <<set _chestaction["Rub"] to "rub">> <<set _chestaction["Stop"] to "stop">> <</switch>> <</if>> <</widget>> <<widget "thighActionInit">> <<if $dissociation lte 1 and $orgasmdown lte 0 and ($pain lt 100 or $willpowerpain is undefined) and !$possessed>> <<switch $thighuse>> <<case "mouth">> <<set _thighOptions to "mouth">><<selectNpcWithPartInPosition "mouth" "thigh">><<set $thightarget to $index>> <span @class="($lastOptions.thigh isnot _thighOptions ?'gold':'')">You press your thigh against <<combatpersons>> mouth.</span> <<case "penis">> <<set _thighOptions to "penis">><<selectNpcWithPartInPosition "penis" "thighs">><<set $thightarget to $index>> <span @class="($lastOptions.thigh isnot _thighOptions ?'gold':'')">You hold <<combatpersons>> penis between your thighs.</span> <</switch>> <<thighactions>> <<if Object.keys(_thighaction).length gt 0>> <<if $thighactiondefault is 0>> <<set $thighactiondefault to Object.values(_thighaction)[0]>> <</if>> <<set $thighaction to $thighactiondefault>> <<generateCombatAction _thighaction "thighaction">> /*Checks/Difficulty*/ <<if $options.combatControls.includes("ists")>> <div id="thighactionDifficulty"> <<thighactionDifficulty>> </div> <</if>> <</if>> <<set $lastOptions.thigh to clone(_thighOptions)>> <<else>> <<timed 100ms>> <<run jQuery("#thighaction").remove();>> <</timed>> <</if>> <</widget>> <<widget "thighactionDifficulty">> <<if _args[0] is undefined>> <<set _diffAction to $thighaction>> <<else>> <<set _diffAction to _args[0]>> <</if>> <<switch _diffAction>> <<case "rub" "othermouthrub">><<thighdifficulty>> <</switch>> <</widget>> <<widget "thighactions">> /*Generate Actions*/ <<set _thighaction to {}>> /*<<set _thighaction["Rest"] to "rest">>*/ <<if $position is "stalk">> <<else>> <<switch _thighOptions>> <<case "mouth">> <<set _thighaction["Rub"] to "othermouthrub">> <<set _thighaction["Stop"] to "othermouthstop">> <<case "penis">> <<set _thighaction["Rub"] to "rub">> <<set _thighaction["Stop"] to "stop">> <</switch>> <</if>> <</widget>> <<widget "resetLastOptions">> <<set $lastOptions to { "left":"", "right":"", "feet":"", "mouth":"", "penis":"", "vagina":"", "anus":"", "chest":"", "thigh":"", "cheek":"", }>> <</widget>> <<widget "getTargetList">><<silently>> <<unset _firsttarget>> <<set _targetlist to {}>><<set _targetnumber to 0>> <<if $NPCList.some( x => Object.values(x).includes("active"))>> <<set _repeatcontroller to []>> <<for _namecontroller = 0; _namecontroller lt $enemynomax; _namecontroller++>> <<if $NPCList[0].type isnot "human" and $NPCList[0].type isnot "plant">> <<set _namecontroller to $active_enemy>> <<set _targetlist[$NPCList[_namecontroller].type] to _namecontroller>><<set _targetnumber += 1>> <<if _firsttarget is undefined>> <<set _firsttarget to _namecontroller>> <</if>> <<if $options.targetYourself is true>> <<set _targetYourself to true>> <</if>> <<break>> <<elseif $NPCList[_namecontroller].active is "active" and $NPCList[_namecontroller].stance isnot "defeated">> <<if $NPCList[_namecontroller].fullDescription is "Ivory Wraith">> <<set _smoltext to "pale figure">> <<set $_wraithbreak to true>> <<else>> <<set _smoltext to $NPCList[_namecontroller].fullDescription>> <</if>> <<targetrepeatcontroller>> <<set _repeatcontroller[_namecontroller] to _smoltext>> <<if !($npc.includes($NPCList[_namecontroller].fullDescription)) and $NPCList[_namecontroller].name_known isnot 1>> <<set _smoltext to "the " + _smoltext>> <</if>> <<set _targetlist[_smoltext] to _namecontroller>><<set _targetnumber += 1>> <<if _firsttarget is undefined>> <<set _firsttarget to _namecontroller>> <</if>> <<if $options.targetYourself is true>> <<set _targetYourself to true>> <</if>> <<if $_wraithbreak is true>> <<break>> <</if>> <</if>> <</for>> <</if>> <<set _targetlistall to clone(_targetlist)>> <<if $tentacles.active gte 1>> <<set _targetlistall[$tentacles[0].type.toUpperFirst()+"s"] to "tentacles">><<set _targetnumber += 1>> <</if>> <<if $swarm.type isnot 0>> <<set _targetlistall[$swarm.type.toUpperFirst()] to "swarm">><<set _targetnumber += 1>> <<if $options.targetYourself is true>> <<set _targetYourself to true>> <</if>> <</if>> <<if $struggle isnot undefined>> <<if $struggle.done lt $struggle.number>> <<set _targetlistall[$struggle.creature.toUpperFirst()+"s"] to "struggle">><<set _targetnumber += 1>> <</if>> <</if>> <<if $machine isnot undefined>> <<set _targetlistall["Machine"] to "machine">><<set _targetnumber += 1>> <</if>> <<set _targetlistarms to clone(_targetlistall)>> <<if $vorecreature isnot 0>> <<if $vorestage gt 0>> <<set _targetlistarms["the "+ $vorecreature.toUpperFirst()] to "vore">><<set _targetnumber += 1>> <</if>> <</if>> <</silently>><</widget>> <<widget "getDoubleTargetList">><<silently>> <<unset _firstdoubletarget>> <<if $consensual is 1 and (((hasSexStat("promiscuity", 5) and $enemytype is "man") or (hasSexStat("deviancy", 5) and $enemytype isnot "man")) and $awareness gte 300 or ($promiscuityIgnore is 1))>> <<set _doubletargetlist to {}>><<set _secondtarget to false>> <<set _repeatcontroller to []>> <<for _namecontroller = 0; _namecontroller lt $enemynomax; _namecontroller++>> <<if $NPCList[_namecontroller].active is "active" and $NPCList[_namecontroller].stance isnot "defeated" and $NPCList[_namecontroller].penis is 0 and !($NPCList[_namecontroller].chastity.penis.includes("chastity"))>> <<set _smoltext to $NPCList[_namecontroller].fullDescription>> <<targetrepeatcontroller>> <<set _repeatcontroller[_namecontroller] to _smoltext>> <<if !($npc.includes($NPCList[_namecontroller].fullDescription))>> <<set _smoltext to "the " + _smoltext>> <</if>> <<set _doubletargetlist[_smoltext] to _namecontroller>><<set _secondtarget to true>> <<if _firstdoubletarget is undefined>> <<set _firstdoubletarget to _namecontroller>> <</if>> <</if>> <</for>> <</if>> <</silently>><</widget>> <<widget "getPussyTargetList">><<silently>> <<unset _firstpussytarget>> <<if $consensual is 1 and (((hasSexStat("promiscuity", 5) and $enemytype is "man") or (hasSexStat("deviancy", 5) and $enemytype isnot "man")) and $awareness gte 300 or ($promiscuityIgnore is 1))>> <<set _pussytargetlist to {}>><<set _pussytarget to false>> <<set _repeatcontroller to []>> <<for _namecontroller = 0; _namecontroller lt $enemynomax; _namecontroller++>> <<if $NPCList[_namecontroller].active is "active" and $NPCList[_namecontroller].stance isnot "defeated" and $NPCList[_namecontroller].vagina is 0 and !($NPCList[_namecontroller].vagina.penis.includes("chastity"))>> <<set _smoltext to $NPCList[_namecontroller].fullDescription>> <<targetrepeatcontroller>> <<set _repeatcontroller[_namecontroller] to _smoltext>> <<if !($npc.includes($NPCList[_namecontroller].fullDescription))>> <<set _smoltext to "the " + _smoltext>> <</if>> <<set _pussytargetlist[_smoltext] to _namecontroller>><<set _pussytarget to true>> <</if>> <</for>> <</if>> <</silently>><</widget>> <<widget "targetrepeatcontroller">> <<set _smollertext to _smoltext>> <<for _repeatnamecontroller = 0; _repeatnamecontroller lte _namecontroller; _repeatnamecontroller++>> <<if _repeatcontroller[_repeatnamecontroller] is _smollertext>> <<if _smollertext.includes("fifth") is true>> <<set _smollertext to "last "+_smoltext>> <<elseif _smollertext.includes("fourth") is true>> <<set _smollertext to "fifth "+_smoltext>> <<elseif _smollertext.includes("third") is true>> <<set _smollertext to "fourth "+_smoltext>> <<elseif _smollertext.includes("second") is true>> <<set _smollertext to "third "+_smoltext>> <<else>> <<set _smollertext to "second "+_smoltext>> <</if>> <</if>> <</for>> <<set _smoltext to _smollertext>> <</widget>> <<widget "leftActionInitSelf">> <<switch $leftarm>> <<case 0>> <<if $orgasmdown gte 1>> <<set _leftOptions to "orgasm">> <span class="lewd">Your left arm is free, but you can't stop the spasms.</span> <<elseif $pain gte 100 and $willpowerpain is 0>> <<set _leftOptions to "pain">> <span class="red">Your left arm is free, but hurts to move.</span> <<elseif $dissociation gte 2>> <<set _leftOptions to "unreal">> <span class="pink">Your left arm is free, but doesn't feel real.</span> <<else>> <<if _targetYourself is true and _targetnumber gt 1>> <<set _targetlistarms["Yourself"] to "self">> <</if>> <<if not $options.combatControls.includes("adio") and _targetnumber gt 1>> <<targetListBox "left" _targetlistarms>> <</if>> <<set _leftOptions to "free">> <span @class="($lastOptions.left isnot _leftOptions or _leftGold is true ?'gold':'')">Your left hand is free.</span> <<if $options.combatControls.includes("adio") and _targetnumber gt 1>> <<targetListBox "left" _targetlistarms>> <</if>> <<if _targetnumber is 1>> <<set $lefttarget to _firsttarget>> <</if>> <</if>> <<case "vagina">> <<set _leftOptions to "coverVagina">> <span @class="($lastOptions.left isnot _leftOptions or _leftGold is true ?'gold':'')">Your left hand is protecting your <<pussy>>.</span> <<case "coverpenis">> <<set _leftOptions to "coverPenis">> <span @class="($lastOptions.left isnot _leftOptions or _leftGold is true ?'gold':'')">Your left hand is protecting your <<penis>>.</span> <<case "anus">> <<set _leftOptions to "coverAss">> <span @class="($lastOptions.left isnot _leftOptions or _leftGold is true ?'gold':'')">Your left hand is protecting your <<bottom>>.</span> <<case "behind">> <<set _leftOptions to "behind">> <span @class="($lastOptions.left isnot _leftOptions or _leftGold is true ?'gold':'')">Your left hand is behind your back.</span> <<case "heldSexToy">> <<if _targetYourself is true and _targetnumber gt 1>> <<set _targetlistarms["Yourself"] to "self">> <</if>> <<if not $options.combatControls.includes("adio") and _targetnumber gt 1>> <<targetListBox "left" _targetlistarms>> <</if>> <<set _leftOptions to "heldSexToy">> <span @class="($lastOptions.left isnot _leftOptions or _leftGold is true ?'gold':'')">Your left hand is holding the <<print $currentSexToyLeft.name>>.</span> <<if $options.combatControls.includes("adio") and _targetnumber gt 1>> <<targetListBox "left" _targetlistarms>> <</if>> <<if _targetnumber is 1>> <<set $lefttarget to _firsttarget>> <</if>> <</switch>> <<if $lastOptions.left isnot _leftOptions>> <<set _leftGold to true>> <</if>> <<leftActionsSelf>> <<if Object.keys(_leftaction).length gt 0>><<if $options.combatControls.includes("adio")>><br><</if>> <<assignCombatDefaults "left" _args[0]>> <<generateCombatAction _leftaction "leftaction" "Self">> <<if $options.combatControls.includes("ists")>> <div id="leftactionDifficulty"> <<leftactionDifficulty>> </div> <div id="leftactionDifficultySelf"> <<leftactionDifficultySelf>> </div> <</if>><<if $options.combatControls.includes("adio")>><br><br><</if>>/* Seems to render no effect..? */ <</if>> <<set $lastOptions.left to clone(_leftOptions)>> <</widget>> <<widget "leftactionDifficultySelf">>/* Here we go again. */ <<if _args[0] is undefined>> <<set _diffAction to $leftaction>> <<else>> <<set _diffAction to _args[0]>> <</if>> <<switch _diffAction>> <<case "leftmasturbatepussy">> <<combatpromiscuous2>> <<case "leftmasturbatepenis">> <<combatpromiscuous2>> <<case "leftmasturbateanus">> <<combatpromiscuous3>> <<case "pickupSexToy">> <<if Object.keys(_itemsLeft).length gte 1>> <<listbox "$selectedItemLeft" autoselect>> <<optionsfrom _itemsLeft>> <</listbox>> <</if>> <<combatpromiscuous3>> <</switch>> <</widget>> <<widget "leftActionsSelf">> <<set _leftaction to {}>> <<switch _leftOptions>> <<case "free">> <<set _leftaction["Rest"] to "rest">> <<if $rightarm is "swarmgrappled">> <<set _leftaction["Free your right arm"] to "leftfree">> <</if>> <<if Object.values(_targetlistarms).includes("swarm")>> <<if _swarmamounts.genital[0] lte 0 and _swarmamounts.genital[1] lte 0>> <<genitals>> <<set _leftaction["Cover your " + _text_output] to "frontcoverleft">> <</if>> <<if _swarmamounts.butt[0] lte 0 and _swarmamounts.butt[1] lte 0>> <<set _leftaction["Cover your butt"] to "frontcoverleft">> <</if>> <<if _swarmamounts.chest lte 0>> <<set _leftaction["Cover your chest"] to "frontcoverleft">> <</if>> <<if $water is 1 and $vorecreature is 0 and ($consensual isnot 1 or $gamemode is "soft")>> <<set _leftaction["Swim to safety"] to "swim">> <</if>> <</if>> <<if Object.values(_targetlistarms).includes(0) or Object.values(_targetlistarms).includes(1) or Object.values(_targetlistarms).includes(2) or Object.values(_targetlistarms).includes(3) or Object.values(_targetlistarms).includes(4) or Object.values(_targetlistarms).includes(5)>>/* placeholder for the future */ <<leftdefault>> <<combatMasturbate "left">> <<applyLube "left">> <<leftclothesnew>> <<leftFixAndCoverActions>> <<leftCondom>> <<removeButtplug "left">> <<pickupSexToy "left">> <</if>> <<case "coverVagina">> <<set _leftaction["Keep covering"] to "leftcovervagina">> <<set _leftaction["Stop"] to "leftstopvagina">> <<case "coverPenis">> <<set _leftaction["Keep covering"] to "leftcoverpenis">> <<set _leftaction["Stop"] to "leftstopcoverpenis">> <<case "coverAss">> <<set _leftaction["Keep covering"] to "leftcoveranus">> <<set _leftaction["Stop"] to "leftstopanus">> <<case "behind">> <<set _leftaction["Keep behind"] to "behind">> <<set _leftaction["Stop"] to "stopbehind">> <<case "orgasm">> <<set _leftaction["Fold"] to "leftfold">> <<set _leftaction["Grip"] to "leftgrip">> <<case "pain">> <<set _leftaction["Struggle"] to "leftstruggleweak">> <<set _leftaction["Protect"] to "leftprotect">> <<case "unreal">> <<set _leftaction["Poke yourself"] to "leftpoke">> <<set _leftaction["Keep your arms out of the way"] to "leftcurl">> <<case "heldSexToy">> <<heldSexToy "left">> <</switch>> <</widget>> <<widget "rightActionInitSelf">> <<switch $rightarm>> <<case 0>> <<if $orgasmdown gte 1>> <<set _rightOptions to "orgasm">> <span class="lewd">Your right arm is free, but you can't stop the spasms.</span> <<elseif $pain gte 100 and $willpowerpain is 0>> <<set _rightOptions to "pain">> <span class="red">Your right arm is free, but hurts to move.</span> <<elseif $dissociation gte 2>> <<set _rightOptions to "unreal">> <span class="pink">Your right arm is free, but doesn't feel real.</span> <<else>> <<if _targetYourself is true and _targetnumber gt 1>> <<set _targetlistarms["Yourself"] to "self">> <</if>> <<if not $options.combatControls.includes("adio") and _targetnumber gt 1>> <<targetListBox "right" _targetlistarms>> <</if>> <<set _rightOptions to "free">> <span @class="($lastOptions.right isnot _rightOptions or _rightGold is true ?'gold':'')">Your right hand is free.</span> <<if $options.combatControls.includes("adio") and _targetnumber gt 1>> <<targetListBox "right" _targetlistarms>> <</if>> <<if _targetnumber is 1>> <<set $righttarget to _firsttarget>> <</if>> <</if>> <<case "vagina">> <<set _rightOptions to "coverVagina">> <span @class="($lastOptions.right isnot _rightOptions or _rightGold is true ?'gold':'')">Your right hand is protecting your <<pussy>>.</span> <<case "coverpenis">> <<set _rightOptions to "coverPenis">> <span @class="($lastOptions.right isnot _rightOptions or _rightGold is true ?'gold':'')">Your right hand is protecting your <<penis>>.</span> <<case "anus">> <<set _rightOptions to "coverAss">> <span @class="($lastOptions.right isnot _rightOptions or _rightGold is true ?'gold':'')">Your right hand is protecting your <<bottom>>.</span> <<case "behind">> <<set _rightOptions to "behind">> <span @class="($lastOptions.right isnot _rightOptions or _rightGold is true ?'gold':'')">Your right hand is behind your back.</span> <<case "heldSexToy">> <<if _targetYourself is true and _targetnumber gt 1>> <<set _targetlistarms["Yourself"] to "self">> <</if>> <<if not $options.combatControls.includes("adio") and _targetnumber gt 1>> <<targetListBox "right" _targetlistarms>> <</if>> <<set _rightOptions to "heldSexToy">> <span @class="($lastOptions.right isnot _rightOptions or _rightGold is true ?'gold':'')">Your right hand is holding the $currentSexToyRight.name.</span> <<if $options.combatControls.includes("adio") and _targetnumber gt 1>><br> <<targetListBox "right" _targetlistarms>> <</if>> <<if _targetnumber is 1>> <<set $righttarget to _firsttarget>> <</if>> <</switch>> <<if $lastOptions.right isnot _rightOptions>> <<set _rightGold to true>> <</if>> <<rightActionsSelf>> <<if Object.keys(_rightaction).length gt 0>><<if $options.combatControls.includes("adio")>><br><</if>> <<assignCombatDefaults "right" _args[0]>> <<generateCombatAction _rightaction "rightaction" "Self">> <<if $options.combatControls.includes("ists")>> <div id="rightactionDifficulty"> <<rightactionDifficulty>> </div> <div id="rightactionDifficultySelf"> <<rightactionDifficultySelf>> </div> <</if>><<if $options.combatControls.includes("adio")>><br><br><</if>>/* Seems to render no effect..? */ <</if>> <<set $lastOptions.right to clone(_rightOptions)>> <</widget>> <<widget "rightactionDifficultySelf">>/* This was unexpected. */ <<if _args[0] is undefined>> <<set _diffAction to $rightaction>> <<else>> <<set _diffAction to _args[0]>> <</if>> <<switch _diffAction>> <<case "rightmasturbatepussy">> <<combatpromiscuous2>> <<case "rightmasturbatepenis">> <<combatpromiscuous2>> <<case "rightmasturbateanus">> <<combatpromiscuous3>> <<case "pickupSexToy">> <<if Object.keys(_itemsRight).length gte 1>> <<listbox "$selectedItemRight" autoselect>> <<optionsfrom _itemsRight>> <</listbox>> <</if>> <<combatpromiscuous3>> <</switch>> <</widget>> <<widget "rightActionsSelf">> <<set _rightaction to {}>> <<switch _rightOptions>> <<case "free">> <<set _rightaction["Rest"] to "rest">> <<if $leftarm is "swarmgrappled">> <<set _rightaction["Free your right arm"] to "rightfree">> <</if>> <<if Object.values(_targetlistarms).includes("swarm")>> <<if _swarmamounts.genital[0] lte 0 and _swarmamounts.genital[1] lte 0>> <<genitals>> <<set _rightaction["Cover your " + _text_output] to "frontcoverright">> <</if>> <<if _swarmamounts.butt[0] lte 0 and _swarmamounts.butt[1] lte 0>> <<set _rightaction["Cover your butt"] to "frontcoverright">> <</if>> <<if _swarmamounts.chest lte 0>> <<set _rightaction["Cover your chest"] to "frontcoverright">> <</if>> <<if $water is 1 and $vorecreature is 0 and ($consensual isnot 1 or $gamemode is "soft")>> <<set _rightaction["Swim to safety"] to "swim">> <</if>> <</if>> <<if Object.values(_targetlistarms).includes(0) or Object.values(_targetlistarms).includes(1) or Object.values(_targetlistarms).includes(2) or Object.values(_targetlistarms).includes(3) or Object.values(_targetlistarms).includes(4) or Object.values(_targetlistarms).includes(5)>>/* placeholder for the future */ <<rightdefault>> <<combatMasturbate "right">> <<applyLube "right">> <<rightclothesnew>> <<rightFixAndCoverActions>> <<rightCondom>> <<removeButtplug "right">> <<pickupSexToy "right">> <</if>> <<case "coverVagina">> <<set _rightaction["Keep covering"] to "rightcovervagina">> <<set _rightaction["Stop"] to "rightstopvagina">> <<case "coverPenis">> <<set _rightaction["Keep covering"] to "rightcoverpenis">> <<set _rightaction["Stop"] to "rightstopcoverpenis">> <<case "coverAss">> <<set _rightaction["Keep covering"] to "rightcoveranus">> <<set _rightaction["Stop"] to "rightstopanus">> <<case "behind">> <<set _rightaction["Keep behind"] to "behind">> <<set _rightaction["Stop"] to "stopbehind">> <<case "orgasm">> <<set _rightaction["Fold"] to "rightfold">> <<set _rightaction["Grip"] to "rightgrip">> <<case "pain">> <<set _rightaction["Struggle"] to "rightstruggleweak">> <<set _rightaction["Protect"] to "rightprotect">> <<case "unreal">> <<set _rightaction["Poke yourself"] to "rightpoke">> <<set _rightaction["Keep your arms out of the way"] to "rightcurl">> <<case "heldSexToy">> <<heldSexToy "right">> <</switch>> <</widget>> <<widget "feetActionInitSelf">> <<if $dissociation lte 1 and $orgasmdown lte 0 and ($pain lt 100 or $willpowerpain is undefined)>> <<if $feetuse is 0>> <<if _targetYourself is true and _targetnumber gt 1>> <<set _targetlistall["Yourself"] to "self">> <</if>> <<if not $options.combatControls.includes("adio") and _targetnumber gt 1>> <<targetListBox "feet" _targetlistall>> <</if>> <<set _feetOptions to "free">> <span @class="($lastOptions.feet isnot _feetOptions or _feetGold is true ?'gold':'')">Your feet are free.</span> <<if $options.combatControls.includes("adio") and _targetnumber gt 1 and _feetOptions is "free">> <<targetListBox "feet" _targetlistall>> <</if>> <<if _targetnumber is 1>> <<set $feettarget to _firsttarget>> <</if>> <</if>> <<if $lastOptions.feet isnot _feetOptions>> <<set _feetGold to true>> <</if>> <<feetActionsSelf>> <<if Object.keys(_feetaction).length gt 0>><<if $options.combatControls.includes("adio")>><br><</if>> <<assignCombatDefaults "feet" _args[0]>> <<generateCombatAction _feetaction "feetaction" "Self">> <<if $options.combatControls.includes("ists")>> <div id="feetactionDifficulty"> <<feetactionDifficulty>> </div> <</if>><<if $options.combatControls.includes("adio")>><br><</if>>/* Seems to render no effect..? */ <</if>> <<set $lastOptions.feet to clone(_feetOptions)>> <<else>> <<timed 100ms>> <<run jQuery("#feetaction").remove();>> <</timed>> <</if>> <</widget>> <<widget "feetactionDifficultySelf">> /* Good thing I caught it before anyone else. */ <!-- Does nothing --> <</widget>> <<widget "feetActionsSelf">> <<set _feetaction to {}>> <<set _feetaction["Rest"] to "rest">> <<if Object.values(_targetlistarms).includes("swarm")>> <<if $water is 1 and $vorecreature is 0 and currentSkillValue('swimmingskill') gt 700 and $consensual isnot 1>> <<set _feetaction["Swim to safety"] to "swim">> <</if>> <</if>> <<if Object.values(_targetlistarms).includes("struggle")>> <<set _feetaction["Dodge"] to "evade">> <<set _feetaction["Plant"] to "plant">> <</if>> <<if $water isnot 1>> <<feetshoes>> <<feetsocks>> <</if>> <</widget>> /* To be used as an example of how to merge all combats in 1 */ <<widget "actionsOmni">> <<exposure>> <<if $enemyno gte 2>> <<set $pronoun to "n">> <<else>> <<if $NPCList[0].pronoun is "m">> <<set $pronoun to "m">> <</if>> <<if $NPCList[0].pronoun is "f">> <<set $pronoun to "f">> <</if>> <<if $NPCList[0].pronoun is "i">> <<set $pronoun to "i">> <</if>> <<if $NPCList[0].pronoun is "n">> <<set $pronoun to "n">> <</if>> <<if $NPCList[0].pronoun is "t">> <<set $pronoun to "t">> <</if>> <</if>> <<animateCombat>> <<if $traumafocus gte 1 and $traumafocusintro isnot 1>> <<set $traumafocusintro to 1>> <i>As you gain focus, you become more and more likely to escape your helpless state of dissociation.</i> <br><br> <</if>> <<if $traumafocus gt random(1, 1000) and $dissociation gte 2 and $combat is 1>> <<set $traumafocus to 0>><<set $trauma -= 1000>><<set $dissociation to 1>> <span class="green">Your lucidity returns.</span> <<ltrauma>> <br> <span class="red">The weight of reality crashes down on you.</span> <br><br> <</if>> <<if $underwater isnot 1>> <<oxygen 50>> <</if>> <<willpowerpain>> <<willpowerorgasm>> <<actioncarry>> <<actioncarrydrop>> <<combatstate>> <<carryblock>> <<if $trance lte 0 and $panicparalysis is 0 and ($panicviolence is 0 or $position is "stalk")>> <<if $dissociation lte 1 and $orgasmdown lte 0 and ($pain lt 100 or $willpowerpain is undefined) and ["man", "plant", "beast"].includes($enemytype)>> <<if $options.images is 1 and $options.combatImages is 1 and $consensual is 1 and $position_lock isnot 1>> <<if $position is "doggy">> | <label>Roll over <<radiobutton "$bodyaction" "missionary">></label> <<elseif $position is "missionary">> | <label>Roll over <<radiobutton "$bodyaction" "doggy">></label> <</if>> <<if $position isnot "stalk">> | <label>Rest <<radiobutton "$bodyaction" "rest" checked>></label> <br> <</if>> <</if>> <</if>> <<if $swarm and $swarm.name>> <<set _swarmsteady to $swarm["steady"].toUpperFirst()>> <<set _swarmamounts to $swarm.amount>> <</if>> <<generateActionsOmni>> <br> <</if>> <<setupMidOrgasm>> <br><br> <</widget>> /* To be used as an example of how to merge all combats in 1 */ <<widget "generateActionsOmni">> <<set $combat to 1>> <<if _targetlist is undefined>> <<getTargetList>> <</if>> <<if _targetnumber gte 1>> <div id="listContainer"> <div id="leftaction" @class="$options.combatControls + 'Control'"> <<switch $lefttarget>> <<case "self">> <<leftActionInitSelf>> <<case "tentacles">> <<leftActionInitTentacle>> <<case "vore">> <<leftActionInitVore>> <<case "swarm">> <<leftActionInitSwarm>> <<case "struggle">> <<leftActionInitStruggle>> <<case "machine">> <<leftActionInitMachine>> <<default>> <<if Object.values(_targetlistarms)[0] is "tentacles">> <<leftActionInitTentacle>> <<elseif Object.values(_targetlistarms)[0] is "vore">> <<leftActionInitVore>> <<elseif Object.values(_targetlistarms)[0] is "swarm">> <<leftActionInitSwarm>> <<elseif Object.values(_targetlistarms)[0] is "struggle">> <<leftActionInitStruggle>> <<elseif Object.values(_targetlistarms)[0] is "machine">> <<leftActionInitMachine>> <<else>> <<leftActionInit>> <</if>> <</switch>> </div> <div id="rightaction" @class="$options.combatControls + 'Control'"> <<switch $righttarget>> <<case "self">> <<rightActionInitSelf>> <<case "tentacles">> <<rightActionInitTentacle>> <<case "vore">> <<rightActionInitVore>> <<case "swarm">> <<rightActionInitSwarm>> <<case "struggle">> <<rightActionInitStruggle>> <<case "machine">> <<rightActionInitMachine>> <<default>> <<if Object.values(_targetlistarms)[0] is "tentacles">> <<rightActionInitTentacle>> <<elseif Object.values(_targetlistarms)[0] is "vore">> <<rightActionInitVore>> <<elseif Object.values(_targetlistarms)[0] is "swarm">> <<rightActionInitSwarm>> <<elseif Object.values(_targetlistarms)[0] is "struggle">> <<rightActionInitStruggle>> <<elseif Object.values(_targetlistarms)[0] is "machine">> <<rightActionInitMachine>> <<else>> <<rightActionInit>> <</if>> <</switch>> </div> <<if Object.values(_targetlistall).length gte 1>> <div id="feetaction" @class="$options.combatControls + 'Control'"> <<switch $feettarget>> <<case "self">> <<feetActionInitSelf>> <<case "tentacles">> <<feetActionInitTentacle>> <<case "swarm">> <<feetActionInitSwarm>> <<case "struggle">> <<feetActionInitStruggle>> <<case "machine">> <<feetActionInitMachine>> <<default>> <<if Object.values(_targetlistall)[0] is "tentacles">> <<feetActionInitTentacle>> <<elseif Object.values(_targetlistall)[0] is "swarm">> <<feetActionInitSwarm>> <<elseif Object.values(_targetlistall)[0] is "struggle">> <<feetActionInitStruggle>> <<elseif Object.values(_targetlistall)[0] is "machine">> <<feetActionInitMachine>> <<else>> <<feetActionInit>> <</if>> <</switch>> </div> <</if>> <<if Object.values(_targetlist).length gte 1>> <<switch $mouthtarget>> <<case "tentacles">> <div id="mouthaction" @class="$options.combatControls + 'Control'"> <<mouthActionInitTentacle>> </div> <<case "struggle">> <div id="mouthaction" @class="$options.combatControls + 'Control'"> <<mouthActionInitStruggle>> </div> <<default>> <<if !($dissociation lte 1 and $orgasmdown lte 0 and ($pain lt 100 or $willpowerpain is undefined))>> <div id="mouthaction" @class="$options.combatControls + 'Control'"> <<mouthActionInit>> </div> <<elseif Object.values(_targetlist)[0] isnot "tentacles" and Object.values(_targetlist)[0] isnot "struggle">> <div id="mouthaction" @class="$options.combatControls + 'Control'"> <<mouthActionInit>> </div> <<else>> <<if $mouthuse is "struggle" and $struggle.mouth.creature>> <div id="mouthaction" @class="$options.combatControls + 'Control'"> <<mouthActionInitStruggle>> </div> <<elseif $mouthstate isnot 0>> <div id="mouthaction" @class="$options.combatControls + 'Control'"> <<mouthActionInitTentacle>> </div> <</if>> <</if>> <</switch>> <<if $player.penisExist or $worn.genitals.type.includes("strap-on") or playerHasStrapon()>> <<switch $penistarget>> <<case "tentacles">> <div id="penisaction" @class="$options.combatControls + 'Control'"> <<penisActionInitTentacle>> </div> <<case "struggle">> <div id="penisaction" @class="$options.combatControls + 'Control'"> <<penisActionInitStruggle>> </div> <<default>> <<if Object.values(_targetlist)[0] isnot "tentacles" and Object.values(_targetlist)[0] isnot "struggle">> <div id="penisaction" @class="$options.combatControls + 'Control'"> <<penisActionInit>> </div> <<else>> <<if $penisuse is "struggle">> <div id="penisaction" @class="$options.combatControls + 'Control'"> <<penisActionInitStruggle>> </div> <<elseif $penisstate isnot 0>> <div id="penisaction" @class="$options.combatControls + 'Control'"> <<penisActionInitTentacle>> </div> <</if>> <</if>> <</switch>> <</if>> <<if $player.vaginaExist>> <<switch $vaginatarget>> <<case "tentacles">> <div id="vaginaaction" @class="$options.combatControls + 'Control'"> <<vaginaActionInitTentacle>> </div> <<case "struggle">> <div id="vaginaaction" @class="$options.combatControls + 'Control'"> <<vaginaActionInitStruggle>> </div> <<default>> <<if Object.values(_targetlist)[0] isnot "tentacles" and Object.values(_targetlist)[0] isnot "struggle">> <div id="vaginaaction" @class="$options.combatControls + 'Control'"> <<vaginaActionInit>> </div> <<else>> <<if $vaginause is "struggle">> <div id="vaginaaction" @class="$options.combatControls + 'Control'"> <<vaginaActionInitStruggle>> </div> <<elseif $vaginastate isnot 0>> <div id="vaginaaction" @class="$options.combatControls + 'Control'"> <<vaginaActionInitTentacle>> </div> <</if>> <</if>> <</switch>> <</if>> <<switch $anustarget>> <<case "tentacles">> <div id="anusaction" @class="$options.combatControls + 'Control'"> <<anusActionInitTentacle>> </div> <<case "struggle">> <div id="anusaction" @class="$options.combatControls + 'Control'"> <<anusActionInitStruggle>> </div> <<default>> <<if Object.values(_targetlist)[0] isnot "tentacles" and Object.values(_targetlist)[0] isnot "struggle">> <div id="anusaction" @class="$options.combatControls + 'Control'"> <<anusActionInit>> </div> <<else>> <<if $anususe is "struggle">> <div id="anusaction" @class="$options.combatControls + 'Control'"> <<anusActionInitStruggle>> </div> <<elseif $anusstate isnot 0>> <div id="anusaction" @class="$options.combatControls + 'Control'"> <<anusActionInitTentacle>> </div> <</if>> <</if>> <</switch>> <<if $chestuse isnot "struggle">> <div id="chestaction" @class="$options.combatControls + 'Control'"> <<chestActionInitStruggle>> </div> <<elseif $chestuse is "tentaclerub">> <div id="chestaction" @class="$options.combatControls + 'Control'"> <<chestActionInitTentacle>> </div> <<elseif $chestuse is "penis">> <div id="chestaction" @class="$options.combatControls + 'Control'"> <<chestActionInit>> </div> <</if>> <<if $thighuse isnot 0>> <div id="thighaction" @class="$options.combatControls + 'Control'"> <<thighActionInit>> </div> <</if>> <</if>> </div> <</if>> <</widget>><<widget "audiencecamera">> <<exposure>> <<if $audienceselector is 1>> <<set $audiencedesc to "excited">> <<set $audiencecamera to $audiencecamera1>> <<elseif $audienceselector is 2>> <<set $audiencedesc to "blushing">> <<set $audiencecamera to $audiencecamera2>> <<elseif $audienceselector is 3>> <<set $audiencedesc to "eager">> <<set $audiencecamera to $audiencecamera3>> <<elseif $audienceselector is 4>> <<set $audiencedesc to "lusty">> <<set $audiencecamera to $audiencecamera4>> <<elseif $audienceselector is 5>> <<set $audiencedesc to "avid">> <<set $audiencecamera to $audiencecamera5>> <<elseif $audienceselector is 6>> <<set $audiencedesc to "vigorous">> <<set $audiencecamera to $audiencecamera6>> <</if>> <<rng>> <<if $swarm and $swarm.amount and $swarm.amount.active and $swarm.amount.active[0] gt 0 and $rng gte 51>> <<audiencecameraswarm>> <<elseif $rng gte 81 and $facepic isnot 1>> <<set $facepic to 1>> The $audiencedesc $audiencecamera points <<ahis>> camera at your face. A light flashes as <<ahe>> takes a picture. <<if $vaginastate is "penetrated">> <<if $enemytype is "beast">> <<if $orgasmdown gte 1>> <<if $face is "covered">> "<<pShes>> cumming with an animal dick in <<pher>> cunt! I can't believe it." <<else>> "A <<beasttype>> is fucking you in public and you're having an orgasm. I don't know how you stand the shame." <</if>> <<elseif $leglocktarget isnot undefined>> <<if $face is "covered">> "<<print ($position is "doggy" ? "You're pushing back against" : "Your legs are wrapped around")>> a <<beasttype>>, don't pretend you have any dignity." <<else>> "This <<bitch>> wants to get <<bred>> even more than I want to see it!" <</if>> <<else>> <<if $face is "covered">> "You're fucking a <<beasttype>>, don't pretend you have any dignity." <<else>> "So glad I was here to see this <<bitch>> get <<bred>>." <</if>> <</if>> <<else>> <<if $orgasmdown gte 1>> <<if $face is "covered">> "It's normal to cum while your pussy is filled, you don't need to be shy." <<else>> "Look how cute <<pshe>> looks when <<pshe>> cums. Fuck <<pher>> pussy harder." <</if>> <<elseif $leglocktarget isnot undefined>> <<if $face is "covered">> "Don't pretend to be shy, you're literally <<print ($position is "doggy" ? "pushing against <<personselect $vaginatarget>><<him>>" : "pulling <<personselect $vaginatarget>><<him>> in")>>." <<else>> "You're loving this, aren't you? Look at your legs, look at your face." <</if>> <<else>> <<if $face is "covered">> "Don't be shy, I want to see your face while your pussy is ravaged." <<else>> "Your face looks so cute while your pussy is pounded." <</if>> <</if>> <</if>> <<elseif $vaginastate is "imminent">> <<if $enemytype is "beast">> <<if $orgasmdown gte 1>> <<if $face is "covered">> "Is <<pshe>> cumming already? <<pShes>> such a <<beasttype>> <<slut>>." <<else>> "Just the thought of that <<beasttype>> dick entering is enough to make <<phim>> cum." <</if>> <<else>> <<if $face is "covered">> "Move your hands, I want to see your expression when the <<beasttype>> fucks you." <<else>> "I want a picture of <<pher>> expression when it fucks <<phim>> proper." <</if>> <</if>> <<else>> <<if $orgasmdown gte 1>> <<if $face is "covered">> "Is <<pshe>> cumming already?" <<else>> "Just the anticipation is enough to make <<phim>> cum." <</if>> <<else>> <<if $face is "covered">> "Move your hands, I want to see your expression when it goes in." <<else>> "I want a picture of <<pher>> expression when it goes in." <</if>> <</if>> <</if>> <<elseif $vaginastate is "entrance">> <<if $orgasmdown gte 1>> <<if $face is "covered">> "Is <<pshe>> cumming already?" <<else>> "Just the anticipation is enough to make <<phim>> cum." <</if>> <<else>> <<if $face is "covered">> "Move your hands, I want to see your expression when it goes in." <<else>> "I want a picture of <<pher>> expression when it goes in." <</if>> <</if>> <<elseif $penisstate is "penetrated">> <<if $orgasmdown gte 1>> <<if $face is "covered">> "It's normal to cum while your penis is ravaged, you don't need to be shy." <<else>> "Look how cute <<pshe>> looks when <<pshe>> cums. Fuck <<phim>> harder." <</if>> <<else>> <<if $face is "covered">> "Don't be shy, I want to see your face while your penis is ravaged." <<else>> "Look how cute <<pshe>> looks with <<pher>> penis being pounded. Fuck <<phim>> harder." <</if>> <</if>> <<elseif $penisstate is "imminent">> <<if $orgasmdown gte 1>> <<if $face is "covered">> "Is <<pshe>> cumming already?" <<else>> "Just the anticipation is enough to make <<phim>> cum." <</if>> <<else>> <<if $face is "covered">> "Move your hands, I want to see your expression when it goes in." <<else>> "I want to snap a picture of <<pher>> expression when it goes in." <</if>> <</if>> <<elseif $penisstate is "entrance">> <<if $orgasmdown gte 1>> <<if $face is "covered">> "Is <<pshe>> cumming already?" <<else>> "Just the anticipation is enough to make <<phim>> cum." <</if>> <<else>> <<if $face is "covered">> "Move your hands, I want to see your expression when it goes in." <<else>> "I want to snap a picture of <<pher>> expression when it goes in." <</if>> <</if>> <<elseif $penisstate is "otheranus">> <<if playerHasStrapon()>> <<if $orgasmdown gte 1>> <<if $face is "covered">> "Move your hands, I want to see what you look like while cumming." <<else>> "I think you're making <<phim>> cum. Fuck <<phim>> harder." <</if>> <<else>> <<if $face is "covered">> "You're shy about fucking someone's ass? That's adorable." <<else>> "Look how cute <<pshe>> looks with <<pher>> strap-on being pounded. Fuck harder." <</if>> <</if>> <<elseif $orgasmdown gte 1>> <<if $face is "covered">> "Move your hands, I want to see what you look like while cumming in someone's ass." <<else>> "I think your ass is making <<phim>> cum. Fuck <<phim>> harder." <</if>> <<else>> <<if $face is "covered">> "You're shy about fucking someone's ass? That's adorable." <<else>> "Look how cute <<pshe>> looks with <<pher>> penis being pounded. Fuck <<phim>> harder." <</if>> <</if>> <<elseif $penisstate is "otheranusimminent">> <<if $orgasmdown gte 1>> <<if $face is "covered">> "Don't be shy, let the camera see your orgasm face." <<else>> "Just pressing your ass against <<pher>> dick is making <<phim>> cum." <</if>> <<else>> <<if $face is "covered">> "Move your hands, I want to see your expression when it goes in." <<else>> "<<pShes>> blushing! How cute." <</if>> <</if>> <<elseif $penisstate is "otheranusentrance">> <<if $orgasmdown gte 1>> <<if $face is "covered">> "Don't be shy, let the camera see your orgasm face." <<else>> "Just pressing your ass against <<pher>> dick is making <<phim>> cum." <</if>> <<else>> <<if $face is "covered">> "Move your hands, I want to see your expression when it goes in." <<else>> "<<pShes>> blushing! How cute." <</if>> <</if>> <<elseif $anusstate is "penetrated">> <<if $enemytype is "beast">> <<if $orgasmdown gte 1>> <<if $face is "covered">> "You're cumming with a <<beasttype>> balls-deep in your ass, how much dignity is covering your face preserving?" <<else>> "I got a nice picture of <<pher>> <<beasttype>> fucker orgasm face." <</if>> <<elseif $leglocktarget isnot undefined>> <<if $face is "covered">> "Show us your needy ass-fucked <<beasttype>> <<bitch>> face!" <<else>> "I don't know about you, but I think <<pshe>> really likes that <<beasttype>>." <</if>> <<else>> <<if $face is "covered">> "Come on, let's see your face. I want to see how you look having your ass fucked by a <<beasttype>>." <<else>> "<<pShe>> looks so cute having <<pher>> ass fucked by that <<beasttype>>." <</if>> <</if>> <<else>> <<if $orgasmdown gte 1>> <<if $face is "covered">> "You're cumming while having your ass fucked, how much dignity is covering your face preserving?" <<else>> "I got a nice picture of <<pher>> orgasm face." <</if>> <<elseif $leglocktarget isnot undefined>> <<if $face is "covered">> "So what if you cover your face? Everyone can see you <<print ($position is "doggy" ? "pushing into <<personselect $anustarget>><<him>>" : "wrapping your legs")>>, buttslut." <<else>> "Your ass must be loving this, the way you're <<print ($position is "doggy" ? "pushing back" : "locking your legs")>>." <</if>> <<else>> <<if $face is "covered">> "Come on, let's see your face. I want to see how you look having your ass fucked." <<else>> "<<pShe>> looks so cute having <<pher>> ass ravaged." <</if>> <</if>> <</if>> <<elseif $anusstate is "imminent">> <<if $enemytype is "beast">> <<if $orgasmdown gte 1>> <<if $face is "covered">> "You can cover your face if you want, we can all tell you're cumming hard for that <<beasttype>>." <<else>> "<<pShes>> cumming this hard with the <<beasttype>> pressing just the tip into <<pher>> ass." <</if>> <<else>> <<if $face is "covered">> "Don't be shy, I want a good picture of your face when your ass is skewered by that <<beasttype>>." <<else>> "Smile for the camera like a good <<beasttype>> <<bitch>>, you slut." <</if>> <</if>> <<else>> <<if $orgasmdown gte 1>> <<if $face is "covered">> "You can cover your face if you want, we can all tell you're cumming hard." <<else>> "<<pShes>> cumming this hard with just the tip pressing into <<pher>> ass." <</if>> <<else>> <<if $face is "covered">> "Don't be shy, I want a good picture of your face when your ass is skewered." <<else>> "Smile for the camera like a good anal slut." <</if>> <</if>> <</if>> <<elseif $anusstate is "entrance">> <<if $orgasmdown gte 1>> <<if $face is "covered">> "You can cover your face if you want, we can all tell you're cumming hard." <<else>> "<<pShes>> cumming this hard with just the tip pressing into <<pher>> ass." <</if>> <<else>> <<if $face is "covered">> "Don't be shy, I want a good picture of your face when your ass is skewered." <<else>> "Smile for the camera like a good anal slut." <</if>> <</if>> <<elseif $mouthstate is "penetrated">> <<if $enemytype is "beast">> <<if $orgasmdown gte 1>> <<if $face is "covered">> "Look at how cute <<pshe>> looks cumming while slurping on that <<beasttype>> dick. <<pShes>> so shy about it too." <<else>> "Look at how cute <<pshe>> looks cumming while slurping on that <<beasttype>> dick." <</if>> <<else>> <<if $face is "covered">> "Move your hand <<bitch>>, you're getting in the way of the action." <<else>> "Do you like the taste of <<beasttype>> dick?" <</if>> <</if>> <<else>> <<if $orgasmdown gte 1>> <<if $face is "covered">> "Look at how cute <<pshe>> looks cumming while slurping on a dick. <<pShes>> so shy about it too." <<else>> "Look at how cute <<pshe>> looks cumming while slurping on a dick." <</if>> <<else>> <<if $face is "covered">> "Move your hand <<bitch>>, you're getting in the way of the action." <<else>> "Such a nice shot of your face being fucked." <</if>> <</if>> <</if>> <<elseif $mouthstate is "imminent">> <<if $enemytype is "beast">> <<if $orgasmdown gte 1>> <<if $face is "covered">> "Cover your face all you want, we know you love it." <<else>> "<<pShes>> cumming already, <<pshe>> just can't wait for the <<beasttype>> dick." <</if>> <<else>> <<if $face is "covered">> "Move <<pher>> hand, I want to catch the look on <<pher>> face when it starts fucking <<pher>> mouth." <<else>> "I want to catch the look on <<pher>> face when it starts fucking <<pher>> mouth." <</if>> <</if>> <<else>> <<if $orgasmdown gte 1>> <<if $face is "covered">> "Cover your face all you want, we know you love it." <<else>> "<<pShes>> cumming already, now's the time to give <<phim>> a taste of dick." <</if>> <<else>> <<if $face is "covered">> "Move <<pher>> hand, I want to catch the look on <<pher>> face when you start fucking <<pher>> mouth." <<else>> "I want to catch the look on <<pher>> face when you start fucking <<pher>> mouth." <</if>> <</if>> <</if>> <<elseif $mouthstate is "entrance">> <<if $enemytype is "beast">> <<if $orgasmdown gte 1>> <<if $face is "covered">> "Cover your face all you want, we know you love it." <<else>> "<<pShes>> cumming already, <<pshe>> just can't wait for the <<beasttype>> dick." <</if>> <<else>> <<if $face is "covered">> "Move <<pher>> hand, I want to catch the look on <<pher>> face when it starts fucking <<pher>> mouth." <<else>> "I want to catch the look on <<pher>> face when it starts fucking <<pher>> mouth." <</if>> <</if>> <<else>> <<if $orgasmdown gte 1>> <<if $face is "covered">> "Cover your face all you want, we know you love it." <<else>> "<<pShes>> cumming already, now's the time to give <<phim>> a taste of dick." <</if>> <<else>> <<if $face is "covered">> "Move <<pher>> hand, I want to catch the look on <<pher>> face when you start fucking <<pher>> mouth." <<else>> "I want to catch the look on <<pher>> face when you start fucking <<pher>> mouth." <</if>> <</if>> <</if>> <<elseif $mouthstate is "othervagina">> <<if $enemytype is "beast">> <<if $orgasmdown gte 1>> <<if $face is "covered">> "<<pShes>> cumming from getting a face full of <<beasttype>> pussy. No wonder <<pshes>> shy about it." <<else>> "<<pShes>> cumming from getting a face full of <<beasttype>> pussy. Wow." <</if>> <<else>> <<if $face is "covered">> "Don't be shy. I bet you love eating <<beasttype>> pussy." <<else>> "Can't believe <<pshes>> got <<pher>> face all up in <<beasttype>> pussy." <</if>> <</if>> <<else>> <<if $orgasmdown gte 1>> <<if $face is "covered">> "Don't be shy. Let's see your face as you get off on eating that pussy." <<else>> "<<pShes>> cumming just from being all up in that pussy." <</if>> <<else>> <<if $face is "covered">> "<<pShes>> hiding <<pher>> face so we can't see how much <<pshe>> loves having a face full of pussy." <<else>> "Rub it in <<pher>> face. I bet <<pshe>> loves having <<pher>> face used." <</if>> <</if>> <</if>> <<elseif $mouthuse is "facesit" and $mouthstate is "vagina">> <<if $orgasmdown gte 1>> <<switch random(3)>> <<case 0>> "Look how much <<pshes>> loving being sat on." <<case 1>> "Aw. You almost can't see <<pher>> orgasm face while it's being sat on." <<case 2>> "That pussy isn't hiding how excited <<pshe>> looks. <<pShes>> cumming from face sitting." <<case 3>> "Wait until I show my friends how much <<pshe>> loves having <<pher>> face sat on." <</switch>> <<else>> <<if $enemyanger gte 30>> <<switch random(2)>> <<case 0>> "<<pShes>> really getting buried in there." <<case 1>> "Aw, <<pher>> face is going red! Keep sitting on <<phim>>!" <<case 2>> "You liking your face being sat on, slut?" <</switch>> <<else>> <<switch random(2)>> <<case 0>> "The best seat in the house." <<case 1>> "<<pHer>> face looks like the perfect throne." <<case 2>> "You look like you're enjoying it under there." <</switch>> <</if>> <</if>> <<elseif $mouthuse is "facesit" and $mouthstate is "anal">> <<if $orgasmdown gte 1>> <<if $mouthactiondefault is "anallick">> <<switch random(2)>> <<case 0>> "<<pShes>> cumming just from licking ass. Good <<girl>>." <<case 1>> "Look! <<pShes>> been driven to orgasm by the taste of that ass in <<pher>> mouth." <<case 2>> "<<pShe>> just came from licking ass. I need to share this." <</switch>> <<elseif $mouthactiondefault is "analkiss">> <<switch random(2)>> <<case 0>> "Kissing ass made <<phim>> cum. What a submissive <<slut>>." <<case 1>> "Cumming just from kissing ass? You were made to do that, <<bitch>>!" <<case 2>> "<<pShes>> cumming off of kissing ass. Make <<phim>> do it more!" <</switch>> <<else>> "That ass in your mouth was good enough to make you cum? Don't deny it!" <</if>> <<elseif $enemyanger gte 30>> <<switch random(2)>> <<case 0>> "Be a good slut and eat that ass." <<case 1>> "Go on, kiss that ass, you know you deserve to, slut." <<case 2>> "<<pShes>> getting squashed under that ass, and I bet <<pshes>> loving it." <</switch>> <<else>> <<switch random(2)>> <<case 0>> "Bet this pervy <<bitch>> is loving having <<pher>> mouth sat on." <<case 1>> "Hope that ass tastes good." <<case 2>> "<<pShes>> got a face full of ass. Wait until I show this around." <</switch>> <</if>> <<elseif $vaginastate is "othermouth">> <<if $orgasmdown gte 1>> <<if $face is "covered">> "You can't hide it, having your pussy licked is too much for you." <<else>> "Look at <<phim>> squirm! Your tongue's too much for <<phim>>." <</if>> <<else>> <<if $face is "covered">> "What's the matter? Ashamed of having your pussy licked?" <<else>> "Tongue-fuck <<phim>> harder, I want to see <<phim>> squirm." <</if>> <</if>> <<elseif $vaginastate is "othermouthimminent">> <<if $orgasmdown gte 1>> <<if $face is "covered">> "You can't hide your orgasm from the camera." <<else>> "<<pShes>> cumming, it might be too much for <<phim>> if you tongue-fuck <<phim>> now. Do it." <</if>> <<else>> <<if $face is "covered">> "Don't be shy, you like having your pussy eaten don't you." <<else>> "You like having your pussy eaten, don't you." <</if>> <</if>> <<elseif $vaginastate is "othermouthentrance">> <<if $orgasmdown gte 1>> <<if $face is "covered">> "You can't hide your orgasm from the camera." <<else>> "<<pShes>> cumming, it might be too much for <<phim>> if you tongue-fuck <<phim>> now. Do it." <</if>> <<else>> <<if $face is "covered">> "Don't be shy, you like having your pussy eaten don't you." <<else>> "You like having your pussy eaten, don't you." <</if>> <</if>> <<elseif $penisstate is "othermouth">> <<if $orgasmdown gte 1>> <<if $face is "covered">> "Don't be shy, it's normal to cum while having your penis sucked." <<else>> "I got the perfect picture of <<pher>> orgasm face." <</if>> <<else>> <<if $face is "covered">> "<<pShes>> embarrassed about having <<pher>> penis sucked! How adorable." <<else>> "Suck <<phim>> harder, I want to see how cute <<pshe>> looks." <</if>> <</if>> <<elseif $penisstate is "othermouthimminent">> <<if $orgasmdown gte 1>> <<if $face is "covered">> "<<pShes>> cumming already, sucking now might be too much for <<phim>>. Do it." <<else>> "<<pShes>> cumming already, sucking now might be too much for <<phim>>. Do it." <</if>> <<else>> <<if $face is "covered">> "Move your hand, I want to see your expression when your penis starts getting sucked." <<else>> "I can't wait to see <<pher>> expression when you start sucking." <</if>> <</if>> <<elseif $penisstate is "othermouthentrance">> <<if $orgasmdown gte 1>> <<if $face is "covered">> "<<pShes>> cumming already, sucking now might be too much for <<phim>>. Do it." <<else>> "<<pShes>> cumming already, sucking now might be too much for <<phim>>. Do it." <</if>> <<else>> <<if $face is "covered">> "Move your hand, I want to see your expression when your penis starts getting sucked." <<else>> "I can't wait to see <<pher>> expression when you start sucking." <</if>> <</if>> <<elseif $anusstate is "othermouth">> <<if $orgasmdown gte 1>> <<if $face is "covered">> "No point hiding your face, we can all tell you're a pervert." <<else>> "This slut likes having <<pher>> ass eaten." <</if>> <<else>> <<if $face is "covered">> "Move your hand <<bitch>>, I want to see how you feel about having your ass eaten." <<else>> "Probe <<pher>> ass harder, I think <<pshe>> likes it." <</if>> <</if>> <<elseif $anusstate is "othermouthimminent">> <<if $orgasmdown gte 1>> <<if $face is "covered">> "No point hiding your face, we can all tell you're a pervert." <<else>> "This slut likes having <<pher>> ass eaten." <</if>> <<else>> <<if $face is "covered">> "Move your hand <<bitch>>, I want to see how you feel about having your ass eaten." <<else>> "Probe <<pher>> ass harder, I think <<pshe>> likes it." <</if>> <</if>> <<elseif $anusstate is "othermouthentrance">> <<if $orgasmdown gte 1>> <<if $face is "covered">> "No point hiding your face, we can all tell you're a pervert." <<else>> "This slut likes having <<pher>> ass eaten." <</if>> <<else>> <<if $face is "covered">> "Move your hand <<bitch>>, I want to see how you feel about having your ass eaten." <<else>> "Probe <<pher>> ass harder, I think <<pshe>> likes it." <</if>> <</if>> <<elseif $mouthstate is "kiss">> <<if $orgasmdown gte 1>> <<if $face is "covered">> "Is <<pShe>> cumming from being kissed? Is that pure or lewd?" <<else>> "<<pShes>> cumming from being kissed! Is that pure or lewd?" <</if>> <<else>> <<if $face is "covered">> "<<pShes>> shy about being kissed, how adorable." <<else>> "Such a romantic image." <</if>> <</if>> <<elseif $mouthstate is "kissimminent">> <<if $orgasmdown gte 1>> <<if $face is "covered">> "Is <<pShe>> cumming from being kissed? Is that pure or lewd?" <<else>> "<<pShes>> cumming from being kissed! Is that pure or lewd?" <</if>> <<else>> <<if $face is "covered">> "<<pShes>> shy about being kissed, how adorable." <<else>> "Such a romantic image." <</if>> <</if>> <<elseif $mouthstate is "kissentrance">> <<if $orgasmdown gte 1>> <<if $face is "covered">> "Is <<pShe>> cumming from thinking about being kissed? Is that pure or lewd?" <<else>> "<<pShes>> cumming from the thought of being kissed! Is that pure or lewd?" <</if>> <<else>> <<if $face is "covered">> "<<pShes>> shy about getting a kiss, how adorable." <<else>> "Such a romantic image." <</if>> <</if>> <<else>> <<if $orgasmdown gte 1>> <<if $enemytype is "beast">> <<if $face is "covered">> "Are you ashamed to be cumming for that <<beasttype>>?" <<else>> "That <<beasttype>> can really make you cum hard, and I have proof." <</if>> <<else>> <<if $face is "covered">> "You can hide your face, but not your orgasm." <<else>> "Your orgasm face is so cute, and I have proof." <</if>> <</if>> <<else>> <<if $face is "covered">> <<if $pain gte 80>> "Hide your face if you want, we can see your tears." <<elseif $pain gte 40>> "You can't hide your tears from the camera." <<else>> "Don't be shy, let the camera see that pretty face of yours." <</if>> <<else>> <<if $pain gte 80>> "<<pShes>> crying. How pathetic." <<elseif $pain gte 40>> "Don't be upset. Smile for the camera." <<else>> "Smile, <<girl>>." <</if>> <</if>> <</if>> <</if>> <<elseif $rng gte 61 and $breastpic isnot 1>> <<set $breastpic to 1>> The $audiencedesc $audiencecamera points <<ahis>> camera at your <<chest>>. A light flashes as <<ahe>> takes a picture. <<rng>> <<if $player.breastsize is 0>> <<if $player.gender_appearance is "m">> <<if $worn.upper.exposed gte 2>> <<if $rng gte 67>> "Boys have such cute nipples." <<elseif $rng gte 33>> "That sleek chest of yours is a thing of beauty." <<elseif $rng gte 21 and $anusdoubletarget isnot undefined and $NPCList[$anustarget].penis is "anusdouble" and $NPCList[$anusdoubletarget].penis is "anusdouble">> "<<pHer>> hard nipples tell all. This <<girl>> loves two hard cocks up the ass!" <<else>> "Don't be shy, there's nothing lewd about your boy nipples." <</if>> <<else>> <<if $rng gte 67>> "Get his top off, I wanna see that fine chest." <<elseif $rng gte 33>> "I wish I could take a picture of what's under his top." <<else>> "Even clothed I can tell you have a lovely chest." <</if>> <</if>> <<else>> <<if $worn.upper.exposed gte 2>> <<if $rng gte 67>> "Your flat chest looks delicious." <<elseif $rng gte 33>> "<<pHer>> chest is so flat <<pshe>> could pass as a boy." <<elseif $rng gte 21 and $anusdoubletarget isnot undefined and $NPCList[$anustarget].penis is "anusdouble" and $NPCList[$anusdoubletarget].penis is "anusdouble">> "<<pHer>> boy nipples are so hard! This flat <<bitch>> loves two hard cocks up the ass!" <<elseif $rng gte 21 and $vaginadoubletarget isnot undefined and $NPCList[$vaginatarget].penis is "vaginadouble" and $NPCList[$vaginadoubletarget].penis is "vaginadouble">> "<<pHer>> nipples are so hard! This flat <<bitch>> loves a double pussy pounding!" <<else>> "It's important I take pictures of her cute chest. I'll need them later." <</if>> <<else>> <<if $rng gte 67>> "I can't wait to see under her top." <<elseif $rng gte 33>> "Do other girls tease you for your flat chest?" <<else>> "Don't worry, you're cute even without boobs." <</if>> <</if>> <</if>> <<insecurity "breasts_small" 1>><<ginsecurity "breasts_small">> <<elseif $player.breastsize lte 5>> <<if $player.gender_appearance is "m">> <<if $worn.upper.exposed gte 2>> <<if $rng gte 67>> "Your flabby chest is almost like a girl's." <<elseif $rng gte 33>> "Look at those little tits. I bet the other boys pick on you." <<else>> "Don't be shy, there's nothing lewd about your boy nipples, even if they look like a girl's." <</if>> <<else>> <<if $rng gte 67>> "Get his top off, I wanna see that fine chest." <<elseif $rng gte 33>> "I wish I could take a picture of what's under his top." <<else>> "Even clothed I can tell you have a lovely chest." <</if>> <</if>> <<else>> <<if $worn.upper.exposed gte 2>> <<if $rng gte 67>> "Her tiny breasts are so cute." <<elseif $rng gte 33>> "Now however large your breasts grow, I'll have evidence of when they were small and cute." <<elseif $rng gte 21 and $anusdoubletarget isnot undefined and $NPCList[$anustarget].penis is "anusdouble" and $NPCList[$anusdoubletarget].penis is "anusdouble">> "<<pHer>> nipples are so hard! This <<bitch>> loves double stuffing!" <<elseif $rng gte 21 and $vaginadoubletarget isnot undefined and $NPCList[$vaginatarget].penis is "vaginadouble" and $NPCList[$vaginadoubletarget].penis is "vaginadouble">> "<<pHer>> nipples are so hard! This <<bitch>> loves double stuffing!" <<else>> "Don't be ashamed of your small breasts, they're adorable." <</if>> <<else>> <<if $rng gte 67>> "I can see the shape of <<pher>> tiny breasts beneath <<pher>> $worn.upper.name." <<elseif $rng gte 33>> "Get <<pher>> top off, I want a picture of <<pher>> breasts." <<else>> "I can't wait to see <<pher>> little breasts, I bet they're superb." <</if>> <</if>> <</if>> <<insecurity "breasts_small" 1>><<ginsecurity "breasts_small">> <<elseif $player.breastsize lte 7>> <<if $worn.upper.exposed gte 2>> <<if $rng gte 67>> "Your breasts are very photogenic." <<elseif $rng gte 33>> "Your breasts are mesmerising." <<else>> "This picture of your breasts will come in handy." <</if>> <<else>> <<if $rng gte 67>> "Get <<pher>> top off, I want a picture of <<pher>> breasts." <<elseif $rng gte 33>> "Don't be embarrassed, it's not like your breasts are exposed yet." <<else>> "Even clothed I can tell how lovely <<pher>> breasts are." <</if>> <</if>> <<insecurity "breasts_big" 1>><<ginsecurity "breasts_big">> <<elseif $player.breastsize lte 10>> <<if $worn.upper.exposed gte 2>> <<if $rng gte 67>> "<<pHer>> breasts flop about so beautifully." <<elseif $rng gte 33>> "Those are some impressive mammaries." <<elseif $rng gte 21 and $anusdoubletarget isnot undefined and $NPCList[$anustarget].penis is "anusdouble" and $NPCList[$anusdoubletarget].penis is "anusdouble">> "I love how <<pher>> milkers jiggle as their cocks ravage <<pher>> slut ass!" <<elseif $rng gte 21 and $vaginadoubletarget isnot undefined and $NPCList[$vaginatarget].penis is "vaginadouble" and $NPCList[$vaginadoubletarget].penis is "vaginadouble">> "I love how <<pher>> milkers flop about as their cocks wreck this slut's pussy!" <<else>> "Don't be ashamed, you should be proud of such large breasts." <</if>> <<else>> <<if $rng gte 67>> "Are <<pher>> breasts really as large as they seem? Only one way to find out." <<elseif $rng gte 33>> "Get <<pher>> top off, I want a picture of <<pher>> large breasts for later use." <<else>> "Breasts that large are lewd even under clothes." <</if>> <</if>> <<insecurity "breasts_big" 1>><<ginsecurity "breasts_big">> <<else>> <<if $worn.upper.exposed gte 2>> <<if $rng gte 67>> "Those are some gigantic udders." <<elseif $rng gte 33>> "You could feed every baby in town with those." <<else>> "Glad I got photographic proof, no one would believe how big they were otherwise." <</if>> <<else>> <<if $rng gte 67>> "You can't fake breasts this large, surely." <<elseif $rng gte 33>> "Get <<pher>> top off, I want a picture of these massive things." <<else>> "Breasts this huge are lewd even under clothes." <</if>> <</if>> <<insecurity "breasts_big" 2>><<ginsecurity "breasts_big">> <</if>> <<elseif $rng gte 41 and $bottompic isnot 1>> <<set $bottompic to 1>> The $audiencedesc $audiencecamera points <<ahis>> camera at your <<bottom>>. A light flashes as <<ahe>> takes a picture. <<rng>> <<if $anusstate is "penetrated">> <<if $enemytype is "beast">> <<if $orgasmdown gte 1>> "I got a nice close-up of the <<beasttype>> ravaging <<pher>> ass while <<pshe>> cums." <<elseif $leglocktarget isnot undefined>> "I got a nice close-up of <<phim>> <<print ($position is "doggy" ? "pushing <<pher>> ass onto" : "wrapping <<pher>> legs around")>> the <<beasttype>>." <<else>> "I got a nice close-up of the <<beasttype>> ravaging <<pher>> ass." <</if>> <<else>> <<if $orgasmdown gte 1>> "I got a nice close-up of <<pher>> ass getting fucked. Look at <<phim>> shake." <<elseif $leglocktarget isnot undefined>> "I got a nice close-up of <<phim>> <<print ($position is "doggy" ? "pressing back" : "locking <<pher>> legs")>> as <<pher>> ass gets fucked." <<else>> "I got a nice close-up of <<pher>> ass getting fucked." <</if>> <</if>> <<elseif $anusstate is "imminent">> <<if $enemytype is "beast">> <<if $orgasmdown gte 1>> "<<pShes>> already cumming, I wonder how <<pshe>> would take a proper anal fucking from that <<beasttype>>." <<else>> "I want to catch the moment it starts fucking <<phim>> proper." <</if>> <<else>> <<if $orgasmdown gte 1>> "<<pShes>> already cumming, I wonder how <<pshe>> would take a proper anal fucking." <<else>> "I want to catch the moment it goes in <<pher>> ass." <</if>> <</if>> <<elseif $anusstate is "entrance">> <<if $enemytype is "beast">> <<if $orgasmdown gte 1>> "I think it's gonna fuck <<pher>> slut ass!" <<else>> "I think it's gonna fuck <<pher>> ass!" <</if>> <<else>> <<if $orgasmdown gte 1>> "I hope you're going all-in on this little slut's ass." <<else>> "I hope you're going all-in on <<pher>> ass." <</if>> <</if>> <<elseif $anusstate is "othermouth">> <<if $orgasmdown gte 1>> "<<pShes>> responding to having <<pher>> ass eaten." <<else>> "You're really getting in there." <</if>> <<elseif $anusstate is "othermouthimminent">> <<if $orgasmdown gte 1>> "What does <<pher>> cumming ass taste like?" <<else>> "How's <<pshe>> taste?" <</if>> <<elseif $anusstate is "othermouthentrance">> <<if $orgasmdown gte 1>> "It might be too much for <<phim>>. I can't wait." <<else>> "You're actually gonna eat <<pher>> ass?" <</if>> <<elseif $anusstate isnot 0 and $anusstate.startsWith("double")>> <<if $NPCList[$anustarget].penis is "anusdouble" and $NPCList[$anusdoubletarget].penis is "anusdouble">> <<if $orgasmdown gte 1>> "This is the money shot! Look at <<phim>> shake with two cocks in <<pher>> ass!" <<else>> <<set _myrng to random(1,2)>> <<switch _myrng>> <<case 1>> "I got a nice close-up of <<pher>> ass getting double fucked. Super slut!" <<case 2>> "Yes, that's it, take both those cocks you dirty slut! The camera loves you!" <</switch>> <</if>> <<else>> <<if $orgasmdown gte 1>> "<<pShes>> already cumming, I wonder how <<pshe>> would take a proper double anal fucking." <<else>> "I want to catch the moment both cocks go in <<pher>> ass." <</if>> <</if>> <<else>> <<if $orgasmdown gte 1>> <<if $worn.lower.exposed gte 2 and $worn.under_lower.exposed gte 1>> <<if $rng gte 67>> "I got a nice shot of <<pher>> bare ass." <<elseif $rng gte 33>> "I've never seen such a spankable ass." <<else>> "<<pHer>> orgasm is making <<pher>> ass shake beautifully." <</if>> <<else>> <<if $rng gte 67>> "<<pShes>> such a lewd <<girl>>, <<pshe>> needs to be punished." <<elseif $rng gte 33>> "Get <<pher>> clothes off while <<pshe>> spasms, I want a clear shot of <<pher>> ass." <<else>> "<<pHer>> ass is so lewd, even clothed." <</if>> <</if>> <<else>> <<if $worn.lower.exposed gte 2 and $worn.under_lower.exposed gte 1>> <<if $rng gte 67>> "Are you embarrassed about your ass being exposed like this?" <<elseif $rng gte 33>> "I got a great shot of <<pher>> ass." <<else>> "<<pHer>> naked ass is so lewd." <</if>> <<else>> <<if $rng gte 67>> "This <<girl>> has a fine ass." <<elseif $rng gte 33>> "Bare <<pher>> ass, I want a better picture." <<else>> "Even clothed <<pher>> ass looks good." <</if>> <</if>> <</if>> <</if>> <<elseif $rng gte 21 and $genitalpic isnot 1>> <<set $genitalpic to 1>> The $audiencedesc $audiencecamera points <<ahis>> camera at your <<privates>>. A light flashes as <<ahe>> takes a picture. <<rng>> <<if $vaginastate is "penetrated">> <<if $enemytype is "beast">> <<if $orgasmdown gte 1>> "I got a nice shot of <<phim>> shuddering on that dick." <<elseif playerBellyVisible() and $settings.pregnancySpeechEnabled>> "Even when <<pshes>> already knocked up, <<pshe>> just can't help but be <<bred>> like a <<bitch>>!" <<elseif $leglocktarget isnot undefined>> "Look at <<phim>> <<print ($position is "doggy" ? "push <<pherself>> back into" : "wrap <<pher>> legs around")>> the <<beasttype>>! Deviant <<bitch>>!" <<else>> "Wow, <<pher>> pussy is really getting pounded by that <<beasttype>>." <</if>> <<else>> <<if $orgasmdown gte 1>> "I got a nice shot of <<phim>> shuddering on that dick." <<elseif playerBellyVisible() and $settings.pregnancySpeechEnabled>> "Well, if <<pshe>> wasn't pregnant before, <<pshe>>'d be getting pretty close to it now..." <<elseif $leglocktarget isnot undefined>> "<<pShes>> begging for you to come inside! Give <<phim>> what <<pshe>> wants!" <<else>> "Wow, <<pher>> pussy is really getting a pounding." <</if>> <</if>> <<elseif $vaginastate is "imminent">> <<if $enemytype is "beast">> <<if $orgasmdown gte 1>> "<<pHer>> <<bitch>> pussy is twitching and it's not even in yet. <<pShe>> can't wait to be <<bred>>." <<else>> "I hope I catch the moment <<pher>> pussy is first violated." <</if>> <<else>> <<if $orgasmdown gte 1>> "<<pHer>> pussy is twitching and it's not even in yet. Such a slut." <<else>> "I hope I catch the moment <<pher>> pussy is first violated." <</if>> <</if>> <<elseif $vaginastate is "entrance">> <<if $enemytype is "beast">> <<if $orgasmdown gte 1>> "<<pShes>> cumming from such little stimulation, fucking a <<beasttype>> might break <<phim>> fully." <<else>> "Your pussy is about to get the treatment it deserves." <</if>> <<else>> <<if $orgasmdown gte 1>> "<<pShes>> cumming from such little stimulation, fucking <<pher>> pussy might break <<phim>> fully." <<else>> "Your pussy is about to get the treatment it deserves." <</if>> <</if>> <<elseif $vaginastate isnot 0 and $vaginastate.startsWith("double")>> <<if $NPCList[$vaginatarget].penis is "vaginadouble" and $NPCList[$vaginadoubletarget].penis is "vaginadouble">> <<if $orgasmdown gte 1>> "This is the money shot! Look at <<phim>> shake with two cocks in <<pher>> pussy!" <<else>> <<set _myrng to random(1,2)>> <<switch _myrng>> <<case 1>> "I got a nice close-up of <<pher>> pussy getting double fucked. Super slut!" <<case 2>> "Yes, that's it, take both those cocks you dirty slut! The camera loves you!" <</switch>> <</if>> <<else>> <<if $orgasmdown gte 1>> "<<pShes>> already cumming, I wonder how <<pshe>> would take a proper double pussy fucking." <<else>> "I want to catch the moment both cocks go in <<pher>> cunt!" <</if>> <</if>> <<elseif $penisstate is "penetrated">> <<if playerHasStrapon()>> "Wow, look at the pussy pounding that strap-on!" <<elseif $orgasmdown gte 1>> "I got a nice shot of <<phim>> shuddering in that pussy." <<else>> "Wow, <<pher>> penis is really getting a pounding." <</if>> <<elseif $penisstate is "imminent">> <<if playerHasStrapon()>> "I need to catch the moment <<pher>> strap-on penetrates!" <<elseif $orgasmdown gte 1>> "<<pHer>> penis is twitching and it's not even in yet. Such a <<slut>>." <<else>> "I hope I catch the moment <<pher>> penis is first violated." <</if>> <<elseif $penisstate is "entrance">> <<if playerHasStrapon()>> "Hope <<pshe>> knows how to use that thing!" <<elseif $orgasmdown gte 1>> "<<pShes>> cumming from such little stimulation, fucking <<phim>> might break <<phim>> fully." <<else>> "Your penis is about to get the treatment it deserves." <</if>> <<elseif $penisstate is "otheranus">> <<if playerHasStrapon()>> "I got a nice shot of <<pher>> strap-on pounding that ass!" <<elseif $orgasmdown gte 1>> "I got a nice shot of <<phim>> shuddering in that ass." <<else>> "Wow, <<pher>> penis is really getting a pounding." <</if>> <<elseif $penisstate is "otheranusimminent">> <<if playerHasStrapon()>> "Hope <<pshe>> knows how to use that thing!" <<elseif $orgasmdown gte 1>> "<<pHer>> penis is twitching and it's not even in yet. Such a <<slut>>." <<else>> "I hope I catch the moment <<pher>> penis is first violated." <</if>> <<elseif $penisstate is "otheranusentrance">> <<if playerHasStrapon()>> "I hope to see <<pher>> toy ruin that ass." <<elseif $orgasmdown gte 1>> "<<pShes>> cumming from such little stimulation, fucking <<phim>> might break <<phim>> fully." <<else>> "Your penis is about to get the treatment it deserves." <</if>> <<elseif $vaginastate is "othermouth">> <<if $orgasmdown gte 1>> "<<pHer>> pussy is twitching so delightfully." <<else>> "You're really getting your tongue in there." <</if>> <<elseif $vaginastate is "othermouthimminent">> <<if $orgasmdown gte 1>> "Does <<pher>> pussy juice taste good?" <<else>> "Does <<pher>> pussy taste good?" <</if>> <<elseif $vaginastate is "othermouthentrance">> <<if $orgasmdown gte 1>> "Does <<pher>> pussy juice taste good?" <<else>> "Does <<pher>> pussy taste good?" <</if>> <<elseif $penisstate is "othermouth">> <<if playerHasStrapon()>> "Wow, you're really mouth-fucking <<pher>> strap-on!" <<elseif $orgasmdown gte 1>> "Does <<pher>> cum taste good?" <<else>> "I can tell <<pshes>> cumming into your mouth." <</if>> <<elseif $penisstate is "othermouthimminent">> <<if playerHasStrapon()>> "That's right, swallow that toy." <<elseif $orgasmdown gte 1>> "Take <<phim>> into your mouth already, I want to see <<phim>> squirm more." <<else>> "Does <<pher>> penis taste good?" <</if>> <<elseif $penisstate is "othermouthentrance">> <<if playerHasStrapon()>> "I want to see you swallow <<pher>> toy." <<elseif $orgasmdown gte 1>> "Take <<phim>> into your mouth already, I want to see <<phim>> squirm more." <<else>> "Does <<pher>> penis taste good?" <</if>> <<elseif $speechmasturbate gte 1 and random(0,1) is 1>> <<if $rng lt 34>> "Look at this <<bitch>> getting <<pherself>> off!" <<elseif $rng lte 67>> "I got a good shot of <<phim>> playing with <<pherself>>!" <<else>> "Watching <<phim>> play with <<pherself>> makes me so horny." <</if>> <<else>> <<if $orgasmdown gte 1>> <<if !($worn.under_lower.exposed gte 1 and $worn.lower.exposed gte 2)>> "Are those spasms from cumming?" <<else>> <<if playerChastity()>> <<if $rng gte 67>> "Cumming while wearing a $worn.genitals.name, you must be a slut." <<elseif $rng gte 33>> "Someone unlock or break that chastity device, it's ruining a good photo." <<else>> "Are those spasms from cumming?" <</if>> <<elseif playerHasStrapon()>> "Are those spasms from cumming?" <<elseif $player.penisExist>> <<if $orgasmcount lt 24>> <<if $rng gte 67>> "I got a shot of <<pher>> cum flying through the air." <<elseif $rng gte 33>> "Look at <<phim>> squirt!" <<else>> "I caught <<phim>> cumming on camera. How shameful." <</if>> <<else>> <<if $rng gte 67>> "I got a shot of <<phim>> cumming, but nothing came out." <<elseif $rng gte 33>> "This <<girl>> can't even cum properly, pathetic." <<else>> "<<pHer>> orgasm is disappointingly dry. I got it on camera at least." <</if>> <</if>> <<else>> <<if $vaginause is "cover">> "Move your hand, I want a clear shot of your pussy while you cum." <<else>> "I got a perfect shot of <<pher>> pussy twitching in climax." <</if>> <</if>> <</if>> <<else>> <<if playerChastity("hidden") and $worn.under_lower.exposed gte 1 and $worn.lower.exposed gte 2>> <<if $rng gte 91 and ($anusstate is "penetrated" or $anusstate is "doublepenetrated")>> "Should have gotten yourself an anal shield. Too late now." <<elseif $rng gte 76>> "As if that will help you stay pure." <<elseif $rng gte 51>> "Someone break that device, <<pshe>> can't have a good time like that." <<elseif $rng gte 26>> "Shame I can't see what's under that device." <<else>> "Such a shame, I was looking forward to playing with it." <</if>> <<elseif playerChastity("cage") and $worn.under_lower.exposed gte 1 and $worn.lower.exposed gte 2>> <<if $penisuse is "cover">> <<if $rng gte 67>> "Move your hand, I want to see your penis." <<elseif $rng gte 33>> "Aww, <<pshes>> shy." <<else>> "Someone move <<pher>> hand out the way, I want a shot of <<pher>> penis." <</if>> <<else>> <<switch $player.penissize>> <<case 4>> <<if $rng gte 67>> "<<pShes>> huge! <<if playerHasStrapon()>>Bet you wish you had the key rather than the strapon!<<else>>How could it be locked up?<</if>>" <<elseif $rng gte 33>> "Is your freakishly big cock locked up because you hurt someone with it?" <<else>> "I've never seen such a huge cock. Real shame it can't be played with." <</if>> <<insecurity "penis_big" 1>><<ginsecurity "penis_big">> <<case 3>> <<if $rng gte 67>> "<<pShes>> bigger than I expected.<<if playerHasStrapon()>> At least <<pshe>> has a strapon.<</if>>" <<elseif $rng gte 33>> "Don't be shy, you should be proud of your penis, even if it's locked up tight." <<else>> "<<pHer>> penis is the perfect size. Real shame it can't be played with." <</if>> <<insecurity "penis_big" 1>><<ginsecurity "penis_big">> <<case 2>> <<if $rng gte 67>> "I got a great picture of <<pher>> cute and locked up penis<<if playerHasStrapon()>> hidden behind <<pher>> strapon<</if>>." <<elseif $rng gte 33>> "Don't be shy, everyone should know how beautiful your locked up penis is." <<else>> "If you don't want your caged penis photographed, you shouldn't act like a slut." <</if>> <<case 1 2>> <<if $rng gte 67>> "<<pShes>> so small!" <<elseif $rng gte 33>> "Such a small and cute penis. Almost a shame it's locked up." <<else>> "I thought <<pher>> penis would be bigger even when locked up." <</if>> <<insecurity "penis_small" 1>><<ginsecurity "penis_small">> <<case 0>> <<if $rng gte 67>> "<<pShes>> so tiny<<if playerHasStrapon()>>, no wonder <<pshes>> wearing a strapon<</if>>!" <<elseif $rng gte 33>> "I can't believe it's so tiny! Almost a shame it's locked up." <<else>> "I've never seen such a pathetic penis." <</if>> <<insecurity "penis_small" 2>><<ginsecurity "penis_small">> <<case -1>> <<if $rng gte 67>> "<<pShes>> so tiny<<if playerHasStrapon()>>, no wonder <<pshes>> wearing a strapon<</if>>!" <<elseif $rng gte 33>> "Did it get locked up because of how small it is?" <<else>> "Such a shame the pathetic penis is all locked up.<<if playerHasStrapon()>> Bet you love using your strapon.<</if>>" <</if>> <<insecurity "penis_small" 3>><<ginsecurity "penis_small">> <<case -2>> <<if $rng gte 67>> "I thought that was a locked up clit!<<if playerHasStrapon()>> No wonder <<pshes>> wearing a strapon.<</if>>" <<elseif $rng gte 33>> "Clearly deserved to be locked up for being so useless!<<if playerHasStrapon()>> Bet you love using your strapon.<</if>>" <<else>> "Is there even anything locked up in there?<<if playerHasStrapon()>> Almost missed it due to your strapon.<</if>>" <</if>> <<insecurity "penis_small" 4>><<ginsecurity "penis_small">> <</switch>> <</if>> <<elseif $worn.under_lower.exposed gte 1 and $worn.lower.exposed gte 2>> <<if $player.penisExist>> <<if $penisuse is "cover">> <<if $rng gte 67>> "Move your hand, I want to see your penis." <<elseif $rng gte 33>> "Aww, <<pshes>> shy." <<else>> "Someone move <<pher>> hand out the way, I want a shot of <<pher>> penis." <</if>> <<else>> <<switch $player.penissize>> <<case 4>> <<if $rng gte 67>> "<<pShes>> huge<<if playerHasStrapon()>>, why would you even wear a strapon<</if>>!" <<elseif $rng gte 33>> "<<pHer>> penis is freakishly big." <<else>> "I've never seen such a huge cock." <</if>> <<insecurity "penis_big" 1>><<ginsecurity "penis_big">> <<case 3>> <<if $rng gte 67>> "<<pShes>> bigger than I expected.<<if playerHasStrapon()>> <<pShe>> should get rid of <<pher>> strapon.<</if>>" <<elseif $rng gte 33>> "Don't be shy, you should be proud of your penis." <<else>> "<<pHer>> penis is the perfect size.<<if playerHasStrapon()>> You should get rid of your strapon.<</if>>" <</if>> <<insecurity "penis_big" 1>><<ginsecurity "penis_big">> <<case 2>> <<if $rng gte 67>> "I got a great picture of <<pher>> cute penis<<if playerHasStrapon()>> hidden behind <<pher>> strapon<</if>>." <<elseif $rng gte 33>> "Don't be shy, everyone should know how beautiful your penis is." <<else>> "If you don't want your penis photographed, you shouldn't act like a slut." <</if>> <<case 1>> <<if $rng gte 67>> "<<pShes>> so small!" <<elseif $rng gte 33>> "Such a small and cute penis." <<else>> "I thought <<pher>> penis would be bigger." <</if>> <<insecurity "penis_small" 1>><<ginsecurity "penis_small">> <<case 0>> <<if $rng gte 67>> "<<pShes>> so tiny<<if playerHasStrapon()>>, no wonder you're wearing a strapon<</if>>!" <<elseif $rng gte 33>> "I can't believe it's so tiny!" <<else>> "I've never seen such a pathetic penis." <</if>> <<insecurity "penis_small" 2>><<ginsecurity "penis_small">> <<case -1>> <<if $rng gte 67>> "<<pShes>> so tiny<<if playerHasStrapon()>>, no wonder you're wearing a strapon<</if>>!" <<elseif $rng gte 33>> "It's like a large clit. Have you considered putting it in a cage?" <<else>> "I've never seen such a useless penis<<if playerHasStrapon()>>, bet you love using your strapon<</if>>." <</if>> <<insecurity "penis_small" 3>><<ginsecurity "penis_small">> <<case -2>> <<if $rng gte 67>> "I thought that was a clit<<if playerHasStrapon()>>, no wonder you're wearing a strapon<</if>>!" <<elseif $rng gte 33>> "Could anyone even feel anything if you fucked them with it?" <<else>> "I've never seen such a useless penis. Why isn't it in a cage?" <</if>> <<insecurity "penis_small" 4>><<ginsecurity "penis_small">> <</switch>> <</if>> <<else>> <<if $vaginause is "cover">> <<if $rng gte 67>> "Move your hand, I want to see your pussy." <<elseif $rng gte 33>> "Aww, <<pshes>> shy." <<else>> "Someone move <<pher>> hand out the way, I want a shot of <<pher>> pussy." <</if>> <<else>> <<if $rng gte 67>> "I got a great picture of <<pher>> cute pussy." <<elseif $rng gte 33>> "Don't be shy, everyone should know how beautiful your pussy is." <<else>> "If you don't want your pussy photographed, you shouldn't act like a slut." <</if>> <</if>> <</if>> <<else>> <<if $player.gender_appearance is "m">> <<if $penisuse is "cover">> <<if $rng gte 67>> "Move your hand, I want to see your bulge." <<elseif $rng gte 33>> "Aww, <<pshes>> shy." <<else>> "Someone move <<pher>> hand out the way, I want a shot of <<pher>> bulge." <</if>> <<else>> <<if !calculatePenisBulge()>> <<if $rng gte 67>> "Where is the bulge, don't tell me <<pshes>> actually a girl." <<elseif $rng gte 33>> "Is your penis so small that it doesn't form a bulge?" <<else>> "I was expecting a bulge, but I don't see it." <</if>> <<elseif $rng gte 67>> "I got a great picture of <<pher>> cute bulge." <<elseif $rng gte 33>> "Don't be shy, everyone should know how beautiful your bulge is." <<else>> "If you don't want your bulge photographed, you shouldn't act like a slut." <</if>> <</if>> <<else>> <<if $vaginause is "cover">> <<if $rng gte 67>> "Sure, pretend you're not a <<slut>>." <<elseif $rng gte 33>> "Aww, <<pshes>> shy." <<else>> "What's that wet spot under <<pher>> hand?" <</if>> <<else>> <<if $rng gte 67>> "I got a great picture of <<pher>> pretty legs." <<elseif $rng gte 33>> "Rip those clothes off. I wanna see <<pher>> pussy." <<else>> "Bet this <<slut>> can't wait to show off <<pher>> pussy." <</if>> <</if>> <</if>> <</if>> <</if>> <</if>> <<elseif $bodypic isnot 1>> <<set $bodypic to 1>> The $audiencedesc $audiencecamera leans back so <<ahis>> camera can take in the whole scene. A light flashes as <<ahe>> takes a picture. <<if $vaginastate is "penetrated" or $vaginastate is "doublepenetrated">> <<if $enemytype is "beast">> <<if $orgasmdown gte 1>> <<if $face is "covered">> "Cover your face if you want, you're still a <<beasttypes>> <<bitch>>." <<else>> "The <<beasttypes>> fucked <<phim>> to orgasm, and I have proof." <</if>> <<elseif $leglocktarget isnot undefined>> <<if $face is "covered">> "You can hide your <<bitch>> face, but your <<bitch>> legs can't lie!" <<elseif $speechcamerapose is 1>> "That's it, smile for the camera while getting <<bred>>!" <<else>> "Good <<beasttype>>, show this <<bitch>> <<pher>> place. <<pShes>> letting you." <</if>> <<else>> <<if $face is "covered">> "Stop hiding your face and smile for the camera." <<elseif $speechcamerapose is 1>> "That's it, pose like the <<beasttype>> <<bitch>> you are!" <<else>> "Good <<beasttype>>, show this <<bitch>> <<pher>> place." <</if>> <</if>> <<else>> <<if $orgasmdown gte 1>> <<if $face is "covered">> "Cover your face if you want, it just makes the scene hotter." <<else>> "You've fucked <<phim>> to orgasm. Keep going." <</if>> <<elseif $leglocktarget isnot undefined>> <<if $face is "covered">> "Stop covering your face. <<print ($position is "doggy" ? "We know you're loving this!" : "Wrap your arms around <<personselect $vaginatarget>><<him>> too!")>>" <<elseif $speechcamerapose is 1>> "That's it, smile for the camera while <<print ($position is "doggy" ? "pushing into <<personselect $vaginatarget>><<him>>" : "locking your legs")>> like a whore!" <<else>> "This slut's wide open for you." <</if>> <<else>> <<if $face is "covered">> "Stop hiding your face and smile for the camera." <<elseif $speechcamerapose is 1>> "That's it, pose like the slut you are!" <<else>> "Show this slut what <<pshes>> good for." <</if>> <</if>> <</if>> <<elseif $vaginastate is "imminent">> <<if $enemytype is "beast">> <<if $orgasmdown gte 1>> <<if $face is "covered">> "Cumming already? It isn't even fucking you yet." <<else>> "Your cunt belongs to that <<beasttype>> now, slut." <</if>> <<else>> <<if $face is "covered">> "Stop covering your face, I want to capture your expression when it goes in." <<elseif $speechcamerapose is 1>> "This slut is about to be taken by a <<beasttype>> and is still concerned about looking good." <<else>> "Your cunt belongs to that <<beasttype>> now." <</if>> <</if>> <<else>> <<if $orgasmdown gte 1>> <<if $face is "covered">> "<<pHer>> pussy isn't being fucked yet <<pshes>> still cumming." <<else>> "There's no escaping now, slut." <</if>> <<else>> <<if $face is "covered">> "Stop covering your face, I want to capture your expression when it goes in." <<elseif $speechcamerapose is 1>> "I wanna see you hold that pose as the cock enters you." <<else>> "What are you waiting for? Fuck <<phim>> now." <</if>> <</if>> <</if>> <<elseif $vaginastate is "entrance">> <<if $enemytype is "beast">> <<if $orgasmdown gte 1>> <<if $face is "covered">> "Cumming already? It isn't even fucking you yet." <<else>> "Your cunt belongs to that <<beasttype>> now, slut." <</if>> <<else>> <<if $face is "covered">> "Stop covering your face, I want to capture your expression when it goes in." <<elseif $speechcamerapose is 1>> "In good spirits for someone about to get fucked by a <<beasttype>>." <<else>> "Your cunt belongs to that <<beasttype>> now." <</if>> <</if>> <<else>> <<if $orgasmdown gte 1>> <<if $face is "covered">> "<<pHer>> pussy isn't being fucked yet <<pshes>> still cumming." <<else>> "There's no escaping now, slut." <</if>> <<else>> <<if $face is "covered">> "Stop covering your face, I want to capture your expression when it goes in." <<elseif $speechcamerapose is 1>> "I hope <<pshe>> holds that pose as it goes in." <<else>> "What are you waiting for? Fuck <<phim>> now." <</if>> <</if>> <</if>> <<elseif $vaginastate is "doubleentrance" or $vaginastate is "doubleimminent">> /* Neither dick in */ <<if $vaginadoubletarget isnot undefined and $NPCList[$vaginatarget].penis isnot "vaginadouble" and $NPCList[$vaginadoubletarget].penis isnot "vaginadouble">> <<if $orgasmdown gte 1>> <<if $face is "covered">> "<<pHer>> pussy isn't being fucked yet <<pshes>> still cumming." <<else>> "There's no escaping now, slut." <</if>> <<else>> <<if $face is "covered">> "Stop covering your face, I want to capture your expression when both dicks go in." <<elseif $speechcamerapose is 1>> "I'd like to see <<phim>> keep this pose when both cocks go in." <<else>> "What are you waiting for? Fuck <<phim>> now." <</if>> <</if>> /* One dick in, the other at entrance */ <<elseif $vaginadoubletarget isnot undefined and (($NPCList[$vaginatarget].penis is "vaginadouble" and $NPCList[$vaginadoubletarget].penis isnot "vaginadouble") or ($NPCList[$vaginatarget].penis isnot "vaginadouble" and $NPCList[$vaginadoubletarget].penis is "vaginadouble"))>> <<if $orgasmdown gte 1>> <<if $face is "covered">> "<<pHer>> pussy is cumming at the thought of double dicking!" <<else>> "About to get double stuffed now, slut." <</if>> <<else>> <<if $face is "covered">> "Stop covering your face, I want to capture your expression when both dicks go in." <<elseif $speechcamerapose is 1>> "Just the thought of a double dicking is making this slut lose <<pher>> mind." <<else>> "What are you waiting for? Double fuck <<phim>> now." <</if>> <</if>> <</if>> <<elseif $penisstate is "penetrated">> <<if $orgasmdown gte 1>> <<if $face is "covered">> "Cover your face if you want, it just makes the scene hotter." <<else>> "You've fucked <<phim>> to orgasm. Keep going." <</if>> <<else>> <<if $face is "covered">> "Stop hiding your face and smile for the camera." <<elseif $speechcamerapose is 1>> "That's it, pose like a <<slut>> while that pussy ravages you." <<else>> "Show this fucktoy what <<pshes>> good for." <</if>> <</if>> <<elseif $penisstate is "imminent">> <<if $orgasmdown gte 1>> <<if $face is "covered">> "<<pHer>> penis isn't being fucked, yet <<pshes>> still cumming." <<else>> "There's no escaping now, slut." <</if>> <<else>> <<if $face is "covered">> "Stop covering your face, I want to capture your expression when it goes in." <<elseif $speechcamerapose is 1>> "Fuck <<phim>> now, while <<pshes>> posing like a <<slut>>." <<else>> "What are you waiting for? Fuck <<phim>> now." <</if>> <</if>> <<elseif $penisstate is "entrance">> <<if $orgasmdown gte 1>> <<if $face is "covered">> "<<pHer>> penis isn't being fucked, yet <<pshes>> still cumming." <<else>> "There's no escaping now, slut." <</if>> <<else>> <<if $face is "covered">> "Stop covering your face, I want to capture your expression when it goes in." <<elseif $speechcamerapose is 1>> "That's it, make sure you give a good fucking." <<else>> "What are you waiting for? Fuck <<phim>> now." <</if>> <</if>> <<elseif $penisstate is "otheranus">> <<if $orgasmdown gte 1>> <<if $face is "covered">> "Look at <<pher>> body writhe." <<else>> "You've fucked <<phim>> to orgasm. Keep going." <</if>> <<else>> <<if $face is "covered">> "<<pShes>> so shy and cute." <<elseif $speechcamerapose is 1>> "This fucktoy knows what <<pshes>> good for." <<else>> "Show this fucktoy what <<pshes>> good for." <</if>> <</if>> <<elseif $penisstate is "otheranusimminent">> <<if $orgasmdown gte 1>> <<if $face is "covered">> "<<pHer>> penis isn't being fucked, yet <<pshes>> still cumming." <<else>> "There's no escaping now, slut." <</if>> <<else>> <<if $face is "covered">> "Stop covering your face, I want to capture your expression when it goes in." <<elseif $speechcamerapose is 1>> "I wonder if <<pshe>>'ll be able to hold this pose as it goes in." <<else>> "What are you waiting for? Fuck <<phim>> now." <</if>> <</if>> <<elseif $penisstate is "otheranusentrance">> <<if $orgasmdown gte 1>> <<if $face is "covered">> "<<pHer>> penis isn't being fucked, yet <<pshes>> still cumming." <<else>> "There's no escaping now, slut." <</if>> <<else>> <<if $face is "covered">> "Stop covering your face, I want to capture your expression when it goes in." <<elseif $speechcamerapose is 1>> "That's the look of an eager slut, if I've ever seen one." <<else>> "What are you waiting for? Fuck <<phim>> now." <</if>> <</if>> <<elseif $anusstate is "penetrated">> <<if $enemytype is "beast">> <<if $orgasmdown gte 1>> <<if $face is "covered">> "You're cumming with a <<beasttypes>> dick in your ass, how much dignity do you think you're protecting?" <<else>> "That's right, cum on that animal dick. Show the world what a <<bitch>> you are." <</if>> <<elseif $leglocktarget isnot undefined>> <<if $face is "covered">> "Good <<beasttype>>. Don't stop until <<pshe>> can't stand." <<elseif $speechcamerapose is 1>> "This <<bitch>> knows where she belongs: with <<beasttype>> cock in <<pher>> ass." <<else>> "Good <<beasttype>>, show this <<bitch>> <<pher>> place. <<pShes>> letting you." <</if>> <<else>> <<if $face is "covered">> "Good <<beasttype>>, fuck this <<bitch>> hard." <<elseif $speechcamerapose is 1>> "That's the look of an eager <<bitch>>, if I've ever seen one." <<else>> "Good <<beasttype>>, show this <<girl>> <<pher>> place." <</if>> <</if>> <<else>> <<if $orgasmdown gte 1>> <<if $face is "covered">> "You're cumming with a dick in your ass, how much dignity do you think you're protecting?" <<else>> "That's right, cum on that dick. Show the world what a huge <<slut>> you are." <</if>> <<elseif $leglocktarget isnot undefined>> <<if $face is "covered">> "Fuck <<pher>> ass until <<pshe>> goes limp!" <<elseif $speechcamerapose is 1>> "That's it, smile for the camera while <<print ($position is "doggy" ? "pushing against <<personselect $anustarget>><<him>>" : "locking your legs")>>!" <<else>> "Ravage <<phim>> harder. I don't think <<pshe>>'ll complain." <</if>> <<else>> <<if $face is "covered">> "Fuck <<phim>> harder!" <<elseif $speechcamerapose is 1>> "That's the look of an eager <<slut>>, if I've ever seen one." <<else>> "Keep ravaging this <<girl>>'s ass, I want more pictures." <</if>> <</if>> <</if>> <<elseif $anusstate is "imminent" or $anusstate is "doubleimminent">> <<if $enemytype is "beast">> <<if $orgasmdown gte 1>> <<if $face is "covered">> "You love it, don't pretend otherwise." <<else>> "This <<bitch>> can't help it." <</if>> <<else>> <<if $face is "covered">> "Move your hands, I want to see your expression when your ass is violated." <<elseif $speechcamerapose is 1>> "Look at how eager this <<bitch>> is." <<else>> "Good <<beasttype>>, make <<phim>> your <<bitch>>." <</if>> <</if>> <<else>> <<if $orgasmdown gte 1>> <<if $face is "covered">> "You can't hide your orgasm from us." <<else>> "This <<bitch>> can't help it." <</if>> <<else>> <<if $face is "covered">> "Move your hands, I want to see your expression when your ass is violated." <<elseif $speechcamerapose is 1>> "Will you still be so confident with that thing inside you, I wonder?" <<else>> "Fuck <<phim>>, make <<phim>> squirm." <</if>> <</if>> <</if>> <<elseif $anusstate is "entrance" or $anusstate is "doubleentrance">> <<if $enemytype is "beast">> <<if $orgasmdown gte 1>> <<if $face is "covered">> "You can't hide your orgasm from us." <<else>> "This <<bitch>> can't help it." <</if>> <<else>> <<if $face is "covered">> "A good fucking will teach this <<bitch>> <<pher>> place." <<elseif $speechcamerapose is 1>> "I love how confident this <<bitch>> is." <<else>> "I think it's gonna fuck <<phim>>, I can't wait to get a picture." <</if>> <</if>> <<else>> <<if $orgasmdown gte 1>> <<if $face is "covered">> "You can't hide your orgasm from us." <<else>> "This <<bitch>> can't help it." <</if>> <<else>> <<if $face is "covered">> "This <<girl>> needs to learn <<pher>> place." <<elseif $speechcamerapose is 1>> "I love how confident this slut is." <<else>> "Fuck <<phim>>, make <<phim>> squirm." <</if>> <</if>> <</if>> <<elseif $anusstate is "doublepenetrated">> <<if $orgasmdown gte 1>> <<if $face is "covered">> "You're cumming with two dicks in your ass, how much dignity do you think you're protecting?" <<else>> "That's right, cum on those dicks. Show the world what a huge slut you are." <</if>> <<else>> <<if $face is "covered">> "Fuck <<phim>> harder! This <<bitch>> can take both of you!" <<elseif $speechcamerapose is 1>> "What a champ." <<else>> "Keep ruining this <<girl>>'s ass, I want more pictures." <</if>> <</if>> <<elseif $mouthstate is "penetrated">> <<if $enemytype is "beast">> <<if $orgasmdown gte 1>> <<if $face is "covered">> "It's amazing what <<pshe>> can fit in there." <<else>> "I hope it cums down <<pher>> throat while <<pshe>> orgasms." <</if>> <<else>> <<if $face is "covered">> "I doubt the <<beasttype>> cares which hole it fucks." <<elseif $speechcamerapose is 1>> "This <<bitch>> is addicted to <<beasttype>> cum, look at <<phim>>." <<else>> "You like the taste of <<beasttype>> dick, don't you." <</if>> <</if>> <<else>> <<if $orgasmdown gte 1>> <<if $face is "covered">> "It's amazing what <<pshe>> can fit in there." <<else>> "I hope you cum down <<pher>> throat while <<pshe>> orgasms." <</if>> <<else>> <<if $face is "covered">> "No hole is off-limits." <<elseif $speechcamerapose is 1>> "Bet you can't wait for that tasty cum." <<else>> "Is that dick tasty? Don't answer with your mouth full." <</if>> <</if>> <</if>> <<elseif $mouthstate is "imminent">> <<if $enemytype is "beast">> <<if $orgasmdown gte 1>> <<if $face is "covered">> "Move <<pher>> hands, I want the camera to see who this <<bitch>> is." <<else>> "You'll look great cumming with a mouthful of <<beasttype>> dick." <</if>> <<else>> <<if $face is "covered">> "Don't stop there, show this <<bitch>> how much <<pshes>> worth." <<elseif $speechcamerapose is 1>> "Go on, suck it!" <<else>> "I want to see this <<bitch>> get a mouthful." <</if>> <</if>> <<else>> <<if $orgasmdown gte 1>> <<if $face is "covered">> "Move <<pher>> hands, I want the camera to see who this slut is." <<else>> "You'll look great cumming with a mouthful of dick." <</if>> <<else>> <<if $face is "covered">> "Don't stop there, show this <<bitch>> how much <<pshes>> worth." <<elseif $speechcamerapose is 1>> "Don't blow your load before getting it in, this <<bitch>> is thirsty." <<else>> "I want to see this <<bitch>> get a mouthful." <</if>> <</if>> <</if>> <<elseif $mouthstate is "entrance">> <<if $enemytype is "beast">> <<if $orgasmdown gte 1>> <<if $face is "covered">> "Move <<pher>> hands, I want the camera to see who this <<bitch>> is." <<else>> "You'll look great cumming with a mouthful of <<beasttype>> dick." <</if>> <<else>> <<if $face is "covered">> "Don't stop there, show this <<bitch>> how much <<pshes>> worth." <<elseif $speechcamerapose is 1>> "What an absolute piece of fuckmeat." <<else>> "I want to see this <<bitch>> get a mouthful." <</if>> <</if>> <<else>> <<if $orgasmdown gte 1>> <<if $face is "covered">> "Move <<pher>> hands, I want the camera to see who this slut is." <<else>> "You'll look great cumming with a mouthful of dick." <</if>> <<else>> <<if $face is "covered">> "Don't stop there, show this <<bitch>> how much <<pshes>> worth." <<elseif $speechcamerapose is 1>> "You can't wait for that tasty cock, can you?" <<else>> "I want to see this <<bitch>> get a mouthful." <</if>> <</if>> <</if>> <<elseif $mouthuse is "facesit">> <<if $orgasmdown gte 1>> <<switch random(2)>> <<case 0>> "This slut really loves having <<pher>> face sat on. <<pShes>> cumming." <<case 1>> "Such a submissive little <<bitch>>, if <<pshe>> gets off on having <<pher>> face abused like this." <<case 2>> "<<pShes>> getting off on being sat on. Sit on <<phim>> harder!" <</switch>> <<elseif $enemyanger gte 30>> <<switch random(4)>> <<case 0>> "Smother that loser's face under you." <<case 1>> "Put <<phim>> in <<pher>> place, beneath you." <<case 2>> "Go on, fuck <<pher>> face." <<case 3>> "Smother that slut in pussy and ass." <<case 4>> "Show that fucktoy <<pher>> place." <</switch>> <<else>> <<switch random(2)>> <<case 0>> "At least this slut knows <<pher>> place." <<case 1>> "Sit that ass down on <<pher>> face." <<case 2>> "I love seeing a <<girl>> get <<pher>> face sat on." <</switch>> <</if>> <<elseif $vaginastate is "othermouth">> <<if $orgasmdown gte 1>> <<if $face is "covered">> "Careful not to suffocate <<phim>>, I want more pictures first." <<else>> "<<pShes>> cumming, guess <<pshe>> is just a fucktoy." <</if>> <<else>> <<if $face is "covered">> "That's it, put <<pher>> mouth to work." <<elseif $speechcamerapose is 1>> "Look at <<phim>> putting on a good face." <<else>> "Is that pussy tasty? Don't answer with your mouth full." <</if>> <</if>> <<elseif $vaginastate is "othermouthimminent">> <<if $orgasmdown gte 1>> <<if $face is "covered">> "Move <<pher>> hands, I want the camera to see who this slut is." <<else>> "You'll look great cumming with a mouthful of cunt." <</if>> <<else>> <<if $face is "covered">> "Don't stop there, show this <<bitch>> how much <<pshes>> worth." <<elseif $speechcamerapose is 1>> "This <<bitch>> looks like a right tart." <<else>> "Put <<pher>> <<bitch>> mouth to work." <</if>> <</if>> <<elseif $vaginastate is "othermouthentrance">> <<if $orgasmdown gte 1>> <<if $face is "covered">> "Move <<pher>> hands, I want the camera to see who this slut is." <<else>> "You'll look great cumming with a mouthful of cunt." <</if>> <<else>> <<if $face is "covered">> "Don't stop there, show this <<bitch>> how much <<pshes>> worth." <<elseif $speechcamerapose is 1>> "Bet you'll like the taste." <<else>> "Put <<pher>> <<bitch>> mouth to work." <</if>> <</if>> <<elseif $penisstate is "othermouth">> <<if $orgasmdown gte 1>> <<if $face is "covered">> "<<pShes>> shy about cumming into your mouth, how cute." <<else>> "This <<girl>> is clearly enjoying it, don't stop." <</if>> <<else>> <<if $face is "covered">> "<<pShes>> shy about having <<pher>> dick sucked, how cute." <<elseif $speechcamerapose is 1>> "Look at <<phim>> love it." <<else>> "Smile for the camera, <<girl>>, you should be happy about having your penis sucked." <</if>> <</if>> <<elseif $penisstate is "othermouthimminent">> <<if $orgasmdown gte 1>> <<if $face is "covered">> "I hope you milk <<phim>> dry." <<else>> "Aren't you worried you'll get cum on your face?" <</if>> <<else>> <<if $face is "covered">> "Lick <<phim>> good and proper." <<elseif $speechcamerapose is 1>> "I bet <<pshe>>'ll look even cuter when cumming." <<else>> "I hope I get a shot of <<phim>> cumming on your face." <</if>> <</if>> <<elseif $penisstate is "othermouthentrance">> <<if $orgasmdown gte 1>> <<if $face is "covered">> "I hope you milk <<phim>> dry." <<else>> "Aren't you worried you'll get cum on your face?" <</if>> <<else>> <<if $face is "covered">> "Lick <<phim>> good and proper." <<elseif $speechcamerapose is 1>> "Lick <<phim>> dry." <<else>> "I hope I get a shot of <<phim>> cumming on your face." <</if>> <</if>> <<elseif $penisstate is "otherpenis">> <<if $orgasmdown gte 1>> <<if $face is "covered">> "Hiding <<pher>> face while cumming on that dick. Cute!" <<else>> "Look at <<pher>> cum squirting, it's covering that dick!" <</if>> <<else>> <<if $face is "covered">> "Yes, smash those <<penises>> together!" <<elseif $speechcamerapose is 1>> "It's nice to see you pose." <<else>> "I hope I get a good shot of <<phim>> cumming over that cock!" <</if>> <</if>> <<elseif $anusstate is "othermouth">> <<if $orgasmdown gte 1>> <<if $face is "covered">> "<<pShes>> embarrassed! How adorable." <<else>> "Cumming with someone's tongue in your ass, you're a lewd <<girl>> aren't you." <</if>> <<else>> <<if $face is "covered">> "I can't get a clear shot of <<pher>> face with <<pher>> hands in the way." <<elseif $speechcamerapose is 1>> "Not even embarrassed!" <<else>> "Another nice picture of this slut." <</if>> <</if>> <<elseif $anusstate is "othermouthimminent">> <<if $orgasmdown gte 1>> <<if $face is "covered">> "<<pShes>> embarrassed! How adorable." <<else>> "<<pShes>> cumming already, be careful not to make <<phim>> faint." <</if>> <<else>> <<if $face is "covered">> "I don't know what you think covering your face achieves." <<elseif $speechcamerapose is 1>> "Great pose." <<else>> "Are you gonna lick <<phim>> out? I need a picture of that." <</if>> <</if>> <<elseif $anusstate is "othermouthentrance">> <<if $orgasmdown gte 1>> <<if $face is "covered">> "<<pShes>> embarrassed! How adorable." <<else>> "<<pShes>> cumming already, be careful not to make <<phim>> faint." <</if>> <<else>> <<if $face is "covered">> "I don't know what you think covering your face achieves." <<elseif $speechcamerapose is 1>> "Keep that pose while you're licked out." <<else>> "Are you gonna lick <<phim>> out? I need a picture of that." <</if>> <</if>> <<elseif $mouthstate is "kiss">> <<if $orgasmdown gte 1>> <<if $face is "covered">> "Don't hide your pretty face." <<else>> "Is that kiss really so pleasurable or is <<pshe>> cumming?" <</if>> <<else>> <<if $face is "covered">> "How cute and romantic." <<elseif $speechcamerapose is 1>> "This <<girl>> loves it." <<else>> "How romantic." <</if>> <</if>> <<elseif $mouthstate is "kissimminent">> <<if $orgasmdown gte 1>> <<if $face is "covered">> "Don't hide your pretty face." <<else>> "Is that kiss really so pleasurable or is <<pshe>> cumming?" <</if>> <<else>> <<if $face is "covered">> "How cute and romantic." <<elseif $speechcamerapose is 1>> "This'll look so cute." <<else>> "How romantic." <</if>> <</if>> <<elseif $mouthstate is "kissentrance">> <<if $orgasmdown gte 1>> <<if $face is "covered">> "Is <<pshe>> shaking because <<pshes>> shy?" <<else>> "<<pShes>> shaking in anticipation." <</if>> <<else>> <<if $face is "covered">> "How cute and romantic." <<elseif $speechcamerapose is 1>> "What a pro." <<else>> "How romantic." <</if>> <</if>> <<elseif playerBellyVisible() and $settings.pregnancySpeechEnabled>> <<if $orgasmdown gte 1>> <<if $face is "covered">> "Afraid someone will recognise you, pregnant <<bitch>>?" <<else>> "No wonder this <<bitch>> is pregnant, look at <<phim>> go!" <</if>> <<else>> <<if $face is "covered">> "The pregnant slut is shy!" <<elseif $speechcamerapose is 1>> "I feel so bad for <<pher>> baby daddy." <<else>> "I got a nice picture of that baby bump." <</if>> <</if>> <<else>> <<if $orgasmdown gte 1>> <<if $face is "covered">> "What a slut." <<else>> "I hope <<pher>> convulsions come across in the picture." <</if>> <<else>> <<if $face is "covered">> <<if $pain gte 80>> "I think <<pshes>> hurt. Don't stop." <<elseif $pain gte 40>> "Don't bother hiding your tears, we can all see." <<else>> "Move your hands <<bitch>>, I want a picture of your face." <</if>> <<elseif $speechcamerapose is 1>> <<if $pain gte 80>> "Posing through the pain. What a trooper." <<elseif $pain gte 40>> "Putting on a brave face, are we?" <<else>> "This slut knows what the cameras like." <</if>> <<else>> <<if $pain gte 80>> "Now everyone will know how pathetic you are." <<elseif $pain gte 40>> "That's a nice shot. Are those tears?" <<else>> "Can't wait to share this with my friends." <</if>> <</if>> <</if>> <</if>> <</if>> <<if $face isnot "covered">> <<if $exposed is 1>> <<fameexhibitionism 1 "pic">> <<elseif $exposed gte 2>> <<fameexhibitionism 2 "pic">> <</if>> <<if playerBellyVisible()>> <<famepregnancy 1 "pic">> <</if>> <<if $sexavoid is 0 or $rapeavoid is 0>> <<if $consensual is 1>> <<famesex 1 "pic">> <<else>> <<famerape 1 "pic">> <</if>> <<if $enemytype is "beast">> <<famebestiality 1 "pic">> <</if>> <</if>> <</if>> <</widget>> <<widget "ahis">> <<if $audiencecamera is "man">> his <<elseif $audiencecamera is "boy">> his <<elseif $audiencecamera is "woman">> her <<elseif $audiencecamera is "girl">> her <</if>> <</widget>> <<widget "ahe">> <<if $audiencecamera is "man">> he <<elseif $audiencecamera is "boy">> he <<elseif $audiencecamera is "woman">> she <<elseif $audiencecamera is "girl">> she <</if>> <</widget>> <<widget "audiencespeech">> <<set $audiencemember to 0>> <<rng>> <<if $audienceforceboy is 1>> <<set $audiencemember to "boy">> <<elseif $audienceforcegirl is 1>> <<set $audiencemember to "girl">> <<elseif $location is "school" or $location is "pool" or $audienceforceteen is 1>> <<if maleChance() is 0>> <<set $audiencemember to "girl">> <<elseif maleChance() is 100>> <<set $audiencemember to "boy">> <<elseif $rng gte 51>> <<set $audiencemember to "boy">> <<else>> <<set $audiencemember to "girl">> <</if>> <<else>> <<if maleChance() is 0>> <<set $audiencemember to "woman">> <<elseif maleChance() is 100>> <<set $audiencemember to "man">> <<elseif $rng gte 51>> <<set $audiencemember to "man">> <<else>> <<set $audiencemember to "woman">> <</if>> <</if>> <<rng>> <<if $rng gte 91 and $audiencecamera6 is 0>> <span class="pink">A $audiencemember pulls out a phone and points the camera at you.</span> <<if $audiencecamera1 is 0>> <<set $audiencecamera1 to $audiencemember>> <<elseif $audiencecamera2 is 0>> <<set $audiencecamera2 to $audiencemember>> <<elseif $audiencecamera3 is 0>> <<set $audiencecamera3 to $audiencemember>> <<elseif $audiencecamera4 is 0>> <<set $audiencecamera4 to $audiencemember>> <<elseif $audiencecamera5 is 0>> <<set $audiencecamera5 to $audiencemember>> <<elseif $audiencecamera6 is 0>> <<set $audiencecamera6 to $audiencemember>> <</if>> <<else>> <<if $vaginastate is "penetrated">> <<if $orgasmdown gte 1>> <<if $face is "covered">> <<else>> <</if>> <<else>> <<if $face is "covered">> <<else>> <</if>> <</if>> <<elseif $vaginastate is "imminent">> <<if $orgasmdown gte 1>> <<if $face is "covered">> <<else>> <</if>> <<else>> <<if $face is "covered">> <<else>> <</if>> <</if>> <<elseif $vaginastate is "entrance">> <<if $orgasmdown gte 1>> <<if $face is "covered">> <<else>> <</if>> <<else>> <<if $face is "covered">> <<else>> <</if>> <</if>> <<elseif $penisstate is "penetrated">> <<if $orgasmdown gte 1>> <<if $face is "covered">> <<else>> <</if>> <<else>> <<if $face is "covered">> <<else>> <</if>> <</if>> <<elseif $penisstate is "imminent">> <<if $orgasmdown gte 1>> <<if $face is "covered">> <<else>> <</if>> <<else>> <<if $face is "covered">> <<else>> <</if>> <</if>> <<elseif $penisstate is "entrance">> <<if $orgasmdown gte 1>> <<if $face is "covered">> <<else>> <</if>> <<else>> <<if $face is "covered">> <<else>> <</if>> <</if>> <<elseif $penisstate is "otheranus">> <<if $orgasmdown gte 1>> <<if $face is "covered">> <<else>> <</if>> <<else>> <<if $face is "covered">> <<else>> <</if>> <</if>> <<elseif $penisstate is "otheranusimminent">> <<if $orgasmdown gte 1>> <<if $face is "covered">> <<else>> <</if>> <<else>> <<if $face is "covered">> <<else>> <</if>> <</if>> <<elseif $penisstate is "otheranusentrance">> <<if $orgasmdown gte 1>> <<if $face is "covered">> <<else>> <</if>> <<else>> <<if $face is "covered">> <<else>> <</if>> <</if>> <<elseif $anusstate is "penetrated">> <<if $orgasmdown gte 1>> <<if $face is "covered">> <<else>> <</if>> <<else>> <<if $face is "covered">> <<else>> <</if>> <</if>> <<elseif $anusstate is "imminent">> <<if $orgasmdown gte 1>> <<if $face is "covered">> <<else>> <</if>> <<else>> <<if $face is "covered">> <<else>> <</if>> <</if>> <<elseif $anusstate is "entrance">> <<if $orgasmdown gte 1>> <<if $face is "covered">> <<else>> <</if>> <<else>> <<if $face is "covered">> <<else>> <</if>> <</if>> <<elseif $mouthstate is "penetrated">> <<if $orgasmdown gte 1>> <<if $face is "covered">> <<else>> <</if>> <<else>> <<if $face is "covered">> <<else>> <</if>> <</if>> <<elseif $mouthstate is "imminent">> <<if $orgasmdown gte 1>> <<if $face is "covered">> <<else>> <</if>> <<else>> <<if $face is "covered">> <<else>> <</if>> <</if>> <<elseif $mouthstate is "entrance">> <<if $orgasmdown gte 1>> <<if $face is "covered">> <<else>> <</if>> <<else>> <<if $face is "covered">> <<else>> <</if>> <</if>> <<elseif $vaginastate is "othermouth">> <<if $orgasmdown gte 1>> <<if $face is "covered">> <<else>> <</if>> <<else>> <<if $face is "covered">> <<else>> <</if>> <</if>> <<elseif $vaginastate is "othermouthimminent">> <<if $orgasmdown gte 1>> <<if $face is "covered">> <<else>> <</if>> <<else>> <<if $face is "covered">> <<else>> <</if>> <</if>> <<elseif $vaginastate is "othermouthentrance">> <<if $orgasmdown gte 1>> <<if $face is "covered">> <<else>> <</if>> <<else>> <<if $face is "covered">> <<else>> <</if>> <</if>> <<elseif $penisstate is "othermouth">> <<if $orgasmdown gte 1>> <<if $face is "covered">> <<else>> <</if>> <<else>> <<if $face is "covered">> <<else>> <</if>> <</if>> <<elseif $penisstate is "othermouthimminent">> <<if $orgasmdown gte 1>> <<if $face is "covered">> <<else>> <</if>> <<else>> <<if $face is "covered">> <<else>> <</if>> <</if>> <<elseif $penisstate is "othermouthentrance">> <<if $orgasmdown gte 1>> <<if $face is "covered">> <<else>> <</if>> <<else>> <<if $face is "covered">> <<else>> <</if>> <</if>> <<elseif $anusstate is "othermouth">> <<if $orgasmdown gte 1>> <<if $face is "covered">> <<else>> <</if>> <<else>> <<if $face is "covered">> <<else>> <</if>> <</if>> <<elseif $anusstate is "othermouthimminent">> <<if $orgasmdown gte 1>> <<if $face is "covered">> <<else>> <</if>> <<else>> <<if $face is "covered">> <<else>> <</if>> <</if>> <<elseif $anusstate is "othermouthentrance">> <<if $orgasmdown gte 1>> <<if $face is "covered">> <<else>> <</if>> <<else>> <<if $face is "covered">> <<else>> <</if>> <</if>> <<elseif $mouthstate is "kiss">> <<if $orgasmdown gte 1>> <<if $face is "covered">> <<else>> <</if>> <<else>> <<if $face is "covered">> <<else>> <</if>> <</if>> <<elseif $mouthstate is "kissimminent">> <<if $orgasmdown gte 1>> <<if $face is "covered">> <<else>> <</if>> <<else>> <<if $face is "covered">> <<else>> <</if>> <</if>> <<elseif $mouthstate is "kissentrance">> <<if $orgasmdown gte 1>> <<if $face is "covered">> <<else>> <</if>> <<else>> <<if $face is "covered">> <<else>> <</if>> <</if>> <<else>> <<if $orgasmdown gte 1>> <<if $face is "covered">> <<else>> <</if>> <<else>> <<if $face is "covered">> <<else>> <</if>> <</if>> <</if>> <</if>> <</widget>> <<widget "audience">> <div @class="($debugLines ? 'debugLines-audience' : '')"> <<set $audiencepresent to 1>> <<if $enemyanger gte 100>> <<if $enemyarousal gte (($enemyarousalmax / 10) * 8)>> The audience is skittish but crowds around, as if you're a rare and dangerous animal. <<elseif $enemyarousal gte (($enemyarousalmax / 10) * 4)>> Most of the audience keeps their distance, afraid you'll lash out. <<else>> The audience keeps their distance, afraid you'll lash out. <</if>> <br> <<elseif $enemyanger gte 60>> <<if $enemyarousal gte (($enemyarousalmax / 10) * 8)>> The audience crowds around, their eagerness at odds with their caution. <<elseif $enemyarousal gte (($enemyarousalmax / 10) * 4)>> The audience watches from a safe distance. The more daring among them inch closer. <<else>> The audience watches from a safe distance. <</if>> <br> <<elseif $enemyanger gte 20>> <<if $enemyarousal gte (($enemyarousalmax / 10) * 8)>> The audience crowds around, excited to see what happens next. <<elseif $enemyarousal gte (($enemyarousalmax / 10) * 4)>> The excited audience crowds around. <<else>> The audience watches with interest. <</if>> <br> <<else>> <<if $enemyarousal gte (($enemyarousalmax / 10) * 8)>> The audience crowds around, vying for a good vantage. <<elseif $enemyarousal gte (($enemyarousalmax / 10) * 4)>> The audience watches with interest. Some push through the crowd for a better vantage. <<else>> The audience watches with interest. <</if>> <br> <</if>> <<if $location isnot "prison">> <<if $audiencecamera1 isnot 0>> <<set $audienceselector to 1>> <<audiencecamera>> <br> <</if>> <<if $audiencecamera2 isnot 0>> <<set $audienceselector to 2>> <<audiencecamera>> <br> <</if>> <<if $audiencecamera3 isnot 0>> <<set $audienceselector to 3>> <<audiencecamera>> <br> <</if>> <<if $audiencecamera4 isnot 0>> <<set $audienceselector to 4>> <<audiencecamera>> <br> <</if>> <<if $audiencecamera5 isnot 0>> <<set $audienceselector to 5>> <<audiencecamera>> <br> <</if>> <<if $audiencecamera6 isnot 0>> <<set $audienceselector to 6>> <<audiencecamera>> <br> <</if>> <<set $facepic to 0>> <<set $breastpic to 0>> <<set $bottompic to 0>> <<set $genitalpic to 0>> <<set $bodypic to 0>> <<if $audiencecamera1 isnot 0 and $face is "covered">> <span class="teal">At least your face is hidden.</span> <br> <</if>> <<audiencespeech>> /*<br> commented out due to excess space they caused*/ <<if $rng - $enemyanger + (($enemyarousalmax / $enemyarousal) * 100) gte 0>> <<audiencespeech>> /*<br>*/ <</if>> <<if $rng - $enemyanger + (($enemyarousalmax / $enemyarousal) * 100) gte 20>> <<audiencespeech>> /*<br>*/ <</if>> <<if $rng - $enemyanger + (($enemyarousalmax / $enemyarousal) * 100) gte 40>> <<audiencespeech>> /*<br>*/ <</if>> <<if $rng - $enemyanger + (($enemyarousalmax / $enemyarousal) * 100) gte 60>> <<audiencespeech>> /*<br>*/ <</if>> <<if $rng - $enemyanger + (($enemyarousalmax / $enemyarousal) * 100) gte 80>> <<audiencespeech>> /*<br>*/ <</if>> <</if>> </div> <</widget>><<widget "audiencecameraswarm">> <<if _audienceswarminitcount is undefined or _audienceswarminitcount gte $audienceselector>> <<set _audienceswarminitcount to $audienceselector>> <<set _audienceswarmcarry to {"drya":{}}>> <<else>> <<set _audienceswarminitcount to $audienceselector>> <</if>> <<set _tmpcam to "none">> <<set _tmpsmoving to "creeping">> <<set _tmppspot to "">> <<set _tmpproof to "t">> <<if $swarm.type is "slimes" or $swarm.type is "pale slimes">> <<set _tmpsmoving to "slurping">> <<elseif $swarm.type is "worms">> <<set _tmpsmoving to "wiggling">> <<elseif $swarm.type is "snakes" or $swarm.type is "eels">> <<set _tmpsmoving to "slithering">> <</if>> <<rng>> <<if $rng gte 81 and $facepic isnot 1>> <<set $facepic to 1>> The $audiencedesc $audiencecamera points <<ahis>> camera at your face. A light flashes as <<ahe>> takes a picture. <br> <<set _tmpcam to "face">> <<elseif $rng gte 41 and $bottompic isnot 1>> <<set $bottompic to 1>> The $audiencedesc $audiencecamera points <<ahis>> camera at your <<bottom>>. A light flashes as <<ahe>> takes a picture. <br> <<set _tmpcam to "bottom">> <<elseif $rng gte 21 and $genitalpic isnot 1>> <<set $genitalpic to 1>> The $audiencedesc $audiencecamera points <<ahis>> camera at your <<genitals>>. A light flashes as <<ahe>> takes a picture. <br> <<set _tmpcam to "front">> <<elseif $bodypic isnot 1>> <<set $bodypic to 1>> The $audiencedesc $audiencecamera leans back so <<ahis>> camera can take in the whole scene. A light flashes as <<ahe>> takes a picture. <br> <<set _tmpcam to "full">> <</if>> <<if $swarm.amount.genital[1] gt 0 and _tmpcam is "front">> <<set _tmppspot to "gi">> <<elseif $swarm.amount.genital[0] gt 0 and _tmpcam is "front">> <<set _tmppspot to "g">> <<elseif $swarm.amount.butt[1] gt 0 and _tmpcam is "bottom">> <<set _tmppspot to "bi">> <<elseif $swarm.amount.butt[0] gt 0 and _tmpcam is "bottom">> <<set _tmppspot to "b">> <<elseif $swarm.amount.genital[1] gt 0 or $swarm.amount.butt[1] gt 0>> <<set _tmppspot to "i">> <<else>> <<set _tmppspot to "o">> <</if>> <<if _audienceswarmcarry.drya[_tmppspot] is undefined>> <<set _audienceswarmcarry.drya[_tmppspot] to "t">> <<set _tmpmark to "!">> <<set _tmporgasm to "">> <<if $orgasmdown gte 1>> <<if $orgasmcount gt 3>> <<aHe>> is yelling again: "You're a real <<print either("slut", "dirty slut", "bitch", "whore", "worthless slut", "extreme pervert")>> cumming again from these <<print $swarm.type>> <<set _tmporgasm to "<span class=\"pink\"> cumming hard</span> ">> <<set _tmpmark to "?">> <<else>> Suddenly <<ahe>> yells at you: "You're such a <<print either("slut", "whore", "pervert")>> cumming from these <<print $swarm.type>> <<set _tmporgasm to "<span class=\"pink\"> cumming</span> ">> <</if>> <<else>> <<if _tmpcam is "none">> The $audiencedesc $audiencecamera exclaims "I love how <<else>> <<aHe>> says "I love how <</if>> <<if $swarm.amount.active[0] lte 4>> the squirming <<print $swarm.type>> are <<elseif $swarm.amount.active[0] lte 8>> the swarming <<print $swarm.type>> are <<else>> the milling mass of <<print $swarm.type>> are <</if>> <</if>> <<print _tmpsmoving>> <<if _tmppspot is "g">> over your <<genitals>><<print _tmpmark>>" <<elseif _tmppspot is "gi">> over your <<genitals>><<print _tmpmark>>" <<elseif _tmppspot is "b">> over your <<bottom>><<print _tmpmark>>" <<elseif _tmppspot is "bi">> <span class="red"> inside your <<bottom>></span><<print _tmpmark>>" <<elseif _tmppspot is "i">> <span class="red">inside your body<<print _tmpmark>></span>" <<set _tmpproof to "f">> <<else>> over you<<print _tmpmark>>" <<set _tmpproof to "f">> <</if>> <<if _tmpcam is "face">> proudly <<ahe>> looks at <<ahis>> phone: "I've got a nice closeup of <<pher>> face<<print _tmporgasm>><<if _tmpproof is "t">> to prove it."<<else>>."<</if>> <<elseif _tmpcam is "bottom">> proudly <<ahe>> displays <<ahis>> phone: "I've got a nice closeup of <<pher>> <<bottom>><<print _tmporgasm>><<if _tmpproof is "t">> to prove it!"<<else>>."<</if>> <<elseif _tmpcam is "front">> proudly <<ahe>> holds up <<ahis>> phone: "I've got a nice closeup of <<pher>> <<genitals>><<print _tmporgasm>><<if _tmpproof is "t">> to prove it!"<<else>>."<</if>> <<elseif _tmpcam is "full">> proudly <<ahe>> shows the pictures on <<ahis>> phone: "I've got the pictures of this slut to prove it." <<set _tmpproof to "f">> <</if>> <</if>> <</widget>> <<widget "aHe">> <<if $audiencecamera is "man">> He <<elseif $audiencecamera is "boy">> He <<elseif $audiencecamera is "woman">> She <<elseif $audiencecamera is "girl">> She <</if>> <</widget>><<widget "generateBEAST">> <!-- NEW Args are NPC#(1-6), Type, Gender--> <!-- Example: <<generateBEAST 1 dog m>> would generate NPC 1 as male dog --> <!-- Example: <<generateBEAST 2 wolf f>> would generate NPC 2 as female wolf --> <<set _n to _args[0]-1>> <!-- Checks if endevent was properly used after the last event --> <<checkEventNPC _n>> <<set _type to _args[1]>> <<set _gen to _args[2]>> <<set _beast_genitals to _args[3]>> <<set _beast_monster to _args[4]>> <!-- Check that Type is known --> <<if !$BeastList.includes(_type)>> <span class="red">ERROR: generateBEAST unknown type</span> <</if>> <!-- Set gender and pronoun, random if unspecified --> <<if _gen is "m" or _gen is "f">> <<set $NPCList[_n].gender to _gen>><<set $NPCList[_n].pronoun to _gen>> <<elseif !isNaN(_generate_partner) and $NPCList[_generate_partner].gender isnot undefined>> <!-- This determines if the couple is homo or not. The generated NPC's partner is, by default, the NPC directly before them in NPCList. The partner can be selected manually with an argument. --> <<set $NPCList[_n].gender to maleChance($NPCList[_generate_partner].pronoun) gte random(1, 100) ? "m" : "f">> <<set $NPCList[_n].pronoun to $NPCList[_n].gender>> <<unset _generate_partner>> <<else>> <<if random(1, 100) lte beastMaleChance()>> <<set $NPCList[_n].gender to "m">><<set $NPCList[_n].pronoun to "m">> <<else>> <<set $NPCList[_n].gender to "f">><<set $NPCList[_n].pronoun to "f">> <</if>> <</if>> <<set $NPCList[_n].adult to 1>> <<set $NPCList[_n].lefthand to "none">> <<set $NPCList[_n].righthand to "none">> <<set $NPCList[_n].mouth to 0>> <<set $NPCList[_n].stance to "approach">> <<set $NPCList[_n].chastity to {penis:"", vagina:"", anus:""}>> <<generatePronouns $NPCList[_n]>> <<set $NPCList[_n].location to { head: 0, genitals: 0, }>> <<if $NPCList[_n].pregnancy is undefined>> <<set $NPCList[_n].pregnancy to 0>> <</if>> <<set $NPCList[_n].pregnancyAvoidance to random(0,50)>> <<if $enemyno lt 6>><<set $enemyno += 1>><</if>> <<beastattribute _n _type>> <<run EventSystem.push($passage, _n, $timeStamp)>> <</widget>> <<widget "beastattribute">> <!-- NEW Set Beast attributes. $arg[0] calls NPC number to be generated, arg[1] sets beast type --> <<nounderwearcheck>> <<set _n to _args[0]>> <<set _type to _args[1]>> <!-- Set genitals active --> <<set _gen to $NPCList[_n].gender>> <<set $NPCList[_n].vagina to "none">> <<set $NPCList[_n].penis to "none">> <<if _beast_genitals is "penis">> <<set $NPCList[_n].penis to 0>> <<elseif _beast_genitals is "vagina">> <<set $NPCList[_n].vagina to 0>> <<elseif ["m", "f", "h"].includes(_gen)>> <<switch _gen>> <<case "m">> <<set $NPCList[_n].penis to 0>> <<case _gen "f">> <<set $NPCList[_n].vagina to 0>> <<case _gen "h">> <<set $NPCList[_n].penis to 0>> <<set $NPCList[_n].vagina to 0>> <</switch>> <</if>> <<npcClothesType $NPCList[_n] "naked">> <<set $NPCList[_n].chest to "none">> <<set $NPCList[_n].insecurity to "none">> <!-- Select Beast Description/Strength/Genital pairing --> <!-- v2.7 $BeastList is 0-7: "dog", "cat", "pig", "wolf", "dolphin", "lizard", "bear", "creature" --> <!-- v2.13 "horse" added to $BeastList --> <<set _h to [200,150,200,300,200,250,500,300,200,500,225,150,400,300,350]>> <!-- Health Max per type --> <<set _t to ["dog","cat","pig","wolf","dolphin","lizard","bear","boar","creature","horse","fox","hawk","cow","spider","snake"]>> <!-- Name of each type --> <<set _d to [["large"], ["large"], ["fat"], ["enormous", "girthy", "huge", "mighty", "hefty", "colossal", "humongous", "large"], ["bottlenose"], ["scaly"], ["brown"], ["hairy"], ["strange"], ["huge"], ["large"], ["fierce"], ["huge"], ["slimy"], ["scaly"] ]>> <!-- Descriptor of each type --> <<set _pd to ["knotted penis","spiked penis","penis","knotted penis","strange penis","penis","penis","penis","penis","equine cock","knotted penis","avian cock","bovine cock","arachnid penis","serpent penis"]>> <!-- Descriptor of Penises --> /% <<set _cla to [1,1,1,1,0,1,1,1]>> %/ <<set _ps to [2,2,2,3,2,2,3,3,2,5,2,2,4,2,2]>> <!-- Size of penises --> <<set _i to $BeastList.indexOf(_type)>> <<set $NPCList[_n].healthmax to _h[_i]>> <<set $NPCList[_n].health to $NPCList[_n].healthmax>> <<set $NPCList[_n].description to _d[_i].pluck()>> <<set $NPCList[_n].type to _t[_i]>> <!-- <<set $NPCList[_n].claws to _cla[_i]>> --> <<set $NPCList[_n].breastsize to 0>> <<set $NPCList[_n].breastsdesc to "nipples">> <<set $NPCList[_n].breastdesc to "nipple">> <<set $NPCList[_n].monster to 0>> <!-- Default to assuming not a monster --> <<set $NPCList[_n].claws to "claws">> <!-- Check for beast-type specific changes --> <<if $NPCList[_n].type is "horse">> <<set $NPCList[_n].hair to either("appaloosa","bay","black","brown","buckskin","chestnut","cremello","dun","grey","overo","palomino","piebald","roan","skewbald","spotted","tobiano")>> <<set $NPCList[_n].claws to "hooves">> <!-- Horses have hooves --> <<elseif $NPCList[_n].type is "cow">> <<if $NPCList[_n].gender is "m">> <<set $NPCList[_n].type to "bull">> <!-- male cows are called bulls (or bullboys for monsters) --> <</if>> <<set $NPCList[_n].claws to "hooves">> <!-- Cattle have hooves --> <<elseif $NPCList[_n].type is "dolphin">> <<set $NPCList[_n].claws to "flippers">> <!-- Dolphins have flippers --> <<elseif $NPCList[_n].type is "hawk">> <<set $NPCList[_n].claws to "talons">> <!-- Hawks have talons --> <<elseif $NPCList[_n].type is "pig" or $NPCList[_n].type is "boar">> <<set $NPCList[_n].claws to "hooves">> <!-- Pigs and boars have hooves --> <</if>> <!-- Monster generation code --> <<rng>> <<if $NPCList[_n].type is "creature" and !_tower_creature>> <!-- Set hallucination creatures to always be monsters. tower creature is special and can be generated as a beast, even with bestiality disabled --> <<set $NPCList[_n].monster to "monster">> <<elseif _beast_monster is "beast">> <!-- got explicit request to generate a beast, not a monster --> <<set $NPCList[_n].monster to 0>> <<elseif !$settings.bestialityEnabled && $NPCList[0].monster is "monster">> <!-- if bestiality is disabled, some scenes check if the first beast is generated as a monster to see if the encounter can proceed to be lewd. if so - all subsequent beasts must also be converted to monsters unless explicitly told not to --> <!-- TODO: rewrite such encounters with a clearer distinction between lewd and non-lewd generated beasts --> <<set $NPCList[_n].monster to "monster">> <<elseif $settings.monsterChance gte $rng and ($hallucinations gte 1 or !$settings.monsterHallucinationsOnly) or _beast_monster is "monster">> <<set $NPCList[_n].monster to "monster">> <</if>> <<if $NPCList[_n].monster is "monster">> <<if ["dog","pig","wolf","dolphin","boar","fox","hawk","cow","snake"].includes($NPCList[_n].type)>> <!-- Remove claws from many monster types --> <<run delete $NPCList[_n].claws>> <!-- It can't have claws - using undefined to maintain back compat with previous saves mid-combat ($claws) --> <</if>> <<if $NPCList[_n].type is "horse">> <<set $NPCList[_n].type to "centaur">> <<elseif $NPCList[_n].type is "hawk">> <<set $NPCList[_n].type to "harpy">> <<elseif $NPCList[_n].type is "creature">> <!-- do nothing so creatures don't become creatureboys --> <<elseif $NPCList[_n].gender is "f">> <<set $NPCList[_n].type to $NPCList[_n].type + "girl">> <<else>> <<set $NPCList[_n].type to $NPCList[_n].type + "boy">> <</if>> <<set $NPCList[_n].lefthand to 0>> <<set $NPCList[_n].righthand to 0>> <!-- female monster people mammals have an accessible chest and might be able to lactate. --> <<if $NPCList[_n].pronoun is "f" and ["catgirl", "doggirl", "wolfgirl", "beargirl", "foxgirl", "cowgirl", "harpy"].includes($NPCList[_n].type)>> <<set $NPCList[_n].chest to 0>> <<if ["beargirl", "cowgirl"].includes($NPCList[_n].type)>> <!-- Bigger monsters = Bigger booba --> <<set $_breastMin to [0,0,0,0,2,2,2,2,2,5,5,5,5,5,5,5,8,8,9,10,12]>> <<set $_breastMax to [4,4,4,4,4,4,7,7,8,9,9,9,9,12,10,11,10,11,11,12,12]>> <<else>> <<set $_breastMin to [0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,5,5,8,3,10,12]>> <<set $_breastMax to [4,4,4,4,4,4,7,7,7,7,8,8,8,8,8,11,11,12,10,12,12]>> <</if>> <<set _brdes to ["nipple","budding","tiny","small","pert","modest","full","large","ample","massive","huge","gigantic","enormous"]>> <<set _brlvl to random(0,20)>> <!-- select a random index in the arrays --> <<if $settings.breastModifier gte $_breastMin[_brlvl]>><<set $_breastMin[_brlvl] to $settings.breastModifier>><</if>> <<if $settings.breastModifier gte $_breastMax[_brlvl]>><<set $_breastMax[_brlvl] to $settings.breastModifier>><</if>> <<if $settings.breastModifier lt 0>> <<set $_breastMin[_brlvl] to Math.clamp($_breastMin[_brlvl]+$settings.breastModifier, 0, 12)>> <<set $_breastMax[_brlvl] to Math.clamp($_breastMax[_brlvl]+$settings.breastModifier, 0, 12)>> <</if>> <<set _rngbr to random($_breastMin[_brlvl], $_breastMax[_brlvl])>> <<set $NPCList[_n].breastsize to _rngbr>> <<switch _rngbr>> <<case 0>> <<set $NPCList[_n].breastsdesc to "nipples">> <<set $NPCList[_n].breastdesc to "nipple">> <<default>> <<set $NPCList[_n].breastsdesc to _brdes[_rngbr]+" breasts">> <<set $NPCList[_n].breastdesc to _brdes[_rngbr]+" breast">> <</switch>> <<if random(1, 100) gte 61 or $NPCList[_n].type is "cowgirl">> <<set $NPCList[_n].lactation to 1>> <<else>> <<set $NPCList[_n].lactation to 0>> <</if>> <</if>> <<if random(1, 100) lte $settings.darkSkinChance>> <<set $NPCList[_n].skincolour to "black">> <<else>> <<set $NPCList[_n].skincolour to "white">> <</if>> <</if>> <<set $NPCList[_n].fullDescription to $NPCList[_n].description + " ">> <<if $NPCList[_n].monster is 0>> <<if $NPCList[_n].type isnot "cow" and $NPCList[_n].type isnot "bull">> <<if $NPCList[_n].pronoun is "m">> <<set $NPCList[_n].fullDescription += "male ">> <<elseif $NPCList[_n].pronoun is "f">> <<set $NPCList[_n].fullDescription += "female ">> <</if>> <</if>> <</if>> <<set $NPCList[_n].fullDescription += $NPCList[_n].type>> <<if $NPCList[_n].type.includes("fox")>> <<generate_npc_skills>> <<generate_beast_traits>> <<if $NPCList[_n].traits.includes("cowardly")>> <<set $NPCList[_n].skills.security += 200>> <<set $NPCList[_n].skills.security to Math.clamp($NPCList[_n].skills.security, 1, 1000)>> <<elseif $NPCList[_n].traits.includes("territorial")>> <<set $NPCList[_n].healthmax += 125>> <<set $NPCList[_n].health += 125>> <<set $NPCList[_n].skills.security += 100>> <<set $NPCList[_n].skills.security to Math.clamp($NPCList[_n].skills.security, 1, 1000)>> <<elseif $NPCList[_n].traits.includes("clever")>> <<set $NPCList[_n].skills.security += 150>> <<set $NPCList[_n].skills.security to Math.clamp($NPCList[_n].skills.security, 1, 1000)>> <<set $NPCList[_n].skills.athletics += 100>> <<set $NPCList[_n].skills.athletics to Math.clamp($NPCList[_n].skills.athletics, 1, 1000)>> <<elseif $NPCList[_n].traits.includes("friendly")>> <<set $NPCList[_n].healthmax -= 75>> <<set $NPCList[_n].health -= 75>> <<elseif $NPCList[_n].traits.includes("clumsy")>> <<set $NPCList[_n].skills.security -= 200>> <<set $NPCList[_n].skills.security to Math.clamp($NPCList[_n].skills.security, 1, 1000)>> <<set $NPCList[_n].skills.athletics -= 200>> <<set $NPCList[_n].skills.athletics to Math.clamp($NPCList[_n].skills.athletics, 1, 1000)>> <</if>> <</if>> <!-- Gender-swap monsters if needed --> <<if $NPCList[_n].monster is "monster" and _beast_genitals is undefined>> <<set $NPCList[_n].penis to "none">> <<set $NPCList[_n].vagina to "none">> <<rng>> <<if $NPCList[_n].gender is "m">> <<if $rng lte $settings.maleNPCVaginaChance and $debugEnableHerms>> <<set $NPCList[_n].penis to 0>> <<set $NPCList[_n].vagina to 0>> <<elseif $rng lte $settings.maleNPCVaginaChance>> <<set $NPCList[_n].vagina to 0>> <<else>> <<set $NPCList[_n].penis to 0>> <</if>> <<elseif $NPCList[_n].gender is "f">> <<if $rng lte $settings.femaleNPCPenisChance and $debugEnableHerms>> <<set $NPCList[_n].vagina to 0>> <<set $NPCList[_n].penis to 0>> <<elseif $rng lte $settings.femaleNPCPenisChance>> <<set $NPCList[_n].penis to 0>> <<else>> <<set $NPCList[_n].vagina to 0>> <</if>> <</if>> <</if>> <<if $NPCList[_n].penis isnot "none">> <<set $NPCList[_n].penisdesc to _pd[_i]>> <<set $NPCList[_n].penissize to _ps[_i]>> <<else>> <<set $NPCList[_n].penisdesc to "none">> <<set $NPCList[_n].penissize to 0>> <</if>> <</widget>> <!-- rng is rolled right after this widget runs, so it shouldn't need correction unless this widget is manually called somewhere outside of beast generation --> <<widget "generate_beast_traits">> <<set $NPCList[_n].traits to []>> <<if $location is "moor" and $moor>> <<rng 10>> <<if $moor gte 51>> <!-- High moor --> <<switch $rng>> <<case 1 2 3 4 5>><<set $NPCList[_n].traits.push("territorial")>> <<default>><<set $NPCList[_n].traits.push("clever")>> <</switch>> <<elseif $moor gte 21>> <!-- Mid moor --> <<switch $rng>> <<case 1 2>><<set $NPCList[_n].traits.push("cowardly")>> <<case 3 4>><<set $NPCList[_n].traits.push("territorial")>> <<case 5 6>><<set $NPCList[_n].traits.push("clever")>> <<case 7 8>><<set $NPCList[_n].traits.push("friendly")>> <<default>><<set $NPCList[_n].traits.push("clumsy")>> <</switch>> <<else>> <!-- Low moor --> <<switch $rng>> <<case 1 2 3>><<set $NPCList[_n].traits.push("cowardly")>> <<case 4>><<set $NPCList[_n].traits.push("territorial")>> <<case 5>><<set $NPCList[_n].traits.push("clever")>> <<case 6 7 8>><<set $NPCList[_n].traits.push("friendly")>> <<default>><<set $NPCList[_n].traits.push("clumsy")>> <</switch>> <</if>> <<else>> <<rng 5>> <<switch $rng>> <<case 1>><<set $NPCList[_n].traits.push("cowardly")>> <<case 2>><<set $NPCList[_n].traits.push("territorial")>> <<case 3>><<set $NPCList[_n].traits.push("clever")>> <<case 4>><<set $NPCList[_n].traits.push("friendly")>> <<case 5>><<set $NPCList[_n].traits.push("clumsy")>> <</switch>> <</if>> <</widget>> <!-- Dolphin generate calls --> <<widget "generatedolphin1">> <<generateBEAST 1 dolphin>> <</widget>> <<widget "generatedolphin2">> <<generateBEAST 2 dolphin>> <</widget>> <<widget "generatedolphin3">> <<generateBEAST 3 dolphin>> <</widget>> <<widget "generatedolphin4">> <<generateBEAST 4 dolphin>> <</widget>> <<widget "generatedolphin5">> <<generateBEAST 5 dolphin>> <</widget>> <<widget "generatedolphin6">> <<generateBEAST 6 dolphin>> <</widget>> <!-- Dog generate calls --> <<widget "generatedog1">> <<generateBEAST 1 dog>> <</widget>> <<widget "generatedog2">> <<generateBEAST 2 dog>> <</widget>> <<widget "generatedog3">> <<generateBEAST 3 dog>> <</widget>> <<widget "generatedog4">> <<generateBEAST 4 dog>> <</widget>> <<widget "generatedog5">> <<generateBEAST 5 dog>> <</widget>> <<widget "generatedog6">> <<generateBEAST 6 dog>> <</widget>> <!-- Wolf generate calls --> <<widget "generatewolf1">> <<generateBEAST 1 wolf>> <</widget>> <<widget "generatewolf2">> <<generateBEAST 2 wolf>> <</widget>> <<widget "generatewolf3">> <<generateBEAST 3 wolf>> <</widget>> <<widget "generatewolf4">> <<generateBEAST 4 wolf>> <</widget>> <<widget "generatewolf5">> <<generateBEAST 5 wolf>> <</widget>> <<widget "generatewolf6">> <<generateBEAST 6 wolf>> <</widget>> <!-- Cat generate calls --> <<widget "generatecat1">> <<generateBEAST 1 cat>> <</widget>> <<widget "generatecat2">> <<generateBEAST 2 cat>> <</widget>> <<widget "generatecat3">> <<generateBEAST 3 cat>> <</widget>> <<widget "generatecat4">> <<generateBEAST 4 cat>> <</widget>> <<widget "generatecat5">> <<generateBEAST 5 cat>> <</widget>> <<widget "generatecat6">> <<generateBEAST 6 cat>> <</widget>> <!-- Pig generate calls --> <<widget "generatepig1">> <<generateBEAST 1 pig>> <</widget>> <<widget "generatepig2">> <<generateBEAST 2 pig>> <</widget>> <<widget "generatepig3">> <<generateBEAST 3 pig>> <</widget>> <<widget "generatepig4">> <<generateBEAST 4 pig>> <</widget>> <<widget "generatepig5">> <<generateBEAST 5 pig>> <</widget>> <<widget "generatepig6">> <<generateBEAST 6 pig>> <</widget>> <!-- Boar generate calls --> <<widget "generateboar1">> <<generateBEAST 1 boar>> <</widget>> <<widget "generateboar2">> <<generateBEAST 2 boar>> <</widget>> <<widget "generateboar3">> <<generateBEAST 3 boar>> <</widget>> <<widget "generateboar4">> <<generateBEAST 4 boar>> <</widget>> <<widget "generateboar5">> <<generateBEAST 5 boar>> <</widget>> <<widget "generateboar6">> <<generateBEAST 6 boar>> <</widget>> <!-- Lizard generate calls --> <<widget "generatelizard1">> <<generateBEAST 1 lizard>> <</widget>> <<widget "generatelizard2">> <<generateBEAST 2 lizard>> <</widget>> <<widget "generatelizard3">> <<generateBEAST 3 lizard>> <</widget>> <<widget "generatelizard4">> <<generateBEAST 4 lizard>> <</widget>> <<widget "generatelizard5">> <<generateBEAST 5 lizard>> <</widget>> <<widget "generatelizard6">> <<generateBEAST 6 lizard>> <</widget>> <!-- Bear generate calls --> <<widget "generatebear1">> <<generateBEAST 1 bear>> <</widget>> <<widget "generatebear2">> <<generateBEAST 2 bear>> <</widget>> <<widget "generatebear3">> <<generateBEAST 3 bear>> <</widget>> <<widget "generatebear4">> <<generateBEAST 4 bear>> <</widget>> <<widget "generatebear5">> <<generateBEAST 5 bear>> <</widget>> <<widget "generatebear6">> <<generateBEAST 6 bear>> <</widget>> <!-- creature generate calls --> <<widget "generatecreature1">> <<generateBEAST 1 creature>> <</widget>> <<widget "generatecreature2">> <<generateBEAST 2 creature>> <</widget>> <<widget "generatecreature3">> <<generateBEAST 3 creature>> <</widget>> <<widget "generatecreature4">> <<generateBEAST 4 creature>> <</widget>> <<widget "generatecreature5">> <<generateBEAST 5 creature>> <</widget>> <<widget "generatecreature6">> <<generateBEAST 6 creature>> <</widget>> <!-- creature fox calls --> <<widget "generatefox1">> <<generateBEAST 1 fox>> <</widget>> <<widget "generatefox2">> <<generateBEAST 2 fox>> <</widget>> <<widget "generatefox3">> <<generateBEAST 3 fox>> <</widget>> <<widget "generatefox4">> <<generateBEAST 4 fox>> <</widget>> <<widget "generatefox5">> <<generateBEAST 5 fox>> <</widget>> <<widget "generatefox6">> <<generateBEAST 6 fox>> <</widget>> <!-- creature spider calls --> <<widget "generatespider1">> <<generateBEAST 1 spider>> <</widget>> <<widget "generatespider2">> <<generateBEAST 2 spider>> <</widget>> <<widget "generatespider3">> <<generateBEAST 3 spider>> <</widget>> <<widget "generatespider4">> <<generateBEAST 4 spider>> <</widget>> <<widget "generatespider5">> <<generateBEAST 5 spider>> <</widget>> <<widget "generatespider6">> <<generateBEAST 6 spider>> <</widget>> <!-- creature snake calls --> <<widget "generatesnake1">> <<generateBEAST 1 snake>> <</widget>> <<widget "generatesnake2">> <<generateBEAST 2 snake>> <</widget>> <<widget "generatesnake3">> <<generateBEAST 3 snake>> <</widget>> <<widget "generatesnake4">> <<generateBEAST 4 snake>> <</widget>> <<widget "generatesnake5">> <<generateBEAST 5 snake>> <</widget>> <<widget "generatesnake6">> <<generateBEAST 6 snake>> <</widget>><!-- DEV NOTES NG v2.7 Beast to NPC notes. The <<beast>> widget is analogous to <<man>> (which calls <<man-combat>>) widget, otherwise combat is identical. --> <!-- All beasts use $pronoun = "i". This will need to be commonised to m/f like other NPCs so will require cleanup. --> <!-- $semenpuddle is unique to beast combat and only works in context of train combat. Effect is captured in this widget and could be expanded to man-combat --> <!-- $player.penisExist and $player.vaginaExist are PC variables, should really be converted to gender / pronoun checks for PC... fix later --> <!-- "Growling" should convert to widget to capture other beast types (squawking, yowling, roaring, etc.), as well as a "whimpering" Dom/Pain. "Jaws" "Claws" "Teeth"--> <!-- The "man" widget sets the gang combat dynamic (and handle gender surprise), then calls man-combat for each combatant. "beast" skips this step and sets up next combatant as part of attack calls during events. --> <!-- This could be reworked with "man" becoming "gang-combat" and new "train-combat" which can call either "man-combat" or "beast-combat" (renamed from "beast") with looping function put into "train-attack". Gender surprise can be worked into "train-attack" --> <!-- SKIPPED .claws (0, 1) replacing $claws. Claws are rarely removed (only for dolphins). This could be revisited depending on new beast types added --> <!-- This is no longer the case see beast-generation.twee --> <!-- TODO New widgets: growling, whimpering, jaws, claws, teeth --> <!-- TODO Create train-combat functionality for human NPCs --> <!-- Any instances of .location used are to prevent weirdness with monsterperson chest play.--> <<widget "beast">> <div @class="($debugLines ? 'debugLines-beast' : '')"> <<outfitChecks>> <<set _n to $active_enemy>> <<if $NPCList[_n].pronoun is "m">> <<set $pronoun to "m">> <<elseif $NPCList[_n].pronoun is "f">> <<set $pronoun to "f">> <<else>> <<set $pronoun to "i">> <</if>> <<if $hypnosis_deviancy_check is undefined>> <<set $hypnosis_deviancy_check to 1>> <<if $hypnosis_traits.deviancy gte random(1, 5) and $NPCList[_n].stance is "approach">> <<if $hypnosis_traits.devotion gte 5>> A primal urge briefly swells within you, <span class="forest-green"> before being snuffed out. <<if $worn.neck.collared gte 1>> It feels as though your $worn.neck.name is tugged, <<else>> Your skin tingles at the phantom sensation of a collar being placed over your neck. The leash is tugged, <</if>> snapping you out of the trance. </span> <<elseif $uncomfortable.hypnosis is false>> <<hypnosisText 'A primal urge swells within you. <span class="purple">You drop to your knees and give a provocative wiggle.</span>'>> <span class="pink">The <<beasttype>> takes advantage of your display.</span> <<if $rng gte 71 and $position isnot "wall" and $NPCList[_n].location.head is 0>> <<set $NPCList[_n].stance to "topface">><<set $NPCList[_n].mouth to 0>> <<else>> <<set $NPCList[_n].stance to "top">><<set $head to "grappled">><<set $NPCList[_n].mouth to 0>> <</if>> <<elseif $willpower lt random(1, 1000)>> <<hypnosisText 'A primal urge swells within you. <span class="purple">You drop to your knees and give a provocative wiggle.</span>'>> <span class="pink">The <<beasttype>> takes advantage of your display.</span> <<if $rng gte 71 and $position isnot "wall" and $NPCList[_n].location.head is 0>> <<set $NPCList[_n].stance to "topface">><<set $NPCList[_n].mouth to 0>> <<else>> <<set $NPCList[_n].stance to "top">><<set $head to "grappled">><<set $NPCList[_n].mouth to 0>> <</if>> <<else>> You feel a primal urge swell within you, <span class="teal">but you ignore the resulting impulse.</span><<gwillpower>><<willpower 2>> <</if>> <</if>> <</if>> <<if $NPCList[_n].stance is "top">> <<if $NPCList[_n].type is "horse" or $NPCList[_n].type is "centaur">> <<if $position is "wall">> The $NPCList[_n].type rears above your restrained body in a mating posture. <<else>> The $NPCList[_n].type rears above you in a mating posture. <</if>> <<else>> The $NPCList[_n].type has you pinned in a mating posture. <<if $semenpuddle gte 4>> <<if $water is 0>> The semen on the ground makes your knees slip with every thrust. <<else>> <</if>> <</if>> <</if>> <</if>> <<if $NPCList[_n].stance is "topface">> The $NPCList[_n].type has you pinned from the front. <<if $semenpuddle gte 4>> <<if $water is 0>> The semen on the ground makes you slip with every thrust. <<else>> <</if>> <</if>> <</if>> <<if $NPCList[_n].stance is "approach">> <<if $enemyanger gte 120>> <<if $NPCList[_n].type is "hawk">> The $NPCList[_n].type shrieks at you. <<else>> The $NPCList[_n].type bares <<bhis>> teeth at you. <</if>> <<elseif $enemyanger gte 80>> <<if $NPCList[_n].type is "hawk">> The $NPCList[_n].type beats <<bhis>> wings. <<else>> The $NPCList[_n].type bares <<bhis>> teeth at you. <</if>> <<elseif $enemyanger gte 40>> <<if $water is 1>> The $NPCList[_n].type swims around you in a circle. <<elseif $NPCList[_n].type is "hawk">> The $NPCList[_n].type hops back and forth. <<else>> The $NPCList[_n].type paces back and forth. <</if>> <<else>> <<if $water is 1>> The $NPCList[_n].type swims near you. <<else>> The $NPCList[_n].type bears down on you. <</if>> <</if>> <</if>> <<if $NPCList[_n].monster is "monster">> <!-- HAND SECTION --> <<hand_section>> /* End Hand Section */ <!-- CHEST START --> <<chest_section>> <</if>> <<if $NPCList[_n].mouth is "hair">> <<if $enemyanger + $rng lte 50>> <span class="blue"><<bHe>> releases your hair.</span> <<set $NPCList[_n].mouth to 0>> <<elseif $mouthuse isnot "breasts">> <<bHe>> pulls on your hair, jerking your head back. <<violence 1>> <</if>> <</if>> <<beastclothing>> <<if $NPCList[_n].mouth is "neck">> <<if $enemyanger + $rng lte 100>> <span class="teal"><<bHe>> releases your neck from <<bhis>> <<beast_jaws_text>>.</span> <<set $NPCList[_n].mouth to 0>> <<elseif $enemyanger + $rng lte 200>> <<bHe>> continues to hold you down by the neck. <<violence 3>><<bruise neck>><<hitstat>> <<else>> <<bHe>> tightens <<bhis>> <<beast_jaws_text>>. You can't breathe! <<violence 10>><<bruise neck>><<bruise neck>><<hitstat>> <</if>> <</if>> <<rng>> /*TODO: Adjust to correct for herm characters*/ <<if $NPCList[_n].penis is "thighs">> <<if $player.vaginaExist>> <<if $rng gte 101>> <span class="blue"><<bHe>> angles <<bhis>> $NPCList[_n].penisdesc towards your <<pussy>>.</span> <<set $thighuse to 0>><<set $NPCList[_n].penis to "vaginaentrance">><<set $vaginause to "penis">><<set $vaginastate to "entrance">><<set $thighactiondefault to "thighs">><<set $vaginatarget to _n>> <<else>> <<bHe>> rubs <<bhis>> $NPCList[_n].penisdesc between your thighs and <<pussy>>. <<sex 5 "genitals">> <</if>> <<else>> <<if $rng gte 101>> <<bHe>> moves <<bhis>> penis out from between your thighs. <<set $thighuse to 0>><<set $NPCList[_n].penis to 0>><<set $thighactiondefault to "thighs">> <<else>> <<bHe>> rubs <<bhis>> $NPCList[_n].penisdesc between your thighs. <<sex 5 "anus">> <</if>> <</if>> <</if>> <<if $NPCList[_n].penis is "vagina">> <<set _pain to $vaginalPain>> <<if $enemyanger gte 100>><<set _pain *= 1.5>> <<if $enemyarousal gte (($enemyarousalmax / 5) * 4)>> <<bHe>> fucks your <<pussy>> with a violent intensity. <<elseif $enemyarousal gte (($enemyarousalmax / 5) * 2)>> <<bHe>> continues fucking your <<pussy>>. Each thrust feels deeper than the last. <<else>> Wanting to prove dominance <<bhe>> pounds your <<pussy>> with deep and deliberate thrusts. <</if>> <<elseif $enemyanger gte 20>> <<if $enemyarousal gte (($enemyarousalmax / 5) * 4)>> You feel <<bhis>> $NPCList[_n].penisdesc throb as <<bhe>> pounds away at your <<pussy>>. <<elseif $enemyarousal gte (($enemyarousalmax / 5) * 2)>> <<bHe>> violates your <<pussy>> with increasing eagerness. <<else>> <<bHe>> fucks your <<pussy>> with deep and deliberate thrusts. <</if>> <<else>> <<if $enemyarousal gte (($enemyarousalmax / 5) * 4)>> <<bHe>> fucks your <<pussy>>, eager to fill you with seed. <<elseif $enemyarousal gte (($enemyarousalmax / 5) * 2)>> <<bHe>> pounds your <<pussy>> without relenting. <<else>> <<bHe>> continues thrusting into your <<pussy>>. <</if>> <</if>> <<sex 30 "genitals">><<bruise vagina>><<violence 2>><<pain _pain>> <</if>> <<rng>> <<if $NPCList[_n].penis is "vaginaimminent" and !playerChastity("vagina")>> <<set _pain to $vaginalPain>> <<if $player.virginity.vaginal isnot true>> <<if $NPCList[_n].penissize gte 5>> <span class="pink"><<bHe>> thrusts <<bhis>> $NPCList[_n].penisdesc deep into your <<pussy>>.</span> The sheer size drives thought from your mind. <<sex 30 "genitals">><<set _pain *= 3>><<pain _pain>> <<elseif $NPCList[_n].penissize gte 4>> <span class="pink"><<bHe>> thrusts <<bhis>> $NPCList[_n].penisdesc deep into your <<pussy>>.</span> <<sex 30 "genitals">><<set _pain *= 2>><<pain _pain>> <<else>> <span class="pink"><<bHe>> thrusts <<bhis>> $NPCList[_n].penisdesc deep into your <<pussy>>.</span> <<sex 30 "genitals">><<pain _pain>> <</if>> <<sex 30 "genitals">><<takeVirginity $NPCList[_n].fullDescription "vaginal">><<violence 2>> <<elseif $player.virginity.vaginal is true>> <<if $sexStats.vagina.pregnancy.totalBirthEvents gt 0>> <span class="red">Despite your lack of a hymen, you feel something inside you change as your virginity and purity are taken.</span> <<violence 10>> <<else>> <<switch $NPCList[_n].penissize>> <<case 5>> <span class="red"><<bHe>> thrusts <<bhis>> $NPCList[_n].penisdesc deep into your virgin pussy,</span><span class="red"> obliterating your hymen and forever robbing you of your purity. You'd scream, but the sheer size seizes your breath and thought.</span> <<violence 200>><<set _pain *= 3>><<pain _pain>> <<case 4>> <span class="red"><<bHe>> thrusts <<bhis>> $NPCList[_n].penisdesc deep into your virgin pussy,</span><span class="red"> obliterating your hymen and forever robbing you of your purity. You scream out as your <<pussy>> struggles to accommodate <<bhis>> cock.</span> <<violence 200>><<set _pain *= 2>><<pain _pain>> <<case 1>> <span class="pink"><<bHe>> thrusts <<bhis>> $NPCList[_n].penisdesc deep into your virgin pussy,</span><span class="red"> breaking your hymen and forever robbing you of your purity.</span><span class="green"> While technically no longer a virgin, you can barely feel it.</span> <<violence 25 4 4>> <<default>> <span class="pink"><<bHe>> thrusts <<bhis>> $NPCList[_n].penisdesc deep into your virgin pussy,</span><span class="red"> breaking your hymen and forever robbing you of your purity.</span> <<violence 100>><<pain _pain>> <</switch>> <</if>> <<sex 100 "genitals">><<takeVirginity $NPCList[_n].fullDescription "vaginal">> <</if>> <<vaginalstat>><<set $NPCList[_n].penis to "vagina">><<bruise vagina>><<takeNPCVirginity _n "penile">><<bruise vagina>><<raped>><<vaginaraped>><<set $vaginastate to "penetrated">> <</if>> <<rng>> <!-- DEBUG syntax issue with this IF statement set v2.7 (???) NG --> <<if $NPCList[_n].penis is "vaginaentrance">> <<if $worn.over_lower.vagina_exposed is 0>> <<bHe>> rubs <<bhis>> $NPCList[_n].penisdesc against your <<pussy>> through your $worn.over_lower.name. <<sex 5 "genitals">><<set $worn.over_lower.integrity -= 10>> <<elseif $worn.lower.vagina_exposed is 0>> <<bHe>> rubs <<bhis>> $NPCList[_n].penisdesc against your <<pussy>> through your $worn.lower.name. <<sex 5 "genitals">><<set $worn.lower.integrity -= 10>> <<elseif $worn.lower.vagina_exposed is 1>> <<rng>> <<if $worn.under_lower.vagina_exposed is 1 and playerChastity("vagina")>> <<if $NPCList[_n].penissize gte 5>> <<bHe>> thrusts <<bhis>> $NPCList[_n].penisdesc against your $worn.genitals.name, desperate to <<if $settings.pregnancySpeechEnabled>>breed<<else>>fuck<</if>> the <<pussy>> beneath. <<bHe>> <<beast_growls_text>> in pain, but <span class="pink">the device feels looser after each push.</span> <<sex 10 "genitals">><<set $worn.genitals.integrity -= 240>><<set $enemyanger += 15>><<set $enemytrust -= 15>><<set $enemyhealth -= 5>> <<else>> <<bHe>> thrusts against your $worn.genitals.name, desperate to <<if $settings.pregnancySpeechEnabled>>breed<<else>>fuck<</if>> the <<pussy>> beneath. <<bHe>> hurts <<bhimself>> against the hard material and withdraws, <<beast_growling_text>>. <<set $NPCList[_n].penis to 0>><<set $vaginause to 0>><<set $vaginastate to 0>><<sex 20 "genitals">><<set $worn.genitals.integrity -= 40>><<set $enemyanger += 15>><<set $enemytrust -= 15>><<set $enemyhealth -= 5>> <</if>> <<elseif $worn.under_lower.vagina_exposed is 0>> <<if $NPCList[_n].penissize gte 5>> <<bHe>> thrusts <<bhis>> $NPCList[_n].penisdesc against your <<pussy>> through your $worn.under_lower.name, <span class="purple">tearing the fabric.</span> <<sex 10 "genitals">><<set $worn.under_lower.integrity -= 40>> <<else>> <<bHe>> rubs <<bhis>> $NPCList[_n].penisdesc against your <<pussy>> through your $worn.under_lower.name. <<sex 5 "genitals">><<set $worn.under_lower.integrity -= 10>> <</if>> <<elseif $worn.under_lower.vagina_exposed is 1>> <<if $vaginaWetness gte ($NPCList[_n].penissize * 15) + random(1, 40) or random(1, 2) is 2>> <<bHe>> pushes <<bhis>> $NPCList[_n].penisdesc against your <<pussy>>. <<vagina_lube_text>> <span class="pink">the tip presses into you, a thrust away from penetrating.</span> <<sex 20 "genitals">><<set $NPCList[_n].penis to "vaginaimminent">><<set $vaginastate to "imminent">> <<else>> <<bHe>> pushes <<bhis>> $NPCList[_n].penisdesc against your <<pussy>>, <span class="blue">but fails to penetrate,</span> instead angling away and rubbing against your <<if $player.penisExist>><<penis>><<else>>clit<</if>>. <<sex 5 "genitals">> <<if $enemyarousal gte ($enemyarousalmax / 2) and random(1, 3) is 3>> Precum leaks from the tip, <span class="blue">lubricating your pussy.</span> <<bodyliquid "vaginaoutside" "semen">> <</if>> <</if>> <</if>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].penis is "cheeks">> <<if $rng gte 101>> <span class="blue"><<bHe>> angles <<bhis>> $NPCList[_n].penisdesc toward your anus.</span> <<set $NPCList[_n].penis to "anusentrance">><<set $anusstate to "entrance">><<set $bottomuse to 0>><<set $cheekactiondefault to "cheeks">><<set $anustarget to _n>> <<else>> <<bHe>> rubs <<bhis>> $NPCList[_n].penisdesc between your cheeks. <<submission 3>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].penis is "leftarm">> <<if $rng lte 101>> <<bHe>> rubs <<bhis>> $NPCList[_n].penisdesc against your hand. <<submission 1>> <<else>> <span class="purple"><<bHe>> moves <<bhis>> $NPCList[_n].penisdesc away from your hand.</span> <<set $NPCList[_n].penis to 0>><<set $leftarm to 0>><<set $leftcarry to "leftgrab">><<set $leftactiondefault to "leftgrab">> <</if>> <</if>> <<rng>> <<if $NPCList[_n].penis is "rightarm">> <<if $rng lte 101>> <<bHe>> rubs <<bhis>> $NPCList[_n].penisdesc against your hand. <<submission 1>> <<else>> <span class="purple"><<bHe>> moves <<bhis>> $NPCList[_n].penisdesc away from your hand.</span> <<set $NPCList[_n].penis to 0>><<set $rightarm to 0>><<set $rightcarry to "rightgrab">><<set $rightactiondefault to "rightgrab">> <</if>> <</if>> <<rng>> <<if $NPCList[_n].penis is "botharm">> <<if $rng lte 101>> <<bHe>> rubs <<bhis>> $NPCList[_n].penisdesc against your hands. <<submission 2>> <<else>> <span class="purple"><<bHe>> moves <<bhis>> penis away from your hands.</span> <<set $NPCList[_n].penis to 0>><<set $leftarm to 0>><<set $rightarm to 0>><<set $leftcarry to "leftgrab">><<set $rightcarry to "rightgrab">><<set $leftactiondefault to "leftgrab">><<set $rightactiondefault to "rightgrab">> <</if>> <</if>> <<rng>> <<if $NPCList[_n].penis is "feet">> <<if $rng lte 101>> <<bHe>> rubs <<bhis>> $NPCList[_n].penisdesc against your feet. <<submission 1>> <<else>> <span class="purple"><<bHe>> moves <<bhis>> penis away from your feet.</span> <<set $NPCList[_n].penis to 0>><<set $feetuse to 0>><<set $feetactiondefault to "feetgrab">> <</if>> <</if>> <<rng>> <<if $NPCList[_n].penis is "anus">> <<set _pain to $analPain>> <<if $enemyanger gte 100>><<set _pain *= 1.5>> <<if $enemyarousal gte (($enemyarousalmax / 5) * 4)>> <<bHe>> fucks your <<bottom>> with a violent intensity. <<elseif $enemyarousal gte (($enemyarousalmax / 5) * 2)>> <<bHe>> continues fucking your <<bottom>>. Each thrust feels deeper than the last. <<else>> Wanting to prove dominance <<bhe>> pounds your <<bottom>> with deep and deliberate thrusts. <</if>> <<elseif $enemyanger gte 20>> <<if $enemyarousal gte (($enemyarousalmax / 5) * 4)>> You feel <<bhis>> $NPCList[_n].penisdesc throb as <<bhe>> pounds away at your <<bottom>>. <<elseif $enemyarousal gte (($enemyarousalmax / 5) * 2)>> <<bHe>> violates your <<bottom>> with increasing eagerness. <<else>> <<bHe>> fucks your <<bottom>> with deep and deliberate thrusts. <</if>> <<else>> <<if $enemyarousal gte (($enemyarousalmax / 5) * 4)>> <<bHe>> fucks your <<bottom>>, eager to fill you with seed. <<elseif $enemyarousal gte (($enemyarousalmax / 5) * 2)>> <<bHe>> pounds your <<bottom>> and shows no sign of relenting. <<else>> <<bHe>> continues thrusting into your <<bottom>>. <</if>> <</if>> <<sex 30 "anus">><<bruise anus>><<violence 1>><<pain _pain>> <</if>> <<rng>> <<if $NPCList[_n].penis is "anusimminent" and !playerChastity("anus")>> <<set _pain to $analPain>> <<if $player.virginity.anal isnot true>> <<if $NPCList[_n].penissize gte 5>> <span class="pink"><<bHe>> thrusts <<bhis>> $NPCList[_n].penisdesc deep into your <<bottom>>.</span> The sheer size pushes all thought from your mind. <<set _pain *= 3>><<pain _pain>> <<elseif $NPCList[_n].penissize gte 4>> <span class="pink"><<bHe>> thrusts <<bhis>> $NPCList[_n].penisdesc deep into your <<bottom>>.</span> It's almost too big to handle. <<set _pain *= 2>><<pain _pain>> <<else>> <span class="pink"><<bHe>> thrusts <<bhis>> $NPCList[_n].penisdesc deep into your <<bottom>>.</span> <<pain _pain>> <</if>> <<sex 30 "anus">><<violence 1 1 1 0>> <<elseif $player.virginity.anal is true>> <<switch $NPCList[_n].penissize>> <<case 5>> <span class="pink"><<bHe>> forces <<bhis>> $NPCList[_n].penisdesc deep into your <<bottom>>,</span><span class="red"> violating you in a way you hadn't conceived of. You'd scream, but the sheer size sends your body into momentary shock.</span> <<violence 200>><<set _pain *= 3>><<pain _pain>> <<case 4>> <span class="pink"><<bHe>> thrusts <<bhis>> $NPCList[_n].penisdesc deep into your <<bottom>>,</span><span class="red"> violating you in a way you hadn't conceived of. You scream out as your <<bottom>> struggles to accommodate <<bhis>> cock.</span> <<violence 200>><<set _pain *= 2>><<pain _pain>> <<case 1>> <span class="pink"><<bHe>> thrusts <<bhis>> $NPCList[_n].penisdesc deep into your <<bottom>>,</span><span class="red"> violating you in a way you hadn't conceived of.</span><span class="green"> While technically no longer a virgin, you can barely feel it.</span> <<violence 25 8 8>> <<default>> <span class="pink"><<bHe>> thrusts <<bhis>> $NPCList[_n].penisdesc deep into your <<bottom>>,</span><span class="red"> violating you in a way you hadn't conceived of.</span> <<violence 200>><<pain _pain>> <</switch>> <<sex 100 "anus">><<takeVirginity $NPCList[_n].fullDescription "anal">> <</if>> <<analstat>><<set $NPCList[_n].penis to "anus">><<bruise anus>><<takeNPCVirginity _n "penile">><<raped>><<anusraped>><<set $anusstate to "penetrated">> <</if>> <<rng>> <<if $NPCList[_n].penis is "anusentrance">> <<if $worn.over_lower.anus_exposed is 0>> <<bHe>> rubs <<bhis>> $NPCList[_n].penisdesc against your <<bottom>> through your $worn.over_lower.name. <<sex 5 "anus">><<set $worn.over_lower.integrity -= 10>> <<elseif $worn.lower.anus_exposed is 0>> <<bHe>> rubs <<bhis>> $NPCList[_n].penisdesc against your <<bottom>> through your $worn.lower.name. <<sex 5 "anus">><<set $worn.lower.integrity -= 10>> <<elseif $worn.lower.anus_exposed is 1>> <<rng>> <<if $worn.under_lower.anus_exposed is 1 and playerChastity("anus")>> <<if $NPCList[_n].penissize gte 5>> <<bHe>> thrusts against your $worn.genitals.name, desperate to violate the <<bottom>> beneath. <<bHe>> <<beast_growls_text>> in pain, <span class="purple">but each thrust leaves the device a little looser.</span> <<sex 10 "anus">><<set $worn.genitals.integrity -= 240>><<set $enemyanger += 15>><<set $enemytrust -= 15>><<set $enemyhealth -= 5>> <<else>> <<bHe>> thrusts against your $worn.genitals.name, desperate to violate the <<bottom>> beneath. <<bHe>> hurts <<bhimself>> against the hard material and withdraws, <<beast_growling_text>>. <<set $NPCList[_n].penis to 0>><<set $anususe to 0>><<set $anusstate to 0>><<sex 20 "anus">><<set $worn.genitals.integrity -= 40>><<set $enemyanger += 15>><<set $enemytrust -= 15>><<set $enemyhealth -= 5>> <</if>> <<elseif $worn.under_lower.anus_exposed is 0>> <<if $NPCList[_n].penissize gte 6>> <<bHe>> thrusts <<bhis>> $NPCList[_n].penisdesc against your <<bottom>> through your $worn.under_lower.name, <span class="purple">tearing the fabric.</span> <<sex 10 "anus">><<set $worn.under_lower.integrity -= 40>> <<else>> <<bHe>> rubs <<bhis>> $NPCList[_n].penisdesc against your <<bottom>> through your $worn.under_lower.name. <<sex 5 "anus">><<set $worn.under_lower.integrity -= 10>> <</if>> <<elseif playerHasButtPlug() and $worn.under_lower.anus_exposed is 1>> <<bHe>> thrusts against your $worn.butt_plug.name, desperate to violate your <<bottom>>. <<bHe>> withdraws, <<beast_growling_text>>. <<set $NPCList[_n].penis to 0>><<set $anususe to 0>><<set $anusstate to 0>><<sex 20 "anus">><<set $enemyanger += 15>><<set $enemytrust -= 15>><<set $enemyhealth -= 5>> <<elseif $worn.under_lower.anus_exposed is 1>> <<if $anusWetness gte ($NPCList[_n].penissize * 15) + random(1, 40) or random(1, 2) is 2>> <<bHe>> pushes <<bhis>> $NPCList[_n].penisdesc against your <<bottom>>. <<anus_lube_text>> <span class="pink">the tip presses into you, a thrust away from penetrating.</span> <<sex 20 "anus">><<set $NPCList[_n].penis to "anusimminent">><<set $anusstate to "imminent">> <<else>> <<bHe>> pushes <<bhis>> $NPCList[_n].penisdesc against your <<bottom>>, <span class="blue">but fails to penetrate,</span> instead angling away and rubbing between your cheeks. <<sex 5 "anus">> <<if $enemyarousal gte ($enemyarousalmax / 2) and random(1, 3) is 3>> Precum leaks from the tip, <span class="blue">lubricating your ass.</span> <<bodyliquid "bottom" "semen">> <</if>> <</if>> <</if>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].penis is "mouth">> <<if $enemyanger gte random(1, 100)>> <<if currentSkillValue("oralskill") gte random(1, 1200)>> <<bHe>> shoves <<bhis>> $NPCList[_n].penisdesc down your throat, <span class="blue">but you manage to gasp between <<bhis>> thrusts.</span> <<else>> <span class="pink">You gag as <<bhe>> thrusts <<bhis>> $NPCList[_n].penisdesc down your throat.</span> <<oxygen -150>> <<if $oxygen gte 900>> <span class="blue">You struggle for breath.</span> <<elseif $oxygen gte 600>> <span class="purple">You can't breathe!</span> <<violence 10>> <<elseif $oxygen gte 300>> <span class="pink">You feel light-headed.</span> <<violence 20>> <<elseif $oxygen gte 1>> <span class="pink">You see stars.</span> <<violence 40>> <<else>> <span class="red">You are suffocating.</span> <<violence 100>> <</if>> <</if>> <<submission 10>><<bruise face>><<bruise neck>><<violence 1>><<set $speechmouthpenetrated to 1>> <<elseif $rng gte 81 and $NPCList[_n].stance isnot "topface">> <span class="purple"><<bHe>> withdraws <<bhis>> penis from your mouth.</span> <<sex 30 "mouth">><<set $NPCList[_n].penis to "mouthimminent">><<bruise face>><<violence 1>><<set $mouthstate to "imminent">> <<elseif $rng gte 1>> <<bHe>> continues thrusting into your wet mouth. <<submission 10>><<bruise face>><<violence 1>> <<if $NPCList[_n].penissize gte 4>> <<switch random(1, 4)>> <<case 1>> It's a struggle not to gag as the $NPCList[_n].penisdesc fills you. <<case 2>> <span class="pink"> Saliva drools down your chin as you struggle to keep your lips wrapped around <<bhis>> $NPCList[_n].penisdesc.</span> <<set $hygiene += 500>><<bodyliquid "face" "goo">> <<default>> <</switch>> <</if>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].penis is "mouthimminent">> <<if $rng gte 81 and $NPCList[_n].stance isnot "topface">> <span class="blue"><<bHe>> stops pressing <<bhis>> penis into your mouth.</span> <<set $NPCList[_n].penis to "mouthentrance">><<submission 5>><<set $mouthstate to "entrance">> <<elseif $worn.face.type.includes("covered") or $worn.face.type.includes("gag")>> <<switch random(0,2)>> <<case 0 1>> <<bHe>> pushes <<bhis>> $NPCList[_n].penisdesc against your $worn.face.name. <<damageFaceCover 2>> <<case 2>> <span class="lblue"><<bHe>> moves <<bhis>> penis away from your mouth.</span> <<set $NPCList[_n].penis to 0>><<set $mouthuse to 0>><<set $mouthstate to 0>> <</switch>> <<elseif $rng lte 15 or ($mouthsubmit isnot 1 and $rng lte 30)>> <<if $player.virginity.oral isnot true>> <span class="pink"><<bHe>> thrusts <<bhis>> $NPCList[_n].penisdesc into your mouth.</span> <<submission 10>> <<elseif $player.virginity.oral is true>> <span class="pink"><<bHe>> thrusts <<bhis>> $NPCList[_n].penisdesc into your mouth.</span><span class="red"> It tastes strange.</span> <<submission 30>><<takeVirginity $NPCList[_n].fullDescription "oral">> <</if>> <<oralstat>><<set $NPCList[_n].penis to "mouth">><<bruise face>><<violence 1>><<raped>><<set $mouthstate to "penetrated">> <<elseif $mouthsubmit>> <<bHe>> allows you to pleasure <<bhis>> $NPCList[_n].penisdesc with your mouth. <<submission 5>> <<else>> <<bHe>> rubs <<bhis>> $NPCList[_n].penisdesc against your lips. <</if>> <</if>> <<rng>> <<if $NPCList[_n].penis is "mouthentrance">> <<if $pullaway is 1 and $rng gte 51>> <<bHis>> $NPCList[_n].penisdesc hovers only inches from your face. <<elseif $rng gte 81 and $NPCList[_n].stance isnot "topface">> <span class="lblue"><<bHe>> moves <<bhis>> penis away from your mouth.</span> <<set $NPCList[_n].penis to 0>><<set $mouthuse to 0>><<set $mouthstate to 0>> <<elseif $worn.face.type.includes("covered") or $worn.face.type.includes("gag")>> <<switch random(0,2)>> <<case 0 1>> <<bHe>> pushes <<bhis>> $NPCList[_n].penisdesc against your $worn.face.name. <<damageFaceCover 2>> <<case 2>> <span class="lblue"><<bHe>> moves <<bhis>> penis away from your mouth.</span> <<set $NPCList[_n].penis to 0>><<set $mouthuse to 0>><<set $mouthstate to 0>> <</switch>> <<elseif $rng gte 1>> <span class="purple"><<bHe>> pushes <<bhis>> $NPCList[_n].penisdesc against your lips.</span> <<set $NPCList[_n].penis to "mouthimminent">><<submission 5>><<set $mouthstate to "imminent">> <</if>> <</if>> <<rng>> <<if $NPCList[_n].penis is "otherfrot">> <<if $rng gte 101>> <span class="blue"><<bHe>> shifts <<bhis>> ass and presses <<bhis>> anus against your <<penis>>.</span> <<set $penisuse to "otheranus">><<set $NPCList[_n].penis to "otheranusentrance">><<set $penisstate to "otheranusentrance">><<set $speechotheranusentrance to 1>> <<else>> <<bHe>> <<beast_growls_text>> and rubs <<bhis>> ass against your <<penis>>. <<sex 5 "genitals">><<set $enemyanger += 5>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].penis is "otheranus">> <<if $rng gte 101>> <span class="purple"><<bHe>> moves <<bhis>> pelvis away, releasing your <<penis>> from <<bhis>> anus.</span> <<sex 30 "genitals">><<set $NPCList[_n].penis to "otheranusimminent">><<set $penisstate to "otheranusimminent">><<set $speechotheranusimminent to 1>> <<if playerHasStrapon()>><<violence 1 1 1 0>> <<else>><<bruise penis>><<violence 1>><</if>> <<elseif $rng gte 1>> <<if $enemyanger gte 100>> <<if $enemyarousal gte (($enemyarousalmax / 5) * 4)>> <<bHe>> <<beast_growls_text>> and fucks your <<penis>> with <<bhis>> ass, <<bhis>> movements violent and erratic. <<elseif $enemyarousal gte (($enemyarousalmax / 5) * 2)>> <<bHe>> <<beast_growls_text>> as <<bhe>> pushes back against your <<penisSimple>>. <<else>> <<bHe>> <<beast_growls_text>> and fucks your <<penis>> with rough movements. <</if>> <<elseif $enemyanger gte 20>> <<if $enemyarousal gte (($enemyarousalmax / 5) * 4)>> You feel <<bhis>> ass twitch around your length as <<bhe>> pushes back. <<elseif $enemyarousal gte (($enemyarousalmax / 5) * 2)>> <<bHe>> continues to push against your <<penis>>. <<else>> <<bHe>> fucks your <<penis>>, taking as much of you into <<bhis>> ass as <<bhe>> can. <</if>> <<else>> <<if $enemyarousal gte (($enemyarousalmax / 5) * 4)>> <<bHe>> continues pushing against your <<penis>>, <<bhis>> anus viciously pounding your length. <<elseif $enemyarousal gte (($enemyarousalmax / 5) * 2)>> <<bHe>> continues pushing against your <<penis>>, <<bhis>> anus rhythmically pounding your length. <<else>> <<bHe>> pushes against your <<penis>> with steady movements. <</if>> <</if>> <<sex 30 "genitals">><<set $speechotheranuspenetrated to 1>><<set $enemyanger += 10>> <<if playerHasStrapon()>><<violence 2 1 1 0>> <<else>><<bruise penis>><<violence 2>><</if>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].penis is "otheranusimminent">> <<if $rng gte 101>> <span class="blue"><<bHe>> stops pressing <<bhis>> ass against your <<penis>>.</span> <<set $NPCList[_n].penis to "otheranusentrance">><<set $penisstate to "otheranusentrance">><<set $speechotheranusentrance to 1>> <<elseif $rng gte 1>> <<if $nopenile is 0>><<set $penisactiondefault to "otheranustake">> <<if (playerPenisSize() is -1 and $arousal lte ($arousalmax / 10) * 9) or (playerPenisSize() is -2 and $arousal lte ($arousalmax / 20) * 19)>> <<bHe>> presses <<bhis>> ass against your <<penis>>, trying to force an erection. <<set $enemyanger += 5>><<arousal 300 "genitals">><<set $speechotheranuswithhold to 1>> <<else>> <<if playerHasStrapon() or $player.virginity.penile isnot true>> <span class="pink"><<bHe>> eases your <<penis>> into <<bhis>> ass, swallowing you to the base.</span> <<sex 30 "genitals">><<set $speechotheranuspenetrated to 1>> <<if playerHasStrapon()>><<violence 2 1 1 0>> <<else>><<bruise penis>><<violence 2>><<raped>><<penisraped>><<takeTempleVirginity $NPCList[_n].fullDescription "penile">><</if>> <<elseif $player.virginity.penile is true>> <span class="pink"><<bHe>> eases your virgin penis into <<bhis>> ass,</span><span class="red"> separating your foreskin from your glans and forever robbing you of your purity.</span> <<sex 100 "genitals">><<takeVirginity $NPCList[_n].fullDescription "penile">><<bruise penis>><<violence 100>><<raped>><<penisraped>><<set $speechpenisvirgin to 1>> <</if>> <<penilestat>><<takeNPCVirginity _n "anal">><<set $NPCList[_n].penis to "otheranus">><<set $penisstate to "otheranus">> <</if>> <<else>> Respecting your wishes, <<bhe>> does not envelop your <<penis>> with <<bhis>> ass, instead teasing the tip of your glans. <<sex 15 "genitals">><<set $speechotheranuswithhold to 1>><<set $enemyanger += 10>> <</if>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].penis is "otheranusentrance">> <<if $rng gte 101>> <span class="lblue"><<bHe>> moves <<bhis>> ass away from your <<penis>>.</span> <<set $NPCList[_n].penis to 0>><<set $penisuse to 0>><<set $penisstate to 0>> <<elseif $rng gte 1>> <<if $worn.over_lower.vagina_exposed is 0>> <<bHe>> rubs <<bhis>> ass against your <<penis>> through your $worn.over_lower.name. <<sex 5 "genitals">><<set $worn.over_lower.integrity -= 10>><<set $speechotheranusentrance to 1>><<set $enemyanger += 10>> <<elseif $worn.lower.vagina_exposed is 0>> <<bHe>> rubs <<bhis>> ass against your <<penis>> through your $worn.lower.name. <<sex 5 "genitals">><<set $worn.lower.integrity -= 10>><<set $speechotheranusentrance to 1>><<set $enemyanger += 10>> <<elseif $worn.lower.vagina_exposed is 1>> <<rng>> <<if $worn.under_lower.vagina_exposed is 0>> <<bHe>> rubs <<bhis>> ass against your <<penis>> through your $worn.under_lower.name. <<sex 5 "genitals">><<set $worn.under_lower.integrity -= 10>><<set $speechotheranusentrance to 1>><<set $enemyanger += 10>> <<elseif $worn.under_lower.vagina_exposed is 1>> <<if $rng gte 51>> <<if $worn.genitals.name is "chastity parasite">> <<bHe>> rubs <<bhis>> ass against your $worn.genitals.name, <span class="lewd">leaving you feeling more aroused.</span> <<arousal 100 "genitals">> <<sex 25 "genitals">><<set $worn.genitals.integrity -= 10>><<set $enemyanger += 5>> <<elseif $nopenile is 0 and playerChastity("penis")>> <<bHe>> rubs <<bhis>> ass against your <<penis>> through your $worn.genitals.name trying to force <<bhis>> way through. <<sex 20 "genitals">><<set $worn.genitals.integrity -= 40>><<set $enemyanger += 10>> <<elseif $nopenile is 1>> <span class="purple"><<bHe>> presses <<bhis>> ass against your <<penis>>.</span> <<sex 20 "genitals">><<set $NPCList[_n].penis to "otheranusimminent">><<set $penisstate to "otheranusimminent">><<set $speechotheranusimminent to 1>> <<else>> <<if $penisWetness gte (playerPenisSize() * 15) + random(1, 40) or random(1, 2) is 2>> <<bHe>> presses <<bhis>> ass against your <<penis>>. <<penis_lube_text>> <span class="pink">your tip is pushed inside, a thrust away from being enveloped.</span> <<sex 20 "genitals">><<set $NPCList[_n].penis to "otheranusimminent">><<set $penisstate to "otheranusimminent">><<set $speechotheranusimminent to 1>> <<else>> <<bHe>> presses <<bhis>> ass against your <<penis>>, <span class="blue">but fails to gain purchase.</span> <<sex 5 "genitals">> <</if>> <</if>> <<elseif $rng gte 1>> <<if !playerChastity("penis")>> <<bHe>> <<beast_growls_text>> and rubs against your <<penis>>. <<sex 10 "genitals">><<set $enemyanger += 10>> <<else>> <<bHe>> <<beast_growls_text>> and rubs against your $worn.genitals.name<<if $worn.genitals.name is "chastity parasite">>, <span class="lewd">making you feel more aroused.</span><<arousal 100 "genitals">><<else>>.<</if>> <<sex 10 "genitals">><<set $enemyanger += 10>> <</if>> <</if>> <</if>> <</if>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].penis is "penisentrance">> <<if $rng gte 51 and playerChastity("penis")>> <<bHe>> caresses <<bhis>> penis against your $worn.genitals.name. <<sex 10 "genitals">><<set $NPCList[_n].penis to "penisimminent">><<set $penisstate to "otherpenisimminent">> <<elseif $rng gte 51>> <span class="purple"><<bHe>> caresses your <<penis>> with <<bhis>> own, hinting at what's to come.</span> <<sex 10 "genitals">><<set $NPCList[_n].penis to "penisimminent">><<set $penisstate to "otherpenisimminent">> <<else>> <<if playerChastity("penis")>> <<bHe>> hovers <<bhis>> $NPCList[_n].penisdesc closer to your $worn.genitals.name. <<else>> <<bHe>> hovers <<bhis>> $NPCList[_n].penisdesc close to your <<penis>>. <</if>> <<sex 5 "genitals">> <</if>> <<elseif $NPCList[_n].penis is "penisimminent">> <<bHe>> thrusts forward, <span class="pink"> <<if $enemyarousal gte (($enemyarousalmax / 10) * 7)>> savagely fencing <<elseif $enemyarousal gte (($enemyarousalmax / 10) * 4)>> smashing <<else>> pressing <</if>> <<if playerChastity("penis")>> <<bhis>> $NPCList[_n].penisdesc against your $worn.genitals.name. <<set $worn.genitals.integrity -= 10>><<set $speechchastity to 1>> <<elseif random(0,1) is 1>> <<bhis>> $NPCList[_n].penisdesc against yours. <<else>> <<bhis>> $NPCList[_n].penisdesc against your <<penis>>. <</if>> </span> <<sex 10 "genitals">><<set $NPCList[_n].penis to "penis">><<set $penisstate to "otherpenis">> <<elseif $NPCList[_n].penis is "penis">> <<if $rng gte 1>> <<if playerChastity("penis")>> <<if $enemyarousal gte $enemyarousalmax * 0.8>> <<bHe>> slams <<bhis>> $NPCList[_n].penisdesc against your $worn.genitals.name with a bestial fervour as <<bhe>> approaches orgasm. <<elseif $enemyarousal gte $enemyarousalmax * 0.6>> <<bHe>> thrusts <<bhis>> $NPCList[_n].penisdesc against your $worn.genitals.name with increasing fervour. <<elseif $enemyarousal gte $enemyarousalmax * 0.4>> <<bHe>> savagely fences your $worn.genitals.name and <<bhis>> $NPCList[_n].penisdesc together. <<else>> <<bHe>> kneads your $worn.genitals.name and <<bhis>> $NPCList[_n].penisdesc together. <</if>> <<if $enemyarousal gte $enemyarousalmax * 0.6 and $worn.genitals.name is "chastity parasite">> <span class="purple"><<bHis>> precum coats your $worn.genitals.name,</span> <span class="lewd">the parasite sending a wave of pleasure through your <<penis>>.</span> <<arousal 400 "genitals">><<if !$earSlime.defyCooldown and $earSlime.vibration lt 120>><<set $earSlime.vibration += 10>><</if>> <<set $worn.genitals.integrity -= 5>> <<elseif $enemyarousal gte $enemyarousalmax * 0.6>> <span class="purple">Your precum mingles.</span><<purity -1>> <<set $worn.genitals.integrity -= 10>> <</if>> <<if $worn.genitals.name is "chastity parasite">><<arousal 100 "genitals">><</if>> <<set $worn.genitals.integrity -= 5>><<set $speechchastity to 1>> <<elseif $enemyarousal gte $enemyarousalmax * 0.8>> <<bHe>> slams <<bhis>> penis against yours with a bestial fervour as <<bhe>> approaches orgasm. <<if $penisWetness gte 45 and !playerHasStrapon()>> <span class="purple">Your precum mingles.</span><<purity -1>> <</if>> <<elseif $enemyarousal gte $enemyarousalmax * 0.6>> <<bHe>> thrusts <<bhis>> penis against yours with increasing fervour. <<if $penisWetness gte 45 and !playerHasStrapon()>> <span class="purple">Your precum mingles.</span><<purity -1>> <</if>> <<elseif $enemyarousal gte $enemyarousalmax * 0.4>> <<bHe>> savagely fences your <<penises>> together. <<elseif $enemyarousal gte $enemyarousalmax * 0.2>> <<bHe>> thrusts <<bhis>> penis against your <<penis>>. <<else>> <<bHe>> kneads your <<penises>> together. <</if>> <<sex 20 "genitals">><<set $speechpenispenis to 1>> <<else>> <span class="lblue"><<bHe>> moves <<bhis>> penis away from yours.</span> <<set $penisuse to 0>><<set $NPCList[_n].penis to 0>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].vagina is "frot">> <<if $player.penisExist>> <<if $rng gte 101>> <span class="blue"><<bHe>> angles <<bhis>> pussy toward your <<penis>>.</span> <<set $NPCList[_n].vagina to "vaginaentrance">><<set $penisuse to "othervagina">><<set $penisstate to "entrance">><<set $penisactiondefault to "bay">> <<else>> <<bHe>> frots <<bhis>> pussy against your <<penis>>. <<sex 5 "genitals">> <</if>> <<else>> <<if $rng gte 101>> <<bHe>> lifts <<bhis>> pussy away from your <<penis>>. <<set $thighuse to 0>><<set $NPCList[_n].penis to 0>><<set $penisactiondefault to "bay">> <<else>> <<bHe>> frots <<bhis>> pussy against your <<penis>>. <<sex 5 "genitals">> <</if>> <</if>> <</if>> <<if $NPCList[_n].vagina is "penis">> <<if $enemyanger gte 100>> <<if $enemyarousal gte (($enemyarousalmax / 5) * 4)>> <<bHe>> fucks your <<penis>> with a violent intensity. <<elseif $enemyarousal gte (($enemyarousalmax / 5) * 2)>> <<bHe>> continues fucking your <<penis>>. Each thrust feels deeper than the last. <<else>> Wanting to prove dominance <<bhe>> pounds your <<penis>> with deep and deliberate thrusts. <</if>> <<elseif $enemyanger gte 20>> <<if $enemyarousal gte (($enemyarousalmax / 5) * 4)>> You feel <<bhis>> pussy throb as <<bhe>> pounds away at your <<penis>>. <<elseif $enemyarousal gte (($enemyarousalmax / 5) * 2)>> <<bHe>> violates your <<penis>> with increasing eagerness. <<else>> <<bHe>> fucks your <<penis>> with deep and deliberate thrusts. <</if>> <<else>> <<if $enemyarousal gte (($enemyarousalmax / 5) * 4)>> <<bHe>> fucks your <<penis>>, eager for your seed. <<elseif $enemyarousal gte (($enemyarousalmax / 5) * 2)>> <<bHe>> pounds your <<penis>> without relenting. <<else>> <<bHis>> pussy continues swallowing your <<penis>>. <</if>> <</if>> <<sex 30 "genitals">> <<if playerHasStrapon()>><<violence 2 1 1 0>> <<else>><<bruise penis>><<violence 2>><</if>> <</if>> <<rng>> <<if $NPCList[_n].vagina is "penisimminent">> <<if (playerPenisSize() is -1 and $arousal lte ($arousalmax / 10) * 9) or (playerPenisSize() is -2 and $arousal lte ($arousalmax / 20) * 19)>> <<bHe>> presses <<bhis>> pussy against your <<penis>>, trying to force an erection. <<set $enemyanger += 5>><<arousal 300 "genitals">><<set $speechpeniswithhold to 1>> <<else>> <<if playerHasStrapon() or $player.virginity.penile isnot true>> <span class="pink"><<bHe>> takes your <<penis>> deep into <<bhis>> <<pussy>>.</span> <<sex 30 "genitals">> <<if playerHasStrapon()>><<violence 2 1 1 0>> <<else>><<bruise penis>><<violence 2>><<raped>><<penisraped>><<takeTempleVirginity $NPCList[_n].fullDescription "penile">><</if>> <<elseif $player.virginity.penile is true>> <span class="pink"><<bHe>> takes your <<penis>> deep into <<bhis>> pussy,</span><span class="red"> separating your foreskin from your glans and forever robbing you of your purity.</span> <<sex 100 "genitals">><<takeVirginity $NPCList[_n].fullDescription "penile">><<bruise penis>><<violence 100>><<raped>><<penisraped>> <</if>> <<penilestat>><<set $NPCList[_n].vagina to "penis">><<takeNPCVirginity _n "vaginal">><<set $penisstate to "penetrated">> <</if>> <</if>> <<rng>> <<if $NPCList[_n].vagina is "penisentrance">> <<if $worn.over_lower.vagina_exposed is 0>> <<bHe>> rubs <<bhis>> pussy against your <<penis>> through your $worn.over_lower.name. <<sex 5 "genitals">><<set $worn.over_lower.integrity -= 10>> <<elseif $worn.lower.vagina_exposed is 0>> <<bHe>> rubs <<bhis>> pussy against your <<penis>> through your $worn.lower.name. <<sex 5 "genitals">><<set $worn.lower.integrity -= 10>> <<elseif $worn.lower.vagina_exposed is 1>> <<rng>> <<if $worn.under_lower.vagina_exposed is 1 and playerChastity("penis")>> <<bHe>> thrusts against your $worn.genitals.name, desperate to <<if $settings.pregnancySpeechEnabled>>breed<<else>>fuck<</if>> with the <<penis>> beneath. <<bHe>> hurts <<bhimself>> against the hard material and withdraws, <<beast_growling_text>>. <<set $NPCList[_n].vagina to 0>><<set $penisuse to 0>><<set $penisstate to 0>><<sex 20 "genitals">><<set $worn.genitals.integrity -= 10>><<set $enemyanger += 15>><<set $enemytrust -= 15>><<set $enemyhealth -= 5>> <<elseif $worn.under_lower.vagina_exposed is 0>> <<bHe>> rubs <<bhis>> pussy against your <<penis>> through your $worn.under_lower.name. <<sex 5 "genitals">><<set $worn.under_lower.integrity -= 10>> <<elseif $worn.under_lower.vagina_exposed is 1>> <<if $rng gte 51>> <<if $penisWetness gte (playerPenisSize() * 15) + random(1, 40) or random(1, 2) is 2>> <<bHe>> pushes <<bhis>> pussy against your <<penis>>. <<penis_lube_text>> <span class="pink">your tip is pushed inside, a thrust away being enveloped.</span> <<sex 20 "genitals">><<set $NPCList[_n].vagina to "penisimminent">><<set $penisstate to "imminent">> <<else>> <<bHe>> pushes <<bhis>> pussy against your <<penis>>, <span class="blue">but fails to gain purchase.</span> <<sex 5 "genitals">> <<if random(1, 3) is 3>> Lewd fluids drips from <<bhis>> pussy, <span class="blue">lubricating you.</span> <</if>> <</if>> <<elseif $rng gte 1>> <<bHe>> rubs <<bhis>> pussy against your <<penis>>. <<sex 5 "genitals">> <</if>> <</if>> <</if>> <</if>> <<if $NPCList[_n].vagina is "mouth">> <<if $enemyanger gte 100>> <<bHe>> covers your mouth with <<bhis>> pussy, making it difficult to breathe. <<violence 3>><<bruise face>><<set $speechvaginamouth to 1>> <<else>> <<if $mouthsubmit is 1>> <<if $rng gte 1>> <<bHe>> rubs <<bhis>> pussy against your lips. <<if $enemyarousal gte (($enemyarousalmax / 5) * 3)>> You can taste <<bhis>> juices. <</if>> <<sex 3 "mouth">><<set $speechvaginamouth to 1>> <<else>> <<bHe>> moves <<bhis>> pussy away from your face. <<set $mouthuse to 0>><<set $mouthstate to 0>><<set $NPCList[_n].vagina to 0>> <</if>> <<else>> <<if $rng gte 1>> <<bHe>> rubs <<bhis>> pussy against your lips. <<if $enemyarousal gte (($enemyarousalmax / 5) * 3)>> You can taste <<bhis>> juices. <</if>> <<sex 3 "mouth">><<set $speechvaginamouth to 1>> <<else>> <<bHe>> moves <<bhis>> pussy away from your face. <<set $mouthuse to 0>><<set $mouthstate to 0>><<set $NPCList[_n].vagina to 0>> <</if>> <</if>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].vagina is "vaginaentrance">> <<if $rng gte 51>> <span class="purple"><<bHe>> kisses your <<pussy>> with <<bhis>> own, hinting at what's to come.</span> <<sex 10 "genitals">><<set $NPCList[_n].vagina to "vaginaimminent">><<set $vaginastate to "othervaginaimminent">> <<else>> <<bHe>> hovers <<bhis>> pussy close to yours. <<sex 5 "genitals">> <</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 "genitals">><<set $NPCList[_n].vagina to "vagina">><<set $vaginastate to "othervagina">> <<elseif $NPCList[_n].vagina is "vagina">> <<if $rng gte 1>> <<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 "genitals">><<set $speechvaginavagina to 1>> <<else>> <span class="lblue"><<bHe>> moves <<bhis>> pussy away from yours.</span> <<set $vaginause to 0>><<set $NPCList[_n].vagina to 0>> <</if>> <</if>> <<if $NPCList[_n].vagina is "leftarm">> <<if $rng gte 1>> <<bHe>> rubs <<bhis>> pussy against your fingers. <<submission 2>> <<else>> <<bHe>> moves your hand away from <<bhis>> pussy. <<set $leftarm to 0>><<set $NPCList[_n].vagina to 0>><<set $leftactiondefault to "leftplay">> <</if>> <</if>> <<if $NPCList[_n].vagina is "rightarm">> <<if $rng gte 1>> <<bHe>> rubs <<bhis>> pussy against your fingers. <<submission 2>> <<else>> <<bHe>> moves your hand away from <<bhis>> pussy. <<set $rightarm to 0>><<set $NPCList[_n].vagina to 0>><<set $rightactiondefault to "rightplay">> <</if>> <</if>> <<rng>> <<if $NPCList[_n].vagina is "feet">> <<if $rng gte 1>> <<bHe>> rubs <<bhis>> pussy against your feet. <<submission 2>> <<else>> <<bHe>> moves your feet away from <<bhis>> pussy. <<set $feetuse to 0>><<set $NPCList[_n].vagina to 0>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].vagina is "otherfrot">> <<if $rng gte 101>> <span class="blue"><<bHe>> shifts <<bhis>> ass and presses <<bhis>> anus against your <<penis>>.</span> <<set $penisuse to "otheranus">><<set $NPCList[_n].vagina to "otheranusentrance">><<set $penisstate to "otheranusentrance">><<set $speechotheranusentrance to 1>> <<else>> <<bHe>> <<beast_growls_text>> and rubs <<bhis>> ass against your <<penis>>. <<sex 5 "genitals">><<set $enemyanger += 5>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].vagina is "otheranus">> <<if $rng gte 101>> <span class="purple"><<bHe>> moves <<bhis>> pelvis away, releasing your <<penis>> from <<bhis>> anus.</span> <<sex 30 "genitals">><<set $NPCList[_n].vagina to "otheranusimminent">><<bruise penis>><<set $penisstate to "otheranusimminent">><<set $speechotheranusimminent to 1>> <<if playerHasStrapon()>><<violence 1 1 1 0>> <<else>><<bruise penis>><<violence 1>><</if>> <<elseif $rng gte 1>> <<if $enemyanger gte 100>> <<if $enemyarousal gte (($enemyarousalmax / 5) * 4)>> <<bHe>> <<beast_growls_text>> and fucks your <<penis>> with <<bhis>> ass, <<bhis>> movements violent and erratic. <<elseif $enemyarousal gte (($enemyarousalmax / 5) * 2)>> <<bHe>> <<beast_growls_text>> as <<bhe>> pushes back against your penis. <<else>> <<bHe>> <<beast_growls_text>> and fucks your <<penis>> with rough movements. <</if>> <<elseif $enemyanger gte 20>> <<if $enemyarousal gte (($enemyarousalmax / 5) * 4)>> You feel <<bhis>> ass twitch around your length as <<bhe>> pushes back. <<elseif $enemyarousal gte (($enemyarousalmax / 5) * 2)>> <<bHe>> continues to push against your <<penis>>. <<else>> <<bHe>> fucks your <<penis>>, taking as much of you into <<bhis>> ass as <<bhe>> can. <</if>> <<else>> <<if $enemyarousal gte (($enemyarousalmax / 5) * 4)>> <<bHe>> continues pushing against your <<penis>>, <<bhis>> anus viciously pounding your length. <<elseif $enemyarousal gte (($enemyarousalmax / 5) * 2)>> <<bHe>> continues pushing against your <<penis>>, <<bhis>> anus rhythmically pounding your length. <<else>> <<bHe>> pushes against your <<penis>> with steady movements. <</if>> <</if>> <<sex 30 "genitals">><<set $speechotheranuspenetrated to 1>><<set $enemyanger += 10>> <<if playerHasStrapon()>><<violence 2 1 1 0>> <<else>><<bruise penis>><<violence 2>><</if>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].vagina is "otheranusimminent">> <<if $rng gte 101>> <span class="blue"><<bHe>> stops pressing <<bhis>> ass against your <<penis>>.</span> <<set $NPCList[_n].vagina to "otheranusentrance">><<set $penisstate to "otheranusentrance">><<set $speechotheranusentrance to 1>> <<elseif $rng gte 1>> <<if $nopenile is 0>><<set $penisactiondefault to "otheranustake">> <<if ((playerPenisSize() is -1 and $arousal lte ($arousalmax / 10) * 9) or (playerPenisSize() is -2 and $arousal lte ($arousalmax / 20) * 19))>> <<bHe>> presses <<bhis>> ass against your <<penis>>, trying to force an erection. <<set $enemyanger += 5>><<arousal 300 "genitals">><<set $speechotheranuswithhold to 1>> <<else>> <<if playerHasStrapon() or $player.virginity.penile isnot true>> <span class="pink"><<bHe>> eases your <<penis>> into <<bhis>> ass, swallowing you to the base.</span> <<sex 30 "genitals">><<set $speechotheranuspenetrated to 1>> <<if playerHasStrapon()>><<violence 2 1 1 0>> <<else>><<bruise penis>><<violence 2>><<raped>><<penisraped>><<takeTempleVirginity $NPCList[_n].fullDescription "penile">><</if>> <<elseif $player.virginity.penile is true>> <span class="pink"><<bHe>> eases your virgin penis into <<bhis>> ass,</span><span class="red"> separating your foreskin from your glans and forever robbing you of your purity.</span> <<sex 100 "genitals">><<takeVirginity $NPCList[_n].fullDescription "penile">><<bruise penis>><<violence 100>><<raped>><<penisraped>><<set $speechpenisvirgin to 1>> <</if>> <<penilestat>><<set $NPCList[_n].vagina to "otheranus">><<takeNPCVirginity _n "anal">><<set $penisstate to "otheranus">> <</if>> <<else>> Respecting your wishes, <<bhe>> does not envelop your <<penis>> with <<bhis>> ass, instead teasing the tip of your glans. <<sex 15 "genitals">><<set $speechotheranuswithhold to 1>><<set $enemyanger += 10>> <</if>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].vagina is "otheranusentrance">> <<if $rng gte 101>> <span class="lblue"><<bHe>> moves <<bhis>> ass away from your <<penis>>.</span> <<set $NPCList[_n].vagina to 0>><<set $penisuse to 0>><<set $penisstate to 0>> <<elseif $rng gte 1>> <<if $worn.over_lower.vagina_exposed is 0>> <<bHe>> rubs <<bhis>> ass against your <<penis>> through your $worn.over_lower.name. <<sex 5 "genitals">><<set $worn.over_lower.integrity -= 10>><<set $speechotheranusentrance to 1>><<set $enemyanger += 10>> <<elseif $worn.lower.vagina_exposed is 0>> <<bHe>> rubs <<bhis>> ass against your <<penis>> through your $worn.lower.name. <<sex 5 "genitals">><<set $worn.lower.integrity -= 10>><<set $speechotheranusentrance to 1>><<set $enemyanger += 10>> <<elseif $worn.lower.vagina_exposed is 1>> <<rng>> <<if $worn.under_lower.vagina_exposed is 0>> <<bHe>> rubs <<bhis>> ass against your <<penis>> through your $worn.under_lower.name. <<sex 5 "genitals">><<set $worn.under_lower.integrity -= 10>><<set $speechotheranusentrance to 1>><<set $enemyanger += 10>> <<elseif $worn.under_lower.vagina_exposed is 1>> <<if $rng gte 71>> <<if $worn.genitals.name is "chastity parasite">> <<bHe>> rubs <<bhis>> ass against your $worn.genitals.name, <span class="lewd">leaving you feeling more aroused.</span> <<arousal 100 "genitals">> <<sex 25 "genitals">><<set $worn.genitals.integrity -= 5>><<set $enemyanger += 5>> <<elseif $nopenile is 0 and playerChastity("penis")>> <<bHe>> rubs <<bhis>> ass against your $worn.genitals.name trying to get to your <<penis>>. <<sex 20 "genitals">><<set $worn.genitals.integrity -= 10>><<set $enemyanger += 5>> <<elseif $nopenile is 1>> <span class="purple"><<bHe>> presses <<bhis>> ass against your <<penis>>.</span> <<sex 20 "genitals">><<set $NPCList[_n].vagina to "otheranusimminent">><<set $penisstate to "otheranusimminent">><<set $speechotheranusimminent to 1>> <<else>> <<if $penisWetness gte (playerPenisSize() * 15) + random(1, 40) or random(1, 2) is 2>> <<bHe>> presses <<bhis>> ass against your <<penis>>. <<penis_lube_text>> <span class="pink">your tip is pushed inside, a thrust away from being enveloped.</span> <<sex 20 "genitals">><<set $NPCList[_n].vagina to "otheranusimminent">><<set $penisstate to "otheranusimminent">><<set $speechotheranusimminent to 1>> <<else>> <<bHe>> presses <<bhis>> ass against your <<penis>>, <span class="blue">but fails to gain purchase.</span> <<sex 5 "genitals">> <</if>> <</if>> <<elseif $rng gte 1>> <<if !playerChastity("penis")>> <<bHe>> <<beast_growls_text>> and rubs against your <<penis>>. <<sex 10 "genitals">><<set $enemyanger += 10>> <<else>> <<bHe>> <<beast_growls_text>> and rubs against your $worn.genitals.name<<if $worn.genitals.name is "chastity parasite">>, <span class="lewd">making you feel more aroused.</span><<arousal 100 "genitals">><<else>>.<</if>> <<sex 10 "genitals">><<set $enemyanger += 10>> <</if>> <</if>> <</if>> <</if>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].mouth is "penis">> <<if $rng gte 101>> <span class="purple"><<bHe>> moves <<bhis>> head back, releasing your <<penis>> from <<bhis>> mouth.</span> <<sex 30 "genitals">><<set $NPCList[_n].mouth to "penisimminent">><<set $penisstate to "othermouthimminent">> <<elseif $rng gte 1>> <<if $enemyarousal lte ($enemyarousalmax / 5)>> <<bHe>> caresses your shaft with <<bhis>> long tongue. <<sex 30 "genitals">> <<elseif $enemyarousal lte (($enemyarousalmax / 5) * 2)>> <<bHe>> wraps <<bhis>> tongue around your <<penis>> and licks the tip. <<sex 30 "genitals">> <<elseif $enemyarousal lte (($enemyarousalmax / 5) * 3)>> <<bHe>> laps at your glans. <<sex 30 "genitals">> <<elseif $enemyarousal lte (($enemyarousalmax / 5) * 4)>> <<bHe>> takes your <<penis>> deep into <<bhis>> mouth while <<bhis>> tongue teases your testes. <<sex 30 "genitals">> <<else>> <<bHe>> buries your <<penis>> deep into <<bhis>> mouth, hot tongue leaving no inch of it unexplored. <<sex 30 "genitals">> <</if>> <</if>> <<if playerHasStrapon()>><<violence 1 1 1 0>> <<else>><<bruise penis>><<violence 1>><</if>> <</if>> <<rng>> <<if $NPCList[_n].mouth is "penisimminent">> <<if $rng gte 101>> <span class="blue"><<bHe>> stops pressing <<bhis>> lips against your <<penis>>.</span> <<set $NPCList[_n].mouth to "penisentrance">><<set $penisstate to "othermouthentrance">> <<elseif $rng gte 1>> <<if $worn.genitals.name is "chastity parasite">> <<bHe>> licks your $worn.genitals.name, <span class="lewd">the parasite sending a wave of pleasure through your <<penis>>.</span> Your reaction causes <<bhim>> to continue. <<arousal 400 "genitals">><<if !$earSlime.defyCooldown and $earSlime.vibration lt 120>><<set $earSlime.vibration += 10>><</if>> <<sex 30 "genital">> <<elseif $nopenile is 0 and playerChastity("penis")>> <<bHe>> licks around your $worn.genitals.name probing for a way past. <<bHe>> salivates in anticipation. <<sex 20 "genitals">><<set $worn.genitals.integrity -= 10>><<set $enemyanger += 5>> <<elseif $nopenile is 1 and playerChastity("penis")>> <<bHe>> licks around your $worn.genitals.name. <<bHe>> salivates in anticipation. <<sex 25 "genitals">> <<elseif $nopenile is 0>> <<if playerHasStrapon() or $player.virginity.penile isnot true or $virginitytest isnot 1>> <span class="pink"><<bHe>> pulls your <<penis>> into <<bhis>> mouth with <<bhis>> tongue.</span> <<sex 30 "genitals">> <<violence 1 1 1 `+playerHasStrapon()`>> <<elseif $player.virginity.penile is true>> <span class="pink"><<bHe>> pulls your virgin penis into <<bhis>> mouth with <<bhis>> tongue,</span><span class="red"> separating your foreskin from your glans and forever robbing you of your purity.</span> <<sex 100 "genitals">><<takeVirginity $NPCList[_n].fullDescription "penile">><<violence 100>> <</if>> <<penilestat>><<takeNPCVirginity _n "oral">><<set $NPCList[_n].mouth to "penis">><<set $penisstate to "othermouth">> <<if $virginitytest is 1 and !playerHasStrapon()>><<bruise penis>><<raped>><<penisraped>><</if>> <<else>> Respecting your wishes, <<bhe>> does not envelop your <<penis>> with <<bhis>> mouth, instead licking it with a primal thirst. <<sex 15 "genitals">> <</if>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].mouth is "penisentrance">> <<if $rng gte 101>> <span class="lblue"><<bHe>> moves <<bhis>> head away from your <<penis>>.</span> <<set $NPCList[_n].mouth to 0>><<set $penisuse to 0>><<set $penisstate to 0>> <<if $NPCList[_n].vagina is "othermouth">> <<set $NPCList[_n].vagina to 0>> <</if>> <<if $NPCList[_n].penis is "othermouth">> <<set $NPCList[_n].penis to 0>> <</if>> <<elseif $rng gte 1>> <<if $worn.over_lower.vagina_exposed is 0>> <<bHe>> pushes the outline of your <<penis>> with <<bhis>> long tongue through your $worn.over_lower.name, eager to taste the skin beneath. <<sex 5 "genitals">><<set $worn.over_lower.integrity -= 10>> <<elseif $worn.lower.vagina_exposed is 0>> <<bHe>> pushes the outline of your <<penis>> with <<bhis>> long tongue through your $worn.lower.name, eager to taste the skin beneath. <<sex 5 "genitals">><<set $worn.lower.integrity -= 10>> <<elseif $worn.lower.vagina_exposed is 1>> <<rng>> <<if $worn.under_lower.vagina_exposed is 0>> <<bHe>> traces the outline of your <<penis>> with <<bhis>> long tongue through your $worn.under_lower.name, eager to taste the skin beneath. <<sex 5 "genitals">><<set $worn.under_lower.integrity -= 10>> <<elseif $worn.under_lower.vagina_exposed is 1>> <<if $rng gte 71>> <<if $worn.genitals.name is "chastity parasite">> <<bHe>> licks your $worn.genitals.name, <span class="lewd">the parasite sending a wave of pleasure through your <<penis>>.</span> Your reaction causes <<bhim>> to continue. <<arousal 400 "genitals">><<if !$earSlime.defyCooldown and $earSlime.vibration lt 120>><<set $earSlime.vibration += 10>><</if>> <<sex 30 "genital">> <<elseif $nopenile is 0 and playerChastity("penis")>> <<bHe>> starts to lick around your $worn.genitals.name. <<sex 20 "genitals">><<set $NPCList[_n].mouth to "penisimminent">><<set $penisstate to "othermouthimminent">> <<elseif $nopenile is 1>> <span class="purple"><<bHe>> starts to pull your <<penis>> into <<bhis>> mouth with <<bhis>> tongue.</span> <<sex 20 "genitals">><<set $NPCList[_n].mouth to "penisimminent">><<set $penisstate to "othermouthimminent">> <<else>> <span class="purple"><<bHe>> starts to pull your <<penis>> into <<bhis>> mouth with <<bhis>> tongue.</span> <<bHe>> salivates in anticipation. <<sex 20 "genitals">><<set $NPCList[_n].mouth to "penisimminent">><<set $penisstate to "othermouthimminent">> <</if>> <<elseif $rng gte 1>> <<if !playerChastity("penis")>> <<bHe>> licks and teases your <<penis>> with <<bhis>> long tongue. <<sex 10 "genitals">> <<else>> <<bHe>> licks and teases you around your $worn.genitals.name with <<bhis>> long tongue<<if $worn.genitals.name is "chastity parasite">>, <span class="lewd">making you feel more aroused.</span><<arousal 100 "genitals">><<else>>.<</if>> <<sex 10 "genitals">> <</if>> <</if>> <</if>> <</if>> <</if>> <</if>> <<if $NPCList[_n].mouth is "vagina">> <<if $rng gte 101>> <span class="purple"><<bHe>> retracts <<bhis>> tongue from your <<pussy>>.</span> <<sex 30 "genitals">><<set $NPCList[_n].mouth to "vaginaimminent">><<bruise vagina>><<violence 1>><<set $vaginastate to "othermouthimminent">> <<elseif $rng gte 1>> <<if $enemyarousal lte ($enemyarousalmax / 5)>> <<bHe>> tastes your vagina with <<bhis>> tongue. <<sex 30 "genitals">><<bruise vagina>><<violence 1>> <<elseif $enemyarousal lte (($enemyarousalmax / 5) * 2)>> <<bHe>> fills your vagina with <<bhis>> long tongue, twisting and caressing inside you. <<sex 30 "genitals">><<bruise vagina>><<violence 1>> <<elseif $enemyarousal lte (($enemyarousalmax / 5) * 3)>> <<bHis>> agile tongue explores and teases your <<pussy>>. <<sex 30 "genitals">><<bruise vagina>><<violence 1>> <<elseif $enemyarousal lte (($enemyarousalmax / 5) * 4)>> <<bHe>> runs <<bhis>> tongue over your <<pussy>>, then presses against it, pushing deep inside you. <<bHe>> pulls out again and pants. <<sex 30 "genitals">><<bruise vagina>><<violence 1>> <<else>> <<beast_Jaws_text>> latched onto your pelvis, <<bhe>> fucks your <<pussy>> with <<bhis>> tongue. <<bHis>> breath becomes more rapid. <<sex 30 "genitals">><<bruise vagina>><<violence 1>> <</if>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].mouth is "vaginaimminent">> <<if $rng gte 101>> <span class="blue"><<bHe>> stops pressing <<bhis>> tongue against your <<pussy>>.</span> <<set $NPCList[_n].mouth to "vaginaentrance">><<set $vaginastate to "othermouthentrance">> <<elseif $rng gte 1>> <<if $novaginal is 0 and playerChastity("vagina")>> <<bhe>> uses <<bhis>> tongue to lick around your $worn.genitals.name while feeling for a way past. <<sex 20 "genitals">><<set $worn.genitals.integrity -= 10>><<set $enemyanger += 5>> <<elseif $novaginal is 1 and playerChastity("vagina")>> <<bhe>> uses <<bhis>> tongue to lick around your $worn.genitals.name. <<sex 25 "genitals">> <<elseif $novaginal is 0>> <<if $player.virginity.vaginal isnot true or $virginitytest isnot 1>> <span class="pink"><<bHe>> pushes <<bhis>> long tongue into your <<pussy>>, thirsting for a taste.</span> <<sex 30 "genitals">><<violence 1>> <<elseif $player.virginity.vaginal is true>> <span class="pink"><<bHe>> pushes <<bhis>> long tongue into your virgin pussy,</span><span class="red"> breaking your hymen and forever robbing you of your purity.</span> <<sex 100 "genitals">><<takeVirginity $NPCList[_n].fullDescription "vaginal">><<violence 100>> <</if>> <<vaginalstat>><<set $NPCList[_n].mouth to "vagina">><<bruise vagina>><<set $vaginastate to "othermouth">> <<if $virginitytest is 1>><<raped>><<vaginaraped>><</if>> <<else>> Respecting your wishes, <<bhe>> does not penetrate your <<pussy>> with <<bhis>> tongue, instead licking your labia with a primal thirst. <<sex 15 "genitals">> <</if>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].mouth is "vaginaentrance">> <<if $rng gte 101>> <span class="lblue"><<bHe>> moves <<bhis>> head away from your <<pussy>>.</span> <<set $NPCList[_n].mouth to 0>><<set $vaginause to 0>><<set $vaginastate to 0>> <<if $NPCList[_n].vagina is "othermouth">> <<set $NPCList[_n].vagina to 0>> <</if>> <<if $NPCList[_n].penis is "othermouth">> <<set $NPCList[_n].penis to 0>> <</if>> <<elseif $rng gte 1>> <<if $worn.over_lower.vagina_exposed is 0>> <<bHe>> licks your <<pussy>> with <<bhis>> tongue through your $worn.over_lower.name, eager for a taste of the skin beneath. <<sex 5 "genitals">><<set $worn.over_lower.integrity -= 10>> <<elseif $worn.lower.vagina_exposed is 0>> <<bHe>> licks your <<pussy>> with <<bhis>> tongue through your $worn.lower.name, eager for a taste of the skin beneath. <<sex 5 "genitals">><<set $worn.lower.integrity -= 10>> <<elseif $worn.lower.vagina_exposed is 1>> <<rng>> <<if $worn.under_lower.vagina_exposed is 0>> <<bHe>> licks your <<pussy>> with <<bhis>> tongue through your $worn.under_lower.name. <<sex 5 "genitals">><<set $worn.under_lower.integrity -= 10>> <<elseif $worn.under_lower.vagina_exposed is 1>> <<if $rng gte 71>> <<if $novaginal is 0 and playerChastity("vagina")>> <span class="purple"><<bHe>> pushes <<bhis>> long tongue against your $worn.genitals.name near your <<pussy>>.</span> <<sex 20 "genitals">><<set $NPCList[_n].mouth to "vaginaimminent">><<set $vaginastate to "othermouthimminent">> <<elseif $novaginal is 1>> <span class="purple"><<bHe>> pushes <<bhis>> long tongue against your <<pussy>>.</span> <<sex 20 "genitals">><<set $NPCList[_n].mouth to "vaginaimminent">><<set $vaginastate to "othermouthimminent">> <<else>> <span class="purple"><<bHe>> pushes <<bhis>> long tongue against your <<pussy>>, about to penetrate.</span> <<bHe>> salivates in anticipation. <<sex 20 "genitals">><<set $NPCList[_n].mouth to "vaginaimminent">><<set $vaginastate to "othermouthimminent">> <</if>> <<elseif $rng gte 1>> <<if !playerChastity("vagina")>> <<bHe>> laps at your <<if $player.penisExist>><<penis>><<else>>clit<</if>> and labia with <<bhis>> long tongue. <<sex 10 "genitals">> <<else>> <<bHe>> laps around your $worn.genitals.name with <<bhis>> long tongue. <<sex 10 "genitals">> <</if>> <</if>> <</if>> <</if>> <</if>> <</if>> <<if $NPCList[_n].mouth is "bottom">> <<bHe>> licks your <<bottom>><<if playerHasButtPlug()>> and prods your $worn.butt_plug.name with <<bhis>> tongue<</if>>. <<neutral 5 _n>> <</if>> <<if $NPCList[_n].mouth is "anus">> <<if $rng gte 101>> <span class="purple"><<bHe>> retracts <<bhis>> tongue from your anus.</span> <<sex 30 "anus">><<set $NPCList[_n].mouth to "anusimminent">><<bruise anus>><<violence 1>><<set $anusstate to "othermouthimminent">> <<elseif $rng gte 1>> <<if $enemyarousal lte ($enemyarousalmax / 5)>> <<bHe>> slides <<bhis>> long tongue in and out of your anus. <<sex 30 "anus">><<bruise anus>><<violence 1>> <<elseif $enemyarousal lte (($enemyarousalmax / 5) * 2)>> <<bHe>> fills your <<bottom>> with <<bhis>> long tongue, twisting and caressing inside you. <<sex 30 "anus">><<bruise anus>><<violence 1>> <<elseif $enemyarousal lte (($enemyarousalmax / 5) * 3)>> <<bHis>> agile tongue twists and teases inside your <<bottom>>. <<sex 30 "anus">><<bruise anus>><<violence 1>> <<elseif $enemyarousal lte (($enemyarousalmax / 5) * 4)>> <<bHe>> stretches <<bhis>> tongue deep inside your <<bottom>>, enjoying your taste. <<sex 30 "anus">><<bruise anus>><<violence 1>> <<else>> <<bHe>> fucks your <<bottom>> with <<bhis>> long tongue. <<sex 30 "anus">><<bruise anus>><<violence 1>> <</if>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].mouth is "anusimminent">> <<if $rng gte 101>> <span class="blue"><<bHe>> stops pressing <<bhis>> tongue against your anus.</span> <<set $NPCList[_n].mouth to "anusentrance">><<set $anusstate to "othermouthentrance">> <<elseif $rng gte 1>> <<if $noanal is 0 and playerChastity("anus")>> <<bhe>> uses <<bhis>> tongue to lick around your $worn.genitals.name while feeling for a way past. <<sex 25 "anus">><<set $worn.genitals.integrity -= 10>><<set $enemyanger += 5>> <<elseif $noanal is 1 and playerChastity("anus")>> <<bhe>> uses <<bhis>> tongue to lick around your $worn.genitals.name. <<sex 30 "anus">> <<elseif $noanal is 0>> <<if $player.virginity.anal isnot true or $virginitytest isnot 1>> <span class="pink"><<bHe>> pushes <<bhis>> long tongue into your anus.</span> <<sex 30 "anus">> <<elseif $player.virginity.anal is true>> <span class="pink"><<bHe>> pushes <<bhis>> long tongue into your virgin anus,</span><span class="red"> violating you in a way you hadn't conceived of.</span> <<sex 100 "anus">><<takeVirginity $NPCList[_n].fullDescription "anal">><<violence 100>> <</if>> <<analstat>><<set $NPCList[_n].mouth to "anus">><<bruise anus>><<violence 1>><<set $anusstate to "othermouth">> <<if $virginitytest is 1>><<raped>><<anusraped>><</if>> <<else>> Respecting your wishes, <<bhe>> does not penetrate your <<bottom>> with <<bhis>> tongue, instead licking your opening. <<sex 15 "anus">> <</if>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].mouth is "anusentrance">> <<if $rng gte 101>> <span class="lblue"><<bHe>> moves <<bhis>> head away from your <<bottom>>.</span> <<set $NPCList[_n].mouth to 0>><<set $anususe to 0>><<set $anusstate to 0>> <<if $NPCList[_n].vagina is "othermouth">> <<set $NPCList[_n].vagina to 0>> <</if>> <<if $NPCList[_n].penis is "othermouth">> <<set $NPCList[_n].penis to 0>> <</if>> <<elseif $rng gte 1>> <<if $worn.over_lower.anus_exposed is 0>> <<bHe>> circles <<bhis>> long tongue around your anus through your $worn.over_lower.name. <<sex 5 "anus">><<set $worn.over_lower.integrity -= 10>> <<elseif $worn.lower.anus_exposed is 0>> <<bHe>> circles <<bhis>> long tongue around your anus through your $worn.lower.name. <<sex 5 "anus">><<set $worn.lower.integrity -= 10>> <<elseif $worn.lower.anus_exposed is 1>> <<rng>> <<if $worn.under_lower.anus_exposed is 0>> <<bHe>> circles <<bhis>> long tongue around your anus through your $worn.under_lower.name. <<sex 5 "anus">><<set $worn.under_lower.integrity -= 10>> <<elseif $worn.under_lower.anus_exposed is 1>> <<if $rng gte 71>> <<if $noanal is 0 and playerChastity("anus")>> <span class="purple"><<bHe>> presses <<bhis>> tongue against your $worn.genitals.name near your anus.</span> <<sex 20 "anus">><<set $NPCList[_n].mouth to "anusimminent">><<set $anusstate to "othermouthimminent">> <<elseif $noanal is 1>> <span class="purple"><<bHe>> presses <<bhis>> tongue against your anus.</span> <<sex 20 "anus">><<set $NPCList[_n].mouth to "anusimminent">><<set $anusstate to "othermouthimminent">> <<else>> <span class="purple"><<bHe>> presses <<bhis>> long tongue against your anus, preparing to penetrate you.</span> <<bHe>> salivates in anticipation. <<sex 20 "anus">><<set $NPCList[_n].mouth to "anusimminent">><<set $anusstate to "othermouthimminent">> <</if>> <<elseif $rng gte 1>> <<if !playerChastity("anus")>> <<bHe>> prods and licks your <<bottom>>. <<sex 10 "anus">> <<else>> <<bHe>> prods and licks your <<bottom>> near your $worn.genitals.name <<sex 10 "anus">> <</if>> <</if>> <</if>> <</if>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].stance is "approach">> <<if $NPCList[_n].mouth is 0>> <<if $NPCList[_n].monster is "monster" and random(1, 5) is 5 and $speechdisable isnot 1>> <<beastspeech _n>> <<elseif $enemyanger + $rng lte 20 and $NPCList[_n].location.head is 0>> <<if $NPCList[_n].penis is 0 or $NPCList[_n].vagina is 0>> Curious, <<bhe>> sniffs your groin. <<neutral 5>><<enemyarousal 10>> <<else>> Curious, <<bhe>> sniffs your face. <<neutral 1>><<enemyarousal 10>> <</if>> <<elseif $enemyanger + $rng lte 40 and $NPCList[_n].location.head is 0>> <<beastlick>> <<elseif $enemyanger + $rng lte 160 and $NPCList[_n].location.head is 0>> <<if $worn.over_lower.name isnot "naked" or $worn.lower.name isnot "naked">> <<if setup.clothes.over_lower[clothesIndex('over_lower', $worn.over_lower)].skirt is 1 and $worn.over_lower.skirt_down is 1>> <span class="blue"><<bHe>> lifts up your $worn.over_lower.name with <<bhis>> <<beast_teeth_text>>.</span> <<set $worn.lower.skirt_down to 0>><<set $worn.over_lower.vagina_exposed to 1>><<set $worn.over_lower.anus_exposed to 1>><<set $worn.over_lower.exposed to 2>><<set $worn.over_lower.integrity -= 10>> <<elseif setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1 and $worn.lower.skirt_down is 1>> <span class="blue"><<bHe>> lifts up your $worn.lower.name with <<bhis>> <<beast_teeth_text>>.</span> <<set $worn.lower.skirt_down to 0>><<set $worn.lower.vagina_exposed to 1>><<set $worn.lower.anus_exposed to 1>><<set $worn.lower.exposed to 2>><<set $worn.lower.integrity -= 10>> <<elseif $worn.over_lower.exposed isnot 2>> <span class="purple"><<bHe>> grabs your $worn.over_lower.name with <<bhis>> <<beast_teeth_text>>.</span> <<set $NPCList[_n].mouth to "overlowerclothes">><<violence 1>> <<elseif $worn.lower.exposed isnot 2>> <span class="purple"><<bHe>> grabs your $worn.lower.name with <<bhis>> <<beast_teeth_text>>.</span> <<set $NPCList[_n].mouth to "lowerclothes">><<violence 1>> <<elseif $worn.under_lower.name isnot "naked">> <span class="purple"><<bHe>> grabs your $worn.under_lower.name with <<bhis>> <<beast_teeth_text>>.</span> <<set $NPCList[_n].mouth to "underlowerclothes">><<violence 1>> <<else>> <<beastlick>> <</if>> <<elseif $worn.under_lower.name isnot "naked">> <span class="purple"><<bHe>> grabs your $worn.under_lower.name with <<bhis>> <<beast_teeth_text>>.</span> <<set $NPCList[_n].mouth to "underlowerclothes">><<violence 1>> <<else>> <<beastlick>> <</if>> <<elseif $enemyanger + $rng lte 200>> <<bHe>> <<beast_growls_text>> menacingly. <<violence 1>> <<else>> <<if $NPCList[_n].penis is 0 or $NPCList[_n].vagina is 0>> <<if $NPCList[_n].claws is "claws">> <!-- Removed $claws --> <<bHe>> bites and claws at your thighs. <<else>> <<bHe>> bites your thighs. <</if>> <<violence 20>><<bruise thigh>><<bruise thigh>><<set $worn.lower.integrity -= 20>><<set $worn.under_lower.integrity -= 20>><<hitstat>><<set $enemyanger -= 20>> <<else>> <<bHe>> bites and claws at your <<breasts>>. <<violence 20>><<bruise chest>><<bruise chest>><<set $worn.upper.integrity -= 20>><<hitstat>><<set $enemyanger -= 20>><<playWithBreasts>> <</if>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].penis is 0 or $NPCList[_n].vagina is 0>> <<if $enemyarousal gte (($enemyarousalmax / 10) * 3)>> <<if $speechgrowl is 1 and $pounce_delay isnot 1>> <<set $pounce_delay to 1>> <<if $water is 0>> <<bHe>> looks about to jump at you, <span class="teal">but your threat keeps <<bhim>> at bay,</span> for now. <<else>> <<bHe>> looks about to approach, <span class="teal">but your threat keeps <<bhim>> at bay,</span> for now. <</if>> <<else>> <<if $NPCList[_n].gender is "f" and !$player.penisExist>> <<if $rng gte 51 and $position isnot "wall" and $NPCList[_n].location.head is 0>> <<if $water is 0>> <span class="blue"><<bHe>> jumps on top of you, mounting your face and pinning you down.</span> <<set $NPCList[_n].stance to "topface">><<violence 5>><<set $NPCList[_n].mouth to 0>> <<else>> <span class="blue"><<bHe>> swims right up to you, pressing <<bhis>> <<if $NPCList[_n].penis isnot "none">>penis<<else>>pussy<</if>> against your face.</span> <<set $NPCList[_n].stance to "topface">><<violence 5>><<set $NPCList[_n].mouth to 0>> <</if>> <<else>> <<if $water is 0>> <span class="blue"><<bHe>> jumps on top of you and pins you down.</span> <<set $NPCList[_n].stance to "top">><<violence 5>><<set $head to "grappled">><<set $NPCList[_n].mouth to 0>> <<else>> <span class="blue"><<bHe>> swims right up to you, pressing <<bhis>> body against yours.</span> <<set $NPCList[_n].stance to "top">><<violence 5>><<set $head to "grappled">><<set $NPCList[_n].mouth to 0>> <</if>> <</if>> <<else>> <<if $rng gte 71 and $position isnot "wall" and $NPCList[_n].location.head is 0>> <<if $water is 0>> <span class="blue"><<bHe>> jumps on top of you, mounting your face and pinning you down.</span> <<set $NPCList[_n].stance to "topface">><<violence 5>><<set $NPCList[_n].mouth to 0>> <<else>> <span class="blue"><<bHe>> swims right up to you, pressing <<bhis>> <<if $NPCList[_n].penis isnot "none">>penis<<else>>pussy<</if>> against your face.</span> <<set $NPCList[_n].stance to "topface">><<violence 5>><<set $NPCList[_n].mouth to 0>> <</if>> <<else>> <<if $water is 0>> <span class="blue"><<bHe>> jumps on top of you and pins you down.</span> <<set $NPCList[_n].stance to "top">><<violence 5>><<set $head to "grappled">><<set $NPCList[_n].mouth to 0>> <<else>> <span class="blue"><<bHe>> swims right up to you, pressing <<bhis>> body against yours.</span> <<set $NPCList[_n].stance to "top">><<violence 5>><<set $head to "grappled">><<set $NPCList[_n].mouth to 0>> <</if>> <</if>> <</if>> <</if>> <<else>> <</if>> <</if>> <<elseif $NPCList[_n].stance is "top">> <<if $NPCList[_n].mouth is 0>> <<if $NPCList[_n].monster is "monster" and random(1, 5) is 5 and $speechdisable isnot 1>> <<beastspeech _n>> <<elseif ($enemyanger + $rng) lte 20 and $position isnot "wall" and $NPCList[_n].location.head isnot "head">> <<bHe>> licks your face. <<neutral 2>> <<elseif ($enemyanger + $rng) lte 40 and $position isnot "wall" and $NPCList[_n].location.head isnot "head">> <<bHe>> licks your neck. <<neutral 2>> <<elseif $enemyanger + $rng lte 60 and $NPCList[_n].location.head isnot "head">> <<if $worn.upper.name isnot "naked">> <<bHe>> tears at your $worn.upper.name. <<neutral 3>><<set $worn.upper.integrity -= 10>> <<elseif $NPCList[_n].gender is "m">> <<bHe>> <<if $NPCList[_n].claws isnot undefined>>presses <<bhis>> <<print $NPCList[_n].claws>> into your back<<else>>bites your back<</if>>. <!-- Removed $claws and <<beast_claws_text>> --> <<neutral 3>> <<else>> <<bHe>> licks your <<breasts>>. <<neutral 3 "breasts">><<playWithBreasts>> <</if>> <<elseif ($enemyanger + $rng) lte 100 and $position isnot "wall">> <<bHe>> grabs your hair in <<bhis>> <<beast_teeth_text>>. <<set $NPCList[_n].mouth to "hair">><<neutral 3>> <<elseif $enemyanger + $rng lte 120>> <<bHe>> <<beast_growls_text>> with menacing intent. <<violence 1>> <<elseif ($enemyanger + $rng) lte 140 and $position isnot "wall" and $NPCList[_n].location.head isnot "head">> <<bHe>> bites your face. <<violence 5>><<bruise face>><<hitstat>> <<elseif ($enemyanger + $rng) lte 160 and $position isnot "wall" and $NPCList[_n].location.head isnot "head">> <<bHe>> bites your neck. <<violence 5>><<bruise neck>><<hitstat>> <<elseif $position isnot "wall" and $NPCList[_n].location.head isnot "head">> <<bHe>> grabs your neck in <<bhis>> <<beast_teeth_text>>. <<violence 5>><<bruise neck>><<set $NPCList[_n].mouth to "neck">><<hitstat>> <<elseif $NPCList[_n].location.head isnot "head">> <<bHe>> bites your waist. <<violence 5>><<bruise tummy>><<hitstat>> <</if>> <</if>> <<if $NPCList[_n].penis is 0>> <<rng>> <<if $rng lte 25>> <<bHe>> humps your rear frantically, rubbing <<bhis>> $NPCList[_n].penisdesc against your back. <<neutral 5 "bottom">> <<elseif $rng lte 50>> <<bHe>> humps your rear frantically, rubbing <<bhis>> $NPCList[_n].penisdesc between your thighs. <<neutral 3 "genitals">> <<elseif $rng lte 75>> <<if $anususe is 0 and $settings.analEnabled>> <span class="blue"><<bHis>> $NPCList[_n].penisdesc gains purchase between your <<bottom>> cheeks.</span> <<sex 5 "anus">><<bruise anus>><<violence 1>><<set $NPCList[_n].penis to "anusentrance">><<set $anususe to "penis">><<set $anusstate to "entrance">> <<else>> <<bHis>> $NPCList[_n].penisdesc rubs against your <<bottom>>. <<neutral 5 "anus">> <</if>> <<elseif $rng lte 100>> <<if $player.vaginaExist and $vaginause is 0 and (!$player.penisExist or random(0,100) lt 75)>> <span class="blue"><<bHe>> humps your rear frantically, gaining purchase in front of your <<pussy>>.</span> <<sex 5 "genitals">><<bruise vagina>><<violence 1>><<set $NPCList[_n].penis to "vaginaentrance">><<set $vaginause to "penis">><<set $vaginastate to "entrance">><<set $vaginatarget to _n>> <<elseif $player.penisExist and $penisuse is 0 and !playerChastity("penis") and (!$player.vaginaExist or $vaginause is 0)>> <<bHe>> humps your rear frantically, rubbing against your <<penis>>. <<sex 5 "genitals">> <<if playerHasStrapon()>><<violence 1 1 1 0>> <<else>><<bruise penis>><<violence 1>><</if>> <<else>> <<bHe>> humps your rear frantically, rubbing <<bhis>> $NPCList[_n].penisdesc between your thighs. <<neutral 3 "genitals">> <</if>> <</if>> <<elseif $NPCList[_n].vagina is 0>> <<rng>> <<if $rng lte 25>> <<bHe>> humps between your legs, rubbing <<bhis>> pussy against your <<if playerChastity()>>$worn.genitals.name.<<else>><<genitals>>.<</if>> <<neutral 5 "genitals">> <<elseif $rng lte 50>> <<bHe>> humps between your legs, rubbing <<bhis>> pussy against your <<if playerChastity()>>$worn.genitals.name.<<else>><<genitals>>.<</if>> <<sex 3 "genitals">> <<elseif $rng lte 100>> <<if ($player.vaginaExist and $vaginause is 0 and playerChastity("vagina")) or ($player.penisExist and $penisuse is 0 and playerChastity("penis"))>> <<bHe>> humps between your legs, rubbing <<bhis>> pussy against your $worn.genitals.name. <<sex 3 "genitals">> <<elseif $player.penisExist and $penisuse is 0 and (!$player.vaginaExist or random(0,100) lt 75) and !playerChastity("penis")>> <span class="blue"><<bHe>> humps between your legs, gaining purchase on the tip of your <<penis>>.</span> <<sex 5 "genitals">><<set $NPCList[_n].vagina to "penisentrance">><<set $penisuse to "othervagina">><<set $penisstate to "entrance">><<set $penistarget to _n>> <<if playerHasStrapon()>><<violence 1 1 1 0>> <<else>><<bruise penis>><<violence 1>><</if>> <<elseif $player.vaginaExist and $vaginause is 0 and (!$player.penisExist or $penisuse is 0) and !playerChastity("vagina")>> <span class="blue"><<bHe>> humps between your legs, brushing your <<pussy>> with <<bhis>> own.</span> <<sex 5 "genitals">><<bruise vagina>><<violence 1>><<set $NPCList[_n].vagina to "vaginaentrance">><<set $vaginause to "othervagina">><<set $vaginastate to "othervaginaentrance">><<set $vaginatarget to _n>> <<else>> <<bHe>> humps between your legs, rubbing <<bhis>> pussy against your <<genitals>>. <<sex 3 "genitals">> <</if>> <</if>> <</if>> <<elseif $NPCList[_n].stance is "topface">> <<if $NPCList[_n].mouth is 0>> <<if $NPCList[_n].monster is "monster" and random(1, 5) is 5 and $speechdisable isnot 1>> <<beastspeech _n>> <<elseif ($enemyanger + $rng) lte 25 and $position isnot "wall">> <<if playerChastity()>> <<bHe>> licks around your $worn.genitals.name with a hot tongue. <<neutral 4 "genitals">> <<elseif $player.vaginaExist>> <<bHe>> licks your labia with a hot tongue. <<neutral 4 "genitals">> <<else>> <<bHe>> licks your testes with a hot tongue. <<neutral 4 "genitals">> <</if>> <<elseif ($enemyanger + $rng) lte 50 and $position isnot "wall">> <<bHe>> buries <<bhis>> wet tongue between your <<bottom>> cheeks, licking and probing. <<neutral 3 "bottom">> <<elseif ($enemyanger + $rng) lte 75 and $position isnot "wall">> <<if playerChastity()>> <<bHe>> desperately tries to force <<bhis>> tongue around your $worn.genitals.name. <br> <<sex 3 "genitals">> <<elseif $player.penisExist>> <<bHe>> licks and <span class="blue">wraps <<bhis>> tongue around your <<penis>>.</span> <br> <<sex 3 "genitals">><<set $NPCList[_n].mouth to "penisentrance">><<set $penisuse to "othermouth">><<set $penisstate to "othermouthentrance">><<set $penistarget to _n>> <<else>> <<bHe>> licks and <span class="blue">wiggles <<bhis>> tongue against your <<pussy>>.</span> <br> <<sex 3 "genitals">><<set $NPCList[_n].mouth to "vaginaentrance">><<set $vaginause to "othermouth">><<set $vaginastate to "othermouthentrance">><<set $vaginatarget to _n>> <</if>> <<elseif ($enemyanger + $rng) lte 100 and $position isnot "wall" and $settings.analingusReceivingEnabled>> <<bHe>> buries <<bhis>> wet tongue between your <<bottom>> cheeks, <span class="blue">and prods your <<if playerChastity()>>$worn.genitals.name<<elseif playerHasButtPlug()>>$worn.butt_plug.name<<else>>opening<</if>>.</span> <br> <<sex 3 "anus">><<set $NPCList[_n].mouth to "anusentrance">><<set $anususe to "othermouth">><<set $anusstate to "othermouthentrance">><<set $anustarget to _n>> <<elseif ($enemyanger + $rng) lte 125 and $position isnot "wall">> <<bHe>> <<beast_growls_text>>, <<bhis>> breath hot on your <<if playerChastity()>>$worn.genitals.name.<<else>><<genitals>>.<</if>> <<sex 1 "genitals">> <<elseif ($enemyanger + $rng) lte 150 and $position isnot "wall">> <<bHe>> nips your <<bottom>> in warning. <<bruise bottom>><<violence 1>> <<elseif ($enemyanger + $rng) lte 175 and $position isnot "wall">> <<bHe>> bites your thigh. <<bruise thigh>><<violence 2>> <<else>> <<bHe>> bites your <<bottom>> cheek. <<bruise bottom>><<violence 4>> <</if>> <</if>> <<if $NPCList[_n].penis is 0>> <<if ($enemyanger + $rng) lte 25>> <<bHe>> rubs <<bhis>> $NPCList[_n].penisdesc against your cheek. <<neutral 3>> <<elseif ($enemyanger + $rng) lte 50>> <<bHe>> pokes <<bhis>> $NPCList[_n].penisdesc against your face. <<neutral 3>> <<elseif ($enemyanger + $rng) lte 75 and ($worn.face.type.includes("gag") or $worn.face.type.includes("covered"))>> <<bHe>> rubs <<bhis>> $NPCList[_n].penisdesc against your $worn.face.name. <<damageFaceCover 1>> <<neutral 3>> <<elseif ($enemyanger + $rng) lte 75>> <<bHe>> rubs <<bhis>> $NPCList[_n].penisdesc against your lips. <<neutral 3 "mouth">> <<elseif ($enemyanger + $rng) lte 100>> <<if !$worn.face.type.includes("gag") and !$worn.face.type.includes("covered")>> <span class="blue"><<bHe>> pushes <<bhis>> $NPCList[_n].penisdesc against your lips.</span> <<sex 3 "mouth">><<set $NPCList[_n].penis to "mouthentrance">><<set $mouthuse to "penis">><<set $mouthstate to "entrance">><<set $mouthtarget to _n>> <<else>> <<bHe>> thrusts <<bhis>> $NPCList[_n].penisdesc against the $worn.face.name covering your mouth. <<neutral 5 "mouth">> <<damageFaceCover 3>> <</if>> <<else>> <<if !$worn.face.type.includes("gag") and !$worn.face.type.includes("covered")>> <span class="purple"><<bHe>> shoves <<bhis>> $NPCList[_n].penisdesc between your lips.</span> <<sex 3 "mouth">><<set $NPCList[_n].penis to "mouthimminent">><<set $mouthuse to "penis">><<set $mouthstate to "imminent">><<set $mouthtarget to _n>> <<else>> <<bHe>> thrusts <<bhis>> $NPCList[_n].penisdesc against the $worn.face.name covering your mouth. <<neutral 5 "mouth">> <<damageFaceCover 3>> <</if>> <</if>> <</if>> <<if $NPCList[_n].vagina is 0>> <<if ($enemyanger + $rng) lte 25>> <<bHe>> rubs <<bhis>> pussy against your cheek. <<neutral 3>> <<elseif ($enemyanger + $rng) lte 50>> <<bHe>> rubs <<bhis>> pussy against your nose. <<neutral 3>> <<elseif $worn.face.type.includes("covered") or $worn.face.type.includes("gag")>> <<bHe>> pushes <<bhis>> ?vulva against your mask. <<damageFaceCover 2>> <<elseif ($enemyanger + $rng) lte 75>> <<bHe>> rubs <<bhis>> pussy against your lips. <<neutral 3 "mouth">> <<elseif ($enemyanger + $rng) lte 100>> <span class="blue"><<bHe>> pushes <<bhis>> pussy against your lips.</span> <<sex 3 "mouth">><<set $NPCList[_n].vagina to "mouth">><<set $mouthuse to "othervagina">><<set $mouthstate to "othervagina">><<set $mouthtarget to _n>> <<else>> <span class="purple"><<bHe>> shoves <<bhis>> pussy against your lips.</span> <<sex 3 "mouth">><<set $NPCList[_n].vagina to "mouth">><<set $mouthuse to "othervagina">><<set $mouthstate to "othervagina">><<set $mouthtarget to _n>> <</if>> <</if>> <</if>> <<set _bstindex to ($enemyno -2)>> <<set _next_beast to $combatTrain.total_length - $combatTrain.length + 1>> <<set _next_next_beast to $combatTrain.total_length - $combatTrain.length + 2>> <<if $combatTrain.length is 1>> <br> A <<print $combatTrain.beastTypes[_next_beast]>> awaits <<bhisnext>> turn. <<elseif $combatTrain.length is 2>> <br> A <<print $combatTrain.beastTypes[_next_beast]>> awaits <<bhisnext>> turn next, along with one other <<print $combatTrain.beastTypes[_next_next_beast]>>. <<elseif $combatTrain.length gte 3>> <br> A <<print $combatTrain.beastTypes[_next_beast]>> awaits <<bhisnext>> turn next, along with <<number $combatTrain.length-1>> other <<if $settings.bestialityEnabled>>beasts<<else>>monsters<</if>>. <</if>> <<manend>><<set $pullaway to 0>> </div> <</widget>> <<widget "beastlick">> <<if $NPCList[_n].penis is 0 or $NPCList[_n].vagina is 0>> <<if playerChastity()>> <<if $vaginause is "cover">> <<bHe>> licks your hand, trying to taste the $worn.genitals.name beneath. <<if $arousal gte ($arousalmax / 5) * 4>> <<bHe>> laps up the juices that leak through your fingers. <<elseif $arousal gte $arousalmax / 5>> <<bHis>> tongue probes around and between your fingers, searching for a weak spot. <<else>> <<bHe>> tries to force <<bhis>> tongue between your fingers. <</if>> <<elseif $worn.over_lower.vagina_exposed is 0>> <<neutral 10 "genitals">> <<bHe>> licks your $worn.over_lower.name, trying to taste the $worn.genitals.name beneath. <<if $orgasmdown gte 1>> <<bHe>> laps up your leaking juices as you squirm. <<elseif $arousal gte ($arousalmax / 5) * 4>> You're shamed by how good it feels. <<elseif $arousal gte $arousalmax / 5>> The incessant probing makes your groin heat up. <<else>> You try to shift your crotch away, but <<bhe>> persists. <</if>> <<set $worn.over_lower.integrity -= 5>> <<elseif $worn.lower.vagina_exposed is 0>> <<bHe>> licks your $worn.lower.name, trying to taste the $worn.genitals.name beneath. <<if $orgasmdown gte 1>> <<bHe>> laps up your leaking juices as you squirm. <<elseif $arousal gte ($arousalmax / 5) * 4>> You're shamed by how good it feels. <<elseif $arousal gte $arousalmax / 5>> The incessant probing makes your groin heat up. <<else>> You try to shift your crotch away, but <<bhe>> persists. <</if>> <<set $worn.lower.integrity -= 5>> <<elseif $worn.under_lower.vagina_exposed is 0>> <<bHe>> licks your $worn.under_lower.name, trying to taste the $worn.genitals.name beneath. <<if $orgasmdown gte 1>> <<bHe>> laps up your leaking juices as you squirm. <<elseif $arousal gte ($arousalmax / 5) * 4>> You're shamed by how good it feels. <<elseif $arousal gte $arousalmax / 5>> The incessant probing makes your groin heat up. <<else>> You try to shift your crotch away, but <<bhe>> persists. <</if>> <<set $worn.under_lower.integrity -= 5>> <<else>> <<neutral 15 "genitals">> <<bHe>> licks your $worn.genitals.name. <<if $orgasmdown gte 1>> The feeling of vibrations from <<bhis>> tongue as you cum is maddening, but <<bhe>> doesn't relent. <<elseif $arousal gte ($arousalmax / 5) * 4>> The feeling of vibrations from <<bhis>> tongue on your sensitive flesh makes you jerk and spasm. <<elseif $arousal gte $arousalmax / 5>> <<bHis>> hot breath and tongue elicit shameful feelings. <<else>> You try to shift your crotch to escape this violation, but <<bhe>> persists. <</if>> <<set $worn.genitals.integrity -= 5>> <</if>> <<elseif $player.vaginaExist>> <<if $vaginause is "cover">> <<bHe>> licks your hand, trying to taste the <<pussy>> beneath. <<if $arousal gte ($arousalmax / 5) * 4>> <<bHe>> laps up the juices that leak through your fingers. <<elseif $arousal gte $arousalmax / 5>> <<bHis>> tongue probes around and between your fingers, searching for a weak spot. <<else>> <<bHe>> tries to force <<bhis>> tongue between your fingers. <</if>> <<elseif $worn.over_lower.vagina_exposed is 0>> <<neutral 10 "genitals">> <<bHe>> licks your $worn.over_lower.name, trying to taste the <<pussy>> beneath. <<if $orgasmdown gte 1>> <<bHe>> laps up your leaking juices as you squirm. <<elseif $arousal gte ($arousalmax / 5) * 4>> You're shamed by how good it feels. <<elseif $arousal gte $arousalmax / 5>> The incessant probing makes your groin heat up. <<else>> You try to shift your crotch away, but <<bhe>> persists. <</if>> <<set $worn.over_lower.integrity -= 5>> <<elseif $worn.lower.vagina_exposed is 0>> <<bHe>> licks your $worn.lower.name, trying to taste the <<pussy>> beneath. <<if $orgasmdown gte 1>> <<bHe>> laps up your leaking juices as you squirm. <<elseif $arousal gte ($arousalmax / 5) * 4>> You're shamed by how good it feels. <<elseif $arousal gte $arousalmax / 5>> The incessant probing makes your groin heat up. <<else>> You try to shift your crotch away, but <<bhe>> persists. <</if>> <<set $worn.lower.integrity -= 5>> <<elseif $worn.under_lower.vagina_exposed is 0>> <<bHe>> licks your $worn.under_lower.name, trying to taste the <<pussy>> beneath. <<if $orgasmdown gte 1>> <<bHe>> laps up your leaking juices as you squirm. <<elseif $arousal gte ($arousalmax / 5) * 4>> You're shamed by how good it feels. <<elseif $arousal gte $arousalmax / 5>> The incessant probing makes your groin heat up. <<else>> You try to shift your crotch away, but <<bhe>> persists. <</if>> <<set $worn.under_lower.integrity -= 5>> <<else>> <<neutral 15 "genitals">> <<bHe>> licks your bare pussy. <<if $orgasmdown gte 1>> The feeling of <<bhis>> tongue as you cum is maddening, but <<bhe>> doesn't relent. <<elseif $arousal gte ($arousalmax / 5) * 4>> The feeling of <<bhis>> tongue on your sensitive flesh makes your pelvis jerk and spasm. <<elseif $arousal gte $arousalmax / 5>> <<bHis>> hot breath and tongue elicit shameful feelings. <<else>> You try to shift your crotch to escape this violation, but <<bhe>> persists. <</if>> <</if>> <<elseif $player.penisExist>> <<if $penisuse is "cover">> <<bHe>> licks your hand, trying to taste the <<penis>> beneath. <<if $arousal gte ($arousalmax / 5) * 4>> <<bHe>> laps up the juices that leak through your fingers. <<elseif $arousal gte $arousalmax / 5>> <<bHis>> tongue probes around and between your fingers, searching for a weak spot. <<else>> <<bHe>> tries to force <<bhis>> tongue between your fingers. <</if>> <<elseif $worn.over_lower.vagina_exposed is 0>> <<neutral 10 "genitals">> <<bHe>> licks your $worn.over_lower.name, trying to taste the <<penis>> beneath. <<if $orgasmdown gte 1>> <<bHe>> laps up your leaking juices as you squirm. <<elseif $arousal gte ($arousalmax / 5) * 4>> You're shamed by how good it feels. <<elseif $arousal gte $arousalmax / 5>> The incessant probing makes your groin heat up. <<else>> You try to shift your crotch away, but <<bhe>> persists. <</if>> <<set $worn.over_lower.integrity -= 5>> <<elseif $worn.lower.vagina_exposed is 0>> <<bHe>> licks your $worn.lower.name, trying to taste the <<penis>> beneath. <<if $orgasmdown gte 1>> <<bHe>> laps up your leaking juices as you squirm. <<elseif $arousal gte ($arousalmax / 5) * 4>> You're shamed by how good it feels. <<elseif $arousal gte $arousalmax / 5>> The incessant probing makes your groin heat up. <<else>> You try to shift your crotch away, but <<bhe>> persists. <</if>> <<set $worn.lower.integrity -= 5>> <<elseif $worn.under_lower.vagina_exposed is 0>> <<bHe>> licks your $worn.under_lower.name, trying to taste the <<penis>> beneath. <<if $orgasmdown gte 1>> <<bHe>> laps up your leaking juices as you squirm. <<elseif $arousal gte ($arousalmax / 5) * 4>> You're shamed by how good it feels. <<elseif $arousal gte $arousalmax / 5>> The incessant probing makes your groin heat up. <<else>> You try to shift your crotch away, but <<bhe>> persists. <</if>> <<set $worn.under_lower.integrity -= 5>> <<else>> <<neutral 15 "genitals">> <<bHe>> licks your bare penis. <<if $orgasmdown gte 1>> The feeling of <<bhis>> tongue as you cum is maddening, but <<bhe>> doesn't relent. <<elseif $arousal gte ($arousalmax / 5) * 4>> The feeling of <<bhis>> tongue on your sensitive flesh makes your pelvis jerk and spasm. <<elseif $arousal gte $arousalmax / 5>> <<bHis>> hot breath and tongue elicit shameful feelings. <<else>> You try to shift your crotch to escape this violation, but <<bhe>> persists. <</if>> <</if>> <</if>> <<else>> <<if $enemyanger gte 100>> <<bHe>> nips your neck. <<elseif $enemyanger gte 20>> <<bHe>> licks your neck. <<else>> <<bHe>> licks your face. <</if>> <</if>> <<neutral 1>><<enemyarousal 10>> <</widget>><<widget "beastclothing">> <<outfitChecks>> <<rng>> <<if $NPCList[_n].mouth is "overlowerclothes">> <<if $NPCList[_n].stance is "top">> <<set $NPCList[_n].mouth to 0>> <<else>> <<if $worn.over_lower.name is "naked">> <span class="purple"><<bHe>> spits out the ruined fabric.</span> <<set $NPCList[_n].mouth to 0>> <<elseif $overlowerstruggle is 1>> <<set $overlowerstruggle to 0>> <<bHe>> tugs at your $worn.over_lower.name, but you keep <<bhim>> from stripping you. <<set $overlowerstruggle to 0>><<neutral 1>><<set $worn.over_lower.integrity -= 5>> <<elseif $rng gte 91>> <span class="blue"><<bHe>> releases your $worn.over_lower.name from <<bhis>> mouth.</span> <<set $NPCList[_n].mouth to 0>> <<elseif $rng lte 90>> <<if _overOutfit>> <<if $worn.over_upper.open is 1>> <<if $worn.over_upper.state_top is "chest">> <<bHe>> tugs your $worn.over_lower.name, pulling down your $worn.over_upper.name and <span class="lewd">revealing your <<breasts>>.</span> <<set $worn.over_upper.state_top to "midriff">><<set $worn.over_upper.exposed to 2>><<neutral 3>><<set $speechbreasts to 1>> <<if $worn.over_upper.state is "chest">> <<set $worn.over_upper.state to "midriff">> <</if>> <<if $worn.over_lower.state is "chest">> <<set $worn.over_lower.state to "midriff">> <</if>> <<elseif $worn.over_upper.state_top is "midriff">> <<bHe>> tugs your $worn.over_lower.name, pulling down your $worn.over_upper.name passed your midriff. <<set $worn.over_upper.state_top to "waist">><<neutral 1>> <<if $worn.over_upper.state is "midriff">> <<set $worn.over_upper.state to "waist">> <</if>> <<if $worn.over_lower.state is "midriff">> <<set $worn.over_lower.state to "waist">> <</if>> <<elseif $worn.over_upper.state_top is "waist">> <<bHe>> pulls your $worn.over_upper.name down to your thighs, revealing your <<if $worn.lower.state is "waist">> $worn.lower.name <<neutral 2>> <<elseif $worn.under_lower.state is "waist">> $worn.under_lower.name <<neutral 2>> <<else>> <span class="lewd"><<genitals>>.</span> <<neutral 5>><<set $speechgenitals to 1>> <</if>> <<set $worn.over_upper.state_top to "thighs">><<set $worn.over_upper.state to "thighs">><<set $worn.over_lower.vagina_exposed to 1>><<set $worn.over_lower.anus_exposed to 1>><<set $worn.over_lower.exposed to 2>> <<if $worn.over_lower.state is "waist">> <<set $worn.over_lower.state to "thighs">> <</if>> <<elseif $worn.over_upper.state_top is "thighs">> <<bHe>> pulls your $worn.over_upper.name down to your knees. <<set $worn.over_upper.state_top to "knees">><<set $worn.over_upper.state to "knees">><<neutral 1>> <<if $worn.over_lower.state is "thighs">> <<set $worn.over_lower.state to "knees">> <</if>> <<elseif $worn.over_upper.state_top is "knees">> <<bHe>> pulls your $worn.over_upper.name down to your ankles. <<set $worn.over_upper.state_top to "ankles">><<set $worn.over_upper.state to "ankles">><<neutral 1>> <<if $worn.over_lower.state is "knees">> <<set $worn.over_lower.state to "ankles">> <</if>> <<elseif $worn.over_upper.state_top is "ankles">> <span class="purple"><<bHe>> pulls your $worn.over_upper.name off the bottom of your legs.</span> <<neutral 5>><<set $worn.over_upper.state_top to 0>><<set $worn.over_upper.state to 0>><<overupperstrip>> <<if $worn.over_lower.state is "ankles">> <<set $worn.over_lower.state to 0>><<overlowerstrip>> <</if>> <</if>> <<else>> <<bHe>> tugs on your $worn.over_lower.name, tugging your $worn.over_upper.name against your shoulders. You hear a tearing sound. <<set $worn.over_lower.integrity -= 20>><<neutral 1>> <</if>> <<elseif _overOutfit isnot true>> <<if $worn.over_lower.state is "waist">> <<bHe>> pulls down your $worn.over_lower.name, exposing your <<if $worn.lower.state is "waist">> $worn.lower.name. <<elseif $worn.under_lower.state is "waist">> $worn.under_lower.name. <<else>> <span class="lewd"><<genitals>>.</span> <<neutral 5>><<set $speechgenitals to 1>> <</if>> <<set $worn.over_lower.state to "thighs">><<set $worn.over_lower.vagina_exposed to 1>><<set $worn.over_lower.anus_exposed to 1>><<set $worn.over_lower.exposed to 2>> <<elseif $worn.over_lower.state is "thighs">> <<bHe>> pulls your $worn.over_lower.name down to your knees. <<set $worn.over_lower.state to "knees">><<neutral 1>> <<elseif $worn.over_lower.state is "knees">> <<bHe>> pulls your $worn.over_lower.name down to your ankles. <<set $worn.over_lower.state to "ankles">><<neutral 1>> <<elseif $worn.over_lower.state is "ankles">> <span class="purple"><<bHe>> pulls your $worn.over_lower.name off your legs.</span> <<overlowerstrip>> <<set $NPCList[_n].mouth to 0>><<neutral 3>><<clothesstripstat>> <</if>> <<else>> <<bHe>> tugs on your $worn.over_lower.name, you hear the fabric tear. <<neutral 1>><<set $worn.over_lower.integrity -= 20>> <</if>> <</if>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].mouth is "lowerclothes">> <<if $NPCList[_n].stance is "top">> <<set $NPCList[_n].mouth to 0>> <<else>> <<if $worn.lower.name is "naked">> <span class="purple"><<bHe>> spits out the ruined fabric.</span> <<set $NPCList[_n].mouth to 0>> <<elseif $lowerstruggle is 1>> <<set $lowerstruggle to 0>> <<bHe>> tugs at your $worn.lower.name, but you keep <<bhim>> from stripping you. <<set $lowerstruggle to 0>><<neutral 1>><<set $worn.lower.integrity -= 5>> <<elseif $rng gte 91>> <span class="blue"><<bHe>> releases your $worn.lower.name from <<bhis>> mouth.</span> <<set $NPCList[_n].mouth to 0>> <<elseif $rng lte 90>> <<if _middleOutfit>> <<if $worn.upper.open is 1>> <<if $worn.upper.state_top is "chest">> <<bHe>> tugs your $worn.lower.name, pulling down your $worn.upper.name and <span class="lewd">revealing your <<breasts>>.</span> <<set $worn.upper.state_top to "midriff">><<set $worn.upper.exposed to 2>><<neutral 3>><<set $speechbreasts to 1>> <<if $worn.upper.state is "chest">> <<set $worn.upper.state to "midriff">> <</if>> <<if $worn.lower.state is "chest">> <<set $worn.lower.state to "midriff">> <</if>> <<elseif $worn.upper.state_top is "midriff">> <<bHe>> tugs your $worn.lower.name, pulling down your $worn.upper.name passed your midriff. <<set $worn.upper.state_top to "waist">><<neutral 1>> <<if $worn.upper.state is "midriff">> <<set $worn.upper.state to "waist">> <</if>> <<if $worn.lower.state is "midriff">> <<set $worn.lower.state to "waist">> <</if>> <<elseif $worn.upper.state_top is "waist">> <<bHe>> pulls your $worn.upper.name down to your thighs, revealing your <<if $worn.under_lower.state is "waist">> $worn.under_lower.name <<neutral 2>> <<else>> <span class="lewd"><<genitals>>.</span> <<neutral 5>><<set $speechgenitals to 1>> <</if>> <<set $worn.upper.state_top to "thighs">><<set $worn.upper.state to "thighs">><<set $worn.lower.vagina_exposed to 1>><<set $worn.lower.anus_exposed to 1>><<set $worn.lower.exposed to 2>> <<if $worn.lower.state is "waist">> <<set $worn.lower.state to "thighs">> <</if>> <<elseif $worn.upper.state_top is "thighs">> <<bHe>> pulls your $worn.upper.name down to your knees. <<set $worn.upper.state_top to "knees">><<set $worn.upper.state to "knees">><<neutral 1>> <<if $worn.lower.state is "thighs">> <<set $worn.lower.state to "knees">> <</if>> <<elseif $worn.upper.state_top is "knees">> <<bHe>> pulls your $worn.upper.name down to your ankles. <<set $worn.upper.state_top to "ankles">><<set $worn.upper.state to "ankles">><<neutral 1>> <<if $worn.lower.state is "knees">> <<set $worn.lower.state to "ankles">> <</if>> <<elseif $worn.upper.state_top is "ankles">> <span class="purple"><<bHe>> pulls your $worn.upper.name off the bottom of your legs.</span> <<neutral 5>><<set $worn.upper.state_top to 0>><<set $worn.upper.state to 0>><<upperstrip>> <<if $worn.lower.state is "ankles">> <<set $worn.lower.state to 0>><<lowerstrip>> <</if>> <</if>> <<else>> <<bHe>> tugs on your $worn.lower.name, tugging your $worn.upper.name against your shoulders. You hear a tearing sound. <<set $worn.lower.integrity -= 20>><<neutral 1>> <</if>> <<elseif _middleOutfit isnot true>> <<if $worn.lower.state is "waist">> <<bHe>> pulls down your $worn.lower.name, exposing your <<if $worn.under_lower.state is "waist">> $worn.under_lower.name. <<neutral 2>> <<else>> <span class="lewd"><<genitals>>.</span> <<neutral 5>><<set $speechgenitals to 1>> <</if>> <<set $worn.lower.state to "thighs">><<set $worn.lower.vagina_exposed to 1>><<set $worn.lower.anus_exposed to 1>><<set $worn.lower.exposed to 2>> <<elseif $worn.lower.state is "thighs">> <<bHe>> pulls your $worn.lower.name down to your knees. <<set $worn.lower.state to "knees">><<neutral 1>> <<elseif $worn.lower.state is "knees">> <<bHe>> pulls your $worn.lower.name down to your ankles. <<set $worn.lower.state to "ankles">><<neutral 1>> <<elseif $worn.lower.state is "ankles">> <span class="purple"><<bHe>> pulls your $worn.lower.name off your legs.</span> <<lowerstrip>> <<set $NPCList[_n].mouth to 0>><<neutral 3>><<clothesstripstat>> <</if>> <<else>> <<bHe>> tugs on your $worn.lower.name, you hear the fabric tear. <<neutral 1>><<set $worn.lower.integrity -= 20>> <</if>> <</if>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].mouth is "underlowerclothes">> <<if $worn.under_lower.name is "naked">> <span class="purple"><<bHe>> spits out the ruined fabric.</span> <<set $NPCList[_n].mouth to 0>> <<elseif $rng gte 91 or ($worn.under_lower.type.includes("strap-on") and $penisstate isnot 0)>> <span class="blue"><<bHe>> releases your $worn.under_lower.name from <<bhis>> mouth.</span> <<set $NPCList[_n].mouth to 0>> <<elseif $underlowerstruggle is 1>> <<bHe>> tugs on your $worn.under_lower.name, but you keep <<bhim>> from stripping you. <<set $underlowerstruggle to 0>><<set $speechstripstruggle to 1>><<neutral 1>><<set $worn.under_lower.integrity -= 5>> <<elseif $rng lte 90>> <<if setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1>> <<if $worn.under_lower.state is "waist">> <<bHe>> pulls your $worn.under_lower.name down your thighs, <span class="lewd">revealing your <<genitals>>.</span> <<set $worn.under_lower.state to "thighs">><<neutral 5>><<set $worn.under_lower.vagina_exposed to 1>><<set $worn.under_lower.anus_exposed to 1>><<set $worn.under_lower.exposed to 1>><<set $speechgenitals to 1>> <<elseif $worn.under_lower.state is "thighs">> <<bHe>> pulls your $worn.under_lower.name down to your knees. <<set $worn.under_lower.state to "knees">><<neutral 1>> <<elseif $worn.under_lower.state is "knees">> <<bHe>> pulls your $worn.under_lower.name down to your ankles. <<set $worn.under_lower.state to "ankles">><<neutral 1>> <<elseif $worn.under_lower.state is "ankles">> <span class="purple"><<bHe>> pulls your $worn.under_lower.name off your legs.</span> <<underlowerstrip>><<neutral 3>><<set $NPCList[_n].mouth to 0>><<clothesstripstat>> <</if>> <<elseif $worn.lower.state isnot "waist">> <<if $worn.under_lower.state is "waist">> <<bHe>> pulls your $worn.under_lower.name down your thighs, <span class="lewd">revealing your <<genitals>>.</span> <<set $worn.under_lower.state to "thighs">><<neutral 5>><<set $worn.under_lower.vagina_exposed to 1>><<set $worn.under_lower.anus_exposed to 1>><<set $worn.under_lower.exposed to 1>><<set $speechgenitals to 1>> <<elseif $worn.under_lower.state is "thighs">> <<bHe>> pulls your $worn.under_lower.name down to your knees. <<set $worn.under_lower.state to "knees">><<neutral 1>> <<elseif $worn.under_lower.state is "knees">> <<bHe>> pulls your $worn.under_lower.name down to your ankles. <<set $worn.under_lower.state to "ankles">><<neutral 5>> <<elseif $worn.under_lower.state is "ankles">> <span class="purple"><<bHe>> pulls your $worn.under_lower.name off your legs.</span> <<underlowerstrip>><<neutral 3>><<set $NPCList[_n].mouth to 0>><<clothesstripstat>> <</if>> <</if>> <</if>> <</if>> <<if $oxygen lt $oxygenmax and $underwater isnot 1 and _strangle is 1>> <<unset _strangle>> <br>Air: <<oxygencaption>> <</if>> <</widget>> <<widget "bhisnext">> <<if $combatTrain.monsters[_next_beast] is "monster">> <<if $combatTrain.pronouns[_next_beast] is "m">> <<print "his">> <<else>> <<print "her">> <</if>> <<else>> <<print "its">> <</if>> <</widget>><<widget "actionspain">> <<if $leftarm is 0>> Your left arm is free, but hurts to move. <br> <<if $leftactiondefault is "leftstruggleweak">> | <label><span class="brat">Struggle</span> <<radiobutton "$leftaction" "leftstruggleweak" checked>></label> <<else>> | <label><span class="brat">Struggle</span> <<radiobutton "$leftaction" "leftstruggleweak">></label> <</if>> <<if $leftactiondefault is "leftprotect">> | <label><span class="meek">Protect</span> <<radiobutton "$leftaction" "leftprotect" checked>></label> <<else>> | <label><span class="meek">Protect</span> <<radiobutton "$leftaction" "leftprotect">></label> <</if>> <br> <<elseif $leftarm is "grappled">> Your left arm is held in a painful grip. <br> <<elseif $leftarm is "bound">> Your left arm is held in a painful bind. <br> <</if>> <<if $rightarm is 0>> <br> Your right arm is free, but hurts to move. <br> <<if $rightactiondefault is "rightstruggleweak">> | <label><span class="brat">Struggle</span> <<radiobutton "$rightaction" "rightstruggleweak" checked>></label> <<else>> | <label><span class="brat">Struggle</span> <<radiobutton "$rightaction" "rightstruggleweak">></label> <</if>> <<if $rightactiondefault is "rightprotect">> | <label><span class="meek">Protect</span> <<radiobutton "$rightaction" "rightprotect" checked>></label> <<else>> | <label><span class="meek">Protect</span> <<radiobutton "$rightaction" "rightprotect">></label> <</if>> <br> <<elseif $rightarm is "grappled">> Your right arm is held in a painful grip. <br> <<elseif $rightarm is "bound">> Your right arm is held in a painful bind. <br> <</if>> <<if $mouthuse is 0>> <br> Your mouth is free, but involuntary sobs and cries prevent speaking. <br> <<if $mouthactiondefault is "stifle">> | <label><span class="brat">Stifle</span> <<radiobutton "$mouthaction" "stifle" checked>></label> <<else>> | <label><span class="brat">Stifle</span> <<radiobutton "$mouthaction" "stifle">></label> <</if>> <<if $mouthactiondefault is "letout">> | <label><span class="meek">Let it out</span> <<radiobutton "$mouthaction" "letout" checked>></label> <<else>> | <label><span class="meek">Let it out</span> <<radiobutton "$mouthaction" "letout">></label> <</if>> <br> <</if>> <</widget>><<widget "effectspain">> <<if $leftaction is "leftstruggleweak" and $rightaction is "rightstruggleweak">> <<set $leftaction to 0>><<set $rightaction to 0>><<set $leftactiondefault to "leftstruggleweak">><<set $rightactiondefault to "rightstruggleweak">> <<if $position is "stalk">> You fight through the pain and try to push yourself to your feet, but have too little strength. <<else>> You fight through the pain and try to push them away, but have too little strength. <</if>> <<brat 2>><<set _br to true>> <</if>> <<if $leftaction is "leftstruggleweak">> <<set $leftaction to 0>><<set $leftactiondefault to "leftstruggleweak">> <<if $position is "stalk">> You fight through the pain and try to push yourself to your feet with your left arm, but have too little strength. <<else>> You fight through the pain and push them with your left arm, but have too little strength. <</if>> <<brat 1>><<set _br to true>> <</if>> <<if $rightaction is "rightstruggleweak">> <<set $rightaction to 0>><<set $rightactiondefault to "rightstruggleweak">> <<if $position is "stalk">> You fight through the pain and try to push yourself to your feet with your right arm, but have too little strength. <<else>> You fight through the pain and push them with your right arm, but have too little strength. <</if>> <<brat 1>><<set _br to true>> <</if>> <<if $leftaction is "leftprotect" and $rightaction is "rightprotect">> <<set $leftaction to 0>><<set $rightaction to 0>><<set $leftactiondefault to "leftprotect">><<set $rightactiondefault to "rightprotect">> You shield the tender parts of your body, protecting them from further harm. <<lpain>><<meek 2>><<pain -2>><<set _br to true>> <</if>> <<if $leftaction is "leftprotect">> <<set $leftaction to 0>><<set $leftactiondefault to "leftprotect">> You clutch a tender spot on your body with your left hand, protecting it from harm. <<lpain>><<meek 1>><<pain -1>><<set _br to true>> <</if>> <<if $rightaction is "rightprotect">> <<set $rightaction to 0>><<set $rightactiondefault to "rightprotect">> You clutch a tender spot on your body with your right hand, protecting it from harm. <<lpain>><<meek 1>><<pain -1>><<set _br to true>> <</if>> <<if _br is true>> <br> <</if>> <<if $mouthaction is "stifle">> <<set $mouthaction to 0>><<set $mouthactiondefault to "stifle">> You try to control your breath and stifle your sobs. You're mostly successful. <<lpain>><<pain -1>> <</if>> <<if $mouthaction is "letout">> <<set $mouthaction to 0>><<set $mouthactiondefault to "letout">><<set _sound to 1>> You don't hold back your tears. Your sobs are punctuated by cries and whimpers. <<lstress>><<meek 1>><<stress -2>> <</if>> <<painclamp>> <</widget>><<widget "actionsorgasm">> <<if $leftarm is 0>> Your left arm is free, but you can't stop the spasms. <br> <<if $leftactiondefault is "leftfold">> | <label><span class="brat">Fold</span> <<radiobutton "$leftaction" "leftfold" checked>></label> <<else>> | <label><span class="brat">Fold</span> <<radiobutton "$leftaction" "leftfold">></label> <</if>> <<if $leftactiondefault is "leftgrip">> | <label><span class="meek">Grip</span> <<radiobutton "$leftaction" "leftgrip" checked>></label> <<else>> | <label><span class="meek">Grip</span> <<radiobutton "$leftaction" "leftgrip">></label> <</if>> <br> <<elseif $leftarm is "grappled">> Your left arm jerks against their grip. <br> <<elseif $leftarm is "bound">> Your left arm jerks against its bonds. <br> <</if>> <<if $rightarm is 0>> <br> Your right arm is free, but you can't stop the spasms. <br> <<if $rightactiondefault is "rightfold">> | <label><span class="brat">Fold</span> <<radiobutton "$rightaction" "rightfold" checked>></label> <<else>> | <label><span class="brat">Fold</span> <<radiobutton "$rightaction" "rightfold">></label> <</if>> <<if $rightactiondefault is "rightgrip">> | <label><span class="meek">Grip</span> <<radiobutton "$rightaction" "rightgrip" checked>></label> <<else>> | <label><span class="meek">Grip</span> <<radiobutton "$rightaction" "rightgrip">></label> <</if>> <br> <<elseif $rightarm is "grappled">> Your right arm jerks against their grip. <br> <<elseif $rightarm is "bound">> Your right arm jerks against its bonds. <br> <</if>> <<if $mouthuse is 0>> <br> Your mouth is free, but involuntary moans and cries prevent speaking. <br> <<if $mouthactiondefault is "stifleorgasm">> | <label><span class="brat">Stifle</span> <<radiobutton "$mouthaction" "stifleorgasm" checked>></label> <<else>> | <label><span class="brat">Stifle</span> <<radiobutton "$mouthaction" "stifleorgasm">></label> <</if>> <<if $mouthactiondefault is "letoutorgasm">> | <label><span class="meek">Let it out</span> <<radiobutton "$mouthaction" "letoutorgasm" checked>></label> <<else>> | <label><span class="meek">Let it out</span> <<radiobutton "$mouthaction" "letoutorgasm">></label> <</if>> <br> <</if>> <</widget>><<widget "effectsorgasm">> <<if $leftaction is "leftfold" and $rightaction is "rightfold">> <<set $leftaction to 0>><<set $rightaction to 0>><<set $leftactiondefault to "leftfold">><<set $rightactiondefault to "rightfold">> You try to conceal your orgasm by folding your arms in front of you, keeping them as still as possible. <<brat 2>> <<set _br to true>> <</if>> <<if $leftaction is "leftfold">> <<set $leftaction to 0>><<set $leftactiondefault to "leftfold">> You fold your left arm in front of you to keep it as still as possible. <<brat 1>> <<set _br to true>> <</if>> <<if $rightaction is "rightfold">> <<set $rightaction to 0>><<set $rightactiondefault to "rightfold">> You fold your right arm in front of you to keep it as still as possible. <<brat 1>> <<set _br to true>> <</if>> <<if $leftaction is "leftgrip" and $rightaction is "rightgrip">> <<set $leftaction to 0>><<set $rightaction to 0>><<set $leftactiondefault to "leftgrip">><<set $rightactiondefault to "rightgrip">> <<if $position is "stalk">> You steady yourself against a brick wall as your body trembles. <<else>> You grip whatever you can for purchase as your body trembles. <</if>> <<larousal>><<meek 2>><<arousal -300>> <<set _br to true>> <</if>> <<if $leftaction is "leftgrip">> <<set $leftaction to 0>><<set $leftactiondefault to "leftgrip">> <<if $position is "stalk">> You steady yourself against a brick wall with your left hand as your body trembles. <<else>> You grip whatever you can with your left hand as your body trembles. <</if>> <<larousal>><<meek 1>><<arousal -300>> <<set _br to true>> <</if>> <<if $rightaction is "rightgrip">> <<set $rightaction to 0>><<set $rightactiondefault to "rightgrip">> <<if $position is "stalk">> You steady yourself against a brick wall with your right hand as your body trembles. <<else>> You grip whatever you can with your right hand as your body trembles. <</if>> <<larousal>><<meek 1>><<arousal -300>> <<set _br to true>> <</if>> <<if _br is true>> <br> <</if>> <<if $mouthaction is "stifleorgasm">> <<set $mouthaction to 0>><<set $mouthactiondefault to "stifleorgasm">> You scowl, hoping your gasps are taken as exasperation. <<brat 1>> <</if>> <<if $mouthaction is "letoutorgasm">> <<set $mouthaction to 0>><<set $mouthactiondefault to "letoutorgasm">><<set _sound to 1>> You don't hold back, letting gasps and moans escape as they will. <<larousal>><<meek 1>><<arousal -300>> <</if>> <<if $feetaction is "feetHold">> <br> <<set $feetaction to 0>><<set $feetactiondefault to "feetHold">> <<if _leg_position is "up" or _feet_pos isnot "">> You try to keep your legs still. <<else>> You weakly try to shut your legs. <</if>> <<brat 1>> <</if>> <<if $feetaction is "feetCurl">> <br> <<set $feetaction to 0>><<set $feetactiondefault to "feetCurl">> <<if $consensual is 1>> You curl your toes, relishing in the orgasm. <<else>> You curl your toes, letting the orgasm take you. <</if>> <<larousal>><<meek 1>><<arousal -100>> <</if>> <</widget>><<widget "actionsdissociation">> <<if $leftarm is 0>> Your left arm is free, but doesn't feel real. <br> <<if $leftactiondefault is "leftpoke">> | <label>Poke yourself <<radiobutton "$leftaction" "leftpoke" checked>></label> <<else>> | <label>Poke yourself <<radiobutton "$leftaction" "leftpoke">></label> <</if>> <<if $leftactiondefault is "leftcurl">> | <label><span class="meek">Keep your arms out of the way</span> <<radiobutton "$leftaction" "leftcurl" checked>></label> <<else>> | <label><span class="meek">Keep your arms out of the way</span> <<radiobutton "$leftaction" "leftcurl">></label> <</if>> <br> <<elseif $leftarm is "grappled">> Your left arm lies limp in their grip. <br> <<elseif $leftarm is "bound">> Your left arm lies limp in its bonds. <br> <</if>> <<if $rightarm is 0>> <br> Your right arm is free, but doesn't feel real. <br> <<if $rightactiondefault is "rightpoke">> | <label>Poke yourself <<radiobutton "$rightaction" "rightpoke" checked>></label> <<else>> | <label>Poke yourself <<radiobutton "$rightaction" "rightpoke">></label> <</if>> <<if $rightactiondefault is "rightcurl">> | <label><span class="meek">Keep your arms out of the way</span> <<radiobutton "$rightaction" "rightcurl" checked>></label> <<else>> | <label><span class="meek">Keep your arms out of the way</span> <<radiobutton "$rightaction" "rightcurl">></label> <</if>> <br> <<elseif $rightarm is "grappled">> Your right arm lies limp in their grip. <br> <<elseif $rightarm is "bound">> Your right arm lies limp in its bonds. <br> <</if>> <<if $mouthuse is 0>> <br> Your mouth is free, but you don't know why. <br> <<if $mouthactiondefault is "speak">> | <label>Try to speak <<radiobutton "$mouthaction" "speak" checked>></label> <<else>> | <label>Try to speak <<radiobutton "$mouthaction" "speak">></label> <</if>> <<if $mouthactiondefault is "noises">> | <label><span class="meek">Make soft noises</span> <<radiobutton "$mouthaction" "noises" checked>></label> <<else>> | <label><span class="meek">Make soft noises</span> <<radiobutton "$mouthaction" "noises">></label> <</if>> <</if>> <</widget>><<widget "effectsdissociation">> <<if $leftaction == "leftcurl" && $rightaction == "rightcurl">> <<set $leftaction to 0>><<set $rightaction to 0>><<set $leftactiondefault to "leftcurl">><<set $rightactiondefault to "rightcurl">> You hold your arms to the side and curl your fingers. <<meek 2>> <<set _br to true>> <</if>> <<if $leftaction == "leftcurl">> <<set $leftaction to 0>><<set $leftactiondefault to "leftcurl">> You hold your left arm to the side and curl your fingers. <<meek 1>> <<set _br to true>> <</if>> <<if $rightaction == "rightcurl">> <<set $rightaction to 0>><<set $rightactiondefault to "rightcurl">> You hold your right arm to the side and curl your fingers. <<meek 1>> <<set _br to true>> <</if>> <<if $leftaction == "leftpoke" && $rightaction == "rightpoke">> <<set $leftaction to 0>><<set $rightaction to 0>><<set $leftactiondefault to "leftpoke">><<set $rightactiondefault to "rightpoke">> You poke yourself. Is this real? <<note "+ Focus" "green">> <<set $traumafocus += 2>> <<set _br to true>> <</if>> <<if $leftaction == "leftpoke">> <<set $leftaction to 0>><<set $leftactiondefault to "leftpoke">> You poke yourself with your left hand. <<note "+ Focus" "green">> <<set $traumafocus += 1>> <<set _br to true>> <</if>> <<if $rightaction == "rightpoke">> <<set $rightaction to 0>><<set $rightactiondefault to "rightpoke">> You poke yourself with your right hand. <<note "+ Focus" "green">> <<set $traumafocus += 1>> <<set _br to true>> <</if>> <<if _br is true>> <br> <</if>> <<if $mouthaction == "noises">> <<set $mouthaction to 0>><<set $mouthactiondefault to "noises">> You make some soft noises. They sound nice. <<meek 1>> <</if>> <<if $mouthaction == "speak">> <<set $mouthaction to 0>><<set $mouthactiondefault to "speak">> You make some noises that resemble words. <<note "+ Focus" "green">> <<set $traumafocus += 1>> <</if>> <</widget>><<widget "actionspossessed">> <<if !$leftactiondefault>> <<set $leftactiondefault to "leftacceptW">> <</if>> <<if !$rightactiondefault>> <<set $rightactiondefault to "rightacceptW">> <</if>> <<if !$feetactiondefault>> <<set $feetactiondefault to "feetacceptW">> <</if>> <<if !$mouthactiondefault>> <<set $mouthactiondefault to "mouthacceptW">> <</if>> <<if $leftarm is 0>> Your left arm is free, <span class="pink">but not under your control</span>. <br> <<if $leftactiondefault is "leftacceptW">> | <label><span class="wraith">Accept it</span> <<radiobutton "$leftaction" "leftacceptW" checked>></label> <<else>> | <label><span class="wraith">Accept it</span> <<radiobutton "$leftaction" "leftacceptW">></label> <</if>> <<if $leftactiondefault is "leftresistW">> | <label><span class="brat">Hold it still</span> <<radiobutton "$leftaction" "leftresistW" checked>></label> <<else>> | <label><span class="brat">Hold it still</span> <<radiobutton "$leftaction" "leftresistW">></label> <</if>> <br> <<elseif $leftarm is "grappled">> Your left arm writhes in their grip, unbidden. <br> <<set $leftactiondefault to ["leftacceptW","leftstruggleW"].includes($leftactiondefault) ? "leftstruggleW" : "leftstillW">> <<if $leftactiondefault is "leftstruggleW">> | <label><span class="wraith">Struggle</span> <<radiobutton "$leftaction" "leftstruggleW" checked>></label> <<else>> | <label><span class="wraith">Struggle</span> <<radiobutton "$leftaction" "leftstruggleW">></label> <</if>> <<if $leftactiondefault is "leftstillW">> | <label><span class="brat">Hold it still</span> <<radiobutton "$leftaction" "leftstillW" checked>></label> <<else>> | <label><span class="brat">Hold it still</span> <<radiobutton "$leftaction" "leftstillW">></label> <</if>> <br> <<elseif $leftarm is "bound">> Your left arm writhes in its bounds, unbidden. <br> <</if>> <<if $rightarm is 0>> <br> Your right arm is free, <span class="pink">but not under your control</span>. <br> <<if $rightactiondefault is "rightacceptW">> | <label><span class="wraith">Accept it</span> <<radiobutton "$rightaction" "rightacceptW" checked>></label> <<else>> | <label><span class="wraith">Accept it</span> <<radiobutton "$rightaction" "rightacceptW">></label> <</if>> <<if $rightactiondefault is "rightresistW">> | <label><span class="brat">Hold it still</span> <<radiobutton "$rightaction" "rightresistW" checked>></label> <<else>> | <label><span class="brat">Hold it still</span> <<radiobutton "$rightaction" "rightresistW">></label> <</if>> <br> <<elseif $rightarm is "grappled">> <br> Your right arm writhes in their grip, unbidden. <br> <<set $rightactiondefault to ["rightacceptW","rightstruggleW"].includes($rightactiondefault) ? "rightstruggleW" : "rightstillW">> <<if $rightactiondefault is "rightstruggleW">> | <label><span class="wraith">Struggle</span> <<radiobutton "$rightaction" "rightstruggleW" checked>></label> <<else>> | <label><span class="wraith">Struggle</span> <<radiobutton "$rightaction" "rightstruggleW">></label> <</if>> <<if $rightactiondefault is "rightstillW">> | <label><span class="brat">Hold it still</span> <<radiobutton "$rightaction" "rightstillW" checked>></label> <<else>> | <label><span class="brat">Hold it still</span> <<radiobutton "$rightaction" "rightstillW">></label> <</if>> <br> <<elseif $rightarm is "bound">> <br> Your right arm writhes in its bounds, unbidden. <br> <</if>> <<if $feetuse is 0>> <br> Your legs are free, <span class="pink">but you can't feel them beneath you</span>. <br> <<if $feetactiondefault is "feetacceptW">> | <label><span class="wraith">Accept it</span> <<radiobutton "$feetaction" "feetacceptW" checked>></label> <<else>> | <label><span class="wraith">Accept it</span> <<radiobutton "$feetaction" "feetacceptW">></label> <</if>> <<if $feetactiondefault is "feetresistW">> | <label><span class="brat">Hold them still</span> <<radiobutton "$feetaction" "feetresistW" checked>></label> <<else>> | <label><span class="brat">Hold them still</span> <<radiobutton "$feetaction" "feetresistW">></label> <</if>> <br> <<elseif $feetuse is "bound">> <br> Your legs thrash in their shackles, unbidden. <br> <</if>> <<if $mouthuse is 0>> <br> Your mouth is free, <span class="pink">but unfamiliar words spill from your tongue</span>. <br> <<if $mouthactiondefault is "mouthacceptW">> | <label><span class="wraith">Accept it</span> <<radiobutton "$mouthaction" "mouthacceptW" checked>></label> <<else>> | <label><span class="wraith">Accept it</span> <<radiobutton "$mouthaction" "mouthacceptW">></label> <</if>> <<if $mouthactiondefault is "mouthresistW">> | <label><span class="brat">Clamp your mouth shut</span> <<radiobutton "$mouthaction" "mouthresistW" checked>></label> <<else>> | <label><span class="brat">Clamp your mouth shut</span> <<radiobutton "$mouthaction" "mouthresistW">></label> <</if>> <<elseif $mouthuse is "lefthand" or $mouthuse is "righthand">> <br> Your mouth is blocked, muffling the foreign words that well up within you. <br> <<set $mouthactiondefault to ["mouthacceptW","handbiteW"].includes($mouthactiondefault) ? "handbiteW" : "handcloseW">> <<if $mouthactiondefault is "handbiteW">> | <label><span class="wraith">Bite</span> <<radiobutton "$mouthaction" "handbiteW" checked>></label> <<else>> | <label><span class="wraith">Bite</span> <<radiobutton "$mouthaction" "handbiteW">></label> <</if>> <<if $mouthactiondefault is "handcloseW">> | <label><span class="brat">Clamp your mouth shut</span> <<radiobutton "$mouthaction" "handcloseW" checked>></label> <<else>> | <label><span class="brat">Clamp your mouth shut</span> <<radiobutton "$mouthaction" "handcloseW">></label> <</if>> <</if>> <</widget>><<widget "effectspossessed">> <<set $enemyanger to 200>><<set $willpowerSuccess to 0>> <<dynamicblock id=control-caption>> <<controlcaption>> <</dynamicblock>> <<if $combatBegun is 1>> <<set _resist to 0>> <<if $leftaction isnot "leftresistW" and $rightaction isnot "rightresistW" and $feetaction isnot "feetresistW" and $mouthaction isnot "mouthresistW">> <span class="pink">You let it take you.</span> <<pain -2>><<stress -12>><<sub 2>><<lpain>><<llstress>><<set $wraith.will += 30>> <<else>> <<if $leftaction is "leftresistW" and $rightaction is "rightresistW" and $feetaction is "feetresistW">> <<set _resist to 3>> <<elseif $leftaction is "leftresistW" and $rightaction is "rightresistW" or $leftaction is "leftresistW" and $feetaction is "feetresistW" or $rightaction is "rightresistW" and $feetaction is "feetresistW">> <<set _resist to 2>> <<else>> <<set _resist to 1>> <</if>> <<set _wraithWill to Math.floor(1 + $wraith.will)>> <<willpowerdifficulty 1 _wraithWill true>> <<if $willpowerSuccess>> <<set _resistSuccess to 1>> <span class="green"> You fight for control. <<if ($leftaction is "leftresistW" or $leftaction is "leftstillW") and ($rightaction is "rightresistW" or $rightaction is "rightstillW") and $feetaction is "feetresistW">> Your body locks up. <<elseif $feetaction is "feetresistW" and ($leftaction is "leftresistW" or $leftaction is "leftstillW" or $rightaction is "rightresistW" or $rightaction is "rightstillW")>> Your arm and legs lock up. <<elseif ($leftaction is "leftresistW" or $leftaction is "leftstillW") and ($rightaction is "rightresistW" or $rightaction is "rightstillW")>> Your arms lock up. <<elseif $feetaction is "feetresistW">> Your legs lock up. <<elseif $leftaction is "leftresistW" or $leftaction is "leftstillW" or $rightaction is "rightresistW" or $rightaction is "rightstillW">> Your arm locks up. <</if>> <<if $mouthaction is "handcloseW">> You clamp your mouth shut. <</if>> </span> <<if $mouthaction is "mouthresistW">> <<set $willpowerSuccess to 0>> <<silently>><<willpowerdifficulty _wraithWill/3 _wraithWill*1.2>><</silently>> <<if $willpowerSuccess>> <<set _mouthSuccess to 1>><<set _resist++>> <span class="green">You clamp your mouth shut.</span> <<else>> <span class="purple">You can't stop the stream of words coming from your mouth, though.</span> <</if>> <</if>> <<pain _resist>><<stress _resist>><<trauma _resist>><<def 2>><<gpain>><<gtrauma>><<gstress>><<if _resist is 4>><<ggcontrol>><<else>><<gcontrol>><</if>><<set $wraith.will -= Math.floor(currentSkillValue('willpower') / 24)*_resist>> <<set $control += Math.floor(currentSkillValue('willpower') / 24)*_resist>> <<else>> <span class="red">Your body does not obey.</span> <<stress 6>><<trauma 6>><<willpower 1>><<def 1>><<gtrauma>><<gstress>><<gwillpower>><<set $wraith.will -= Math.floor(currentSkillValue('willpower') / 40)*_resist>> <</if>> <</if>> <br><br> <<else>> <<set $combatBegun to 1>> <</if>> <<if $leftaction is "leftresistW" and $rightaction is "rightresistW" and _resistSuccess>> <<set $leftaction to 0>><<set $rightaction to 0>><<set $leftactiondefault to "leftresistW">><<set $rightactiondefault to "rightresistW">> You hold your arms firm to your side. <</if>> <<if $leftaction is "leftacceptW" or $leftaction is "leftresistW" and !_resistSuccess>> <<set $_wraithDamage to 1>> <<if $leftaction is "leftacceptW">><<set $_wraithDamage ++>><</if>> <<set $_wraithDamage += Math.floor(C.npc["Ivory Wraith"].lust / 10)>> <<set $leftactiondefault to $leftaction>><<set $leftaction to 0>><<set _target to random(1,$enemyno)-1>> You <<print either("punch","slap","scratch","claw","chop","strike")>> with your left hand. <<defiance $_wraithDamage _target>> <</if>> <<if $leftaction is "leftresistW" and _resistSuccess>> <<set $leftaction to 0>><<set $leftactiondefault to "leftresistW">> You hold your left arm firm to your side. <</if>> <<if $leftaction is "leftstruggleW" or $rightaction is "rightstruggleW" or (($leftaction is "leftresistW" or $rightaction is "rightresistW") and !_resistSuccess)>> <<set $leftaction to 0>><<set $leftactiondefault to "leftstruggleW">><<set $rightaction to 0>><<set $leftactiondefault to "leftstruggleW">> You struggle to free your arms. <<set $speechstruggle to 1>> <<if currentSkillValue('physique') gte random(1, 48000)>> <span class="pink">You manage to wrench your arms free.</span> <<set $leftarm to 0>><<set $rightarm to 0>> <<for _s = 0; _s lt $NPCList.length; _s++>> <<if $NPCList[_s].lefthand is "arms">> <<set $NPCList[_s].lefthand to 0>> <<break>> <</if>> <<if $NPCList[_s].righthand is "arms">> <<set $NPCList[_s].righthand to 0>> <<break>> <</if>> <</for>> <<else>> <span class="lblue">Your arms remain grasped.</span> <</if>> <</if>> <<if $leftaction is "leftstillW" and $rightaction is "rightstillW" and _resistSuccess>> You hold your arms as still as you can in their grasp. <</if>> <<if $rightaction is "rightacceptW" or $rightaction is "rightresistW" and !_resistSuccess>> <<set $_wraithDamage to 1>> <<if $rightaction is "rightacceptW">><<set $_wraithDamage ++>><</if>> <<set $_wraithDamage += Math.floor(C.npc["Ivory Wraith"].lust / 10)>> <<set $rightactiondefault to $rightaction>><<set $rightaction to 0>><<set _target to random(1,$enemyno)-1>> You <<print either("punch","slap","scratch","claw","chop","strike")>> with your right hand. <<defiance $_wraithDamage _target>> <</if>> <<if $rightaction is "rightresistW" and _resistSuccess>> <<set $rightaction to 0>><<set $rightactiondefault to "rightresistW">> You hold your right arm firm to your side. <</if>> <<if $feetaction is "feetacceptW" or $feetaction is "feetresistW" and !_resistSuccess>> <<set $_wraithDamage to 1>> <<if $feetaction is "feetacceptW">><<set $_wraithDamage ++>><</if>> <<set $_wraithDamage += Math.floor(C.npc["Ivory Wraith"].lust / 10)>> <<set $feetactiondefault to $feetaction>><<set $feetaction to 0>><<set _target to random(1,$enemyno)-1>> You <<print either("awkwardly","viciously","rapidly","jerkily","cruelly","<<feettext>>")>> lash out with your feet. <<defiance $_wraithDamage _target>> <</if>> <<if $feetaction is "feetresistW" and _resistSuccess>> <<set $feetaction to 0>><<set $feetactiondefault to "feetresistW">> You plant your legs into the ground. <</if>> <<if $mouthaction is "mouthacceptW" or $mouthaction is "mouthresistW" and !_mouthSuccess>> <<set $_wraithDamage to 1>> <<if $mouthaction is "mouthacceptW">><<set $_wraithDamage ++>><</if>> <<set $mouthactiondefault to $mouthaction>><<set $mouthaction to 0>> <<speechWraith>> <<defiance $_wraithDamage>> <</if>> <<if $mouthaction is "mouthresistW" and _mouthSuccess>> <<set $mouthaction to 0>><<set $mouthactiondefault to "mouthresistW">> Words well up in your mouth, but you swallow them down. <</if>> <<if $mouthaction is "handbiteW" or $mouthaction is "handcloseW" and !_resistSuccess>> <<set $mouthactiondefault to $mouthaction>><<set $mouthaction to 0>> <<actionshandbite>> <<for _s = 0; _s lt $NPCList.length; _s++>> <<if $NPCList[_s].lefthand is "mouth">> <<set $NPCList[_s].lefthand to 0>> <</if>> <<if $NPCList[_s].righthand is "mouth">> <<set $NPCList[_s].righthand to 0>> <</if>> <span class="teal"><<He _s>> flinches away in pain, freeing your mouth.</span> <<defiance 1 _s>> <<break>> <</for>> <<set $mouthuse to 0>> <</if>> <<if $mouthaction is "handcloseW" and _resistSuccess>> <<set $mouthaction to 0>><<set $mouthactiondefault to "handcloseW">> You keep your mouth closed against the hand pressing against it. <</if>> <</widget>><<widget "effectsman">> <div @class="($debugLines ? 'debugLines-effectsman' : '')"> <!-- "FOR" loops work by counting backward from highest numbered combatant to lowest e.g. 5 to 0. --> <!-- In case of train combat, count stops after 1, e.g. 5 to 5. --> <!-- Lots of further opportunity to reduce code using <<for>><</for>> loops with NPC objects NG 2.8--> /* * Switched all instances of skill checks, that simply repeat themselves with a different variable, for the JS function combatSkillCheck() * The function can be found at "game/03-JavaScript/ingame.js". It takes one required argument and three optional arguments. * Argument 0 is for the skill being used. For simplycity at writing, you only pass the important part of the skill, E.g. "hand", or "feet", or "oral". * Argument 1 (optional) is used for the target of that action. This is used to future-proof the possibility of using the target's specific arousal/trust/anger in calculation. * Argument 2 (optional) is the base difficulty used for the action. Most actions use 1000 base difficulty, which is the default if left blank, but some actions take different chances (like undressing). * Argument 3 (optional) is the extra multiplier for the arousal side. This is only used in undressing so far, but might as well add it as an option. */ <<pain -0.25>> <<if $enemyno gte 2>> <<set $pronoun to "n">> <<else>> <<switch $NPCList[0].pronoun>> <<case "m">> <<set $pronoun to "m">> <<case "f">> <<set $pronoun to "f">> <<case "i">> <<set $pronoun to "i">> <<case "n">> <<set $pronoun to "n">> <<case "t">> <<set $pronoun to "t">> <</switch>> <</if>> <<if !$noIntroName>> <<for _i = 0; _i < $enemynomax; _i++>> <<set $NPCList[_i].intro to 1>> <</for>> <</if>> <<if $trance gte 1 or $dissociation gte 2>> <<if $position is "stalk">> You wander in a daze, unaware of your surroundings. <<else>> You stare straight ahead, your body passive and compliant. <</if>> <</if>> <<if $underwater is 1>> <<set $underwatertime += 1>> <<if $underwatertime lte 5>> You are underwater and cannot speak. <<elseif $underwatertime lte 10>> <span class="blue">You are underwater and cannot breathe.</span> <<gstress>><<stress 1>> <<elseif $underwatertime lte 15>> <span class="purple">You are underwater and cannot breathe.</span> <<gstress>><<stress 2>> <<elseif $underwatertime lte 20>> <span class="pink">You are underwater and cannot breathe.</span> <<gtrauma>><<gstress>><<stress 4>><<trauma 2>> <<else>> <span class="red">You are suffocating beneath the water.</span> <<pain 20 1>><<gtrauma>><<gstress>><<gpain>><<stress 6>><<trauma 4>> <br><br> <</if>> <</if>> <<if $position is "wall">> <<if $walltype is "pillory">> You are trapped in a pillory with your posterior stuck out and unprotected. <<elseif $walltype is "cleanpillory">> You are trapped in a pillory with your posterior stuck out and unprotected. <<elseif $walltype is "horse_pillory">> Your legs and neck are shackled by cold iron, preventing movement. <<elseif $walltype is "front">> You are trapped in a wall, vulnerable from the waist up. <<else>> You are trapped in a $walltype with your posterior stuck out in the open. <</if>> <</if>> <<effectspain>> <<effectsorgasm>> <<effectsdissociation>> <<if $possessed>> <<effectspossessed>> <</if>> <<effectsspray>> <<effectshandsclothes>> <<effectssteal>> <<effectspenwhack>> <<effectsshacklewhack>> <<effectshypnosiswhack>> <<effectshandsfreeface>> <<effectshandpull>> <<effectsdildowhack>> <<if $bodyaction is "doggy">> <<set $bodyaction to 0>> You roll onto your knees. <<set $position to "doggy">> <<elseif $bodyaction is "missionary">> <<set $bodyaction to 0>> You roll onto your back. <<set $position to "missionary">> <</if>> /*** * ███ ███████ ██ ██ ███████ * ██ ██ ██ ██ ███ ███ ██ * ██ ██ █████ ██ █ ██ ███████ * ███████ ██ ██ ██ ██ ██ * ██ ██ ██ ██ ██ ██ ███████ * */ <<if $newtarget isnot undefined>> <<setnewtarget>> <</if>> <<if $leftaction is "lefthandholdkeep" and $rightaction is "righthandholdkeep">> <<set $leftaction to 0>><<set $leftactiondefault to "lefthandholdkeep">> <<set $rightaction to 0>><<set $rightactiondefault to "righthandholdkeep">> You hold <<someones $lefttarget>> hands in your own. <<submission 4>> <</if>> <<if $leftaction is "lefthandholdnew">> <<set $leftaction to 0>><<set $leftactiondefault to "lefthandholdnew">> <<if combatSkillCheck("hand", $lefttarget)>> <<set $NPCList[$lefttarget].righthand to "handhold">> You take <<someones $lefttarget>> left hand in your own. <<set $leftarm to "handheld">><<set $leftactiondefault to "lefthandholdkeep">> <<submission 1>> <<if isLoveInterest($NPCList[$lefttarget].fullDescription)>> <<takeHandholdingVirginity $NPCList[$lefttarget] "romantic" null true>> <<else>> <<takeHandholdingVirginity $NPCList[$lefttarget] null null true>> <</if>> <<else>> You reach for <<someones $lefttarget>> left hand, but <<he>> moves away. <</if>> <</if>> <<if $leftaction is "lefthandholdkeep">> <<set $leftaction to 0>><<set $leftactiondefault to "lefthandholdkeep">> You hold <<someones $lefttarget>> hand in your own. <<submission 2>> <</if>> <<if $leftaction is "lefthandholdstop">> <<set $leftaction to 0>><<set $leftactiondefault to "rest">> You let go of <<someones $lefttarget>> right hand. <<set $leftarm to 0>> <<if $npcSub>> <<set $NPCList[$lefttarget].righthand to "idle">> <<else>> <<set $NPCList[$lefttarget].righthand to 0>> <</if>> <</if>> <<if $rightaction is "righthandholdnew">> <<set $rightaction to 0>><<set $rightactiondefault to "righthandholdnew">> <<if combatSkillCheck("hand", $righttarget)>> <<set $NPCList[$righttarget].lefthand to "handhold">> <<set $rightarm to "handheld">> You take <<hisselect $righttarget>> right hand in your own. <<set $rightarm to "handheld">><<set $leftactiondefault to "righthandholdkeep">> <<submission 1>> <<if isLoveInterest($NPCList[$righttarget].fullDescription)>> <<takeHandholdingVirginity $NPCList[$righttarget] "romantic" null true>> <<else>> <<takeHandholdingVirginity $NPCList[$righttarget] null null true>> <</if>> <<else>> You reach for <<someones $righttarget>> right hand, but <<he>> moves away. <</if>> <</if>> <<if $rightaction is "righthandholdkeep">> <<set $rightaction to 0>><<set $rightactiondefault to "righthandholdkeep">> You hold <<someones $righttarget>> hand in your own. <<submission 2>> <</if>> <<if $rightaction is "righthandholdstop">> <<set $rightaction to 0>><<set $rightactiondefault to "rest">> You let go of <<someones $righttarget>> left hand. <<set $rightarm to 0>> <<if $npcSub>> <<set $NPCList[$righttarget].lefthand to "idle">> <<else>> <<set $NPCList[$righttarget].lefthand to 0>> <</if>> <</if>> <<if $leftaction is "handguide">> <<set $leftaction to 0>><<set $leftactiondefault to "handguide">><<combatpromiscuity2>> <<if combatSkillCheck("hand", $lefttarget)>> <<if $rightaction is "handguide" and $handGuideLeft is $handGuideRight>> <<set $rightaction to 0>><<set $rightactiondefault to "rest">> <</if>> <<switch $handGuideLeft>> <<case "penis">> You lower <<someones $lefttarget>> hand to your <<penis>>. <<set $NPCList[$lefttarget].righthand to "penisentrance">><<set $penisuse to 1>><<set $penisstate to "otherhandentrance">> <<case "pussy">> You lower <<someones $lefttarget>> hand to your <<pussy>>. <<set $NPCList[$lefttarget].righthand to "vaginaentrance">><<set $vaginause to 1>><<set $vaginastate to "otherhandentrance">> <<case "ass">> You press <<someones $lefttarget>> hand against your <<bottom>>. <<set $NPCList[$lefttarget].righthand to "anusentrance">><<set $anususe to "handentrance">><<set $anusstate to "handentrance">> <<default>> <</switch>> <<set $leftactiondefault to "rest">><<set $leftarm to 0>><<submission 1>> <<else>> You try to guide <<someones $lefttarget>> hand to <<switch $handGuideRight>> <<case "penis">>your <<penis>>, <<case "pussy">>your <<pussy>>, <<case "ass">>your <<bottom>>, <<default>> <</switch>> <<if $enemyanger gte random(30, 100)>> <span class="purple">but <<he>> wrenches it out of your grasp.</span> <<set $leftactiondefault to "rest">><<set $leftarm to 0>> <<set $NPCList[$lefttarget].righthand to 0>><<violence 2>> <<else>> but <<his>> grip is too tight. <</if>> <</if>> <</if>> <<if $rightaction is "handguide">> <<set $rightaction to 0>><<set $rightactiondefault to "handguide">><<combatpromiscuity2>> <<if combatSkillCheck("hand", $righttarget)>> <<switch $handGuideRight>> <<case "penis">> You lower <<someones $lefttarget>> hand to your <<penis>>. <<set $NPCList[$righttarget].lefthand to "penisentrance">><<set $penisuse to 1>><<set $penisstate to "otherhandentrance">> <<case "pussy">> Your lower <<someones $lefttarget>> hand to your <<pussy>>. <<set $NPCList[$righttarget].lefthand to "vaginaentrance">><<set $vaginause to 1>><<set $vaginastate to "otherhandentrance">> <<case "ass">> You press <<someones $lefttarget>> hand against your <<bottom>>. <<set $NPCList[$righttarget].lefthand to "anusentrance">><<set $anususe to "handentrance">><<set $anusstate to "handentrance">> <</switch>> <<set $rightactiondefault to "rest">><<set $rightarm to 0>><<submission 1>> <<else>> You try to guide <<someones $lefttarget>> hand to <<switch $handGuideRight>> <<case "penis">>your <<penis>>, <<case "pussy">>your <<pussy>>, <<case "ass">>your <<bottom>>, <</switch>> <<if $enemyanger gte random(30, 100)>> <span class="purple">but <<he>> wrenches it out of your grasp.</span> <<set $rightactiondefault to "rest">><<set $rightarm to 0>> <<set $NPCList[$righttarget].lefthand to 0>><<violence 2>> <<else>> but <<his>> grip is too tight. <</if>> <</if>> <</if>> <<if $leftaction is "leftgrab">> <<set $leftaction to 0>><<set $leftactiondefault to "leftgrab">><<handskilluse>><<combatpromiscuity3>> <<if combatSkillCheck("hand", $lefttarget)>> <<submission 1>><<handstat>> <<if $NPCList[$lefttarget].penis is 0>> <<set $leftactiondefault to "leftwork">><<set $NPCList[$lefttarget].penis to "leftarm">><<set $leftarm to "penis">> <span class="lblue">You <<handtext>> <<if $NPCList[$lefttarget].chastity.penis.includes("chastity")>>fondle<<else>>grab<</if>> <<hisselect $lefttarget>> $NPCList[$lefttarget].penisdesc<<if $NPCList[$lefttarget].chastity.penis.includes("chastity")>> through <<hisselect $lefttarget>> $NPCList[$lefttarget].chastity.penis<</if>> with your left hand.</span> <<else>> <span class="blue">You try to grab <<hisselect $lefttarget>> $NPCList[$lefttarget].penisdesc with your left hand, but the phallus is already occupied.</span> <</if>> <<else>> You try to grab <<someones $lefttarget>> penis with your left hand, but <<he>> moves it away. <</if>> <</if>> <<if $rightaction is "rightgrab">> <<set $rightaction to 0>><<set $rightactiondefault to "rightgrab">><<handskilluse>><<combatpromiscuity3>> <<if combatSkillCheck("hand", $righttarget)>> <<submission 1>><<handstat>> <<if $NPCList[$righttarget].penis is 0>> <<set $NPCList[$righttarget].penis to "rightarm">><<set $rightarm to "penis">> <span class="lblue">You <<handtext>> <<if $NPCList[$righttarget].chastity.penis.includes("chastity")>>fondle<<else>>grab<</if>> <<hisselect $righttarget>> $NPCList[$righttarget].penisdesc<<if $NPCList[$righttarget].chastity.penis.includes("chastity")>> through <<hisselect $righttarget>> $NPCList[$righttarget].chastity.penis<</if>> with your right hand.</span> <<else>> <span class="blue">You try to grab <<hisselect $righttarget>> $NPCList[$righttarget].penisdesc with your right hand, but the phallus is already occupied.</span> <</if>> <<else>> You try to grab <<someones $righttarget>> penis with your right hand, but <<he>> moves it away. <</if>> <</if>> <<if $leftaction is "leftstroke" and $rightaction is "rightstroke">> <<set $leftaction to 0>><<set $rightaction to 0>><<set $leftactiondefault to "leftstroke">><<set $rightactiondefault to "rightstroke">> <<submission 2>><<actionspenisstroke $lefttarget $righttarget>><<handskilluse>><<handskilluse>> <</if>> <<if $leftaction is "leftstroke">> <<set $leftaction to 0>><<set $leftactiondefault to "leftstroke">><<submission 1>><<actionspenisstroke $lefttarget>><<handskilluse>> <</if>> <<if $rightaction is "rightstroke">> <<set $rightaction to 0>><<set $rightactiondefault to "rightstroke">><<submission 1>><<actionspenisstroke $righttarget>><<handskilluse>> <</if>> <<if $leftaction is "leftwork">> <<set $leftaction to 0>><<set $leftactiondefault to "leftwork">><<handskilluse>> <<if combatSkillCheck("hand", $lefttarget)>> <<submission 3>><<actionsshaftrub $lefttarget>> <<elseif $NPCList[$lefttarget].penis is "leftarm">> <<set $leftactiondefault to "leftgrab">> <<set $leftarm to 0>><<set $NPCList[$lefttarget].penis to 0>> <span class="blue">You try to rub <<hisselect $lefttarget>> shaft, but <<he>> moves away.</span> <</if>> <</if>> <<if $rightaction is "rightwork">> <<set $rightaction to 0>><<set $rightactiondefault to "rightwork">><<handskilluse>> <<if combatSkillCheck("hand", $righttarget)>> <<submission 3>><<actionsshaftrub $righttarget>> <<elseif $NPCList[$righttarget].penis is "rightarm">> <<set $rightactiondefault to "rightgrab">> <<set $rightarm to 0>><<set $NPCList[$righttarget].penis to 0>> <span class="blue">You try to rub <<hisselect $righttarget>> shaft, but <<he>> moves away.</span> <</if>> <</if>> <<if $leftaction is "handedge">> <<personselect $lefttarget>><<actionshandedge $lefttarget $leftarm>><<set $leftaction to 0>><<set $leftactiondefault to "handedge">> <<submission 5>><<sexControl 5 `currentSkillValue("handskill")` $lefttarget>><<handskilluse>><<combatpromiscuity4>> <</if>> <<if $rightaction is "handedge">> <<personselect $righttarget>><<actionshandedge $righttarget $rightarm>><<set $rightaction to 0>><<set $rightactiondefault to "handedge">> <<submission 5>><<sexControl 5 `currentSkillValue("handskill")` $righttarget>><<handskilluse>><<combatpromiscuity4>> <</if>> <<if $leftaction is "leftstoppenis" and $NPCList[$lefttarget].penis is "leftarm">> <<set $leftaction to 0>><<set $leftactiondefault to "leftstoppenis">><<submission 3>><<set $leftarm to 0>> <<set $NPCList[$lefttarget].penis to 0>>You let go of <<hisselect $lefttarget>> penis. <</if>> <<if $rightaction is "rightstoppenis" and $NPCList[$righttarget].penis is "rightarm">> <<set $rightaction to 0>><<set $rightactiondefault to "rightstoppenis">><<submission 3>><<set $rightarm to 0>> <<set $NPCList[$righttarget].penis to 0>>You let go of <<hisselect $righttarget>> penis. <</if>> <<if $leftaction is "leftstruggle" and $rightaction is "rightstruggle" and !$abomination and $lefttarget is $righttarget>> <<set $leftaction to 0>><<set $rightaction to 0>><<set $leftactiondefault to "leftstruggle">><<set $rightactiondefault to "rightstruggle">> You struggle with all your might. <<defiance 2 $lefttarget>><<set $speechstruggle to 1>> <<if currentSkillValue('physique') gte random(1, 32000) and !$robinRentEvent>> <span class="teal">You manage to twist your arms free.</span> <<defiance 5 $lefttarget>> <<set $leftarm to 0>><<set $rightarm to 0>> <<if $NPCList[$lefttarget].lefthand is "arms">> <<set $NPCList[$lefttarget].lefthand to 0>> <</if>> <<if $NPCList[$lefttarget].righthand is "arms">> <<set $NPCList[$lefttarget].righthand to 0>> <</if>> <<else>> <span class="purple">Your arms remain grasped.</span> <</if>> <</if>> <<if $leftaction is "leftstruggle" and !$abomination>> <<set $leftaction to 0>><<set $leftactiondefault to "leftstruggle">> You struggle. <<set $speechstruggle to 1>><<defiance 1 $lefttarget>> <<if currentSkillValue('physique') gte random(1, 64000) and !$robinRentEvent>> <span class="teal">You manage to twist your arms free.</span> <<defiance 5 $lefttarget>> <<set $leftarm to 0>><<set $rightarm to 0>> <<if $NPCList[$lefttarget].lefthand is "arms">> <<set $NPCList[$lefttarget].lefthand to 0>> <</if>> <<if $NPCList[$lefttarget].righthand is "arms">> <<set $NPCList[$lefttarget].righthand to 0>> <</if>> <<else>> <span class="purple">Your arms remain grasped.</span> <</if>> <</if>> <<if $rightaction is "rightstruggle" and !$abomination>> <<set $rightaction to 0>><<set $rightactiondefault to "rightstruggle">> You struggle. <<defiance 1 $righttarget>><<set $speechstruggle to 1>> <<if currentSkillValue('physique') gte random(1, 64000) and !$robinRentEvent>> <span class="teal">You manage to twist your arms free.</span> <<defiance 5 $righttarget>> <<set $leftarm to 0>><<set $rightarm to 0>> <<if $NPCList[$righttarget].lefthand is "arms">> <<set $NPCList[$righttarget].lefthand to 0>> <</if>> <<if $NPCList[$righttarget].righthand is "arms">> <<set $NPCList[$righttarget].righthand to 0>> <</if>> <<else>> <span class="purple">Your arms remain grasped.</span> <</if>> <</if>> /* Merge action text if resting a combination of arms and feet for better writing flow */ <<if $leftaction is "rest" and $rightaction is "rest" and $feetaction is "rest">> <<set $leftaction to 0>><<set $rightaction to 0>><<set $feetaction to 0>><<set $leftactiondefault to "rest">><<set $rightactiondefault to "rest">><<set $feetactiondefault to "rest">> You rest your arms and legs. <</if>> <<if $leftaction is "rest" and $rightaction is "rest">> <<set $leftaction to 0>><<set $rightaction to 0>><<set $leftactiondefault to "rest">><<set $rightactiondefault to "rest">> You rest your arms. <</if>> <<if $leftaction is "rest" and $feetaction is "rest">> <<set $leftaction to 0>><<set $feetaction to 0>><<set $leftactiondefault to "rest">><<set $feetactiondefault to "rest">> You rest your legs and left arm. <</if>> <<if $rightaction is "rest" and $feetaction is "rest">> <<set $rightaction to 0>><<set $feetaction to 0>><<set $rightactiondefault to "rest">><<set $feetactiondefault to "rest">> You rest your legs and right arm. <</if>> /* Back to individual arm actions */ <<if $leftaction is "rest">> <<set $leftaction to 0>><<set $leftactiondefault to "rest">> You rest your left arm. <</if>> <<if $rightaction is "rest">> <<set $rightaction to 0>><<set $rightactiondefault to "rest">> You rest your right arm. <</if>> <<if $leftaction is "behind" and $rightaction is "behind">> <<set $leftaction to 0>><<set $rightaction to 0>><<set $leftactiondefault to "behind">><<set $rightactiondefault to "behind">> You hold your arms behind your back in a compliant gesture. <<meek 2>><<set $leftarm to "behind">><<set $rightarm to "behind">> <</if>> <<if $leftaction is "behind">> <<set $leftaction to 0>><<set $leftactiondefault to "behind">> You hold your left arm behind your back in a compliant gesture. <<meek 1>><<set $leftarm to "behind">> <</if>> <<if $rightaction is "behind">> <<set $rightaction to 0>><<set $rightactiondefault to "behind">> You hold your right arm behind your back in a compliant gesture. <<meek 1>><<set $rightarm to "behind">> <</if>> <<if $leftaction is "stopbehind" and $rightaction is "stopbehind">> <<set $leftaction to 0>><<set $rightaction to 0>><<set $leftactiondefault to "rest">><<set $rightactiondefault to "rest">> You move your arms in front of you. <<set $leftarm to 0>><<set $rightarm to 0>> <</if>> <<if $leftaction is "stopbehind">> <<set $leftaction to 0>><<set $leftactiondefault to "rest">> You move your left arm in front of you. <<set $leftarm to 0>> <</if>> <<if $rightaction is "stopbehind">> <<set $rightaction to 0>><<set $rightactiondefault to "rest">> You move your right arm in front of you. <<set $rightarm to 0>> <</if>> <<if $leftaction is "leftchest" and $rightaction is "rightchest">> <<set $leftaction to 0>><<set $rightaction to 0>><<set $leftactiondefault to "leftchest">> <<set $rightactiondefault to "rightchest">><<actionsStroke $lefttarget $righttarget>><<submission 2>> <</if>> <<if $leftaction is "leftchest">> <<set $leftaction to 0>><<set $leftactiondefault to "leftchest">><<actionsStroke $lefttarget>><<submission 1>> <</if>> <<if $rightaction is "rightchest">> <<set $rightaction to 0>><<set $rightactiondefault to "rightchest">><<actionsStroke $righttarget>><<submission 1>> <</if>> <<if $leftaction is "lefthit" and $rightaction is "righthit" and $lefttarget is $righttarget>> <<set $leftaction to 0>><<set $rightaction to 0>><<set $leftactiondefault to "lefthit">> <<set $rightactiondefault to "righthit">><<actionshit both>><<defiance 5 $lefttarget>><<set $speechhit to 1>><<set $attackstat += 2>> <</if>> <<if $leftaction is "lefthit">> <<set $leftaction to 0>><<set $leftactiondefault to "lefthit">> <<if numberOfEarSlime() and (($parasite.left_ear.name is "slime" and random(1, 3) is 3) or ($parasite.right_ear.name is "slime" and random(1, 3) is 3) or ($earSlime.growth gte 50 and random(1, 3) is 3))>> <<if $earSlime.growth gte (currentSkillValue('willpower') / 10) and random(0,100) gte $earSlime.growth / 3>> You try to hit the <<if $enemytype is "beast">><<beasttype>><<else>><<personselect $lefttarget>><<person>><</if>> with your left hand, <span class="red">but the slime immobilises your limb.</span> <<if $earSlime.growth gt 50>><<set $earSlime.defyCooldown++>><</if>> <<elseif $earSlime.corruption gte (currentSkillValue('willpower') / 10) and random(0,100) gte 50>> You try to hit the <<if $enemytype is "beast">><<beasttype>><<else>><<personselect $lefttarget>><<person>><</if>> with your left hand, <span class="red">but the slime distracts you, so you miss.</span> <<gwillpower>><<willpower 1>> <<else>> The slime tries to prevent you from hitting the <<if $enemytype is "beast">><<beasttype>><<else>><<personselect $lefttarget>><<person>><</if>>, <span class="green">but you make contact regardless.</span> <<actionshit $lefttarget>><<defiance 2 $lefttarget>><<set $speechhit to 1>><<set $attackstat += 1>> <</if>> <<else>> <<actionshit $lefttarget>><<defiance 2 $lefttarget>><<set $speechhit to 1>><<set $attackstat += 1>> <</if>> <</if>> <<if $rightaction is "righthit">> <<set $rightaction to 0>><<set $rightactiondefault to "righthit">><<personselect $righttarget>> <<if numberOfEarSlime() and (($parasite.left_ear.name is "slime" and random(1, 3) is 3) or ($parasite.right_ear.name is "slime" and random(1, 3) is 3) or ($earSlime.growth gte 50 and random(1, 3) is 3))>> <<if $earSlime.growth gte (currentSkillValue('willpower') / 10) and random(0,100) gte $earSlime.growth / 3>> You try to hit the <<if $enemytype is "beast">><<beasttype>><<else>><<person>><</if>> with your right hand, <span class="red">but the slime immobilises your limb.</span> <<if $earSlime.growth gt 50>><<set $earSlime.defyCooldown++>><</if>> <<elseif $earSlime.corruption gte (currentSkillValue('willpower') / 10) and random(0,100) gte 50>> You try to hit the <<if $enemytype is "beast">><<beasttype>><<else>><<person>><</if>> with your right hand, <span class="red">but the slime distracts you, so you miss.</span> <<gwillpower>><<willpower 1>> <<else>> The slime tries to prevent you from hitting the <<if $enemytype is "beast">><<beasttype>><<else>><<personselect $righttarget>><<person>><</if>>, <span class="green">but you make contact regardless.</span> <<actionshit $righttarget>><<defiance 2 $righttarget>><<set $speechhit to 1>><<set $attackstat += 1>> <</if>> <<else>> <<actionshit $righttarget>><<set $speechhit to 1>><<defiance 2 $righttarget>><<set $attackstat += 1>> <</if>> <</if>> <<if $leftaction is "leftcamerapose" and $rightaction is "rightcamerapose">> <<set $leftaction to 0>><<set $rightaction to 0>><<set $leftactiondefault to "leftcamerapose">><<set $rightactiondefault to "rightcamerapose">> <<neutral 4>> You make peace signs for the cameras. <<set $speechcamerapose to 1>> <<elseif $leftaction is "leftcamerapose">> <<set $leftaction to 0>><<set $leftactiondefault to "leftcamerapose">> <<neutral 2>> You make a peace sign with your left hand. <<set $speechcamerapose to 1>> <<elseif $rightaction is "rightcamerapose">> <<set $rightaction to 0>><<set $rightactiondefault to "rightcamerapose">> <<neutral 2>> You make a peace sign with your right hand. <<set $speechcamerapose to 1>> <</if>> <<cover_end>>/*Resets $face and other variables that are covered */ <<if $leftaction is "leftcoverface" and $rightaction is "rightcoverface">> <<if $uncomfortable.hypnosis is false and $hypnosis_traits.cover gte random(1,5)>> <<hypnosisText 'You intend to cover your face, but a lewd thought intrudes <span class="lewd">and your mind immediately accepts it.</span> You stroke your face with your hands, winking and teasing around your lips.'>> <<submission 1>><<set $speechcamerapose to 1>><<hypnotised 1>> <<elseif $hypnosis_traits.cover gte 1 and $willpower lt random(1, (200 * $hypnosis_traits.cover))>> <<hypnosisText 'You intend to cover your face, <span class="pink">but the thought is snatched from your mind and replaced with another.</span> You stroke your face with your hands, winking and teasing around your lips.'>> <<submission 1>><<set $speechcamerapose to 1>><<hypnotised 1>><<willpower 1>> <<else>> You <<if $hypnosis_traits.cover gte 1>> <span class="green">resist intrusive thoughts</span> and <</if>> cover your face with your hands. <<set $speechcoverface to 1>><<set $face to "covered">><<neutral 2>> <<set $leftaction to 0>><<set $rightaction to 0>><<set $leftactiondefault to "leftcoverface">><<set $rightactiondefault to "rightcoverface">> <</if>> <<elseif $leftaction is "leftcoverface">> <<if $uncomfortable.hypnosis is false and $hypnosis_traits.cover gte random(1,5)>> <<hypnosisText 'You intend to cover your face, but a lewd thought intrudes <span class="lewd">and your mind immediately accepts it.</span> You stroke your face with your left hand, winking and teasing around your lips.'>> <<submission 1>><<set $speechcamerapose to 1>><<hypnotised 1>> <<elseif $hypnosis_traits.cover gte 1 and $willpower lt random(1, (200 * $hypnosis_traits.cover))>> <<hypnosisText 'You intend to cover your face, <span class="pink">but the thought is snatched from your mind and replaced with another.</span> You stroke your face with your left hand, winking and teasing around your lips.'>> <<submission 1>><<set $speechcamerapose to 1>><<hypnotised 1>><<willpower 1>> <<else>> You <<if $hypnosis_traits.cover gte 1>> <span class="green">resist intrusive thoughts</span> and <</if>> cover your face with your left hand. <<set $speechcoverface to 1>><<set $face to "covered">><<neutral 1>> <<set $leftaction to 0>><<set $leftactiondefault to "leftcoverface">> <</if>> <<elseif $rightaction is "rightcoverface">> <<if $uncomfortable.hypnosis is false and $hypnosis_traits.cover gte random(1,5)>> <<hypnosisText 'You intend to cover your face, but a lewd thought intrudes <span class="lewd">and your mind immediately accepts it.</span> You stroke your face with your right hand, winking and teasing around your lips.'>> <<submission 1>><<set $speechcamerapose to 1>><<hypnotised 1>> <<elseif $hypnosis_traits.cover gte 1 and $willpower lt random(1, (200 * $hypnosis_traits.cover))>> <<hypnosisText 'You intend to cover your face, <span class="pink">but the thought is snatched from your mind and replaced with another.</span> You stroke your face with your right hand, winking and teasing around your lips.'>> <<submission 1>><<set $speechcamerapose to 1>><<hypnotised 1>><<willpower 1>> <<else>> You <<if $hypnosis_traits.cover gte 1>> <span class="green">resist intrusive thoughts</span> and <</if>> cover your face with your right hand. <<set $speechcoverface to 1>><<set $face to "covered">><<neutral 1>> <<set $rightaction to 0>><<set $rightactiondefault to "rightcoverface">> <</if>> <</if>> /* Vagina Cover */ <<if $leftaction is "leftcovervaginalewd" and $rightaction is "rightcovervaginalewd">> <<effectsCoverVagina "both" "lewd">> <<elseif $leftaction is "leftcovervaginalewd">> <<effectsCoverVagina "left" "lewd">> <<elseif $rightaction is "rightcovervaginalewd">> <<effectsCoverVagina "right" "lewd">> <</if>> <<if $leftaction is "leftcovervaginameek" and $rightaction is "rightcovervaginameek">> <<effectsCoverVagina "both" "meek">> <<elseif $leftaction is "leftcovervaginameek">> <<effectsCoverVagina "left" "meek">> <<elseif $rightaction is "rightcovervaginameek">> <<effectsCoverVagina "right" "meek">> <</if>> <<if $leftaction is "leftcovervagina" and $rightaction is "rightcovervagina">> <<effectsCoverVagina "both">> <<elseif $leftaction is "leftcovervagina">> <<effectsCoverVagina "left">> <<elseif $rightaction is "rightcovervagina">> <<effectsCoverVagina "right">> <</if>> /* Penis Cover */ <<if $leftaction is "leftcoverpenislewd" and $rightaction is "rightcoverpenislewd">> <<effectsCoverPenis "both" "lewd">> <<elseif $leftaction is "leftcoverpenislewd">> <<effectsCoverPenis "left" "lewd">> <<elseif $rightaction is "rightcoverpenislewd">> <<effectsCoverPenis "right" "lewd">> <</if>> <<if $leftaction is "leftcoverpenismeek" and $rightaction is "rightcoverpenismeek">> <<effectsCoverPenis "both" "meek">> <<elseif $leftaction is "leftcoverpenismeek">> <<effectsCoverPenis "left" "meek">> <<elseif $rightaction is "rightcoverpenismeek">> <<effectsCoverPenis "right" "meek">> <</if>> <<if $leftaction is "leftcoverpenis" and $rightaction is "rightcoverpenis">> <<effectsCoverPenis "both">> <<elseif $leftaction is "leftcoverpenis">> <<effectsCoverPenis "left">> <<elseif $rightaction is "rightcoverpenis">> <<effectsCoverPenis "right">> <</if>> /* Anus Cover */ <<if $leftaction is "leftcoveranuslewd" and $rightaction is "rightcoveranuslewd">> <<effectsCoverAnus "both" "lewd">> <<elseif $leftaction is "leftcoveranuslewd">> <<effectsCoverAnus "left" "lewd">> <<elseif $rightaction is "rightcoveranuslewd">> <<effectsCoverAnus "right" "lewd">> <</if>> <<if $leftaction is "leftcoveranusmeek" and $rightaction is "rightcoveranusmeek">> <<effectsCoverAnus "both" "meek">> <<elseif $leftaction is "leftcoveranusmeek">> <<effectsCoverAnus "left" "meek">> <<elseif $rightaction is "rightcoveranusmeek">> <<effectsCoverAnus "right" "meek">> <</if>> <<if $leftaction is "leftcoveranus" and $rightaction is "rightcoveranus">> <<effectsCoverAnus "both">> <<elseif $leftaction is "leftcoveranus">> <<effectsCoverAnus "left">> <<elseif $rightaction is "rightcoveranus">> <<effectsCoverAnus "right">> <</if>> <<if $leftaction is "leftstopvagina" and $rightaction is "rightstopvagina">> <<set $leftaction to 0>><<set $rightaction to 0>><<set $leftactiondefault to "leftstopvagina">><<set $rightactiondefault to "rightstopvagina">> You stop shielding your pussy with your hands. <<set $leftarm to 0>><<set $rightarm to 0>><<set $vaginause to 0>><<meek 2>> <</if>> <<if $leftaction is "leftstopcoverpenis" and $rightaction is "rightstopcoverpenis">> <<set $leftaction to 0>><<set $rightaction to 0>><<set $leftactiondefault to "leftstopcoverpenis">><<set $rightactiondefault to "rightstopcoverpenis">> You stop shielding your penis with your hands. <<set $leftarm to 0>><<set $rightarm to 0>><<set $penisuse to 0>><<meek 2>> <</if>> <<if $leftaction is "leftstopanus" and $rightaction is "rightstopanus">> <<set $leftaction to 0>><<set $rightaction to 0>><<set $leftactiondefault to "leftstopanus">><<set $rightactiondefault to "rightstopanus">> You stop shielding your <<bottom>> with your hands. <<set $leftarm to 0>><<set $rightarm to 0>><<set $anususe to 0>><<meek 2>> <</if>> <<if $leftaction is "leftstopvagina">> <<set $leftaction to 0>><<set $leftactiondefault to "leftstopvagina">> You stop covering your pussy with your left hand. <<set $leftarm to 0>> <<if $rightarm isnot "vagina">> <<set $vaginause to 0>> <</if>><<meek 1>> <</if>> <<if $leftaction is "leftstopcoverpenis">> <<set $leftaction to 0>><<set $leftactiondefault to "leftstopcoverpenis">> You stop covering your penis with your left hand. <<set $leftarm to 0>> <<if $rightarm isnot "coverpenis">> <<set $penisuse to 0>> <</if>> <<meek 1>> <</if>> <<if $leftaction is "leftstopanus">> <<set $leftaction to 0>><<set $leftactiondefault to "leftstopanus">> You stop covering your <<bottom>> with your left hand. <<set $leftarm to 0>> <<if $rightarm isnot "anus">> <<set $anususe to 0>> <</if>> <<meek 1>> <</if>> <<if $rightaction is "rightstopvagina">> <<set $rightaction to 0>><<set $rightactiondefault to "rightstopvagina">> You stop covering your vagina with your right hand. <<set $rightarm to 0>> <<if $leftarm isnot "vagina">> <<set $vaginause to 0>> <</if>> <<meek 1>> <</if>> <<if $rightaction is "rightstopcoverpenis">> <<set $rightaction to 0>><<set $rightactiondefault to "rightstopcoverpenis">> You stop covering your penis with your right hand. <<set $rightarm to 0>> <<if $leftarm isnot "coverpenis">> <<set $penisuse to 0>> <</if>> <<meek 1>> <</if>> <<if $rightaction is "rightstopanus">> <<set $rightaction to 0>><<set $rightactiondefault to "rightstopanus">> You stop covering you anus with your right hand. <<set $rightarm to 0>> <<if $leftarm isnot "anus">> <<set $anususe to 0>> <</if>> <<meek 1>> <</if>> <<if $leftaction is "leftclit">> <<set $leftaction to 0>><<set $leftactiondefault to "leftclit">><<handskilluse>> <<if combatSkillCheck("hand", $lefttarget)>> <<actionsclitstroke $lefttarget>><<submission 10>><<set $speechhandjobvagina to 1>> <<elseif $NPCList[$lefttarget].vagina is "leftarm">> <<set $leftarm to 0>><<set $leftactiondefault to "leftplay">> <<set $NPCList[$lefttarget].vagina to 0>><<personselect $lefttarget>> <span class="blue">You stroke <<hisselect $lefttarget>> clit, but <<he>> <<if $enemytype isnot "beast">>slaps your hand away<<else>>shifts way from you and growls<</if>>.</span> <</if>> <</if>> <<if $rightaction is "rightclit">> <<set $rightaction to 0>><<set $rightactiondefault to "rightclit">><<handskilluse>> <<if combatSkillCheck("hand", $righttarget)>> <<actionsclitstroke $righttarget>><<submission 10>><<set $speechhandjobvagina to 1>> <<elseif $NPCList[$righttarget].vagina is "rightarm">> <<set $rightarm to 0>><<set $rightactiondefault to "rightplay">> <<set $NPCList[$righttarget].vagina to 0>><<personselect $righttarget>> <span class="blue">You stroke <<hisselect $righttarget>> clit, but <<he>> <<if $enemytype isnot "beast">>slaps your hand away<<else>>shifts way from you and growls<</if>>.</span> <</if>> <</if>> <<if $leftaction is "leftothervaginastop" and $NPCList[$lefttarget].vagina is "leftarm">> <<set $leftaction to 0>><<set $leftactiondefault to "leftothervaginastop">> <<set $NPCList[$lefttarget].vagina to 0>><<set $leftarm to 0>> <span class="blue">You move your left hand away from <<hisselect $lefttarget>> pussy.</span> <</if>> <<if $rightaction is "rightothervaginastop" and $NPCList[$righttarget].vagina is "rightarm">> <<set $rightaction to 0>><<set $rightactiondefault to "rightothervaginastop">> <<set $NPCList[$righttarget].vagina to 0>><<set $rightarm to 0>> <span class="blue">You move your right hand away from <<hisselect $righttarget>> pussy.</span> <</if>> <<if $leftaction is "leftplay">> <<set $leftaction to 0>><<handskilluse>><<set $leftactiondefault to "leftplay">><<combatpromiscuity3>> <<if combatSkillCheck("hand", $lefttarget)>> <<submission 1>><<handstat>> <<if $NPCList[$lefttarget].vagina is 0>> <<set $leftactiondefault to "leftclit">><<set $NPCList[$lefttarget].vagina to "leftarm">><<set $leftarm to "othervagina">><<personselect $lefttarget>> <span class="lblue">You <<handtext>> grab <<hisselect $lefttarget>> pussy<<if $NPCList[$lefttarget].chastity.vagina.includes("chastity")>> through <<his>> $NPCList[$lefttarget].chastity.vagina<</if>> with your left hand.</span> <<else>> <span class="blue">You try to grab <<hisselect $lefttarget>> pussy with your left hand, but the entrance is already occupied.</span> <</if>> <<else>> You try to grab <<hisselect $lefttarget>> pussy with your left hand, but <<he>> moves it away. <</if>> <</if>> <<if $rightaction is "rightplay">> <<set $rightaction to 0>><<handskilluse>><<set $rightactiondefault to "rightplay">><<combatpromiscuity3>> <<if combatSkillCheck("hand", $righttarget)>> <<submission 1>><<handstat>> <<if $NPCList[$righttarget].vagina is 0>> <<set $rightactiondefault to "rightclit">><<set $NPCList[$righttarget].vagina to "rightarm">><<set $rightarm to "othervagina">><<personselect $righttarget>> <span class="lblue">You <<handtext>> grab <<hisselect $righttarget>> pussy<<if $NPCList[$righttarget].chastity.vagina.includes("chastity")>> through <<his>> $NPCList[$righttarget].chastity.vagina<</if>> with your right hand.</span> <<else>> <span class="blue">You try to grab <<hisselect $righttarget>> pussy with your right hand, but the entrance is already occupied.</span> <</if>> <<else>> You try to grab <<hisselect $righttarget>> pussy with your right hand, but <<he>> moves it away. <</if>> <</if>> <<if $leftaction is "leftunderpull" and $rightaction is "rightunderpull">> <<set $leftaction to 0>><<set $rightaction to 0>><<brat 1>><<set $leftactiondefault to "leftunderpull">><<set $rightactiondefault to "rightunderpull">> <<if $worn.under_lower.name is "naked">> You clutch the tattered remains of your clothing. <<brat 2>> <<else>> <<for _j = 0; _j lt $enemynomax; _j++>> <<if $NPCList[_j].lefthand is "underlowerclothes" or $NPCList[_j].righthand is "underlowerclothes" or (_j is 0 and $NPCList[_j].mouth is "underlowerclothes")>> You struggle for control of your $worn.under_lower.name. <<brat 2>><<set $underlowerstruggle to 1>> <<break>> <</if>> <</for>> <<if $underlowerstruggle is 0>> <<if $worn.under_lower.state is "ankles">> <<set $worn.under_lower.state to "knees">> You pull your $worn.under_lower.name up to your knees. <<elseif $worn.under_lower.state is "knees">> <<set $worn.under_lower.state to "thighs">> You pull your $worn.under_lower.name up to your thighs. <<elseif $worn.under_lower.state is "thighs">> <<if $vaginause is 0 and $anususe is 0>> You pull your $worn.under_lower.name up to your waist. <<set $worn.under_lower.state to "waist">><<set $worn.under_lower.exposed to setup.clothes.under_lower[clothesIndex('under_lower', $worn.under_lower)].exposed_base>> <<set $worn.under_lower.vagina_exposed to setup.clothes.under_lower[clothesIndex('under_lower', $worn.under_lower)].vagina_exposed_base>> <<set $worn.under_lower.anus_exposed to setup.clothes.under_lower[clothesIndex('under_lower', $worn.under_lower)].anus_exposed_base>> <<else>> You try to pull up your $worn.under_lower.name, but something is in the way. <</if>> <</if>> <</if>> <</if>> <</if>> <<if $leftaction is "leftunderpull">> <<set $leftaction to 0>><<brat 1>><<set $leftactiondefault to "leftunderpull">> <<if $worn.under_lower.name is "naked">> You clutch the tattered remains of your clothing. <<else>> <<if !$NPCList.some(npc => npc.lefthand !== "underlowerclothes" || npc.righthand !== "underlowerclothes" || npc.mouth !== "underlowerclothes")>> <<if $worn.under_lower.state is "ankles">> <<set $worn.under_lower.state to "knees">> You pull your $worn.under_lower.name up to your knees. <<elseif $worn.under_lower.state is "knees">> <<set $worn.under_lower.state to "thighs">> You pull your $worn.under_lower.name up to your thighs. <<elseif $worn.under_lower.state is "thighs">> <<if $vaginause is 0 and $anususe is 0>> You pull your $worn.under_lower.name up to your waist. <<set $worn.under_lower.state to "waist">><<set $worn.under_lower.exposed to setup.clothes.under_lower[clothesIndex('under_lower', $worn.under_lower)].exposed_base>> <<set $worn.under_lower.vagina_exposed to setup.clothes.under_lower[clothesIndex('under_lower', $worn.under_lower)].vagina_exposed_base>> <<set $worn.under_lower.anus_exposed to setup.clothes.under_lower[clothesIndex('under_lower', $worn.under_lower)].anus_exposed_base>> <<else>> You try to pull up your $worn.under_lower.name, but something is in the way. <</if>> <</if>> <<else>> You try to pull up your $worn.under_lower.name, but one hand won't be enough. <<brat 1>> <</if>> <</if>> <</if>> <<if $rightaction is "rightunderpull">> <<set $rightaction to 0>><<brat 1>><<set $rightactiondefault to "rightunderpull">> <<if $worn.under_lower.name is "naked">> You clutch the tattered remains of your clothing. <<else>> <<if !$NPCList.some(npc => npc.lefthand !== "underlowerclothes" || npc.righthand !== "underlowerclothes" || npc.mouth !== "underlowerclothes")>> <<if $worn.under_lower.state is "ankles">> <<set $worn.under_lower.state to "knees">> You pull your $worn.under_lower.name up to your knees. <<elseif $worn.under_lower.state is "knees">> <<set $worn.under_lower.state to "thighs">> You pull your $worn.under_lower.name up to your thighs. <<elseif $worn.under_lower.state is "thighs">> <<if $vaginause is 0 and $anususe is 0>> You pull your $worn.under_lower.name up to your waist. <<set $worn.under_lower.state to "waist">><<set $worn.under_lower.exposed to setup.clothes.under_lower[clothesIndex('under_lower', $worn.under_lower)].exposed_base>> <<set $worn.under_lower.vagina_exposed to setup.clothes.under_lower[clothesIndex('under_lower', $worn.under_lower)].vagina_exposed_base>> <<set $worn.under_lower.anus_exposed to setup.clothes.under_lower[clothesIndex('under_lower', $worn.under_lower)].anus_exposed_base>> <<else>> You try to pull up your $worn.under_lower.name, but one hand won't be enough. <</if>> <</if>> <<else>> You try to pull up your $worn.under_lower.name, but you aren't strong enough. <<brat 1>> <</if>> <</if>> <</if>> <<if $leftaction is "leftskirtpull" and $rightaction is "rightskirtpull">> <<set $leftaction to 0>><<set $rightaction to 0>><<set $leftactiondefault to "leftskirtpull">><<set $rightactiondefault to "rightskirtpull">><<brat 1>> <<if $worn.lower.name is "naked">> You clutch the tattered remains of your clothing. <<else>> You pull your $worn.lower.name down with both hands, covering your crotch. <<set $worn.lower.skirt_down to 1>><<set $worn.lower.vagina_exposed to setup.clothes.lower[clothesIndex('lower', $worn.lower)].vagina_exposed_base>> <<set $worn.lower.anus_exposed to setup.clothes.lower[clothesIndex('lower', $worn.lower)].anus_exposed_base>><<set $worn.lower.exposed to setup.clothes.lower[clothesIndex('lower', $worn.lower)].exposed_base>> <</if>> <</if>> <<if $leftaction is "leftskirtpull">> <<set $leftaction to 0>><<set $leftactiondefault to "leftskirtpull">><<brat 1>> <<if $worn.lower.name is "naked">> You clutch the tattered remains of your clothing. <<else>> You pull your $worn.lower.name back down, covering your crotch. <<set $worn.lower.skirt_down to 1>><<set $worn.lower.vagina_exposed to setup.clothes.lower[clothesIndex('lower', $worn.lower)].vagina_exposed_base>> <<set $worn.lower.anus_exposed to setup.clothes.lower[clothesIndex('lower', $worn.lower)].anus_exposed_base>><<set $worn.lower.exposed to setup.clothes.lower[clothesIndex('lower', $worn.lower)].exposed_base>> <</if>> <</if>> <<if $rightaction is "rightskirtpull">> <<set $rightaction to 0>><<set $rightactiondefault to "rightskirtpull">><<brat 1>> <<if $worn.lower.name is "naked">> You clutch the tattered remains of your clothing. <<else>> You pull your $worn.lower.name back down, covering your crotch. <<set $worn.lower.skirt_down to 1>><<set $worn.lower.vagina_exposed to setup.clothes.lower[clothesIndex('lower', $worn.lower)].vagina_exposed_base>> <<set $worn.lower.anus_exposed to setup.clothes.lower[clothesIndex('lower', $worn.lower)].anus_exposed_base>><<set $worn.lower.exposed to setup.clothes.lower[clothesIndex('lower', $worn.lower)].exposed_base>> <</if>> <</if>> <<if $leftaction is "leftlowerpull" or $rightaction is "rightlowerpull">> <<set $_strength to 0>> <<if $leftaction is "leftlowerpull">> <<set $leftaction to 0>><<set $leftactiondefault to "leftlowerpull">><<set $_strength++>> <</if>> <<if $rightaction is "rightlowerpull">> <<set $rightaction to 0>><<set $rightactiondefault to "rightlowerpull">><<set $_strength++>> <</if>> <<brat 1>> <<if $worn.lower.name is "naked">> You clutch the tattered remains of your clothing. <<brat 2>> <<else>> <<if $underlowerstruggle is 0>> <<for _j = 0; _j lt $enemynomax; _j++>> <<if $NPCList[_j].lefthand is "lowerclothes" or $NPCList[_j].righthand is "lowerclothes" or (_j is 0 and $NPCList[_j].mouth is "lowerclothes")>> <<if $_strength is 2>> You struggle for control of your $worn.lower.name. <<brat 2>><<set $lowerstruggle to 1>><<set _lowerpull to "failed">> <<break>> <<else>> You try to pull up your $worn.lower.name, but you aren't strong enough. <<brat 1>><<set _lowerpull to "failed">> <<break>> <</if>> <</if>> <</for>> <<if _lowerpull isnot "failed">> <<if $vaginause isnot 0 and $vaginause isnot "none">> Your $worn.lower.name hang loosely, but you can't adjust <<lowerit>> while your <<pussy>> is threatened. <<elseif $penisuse isnot 0 and $penisuse isnot "none">> Your $worn.lower.name hang loosely, but you can't adjust <<lowerit>> while your <<penis>> is threatened. <<elseif $anususe isnot 0>> Your $worn.lower.name hang loosely, but you can't adjust <<lowerit>> while your <<bottom>> is threatened. <<else>> You fix your <<if $worn.over_lower.exposed gt 0>> $worn.lower.name, concealing your <<if $worn.under_lower.exposed gte 1>> <<genitals>>. <<else>> $worn.under_lower.name. <</if>> <<else>> $worn.lower.name. <</if>> <<brat 5>><<set $worn.lower.state to setup.clothes.lower[clothesIndex('lower', $worn.lower)].state_base>> <<if setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1>><<set $worn.lower.skirt_down to 1>><</if>> <<set $worn.lower.vagina_exposed to setup.clothes.lower[clothesIndex('lower', $worn.lower)].vagina_exposed_base>> <<set $worn.lower.anus_exposed to setup.clothes.lower[clothesIndex('lower', $worn.lower)].anus_exposed_base>><<set $worn.lower.exposed to setup.clothes.lower[clothesIndex('lower', $worn.lower)].exposed_base>> <</if>> <</if>> <</if>> <</if>> <</if>> <<if $leftaction is "leftoverlowerpull" or $rightaction is "rightoverlowerpull">> <<set $_strength to 0>> <<if $leftaction is "leftoverlowerpull">> <<set $leftaction to 0>><<set $leftactiondefault to "leftoverlowerpull">><<set $_strength++>> <</if>> <<if $rightaction is "rightoverlowerpull">> <<set $rightaction to 0>><<set $rightactiondefault to "rightoverlowerpull">><<set $_strength++>> <</if>> <<brat 1>> <<if $worn.over_lower.name is "naked">> You clutch the tattered remains of your clothing. <<brat 2>> <<else>> <<if $underlowerstruggle is 0>> <<for _j = 0; _j lt $enemynomax; _j++>> <<if $NPCList[_j].lefthand is "overlowerclothes" or $NPCList[_j].righthand is "overlowerclothes" or (_j is 0 and $NPCList[_j].mouth is "overlowerclothes")>> <<if $_strength is 2>> You struggle for control of your $worn.over_lower.name. <<brat 2>><<set $overlowerstruggle to 1>><<set _overlowerpull to "failed">> <<break>> <<else>> You try to pull up your $worn.over_lower.name, but you aren't strong enough. <<brat 1>><<set _overlowerpull to "failed">> <<break>> <</if>> <</if>> <</for>> <<if _overlowerpull isnot "failed">> <<if $vaginause isnot 0 and $vaginause isnot "none">> Your $worn.over_lower.name hang loosely, but you can't adjust <<overlowerit>> while your <<pussy>> is threatened. <<elseif $penisuse isnot 0 and $penisuse isnot "none">> Your $worn.over_lower.name hang loosely, but you can't adjust <<overlowerit>> while your <<penis>> is threatened. <<elseif $anususe isnot 0>> Your $worn.over_lower.name hang loosely, but you can't adjust <<overlowerit>> while your <<bottom>> is threatened. <<else>> You fix your <<if $worn.lower.exposed gt 0>> $worn.over_lower.name, concealing your <<if $worn.under_lower.exposed gte 1>> <<genitals>>. <<else>> $worn.under_lower.name. <</if>> <<else>> $worn.over_lower.name. <</if>> <<brat 5>><<set $worn.over_lower.state to setup.clothes.over_lower[clothesIndex('over_lower', $worn.over_lower)].state_base>> <<if setup.clothes.over_lower[clothesIndex('over_lower', $worn.over_lower)].skirt is 1>><<set $worn.over_lower.skirt_down to 1>><</if>> <<set $worn.over_lower.vagina_exposed to setup.clothes.over_lower[clothesIndex('over_lower', $worn.over_lower)].vagina_exposed_base>> <<set $worn.over_lower.anus_exposed to setup.clothes.over_lower[clothesIndex('over_lower', $worn.over_lower)].anus_exposed_base>><<set $worn.over_lower.exposed to setup.clothes.over_lower[clothesIndex('over_lower', $worn.over_lower)].exposed_base>> <</if>> <</if>> <</if>> <</if>> <</if>> <<if $leftaction is "leftupperpull" or $rightaction is "rightupperpull">> <<set $_strength to 0>> <<if $leftaction is "leftupperpull">> <<set $leftaction to 0>><<set $leftactiondefault to "leftupperpull">><<set $_strength++>> <</if>> <<if $rightaction is "rightupperpull">> <<set $rightaction to 0>><<set $rightactiondefault to "rightupperpull">><<set $_strength++>> <</if>> <<brat 1>> <<if $worn.upper.name is "naked">> You clutch the tattered remains of your clothing. <<else>> <<for _j = 0; _j lt $enemynomax; _j++>> <<if $NPCList[_j].lefthand is "upperclothes" or $NPCList[_j].righthand is "upperclothes" or (_j is 0 and $NPCList[_j].mouth is "upperclothes")>> <<if $_strength is 2>> You struggle for control of your $worn.upper.name. <<brat 2>><<set $upperstruggle to 1>><<set _upperpull to "failed">> <<break>> <<else>> You struggle for your $worn.upper.name, but you aren't strong enough. <<brat 1>><<set _upperpull to "failed">> <<break>> <</if>> <</if>> <</for>> <<if _upperpull isnot "failed">> <<if $vaginause isnot 0 and $vaginause isnot "none">> Your $worn.lower.name hang loosely, but you can't adjust <<lowerit>> while your <<pussy>> is threatened. <<elseif $penisuse isnot 0 and $penisuse isnot "none">> Your $worn.lower.name hang loosely, but you can't adjust <<lowerit>> while your <<penis>> is threatened. <<elseif $anususe isnot 0>> Your $worn.lower.name hang loosely, but you can't adjust <<lowerit>> while your <<bottom>> is threatened. <<elseif $worn.lower.set is $worn.upper.set>> You fix your <<if $worn.over_upper.exposed gt 0 or $worn.over_lower.exposed gt 0>> $worn.upper.name, concealing your <<if $worn.over_upper.exposed gt 0>><<breasts>> <<if $worn.over_lower.exposed gt 0>>and<</if>><</if>> <<if $worn.over_lower.exposed is 0>> <<elseif $worn.under_lower.exposed gte 1>> <<genitals>>. <<else>> $worn.under_lower.name. <</if>> <<else>> $worn.upper.name. <</if>> <<brat 5>><<set $worn.upper.state to setup.clothes.upper[clothesIndex('upper', $worn.upper)].state_base>><<set $worn.upper.state_top to setup.clothes.upper[clothesIndex('upper', $worn.upper)].state_top_base>> <<set $worn.upper.exposed to setup.clothes.upper[clothesIndex('upper', $worn.upper)].exposed_base>><<set $worn.lower.state to setup.clothes.lower[clothesIndex('lower', $worn.lower)].state_base>> <<if setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1>><<set $worn.lower.skirt_down to 1>><</if>><<set $worn.lower.vagina_exposed to setup.clothes.lower[clothesIndex('lower', $worn.lower)].vagina_exposed_base>> <<set $worn.lower.anus_exposed to setup.clothes.lower[clothesIndex('lower', $worn.lower)].anus_exposed_base>><<set $worn.lower.exposed to setup.clothes.lower[clothesIndex('lower', $worn.lower)].exposed_base>> <<else>> You fix your $worn.upper.name, concealing your <<breasts>>. <<brat 5>><<set $worn.upper.state to setup.clothes.upper[clothesIndex('upper', $worn.upper)].state_base>> <<set $worn.upper.state_top to setup.clothes.upper[clothesIndex('upper', $worn.upper)].state_top_base>><<set $worn.upper.exposed to setup.clothes.upper[clothesIndex('upper', $worn.upper)].exposed_base>> <</if>> <</if>> <</if>> <</if>> <<if $leftaction is "leftoverupperpull" or $rightaction is "rightoverupperpull">> <<set $_strength to 0>> <<if $leftaction is "leftoverupperpull">> <<set $leftaction to 0>><<set $leftactiondefault to "leftoverupperpull">><<set $_strength++>> <</if>> <<if $rightaction is "rightoverupperpull">> <<set $rightaction to 0>><<set $rightactiondefault to "rightoverupperpull">><<set $_strength++>> <</if>> <<brat 1>> <<if $worn.over_upper.name is "naked">> You clutch the tattered remains of your clothing. <<else>> <<for _j = 0; _j lt $enemynomax; _j++>> <<if $NPCList[_j].lefthand is "overupperclothes" or $NPCList[_j].righthand is "overupperclothes" or (_j is 0 and $NPCList[_j].mouth is "overupperclothes")>> <<if $_strength is 2>> You struggle for control of your $worn.over_upper.name. <<brat 2>><<set $overupperstruggle to 1>><<set _overupperpull to "failed">> <<break>> <<else>> You struggle for your $worn.over_upper.name, but you aren't strong enough. <<brat 1>><<set _overupperpull to "failed">> <<break>> <</if>> <</if>> <</for>> <<if _overupperpull isnot "failed">> <<if $vaginause isnot 0 and $vaginause isnot "none">> Your $worn.over_lower.name hang loosely, but you can't adjust <<overlowerit>> while your <<pussy>> is threatened. <<elseif $penisuse isnot 0 and $penisuse isnot "none">> Your $worn.over_lower.name hang loosely, but you can't adjust <<overlowerit>> while your <<penis>> is threatened. <<elseif $anususe isnot 0>> Your $worn.over_lower.name hang loosely, but you can't adjust <<overlowerit>> while your <<bottom>> is threatened. <<elseif $worn.over_lower.set is $worn.over_upper.set>> You fix your <<if $worn.upper.exposed gt 0 or $worn.lower.exposed gt 0>> $worn.over_upper.name, concealing your <<if $worn.upper.exposed gt 0>><<breasts>> <<if $worn.lower.exposed gt 0>>and<</if>><</if>> <<if $worn.lower.exposed is 0>> <<elseif $worn.under_lower.exposed gte 1>> <<genitals>>. <<else>> $worn.under_lower.name. <</if>> <<else>> $worn.over_upper.name. <</if>> <<brat 5>><<set $worn.over_upper.state to setup.clothes.over_upper[clothesIndex('over_upper', $worn.over_upper)].state_base>><<set $worn.over_upper.state_top to setup.clothes.over_upper[clothesIndex('over_upper', $worn.over_upper)].state_top_base>> <<set $worn.over_upper.exposed to setup.clothes.over_upper[clothesIndex('over_upper', $worn.over_upper)].exposed_base>><<set $worn.over_lower.state to setup.clothes.over_lower[clothesIndex('over_lower', $worn.over_lower)].state_base>> <<if setup.clothes.over_lower[clothesIndex('over_lower', $worn.over_lower)].skirt is 1>><<set $worn.over_lower.skirt_down to 1>><</if>><<set $worn.over_lower.vagina_exposed to setup.clothes.over_lower[clothesIndex('over_lower', $worn.over_lower)].vagina_exposed_base>> <<set $worn.over_lower.anus_exposed to setup.clothes.over_lower[clothesIndex('over_lower', $worn.over_lower)].anus_exposed_base>><<set $worn.over_lower.exposed to setup.clothes.over_lower[clothesIndex('over_lower', $worn.over_lower)].exposed_base>> <<else>> You fix your $worn.over_upper.name<<if $worn.upper.exposed gt 0>>, concealing your <<breasts>><</if>>. <<brat 5>><<set $worn.over_upper.state to setup.clothes.over_upper[clothesIndex('over_upper', $worn.over_upper)].state_base>> <<set $worn.over_upper.state_top to setup.clothes.over_upper[clothesIndex('over_upper', $worn.over_upper)].state_top_base>><<set $worn.over_upper.exposed to setup.clothes.over_upper[clothesIndex('over_upper', $worn.over_upper)].exposed_base>> <</if>> <</if>> <</if>> <</if>> <<unset $keepchoke>> <<if $leftaction is "keepchoke" or $rightaction is "keepchoke">> <<if $neckuse is "hand">> <<if $leftaction is "keepchoke">> <<personselect $lefttarget>> <<else>> <<personselect $righttarget>> <</if>> <<if $leftactioncarry is "keepchoke" or $rightactioncarry is "keepchoke">> You keep pressing <<his>> hand against your neck. <<else>> You reach out to <<his>> hand holding your neck and push it harder against your soft skin. <span class="sub"><<His>> grip tightens around your throat.</span> <</if>> <</if>> <<if $leftaction is "keepchoke">> <<set $leftaction to 0>><<set $leftactiondefault to "keepchoke">><<submission 1>> <</if>> <<if $rightaction is "keepchoke">> <<set $rightaction to 0>><<set $rightactiondefault to "keepchoke">><<submission 1>> <</if>> <<set $keepchoke = 1>> <</if>> <<if ["stopchoke", "stopchokenoncon"].includesAny($leftaction, $rightaction)>> <<if $consensual is 1>> <<if ["stopchoke", "stopchokenoncon"].includes($leftaction)>> <<set $leftaction to 0>><<set $leftactiondefault to "stopchoke">> <<brat 1 $lefttarget>><<personselect $lefttarget>> <</if>> <<if ["stopchoke", "stopchokenoncon"].includes($rightaction)>> <<set $rightaction to 0>><<set $rightactiondefault to "stopchoke">> <<brat 1 $righttarget>><<personselect $righttarget>> <</if>> <<if $neckuse is "hand">> You reach out to <<his>> hand on your neck and gently pull it away. <<He>> doesn't resist. <<unset $neckuse>> <<if $NPCList[_n].lefthand == "throat">> <<set $NPCList[_n].lefthand = 0>> <</if>> <<if $NPCList[_n].righthand == "throat">> <<set $NPCList[_n].righthand = 0>> <</if>> <</if>> <<else>> <<set _handsCount = 0>> <<if ["stopchoke", "stopchokenoncon"].includes($leftaction)>> <<set $leftaction to 0>><<set $leftactiondefault to "stopchokenoncon">> <<defiance 2 $lefttarget>><<personselect $lefttarget>> <<set _handsCount++>> <</if>> <<if ["stopchoke", "stopchokenoncon"].includes($rightaction)>> <<set $rightaction to 0>><<set $rightactiondefault to "stopchokenoncon">> <<defiance 2 $righttarget>><<personselect $righttarget>> <<set _handsCount++>> <</if>> <<if $neckuse is "hand">> You dig your nails into <<his>> hand around your throat and pull it. <<defiance 2 _n>><<set $speechstruggle to 1>> <<if currentSkillValue('physique') gte random(1, 60000/_handsCount)>> <span class="teal">You manage to rip <<his>> hand off your throat.</span> <<defiance 5 _n>> <<unset $neckuse>> <<gaspair>> <<if $leftactiondefault == "stopchokenoncon">> <<set $leftactiondefault to "rest">> <</if>> <<if $rightactiondefault == "stopchokenoncon">> <<set $rightactiondefault to "rest">> <</if>> <<if $NPCList[_n].lefthand == "throat">> <<set $NPCList[_n].lefthand = 0>> <</if>> <<if $NPCList[_n].righthand == "throat">> <<set $NPCList[_n].righthand = 0>> <</if>> <<elseif currentSkillValue('physique') gte random(1, 40000/_handsCount)>> <<His>> hand doesn't move, however <span class="blue">you manage to gasp for a bit of air when <<his>> grip weakens momentarily</span>. <<oxygen 200>> <<else>> <span class="purple"><<His>> hand remains on your throat.</span> <</if>> <</if>> <</if>> <</if>> <<if $rightaction is "rightUndressOther" and $leftaction is "leftUndressOther" and $lefttarget is $righttarget and $undressLeftTarget is $undressRightTarget>> <<if $undressLeftTarget is "rest">> <<set $leftaction to 0>><<set $rightaction to 0>><<set $leftactiondefault to "rest">><<set $rightactiondefault to "rest">> You rest your arms. <<else>> <<set $rightaction to 0>><<set $leftaction to 0>><<set $rightactiondefault to "rightUndressOther">><<set $leftactiondefault to "leftUndressOther">> <<handskilluse>><<combatpromiscuity2>><<brat 2 $righttarget>> <<set $_npc to $NPCList[$righttarget]>><<set $_clothesTarget to $undressRightTarget>> <<personselect $righttarget>> <<if combatSkillCheck("hand", $lefttarget, $NPCList[$lefttarget].fullDescription, 700, $_npc.clothes[$_clothesTarget].integrity)>> <!-- Using a switch to make it easier to add more NPC clothes types later --> <<switch $_clothesTarget>> <<case "upper">> <span class="lblue">You <<handtext>> <<npcUndressText $_npc $_clothesTarget>> with both hands, <<npcRevealText $_npc $_clothesTarget>>.</span> <<set $_npc.chest to 0>> <<case "lower">> <span class="lblue">You <<handtext>> <<npcUndressText $_npc $_clothesTarget>> with both hands, <<npcRevealText $_npc $_clothesTarget>>.</span> <<if $_npc.fullDescription is "Sydney">> <<sydneyExpose>> <</if>> <<if $_npc.penis is "clothed">> <<npcGenitalReaction $_npc>> <<set $_npc.penis to 0>> <</if>> <<if $_npc.vagina is "clothed">> <<set $_npc.vagina to 0>> <</if>> <<default>> You try to undress <<him>>, but grab nothing but the air. <span class="red">Improper clothes target: $_clothesTarget. Please report this bug.</span> <</switch>> <<else>> You try to <<npcUndressText $_npc $_clothesTarget>>, but <<he>> holds on to <<his>> clothes. <<set $_npc.clothes[$_clothesTarget].integrity -= Math.floor((currentSkillValue("handskill") / 100) * 1.5)>> <</if>> <</if>> <<unset $undressLeftTarget>><<unset $undressRightTarget>> <</if>> <<if $rightaction is "rightUndressOther">> <<if $undressRightTarget is "rest">> <<set $rightaction to 0>><<set $rightactiondefault to "rest">> You rest your right arm. <<else>> <<set $rightaction to 0>><<set $rightactiondefault to "rightUndressOther">><<handskilluse>><<combatpromiscuity2>><<brat 1 $righttarget>> <<set $_npc to $NPCList[$righttarget]>><<set $_clothesTarget to $undressRightTarget>> <<personselect $righttarget>> <<if combatSkillCheck("hand", $righttarget, $NPCList[$righttarget].fullDescription, 1000, $_npc.clothes[$_clothesTarget].integrity)>> <!-- Using a switch to make it easier to add more NPC clothes types later --> <<switch $_clothesTarget>> <<case "upper">> <span class="lblue">You <<handtext>> <<npcUndressText $_npc $_clothesTarget>>, <<npcRevealText $_npc $_clothesTarget>>.</span> <<set $_npc.chest to 0>> <<case "lower">> <span class="lblue">You <<handtext>> <<npcUndressText $_npc $_clothesTarget>>, <<npcRevealText $_npc $_clothesTarget>>.</span> <<if $_npc.fullDescription is "Sydney">> <<sydneyExpose>> <</if>> <<if $_npc.penis is "clothed">> <<npcGenitalReaction $_npc>> <<set $_npc.penis to 0>> <</if>> <<if $_npc.vagina is "clothed">> <<set $_npc.vagina to 0>> <</if>> <<default>> You try to undress <<him>>, but grab nothing but the air. <span class="red">Improper clothes target: $_clothesTarget. Please report this bug.</span> <</switch>> <<else>> You try to <<npcUndressText $_npc $_clothesTarget>>, but <<he>> holds on to <<his>> clothes. <<set $_npc.clothes[$_clothesTarget].integrity -= Math.floor(currentSkillValue("handskill") / 100)>> <</if>> <</if>> <<unset $undressRightTarget>> <</if>> <<if $leftaction is "leftUndressOther">> <<if $undressLeftTarget is "rest">> <<set $leftaction to 0>><<set $leftactiondefault to "rest">> You rest your left arm. <<else>> <<set $leftaction to 0>><<set $leftactiondefault to "leftUndressOther">><<handskilluse>><<combatpromiscuity2>><<brat 1 $lefttarget>> <<set $_npc to $NPCList[$lefttarget]>><<set $_clothesTarget to $undressLeftTarget>> <<personselect $lefttarget>> <<if combatSkillCheck("hand", $lefttarget, $NPCList[$lefttarget].fullDescription, 1000, $_npc.clothes[$_clothesTarget].integrity)>> <!-- Using a switch to make it easier to add more NPC clothes types later --> <<switch $_clothesTarget>> <<case "upper">> <span class="lblue">You <<handtext>> <<npcUndressText $_npc $_clothesTarget>>, <<npcRevealText $_npc $_clothesTarget>>.</span> <<set $_npc.chest to 0>> <<case "lower">> <span class="lblue">You <<handtext>> <<npcUndressText $_npc $_clothesTarget>>, <<npcRevealText $_npc $_clothesTarget>>.</span> <<if $_npc.fullDescription is "Sydney">> <<sydneyExpose>> <</if>> <<if $_npc.penis is "clothed">> <<npcGenitalReaction $_npc>> <<set $_npc.penis to 0>> <</if>> <<if $_npc.vagina is "clothed">> <<set $_npc.vagina to 0>> <</if>> <<default>> You try to undress <<him>>, but grab nothing but the air. <span class="red">Improper clothes target: $_clothesTarget. Please report this bug.</span> <</switch>> <<else>> You try to <<npcUndressText $_npc $_clothesTarget>>, but <<he>> holds on to <<his>> clothes. <<set $_npc.clothes[$_clothesTarget].integrity -= Math.floor(currentSkillValue("handskill") / 100)>> <</if>> <</if>> <<unset $undressLeftTarget>> <</if>> <<if $leftaction is "peniscondom" or $rightaction is "peniscondom">> <<if $leftaction is "peniscondom">> <<set $leftaction to 0>><<set $leftactiondefault to "rest">> <</if>> <<if $rightaction is "peniscondom">> <<set $rightaction to 0>><<set $rightactiondefault to "rest">> <</if>> <<set _foundnpc to []>> <<run $NPCList.forEach((npc, index) => { if (npc.pregnancyAvoidance === 0) _foundnpc.push(index); })>> <<if _foundnpc.length>> <<personselect _foundnpc.random()>> <<set $_stop to true>> <</if>> <<if $_stop>> <<if combatSkillCheck("hand", $_s)>> <<combatPerson>> tries to stop you from putting the condom on, <span class="green">but you manage to do it anyways.</span> <<equipPlayerCondom>> <<else>> <<combatPerson>> <span class="red">stops you from putting the condom on.</span> <</if>> <<elseif $parasite.penis.name>> <span class="lewd">You can't put the condom on over the parasite.</span> <<else>> <<if !$player.condom>> You roll the condom over your penis. <<equipPlayerCondom>> <</if>> <</if>> <</if>> <<if $leftaction is "penisremovecondom" or $rightaction is "penisremovecondom">> <<if $leftaction is "penisremovecondom">> <<set $leftaction to 0>><<set $leftactiondefault to "rest">> <</if>> <<if $rightaction is "penisremovecondom">> <<set $rightaction to 0>><<set $rightactiondefault to "rest">> <</if>> <<set _foundnpc to []>> <<run $NPCList.forEach((npc, index) => { if (npc.pregnancyAvoidance === 0) _foundnpc.push(index); })>> <<if _foundnpc.length>> <<personselect _foundnpc.random()>> <<set $_stop to true>> <</if>> <<if $_stop>> <<if combatSkillCheck("hand", $_s)>> <<combatPerson>> tries to stop you from removing your condom, <span class="green">but you manage to do it anyways.</span> <<removePlayerCondom>> <<else>> <<combatPerson>> <span class="red">stops you from removing your condom.</span> <</if>> <<else>> <<if $player.condom>> You quickly remove the condom from your penis. <<removePlayerCondom>> <</if>> <</if>> <</if>> <<if $leftaction is "npcremovecondom" or $rightaction is "npcremovecondom">> <<if $leftaction is "npcremovecondom" and $rightaction is "npcremovecondom">> <<set $leftaction to 0>><<set $leftactiondefault to "rest">><<set $rightaction to 0>><<set $rightactiondefault to "rest">> <<if $lefttarget is $righttarget>> <<set $_target to $lefttarget>><<handskilluse>><<brat 2 $_target>> <<else>> <<set $_target to $lefttarget>><<set $_target2 to $righttarget>><<handskilluse>><<brat 1 $_target>><<brat 1 $_target2>> <</if>> <<elseif $leftaction is "npcremovecondom">> <<set $leftaction to 0>><<set $leftactiondefault to "rest">> <<set $_target to $lefttarget>><<handskilluse>><<brat 1 $_target>> <<elseif $rightaction is "npcremovecondom">> <<set $rightaction to 0>><<set $rightactiondefault to "rest">> <<set $_target to $righttarget>><<handskilluse>><<brat 1 $_target>> <</if>> <<if $consensual is 0 and playerPregnancyPossibleWith($NPCList[$_target])>><<combatpromiscuity6>><</if>> <<personselect $_target>> <<set $_npc to $NPCList[$_target]>> <<if $_npc.pregnancyAvoidance gte 80>> <<if combatSkillCheck("hand", $_target)>> <<combatPerson>> tries to stop you from removing <<his>> condom, <span class="green">but you manage to do it anyways.</span> <<removeNPCCondom $_target>> <<else>> <<combatPerson>> <span class="red">stops you from removing <<his>> condom.</span> <</if>> <<else>> You stealthily remove the condom from <<combatpersons>> penis. <<removeNPCCondom $_target>> <</if>> <<if $_target2>> <<personselect $_target2>> <<set $_npc to $NPCList[$_target2]>> <<if $_npc.pregnancyAvoidance gte 80>> <<if combatSkillCheck("hand", $_target2)>> <<combatPerson>> tries to stop you from removing <<his>> condom, <span class="green">but you manage to do it anyways.</span> <<removeNPCCondom $_target2>> <<else>> <<combatPerson>> <span class="red">stops you from removing <<his>> condom.</span> <</if>> <<else>> You stealthily remove the condom from <<combatpersons>> penis. <<removeNPCCondom $_target2>> <</if>> <</if>> <</if>> <<if $leftaction is "npcgivecondom">> <<set $leftaction to 0>><<set $leftactiondefault to "rest">> <<set $_target to $lefttarget>><<meek 1 $_target>> <<personselect $_target>> <<set $_npc to $NPCList[$_target]>> <<if $NPCList[$_target].condomCanGive>> You give <<combatperson>> one of your condoms to use. <<giveNPCCondom $_target>> <</if>> <</if>> <<if $rightaction is "npcgivecondom">> <<set $rightaction to 0>><<set $rightactiondefault to "rest">> <<set $_target to $righttarget>><<meek 1 $_target>> <<personselect $_target>> <<set $_npc to $NPCList[$_target]>> <<if $NPCList[$_target].condomCanGive>> You give <<combatperson>> one of your condoms to use. <<giveNPCCondom $_target>> <</if>> <</if>> <<if $leftaction is "leftmasturbatepussy">> <<set $leftaction to 0>><<set $leftactiondefault to "leftmasturbatepussy">> <<if $vaginause is 0 and !playerChastity("vagina")>> <<combatpromiscuity2>> <<set $_genitals_exposed to $worn.over_lower.vagina_exposed gte 1 and ($worn.lower.vagina_exposed gte 1 or setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt gte 1) and $worn.under_lower.vagina_exposed gte 1>> <<if $_genitals_exposed>> <<if $arousal gt ($arousalmax/5)*4>> You run your fingers over your exposed <<pussy>> and shiver in anticipation. <<else>> You run your fingers over your exposed <<pussy>>. <</if>> <<addVaginalWetness 2>><<arousal 40 "masturbationVagina">><<submission 2>> <<elseif $worn.lower.vagina_exposed is 0 and setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt lt 1>> You run your fingers over your <<pussy>>, feeling its shape beneath your $worn.lower.name. <<addVaginalWetness 1>><<arousal 20 "masturbationVagina">> <<elseif $worn.under_lower.vagina_exposed is 0>> You run your fingers over your <<pussy>>, feeling its shape beneath your $worn.under_lower.name. <<addVaginalWetness 1>><<arousal 20 "masturbationVagina">> <<elseif $worn.genitals.vagina_exposed is 0>> You run your fingers over your <<pussy>>, feeling its shape beneath your $worn.genitals.name. <<addVaginalWetness 1>><<arousal 20 "masturbationVagina">> <<else>> You run your fingers over your <<pussy>><<if !$worn.lower.type.includes("naked") and !$worn.under_lower.type.includes("naked")>>, feeling its shape beneath your clothing<</if>>. <<addVaginalWetness 0>><<arousal 5 "masturbationVagina">> <</if>> <<submission 3>><<set $speechmasturbate to 1>> <</if>> <</if>> <<if $rightaction is "rightmasturbatepussy">> <<set $rightaction to 0>><<set $rightactiondefault to "rightmasturbatepussy">> <<if $vaginause is 0 and !playerChastity("vagina")>> <<combatpromiscuity2>> <<set $_genitals_exposed to $worn.over_lower.vagina_exposed gte 1 and ($worn.lower.vagina_exposed gte 1 or setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt gte 1) and $worn.under_lower.vagina_exposed gte 1>> <<if $_genitals_exposed>> <<if $arousal gt ($arousalmax/5)*4>> You run your fingers over your exposed <<pussy>> and shiver in anticipation. <<else>> You run your fingers over your exposed <<pussy>>. <</if>> <<addVaginalWetness 2>><<arousal 40 "masturbationVagina">><<submission 2>> <<elseif $worn.lower.vagina_exposed is 0 and setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt lt 1>> You run your fingers over your <<pussy>>, feeling its shape beneath your $worn.lower.name. <<addVaginalWetness 1>><<arousal 20 "masturbationVagina">> <<elseif $worn.under_lower.vagina_exposed is 0>> You run your fingers over your <<pussy>>, feeling its shape beneath your $worn.under_lower.name. <<addVaginalWetness 1>><<arousal 20 "masturbationVagina">> <<elseif $worn.genitals.vagina_exposed is 0>> You run your fingers over your <<pussy>>, feeling its shape beneath your $worn.genitals.name. <<addVaginalWetness 1>><<arousal 20 "masturbationVagina">> <<else>> You run your fingers over your <<pussy>><<if !$worn.lower.type.includes("naked") and !$worn.under_lower.type.includes("naked")>>, feeling its shape beneath your clothing<</if>>. <<addVaginalWetness 0>><<arousal 5 "masturbationVagina">> <</if>> <<submission 3>><<set $speechmasturbate to 1>> <</if>> <</if>> <<if $leftaction is "leftmasturbatepenis">> <<set $leftaction to 0>><<set $leftactiondefault to "leftmasturbatepenis">> <<if $penisuse is 0 and !playerChastity("penis")>> <<combatpromiscuity2>> <<set $_genitals_exposed to $worn.over_lower.vagina_exposed gte 1 and ($worn.lower.vagina_exposed gte 1 or setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt gte 1) and $worn.under_lower.vagina_exposed gte 1>> <<if $_genitals_exposed>> <<if $arousal gt ($arousalmax/5)*4>> You stroke your exposed <<penis>> and shiver in anticipation. <<else>> You stroke your exposed <<penis>>. <</if>> <<arousal 40 "masturbationPenis">><<submission 2>> <<elseif $worn.lower.vagina_exposed is 0 and setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt lt 1>> You stroke your <<penis>>, feeling its shape beneath your $worn.lower.name. <<arousal 20 "masturbationPenis">> <<elseif $worn.under_lower.vagina_exposed is 0>> You stroke your <<penis>>, feeling its shape beneath your $worn.under_lower.name. <<arousal 20 "masturbationPenis">> <<elseif $worn.genitals.vagina_exposed is 0>> You stroke your <<penis>>, feeling its shape beneath your $worn.genitals.name. <<arousal 20 "masturbationPenis">> <<else>> You stroke your <<penis>>, feeling its shape beneath your clothing. <<arousal 5 "masturbationPenis">> <</if>> <<submission 3>><<set $speechmasturbate to 1>> <</if>> <</if>> <<if $rightaction is "rightmasturbatepenis">> <<set $rightaction to 0>><<set $rightactiondefault to "rightmasturbatepenis">> <<if $penisuse is 0 and !playerChastity("penis")>> <<combatpromiscuity2>> <<set $_genitals_exposed to $worn.over_lower.vagina_exposed gte 1 and ($worn.lower.vagina_exposed gte 1 or setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt gte 1) and $worn.under_lower.vagina_exposed gte 1>> <<if $_genitals_exposed>> <<if $arousal gt ($arousalmax/5)*4>> You stroke your exposed <<penis>> and shiver in anticipation. <<else>> You stroke your exposed <<penis>>. <</if>> <<arousal 40 "masturbationPenis">><<submission 2>> <<elseif $worn.lower.vagina_exposed is 0 and setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt lt 1>> You stroke your <<penis>>, feeling its shape beneath your $worn.lower.name. <<arousal 20 "masturbationPenis">> <<elseif $worn.under_lower.vagina_exposed is 0>> You stroke your <<penis>>, feeling its shape beneath your $worn.under_lower.name. <<arousal 20 "masturbationPenis">> <<elseif $worn.genitals.vagina_exposed is 0>> You stroke your <<penis>>, feeling its shape beneath your $worn.genitals.name. <<arousal 20 "masturbationPenis">> <<else>> You stroke your <<penis>>, feeling its shape beneath your clothing. <<arousal 5 "masturbationPenis">> <</if>> <<submission 3>><<set $speechmasturbate to 1>> <</if>> <</if>> <<if $leftaction is "leftmasturbateanus">> <<set $leftaction to 0>><<set $leftactiondefault to "leftmasturbateanus">> <<if $anususe is 0 and !playerChastity("anus")>> <<combatpromiscuity3>> <<set $_genitals_exposed to $worn.over_lower.vagina_exposed gte 1 and ($worn.lower.vagina_exposed gte 1 or setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt gte 1) and $worn.under_lower.vagina_exposed gte 1>> <<if $_genitals_exposed>> <<if playerHasButtPlug()>> <<if $arousal gt ($arousalmax/5)*4>> You pull your $worn.butt_plug.name in and out of your exposed anus and shiver in anticipation. <<else>> You pull your $worn.butt_plug.name in and out of your exposed anus. <</if>> <<else>> <<if $arousal gt ($arousalmax/5)*4>> You run your fingers in and out of your exposed anus and shiver in anticipation. <<else>> You run your fingers in and out of your exposed anus. <</if>> <</if>> <<arousal 40 "masturbationAnal">><<submission 2>> <<elseif $worn.lower.vagina_exposed is 0 and setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt lt 1>> <<if playerHasButtPlug()>> You run your fingers over your $worn.butt_plug.name, feeling its shape beneath your $worn.lower.name. <<else>> You run your fingers over your anus, feeling its shape beneath your $worn.lower.name. <</if>> <<arousal 20 "masturbationAnal">> <<elseif $worn.under_lower.vagina_exposed is 0>> <<if playerHasButtPlug()>> You run your fingers over your $worn.butt_plug.name, feeling its shape beneath your $worn.under_lower.name. <<else>> You run your fingers over your anus, feeling its shape beneath your $worn.under_lower.name. <</if>> <<arousal 20 "masturbationAnal">> <<elseif $worn.genitals.vagina_exposed is 0>> <<if playerHasButtPlug()>> You run your fingers over your $worn.butt_plug.name, feeling its shape beneath your $worn.genitals.name. <<else>> You run your fingers over your anus, feeling its shape beneath your $worn.genitals.name. <</if>> <<arousal 20 "masturbationAnal">> <<else>> <<if playerHasButtPlug()>> You run your fingers over your $worn.butt_plug.name<<if !$worn.lower.type.includes("naked") and !$worn.under_lower.type.includes("naked")>>, feeling its shape beneath your clothing<</if>>. <<else>> You run your fingers over your anus<<if !$worn.lower.type.includes("naked") and !$worn.under_lower.type.includes("naked")>>, feeling its shape beneath your clothing<</if>>. <</if>> <<arousal 5 "masturbationAnal">> <</if>> <<submission 3>><<set $speechmasturbate to 1>> <</if>> <</if>> <<if $rightaction is "rightmasturbateanus">> <<set $rightaction to 0>><<set $rightactiondefault to "rightmasturbateanus">> <<if $anususe is 0 and !playerChastity("anus")>> <<combatpromiscuity3>> <<set $_genitals_exposed to $worn.over_lower.vagina_exposed gte 1 and ($worn.lower.vagina_exposed gte 1 or setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt gte 1) and $worn.under_lower.vagina_exposed gte 1>> <<if $_genitals_exposed>> <<if playerHasButtPlug()>> <<if $arousal gt ($arousalmax/5)*4>> You pull your $worn.butt_plug.name in and out of your exposed anus and shiver in anticipation. <<else>> You pull your $worn.butt_plug.name in and out of your exposed anus. <</if>> <<else>> <<if $arousal gt ($arousalmax/5)*4>> You run your fingers in and out of your exposed anus and shiver in anticipation. <<else>> You run your fingers in and out of your exposed anus. <</if>> <</if>> <<arousal 40 "masturbationAnal">><<submission 2>> <<elseif $worn.lower.vagina_exposed is 0 and setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt lt 1>> <<if playerHasButtPlug()>> You run your fingers over your $worn.butt_plug.name, feeling its shape beneath your $worn.lower.name. <<else>> You run your fingers over your anus, feeling its shape beneath your $worn.lower.name. <</if>> <<arousal 20 "masturbationAnal">> <<elseif $worn.under_lower.vagina_exposed is 0>> <<if playerHasButtPlug()>> You run your fingers over your $worn.butt_plug.name, feeling its shape beneath your $worn.under_lower.name. <<else>> You run your fingers over your anus, feeling its shape beneath your $worn.under_lower.name. <</if>> <<arousal 20 "masturbationAnal">> <<elseif $worn.genitals.vagina_exposed is 0>> <<if playerHasButtPlug()>> You run your fingers over your $worn.butt_plug.name, feeling its shape beneath your $worn.genitals.name. <<else>> You run your fingers over your anus, feeling its shape beneath your $worn.genitals.name. <</if>> <<arousal 20 "masturbationAnal">> <<else>> <<if playerHasButtPlug()>> You run your fingers over your $worn.butt_plug.name<<if !$worn.lower.type.includes("naked") and !$worn.under_lower.type.includes("naked")>>, feeling its shape beneath your clothing<</if>>. <<else>> You run your fingers over your anus<<if !$worn.lower.type.includes("naked") and !$worn.under_lower.type.includes("naked")>>, feeling its shape beneath your clothing<</if>>. <</if>> <<arousal 5 "masturbationAnal">> <</if>> <<submission 3>><<set $speechmasturbate to 1>> <</if>> <</if>> <<effectsremovebuttplug>> <<effectsPickupSexToy>> <<effectsDropSexToy>> <<if $leftaction is "lubeanus" or $rightaction is "lubeanus">> <<if $leftaction is "lubeanus">> <<set $leftaction to 0>><<set $leftactiondefault to "rest">> <</if>> <<if $rightaction is "lubeanus">> <<set $rightaction to 0>><<set $rightactiondefault to "rest">> <</if>> <<set $leftaction to 0>><<set $leftactiondefault to "rest">> You squeeze your bottle of lube over your anus. <<bodyliquid "bottom" "goo">> <<useLube>> <<submission 3>> <</if>> <<if $leftaction is "lubepussy" or $rightaction is "lubepussy">> <<if $leftaction is "lubepussy">> <<set $leftaction to 0>><<set $leftactiondefault to "rest">> <</if>> <<if $rightaction is "lubepussy">> <<set $rightaction to 0>><<set $rightactiondefault to "rest">> <</if>> You squeeze your bottle of lube over your pussy. <<bodyliquid "vaginaoutside" "goo">> <<useLube>> <<submission 3>> <</if>> <<if $leftaction is "lubepenis" or $rightaction is "lubepenis">> <<if $leftaction is "lubepenis">> <<set $leftaction to 0>><<set $leftactiondefault to "rest">> <</if>> <<if $rightaction is "lubepenis">> <<set $rightaction to 0>><<set $rightactiondefault to "rest">> <</if>> <<set $leftaction to 0>><<set $leftactiondefault to "rest">> You squeeze your bottle of lube over your penis. <<bodyliquid "penis" "goo">> <<useLube>> <<submission 3>> <</if>> /* Combat sex toys */ <<if $leftaction is "dildoSelfPussyEntrance">> <<set $leftaction to 0>><<set $leftactiondefault to "dildoSelfPussyEntrance">><<set $leftarm to "dildoSelfPussyEntrance">><<combatpromiscuity3>> <<set $_genitals_exposed to $worn.over_lower.vagina_exposed gte 1 and ($worn.lower.vagina_exposed gte 1 or setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt gte 1) and $worn.under_lower.vagina_exposed gte 1 and $worn.genitals.vagina_exposed gte 1>> <<set $_dildo to $selectedItemLeft.name>> <<if $_genitals_exposed>> <<if $arousal gt ($arousalmax/5)*4>> You run your $_dildo over your exposed <<pussy>> and shiver in pleasure. <<else>> You run your $_dildo over your exposed <<pussy>>. <</if>> <<addVaginalWetness 2>><<arousal 40 "genitals">><<submission 2>> <<elseif $worn.lower.vagina_exposed is 0 and setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt lt 1>> You run your $_dildo over your <<pussy>>, feeling its shape beneath your $worn.lower.name. <<addVaginalWetness 1>><<arousal 20 "genitals">> <<elseif $worn.under_lower.vagina_exposed is 0>> You run your $_dildo over your <<pussy>>, feeling its shape beneath your $worn.under_lower.name. <<addVaginalWetness 1>><<arousal 20 "genitals">> <<elseif $worn.genitals.vagina_exposed is 0>> You run your $_dildo over your <<pussy>>, feeling its shape beneath your $worn.genitals.name. <<addVaginalWetness 1>><<arousal 20 "genitals">> <<else>> You run your $_dildo over your <<pussy>><<if !$worn.lower.type.includes("naked") and !$worn.under_lower.type.includes("naked")>>, feeling its shape beneath your clothing<</if>>. <<addVaginalWetness 0>><<arousal 5 "genitals">> <</if>> <<submission 5>><<set $speechmasturbate to 1>> <</if>> <<if $rightaction is "dildoSelfPussyEntrance">> <<set $rightaction to 0>><<set $rightactiondefault to "dildoSelfPussyEntrance">><<set $rightarm to "dildoSelfPussyEntrance">><<combatpromiscuity3>> <<set $_genitals_exposed to $worn.over_lower.vagina_exposed gte 1 and ($worn.lower.vagina_exposed gte 1 or setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt gte 1) and $worn.under_lower.vagina_exposed gte 1 and $worn.genitals.vagina_exposed gte 1>> <<set $_dildo to $selectedItemRight.name>> <<if $_genitals_exposed>> <<if $arousal gt ($arousalmax/5)*4>> You run your $_dildo over your exposed <<pussy>> and shiver in pleasure. <<else>> You run your $_dildo over your exposed <<pussy>>. <</if>> <<addVaginalWetness 2>><<arousal 40 "genitals">><<submission 2>> <<elseif $worn.lower.vagina_exposed is 0 and setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt lt 1>> You run your $_dildo over your <<pussy>>, feeling its shape beneath your $worn.lower.name. <<addVaginalWetness 1>><<arousal 20 "genitals">> <<elseif $worn.under_lower.vagina_exposed is 0>> You run your $_dildo over your <<pussy>>, feeling its shape beneath your $worn.under_lower.name. <<addVaginalWetness 1>><<arousal 20 "genitals">> <<elseif $worn.genitals.vagina_exposed is 0>> You run your $_dildo over your <<pussy>>, feeling its shape beneath your $worn.genitals.name. <<addVaginalWetness 1>><<arousal 20 "genitals">> <<else>> You run your $_dildo over your <<pussy>><<if !$worn.lower.type.includes("naked") and !$worn.under_lower.type.includes("naked")>>, feeling its shape beneath your clothing<</if>>. <<addVaginalWetness 0>><<arousal 5 "genitals">> <</if>> <<submission 5>><<set $speechmasturbate to 1>> <</if>> <<if $leftaction is "dildoSelfPussy">> <<set $leftaction to 0>><<set $leftactiondefault to "dildoSelfPussy">><<set $leftarm to "dildoSelfPussy">> <<set $_dildo to $currentSexToyLeft.name>> <<if $player.virginity.vaginal is true>> <<if $arousal gt ($arousalmax/5)*4>> You gently fuck the entrance of your <<pussy>> with the $_dildo and shiver in pleasure. <<else>> You gently fuck the entrance of your <<pussy>> with the $_dildo. <</if>> <<else>> <<if $arousal gt ($arousalmax/5)*4>> You fuck your <<pussy>> with the $_dildo and shiver in pleasure. <<else>> You fuck your <<pussy>> with the $_dildo. <</if>> <</if>> <<addVaginalWetness 2>><<arousal 50 "genitals">><<submission 10>><<set $speechmasturbate to 1>> <</if>> <<if $rightaction is "dildoSelfPussy">> <<set $rightaction to 0>><<set $rightactiondefault to "dildoSelfPussy">><<set $rightarm to "dildoSelfPussy">> <<set $_dildo to $currentSexToyRight.name>> <<if $player.virginity.vaginal is true>> <<if $arousal gt ($arousalmax/5)*4>> You gently fuck the entrance of your <<pussy>> with the $_dildo and shiver in pleasure. <<else>> You gently fuck the entrance of your <<pussy>> with the $_dildo. <</if>> <<else>> <<if $arousal gt ($arousalmax/5)*4>> You fuck your <<pussy>> with the $_dildo and shiver in pleasure. <<else>> You fuck your <<pussy>> with the $_dildo. <</if>> <</if>> <<addVaginalWetness 2>><<arousal 50 "genitals">><<submission 10>><<set $speechmasturbate to 1>> <</if>> <<if $leftaction is "dildoSelfAnusEntrance">> <<set $leftaction to 0>><<set $leftactiondefault to "dildoSelfAnusEntrance">><<set $leftarm to "dildoSelfAnusEntrance">><<combatpromiscuity3>> <<set $_anus_exposed to $worn.over_lower.anus_exposed gte 1 and ($worn.lower.anus_exposed gte 1 or setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt gte 1) and $worn.under_lower.anus_exposed gte 1 and $worn.genitals.anus_exposed gte 1>> <<set $_dildo to $currentSexToyLeft.name>> <<if $_anus_exposed>> <<if $arousal gt ($arousalmax/5)*4>> You run your $_dildo over your exposed anus and shiver in pleasure. <<else>> You run your $_dildo over your exposed anus. <</if>> <<addVaginalWetness 2>><<arousal 40 "genitals">><<submission 2>> <<elseif $worn.lower.vagina_exposed is 0 and setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt lt 1>> You run your $_dildo over your anus, feeling its shape beneath your $worn.lower.name. <<addVaginalWetness 1>><<arousal 20 "genitals">> <<elseif $worn.under_lower.vagina_exposed is 0>> You run your $_dildo over your anus, feeling its shape beneath your $worn.under_lower.name. <<addVaginalWetness 1>><<arousal 20 "genitals">> <<elseif $worn.genitals.vagina_exposed is 0>> You run your $_dildo over your anus, feeling its shape beneath your $worn.genitals.name. <<addVaginalWetness 1>><<arousal 20 "genitals">> <<else>> You run your $_dildo over your anus<<if !$worn.lower.type.includes("naked") and !$worn.under_lower.type.includes("naked")>>, feeling its shape beneath your clothing<</if>>. <<addVaginalWetness 0>><<arousal 5 "genitals">> <</if>> <<submission 5>><<set $speechmasturbate to 1>> <</if>> <<if $rightaction is "dildoSelfAnusEntrance">> <<set $rightaction to 0>><<set $rightactiondefault to "dildoSelfAnusEntrance">><<set $rightarm to "dildoSelfAnusEntrance">><<combatpromiscuity3>> <<set $_anus_exposed to $worn.over_lower.anus_exposed gte 1 and ($worn.lower.anus_exposed gte 1 or setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt gte 1) and $worn.under_lower.anus_exposed gte 1 and $worn.genitals.anus_exposed gte 1>> <<set $_dildo to $currentSexToyRight.name>> <<if $_anus_exposed>> <<if $arousal gt ($arousalmax/5)*4>> You run your $_dildo over your exposed anus and shiver in pleasure. <<else>> You run your $_dildo over your exposed anus. <</if>> <<addVaginalWetness 2>><<arousal 40 "genitals">><<submission 2>> <<elseif $worn.lower.vagina_exposed is 0 and setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt lt 1>> You run your $_dildo over your anus, feeling its shape beneath your $worn.lower.name. <<addVaginalWetness 1>><<arousal 20 "genitals">> <<elseif $worn.under_lower.vagina_exposed is 0>> You run your $_dildo over your anus, feeling its shape beneath your $worn.under_lower.name. <<addVaginalWetness 1>><<arousal 20 "genitals">> <<elseif $worn.genitals.vagina_exposed is 0>> You run your $_dildo over your anus, feeling its shape beneath your $worn.genitals.name. <<addVaginalWetness 1>><<arousal 20 "genitals">> <<else>> You run your $_dildo over your anus<<if !$worn.lower.type.includes("naked") and !$worn.under_lower.type.includes("naked")>>, feeling its shape beneath your clothing<</if>>. <<addVaginalWetness 0>><<arousal 5 "genitals">> <</if>> <<submission 5>><<set $speechmasturbate to 1>> <</if>> <<if $leftaction is "dildoSelfAnus">> <<set $leftaction to 0>><<set $leftactiondefault to "dildoSelfAnus">><<set $leftarm to "dildoSelfAnus">> <<set $_dildo to $currentSexToyLeft.name>> <<if $player.virginity.anal is true>> <<if $arousal gt ($arousalmax/5)*4>> You gently fuck the entrance of your anus with the $_dildo and shiver in pleasure. <<else>> You gently fuck the entrance of your anus with the $_dildo. <</if>> <<else>> <<if $arousal gt ($arousalmax/5)*4>> You fuck your anus with the $_dildo and shiver in pleasure. <<else>> You fuck your anus with the $_dildo. <</if>> <</if>> <<arousal 50 "anus">><<submission 10>><<set $speechmasturbate to 1>> <</if>> <<if $rightaction is "dildoSelfAnus">> <<set $rightaction to 0>><<set $rightactiondefault to "dildoSelfAnus">><<set $rightarm to "dildoSelfAnus">> <<set $_dildo to $currentSexToyRight.name>> <<if $player.virginity.anal is true>> <<if $arousal gt ($arousalmax/5)*4>> You gently fuck the entrance of your anus with the $_dildo and shiver in pleasure. <<else>> You gently fuck the entrance of your anus with the $_dildo. <</if>> <<else>> <<if $arousal gt ($arousalmax/5)*4>> You fuck your anus with the $_dildo and shiver in pleasure. <<else>> You fuck your anus with the $_dildo. <</if>> <</if>> <<arousal 50 "anus">><<submission 10>><<set $speechmasturbate to 1>> <</if>> <<if $leftaction is "strokerSelfPenisEntrance">> <<set $leftaction to 0>><<set $leftactiondefault to "strokerSelfPenisEntrance">><<set $leftarm to "strokerSelfPenisEntrance">><<combatpromiscuity3>> <<set _genitals_exposed to $worn.over_lower.vagina_exposed gte 1 and ($worn.lower.vagina_exposed gte 1 or setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt gte 1) and $worn.under_lower.vagina_exposed gte 1 and $worn.genitals.vagina_exposed gte 1>> <<set _stroker to $selectedItemLeft.name>> <<if _genitals_exposed>> You run your _stroker over your exposed <<penis>>. <<arousal 40 "genitals">><<submission 2>> <<elseif $worn.lower.vagina_exposed is 0 and setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt lt 1>> You run your _stroker over your <<penis>>, feeling its shape beneath your $worn.lower.name. <<arousal 20 "genitals">> <<elseif $worn.under_lower.vagina_exposed is 0>> You run your _stroker over your <<penis>>, feeling its shape beneath your $worn.under_lower.name. <<arousal 20 "genitals">> <<elseif $worn.genitals.vagina_exposed is 0>> You run your _stroker over your <<penis>>, feeling its shape beneath your $worn.genitals.name. <<arousal 20 "genitals">> <<else>> You run your _stroker over your <<penis>><<if !$worn.lower.type.includes("naked") and !$worn.under_lower.type.includes("naked")>>, feeling its shape beneath your clothing<</if>>. <<arousal 5 "genitals">> <</if>> <<submission 2>><<set $speechmasturbate to 1>> <</if>> <<if $leftaction is "strokerSelfPenis">> <<set $leftaction to 0>><<set $leftactiondefault to "strokerSelfPenis">><<set $leftarm to "strokerSelfPenis">> <<set $penisuse to "strokerSelfPenis">><<set $penisstate to "strokerSelfPenis">><<set $penisactiondefault to "strokerSelfPenis">> <<set _stroker to $currentSexToyLeft.name>> <<if $player.virginity.penile is true>> <<if $arousal gt ($arousalmax/5)*4>> You gently fuck the glans of your <<penis>> with the _stroker and shiver in pleasure. <<else>> You gently fuck the glans of your <<penis>> with the _stroker. <</if>> <<else>> <<if $arousal gt ($arousalmax/5)*4>> You fuck your <<penis>> with the _stroker and shiver in pleasure. <<else>> You fuck your <<penis>> with the _stroker. <</if>> <</if>> <<arousal 50 "genitals">><<submission 5>><<set $speechmasturbate to 1>> <</if>> <<if $rightaction is "strokerSelfPenisEntrance">> <<set $rightaction to 0>><<set $rightactiondefault to "strokerSelfPenisEntrance">><<set $rightarm to "strokerSelfPenisEntrance">><<combatpromiscuity3>> <<set _genitals_exposed to $worn.over_lower.vagina_exposed gte 1 and ($worn.lower.vagina_exposed gte 1 or setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt gte 1) and $worn.under_lower.vagina_exposed gte 1 and $worn.genitals.vagina_exposed gte 1>> <<set _stroker to $selectedItemRight.name>> <<if _genitals_exposed>> You run your _stroker over your exposed <<penis>>. <<arousal 40 "genitals">><<submission 2>> <<elseif $worn.lower.vagina_exposed is 0 and setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt lt 1>> You run your _stroker over your <<penis>>, feeling its shape beneath your $worn.lower.name. <<arousal 20 "genitals">> <<elseif $worn.under_lower.vagina_exposed is 0>> You run your _stroker over your <<penis>>, feeling its shape beneath your $worn.under_lower.name. <<arousal 20 "genitals">> <<elseif $worn.genitals.vagina_exposed is 0>> You run your _stroker over your <<penis>>, feeling its shape beneath your $worn.genitals.name. <<arousal 20 "genitals">> <<else>> You run your _stroker over your <<penis>><<if !$worn.lower.type.includes("naked") and !$worn.under_lower.type.includes("naked")>>, feeling its shape beneath your clothing<</if>>. <<arousal 5 "genitals">> <</if>> <<submission 2>><<set $speechmasturbate to 1>> <</if>> <<if $rightaction is "strokerSelfPenis">> <<set $rightaction to 0>><<set $rightactiondefault to "strokerSelfPenis">><<set $rightarm to "strokerSelfPenis">> <<set $penisuse to "strokerSelfPenis">><<set $penisstate to "strokerSelfPenis">><<set $penisactiondefault to "strokerSelfPenis">> <<set _stroker to $currentSexToyRight.name>> <<if $player.virginity.penile is true>> <<if $arousal gt ($arousalmax/5)*4>> You gently fuck the glans of your <<penis>> with the _stroker and shiver in pleasure. <<else>> You gently fuck the glans of your <<penis>> with the _stroker. <</if>> <<else>> <<if $arousal gt ($arousalmax/5)*4>> You fuck your <<penis>> with the _stroker and shiver in pleasure. <<else>> You fuck your <<penis>> with the _stroker. <</if>> <</if>> <<arousal 50 "genitals">><<submission 5>><<set $speechmasturbate to 1>> <</if>> <<if $leftaction is "strokerDrop">> <<set $leftaction to 0>><<set $leftactiondefault to "strokerDrop">> <<set $penisuse to 0>><<set $penisstate to 0>><<set $leftarm to 0>> <span class="blue">You move your $currentSexToyLeft.name away from your penis.</span> <<set $currentSexToyLeft to 0>> <</if>> <<if $rightaction is "strokerDrop">> <<set $rightaction to 0>><<set $rightactiondefault to "strokerDrop">> <<set $penisuse to 0>><<set $penisstate to 0>><<set $rightarm to 0>> <span class="blue">You move your $currentSexToyRight.name away from your penis.</span> <<set $currentSexToyRight to 0>> <</if>> /* NPC pussy */ <<if $leftaction is "dildoOtherPussyFuck">> /* Note: deliberately does not take virginities */ <<set $leftaction to 0>><<set $leftactiondefault to "dildoOtherPussyFuck">><<handskilluse>> <<if combatSkillCheck("hand", $lefttarget)>> <<submission 10>><<set $speechdildovagina to 1>><<set $leftarm to "dildoOtherPussyFuck">><<set $NPCList[0].vagina to "leftDildo">> You <<handtext>> fuck <<their $lefttarget>> pussy with your $currentSexToyLeft.name in your left hand. <<elseif $NPCList[$lefttarget].vagina is "leftDildo">> <<set $leftarm to 0>><<set $leftactiondefault to "dildoOtherPussyTease">> <<set $NPCList[$lefttarget].vagina to 0>><<personselect $lefttarget>> <span class="blue">You try to fuck <<hisselect $lefttarget>> pussy with your $currentSexToyLeft.name, but <<he>> <<if $enemytype isnot "beast">>slaps your hand away<<else>>shifts way from you and growls<</if>>.</span> <</if>> <</if>> <<if $rightaction is "dildoOtherPussyFuck">> /* Note: deliberately does not take virginities */ <<set $rightaction to 0>><<set $rightactiondefault to "dildoOtherPussyFuck">><<handskilluse>> <<if combatSkillCheck("hand", $righttarget)>> <<submission 10>><<set $speechdildovagina to 1>><<set $rightarm to "dildoOtherPussyFuck">><<set $NPCList[0].vagina to "rightDildo">> You <<handtext>> fuck <<their $righttarget>> pussy with your $currentSexToyRight.name in your right hand. <<elseif $NPCList[$righttarget].vagina is "rightDildo">> <<set $rightarm to 0>><<set $rightactiondefault to "dildoOtherPussyTease">> <<set $NPCList[$righttarget].vagina to 0>><<personselect $righttarget>> <span class="blue">You try to fuck <<hisselect $righttarget>> pussy with your $currentSexToyRight.name, but <<he>> <<if $enemytype isnot "beast">>slaps your hand away<<else>>shifts way from you and growls<</if>>.</span> <</if>> <</if>> <<if $leftaction is "othervaginadildostop" and $NPCList[$lefttarget].vagina is "leftdildo">> <<set $leftaction to 0>><<set $leftactiondefault to "othervaginadildostop">> <<set $NPCList[$lefttarget].vagina to 0>><<set $leftarm to 0>> <span class="blue">You move your $currentSexToyLeft.name away from <<hisselect $lefttarget>> pussy.</span> <</if>> <<if $rightaction is "othervaginadildostop" and $NPCList[$righttarget].vagina is "rightdildo">> <<set $rightaction to 0>><<set $rightactiondefault to "othervaginadildostop">> <<set $NPCList[$righttarget].vagina to 0>><<set $rightarm to 0>> <span class="blue">You move your $currentSexToyRight away from <<hisselect $righttarget>> pussy.</span> <</if>> <<if $leftaction is "dildoOtherPussyTease">> <<set $leftaction to 0>><<handskilluse>><<set $leftactiondefault to "dildoOtherPussyTease">><<combatpromiscuity3>> <<if combatSkillCheck("hand", $lefttarget)>> <<submission 1>><<sextoystat>> <<if $NPCList[$lefttarget].vagina is 0>> <<set $leftactiondefault to "dildoOtherPussyFuck">><<set $leftarm to "dildoOtherPussyTease">><<personselect $lefttarget>> <span class="lblue">You <<handtext>> tease <<hisselect $lefttarget>> pussy<<if $NPCList[$lefttarget].chastity.vagina.includes("chastity")>> through <<his>> $NPCList[$lefttarget].chastity.vagina<</if>> with the $currentSexToyLeft.name in your left hand.</span> <<else>> <span class="blue">You try to tease <<hisselect $lefttarget>> pussy with the $currentSexToyLeft.name in your left hand, but the entrance is already occupied.</span> <</if>> <<else>> You try to tease <<hisselect $lefttarget>> pussy with the $currentSexToyLeft.name in your left hand, but <<he>> moves it away. <</if>> <</if>> <<if $rightaction is "dildoOtherPussyTease">> <<set $rightaction to 0>><<handskilluse>><<set $rightactiondefault to "dildoOtherPussyTease">><<combatpromiscuity3>> <<if combatSkillCheck("hand", $righttarget)>> <<submission 1>><<sextoystat>> <<if $NPCList[$righttarget].vagina is 0>> <<set $rightactiondefault to "dildoOtherPussyFuck">><<set $rightarm to "dildoOtherPussyTease">><<personselect $righttarget>> <span class="lblue">You <<handtext>> tease <<hisselect $righttarget>> pussy<<if $NPCList[$righttarget].chastity.vagina.includes("chastity")>> through <<his>> $NPCList[$righttarget].chastity.vagina<</if>> with your right hand.</span> <<else>> <span class="blue">You try to tease <<hisselect $righttarget>> pussy with the $currentSexToyRight.name in your right hand, but the entrance is already occupied.</span> <</if>> <<else>> You try to tease <<hisselect $righttarget>> pussy with the $currentSexToyRight.name in your right hand, but <<he>> moves it away. <</if>> <</if>> /* NPC Anus */ <<if $leftaction is "dildoOtherAnusFuck">> /* Note: deliberately does not take virginities */ <<set $leftaction to 0>><<set $leftactiondefault to "dildoOtherAnusFuck">><<handskilluse>> <<if combatSkillCheck("hand", $lefttarget)>> <<submission 10>><<set $speechdildoanus to 1>><<set $leftarm to "dildoOtherAnusFuck">> <<if $NPCList[$lefttarget].vagina isnot "none">> <<set $NPCList[$lefttarget].vagina to "leftDildoAnus">> <</if>> <<if $NPCList[$lefttarget].penis isnot "none">> <<set $NPCList[$lefttarget].penis to "leftDildoAnus">> <</if>> You <<handtext>> fuck <<their $lefttarget>> ass with your $currentSexToyLeft.name in your left hand. <<elseif $NPCList[$lefttarget].vagina is "leftDildoAnus">> <<set $leftarm to 0>><<set $leftactiondefault to "dildoOtherPussyTease">> <<set $NPCList[$lefttarget].vagina to 0>><<personselect $lefttarget>> <span class="blue">You try to fuck <<hisselect $lefttarget>> ass with your $currentSexToyLeft.name, but <<he>> <<if $enemytype isnot "beast">>slaps your hand away<<else>>shifts way from you and growls<</if>>.</span> <<elseif $NPCList[$lefttarget].penis is "leftDildoAnus">> <<set $leftarm to 0>><<set $leftactiondefault to "dildoOtherPussyTease">> <<set $NPCList[$lefttarget].penis to 0>><<personselect $lefttarget>> <span class="blue">You try to fuck <<hisselect $lefttarget>> ass with your $currentSexToyLeft.name, but <<he>> <<if $enemytype isnot "beast">>slaps your hand away<<else>>shifts way from you and growls<</if>>.</span> <</if>> <</if>> <<if $rightaction is "dildoOtherAnusFuck">> /* Note: deliberately does not take virginities */ <<set $rightaction to 0>><<set $rightactiondefault to "dildoOtherAnusFuck">><<handskilluse>> <<if combatSkillCheck("hand", $righttarget)>> <<submission 10>><<set $speechdildoanus to 1>><<set $rightarm to "dildoOtherAnusFuck">> <<if $NPCList[$righttarget].vagina isnot "none">> <<set $NPCList[$righttarget].vagina to "rightDildoAnus">> <</if>> <<if $NPCList[$righttarget].penis isnot "none">> <<set $NPCList[$righttarget].penis to "rightDildoAnus">> <</if>> You <<handtext>> fuck <<their $righttarget>> ass with your $currentSexToyRight.name in your right hand. <<elseif $NPCList[$righttarget].vagina is "rightDildoAnus">> <<set $rightarm to 0>><<set $rightactiondefault to "dildoOtherPussyTease">> <<set $NPCList[$righttarget].vagina to 0>><<personselect $righttarget>> <span class="blue">You try to fuck <<hisselect $righttarget>> ass with your $currentSexToyRight.name, but <<he>> <<if $enemytype isnot "beast">>slaps your hand away<<else>>shifts way from you and growls<</if>>.</span> <<elseif $NPCList[$righttarget].penis is "leftDildoAnus">> <<set $rightarm to 0>><<set $rightactiondefault to "dildoOtherPussyTease">> <<set $NPCList[$righttarget].penis to 0>><<personselect $righttarget>> <span class="blue">You try to fuck <<hisselect $righttarget>> ass with your $currentSexToyRight.name, but <<he>> <<if $enemytype isnot "beast">>slaps your hand away<<else>>shifts way from you and growls<</if>>.</span> <</if>> <</if>> <<if $leftaction is "dildoAnusDrop" and $NPCList[$lefttarget].vagina is "leftdildoAnus">> <<set $leftaction to 0>><<set $leftactiondefault to "dildoAnusDrop">> <<set $NPCList[$lefttarget].vagina to 0>><<set $leftarm to 0>> <span class="blue">You move your $currentSexToyLeft.name away from <<hisselect $lefttarget>> ass.</span> <</if>> <<if $rightaction is "dildoAnusDrop" and $NPCList[$righttarget].vagina is "rightdildoAnus">> <<set $rightaction to 0>><<set $rightactiondefault to "dildoAnusDrop">> <<set $NPCList[$righttarget].vagina to 0>><<set $rightarm to 0>> <span class="blue">You move your $currentSexToyRight away from <<hisselect $righttarget>> ass.</span> <</if>> <<if $leftaction is "dildoAnusDrop" and $NPCList[$lefttarget].penis is "leftdildoAnus">> <<set $leftaction to 0>><<set $leftactiondefault to "dildoAnusDrop">> <<set $NPCList[$lefttarget].penis to 0>><<set $leftarm to 0>> <span class="blue">You move your $currentSexToyLeft.name away from <<hisselect $lefttarget>> ass.</span> <</if>> <<if $rightaction is "dildoAnusDrop" and $NPCList[$righttarget].penis is "rightdildoAnus">> <<set $rightaction to 0>><<set $rightactiondefault to "dildoAnusDrop">> <<set $NPCList[$righttarget].penis to 0>><<set $rightarm to 0>> <span class="blue">You move your $currentSexToyRight away from <<hisselect $righttarget>> ass.</span> <</if>> <<if $leftaction is "dildoOtherAnusTease">> <<set $leftaction to 0>><<handskilluse>><<set $leftactiondefault to "dildoOtherAnusTease">><<combatpromiscuity3>> <<if combatSkillCheck("hand", $lefttarget)>> <<submission 1>><<sextoystat>> <<if $NPCList[$lefttarget].vagina is 0>> <<set $leftactiondefault to "dildoOtherAnusFuck">><<set $NPCList[$lefttarget].vagina to "leftDildoAnus">><<set $leftarm to "dildoOtherAnusFuck">><<personselect $lefttarget>> <span class="lblue">You <<handtext>> tease <<hisselect $lefttarget>> ass<<if $NPCList[$lefttarget].chastity.vagina.includes("chastity")>> through <<his>> $NPCList[$lefttarget].chastity.vagina<</if>> with the $currentSexToyLeft.name in your left hand.</span> <<elseif $NPCList[$lefttarget].penis is 0>> <<set $leftactiondefault to "dildoOtherAnusFuck">><<set $NPCList[$lefttarget].penis to "leftDildoAnus">><<set $leftarm to "dildoOtherAnusFuck">><<personselect $lefttarget>> <span class="lblue">You <<handtext>> tease <<hisselect $lefttarget>> ass<<if $NPCList[$lefttarget].chastity.penis.includes("chastity")>> through <<his>> $NPCList[$lefttarget].chastity.penis<</if>> with the $currentSexToyLeft.name in your left hand.</span> <<else>> <span class="blue">You try to tease <<hisselect $lefttarget>> ass with the $currentSexToyLeft.name in your left hand, but the entrance is already occupied.</span> <</if>> <<else>> You try to tease <<hisselect $lefttarget>> ass with the $currentSexToyLeft.name in your left hand, but <<he>> moves it away. <</if>> <</if>> <<if $rightaction is "dildoOtherAnusTease">> <<set $rightaction to 0>><<handskilluse>><<set $rightactiondefault to "dildoOtherAnusTease">><<combatpromiscuity3>> <<if combatSkillCheck("hand", $righttarget)>> <<submission 1>><<sextoystat>> <<if $NPCList[$righttarget].vagina is 0>> <<set $rightactiondefault to "dildoOtherAnusFuck">><<set $NPCList[$righttarget].vagina to "rightDildoAnus">><<set $rightarm to "dildoOtherAnusFuck">><<personselect $righttarget>> <span class="lblue">You <<handtext>> tease <<hisselect $righttarget>> ass<<if $NPCList[$righttarget].chastity.vagina.includes("chastity")>> through <<his>> $NPCList[$righttarget].chastity.vagina<</if>> with your right hand.</span> <<elseif $NPCList[$righttarget].penis is 0>> <<set $rightactiondefault to "dildoOtherAnusFuck">><<set $NPCList[$righttarget].penis to "rightDildoAnus">><<set $rightarm to "dildoOtherAnusFuck">><<personselect $righttarget>> <span class="lblue">You <<handtext>> tease <<hisselect $righttarget>> ass<<if $NPCList[$righttarget].chastity.penis.includes("chastity")>> through <<his>> $NPCList[$righttarget].chastity.penis<</if>> with your right hand.</span> <<else>> <span class="blue">You try to tease <<hisselect $righttarget>> ass with the $currentSexToyRight.name in your right hand, but the entrance is already occupied.</span> <</if>> <<else>> You try to tease <<hisselect $righttarget>> ass with the $currentSexToyRight.name in your right hand, but <<he>> moves it away. <</if>> <</if>> /* NPC Penis stroker */ <<if $leftaction is "strokerOtherPenisTease">> <<set $leftaction to 0>><<handskilluse>><<set $leftactiondefault to "strokerOtherPenisTease">><<combatpromiscuity3>> <<if combatSkillCheck("hand", $lefttarget)>> <<submission 1>><<sextoystat>> <<if $NPCList[$lefttarget].penis is 0>> <<set $leftactiondefault to "strokerOtherPenisTease">><<set $NPCList[$lefttarget].penis to "leftStroker">><<set $leftarm to "strokerOtherPenisFuck">><<personselect $lefttarget>> <span class="lblue">You <<handtext>> tease <<hisselect $lefttarget>> <<npcPenis $lefttarget>><<if $NPCList[$lefttarget].chastity.penis.includes("chastity")>> through <<his>> $NPCList[$lefttarget].chastity.penis<</if>> with the $currentSexToyLeft.name in your left hand.</span> <<else>> <span class="blue">You try to tease <<hisselect $lefttarget>> <<npcPenis $lefttarget>> with the $currentSexToyLeft.name in your left hand, but the entrance is already occupied.</span> <</if>> <<else>> You try to tease <<hisselect $lefttarget>> <<npcPenis $lefttarget>> with the $currentSexToyLeft.name in your left hand, but <<he>> moves it away. <</if>> <</if>> <<if $rightaction is "strokerOtherPenisTease">> <<set $rightaction to 0>><<handskilluse>><<set $rightactiondefault to "strokerOtherPenisTease">><<combatpromiscuity3>> <<if combatSkillCheck("hand", $righttarget)>> <<submission 1>><<sextoystat>> <<if $NPCList[$righttarget].penis is 0>> <<set $rightactiondefault to "strokerOtherPenisTease">><<set $NPCList[$righttarget].penis to "rightStroker">><<set $rightarm to "strokerOtherPenisFuck">><<personselect $righttarget>> <span class="lblue">You <<handtext>> tease <<hisselect $righttarget>> <<npcPenis $righttarget>><<if $NPCList[$righttarget].chastity.penis.includes("chastity")>> through <<his>> $NPCList[$righttarget].chastity.penis<</if>> with the $currentSexToyRight.name in your right hand.</span> <<else>> <span class="blue">You try to tease <<hisselect $righttarget>> <<npcPenis $righttarget>> with the $currentSexToyRight.name in your right hand, but the entrance is already occupied.</span> <</if>> <<else>> You try to tease <<hisselect $righttarget>> <<npcPenis $righttarget>> with the $currentSexToyRight.name in your right hand, but <<he>> moves it away. <</if>> <</if>> <<if $leftaction is "strokerOtherPenisFuck">> /* Note: deliberately does not take virginities */ <<set $leftaction to 0>><<set $leftactiondefault to "strokerOtherPenisFuck">><<handskilluse>> <<if combatSkillCheck("hand", $lefttarget)>> <<submission 10>><<set $speechstroker to 1>><<set $leftarm to "strokerOtherPenisFuck">><<set $NPCList[$lefttarget].penis to "leftStroker">> You <<handtext>> fuck <<their $lefttarget>> <<npcPenis $lefttarget>> with the $currentSexToyLeft.name in your left hand. <<elseif $NPCList[$lefttarget].penis is "leftStroker">> <<set $leftarm to 0>><<set $leftactiondefault to "strokerOtherPenisTease">> <<set $NPCList[$lefttarget].penis to 0>><<personselect $lefttarget>> <span class="blue">You try to fuck <<hisselect $lefttarget>> <<npcPenis $lefttarget>> with your $currentSexToyLeft.name, but <<he>> <<if $enemytype isnot "beast">>slaps your hand away<<else>>shifts way from you and growls<</if>>.</span> <</if>> <</if>> <<if $rightaction is "strokerOtherPenisFuck">> /* Note: deliberately does not take virginities */ <<set $rightaction to 0>><<set $rightactiondefault to "strokerOtherPenisFuck">><<handskilluse>> <<if combatSkillCheck("hand", $righttarget)>> <<submission 10>><<set $speechstroker to 1>><<set $rightarm to "strokerOtherPenisFuck">><<set $NPCList[$righttarget].penis to "rightStroker">> You <<handtext>> fuck <<their $righttarget>> <<npcPenis $righttarget>> with the $currentSexToyRight.name in your right hand. <<elseif $NPCList[$righttarget].penis is "rightStroker">> <<set $rightarm to 0>><<set $rightactiondefault to "strokerOtherPenisTease">> <<set $NPCList[$righttarget].penis to 0>><<personselect $righttarget>> <span class="blue">You try to fuck <<hisselect $righttarget>> <<npcPenis 0>> with your $currentSexToyRight.name, but <<he>> <<if $enemytype isnot "beast">>slaps your hand away<<else>>shifts way from you and growls<</if>>.</span> <</if>> <</if>> /*Stalked actions */ <<if !$stalk_end>> <<if $leftaction is "clench" and $rightaction is "clench">> <<if $earSlime.growth gt 50 and $earSlime.growth - random(0, Math.clamp(300 - ($earSlime.defyCooldown * 20), 0, 300)) gte (currentSkillValue('willpower')/ 10) and hasSexStat("exhibitionism", 2)>> <<if ($player.penisExist or playerHasStrapon()) and (!$player.vaginaExist or $worn.genitals.name is "chastity parasite" or random(0,100) gte 50)>> <<set _slimeTarget to playerHasStrapon() ? "strap-on" : (playerChastity("penis") ? $worn.genitals.name : "penis")>> <<set _slimeWidget to "penis">> <<elseif $player.vaginaExist>> <<set _slimeTarget to "vagina">> <<set _slimeWidget to "vagina">> <<else>> <<set _slimeTarget to "butt">> <<set _slimeWidget to "anus">> <</if>> You try to clench your fists, <span class="red">but you suddenly find them moving towards your _slimeTarget.</span> You feel the slime steal your control away. <<switch _slimeWidget>> <<case "penis">><<effectsCoverPenis "both" "lewd">> <<case "vagina">><<effectsCoverVagina "both" "lewd">> <<case "anus">><<effectsCoverAnus "both" "lewd">> <</switch>> <<else>> <<set $leftactiondefault to "clench">><<set $leftaction to 0>><<set $rightactiondefault to "clench">><<set $rightaction to 0>><<brat 6>> You clench your fists. <</if>> <<elseif $leftaction is "clench">> <<if $earSlime.growth gt 50 and $earSlime.growth - random(0, Math.clamp(300 - ($earSlime.defyCooldown * 20), 0, 300)) gte (currentSkillValue('willpower')/ 10) and hasSexStat("exhibitionism", 2)>> <<if ($player.penisExist or playerHasStrapon()) and (!$player.vaginaExist or $worn.genitals.name is "chastity parasite" or random(0,100) gte 50)>> <<set _slimeTarget to playerHasStrapon() ? "strap-on" : (playerChastity("penis") ? $worn.genitals.name : "penis")>> <<set _slimeWidget to "penis">> <<elseif $player.vaginaExist>> <<set _slimeTarget to "vagina">> <<set _slimeWidget to "vagina">> <<else>> <<set _slimeTarget to "butt">> <<set _slimeWidget to "anus">> <</if>> You try to clench your fists, <span class="red">but you suddenly find them moving towards your _slimeTarget.</span> You feel the slime steal your control away. <<switch _slimeWidget>> <<case "penis">><<effectsCoverPenis "left" "lewd">> <<case "vagina">><<effectsCoverVagina "left" "lewd">> <<case "anus">><<effectsCoverAnus "left" "lewd">> <</switch>> <<else>> <<set $leftactiondefault to "clench">><<set $leftaction to 0>><<brat 3>> You clench your left fist. <</if>> <<elseif $rightaction is "clench">> <<if $earSlime.growth gt 50 and $earSlime.growth - random(0, Math.clamp(300 - ($earSlime.defyCooldown * 20), 0, 300)) gte (currentSkillValue('willpower')/ 10) and hasSexStat("exhibitionism", 2)>> <<if ($player.penisExist or playerHasStrapon()) and (!$player.vaginaExist or $worn.genitals.name is "chastity parasite" or random(0,100) gte 50)>> <<set _slimeTarget to playerHasStrapon() ? "strap-on" : (playerChastity("penis") ? $worn.genitals.name : "penis")>> <<set _slimeWidget to "penis">> <<elseif $player.vaginaExist>> <<set _slimeTarget to "vagina">> <<set _slimeWidget to "vagina">> <<else>> <<set _slimeTarget to "butt">> <<set _slimeWidget to "anus">> <</if>> You try to clench your fists, <span class="red">but you suddenly find them moving towards your _slimeTarget.</span> You feel the slime steal your control away. <<switch _slimeWidget>> <<case "penis">><<effectsCoverPenis "right" "lewd">> <<case "vagina">><<effectsCoverVagina "right" "lewd">> <<case "anus">><<effectsCoverAnus "right" "lewd">> <</switch>> <<else>> <<set $rightactiondefault to "clench">><<set $rightaction to 0>><<brat 3>> You clench your right fist. <</if>> <</if>> <<if $leftaction is "fold" and $rightaction is "fold">> <<set $leftaction to 0>><<set $rightaction to 0>><<set $leftactiondefault to "fold">><<set $rightactiondefault to "fold">> <<if $player.breastsize gte 3>> You fold your arms beneath your <<breasts>>. <<else>> You fold your arms in front of you. <</if>> <<meek 6>> <</if>> <<if $leftaction is "fold">> <<set $leftaction to 0>><<set $leftactiondefault to "fold">> <<if $player.breastsize gte 3>> You fold your left arm beneath your <<breasts>>. <<else>> You fold your left arm in front of you. <</if>> <<meek 3>> <</if>> <<if $rightaction is "fold">> <<set $rightaction to 0>><<set $rightactiondefault to "fold">> <<if $player.breastsize gte 3>> You fold your right arm beneath your <<breasts>>. <<else>> You fold your right arm in front of you. <</if>> <<meek 3>> <</if>> <<if $leftaction is "pursuit_grab" and $rightaction is "pursuit_grab">> <<set $leftaction to 0>><<set $leftactiondefault to "pursuit_grab">><<set $rightaction to 0>><<set $rightactiondefault to "pursuit_grab">> <<set $feetaction to "rest">> <<set $feetuse to 0>> <<if $NPCList[0].state is "pursuit">> You grasp the back of the <<persons>> shirt with both hands, <span class="green">and force <<him>> to stop.</span> <<He>> turns to face you. <<else>> You lunge for <<if $npcrow.includes(0) and $stalk_assess>> <<if $huntGame>> <<print $huntGame.adversaryText>> <<else>> <<print $npc[$npcrow.indexOf(0)]>> <</if>> <<else>> the <<person>> <</if>> and <span class="green">wrap both of your arms around <<his>> waist</span>. You both tumble to the ground. <</if>> <<stalk_catch>> <</if>> <<if $leftaction is "pursuit_grab">> <<set $leftaction to 0>><<set $leftactiondefault to "pursuit_grab">> <<set $feetaction to "rest">> <<set $feetuse to 0>> <<if $NPCList[0].state is "pursuit">> You grasp the back of the <<persons>> shirt with your left hand, <span class="green">and force <<him>> to stop.</span> <<He>> turns to face you. <<else>> You lunge for <<if $npcrow.includes(0) and $stalk_assess>> <<if $huntGame>> <<print $huntGame.adversaryText>> <<else>> <<print $npc[$npcrow.indexOf(0)]>> <</if>> <<else>> the <<person>> <</if>> and <span class="green">grab <<him>> with your left hand</span>. You both tumble to the ground. <</if>> <<stalk_catch>> <</if>> <<if $rightaction is "pursuit_grab">> <<set $rightaction to 0>><<set $rightactiondefault to "pursuit_grab">> <<set $feetaction to "rest">> <<set $feetuse to 0>> <<if $NPCList[0].state is "pursuit">> You grasp the back of the <<persons>> shirt with your right hand, <span class="green">and force <<him>> to stop.</span> <<He>> turns to face you. <<else>> You lunge for <<if $npcrow.includes(0) and $stalk_assess>> <<if $huntGame>> <<print $huntGame.adversaryText>> <<else>> <<print $npc[$npcrow.indexOf(0)]>> <</if>> <<else>> the <<person>> <</if>> and <span class="green">grab <<him>> with your right hand</span>. You both tumble to the ground. <</if>> <<stalk_catch>> <</if>> <</if>> /*End of stalked actions */ /*** * ███████ ███████ ███████ ███████ * ██ ██ ██ ███ * ███████ ███████ ███████ ███ * ██ ██ ██ ███ * ██ ███████ ███████ ███ * */ <<if $newtarget isnot undefined>> <<setnewtarget>> <</if>> <<if $feetaction is "grab">> <<set $feetaction to 0>><<set $feetactiondefault to "grab">><<combatpromiscuity3>><<feetskilluse>> <<if combatSkillCheck("feet", $feettarget)>> <<submission 2>> <<if $NPCList[$feettarget].penis is 0>> <<set $feetactiondefault to "grabrub">><<set $NPCList[$feettarget].penis to "feet">><<set $feetuse to "penis">><<feetstat>> <span class="lblue">You <<feettext>> <<if $NPCList[$feettarget].chastity.penis.includes("chastity")>>rub your foot on <<hisselect $feettarget>> $NPCList[$feettarget].penisdesc through <<hisselect $feettarget>> $NPCList[$feettarget].chastity.penis<<else>>grab <<hisselect $feettarget>> $NPCList[$feettarget].penisdesc between your feet<</if>>.</span> <<else>> <span class="blue">You try to grab <<hisselect $feettarget>> $NPCList[$feettarget].penisdesc with your feet, but the phallus is already occupied.</span> <</if>> <<else>> You clumsily try to grab <<hisselect $feettarget>> penis between your feet, but fail. <</if>> <</if>> <<if $feetaction is "rest">> <<set $feetaction to 0>><<set $feetactiondefault to "rest">> You rest your legs. <</if>> <<if $feetaction is "kick">> <<set $feetaction to 0>><<set $feetactiondefault to "kick">> <<if numberOfEarSlime() and (($parasite.left_ear.name is "slime" and random(1, 3) is 3) or ($parasite.right_ear.name is "slime" and random(1, 3) is 3) or ($earSlime.growth gte 50 and random(1, 3) is 3))>> <<if $earSlime.growth gte (currentSkillValue('willpower') / 10) and random(0,100) gte $earSlime.growth / 3>> You try to kick the <<if $enemytype is "beast">><<beasttype>>,<<else>><<personselect $feettarget>><<person>>,<</if>> <span class="red">but the slime immobilises your legs.</span> <<if $earSlime.growth gt 50>><<set $earSlime.defyCooldown++>><</if>> <<elseif $earSlime.corruption gte (currentSkillValue('willpower') / 10) and random(0,100) gte 50>> You try to kick the <<if $enemytype is "beast">><<beasttype>>,<<else>><<personselect $feettarget>><<person>>,<</if>> <span class="red">but the slime distracts you, so you miss.</span> <<gwillpower>><<willpower 1>> <<else>> The slime tries to prevent you from kicking the <<if $enemytype is "beast">><<beasttype>><<else>><<personselect $feettarget>><<person>><</if>>, <span class="green">but you make contact regardless.</span> <<actionskick $feettarget>><<defiance 5 $feettarget>><<set $attackstat += 1>> <<if $worn.feet.type.includes("heels")>> Your high heels strengthen the blow! <<defiance 1 $feettarget>> <</if>> <</if>> <<else>> <<actionskick $feettarget>><<defiance 5 $feettarget>><<set $attackstat += 1>> <<if $worn.feet.type.includes("heels")>> Your high heels strengthen the blow! <<defiance 1 $feettarget>> <</if>> <</if>> <</if>> <<if $feetaction is "rub">> <<set $feetaction to 0>><<submission 1>><<actionsfeetrub $feettarget>> <</if>> <<rng>> <<if $feetaction is "grabrub">> <<feetskilluse>><<set $feetactiondefault to "grabrub">><<set $feetaction to 0>> <<if combatSkillCheck("feet", $feettarget)>> <<actionsgrabrub $feettarget>><<submission 2>> <<elseif $NPCList[$feettarget].penis is "feet">> <<set $feetactiondefault to "grab">><<personselect $feettarget>> <span class="blue">You try to rub <<hisselect $feettarget>> penis between your feet, but <<he>> moves away.</span> <<set $feetuse to 0>><<set $NPCList[$feettarget].penis to 0>><<set $NPCList[$feettarget].location.genitals to 0>> <</if>> <</if>> <<rng>> <<if $feetaction is "vaginagrab">> <<feetskilluse>><<set $feetaction to 0>><<set $feetactiondefault to "vaginagrab">><<combatpromiscuity3>> <<if combatSkillCheck("feet", $feettarget)>> <<submission 2>> <<if $NPCList[$feettarget].vagina is 0>> <<set $feetactiondefault to "vaginagrabrub">><<set $feetuse to "othervagina">><<set $NPCList[$feettarget].vagina to "feet">><<feetstat>><span class="lblue">You <<feettext>> press your feet against <<hisselect $feettarget>> pussy<<if $NPCList[$feettarget].chastity.vagina.includes("chastity")>> through <<hisselect $feettarget>> $NPCList[$feettarget].chastity.vagina<</if>>.</span> <<else>> <span class="blue">You to try press your feet against <<hisselect $feettarget>> pussy, but the entrance is already occupied.</span> <</if>> <<else>> You try to keep <<hisselect $feettarget>> pussy away with your feet, but <<he>> moves it away. <</if>> <</if>> <<rng>> <<if $feetaction is "vaginagrabrub">> <<set $feetaction to 0>><<feetskilluse>><<set $feetactiondefault to "vaginagrabrub">> <<if combatSkillCheck("feet", $feettarget)>> <<actionsfeetpussy $feettarget>><<submission 2>> <<elseif $NPCList[$feettarget].vagina is "feet">> <<set $feetactiondefault to "vaginagrab">><<personselect $feettarget>> <span class="blue">You try to keep <<hisselect $feettarget>> pussy away with your feet, but <<he>> moves away.</span> <<set $feetuse to 0>><<set $NPCList[$feettarget].vagina to 0>> <</if>> <</if>> <<if $feetaction is "stop">> <<set $feetaction to 0>><<set $feetactiondefault to "stop">> You move your feet away from <<his>> genitals. <<set $feetuse to 0>> <<if $NPCList[$feettarget].penis is "feet">> <<set $NPCList[$feettarget].penis to 0>> <</if>> <<if $NPCList[$feettarget].vagina is "feet">> <<set $NPCList[$feettarget].vagina to 0>> <</if>> <</if>> <<if $feetaction is "feetshoes">> <<set $feetaction to 0>> You kick off your $worn.feet.name. <<feetstrip>> <</if>> <<if $feetaction is "feetsocks">> <<set $feetaction to 0>> <<if $worn.legs.state is "thighs">> You peel your $worn.legs.name down your thighs with your toes. <<set $worn.legs.state to "ankles">> <<elseif $worn.legs.state is "ankles">> You kick off your $worn.legs.name. <<legsstrip>> <</if>> <</if>> <<if $feetaction is "legLock">> <<set $feetaction to 0>><<thighskilluse>><<set $feetactiondefault to "legLock">> <<if $consensual is 0>><<combatpromiscuity6>><<else>><<combatpromiscuity3>><</if>> <<set $_legLockDif to Math.floor((100 - $NPCList[$feettarget].pregnancyAvoidance) * 15)>> <<if combatSkillCheck("thigh", $feettarget, $NPCList[$feettarget].fullDescription, $_legLockDif)>> <<brat 2>><<sex 5 "genitals" $feettarget>><<set $feetactiondefault to "legLocked">><<set $feetuse to "legLock">><<set $leglocktarget to $feettarget>> <<set $speechleglock to 1>><<personselect $feettarget>> <<thighstat>><span class="lblue">You <<thightext>> <<if $position is "missionary">>wrap your legs around<<else>>push back against<</if>> <<combatperson $feettarget>>, preventing <<him>> from pulling out.</span> <<else>> You try to <<if $position is "missionary">>wrap your legs around<<else>>push back against<</if>> <<combatperson $feettarget>>, but <<he>> pulls your legs away. <</if>> <</if>> <<if $feetaction is "legLocked">> <<set $feetaction to 0>><<thighskilluse>><<set $feetactiondefault to "legLocked">> <<set $_legLockDif to Math.floor((100 - $NPCList[$feettarget].pregnancyAvoidance) * 10)>> <<if combatSkillCheck("thigh", $feettarget, $NPCList[$feettarget].fullDescription, $_legLockDif)>> <<brat 2>><<sex 5 "genitals" $feettarget>><<set $speechleglock to 1>><<personselect $feettarget>> <span class="lewd">You keep <<if $position is "missionary">>your legs wrapped around<<else>>pushing back against<</if>> <<combatperson $feettarget>>, giving <<him>> no chance to escape.</span> <<elseif $orgasmdown gte 1>> <<sex 5 "genitals" $feettarget>><<set $speechleglock to 1>><<personselect $feettarget>> <span class="lewd">You <<if $position is "missionary">>wrap your legs around<<else>>push back against<</if>> <<combatperson $feettarget>> even harder as you orgasm, preventing <<his>> escape. </span> <<else>> <<set $feetactiondefault to "legLock">><<set $feetuse to 0>><<unset $leglocktarget>> <span class="blue">You try to keep <<if $position is "missionary">>your legs wrapped around<<else>>pushing back against<</if>> <<combatperson $feettarget>>, but <<he>> manages to pry your legs away.</span> <</if>> <</if>> <<if $feetaction is "legRelease">> <<set $feetaction to 0>><<set $feetactiondefault to "legRelease">><<personselect $feettarget>> You <<if $position is "missionary">>release the leg lock<<else>>stop pushing back<</if>>, allowing <<combatperson $feettarget>> to escape. <<set $feetuse to 0>><<unset $leglocktarget>> <</if>> /*Stalked actions */ <<if !$stalk_end>> <<if $feetaction is "walk">> <<if $earSlime.growth gt 50 and $earSlime.growth - random(0, Math.clamp(75 - ($earSlime.defyCooldown * 5), 0, 75)) gte (currentSkillValue('willpower')/ 10) and hasSexStat("exhibitionism", 2)>> You're walking, <span class="red">but you suddenly find yourself moving differently.</span> You feel the slime steal your control away. <<set $feetaction to "strut">> <<else>> <<set $feetaction to 0>><<set $feetactiondefault to "walk">> <<set $feetuse to "walk">> You keep walking, <<if $control gte ($controlmax * 0.8)>> your feet sure and steady. <<elseif $control gte ($controlmax * 0.6)>> putting one foot in front of the other. <<elseif $control gte ($controlmax * 0.4)>> though worried about the gaining footsteps. <<elseif $control gte ($controlmax * 0.2)>> doing your best to stay calm. <<else>> suppressing the urge to break into a run. <</if>> <<stalk_walk_events>> <</if>> <</if>> <<if $feetaction is "strut">> <<set $feetaction to 0>><<set $feetactiondefault to "strut">> <<set $feetuse to "strut">> You strut, <<if $control gte ($controlmax * 0.8)>> swaying your shoulders and hips. <<elseif $control gte ($controlmax * 0.6)>> putting one foot in front of the other. <<elseif $control gte ($controlmax * 0.4)>> though worried about the gaining footsteps. <<elseif $control gte ($controlmax * 0.2)>> doing your best to stay calm. <<else>> suppressing the urge to break into a run. <</if>> <<meek 3>> <<stalk_walk_events>> <</if>> <<if $feetaction is "run">> <<set $feetaction to 0>><<set $feetactiondefault to "run">> <<if $mouthaction is "taunt" and !$stalk_end>> <<stalk_taunt_effects>> <<elseif _stalkNoRunning is "chastity parasite">> <<set $feetactiondefault to "walk">><<set $feetuse to "walk">> <<if $earSlime.growth gte 150>><<set $earSlime.defyCooldown++>><</if>> You attempt to run, <span class="lewd">but you find the pleasure you're feeling is too much to run.</span> <<stalk_walk_events>> <<elseif $earSlime.growth - random(0, Math.clamp(110 - ($earSlime.defyCooldown * 10), 0, 110)) gte (currentSkillValue('willpower')/ 10)>> <<if $earSlime.growth gt 50 and hasSexStat("exhibitionism", 2)>> <<set $feetactiondefault to "strut">><<set $feetuse to "strut">> You attempt to run, <span class="red">but you suddenly find yourself strutting.</span> You feel the slime steal your control away. <<meek 3>> <<else>> <<set $feetactiondefault to "walk">><<set $feetuse to "walk">> You attempt to run, <span class="red">but you find yourself being unable to move any quicker.</span> You feel the slime steal your control away. <</if>> <<if $daily.stalkWillpower lt 20>> <<gwillpower>><<willpower 1>> <<set $daily.stalkWillpower to ($daily.stalkWillpower or 0) + 1>> <</if>> <<stalk_walk_events>> <<elseif $NPCList[0].state is "pursuit">> <<if $feetuse isnot "run">> You break into a run and chase the thief. <<stalk_run>> <<else>> You chase the thief. <</if>> <<if !$stalk_event>> <<run_text>> <</if>> <<if $worn.feet.type.includes("heels")>> <<if currentSkillValue("feetskill") gte random(1, 1000)>> <<set _stalk_feet to true>> <<else>> <<set _stalk_feet to false>> <</if>> <<else>> <<set _stalk_feet to true>> <</if>> <<if currentSkillValue('athletics') gte random(1, $NPCList[0].skills.athletics)>> <<set _stalk_athletics to true>> <<else>> <<set _stalk_athletics to false>> <</if>> <<if _stalk_athletics and _stalk_feet>> <span class="teal">You catch up.</span> <<set $NPCList[0].distance -= 2>> <<else>> <span class="red"><<He>> outpaces you.</span> <br> <</if>> <<stalk_run_events>> <<elseif $NPCList[0].state is "chased">> <<if $feetuse isnot "run">> You break into a run and chase your quarry. <<stalk_run>> <<else>> You chase your quarry. <</if>> <<if !$stalk_event>> <<run_text>> <</if>> <<if $worn.feet.type.includes("heels")>> <<if currentSkillValue("feetskill") gte random(1, 1000)>> <<set _stalk_feet to true>> <<else>> <<set _stalk_feet to false>> <</if>> <<else>> <<set _stalk_feet to true>> <</if>> <<if currentSkillValue('athletics') gte random(1, $NPCList[0].skills.athletics)>> <<set _stalk_athletics to true>> <<else>> <<set _stalk_athletics to false>> <</if>> <<if _stalk_athletics and _stalk_feet>> <span class="teal">You catch up.</span> <<set $NPCList[0].distance -= 2>> <<else>> <span class="red"><<He>> outpaces you.</span> <br> <</if>> <<stalk_run_events>> <<else>> <<if $feetuse isnot "run">> You break into a run. <<if $NPCList[0].fullDescription is "Ivory Wraith" or $NPCList[0].bold * 2 gte random(1, 1000)>> The footsteps behind you speed up. <span class="red">You are being chased.</span> <<stalk_run>> <<if $worn.feet.type.includes("heels")>> <<if currentSkillValue("feetskill") gte random(1, 1000)>> <<set _stalk_feet to true>> <</if>> <<else>> <<set _stalk_feet to true>> <</if>> <<if currentSkillValue('athletics') gte random(1, $NPCList[0].skills.athletics)>> <<set _stalk_athletics to true>> <<else>> <<set _stalk_athletics to false>> <</if>> <<if _stalk_athletics and _stalk_feet>> <span class="teal">The footsteps fall behind.</span> <<set $NPCList[0].distance += 2>> <<else>> <span class="red">The footsteps get closer.</span> <</if>> <<else>> <span class="teal">No one pursues.</span> <<set $stalk_end to "escaped">> <</if>> <<else>> You keep running. <<if !$stalk_event>> <<run_text>> <</if>> <<if $worn.feet.type.includes("heels")>> <<if currentSkillValue("feetskill") gte random(1, 1000)>> <<set _stalk_feet to true>> <</if>> <<else>> <<set _stalk_feet to true>> <</if>> <<if currentSkillValue('athletics') gte random(1, $NPCList[0].skills.athletics)>> <<set _stalk_athletics to true>> <<else>> <<set _stalk_athletics to false>> <</if>> <<if _stalk_athletics and _stalk_feet>> <span class="teal">The footsteps fall behind.</span> <<set $NPCList[0].distance += 2>> <<else>> <span class="red">The footsteps get closer.</span> <</if>> <</if>> <<if $NPCList[0].distance gte 5>> <span class="green">You leave them far behind,</span> and escape to safety. <<set $stalk_end to "escaped">> <<else>> <<stalk_run_events>> <</if>> <</if>> <</if>> <<if $feetaction is "stand">> <<set $feetaction to 0>><<set $feetactiondefault to "stand">> <<if $control gte ($controlmax * 0.8)>> You stand still, your feet firm. <<elseif $control gte ($controlmax * 0.6)>> You stand still and take a deep breath. <<elseif $control gte ($controlmax * 0.4)>> Despite your nerves, you stand still. <<elseif $control gte ($controlmax * 0.2)>> You stand still, despite your fear. <<else>> Shaking with fear, you stand still. <</if>> <<set $NPCList[0].distance to 0>> <</if>> <<if $feetaction is "hobble">> <<set $feetaction to 0>><<set $feetactiondefault to "hobble">> <<if $leftleg is "bound" or $rightleg is "bound">> You hobble as fast as your bound legs will allow, <<else>> You hobble as fast as your inexperience with high heels will allow, <</if>> <<if $control gte ($controlmax * 0.8)>> your feet steady despite your predicament. <<elseif $control gte ($controlmax * 0.6)>> careful not to trip. <<elseif $control gte ($controlmax * 0.4)>> suppressing the growing fear of the footsteps behind you. <<elseif $control gte ($controlmax * 0.2)>> struggling to stay calm. <<else>> suppressing the urge to cower in terror. <</if>> <</if>> <<if $feetaction is "hide">> <<set $feetaction to 0>><<set $feetactiondefault to "hide">> <<set _difficulty to $NPCList[0].skills.security>> <<set _difficulty += $liquidcount * 20>> <<if currentSkillValue('skulduggery') gte random(1, _difficulty)>> <<set _hide_success to true>> <</if>> <<if $earSlime.growth - random(0, Math.clamp(75 - ($earSlime.defyCooldown * 5), 0, 75)) gte (currentSkillValue('willpower')/ 10)>> <<if $earSlime.growth gte 150>><<set $earSlime.defyCooldown++>><</if>> <<if $earSlime.growth gt 50 and hasSexStat("exhibitionism", 2)>> <<set $feetactiondefault to "strut">><<set $feetuse to "strut">> You attempt to hide, <span class="red">but you suddenly find yourself strutting.</span> You feel the slime steal your control away. <<meek 3>> <<else>> <<set $feetactiondefault to "walk">><<set $feetuse to "walk">> You attempt to hide, <span class="red">but you find yourself being unable to move any quicker.</span> You feel the slime steal your control away. <</if>> <<if $daily.stalkWillpower lt 20>> <<gwillpower>><<willpower 1>> <<set $daily.stalkWillpower to ($daily.stalkWillpower or 0) + 1>> <</if>> <<stalk_walk_events>> <<elseif _hide_success and ($NPCList[0].state is "pursuit" or $NPCList[0].state is "chased")>> <<switch $location>> <<case forest lake>> You hide behind a tree and hope that no one's watching. <<case moor>> You crouch behind a small ridge and hope that no one's watching. <<default>> You dive down a small alley and take cover behind a dumpster. <</switch>> <<set $stalk_end to "hide">> <<elseif !_hide_success and ($NPCList[0].fullDescription isnot "Ivory Wraith" and ($NPCList[0].legs is "run" or $NPCList[0].bold gte random(1, 1000)) or $NPCList[0].fullDescription is "Ivory Wraith" and C.npc["Ivory Wraith"].lust gte random(5,15))>> <<switch $location>> <<case alley>> You dive down a thin alley and take cover behind a dumpster. You peek around the corner. You don't see anyone. <<case forest lake>> You run into a dense copse and take cover behind a thick trunk. You peek around the side. You don't see anyone. <<case moor>> You crest a small ridge and dive into a ditch. You look up and don't see anyone. <<default>> You dive down a thin alley and take cover behind a dumpster. You peek around the side. You don't see anyone. <</switch>> <span class="red">Then you feel a presence.</span> <<set $NPCList[0].distance to 0>> /* Prevents stalking mouth actions from appearing once the encounter starts */ <<set $mouthaction to 0>><<set $mouthactiondefault to "rest">> <<if $npcrow.includes(0)>> <<stalk_nnpc_text_attack $NPCList[0].fullDescription>> <<if !$stalk_assess>> <<if $NPCList[0].fullDescription is "Ivory Wraith">> <span class="red">A<<if $wraith.seen gte 3>> familiar<</if>> pale figure stares down at you, eyes flashing <<wraithEyes>>.</span> <<else>> <span class="pink">It's <<print $npc[$npcrow.indexOf(0)]>>.</span> <</if>> <<set $stalk_assess to true>> <</if>> <br><br> <<events_stalk_nnpc $NPCList[0].fullDescription>> <<else>> <br><br> <<events_stalk>> <</if>> <<else>> <<switch $location>> <<case alley>> You dive down a thin alley and take cover behind a dumpster. <<if $NPCList[0].fullDescription isnot "Ivory Wraith">> <span class="green"><<if $enemyno gt 1>>They pass<<else>><<stalk_nnpc_name>> passes<</if>> without looking your way.</span> <</if>> <<case forest lake>> You run into a dense copse and take cover behind a thick trunk. You peek around the edge. <<if $NPCList[0].fullDescription isnot "Ivory Wraith">> <span class="green"><<if $enemyno gt 1>>They pass<<else>><<stalk_nnpc_name>> passes<</if>> by without looking your way.</span> <</if>> <<case moor>> You crest a small ridge and dive into a ditch. <<if $NPCList[0].fullDescription isnot "Ivory Wraith">> <<if $enemyno gt 1>> They pause at the top, <span class="green">then move on without looking your way.</span> <<else>> <<stalk_nnpc_name>> pauses at the top, <span class="green">then moves on without looking your way.</span> <</if>> <</if>> <<default>> You dive down a thin alley and take cover behind a dumpster. You peek around the side. <<if $NPCList[0].fullDescription isnot "Ivory Wraith">> <span class="green"><<if $enemyno gt 1>>They pass<<else>><<stalk_nnpc_name>> passes<</if>> without looking your way.</span> <</if>> <</switch>> <<if $NPCList[0].fullDescription is "Ivory Wraith">> <<set $stalk_assess to true>> The pale figure cackles and <span class="teal">dissipates into a thick, cool mist</span>. Its voice echoes around you. <<switch random(1, 3)>> <<case 3>><<set _wraith_output to "You can only hide from yourself for so long.">> <<case 2>><<set _wraith_output to "As the sun rests below the horizon.">> <<case 1>><<set _wraith_output to "Before they lose their shine.">> <</switch>> "<span class="wraith"><<print _wraith_output>></span>" <<trauma 2>><<stress 4>><<gtrauma>><<gstress>> <</if>> <<set $stalk_end to "hide">> <</if>> <</if>> <<if $feetaction is "confront">> <<famescrap 1>> You swivel around and come face to face with <<person1>> <<if $npcrow.includes(0)>> <<if $NPCList[0].fullDescription is "Ivory Wraith">> <<if $stalk_assess>> the pale figure. <<else>> a<<if $wraith.seen gte 3>> familiar<</if>> pale figure. <</if>> <<else>> <<if $stalk_assess>> <<if $enemyno gte 3>> <<print $NPCList[0].fullDescription>> and <<his>> companions. <<elseif $enemyno is 2>> <<print $NPCList[0].fullDescription>> and <<his>> companion. <<else>> <<print $NPCList[0].fullDescription>>. <</if>> <<else>> <<if $enemyno gte 3>> a <<personsimple>> and <<his>> companions. <<elseif $enemyno is 2>> a <<personsimple>> and <<his>> companion. <<else>> a <<personsimple>>. <</if>> <span class="pink">It's <<print $NPCList[0].fullDescription>>.</span> <</if>> <</if>> <<elseif $enemyno gte 3>> the <<person>> and <<his>> companions. <<elseif $enemyno is 2>> the <<person>> and <<his>> companion. <<else>> the <<person>>. <</if>> <<set $stalk_assess to true>> <<if $npcrow.includes(0)>> <<actionsconfrontNNPC>> <<else>> <<actionsconfront>> <</if>> <br><br> <<if $combatgoal is "confront">> <<if $NPCList[0].fullDescription is "Ivory Wraith">> <<set $stalk_assess to true>> You blink. When you open your eyes, <span class="red">the pale figure is inches from your face.</span> <<elseif $NPCList[0].fullDescription is "Gwylan">> <span class="red"><<He>> pounces, and tackles you to the ground.</span> <<else>> <span class="purple"><<He>> comes to a stop in front of you.</span> <</if>> <br><br> <<set $NPCList[0].distance to 0>> <<set $stalk_end to "confront">> <<elseif $NPCList[0].fullDescription isnot "Ivory Wraith" and $NPCList[0].bold * 2 gte random(1, 1000) or $NPCList[0].fullDescription is "Ivory Wraith" and C.npc["Ivory Wraith"].lust gte random(1,10)>> <<if $NPCList[0].fullDescription is "Ivory Wraith">> You blink. When you open your eyes, <span class="red">the pale figure is inches from your face.</span> <<elseif $NPCList[0].fullDescription is "Gwylan">> <span class="red"><<He>> doesn't stop.</span> <<else>> <span class="red"><<He>> marches towards you.</span> <</if>> /* Prevents stalking mouth actions from appearing once the encounter starts */ <<set $mouthaction to 0>><<set $mouthactiondefault to "rest">> <<if $NPCList[0].fullDescription is "Gwylan">> <<stalk_nnpc_text_attack $NPCList[0].fullDescription>> <<set $NPCList[0].distance to 0>> <<events_stalk_nnpc $NPCList[0].fullDescription>> <<else>> <<if $npcrow.includes(0)>> <<stalk_nnpc_text_attack $NPCList[0].fullDescription>> <<elseif $NPCList[0].traits.includes("relaxed")>> "Best play along," <<he>> says. "It'll be easier for you." <<elseif $NPCList[0].traits.includes("sociable")>> "That's no way to talk to a <<if $pronoun is "m">>gentleman<<else>>lady<</if>> like me," <<he>> says. "I know how you can make it up to me." <<elseif $NPCList[0].traits.includes("brooding")>> "This is the way of the world," <<he>> says. "It'll be over soon." <<else>> "You're such a hot piece," <<he>> says. "You're gonna get jumped sooner or later. I might as well benefit." <</if>> <br><br> <<set $NPCList[0].distance to 0>> <<stalk_img>> <br><br> <<stalk_attack>> <</if>> <<else>> <<if $npcrow.includes(0)>> <<stalk_nnpc_text_threat $NPCList[0].fullDescription>> <<else>> <span class="green"><<He>> throws up <<his>> hands.</span> <<if $NPCList[0].traits.includes("relaxed")>> "Easy <<girl>>," <<he>> says, giving you a wide berth. "I didn't mean to frighten you." <<elseif $NPCList[0].traits.includes("sociable")>> "Damn <<girl>>," <<he>> says. "Am I that ugly?" <<He>> gives you a wide berth. <<elseif $NPCList[0].traits.includes("brooding")>> The <<person>> laughs. "The streets that rough for you?" <<he>> asks. "I'll give you space." <<else>> "I was only looking!" <<he>> says. "Wasn't gonna try anything, honest." <<He>> gives you a wide berth. <</if>> <br><br> <<He>> walks ahead. You feel a little silly. <</if>> <br><br> <<set $stalk_end to "passed">> <<set $NPCList[_n].distance to 1>> <</if>> <</if>> <<if $feetaction is "ambush" and !$stalk_end>> <<set $feetaction to 0>><<set $feetactiondefault to "run">> <<set _difficulty to $NPCList[0].skills.athletics>> <<if currentSkillValue('skulduggery') gte random(1, _difficulty)>> <<set _ambush_success to true>> <</if>> <<if $earSlime.growth - random(0, Math.clamp(75 - ($earSlime.defyCooldown * 5), 0, 75)) gte (currentSkillValue('willpower')/ 10)>> <<if $earSlime.growth gte 150>><<set $earSlime.defyCooldown++>><</if>> <<if $earSlime.growth gt 50 and hasSexStat("exhibitionism", 2)>> <<set $feetactiondefault to "strut">><<set $feetuse to "strut">> You attempt to hide for an ambush, <span class="red">but you suddenly find yourself strutting.</span> You feel the slime steal your control away. <<meek 3>> <<else>> <<set $feetactiondefault to "walk">><<set $feetuse to "walk">> You attempt to hide for an ambush, <span class="red">but you find yourself being unable to move any quicker.</span> You feel the slime steal your control away. <</if>> <<if $daily.stalkWillpower lt 20>> <<gwillpower>><<willpower 1>> <<set $daily.stalkWillpower to ($daily.stalkWillpower or 0) + 1>> <</if>> <<stalk_walk_events>> <<elseif !_ambush_success or $NPCList[0].fullDescription is "Ivory Wraith" and C.npc["Ivory Wraith"].lust gte random(5,15)>> <<switch $location>> <<case alley>> You dive down a thin alley and take cover behind a dumpster. You prepare to pounce. <<case forest lake>> You run into a dense copse and take cover behind a thick trunk. You prepare to pounce. <<case moor>> You crest a small ridge and dive into a ditch. You prepare to pounce. <<default>> You dive down a thin alley and take cover behind a dumpster. You prepare to pounce. <</switch>> <br><br> You leap out and attack as you sense <<if $enemyno gt 1>>them<<else>><<him>><</if>> coming close, <<if $NPCList[0].fullDescription is "Ivory Wraith">> <span class="red">only to be met in the embrace of countless pale arms.</span> <<elseif $NPCList[0].fullDescription is "Gwylan">> <span class="red">only for <<him>> to deftly dodge and grab you, in turn.</span> <<else>> <span class="red">but <<he>> was ready for you. <<He>> catches you and pins you down.</span> <</if>> /* Prevents stalking mouth actions from appearing once the encounter starts */ <<set $mouthaction to 0>><<set $mouthactiondefault to "rest">> <br><br> <<set $NPCList[0].distance to 0>> <<if $npcrow.includes(0)>> <<stalk_nnpc_text_attack $NPCList[0].fullDescription>> <<if !$stalk_assess>> <<if $NPCList[0].fullDescription is "Ivory Wraith">> <span class="red">A<<if $wraith.seen gte 3>> familiar<</if>> pale figure stares down at you, eyes flashing <<wraithEyes>>.</span> <<else>> <span class="pink">It's <<print $npc[$npcrow.indexOf(0)]>>.</span> <</if>> <</if>> <br><br> <<events_stalk_nnpc $NPCList[0].fullDescription>> <<else>> <br><br> <<stalk_attack>> <</if>> <<else>> <<switch $location>> <<case alley>> You dive down a thin alley on all fours. You deftly turn on the spot, taking cover behind a dumpster and preparing to pounce. <<case forest lake>> You run into a dense copse on all fours and take cover behind a thick trunk. You prepare to pounce. <<case moor>> You crest a small ridge and deftly turn on all fours to face your <<pluralise $enemyno "pursuer">>. You prepare to pounce. <<default>> You dive down a thin alley on all fours. You deftly turn on the spot, taking cover behind a dumpster and preparing to pounce. <</switch>> <br><br> <<if $NPCList[0].fullDescription is "Ivory Wraith">> <<set $stalk_assess to true>> Your heart pounds in your ears. You can't hear anyone approaching, but you can feel it. You let your instincts guide you and leap from cover to attack. <br><br> Your vision is filled with a terrible pale, <span class="red">which fades into a freezing mist as soon as you touch it</span>. You crash painfully to the ground. <<pain 4>><<gpain>> <br><br> Its voice echoes around you. <<switch random(1, 3)>> <<case 3>><<set _wraith_output to "The pursuit bends.">> <<case 2>><<set _wraith_output to "The predator remembers its place.">> <<case 1>><<set _wraith_output to "Take nothing in your hands. Feast on it.">> <</switch>> "<span class="wraith"><<print _wraith_output>></span>" <<trauma 2>><<stress 4>><<gtrauma>><<gstress>> <<else>> Your sharp ears focus on the sound of footsteps, and you wait for the perfect moment. You spring out of your hiding spot, <<if $npcrow.includes(0)>> <<if !$stalk_assess>> <span class="green">and topple your pursuer.</span> <span class="pink">It's <<print $npc[$npcrow.indexOf(0)]>>.</span> <<else>> <span class="green">and topple <<print $npc[$npcrow.indexOf(0)]>>.</span> <</if>> <<else>> <span class="green">and topple the <<person1>><<person>>. <<if $enemyno gt 1>><<His>> companion<<if $enemyno gt 2>>s back<<else>> backs<</if>> away in shock.<</if>></span> <</if>> <</if>> <<set $stalk_end to "ambush">> <</if>> <</if>> <</if>> /*End of stalked actions */ /*** * ██ ██ █████ ██ ██ ███████ ██ ██ * ███ ███ ██ ██ ██ ██ ███ ██ ██ * ██ █ ██ ██ ██ ██ ██ ███ ███████ * ██ ██ ██ ██ ██ ██ ███ ██ ██ * ██ ██ █████ █████ ███ ██ ██ * */ <<if $newtarget isnot undefined>> <<setnewtarget>> <</if>> <<if $mouthaction is "rest">> <<set $mouthaction to 0>><<set $mouthactiondefault to "rest">> <</if>> <<if $mouthaction is "kissskin">> <<set $mouthaction to 0>><<actionskiss $mouthtarget>><<submission 3>><<set $mouthactiondefault to "kissskin">> <</if>> <<if $mouthaction is "kisslips">> <<set $mouthaction to 0>><<set $mouthactiondefault to "kisslips">><<personselect $mouthtarget>><<combatpromiscuity1>> <<if $NPCList[$mouthtarget].fullDescription is "Gwylan" and (C.npc.Gwylan.dom lt 50 or !$gwylanSeen?.includes("yearning"))>> You move your lips close to <<hers>>, <<if $NPCList[$mouthtarget].lefthand is 0 or $NPCList[$mouthtarget].rightthand is 0>> <<if $NPCList[$mouthtarget].lefthand is 0>> <<set $NPCList[0].lefthand to "mouth">>but <<he>> clasps <<his>> hand over your mouth. <<set $mouthuse to "lefthand">> <<else>> <<set $NPCList[0].righthand to "mouth">>but <<he>> clasps <<his>> hand over your mouth. <<set $mouthuse to "righthand">> <</if>> <<else>> but <<he>> moves away. <</if>> <span class="purple"><<He_Short>> looks annoyed.</span> <<set $enemytrust -= 40>><<set $enemyanger += 5>> <<elseif combatSkillCheck("oral", $mouthtarget)>> You move your lips close to <<hers>>. <<set $mouthuse to "kiss">><<set $mouthstate to "kissentrance">> <<set $NPCList[$mouthtarget].mouth to "kissentrance">> <<set $NPCList[$mouthtarget].location.head = "head">> <<else>> You try to move your head closer to <<hers>>, but <<he>> moves away. <</if>> <</if>> <<if $mouthaction is "growl">> <<set $mouthaction to 0>><<set $mouthactiondefault to "growl">><<set _sound to 1>> <<if playerAwareTheyAreInHeat()>> <<set $speechgrowlheat to 1>> <<submission 2>> You try to growl, <span class="pink">but being in heat makes it sound like a lewd whine.</span> <<elseif playerRutMinArousal() or playerHeatMinArousal()>> <<set $speechgrowlrut to 1>> <<submission 2>> You try to growl, <span class="pink">but being in rut makes it sound like a lewd whine.</span> <<else>> <<set $speechgrowl to 1>> <<actionsgrowl>> <<brat 2>> <</if>> <</if>> <<if $mouthaction is "plead">> <<set $mouthaction to 0>><<set _sound to 1>> <<if $neckuse is "hand" and $oxygen lt $oxygenmax and $settings.asphyxiaLevel gte 2>> <<wheeze "plead with <<him>>">> <<else>> <<set $mouthactiondefault to "plead">> <<actionsplead>><<set $speechplead to 1>> <<if $role is "islander" and (!$islander_language or $islander_language lt 100)>> <<if $enemyno gte 2>>They don't<<else>><<He>> doesn't<</if>> understand your words, but <<if $enemyno gte 2>>react<<else>>reacts<</if>> to your tone. <</if>> <<meek `1 + $englishtrait`>> <</if>> <</if>> <<if $mouthaction is "moan">> <<set $mouthaction to 0>><<set _sound to 1>> <<if $neckuse is "hand" and $oxygen lt $oxygenmax and $settings.asphyxiaLevel gte 2>> <<wheeze "say something sexy" 2>><<set $speechmoan to 1>> <<else>> <<set $mouthactiondefault to "moan">> <<actionsmoan>><<set $speechmoan to 1>> <<if $role is "islander" and (!$islander_language or $islander_language lt 100)>> <<if $enemyno gte 2>>They don't<<else>><<He>> doesn't<</if>> understand your words, but <<if $enemyno gte 2>>react<<else>>reacts<</if>> to your tone. <</if>> <<submission `1 + $englishtrait`>> <</if>> <</if>> <<if $mouthaction is "ask" and $askAction is "askchoke" and $askedtochoke isnot 1>> <<set $mouthaction to 0>><<unset $askAction>><<set _sound to 1>> <<if $neckuse is "hand" and $oxygen lt $oxygenmax and $settings.asphyxiaLevel gte 2>> <<wheeze "ask to choke you" 1>> <<else>> <<set $askedtochoke to 1>> <<set $mouthactiondefault to 0>> <<actionschoke>> <<if $role is "islander" and (!$islander_language or $islander_language lt 100)>> <span class="red"><<if $enemyno gte 2>>They don't<<else>><<He>> doesn't<</if>> understand your words,</span> and <<if $enemyno gte 2>>ignore<<else>>ignores<</if>> them. <</if>> <<submission `1 + $englishtrait`>> <</if>> <</if>> <<if $mouthaction is "ask" and $askAction is "askrough">> <<set $mouthaction to 0>><<unset $askAction>><<set _sound to 1>> <<if $neckuse is "hand" and $oxygen lt $oxygenmax and $settings.asphyxiaLevel gte 2>> <<wheeze "ask to be rougher" 2>> <<else>> <<askrough>> <<if $role is "islander" and (!$islander_language or $islander_language lt 100)>> <span class="red"><<if $enemyno gte 2>>They don't<<else>><<He>> doesn't<</if>> understand your words,</span> and <<if $enemyno gte 2>>ignore<<else>>ignores<</if>> them. <</if>> <<submission 1>><<set $enemyanger += (10 * $englishtrait)>><<set $speechaskrough to 1>> <</if>> <</if>> <<if $mouthaction is "demand">> <<set $mouthaction to 0>><<set _sound to 1>> <<if $wolfgirl gte 6>> <<stress -1>> <<if $submissive gte 850>> <<trauma 6>><<control -1>> <</if>> <</if>> <<if $neckuse is "hand" and $oxygen lt $oxygenmax and $settings.asphyxiaLevel gte 2>> <<if $submissive gte 850 and $wolfgirl gte 6>> <span @class=basicJitterCss()><<wheeze "demand something">></span> <<else>> <<wheeze "demand something">> <</if>> <<else>> <<set $mouthactiondefault to "demand">> <<if $submissive gte 850 and $wolfgirl gte 6>> <span @class=basicJitterCss()><<actionsdemand>></span> <<else>> <<actionsdemand>> <</if>> <<set $speechdemand to 1>> <<if $role is "islander" and (!$islander_language or $islander_language lt 100)>> <<if $enemyno gte 2>>They don't understand your words, but flinch<<else>><<He>> doesn't understand your words, but flinches<</if>> at your tone. <</if>> <<defiance `1 + $englishtrait`>> <</if>> <</if>> <<if $mouthaction is "mock" or $mouthaction is "disparage">> <<if $mouthaction is "disparage">> <<set _disparage to true>> <<else>> <<set _disparage to false>> <</if>> <<set $mouthaction to 0>><<set _sound to 1>> <<if $neckuse is "hand" and $oxygen lt $oxygenmax and $settings.asphyxiaLevel gte 2>> <<wheeze "mock <<him>>">> <<else>> <<if _disparage is false>> <<set $mouthactiondefault to "mock">> <<else>> /*Fallen Angel disparage */ <<set $enemyanger += 50>> <<set $mockaction to $NPCList[$mouthtarget].insecurity>> <<set $angelforgive to 1>> <<set $mouthactiondefault to "rest">> <<set _disparage to false>> <</if>> <<actionsmock>><<set $speechdemand to 1>> <<brat `1 + $englishtrait` $mouthtarget>> <<if $role is "islander" and (!$islander_language or $islander_language lt 100)>> <<elseif $mockaction is $NPCList[$mouthtarget].insecurity>> <<if $consensual is 1>> <<submission `1 + $englishtrait` $mouthtarget>> <<else>> <<combatcontrol `1 + $englishtrait`>> <</if>> <</if>> <</if>> <</if>> <<if $mouthaction is "mouth">> <<set $mouthaction to 0>><<submission 1 $mouthtarget>><<set $mouthactiondefault to "mouth">><<combatpromiscuity4>> <<if $penisbitten is 1>> <<He>> smacks your head away from <<his>> penis. <<violence 5>> <<elseif combatSkillCheck("oral", $mouthtarget)>> <<set $mouthsubmit to 1>><<oralskilluse>> <<if $NPCList[$mouthtarget].penis is 0>> <<set $NPCList[$mouthtarget].penis to "mouthentrance">><<set $mouthactiondefault to "lick">><<set $mouthuse to "penis">><<set $mouthstate to "entrance">> <span class="lblue">You <<oraltext>> move your mouth to <<hisselect $mouthtarget>> <<npcPenis $mouthtarget>><<if !$npcSub>> and <<he>> waits expectantly<</if>>.</span> <<if $enemytype is "beast">><<set $NPCList[$mouthtarget].stance to "topface">><</if>> <<set $NPCList[$mouthtarget].location.genitals to "head">> <<else>> <span class="blue">You try to move your mouth to <<hisselect $mouthtarget>> <<npcPenis $mouthtarget>>, but the phallus is already occupied.</span> <</if>> <<else>> You try to move into a position where your mouth can take <<hisselect $mouthtarget>> penis, but <<he>> has other ideas. <<oralskilluse>> <</if>> <</if>> <<if $mouthaction is "swallow" and $NPCList[$mouthtarget].penis.toString().includes("mouth")>> <<set $mouthaction to 0>><<set $mouthactiondefault to "swallow">><<combatpromiscuity5>> <<set $NPCList[$mouthtarget].penis to "mouth">> <span class="pink">You take <<hisselect $mouthtarget>> $NPCList[$mouthtarget].penisdesc into your mouth.</span> <<switch $NPCList[$mouthtarget].penissize>> <<case 4>> <span class="pink"> You struggle to accommodate its girth.</span> <<case 1>> <span class="pink"> You struggle to keep your mouth on something so small.</span> <</switch>> <<if $player.virginity.oral isnot true>> <<if $NPCList[$mouthtarget].type is "plant">> <span class="pink"> It tastes sweet.</span> <</if>> <<submission 10>><<bruise face>><<oralstat>><<raped>><<set $mouthstate to "penetrated">><<set $speechmouthpenetrated to 1>> <<elseif $player.virginity.oral is true>> <<if $NPCList[$mouthtarget].type is "plant">> <span class="red">It tastes uncomfortably sweet.</span> <<else>> <span class="red">It tastes strange.</span> <</if>> <<submission 30>> <<takeVirginity $NPCList[$mouthtarget].fullDescription "oral">><<bruise face>><<oralstat>><<violence 1>><<raped>> <<set $mouthstate to "penetrated">><<set $speechmouthvirgin to 1>> <</if>> <</if>> <<if $mouthaction is "othervagina">> <<set $mouthaction to 0>><<submission 1 $mouthtarget>><<set $mouthactiondefault to "othervagina">><<combatpromiscuity4>> <<if $penisbitten is 1>> <<He>> smacks your head away from <<his>> pussy. <<violence 5>> <<elseif combatSkillCheck("oral", $mouthtarget)>> <<set $mouthsubmit to 1>><<oralskilluse>> <<if $NPCList[$mouthtarget].vagina is 0>> <span class="lblue">You <<oraltext>> move your mouth to <<hisselect $mouthtarget>> <<npcVagina $mouthtarget>><<if !$npcSub>> and <<he>> waits expectantly<</if>>.</span> <<set $NPCList[$mouthtarget].vagina to "mouth">><<set $mouthstate to "othervagina">><<set $mouthuse to "othervagina">> <<if $enemytype is "beast">><<set $NPCList[$mouthtarget].stance to "topface">><</if>><<set $mouthactiondefault to "vaginalick">> <<set $NPCList[$mouthtarget].location.genitals to "head">> <<else>> <span class="blue">You try to move your mouth to <<hisselect $mouthtarget>> <<npcVagina $mouthtarget>>, but the entrance is already occupied.</span> <</if>> <<else>> You try to move into a position where your mouth can eat <<hisselect $mouthtarget>> pussy, but <<he>> has other ideas. <<oralskilluse>> <</if>> <</if>> <<if $mouthaction is "breastpull" and $NPCList[$mouthtarget].chest.toString().includes("mouth")>> <<set $mouthaction to 0>><<set $mouthactiondefault to "breastpull">><<personselect $mouthtarget>> You try to pull your head away from the chest pressing against your face. <<oralskilluse>><<brat 1 $mouthtarget>> <<set _nectarDifficulty to Math.clamp($drugged, 0, 500) + Math.clamp($nectar_addiction, 0, 500)>> <<willpowerdifficulty _nectarDifficulty $willpowermax "silent">> <<if $NPCList[$mouthtarget].type is "plant" and !$willpowerSuccess>> <span class="red">However, you can't tear yourself from the sweet nectar.</span> <<if $mouthstate is "nipple">> You desperately suck their $NPCList[$mouthtarget].breastdesc. <<else>> You push your face back into their $NPCList[$mouthtarget].breastdesc. <</if>> <<gwillpower>><<willpower 1>> <<else>> <<if combatSkillCheck("oral", $mouthtarget, $NPCList[$mouthtarget].fullDescription)>> <<set $mouthstate to 0>><<set $mouthuse to 0>> <<set $NPCList[$mouthtarget].chest to 0>> <<set $NPCList[$mouthtarget].location.head to 0>> <span class="green"><<He>> doesn't stop you.</span> <<if $NPCList[$mouthtarget].lefthand is "head_breasts" or $NPCList[$mouthtarget].lefthand is "head_nipples">> <<set $NPCList[$mouthtarget].lefthand to 0>> <</if>> <<if $NPCList[$mouthtarget].righthand is "head_breasts" or $NPCList[$mouthtarget].righthand is "head_nipples">> <<set $NPCList[$mouthtarget].righthand to 0>> <</if>> <<else>> <<if $consensual is 1>> <<set $consensual to 0>><<molested>><<controlloss>> <</if>> <<violence 1>> <<if $mouthstate is "breasts">> <span class="red">However, <<he>> refuses to allow it,</span> instead pushing your head back against their chest. <<elseif $mouthstate is "nipple">> <span class="red">However, <<he>> refuses to allow it,</span> instead pushing your head back against their chest. <</if>> <</if>> <</if>> <</if>> <<if $mouthaction is "movetochest">> <<set $mouthaction to 0>><<submission 1 $mouthtarget>><<set $mouthactiondefault to "movetochest">><<combatpromiscuity3>> <<if $breastbitten is 1>> <<He>> smacks your head away from <<his>> chest. <<violence 5>> <<elseif combatSkillCheck("oral", $mouthtarget)>> <<oralskilluse>> <<if $NPCList[$mouthtarget].chest is 0>> <<set $mouthactiondefault to "breastlick">> <span class="lblue">You <<oraltext>> move your mouth to <<hisselect $mouthtarget>> $NPCList[$mouthtarget].breastsdesc.</span> <<if $NPCList[$mouthtarget].type is "plant" and $NPCList[$mouthtarget].pronoun is "f" and $settings.breastFeedingEnabled>> <span class="purple">It carries a sweet scent.</span> <<elseif $NPCList[$mouthtarget].lactation is 1 and $settings.breastFeedingEnabled>> <span class="purple">It carries a scent of milk.</span> <</if>> <<set $NPCList[$mouthtarget].chest to "mouthentrance">><<set $mouthstate to "breasts">><<set $mouthuse to "breasts">><<set $head to "breasts">> <<set $NPCList[$mouthtarget].location.head to "head">> <<else>> <span class="blue">You try to move your mouth to <<someones $mouthtarget>> chest, but the place is already occupied.</span> <</if>> <<else>> You try to move your mouth to <<someones $mouthtarget>> chest, but <<he>> has other ideas. <<oralskilluse>> <</if>> <</if>> <<if $mouthaction is "breastbite" and $NPCList[$mouthtarget].chest is "mouth">> <<if $earSlime.growth gt 50 and $earSlime.growth - random(0, Math.clamp(50 - ($earSlime.defyCooldown * 5), 0, 50)) gte (currentSkillValue('willpower')/ 10)>> You try to bite down on the nipple, <span class="red">but find you're unable to.</span> You feel the slime steal your control away. <<set $mouthaction to "breastsuck">> <<if $earSlime.growth gte 100>><<set $earSlime.defyCooldown++>><</if>> <<else>> <<set $mouthaction to 0>><<set $mouthactiondefault to "breastbite">><<personselect $mouthtarget>> You bite down on the nipple, <<he>> <<if $enemytype is "man">>yelps<<elseif $enemytype is "beast">>growls<<else>>shrieks<</if>> and recoils in agony. <<defiance 20 $mouthtarget>><<attackstat>><<set $mouthuse to 0>><<set $breastbitten to 1>><<set $mouthstate to 0>> <<if $transformationParts.traits.fangs isnot "disabled">> <<defiance 40 $mouthtarget>> You lick your fangs clean. <</if>> <<if $head is "breasts">> <<set $head to 0>> <</if>> <<set $NPCList[$mouthtarget].chest to 0>> <<set $NPCList[$mouthtarget].location.head to 0>> <<if $NPCList[$mouthtarget].lefthand is "head_nipples">> <<set $NPCList[$mouthtarget].lefthand to 0>> <</if>> <<if $NPCList[$mouthtarget].righthand is "head_nipples">> <<set $NPCList[$mouthtarget].righthand to 0>> <</if>> <</if>> <</if>> <<if $mouthaction is "breastlick" and $NPCList[$mouthtarget].chest is "mouthentrance">> <<set $mouthactiondefault to "breastlick">><<set $mouthaction to 0>><<submission 3>> You lick <<hisselect $mouthtarget>> $NPCList[$mouthtarget].breastsdesc. <</if>> <<if $mouthaction is "breastclosed" and $NPCList[$mouthtarget].chest.toString().includes("mouth")>> <<set $mouthactiondefault to "breastclosed">><<set $mouthaction to 0>><<brat 3 $mouthtarget>> You keep your mouth closed. <<if $NPCList[$mouthtarget].type is "plant" and $NPCList[$mouthtarget].pronoun is "f" and $settings.breastFeedingEnabled>> <span class="pink">Nectar leaks from <<hisselect $mouthtarget>> $NPCList[$mouthtarget].breastdesc.</span> <<elseif $NPCList[$mouthtarget].lactation is 1 and $settings.breastFeedingEnabled>> <span class="pink">Milk leaks from <<hisselect $mouthtarget>> $NPCList[$mouthtarget].breastdesc.</span> <</if>> <</if>> <<if $mouthaction is "breastsuck" and $NPCList[$mouthtarget].chest.toString().includes("mouth")>> <<set $mouthactiondefault to "breastsuck">><<set $mouthaction to 0>><<submission 3>> <<set $mouthstate to "nipple">> <<set $NPCList[$mouthtarget].chest to "mouth">> You <<oraltext>> suck <<hisselect $mouthtarget>> $NPCList[$mouthtarget].breastdesc. <<if $NPCList[$mouthtarget].lefthand is "head_breasts">><<set $NPCList[$mouthtarget].lefthand to "head_nipples">><</if>> <<if $NPCList[$mouthtarget].righthand is "head_breasts">><<set $NPCList[$mouthtarget].righthand to "head_nipples">><</if>> <<if $settings.breastFeedingEnabled and $NPCList[$mouthtarget].type is "plant" and $NPCList[$mouthtarget].pronoun is "f">> <span class="purple">Sweet nectar fills your mouth.</span> <<nectarfed 15>><<set $speechheadsuckle to 1>><<submission 2>> <<elseif $settings.breastFeedingEnabled and $NPCList[$mouthtarget].lactation is 1>> <span class="purple">Sweet, creamy milk fills your mouth.</span> <<breastfed>><<set $speechheadsuckle to 1>><<submission 2>> <<else>> <<set $speechheadnipple to 1>> <</if>> <</if>> <<if $mouthaction is "scream">> <<set $mouthaction to 0>><<set _sound to 1>> <<if $neckuse is "hand" and $oxygen lt $oxygenmax and $settings.asphyxiaLevel gte 2>> <<wheeze "scream for help">> <<elseif $drugged gt 0 or $arousal gte $arousalmax * 0.9>> You try to scream for help, <span class="pink">but your arousal makes it sound like a lewd moan.</span> <<neutral 1>><<set $speechmoan to 1>> <<elseif $uncomfortable.hypnosis is false and $hypnosis_traits.scream gte random(1,5)>> <<set $mouthaction to 0>><<unset $askAction>><<set _sound to 1>> <<hypnosisText 'You intend to scream for help, but a lewd thought intrudes <span class="lewd">and your mind immediately accepts it.</span> <<askrough>>'>> <<hypnotised 1>><<submission 1>><<set $enemyanger += (10 * $englishtrait)>> <<elseif $hypnosis_traits.scream gte 1 and $willpower lt random(1, (200 * $hypnosis_traits.scream))>> <<set $mouthaction to 0>><<unset $askAction>><<set _sound to 1>> <<hypnosisText 'You intend to scream for help, <span class="pink">but the thought is snatched from your mind and replaced with another.</span> <<askrough>>'>> <<hypnotised 1>><<willpower 1>><<submission 1>><<set $enemyanger += (10 * $englishtrait)>> <<elseif numberOfEarSlime() and $earSlime.growth gte (currentSkillValue('willpower')/ 10)>> You open your mouth to scream for help, <span class="lewd">but sudden arousal makes it sound like a lewd moan.</span> You feel the slime rapidly drug you. <<if $earSlime.growth gt 50>><<set $earSlime.defyCooldown++>><</if>> <<submission 1>><<set $speechmoan to 1>><<drugs 10>><<arousal 1000>> <<elseif numberOfEarSlime() and $earSlime.corruption gte (currentSkillValue('willpower')/ 10) and random(0,100) gte 50>> You open your mouth to scream for help, <span class="red">but your voice catches in your throat.</span> You feel the slime steal your focus away. <<gwillpower>><<willpower 1>> <<elseif $NPCList[0].fullDescription is "Gwylan">> You open your mouth to scream for help, <<if $hypnosis_traits.devotion gte 2>> but it's abruptly cut off as <<his>> finger traces up your neck. <<if $hallucinations gte 2>> <<hypnosisText "<span class='red'>A blue mist leaves your mouth, which <<he>> catches in <<his>> hand with a gentle grasp. Try as you might, no noise comes out, as if your voice had been stolen.</span>">> <<else>> <<hypnosisText "<span class='red'>Your voice catches in your throat. Try as you might, you can't scream.</span>">> <</if>> <br> <<gwylanHypnoName "cap">> smiles again. "I'll give it back if you behave. Now be a <<pcpetname "Gwylan" "good">> and shush." <<He>> gets back into position and resumes. <<set $combat_silenced to true>> <<if $consensual is 1>> <<set $consensual to 0>> <<molested>><<controlloss>> <</if>> <br><br> <<else>> but <<he>> lets out a <<if _gwylanTF?.known>>fox-like<</if>> scream in turn, drowning out yours. <</if>> <<else>> <<if $hypnosis_traits.scream gte 1>> <span class="green">You resist intrusive thoughts,</span> and scream for help. <<else>> You scream for help. <</if>> <<if isLoveInterest("Eden") and $location is "forest" and !($npc.includes("Eden")) and (!$undergroundbrothel or !$undergroundbrothel.active)>> <<if $rng lte 50>> "Eden! Get them off of me!" <<else>> "Eden! Help!" <</if>> <</if>> <<brat 10>><<set $alarm to 1>><<set $mouthactiondefault to "scream">><<set $speechscream to 1>> <<if $NPCList[0].lefthand is 0 and $mouthuse is 0 and $position isnot "wall" and !$robinRentEvent>> <<set $NPCList[0].lefthand to "mouth">><<person1>><<He>> clasps <<his>> hand over your mouth to silence you. <<set $enemytrust -= 40>><<set $mouthuse to "lefthand">> <<elseif $NPCList[0].righthand is 0 and $mouthuse is 0 and $position isnot "wall" and !$robinRentEvent>> <<set $NPCList[0].righthand to "mouth">><<person1>><<He>> clasps <<his>> hand over your mouth to silence you. <<set $enemytrust -= 40>><<set $mouthuse to "righthand">> <</if>> <</if>> <</if>> <<if $mouthaction is "apologise">> <<personselect $mouthtarget>> <<set $mouthaction to 0>><<set _sound to 1>> <<set _unforgiver to $NPCList.find(npc => npc.traits.includes("unforgiving"))>> <<if $neckuse is "hand" and $oxygen lt $oxygenmax and $settings.asphyxiaLevel gte 2>> <<wheeze "apologise">> <<elseif $enemytype is "beast">> You tell <<him>> you're sorry for being bad. <<set $mouthactiondefault to "plead">> <<if $NPCList[$mouthtarget] is _unforgiver>> <<bHe>> ignores you. <<set $apologised to 1>><<set $speechapologiseunforgiving to 1>> <<set $enemyanger += Math.clamp(25 - $englishtrait * 20, $enemyangermax / -2, $enemyangermax / 2)>> <<elseif !!_unforgiver>> <<bHe>> looks towards <<= /^[A-Z]/.test(_unforgiver.fullDescription) ? "" : "the ">> <<= _unforgiver.fullDescription>>, <<if _unforgiver.monster is 0>> who <<beast_growls_text _unforgiver.type>> dismissively. <<else>> who simply scoffs. <</if>> <span class="red"><<bHe>> <<beast_growls_text>> in response, and ignores your apology.</span> <<set $apologised to 1>><<set $speechapologiseunforgiving to 1>> <<set $enemyanger += Math.clamp(25 - $englishtrait * 20, $enemyangermax / -2, $enemyangermax / 2)>> <<elseif $apologised is 0>> <<if $monster is 1>> <<bHe>> growls. "Good. Now stay still." <<else>> While it doesn't understand you, your tone of voice has an impact. <</if>> <<set $apologised to 1>><<set $speechapologise to 1>> <<set $enemyanger -= 50 * (1 + $englishtrait)>> <<else>> <<bHe>> ignores you. <<set $speechapologiseno to 1>> <</if>> <<else>> <<if $robinmist>> You shout. "I'm sorry I wasn't there for you!" <<set $speechapologiseno to 1>> <<elseif $robinRentEvent is 1 and $combatPhase is "Robin">> You tell <<him>> you're sorry for not paying <<him>>. <<set $speechapologiseno to 1>> <<elseif $npc.includes("Ivory Wraith") and $wraithPrison and $wraithPrison.vision and !$wraithApologiseCooldown>> <<if $wraith.state is "haunt">> You tell <<him>> you're sorry for taking everything from <<him>>. <<else>> You tell <<him>> you're sorry for everything that's happened to <<him>>. <</if>> <<set $mouthactiondefault to "plead">> <<if $apologised is 0>> <<set $apologised to 1>><<set $speechapologise to 1>><<set $wraithApologise to true>><<set $wraithApologiseCooldown to true>> <<set $enemyanger -= 100 * (1 + $englishtrait)>> <<else>> <<He>> angrily claws at <<his>> neck. <<set $speechapologiseno to 1>> <</if>> <<else>> You tell <<him>> you're sorry for being bad. <<set $mouthactiondefault to "plead">> <<if $NPCList[$mouthtarget] is _unforgiver>> <span class="red"><<He>> scoffs.</span> <<set $apologised to 1>><<set $speechapologiseunforgiving to 1>> <<set $enemyanger += Math.clamp(25 - $englishtrait * 20, $enemyangermax / -2, $enemyangermax / 2)>> <<elseif !!_unforgiver>> <<He>> looks over at <<= /^[A-Z]/.test(_unforgiver.fullDescription) ? "" : "the ">> <<= _unforgiver.fullDescription>>, <<if _unforgiver.monster is 0>> who <<beast_growls_text _unforgiver.type>> dismissively. <<else>> who simply scoffs and says "Don't listen to <<phim>>." <</if>> <span class="red"><<He>> nods, and ignores your apology.</span> <<set $apologised to 1>><<set $speechapologiseunforgiving to 1>> <<set $enemyanger += Math.clamp(25 - $englishtrait * 20, $enemyangermax / -2, $enemyangermax / 2)>> <<elseif $apologised is 0>> <<His>> face softens. <<if $NPCList[$mouthtarget].fullDescription is "Avery">> <<note "Avery's Saviour" "teal">> <</if>> <<set $apologised to 1>><<set $speechapologise to 1>> <<set $enemyanger -= 50 * (1 + $englishtrait)>> <<else>> <<He>> ignores you. <<set $speechapologiseno to 1>> <</if>> <</if>> <</if>> <</if>> <<if $mouthaction is "forgive">> <<set $mouthaction to 0>><<set _sound to 1>> <<if $neckuse is "hand" and $oxygen lt $oxygenmax and $settings.asphyxiaLevel gte 2>> <<wheeze>> <<else>> <<set $mouthactiondefault to "plead">> <<set $trauma -= $traumagain>><<set $traumagain to 0>><<set $speechforgive to 1>><<set $angelforgive to 1>> <<traumaclamp>> <<if $enemytype is "beast">> "You don't know any better. You're just a <<beasttype>>," you say. "I forgive you." <<else>> "Even though you're doing such a horrible thing, don't worry," you say. "I forgive you." <</if>> <</if>> <</if>> <<if $mouthaction is "peniskiss">> <<set $mouthaction to 0>><<set $mouthactiondefault to "peniskiss">><<set $mouthsubmit to 1>> <<actionspeniskiss `($chestuse is "penis" ? $chesttarget : $mouthtarget)`>> <<submission 3>><<oralskilluse>> <</if>> <<if $mouthaction is "lick">> <<set $mouthaction to 0>><<set $mouthactiondefault to "lick">><<set $mouthsubmit to 1>><<actionspenislick $mouthtarget>><<submission 5>><<oralskilluse>> <</if>> <<if $mouthaction is "suck">> <<set $mouthaction to 0>><<set $mouthactiondefault to "suck">><<actionspenissuck $mouthtarget>><<submission 10>><<oralskilluse>> <</if>> <<if $mouthaction is "oraledge">> <<personselect $mouthtarget>><<actionsoraledge $mouthtarget>><<set $mouthaction to 0>><<set $mouthactiondefault to "oraledge">><<set $mouthsubmit to 1>> <<submission 5>><<sexControl 5 `currentSkillValue("oralskill")` $mouthtarget>><<oralskilluse>><<combatpromiscuity4>> <</if>> <<if $mouthaction is "pullaway">> <<set $mouthaction to 0>><<set $mouthactiondefault to "pullaway">><<personselect $mouthtarget>> You try to pull your head away from the penis threatening your mouth. <<oralskilluse>><<brat 1 $mouthtarget>> <<set _nectarDifficulty to Math.clamp($drugged, 0, 500) + Math.clamp($nectar_addiction, 0, 500)>> <<willpowerdifficulty _nectarDifficulty $willpowermax "silent">> <<if $NPCList[$mouthtarget].type is "plant" and $mouthstate is "penetrated" and !$willpowerSuccess>> <span class="red">However, you can't tear yourself from the sweet nectar.</span> You desperately suck on the penis invading your mouth. <<willpower 1>> <<else>> <<if combatSkillCheck("oral", $mouthtarget, $NPCList[$mouthtarget].fullDescription)>> <<set $pullaway to 1>> <<if $NPCList[$mouthtarget].penis is "mouth">> <<set $NPCList[$mouthtarget].penis to "mouthimminent">><<set $mouthstate to "imminent">><span class="green"><<He>> doesn't stop you.</span> <<elseif $NPCList[$mouthtarget].penis is "mouthimminent">> <<set $NPCList[$mouthtarget].penis to "mouthentrance">><<set $mouthstate to "entrance">><span class="green"><<He>> doesn't stop you.</span> <<elseif $NPCList[$mouthtarget].penis is "mouthentrance">> <<set $NPCList[$mouthtarget].penis to 0>><<set $mouthstate to 0>><<set $mouthuse to 0>><<set $mouthstate to 0>><<set $NPCList[$mouthtarget].location.genitals to 0>> <span class="green"><<He>> doesn't stop you.</span> <</if>> <<else>> <<if $consensual is 1>> <<set $consensual to 0>><<molested>><<controlloss>> <</if>> <<violence 1>> <<if $mouthstate is "penetrated">> <span class="red">However, <<he>> refuses to allow it,</span> forcing the phallus back into your mouth. <<elseif $mouthstate is "imminent">> <span class="red">However, <<he>> refuses to allow it,</span> instead pushing the penis against your lips. <<elseif $mouthstate is "entrance">> <span class="red">However, <<he>> refuses to allow it,</span> instead pushing the penis against your lips. <</if>> <</if>> <</if>> <</if>> <<if $mouthaction is "pullawayvagina" and ($NPCList[$mouthtarget].vagina is "mouth" or $NPCList[$mouthtarget].vagina is "facesit")>> <<set $mouthaction to 0>><<set $mouthactiondefault to "pullawayvagina">><<personselect $mouthtarget>><<set $mouthstate to 0>> <<if $consensual is 1>> You try to move your head away from the pussy. <<oralskilluse>><<brat 1 $mouthtarget>> <<else>> You try to pull your head away from the pussy threatening your mouth. <<oralskilluse>><<brat 1 $mouthtarget>> <</if>> <<oralskilluse>><<brat 1 $mouthtarget>> <<set _nectarDifficulty to Math.clamp($drugged, 0, 500) + Math.clamp($nectar_addiction, 0, 500)>> <<willpowerdifficulty _nectarDifficulty $willpowermax "silent">> <<if $NPCList[$mouthtarget].type is "plant" and !$willpowerSuccess>> <span class="red">However, you can't tear yourself from the sweet nectar.</span> You desperately lick the pussy pressing against your mouth. <<willpower 1>> <<else>> <<if combatSkillCheck("oral", $mouthtarget, $NPCList[$mouthtarget].fullDescription)>> <<set $mouthuse to 0>><<set $mouthstate to 0>><<set $pullaway to 1>> <<set $NPCList[$mouthtarget].vagina to 0>><span class="green"><<He>> doesn't stop you.</span> <<set $NPCList[$mouthtarget].location.genitals to 0>> <<else>> <<if $consensual is 1>> <<set $consensual to 0>><<molested>><<controlloss>> <</if>> <span class="red">However, <<theowner>> refuses to allow it,</span> forcing it against your face. <<violence 1>> <</if>> <</if>> <</if>> <<if $mouthaction is "bite" and $NPCList[$mouthtarget].penis is "mouth">> <<if $earSlime.growth gt 50 and $earSlime.growth - random(0, Math.clamp(50 - ($earSlime.defyCooldown * 5), 0, 50)) gte (currentSkillValue('willpower')/ 10)>> You try to bite down on the <<npcPenisSimple $mouthtarget>>, <span class="red">but find you're unable to.</span> You feel the slime steal your control away. <<set $mouthaction to 0>><<set $mouthactiondefault to "suck">><<actionspenissuck $mouthtarget>><<submission 10>><<oralskilluse>> <<if $earSlime.growth gte 100>><<set $earSlime.defyCooldown++>><</if>> <<else>> <<set $mouthaction to 0>><<set $mouthactiondefault to "bite">><<personselect $mouthtarget>> You bite down on <<his>> <<npcPenisSimple $mouthtarget>>, <<if npcHasStrapon($mouthtarget)>> but it has no effect. <<else>> <<he>> <<if $enemytype is "man">>yelps<<elseif $enemytype is "beast">>growls<<else>>shrieks<</if>> and recoils in agony. <<set $NPCList[$mouthtarget].penis to 0>><<set $NPCList[$mouthtarget].location.genitals to 0>> <<defiance 20 $mouthtarget>><<attackstat>><<control 15>><<set $mouthuse to 0>><<set $penisbitten to 1>><<set $mouthstate to 0>> <<if $transformationParts.traits.fangs isnot "disabled">> <<defiance 20 $mouthtarget>><<defiance 20 $mouthtarget>> You lick your fangs clean. <</if>> <</if>> <</if>> <</if>> <<if $mouthaction is "bitepussy" and ($NPCList[$mouthtarget].vagina is "mouth" or $NPCList[$mouthtarget].vagina is "facesit")>> <<if $earSlime.growth gt 50 and $earSlime.growth - random(0, Math.clamp(50 - ($earSlime.defyCooldown * 5), 0, 50)) gte (currentSkillValue('willpower')/ 10)>> You try to bite down on <<hisselect $mouthtarget>> labia, <span class="red">but find you're unable to.</span> You feel the slime steal your control away. <<set $mouthaction to "vaginalick">> <<if $earSlime.growth gte 100>><<set $earSlime.defyCooldown++>><</if>> <<else>> <<set $mouthaction to 0>><<set $mouthactiondefault to "bitepussy">><<personselect $mouthtarget>> You bite down on <<hisselect $mouthtarget>> labia. <<He>> <<if $enemytype is "man">>yelps<<elseif $enemytype is "beast">>growls<<else>>shrieks<</if>> and recoils in agony. <<set $NPCList[$mouthtarget].vagina to 0>><<set $NPCList[$mouthtarget].location.genitals to 0>> <<defiance 20 $mouthtarget>><<attackstat>><<control 15>><<set $mouthuse to 0>><<set $penisbitten to 1>><<set $mouthstate to 0>><<set $speechhit to 1>> <<if $transformationParts.traits.fangs isnot "disabled">> <<defiance 40 $mouthtarget>> You lick your fangs clean. <</if>> <</if>> <</if>> <<if $mouthaction is "vaginalick" and ($NPCList[$mouthtarget].vagina is "mouth" or $NPCList[$mouthtarget].vagina is "facesit")>> <<set $mouthaction to 0>><<set $mouthactiondefault to "vaginalick">><<set $mouthsubmit to 1>><<actionspussylick $mouthtarget>><<submission 10>><<oralskilluse>> <</if>> <<if $mouthaction is "pullawaykiss" and $NPCList[$mouthtarget].mouth.toString().includes("kiss")>> <<set $mouthaction to 0>><<set $mouthactiondefault to "pullawaykiss">><<personselect $mouthtarget>> You try to pull your head away from <<his>> lips. <<oralskilluse>><<brat 1 $mouthtarget>> <<set _nectarDifficulty to Math.clamp($drugged, 0, 500) + Math.clamp($nectar_addiction, 0, 500)>> <<willpowerdifficulty _nectarDifficulty $willpowermax "silent">> <<if $NPCList[$mouthtarget].type is "plant" and $mouthstate isnot "kissentrance" and !$willpowerSuccess>> <span class="red">However, you can't tear yourself from the sweet nectar.</span> <<if $mouthstate is "kissimminent">> You kiss <<him>> back, parting <<his>> lips with your tongue. <<elseif $mouthstate is "kiss">> You kiss <<him>> back, caressing <<his>> tongue with your own. <</if>> <<willpower 1>> <<else>> <<if combatSkillCheck("oral", $mouthtarget, $NPCList[$mouthtarget].fullDescription)>> <<set $mouthuse to 0>><<set $mouthstate to 0>> <<set $NPCList[$mouthtarget].mouth to 0>><span class="green"><<He>> doesn't stop you.</span> <<set $NPCList[$mouthtarget].location.head to 0>> <<else>> <<if $consensual is 1>> <<set $consensual to 0>><<molested>><<controlloss>> <</if>> <<if $mouthstate is "kissentrance">> <span class="red">However, <<he>> refuses to allow it,</span> preventing you from moving away from their face. <<else>> <span class="red">However, <<he>> refuses to allow it,</span> kissing you more firmly. <</if>> <<violence 1>> <</if>> <</if>> <</if>> <<if $mouthaction is "kissback">> <<set $mouthaction to 0>><<set $mouthactiondefault to "kissback">><<actionskissback $mouthtarget>><<submission 2>><<oralskilluse>> <</if>> <<if $mouthaction is "anallick">> <<set $mouthaction to 0>><<set $mouthactiondefault to "anallick">><<actionsAnalLick $mouthtarget>><<submission 10>><<oralskilluse>> <</if>> <<if $mouthaction is "analkiss">> <<set $mouthaction to 0>><<set $mouthactiondefault to "analkiss">><<actionsAnalKiss $mouthtarget>><<submission 12>> <</if>> <<if $mouthaction is "analpull" and ($NPCList[$mouthtarget].penis is "mouthotheranus" or $NPCList[$mouthtarget].vagina is "mouthotheranus")>> <<set $mouthaction to 0>><<set $mouthactiondefault to "analpull">><<personselect $mouthtarget>> You try to pull away from the anus menacing your mouth. <<oralskilluse>><<brat 1 $mouthtarget>> <<if combatSkillCheck("oral", $mouthtarget, $NPCList[$mouthtarget].fullDescription)>> <span class="green"><<He>> doesn't stop you.</span> <<set $mouthstate to 0>><<set $mouthuse to 0>> <<if $NPCList[$mouthtarget].penis is "mouthotheranus">><<set $NPCList[$mouthtarget].penis to 0>><</if>> <<if $NPCList[$mouthtarget].vagina is "mouthotheranus">><<set $NPCList[$mouthtarget].vagina to 0>><</if>> <<set $NPCList[$mouthtarget].location.genitals to 0>> <<else>> <span class="red">However, <<combatperson>> refuses to allow it,</span> forcing your face into <<his>> ass. <<violence 1>> <<if $consensual is 1>> <<set $consensual to 0>><<molested>><<controlloss>> <</if>> <</if>> <</if>> <<rng>> <<if $mouthaction is "handbite">> <<if $earSlime.growth gt 50 and $earSlime.growth - random(0, Math.clamp(50 - ($earSlime.defyCooldown * 5), 0, 50)) gte (currentSkillValue('willpower')/ 10)>> You try to bite down on <<hisselect $mouthtarget>> hand, <span class="red">but find you're unable to.</span> You feel the slime steal your control away. <<set $mouthactiondefault to "rest">> <<if $earSlime.growth gte 100>><<set $earSlime.defyCooldown++>><</if>> <<else>> <<set $mouthaction to 0>><<set $mouthactiondefault to "handbite">><<personselect $mouthtarget>> <<actionshandbite $mouthtarget>> <<if $transformationParts.traits.fangs isnot "disabled">> <<defiance 6 $mouthtarget>> <<else>> <<defiance 2 $mouthtarget>> <</if>> <<if random(1, 5) gte 3 and ($transformationParts.traits.fangs isnot "disabled") or random(1, 5) gte 5>> <<set $mouthuse to 0>> <<if $NPCList[$mouthtarget].lefthand is "mouth">> <<set $NPCList[$mouthtarget].lefthand to 0>> <<control 15>> <span class="teal"><<He>> flinches away in pain, freeing your mouth.</span> <</if>> <<if $NPCList[$mouthtarget].righthand is "mouth">> <<set $NPCList[$mouthtarget].righthand to 0>> <<control 15>> <span class="teal"><<He>> flinches away in pain, freeing your mouth.</span> <</if>> <<else>> <<control -5>> <span class="purple">It remains over your mouth.</span> <</if>> <</if>> <</if>> <<if $mouthaction is "headbutt" and $NPCList[$mouthtarget].mouth.toString().includes("kiss")>> <<set $mouthaction to 0>><<set $mouthactiondefault to "headbutt">><<personselect $mouthtarget>> <<if $mouthstate is "kiss">> You disengage from the kiss and headbutt <<him>> in retaliation. <<else>> You quickly rear back and headbutt <<him>>. <</if>> <<He>> <<if $enemytype is "beast">>yelps and backs off<<else>>yells and stumbles back, clutching <<his>> head<</if>>. <<if ($description is "faithful" or $description is "fallen") and $sydney.glasses is "glasses">> <<set $sydney.glasses to "playerbroken">> <span class="purple"><<His>> glasses shatter.</span> <</if>> <<defiance 10 $mouthtarget>><<attackstat>><<set $mouthuse to 0>><<set $mouthstate to 0>> <<if $cow gte 2 and $demon gte 2>> <<defiance 10 $mouthtarget>><<defiance 10 $mouthtarget>> <</if>> <<if $demon gte 2>> <<defiance 10 $mouthtarget>> <<if !pcAreArmsBound("both")>> You rub your horns. <</if>> <</if>> <<if $cow gte 2>> <<print either("That didn't hurt you at all!", "You remain unshaken by the blow.", "You're unharmed by the hit.")>> <<else>> <<pain 4>> <<if $pain lte 20>> Your own head immediately stings. <<elseif $pain lte 60>> Your ears begin to ring from the blow. <<else>> Your mind feels rattled by the impact. <</if>> <<gpain>> <</if>> <<set $head to 0>> <<set $NPCList[$mouthtarget].mouth to 0>> <<set $NPCList[$mouthtarget].location.head to 0>> <</if>> <<if $mouthaction is "grasp" and $NPCList[$mouthtarget].penis is "mouthentrance">> <<set $mouthaction to 0>><<set $mouthactiondefault to "grasp">><<chestskilluse>><<combatpromiscuity3>> <<if combatSkillCheck("chest", $mouthtarget)>> <<set $chestactiondefault to "rub">><<set $chestuse to "penis">><<cheststat>><<set $mouthstate to 0>><<set $mouthuse to 0>><<set $mouthactiondefault to "peniskiss">> <<set $NPCList[$mouthtarget].penis to "chest">><<personselect $mouthtarget>><<set $chesttarget to $mouthtarget>> <<if $breastcup is "none">> <span class="lblue">You <<chesttext>> squeeze your <<breasts>> together as best you can and try to grab <<hisselect $mouthtarget>> $NPCList[$mouthtarget].penisdesc between them. Your breasts are too small for it to be effective, but your cute attempt succeeds in charming <<him>>.</span> <<He>> rubs <<his>> penis against your chest. <<else>> <span class="lblue">You <<chesttext>> grab <<hisselect $mouthtarget>> $NPCList[$mouthtarget].penisdesc between your <<breasts>>.</span> <</if>> <<else>> <<if $player.breastsize is 0>> You squeeze your <<breasts>> together as best you can and try to grab <<his>> penis between them, to no avail. <<else>> You try to grab <<hisselect $mouthtarget>> penis between your <<breasts>>, but fail. <</if>> <</if>> <</if>> <<if $mouthaction is "ask" and $askAction is "finish">> <<set $mouthaction to 0>><<unset $askAction>><<set _sound to 1>> <<if $neckuse is "hand" and $oxygen lt $oxygenmax and $settings.asphyxiaLevel gte 2 and $gamemode isnot "soft">> <<wheeze "tell <<him>> you want to stop">> <<else>> <<set $mouthactiondefault to "rest">><<brat 10>> You tell <<him>> you've had enough and want to stop. <<if $role is "islander" and (!$islander_language or $islander_language lt 100)>> <span class="red"><<if $enemyno gte 2>>They don't<<else>><<He>> doesn't<</if>> understand your words,</span> and <<if $enemyno gte 2>>ignore<<else>>ignores<</if>> them. <<elseif !$loveDrunk and $NPCList[0].type isnot "plant" and combatSkillCheck("seduction", $mouthtarget, $NPCList[$mouthtarget].fullDescription) or $gamemode is "soft" or $gloryhole>> <<set $finish to 1>> <<if $trueconsensual isnot 1 and $gamemode is "soft">> <<set $enemyhealth to -100>> <</if>> <<if $enemytype is "man" or $monster is 1>> <<if $enemyno gte 2>>They look<<else>><<He>> looks<</if>> disappointed, <span class="green">but <<if $enemyno gte 2>>comply<<else>>complies<</if>>.</span> <<else>> It can't speak, <span class="green">but understands your tone and complies.</span> <</if>> <<if $gamemode is "soft">> <<set $enemyhealth to -1000>> <</if>> <<else>> <<set $consensual to 0>> <<switch $enemytype>> <<case "plant">> <span class="red"><<He>> shakes <<his>> head happily.</span> <<case "beast">> Eager to <<if $settings.pregnancySpeechEnabled>>breed<<else>>fuck<</if>>, <span class="red"><<bhe>> ignores your desire.</span> <<default>> <span class="red"><<if $enemyno gte 2>>They refuse!<<else>><<He>> refuses!<</if>></span> <</switch>> <<molested>><<controlloss>> <</if>> <</if>> <</if>> <<if $mouthaction is "ask" and $askAction is "novaginal">> <<set $mouthaction to 0>><<unset $askAction>><<set _sound to 1>> <<if $neckuse is "hand" and $oxygen lt $oxygenmax and $settings.asphyxiaLevel gte 2>> <<wheeze "tell <<him>> you don't want anything penetrating your vagina">> <<else>> <<set $mouthactiondefault to "rest">><<brat 5>><<if !$gloryhole and $gamemode isnot "soft">><<seductionskillusecombat>><</if>> <<if $player.virginity.vaginal is true>> You tell <<him>> you don't want anything penetrating your vagina, you are a virgin after all. <<else>> You tell <<him>> you don't want anything penetrating your vagina. <</if>> <<if $role is "islander" and (!$islander_language or $islander_language lt 100)>> <span class="red"><<if $enemyno gte 2>>They don't<<else>><<He>> doesn't<</if>> understand your words,</span> and <<if $enemyno gte 2>>ignore<<else>>ignores<</if>> them. <<elseif combatSkillCheck("seduction", $mouthtarget, $NPCList[$mouthtarget].fullDescription) or $gamemode is "soft" or $gloryhole>> <<set $novaginal to 1>><span class="green"><<if $enemyno gte 2>>They nod<<else>><<He_Short>> nods<</if>> in acknowledgement.</span> <<if $vaginastate is "doublepenetrated">> <<set $vaginastate to "doubleentrance">><<set $vaginaaction to 0>> <<if $NPCList[$vaginatarget].penis is "vaginadouble" and $NPCList[$vaginadoubletarget].penis is "vaginadouble">> <<set $NPCList[$vaginatarget].penis to "vaginaentrancedouble">> <<set $NPCList[$vaginadoubletarget].penis to "vaginaentrancedouble">> <<combatPerson>> and <<personselect $vaginadoubletarget>><<combatperson>> withdraw their penises from your vagina. <</if>> <<elseif $vaginastate is "penetrated">> <<set $vaginastate to "entrance">><<set $vaginaaction to 0>> <<if $NPCList[$vaginatarget].penis is "vagina">> <<set $NPCList[$vaginatarget].penis to "vaginaentrance">> <<combatPerson>> withdraws <<his>> penis from your vagina. <</if>> <</if>> <<else>> <<combatRequestRefused "novaginal" $mouthtarget>> <</if>> <</if>> <</if>> <<if $mouthaction is "ask" and $askAction is "noanal">> <<set $mouthaction to 0>><<unset $askAction>><<set _sound to 1>> <<if $neckuse is "hand" and $oxygen lt $oxygenmax and $settings.asphyxiaLevel gte 2>> <<wheeze "tell <<him>> you don't want anything inside your anus">> <<else>> <<set $mouthactiondefault to "rest">><<brat 5>><<if !$gloryhole and $gamemode isnot "soft">><<seductionskillusecombat>><</if>> <<if $player.virginity.anal is true>> You tell <<him>> you don't want anything inside your anus, it's dirty there! <<else>> You tell <<him>> you don't want anything penetrating your anus. <</if>> <<if $role is "islander" and (!$islander_language or $islander_language lt 100)>> <span class="red"><<if $enemyno gte 2>>They don't<<else>><<He>> doesn't<</if>> understand your words,</span> and <<if $enemyno gte 2>>ignore<<else>>ignores<</if>> them. <<elseif combatSkillCheck("seduction", $mouthtarget, $NPCList[$mouthtarget].fullDescription) or $gamemode is "soft" or $gloryhole>> <<set $noanal to 1>><span class="green"><<if $enemyno gte 2>>They nod<<else>><<He_Short>> nods<</if>> in acknowledgement.</span> <<if $anusstate is "doublepenetrated">> <<set $anusstate to "doubleentrance">><<set $anusaction to 0>> <<if $NPCList[$anustarget].penis is "anusdouble" and $NPCList[$anusdoubletarget].penis is "anusdouble">> <<set $NPCList[$anustarget].penis to "anusentrancedouble">> <<set $NPCList[$anusdoubletarget].penis to "anusentrancedouble">> <<combatPerson>> and <<personselect $anusdoubletarget>><<combatperson>> withdraw their penises from your vagina. <</if>> <<elseif $anusstate is "penetrated">> <<set $anusstate to "entrance">><<set $anusaction to 0>> <<if $NPCList[$anustarget].penis is "anus">> <<set $NPCList[$anustarget].penis to "anusentrance">> <<combatPerson>> withdraws <<his>> penis from your anus. <</if>> <</if>> <<else>> <<combatRequestRefused "noanal" $mouthtarget>> <</if>> <</if>> <</if>> <<if $mouthaction is "ask" and $askAction is "nopenile">> <<set $mouthaction to 0>><<unset $askAction>><<set _sound to 1>> <<if $neckuse is "hand" and $oxygen lt $oxygenmax and $settings.asphyxiaLevel gte 2>> <<wheeze "tell <<him>> you don't want your penis put inside anything">> <<else>> <<set $mouthactiondefault to "rest">><<brat 5>><<if !$gloryhole and $gamemode isnot "soft">><<seductionskillusecombat>><</if>> <<if $player.virginity.penile is true>> You tell <<him>> you don't want your penis put inside anything, you are a virgin after all. <<else>> You tell <<him>> you don't want your penis put inside anything. <</if>> <<if $role is "islander" and (!$islander_language or $islander_language lt 100)>> <span class="red"><<if $enemyno gte 2>>They don't<<else>><<He>> doesn't<</if>> understand your words,</span> and <<if $enemyno gte 2>>ignore<<else>>ignores<</if>> them. <<elseif combatSkillCheck("seduction", $mouthtarget, $NPCList[$mouthtarget].fullDescription) or $gamemode is "soft" or $gloryhole>> <<set $nopenile to 1>><span class="green"><<if $enemyno gte 2>>They nod<<else>><<He_Short>> nods<</if>> in acknowledgement.</span> <<if $penisstate is "penetrated">> <<set $penisstate to "entrance">> <<if $NPCList[$penistarget].vagina is "penis">> <<personselect $penistarget>> <<set $NPCList[$penistarget].vagina to "penisentrance">><<combatPerson>> frees your penis from <<his>> vagina. <</if>> <</if>> <<if $penisstate is "otheranus">> <<set $penisstate to "otheranusentrance">> <<if $NPCList[$penistarget].penis is "otheranus">> <<personselect $penistarget>> <<set $NPCList[$penistarget].penis to "otheranusentrance">><<combatPerson>> frees your penis from <<his>> anus. <</if>> <</if>> <<if $penisstate is "othermouth">> <<set $penisstate to "othermouthentrance">> <<if $NPCList[$penistarget].mouth is "penis">> <<personselect $penistarget>> <<set $NPCList[$penistarget].mouth to "penisentrance">><<combatPerson>> slips your penis out of <<his>> mouth. <</if>> <</if>> <<else>> <<combatRequestRefused "nopenile" $mouthtarget>> <</if>> <</if>> <</if>> <<if $mouthaction is "ask" and $askAction is "noupper">> <<set $mouthaction to 0>><<set _sound to 1>> <<if $neckuse is "hand" and $oxygen lt $oxygenmax and $settings.asphyxiaLevel gte 2>> <<wheeze "tell <<him>> to leave your top on">> <<else>> <<set $mouthactiondefault to "rest">><<brat 5 demanding>><<if !$gloryhole and $gamemode isnot "soft">><<seductionskillusecombat>><</if>><<unset $askAction>> <<set $noupperasked to 1>> You tell <<him>> to leave your top on. <<if $role is "islander" and (!$islander_language or $islander_language lt 100)>> <span class="red"><<if $enemyno gte 2>>They don't<<else>><<He>> doesn't<</if>> understand your words,</span> and <<if $enemyno gte 2>>ignore<<else>>ignores<</if>> them. <<elseif $combatgoal is "strip">> <span class="pink">"No," <<if $enemyno gte 2>>they laugh<<else>><<he>> laughs<</if>>. "You'll look better without it."</span> <<elseif combatSkillCheck("seduction", $mouthtarget, $NPCList[$mouthtarget].fullDescription) or $gamemode is "soft" or $gloryhole>> <<set $noupper to 1>><span class="green"><<if $enemyno gte 2>>They nod<<else>><<He_Short>> nods<</if>> in acknowledgement.</span> <<for _j = 0; _j lt $enemynomax; _j++>> <<if $NPCList[_j].lefthand is "overupperclothes">> <<personselect _j>> <<set $NPCList[_j].lefthand to 0>><<combatPerson>> releases your $worn.over_upper.name. <<elseif $NPCList[_j].lefthand is "upperclothes">> <<personselect _j>> <<set $NPCList[_j].lefthand to 0>><<combatPerson>> releases your $worn.upper.name. <<elseif $NPCList[_j].lefthand is "underupperclothes">> <<personselect _j>> <<set $NPCList[_j].lefthand to 0>><<combatPerson>> releases your $worn.under_upper.name. <</if>> <<if $NPCList[_j].righthand is "overupperclothes">> <<personselect _j>> <<set $NPCList[_j].righthand to 0>><<combatPerson>> releases your $worn.over_upper.name. <<elseif $NPCList[_j].righthand is "upperclothes">> <<personselect _j>> <<set $NPCList[_j].righthand to 0>><<combatPerson>> releases your $worn.upper.name. <<elseif $NPCList[_j].righthand is "underupperclothes">> <<personselect _j>> <<set $NPCList[_j].righthand to 0>><<combatPerson>> releases your $worn.under_upper.name. <</if>> <</for>> <<else>> <<combatRequestRefused "noupper" $mouthtarget>> <</if>> <</if>> <</if>> <<if $mouthaction is "ask" and $askAction is "nomask">> <<set $mouthaction to 0>><<set _sound to 1>> <<if $neckuse is "hand" and $oxygen lt $oxygenmax and $settings.asphyxiaLevel gte 2>> <<wheeze "tell <<him>> to leave your "+ $worn.face.name " on">> <<else>> <<set $mouthactiondefault to "rest">><<brat 5 demanding>><<if !$gloryhole and $gamemode isnot "soft">><<seductionskillusecombat>><</if>><<unset $askAction>> <<set $nomaskasked to 1>> You tell <<him>> to leave your $worn.face.name on. <<if $role is "islander" and (!$islander_language or $islander_language lt 100)>> <span class="red"><<if $enemyno gte 2>>They don't<<else>><<He>> doesn't<</if>> understand your words,</span> and <<if $enemyno gte 2>>ignore<<else>>ignores<</if>> them. <<elseif $combatgoal is "strip">> <span class="pink">"No," <<if $enemyno gte 2>>they laugh<<else>><<he>> laughs<</if>>. "You'll look better without it."</span> <<elseif combatSkillCheck("seduction", $mouthtarget, $NPCList[$mouthtarget].fullDescription) or $gamemode is "soft" or $gloryhole>> <<set $nomask to 1>><span class="green"><<if $enemyno gte 2>>They nod<<else>><<He_Short>> nods<</if>> in acknowledgement.</span> <<for _j = 0; _j lt $enemynomax; _j++>> <<if $NPCList[_j].lefthand is "mask">> <<personselect _j>> <<set $NPCList[_j].lefthand to 0>><<combatPerson>> releases your $worn.face.name. <</if>> <<if $NPCList[_j].righthand is "mask">> <<personselect _j>> <<set $NPCList[_j].righthand to 0>><<combatPerson>> releases your $worn.face.name. <</if>> <</for>> <<else>> <<combatRequestRefused "nomask" $mouthtarget>> <</if>> <</if>> <</if>> <<if $mouthaction is "ask" and $askAction is "nochoke">> <<set $mouthaction to 0>><<unset $askAction>><<set _sound to 1>> <<if $neckuse is "hand" and $oxygen lt $oxygenmax and $settings.asphyxiaLevel gte 2>> <<wheeze "tell <<him>> you don't want to be choked">> <<else>> <<set $mouthactiondefault to "rest">><<brat 5>><<if !$gloryhole and $gamemode isnot "soft">><<seductionskillusecombat>><</if>> You tell <<him>> you don't want <<his>> hands around your neck. <<if $role is "islander" and (!$islander_language or $islander_language lt 100)>> <span class="red"><<if $enemyno gte 2>>They don't<<else>><<He>> doesn't<</if>> understand your words,</span> and <<if $enemyno gte 2>>ignore<<else>>ignores<</if>> them. <<elseif combatSkillCheck("seduction", $mouthtarget, $NPCList[$mouthtarget].fullDescription) or $gamemode is "soft" or $gloryhole>> <<set $nochoke to 1>><span class="green"><<if $enemyno gte 2>>They nod<<else>><<He_Short>> nods<</if>> in acknowledgement.</span> <<if $neckuse is "hand">> <<unset $neckuse>> <<for _j = 0; _j lt $enemynomax; _j++>> <<if $NPCList[_j].lefthand is "throat" or $NPCList[_j].righthand is "throat">> <<personselect _j>> <<if $NPCList[_j].lefthand is "throat">><<set $NPCList[_j].lefthand to 0>><</if>> <<if $NPCList[_j].righthand is "throat">><<set $NPCList[_j].righthand to 0>><</if>> <<combatPerson>> releases your neck. <</if>> <</for>> <</if>> <<else>> <<combatRequestRefused "nochoke" $mouthtarget>> <<for _j = 0; _j lt $enemynomax; _j++>> <<if $NPCList[_j].lefthand is 0>> <<personselect _j>> <<set $NPCList[_j].lefthand to "throat">> <<set $neckuse to "hand">> <span class="red"><<combatPerson>> immediately grabs your neck with <<his>> free hand.</span> <<break>> <<elseif $NPCList[_j].righthand is 0>> <<personselect _j>> <<set $NPCList[_j].lefthand to "throat">> <<set $neckuse to "hand">> <span class="red"><<combatPerson>> immediately grabs your neck with <<his>> free hand.</span> <<break>> <</if>> <</for>> <</if>> <</if>> <</if>> <<if $mouthaction is "ask" and $askAction is "condoms">> <<set $mouthaction to 0>><<unset $askAction>><<set _sound to 1>> <<personselect $mouthtarget>> <<if $neckuse is "hand" and $oxygen lt $oxygenmax and $settings.asphyxiaLevel gte 2>> <<wheeze "tell <<him>> to use a condom">> <<else>> <<set $mouthactiondefault to "rest">><<sub 2>> <<if $NPCList[$mouthtarget].condom and $NPCList[$mouthtarget].condom.willUse is true>><<set $_checkSkip to true>><</if>> <<if $consensual is 0>> <<set $_condomAskBaseDifficulty to 2000 + 10 * (100 - $NPCList[$mouthtarget].pregnancyAvoidance)>> <<set $_condomAskDifficultyMultiplier to 200>> <<else>> <<set $_condomAskBaseDifficulty to 1500 + 5 * (100 - $NPCList[$mouthtarget].pregnancyAvoidance)>> <<set $_condomAskDifficultyMultiplier to 100>> <</if>> <<if !$gloryhole and $gamemode isnot "soft" and !$npcrow.includes($mouthtarget) and !$_checkSkip>><<seductionskillusecombat>><</if>> <<set $NPCList[$mouthtarget].condomAsk to true>> You ask <<combatperson>> to use a condom. <<if $role is "islander" and (!$islander_language or $islander_language lt 100)>> <span class="red"><<if $enemyno gte 2>>They don't<<else>><<He>> doesn't<</if>> understand your words,</span> and <<if $enemyno gte 2>>ignore<<else>>ignores<</if>> them. <<elseif combatSkillCheck("seduction", $mouthtarget, $NPCList[$mouthtarget].fullDescription, $_condomAskBaseDifficulty, $_condomAskDifficultyMultiplier) or $gamemode is "soft" or $gloryhole or $npcrow.includes($mouthtarget) or $_checkSkip>> <<if !$npcrow.includes($mouthtarget)>> <<if $settings.condomLevel is 1 or !$NPCList[$mouthtarget].condom>> <<set $NPCList[$mouthtarget].condomCanGive to true>> <<if $consensual is 0>> <<He_Short>> pauses a moment before responding. <<set _response to [ "I'll use one if you have one.", "I hope you brought one.", "I don't have one. Do you?", "Looks like I forgot mine at home.", "You better have one." ]>> <<else>> <<He_Short>> looks nervous for a moment. <<set _response to [ "I didn't bring one. Do you have one?" ]>> <</if>> <span class="blue">"<<print _response.pluck()>>"</span> <<elseif $NPCList[$mouthtarget].condom>> <<if $NPCList[$mouthtarget].condom.willUse is true>> <<if $consensual is 0>> <<He_Short>> nods. <<set _response to [ "I was going to, anyways.", "Don't tell me what to do, I would have anyways.", "You think I'd fuck you raw? Stupid slut." ]>> <<else>> <<He_Short>> nods. <<set _response to [ "I was planning on using one anyways." ]>> <</if>> <<if $settings.pregnancySpeechEnabled>> <<if playerPregnancyPossibleWith($NPCList[$mouthtarget])>> <<run _response.pushUnique( "Do I look like I want a kid on my hands?", "I don't want to get you pregnant, slut.", "I'm not about to get a whore like you pregnant." )>> <<elseif NPCPregnancyPossibleWithPlayer($NPCList[$mouthtarget])>> <<run _response.pushUnique( "Do I look like I want a kid on my hands?", "I'm not about to let myself get pregnant.", "You're not putting a kid in me." )>> <</if>> <</if>> <span class="teal">"<<print _response.pluck()>>"</span> <<else>> <<set $NPCList[$mouthtarget].condom.willUse to true>> <<if $consensual is 0>> <<He_Short>> pauses a moment before responding. <<set _response to [ "Sure thing, slut.", "Yeah, you probably have something contagious.", "Fine, but I expect you to cooperate.", "Good idea, I don't want any evidence traced back to me." ]>> <<else>> <<He_Short>> nods in acknowledgement. <<set _response to [ "I brought one, just in case." ]>> <</if>> <<if $settings.pregnancySpeechEnabled>> <<if playerPregnancyPossibleWith($NPCList[$mouthtarget])>> <<run _response.pushUnique( "I don't want a kid on my hands.", "I don't want to get you pregnant.", "Last thing I want is a brat with my name on it." )>> <<elseif NPCPregnancyPossibleWithPlayer($NPCList[$mouthtarget])>> <<run _response.pushUnique( "I don't want a kid on my hands.", "I'm not about to let myself get pregnant.", "You're not putting a kid in me." )>> <</if>> <</if>> <span class="green">"<<print _response.pluck()>>"</span> <</if>> <</if>> <<else>> /*Named NPC section*/ /*If the NPC does not have a condom, or NPC condoms are disabled*/ <<if $settings.condomLevel is 1 or !$NPCList[$mouthtarget].condom>> /*If the NPC's pregnancyAvoidance is 50 or higher*/ <<if $NPCList[$mouthtarget].pregnancyAvoidance gte 50>> <<set $NPCList[$mouthtarget].condomCanGive to true>> <<set $_speech to "acceptGive">> <<else>> <<set $_speech to "reject">> <</if>> /*If the NPC brought their own condom */ <<elseif $NPCList[$mouthtarget].condom>> /*If the NPC was going to use the condom anyways*/ <<if $NPCList[$mouthtarget].condom.willUse is true>> <<set $_speech to "acceptHas">> <<else>> <<set $NPCList[$mouthtarget].condom.willUse to true>> <<set $_speech to "accept">> <</if>> <</if>> <<set $_npcn to $npc[$npcrow.indexOf($mouthtarget)]>> <<switch $_npcn>> <<case "Robin">> /*Default pregnancyAvoidance is 50. Will have a condom if NPC condoms are enabled.*/ <<switch $_speech>> <<case "accept">> <<He_Short>> nods. "Better to stay safe, right?" <<case "acceptGive">> <<He_Short>> nods. "Better to stay safe, right? <span class="blue">Do you have one?</span>" <<case "acceptHas">> <<He_Short>> nods. "Better to stay safe, right? <span class="teal">I have one.</span>" <<case "reject">> /*MEANT TO BE UNREACHABLE*/ <<He_Short>> refuses! <span class="red">"That orphan ass is mine!"</span> <</switch>> <<case "Kylar">> /*Default pregnancyAvoidance is 0, and any condoms they use will be sabotaged beforehand.*/ <<switch $_speech>> <<case "accept">> <<He_Short>> excitedly nods. <<if $awareness gte 300>> "O-of course! <span class="red">I even brought my own!</span>" <<else>> "O-of course! <span class="teal">I even brought my own!</span>" <</if>> <<case "acceptGive">> /*MEANT TO BE UNREACHABLE*/ <<He_Short>> sadly nods. "Okay, but only because you cheated and reached this debug line. <span class="blue">Do you have one?</span>" <<case "acceptHas">> <<He_Short>> excitedly nods. <<if $awareness gte 300>> "O-of course! <span class="red">I even brought my own!</span>" <<else>> "O-of course! <span class="teal">I even brought my own!</span>" <</if>> <<case "reject">> <<He_Short>> looks sad for a moment. <<if pregnancyCompatible("Kylar") and $settings.pregnancySpeechEnabled>> "B-but why? We're going to have many children. <span class="lewd">We should start now</span>." <<else>> "B-but why? We don't need one! <span class="lewd">I want to do it raw.</span>" <</if>> <</switch>> <<case "Eden">> /*Default pregnancyAvoidance is 0, maybe increase after having 1 or 2 children?*/ <<switch $_speech>> <<case "accept">> <<He_Short>> looks annoyed. "<span class="green">Fine.</span><<if pregnancyCompatible("Eden") and $settings.pregnancySpeechEnabled>> I don't need another mouth to feed<<else>> I guess cleanup would be a pain<</if>>." <<case "acceptGive">> <<He_Short>> looks annoyed. "<span class="blue">Fine, if you have one.</span><<if pregnancyCompatible("Eden") and $settings.pregnancySpeechEnabled>> I don't need another mouth to feed<<else>> I guess cleanup would be a pain<</if>>." <<case "acceptHas">> <<He_Short>> looks annoyed. "<span class="teal">Fine, I have one lying around.</span> Don't blame me if it breaks, it's probably as old as you." <<case "reject">> <<He_Short>> sneers. "No. <span class="lewd">We're doing it my way.</span>" <</switch>> <<case "Whitney">> /*Default pregnancyAvoidance is 50*/ <<switch $_speech>> <<case "accept">> <<He_Short>> grins. <span class="green">"Sure thing, slut."</span> <<case "acceptGive">> <<He_Short>> grins. <span class="blue">"Sure, if you have one."</span> <<case "acceptHas">> <<He_Short>> grins. "<span class="teal">Yeah, yeah, I'm working on it.</span> Impatient <<bitch>>." <<case "reject">> <<He_Short>> grins. "Nah, <span class="lewd">I don't think you deserve it.</span>" <</switch>> <<case "Alex">> /*Default pregnancyAvoidance is 50, but always forgets to bring a condom.*/ <<switch $_speech>> <<case "accept">> /*MEANT TO BE UNREACHABLE*/ <<He_Short>> frowns and digs through a pocket. <<His>> face lights up. "<span class="green">How the hell did this get here?</span> I never remember these." <<case "acceptGive">> <<He_Short>> perks up. "Oh, sure!" <<He_Short>> digs through a pocket, then frowns. <span class="blue">"I didn't think to bring one. Do you have one?"</span> <<case "acceptHas">> /*MEANT TO BE UNREACHABLE*/ <<He_Short>> frowns and digs through a pocket. <<His>> face lights up. "<span class="teal">How the hell did this get here?</span> I never remember these." <<case "reject">> <<He_Short>> gives you a coy smile. <span class="lewd">"Ask me when I'm sober."</span> <</switch>> <<case "Sydney">> <<run statusCheck("Sydney")>> <<switch $_speech>> <<case "accept">> <<if _sydneyStatus.includes("corrupt")>> <<He_Short>> mockingly frowns and sighs. "Fiiiiiiine." <<else>> <<He_Short>> nods. "We need to prevent the transfer of impure fluids." <</if>> <<case "acceptGive">> <<if _sydneyStatus.includes("corrupt")>> <<He_Short>> frowns. "Okay, but... <span class="blue">I didn't bring one.</span> Sorry." <<else>> <<He_Short>> nods, but pauses. "I don't... usually carry those... <span class="blue">do you have one?</span>" <</if>> <<case "acceptHas">> <<He_Short>> nods. "Way ahead of you. I've got one right..." <<He>> sticks a hand into <<his>> pocket. <<He_Short>> freezes, before feeling around some more. "Uh oh." <<He_Short>> checks <<his>> other pocket. "Aha! Right here!" <<case "reject">> You feel a hand tighten around your throat. <span class="red">"No."</span> <</switch>> <<case "Gwylan">> <<switch $_speech>> <<case "accept" "acceptHas">> <<He_Short>> flicks <<his>> fingers, revealing that <<he>> was already holding one. "Ta-da." <<case "acceptGive">> <<He_Short>> shrugs. "I don't usually need them. If you have one, I won't stop you." <<case "reject">> <<He_Short>> tilts <<his>> head at you. <span class="lewd">"That won't be necessary. I've already taken precautions."</span> <</switch>> <<case "Morgan">> /*Default pregnancyAvoidance is random every encounter. I am so, so sorry.*/ <<switch $_speech>> <<case "accept">> <span class="green"><<He_Short>> excitedly nods.</span> "All sorts of nasty things these protect against! I even wear them on my fingers sometimes." <<case "acceptGive">> <<He_Short>> excitedly nods. "Look at my <<charles>>, always thinking of my safety! <span class="blue">Give one here.</span>" <<case "acceptHas">> <<He_Short>> excitedly nods. "Yes, <<charles>>, <span class="teal">I was going to use protection!</span> Be patient!" <<case "reject">> <span class="red"><<He_Short>> frowns and growls.</span> "I will not fuck the bag! The government can't make me do it! I won't!" <</switch>> <<default>> /*Need a case for Wren*/ <<switch $_speech>> <<case "accept">> <span class="green"><<He_Short>> nods in acknowledgement.</span> <<case "acceptGive">> <<He_Short>> nods. <span class="blue">"If you have one."</span> <<case "acceptHas">> <<He_Short>> nods. <span class="teal">"I was planning on using one anyways."</span> <<case "reject">> <span class="red"><<He_Short>> refuses!</span> <</switch>> <</switch>> <</if>> <<npcCondomEquipImmediate $mouthtarget>> <<else>> <<if $consensual is 1>> <<set $consensual to 0>> <<molested>><<controlloss>> <</if>> <<set _response to [ "You're not in charge here, slut.", "I'm clean. You have nothing to worry about.", "Hah! You wish!" ]>> <<if $settings.pregnancySpeechEnabled>> <<if playerPregnancyPossibleWith($NPCList[$mouthtarget])>> <<run _response.pushUnique( "You should feel lucky if I knock you up.", "Maybe I should just put a baby in you now.", "I could make you have my kids, and you wouldn't be able to do a damn thing." )>> <<elseif NPCPregnancyPossibleWithPlayer($NPCList[$mouthtarget])>> <<run _response.pushUnique( "I want your seed.", "No, you're going to give me kids.", "You don't have a choice. Make me a mother." )>> <</if>> <</if>> <<He_Short>> pauses a moment before responding. <span class="red">"<<print _response.pluck()>>"</span> <</if>> <</if>> <</if>> <<if $mouthaction is "ask" and $askAction is "noCondoms">> <<set $mouthaction to 0>><<unset $askAction>><<set _sound to 1>> <<personselect $mouthtarget>> <<if $neckuse is "hand" and $oxygen lt $oxygenmax and $settings.asphyxiaLevel gte 2>> <<wheeze "tell <<him>> to not use a condom">> <<else>> <<if !$NPCList[$mouthtarget].condom or ($NPCList[$mouthtarget].condom and !$NPCList[$mouthtarget].condom.willUse) or $NPCList[$mouthtarget].pregnancyAvoidance gte 90>><<set $_checkSkip to true>><</if>> <<set $mouthactiondefault to "rest">><<sub 2>><<if !$gloryhole and $gamemode isnot "soft" and !$_checkSkip>><<seductionskillusecombat>><</if>> <<set $NPCList[$mouthtarget].condomAsk to true>> <<if wearingCondom($mouthtarget) or wearingCondom("player")>> You ask <<combatperson>> to remove the condom. <<else>> You tell <<combatperson>> you don't want to use a condom. <</if>> <<if $role is "islander" and (!$islander_language or $islander_language lt 100)>> <span class="red"><<if $enemyno gte 2>>They don't<<else>><<He>> doesn't<</if>> understand your words,</span> and <<if $enemyno gte 2>>ignore<<else>>ignores<</if>> them. <<elseif combatSkillCheck("seduction", $mouthtarget, $NPCList[$mouthtarget].fullDescription) or $gamemode is "soft" or $gloryhole or $npcrow.includes($mouthtarget) or $_checkSkip>> <<if !$npcrow.includes($mouthtarget)>> <<if $NPCList[$mouthtarget].pregnancyAvoidance lt 80 or ($settings.condomLevel is 2 and !pregnancyCompatible($NPCList[$mouthtarget]))>> <<if !$player.condom and (!$NPCList[$mouthtarget].condom or $NPCList[$mouthtarget].condom.willUse is false)>> <<if !$NPCList[$mouthtarget].condom>> <<if $consensual is 0>> <<He_Short>> grins. <<set _response to [ "Didn't have one anyway.", "Do you think I carry around condoms?", "Ah, yes, let me get the condom I specifically put aside for when I want to molest someone. Oh, wait. Stupid whore.", "Condoms are expensive. Don't have one.", "I don't have one anyways, slut." ]>> <<else>> <<He_Short>> looks at you with a smug grin. <<set _response to [ "I didn't bring one, anyways." ]>> <</if>> <span class="blue">"<<print _response.pluck()>>"</span> <<else>> <<if $consensual is 0>> <<He_Short>> grins. <<set _response to [ "Wasn't gonna use one anyways, slut.", "These things are expensive, I wouldn't waste one on you.", "I prefer it raw, anyways." ]>> <<else>> <<He_Short>> looks at you with a smug grin. <<set _response to [ "I wasn't planning on using it, anyways." ]>> <</if>> <span class="teal">"<<print _response.pluck()>>"</span> <</if>> <<else>> <<if $NPCList[$mouthtarget].condom>> <<set $NPCList[$mouthtarget].condom.willUse to false>> <</if>> <<set _noCondom to true>> <<if $consensual is 0>> <<He_Short>> pauses a moment before responding. <<set _response to [ "Sure thing, slut.", "You like it bareback, eh?", "Fine, but I expect you to cooperate.", "You better be clean." ]>> <<else>> <<set _response to [ "It probably feels better raw.", "Alright, let's do it." ]>> <</if>> <<if $settings.pregnancySpeechEnabled>> <<if playerPregnancyPossibleWith($NPCList[$mouthtarget])>> <<run _response.pushUnique( "Looking to get knocked up? Nice.", "I'll breed you good, slut.", "Maybe I'll put a baby in you." )>> <<elseif NPCPregnancyPossibleWithPlayer($NPCList[$mouthtarget])>> <<run _response.pushUnique( "Trying to knock me up? Nice.", "You'd better knock me up.", "Good. Put a baby in me." )>> <</if>> <</if>> <span class="lewd">"<<print _response.pluck()>>"</span> <</if>> <<else>> <<He_Short>> shakes <<his>> head. <<set _response to [ "Not taking that chance.", "Sorry, I'm being safe about this.", "Shut up, don't be stupid." ]>> <<if $settings.pregnancySpeechEnabled>> <<if playerPregnancyPossibleWith($NPCList[$mouthtarget])>> <<run _response.pushUnique( "I'm not going to risk knocking you up.", "Look for someone else to be your baby daddy." )>> <<elseif NPCPregnancyPossibleWithPlayer($NPCList[$mouthtarget])>> <<run _response.pushUnique( "I'm not going to risk getting knocked up.", "Tempting, but no, I don't want to get pregnant.", )>> <</if>> <</if>> <span class="red">"<<print _response.pluck()>>"</span> <</if>> <<else>> /*Named NPC section*/ /*If the NPC does not have a condom, or NPC condoms are disabled*/ <<if !$NPCList[$mouthtarget].condom and !$player.condom>> <<set $_speech to "acceptNone">> /*If the NPC wasn't going to use one anyways*/ <<elseif (!$NPCList[$mouthtarget].condom or ($NPCList[$mouthtarget].condom and !$NPCList[$mouthtarget].condom.willUse)) and !$player.condom>> <<set $_speech to "acceptWont">> <<else>> /*Outcome dependant on pregnancyAvoidance*/ <<if $NPCList[$mouthtarget].pregnancyAvoidance lte 80>> <<if $NPCList[$mouthtarget].condom>> <<set $NPCList[$mouthtarget].condom.willUse to false>> <</if>> <<set _noCondom to true>> <<set $_speech to "accept">> <<else>> <<set $_speech to "reject">> <</if>> <</if>> <<set $_npcn to $npc[$npcrow.indexOf($mouthtarget)]>> <<switch $_npcn>> <<case "Robin">> <<switch $_speech>> <<case "accept">> <<He_Short>> nervously nods. <span class="lewd">"Are you sure this is safe?"</span> <<case "acceptNone">> <<He_Short>> nervously nods. <span class="blue">"I don't have one anyways..."</span> <<case "acceptWont">> <<He_Short>> nervously nods. <span class="teal">"I wasn't going to."</span> <<case "reject">> <<He_Short>> refuses. <span class="red">"We can't be reckless!"</span> <</switch>> <<case "Kylar">> <<switch $_speech>> <<case "accept">> <<He_Short>> excitedly nods. <span class="lewd">"Good! No protection!"</span> <<case "acceptNone">> <<He_Short>> excitedly nods. <span class="blue">"Ah... all mine are broken anyways..."</span> <<He_Short>> quickly covers <<his>> mouth to shush <<himself>>. <<case "acceptWont">> <<He_Short>> excitedly nods. <span class="teal">"I would never dream of using one with you."</span> <<case "reject">> /*MEANT TO BE UNREACHABLE*/ <<He_Short>> refuses. <span class="red">"I am suddenly out of character and no longer interested in breeding."</span> <</switch>> <<case "Eden">> <<switch $_speech>> <<case "accept">> <<He_Short>> nods. "<span class="lewd">Natural is best.</span> I don't trust the flimsy rubbers they make in town." <<case "acceptNone">> <<He_Short>> nods. <span class="blue">"I don't keep any of those around."</span> <<case "acceptWont">> <<He_Short>> nods. <span class="teal">"I wasn't going to use one."</span> <<case "reject">> <<He_Short>> refuses. <span class="red">"We need to be safe for a while."</span> <</switch>> <<case "Whitney">> <<switch $_speech>> <<case "accept">> <<He_Short>> nods. <span class="lewd">"You want it raw? Good."</span> <<case "acceptNone">> <<He_Short>> nods. "<span class="blue">I didn't bring one.</span> I thought you'd want it raw." <<case "acceptWont">> <<He_Short>> nods. <span class="teal">"I wasn't going to use one anyways, slut."</span> <<case "reject">> <<He_Short>> refuses. <span class="red">"You're not in charge, <<bitch>>."</span> <</switch>> <<case "Alex">> <<switch $_speech>> <<case "accept">> <<He_Short>> puts <<his>> arms up triumphantly. <span class="lewd">"Woo, we're riding bareback!"</span> <<case "acceptNone">> <<He_Short>> looks down sheepishly. <span class="blue">"I forgot to bring one anyways."</span> <<case "acceptWont">> <<He_Short>> looks down sheepishly. <span class="teal">"I forgot to bring one anyways."</span> <<case "reject">> <<He_Short>> refuses. <span class="red">"I didn't forget for once, so we're gonna use it, damn it!"</span> <</switch>> <<case "Sydney">> <<run statusCheck("Sydney")>> <<switch $_speech>> <<case "accept" "acceptNone" "acceptWont">> <<if _sydneyStatus.includes("corrupt")>> <<He_Short>> grins. <span class="lewd">"Good. Fuck me raw."</span> <<else>> <<He_Short>> flushes. <span class="lewd">"Oh, okay! If you're sure..."</span> <</if>> <<case "reject">> <<He_Short>> refuses. <span class="red">"We need to be safe! I can't let the temple down."</span> <</switch>> <<case "Gwylan">> <<run statusCheck("Gwylan")>> <<switch $_speech>> <<case "accept" "acceptNone" "acceptWont">> <<He_Short>> shrugs. <span class="blue">"I don't typically need them."</span> <<case "reject">> <<He_Short>> refuses. <span class="red">"I'm sorry, but I need to store these fluids for later. A condom is the most convenient way for me to do that."</span> <</switch>> <<case "Morgan">> You're not even sure if <<he>> heard you. <<default>> <<switch $_speech>> <<case "accept" "acceptNone" "acceptWont">> <span class="green"><<He_Short>> nods in acknowledgement.</span> <<case "reject">> <span class="red"><<He_Short>> refuses.</span> <</switch>> <</switch>> <</if>> <<if _noCondom>> /*Your penis*/ <<if wearingCondom("player")>> <<if $penisstate is "entrance" or $penisstate is "imminent" or $penisstate is "otheranusentrance" or $penisstate is "otheranusimminent">> <<if ($NPCList[$mouthtarget].vagina is "penis" or $NPCList[$mouthtarget].penis is "otheranus")>> <<personselect $mouthtarget>> <span class="green"><<He_Short>> rolls <<condomDesc "player" "the">> off your penis.</span> <<removeNPCCondom $mouthtarget "player">> <</if>> <</if>> <<if $penisstate is "penetrated">> <<if $NPCList[$mouthtarget].vagina is "penis">> <<personselect $mouthtarget>> <span class="green"><<He_Short>> briefly frees your penis from <<his>> vagina, rolls off <<condomDesc "player" "the">>, and slides it back in.</span> <<removeNPCCondom $mouthtarget "player">> <</if>> <</if>> <<if $penisstate is "otheranus">> <<if $NPCList[$mouthtarget].penis is "otheranus">> <<personselect $mouthtarget>> <span class="green"><<He_Short>> briefly frees your penis from <<his>> ass, rolls off <<condomDesc "player" "the">>, and slides it back in.</span> <<removeNPCCondom $mouthtarget "player">> <</if>> <</if>> <</if>> /*Their penis*/ <<if $vaginastate is "entrance" or $vaginastate is "imminent" or $vaginastate is "doubleentrance" or $vaginastate is "doubleimminent">> <<if ($NPCList[$mouthtarget].penis is "vaginaentrance" or $NPCList[$mouthtarget].penis is "vaginaimminent" or $NPCList[$mouthtarget].penis is "vaginaentrancedouble" or $NPCList[$mouthtarget].penis is "vaginaimminentdouble") and wearingCondom($mouthtarget)>> <<personselect $mouthtarget>> <span class="green"><<He_Short>> rolls <<condomDesc $mouthtarget "the">> off <<his>> penis.</span> <<removeNPCCondom $mouthtarget>> <</if>> <</if>> <<if $vaginastate is "penetrated" or $vaginastate is "doublepenetrated">> <<if ($NPCList[$mouthtarget].penis is "vagina" or $NPCList[$mouthtarget].penis is "vaginadouble") and wearingCondom($mouthtarget)>> <<personselect $mouthtarget>> <span class="green"><<He_Short>> briefly withdraws <<his>> penis from your vagina, rolls off <<condomDesc $mouthtarget "the">>, and slides it back in.</span> <<removeNPCCondom $mouthtarget>> <</if>> <</if>> <<if $anusstate is "entrance" or $anusstate is "imminent" or $anusstate is "doubleentrance" or $anusstate is "doubleimminent">> <<if ($NPCList[$anustarget].penis is "anusentrance" or $NPCList[$mouthtarget].penis is "anusimminent" or $NPCList[$mouthtarget].penis is "anusdoubleentrance" or $NPCList[$mouthtarget] is "anusdoubleimminent") and wearingCondom($mouthtarget)>> <<personselect $mouthtarget>> <span class="green"><<He_Short>> rolls <<condomDesc $mouthtarget "the">> off <<his>> penis.</span> <<removeNPCCondom $mouthtarget>> <</if>> <</if>> <<if $anusstate is "penetrated" or $anusstate is "doublepenetrated">> <<if ($NPCList[$mouthtarget].penis is "anus" or $NPCList[$mouthtarget].penis is "anusdouble") and wearingCondom($mouthtarget)>> <<personselect $mouthtarget>> <span class="green"><<He_Short>> briefly withdraws <<his>> penis from your anus, rolls off <<condomDesc $mouthtarget "the">>, and slides it back in.</span> <<removeNPCCondom $mouthtarget>> <</if>> <</if>> <</if>> <<else>> <<if $consensual is 1>> <<set $consensual to 0>> <<molested>><<controlloss>> <</if>> <<set _response to [ "Stupid slut, you think you can tell me what to do?", "You're not in charge here, slut.", "I'll do what I want, slut." ]>> <<He_Short>> pauses a moment before responding, <span class="red">"<<print _response.pluck()>>"</span> <</if>> <</if>> <</if>> <<if $mouthaction is "ask" and $askAction is "askPullOut">> <<set $mouthaction to 0>><<unset $askAction>><<set _sound to 1>> <<personselect $mouthtarget>> <<if $neckuse is "hand" and $oxygen lt $oxygenmax and $settings.asphyxiaLevel gte 2>> <<wheeze "tell <<him>> to pull out">> <<else>> <<set $pullOutAsk to true>> <<set $_npcn to $npc[$npcrow.indexOf($mouthtarget)]>> <<if $consensual is 0>> <<set $_pullOutAskBaseDifficulty to 1500 + 10 * (100 - $NPCList[$mouthtarget].pregnancyAvoidance)>> <<else>> <<set $_pullOutAskBaseDifficulty to 1000 + 5 * (100 - $NPCList[$mouthtarget].pregnancyAvoidance)>> <</if>> <<if $NPCList[$mouthtarget].pregnancyAvoidance gte 90 or $_npcn is "Kylar">><<set $_checkSkip to true>><</if>> <<set $mouthactiondefault to "rest">><<if !$gloryhole and $gamemode isnot "soft" and !$_checkSkip>><<seductionskillusecombat>><</if>> <<brat `Math.floor((100 - $NPCList[$mouthtarget].pregnancyAvoidance) / 20)`>> You ask <<combatperson>> to pull out and finish outside. <<if $role is "islander" and (!$islander_language or $islander_language lt 100)>> <span class="red"><<if $enemyno gte 2>>They don't<<else>><<He>> doesn't<</if>> understand your words,</span> and <<if $enemyno gte 2>>ignore<<else>>ignores<</if>> them. <<elseif $npc[$npcrow.indexOf($mouthtarget)] is "Kylar">> <<He_Short>> freezes for a moment. <span class="red">"No, my love."</span> <<elseif $npc[$npcrow.indexOf($mouthtarget)] is "Gwylan" and _gwylanStatus.includes("heat")>> <<He_Short>> huffs. <span class="red">"I'm sorry dear, I can't. I need this."</span> <<elseif combatSkillCheck("seduction", $mouthtarget, $NPCList[$mouthtarget].fullDescription, $_pullOutAskBaseDifficulty) or $gamemode is "soft" or $gloryhole or $_checkSkip>> <<set $pullOut to true>> <<if $consensual is 0 and !$npcrow.length>> <<He_Short>> pauses a moment before responding. <<set _response to [ "Sure thing, slut.", "Fine, but I expect you to cooperate.", "Good idea, I don't want any evidence traced back to me." ]>> <span class="green">"<<print _response.pluck()>>"</span> <<else>> <span class="green"><<He_Short>> nods in acknowledgement.</span> <</if>> <<else>> <<combatRequestRefused "askPullOut">> <</if>> <</if>> <</if>> <<if $mouthaction is "pay">> <<set $mouthaction to 0>><<set $mouthactiondefault to "rest">> <<if $money gte $rentmoney + ($babyRent or 0)>> <<set $speechpay to 1>> <<if $speech_attitude is "meek">> "S-stop!" you shout. "I'll pay you, so... j-just let Robin go." <<elseif $speech_attitude is "bratty">> "I'll pay you," you say through gritted teeth. "So get your hands off <<nnpc_him "Robin">>." <<else>> "Let go of <<nnpc_him "Robin">>!" you shout. "I have your money. I'll pay." <</if>> <<else>> <<set $speechpay to -1>> <<if $speech_attitude is "meek">> "S-stop!" you shout. "I don't have enough, b-but... just let <<nnpc_him "Robin">> go, please!" <<elseif $speech_attitude is "bratty">> "I don't have enough," you say through gritted teeth. "So get your hands off <<nnpc_him "Robin">>." <<else>> "Let go of <<nnpc_him "Robin">>!" you shout. "I don't have your money. I can't pay." <</if>> <</if>> <<control -10>><<lcontrol>> <</if>> <<if $mouthaction is "ask" and $askAction is "wearStrapon">> <<set $mouthaction to 0>><<unset $askAction>><<set _sound to 1>> <<if $neckuse is "hand" and $oxygen lt $oxygenmax and $settings.asphyxiaLevel gte 2>> <<wheeze "ask <<him>> to wear <<his>> strap-on">><<meek 1>> <<else>> <<brat 5>> <<set $mouthactiondefault to "rest">> You ask <<him>> to wear <<his>> strap-on. <<if $role is "islander" and (!$islander_language or $islander_language lt 100)>> <span class="red"><<if $enemyno gte 2>>They don't<<else>><<He>> doesn't<</if>> understand your words,</span> and <<if $enemyno gte 2>>ignore<<else>>ignores<</if>> them. <<elseif ($npc[$npcrow.indexOf(_n)] is "Eden" and C.npc.Eden.love lte 100) or ($npc[$npcrow.indexOf(_n)] is "Whitney" and C.npc.Whitney.love lte 10)>> <<print either("I'll do what I want, <<bitch>>.","Shut up, slut. I'm in control here.")>> <<violence 5>><<brat 2>> <<else>> <<personselect $mouthtarget>> <<He>> nods and moves to don <<his>> strap-on. <<npcstrapon $mouthtarget>> <<set $NPCList[$mouthtarget].penis to "strap-on">> <</if>> <</if>> <</if>> <<if $mouthaction is "ask" and $askAction is "removeStrapon">> <<set $mouthaction to 0>><<unset $askAction>><<set _sound to 1>> <<if $neckuse is "hand" and $oxygen lt $oxygenmax and $settings.asphyxiaLevel gte 2>> <<wheeze "ask <<him>> to remove <<his>> strap-on">><<brat 1>> <<else>> <<brat 5>><<set $mouthactiondefault to "rest">> You ask <<personselect $mouthtarget>><<combatperson>> to remove <<his>> strap-on. <<if $role is "islander" and (!$islander_language or $islander_language lt 100)>> <span class="red"><<if $enemyno gte 2>>They don't<<else>><<He>> doesn't<</if>> understand your words,</span> and <<if $enemyno gte 2>>ignore<<else>>ignores<</if>> them. <<elseif !$gloryhole and $gamemode isnot "soft">><<seductionskillusecombat>><</if>> <<if combatSkillCheck("seduction", $mouthtarget, $NPCList[$mouthtarget].fullDescription) or $gamemode is "soft" or $gloryhole>> <<He>> nods and removes <<his>> $NPCList[$mouthtarget].penisdesc. /* Remove their strap-on. If they have a penis, give them back their penis. */ <<set $_npcname to $npc[$npcrow.indexOf($mouthtarget)]>> <<set $_npctarget to C.npc[$_npcname]>> <<if ["Robin","Kylar","Alex","Avery","Whitney","Eden","Sydney"].includes($_npcname) and $_npctarget.penis isnot "none">> <<set $NPCList[$mouthtarget].penisdesc to $_npctarget.penisdesc>><<set $NPCList[$mouthtarget].penis to 0>> <<else>> <<set $NPCList[$mouthtarget].penis to "none">><<set $NPCList[$mouthtarget].vagina to 0>> <</if>> <<set $NPCList[$mouthtarget].strapon.state to "removed">> <<else>> <<if $consensual is 1>> <<set $consensual to 0>> <<molested>><<controlloss>> <</if>> They pause a moment before responding. <span class="red">"Stupid slut, you think you can tell me what to do?"</span> <</if>> <</if>> <</if>> /*Stalked actions */ <<if !$stalk_end>> <<if $mouthaction is "up">> <<set $mouthaction to 0>><<set $mouthactiondefault to "up">> <<if $control gte 100>> You keep your chin up and head proud. <<elseif $control gte 80>> You keep you head up and eyes focused on the path ahead. <<elseif $control gte 60>> You keep your eyes fixed on the path ahead. <<elseif $control gte 40>> You keep your eyes ahead, resisting the urge to look around for threats. <<elseif $control gte 20>> You keep your head up, your eyes searching the path ahead for danger. <<else>> You keep your head up, but close your eyes in fear. <</if>> <<brat 3>> <</if>> <<if $mouthaction is "down">> <<set $mouthaction to 0>><<set $mouthactiondefault to "down">> <<if $control gte 100>> You look at the ground in front of you. <<elseif $control gte 80>> You watch the ground in front of you. <<elseif $control gte 60>> You keep your head down, hoping not to be noticed. <<elseif $control gte 40>> You keep your head down and hope nothing is watching. <<elseif $control gte 20>> You keep your head down and tell yourself the path is safe. <<else>> You bow your head in fear. <</if>> <<meek 3>> <</if>> <<if $mouthaction is "turn">> <<set $mouthaction to 0>><<set $mouthactiondefault to "turn">> You glance over your shoulder. <<if $stalk_assess>> <<if $npcrow.includes(0)>> <<if $NPCList[0].fullDescription is "Ivory Wraith">> <<if $wraith.state is "haunt" or $wraith.offspring is "dead">> The pale figure continues to stalk you. <<else>> The pale figure continues to drift along. <</if>> <<else>> <<print $NPCList[0].fullDescription>> is still following you. <</if>> <<else>> The <<person1>><<person>> is still following you. <</if>> <<else>> <<if $npcrow.includes(0)>> <<if $NPCList[0].fullDescription is "Ivory Wraith">> <<if $wraith.state is "haunt" or $wraith.offspring is "dead">> A<<if $wraith.seen gte 3>> familiar<</if>> pale figure lurks behind you, <span class="red">its eerie <<wraithEyes>> gaze locked on you.</span> <<else>> A<<if $wraith.seen gte 3>> familiar<</if>> pale figure drifts behind you, seeming unaware of your presence. <</if>> Its feet don't touch the ground, but you still hear footsteps. <<else>> You see a <<person1>><<personsimple>> following you. <span class="pink">It's <<print $NPCList[0].fullDescription>>.</span> <</if>> <<else>> You see a <<person1>><<person>> following you. <</if>> <</if>> <<if $npcrow.includes(0)>> <<if $NPCList[0].fullDescription is "Ivory Wraith">> It <<else>> <<nnpc_He $NPCList[0].fullDescription>> <</if>> <<else>> <<He>> <</if>> moves with <<if $NPCList[0].skills.athletics gte 1000>> <span class="red">masterful grace</span> <<elseif $NPCList[0].skills.athletics gte 800>> <span class="pink">an energetic stride</span> <<elseif $NPCList[0].skills.athletics gte 600>> <span class="purple">a motivated pace</span> <<elseif $NPCList[0].skills.athletics gte 400>> <span class="blue">a calm gait</span> <<elseif $NPCList[0].skills.athletics gte 200>> <span class="lblue">a lazy ramble</span> <<else>> <span class="teal">a slothful shuffle</span> <</if>> and <<if $NPCList[0].skills.security gte 1000>> <span class="red"><<his>> gaze is piercing.</span> <<elseif $NPCList[0].skills.security gte 800>> <span class="pink">has a devious glint in <<his>> eyes.</span> <<elseif $NPCList[0].skills.security gte 600>> <span class="purple">looks focused.</span> <<elseif $NPCList[0].skills.security gte 400>> <span class="blue">looks relaxed.</span> <<elseif $NPCList[0].skills.security gte 200>> <span class="lblue">seems distracted.</span> <<else>> <span class="teal">appears to be daydreaming.</span> <</if>> <<if $enemyno is 2>> A <<person2>><<person>> follows <<person1>><<him>>. <<elseif $enemyno gte 3>> <<switch $enemyno>> <<case 6>>Five <<case 5>>Four <<case 4>>Three <<case 3>>Two <</switch>> others follow <<him>>. <</if>> <<set $stalk_assess to true>> <</if>> <<if $mouthaction is "taunt" and !$stalk_end and $feetuse isnot "run">> <<stalk_taunt_effects>> <</if>> <</if>> /*End of stalked actions */ /*** * ███████ ██ ██ ███████ ███████ ██ ██ * ██ ██ ██ ██ ██ ██ ██ ██ * ███████ ██ ██ ███████ ███████ ███ * ██ ██ ██ ██ ██ ███ * ██ █████ ███████ ███████ ███ * */ <<if $newtarget isnot undefined>> <<setnewtarget>> <</if>> <<rng>> <<if $vaginaaction is "penisthighs" and $NPCList[$vaginatarget].penis is "vaginaentrance">> <<set $vaginaaction to 0>><<meek 1 $vaginatarget>><<thighskilluse>><<set $vaginaactiondefault to "penisthighs">><<combatpromiscuity4>> <<if $thighuse is 0>> <<if combatSkillCheck("thigh", $vaginatarget)>> <<set $thighactiondefault to "rub">> <<personselect $vaginatarget>> <span class="lblue">You <<thightext>> grab <<hisselect $vaginatarget>> $NPCList[$vaginatarget].penisdesc between your thighs.</span> <<set $NPCList[$vaginatarget].penis to "thighs">><<set $thightarget to $vaginatarget>> <<set $vaginause to 0>><<set $thighuse to "penis">><<thighstat>><<sex 5 "genitals" $vaginatarget>><<set $vaginastate to 0>> <<else>> You try to hold <<hisselect $vaginatarget>> penis between your thighs, but <<he>> is intent on your pussy. <</if>> <<else>> You try to hold <<hisselect $vaginatarget>> penis between your thighs, but they are occupied. <</if>> <</if>> <<rng>> <<effectsvaginatopenis>> <<rng>> <<effectsvaginatovagina>> <<rng>> <<effectsvaginapenisfuck>> <<rng>> <<effectsvaginatovaginafuck>> <<rng>> <<effectsvaginapenisdoublefuck>> <<rng>> <<effectsvaginatopenisdouble>> <<if $vaginaaction is "rest">> <<set $vaginaaction to 0>><<set $vaginaactiondefault to "rest">> <</if>> <<rng>> <<if $vaginaaction is "penisanus" and $NPCList[$vaginatarget].penis is "vaginaentrance">> <<if $anusstate isnot 0 and $anusstate is "entrance" or $anusstate is "imminent">> <<if $settings.analDoubleEnabled>> <<set $vaginaaction to "penisanusdouble">> <<else>> You give your <<bottom>> a little wiggle, but receive a slap. <<violence 2>><<hitstat>><<bruise bottom>> <</if>> <<elseif $anusstate isnot 0 and $anusstate.includes("double")>> You give your <<bottom>> a little wiggle, but receive a slap. "Settle down, <<bitch>>." <<violence 2>><<hitstat>><<bruise bottom>> <<else>> <<set $vaginaaction to 0>><<meek 5 $vaginatarget>><<analskilluse>><<set $vaginaactiondefault to "penisanus">> <<if combatSkillCheck("anal", $vaginatarget)>> <<personselect $vaginatarget>> <span class="blue">You give your <<bottom>> a little wiggle, <<combatperson>> responds to the provocation and moves <<his>> <<npcPenisSimple $vaginatarget>> in front of your butt.</span> <<if $NPCList[$vaginatarget].type is "plant" and $NPCList[$vaginatarget].penissize gte 4 and canImpregnateParasite("vagina")>> <span class="red">Something about it scares you.</span> <</if>> <<submission 2>><<set $anususe to "penis">><<set $NPCList[$vaginatarget].penis to "anusentrance">><<set $vaginause to 0>><<set $anusstate to "entrance">><<set $vaginastate to 0>> <<else>> You give your <<bottom>> a little wiggle, but you just receive a slap. <<violence 2>><<hitstat>><<bruise bottom>> <</if>> <</if>> <</if>> <<rng>> <<if $vaginaaction is "penisanusdvp">> <<if $anusstate isnot 0 and $anusstate is "entrance" or $anusstate is "imminent">> <<if $settings.analDoubleEnabled and random(0,2) isnot 0 and $awareness gte 300>> <<set $vaginaaction to "penisanusdouble">> <<else>> You give your <<bottom>> a little wiggle, but receive a slap. <<violence 2>><<hitstat>><<bruise bottom>> <</if>> <<elseif $anusstate isnot 0 and $anusstate.includes("double")>> You give your <<bottom>> a little wiggle, but receive a slap. "Settle down, <<bitch>>." <<violence 2>><<hitstat>><<bruise bottom>> <<else>> <<set $vaginaaction to 0>><<meek 5>><<analskilluse>><<set $vaginaactiondefault to "penisanusdvp">> <<set _npcA to ($NPCList[$vaginatarget].penis is "vaginaentrancedouble" ? $vaginatarget : $vaginadoubletarget)>> <<set _npcB to ($NPCList[$vaginatarget].penis is "vaginaentrancedouble" ? $vaginadoubletarget : $vaginatarget)>> <<if combatSkillCheck("anal", _npcA)>> <<if $NPCList[_npcB].penis is "vaginadouble">> <<set $NPCList[_npcB].penis to "vagina">> <<set $vaginastate to "penetrated">> <<elseif $NPCList[_npcB].penis is "vaginaimminentdouble">> <<set $NPCList[_npcB].penis to "vaginaimminent">> <<set $vaginastate to "imminent">> <<elseif $NPCList[_npcB].penis is "vaginaentrancedouble">> <<set $NPCList[_npcB].penis to "vaginaentrance">> <<set $vaginastate to "entrance">> <</if>> <<personselect _npcA>> <span class="blue">You give your <<bottom>> a little wiggle, <<combatperson>> responds to the provocation and moves <<his>> penis in front of your butt.</span> <<if $NPCList[_npcA].type is "plant" and $NPCList[_npcA].penissize gte 4 and canImpregnateParasite("anus")>> <span class="red">Something about it scares you.</span> <</if>> <<submission 2>><<set $anususe to "penis">><<set $NPCList[_npcA].penis to "anusentrance">><<set $vaginause to "penis">><<set $anusstate to "entrance">> <<else>> You give your <<bottom>> a little wiggle, but you just receive a slap. <<violence 2>><<hitstat>><<bruise bottom>> <</if>> <</if>> <</if>> <<rng>> <<if $vaginaaction is "penisanusdouble">> <<set $vaginaaction to 0>><<meek 5 $vaginatarget>><<analskilluse>> <<if combatSkillCheck("anal", $vaginatarget) and $anususe is "penis">> <<personselect $vaginatarget>><<set $vaginaactiondefault to "rest">> <span class="blue">You give your <<bottom>> a little wiggle, <<combatperson>> responds to the provocation and moves <<his>> penis to join the phallus in front of your butt.</span> <<submission 2>> <<set $anususe to "penisdouble">><<set $anusstate to "doubleentrance">><<set $vaginause to 0>><<set $vaginastate to 0>> <<set $NPCList[$vaginatarget].penis to "anusentrancedouble">> <<set $anusdoubletarget to $vaginatarget>> <<if $NPCList[$anustarget].penis is "anus">> <<set $NPCList[$anustarget].penis to "anusdouble">> <<set $anusstate to "doublepenetrated">> <<elseif $NPCList[$anustarget].penis is "anusimminent">> <<set $NPCList[$anustarget].penis to "anusimminentdouble">> <<set $anusstate to "doubleimminent">> <<elseif $NPCList[$anustarget].penis is "anusentrance">> <<set $NPCList[$anustarget].penis to "anusentrancedouble">> <<set $anusstate to "doubleentrance">> <<elseif $NPCList[$anustarget].penis is "cheeks">> <<set $NPCList[$anustarget].penis to "anusentrance">> <<set $bottomuse to 0>> /* Issues with ass cheeks likely stem from this culprit right here */ <</if>> <<set $NPCList[$anustarget].location.genitals to "genitals">> <<else>> You give your <<bottom>> a little wiggle, but you just receive a slap. <<violence 2>><<hitstat>><<bruise bottom>><<set $vaginaactiondefault to "penisanusdouble">> <</if>> <</if>> <<if $vaginaaction is "penistease">> <<set $vaginaaction to 0>><<set $vaginaactiondefault to "penistease">><<actionspenistip $vaginatarget>><<sex 5 "genitals" $vaginatarget>><<vaginalskilluse>> <</if>> <<if $vaginaaction is "penisdoubletease">> <<set $vaginaaction to 0>><<set $vaginaactiondefault to "penistease">><<actionspenisdoubletip>><<sex 5 "genitals" $vaginatarget>><<vaginalskilluse>> <</if>> <<if $vaginaaction is "doublecooperate">> <<set $vaginaaction to 0>><<set $vaginaactiondefault to "doublecooperate">><<actionspenisdoubleride>><<submission 20>><<vaginalskilluse>> <</if>> <<if $vaginaaction is "penisDoubleEdging">> <<set $vaginaaction to 0>><<set $vaginaactiondefault to "penisDoubleEdging">><<actionspenisdoubleedging>><<submission 5>><<sexControl 5 `currentSkillValue("vaginalskill")`>><<vaginalskilluse>> <</if>> <<if $vaginaaction is "doubletake">> <<set $vaginaaction to 0>><<set $vaginaactiondefault to "doubletake">><<actionspenisdoubletake>> <</if>> <<if $vaginaaction is "rub">> <<set $vaginaaction to 0>><<set $vaginaactiondefault to "rub">><<actionspenisrub $vaginatarget>><<sex 10 "genitals" $vaginatarget>><<vaginalskilluse>> <</if>> <<if $vaginaaction is "cooperate">> <<set $vaginaaction to 0>><<set $vaginaactiondefault to "cooperate">><<actionspenisride $vaginatarget>><<submission 20>><<vaginalskilluse>> <</if>> <<if $vaginaaction is "penisEdging">> <<set $vaginaaction to 0>><<set $vaginaactiondefault to "penisEdging">><<actionspenisedging $vaginatarget>><<submission 5>><<sexControl 5 `currentSkillValue("vaginalskill")` $vaginatarget>><<vaginalskilluse>> <</if>> <<if $vaginaaction is "take">> <<set $vaginaaction to 0>><<set $vaginaactiondefault to "take">><<actionspenistake $vaginatarget>> <</if>> <<if $vaginaaction is "tribtease">> <<set $vaginaaction to 0>><<set $vaginaactiondefault to "tribtease">><<actionstribtease $vaginatarget>><<sex 10 "genitals">><<vaginalskilluse>> <</if>> <<if $vaginaaction is "tribcooperate">> <<set $vaginaaction to 0>><<set $vaginaactiondefault to "tribcooperate">><<actionstribcooperate $vaginatarget>><<submission 20>><<vaginalskilluse>> <</if>> <<if $vaginaaction is "tribtake">> <<set $vaginaaction to 0>><<set $vaginaactiondefault to "tribtake">><<actionstribtake $vaginatarget>> <</if>> <<if $vaginaaction is "tribedge">> <<personselect $vaginatarget>><<actionstribedge $vaginatarget>><<set $vaginaaction to 0>><<set $vaginaactiondefault to "tribedge">> <<submission 5>><<sexControl 5 `currentSkillValue("vaginalskill")` $vaginatarget>><<vaginalskilluse>><<combatpromiscuity4>> <</if>> <<if $vaginaaction is "tribrest">> <<set $vaginaaction to 0>><<set $vaginaactiondefault to "rest">> <</if>> <<if $vaginaaction is "tribescape">> <<set $vaginaaction to 0>><<set $vaginaactiondefault to "tribescape">><<actionstribescape $vaginatarget>><<brat 10 $vaginatarget>> <<if $vaginastate is "othervagina">> <<set $vaginastate to "othervaginaimminent">> <<else>> <<set $vaginastate to "othervaginaentrance">> <</if>> <<if $NPCList[$vaginatarget].vagina is "vagina">> <<set $NPCList[$vaginatarget].vagina to "vaginaimminent">> <<elseif $NPCList[$vaginatarget].vagina is "vaginaimminent">> <<set $NPCList[$vaginatarget].vagina to "vaginaentrance">> <</if>> <</if>> <<if $vaginaaction is "escape" and $NPCList[$vaginatarget].penis is "vaginaimminent">> <<set $vaginaaction to 0>><<set $vaginaactiondefault to "escape">><<actionsvaginaescape $vaginatarget>><<set $vaginause to "penis">><<set $vaginastate to "entrance">> <<set $NPCList[$vaginatarget].penis to "vaginaentrance">><<set $NPCList[$vaginatarget].speechvaginaescape to 1>> <<if $NPCList[$vaginatarget].penissize gte 5>> <<brat 35 $vaginatarget>> <<elseif $NPCList[$vaginatarget].penissize is 4>> <<brat 30 $vaginatarget>> <<elseif $NPCList[$vaginatarget].penissize is 3>> <<brat 25 $vaginatarget>> <<elseif $NPCList[$vaginatarget].penissize is 2>> <<brat 20 $vaginatarget>> <<elseif $NPCList[$vaginatarget].penissize is 1>> <<brat 15 $vaginatarget>> <<else>> <<brat 10 $vaginatarget>> <</if>> <</if>> <<if $vaginaaction is "doubleescape">> <<set $vaginaaction to 0>> <<set $vaginaactiondefault to "doubleescape">><<actionsvaginadoubleescape>><<brat 10>><<set $vaginause to "penisdouble">><<set $vaginastate to "doubleentrance">> <<set $enemyanger += 5>> <<set _otherNPCindex to "f">> <<set _actiontext to "You escape ">> <<set _npcA to $vaginatarget>> <<set _npcB to $vaginadoubletarget>> <<if $NPCList[_npcA].penis is "vaginaimminentdouble">> <<set $NPCList[_npcA].penis to "vaginaentrancedouble">><<set $NPCList[_npcA].speechvaginaescape to 1>> <<elseif $NPCList[_npcA].penis is "vaginaentrancedouble" and random(0,3) is 0>> /* Chance to drop one of them and switch to regular anal */ <<set _otherNPCindex to _npcB>><<set $NPCList[_npcA].location.genitals to 0>><<set $NPCList[_npcA].speechvaginaescape to 1>><<set $enemyanger += 15>> <<set $NPCList[_npcA].penis to 0>> <span class="green"> <<print _actiontext + ($npc_named isnot 1 ? "the " : "") + $NPCList[_npcA].fullDescription + "'s " + $NPCList[_npcA].penisdesc + ".">></span> <</if>> <<if $NPCList[_npcB].penis is "vaginaimminentdouble">> <<set $NPCList[_npcB].penis to "vaginaentrancedouble">><<set $NPCList[_npcB].speechvaginaescape to 1>> <<elseif $NPCList[_npcB].penis is "vaginaentrancedouble" and random(0,3) is 0>> /* Chance to drop one of them and switch to regular vaginal */ <<set _otherNPCindex to _npcA>><<set $NPCList[_npcB].location.genitals to 0>><<set $NPCList[_npcB].speechanusescape to 1>><<set $enemyanger += 15>> <<set $NPCList[_npcB].penis to 0>> <span class="green"> <<print _actiontext + ($npc_named isnot 1 ? "the " : "") + $NPCList[_npcB].fullDescription + "'s " + $NPCList[_npcB].penisdesc + ".">></span> <</if>> <<if _otherNPCindex isnot "f" and $NPCList[_otherNPCindex].penis isnot 0 and $NPCList[_otherNPCindex].penis.includes("double")>> <<set $vaginause to "penis">> <<switch $NPCList[_otherNPCindex].penis>> <<case "vaginadouble">> <<set $NPCList[_otherNPCindex].penis to "vagina">> <<set $vaginastate to "penetrated">> <<case "vaginaentrancedouble">> <<set $NPCList[_otherNPCindex].penis to "vaginaentrance">> <<set $vaginastate to "entrance">> <<case "vaginaimminentdouble">> <<set $NPCList[_otherNPCindex].penis to "vaginaimminent">> <<set $vaginastate to "imminent">> <</switch>> <</if>> <</if>> <<if $vaginaaction is "thighbay" and $NPCList[$vaginatarget].mouth is "vaginaentrance">> <<set $vaginaaction to 0>><<meek 1 $vaginatarget>><<thighskilluse>><<set $vaginaactiondefault to "thighbay">><<combatpromiscuity1>> <<if combatSkillCheck("thigh", $vaginatarget)>> <<set $thighactiondefault to "othermouthrub">> <<personselect $vaginatarget>> <span class="lblue">You <<thightext>> press your thigh against <<hisselect $vaginatarget>> mouth.</span> <<set $NPCList[$vaginatarget].mouth to "thigh">><<set $vaginause to 0>><<thighstat>><<neutral 5 $vaginatarget>><<set $vaginastate to 0>><<set $thighuse to "mouth">> <<else>> You try to keep the mouth menacing your <<pussy>> at bay by pressing your thigh against it, but <<theowner>> has other ideas. <</if>> <</if>> <<if $vaginaaction is "othervaginarub">> <<set $vaginaaction to 0>><<set $vaginaactiondefault to "othervaginarub">><<actionsothervaginavaginarub $vaginatarget>><<sex 10 "genitals">><<vaginalskilluse>> <</if>> <<if $vaginaaction is "othermouthtease">> <<set $vaginaaction to 0>><<set $vaginaactiondefault to "othermouthtease">><<actionsothermouthvaginatease $vaginatarget>><<sex 5 "genitals">><<vaginalskilluse>> <</if>> <<if $vaginaaction is "othermouthrub">> <<set $vaginaaction to 0>><<set $vaginaactiondefault to "othermouthrub">><<actionsothermouthvaginarub $vaginatarget>><<sex 10 "genitals">><<vaginalskilluse>> <</if>> <<if $vaginaaction is "othermouthcooperate">> <<set $vaginaaction to 0>><<set $vaginaactiondefault to "othermouthcooperate">><<actionsothermouthvaginathrust $vaginatarget>><<submission 20>><<vaginalskilluse>> <</if>> <<if $vaginaaction is "othermouthescape">> <<set $vaginaaction to 0>><<set $vaginaactiondefault to "othermouthescape">><<actionsothermouthvaginaescape $vaginatarget>><<brat 10 $vaginatarget>> <<set $vaginause to "othermouth">><<set $vaginastate to "othermouthentrance">> <<if $NPCList[$vaginatarget].mouth is "vaginaimminent">> <<set $NPCList[$vaginatarget].mouth to "vaginaentrance">> <</if>> <</if>> /*** * ███ ██ ██ ██ ██ ███████ * ██ ██ ███ ██ ██ ██ ██ * ██ ██ ██ █ ██ ██ ██ ███████ * ███████ ██ ███ ██ ██ ██ * ██ ██ ██ ██ █████ ███████ * */ <<if $newtarget isnot undefined>> <<setnewtarget>> <</if>> <<rng>> <<if $anusaction is "rest">> <<set $anusaction to 0>><<set $anusactiondefault to "rest">> <</if>> /*Stalked actions */ <<if !$stalk_end>> <<if $anusaction is "wiggle">> <<set $anusaction to 0>><<set $anusactiondefault to "wiggle">> <<if currentSkillValue('seductionskill') gte random(1, 1000)>> <<meek 2>> <<if $rng gte 81>> You wiggle your <<bottom>> in time with your steps, <<elseif $rng gte 61>> You sway your <<bottom>>, <<elseif $rng gte 41>> You shake your <<bottom>>, <<elseif $rng gte 21>> You add some bounce to your steps, lifting your <<bottom>> and <<else>> You emphasise your <<bottom>> with each step, <</if>> drawing attention to it. <<else>> <<meek 1>> <<if $rng gte 81>> You wiggle your <<bottom>>. <<elseif $rng gte 61>> You sway your <<bottom>>. <<elseif $rng gte 41>> You shake your <<bottom>>. <<elseif $rng gte 21>> You bounce your <<bottom>>. <<else>> You put emphasis on your <<bottom>>. <</if>> <</if>> <</if>> <</if>> /*End of stalked actions */ <!-- Anus penis actions --> <!-- Clench penis in buttocks --> <<if $anusaction is "penischeeks">> <<set $anusaction to 0>><<meek 1 $anustarget>><<bottomskilluse>><<combatpromiscuity4>> <<if $anusstate isnot "doubleentrance">> <<if combatSkillCheck("bottom", $anustarget)>> <<set $anusactiondefault to "rub">> <<personselect $anustarget>><<bottomstat>><<submission 2>> <span class="lblue">You <<bottomtext>> grab <<hisselect $anustarget>> $NPCList[$anustarget].penisdesc between your butt cheeks.</span> <<set $NPCList[$anustarget].penis to "cheeks">><<set $anusstate to "cheeks">><<set $bottomuse to "penis">> <<elseif $NPCList[$anustarget].penis is "anusentrance">> <<set $anusactiondefault to "penischeeks">> You try to grab <<hisselect $anustarget>> penis between your cheeks, but <<he>> isn't interested. <</if>> <<else>> You try to grab <<hisselect $anustarget>> penis between your cheeks, but it's knocked free as another penis joins it. <</if>> <</if>> <!-- Keep clenching a penis --> <<if $anusaction is "otherAnusRub">> <<set $anusaction to 0>><<bottomskilluse>><<set $anusactiondefault to "otherAnusRub">> <<if $anusstate isnot "doubleentrance">> <<if combatSkillCheck("bottom", $anustarget)>> <<set $anusactiondefault to "otherAnusRub">><<submission 3>><<bottomstat>> <<actionscheekrub $anustarget>> <<else>> <<set $anusactiondefault to "penischeeks">> <span class="blue">You try to rub <<hisselect $anustarget>> penis between your cheeks, but <<he>> is not interested.</span> <<set $NPCList[$anustarget].penis to "anusentrance">><<set $bottomuse to 0>><<set $anusstate to "entrance">> <</if>> <<else>> You try to grab <<hisselect $anustarget>> penis between your cheeks, but it's knocked free as another penis joins it. <</if>> <</if>> <!-- Stop clenching a penis --> <<if $anusaction is "otherAnusStop" and $NPCList[$anustarget].penis is "cheeks">> <<set $anusaction to 0>><<set $anusactiondefault to "penischeeks">> <span class="blue">You stop holding <<hisselect $anustarget>> penis between your cheeks. <<He>> angles <<his>> $NPCList[$anustarget].penisdesc toward your anus.</span> <<set $NPCList[$anustarget].penis to "anusentrance">><<set $bottomuse to 0>> <<if $anusstate isnot "doubleentrance">><<set $anusstate to "entrance">><</if>> <</if>> <<rng>> <!-- offer vagina --> <<if $anusaction is "penispussy">> <<set $anusactiondefault to "penispussy">> <!-- Check the player is not attempting to straddle and offer pussy at the same time. If so, switch to double or fail correctly --> <<if $vaginastate isnot 0 and !$vaginastate.includes("double") and ($vaginastate is "entrance" or $vaginastate is "imminent" or $vaginastate is "penetrated")>> <!-- Note that this action requires "penispussydouble" to come after "penispussy", else it will not work as expected --> <<if random(0,2) isnot 0 and $settings.vaginalDoubleEnabled>> <<set $anusaction to "penispussydouble">> <<else>> You spread your thighs, but fail to garner further interest. <</if>> <<elseif $vaginastate isnot 0 and $vaginastate.includes("double")>> /* Is this possible? */ You spread your thighs, but just receive a slap. "Settle down, <<bitch>>." <<violence 2>><<hitstat>><<bruise bottom>> <<elseif $NPCList[$anustarget].penis is "anusentrance">> <<set $anusaction to 0>><<meek 10>><<analskilluse>> <<if combatSkillCheck("vaginal", $anustarget)>> <<set $anusactiondefault to "penispussy">> <<personselect $anustarget>><<submission 2>> <span class="lblue">You spread your thighs, giving clear access to your pussy, and <<combatperson>> takes advantage and moves <<his>> penis away from your butt.</span> <<set $NPCList[$anustarget].penis to "vaginaentrance">><<set $vaginause to "penis">><<set $vaginastate to "entrance">><<set $vaginatarget to $anustarget>><<set $anususe to 0>><<set $anusstate to 0>><<set $anustarget to 0>> <<else>> You spread your thighs, but fail to garner interest. <</if>> <</if>> <</if>> <!-- Offer vagina while having two penis at your anus --> <<if $anusaction is "penispussydap">> <!-- Check the player is not attempting to straddle and offer pussy at the same time. If so, switch to double or fail correctly --> <<if $vaginastate isnot 0 and !$vaginastate.includes("double") and $vaginastate is "entrance">> <!-- Note that this action requires "penispussydouble" to come after "penispussydap", else it will not work as expected --> <<if random(0,2) isnot 0 and $settings.vaginalDoubleEnabled and $awareness gte 300>> <<set $anusaction to "penispussydouble">> <<else>> You spread your thighs, but fail to garner further interest. <</if>> <<elseif $vaginastate isnot 0 and $vaginastate.includes("double")>> You spread your thighs, but just receive a slap. "Settle down, <<bitch>>." <<violence 2>><<hitstat>><<bruise bottom>> <<else>> <<set $anusaction to 0>><<meek 10>><<analskilluse>><<set $anusactiondefault to "penispussy">> <<set _npcA to ($NPCList[$anustarget].penis is "anusentrancedouble" ? $anustarget : $anusdoubletarget)>> <<set _npcB to ($NPCList[$anustarget].penis is "anusentrancedouble" ? $anusdoubletarget : $anustarget)>> <<if combatSkillCheck("vaginal", _npcA)>> <<personselect _npcA>><<submission 2>> <span class="lblue">You spread your thighs, giving clear access to your pussy, and <<combatperson>> takes advantage and moves <<his>> penis away from your butt.</span> <<set $NPCList[_npcA].penis to "vaginaentrance">><<set $NPCList[_npcB].penis to $NPCList[_npcB].penis.replace("double", "")>> <<set $vaginause to "penis">><<set $vaginastate to "entrance">><<set $vaginatarget to _npcA>><<set $anususe to "penis">><<set $anusstate to $anusstate.replace("double", "")>> <<else>> You spread your thighs, but fail to garner interest. <</if>> <</if>> <</if>> <!-- Move the person at your anus to your vagina when someone is already there --> <<rng>> <<if $anusaction is "penispussydouble">> <<set $anusaction to 0>><<meek 10>><<analskilluse>><<set $anusactiondefault to "penispussydouble">> <<if combatSkillCheck("vaginal", $anustarget) and $vaginause isnot "doublepenis">> <<if $anusstate is "doubleentrance">> <<set $anususe to "penis">><<set $anusstate to "entrance">> <<set _npcA to ($NPCList[$anustarget].penis is "anusentrancedouble" ? $anustarget : $anusdoubletarget)>> <<set _npcB to ($NPCList[$anustarget].penis is "anusentrancedouble" ? $anusdoubletarget : $anustarget)>> <<set $NPCList[_npcB].penis to "anusentrance">> <<else>> <<set $anususe to 0>><<set $anusstate to 0>> <<set _npcA to $anustarget>> <</if>> <<personselect _npcA>> <<if $vaginause is "penis">> <span class="lblue">You spread your thighs, giving clear access to your pussy, and <<combatperson>> takes advantage and moves <<his>> penis away from your butt to join the phallus in front of your pussy.</span> <<set $NPCList[_npcA].penis to "vaginaentrancedouble">> <<set _npc to $NPCList.findIndex(npc => npc.penis isnot 0 and npc.penis.includes("vagina") and !npc.penis.includes("double"))>> <<set $NPCList[_npc].penis to $NPCList[_npc].penis + "double">> <<set $vaginastate to "double" + $vaginastate>><<set $vaginause to "penisdouble">><<set $vaginadoubletarget to _npcA>> <<else>> <span class="lblue">You spread your thighs, giving clear access to your pussy, and <<combatperson>> takes advantage and moves <<his>> penis away from your butt.</span> <<set $NPCList[_npcA].penis to "vaginaentrance">> <<set $vaginause to "penis">> <<set $vaginastate to "entrance">> <<set $vaginatarget to _npcA>> <</if>> <<submission 2>> <<if $NPCList[_npcA].type is "plant" and $NPCList[_npcA].penissize gte 4 and canImpregnateParasite("vagina")>> <span class="red">Something about it scares you.</span> <</if>> <<else>> You spread your thighs, but fail to garner interest. <</if>> <</if>> <!-- Straddle a penis --> <<rng>> <<effectsanustopenis>> <!-- Envelop a penis --> <<rng>> <<effectsanuspenisfuck>> <!-- Straddle a second penis --> <<rng>> <<effectsanustopenisdouble>> <!-- Envelop two penises --> <<rng>> <<effectsanuspenisdoublefuck>> <!-- Tease an external penis --> <<if $anusaction is "penistease">> <<set $anusaction to 0>><<set $anusactiondefault to "penistease">> You <<analtext>> tease the tip of the penis with your <<bottom>>. <<sex 3 "anus">><<analskilluse>> <</if>> <!-- Tease two extenal penises --> <<if $anusaction is "penisdoubletease">> <<set $anusaction to 0>><<set $anusactiondefault to "penisdoubletease">> You <<analtext>> tease their <<penises>> with your <<bottom>>. <<sex 3 "anus">><<analskilluse>> <</if>> <!-- Rub one or two imminent penises --> <<if $anusaction is "rub">> <<set $anusaction to 0>><<set $anusactiondefault to "rub">><<actionsanusrub $anustarget>><<sex 10 "anus">><<analskilluse>> <</if>> <!-- cooperate with one penetrating penis --> <<if $anusaction is "cooperate">> <<set $anusaction to 0>><<set $anusactiondefault to "cooperate">><<actionsanusthrust $anustarget>><<submission 15>><<analskilluse>> <</if>> <!-- cooperate with two penetrating penises --> <<if $anusaction is "doublecooperate">> <<set $anusaction to 0>><<set $anusactiondefault to "doublecooperate">><<actionsanusdoublethrust $anustarget $anusdoubletarget>><<submission 15>><<analskilluse>> <</if>> <!-- Edge one imminent or penetrating penis --> <<if $anusaction is "penisEdging">> <<set $anusaction to 0>><<set $anusactiondefault to "penisEdging">><<actionsanusedging $anustarget>><<submission 5>><<sexControl 5 `currentSkillValue("analskill")` $anustarget>><<analskilluse>> <</if>> <!-- Edge two imminent or penetrating penises --> <<if $anusaction is "penisDoubleEdging">> <<set $anusaction to 0>><<set $anusactiondefault to "penisDoubleEdging">><<actionsanusdoubleedging $anustarget $anusdoubletarget>><<submission 5>><<sexControl 5 `currentSkillValue("analskill")` $anustarget $anusdoubletarget>><<analskilluse>> <</if>> <!-- Take one penetrating penis --> <<if $anusaction is "take">> <<set $anusaction to 0>><<set $anusactiondefault to "take">><<actionsanustake $anustarget>> <</if>> <!-- Take two penetrating penises --> <<if $anusaction is "doubletake">> <<set $anusaction to 0>><<set $anusactiondefault to "doubletake">><<actionsanusdoubletake>> <</if>> <!-- Take two penetrating penises --> <<if $anusaction is "doubletake">> <<set $anusaction to 0>><<set $anusactiondefault to "doubletake">><<actionsanusdoubletake $anustarget $anusdoubletarget>> <</if>> <!-- Pull away from an imminent penis --> <<if $anusaction is "escape">><<set $anusaction to 0>><<set $anusactiondefault to "escape">><<actionsanusescape $anustarget>><<brat 10 $anustarget>><<set $anususe to "penis">><<set $anusstate to "entrance">> <<if $NPCList[$anustarget].penis is "anusimminent">> <<set $NPCList[$anustarget].penis to "anusentrance">><<set $NPCList[$anustarget].speechanusescape to 1>> <</if>> <</if>> <!-- Pull away from two imminent penises --> <<if $anusaction is "doubleescape">> <<set $anusaction to 0>><<set $anusactiondefault to "doubleescape">><<actionsanusdoubleescape $anustarget $anusdoubletarget>><<brat 10 $anustarget $anusdoubletarget>><<set $anususe to "penisdouble">><<set $anusstate to "doubleentrance">> <<set $enemyanger += 5>> <<set _otherNPCindex to "f">> <<set _actiontext to "You escape ">> <<set _npcA to $anustarget>> <<set _npcB to $anusdoubletarget>> <<if $NPCList[_npcA].penis is "anusimminentdouble">> <<set $NPCList[$anustarget].penis to "anusentrancedouble">><<set $NPCList[$anustarget].speechanusescape to 1>> <<elseif $NPCList[_npcA].penis is "anusentrancedouble" and random(0,3) is 0>> /* Chance to drop one of them and switch to regular anal */ <<set _otherNPCindex to _npcB>><<set $NPCList[_npcA].location.genitals to 0>><<set $NPCList[_npcA].speechanusescape to 1>><<set $enemyanger += 15>> <<set $NPCList[_npcA].penis to 0>> <span class="green"> <<print _actiontext + ($npc_named isnot 1 ? "the " : "") + $NPCList[_npcA].fullDescription + "'s " + $NPCList[_npcA].penisdesc + ".">></span> <</if>> <<if $NPCList[_npcB].penis is "anusimminentdouble">> <<set $NPCList[_npcB].penis to "anusentrancedouble">><<set $NPCList[_npcB].speechanusescape to 1>> <<elseif $NPCList[_npcB].penis is "anusentrancedouble" and random(0,3) is 0>> /* Chance to drop one of them and switch to regular anal */ <<set _otherNPCindex to _npcA>><<set $NPCList[_npcB].location.genitals to 0>><<set $NPCList[_npcB].speechanusescape to 1>><<set $enemyanger += 15>> <<set $NPCList[_npcB].penis to 0>> <span class="green"> <<print _actiontext + ($npc_named isnot 1 ? "the " : "") + $NPCList[_npcB].fullDescription + "'s " + $NPCList[_npcB].penisdesc + ".">></span> <</if>> <<if _otherNPCindex isnot "f" and $NPCList[_otherNPCindex].penis isnot 0 and $NPCList[_otherNPCindex].penis.includes("double")>> <<set $anususe to "penis">> <<switch $NPCList[_otherNPCindex].penis>> <<case "anusdouble">> <<set $NPCList[_otherNPCindex].penis to "anus">> <<set $anusstate to "penetrated">> <<case "anusentrancedouble">> <<set $NPCList[_otherNPCindex].penis to "anusentrance">> <<set $anusstate to "entrance">> <<case "anusimminentdouble">> <<set $NPCList[_otherNPCindex].penis to "anusimminent">> <<set $anusstate to "imminent">> <</switch>> <</if>> <</if>> <!-- Anus mouth actions --> <!-- Press butt against their mouth --> <<if $anusaction is "bottombay">> <<set $anusaction to 0>><<meek 1 $anustarget>><<bottomskilluse>><<combatpromiscuity1>> <<if combatSkillCheck("bottom", $anustarget)>> <<set $anusactiondefault to "otherMouthAnusRub">><<neutral 5 $anustarget>> <span class="lblue">You <<bottomtext>> press your <<bottom>> against <<hisselect $anustarget>> mouth.</span> <<set $NPCList[$anustarget].mouth to "bottom">><<bottomstat>><<set $bottomuse to "mouth">> <<else>> <<set $anusactiondefault to "bottombay">> You try to keep the mouth menacing your anus at bay by pressing your <<bottom>> against it, but <<theowner>> has other ideas. <</if>> <</if>> <!-- Keep rubbing butt against mouth --> <<if $anusaction is "otherMouthAnusRub">> <<set $anusaction to 0>><<bottomskilluse>> <<if combatSkillCheck("bottom", $anustarget)>> <<set $anusactiondefault to "otherMouthAnusRub">><<bottomstat>><<submission 5>> <<actionsmouthbottomrub $anustarget>> <<else>> <<set $anusactiondefault to "bottombay">><<set $bottomuse to 0>> <span class="blue">You press your <<bottom>> against <<hisselect $anustarget>> mouth, but instead <<he>> moves <<his>> head between your cheeks.</span> <<set $NPCList[$anustarget].mouth to "anusentrance">> <</if>> <</if>> <!-- Stop rubbing butt against mouth --> <<if $anusaction is "otherMouthAnusStop">> <<set $anusaction to 0>><<set $anusactiondefault to "bottombay">><<set $bottomuse to 0>> <span class="blue">You stop pressing your <<bottom>> against <<hisselect $anustarget>> mouth.</span> <<set $NPCList[$anustarget].mouth to "anusentrance">> <</if>> <!-- Rub anus against face --> <<if $anusaction is "othermouthtease">> <<set $anusaction to 0>><<set $anusactiondefault to "othermouthtease">><<sex 5 "anus">><<analskilluse>><<actionsothermouthanustease $anustarget>> <</if>> <!-- Rub anus against face when imminent --> <<if $anusaction is "othermouthrub">> <<set $anusaction to 0>><<set $anusactiondefault to "othermouthrub">><<sex 10 "anus">><<analskilluse>><<actionsothermouthanusrub $anustarget>> <</if>> <!-- Pull away when imminent --> <<if $anusaction is "othermouthescape">> <<set $anusaction to 0>><<set $anusactiondefault to "othermouthescape">><<brat 10 $anustarget>> <<actionsothermouthanusescape $anustarget>> <<if $NPCList[$anustarget].mouth is "anusimminent">> <<set $NPCList[$anustarget].mouth to "anusentrance">> <</if>> <</if>> <!-- Cooperate/Hump after penetration --> <<if $anusaction is "othermouthcooperate">> <<set $anusaction to 0>><<set $anusactiondefault to "othermouthcooperate">><<submission 20>><<analskilluse>><<actionsothermouthanusthrust $anustarget>> <</if>> <!-- Anus hand actions --> <!-- Clench hand between cheeks --> <<if $anusaction is "bottomhandbay">> <<set $anusaction to 0>> <<if $NPCList[$anustarget].lefthand is "anusentrance" or $NPCList[$anustarget].righthand is "anusentrance">> <<meek 1 $anustarget>><<bottomskilluse>><<combatpromiscuity1>> <<if combatSkillCheck("bottom", $anustarget)>> <<set $anusactiondefault to "handAnusRub">><<neutral 5 $anustarget>> <span class="lblue">You <<bottomtext>> rub your clenched <<bottom>> cheeks against <<hisselect $anustarget>> hand.</span> <<if $NPCList[$anustarget].lefthand is "anusentrance">> <<set $NPCList[$anustarget].lefthand to "bottom">> <<else>> <<set $NPCList[$anustarget].righthand to "bottom">> <</if>> <<bottomstat>><<set $bottomuse to "hand">> <<else>> <<set $anusactiondefault to "bottomhandbay">> You try to keep the finger menacing your anus at bay by clenching your <<bottom>> cheeks, but <<theowner>> has other ideas. <</if>> <<else>> You try to clench your <<bottom>> cheeks around <<hisselect $anustarget>> hand, but it is already gone. <</if>> <</if>> <!-- Keep hand between cheeks --> <<if $anusaction is "handAnusRub">> <<set $anusaction to 0>><<bottomskilluse>> <<if combatSkillCheck("bottom", $anustarget)>> <<set $anusactiondefault to "handAnusRub">><<submission 5>> <span class="lblue">You <<bottomtext>> rub your clenched <<bottom>> cheeks against <<hisselect $anustarget>> hand.</span> <<else>> <<set $anusactiondefault to "bottomhandbay">><<set $bottomuse to 0>> <span class="blue">You press your <<bottom>> against <<hisselect $anustarget>> hand, but instead <<he>> shoves <<his>> fingers between your cheeks.</span> <<if $NPCList[$anustarget].lefthand is "bottom">> <<set $NPCList[$anustarget].lefthand to "anusentrance">> <<else>> <<set $NPCList[$anustarget].righthand to "anusentrance">> <</if>> <</if>> <</if>> <!-- Let go of hand --> <<if $anusaction is "handAnusStop">> <<set $anusaction to 0>><<set $anusactiondefault to "bottomhandbay">><<set $bottomuse to 0>> <span class="blue">You stop clenching your <<bottom>> cheeks, allowing <<hisselect $anustarget>> hand to reach your crack.</span> <<if $NPCList[$anustarget].lefthand is "bottom">> <<set $NPCList[$anustarget].lefthand to "anusentrance">> <<else>> <<set $NPCList[$anustarget].righthand to "anusentrance">> <</if>> <</if>> <!-- Rub anus against hand and --> <<if $anusaction is "handtease">> <<if $NPCList[$anustarget].lefthand is "anusentrance" or $NPCList[$anustarget].righthand is "anusentrance">> <<set $anusaction to 0>><<set $anusactiondefault to "handtease">><<sex 5 "anus">><<analskilluse>><<actionshandanustease $anustarget>> <<else>> You try to rub your <<bottom>> against <<hisselect $anustarget>> fingers, but <<his>> hand is already gone. <</if>> <</if>> <!-- Cooperate/Hump after penetration --> <<if $anusaction is "handcooperate" and ($NPCList[$anustarget].lefthand is "anus" or $NPCList[$anustarget].righthand is "anus")>> <<if $NPCList[$anustarget].lefthand is "anusentrance" or $NPCList[$anustarget].righthand is "anusentrance">> <<set $anusaction to 0>><<set $anusactiondefault to "handcooperate">><<submission 20>><<analskilluse>><<actionshandanusthrust $anustarget>> <<else>> You try to rub your <<bottom>> against <<hisselect $anustarget>> fingers, but <<his>> hand is already gone. <</if>> <</if>> <!-- 'Take it' in consensual encounters --> <<if $anusaction is "handtake" and ($NPCList[$anustarget].lefthand is "anus" or $NPCList[$anustarget].righthand is "anus")>> <<set $anusaction to 0>><<set $anusactiondefault to "handtake">><<actionshandanustake $anustarget>> <</if>> <<effectsinsertions>> /*** * ███████ ██ ██ ███████ █████ ██ ██ * ███ ██ ██ ███ ██ ██ ██ * ███ ███████ ███ ██ ████ ███████ * ███ ██ ██ ███ ██ ██ ██ ██ * ███ ██ ██ ███████ █████ ██ ██ * */ <<if $newtarget isnot undefined>> <<setnewtarget>> <</if>> <<if $thighaction is "rub">> <<set $thighaction to 0>><<thighskilluse>><<set $thighactiondefault to "rub">> <<if combatSkillCheck("thigh", $thightarget)>> <<set $thighactiondefault to "rub">><<actionsthighrub $thightarget>><<thighstat>><<sex 5 "genital" $thightarget>> <<elseif $NPCList[$thightarget].penis is "thighs">> <<set $thighactiondefault to "thighs">><<set $thighuse to 0>> <<if $vaginause is 0>><<set $vaginause to "penis">> <<personselect $thightarget>> <<set $NPCList[$thightarget].penis to "vaginaentrance">><<set $vaginastate to "entrance">> <span class="blue">You try to hold <<hisselect $thightarget>> penis between your thighs, but <<he>> instead angles it towards your <<genitals>>.</span> <<else>> <<personselect $thightarget>> <<set $NPCList[$thightarget].penis to 0>><<set $NPCList[$thightarget].location.genitals to 0>> <span class="blue">You try to hold <<hisselect $thightarget>> penis between your thighs, but <<he>> moves it away.</span> <</if>> <</if>> <</if>> <<if $thighaction is "stop" and $NPCList[$thightarget].penis is "thighs">> <<set $thighaction to 0>><<set $thighactiondefault to "stop">> You stop holding <<hisselect $thightarget>> penis between your thighs. <<set $thighuse to 0>> <<if $vaginause is 0>> <<personselect $thightarget>> <<set $NPCList[$thightarget].penis to "vaginaentrance">><<set $vaginastate to "entrance">><<set $vaginause to "penis">> <span class="blue"><<He>> angles towards your <<genitals>>.</span> <<else>> <<set $NPCList[$thightarget].penis to 0>><<set $NPCList[$thightarget].location.genitals to 0>> <</if>> <</if>> <<if $thighaction is "othermouthrub">> <<set $thighaction to 0>><<set $thighactiondefault to "othermouthrub">><<thighskilluse>> <<if combatSkillCheck("thigh", $thightarget)>> <<set $thighactiondefault to "othermouthrub">><<thighstat>><<sex 5 "genital" $thightarget>> <<actionsmouththighrub $thightarget>> <<elseif $NPCList[$thightarget].mouth is "thigh">> <<if $penisuse is 0 and (!$player.vaginaExist or $vaginause isnot 0 or random(0,100) gte 50)>> <<set $penisuse to "othermouth">><<set $penisstate to "othermouthentrance">><<set $penisactiondefault to "thighbay">><<set $thighuse to 0>> <<personselect $thightarget>> <<set $NPCList[$thightarget].mouth to "penisentrance">> <span class="blue">You press your thigh against <<hisselect $thightarget>> mouth, but <<he>> would prefer the main course and moves <<his>> head closer to your <<penis>>.</span> <<elseif $vaginause is 0>> <<set $vaginause to "othermouth">><<set $vaginastate to "othermouthentrance">><<set $vaginaactiondefault to "thighbay">><<set $thighuse to 0>> <<personselect $thightarget>> <<set $NPCList[$thightarget].mouth to "vaginaentrance">> <span class="blue">You press your thigh against <<hisselect $thightarget>> mouth, but <<he>> would prefer the main course and moves <<his>> head closer to your <<pussy>>.</span> <<else>> <<personselect $thightarget>> <<if $NPCList[$thightarget].penis is "othermouth">> <<set $NPCList[$thightarget].penis to 0>> <</if>> <<if $NPCList[$thightarget].vagina is "othermouth">> <<set $NPCList[$thightarget].vagina to 0>> <</if>> <span class="lblue">You press your thigh against <<hisselect $thightarget>> mouth, but <<he>> moves <<his>> head away from you.</span> <<set $NPCList[$thightarget].mouth to 0>><<set $thighuse to 0>><<set $NPCList[$thightarget].location.head to 0>> <</if>> <</if>> <</if>> <<if $thighaction is "othermouthstop" and $NPCList[$thightarget].mouth is "thigh">> <<set $thighaction to 0>><<set $thighactiondefault to "stop">><<set $thighuse to 0>> <<if $penisuse is 0 and (!$player.vaginaExist or $vaginause isnot 0 or random(0,100) gte 50)>> <<personselect $thightarget>><<set $NPCList[$thightarget].mouth to "penisentrance">><<set $penisstate to "othermouthentrance">><<set $penisuse to "othermouth">> <span class="blue">You stop pressing your thigh against <<hisselect $thightarget>> mouth.</span> <<elseif $vaginause is 0>> <<personselect $thightarget>><<set $NPCList[$thightarget].mouth to "vaginaentrance">><<set $vaginastate to "othermouthentrance">><<set $vaginause to "othermouth">> <span class="blue">You stop pressing your thigh against <<hisselect $thightarget>> mouth.</span> <<else>> <<personselect $thightarget>> <<if $NPCList[$thightarget].penis is "othermouth">> <<set $NPCList[$thightarget].penis to 0>> <</if>> <<if $NPCList[$thightarget].vagina is "othermouth">> <<set $NPCList[$thightarget].vagina to 0>> <</if>> <<set $NPCList[$thightarget].mouth to 0>><<set $NPCList[$thightarget].location.head to 0>> <span class="blue">You stop pressing your thigh against <<hisselect $thightarget>> mouth.</span> <</if>> <</if>> /*** * ███████ ██████ ██ ██ ███████ ███████ * ██ ██ ██ ███ ██ ███ ██ * ███████ ██████ ██ █ ██ ███ ███████ * ██ ██ ██ ███ ███ ██ * ██ ██████ ██ ██ ███████ ███████ * */ <<if $newtarget isnot undefined>> <<setnewtarget>> <</if>> <<rng>> <<effectspenistovagina>> <<rng>> <<effectspenisvaginafuck>> <<rng>> <<effectspenisanusfuck>> <<rng>> <<effectspenistoanus>> <<rng>> <<effectspenistopenisfuck>> <<rng>> <<effectspenistopenis>> <<if $penisaction is "rest">> <<set $penisaction to 0>><<set $penisactiondefault to "rest">> <</if>> <<if $penisaction is "bay" and $NPCList[$penistarget].vagina is "penisentrance">> <<set $penisaction to 0>><<meek 1 $penistarget>><<penileskilluse>><<set $penisactiondefault to "bay">><<combatpromiscuity4>> <<if combatSkillCheck("penile", $penistarget)>> <<set $penisactiondefault to "rub">> <<personselect $penistarget>> <span class="lblue">You <<peniletext>> press your penis against <<hisselect $penistarget>> clit.</span> <<set $NPCList[$penistarget].vagina to "frot">><<set $penisuse to "clit">><<sex 5 "genitals" $penistarget>><<set $penisstate to "clit">> <<else>> You try to keep the vagina menacing your <<penis>> at bay by rubbing against the clit, but <<theowner>> has other ideas. <</if>> <</if>> <<if $penisaction is "clitrub">><<set $penisaction to 0>> <<set $penisactiondefault to "rub">><<penileskilluse>> <<if combatSkillCheck("penile", $penistarget)>> <<set $penisactiondefault to "rub">><<sex 5 "genitals" $penistarget>> <<actionsclitrub $penistarget>> <<elseif $NPCList[$penistarget].vagina is "frot">> <<set $penisactiondefault to "bay">> <<set $penisuse to "othervagina">><<set $penisstate to "entrance">> <<personselect $penistarget>> <<set $NPCList[$penistarget].vagina to "penisentrance">> <span class="blue">You rub your <<penis>> against <<hisselect $penistarget>> clit, but <<he>> would prefer the main course and moves <<his>> labia closer to your tip.</span> <</if>> <</if>> <<if $penisaction is "stop" and $NPCList[$penistarget].vagina is "frot">> <<set $penisaction to 0>><<set $penisactiondefault to "stop">> <<personselect $penistarget>> <<set $NPCList[$penistarget].vagina to "penisentrance">><<set $penisstate to "entrance">><<set $penisuse to "othervagina">> <span class="blue">You stop rubbing <<hisselect $penistarget>> clit with your <<penis>>.</span> <</if>> <<if $penisaction is "tease">> <<set $penisaction to 0>><<set $penisactiondefault to "tease">><<actionspussytease $penistarget>><<sex 5 "genitals">><<penileskilluse>> <</if>> <<if $penisaction is "rub">> <<set $penisaction to 0>><<set $penisactiondefault to "rub">><<actionspussyrub $penistarget>><<sex 10 "genitals" $penistarget>><<penileskilluse>> <</if>> <<if $penisaction is "cooperate">> <<set $penisaction to 0>><<set $penisactiondefault to "cooperate">><<actionspussythrust $penistarget>><<submission 20>><<penileskilluse>> <</if>> <<if $penisaction is "forceImpregnation">> <<if $NPCList[$penistarget].fullDescription is "Gwylan">> <span class="red">Gwylan's tattoo sparks. Nothing else happens.</span> <<else>> <<set _npcForceImpregnation to true>> <<set $penisaction to 0>><<set $penisactiondefault to "cooperate">><<actionspussythrust $penistarget>><<submission 30>><<penileskilluse>><<arousal 1000 "penis">> <</if>> <</if>> <<if $penisaction is "vaginaEdging">> <<set $penisaction to 0>><<set $penisactiondefault to "vaginaEdging">><<actionspussyedging $penistarget>><<submission 5>><<sexControl 5 `currentSkillValue("penileskill")` $penistarget>><<penileskilluse>> <</if>> <<if $penisaction is "take">> <<set $penisaction to 0>><<set $penisactiondefault to "take">><<actionspussytake $penistarget>> <</if>> <<if $penisaction is "escape" and $NPCList[$penistarget].vagina is "penisimminent">> <<set $penisaction to 0>><<set $penisactiondefault to "escape">><<actionspenisescape $penistarget>><<brat 10 $penistarget>><<set $penisuse to "othervagina">><<set $penisstate to "entrance">> <<personselect $penistarget>> <<set $NPCList[$penistarget].vagina to "penisentrance">><<set $NPCList[$penistarget].speechpenisescape to 1>> <</if>> <<if $penisaction is "pullOut">> <<set $penisaction to 0>><<set $penisactiondefault to "pullOut">><<penileskilluse>> <<sex 5 "genitals">><<brat 10 $penistarget>> <<set $_pullOutDif to Math.floor((100 - $NPCList[$penistarget].pregnancyAvoidance) * 15)>> <<if $leftleg is "bound" or $rightleg is "bound">> You try to pull out, <span class="red">but your bound legs prevent you from doing so.</span> <<elseif combatSkillCheck("penile", $penistarget, $NPCList[$penistarget].fullDescription, $_pullOutDif)>> <<personselect $penistarget>> <<if $penisstate is "penetrated">> <<if $NPCList[$penistarget].pregnancyAvoidance lte 15>> As you try to pull out, <span class="red"><<combatperson>> locks <<his>> legs around you!</span> <<if currentSkillValue('physique') gte random(1, 64000)>> <<set $penisstate to "entrance">> <<if $NPCList[$penistarget].vagina is "penis">> <<set $NPCList[$penistarget].vagina to "penisentrance">>However, you're able to <span class="green">force yourself free,</span> and <<peniletext>> pull your <<penis>> from <<his>> pussy. <</if>> <<else>> You're prevented from pulling out! <</if>> <<sex 5 "genitals">> <<else>> <<set $penisstate to "entrance">> <<if $NPCList[$penistarget].vagina is "penis">> <<set $NPCList[$penistarget].vagina to "penisentrance">><span class="lblue">You <<peniletext>> pull your <<penis>> from <<his>> pussy.</span> <</if>> <</if>> <</if>> <<if $penisstate is "otheranus">> <<set $penisstate to "otheranusentrance">> <<if $NPCList[$penistarget].penis is "otheranus">> <<set $NPCList[$penistarget].penis to "otheranusentrance">><span class="lblue">You <<peniletext>> pull your <<penis>> from <<his>> anus.</span> <</if>> <</if>> <<if $penisstate is "othermouth">> <<set $penisstate to "othermouthentrance">> <<if $NPCList[$penistarget].mouth is "penis">> <<set $NPCList[$penistarget].mouth to "penisentrance">><span class="lblue">You <<peniletext>> pull your <<penis>> from <<his>> mouth.</span> <</if>> <</if>> <<else>> <<personselect $penistarget>> You try to pull out, but <span class="red">can't move away from <<him>>.</span> <</if>> <<set $NPCList[$penistarget].speechpenisescape to 1>> <</if>> <<if $penisaction is "fencingtease">> <<set $penisaction to 0>><<set $penisactiondefault to "fencingtease">><<actionsfencingtease $penistarget>><<sex 10 "genitals" $penistarget>><<penileskilluse>> <</if>> <<if $penisaction is "fencingcooperate">> <<set $penisaction to 0>><<set $penisactiondefault to "fencingcooperate">><<actionsfencingcooperate $penistarget>><<submission 20>><<penileskilluse>> <</if>> <<if $penisaction is "fencingtake">> <<set $penisaction to 0>><<set $penisactiondefault to "fencingtake">><<actionsfencingtake $penistarget>> <</if>> <<if $penisaction is "fencingrest">> <<set $penisaction to 0>><<set $penisactiondefault to "rest">> <</if>> <<if $penisaction is "fencingescape">> <<set $penisaction to 0>><<set $penisactiondefault to "fencingescape">><<actionsfencingescape $penistarget>><<brat 10 $penistarget>> <<if $penisstate is "otherpenis">> <<set $penisstate to "otherpenisimminent">> <<else>> <<set $penisstate to "otherpenisentrance">> <</if>> <<if $NPCList[$penistarget].penis is "penis">> <<set $NPCList[$penistarget].penis to "penisimminent">> <<elseif $NPCList[$penistarget].penis is "penisimminent">> <<set $NPCList[$penistarget].penis to "penisentrance">> <</if>> <</if>> <<if $penisaction is "otherpenisrub">> <<set $penisaction to 0>><<set $penisactiondefault to "otherpenisrub">><<actionsotherpenispenisrub $penistarget>><<sex 10 "genitals" $penistarget>><<penileskilluse>> <</if>> <<if $penisaction is "thighbay" and $NPCList[$penistarget].mouth is "penisentrance">> <<set $penisaction to 0>><<meek 1 $penistarget>><<thighskilluse>><<set $penisactiondefault to "thighbay">><<combatpromiscuity1>> <<if combatSkillCheck("thigh", $penistarget)>> <<set $thighactiondefault to "othermouthrub">> <<personselect $penistarget>> <span class="lblue">You <<thightext>> press your thigh against <<hisselect $penistarget>> mouth.</span> <<set $NPCList[$penistarget].mouth to "thigh">><<set $penisuse to 0>><<thighstat>><<neutral 5 $penistarget>><<set $penisstate to 0>><<set $thighuse to "mouth">> <<else>> You try to keep the mouth menacing your <<penis>> at bay by pressing your thigh against it, but <<theowner>> has other ideas. <</if>> <</if>> <<if $penisaction is "othermouthtease">> <<set $penisaction to 0>><<set $penisactiondefault to "othermouthtease">><<actionsothermouthpenistease $penistarget>><<sex 5 "genitals">><<penileskilluse>> <</if>> <<if $penisaction is "othermouthrub">> <<set $penisaction to 0>><<set $penisactiondefault to "othermouthrub">><<actionsothermouthpenisrub $penistarget>><<sex 10 "genitals" $penistarget>><<penileskilluse>> <</if>> <<if $penisaction is "othermouthcooperate">> <<set $penisaction to 0>><<set $penisactiondefault to "othermouthcooperate">><<actionsothermouthpenisthrust $penistarget>><<submission 20>><<penileskilluse>> <</if>> <<if $penisaction is "othermouthescape">> <<set $penisaction to 0>><<set $penisactiondefault to "othermouthescape">><<actionsothermouthpenisescape $penistarget>><<brat 10 $penistarget>> <<set $penisuse to "othermouth">><<set $penisstate to "othermouthentrance">> <<if $NPCList[$penistarget].mouth is "penisimminent">> <<set $NPCList[$penistarget].mouth to "penisentrance">> <</if>> <</if>> <<if $penisaction is "otheranusbay">> <<set $penisaction to 0>><<meek 1 $penistarget>><<penileskilluse>><<set $penisactiondefault to "otheranusbay">><<combatpromiscuity4>> <<if combatSkillCheck("penile", $penistarget)>> <<set $penisactiondefault to "otheranusrub">><<personselect $penistarget>> <<if $NPCList[$penistarget].vagina is "otheranusentrance">> <span class="lblue">You <<peniletext>> point your <<penis>> away from <<hisselect $penistarget>> anus, rubbing between <<his>> cheeks.</span> <<set $NPCList[$penistarget].vagina to "otheranusfrot">><<set $penisuse to "otheranusrub">><<sex 5 "genitals" $penistarget>><<set $penisstate to "otheranusrub">> <</if>> <<if $NPCList[$penistarget].penis is "otheranusentrance">> <span class="lblue">You <<peniletext>> point your <<penis>> away from <<hisselect $penistarget>> anus, rubbing between <<his>> cheeks.</span> <<set $NPCList[$penistarget].penis to "otheranusfrot">><<set $penisuse to "otheranusrub">><<sex 5 "genitals" $penistarget>><<set $penisstate to "otheranusrub">> <</if>> <<else>> You try to move your <<penis>> away from the anus pressing against it, but <<theowner>> has other ideas. <</if>> <</if>> <<if $penisaction is "otheranusrub">> <<set $penisaction to 0>><<set $penisactiondefault to "otheranusrub">><<penileskilluse>> <<if combatSkillCheck("penile", $penistarget)>> <<set $penisactiondefault to "otheranusrub">><<sex 5 "genitals" $penistarget>> <<actionsotheranusrub $penistarget>> <<else>> <<set $penisactiondefault to "otheranusbay">> <<set $penisuse to "otheranus">><<set $penisstate to "otheranusentrance">> <<personselect $penistarget>> <<if $NPCList[$penistarget].vagina is "otheranusfrot">> <<set $NPCList[$penistarget].vagina to "otheranusentrance">> <span class="blue">You rub your <<penisSimple>> between <<hisselect $penistarget>> cheeks, but <<he>> would prefer the main course and presses <<his>> anus against your tip.</span> <</if>> <<if $NPCList[$penistarget].penis is "otheranusfrot">> <<set $NPCList[$penistarget].penis to "otheranusentrance">> <span class="blue">You rub your <<penisSimple>> between <<hisselect $penistarget>> cheeks, but <<he>> would prefer the main course and presses <<his>> anus against your tip.</span> <</if>> <</if>> <</if>> <<if $penisaction is "otheranusstop">> <<set $penisaction to 0>><<set $penisactiondefault to "stop">> <<personselect $penistarget>> <<if $NPCList[$penistarget].vagina is "otheranusfrot">> <<set $NPCList[$penistarget].vagina to "otheranusentrance">><<set $penisstate to "otheranusentrance">><<set $penisuse to "otheranus">> <span class="blue">You stop rubbing your <<penis>> between <<hisselect $penistarget>> cheeks.</span> <</if>> <<if $NPCList[$penistarget].penis is "otheranusfrot">> <<set $NPCList[$penistarget].penis to "otheranusentrance">><<set $penisstate to "otheranusentrance">><<set $penisuse to "otheranus">> <span class="blue">You stop rubbing your <<penis>> between <<hisselect $penistarget>> cheeks.</span> <</if>> <</if>> <<if $penisaction is "otheranustease">> <<set $penisaction to 0>><<set $penisactiondefault to "otheranustease">><<actionsotheranustease $penistarget>><<sex 5 "genitals">><<penileskilluse>> <</if>> <<if $penisaction is "otheranuscooperate">> <<set $penisaction to 0>><<set $penisactiondefault to "otheranuscooperate">><<actionsotheranusthrust $penistarget>><<submission 20>><<penileskilluse>> <</if>> <<if $penisaction is "otheranusEdging">> <<set $penisaction to 0>><<set $penisactiondefault to "otheranusEdging">><<actionsotheranusedging $penistarget>><<submission 5>><<sexControl 5 `currentSkillValue("penileskill")` $penistarget>><<penileskilluse>> <</if>> <<if $penisaction is "otheranustake">> <<set $penisaction to 0>><<set $penisactiondefault to "otheranustake">><<actionsotheranustake $penistarget>> <</if>> <<if $penisaction is "otheranusescape">> <<set $penisaction to 0>><<set $penisactiondefault to "otheranusescape">><<actionsotheranusescape>><<brat 10 $penistarget>> <<set $penisuse to "otheranus">><<set $penisstate to "otheranusentrance">> <<if $NPCList[$penistarget].vagina is "otheranusimminent">> <<set $NPCList[$penistarget].vagina to "otheranusentrance">><<print '<<set $speechotheranusescape'+ ($penistarget + 1) +' to 1>>'>> <</if>> <<if $NPCList[$penistarget].penis is "otheranusimminent">> <<set $NPCList[$penistarget].penis to "otheranusentrance">><<print '<<set $speechotheranusescape'+ ($penistarget + 1) +' to 1>>'>> <</if>> <</if>> <<if $penisaction is "penisthighs"and $NPCList[$penistarget].penis is "penisentrance">> <<set $penisaction to 0>><<meek 1 $penistarget>><<thighskilluse>><<set $penisactiondefault to "penisthighs">><<combatpromiscuity4>> <<if $thighuse is 0>> <<if combatSkillCheck("thigh", $penistarget)>> <<set $thighactiondefault to "rub">> <<personselect $penistarget>> <span class="lblue">You <<thightext>> grab <<hisselect $penistarget>> $NPCList[$penistarget].penisdesc between your thighs.</span> <<set $NPCList[$penistarget].penis to "thighs">><<set $thightarget to $penistarget>> <<set $penisuse to 0>><<set $thighuse to "penis">><<thighstat>><<sex 5 "genitals" $penistarget>><<set $penisstate to 0>> <<else>> You try to hold <<hisselect $penistarget>> penis between your thighs, but <<he>> is intent on your cock. <</if>> <<else>> You try to hold <<hisselect $penistarget>> penis between your thighs, but they are occupied. <</if>> <</if>> <!-- Shuffle penis to the anus --> <<if $penisaction is "penisanus" and ["penisentrance", "penisimminent"].includes($NPCList[$penistarget].penis)>> <!-- Check the player is not attempting to straddle and offer anus at the same time. If so, switch to double or fail correctly --> <<if $anususe is "penis">> <!-- Note that this action requires "penisanusdouble" to come after "penisanus", else it will not work as expected --> <<set $penisaction to "penisanusdouble">> <<elseif $anusstate isnot 0 and $anusstate.includes("double")>> You spread your thighs, but just receive a slap. "Settle down, <<bitch>>." <<violence 2>><<hitstat>><<bruise bottom>> <<else>> <<set $penisaction to 0>><<meek 5 $penistarget>><<analskilluse>><<set $penisactiondefault to "penisanus">> <<if combatSkillCheck("anal", $penistarget)>> <<personselect $penistarget>><<set $anustarget to $penistarget>> <span class="blue">You give your <<bottom>> a little wiggle, <<combatperson>> responds to the provocation and moves <<his>> <<npcPenis $penistarget>> in front of your butt.</span> <<if $NPCList[$penistarget].type is "plant" and $NPCList[$penistarget].penissize gte 4 and canImpregnateParasite("anus")>> <span class="red">Something about it scares you.</span> <</if>> <<submission 2>><<set $anususe to "penis">><<set $NPCList[$penistarget].penis to "anusentrance">><<set $penisuse to 0>><<set $anusstate to "entrance">><<set $penisstate to 0>> <<else>> You give your <<bottom>> a little wiggle, but you just receive a slap. <<violence 2>><<hitstat>><<bruise bottom>> <</if>> <</if>> <</if>> <<rng>> <<if $penisaction is "penisanusdouble">> <<set $penisaction to 0>><<meek 5 $penistarget>><<analskilluse>> <<if combatSkillCheck("anal", $penistarget) and $anususe is "penis">> <<personselect $penistarget>><<set $penisactiondefault to "rest">> <span class="blue">You give your <<bottom>> a little wiggle, <<combatperson>> responds to the provocation and moves <<his>> penis to join the phallus in front of your butt.</span> <<submission 2>><<set $anususe to "penisdouble">><<set $NPCList[$penistarget].penis to "anusentrancedouble">><<set $penisuse to 0>><<set $anusstate to "doubleentrance">><<set $penisstate to 0>> <<set $anusdoubletarget to $penistarget>> <<if $NPCList[$anustarget].penis is "anus">> <<set $NPCList[$anustarget].penis to "anusdouble">> <<elseif $NPCList[$anustarget].penis is "anusimminent">> <<set $NPCList[$anustarget].penis to "anusimminentdouble">> <<elseif $NPCList[$anustarget].penis is "anusentrance">> <<set $NPCList[$anustarget].penis to "anusentrancedouble">> <<elseif $NPCList[$anustarget].penis is "cheeks">> <<set $NPCList[$anustarget].penis to "anusentrance">> <<set $bottomuse to 0>> /* Issues with ass cheeks likely stem from this culprit right here */ <</if>> <<set $NPCList[$anustarget].location.genitals to "genitals">> <<else>> You give your <<bottom>> a little wiggle, but you just receive a slap. <<violence 2>><<hitstat>><<bruise bottom>><<set $penisactiondefault to "penisanusdouble">> <</if>> <</if>> <<if $penisaction is "penispussy">> <!-- Check the player is not attempting to straddle and offer pussy at the same time. If so, switch to double or fail correctly --> <<if $vaginastate isnot 0 and !$vaginastate.includes("double") and ($vaginastate is "entrance" or $vaginastate is "imminent" or $vaginastate is "penetrated")>> <!-- Note that this action requires "penispussydouble" to come after "penispussy", else it will not work as expected --> <<if random(0,2) isnot 0 and $settings.vaginalDoubleEnabled>> <<set $penisaction to "penispussydouble">> <<else>> You spread your thighs, but fail to garner further interest. <</if>> <<elseif $vaginastate isnot 0 and $vaginastate.includes("double")>> You spread your thighs, but just receive a slap. "Settle down, <<bitch>>." <<violence 2>><<hitstat>><<bruise bottom>> <<elseif ["penisentrance", "penisimminent"].includes($NPCList[$penistarget].penis)>> <<set $penisaction to 0>><<meek 10 $penistarget>><<penileskilluse>><<set $penisactiondefault to "penispussy">> <<if combatSkillCheck("vaginal", $penistarget)>> <<personselect $penistarget>> <<submission 2>><<set $vaginause to "penis">><<set $NPCList[$penistarget].penis to "vaginaentrance">><<set $penisuse to 0>> <<set $vaginastate to "entrance">><<set $penisstate to 0>><<set $vaginatarget to $penistarget>><<set $penistarget to 0>> <span class="lblue">You spread your thighs, giving clear access to your pussy, and <<combatperson>> takes advantage and moves <<his>> penis away from your <<penis>>.</span> <<else>> You spread your thighs, but fail to garner interest. <</if>> <</if>> <</if>> <<rng>> <<if $penisaction is "penispussydouble">> <<set $penisaction to 0>><<meek 10>><<penileskilluse>><<set $penisactiondefault to "penispussydouble">> <<if combatSkillCheck("vaginal", $penistarget) and $vaginause is "penis">> <<for _j = 0; _j lt $enemyno; _j++>> <<if $NPCList[_j].penis is "penisentrance" or $NPCList[_j].penis is "penisimminent">> <<personselect _j>> <<submission 2>><<set $vaginause to "penisdouble">><<set $NPCList[_j].penis to "vaginaentrancedouble">><<set $penisuse to 0>><<set $vaginastate to "doubleentrance">><<set $penisstate to 0>> <span class="lblue">You spread your thighs, giving clear access to your pussy, and <<combatperson>> takes advantage and moves <<his>> penis away from your <<penis>> to join the phallus in front of your pussy.</span> <<set $vaginatarget to _n>> <<set $vaginadoubletarget to "f">> <<for _k = 0; _k lt $enemyno; _k++>> <<if $NPCList[_k].penis is "vagina">> <<set $NPCList[_k].penis to "vaginadouble">> <<set $vaginadoubletarget to _k>> <<break>> <<elseif $NPCList[_k].penis is "vaginaimminent">> <<set $NPCList[_k].penis to "vaginaimminentdouble">> <<set $vaginadoubletarget to _k>> <<break>> <<elseif $NPCList[_k].penis is "vaginaentrance">> <<set $NPCList[_k].penis to "vaginaentrancedouble">> <<set $vaginadoubletarget to _k>> <<break>> <</if>> <</for>> <<break>> <</if>> <</for>> <<else>> You spread your thighs, but fail to garner interest. <</if>> <</if>> <<if $penisaction is "strokerCooperate">> <<set $penisaction to 0>><<set $penisactiondefault to "strokerCooperate">><<actionsStrokerCooperate $penistarget>><<submission 20>> <</if>> <<if $penisaction is "strokerRest">> <<set $penisaction to 0>><<set $penisactiondefault to "strokerRest">><<actionsStrokerRest $penistarget>><<neutral 5>> <</if>> /*** * ██████ ██ ██ ███████ ███████ ███████ * ██ ██ ██ ██ ██ ███ * ██ ███████ ███████ ███████ ███ * ██ ██ ██ ██ ██ ███ * ██████ ██ ██ ███████ ███████ ███ * */ <<if $newtarget isnot undefined>> <<setnewtarget>> <</if>> <<if $chestaction is "rub">> <<set $chestaction to 0>><<set $chestactiondefault to "rub">> <<if combatSkillCheck("chest", $chesttarget)>> <<if $player.breastsize is 0>> You <<chesttext>> rub your <<breasts>> against <<hisselect $chesttarget>> penis. <<else>> You <<chesttext>> rub <<hisselect $chesttarget>> penis between your <<breasts>>. <</if>> <<submission 3>><<chestskilluse>> <<elseif $NPCList[$chesttarget].penis is "chest">> <<set $chestuse to 0>><<personselect $chesttarget>> <<if $mouthuse is 0>> <<set $mouthactiondefault to "grasp">><<set $mouthstate to "entrance">><<set $mouthuse to "penis">> <<set $NPCList[$chesttarget].penis to "mouthentrance">> <span class="purple">You try to rub your <<breasts>> against <<hisselect $chesttarget>> $NPCList[$chesttarget].penisdesc, but <<he>> moves <<his>> penis to your mouth.</span> <<else>> <<set $NPCList[$chesttarget].penis to 0>> <span class="blue">You try to rub your <<breasts>> against <<hisselect $chesttarget>> penis, but <<he>> pulls away.</span> <</if>> <</if>> <</if>> <<if $chestaction is "stop" and $NPCList[$chesttarget].penis is "chest">> <<set $chestuse to 0>><<set $chestaction to 0>><<personselect $chesttarget>><<personselect $chesttarget>> <<if $mouthuse is 0>> <<set $mouthactiondefault to "grasp">><<set $mouthstate to "entrance">><<set $mouthuse to "penis">> <<set $NPCList[$chesttarget].penis to "mouthentrance">> <span class="purple">As you stop rubbing, <<combatperson>> moves <<his>> penis to your mouth.</span> <<else>> <<set $NPCList[$chesttarget].penis to 0>> <span class="blue">As you stop rubbing, <<combatperson>> pulls away.</span> <</if>> <</if>> <<set $NPCList[0].intro to 0>> <<set $NPCList[1].intro to 0>> <<set $NPCList[2].intro to 0>> <<set $NPCList[3].intro to 0>> <<set $NPCList[4].intro to 0>> <<set $NPCList[5].intro to 0>> <<combat_lewdity_text>> </div> <</widget>> <<widget "useLube">> <<set $_lube to $player.inventory.sextoys["lube"][0]>> <<set $_lube.uses -= 1>> <<run console.log("using lube? " + V.player.inventory.sextoys["lube"][0].name + " " + V.player.inventory.sextoys["lube"][0].uses)>> <<if $_lube.uses lte 0>> <<run V.player.inventory.sextoys["lube"].splice(0,1)>> <<run console.log("used up all the lube")>> You squeeze the last of the lube out of the bottle. <</if>> <</widget>> <<widget "wheeze">> <<set _action to _args[0] or "say something">> <<switch _args[1]>> <<case 1>> You try to _action, <span class="purple">but only a wheeze comes out because you are already being choked.</span> <<case 2>> You try to _action, <span class="lewd">but only a lewd moan comes out because the hand around your throat prevents you from talking.</span> <<default>> You try to _action, <span class="red">but only a choked wheeze comes out because of the hand squeezing your throat.</span><<gwillpower>><<willpower 1>> <<set $speechwheeze to 1>> <</switch>> <</widget>> <<widget "effectsinsertions">> /* Check anal toy insertions */ <<set _insertions to []>> <<for _i = 0; _i < $NPCList.length; _i++>> <<if $NPCList[_i].lefthand is "anusdildo">> <<personselect _i>> <<if $npc_named is 1>> <<set _npcDescription to $NPCList[_i].fullDescription>> <<else>> <<set _npcDescription to "the "+$NPCList[_i].fullDescription>> <</if>> <<set _insertions.push(_npcDescription + "'s " + $NPCList[_i].lefttool)>> <</if>> <<if $NPCList[_i].righthand is "anusdildo">> <<personselect _i>> <<if $npc_named is 1>> <<set _npcDescription to $NPCList[_i].fullDescription>> <<else>> <<set _npcDescription to "the "+$NPCList[_i].fullDescription>> <</if>> <<set _insertions.push(_npcDescription + "'s " + $NPCList[_i].righttool)>> <</if>> <</for>> <<if _insertions isnot undefined>> <<if _insertions.length gte 2>> Your anus is fucked by the sex toys<<if playerHasButtPlug()>>, rubbing against your $worn.butt_plug.name<</if>>. <<elseif _insertions.length is 1>> Your anus is fucked by _insertions[0]<<if playerHasButtPlug()>>, rubbing against your $worn.butt_plug.name<</if>>. <</if>> <</if>> /* Check vaginal toy insertions */ <<if $player.vaginaExist>> <<set _insertions to []>> <<for _i = 0; _i < $NPCList.length; _i++>> <<if $NPCList[_i].lefthand is "vaginadildo">> <<personselect _i>> <<if $npc_named is 1>> <<set _npcDescription to $NPCList[_i].fullDescription>> <<else>> <<set _npcDescription to "the "+$NPCList[_i].fullDescription>> <</if>> <<set _insertions.push(_npcDescription + "'s " + $NPCList[_i].lefttool)>> <</if>> <<if $NPCList[_i].righthand is "vaginadildo">> <<set _insertions.push($NPCList[_i].righttool)>> <</if>> <</for>> <<if _insertions isnot undefined>> <<if _insertions.length gte 2>> Your <<pussy>> is fucked by the sex toys. <<elseif _insertions.length is 1>> Your <<pussy>> is fucked by the _insertions[0]. <</if>> <</if>> <</if>> <<if $player.penisExist>> /* Dildo rubbing on penis */ <<for _i = 0; _i < $NPCList.length; _i++>> <<if $NPCList[_i].lefthand is "penisdildo">> Your <<penis>> is rubbed by the $NPCList[_i].lefttool. <<break>> <</if>> <<if $NPCList[_i].righthand is "penisdildo">> Your <<penis>> is rubbed by the $NPCList[_i].righttool. <<break>> <</if>> <</for>> <</if>> <</widget>> <<widget "combatRequestRefused">> <<set $_action to _args[0]>> <<set $_target to _args[1] or 0>> <<switch $_action>> <<case "nochoke">> <<if $NPCList[$_target].type is "plant">> <<He>> scoffs. <<if $NPCList[$_target].lefthand is 0 or $NPCList[$_target].righthand is 0>> <span class="red">"Are you kidding? That's the fun part! Here, look!"</span> <<else>> <span class="red">"Are you kidding? That's the fun part!"</span> <</if>> <<elseif $NPCList[$_target].fullDescription is "Gwylan">> <<He_Short>> laughs seductively. <<if $NPCList[$_target].lefthand is 0 or $NPCList[$_target].righthand is 0>> <span class="red">"Shhh, be still and silent, <<pcpetname "Gwylan" "my">>."</span> <<else>> <span class="red">"Shush now, <<pcpetname "Gwylan" "my">>, or I'll do just the opposite."</span> <</if>> <<else>> <<He>> pauses a moment before responding, <span class="red">"Stupid slut, you think you can tell <<if $enemyno gte 2>>us<<else>>me<</if>> what to do?"</span> <</if>> <<case "askPullOut">> <<if $NPCList[$mouthtarget].fullDescription is "Gwylan">> <<He_Short>> giggles. <span class="red">"I can't, dear. Forgive me."</span> <<else>> <<set _response to [ "Stupid slut, you think you can tell me what to do?", "You're not in charge here, slut.", "I'll do what I want, slut." ]>> <<if $settings.pregnancySpeechEnabled and $NPCList[$mouthtarget].penis is "vagina" and playerPregnancyPossibleWith($NPCList[$mouthtarget])>> <<run _response.pushUnique( "You should feel lucky if I knock you up.", "Maybe I should just put a baby in you now.", "I could make you have my kids, and you wouldn't be able to do a damn thing." )>> <</if>> <<He_Short>> pauses a moment before responding, <span class="red">"<<print _response.pluck()>>"</span> <</if>> <<default>> <<if $NPCList[$_target].type is "plant">> <<He>> scoffs. <span class="red">"Are you kidding? That's the fun part!"</span> <<elseif $NPCList[$_target].fullDescription is "Gwylan">> <<He_Short>> laughs seductively. <span class="red">"Let me work, dear."</span> <<else>> <<He>> pauses a moment before responding, <span class="red">"Stupid slut, you think you can tell <<if $enemyno gte 2>>us<<else>>me<</if>> what to do?"</span> <</if>> <</switch>> <<if $consensual is 1>> <<set $consensual to 0>> <<molested>><<controlloss>> <</if>> <</widget>><<widget "ejaculation-alex">> <<set $ejaculating to 1>> <<run statusCheck("Alex")>> <!-- Female ALEX (only have a pussy) --> <<if $NPCList[_nn].vagina isnot "none" and $NPCList[_nn].penis is "none">> <<if $consensual is 1>> <<if $NPCList[_nn].vagina is "mouthentrance" or $NPCList[_nn].vagina is "mouth" or $NPCList[_nn].vagina is "mouthimminent">> <<switch random(1,5)>> <<case 1 2>> <<He>> groans and rubs <<his>> crotch against your face with <<his>> hips, small thighs shaking with orgasm. <<case 3 4>> <<He>> goes red in the face and neck, mouth agape as <<he>> cums silently, body twitching uncontrollably. <<case 5>> <<He>> screams, cupping the back of your head in <<his>> hands and grinding <<his>> clit against your nose. <</switch>> <<elseif $NPCList[_nn].vagina is "leftarm">> <<switch random(1,5)>> <<case 1 2>> <<He>> sighs as you finish with <<his>> pussy, shaking <<his>> slim thighs together against your hand as <<his>> body convulses. <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "goo">> <<case 3 4>> <<He>> goes red in the face and neck, mouth agape as <<he>> cums silently, cunt spasming against your hand. <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "goo">> <<case 5>> <<He>> screams, grabbing your hand and fucking <<his>> pussy with your fingers. Your fingers are soaked in ejaculate. <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "goo">> <</switch>> <<elseif $NPCList[_nn].vagina is "rightarm">> <<switch random(1, 5)>> <<case 1 2>> <<He>> sighs as you finish with <<his>> pussy, knees knocking as <<his>> body convulses. <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "rightarm" "goo">> <<case 3 4>> <<He>> goes red in the face and neck, mouth agape as <<he>> cums silently, cunt spasming against your hand. <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "rightarm" "goo">> <<case 5>> <<He>> screams, grabbing your hand and fucking <<his>> pussy with your fingers. Your fingers are soaked in ejaculate. <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "rightarm" "goo">> <</switch>> <<elseif $NPCList[_nn].vagina is "lefthand" or $NPCList[_nn].vagina is "righthand">> <<switch random(1, 5)>> <<case 1 2>> <<He>> sighs as <<he>> cums, releasing you and pulling back <<his>> hand, licking your wetness off <<his>> fingers. <<case 3 4>> <<He>> moans loudly and shakes, dripping ejaculate on the ground; <<he>> withdraws <<his>> hand and sighs. <<case 5>> <<He>> screams as <<he>> comes, soaking <<his>> own pussy and thighs in ejaculate. "I love pleasuring myself with you." <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "goo">> <</switch>> <<elseif $NPCList[_nn].vagina is "leftDildo">> <<switch random(1, 5)>> <<case 1 2>> <<He>> ?orgasmMoans as <<his>> body convulses, <<his>> thighs trembling against your $currentSexToyLeft.name. <<case 3 4>> <<His>> blush deepens and <<his>> mouth gapes as <<he>> cums against your $currentSexToyLeft.name. <<case 5>> <<He>> ?orgasmMoans and grasps your arm as your $currentSexToyLeft.name brings <<him>> to orgasm. <<His>> juices soak your $currentSexToyLeft.name. <</switch>> <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "goo">> <<elseif $NPCList[_nn].vagina is "rightDildo">> <<switch random(1, 5)>> <<case 1 2>> <<He>> ?orgasmMoans as <<his>> body convulses, <<his>> thighs trembling against your $currentSexToyRight.name. <<case 3 4>> <<His>> blush deepens and <<his>> mouth gapes as <<he>> cums against your $currentSexToyRight.name. <<case 5>> <<He>> ?orgasmMoans and grasps your arm as your $currentSexToyRight.name brings <<him>> to orgasm. <<His>> juices soak your $currentSexToyRight.name. <</switch>> <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "rightarm" "goo">> <<elseif $NPCList[_nn].vagina is "leftDildoAnus">> <<switch random(1, 5)>> <<case 1 2>> <<He>> ?orgasmMoans as <<his>> body convulses, <<his>> thighs trembling against your $currentSexToyLeft.name. <<case 3 4>> <<His>> blush deepens and <<his>> mouth gapes as <<he>> cums against your $currentSexToyLeft.name. <<case 5>> <<He>> ?orgasmMoans and grasps your arm as your $currentSexToyLeft.name brings <<him>> to orgasm. <</switch>> <<handejacstat>><<ejacstat>><<set $hygiene += 500>> <<elseif $NPCList[_nn].vagina is "rightDildoAnus">> <<switch random(1, 4)>> <<case 1 2>> <<He>> moans as you knead <<his>> pussy, jamming your toes inside with <<his>> hands as <<he>> finishes cumming. <<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "feet" "goo">> <<case 3 4>> <<He>> shakes bodily as <<he>> cums, twitching underneath your feet and cumming between your toes. <<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "feet" "goo">> <</switch>> <<elseif $NPCList[_nn].vagina is "vagina" and playerChastity("vagina")>> <<He>> gasps as <<he>> cums against your $worn.genitals.name. "Wasn't I rough enough?" <<he>> laughs. <<elseif $NPCList[_nn].vagina is "vagina">> <<switch random(1, 5)>> <<case 1 2>> <<He>> cums as you scissor your pussies together, moaning with pleasure. <<case 3 4>> <<He>> moans as <<he>> grinds downs hard on your <<pussy>> to finish, thin legs shaking as <<he>> cums. <<case 5>> <<He>> screams, cupping <<his>> hands under your shoulders as <<his>> entire body shakes. Ejaculate drenches your crotch as <<he>> squirts. <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "goo">> <</switch>> <<elseif $NPCList[_nn].vagina is "othermouth">> <<switch random(1, 5)>> <<case 1 2>> <<He>> shudders with pleasure, exhaling warmly against your crotch as <<he>> comes, leaving you wet with saliva and your own fluids. <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "goo">> <<case 3 4>> <<He>> quietly ejaculates, shaking as <<he>> grinds <<his>> nose into your crotch and giving you a long, final, wet lick. <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "goo">> <<case 5>> <<He>> screams into your crotch as <<he>> cums, pinching <<his>> hands between <<his>> thighs and buckling over, ejaculate streaming down <<his>> thighs. <</switch>> <<elseif $NPCList[_nn].vagina is "otheranus" and playerChastity("penis")>> <<He>> gasps as <<he>> cums against your $worn.genitals.name. "Wasn't I rough enough?" <<he>> laughs. <<elseif $NPCList[_nn].vagina is "otheranus">> <<switch random(1, 5)>> <<case 1 2>> <<He>> shakes as <<he>> cums, driving <<his>> ass hard against you as <<he>> releases a final moan. "I don't know why, but I just can't get enough of this." <<case 3 4>> <<He>> quietly ejaculates, shaking as <<he>> grinds <<his>> ass deeply with your cock and moaning. "I wouldn't mind going a little longer." <<case 5>> <<He>> screams and bucks into your crotch as <<he>> cums, squirting ejaculate from <<his>> pussy and drenching your legs. "Wish I could ride you all day." <<thighejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "goo">> <</switch>> <<elseif $NPCList[_nn].vagina is "penis">> <<switch random(1, 5)>> <<case 1 2>> <<He>> grabs your shoulders with <<his>> small hands as <<he>> cums, bouncing down hard against your cock as <<he>> shudders with pleasure. "What about a second round, partner?" <<case 3 4>> <<He>> sighs as <<he>> cums, reddening and going into a full body convulsion. Ejaculate soaks your crotch. "Hope I didn't dry you out," <<he>> laughs. <<case 5>> <<He>> cries out and bucks on your lap as <<he>> cums, squirting ejaculate from <<his>> pussy and drenching your crotch and legs. "Now that was a hell of a ride." <<thighejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "goo">> <</switch>> <<ejacstat>><<set $hygiene += 500>><<bodyliquid "penis" "goo">> <<elseif ($NPCList[_nn].vagina is "penisimminent" or $NPCList[_nn].vagina is "penisentrance") and playerChastity("penis")>> <<He>> gasps as <<he>> cums against your $worn.genitals.name. "Wasn't I rough enough?" <<he>> laughs. <<elseif $NPCList[_nn].vagina is "penisimminent" or $NPCList[_nn].vagina is "penisentrance">> <<He>> cums on your <<penis>> as you rub against the entrance and moans with pleasure. "You're gonna drive me crazy with this." <<elseif ($NPCList[_nn].vagina is "otheranusfrot" or $NPCList[_nn].vagina is "otheranusentrance") and playerChastity("penis")>> <<He>> gasps as <<he>> cums against your $worn.genitals.name. "Wasn't I rough enough?" <<he>> laughs. <<elseif $NPCList[_nn].vagina is "otheranusfrot" or $NPCList[_nn].vagina is "otheranusentrance">> <<He>> bucks <<his>> ass against your cock as <<he>> cums. <<He>> frowns, "I do hope to get a real ride next time." <<elseif $NPCList[_nn].vagina is "frot" and playerChastity("penis")>> <<He>> gasps as <<he>> cums against your $worn.genitals.name. "Wasn't I rough enough?" <<he>> laughs. <<elseif $NPCList[_nn].vagina is "frot">> <<He>> grinds <<his>> clit hard against your cock as <<he>> cums, ejaculating on your cock. "You're gonna drive me crazy with this." <<ejacstat>><<set $hygiene += 500>><<bodyliquid "penis" "goo">> <!-- Special case male PC with female NPC --> <<elseif $NPCList[_nn].mouth is "penis">> Alex grabs your thighs as <<he>> finishes. <<He>> takes you deeper into <<his>> mouth, <<if $internalejac>> swallowing your cum in loud gulps. <<switch random(1,2)>> <<case 1>> "Always tastes better from the source," <<case 2>> "Couldn't ask for a tastier milk," <</switch>> <<else>> as if trying to milk you. <<if $internalejac>> "Now ain't you a hard bull to milk," <<else>> "You still owe me some of that milk," <</if>> <</if>> <<he>> says as <<he>> pulls <<his>> mouth away, cleaning your penis in the process. <<else>> <<He>> convulses in orgasmic bliss. <</if>> <<else>><!-- There should be non non-consensual Alex events --> <<He>> cries out as <<he>> orgasms. <<He>> stops moving save for ragged breathing. <</if>> <br><br> <</if>> <!-- Male ALEX --> <<if _condomResult is "leaked">> <span class="red">The condom broke.</span> <<elseif _condomResult is "burst">> <span class="red">The tip of the condom bursts and rips, exposing the head of <<his>> penis.</span> <</if>> <<if $consensual is 1>> <<if _condomResult is "contained">> <<genericCondomEjaculation>> <<elseif npcHasStrapon(_nn)>> <<He>> moans and shivers in orgasmic bliss, grinding the strap-on against <<his>> genitals. <<elseif $NPCList[_nn].penis is "idle">> <<He>> groans as a wet patch forms on <<his>> trousers. You giggle at the sight. <<elseif $NPCList[_nn].penis is "thighs">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> shakes as <<he>> cums, pulling <<his>> cock out and ejaculating onto the backs of your thighs. <<thighejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <<case 4 5 6>> <<He>> grabs your legs, pushing <<his>> crotch hard into yours as <<he>> cums and ejaculating onto your tummy. <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <<case 7>> <<He>> groans as <<he>> cums, ejaculating a massive load that covers your thighs and tummy. "Got some strong thighs, should be careful next time I service ya." <<thighejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <<tummyejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <</switch>> <<elseif $NPCList[_nn].penis is "vaginaentrance" and playerChastity("vagina")>> <<He>> gasps as <<he>> cums onto your $worn.genitals.name. "Wasn't I rough enough?" <<he>> laughs. <<elseif $NPCList[_nn].penis is "vaginaentrance">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> holds you still by the hips with one hand and with the other on <<his>> cock, ejaculates onto your <<pussy>>. Semen coats your outer lips and pools around your legs. <<case 4 5 6>> <<He>> strokes <<his>> cock and ejaculates onto your <<pussy>> without a word, sending white streams of semen running down your cunt. <<case 7>> <<He>> moans and strokes <<his>> cock as <<he>> cums, sending thick ropes of semen onto your <<pussy>> and ass. <<bottomejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <</switch>> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 5, rngType: "canWash"}`>> <<elseif $NPCList[_nn].penis is "vaginaimminent" and playerChastity("vagina")>> <<He>> gasps as <<he>> cums onto your $worn.genitals.name. "Wasn't I rough enough?" <<he>> laughs. <<elseif $NPCList[_nn].penis is "vaginaimminent">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> cums before <<he>> can penetrate your <<pussy>>, ejaculating on the outside. Semen coats your outer lips and tummy; <<he>> seems disappointed. <<case 4 5 6>> <<He>> ejaculates onto your <<pussy>> before <<he>> can penetrate you, sending white streams of semen running down your <<pussy>>; <<he>> looks disappointed. <<case 7>> <<He>> moans and strokes <<his>> cock as <<he>> cums, sending thick ropes of semen onto your <<pussy>> and ass. <<bottomejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <</switch>> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 15, rngType: "canWash"}`>> <<elseif $NPCList[_nn].penis is "vagina">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> moans and thrusts deeply into your <<pussy>> as <<he>> cums, holding <<his>> cock deep in your womb. You feel warm as semen fills your vagina. "You really know how to milk a farmer dry." <<case 4 5 6>> <<He>> quiets and grabs your shoulders with <<his>> small hands, pulling you onto <<his>> cock as <<he>> cums. Semen fills your <<pussy>>, leaving you breathless. "Wanna go for another ride?" <<case 7>> <<He>> convulses and grinds down on your crotch as <<he>> cums, sending thick waves of cum into your <<pussy>>. Semen oozes from your vagina and down your legs. <<vaginalentranceejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<thighejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <</switch>> <<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vagina" "semen">> <<recordVaginalSperm "pc" $NPCList[_nn] "human">> <<elseif $NPCList[_nn].penis is "cheeks" and playerChastity()>> <<He>> gasps as <<he>> cums onto your $worn.genitals.name. "Wasn't I rough enough?" <<he>> laughs. <<elseif $NPCList[_nn].penis is "cheeks">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> shakes as <<he>> cums, withdrawing <<his>> cock from your cheeks and ejaculating onto your ass. <<case 4 5 6>> <<He>> grabs your thighs, pushing <<his>> crotch hard against your ass and ejaculating between your cheeks. <!-- Really should be onto PCs back given position. Or hair maybe. Esp next one --> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 7>> <<He>> squeezes your cheeks together and grunts as <<he>> cums, sending out massive load that covers your ass and drips down your crotch. <<He>> seems pleased. "Maybe I should let you sit around more if it keeps your ass soft like that." <<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <</switch>> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<elseif $NPCList[_nn].penis is "anusentrance" and playerChastity("anus")>> <<He>> gasps as <<he>> cums onto your $worn.genitals.name. "Wasn't I rough enough?" <<he>> laughs. <<elseif $NPCList[_nn].penis is "anusentrance">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> palms your asscheek with one hand and strokes <<his>> cock with the other, ejaculating onto your bottom. Semen drips down your butt and into your crack. <<case 4 5 6>> <<He>> strokes <<his>> cock and quietly ejaculates onto your ass. You feel warm semen dripping down your bottom. <<case 7>> <<He>> moans and strokes <<his>> cock as <<he>> cums, sending thick ropes of semen onto your ass and down your crotch. <<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <</switch>> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<recordSperm `{genital: "anus", target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 5, rngType: "canWash"}`>> <<elseif $NPCList[_nn].penis is "anusimminent" and playerChastity("anus")>> <<He>> gasps as <<he>> cums onto your $worn.genitals.name. "Wasn't I rough enough?" <<he>> laughs. <<elseif $NPCList[_nn].penis is "anusimminent">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> cums before <<he>> can penetrate your ass, ejaculating on the outside. Semen coats your ass and drips down your crack; <<he>> seems disappointed. <<case 4 5 6>> <<He>> strokes <<his>> cock and ejaculates onto your ass before <<he>> can penetrate you, sending white streams of semen running down your crack; <<he>> seems upset. <<case 7>> <<He>> moans and strokes <<his>> cock as <<he>> cums, sending thick ropes of semen onto your ass and crotch. <<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <</switch>> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<recordSperm `{genital: "anus", target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 15, rngType: "canWash"}`>> <<elseif $NPCList[_nn].penis is "anus">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> moans and thrusts into your ass as <<he>> cums. You gasp as you feel semen filling you. <<case 4 5 6>> <<He>> wordlessly grabs your shoulders, pulling you back onto <<his>> cock as <<he>> cums. Semen fills your ass as you moan with pleasure. <<case 7>> <<He>> convulses and, with a final shove, cums in your ass. Thick waves of semen pump into you. You're surprised at the amount; cum oozes from your ass and runs down your legs. <<thighejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <</switch>> <<analejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "anus" "semen">> <<recordAnusSperm "pc" $NPCList[_nn] "human">> <<elseif $NPCList[_nn].penis is "chest">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> pushes your <<breasts>> together tight on <<his>> cock as <<he>> cums, ejaculating onto them. Your body feels slick with cum. <<case 4 5 6>> <<He>> strokes the tip of <<his>> cock between your <<breasts>> and quietly ejaculates on them. Your <<breasts>> feel cool as semen drips down them. "Now let's clean those off so I got a pair of nice pillows to sleep on tonight." <<case 7>> <<He>> puts <<his>> hand behind your neck and bears down on your <<breasts>>, grunting as <<he>> cums; semen shoots between your <<breasts>> and covers your <<if $position is "missionary">>face<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">><<else>>stomach<<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">><</if>>. "You look so damn cute like that!" <</switch>> <<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <<elseif $NPCList[_nn].penis is "mouthentrance">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> cups you under the chin with one hand and strokes <<his>> cock with the other, ejaculating onto your face. <<His>> face looks excited. <<set $hygiene += 500>><<bodyliquid "face" "semen">> <<case 4 5 6>> <<He>> strokes <<his>> cock and quietly ejaculates onto your face. Warm cum drips down your forehead and nose. <<He>> smiles and cleans you off. <<case 7>> <<He>> gasps and strokes <<his>> cock while aiming straight at your mouth. Thick ropes of cum cover your face and push past your closed lips into your mouth. You're impressed by the volume and <<he>> looks oddly pleased with <<himself>>. <<set $hygiene += 500>><<bodyliquid "face" "semen">> <<cumswallow `$NPCList[_nn].type` null `npcSemenMod($NPCList[_nn].penissize)`>> <</switch>> <<faceejacstat>><<ejacstat>> <<elseif $NPCList[_nn].penis is "mouthimminent">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> cups the back of your head, ejaculating onto your lips as you barely brush against the tip of <<his>> penis; <<he>> seems disappointed with <<his>> lack of control. <<case 4 5 6>> <<He>> brushes <<his>> cock against your face, causing <<him>> to ejaculate early. Cum drips down your lips and chin; <<he>> seems disappointed. <<case 7>> <<He>> cups your head but in <<his>> excitement cums before <<he>> can enter your mouth. Thick ropes of cum cover your cheeks, chin, and into your waiting mouth. <<oralejacstat>><<cumswallow `$NPCList[_nn].type` null `npcSemenMod($NPCList[_nn].penissize)`>> <</switch>> <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <<elseif $NPCList[_nn].penis is "mouth">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> cups you under the chin with one hand and holds the back of your head with the other, thrusting into your mouth as <<he>> cums. Ejaculate streams down your throat and fills your mouth. "You milked me dry, and you thought you were not gonna have some?" <<case 4 5 6>> <<He>> grasps the base of <<his>> cock and moans, quietly ejaculating into your mouth. You feel warm cum fill your mouth and drip down your throat. "Really like all my milk, I see..." <<case 7>> <<He>> palms your head, wildly thrusting <<his>> cock in your mouth as <<he>> cums. Semen streams down your throat, fills your mouth and covers your face as <<he>> flails. "<<if C.npc.Alex.dom gte 20>>Didn't think you could swallow it all<<else>>F-uck...You really did get all of it<</if>>." <<faceejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <</switch>> <<oralejacstat>><<ejacstat>><<cumswallow `$NPCList[_nn].type` null `npcSemenMod($NPCList[_nn].penissize)`>> <<elseif $NPCList[_nn].penis is "feet">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> pushes your feet together and groans as <<he>> cums. Ejaculate covers your feet. <<case 4 5 6>> <<He>> quietly cums on your feet, slickening them with semen. <<case 7>> <<He>> grunts and thrusts <<his>> cock between your feet as <<he>> cums, splattering cum on your feet and legs in the process. "Kept teasing me like that, and now I got to wait for a round two to fuck your cute bottom." <</switch>> <<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "feet" "semen">> <<elseif $NPCList[_nn].penis is "leftarm" and $NPCList[_nn].penis is "rightarm">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> groans as <<he>> cums, penis pulsing in your hands, covering them both in cum. <<case 4 5 6>> <<He>> quietly cums on your hands, slickening them with semen. <<case 7>> <<He>> spasms and moans, shooting thick streams of cum. You are so intent on your work you don't notice <<his>> penis is aimed at your face, which is splattered with cum in the process. <<He>> laughs and apologises. <<faceejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <</switch>> <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "semen">><<bodyliquid "rightarm" "semen">> <<elseif $NPCList[_nn].penis is "leftarm">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> groans as <<he>> cums, penis sliding hotly in your left hand and covering it with cum. <<case 4 5 6>> <<He>> quietly cums on your left hand. Semen drips down your fingers. "Aren't you gonna have some?" <<case 7>> <<He>> spasms and moans, shooting thick streams of cum and splattering your <<breasts>> in the process. You're impressed by the volume. "I didn't realise that keeping those big mooing buggers around would come with some bonus perks." <<chestejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <</switch>> <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "semen">> <<elseif $NPCList[_nn].penis is "rightarm">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> groans as you work <<his>> shaft with your right hand, cumming as you give <<him>> a final squeeze. Your hand is covered in warm semen. <<case 4 5 6>> <<He>> quietly cums on your right hand. Semen cools on your fingers. "Aren't you gonna have some?" <<case 7>> <<He>> grunts and shoots thick ropes of semen onto your hands, making an impressive mess. You're impressed by the volume. "I didn't realise that keeping those big mooing buggers around would come with some bonus perks." <</switch>> <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "rightarm" "semen">> <<elseif $NPCList[_nn].penis is 0>> <<switch random(1, 4)>> <<case 1>> <<He>> groans as <<he>> works <<his>> shaft and, giving <<his>> cock a final squeeze, ejaculates onto your tummy. <<He>> laughs at the mess. <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <<case 2>> <<He>> rapidly rubs <<his>> cock and moans, ejaculating on the ground. <<case 3>> <<He>> strokes <<his>> penis and, aiming at your ass, ejaculates on your bottom. "That was fun!" <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 4>> <<He>> strokes <<his>> penis and moans, ejaculating on your <<breasts>>. <<He>> laughs at the mess <<hes>> made. <</switch>> <<elseif $NPCList[_nn].penis is "otheranus">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> groans as you fuck <<his>> ass, <<his>> ejaculate spraying on <<his>> own stomach. "I guess it's okay to let you be on top sometimes." <<case 4 5>> <<He>> whimpers as you pound <<his>> ass, moaning in pleasure as <<he>> ejaculates on the ground. You roll off <<him>>. <<case 6 7>> <<He>> sighs as <<he>> ejaculates onto <<his>> own chest. "Next time, you'll be giving me a ride." <</switch>> <<elseif ($NPCList[_nn].penis is "otheranusfrot" or $NPCList[_nn].penis is "otheranusentrance" or $NPCList[_nn].penis is "otheranusimminent") and playerChastity("penis")>> <<He>> gasps as <<he>> cums onto your $worn.genitals.name. "Wasn't I rough enough?" <<he>> laughs. <<elseif $NPCList[_nn].penis is "otheranusfrot" or $NPCList[_nn].penis is "otheranusentrance" or $NPCList[_nn].penis is "otheranusimminent">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> noisily cums as you fuck <<his>> cheeks, grabbing your ass from behind and grinding your cock against <<his>> ass to finish. <<case 4 5>> <<He>> moans as you rub against <<his>> anus and ejaculates on the ground. <<He>> smiles contentedly. <<case 6 7>> <<He>> sighs as <<he>> ejaculates onto <<his>> own chest. <</switch>> <<elseif $NPCList[_nn].penis is "penis" and playerChastity("penis")>> <<He>> gasps as <<he>> shoots <<his>> cum over your $worn.genitals.name. <<He>> strokes your face. "You're so cute." <<elseif $NPCList[_nn].penis is "penis">> <<switch random(1, 7)>> <<case 1>> <<He>> cums as you knead your <<penises>> together, moaning with pleasure. <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <<case 2>> <<He>> cums as you rub your <<penises>> together, moaning with pleasure. <<He>> rubs <<his>> own cum all over your shaft. <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <<case 3>> <<He>> cums as you frot your <<penises>> together, shooting <<his>> impressive load over your <<penis>> and stomach. <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <<case 4>> <<He>> moans as <<he>> grinds downs hard on your <<penis>> to finish, thin legs shaking as <<he>> cums. <<He>> uses the cum as lube, furiously milking out the last of <<his>> cum against your <<penis>>. <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <<case 5>> <<He>> giggles as <<he>> rubs hard against your <<penis>> to finish. <<He>> uses the cum as lube, furiously milking out the last of <<his>> semen against your <<penis>>. <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <<case 6>> <<He>> screams as <<he>> grinds hard against your <<penis>> to finish, thin legs shaking as <<he>> cums. <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <<case 7>> <<He>> screams, cupping <<his>> small hands under your shoulders as <<his>> entire body shakes; you are surprised by how strong <<he>> is. Ropes of semen drench your crotch as <<he>> cums. <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <</switch>> <<elseif $NPCList[_nn].penis is "penisentrance" or $NPCList[_nn].penis is "penisimminent">> <<switch random(1, 7)>> <<case 1 2>> <<He>> cums before <<he>> can frot your <<penis>>, ejaculating on the outside. Semen coats your cock and tummy; <<he>> seems upset with <<himself>>. <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <<case 3 4>> <<He>> ejaculates onto your <<penis>> before <<he>> can frot your <<penises>> together, sending white streams of semen running down your <<penis>>; <<he>> seems disappointed. <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <<case 5>> <<He>> moans and strokes <<his>> cock as <<he>> cums, sending thick ropes of semen onto your <<penis>> and ass. <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <<bottomejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 6 7>> <<He>> cums before your <<penises>> touch, covering you in <<his>> massive load. Semen coats your tummy and crotch. <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <</switch>> <!-- Special case male PC being orally serviced by male NPC with no other contact --> <<elseif $NPCList[_nn].mouth is "penis" and $NPCList[_nn].vagina is "none" and $NPCList[_nn].penis isnot "none">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> cums as you fuck <<his>> mouth, gasping against your cock. "God, I love you so much." <<set $kylarSeen.pushUnique("saidLove")>> <<case 4 5>> <<He>> cums on the ground as you fuck <<his>> mouth. <<He>> backs away, "I'm sorry; I can't take anymore. Please forgive me." <<case 6 7>> <<He>> grabs you by the ass and drives your cock deeply into <<his>> throat, ejaculating on <<his>> chest as <<he>> throats your cock. <</switch>> <<elseif $NPCList[_nn].penis is "othermouth">> <<He>> shakes with arousal as <<he>> cums, wiping <<his>> wet face clean on your body. <</if>> <<else>><!-- There should be non non-consensual Alex events --> <<He>> cries out as <<he>> orgasms. <<He>> stops moving save for ragged breathing. <</if>> <</widget>><<widget "ejaculation-eden">> <<set $ejaculating to 1>> <!-- Changing rows to future-proof the code: from $NPCList[0] to $NPCList[_nn], _nn being the main ejaculation loop handler --> <!-- Female EDEN --> <<if $NPCList[_nn].vagina isnot "none" and $NPCList[_nn].penis is "none">> <<if $consensual is 1>> <<if $NPCList[_nn].vagina is "mouthentrance" or $NPCList[_nn].vagina is "mouth" or $NPCList[_nn].vagina is "mouthimminent">> <<switch random(1, 5)>> <<case 1 2>> <<He>> moans as <<his>> hips thrust against your face, <<his>> thighs shaking with orgasm. <<case 3 4>> <<His>> blush deepens and mouth gapes as <<he>> cums, <<his>> body twitching all over. <<case 5>> <<He>> screams, cupping your head in <<his>> hand and thrusting against your face as <<he>> cums. <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "goo">> <</switch>> <<elseif $NPCList[_nn].vagina is "leftarm">> <<switch random(1, 5)>> <<case 1 2>> <<He>> sighs as you finish with <<his>> pussy, <<his>> thighs trembling against your hand as <<his>> body convulses. <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "goo">> <<case 3 4>> <<His>> blush deepens and <<his>> mouth gapes as <<he>> cums. You feel <<his>> pussy twitch against <<his>> hand. <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "goo">> <<case 5>> <<He>> screams as <<he>> grasps your hand and fucks your fingers with <<his>> pussy. You feel <<his>> interior twitch. <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "goo">> <</switch>> <<elseif $NPCList[_nn].vagina is "rightarm">> <<switch random(1, 5)>> <<case 1 2>> <<His>> knees tremble and <<he>> grasps your body for support as you finish with <<his>> pussy. <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "rightarm" "goo">> <<case 3 4>> <<His>> blush deepen and <<his>> mouth gapes as <<he>> cums. You feel <<his>> pussy twitch. <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "rightarm" "goo">> <<case 5>> <<He>> screams and grasps your hand before fucking <<his>> pussy with your fingers. You feel <<his>> insides twitch. <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "rightarm" "goo">> <</switch>> <<elseif $NPCList[_nn].vagina is "lefthand" or $NPCList[_nn].vagina is "righthand">> <<switch random(1, 5)>> <<case 1 2>> <<He>> sighs and trembles as <<he>> cums, barely able to keep <<his>> fingers inside <<his>> pussy. <<case 3 4>> <<He>> moans shakes, <<his>> juices dripping on the ground. <<He>> withdraws <<his>> hand and sighs. <<case 5>> <<He>> screams as <<he>> cums, <<his>> juices soaking <<his>> pussy and thighs. "You might need to clean me up." <</switch>> <<elseif $NPCList[_nn].vagina is "leftDildo">> <<switch random(1, 5)>> <<case 1 2>> <<He>> ?orgasmMoans as <<his>> body convulses, <<his>> thighs trembling against your $currentSexToyLeft.name. <<case 3 4>> <<His>> blush deepens and <<his>> mouth gapes as <<he>> cums against your $currentSexToyLeft.name. <<case 5>> <<He>> screams and grasps your arm as your $currentSexToyLeft.name brings <<him>> to orgasm. <<His>> juices soak your $currentSexToyLeft.name. "You might need to clean me up." <</switch>> <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "goo">> <<elseif $NPCList[_nn].vagina is "rightDildo">> <<switch random(1, 5)>> <<case 1 2>> <<He>> ?orgasmMoans as <<his>> body convulses, <<his>> thighs trembling against your $currentSexToyRight.name. <<case 3 4>> <<His>> blush deepens and <<his>> mouth gapes as <<he>> cums against your $currentSexToyRight.name. <<case 5>> <<He>> screams and grasps your arm as your $currentSexToyRight.name brings <<him>> to orgasm. <<His>> juices soak your $currentSexToyRight.name. "You might need to clean me up." <</switch>> <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "rightarm" "goo">> <<elseif $NPCList[_nn].vagina is "leftDildoAnus">> <<switch random(1, 5)>> <<case 1 2>> <<He>> ?orgasmMoans as <<his>> body convulses, <<his>> thighs trembling against your $currentSexToyLeft.name. <<case 3 4>> <<His>> blush deepens and <<his>> mouth gapes as <<he>> cums against your $currentSexToyLeft.name. <<case 5>> <<He>> screams and grasps your arm as your $currentSexToyLeft.name brings <<him>> to orgasm. <</switch>> <<handejacstat>><<ejacstat>><<set $hygiene += 500>> <<elseif $NPCList[_nn].vagina is "rightDildoAnus">> <<switch random(1, 5)>> <<case 1 2>> <<He>> ?orgasmMoans as <<his>> body convulses, <<his>> thighs trembling against your $currentSexToyRight.name. <<case 3 4>> <<His>> blush deepens and <<his>> mouth gapes as <<he>> cums against your $currentSexToyRight.name. <<case 5>> <<He>> screams and grasps your arm as your $currentSexToyRight.name brings <<him>> to orgasm. <</switch>> <<handejacstat>><<ejacstat>><<set $hygiene += 500>> <<elseif $NPCList[_nn].vagina is "feet">> <<switch random(1, 5)>> <<case 1 2>> <<He>> moans as you knead <<his>> pussy with your feet. <<His>> body trembles in orgasm. <<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "feet" "goo">> <<case 3 4>> <<He>> shakes as <<he>> cums, <<his>> pussy twitching beneath your feet. <<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "feet" "goo">> <<case 5>> <<He>> screams as <<he>> cums. <<He>> shakes for a moment, then <<his>> whole body falls limp. <<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "feet" "goo">> <</switch>> <<elseif $NPCList[_nn].vagina is "vagina" and playerChastity("vagina")>> <<He>> screams as <<he>> cums against your $worn.genitals.name. "Next time," <<he>> says, panting. "I want to rub your pussy directly." <<elseif $NPCList[_nn].vagina is "vagina">> <<switch random(1, 5)>> <<case 1 2>> <<He>> moans with pleasure as <<he>> cums. You feel <<his>> pussy twitch against yours. <<case 3 4>> <<He>> moans as your <<pussy>> rubs against <<hers>>, legs shaking as <<he>> cums. <<case 5>> <<He>> screams, cupping <<his>> arms under your shoulders as <<his>> entire body shakes. You feel <<his>> pussy twitch against yours. <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "goo">> <</switch>> <<elseif $NPCList[_nn].vagina is "othermouth">> <<switch random(1, 5)>> <<case 1 2>> <<He>> shudders with pleasure, exhaling against your crotch as <<he>> cums. <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "goo">> <<case 3 4>> <<He>> gives your <<pussy>> a slow, savage lick. You feel it shake as <<he>> cums. <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "goo">> <<case 5>> <<He>> screams and clutches <<his>> thighs as <<he>> cums, breathing hard on your <<pussy>>. <</switch>> <!-- following appear to be Male PC to Female Antagonist only? --> <<elseif $NPCList[_nn].vagina is "otheranus">> <<switch random(1, 5)>> <<case 1 2>> <<He>> shakes as <<he>> cums, driving <<his>> ass hard against your <<penis>>. <<case 3 4>> <<He>> shakes as <<he>> cums, <<his>> ass pounding your <<penis>> with savage intensity. <<case 5>> <<He>> screams and bucks against your <<penis>> as <<he>> cums. "I knew there was a reason I kept you around." <<thighejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "goo">> <</switch>> <<elseif $NPCList[_nn].vagina is "penis">> <<switch random(1, 5)>> <<case 1 2>> <<He>> grasps your shoulders as <<he>> cums, driving <<his>> pussy down hard against your cock. <<He>> shudders with pleasure. "You're mine. Don't ever forget it." <<ejacstat>><<set $hygiene += 500>><<bodyliquid "penis" "goo">> <<case 3 4>> <<His>> blush deepens and <<his>> body convulses as <<he>> cums. <<His>> pussy twitches around your <<penis>>. <<ejacstat>><<set $hygiene += 500>><<bodyliquid "penis" "goo">> <<case 5>> <<He>> screams and bucks against your lap as <<he>> cums, taking your <<penis>> as hard as <<he>> can. <<ejacstat>><<set $hygiene += 500>><<bodyliquid "penis" "goo">> <<thighejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "goo">> <</switch>> <<elseif ($NPCList[_nn].vagina is "penisimminent" or $NPCList[_nn].vagina is "penisentrance") and playerChastity("penis")>> <<He>> screams as <<he>> cums, <<his>> body shuddering against yours. "If you weren't wearing that thing," <<he>> says, panting, "I'd give you a proper seeing to." <<elseif $NPCList[_nn].vagina is "penisimminent" or $NPCList[_nn].vagina is "penisentrance">> You feel <<his>> pussy twitch against the tip of your <<penis>> as <<he>> cums. "Next time I'll give you a proper fucking." <<elseif $NPCList[_nn].vagina is "otheranusfrot" or $NPCList[_nn].vagina is "otheranusentrance">> <<He>> bucks <<his>> ass against your cock as <<he>> cums, rubbing it between <<his>> cheeks. "Next time I want you to fuck me. I don't keep you around to toy with my ass." <<elseif $NPCList[_nn].vagina is "frot">> <<He>> rubs <<his>> clit against your cock as <<he>> cums, <<his>> whole body shuddering. <<He>> looks frustrated. "I want nothing more than to have that cock inside me. I deserve a medal for restraint." <<ejacstat>><<set $hygiene += 500>><<bodyliquid "penis" "goo">> <!-- Special case male PC with female NPC --> <<elseif $NPCList[_nn].mouth is "penis">> <<switch random(1, 4)>> <<case 1 2>> <<He>> cums as you fuck <<his>> mouth. You feel <<him>> tremble. <<case 3 4>> <<He>> cums with <<his>> lips still wrapped around your <<penis>> and grasps your thighs with both hands. <</switch>> <<else>> <<He>> convulses in orgasmic bliss. <</if>> <<else>> <<if $NPCList[_nn].vagina is "footjob">> <<switch random(1, 5)>> <<case 1 2 3>> <<He>> gasps as <<he>> cums. <<He>> smiles as <<he>> recovers, resting <<his>> foot on your tummy. "That's a good <<girl>>." <<case 4 5>> <<He>> moans as <<he>> cums. <<He>> moves <<his>> foot away from your <<genitals>> to spare you the violent spasms. <</switch>> <<elseif $NPCList[_nn].vagina is "vagina" and playerChastity("vagina")>> <<He>> gasps your hair as <<he>> cums, pulling it tight. "If only you weren't locked up," <<he>> pants. "I'm gonna find out who has the key." <<elseif $NPCList[_nn].vagina is "vagina">> <<switch random(1, 5)>> <<case 1 2>> <<He>> moans as <<he>> cums. You feel <<his>> pussy twitch against yours. <<case 3 4>> <<He>> moans as <<he>> grasps you by the throat and rubs <<his>> pussy hard against yours. <<gstress>><<gtrauma>><<gpain>><<violence 3>><<bruise neck>><<hitstat>> <<case 5>> <<He>> screams, grasping your hair and mashing <<his>> body against yours. <<His>> whole body twitches with violent spasms. <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "goo">> <</switch>> <<elseif $NPCList[_nn].vagina is "othermouth">> <<He>> grasps your hips and buries <<his>> face between your legs. <<His>> guttural moans reverberate through your <<genitals>>. <<elseif $NPCList[_nn].vagina is "lefthand" or $NPCList[_nn].vagina is "righthand">> <<He>> moans as <<he>> cums. <<He>> <span class="pink">grasps your hair and pulls you close.</span> "Don't forget I'm the only one you're allowed to pleasure." <<elseif $NPCList[_nn].vagina is "mouthentrance" or $NPCList[_nn].vagina is "mouth" or $NPCList[_nn].vagina is "mouthimminent">> <<if random(1)>> <<He>> shakes with arousal as <<he>> cums, <<his>> pussy trembling against your tongue. <<else>> <<He>> moans and grasps your hair, rubbing <<his>> pussy against you as <<his>> thighs shake with orgasm. <</if>> <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "goo">> <!-- following appear to be Male PC to Female Antagonist only? --> <<elseif $NPCList[_nn].vagina is "otheranus">> <<He>> shakes as <<he>> cums, grasping your <<print ($player.ballsExist ? "balls" : "pussy")>> and taking your <<penis>> deep into <<his>> ass as <<he>> releases a final moan. <<elseif $NPCList[_nn].vagina is "penis">> <<He>> digs <<his>> nails into your shoulders as <<he>> cums, driving <<his>> pussy down hard against your cock. <<He>> shudders with pleasure. <<elseif ($NPCList[_nn].vagina is "penisimminent" or $NPCList[_nn].vagina is "penisentrance") and playerChastity("penis")>> <<He>> grasps your hair as <<he>> cums, thrusting against your $worn.genitals.name. "If you weren't locked up," <<he>> says, "I wouldn't be able to stop myself ravaging you." <<elseif $NPCList[_nn].vagina is "penisimminent" or $NPCList[_nn].vagina is "penisentrance">> <<He>> moans as <<he>> cums. You feel <<his>> pussy twitch against the tip of you <<penis>>. "I deserve a medal for restraint," <<he>> says. "Your cock is begging to be fucked." <<elseif ($NPCList[_nn].vagina is "otheranusfrot" or $NPCList[_nn].vagina is "otheranusentrance") and playerChastity("penis")>> <<He>> grasps your hair as <<he>> cums. You feel <<him>> tremble against your $worn.genitals.name. "That chastity device," <<he>> says. "I can't wait to take you properly." <<elseif $NPCList[_nn].vagina is "otheranusfrot" or $NPCList[_nn].vagina is "otheranusentrance">> <<He>> rubs <<his>> ass against your cock as <<he>> cums. "You're such a good tease," <<he>> pants. "Not having you inside me is almost unbearable." <<elseif $NPCList[_nn].vagina is "frot" and playerChastity("penis")>> <<He>> grasps your hair as <<he>> cums, <<his>> body trembling against your $worn.genitals.name. "I'm gonna find that key," <<he>> says. "Then I'll give you a proper seeing to." <<elseif $NPCList[_nn].vagina is "frot">> <<He>> grasps your throat, pulling you down and rubbing <<his>> clit against your cock as <<he>> cums. "I want to fuck your cock properly next time. Your teasing drives me mad." <<gstress>><<gtrauma>><<gpain>><<violence 3>><<bruise neck>><<hitstat>> <!-- Special case male PC with female NPC --> <<elseif $NPCList[_nn].mouth is "penis">> <<He>> cums as you fuck <<his>> mouth, until <<he>> pulls away and gasps for air. "That's enough." <<else>> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> trembles with orgasm. <<He>> pulls you close. "Good <<girl>>," <<he>> whispers. <<case 4 5 6>> <<He>> sighs as <<he>> cums, then gives your <<bottom>> a light spank. "You're my prized possession," <<he>> says. "Don't forget it." <<case 7>> <<He>> rubs <<his>> clit and screams as <<he>> cums, before lying back and panting, one arm over <<his>> eyes and the other grasping your hair. <<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "goo">> <</switch>> <</if>> <</if>> <br><br> <</if>> <!-- Male EDEN --> <<if _condomResult is "leaked">> <span class="red">The condom broke.</span> <<elseif _condomResult is "burst">> <span class="red">The tip of the condom bursts and rips, exposing the head of <<his>> penis.</span> <</if>> <<if $consensual is 1>> <<if _condomResult is "contained">> <<genericCondomEjaculation>> <<elseif npcHasStrapon(_nn)>> <<He>> moans and shivers in orgasmic bliss, grinding the strap-on against <<his>> genitals. <<elseif $NPCList[_nn].penis is "idle">> <<He>> moans as a wet patch forms on <<his>> trousers. You stifle a giggle at the sight. <<elseif $NPCList[_nn].penis is "thighs">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> shakes as <<he>> cums, pulling <<his>> $NPCList[_nn].penisdesc out and ejaculating onto the back of your thighs. <<thighejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <<case 4 5 6>> <<He>> grasps your legs for purchase as <<he>> approaches <<his>> peak, before ejaculating between your thighs and onto your tummy. <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <<case 7>> <<He>> moans as <<he>> cums, ejaculating a massive load that covers your thighs and tummy. <<thighejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <<tummyejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <</switch>> <<elseif $NPCList[_nn].penis is "vaginaentrance" and playerChastity("vagina")>> <<He>> moans as <<he>> cums, ejaculating over your $worn.genitals.name. "I'm gonna find the key holder," <<he>> gasps. "Then I'll give you a proper seeing to." <<elseif $NPCList[_nn].penis is "vaginaentrance">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> holds you still by the hips while <<his>> $NPCList[_nn].penisdesc rubs against your <<pussy>>. The sensation proves too much, and <<he>> ejaculates onto your labia. <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 5, rngType: "canWash"}`>> <<case 4 5 6>> <<He>> rubs <<his>> $NPCList[_nn].penisdesc against your <<pussy>> and climaxes, sending white streams of semen onto your labia. <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 5, rngType: "canWash"}`>> <<case 7>> <<He>> moans and strokes <<his>> $NPCList[_nn].penisdesc as <<he>> cums, sending thick ropes of semen onto your <<pussy>> and ass. <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<bottomejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 5, rngType: "canWash"}`>> <</switch>> <<elseif $NPCList[_nn].penis is "vaginaimminent" and playerChastity("vagina")>> <<He>> moans as <<he>> cums, ejaculating over your $worn.genitals.name. "I'm gonna find whoever has the key," <<he>> gasps. "Then fuck you until you can't walk." <<elseif $NPCList[_nn].penis is "vaginaimminent">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> cums before <<he>> can penetrate your <<pussy>>, ejaculating on your labia. "I deserve a medal for restraint," <<he>> says. "Your unguarded pussy was right there, teasing me." <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 15, rngType: "canWash"}`>> <<case 4 5 6>> <<He>> tries to push <<his>> $NPCList[_nn].penisdesc into you as <<he>> approaches <<his>> peak, but <<his>> body's spasms betray <<him>>. <<He>> ejaculates, sending white streams of semen onto your labia. "Fuck," <<he>> says. "So close." <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 15, rngType: "canWash"}`>> <<case 7>> <<He>> grasps your hips for purchase and tries to bury <<his>> $NPCList[_nn].penisdesc in your <<pussy>>, but cums too soon. Thick ropes of semen cover your labia and drip over your <<bottom>>. "You're almost too hot." <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<bottomejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 15, rngType: "canWash"}`>> <</switch>> <<elseif $NPCList[_nn].penis is "vagina">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> moans and thrusts deep into your <<pussy>> as <<he>> cums. <<His>> $NPCList[_nn].penisdesc pulses as warm semen fills you. <<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vagina" "semen">> <<recordVaginalSperm "pc" $NPCList[_nn] "human">> <<case 4 5 6>> <<He>> grasps your shoulders and pulls your body onto <<his>> $NPCList[_nn].penisdesc as <<he>> cums. Warm semen fills your <<pussy>>, leaving you breathless. <<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vagina" "semen">> <<recordVaginalSperm "pc" $NPCList[_nn] "human">> <<case 7>> <<He>> convulses and pounds your crotch as <<he>> cums, sending thick waves of semen into your <<pussy>>. It drips down your thighs. <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<vaginalejacstat>><<set $hygiene += 500>><<bodyliquid "vagina" "semen">> <<thighejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <<recordVaginalSperm "pc" $NPCList[_nn] "human">> <</switch>> <<elseif $NPCList[_nn].penis is "cheeks" and playerChastity()>> <<He>> gasps as <<he>> cums, ejaculating over your $worn.genitals.name. "That fucking device," <<he>> gasps. "Your ass deserves such a pounding." <<elseif $NPCList[_nn].penis is "cheeks">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> shakes as <<he>> cums, <<his>> $NPCList[_nn].penisdesc erupting over your <<bottom>>. <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 4 5 6>> <<He>> grasps your thighs as <<he>> pushes <<his>> $NPCList[_nn].penisdesc against your <<bottom>> and ejaculates between your cheeks. <!-- Really should be onto PCs back given position. Or hair maybe. Esp next one --> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 7>> <<He>> squeezes your cheeks together and moans as <<he>> cums, ejaculating a massive load that covers your <<bottom>>. "You're so fucking hot." <<bottomejacstat>><<ejacstat>><<set $hygiene += 1000>><<bodyliquid "bottom" "semen" 2>> <</switch>> <<elseif $NPCList[_nn].penis is "anusentrance" and playerChastity("anus")>> <<He>> gasps as <<he>> cums, ejaculating over your $worn.genitals.name. "Whoever has the key," <<he>> gasps. "Owes me an ass fucking." <<elseif $NPCList[_nn].penis is "anusentrance">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> pinches your <<bottom>> as <<he>> rubs <<his>> cock against it. <<He>> ejaculates, semen spurting over your cheeks. <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 4 5 6>> <<He>> cums against your <<bottom>> with a shudder. <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 7>> <<He>> moans as <<he>> cums against your <<bottom>>, sending thick ropes of semen onto your cheeks. <<bottomejacstat>><<ejacstat>><<set $hygiene += 1000>><<bodyliquid "bottom" "semen" 2>> <</switch>> <<recordSperm `{genital: "anus", target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 5, rngType: "canWash"}`>> <<elseif $NPCList[_nn].penis is "anusimminent" and playerChastity("anus")>> <<He>> moans as <<he>> cums, ejaculating over your $worn.genitals.name. "That ass will be ravaged," <<he>> gasps. "Once I get this thing off you." <<elseif $NPCList[_nn].penis is "anusimminent">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> tries to thrust into your <<bottom>> as <<he>> approaches <<his>> peak, but cums too soon. Semen splatters against your cheeks. "Fuck. Sometimes you're just too hot." <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 4 5 6>> <<He>> grasps your hips for purchase and tries to fuck your <<bottom>>, but is overcome by sensation and ejaculates over your cheeks. <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 7>> <<His>> $NPCList[_nn].penisdesc presses against your <<bottom>> as <<he>> cums. Thick ropes of semen erupt over your cheeks. <<bottomejacstat>><<ejacstat>><<set $hygiene += 1000>><<bodyliquid "bottom" "semen" 2>> <</switch>> <<recordSperm `{genital: "anus", target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 15, rngType: "canWash"}`>> <<elseif $NPCList[_nn].penis is "anus">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> moans and thrusts <<his>> $NPCList[_nn].penisdesc deep into your <<bottom>> as <<he>> cums. You gasp as you take <<his>> entire length, <<his>> warm semen filling you. <<analejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "anus" "semen">> <<recordAnusSperm "pc" $NPCList[_nn] "human">> <<case 4 5 6>> <<He>> grasps your shoulders and pulls you against <<his>> $NPCList[_nn].penisdesc as <<he>> cums. <<His>> cock twitches as it fills you. <<analejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "anus" "semen">> <<recordAnusSperm "pc" $NPCList[_nn] "human">> <<case 7>> <<He>> convulses and, with a final thrust, cums in your ass. Thick waves of semen pump into you. It drips down your thighs. <<analejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "anus" "semen">> <<thighejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <<recordAnusSperm "pc" $NPCList[_nn] "human">> <</switch>> <<elseif $NPCList[_nn].penis is "chest">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> thrusts between your <<breasts>> as <<he>> ejaculates, covering your chest in semen. <<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <<case 4 5 6>> <<He>> rubs <<his>> penis against your <<breasts>> and shudders in orgasm. <<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <<case 7>> <<He>> grasps your neck as <<he>> bears down on your <<breasts>>, moaning as <<he>> cums. Semen erupts over your <<breasts>> and covers your <<if $position is "missionary">>face<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">><<else>>stomach<<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">><</if>>. "I think you'll need a bath." <<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <</switch>> <<elseif $NPCList[_nn].penis is "mouthentrance">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> cups your chin with one hand and pushes your lips against <<his>> $NPCList[_nn].penisdesc. The sensation proves too much, and <<he>> ejaculates over your face. <<case 4 5 6>> <<He>> presses <<his>> $NPCList[_nn].penisdesc against your cheek and ejaculates over your face. <<case 7>> <<He>> grasps your hair and rubs your face against <<his>> $NPCList[_nn].penisdesc. Thick ropes of cum cover your face and push past your closed lips. "You're so cute. My favourite possession." <<cumswallow `$NPCList[_nn].type` null `npcSemenMod($NPCList[_nn].penissize)`>> <</switch>> <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <<elseif $NPCList[_nn].penis is "mouthimminent">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> grasps your hair and tries to force <<his>> $NPCList[_nn].penisdesc past your lips, but cums too soon. Semen erupts onto your face. "Sometimes, I think you're too hot." <<case 4 5 6>> <<He>> tries to penetrate your mouth, but cums too early. It drips down your lips and chin. "I couldn't hold on long enough." <<case 7>> <<He>> shudders as <<he>> approaches <<his>> peak. <<He>> grasps your hair and tries to thrust <<his>> $NPCList[_nn].penisdesc into your mouth, but <<his>> body trembles too much. Thick ropes of cum cover your cheeks and chin. Some fluid makes it past your lips. <<cumswallow `$NPCList[_nn].type` null `npcSemenMod($NPCList[_nn].penissize)`>> <</switch>> <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <<elseif $NPCList[_nn].penis is "mouth">> <!-- this is picking up women NPCs...? --> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> grasps your chin with one hand and hair with the other, thrusting <<his>> $NPCList[_nn].penisdesc deep into your mouth as <<he>> cums. Semen streams down your throat and fills your mouth. <<case 4 5 6>> <<He>> grasps the back of your head and moans, <<his>> $NPCList[_nn].penisdesc filling your mouth with semen. <<case 7>> <<He>> grasps the back of your head, <<his>> $NPCList[_nn].penisdesc violating your mouth with savage thrusts. Semen streams down your throat, then fills your mouth and covers your face as <<he>> pulls out. "It's your fault if I lose control. You have that effect on me." <<faceejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <</switch>> <<oralejacstat>><<ejacstat>><<cumswallow `$NPCList[_nn].type` null `npcSemenMod($NPCList[_nn].penissize)`>> <<elseif $NPCList[_nn].penis is "feet">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> moans as <<he>> cums between your feet, ejaculating over them. <<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "feet" "semen">> <<case 4 5 6>> <<He>> cums between your feet, leaving them slick with semen. <<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "feet" "semen">> <<case 7>> <<He>> moans and attacks your feet with savage thrusts. <<His>> ejaculate arcs as high as your thighs. <<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "feet" "semen">> <<thighejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <</switch>> <<elseif $NPCList[_nn].penis is "leftarm" and $NPCList[_nn].penis is "rightarm">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> moans as <<he>> cums, penis pulsing in your hands and covering them both in cum. "You're good with your hands." <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "semen">><<bodyliquid "rightarm" "semen">> <<case 4 5 6>> <<He>> cums onto your hands, leaving them slick with semen. <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "semen">><<bodyliquid "rightarm" "semen">> <<case 7>> <<He>> spasms, moans, and thrusts against your hands, thick streams of cum erupting from <<his>> $NPCList[_nn].penisdesc and splattering over your face. "You're a fine <<wife>>." <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "semen">><<bodyliquid "rightarm" "semen">> <<faceejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <</switch>> <<elseif $NPCList[_nn].penis is "leftarm">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> moans as <<he>> cums, <<his>> hot $NPCList[_nn].penisdesc ejaculating over your hand. "You should clean up. You can't work with a hand like that." <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "semen">> <<case 4 5 6>> <<He>> cums onto your hand, slickening your fingers. "You can't work like that. You should wash up." <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "semen">> <<case 7>> <<He>> spasms and moans, shooting thick streams of cum and splattering your <<breasts>> in the process. "Sorry about the mess," <<he>> pants. "Go get cleaned up." <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "semen">> <<chestejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <</switch>> <<elseif $NPCList[_nn].penis is "rightarm">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> moans as you work <<his>> shaft with your right hand. You give <<his>> $NPCList[_nn].penisdesc a final squeeze, and <<he>> shudders into orgasm, covering your hand in warm semen. "You should clean yourself up," <<he>> says. "You can't work like that." <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "rightarm" "semen">> <<case 4 5 6>> <<He>> cums onto your hand, slickening your fingers. "You can't work like that. You should wash up." <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "rightarm" "semen">> <<case 7>> <<He>> moans as thick ropes of semen erupt from <<his>> $NPCList[_nn].penisdesc, covering your hand. "Good job," <<he>> pants. "But make sure you clean up the mess." <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "rightarm" "semen">> <</switch>> <<elseif $NPCList[_nn].penis is 0>> <<switch random(1, 4)>> <<case 1>> <<He>> moans as <<he>> works <<his>> shaft and, giving <<his>> cock a final squeeze, ejaculates onto your tummy. "Marking my territory. Trespassers will pay." <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <<case 2>> <<He>> rubs <<his>> $NPCList[_nn].penisdesc as <<he>> approaches <<his>> peak. It erupts over your face. "You're a mess," <<he>> pants. "Get yourself cleaned up." <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <<case 3>> <<He>> strokes <<his>> $NPCList[_nn].penisdesc and ejaculates over your <<bottom>>. <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 4>> <<He>> strokes <<his>> penis and moans, ejaculating onto your <<breasts>>. <<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <</switch>> <<elseif $NPCList[_nn].penis is "otheranus">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> moans as you fuck <<his>> ass, <<his>> ejaculate spraying onto <<his>> own stomach. "You're such a good <<wife>>." <<case 4 5>> <<He>> whimpers as you pound <<his>> ass, moaning in pleasure as <<he>> ejaculates onto the ground. <<He>> comes to <<his>> senses and looks a bit ashamed. "I let my guard down. I shouldn't let that happen. What if we're attacked?" <<case 6 7>> <<He>> sighs as <<he>> ejaculates onto <<his>> own chest. "I don't want you to ever leave." <</switch>> <<elseif ($NPCList[_nn].penis is "otheranusfrot" or $NPCList[_nn].penis is "otheranusentrance" or $NPCList[_nn].penis is "otheranusimminent") and playerChastity("penis")>> <<He>> moans as <<he>> cums, ejaculating over your $worn.genitals.name. "All the ways I would fuck you," <<he>> gasps. "If not for that chastity device." <<elseif $NPCList[_nn].penis is "otheranusfrot" or $NPCList[_nn].penis is "otheranusentrance" or $NPCList[_nn].penis is "otheranusimminent">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> reaches behind you and grasps your <<bottom>>, helping you thrust against <<his>> cheeks. You feel <<his>> body shudder in orgasm. "Next time," <<he>> gasps. "I want you to fuck my ass properly." <<case 4 5>> <<He>> moans and ejaculates onto the ground as you thrust against <<his>> ass. You leave <<him>> panting. <<case 6 7>> <<He>> sighs and ejaculates onto <<his>> own chest. <</switch>> <!-- Special case male PC being orally serviced by male NPC with no other contact --> <<elseif $NPCList[_nn].mouth is "penis">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> cums as you fuck <<his>> mouth, gasping against your cock. "Don't forget," <<he>> says. "You're mine forever." <<case 4 5>> <<He>> cums on the ground as you fuck <<his>> mouth, leaving a pool beneath <<him>>. <<case 6 7>> <<He>> grasps your <<bottom>> and drives your <<penis>> deeper into <<his>> mouth. <<He>> trembles and ejaculates onto <<his>> own chest. <</switch>> <<elseif $NPCList[_nn].penis is "othermouth">> <<He>> shakes with arousal as <<he>> cums, wiping <<his>> wet face clean on your body. <</if>> <<if $NPCList[_nn].penis isnot "none" and !$NPCList[_nn].penisdesc.includes("strap-on") and _condomResult is "leaked">> Despite wearing a condom, it was too damaged to stop the cum. <</if>> <br><br> <<else>> <<if _condomResult is "contained">> <<genericCondomEjaculation>> <<elseif $NPCList[_nn].penis is "idle">> <<He>> groans as a wet patch forms on <<his>> trousers. You barely stifle a laugh at the pathetic display, but any mirth is soon driven from your mind by dread. <<elseif $NPCList[_nn].penis is "thighs">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> shakes as <<he>> cums, pulling <<his>> cock out and ejaculating onto the backs of your thighs. <<thighejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <<case 4 5 6>> <<He>> grasps your thighs and thrusts <<his>> $NPCList[_nn].penisdesc hard between them as <<his>> cum shoots onto your tummy. <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <<case 7>> <<He>> moans as <<he>> cums, ejaculating a massive load that covers your thighs and tummy. "You're mine. Don't forget it." <<thighejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <<tummyejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <</switch>> <<elseif $NPCList[_nn].penis is "vaginaentrance" and playerChastity("vagina")>> <<He>> gasps as <<he>> cums, ejaculating over your $worn.genitals.name. "My <<wife>> deserves to have <<pher>> womb filled," <<he>> says. "If only I could get this thing off." <<elseif $NPCList[_nn].penis is "vaginaentrance">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> thrusts against your clit and labia, <<his>> $NPCList[_nn].penisdesc twitching and erupting with semen. <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 5, rngType: "canWash"}`>> <<case 4 5 6>> <<He>> rubs <<his>> $NPCList[_nn].penisdesc against your <<pussy>> with savage thrusts, each less coordinated than the last as <<he>> approaches <<his>> peak. <<He>> shudders into orgasm. <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 5, rngType: "canWash"}`>> <<case 7>> <<He>> moans as <<he>> rubs <<his>> $NPCList[_nn].penisdesc against your <<pussy>>. Thick ropes of semen cover your crotch and <<bottom>>. <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<bottomejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 5, rngType: "canWash"}`>> <</switch>> <<elseif $NPCList[_nn].penis is "vaginaimminent" and playerChastity("vagina")>> <<He>> moans as <<he>> cums, ejaculating over your $worn.genitals.name. "If only I could find the key," <<he>> gasps. "I'd give that pussy a proper fucking." <<elseif $NPCList[_nn].penis is "vaginaimminent">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> tries to thrust into your <<pussy>>, but cums too soon, ejaculating onto your labia. <span class="red"><<He>> slaps your <<bottom>> in frustration.</span> <<gstress>><<gtrauma>><<gpain>><<violence 6>><<bruise bottom>><<hitstat>> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 15, rngType: "canWash"}`>> <<case 4 5 6>> <<He>> grasps your hips for purchase and tries to violate your <<pussy>>, but it's too late. <<His>> semen covers your labia. "Sometimes," <<he>> gasps. "It's like you're too hot." <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 15, rngType: "canWash"}`>> <<case 7>> <<He>> moans as <<he>> approaches <<his>> peak, <<his>> $NPCList[_nn].penisdesc twitching against your <<pussy>>. Thick ropes of semen shoot over your labia and <<bottom>>. "You should get cleaned up," <<he>> pants, shutting <<his>> eyes for a moment. <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<bottomejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 15, rngType: "canWash"}`>> <</switch>> <<elseif $NPCList[_nn].penis is "vagina">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> pulls your hair and thrusts <<his>> $NPCList[_nn].penisdesc deep into your <<pussy>> as <<he>> cums. <<He>> holds you there a moment as warm semen fills you. <<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vagina" "semen">> <<recordVaginalSperm "pc" $NPCList[_nn] "human">> <<case 4 5 6>> <<He>> grasps your throat and pounds <<his>> $NPCList[_nn].penisdesc into you as <<he>> cums. Semen fills your <<pussy>> as you gasp for air. <<gstress>><<gtrauma>><<gpain>><<violence 3>><<bruise neck>><<hitstat>> <<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vagina" "semen">> <<recordVaginalSperm "pc" $NPCList[_nn] "human">> <<case 7>> <<He>> convulses as <<he>> thrusts into your <<pussy>>, <<his>> pelvis rubbing against your <<clit>> and $NPCList[_nn].penisdesc sending thick waves of cum into your body. Semen drips down your thighs. "I need to train you to hold cum better." <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<thighejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <<recordVaginalSperm "pc" $NPCList[_nn] "human">> <</switch>> <<elseif $NPCList[_nn].penis is "cheeks">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> shakes as <<he>> cums, <<his>> $NPCList[_nn].penisdesc erupting semen over your <<bottom>>. <<He>> gives you a light spank. <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 4 5 6>> <<He>> pinches your <<bottom>>, then grasps your hips and pulls you closer, ejaculating over your cheeks. <!-- Really should be onto PCs back given position. Or hair maybe. Esp next one --> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 7>> <<He>> squeezes your <<bottom>> cheeks together and moans as <<he>> cums, ejaculating a massive load. "You're a mess," <<he>> gasps. "Go clean up." <<bottomejacstat>><<ejacstat>><<set $hygiene += 1000>><<bodyliquid "bottom" "semen" 2>> <</switch>> <<elseif $NPCList[_nn].penis is "anusentrance" and playerChastity("anus")>> <<He>> gasps as <<he>> cums, ejaculating over your $worn.genitals.name. "I'm going to ravage your ass," <<he>> says. "I just need to find the key." <<elseif $NPCList[_nn].penis is "anusentrance">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> <span class="blue">slaps your <<bottom>></span> and rubs <<his>> $NPCList[_nn].penisdesc against you. <<He>> trembles as <<he>> cums, semen splattering onto your cheeks. <<gstress>><<gtrauma>><<gpain>><<violence 3>><<bruise bottom>><<hitstat>> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 4 5 6>> <<He>> rubs <<his>> $NPCList[_nn].penisdesc between your <<bottom>> cheeks. You feel it twitch as <<he>> cums, followed by warm semen on your skin. <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 7>> <<He>> moans as <<his>> $NPCList[_nn].penisdesc erupts between your <<bottom>> cheeks, covering it with thick ropes of semen. "I went easy on you," <<he>> pants. "I wonder how you'd have handled my entire length inside." <<bottomejacstat>><<ejacstat>><<set $hygiene += 1000>><<bodyliquid "bottom" "semen" 2>> <</switch>> <<recordSperm `{genital: "anus", target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 5, rngType: "canWash"}`>> <<elseif $NPCList[_nn].penis is "anusimminent" and playerChastity("anus")>> <<He>> gasps as <<he>> cums, ejaculating over your $worn.genitals.name. "When I find the key," <<he>> pants. "Your ass is getting fucked hard." <<elseif $NPCList[_nn].penis is "anusimminent">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> grasps your hips for purchase and tries to drive <<his>> $NPCList[_nn].penisdesc into your <<bottom>>. <<He>> cums before <<he>> can make it, covering your cheeks with semen. <span class="red"><<He>> smacks your ass in frustration.</span> <<gstress>><<gtrauma>><<gpain>><<violence 6>><<bruise bottom>><<hitstat>> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 4 5 6>> <<He>> tries to penetrate your <<bottom>> as <<he>> shudders into orgasm, but can't control <<his>> trembling body well enough. <<His>> cock slides wide, shooting white streams of semen over your cheeks. "You're such a tease," <<he>> gasps. "Next time I'm cumming inside." <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 7>> <<He>> moans as <<his>> $NPCList[_nn].penisdesc twitches against your <<bottom>>, covering it with thick ropes of semen. "I took it easy on you. Next time you're taking my whole cock." <<bottomejacstat>><<ejacstat>><<set $hygiene += 1000>><<bodyliquid "bottom" "semen" 2>> <</switch>> <<recordSperm `{genital: "anus", target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 15, rngType: "canWash"}`>> <<elseif $NPCList[_nn].penis is "anus">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> moans as <<he>> cums, <<his>> $NPCList[_nn].penisdesc pounding your <<bottom>> without mercy. <<His>> entire length fills you, pumping warm semen deep within. <<analejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "anus" "semen">> <<recordAnusSperm "pc" $NPCList[_nn] "human">> <<case 4 5 6>> <<He>> grasps your shoulders and pulls you against <<his>> $NPCList[_nn].penisdesc as <<he>> cums, pushing <<his>> entire length into you. Semen fills you as you cry out. <<analejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "anus" "semen">> <<recordAnusSperm "pc" $NPCList[_nn] "human">> <<case 7>> <<He>> convulses and, with a final thrust, cums into your ass. Thick waves of semen pump into you. Semen drips over your thighs. "You're a mess," <<he>> gasps. "Go clean yourself up." <<analejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "anus" "semen">> <<thighejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <<recordAnusSperm "pc" $NPCList[_nn] "human">> <</switch>> <<elseif $NPCList[_nn].penis is "chest">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> rubs <<his>> $NPCList[_nn].penisdesc between your <<breasts>> as <<he>> cums, ejaculating onto them. "Don't forget who owns you." <<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <<case 4 5 6>> <<He>> grasps your hair and forces you to look at <<him>>. <<He>> continues to rub <<his>> $NPCList[_nn].penisdesc between your <<breasts>>, until <<he>> shudders into orgasm. "I want you to look at me while performing your duties as my <<wife>>." Warm semen drips down your chest. <<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <<case 7>> <<He>> grasps the back of your neck and mashes your face against <<his>> body as <<he>> cums. Semen shoots between your <<breasts>> and covers your <<if $position is "missionary">>face<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">><<else>>stomach<<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">><</if>> as you gasp for air. "Remember. You need to be there for me whenever my cock needs servicing." <<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <</switch>> <<elseif $NPCList[_nn].penis is "mouthentrance">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> rubs <<his>> $NPCList[_nn].penisdesc against your lips and shudders. Semen spurts from the tip, covering your face. "Don't forget I'm your master. Now go clean up." <<case 4 5 6>> <<He>> grasps your hair as <<he>> rubs <<his>> $NPCList[_nn].penisdesc against your face. <<He>> shudders and ejaculates. "You're a mess," <<he>> gasps. "Go clean up." <<case 7>> <<He>> grasps your hair tight in <<his>> fist as <<he>> rubs <<his>> $NPCList[_nn].penisdesc against your face. <span class="pink">You splutter and gag as thick ropes of cum push past your lips and into your mouth.</span> "You should have swallowed. Go clean up the mess." <<cumswallow `$NPCList[_nn].type` null `npcSemenMod($NPCList[_nn].penissize)`>> <</switch>> <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <<elseif $NPCList[_nn].penis is "mouthimminent">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> holds your hair at the nape your neck as cum erupts from <<his>> $NPCList[_nn].penisdesc. <<case 4 5 6>> <<He>> tries to push <<his>> $NPCList[_nn].penisdesc between your lips. The sensation is too much for <<him>>, and <<he>> cums early. "Fuck," <<he>> gasps, frustrated. "I wanted to feel your lips around me." <<case 7>> <<He>> grasps the back of your head as <<his>> $NPCList[_nn].penisdesc presses against your mouth. <<He>> can't hold on any longer. <<He>> shudders as thick ropes of cum erupt onto your face, some pushing past your lips and into your mouth. <<cumswallow `$NPCList[_nn].type` null `npcSemenMod($NPCList[_nn].penissize)`>> <</switch>> <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <<elseif $NPCList[_nn].penis is "mouth">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> grasps your chin with one hand and your hair with the other, shoving <<his>> $NPCList[_nn].penisdesc down your throat as <<he>> cums. You gag as <<his>> semen pumps into you, forcing you to swallow. <<case 4 5 6>> <<He>> grasps your throat as <<his>> $NPCList[_nn].penisdesc trembles in your mouth. You gag as cum surges down your throat. <<if !_ejacStressDisplay>><<gstress>><</if>><<gtrauma>><<gpain>><<violence 3>><<bruise neck>><<hitstat>> <<case 7>> <<He>> grasps your hair with both hands, <<his>> $NPCList[_nn].penisdesc thrusting down your throat as <<he>> cums. Semen streams down your throat, then fills your mouth and covers your face as <<he>> pulls out. "I'm your protector," <<he>> pants. "You should show me respect." <<faceejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <</switch>> <<oralejacstat>><<ejacstat>><<cumswallow `$NPCList[_nn].type` null `npcSemenMod($NPCList[_nn].penissize)`>> <<elseif $NPCList[_nn].penis is "feet">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> pushes your feet together and thrusts <<his>> $NPCList[_nn].penisdesc between them as <<he>> cums, leaving them slick with ejaculate. <<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "feet" "semen">> <<case 4 5 6>> <<He>> moans as <<he>> cums on your feet, leaving them slick with semen. <<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "feet" "semen">> <<case 7>> <<He>> moans as <<he>> thrusts <<his>> $NPCList[_nn].penisdesc between your feet. Semen shoots onto your legs. <<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "feet" "semen">> <<thighejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <</switch>> <<elseif $NPCList[_nn].penis is "leftarm" and $NPCList[_nn].penis is "rightarm">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> moans as <<he>> cums, <<his>> $NPCList[_nn].penisdesc pulsing between your hands. <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "semen">><<bodyliquid "rightarm" "semen">> <<case 4 5 6>> <<He>> cums on your hands, leaving them slick with semen. <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "semen">><<bodyliquid "rightarm" "semen">> <<case 7>> <<He>> thrusts <<his>> $NPCList[_nn].penisdesc between your hands harder as <<he>> cums. Semen shoots through the air, splattering your face. "You're a mess," <<he>> gasps. "My fault, but you need to clean up." <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "semen">><<bodyliquid "rightarm" "semen">> <<faceejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <</switch>> <<elseif $NPCList[_nn].penis is "leftarm">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> moans as <<he>> cums, <<his>> $NPCList[_nn].penisdesc sliding between your fingers and leaving them slick with semen. <<case 3 4>> <<He>> spasms as thick streams of semen erupt from <<his>> $NPCList[_nn].penisdesc. <<His>> convulsions send it sailing through the air. It splatters onto your face. <<faceejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <<case 6 7>> <<He>> spasms and moans as thick streams of cum shoot onto your <<breasts>>. "I need to train you to control cock better." <<chestejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <</switch>> <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "semen">> <<elseif $NPCList[_nn].penis is "rightarm">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> moans as you work <<his>> shaft with your right hand. You give <<him>> a final squeeze, and <<he>> cums, <<his>> whole body shuddering. <<case 4 5>> <<He>> spasms and moans, thick streams of cum shooting from <<his>> $NPCList[_nn].penisdesc and landing on your face. <<chestejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <<case 6 7>> <<He>> moans as <<he>> cums in your hand, <<his>> whole body trembling. "Good <<girl>>," <<he>> gasps. "See? Your duties aren't so difficult." <</switch>> <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "rightarm" "semen">> <<elseif $NPCList[_nn].penis is 0>> <<switch random(1, 5)>> <<case 1>> <<He>> moans as <<he>> works <<his>> shaft and, giving <<his>> $NPCList[_nn].penisdesc a final squeeze, ejaculates onto your tummy. "Don't forget. You're mine whenever I want you." <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <<case 2>> <<He>> rubs <<his>> $NPCList[_nn].penisdesc and aims at your face, covering it with semen. "Your place is on your knees, servicing my cock. Don't forget it." <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <<case 3>> <<He>> strokes <<his>> $NPCList[_nn].penisdesc and ejaculates onto your <<bottom>>. "That's warm up for next time." <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 4>> <<He>> strokes <<his>> $NPCList[_nn].penisdesc and moans as <<he>> ejaculates onto your <<breasts>>. "Go clean up this mess." <<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <<case 5>> <<He>> moans and shudders as cum flies all over your body. <<His>> muscles weakening, <<he>> leans on your shoulder for support. <<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <<tummyejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <<hairejacstat>><<set $hygiene += 500>><<bodyliquid "hair" "semen">> <</switch>> <<elseif $NPCList[_nn].penis is "otheranus">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> moans as you fuck <<his>> ass, semen erupting from <<his>> $NPCList[_nn].penisdesc and pooling on the ground beneath <<him>>. "Don't think," <<he>> gasps, "that cumming from having your cock in my ass means I can't protect you." <<case 4 5>> <<He>> moans as you pound <<his>> ass, <<his>> ejaculate covering the ground beneath <<him>>. <<case 6 7>> <<He>> moans as you fuck <<his>> ass, <<his>> semen arcing onto <<his>> own chest. <</switch>> <<elseif ($NPCList[_nn].penis is "otheranusfrot" or $NPCList[_nn].penis is "otheranusentrance" or $NPCList[_nn].penis is "otheranusimminent") and playerChastity("penis")>> <<He>> gasps as <<he>> cums, ejaculating over your $worn.genitals.name. "Once I get the key," <<he>> pants. "Your ass is gonna get ravaged." <<elseif $NPCList[_nn].penis is "otheranusfrot" or $NPCList[_nn].penis is "otheranusentrance" or $NPCList[_nn].penis is "otheranusimminent">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> moans as you fuck <<his>> cheeks. <<He>> reaches behind you and grasps your <<bottom>>, rubbing against you as <<he>> climaxes. <<He>> ejaculates onto the ground. "Fuck me properly next time," <<he>> pants. "Don't be shy." <<case 4 5>> <<He>> moans as you rub against <<his>> ass. <<His>> $NPCList[_nn].penisdesc erupts onto the ground in front of <<him>>. "You're a tease," <<he>> gasps. "I couldn't take the anticipation." <<case 6 7>> <<He>> sighs as <<his>> $NPCList[_nn].penisdesc ejaculates onto <<his>> own chest. "That was fine," <<he>> pants. "But next time, you're getting penetrated." <</switch>> <!-- Special case male PC being orally serviced by male NPC with no other contact --> <<elseif $NPCList[_nn].mouth is "penis">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> cums as you fuck <<his>> mouth, <<his>> whole body shuddering as <<his>> semen shoots from <<his>> $NPCList[_nn].penisdesc and onto the floor beneath <<him>>. <<case 4 5>> <<He>> cums on the ground as you fuck <<his>> mouth. <<He>> pulls away. "I'm done. For now." <<case 6 7>> <<He>> grasps your <<print ($player.ballsExist ? "balls" : "pussy")>> and drives your cock down <<his>> throat. <<He>> ejaculates on <<his>> own chest as <<he>> shudders around your length. <</switch>> <<elseif $NPCList[_nn].penis isnot "none">> <<He>> shakes with arousal as <<he>> cums. <</if>> <<if $NPCList[_nn].penis isnot "none" and !$NPCList[_nn].penisdesc.includes("strap-on") and _condomResult is "leaked">> Despite wearing a condom, it was too damaged to stop the cum. <</if>> <br><br> <</if>> <!-- Finishing moves for consensual with low anger or non-consensual with damage or high anger --> <<if _args[0] isnot "short">> <<if $consensual is 1 and $enemyanger lte 0>> <<switch random(1, 5)>> <<case 1 2>> <<He>> strokes you, <span class="green">making you feel warm inside.</span> "I hope you know how much I need you here." <<lstress>><<ltrauma>><<lpain>><<violence -3>> <br><br> <<case 3 4>> <<He>> strokes your hair, <span class="green">making you feel warm inside.</span> "Never ever leave me." <<lstress>><<ltrauma>><<lpain>><<violence -3>> <br><br> <<case 5>> <<He>> brushes your cheek with <<his>> hand. "You're so <<if $player.gender_appearance is "m">>handsome<<else>>beautiful<</if>> it makes me hurt." <span class="green">Your face flushes with pleasure.</span> <<lstress>><<ltrauma>><<lpain>><<violence -3>> <br><br> <</switch>> <br><br> <<elseif $consensual is 0 and $enemyhealth lte ($enemyhealthmax / 10) * 7.5>> Overcome by anger, <<he>> <span class="red">punches you.</span> "I expect your compliance," <<he>> snarls. "Defy me again and I might leave you naked in the woods for the wolves." <<gstress>><<gtrauma>><<gpain>><<violence 6>> <br><br> <<elseif $consensual is 0 and $enemyhealth lte ($enemyhealthmax / 10) * 8.5>> <<He>> pins your arms back and <span class="pink">slaps your face.</span> "You need to learn your place. For your own good. Don't resist me." <<gstress>><<gtrauma>><<gpain>><<violence 3>> <br><br> <<elseif $consensual is 0 and $enemyhealth lte ($enemyhealthmax / 10) * 9.5>> <<He>> <span class="pink">slaps your face.</span> "You need a reminder. You're here for my pleasure. Don't fight it." <<gstress>><<gtrauma>><<gpain>><<violence 2>> <br><br> <</if>> <</if>> <</widget>><<widget "ejaculation-gloryhole">> <<set $ejaculating to 1>> <<if $NPCList[0].pronoun is "m">> <<set $pronoun to "m">> <</if>> <<if $NPCList[0].pronoun is "f">> <<set $pronoun to "f">> <</if>> <<if $NPCList[0].pronoun is "i">> <<set $pronoun to "i">> <</if>> <<if $NPCList[0].pronoun is "n">> <<set $pronoun to "n">> <</if>> <<if $NPCList[0].pronoun is "t">> <<set $pronoun to "t">> <</if>> <<if $enemytype is "man">> <<set $NPCList[0].intro to 1>> <<else>> <<set $pronoun to "i">> <</if>> <!-- Gloryhole encounter assumes NPC cannot reach or see PC and vice versa. Assumes NPCs believe PC may have following combat. Assumes all other forms of finishing in place and encounters can be either consens or non-consens. Non-consens encounters assume PC is restrained to hole with no arms available, though genital encounters were left in place in case of future use--> <!-- Currently non-consens gloryhole is oral-only and so focus is on these cases; the rear-body non-consens is captured by $position="wall". As game changes this can be reviewed --> <!-- Consens gloryhole has all combat options available currently. --> /% DEBUG POS:$position POS2:$punishmentposition<br> %/ /% DEBUG NPCF $NPCList[0].vagina NPCM $NPCList[0].penis<br> %/ <!-- Female Gender NPC1 at WALL --> <<if $NPCList[0].gender is "f">> <<if $consensual is 1>> <<if $NPCList[0].vagina is "footjob">> <<He>> gasps as <<he>> cums. <br><br> <<elseif $NPCList[0].vagina is "feet">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> groans as <<he>> cums; ejaculate covers your feet. <br><br> <<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "feet" "goo">> <<case 4 5 6>> <<He>> quietly cums on your feet, slickening them with ejaculate. <br><br> <<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "feet" "goo">> <<case 7>> <<He>> grunts and rubs <<his>> cunt on your feet as <<he>> cums, splattering your feet and legs with ejaculate. <br><br> <<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "feet" "goo">> <<thighejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "goo">> <</switch>> <<elseif $NPCList[0].vagina is "leftarm" or $NPCList[0].vagina is "rightarm">> <<switch random(1, 5)>> <<case 1 2>> <<He>> sighs as you finish with <<his>> pussy, shaking <<his>> thighs together against your hand as <<his>> body convulses. <br><br> <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "goo">> <<case 3 4>> <<He>> cums silently, cunt twitching against your hand uncontrollably. <br><br> <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "goo">> <<case 5>> <<He>> screams, grabbing your hand and fucking <<his>> pussy with your fingers. Your fingers are soaked in ejaculate. <br><br> <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "goo">> <</switch>> <<elseif $NPCList[_nn].vagina is "leftDildo">> <<switch random(1, 5)>> <<case 1 2>> <<He>> ?orgasmMoans as <<his>> body convulses, <<his>> thighs trembling against your $currentSexToyLeft.name. <<case 3 4>> <<His>> blush deepens and <<his>> mouth gapes as <<he>> cums against your $currentSexToyLeft.name. <<case 5>> <<He>> ?orgasmMoans and grasps your arm as your $currentSexToyLeft.name brings <<him>> to orgasm. <<His>> juices soak your $currentSexToyLeft.name. <</switch>> <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "goo">> <<elseif $NPCList[_nn].vagina is "rightDildo">> <<switch random(1, 5)>> <<case 1 2>> <<He>> ?orgasmMoans as <<his>> body convulses, <<his>> thighs trembling against your $currentSexToyRight.name. <<case 3 4>> <<His>> blush deepens and <<his>> mouth gapes as <<he>> cums against your $currentSexToyRight.name. <<case 5>> <<He>> ?orgasmMoans and grasps your arm as your $currentSexToyRight.name brings <<him>> to orgasm. <<His>> juices soak your $currentSexToyRight.name. <</switch>> <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "rightarm" "goo">> <<elseif $NPCList[_nn].vagina is "leftDildoAnus">> <<switch random(1, 5)>> <<case 1 2>> <<He>> ?orgasmMoans as <<his>> body convulses, <<his>> thighs trembling against your $currentSexToyLeft.name. <<case 3 4>> <<His>> blush deepens and <<his>> mouth gapes as <<he>> cums against your $currentSexToyLeft.name. <<case 5>> <<He>> ?orgasmMoans and grasps your arm as your $currentSexToyLeft.name brings <<him>> to orgasm. <</switch>> <<handejacstat>><<ejacstat>><<set $hygiene += 500>> <<elseif $NPCList[_nn].vagina is "rightDildoAnus">> <<switch random(1, 5)>> <<case 1 2>> <<He>> ?orgasmMoans as <<his>> body convulses, <<his>> thighs trembling against your $currentSexToyRight.name. <<case 3 4>> <<His>> blush deepens and <<his>> mouth gapes as <<he>> cums against your $currentSexToyRight.name. <<case 5>> <<He>> ?orgasmMoans and grasps your arm as your $currentSexToyRight.name brings <<him>> to orgasm. <</switch>> <<handejacstat>><<ejacstat>><<set $hygiene += 500>> <<elseif $NPCList[0].vagina is "vagina">> <<switch random(1, 5)>> <<case 1 2>> <<He>> groans as <<he>> cums, dragging <<his>> wet pussy across yours. "That was so good." <br><br> <<thighejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "goo">> <<case 3 4>> <<He>> moans as <<he>> grinds downs hard on your <<pussy>>. <br><br> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "goo">> <<case 5>> <<He>> screams, mashing <<his>> crotch against the wall. Ejaculate streams from <<his>> pussy, drenching your exposed legs. <<He>> giggles, "I hope I didn't make too much of a mess." <br><br> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "goo">> <<thighejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "goo">> <</switch>> <<elseif $NPCList[0].vagina is "othermouth">> <<He>> shakes with arousal as <<he>> cums, withdrawing <<his>> face from the hole. <br><br> <<elseif $NPCList[0].vagina is "lefthand" or $NPCList[0].vagina is "righthand">> <<He>> moans as <<he>> cums. "You must enjoy being used like this." <br><br> <<elseif $NPCList[0].vagina is "mouthentrance" or $NPCList[0].vagina is "mouthimminent">> <<switch random(1, 5)>> <<case 1 2>> <<He>> groans and grinds <<his>> crotch against your face; you feel the wall shake as <<he>> cums on your mouth. <br><br> <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "goo">> <<case 3 4>> <<He>> ejaculates on your face, rubbing <<his>> clit against your nose as <<he>> finished. You feel cum running down your nose and lips. <br><br> <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "goo">> <<case 5>> <<He>> rubs <<his>> clit rapidly, squirting your face through the hole with cum. You feel slime running down your face and neck. <br><br> <<faceejacstat>><<ejacstat>><<set $hygiene += 1000>><<bodyliquid "face" "goo" 2>> <</switch>> <<elseif $NPCList[0].vagina is "mouth">> <<switch random(1, 5)>> <<case 1 2>> <<He>> groans and grinds <<his>> crotch roughly against your mouth; you feel the wall shake as <<he>> cums into your waiting mouth. <br><br> <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "goo">> <<case 3 4>> <<He>> ejaculates into your mouth, grinding <<his>> cunt against the wall as <<he>> finishes. You feel ejaculate running down your throat. <br><br> <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "goo">> <<case 5>> <<He>> rubs <<his>> clit rapidly, squirting into your open mouth. You feel cum running down your throat and dripping off your chin. <br><br> <<faceejacstat>><<ejacstat>><<set $hygiene += 1000>><<bodyliquid "face" "goo" 2>> <</switch>> <!-- following appear to be Male PC to Female Antagonist only? --> <<elseif $NPCList[0].vagina is "otheranus">> <<He>> shakes as <<he>> cums, driving your cock deeply into <<his>> ass as <<he>> releases a final moan. <br><br> <<elseif $NPCList[0].vagina is "penis">> <<He>> drives <<his>> pussy hard against your cock as <<he>> shudders with pleasure. <br><br> <<elseif $NPCList[0].vagina is "penisimminent" or $NPCList[0].vagina is "penisentrance">> <<if !playerHasStrapon()>> <<He>> moans as <<he>> cums on your throbbing cock. <<else>> <<He>> moans as <<he>> cums on your $worn.under_lower.name. <</if>> <br><br> <<elseif $NPCList[0].vagina is "otheranusfrot" or $NPCList[0].vagina is "otheranusentrance">> <<He>> swivels <<his>> ass against your cock as <<he>> cums. <br><br> <<elseif $NPCList[0].vagina is "frot">> <<He>> pushes against the wall, rubbing <<his>> clit hard against your cock as <<he>> cums. <br><br> <!-- Special case male PC with female NPC --> <<elseif $NPCList[0].mouth is "penis">> <<He>> cums as <<he>> sucks your <<penis>>, dropping away as <<he>> gasps for air. <br><br> <<else>> <<switch random(1, 3)>> <<case 1 2>> <<He>> groans and rubs <<his>> clit, spraying your face with ejaculate through the hole. <br><br> <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "goo">> <<case 3>> <<He>> moans as <<he>> ejaculates onto <<his>> thighs. <br><br> <</switch>> <</if>> <<else>><!-- Start non-consensual --> <<if $NPCList[0].vagina is "mouthentrance" or $NPCList[0].vagina is "mouthimminent">> <<switch random(1, 5)>> <<case 1 2>> <<He>> groans and grinds <<his>> clit roughly against your restrained face; you feel the wall shake as <<he>> cums on your mouth. <br><br> <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "goo">> <<case 3 4>> <<He>> ejaculates on your face, rubbing <<his>> clit against your nose as <<he>> finished. You feel goo running down your nose and lips. <br><br> <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "goo">> <<case 5>> <<He>> rubs <<his>> clit rapidly, squirting your face through the hole with cum. You try futilely to back away but your restraints hold you in place; you feel slime running down your face and neck. <br><br> <<faceejacstat>><<ejacstat>><<set $hygiene += 1000>><<bodyliquid "face" "goo" 2>> <</switch>> <<elseif $NPCList[0].vagina is "mouth">> <<switch random(1, 5)>> <<case 1 2>> <<He>> groans and grinds <<his>> crotch roughly against your tongue; you feel the wall shake as <<he>> cums into your waiting mouth. <br><br> <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "goo">> <<case 3 4>> <<He>> ejaculates into your mouth, grinding <<his>> cunt against the wall as <<he>> finishes. You feel ejaculate running down your throat. <br><br> <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "goo">> <<case 5>> <<He>> rubs <<his>> clit rapidly, squirting into your open mouth. You try futilely to back away but your restraints hold you in place; you feel cum running down your throat and dripping off your chin. "I hope you were thirsty, you little slut." <br><br> <<faceejacstat>><<ejacstat>><<set $hygiene += 1000>><<bodyliquid "face" "goo" 2>> <</switch>> <<else>> <<switch random(1, 3)>> <<case 1 2>> <<He>> groans and rubs <<his>> clit, spraying your restrained face with ejaculate through the hole. Goo drips from your face and down the wall. <br><br> <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "goo">> <<case 3>> <<He>> moans as <<he>> ejaculates onto <<his>> thighs. <<He>> reaches through the wall, <span class="purple">shoving <<his>> fingers down your throat.</span> You gag and retch as <<he>> laughs. "Such a disgusting little piggy." <br><br> <</switch>> <</if>> <</if>> <</if>> <!-- Male Gender NPC1 at WALL --> <<if $NPCList[0].gender is "m">> <!-- Start simplified strap-on sub-case --> <<if $NPCList[0].penisdesc.includes("strap-on")>> <<if $consensual is 0>><!-- Non-consen strap-on case --> <<switch $NPCList[0].penis>> <<case "vagina" "vaginaimminent" "vaginaentrance" "anus" "anusentrance" "anusimminent" "thighs">> <<switch random(1, 3)>> <<case 1>> <<He>> shakes as <<he>> cums, slapping you across the ass with <<his>> $NPCList[0].penisdesc. <br><br> <<case 2>> <<He>> cums loudly, then spanks your ass with <<his>> $NPCList[0].penisdesc. "Something to remember me by, whore." <br><br> <<case 3>> <<He>> cums quietly, rubbing <<his>> $NPCList[0].penisdesc along your back. <br><br> <</switch>> <<case "mouth">> <<He>> cums loudly, shoving <<his>> $NPCList[0].penisdesc deep into your throat, making you gag. Tears stream down your face. <br><br> <<case "mouthentrance" "mouthimminent" "chest" "lefthand" "righthand">> <<switch random(1, 3)>> <<case 1>> <<He>> shakes as <<he>> cums, slapping you across the face with <<his>> $NPCList[0].penisdesc. <br><br> <<case 2>> <<He>> cums loudly, then laughs, wiping <<his>> $NPCList[0].penisdesc of on your hair. <br><br> <<case 3>> <<He>> cums silently, mouth agape, rubbing <<his>> $NPCList[0].penisdesc against your cheek. <br><br> <</switch>> <<default>> <<He>> moans as <<he>> cums, rubbing <<his>> clit with the base of <<his>> $NPCList[0].penisdesc. <br><br> <</switch>> <<else>><!-- Consensual strap-on case --> <<switch $NPCList[0].penis>> <<case "vagina" "vaginaimminent" "vaginaentrance" "anus" "anusentrance" "anusimminent" "thighs">> <<He>> shakes as <<he>> cums, wiping <<his>> $NPCList[0].penisdesc off on your ass. <br><br> <<case "mouth">> <<He>> cums loudly, grinding <<his>> $NPCList[0].penisdesc against <<his>> own crotch with <<his>> hand as <<he>> cums. <br><br> <<case "mouthentrance" "mouthimminent" "chest" "lefthand" "righthand">> <<He>> cums silently, mouth agape, rubbing <<his>> $NPCList[0].penisdesc against your cheek. <br><br> <<default>> <<He>> moans as <<he>> cums, rubbing <<his>> clit with the base of <<his>> $NPCList[0].penisdesc. <br><br> <</switch>> <</if>> <<elseif $consensual is 1>> <<if _condomResult is "leaked">> <span class="red">The condom broke.</span> <<elseif _condomResult is "burst">> <span class="red">The tip of the condom bursts and rips, exposing the head of <<his>> penis.</span> <</if>> <<if _condomResult is "contained">> <<genericCondomEjaculation>> <<elseif $NPCList[0].penis is "idle">> <<He>> groans as a wet patch forms on <<his>> trousers. You laugh at the pathetic display. <br><br> <<elseif $NPCList[0].penis is "thighs">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> shakes as <<he>> cums, pulling <<his>> cock out and ejaculating onto the backs of your thighs. You feel <<him>> wipe <<his>> cock clean on your ass. <br><br> <<thighejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <<case 4 5 6>> <<He>> slams <<his>> crotch hard into your ass as <<he>> cums and ejaculates onto your tummy and the wall. <br><br> <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <<case 7>> <<He>> groan as <<he>> cums, ejaculating a massive load that covers your thighs and tummy; cum drips coolly down your legs, pooling on the ground. <br><br> <<thighejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <<tummyejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <</switch>> <<elseif $NPCList[0].penis is "vaginaentrance" and playerChastity("vagina")>> <<He>> groans as <<he>> ejaculates over your $worn.genitals.name. <<elseif $NPCList[0].penis is "vaginaentrance">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> groans as <<he>> ejaculates onto your <<pussy>>. You feel semen coating your outer lips and pooling around your knees. <br><br> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<recordSperm `{target: "pc", spermOwner: $NPCList[0], spermType: "human", rngModifier: 5, rngType: "canWash"}`>> <<case 4 5 6>> <<He>> strokes <<his>> cock and ejaculates onto your <<pussy>> without a word, sending streams of semen running down your cunt; you can feel <<him>> flicking <<his>> cock dry on your ass. <br><br> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<recordSperm `{target: "pc", spermOwner: $NPCList[0], spermType: "human", rngModifier: 5, rngType: "canWash"}`>> <<case 7>> <<He>> moans and strokes <<his>> cock as <<he>> cums, sending thick ropes of semen onto your <<pussy>> and ass. <br><br> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<bottomejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<recordSperm `{target: "pc", spermOwner: $NPCList[0], spermType: "human", rngModifier: 5, rngType: "canWash"}`>> <</switch>> <<elseif $NPCList[0].penis is "vaginaimminent" and playerChastity("vagina")>> <<He>> moans as <<he>> ejaculates onto your $worn.genitals.name. <<elseif $NPCList[0].penis is "vaginaimminent">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> cums before <<he>> can penetrate your <<pussy>>, ejaculating on the outside. Semen coats your outer lips and tummy. <br><br> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<recordSperm `{target: "pc", spermOwner: $NPCList[0], spermType: "human", rngModifier: 15, rngType: "canWash"}`>> <<case 4 5 6>> <<He>> ejaculates onto your <<pussy>> before <<he>> can penetrate you, sending warm streams of semen running down your cunt; <<he>> groans in disappointment. <br><br> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<recordSperm `{target: "pc", spermOwner: $NPCList[0], spermType: "human", rngModifier: 15, rngType: "canWash"}`>> <<case 7>> <<He>> moans and strokes <<his>> cock as <<he>> cums, sending thick ropes of semen onto your <<pussy>> and ass. <br><br> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<recordSperm `{target: "pc", spermOwner: $NPCList[0], spermType: "human", rngModifier: 15, rngType: "canWash"}`>> <<bottomejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <</switch>> <<elseif $NPCList[0].penis is "vagina">><<creampie "self" "vagina">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> thrusts deeply into your <<pussy>> as <<he>> cums, holding <<his>> cock deep in your womb. Semen splashes inside your <<pussy>> as you drive back against <<him>>. <br><br> <<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vagina" "semen">> <<recordVaginalSperm "pc" $NPCList[0] "human">> <<case 4 5 6>> <<He>> quiets and pounds <<his>> cock into you as <<he>> cums. Semen fills your <<pussy>> as you push back against the wall. <br><br> <<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vagina" "semen">> <<recordVaginalSperm "pc" $NPCList[0] "human">> <<case 7>> <<He>> convulses and grinds on your cunt as <<he>> cums, smashing your <<clit>> and sending thick waves of cum into your <<pussy>>. Semen oozes from your vagina and down your legs, pooling around your knees. "I just love fucking faceless wet cunts." <br><br> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<vaginalejacstat>><<set $hygiene += 500>><<bodyliquid "vagina" "semen">> <<thighejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <<recordVaginalSperm "pc" $NPCList[0] "human">> <</switch>> <<elseif $NPCList[0].penis is "cheeks">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> shakes as <<he>> cums, withdrawing <<his>> cock from your cheeks and ejaculating onto your ass. <br><br> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 4 5 6>> <<He>> smashes hard against the wall, ejaculating between your cheeks. <br><br> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 7>> <<He>> grunts as <<he>> cums. You feel a flood of warm cum dripping down your ass and crotch. <br><br> <<bottomejacstat>><<ejacstat>><<set $hygiene += 1000>><<bodyliquid "bottom" "semen" 2>> <</switch>> <<elseif $NPCList[0].penis is "anusentrance" and playerChastity("anus")>> <<He>> gasps as <<he>> strokes <<his>> cock, ejaculating onto your $worn.genitals.name. <<elseif $NPCList[0].penis is "anusentrance">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> strokes <<his>> cock, ejaculating onto your bottom. Semen drips down your butt and into your crack. <br><br> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 4 5 6>> <<He>> strokes <<his>> cock and quietly ejaculates onto your ass. You feel semen dripping down your crack. <br><br> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 7>> <<He>> moans and strokes <<his>> cock as <<he>> cums; you feel the splash of wet semen cover your ass and drip down your crotch. <br><br> <<bottomejacstat>><<ejacstat>><<set $hygiene += 1000>><<bodyliquid "bottom" "semen" 2>> <</switch>> <<recordSperm `{genital: "anus", target: "pc", spermOwner: $NPCList[0], spermType: "human", rngModifier: 5, rngType: "canWash"}`>> <<elseif $NPCList[0].penis is "anusimminent" and playerChastity("anus")>> <<He>> strokes <<his>> cock and ejaculates onto your $worn.genitals.name. <<elseif $NPCList[0].penis is "anusimminent">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> cums before <<he>> can penetrate your wriggling ass, ejaculating on the outside. You feel semen coat your ass and drip warmly down your crack. <br><br> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 4 5 6>> <<He>> strokes <<his>> cock and ejaculates onto your ass before <<he>> can penetrate you, sending streams of semen running down your crack; <<he>> groans, disappointed. <br><br> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 7>> <<He>> moans and strokes <<his>> cock as <<he>> cums, you feel a flood of semen on your ass and crotch. <br><br> <<bottomejacstat>><<ejacstat>><<set $hygiene += 1000>><<bodyliquid "bottom" "semen" 2>> <</switch>> <<recordSperm `{genital: "anus", target: "pc", spermOwner: $NPCList[0], spermType: "human", rngModifier: 15, rngType: "canWash"}`>> <<elseif $NPCList[0].penis is "anus">><<creampie "self" "anus">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> moans, pounding your ass as <<he>> cums. You groan as semen streams into your asshole. <br><br> <<analejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "anus" "semen">> <<recordAnusSperm "pc" $NPCList[0] "human">> <<case 4 5 6>> <<He>> pushes hard into your <<bottom>> as <<he>> cums, and you mash your <<bottom>> against the wall in response. Semen fills you as you moan with pleasure. <br><br> <<analejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "anus" "semen">> <<recordAnusSperm "pc" $NPCList[0] "human">> <<case 7>> <<He>> convulses and with a final shove, cums in your ass. Thick waves of semen pump into you. <span class="blue">You gasp as your ass overflows;</span> cum oozes from your ass and runs down your legs. "I can't see your face, but I bet you love being fucked in the ass." <br><br> <<analejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "anus" "semen">> <<recordAnusSperm "pc" $NPCList[0] "human">> <<thighejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <</switch>> <<elseif $NPCList[0].penis is "chest">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> moans as <<he>> cums, ejaculating onto your <<breasts>>. <br><br> <<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <<case 4 5 6>> <<He>> strokes the tip of <<his>> cock between your <<breasts>> and wordlessly ejaculates onto them. Your <<breasts>> cool as semen slides down your body. <br><br> <<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <<case 7>> <<He>> bears down on your <<breasts>>, grunting as <<he>> cums; semen shoots between your <<breasts>> and onto the wall. <br><br> <<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <</switch>> <<elseif $NPCList[0].penis is "mouthentrance">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> moans, stroking <<his>> cock and ejaculating onto your face. <br><br> <<case 4 5 6>> <<He>> strokes <<his>> cock and ejaculates onto your face. Warm cum drips down your forehead and nose. <br><br> <<case 7>> <<He>> grips <<his>> cock tightly, working it while aiming through the hole straight at your mouth. <span class="pink">You splutter and gag as thick ropes of cum push past your lips and into your mouth.</span> <br><br> <<cumswallow `$NPCList[_nn].type` null `npcSemenMod($NPCList[_nn].penissize)`>> <br><br> <</switch>> <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <<elseif $NPCList[0].penis is "mouthimminent">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> gasps, ejaculating onto your lips as you barely brush against the tip of <<his>> penis. <br><br> <<case 4 5 6>> <<He>> brushes <<his>> cock against your face, causing <<him>> to ejaculate early. Cum drips down your lips and chin; <<he>> sounds frustrated. <br><br> <<case 7>> <<He>> cums before <<he>> can enter your mouth. Thick ropes of cum cover your cheeks, chin, and into your waiting mouth. <<He>> sounds frustrated. <<cumswallow `$NPCList[_nn].type` null `npcSemenMod($NPCList[_nn].penissize)`>> <br><br> <</switch>> <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <<elseif $NPCList[0].penis is "mouth">><<creampie "self" "mouth">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> unexpectedly shoves <<his>> cock down your throat as <<he>> cums. You gag as semen streams down your throat, forcing you to swallow. <br><br> <<case 4 5 6>> <<He>> puts <<his>> hands on the wall as <<he>> mashes <<his>> cock into your mouth, ejaculating with a moan. You gag as cum fills your mouth and drips down your chin. <br><br> <<case 7>> <<He>> wildly thrusts <<his>> cock down your throat as <<he>> cums, shaking the entire wall. <span class="pink">Semen streams down your throat,</span> fills your mouth and covers your face as <<he>> flails. <<faceejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <br><br> <</switch>> <<oralejacstat>><<ejacstat>><<cumswallow `$NPCList[_nn].type` null `npcSemenMod($NPCList[_nn].penissize)`>> <<elseif $NPCList[0].penis is "feet">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> groans as <<he>> cums; ejaculate covers your feet. <br><br> <<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "feet" "semen">> <<case 4 5 6>> <<He>> quietly cums on your feet, slickening them with semen. <br><br> <<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "feet" "semen">> <<case 7>> <<He>> grunts and thrusts <<his>> cock between your feet as <<he>> cums, splattering cum on your feet and legs in the process that pools around your knees. <br><br> <<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "feet" "semen">> <<thighejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <</switch>> <<elseif $NPCList[0].penis is "leftarm">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> groans as <<he>> cums, penis sliding hotly in your hand and covering it with cum. <br><br> <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "semen">> <<case 4 5 6>> <<He>> quietly cums on your hand. Semen drips down your fingers. "I'd rather fuck your mouth next time..." <br><br> <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "semen">> <<case 7>> <<He>> spasms and moans, shooting thick streams of cum and splattering your <<breasts>> in the process. <br><br> <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "semen">> <<chestejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <</switch>> <<elseif $NPCList[0].penis is "rightarm">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> groans as <<he>> cums, penis sliding hotly in your hand and covering it with cum. <br><br> <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "rightarm" "semen">> <<case 4 5 6>> <<He>> quietly cums on your hand. Semen drips down your fingers. "I'd rather fuck your mouth next time..." <br><br> <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "rightarm" "semen">> <<case 7>> <<He>> spasms and moans, shooting thick streams of cum and splattering your <<breasts>> in the process. <br><br> <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "rightarm" "semen">> <<chestejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <</switch>> <<elseif $NPCList[0].penis is 0>> <<switch random(1, 3)>> <<case 1 2>> <<He>> groans and rubs <<his>> cock, spraying your face with ejaculate through the hole. <br><br> <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "goo">> <<case 3>> <<He>> moans as <<he>> ejaculates onto the ground. <br><br> <</switch>> <<elseif $NPCList[0].penis is "otheranus">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> groans as you fuck <<his>> ass. <br><br> <<case 4 5>> <<He>> moans as you pound <<his>> ass and ejaculates on the ground. <br><br> <<case 6 7>> <<He>> sighs as <<he>> ejaculates onto <<his>> own chest. <br><br> <</switch>> <<elseif $NPCList[0].penis is "otheranusfrot" or $NPCList[0].penis is "otheranusentrance" or $NPCList[0].penis is "otheranusimminent">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> noisily cums as you fuck <<his>> cheeks. <br><br> <<case 4 5>> <<He>> moans as you rub against <<his>> anus and ejaculates on the ground; <<he>> seems disappointed. <br><br> <<case 6 7>> <<He>> sighs as <<he>> ejaculates onto <<his>> own chest. <br><br> <</switch>> <!-- Special case male PC being orally serviced by male NPC with no other contact --> <<elseif $NPCList[0].mouth is "penis">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> cums as <<he>> pleasures you with <<his>> mouth. <br><br> <<case 4 5>> <<He>> cums on the ground, then stops abruptly. <br><br> <<case 6 7>> <<He>> pushes against the wall, shoving your cock into <<his>> throat; <<he>> ejaculates on <<his>> chest as <<he>> throats your cock. <br><br> <</switch>> <<elseif $NPCList[0].penis is "othermouth">> <<He>> shakes with arousal as <<he>> cums. <br><br> <</if>> <<else>><!-- Start non-consensual --> <<if _condomResult is "leaked">> <span class="red">The condom broke.</span> <<elseif _condomResult is "burst">> <span class="red">The tip of the condom bursts and rips, exposing the head of <<his>> penis.</span> <</if>> <<if _condomResult is "contained">> <<genericCondomEjaculation>> <<elseif $NPCList[0].penis is "idle">> <<He>> groans as a wet patch forms on <<his>> trousers. You barely stifle a laugh at the pathetic display. <br><br> <<elseif $NPCList[0].penis is "mouthentrance">> <<switch $NPCList[0].penissize>> <<case 4>> <<He>> grips <<his>> $NPCList[0].penisdesc tightly, working it while aiming through the hole straight at your mouth. <span class="pink">You splutter and gag as thick ropes of cum push past your clenched lips and into your mouth.</span> "You need to learn to swallow, <<bitch>>." <<cumswallow `$NPCList[0].type` null "large">> <br><br> <<case 1>> <<He>> moans as a pathetic dribble of cum leaks from <<his>> shaft. It's all you can do to keep from laughing. <br><br> <<default>> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> moans, stroking <<his>> $NPCList[0].penisdesc and ejaculating onto your face. "You must be so embarrassed being used like this." <br><br> <<case 4 5 6>> <<He>> strokes <<his>> $NPCList[0].penisdesc and ejaculates onto your face. Warm cum drips down your forehead and nose. "I bet you enjoy being used like this." <br><br> <<default>> <<He>> moans as <<he>> ejaculates onto your lips. <<He>> reaches through the wall, <span class="purple">shoving <<his>> fingers down your throat.</span> You gag and retch as <<he>> laughs. "Next time I'm throating you <<bitch>>; better train up." <<gstress>><<gtrauma>><<gpain>><<violence 3>><<bruise neck>><<hitstat>> <br><br> <</switch>> <</switch>> <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <<elseif $NPCList[0].penis is "mouthimminent">> <<switch $NPCList[0].penissize>> <<case 4>> <<He>> cums before <<he>> can enter your mouth. Thick ropes of cum shoot from <<his>> $NPCList[0].penisdesc and cover your cheeks, chin, and into your waiting mouth. <<He>> sounds frustrated. <<oralejacstat>><<cumswallow `$NPCList[_nn].type` null `npcSemenMod($NPCList[_nn].penissize)`>> <br><br> <<case 1>> <<He>> cums before <<he>> can enter your mouth. A dribble of cum leaks from <<his>> $NPCList[0].penisdesc and onto your lower lip. You hear <<him>> stomp away, frustrated. <br><br> <<default>> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> gasps, ejaculating onto your lips as you barely brush against the tip of <<his>> penis. <br><br> <<case 4 5 6>> <<He>> brushes <<his>> $NPCList[0].penisdesc against your face, causing <<him>> to ejaculate early. Cum drips down your lips and chin; frustrated, <<he>> wipes the cum off your chin and shoves it in your mouth. <<cumswallow `$NPCList[_nn].type` null `npcSemenMod($NPCList[_nn].penissize)`>> <br><br> <<default>> <<He>> moans as <<he>> ejaculates onto your lips. <<He>> reaches through the wall, <span class="purple">shoving <<his>> fingers down your throat.</span> You gag and retch as <<he>> laughs. "Next time I'm throating you <<bitch>>; better train up." <<gstress>><<gtrauma>><<gpain>><<violence 3>><<bruise neck>><<hitstat>> <br><br> <</switch>> <</switch>> <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <<elseif $NPCList[0].penis is "mouth">><<creampie "self" "mouth">> <<switch $NPCList[0].penissize>> <<case 4>> <<He>> thrusts down your throat, gagging you with <<his>> $NPCList[0].penisdesc as <<he>> cums and shaking the entire wall. <span class="pink">You whimper as semen streams down your throat,</span> and fills your mouth. "I bet you enjoy being tied up and face fucked." <<gstress>><<gtrauma>><<gpain>><<violence 3>><<bruise neck>><<hitstat>> <br><br> <<case 1>> <<He>> bears into the wall with <<his>> pelvis, try to shove <<his>> $NPCList[0].penisdesc as far into your mouth as possible. It's not much, and a tiny dribble of semen leaks from the tip. <br><br> <<default>> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> unexpectedly shoves <<his>> $NPCList[0].penisdesc down your throat as <<he>> cums. You gag and retch as unwanted semen streams down your throat, forcing you to swallow. <br><br> <<case 4 5 6>> <<He>> puts <<his>> hands on the wall as <<he>> mashes <<his>> $NPCList[0].penisdesc into your mouth, ejaculating with a moan. You gag as cum fills your mouth and drips down your chin. <br><br> <<case 7>> <<He>> pinches the base of <<his>> $NPCList[0].penisdesc as <<he>> groans, shooting cum down the back of your throat. You gag as cum flows down your throat, forcing you to swallow. <br><br> <</switch>> <</switch>> <<oralejacstat>><<ejacstat>><<cumswallow `$NPCList[_nn].type` null `npcSemenMod($NPCList[_nn].penissize)`>> <<elseif $NPCList[0].penis is 0>> <<switch random(1, 3)>> <<case 1 2>> <<He>> groans and rubs <<his>> $NPCList[0].penisdesc, spraying your face with ejaculate through the hole. <br><br> <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "goo">> <<case 3>> <<He>> moans as <<he>> ejaculates onto the ground. <<He>> reaches through the wall, <span class="purple">shoving <<his>> fingers down your throat.</span> You gag and retch as <<he>> laughs. "Next time I'm throating you <<bitch>>; better train up." <<gstress>><<gtrauma>><<gpain>><<violence 3>><<bruise neck>><<hitstat>> <br><br> <</switch>> <<else>> <<He>> collapses in orgasmic bliss. <</if>> <</if>> <</if>> <!-- No finishing moves for gloryhole --> <</widget>><<widget "ejaculation-gwylan">> <<run statusCheck("Gwylan")>> /* ToDo: Gwylan - Noncon / anger variation, in-heat variation, more hypnosis variation. */ <!-- Female Gwylan --> <<if $NPCList[_nn].vagina isnot "none" and $NPCList[_nn].penis is "none">> <<if $NPCList[_nn].vagina is "mouthentrance" or $NPCList[_nn].vagina is "mouth" or $NPCList[_nn].vagina is "mouthimminent">> <<He>> puts both hands on your head and exhales sharply as <<he>> <<if $NPCList[_nn].vagina is "mouth">>continues grinding<<else>>grinds<</if>> <<his>> <<npcVagina>> against your mouth. <<ejacstat>><<set $hygiene += 500>> <<if $NPCList[_nn].vagina is "mouth">> You taste <<his>> fluids. <<bodyliquid "mouth" "goo">> <<else>> <<bodyliquid "face" "goo">> <</if>> <<elseif $NPCList[_nn].vagina is "leftarm" or $NPCList[_nn].vagina is "rightarm">> <<His>> thighs clench together as you continue rubbing <<his>> <<npcVagina>>. <<He>> lets out a few shallow breaths as <<he>> shudders. <<handejacstat>><<ejacstat>><<set $hygiene += 500>> <<if $NPCList[_nn].vagina is "leftarm">><<bodyliquid "leftarm" "goo">><<else>><<bodyliquid "rightarm" "goo">><</if>> <<elseif $NPCList[_nn].vagina is "lefthand" or $NPCList[_nn].vagina is "righthand">> <<if _gwylanStatus.includes("heat")>> <<He>> shivers as <<he>> cums. <<He>> leans in and wipes <<his>> juices on your face. "There, I've marked my territory," <<he>> giggles. <<set $hygiene += 500>><<bodyliquid "face" "goo">> <<else>> <<He>> shudders as fluid squirts from <<his>> <<npcVagina>>. <<He>> breathes out heavily a few times, like a dry laugh. "Did you enjoy watching me?" <<if $hypnosis_traits.devotion gte 3>> <<He>> holds <<his>> hand up to your face. <<hypnosisText "<<He>> doesn't even need to say anything. You obediently lick <<his>> fingers clean as <<his>> other hand pats your head.">> <</if>> <</if>> <<elseif $NPCList[_nn].vagina is "leftDildo" or $NPCList[_nn].vagina is "rightDildo">> <<He>> lets out a shallow breath as <<his>> body convulses, <<his>> thighs trembling against your $currentSexToyLeft.name. "Oh my," <<he>> says after a moment. "The real thing usually doesn't get me this far, never mind a toy." <<handejacstat>><<ejacstat>><<set $hygiene += 500>> <<if $NPCList[_nn].vagina is "leftDildo">><<bodyliquid "leftarm" "goo">><<else>><<bodyliquid "rightarm" "goo">><</if>> <<if $hypnosis_traits.devotion gte 3>> <<He>> slowly removes it, and holds it up to your face. <<hypnosisText "<<He>> doesn't even need to say anything. You obediently lick it clean as <<his>> other hand pats your head.">> <</if>> <<elseif $NPCList[_nn].vagina is "leftDildoAnus" or $NPCList[_nn].vagina is "rightDildoAnus">> <<He>> lets out a shallow breath as <<his>> body convulses, <<his>> thighs trembling against your $currentSexToyLeft.name. "Oh my," <<he>> says after a moment. "Those don't usually work for me." <<handejacstat>><<ejacstat>> <<elseif $NPCList[_nn].vagina is "feet">> <<He>> lets out a long breath as <<he>> climaxes and shakes against your foot. "Oh my, how degrading." <<He>> giggles. <<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "feet" "goo">> <<elseif $NPCList[_nn].vagina is "vagina" and playerChastity("vagina")>> <<if $consensual is 0 or _gwylanStatus.includes("heat")>> <<He>> quietly cums against your $worn.genitals.name. "Curse this wretched thing," <<he>> grumbles. <<else>> <<He>> quietly cums against your $worn.genitals.name. "Pesky thing," <<he>> pouts. <</if>> <<if _args[0] isnot "short">><<gwylanChastityRequest $consensual>><</if>> <<elseif $NPCList[_nn].vagina is "vagina">> <<if _gwylanStatus.includes("heat")>> <<He>> bites your neck and holds you tightly, grinding down hard on your <<pussy>>. <<if _gwylanTF.fangs is "revealed">> <<He>> pulls away and licks the spot <<he>> bit, before licking <<his>> fangs in turn. <<pain 8>><<ggpain>> <<else>> <<He>> pulls away and kisses the spot <<he>> bit. <<pain 4>><<gpain>> <</if>> <<else>> <<He>> lets out a soft moan as you scissor your pussies together. Ejaculate drenches your crotch as <<he>> squirts. <</if>> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "goo">> <<elseif $NPCList[_nn].vagina is "othermouth">> <<His>> tongue eagerly laps at your <<pussy>> as <<he>> cums. <<if _gwylanStatus.includes("heat")>> <<He>> nibbles your clit before pulling away. <<else>> <<His>> hot breath makes you shiver as <<he>> pulls away. <</if>> <<He>> pushes a lock of hair away from <<his>> face and smiles at you. "Delicious." <<elseif $NPCList[_nn].vagina is "otheranus" and playerHasStrapon()>> <<if _gwylanStatus.includes("heat")>> <<He>> bites your neck and holds you tightly, grinding down hard on your <<penis>>. <<His>> fluids leak onto your thighs. <<if _gwylanTF.fangs is "revealed">> <<He>> pulls away and licks the spot <<he>> bit, before licking <<his>> fangs in turn. <<pain 8>><<ggpain>> <<else>> <<He>> pulls away and kisses the spot <<he>> bit. <<pain 4>><<gpain>> <</if>> <<else>> <<if $position is "missionary">> <<He>> leans back and presses down hard, grinding on your <<penis>> as <<he>> shudders in climax. <<else>> <<He>> presses back against you hard, grinding on your <<penis>> as <<he>> shudders in climax. <</if>> <<His>> fluids leak onto your thighs. "How shameful," <<he>> giggles. "Bested by a mere toy." <</if>> <<thighejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "goo">> <<elseif $NPCList[_nn].vagina is "otheranus" and playerChastity("penis")>> <<if $consensual is 0 or _gwylanStatus.includes("heat")>> <<He>> quietly cums against your $worn.genitals.name. "Curse this wretched thing," <<he>> grumbles. <<else>> <<He>> quietly cums against your $worn.genitals.name. "Pesky thing," <<he>> pouts. <</if>> <<if _args[0] isnot "short">><<gwylanChastityRequest $consensual>><</if>> <<elseif $NPCList[_nn].vagina is "otheranus">> <<if _gwylanStatus.includes("lust") and ($NPCList[_nn].lefthand is "hypnosis_orgasm" or $NPCList[_nn].righthand is "hypnosis_orgasm" or $combat_hypnosis is "orgasm" or $hypnosis_traits.devotion gte 3)>> <<if $position is "missionary">> <<He>> leans back as <<he>> rides you faster. <<He>> <<if $consensual is 1>>smiles<<else>>glares<</if>> down at you as <<he>> reaches <<his>> peak. <<else>> <<He>> presses back against you harder and faster as <<he>> reaches <<his>> peak. <<He>> looks back to you with a <<if $consensual is 1>>smile<<else>>glare<</if>>. <</if>> "Don't you dare hold back, <<pcpetname "Gwylan">>. Fill me<<if $orgasmcurrent>> again<</if>>." <<He>> snaps <<his>> fingers. <<hypnosisText "A deep yearning blooms, nurtured by your <<if $consensual is 1>>intimate<<else>>carnal<</if>> union. Feelings of arousal overwhelm you.">> <<orgasm>> <<He>> shivers in ecstasy, and lets out a <<if $consensual is 1>>soft moan<<else>>huff<</if>> as you cum together. <<His>> fluids leak onto your thighs. <<else>> <<if $position is "missionary">> <<He>> leans back and presses down hard, grinding on your <<penis>> as <<he>> shudders in climax. <<else>> <<He>> presses back against you hard, grinding on your <<penis>> as <<he>> shudders in climax. <</if>> <<His>> fluids leak onto your thighs. <</if>> <<thighejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "goo">> /* ToDo: Gwylan - replace with appropriate check and text when TF-based player penises are implemented */ <<if $hallucinations gte 2 and ($wolfgirl gte 6 or $fox gte 6) and ($orgasmcurrent or $orgasmdown)>> <br><br> <<if $penisaction is "cooperate">> You feel a bulging pressure as you continue to fuck <<him>>. With a final thrust, you feel as though you somehow press even deeper into <<him>>. <<if _gwylanStatus.includes("heat") and _gwylanTF.known>> <<He>> presses back in turn, and yips. <<else>> <<He>> presses back in turn, letting out a low moan. <</if>> <<else>> <<He>> grinds on you for another moment, before pushing even harder. It feels as though you slip even deeper into <<him>> somehow. <</if>> "Oh my." Gwylan looks <<if $position is "missionary">>down<<else>>back<</if>> at you. <<if _gwylanStatus.includes("heat")>> <<He>> pants, and smiles. "You were just as excited as me." <<else>> There's a blush spreading over <<his>> face. "You were excited." <</if>> <br><br> You try to withdraw, <span class="pink">but you can't</span>. You look down. Your penis feels strange inside of <<him>>. <span class="lewd">It looks different, like that of a <<if $wolfgirl gte 6>>wolf<<else>>fox<</if>>, complete with a knot. And it's stuck.</span> <br><br> <<if _gwylanStatus.includes("heat")>> <<He>> continues grinding against you, whining and chittering with pleasure. <<He>> trembles in bursts, fluids continuing to drool from <<his>> <<npcVagina>>. <<His>> back arches as your knot finally deflates. Finally, it exits with a pop, prompting Gwylan to slowly moan. <<if $internalejac>> Some of your cum spills out. <</if>> <<He>> trembles again as a second orgasm overtakes <<him>>. <<else>> The two of you sit in awkward silence while you wait for your knot to go down. "Don't get me wrong," Gwylan says after a while. "I like it." <<He>> grinds against you again, letting out a soft moan. Finally, it exits <<him>> with a pop. <<if $internalejac>> Some of your cum spills out. <</if>> <</if>> <<He>> turns even more red and stays quiet for a moment. You look down again, and your penis looks normal. <<He>> breaks the silence with a giggle. <<if !$gwylanSeen.includes("player_knotted_gwylan")>> "Don't think about it too much." <<else>> "It feels better each time." <</if>> <<set $gwylanSeen.pushUnique("player_knotted_gwylan")>> <<elseif _gwylanStatus.includes("heat")>> <<He>> bites your neck and holds you tightly, trembling as orgasmic waves wash over <<him>>. <<if _gwylanTF.fangs is "revealed">> <<He>> pulls away and licks the spot <<he>> bit, before licking <<his>> fangs in turn. <<pain 8>><<ggpain>> <<else>> <<He>> pulls away and kisses the spot <<he>> bit. <<pain 4>><<gpain>> <</if>> <<elseif $consensual is 1>> "I usually prefer the front door, but..." <<he>> giggles. "Variety is the spice of life." <</if>> <<elseif $NPCList[_nn].vagina is "penis" and playerHasStrapon()>> <<if _gwylanStatus.includes("heat")>> <<He>> bites your neck and holds you tightly, grinding down hard on your <<penis>>. <<if _gwylanTF.fangs is "revealed">> <<He>> pulls away and licks the spot <<he>> bit, before licking <<his>> fangs in turn. <<pain 8>><<ggpain>> <<else>> <<He>> pulls away and kisses the spot <<he>> bit. <<pain 4>><<gpain>> <</if>> <<else>> <<if $position is "missionary">> <<He>> leans back and presses down hard, grinding on your <<penis>> as <<he>> shudders in climax. <<else>> <<He>> presses back against you hard, grinding on your <<penis>> as <<he>> shudders in climax. <</if>> "How shameful," <<he>> giggles. "Bested by a mere toy." <</if>> <<elseif $NPCList[_nn].vagina is "penis">> <<if _gwylanStatus.includes("lust") and ($NPCList[_nn].lefthand is "hypnosis_orgasm" or $NPCList[_nn].righthand is "hypnosis_orgasm" or $combat_hypnosis is "orgasm" or $hypnosis_traits.devotion gte 3)>> <<if $position is "missionary">> <<He>> leans down and wraps <<his>> arms around you tightly as <<he>> rides you faster. <<He>> whispers directly in your ear. <<else>> <<He>> presses back against you harder and faster as <<he>> reaches <<his>> peak. <<He>> looks back to you with a <<if $consensual is 1>>smile<<else>>glare<</if>>. <</if>> <<if _gwylanStatus.includes("heat") and $settings.pregnancySpeechEnabled>> "Don't you dare hold back, <<pcpetname "Gwylan">>. I want you to breed me like a dog." <<He>> snaps <<his>> fingers. <<else>> "Don't you dare hold back, <<pcpetname "Gwylan">>. Fill me<<if $orgasmcurrent>> again<</if>>." <<He>> snaps <<his>> fingers. <</if>> <<hypnosisText "A deep yearning blooms, nurtured by your <<if $consensual is 1>>intimate<<else>>carnal<</if>> union. Feelings of arousal overwhelm you.">> <<orgasm>> <<He>> shivers in ecstasy, <<if !$internalejac>> but seems disappointed by your lack of semen. <<else>> and lets out a <<if $consensual is 1>>soft moan<<else>>huff<</if>> as you cum together. <<if $position is "missionary">> <<He>> cups your cheeks and kisses one. <<else>> <<His>> fingers and toes curl in pleasure. <</if>> <</if>> <<else>> <<if $position is "missionary">> <<He>> wraps <<his>> arms around you as <<he>> rides you faster. <<else>> <<He>> presses back against you harder and faster as <<he>> reaches <<his>> peak. <</if>> <<His>> fingers and toes curl in pleasure as <<he>> cums on your <<penis>>. <</if>> <<ejacstat>><<set $hygiene += 500>><<bodyliquid "penis" "goo">> /* ToDo: Gwylan - replace with appropriate check and text when TF-based player penises are implemented */ <<if $hallucinations gte 2 and ($wolfgirl gte 6 or $fox gte 6) and ($orgasmcurrent or $orgasmdown)>> <br><br> <<if $penisaction is "cooperate">> You feel a bulging pressure as you continue to fuck <<him>>. With a final thrust, you feel as though you somehow press even deeper into <<him>>. <<if _gwylanStatus.includes("heat") and _gwylanTF.known>> <<He>> presses back in turn, and yips. <<else>> <<He>> presses back in turn, letting out a low moan. <</if>> <<else>> <<He>> grinds on you for another moment, before pushing even harder. It feels as though you slip even deeper into <<him>> somehow. <</if>> "Oh my." Gwylan looks <<if $position is "missionary">>down<<else>>back<</if>> at you. <<if _gwylanStatus.includes("heat")>> <<He>> pants, and smiles. "You were just as excited as me." <<else>> There's a blush spreading over <<his>> face. "You were excited." <</if>> <br><br> You try to withdraw, <span class="pink">but you can't</span>. You look down. Your penis feels strange inside of <<him>>. <span class="lewd">It looks different, like that of a <<if $wolfgirl gte 6>>wolf<<else>>fox<</if>>, complete with a knot. And it's stuck.</span> <br><br> <<if _gwylanStatus.includes("wantsPregnancy") and $settings.pregnancySpeechEnabled and !npcIsPregnant("Gwylan") and $internalejac>> /* ToDo: Gwylan - add more pregnancy brainrot here if appropriate for Gwylan's story */ <<He>> adjusts <<himself>>, and locks <<his>> legs around you. "Keep it all inside. I want your baby." <<He>> pulls you into a tight embrace. <br><br> <<He>> continues to slowly grind <<his>> <<npcVagina>> against you, trilling and whining with pleasure all the while. Several minutes pass like this. <<He>> holds on even tighter as your knot finally deflates. It exits with a pop, prompting Gwylan to slowly moan. <<He>> trembles again as a second orgasm overtakes <<him>>. None of your cum spills out, having been sealed in by your knot. <<elseif _gwylanStatus.includes("heat")>> <<He>> continues grinding against you, whining and chittering with pleasure. <<He>> trembles in bursts, fluids continuing to drool from <<his>> <<npcVagina>>. <<His>> back arches as your knot finally deflates. Finally, it exits with a pop, prompting Gwylan to slowly moan. <<if $internalejac>> Some of your cum spills out. <</if>> <<He>> trembles again as a second orgasm overtakes <<him>>. <<else>> The two of you sit in awkward silence while you wait for your knot to go down. "Don't get me wrong," Gwylan says after a while. "I like it." <<He>> grinds against you again, letting out a soft moan. Finally, it exits <<him>> with a pop. <<if $internalejac>> Some of your cum spills out. <</if>> <</if>> <<He>> turns even more red and stays quiet for a moment. You look down again, and your penis looks normal. <<He>> breaks the silence with a giggle. <<if !$gwylanSeen.includes("player_knotted_gwylan")>> "Don't think about it too much." <<else>> "It feels better each time." <</if>> <<set $gwylanSeen.pushUnique("player_knotted_gwylan")>> <<elseif _gwylanStatus.includes("heat")>> <<He>> bites your neck and holds you tightly, trembling as orgasmic waves wash over <<him>>. <<if _gwylanTF.fangs is "revealed">> <<He>> pulls away and licks the spot <<he>> bit, before licking <<his>> fangs in turn. <<pain 8>><<ggpain>> <<else>> <<He>> pulls away and kisses the spot <<he>> bit. <<pain 4>><<gpain>> <</if>> <</if>> <<elseif ($NPCList[_nn].vagina is "penisimminent" or $NPCList[_nn].vagina is "penisentrance") and playerChastity("penis")>> <<if $consensual is 0 or _gwylanStatus.includes("heat")>> <<He>> quietly cums against your $worn.genitals.name. "Curse this wretched thing," <<he>> grumbles. <<else>> <<He>> quietly cums against your $worn.genitals.name. "Pesky thing," <<he>> pouts. <</if>> <<if _args[0] isnot "short">><<gwylanChastityRequest $consensual>><</if>> <<elseif $NPCList[_nn].vagina is "penisimminent" or $NPCList[_nn].vagina is "penisentrance">> <<He>> lets out a ragged breath and shudders as <<he>> grinds against your <<penis>>. <<if $position is "missionary">> <<He>> leans forward and relaxes against you. <<else>> <<He>> leans forward, worn out. <</if>> "Maybe I'll let you inside, next time." <<ejacstat>><<set $hygiene += 500>><<bodyliquid "penis" "goo">> <<elseif ($NPCList[_nn].vagina is "otheranusfrot" or $NPCList[_nn].vagina is "otheranusentrance") and playerChastity("penis")>> <<if $consensual is 0 or _gwylanStatus.includes("heat")>> <<He>> quietly cums against your $worn.genitals.name. "Curse this wretched thing," <<he>> grumbles. <<else>> <<He>> quietly cums against your $worn.genitals.name. "Pesky thing," <<he>> pouts. <</if>> <<if _args[0] isnot "short">><<gwylanChastityRequest $consensual>><</if>> <<elseif $NPCList[_nn].vagina is "otheranusfrot" or $NPCList[_nn].vagina is "otheranusentrance">> <<He>> lets out a ragged breath and shudders as <<he>> grinds against your <<penis>>. <<if $position is "missionary">> <<He>> leans forward and relaxes against you. <<else>> <<He>> leans forward, worn out. <</if>> "Maybe I'll let you inside, next time." <<elseif $NPCList[_nn].vagina is "frot" and playerChastity("penis")>> <<if $consensual is 0 or _gwylanStatus.includes("heat")>> <<He>> quietly cums against your $worn.genitals.name. "Curse this wretched thing," <<he>> grumbles. <<else>> <<He>> quietly cums against your $worn.genitals.name. "Pesky thing," <<he>> pouts. <</if>> <<if _args[0] isnot "short">><<gwylanChastityRequest $consensual>><</if>> <<elseif $NPCList[_nn].vagina is "frot">> <<He>> lets out a ragged breath and shudders as <<he>> grinds against your <<penis>>. <<if $position is "missionary">> <<He>> leans forward and relaxes against you. <<else>> <<He>> leans forward, worn out. <</if>> <<He>> smiles and giggles. "You're a bad <<girl>>, teasing me like that." <<ejacstat>><<set $hygiene += 500>><<bodyliquid "penis" "goo">> <<elseif $NPCList[_nn].mouth is "penis" and playerHasStrapon()>> <<He>> shudders as <<he>> takes your <<penis>> all the way in, before releasing it and coming back up for air. "The real thing tastes better," <<he>> grumbles. <<elseif $NPCList[_nn].mouth is "penis">> <<switch $player.penissize>> <<case 4>> <<if $orgasmdown or $internalejac>> <<He>> continues holding <<else>> <<He>> expertly holds <</if>> your <<penis>> in <<his>> throat even as <<he>> reaches climax. <<His>> mouth and throat hug you tightly. Finally, <<he>> releases you with a final gasp <<case 3 2 1>> <<if $orgasmdown or $internalejac>> <<He>> continues holding <<else>> <<He>> expertly holds <</if>> your <<penis>> in <<his>> mouth even as <<he>> reaches climax. When <<hes>> done shaking, <<he>> releases you <<default>> <<if $orgasmdown or $internalejac>> <<He>> continues holding <<else>> <<He>> holds <</if>> your <<penis>> in <<his>> mouth even as <<he>> reaches climax, continuing to pleasure your small length. When <<hes>> done shaking, <<he>> releases you <</switch>> <<if $internalejac>> and swallows. "Thanks for the meal." <<else>> and pouts. "Don't hold back next time. I was hungry for you." <</if>> <<elseif $NPCList[_nn].vagina is "footjob">> <<He>> lightly shudders as <<he>> presses <<his>> foot down on your <<penis>>. <<His>> toes wiggle. <<else>> <<He>> quietly convulses in orgasmic bliss. "You've bested me this time," <<he>> giggles between breaths. <</if>> <br><br> <</if>> <!-- Male Gwylan --> <<if _condomResult is "leaked">> <span class="red">The condom broke.</span> <<elseif _condomResult is "burst">> <span class="red">The tip of the condom bursts and rips, exposing the head of <<his>> penis.</span> <</if>> <<if _condomResult is "contained">> <<genericCondomEjaculation>> <<elseif npcHasStrapon(_nn)>> <<He>> moans and shivers in orgasmic bliss, grinding the strap-on against <<his>> genitals. <<He>> huffs in frustration. <<elseif $NPCList[_nn].penis is "idle">> <<He>> covers <<his>> mouth as <<he>> convulses. <<He>> growls. "You couldn't wait for me to get my pants off first?" <<elseif $NPCList[_nn].penis is "thighs">> <<He>> grabs your legs, pushing <<his>> crotch hard into yours as <<he>> cums. <<His>> semen streaks onto your tummy. <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <<elseif $NPCList[_nn].penis is "vaginaentrance" and playerChastity("vagina")>> <<if $consensual is 0 or _gwylanStatus.includes("heat")>> <<He>> quietly cums against your $worn.genitals.name. "Curse this wretched thing," <<he>> grumbles. <<else>> <<He>> quietly cums against your $worn.genitals.name. "Pesky thing," <<he>> pouts. <</if>> <<if _args[0] isnot "short">><<gwylanChastityRequest $consensual>><</if>> <<elseif $NPCList[_nn].penis is "vaginaentrance">> <<He>> holds you still by the hips with one hand and with the other on <<his>> cock, ejaculates onto your <<pussy>>. Semen coats your outer lips and pools around your legs. <<if $position is "missionary">> <<He>> leans forward and relaxes against you. <<else>> <<He>> leans forward, worn out. <</if>> "Maybe I'll get inside you, next time." <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 5, rngType: "canWash"}`>> <<elseif $NPCList[_nn].penis is "vaginaimminent" and playerChastity("vagina")>> <<if $consensual is 0 or _gwylanStatus.includes("heat")>> <<He>> quietly cums against your $worn.genitals.name. "Curse this wretched thing," <<he>> grumbles. <<else>> <<He>> quietly cums against your $worn.genitals.name. "Pesky thing," <<he>> pouts. <</if>> <<if _args[0] isnot "short">><<gwylanChastityRequest $consensual>><</if>> <<elseif $NPCList[_nn].penis is "vaginaimminent">> <<He>> ejaculates onto your <<pussy>> before <<he>> can penetrate you, sending white streams of semen running down your <<pussy>>. <<He>> looks disappointed. <<if $position is "missionary">> <<He>> leans forward and relaxes against you. <<else>> <<He>> leans forward, worn out. <</if>> "Maybe I'll get inside you, next time." <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 15, rngType: "canWash"}`>> <<elseif $NPCList[_nn].penis is "vagina">> <<if _gwylanStatus.includes("lust") and ($NPCList[_nn].lefthand is "hypnosis_orgasm" or $NPCList[_nn].righthand is "hypnosis_orgasm" or $combat_hypnosis is "orgasm" or $hypnosis_traits.devotion gte 3)>> <<if $position is "missionary">> <<He>> leans down and wraps <<his>> arms around you tightly as <<he>> thrusts faster. <<He>> whispers directly in your ear. <<else>> <<He>> thrusts into you harder and faster as <<he>> reaches <<his>> peak. <<He>> leans forward and whispers directly in your ear. <</if>> <<if _gwylanStatus.includes("heat") and $settings.pregnancySpeechEnabled>> "I'm going to breed you like a dog, and you're going to climax when I do." <<He>> snaps <<his>> fingers. <<else>> "Don't you dare hold back, <<pcpetname "Gwylan">>. Finish again." <<He>> snaps <<his>> fingers. <</if>> <<hypnosisText "A deep yearning blooms, nurtured by your <<if $consensual is 1>>intimate<<else>>carnal<</if>> union. Feelings of arousal overwhelm you.">> <<orgasm>> <<He>> shivers in ecstasy, and lets out a <<if $consensual is 1>>soft moan<<else>>huff<</if>> as you cum together, <<his>> semen filling you. <<else>> <<He>> wraps <<his>> arms around you as <<he>> thrusts faster. <<His>> fingers and toes curl in pleasure as <<he>> cums inside you. <</if>> /* ToDo: Gwylan - replace with appropriate check and text when TF-based player penises are implemented */ <<if $hallucinations gte 2 and ($wolfgirl gte 6 or $fox gte 6) and ($orgasmcurrent or $orgasmdown) and _gwylanTF.known>> <br><br> <<if $vaginaaction is "cooperate">> You feel a bulging pressure as you press back against <<him>>. With a final thrust, you feel as though <<he>> somehow press even deeper into you. You involuntarily moan. <<if _gwylanStatus.includes("heat") and _gwylanTF.known>> <<He>> thrusts once more in turn, and yips. <<else>> <<He>> thrusts once more in turn, letting out a low moan. <</if>> <<else>> <<He>> thrusts into you for another moment, before pushing even harder. It feels as though <<he>> slips even deeper into you somehow. <</if>> "Oh my." Gwylan looks <<if $position is "missionary">>down<<else>>up<</if>> at you. <<if _gwylanStatus.includes("heat")>> <<He>> pants, and smiles. "I'm sorry, I couldn't hold back." <<else>> There's a blush spreading over <<his>> face. "I'm sorry, you got me excited." <</if>> <br><br> You try to withdraw, <span class="pink">but you can't</span>. You look down. <span class="lewd"><<His>> penis looks different, like that of a <<if $wolfgirl gte 6>>wolf<<else>>fox<</if>>, complete with a knot. And it's stuck.</span> <br><br> <<if _gwylanStatus.includes("wantsPregnancy") and $settings.pregnancySpeechEnabled and !playerIsPregnant()>> /* ToDo: Gwylan - add more pregnancy brainrot here if appropriate for Gwylan's story */ <<He>> hugs you tightly. "Keep it all inside. I want you to have my kits." <br><br> <<He>> continues to slowly grind <<his>> penis inside you, trilling and whining with pleasure all the while. Several minutes pass like this. <<He>> holds on even tighter as <<his>> knot finally deflates. It exits with a pop, prompting both of you to slowly moan. None of <<his>> cum spills out, having been sealed in by the knot. <<bodyliquid "vagina" "semen" 2>> <<elseif _gwylanStatus.includes("heat")>> <<He>> continues grinding against you. Each movement makes you whine with pleasure. <<He>> giggles softly. "<<pcPetname "Gwylan" "good">>... you like that, don't you?" Finally, it exits with a pop, prompting you both to slowly moan. Some of <<his>> cum spills out. <<else>> The two of you sit in awkward silence while you wait for <<his>> knot to go down. "I-it's a compliment," Gwylan says after a while. "I liked it a lot." Finally, <<his>> knot exits you with a pop. Some of <<his>> cum spills out. <</if>> <<He>> turns even more red and stays quiet for a moment. You look down again, and <<his>> penis looks normal. <<if !$gwylanSeen.includes("gwylan_knotted_player")>> "Don't think about it too much." <<else>> "It feels better each time." <</if>> <<set $gwylanSeen.pushUnique("gwylan_knotted_player")>> <<elseif _gwylanStatus.includes("heat")>> <<He>> bites your neck and holds you tightly, trembling as orgasmic waves wash over <<him>>. <<if _gwylanTF.fangs is "revealed">> <<He>> pulls away and licks the spot <<he>> bit, before licking <<his>> fangs in turn. <<pain 8>><<ggpain>> <<else>> <<He>> pulls away and kisses the spot <<he>> bit. <<pain 4>><<gpain>> <</if>> <</if>> <<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vagina" "semen">> <<recordVaginalSperm "pc" $NPCList[_nn] "human">> <<elseif $NPCList[_nn].penis is "cheeks" and playerChastity()>> <<if $consensual is 0 or _gwylanStatus.includes("heat")>> <<He>> quietly cums against your $worn.genitals.name. "Curse this wretched thing," <<he>> grumbles. <<else>> <<He>> quietly cums against your $worn.genitals.name. "Pesky thing," <<he>> pouts. <</if>> <<if _args[0] isnot "short">><<gwylanChastityRequest $consensual>><</if>> <<elseif $NPCList[_nn].penis is "cheeks">> <<He>> grabs your thighs, pushing <<his>> crotch hard against your ass and ejaculating between your cheeks. <<He>> leans forward and relaxes against you. "Maybe I'll get inside you, next time." <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<elseif $NPCList[_nn].penis is "anusentrance" and playerChastity("anus")>> <<if $consensual is 0 or _gwylanStatus.includes("heat")>> <<He>> quietly cums against your $worn.genitals.name. "Curse this wretched thing," <<he>> grumbles. <<else>> <<He>> quietly cums against your $worn.genitals.name. "Pesky thing," <<he>> pouts. <</if>> <<if _args[0] isnot "short">><<gwylanChastityRequest $consensual>><</if>> <<elseif $NPCList[_nn].penis is "anusentrance">> <<He>> strokes <<his>> cock and quietly ejaculates onto your ass. You feel warm semen dripping down your bottom. <<He>> leans forward and relaxes against you. "Maybe I'll get inside you, next time." <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<recordSperm `{genital: "anus", target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 5, rngType: "canWash"}`>> <<elseif $NPCList[_nn].penis is "anusimminent" and playerChastity("anus")>> <<if $consensual is 0 or _gwylanStatus.includes("heat")>> <<He>> quietly cums against your $worn.genitals.name. "Curse this wretched thing," <<he>> grumbles. <<else>> <<He>> quietly cums against your $worn.genitals.name. "Pesky thing," <<he>> pouts. <</if>> <<if _args[0] isnot "short">><<gwylanChastityRequest $consensual>><</if>> <<elseif $NPCList[_nn].penis is "anusimminent">> <<He>> strokes <<his>> cock and ejaculates onto your ass before <<he>> can penetrate you, sending white streams of semen running down your crack. <<He>> seems upset. <<He>> leans forward and relaxes against you. "Maybe I'll get inside you, next time." <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<recordSperm `{genital: "anus", target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 15, rngType: "canWash"}`>> <<elseif $NPCList[_nn].penis is "anus">> <<if _gwylanStatus.includes("lust") and ($NPCList[_nn].lefthand is "hypnosis_orgasm" or $NPCList[_nn].righthand is "hypnosis_orgasm" or $combat_hypnosis is "orgasm" or $hypnosis_traits.devotion gte 3)>> <<if $position is "missionary">> <<He>> leans down and wraps <<his>> arms around you tightly as <<he>> thrusts faster. <<He>> whispers directly in your ear. <<else>> <<He>> thrusts into you harder and faster as <<he>> reaches <<his>> peak. <<He>> leans forward and whispers directly in your ear. <</if>> "Don't you dare hold back, <<pcpetname "Gwylan">>. Finish again." <<He>> snaps <<his>> fingers. <<hypnosisText "A deep yearning blooms, nurtured by your <<if $consensual is 1>>intimate<<else>>carnal<</if>> union. Feelings of arousal overwhelm you.">> <<orgasm>> <<He>> shivers in ecstasy, and lets out a <<if $consensual is 1>>soft moan<<else>>huff<</if>> as you cum together, <<his>> semen filling you. <<else>> <<He>> wraps <<his>> arms around you as <<he>> thrusts faster. <<His>> fingers and toes curl in pleasure as <<he>> cums inside you. <</if>> /* ToDo: Gwylan - replace with appropriate check and text when TF-based player penises are implemented */ <<if $hallucinations gte 2 and ($wolfgirl gte 6 or $fox gte 6) and ($orgasmcurrent or $orgasmdown) and _gwylanTF.known>> <br><br> <<if $anusaction is "cooperate">> You feel a bulging pressure as you press back against <<him>>. With a final thrust, you feel as though <<he>> somehow press even deeper into you. You involuntarily moan. <<if _gwylanStatus.includes("heat") and _gwylanTF.known>> <<He>> thrusts once more in turn, and yips. <<else>> <<He>> thrusts once more in turn, letting out a low moan. <</if>> <<else>> <<He>> thrusts into you for another moment, before pushing even harder. It feels as though <<he>> slips even deeper into you somehow. <</if>> "Oh my." Gwylan looks <<if $position is "missionary">>down<<else>>up<</if>> at you. <<if _gwylanStatus.includes("heat")>> <<He>> pants, and smiles. "I'm sorry, I couldn't hold back." <<else>> There's a blush spreading over <<his>> face. "I'm sorry, you got me excited." <</if>> <br><br> You try to withdraw, <span class="pink">but you can't</span>. You look down. <span class="lewd"><<His>> penis looks different, like that of a <<if $wolfgirl gte 6>>wolf<<else>>fox<</if>>, complete with a knot. And it's stuck.</span> <br><br> <<if _gwylanStatus.includes("heat")>> <<He>> continues grinding against you. Each movement makes you whine with pleasure. <<He>> giggles softly. "<<pcPetname "Gwylan" "good">>... you like that, don't you?" Finally, it exits with a pop, prompting you both to slowly moan. Some of <<his>> cum spills out. <<else>> The two of you sit in awkward silence while you wait for <<his>> knot to go down. "I-it's a compliment," Gwylan says after a while. "I liked it a lot." Finally, <<his>> knot exits you with a pop. Some of <<his>> cum spills out. <</if>> <<He>> turns even more red and stays quiet for a moment. You look down again, and <<his>> penis looks normal. <<if !$gwylanSeen.includes("gwylan_knotted_player")>> "Don't think about it too much." <<else>> "It feels better each time." <</if>> <<set $gwylanSeen.pushUnique("gwylan_knotted_player")>> <<elseif _gwylanStatus.includes("heat")>> <<He>> bites your neck and holds you tightly, trembling as orgasmic waves wash over <<him>>. <<if _gwylanTF.fangs is "revealed">> <<He>> pulls away and licks the spot <<he>> bit, before licking <<his>> fangs in turn. <<pain 8>><<ggpain>> <<else>> <<He>> pulls away and kisses the spot <<he>> bit. <<pain 4>><<gpain>> <</if>> <</if>> <<analejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "anus" "semen">> <<recordAnusSperm "pc" $NPCList[_nn] "human">> <<elseif $NPCList[_nn].penis is "chest">> <<He>> puts <<his>> hand behind your neck and bears down on your <<breasts>>. Semen shoots between your <<breasts>> and covers your <<if $position is "missionary">> face.<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <<else>> stomach.<<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <</if>> "My compliments." <<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <<elseif $NPCList[_nn].penis is "mouthentrance" or $NPCList[_nn].penis is "mouthimminent">> <<if $hypnosis_traits.devotion gte 3>> <<He>> presses <<his>> <<npcPenis>> against your lips. "<<gwylanCommand "Open up">>, <<pcpetname "Gwylan">>." <<hypnosisText "Your body obeys <<his>> command.">> Thick ropes of cum shoot into your mouth. <<He>> sighs with relief. You feel warm as <<he>> pets your head. "<<pcPetname "Gwylan" "good">>." <<trauma -1>><<ltrauma>> <<cumswallow `$NPCList[_nn].type` null `npcSemenMod($NPCList[_nn].penissize)`>> <<else>> <<He>> presses <<his>> <<npcPenis>> against your lips, but doesn't push any further. <<He>> pulls back, shooting several thick ropes of cum over your face. <<He>> sighs with relief, and giggles. "Look at what you made me do." <<set $hygiene += 500>><<bodyliquid "face" "semen">> <</if>> <<elseif $NPCList[_nn].penis is "mouth">> <<if $hypnosis_traits.devotion gte 3>> <<He>> presses <<his>> <<npcPenis>> all the way into your mouth. "<<gwylanCommand "Swallow it all">>, <<pcpetname "Gwylan">>." <<hypnosisText "Your body obeys <<his>> command.">> Thick ropes of cum shoot into your mouth and throat. You eagerly take it all in as <<he>> sighs with relief. You feel warm as <<he>> pets your head. "<<pcPetname "Gwylan" "good">>." <<trauma -1>><<ltrauma>> <<else>> <<He>> presses <<his>> <<npcPenis>> all the way into your mouth. Thick ropes of cum shoot into your mouth and throat. <<He>> sighs with relief, and giggles. "<<pcPetname "Gwylan" "good">>." <</if>> <<oralejacstat>><<ejacstat>><<cumswallow `$NPCList[_nn].type` null `npcSemenMod($NPCList[_nn].penissize)`>> <<elseif $NPCList[_nn].penis is "feet">> <<He>> lets out a long breath as <<he>> climaxes and shakes against your foot. "Oh my, how degrading." <<He>> giggles. <<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "feet" "semen">> <<elseif $NPCList[_nn].penis is "leftarm" and $NPCList[_nn].penis is "rightarm">> <<He>> shakes quietly as you work <<his>> penis with both hands. <<His>> fresh semen covers your hands and wrists. <<if $hypnosis_traits.devotion gte 3>> <<He>> giggles, and raises a finger to your face. "<<gwylanCommand "Clean it up.">>" <<hypnosisText "Your body obeys <<his>> command.">> You hungrily lick up <<his>> semen, and even lick the stray drops from <<his>> <<npcPenis>>. <<He>> smiles down at you and pets your head as you do. <<trauma -1>><<ltrauma>> <<else>> "I'm impressed," <<he>> says with a giggle. <</if>> <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "semen">><<bodyliquid "rightarm" "semen">> <<elseif $NPCList[_nn].penis is "leftarm" or $NPCList[_nn].penis is "rightarm">> <<set $_arm to $NPCList[_nn].penis is "leftarm" ? "left" : "right">> <<He>> shakes quietly as you tease forth fresh cum from <<his>> penis with your $_arm hand. <<if $hypnosis_traits.devotion gte 3>> <<He>> giggles, and raises a finger to your face. "<<gwylanCommand "Clean it up.">>" <<hypnosisText "Your body obeys <<his>> command.">> You hungrily lick up <<his>> semen, and even lick the stray drops from <<his>> <<npcPenis>>. <<He>> smiles down at you and pets your head as you do. <<trauma -1>><<ltrauma>> <<else>> "I'm impressed," <<he>> says with a giggle. <</if>> <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "semen">> <<elseif $NPCList[_nn].penis is 0>> <<He>> covers <<his>> mouth as semen erupts from <<his>> <<npcPenis>>. <<He>> breathes heavily and blushes. "You tease." <<elseif $NPCList[_nn].penis is "otheranus">> <<if _gwylanStatus.includes("lust") and ($NPCList[_nn].lefthand is "hypnosis_orgasm" or $NPCList[_nn].righthand is "hypnosis_orgasm" or $combat_hypnosis is "orgasm" or $hypnosis_traits.devotion gte 3)>> <<if $position is "missionary">> <<He>> leans back as <<he>> rides you faster. <<He>> <<if $consensual is 1>>smiles<<else>>glares<</if>> down at you as <<he>> reaches <<his>> peak. <<else>> <<He>> presses back against you harder and faster as <<he>> reaches <<his>> peak. <<He>> looks back to you with a <<if $consensual is 1>>smile<<else>>glare<</if>>. <</if>> "Don't you dare hold back, <<pcpetname "Gwylan">>. Fill me<<if $orgasmcurrent>> again<</if>>." <<He>> snaps <<his>> fingers. <<hypnosisText "A deep yearning blooms, nurtured by your <<if $consensual is 1>>intimate<<else>>carnal<</if>> union. Feelings of arousal overwhelm you.">> <<orgasm>> <<He>> shivers in ecstasy, and lets out a <<if $consensual is 1>>soft moan<<else>>huff<</if>> as you cum together. <<else>> <<if $position is "missionary">> <<He>> leans back and presses down hard, grinding on your <<penis>> as <<he>> shudders in climax. <<else>> <<He>> presses back against you hard, grinding on your <<penis>> as <<he>> shudders in climax. <</if>> <</if>> /* ToDo: Gwylan - replace with appropriate check and text when TF-based player penises are implemented */ <<if $hallucinations gte 2 and ($wolfgirl gte 6 or $fox gte 6) and ($orgasmcurrent or $orgasmdown)>> <br><br> <<if $penisaction is "cooperate">> You feel a bulging pressure as you continue to fuck <<him>>. With a final thrust, you feel as though you somehow press even deeper into <<him>>. <<if _gwylanStatus.includes("heat") and _gwylanTF.known>> <<He>> presses back in turn, and yips. <<else>> <<He>> presses back in turn, letting out a low moan. <</if>> <<else>> <<He>> grinds on you for another moment, before pushing even harder. It feels as though you slip even deeper into <<him>> somehow. <</if>> "Oh my." Gwylan looks <<if $position is "missionary">>down<<else>>back<</if>> at you. <<if _gwylanStatus.includes("heat")>> <<He>> pants, and smiles. "You were just as excited as me." <<else>> There's a blush spreading over <<his>> face. "You were excited." <</if>> <br><br> You try to withdraw, <span class="pink">but you can't</span>. You look down. Your penis feels strange inside of <<him>>. <span class="lewd">It looks different, like that of a <<if $wolfgirl gte 6>>wolf<<else>>fox<</if>>, complete with a knot. And it's stuck.</span> <br><br> <<if _gwylanStatus.includes("heat")>> <<He>> continues grinding against you, whining and chittering with pleasure. <<He>> trembles in bursts, fluids continuing to drool from <<his>> <<npcVagina>>. <<His>> back arches as your knot finally deflates. Finally, it exits with a pop, prompting Gwylan to slowly moan. <<if $internalejac>> Some of your cum spills out. <</if>> <<else>> The two of you sit in awkward silence while you wait for your knot to go down. "Don't get me wrong," Gwylan says after a while. "I like it." <<He>> grinds against you again, letting out a soft moan. Finally, it exits <<him>> with a pop. <<if $internalejac>> Some of your cum spills out. <</if>> <</if>> <<He>> turns even more red and stays quiet for a moment. You look down again, and your penis looks normal. <<He>> breaks the silence with a giggle. <<if !$gwylanSeen.includes("player_knotted_gwylan")>> "Don't think about it too much." <<else>> "It feels better each time." <</if>> <<set $gwylanSeen.pushUnique("player_knotted_gwylan")>> <<elseif _gwylanStatus.includes("heat")>> <<He>> bites your neck and holds you tightly, trembling as orgasmic waves wash over <<him>>. <<if _gwylanTF.fangs is "revealed">> <<He>> pulls away and licks the spot <<he>> bit, before licking <<his>> fangs in turn. <<pain 8>><<ggpain>> <<else>> <<He>> pulls away and kisses the spot <<he>> bit. <<pain 4>><<gpain>> <</if>> <</if>> <<elseif ($NPCList[_nn].penis is "otheranusfrot" or $NPCList[_nn].penis is "otheranusentrance" or $NPCList[_nn].penis is "otheranusimminent") and playerChastity("penis")>> <<if $consensual is 0 or _gwylanStatus.includes("heat")>> <<He>> quietly cums against your $worn.genitals.name. "Curse this wretched thing," <<he>> grumbles. <<else>> <<He>> quietly cums against your $worn.genitals.name. "Pesky thing," <<he>> pouts. <</if>> <<if _args[0] isnot "short">><<gwylanChastityRequest $consensual>><</if>> <<elseif $NPCList[_nn].penis is "otheranusfrot" or $NPCList[_nn].penis is "otheranusentrance" or $NPCList[_nn].penis is "otheranusimminent">> <<He>> lets out a ragged breath and shudders as <<he>> grinds against you <<bottom>>. <<He>> leans forward, worn out. "You're a bad <<girl>>, teasing me like that." <<elseif $NPCList[_nn].penis is "penis" and playerChastity("penis")>> <<if $consensual is 0 or _gwylanStatus.includes("heat")>> <<He>> quietly cums against your $worn.genitals.name. "Curse this wretched thing," <<he>> grumbles. <<else>> <<He>> quietly cums against your $worn.genitals.name. "Pesky thing," <<he>> pouts. <</if>> <<if _args[0] isnot "short">><<gwylanChastityRequest $consensual>><</if>> <<elseif $NPCList[_nn].penis is "penis">> <<switch random(1, 5)>> <<case 1>> <<He>> cums as you knead your <<penises>> together, shivering with pleasure. <<case 2>> <<He>> cums as you rub your <<penises>> together, shivering with pleasure. <<case 3>> <<He>> cums as you frot your <<penises>> together, shooting <<his>> impressive load over your <<penis>> and stomach. <<case 4>> <<He>> shivers as <<he>> grinds downs hard on your <<penis>> to finish. <<He>> uses the cum as lube, furiously milking out the last of <<his>> cum against your <<penis>>. <<case 5>> <<He>> giggles as <<he>> rubs hard against your <<penis>> to finish. <<He>> uses the cum as lube, furiously milking out the last of <<his>> semen against your <<penis>>. <</switch>> <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <<elseif $NPCList[_nn].penis is "penisentrance" or $NPCList[_nn].penis is "penisimminent">> <<He>> lets out a ragged breath and shudders as <<he>> grinds against you, shooting a load onto your tummy. <<He>> leans forward, worn out. "You're a bad <<girl>>, teasing me like that." <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <<elseif $NPCList[_nn].mouth is "penis" and $NPCList[_nn].vagina is "none" and $NPCList[_nn].penis isnot "none">> <<switch $player.penissize>> <<case 4>> <<if $orgasmdown or $internalejac>> <<He>> continues holding <<else>> <<He>> expertly holds <</if>> your <<penis>> in <<his>> throat even as <<he>> reaches climax. <<His>> mouth and throat hug you tightly. Finally, <<he>> releases you with a final gasp <<case 3 2 1>> <<if $orgasmdown or $internalejac>> <<He>> continues holding <<else>> <<He>> expertly holds <</if>> your <<penis>> in <<his>> mouth even as <<he>> reaches climax. When <<hes>> done shaking, <<he>> releases you <<default>> <<if $orgasmdown or $internalejac>> <<He>> continues holding <<else>> <<He>> holds <</if>> your <<penis>> in <<his>> mouth even as <<he>> reaches climax, continuing to pleasure your small length. When <<hes>> done shaking, <<he>> releases you <</switch>> <<if $internalejac>> and swallows. "Thanks for the meal." <<else>> and pouts. "Don't hold back next time. I was hungry for you." <</if>> <<elseif $NPCList[_nn].penis is "othermouth">> <<His>> tongue eagerly laps at you as <<he>> cums. <<if _gwylanStatus.includes("heat")>> <<He>> nibbles you before pulling away. <<else>> <<His>> hot breath makes you shiver as <<he>> pulls away. <</if>> <<He>> pushes a lock of hair away from <<his>> face and smiles at you. "Delicious." <</if>> <!-- Finishing moves --> <<if _args[0] isnot "short">> <br><br> <<if _gwylanTF.known and _gwylanStatus.includes("heat")>> <<if $position is "doggy">> <<if ["penis", "penisentrance", "penisimminent"].includes($NPCList[_nn].vagina) or ["penis", "penisentrance", "penisimminent"].includes($NPCList[_nn].anus)>> <<He>> presses against you, pushing you back until you're sitting, and sits in your lap. <<else>> <<He>> pulls you back until you're sitting on <<his>> lap. <</if>> <<else>> <<He>> lifts you up and sits in your lap with <<his>> legs around you. <</if>> <<He>> nuzzles <<his>> head into your shoulder and hugs you tightly. <<He>> lets out a series of short yips and whines in <<his>> <<if $pronoun is "m">>rut<<else>>heat<</if>>. <<if _gwylanTF.tail isnot "fake">> <<His>> tail flits back and forth as you hold each other. <</if>> <<elseif $consensual is 1 and $orgasmdown and (_gwylanStatus.includes("lust") or $gwylanSeen.includes("partners"))>> <<He>> pushes <<his>> head into the crook of your neck. You sit there for a few minutes as <<he>> plays with your hair, running <<his>> hands through it. "Finishing together always feels so much better," <<he>> whispers. <<trauma -2>><<ltrauma>> <<elseif $consensual is 0 and (_gwylanStatus.includes("lust") or $gwylanSeen.includes("partners"))>> <<He>> pushes <<his>> head into the crook of your neck and holds you in the grass. You sit there for a few minutes as <<he>> plays with your hair, running <<his>> hands through it. "Forgive me for being so assertive. That was nice." Despite the feeling of violation, <<his>> voice calms you. <<stress -3>><<lstress>> <<elseif $consensual is 0>> Once <<his>> shivers subside, <<he>> looks a little guilty. "I'm sorry. I got carried away." <</if>> <</if>> <<set $daily.gwylan.orgasm to true>> <</widget>><<widget "ejaculation-kylar">> <<set $ejaculating to 1>> <!-- Changing rows to future-proof the code: from $NPCList[0] to $NPCList[_nn], _nn being the main ejaculation loop handler --> <!-- Female KYLAR --> <<if wearingCondom("player") is "sabotaged" and $internalejac is 1 and $NPCList[_nn].vagina is "penis">> <<He>> convulses and moans, <<his>> pussy squeezing your cock. Kylar pulls back, bringing one hand to <<his>> pussy and parting <<his>> lips, only to show off your cum oozing out of <<his>> quim. "O-Oops," <<he>> says, trying to sound nervous. "W-well, I guess these things happen." <<His>> expression clearly betrays <<his>> true feelings. <<elseif $NPCList[_nn].vagina isnot "none" and $NPCList[_nn].penis is "none">> <<if $consensual is 1>> <<if $NPCList[_nn].vagina is "mouthentrance" or $NPCList[_nn].vagina is "mouth" or $NPCList[_nn].vagina is "mouthimminent">> <<switch random(1, 5)>> <<case 1 2>> <<He>> groans and rubs <<his>> crotch against your face with <<his>> hips, small thighs shaking with orgasm. <<case 3 4>> <<He>> goes red in the face and neck, mouth agape as <<he>> cums silently, body twitching uncontrollably. <<case 5>> <<He>> screams, cupping the back of your head in <<his>> hands and grinding <<his>> clit against your nose. <</switch>> <<elseif $NPCList[_nn].vagina is "leftarm">> <<switch random(1, 5)>> <<case 1 2>> <<He>> sighs as you finish with <<his>> pussy, shaking <<his>> slim thighs together against your hand as <<his>> body convulses. <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "goo">> <<case 3 4>> <<He>> goes red in the face and neck, mouth agape as <<he>> cums silently, cunt spasming against your hand. <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "goo">> <<case 5>> <<He>> screams, grabbing your hand and fucking <<his>> pussy with your fingers. Your fingers are soaked in ejaculate. <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "goo">> <</switch>> <<elseif $NPCList[_nn].vagina is "rightarm">> <<switch random(1, 5)>> <<case 1 2>> <<He>> sighs as you finish with <<his>> pussy, knees knocking as <<his>> body convulses. <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "rightarm" "goo">> <<case 3 4>> <<He>> goes red in the face and neck, mouth agape as <<he>> cums silently, cunt spasming against your hand. <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "rightarm" "goo">> <<case 5>> <<He>> screams, grabbing your hand and fucking <<his>> pussy with your fingers. Your fingers are soaked in ejaculate. <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "rightarm" "goo">> <</switch>> <<elseif $NPCList[_nn].vagina is "lefthand" or $NPCList[_nn].vagina is "righthand">> <<switch random(1, 5)>> <<case 1 2>> <<He>> sighs as <<he>> cums, releasing you and pulling back <<his>> hand, licking your wetness off <<his>> fingers. <<case 3 4>> <<He>> moans loudly and shakes, dripping ejaculate on the ground; <<he>> withdraws <<his>> hand and sighs. <<case 5>> <<He>> screams as <<he>> comes, soaking <<his>> own pussy and thighs in ejaculate. "I love pleasuring myself with you." <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "goo">> <</switch>> <<elseif $NPCList[_nn].vagina is "leftDildo">> <<switch random(1, 5)>> <<case 1 2>> <<He>> ?orgasmMoans as <<his>> body convulses, <<his>> thighs trembling against your $currentSexToyLeft.name. <<case 3 4>> <<His>> blush deepens and <<his>> mouth gapes as <<he>> cums against your $currentSexToyLeft.name. <<case 5>> <<He>> ?orgasmMoans and grasps your arm as your $currentSexToyLeft.name brings <<him>> to orgasm. <<His>> juices soak your $currentSexToyLeft.name. <</switch>> <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "goo">> <<elseif $NPCList[_nn].vagina is "rightDildo">> <<switch random(1, 5)>> <<case 1 2>> <<He>> ?orgasmMoans as <<his>> body convulses, <<his>> thighs trembling against your $currentSexToyRight.name. <<case 3 4>> <<His>> blush deepens and <<his>> mouth gapes as <<he>> cums against your $currentSexToyRight.name. <<case 5>> <<He>> ?orgasmMoans and grasps your arm as your $currentSexToyRight.name brings <<him>> to orgasm. <<His>> juices soak your $currentSexToyRight.name. <</switch>> <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "rightarm" "goo">> <<elseif $NPCList[_nn].vagina is "leftDildoAnus">> <<switch random(1, 5)>> <<case 1 2>> <<He>> ?orgasmMoans as <<his>> body convulses, <<his>> thighs trembling against your $currentSexToyLeft.name. <<case 3 4>> <<His>> blush deepens and <<his>> mouth gapes as <<he>> cums against your $currentSexToyLeft.name. <<case 5>> <<He>> ?orgasmMoans and grasps your arm as your $currentSexToyLeft.name brings <<him>> to orgasm. <</switch>> <<handejacstat>><<ejacstat>><<set $hygiene += 500>> <<elseif $NPCList[_nn].vagina is "rightDildoAnus">> <<switch random(1, 5)>> <<case 1 2>> <<He>> ?orgasmMoans as <<his>> body convulses, <<his>> thighs trembling against your $currentSexToyRight.name. <<case 3 4>> <<His>> blush deepens and <<his>> mouth gapes as <<he>> cums against your $currentSexToyRight.name. <<case 5>> <<He>> ?orgasmMoans and grasps your arm as your $currentSexToyRight.name brings <<him>> to orgasm. <</switch>> <<handejacstat>><<ejacstat>><<set $hygiene += 500>> <<elseif $NPCList[_nn].vagina is "feet">> <<switch random(1, 4)>> <<case 1 2>> <<He>> moans as you knead <<his>> pussy, jamming your toes inside with <<his>> hands as <<he>> finishes cumming. <<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "feet" "goo">> <<case 3 4>> <<He>> shakes bodily as <<he>> cums, twitching underneath your feet and cumming between your toes. <<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "feet" "goo">> <</switch>> <<elseif $NPCList[_nn].vagina is "vagina" and playerChastity("vagina")>> <<He>> gasps as <<he>> cums against your $worn.genitals.name. "Th-there must be a skeleton key for chastity stuff," <<he>> says. "I'll work it out." <<elseif $NPCList[_nn].vagina is "vagina">> <<switch random(1, 5)>> <<case 1 2>> <<He>> cums as you scissor your pussies together, moaning with pleasure. <<case 3 4>> <<He>> moans as <<he>> grinds downs hard on your <<pussy>> to finish, thin legs shaking as <<he>> cums. <<case 5>> <<He>> screams, cupping <<his>> small hands under your shoulders as <<his>> entire body shakes; you are surprised by how strong <<he>> is. Ejaculate drenches your crotch as <<he>> squirts. <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "goo">> <</switch>> <<elseif $NPCList[_nn].vagina is "othermouth">> <<switch random(1, 5)>> <<case 1 2>> <<He>> shudders with pleasure, exhaling warmly against your crotch as <<he>> comes, leaving you wet with saliva and your own fluids. <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "goo">> <<case 3 4>> <<He>> quietly ejaculates, shaking as <<he>> grinds <<his>> nose into your crotch and giving you a long, final, wet lick. <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "goo">> <<case 5>> <<He>> screams into your crotch as <<he>> cums, pinching <<his>> hands between <<his>> thighs and buckling over, ejaculate streaming down <<his>> thighs. <</switch>> <!-- following appear to be Male PC to Female Antagonist only? --> <<elseif $NPCList[_nn].vagina is "otheranus">> <<switch random(1, 5)>> <<case 1 2>> <<He>> shakes as <<he>> cums, driving <<his>> ass hard against you as <<he>> releases a final moan. <<case 3 4>> <<He>> quietly ejaculates, shaking as <<he>> grinds <<his>> ass deeply with your cock and moaning. <<case 5>> <<He>> screams and bucks into your crotch as <<he>> cums, squirting ejaculate from <<his>> pussy and drenching your legs. "I feel so good when I'm with you." <<thighejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "goo">> <</switch>> <<elseif $NPCList[_nn].vagina is "penis">> <<switch random(1, 5)>> <<case 1 2>> <<He>> grabs your shoulders with <<his>> small hands as <<he>> cums, bouncing down hard against your cock as <<he>> shudders with pleasure. "You make me feel so good." <<ejacstat>><<set $hygiene += 500>><<bodyliquid "penis" "goo">> <<case 3 4>> <<He>> sighs as <<he>> cums, reddening and going into a full body convulsion. Ejaculate soaks your crotch. <<ejacstat>><<set $hygiene += 500>><<bodyliquid "penis" "goo">> <<case 5>> <<He>> cries out and bucks on your lap as <<he>> cums, squirting ejaculate from <<his>> pussy and drenching your crotch and legs. <<ejacstat>><<set $hygiene += 500>><<bodyliquid "penis" "goo">> <<thighejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "goo">> <</switch>> <<elseif ($NPCList[_nn].vagina is "penisimminent" or $NPCList[_nn].vagina is "penisentrance") and playerChastity("penis")>> <<He>> gasps as <<he>> cums against your $worn.genitals.name. "Th-there must be a skeleton key for chastity devices," <<he>> says. "I'll work it out. Then you can fill me." <<elseif $NPCList[_nn].vagina is "penisimminent" or $NPCList[_nn].vagina is "penisentrance">> <<He>> cums on your <<penis>>. "Please fuck me next time. Please. I can't stand being teased like this. I need you inside me..." <<elseif ($NPCList[_nn].vagina is "otheranusfrot" or $NPCList[_nn].vagina is "otheranusentrance") and playerChastity("penis")>> <<He>> gasps as <<he>> cums against your $worn.genitals.name. "Th-there must be a skeleton key for chastity stuff," <<he>> says. "I'll work it out. Then you can fill me." <<elseif $NPCList[_nn].vagina is "otheranusfrot" or $NPCList[_nn].vagina is "otheranusentrance">> <<He>> bucks <<his>> ass against your cock as <<he>> cums. <<He>> begins crying, "Why won't you fuck me? Don't you love me?" <<elseif $NPCList[_nn].vagina is "frot" and playerChastity("penis")>> <<He>> gasps as <<he>> cums against your $worn.genitals.name. "Th-there must be a skeleton key for chastity stuff," <<he>> says. "I'll work it out." <<elseif $NPCList[_nn].vagina is "frot">> <<He>> grinds <<his>> clit hard against your cock as <<he>> cums, ejaculating on your cock. <<He>> looks panicked, "Why didn't you penetrate me? Who else is there? You can tell me..." <<ejacstat>><<set $hygiene += 500>><<bodyliquid "penis" "goo">> <!-- Special case male PC with female NPC --> <<elseif $NPCList[_nn].mouth is "penis">> <<switch random(1, 4)>> <<case 1 2>> <<He>> cums as you fuck <<his>> mouth, smiling as <<he>> finishes. <<case 3 4>> <<He>> cums as you fuck <<his>> mouth, leaving your <<penis>> a slimy mess. "I love what you do to me." <</switch>> <<else>> <<He>> convulses in orgasmic bliss. <</if>> <<else>> <<if $NPCList[_nn].vagina is "footjob">> <<switch random(1, 5)>> <<case 1 2 3>> <<He>> gasps as <<he>> cums. Recovering, <<he>> smiles and stands over you, your <<lewdness>> on display below <<him>>. "There are so many ways I can pleasure you; we can explore all of them." <<case 4 5>> <<He>> laughs as <<he>> cums, removing <<his>> foot from your crotch. "It makes me feel so powerful pleasuring you like this." <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "goo">> <</switch>> <<elseif $NPCList[_nn].vagina is "vagina" and playerChastity("vagina")>> <<He>> gasps as <<he>> cums against your $worn.genitals.name. "Th-there must be a skeleton key for chastity stuff," <<he>> says. <<elseif $NPCList[_nn].vagina is "vagina">> <<switch random(1, 5)>> <<case 1 2>> <<He>> groans as <<he>> cums, dragging <<his>> wet pussy across your ass and thighs. <<case 3 4>> <<He>> moans as <<he>> digs <<his>> nails into your shoulders and grinds downs hard on your <<pussy>>. You are surprised by <<his>> strength. <<case 5>> <<He>> screams, grabbing you by the hair and mashing <<his>> entire body against yours. Ejaculate streams from <<his>> pussy, drenching you. <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "goo">> <</switch>> <<elseif $NPCList[_nn].vagina is "othermouth">> <<He>> shakes with arousal as <<he>> cums, wiping <<his>> wet face clean on your stomach. <<elseif $NPCList[_nn].vagina is "lefthand" or $NPCList[_nn].vagina is "righthand">> <<He>> moans as <<he>> cums. <<He>> grabs you by the hair and pull <<his>> face close; you are surprised by <<his>> strength. "Don't forget I'm the only one allowed to pleasure you." <<elseif $NPCList[_nn].vagina is "mouthentrance" or $NPCList[_nn].vagina is "mouth" or $NPCList[_nn].vagina is "mouthimminent">> <<He>> groans and cups your head, grinding <<his>> clit against your nose as <<his>> small thighs shake with orgasm. <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "goo">> <!-- following appear to be Male PC to Female Antagonist only? --> <<elseif $NPCList[_nn].vagina is "otheranus">> <<He>> shakes as <<he>> cums, reaching back and digging <<his>> nails into your thighs as <<he>> releases a final moan. <<elseif $NPCList[_nn].vagina is "penis">> <<He>> digs <<his>> small fingers into your shoulders as <<he>> cums, driving <<his>> pussy down hard against your cock as <<he>> shudders with pleasure. <<elseif ($NPCList[_nn].vagina is "penisimminent" or $NPCList[_nn].vagina is "penisentrance") and playerChastity("penis")>> <<He>> gasps as <<he>> cums against your $worn.genitals.name. "I-I can't take this," <<he>> says. "I need you inside me. Th-there must be a skeleton key for chastity stuff." <<elseif $NPCList[_nn].vagina is "penisimminent" or $NPCList[_nn].vagina is "penisentrance">> <<He>> moans as <<he>> cums on your throbbing cock. <<He>> tears up, "Why didn't you fuck me? Who else is there? Tell me!" <<elseif ($NPCList[_nn].vagina is "otheranusfrot" or $NPCList[_nn].vagina is "otheranusentrance") and playerChastity("penis")>> <<He>> gasps as <<he>> cums against your $worn.genitals.name. "I-I can't take this," <<he>> says. "I need you inside me. Th-there must be a skeleton key for chastity stuff." <<elseif $NPCList[_nn].vagina is "otheranusfrot" or $NPCList[_nn].vagina is "otheranusentrance">> <<He>> swivels <<his>> ass against your cock as <<he>> cums. <<He>> begins crying "Please fuck me next time. I swear I'll be good..." <<elseif $NPCList[_nn].vagina is "frot" and playerChastity("penis")>> <<He>> gasps as <<he>> cums against your $worn.genitals.name. "Th-there must be a skeleton key for chastity stuff," <<he>> says. <<elseif $NPCList[_nn].vagina is "frot">> <<He>> grinds <<his>> clit hard against your cock as <<he>> cums. "Why didn't you fuck me? Am I not good enough for you? Is there someone else? There better not be someone else." <!-- Special case male PC with female NPC --> <<elseif $NPCList[_nn].mouth is "penis">> <<He>> cums as you fuck <<his>> mouth, pushing away as <<he>> gasps for air. "I can't take anymore... please forgive me." <<else>> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> trembles with orgasm. Pulling your face close, <<he>> says, "I want you with me forever." <<case 4 5 6>> <<He>> sighs quietly as <<he>> cums, stroking your back. "You know I'd die without you, don't you?" <<case 7>> <<He>> rapidly rubs <<his>> clit and screams as <<he>> cums; <<his>> pussy squirting and dripping down to <<his>> knees. "I can't control myself when I'm with you." <</switch>> <</if>> <</if>> <</if>> <!-- Male KYLAR --> <<if _condomResult is "leaked">> <span class="red">The condom broke.</span> <<elseif _condomResult is "burst">> <span class="red">The tip of the condom bursts and rips, exposing the head of <<his>> penis.</span> <</if>> <<if $consensual is 1>> <<if _condomResult is "contained">> <<genericCondomEjaculation>> <<elseif _condomResult is "burst" and $NPCList[_nn].penis is "vagina">> <<if $position is "doggy">> <<He>> groans, placing both hands on your <<bottom>> and thrusting hard against your movements, filling your womb with warm semen and fully ignoring the broken condom. "O-oh no! What do we do now?" <<he>> says, trying to sound nervous, but the wide smile on <<his>> face betrays <<his>> feelings. <<else>> <<He>> holds you in place and keeps thrusting slowly until <<hes>> emptied every last drop inside you, fully ignoring the broken condom. "W-well, they say that no contraceptive method is one hundred percent effective," <<he>> says, trying to sound nervous, but the wide smile on <<his>> face betrays <<his>> feelings. <</if>> <<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vagina" "semen">> <<recordVaginalSperm "pc" $NPCList[_nn] "human">> <<elseif npcHasStrapon(_nn)>> <<He>> moans and shivers in orgasmic bliss, grinding the strap-on against <<his>> genitals. <<elseif $NPCList[_nn].penis is "idle">> <<He>> groans as a wet patch forms on <<his>> trousers. You barely stifle a giggle at the sight. <<elseif $NPCList[_nn].penis is "thighs">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> shakes as <<he>> cums, pulling <<his>> cock out and ejaculating onto the backs of your thighs. <<thighejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <<case 4 5 6>> <<He>> grabs your legs, pushing <<his>> crotch hard into yours as <<he>> cums and ejaculating onto your tummy. <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <<case 7>> <<He>> groan as <<he>> cums, ejaculating a massive load that covers your thighs and tummy. <<thighejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <<tummyejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <</switch>> <<elseif $NPCList[_nn].penis is "vaginaentrance" and playerChastity("vagina")>> <<He>> gasps as <<he>> cums against your $worn.genitals.name. "I-I can't take this," <<he>> says. "I need to go inside you. Th-there must be a skeleton key for chastity stuff." <<elseif $NPCList[_nn].penis is "vaginaentrance">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> holds you still by the hips with one hand and with the other on <<his>> cock, ejaculates onto your <<pussy>>. Semen coats your outer lips and pools around your legs. <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 5, rngType: "canWash"}`>> <<case 4 5 6>> <<He>> strokes <<his>> cock and ejaculates onto your <<pussy>> without a word, sending white streams of semen running down your cunt. <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 5, rngType: "canWash"}`>> <<case 7>> <<He>> moans and strokes <<his>> cock as <<he>> cums, sending thick ropes of semen onto your <<pussy>> and ass. <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<bottomejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 5, rngType: "canWash"}`>> <</switch>> <<elseif $NPCList[_nn].penis is "vaginaimminent" and playerChastity("vagina")>> <<He>> gasps as <<he>> cums onto your $worn.genitals.name. "I-I can't take this," <<he>> says. "I need to fill you. Th-there must be a skeleton key for chastity stuff." <<elseif $NPCList[_nn].penis is "vaginaimminent">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> cums before <<he>> can penetrate your <<pussy>>, ejaculating on the outside. Semen coats your outer lips and tummy; <<he>> seems upset with <<himself>>. <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 15, rngType: "canWash"}`>> <<case 4 5 6>> <<He>> ejaculates onto your <<pussy>> before <<he>> can penetrate you, sending white streams of semen running down your <<pussy>>; <<he>> seems disappointed. <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 15, rngType: "canWash"}`>> <<case 7>> <<He>> moans and strokes <<his>> cock as <<he>> cums, sending thick ropes of semen onto your <<pussy>> and ass. <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<bottomejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 15, rngType: "canWash"}`>> <</switch>> <<elseif $NPCList[_nn].penis is "vagina">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> moans and thrusts deeply into your <<pussy>> as <<he>> cums, holding <<his>> cock deep in your womb. You feel warm as semen fills your vagina. <<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vagina" "semen">> <<recordVaginalSperm "pc" $NPCList[_nn] "human">> <<case 4 5 6>> <<He>> quiets and grabs your shoulders with <<his>> small hands, pulling you onto <<his>> cock as <<he>> cums. Semen fills your <<pussy>>, leaving you breathless. <<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vagina" "semen">> <<recordVaginalSperm "pc" $NPCList[_nn] "human">> <<case 7>> <<He>> convulses and grinds down on your crotch as <<he>> cums, sending thick waves of cum into your <<pussy>>. Semen oozes from your vagina and down your legs. <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<vaginalejacstat>><<set $hygiene += 500>><<bodyliquid "vagina" "semen">> <<thighejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <<recordVaginalSperm "pc" $NPCList[_nn] "human">> <</switch>> <<elseif $NPCList[_nn].penis is "cheeks" and playerChastity()>> <<He>> gasps as <<he>> cums onto your $worn.genitals.name. "I-I can't take this," <<he>> says. "I need to fill you. Th-there must be a skeleton key for chastity stuff." <<elseif $NPCList[_nn].penis is "cheeks">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> shakes as <<he>> cums, withdrawing <<his>> cock from your cheeks and ejaculating onto your ass. <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 4 5 6>> <<He>> grabs your thighs, pushing <<his>> crotch hard against your ass and ejaculating between your cheeks. <!-- Really should be onto PCs back given position. Or hair maybe. Esp next one --> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 7>> <<He>> squeezes your cheeks together and grunts as <<he>> cums, sending out massive load that covers your ass and drips down your crotch; <<he>> seems pleased. <<bottomejacstat>><<ejacstat>><<set $hygiene += 1000>><<bodyliquid "bottom" "semen" 2>> <</switch>> <<elseif $NPCList[_nn].penis is "anusentrance" and playerChastity("anus")>> <<He>> gasps as <<he>> cums onto your $worn.genitals.name. "I-I can't take this," <<he>> says. "I need to fill you. Th-there must be a skeleton key for chastity stuff." <<elseif $NPCList[_nn].penis is "anusentrance">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> pinches your asscheek with one hand and strokes <<his>> cock with the other, ejaculating onto your bottom. Semen drips down your butt and into your crack. <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 4 5 6>> <<He>> strokes <<his>> cock and quietly ejaculates onto your ass. You feel warm semen dripping down your bottom. <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 7>> <<He>> moans and strokes <<his>> cock as <<he>> cums, sending thick ropes of semen onto your ass and down your crotch. <<bottomejacstat>><<ejacstat>><<set $hygiene += 1000>><<bodyliquid "bottom" "semen" 2>> <</switch>> <<recordSperm `{genital: "anus", target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 5, rngType: "canWash"}`>> <<elseif $NPCList[_nn].penis is "anusimminent" and playerChastity("anus")>> <<He>> gasps as <<he>> cums onto your $worn.genitals.name. "I-I can't take this," <<he>> says. "I need to fill you. Th-there must be a skeleton key for chastity stuff." <<elseif $NPCList[_nn].penis is "anusimminent">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> cums before <<he>> can penetrate your ass, ejaculating on the outside. Semen coats your ass and drips down your crack; <<he>> seems upset with <<himself>>. <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 4 5 6>> <<He>> strokes <<his>> cock and ejaculates onto your ass before <<he>> can penetrate you, sending white streams of semen running down your crack; <<he>> seems upset. <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 7>> <<He>> moans and strokes <<his>> cock as <<he>> cums, sending thick ropes of semen onto your ass and crotch. <<bottomejacstat>><<ejacstat>><<set $hygiene += 1000>><<bodyliquid "bottom" "semen" 2>> <</switch>> <<recordSperm `{genital: "anus", target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 15, rngType: "canWash"}`>> <<elseif $NPCList[_nn].penis is "anus">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> moans and thrusts into your ass as <<he>> cums. You gasp as you feel semen filling you. <<analejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "anus" "semen">> <<recordAnusSperm "pc" $NPCList[_nn] "human">> <<case 4 5 6>> <<He>> wordlessly grabs your shoulders, pulling you back onto <<his>> cock as <<he>> cums. Semen fills your ass as you moan with pleasure. <<analejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "anus" "semen">> <<recordAnusSperm "pc" $NPCList[_nn] "human">> <<case 7>> <<He>> convulses and, with a final shove, cums in your ass. Thick waves of semen pump into you. You're surprised at the amount; cum oozes from your ass and runs down your legs. <<analejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "anus" "semen">> <<thighejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <<recordAnusSperm "pc" $NPCList[_nn] "human">> <</switch>> <<elseif $NPCList[_nn].penis is "chest">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> pushes your <<breasts>> together tight on <<his>> cock as <<he>> cums, ejaculating onto them. Your body feels slick with cum. <<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <<case 4 5 6>> <<He>> strokes the tip of <<his>> cock between your <<breasts>> and quietly ejaculates on them. Your <<breasts>> feel cool as semen drips down them. <<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <<case 7>> <<He>> puts <<his>> hand behind your neck and bears down on your <<breasts>>, grunting as <<he>> cums; semen shoots between your <<breasts>> and covers your <<if $position is "missionary">>face<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">><<else>>stomach<<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">><</if>>. <<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <</switch>> <<elseif $NPCList[_nn].penis is "mouthentrance">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> cups you under the chin with one hand and strokes <<his>> cock with the other, ejaculating onto your face. <<He>> says, "Oh my god, I'm so sorry," but <<his>> face looks excited. <<set $hygiene += 500>><<bodyliquid "face" "semen">> <<case 4 5 6>> <<He>> strokes <<his>> cock and quietly ejaculates onto your face. Warm cum drips down your forehead and nose. <span class="green"><<He>> leans down and licks it off.</span> <<case 7>> <<He>> gasps and strokes <<his>> cock while aiming straight at your mouth. Thick ropes of cum cover your face and push past your closed lips into your mouth. You're impressed by the volume and <<he>> looks oddly pleased with <<himself>>. <<set $hygiene += 500>><<bodyliquid "face" "semen">><<cumswallow `$NPCList[_nn].type` null `npcSemenMod($NPCList[_nn].penissize)`>> <</switch>> <<faceejacstat>><<ejacstat>> <<elseif $NPCList[_nn].penis is "mouthimminent">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> cups the back of your head, ejaculating onto your lips as you barely brush against the tip of <<his>> penis; <<he>> seems upset with <<his>> lack of control. <<case 4 5 6>> <<He>> brushes <<his>> cock against your face, causing <<him>> to ejaculate early. Cum drips down your lips and chin; <<he>> seems upset with <<himself>>. <<case 7>> <<He>> cups your head but in <<his>> excitement cums before <<he>> can enter your mouth. Thick ropes of cum cover your cheeks, chin, and into your waiting mouth. <<oralejacstat>><<cumswallow `$NPCList[_nn].type` null `npcSemenMod($NPCList[_nn].penissize)`>> <</switch>> <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <<elseif $NPCList[_nn].penis is "mouth">> <!-- this is picking up women NPCs...? --> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> cups you under the chin with one hand and holds the back of your head with the other, thrusting into your mouth as <<he>> cums. Ejaculate streams down your throat and fills your mouth. <<case 4 5 6>> <<He>> grasps the base of <<his>> cock and moans, quietly ejaculating into your mouth. You feel warm cum fill your mouth and drip down your throat. <<case 7>> <<He>> palms your head, wildly thrusting <<his>> cock in your mouth as <<he>> cums. Semen streams down your throat, fills your mouth and covers your face as <<he>> flails. "It's hard to control myself with you." <<faceejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <</switch>> <<oralejacstat>><<ejacstat>><<cumswallow `$NPCList[_nn].type` null `npcSemenMod($NPCList[_nn].penissize)`>> <<elseif $NPCList[_nn].penis is "feet">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> pushes your feet together and groans as <<he>> cums. Ejaculate covers your feet. <<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "feet" "semen">> <<case 4 5 6>> <<He>> quietly cums on your feet, slickening them with semen. <<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "feet" "semen">> <<case 7>> <<He>> grunts and thrusts <<his>> cock between your feet as <<he>> cums, splattering cum on your feet and legs in the process. <<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "feet" "semen">> <<thighejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <</switch>> <<elseif $NPCList[_nn].penis is "leftarm" and $NPCList[_nn].penis is "rightarm">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> groans as <<he>> cums, penis pulsing in your hands, covering them both in cum. <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "semen">><<bodyliquid "rightarm" "semen">> <<case 4 5 6>> <<He>> quietly cums on your hands, slickening them with semen. <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "semen">><<bodyliquid "rightarm" "semen">> <<case 7>> <<He>> spasms and moans, shooting thick streams of cum. You are so intent on your work you don't notice <<his>> penis is aimed at your face, which is splattered with cum in the process. "Oh God, I'm so sorry," <<he>> says, but <<his>> face betrays <<his>> words. <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "semen">><<bodyliquid "rightarm" "semen">> <<faceejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <</switch>> <<elseif $NPCList[_nn].penis is "leftarm">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> groans as <<he>> cums, penis sliding hotly in your left hand and covering it with cum. "You make me feel so good." <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "semen">> <<case 4 5 6>> <<He>> quietly cums on your left hand. Semen drips down your fingers. "I love how you make me feel." <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "semen">> <<case 7>> <<He>> spasms and moans, shooting thick streams of cum and splattering your <<breasts>> in the process. You're impressed by the volume from such a small body. <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "semen">> <<chestejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <</switch>> <<elseif $NPCList[_nn].penis is "rightarm">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> groans as you work <<his>> shaft with your right hand, cumming as you give <<him>> a final squeeze. Your hand is covered in warm semen. "You make me feel so special." <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "rightarm" "semen">> <<case 4 5 6>> <<He>> quietly cums on your right hand. Semen cools on your fingers. "I love how you make me feel." <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "rightarm" "semen">> <<case 7>> <<He>> grunts and shoots thick ropes of semen onto your hands, making an impressive mess. You're impressed by the volume from such a small body. <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "rightarm" "semen">> <</switch>> <<elseif $NPCList[_nn].penis is 0>> <<switch random(1, 4)>> <<case 1>> <<He>> groans as <<he>> works <<his>> shaft and, giving <<his>> cock a final squeeze, ejaculates onto your tummy. "I guess that's okay because you're mine." <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <<case 2>> <<He>> rapidly rubs <<his>> cock and moans, ejaculating on the ground. "You make me feel so good." <<case 3>> <<He>> strokes <<his>> penis and, aiming at your ass, ejaculates on your bottom. "I'm sorry, I just couldn't help myself." <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 4>> <<He>> strokes <<his>> penis and moans, ejaculating on your <<breasts>>. <<He>> apologies and licks up the mess. <</switch>> <<elseif $NPCList[_nn].penis is "otheranus">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> groans as you fuck <<his>> ass, <<his>> ejaculate spraying on <<his>> own stomach. "I love how you make me feel." <<case 4 5>> <<He>> whimpers as you pound <<his>> ass, moaning in pleasure as <<he>> ejaculates on the ground. You roll off <<him>>. <<case 6 7>> <<He>> sighs as <<he>> ejaculates onto <<his>> own chest. "I want you to stay with me forever..." <</switch>> <<elseif ($NPCList[_nn].penis is "otheranusfrot" or $NPCList[_nn].penis is "otheranusentrance" or $NPCList[_nn].penis is "otheranusimminent") and playerChastity("penis")>> <<He>> gasps as <<he>> cums onto your $worn.genitals.name. "I-I can't take this," <<he>> says. "I need to fill you. Th-there must be a skeleton key for chastity stuff." <<elseif $NPCList[_nn].penis is "otheranusfrot" or $NPCList[_nn].penis is "otheranusentrance" or $NPCList[_nn].penis is "otheranusimminent">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> noisily cums as you fuck <<his>> cheeks, grabbing your ass from behind and grinding your cock against <<his>> ass to finish. "Please fuck me properly next time. Please. I can't stand being teased. Please..." <<case 4 5>> <<He>> moans as you rub against <<his>> anus and ejaculates on the ground. <<He>> seems disappointed, "Why didn't you fuck me? Don't you love me? Am I not good enough for you?" <<case 6 7>> <<He>> sobs as <<he>> ejaculates onto <<his>> own chest and begins crying, "Why didn't you fuck me? Tell me what I can do to deserve your cock..." <</switch>> <<elseif $NPCList[_nn].penis is "penis" and playerChastity("penis")>> <<switch random(2)>> <<case 0>> <<He>> gasps as <<he>> shoots <<his>> impressive load all over your $worn.genitals.name. "Th-there must be a skeleton key for chastity stuff," <<he>> says. "I'll work it out." <<case 1>> <<He>> moans in ecstasy, drenching your $worn.genitals.name in ropes of hot cum. "N-no... we need to be together!" <<He>> gasps in frustration. <<case 2>> <<He>> screams in pleasure, showering your $worn.genitals.name in streams of sticky cum. <<He>> uses the milky fluid to finger paint love hearts on your cheek. "Mine." <</switch>> <<elseif $NPCList[_nn].penis is "penis">> <<switch random(1, 7)>> <<case 1>> <<He>> cums as you knead your <<penises>> together, moaning with pleasure. "God, I love you so much!" <<set $kylarSeen.pushUnique("saidLove")>> <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <<case 2>> <<He>> cums as you rub your <<penises>> together, moaning with pleasure. <<He>> rubs <<his>> own cum all over your shaft. "Keep my s-smell on you." <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <<case 3>> <<He>> cums as you frot your <<penises>> together, shooting <<his>> impressive load over your <<penis>> and stomach. <<He>> wipes some of <<his>> cum on your lips. "Taste our love juices." <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <<case 4>> <<He>> moans as <<he>> grinds downs hard on your <<penis>> to finish, thin legs shaking as <<he>> cums. <<He>> uses the cum as lube, furiously milking out the last of <<his>> cum against your <<penis>>. <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <<case 5>> <<He>> giggles as <<he>> rubs hard against your <<penis>> to finish. <<He>> uses the cum as lube, furiously milking out the last of <<his>> semen against your <<penis>>. "N-next time I want you to im-impregnate my ass." <<He>> smirks. <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <<case 6>> <<He>> screams as <<he>> grinds hard against your <<penis>> to finish, thin legs shaking as <<he>> cums. "N-next time I want you to fuck me." <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <<case 7>> <<He>> screams, cupping <<his>> small hands under your shoulders as <<his>> entire body shakes; you are surprised by how strong <<he>> is. Ropes of semen drench your crotch as <<he>> cums. <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <</switch>> <<elseif $NPCList[_nn].penis is "penisentrance" or $NPCList[_nn].penis is "penisimminent">> <<switch random(1, 7)>> <<case 1 2>> <<He>> cums before <<he>> can frot your <<penis>>, ejaculating on the outside. Semen coats your cock and tummy; <<he>> seems upset with <<himself>>. <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <<case 3 4>> <<He>> ejaculates onto your <<penis>> before <<he>> can frot your <<penises>> together, sending white streams of semen running down your <<penis>>; <<he>> seems disappointed. <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <<case 5>> <<He>> moans and strokes <<his>> cock as <<he>> cums, sending thick ropes of semen onto your <<penis>> and ass. <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <<bottomejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 6>> <<He>> whimpers as <<he>> ejaculates onto <<his>> own chest and begins crying. "W-why? Why didn't you fuck me? What can I do to deserve your cock?" <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <<case 7>> <<He>> cums before your <<penises>> touch, covering you in <<his>> massive load. Semen coats your tummy and crotch. <<He>> pants in your ear, "S-sorry for the mess. I love you so much." <<set $kylarSeen.pushUnique("saidLove")>> <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <</switch>> <!-- Special case male PC being orally serviced by male NPC with no other contact --> <<elseif $NPCList[_nn].mouth is "penis">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> cums as you fuck <<his>> mouth, gasping against your cock. "God, I love you so much." <<set $kylarSeen.pushUnique("saidLove")>> <<case 4 5>> <<He>> cums on the ground as you fuck <<his>> mouth. <<He>> backs away, "I'm sorry; I can't take anymore. Please forgive me." <<case 6 7>> <<He>> grabs you by the ass and drives your cock deeply into <<his>> throat, ejaculating on <<his>> chest as <<he>> throats your cock. <</switch>> <<elseif $NPCList[_nn].penis is "othermouth">> <<He>> shakes with arousal as <<he>> cums, wiping <<his>> wet face clean on your body. <</if>> <<if $NPCList[_nn].penis isnot "none" and !$NPCList[_nn].penisdesc.includes("strap-on") and _condomResult is "leaked">> Despite wearing a condom, it was too damaged to stop the cum. <</if>> <br><br> <<else>> <<if _condomResult is "contained">> <<genericCondomEjaculation>> <<elseif $NPCList[_nn].penis is "idle">> <<He>> groans as a wet patch forms on <<his>> trousers. You barely stifle a laugh at the pathetic display. <<elseif $NPCList[_nn].penis is "thighs">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> shakes as <<he>> cums, pulling <<his>> cock out and ejaculating onto the backs of your thighs and wipes <<his>> cock clean on your ass. <<thighejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <<case 4 5 6>> <<He>> grabs your legs, slamming <<his>> crotch hard into your ass as <<he>> cums and ejaculates onto your tummy. <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <<case 7>> <<He>> groan as <<he>> cums, ejaculating a massive load that covers your thighs and tummy. <<He>> seems impressed with <<himself>>. <<thighejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <<tummyejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <</switch>> <<elseif $NPCList[_nn].penis is "vaginaentrance" and playerChastity("vagina")>> <<He>> gasps as <<he>> cums onto your $worn.genitals.name. "I-I can't take this," <<he>> says. "I need to fill you. Th-there must be a skeleton key for chastity stuff." <<elseif $NPCList[_nn].penis is "vaginaentrance">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> grabs your hips, pulling you back and ejaculating onto your <<pussy>>. Semen coats your outer lips and pools around your legs. <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 5, rngType: "canWash"}`>> <<case 4 5 6>> <<He>> strokes <<his>> cock and ejaculates onto your <<pussy>> without a word, sending white streams of semen running down your cunt. <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 5, rngType: "canWash"}`>> <<case 7>> <<He>> moans and strokes <<his>> cock as <<he>> cums, sending thick ropes of semen onto your <<pussy>> and ass. <<He>> seems impressed with the mess <<hes>> made. <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<bottomejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 5, rngType: "canWash"}`>> <</switch>> <<elseif $NPCList[_nn].penis is "vaginaimminent" and playerChastity("vagina")>> <<He>> gasps as <<he>> cums onto your $worn.genitals.name. "I-I can't take this," <<he>> says. "I need to fill you. Th-there must be a skeleton key for chastity stuff." <<elseif $NPCList[_nn].penis is "vaginaimminent">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> cums before <<he>> can penetrate your <<pussy>>, ejaculating on the outside. Semen coats your outer lips and tummy. <<He>> turns beet red in anger, small fists shaking, but does nothing. <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 15, rngType: "canWash"}`>> <<case 4 5 6>> <<He>> ejaculates onto your <<pussy>> before <<he>> can penetrate you, sending white streams of semen running down your cunt; <<he>> pulls <<his>> own hair in frustration. <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 15, rngType: "canWash"}`>> <<case 7>> <<He>> moans and strokes <<his>> cock as <<he>> cums, sending thick ropes of semen onto your <<pussy>> and ass. <<He>> seems upset at first, but then smiles as <<he>> looks down on your <<lewdness>> covered in <<his>> cum. <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<bottomejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 15, rngType: "canWash"}`>> <</switch>> <<elseif $NPCList[_nn].penis is "vagina">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> grabs your hair, pulling and thrusting deeply into your <<pussy>> as <<he>> cums, holding <<his>> cock deep in your womb. Semen splashes inside your cunt. <<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vagina" "semen">> <<recordVaginalSperm "pc" $NPCList[_nn] "human">> <<case 4 5 6>> <<He>> quiets and pounds <<his>> cock into you as <<he>> cums. Semen fills your <<pussy>> as you gasp at the feeling of being filled against your will. <<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vagina" "semen">> <<recordVaginalSperm "pc" $NPCList[_nn] "human">> <<case 7>> <<He>> convulses and grinds down on your cunt as <<he>> cums, sending thick waves of cum into your <<pussy>>. Semen oozes from your vagina and down your legs. <<He>> looks down at the mess <<hes>> made with satisfaction. <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<vaginalejacstat>><<set $hygiene += 500>><<bodyliquid "vagina" "semen">> <<thighejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <<recordVaginalSperm "pc" $NPCList[_nn] "human">> <</switch>> <<elseif $NPCList[_nn].penis is "cheeks" and playerChastity()>> <<He>> gasps as <<he>> cums onto your $worn.genitals.name. "I-I can't take this," <<he>> says. "I need to fill you. Th-there must be a skeleton key for chastity stuff." <<elseif $NPCList[_nn].penis is "cheeks">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> shakes as <<he>> cums, withdrawing <<his>> cock from your cheeks and ejaculating onto your ass. <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 4 5 6>> <<He>> palms your cheeks with <<his>> small hands and pulls you hard against <<him>>, ejaculating between your cheeks. You are surprised by <<his>> strength. <!-- Really should be onto PCs back given position. Or hair maybe. Esp next one --> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 7>> <<He>> squeezes your cheeks together and grunts as <<he>> cums, sending out massive load that covers your ass and drips down your crotch. "You make me feel alive." <<bottomejacstat>><<ejacstat>><<set $hygiene += 1000>><<bodyliquid "bottom" "semen" 2>> <</switch>> <<elseif $NPCList[_nn].penis is "anusentrance" and playerChastity("anus")>> <<He>> gasps as <<he>> cums onto your $worn.genitals.name. "I-I can't take this," <<he>> says. "I need to fill you. Th-there must be a skeleton key for chastity stuff." <<elseif $NPCList[_nn].penis is "anusentrance">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> holds your asscheek with one hand and strokes <<his>> cock with the other, ejaculating onto your bottom. Semen drips down your butt and into your crack. <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 4 5 6>> <<He>> strokes <<his>> cock and quietly ejaculates onto your ass. You feel semen dripping down your crack and feel filthy inside. <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 7>> <<He>> moans and strokes <<his>> cock as <<he>> cums, sending thick ropes of semen onto your ass and down your crotch. <<bottomejacstat>><<ejacstat>><<set $hygiene += 1000>><<bodyliquid "bottom" "semen" 2>> <</switch>> <<recordSperm `{genital: "anus", target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 5, rngType: "canWash"}`>> <<elseif $NPCList[_nn].penis is "anusimminent" and playerChastity("anus")>> <<He>> gasps as <<he>> cums onto your $worn.genitals.name. "I-I can't take this," <<he>> says. "I need to fill you. Th-there must be a skeleton key for chastity stuff." <<elseif $NPCList[_nn].penis is "anusimminent">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> cums before <<he>> can penetrate your ass, ejaculating on the outside. Semen coats your ass and drips down your crack; <<he>> seems furious, but at <<himself>>, shaking with anger. <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 4 5 6>> <<He>> strokes <<his>> cock and ejaculates onto your ass before <<he>> can penetrate you, sending white streams of semen running down your crack; <<he>> seems upset. <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 7>> <<He>> moans and strokes <<his>> cock as <<he>> cums, sending thick ropes of semen onto your ass and crotch. <<He>> seems disappointed but smiles as <<he>> looks at your drenched ass. <<bottomejacstat>><<ejacstat>><<set $hygiene += 1000>><<bodyliquid "bottom" "semen" 2>> <</switch>> <<recordSperm `{genital: "anus", target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 15, rngType: "canWash"}`>> <<elseif $NPCList[_nn].penis is "anus">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> moans, pounding your ass mercilessly as <<he>> cums. You whimper as you feel unwelcome semen streaming in your asshole. <<analejacstat>><<ejacstat>><<set $hygiene += 500>> <<recordAnusSperm "pc" $NPCList[_nn] "human">> <<case 4 5 6>> <<He>> wordlessly grabs your hair, pulling you hard onto <<his>> cock as <<he>> cums. Semen fills you as you cry out. "I know you'll come to love me as much as I love you." <<set $kylarSeen.pushUnique("saidLove")>> <<analejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "anus" "semen">> <<recordAnusSperm "pc" $NPCList[_nn] "human">> <<case 7>> <<He>> convulses and with a final shove, cums in your ass. Thick waves of semen pump into you. <span class="blue">You gasp as your ass overflows;</span> cum oozes from your ass and runs down your legs. "No one will ever love you as much as I do." <<set $kylarSeen.pushUnique("saidLove")>> <<analejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "anus" "semen">> <<thighejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <<recordAnusSperm "pc" $NPCList[_nn] "human">> <</switch>> <<elseif $NPCList[_nn].penis is "chest">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> pinches your <<breasts>> together on <<his>> cock as <<he>> cums, ejaculating onto them. "I guess I'm marking my territory," <<he>> says with a smile. <<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <<case 4 5 6>> <<He>> strokes the tip of <<his>> cock between your <<breasts>> and ejaculates onto them. Your <<breasts>> cool as semen slides down your body. <<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <<case 7>> <<He>> puts <<his>> hand behind your neck, mashing your face against <<his>> body and bearing down on your <<breasts>>; semen shoots between and covers your <<if $position is "missionary">>face<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">><<else>>stomach<<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">><</if>> as you gasp. <<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <</switch>> <<elseif $NPCList[_nn].penis is "mouthentrance">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> grabs your chin with one hand and strokes <<his>> cock with the other, ejaculating onto your face. "It's okay because we belong to each other." <<set $hygiene += 500>><<bodyliquid "face" "semen">> <<case 4 5 6>> <<He>> strokes <<his>> cock and palming your head, ejaculates onto your face. Warm cum drips down your forehead and nose. <<He>> licks it off your face. <<case 7>> <<He>> grasps your hair tightly in <<his>> small fist, stroking <<his>> cock while aiming straight at your mouth. <span class="pink">You splutter and gag as thick ropes of cum push past your clenched lips and into your mouth.</span> "I'm sorry but it's your fault; you make me lose control of myself." <<set $hygiene += 500>><<bodyliquid "face" "semen">><<cumswallow `$NPCList[_nn].type` null `npcSemenMod($NPCList[_nn].penissize)`>> <</switch>> <<faceejacstat>><<ejacstat>> <<elseif $NPCList[_nn].penis is "mouthimminent">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> grips hair at the nape your neck, ejaculating onto your lips as you barely brush against the tip of <<his>> penis. <<His>> face reddens in silent anger. <<case 4 5 6>> <<He>> brushes <<his>> cock against your face, causing <<him>> to ejaculate early. Cum drips down your lips and chin; frustrated, <<he>> stamps <<his>> feet in tantrum. <<case 7>> <<He>> grasps your hair but in <<his>> excitement cums before <<he>> can enter your mouth. Thick ropes of cum cover your cheeks, chin, and into your waiting mouth. <<He>> looks frustrated. <<oralejacstat>><<cumswallow `$NPCList[_nn].type` null `npcSemenMod($NPCList[_nn].penissize)`>> <</switch>> <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <<elseif $NPCList[_nn].penis is "mouth">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> grabs you under the chin with one hand and by your hair with the other, shoving <<his>> cock down your throat as <<he>> cums. You gag and retch as unwanted semen streams down your throat, forcing you to swallow. <<case 4 5 6>> <<He>> grabs you by the shoulder in one hand and grasps the base of <<his>> cock in the other, quietly ejaculating into your mouth. You gag as cum fills your mouth and drips down your throat. <<case 7>> <<He>> palms your head, wildly thrusting <<his>> cock down your throat as <<he>> cums. <span class="pink">You whimper as semen streams down your throat,</span> fills your mouth and covers your face as <<he>> flails. "I just get so excited when you're with me." <<faceejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <</switch>> <<oralejacstat>><<ejacstat>><<cumswallow `$NPCList[_nn].type` null `npcSemenMod($NPCList[_nn].penissize)`>> <<elseif $NPCList[_nn].penis is "feet">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> pushes your feet together and groans as <<he>> cums. Ejaculate covers your feet. <<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "feet" "semen">> <<case 4 5 6>> <<He>> quietly cums on your feet, slickening them with semen. <<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "feet" "semen">> <<case 7>> <<He>> grunts and thrusts <<his>> cock between your feet as <<he>> cums, splattering cum on your feet and legs in the process. <<He>> seems impressed with the mess. <<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "feet" "semen">> <<thighejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <</switch>> <<elseif $NPCList[_nn].penis is "leftarm" and $NPCList[_nn].penis is "rightarm">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> groans as <<he>> cums, penis pulsing in your hands, covering them both in cum. <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "semen">><<bodyliquid "rightarm" "semen">> <<case 4 5 6>> <<He>> quietly cums on your hands, slickening them with semen. <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "semen">><<bodyliquid "rightarm" "semen">> <<case 7>> <<He>> spasms and moans, shooting thick streams of cum. You are so intent on your work you don't notice <<his>> penis is aimed at your face, which is splattered with cum in the process. "I'm sorry but I guess it's okay because we belong to each other." <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "semen">><<bodyliquid "rightarm" "semen">> <<faceejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <</switch>> <<elseif $NPCList[_nn].penis is "leftarm">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> groans as <<he>> cums, penis sliding hotly in your left hand and covering it with cum. Grabbing your hand by the wrist, <<he>> licks it clean. <<case 3 4>> <<He>> spasms and moans, shooting thick streams of cum. You are so intent on keeping <<him>> occupied you don't notice <<his>> penis is aimed at your face, which is splattered with cum in the process. <<faceejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <<set $hygiene += 500>><<bodyliquid "leftarm" "semen">> <<case 6 7>> <<He>> spasms and moans, shooting thick streams of cum and splattering your chest in the process. <<chestejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <<set $hygiene += 500>><<bodyliquid "leftarm" "semen">> <</switch>> <<handejacstat>><<ejacstat>> <<elseif $NPCList[_nn].penis is "rightarm">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> groans as you work <<his>> shaft with your right hand, cumming as you give <<him>> a final squeeze; <<he>> flicks <<his>> cock clean on the ground. <<case 4 5>> <<He>> spasms and moans, shooting thick streams of cum. You are so intent on keeping <<him>> occupied you don't notice <<his>> penis is aimed at your chest, which is splattered with cum in the process. <<chestejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <<case 6 7>> <<He>> grunts and shoots thick ropes of semen onto your hand, making an impressive mess. <</switch>> <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "rightarm" "semen">> <<elseif $NPCList[_nn].penis is 0>> <<switch random(1, 5)>> <<case 1>> <<He>> groans as <<he>> works <<his>> shaft and, giving <<his>> cock a final squeeze, ejaculates onto your tummy. "I love that we can do this together, don't you?" <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <<case 2>> <<He>> rapidly rubs <<his>> cock and cums on the ground. <<case 3>> <<He>> strokes <<his>> penis and, aiming at your ass, ejaculates on your bottom. <<He>> looks at your <<lewdness>> covered in <<his>> ejaculate and smiles. <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 4>> <<He>> strokes <<his>> penis and moans, ejaculating on your <<breasts>>. <<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <<case 5>> <<He>> moans and rubs <<his>> cock wildly, sending cum flying all over your body. "I'm sorry, but I just lose control when you're near me." <<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <<tummyejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <</switch>> <<elseif $NPCList[_nn].penis is "otheranus">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> groans as you fuck <<his>> ass; <<he>> catches <<his>> ejaculate in <<his>> hand and wipes it on your face. "I have to m-mark you as mine." <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <<case 4 5>> <<He>> moans as you pound <<his>> ass and ejaculates on the ground. <<case 6 7>> <<He>> sighs as <<he>> ejaculates onto <<his>> own chest. <</switch>> <<elseif ($NPCList[_nn].penis is "otheranusfrot" or $NPCList[_nn].penis is "otheranusentrance" or $NPCList[_nn].penis is "otheranusimminent") and playerChastity("penis")>> <<He>> gasps as <<he>> cums onto your $worn.genitals.name. "I-I can't take this," <<he>> says. "I need to fill you. Th-there must be a skeleton key for chastity stuff." <<elseif $NPCList[_nn].penis is "otheranusfrot" or $NPCList[_nn].penis is "otheranusentrance" or $NPCList[_nn].penis is "otheranusimminent">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> noisily cums as you fuck <<his>> cheeks, digging <<his>> fingers into your ass from behind and grinding your cock against <<his>> ass to finish. "Why didn't you fuck me? Am I not good enough for you?" <<case 4 5>> <<He>> moans as you rub against <<his>> anus and ejaculates on the ground. <<He>> begins crying, "Why don't you fuck me? Is there something wrong with me? Tell me so I can fix it!" <<case 6 7>> <<He>> sighs as <<he>> ejaculates onto <<his>> own chest. <<He>> seems sad rather than spent. <</switch>> <<elseif $NPCList[_nn].penis is "penis" and playerChastity("penis")>> <<switch random(2)>> <<case 0>> <<He>> gasps as <<he>> shoots <<his>> impressive load all over your $worn.genitals.name. "Th-there must be a skeleton key for chastity stuff," <<he>> says. "I'll work it out." <<case 1>> <<He>> moans in ecstasy, drenching your $worn.genitals.name in ropes of hot cum. "N-no... we need to be together!" <<He>> gasps in frustration. <<case 2>> <<He>> screams in pleasure, showering your $worn.genitals.name in streams of sticky cum. <<He>> uses the milky fluid to finger paint love hearts on your cheek. "Mine." <</switch>> <<elseif $NPCList[_nn].penis is "penis">> <<switch random(1, 7)>> <<case 1>> <<He>> cums as you knead your <<penises>> together, moaning with pleasure. "God, I love you so much!" <<set $kylarSeen.pushUnique("saidLove")>> <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <<case 2>> <<He>> cums as you rub your <<penises>> together, moaning with pleasure. <<He>> rubs <<his>> own cum all over your shaft. "Keep my s-smell on you." <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <<case 3>> <<He>> cums as you frot your <<penises>> together, shooting <<his>> impressive load over your <<penis>> and stomach. <<He>> wipes some of <<his>> cum on your lips. "Taste our love juices." <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <<case 4>> <<He>> moans as <<he>> grinds downs hard on your <<penis>> to finish, thin legs shaking as <<he>> cums. <<He>> uses the cum as lube, furiously milking out the last of <<his>> cum against your <<penis>>. <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <<case 5>> <<He>> groans as <<he>> rubs hard against your <<penis>> to finish. <<He>> uses the cum as lube, furiously milking out the last of <<his>> semen against your <<penis>>. "Next time I want you to impregnate my ass," <<he>> hisses. <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <<case 6>> <<He>> screams as <<he>> grinds hard against your <<penis>> to finish, thin legs shaking as <<he>> cums. "N-next time I want you to fuck me." <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <<case 7>> <<He>> screams, cupping <<his>> small hands under your shoulders as <<his>> entire body shakes; you are surprised by how strong <<he>> is. Ropes of semen drench your crotch as <<he>> cums. <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <</switch>> <<elseif $NPCList[_nn].penis is "penisentrance" or $NPCList[_nn].penis is "penisimminent">> <<switch random(1, 7)>> <<case 1 2>> <<He>> cums before <<he>> can frot your <<penis>>, ejaculating on the outside. Semen coats your cock and tummy; <<he>> seems upset with <<himself>>. <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <<case 3 4>> <<He>> ejaculates onto your <<penis>> before <<he>> can frot your <<penises>> together, sending white streams of semen running down your <<penis>>; <<he>> seems disappointed. <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <<case 5>> <<He>> moans and strokes <<his>> cock as <<he>> cums, sending thick ropes of semen onto your <<penis>> and ass. <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <<bottomejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 6>> <<He>> whimpers as <<he>> ejaculates onto <<his>> own chest and begins crying. "W-why? Why didn't you fuck me? What can I do to deserve your cock?" <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <<case 7>> <<He>> cums before your <<penises>> touch, covering you in <<his>> massive load. Semen coats your chest, tummy, and crotch. <<He>> licks your ear and whispers, "Look at you, covered in my cum. Mine now." <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <</switch>> <!-- Special case male PC being orally serviced by male NPC with no other contact --> <<elseif $NPCList[_nn].mouth is "penis">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> cums as you fuck <<his>> mouth; groaning as <<he>> ejaculates on the ground. "I'm sorry, I just can't take anymore." <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <<case 4 5>> <<He>> cums on the ground as you fuck <<his>> mouth; <<he>> pulls away abruptly. "Please stop, I've had enough." <<case 6 7>> <<He>> grabs your ass in <<his>> hands, pulling your cock into <<his>> throat; <<he>> ejaculates on <<his>> chest as <<he>> throats your <<genitals>>. <</switch>> <<elseif $NPCList[_nn].penis is "othermouth">> <<He>> shakes with arousal as <<he>> cums, wiping <<his>> wet face clean on your body. <</if>> <<if $NPCList[_nn].penis isnot "none" and !$NPCList[_nn].penisdesc.includes("strap-on") and _condomResult is "leaked">> Despite wearing a condom, it was too damaged to stop the cum. <</if>> <br><br> <</if>> <!-- Finishing moves for consensual with low anger or non-consensual with damage or high anger --> <<if _args[0] isnot "short">> <<if $consensual is 1 and $enemyanger lte 0>> <<switch random(1,5)>> <<case 1 2>> <<He>> caresses your cheek, <span class="green">making you feel warm inside.</span> "I h-hope you know you mean everything to me." <<lstress>><<ltrauma>><<lpain>><<violence -3>> <br><br> <<case 3 4>> <<He>> strokes your hair, <span class="green">making you feel warm inside.</span> "Y-you're so perfect, everything I could ever wish for." Your face flushes with pleasure. <<lstress>><<ltrauma>><<lpain>><<violence -3>> <br><br> <<case 5>> <<He>> kisses your forehead, <span class="green">making you feel warm inside.</span> "B-being without you drives me crazy." <<lstress>><<ltrauma>><<lpain>><<violence -3>> <br><br> <</switch>> <<elseif $consensual is 0 and $enemyhealth lte ($enemyhealthmax / 10) * 7.5>> <<He>> cups your chin with a shaking hand, <span class="red">and runs the edge of <<his>> knife across your cheek.</span> "One day I'll make you understand that you're mine, easy way or not." <<gstress>><<gtrauma>><<gpain>><<violence 6>> <br><br> <<elseif $consensual is 0 and $enemyhealth lte ($enemyhealthmax / 10) * 8.5>> <span class="red"><<He>> pulls your hair,</span> bringing you inches closer to <<his>> face. "Please, my love, don't make me hurt you." <<gstress>><<gtrauma>><<gpain>><<violence 6>> <br><br> <<elseif $consensual is 0 or $enemyhealth lte ($enemyhealthmax / 10) * 9.5>> <<He>> cups your chin with a shaking hand, <span class="red">forcing you to look at <<him>>.</span> "I want you to understand that I'm doing this because I love you." <<gstress>><<gtrauma>><<gpain>><<violence 6>> <br><br> <</if>> <</if>> <</widget>><<widget "ejaculation-leighton">> <<set $ejaculating to 1>> <!-- Changing rows to future-proof the code: from $NPCList[0] to $NPCList[_nn], _nn being the main ejaculation loop handler --> <!-- Female LEIGHTON --> <<if $NPCList[_nn].vagina isnot "none" and $NPCList[_nn].penis is "none">> <<if $consensual is 1>> <<if $NPCList[_nn].vagina is "mouthentrance" or $NPCList[_nn].vagina is "mouth" or $NPCList[_nn].vagina is "mouthimminent">> <<switch random(1, 4)>> <<case 1 2>> <<He>> groans and rubs <<his>> crotch against your face with <<his>> hips, thighs shaking with orgasm. <<case 3 4>> <<He>> goes red in the face and neck, mouth agape as <<he>> cums silently, body twitching uncontrollably. <<case 5>> <<He>> cups your head in <<his>> hand and grinds <<his>> clit against your nose, covering your face in ejaculate. <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "goo">> <</switch>> <<elseif $NPCList[_nn].vagina is "leftarm">> <<switch random(1, 5)>> <<case 1 2>> <<He>> sighs as you finish with <<his>> pussy, shaking <<his>> thighs together against your hand as <<his>> body convulses. <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "goo">> <<case 3 4>> <<He>> goes red in the face and neck, mouth agape as <<he>> cums silently, cunt twitching against your hand uncontrollably. <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "goo">> <<case 5>> <<He>> stifles a moan, grabbing your hand and fucking <<his>> pussy with your fingers. Your fingers are soaked in ejaculate. <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "goo">> <</switch>> <<elseif $NPCList[_nn].vagina is "rightarm">> <<switch random(1, 5)>> <<case 1 2>> <<He>> sighs as you finish with <<his>> pussy, knees shaking as <<his>> body convulses. <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "rightarm" "goo">> <<case 3 4>> <<He>> goes red in the face and neck, mouth agape as <<he>> cums silently, cunt twitching against your hand uncontrollably. <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "rightarm" "goo">> <<case 5>> <<He>> stifles a moan, grabbing your hand and fucking <<his>> pussy with your fingers. Your fingers are soaked in ejaculate. <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "rightarm" "goo">> <</switch>> <<elseif $NPCList[_nn].vagina is "lefthand" or $NPCList[_nn].vagina is "righthand">> <<switch random(1, 5)>> <<case 1 2>> <<He>> sighs as <<he>> cums, releasing you and pulling back <<his>> hand, licking your wetness off <<his>> fingers. <<case 3 4>> <<He>> moans loudly and shakes, dripping ejaculate on the ground; <<he>> withdraws <<his>> hand and sighs. <<case 5>> <<He>> shakes as <<he>> comes, soaking <<his>> own pussy and thighs in ejaculate; <<he>> removes <<his>> hand from your pussy and wipes it off on your face, chuckling. <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "goo">> <</switch>> <<elseif $NPCList[_nn].vagina is "feet">> <<switch random(1, 5)>> <<case 1 2>> <<He>> moans as you knead <<his>> pussy, jamming your toes inside with <<his>> hands as <<he>> finishes cumming. <<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "feet" "goo">> <<case 3 4>> <<He>> shakes bodily as <<he>> cums, twitching underneath your feet and cumming between your toes. <<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "feet" "goo">> <<case 5>> <<He>> tenses as <<he>> comes, soaking your feet with ejaculate. You jump back in surprise, nearly slipping on your wet feet. <<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "feet" "goo">> <</switch>> <<elseif $NPCList[_nn].vagina is "vagina" and playerChastity("vagina")>> <<He>> tenses as <<he>> cums, ejaculating over your $worn.genitals.name. "Whoever put you in that had the right idea," <<he>> gasps. "If only I had a key." <<elseif $NPCList[_nn].vagina is "vagina">> <<switch random(1, 5)>> <<case 1 2>> <<He>> cums as you scissor your pussies together, moaning with pleasure. <<case 3 4>> <<He>> moans as <<he>> grinds downs hard on your <<pussy>> to finish, legs shaking as <<he>> cums. <<case 5>> <<He>> cups <<his>> arms under your shoulders as <<his>> entire body shakes. Ejaculate streams from <<his>> pussy, drenching you. <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "goo">> <</switch>> <<elseif $NPCList[_nn].vagina is "othermouth" and playerChastity("vagina")>> <<He>> tenses as <<he>> cums, ejaculating over your $worn.genitals.name. "Whoever put you in that had the right idea," <<he>> gasps. "If only I had a key." <<elseif $NPCList[_nn].vagina is "othermouth">> <<switch random(1, 5)>> <<case 1 2>> <<He>> shudders with pleasure, exhaling warmly against your crotch as <<he>> comes, leaving you wet with saliva and your own fluids. <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "goo">> <<case 3 4>> <<He>> quietly ejaculates, shaking as <<he>> grinds <<his>> nose into your crotch and giving you a long, final, wet lick. <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "goo">> <<case 5>> <<He>> sighs into your crotch as <<he>> cums, pinching <<his>> hands between <<his>> thighs and buckling over, ejaculate streaming down <<his>> thighs. <</switch>> <!-- following appear to be Male PC to Female Antagonist only? --> <<elseif $NPCList[_nn].vagina is "otheranus" and playerChastity("penis")>> <<He>> tenses as <<he>> cums, ejaculating over your $worn.genitals.name. "Whoever put you in that had the right idea," <<he>> gasps. "If only I had a key." <<elseif $NPCList[_nn].vagina is "otheranus">> <<switch random(1, 5)>> <<case 1 2>> <<He>> shakes as <<he>> cums, driving <<his>> ass hard against you as <<he>> releases a final moan. <<case 3 4>> <<He>> quietly ejaculates, shaking as <<he>> grinds <<his>> ass deeply with your cock and moaning. <<case 5>> <<He>> bucks into your crotch as <<he>> cums, squirting ejaculate from <<his>> pussy and drenching your legs. "You've been taught well." <<thighejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "goo">> <</switch>> <<elseif $NPCList[_nn].vagina is "penis">> <<switch random(1, 6)>> <<case 1 2>> <<He>> grabs your shoulders as <<he>> cums, driving <<his>> pussy down hard against your cock as <<he>> shudders with pleasure. "That was a wonderful performance." <<ejacstat>><<set $hygiene += 500>><<bodyliquid "penis" "goo">> <<case 3 4>> <<He>> sighs as <<he>> cums, reddening and going into a full body convulsion. Ejaculate soaks your crotch. <<ejacstat>><<set $hygiene += 500>><<bodyliquid "penis" "goo">> <<case 5>> <<He>> bucks on your lap as <<he>> cums, squirting ejaculate from <<his>> pussy and drenching your crotch and legs. <<ejacstat>><<set $hygiene += 500>><<bodyliquid "penis" "goo">> <<thighejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "goo">> <</switch>> <<elseif ($NPCList[_nn].vagina is "penisimminent" or $NPCList[_nn].vagina is "penisentrance") and playerChastity("penis")>> <<He>> tenses as <<he>> cums, ejaculating over your $worn.genitals.name. "Whoever put you in that had the right idea," <<he>> gasps. "If only I had a key." <<elseif $NPCList[_nn].vagina is "penisimminent" or $NPCList[_nn].vagina is "penisentrance">> <<He>> cums on your <<penis>>; "Next time I expect penetration." <<elseif ($NPCList[_nn].vagina is "otheranusfrot" or $NPCList[_nn].vagina is "otheranusentrance") and playerChastity("penis")>> <<He>> tenses as <<he>> cums, ejaculating over your $worn.genitals.name. "Whoever put you in that had the right idea," <<he>> gasps. "If only I had a key." <<elseif $NPCList[_nn].vagina is "otheranusfrot" or $NPCList[_nn].vagina is "otheranusentrance">> <<He>> bucks <<his>> ass against your cock as <<he>> cums. "Next time I expect you to properly service me, not toy with me." <<elseif $NPCList[_nn].vagina is "frot" and playerChastity("penis")>> <<He>> tenses as <<he>> cums, ejaculating over your $worn.genitals.name. "Whoever put you in that had the right idea," <<he>> gasps. "If only I had a key." <<elseif $NPCList[_nn].vagina is "frot">> <<He>> grinds <<his>> clit hard against your cock as <<he>> cums, ejaculating on your cock. <<He>> looks frustrated, "Next time I expect a good fucking, or there will be consequences..." <<ejacstat>><<set $hygiene += 500>><<bodyliquid "penis" "goo">> <!-- Special case male PC with female NPC --> <<elseif $NPCList[_nn].mouth is "penis">> <<switch random(1, 4)>> <<case 1 2>> <<He>> cums as you fuck <<his>> mouth, pushing you off as <<he>> finishes. <<case 3 4>> <<He>> cums as you fuck <<his>> mouth, leaving your <<penis>> a slimy mess. "Such a mess; you should go jump in the shower." <</switch>> <<else>> <<He>> convulses in orgasmic bliss. <</if>> <<else>> <<if $NPCList[_nn].vagina is "footjob">> <<switch random(1, 5)>> <<case 1 2 3>> <<He>> gasps as <<he>> cums. Recovering, <<he>> smiles and moves <<his>> foot to your body, <span class="red">stepping down heavily as you gasp for breath.</span> "I hope you're learning that I own you." <<gtrauma>><<gstress>><<gpain>><<violence 6>><<bruise chest>><<hitstat>> <<case 4 5>> <<He>> cums, chuckling as <<he>> removes <<his>> foot from your crotch and rubs it against your face, covering your face in your own wetness. <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "goo">> <</switch>> <<elseif $NPCList[_nn].vagina is "vagina" and playerChastity("vagina")>> <<He>> tenses as <<he>> cums, ejaculating over your $worn.genitals.name. "Whoever put you in that had the right idea," <<he>> gasps. "If only I had a key." <<elseif $NPCList[_nn].vagina is "vagina">> <<switch random(1, 5)>> <<case 1 2>> <<He>> groans as <<he>> cums, dragging <<his>> wet pussy across your ass and thighs. <<case 3 4>> <<He>> moans as <<he>> grabs you by the throat and grinds downs hard on your <<pussy>>. <<gstress>><<gtrauma>><<gpain>><<violence 3>><<bruise neck>><<hitstat>> <<case 5>> <<He>> grabs you by the hair, mashing <<his>> entire body against yours. Ejaculate streams from <<his>> pussy, drenching you. <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "goo">> <</switch>> <<elseif $NPCList[_nn].vagina is "othermouth">> <<He>> shakes with arousal as <<he>> cums, wiping <<his>> wet face clean on your body. <<elseif $NPCList[_nn].vagina is "lefthand" or $NPCList[_nn].vagina is "righthand">> <<He>> moans as <<he>> cums. <<He>> <span class="pink">grabs you by the hair and pulls you close:</span> "I hope you're learning that I own you." <<elseif $NPCList[_nn].vagina is "mouthentrance" or $NPCList[_nn].vagina is "mouth" or $NPCList[_nn].vagina is "mouthimminent">> <<He>> groans and grabs you by the hair, grinding <<his>> crotch roughly against your face as <<his>> thighs shake with orgasm. <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "goo">> <!-- following appear to be Male PC to Female Antagonist only? --> <<elseif $NPCList[_nn].vagina is "otheranus">> <<He>> shakes as <<he>> cums, grabbing you by the <<print ($player.ballsExist ? "balls" : "pussy")>> and dragging your cock deeply into <<his>> ass as <<he>> releases a final moan. <<elseif $NPCList[_nn].vagina is "penis">> <<He>> digs <<his>> nails painfully into your shoulders as <<he>> cums, driving <<his>> pussy down hard against your cock as <<he>> shudders with pleasure. <<elseif ($NPCList[_nn].vagina is "penisimminent" or $NPCList[_nn].vagina is "penisentrance") and playerChastity("penis")>> <<He>> tenses as <<he>> cums, ejaculating over your $worn.genitals.name. "Whoever put you in that had the right idea," <<he>> gasps. "If only I had a key." <<elseif $NPCList[_nn].vagina is "penisimminent" or $NPCList[_nn].vagina is "penisentrance">> <<He>> moans as <<he>> cums on your throbbing cock. "Next time I expect penetration, or there will be consequences." <<elseif ($NPCList[_nn].vagina is "otheranusfrot" or $NPCList[_nn].vagina is "otheranusentrance") and playerChastity("penis")>> <<He>> tenses as <<he>> cums, ejaculating over your $worn.genitals.name. "Whoever put you in that had the right idea," <<he>> gasps. "If only I had a key." <<elseif $NPCList[_nn].vagina is "otheranusfrot" or $NPCList[_nn].vagina is "otheranusentrance">> <<He>> swivels <<his>> ass against your cock as <<he>> cums. "Next time I expect to be fucked properly or I'll punish you." <<elseif $NPCList[_nn].vagina is "frot" and playerChastity("penis")>> <<He>> tenses as <<he>> cums, ejaculating over your $worn.genitals.name. "Whoever put you in that had the right idea," <<he>> gasps. "If only I had a key." <<elseif $NPCList[_nn].vagina is "frot">> <<He>> grabs you by the throat, pulling you down and grinding <<his>> clit hard against your cock as <<he>> cums. "Next time you need to penetrate me or I'll punish you." <<gstress>><<gtrauma>><<gpain>><<violence 3>><<bruise neck>><<hitstat>> <!-- Special case male PC with female NPC --> <<elseif $NPCList[_nn].mouth is "penis">> <<He>> cums as you fuck <<his>> mouth, shoving you away as <<he>> gasps for air. "That's enough." <<else>> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> trembles with orgasm. Pulling your face close, <<he>> says, "I hope you're learning that you're subject to my desires." <<case 4 5 6>> <<He>> sighs quietly as <<he>> cums, smacking your ass. "Don't forget that I own you." <<case 7>> <<He>> rapidly rubs <<his>> clit, stifling a moan as <<he>> cums; <<his>> pussy squirting and covering you in ejaculate. <<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "goo">> <</switch>> <</if>> <</if>> <br><br> <</if>> <!-- Male LEIGHTON --> <<if _condomResult is "leaked">> <span class="red">The condom broke.</span> <<elseif _condomResult is "burst">> <span class="red">The tip of the condom bursts and rips, exposing the head of <<his>> penis.</span> <</if>> <<if $consensual is 1>> <<if _condomResult is "contained">> <<genericCondomEjaculation>> <<elseif npcHasStrapon(_nn)>> <<He>> moans and shivers in orgasmic bliss, grinding the strap-on against <<his>> genitals. <<elseif $NPCList[_nn].penis is "idle">> <<He>> groans as a wet patch forms on <<his>> trousers. You barely stifle a giggle at the sight. <<elseif $NPCList[_nn].penis is "thighs">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> shakes as <<he>> cums, pulling <<his>> cock out and ejaculating onto the backs of your thighs. <<thighejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <<case 4 5 6>> <<He>> grabs your legs, pushing <<his>> crotch hard into yours as <<he>> cums and ejaculating onto your tummy. <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <<case 7>> <<He>> groan as <<he>> cums, ejaculating a massive load that covers your thighs and tummy. <<thighejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <<tummyejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <</switch>> <<elseif $NPCList[_nn].penis is "vaginaentrance" and playerChastity("vagina")>> <<He>> tenses as <<he>> cums, ejaculating over your $worn.genitals.name. "Whoever put you in that had the right idea," <<he>> gasps. "If only I had a key." <<elseif $NPCList[_nn].penis is "vaginaentrance">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> holds you still by the hips with one hand and with the other on <<his>> cock, ejaculates onto your <<pussy>>. Semen coats your outer lips and pools around your legs. <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 5, rngType: "canWash"}`>> <<case 4 5 6>> <<He>> strokes <<his>> cock and ejaculates onto your <<pussy>> without a word, sending white streams of semen running down your cunt. <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 5, rngType: "canWash"}`>> <<case 7>> <<He>> moans and strokes <<his>> cock as <<he>> cums, sending thick ropes of semen onto your <<pussy>> and ass. <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<bottomejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 5, rngType: "canWash"}`>> <</switch>> <<elseif $NPCList[_nn].penis is "vaginaimminent" and playerChastity("vagina")>> <<He>> tenses as <<he>> cums, ejaculating over your $worn.genitals.name. "Whoever put you in that had the right idea," <<he>> gasps. "If only I had a key." <<elseif $NPCList[_nn].penis is "vaginaimminent">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> cums before <<he>> can penetrate your <<pussy>>, ejaculating on the outside. Semen coats your outer lips and tummy; <<he>> seems disappointed. <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 15, rngType: "canWash"}`>> <<case 4 5 6>> <<He>> ejaculates onto your <<pussy>> before <<he>> can penetrate you, sending white streams of semen running down your <<pussy>>; <<he>> seems disappointed. <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 15, rngType: "canWash"}`>> <<case 7>> <<He>> moans and strokes <<his>> cock as <<he>> cums, sending thick ropes of semen onto your <<pussy>> and ass. "Quite a mess; you really should hit the showers." <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<bottomejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 15, rngType: "canWash"}`>> <</switch>> <<elseif $NPCList[_nn].penis is "vagina">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> moans and thrusts deeply into your <<pussy>> as <<he>> cums, holding <<his>> cock deep in your womb. You feel warm as semen fills your vagina. <<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vagina" "semen">> <<recordVaginalSperm "pc" $NPCList[_nn] "human">> <<case 4 5 6>> <<He>> quiets and grabs your shoulders, pulling you deeply onto <<his>> cock as <<he>> cums. Semen fills your <<pussy>>, leaving you breathless. <<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vagina" "semen">> <<recordVaginalSperm "pc" $NPCList[_nn] "human">> <<case 7>> <<He>> convulses and grinds down on your crotch as <<he>> cums, sending thick waves of cum into your <<pussy>>. Semen oozes from your vagina and down your legs. <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<vaginalejacstat>><<set $hygiene += 500>><<bodyliquid "vagina" "semen">> <<thighejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <<recordVaginalSperm "pc" $NPCList[_nn] "human">> <</switch>> <<elseif $NPCList[_nn].penis is "cheeks" and playerChastity()>> <<He>> tenses as <<he>> cums, ejaculating over your $worn.genitals.name. "Whoever put you in that had the right idea," <<he>> gasps. "If only I had a key." <<elseif $NPCList[_nn].penis is "cheeks">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> shakes as <<he>> cums, withdrawing <<his>> cock from your cheeks and ejaculating onto your ass. <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 4 5 6>> <<He>> grabs your thighs, pushing <<his>> crotch hard against your ass and ejaculating between your cheeks. <!-- Really should be onto PCs back given position. Or hair maybe. Esp next one --> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 7>> <<He>> squeezes your cheeks together and grunts as <<he>> cums, sending out massive load that covers your ass and drips down your crotch; <<he>> seems pleased. <<bottomejacstat>><<ejacstat>><<set $hygiene += 1000>><<bodyliquid "bottom" "semen" 2>> <</switch>> <<elseif $NPCList[_nn].penis is "anusentrance" and playerChastity("anus")>> <<He>> tenses as <<he>> cums, ejaculating over your $worn.genitals.name. "Whoever put you in that had the right idea," <<he>> gasps. "If only I had a key." <<elseif $NPCList[_nn].penis is "anusentrance">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> pinches your asscheek with one hand and strokes <<his>> cock with the other, ejaculating onto your bottom. Semen drips down your butt and into your crack. <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 4 5 6>> <<He>> strokes <<his>> cock and quietly ejaculates onto your ass. You feel warm semen dripping down your bottom. <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 7>> <<He>> moans and strokes <<his>> cock as <<he>> cums, sending thick ropes of semen onto your ass and down your crotch. <<bottomejacstat>><<ejacstat>><<set $hygiene += 1000>><<bodyliquid "bottom" "semen" 2>> <</switch>> <<recordSperm `{genital: "anus", target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 5, rngType: "canWash"}`>> <<elseif $NPCList[_nn].penis is "anusimminent" and playerChastity("anus")>> <<He>> tenses as <<he>> cums, ejaculating over your $worn.genitals.name. "Whoever put you in that had the right idea," <<he>> gasps. "If only I had a key." <<elseif $NPCList[_nn].penis is "anusimminent">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> cums before <<he>> can penetrate your ass, ejaculating on the outside. Semen coats your ass and drips down your crack; <<he>> seems disappointed. <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 4 5 6>> <<He>> strokes <<his>> cock and ejaculates onto your ass before <<he>> can penetrate you, sending white streams of semen running down your crack; <<he>> seems disappointed. <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 7>> <<He>> moans and strokes <<his>> cock as <<he>> cums, sending thick ropes of semen onto your ass and crotch. <<bottomejacstat>><<ejacstat>><<set $hygiene += 1000>><<bodyliquid "bottom" "semen" 2>> <</switch>> <<recordSperm `{genital: "anus", target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 15, rngType: "canWash"}`>> <<elseif $NPCList[_nn].penis is "anus">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> moans and thrusts deeply into your ass as <<he>> cums. You gasp as you take <<his>> entire length and feel semen filling your insides. <<analejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "anus" "semen">> <<recordAnusSperm "pc" $NPCList[_nn] "human">> <<case 4 5 6>> <<He>> wordlessly grabs your shoulders, pulling you back onto <<his>> cock as <<he>> cums. Semen fills your ass as you moan with pleasure. <<analejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "anus" "semen">> <<recordAnusSperm "pc" $NPCList[_nn] "human">> <<case 7>> <<He>> convulses and, with a final shove, cums in your ass. Thick waves of semen pump into you. It's more than you can hold; cum oozes from your ass and runs down your legs. <<analejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "anus" "semen">> <<thighejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <<recordAnusSperm "pc" $NPCList[_nn] "human">> <</switch>> <<elseif $NPCList[_nn].penis is "chest">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> pushes your <<breasts>> together tight on <<his>> cock as <<he>> cums, ejaculating onto them. Your body feels slick with cum. <<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <<case 4 5 6>> <<He>> strokes the tip of <<his>> cock between your <<breasts>> and quietly ejaculates on them. Your <<breasts>> feel cool as semen drips down them. <<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <<case 7>> <<He>> puts <<his>> hand behind your neck and bears down on your <<breasts>>, grunting as <<he>> cums; semen shoots between your <<breasts>> and covers your <<if $position is "missionary">>face<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">><<else>>stomach<<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">><</if>>. "Such a mess. You should hit the showers." <<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <</switch>> <<elseif $NPCList[_nn].penis is "mouthentrance">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> cups you under the chin with one hand and strokes <<his>> cock with the other, ejaculating onto your face; <<he>> chuckles at the resulting mess and hands you a tissue. <<case 4 5 6>> <<He>> strokes <<his>> cock and quietly ejaculates onto your face. Warm cum drips down your forehead and nose. <<He>> smiles and hands you a tissue. <<case 7>> <<He>> grasps the top of your head, stroking <<his>> cock while aiming straight at your mouth. Thick ropes of cum cover your face and push past your closed lips into your mouth. "Tsk tsk. You really need to learn to swallow. Such a mess." <<cumswallow `$NPCList[_nn].type` null `npcSemenMod($NPCList[_nn].penissize)`>> <</switch>> <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <<elseif $NPCList[_nn].penis is "mouthimminent">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> cups the back of your head, ejaculating onto your lips as you barely brush against the tip of <<his>> penis; <<he>> seems disappointed. <<case 4 5 6>> <<He>> brushes <<his>> cock against your face, causing <<him>> to ejaculate early. Cum drips down your lips and chin; <<he>> seems disappointed. <<case 7>> <<He>> grasps your hair but in <<his>> excitement cums before <<he>> can enter your mouth. Thick ropes of cum cover your cheeks, chin, and into your waiting mouth. <<oralejacstat>><<cumswallow `$NPCList[_nn].type` null `npcSemenMod($NPCList[_nn].penissize)`>> <</switch>> <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <<elseif $NPCList[_nn].penis is "mouth">> <!-- this is picking up women NPCs...? --> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> cups you under the chin with one hand and by your hair with the other, thrusting deeply into your mouth as <<he>> cums. Ejaculate streams down your throat and fills your mouth. <<case 4 5 6>> <<He>> grasps the base of <<his>> cock and moans, quietly ejaculating into your mouth. You feel warm cum fill your mouth and drip down your throat. <<case 7>> <<He>> grasps the back of your head, wildly thrusting <<his>> cock in your mouth as <<he>> cums. Semen streams down your throat, fills your mouth and drips down your chin. "Tsk tsk. You really need to learn to swallow." <<He>> hands you a tissue to clean up. <<faceejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <</switch>> <<oralejacstat>><<ejacstat>><<cumswallow `$NPCList[_nn].type` null `npcSemenMod($NPCList[_nn].penissize)`>> <<elseif $NPCList[_nn].penis is "feet">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> pushes your feet together and groans as <<he>> cums. Ejaculate covers your feet. <<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "feet" "semen">> <<case 4 5 6>> <<He>> quietly cums on your feet, slickening them with semen. <<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "feet" "semen">> <<case 7>> <<He>> grunts and thrusts <<his>> cock between your feet as <<he>> cums, splattering cum on your feet and legs in the process. <<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "feet" "semen">> <<thighejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <</switch>> <<elseif $NPCList[_nn].penis is "leftarm" and $NPCList[_nn].penis is "rightarm">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> groans as <<he>> cums, penis pulsing in your hands, covering them both in cum. "Such an enthusiastic student, using both hands." <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "semen">><<bodyliquid "rightarm" "semen">> <<case 4 5 6>> <<He>> quietly cums on your hands, slickening them with semen. <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "semen">><<bodyliquid "rightarm" "semen">> <<case 7>> <<He>> spasms and moans, shooting thick streams of cum. You are so intent on your work you don't notice <<his>> penis is aimed at your face, which is splattered with cum in the process. <<He>> chuckles and hands you a tissue. <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "semen">><<bodyliquid "rightarm" "semen">> <<faceejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <</switch>> <<elseif $NPCList[_nn].penis is "leftarm">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> groans as <<he>> cums, penis sliding hotly in your left hand and covering it with cum. "Such a mess; you should wash your hands." <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "semen">> <<case 4 5 6>> <<He>> quietly cums on your left hand. Semen drips down your fingers. <<He>> hands you a tissue. <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "semen">> <<case 7>> <<He>> spasms and moans, shooting thick streams of cum and splattering your <<breasts>> in the process. <<He>> smiles and hands you a gym towel to clean up. <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "semen">> <<chestejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <</switch>> <<elseif $NPCList[_nn].penis is "rightarm">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> groans as you work <<his>> shaft with your right hand, cumming as you give <<him>> a final squeeze. Your hand is covered in warm semen. "What messy fingers; you should go wash your hands." <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "rightarm" "semen">> <<case 4 5 6>> <<He>> quietly cums on your right hand. Semen cools on your fingers. <<He>> smiles and hands you a tissue. <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "rightarm" "semen">> <<case 7>> <<He>> grunts and shoots thick ropes of semen onto your hands, making an impressive mess. <<He>> smiles and hands you a gym towel to clean up. <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "rightarm" "semen">> <</switch>> <<elseif $NPCList[_nn].penis is 0>> <<switch random(1, 4)>> <<case 1>> <<He>> groans as <<he>> works <<his>> shaft and, giving <<his>> cock a final squeeze, ejaculates onto your tummy. "Such a fast learner." <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <<case 2>> <<He>> rapidly rubs <<his>> cock and aims at your face, covering it with semen. <<He>> smiles and hands you a tissue. <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <<case 3>> <<He>> strokes <<his>> penis and, aiming at your ass, ejaculates on your bottom. <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 4>> <<He>> strokes <<his>> penis and moans, ejaculating on your <<breasts>>. <<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <</switch>> <<elseif $NPCList[_nn].penis is "otheranus">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> groans as you fuck <<his>> ass, <<his>> ejaculate spraying on <<his>> own stomach. "Thanks, that's quite enough." <<case 4 5>> <<He>> whimpers as you pound <<his>> ass, moaning in pleasure as <<he>> ejaculates on the ground. You roll off <<him>>. <<case 6 7>> <<He>> sighs as <<he>> ejaculates onto <<his>> own chest. <</switch>> <<elseif ($NPCList[_nn].penis is "otheranusfrot" or $NPCList[_nn].penis is "otheranusentrance" or $NPCList[_nn].penis is "otheranusimminent") and playerChastity("penis")>> <<He>> tenses as <<he>> cums, ejaculating over your $worn.genitals.name. "Whoever put you in that had the right idea," <<he>> gasps. "If only I had a key." <<elseif $NPCList[_nn].penis is "otheranusfrot" or $NPCList[_nn].penis is "otheranusentrance" or $NPCList[_nn].penis is "otheranusimminent">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> noisily cums as you fuck <<his>> cheeks, grabbing your ass from behind and grinding your cock against <<his>> ass to finish. "Next time I expect penetration." <<case 4 5>> <<He>> moans as you rub against <<his>> anus and ejaculates on the ground. You roll off <<him>>. <<case 6 7>> <<He>> sighs as <<he>> ejaculates onto <<his>> own chest. <</switch>> <!-- Special case male PC being orally serviced by male NPC with no other contact --> <<elseif $NPCList[_nn].mouth is "penis" and playerChastity("penis")>> <<He>> tenses as <<he>> cums, ejaculating over your $worn.genitals.name. "Whoever put you in that had the right idea," <<he>> gasps. "If only I had a key." <<elseif $NPCList[_nn].mouth is "penis">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> cums as you fuck <<his>> mouth, gasping against your cock. "You're quite the talented student." <<case 4 5>> <<He>> cums on the ground as you fuck <<his>> mouth. <<He>> pushes you away, "Thanks, that's quite enough." <<case 6 7>> <<He>> grabs you by the ass and drives your cock deeply into <<his>> throat, ejaculating on <<his>> chest as <<he>> throats your cock. <</switch>> <<elseif $NPCList[_nn].penis is "othermouth">> <<He>> shakes with arousal as <<he>> cums, wiping <<his>> wet face clean on your body. <</if>> <<if $NPCList[_nn].penis isnot "none" and !$NPCList[_nn].penisdesc.includes("strap-on") and _condomResult is "leaked">> Despite wearing a condom, it was too damaged to stop the cum. <</if>> <br><br> <<else>> <<if _condomResult is "contained">> <<genericCondomEjaculation>> <<elseif $NPCList[_nn].penis is "idle">> <<He>> groans as a wet patch forms on <<his>> trousers. You barely stifle a laugh at the pathetic display. <<elseif $NPCList[_nn].penis is "thighs">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> shakes as <<he>> cums, pulling <<his>> cock out and ejaculating onto the backs of your thighs, then wipes <<his>> cock clean on your ass. <<thighejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <<case 4 5 6>> <<He>> grabs your legs, slamming <<his>> crotch hard into your ass as <<he>> cums and ejaculates onto your tummy. <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <<case 7>> <<He>> groan as <<he>> cums, ejaculating a massive load that covers your thighs and tummy. "You'll submit for my pleasure anytime I wish; don't forget it." <<thighejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <<tummyejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <</switch>> <<elseif $NPCList[_nn].penis is "vaginaentrance" and playerChastity()>> <<He>> tenses as <<he>> cums, ejaculating over your $worn.genitals.name. "Whoever put you in that had the right idea," <<he>> gasps. "If only I had a key." <<elseif $NPCList[_nn].penis is "vaginaentrance">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> shoves <<his>> thumb into your ass, pulling you back and ejaculating onto your <<pussy>>. Semen coats your outer lips and pools around your legs. <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 5, rngType: "canWash"}`>> <<case 4 5 6>> <<He>> strokes <<his>> cock and ejaculates onto your <<pussy>> without a word, sending white streams of semen running down your cunt; flicking <<his>> cock dry on your body. <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 5, rngType: "canWash"}`>> <<case 7>> <<He>> moans and strokes <<his>> cock as <<he>> cums, sending thick ropes of semen onto your <<pussy>> and ass; <<he>> dries <<his>> cock on your thighs. <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<bottomejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 5, rngType: "canWash"}`>> <</switch>> <<elseif $NPCList[_nn].penis is "vaginaimminent" and playerChastity("vagina")>> <<He>> tenses as <<he>> cums, ejaculating over your $worn.genitals.name. "Whoever put you in that had the right idea," <<he>> gasps. "If only I had a key." <<elseif $NPCList[_nn].penis is "vaginaimminent">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> cums before <<he>> can penetrate your <<pussy>>, ejaculating on the outside. Semen coats your outer lips and tummy; <span class="red"><<he>> spanks your ass angrily.</span> <<gstress>><<gtrauma>><<gpain>><<violence 6>><<bruise bottom>><<hitstat>> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 15, rngType: "canWash"}`>> <<case 4 5 6>> <<He>> ejaculates onto your <<pussy>> before <<he>> can penetrate you, sending white streams of semen running down your cunt; <<he>> groans in disappointment. <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 15, rngType: "canWash"}`>> <<case 7>> <<He>> moans and strokes <<his>> cock as <<he>> cums, sending thick ropes of semen onto your <<pussy>> and ass. "I hope you're learning that you're mine anytime I want you." <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<bottomejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 15, rngType: "canWash"}`>> <</switch>> <<elseif $NPCList[_nn].penis is "vagina">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> grabs your hair, pulling and thrusting deeply into your <<pussy>> as <<he>> cums, holding <<his>> cock deep in your womb. Semen splashes inside your bruised cunt. <<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vagina" "semen">> <<recordVaginalSperm "pc" $NPCList[_nn] "human">> <<case 4 5 6>> <<He>> quiets and grabs your throat, pounding <<his>> cock into you as <<he>> cums. Semen fills your <<pussy>> as you gasp for air. <<gstress>><<gtrauma>><<gpain>><<violence 3>><<bruise neck>><<hitstat>> <<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vagina" "semen">> <<recordVaginalSperm "pc" $NPCList[_nn] "human">> <<case 7>> <<He>> convulses and grinds down on your cunt as <<he>> cums, smashing your <<clit>> and sending thick waves of cum into your <<pussy>>. Semen oozes from your vagina and down your legs. "With more training you'll learn to better control your body." <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<vaginalejacstat>><<set $hygiene += 500>><<bodyliquid "vagina" "semen">> <<thighejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <<recordVaginalSperm "pc" $NPCList[_nn] "human">> <</switch>> <<elseif $NPCList[_nn].penis is "cheeks" and playerChastity()>> <<He>> tenses as <<he>> cums, ejaculating over your $worn.genitals.name. "Whoever put you in that had the right idea," <<he>> gasps. "If only I had a key." <<elseif $NPCList[_nn].penis is "cheeks">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> shakes as <<he>> cums, withdrawing <<his>> cock from your cheeks and ejaculating onto your ass; giving you a parting smack on the butt. <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 4 5 6>> <<He>> pinches the top of your cheeks with <<his>> hands and pulls you hard against <<him>>, ejaculating between your cheeks. <!-- Really should be onto PCs back given position. Or hair maybe. Esp next one --> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 7>> <<He>> squeezes your cheeks together and grunts as <<he>> cums, sending out massive load that covers your ass and drips down your crotch. "You're a mess; perhaps I should throw you in the pool..." <<bottomejacstat>><<ejacstat>><<set $hygiene += 1000>><<bodyliquid "bottom" "semen" 2>> <</switch>> <<elseif $NPCList[_nn].penis is "anusentrance" and playerChastity("anus")>> <<He>> tenses as <<he>> cums, ejaculating over your $worn.genitals.name. "Whoever put you in that had the right idea," <<he>> gasps. "If only I had a key." <<elseif $NPCList[_nn].penis is "anusentrance">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> <span class="blue">slaps your asscheek with one hand</span> and strokes <<his>> cock with the other, ejaculating onto your bottom. Semen drips down your butt and into your crack. <<gstress>><<gtrauma>><<gpain>><<violence 3>><<bruise bottom>><<hitstat>> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 4 5 6>> <<He>> strokes <<his>> cock and quietly ejaculates onto your ass. You feel semen dripping down your crack and feel filthy inside. <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 7>> <<He>> moans and strokes <<his>> cock as <<he>> cums, sending thick ropes of semen onto your ass and down your crotch. "I restrained myself; next time you're taking the whole shaft." <<bottomejacstat>><<ejacstat>><<set $hygiene += 1000>><<bodyliquid "bottom" "semen" 2>> <</switch>> <<recordSperm `{genital: "anus", target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 5, rngType: "canWash"}`>> <<elseif $NPCList[_nn].penis is "anusimminent" and playerChastity("anus")>> <<He>> tenses as <<he>> cums, ejaculating over your $worn.genitals.name. "Whoever put you in that had the right idea," <<he>> gasps. "If only I had a key." <<elseif $NPCList[_nn].penis is "anusimminent">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> cums before <<he>> can penetrate your ass, ejaculating on the outside. Semen coats your ass and drips down your crack; <span class="red"><<he>> spanks your ass angrily.</span> <<gstress>><<gtrauma>><<gpain>><<violence 6>><<bruise bottom>><<hitstat>> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 4 5 6>> <<He>> strokes <<his>> cock and ejaculates onto your ass before <<he>> can penetrate you, sending white streams of semen running down your crack; <<he>> seems disappointed. <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 7>> <<He>> moans and strokes <<his>> cock as <<he>> cums, sending thick ropes of semen onto your ass and crotch. "I restrained myself. Next time you're taking my entire length." <<bottomejacstat>><<ejacstat>><<set $hygiene += 1000>><<bodyliquid "bottom" "semen" 2>> <</switch>> <<recordSperm `{genital: "anus", target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 15, rngType: "canWash"}`>> <<elseif $NPCList[_nn].penis is "anus">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> moans, pounding your ass mercilessly as <<he>> cums. You whimper as you take <<his>> entire length and feel unwelcome semen streaming in your asshole. <<analejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "anus" "semen">> <<recordAnusSperm "pc" $NPCList[_nn] "human">> <<case 4 5 6>> <<He>> wordlessly grabs your hair, pulling you hard onto <<his>> cock as <<he>> cums. Semen fills you as you cry out, <<his>> girth stretching your anus. <<analejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "anus" "semen">> <<recordAnusSperm "pc" $NPCList[_nn] "human">> <<case 7>> <<He>> convulses and with a final shove, cums in your ass. Thick waves of semen pump into you. <span class="blue">You gasp as your ass overflows;</span> cum oozes from your ass and runs down your legs. "Such a mess. With more training, you'll be able to better control yourself." <<analejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "anus" "semen">> <<thighejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <<recordAnusSperm "pc" $NPCList[_nn] "human">> <</switch>> <<elseif $NPCList[_nn].penis is "chest">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> pinches your <<breasts>> together on <<his>> cock as <<he>> cums, ejaculating onto them. "I hope you're learning that you exist for my pleasure." <<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <<case 4 5 6>> <<He>> grabs your hair to force you to look at <<him>> while <<he>> strokes the tip of <<his>> cock between your <<breasts>> and wordlessly ejaculates onto them. "I want you to look at me while I use you for my pleasure." Your <<breasts>> cool as semen slides down your body. <<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <<case 7>> <<He>> puts <<his>> hand behind your neck, mashing your face against <<his>> body and bears down on your <<breasts>>; semen shoots between and covers your <<if $position is "missionary">>face<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">><<else>>stomach<<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">><</if>> as you gasp for air. "You're mine to use for my pleasure." <<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <</switch>> <<elseif $NPCList[_nn].penis is "mouthentrance">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> grabs your chin with one hand and strokes <<his>> cock with the other, ejaculating onto your face. "I hope you understand who the master is." <<case 4 5 6>> <<He>> strokes <<his>> cock and holding you by the ears, quietly ejaculates onto your face. Warm cum drips down your forehead and nose. "Such a messy student; just look at you." <<case 7>> <<He>> grasps your hair tightly in <<his>> fist, stroking <<his>> cock while aiming straight at your mouth. <span class="pink">You splutter and gag as thick ropes of cum push past your clenched lips and into your mouth.</span> "You need more practice swallowing, you sloppy hoodlum." <<cumswallow `$NPCList[_nn].type` null `npcSemenMod($NPCList[_nn].penissize)`>> <</switch>> <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <<elseif $NPCList[_nn].penis is "mouthimminent">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> grips hair at the nape your neck, ejaculating onto your lips as you barely brush against the tip of <<his>> penis. <<set $hygiene += 500>> <<case 4 5 6>> <<He>> brushes <<his>> cock against your face, causing <<him>> to ejaculate early. Cum drips down your lips and chin; frustrated, <<he>> wipes the cum off your face and shoves it in your mouth. <<set $hygiene += 100>><<cumswallow `$NPCList[_nn].type` null `npcSemenMod($NPCList[_nn].penissize)`>> <<case 7>> <<He>> grasps your hair but in <<his>> excitement cums before <<he>> can enter your mouth. Thick ropes of cum cover your cheeks, chin, and into your waiting mouth. <<He>> looks frustrated. <<set $hygiene += 500>><<oralejacstat>><<cumswallow `$NPCList[_nn].type` null `npcSemenMod($NPCList[_nn].penissize)`>> <</switch>> <<faceejacstat>><<ejacstat>><<bodyliquid "face" "semen">> <<elseif $NPCList[_nn].penis is "mouth">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> grabs you under the chin with one hand and by your hair with the other, shoving <<his>> cock down your throat as <<he>> cums. You gag and retch as unwanted semen streams down your throat, forcing you to swallow. <<case 4 5 6>> <<He>> grabs you by the throat in one hand and grasps the base of <<his>> cock in the other, quietly ejaculating into your mouth. You gag as cum fills your mouth and drips down your throat. <<gstress>><<gtrauma>><<gpain>><<violence 3>><<bruise neck>><<hitstat>> <<case 7>> <<He>> grasps your hair by the temples, wildly thrusting <<his>> cock down your throat as <<he>> cums. <span class="pink">You whimper as semen streams down your throat,</span> fills your mouth and covers your face as <<he>> flails. "Don't forget that you remain enrolled here at my pleasure." <<faceejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <<gstress>><<gtrauma>><<gpain>><<violence 3>><<bruise neck>><<hitstat>> <</switch>> <<oralejacstat>><<ejacstat>><<cumswallow `$NPCList[_nn].type` null `npcSemenMod($NPCList[_nn].penissize)`>> <<elseif $NPCList[_nn].penis is "feet">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> pushes your feet together and groans as <<he>> cums. Ejaculate covers your feet. <<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "feet" "semen">> <<case 4 5 6>> <<He>> quietly cums on your feet, slickening them with semen. <<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "feet" "semen">> <<case 7>> <<He>> grunts and thrusts <<his>> cock between your feet as <<he>> cums, splattering cum on your feet and legs in the process. "Such a filthy wretch." <<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "feet" "semen">> <<thighejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <</switch>> <<elseif $NPCList[_nn].penis is "leftarm" and $NPCList[_nn].penis is "rightarm">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> groans as <<he>> cums, penis pulsing in your hands, covering them both in cum. <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "semen">><<bodyliquid "rightarm" "semen">> <<case 4 5 6>> <<He>> quietly cums on your hands, slickening them with semen. <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "semen">><<bodyliquid "rightarm" "semen">> <<case 7>> <<He>> spasms and moans, shooting thick streams of cum. You are so intent on your work you don't notice <<his>> penis is aimed at your face, which is splattered with cum in the process. "Such a messy <<girl>>." <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "semen">><<bodyliquid "rightarm" "semen">> <<faceejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <</switch>> <<elseif $NPCList[_nn].penis is "leftarm">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> groans as <<he>> cums, penis sliding hotly in your left hand and covering it with cum. Grabbing your hand by the wrist, <<he>> forces it into your mouth so you can taste <<him>>. <<case 3 4>> <<He>> spasms and moans, shooting thick streams of cum. You are so intent on keeping <<him>> occupied you don't notice <<his>> penis is aimed at your face, which is splattered with cum in the process. <<faceejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <<case 6 7>> <<He>> spasms and moans, shooting thick streams of cum and splattering your chest in the process. "I need to train you to control my cock better." <<chestejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <</switch>> <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "semen">> <<elseif $NPCList[_nn].penis is "rightarm">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> groans as you work <<his>> shaft with your right hand, cumming as you give <<him>> a final squeeze; <<he>> flicks <<his>> cock clean on your face. <<case 4 5>> <<He>> spasms and moans, shooting thick streams of cum. You are so intent on keeping <<him>> occupied you don't notice <<his>> penis is aimed at your chest, which is splattered with cum in the process. "You're a mess; go clean up." <<chestejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <<case 6 7>> <<He>> grunts and shoots thick ropes of semen onto your hand, making an impressive mess. "Disgusting. Go clean yourself up." <</switch>> <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "rightarm" "semen">> <<elseif $NPCList[_nn].penis is 0>> <<switch random(1, 5)>> <<case 1>> <<He>> groans as <<he>> works <<his>> shaft and, giving <<his>> cock a final squeeze, ejaculates onto your tummy. "Don't forget you remain enrolled here at my pleasure." <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <<case 2>> <<He>> rapidly rubs <<his>> cock and aims at your face, covering it with semen. "Your proper place is on your knees servicing my cock; don't forget it." <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <<case 3>> <<He>> strokes <<his>> penis and, aiming at your ass, ejaculates on your bottom. "A gift to remember me by." <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 4>> <<He>> strokes <<his>> penis and moans, ejaculating on your <<breasts>>. "Such a messy pupil. Off you go, clean yourself up." <<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <<case 5>> <<He>> moans and rubs <<his>> cock wildly, sending cum flying all over your body; <<he>> wipes <<his>> penis clean in your hair. <<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <<tummyejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <<hairejacstat>><<set $hygiene += 500>><<bodyliquid "hair" "semen">> <</switch>> <<elseif $NPCList[_nn].penis is "otheranus">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> groans as you fuck <<his>> ass; <<he>> catches <<his>> ejaculate in <<his>> hand and wipes it on your face. "I hope you're learning who owns you." <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <<case 4 5>> <<He>> moans as you pound <<his>> ass and ejaculates on the ground. <<case 6 7>> <<He>> sighs as <<he>> ejaculates onto <<his>> own chest. <</switch>> <<elseif ($NPCList[_nn].penis is "otheranusfrot" or $NPCList[_nn].penis is "otheranusentrance" or $NPCList[_nn].penis is "otheranusimminent") and playerChastity("penis")>> <<He>> tenses as <<he>> cums, ejaculating over your $worn.genitals.name. "Whoever put you in that had the right idea," <<he>> gasps. "If only I had a key." <<elseif $NPCList[_nn].penis is "otheranusfrot" or $NPCList[_nn].penis is "otheranusentrance" or $NPCList[_nn].penis is "otheranusimminent">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> noisily cums as you fuck <<his>> cheeks, digging <<his>> nails into your ass from behind and grinding your cock against <<his>> ass to finish. "I expect you to fuck me properly next time or you'll be punished." <<case 4 5>> <<He>> moans as you rub against <<his>> anus and ejaculates on the ground; <<he>> seems disappointed. <<case 6 7>> <<He>> sighs as <<he>> ejaculates onto <<his>> own chest. "That was fine, but next time you're bottom. Be ready." <</switch>> <!-- Special case male PC being orally serviced by male NPC with no other contact --> <<elseif $NPCList[_nn].mouth is "penis">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> cums as you fuck <<his>> mouth; <<he>> catches <<his>> semen and rubs it into your stomach as <<he>> pushes you away. "I'm done now; off with you." <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <<case 4 5>> <<He>> cums on the ground as you fuck <<his>> mouth; <<he>> bites your cock, stopping you abruptly. "Enough, I'm finished." <<case 6 7>> <<He>> grabs you by the <<print ($player.ballsExist ? "balls" : "pussy")>> and painfully drives your cock into <<his>> throat; <<he>> ejaculates on <<his>> chest as <<he>> throats your cock. <</switch>> <<elseif $NPCList[_nn].penis is "othermouth">> <<He>> shakes with arousal as <<he>> cums, wiping <<his>> wet face clean on your body. <</if>> <<if $NPCList[_nn].penis isnot "none" and !$NPCList[_nn].penisdesc.includes("strap-on") and _condomResult is "leaked">> Despite wearing a condom, it was too damaged to stop the cum. <</if>> <br><br> <</if>> <!-- Finishing moves for consensual with low anger or non-consensual with damage or high anger --> <<if _args[0] isnot "short">> <<if $consensual is 1 and $enemyanger lte 0>> <<switch random(1, 5)>> <<case 1 2>> <<He>> absently strokes you, <span class="green">making you feel warm inside.</span> "Such a willing pupil; I've much more to teach you." <<lstress>><<ltrauma>><<lpain>><<violence -3>> <<case 3 4>> <<He>> strokes your hair, <span class="green">making you feel warm inside.</span> "I think you'll benefit from my attention." <<lstress>><<ltrauma>><<lpain>><<violence -3>> <<case 5>> <<He>> brushes your cheek with <<his>> hand. "Such a <<if $player.gender_appearance is "m">>handsome<<else>>beautiful<</if>> student." <span class="green">Your face flushes with pleasure.</span> <<lstress>><<ltrauma>><<lpain>><<violence -3>> <</switch>> <br><br> <<elseif $consensual is 0 and $enemyhealth lte ($enemyhealthmax / 10) * 7.5>> <<He>> <span class="red">angrily lashes your ass and thighs with <<his>> belt; you scream in pain, knees buckling under you.</span> "I expect your acquiescence. Fight with me like that and you can expect retribution." <<gstress>><<gtrauma>><<gpain>><<violence 6>> <br><br> <<elseif $consensual is 0 and $enemyhealth lte ($enemyhealthmax / 10) * 8.5>> <<He>> pins your arms back and <span class="pink">spanks your ass repeatedly as you writhe in pain.</span> "I expect your submission to me; fighting me is unacceptable." <<gstress>><<gtrauma>><<gpain>><<violence 3>> <br><br> <<elseif $consensual is 0 and $enemyhealth lte ($enemyhealthmax / 10) * 9.5>> <<He>> <span class="pink">slaps you across the ass.</span> "I expect obedience, not hostility." <<gstress>><<gtrauma>><<gpain>><<violence 2>> <br><br> <</if>> <</if>> <</widget>><<widget "ejaculation-pillory">> <<set $ejaculating to 1>> <!-- Female NPC1 at PILLORY --> <<if $NPCList[_nn].gender is "f">> <<if $consensual is 1>><!-- This is a catch-all; there are no consensual pillory encounters. --> <<He>> collapses in orgasmic bliss. <<else>> <<if $NPCList[_nn].vagina is "footjob">> <<He>> gasps as <<he>> cums. Recovering, <<he>> smiles and grinds <<his>> foot to your crotch. "I hope you enjoyed that." <<gtrauma>><<gstress>><<gpain>><<violence 6>><<bruise chest>><<hitstat>> <br><br> <<elseif $NPCList[_nn].vagina is "vagina" and playerChastity("vagina")>> <<He>> gasps as <<he>> cums against your $worn.genitals.name. "They didn't have to lock you up down there too," <<he>> says. "I could have had so much fun." <br><br> <<elseif $NPCList[_nn].vagina is "vagina">> <<switch random(1, 5)>> <<case 1 2>> <<He>> groans as <<he>> cums, dragging <<his>> wet pussy across your <<bottom>> and back of your thighs. "You must feel ashamed to have your <<lewdness>> on display like this." <br><br> <<case 3 4>> <<He>> moans as <<he>> grabs the pillory for leverage and grinds downs hard on your <<pussy>>. "This must be so embarrassing for you." <<gstress>><<gtrauma>><<gpain>><<violence 3>> <br><br> <<case 5>> <<He>> screams, grabbing you by the thighs and mashing <<his>> crotch against your <<bottom>>. Ejaculate streams from <<his>> pussy, drenching you. "What a mess; you must be mortified." <br><br> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "goo">> <</switch>> <<elseif $NPCList[_nn].vagina is "othermouth">> <<He>> shakes with arousal as <<he>> cums, wiping <<his>> wet face clean on your body. "You can clean that off later." <br><br> <<elseif $NPCList[_nn].vagina is "lefthand" or $NPCList[_nn].vagina is "righthand">> <<He>> moans as <<he>> cums. <<He>> <span class="pink">grabs you by the hair and whispers in your ear</span> "I bet you enjoy having your <<lewdness>> shown to a crowd." <br><br> <<elseif $NPCList[_nn].vagina is "mouthentrance" or $NPCList[_nn].vagina is "mouth" or $NPCList[_nn].vagina is "mouthimminent">> <<He>> groans and grabs the pillory for leverage, grinding <<his>> crotch roughly against your restrained face as <<his>> thighs shake with orgasm. <br><br> <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "goo">> <!-- following appear to be Male PC to Female Antagonist only? --> <<elseif $NPCList[_nn].vagina is "otheranus">> <<He>> shakes as <<he>> cums, grabbing you by the <<print ($player.ballsExist ? "balls" : "pussy")>> and dragging your <<penis>> deeply into <<his>> ass as <<he>> releases a final moan. <br><br> <<elseif $NPCList[_nn].vagina is "penis">> <<He>> digs <<his>> nails painfully into your legs as <<he>> cums, driving <<his>> pussy hard against your <<penis>> as <<he>> shudders with pleasure. <br><br> <<elseif ($NPCList[_nn].vagina is "penisimminent" or $NPCList[_nn].vagina is "penisentrance") and playerChastity("penis")>> <<He>> gasps as <<he>> cums against your $worn.genitals.name. "They didn't have to lock you up down there too," <<he>> says. "I could have had so much fun." <br><br> <<elseif $NPCList[_nn].vagina is "penisimminent" or $NPCList[_nn].vagina is "penisentrance">> <<He>> moans as <<he>> cums on your throbbing <<penis>>. <br><br> <<elseif ($NPCList[_nn].vagina is "otheranusfrot" or $NPCList[_nn].vagina is "otheranusentrance") and playerChastity("penis")>> <<He>> gasps as <<he>> cums against your $worn.genitals.name. "They didn't have to lock you up down there too," <<he>> says. "I could have had so much fun." <br><br> <<elseif $NPCList[_nn].vagina is "otheranusfrot" or $NPCList[_nn].vagina is "otheranusentrance">> <<He>> swivels <<his>> ass against your <<penis>> as <<he>> cums. <br><br> <<elseif $NPCList[_nn].vagina is "frot" and playerChastity("penis")>> <<He>> gasps as <<he>> cums against your $worn.genitals.name. "They didn't have to lock you up down there too," <<he>> says. "I could have had so much fun." <br><br> <<elseif $NPCList[_nn].vagina is "frot">> <<He>> grabs your legs and pulls you against <<his>> clit hard against your <<penis>> as <<he>> cums. <<gstress>><<gtrauma>><<gpain>><<violence 3>><<bruise neck>><<hitstat>> <br><br> <!-- Special case male PC with female NPC --> <<elseif $NPCList[_nn].mouth is "penis">> <<He>> cums as <<he>> sucks your <<penis>>, dropping away as <<he>> gasps for air. <br><br> <<else>> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> trembles with orgasm. Lifting your head up by the hair, <<he>> says, "I hope you're learning your lesson." <br><br> <<case 4 5 6>> <<He>> sighs quietly as <<he>> cums, smacking your <<bottom>>. "See you around, <<bitch>>." You feel embarrassed to have your <<lewdness>> on display. <br><br> <<case 7>> <<He>> rapidly rubs <<his>> clit and screams as <<he>> cums; <<his>> pussy squirting and covering you in ejaculate. <br><br> <<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "goo">> <</switch>> <</if>> <</if>> <</if>> <!-- Male Gender NPC at PILLORY --> <<if $NPCList[_nn].gender is "m">> <!-- Start simplified strap-on sub-case --> <<if $NPCList[_nn].penisdesc.includes("strap-on")>> <<if $consensual is 0>><!-- Non-consen strap-on case --> <<switch $NPCList[_nn].penis>> <<case "vagina" "vaginaimminent" "vaginaentrance" "anus" "anusentrance" "anusimminent" "thighs">> <<switch random(1, 3)>> <<case 1>> <<He>> shakes as <<he>> cums, slapping you across the ass with <<his>> $NPCList[_nn].penisdesc. <br><br> <<case 2>> <<He>> cums loudly, then spanks your ass with <<his>> $NPCList[_nn].penisdesc. "Something to remember me by, whore." <br><br> <<case 3>> <<He>> cums quietly, rubbing <<his>> $NPCList[_nn].penisdesc along your back. <br><br> <</switch>> <<case "mouth">> <<He>> cums loudly, shoving <<his>> $NPCList[_nn].penisdesc deep into your throat, making you gag. Tears stream down your face. <br><br> <<case "mouthentrance" "mouthimminent" "chest" "lefthand" "righthand">> <<switch random(1, 3)>> <<case 1>> <<He>> shakes as <<he>> cums, slapping you across the face with <<his>> $NPCList[_nn].penisdesc. <br><br> <<case 2>> <<He>> cums loudly, then laughs, wiping <<his>> $NPCList[_nn].penisdesc of on your hair. <br><br> <<case 3>> <<He>> cums silently, mouth agape, rubbing <<his>> $NPCList[_nn].penisdesc against your cheek. <br><br> <</switch>> <<default>> <<He>> moans as <<he>> cums, rubbing <<his>> clit with the base of <<his>> $NPCList[_nn].penisdesc. <br><br> <</switch>> <<else>><!-- Consensual strap-on case --> <<switch $NPCList[_nn].penis>> <<case "vagina" "vaginaimminent" "vaginaentrance" "anus" "anusentrance" "anusimminent" "thighs">> <<He>> shakes as <<he>> cums, wiping <<his>> $NPCList[_nn].penisdesc off on your ass. <br><br> <<case "mouth">> <<He>> cums loudly, grinding <<his>> $NPCList[_nn].penisdesc against <<his>> own crotch with <<his>> hand as <<he>> cums. <br><br> <<case "mouthentrance" "mouthimminent" "chest" "lefthand" "righthand">> <<He>> cums silently, mouth agape, rubbing <<his>> $NPCList[_nn].penisdesc against your cheek. <br><br> <<default>> <<He>> moans as <<he>> cums, rubbing <<his>> clit with the base of <<his>> $NPCList[_nn].penisdesc. <br><br> <</switch>> <</if>> <<elseif $consensual is 1>><!-- This is a catch-all; there are no consensual pillory encounters. --> <<He>> collapses in orgasmic bliss. <<else>> <<if _condomResult is "leaked">> <span class="red">The condom broke.</span> <<elseif _condomResult is "burst">> <span class="red">The tip of the condom bursts and rips, exposing the head of <<his>> penis.</span> <</if>> <<if $NPCList[_nn].penis is "idle">> <<He>> groans as a wet patch forms on <<his>> trousers. You barely stifle a laugh at the pathetic display. <br><br> <<elseif _condomResult is "contained">> <<genericCondomEjaculation>> <<elseif $NPCList[_nn].penis is "thighs">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> shakes as <<he>> cums, pulling <<his>> $NPCList[_nn].penisdesc out and ejaculating onto the backs of your thighs, then wipes <<his>> cock clean on your <<bottom>>. <br><br> <<thighejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <<case 4 5 6>> <<He>> grabs your legs, slamming <<his>> crotch hard into your <<bottom>> as <<he>> cums and ejaculates onto your tummy. <br><br> <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <<case 7>> <<He>> groan as <<he>> cums, ejaculating a massive load that covers your thighs and tummy. "You must be so embarrassed to be seen in public covered with my cum." <br><br> <<thighejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <<tummyejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <</switch>> <<elseif $NPCList[_nn].penis is "vaginaentrance" and playerChastity("vagina")>> <<He>> gasps as <<he>> cums against your $worn.genitals.name. "They didn't have to lock you up down there too," <<he>> says. "I could have had so much fun." <br><br> <<elseif $NPCList[_nn].penis is "vaginaentrance">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> shoves <<his>> thumb into your ass and groans as <<he>> ejaculates onto your <<pussy>>. Semen coats your outer lips and pools around your legs. <br><br> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 5, rngType: "canWash"}`>> <<case 4 5 6>> <<He>> strokes <<his>> $NPCList[_nn].penisdesc and ejaculates onto your <<pussy>> without a word, sending white streams of semen running down your cunt; flicking <<his>> cock dry on your <<bottom>>. <br><br> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 5, rngType: "canWash"}`>> <<case 7>> <<He>> moans and strokes <<his>> $NPCList[_nn].penisdesc as <<he>> cums, sending thick ropes of semen onto your <<pussy>> and ass; <<he>> dries <<his>> cock on your thighs. <br><br> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<bottomejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 5, rngType: "canWash"}`>> <</switch>> <<elseif $NPCList[_nn].penis is "vaginaimminent" and playerChastity("vagina")>> <<He>> gasps as <<he>> cums against your $worn.genitals.name. "They didn't have to lock you up down there too," <<he>> says. "I could have had so much fun." <br><br> <<elseif $NPCList[_nn].penis is "vaginaimminent">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> cums before <<he>> can penetrate your <<pussy>>, ejaculating on the outside. Semen coats your outer lips and tummy; <span class="red"><<he>> slaps you across the ass hard in anger</span> as you jerk in the restraints. <<gstress>><<gtrauma>><<gpain>><<violence 6>><<bruise bottom>><<hitstat>> <br><br> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 15, rngType: "canWash"}`>> <<case 4 5 6>> <<He>> ejaculates onto your <<pussy>> before <<he>> can penetrate you, sending white streams of semen running down your cunt; <<he>> groans in disappointment. <br><br> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 15, rngType: "canWash"}`>> <<case 7>> <<He>> moans and strokes <<his>> $NPCList[_nn].penisdesc as <<he>> cums, sending thick ropes of semen onto your <<pussy>> and ass. "You must be so embarrassed to be seen in public with cum dripping down your legs." <br><br> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<bottomejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 15, rngType: "canWash"}`>> <</switch>> <<elseif $NPCList[_nn].penis is "vagina">> <<switch $NPCList[_nn].penissize>> <<case 4>> <<He>> convulses and grinds down on your crotch as <<he>> cums, <<his>> $NPCList[_nn].penisdesc sending thick waves of cum into your <<pussy>>. Semen oozes from your vagina and down your legs. "Doesn't look like you can hold my load, you fragile cunt." <br><br> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<vaginalejacstat>><<set $hygiene += 500>><<bodyliquid "vagina" "semen">> <<thighejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <<recordVaginalSperm "pc" $NPCList[_nn] "human">> <<case 1>> <<He>> moans as a dribble of cum leaks from <<his>> $NPCList[_nn].penisdesc and onto the outside of your <<genitals>>. <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 15, rngType: "canWash"}`>> <br><br> <<default>> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> grabs the pillory for leverage, pulling and thrusting deeply into your <<pussy>> as <<he>> cums, holding <<his>> $NPCList[_nn].penisdesc deep in your womb. Semen splashes inside your bruised cunt as your shoulders mash into the restraints. <br><br> <<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vagina" "semen">> <<recordVaginalSperm "pc" $NPCList[_nn] "human">> <<case 4 5 6>> <<He>> quiets and grabs your hips, pounding <<his>> $NPCList[_nn].penisdesc into you as <<he>> cums. Semen fills your <<pussy>> as your body jerks in the restraints. <<gstress>><<gtrauma>><<gpain>><<violence 3>><<bruise neck>><<hitstat>> <br><br> <<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vagina" "semen">> <<recordVaginalSperm "pc" $NPCList[_nn] "human">> <<case 7>> <<He>> convulses and grinds on your cunt as <<he>> cums, smashing your clit and sending thick waves of cum into your <<pussy>>. Semen oozes from your vagina and down your legs. "I bet you enjoy being forced to show your <<lewdness>> to the whole town." <br><br> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<vaginalejacstat>><<set $hygiene += 500>><<bodyliquid "vagina" "semen">> <<thighejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <<recordVaginalSperm "pc" $NPCList[_nn] "human">> <</switch>> <</switch>> <<elseif $NPCList[_nn].penis is "cheeks" and playerChastity()>> <<He>> gasps as <<he>> cums against your $worn.genitals.name. "They didn't have to lock you up down there too," <<he>> says. "I could have had so much fun." <br><br> <<elseif $NPCList[_nn].penis is "cheeks">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> shakes as <<he>> cums, withdrawing <<his>> $NPCList[_nn].penisdesc from your cheeks and ejaculating onto your <<bottom>> and giving you a parting smack on the butt. <br><br> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 4 5 6>> <<He>> pinches the top of your cheeks with <<his>> hands and smashes you hard against the stocks, ejaculating between your cheeks. <br><br> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 7>> <<He>> squeezes your cheeks together and grunts as <<he>> cums, sending out massive load that covers your <<bottom>> and drips down your crotch. "Such a sloppy mess, and in public." <br><br> <<bottomejacstat>><<ejacstat>><<set $hygiene += 1000>><<bodyliquid "bottom" "semen" 2>> <</switch>> <<elseif $NPCList[_nn].penis is "anusentrance" and playerChastity("anus")>> <<He>> gasps as <<he>> cums against your $worn.genitals.name. "They didn't have to lock you up down there too," <<he>> says. "I could have had so much fun." <br><br> <<elseif $NPCList[_nn].penis is "anusentrance">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> <span class="blue">slaps your asscheek with one hand</span> and strokes <<his>> $NPCList[_nn].penisdesc with the other, ejaculating onto your bottom. Semen drips down your butt and into your crack. <<gstress>><<gtrauma>><<gpain>><<violence 3>><<bruise bottom>><<hitstat>> <br><br> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 4 5 6>> <<He>> strokes <<his>> $NPCList[_nn].penisdesc and quietly ejaculates onto your <<bottom>>. You feel semen dripping down your crack and feel filthy inside. <br><br> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 7>> <<He>> moans and strokes <<his>> $NPCList[_nn].penisdesc as <<he>> cums, sending thick ropes of semen onto your <<bottom>> and down your crotch. "I think you'd have enjoyed being fucked in the ass a bit too much." <br><br> <<bottomejacstat>><<ejacstat>><<set $hygiene += 1000>><<bodyliquid "bottom" "semen" 2>> <</switch>> <<recordSperm `{genital: "anus", target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 5, rngType: "canWash"}`>> <<elseif $NPCList[_nn].penis is "anusimminent" and playerChastity("anus")>> <<He>> gasps as <<he>> cums against your $worn.genitals.name. "They didn't have to lock you up down there too," <<he>> says. "I could have had so much fun." <br><br> <<elseif $NPCList[_nn].penis is "anusimminent">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> cums before <<he>> can penetrate your ass, ejaculating on the outside. Semen coats your <<bottom>> and drips down your crack; <span class="red"><<he>> smacks your ass angrily.</span> <<gstress>><<gtrauma>><<gpain>><<violence 6>><<bruise bottom>><<hitstat>> <br><br> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 4 5 6>> <<He>> strokes <<his>> $NPCList[_nn].penisdesc and ejaculates onto your <<bottom>> before <<he>> can penetrate you, sending white streams of semen running down your crack; <<he>> seems disappointed. <br><br> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 7>> <<He>> moans and strokes <<his>> $NPCList[_nn].penisdesc as <<he>> cums, sending thick ropes of semen onto your <<bottom>> and crotch. "I bet you feel like a disgusting pig." <br><br> <<bottomejacstat>><<ejacstat>><<set $hygiene += 1000>><<bodyliquid "bottom" "semen" 2>> <</switch>> <<recordSperm `{genital: "anus", target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 15, rngType: "canWash"}`>> <<elseif $NPCList[_nn].penis is "anus">> <<switch $NPCList[_nn].penissize>> <<case 4>> <<He>> convulses and, with a final shove of <<his>> $NPCList[_nn].penisdesc cums in your ass. Thick waves of semen pump into you. <span class="blue">You gasp as your ass overflows;</span> cum oozes from your <<bottom>> and runs down your legs. "You need to learn how to take a cock, you sloppy pig." <<analejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "anus" "semen">> <<thighejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <<recordAnusSperm "pc" $NPCList[_nn] "human">> <br><br> <<case 1>> <<He>> moans as a pathetic dribble of cum leaks from <<his>> $NPCList[_nn].penisdesc and onto your <<bottom>>. <br><br> <<default>> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> moans, pounding your ass mercilessly as <<he>> cums. You whimper as you take <<his>> entire length and feel unwelcome semen streaming in your asshole. <br><br> <<analejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "anus" "semen">> <<recordAnusSperm "pc" $NPCList[_nn] "human">> <<case 4 5 6>> <<He>> grabs the stocks for better grip, pushing hard into your <<bottom>> as <<he>> cums, mashing your body into the pillory. Semen fills you as you cry out, <<his>> girth stretching your anus. <br><br> <<analejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "anus" "semen">> <<recordAnusSperm "pc" $NPCList[_nn] "human">> <<case 7>> <<He>> convulses and with a final shove, cums in your ass. Thick waves of semen pump into you. <span class="blue">You gasp as your ass overflows;</span> cum oozes from your <<bottom>> and runs down your legs. "Ass fucked in public like the whore you are, with your <<lewdness>> for all to see." <br><br> <<analejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "anus" "semen">> <<thighejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <<recordAnusSperm "pc" $NPCList[_nn] "human">> <</switch>> <</switch>> <<elseif $NPCList[_nn].penis is "chest">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> pinches your <<breasts>> together on <<his>> $NPCList[_nn].penisdesc as <<he>> cums, ejaculating onto them. <br><br> <<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <<case 4 5 6>> <<He>> grabs your hair to force you to look at <<him>> while <<he>> strokes the tip of <<his>> $NPCList[_nn].penisdesc between your <<breasts>> and wordlessly ejaculates onto them. Your <<breasts>> cool as semen slides down your body. <br><br> <<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <<case 7>> <<He>> grabs the pillory for leverage and bears down on your <<breasts>>, grunting as <<he>> cums; semen shoots between your <<breasts>> and down the pillory. <<He>> laughs and <span class="purple">slaps <<his>> $NPCList[_nn].penisdesc across your helpless face to dry it off.</span> <<gtrauma>><<gstress>><<violence 1>><<bruise face>><<hitstat>> <br><br> <<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <</switch>> <<elseif $NPCList[_nn].penis is "mouthentrance">> <<switch $NPCList[_nn].penissize>> <<case 4>> <<He>> grips <<his>> $NPCList[_nn].penisdesc tightly, working it while aiming straight at your mouth. <span class="pink">You splutter and gag as thick ropes of cum push past your clenched lips and into your mouth.</span> "You need to learn to swallow, <<bitch>>." <<cumswallow `$NPCList[_nn].type` null `npcSemenMod($NPCList[_nn].penissize)`>> <br><br> <<case 1>> <<He>> moans as a pathetic dribble of cum leaks from <<his>> $NPCList[_nn].penisdesc and down your chin. It's all you can do to keep from laughing. <br><br> <<default>> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> cups your chin with one hand and strokes <<his>> $NPCList[_nn].penisdesc with the other, ejaculating onto your face. "You must be so embarrassed to be showing your <<lewdness>> like this." <br><br> <<case 4 5 6>> <<He>> strokes <<his>> $NPCList[_nn].penisdesc and, holding your hair, ejaculates onto your face. Warm cum drips down your forehead and nose. "I bet you enjoy being used like this in public." <br><br> <<case 7>> <<He>> grasps your hair tightly in <<his>> fist, stroking <<his>> $NPCList[_nn].penisdesc while aiming straight at your mouth. <span class="pink">You splutter and gag as thick ropes of cum push past your clenched lips and into your mouth.</span> "You need to learn to swallow, <<bitch>>." <<cumswallow `$NPCList[_nn].type` null `npcSemenMod($NPCList[_nn].penissize)`>> <br><br> <</switch>> <</switch>> <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <<elseif $NPCList[_nn].penis is "mouthimminent">> <<switch $NPCList[_nn].penissize>> <<case 4>> <<He>> grips <<his>> $NPCList[_nn].penisdesc tightly, working it while aiming straight at your mouth. <span class="pink">You splutter and gag as thick ropes of cum push past your clenched lips and into your mouth.</span> "You need to learn to swallow, <<bitch>>." <<cumswallow `$NPCList[_nn].type` null `npcSemenMod($NPCList[_nn].penissize)`>> <br><br> <<case 1>> <<He>> moans as a pathetic dribble of cum leaks from <<his>> $NPCList[_nn].penisdesc and down your chin. It's all you can do to keep from laughing. <br><br> <<default>> <<switch random(1, 7)>> <<case 1 2>> <<He>> cups your chin with one hand and strokes <<his>> $NPCList[_nn].penisdesc with the other, ejaculating onto your face. "You must be so embarrassed to be showing your <<lewdness>> like this." <br><br> <<case 3 4>> <<He>> strokes <<his>> $NPCList[_nn].penisdesc and, holding your hair, ejaculates onto your face. Warm cum drips down your forehead and nose. "I bet you enjoy being used like this in public." <br><br> <<case 5>> <<He>> grasps your hair tightly in <<his>> fist, stroking <<his>> $NPCList[_nn].penisdesc while aiming straight at your mouth. <span class="pink">You splutter and gag as thick ropes of cum push past your clenched lips and into your mouth.</span> "You need to learn to swallow, <<bitch>>." <<cumswallow `$NPCList[_nn].type` null `npcSemenMod($NPCList[_nn].penissize)`>> <br><br> <<case 6>> <<He>> grips hair at the top of your head, ejaculating onto your lips as you barely brush against the tip of <<his>> penis. <br><br> <<case 7>> <<He>> brushes <<his>> $NPCList[_nn].penisdesc against your face and ejaculates. Cum drips down your lips and chin; laughing, <<he>> wipes the cum off your face with <<his>> hand and shoves it in your mouth. <<cumswallow `$NPCList[_nn].type` null `npcSemenMod($NPCList[_nn].penissize)`>> <br><br> <</switch>> <</switch>> <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <<elseif $NPCList[_nn].penis is "mouth">> <<switch $NPCList[_nn].penissize>> <<case 4>> <<He>> grabs your hair and thrusts down your throat, gagging you with <<his>> $NPCList[_nn].penisdesc as <<he>> cums. <span class="pink">You whimper as semen streams down your throat,</span> and fills your mouth. "I bet you enjoy being face fucked." <<gstress>><<gtrauma>><<gpain>><<violence 3>><<bruise neck>><<hitstat>> <br><br> <<case 1>> <<He>> bears into your face with <<his>> pelvis, try to shove <<his>> $NPCList[_nn].penisdesc as far into your mouth as possible. It's not much, and a tiny dribble of semen leaks from the tip. <br><br> <<default>> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> grabs you under the chin with one hand and by your hair with the other, shoving <<his>> $NPCList[_nn].penisdesc down your throat as <<he>> cums. You gag and retch as unwanted semen streams down your throat, forcing you to swallow. <br><br> <<case 4 5 6>> <<He>> holds the pillory as <<he>> mashes <<his>> $NPCList[_nn].penisdesc into your mouth, ejaculating into your mouth with a moan. You gag as cum fills your mouth and drips down your chin. <br><br> <<case 7>> <<He>> grasps your hair by the temples, wildly thrusting <<his>> $NPCList[_nn].penisdesc down your throat as <<he>> cums. <span class="pink">You whimper as semen streams down your throat,</span> fills your mouth and covers your face as <<he>> flails. "I bet you enjoy being face fucked in public, with your <<lewdness>> on display." <<faceejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <<gstress>><<gtrauma>><<gpain>><<violence 3>><<bruise neck>><<hitstat>> <br><br> <</switch>> <</switch>> <<oralejacstat>><<ejacstat>><<cumswallow `$NPCList[_nn].type` null `npcSemenMod($NPCList[_nn].penissize)`>> <<elseif $NPCList[_nn].penis is "feet">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> pushes your feet together and groans as <<he>> cums. Ejaculate covers your feet. <br><br> <<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "feet" "semen">> <<case 4 5 6>> <<He>> quietly cums on your feet, slickening them with semen. <br><br> <<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "feet" "semen">> <<case 7>> <<He>> grunts and thrusts <<his>> $NPCList[_nn].penisdesc between your feet as <<he>> cums, splattering cum on your feet and legs in the process. "Too bad you can't clean that up." <br><br> <<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "feet" "semen">> <<thighejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <</switch>> <!-- Removed hands outcomes --> <<elseif $NPCList[_nn].penis is 0>> <<switch random(1, 4)>> <<case 1>> <<He>> groans as <<he>> works <<his>> shaft and, giving <<his>> $NPCList[_nn].penisdesc a final squeeze, ejaculates onto your back. "You enjoy being cum on in public, don't you?" <br><br> <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <<case 2>> <<He>> rapidly rubs <<his>> $NPCList[_nn].penisdesc and aims at your face, covering it with semen. "What a lovely cum dumpster you are." <br><br> <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <<case 3>> <<He>> strokes <<his>> penis and, aiming at your <<bottom>>, ejaculates on your bottom. "You must be so embarrassed to have your <<lewdness>> shown to all." <br><br> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 4>> <<He>> moans and rubs <<his>> $NPCList[_nn].penisdesc wildly, sending cum flying all over your body; <<he>> wipes <<his>> penis clean in your hair. <br><br> <<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <<tummyejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <<hairejacstat>><<set $hygiene += 500>><<bodyliquid "hair" "semen">> <</switch>> <<elseif $NPCList[_nn].penis is "otheranus">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> groans as you fuck <<his>> ass; <<he>> catches <<his>> ejaculate in <<his>> hand and wipes it on your face. <br><br> <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <<case 4 5>> <<He>> moans as you pound <<his>> ass and ejaculates on the ground. <br><br> <<case 6 7>> <<He>> sighs as <<he>> ejaculates onto <<his>> own chest. <br><br> <</switch>> <<elseif ($NPCList[_nn].penis is "otheranusfrot" or $NPCList[_nn].penis is "otheranusentrance" or $NPCList[_nn].penis is "otheranusimminent") and playerChastity("penis")>> <<He>> gasps as <<he>> cums against your $worn.genitals.name. "They didn't have to lock you up down there too," <<he>> says. "I could have had so much fun." <br><br> <<elseif $NPCList[_nn].penis is "otheranusfrot" or $NPCList[_nn].penis is "otheranusentrance" or $NPCList[_nn].penis is "otheranusimminent">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> noisily cums as you fuck <<his>> cheeks, digging <<his>> nails into your <<bottom>> from behind and grinding your <<penis>> against <<his>> ass to finish. <br><br> <<case 4 5>> <<He>> moans as you rub against <<his>> anus and ejaculates on the ground; <<he>> seems disappointed. <br><br> <<case 6 7>> <<He>> sighs as <<he>> ejaculates onto <<his>> own chest. <br><br> <</switch>> <!-- Special case male PC being orally serviced by male NPC with no other contact --> <<elseif $NPCList[_nn].mouth is "penis">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> cums as you fuck <<his>> mouth; <<he>> catches <<his>> semen and rubs it into your face. "Don't you look lovely now." <br><br> <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <<case 4 5>> <<He>> cums on the ground as you fuck <<his>> mouth; <<he>> bites your <<penis>>, stopping you abruptly. "I'm done now." <br><br> <<case 6 7>> <<He>> grabs you by the <<print ($player.ballsExist ? "balls" : "pussy")>> and painfully drives your <<penis>> into <<his>> throat; <<he>> ejaculates on <<his>> chest as <<he>> throats your <<penis>>. <br><br> <</switch>> <<elseif $NPCList[_nn].penis is "othermouth">> <<He>> shakes with arousal as <<he>> cums, wiping <<his>> wet face clean on your back. <br><br> <<else>> <<He>> collapses into orgasmic bliss. <</if>> <</if>> <</if>> <!-- Finishing moves for damage --> <<if _args[0] isnot "short">> <<if $consensual is 0 and $enemyhealth lte ($enemyhealthmax / 10) * 7.5>> <<He>> <span class="red">angrily punches your side, knocking the wind out of you.</span> "What are you thinking, trying to fight me when you're bound like this?" <<gstress>><<gtrauma>><<gpain>><<violence 6>> <br><br> <<elseif $consensual is 0 and $enemyhealth lte ($enemyhealthmax / 10) * 8.5>> <<He>> <span class="pink">slaps you back and forth across the face.</span> "That'll teach you to fight with me." <<gstress>><<gtrauma>><<gpain>><<violence 3>> <br><br> <<elseif $consensual is 0 and $enemyhealth lte ($enemyhealthmax / 10) * 9.5>> <<He>> <span class="pink">spits in your face.</span> "You seem to need reminding that you're helpless here, you cheeky cunt." <<gstress>><<gtrauma>><<gpain>><<violence 1>> <br><br> <</if>> <</if>> <</widget>><<widget "ejaculation-plant">> <<set $ejaculating to 1>> <!-- Changing rows to future-proof the code: from $NPCList[0] to $NPCList[_nn], _nn being the main ejaculation loop handler --> <<if $consensual is 1>> <<set _nectar to "nectar">> <<set _Nectar to "Nectar">> <<set _fizzyNectar to "Fizzy nectar">> <<else>> <<set _nectar to "unwanted nectar">> <<set _Nectar to "Unwanted nectar">> <<set _fizzyNectar to "Unwanted fizzy nectar">> <</if>> <!-- Female PLANT --> <<if $NPCList[_nn].vagina isnot "none" and $NPCList[_nn].penis is "none">> <<if $NPCList[_nn].vagina is "mouthentrance" or $NPCList[_nn].vagina is "mouth" or $NPCList[_nn].vagina is "mouthimminent">> <<switch random(1, 5)>> <<case 1 2>> <<He>> moans and rubs <<his>> crotch against your face with <<his>> hips, thighs shaking with orgasm. <<case 3 4>> <<His>> blush deepens and <<his>> body twitches as <<he>> cums. <<case 5>> <<He>> screams, cupping your head in <<his>> hand and rubbing <<his>> clit against your face. <</switch>> Some _nectar leaks into your mouth. <span class="purple">It tastes fizzy,</span> and makes your head spin. <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<nectarfed 20>> <<elseif $NPCList[_nn].vagina is "leftarm" or $NPCList[_nn].vagina is "rightarm">> <<if $NPCList[_nn].mouth is "kissimminent" or $NPCList[_nn].mouth is "kiss">> <<He>> grasps your arm with one hand and the back of your head with the other, moaning into your mouth as <<he>> convulses on your hand. <<else>> <<switch random(1, 5)>> <<case 1 2>> <<He>> sighs as <<his>> body convulses, <<his>> thighs trembling against your head. <<case 3 4>> <<His>> blush deepens and <<his>> mouth gapes as <<he>> cums against your hand. <<case 5>> <<He>> moans, spraying nectar onto your hand. With a mischievous look, <<he>> pushes your hand into your mouth, filling it with _nectar. <span class="purple">It tastes fizzy,</span> and makes your head spin. "Got you." <<nectarfed 8>> <</switch>> <</if>> <<elseif $NPCList[_nn].vagina is "feet">> <<if $NPCList[_nn].mouth is "kissimminent" or $NPCList[_nn].mouth is "kiss">> <<He>> moans into your mouth as <<he>> cums, spasming around your feet. <<else>> <<switch random(1, 5)>> <<case 1 2>> <<He>> moans and grasps your ankles as <<he>> cums. "I think I underestimated humans. You know how to work with what you've got!" <<case 3 4>> <<He>> grasps <<his>> $NPCList[_nn].breastsdesc as <<he>> cums against your feet. "Most plants don't like being underfoot. Guess I'm the exception!" <<case 5>> <<He>> screams as <<he>> cums, almost making you jump. <<His>> nectar runs over your feet. <</switch>> <</if>> <<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "feet" "nectar">> <<elseif $NPCList[_nn].vagina is "vagina" and playerChastity("vagina")>> <<if $NPCList[_nn].mouth is "kissimminent" or $NPCList[_nn].mouth is "kiss">> <<He>> moans into your mouth as <<he>> cums, grinding against your $worn.genitals.name. <<else>> <<He>> screams as <<he>> cums against your $worn.genitals.name. "I hate metal," <<he>> gasps, looking down at it in disappointment. <</if>> <<elseif $NPCList[_nn].vagina is "vagina">> <<if $NPCList[_nn].mouth is "kissimminent" or $NPCList[_nn].mouth is "kiss">> <<if random(1)>> <<He>> screams into your mouth, <<his>> legs shaking. <<else>> <<He>> scissors your pussies together with a feverish passion, moaning into your mouth. <</if>> <<else>> <<switch random(1, 5)>> <<case 1 2>> <<He>> cums as you scissor your pussies together, moaning with pleasure. <<case 3 4>> <<He>> wraps <<his>> legs around yours as <<his>> body shakes. "Man," <<he>> giggles. "Who needs vines, anyway?" <<case 5>> <<He>> moans and <<his>> legs shake as <<he>> cums against your <<pussy>>. <</switch>> <</if>> <<elseif $NPCList[_nn].vagina is "othermouth">> <<switch random(1, 5)>> <<case 1 2>> <<He>> shudders with pleasure and exhales against your crotch as <<he>> cums. "You're delicious," <<he>> whispers. <<case 3 4>> <<He>> trembles against your crotch as <<he>> cums, greedily lapping up your juices. <<case 5>> <<He>> screams into your crotch as <<he>> cums, <<his>> hands pressing firm into <<his>> thighs. <</switch>> <<elseif $NPCList[_nn].vagina is "facesit">> <<switch random(1,5)>> <<case 1 2>> <<He>> moans and rubs <<his>> crotch against your face, shuddering as <<he>> comes to orgasm. <<case 3 4>> <<He>> begins to erratically move on your face, losing all semblance of control as <<he>> cums, squirting in your mouth. <<case 5>> <<He>> gasps and shudders, pressing down on your face at the moment of orgasm. <</switch>> _Nectar squirts all over your face, and some leaks into your mouth. <span class="purple">It tastes fizzy,</span> and makes your head spin. <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<nectarfed 20>><<bodyliquid "face" "nectar">> <<elseif $NPCList[_nn].vagina is "facesitanal">> <<switch random(1,5)>> <<case 1 2>> <<He>> moans and grinds <<his>> ass against your mouth, shaking as <<he>> comes to orgasm. <<case 3 4>> <<He>> begins to rhythmically press <<his>> ass against you, getting faster as <<he>> builds to a shuddering climax. <<case 5>> <<He>> gasps and shudders, pressing down on your face at the moment of orgasm. <</switch>> _Nectar squirts all over your face from <<his>> pussy. <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "nectar">> <<elseif $NPCList[_nn].vagina is "otheranus">> <<if $NPCList[_nn].mouth is "kissimminent" or $NPCList[_nn].mouth is "kiss">> <<if random(1)>> <<He>> gasps into your mouth, thrusting <<himself>> on your <<penis>>. <<else>> <<He>> wraps <<his>> arms around your neck and <<his>> legs around your waist, moaning into your mouth as <<he>> cums. <</if>> <<else>> <<switch random(1, 5)>> <<case 1 2>> <<He>> shakes as <<he>> cums, <<his>> ass pushing against you as <<he>> releases a final moan. <<case 3 4>> <<He>> shakes against your <<penis>> as <<he>> cums, moaning and grinding into you as deep as <<he>> can. <<case 5>> <<He>> bucks into your crotch as <<he>> cums, giggling. "Not my usual hole, but sweet fuck that felt good." <</switch>> <</if>> <<thighejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "nectar">> <<elseif $NPCList[_nn].vagina is "penis">> <<if $NPCList[_nn].mouth is "kissimminent" or $NPCList[_nn].mouth is "kiss">> <<if random(1)>> <<He>> shudders around your <<penis>>, thrusting <<himself>> onto you. "You're way better than a vine," <<he>> murmurs into your mouth. <<else>> <<He>> wraps <<his>> arms around your neck and <<his>> legs around your waist, moaning into your mouth as <<he>> cums. <</if>> <<else>> <<switch random(1, 5)>> <<case 1 2>> <<He>> throws <<his>> arms around your shoulders as <<he>> cums, driving <<his>> pussy down hard against your <<penis>>. "Your cock was made for me," <<he>> whispers. <<case 3 4>> <<He>> sighs as <<he>> cums, staring into your eyes. "I want to keep you here and do this every day." <<case 5>> <<He>> screams and pounds your <<penis>> with <<his>> pelvis as <<he>> cums, <<his>> whole body shaking. <</switch>> <</if>> <<elseif ($NPCList[_nn].vagina is "penisimminent" or $NPCList[_nn].vagina is "penisentrance" or $NPCList[_nn].vagina is "otheranusfrot" or $NPCList[_nn].vagina is "otheranusentrance") and playerChastity("penis")>> <<if $NPCList[_nn].mouth is "kissimminent" or $NPCList[_nn].mouth is "kiss">> <<He>> moans into your mouth as <<he>> cums, grinding against your $worn.genitals.name. <<else>> <<He>> screams as <<he>> cums against your $worn.genitals.name. "I hate metal," <<he>> gasps, looking down at it in disappointment. <</if>> <<elseif $NPCList[_nn].vagina is "penisimminent" or $NPCList[_nn].vagina is "penisentrance" or $NPCList[_nn].vagina is "otheranusfrot" or $NPCList[_nn].vagina is "otheranusentrance">> <<if $NPCList[_nn].mouth is "kissimminent" or $NPCList[_nn].mouth is "kiss">> <<He>> moans into your mouth as <<he>> cums, but you can feel <<him>> frowning. "I wanted to fuck you," <<he>> murmurs in disappointment. <<else>> <<He>> groans as <<he>> cums against the tip of your <<penisSimple>>. "I wanted to fuck you," <<he>> gasps, looking down at it in disappointment. <</if>> <<elseif $NPCList[_nn].vagina is "frot">> <<if $NPCList[_nn].mouth is "kissimminent" or $NPCList[_nn].mouth is "kiss">> <<He>> grinds <<his>> clit against your <<penis>> and moans into your mouth, shuddering against you. <<else>> <<He>> grinds <<his>> clit hard against your <<penis>> as <<he>> cums, ejaculating on your cock. "I still wish you penetrated me," <<he>> says, "but that was good." <</if>> <<ejacstat>><<set $hygiene += 500>><<bodyliquid "penis" "nectar">> <<elseif $NPCList[_nn].mouth is "penis">> <<switch random(1, 5)>> <<case 1 2>> <<He>> cums as you fuck <<his>> mouth, holding on to your thighs. <<He>> pulls away, smiling deliriously. <<case 3 4>> <<He>> holds on to your thighs for stability as <<he>> cums, not breaking the seal <<his>> lips have on your <<penis>> until it's over. <<case 5>> <<He>> screams in pleasure, impaling <<his>> throat on your <<penis>>. Once <<his>> orgasm passes, <<he>> licks your dick all over. <</switch>> Your <<penis>> is left sticky with nectar. <<bodyliquid "penis" "nectar">> <<elseif $NPCList[_nn].mouth is "kissimminent" or $NPCList[_nn].mouth is "kiss">> <<switch random(1, 5)>> <<case 1 2>> <<He>> wraps <<his>> arms around your neck and mashes your lips together, moaning into your mouth. <<case 3 4>> <<He>> screams into your mouth as <<he>> cums, before pulling away breathlessly. "Best kiss I've ever had," <<he>> whispers. <<case 5>> <<He>> grabs your face and kisses you as <<he>> cums. Once the orgasm passes, <<he>> begins plastering your face with kisses, leaving syrupy sweet nectar all over your face. <<set $hygiene += 500>><<bodyliquid "face" "nectar">> <</switch>> <<elseif $NPCList[_nn].chest is "mouth" or $NPCList[_nn].chest is "mouthentrance" and $NPCList[_nn].pronoun is "f">> <<switch random(1, 5)>> <<case 1 2>> <<He>> sighs as <<he>> cums, smiling down at you. "Drink as much as you like. Drink until you can't think anymore." <<case 3 4>> <<He>> moans in pleasure, cradling you against <<his>> chest. "Don't let me stop you," <<he>> coos. "Go for as long as you like." <<case 5>> <<He>> grabs your head and pulls you against <<his>> $NPCList[_nn].breastsdesc, causing _nectar to squirt over your face. <<set $hygiene += 500>><<bodyliquid "face" "nectar">> <</switch>> <<elseif $NPCList[_nn].vagina is "lefthand" or $NPCList[_nn].vagina is "righthand">> <<switch random(1, 5)>> <<case 1 2>> <<He>> sighs as <<he>> cums, falling back and resting <<his>> arm over <<his>> eyes. <<case 3 4>> <<He>> moans as <<his>> $NPCList[_nn].breastsdesc shake as <<he>> cums. <<case 5>> <<He>> screams as <<he>> cums, nectar running down <<his>> thighs. <<He>> scoops some with a finger, dons a playful smile, then flicks it across your face. "Now you're messy, just like me!" <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "nectar">> <</switch>> <<else>> <<He>> convulses in orgasmic bliss. <</if>> <<else>> <!-- Male PLANT --> <<if $NPCList[_nn].penis is "idle">> <<He>> groans as nectar splurts from <<his>> $NPCList[_nn].penisdesc onto the ground. <<elseif $NPCList[_nn].penis is "thighs">> <<if $NPCList[_nn].mouth is "kissimminent" or $NPCList[_nn].mouth is "kiss">> <<He>> moans into your mouth, shuddering as <<his>> penis pumps nectar over your thighs. <<else>> <<switch random(1, 5)>> <<case 1 2>> <<He>> trembles as <<he>> cums. <<He>> pulls <<his>> $NPCList[_nn].penisdesc out and ejaculates onto the backs of your thighs. <<case 3 4>> <<He>> grasps your thighs and fucks them with a violent intensity as <<he>> cums, spraying nectar over your legs. <<case 5>> <<He>> moans as <<he>> cums, ejaculating a massive load that splatters nectar over your thighs and tummy. <<tummyejacstat>><<bodyliquid "tummy" "nectar">> <</switch>> <<thighejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "nectar">> <</if>> <<elseif $NPCList[_nn].penis is "vaginaentrance" and playerChastity("vagina")>> <<if $NPCList[_nn].mouth is "kissimminent" or $NPCList[_nn].mouth is "kiss">> <<He>> moans into your mouth as <<he>> cums, thrusting against your $worn.genitals.name. <<else>> <<He>> screams as <<he>> cums against your $worn.genitals.name. Nectar runs down your thighs. "I hate metal," <<he>> gasps, looking down at it in disappointment. <</if>> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "nectar">><<bodyliquid "thigh" "nectar">> <<elseif $NPCList[_nn].penis is "vaginaentrance">> <<if $NPCList[_nn].mouth is "kissimminent" or $NPCList[_nn].mouth is "kiss">> <<He>> leans into you and mashes <<his>> lips against yours, ejaculating sticky nectar onto the front of your vagina. <<else>> <<switch random(1, 5)>> <<case 1 2>> <<He>> holds you firm by the hip with one hand and holds <<his>> $NPCList[_nn].penisdesc with the other, ejaculating onto your <<pussy>>. Nectar covers you and pools around your legs. <<case 3 4>> <<He>> strokes <<his>> $NPCList[_nn].penisdesc and ejaculates onto your <<pussy>> with a squeal, sending sticky streams of nectar running down your cunt. <<case 5>> <<He>> moans and strokes <<his>> $NPCList[_nn].penisdesc as <<he>> cums, sending sticky ropes of nectar onto your <<pussy>> and <<bottom>>. <<bottomejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "nectar">> <</switch>> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "nectar">> <</if>> <<elseif $NPCList[_nn].penis is "vaginaimminent" and playerChastity("vagina")>> <<if $NPCList[_nn].mouth is "kissimminent" or $NPCList[_nn].mouth is "kiss">> <<He>> moans into your mouth as <<he>> cums, thrusting against your $worn.genitals.name. <<else>> <<He>> screams as <<he>> cums against your $worn.genitals.name. Nectar runs down your thighs. "I hate metal," <<he>> gasps, looking down at it in disappointment. <</if>> <<elseif $NPCList[_nn].penis is "vaginaimminent">> <<if $NPCList[_nn].mouth is "kissimminent" or $NPCList[_nn].mouth is "kiss">> <<He>> speeds up and attempts to penetrate you, but collapses into an orgasm before <<he>> can. <<He>> moans in disappointment into your mouth. <<else>> <<switch random(1, 5)>> <<case 1 2>> <<He>> cums before <<he>> can penetrate your <<pussy>>, ejaculating over your labia. Nectar drips into a pool beneath you. "Damn it! I should've been faster." <<case 3 4>> <<He>> ejaculates onto your <<pussy>> before <<he>> can penetrate, sending sticky streams of nectar running down your labia. "Oh, come on!" <<he>> whines. "Can I have a do-over?" <<case 5>> <<He>> moans and strokes <<his>> $NPCList[_nn].penisdesc as <<he>> cums, sending sticky ropes of nectar onto your <<pussy>> and <<bottom>>. "I wish I could have cum inside you. I just made a mess instead." <<bottomejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "nectar">> <</switch>> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "nectar">> <</if>> <<elseif $NPCList[_nn].penis is "vagina">> <<if $NPCList[_nn].mouth is "kissimminent" or $NPCList[_nn].mouth is "kiss">> <<switch $NPCList[_nn].penissize>> <<case 4>> <<He>> convulses and grinds into your crotch as <<he>> cums, <<his>> $NPCList[_nn].penisdesc sending sticky waves of nectar <<if canImpregnateParasite("vagina")>><span class="red">alongside something else </span><</if>>deep into your <<pussy>>. "You're way better than a vine," <<he>> murmurs into your mouth. <<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vagina" "nectar">> /* ToDo: Pregnancy, figure out how plantpeople interact with pregnancy <<recordVaginalSperm "pc" $NPCList[_nn] "plant">> */ <<vaginalentranceejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "nectar">> <<thighejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "nectar">> <<impregnateParasite "vine" 400 "vagina">><<fertiliseParasites "vagina">> <<case 1>> <<He>> moans as a dribble of nectar leaks from <<his>> $NPCList[_nn].penisdesc into your <<pussy>>. You snicker into <<his>> mouth. "Shut up," <<he>> mumbles into yours. "Don't laugh." <<default>> <<if random(1)>> <<He>> squeals into your mouth as <<he>> cums, <<his>> $NPCList[_nn].penisdesc pumping nectar into your <<pussy>>. <<else>> <<He>> shudders as <<he>> cums, streams of nectar flooding into your <<pussy>>. <<He>> pulls away from you and licks <<his>> lips. "Can I keep you?" <</if>> <<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vagina" "nectar">> /* ToDo: Pregnancy, figure out how plantpeople interact with pregnancy <<recordVaginalSperm "pc" $NPCList[_nn] "plant">> */ <</switch>> <<else>> <<switch $NPCList[_nn].penissize>> <<case 4>> <<He>> convulses and grinds into your crotch as <<he>> cums, <<his>> $NPCList[_nn].penisdesc sending sticky waves of nectar <<if canImpregnateParasite("vagina")>><span class="red">alongside something else </span><</if>>deep into your <<pussy>>. "You're way better than a vine," <<he>> murmurs in your ear. <<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vagina" "nectar">> /* ToDo: Pregnancy, figure out how plantpeople interact with pregnancy <<recordVaginalSperm "pc" $NPCList[_nn] "plant">> */ <<vaginalentranceejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "nectar">> <<thighejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "nectar">> <<impregnateParasite "vine" 400 "vagina">><<fertiliseParasites "vagina">> <<case 1>> <<He>> moans as a dribble of nectar leaks from <<his>> $NPCList[_nn].penisdesc into your <<pussy>>. You restrain a snicker. "Shut up," <<he>> mutters. "I-I have vines, okay? Don't laugh." <<default>> <<switch random(1, 5)>> <<case 1 2>> <<He>> moans and thrusts deep into your <<pussy>> as <<he>> cums, holding <<his>> $NPCList[_nn].penisdesc against your womb. You feel warm as nectar fills you. <<case 3 4>> <<He>> grasps your shoulders, pulling you deeper onto <<his>> $NPCList[_nn].penisdesc as <<he>> cums. Nectar fills your <<pussy>>, leaving you breathless. <<case 5>> <<He>> squeals and thrusts into your <<pussy>> one final time, pumping nectar into your womb. "Can I keep you? We can do this every day." <</switch>> <<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vagina" "nectar">> /* ToDo: Pregnancy, figure out how plantpeople interact with pregnancy <<recordVaginalSperm "pc" $NPCList[_nn] "plant">> */ <</switch>> <</if>> <<elseif $NPCList[_nn].penis is "cheeks">> <<if $NPCList[_nn].mouth is "kissimminent" or $NPCList[_nn].mouth is "kiss">> <<He>> moans into your mouth as <<he>> cums, spraying nectar over your <<bottom>>. <<else>> <<switch random(1, 5)>> <<case 1 2>> <<He>> trembles as <<he>> cums, withdrawing <<his>> $NPCList[_nn].penisdesc from your cheeks and ejaculating onto your <<bottom>>. <<case 3 4>> <<He>> grasps your thighs as <<he>> pushes <<his>> $NPCList[_nn].penisdesc against your <<bottom>> and ejaculates between your cheeks. <<case 5>> <<He>> squeezes your cheeks together and moans as <<he>> cums, sending out a massive load that covers your <<bottom>> and pools beneath you. <<set $hygiene += 500>><<bodyliquid "bottom" "nectar">> <</switch>> <</if>> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "nectar">> <<elseif $NPCList[_nn].penis is "anusentrance" and playerChastity("anus")>> <<if $NPCList[_nn].mouth is "kissimminent" or $NPCList[_nn].mouth is "kiss">> <<He>> squeals into your mouth as <<he>> cums, the tip of <<his>> penis bumping against your anal shield. <<else>> <<He>> moans and ejaculates onto your <<bottom>>. "I hope you can get this unstuck sometime," <<he>> mutters, poking your anal shield. "Poor <<girl>>." <</if>> <<elseif $NPCList[_nn].penis is "anusentrance">> <<if $NPCList[_nn].mouth is "kissimminent" or $NPCList[_nn].mouth is "kiss">> <<He>> leans into you and mashes <<his>> lips against yours, ejaculating sticky nectar onto your <<bottom>>. <<else>> <<switch random(1, 5)>> <<case 1 2>> <<He>> holds your ass cheek with one hand and strokes <<his>> $NPCList[_nn].penisdesc with the other as <<he>> ejaculates onto your <<bottom>>. Nectar drips down, pooling beneath you. <<case 3 4>> <<He>> strokes <<his>> $NPCList[_nn].penisdesc and ejaculates onto your <<bottom>>, sending warm nectar dripping down your cheeks. <<He>> playfully pats your <<bottom>>. <<case 5>> <<He>> moans and strokes <<his>> $NPCList[_nn].penisdesc as <<he>> cums, sending sticky ropes of nectar onto your <<bottom>>. It pools beneath you. <<set $hygiene += 500>><<bodyliquid "bottom" "nectar">> <</switch>> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "nectar">> <</if>> <<elseif $NPCList[_nn].penis is "anusimminent" and playerChastity("anus")>> <<if $NPCList[_nn].mouth is "kissimminent" or $NPCList[_nn].mouth is "kiss">> <<He>> squeals into your mouth as <<he>> cums, the tip of <<his>> penis bumping against your anal shield. <<else>> <<He>> moans and ejaculates onto your <<bottom>>. "I hope you can get this unstuck sometime," <<he>> mutters, poking your anal shield. "Poor <<girl>>." <</if>> <<elseif $NPCList[_nn].penis is "anusimminent">> <<if $NPCList[_nn].mouth is "kissimminent" or $NPCList[_nn].mouth is "kiss">> <<He>> speeds up and attempts to penetrate you, but collapses into an orgasm before <<he>> can. <<He>> moans in disappointment into your mouth. <<else>> <<switch random(1, 5)>> <<case 1 2>> <<He>> cums before <<he>> can penetrate your anus, ejaculating over your labia. Nectar drips into a pool beneath you. "Damn it! I should've been faster." <<case 3 4>> <<He>> ejaculates onto your <<bottom>> before <<he>> can penetrate, sending sticky streams of nectar running down your cheeks. "Oh, come on!" <<he>> whines. "Can I have a do-over?" <<case 5>> <<He>> moans and strokes <<his>> $NPCList[_nn].penisdesc as <<he>> cums, sending sticky ropes of nectar onto your <<pussy>> and <<bottom>>. "I wish I could have cum inside you. I just made a mess instead." <<bottomejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "nectar">> <</switch>> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "nectar">> <</if>> <<elseif $NPCList[_nn].penis is "anus">> <<if $NPCList[_nn].mouth is "kissimminent" or $NPCList[_nn].mouth is "kiss">> <<switch $NPCList[_nn].penissize>> <<case 4>> <<He>> convulses and grinds into your crotch as <<he>> cums, <<his>> $NPCList[_nn].penisdesc sending sticky waves of nectar <<if canImpregnateParasite("anus")>><span class="red">alongside something else </span><</if>>deep into your anus. "Something to remember me by," <<he>> murmurs, biting your lip. <<analejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "anus" "nectar">> <<impregnateParasite "vine" 400>><<fertiliseParasites>> <<case 1>> <<He>> moans as a dribble of nectar leaks from <<his>> $NPCList[_nn].penisdesc into your anus. "Shut up," <<he>> mumbles into your mouth. "Don't laugh." <<default>> <<if random(1)>> <<He>> squeals into your mouth as <<he>> cums, <<his>> $NPCList[_nn].penisdesc pumping nectar into your anus. <<else>> <<He>> shudders as <<he>> cums, streams of nectar flooding into your <<bottom>>. <<He>> pulls away from you and licks <<his>> lips. "Can I keep you?" <</if>> <<analejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "anus" "nectar">> <</switch>> <<else>> <<switch $NPCList[_nn].penissize>> <<case 4>> <<He>> convulses and, with a final shove of <<his>> $NPCList[_nn].penisdesc, cums in your ass. You gasp as sticky waves of nectar <<if canImpregnateParasite("anus")>><span class="red">alongside something else </span><</if>>pump into you. "Something to remember me by," <<he>> whispers huskily. <<analejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "anus" "nectar">> <<impregnateParasite "vine" 400>><<fertiliseParasites>> <<case 1>> <<He>> moans as a dribble of nectar leaks from <<his>> $NPCList[_nn].penisdesc into your anus. "Shut up," <<he>> mutters. "I-I have vines, okay? Don't laugh." <<default>> <<switch random(1, 5)>> <<case 1 2>> <<He>> moans and thrusts deep into your <<bottom>> as <<he>> cums. You gasp as you take <<his>> entire length and nectar fills your insides. <<case 3 4>> <<He>> grasps your shoulders and pulls you back onto <<his>> $NPCList[_nn].penisdesc with a squeal. You feel nectar fill your <<bottom>>. <<case 5>> <<He>> squeals and thrusts into your <<bottom>> one final time, pumping nectar into your anus. "Can I keep you? We can do this every day." <</switch>> <<analejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "anus" "nectar">> <</switch>> <</if>> <<elseif $NPCList[_nn].penis is "chest">> <<switch random(1, 5)>> <<case 1 2>> <<He>> grasps the back of your neck as <<he>> bears down on your <<breasts>>, moaning as <<he>> cums. <<if $position is "missionary">> _Nectar shoots between your <<breasts>> and covers your face, with some landing in your mouth. <span class="purple">It tastes fizzy,</span> and makes your head spin. "Pretty good, huh?" <<faceejacstat>><<nectarfed 8>><<bodyliquid "face" "nectar">> <<else>> _Nectar shoots between your <<breasts>> and covers your stomach. "Look at the mess I made," <<he>> giggles. <<tummyejacstat>><<bodyliquid "tummy" "nectar">> <</if>> <<case 3 4>> <<He>> rubs the tip of <<his>> $NPCList[_nn].penisdesc between your <<breasts>> as <<he>> cums. Sticky nectar runs down your chest. <<case 5>> <<He>> pushes your <<breasts>> together tight against <<his>> $NPCList[_nn].penisdesc as <<he>> cums, ejaculating onto them and leaving your chest slick. <</switch>> <<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "nectar">> <<elseif $NPCList[_nn].penis is "mouthentrance">> <<switch $NPCList[_nn].penissize>> <<case 4>> <<He>> holds <<his>> $NPCList[_nn].penisdesc tight, working it while aiming straight at your face. <span class="pink">Thick ropes of _nectar cover your face, with some landing in your mouth.</span> <span class="purple">It tastes fizzy,</span> and makes your head spin. "Pretty good, huh?" <<faceejacstat>><<oralejacstat>><<ejacstat>><<set $hygiene += 500>><<nectarfed 8>><<bodyliquid "face" "nectar">><<bodyliquid "mouth" "nectar">> <<case 1>> <<He>> squeaks as a pathetic dribble of nectar leaks from <<his>> $NPCList[_nn].penisdesc and down your chin. "Shut up," <<he>> mutters. "I-I have vines, okay? Don't laugh." <<default>> <<switch random(1, 5)>> <<case 1 2>> <<He>> cups your chin with one hand and strokes <<his>> $NPCList[_nn].penisdesc with the other, ejaculating onto your face. <<He>> spends a few moments stroking your cheek, smiling. <<case 3 4>> <<He>> arches <<his>> back and moans, ejaculating _nectar onto your face. "Now you taste as sweet as you look!" <<case 5>> <<He>> holds your cheek with <<his>> hand and holds your mouth open with <<hers>>, splurting _nectar into your mouth. <span class="purple">It tastes fizzy,</span> and makes your head spin. "Pretty good, huh?" <<oralejacstat>><<nectarfed 8>><<bodyliquid "mouth" "nectar">> <</switch>> <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "nectar">> <</switch>> <<elseif $NPCList[_nn].penis is "mouthimminent">> <<switch random(1, 5)>> <<case 1 2>> <<He>> cups your hair, ejaculating onto your lips as you barely brush against the tip of <<his>> $NPCList[_nn].penisdesc. <<He>> seems disappointed. "Don't you want to taste me?" <<case 3 4>> <<He>> ejaculates onto your face before <<he>> can penetrate, sending sticky streams of nectar running down your cheeks. "Oh, come on!" <<he>> whines. "Can I have a do-over?" <<case 5>> <<He>> grasps your hair and tries to force <<his>> $NPCList[_nn].penisdesc into your mouth, but <<his>> spasms sabotage <<his>> efforts. Thick ropes of _nectar cover your face and land in your mouth. <span class="purple">It tastes fizzy,</span> and makes your head spin. "Man, I wanted to give you more." <<oralejacstat>><<nectarfed 8>><<bodyliquid "mouth" "nectar">> <</switch>> <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "nectar">> <<elseif $NPCList[_nn].penis is "mouth">> <<switch $NPCList[_nn].penissize>> <<case 4>> <<He>> holds your head in place and thrusts <<his>> $NPCList[_nn].penisdesc down your throat, filling your mouth with load after load of _nectar. <<case 1>> <<He>> ejaculates, and a thin dribble of _nectar leaks into your mouth. <<default>> <<switch random(1, 5)>> <<case 1 2>> <<He>> cups your chin with one hand and your hair with the other, thrusting deep into your mouth as <<he>> cums. _Nectar streams down your throat and fills your mouth. <<case 3 4>> <<He>> grasps the base of <<his>> $NPCList[_nn].penisdesc and moans as <<he>> ejaculates into your mouth. You feel _nectar drip down your throat. <<case 5>> <<He>> sighs and strokes you on the head as <<he>> cums, leaking _nectar into your mouth. <</switch>> <</switch>> <span class="purple">It tastes fizzy,</span> and makes your head spin. <<He>> grins. "Delicious, isn't it? It's all for you." <<elseif $NPCList[_nn].penis is "feet">> <<if $NPCList[_nn].mouth is "kissimminent" or $NPCList[_nn].mouth is "kiss">> <<He>> moans into your mouth as <<he>> cums, spasming around your feet. <<else>> <<switch random(1, 5)>> <<case 1 2>> <<He>> moans and grasps your ankles as <<he>> cums. "I think I underestimated humans. You know how to work with what you've got!" <<case 3 4>> <<He>> arches <<his>> back as <<he>> cums against your feet. "Most plants don't like being underfoot. Guess I'm the exception!" <<case 5>> <<He>> screams as <<he>> cums, almost making you jump. <<His>> nectar runs over your feet. <</switch>> <</if>> <<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "feet" "nectar">> <<elseif $NPCList[_nn].penis is "leftarm" and $NPCList[_nn].penis is "rightarm">> <<if $NPCList[_nn].mouth is "kissimminent" or $NPCList[_nn].mouth is "kiss">> <<He>> gasps into your mouth as you finish <<him>> off. Sticky _nectar coats your hands. <<else>> <<switch random(1, 5)>> <<case 1 2>> <<He>> sighs in contentment as <<he>> cums on your hands. "Never gotten serviced like that before..." <<case 3 4>> <<He>> cums on your hands, slickening them with nectar. "I feel so special. Thank you!" <<case 5>> <<He>> spasms and moans, shooting thick streams of nectar and coating your hands. With a mischievous look, <<he>> pushes your hand into your mouth, filling it with _nectar. <span class="purple">It tastes fizzy,</span> and makes your head spin. "Got you." <<nectarfed 8>> <</switch>> <</if>> <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "nectar">><<bodyliquid "rightarm" "nectar">> <<elseif $NPCList[_nn].penis is "leftarm" or $NPCList[_nn].penis is "rightarm">> <<if $NPCList[_nn].mouth is "kissimminent" or $NPCList[_nn].mouth is "kiss">> <<if random(1)>> <<He>> moans into your mouth as you pump <<his>> length. Your hand gets covered in _nectar. <<else>> <<He>> wraps <<his>> arms around your neck as <<he>> cums, squealing into your mouth. _Nectar sprays out and coats your hand. <</if>> <<else>> <<switch random(1, 5)>> <<case 1 2>> <<He>> sighs in contentment as <<he>> cums on your hand. "Never gotten serviced like that before..." <<case 3 4>> <<He>> cums on your hand, slickening it with nectar. "I feel so special. Thank you!" <<case 5>> <<He>> spasms and moans, shooting thick streams of nectar and coating your hands. With a mischievous look, <<he>> pushes your hand into your mouth, filling it with _nectar. <span class="purple">It tastes fizzy,</span> and makes your head spin. "Got you." <<nectarfed 8>> <</switch>> <</if>> <<handejacstat>><<ejacstat>><<set $hygiene += 500>> <<if $NPCList[_nn].penis is "leftarm">><<bodyliquid "leftarm" "nectar">><<else>><<bodyliquid "rightarm" "nectar">><</if>> <<elseif $NPCList[_nn].penis is "otheranus">> <<if $NPCList[_nn].mouth is "kissimminent" or $NPCList[_nn].mouth is "kiss">> <<if random(1)>> <<He>> gasps into your mouth, thrusting <<himself>> on your <<penis>>. _Nectar sprays onto your stomach. <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "nectar">> <<else>> <<He>> wraps <<his>> arms around your neck and <<his>> legs around your waist, moaning into your mouth as <<he>> cums. Nectar sprays onto <<his>> own stomach. <</if>> <<else>> <<switch random(1, 5)>> <<case 1 2>> <<He>> shakes as <<he>> cums, <<his>> ass pushing against you as <<he>> releases a final moan. _Nectar sprays from <<his>> penis onto your thighs. <<thighejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "nectar">> <<case 3 4>> <<He>> shakes against your <<penis>> as <<he>> cums, moaning and grinding into you as deep as <<he>> can. <<He>> ejaculates nectar onto the ground. <<case 5>> <<He>> bucks into your crotch as <<he>> cums, panting. "Not usually the one to take it, but sweet fuck that felt good." <</switch>> <</if>> <<elseif ($NPCList[_nn].penis is "otheranusfrot" or $NPCList[_nn].penis is "otheranusentrance" or $NPCList[_nn].penis is "otheranusimminent") and playerChastity("penis")>> <<if $NPCList[_nn].mouth is "kissimminent" or $NPCList[_nn].mouth is "kiss">> <<He>> moans into your mouth as <<he>> cums, grinding <<his>> ass against your $worn.genitals.name. <<else>> <<He>> screams as <<he>> cums against your $worn.genitals.name. "I hate metal," <<he>> gasps, looking down at it in disappointment. <</if>> <<elseif $NPCList[_nn].penis is "otheranusfrot" or $NPCList[_nn].penis is "otheranusentrance" or $NPCList[_nn].penis is "otheranusimminent">> <<if $NPCList[_nn].mouth is "kissimminent" or $NPCList[_nn].mouth is "kiss">> <<He>> speeds up and attempts to impale <<his>> ass on your <<penis>>, but collapses into an orgasm before <<he>> can. <<He>> moans in disappointment into your mouth. <<else>> <<switch random(1, 5)>> <<case 1 2>> <<He>> cums before <<he>> can force you inside <<him>>, ejaculating nectar onto the ground. "Damn it! I should've been faster." <<case 3 4>> <<He>> convulses in orgasmic bliss before you can penetrate, sending sticky streams of nectar out of <<his>> penis. "Oh, come on!" <<he>> whines. "Can I have a do-over?" <<case 5>> <<He>> moans and strokes <<his>> $NPCList[_nn].penisdesc as <<he>> cums, sending sticky ropes of nectar onto the ground. "Would it have killed you to fuck me properly?" <<bottomejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "nectar">> <</switch>> <</if>> <<elseif ($NPCList[_nn].penis is "penis" or $NPCList[_nn].penis is "penisentrance" or $NPCList[_nn].penis is "penisimminent") and playerChastity("penis")>> <<if $NPCList[_nn].mouth is "kissimminent" or $NPCList[_nn].mouth is "kiss">> <<He>> moans into your mouth as <<he>> cums, grinding <<his>> <<npcPenis>> against your $worn.genitals.name. <<else>> <<He>> screams as <<he>> cums against your $worn.genitals.name. "I hate metal," <<he>> gasps, looking down at it in disappointment. <</if>> <<elseif $NPCList[_nn].penis is "penis" or $NPCList[_nn].penis is "penisentrance" or $NPCList[_nn].penis is "penisimminent">> <<if $NPCList[_nn].mouth is "kissimminent" or $NPCList[_nn].mouth is "kiss">> <<He>> moans in ecstasy, kneading <<his>> penis against yours as <<he>> cums. <<else>> <<switch random(1, 5)>> <<case 1 2>> <<He>> cums as you knead your penises together, moaning with pleasure. <<case 3 4>> <<He>> wraps <<his>> legs around yours as <<his>> body shakes. "Man," <<he>> giggles. "Who needs vines, anyway?" <<case 5>> <<He>> moans and <<his>> legs shake as <<he>> cums against your <<penis>>. <</switch>> Nectar coats your <<penis>>. <<ejacstat>><<set $hygiene += 500>><<bodyliquid "penis" "nectar">> <</if>> <<elseif $NPCList[_nn].mouth is "penis">> <<switch random(1, 5)>> <<case 1 2>> <<He>> cums as you fuck <<his>> mouth, holding on to your thighs. <<He>> pulls away, smiling deliriously. <<case 3 4>> <<He>> holds on to your thighs for stability as <<he>> cums, not breaking the seal <<his>> lips have on your <<penis>> until it's over. <<case 5>> <<He>> screams in pleasure, impaling <<his>> throat on your <<penis>>. Once <<his>> orgasm passes, <<he>> licks your dick all over. <</switch>> Your <<penis>> is left sticky with nectar. <<bodyliquid "penis" "nectar">> <<elseif $NPCList[_nn].mouth is "kissimminent" or $NPCList[_nn].mouth is "kiss">> <<switch random(1, 5)>> <<case 1 2>> <<He>> wraps <<his>> arms around your neck and mashes your lips together, moaning into your mouth. <<case 3 4>> <<He>> screams into your mouth as <<he>> cums, before pulling away breathlessly. "Best kiss I've ever had," <<he>> whispers. <<case 5>> <<He>> grabs your face and kisses you as <<he>> cums. Once the orgasm passes, <<he>> begins plastering your face with kisses, leaving syrupy sweet nectar all over your face. <<set $hygiene += 500>><<bodyliquid "face" "nectar">> <</switch>> <<elseif $NPCList[_nn].chest is "mouth" or $NPCList[_nn].chest is "mouthentrance" and $NPCList[_nn].pronoun is "f">> <<switch random(1, 5)>> <<case 1 2>> <<He>> sighs as <<he>> cums, smiling down at you. "Drink as much as you like. Drink until you can't think anymore." <<case 3 4>> <<He>> moans in pleasure, cradling you against <<his>> chest. "Don't let me stop you," <<he>> coos. "Go for as long as you like." <<case 5>> <<He>> grabs your head and pulls you against <<his>> $NPCList[_nn].breastsdesc, causing _nectar to squirt over your face. <<set $hygiene += 500>><<bodyliquid "face" "nectar">> <</switch>> <<else>> <<He>> convulses in orgasmic bliss. <</if>> <</if>> <!-- Additional notes for kissing or suckling finishes --> <<if ($NPCList[_nn].chest is "mouth" or $NPCList[_nn].chest is "mouthentrance") and $NPCList[_nn].pronoun is "f">> _Nectar leaks from <<his>> nipple into your mouth. <span class="purple">It tastes fizzy,</span> and makes your head spin. <<nectarfed 20>> <<elseif $NPCList[_nn].mouth is "kissimminent" or $NPCList[_nn].mouth is "kiss">> <span class="purple">_fizzyNectar floods your mouth</span> and makes your head spin. <<nectarfed 30>> <</if>> <br><br> <!-- Retracting the vines --> <<if $settings.tentaclesEnabled>> <<tentacles>> <</if>> <!-- Finishing moves for if the player didn't cum. Plantpeople don't really care about making their partners cum, they only care about the semen. --> <<if _args[0] isnot "short">> <<if $orgasmcurrent is 0 and !playerChastity("penis") and ($consensual is 1 or $pain gte 100)>> "Hey," <<he>> says. "You didn't cum. That's not fair, is it?" <<if $penisuse is "tentacle">> <<if $player.condom>> <<removePlayerCondom>> <<He>> removes your condom as the <<else>> The <</if>> $tentaclePenis <<slithers>> back to your <<penis>> and opens at the tip. "You'll cum," <<he>> whispers to you. "You'll give me your seed. I'll make sure of it." <<if $consensual is 0>> With how much pain you're in, you can't do anything to stop <<him>>. <</if>> <br><br> The $tentaclePenis caresses and kneads your length, swallowing you to the base. Slick nectar leaks around your penis, <span class="lewd">magnifying your sensitivity</span>. <<if $NPCList[_nn].mouth is "kissimminent" or $NPCList[_nn].mouth is "kiss">> The <<person>> leans back in and presses <<his>> lips to yours, swirling <<his>> tongue in your mouth and smearing more nectar around your lips. <span class="purple">Your mind swims.</span> <<nectarfed 15>> <<else>> The <<person>> leans in and plants kisses all along your face and neck, smearing you with more nectar. <<bodyliquid "face" "nectar">> <</if>> <br><br> You can't take any more. <<orgasm>> <<if $semen_amount lte (($semen_volume / 24) * 6) or $orgasmcount gte 24>> "Huh?" <<He>> blinks in confusion, looking at the $tentaclePenis. "Was... was that it? Come on!" <<He>> frowns in annoyance as the $tentaclePenis retracts again. <<else>> <<He>> moans alongside you, sighing happily as the $tentaclePenis milks you of your cum before finally retracting again. "Delicious." <<set _orgasm to 1>> <</if>> <<unset $tentaclePenis>><<set $penisuse to 0>><<set $penisstate to 0>> <<elseif $penisuse is "othervagina" or $penisuse is "otheranus">> <<if $player.condom>> <<removePlayerCondom>> <<He>> removes your condom and <<else>> <<He>> <</if>> lowers <<himself>> back onto your <<penis>>. "You'll cum," <<he>> whispers to you. "You'll give me your seed. I'll make sure of it." <<if $consensual is 0>> With how much pain you're in, you can't do anything to stop <<him>>. <</if>> <br><br> The <<person>> bounces on your <<penis>>, occasionally rocking back and forth. <<He>> places <<his>> hands on your shoulder to give <<himself>> more leverage. <<if $NPCList[_nn].mouth is "kissimminent" or $NPCList[_nn].mouth is "kiss">> The <<person>> leans back in and presses <<his>> lips to yours, swirling <<his>> tongue in your mouth and smearing more nectar around your lips. <span class="purple">Your mind swims.</span> <<nectarfed 15>> <<else>> The <<person>> leans in and plants kisses all along your face and neck, smearing you with more nectar. <<bodyliquid "face" "nectar">> <</if>> <br><br> You can't take any more. <<orgasm>> <<if $semen_amount lte (($semen_volume / 24) * 6) or $orgasmcount gte 24>> "Huh?" <<He>> blinks in confusion, looking down at your <<penis>>. "Was... was that it? Come on!" <<He>> frowns in annoyance. <<elseif $parasite.penis.name>> "Huh?" <<He>> blinks in confusing, before groaning. "Ugh, that stupid $parasite.penis.name! No fair!" <<He>> frowns in annoyance. <<else>> <<He>> moans alongside you, sighing happily as you fill <<his>> <<if $penisuse is "othervagina">>cunt<<else>>ass<</if>> with semen. "You're such a good pollinator." <<set _orgasm to 1>> <</if>> <<elseif $penisuse is "othermouth">> <<if $player.condom>> <<removePlayerCondom>> <<He>> removes your condom and <<else>> <<He>> <</if>> lowers <<his>> face back down to your <<penis>> and licks the tip. "You'll cum," <<he>> whispers to you. "You'll give me your seed. I'll make sure of it." <<if $consensual is 0>> With how much pain you're in, you can't do anything to stop <<him>>. <</if>> <br><br> <<He>> thrusts <<his>> mouth back around your penis, swirling <<his>> tongue around the tip. Slick nectar coats your penis, <span class="lewd">magnifying your sensitivity</span>. <<if $player.penisExist and $player.vaginaExist and random(1)>> <<He>> uses <<his>> free hand to thrust two fingers into your <<pussy>>, pistoning in and out. <<elseif $settings.analEnabled and random(1)>> <<He>> uses <<his>> free hand to thrust a finger into your <<bottom>>, pistoning in and out. <<else>> <<He>> uses <<his>> free hands to caress and tweak your <<breasts>>, reaching up. <</if>> <br><br> You can't take any more. <<orgasm>> <<if $semen_amount lte (($semen_volume / 24) * 6) or $orgasmcount gte 24>> "Hrm?" <<He>> blinks in confusion, looking at the penis in <<his>> mouth. <<He>> experimentally licks it a few more times, before pulling away and frowning. "Was... was that it? Come on!" <<elseif $parasite.penis.name>> "Hrm?" <<He>> blinks in confusing, before groaning and pulling away. "Ugh, that stupid $parasite.penis.name! No fair! Thought I tasted something funny..." <<He>> frowns in annoyance. <<else>> <<He>> moans alongside you, sighing happily as you fill <<his>> mouth with semen. When you're finished, <<he>> pulls away and licks <<his>> lips. "Delicious." <<set _orgasm to 1>> <</if>> <<else>> <<He>> thinks for a moment, before shrugging. "Oh well." <</if>> <br><br> <</if>> <</if>> <</widget>><<widget "ejaculation-robin">> <<set $ejaculating to 1>> <!-- Changing rows to future-proof the code: from $NPCList[0] to $NPCList[_nn], _nn being the main ejaculation loop handler --> <!-- Female ROBIN --> <<if $NPCList[_nn].vagina isnot "none" and $NPCList[_nn].penis is "none">> <<if $consensual is 1>> <<if $NPCList[_nn].vagina is "mouthentrance" or $NPCList[_nn].vagina is "mouth" or $NPCList[_nn].vagina is "mouthimminent">> <<switch random(1, 5)>> <<case 1 2>> <<He>> groans and rubs <<his>> crotch against your face with <<his>> hips, small thighs shaking with orgasm. <<case 3 4>> <<He>> goes red in the face and neck, mouth agape as <<he>> cums silently, body twitching uncontrollably. <<case 5>> <<He>> screams, cupping the back of your head in <<his>> hands and grinding <<his>> clit against your nose. <</switch>> <<elseif $NPCList[_nn].vagina is "leftarm">> <<switch random(1, 5)>> <<case 1 2>> <<He>> sighs as you finish with <<his>> pussy, shaking <<his>> slim thighs together against your hand as <<his>> body convulses. <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "goo">> <<case 3 4>> <<He>> goes red in the face and neck, mouth agape as <<he>> cums silently, cunt spasming against your hand. <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "goo">> <<case 5>> <<He>> screams, grabbing your hand and fucking <<his>> pussy with your fingers. Your fingers are soaked in ejaculate. <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "goo">> <</switch>> <<elseif $NPCList[_nn].vagina is "rightarm">> <<switch random(1, 5)>> <<case 1 2>> <<He>> sighs as you finish with <<his>> pussy, knees knocking as <<his>> body convulses. <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "rightarm" "goo">> <<case 3 4>> <<He>> goes red in the face and neck, mouth agape as <<he>> cums silently, cunt spasming against your hand. <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "rightarm" "goo">> <<case 5>> <<He>> screams, grabbing your hand and fucking <<his>> pussy with your fingers. Your fingers are soaked in ejaculate. <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "rightarm" "goo">> <</switch>> <<elseif $NPCList[_nn].vagina is "lefthand" or $NPCList[_nn].vagina is "righthand">> <<switch random(1, 5)>> <<case 1 2>> <<He>> sighs as <<he>> cums, releasing you and pulling back <<his>> hand, licking your wetness off <<his>> fingers. <<case 3 4>> <<He>> moans loudly and shakes, dripping ejaculate on the ground; <<he>> withdraws <<his>> hand and sighs. <<case 5>> <<He>> screams as <<he>> comes, soaking <<his>> own pussy and thighs in ejaculate. "I love pleasuring myself with you." <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "goo">> <</switch>> <<elseif $NPCList[_nn].vagina is "leftDildo">> <<switch random(1, 5)>> <<case 1 2>> <<He>> ?orgasmMoans as <<his>> body convulses, <<his>> thighs trembling against your $currentSexToyLeft.name. <<case 3 4>> <<His>> blush deepens and <<his>> mouth gapes as <<he>> cums against your $currentSexToyLeft.name. <<case 5>> <<He>> ?orgasmMoans and grasps your arm as your $currentSexToyLeft.name brings <<him>> to orgasm. <<His>> juices soak your $currentSexToyLeft.name. <</switch>> <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "goo">> <<elseif $NPCList[_nn].vagina is "rightDildo">> <<switch random(1, 5)>> <<case 1 2>> <<He>> ?orgasmMoans as <<his>> body convulses, <<his>> thighs trembling against your $currentSexToyRight.name. <<case 3 4>> <<His>> blush deepens and <<his>> mouth gapes as <<he>> cums against your $currentSexToyRight.name. <<case 5>> <<He>> ?orgasmMoans and grasps your arm as your $currentSexToyRight.name brings <<him>> to orgasm. <<His>> juices soak your $currentSexToyRight.name. <</switch>> <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "rightarm" "goo">> <<elseif $NPCList[_nn].vagina is "leftDildoAnus">> <<switch random(1, 5)>> <<case 1 2>> <<He>> ?orgasmMoans as <<his>> body convulses, <<his>> thighs trembling against your $currentSexToyLeft.name. <<case 3 4>> <<His>> blush deepens and <<his>> mouth gapes as <<he>> cums against your $currentSexToyLeft.name. <<case 5>> <<He>> ?orgasmMoans and grasps your arm as your $currentSexToyLeft.name brings <<him>> to orgasm. <</switch>> <<handejacstat>><<ejacstat>><<set $hygiene += 500>> <<elseif $NPCList[_nn].vagina is "rightDildoAnus">> <<switch random(1, 5)>> <<case 1 2>> <<He>> ?orgasmMoans as <<his>> body convulses, <<his>> thighs trembling against your $currentSexToyRight.name. <<case 3 4>> <<His>> blush deepens and <<his>> mouth gapes as <<he>> cums against your $currentSexToyRight.name. <<case 5>> <<He>> ?orgasmMoans and grasps your arm as your $currentSexToyRight.name brings <<him>> to orgasm. <</switch>> <<handejacstat>><<ejacstat>><<set $hygiene += 500>> <<elseif $NPCList[_nn].vagina is "feet">> <<switch random(1, 4)>> <<case 1 2>> <<He>> moans as you knead <<his>> pussy, jamming your toes inside with <<his>> hands as <<he>> finishes cumming. <<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "feet" "goo">> <<case 3 4>> <<He>> shakes bodily as <<he>> cums, twitching underneath your feet and cumming between your toes. <<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "feet" "goo">> <</switch>> <<elseif $NPCList[_nn].vagina is "vagina" and playerChastity("vagina")>> <<He>> gasps as <<he>> cums against your $worn.genitals.name. "Your underwear is really hard," <<he>> says. <<elseif $NPCList[_nn].vagina is "vagina">> <<switch random(1, 5)>> <<case 1 2>> <<He>> cums as you scissor your pussies together, moaning with pleasure. <<case 3 4>> <<He>> moans as <<he>> grinds downs hard on your <<pussy>> to finish, thin legs shaking as <<he>> cums. <<case 5>> <<He>> screams, cupping <<his>> small hands under your shoulders as <<his>> entire body shakes. Ejaculate drenches your crotch as <<he>> squirts. <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "goo">> <</switch>> <<elseif $NPCList[_nn].vagina is "othermouth">> <<switch random(1, 5)>> <<case 1 2>> <<He>> shudders with pleasure, exhaling warmly against your crotch as <<he>> comes, leaving you wet with saliva and your own fluids. <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "goo">> <<case 3 4>> <<He>> quietly ejaculates, shaking as <<he>> grinds <<his>> nose into your crotch and giving you a long, final, wet lick. <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "goo">> <<case 5>> <<He>> screams into your crotch as <<he>> cums, pinching <<his>> hands between <<his>> thighs and buckling over, ejaculate streaming down <<his>> thighs. <</switch>> <!-- following appear to be Male PC to Female Antagonist only? --> <<elseif $NPCList[_nn].vagina is "otheranus" and playerChastity("penis")>> <<He>> gasps as <<he>> cums against your $worn.genitals.name. "Your underwear is really hard," <<he>> says. <<elseif $NPCList[_nn].vagina is "otheranus">> <<switch random(1, 5)>> <<case 1 2>> <<He>> shakes as <<he>> cums, driving <<his>> ass hard against you as <<he>> releases a final moan. <<case 3 4>> <<He>> quietly ejaculates, shaking as <<he>> grinds <<his>> ass deeply with your cock and moaning. <<case 5>> <<He>> screams and bucks into your crotch as <<he>> cums, squirting ejaculate from <<his>> pussy and drenching your legs. "I feel so good when I'm with you." <<thighejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "goo">> <</switch>> <<elseif $NPCList[_nn].vagina is "penis">> <<switch random(1, 5)>> <<case 1 2>> <<He>> grabs your shoulders with <<his>> small hands as <<he>> cums, bouncing down hard against your cock as <<he>> shudders with pleasure. "You make me feel so good." <<case 3 4>> <<He>> sighs as <<he>> cums, reddening and going into a full body convulsion. Ejaculate soaks your crotch. <<case 5>> <<He>> cries out and bucks on your lap as <<he>> cums, squirting ejaculate from <<his>> pussy and drenching your crotch and legs. <<thighejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "goo">> <</switch>> <<ejacstat>><<set $hygiene += 500>><<bodyliquid "penis" "goo">> <<elseif ($NPCList[_nn].vagina is "penisimminent" or $NPCList[_nn].vagina is "penisentrance") and playerChastity("penis")>> <<He>> gasps as <<he>> cums against your $worn.genitals.name. "Isn't that uncomfortable?" <<he>> asks. "It's really hard." <<elseif $NPCList[_nn].vagina is "penisimminent" or $NPCList[_nn].vagina is "penisentrance">> <<He>> cums on your <<penis>> as you rub against the entrance and moans with pleasure. <<elseif ($NPCList[_nn].vagina is "otheranusfrot" or $NPCList[_nn].vagina is "otheranusentrance") and playerChastity("penis")>> <<He>> gasps as <<he>> cums against your $worn.genitals.name. "Isn't that uncomfortable?" <<he>> asks. "It's really hard." <<elseif $NPCList[_nn].vagina is "otheranusfrot" or $NPCList[_nn].vagina is "otheranusentrance">> <<He>> bucks <<his>> ass against your cock as <<he>> cums, body shaking involuntarily. <<elseif $NPCList[_nn].vagina is "frot" and playerChastity("penis")>> <<He>> gasps as <<he>> cums against your $worn.genitals.name. "Isn't that uncomfortable?" <<he>> asks. "It's really hard." <<elseif $NPCList[_nn].vagina is "frot">> <<He>> grinds <<his>> clit hard against your cock as <<he>> cums, ejaculating on your cock. <<He>> smiles as <<he>> gets up. <<ejacstat>><<set $hygiene += 500>><<bodyliquid "penis" "goo">> <!-- Special case male PC with female NPC --> <<elseif $NPCList[_nn].mouth is "penis">> <<switch random(1, 4)>> <<case 1 2>> <<He>> cums as you fuck <<his>> mouth, smiling as <<he>> finishes. <<case 3 4>> <<He>> cums as you fuck <<his>> mouth, leaving your <<penis>> a slimy mess. "I love what you do to me." <</switch>> <<else>> <<He>> convulses in orgasmic bliss. <</if>> <<else>><!-- There should be non non-consensual Robin events --> <<He>> cries out as <<he>> orgasms. <<He>> stops moving save for ragged breathing. <</if>> <br><br> <</if>> <!-- Male ROBIN --> <<if _condomResult is "leaked">> <span class="red">The condom broke.</span> <<elseif _condomResult is "burst">> <span class="red">The tip of the condom bursts and rips, exposing the head of <<his>> penis.</span> <</if>> <<if $consensual is 1>> <<if _condomResult is "contained">> <<genericCondomEjaculation>> <<elseif npcHasStrapon(_nn)>> <<He>> moans and shivers in orgasmic bliss, grinding the strap-on against <<his>> genitals. <<elseif $NPCList[_nn].penis is "idle">> <<He>> groans as a wet patch forms on <<his>> trousers. You giggle at the sight. <<elseif $NPCList[_nn].penis is "thighs">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> shakes as <<he>> cums, pulling <<his>> cock out and ejaculating onto the backs of your thighs. <<thighejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <<case 4 5 6>> <<He>> grabs your legs, pushing <<his>> crotch hard into yours as <<he>> cums and ejaculating onto your tummy. <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <<case 7>> <<He>> groans as <<he>> cums, ejaculating a massive load that covers your thighs and tummy. <<thighejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <<tummyejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <</switch>> <<elseif $NPCList[_nn].penis is "vaginaentrance" and playerChastity("vagina")>> <<He>> gasps as <<he>> cums onto your $worn.genitals.name. "Isn't that uncomfortable?" <<he>> asks. "Do they make softer ones?" <<elseif $NPCList[_nn].penis is "vaginaentrance">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> holds you still by the hips with one hand and with the other on <<his>> cock, ejaculates onto your <<pussy>>. Semen coats your outer lips and pools around your legs. <<case 4 5 6>> <<He>> strokes <<his>> cock and ejaculates onto your <<pussy>> without a word, sending white streams of semen running down your cunt. <<case 7>> <<He>> moans and strokes <<his>> cock as <<he>> cums, sending thick ropes of semen onto your <<pussy>> and ass. <<bottomejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <</switch>> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 5, rngType: "canWash"}`>> <<elseif $NPCList[_nn].penis is "vaginaimminent" and playerChastity("vagina")>> <<He>> gasps as <<he>> cums onto your $worn.genitals.name. "Isn't that uncomfortable?" <<he>> asks. "Do they make softer ones?" <<elseif $NPCList[_nn].penis is "vaginaimminent">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> cums before <<he>> can penetrate your <<pussy>>, ejaculating on the outside. Semen coats your outer lips and tummy; <<he>> seems disappointed. <<case 4 5 6>> <<He>> ejaculates onto your <<pussy>> before <<he>> can penetrate you, sending white streams of semen running down your <<pussy>>; <<he>> looks disappointed. <<case 7>> <<He>> moans and strokes <<his>> cock as <<he>> cums, sending thick ropes of semen onto your <<pussy>> and ass. <<bottomejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <</switch>> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 15, rngType: "canWash"}`>> <<elseif $NPCList[_nn].penis is "vagina">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> moans and thrusts deeply into your <<pussy>> as <<he>> cums, holding <<his>> cock deep in your womb. You feel warm as semen fills your vagina. <<case 4 5 6>> <<He>> quiets and grabs your shoulders with <<his>> small hands, pulling you onto <<his>> cock as <<he>> cums. Semen fills your <<pussy>>, leaving you breathless. <<case 7>> <<He>> convulses and grinds down on your crotch as <<he>> cums, sending thick waves of cum into your <<pussy>>. Semen oozes from your vagina and down your legs. <<vaginalentranceejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<thighejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <</switch>> <<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vagina" "semen">> <<recordVaginalSperm "pc" $NPCList[_nn] "human">> <<elseif $NPCList[_nn].penis is "cheeks" and playerChastity()>> <<He>> gasps as <<he>> cums onto your $worn.genitals.name. "Isn't that uncomfortable?" <<he>> asks. "Do they make softer ones?" <<elseif $NPCList[_nn].penis is "cheeks">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> shakes as <<he>> cums, withdrawing <<his>> cock from your cheeks and ejaculating onto your ass. <<case 4 5 6>> <<He>> grabs your thighs, pushing <<his>> crotch hard against your ass and ejaculating between your cheeks. <!-- Really should be onto PCs back given position. Or hair maybe. Esp next one --> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 7>> <<He>> squeezes your cheeks together and grunts as <<he>> cums, sending out massive load that covers your ass and drips down your crotch. <<He>> seems pleased. <<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <</switch>> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<elseif $NPCList[_nn].penis is "anusentrance" and playerChastity("anus")>> <<He>> gasps as <<he>> cums onto your $worn.genitals.name. "Isn't that uncomfortable?" <<he>> asks. "Do they make softer ones?" <<elseif $NPCList[_nn].penis is "anusentrance">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> palms your asscheek with one hand and strokes <<his>> cock with the other, ejaculating onto your bottom. Semen drips down your butt and into your crack. <<case 4 5 6>> <<He>> strokes <<his>> cock and quietly ejaculates onto your ass. You feel warm semen dripping down your bottom. <<case 7>> <<He>> moans and strokes <<his>> cock as <<he>> cums, sending thick ropes of semen onto your ass and down your crotch. <<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <</switch>> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<recordSperm `{genital: "anus", target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 5, rngType: "canWash"}`>> <<elseif $NPCList[_nn].penis is "anusimminent" and playerChastity("anus")>> <<He>> gasps as <<he>> cums onto your $worn.genitals.name. "Isn't that uncomfortable?" <<he>> asks. "Do they make softer ones?" <<elseif $NPCList[_nn].penis is "anusimminent">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> cums before <<he>> can penetrate your ass, ejaculating on the outside. Semen coats your ass and drips down your crack; <<he>> seems disappointed. <<case 4 5 6>> <<He>> strokes <<his>> cock and ejaculates onto your ass before <<he>> can penetrate you, sending white streams of semen running down your crack; <<he>> seems upset. <<case 7>> <<He>> moans and strokes <<his>> cock as <<he>> cums, sending thick ropes of semen onto your ass and crotch. <<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <</switch>> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<recordSperm `{genital: "anus", target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 15, rngType: "canWash"}`>> <<elseif $NPCList[_nn].penis is "anus">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> moans and thrusts into your ass as <<he>> cums. You gasp as you feel semen filling you. <<case 4 5 6>> <<He>> wordlessly grabs your shoulders, pulling you back onto <<his>> cock as <<he>> cums. Semen fills your ass as you moan with pleasure. <<case 7>> <<He>> convulses and, with a final shove, cums in your ass. Thick waves of semen pump into you. You're surprised at the amount; cum oozes from your ass and runs down your legs. <<thighejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <</switch>> <<analejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "anus" "semen">> <<recordAnusSperm "pc" $NPCList[_nn] "human">> <<elseif $NPCList[_nn].penis is "chest">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> pushes your <<breasts>> together tight on <<his>> cock as <<he>> cums, ejaculating onto them. Your body feels slick with cum. <<case 4 5 6>> <<He>> strokes the tip of <<his>> cock between your <<breasts>> and quietly ejaculates on them. Your <<breasts>> feel cool as semen drips down them. <<case 7>> <<He>> puts <<his>> hand behind your neck and bears down on your <<breasts>>, grunting as <<he>> cums; semen shoots between your <<breasts>> and covers your <<if $position is "missionary">>face<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">><<else>>stomach<<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">><</if>>. <</switch>> <<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <<elseif $NPCList[_nn].penis is "mouthentrance">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> cups you under the chin with one hand and strokes <<his>> cock with the other, ejaculating onto your face. <<He>> giggles and <<his>> face looks excited. <<set $hygiene += 500>><<bodyliquid "face" "semen">> <<case 4 5 6>> <<He>> strokes <<his>> cock and quietly ejaculates onto your face. Warm cum drips down your forehead and nose. <<He>> smiles and cleans you off. <<case 7>> <<He>> gasps and strokes <<his>> cock while aiming straight at your mouth. Thick ropes of cum cover your face and push past your closed lips into your mouth. You're impressed by the volume and <<he>> looks oddly pleased with <<himself>>. <<set $hygiene += 500>><<bodyliquid "face" "semen">> <<cumswallow `$NPCList[_nn].type` null `npcSemenMod($NPCList[_nn].penissize)`>> <</switch>> <<faceejacstat>><<ejacstat>> <<elseif $NPCList[_nn].penis is "mouthimminent">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> cups the back of your head, ejaculating onto your lips as you barely brush against the tip of <<his>> penis; <<he>> seems disappointed with <<his>> lack of control. <<case 4 5 6>> <<He>> brushes <<his>> cock against your face, causing <<him>> to ejaculate early. Cum drips down your lips and chin; <<he>> seems disappointed. <<case 7>> <<He>> cups your head but in <<his>> excitement cums before <<he>> can enter your mouth. Thick ropes of cum cover your cheeks, chin, and into your waiting mouth. <<oralejacstat>><<cumswallow `$NPCList[_nn].type` null `npcSemenMod($NPCList[_nn].penissize)`>> <</switch>> <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <<elseif $NPCList[_nn].penis is "mouth">> <!-- this is picking up women NPCs...? --> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> cups you under the chin with one hand and holds the back of your head with the other, thrusting into your mouth as <<he>> cums. Ejaculate streams down your throat and fills your mouth. <<case 4 5 6>> <<He>> grasps the base of <<his>> cock and moans, quietly ejaculating into your mouth. You feel warm cum fill your mouth and drip down your throat. <<case 7>> <<He>> palms your head, wildly thrusting <<his>> cock in your mouth as <<he>> cums. Semen streams down your throat, fills your mouth and covers your face as <<he>> flails. "Wow, that was fun!" <<faceejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <</switch>> <<oralejacstat>><<ejacstat>><<cumswallow `$NPCList[_nn].type` null `npcSemenMod($NPCList[_nn].penissize)`>> <<elseif $NPCList[_nn].penis is "feet">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> pushes your feet together and groans as <<he>> cums. Ejaculate covers your feet. <<case 4 5 6>> <<He>> quietly cums on your feet, slickening them with semen. <<case 7>> <<He>> grunts and thrusts <<his>> cock between your feet as <<he>> cums, splattering cum on your feet and legs in the process. <</switch>> <<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "feet" "semen">> <<elseif $NPCList[_nn].penis is "leftarm" and $NPCList[_nn].penis is "rightarm">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> groans as <<he>> cums, penis pulsing in your hands, covering them both in cum. <<case 4 5 6>> <<He>> quietly cums on your hands, slickening them with semen. <<case 7>> <<He>> spasms and moans, shooting thick streams of cum. You are so intent on your work you don't notice <<his>> penis is aimed at your face, which is splattered with cum in the process. <<He>> giggles and apologises. <<faceejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <</switch>> <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "semen">><<bodyliquid "rightarm" "semen">> <<elseif $NPCList[_nn].penis is "leftarm">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> groans as <<he>> cums, penis sliding hotly in your left hand and covering it with cum. "You make me feel good." <<case 4 5 6>> <<He>> quietly cums on your left hand. Semen drips down your fingers. "I love how you make me feel." <<case 7>> <<He>> spasms and moans, shooting thick streams of cum and splattering your <<breasts>> in the process. You're impressed by the volume from such a small body. <<chestejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <</switch>> <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "semen">> <<elseif $NPCList[_nn].penis is "rightarm">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> groans as you work <<his>> shaft with your right hand, cumming as you give <<him>> a final squeeze. Your hand is covered in warm semen. "You make me feel special." <<case 4 5 6>> <<He>> quietly cums on your right hand. Semen cools on your fingers. "I love how you make me feel." <<case 7>> <<He>> grunts and shoots thick ropes of semen onto your hands, making an impressive mess. You're impressed by the volume from such a small body. <</switch>> <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "rightarm" "semen">> <<elseif $NPCList[_nn].penis is 0>> <<switch random(1, 4)>> <<case 1>> <<He>> groans as <<he>> works <<his>> shaft and, giving <<his>> cock a final squeeze, ejaculates onto your tummy. <<He>> laughs at the mess. <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <<case 2>> <<He>> rapidly rubs <<his>> cock and moans, ejaculating on the ground. "You make me feel good." <<case 3>> <<He>> strokes <<his>> penis and, aiming at your ass, ejaculates on your bottom. "That was fun!" <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 4>> <<He>> strokes <<his>> penis and moans, ejaculating on your <<breasts>>. <<He>> giggles at the mess <<hes>> made. <</switch>> <<elseif $NPCList[_nn].penis is "otheranus">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> groans as you fuck <<his>> ass, <<his>> ejaculate spraying on <<his>> own stomach. "That feels so good." <<case 4 5>> <<He>> whimpers as you pound <<his>> ass, moaning in pleasure as <<he>> ejaculates on the ground. You roll off <<him>>. <<case 6 7>> <<He>> sighs as <<he>> ejaculates onto <<his>> own chest. "That was great; when can we do it again?" <</switch>> <<elseif ($NPCList[_nn].penis is "otheranusfrot" or $NPCList[_nn].penis is "otheranusentrance" or $NPCList[_nn].penis is "otheranusimminent") and playerChastity("penis")>> <<He>> gasps as <<he>> cums onto your $worn.genitals.name. "Isn't that uncomfortable?" <<he>> asks. "Do they make softer ones?" <<elseif $NPCList[_nn].penis is "otheranusfrot" or $NPCList[_nn].penis is "otheranusentrance" or $NPCList[_nn].penis is "otheranusimminent">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> noisily cums as you fuck <<his>> cheeks, grabbing your ass from behind and grinding your cock against <<his>> ass to finish. <<case 4 5>> <<He>> moans as you rub against <<his>> anus and ejaculates on the ground. <<He>> smiles contentedly. <<case 6 7>> <<He>> sighs as <<he>> ejaculates onto <<his>> own chest. <</switch>> <<elseif $NPCList[_nn].penis is "penis" and playerChastity("penis")>> <<He>> gasps as <<he>> shoots <<his>> cum over your $worn.genitals.name. <<He>> strokes your face. "You're so cute." <<elseif $NPCList[_nn].penis is "penis">> <<He>> cums as you knead your <<penises>> together, moaning with pleasure. "That was fun." <<elseif $NPCList[_nn].penis is "penisentrance" or $NPCList[_nn].penis is "penisimminent">> <<if playerChastity("penis")>> <<He>> gasps as <<he>> shoots <<his>> cum over your $worn.genitals.name. <<He>> strokes your face. "You're so cute." <<else>> <<He>> cums before <<he>> can frot your <<penis>>. <<His>> semen coats your cock and tummy. <<He>> smiles contentedly. <</if>> <!-- Special case male PC being orally serviced by male NPC with no other contact --> <<elseif $NPCList[_nn].mouth is "penis">> <<switch random(1, 5)>> <<case 1 2 3>> <<He>> cums as you fuck <<his>> mouth, gasping against your cock. "That was so much fun!" <<case 4 5>> <<He>> cums on the ground as you fuck <<his>> mouth. You stop and pet <<his>> head. <</switch>> <<elseif $NPCList[_nn].penis is "othermouth">> <<He>> shakes with arousal as <<he>> cums, wiping <<his>> wet face clean on your body. <</if>> <<if $NPCList[_nn].penis isnot "none" and !$NPCList[_nn].penisdesc.includes("strap-on") and _condomResult is "leaked">> Despite wearing a condom, it was too damaged to stop the cum. <</if>> <br><br> <<else>><!-- There should be non non-consensual Robin events --> <<He>> cries out as <<he>> orgasms. <<He>> stops moving save for ragged breathing. <</if>> <br><br> <!-- No finishing moves for Robin. It would be out of character given size and personality --> <</widget>><<widget "ejaculation-sydney">> <<set $ejaculating to 1>> <!-- Changing rows to future-proof the code: from $NPCList[_nn] to $NPCList[_nn], _nn being the main ejaculation loop handler --> <<run statusCheck("Sydney")>> <!-- Female SYDNEY --> <<if $NPCList[_nn].vagina isnot "none" and $NPCList[_nn].penis is "none">> <<if $consensual is 1>> <<if $NPCList[_nn].vagina is "mouthentrance" or $NPCList[_nn].vagina is "mouth" or $NPCList[_nn].vagina is "mouthimminent">> <<if random(1)>> <<He>> lets out a gasp as <<he>> finishes, <<his>> legs instinctively wrapping around your head and neck for a moment. <<else>> <<switch _sydneyStatus>> <<case "pure" "pureLust">> <<He>> goes red in the face, mouth covered as <<he>> cums silently, <<his>> body twitching uncontrollably. <<case "corrupt" "corruptLust">> <<He>> grabs the back of your head in <<his>> hands and grinds <<his>> clit against your nose as <<he>> reaches climax. <<default>> <<He>> moans and rubs <<his>> <<sydneyGenitals>> against your face with <<his>> hips, <<his>> thighs shaking with orgasm. <</switch>> <</if>> <br><br> <<elseif $NPCList[_nn].vagina is "leftarm">> <<if random(1)>> <<He>> tightly grabs your arm and pulls you closer as <<he>> convulses in pleasure. You can feel <<his>> rapid heartbeat and breathing. <<else>> <<switch _sydneyStatus>> <<case "pure" "pureLust">> <<He>> goes red in the face, mouth covered as <<he>> cums silently, <<his>> <<sydneyGenitals>> spasming against your hand. <br><br> <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "goo">> <<case "corrupt" "corruptLust">> <<He>> lets out a final moan, grabbing your hand and fucking <<his>> <<sydneyGenitals>> with your fingers. They're soaked in ejaculate. <br><br> <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "goo">> <<default>> <<He>> sighs as you finish with <<his>> pussy, shaking <<his>> slim thighs together against your hand as <<his>> body convulses. <br><br> <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "goo">> <</switch>> <</if>> <<elseif $NPCList[_nn].vagina is "rightarm">> <<if random(1)>> <<He>> tightly grabs your hand as <<he>> convulses in pleasure. <<takeHandholdingVirginity "Sydney" "romantic" null true>> <<else>> <<switch _sydneyStatus>> <<case "pure" "pureLust">> <<He>> goes red in the face and neck, mouth covered as <<he>> cums silently, <<his>> <<sydneyGenitals>> spasming against your hand. <br><br> <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "rightarm" "goo">> <<case "corrupt" "corruptLust">> <<He>> lets out a final moan, grabbing your hand and fucking <<his>> <<sydneyGenitals>> with your fingers. They're soaked in ejaculate. <br><br> <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "rightarm" "goo">> <<default>> <<He>> sighs as you finish with <<his>> pussy, shaking <<his>> slim thighs together against your hand as <<his>> body convulses. <br><br> <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "rightarm" "goo">> <</switch>> <</if>> <<elseif $NPCList[_nn].vagina is "lefthand" or $NPCList[_nn].vagina is "righthand">> <<if random(1)>> <<He>> tightly grabs your arm and pulls you closer as <<he>> convulses in pleasure. You can feel <<his>> rapid heartbeat and breathing. <<else>> <<switch _sydneyStatus>> <<case "pure" "pureLust">> <<He>> sighs as <<he>> cums, releasing you and pulling back <<his>> hand. <<He>> rubs <<his>> juices between <<his>> fingers curiously. <<case "corrupt" "corruptLust">> <<He>> screams as <<he>> cums, soaking <<his>> own pussy and thighs in ejaculate. "Well, that's a little embarrassing..." <<default>> <<He>> moans loudly and shakes, dripping ejaculate on the ground. <<He>> rubs <<his>> juices between <<his>> fingers curiously. <</switch>> <</if>> <br><br> <<elseif $NPCList[_nn].vagina is "leftDildo">> <<switch random(1, 5)>> <<case 1 2>> <<He>> ?orgasmMoans as <<his>> body convulses, <<his>> thighs trembling against your $currentSexToyLeft.name. <<case 3 4>> <<His>> blush deepens and <<his>> mouth gapes as <<he>> cums against your $currentSexToyLeft.name. <<case 5>> <<He>> ?orgasmMoans and grasps your arm as your $currentSexToyLeft.name brings <<him>> to orgasm. <<His>> juices soak your $currentSexToyLeft.name. <</switch>> <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "goo">> <<elseif $NPCList[_nn].vagina is "rightDildo">> <<switch random(1, 5)>> <<case 1 2>> <<He>> ?orgasmMoans as <<his>> body convulses, <<his>> thighs trembling against your $currentSexToyRight.name. <<case 3 4>> <<His>> blush deepens and <<his>> mouth gapes as <<he>> cums against your $currentSexToyRight.name. <<case 5>> <<He>> ?orgasmMoans and grasps your arm as your $currentSexToyRight.name brings <<him>> to orgasm. <<His>> juices soak your $currentSexToyRight.name. <</switch>> <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "rightarm" "goo">> <<elseif $NPCList[_nn].vagina is "leftDildoAnus">> <<switch random(1, 5)>> <<case 1 2>> <<He>> ?orgasmMoans as <<his>> body convulses, <<his>> thighs trembling against your $currentSexToyLeft.name. <<case 3 4>> <<His>> blush deepens and <<his>> mouth gapes as <<he>> cums against your $currentSexToyLeft.name. <<case 5>> <<He>> ?orgasmMoans and grasps your arm as your $currentSexToyLeft.name brings <<him>> to orgasm. <</switch>> <<handejacstat>><<ejacstat>><<set $hygiene += 500>> <<elseif $NPCList[_nn].vagina is "rightDildoAnus">> <<switch random(1, 5)>> <<case 1 2>> <<He>> ?orgasmMoans as <<his>> body convulses, <<his>> thighs trembling against your $currentSexToyRight.name. <<case 3 4>> <<His>> blush deepens and <<his>> mouth gapes as <<he>> cums against your $currentSexToyRight.name. <<case 5>> <<He>> ?orgasmMoans and grasps your arm as your $currentSexToyRight.name brings <<him>> to orgasm. <</switch>> <<handejacstat>><<ejacstat>><<set $hygiene += 500>> <<elseif $NPCList[_nn].vagina is "feet">> <<if random(1)>> <<He>> lets out a long breath as <<he>> climaxes and shakes against your foot. <br><br> <<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "feet" "goo">> <<else>> <<switch _sydneyStatus>> <<case "pure" "pureLust">> <<He>> clasps <<his>> mouth shut with <<his>> hands, twitching underneath your feet and cumming between your toes. <<He>> falls back, breathing heavily. <br><br> <<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "feet" "goo">> <<case "corrupt" "corruptLust">> <<He>> moans as you knead <<his>> pussy<<if _sydneyChastity>> through <<his>> chastity belt, falling back<<else>>, jamming your toes inside with <<his>> hands<</if>> as <<he>> finishes cumming. <br><br> <<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "feet" "goo">> <<default>> <<He>> shakes bodily as <<he>> cums, twitching underneath your feet and cumming between your toes. <br><br> <<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "feet" "goo">> <</switch>> <</if>> <<elseif $NPCList[_nn].vagina is "vagina" and playerChastity("vagina")>> <<He>> gasps as <<he>> cums against your $worn.genitals.name. <<if _sydneyChastity>> "How can it still feel so good through two devices?" <<he>> asks. <<else>> "It's not fair..." <<he>> pouts, glaring at your $worn.genitals.name. <</if>> <br><br> <<elseif $NPCList[_nn].vagina is "vagina" and _sydneyChastity>> <<He>> moans loudly as <<he>> climaxes. "Hmph," <<he>> pouts, giving <<his>> chastity belt a useless tug. <<elseif $NPCList[_nn].vagina is "vagina">> <<if random(1)>> <<He>> wraps <<his>> arms around you as <<he>> finishes, and you hold each other tightly as you continue to grind together. You only slow down once <<hes>> done shaking. <<else>> <<switch _sydneyStatus>> <<case "pure" "pureLust">> <<if _sydneyChastity>> <<He>> cums as you scissor your <<pussy>> against <<his>> chastity belt. <<else>> <<He>> cums as you scissor your pussies together, moaning with pleasure. <</if>> <<case "corrupt" "corruptLust">> <<He>> moans as <<he>> grinds downs hard on your <<pussy>> to finish, legs shaking as <<he>> cums. <<default>> <<He>> moans loudly, cupping <<his>> hands under your shoulders as <<his>> entire body shakes. <</switch>> <</if>> <br><br> <<elseif $NPCList[_nn].vagina is "othermouth">> <<if random(1)>> <<He>> shudders in pleasure beneath you, before gasping as <<he>> pulls <<his>> head away from your <<pussy>>. <br><br> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "goo">> <<else>> <<switch _sydneyStatus>> <<case "pure" "pureLust">> <<He>> shudders with pleasure, exhaling warmly against your crotch as <<he>> cums, leaving you wet with saliva and your own fluids. <br><br> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "goo">> <<case "corrupt" "corruptLust">> <<He>> quietly ejaculates, shaking as <<he>> grinds <<his>> nose into your crotch and giving you a long, final, wet lick. <br><br> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "goo">> <<default>> <<He>> moans into your crotch as <<he>> cums, pinching <<his>> hands between <<his>> thighs and buckling over, ejaculate streaming down <<his>> thighs. <br><br> <</switch>> <</if>> <!-- following appear to be Male PC to Female Antagonist only? --> <<elseif $NPCList[_nn].vagina is "otheranus" and playerHasStrapon()>> <<if random(1)>> <<He>> arches <<his>> back and moans out loud as you fuck <<him>> to climax. <br><br> <<else>> <<switch _sydneyStatus>> <<case "pure" "pureLust">> <<He>> quietly orgasms, shaking as <<he>> instinctively grinds <<his>> ass against you. <<He>> places a hand on <<his>> belly. "The toy... it felt so good inside me..." <br><br> <<case "corrupt" "corruptLust">> <<He>> moans and bucks into your crotch as <<he>> cums. <<He>> giggles. "Hah... still... pure? Oh, who am I kidding..." <br><br> <<default>> <<He>> shakes as <<he>> cums, driving <<his>> ass hard against your $worn.under_lower.name as <<he>> releases a final moan. <br><br> <</switch>> <</if>> <<elseif $NPCList[_nn].vagina is "otheranus" and playerChastity("penis")>> <<He>> gasps as <<he>> cums against your $worn.genitals.name. <<if _sydneyChastity>> "How can it still feel so good through two devices?" <<he>> asks. <<else>> "It's not fair..." <<he>> pouts, glaring at your $worn.genitals.name. <</if>> <br><br> <<elseif $NPCList[_nn].vagina is "otheranus">> <<if random(1)>> <<He>> arches <<his>> back and moans out loud as you fuck <<him>> to climax. <br><br> <<else>> <<switch _sydneyStatus>> <<case "pure" "pureLust">> <<He>> quietly ejaculates, shaking as <<he>> instinctively grinds <<his>> ass against you. <<He>> places a hand on <<his>> belly. "It... it feels so full..." <<if $internalejac>><<npcincr Sydney purity -5>><<llspurity>><<else>><<npcincr Sydney purity -2>><<lspurity>><</if>> <br><br> <<case "corrupt" "corruptLust">> <<He>> moans and bucks into your crotch as <<he>> cums. <<He>> giggles. "Hah... still... pure? Oh, who am I kidding..." <<if $internalejac>><<npcincr Sydney purity -5>><<llspurity>><<else>><<npcincr Sydney purity -2>><<lspurity>><</if>> <br><br> <<default>> <<He>> shakes as <<he>> cums, driving <<his>> ass hard against you as <<he>> releases a final moan. <<if $internalejac>><<npcincr Sydney purity -5>><<llspurity>><<else>><<npcincr Sydney purity -2>><<lspurity>><</if>> <br><br> <</switch>> <</if>> <<elseif $NPCList[_nn].vagina is "penis" and playerHasStrapon()>> <<if random(1)>> <<He>> arches <<his>> back and moans out loud as you fuck <<him>> to climax. <br><br> <<else>> <<switch _sydneyStatus>> <<case "pure" "pureLust">> <<He>> wraps <<his>> arms around you as <<he>> cums, instinctively bouncing against your $worn.under_lower.name as <<he>> shudders with pleasure. <br><br> <<bodyliquid "penis" "goo">> <<case "corrupt" "corruptLust">> <<He>> sighs as <<he>> cums, reddening and going into a full body convulsion. <br><br> <<bodyliquid "penis" "goo">> <<default>> <<He>> cries out and bucks on your lap as <<he>> cums. <br><br> <<bodyliquid "penis" "goo">> <</switch>> <</if>> <<elseif $NPCList[_nn].vagina is "penis">> <<if random(1)>> <<He>> arches <<his>> back and moans out loud as you fuck <<him>> to climax. <<if $internalejac>><<He>> pats <<his>> belly. "It feels so warm." <<npcincr Sydney purity -5>><<llspurity>><<set $daily.sydney.sydneyCum to true>><<else>><<npcincr Sydney purity -2>><<lspurity>><</if>> <br><br> <<else>> <<switch _sydneyStatus>> <<case "pure" "pureLust">> <<He>> wraps <<his>> arms around you as <<he>> cums, instinctively bouncing against your cock as <<he>> shudders with pleasure. <<if $internalejac and $settings.pregnancySpeechEnabled>><<He>> pats <<his>> belly. "Am... am I gonna have a baby?" <<npcincr Sydney purity -5>><<llspurity>><<set $daily.sydney.sydneyCum to true>><<else>><<npcincr Sydney purity -2>><<lspurity>><</if>> <br><br> <<ejacstat>><<set $hygiene += 500>><<bodyliquid "penis" "goo">> <<case "corrupt" "corruptLust">> <<He>> sighs as <<he>> cums, reddening and going into a full body convulsion. <<if $internalejac>><<if $settings.pregnancySpeechEnabled>><<He>> pats <<his>> belly. "Keep this up and I'll get pregnant for sure."<</if>> <<npcincr Sydney purity -5>><<llspurity>><<set $daily.sydney.sydneyCum to true>><<else>><<npcincr Sydney purity -2>><<lspurity>><</if>> <br><br> <<ejacstat>><<set $hygiene += 500>><<bodyliquid "penis" "goo">> <<default>> <<He>> cries out and bucks on your lap as <<he>> cums. <<if $internalejac and $settings.pregnancySpeechEnabled>><<He>> pats <<his>> belly. "W-well, <<sydneyMum>> always said <<nnpc_he "Sirris">> wanted grandkids..." <<npcincr Sydney purity -5>><<llspurity>><<set $daily.sydney.sydneyCum to true>><<else>><<npcincr Sydney purity -2>><<lspurity>><</if>> <br><br> <<ejacstat>><<set $hygiene += 500>><<bodyliquid "penis" "goo">> <</switch>> <</if>> <<elseif ($NPCList[_nn].vagina is "penisimminent" or $NPCList[_nn].vagina is "penisentrance") and playerChastity("penis")>> <<He>> gasps as <<he>> cums against your $worn.genitals.name. <<if _sydneyChastity>> "How can it still feel so good through two devices?" <<he>> asks. <<else>> "It's not fair..." <<he>> pouts, glaring at your $worn.genitals.name. <</if>> <br><br> <<elseif ($NPCList[_nn].vagina is "penisimminent" or $NPCList[_nn].vagina is "penisentrance") and _sydneyChastity>> <<He>> grabs at <<his>> chastity belt in desperation as <<he>> hits climax. <<He>> lets out several frustrated sounds, but quickly composes <<himself>>. <<elseif $NPCList[_nn].vagina is "penisimminent" or $NPCList[_nn].vagina is "penisentrance">> <<He>> cums on your <<penis>> as you rub against the entrance, and <<he>> moans with pleasure. <br><br> <<elseif ($NPCList[_nn].vagina is "otheranusfrot" or $NPCList[_nn].vagina is "otheranusentrance") and playerChastity("penis")>> <<He>> gasps as <<he>> cums against your $worn.genitals.name. <<if _sydneyChastity>> "How can it still feel so good through two devices?" <<he>> asks. <<else>> "It's not fair..." <<he>> pouts, glaring at your $worn.genitals.name. <</if>> <br><br> <<elseif ($NPCList[_nn].vagina is "otheranusfrot" or $NPCList[_nn].vagina is "otheranusentrance") and C.npc.Sydney.chastity.anus.includes("shield")>> <<He>> grabs at <<his>> chastity belt in desperation as <<he>> hits climax. <<He>> lets out several frustrated sounds, but quickly composes <<himself>>. <<elseif $NPCList[_nn].vagina is "otheranusfrot" or $NPCList[_nn].vagina is "otheranusentrance">> <<He>> bucks <<his>> ass against your cock as <<he>> cums, body shaking involuntarily. <br><br> <<elseif $NPCList[_nn].vagina is "frot" and playerChastity("penis")>> <<He>> gasps as <<he>> cums against your $worn.genitals.name. <<if _sydneyChastity>> "How can it still feel so good through two devices?" <<he>> asks. <<else>> "It's not fair..." <<he>> pouts, glaring at your $worn.genitals.name. <</if>> <br><br> <<elseif $NPCList[_nn].vagina is "frot">> <<He>> grinds <<his>> <<sydneyGenitals>> hard against your cock as <<he>> cums. <<He>> covers <<his>> blush, but you think <<hes>> smiling. <br><br> <<ejacstat>><<set $hygiene += 500>><<bodyliquid "penis" "goo">> <!-- Special case male PC with female NPC --> <<elseif $NPCList[_nn].mouth is "penis" and playerHasStrapon()>> <<switch _sydneyStatus>> <<case "pure" "pureLust" "neutral" "neutralLust">> <<He>> cums as you fuck <<his>> mouth. <<His>> eyes widen, and <<he>> slowly pulls away, letting out a gasp as <<his>> mouth is freed. "It tasted so funny..." <<he>> giggles. <br><br> <<case "corrupt" "corruptLust">> <<He>> cums as you fuck <<his>> mouth, leaving your <<penis>> a mess. <<He>> swallows your <<penis>> until <<he>> gags, then comes up for air. "This is so silly," <<he>> giggles. <br><br> <</switch>> <<elseif $NPCList[_nn].mouth is "penis">> <<switch _sydneyStatus>> <<case "pure" "pureLust" "neutral" "neutralLust">> <<He>> cums as you fuck <<his>> mouth. <<His>> eyes widen, and <<he>> slowly pulls away, letting out a gasp as <<his>> mouth is freed. <<if $internalejac>><<He>> hesitantly swallows your semen.<</if>> "It tasted so funny..." <<he>> giggles. <<if $internalejac>><<npcincr Sydney purity -2>><<lspurity>><</if>> <br><br> <<case "corrupt" "corruptLust">> <<He>> cums as you fuck <<his>> mouth, leaving your <<penis>> a mess. <<if $internalejac>><<He>> opens <<his>> mouth, showing you your fresh load, before closing <<his>> mouth and swallowing. When <<he>> opens it again, your semen is gone. "Thanks for the meal," <<he>> giggles. <<npcincr Sydney purity -2>><<lspurity>><<else>>"You're so tasty," <<he>> giggles.<</if>> <br><br> <</switch>> <<else>> <<He>> convulses in orgasmic bliss. <br><br> <</if>> <<else>> <<if !_sydneyStatus.includes("corrupt") and $NPCList[_nn].vagina isnot "none">> <<He>> backs away, dazed and confused at what you've done. <br><br> <<elseif $NPCList[_nn].vagina is "footjob">> <<switch random(1, 5)>> <<case 1 2 3>> <<He>> gasps as <<he>> cums. Recovering, <<he>> smiles and stands over you, your <<lewdness>> on display below <<him>>. "If you'd just let me have my fun, I could use more than my foot!" <br><br> <<case 4 5>> <<He>> laughs as <<he>> cums, removing <<his>> foot from your crotch. "I feel so in-control now. You've really opened my eyes." <br><br> <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "goo">> <</switch>> <<elseif $NPCList[_nn].vagina is "vagina" and playerChastity("vagina")>> <<He>> gasps as <<he>> cums against your $worn.genitals.name. <<if _sydneyChastity>> "I'll break both of these things one day," <<he>> says. <<else>> "Fucking sextease," <<he>> pouts, glaring at your $worn.genitals.name. <<if $settings.bodyWritingLevel gte 2>> <<sydneyBodywritingLocation>><<if _writingFail isnot 1>><<He>> uncaps a marker, quickly writing something on your <<bodypart _bodypart>> before you can react. Your <<bodypart _bodypart>> now reads: <<sydneyBodywriting stupid_little_fucking_sextease_bitch_fucker>><</if>> <</if>> <</if>> <br><br> <<elseif $NPCList[_nn].vagina is "vagina">> <<switch random(1, 5)>> <<case 1 2>> <<He>> groans as <<he>> cums, dragging <<his>> wet pussy across your ass and thighs. <br><br> <<case 3 4>> <<He>> moans as <<he>> digs <<his>> nails into your shoulders and grinds downs hard on your <<pussy>>. You're surprised by <<his>> strength. <br><br> <<case 5>> <<He>> screams, grabbing you by the hair and mashing <<his>> entire body against yours. Ejaculate streams from <<his>> pussy, drenching you. <br><br> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "goo">> <</switch>> <<elseif $NPCList[_nn].vagina is "othermouth">> <<He>> shakes with arousal as <<he>> cums, wiping <<his>> wet face clean on your stomach. <br><br> <<elseif $NPCList[_nn].vagina is "lefthand" or $NPCList[_nn].vagina is "righthand">> <<He>> moans as <<he>> cums. <<He>> grabs you by the hair and pulls <<his>> face close. You're surprised by <<his>> strength. "One of these days, I'm going to break you until you're a drooling mess." <br><br> <<elseif $NPCList[_nn].vagina is "mouthentrance" or $NPCList[_nn].vagina is "mouth" or $NPCList[_nn].vagina is "mouthimminent">> <<He>> groans and cups your head, grinding <<his>> clit against your nose as <<his>> thighs shake with orgasm. <br><br> <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "goo">> <!-- following appear to be Male PC to Female Antagonist only? --> <<elseif $NPCList[_nn].vagina is "otheranus" and playerHasStrapon()>> <<He>> shakes as <<he>> cums, reaching back and digging <<his>> nails into your thighs as <<he>> releases a final moan. <br><br> <<elseif $NPCList[_nn].vagina is "otheranus">> <<He>> shakes as <<he>> cums, reaching back and digging <<his>> nails into your thighs as <<he>> releases a final moan. <<if $internalejac>><<He>> pats <<his>> belly. "Much better." <<npcincr Sydney purity -5>><<llspurity>><<else>> <<He>> looks irritated and manic. "I wanted you to cum inside! Did I not go hard enough?!" <<npcincr Sydney purity -2>><<lspurity>><</if>> <br><br> <<elseif $NPCList[_nn].vagina is "penis" and playerHasStrapon()>> <<He>> digs <<his>> fingers into your shoulders as <<he>> cums, driving <<his>> pussy down hard against your cock as <<he>> shudders with pleasure. <br><br> <<elseif $NPCList[_nn].vagina is "penis">> <<He>> digs <<his>> fingers into your shoulders as <<he>> cums, driving <<his>> pussy down hard against your cock as <<he>> shudders with pleasure. <<if $internalejac and $settings.pregnancySpeechEnabled>><<He>> pats <<his>> belly. "If I keep doing this, I'll get your baby for sure." <<npcincr Sydney purity -5>><<llspurity>><<set $daily.sydney.sydneyCum to true>><<else>> <<He>> looks irritated and manic. "I wanted you to cum inside! Did I not go hard enough?!" <<npcincr Sydney purity -2>><<lspurity>><</if>> <br><br> <<elseif ($NPCList[_nn].vagina is "penisimminent" or $NPCList[_nn].vagina is "penisentrance") and playerChastity("penis")>> <<He>> gasps as <<he>> cums against your $worn.genitals.name. <<if _sydneyChastity>> "I'll break both of these things one day," <<he>> says. "I need you inside me." <<else>> "Fucking cocktease," <<he>> pouts, glaring at your $worn.genitals.name. <<if $settings.bodyWritingLevel gte 2>> <<sydneyBodywritingLocation>><<if _writingFail isnot 1>><<He>> uncaps a marker, quickly writing something on your <<bodypart _bodypart>> before you can react. Your <<bodypart _bodypart>> now reads: <<sydneyBodywriting stupid_little_fucking_sextease_bitch_fucker>><</if>> <</if>> <</if>> <br><br> <<elseif $NPCList[_nn].vagina is "penisimminent" or $NPCList[_nn].vagina is "penisentrance">> <<if !playerHasStrapon()>> <<He>> moans as <<he>> cums on your throbbing cock. <<He>> looks angry. <<else>> <<He>> moans as <<he>> cums on your $worn.under_lower.name. <<He>> looks angry. <</if>> <<if _sydneyChastity>> "I'll break this thing one day," <<he>> says. "I need you inside me." <<else>> "Fucking cocktease," <<he>> pouts. "Why didn't you fuck me?" <<if $settings.bodyWritingLevel gte 2>> <<sydneyBodywritingLocation>><<if _writingFail isnot 1>><<He>> uncaps a marker, quickly writing something on your <<bodypart _bodypart>> before you can react. Your <<bodypart _bodypart>> now reads: <<sydneyBodywriting stupid_little_fucking_sextease_bitch_fucker>><</if>> <</if>> <</if>> <br><br> <<elseif ($NPCList[_nn].vagina is "otheranusfrot" or $NPCList[_nn].vagina is "otheranusentrance") and playerChastity("penis")>> <<He>> gasps as <<he>> cums against your $worn.genitals.name. <<if _sydneyChastity>> "I'll break both of these things one day," <<he>> says. "I need you inside me." <<else>> "Fucking cocktease," <<he>> pouts, glaring at your $worn.genitals.name. <<if $settings.bodyWritingLevel gte 2>> <<sydneyBodywritingLocation>><<if _writingFail isnot 1>><<He>> uncaps a marker, quickly writing something on your <<bodypart _bodypart>> before you can react. Your <<bodypart _bodypart>> now reads: <<sydneyBodywriting stupid_little_fucking_sextease_bitch_fucker>><</if>> <</if>> <</if>> <br><br> <<elseif $NPCList[_nn].vagina is "otheranusfrot" or $NPCList[_nn].vagina is "otheranusentrance">> <<He>> swivels <<his>> ass against your cock as <<he>> cums. <<if _sydneyChastity>> "I'll break this thing one day," <<he>> says. "I need you inside me." <<else>> "Fucking cocktease," <<he>> pouts. "Why didn't you fuck me?" <<if $settings.bodyWritingLevel gte 2>> <<sydneyBodywritingLocation>><<if _writingFail isnot 1>><<He>> uncaps a marker, quickly writing something on your <<bodypart _bodypart>> before you can react. Your <<bodypart _bodypart>> now reads: <<sydneyBodywriting stupid_little_fucking_sextease_bitch_fucker>><</if>> <</if>> <</if>> <br><br> <<elseif $NPCList[_nn].vagina is "frot" and playerChastity("penis")>> <<He>> gasps as <<he>> cums against your $worn.genitals.name. <<if _sydneyChastity>> "I'll break both of these things one day," <<he>> says. <<else>> "Fucking sextease," <<he>> pouts, glaring at your $worn.genitals.name. <<if $settings.bodyWritingLevel gte 2>> <<sydneyBodywritingLocation>><<if _writingFail isnot 1>><<He>> uncaps a marker, quickly writing something on your <<bodypart _bodypart>> before you can react. Your <<bodypart _bodypart>> now reads: <<sydneyBodywriting stupid_little_fucking_sextease_bitch_fucker>><</if>> <</if>> <</if>> <br><br> <<elseif $NPCList[_nn].vagina is "frot">> <<He>> grinds <<his>> clit hard against your cock as <<he>> cums. "Fucking cocktease," <<he>> pouts. "Why didn't you fuck me?" <<if $settings.bodyWritingLevel gte 2>> <<sydneyBodywritingLocation>><<if _writingFail isnot 1>><<He>> uncaps a marker, quickly writing something on your <<bodypart _bodypart>> before you can react. Your <<bodypart _bodypart>> now reads: <<sydneyBodywriting stupid_little_fucking_sextease_bitch_fucker>><</if>> <</if>> <br><br> <!-- Special case male PC with female NPC --> <<elseif $NPCList[_nn].mouth is "penis">> <<if !playerHasStrapon()>> <<He>> cums as you fuck <<his>> mouth, pushing away as <<he>> gasps for air. "Almost bit you. Sorry." <<else>> <<He>> cums as you fuck <<his>> mouth, pushing away as <<he>> gasps for air. "This was fun." <</if>> <br><br> <<else>> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> trembles with orgasm. Pulling your face close, <<he>> says, "You belong to me. And I belong to you." <br><br> <<case 4 5 6>> <<He>> sighs quietly as <<he>> cums, stroking your back. "Being in control is so much more fun." <br><br> <<case 7>> <<He>> rapidly rubs <<his>> clit and screams as <<he>> cums. "I can't control myself when I'm with you." <br><br> <</switch>> <</if>> <</if>> <</if>> <!-- Male SYDNEY --> <<if _condomResult is "leaked">> <span class="red">The condom broke.</span> <<elseif _condomResult is "burst">> <span class="red">The tip of the condom bursts and rips, exposing the head of <<his>> penis.</span> <</if>> <<if $consensual is 1>> <<if _condomResult is "contained">> <<genericCondomEjaculation>> <<elseif npcHasStrapon(_nn)>> <<He>> moans and shivers in orgasmic bliss, grinding the strap-on against <<his>> genitals. <<elseif $NPCList[_nn].penis is "idle">> <<He>> groans as a wet patch forms on <<his>> trousers. You giggle at the sight. <br><br> <<elseif $NPCList[_nn].penis is "thighs">> <<if random(1)>> <<He>> moans as <<he>> cums, ejaculating a massive load that covers your thighs and tummy. <br><br> <<thighejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <<tummyejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <<else>> <<switch _sydneyStatus>> <<case "pure" "pureLust">> <<He>> instinctively bucks <<his>> hips as <<he>> moans in bliss, shooting semen onto your thighs. <br><br> <<thighejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <<case "corrupt" "corruptLust">> <<He>> grabs your legs, pushing <<his>> crotch hard into yours as <<he>> cums, ejaculating onto your tummy. <br><br> <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <<default>> <<He>> shakes as <<he>> cums, pulling <<his>> cock out and ejaculating onto the backs of your thighs. <br><br> <<thighejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <</switch>> <</if>> <<elseif $NPCList[_nn].penis is "vaginaentrance" and playerChastity("vagina")>> <<He>> gasps as <<he>> cums onto your $worn.genitals.name. <<if _sydneyChastity>> "How can it still feel so good through two devices?" <<he>> asks. <<else>> "It's not fair..." <<he>> pouts, glaring at your $worn.genitals.name. <</if>> <br><br> <<elseif $NPCList[_nn].penis is "vaginaentrance" and _sydneyChastity>> <<He>> cums into <<his>> chastity belt, unable to penetrate you. <<He>> makes a few frustrated noises, but quickly composes <<himself>>. <br><br> <<elseif $NPCList[_nn].penis is "vaginaentrance">> <<if random(1)>> <<He>> moans as <<he>> cums, sending thick ropes of semen onto your <<pussy>> and ass. <br><br> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<bottomejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 5, rngType: "canWash"}`>> <<else>> <<switch _sydneyStatus>> <<case "pure" "pureLust">> <<He>> covers <<his>> mouth as <<he>> ejaculates onto your <<pussy>>, sending white streams of semen running down your cunt. <br><br> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<case "corrupt" "corruptLust">> <<He>> holds you still by the hips with one hand and ejaculates onto your <<pussy>>. Semen coats your outer lips and pools around your legs. <br><br> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<default>> <<He>> moans as <<he>> cums, sending thick ropes of semen onto your <<pussy>> and ass. <br><br> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<bottomejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <</switch>> <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 5, rngType: "canWash"}`>> <</if>> <<elseif $NPCList[_nn].penis is "vaginaimminent" and playerChastity("vagina")>> <<He>> gasps as <<he>> cums onto your $worn.genitals.name. <<if _sydneyChastity>> "How can it still feel so good through two devices?" <<he>> asks. <<else>> "It's not fair..." <<he>> pouts, glaring at your $worn.genitals.name. <</if>> <br><br> <<elseif $NPCList[_nn].penis is "vaginaimminent" and _sydneyChastity>> <<He>> cums into <<his>> chastity belt, unable to penetrate you. <<He>> makes a few frustrated noises, but quickly composes <<himself>>. <<elseif $NPCList[_nn].penis is "vaginaimminent">> <<if random(1)>> <<He>> moans as <<he>> cums, sending thick ropes of semen onto your <<pussy>> and ass. <br><br> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<bottomejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 15, rngType: "canWash"}`>> <<else>> <<switch _sydneyStatus>> <<case "pure" "pureLust">> <<He>> instinctively pulls away before <<he>> can ejaculate onto your <<pussy>>. <<He>> breathes heavily. <br><br> <<case "corrupt" "corruptLust">> <<He>> cums before <<he>> can penetrate your <<pussy>>, ejaculating on the outside. Semen coats your outer lips and tummy. <<He>> seems disappointed. <br><br> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<default>> <<He>> slowly lets out a held breath as <<he>> cums on your <<pussy>>. <br><br> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <</switch>> <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 15, rngType: "canWash"}`>> <</if>> <<elseif $NPCList[_nn].penis is "vagina">> <<set $daily.sydney.cum to true>> <<if random(1)>> <<He>> arches <<his>> back and moans out loud as you fuck <<him>> to climax. <<He>> pats your belly. "Was it good for you, too?" <<npcincr Sydney purity -5>><<llspurity>> <br><br> <<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vagina" "semen">> <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: "human"}`>> <<else>> <<switch _sydneyStatus>> <<case "pure" "pureLust">> <<He>> wraps <<his>> arms around you as <<he>> cums, instinctively thrusting deep into you as <<he>> shudders with pleasure. <<if $settings.pregnancySpeechEnabled>> "Are... are you gonna have a baby?" <<else>> "Was it good for you, too?" <</if>> <<npcincr Sydney purity -5>><<llspurity>> <br><br> <<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vagina" "semen">> <<case "corrupt" "corruptLust">> <<He>> convulses and grinds down on your crotch as <<he>> cums, sending thick waves of cum into your <<pussy>>. Semen oozes from your vagina and down your legs. <<He>> pats your belly. <<if $settings.pregnancySpeechEnabled>> "Hah... think I just knocked you up?" <<else>> "Was it good for you, too?" <</if>> <br><br> <<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vagina" "semen">> <<thighejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <<default>> <<He>> quiets and grabs your shoulders, pulling you onto <<his>> cock as <<he>> cums. Semen fills your <<pussy>>, leaving you breathless. <<He>> pats your belly. <<if $settings.pregnancySpeechEnabled>> "Well, <<sydneyMum>> did say <<nnpc_he "Sirris">> wanted grandkids..." <<else>> "Was it good for you too?" <</if>> <br><br> <<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vagina" "semen">> <</switch>> <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: "human"}`>> <</if>> <<elseif $NPCList[_nn].penis is "cheeks" and playerChastity()>> <<He>> gasps as <<he>> cums onto your $worn.genitals.name. <<if _sydneyChastity>> "How can it still feel so good through two devices?" <<he>> asks. <<else>> "It's not fair..." <<he>> pouts, glaring at your $worn.genitals.name. <</if>> <br><br> <<elseif $NPCList[_nn].penis is "cheeks">> <<if random(1)>> <<He>> lets out a long breath as <<he>> cums between your cheeks. <br><br> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<else>> <<switch _sydneyStatus>> <<case "pure" "pureLust">> <<He>> shakes as <<he>> cums, withdrawing <<his>> cock from your cheeks and ejaculating onto your ass. <br><br> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case "corrupt" "corruptLust">> <<He>> squeezes your cheeks together and grunts as <<he>> cums, sending out massive load that covers your ass and drips down your crotch. <<He>> seems proud of <<himself>>. <br><br> <<bottomejacstat>><<ejacstat>><<set $hygiene += 1000>><<bodyliquid "bottom" "semen" 2>> <<default>> <<He>> grabs your thighs, pushing <<his>> crotch hard against your ass and ejaculating between your cheeks. <br><br> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <</switch>> <</if>> <<elseif $NPCList[_nn].penis is "anusentrance" and playerChastity("anus")>> <<He>> gasps as <<he>> cums onto your $worn.genitals.name. <<if _sydneyChastity>> "How can it still feel so good through two devices?" <<he>> asks. <<else>> "It's not fair..." <<he>> pouts, glaring at your $worn.genitals.name. <</if>> <br><br> <<elseif $NPCList[_nn].penis is "anusentrance" and _sydneyChastity>> <<He>> cums into <<his>> chastity belt, unable to penetrate you. <<He>> makes a few frustrated noises, but quickly composes <<himself>>. <br><br> <<elseif $NPCList[_nn].penis is "anusentrance">> <<if random(1)>> <<He>> lets out a long breath as <<he>> cums between your cheeks. <br><br> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<else>> <<switch _sydneyStatus>> <<case "pure" "pureLust">> <<He>> covers <<his>> mouth and quietly ejaculates onto your ass. You feel warm semen dripping down your bottom. <br><br> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case "corrupt" "corruptLust">> <<He>> palms your asscheek with one hand and strokes <<his>> cock with the other, ejaculating onto your bottom. Semen drips down your butt and into your crack. <br><br> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<default>> <<He>> grabs your thighs, pushing <<his>> crotch hard against your ass and ejaculating between your cheeks, sending thick ropes of semen onto your ass and down your crotch. <br><br> <<bottomejacstat>><<ejacstat>><<set $hygiene += 1000>><<bodyliquid "bottom" "semen" 2>> <</switch>> <</if>> <<recordSperm `{genital: "anus", target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 5, rngType: "canWash"}`>> <<elseif $NPCList[_nn].penis is "anusimminent" and playerChastity("anus")>> <<He>> gasps as <<he>> cums onto your $worn.genitals.name. <<if _sydneyChastity>> "How can it still feel so good through two devices?" <<he>> asks. <<else>> "It's not fair..." <<he>> pouts, glaring at your $worn.genitals.name. <</if>> <br><br> <<elseif $NPCList[_nn].penis is "anusimminent" and _sydneyChastity>> <<He>> cums into <<his>> chastity belt, unable to penetrate you. <<He>> makes a few frustrated noises, but quickly composes <<himself>>. <br><br> <<elseif $NPCList[_nn].penis is "anusimminent">> <<if random(1)>> <<He>> lets out a long breath as <<he>> cums between your cheeks. <br><br> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<else>> <<switch _sydneyStatus>> <<case "pure" "pureLust">> <<He>> covers <<his>> mouth and pulls away from your ass at the last second. You feel warm semen dripping down your bottom. <br><br> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case "corrupt" "corruptLust">> <<He>> palms your asscheek with one hand and strokes <<his>> cock with the other, ejaculating onto your bottom before <<he>> can penetrate you. Semen drips down your butt and into your crack. <<He>> seems disappointed. <br><br> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<default>> <<He>> grabs your thighs, pushing <<his>> crotch hard against your ass and ejaculating between your cheeks, sending thick ropes of semen onto your ass and down your crotch as <<he>> barely misses penetrating you. <br><br> <<bottomejacstat>><<ejacstat>><<set $hygiene += 1000>><<bodyliquid "bottom" "semen" 2>> <</switch>> <</if>> <<recordSperm `{genital: "anus", target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 15, rngType: "canWash"}`>> <<elseif $NPCList[_nn].penis is "anus">> <<if random(1)>> <<He>> moans loudly as <<he>> releases a full load into your bowels. "Well... at least you can still be considered pure." <<npcincr Sydney purity -5>><<llspurity>> <br><br> <<analejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "anus" "semen">> <<recordAnusSperm "pc" $NPCList[_nn] "human">> <<else>> <<switch _sydneyStatus>> <<case "pure" "pureLust">> <<He>> moans and instinctively thrusts into your ass as <<he>> cums. You gasp as you feel semen filling you. "Th...this can't be done for procreation..." <<npcincr Sydney purity -5>><<llspurity>> <br><br> <<analejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "anus" "semen">> <<recordAnusSperm "pc" $NPCList[_nn] "human">> <<case "corrupt" "corruptLust">> <<He>> convulses and, with a final shove, cums in your ass. Thick waves of semen pump into you. You're surprised at the amount; cum oozes from your ass and runs down your legs. <<npcincr Sydney purity -5>><<llspurity>> <br><br> <<analejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "anus" "semen">> <<recordAnusSperm "pc" $NPCList[_nn] "human">> <<default>> <<He>> grabs your shoulders, pulling you back onto <<his>> cock as <<he>> cums. Semen fills your ass as you both moan with pleasure. <<npcincr Sydney purity -5>><<llspurity>> <br><br> <<analejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "anus" "semen">> <<thighejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <<recordAnusSperm "pc" $NPCList[_nn] "human">> <</switch>> <</if>> <<elseif $NPCList[_nn].penis is "chest">> <<if random(1)>> <<He>> moans loudly as <<he>> releases a full load onto your chest. <br><br> <<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <<else>> <<switch _sydneyStatus>> <<case "pure" "pureLust">> <<He>> puts <<his>> hand behind your neck and bears down on your <<breasts>>. <<He>> grunts as semen shoots between your <<breasts>> and covers your <<if $position is "missionary">>face<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">><<else>>stomach<<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">><</if>>. <br><br> <<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <<case "corrupt" "corruptLust">> <<He>> pushes your <<breasts>> together tight on <<his>> cock as <<he>> cums, ejaculating onto them. Your body feels slick with cum. <br><br> <<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <<default>> <<He>> strokes the tip of <<his>> cock between your <<breasts>> and quietly ejaculates on them. Your <<breasts>> feel cool as semen drips down them. <br><br> <<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <</switch>> <</if>> <<elseif $NPCList[_nn].penis is "mouthentrance" and _sydneyChastity>> <<He>> moans loudly as <<he>> cums in <<his>> chastity belt. "Hmph," <<he>> pouts, giving it a useless tug. <br><br> <<elseif $NPCList[_nn].penis is "mouthentrance">> <<if random(1)>> <<He>> moans loudly as <<he>> releases a full load onto your face. <br><br> <<set $hygiene += 500>><<bodyliquid "face" "semen">> <<else>> <<switch _sydneyStatus>> <<case "pure" "pureLust">> You stroke <<his>> cock and <<he>> quietly ejaculates onto your face. Warm cum drips down your forehead and nose. <<He>> smiles, cleans you off, and examines <<his>> cum between <<his>> fingers. <br><br> <<case "corrupt" "corruptLust">> <<He>> gasps and strokes <<his>> cock while aiming straight at your mouth. Thick ropes of cum cover your face and push past your closed lips into your mouth. You're impressed by the volume, and <<he>> looks pleased with <<himself>>. <<set $hygiene += 500>><<bodyliquid "face" "semen">> <<cumswallow `$NPCList[_nn].type` null `npcSemenMod($NPCList[_nn].penissize)`>> <br><br> <<default>> <<He>> cups you under the chin with one hand and strokes <<his>> cock with the other, ejaculating onto your face. <<He>> giggles and looks excited. <br><br> <<set $hygiene += 500>><<bodyliquid "face" "semen">> <</switch>> <</if>> <<faceejacstat>><<ejacstat>> <<elseif $NPCList[_nn].penis is "mouthimminent" and _sydneyChastity>> <<He>> moans loudly as <<he>> cums in <<his>> chastity belt. "Hmph," <<he>> pouts, giving it a useless tug. <br><br> <<elseif $NPCList[_nn].penis is "mouthimminent">> <<if random(1)>> <<He>> moans loudly as <<he>> releases a full load onto your face. <<His>> face flushes as <<he>> beholds your face, now covered in <<his>> cum. <<He>> helps you clean it off. <br><br> <<else>> <<switch _sydneyStatus>> <<case "pure" "pureLust">> <<He>> cups the back of your head, ejaculating onto your lips as you barely brush against the tip of <<his>> penis. <<He>> seems disappointed with <<his>> lack of control. <br><br> <<set $hygiene += 500>><<bodyliquid "face" "semen">> <<case "corrupt" "corruptLust">> <<He>> brushes <<his>> cock against your face, causing <<him>> to ejaculate early. Cum drips down your lips and chin; <<he>> seems disappointed. <br><br> ><<set $hygiene += 500>><<bodyliquid "face" "semen">> <<default>> <<He>> cups your head, but in <<his>> excitement cums before <<he>> can enter your mouth. Thick ropes of cum cover your cheeks, chin, and into your waiting mouth. <<set $hygiene += 500>><<bodyliquid "face" "semen">> <<oralejacstat>><<cumswallow `$NPCList[_nn].type` null `npcSemenMod($NPCList[_nn].penissize)`>> <br><br> <</switch>> <</if>> <<faceejacstat>><<ejacstat>> <<elseif $NPCList[_nn].penis is "mouth">> <<if random(1)>> <<He>> moans loudly as you pull <<him>> all the way in. You open your mouth to show <<him>> <<his>> semen. <<His>> face goes red. <<npcincr Sydney purity -2>><<lspurity>> <br><br> <<else>> <<switch _sydneyStatus>> <<case "pure" "pureLust">> <<He>> instinctively grasps the base of <<his>> cock and moans, quietly ejaculating into your mouth. You feel warm cum fill your mouth and drip down your throat. <<npcincr Sydney purity -2>><<lspurity>> <br><br> <<case "corrupt" "corruptLust">> <<He>> palms your head and thrusts <<his>> cock in your mouth as <<he>> cums. Semen streams down your throat, fills your mouth and covers your face as <<he>> flails. "Make sure to swallow it all." <<npcincr Sydney purity -2>><<lspurity>> <<faceejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <br><br> <<default>> <<He>> cups you under the chin with one hand and holds the back of your head with the other, thrusting into your mouth as <<he>> cums. Ejaculate streams down your throat and fills your mouth. <<npcincr Sydney purity -2>><<lspurity>> <br><br> <</switch>> <</if>> <<oralejacstat>><<ejacstat>><<cumswallow `$NPCList[_nn].type` null `npcSemenMod($NPCList[_nn].penissize)`>> <<elseif $NPCList[_nn].penis is "feet">> <<if random(1)>> <<He>> lets out a long breath as <<he>> climaxes and shakes against your foot. <br><br> <<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "feet" "semen">> <<else>> <<switch _sydneyStatus>> <<case "pure" "pureLust">> <<He>> quietly cums on your feet, slickening them with semen. <br><br> <<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "feet" "semen">> <<case "corrupt" "corruptLust">> <<He>> grunts and thrusts <<his>> cock between your feet as <<he>> cums, splattering cum on your feet and legs in the process. <br><br> <<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "feet" "semen">> <<thighejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <<default>> <<He>> pushes your feet together and groans as <<he>> cums. Ejaculate covers your feet. <br><br> <<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "feet" "semen">> <</switch>> <</if>> <<elseif $NPCList[_nn].penis is "leftarm" and $NPCList[_nn].penis is "rightarm">> <<switch _sydneyStatus>> <<case "pure" "pureLust">> <<He>> quietly cums on your hands, slickening them with semen. <br><br> <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "semen">><<bodyliquid "rightarm" "semen">> <<case "corrupt" "corruptLust">> <<He>> spasms and moans, shooting thick streams of cum. You are so intent on your work you don't notice <<his>> penis is aimed at your face, which is splattered with cum in the process. <<He>> giggles and apologises. <br><br> <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "semen">><<bodyliquid "rightarm" "semen">> <<faceejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <<default>> <<He>> groans as <<he>> cums, penis pulsing in your hands, covering them both in cum. <br><br> <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "semen">><<bodyliquid "rightarm" "semen">> <</switch>> <<elseif $NPCList[_nn].penis is "leftarm">> <<switch _sydneyStatus>> <<case "pure" "pureLust">> <<He>> quietly cums on your left hand. Semen drips down your fingers. "That felt... really good..." <br><br> <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "semen">> <<case "corrupt" "corruptLust">> <<He>> spasms and moans, shooting thick streams of cum and splattering your <<breasts>> in the process. You're impressed by the volume. <br><br> <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "semen">> <<chestejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <<default>> <<He>> groans as <<he>> cums, <<his>> penis sliding hotly in your left hand and covering it with cum. "That was amazing." <br><br> <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "semen">> <</switch>> <<elseif $NPCList[_nn].penis is "rightarm">> <<switch _sydneyStatus>> <<case "pure" "pureLust">> <<He>> groans as you work <<his>> shaft with your right hand, cumming as you give <<him>> a final squeeze. Your hand is covered in warm semen. "That felt... really good..." <br><br> <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "rightarm" "semen">> <<case "corrupt" "corruptLust">> <<He>> covers <<his>> mouth as <<he>> cums on your right hand. Semen pools on your fingers. "I can't get enough of you." <br><br> <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "rightarm" "semen">> <<default>> <<He>> grunts and shoots thick ropes of semen onto your hands, making an impressive mess. "Oh! Sorry!" <br><br> <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "rightarm" "semen">> <</switch>> <<elseif $NPCList[_nn].penis is "otheranus">> <<if random(1)>> <<He>> arches <<his>> back and moans out loud as you fuck <<him>> to climax. <<He>> cums all over the ground. <br><br> <<else>> <<switch _sydneyStatus>> <<case "pure" "pureLust">> <<He>> covers <<his>> mouth as you fuck <<his>> ass, <<his>> ejaculate spraying on <<his>> own stomach. "W...wow... I never knew that could feel so good..." <br><br> <<case "corrupt" "corruptLust">> <<He>> sighs as <<he>> ejaculates onto <<his>> own chest. "I needed that so badly. Can we go again?" <br><br> <<default>> <<He>> whimpers as you pound <<his>> ass, moaning in pleasure as <<he>> ejaculates on the ground. You roll off of <<him>>. <br><br> <</switch>> <</if>> <<elseif ($NPCList[_nn].penis is "otheranusfrot" or $NPCList[_nn].penis is "otheranusentrance" or $NPCList[_nn].penis is "otheranusimminent") and playerChastity("penis")>> <<He>> gasps as <<he>> cums onto your $worn.genitals.name. <<if _sydneyChastity>> "How can it still feel so good through two devices?" <<he>> asks. <<else>> "It's not fair..." <<he>> pouts, glaring at your $worn.genitals.name. <</if>> <br><br> <<elseif ($NPCList[_nn].penis is "otheranusfrot" or $NPCList[_nn].penis is "otheranusentrance" or $NPCList[_nn].penis is "otheranusimminent") and _sydneyChastity>> <<He>> cums into <<his>> chastity belt. <<He>> makes a few frustrated noises, but quickly composes <<himself>>. <br><br> <<elseif $NPCList[_nn].penis is "otheranusfrot" or $NPCList[_nn].penis is "otheranusentrance" or $NPCList[_nn].penis is "otheranusimminent">> <<if random(1)>> <<He>> arches <<his>> back and moans out loud as you fuck <<his>> cheeks, cumming all over the ground. "How am I that sensitive there?" <br><br> <<else>> <<switch _sydneyStatus>> <<case "pure" "pureLust">> <<He>> covers <<his>> mouth as you fuck <<his>> cheeks, <<his>> ejaculate spraying on <<his>> own stomach. "W...wow... I never knew that could feel so good..." <br><br> <<case "corrupt" "corruptLust">> <<He>> noisily cums as you fuck <<his>> cheeks, grabbing your ass from behind and grinding your cock against <<his>> ass to finish. "You really hit the spot, there." <br><br> <<default>> <<He>> moans as you rub against <<his>> anus and <<he>> ejaculates on the ground. <<He>> smiles contentedly. <br><br> <</switch>> <</if>> <<elseif $NPCList[_nn].penis is "penis" and playerChastity("penis")>> <<He>> gasps as <<he>> cums against your $worn.genitals.name. <<if _sydneyChastity>> "How can it still feel so good through two devices?" <<he>> asks. <<else>> "It's not fair..." <<he>> pouts, glaring at your $worn.genitals.name. <</if>> <br><br> <<elseif $NPCList[_nn].penis isnot 0 and $NPCList[_nn].penis.startsWith("penis") and _sydneyChastity>> <<He>> moans loudly as <<he>> climaxes. "Hmph," <<he>> pouts, giving <<his>> chastity belt a useless tug. <<elseif $NPCList[_nn].penis is "penis">> <<if random(1)>> <<He>> wraps <<his>> arms around you as <<he>> finishes, and you hold each other tightly as you continue to grind together. You only slow down once <<hes>> done shaking. <<else>> <<switch _sydneyStatus>> <<case "pure" "pureLust">> <<if _sydneyChastity>> <<He>> cums as you frot your <<penis>> against <<his>> chastity belt. <<else>> <<He>> cums as you rub your <<penises>> together, moaning with pleasure. <</if>> <<case "corrupt" "corruptLust">> <<He>> moans as <<he>> grinds hard against your <<penis>> to finish, legs shaking as <<he>> cums. <<default>> <<He>> moans loudly, cupping <<his>> hands under your shoulders as <<his>> entire body shakes. <</switch>> <</if>> <br><br> <<elseif $NPCList[_nn].penis is "penisentrance" or $NPCList[_nn].penis is "penisimminent">> <<if playerChastity("penis")>> <<He>> gasps as <<he>> shoots <<his>> cum over your $worn.genitals.name. <<He>> strokes your face. "Together." <br><br> <<else>> <<He>> cums before <<he>> can frot your <<penis>>. <<His>> semen coats your cock and tummy. <<He>> smiles contentedly. <br><br> <</if>> <!-- Special case male PC being orally serviced by male NPC with no other contact --> <<elseif $NPCList[_nn].mouth is "penis">> <<switch _sydneyStatus>> <<case "pure" "pureLust" "neutral" "neutralLust">> <<He>> helplessly cums on the ground as you fuck <<his>> mouth. <<He>> looks down in shame once you pull out. You stop and pet <<his>> head. <br><br> <<case "corrupt" "corruptLust">> <<He>> cums as you fuck <<his>> mouth, gasping against your cock. "I could taste you forever." <br><br> <</switch>> <<elseif $NPCList[_nn].penis is "othermouth">> <<He>> shakes with arousal as <<he>> cums, wiping <<his>> wet face clean on your body. <br><br> <</if>> <<else>> <<if !_sydneyStatus.includes("corrupt") and $NPCList[_nn].penis isnot "none">> <<He>> backs away, dazed and confused at what you've done. <br><br> <<elseif npcHasStrapon(_nn)>> <<He>> moans and shivers in orgasmic bliss, grinding the strap-on against <<his>> genitals. <<elseif _condomResult is "contained">> <<genericCondomEjaculation>> <<elseif $NPCList[_nn].penis is "idle">> <<He>> groans as a wet patch forms on <<his>> trousers. You barely stifle a laugh at the pathetic display. <br><br> <<elseif $NPCList[_nn].penis is "thighs">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> shakes as <<he>> cums, pulling <<his>> cock out and ejaculating onto the backs of your thighs, then wipes <<his>> cock clean on your ass. <br><br> <<thighejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <<case 4 5 6>> <<He>> grabs your legs, slamming <<his>> crotch hard into your ass as <<he>> cums and ejaculates onto your tummy. <br><br> <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <<case 7>> <<He>> groan as <<he>> cums, ejaculating a massive load that covers your thighs and tummy. <<He>> seems impressed with <<himself>>. <br><br> <<thighejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <<tummyejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <</switch>> <<elseif $NPCList[_nn].penis is "vaginaentrance" and playerChastity("vagina")>> <<He>> moans as <<he>> cums onto your $worn.genitals.name. <<He>> looks angry. <<if _sydneyChastity>> "I'll break these things one day," <<he>> says. "I need to be inside you." <<else>> "Fucking cocktease," <<he>> pouts. "Why didn't you let me fuck you?" <<if $settings.bodyWritingLevel gte 2>> <<sydneyBodywritingLocation>><<if _writingFail isnot 1>><<He>> uncaps a marker, quickly writing something on your <<bodypart _bodypart>> before you can react. Your <<bodypart _bodypart>> now reads: <<sydneyBodywriting stupid_little_fucking_sextease_bitch_fucker>><</if>> <</if>> <</if>> <br><br> <<elseif $NPCList[_nn].penis is "vaginaentrance">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> grabs your hips, pulling you back and ejaculating onto your <<pussy>>. Semen coats your outer lips and pools around your legs. <br><br> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<case 4 5 6>> <<He>> strokes <<his>> cock and ejaculates onto your <<pussy>> without a word, sending white streams of semen running down your cunt. <br><br> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<case 7>> <<He>> moans and strokes <<his>> cock as <<he>> cums, sending thick ropes of semen onto your <<pussy>> and ass. <<He>> seems impressed with the mess <<hes>> made. <br><br> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<bottomejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <</switch>> <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 5, rngType: "canWash"}`>> <<elseif $NPCList[_nn].penis is "vaginaimminent" and playerChastity("vagina")>> <<He>> moans as <<he>> cums onto your $worn.genitals.name. <<He>> looks angry. <<if _sydneyChastity>> "I'll break these things one day," <<he>> says. "I need to be inside you." <<else>> "Fucking cocktease," <<he>> pouts. "Why didn't you let me fuck you?" <<if $settings.bodyWritingLevel gte 2>> <<sydneyBodywritingLocation>><<if _writingFail isnot 1>><<He>> uncaps a marker, quickly writing something on your <<bodypart _bodypart>> before you can react. Your <<bodypart _bodypart>> now reads: <<sydneyBodywriting stupid_little_fucking_sextease_bitch_fucker>><</if>> <</if>> <</if>> <br><br> <<elseif $NPCList[_nn].penis is "vaginaimminent" and _sydneyChastity>> <<He>> moans as <<he>> cums in <<his>> chastity belt. <<He>> looks angry. "I'll break this thing one day," <<he>> says. "I need to be inside you. I swear I'll fuck you senseless." <br><br> <<elseif $NPCList[_nn].penis is "vaginaimminent">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> cums before <<he>> can penetrate your <<pussy>>, ejaculating on the outside. Semen coats your outer lips and tummy. <<He>> makes a few incoherent sounds of frustration, but doesn't take it further. <br><br> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<case 4 5 6>> <<He>> ejaculates onto your <<pussy>> before <<he>> can penetrate you, sending white streams of semen running down your cunt. <<He>> pulls <<his>> own hair in frustration. <br><br> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<case 7>> <<He>> moans and strokes <<his>> cock as <<he>> cums, sending thick ropes of semen onto your <<pussy>> and ass. <<He>> seems upset at first, but then smiles as <<he>> looks down on your <<lewdness>> covered in <<his>> cum. <br><br> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<bottomejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <</switch>> <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 15, rngType: "canWash"}`>> <<elseif $NPCList[_nn].penis is "vagina">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> grabs your hair, pulling and thrusting deeply into your <<pussy>> as <<he>> cums, holding <<his>> cock deep in your womb. Semen splashes inside your cunt. <<if $settings.pregnancySpeechEnabled>>"I'm not going to stop until I put a baby in you."<</if>> <br><br> <<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vagina" "semen">> <<case 4 5 6>> <<He>> quiets and pounds <<his>> cock into you as <<he>> cums. Semen fills your <<pussy>> as you gasp at the feeling of being filled against your will. "You've been marked as mine forever. We're bound together." <br><br> <<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vagina" "semen">> <<case 7>> <<He>> convulses and grinds down on your cunt as <<he>> cums, sending thick waves of cum into your <<pussy>>. Semen oozes from your vagina and down your legs. <<He>> looks down at the mess <<hes>> made with satisfaction. "Such a waste." <br><br> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<vaginalejacstat>><<set $hygiene += 500>><<bodyliquid "vagina" "semen">> <<thighejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <</switch>> <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: "human"}`>> <<elseif $NPCList[_nn].penis is "cheeks" and playerChastity()>> <<He>> moans as <<he>> cums onto your $worn.genitals.name. <<He>> looks angry. <<if _sydneyChastity>> "I'll break these things one day," <<he>> says. "I need to be inside you." <<else>> "Fucking cocktease," <<he>> pouts. "Why didn't you let me fuck you?" <<if $settings.bodyWritingLevel gte 2>> <<sydneyBodywritingLocation>><<if _writingFail isnot 1>><<He>> uncaps a marker, quickly writing something on your <<bodypart _bodypart>> before you can react. Your <<bodypart _bodypart>> now reads: <<sydneyBodywriting stupid_little_fucking_sextease_bitch_fucker>><</if>> <</if>> <</if>> <br><br> <<elseif $NPCList[_nn].penis is "cheeks" and _sydneyChastity>> <<He>> moans as <<he>> cums in <<his>> chastity belt. <<He>> looks angry. "I'll break this thing one day," <<he>> says. "I need to be inside you. I swear I'll fuck you senseless." <br><br> <<elseif $NPCList[_nn].penis is "cheeks">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> shakes as <<he>> cums, withdrawing <<his>> cock from your cheeks and ejaculating onto your ass. <br><br> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 4 5 6>> <<He>> palms your cheeks with <<his>> hands and pulls you hard against <<him>>, ejaculating between your cheeks. You are surprised by <<his>> strength. <br><br> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 7>> <<He>> squeezes your cheeks together and grunts as <<he>> cums, sending out massive load that covers your ass and drips down your crotch. "You make me feel alive." <br><br> <<bottomejacstat>><<ejacstat>><<set $hygiene += 1000>><<bodyliquid "bottom" "semen" 2>> <</switch>> <<elseif $NPCList[_nn].penis is "anusentrance" and playerChastity("anus")>> <<He>> moans as <<he>> cums onto your $worn.genitals.name. <<He>> looks angry. <<if _sydneyChastity>> "I'll break these things one day," <<he>> says. "I need to be inside you." <<else>> "Fucking cocktease," <<he>> pouts. "Why didn't you let me fuck you?" <<if $settings.bodyWritingLevel gte 2>> <<sydneyBodywritingLocation>><<if _writingFail isnot 1>><<He>> uncaps a marker, quickly writing something on your <<bodypart _bodypart>> before you can react. Your <<bodypart _bodypart>> now reads: <<sydneyBodywriting stupid_little_fucking_sextease_bitch_fucker>><</if>> <</if>> <</if>> <br><br> <<elseif $NPCList[_nn].penis is "anusentrance" and _sydneyChastity>> <<He>> moans as <<he>> cums in <<his>> chastity belt. <<He>> looks angry. "I'll break this thing one day," <<he>> says. "I need to be inside you. I swear I'll fuck you senseless." <br><br> <<elseif $NPCList[_nn].penis is "anusentrance">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> holds your asscheek with one hand and strokes <<his>> cock with the other, ejaculating onto your bottom. Semen drips down your butt and into your crack. <br><br> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 4 5 6>> <<He>> strokes <<his>> cock and quietly ejaculates onto your ass. You feel semen dripping down your crack and feel filthy inside. <br><br> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 7>> <<He>> moans and strokes <<his>> cock as <<he>> cums, sending thick ropes of semen onto your ass and down your crotch. <br><br> <<bottomejacstat>><<ejacstat>><<set $hygiene += 1000>><<bodyliquid "bottom" "semen" 2>> <</switch>> <<recordSperm `{genital: "anus", target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 5, rngType: "canWash"}`>> <<elseif $NPCList[_nn].penis is "anusimminent" and playerChastity("anus")>> <<He>> moans as <<he>> cums onto your $worn.genitals.name. <<He>> looks angry. <<if _sydneyChastity>> "I'll break these things one day," <<he>> says. "I need to be inside you." <<else>> "Fucking cocktease," <<he>> pouts. "Why didn't you let me fuck you?" <<if $settings.bodyWritingLevel gte 2>> <<sydneyBodywritingLocation>><<if _writingFail isnot 1>><<He>> uncaps a marker, quickly writing something on your <<bodypart _bodypart>> before you can react. Your <<bodypart _bodypart>> now reads: <<sydneyBodywriting stupid_little_fucking_sextease_bitch_fucker>><</if>> <</if>> <</if>> <br><br> <<elseif $NPCList[_nn].penis is "anusimminent" and _sydneyChastity>> <<He>> moans as <<he>> cums in <<his>> chastity belt. <<He>> looks angry. "I'll break this thing one day," <<he>> says. "I need to be inside you. I swear I'll fuck you senseless." <br><br> <<elseif $NPCList[_nn].penis is "anusimminent">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> cums before <<he>> can penetrate your ass, ejaculating on the outside. Semen coats your ass and drips down your crack. <<He>> seems furious, but at <<himself>>, shaking with anger. <br><br> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 4 5 6>> <<He>> strokes <<his>> cock and ejaculates onto your ass before <<he>> can penetrate you, sending white streams of semen running down your crack. <<He>> seems upset. <br><br> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 7>> <<He>> moans and strokes <<his>> cock as <<he>> cums, sending thick ropes of semen onto your ass and crotch. <<He>> seems disappointed but smiles as <<he>> looks at your drenched ass. <br><br> <<bottomejacstat>><<ejacstat>><<set $hygiene += 1000>><<bodyliquid "bottom" "semen" 2>> <</switch>> <<recordSperm `{genital: "anus", target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 15, rngType: "canWash"}`>> <<elseif $NPCList[_nn].penis is "anus">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> moans, pounding your ass mercilessly as <<he>> cums. You whimper as you feel unwelcome semen streaming in your asshole. <br><br> <<analejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "anus" "semen">> <<recordAnusSperm "pc" $NPCList[_nn] "human">> <<case 4 5 6>> <<He>> wordlessly grabs your hair, pulling you hard onto <<his>> cock as <<he>> cums. Semen fills you as you cry out. "Shhh... it's all okay... just enjoy the warmth." <br><br> <<analejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "anus" "semen">> <<recordAnusSperm "pc" $NPCList[_nn] "human">> <<case 7>> <<He>> convulses and with a final shove, cums in your ass. Thick waves of semen pump into you. <span class="blue">You gasp as your ass overflows.</span> Cum oozes from your ass and runs down your legs. "I've marked you as mine." <br><br> <<analejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "anus" "semen">> <<thighejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <<recordAnusSperm "pc" $NPCList[_nn] "human">> <</switch>> <<elseif $NPCList[_nn].penis is "chest">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> pinches your <<breasts>> together on <<his>> cock as <<he>> cums, ejaculating onto them. "You're bound to me," <<he>> says with a smile. <br><br> <<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <<case 4 5 6>> <<He>> strokes the tip of <<his>> cock between your <<breasts>> and ejaculates onto them. Your <<breasts>> cool as semen slides down your body. <br><br> <<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <<case 7>> <<He>> puts <<his>> hand behind your neck, mashing your face against <<his>> body and bearing down on your <<breasts>>. Semen shoots between and covers your <<if $position is "missionary">>face<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">><<else>>stomach<<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">><</if>> as you gasp. <br><br> <<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <</switch>> <<elseif $NPCList[_nn].penis is "mouthentrance">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> grabs your chin with one hand and strokes <<his>> cock with the other, ejaculating onto your face. "You're beautiful." <br><br> <<set $hygiene += 500>><<bodyliquid "face" "semen">> <<case 4 5 6>> <<He>> strokes <<his>> cock and palming your head, ejaculates onto your face. Warm cum drips down your forehead and nose. <<He>> licks it off your face. <br><br> <<case 7>> <<He>> grasps your hair tightly in <<his>> fist, stroking <<his>> cock while aiming straight at your mouth. <span class="pink">You splutter and gag as thick ropes of cum push past your clenched lips and into your mouth.</span> "Swallow it all!" <<set $hygiene += 500>><<bodyliquid "face" "semen">> <<cumswallow `$NPCList[_nn].type` null `npcSemenMod($NPCList[_nn].penissize)`>> <br><br> <</switch>> <<faceejacstat>><<ejacstat>> <<elseif $NPCList[_nn].penis is "mouthimminent">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> grips hair at the nape your neck, ejaculating onto your lips as you barely brush against the tip of <<his>> penis. <<His>> face reddens in frustration. <br><br> <<case 4 5 6>> <<He>> brushes <<his>> cock against your face, causing <<him>> to ejaculate early. Cum drips down your lips and chin. Frustrated, <<he>> stamps <<his>> feet. <br><br> <<case 7>> <<He>> grasps your hair but in <<his>> excitement cums before <<he>> can enter your mouth. Thick ropes of cum cover your cheeks, chin, and into your waiting mouth. <<He>> looks frustrated. <<oralejacstat>><<cumswallow `$NPCList[_nn].type` null `npcSemenMod($NPCList[_nn].penissize)`>> <br><br> <</switch>> <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <<elseif $NPCList[_nn].penis is "mouth">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> grabs you under the chin with one hand and by your hair with the other, shoving <<his>> cock down your throat as <<he>> cums. You gag and retch as unwanted semen streams down your throat, forcing you to swallow. <br><br> <<case 4 5 6>> <<He>> grabs you by the shoulder in one hand and grasps the base of <<his>> cock in the other, quietly ejaculating into your mouth. You gag as cum fills your mouth and drips down your throat. <br><br> <<case 7>> <<He>> palms your head, wildly thrusting <<his>> cock down your throat as <<he>> cums. <span class="pink">You whimper as semen streams down your throat,</span> fills your mouth and covers your face as <<he>> flails. "Take it all. You belong to me." <br><br> <</switch>> <<oralejacstat>><<ejacstat>><<cumswallow `$NPCList[_nn].type` null `npcSemenMod($NPCList[_nn].penissize)`>> <<elseif $NPCList[_nn].penis is "feet">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> pushes your feet together and groans as <<he>> cums. Ejaculate covers your feet. <br><br> <<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "feet" "semen">> <<case 4 5 6>> <<He>> quietly cums on your feet, slickening them with semen. <br><br> <<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "feet" "semen">> <<case 7>> <<He>> grunts and thrusts <<his>> cock between your feet as <<he>> cums, splattering cum on your feet and legs in the process. <<He>> seems impressed with the mess. <br><br> <<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "feet" "semen">> <<thighejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <</switch>> <<elseif $NPCList[_nn].penis is "leftarm" and $NPCList[_nn].penis is "rightarm">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> groans as <<he>> cums, penis pulsing in your hands, covering them both in cum. <br><br> <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "semen">><<bodyliquid "rightarm" "semen">> <<case 4 5 6>> <<He>> quietly cums on your hands, slickening them with semen. <br><br> <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "semen">><<bodyliquid "rightarm" "semen">> <<case 7>> <<He>> spasms and moans, shooting thick streams of cum. You are so intent on your work you don't notice <<his>> penis is aimed at your face, which is splattered with cum in the process. "Everyone has to know who you're bound to." <br><br> <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "semen">><<bodyliquid "rightarm" "semen">> <<faceejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <</switch>> <<elseif $NPCList[_nn].penis is "leftarm">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> groans as <<he>> cums, penis sliding hotly in your left hand and covering it with cum. <br><br> <<case 3 4>> <<He>> spasms and moans, shooting thick streams of cum. You are so intent on keeping <<him>> occupied you don't notice <<his>> penis is aimed at your face, which is splattered with cum in the process. <br><br> <<faceejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <<case 6 7>> <<He>> spasms and moans, shooting thick streams of cum and splattering your chest in the process. <br><br> <<chestejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <</switch>> <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "semen">> <<elseif $NPCList[_nn].penis is "rightarm">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> groans as you work <<his>> shaft with your right hand, cumming as you give <<him>> a final squeeze. <<He>> flicks <<his>> cock clean on the ground. <br><br> <<case 4 5>> <<He>> spasms and moans, shooting thick streams of cum. You are so intent on keeping <<him>> occupied you don't notice <<his>> penis is aimed at your chest, which is splattered with cum in the process. <br><br> <<chestejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <<case 6 7>> <<He>> grunts and shoots thick ropes of semen onto your hand, making an impressive mess. <br><br> <</switch>> <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "rightarm" "semen">> <<elseif $NPCList[_nn].penis is 0>> <<switch random(1, 5)>> <<case 1>> <<He>> groans as <<he>> works <<his>> shaft and, giving <<his>> cock a final squeeze, ejaculates onto your tummy. "I love that we can do this together, don't you?" <br><br> <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <<case 2>> <<He>> rapidly rubs <<his>> cock and cums on the ground. <br><br> <<case 3>> <<He>> strokes <<his>> penis and, aiming at your ass, ejaculates on your bottom. <<He>> looks at your <<lewdness>> covered in <<his>> ejaculate and smiles. <br><br> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 4>> <<He>> strokes <<his>> penis and moans, ejaculating on your <<breasts>>. <br><br> <<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <<case 5>> <<He>> moans and rubs <<his>> cock wildly, sending cum flying all over your body. "Remember who taught me about all this." <br><br> <<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <<tummyejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <</switch>> <<elseif $NPCList[_nn].penis is "otheranus">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> groans as you fuck <<his>> ass; <<he>> catches <<his>> ejaculate in <<his>> hand and wipes it on your face. "Good <<girl>>." <br><br> <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <<case 4 5>> <<He>> moans as you pound <<his>> ass and ejaculates on the ground. <br><br> <<case 6 7>> <<He>> sighs as <<he>> ejaculates onto <<his>> own chest. <br><br> <</switch>> <<elseif ($NPCList[_nn].penis is "otheranusfrot" or $NPCList[_nn].penis is "otheranusentrance" or $NPCList[_nn].penis is "otheranusimminent") and playerChastity("penis")>> <<He>> moans as <<he>> cums onto your $worn.genitals.name. <<He>> looks angry. <<if _sydneyChastity>> "I'll break these things one day," <<he>> says. "I need to be inside you." <<else>> "Fucking cocktease," <<he>> pouts. "Why didn't you let me fuck you?" <<if $settings.bodyWritingLevel gte 2>> <<sydneyBodywritingLocation>><<if _writingFail isnot 1>><<He>> uncaps a marker, quickly writing something on your <<bodypart _bodypart>> before you can react. Your <<bodypart _bodypart>> now reads: <<sydneyBodywriting stupid_little_fucking_sextease_bitch_fucker>><</if>> <</if>> <</if>> <br><br> <<elseif ($NPCList[_nn].penis is "otheranusfrot" or $NPCList[_nn].penis is "otheranusentrance" or $NPCList[_nn].penis is "otheranusimminent") and _sydneyChastity>> <<He>> moans as <<he>> cums in <<his>> chastity belt. <<He>> looks angry. "I'll break this thing one day," <<he>> says. "I need you inside me." <br><br> <<elseif $NPCList[_nn].penis is "otheranusfrot" or $NPCList[_nn].penis is "otheranusentrance" or $NPCList[_nn].penis is "otheranusimminent">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> noisily cums as you fuck <<his>> cheeks, digging <<his>> fingers into your ass from behind and grinding your cock against <<his>> ass to finish. "Why didn't you fuck me? You did this to me, take responsibility!" <br><br> <<case 4 5>> <<He>> moans as you rub against <<his>> anus and ejaculates on the ground. <<He>> begins crying, "Why don't you fuck me? I need it!" <br><br> <<case 6 7>> <<He>> sighs as <<he>> ejaculates onto <<his>> own chest. <<He>> seems sad rather than spent. "I need the real thing." <br><br> <</switch>> <<if $settings.bodyWritingLevel gte 2>> <<sydneyBodywritingLocation>><<if _writingFail isnot 1>><<He>> uncaps a marker, quickly writing something on your <<bodypart _bodypart>> before you can react. Your <<bodypart _bodypart>> now reads: <<sydneyBodywriting stupid_little_fucking_sextease_bitch_fucker>><</if>> <</if>> <<elseif $NPCList[_nn].penis isnot 0 and $NPCList[_nn].penis.startsWith("penis") and playerChastity("penis")>> <<He>> gasps as <<he>> cums against your $worn.genitals.name. <<if _sydneyChastity>> "I'll break both of these things one day," <<he>> says. <<else>> "Fucking sextease," <<he>> pouts, glaring at your $worn.genitals.name. <<if $settings.bodyWritingLevel gte 2>> <<sydneyBodywritingLocation>><<if _writingFail isnot 1>><<He>> uncaps a marker, quickly writing something on your <<bodypart _bodypart>> before you can react. Your <<bodypart _bodypart>> now reads: <<sydneyBodywriting stupid_little_fucking_sextease_bitch_fucker>><</if>> <</if>> <</if>> <br><br> <<elseif $NPCList[_nn].penis isnot 0 and $NPCList[_nn].penis.startsWith("penis") and _sydneyChastity>> <<He>> moans loudly as <<he>> climaxes. "Hmph," <<he>> pouts, giving <<his>> chastity belt a useless tug. <<elseif $NPCList[_nn].penis isnot 0 and $NPCList[_nn].penis.startsWith("penis")>> <<switch random(1, 5)>> <<case 1 2>> <<He>> groans as <<he>> cums, dragging <<his>> cock across your ass and thighs. <br><br> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 3 4>> <<He>> moans as <<he>> digs <<his>> nails into your shoulders and grinds hard against on your <<penis>>. You're surprised by <<his>> strength. <br><br> <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <<case 5>> <<He>> screams, grabbing you by the hair and mashing <<his>> entire body against yours. Ejaculate streams from <<his>> penis, drenching you. <br><br> <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <</switch>> <!-- Special case male PC being orally serviced by male NPC with no other contact --> <<elseif $NPCList[_nn].mouth is "penis">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> cums as you fuck <<his>> mouth, groaning as <<he>> ejaculates on the ground. "I'm sorry, I just can't take anymore." <br><br> <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <<case 4 5>> <<He>> cums on the ground as you fuck <<his>> mouth. <<He>> pulls away abruptly. "Please stop, I've had enough." <br><br> <<case 6 7>> <<He>> grabs your ass in <<his>> hands, pulling your cock into <<his>> throat. <<He>> ejaculates on <<his>> chest as <<he>> throats your <<genitals>>. <br><br> <</switch>> <<elseif $NPCList[_nn].penis is "othermouth">> <<He>> shakes with arousal as <<he>> cums, wiping <<his>> wet face clean on your body. <br><br> <</if>> <</if>> <!-- Finishing moves for consensual with low anger or non-consensual with damage or high anger --> <<if _args[0] isnot "short">> <<if $consensual is 1 and $enemyanger lte 0 and !$prayerRoom>> <<switch _sydneyStatus>> <<case "pure" "pureLust">> <<He>> strokes you, <span class="green">making you feel warm inside.</span> "I... I really love you... please never stop loving me." <<lstress>><<ltrauma>><<lpain>><<violence -3>> <br><br> <<case "corrupt" "corruptLust">> <<He>> strokes your hair, <span class="green">making you feel warm inside.</span> "I love you, and not just because of what you do with me." <<lstress>><<ltrauma>><<lpain>><<violence -3>> <br><br> <<default>> <<He>> brushes your cheek with <<his>> hand. "I love you." <span class="green">Your face flushes with pleasure.</span> <<lstress>><<ltrauma>><<lpain>><<violence -3>> <br><br> <</switch>> <<elseif $consensual is 0 and $enemyhealth lte ($enemyhealthmax / 10) * 6.5>> With a sudden manic expression, <<he>> <span class="red">grips your hair and pulls your face to <<hers>>.</span> <<switch _sydneyStatus>> <<case "corrupt" "corruptLust">> "Don't test me, darling," <<he>> says in a husky, breathless whisper. "I know how to make it hurt. If you can't handle my lust, you're not ready for my wrath." <<He>> kisses you on the cheek. <<default>> "I'd be careful if I were you," <<he>> says in an eerily even tone. "My <span class="pink">forgiveness</span> only goes so far. You'd best pray it doesn't break." <<He>> strokes your hair with a trembling hand. <</switch>> After a moment, <<his>> demeanour returns to normal, and <<he>> doesn't seem to realise what <<he>> said. <<gstress>><<gtrauma>><<gpain>><<violence 3>> <br><br> <</if>> <</if>> <</widget>><<widget "ejaculation-wall">> <<set $ejaculating to 1>> <!-- Wall encounter assumes NPC at back of PC cannot reach around to front, and vice versa, and that PC cannot see what's happening behind them. Assumes NPCs believe PC may have following combat due to being stuck in wall unaided. Gloryhole removed as of v2.6 and front facing combat only left in place in case of future work--> <!-- DEBUG --> <!-- POS:$position POS2:$punishmentposition --> <!-- Female NPC1 at WALL --> <<if $NPCList[_nn].gender is "f">> <<if $consensual is 1>><!-- This is a catch-all; there are no consensual wall encounters. --> <<He>> collapses in orgasmic bliss. <<else>> <<if $NPCList[_nn].vagina is "footjob">> <<He>> gasps as <<he>> cums. Recovering, <<he>> smiles and grinds <<his>> foot to your crotch. "I bet you enjoyed that." <<gtrauma>><<gstress>><<gpain>><<violence 3>><<hitstat>> <br><br> <<elseif $NPCList[_nn].vagina is "vagina" and playerChastity("vagina")>> <<He>> gasps as <<he>> cums against your $worn.genitals.name. "Shame someone locked you up so tight," <<he>> says, giving your <<bottom>> a little smack. <br><br> <<elseif $NPCList[_nn].vagina is "vagina">> <<switch random(1, 5)>> <<case 1 2>> <<He>> groans as <<he>> cums, dragging <<his>> wet pussy across your <<bottom>> and back of your thighs as your legs press into the wall. "What sort of person gets themselves into this situation?" <br><br> <<thighejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "goo">> <<case 3 4>> <<He>> moans as <<he>> grabs your hips for leverage and grinds downs hard on your <<pussy>>, pulling your restraints tight. "It must be so embarrassing to be used like this." <br><br> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "goo">> <<case 5>> <<He>> screams, grabbing you by the thighs and mashing <<his>> crotch against your ass. Ejaculate streams from <<his>> pussy, drenching your exposed legs. "What a mess; well, you're nice and lubed up now." <br><br> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "goo">> <<thighejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "goo">> <</switch>> <<elseif $NPCList[_nn].vagina is "othermouth">> <<He>> shakes with arousal as <<he>> cums, wiping <<his>> wet face clean on your thighs. "The next one can clean that off, filthy whore." <br><br> <<elseif $NPCList[_nn].vagina is "lefthand" or $NPCList[_nn].vagina is "righthand">> <<He>> moans as <<he>> cums. "You must enjoy being used like this." <br><br> <<elseif $NPCList[_nn].vagina is "mouthentrance" or $NPCList[_nn].vagina is "mouthimminent">> <<if $head is "bound">> <<switch random(1, 5)>> <<case 1 2>> <<He>> groans and grinds <<his>> crotch roughly against your restrained face; you feel the wall shake as <<he>> cums on your mouth. <br><br> <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "goo">> <<case 3 4>> <<He>> ejaculates on your face, rubbing <<his>> clit against your nose as <<he>> finished. You feel cum running down your nose and lips. <br><br> <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "goo">> <<case 5>> <<He>> rubs <<his>> clit rapidly, squirting your face through the hole with cum. You try futilely to back away but your restraints hold you in place; you feel slime running down your face and neck. <br><br> <<faceejacstat>><<ejacstat>><<set $hygiene += 1000>><<bodyliquid "face" "goo" 2>> <</switch>> <<else>> <<He>> groans and grinds <<his>> crotch roughly against your restrained face; your head mashed against the back of the wall as <<his>> thighs shake with orgasm. <br><br> <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "goo">> <</if>> <<elseif $NPCList[_nn].vagina is "mouth">> <<He>> groans and grinds <<his>> crotch roughly against your open mouth; your head mashed against the back of the wall as <<his>> thighs shake with orgasm. <br><br> <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "goo">> <!-- following appear to be Male PC to Female Antagonist only? --> <<elseif $NPCList[_nn].vagina is "otheranus">> <<He>> shakes as <<he>> cums, grabbing you by the <<print ($player.ballsExist ? "balls" : "pussy")>> and dragging your <<penis>> deeply into <<his>> ass as <<he>> releases a final moan. <br><br> <<elseif $NPCList[_nn].vagina is "penis">> <<He>> digs <<his>> nails painfully into your legs as <<he>> cums, driving <<his>> pussy hard against your <<penis>> as <<he>> shudders with pleasure. <br><br> <<elseif ($NPCList[_nn].vagina is "penisimminent" or $NPCList[_nn].vagina is "penisentrance") and playerChastity("penis")>> <<He>> gasps as <<he>> cums against your $worn.genitals.name. "Shame someone locked you up so tight," <<he>> says, giving your <<bottom>> a little smack. <br><br> <<elseif $NPCList[_nn].vagina is "penisimminent" or $NPCList[_nn].vagina is "penisentrance">> <<He>> moans as <<he>> cums on your throbbing cock. <br><br> <<elseif ($NPCList[_nn].vagina is "otheranusfrot" or $NPCList[_nn].vagina is "otheranusentrance") and playerChastity("penis")>> <<He>> gasps as <<he>> cums against your $worn.genitals.name. "Shame someone locked you up so tight," <<he>> says, giving your <<bottom>> a little smack. <br><br> <<elseif $NPCList[_nn].vagina is "otheranusfrot" or $NPCList[_nn].vagina is "otheranusentrance">> <<He>> swivels <<his>> ass against your <<penis>> as <<he>> cums. <br><br> <<elseif $NPCList[_nn].vagina is "frot" and playerChastity("penis")>> <<He>> gasps as <<he>> cums against your $worn.genitals.name. "Shame someone locked you up so tight," <<he>> says, giving your <<bottom>> a little smack. <br><br> <<elseif $NPCList[_nn].vagina is "frot">> <<He>> grabs your legs and pulls you against <<his>> clit hard against your <<penis>> as <<he>> cums. <br><br> <!-- Special case male PC with female NPC --> <<elseif $NPCList[_nn].mouth is "penis">> <<He>> cums as <<he>> sucks your <<penis>>, dropping away as <<he>> gasps for air. <br><br> <<else>> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> trembles with orgasm. You hear <<him>> say, "You must be so embarrassed to be on display like this." <br><br> <<case 4 5 6>> <<He>> sighs quietly as <<he>> cums, smacking you as <<he>> leaves. "See you around, <<bitch>>." You feel embarrassed to have your <<lewdness>> on display. <br><br> <<case 7>> <<He>> rapidly rubs <<his>> clit and screams as <<he>> cums; <<his>> pussy squirting and covering you in ejaculate. <br><br> <<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "goo">> <</switch>> <</if>> <</if>> <</if>> <!-- Male Gender NPC at WALL --> <<if $NPCList[_nn].gender is "m">> <!-- Start simplified strap-on sub-case --> <<if $NPCList[_nn].penisdesc.includes("strap-on")>> <<if $consensual is 0>><!-- Non-consen strap-on case --> <<switch $NPCList[_nn].penis>> <<case "vagina" "vaginaimminent" "vaginaentrance" "anus" "anusentrance" "anusimminent" "thighs">> <<switch random(1, 3)>> <<case 1>> <<He>> shakes as <<he>> cums, slapping you across the ass with <<his>> $NPCList[_nn].penisdesc. <br><br> <<case 2>> <<He>> cums loudly, then spanks your ass with <<his>> $NPCList[_nn].penisdesc. "Something to remember me by, whore." <br><br> <<case 3>> <<He>> cums quietly, rubbing <<his>> $NPCList[_nn].penisdesc along your back. <br><br> <</switch>> <<case "mouth">> <<He>> cums loudly, shoving <<his>> $NPCList[_nn].penisdesc deep into your throat, making you gag. Tears stream down your face. <br><br> <<case "mouthentrance" "mouthimminent" "chest" "lefthand" "righthand">> <<switch random(1, 3)>> <<case 1>> <<He>> shakes as <<he>> cums, slapping you across the face with <<his>> $NPCList[_nn].penisdesc. <br><br> <<case 2>> <<He>> cums loudly, then laughs, wiping <<his>> $NPCList[_nn].penisdesc of on your hair. <br><br> <<case 3>> <<He>> cums silently, mouth agape, rubbing <<his>> $NPCList[_nn].penisdesc against your cheek. <br><br> <</switch>> <<default>> <<He>> moans as <<he>> cums, rubbing <<his>> clit with the base of <<his>> $NPCList[_nn].penisdesc. <br><br> <</switch>> <<else>><!-- Consensual strap-on case --> <<switch $NPCList[_nn].penis>> <<case "vagina" "vaginaimminent" "vaginaentrance" "anus" "anusentrance" "anusimminent" "thighs">> <<He>> shakes as <<he>> cums, wiping <<his>> $NPCList[_nn].penisdesc off on your ass. <br><br> <<case "mouth">> <<He>> cums loudly, grinding <<his>> $NPCList[_nn].penisdesc against <<his>> own crotch with <<his>> hand as <<he>> cums. <br><br> <<case "mouthentrance" "mouthimminent" "chest" "lefthand" "righthand">> <<He>> cums silently, mouth agape, rubbing <<his>> $NPCList[_nn].penisdesc against your cheek. <br><br> <<default>> <<He>> moans as <<he>> cums, rubbing <<his>> clit with the base of <<his>> $NPCList[_nn].penisdesc. <br><br> <</switch>> <</if>> <<elseif $consensual is 1>><!-- This is a catch-all; there are no consensual wall encounters. --> <<He>> collapses in orgasmic bliss. <<else>> <<if _condomResult is "leaked">> <span class="red">The condom broke.</span> <<elseif _condomResult is "burst">> <span class="red">The tip of the condom bursts and rips, exposing the head of <<his>> penis.</span> <</if>> <<if _condomResult is "contained">> <<genericCondomEjaculation>> <<elseif $NPCList[_nn].penis is "idle">> <<He>> groans as a wet patch forms on <<his>> trousers. You barely stifle a laugh at the pathetic display. <br><br> <<elseif $NPCList[_nn].penis is "thighs">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> shakes as <<he>> cums, pulling <<his>> $NPCList[_nn].penisdesc out and ejaculating onto the backs of your thighs. You feel <<him>> wipe <<his>> cock clean on your <<bottom>>. <br><br> <<thighejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <<case 4 5 6>> <<He>> grabs your legs, slamming <<his>> crotch hard into your <<bottom>> as <<he>> cums and ejaculates onto your tummy and the wall. <br><br> <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <<case 7>> <<He>> groan as <<he>> cums, ejaculating a massive load that covers your thighs and tummy; cum drips coolly down your legs, pooling on the ground. "Now your nice and greasy for the next sucker that comes along." <br><br> <<thighejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <<tummyejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <</switch>> <<elseif $NPCList[_nn].penis is "vaginaentrance" and playerChastity("vagina")>> <<He>> gasps as <<he>> cums against your $worn.genitals.name. "Shame someone locked you up so tight," <<he>> says, giving your <<bottom>> a little smack. <br><br> <<elseif $NPCList[_nn].penis is "vaginaentrance">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> shoves <<his>> thumb into your ass and groans as <<he>> ejaculates onto your <<pussy>>. You feel semen coating your outer lips and pooling around your knees. <br><br> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 5, rngType: "canWash"}`>> <<case 4 5 6>> <<He>> strokes <<his>> $NPCList[_nn].penisdesc and ejaculates onto your <<pussy>> without a word, sending streams of semen running down your cunt; you can feel <<him>> flicking <<his>> cock dry on your <<bottom>>. <br><br> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 5, rngType: "canWash"}`>> <<case 7>> <<He>> moans and strokes <<his>> $NPCList[_nn].penisdesc as <<he>> cums, sending thick ropes of semen onto your <<pussy>> and ass; <<he>> wipes <<his>> cock on your thighs. <br><br> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<bottomejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 5, rngType: "canWash"}`>> <</switch>> <<elseif $NPCList[_nn].penis is "vaginaimminent" and playerChastity("vagina")>> <<He>> gasps as <<he>> cums onto your $worn.genitals.name. "Shame someone locked you up so tight," <<he>> says, giving your <<bottom>> a little smack. <br><br> <<elseif $NPCList[_nn].penis is "vaginaimminent">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> cums before <<he>> can penetrate your <<pussy>>, ejaculating on the outside. Semen coats your outer lips and tummy; <span class="red"><<he>> slaps you across the ass hard in anger</span> as you jerk in the restraints. <<gstress>><<gtrauma>><<gpain>><<violence 6>><<bruise bottom>><<hitstat>> <br><br> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 15, rngType: "canWash"}`>> <<case 4 5 6>> <<He>> ejaculates onto your <<pussy>> before <<he>> can penetrate you, sending warm streams of semen running down your cunt; <<he>> groans in disappointment. <br><br> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 15, rngType: "canWash"}`>> <<case 7>> <<He>> moans and strokes <<his>> $NPCList[_nn].penisdesc as <<he>> cums, sending thick ropes of semen onto your <<pussy>> and ass. "Such a filthy little <<bitch>>." <br><br> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<bottomejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 15, rngType: "canWash"}`>> <</switch>> <<elseif $NPCList[_nn].penis is "vagina">> <<switch $NPCList[_nn].penissize>> <<case 4>> <<He>> convulses and grinds down on your crotch as <<he>> cums, <<his>> $NPCList[_nn].penisdesc sending thick waves of cum into your <<pussy>>. Semen oozes from your vagina and down your legs. "Doesn't look like you can hold my load, you fragile cunt." <br><br> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<vaginalejacstat>><<set $hygiene += 500>><<bodyliquid "vagina" "semen">> <<thighejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <<recordVaginalSperm "pc" $NPCList[_nn] "human">> <<case 1>> <<He>> moans as a dribble of cum leaks from <<his>> $NPCList[_nn].penisdesc and onto the outside of your <<genitals>>. <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 15, rngType: "canWash"}`>> <br><br> <<default>> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> grabs your thighs for leverage, pulling and thrusting deeply into your <<pussy>> as <<he>> cums, holding <<his>> $NPCList[_nn].penisdesc deep in your womb. Semen splashes inside your bruised cunt as your thighs mash into the wall. <br><br> <<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vagina" "semen">> <<recordVaginalSperm "pc" $NPCList[_nn] "human">> <<case 4 5 6>> <<He>> quiets and grabs your hips, pounding <<his>> $NPCList[_nn].penisdesc into you as <<he>> cums. Semen fills your <<pussy>> as you jerk in the restraints. <br><br> <<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vagina" "semen">> <<recordVaginalSperm "pc" $NPCList[_nn] "human">> <<case 7>> <<He>> convulses and grinds on your cunt as <<he>> cums, smashing your <<clit>> and sending thick waves of cum into your <<pussy>>. Semen oozes from your vagina and down your legs, pooling around your knees. "I bet you enjoy being fucked by faceless cocks. What a dirty slut." <br><br> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<vaginalejacstat>><<set $hygiene += 500>><<bodyliquid "vagina" "semen">> <<thighejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <<recordVaginalSperm "pc" $NPCList[_nn] "human">> <</switch>> <</switch>> <<elseif $NPCList[_nn].penis is "cheeks">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> shakes as <<he>> cums, withdrawing <<his>> $NPCList[_nn].penisdesc from your cheeks and ejaculating onto your <<bottom>>. <br><br> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 4 5 6>> <<He>> pinches the top of your cheeks with <<his>> hands and smashes your thighs hard against the wall, ejaculating between your cheeks. <br><br> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 7>> <<He>> squeezes your cheeks together and grunts as <<he>> cums. You feel a flood of warm cum dripping down your <<bottom>> and crotch. "Such a sloppy mess, I guess you can clean it up later." <br><br> <<bottomejacstat>><<ejacstat>><<set $hygiene += 1000>><<bodyliquid "bottom" "semen" 2>> <</switch>> <<elseif $NPCList[_nn].penis is "anusentrance" and playerChastity("anus")>> <<He>> gasps as <<he>> cums onto your $worn.genitals.name. "Shame someone locked you up so tight," <<he>> says, giving your <<bottom>> a little smack. <br><br> <<elseif $NPCList[_nn].penis is "anusentrance">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> <span class="blue">slaps your asscheek with one hand</span> and strokes <<his>> $NPCList[_nn].penisdesc with the other, ejaculating onto your bottom. Semen drips down your butt and into your crack. <<gstress>><<gtrauma>><<gpain>><<violence 3>><<bruise bottom>><<hitstat>> <br><br> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 4 5 6>> <<He>> strokes <<his>> $NPCList[_nn].penisdesc and quietly ejaculates onto your <<bottom>>. You feel semen dripping down your crack and feel filthy inside. <br><br> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 7>> <<He>> moans and strokes <<his>> $NPCList[_nn].penisdesc as <<he>> cums; you feel the splash of wet semen cover your <<bottom>> and drip down your crotch. "I think you'd have enjoyed being fucked in the ass. Maybe next time." <br><br> <<bottomejacstat>><<ejacstat>><<set $hygiene += 1000>><<bodyliquid "bottom" "semen" 2>> <</switch>> <<recordSperm `{genital: "anus", target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 5, rngType: "canWash"}`>> <<elseif $NPCList[_nn].penis is "anusimminent" and playerChastity("anus")>> <<He>> gasps as <<he>> cums onto your $worn.genitals.name. "Shame someone locked you up so tight," <<he>> says, giving your <<bottom>> a little smack. <br><br> <<elseif $NPCList[_nn].penis is "anusimminent">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> cums before <<he>> can penetrate your wriggling ass, ejaculating on the outside. You feel semen coat your <<bottom>> and drip warmly down your crack. <span class="red"><<He>> smacks your ass angrily.</span> and your body jerks in response. <<gstress>><<gtrauma>><<gpain>><<violence 6>><<bruise bottom>><<hitstat>> <br><br> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 4 5 6>> <<He>> strokes <<his>> $NPCList[_nn].penisdesc and ejaculates onto your <<bottom>> before <<he>> can penetrate you, sending streams of semen running down your crack; <<he>> groans in disappointment. <br><br> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 7>> <<He>> moans and strokes <<his>> $NPCList[_nn].penisdesc as <<he>> cums, you feel a flood of semen on your <<bottom>> and crotch. "I bet you feel like a disgusting pig." <br><br> <<bottomejacstat>><<ejacstat>><<set $hygiene += 1000>><<bodyliquid "bottom" "semen" 2>> <</switch>> <<recordSperm `{genital: "anus", target: "pc", spermOwner: $NPCList[_nn], spermType: "human", rngModifier: 15, rngType: "canWash"}`>> <<elseif $NPCList[_nn].penis is "anus">> <<switch $NPCList[_nn].penissize>> <<case 4>> <<He>> convulses and, with a final shove of <<his>> $NPCList[_nn].penisdesc cums in your ass. Thick waves of semen pump into you. <span class="blue">You gasp as your ass overflows;</span> cum oozes from your <<bottom>> and runs down your legs. "You need to learn how to take a cock, you sloppy pig." <<analejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "anus" "semen">> <<thighejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <<recordAnusSperm "pc" $NPCList[_nn] "human">> <br><br> <<case 1>> <<He>> moans as a pathetic dribble of cum leaks from <<his>> $NPCList[_nn].penisdesc and onto your <<bottom>>. <br><br> <<default>> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> moans, pounding your ass mercilessly as <<he>> cums. You whimper as you take <<his>> entire length and feel unwelcome semen streaming in your asshole. <br><br> <<analejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "anus" "semen">> <<recordAnusSperm "pc" $NPCList[_nn] "human">> <<case 4 5 6>> <<He>> grabs your hips for leverage, pushing hard into your <<bottom>> as <<he>> cums, mashing your thighs into the wall. Semen fills you as you cry out, <<his>> girth stretching your anus. <br><br> <<analejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "anus" "semen">> <<recordAnusSperm "pc" $NPCList[_nn] "human">> <<case 7>> <<He>> convulses and with a final shove, cums in your ass. Thick waves of semen pump into you. <span class="blue">You gasp as your ass overflows;</span> cum oozes from your <<bottom>> and runs down your legs. "I can't see your face, but I bet you love being fucked in the ass." <br><br> <<analejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "anus" "semen">> <<thighejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <<recordAnusSperm "pc" $NPCList[_nn] "human">> <</switch>> <</switch>> <<elseif $NPCList[_nn].penis is "chest">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> pinches your <<breasts>> together on <<his>> $NPCList[_nn].penisdesc as <<he>> cums, ejaculating onto them. <br><br> <<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <<case 4 5 6>> <<He>> grabs your hair to force you to look at <<him>> while <<he>> strokes the tip of <<his>> $NPCList[_nn].penisdesc between your <<breasts>> and wordlessly ejaculates onto them. Your <<breasts>> cool as semen slides down your body. <br><br> <<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <<case 7>> <<He>> grabs your hair for leverage and bears down on your <<breasts>>, grunting as <<he>> cums; semen shoots between your <<breasts>> and onto the wall. <<He>> laughs and <span class="purple">slaps <<his>> $NPCList[_nn].penisdesc across your helpless face to dry it off.</span> <<gtrauma>><<gstress>><<violence 1>><<bruise face>><<hitstat>> <br><br> <<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <</switch>> <<elseif $NPCList[_nn].penis is "mouthentrance">> <<switch $NPCList[_nn].penissize>> <<case 4>> <<He>> grips <<his>> $NPCList[_nn].penisdesc tightly, working it while aiming straight at your mouth. <span class="pink">You splutter and gag as thick ropes of cum push past your clenched lips and into your mouth.</span> "You need to learn to swallow, <<bitch>>." <<cumswallow `$NPCList[_nn].type` null `npcSemenMod($NPCList[_nn].penissize)`>> <br><br> <<case 1>> <<He>> moans as a pathetic dribble of cum leaks from <<his>> $NPCList[_nn].penisdesc and down your chin. It's all you can do to keep from laughing. <br><br> <<default>> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> cups your chin with one hand and strokes <<his>> $NPCList[_nn].penisdesc with the other, ejaculating onto your face. "You must be so embarrassed being used like this." <br><br> <<case 4 5 6>> <<He>> strokes <<his>> $NPCList[_nn].penisdesc and, holding your hair, ejaculates onto your face. Warm cum drips down your forehead and nose. "I bet you enjoy being used like this." <br><br> <<case 7>> <<He>> grasps your hair tightly in <<his>> fist, stroking <<his>> $NPCList[_nn].penisdesc while aiming straight at your mouth. <span class="pink">You splutter and gag as thick ropes of cum push past your clenched lips and into your mouth.</span> "You need to learn to swallow, <<bitch>>." <<cumswallow `$NPCList[_nn].type` null `npcSemenMod($NPCList[_nn].penissize)`>> <br><br> <</switch>> <</switch>> <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <<elseif $NPCList[_nn].penis is "mouthimminent">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> grips hair at the top of your head, ejaculating onto your lips as you barely brush against the tip of <<his>> penis. <br><br> <<case 4 5 6>> <<He>> brushes <<his>> $NPCList[_nn].penisdesc against your face, causing <<him>> to ejaculate early. Cum drips down your lips and chin; frustrated, <<he>> wipes the cum off your face and shoves it in your mouth. <<cumswallow `$NPCList[_nn].type` null `npcSemenMod($NPCList[_nn].penissize)`>> <br><br> <<case 7>> <<He>> grasps your head but in <<his>> excitement cums before <<he>> can enter your mouth. Thick ropes of cum cover your cheeks, chin, and into your waiting mouth. <<He>> looks frustrated. <br><br> <<oralejacstat>><<cumswallow `$NPCList[_nn].type` null `npcSemenMod($NPCList[_nn].penissize)`>> <</switch>> <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <<elseif $NPCList[_nn].penis is "mouth">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> grabs you under the chin with one hand and by your hair with the other, shoving <<his>> $NPCList[_nn].penisdesc down your throat as <<he>> cums. You gag and retch as unwanted semen streams down your throat, forcing you to swallow. <br><br> <<case 4 5 6>> <<He>> grabs your hair as <<he>> mashes <<his>> $NPCList[_nn].penisdesc into your mouth, ejaculating with a moan. You gag as cum fills your mouth and drips down your chin. <br><br> <<case 7>> <<He>> grasps your hair by the temples, wildly thrusting <<his>> $NPCList[_nn].penisdesc down your throat as <<he>> cums. <span class="pink">You whimper as semen streams down your throat,</span> fills your mouth and covers your face as <<he>> flails. "I bet you enjoy being tied up and face fucked." <<faceejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <<gstress>><<gtrauma>><<gpain>><<violence 3>><<bruise neck>><<hitstat>> <br><br> <</switch>> <<oralejacstat>><<ejacstat>><<cumswallow `$NPCList[_nn].type` null `npcSemenMod($NPCList[_nn].penissize)`>> <<elseif $NPCList[_nn].penis is "feet">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> pushes your feet together and groans as <<he>> cums. Ejaculate covers your feet. <br><br> <<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "feet" "semen">> <<case 4 5 6>> <<He>> quietly cums on your feet, slickening them with semen. <br><br> <<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "feet" "semen">> <<case 7>> <<He>> grunts and thrusts <<his>> $NPCList[_nn].penisdesc between your feet as <<he>> cums, splattering cum on your feet and legs in the process that pools around your knees. <br><br> <<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "feet" "semen">> <<thighejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <</switch>> <!-- Removed hands outcomes --> <<elseif $NPCList[_nn].penis is 0>> <<if $head is "bound">> <<switch random(1, 3)>> <<case 1 2>> <<He>> groans and rubs <<his>> cock, spraying your face with ejaculate through the hole. <br><br> <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "goo">> <<case 3>> <<He>> moans as <<he>> ejaculates onto the ground. <<He>> reaches through the wall, <span class="purple">shoving <<his>> fingers down your throat.</span> You gag and retch as <<he>> laughs. "Next time I'm throating you <<bitch>>; better train up." <<gstress>><<gtrauma>><<gpain>><<violence 3>><<bruise neck>><<hitstat>> <br><br> <</switch>> <<else>> <<switch random(1, 4)>> <<case 1 2 3>> <<He>> groans as <<he>> works <<his>> shaft and, giving <<his>> $NPCList[_nn].penisdesc a final squeeze, ejaculates on you. "What a lovely cum dumpster you are." <br><br> <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <<case 4>> <<He>> moans and rubs <<his>> cock wildly, sending cum flying all over you and the wall. <<He>> wipes <<his>> penis clean on your body. <br><br> <<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <<tummyejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <</switch>> <</if>> <<elseif $NPCList[_nn].penis is "otheranus">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> groans as you fuck <<his>> ass; <<he>> catches <<his>> ejaculate in <<his>> hand and wipes it on your <<bottom>>. <br><br> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 4 5>> <<He>> moans as you pound <<his>> ass and ejaculates on the ground. <br><br> <<case 6 7>> <<He>> sighs as <<he>> ejaculates onto <<his>> own chest. <br><br> <</switch>> <<elseif ($NPCList[_nn].penis is "otheranusfrot" or $NPCList[_nn].penis is "otheranusentrance" or $NPCList[_nn].penis is "otheranusimminent") and playerChastity("penis")>> <<He>> gasps as <<he>> cums onto your $worn.genitals.name. "Shame someone locked you up so tight," <<he>> says, giving your <<bottom>> a little smack. <br><br> <<elseif $NPCList[_nn].penis is "otheranusfrot" or $NPCList[_nn].penis is "otheranusentrance" or $NPCList[_nn].penis is "otheranusimminent">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> noisily cums as you fuck <<his>> cheeks, digging <<his>> nails into your <<bottom>> from behind and grinding your <<penis>> against <<his>> ass to finish. <br><br> <<case 4 5>> <<He>> moans as you rub against <<his>> anus and ejaculates on the ground; <<he>> seems disappointed. <br><br> <<case 6 7>> <<He>> sighs as <<he>> ejaculates onto <<his>> own chest. <br><br> <</switch>> <<elseif $NPCList[_nn].penis is "penis" or $NPCList[_nn].penis is "penisentrance" or $NPCList[_nn].penis is "penisimminent">> <<He>> shakes with arousal as <<he>> cums all over your <<penis>>. <<set _postOrgasmSpeech to `"That was awesome."`>> <!-- Special case male PC being orally serviced by male NPC with no other contact --> <<elseif $NPCList[_nn].mouth is "penis">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> cums as <<he>> pleasures you with <<his>> mouth; <<he>> catches <<his>> semen and rubs it into your <<bottom>>. "Don't you look lovely now." <br><br> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 4 5>> <<He>> cums on the ground, biting your <<penis>> as <<he>> stops abruptly. "I'm done now." <br><br> <<case 6 7>> <<He>> grabs you by the <<print ($player.ballsExist ? "balls" : "pussy")>> and painfully drives your <<penis>> into <<his>> throat; <<he>> ejaculates on <<his>> chest as <<he>> throats your cock. <br><br> <</switch>> <<elseif $NPCList[_nn].penis is "othermouth">> <<He>> shakes with arousal as <<he>> cums, wiping <<his>> wet face clean on your back. <br><br> <</if>> <</if>> <</if>> <!-- Finishing moves for damage only for wall --> <<if _args[0] isnot "short">> <<if $punishmentposition is "wall">> <<if $consensual is 0 and $enemyhealth lte ($enemyhealthmax / 10) * 7.5>> <<He>> <span class="red">angrily whips your ass and thighs with <<his>> belt; you jerk in the restraints, screaming in pain.</span> "What are you thinking, trying to fight me when you're bound like this?" <<gstress>><<gtrauma>><<gpain>><<violence 6>> <br><br> <<elseif $consensual is 0 and $enemyhealth lte ($enemyhealthmax / 10) * 8.5>> <<He>> <span class="pink">slaps your ass back and forth with <<his>> hands, bringing tears to your eyes.</span> "That'll teach you to fight with me." <<gstress>><<gtrauma>><<gpain>><<violence 3>> <br><br> <<elseif $consensual is 0 and $enemyhealth lte ($enemyhealthmax / 10) * 9.5>> <<He>> <span class="pink">spits on your <<bottom>>.</span> "You seem to need reminding that you're helpless here, you cheeky cunt." <<gstress>><<gtrauma>><<gpain>><<violence 1>> <br><br> <</if>> <</if>> <</if>> <</widget>><<widget "ejaculation">> <<set $ejaculating to 1>> <!-- Dev Notes --> <!-- Use <<pussy>> <<breasts>> <<bottom>> in verbiage as PC status --> <!-- Use <<penis>> <<genitals>> in verbiage as status --> <!-- NPC references include: <<him>> <<he>> <<He>> <<himself>> and <<hes>> for he's/she's --> <!-- <<pher>> <<pshe>> refers to PC in third person. Also <<phim>> --> <!-- if $leftarm is "bound" and $rightarm is "bound" can be used as check for bound arms. NPC restraining is "grappled" --> <!-- $mouthstate indicates what PC mouth is doing --> <!-- $position is "wall" can be used as check for body through wall --> <!-- $punishmentposition "gloryhole" is used for both consensual and non-consensual encounters --> <!-- $walltype "pillory" or "cleanpillory" for pillory. Note head, arms are bound in pillory. CleanPillory used in school, Pillory outside police events, mostly as a graphical switch --> <!-- $position = "doggy" or "missionary" for PC body position on back or front --> <!-- $submissive can be used as check. lte 850 is dominant, gte 1150 is submissive --> <!-- <<violence 1>> is clasped mouth, 3 grab throat, 4 hair yank, 5 strangle 10 punch/kick thigh 20 gut punch. Raises stress, trauma, pain at same time.--> <!-- <<violence +#>> should be used with <<gstress>><<gtrauma>><<gpain>> <<violence -#>> should be used with <<lstress>><<ltrauma>><<lpain>> --> <!-- <span class="red"> text-here</span> can be used to depict adverse events. red-pink-purple-blue-lblue-teal-green from least to most favourable --> <!-- <<ggcontrol>> shows ++ Control, <<gcontrol>> shows + Control. GG used with <<control 25>> <<llcontrol>><<lcontrol>> for -- and - Control loss. Higher control is better.--> <!-- <<controlloss>> is used as consensual to non-consen switch --> <!-- <<lstress>> <<stress -1>> similar to above. Less stress is better. <<ltrauma>> <<trauma -1>> same. Less trauma is better. <<lpain>><<pain -1>> likewise.--> <!-- <<tearful>> is used as in: "Your body feels sensitive as " or "You feel horny as "--> <!-- <<bitch>>. is used as "bitch." --> <!-- <<lewdness>> as in "You're stuck in town with your <<lewdness>> displayed" and contains text on level of undress (bare chest / undergarments / genitals) If clothed, returns "lewdness." Useful for pillory event.--> <!-- $player.gender_appearance notes PC apparent gender, for use as M/F switch --> <!-- <<girl>><<girl>>,<<girl>>. used for boy/girl as PC gender --> <!-- $NPCList[x].gender and $NPCList[x].pronoun note NPC sexual gender and physical appearance gender. Pronoun sets breasts (F) and Gender sets M/F genitals penis/vagina --> <!-- START MAIN LOOP --> <<for _nn to 0;_nn lt $enemynomax; _nn++>> <<if $NPCList[_nn].active is "active" and $NPCList[_nn].stance isnot "defeated">> <<personselect _nn>> <<if $sexavoid is 0 or $rapeavoid is 0>> <<if $consensual is 1>> <<famesex 1>> <<else>> <<famerape 1>> <</if>> <</if>> <<set $pronoun to $NPCList[_nn].pronoun>> <<if $enemytype is "man" or $enemytype is "plant">> <<set $NPCList[_nn].intro to 1>> <<else>> <<set $pronoun to "i">> <</if>> <!-- DEBUG --> /% GENDER:<<girl>> GEN:<<genitals>>. BR:<<breasts>>. BOT:<<bottom>>. PUS:<<pussy>>. PEN:<<penis>>. PC:<<phim>>.<br> %/ /% POS:$position L-ARM:$leftarm R-ARM:$rightarm<br> MOU:$mouthstate<br> %/ /% ANG:$enemyanger MAX:$enemyangermax ENNUM:$enemyno ENHEALTH:$enemyhealth ENHEALTHMX:$enemyhealthmax<br> %/ /% STR:$stress TRA:$trauma PAIN:$pain CON:$control<br> %/ /% NAMED-NPC:<<print $npc[0]>><br><br> %/ /% PEN:$penis VAG:$vagina MOU:$mouth GEN:$pronoun<br><br> %/ /% NPC: _nn VAG: $NPCList[_nn].vagina PEN: $NPCList[_nn].penis MOU: $NPCList[_nn].mouth <br> %/ <!-- Pulling out is for couches --> <<if ($pullOut or $NPCList[_nn].pregnancyAvoidance gte 80) and ["vagina","vaginadouble","anus","anusdouble"].includes($NPCList[_nn].penis) and !wearingCondom(_nn)>> <<if _nn is $leglocktarget>> <<He>> tries to pull out at the last minute, but <span class="lewd">you <<if $position is "missionary">>lock your legs even tighter<<else>>push back even harder<</if>>, taking <<him>> all the way in as <<he>> hits <<his>> peak.</span> <<elseif $pullOut and $enemyanger gte 60>> <span class="red"><<He>> doesn't pull out.</span> <<else>> <span class="green"><<He>> pulls out at the last minute.</span> <<if $NPCList[_nn].penis is "vagina" or $NPCList[_nn].penis is "vaginadouble">> <<set $NPCList[_nn].penis to "vaginaentrance">> <<set $vaginastate to ($vaginastate is "doublepenetrated" ? "penetrated" : "imminent")>> <<set _pullOutVagina to true>> <<elseif $NPCList[_nn].penis is "anus" or $NPCList[_nn].penis is "anusdouble">> <<set $NPCList[_nn].penis to "anusentrance">> <<set $anusstate to ($anusstate is "doublepenetrated" ? "penetrated" : "imminent")>> <<set _pullOutAnus to true>> <</if>> <</if>> <</if>> <<unset _condomResult>> <<if wearingCondom(_nn)>> <<if $NPCList[_nn].condom.state is "defective">> <<set _condomResult to "leaked">> <<elseif $NPCList[_nn].condom.state is "sabotaged">> <<set _condomResult to "burst">> <<else>> <<set _condomResult to "contained">> <</if>> <<else>> <<set _condomResult to "none">> <</if>> <!-- NAMED NPCs: Named NPCs without custom modules use simple text to stay in character --> <<if $npc[$npcrow.indexOf(_nn)] is "Eden">> <<ejaculation-eden _args[0]>> <<elseif $npc[$npcrow.indexOf(_nn)] is "Kylar">> <<ejaculation-kylar _args[0]>> <<elseif $npc[$npcrow.indexOf(_nn)] is "Robin">> <<ejaculation-robin _args[0]>> <<elseif $npc[$npcrow.indexOf(_nn)] is "Leighton">> <<ejaculation-leighton _args[0]>> <<elseif $npc[$npcrow.indexOf(_nn)] is "Sydney">> <<ejaculation-sydney _args[0]>> <<elseif $npc[$npcrow.indexOf(_nn)] is "Alex">> <<ejaculation-alex _args[0]>> <<elseif $npc[$npcrow.indexOf(_nn)] is "Gwylan">> <<ejaculation-gwylan _args[0]>> <<elseif $position is "wall" and ($walltype is "pillory" or $walltype is "cleanpillory")>> <<ejaculation-pillory _args[0]>> <<elseif $position is "wall">> <<ejaculation-wall _args[0]>> <<elseif $punishmentposition is "gloryhole" or $gloryhole>> <<ejaculation-gloryhole _args[0]>> <<elseif $NPCList[_nn].type is "plant">> <<ejaculation-plant _args[0]>> <<elseif $NPCList[_nn].fullDescription is "Ivory Wraith">> <<ejaculation-wraith _args[0]>> <!-- New Named NPCs or PC unique positions should be added above, otherwise below captures reaction --> <<elseif ($npcrow.includes(_nn))>> <<if $NPCList[_nn].vagina isnot "none" and $NPCList[_nn].penis is "none">> <<He>> convulses in orgasmic bliss. <</if>> <<if $NPCList[_nn].penis is "idle">> <<He>> groans as a wet patch forms on <<his>> trousers. <</if>> <<if npcHasStrapon(_nn)>> <<switch $NPCList[_nn].penis>> <<case leftDildoAnus rightDildoAnus>> <<He>> ?orgasmMoans as <<his>> body convulses, <<his>> ass cheeks trembling against your $currentSexToyLeft.name.<<penis>> <<default>> <<He>> ?orgasmMoans and shivers in orgasmic bliss, grinding the strap-on against <<his>> genitals. <</switch>> <<elseif _condomResult is "contained">> <<genericCondomEjaculation>> <<else>> <<if $NPCList[_nn].penis isnot "none" and (_condomResult is "leaked" or _condomResult is "burst")>> <<if _condomResult is "leaked">> <span class="red">The condom broke.</span> <<elseif _condomResult is "burst">> <span class="red">The tip of the condom bursts and rips, exposing the head of <<his>> penis.</span> <</if>> <</if>> <<if $NPCList[_nn].penis is "otheranusfrot">> <<He>> ejaculates into <<his>> hand as <<he>> rubs <<his>> ass against your <<penis>>. <</if>> <<if $NPCList[_nn].penis is "otheranus">> <<He>> ?orgasmMoans and ejaculates <<print either("onto <<his>> chest","into the air","into <<his>> hand")>> as <<he>> <<print either("fucks","slams","thrusts")>> <<his>> ass against your <<penis>>. <</if>> <<if $NPCList[_nn].penis is "thighs">> <<He>> ejaculates onto your thighs. <<thighejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <</if>> <<if $NPCList[_nn].penis is "vaginaentrance" and playerChastity("vagina")>> <<He>> ejaculates onto your $worn.genitals.name. <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<elseif $NPCList[_nn].penis is "vaginaentrance" and !npcHasStrapon(_nn)>> <<if playerChastity("vagina")>> <<He>> ejaculates onto your $worn.genitals.name. <<else>> <<He>> ejaculates onto your <<pussy>>. <</if>> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: $enemytype is "man" ? "human" : $NPCList[_nn].type, rngModifier: 5, rngType: "canWash"}`>> <</if>> <<if $NPCList[_nn].penis is "vaginaimminent" and playerChastity("vagina")>> <<He>> ejaculates onto your $worn.genitals.name. <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<elseif $NPCList[_nn].penis is "vaginaimminent">> <<if playerChastity("vagina")>> <<He>> ejaculates onto your $worn.genitals.name. <<else>> <<He>> ejaculates onto your <<pussy>>. <</if>> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: $enemytype is "man" ? "human" : $NPCList[_nn].type, rngModifier: 15, rngType: "canWash"}`>> <</if>> <<if $NPCList[_nn].penis is "vagina">> <<He>> ejaculates deep into your womb. <<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vagina" "semen">> <<recordVaginalSperm "pc" $NPCList[_nn] `($enemytype is "man" ? "human" : $NPCList[_nn].type)`>> <</if>> <<if $NPCList[_nn].penis is "cheeks">> <<He>> ejaculates onto your back. <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <</if>> <<if $NPCList[_nn].penis is "anusentrance">> <<if playerChastity("anus")>> <<He>> ejaculates on your $worn.genitals.name. <<else>> <<He>> ejaculates between your <<bottom>> cheeks. <<recordSperm `{genital: "anus", target: "pc", spermOwner: $NPCList[_nn], spermType: $enemytype is "man" ? "human" : $NPCList[_nn].type, rngModifier: 5, rngType: "canWash"}`>> <</if>> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <</if>> <<if $NPCList[_nn].penis is "anusimminent">> <<if playerChastity("anus")>> <<He>> ejaculates on your $worn.genitals.name. <<else>> <<He>> ejaculates between your <<bottom>> cheeks. <<recordSperm `{genital: "anus", target: "pc", spermOwner: $NPCList[_nn], spermType: $enemytype is "man" ? "human" : $NPCList[_nn].type, rngModifier: 15, rngType: "canWash"}`>> <</if>> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <</if>> <<if $NPCList[_nn].penis is "anus">> <<He>> ejaculates into your bowels. <<analejacstat>><<ejacstat>><<set $hunger -= 200>><<set $thirst -= 200>><<set $hygiene += 500>><<bodyliquid "anus" "semen">> <<recordAnusSperm "pc" $NPCList[_nn] `($enemytype is "man" ? "human" : $NPCList[_nn].type)`>> <</if>> <<if $NPCList[_nn].penis is "chest">> <<He>> ejaculates onto your chest. <<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <</if>> <<if $NPCList[_nn].penis is "mouthentrance">> <<He>> ejaculates onto your face. <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <</if>> <<if $NPCList[_nn].penis is "mouthimminent">> <<He>> ejaculates onto your face. <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <</if>> <<if $NPCList[_nn].penis is "mouth">> <<He>> ejaculates down the back of your throat. <<oralejacstat>><<ejacstat>><<cumswallow `$NPCList[_nn].type` null `npcSemenMod($NPCList[_nn].penissize)`>> <</if>> <<if $NPCList[_nn].penis is "feet">> <<He>> ejaculates on your feet. <<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "feet" "semen">> <</if>> <<if $NPCList[_nn].penis is "leftarm" and $NPCList[_nn].penis is "rightarm">> <<He>> ejaculates on your hands. <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "semen">><<bodyliquid "rightarm" "semen">> <</if>> <<if $NPCList[_nn].penis is "leftarm">> <<He>> ejaculates on your hand. <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "semen">> <</if>> <<if $NPCList[_nn].penis is "rightarm">> <<He>> ejaculates on your hand. <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "rightarm" "semen">> <</if>> <<if $NPCList[_nn].penis is "leftDildoAnus">> <<switch random(1, 5)>> <<case 1>> <<He>> ?orgasmMoans as <<his>> body convulses, <<his>> ass cheeks trembling against your $currentSexToyLeft.name. <<case 2>> <<He>> ?orgasmMoans and ejaculates into the air as you fuck <<his>> ass with your $currentSexToyLeft.name. It splatters on the floor. <<case 3 4>> <<His>> blush deepens and <<his>> mouth gapes as <<he>> cums against your $currentSexToyLeft.name. <<case 5>> <<He>> ?orgasmMoans and grasps your arm as your $currentSexToyLeft.name brings <<him>> to orgasm. <</switch>> <</if>> <<if $NPCList[_nn].penis is "rightDildoAnus">> <<switch random(1, 5)>> <<case 1>> <<He>> ?orgasmMoans as <<his>> body convulses, <<his>> ass cheeks trembling against your $currentSexToyRight.name. <<case 2>> <<He>> ?orgasmMoans and ejaculates into the air as you fuck <<his>> ass with your $currentSexToyLeft.name. It splatters on the floor. <<case 3 4>> <<His>> blush deepens and <<his>> mouth gapes as <<he>> cums against your $currentSexToyRight.name. <<case 5>> <<He>> ?orgasmMoans and grasps your arm as your $currentSexToyRight.name brings <<him>> to orgasm. <</switch>> <<handejacstat>><<ejacstat>><<set $hygiene += 500>> <</if>> <<if $NPCList[_nn].penis is 0>> <<if $gloryhole>> <<He>> ejaculates into the air. It splatters on the floor. <<else>> <<He>> ejaculates onto your tummy. <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <</if>> <</if>> <<if $NPCList[_nn].penis is "penis" or $NPCList[_nn].penis is "penisentrance" or $NPCList[_nn].penis is "penisimminent">> <<if $gloryhole>> <<He>> ejaculates into the air. It splatters on the floor. <<else>> <<He>> ejaculates onto your tummy. <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <</if>> <</if>> <</if>> <br><br> <!-- Finishing moves for Alex, Avery and Whitney; should be moved to their respective ejaculation files if/when they get them --> <<if $speechdisable isnot 1>> <<switch $npc[$npcrow.indexOf(_nn)]>> <<case "Alex">> <<if $consensual is 1 and $enemyanger lte 0>> <<switch random(1, 3)>> <<case 3>> <<if $farm_stage gte 7 and $alex_countdown is undefined>> <<if C.npc.Alex.dom gte 30>> <<He>> grins and ruffles your hair. <<print either( `"Don't go far. We're doing this again real soon."`, `"Best fuck I've had in a while."`, `"You're so damn cute."`, `"That's my <<girl>>."` )>> <<elseif C.npc.Alex.dom lte -30>> <<He>> holds you close and sighs into your chest. <<print either( `"What did I do to deserve you?"`, `"What would I do without you?"`, `"You're so damn cute."`, `"I'm your <<if $pronoun is "f">>wo<</if>>man..."` )>> <<else>> <<He>> presses <<his>> forehead to yours. <<print either( `"Never thought myself the type to settle down. But you're worth it."`, `"Who'd've thought I'd fall for a townie?"`, `"You're so damn cute."`, `"You're my <<if $player.gender_appearance is "f">>wo<</if>>man..."` )>> <</if>> <<else>> <<He>> smiles and pats your <<bottom>>. <<print either( `"Don't go far. We're doing this again real soon."`, `"This job isn't so bad with you around."`, `"You're a bad <<girl>>, getting me to slack off."` )>> <</if>> <span class="green">Your face flushes with pleasure.</span> <<lstress>><<ltrauma>><<lpain>><<violence -3>> <<case 2>> <<if C.npc.Alex.dom gte 10>> <<He>> strokes under your chin, <<else>> <<He>> rests <<his>> head on your shoulder, <</if>> <span class="green">making you feel warm inside.</span> <<lstress>><<ltrauma>><<lpain>><<violence -3>> <<default>> <<if C.npc.Alex.dom gte 10>> <<He>> holds you in <<his>> arms, <<else>> <<He>> lies in your arms, <</if>> <span class="green">making you feel warm inside.</span> <<lstress>><<ltrauma>><<lpain>><<violence -3>> <</switch>> <br><br> <</if>> <<case "Avery">> <<if $consensual is 1 and $enemyanger lte 0 and C.npc.Avery.love gte 20>> <<switch random(1, 3)>> <<case 3>> <<if $averyragerevealed is 1 and C.npc.Avery.rage gte 60>> <<He>> <<if $player.breastsize is 0>> wraps an arm around your chest <<else>> grabs your breast <</if>> and pulls your body against <<hers>>, breathing heavily in your ear. <<print either( `"You'd best keep behaving like this. Or else."`, `"With a body like this, you're almost worth the hassle."`, `"So you can behave. Here I thought you were only good for one thing."` )>> <span class="pink"><<He>> gives your nipple a harsh tweak,</span> before shoving you aside. <<gtrauma>><<gstress>><<gpain>><<larage>><<violence 3>><<npcincr Avery rage -5>> <<elseif $averyragerevealed is 1 and C.npc.Avery.rage gte 20>> <<He>> <<if $player.breastsize is 0>> wraps an arm around your chest <<else>> grabs your breast <</if>> and pulls your body against <<hers>>, whispering in your ear. <<print either( `"Good <<girl>>."`, `"Be good. You'll make both our lives easier."`, `"It's better when you behave. For both of us."`, `"I hope this means you've learnt your lesson."` )>> <span class="purple"><<He>> gives your chest a rough squeeze</span> before releasing you. <<stress 4>><<arousal 500 "breasts">><<npcincr Avery rage -5>><<gstress>><<garousal>><<larage>> <<else>> <<if $player.breastsize is 0>> <<He>> strokes your chest, <<else>> <<He>> cups your breast, <</if>> <span class="lewd">circling <<his>> thumb around your nipple.</span> <<He>> gives it a gentle pinch. <<print either( `"A <<girl>> like you is worth every penny."`, `"Did you enjoy yourself? I know I did."`, `"You have a magnificent body."` )>> <<ltrauma>><<lstress>><<lpain>><<garousal>><<violence -3>><<arousal 500 "breasts">> <</if>> <<case 2>> <<if $averyragerevealed is 1 and C.npc.Avery.rage gte 60>> <<He>> brushes your hair back, <span class="pink"><<his>> expression impassive.</span> <<print either( `"Such a <<if $player.gender_appearance is "m">>handsome<<else>>pretty<</if>> face. Don't make me ruin it."`, `"You're a passable whore, if nothing else."`, `"At least you're good for something."` )>> <<trauma 6>><<stress 6>><<npcincr Avery rage -5>><<gtrauma>><<gstress>><<larage>> <<elseif $averyragerevealed is 1 and C.npc.Avery.rage gte 20>> <<He>> brushes your hair back, <span class="purple">smiling as <<he>> pinches your cheek.</span> <<print either( `"Playing nice, are we? What a pleasant surprise."`, `"I can't stay mad at that face."`, `"That wasn't so hard, was it?"` )>> <<stress 4>><<npcincr Avery rage -5>><<gstress>><<larage>> <<else>> <<He>> brushes your hair back, smiling softly. You stare into each other's eyes, <span class="green">and your heart flutters.</span> <<ltrauma>><<lstress>><<lpain>><<garousal>><<violence -3>> <</if>> <<default>> <<if $averyragerevealed is 1 and C.npc.Avery.rage gte 60>> <<He>> lifts your chin, <span class="pink">glaring down with a hand on <<his>> hip.</span> <<print either( `"So you can behave after all."`, `"I nearly forgot how much of a brat you've been."`, `"You still have a long way to go before I'll forgive you."` )>> <<trauma 6>><<stress 6>><<npcincr Avery rage -5>><<gtrauma>><<gstress>><<larage>> <<elseif $averyragerevealed is 1 and C.npc.Avery.rage gte 20>> <<He>> lifts your chin, forcing you to meet <<his>> gaze. <<print either( `"I still haven't forgiven you. But this is a start."`, `"I hope this means you've learnt your lesson."`, `"You want my forgiveness that bad, do you?"` )>> <span class="purple"><<He>> smiles and pinches your cheek.</span> <<stress 4>><<npcincr Avery rage -5>><<gstress>><<larage>> <<else>> <<He>> lifts your chin, peering down with a smile. <<print either( `"You're simply priceless."`, `"Such a perfect <<girl>>."`, `"You are a prize, dear."` )>> <<He>> kisses your cheek, <span class="green">making you feel warm inside.</span> <<ltrauma>><<lstress>><<lpain>><<violence -3>> <</if>> <</switch>> <br><br> <<elseif $consensual is 0 and $enemyhealth lte ($enemyhealthmax / 10) * 7.5 and $averyragerevealed is 1 and C.npc.Avery.rage gte 60>> Avery sneers, and <<if random(1)>> <span class="red">punches you in the face.</span> <<He>> wipes <<his>> hand on <<his>> sleeve. <<else>> <span class="red">stomps on your face, grinding <<his>> heel into your nose.</span> You cry out in pain, but <<he>> only presses down harder. <</if>> <<print either( `"Don't fuck with me."`, `"Serves you right, cocky little shit."`, `"Still think you're so tough?"`, `"Still feeling smart about pissing me off?"`, `"What's wrong? No more smart remarks?"`, `"Where'd all that fight go? Fucking brat."`, `"Get up. I'm not done with you."` )>> <<gtrauma>><<gstress>><<gpain>><<violence 10>> <br><br> <<elseif $consensual is 0 and $enemyhealth lte ($enemyhealthmax / 10) * 9>> <<switch random(1, 3)>> <<case 3>> <<if $averyragerevealed is 1 and C.npc.Avery.rage gte 60>> <span class="red"><<He>> kicks you repeatedly,</span> snarling each time <<his>> foot crashes into your side. <<print either( `"Worthless little shit."`, `"On the ground, where you belong."`, `"You'll cry when I tell you to cry."`, `"I'll hurt you as much as I like. I own you."` )>> Powerless against <<his>> assault, you can only curl up to protect yourself until <<his>> anger finally subsides. <<gtrauma>><<gstress>><<gpain>><<violence 6>> <<elseif $averyragerevealed is 1 and C.npc.Avery.rage gte 20>> <span class="pink"><<He>> shoves you away with a sneer.</span> <<print either( `"That's enough."`, `"Perhaps I'll treat you nicer when you learn how to behave."` )>> <<gtrauma>><<gstress>><<gpain>><<violence 3>> <<else>> <<He>> grasps your arm, glaring into you. <<He>> doesn't say a word or raise a hand, <span class="purple">but it's enough to leave you shaking.</span> <<stress 4>><<trauma 6>><<npcincr Avery rage 1>><<gtrauma>><<gstress>><<garage>> <</if>> <<case 2>> <<if $averyragerevealed is 1 and C.npc.Avery.rage gte 60>> <span class="red"><<He>> slaps you back and forth across the face,</span> growing more intense with each strike. By the time <<hes>> done, <<hes>> panting. <<print either( `"Don't you dare defy me."`, `"Idiot. You messed up my hair."`, `"That's what you get, <<bitch>>."` )>> <<gtrauma>><<gstress>><<gpain>><<violence 6>> <<elseif $averyragerevealed is 1 and C.npc.Avery.rage gte 20>> <<He>> <span class="pink">slaps you across the face.</span> <<He>> wipes <<his>> hand on <<his>> sleeve, sneering. <<print either( `"Look what you made me do."`, `"You've no one to blame but yourself."`, `"Remember that next time you think about misbehaving."` )>> <<gtrauma>><<gstress>><<gpain>><<violence 3>> <<else>> <span class="purple"><<His>> fist clenches,</span> but <<he>> doesn't move. <<He>> takes a deep breath, then smiles. <<print either( `"Don't make me do something I'll regret."`, `"I don't want to hurt you. Be good, for your sake."`, `"I don't like getting upset. You wouldn't like it, either."` )>> <<stress 4>><<trauma 6>><<npcincr Avery rage 1>><<gtrauma>><<gstress>><<garage>> <</if>> <<default>> <<if ($neckuse is "hand" or random(1, 5) is 1) and $settings.asphyxiaLevel gte 2>> <<if $averyragerevealed is 1 and C.npc.Avery.rage gte 60>> <<if $worn.neck.name is "familiar collar" and $worn.neck.cursed is 1>> <span class="red"><<He>> grasps your neck in both hands,</span> <span class="blue">only to recoil as your collar shocks <<him>>.</span> <<He>> glares, but doesn't follow up. <<else>> <span class="red"><<He>> grasps your neck in both hands, fingernails piercing your skin.</span> <<print either( `"Trashy little whore."`, `"God, you're infuriating."`, `"Fucking brat. I'm done playing nice."`, `"I should leave you in the gutter, where you belong."`, `"Learnt your lesson yet? Or should I beat it into you?"` )>> <<He>> digs <<his>> nails into your throat, before finally letting go. <<gtrauma>><<gstress>><<gpain>><<violence 8>> <</if>> <<elseif $averyragerevealed is 1 and C.npc.Avery.rage gte 20>> <span class="pink"><<He>> tightens <<his>> grip on your neck, locking eyes with you.</span> <<print either( `"You're being a very naughty <<girl>>."`, `"So fragile. Don't make me break you."`, `"My generosity only goes so far."`, `"I expect obedience next time."`, `"Mind your manners, brat."`, `"You're starting to grate."`, `"Don't test my patience."` )>> <<He>> drags <<his>> nails along your skin before letting go. <<gtrauma>><<gstress>><<gpain>><<garage>><<npcincr Avery rage 5>><<violence 4>> <<else>> <<He>> brushes <<his>> fingers along your neck. <<print either( `"I'd mind my manners if I were you."`, `"You don't want to upset me, do you?"`, `"You'll behave from now on, won't you?"` )>> <span class="purple">You shiver.</span> <<stress 4>><<trauma 6>><<npcincr Avery rage 1>><<gtrauma>><<gstress>><<garage>> <</if>> <<else>> <<if $averyragerevealed is 1 and C.npc.Avery.rage gte 60>> <span class="red"><<He>> grasps your chin and wrenches it up, looking down with fury.</span> <<print either( `"Trashy little whore."`, `"God, you're infuriating."`, `"Fucking brat. I'm done playing nice."`, `"I should leave you in the gutter, where you belong."`, `"Learnt your lesson yet? Or should I beat it into you?"` )>> <<He>> claws your cheek, then delivers a swift backhanded strike. <span class="red">You cry out in pain.</span> <<gtrauma>><<gstress>><<gpain>><<violence 6>> <<elseif $averyragerevealed is 1 and C.npc.Avery.rage gte 20>> <span class="pink"><<He>> grasps your chin and forces it up, looking down with contempt.</span> <<print either( `"You're being a very naughty <<girl>>."`, `"So fragile. Don't make me break you."`, `"My generosity only goes so far."`, `"I expect obedience next time."`, `"Mind your manners, brat."`, `"You're starting to grate."`, `"Don't test my patience."` )>> <<He>> digs <<his>> nails into your cheek before letting go. <<gtrauma>><<gstress>><<gpain>><<garage>><<npcincr Avery rage 5>><<violence 3>> <<else>> <span class="purple"><<He>> cups a hand under your chin and tilts it up.</span> <<print either( `"I'd mind my manners if I were you."`, `"You don't want to upset me, do you?"`, `"You'll behave from now on, won't you?"` )>> <<He>> smiles and trails <<his>> thumb along your cheek before letting go. <<stress 4>><<trauma 6>><<npcincr Avery rage 1>><<gtrauma>><<gstress>><<garage>> <</if>> <</if>> <</switch>> <br><br> <</if>> <<case "Whitney">> <<if $consensual is 1 and $enemyanger lte 0 and $whitneyromance is 1>> <<switch random(1, 3)>> <<case 3>> <<if ["mouth"].includes($NPCList[_nn].penis)>> <<print either( `<<He>> runs a hand through your hair.`, `<<He>> rubs <<his>> <<print $NPCList[_nn].penisdesc>> against your cheek.` )>> <<elseif ["mouth"].includes($NPCList[_nn].vagina)>> <<print either( `<<He>> runs a hand through your hair.`, `<<He>> gently squeezes your face between <<his>> thighs.`, `<<He>> brushes your cheek with <<his>> thigh.` )>> <<elseif ["facesit"].includes($NPCList[_nn].vagina)>> <<print either( `<<He>> runs a hand through your hair.`, `<<He>> lifts off your face slightly and smiles down at you.` )>> <<else>> <<print either( `<<He>> runs a hand through your hair.`, `<<He>> bites your ear and whispers.` )>> <</if>> <<if (["mouth","facesit"].includes($NPCList[_nn].vagina) or ["mouth"].includes($NPCList[_nn].penis)) and random(1)>> <<if C.npc.Whitney.dom gte 10>> <<print either( `"That's it. Just how I like it."`, `"Hope you liked your treat, slut."` )>> <<else>> <<print either( `"You sure know how to work that mouth."`, `"Damn, you feel great down there."` )>> <</if>> <<else>> <<if C.npc.Whitney.dom gte 10>> <<print either( `"Knew I picked the right <<bitch>>."`, `"That's a good slut."`, `"Good <<girl>>."` )>> <<else>> <<print either( `"Fuck, you're good."`, `"You're a nice lay, slut."` )>> <</if>> <</if>> <span class="green">You blush.</span> <<lstress>><<ltrauma>><<lpain>><<violence -3>> <<case 2>> <<if ["facesit"].includes($NPCList[_nn].vagina)>> <<He>> lifts up just enough to leave your face unobscured and holds <<his>> phone overhead. <<elseif ["mouth"].includes($NPCList[_nn].vagina) or ["mouth"].includes($NPCList[_nn].penis)>> <<He>> yanks your hair back, forcing your gaze upwards. <<He>> holds <<his>> phone overhead. <<else>> <<if $worn.neck.collared is 1 and $worn.neck.type.includes("leash")>> <<He>> grabs your leash and forces you upright, bringing your face to <<hers>>. <<else>> <<He>> slings an arm around your shoulders, pressing your cheek to <<hers>>. <</if>> <<He>> raises <<his>> phone. <</if>> <<if $pain gte 60>> <<print either( `"Don't move, I want everyone to see those tears."`, `"Cry for the camera, <<bitch>>."` )>> <<else>> <<print either( `"Now everyone will know you're my property."`, `"Just showing everyone who owns you."`, `"Smile, slut."` )>> <</if>> <<if C.npc.Whitney.love gte 25>> <span class="green"><<He>> <<if ["othervagina","penis","facesit"].includes($mouthuse)>>pets you<<else>>kisses your cheek<</if>> as the camera flashes.</span> <<stress 4>><<arousal 200>><<status 5>><<gstress>><<garousal>><<gcool>> <<else>> <<He>> <<print either("raises <<his>> middle finger","makes a peace sign","sticks <<his>> tongue out")>> as the camera flashes. <<stress 6>><<status 1>><<gstress>><<gcool>> <</if>> <<famesex 1 "pic">> <<default>> <<He>> runs <<his>> hand down your back and caresses your <<bottom>>. <span class="lewd">You shiver from the sensation.</span> <<lstress>><<ltrauma>><<lpain>><<garousal>><<violence -3>><<arousal 500 "bottom">> <</switch>> <br><br> <<elseif $consensual is 0 and $enemyhealth lte ($enemyhealthmax / 10) * 9>> <<switch random(1, 3)>> <<case 3>> <<He>> smirks, <<if $whitneyromance is 1>>kisses <<his>> knuckles, <</if>>then <span class="red">swings <<his>> fist into the side of your face.</span> <<print either( `"Keep struggling. It cracks me up."`, `"That's for being a <<bitch>>."` )>> <<gtrauma>><<gstress>><<gpain>><<violence 6>> <<case 2>> <<if ["facesit"].includes($NPCList[_nn].vagina)>> <<He>> lifts up just enough to leave your face unobscured. <<He>> holds <<his>> phone overhead. <<elseif ["mouth"].includes($NPCList[_nn].vagina) or ["mouth"].includes($NPCList[_nn].penis)>> <<He>> yanks your hair back, forcing your gaze upwards. <<He>> holds <<his>> phone overhead. <<else>> <<if $worn.neck.collared is 1 and $worn.neck.type.includes("leash")>> <<He>> grabs your leash and forces you upright, bringing your face to <<hers>>. <<else>> <<He>> slings an arm around your shoulders, pressing your cheek to <<hers>>. <</if>> <<He>> raises <<his>> phone. <</if>> <<if $pain gte 60>> <<print either( `"Don't move, I want everyone to see those tears."`, `"Cry for the camera, <<bitch>>."` )>> <<else>> <<print either( `"Now everyone will know you're my property."`, `"Just showing everyone who owns you."`, `"Smile, slut."` )>> <</if>> <<He>> <<print either("raises <<his>> middle finger","makes a peace sign","sticks <<his>> tongue out")>> as the camera flashes. <<trauma 6>><<stress 6>><<gtrauma>><<gstress>> <<famerape 1 "pic">> <<default>> Whitney sneers. <<print either( `"You like being used?"`, `"Having fun?"` )>> Before you can answer, <span class="red"><<he>> stomps <<his>> foot on your throat.</span> You cough violently. <<if $audiencepresent gte 1 and random(1)>> <<He>> smirks over <<his>> shoulder. "Sounds like a yes to me." <<His>> friends laugh. <<else>> <<He>> smirks and presses down harder. "What's that?" <<He>> cups a hand to <<his>> ear. "Can't hear you." <</if>> <<gtrauma>><<gstress>><<gpain>><<violence 6>> <</switch>> <br><br> <</if>> <<default>> /* Do nothing */ <</switch>> <</if>> <<else>> <!-- Female Gender NPC Start --> <<if $NPCList[_nn].vagina isnot "none">> <!-- Start Consensual --> <<if $consensual is 1>> <<if $NPCList[_nn].vagina is "mouthentrance" or $NPCList[_nn].vagina is "mouth" or $NPCList[_nn].vagina is "mouthimminent">> <<switch random(1, 5)>> <<case 1 2>> <<He>> moans and rubs <<his>> crotch against your face with <<his>> hips, thighs shaking with orgasm. <<case 3 4>> <<His>> blush deepens and <<his>> body twitches as <<he>> cums. <<case 5>> <<He>> screams, cupping your head in <<his>> hand and rubbing <<his>> clit against your face. <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "goo">> <</switch>> <<elseif $NPCList[_nn].vagina is "leftarm" or $NPCList[_nn].vagina is "rightarm">> <<switch random(1, 5)>> <<case 1 2>> <<He>> sighs as <<his>> body convulses, <<his>> thighs trembling against your head. <<case 3 4>> <<His>> blush deepens and <<his>> mouth gapes as <<he>> cums against your hand. <<case 5>> <<He>> screams and grasps your arm as your fingers bring <<him>> to orgasm. <<His>> juices soak your fingers. <</switch>> <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "goo">> <<elseif $NPCList[_nn].vagina is "leftDildo">> <<switch random(1, 5)>> <<case 1 2>> <<He>> ?orgasmMoans as <<his>> body convulses, <<his>> thighs trembling against your $currentSexToyLeft.name. <<case 3 4>> <<His>> blush deepens and <<his>> mouth gapes as <<he>> cums against your $currentSexToyLeft.name. <<case 5>> <<He>> ?orgasmMoans and grasps your arm as your $currentSexToyLeft.name brings <<him>> to orgasm. <<His>> juices soak your $currentSexToyLeft.name. <</switch>> <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "goo">> <<elseif $NPCList[_nn].vagina is "rightDildo">> <<switch random(1, 5)>> <<case 1 2>> <<He>> ?orgasmMoans as <<his>> body convulses, <<his>> thighs trembling against your $currentSexToyRight.name. <<case 3 4>> <<His>> blush deepens and <<his>> mouth gapes as <<he>> cums against your $currentSexToyRight.name. <<case 5>> <<He>> ?orgasmMoans and grasps your arm as your $currentSexToyRight.name brings <<him>> to orgasm. <<His>> juices soak your $currentSexToyRight.name. <</switch>> <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "rightarm" "goo">> <<elseif $NPCList[_nn].vagina is "leftDildoAnus">> <<switch random(1, 5)>> <<case 1 2>> <<He>> ?orgasmMoans as <<his>> body convulses, <<his>> thighs trembling against your $currentSexToyLeft.name. <<case 3 4>> <<His>> blush deepens and <<his>> mouth gapes as <<he>> cums against your $currentSexToyLeft.name. <<case 5>> <<He>> ?orgasmMoans and grasps your arm as your $currentSexToyLeft.name brings <<him>> to orgasm. <</switch>> <<handejacstat>><<ejacstat>><<set $hygiene += 500>> <<elseif $NPCList[_nn].vagina is "rightDildoAnus">> <<switch random(1, 5)>> <<case 1 2>> <<He>> ?orgasmMoans as <<his>> body convulses, <<his>> thighs trembling against your $currentSexToyRight.name. <<case 3 4>> <<His>> blush deepens and <<his>> mouth gapes as <<he>> cums against your $currentSexToyRight.name. <<case 5>> <<He>> ?orgasmMoans and grasps your arm as your $currentSexToyRight.name brings <<him>> to orgasm. <</switch>> <<handejacstat>><<ejacstat>><<set $hygiene += 500>> <<elseif $NPCList[_nn].vagina is "lefthand" or $NPCList[_nn].vagina is "righthand">> <<switch random(1, 5)>> <<case 1 2>> <<He>> sighs as <<he>> cums, falling back and resting <<his>> arm over <<his>> eyes. <<case 3 4>> <<He>> moans as <<his>> <<if $NPCList[_nn].breastsize is 0>>chest heaves<<else>>$NPCList[_nn].breastsdesc shake<</if>> as <<he>> cums. <<case 5>> <<He>> screams as <<he>> cums, <<his>> juices running down <<his>> thighs. <<He>> scoops some with a finger, dons a playful smile, then flicks it across your face. <<set _postOrgasmSpeech to `"Now you're messy, just like me."`>> <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "goo">> <</switch>> <<elseif $NPCList[_nn].vagina is "feet">> <<switch random(1, 5)>> <<case 1 2>> <<He>> moans and grasps your ankles as <<he>> cums. <<set _postOrgasmSpeech to `"I love being treated like a dirty slut."`>> <<case 3 4>> <<He>> <<if $NPCList[_nn].breastsize is 0>>pinches<<else>>grasps<</if>> <<his>> $NPCList[_nn].breastsdesc as <<he>> cums against your feet. <<set _postOrgasmSpeech to `"I love it when you dominate me."`>> <<case 5>> <<He>> screams as <<he>> cums, almost making you jump. <<His>> juices run over your feet. <</switch>> <<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "feet" "goo">> <<elseif $NPCList[_nn].vagina is "vagina">> <<switch random(1, 5)>> <<case 1 2>> <<He>> cums as you scissor your pussies together, moaning with pleasure. <<case 3 4>> <<He>> moans and <<his>> legs shake as <<he>> cums against your <<pussy>>. <<case 5>> <<He>> screams, wrapping <<his>> arms under your shoulders and pressing <<his>> <<npcChest>> against you as <<his>> body shakes. <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "goo">> <</switch>> <<elseif $NPCList[_nn].vagina is "othermouth">> <<switch random(1, 5)>> <<case 1 2>> <<He>> shudders with pleasure and exhales against your crotch as <<he>> cums. /* <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "goo">> */ <<case 3 4>> <<He>> trembles against your crotch as <<he>> cums and finishes with a long, wet lick. /* <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "goo">> */ <<case 5>> <<He>> screams into your crotch as <<he>> cums, <<his>> hands pressing firm into <<his>> thighs. <</switch>> <<elseif $NPCList[_nn].vagina is "facesit">> <<switch random(2)>> <<case 0>> <<He>> moans and rubs <<his>> crotch against your face, shuddering as <<he>> comes to orgasm. <<case 1>> <<He>> begins to erratically move on your face, losing all semblance of control as <<he>> cums, squirting in your mouth. <<case 2>> <<He>> gasps and shudders, pressing down on your face at the moment of orgasm, covering you in <<his>> juices. <</switch>> <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "goo">> <<elseif $NPCList[_nn].vagina is "facesitanal">> <<switch random(2)>> <<case 0>> <<He>> moans and grinds <<his>> ass against your mouth, shaking as <<he>> comes to orgasm, <<his>> juices running down onto your face. <<case 1>> <<He>> begins to rhythmically press <<his>> ass against you, getting faster as <<he>> builds to a shuddering climax, which covers you in <<his>> juices. <<case 2>> <<He>> gasps and shudders, pressing down on your face at the moment of orgasm, covering you in <<his>> juices. <</switch>> <br><br> <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "goo">> <!-- following appear to be Male PC to Female Antagonist only? --> <<elseif $NPCList[_nn].vagina is "otheranus">> <!-- anus rewrite --> <<switch random(1, 5)>> <<case 1 2>> <<He>> shakes as <<he>> cums, <<his>> ass pushing against you as <<he>> releases a final moan. <<case 3 4>> <<He>> shakes against your <<penis>> as <<he>> cums, moaning and grinding into you as deep as <<he>> can. <<case 5>> <<He>> screams and bucks into your crotch as <<he>> cums. <<set _postOrgasmSpeech to `"Oh God, you make me feel good."`>> <<thighejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "goo">> <</switch>> <<elseif $NPCList[_nn].vagina is "penis">> <<switch random(1, 6)>> <<case 1 2>> <<He>> throws <<his>> arms around your shoulders as <<he>> cums, driving <<his>> pussy down hard against your <<penis>>. <<set _postOrgasmSpeech to `"Your cock was made for me," <<he>> whispers.`>> <<case 3 4>> <<He>> sighs as <<he>> cums, <<his>> blush deepening. <<set _postOrgasmSpeech to `"Oh, look what your cock did to me."`>> <<case 5>> <<He>> wraps <<his>> arms under your shoulders and presses <<his>> <<npcChest>> against you as <<he>> cums. You feel <<his>> pussy twitch against your <<penis>>. <<case 6>> <<He>> screams and pounds your <<penis>> with <<his>> pelvis as <<he>> cums, <<his>> whole body shaking. <<thighejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "goo">> <</switch>> <<ejacstat>><<set $hygiene += 500>><<bodyliquid "penis" "goo">> <<elseif $NPCList[_nn].vagina is "penisimminent" or $NPCList[_nn].vagina is "penisentrance">> <<He>> bites <<his>> lip as <<he>> cums on your <<penis>>. <<set _postOrgasmSpeech to `"I want you inside me next time."`>> <<elseif $NPCList[_nn].vagina is "otheranusfrot" or $NPCList[_nn].vagina is "otheranusentrance">> <<He>> rubs <<his>> ass against your <<penis>> as <<he>> cums. <<set _postOrgasmSpeech to `"That felt so good. I want you to pound my ass next time."`>> <<elseif $NPCList[_nn].vagina is "frot">> <<He>> grinds <<his>> clit hard against your <<penis>> as <<he>> cums, ejaculating on your cock and breathlessly begging you to screw <<him>> properly next time. <<ejacstat>><<set $hygiene += 500>><<bodyliquid "penis" "goo">> <!-- Below cases occur when NPC vagina is not in contact with PC --> <<elseif $NPCList[_nn].mouth is "penis">> <<if $speech_attitude is "meek">> <<He>> cums as you fuck <<his>> mouth and seems intent on licking your <<penis>> clean. <<set _postOrgasmSpeech to `"I'm so naughty."`>> <<elseif $speech_attitude is "bratty">> <<He>> cums as you fuck <<his>> mouth with savage thrusts. You grasp <<his>> hair and push yourself even deeper inside. <<He>> gags and sputters, <<his>> juices running down <<his>> thighs. <<set _postOrgasmSpeech to `"I love it when you dominate me."`>> <<ejacstat>><<set $hygiene += 500>><<bodyliquid "penis" "goo">> <<feetejacstat>><<set $hygiene += 500>><<bodyliquid "feet" "goo">> <<else>> <<He>> cums as you fuck <<his>> mouth, gasping against your <<penis>>. <<set _postOrgasmSpeech to `"I'm so dirty."`>> <</if>> <<elseif $NPCList[_nn].mouth is "kiss">> <<He>> holds you tight and bites your lips gently as <<he>> cums, moaning into your mouth. <<elseif $NPCList[_nn].vagina is 0>> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> buckles at the knees, <<his>> <<if $NPCList[_nn].breastsize is 0>>chest heaving<<else>>$NPCList[_nn].breastsdesc trembling<</if>> as <<he>> cums. <<His>> juices run down <<his>> thighs. <<case 4 5 6>> <<He>> sighs as <<he>> cums, then pats your <<bottom>>. <<set _postOrgasmSpeech to `"That was fun."`>> <<case 7>> <<He>> rubs <<his>> clit and screams as <<he>> cums, <<his>> juices dripping onto you. <<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "goo">> <</switch>> <<else>> <!-- This is a catch-all case and should only be called if there's an error --> <<He>> convulses in orgasmic bliss. <</if>> <!-- Start Non-Consensual --> <<else>> <<if $NPCList[_nn].vagina is "footjob">> <<switch random(1, 5)>> <<case 1 2 3>> <<He>> gasps as <<he>> cums. Recovering, <<he>> smiles and moves <<his>> foot over your body. <span class="red"><<He>> pushes down as you gasp for breath.</span> <<set _postOrgasmSpeech to `"You're mine anytime I want you, <<slut>>. Don't forget it."`>> <<gtrauma>><<gstress>><<gpain>><<violence 6>><<bruise chest>><<hitstat>> <<case 4 5>> <<He>> laughs as <<he>> cums, pulling <<his>> foot away from your crotch and kicking your face. <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "goo">> <</switch>> <<elseif $NPCList[_nn].vagina is "vagina">> <<switch random(1, 5)>> <<case 1 2>> <<He>> moans as <<he>> cums, <<his>> juices dripping over you. <<case 3 4>> <<He>> moans and <span class="blue">grasps your throat</span> as <<he>> cums. <<He>> rubs hard against your <<pussy>>, licking your cheek as <<he>> finishes. <<gstress>><<gtrauma>><<gpain>><<violence 3>><<bruise neck>><<hitstat>> <<case 5>> <<He>> screams, grasping your hair and pushing <<his>> <<npcChest>> against you. <<His>> juices drip over you. <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "goo">> <</switch>> <<elseif $NPCList[_nn].vagina is "othermouth">> <<He>> shakes with arousal and rubs against your body as <<he>> cums. <<elseif $NPCList[_nn].vagina is "leftarm" or $NPCList[_nn].vagina is "rightarm">> <<switch random(1, 5)>> <<case 1 2>> <<He>> sighs as you finish with <<his>> pussy, <<his>> thighs shaking against you as <<his>> body trembles. <<case 3 4>> <<His>> blush deepens and <<his>> mouth gapes as <<he>> twitches against your hand. <<case 5>> <<He>> screams and grasps your arm as <<he>> cums against your fingers. <</switch>> <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid $NPCList[_nn].vagina "goo">> <<elseif $NPCList[_nn].vagina is "lefthand" or $NPCList[_nn].vagina is "righthand">> <<switch random(1, 6)>> <<case 1 2>> <<He>> moans as <<he>> cums, <span class="pink">and slaps you across the face.</span> <<set _postOrgasmSpeech to `"I know you enjoy being abused. Don't try to hide it."`>> <<case 3 4>> <<He>> moans as <<he>> finishes. <<He>> reaches above your head and tugs your hair. <<default>> <<He>> moans as <<he>> finishes, then gives your <<bottom>> a sharp smack. <</switch>> <<elseif $NPCList[_nn].vagina is "mouthentrance" or $NPCList[_nn].vagina is "mouth" or $NPCList[_nn].vagina is "mouthimminent">> <<He>> grasps your hair as <<he>> moans and grinds <<his>> crotch against your face. <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "goo">> <<elseif $NPCList[_nn].vagina is "facesit">> <<switch random(2)>> <<case 0>> <<He>> bucks against your face, crying out as <<he>> cums, covering you in <<his>> juices. <<case 1>> <<He>> presses down hard on your face as <<he>> comes to a powerful orgasm that leaves <<him>> quivering. <<case 2>> <<He>> gasps "I'm gonna cum on your face, <<slut>>", before promptly sighing and orgasming, squirting in your mouth. <</switch>> <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "goo">> <<elseif $NPCList[_nn].vagina is "facesitanal">> <<switch random(2)>> <<case 0>> <<He>> bucks against your face, pressing <<his>> ass into your mouth, then cries out as <<he>> cums and covers you in <<his>> juices. <<case 1>> <<He>> presses down hard on your face as <<he>> comes to a powerful orgasm that leaves <<him>> quivering. <<case 2>> <<He>> gasps "I'm gonna cum on your face, <<slut>>" while grinding <<his>> ass into your mouth until <<he>> comes to a quivering climax on your face. <</switch>> <br><br> <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "goo">> <!-- following appear to be Male PC to Female Antagonist only? --> <<elseif $NPCList[_nn].vagina is "otheranus">> <<He>> trembles as <<he>> cums, <<print ($player.ballsExist ? "cups your balls" : "grabs your pussy")>> and drags your <<penis>> deeper into <<his>> ass. <<elseif $NPCList[_nn].vagina is "penis">> <<He>> digs <<his>> nails into your shoulders as <<he>> cums, driving <<his>> pussy down hard against your <<penis>> and shuddering with pleasure. <<elseif $NPCList[_nn].vagina is "penisimminent" or $NPCList[_nn].vagina is "penisentrance">> <<He>> moans as <<he>> cums on your <<penis>>. <<if $role is "islander" and (!$islander_language or $islander_language lt 100)>><<He>> says something you don't understand.<<else>><<set _postOrgasmSpeech to `"I'm finished with you."`>><</if>> <<elseif $NPCList[_nn].vagina is "otheranusfrot" or $NPCList[_nn].vagina is "otheranusentrance">> <<He>> bounces <<his>> ass cheeks against your <<penis>> as <<he>> cums. <<if $role is "islander" and (!$islander_language or $islander_language lt 100)>><<He>> says something you don't understand.<<else>><<set _postOrgasmSpeech to `"That felt good, but next time you better fuck me properly."`>><</if>> <<elseif $NPCList[_nn].vagina is "frot">> <<He>> <span class="blue">grabs your throat</span> and grinds <<his>> clit against your <<penis>> as <<he>> cums. <<gstress>><<gtrauma>><<gpain>><<violence 3>><<bruise neck>><<hitstat>> <!-- Special case male PC with female NPC --> <<elseif $NPCList[_nn].mouth is "penis">> <<He>> cums as you fuck <<his>> mouth, shoving you away as <<he>> gasps for air. <<if $role is "islander" and (!$islander_language or $islander_language lt 100)>><<He>> says something you don't understand.<<else>><<set _postOrgasmSpeech to `"I'm done with you now."`>><</if>> <<elseif $NPCList[_nn].mouth is "kiss">> <<He>> bites your lip hard as <<he>> cums, moaning into your mouth. <<else>> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> <span class="pink">slaps your face,</span> as <<he>> trembles with orgasm. <<if $role is "islander" and (!$islander_language or $islander_language lt 100)>><<He>> says something you don't understand. <<His>> tone is dismissive.<<else>><<set _postOrgasmSpeech to `"That's enough, <<slut>>."`>><</if>> <<case 4 5 6>> <<He>> sighs as <<he>> cums, then gives your <<bottom>> a swift smack. <<if $role is "islander" and (!$islander_language or $islander_language lt 100)>><<He>> says something you don't understand. <<His>> tone is dismissive.<<else>><<set _postOrgasmSpeech to `"You're mine anytime I want you, whore."`>><</if>> <<case 7>> <<He>> shudders and moans as <<he>> cums, juices dripping down <<his>> thighs. /* <<chestejacstat>><<ejacstat>><<set $hygiene += 500>> */ <</switch>> <</if>> <</if>> <</if>> <!-- Male Gender NPC Start --> <<if $NPCList[_nn].penis isnot "none">> <!-- Start simplified strap-on sub-case --> <<if $NPCList[_nn].penisdesc.includes("strap-on")>> <<if $consensual is 0>><!-- Non-consen strap-on case --> <<switch $NPCList[_nn].penis>> <<case "vagina" "vaginaimminent" "vaginaentrance" "anus" "anusentrance" "anusimminent" "thighs">> <<switch random(1, 3)>> <<case 1>> <<He>> trembles as <<he>> cums, slapping you across the ass with <<his>> $NPCList[_nn].penisdesc. <<case 2>> <<He>> moans as <<he>> cums, then spanks your ass with <<his>> $NPCList[_nn].penisdesc. <<set _postOrgasmSpeech to `"Something to remember me by, whore."`>> <<case 3>> <<He>> cums without a sound, then rubs <<his>> $NPCList[_nn].penisdesc along your back. <<set _postOrgasmSpeech to "">> <</switch>> <<case "mouth">> <<He>> moans and pushes <<his>> $NPCList[_nn].penisdesc deep into your throat, making you gag. Tears stream down your face. <<case "mouthentrance" "mouthimminent" "chest" "lefthand" "righthand">> <<switch random(1, 3)>> <<case 1>> <<He>> trembles and slaps you across the face with <<his>> $NPCList[_nn].penisdesc. <<case 2>> <<He>> moans and laughs, rubbing <<his>> $NPCList[_nn].penisdesc against your hair. <<case 3>> <<He>> cums without a sound, <<his>> mouth agape, as <<he>> rubs <<his>> $NPCList[_nn].penisdesc against your cheek. <<set _postOrgasmSpeech to "">> <</switch>> <<case "penis" "penisentrance" "penisimminent">> <<switch random(1, 3)>> <<case 1>> <<He>> trembles as <<he>> cums, slapping you across the ass with <<his>> $NPCList[_nn].penisdesc. <<case 2>> <<He>> moans as <<he>> cums, then spanks your ass with <<his>> $NPCList[_nn].penisdesc. <<set _postOrgasmSpeech to `"Something to remember me by, whore."`>> <<case 3>> <<He>> cums without a sound, then rubs <<his>> $NPCList[_nn].penisdesc along your back. <<set _postOrgasmSpeech to "">> <</switch>> <<default>> <<He>> moans as <<he>> cums, rubbing <<his>> clit against the base of <<his>> $NPCList[_nn].penisdesc. <</switch>> <<else>><!-- Consensual strap-on case --> <<switch $NPCList[_nn].penis>> <<case "vagina" "vaginaimminent" "vaginaentrance" "anus" "anusentrance" "anusimminent" "thighs">> <<He>> shakes as <<he>> cums, then rubs <<his>> $NPCList[_nn].penisdesc against your ass. <<case "mouth">> <<He>> moans and grinds <<his>> $NPCList[_nn].penisdesc against <<his>> crotch as <<he>> cums. <<case "mouthentrance" "mouthimminent" "chest" "lefthand" "righthand">> <<His>> mouth gapes as <<he>> cums, rubbing <<his>> $NPCList[_nn].penisdesc against your cheek. <<case "penis" "penisentrance" "penisimminent">> <<He>> moans and grinds <<his>> $NPCList[_nn].penisdesc against <<his>> crotch as <<he>> cums. <<default>> <<He>> moans as <<he>> cums, rubbing <<his>> clit against the base of <<his>> $NPCList[_nn].penisdesc. <</switch>> <</if>> <!-- Start Consensual --> <<elseif $consensual is 1>> <<if _condomResult is "leaked">> <span class="red">The condom broke.</span> <<elseif _condomResult is "burst">> <span class="red">The tip of the condom bursts and rips, exposing the head of <<his>> penis.</span> <</if>> <<if $NPCList[_nn].penis is "idle">> <<He>> groans as a wet patch forms on <<his>> trousers. <<if $speech_attitude is "bratty">> You stifle a giggle at how pathetic <<he>> looks. <</if>> <<elseif _condomResult is "contained">> <<genericCondomEjaculation>> <<elseif $NPCList[_nn].penis is "thighs">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> trembles as <<he>> cums. <<He>> pulls <<his>> $NPCList[_nn].penisdesc out and ejaculates onto the backs of your thighs. <<thighejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <<case 4 5 6>> <<He>> grasps your thighs and fucks them with a violent intensity as <<he>> cums, ejaculating onto your tummy. <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <<case 7>> <<He>> moans as <<he>> cums, ejaculating a massive load that splatters over your thighs and tummy. <<thighejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <<tummyejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <</switch>> <<elseif ($NPCList[_nn].penis is "vaginaentrance" or $NPCList[_nn].penis is "vaginaentrancedouble") and playerChastity("vagina")>> <<He>> strokes <<his>> $NPCList[_nn].penisdesc and ejaculates onto your $worn.genitals.name without a word, sending white streams of semen running down your thighs. <<set _postOrgasmSpeech to "">> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">><<bodyliquid "thigh" "semen">> <<elseif $NPCList[_nn].penis is "vaginaentrance">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> holds you firm by the hip with one hand and holds <<his>> $NPCList[_nn].penisdesc with the other, ejaculating onto your <<pussy>>. Semen covers you and pools around your legs. <<case 4 5 6>> <<He>> strokes <<his>> $NPCList[_nn].penisdesc and ejaculates onto your <<pussy>> without a word, sending white streams of semen running down your cunt. <<set _postOrgasmSpeech to "">> <<case 7>> <<He>> moans and strokes <<his>> $NPCList[_nn].penisdesc as <<he>> cums, sending thick ropes of semen onto your <<pussy>> and <<bottom>>. <<bottomejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <</switch>> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: $enemytype is "man" ? "human" : $NPCList[_nn].type, rngModifier: 5, rngType: "canWash"}`>> <<elseif ($NPCList[_nn].penis is "vaginaimminent" or $NPCList[_nn].penis is "vaginaimminentdouble") and playerChastity("vagina")>> <<He>> ejaculates onto your $worn.genitals.name, sending white streams of semen running down your thighs. <<set _postOrgasmSpeech to `"Wish I could have fucked you properly."`>> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">><<bodyliquid "thigh" "semen">> <<elseif $NPCList[_nn].penis is "vaginaimminent">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> cums before <<he>> can penetrate your <<pussy>>, ejaculating over your labia. Semen drips into a pool beneath you. <<set _postOrgasmSpeech to `"Damn it, I wanted to cum inside you."`>> <<case 4 5 6>> <<He>> ejaculates onto your <<pussy>> before <<he>> can penetrate, sending white streams of semen running down your labia. <<set _postOrgasmSpeech to `"Fuck, that should have gone inside."`>> <<case 7>> <<He>> moans and strokes <<his>> $NPCList[_nn].penisdesc as <<he>> cums, sending thick ropes of semen onto your <<pussy>> and <<bottom>>. <<set _postOrgasmSpeech to `"Wish I could have cum inside you. I just made a mess instead."`>> <<bottomejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <</switch>> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: $enemytype is "man" ? "human" : $NPCList[_nn].type, rngModifier: 15, rngType: "canWash"}`>> <<elseif $NPCList[_nn].penis is "vagina">> <<switch $NPCList[_nn].penissize>> <<case 4>> <<He>> convulses and grinds into your crotch as <<he>> cums, <<his>> $NPCList[_nn].penisdesc sending thick waves of semen into your <<pussy>>. It drips down your thighs. <<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vagina" "semen">> <<recordVaginalSperm "pc" $NPCList[_nn] `($enemytype is "man" ? "human" : $NPCList[_nn].type)`>> <<vaginalentranceejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<thighejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <<case 1>> <<He>> moans as a dribble of cum leaks from <<his>> $NPCList[_nn].penisdesc into your <<pussy>>. You expected more. <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: $enemytype is "man" ? "human" : $NPCList[_nn].type, rngModifier: 50}`>> <<default>> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> moans and thrusts deep into your <<pussy>> as <<he>> cums, holding <<his>> $NPCList[_nn].penisdesc against your womb. You feel warm as semen fills you. <<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vagina" "semen">> <<recordVaginalSperm "pc" $NPCList[_nn] `($enemytype is "man" ? "human" : $NPCList[_nn].type)`>> <<case 4 5 6>> <<He>> grasps your shoulders, pulling you deeper onto <<his>> $NPCList[_nn].penisdesc as <<he>> cums. Semen fills your <<pussy>>, leaving you breathless. <<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vagina" "semen">> <<recordVaginalSperm "pc" $NPCList[_nn] `($enemytype is "man" ? "human" : $NPCList[_nn].type)`>> <<case 7>> <<He>> convulses and grinds down on your crotch as <<he>> cums, sending thick waves of cum into your <<pussy>>. Semen drips down your thighs. <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<vaginalejacstat>><<set $hygiene += 500>><<bodyliquid "vagina" "semen">> <<thighejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <<recordVaginalSperm "pc" $NPCList[_nn] `($enemytype is "man" ? "human" : $NPCList[_nn].type)`>> <</switch>> <</switch>> <<elseif $NPCList[_nn].penis is "vaginaentrancedouble">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> holds you firm by the hip with one hand and holds <<his>> $NPCList[_nn].penisdesc with the other, ejaculating onto your <<pussy>>. Semen covers you and pools around your legs. <<case 4 5 6>> <<He>> strokes <<his>> $NPCList[_nn].penisdesc and ejaculates onto your <<pussy>> without a word, sending white streams of semen running down your cunt. <<set _postOrgasmSpeech to "">> <<case 7>> <<He>> moans and strokes <<his>> $NPCList[_nn].penisdesc as <<he>> cums, sending thick ropes of semen onto your <<pussy>> and <<bottom>>. <<bottomejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <</switch>> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: $enemytype is "man" ? "human" : $NPCList[_nn].type, rngModifier: 5, rngType: "canWash"}`>> <<elseif $NPCList[_nn].penis is "vaginaimminentdouble">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> cums before <<he>> can penetrate your <<pussy>>, ejaculating over your labia. Semen drips into a pool beneath you. <<set _postOrgasmSpeech to `"Damn it, I wanted to cum inside you."`>> <<case 4 5 6>> <<He>> ejaculates onto your <<pussy>> before <<he>> can penetrate, sending white streams of semen running down your labia. <<set _postOrgasmSpeech to `"Fuck, that should have gone inside."`>> <<case 7>> <<He>> moans and strokes <<his>> $NPCList[_nn].penisdesc as <<he>> cums, sending thick ropes of semen onto your <<pussy>> and <<bottom>>. <<set _postOrgasmSpeech to `"Wish I could have cum inside you. I just made a mess instead."`>> <<bottomejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <</switch>> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: $enemytype is "man" ? "human" : $NPCList[_nn].type, rngModifier: 15, rngType: "canWash"}`>> <<elseif $NPCList[_nn].penis is "vaginadouble">> /* consensual */ <<switch $NPCList[_nn].penissize>> <<case 4>> <<He>> convulses and <<print either("glides into","grinds into","thrusts deep into","rams into")>> your crotch as <<he>> cums, <<his>> $NPCList[_nn].penisdesc sending thick waves of semen into your <<pussy>>. It drips down your thighs. <<set _postOrgasmSpeech to [`"Look at the mess we made of your pussy!"`,`"Did you like double stuffing, slut?"`,`"Nothing like a good double slut!"`].random()>> <<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vagina" "semen">> <<recordVaginalSperm "pc" $NPCList[_nn] `($enemytype is "man" ? "human" : $NPCList[_nn].type)`>> <<vaginalentranceejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<thighejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <<case 1>> <<He>> moans as a dribble of cum leaks from <<his>> $NPCList[_nn].penisdesc into your <<pussy>>. You expected more. <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: $enemytype is "man" ? "human" : $NPCList[_nn].type, rngModifier: 50}`>> <<default>> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> moans and <<print either("glides into","grinds into","thrusts deep into","rams into")>> your <<pussy>> as <<he>> cums, holding <<his>> $NPCList[_nn].penisdesc against your womb. You feel warm as semen fills you. <<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vagina" "semen">> <<recordVaginalSperm "pc" $NPCList[_nn] `($enemytype is "man" ? "human" : $NPCList[_nn].type)`>> <<case 4 5 6>> <<He>> grasps your shoulders, pulling you deeper onto <<his>> $NPCList[_nn].penisdesc as <<he>> cums. Semen fills your <<pussy>>, leaving you breathless. <<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vagina" "semen">> <<recordVaginalSperm "pc" $NPCList[_nn] `($enemytype is "man" ? "human" : $NPCList[_nn].type)`>> <<case 7>> <<He>> convulses and grinds down on your crotch as <<he>> cums, sending thick waves of cum into your <<pussy>>. Semen drips down your thighs. <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<vaginalejacstat>><<set $hygiene += 500>><<bodyliquid "vagina" "semen">> <<thighejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <<recordVaginalSperm "pc" $NPCList[_nn] `($enemytype is "man" ? "human" : $NPCList[_nn].type)`>> <</switch>> <</switch>> <<elseif $NPCList[_nn].penis is "cheeks">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> trembles as <<he>> cums, withdrawing <<his>> $NPCList[_nn].penisdesc from your cheeks and ejaculating onto your <<bottom>>. <<case 4 5 6>> <<He>> grasps your thighs, pushing <<his>> $NPCList[_nn].penisdesc hard against your <<bottom>> and ejaculating between your cheeks. <!-- Really should be onto PCs back given position. Or hair maybe. Esp next one --> <<case 7>> <<He>> squeezes your cheeks together and moans as <<he>> cums, sending out a massive load that covers your <<bottom>> and pools beneath you. <<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <!-- intentional dupe line, total of 1000 and 2 --> <</switch>> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<elseif ($NPCList[_nn].penis is "anusentrance" or $NPCList[_nn].penis is "anusentrancedouble") and playerChastity("anus")>> <<He>> cums before <<he>> can penetrate your ass. Semen coats your <<bottom>> and drips down your thighs. <<set _postOrgasmSpeech to `"Damn it, I wanted to pound your ass properly."`>> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">><<bodyliquid "thigh" "semen">> <<elseif $NPCList[_nn].penis is "anusentrance">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> pinches your ass cheek with one hand and strokes <<his>> $NPCList[_nn].penisdesc with the other as <<he>> ejaculates onto your <<bottom>>. Semen drips down, pooling beneath you. <<case 4 5 6>> <<He>> strokes <<his>> $NPCList[_nn].penisdesc and ejaculates onto your <<bottom>>. Warm semen drips down your cheeks. <<case 7>> <<He>> moans and strokes <<his>> $NPCList[_nn].penisdesc as <<he>> cums, sending thick ropes of semen onto your <<bottom>>. It pools beneath you. <<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <!-- intentional dupe line, total of 1000 and 2 --> <</switch>> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<recordSperm `{genital: "anus", target: "pc", spermOwner: $NPCList[_nn], spermType: $enemytype is "man" ? "human" : $NPCList[_nn].type, rngModifier: 5, rngType: "canWash"}`>> <<elseif ($NPCList[_nn].penis is "anusimminent" or $NPCList[_nn].penis is "anusimminentdouble") and playerChastity("anus")>> <<He>> cums before <<he>> can penetrate your ass, ejaculating over your cheeks. Semen coats your <<bottom>> and pools beneath you. <<set _postOrgasmSpeech to `"Fuck, I wanted to cum inside that ass of yours."`>> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">><<bodyliquid "thigh" "semen">> <<elseif $NPCList[_nn].penis is "anusimminent">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> cums before penetrating your ass, ejaculating over your cheeks. Semen coats your <<bottom>> and pools beneath you. <<set _postOrgasmSpeech to `"If only I could have waited a bit longer. That could've gone inside."`>> <<case 4 5 6>> <<He>> strokes <<his>> $NPCList[_nn].penisdesc and ejaculates onto your <<bottom>> before <<he>> can penetrate you, sending white streams of semen running down your crack; <<he>> seems disappointed. <<case 7>> <<He>> moans and strokes <<his>> $NPCList[_nn].penisdesc as <<he>> cums, sending thick ropes of semen onto your <<bottom>>. <<set _postOrgasmSpeech to `"Your ass looks so fuckable. Can't believe I couldn't wait."`>> <<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <!-- intentional dupe line, total of 1000 and 2 --> <</switch>> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<recordSperm `{genital: "anus", target: "pc", spermOwner: $NPCList[_nn], spermType: $enemytype is "man" ? "human" : $NPCList[_nn].type, rngModifier: 15, rngType: "canWash"}`>> <<elseif $NPCList[_nn].penis is "anus">> <<switch $NPCList[_nn].penissize>> <<case 4>> <<He>> convulses and, with a final shove of <<his>> $NPCList[_nn].penisdesc, cums in your ass. You gasp as thick waves of semen pump into you. It's more than you can hold. Cum runs from your <<bottom>> and down your thighs. <<analejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "anus" "semen">> <<thighejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <<recordAnusSperm "pc" $NPCList[_nn] `($enemytype is "man" ? "human" : $NPCList[_nn].type)`>> <<case 1>> <<He>> moans as a pathetic dribble of cum leaks from <<his>> $NPCList[_nn].penisdesc and over your <<bottom>>. You manage to hold in your laughter. <<recordSperm `{genital: "anus", target: "pc", spermOwner: $NPCList[_nn].fullDescription, spermType: $enemytype is "man" ? "human" : $NPCList[_nn].type, rngModifier: 50}`>> <<default>> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> moans and thrusts deep into your <<bottom>> as <<he>> cums. You gasp as you take <<his>> entire length and semen fills your insides. <<case 4 5 6>> <<He>> grasps your shoulders and pulls you back onto <<his>> $NPCList[_nn].penisdesc as <<he>> cums. You feel semen fill your <<bottom>>. <<case 7>> <<He>> convulses and, with a final shove, cums in your ass. Thick waves of semen pump into you. It's more than you can hold. Cum runs from your <<bottom>> and down your legs. <<thighejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <</switch>> <<analejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "anus" "semen">> <<recordAnusSperm "pc" $NPCList[_nn] `($enemytype is "man" ? "human" : $NPCList[_nn].type)`>> <</switch>> <<elseif $NPCList[_nn].penis is "anusdouble">> <<set _dap to 0>> <<set _otherNPCindex to 0>> <<if $anustarget is _nn>> /* State 1 is out of sync, state 2 is in sync */ <<set _otherNPCindex to $anusdoubletarget>> <<set _dap to ($NPCList[$anusdoubletarget].penis isnot "anusdouble" ? 1 : 2)>> <<elseif $anusdoubletarget is _nn>> <<set _otherNPCindex to $anustarget>> <<set _dap to ($NPCList[$anustarget].penis isnot "anusdouble" ? 1 : 2)>> <</if>> <<if _dap is 1>> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> moans, pounding your <<bottom>> without mercy as <<he>> cums. You whimper as you take <<his>> entire length, feeling warm semen streaming into your bowels. <<case 4 5 6>> <<He>> grasps your hair, pulling you hard onto <<his>> $NPCList[_nn].penisdesc as <<he>> cums. <span class="blue">You cry out as you feel semen fill you,</span> <<his>> length pulsing in your anus. <<case 7>> <<He>> convulses and, with a final shove of <<his>> $NPCList[_nn].penisdesc, cums in your <<bottom>>. Thick waves of semen pump into you. <span class="blue">You gasp as your ass overflows.</span> You feel it drip down your legs. <<set _postOrgasmSpeech to `"You need to learn how to take a cock. Don't worry, I'm sure you'll get lots of practice."`>> <<thighejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <</switch>> <<else>> <<switch random(1, 7)>> <<case 1 2>> <<He>> moans, pounding your <<bottom>> and <<personselect _otherNPCindex>><<combatpersons>> <<npcPenisSimple _otherNPCindex>> without mercy as <<personselect _nn>><<he>> cums. You whimper as you take <<his>> entire length, feeling warm semen streaming into your bowels. <<case 3 4>> <<He>> screams, ramming your <<bottom>> and <<personselect _otherNPCindex>><<combatpersons>> <<npcPenisSimple _otherNPCindex>> savagely as <<personselect _nn>><<he>> cums. You whimper as you take <<his>> entire length. Despite the pain, you can't help but enjoy the feel of semen streaming into your bowels. <<set _postOrgasmSpeech to `"I can't believe you took both of our cocks. I think I'm in love!"`>> <<case 5 6>> <<He>> grasps your hair, pulling you hard onto <<his>> $NPCList[_nn].penisdesc as <<he>> cums while giving no thought to the comfort of <<personselect _otherNPCindex>><<combatpersons>> <<npcPenisSimple _otherNPCindex>>. <span class="blue">You moan as you feel semen fill you,</span> <<personselect _nn>><<his>> length pulsing in your anus. <<case 7>> <<He>> convulses and, with a final shove of <<his>> $NPCList[_nn].penisdesc, cums in your <<bottom>>. Thick waves of semen pump into you. <span class="blue">You gasp as your ass overflows.</span> You feel it drip down your legs. <<set _postOrgasmSpeech to `"You need to learn how to take two cocks. Don't worry, I'm sure you'll get lots of practice."`>> <<thighejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <</switch>> <<violence 3>> <</if>> <<analejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "anus" "semen">> <<recordAnusSperm "pc" $NPCList[_nn] `($enemytype is "man" ? "human" : $NPCList[_nn].type)`>> <<elseif $NPCList[_nn].penis is "anusimminentdouble" or $NPCList[_nn].penis is "anusentrancedouble">> <<set _otherNPCindex to 0>> <<if _nn is $anustarget>> <<set _otherNPCindex to $anusdoubletarget>> <<else>> <<set _otherNPCindex to $anustarget>> <</if>> <<switch random(1, 7)>> <<case 1 2>> <<He>> cums before <<he>> can penetrate you, accidentally ejaculating all over the $NPCList[_otherNPCindex].fullDescription and their $NPCList[_otherNPCindex].penisdesc. <<set _postOrgasmSpeech to `"That's what you get for not giving me a turn with <<pher>> slut ass!"`>> <<case 3 4>> <<He>> strokes <<his>> $NPCList[_nn].penisdesc as <<he>> ejaculates onto your <<bottom>>. You feel semen drip down. <<He>> slaps the $NPCList[_otherNPCindex].fullDescription's backside. <<set _postOrgasmSpeech to `"Next time let me join the fun."`>> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 5>> <<He>> thrusts <<his>> $NPCList[_nn].penisdesc against you and the $NPCList[_otherNPCindex].fullDescription's cock, desperate to penetrate your <<bottom>>, but cums too soon. White streams of semen splatter against your cheeks. <<set _postOrgasmSpeech to `"Fuck. I was so close."`>> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 6>> <<He>> moans and strokes <<his>> $NPCList[_nn].penisdesc as <<he>> cums, sending thick ropes of semen onto your <<bottom>>, down your crotch, and over the $NPCList[_otherNPCindex].fullDescription's thighs. <<set _postOrgasmSpeech to `"Such a dirty, teasing slut."`>> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 7>> <<He>> <span class="blue">spanks you</span> with one hand while stroking <<his>> $NPCList[_nn].penisdesc with the other. <<He>> ejaculates onto your <<bottom>> with a shudder. <<set _postOrgasmSpeech to `"Should've taken us both, <<bitch>>."`>> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <</switch>> <<if $NPCList[_nn].penis is "anusentrance">> <<recordSperm `{genital: "anus", target: "pc", spermOwner: $NPCList[_nn], spermType: $enemytype is "man" ? "human" : $NPCList[_nn].type, rngModifier: 5, rngType: "canWash"}`>> <<else>> <<recordSperm `{genital: "anus", target: "pc", spermOwner: $NPCList[_nn], spermType: $enemytype is "man" ? "human" : $NPCList[_nn].type, rngModifier: 15, rngType: "canWash"}`>> <</if>> <<elseif $NPCList[_nn].penis is "chest">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> pushes your <<breasts>> together tight against <<his>> $NPCList[_nn].penisdesc as <<he>> cums, ejaculating onto them and leaving your chest slick. <<case 4 5 6>> <<He>> rubs the tip of <<his>> $NPCList[_nn].penisdesc between your <<breasts>> as <<he>> cums. Warm semen runs down your chest. <<case 7>> <<He>> grasps the back of your neck as <<he>> bears down on your <<breasts>>, moaning as <<he>> cums. Semen shoots between your <<breasts>> and covers your <<if $position is "missionary">>face.<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">><<else>>stomach.<<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">><</if>> <<set _postOrgasmSpeech to `"Oops. That happens sometimes."`>> <</switch>> <<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <<elseif $NPCList[_nn].penis is "mouthentrance">> <<if $ejactrait>> <!-- Has cum-dump trait - Takes precedence --> <<He>> grabs <<his>> $NPCList[_nn].penisdesc with a moan as <<he>> sprays warm ejaculate across your face. Unable to help yourself at the smell of fresh cum, you scoop what you can off your face and into your mouth with your hands. You involuntarily moan a little at its <<= either("strong, bitter", "sweet, creamy", "sharp, salty")>> taste. <<garousal>><<lstress>> <<set _postOrgasmSpeech to `"Ha, you're such a greedy cum whore!"`>> <<faceejacstat>><<ejacstat>><<set $hygiene += 100>><<bodyliquid "face" "semen">> <<cumswallow `$NPCList[_nn].type` null `npcSemenMod($NPCList[_nn].penissize)`>> <<else>> <<switch $NPCList[_nn].penissize>> <<case 4>> <<He>> holds <<his>> $NPCList[_nn].penisdesc tight, working it while aiming straight at your face. <span class="pink">Thick ropes of cum cover your face and mouth.</span> <<set _postOrgasmSpeech to `"Wow. Sorry about the mess."`>> <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <<oralejacstat>><<cumswallow `$NPCList[_nn].type` null `npcSemenMod($NPCList[_nn].penissize)`>> <<case 1>> <<He>> moans as a pathetic dribble of cum leaks from <<his>> $NPCList[_nn].penisdesc and down your chin. You manage to hold in the laughter. <<default>> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> cups your chin with one hand and strokes <<his>> $NPCList[_nn].penisdesc with the other, ejaculating onto your face. <<He>> seems pleased with the mess. <<case 4 5 6>> <<He>> strokes <<his>> $NPCList[_nn].penisdesc as <<he>> ejaculates onto your face. Warm cum drips down your forehead and nose. <<set _postOrgasmSpeech to `"I love giving facials."`>> <<case 7>> <<He>> grasps your hair, stroking <<his>> $NPCList[_nn].penisdesc while aiming straight at your mouth. Thick ropes of cum cover your face. Some of it lands in your mouth. <<set _postOrgasmSpeech to `"I bet you're impressed."`>> <<oralejacstat>><<cumswallow `$NPCList[_nn].type` null `npcSemenMod($NPCList[_nn].penissize)`>> <</switch>> <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <</switch>> <</if>> <<elseif $NPCList[_nn].penis is "mouthimminent">> <<if $ejactrait>> <!-- Has cum-dump trait - Takes precedence --> <<He>> grabs <<his>> $NPCList[_nn].penisdesc with a moan as <<he>> sprays warm ejaculate across your face. Unable to help yourself at the smell of fresh cum, you scoop what you can off your face and into your mouth with your hands. You involuntarily moan a little at its <<= either("strong, bitter", "sweet, creamy", "sharp, salty")>> taste. <<garousal>><<lstress>> <<set _postOrgasmSpeech to `"Ha, you're such a greedy cum whore!"`>> <<faceejacstat>><<ejacstat>><<set $hygiene += 100>><<bodyliquid "face" "semen">> <<cumswallow `$NPCList[_nn].type` null `npcSemenMod($NPCList[_nn].penissize)`>> <<else>> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> cups your hair, ejaculating onto your lips as you barely brush against the tip of <<his>> $NPCList[_nn].penisdesc. <<He>> seems disappointed. <<set _postOrgasmSpeech to `"Really wanted to feel that mouth around me."`>> <<case 4 5 6>> <<He>> brushes <<his>> $NPCList[_nn].penisdesc against your face and cums. It drips down your lips and chin. <<set _postOrgasmSpeech to `"Didn't mean to cum so soon."`>> <<default>> <<He>> grasps your hair and tries to force <<his>> $NPCList[_nn].penisdesc into your mouth, but <<his>> spasms sabotage <<his>> efforts. Thick ropes of cum cover your face. Some lands in your mouth. <<set _postOrgasmSpeech to `"Really made a mess of your face."`>> <<oralejacstat>><<cumswallow `$NPCList[_nn].type` null `npcSemenMod($NPCList[_nn].penissize)`>> <</switch>> <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <</if>> <<elseif $NPCList[_nn].penis is "mouth">> <<switch $NPCList[_nn].penissize>> <<case 4>> <<He>> cups the back of your head and thrusts down your throat, gagging you with <<his>> $NPCList[_nn].penisdesc as <<he>> cums. <span class="green">Semen streams down your throat</span> and fills your mouth. <<oralejacstat>><<ejacstat>><<cumswallow `$NPCList[_nn].type` null `npcSemenMod($NPCList[_nn].penissize)`>> <<case 1>> <<He>> ejaculates, and a dribble of semen leaks from <<his>> $NPCList[_nn].penisdesc onto the ground. <br><br> <<default>> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> cups your chin with one hand and your hair with the other, thrusting deep into your mouth as <<he>> cums. Ejaculate streams down your throat and fills your mouth. <<case 4 5 6>> <<He>> grasps the base of <<his>> $NPCList[_nn].penisdesc and moans as <<he>> ejaculates into your mouth. You feel warm cum drip down your throat. <<case 7>> <<He>> grasps your hair and thrusts <<his>> $NPCList[_nn].penisdesc into your mouth as <<he>> cums. Semen streams down your throat, fills your mouth and covers your face as <<he>> pulls out. <<set _postOrgasmSpeech to `"I just can't control myself with you."`>> <<faceejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <</switch>> <<oralejacstat>><<ejacstat>><<cumswallow `$NPCList[_nn].type` null `npcSemenMod($NPCList[_nn].penissize)`>> <</switch>> <<elseif $NPCList[_nn].penis is "feet">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> pushes your feet together and moans as <<he>> cums. Ejaculate covers your feet. <<set _postOrgasmSpeech to `"Your feet are just adorable!"`>> <<case 4 5 6>> <<He>> cums on your feet, slickening them with semen. <<set _postOrgasmSpeech to `"Next time I want to fuck you properly."`>> <<case 7>> <<He>> thrusts <<his>> $NPCList[_nn].penisdesc between your feet as <<he>> ejaculates, splattering your feet and legs with cum. <<set _postOrgasmSpeech to `"Look at the mess we made."`>> <<thighejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <</switch>> <<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "feet" "semen">> <<elseif $NPCList[_nn].penis is "leftarm" and $NPCList[_nn].penis is "rightarm">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> moans as <<he>> cums, penis pulsing in your hands, covering them both in cum. <<set _postOrgasmSpeech to `"I love your enthusiasm. Two handed handjobs are best."`>> <<case 4 5 6>> <<He>> cums on your hands, slickening them with semen. <<set _postOrgasmSpeech to `"I'd rather fuck you next time, but I like that you used both hands."`>> <<case 7>> <<He>> spasms and moans, shooting thick streams of cum. You are so intent on your work that you don't notice <<his>> $NPCList[_nn].penisdesc is aimed at your face, which ends up splattered. <<set _postOrgasmSpeech to `"Better look out next time."`>> <<faceejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <</switch>> <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "semen">><<bodyliquid "rightarm" "semen">> <<elseif $NPCList[_nn].penis is "leftarm">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> moans as <<he>> cums, <<his>> hot $NPCList[_nn].penisdesc sliding in your left hand and covering it with cum. <<set _postOrgasmSpeech to `"That was a nice change."`>> <<case 4 5 6>> <<He>> cums on your left hand. Semen drips down your fingers. <<set _postOrgasmSpeech to `"I'm gonna fuck you properly next time."`>> <<case 7>> <<He>> spasms and moans. Thick streams of cum and splatter over your <<breasts>>. <<set _postOrgasmSpeech to `"You're really good at hand jobs."`>> <<chestejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <</switch>> <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "semen">> <br><br> <<elseif $NPCList[_nn].penis is "rightarm">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> moans as you work <<his>> shaft with your right hand. You give <<him>> a final squeeze, and <<he>> cums. Your hand is covered in warm semen. <<set _postOrgasmSpeech to `"That was interesting."`>> <<case 4 5 6>> <<He>> cums on your right hand. <<set _postOrgasmSpeech to `"Next time I'll fuck you properly."`>> <<case 7>> <<He>> moans and shoots thick ropes of semen over your right hand. <<set _postOrgasmSpeech to `"You're such a hot thing."`>> <</switch>> <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "rightarm" "semen">> <<elseif $NPCList[_nn].penis is "leftDildoAnus">> <<switch random(1, 5)>> <<case 1 2>> <<He>> ?orgasmMoans as <<his>> body convulses, <<his>> thighs trembling against your $currentSexToyLeft.name. <<case 3 4>> <<His>> blush deepens and <<his>> mouth gapes as <<he>> cums against your $currentSexToyLeft.name. <<case 5>> <<He>> ?orgasmMoans and grasps your arm as your $currentSexToyLeft.name brings <<him>> to orgasm. <</switch>> <<handejacstat>><<ejacstat>><<set $hygiene += 500>> <<elseif $NPCList[_nn].penis is "rightDildoAnus">> <<switch random(1, 5)>> <<case 1 2>> <<He>> ?orgasmMoans as <<his>> body convulses, <<his>> thighs trembling against your $currentSexToyRight.name. <<case 3 4>> <<His>> blush deepens and <<his>> mouth gapes as <<he>> cums against your $currentSexToyRight.name. <<case 5>> <<He>> ?orgasmMoans and grasps your arm as your $currentSexToyRight.name brings <<him>> to orgasm. <</switch>> <<elseif $NPCList[_nn].penis is 0>> <<switch random(1, 5)>> <<case 1>> <<He>> moans as <<he>> works <<his>> shaft and, giving <<his>> $NPCList[_nn].penisdesc a final squeeze, ejaculates onto your tummy. <<set _postOrgasmSpeech to `"God, you're hot."`>> <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <<case 2>> <<He>> rubs <<his>> $NPCList[_nn].penisdesc and aims at your face before ejaculating, covering it with semen. <<set _postOrgasmSpeech to `"You're so cute. I just couldn't help myself."`>> <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <<case 3>> <<He>> strokes <<his>> $NPCList[_nn].penisdesc and, aiming at your ass, ejaculates on your bottom. <<set _postOrgasmSpeech to `"I could rub myself to you for hours."`>> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 4>> <<He>> strokes <<his>> $NPCList[_nn].penisdesc and moans, ejaculating on your <<breasts>>. <<set _postOrgasmSpeech to `"You look great with my cum on you."`>> <<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <<case 5>> <<He>> moans and rubs <<his>> $NPCList[_nn].penisdesc with wild strokes, sending cum flying over your chest and tummy. <<set _postOrgasmSpeech to `"You're so hot. I can't control myself."`>> <<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <<tummyejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <</switch>> <<elseif $NPCList[_nn].penis is "otheranus">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> groans as you fuck <<his>> ass, <<his>> ejaculate spraying on <<his>> own stomach. <<set _postOrgasmSpeech to `"That was great."`>> <<case 4 5>> <<He>> whimpers as you pound <<his>> ass, crying out as <<he>> ejaculates on the ground. <<set _postOrgasmSpeech to `"You made me feel like your <<bitch>>."`>> <<case 6 7>> <<He>> sighs as <<he>> ejaculates onto <<his>> own chest. <<set _postOrgasmSpeech to `"Being fucked by you makes me feel so hot."`>> <</switch>> <<elseif $NPCList[_nn].penis is "otheranusfrot" or $NPCList[_nn].penis is "otheranusentrance" or $NPCList[_nn].penis is "otheranusimminent">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> cums as you fuck <<his>> cheeks, grinding your <<penis>> against <<his>> ass to finish. <<set _postOrgasmSpeech to `"You should fuck me properly next time."`>> <<case 4 5>> <<He>> moans and ejaculates on the ground as you rub against <<his>> ass. <<set _postOrgasmSpeech to `"You're such a tease. I thought you were going to enter me, but I couldn't hold on."`>> <<case 6 7>> <<He>> sighs and ejaculates onto <<his>> own chest. <<set _postOrgasmSpeech to `"I love having my ass toyed with."`>> <</switch>> <<elseif $NPCList[_nn].penis is "penis" or $NPCList[_nn].penis is "penisentrance" or $NPCList[_nn].penis is "penisimminent">> <<He>> shakes with arousal as <<he>> cums all over your <<penis>>. <<set _postOrgasmSpeech to `"That was awesome."`>> <!-- Special case male PC being orally serviced by male NPC with no other contact --> <!-- This is picking up female NPCs as well --> <<elseif $NPCList[_nn].mouth is "penis">> <<if $speech_attitude is "meek">> <<He>> cums as you fuck <<his>> mouth, gasping against your <<penis>>. <<set _postOrgasmSpeech to `"I love giving head."`>> <<elseif $speech_attitude is "bratty">> <<He>> whimpers and cums on the ground as you grab <<his>> hair and pound <<his>> face. <<set _postOrgasmSpeech to `"Please, I can't take any more." You push <<him>> away.`>> <<else>> <<He>> grasps your <<bottom>> and drives your <<penis>> deep down <<his>> throat. <<He>> ejaculates on <<his>> chest as <<he>> gags on your cock. <<He>> gasps for air and smiles. <<set _postOrgasmSpeech to `"I love it when you abuse me."`>> <</if>> <<elseif $NPCList[_nn].penis is "othermouth">> <<He>> shakes with arousal as <<he>> cums. <<set _postOrgasmSpeech to `"That was awesome."`>> <<else>> <<He>> collapses in orgasmic bliss. <</if>> <!-- Start Non-Consensual --> <<else>> <<if _condomResult is "leaked">> <span class="red">The condom broke.</span> <<elseif _condomResult is "burst">> <span class="red">The tip of the condom bursts and rips, exposing the head of <<his>> penis.</span> <</if>> <<if $NPCList[_nn].penis is "idle">> <<He>> moans as a wet patch forms on <<his>> trousers. You laugh at the pathetic display, regardless of the danger <<he>> poses. <<elseif _condomResult is "contained">> <<genericCondomEjaculation>> <<elseif $NPCList[_nn].penis is "thighs">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> shakes as <<he>> cums, pulling <<his>> $NPCList[_nn].penisdesc out and ejaculating onto the back of your thighs. <<thighejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <<case 4 5 6>> <<He>> grasps your legs, slamming <<his>> crotch hard into your <<bottom>> as <<he>> cums between your thighs, <<his>> ejaculate flying onto your tummy. <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <<case 7>> <<He>> moans as <<he>> cums, ejaculating a massive load that covers your thighs and tummy. <<set _postOrgasmSpeech to `"Take that you little <<bitch>>."`>> <<thighejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <<tummyejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <</switch>> <<elseif ($NPCList[_nn].penis is "vaginaentrance" or $NPCList[_nn].penis is "vaginaentrancedouble") and playerChastity("vagina")>> <<He>> strokes <<his>> $NPCList[_nn].penisdesc and ejaculates onto your $worn.genitals.name, sending white streams of semen running down your thighs. <br><br> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">><<bodyliquid "thigh" "semen">> <<elseif $NPCList[_nn].penis is "vaginaentrance">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> grasps your <<bottom>> and tries to pull you onto <<him>> as <<he>> ejaculates over your <<pussy>>. Semen coats your outer labia and pools around your legs. <<case 4 5 6>> <<He>> rubs <<his>> $NPCList[_nn].penisdesc against your <<pussy>> with greater intensity as <<he>> ejaculates, covering your labia with semen. <<case 7>> <<He>> moans and rubs <<his>> $NPCList[_nn].penisdesc hard against your <<pussy>> as <<he>> cums, sending thick ropes of semen onto your labia and <<bottom>>. <<bottomejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <</switch>> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: $enemytype is "man" ? "human" : $NPCList[_nn].type, rngModifier: 5, rngType: "canWash"}`>> <<elseif $NPCList[_nn].penis is "vaginaimminent" and playerChastity("vagina")>> <<He>> ejaculates onto your $worn.genitals.name, sending white streams of semen running down your thighs. <<set _postOrgasmSpeech to `"Wish you weren't wearing that thing."`>> <br><br> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">><<bodyliquid "thigh" "semen">> <<elseif $NPCList[_nn].penis is "vaginaimminent">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> cums before penetrating your <<pussy>>, ejaculating on your labia and tummy. <span class="red"><<He>> slaps your <<bottom>> hard in anger.</span> <<gstress>><<gtrauma>><<gpain>><<violence 6>><<bruise bottom>><<hitstat>> <<case 4 5 6>> <<He>> ejaculates onto your <<pussy>> before penetrating you, sending white streams of semen onto your labia. <<set _postOrgasmSpeech to `"Fuck. I wanted that to go inside."`>> <<case 7>> <<He>> moans and spasms as <<he>> cums, trying to penetrate your <<pussy>> with desperate thrusts. <<He>> lacks the coordination mid-climax, instead sending thick ropes of semen over your labia and <<bottom>>. "I'm fucking you properly next time, slut." <<bottomejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <</switch>> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: $enemytype is "man" ? "human" : $NPCList[_nn].type, rngModifier: 15, rngType: "canWash"}`>> <<elseif $NPCList[_nn].penis is "vagina">> <<switch $NPCList[_nn].penissize>> <<case 4>> <<He>> convulses and pounds your crotch as <<he>> cums, <<his>> $NPCList[_nn].penisdesc sending thick waves of cum into your <<pussy>>. Semen drips from your vagina and down your legs. <<set _postOrgasmSpeech to `"Doesn't look like you can handle my load."`>> <<recordVaginalSperm "pc" $NPCList[_nn] `($enemytype is "man" ? "human" : $NPCList[_nn].type)`>> <<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vagina" "semen">> <<vaginalentranceejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<thighejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <<case 1>> <<He>> moans as a dribble of cum leaks from <<his>> $NPCList[_nn].penisdesc and over your <<pussy>>. <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: $enemytype is "man" ? "human" : $NPCList[_nn].type, rngModifier: 50, rngType: "canWash"}`>> <<default>> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> grabs your hair and thrusts <<his>> $NPCList[_nn].penisdesc deep into your <<pussy>> as <<he>> cums. You feel semen splash inside. <<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vagina" "semen">> <<recordVaginalSperm "pc" $NPCList[_nn] `($enemytype is "man" ? "human" : $NPCList[_nn].type)`>> <<case 4 5 6>> <<He>> <span class="purple">grasps your throat</span> and pounds <<his>> $NPCList[_nn].penisdesc into you as <<he>> cums. Semen fills your <<pussy>> as you gasp for air. <<gstress>><<gtrauma>><<gpain>><<violence 3>><<bruise neck>><<hitstat>> <<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vagina" "semen">> <<recordVaginalSperm "pc" $NPCList[_nn] `($enemytype is "man" ? "human" : $NPCList[_nn].type)`>> <<case 7>> <<He>> convulses and pounds your <<pussy>> as <<he>> cums. Rubbing against your <<clit>> and sending thick waves of cum into your body. Semen drips from your vagina and down your legs. <<set _postOrgasmSpeech to `"Didn't think you could handle my load."`>> <<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vagina" "semen">> <<vaginalentranceejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<thighejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <<recordVaginalSperm "pc" $NPCList[_nn] `($enemytype is "man" ? "human" : $NPCList[_nn].type)`>> <</switch>> <</switch>> <<elseif $NPCList[_nn].penis is "vaginaentrancedouble">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> grasps your <<bottom>> and tries to pull you onto <<him>> as <<he>> ejaculates over your <<pussy>>. Semen coats your outer labia and pools around your legs. <<case 4 5 6>> <<He>> rubs <<his>> $NPCList[_nn].penisdesc against your <<pussy>> with greater intensity as <<he>> ejaculates, covering your labia with semen. <<case 7>> <<He>> moans and rubs <<his>> $NPCList[_nn].penisdesc hard against your <<pussy>> as <<he>> cums, sending thick ropes of semen onto your labia and <<bottom>>. <<bottomejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <</switch>> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: $enemytype is "man" ? "human" : $NPCList[_nn].type, rngModifier: 5, rngType: "canWash"}`>> <<elseif $NPCList[_nn].penis is "vaginaimminentdouble" and playerChastity("vagina")>> <<set _otherNPCIndex to (_nn is $vaginatarget ? $vaginatarget : $vaginadoubletarget)>> <<switch random(2)>> <<case 0>> <<He>> ejaculates onto your $worn.genitals.name, sending white streams of semen running down your thighs. <<set _postOrgasmSpeech to `"Wish you weren't wearing that thing."`>> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">><<bodyliquid "thigh" "semen">> <<case 1>> <<He>> ejaculates onto your $worn.genitals.name, sending white streams of semen running down your thighs and <<personselect _otherNPCIndex>><<combatpersons>> <<npcPenisSimple _otherNPCIndex>>. <<set _postOrgasmSpeech to `"Fucking whore, look what I've done."`>> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">><<bodyliquid "thigh" "semen">> <<default>> <<He>> ejaculates onto your $worn.genitals.name, sending white streams of semen running down your thighs. <<set _postOrgasmSpeech to `"Wish you weren't wearing that thing."`>> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">><<bodyliquid "thigh" "semen">> <</switch>> <<elseif $NPCList[_nn].penis is "vaginaimminentdouble">> <<set _otherNPCIndex to (_nn is $vaginatarget ? $vaginadoubletarget : $vaginatarget)>> <<switch random(1, 7)>> <<case 1 2>> <<He>> cums before penetrating your <<pussy>>, ejaculating on your labia and tummy. <span class="red"><<He>> slaps your <<bottom>> hard in anger.</span> <<gstress>><<gtrauma>><<gpain>><<violence 6>><<bruise bottom>><<hitstat>> <<case 3 4>> <<He>> ejaculates onto your <<pussy>> before penetrating you, sending white streams of semen onto your labia. <<set _postOrgasmSpeech to `"Fuck. I wanted that to go inside."`>> <<case 5 6>> <<He>> cums before penetrating your <<pussy>>, ejaculating on your labia and all over <<personselect _otherNPCIndex>><<combatpersons>> <<npcPenis _otherNPCIndex>>. <span class="red"><<personselect _nn>><<He>> slaps your <<bottom>> hard in anger.</span> <<gstress>><<gtrauma>><<gpain>><<violence 6>><<bruise bottom>><<hitstat>> <<case 4 5>> <<He>> ejaculates onto your <<pussy>> before penetrating you, sending white streams of semen onto your labia. <<set _postOrgasmSpeech to `"Fuck. I wanted that to go inside."`>> <<case 7>> <<He>> moans and spasms as <<he>> cums, trying to penetrate your <<pussy>> with desperate thrusts. <<He>> lacks the coordination mid-climax, instead sending thick ropes of semen over your labia and <<bottom>>. "I'm fucking you properly next time, slut." <<bottomejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <</switch>> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: $enemytype is "man" ? "human" : $NPCList[_nn].type, rngModifier: 15, rngType: "canWash"}`>> <<elseif $NPCList[_nn].penis is "vaginadouble">> /* Noncon */ <<set _otherNPCIndex to (_nn is $vaginatarget ? $vaginadoubletarget : $vaginatarget)>> <<switch $NPCList[_nn].penissize>> <<case 4 5>> <<He>> convulses and <<print either("pounds","brutalises","thrusts deep into","rams")>> your crotch as <<he>> cums, <<his>> $NPCList[_nn].penisdesc sending thick waves of cum into your <<pussy>>. Semen drips from your vagina and down your legs. <<set _postOrgasmSpeech to [`"Doesn't look like you can handle my load."`,`"Learn how to take double stuffing, worthless whore."`,`"Look at the mess I made of your pussy!"`,`"We ruined your pussy. Dirty whore."`].random()>> <<recordVaginalSperm "pc" $NPCList[_nn] `($enemytype is "man" ? "human" : $NPCList[_nn].type)`>> <<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vagina" "semen">> <<vaginalentranceejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<thighejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <<case 1>> <<He>> moans as a dribble of cum leaks from <<his>> $NPCList[_nn].penisdesc, oozing over your <<pussy>> and <<personselect _otherNPCIndex>><<combatpersons>> <<npcPenis _otherNPCIndex>>. <<recordSperm `{target: "pc", spermOwner: $NPCList[_nn], spermType: $enemytype is "man" ? "human" : $NPCList[_nn].type, rngModifier: 50, rngType: "canWash"}`>> <<default>> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> grabs your hair and <<print either("pounds","brutalises","thrusts","rams")>> <<his>> $NPCList[_nn].penisdesc deep into your <<pussy>> as <<he>> cums. You feel unwelcome semen splash inside. <<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vagina" "semen">> <<recordVaginalSperm "pc" $NPCList[_nn] `($enemytype is "man" ? "human" : $NPCList[_nn].type)`>> <<case 4 5>> <<He>> <span class="purple">grasps your throat</span> and pounds <<his>> $NPCList[_nn].penisdesc into you as <<he>> cums. Semen fills your <<pussy>> as you gasp for air. <<gstress>><<gtrauma>><<gpain>><<violence 3>><<bruise neck>><<hitstat>> <<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vagina" "semen">> <<recordVaginalSperm "pc" $NPCList[_nn] `($enemytype is "man" ? "human" : $NPCList[_nn].type)`>> <<case 6>> <<He>> convulses and <<print either("pounds","brutalises","thrusts deep into","rams")>> your <<pussy>> as <<he>> cums, giving no heed to <<personselect _otherNPCIndex>><<combatpersons>> <<npcPenis _otherNPCIndex>>. Semen drips from your vagina and down your legs. <<set _postOrgasmSpeech to `"Filthy cum slut, take it!"`>> <<recordVaginalSperm "pc" $NPCList[_nn] `($enemytype is "man" ? "human" : $NPCList[_nn].type)`>> <<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vagina" "semen">> <<vaginalentranceejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<thighejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <<case 7>> <<He>> convulses and <<print either("pounds","brutalises","thrusts deep into","rams")>> your <<pussy>> as <<he>> cums. Rubbing against your <<clit>> and sending thick waves of cum into your body. Semen drips from your vagina and down your legs. <<set _postOrgasmSpeech to `"Didn't think you could handle my load."`>> <<recordVaginalSperm "pc" $NPCList[_nn] `($enemytype is "man" ? "human" : $NPCList[_nn].type)`>> <<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vagina" "semen">> <<vaginalentranceejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <<thighejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <</switch>> <</switch>> <<elseif $NPCList[_nn].penis is "cheeks">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> withdraws <<his>> $NPCList[_nn].penisdesc from your cheeks as <<he>> cums, ejaculating over your <<bottom>>. <span class="blue"><<He>> gives your rear a parting smack.</span> <<case 4 5 6>> <<He>> pinches your <<bottom>> and pulls you hard against <<his>> body as <<he>> ejaculates between your cheeks. <!-- Really should be onto PCs back given position. Or hair maybe. Esp next one --> <<case 7>> <<He>> squeezes your cheeks together and moans as <<he>> cums, ejaculating a massive load that covers your <<bottom>> and drips down your crotch. <<He>> laughs at the mess. <<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <!-- intentional dupe line, total of 1000 and 2 --> <</switch>> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<elseif $NPCList[_nn].penis is "anusentrance" and playerChastity("anus")>> <<He>> strokes <<his>> $NPCList[_nn].penisdesc as <<he>> ejaculates onto your <<bottom>>. Semen drips down your thighs. <br><br> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">><<bodyliquid "thigh" "semen">> <<elseif $NPCList[_nn].penis is "anusentrance">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> <span class="blue">spanks you</span> with one hand while stroking <<his>> $NPCList[_nn].penisdesc with the other. <<He>> ejaculates onto your <<bottom>> with a shudder. <<gstress>><<gtrauma>><<gpain>><<violence 3>><<bruise bottom>><<hitstat>> <<case 4 5 6>> <<He>> strokes <<his>> $NPCList[_nn].penisdesc as <<he>> ejaculates onto your <<bottom>>. You feel semen drip down. <<case 7>> <<He>> moans and strokes <<his>> $NPCList[_nn].penisdesc as <<he>> cums, sending thick ropes of semen onto your <<bottom>> and down your crotch. <<set _postOrgasmSpeech to `"What a dirty slut you are."`>> <<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <!-- intentional dupe line, total of 1000 and 2 --> <</switch>> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<recordSperm `{genital: "anus", target: "pc", spermOwner: $NPCList[_nn], spermType: $enemytype is "man" ? "human" : $NPCList[_nn].type, rngModifier: 5, rngType: "canWash"}`>> <<elseif $NPCList[_nn].penis is "anusimminent" and playerChastity("anus")>> <<He>> strokes <<his>> $NPCList[_nn].penisdesc and ejaculates onto your <<bottom>>, sending white streams of semen running down your thighs. <<set _postOrgasmSpeech to `"Fuck. If only this thing wasn't in the way."`>> <br><br> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">><<bodyliquid "thigh" "semen">> <<elseif $NPCList[_nn].penis is "anusimminent">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> cums before <<he>> can penetrate you, ejaculating onto your cheeks. Semen coats your <<bottom>>. <span class="red"><<He>> smacks your ass in frustration.</span> <<gstress>><<gtrauma>><<gpain>><<violence 6>><<bruise bottom>><<hitstat>> <<case 4 5 6>> <<He>> thrusts <<his>> $NPCList[_nn].penisdesc against you, desperate to penetrate your <<bottom>>, but cums too soon. White streams of semen splatter against your cheeks. <<set _postOrgasmSpeech to `"Fuck. I was so close."`>> <<case 7>> <<He>> thrusts <<his>> $NPCList[_nn].penisdesc against your <<bottom>> as <<he>> cums, sending thick ropes of semen onto your cheeks. <<set _postOrgasmSpeech to `"Next time I'm going balls deep."`>> <<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <!-- intentional dupe line, total of 1000 and 2 --> <</switch>> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<recordSperm `{genital: "anus", target: "pc", spermOwner: $NPCList[_nn], spermType: $enemytype is "man" ? "human" : $NPCList[_nn].type, rngModifier: 15, rngType: "canWash"}`>> <<elseif $NPCList[_nn].penis is "anus">> <<switch $NPCList[_nn].penissize>> <<case 4>> <<He>> convulses and, with a final shove of <<his>> $NPCList[_nn].penisdesc, cums in your <<bottom>>. Thick waves of semen pump into you. <span class="blue">You gasp as your ass overflows.</span> You feel it drip down your legs. <<set _postOrgasmSpeech to `"You need to learn how to take a cock. Don't worry, I'm sure you'll get lots of practice."`>> <<analejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "anus" "semen">> <<thighejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <<recordAnusSperm "pc" $NPCList[_nn] `($enemytype is "man" ? "human" : $NPCList[_nn].type)`>> <<case 1>> <<He>> moans as a pathetic dribble of cum leaks from <<his>> $NPCList[_nn].penisdesc and onto your <<bottom>>. <<recordSperm `{genital: "anus", target: "pc", spermOwner: $NPCList[_nn], spermType: $enemytype is "man" ? "human" : $NPCList[_nn].type, rngModifier: 50}`>> <<default>> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> moans, pounding your <<bottom>> without mercy as <<he>> cums. You whimper as you take <<his>> entire length and feel unwelcome semen streaming into your bowels. <<case 4 5 6>> <<He>> grasps your hair, pulling you hard onto <<his>> $NPCList[_nn].penisdesc as <<he>> cums. <span class="blue">You cry out as you feel semen fill you,</span> <<his>> length pulsing in your anus. <<case 7>> <<He>> convulses and, with a final shove of <<his>> $NPCList[_nn].penisdesc, cums in your <<bottom>>. Thick waves of semen pump into you. <span class="blue">You gasp as your ass overflows.</span> You feel it drip down your legs. <<set _postOrgasmSpeech to `"You need to learn how to take a cock. Don't worry, I'm sure you'll get lots of practice."`>> <<thighejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <</switch>> <<analejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "anus" "semen">> <<recordAnusSperm "pc" $NPCList[_nn] `($enemytype is "man" ? "human" : $NPCList[_nn].type)`>> <</switch>> <<elseif $NPCList[_nn].penis is "anusdouble">> /* State 1: One in, the other out State 2: both dicks inside */ <<set _dap to 0>> <<set _otherNPCindex to $anustarget>> <<if $anustarget is _nn>> /* State 1 is out of sync, state 2 is in sync */ <<set _otherNPCindex to $anusdoubletarget>> <<set _dap to ($NPCList[$anusdoubletarget].penis isnot "anusdouble" ? 1 : 2)>> <<elseif $anusdoubletarget is _nn>> <<set _otherNPCindex to $anustarget>> <<set _dap to ($NPCList[$anustarget].penis isnot "anusdouble" ? 1 : 2)>> <</if>> <<if _dap is 1>> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> moans, pounding your <<bottom>> without mercy as <<he>> cums. You whimper as you take <<his>> entire length, feeling unwelcome semen streaming into your bowels. <<case 4 5 6>> <<He>> grasps your hair, pulling you hard onto <<his>> $NPCList[_nn].penisdesc as <<he>> cums. <span class="blue">You cry out as you feel semen fill you,</span> <<his>> length pulsing in your anus. <<case 7>> <<He>> convulses and, with a final shove of <<his>> $NPCList[_nn].penisdesc, cums in your <<bottom>>. Thick waves of semen pump into you. <span class="blue">You gasp as your ass overflows.</span> You feel it drip down your legs. <<set _postOrgasmSpeech to `"You need to learn how to take a cock. Don't worry, I'm sure you'll get lots of practice."`>> <<thighejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <</switch>> <<else>> <<switch random(1, 7)>> <<case 1 2>> <<He>> moans, pounding your <<bottom>> and the $NPCList[_otherNPCindex].fullDescription's <<npcPenisSimple _otherNPCindex>> without mercy as <<he>> cums. You whimper as you take <<his>> entire length, feeling unwelcome semen streaming into your bowels. <<case 3 4>> <<He>> screams, ramming your <<bottom>> and the $NPCList[_otherNPCindex].fullDescription's <<npcPenisSimple _otherNPCindex>> savagely as <<he>> cums. You whimper as you take <<his>> entire length. Despite the pain, you can't help but enjoy the feel of semen streaming into your bowels. <<set _postOrgasmSpeech to `"I can't believe you took both of our cocks. I think I'm in love!"`>> <<case 5 6>> <<He>> grasps your hair, pulling you hard onto <<his>> $NPCList[_nn].penisdesc as <<he>> cums while giving no thought to the comfort of the other cock. <span class="blue">You cry out as you feel semen fill you,</span> <<his>> length pulsing in your anus. <<case 7>> <<He>> convulses and, with a final shove of <<his>> $NPCList[_nn].penisdesc, cums in your <<bottom>>. Thick waves of semen pump into you. <span class="blue">You gasp as your ass overflows.</span> You feel it drip down your legs. <<set _postOrgasmSpeech to `"You need to learn how to take two cocks. Don't worry, I'm sure you'll get lots of practice."`>> <<thighejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <</switch>> <</if>> <<analejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "anus" "semen">> <<gstress>><<gtrauma>><<gpain>><<violence 5>><<bruise bottom>><<hitstat>> <<recordAnusSperm "pc" $NPCList[_nn] `($enemytype is "man" ? "human" : $NPCList[_nn].type)`>> <<elseif $NPCList[_nn].penis is "anusimminentdouble" or $NPCList[_nn].penis is "anusentrancedouble">> <<set _otherNPCindex to 0>> <<if _nn is $anustarget>> <<set _otherNPCindex to $anusdoubletarget>> <<else>> <<set _otherNPCindex to $anustarget>> <</if>> <<switch random(1, 7)>> <<case 1 2>> <<He>> cums before <<he>> can penetrate you, accidentally ejaculating all over the $NPCList[_otherNPCindex].fullDescription and their $NPCList[_otherNPCindex].penisdesc. <<set _postOrgasmSpeech to `"That's what you get for not giving me a turn with <<pher>> slut ass!"`>> <<case 3 4>> <<He>> strokes <<his>> $NPCList[_nn].penisdesc as <<he>> ejaculates onto your <<bottom>>. You feel semen drip down. <<He>> slaps the $NPCList[_otherNPCindex].fullDescription's backside. <<set _postOrgasmSpeech to `"Next time let me join the fun."`>> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 5>> <<He>> thrusts <<his>> $NPCList[_nn].penisdesc against you and the $NPCList[_otherNPCindex].fullDescription's cock, desperate to penetrate your <<bottom>>, but cums too soon. White streams of semen splatter against your cheeks. <<set _postOrgasmSpeech to `"Fuck. I was so close."`>> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 6>> <<He>> moans and strokes <<his>> $NPCList[_nn].penisdesc as <<he>> cums, sending thick ropes of semen onto your <<bottom>>, down your crotch, and over the $NPCList[_otherNPCindex].fullDescription's thighs. <<set _postOrgasmSpeech to `"Such a dirty, teasing slut."`>> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 7>> <<He>> <span class="blue">spanks you</span> with one hand while stroking <<his>> $NPCList[_nn].penisdesc with the other. <<He>> ejaculates onto your <<bottom>> with a shudder. <<set _postOrgasmSpeech to `"Should've taken us both, <<bitch>>."`>> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<gstress>><<gtrauma>><<gpain>><<violence 3>><<bruise bottom>><<hitstat>> <</switch>> <<if $NPCList[_nn].penis is "anusentrance">> <<recordSperm `{genital: "anus", target: "pc", spermOwner: $NPCList[_nn], spermType: $enemytype is "man" ? "human" : $NPCList[_nn].type, rngModifier: 5, rngType: "canWash"}`>> <<else>> <<recordSperm `{genital: "anus", target: "pc", spermOwner: $NPCList[_nn], spermType: $enemytype is "man" ? "human" : $NPCList[_nn].type, rngModifier: 15, rngType: "canWash"}`>> <</if>> <<elseif $NPCList[_nn].penis is "chest">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> squeezes your <<breasts>> arounds <<his>> $NPCList[_nn].penisdesc as <<he>> cums, ejaculating onto them. <span class="pink"><<He>> finishes with a slap to your face.</span> <<gstress>><<gtrauma>><<gpain>><<violence 3>><<bruise face>><<hitstat>> <<case 4 5 6>> <<He>> grasps your hair and forces you to look at <<him>> while <<his>> $NPCList[_nn].penisdesc thrusts between your <<breasts>>. <<He>> shudders and ejaculates over them. <<set _postOrgasmSpeech to `"You should look at me while I use you for my pleasure." You feel warm semen slide down your body.`>> <<case 7>> <<He>> grasps your neck and pushes your face against <<his>> body as <<he>> fucks your <<breasts>>. Semen shoots over your <<if $position is "missionary">>face<<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">><<else>>stomach<<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">><</if>> as you gasp for air. <<set _postOrgasmSpeech to `"Next time you're swallowing it, you little <<bitch>>."`>> <</switch>> <<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <<elseif $NPCList[_nn].penis is "mouthentrance">> <<if $ejactrait>> <!-- Has cum-dump trait - Takes precedence --> <<He>> grabs your hair with one hand and strokes <<his>> $NPCList[_nn].penisdesc with the other as <<he>> sprays warm ejaculate across your face. Unable to help yourself at the smell of fresh cum, you start to scoop what you can off your face and into your mouth with your hands. You force yourself to stop once you realise what you're doing, disgusted with your own behaviour. <<garousal>><<gstress>><<gtrauma>> <<set _postOrgasmSpeech to `"You're actually getting off from this? No-good cum whore."`>> <<faceejacstat>><<ejacstat>><<set $hygiene += 300>><<bodyliquid "face" "semen">> <<cumswallow `$NPCList[_nn].type` null `npcSemenMod($NPCList[_nn].penissize)`>> <<else>> <<switch $NPCList[_nn].penissize>> <<case 4>> <<He>> holds <<his>> $NPCList[_nn].penisdesc tight, working it while aiming straight at your mouth. <span class="pink">You splutter and gag as thick ropes of cum push past your clenched lips.</span> <<set _postOrgasmSpeech to `"You need to learn to swallow, <<bitch>>."`>> <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <<cumswallow `$NPCList[_nn].type` null `npcSemenMod($NPCList[_nn].penissize)`>> <<case 1>> <<He>> moans as a pathetic dribble of cum leaks from <<his>> $NPCList[_nn].penisdesc and down your chin. You manage to hold in the laughter. <<default>> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> grasps your chin with one hand and strokes <<his>> $NPCList[_nn].penisdesc with the other as <<he>> ejaculates onto your face. <<He>> laughs as you cringe away from <<him>>. <<case 4 5 6>> <<He>> grasps your ear with one hand while stroking <<his>> $NPCList[_nn].penisdesc with the other. <<He>> cums on your face. <<set _postOrgasmSpeech to `"I love giving unwanted facials."`>> <<case 7>> <<He>> grasps your hair tight in <<his>> fist while stroking <<his>> $NPCList[_nn].penisdesc. <<He>> aims at your mouth as <<he>> cums. <span class="pink">You splutter and gag as thick ropes of cum push past your clenched lips and into your mouth.</span> <<set _postOrgasmSpeech to `"I love watching whores gag on cum."`>> <<cumswallow `$NPCList[_nn].type` null `npcSemenMod($NPCList[_nn].penissize)`>> <</switch>> <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <</switch>> <</if>> <<elseif $NPCList[_nn].penis is "mouthimminent">> <<if $ejactrait>> <!-- Has cum-dump trait - Takes precedence --> <<He>> grabs your hair with one hand and strokes <<his>> $NPCList[_nn].penisdesc with the other as <<he>> sprays warm ejaculate across your face. Unable to help yourself at the smell of fresh cum, you start to scoop what you can off your face and into your mouth with your hands. You force yourself to stop once you realise what you're doing, disgusted with your own behaviour. <<garousal>><<gstress>><<gtrauma>> <<set _postOrgasmSpeech to `"You're actually getting off from this? No-good cum whore."`>> <<faceejacstat>><<ejacstat>><<set $hygiene += 300>><<bodyliquid "face" "semen">> <<cumswallow `$NPCList[_nn].type` null `npcSemenMod($NPCList[_nn].penissize)`>> <<else>> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> grasps hair at the nape your neck and tries to push <<his>> $NPCList[_nn].penisdesc into your mouth. <<He>> ejaculates too soon, shooting cum over your lips. <span class="pink"><<He>> slaps you across the face.</span> <<set _postOrgasmSpeech to `"Next time you better swallow what I give you."`>> <<case 4 5 6>> <<He>> brushes <<his>> $NPCList[_nn].penisdesc against your lips, causing <<him>> to ejaculate early. Cum drips down your face. <<default>> <<He>> grasps your hair and tries to force <<his>> $NPCList[_nn].penisdesc into your mouth. <<Hes>> too excited and cums before <<he>> can enter you. Thick ropes of cum cover your cheeks and chin. Some makes it into your mouth. <<set _postOrgasmSpeech to `"Next time it's balls deep, <<bitch>>."`>> <<cumswallow `$NPCList[_nn].type` null `npcSemenMod($NPCList[_nn].penissize)`>> <</switch>> <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <</if>> <<elseif $NPCList[_nn].penis is "mouth">> <<switch $NPCList[_nn].penissize>> <<case 4>> <<He>> grasps your hair and thrusts down your throat, gagging you with <<his>> $NPCList[_nn].penisdesc as <<he>> cums. <span class="pink">You whimper as semen streams down your throat.</span> <<set _postOrgasmSpeech to `"I bet you enjoy being face fucked."`>> <<gstress>><<gtrauma>><<gpain>><<violence 3>><<bruise neck>><<hitstat>> <<case 1>> <<He>> thrusts <<his>> $NPCList[_nn].penisdesc as far into your mouth as possible. It's not much. A tiny dribble of semen leaks from the end of <<his>> penis and down your chin. <<default>> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> grasps your chin with one hand, and your hair with the other, then shoves <<his>> $NPCList[_nn].penisdesc down your throat. <<He>> cums at once. You gag and retch as unwanted semen streams down your throat, forcing you to swallow. <<case 4 5 6>> <<He>> <span class="blue">grasps your throat</span> for purchase as <<his>> $NPCList[_nn].penisdesc thrusts into your mouth. You gag as <<he>> ejaculates down your throat. <<gstress>><<gtrauma>><<gpain>><<violence 3>><<bruise neck>><<hitstat>> <<case 7>> <<He>> grasps your hair by the temples and thrusts <<his>> $NPCList[_nn].penisdesc down your throat as <<he>> cums. <span class="pink">You whimper as semen streams into you.</span> <<Hes>> still ejaculating when <<he>> pulls out, filling your mouth and splattering over your face. <<set _postOrgasmSpeech to `"Sluts like you are made to be dominated."`>> <<faceejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <<gstress>><<gtrauma>><<gpain>><<violence 3>><<bruise neck>><<hitstat>> <</switch>> <</switch>> <<oralejacstat>><<ejacstat>><<cumswallow `$NPCList[_nn].type` null `npcSemenMod($NPCList[_nn].penissize)`>> <<elseif $NPCList[_nn].penis is "feet">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> pushes your feet together and moans as <<he>> cums. Ejaculate covers your feet. <<set _postOrgasmSpeech to `"Next time I'm fucking you properly."`>> <<case 4 5 6>> <<He>> cums on your feet, leaving them slick with semen. <<set _postOrgasmSpeech to `"I didn't mean to cum so soon."`>> <<case 7>> <<He>> moans and thrusts <<his>> $NPCList[_nn].penisdesc between your feet as <<he>> cums, splattering semen onto your feet and legs. <<set _postOrgasmSpeech to `"Now you're nice and messy."`>> <<thighejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <</switch>> <<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "feet" "semen">> <<elseif $NPCList[_nn].penis is "leftarm" and $NPCList[_nn].penis is "rightarm">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> moans as <<he>> cums, <<his>> $NPCList[_nn].penisdesc pulsing in your hands. <<set _postOrgasmSpeech to `"I love your enthusiasm. Two handed handjobs are best."`>> <<case 4 5 6>> <<He>> cums on your hands, leaving them slick with semen. <<set _postOrgasmSpeech to `"I'm gonna fuck you next time, but I like that you used both hands."`>> <<case 7>> <<He>> spasms and moans, shooting thick streams of cum over your hands. You are so intent on your work you don't notice <<his>> $NPCList[_nn].penisdesc is aimed at your face. It gets splattered with semen. <<set _postOrgasmSpeech to `"Better look out next time."`>> <<faceejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <</switch>> <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "semen">><<bodyliquid "rightarm" "semen">> <<elseif $NPCList[_nn].penis is "leftarm">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> moans as <<he>> cums, <<his>> $NPCList[_nn].penisdesc sliding in your left hand and covering it with semen. <br><br> <<case 3 4>> <<He>> spasms and moans, shooting thick streams of cum over your hand. You are so intent on keeping <<him>> occupied that you don't notice that <<his>> $NPCList[_nn].penisdesc is aimed at your face. It gets splattered with semen. <<set _postOrgasmSpeech to `"Take that you cheeky cunt."`>> <<faceejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <<case 6 7>> <<He>> spasms and moans. Thick streams of cum shoot from <<his>> $NPCList[_nn].penisdesc, splattering your chest. <<set _postOrgasmSpeech to `"You need to learn to control cock better."`>> <<chestejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <</switch>> <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "semen">> <<elseif $NPCList[_nn].penis is "rightarm">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> moans as you work <<his>> shaft with your right hand. You give <<his>> $NPCList[_nn].penisdesc a final squeeze, and <<he>> cums on your wrist. <<case 4 5>> <<He>> spasms and moans, shooting thick streams of cum onto your hand. You are so intent on keeping <<him>> occupied you don't notice <<his>> $NPCList[_nn].penisdesc is aimed at your chest. <<His>> semen splatters onto your <<breasts>>. <<set _postOrgasmSpeech to `"You should lick that up, whore."`>> <<chestejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <<case 6 7>> <<He>> moans as thick ropes of semen erupt from <<his>> $NPCList[_nn].penisdesc and into the air. It lands on your hand. <<set _postOrgasmSpeech to `"Lick it up. Go on, you can't resist."`>> <</switch>> <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "rightarm" "semen">> <<elseif $NPCList[_nn].penis is 0>> <<switch random(1, 5)>> <<case 1>> <<He>> moans as <<he>> works <<his>> shaft and, giving <<his>> $NPCList[_nn].penisdesc a final squeeze, ejaculates onto your tummy. <<set _postOrgasmSpeech to `"Take that, whore."`>> <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <<case 2>> <<He>> aims at your face as <<he>> rubs <<his>> $NPCList[_nn].penisdesc, covering it with semen. <<set _postOrgasmSpeech to `"Your place is on your knees in service. Don't forget it."`>> <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <<case 3>> <<He>> strokes <<his>> $NPCList[_nn].penisdesc and, aiming it with care, ejaculates on your <<bottom>>. <<set _postOrgasmSpeech to `"That's warm up for next time."`>> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <<case 4>> <<He>> strokes <<his>> $NPCList[_nn].penisdesc and moans, ejaculating on your <<breasts>>. <<set _postOrgasmSpeech to `"I love watching cum drip down a used-up whore."`>> <<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <<case 5>> <<He>> moans as <<he>> rubs <<his>> $NPCList[_nn].penisdesc, sending cum flying all over your body. <<He>> grins as the last strings of ejaculate spurt from <<his>> cock. <<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <<tummyejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <</switch>> <<elseif $NPCList[_nn].penis is "otheranus">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> moans as you fuck <<his>> ass. <<He>> catches <<his>> ejaculate in <<his>> hands and stares at it. <<He>> looks ashamed. <<set _postOrgasmSpeech to `"Get off me. I'm done now."`>> /* <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> */ /* not sure why this is here */ <<case 4 5>> <<He>> whimpers as you pound <<his>> ass. Cum shoots from <<his>> $NPCList[_nn].penisdesc, splattering over the ground. <<case 6 7>> <<He>> sighs as <<he>> ejaculates onto <<his>> own chest. <<set _postOrgasmSpeech to `"You're a decent fuck toy. Next time I'm fucking that ass of yours."`>> <</switch>> <<elseif $NPCList[_nn].penis is "otheranusfrot" or $NPCList[_nn].penis is "otheranusentrance" or $NPCList[_nn].penis is "otheranusimminent">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> cums as you fuck <<his>> cheeks. You grind your <<penis>> against <<his>> ass to finish. <<set _postOrgasmSpeech to `"You'll get a beating if you don't fuck me properly next time."`>> <<case 4 5>> <<He>> moans and ejaculates on the ground as you rub against <<his>> anus. <<set _postOrgasmSpeech to `"Fuck. I wanted to feel you inside me."`>> <<case 6 7>> <<He>> sighs as <<he>> ejaculates onto <<his>> own chest. <<set _postOrgasmSpeech to `"Next time I'll do the fucking. Be ready."`>> <</switch>> <<elseif $NPCList[_nn].penis is "penis" or $NPCList[_nn].penis is "penisentrance" or $NPCList[_nn].penis is "penisimminent">> <<He>> shakes with arousal as <<he>> cums all over your <<penis>>. <<set _postOrgasmSpeech to `"That was awesome."`>> <!-- Special case male PC being orally serviced by male NPC with no other contact --> <<elseif $NPCList[_nn].mouth is "penis">> <<switch random(1, 7)>> <<case 1 2 3>> <<He>> cums as you fuck <<his>> mouth. <<He>> shoves you away, as if disgusted with <<himself>>. <<set _postOrgasmSpeech to `"I'm done. Get lost."`>> <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <<case 4 5>> <<He>> whimpers and cums on the ground as you grasp <<his>> hair and pound <<his>> face. <<He>> struggles away from your cock. <<set _postOrgasmSpeech to `"I'm finished. Fuck off."`>> <<case 6 7>> <<He>> <<print ($player.ballsExist ? "cups your balls" : "grabs your pussy")>> and painfully drives your <<penis>> down <<his>> throat. <<He>> ejaculates on <<his>> chest as <<he>> gags on your cock. <<set _postOrgasmSpeech to `"T-Topping from the bottom is my speciality, <<bitch>>."`>> <</switch>> <<elseif $NPCList[_nn].penis is "othermouth">> <<He>> shakes with arousal as <<he>> cums, before spitting on your face. <br><br> <<else>> <<He>> collapses in orgasmic bliss. <</if>> <</if>> <</if>> <<if _postOrgasmSpeech and $speechdisable isnot 1>> <<if _ejacStatDisplay>><br><</if>> <<if $role is "islander" and (!$islander_language or $islander_language lt 100)>> <<He>> says something you don't understand. <<else>> _postOrgasmSpeech <</if>> <<unset _postOrgasmSpeech>> <</if>> <br><br> <<if $settings.watersportsEnabled and $consensual is 0 and $enemyanger gte random(20, 200) and ($NPCList[_nn].penis is "none" or !$NPCList[_nn].penisdesc.includes("strap-on")) and _condomResult isnot "contained" and _args[0] isnot "short">> <<ejaculation-urinate>> <</if>> <</if>> <</if>> <</for>> <!-- END MAIN LOOP --> <!-- Finishing moves for consensual with low anger or non-consensual with enemy damage --> <<if _args[0] isnot "short">> <<if $npc.length is 0>> <<if $position isnot "wall">> <<if $punishmentposition isnot "gloryhole" and not $gloryhole>> <!-- Disregard named NPCs and Pillory / Wall --> <<if $consensual is 1 and $enemyanger lte 0 and $NPCList[0].fullDescription isnot "Ivory Wraith">> <<if $enemyno is 1>> <<switch random(1, 6)>> <<case 1 2>> <<He>> absently strokes you, <span class="green">making you feel warm inside.</span> <<lstress>><<ltrauma>><<lpain>><<violence -3>> <br><br> <<case 3 4>> <<He>> strokes your hair, <span class="green">making you feel warm inside.</span> <<lstress>><<ltrauma>><<lpain>><<violence -3>> <br><br> <<case 5 6>> <<He>> brushes your cheek with <<his>> hand. <<if $role is "islander" and (!$islander_language or $islander_language lt 100)>> <<He>> says something in <<his>> incomprehensible language, but <<his>> tone is warm. <span class="green">Your face flushes with pleasure.</span> <<else>> "You're so <<if $player.gender_appearance is "m">>handsome<<else>>beautiful<</if>>!" <span class="green">Your face flushes with pleasure.</span> <</if>> <<lstress>><<ltrauma>><<lpain>><<violence -3>> <br><br> <</switch>> <<elseif $enemyno gte 2>> They stroke you, <span class="green">making you feel warm inside.</span> <<lstress>><<ltrauma>><<lpain>><<violence -6>> <br><br> <</if>> <<elseif $consensual is 0 and $mouthuse is "facesit" and $enemyhealth lte ($enemyhealthmax / 10) * 9 and $NPCList[0].fullDescription isnot "Ivory Wraith">> <<if $mouthstate is "anal">> <<selectNpcWithPartInPosition "vagina" "facesitanal">> <<else>> <<selectNpcWithPartInPosition "vagina" "facesit">> <</if>> <<if $npcrow.includes(_j)>> <<print $npc[$npcrow.indexOf(_j)]>> <<else>> The <<person>> <</if>> <<if $role is "islander" and (!$islander_language or $islander_language lt 100)>> snarls and says something in <<his>> incomprehensible language. <<else>> snarls: "You shouldn't have resisted <<if $enemyno gte 2>>us<<else>>me<</if>>." <</if>> <br><br> <<switch random(1)>> <<case 0>> <<He>> presses down on your face as <<he>> reaches forward, pinching your <<nipples>> <<if $worn.upper.exposed lt 2 and $worn.under_upper.exposed lt 1>> through your <<top>>,<</if>> and twisting them hard. You cry out but it is heavily muffled by <<his>> pussy and ass. <<if $enemyno gte 2>> <<His>> <<if $enemyno gt 2>>friends laugh<<else>>friend laughs<</if>> as <<he>> tortures you like this, before <<he>> eventually gets up off of you. <<else>> <<He>> does this several times, torturing you like this while you are helpless under <<him>>, before <<he>> gets up. <</if>> <<gstress>><<gtrauma>><<gpain>><<violence 3>> <br><br> <<case 1>> <<He>> lifts up slightly, then drops down hard onto your face, crushing it under <<him>>. <<He>> then continues to butt drop onto your face, smashing it with <<his>> ass as <<he>> punishes you. <<if $enemyno gte 2>> <<His>> <<if $enemyno gt 2>>friends laugh<<else>>friend laughs<</if>> as <<he>> continues to abuse your face. <</if>> <<He>> finally stops and gets up off of your bruised face. <<gstress>><<gtrauma>><<gpain>><<bruise face>><<violence 3>> <br><br> <</switch>> <<elseif $consensual is 0 and $enemyhealth lte ($enemyhealthmax / 10) * 7.5 and $NPCList[0].type isnot "plant" and $NPCList[0].fullDescription isnot "Ivory Wraith">> <<if $enemyno is 1>> <<He>> <span class="red">punches you. You <<if playerBellySize(true) gte 8>>stagger and fall backwards.<<else>>double over.<</if>></span> <<if $role is "islander" and (!$islander_language or $islander_language lt 100)>> <<He>> shouts something in <<his>> language, before laughing at you. <<else>> "That's for struggling, <<bitch>>." <</if>> <<gstress>><<gtrauma>><<gpain>><<violence 6>> <br><br> <<elseif $enemyno is 2>> <<set $NPCList[0].intro to 1>> <<He>> holds your arms <span class="red">while the <<person2>><<person>> punches you. <<if playerBellySize(true) gte 8>>Your head spins.<<else>>You double over.<</if>></span> <<if $role is "islander" and (!$islander_language or $islander_language lt 100)>> They shout and jeer at you in their language, and you understand none of it. <<else>> "That'll teach you not to fight us, you little <<cunt>>." <</if>> <<gstress>><<gtrauma>><<gpain>><<violence 10>> <br><br> <<else>> <<set $NPCList[0].intro to 1>> <<He>> holds your arms <span class="red">while the others take turns punching you. <<if playerBellySize(true) gte 8>>Your head spins.<<else>>You double over.<</if>></span> <<if $role is "islander" and (!$islander_language or $islander_language lt 100)>> They shout and jeer at you in their language, and you understand none of it. <<else>> "Trying to fight us? You get what you deserve, you worthless slut." <</if>> <<gstress>><<gtrauma>><<gpain>><<violence 20>> <br><br> <</if>> <<elseif $consensual is 0 and $enemyhealth lte ($enemyhealthmax / 10) * 8.5 and $NPCList[0].type isnot "plant" and $NPCList[0].fullDescription isnot "Ivory Wraith">> <<if $enemyno is 1>> <<He>> <span class="pink">slaps you back and forth across the face.</span> <<if $role is "islander" and (!$islander_language or $islander_language lt 100)>> <<He>> shouts something at you. You don't understand it, but <<his>> tone demands submission. <<else>> "That's for struggling." <</if>> <<gstress>><<gtrauma>><<gpain>><<violence 3>> <br><br> <<elseif $enemyno is 2>> <<set $NPCList[0].intro to 1>> <<person1>> <<He>> holds your arms <span class="pink">while the <<person2>><<person>> slaps you back and forth across the face.</span> <<if $role is "islander" and (!$islander_language or $islander_language lt 100)>> <<He>> shouts something at you. You don't understand it, but <<his>> tone demands submission. <<else>> "That's what you get for struggling." <</if>> <<gstress>><<gtrauma>><<gpain>><<violence 5>> <br><br> <<else>> <<set $NPCList[0].intro to 1>> <<He>> holds your arms <span class="pink">while the others take turns slapping you across the face and chest.</span> <<if $role is "islander" and (!$islander_language or $islander_language lt 100)>> <<He>> shouts something at you. You don't understand it, but <<his>> tone demands submission. <<else>> "That's what you get for struggling." <</if>> <<gstress>><<gtrauma>><<gpain>><<violence 10>> <br><br> <</if>> <<elseif $consensual is 0 and $enemyhealth lt (($enemyhealthmax / 10) * 9.9) and $audience gte 10 and $NPCList[0].type isnot "plant" and $NPCList[0].fullDescription isnot "Ivory Wraith">> <<set $NPCList[0].intro to 1>> <<He>> thrusts you in front of the audience, grappling your arms. "Let's show <<phim>> what happens to feisty cunts." <span class="purple">The audience takes turns spitting on your chest and face while you writhe in discomfort.</span> <<faceejacstat>><<ejacstat>><<bodyliquid "face" "goo">> <<chestejacstat>><<bodyliquid "chest" "goo">> <<gstress>><<gtrauma>><<trauma 3>><<stress 3>> <br><br> <</if>> <</if>> <</if>> <</if>> <</if>> <<animateCombat>> <<fetishPregnancyImg>> <<set $ejaculating to 0>> <</widget>> <<widget "ejaculation-urinate">> <<if $NPCList[_nn].penis isnot "none">> <<switch random(1, 7)>> <<case 1>> <<He>> stands over your face and releases a stream of urine. <<case 2>> <<He>> stands over your body and releases a stream of urine. <<case 3>> <<He>> thrusts <<his>> pelvis forward and releases a stream of urine. <<case 4>> <<He>> stands over you and urinates. <<case 5>> <<He>> takes <<his>> cock in hand and pisses over your body. <<case 6>> <<He>> stands and pisses on you. <<default>> <<He>> holds you still, takes <<his>> cock in hand, and urinates on your face. <</switch>> <<else>> <<switch random(1, 7)>> <<case 1>> <<He>> squats over your face and releases a stream of urine. <<case 2>> <<He>> squats over your body and releases a stream of urine. <<case 3>> <<He>> thrusts <<his>> pelvis forward and releases a stream of urine. <<case 4>> <<He>> squats over you and urinates. <<case 5>> <<He>> squats and pisses over your body. <<case 6>> <<He>> squats and pisses on you. <<default>> <<He>> holds you still, squats, and urinates on your face. <</switch>> <</if>> <<if $role is "islander" and (!$islander_language or $islander_language lt 100)>> <<He>> sneers and says something in <<his>> incomprehensible language. <<else>> <<print either( `"Take that, meat toilet."`, `"This is all you're good for."`, `"Just marking my territory."`, `"Feeling humiliated? Good."`, `"That's right. This is what you're worth, slut."`, `"You make a good toilet."`, `"Just reminding you of your place."` )>> <</if>> <<ggtrauma>><<trauma 12>><<gstress>><<stress 6>> <<urinestat>> <br><br> <</widget>><<widget "beastejaculation">> <<set $ejaculating to 1>> <<set $enemyejaculated += 1>> <<set $pronoun to "i">> <<set _jj to $active_enemy>> <<set _npcisWolfType to ["wolf","wolfboy","wolfgirl"].includes($NPCList[_jj].type)>> <<set _npcisDogType to ["dog","dogboy","doggirl"].includes($NPCList[_jj].type)>> <<set _npcisFoxType to ["fox","foxboy","foxgirl"].includes($NPCList[_jj].type)>> <<set _legLocked to $leglocktarget is $active_enemy>> <<set _legLockedKnot to _legLocked ? 0.5 : 1>> <<set _pregnancyBoost to 0>> <!-- Male BEAST --> <<if $NPCList[_jj].penis is "thighs">> <<if $NPCList[_jj].penissize gte 5>> Ejaculate gushes from <<bhis>> <<print $NPCList[_jj].penisdesc>>, drenching your thighs and tummy. <<thighejacstat>><<tummyejacstat>><<ejacstat>><<set $hygiene += 5000>><<bodyliquid "thigh" "semen" 5>><<bodyliquid "tummy" "semen" 5>> <<else>> <<bHe>> ejaculates onto your thighs. <<thighejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "thigh" "semen">> <</if>> <</if>> <<if $NPCList[_jj].penis is "vaginaentrance">> <<if $NPCList[_jj].penissize gte 5>> <<if playerChastity("vagina")>> Ejaculate gushes from <<bhis>> <<print $NPCList[_jj].penisdesc>>, drenching your $worn.genitals.name and flowing over your thighs. <<else>> Ejaculate gushes from <<bhis>> <<print $NPCList[_jj].penisdesc>>, drenching your <<pussy>> and flowing over your thighs. <<recordSperm `{target: "pc", spermOwner: $NPCList[_jj], spermType: $NPCList[_jj].type, rngModifier: 5, rngType: "canWash"}`>> <</if>> <<vaginalentranceejacstat>><<thighejacstat>><<ejacstat>><<set $hygiene += 5000>><<bodyliquid "vaginaoutside" "semen" 5>> <<else>> <<if playerChastity("vagina")>> <<bHe>> ejaculates onto your $worn.genitals.name. <<else>> <<bHe>> ejaculates onto your <<pussy>>. <<recordSperm `{target: "pc", spermOwner: $NPCList[_jj], spermType: $NPCList[_jj].type, rngModifier: 5, rngType: "canWash"}`>> <</if>> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <</if>> <</if>> <<if $NPCList[_jj].penis is "vaginaimminent">> <<if $NPCList[_jj].penissize gte 5>> <<if playerChastity("vagina")>> Ejaculate gushes from <<bhis>> <<print $NPCList[_jj].penisdesc>>, drenching your $worn.genitals.name and flowing over your thighs. <<else>> Ejaculate gushes from <<bhis>> <<print $NPCList[_jj].penisdesc>>, drenching your <<pussy>> and flowing over your thighs. <<recordSperm `{target: "pc", spermOwner: $NPCList[_jj], spermType: $NPCList[_jj].type, rngModifier: 15, rngType: "canWash"}`>> <</if>> <<vaginalentranceejacstat>><<thighejacstat>><<ejacstat>><<set $hygiene += 5000>><<bodyliquid "vaginaoutside" "semen" 5>> <<else>> <<if playerChastity("vagina")>> <<bHe>> ejaculates onto your $worn.genitals.name. <<else>> <<bHe>> ejaculates onto your <<pussy>>. <<recordSperm `{target: "pc", spermOwner: $NPCList[_jj], spermType: $NPCList[_jj].type, rngModifier: 15, rngType: "canWash"}`>> <</if>> <<vaginalentranceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vaginaoutside" "semen">> <</if>> <</if>> <<if $NPCList[_jj].penis is "vagina">> <<if (random(1, 100) gte 81 * _legLockedKnot and (_npcisDogType or _npcisFoxType)) or (random(1, 100) gte 61 * _legLockedKnot and _npcisWolfType) or _args[0] is "knot">> With a final thrust, <<bhe>> forces <<bhis>> knot into your <<pussy>>. <<bHe>> ejaculates deep into your womb. You feel the semen build within you, its exit plugged. The <<beasttype>> climbs off and faces away from you, but <<if _args[0] is "knot">> <<set _knotted to "vagina">> you remain locked together. <<else>> <<set _knotted_short to "vagina">> you're locked together for a humiliating five minutes until the knot shrinks enough that the <<beasttype>> can wiggle it free. <<pass 5>> <</if>> <<knot_stat>> <<if _npcisWolfType>><<transform wolf 1>><</if>> <<if _npcisFoxType>><<transform fox 1>><</if>> <<set _pregnancyBoost to 25>> <<elseif ["boar", "pig"].some(type => $NPCList[_jj].type.includes(type))>> Ejaculate streams from the <<print $NPCList[_jj].type>>'s <<print $NPCList[_jj].penisdesc>>. You're stuck for many humiliating minutes, the <<print $NPCList[_jj].type>>'s cock steadily filling your womb. <br> <<if $audiencepresent gte 1>> The audience enjoys the show. <br> <<print either( `"I can't believe it. <<silently>><<bred>><</silently>><<capitalise>> by a pig."`, `"I bet <<pshe>> loves getting pig-fucked like this."` )>> <br> <<print either( `"What a filthy slut."`, `"Getting what a slut deserves."` )>> <br> <<print either( `"I wonder how pig cock feels."`, `"This <<bitch>> would fuck the whole sty."` )>> <br> <</if>> <br> Despite filling to the brim, the semen doesn't leak out. You remain full even as the <<print $NPCList[_jj].type>> wiggles free. Then you feel a pressure lift, and a plug of hard semen drops to the ground. <<print $NPCList[_jj].type.includes("pig") ? "Pig" : "Boar">> cum flows out after it, covering your thighs. <<bodyliquid "vagina" "semen" 2>><<bodyliquid "vaginaoutside" "semen" 2>><<bodyliquid "thigh" "semen">><<pass 30>><<vaginalentranceejacstat>><<thighejacstat>> <<elseif $NPCList[_jj].penissize gte 5>> Ejaculate gushes from <<bhis>> <<print $NPCList[_jj].penisdesc>>, filling your womb and flowing from your <<pussy>> in a great torrent. <<vaginalentranceejacstat>><<set $hygiene += 4500>><<bodyliquid "vagina" "semen" 4>><<bodyliquid "vaginaoutside" "semen" 5>> <<else>> <<bHe>> ejaculates deep into your womb. <</if>> <<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vagina" "semen">> <<recordSperm `{target: "pc", spermOwner: $NPCList[_jj], spermType: $NPCList[_jj].type, rngModifier: 100 + _pregnancyBoost}`>> <<if _npcisWolfType>><<transform wolf 1>><</if>> <<if _npcisFoxType>><<transform fox 1>><</if>> <</if>> <<if $NPCList[_jj].penis is "cheeks">> <<if $NPCList[_jj].penissize gte 5>> Ejaculate gushes from <<bhis>> <<print $NPCList[_jj].penisdesc>>, surging over your back and onto your hair, some flowing over your <<bottom>>. <<bottomejacstat>><<hairejacstat>><<ejacstat>><<set $hygiene += 5000>><<bodyliquid "bottom" "semen" 5>><<bodyliquid "hair" "semen" 5>> <<else>> <<bHe>> ejaculates onto your back. <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <</if>> <</if>> <<if $NPCList[_jj].penis is "anusentrance">> <<if $NPCList[_jj].penissize gte 5>> <<if playerChastity("anus")>> Ejaculate gushes from <<bhis>> <<print $NPCList[_jj].penisdesc>>, drenching your $worn.genitals.name and flowing over your thighs. <<else>> Ejaculate gushes from <<bhis>> <<print $NPCList[_jj].penisdesc>>, drenching your <<bottom>> and flowing over your thighs. <<recordSperm `{genital: "anus", target: "pc", spermOwner: $NPCList[_jj], spermType: $NPCList[_jj].type, rngModifier: 5, rngType: "canWash"}`>> <</if>> <<bottomejacstat>><<thighejacstat>><<ejacstat>><<set $hygiene += 5000>><<bodyliquid "bottom" "semen" 5>><<bodyliquid "thigh" "semen" 5>> <<else>> <<if playerChastity("anus")>> <<bHe>> ejaculates onto your $worn.genitals.name. <<else>> <<bHe>> ejaculates onto your <<bottom>>. <<recordSperm `{genital: "anus", target: "pc", spermOwner: $NPCList[_jj], spermType: $NPCList[_jj].type, rngModifier: 5, rngType: "canWash"}`>> <</if>> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <</if>> <</if>> <<if $NPCList[_jj].penis is "anusimminent">> <<if $NPCList[_jj].penissize gte 5>> <<if playerChastity("anus")>> Ejaculate gushes from <<bhis>> <<print $NPCList[_jj].penisdesc>>, drenching your $worn.genitals.name and flowing over your thighs. <<else>> Ejaculate gushes from <<bhis>> <<print $NPCList[_jj].penisdesc>>, drenching your <<bottom>> and flowing over your thighs. <<recordSperm `{genital: "anus", target: "pc", spermOwner: $NPCList[_jj], spermType: $NPCList[_jj].type, rngModifier: 15, rngType: "canWash"}`>> <</if>> <<bottomejacstat>><<thighejacstat>><<ejacstat>><<set $hygiene += 5000>><<bodyliquid "bottom" "semen" 5>><<bodyliquid "thigh" "semen" 5>> <<else>> <<if playerChastity("anus")>> <<bHe>> ejaculates onto your $worn.genitals.name. <<else>> <<bHe>> ejaculates onto your <<bottom>>. <<recordSperm `{genital: "anus", target: "pc", spermOwner: $NPCList[_jj], spermType: $NPCList[_jj].type, rngModifier: 15, rngType: "canWash"}`>> <</if>> <<bottomejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "bottom" "semen">> <</if>> <</if>> <<if $NPCList[_jj].penis is "anus">> <<if (random(1, 100) gte 81 * _legLockedKnot and (_npcisDogType or _npcisFoxType)) or (random(1, 100) gte 61 * _legLockedKnot and _npcisWolfType) or _args[0] is "knot">> With a final thrust, <<bhe>> forces <<bhis>> knot into your <<bottom>>. <<bHe>> ejaculates deep into your bowels. You feel the semen build within you, its exit plugged. The <<beasttype>> climbs off and faces away from you, but <<if _args[0] is "knot">> <<set _knotted to "anus">> you remain locked together. <<else>> <<set _knotted_short to "anus">> you're locked together for a humiliating five minutes until the knot shrinks enough that the <<beasttype>> can wiggle it free. <<pass 5>> <</if>> <<knot_stat>> <<if _npcisWolfType>><<transform wolf 1>><</if>> <<if _npcisFoxType>><<transform fox 1>><</if>> <<set _pregnancyBoost to 25>> <<elseif ["boar", "pig"].some(type => $NPCList[_jj].type.includes(type))>> Ejaculate streams from the <<print $NPCList[_jj].type>>'s <<print $NPCList[_jj].penisdesc>>. You're stuck for many humiliating minutes, the <<print $NPCList[_jj].type>>'s cock steadily filling your ass. <br> <<if $audiencepresent gte 1>> The audience enjoys the show. <br> <<print either( `"I can't believe it. <<silently>><<bred>><</silently>><<capitalise>> by a pig."`, `"I bet <<pshe>> loves getting pig-fucked like this."` )>> <br> <<print either( `"What a filthy slut."`, `"Getting what a slut deserves."` )>> <br> <<print either( `"I wonder how pig cock feels."`, `"This <<bitch>> would fuck the whole sty."` )>> <br> <</if>> <br> Despite filling to the brim, the semen doesn't leak out. You remain full even as the <<print $NPCList[_jj].type>> wiggles free. Then you feel a pressure lift, and a plug of hard semen drops to the ground. <<print $NPCList[_jj].type.includes("pig") ? "Pig" : "Boar">> cum flows out after it, covering your thighs. <<bodyliquid "anus" "semen" 2>><<bodyliquid "bottom" "semen" 2>><<bodyliquid "thigh" "semen">><<pass 30>><<bottomejacstat>><<thighejacstat>> <<elseif $NPCList[_jj].penissize gte 5>> Ejaculate gushes from <<bhis>> <<print $NPCList[_jj].penisdesc>>, filling your bowels and surging outside, drenching your <<bottom>>. <<bottomejacstat>><<set $hygiene += 4500>><<bodyliquid "anus" "semen" 4>><<bodyliquid "bottom" "semen" 5>><<set $hunger -= 1800>><<set $thirst -= 1800>> <<else>> <<bHe>> ejaculates into your bowels. <</if>> <<analejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "anus" "semen">><<set $hunger -= 200>><<set $thirst -= 200>> <<recordSperm `{target: "pc", spermOwner: $NPCList[_jj], spermType: $NPCList[_jj].type, rngModifier: 100 + _pregnancyBoost, genital:"anus"}`>> <<if _npcisWolfType>><<transform wolf 1>><</if>> <<if _npcisFoxType>><<transform fox 1>><</if>> <</if>> <<if $NPCList[_jj].penis is "chest">> <<if $position is "missionary">> <<bHe>> ejaculates onto your neck and chest. <<neckejacstat>><<set $hygiene += 500>><<bodyliquid "neck" "semen">> <<else>> <<bHe>> ejaculates onto your stomach and chest. <<tummyejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <</if>> <<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <</if>> <<if $NPCList[_jj].penis is "mouthentrance">> <<bHe>> ejaculates onto your face. <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <</if>> <<if $NPCList[_jj].penis is "mouthimminent">> <<switch random(1, 3)>> <<case 1 2>> <<bHe>> ejaculates onto your face. <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <<case 3>> <<bHe>> ejaculates a massive load onto your face, pushing past your pursed lips and into your mouth. <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" "semen">> <<if _npcisWolfType>><<transform wolf 1>><</if>> <<if _npcisFoxType>><<transform fox 1>><</if>> <</switch>> <</if>> <<if $NPCList[_jj].penis is "mouth">> <<if (random(1, 100) gte 81 and (_npcisDogType or _npcisFoxType)) or (random(1, 100) gte 61 and _npcisWolfType) or _args[0] is "knot">> With a final thrust, <<bhe>> forces <<bhis>> knot past your teeth as <<bhe>> ejaculates deep down your throat, <span class="pink">forcing you to swallow.</span> <<if $pain gte 40>>Tears run down your face<<else>>You gag<</if>> as you feel <<bhis>> cum backwash into your mouth. The <<beasttype>> climbs off and faces away from you, but <<if _args[0] is "knot">> <<set _knotted to "mouth">> you remain locked together. <<else>> <<set _knotted_short to "mouth">> <<pass 5>> you're locked together for a humiliating five minutes until the knot shrinks enough that the <<beasttype>> can wiggle it free. <</if>> <<knot_stat>> <<cumswallow `$NPCList[_jj].type` null "knotted">> <<if _npcisWolfType>><<transform wolf 1>><</if>> <<if _npcisFoxType>><<transform fox 1>><</if>> <<else>> <<bHe>> ejaculates down the back of your throat. <<cumswallow `$NPCList[_jj].type` null `npcSemenMod($NPCList[_jj].penissize)`>> <</if>> <<oralejacstat>><<ejacstat>> <<if _npcisWolfType>><<transform wolf 1>><</if>> <<if _npcisFoxType>><<transform fox 1>><</if>> <</if>> <<if $NPCList[_jj].penis is "feet">> <<bHe>> ejaculates on your feet. <<feetejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "feet" "semen">> <</if>> <<if $NPCList[_jj].penis is "leftarm" and $NPCList[_jj].penis is "rightarm">> <<bHe>> ejaculates on your hands. <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "semen">><<bodyliquid "rightarm" "semen">> <</if>> <<if $NPCList[_jj].penis is "leftarm">><<bHe>> ejaculates on your hand. <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "leftarm" "semen">> <</if>> <<if $NPCList[_jj].penis is "rightarm">><<bHe>> ejaculates on your hand. <<handejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "rightarm" "semen">> <</if>> <<if $NPCList[_jj].penis is "otheranusentrance" or $NPCList[_jj].penis is "otheranusimminent">> The <<beasttype>> ejaculates as you frot <<bhis>> ass. <</if>> <<if $NPCList[_jj].penis is "otheranus">> The <<beasttype>> ejaculates as you pound <<bhis>> ass. <<if _npcisWolfType>><<transform wolf 1>><</if>> <<if _npcisFoxType>><<transform fox 1>><</if>> <</if>> <<if $NPCList[_jj].penis is 0>> <<if $NPCList[_jj].stance is "topface">> <<bHe>> ejaculates onto your neck. <<neckejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "neck" "semen">> <<else>> <<bHe>> ejaculates onto your tummy. <<tummyejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <</if>> <</if>> <<if $NPCList[_jj].penis is "penis" or $NPCList[_jj].penis is "penisentrance" or $NPCList[_jj].penis is "penisimminent">> <<if $position is "missionary">> <<bHe>> ejaculates onto your chest and neck. <<chestejacstat>><<neckejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <<else>> <<bHe>> ejaculates onto your stomach and <<penisSimple>>. <<tummyejacstat>><<set $hygiene += 500>><<bodyliquid "tummy" "semen">> <</if>> <<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "chest" "semen">> <<if _npcisWolfType>><<transform wolf 1>><</if>> <<if _npcisFoxType>><<transform fox 1>><</if>> <</if>> <!-- Female BEAST --> <<if $NPCList[_jj].vagina is "penisimminent" or $NPCList[_jj].vagina is "penisentrance">> <<if playerChastity("penis")>> You feel the vibrations from your $worn.genitals.name as the $NPCList[_jj].type orgasms. <<else>> You feel the heat radiate on your <<penis>> as the <<beasttype>> orgasms. <</if>> <</if>> <<if $NPCList[_jj].vagina is "penis">> The <<beasttype>> orgasms on your <<penis>>, pulsing around your length. <<if _npcisWolfType>><<transform wolf 1>><</if>> <<if _npcisFoxType>><<transform fox 1>><</if>> <</if>> <<if ($NPCList[_jj].vagina is "vaginaentrance" or $NPCList[_jj].vagina is "vaginaimminent") and playerChastity("vagina")>> You feel the vibrations from your $worn.genitals.name as the $NPCList[_jj].type orgasms. <<elseif $NPCList[_jj].vagina is "vaginaentrance" or $NPCList[_jj].vagina is "vaginaimminent">> You feel the heat radiate on your <<pussy>> as the <<beasttype>> orgasms. <</if>> <<if $NPCList[_jj].vagina is "vagina" and playerChastity("vagina")>> You feel the vibrations on your $worn.genitals.name as the $NPCList[_jj].type orgasms. <<elseif $NPCList[_jj].vagina is "vagina">> You feel the heat radiate on your <<pussy>> as the <<beasttype>> orgasms. Fluid leaks from the <<beasttype>> and mixes with yours. <<if _npcisWolfType>><<transform wolf 1>><</if>> <<if _npcisFoxType>><<transform fox 1>><</if>> <</if>> <<if $NPCList[_jj].vagina is "mouthimminent">> You feel the heat radiate on your face as the <<beasttype>> orgasms. <</if>> <<if $NPCList[_jj].vagina is "mouthentrance">> You feel the heat radiate on your face as the <<beasttype>> orgasms. <</if>> <<if $NPCList[_jj].vagina is "mouth">> The <<beasttypes>> pussy shudders against your mouth as it orgasms. Fluid from the <<beasttype>> mixes with your saliva. <<if _npcisWolfType>><<transform wolf 1>><</if>> <<if _npcisFoxType>><<transform fox 1>><</if>> <</if>> <<if $NPCList[_jj].vagina is "otheranusentrance" or $NPCList[_jj].vagina is "otheranusimminent">> The <<beasttype>> shudders in orgasm as you frot its ass. <</if>> <<if $NPCList[_jj].vagina is "otheranus">> The <<beasttype>> shudders in orgasm as you pound its ass. <<if _npcisWolfType>><<transform wolf 1>><</if>> <<if _npcisFoxType>><<transform fox 1>><</if>> <</if>> <<if $NPCList[_jj].mouth is "penis">> The <<beasttype>> shudders in orgasm as you fuck its mouth. <<if _npcisWolfType>><<transform wolf 1>><</if>> <<if _npcisFoxType>><<transform fox 1>><</if>> <</if>> <<if $NPCList[_jj].vagina is 0>> The <<beasttype>> shudders in orgasm. <</if>> <!-- End orgasm loop --> <!-- PC reaction loop --> <<if $consensual is 1>> <<if hasSexStat("deviancy", 5)>> <<print either("You feel lewd,", "You feel a thrill,", "You feel lusty,")>> <<elseif hasSexStat("deviancy", 2)>> <<print either("You feel lewd,", "You feel a glow,", "You feel titillated,")>> <<else>> <<print either("You feel squeamish,", "You feel unsettled,", "You feel uncomfortable,")>> <</if>> <<if $NPCList[_jj].penis is "anus" or $NPCList[_jj].penis is "mouth" or $NPCList[_jj].penis is "vagina">> having been fucked by the <<elseif $NPCList[_jj].vagina is "penis" or $NPCList[_jj].mouth is "penis" or $NPCList[_jj].vagina is "otheranus">> having fucked the <<elseif $NPCList[_jj].vagina isnot "none" and $NPCList[_jj].penis is "none">> having been used by the <<else>> having pleasured yourself with a <</if>> <<if $audience gte 6 or $pillory.audience gte 6>> <<beasttype>> in front of a crowd.<<elseif $audiencepresent gte 1 or $pillory.audience gte 1>> <<beasttype>> in front of others.<<else>><<beasttype>>.<</if>> <<else>> <<if hasSexStat("deviancy", 5)>> <<print either("You feel ashamed,", "You feel embarrassed,", "You feel distraught,")>> <<elseif hasSexStat("deviancy", 2)>> <<print either("You feel nauseous,", "You feel sick,", "You feel gross,")>> <<else>> <<print either("You feel wretched,", "You feel repugnant,", "You feel loathsome,")>> <</if>> <<if $NPCList[_jj].penis is "anus" or $NPCList[_jj].penis is "mouth" or $NPCList[_jj].penis is "vagina">> having been fucked by a <<beasttype>> <<elseif $NPCList[_jj].vagina is "penis" or $NPCList[_jj].mouth is "penis" or $NPCList[_jj].vagina is "otheranus">> having fucked a <<beasttype>> <<elseif $NPCList[_jj].vagina isnot "none" and $NPCList[_jj].penis is "none">> having been abused by a <<beasttype>> <<else>> having pleasured a <<beasttype>> <</if>> <<if $audience gte 6 or $pillory.audience gte 6>> in front of a crowd.<<elseif $audiencepresent gte 1 or $pillory.audience gte 1>> in front of others.<<else>> against your will.<</if>> <</if>> <<animateCombat>> <<fetishPregnancyImg>> <<set $active_enemy += 1>> <<if _args[0] isnot "short">> <<if $water is 0>> <<if _knotted is "vagina" or _knotted is "anus">> <<bHis>> knot remains tight within you, preventing the semen from leaking out. <br><br> <<elseif _knotted is "mouth">> <<bHis>> knot remains tight within you, leaving you gagged. <br><br> <<elseif playerHasButtPlug() and $NPCList[_jj].penis is "anus">> Your $worn.butt_plug.name prevents the semen from leaking out. <<elseif $NPCList[_jj].penis is "vagina" or $NPCList[_jj].penis is "anus">> <<set $semenpuddle += 1>> <<bHis>> penis slides out; lacking anything to hold it in, semen drools out and <<switch Math.clamp($semenpuddle, 1,4)>> <<case 1>> forms a puddle beneath you. <<case 2>> adds to the puddle beneath you. <<case 3>> adds to the growing puddle beneath you. <<case 4>> adds to the growing pool beneath you. <</switch>> <br><br> <</if>> <<if !_knotted and $settings.watersportsEnabled and $enemyanger gte random(20, 200)>> <<if $NPCList[_jj].type.includes("dog") or $NPCList[_jj].type.includes("wolf")>> <<bHe>> raises a leg and urinates on you for good measure, marking <<bhis>> territory. <<else>> <<bHe>> urinates on you for good measure, marking <<bhis>> territory. <</if>> <<urinestat>> <br><br> <</if>> <</if>> <</if>> <!-- Index BEAST to next up --> <<switch $active_enemy>> <<case 0>> <<set $enemyarousal to $enemyarousal1>> <<set $enemyanger to $enemyanger1>> <<set $enemyhealth to $enemyhealth1>> <<set $enemytrust to $enemytrust1>> <<case 1>> <<set $enemyarousal to $enemyarousal2>> <<set $enemyanger to $enemyanger2>> <<set $enemyhealth to $enemyhealth2>> <<set $enemytrust to $enemytrust2>> <<case 2>> <<set $enemyarousal to $enemyarousal3>> <<set $enemyanger to $enemyanger3>> <<set $enemyhealth to $enemyhealth3>> <<set $enemytrust to $enemytrust3>> <<case 3>> <<set $enemyarousal to $enemyarousal4>> <<set $enemyanger to $enemyanger4>> <<set $enemyhealth to $enemyhealth4>> <<set $enemytrust to $enemytrust4>> <<case 4>> <<set $enemyarousal to $enemyarousal5>> <<set $enemyanger to $enemyanger5>> <<set $enemyhealth to $enemyhealth5>> <<set $enemytrust to $enemytrust5>> <<case 5>><!-- Should be unused case --> <<set $enemyarousal to $enemyarousal6>> <<set $enemyanger to $enemyanger6>> <<set $enemyhealth to $enemyhealth6>> <<set $enemytrust to $enemytrust6>> <<default>> <span class="red">ERROR: Beastejac index error</span> <</switch>> <<if $player.vaginaExist>> <<set $vaginause to 0>> <<set $vaginastate to 0>> <</if>> <<if playerHasStrapon() or $player.penisExist>> <<set $penisuse to 0>> <<set $penisstate to 0>> <</if>> <<set $mouthuse to 0>> <<set $anususe to 0>> <<unset $neckuse>> <<if $worn.face.type.includes("gag")>> <<set $mouthuse to "gagged">> <</if>> <<set $thighuse to 0>> <<set $bottomuse to 0>> <<set $feetuse to 0>> <<if $leftarm isnot "bound" and $position isnot "wall">> <<set $leftarm to 0>> <</if>> <<if $rightarm isnot "bound" and $position isnot "wall">> <<set $rightarm to 0>> <</if>> <<set $chestuse to 0>> <<set $cheststate to 0>> <<if $head isnot "bound" and $position isnot "wall">> <<set $head to 0>> <</if>> <<set $anusstate to 0>> <<set $mouthstate to 0>> <<set $leftaction to 0>> <<set $rightaction to 0>> <<set $vaginaaction to 0>> <<set $penisaction to 0>> <<set $anusaction to 0>> <<set $thighaction to 0>> <<set $cheekaction to 0>> <<set $feetaction to 0>> <<set $mouthaction to 0>> <<set $rapeavoid to 1>> <<set $ejaculating to 0>> <</widget>><<widget "beastwound">> <<set $enemywounded += 1>> <<set $active_enemy += 1>> <!-- Index beasts --> <<switch $active_enemy>> <<case 0>> <<set $enemyarousal to $enemyarousal1>> <<set $enemyanger to $enemyanger1>> <<set $enemyhealth to $enemyhealth1>> <<set $enemytrust to $enemytrust1>> <<case 1>> <<set $enemyarousal to $enemyarousal2>> <<set $enemyanger to $enemyanger2>> <<set $enemyhealth to $enemyhealth2>> <<set $enemytrust to $enemytrust2>> <<case 2>> <<set $enemyarousal to $enemyarousal3>> <<set $enemyanger to $enemyanger3>> <<set $enemyhealth to $enemyhealth3>> <<set $enemytrust to $enemytrust3>> <<case 3>> <<set $enemyarousal to $enemyarousal4>> <<set $enemyanger to $enemyanger4>> <<set $enemyhealth to $enemyhealth4>> <<set $enemytrust to $enemytrust4>> <<case 4>> <<set $enemyarousal to $enemyarousal5>> <<set $enemyanger to $enemyanger5>> <<set $enemyhealth to $enemyhealth5>> <<set $enemytrust to $enemytrust5>> <<case 5>><!-- Should be unused case --> <<set $enemyarousal to $enemyarousal6>> <<set $enemyanger to $enemyanger6>> <<set $enemyhealth to $enemyhealth6>> <<set $enemytrust to $enemytrust6>> <<default>> <span class="red">ERROR: Beastwound index error</span> <</switch>> <<if $player.vaginaExist>> <<set $vaginause to 0>> <<set $vaginastate to 0>> <</if>> <<if playerHasStrapon() or $player.penisExist>> <<set $penisuse to 0>> <<set $penisstate to 0>> <</if>> <<set $mouthuse to 0>> <<set $anususe to 0>> <<unset $neckuse>> <<if $worn.face.type.includes("gag")>> <<set $mouthuse to "gagged">> <</if>> <<set $thighuse to 0>> <<set $bottomuse to 0>> <<set $feetuse to 0>> <<if $leftarm isnot "bound" and $position isnot "wall">> <<set $leftarm to 0>> <</if>> <<if $rightarm isnot "bound" and $position isnot "wall">> <<set $rightarm to 0>> <</if>> <<set $chestuse to 0>> <<set $cheststate to 0>> <<if $head isnot "bound" and $position isnot "wall">> <<set $head to 0>> <</if>> <<set $anusstate to 0>> <<set $mouthstate to 0>> <<set $leftaction to 0>> <<set $rightaction to 0>> <<set $vaginaaction to 0>> <<set $anusaction to 0>> <<set $thighaction to 0>> <<set $cheekaction to 0>> <<set $feetaction to 0>> <<set $mouthaction to 0>> <<set $rapeavoid to 1>> <</widget>> <<widget "genericCondomEjaculation">> <<He>> ejaculates into the condom. <<rng>> <<if $rng gte 96 and $npc[$npcrow.indexOf(_nn)] isnot "Robin" and !$npcSub>> <<if $consensual is 1>> <<if $player.virginity.kiss is true or random(0,100) gte 60>> <<He>> takes the condom off <<his>> $NPCList[_nn].penisdesc and, with a lewd grin, holds it open, letting it leak semen all over <<his>> hand. A moment later, <<he>> thrusts <<his>> cum-slicked fingers into your mouth. Only once you've <<if $ejactrait is 1>>eagerly<<else>>gingerly<</if>> licked them clean does <<he>> finally relent. <<else>> <<He>> takes the condom off <<his>> $NPCList[_nn].penisdesc and, with a lewd grin, brings it to <<his>> lips, draining it into <<his>> mouth. A moment later, <<he>> presses <<his>> mouth against yours, spitting the entire load of cum into your mouth. Only once you've <<if $ejactrait is 1>>eagerly swallowed<<else>>managed to swallow<</if>> it all does <<he>> finally pull away. <</if>> <<else>> <<He>> takes the condom off <<his>> $NPCList[_nn].penisdesc and forces the open end into your mouth, laughing as you <<if $ejactrait is 1>>drink it down<<else>>cough and sputter<</if>>. <</if>> <<ejacstat>><<cumswallow `$NPCList[_nn].type` null `npcSemenMod($NPCList[_nn].penissize)`>> <</if>> /*Addition npc comments*/ <</widget>> /* Takes NPC type to calculate volume of ejaculation to be swallowed or number to represent volume in ml. and updates stat */ <<widget "cumswallow">> <<set _ejaculation_volume to 0>> <<set _ejaculation_type to (_args[0] ? _args[0] : "human")>> <<if _args[1]>> <<set _ejaculation_volume to _args[1]>> <<else>> <<if _ejaculation_type is "human">> <<set _ejaculation_volume to random(5, 99)>> <<elseif ["wolf", "dog", "fox"].some(type => _ejaculation_type.includes(type))>> <<set _ejaculation_volume to random(5, 100)>> <<elseif ["centaur", "horse", "bull", "cow"].some(type => _ejaculation_type.includes(type))>> <<set _ejaculation_volume to random(25, 250)>> <<elseif ["boar", "pig"].some(type => _ejaculation_type.includes(type))>> <<set _ejaculation_volume to random(50, 300)>> <<elseif ["bear"].some(type => _ejaculation_type.includes(type))>> <<set _ejaculation_volume to random(25, 300)>> <<elseif ["cat"].some(type => _ejaculation_type.includes(type))>> <<set _ejaculation_volume to random(1, 15)>> <<elseif ["dolphin", "creature", "hawk", "harpy", "lizard"].some(type => _ejaculation_type.includes(type))>> <<set _ejaculation_volume to random(20, 150)>> <<else>> <<set _ejaculation_volume to random(3, 100)>> <</if>> <</if>> <<switch _args[2]>> <<case "tiny">><<set _ejaculation_volume to Math.ceil(_ejaculation_volume / 40)>> <<case "large">><<set _ejaculation_volume to Math.ceil(_ejaculation_volume * 1.5)>> <</switch>> <<if _args[2] is "knotted">> <<if _ejaculation_type is "human" or !$settings.bestialityEnabled>> <<semenswallowedstat _ejaculation_volume>> <<else>> <<animalsemenswallowedstat _ejaculation_volume>> <</if>> <<set $hunger -= 200>> <<set $thirst -= 200>> <<bodyliquid "mouth" "semen" 1>> <<elseif $mouthaction is "ejacspit">> You spit out the cum. <<elseif _ejaculation_type is "pc">> <<if $awareness gte 200>> <<if _ejaculation_volume lte 10>> <span class="lewd">You swallow your cum down in a single gulp, <<if $ejactrait gte 1>>disappointed by <<else>>thankful for <</if>>how little there is.</span> <<elseif _ejaculation_volume lte 30>> <span class="lewd"> <<if $ejactrait gte 1>> You swallow your cum, enjoying its personal taste. <<else>> You swallow your cum. <</if>> </span> <<elseif _ejaculation_volume lte 100>> <span class="lewd">Your cheeks puff out as you swallow your semen, downing it in several noisy gulps. You sigh <<if $ejactrait gte 1>>contentedly <<else>>in relief<</if>> once you manage to get it all.</span> <<else>> <span class="lewd">You swallow as much of your massive load as you can, struggling to contain its sheer volume.<<if $ejactrait gte 1 and !pcAreArmsBound("any") and $fingersInVagina is 0>> You cup your hands beneath your chin to catch the overflow, not wanting to let any go to waste.<<else>> Some of it overflows, running down your chin and neck. <<bodyliquid "neck" "semen">><</if>></span> <</if>> <<else>> <span class="red">Tears run down <<print either("your cheeks as you struggle to", "your face as you force yourself to")>> swallow your own cum.</span> <<if $ejactrait is 1>> You bite your tongue to stop yourself from licking your lips. <<lstress>><<stress -10>> <<else>> <<gstress>><<stress 10>> <</if>> <</if>> <<semenswallowedstat _ejaculation_volume>> <<set $hunger -= 200>> <<set $thirst -= 200>> <<bodyliquid "mouth" "semen" 1>> <<else>> <<if $consensual is 0 and _ejaculation_volume gte 3>> <span class="red">Tears run down <<print either("your cheeks as you struggle to", "your face as you force yourself to")>> swallow.</span> <<if $ejactrait is 1>> You bite your tongue to stop yourself from licking your lips. <<garousal>><<arousal 600>> <<else>> <<gstress>><<stress 10>> /*Prevents gstress from being displayed twice*/ <<set _ejacStressDisplay to true>> <</if>> <<set _ejacStatDisplay to true>> <<if _ejaculation_type is "human" or !$settings.bestialityEnabled>> <<semenswallowedstat _ejaculation_volume>> <<else>> <<animalsemenswallowedstat _ejaculation_volume>> <</if>> <<else>> <<if _ejaculation_volume lt 3>> <span class="lewd">You're <<if $ejactrait gte 1>>disappointed by <<else>>surprised by <</if>> how little cum is released in your mouth, barely being able to taste anything at all.</span> <<elseif _ejaculation_volume lte 10>> <span class="lewd">You swallow the cum down in a single gulp, <<if $ejactrait gte 1>>disappointed by <<else>>thankful for <</if>>how little there is.</span> <<elseif _ejaculation_volume lte 30>> <span class="lewd"> <<if $ejactrait gte 1>> You swallow the cum, enjoying its <<print either("strong, bitter", "sweet, creamy", "sharp, salty")>> taste. <<else>> You swallow the cum. <</if>> </span> <<elseif _ejaculation_volume lte 100>> <span class="lewd">Your cheeks puff out as you swallow the semen, downing it in several noisy gulps. You sigh <<if $ejactrait gte 1>>contentedly <<else>>in relief<</if>> once you manage to get it all.</span> <<else>> <span class="lewd">You swallow as much of the massive load as you can, struggling to contain its sheer volume.<<if $ejactrait gte 1 and !pcAreArmsBound("any")>> You cup your hands beneath your chin to catch the overflow, not wanting to let any go to waste.<<else>> Some of it overflows, running down your chin and neck. <</if>></span> <</if>> <<if $mouthaction is 'ejacswallow'>> <<if _ejaculation_type is "human" or !$settings.bestialityEnabled>> <<semenswallowedstat _ejaculation_volume>> <<else>> <<animalsemenswallowedstat _ejaculation_volume>> <</if>> <<else>> <<set _ejaculation_volume to Math.floor(_ejaculation_volume/3)>> <<if _ejaculation_type is "human" or !$settings.bestialityEnabled>> <<semenswallowedstat _ejaculation_volume>> <<else>> <<animalsemenswallowedstat _ejaculation_volume>> <</if>> <</if>> <</if>> <<set $hunger -= 200>> <<set $thirst -= 200>> <<bodyliquid "mouth" "semen" 1>> <</if>> <</widget>><<widget "endcombat">> <<set $enemytrust to 0>> <<if $enemyhealth lte 0>> <<if $enemytype is "man">> <<famescrap $enemynomax>> <</if>> <<if $audiencepresent is 1>> <<famescrap 10>> <</if>> <</if>> <<if $demonabsorb gte 1 and !$stalk>> <<if $enemytype is "tentacles" or $enemytype is "struggle">> <<pain `-(5 * $demonabsorb)`>> <<set $stress -= (300 * $demonabsorb)>> <<else>> <<set $trauma -= (150 * $demonabsorb)>> <</if>> <span class="lewd">You absorb the sexual essence. You feel soothed.</span> <<set $demonabsorb to 0>> <<traumaclamp>> <<set _br to true>> <br> <</if>> <<if ($enemyarousal gte $enemyarousalmax || $enemyejaculated gte 1) and canCollectSamples() and !($enemytype is "plant" and $abomination is 1)>> <<set $_samplesCollected to 0>> <<set $_sampleMod to $location is "forest_shop_garden" and $beastRitual ? 2 : 1>> <<for $_sample to 0; $_sample lt $enemyno; $_sample++>> <<if canCollectSampleSingle(V.NPCList[$_sample]?.type)>> <<if canCollectSamples() is "bound">> /* Ensures the bound message only shows if the player could have collected samples otherwise */ <<set $_samplesCollected to "bound">> <<break>> <<else>> <<set $_samplesToCollect to collectSample(V.NPCList[$_sample]?.type, $_sampleMod)>> <<if $_samplesToCollect>> <<set $_samplesCollected += $_samplesToCollect>> <</if>> <</if>> <</if>> <</for>> <<if $_samplesCollected is "bound">> <span class="red">With your arms bound, you're unable to take a sample of lewd fluid.</span> <<set _br to true>> <br> <<elseif $_samplesCollected>> <<if $location is "forest_shop_garden" and $beastRitual>> <span class="green">Gwylan helps you collect the fluids in vials.</span> <<npcincr Gwylan lust 1>><<glust>><br> <<else>> <span class="lewd">You collect as much lewd fluid as you can in the vials Gwylan gave you.</span> <</if>> You obtain <span class="gold"><<number $_samplesCollected>></span> <<pluralise $_samplesCollected "sample" "samples">> of fluid. <<set _br to true>> <br> <</if>> <<elseif ($enemytype is "plant" and $abomination is 1 or $enemytype is "tentacles" and ["vine","root","shoot"].includes($tentacles[0]?.type)) and canCollectSamples() and canCollectSampleSingle("plant")>> <<if canCollectSamples() is "bound">> <span class="red">With your arms bound, you're unable to take a sample of nectar.</span> <<else>> <<set $_sampleMod to $location is "forest_shop_garden" and $beastRitual ? 1.3 : 1>> <<set $_fromTentacles to $combat_tentacle_record.fluid || 1>> <<set $_nectarCollected to Math.ceil((1 + $_fromTentacles / 9) * $_sampleMod)>> <<set $_samplesToCollect to collectSample("plant", $_nectarCollected)>> <<if $location is "forest_shop_garden" and $beastRitual>> <span class="green">Gwylan helps you collect the nectar in vials.</span> <<npcincr Gwylan lust 1>><<glust>><br> <<else>> <span class="lewd">You collect as much nectar as you can in the vials Gwylan gave you.</span> <</if>> You obtain <span class="gold"><<number $_nectarCollected>></span> <<pluralise $_nectarCollected "sample" "samples">> of nectar. <</if>> <<set _br to true>> <br> <</if>> <<if $transformationParts.traits.mateForLife isnot "disabled" and $sexavoid is 0>> <<if $enemyno is 1 and isLoveInterest($npc[$npcrow.indexOf(0)])>> <<if $fox gte 3>> <<transform fox 1>> <</if>> <<stress -10>><<trauma -5>> <span class="lewd">Copulating with your chosen partner fulfils an instinctual desire.</span><<llstress>><<ltrauma>> <<set _br to true>> <br> <</if>> <</if>> <<if $assertive gte 1>> You were <<if $assertive lte 5>> <span class="pink">slightly</span> <<elseif $assertive lte 10>> <span class="pink">a little</span> <<elseif $assertive lte 30>> <span class="purple">somewhat</span> <<elseif $assertive lte 40>> <span class="blue">quite</span> <<elseif $assertive lte 50>> <span class="lblue">pretty</span> <<elseif $assertive lte 60>> <span class="teal">very</span> <<else>> <span class="green">extremely</span> <</if>> assertive. <<if $assertiveaction isnot 0 and $assertiveaction isnot undefined>> <<if $assertiveaction is "trauma">> <<set $trauma -= $assertive>> <span class="meek">I'm so naughty.</span> <<ltrauma>> <<traumaclamp>> <br> <<elseif $assertiveaction is "stress">> <<set $stress -= ($assertive * 10)>> <span class="green">That was fun.</span> <<lstress>> <br> <<elseif $assertiveaction is "submissive">> <<sub `($assertive / 40)`>> <<if $enemytype is "beast">> <<if $NPCList[0].type is "wolf">> <<set _plural_beast_type to "wolves">> <<elseif $NPCList[0].type is "fox">> <<set _plural_beast_type to "foxes">> <<else>> <<set _plural_beast_type to $NPCList[0].type + "s">> <</if>> <span class="meek">It's nice to make _plural_beast_type feel good.</span> <<elseif $enemytype is "tentacles">> <span class="meek">It's nice to make tentacles feel good.</span> <<elseif $enemytype is "struggle">> <span class="meek">It's nice to make creatures feel good.</span> <<else>> <span class="meek">It's nice to make people feel good.</span> <</if>> <br> <<elseif $assertiveaction is "defiant">> <<def `($assertive / 40)`>> <span class="brat">It's nice to be in control.</span> <br> <</if>> <<set $assertive to 0>> <<set _br to true>> <</if>> <</if>> <<if $stalk_end is "escaped" or $stalk_end is "hide" or $stalk_end is "ambush">> <<if $transformationParts.traits.chase isnot "disabled">> Your heart races. <span class="green">The thrill of the chase invigorates you.</span> <<if $stalk_taunted is "success">> <span class="green">Especially thanks to your bold provocation.</span> <<transform fox 1>><<promiscuity2>> <<else>> <<lstress>><<garousal>> <br> <<set _br to true>> <</if>> <<stress -8>><<arousal 200>><<transform fox 1>> <<elseif $stalk_taunted is "success">> Your heart races. <span class="green">Escaping after such a bold provocation invigorates you.</span> <<transform fox 1>><<promiscuity2>> <</if>> <</if>> <<unset $enemytype>> <<endevent _args[0]>> <<struggle_end>> <<set $combat to 0>> <<set $rapeavoid to 1>> <<set $sexavoid to 1>> <<set $orgasmdown to 0>> <<set $penisbitten to 0>> <<set $mouthsubmit to 0>> <<set $breastbitten to 0>> <<set $apologised to 0>> <<unset $bodywriting_special>> <<unset $machine_tattoo_success>> <<unset $dodging>> <<unset $feet_planted>> <<unset $left_guard>> <<unset $right_guard>> <<unset $speechspraycycleplant>> <<unset $newlyWritten>> <<unset $combatBegun>> <<unset $combatPhase>> <<unset $fightTargets>> <<unset $pounce_delay>> <<unset $hypnosis_deviancy_check>> <<unset $animOverride>> <<unset $encounterDialogue>> <<if $player.penisExist>> <<set $penisstate to 0>> <<set $penisuse to 0>> <<else>> <<set $penisstate to "none">> <<set $penisuse to "none">> <</if>> <<if $player.vaginaExist>> <<set $vaginastate to 0>> <<set $vaginause to 0>> <<else>> <<set $vaginastate to "none">> <<set $vaginause to "none">> <</if>> <<if playerHasStrapon()>> <<set $penisstate to 0>> <<set $penisuse to 0>> /*<<if $playerPenisSizeBackup isnot undefined>> <<set $player.penissize to $playerPenisSizeBackup>> <</if>>*/ <</if>> <<set $anusstate to 0>> <<set $mouthstate to 0>> <<set $finish to 0>> <<unset $stalk_end>> <<unset $stalk_taunted>> <<unset $stalk_event>> <<unset $stalk_clothes>> <<unset $stalk>> <<unset $stalk_assess>> <<unset $audience_active>> <<unset $combat_end_text>> <<set $gloryhole to 0>> <<set $mouthuse to 0>> <<set $anususe to 0>> <<set $thighuse to 0>> <<set $bottomuse to 0>> <<if $feetuse isnot "bound">> <<set $feetuse to 0>> <</if>> <<if $leftarm isnot "bound">> <<set $leftarm to 0>> <</if>> <<if $rightarm isnot "bound">> <<set $rightarm to 0>> <</if>> <<set $chestuse to 0>> <<set $cheststate to 0>> <<if $head isnot "bound">> <<set $head to 0>> <</if>> <<set $face to 0>> <<if $position is "wall">> <<set $leftarm to 0>> <<set $rightarm to 0>> <<set $head to 0>> <</if>> <<unset $neckuse>> <<set $position to 0>> <<set $walltype to 0>> <<set $underlowerstruggle to 0>> <<set $lowerstruggle to 0>> <<set $upperstruggle to 0>> <<set $overlowerstruggle to 0>> <<set $overupperstruggle to 0>> <<set $alarm to 0>> <<set $rescue to 0>> <<set $noise to 0>> <<set $timer to 0>> <<set $beastname to "none">> <<set $panicparalysis to 0>> <<set $panicviolence to 0>> <<set $pullaway to 0>> <<set $novaginal to 0>> <<set $noanal to 0>> <<set $nopenile to 0>> <<set $nochoke to 0>> <<unset $pullOut>> <<unset $pullOutAsk>> <<set $player.condom to false>> <<unset $otherFilled>> <<unset $noupper>> <<unset $noupperasked>> <<unset $nomask>> <<unset $nomaskasked>> <<set $askedtochoke to 0>> <<unset $speechwheeze>> <<set $speechorgasmweakcumcount to 0>> <<set $speechorgasmnocumcount to 0>> <<set $speechorgasmcount to 0>> <<set $speechorgasmrepeat to 0>> <<set $underwatertime to 0>> <<if $underwater isnot 1>> <<if !$oxygenRecovery>> <<oxygenrefresh>> <</if>> <<set $suffocating to 0>> <</if>> <<set $walltype to "wall">> <<set $angelforgive to 0>> <<unset $banishDisable>> <<unset $penisfucked>> <<unset $vaginafucked>> <<unset $anusfucked>> <<set $speechdisable to 0>> <<unset $stealstateleft>> <<unset $stealstateright>> <<unset $position_lock>> <<unset $handGuideLeft>> <<unset $handGuideRight>> <<unset $easySteal>> <<unset $canRescue>> <<set $leftactiondefault to $leftaction>> <<set $rightactiondefault to $rightaction>> <<set $feetactiondefault to $feetaction>> <<set $mouthactiondefault to $mouthaction>> <<set $vaginaactiondefault to $vaginaaction>> <<set $penisactiondefault to $penisaction>> <<set $anusactiondefault to $anusaction>> <<set $thighactiondefault to $thighaction>> <<set $cheekactiondefault to $cheekaction>> <<set $chestactiondefault to $chestaction>> <<actioncarry>> <<set $penisaction to 0>> <<set $vaginaaction to 0>> <<set $anusaction to 0>> <<set $leftaction to 0>> <<set $rightaction to 0>> <<set $mouthaction to 0>> <<set $thighaction to 0>> <<set $cheekaction to 0>> <<set $feetaction to 0>> <<set $chestaction to 0>> <<set $mockaction to "none">> <<set $bodyaction to 0>> <<set $stealdifficulty to 1>> <<set $lefttarget to 0>> <<set $righttarget to 0>> <<set $feettarget to 0>> <<unset $leglocktarget>> <<set $mouthtarget to 0>> <<if $player.penisExist>> <<set $penistarget to 0>> <</if>> <<if $player.vaginaExist>> <<set $vaginatarget to 0>> <<unset $vaginadoubletarget>> <</if>> <<set $anustarget to 0>> <<unset $anusdoubletarget>> <<set $chesttarget to 0>> <<set $thightarget to 0>> <<set $stealtarget to "">> <<set $carryblock to 0>> <<set $enemywounded to 0>> <<set $enemyejaculated to 0>> <<set $semenpuddle to 0>> <<set $masturbationorgasm to 0>> <<set $swarm to { "type":0, "name":0, "move":0, "spill":0, "steady":0, "amount":{}, "data":{} }>> <<unset $nowiggle>> <<unset $cumbucket>> <<set $tentacles.max to 0>> <<set $tentacles.active to 0>> <<set _tentacles to $tentacles>> <<for _i to 0; _i lt 20; _i++>> <<set _tentacles[_i] to null>> <</for>> <<set $abomination to 0>> <<unset $tentacleColour>> <<set $tentacleMouth to 0>> <<set $tentacleAnus to 0>> <<set $tentacleAnusBaby to 0>> <<set $tentacleVagina to 0>> <<set $tentaclePenis to 0>> <<set $leftaction to 0>> <<set $rightaction to 0>> <<set $back to 0>> <<set $front to 0>> <<set $chest to 0>> <!-- <<set $claws to 1>> --> <<set $water to 0>> <<set $vorestrength to 0>> <<set $vorestruggle to 0>> <<set $voretentacles to 0>> <<set $vorestage to 0>> <<set $vorecreature to 0>> <<set $vorestomach to 0>> <<set $swallowed to 0>> <<set $leftleg to 0>> <<set $rightleg to 0>> <<set $leftnipple to 0>> <<set $rightnipple to 0>> <<set $leftarmstate to 0>> <<set $rightarmstate to 0>> <<set $feetstate to 0>> <<set $audienceselector to 0>> <<set $audiencecamera to 0>> <<set $audiencecamera1 to 0>> <<set $audiencecamera2 to 0>> <<set $audiencecamera3 to 0>> <<set $audiencecamera4 to 0>> <<set $audiencecamera5 to 0>> <<set $audiencecamera6 to 0>> <<set $audiencemember to 0>> <<set $audienceforceboy to 0>> <<set $audienceforcegirl to 0>> <<set $audienceforceteen to 0>> <<set $audiencepresent to 0>> <<unset $speechcrossdressangry>> <<unset $speechcrossdressaroused>> <<unset $speechcrossdressshock>> <<unset $speechcrossdressdisappointed>> <<unset $speechhermangry>> <<unset $speechhermaroused>> <<unset $speechhermshock>> <<unset $speechhermdisappointed>> <<unset $speechsextoy>> <<unset $speechSextoyState>> <<set $prop to []>> <<set $arousalmasochism to 0>> <<unset $willpowerpain>> <<set $active_enemy to 0>> <<set $combatTrain to { length: 0, generateInit: 1, beastTypes: [], numberPerTrain: [], }>> <<if $seductionskillup gte 1>> <<set $seductionskillup to 0>> <<if $seductionskill lt 1000>> <span class="gold">You feel more confident in your seduction skills.</span> <<set _br to true>> <br> <</if>> <</if>> <<if $oralskillup gte 1>> <<set $oralskillup to 0>> <<if $oralskill lt 1000>> <span class="gold">You feel more confident in your ability to give pleasure with your mouth.</span> <<set _br to true>> <br> <</if>> <</if>> <<if $vaginalskillup gte 1>> <<set $vaginalskillup to 0>> <<if $vaginalskill lt 1000>> <span class="gold">You feel more confident in your ability to give pleasure with your vagina.</span> <<set _br to true>> <br> <</if>> <</if>> <<if $analskillup gte 1>> <<set $analskillup to 0>> <<if $analskill lt 1000>> <span class="gold">You feel more confident in your ability to give pleasure with your anus.</span> <<set _br to true>> <br> <</if>> <</if>> <<if $handskillup gte 1>> <<set $handskillup to 0>> <<if $handskill lt 1000>> <span class="gold">You feel more confident in your ability to give pleasure with your hands.</span> <<set _br to true>> <br> <</if>> <</if>> <<if $feetskillup gte 1>> <<set $feetskillup to 0>> <<if $feetskill lt 1000>> <span class="gold">You feel more confident in your ability to give pleasure with your feet.</span> <<set _br to true>> <br> <</if>> <</if>> <<if $bottomskillup gte 1>> <<set $bottomskillup to 0>> <<if $bottomskill lt 1000>> <span class="gold">You feel more confident in your ability to give pleasure with your buttocks.</span> <<set _br to true>> <br> <</if>> <</if>> <<if $thighskillup gte 1>> <<set $thighskillup to 0>> <<if $thighskill lt 1000>> <span class="gold">You feel more confident in your ability to give pleasure with your thighs.</span> <<set _br to true>> <br> <</if>> <</if>> <<if $chestskillup gte 1>> <<set $chestskillup to 0>> <<if $chestskill lt 1000>> <span class="gold">You feel more confident in your ability to use your <<breasts>> to pleasure others.</span> <<set _br to true>> <br> <</if>> <</if>> <<if $penileskillup gte 1>> <<set $penileskillup to 0>> <<if $penileskill lt 1000>> <span class="gold">You feel more confident in your ability to pleasure others with <<= $player.penisExist ? "your penis" : "a strap-on">>.</span> <<set _br to true>> <br> <</if>> <</if>> <<set $enemyArousalLossReduction to 1>> <<if $combat_silenced>> <span class="green">Your voice returns.</span> <<set _br to true>> <br> <</if>> <<unset $phalluscolorA>> <<unset $phalluscolorB>> <<unset $currentSexToyLeft>> <<unset $currentSexToyRight>> <<unset $selectedItemLeft>> <<unset $selectedItemRight>> <<manend>> <<turnend>> <<getCombatDefaultsTypeClear>> <<unset $disableNormalImpregnation>> <<unset $disableImpregnation>> <<unset $combat_hypnosis>> <<unset $combat_silenced>> <<unset $combat_player_orgasm_target>> <<unset $combat_tentacle_record>> <<if _br>> <br> <</if>> <</widget>><<widget "clearnpc">> <<for _i = 0; _i < $NPCList.length; _i++>> <<if Object.keys($per_npc).includes($NPCList[_i].per)>> <<updateNPC $NPCList[_i]>> <</if>> <<set $NPCList[_i] to clone(setup.baseNPC)>> <<if $NPCList[_i].strapon isnot undefined>> <<run delete $NPCList[_i].strapon>> <</if>> <</for>> <<set $pronoun to 0>> <<set $beastgenderoverride to 0>> <<set $enemyno to 0>> <<set $enemynomax to 0>> <<set $combattype to 0>> <!-- Clear the arrays but don't unset them. --> <<set $npc.splice(0)>> <<set $npcnum.splice(0)>> <<set $npcrow.splice(0)>> <<if $endeventerror is undefined>> <<run EventSystem.clear()>> <</if>> <</widget>><!-- usage tip: if you want to clear an npc and copy another into its position, don't forget to use clone(). example: <<set $NPCList[1] to clone($NPCList[2])>> <<clearsinglenpc 2>> --> <<widget "clearsinglenpc">> <<if typeof _args[0] isnot "number">> <span class="red">Widget "clearsinglenpc" used incorrectly! Please report this!</span> <</if>> <<set _i to _args[0]>> <<set $NPCList[_i] to clone(setup.baseNPC)>> <<if $enemyno gt 0>> <<set $enemyno -= 1>> <</if>> <<if $endeventerror is undefined>> <<run EventSystem.pop(_i)>> <</if>> <<if $enemyno is 0>> <<set $pronoun to 0>> <<if $endeventerror is undefined>> <<run EventSystem.clear()>> <</if>> <</if>> <<if $NPCList[_i].strapon isnot undefined>> <<run delete $NPCList[_i].strapon>> <</if>> <</widget>><<widget "endevent">> <<if $dancing is 1>> <<famedance>> <<unset $dance_place>> <<unset $dance_stage_cum>> <</if>> <<set $molestavoid to 1>> <<if _args[0] isnot "phaseless">> <<set $phaselast to $phase>> <<set $phase to 0>> <<set $phase2 to 0>> <</if>> <<endnpc>> /*<<clearnpc>> is already called in endnpc */ <<set $dancelocation to 0>> <<set $forceddance to 0>> <<set $consensual to 0>> <<set $danceaction to 0>> <<set $danceactiondefault to 0>> <<set $attention to 0>> <<set $audience to 0>> <<set $audienceexcitement to 0>> <<set $audiencearousal to 0>> <<set $audiencemod to 1>> <<set $venuemod to 1>> <<set $danceevent to 0>> <<set $dancing to 0>> <<set $privatedanceoffered to 0>> <<set $trance to 0>> <<set $robinhugging to 0>> <<set $robinroomentered to 0>> <<set $crossdressing to 0>> <<unset $tip_add>> <<unset $monster>> <<set $enemyno to 0>> <<set $enemynomax to 0>> <<unset $noFinish>> <<unset $promiscuityIgnore>> <<unset $npcSub>> <<unset $purityEvent>> <<unset $corruptionEvent>> <<unset $speechNPCKissVirgin>> <<unset $speechNPCHandholdingVirgin>> <<unset $sydneyComments>> <<unset $sydneyUniqueComments>> <<unset $gwylanComments>> <<unset $gwylanUniqueComments>> <<unset $noBodyWriting>> <<unset $noAdmire>> <<unset $breakIgnore>> <<unset $eventforced>> <<unset $pearlChance>> <<unset $internalejac>> <<unset $noHypnosis>> <<unset $noIntroName>> <<set $orgasmcurrent to 0>> <<set $beastname to "none">> <<unset $action_unclad_over_outfit>> <<unset $action_unclad_over_upper>> <<unset $action_unclad_over_lower>> <<unset $action_unclad_outfit>> <<unset $action_unclad_upper>> <<unset $action_unclad_lower>> <<unset $action_unclad_under_lower>> <<set $clothingselector to 0>> <<unset $stealtextskip>> <<set $trueconsensual to 0>> <<unset $consensualGuaranteed>> <<unset $speechcum>> <<set $speechorgasmcount to 0>> <<unset $speechmilk>> <<set $npc_named to 0>> <<unset $setupMidOrgasm>> <<unset $childSelected>> <<set $index to 0>> <<set $modeloptionsOverride to {}>> <<if $propEquipped is 1>> <<handheldon>> <<set $propEquipped to 0>> <</if>> <<if $worn.neck.name is "familiar collar">> /* ToDo: Gwylan - the "leash" type could be used to determine whether the player is allowed to stray from the forest shop. If that is done, remove this whole block. */ <<if $worn.neck.type.includes("leash") and !["forest_shop", "forest_shop_garden"].includes($location) and !$beastRitual and !$sexRitual>> <<run $worn.neck.type.delete("leash")>> <<if $familiarLeash>> <<run Errors.report("Magic leash spell misfired! Leash granted on passage: " + $familiarLeash + " and destroyed on passage: " + $passage + " from passage: " + $passagePrev + ". Please report this.")>> <<else>> <<run Errors.report("Magic leash spell misfired! An origin passage could not be determined. The leash has been removed on passage: " + $passage + " from passage: " + $passagePrev + ". Please report this.")>> <</if>> <</if>> <<unset $familiarLeash>> <</if>> <</widget>><<widget "manend">> <<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 $speechfacesit>> <<unset $speechmouthotheranus>> <<unset $speechanallick>> <<unset $speechanalkiss>> <<unset $speechfencingentrance>> <<unset $speechpenispenis>> <<unset $speechheadbreasts>> <<unset $speechheadchest>> <<unset $speechheadnipple>> <<unset $speechheadsuckle>> <<unset $speechheadnippleclosed>> <<unset $speechheadsuckleclosed>> <<unset $speechfeet>> <<unset $speechthigh>> <<unset $speechcheeks>> <<unset $speechhandjobpenis>> <<unset $speechhandjobvagina>> <<unset $speechmasturbate>> <<unset $speechdildovagina>> <<unset $speechdildoanus>> <<unset $speechstroker>> <<unset $speechthroat>> <<unset $speechvaginafoot>> <<unset $speechpenisfoot>> <<unset $speechchastity>> <<unset $speechNPCChastity>> <<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 $speechpenisbig>> <<unset $speechpenisescape>> <<unset $speechvaginaescape>> <<unset $speechanusescape>> <<unset $speechsteal>> <<unset $speechnamedrop>> <<unset $speechadmired>> <<unset $speechaskrough>> <<unset $speechwheeze>> <<unset $speechNPCPenisVirgin>> <<unset $speechNPCVaginaVirgin>> <<unset $speechNPCAnusVirgin>> <<unset $speechNPCOralVirgin>> <<unset $speechNPCKissVirgin>> <<unset $speechNPCHandholdingVirgin>> <<set $npcspeechcycle += 1>> <<if $npcspeechcycle gte 7>> <<set $npcspeechcycle to 0>> <</if>> <</widget>> <<widget "turnend">> <<if $enemyarousal lt 0>> <<set $enemyarousal to 0>> <</if>> <<unset $speechcum>> <<set $speechorgasmrepeat to 0>> <<unset $speechmilk>> <<unset $speechgenitals>> <<unset $speechbreasts>> <<unset $speechscream>> <<unset $speechapologise>> <<unset $speechplead>> <<unset $speechmoan>> <<unset $speechdemand>> <<unset $speechcoverface>> <<unset $speechcoverpenis>> <<unset $speechcovervagina>> <<unset $speechapologiseno>> <<unset $speechapologiseunforgiving>> <<unset $speechforgive>> <<unset $speechspray>> <<unset $speechvaginavirgin>> <<unset $speechanusvirgin>> <<unset $speechmouthvirgin>> <<unset $speechpenisvirgin>> <<unset $speechkissvirgin>> <<unset $speechgrowl>> <<unset $speechgrowlheat>> <<unset $speechgrowlrut>> <<unset $speechpregnant>> <<unset $speechleglock>> <<unset $speechbanish>> <<if $speechcrossdressangry is 2>> <<set $speechcrossdressangry to 1>> <<elseif $speechcrossdressangry is 1>> <<unset $speechcrossdressangry>> <</if>> <<if $speechcrossdressaroused is 2>> <<set $speechcrossdressaroused to 1>> <<elseif $speechcrossdressaroused is 1>> <<unset $speechcrossdressaroused>> <</if>> <<if $speechcrossdressshock is 2>> <<set $speechcrossdressshock to 1>> <<elseif $speechcrossdressshock is 1>> <<unset $speechcrossdressshock>> <</if>> <<if $speechcrossdressdisappointed is 2>> <<set $speechcrossdressdisappointed to 1>> <<elseif $speechcrossdressdisappointed is 1>> <<unset $speechcrossdressdisappointed>> <</if>> <<if $speechhermangry is 2>> <<set $speechhermangry to 1>> <<elseif $speechhermangry is 1>> <<unset $speechhermangry>> <</if>> <<if $speechhermaroused is 2>> <<set $speechhermaroused to 1>> <<elseif $speechhermaroused is 1>> <<unset $speechhermaroused>> <</if>> <<if $speechhermshock is 2>> <<set $speechhermshock to 1>> <<elseif $speechhermshock is 1>> <<unset $speechhermshock>> <</if>> <<if $speechhermdisappointed is 2>> <<set $speechhermdisappointed to 1>> <<elseif $speechhermdisappointed is 1>> <<unset $speechhermdisappointed>> <</if>> <</widget>> <<widget "manspeech">> <<set _n to _args[0]>> <<if $NPCList[_n].speechpenisescape is 1>> <<set $speechpenisescape to 1>> <</if>> <<if $NPCList[_n].speechvaginaescape is 1>> <<set $speechvaginaescape to 1>> <</if>> <<if $NPCList[_n].speechanusescape is 1>> <<set $speechanusescape to 1>> <</if>> <</widget>><<widget "maninit">> <<set $enemyarousal to $allure / 50 + $audiencearousal>> <<set $enemyanger to 0>> <<set $enemystrength to 20000>> <<set $combat to 1>> <<set $enemytrust to 0>> <<set $enemyhealth to 0>> <<for _i to 0; _i lt $enemyno; _i++>> <<if $NPCList[_i].health isnot undefined>> <<set $enemyhealth += $NPCList[_i].health>> <</if>> <</for>> <<if $enemyhealth is 0>><<set $enemyhealth to 199>><</if>><!-- This is set for compatibility elsewhere if needed, v2.2.0... --> <<set $enemyarousalmax to 500 * $enemyno>> <<set $enemyangermax to 200>> <<set $enemyhealthmax to $enemyhealth>> <<if $enemyhealthmax is 0>><<set $enemyhealthmax to 199>><</if>><!-- This is set for compatibility elsewhere if needed, v2.2.0... --> <<for _i = 0; _i < $NPCList.length; _i++>> <<set $NPCList[_i].bold to $allure / 10>> <</for>> <<if $dissociation gte 1>> <<set $enemytrust -= 40>> <</if>> <<if _args[0]>> <<set $enemytype to _args[0]>> <<else>> <<set $enemytype to "man">> <</if>> <<if _args[0] is "plant">> <<set $enemyno to 1>> <</if>> <<set $rapeavoid to 1>> <<set $orgasmdown to 0>> <<set $penisbitten to 0>> <<set $apologised to 0>> <<set $underlowerstruggle to 0>> <<set $lowerstruggle to 0>> <<set $upperstruggle to 0>> <<set $leftaction to 0>> <<set $rightaction to 0>> <<set $traumasaved to $trauma>> <<set $stresssaved to $stress>> <<set $traumagain to 0>> <<set $stressgain to 0>> <<set $combattype to "gang">> <<if $NPCList[0].monster is "monster">> <<set $monster to 1>> <<else>> <<set $monster to 0>> <</if>> <<if $settings.condomLevel gte 2>> <<for _i to 0; _i lt $enemyno; _i++>> <<if $settings.condomLevel is 2 and $NPCList[_i].condom and pregnancyCompatible($NPCList[_i]) is false>> <<set $NPCList[_i].condom.willUse to false>> <<elseif $NPCList[_i].condom and $NPCList[_i].pregnancyAvoidance gte 80>> <<set $NPCList[_i].condom.willUse to true>> <<elseif $NPCList[_i].condom and typeof $NPCList[_i].condom.willUse is "number">> <<set $NPCList[_i].condom.willUse to ($NPCList[_i].condom.willUse lt ($consensual is 1 ? $settings.condomUseChanceConsensual : $settings.condomUseChanceRape))>> <</if>> <</for>> <</if>> <<combatinit>> <</widget>> <<widget "beastNNPCinit">> <!-- NEW NNPC beast intitiation widget v2.6. Replaces beast(1-6)init widgets --> <!-- Probably just temporary... fix for Black Wolf --> <<set $enemyhealth to 200>> <<set $enemyarousal to $allure / 50>> <<set $enemyanger to 0>> <<set $enemystrength to 20000>> <<set $combat to 1>> <<set $enemyarousalmax to 500>> <<set $enemyangermax to 200>> <<set $enemyhealthmax to 200>> <<set $enemytrust to 0>> <<if $dissociation gte 1>> <<set $enemytrust -= 40>> <</if>> <<set $enemytype to "beast">> <<set $rapeavoid to 1>> <<set $orgasmdown to 0>> <<if $combatTrain.generateInit is 1>> <<set $penisbitten to 0>> <<set $apologised to 0>> <</if>> <<set $underlowerstruggle to 0>> <<set $lowerstruggle to 0>> <<set $upperstruggle to 0>> <<set $leftaction to 0>> <<set $rightaction to 0>> <<set $traumasaved to $trauma>> <<set $stresssaved to $stress>> <<set $traumagain to 0>> <<set $stressgain to 0>> <!-- NG This means if Beast 1 is a monster, they are all monsters --> <!-- This should be fixed globally later --> <<if $NPCList[0].monster is "monster">> <<set $monster to 1>> <<else>> <<set $monster to 0>> <</if>> <!--Used to prevent certain variables being repeated during re-generation--> <<set $combatTrain.generateInit to 0>> <<combatinit>> <</widget>> <<widget "beastCombatInit">> <<set $rapeavoid to 1>> <<set $orgasmdown to 0>> <<if $combatTrain.generateInit is 1>> <<set $penisbitten to 0>> <<set $apologised to 0>> <</if>> <<set $underlowerstruggle to 0>> <<set $lowerstruggle to 0>> <<set $upperstruggle to 0>> <<set $leftaction to 0>> <<set $rightaction to 0>> <<set $traumasaved to $trauma>> <<set $stresssaved to $stress>> <<set $traumagain to 0>> <<set $stressgain to 0>> <<set $enemyhealth to 200>> <<set $enemyarousal to $allure / 50>> <<set $enemyanger to 0>> <<set $enemystrength to 20000>> <<set $combat to 1>> <<set $enemyarousalmax to 500>> <<set $enemyangermax to 200>> <<set $enemyhealthmax to 200>> <<set $enemytrust to 0>> <<if $dissociation gte 1>> <<set $enemytrust -= 40>> <</if>> <<set $enemytype to "beast">> <<if $NPCList[0].monster is "monster">> <<set $monster to 1>> <<else>> <<set $monster to 0>> <</if>> <!--Used to prevent certain variables being repeated during re-generation--> <<set $combatTrain.generateInit to 0>> <!-- NG not sure what to do with below yet, this is part of indexing... leave for now V2.7--> <<set $enemyarousal1 to $enemyarousal>> <<set $enemyanger1 to $enemyanger>> <<set $enemyhealth1 to $enemyhealthmax>> <<set $enemytrust1 to $enemytrust>> <<set $enemyarousal2 to $enemyarousal>> <<set $enemyanger2 to $enemyanger>> <<set $enemyhealth2 to $enemyhealthmax>> <<set $enemytrust2 to $enemytrust>> <<set $enemyarousal3 to $enemyarousal>> <<set $enemyanger3 to $enemyanger>> <<set $enemyhealth3 to $enemyhealthmax>> <<set $enemytrust3 to $enemytrust>> <<set $enemyarousal4 to $enemyarousal>> <<set $enemyanger4 to $enemyanger>> <<set $enemyhealth4 to $enemyhealthmax>> <<set $enemytrust4 to $enemytrust>> <<set $enemyarousal5 to $enemyarousal>> <<set $enemyanger5 to $enemyanger>> <<set $enemyhealth5 to $enemyhealthmax>> <<set $enemytrust5 to $enemytrust>> <<set $enemyarousal6 to $enemyarousal>> <<set $enemyanger6 to $enemyanger>> <<set $enemyhealth6 to $enemyhealthmax>> <<set $enemytrust6 to $enemytrust>> <<combatinit>> <</widget>> <<widget "beastNEWinit">> <!-- NEW beast intitiation widget v2.6. Replaces beast(1-6)init widgets --> <!-- Args are number of beasts(1-6), Type, Gender, Genitals and Monster status--> <!-- Last three args are optional and override generation based on settings. Use with care --> <!-- Example: <<beastNEWinit 1 dog m>> would generate 1 male dog --> <!-- Example: <<beastNEWinit 2 wolf f>> would generate 2 female wolves --> <!-- Example: <<beastNEWinit 1 horse f penis monster>> would generate 1 dickgirl centaur --> <<set _nn to _args[0]>> <!-- Number of Beasts --> <<set _tpe to _args[1]>> <!-- Type --> <<set _gnn to _args[2]>> <!-- Gender --> <<set _beast_genitals to _args[3]>> <<set _beast_monster to _args[4]>> <<set $active_enemy to 0>> <!-- Error Checking --> <<if !$BeastList.includes(_tpe)>> <span class="red">ERROR: beastNEWinit unknown type</span> <</if>> <<for _xx = 1; _xx < _nn+1; _xx++>> <<generateBEAST _xx _tpe _gnn _beast_genitals _beast_monster>> <</for>> <<set $enemyno to _nn>> <<set $enemytype to "beast">> <!-- NG This means if Beast 1 is a monster, they are all monsters --> <!-- This should be fixed globally later --> <<set $monster to ($NPCList[0].monster is "monster" ? 1 : 0)>> <</widget>> <<widget "beastPARTNERinit">> <!-- Widget to force a beast to generate as a partner for an NPC, whether it be a human or beast. --> <!-- This will probably brick any combat it's called into. --> <!-- Args are number of beasts(1-6), Type, Gender, Genitals and Monster status--> <!-- Last three args are optional and override generation based on settings. Use with care --> <!-- Example: <<beastNEWinit 1 dog m>> would generate 1 male dog --> <!-- Example: <<beastNEWinit 2 wolf f>> would generate 2 female wolves --> <!-- Example: <<beastNEWinit 1 horse f penis monster>> would generate 1 dickgirl centaur --> <<set _nn to _args[0]>> <!-- NPC Slot of beast --> <<set _tpe to _args[1]>> <!-- Type --> <<set _partner to _args[2]>> <!-- NPC slot of partner --> <<set $active_enemy to 0>> <<set _generate_partner to _partner || _nn -1>> <!-- Error Checking --> <<if !$BeastList.includes(_tpe)>> <span class="red">ERROR: beastPARTNERinit unknown type</span> <</if>> <<set _xx to _nn +1>> <<generateBEAST _xx _tpe>> <<set $enemyno++>> <<set $monster to ($NPCList[_partner].monster is "monster" ? 1 : 0)>> <</widget>> <<widget "beastNOGENinit">> <!-- NEW beast initiation widget v2.6. Replaces beast(1-6)init widgets --> <!-- This works like ManInit widget and requires prior beast initialisation, no args --> <!-- The main reason to use this NOGEN call is so that a variety of beasts can be called, rather than all 1 type --> <!-- Eventually all the <<beastXXXinit>> calls should be collapsed under man1init, which will require rework of $enemytype="beast" + other stuff --> <<set $enemyhealth to 200>> <<set $enemyarousal to $allure / 50>> <<set $enemyanger to 0>> <<set $enemystrength to 20000>> <<set $combat to 1>> <<set $enemyarousalmax to 500>> <<set $enemyangermax to 200>> <<set $enemyhealthmax to 200>> <<set $enemytrust to 0>> <<if $dissociation gte 1>> <<set $enemytrust -= 40>> <</if>> <<set $enemytype to "beast">> <<set $rapeavoid to 1>> <<set $orgasmdown to 0>> <<if $combatTrain.generateInit is 1>> <<set $penisbitten to 0>> <<set $apologised to 0>> <</if>> <<set $underlowerstruggle to 0>> <<set $lowerstruggle to 0>> <<set $upperstruggle to 0>> <<set $leftaction to 0>> <<set $rightaction to 0>> <<set $traumasaved to $trauma>> <<set $stresssaved to $stress>> <<set $traumagain to 0>> <<set $stressgain to 0>> <!-- NG This means if Beast 1 is a monster, they are all monsters --> <!-- This should be fixed globally later --> <<if $NPCList[0].monster is "monster">> <<set $monster to 1>> <<else>> <<set $monster to 0>> <</if>> <!--Used to prevent certain variables being repeated during re-generation--> <<set $combatTrain.generateInit to 0>> <!-- NG not sure what to do with below yet, this is part of indexing... leave for now V2.7--> <<set $enemyarousal2 to $enemyarousal>> <<set $enemyanger2 to $enemyanger>> <<set $enemyhealth2 to $enemyhealthmax>> <<set $enemytrust2 to $enemytrust>> <<set $enemyarousal3 to $enemyarousal>> <<set $enemyanger3 to $enemyanger>> <<set $enemyhealth3 to $enemyhealthmax>> <<set $enemytrust3 to $enemytrust>> <<set $enemyarousal4 to $enemyarousal>> <<set $enemyanger4 to $enemyanger>> <<set $enemyhealth4 to $enemyhealthmax>> <<set $enemytrust4 to $enemytrust>> <<set $enemyarousal5 to $enemyarousal>> <<set $enemyanger5 to $enemyanger>> <<set $enemyhealth5 to $enemyhealthmax>> <<set $enemytrust5 to $enemytrust>> <<set $enemyarousal6 to $enemyarousal>> <<set $enemyanger6 to $enemyanger>> <<set $enemyhealth6 to $enemyhealthmax>> <<set $enemytrust6 to $enemytrust>> <<combatinit>> <</widget>> <<widget "strangeman1init">> <<set $enemyhealth to 200>> <<set $enemyarousal to $allure / 50>> <<set $enemyanger to 0>> <<set $enemystrength to 20000>> <<set $NPCList[0].lefthand to "mouth">> <<set $combat to 1>> <<set $enemyarousalmax to 500>> <<set $enemyangermax to 200>> <<set $enemyhealthmax to 200>> <<set $enemytrust to 0>> <<if $dissociation gte 1>> <<set $enemytrust -= 40>> <</if>> <<set $enemytype to "man">> <<set $rapeavoid to 1>> <<set $orgasmdown to 0>> <<set $penisbitten to 0>> <<set $apologised to 0>> <<set $underlowerstruggle to 0>> <<set $lowerstruggle to 0>> <<set $upperstruggle to 0>> <<set $leftaction to 0>> <<set $rightaction to 0>> <<set $traumasaved to $trauma>> <<set $stresssaved to $stress>> <<set $traumagain to 0>> <<set $stressgain to 0>> <<combatinit>> <</widget>> <<widget "strangeman2init">> <<set $enemyhealth to 200>> <<set $enemyarousal to $allure / 50>> <<set $enemyanger to 0>> <<set $enemystrength to 20000>> <<set $combat to 1>> <<set $enemyarousalmax to 500>> <<set $enemyangermax to 200>> <<set $enemyhealthmax to 200>> <<set $enemytrust to 0>> <<if $dissociation gte 1>> <<set $enemytrust -= 40>> <</if>> <<set $enemytype to "man">> <<set $rapeavoid to 1>> <<set $orgasmdown to 0>> <<set $penisbitten to 0>> <<set $apologised to 0>> <<set $underlowerstruggle to 0>> <<set $lowerstruggle to 0>> <<set $upperstruggle to 0>> <<set $leftaction to 0>> <<set $rightaction to 0>> <<set $traumasaved to $trauma>> <<set $stresssaved to $stress>> <<set $traumagain to 0>> <<set $stressgain to 0>> <<combatinit>> <</widget>> <<widget "strangewoman1init">> <<set $enemyhealth to 200>> <<set $enemyarousal to $allure / 50>> <<set $enemyanger to 0>> <<set $enemystrength to 20000>> <<set $combat to 1>> <<set $enemyarousalmax to 500>> <<set $enemyangermax to 200>> <<set $enemyhealthmax to 200>> <<set $enemytrust to 0>> <<if $dissociation gte 1>> <<set $enemytrust -= 40>> <</if>> <<set $enemytype to "man">> <<set $rapeavoid to 1>> <<set $orgasmdown to 0>> <<set $penisbitten to 0>> <<set $apologised to 0>> <<set $underlowerstruggle to 0>> <<set $lowerstruggle to 0>> <<set $upperstruggle to 0>> <<set $leftaction to 0>> <<set $rightaction to 0>> <<set $traumasaved to $trauma>> <<set $stresssaved to $stress>> <<set $traumagain to 0>> <<set $stressgain to 0>> <<combatinit>> <</widget>> <<widget "tailorinit">> <<set $enemyhealth to 200>> <<set $enemyarousal to $allure / 50>> <<set $enemyanger to 0>> <<set $enemystrength to 20000>> <<set $combat to 1>> <<set $enemyarousalmax to 500>> <<set $enemyangermax to 200>> <<set $enemyhealthmax to 200>> <<set $enemytrust to 0>> <<if $dissociation gte 1>> <<set $enemytrust -= 40>> <</if>> <<set $enemytype to "man">> <<set $rapeavoid to 1>> <<set $orgasmdown to 0>> <<set $penisbitten to 0>> <<set $apologised to 0>> <<set $underlowerstruggle to 0>> <<set $lowerstruggle to 0>> <<set $upperstruggle to 0>> <<set $leftaction to 0>> <<set $rightaction to 0>> <<set $traumasaved to $trauma>> <<set $stresssaved to $stress>> <<set $traumagain to 0>> <<set $stressgain to 0>> <<set $leftarm to "bound">> <<set $rightarm to "bound">> <<combatinit>> <</widget>> <<widget "molestbusinit">> <<set $enemyhealth to 200>> <<set $enemyarousal to $allure / 50>> <<set $enemyanger to 0>> <<set $enemystrength to 20000>> <<set $combat to 1>> <<set $enemyarousalmax to 500>> <<set $enemyangermax to 200>> <<set $enemyhealthmax to 200>> <<set $enemytrust to 0>> <<if $dissociation gte 1>> <<set $enemytrust -= 40>> <</if>> <<set $enemytype to "man">> <<set $rapeavoid to 1>> <<set $orgasmdown to 0>> <<set $penisbitten to 0>> <<set $apologised to 0>> <<set $underlowerstruggle to 0>> <<set $lowerstruggle to 0>> <<set $upperstruggle to 0>> <<set $leftaction to 0>> <<set $rightaction to 0>> <<set $traumasaved to $trauma>> <<set $stresssaved to $stress>> <<set $traumagain to 0>> <<set $stressgain to 0>> <<if Time.dayState isnot "night">><<enable_rescue>><</if>> <<hand_gag 0 left>> <<combatinit>> <</widget>> <<widget "lefthandinit">> <<set $enemyhealth to 200>> <<set $enemyarousal to $allure / 50>> <<set $enemyanger to 0>> <<set $enemystrength to 20000>> <<set $NPCList[0].lefthand to 0>> <<set $NPCList[0].righthand to "none">> <<set $NPCList[0].penis to "none">> <<set $NPCList[0].vagina to "none">> <<set $combat to 1>> <<set $enemyarousalmax to 100>> <<set $enemyangermax to 200>> <<set $enemyhealthmax to 200>> <<set $enemytrust to 0>> <<if $dissociation gte 1>> <<set $enemytrust -= 40>> <</if>> <<set $enemytype to "man">> <<set $rapeavoid to 1>> <<set $orgasmdown to 0>> <<set $penisbitten to 0>> <<set $apologised to 0>> <<set $underlowerstruggle to 0>> <<set $lowerstruggle to 0>> <<set $upperstruggle to 0>> <<set $leftaction to 0>> <<set $rightaction to 0>> <<set $traumasaved to $trauma>> <<set $stresssaved to $stress>> <<set $traumagain to 0>> <<set $stressgain to 0>> <<if Time.dayState isnot "night">><<enable_rescue>><</if>> <<combatinit>> <</widget>> <<widget "nurseinit">> <<set $enemyhealth to 200>> <<set $enemyarousal to $allure / 50>> <<set $enemyanger to 0>> <<set $enemystrength to 20000>> <<set $combat to 1>> <<set $enemyarousalmax to 400>> <<set $enemyangermax to 200>> <<set $enemyhealthmax to 200>> <<set $enemytrust to 0>> <<if $dissociation gte 1>> <<set $enemytrust -= 40>> <</if>> <<set $enemytype to "man">> <<set $rapeavoid to 1>> <<set $orgasmdown to 0>> <<set $penisbitten to 0>> <<set $apologised to 0>> <<set $underlowerstruggle to 0>> <<set $lowerstruggle to 0>> <<set $upperstruggle to 0>> <<set $leftaction to 0>> <<set $rightaction to 0>> <<set $traumasaved to $trauma>> <<set $stresssaved to $stress>> <<set $traumagain to 0>> <<set $stressgain to 0>> <<drugs 120>> <<combatinit>> <</widget>> <<widget "pharmnurseinit">> <<set $enemyhealth to $NPCList[0].health>> <<set $enemyarousal to $allure / 100>> <<set $enemyanger to 0>> <<set $enemystrength to 20000>> <<set $combat to 1>> <<set $enemyarousalmax to 1000>> <<set $enemyangermax to 200>> <<set $enemyhealthmax to $NPCList[0].healthmax>> <<set $enemytrust to 0>> <<if $dissociation gte 1>> <<set $enemytrust -= 40>> <</if>> <<set $enemytype to "man">> <<set $rapeavoid to 1>> <<set $orgasmdown to 0>> <<set $penisbitten to 0>> <<set $apologised to 0>> <<set $underlowerstruggle to 0>> <<set $lowerstruggle to 0>> <<set $upperstruggle to 0>> <<set $leftaction to 0>> <<set $rightaction to 0>> <<set $traumasaved to $trauma>> <<set $stresssaved to $stress>> <<set $traumagain to 0>> <<set $stressgain to 0>> <<if $worn.over_lower.name != "naked">> <<set $NPCList[0].lefthand to "overlowerclothes">> <<set $NPCList[0].righthand to "overlowerclothes">> <<elseif $worn.lower.name != "naked">> <<set $NPCList[0].lefthand to "lowerclothes">> <<set $NPCList[0].righthand to "lowerclothes">> <<elseif $worn.under_lower.name != "naked">> <<set $NPCList[0].lefthand to "underlowerclothes">> <<set $NPCList[0].righthand to "underlowerclothes">> <</if>> <<set $NPCList[0].mouth to "penisentrance">> <<set $NPCList[0].location.head = "genitals">> <<set $NPCList[0].location.genitals = "idle">> <!-- 'dont' is just an invalid value so that the NPC won't know how to use its genitals, otherwise there's no easy way of stopping NPC from shoving their stuff in PC's face --> <!--Prevents the use of asking for condoms--> <<set $NPCList[0].condomAsk to true>> <<combatinit>> <</widget>> <<widget "spankmaninit">> <<set $enemyhealth to 200>> <<set $enemyarousal to 0>> <<set $enemyanger to 300>> <<set $enemystrength to 20000>> <<set $NPCList[0].lefthand to "arms">> <<set $NPCList[0].righthand to "spank">> <<set $combat to 1>> <<set $enemyarousalmax to 500>> <<set $enemyangermax to 300>> <<set $enemyhealthmax to 200>> <<set $enemytrust to 0>> <<if $dissociation gte 1>> <<set $enemytrust -= 40>> <</if>> <<set $enemytype to "man">> <<set $rapeavoid to 1>> <<set $orgasmdown to 0>> <<set $penisbitten to 0>> <<set $apologised to 0>> <<set $underlowerstruggle to 0>> <<set $lowerstruggle to 0>> <<set $upperstruggle to 0>> <<set $leftaction to 0>> <<set $rightaction to 0>> <<set $traumasaved to $trauma>> <<set $stresssaved to $stress>> <<set $traumagain to 0>> <<set $stressgain to 0>> <<set $enemyno to 1>> <<set $leftarm to "grappled">> <<set $rightarm to "grappled">> <<combatinit>> <</widget>> <<widget "bound2init">> <<set $enemyhealth to 400>> <<set $enemyarousal to $allure / 50>> <<set $enemyanger to 0>> <<set $enemystrength to 20000>> <<set $combat to 1>> <<set $enemyarousalmax to 1000>> <<set $enemyangermax to 200>> <<set $enemyhealthmax to 400>> <<set $enemytrust to 0>> <<if $dissociation gte 1>> <<set $enemytrust -= 40>> <</if>> <<set $enemytype to "man">> <<set $rapeavoid to 1>> <<set $orgasmdown to 0>> <<set $penisbitten to 0>> <<set $apologised to 0>> <<set $underlowerstruggle to 0>> <<set $lowerstruggle to 0>> <<set $upperstruggle to 0>> <<set $leftaction to 0>> <<set $rightaction to 0>> <<set $traumasaved to $trauma>> <<set $stresssaved to $stress>> <<set $traumagain to 0>> <<set $stressgain to 0>> <<combatinit>> <</widget>> <<widget "ganginit">> <<set $enemyhealth to 1200>> <<set $enemyarousal to $allure / 50>> <<set $enemyanger to 0>> <<set $enemystrength to 20000>> <<set $combat to 1>> <<set $enemyarousalmax to 3000>> <<set $enemyangermax to 200>> <<set $enemyhealthmax to 1200>> <<set $enemytrust to 0>> <<if $dissociation gte 1>> <<set $enemytrust -= 40>> <</if>> <<set $enemytype to "man">> <<set $rapeavoid to 1>> <<set $orgasmdown to 0>> <<set $penisbitten to 0>> <<set $apologised to 0>> <<set $underlowerstruggle to 0>> <<set $lowerstruggle to 0>> <<set $upperstruggle to 0>> <<set $leftaction to 0>> <<set $rightaction to 0>> <<set $traumasaved to $trauma>> <<set $stresssaved to $stress>> <<set $traumagain to 0>> <<set $stressgain to 0>> <<combatinit>> <</widget>> <<widget "abominationold">> <<set $enemyhealth to 5555>> <<set $enemyarousal to $allure / 50>> <<set $enemyanger to 0>> <<set $enemystrength to 20000>> <<set $NPCList[0].lefthand to 0>> <<set $NPCList[1].lefthand to "none">> <<set $NPCList[2].lefthand to "none">> <<set $NPCList[3].lefthand to "none">> <<set $NPCList[4].lefthand to "none">> <<set $NPCList[5].lefthand to "none">> <<set $NPCList[0].righthand to 0>> <<set $NPCList[1].righthand to "none">> <<set $NPCList[2].righthand to "none">> <<set $NPCList[3].righthand to "none">> <<set $NPCList[4].righthand to "none">> <<set $NPCList[5].righthand to "none">> <<set $NPCList[0].penis to 0>> <<set $NPCList[1].penis to 0>> <<set $NPCList[2].penis to 0>> <<set $NPCList[3].penis to 0>> <<set $NPCList[4].penis to "clothed">> <<set $NPCList[5].penis to "clothed">> <<set $NPCList[0].vagina to 0>> <<set $NPCList[1].vagina to "none">> <<set $NPCList[2].vagina to "none">> <<set $NPCList[3].vagina to "none">> <<set $NPCList[4].vagina to "none">> <<set $NPCList[5].vagina to "none">> <<set $NPCList[0].mouth to 0>> <<set $NPCList[1].mouth to "none">> <<set $NPCList[2].mouth to "none">> <<set $NPCList[3].mouth to "none">> <<set $NPCList[4].mouth to "none">> <<set $NPCList[5].mouth to "none">> <<set $combat to 1>> <<set $enemyarousalmax to 500>> <<set $enemyangermax to 200>> <<set $enemyhealthmax to 5555>> <<set $enemytrust to 4444>> <<if $dissociation gte 1>> <<set $enemytrust -= 40>> <</if>> <<set $rapeavoid to 1>> <<set $orgasmdown to 0>> <<set $penisbitten to 0>> <<set $apologised to 0>> <<set $underlowerstruggle to 0>> <<set $lowerstruggle to 0>> <<set $upperstruggle to 0>> <<set $leftaction to 0>> <<set $rightaction to 0>> <<set $traumasaved to $trauma>> <<set $stresssaved to $stress>> <<set $traumagain to 0>> <<set $stressgain to 0>> <<set $enemyno to 1>> <<set $NPCList[0].pronoun to "n">> <<combatinit>> <</widget>> <<widget "abominationold2">> <<set $enemyhealth to 5555>> <<set $enemyarousal to $allure / 50>> <<set $enemyanger to 0>> <<set $enemystrength to 20000>> <<set $NPCList[0].lefthand to 0>> <<set $NPCList[1].lefthand to 0>> <<set $NPCList[0].righthand to 0>> <<set $NPCList[1].righthand to 0>> <<set $NPCList[0].penis to 0>> <<set $NPCList[1].penis to 0>> <<set $NPCList[0].vagina to 0>> <<set $NPCList[1].vagina to 0>> <<set $NPCList[0].mouth to 0>> <<set $NPCList[1].mouth to 0>> <<set $combat to 1>> <<set $enemyarousalmax to 500>> <<set $enemyangermax to 200>> <<set $enemyhealthmax to 5555>> <<set $enemytrust to 4444>> <<if $dissociation gte 1>> <<set $enemytrust -= 40>> <</if>> <<set $rapeavoid to 1>> <<set $orgasmdown to 0>> <<set $penisbitten to 0>> <<set $mouthsubmit to 0>> <<set $apologised to 0>> <<set $underlowerstruggle to 0>> <<set $lowerstruggle to 0>> <<set $upperstruggle to 0>> <<set $leftaction to 0>> <<set $rightaction to 0>> <<set $traumasaved to $trauma>> <<set $stresssaved to $stress>> <<set $traumagain to 0>> <<set $stressgain to 0>> <<set $enemyno to 1>> <<set $NPCList[0].pronoun to "n">> <<combatinit>> <</widget>> <<widget "crossdressing_check">> <<if $player.penisExist and $player.vaginaExist>> <<set $crossdressing to 2>> <<elseif isCrossdressing()>> <<set $crossdressing to 1>> <<else>> <<set $crossdressing to 0>> <</if>> <</widget>> <<widget "danceinit">> <<crossdressing_check>> <<set $dancing to 1>> <<set $dance_place to 0>> <</widget>> <<widget "combatinit">> <<if !_controlloss>> /* save $control state at the combat start, unless it's already been saved by <<controlloss>> earlier in the passage */ <<set $controlstart to $control>> <</if>> <<set $arousalmasochism to 0>> <<set $combatgoal to 0>> <!-- <<set $turnCount to 0>> --> <<set _genderexposed to $exposed gte 2 and !($worn.genitals.type.includesAll("chastity", "hidden"))>> <<if $npc.length gt 0>> <<for _iii to 0; _iii lt $npc.length; _iii++>> <<if $genderknown.includes($npc[_iii])>> <<set _genderknownbeforehand to true>> <<elseif _genderexposed>> <<run $genderknown.pushUnique($npc[_iii])>> <</if>> <</for>> <</if>> <<set $newlyWritten to []>> <<if _genderknownbeforehand or _genderexposed>> <<set $crossdressing to 0>> <<else>> <<crossdressing_check>> <</if>> <<set $enemynomax to $enemyno>> <<if $enemytype is "beast">> <<if $NPCList[0].penis is "none" and $player.penisExist>> <<set $position to "missionary">> <<else>> <<if random(1, 100) gte 20>> <<set $position to "doggy">> <<else>> <<set $position to "missionary">> <</if>> <</if>> <<else>> <<if $NPCList[0].penis is "none">> <<if random(1, 100) gte 80>> <<set $position to "doggy">> <<else>> <<set $position to "missionary">> <</if>> <<else>> <<if random(1, 100) gte 50>> <<set $position to "doggy">> <<else>> <<set $position to "missionary">> <</if>> <</if>> <</if>> <<for _i to 0; _i lt $enemynomax; _i++>> <<if $NPCList[_i].stance isnot "defeated">> <<set $NPCList[_i].active to "active">> <</if>> <<if $NPCList[_i].fullDescription is "Avery">> <<if $avery_mansion>> <<if $avery_mansion.injury_timer gte 1>> <<set $NPCList[_i].righthand to "idle">> <span class="lblue">Avery's right hand is too injured to engage.</span> <br> <</if>> <</if>> <</if>> <</for>> <<if $earSlime.event is "have sex with someone" or $earSlime.event is "have sex with someone or something">> <<set $earSlime.event to "">> <</if>> <<if $worn.face.type.includes("gag")>> <<set $mouthuse to "gagged">> <</if>> <<if $worn.feet.type.includes("shackle")>> <<set $leftleg to "bound">> <<set $rightleg to "bound">> <<set $feetuse to "bound">> <</if>> <<if playerHasStrapon()>> <<set $penisuse to 0>><<set $penisstate to 0>> /*<<if $worn.under_lower.size isnot undefined>> <<set $playerPenisSizeBackup to $player.penissize>> <<set $player.penissize to $worn.under_lower.size>> <</if>>*/ <</if>> <<resetLastOptions>> <<getCombatDefaultsType>> <<wetnessCalculate>> <</widget>> <<widget "man">> <<if $finish isnot 1>> <<if $setupMidOrgasm is true>> <<if $ejaculatingMid is true>> <<set $ejaculating to 1>> <<set $ejaculatingMid to false>> <<elseif $ejaculatingMid is false>> <<unset $ejaculatingMid>> <</if>> <</if>> <div @class="($debugLines ? 'debugLines-combat' : '')"> <br> <<for _mancombatcontrol = 0; _mancombatcontrol lt $enemynomax; _mancombatcontrol++>> <<if $NPCList[_mancombatcontrol].active is "active" and $NPCList[_mancombatcontrol].stance isnot "defeated">> <<man-combat _mancombatcontrol>> <<if $position isnot "stalk" and !$breakIgnore>> <br><br> <</if>> <<elseif $debug is 1 and $NPCList[_mancombatcontrol].active isnot "active">> <br>Debug Message:<br>NPC _mancombatcontrol, $NPCList[_mancombatcontrol].fullDescription is not active.<br> <<elseif $debug is 1 and $NPCList[_mancombatcontrol].stance is "defeated">> <br>Debug Message:<br>NPC _mancombatcontrol, $NPCList[_mancombatcontrol].fullDescription is defeated.<br> <</if>> <</for>> <<if $oxygen lt $oxygenmax and $underwater isnot 1 and _strangle is 1>> <<unset _strangle>> Air: <<oxygencaption>> <br> <</if>> </div> <</if>> <<rng>> <<if $worn.over_lower.vagina_exposed gte 1 and $worn.under_lower.vagina_exposed gte 1 and $worn.lower.vagina_exposed gte 1 and $npc.length isnot 0 and !$worn.genitals.type.includesAll("chastity", "hidden")>> <<run $npc.forEach(npc => $genderknown.pushUnique(npc))>> <</if>> <<if $worn.genitals.type.includesAll("chastity", "hidden") or $NPCList[0].state is "stalk" or $NPCList[0].state is "pursuit" or $NPCList[0].state is "chased" or $gloryhole>> <<elseif $crossdressing gte 1 and $worn.over_lower.vagina_exposed gte 1 and $worn.under_lower.vagina_exposed gte 1 and $worn.lower.vagina_exposed gte 1>> <<exposedcheck true>> <<if $NPCList[0].teen is 1 and $location is "school" and !($npc.length is 1 and (["Kylar","Sydney"].includes($npc[0])))>> <<schoolrep_naked>> <</if>> <<if $genitalReactionDisable>> <!-- No reaction --> <<elseif $crossdressing is 2>> <!-- Herm PC --> <<if $npc.length is 1 and (["Kylar","Sydney","Gwylan"].includes($npc[0]))>> <!-- Only Kylar, Sydney and Gwylan have fixed reactions, other named NPCs CAN react with anything from disgust to arousal to anger if they don't know your gender. --> <<if $npc[0] is "Sydney" and !$sydneySeen.includes("herm")>> <<set $sydneySeen.pushUnique("herm")>> <<if _sydneyStatus.includes("corrupt")>> <<He>> stares with wonder at your <<genitals>>. <<else>> <<He>> eyes your <<genitals>> with great curiosity. <</if>> <<npcincr Sydney purity -2>><<lspurity>><<set $speechhermaroused to 2>> <<elseif $npc[0] is "Kylar">> <!-- TODO: Give Kylar a unique reaction? --> <span class="purple"><<His>> hands shake and <<his>> breath quickens at the sight of your <<genitals>>.</span> <<set $enemyarousal += 50>><<set $speechhermaroused to 2>> <<elseif $npc[0] is "Gwylan" and !$gwylanSeen.includes("herm")>> <<set $gwylanSeen.pushUnique("herm")>> <<His>> eyesbrows raise upon seeing your <<genitals>>. <<set $speechhermaroused to 2>> <</if>> <<elseif $NPCList[0].type is "plant" or $rng lte 30>> <<if $enemyno gte 2>> They take both your <<genitals>> in stride, seeming unbothered. <<else>> <<He>> takes both your <<genitals>> in stride, seeming unbothered. <</if>> <<elseif $rng lte 50>> <<if $enemyno gte 2>> They're taken aback by your <<genitals>>. They don't seem angry, at least. <<else>> <<Hes>> taken aback by your <<genitals>>. <<He>> doesn't seem angry, at least. <</if>> <<set $enemyarousal -= 100>><<set $enemytrust -= 50>><<set $speechhermdisappointed to 2>> <<elseif $rng lte 85>> <<if $enemyno gte 2>> <span class="blue">They recoil in shock at the sight of your <<genitals>>.</span> <<else>> <span class="blue"><<He>> recoils in shock at the sight of your <<genitals>>.</span> <</if>> <<set $enemyanger -= 50>><<set $enemytrust -= 50>><<set $speechhermshock to 2>> <<elseif $rng lte 95>> <<if $enemyno gte 2>> <span class="purple">Their hands shake and their breath quickens at the sight of your <<genitals>>.</span> <<else>> <span class="purple"><<His>> hands shake and <<his>> breath quickens at the sight of your <<genitals>>.</span> <</if>> <<set $enemyarousal += (50 * $enemyno)>><<set $speechhermaroused to 2>> <<else>> <<if $enemyno gte 2>> <span class="red">They recoil in horror and disgust at the sight of your <<genitals>>!</span> <<else>> <span class="red"><<He>> recoils in horror and disgust at the sight of your <<genitals>>!</span> <</if>> <<set $enemyanger += 200>><<set $enemytrust -= 100>><<set $speechhermangry to 2>> <</if>> <<else>> <!-- Crossdressing PC --> <<if $npc.length is 1 and (["Kylar","Sydney","Gwylan"].includes($npc[0]))>> <<if $npc[0] is "Sydney" and !$sydneySeen.includes("crossdress")>> <<set $sydneySeen.pushUnique("crossdress")>> <<run statusCheck("Sydney")>> <<if _sydneyStatus.includes("corrupt")>> <<He>> looks taken aback by your <<genitals>>. It wasn't what <<he>> was expecting, but <<he>> doesn't seem to mind. <<else>> <<He>> stares at your <<genitals>> with confusion. It wasn't what <<he>> was expecting, but <<he>> doesn't seem to mind. <</if>> <<npcincr Sydney purity -2>><<lspurity>><<set $speechcrossdressaroused to 2>> <<elseif $npc[0] is "Kylar">> <!-- TODO: Give Kylar unique reactions? --> <<set _kylar to statusCheck("Kylar")>> <<if _kylar.gender isnot $player.sex or _kylar.gender is "h">> Your <<genitals 1>> was clearly not what <<he>> was expecting, but <<he>> doesn't seem to mind. <<if _kylar.gender isnot "h">><span class="purple">In fact, if <<his>> shaking hands are anything to go by <<he>> is quite pleased.</span><</if>> <<set $enemyarousal += 50>><<set $speechcrossdressaroused to 2>> <<else>> <<He>> looks disappointed by your <<genitals>>. It wasn't what <<he>> was expecting. <<set $enemyarousal -= 100>><<set $enemytrust -= 50>><<set $speechcrossdressdisappointed to 2>> <</if>> <<elseif $npc[0] is "Gwylan" and !$gwylanSeen.includes("crossdress")>> <<He>> scratches <<his>> head upon seeing your <<genitals>>. It wasn't what <<he>> was expecting, but <<he>> doesn't seem to mind. <<set $speechcrossdressaroused to 2>> <</if>> <<elseif $NPCList[0].type is "plant" or $rng lte 30>> <<if $enemyno gte 2>> Your <<genitals>> was clearly not what they were expecting, but they don't seem to mind. <<else>> Your <<genitals 1>> was clearly not what <<he>> was expecting, but <<he>> doesn't seem to mind. <</if>> <<elseif $rng lte 50>> <<if $enemyno gte 2>> They look disappointed by your <<genitals>>. It wasn't what they were expecting. <<else>> <<He>> looks disappointed by your <<genitals>>. It wasn't what <<he>> was expecting. <</if>> <<set $enemyarousal -= 100>><<set $enemytrust -= 50>><<set $speechcrossdressdisappointed to 2>> <<elseif $rng lte 85>> <<if $enemyno gte 2>> Their eyes widen in shock when they see your <<genitals>>. They seem unsure what to do. <<else>> <<His>> eyes widen in shock when <<he>> sees your <<genitals>>. <<He>> seems unsure what to do. <</if>> <<set $enemyanger -= 50>><<set $enemytrust -= 50>><<set $speechcrossdressshock to 2>> <<elseif $rng lte 95>> <<if $enemyno gte 2>> Your <<genitals>> was clearly not what they were expecting, but they don't seem to mind. <span class="purple">In fact, if their shaking hands are anything to go by they're quite pleased.</span> <<else>> Your <<genitals 1>> was clearly not what <<he>> was expecting, but <<he>> doesn't seem to mind. <span class="purple">In fact, if <<his>> shaking hands are anything to go by <<he>> is quite pleased.</span> <</if>> <<set $enemyarousal += (50 * $enemyno)>><<set $speechcrossdressaroused to 2>> <<else>> <<if $enemyno gte 2>> <span class="red">They recoil in horror upon seeing your <<genitals>>. The deception has driven them mad with rage!</span> <<else>> <span class="red"><<He>> recoils in horror upon seeing your <<genitals>>. The deception has driven <<him>> mad with rage!</span> <</if>> <<set $enemyanger += 200>><<set $enemytrust -= 100>><<set $speechcrossdressangry to 2>> <</if>> <<if !$backgroundTraits.includes("crossdresser")>> <<set $crossdressingTrait to ($crossdressingTrait gte 1 ? $crossdressingTrait + 1 : 1)>> <<if $crossdressingTrait gte 100>> <<run $backgroundTraits.pushUnique("crossdresser")>> <br><br> <span class="gold">Being seen crossdressing makes you feel happy inside.</span> <</if>> <</if>> <</if>> <<set $crossdressing to 0>> <br><br> <</if>> /* NPC reactions to revealing your sex toys */ <<if $dildoreveal gt 0>> <<set $dildoreveal to 0>> <<set $_sexToy to ($rightarm is "heldSexToy" and $leftarm is "heldSexToy" ? "sex toys" : "sex toy")>> <<set $_was to ($rightarm is "heldSexToy" and $leftarm is "heldSexToy" ? "were" : "was")>> <<if $enemyno gte 2>> <<set $speechSextoyState to $speechSextoyState || either("aroused", "neutral", "disappointed", "shocked", "angry")>> <<cleareventpool>> <<switch $speechSextoyState>> <<case "aroused">> <<addinlineevent>> Their breath quickens at the sight of your $_sexToy. <<set $enemyarousal += 50>> <</addinlineevent>> <<addinlineevent>> They seem pleased to see your $_sexToy. <</addinlineevent>> <<addinlineevent>> They're taken aback by your $_sexToy, but seem excited by it. <</addinlineevent>> <<case "neutral">> <<addinlineevent>> Your $_sexToy $_was clearly unexpected, but they don't seem to mind. <</addinlineevent>> <<case "disappointed">> <<addinlineevent 0.5>> They look disappointed by your $_sexToy. It wasn't what they was expecting. <<set $enemyarousal -= 100>><<set $enemytrust -= 50>> <</addinlineevent>> <<case "shocked">> <<addinlineevent 0.5>> Their eyes widen in shock at the reveal of your $_sexToy. <<set $enemyanger -= 50>><<set $enemytrust -= 50>> <</addinlineevent>> <<case "angry">> <<addinlineevent 0.5>> They recoil in disgust at the sight of your $_sexToy. <<set $enemyanger += 75>><<set $enemytrust -= 75>> <</addinlineevent>> <<default>> <<addinlineevent>> They appear confused. Not sure what to think of your $_sexToy. <span class="blue">You should inform Vrelnir.</span> <</addinlineevent>> <</switch>> <<runeventpool>> <<else>> <<switch $NPCList[0].fullDescription>> <<case "Robin">> <<set $speechsextoy to 1>> <<case "Kylar">> <<set $speechsextoy to 1>> <<case "Whitney">> <<set $speechsextoy to 1>> <<case "Sydney">> <<set $speechsextoy to 1>> <<case "Alex">> <<set $speechsextoy to 1>> <<case "Eden">> <<set $speechsextoy to 1>> <<set $enemytrust -=25>> <<case "Avery">> <<set $speechsextoy to 1>> <<case "Gwylan">> <<set $speechsextoy to 1>> <<case "Leighton">> <<set $speechsextoy to 1>> <<default>> <<set $speechSextoyState to $speechSextoyState || either("aroused", "neutral", "disappointed", "shocked", "angry")>> <<cleareventpool>> <<switch $speechSextoyState>> <<case "aroused">> <<addinlineevent>> <<His>> breath quickens at the sight of your $_sexToy. <<set $enemyarousal += 50>> <</addinlineevent>> <<addinlineevent>> <<He>> seems pleased to see your $_sexToy. <</addinlineevent>> <<addinlineevent>> <<Hes>> taken aback by your $_sexToy, but seems excited by it. <</addinlineevent>> <<case "neutral">> <<addinlineevent>> Your $_sexToy $_was clearly unexpected, but <<he>> doesn't seem to mind. <</addinlineevent>> <<case "disappointed">> <<addinlineevent 0.5>> <<He>> looks disappointed by your $_sexToy. It wasn't what <<he>> was expecting. <<set $enemyarousal -= 100>><<set $enemytrust -= 50>> <</addinlineevent>> <<case "shocked">> <<addinlineevent 0.5>> <<His>> eyes widen in shock at the reveal of your $_sexToy. <<set $enemyanger -= 50>><<set $enemytrust -= 50>> <</addinlineevent>> <<case "angry">> <<addinlineevent 0.5>> <<He>> recoils in disgust at the sight of your $_sexToy. <<set $enemyanger += 75>><<set $enemytrust -= 75>> <</addinlineevent>> <<default>> <<addinlineevent>> <<He>> appears confused. Not sure what to think of your $_sexToy. <span class="blue">You should inform Vrelnir.</span> <</addinlineevent>> <</switch>> <<runeventpool>> <</switch>> <</if>> <</if>> <<turnend>> <</widget>> <<widget "printCombatMenu">> <<set $_combatTypes to {'Radio': 'radio', 'Radio (c)': 'columnRadio', 'Lists': 'lists', 'List (w)': 'limitedLists'}>> <div id="cbtToggleMenu"> <label class="cbtToggle"> <p>Combat menu</p> </label> <hr> <label class="cbtOption"> <p>Control types</p> <<listbox "$options.combatControls" autoselect>> <<optionsfrom $_combatTypes>> <</listbox>> </label> <label class="cbtOption"> <p>Scroll lock</p> <<checkbox "$options.scrollRemember" false true autocheck>> </label> <label class="cbtOption"> <p>Target yourself</p> <<checkbox "$options.targetYourself" false true autocheck>> </label> <label class="cbtOption"> <p>Combat images</p> <<checkbox "$options.combatImages" 0 1 autocheck>> </label> </div> <</widget>><<widget "generateActionsMachine">> <<set $combat to 1>> <<if _targetlist is undefined>> <<getTargetList>> <</if>> <div id="listContainer"> <div id="leftaction" @class="$options.combatControls + 'Control'"> <<leftActionInitMachine>> </div> <div id="rightaction" @class="$options.combatControls + 'Control'"> <<rightActionInitMachine>> </div> <div id="feetaction" @class="$options.combatControls + 'Control'"> <<feetActionInitMachine>> </div> <<if ($mouthuse is 0 and !($dissociation lte 1 and $orgasmdown lte 0 and ($pain lt 100 or $willpowerpain is undefined)))>> <div id="mouthaction" @class="$options.combatControls + 'Control'"> <<mouthActionInit>> </div> <</if>> </div> <</widget>> <<widget "leftActionInitMachine">> <<set $lefttarget to "machine">> <<switch $leftarm>> <<case 0>> <<if $orgasmdown gte 1>> <<set _leftOptions to "orgasm">> <span class="lewd">Your left arm is free, but you can't stop the spasms.</span> <<elseif $pain gte 100 and $willpowerpain is 0>> <<set _leftOptions to "pain">> <span class="red">Your left arm is free, but hurts to move.</span> <<elseif $dissociation gte 2>> <<set _leftOptions to "unreal">> <span class="pink">Your left arm is free, but doesn't feel real.</span> <<else>> <<if _targetYourself is true and _targetnumber gt 1>> <<set _targetlistarms["Yourself"] to "self">> <</if>> <<if not $options.combatControls.includes("adio") and _targetnumber gt 1>> <<targetListBox "left" _targetlistarms>> <</if>> <<set _leftOptions to "free">> <span @class="($lastOptions.left isnot _leftOptions ?'gold':'')">Your left arm is free.</span> <<if $options.combatControls.includes("adio") and _targetnumber gt 1>> <br> <<targetListBox "left" _targetlistarms>> <br> <</if>> <</if>> <<case "mechgrappled">> <<if $orgasmdown gte 1>> <<set _leftOptions to "bound">> <span class="lewd">Your left arm jerks against its bonds.</span> <<elseif $pain gte 100 and $willpowerpain is 0>> <<set _leftOptions to "bound">> <span class="red">Your left arm is held in a painful bind.</span> <<elseif $dissociation gte 2>> <<set _leftOptions to "bound">> <span class="pink">Your left arm lies limp in its bonds.</span> <<else>> <<set _leftOptions to "mech">> <span @class="($lastOptions.left isnot _leftOptions ?'gold':'')">Your left arm is held down.</span> <</if>> <<case "swarmgrappled">> <<set $_changetype to true>><<leftActionInitSwarm>> <<case "bound">> <<if $orgasmdown gte 1>> <<set _leftOptions to "bound">> <span class="lewd">Your left arm jerks against its bonds.</span> <<elseif $pain gte 100 and $willpowerpain is 0>> <<set _leftOptions to "bound">> <span class="red">Your left arm is held in a painful bind.</span> <<elseif $dissociation gte 2>> <<set _leftOptions to "bound">> <span class="pink">Your left arm lies limp in its bonds.</span> <<else>> <<set _leftOptions to "bound">> <span @class="($lastOptions.left isnot _leftOptions ?'gold':'')">Your left arm is bound and helpless.</span> <</if>><<if $options.combatControls.includes("adio")>><br><</if>> <<case "trapped">> <<set $_changetype to true>><<leftActionInitVore>> <<case "grappled" "penis" "othervagina" "vagina" "coverpenis" "anus" "behind">> <<set $_changetype to true>><<leftActionInit>> <<case "struggle">> <<set $_changetype to true>><<leftActionInitStruggle>> <<default>> <<set $_changetype to true>><<leftActionInitTentacle>> <</switch>> <<if $_changetype isnot true>> <<leftActionsMachine>> <<if Object.keys(_leftaction).length gt 0>> <<if !(Object.values(_leftaction).includes($leftactiondefault))>> <<set $leftactiondefault to "rest">> <</if>> <<set $leftaction to $leftactiondefault>> <div class="extraMargin"> <<generateCombatAction _leftaction "leftaction" "Machine">> </div> <<if $options.combatControls.includes("ists")>> <div id="leftactionDifficulty"> <<leftactionDifficulty>> </div> <</if>> <</if>> <<set $lastOptions.left to clone(_leftOptions)>> <</if>> <</widget>> <<widget "leftactionDifficultyMachine">>/* Just so things don't break. */ <!-- Does nothing --> <</widget>> <<widget "leftActionsMachine">> <<set _leftaction to {}>> <<switch _leftOptions>> <<case "free">> <<if $machine.arm_chains>> <<if $machine.arm_chains.use isnot "inert" and $machine.arm_chains.use isnot "destroyed">> <<set _leftaction["Pull on the chains"] to "chain_struggle">> <</if>> <</if>> <<if $machine.tattoo>> <<if $machine.tattoo.use isnot "inert" and $machine.tattoo.use isnot "destroyed">> <<set _leftaction["Whack the tattoo gun"] to "whack">> <</if>> <</if>> <<if $machine.vaginal>> <<if $machine.vaginal.use isnot "inert" and $machine.vaginal.use isnot "destroyed">> <<set _leftaction["Whack the phallic machine"] to "vaginal_whack">> <<set _leftaction["Push the phallic machine away"] to "vaginal_push">> <</if>> <</if>> <<if $machine.anal>> <<if $machine.anal.use isnot "inert" and $machine.anal.use isnot "destroyed">> <<set _leftaction["Whack the small phallic machine"] to "anal_whack">> <<set _leftaction["Push the small phallic machine away"] to "anal_push">> <</if>> <</if>> <<set _leftaction["Rest"] to "rest">> <<case "mech">> <<if $machine.arm_chains>> <<if $machine.arm_chains.use isnot "inert" and $machine.arm_chains.use isnot "destroyed">> <<set _leftaction["Pull on the chains"] to "chain_struggle">> <</if>> <</if>> <<set _leftaction["Rest"] to "rest">> <<case "orgasm">> <<set _leftaction["Fold"] to "leftfold">> <<set _leftaction["Grip"] to "leftgrip">> <<case "pain">> <<set _leftaction["Struggle"] to "leftstruggleweak">> <<set _leftaction["Protect"] to "leftprotect">> <<case "unreal">> <<set _leftaction["Poke yourself"] to "leftpoke">> <<set _leftaction["Keep your arms out of the way"] to "leftcurl">> <</switch>> <</widget>> <<widget "rightActionInitMachine">> <<set $righttarget to "machine">> <<switch $rightarm>> <<case 0>> <<if $orgasmdown gte 1>> <<set _rightOptions to "orgasm">> <span class="lewd">Your right arm is free, but you can't stop the spasms.</span> <<elseif $pain gte 100 and $willpowerpain is 0>> <<set _rightOptions to "pain">> <span class="red">Your right arm is free, but hurts to move.</span> <<elseif $dissociation gte 2>> <<set _rightOptions to "unreal">> <span class="pink">Your right arm is free, but doesn't feel real.</span> <<else>> <<if _targetYourself is true and _targetnumber gt 1>> <<set _targetlistarms["Yourself"] to "self">> <</if>> <<if not $options.combatControls.includes("adio") and _targetnumber gt 1>> <<targetListBox "right" _targetlistarms>> <</if>> <<set _rightOptions to "free">> <span @class="($lastOptions.right isnot _rightOptions ?'gold':'')">Your right arm is free.</span> <<if $options.combatControls.includes("adio") and _targetnumber gt 1>> <br> <<targetListBox "right" _targetlistarms>> <br> <</if>> <</if>> <<case "mechgrappled">> <<if $orgasmdown gte 1>> <<set _rightOptions to "bound">> <span class="lewd">Your right arm jerks against its bonds.</span> <<elseif $pain gte 100 and $willpowerpain is 0>> <<set _rightOptions to "bound">> <span class="red">Your right arm is held in a painful bind.</span> <<elseif $dissociation gte 2>> <<set _rightOptions to "bound">> <span class="pink">Your right arm lies limp in its bonds.</span> <<else>> <<set _rightOptions to "mech">> <span @class="($lastOptions.right isnot _rightOptions ?'gold':'')">Your right arm is held down.</span> <</if>> <<case "swarmgrappled">> <<set $_changetype to true>><<rightActionInitSwarm>> <<case "bound">> <<if $orgasmdown gte 1>> <<set _rightOptions to "bound">> <span class="lewd">Your right arm jerks against its bonds.</span> <<elseif $pain gte 100 and $willpowerpain is 0>> <<set _rightOptions to "bound">> <span class="red">Your right arm is held in a painful bind.</span> <<elseif $dissociation gte 2>> <<set _rightOptions to "bound">> <span class="pink">Your right arm lies limp in its bonds.</span> <<else>> <<set _rightOptions to "bound">> <span @class="($lastOptions.right isnot _rightOptions ?'gold':'')">Your right arm is bound and helpless.</span> <</if>><<if $options.combatControls.includes("adio")>><br><</if>> <<case "trapped">> <<set $_changetype to true>><<rightActionInitVore>> <<case "grappled" "penis" "othervagina" "vagina" "coverpenis" "anus" "behind">> <<set $_changetype to true>><<rightActionInit>> <<case "struggle">> <<set $_changetype to true>><<rightActionInitStruggle>> <<default>> <<set $_changetype to true>><<rightActionInitTentacle>> <</switch>> <<if $_changetype isnot true>> <<rightActionsMachine>> <<if Object.keys(_rightaction).length gt 0>> <<if !(Object.values(_rightaction).includes($rightactiondefault))>> <<set $rightactiondefault to "rest">> <</if>> <<set $rightaction to $rightactiondefault>> <div class="extraMargin"> <<generateCombatAction _rightaction "rightaction" "Machine">> </div> <<if $options.combatControls.includes("ists")>> <div id="rightactionDifficulty"> <<rightactionDifficulty>> </div> <</if>> <</if>> <<set $lastOptions.right to clone(_rightOptions)>> <</if>> <</widget>> <<widget "rightactionDifficultyMachine">>/* Don't think about it, just accept. */ <!-- Does nothing --> <</widget>> <<widget "rightActionsMachine">> <<set _rightaction to {}>> <<switch _rightOptions>> <<case "free">> <<if $machine.arm_chains>> <<if $machine.arm_chains.use isnot "inert" and $machine.arm_chains.use isnot "destroyed">> <<set _rightaction["Pull on the chains"] to "chain_struggle">> <</if>> <</if>> <<if $machine.tattoo>> <<if $machine.tattoo.use isnot "inert" and $machine.tattoo.use isnot "destroyed">> <<set _rightaction["Whack the tattoo gun"] to "whack">> <</if>> <</if>> <<if $machine.vaginal>> <<if $machine.vaginal.use isnot "inert" and $machine.vaginal.use isnot "destroyed">> <<set _rightaction["Whack the phallic machine"] to "vaginal_whack">> <<set _rightaction["Push the phallic machine away"] to "vaginal_push">> <</if>> <</if>> <<if $machine.anal>> <<if $machine.anal.use isnot "inert" and $machine.anal.use isnot "destroyed">> <<set _rightaction["Whack the small phallic machine"] to "anal_whack">> <<set _rightaction["Push the small phallic machine away"] to "anal_push">> <</if>> <</if>> <<set _rightaction["Rest"] to "rest">> <<case "mech">> <<if $machine.arm_chains>> <<if $machine.arm_chains.use isnot "inert" and $machine.arm_chains.use isnot "destroyed">> <<set _rightaction["Pull on the chains"] to "chain_struggle">> <</if>> <</if>> <<set _rightaction["Rest"] to "rest">> <<case "orgasm">> <<set _rightaction["Fold"] to "rightfold">> <<set _rightaction["Grip"] to "rightgrip">> <<case "pain">> <<set _rightaction["Struggle"] to "rightstruggleweak">> <<set _rightaction["Protect"] to "rightprotect">> <<case "unreal">> <<set _rightaction["Poke yourself"] to "rightpoke">> <<set _rightaction["Keep your arms out of the way"] to "rightcurl">> <</switch>> <</widget>> <<widget "feetActionInitMachine">> <<if $dissociation lte 1 and $orgasmdown lte 0 and ($pain lt 100 or $willpowerpain is undefined)>> <<set $feettarget to "machine">> <<switch $feetuse>> <<case 0>> <<if _targetYourself is true and _targetnumber gt 1>> <<set _targetlistall["Yourself"] to "self">> <</if>> <<if not $options.combatControls.includes("adio") and _targetnumber gt 1>> <<if ($leftleg is "grappled" and $rightleg is "grappled") or ($leftleg is "bound" and $rightleg is "bound")>> <<else>> <<targetListBox "feet" _targetlistall>> <</if>> <</if>> <<if $leftleg is 0 and $rightleg is 0>> <<set _feetOptions to "free">> <span @class="($lastOptions.feet isnot _feetOptions ?'gold':'')">Your legs are free.</span> <<elseif $leftleg is "grappled" or $rightleg is "grappled">> <<set $_changetype to true>><<feetActionInitTentacle>> <<elseif $leftleg is "bound" and $rightleg is "bound">> <<set $_changetype to true>><<feetActionInitTentacle>> <<else>> <<set _feetOptions to "free">> <span @class="($lastOptions.feet isnot _feetOptions or _feetGold is true ?'gold':'')">Your legs are free.</span> <</if>> <<if $options.combatControls.includes("adio") and _targetnumber gt 1 and _feetOptions.toLowerCase().includes("free")>> <br> <<targetListBox "feet" _targetlistall>> <</if>> <<if _targetnumber is 1>> <<set $feettarget to _firsttarget>> <</if>> <<case "mechgrappled">> <<set _feetOptions to "mech">> <span @class="($lastOptions.feet isnot _feetOptions or _feetGold is true ?'gold':'')">Your legs are chained.</span> <<case "bound" "penis" "othervagina" "walk" "run" "strut" "none">> <<set $_changetype to true>><<feetActionInit>> <<default>> <<set $_changetype to true>><<feetActionInitTentacle>> <</switch>> <<if $lastOptions.feet isnot _feetOptions>> <<set _feetGold to true>> <</if>> <<if $_changetype isnot true>> <<feetActionsMachine>> <<if Object.keys(_feetaction).length gt 0>> <<if !(Object.values(_feetaction).includes($feetactiondefault))>> <<set $feetactiondefault to "rest">> <</if>> <<set $feetaction to $feetactiondefault>> <div class="extraMargin"> <<generateCombatAction _feetaction "feetaction" "Machine">> </div> <<if $options.combatControls.includes("ists")>> <div id="feetactionDifficulty"> <<feetactionDifficulty>> </div> <</if>> <</if>> <<set $lastOptions.feet to clone(_feetOptions)>> <</if>> <<else>> <<timed 100ms>> <<run jQuery("#feetaction").remove();>> <</timed>> <</if>> <</widget>> <<widget "feetactionDifficultyMachine">> /* Sometimes in life, there's not much we can do. */ <!-- Does nothing --> <</widget>> <<widget "feetActionsMachine">> <<set _feetaction to {}>> <<switch _feetOptions>> <<case "free">> <<if $machine.leg_chains>> <<if $machine.leg_chains.use isnot "inert" and $machine.leg_chains.use isnot "destroyed">> <<set _feetaction["Pull on the chains"] to "chain_struggle">> <</if>> <</if>> <<if $machine.tattoo>> <<if $machine.tattoo.use isnot "inert" and $machine.tattoo.use isnot "destroyed">> <<set _feetaction["Kick the tattoo gun"] to "whack">> <</if>> <</if>> <<if $machine.vaginal>> <<if $machine.vaginal.use isnot "inert" and $machine.vaginal.use isnot "destroyed">> <<set _feetaction["Kick the phallic machine"] to "vaginal_whack">> <<set _feetaction["Push the phallic machine away"] to "vaginal_push">> <</if>> <</if>> <<if $machine.anal>> <<if $machine.anal.use isnot "inert" and $machine.anal.use isnot "destroyed">> <<set _feetaction["Kick the small phallic machine"] to "anal_whack">> <<set _feetaction["Push the small phallic machine away"] to "anal_push">> <</if>> <</if>> <<set _feetaction["Rest"] to "rest">> <<case "mech">> <<if $machine.leg_chains>> <<if $machine.leg_chains.use isnot "inert" and $machine.leg_chains.use isnot "destroyed">> <<set _feetaction["Pull against the chains"] to "chain_struggle">> <</if>> <</if>> <<set _feetaction["Rest"] to "rest">> <</switch>> <</widget>><<widget "machine_actions">> <<willpowerpain>> <<willpowerorgasm>> <<actioncarry>> <<actioncarrydrop>> <<combatstate>> <<carryblock>> <<if $trance lte 0 and $panicparalysis is 0 and $panicviolence is 0 and $options.combatControls isnot "disabled">> <<generateActionsMachine>> <</if>> <<if $trance lte 0 and $dissociation lte 1 and $panicparalysis is 0 and $panicviolence is 0 and $orgasmdown lte 0 and ($pain lt 100 or $willpowerpain is undefined) and $options.combatControls is "disabled">> <<if $leftarm is 0>> <br> Your left arm is free. <br> <<if $machine.arm_chains>> <<if $machine.arm_chains.use isnot "inert" and $machine.arm_chains.use isnot "destroyed">> <<if $leftactiondefault is "chain_struggle">> | <label><span class="def">Pull on the chains</span> <<radiobutton "$leftaction" "chain_struggle" checked>></label> <<else>> | <label><span class="def">Pull on the chains</span> <<radiobutton "$leftaction" "chain_struggle">></label> <</if>> <</if>> <</if>> <<if $machine.tattoo>> <<if $machine.tattoo.use isnot "inert" and $machine.tattoo.use isnot "destroyed">> <<if $leftactiondefault is "whack">> | <label><span class="def">Whack the tattoo gun</span> <<radiobutton "$leftaction" "whack" checked>></label> <<else>> | <label><span class="def">Whack the tattoo gun</span> <<radiobutton "$leftaction" "whack">></label> <</if>> <</if>> <</if>> <<if $machine.vaginal>> <<if $machine.vaginal.use isnot "inert" and $machine.vaginal.use isnot "destroyed">> <<if $leftactiondefault is "vaginal_whack">> | <label><span class="def">Whack the phallic machine</span> <<radiobutton "$leftaction" "vaginal_whack" checked>></label> <<else>> | <label><span class="def">Whack the phallic machine</span> <<radiobutton "$leftaction" "vaginal_whack">></label> <</if>> <<if $leftactiondefault is "vaginal_push">> | <label><span class="brat">Push the phallic machine away</span> <<radiobutton "$leftaction" "vaginal_push" checked>></label> <<else>> | <label><span class="brat">Push the phallic machine away</span> <<radiobutton "$leftaction" "vaginal_push">></label> <</if>> <</if>> <</if>> <<if $machine.anal>> <<if $machine.anal.use isnot "inert" and $machine.anal.use isnot "destroyed">> <<if $leftactiondefault is "anal_whack">> | <label><span class="def">Whack the small phallic machine</span> <<radiobutton "$leftaction" "anal_whack" checked>></label> <<else>> | <label><span class="def">Whack the small phallic machine</span> <<radiobutton "$leftaction" "anal_whack">></label> <</if>> <<if $leftactiondefault is "anal_push">> | <label><span class="brat">Push the phallic machine away</span> <<radiobutton "$leftaction" "anal_push" checked>></label> <<else>> | <label><span class="brat">Push the phallic machine away</span> <<radiobutton "$leftaction" "anal_push">></label> <</if>> <</if>> <</if>> <<if $leftactiondefault is "rest">> | <label>Rest <<radiobutton "$leftaction" "rest" checked>></label> <<else>> | <label>Rest <<radiobutton "$leftaction" "rest">></label> <</if>> <<elseif $leftarm is "mechgrappled">> <br> Your left arm is held down. <br> <<if $machine.arm_chains>> <<if $machine.arm_chains.use isnot "inert" and $machine.arm_chains.use isnot "destroyed">> <<if $leftactiondefault is "chain_struggle">> | <label><span class="def">Pull on the chains</span> <<radiobutton "$leftaction" "chain_struggle" checked>></label> <<else>> | <label><span class="def">Pull on the chains</span> <<radiobutton "$leftaction" "chain_struggle">></label> <</if>> <</if>> <</if>> <<if $leftactiondefault is "rest">> | <label>Rest <<radiobutton "$leftaction" "rest" checked>></label> <<else>> | <label>Rest <<radiobutton "$leftaction" "rest">></label> <</if>> <<elseif $leftarm is "bound">> <br> Your left arm is bound. <</if>> <<if $rightarm is 0>> <br> Your right arm is free. <br> <<if $machine.arm_chains>> <<if $machine.arm_chains.use isnot "inert" and $machine.arm_chains.use isnot "destroyed">> <<if $rightactiondefault is "chain_struggle">> | <label><span class="def">Pull on the chains</span> <<radiobutton "$rightaction" "chain_struggle" checked>></label> <<else>> | <label><span class="def">Pull on the chains</span> <<radiobutton "$rightaction" "chain_struggle">></label> <</if>> <</if>> <</if>> <<if $machine.tattoo>> <<if $machine.tattoo.use isnot "inert" and $machine.tattoo.use isnot "destroyed">> <<if $rightactiondefault is "whack">> | <label><span class="def">Whack the tattoo gun</span> <<radiobutton "$rightaction" "whack" checked>></label> <<else>> | <label><span class="def">Whack the tattoo gun</span> <<radiobutton "$rightaction" "whack">></label> <</if>> <</if>> <</if>> <<if $machine.vaginal>> <<if $machine.vaginal.use isnot "inert" and $machine.vaginal.use isnot "destroyed">> <<if $rightactiondefault is "vaginal_whack">> | <label><span class="def">Whack the phallic machine</span> <<radiobutton "$rightaction" "vaginal_whack" checked>></label> <<else>> | <label><span class="def">Whack the phallic machine</span> <<radiobutton "$rightaction" "vaginal_whack">></label> <</if>> <<if $rightactiondefault is "vaginal_push">> | <label><span class="brat">Push the phallic machine away</span> <<radiobutton "$rightaction" "vaginal_push" checked>></label> <<else>> | <label><span class="brat">Push the phallic machine away</span> <<radiobutton "$rightaction" "vaginal_push">></label> <</if>> <</if>> <</if>> <<if $machine.anal>> <<if $machine.anal.use isnot "inert" and $machine.anal.use isnot "destroyed">> <<if $rightactiondefault is "anal_whack">> | <label><span class="def">Whack the small phallic machine</span> <<radiobutton "$rightaction" "anal_whack" checked>></label> <<else>> | <label><span class="def">Whack the small phallic machine</span> <<radiobutton "$rightaction" "anal_whack">></label> <</if>> <<if $rightactiondefault is "anal_push">> | <label><span class="brat">Push the small phallic machine away</span> <<radiobutton "$rightaction" "anal_push" checked>></label> <<else>> | <label><span class="brat">Push the small phallic machine away</span> <<radiobutton "$rightaction" "anal_push">></label> <</if>> <</if>> <</if>> <<if $rightactiondefault is "rest">> | <label>Rest <<radiobutton "$rightaction" "rest" checked>></label> <<else>> | <label>Rest <<radiobutton "$rightaction" "rest">></label> <</if>> <<elseif $rightarm is "mechgrappled">> <br> Your right arm is chained. <br> <<if $machine.arm_chains>> <<if $machine.arm_chains.use isnot "inert" and $machine.arm_chains.use isnot "destroyed">> <<if $rightactiondefault is "chain_struggle">> | <label><span class="def">Pull on the chains</span> <<radiobutton "$rightaction" "chain_struggle" checked>></label> <<else>> | <label><span class="def">Pull on the chains</span> <<radiobutton "$rightaction" "chain_struggle">></label> <</if>> <</if>> <</if>> <<if $rightactiondefault is "rest">> | <label>Rest <<radiobutton "$rightaction" "rest" checked>></label> <<else>> | <label>Rest <<radiobutton "$rightaction" "rest">></label> <</if>> <<elseif $rightarm is "bound">> <br> Your right arm is bound. <</if>> <<if $feetuse is 0>> <br> Your legs are free. <br> <<if $machine.leg_chains>> <<if $machine.leg_chains.use isnot "inert" and $machine.leg_chains.use isnot "destroyed">> <<if $feetactiondefault is "chain_struggle">> | <label><span class="def">Pull on the chains</span> <<radiobutton "$feetaction" "chain_struggle" checked>></label> <<else>> | <label><span class="def">Pull on the chains</span> <<radiobutton "$feetaction" "chain_struggle">></label> <</if>> <</if>> <</if>> <<if $machine.tattoo>> <<if $machine.tattoo.use isnot "inert" and $machine.tattoo.use isnot "destroyed">> <<if $feetactiondefault is "whack">> | <label><span class="def">Kick the tattoo gun</span> <<radiobutton "$feetaction" "whack" checked>></label> <<else>> | <label><span class="def">Kick the tattoo gun</span> <<radiobutton "$feetaction" "whack">></label> <</if>> <</if>> <</if>> <<if $machine.vaginal>> <<if $machine.vaginal.use isnot "inert" and $machine.vaginal.use isnot "destroyed">> <<if $feetactiondefault is "vaginal_whack">> | <label><span class="def">Kick the phallic machine</span> <<radiobutton "$feetaction" "vaginal_whack" checked>></label> <<else>> | <label><span class="def">Kick the phallic machine</span> <<radiobutton "$feetaction" "vaginal_whack">></label> <</if>> <<if $feetactiondefault is "vaginal_push">> | <label><span class="brat">Push the phallic machine away</span> <<radiobutton "$feetaction" "vaginal_push" checked>></label> <<else>> | <label><span class="brat">Push the phallic machine away</span> <<radiobutton "$feetaction" "vaginal_push">></label> <</if>> <</if>> <</if>> <<if $machine.anal>> <<if $machine.anal.use isnot "inert" and $machine.anal.use isnot "destroyed">> <<if $feetactiondefault is "anal_whack">> | <label><span class="def">Kick the small phallic machine</span> <<radiobutton "$feetaction" "anal_whack" checked>></label> <<else>> | <label><span class="def">Kick the small phallic machine</span> <<radiobutton "$feetaction" "anal_whack">></label> <</if>> <<if $feetactiondefault is "anal_push">> | <label><span class="brat">Push the small phallic machine away</span> <<radiobutton "$feetaction" "anal_push" checked>></label> <<else>> | <label><span class="brat">Push the small phallic machine away</span> <<radiobutton "$feetaction" "anal_push">></label> <</if>> <</if>> <</if>> <<if $feetactiondefault is "rest">> | <label>Rest <<radiobutton "$feetaction" "rest" checked>></label> <<else>> | <label>Rest <<radiobutton "$feetaction" "rest">></label> <</if>> <<elseif $feetuse is "mechgrappled">> <br> Your legs are chained. <br> <<if $machine.leg_chains>> <<if $machine.leg_chains.use isnot "inert" and $machine.leg_chains.use isnot "destroyed">> <<if $feetactiondefault is "chain_struggle">> | <label><span class="def">Pull against the chains</span> <<radiobutton "$feetaction" "chain_struggle" checked>></label> <<else>> | <label><span class="def">Pull against the chains</span> <<radiobutton "$feetaction" "chain_struggle">></label> <</if>> <</if>> <</if>> <<if $feetactiondefault is "rest">> | <label>Rest <<radiobutton "$feetaction" "rest" checked>></label> <<else>> | <label>Rest <<radiobutton "$feetaction" "rest">></label> <</if>> <</if>> <</if>> <br><br> <<setupMidOrgasm>> <</widget>><<widget "machine_effects">> <<pain -0.25>> <<if $trance gte 1 or $dissociation gte 2>> <<if $position is "stalk">> You wander in a daze, unaware of your surroundings. <<else>> You stare straight ahead, your body passive and compliant. <</if>> <</if>> <<if $underwater is 1>> <<set $underwatertime += 1>> <<if $underwatertime lte 5>> You are underwater and cannot speak. <<elseif $underwatertime lte 10>> <span class="blue">You are underwater and cannot breathe.</span> <<gstress>><<stress 1>> <<elseif $underwatertime lte 15>> <span class="purple">You are underwater and cannot breathe.</span> <<gstress>><<stress 2>> <<elseif $underwatertime lte 20>> <span class="pink">You are underwater and cannot breathe.</span> <<gtrauma>><<gstress>><<stress 4>><<trauma 2>> <<else>> <span class="red">You are suffocating beneath the water.</span> <<pain 20 1>><<gtrauma>><<gstress>><<gpain>><<stress 6>><<trauma 4>> <br><br> <</if>> <</if>> <<effectspain>> <<effectsorgasm>> <<effectsdissociation>> <<if $leftaction is "rest">> <<set $leftactiondefault to "rest">><<set $leftaction to 0>> <</if>> <<if $rightaction is "rest">> <<set $rightactiondefault to "rest">><<set $rightaction to 0>> <</if>> <<if $leftaction is "chain_struggle" and $rightaction is "chain_struggle">> <<set $leftaction to 0>><<set $leftactiondefault to "chain_struggle">><<set $rightaction to 0>><<set $rightactiondefault to "chain_struggle">> <<defiance 5>><<set $machine.arm_chains.health -= 2>> You pull both arms against the chains. You feel something give, but they tighten in response. <br> <<elseif $leftaction is "chain_struggle">> <<set $leftaction to 0>><<set $leftactiondefault to "chain_struggle">> You pull against the chains with your left arm. You feel something give, but they tighten in response. <br> <<elseif $rightaction is "chain_struggle">> <<set $rightaction to 0>><<set $rightactiondefault to "chain_struggle">> You pull against the chains with your right arm. You feel something give, but they tighten in response. <br> <</if>> <<if $leftaction is "whack" and $rightaction is "whack">> <<set $leftactiondefault to "whack">><<set $leftaction to 0>><<set $rightactiondefault to "whack">><<set $rightaction to 0>> <<defiance 10>><<set $machine.tattoo.health -= 2>><<machine_violent_arms>> <<if $machine.tattoo.use isnot "ready">> You whack the tattoo gun with both hands, <span class="lblue">knocking it away from you.</span> <<set $machine.tattoo.use to "ready">> <<set $machine.tattoo.state to "ready">> <<else>> You whack the tattoo gun with both hands. <</if>> <<set $attackstat += 2>> <<if currentSkillValue('physique') gte random(1, $physiquemax)>> <span class="teal">You feel something snap behind the metal.</span><<set $machine.tattoo.health -= 2>> <</if>> <br> <<elseif $leftaction is "whack">> <<set $leftactiondefault to "whack">><<set $leftaction to 0>> <<defiance 5>><<set $machine.tattoo.health -= 1>><<machine_violent_arms>> <<if $machine.tattoo.use isnot "ready">> You whack the tattoo gun, <span class="lblue">knocking it away from you.</span> <<set $machine.tattoo.use to "ready">> <<set $machine.tattoo.state to "ready">> <<else>> You whack the tattoo gun. <</if>> <<set $attackstat += 1>> <<if currentSkillValue('physique') gte random(1, $physiquemax)>> <span class="teal">You feel something snap behind the metal.</span><<set $machine.tattoo.health -= 1>> <</if>> <br> <<elseif $rightaction is "whack">> <<set $rightactiondefault to "whack">><<set $rightaction to 0>> <<defiance 5>><<set $machine.tattoo.health -= 1>><<machine_violent_arms>> <<if $machine.tattoo.use isnot "ready">> You whack the tattoo gun, <span class="lblue">knocking it away from you.</span> <<set $machine.tattoo.use to "ready">> <<set $machine.tattoo.state to "ready">> <<else>> You whack the tattoo gun. <</if>> <<set $attackstat += 1>> <<if currentSkillValue('physique') gte random(1, $physiquemax)>> <span class="teal">You feel something snap behind the metal.</span><<set $machine.tattoo.health -= 1>> <</if>> <br> <</if>> <<if $leftaction is "vaginal_whack" and $rightaction is "vaginal_whack">> <<set $leftactiondefault to "vaginal_whack">><<set $leftaction to 0>><<set $rightactiondefault to "vaginal_whack">><<set $rightaction to 0>> <<defiance 10>><<set $machine.vaginal.health -= 2>><<machine_violent_arms>> <<if $machine.vaginal.use isnot "ready" and currentSkillValue('physique') gte random(1, 40000)>> You whack the phallic machine with both hands, <span class="lblue">knocking it away from you.</span> <<set $machine.vaginal.use to "ready">> <<set $machine.vaginal.state to "ready">> <<else>> You whack the phallic machine with both hands. <</if>> <<set $attackstat += 2>> <<if currentSkillValue('physique') gte random(1, $physiquemax)>> <span class="teal">You feel something snap behind the silicone.</span><<set $machine.vaginal.health -= 2>> <</if>> <br> <<elseif $leftaction is "vaginal_whack">> <<set $leftactiondefault to "vaginal_whack">><<set $leftaction to 0>> <<defiance 5>><<set $machine.vaginal.health -= 1>><<machine_violent_arms>> <<if $machine.vaginal.use isnot "ready" and currentSkillValue('physique') gte random(1, 50000)>> You whack the phallic machine, <span class="lblue">knocking it away from you.</span> <<set $machine.vaginal.use to "ready">> <<set $machine.vaginal.state to "ready">> <<else>> You whack the phallic machine. <</if>> <<set $attackstat += 1>> <<if currentSkillValue('physique') gte random(1, $physiquemax)>> <span class="teal">You feel something snap behind the silicone.</span><<set $machine.vaginal.health -= 1>> <</if>> <br> <<elseif $rightaction is "vaginal_whack">> <<set $rightactiondefault to "vaginal_whack">><<set $rightaction to 0>> <<defiance 5>><<set $machine.vaginal.health -= 1>><<machine_violent_arms>> <<if $machine.vaginal.use isnot "ready" and currentSkillValue('physique') gte random(1, 50000)>> You whack the phallic machine, <span class="lblue">knocking it away from you.</span> <<set $machine.vaginal.use to "ready">> <<set $machine.vaginal.state to "ready">> <<else>> You whack the phallic machine. <</if>> <<set $attackstat += 1>> <<if currentSkillValue('physique') gte random(1, $physiquemax)>> <span class="teal">You feel something snap behind the metal.</span><<set $machine.vaginal.health -= 1>> <</if>> <br> <</if>> <<if $leftaction is "vaginal_push" and $rightaction is "vaginal_push">> <<set $leftaction to 0>><<set $leftactiondefault to "vaginal_push">><<set $rightaction to 0>><<set $rightactiondefault to "vaginal_push">> <<brat 5>><<machine_violent_arms>> <<if random(1, 3) is 3>> <<set $machine.vaginal.health -= 1>> <</if>> <<if $machine.vaginal.state is "penetrated">> You try to push the phallic machine away with both hands, <span class="pink">but its hammering is too ferocious.</span> <<elseif $machine.vaginal.state is "imminent">> <<set $machine.vaginal.state to "ready">> <<set $machine.vaginal.use to "ready">> <<set $vaginastate to 0>><<set $vaginause to 0>> You push the phallic machine with both hands, <span class="teal">forcing it away from your <<pussy>>.</span> <<elseif $machine.vaginal.state is "entrance">> <<set $machine.vaginal.state to "ready">> <<set $machine.vaginal.use to "ready">> <<set $vaginastate to 0>><<set $vaginause to 0>> You push the phallic machine with both hands, <span class="lblue">forcing it away from your <<pussy>>.</span> <<else>> You push the phallic machine with both hands, trying to keep it away from your <<pussy>>. <</if>> <<elseif $leftaction is "vaginal_push">> <<set $leftaction to 0>><<set $leftactiondefault to "vaginal_push">> <<brat 5>><<machine_violent_arms>> <<if random(1, 6) is 6>> <<set $machine.vaginal.health -= 1>> <</if>> <<if $machine.vaginal.state is "penetrated">> You try to push the phallic machine away with your left hand, <span class="pink">but its hammering is too ferocious.</span> <<elseif $machine.vaginal.state is "imminent">> <<set $machine.vaginal.state to "entrance">> <<set $vaginastate to "entrance">> You push the phallic machine with your left hand, <span class="lblue">forcing it away from your <<pussy>>.</span> <<elseif $machine.vaginal.state is "entrance">> <<set $machine.vaginal.state to "ready">> <<set $machine.vaginal.use to "ready">> <<set $vaginause to 0>><<set $vaginastate to 0>> You push the phallic machine with your left hand, <span class="lblue">forcing it away from your <<pussy>>.</span> <<else>> You push the phallic machine with your left hand, trying to keep it away from your <<pussy>>. <</if>> <<elseif $rightaction is "vaginal_push">> <<set $rightaction to 0>><<set $rightactiondefault to "vaginal_push">> <<brat 5>><<machine_violent_arms>> <<if random(1, 6) is 6>> <<set $machine.vaginal.health -= 1>> <</if>> <<if $machine.vaginal.state is "penetrated">> You try to push the phallic machine away with your right hand, <span class="pink">but its hammering is too ferocious.</span> <<elseif $machine.vaginal.state is "imminent">> <<set $machine.vaginal.state to "entrance">> <<set $vaginastate to "entrance">> You push the phallic machine with your right hand, <span class="lblue">forcing it away from your <<pussy>>.</span> <<elseif $machine.vaginal.state is "entrance">> <<set $machine.vaginal.state to "ready">> <<set $machine.vaginal.use to "ready">> <<set $vaginause to 0>><<set $vaginastate to 0>> You push the phallic machine with your right hand, <span class="lblue">forcing it away from your <<pussy>>.</span> <<else>> You push the phallic machine with your right hand, trying to keep it away from your <<pussy>>. <</if>> <</if>> <<if $leftaction is "anal_whack" and $rightaction is "anal_whack">> <<set $leftactiondefault to "anal_whack">><<set $leftaction to 0>><<set $rightactiondefault to "anal_whack">><<set $rightaction to 0>> <<defiance 10>><<set $machine.anal.health -= 2>><<machine_violent_arms>> <<if $machine.anal.use isnot "ready" and currentSkillValue('physique') gte random(1, 40000)>> You whack the small phallic machine with both hands, <span class="lblue">knocking it away from you.</span> <<set $machine.anal.use to "ready">> <<set $machine.anal.state to "ready">> <<else>> You whack the small phallic machine with both hands. <</if>> <<set $attackstat += 2>> <<if currentSkillValue('physique') gte random(1, $physiquemax)>> <span class="teal">You feel something snap behind the silicone.</span><<set $machine.anal.health -= 2>> <</if>> <br> <<elseif $leftaction is "anal_whack">> <<set $leftactiondefault to "anal_whack">><<set $leftaction to 0>> <<defiance 5>><<set $machine.anal.health -= 1>><<machine_violent_arms>> <<if $machine.anal.use isnot "ready" and currentSkillValue('physique') gte random(1, 50000)>> You whack the small phallic machine, <span class="lblue">knocking it away from you.</span> <<set $machine.anal.use to "ready">> <<set $machine.anal.state to "ready">> <<else>> You whack the small phallic machine. <</if>> <<set $attackstat += 1>> <<if currentSkillValue('physique') gte random(1, $physiquemax)>> <span class="teal">You feel something snap behind the silicone.</span><<set $machine.anal.health -= 1>> <</if>> <br> <<elseif $rightaction is "anal_whack">> <<set $rightactiondefault to "anal_whack">><<set $rightaction to 0>> <<defiance 5>><<set $machine.anal.health -= 1>><<machine_violent_arms>> <<if $machine.anal.use isnot "ready" and currentSkillValue('physique') gte random(1, 50000)>> You whack the small phallic machine, <span class="lblue">knocking it away from you.</span> <<set $machine.anal.use to "ready">> <<set $machine.anal.state to "ready">> <<else>> You whack the small phallic machine. <</if>> <<set $attackstat += 1>> <<if currentSkillValue('physique') gte random(1, $physiquemax)>> <span class="teal">You feel something snap behind the metal.</span><<set $machine.anal.health -= 1>> <</if>> <br> <</if>> <<if $leftaction is "anal_push" and $rightaction is "anal_push">> <<set $leftaction to 0>><<set $leftactiondefault to "anal_push">><<set $rightaction to 0>><<set $rightactiondefault to "anal_push">> <<brat 5>><<machine_violent_arms>> <<if random(1, 3) is 3>> <<set $machine.anal.health -= 1>> <</if>> <<if $machine.anal.state is "penetrated">> You try to push the small phallic machine away with both hands, <span class="pink">but its hammering is too ferocious.</span> <<elseif $machine.anal.state is "imminent">> <<set $machine.anal.state to "ready">> <<set $machine.anal.use to "ready">> <<set $anusstate to 0>><<set $anususe to 0>> You push the small phallic machine with both hands, <span class="teal">forcing it away from your <<bottom>>.</span> <<elseif $machine.anal.state is "entrance">> <<set $machine.anal.state to "ready">> <<set $machine.anal.use to "ready">> <<set $anusstate to 0>><<set $anususe to 0>> You push the small phallic machine with both hands, <span class="lblue">forcing it away from your <<bottom>>.</span> <<else>> You push the small phallic machine with both hands, trying to keep it away from your <<bottom>>. <</if>> <<elseif $leftaction is "anal_push">> <<set $leftaction to 0>><<set $leftactiondefault to "anal_push">> <<brat 5>><<machine_violent_arms>> <<if random(1, 6) is 6>> <<set $machine.anal.health -= 1>> <</if>> <<if $machine.anal.state is "penetrated">> You try to push the small phallic machine away with your left hand, <span class="pink">but its hammering is too ferocious.</span> <<elseif $machine.anal.state is "imminent">> <<set $machine.anal.state to "entrance">> <<set $anusstate to "entrance">> You push the small phallic machine with your left hand, <span class="lblue">forcing it away from your <<bottom>>.</span> <<elseif $machine.anal.state is "entrance">> <<set $machine.anal.state to "ready">> <<set $machine.anal.use to "ready">> <<set $anususe to 0>><<set $anusstate to 0>> You push the small phallic machine with your left hand, <span class="lblue">forcing it away from your <<bottom>>.</span> <<else>> You push the small phallic machine with your left hand, trying to keep it away from your <<bottom>>. <</if>> <<elseif $rightaction is "anal_push">> <<set $rightaction to 0>><<set $rightactiondefault to "anal_push">> <<brat 5>><<machine_violent_arms>> <<if random(1, 6) is 6>> <<set $machine.anal.health -= 1>> <</if>> <<if $machine.anal.state is "penetrated">> You try to push the small phallic machine away with your right hand, <span class="pink">but its hammering is too ferocious.</span> <<elseif $machine.anal.state is "imminent">> <<set $machine.anal.state to "entrance">> <<set $anusstate to "entrance">> You push the small phallic machine with your right hand, <span class="lblue">forcing it away from your <<bottom>>.</span> <<elseif $machine.anal.state is "entrance">> <<set $machine.anal.state to "ready">> <<set $machine.anal.use to "ready">> <<set $anususe to 0>><<set $anusstate to 0>> You push the small phallic machine with your right hand, <span class="lblue">forcing it away from your <<bottom>>.</span> <<else>> You push the small phallic machine with your right hand, trying to keep it away from your <<bottom>>. <</if>> <</if>> <<if $feetaction is "rest">> <<set $feetaction to "rest">><<set $feetactiondefault to "rest">> <</if>> <<if $feetaction is "chain_struggle">> <<set $feetaction to 0>><<set $feetactiondefault to "chain_struggle">> <<defiance 5>><<set $machine.leg_chains.health -= 1>> You pull against the chains holding your legs. You feel something give, but they tighten in response. <br> <</if>> <<if $feetaction is "whack">> <<set $feetactiondefault to "whack">><<set $feetaction to 0>> <<defiance 5>><<set $machine.tattoo.health -= 1>><<machine_violent_legs>> <<if $machine.tattoo.use isnot "ready">> You kick the tattoo gun, <span class="lblue">knocking it away from you.</span> <<set $machine.tattoo.use to "ready">> <<set $machine.tattoo.state to "ready">> <<else>> You kick the tattoo gun. <</if>> <<set $attackstat += 1>> <<if currentSkillValue('physique') gte random(1, $physiquemax)>> <span class="teal">You feel something snap behind the metal.</span><<set $machine.tattoo.health -= 1>> <</if>> <br> <</if>> <<if $feetaction is "vaginal_whack">> <<set $feetactiondefault to "vaginal_whack">><<set $feetaction to 0>> <<defiance 5>><<set $machine.vaginal.health -= 1>><<machine_violent_legs>> <<if random(1, 6) is 6>> <<set $machine.vaginal.health -= 1>> <</if>> <<if $machine.vaginal.use isnot "ready" and currentSkillValue('physique') gte random(1, 50000)>> You kick the phallic machine, <span class="lblue">knocking it away from you.</span> <<set $machine.vaginal.use to "ready">> <<set $machine.vaginal.state to "ready">> <<else>> You kick the phallic machine. <</if>> <<set $attackstat += 1>> <<if currentSkillValue('physique') gte random(1, $physiquemax)>> <span class="teal">You feel something snap behind the silicone.</span><<set $machine.vaginal.health -= 1>> <</if>> <br> <</if>> <<if $feetaction is "vaginal_push">> <<set $feetaction to 0>><<set $feetactiondefault to "vaginal_push">> <<brat 5>><<machine_violent_legs>> <<if $machine.vaginal.state is "penetrated">> You try to push the phallic machine away with your feet, <span class="pink">but it doesn't relent.</span> <<elseif $machine.vaginal.state is "imminent">> <<set $machine.vaginal.state to "entrance">> <<set $vaginastate to "entrance">> You push the phallic machine with your feet, <span class="lblue">forcing it away from your <<pussy>>.</span> <<elseif $machine.vaginal.state is "entrance">> <<set $machine.vaginal.state to "ready">> <<set $machine.vaginal.use to "ready">> <<set $vaginause to 0>><<set $vaginastate to 0>> You push the phallic machine with your feet, <span class="lblue">forcing it away from your <<pussy>>.</span> <<else>> You push the phallic machine with your feet, trying to keep it away from your <<pussy>>. <</if>> <br> <</if>> <<if $feetaction is "anal_whack">> <<set $feetactiondefault to "anal_whack">><<set $feetaction to 0>> <<defiance 5>><<set $machine.anal.health -= 1>><<machine_violent_legs>> <<if random(1, 6) is 6>> <<set $machine.anal.health -= 1>> <</if>> <<if $machine.anal.use isnot "ready" and currentSkillValue('physique') gte random(1, 50000)>> You kick the small phallic machine, <span class="lblue">knocking it away from you.</span> <<set $machine.anal.use to "ready">> <<set $machine.anal.state to "ready">> <<else>> You kick the small phallic machine. <</if>> <<set $attackstat += 1>> <<if currentSkillValue('physique') gte random(1, $physiquemax)>> <span class="teal">You feel something snap behind the silicone.</span><<set $machine.anal.health -= 1>> <</if>> <br> <</if>> <<if $feetaction is "anal_push">> <<set $feetaction to 0>><<set $feetactiondefault to "anal_push">> <<brat 5>><<machine_violent_legs>> <<if $machine.anal.state is "penetrated">> You try to push the small phallic machine away with your feet, <span class="pink">but it continues to hammer your <<bottom>>.</span> <<elseif $machine.anal.state is "imminent">> <<set $machine.anal.state to "entrance">> <<set $anusstate to "entrance">> You push the small phallic machine with your feet, <span class="lblue">forcing it away from your <<bottom>>.</span> <<elseif $machine.anal.state is "entrance">> <<set $machine.anal.state to "ready">> <<set $machine.anal.use to "ready">> <<set $anususe to 0>><<set $anusstate to 0>> You push the small phallic machine with your feet, <span class="lblue">forcing it away from your <<bottom>>.</span> <<else>> You push the small phallic machine with your feet, trying to keep it away from your <<bottom>>. <</if>> <br> <</if>> <<if $machine.tattoo>> <<if $machine.tattoo.health lte 0 and $machine.tattoo.use isnot "destroyed">> <<set $machine.number -= 1>> <<set $machine_stat += 1>> <<set $machine.tattoo.use to "destroyed">> <<set $machine.tattoo.state to "destroyed">> Sparks fly, and the tattoo gun <span class="green">shudders to a halt.</span> <br> <</if>> <</if>> <<if $machine.vaginal>> <<if $machine.vaginal.health lte 0 and $machine.vaginal.use isnot "destroyed">> <<set $machine.number -= 1>> <<set $machine_stat += 1>> <<set $machine.vaginal.use to "destroyed">> <<set $machine.vaginal.state to "destroyed">> Sparks fly, and the phallic machine <span class="green">shudders to a halt.</span> <br> <<machine_vaginal_disable>> <</if>> <</if>> <<if $machine.anal>> <<if $machine.anal.health lte 0 and $machine.anal.use isnot "destroyed">> <<set $machine.number -= 1>> <<set $machine_stat += 1>> <<set $machine.anal.use to "destroyed">> <<set $machine.anal.state to "destroyed">> Sparks fly, and the small phallic machine <span class="green">shudders to a halt.</span> <br> <<machine_anal_disable>> <</if>> <</if>> <<if $machine.arm_chains>> <<if $machine.arm_chains.health lte 0 and $machine.arm_chains.use isnot "destroyed">> <<set $machine_stat += 1>> <<set $machine.arm_chains.use to "destroyed">> <<set $machine.arm_chains.state to "destroyed">> Sparks fly from the rails above, <span class="green">and the chains holding your arms slacken.</span> <br> <<machine_arm_chains_disable>> <</if>> <</if>> <<if $machine.leg_chains>> <<if $machine.leg_chains.health lte 0 and $machine.leg_chains.use isnot "destroyed">> <<set $machine_stat += 1>> <<set $machine.leg_chains.use to "destroyed">> <<set $machine.leg_chains.state to "destroyed">> Sparks fly from the rails above, <span class="green">and the chains holding your legs slacken.</span> <br> <<machine_leg_chains_disable>> <</if>> <</if>> <</widget>> <<widget "machine_violent_arms">> <<set _machine_arms to 1>> <</widget>> <<widget "machine_violent_legs">> <<set _machine_legs to 1>> <</widget>><<widget "machine_init">> <<combatinit>> <<set $enemytype to "machine">> <<set $machine to {}>> <<set $machine.number to 0>> <<set $machine.speed to 2>> <<for _i = 0; _i < _args.length; _i++>> <<set $machine[_args[_i]] to {}>> <<set $machine[_args[_i]].health to $machine_health>> <<set $machine[_args[_i]].ammo to $machine_ammo>> <<set $machine[_args[_i]].hack to 0>> <<set $machine[_args[_i]].state to "ready">> <<set $machine[_args[_i]].use to "ready">> <<if _args[_i] isnot "arm_chains" and _args[_i] isnot "leg_chains">> <<set $machine.number += 1>> <</if>> <</for>> <<set $leftactiondefault to "rest">> <<set $rightactiondefault to "rest">> <<set $feetactiondefault to "rest">> <</widget>> <<widget "machine_damage">> <<if $machine[_args[0]].health gte $machine_health>> <span class="red">sturdy</span> <<elseif $machine[_args[0]].health gte ($machine_health * 0.8)>> <span class="pink">dented</span> <<elseif $machine[_args[0]].health gte ($machine_health * 0.6)>> <span class="purple">dented</span> <<elseif $machine[_args[0]].health gte ($machine_health * 0.4)>> <span class="blue">fractured</span> <<elseif $machine[_args[0]].health gte ($machine_health * 0.2)>> <span class="lblue">cracked</span> <<elseif $machine[_args[0]].health gte ($machine_health * 0.1)>> <span class="teal">cracked</span> <<else>> <span class="green">ruined</span> <</if>> <</widget>> <<widget "machine_end">> <<unset $machine>> <<unset $machine_health>> <<unset $machine_ammo>> <<endcombat>> <</widget>> <<widget "machine_combat">> <<if $machine.tattoo>> <<switch $machine.tattoo.state>> <<case "ready">> <<if $position is "doggy">> <<set _machine_selection to random(1, 5)>> <<if _machine_selection is 1 and $machine.tattoo.back isnot 1>> <<set _machine_choice to "back">> <<elseif _machine_selection is 2 and $machine.tattoo.left_shoulder isnot 1>> <<set _machine_choice to "left_shoulder">> <<elseif _machine_selection is 3 and $machine.tattoo.left_cheek isnot 1>> <<set _machine_choice to "left_cheek">> <<elseif _machine_selection is 4 and $machine.tattoo.left_bottom isnot 1>> <<set _machine_choice to "left_bottom">> <<elseif $machine.tattoo.hack gte 3>> <<set $machine.tattoo.use to "inert">> <<set $machine.tattoo.state to "inert">> <<set $machine.number -= 1>> <<set $machine_stat += 1>> The tattoo gun darts around your body, <span class="green">before falling inert.</span> <<else>> <<set _machine_choice to "hover">> <<set $machine.tattoo.hack += 1>> The tattoo gun points to each of your body parts in turn, as if making a decision. <</if>> <<else>> <<set _machine_selection to random(1, 8)>> <<if _machine_selection is 1 and $machine.tattoo.breasts isnot 1>> <<set _machine_choice to "breasts">> <<elseif _machine_selection is 2 and $machine.tattoo.forehead isnot 1>> <<set _machine_choice to "forehead">> <<elseif _machine_selection is 3 and $machine.tattoo.left_thigh isnot 1>> <<set _machine_choice to "left_thigh">> <<elseif _machine_selection is 4 and $machine.tattoo.pubic isnot 1>> <<set _machine_choice to "pubic">> <<elseif _machine_selection is 5 and $machine.tattoo.right_bottom isnot 1>> <<set _machine_choice to "right_bottom">> <<elseif _machine_selection is 6 and $machine.tattoo.right_cheek isnot 1>> <<set _machine_choice to "right_cheek">> <<elseif _machine_selection is 7 and $machine.tattoo.right_shoulder isnot 1>> <<set _machine_choice to "right_shoulder">> <<elseif _machine_selection is 8 and $machine.tattoo.right_thigh isnot 1>> <<set _machine_choice to "right_thigh">> <<else>> <<set _machine_choice to "hover">> <<set $machine.tattoo.hack += 1>> The <<machine_damage tattoo>> tattoo gun points to each of your body parts in turn, as if making a decision. <</if>> <</if>> <<if _machine_choice isnot "hover" and $machine.tattoo.use isnot "destroyed" and $machine.tattoo.use isnot "inert">> Accompanied by a whirring sound, <span class="purple">the <<machine_damage tattoo>> tattoo gun hovers over your <<bodypart _machine_choice>>.</span> <<set $machine.tattoo.use to _machine_choice>> <<set $machine.tattoo.state to "entrance">> <</if>> <<case "destroyed">> The tattoo gun twitches, <span class="green">but remains disabled.</span> <<case "inert">> The tattoo gun <span class="green">remains motionless.</span> <<case "entrance">> <<if !$skin[$machine.tattoo.use].pen>> The <<machine_damage tattoo>> tattoo gun presses against your <<bodypart $machine.tattoo.use>>. <span class="pink">The whirring intensifies as it prepares to write.</span><<gstress>><<stress 6>> <<set $machine.tattoo.state to "imminent">> <<elseif $machine.tattoo.armed is 1>> The <<machine_damage tattoo>> tattoo gun beeps as a red light scans your skin. <span class="purple">A canister opens on its underside.</span> <<set $machine.tattoo.state to "foam">> <<else>> The <<machine_damage tattoo>> tattoo gun presses against your <<bodypart $machine.tattoo.use>>, <span class="lblue">but then withdraws.</span> A red light runs over your skin, and the gun moves away. <<set $machine.tattoo[$machine.tattoo.use] to 1>> <<set $machine.tattoo.use to "ready">> <<set $machine.tattoo.state to "ready">> <<set $machine.tattoo.hack += 1>> <</if>> <<case "imminent">> <span class="red">The <<machine_damage tattoo>> tattoo gun writes on your <<bodypart $machine.tattoo.use>>: <<bodywriting_machine $machine.tattoo.use>></span><<ggpain>><<ggtrauma>><<ggstress>><<trauma 18>><<stress 18>><<pain 8>> <br><br> <<set $machine.tattoo[$machine.tattoo.use] to 1>> <<set $machine.tattoo.ammo -= 1>> <<set $machine_tattoo_success to true>>/*Just controls NPC response following encounter in underground dungeon.*/ <<if $machine.tattoo.ammo gte 1>> The <<machine_damage tattoo>> tattoo gun pulls away, but remains primed. <<set $machine.tattoo.use to "ready">> <<set $machine.tattoo.state to "ready">> <<else>> The <<machine_damage tattoo>> tattoo gun pulls away, <span class="green">and falls inert.</span> <<set $machine.tattoo.use to "inert">> <<set $machine.tattoo.state to "inert">> <<set $machine.number -= 1>> <<set $machine_stat += 1>> <</if>> <<case "foam">> <span class="pink">The <<machine_damage tattoo>> tattoo gun sprays a pink foam over your <<bodypart $machine.tattoo.use>>.</span> <<if $skin[$machine.tattoo.use] and $skin[$machine.tattoo.use].pen and ["brand", "magic"].includes($skin[$machine.tattoo.use].pen)>> <span class="blue">Nothing happens to your <<tattoo $machine.tattoo.use>> as the foam clears.</span> The <<machine_damage tattoo>> tattoo gun pulls away. <<set $machine.tattoo.use to "ready">> <<set $machine.tattoo.state to "ready">> <<set $machine.tattoo.ammo -= 1>> <<else>> <<bodywriting_clear $machine.tattoo.use>> <br><br> The <<machine_damage tattoo>> tattoo gun presses against your <<bodypart $machine.tattoo.use>>. <span class="pink">The whirring intensifies as it prepares to write.</span> <<set $machine.tattoo.state to "imminent">> <</if>> <</switch>> <br> <</if>> <<if $machine.vaginal>> <<if $machine.vaginal.ammo lte 0 and $machine.vaginal.state isnot "inert" and $machine.vaginal.state isnot "destroyed">> <<if $machine.vaginal.state is "penetrated">> The <<machine_damage vaginal>> phallic machine withdraws from your <<pussy>> with a plop, <span class="green">and shudders to a halt.</span> <<elseif $machine.vaginal.state is "imminent" or $machine.vaginal.state is "entrance">> The <<machine_damage vaginal>> phallic machine stops menacing you <<pussy>>, <span class="green">and shudders to a halt</span>. <<else>> <span class="green">The <<machine_damage vaginal>> phallic machine shudders to a halt.</span> <</if>> <<set $machine.vaginal.use to "inert">> <<set $machine.vaginal.state to "inert">> <<set $machine.number -= 1>> <<machine_vaginal_disable>> <<else>> <<switch $machine.vaginal.state>> <<case "ready">> The <<machine_damage vaginal>> phallic machine <span class="purple">prods your <<pussy>>.</span> <<neutral 5 "genitals">> <<set $vaginause to "machine">><<set $vaginastate to "entrance">><<set $machine.vaginal.use to "vagina">><<set $machine.vaginal.state to "entrance">> <<case "entrance">> <<if $worn.over_lower.exposed lte 1>> <<if $machine.vaginal.armed is 1>> A canister atop the <<machine_damage vaginal>> phallic machine opens and sprays a pink foam over your $worn.over_lower.name, <span class="purple">dissolving it.</span> <<set $worn.over_lower.integrity -= 100>> <<else>> The <<machine_damage vaginal>> phallic machine tries to push through your $worn.over_lower.name, tearing the fabric. <<set $worn.over_lower.integrity -= 20>> <</if>> <<elseif $worn.lower.exposed lte 1>> <<if $machine.vaginal.armed is 1>> A canister atop the <<machine_damage vaginal>> phallic machine opens and sprays a pink foam over your $worn.lower.name, <span class="purple">dissolving it.</span> <<set $worn.lower.integrity -= 100>> <<else>> The <<machine_damage vaginal>> phallic machine tries to push through your $worn.lower.name, tearing the fabric. <<set $worn.lower.integrity -= 20>> <</if>> <<elseif $worn.under_lower.exposed lte 0>> <<if $machine.vaginal.armed is 1>> A canister atop the <<machine_damage vaginal>> phallic machine opens and sprays a pink foam over your $worn.under_lower.name, <span class="purple">dissolving the fabric.</span> <<set $worn.under_lower.integrity -= 100>> <<else>> The <<machine_damage vaginal>> phallic machine tries to push through your $worn.under_lower.name, tearing the fabric. <<set $worn.under_lower.integrity -= 20>> <</if>> <<elseif playerChastity("vagina")>> <<if $machine.vaginal.armed is 1>> A canister atop the <<machine_damage vaginal>> phallic machine opens and sprays a pink foam over your $worn.genitals.name, <span class="purple">dissolving the <<= setup.clothes.genitals[clothesIndex('genitals',$worn.genitals)].altDamage || "material">>.</span> <<set $worn.genitals.integrity -= 100>> <<else>> The <<machine_damage vaginal>> phallic machine tries to push through your $worn.genitals.name, tearing the fabric. <<set $worn.genitals.integrity -= 20>> <</if>> <<else>> The <<machine_damage vaginal>> phallic machine pushes against your <<pussy>>, <span class="pink">about to penetrate.</span> <<sex 5 "genitals">> <<set $vaginastate to "imminent">><<set $machine.vaginal.state to "imminent">> <</if>> <<case "imminent">> <<if $player.virginity.vaginal isnot true>> <<sex 30 "genitals">> <<violence 1>> <<set $vaginastate to "penetrated">><<set $machine.vaginal.state to "penetrated">><<vaginalstat>><<bruise vagina>><<violence 1>><<raped>><<vaginaraped>> <span class="pink">The <<machine_damage vaginal>> phallic machine thrusts into your <<pussy>>.</span> <<else>> <<sex 100 "genitals">> <<bruise vagina>><<vaginalstat>><<raped>><<vaginaraped>> <<set $vaginastate to "penetrated">><<set $machine.vaginal.state to "penetrated">> <span class="red">The <<machine_damage vaginal>> phallic machine thrusts into your virgin pussy, <<if $sexStats.vagina.pregnancy.totalBirthEvents gt 0>> despite your lack of a hymen, you feel something inside you change as your virginity and purity are taken.<<violence 10>> <<else>> breaking your hymen and forever robbing you of your purity.<<violence 25>> <</if>> </span> <</if>> <<takeVirginity "sex machine" "vaginal">> <<case "penetrated">> <<if $machine.speed is 3>> <<switch random(1,5)>> <<case 1>> The <<machine_damage vaginal>> phallic machine fucks your <<pussy>> with irregular thrusts, catching you off guard. <<case 2>> The <<machine_damage vaginal>> phallic machine seems to inflate inside your <<pussy>>, stretching you out. <<case 3>> The <<machine_damage vaginal>> phallic machine fucks your <<pussy>> hard enough to send you lurching forward with each thrust. <<case 4>> The <<machine_damage vaginal>> phallic machine hammers deep into your <<pussy>>. <<case 5>> The <<machine_damage vaginal>> phallic machine pauses a moment, then <span class="purple">assaults your <<pussy>> with a blur of thrusts.</span> <<violence 10>><<gpain>> <</switch>> <<sex 20 "genitals">><<violence 10>> <<elseif $machine.speed is 2>> <<switch random(1,5)>> <<case 1>> The <<machine_damage vaginal>> phallic machine fucks your <<pussy>> with a mechanical rhythm. <<case 2>> The <<machine_damage vaginal>> phallic machine shifts between each thrust into your <<pussy>>. <<case 3>> The <<machine_damage vaginal>> phallic machine pounds your <<pussy>> with a mechanical rhythm. <<case 4>> The <<machine_damage vaginal>> phallic machine hammers your <<pussy>> faster than anything alive. <<case 5>> The <<machine_damage vaginal>> phallic machine pauses a moment, then <span class="purple">assaults your <<pussy>> with a blur of thrusts.</span> <<sex 30 "genitals">><<garousal>> <</switch>> <<sex 20 "genitals">> <<else>> <<switch random(1,5)>> <<case 1>> The <<machine_damage vaginal>> phallic machine fucks your <<pussy>> with a gentle rhythm. <<case 2>> The <<machine_damage vaginal>> phallic machine rubs against your <<pussy>>. <<case 3>> The <<machine_damage vaginal>> phallic machine slowly thrusts into your <<pussy>>. <<case 4>> The <<machine_damage vaginal>> phallic machine stops inside your <<pussy>> for a moment, before continuing. <<case 5>> The <<machine_damage vaginal>> phallic machine vibrates against the entrance to your <<pussy>> <</switch>> <</if>> <<sex 10 "genitals">><<bruise vagina>><<violence 1>> <<set $machine.vaginal.ammo -= 1>> <<case "destroyed">> The <<machine_damage vaginal>> phallic machine twitches, <span class="green">but remains immobile.</span> <<case "inert">> The <<machine_damage vaginal>> phallic machine <span class="green">remains inert.</span> <</switch>> <</if>> <br> <</if>> <<if $machine.anal>> <<if $machine.anal.ammo lte 0 and $machine.anal.state isnot "inert" and $machine.anal.state isnot "destroyed">> <<if $machine.anal.state is "penetrated">> The <<machine_damage anal>> small phallic machine withdraws from your <<bottom>> with a plop, <span class="green">and shudders to a halt.</span> <<elseif $machine.anal.state is "imminent" or $machine.anal.state is "entrance">> The <<machine_damage anal>> small phallic machine stops menacing you <<bottom>>, <span class="green">and shudders to a halt</span>. <<else>> <span class="green">The <<machine_damage anal>> small phallic machine shudders to a halt.</span> <</if>> <<set $machine.anal.use to "inert">> <<set $machine.anal.state to "inert">> <<set $machine.number -= 1>> <<machine_anal_disable>> <<else>> <<switch $machine.anal.state>> <<case "ready">> The <<machine_damage anal>> small phallic machine <span class="purple">prods your <<bottom>>.</span> <<neutral 5 "anus">> <<set $anususe to "machine">><<set $anusstate to "entrance">><<set $machine.anal.use to "anus">><<set $machine.anal.state to "entrance">> <<case "entrance">> <<if $worn.over_lower.exposed lte 1>> <<if $machine.anal.armed is 1>> A canister atop the <<machine_damage anal>> small phallic machine opens and sprays a pink foam over your $worn.over_lower.name, <span class="purple">dissolving it.</span> <<set $worn.over_lower.integrity -= 100>> <<else>> The <<machine_damage anal>> small phallic machine tries to push through your $worn.over_lower.name, tearing the fabric. <<set $worn.over_lower.integrity -= 20>> <</if>> <<elseif $worn.lower.exposed lte 1>> <<if $machine.anal.armed is 1>> A canister atop the <<machine_damage anal>> small phallic machine opens and sprays a pink foam over your $worn.lower.name, <span class="purple">dissolving it.</span> <<set $worn.lower.integrity -= 100>> <<else>> The <<machine_damage anal>> small phallic machine tries to push through your $worn.lower.name, tearing the fabric. <<set $worn.lower.integrity -= 20>> <</if>> <<elseif $worn.under_lower.exposed lte 0>> <<if $machine.anal.armed is 1>> A canister atop the <<machine_damage anal>> small phallic machine opens and sprays a pink foam over your $worn.under_lower.name, <span class="purple">dissolving the fabric.</span> <<set $worn.under_lower.integrity -= 100>> <<else>> The <<machine_damage anal>> small phallic machine tries to push through your $worn.under_lower.name, tearing the fabric.<<set $worn.under_lower.integrity -= 20>> <</if>> <<elseif playerChastity("anus")>> <<if $machine.anal.armed is 1>> A canister atop the <<machine_damage anal>> small phallic machine opens and sprays a pink foam over your $worn.genitals.name, <span class="purple">dissolving the <<= setup.clothes.genitals[clothesIndex('genitals',$worn.genitals)].altDamage || "material">>.</span> <<set $worn.genitals.integrity -= 100>> <<else>> The <<machine_damage anal>> small phallic machine tries to push through your $worn.genitals.name, tearing the fabric. <<set $worn.genitals.integrity -= 20>> <</if>> <<else>> The <<machine_damage anal>> small phallic machine pushes against your <<bottom>>, <span class="pink">about to penetrate.</span> <<sex 5 "anus">> <<set $anusstate to "imminent">><<set $machine.anal.state to "imminent">> <</if>> <<case "imminent">> <<if $player.virginity.anal isnot true>> <<sex 30 "anus">> <<violence 1>> <<set $anusstate to "penetrated">><<set $machine.anal.state to "penetrated">><<analstat>><<bruise anus>><<violence 1>><<raped>><<anusraped>> <span class="pink">The <<machine_damage anal>> small phallic machine thrusts into your <<bottom>>.</span> <<else>> <<sex 100 "anus">> <<violence 25>> <<takeVirginity "sex machine" "anal">><<bruise anus>><<analstat>><<raped>><<anusraped>> <<set $anusstate to "penetrated">><<set $machine.anal.state to "penetrated">> <span class="red">The <<machine_damage anal>> small phallic machine thrusts into your virgin ass, violating you in a way you hadn't conceived of.</span> <</if>> <<case "penetrated">> <<if $machine.speed is 3>> <<switch random(1,5)>> <<case 1>> The <<machine_damage anal>> small phallic machine fucks your <<bottom>> with vicious speed. <<case 2>> The <<machine_damage anal>> small phallic machine slams into your <<bottom>>, hitting painfully deep each time. <<case 3>> The <<machine_damage anal>> small phallic machine is a blur as it thrusts into your <<bottom>> faster than anything living. <<case 4>> The <<machine_damage anal>> small phallic machine fucks your <<bottom>> fast enough to push you forward. <<case 5>> The <<machine_damage anal>> small phallic machine hilts itself inside your <<bottom>> and <span class="purple">begins to spin</span>, painfully drilling against the inside of your ass. <<violence 10>><<gpain>> <</switch>> <<sex 20 "anus">><<violence 10>> <<elseif $machine.speed is 2>> <<switch random(1,5)>> <<case 1>> The <<machine_damage anal>> small phallic machine fucks your <<bottom>> with a mechanical rhythm. <<case 2>> The <<machine_damage anal>> small phallic machine pounds your <<bottom>> with a mechanical rhythm. <<case 3>> The <<machine_damage anal>> small phallic machine is a blur as it fucks your <<bottom>> faster than anything living. <<case 4>> The <<machine_damage anal>> small phallic machine fucks your <<bottom>>, shifting between each thrust. <<case 5>> The <<machine_damage anal>> small phallic machine vibrates against your <<prostate>> at the end of each thrust into your <<bottom>>, <span class="purple">sending a tingling jolt through you.</span> <<sex 30 "anus">><<garousal>> <</switch>> <<sex 20 "anus">> <<else>> <<switch random(1,5)>> <<case 1>> The <<machine_damage anal>> small phallic machine fucks your <<bottom>> with a gentle rhythm. <<case 2>> The <<machine_damage anal>> small phallic machine pauses for a moment. <<case 3>> The <<machine_damage anal>> small phallic machine slowly thrusts in and out of your <<bottom>>. <<case 4>> The <<machine_damage anal>> small phallic machine fucks your <<bottom>> with a soft touch. <<case 5>> The <<machine_damage anal>> small phallic machine halts inside your <<bottom>> and begins to gently vibrate. <</switch>> <</if>> <<sex 10 "anus">><<bruise anus>><<violence 1>> <<set $machine.anal.ammo -= 1>> <<case "destroyed">> The <<machine_damage anal>> small phallic machine twitches, <span class="green">but remains immobile.</span> <<case "inert">> The <<machine_damage anal>> small phallic machine <span class="green">remains inert.</span> <</switch>> <</if>> <br> <</if>> <<if $machine.arm_chains>> <<if $machine.arm_chains.state is "ready">> <<if _machine_arms is 1>> The <<machine_damage arm_chains>> chains attached to your shackles retract, <span class="pink">lifting your arms into the air and immobilising them.</span> <<set $leftactiondefault to "chain_struggle">><<set $rightactiondefault to "chain_struggle">> <<set $machine.arm_chains.use to "grapple">> <<set $machine.arm_chains.state to "grapple">> <<if $leftarm isnot "bound">> <<set $leftarm to "mechgrappled">><<set $lefttarget to "machine">> <</if>> <<if $rightarm isnot "bound">> <<set $rightarm to "mechgrappled">><<set $righttarget to "machine">> <</if>> <<else>> The <<machine_damage arm_chains>> chains holding your arms resist your movements, <span class="lblue">but remain loose.</span> <</if>> <<elseif $machine.arm_chains.state is "recovering">> The <<machine_damage arm_chains>> chains holding your arms twitch, <span class="teal">but remain loose.</span> <<elseif $machine.arm_chains.state is "destroyed">> <span class="teal">The <<machine_damage arm_chains>> chains holding your arms remain loose.</span> <<elseif $machine.arm_chains.state is "inert">> <span class="teal">The <<machine_damage arm_chains>> chains holding your arms remain loose.</span> <</if>> <br> <</if>> <<if $machine.leg_chains>> <<if $machine.leg_chains.state is "ready">> <<if _machine_legs is 1>> The <<machine_damage leg_chains>> chains attached to your shackles retract, <span class="pink">pulling on your legs and immobilising them.</span> <<set $feetactiondefault to "chain_struggle">> <<set $feetuse to "mechgrappled">><<set $feettarget to "machine">> <<set $machine.leg_chains.use to "grapple">> <<set $machine.leg_chains.state to "grapple">> <<if $leftleg isnot "bound">> <<set $leftleg to "mechgrappled">> <</if>> <<if $rightleg isnot "bound">> <<set $rightleg to "mechgrappled">> <</if>> <<else>> The <<machine_damage leg_chains>> chains holding your legs resist your movements, <span class="lblue">but remain loose.</span> <</if>> <<elseif $machine.leg_chains.state is "recovering">> The <<machine_damage leg_chains>> chains holding your legs twitch, <span class="teal">but remain loose.</span> <<elseif $machine.leg_chains.state is "destroyed">> <span class="teal">The <<machine_damage leg_chains>> chains holding your legs remain loose.</span> <<elseif $machine.leg_chains.state is "inert">> <span class="teal">The <<machine_damage leg_chains>> chains holding your legs remain loose.</span> <</if>> <br> <</if>> <br> <</widget>> <<widget "machine_vaginal_disable">> <<if $vaginause is "machine">> <<set $vaginause to 0>> <<set $vaginastate to 0>> <</if>> <</widget>> <<widget "machine_anal_disable">> <<if $anususe is "machine">> <<set $anususe to 0>> <<set $anusstate to 0>> <</if>> <</widget>> <<widget "machine_arm_chains_disable">> <<if $leftarm isnot "bound">> <<set $leftarm to 0>> <<set $leftactiondefault to "rest">> <</if>> <<if $rightarm isnot "bound">> <<set $rightarm to 0>> <<set $rightactiondefault to "rest">> <</if>> <</widget>> <<widget "machine_leg_chains_disable">> <<if $leftleg isnot "bound">> <<set $leftleg to 0>> <<set $feetuse to 0>> <<set $feetactiondefault to "rest">> <</if>> <<if $rightleg isnot "bound">> <<set $rightleg to 0>> <<set $feetuse to 0>> <<set $feetactiondefault to "rest">> <</if>> <</widget>> <<widget "machine_speed">> <<set $machine.speed to _args[0]>> <<if $robinMachineSpeed>> <<set $robinMachineSpeed to 4 - _args[0]>> <</if>> <</widget>><<widget "machine_state">> <<if $arousal gte $arousalmax and $orgasmdown lte 0>> <<orgasm>> <</if>> <<sexcheck>> <<animateCombat>> <</widget>><!-- GENERAL USE WIDGETS --> <!-- pass "left" or "right" for which NPC hand this is called for --> <<widget "combat-reset-hand">> <<if _args[0] is "both">> <<set $NPCList[_n].lefthand to 0>> <<set $NPCList[_n].righthand to 0>> <<else>> <<set $NPCList[_n][_args[0]+"hand"] to 0>> <</if>> <</widget>> <!-- pass "left" or "right" for which NPC tool this is called for --> <<widget "combat-reset-tool">> <<if _args[0] is "both">> <<set $NPCList[_n].lefttool to 0>> <<set $NPCList[_n].righttool to 0>> <<else>> <<set $NPCList[_n][_args[0]+"tool"] to 0>> <</if>> <</widget>> <!-- pass "left" or "right" for which NPC hand this is called for, and the name of the targeted PC body part --> <<widget "combat-set-hand-target">> <<set $NPCList[_n][_args[0]+"hand"] to _args[1]>> <</widget>> <<widget "combat-get-other-hand">> <<set $otherNPChand to (_args[0] is "left"? $NPCList[_n].righthand : $NPCList[_n].lefthand)>> <</widget>> <!-- SPECIFIC HAND ACTION WIDGETS --> <<widget "combat-spank">> <<bruise bottom>><<hitstat>><<set $speechspank to 1>> <<if $spankobject is "paddle">> <<He>> <<print either("spanks","whacks","slaps","smacks","thwacks")>> your <<bottom>> with the paddle, <<if $worn.lower.anus_exposed is 1 and $worn.over_lower.anus_exposed is 1>> <<if $worn.under_lower.name isnot "naked" and $worn.under_lower.anus_exposed is 0>> through your $worn.under_lower.name, <<else>> reddening your exposed skin and <</if>> <<elseif $worn.over_lower.name isnot "naked" and $worn.over_lower.state is "waist">> through your $worn.over_lower.name, <<elseif $worn.lower.name isnot "naked" and $worn.lower.state is "waist">> through your $worn.lower.name, <<elseif $worn.under_lower.name isnot "naked" and $worn.under_lower.state is "waist">> through your $worn.under_lower.name, <<else>> reddening your exposed skin and <</if>> sending waves of pain through your whole body. <<bodypart_admire_chance random_bottom>> <<violence 10 1 1 1 _n>> <<elseif getSexToysofType("dildos and whips").includes($spankobject)>> <<He>> <<print either("spanks","whacks","slaps","smacks","thwacks")>> your <<bottom>> with the $spankobject, <<if $worn.lower.anus_exposed is 1 and $worn.over_lower.anus_exposed is 1>> <<if $worn.under_lower.name isnot "naked" and $worn.under_lower.anus_exposed is 0>> through your $worn.under_lower.name. <<else>> reddening your exposed skin. <</if>> <<elseif $worn.over_lower.name isnot "naked" and $worn.over_lower.state is "waist">> through your $worn.over_lower.name. <<elseif $worn.lower.name isnot "naked" and $worn.lower.state is "waist">> through your $worn.lower.name. <<elseif $worn.under_lower.name isnot "naked" and $worn.under_lower.state is "waist">> through your $worn.under_lower.name. <<else>> reddening your exposed skin. <</if>> <<bodypart_admire_chance random_bottom>> <<violence 5 1 1 1 _n>> <<else>> <<He>> spanks your <<bottom>> <<if $worn.lower.anus_exposed is 1 and $worn.over_lower.anus_exposed is 1>> <<if $worn.under_lower.name isnot "naked" and $worn.under_lower.anus_exposed is 0>> through your $worn.under_lower.name. <<else>> reddening your exposed skin. <</if>> <<elseif $worn.over_lower.name isnot "naked" and $worn.over_lower.state is "waist">> through your $worn.over_lower.name. <<elseif $worn.lower.name isnot "naked" and $worn.lower.state is "waist">> through your $worn.lower.name. <<elseif $worn.under_lower.name isnot "naked" and $worn.under_lower.state is "waist">> through your $worn.under_lower.name. <<else>> reddening your exposed skin. <</if>> <<bodypart_admire_chance random_bottom>> <<violence 5 1 1 1 _n>> <</if>> <</widget>> <<widget "combat-dildospank">> <<set $_hand to _args[0]>> <<set $_toy to ($_hand is "left" ? $NPCList[_n].lefttool : $NPCList[_n].righttool)>> <<bruise bottom>><<hitstat>><<set $speechspank to 1>> <<if npcHasSexToyOfType(_n,"dildo")>> <<if $NPCList[_n].location.genitals is "head" or $mouthuse is "facesit" or $mouthuse is "penis">> <<He>> <<print either("spanks","whacks","slaps","smacks","thwacks")>> your <<breasts>> with the $_toy in <<his>> $_hand hand, <<if $worn.over_upper.name isnot "naked" and $worn.over_lower.state is "waist">> through your $worn.over_upper.name. <<elseif $worn.upper.name isnot "naked" and $worn.lower.state is "waist">> through your $worn.upper.name. <<elseif $worn.under_upper.name isnot "naked" and $worn.under_lower.state is "waist">> through your $worn.under_upper.name. <<else>> reddening your exposed skin. <</if>> <<else>> <<He>> <<print either("spanks","whacks","slaps","smacks","thwacks")>> your <<bottom>> with the $_toy in <<his>> $_hand hand, <<if $worn.lower.anus_exposed is 1 and $worn.over_lower.anus_exposed is 1>> <<if $worn.under_lower.name isnot "naked" and $worn.under_lower.anus_exposed is 0>> through your $worn.under_lower.name. <<else>> reddening your exposed skin. <</if>> <<elseif $worn.over_lower.name isnot "naked" and $worn.over_lower.state is "waist">> through your $worn.over_lower.name. <<elseif $worn.lower.name isnot "naked" and $worn.lower.state is "waist">> through your $worn.lower.name. <<elseif $worn.under_lower.name isnot "naked" and $worn.under_lower.state is "waist">> through your $worn.under_lower.name. <<else>> reddening your exposed skin. <</if>> <<bodypart_admire_chance random_bottom>> <</if>> <<violence 5 1 1 1 _n>> <<elseif npcHasSexToyOfType(_n,"whip")>> <<if $NPCList[_n].location.genitals is "head" or $mouthuse is "facesit" or $mouthuse is "penis">> <<He>> <<print either("brutally","viciously","deftly","sadistically","maliciously")>> <<print either("spanks","whacks","slaps","smacks","thwacks")>> your <<breasts>> with the $_toy in <<his>> $_hand hand, <<if $worn.over_upper.name isnot "naked" and $worn.over_lower.state is "waist">> through your $worn.over_upper.name. <<elseif $worn.upper.name isnot "naked" and $worn.lower.state is "waist">> through your $worn.upper.name. <<elseif $worn.under_upper.name isnot "naked" and $worn.under_lower.state is "waist">> through your $worn.under_upper.name. <<else>> reddening your exposed skin. <</if>> <<else>> <<He>> <<print either("brutally","viciously","deftly","sadistically","maliciously")>> <<print either("spanks","whacks","slaps","smacks","thwacks")>> your <<bottom>> with the $_toy in <<his>> $_hand hand, <<if $worn.lower.anus_exposed is 1 and $worn.over_lower.anus_exposed is 1>> <<if $worn.under_lower.name isnot "naked" and $worn.under_lower.anus_exposed is 0>> through your $worn.under_lower.name. <<else>> reddening your exposed skin. <</if>> <<elseif $worn.over_lower.name isnot "naked" and $worn.over_lower.state is "waist">> through your $worn.over_lower.name. <<elseif $worn.lower.name isnot "naked" and $worn.lower.state is "waist">> through your $worn.lower.name. <<elseif $worn.under_lower.name isnot "naked" and $worn.under_lower.state is "waist">> through your $worn.under_lower.name. <<else>> reddening your exposed skin. <</if>> <</if>> <<bodypart_admire_chance random_bottom>> <<violence 20 1 1 1 _n>> <<else>> <<He>> spanks your <<bottom>> <<if $worn.lower.anus_exposed is 1 and $worn.over_lower.anus_exposed is 1>> <<if $worn.under_lower.name isnot "naked" and $worn.under_lower.anus_exposed is 0>> through your $worn.under_lower.name. <<else>> reddening your exposed skin. <</if>> <<elseif $worn.over_lower.name isnot "naked" and $worn.over_lower.state is "waist">> through your $worn.over_lower.name. <<elseif $worn.lower.name isnot "naked" and $worn.lower.state is "waist">> through your $worn.lower.name. <<elseif $worn.under_lower.name isnot "naked" and $worn.under_lower.state is "waist">> through your $worn.under_lower.name. <<else>> reddening your exposed skin. <</if>> <<bodypart_admire_chance random_bottom>> <<violence 2 1 1 1 _n>> <</if>> <</widget>> <!-- pass "left" or "right" for which NPC hand this is called for --> <<widget "combat-hand-on-arms">> <<if $enemytrust gte 20 and $enemyanger lte 20>> <span class="lblue"><<He>> releases your arms.</span> <<combat-reset-hand _args[0]>> <<set $leftarm to 0>><<set $rightarm to 0>> <<else>> <<He>> grips your arms. <<violence 6 1 1 1 _n>><<bruise leftarm>><<bruise rightarm>> <<bodypart_admire_chance random_shoulder>> <</if>> <</widget>> <!-- takes two args, both should be either "left" or "right". First is NPC hand, second is player arm. --> <<widget "combat-hand-on-one-arm">> <<if $enemytrust gte 20 and $enemyanger lte 20>> <span class="lblue"><<He>> releases your _args[1] arm.</span> <<combat-reset-hand _args[0]>> <<if _args[1] is "left">> <<set $leftarm to 0>> <<else>> <<set $rightarm to 0>> <</if>> <<else>> <<He>> grips your _args[1] arm. <<if _args[1] is "left">> <<violence 3 1 1 1 _n>><<bruise leftarm>> <<bodypart_admire_chance left_shoulder>> <<else>> <<violence 3 1 1 1 _n>><<bruise rightarm>> <<bodypart_admire_chance right_shoulder>> <</if>> <</if>> <</widget>> <<widget "combat-hand-on-vaginaentrance">> <<rng>> <<if $rng gte 101>> <span class="blue"><<He>> moves <<his>> _args[0] hand away from your <<pussy>>.</span> <<combat-reset-hand _args[0]>><<set $vaginause to 0>><<set $vaginastate to 0>> <<elseif $rng gte 61>> <<He>> <<strokes>> your labia. <<neutral 10 "genitals" _n>> <<bodypart_admire_chance pubic>> <<elseif ($rng gte 21 or $novaginal is 1) and (!$player.penisExist or random(1,100) gte 51)>> <<He>> gives your clitoris a tweak. <<set $speechclit to 1>><<neutral 10 "genitals" _n>> <<bodypart_admire_chance pubic>> <<elseif $rng gte 21 or $novaginal is 1>> <<He>> rubs the base of your <<penisSimple>> while toying with your pussy. <<neutral 10 "genitals" _n>><<set $speechfutapenis to 1>> <<bodypart_admire_chance pubic>> <<elseif $rng lte 20 and $novaginal is 0>> <span class="pink"><<He>> plunges a finger into your warm <<pussy>>.</span> <<neutral 15 "genitals" _n>> <<set $speechvagina to 1>><<set $vaginastate to "otherhand">> <<combat-set-hand-target _args[0] "vagina">> <<bodypart_admire_chance pubic>> <</if>> <</widget>> <!-- pass "left" or "right" for which NPC hand this is called for --> <<widget "combat-hand-on-penisentrance">> <<rng>> <<if $rng gte 101>> <span class="blue"><<He>> moves <<his>> _args[0] hand away from your <<penis>>.</span> <<combat-reset-hand _args[0]>> <<set $penisuse to 0>><<set $penisstate to 0>> <<elseif $rng gte 51>> <<He>> <<strokes>> your shaft. <<neutral 10 "genitals" _n>> <<bodypart_admire_chance pubic>> <<elseif $rng gte 21>> <<He>> rubs your glans. <<neutral 10 "genitals" _n>><<set $speechglans to 1>> <<bodypart_admire_chance pubic>> <<elseif $rng lte 20>> <span class="pink"><<He>> wraps <<his>> fingers around your penis.</span> <<neutral 15 "genitals" _n>> <<set $speechpenis to 1>><<set $penisstate to "otherhand">> <<combat-set-hand-target _args[0] "penis">> <<bodypart_admire_chance pubic>> <</if>> <</widget>> /* Pass "left" or "right" for which NPC hand this is called for. Hands are 'inverted': NPC holds PC's left hand with their right one, and vice versa.*/ <<widget "combat-hand-on-hand">> <<rng>> <<set $_hand to _args[0]>> <<if $enemyanger + $rng gte 196>> In anger, <span class="pink"><<he>> wrenches <<his>> hand from your grasp.</span> <<combat-reset-hand _args[0]>> <<if $_hand is "left">> <<set $rightarm to 0>> <<else>> <<set $leftarm to 0>> <</if>> <<violence 5>> <<elseif $enemyanger + $rng gte 160>> <<print either( "<<He>> digs <<his>> nails into your wrist.", "<<He>> crushes your hand in <<his>> grip.", "<<He>> bends your fingers back." )>> <<violence 10>><<hitstat>><<set $speechbeat to 1>> <<elseif $rng gte 96>> <span class="purple"><<He>> releases your <<print ($_hand is "left" ? "right" : "left")>> hand.</span> <<combat-reset-hand _args[0]>> <<if $_hand is "left">> <<set $rightarm to 0>> <<else>> <<set $leftarm to 0>> <</if>> <<else>> <<He>> <<strokes>> your $_hand hand with <<his>> own. <</if>> <</widget>> <!-- pass "left" or "right" for which NPC hand this is called for --> <<widget "combat-hand-on-vagina">> <<rng>> <<if $rng gte 101>> <span class="purple"><<He>> slides <<his>> finger out of your <<pussy>>.</span> <<combat-set-hand-target _args[0] "vaginaentrance">> <<neutral 15 "genitals" _n>><<set $vaginastate to "otherhandentrance">> <<elseif $rng lte 100>> <<He>> <<strokes>> the inside of your <<pussy>>, <<neutral 20 "genitals" _n>><<set $speechvagina to 1>> <<if $arousal gte ($arousalmax / 5) * 4>> causing involuntary shudders. <<elseif $arousal gte $arousalmax / 5>> coaxing out lewd fluid. <<else>> invading your body in a most sordid manner. <</if>> <<bodypart_admire_chance pubic>> <</if>> <</widget>> <<widget "combat-hand-on-penis">> <<rng>> <<if $rng gte 101>> <span class="purple"><<He>> releases your <<penis>> from <<his>> grip.</span> <<combat-set-hand-target _args[0] "penisentrance">> <<neutral 15 "genitals" _n>><<set $penisstate to "otherhandentrance">> <<elseif $rng lte 100>> <<He>> massages the length of your <<penis>>, <<neutral 20 "genitals" _n>><<set $speechpenis to 1>> <<if $arousal gte ($arousalmax / 5) * 4>> causing you involuntary shudders. <<elseif $arousal gte $arousalmax / 5>> coaxing out lewd fluid. <<else>> exploiting your body's natural reactions in a most sordid manner. <</if>> <<bodypart_admire_chance pubic>> <</if>> <</widget>> <<widget "combat-hand-on-anusentrance">> <<rng>> <<if $rng gte 101>> <span class="blue"><<He>> moves <<his>> hand away from your ass.</span> <<combat-reset-hand _args[0]>> <<set $anususe to 0>> <<elseif playerHasButtPlug()>> <<if $rng gte 21 or $noanal is 1 or $cheekaction is "handrub">> <<print either( `<<He>> teases your anus with your $worn.butt_plug.name, sliding it in and out.`, `<<He>> teases your anus with your $worn.butt_plug.name, sliding it in and out.`, `<<He>> slaps your ass and $worn.butt_plug.name.` )>> <<set $anususe to "hand">> <<set $anusstate to "handentrance">> <<else>> <<set $worn.butt_plug.state to "removed">> With <<his>> _args[0] hand, <<if random(0,2) isnot 0>> <<he>> removes your $worn.butt_plug.name. <<set $anususe to "hand">> <<set $anusstate to "handentrance">> <<else>> <<he>> removes your $worn.butt_plug.name and moves <<his>> hand away. <<combat-reset-hand $_hand>><<neutral 5 _n>> <</if>> <</if>> <<set $anususe to "hand">> <<set $anusstate to "handentrance">> <<neutral 10 _n>> <<bodypart_admire_chance random_bottom>> <<elseif $rng gte 21 or $noanal is 1 or $cheekaction is "handrub">> <<He>> <<strokes>> your anus. <<set $anususe to "hand">> <<set $anusstate to "handentrance">> <<neutral 10 _n>> <<bodypart_admire_chance random_bottom>> <<elseif $rng lte 20 and $noanal is 0 and $cheekaction isnot "handrub">> <span class="pink"><<He>> plunges a finger into your ass.</span> <<combat-set-hand-target _args[0] "anus">> <<set $anususe to "hand">> <<set $anusstate to "handentrance">> <<neutral 15 _n>> <<set $speechanus to 1>> <<bodypart_admire_chance random_bottom>> <</if>> <</widget>> <<widget "combat-hand-on-bottom">> <<rng>> <<if $rng gte 101>> <span class="blue"><<He>> moves <<his>> hand away from your ass.</span> <<combat-reset-hand _args[0]>> <<set $anususe to 0>> <<elseif $rng gte 21 or $noanal is 1>> <<He>> <<strokes>> your clenched butt cheeks. <<neutral 10 _n>> <<bodypart_admire_chance random_bottom>> <</if>> <</widget>> <<widget "combat-hand-on-anus">> <<rng>> <<if $rng gte 101>> <span class="purple"><<He>> slides <<his>> finger out of your ass.</span> <<combat-set-hand-target _args[0] "anusentrance">> <<neutral 15 _n>> <<elseif $rng lte 100>> <<He>> rhythmically slides <<his>> finger in and out of your ass, <<neutral 20 _n>><<set $speechanus to 1>> <<if $player.sex is "f">> teasing your anus. <<else>> teasing your prostate. <</if>> <<bodypart_admire_chance random_bottom>> <</if>> <</widget>> <<widget "combat-dildo-on-vaginaentrance">> <<set $_hand to _args[0]>> <<set $_toy to (_args[0] is "left" ? $NPCList[_n].lefttool : $NPCList[_n].righttool)>> <<if $worn.under_lower.name isnot "naked" and $worn.under_lower.state is "waist" and $worn.under_lower.vagina_exposed is 0>> <<set $_clothing to $worn.under_lower.name>> <</if>> <<if $worn.lower.name isnot "naked" and $worn.lower.state is "waist" and $worn.lower.vagina_exposed is 0>> <<set $_clothing to $worn.lower.name>> <</if>> <<if $worn.over_lower.name isnot "naked" and $worn.over_lower.state is "waist" and $worn.over_lower.vagina_exposed is 0>> <<set $_clothing to $worn.over_lower.name>> <</if>> <<set $_rng to random(1, 100)>> <<if $_rng gte 96>> <span class="blue"><<He>> moves the $_toy in <<his>> _args[0] hand away from your <<pussy>>.</span> <<combat-reset-hand _args[0]>><<set $NPCList[_n][$_hand + "tool"] to 0>> /*<<set $vaginause to 0>>*/ <<elseif $rng gte 61>> <<He>> <<strokes>> your labia with the $_toy in <<his>> _args[0] hand<<if $_clothing isnot undefined>>, through your <<print $_clothing>><</if>>. <<neutral 10 "genitals" _n>> <<bodypart_admire_chance pubic>> <<elseif ($_rng gte 21 or $novaginal is 0) and (!$player.penisExist or random(1,100) gte 51)>> <<He>> <<print either("rubs","slaps")>> your clit with the $_toy in <<his>> _args[0] hand<<if $_clothing isnot undefined>>, through your <<print $_clothing>><</if>>. <<set $speechclit to 1>><<neutral 10 "genitals" _n>> <<violence 1>> <<bodypart_admire_chance pubic>> <<elseif $_rng gte 21 or $novaginal is 0>> <<He>> rubs the base of your <<penisSimple>> with <<his>> $_toy while toying with your pussy<<if $_clothing isnot undefined>>, through your <<print $_clothing>><</if>>. <<neutral 10 "genitals" _n>><<set $speechfutapenis to 1>> <<bodypart_admire_chance pubic>> <<elseif $_rng lte 20 and $novaginal is 0 and $worn.under_lower.name isnot "naked" and ($worn.under_lower.state isnot "waist" or $worn.under_lower.vagina_exposed gte 1) and $worn.lower.name isnot "naked" and ($worn.lower.state isnot "waist" or $worn.lower.vagina_exposed gte 1) and $worn.over_lower.name isnot "naked" and ($worn.over_lower.state isnot "waist" or $worn.over_lower.vagina_exposed gte 1 and !playerChastity("vagina")) and $vaginause isnot "othermouth" and ($settings.vaginalDoubleEnabled and $settings.toyMultiplePenetrationEnabled or $vaginause is 0)>> /* penetration */ /* Doesn't check if the PC is already penetrated (aside from mouth) in order to allow for multiple penetrations. */ <span class="pink"><<He>> plunges <<his>> _args[0]-hand $_toy into your warm <<pussy>>.</span> <<neutral 15 "genitals" _n>><<set $speechvagina to 1>><<combat-set-hand-target _args[0] "vaginadildo">> <<bodypart_admire_chance pubic>> <<else>> <<He>> <<strokes>> your labia with the $_toy in <<his>> _args[0] hand. <<neutral 10 "genitals" _n>> <<bodypart_admire_chance pubic>> <</if>> <</widget>> <<widget "combat-dildo-on-vagina">> <<set $_hand to _args[0]>> <<set $_toy to (_args[0] is "left" ? $NPCList[_n].lefttool : $NPCList[_n].righttool)>> <<rng>> <<if $rng gte 101>> <span class="purple"><<He>> slides the $_toy in <<his>> _args[0] hand out of your <<pussy>>.</span> <<combat-set-hand-target _args[0] "dildo">><<set $NPCList[_n][$_hand + "tool"] to 0>> <<neutral 15 "genitals" _n>> <<elseif $rng lte 100>> <<He>> <<strokes>> the $_toy in <<his>> _args[0] hand inside of your <<pussy>>, <<if $vaginastate isnot 0 and $vaginastate.includes("double")>> ?alongside the two cocks, <<elseif $vaginastate isnot 0 and $vaginastate is "penetrated">> <<print either("in rhythm with","heedless of","alongside")>> <<if $vaginastate is _n>><<his>> <<npcPenisSimple _n>>,<<else>><<set $_n to _n>><<personselect $vaginastate>><<combatpersons>> cock,<<set _n to $_n>><</if>> <</if>> <<neutral 20 "genitals" _n>><<set $speechvagina to 1>> <<if $arousal gte ($arousalmax / 5) * 4>> causing involuntary shudders. <<elseif $arousal gte $arousalmax / 5>> coaxing out lewd fluid. <<else>> invading your body in a most sordid manner. <</if>> <<bodypart_admire_chance pubic>> <</if>> <</widget>> <!-- pass "left" or "right" for which NPC hand this is called for --> <<widget "combat-dildo-on-penisentrance">> <<set $_hand to _args[0]>> <<set $_toy to (_args[0] is "left" ? $NPCList[_n].lefttool : $NPCList[_n].righttool)>> <<if $worn.under_lower.name isnot "naked" and $worn.under_lower.state is "waist" and $worn.under_lower.vagina_exposed is 0>> <<set $_clothing to $worn.under_lower.name>> <</if>> <<if $worn.lower.name isnot "naked" and $worn.lower.state is "waist" and $worn.lower.vagina_exposed is 0>> <<set $_clothing to $worn.lower.name>> <</if>> <<if $worn.over_lower.name isnot "naked" and $worn.over_lower.state is "waist" and $worn.over_lower.vagina_exposed is 0>> <<set $_clothing to $worn.over_lower.name>> <</if>> <<rng>> <<if $rng gte 96 or !$settings.toyMultiplePenetrationEnabled>> <span class="blue"><<He>> moves the $_toy in <<his>> _args[0] hand away from your <<penis>>.</span> <<combat-reset-hand _args[0]>><<set $NPCList[_n][$_hand + "tool"] to 0>> /*<<set $penisuse to 0>>*/ <<elseif $rng gte 51>> <<switch $penisstate>> <<case "otheranus">><<set $_teased to "anus">> <<case "penetrated">><<set $_teased to "vagina">> <<case "penispenetrated">><<set $_teased to "cock">> <</switch>> <<He>> <<strokes>> your shaft using the $_toy in <<his>> _args[0] hand<<if $_clothing isnot undefined>>, through your <<print $_clothing>>.<<elseif $penisstate is "otheranus" or $penisstate is "penetrated">><<set $_n to _n>>, teasing <<personselect $penistarget>><<combatpersons>> $_teased.<<personselect $_n>><<else>>.<</if>> <<neutral 10 "genitals" _n>> <<bodypart_admire_chance pubic>> <<elseif $rng gte 21>> <<He>> <<print either("slaps","smacks","teases","rubs")>> your glans with the $_toy in <<his>> _args[0] hand<<if $_clothing isnot undefined>>, through your <<print $_clothing>><</if>>. <<neutral 10 "genitals" _n>><<set $speechglans to 1>> <<violence 1>> <<bodypart_admire_chance pubic>> <<elseif $rng lte 20 and $worn.under_lower.name isnot "naked" and ($worn.under_lower.state isnot "waist" or $worn.under_lower.vagina_exposed gte 1) and $worn.lower.name isnot "naked" and ($worn.lower.state isnot "waist" or $worn.lower.vagina_exposed gte 1) and $worn.over_lower.name isnot "naked" and ($worn.over_lower.state isnot "waist" or $worn.over_lower.vagina_exposed gte 1) and !playerChastity("penis")>> /* escalation */ <span class="pink"><<He>> <<print either("rubs","frots","fences")>> the $_toy in <<his>> _args[0] hand against your <<penisSimple>>.</span> <<neutral 15 "genitals" _n>> <<set $speechpenis to 1>> <<combat-set-hand-target _args[0] "penisdildo">> <<bodypart_admire_chance pubic>> <<else>> <<He>> <<strokes>> your <<penis>> with the $_toy in <<his>> _args[0] hand. <<neutral 10 "genitals" _n>> <<bodypart_admire_chance pubic>> <</if>> <</widget>> <<widget "combat-dildo-on-penis">> <<set $_hand to _args[0]>> <<set $_toy to (_args[0] is "left" ? $NPCList[_n].lefttool : $NPCList[_n].righttool)>> <<rng>> <<if $penisstate isnot 0>> <<set $rng += 10>> <</if>> <<if $rng gte 96>> <span class="purple"><<He>> removes the $_toy from your <<penis>>.</span> <<combat-set-hand-target _args[0] "dildo">><<set $NPCList[_n][$_hand + "tool"] to 0>> <<neutral 15 "genitals" _n>> <<elseif $rng lte 100>> <<if ["otheranus","penetrated","penispenetrated"].includes($penisstate)>> <<switch $penisstate>> <<case "otheranus">><<set $_teased to "anus">><<set $_fuck to "penetrate">> <<case "penetrated">><<set $_teased to "vagina">><<set $_fuck to "fuck">> <<case "penispenetrated">><<set $_teased to "cock">><<set $_fuck to "frot">> <</switch>> With <<his>> _args[0] hand, <<he>> <<print either("massages","rubs","fences","frots")>> the length of your <<penis>> as you $_fuck <<set $_n to _n>><<personselect $penistarget>><<combatpersons>> $_teased.<<personselect $_n>> <<else>> <<He>> <<print either("massages","rubs","fences","frots")>> the length of your <<penis>> with the $_toy in <<his>> _args[0] hand, <<neutral 20 "genitals" _n>><<set $speechpenis to 1>> <<if !playerHasStrapon()>> <<if $arousal gte ($arousalmax / 5) * 4>> causing you involuntary shudders. <<elseif $arousal gte $arousalmax / 5>> coaxing out lewd fluid. <<else>> exploiting your body's natural reactions in a most sordid manner. <</if>> <<else>> <<if $arousal gte ($arousalmax / 5) * 4>> causing you involuntary shudders. <<else>> strangely arousing you. <</if>> <</if>> <</if>> <<bodypart_admire_chance pubic>> <</if>> <</widget>> <<widget "combat-stroker-on-penisentrance">> <<set $_hand to _args[0]>> <<set $_toy to (_args[0] is "left" ? $NPCList[_n].lefttool : $NPCList[_n].righttool)>> <<set $_clothing to "none">> <<if $worn.under_lower.name isnot "naked" and $worn.under_lower.state is "waist" and $worn.under_lower.vagina_exposed is 0>> <<set $_clothing to $worn.under_lower.name>> <</if>> <<if $worn.lower.name isnot "naked" and $worn.lower.state is "waist" and $worn.lower.vagina_exposed is 0>> <<set $_clothing to $worn.lower.name>> <</if>> <<if $worn.over_lower.name isnot "naked" and $worn.over_lower.state is "waist" and $worn.over_lower.vagina_exposed is 0>> <<set $_clothing to $worn.over_lower.name>> <</if>> <<rng>> <<if $rng gte 96>> <span class="blue"><<He>> moves the $_toy in <<his>> _args[0] hand away from your <<penis>>.</span> <<combat-reset-hand _args[0]>><<set $NPCList[_n][$_hand + "tool"] to 0>> <<elseif $rng gte 61 and $penisuse is 0 and $worn.under_lower.name isnot "naked" and ($worn.under_lower.state isnot "waist" or $worn.under_lower.vagina_exposed gte 1) and $worn.lower.name isnot "naked" and ($worn.lower.state isnot "waist" or $worn.lower.vagina_exposed gte 1) and $worn.over_lower.name isnot "naked" and ($worn.over_lower.state isnot "waist" or $worn.over_lower.vagina_exposed gte 1)>> <span class="pink"><<He>> plunges the $_toy in <<his>> _args[0] hand onto your penis.</span> <<set $penisuse to "stroker">><<set $penisstate to "stroker">> <<neutral 15 "genitals" _n>> <<set $speechpenis to 1>> <<combat-set-hand-target _args[0] "penisstroker">> <<bodypart_admire_chance pubic>> <<else>> <<He>> teases your glans with the $_toy in <<his>> _args[0] hand<<if $_clothing isnot "none">>, through your $_clothing<</if>>. <<neutral 10 "genitals" _n>><<set $speechglans to 1>> <<bodypart_admire_chance pubic>> <</if>> <</widget>> <<widget "combat-stroker-on-penis">> <<set $_hand to _args[0]>> <<set $_toy to (_args[0] is "left" ? $NPCList[_n].lefttool : $NPCList[_n].righttool)>> <<rng>> <<if $rng gte 101>> <span class="blue"><<He>> moves the $_toy in <<his>> _args[0] hand away from your <<penis>>.</span> <<combat-reset-hand _args[0]>><<set $NPCList[_n][$_hand + "tool"] to 0>> <<set $penisuse to 0>> <<elseif $enemyarousal gte (($enemyarousalmax / 5) * 4)>> With increasing power, <<he>> fucks your <<penis>> with the $_toy in <<his>> _args[0] hand. <<else>> <<set $_toy to (_args[0] is "left" ? $NPCList[_n].lefttool : $NPCList[_n].righttool)>> <<He>> <<print either("fucks","fucks","rhythmically works")>> your penis with the $_toy in <<his>> _args[0] hand. <</if>> <</widget>> <<widget "combat-dildo-on-anusentrance">> <<set $_toy to (_args[0] is "left" ? $NPCList[_n].lefttool : $NPCList[_n].righttool)>> <<set _hand to _args[0]>> <<if $worn.under_lower.name isnot "naked" and $worn.under_lower.state is "waist" and $worn.under_lower.vagina_exposed is 0>> <<set $_clothing to $worn.under_lower.name>> <</if>> <<if $worn.lower.name isnot "naked" and $worn.lower.state is "waist" and $worn.lower.vagina_exposed is 0>> <<set $_clothing to $worn.lower.name>> <</if>> <<if $worn.over_lower.name isnot "naked" and $worn.over_lower.state is "waist" and $worn.over_lower.vagina_exposed is 0>> <<set $_clothing to $worn.over_lower.name>> <</if>> <<rng>> <<if $rng gte 96>> <span class="blue"><<He>> moves <<his>> _hand-hand $_toy away from your ass.</span> <<combat-reset-hand _args[0]>><<set $NPCList[_n][$_hand + "tool"] to 0>> /*<<set $anususe to 0>>*/ <<elseif $rng gte 21 or $noanal is 1>> <<He>> <<print either("rubs","slaps")>> and teases your <<print either("anus","ass")>> with the $_toy in <<his>> _hand hand<<if $_clothing isnot undefined>>, through your <<print $_clothing>><<elseif playerHasButtPlug()>>, <<print either("rubbing against","through")>> your $worn.butt_plug.name<</if>>. <<neutral 10 _n>> <<violence 1>> <<bodypart_admire_chance random_bottom>> <<elseif $rng lte 20 and $noanal is 0 and $settings.analEnabled and $worn.under_lower.name isnot "naked" and ($worn.under_lower.state isnot "waist" or $worn.under_lower.anus_exposed gte 1) and $worn.lower.name isnot "naked" and ($worn.lower.state isnot "waist" or $worn.lower.anus_exposed gte 1) and $worn.over_lower.name isnot "naked" and ($worn.over_lower.state isnot "waist" or $worn.over_lower.anus_exposed gte 1) and !playerChastity("anus") and (!playerHasButtPlug() or random(0,1) isnot 0) and $anususe isnot "othermouth" and ($settings.analDoubleEnabled and $settings.toyMultiplePenetrationEnabled or $anususe is 0)>> /* penetration */ /* Doesn't check if the PC is already penetrated (aside from mouth) in order to allow for multiple penetrations. */ <span class="pink"><<He>> plunges the $_toy in <<his>> _hand hand into your ass<<if playerHasButtPlug()>>, heedless of your $worn.butt_plug.name<</if>>.</span> <<combat-set-hand-target _hand "anusdildo">> <<neutral 15 _n>> <<set $speechanus to 1>> <<bodypart_admire_chance random_bottom>> <<else>> <<He>> <<strokes>> your <<bottom>> with the $_toy in <<his>> _hand hand<<if playerHasButtPlug()>>, rubbing against your $worn.butt_plug.name<</if>>. <<neutral 10 _n>> <<bodypart_admire_chance pubic>> <</if>> <</widget>> <<widget "combat-dildo-on-anus">> <<set $_toy to (_args[0] is "left" ? $NPCList[_n].lefttool : $NPCList[_n].righttool)>> <<rng>> <<if $rng gte 101>> <span class="purple"><<He>> slides <<his>> _args[0]-hand $_toy out of your ass.</span> <<combat-set-hand-target _args[0] "dildo">> <<neutral 15 _n>> <<elseif $rng lte 100>> <<set $_rhythmically to either("rhythmically","rhythmically","ruthlessly","gently","teasingly","skilfully")>> <<if $anusstate isnot 0 and $anusstate.includes("double")>> <<He>> $_rhythmically slides the $_toy in <<his>> _args[0] hand in and out of your ass, ?alongside the two cocks, <<elseif $anusstate isnot 0 and $anusstate is "penetrated">> <<He>> $_rhythmically slides the $_toy in <<his>> _args[0] hand in and out of your ass, <<print either("in rhythm with","heedless of","alongside")>> <<if $anustarget is _n>><<his>> <<npcPenisSimple _n>>,<<else>><<personselect $anustarget>><<combatPersons>> cock,<</if>> <<else>> <<He>> $_rhythmically slides the $_toy in <<his>> _args[0] hand in and out of your ass, <</if>> <<neutral 20 _n>><<set $speechanus to 1>> <<if $player.sex is "f">> teasing your anus. <<else>> teasing your prostate. <</if>> <<bodypart_admire_chance random_bottom>> <</if>> <</widget>> <<widget "combat-hand-on-sextoy">> /* used for both dildo types and whip types */ <<set $_hand to _args[0]>> <<set $_toy to $_hand + "tool">> <<set $_rand to random(0,9)>> <<if $_rand lte 8 and npcHasSexToyOfType(_n,"dildo") or $_rand lt 1 and npcHasSexToyOfType(_n,"whip")>> /* find orifice to penetrate */ <<if !$settings.analEnabled or random(0,2) isnot 0>> <<if ($player.penisExist and !playerChastity("penis")) and ($player.vaginaExist and !playerChastity("vagina"))>> <<if random(0,3) is 0>> <<combat-dildo-on-penisentrance $_hand>> <<else>> <<combat-dildo-on-vaginaentrance $_hand>> <</if>> <<elseif $player.penisExist and !playerChastity("penis")>> <<if random(0,2) is 0>> <<combat-dildo-on-penisentrance $_hand>> <<else>> <<combat-dildo-on-anusentrance $_hand>> <</if>> <<elseif $player.vaginaExist and !playerChastity("vagina")>> <<combat-dildo-on-vaginaentrance $_hand>> <<else>> <<combat-dildo-on-anusentrance $_hand>> <</if>> <<else>> <<combat-dildo-on-anusentrance $_hand>> <</if>> <<elseif npcHasSexToyOfType(_n,"dildo") or npcHasSexToyOfType(_n,"whip")>> <<combat-dildospank $_hand>> <</if>> <</widget>> <<widget "combat-reveal-sextoy">> /* Used in conjuction with a widget that starts an NPC with a sex toy in hand */ <<set $_hand to _args[0]>> <<set $_dildo to ($_hand is "left" ? $NPCList[_n].lefttool : $NPCList[_n].righttool)>> <<set $_consentcolour to ($consensual is 1 ? "blue" : "red")>> <<set $_dildocolouredtext to "<span @class='$_consentcolour'>$_dildo</span>">> <<set $_eagerly to ($consensual is 1 ? "eagerly" : "menacingly")>> <<if $NPCList[_n][($_hand is "left" ? "righthand" : "lefthand")] is 0>> <<set $_npcpart to ["palm","palm","palm","thigh","thigh","shoulder"].random()>> <<else>> <<set $_npcpart to ["thigh","shoulder"].random()>> <</if>> <span class="purple"> <<if _args[1] isnot undefined and _args[1] is "pocket">> <<He>> pulls a <span class="blue">$_dildo</span> from <<his>> pocket, slapping it against <<his>> $_npcpart $_eagerly. <<else>> <<switch random(0,3)>> <<case 0>> <<He>> <<print either("flourishes","parades","brandishes","waves")>> <<his>> $_dildocolouredtext, $_eagerly. <<case 1 2>><<He>> <<print either("slaps","smacks")>> <<his>> $_dildocolouredtext against <<his>> $_npcpart. <<case 3>> <<set $_slaps to ($consensual is 1 ? ["brushes","caresses"].random() : "slaps")>> <<if $consensual isnot 1>><<violence 5>><</if>> <<He>> $_slaps <<if $position is "wall" and $walltype isnot "front">> your <<bottom>> with <<his>> $_dildocolouredtext. <<else>> your face with the $_dildocolouredtext in <<his>> $_hand hand. <</if>> <</switch>> <</if>> </span> <<if _args[0] is "left">> <<set $NPCList[_n].lefttool to $_dildo>> <<set $NPCList[_n].lefthand to "dildo">> <<elseif _args[0] is "right">> <<set $NPCList[_n].righttool to $_dildo>> <<set $NPCList[_n].righthand to "dildo">> <</if>> <</widget>> <<widget "combat-hand-hypnosis">> <<rng>> <<set _tool to (_args[0] is "left" ? $NPCList[_n].lefttool : $NPCList[_n].righttool)>> <<set $_hand to _args[0] + "hand">> <<if $NPCList[_n].fullDescription is "Gwylan">> <<if _tool is "light">> The small green light sways and dances in front of you, like a firefly. <<else>> The jasper dangles from a pendant in front of you. <</if>> <<gwylanHypnoName "cap">>'s soft voice echoes in your mind. <<set $_toolAction to _tool is "light" ? "snuff this light" : "cover this necklace">> <<if $rng lt C.npc.Gwylan.dom - 50 and !($hypnosis_traits.devotion gte gwylanHypnoMax("trait") and $hypnosis_traits.devotion lt 5)>> <<if $hypnosis_traits.devotion gte gwylanHypnoMax("trait") and $hypnosis_traits.devotion gte 5>> <span class="witch"><i>When I $_toolAction and click my fingers, we will plunge into depths unknown together.</i></span> <<elseif $hypnosis_traits.devotion gte 3>> <span class="witch"><i>When I $_toolAction and click my fingers, you will relax in my embrace, and reflect upon the questions in your mind.</i></span> <<elseif $hypnosis_traits.devotion gte 1>> <span class="witch"><i>When I $_toolAction and click my fingers, your curiosity will deepen.</i></span> <<else>> <span class="witch"><i>When I $_toolAction and click my fingers, a question will make itself known to you. You will forget it in time, but ponder it while you can.</i></span> <</if>> <<set $NPCList[_n][$_hand] to "hypnosis_devotion">> <<else>> <span class="witch"><i>When I $_toolAction and click my fingers, the cauldron of your lust will boil, and you will climax for me.</i></span> <<set $NPCList[_n][$_hand] to "hypnosis_orgasm">> <</if>> <<elseif $rng gte 76 and ($hypnosis_traits.scream is undefined or $hypnosis_traits.scream lt 5)>> <<He>> waves the _tool at you. <<set $NPCList[_n][$_hand] to "hypnosis_scream">> <<His>> voice echoes in your mind. <span class="purple"><i><span class="red">From when I click my fingers,</span> should you try to scream, you will beg for rougher treatment instead.</i></span> <<elseif $rng gte 51 and ($hypnosis_traits.cover is undefined or $hypnosis_traits.cover lt 5)>> <<He>> waves the _tool at you. <<set $NPCList[_n][$_hand] to "hypnosis_cover">> <<His>> voice echoes in your mind. <span class="purple"><i><span class="red">From when I click my fingers,</span> should you try to cover your body, you will display it for all to see instead.</i></span> <<else>> <<if random(1, 2) is 2>> <<His>> voice echoes in your mind. <span class="purple"><i>When I click my fingers, you will be overcome by arousal and climax at once.</i></span> <<set $NPCList[_n][$_hand] to "hypnosis_orgasm">> <<else>> <<His>> voice echoes in your mind. <span class="purple"><i>When I click my fingers, you will lust for the pleasure of pain.</i></span> <<set $NPCList[_n][$_hand] to "hypnosis_masochism">> <</if>> <<He>> waves the _tool at you. <</if>> <</widget>> <<widget "combat-hand-hypnosis-devotion">> <<set _tool to (_args[0] is "left" ? $NPCList[_n].lefttool : $NPCList[_n].righttool)>> <<He>> clasps <<his>> palm around the _tool, and clicks <<his>> fingers. A deep curiosity blooms, <<if $hypnosis_traits.devotion gte 5 and $hypnosis_traits.devotion gte gwylanHypnoMax("trait")>> and you take the plunge into depths unknown together. <<gwylanHypnosis "devotion" 15>><br> <<hypnosisText "Leviathan dreams of conjunction and decay flow through your mind, daring to plunge deeper into your <<= $gwylanSeen.includes('devotion') ? 'Devotion' : 'Curiosity'>> and plucking answers from infinity beneath you. Each answer blooms and embraces you in its warm glow. This must be Heaven, whispered to you through the Angel before you.">> You have to come back up for air, and your breach is beautiful. You tremble together. <<set $enemyarousal += 1200>><<arousal 10000>><<pain -50>><<gggarousal>><<lllpain>><br> <<elseif $uncomfortable.hypnosis is false>> nurtured by a shared yearning. <span class="lewd">Your mind immediately accepts it.</span> <<gwylanHypnosis "devotion" 10>><br> <<elseif $willpower gte random(1, 1000)>> nurtured by an unwelcome part of you. <span class="lblue">You will it away.</span> <<He>> pouts. <<else>> unbeckoned. <span class="pink">You can't resist it.</span> <<gwylanHypnosis "devotion" 10>><<willpower 1>><<gwillpower>><br> <</if>> <<set $combat_hypnosis to "devotion">> <<combat-reset-tool _args[0]>> <<combat-reset-hand _args[0]>> <</widget>> <<widget "combat-hand-hypnosis-orgasm">> <<set _tool to (_args[0] is "left" ? $NPCList[_n].lefttool : $NPCList[_n].righttool)>> <<He>> clasps <<his>> palm around the _tool and clicks <<his>> fingers. A deep yearning blooms, <<if $hypnosis_traits.devotion gte 5 and $NPCList[_n].fullDescription isnot "Gwylan">> <span class="lblue">only to be plucked</span>. <span class="forest-green">Instead, in your mind's eye, Gwylan cups your cheeks with gentle hands and smiles down at you. Red rose petals flutter around you.</span> It feels so real, leaving you empty when the vision fades away. You yearn only for <<nnpc_him "Gwylan">> in this brief moment. The <<person>> clutches <<his>> head in pain. <<arousal -1000>><<llarousal>><<defiance 5 _n>> <<elseif $hypnosis_traits.devotion is 4 and random(1, 100) gte 50 and $NPCList[_n].fullDescription isnot "Gwylan">> <span class="forest-green">only to wither as you feel a pair of gentle hands cover your ears, blocking out the compulsion</span>. <<He>> frowns. <<elseif $uncomfortable.hypnosis is false>> nurtured by a lewd part of you. <span class="lewd">Your mind immediately accepts it.</span> Feelings of arousal overwhelm you. <<He>> flashes you a satisfied smile. <<arousal 10000>> <<elseif $willpower gte random(1, 1000)>> nurtured by a traitorous part of you. <span class="lblue">You will it away.</span> <<He>> frowns. <<else>> unbeckoned. <span class="pink">You can't resist it.</span> Feelings of arousal overwhelm you. <<He>> flashes you a satisfied smile. <<arousal 10000>><<willpower 1>><<gwillpower>> <</if>> <<hypnotised 1>><<set $combat_hypnosis to "orgasm">> <<combat-reset-tool _args[0]>> <<combat-reset-hand _args[0]>> <</widget>> <<widget "combat-hand-hypnosis-masochism">> <<set _tool to (_args[0] is "left" ? $NPCList[_n].lefttool : $NPCList[_n].righttool)>> <<He>> clasps <<his>> palm around the _tool and clicks <<his>> fingers. A deep yearning blooms, <<if $hypnosis_traits.devotion gte 5 and $NPCList[_n].fullDescription isnot "Gwylan">> <span class="lblue">only to be plucked</span>. <span class="forest-green">Instead, in your mind's eye, Gwylan cradles your head in <<nnpc_his "Gwylan">> lap. White rose petals flutter around you.</span> It feels so real, leaving you aglow when the vision fades away. You yearn only for <<nnpc_his "Gwylan">> touch in this brief moment. The <<person>> clutches <<his>> head in pain. <<pain -8>><<llpain>><<defiance 5 _n>> <<elseif $hypnosis_traits.devotion is 4 and random(1, 100) gte 50 and $NPCList[_n].fullDescription isnot "Gwylan">> <span class="forest-green">only to wither as you feel a pair of gentle hands cover your ears, blocking out the compulsion</span>. <<He>> frowns. <<elseif $uncomfortable.hypnosis is false>> nurtured by a lewd part of you. <span class="lewd">Your mind immediately accepts it.</span> You long for pain. <<He>> flashes you a satisfied smile. <<masochism 10>> <<elseif $willpower gte random(1, 1000)>> nurtured by a traitorous part of you. <span class="lblue">You will it away.</span> <<He>> frowns. <<else>> unbeckoned. <span class="pink">You can't resist it.</span> You long for pain. <<He>> flashes you a satisfied smile. <<masochism 10>><<willpower 1>><<gwillpower>> <</if>> <<hypnotised 1>><<set $combat_hypnosis to "masochism">> <<combat-reset-tool _args[0]>> <<combat-reset-hand _args[0]>> <</widget>> <<widget "combat-hand-hypnosis-scream">> <<set _tool to (_args[0] is "left" ? $NPCList[_n].lefttool : $NPCList[_n].righttool)>> <<He>> clasps <<his>> palm around the _tool and clicks <<his>> fingers. <span class="pink">You feel something shift in your consciousness.</span> <<if ($hypnosis_traits.devotion gte 5 or $hypnosis_traits.devotion is 4 and random(1, 100) gte 50) and $NPCList[_n].fullDescription isnot "Gwylan">> Whatever it is, it's blotted out by something else. <span class="forest-green">Instead, in your mind's eye, Gwylan gently holds your face in front of <<nnpc_his "Gwylan">> own. The slightest sting of a thorn keeps your mind focused.</span> <<elseif !$hypnosis_traits.scream>> You've gained the <span class="pink">Hypnotic Yearning</span> trait. <<set $hypnosis_traits.scream to 1>> <<elseif $hypnosis_traits.scream lt 5>> Your hypnotic yearning has deepened. <<set $hypnosis_traits.scream += 1>> <</if>> <<hypnotised 1>><<set $combat_hypnosis to "scream">> <<combat-reset-tool _args[0]>> <<combat-reset-hand _args[0]>> <</widget>> <<widget "combat-hand-hypnosis-cover">> <<set _tool to (_args[0] is "left" ? $NPCList[_n].lefttool : $NPCList[_n].righttool)>> <<He>> clasps <<his>> palm around the _tool and clicks <<his>> fingers. <span class="pink">You feel something shift in your consciousness.</span> <<if ($hypnosis_traits.devotion gte 5 or $hypnosis_traits.devotion is 4 and random(1, 100) gte 50) and $NPCList[_n].fullDescription isnot "Gwylan">> Whatever it is, it's blotted out by something else. <span class="forest-green">Instead, in your mind's eye, Gwylan gently holds your face in front of <<nnpc_his "Gwylan">> own. The slightest sting of a thorn keeps your mind focused.</span> <<elseif !$hypnosis_traits.cover>> You've gained the <span class="pink">Hypnotic Flaunting</span> trait. <<set $hypnosis_traits.cover to 1>> <<elseif $hypnosis_traits.cover lt 5>> Your hypnotic flaunting has deepened. <<set $hypnosis_traits.cover += 1>> <</if>> <<hypnotised 1>><<set $combat_hypnosis to "cover">> <<combat-reset-tool _args[0]>> <<combat-reset-hand _args[0]>> <</widget>> <<widget "combat-hand-on-mouth">> <<rng>> <<if $enemyanger lte 20 and $enemytrust gte 20>> <span class="teal">Made confident by your accommodating behaviour, <<he>> releases <<his>> hand from your mouth.</span> <<combat-reset-hand _args[0]>> <<set $mouthuse to 0>> <<else>> <<He>> continues to clasp your mouth shut. <<violence 1 1 1 1 _n>><<bruise face>> <<bodypart_admire_chance forehead>> <</if>> <</widget>> <<widget "combat-hand-on-hair">> <<rng>> <<if $rng gte 101>> <span class="lblue"><<He>> releases <<his>> hand from your hair.</span> <<combat-reset-hand _args[0]>> <<elseif $enemyanger gte 61>> With your hair in <<his>> grip, <<he>> yanks back your head. <<violence 4 1 1 1 _n>><<set $speechhair to 1>> <<bodypart_admire_chance forehead>> <<elseif $enemyanger gte 21>> <<He>> strokes your hair while holding it bunched in <<his>> grip. <<set $speechhair to 1>><<neutral 1 _n>> <<bodypart_admire_chance forehead>> <<else>> <span class="lblue"><<He>> releases <<his>> hand from your hair.</span> <<combat-reset-hand _args[0]>> <</if>> <</widget>> <<widget "combat-pull-outfit-down">> <<set $_layer to _args[0]>> <<set $_target to _args[1]>> <<set $_hand to _args[2]>> <<set $_upperslot to ($_layer is "" ? "upper" : $_layer + "_upper")>> <<set $_lowerslot to ($_layer is "" ? "lower" : $_layer + "_lower")>> <<set $_targetslot to ($_layer is "" ? $_target : $_layer + "_" + $_target)>> <<set $_clothing_upper to $worn[$_upperslot]>> <<set $_clothing_lower to $worn[$_lowerslot]>> <<combat-pull-clothing-state $_upperslot "down" $_hand $_lowerslot>> <<set _origin to $_clothing_upper.state_top>> <<set _dest to setup.clothingStateNextDown[_origin]>> <<set $_upperStateSame to setup.clothingStateIndex[$_clothing_upper.state] gte setup.clothingStateIndex[_origin]>> <<set $_lowerStateSame to setup.clothingStateIndex[$_clothing_lower.state] gte setup.clothingStateIndex[_origin]>> /* if the top of the outfit is below the original base of the upper portion, pull the upper portion's base down as well */ <<if $_upperStateSame or setup.clothingStateIndex[$_clothing_upper.state_base] gte setup.clothingStateIndex[_origin]>> <<set $_clothing_upper.state to _dest>> <</if>> /* if the top of the outfit is below the original base of the lower portion, pull the lower portion's base down as well */ <<if $_lowerStateSame or setup.clothingStateIndex[$_clothing_lower.state_base] gte setup.clothingStateIndex[_origin]>> <<set $_clothing_lower.state to _dest>> <</if>> <<switch _origin>> <<case "chest">> <<if $_target is "upper">> <<He>> pulls down the top of your $_clothing_upper.name with <<his>> $_hand hand, <<else>> <<He>> tugs your $_clothing_lower.name with <<his>> $_hand hand, pulling down your $_clothing_upper.name and <</if>> <<if !_toplessExposed>> revealing your <<exposedupper>>. <<neutral 2 _n>> <<else>> <span class="lewd">revealing your <<breasts>>.</span> <<neutral 3 _n>><<set $speechbreasts to 1>> <</if>> <<case "midriff">> <<if $_target is "upper">> <<He>> pulls your $_clothing_upper.name down past your midriff with <<his>> $_hand hand. <<neutral 1 _n>> <<else>> <<He>> tugs your $_clothing_lower.name with <<his>> $_hand hand, pulling down your $_clothing_upper.name past your midriff. <<neutral 1 _n>> <</if>> <<if playerBellyVisible()>><<set $speechpregnant to 1>><</if>> <<case "waist">> <<He>> pulls your $_clothing_upper.name down to your thighs with <<his>> $_hand hand, <<if !_bottomlessExposed>> revealing your <<exposedlower>>. <<neutral 2 _n>> <<else>> revealing your <span class="lewd"><<genitals>>.</span> <<neutral 5 _n>><<set $speechgenitals to 1>> <</if>> <<case "thighs">> <<He>> pulls your $_clothing_upper.name down to your knees with <<his>> $_hand hand. <<neutral 1 _n>> <<case "knees">> <<He>> pulls your $_clothing_upper.name down to your ankles with <<his>> $_hand hand. <<neutral 1 _n>> <<case "ankles">> <span class="purple"><<He>> pulls your $_clothing_upper.name off the bottom of your legs with <<his>> $_hand hand.</span> <<neutral 5 _n>> <</switch>> <</widget>> <<widget "combat-pull-outfit-up">> <<set $_layer to _args[0]>> <<set $_target to _args[1]>> <<set $_hand to _args[2]>> <<set $_upperslot to ($_layer is "" ? "upper" : $_layer + "_upper")>> <<set $_lowerslot to ($_layer is "" ? "lower" : $_layer + "_lower")>> <<set $_targetslot to ($_layer is "" ? $_target : $_layer + "_" + $_target)>> <<if $position isnot "wall">> <<set $_clothing_upper to $worn[$_upperslot]>> <<set $_clothing_lower to $worn[$_lowerslot]>> <<set _origin to $_clothing_upper.state>> <<set _dest to setup.clothingStateNextUp[_origin]>> <<set $_upperStateSame to setup.clothingStateIndex[$_clothing_upper.state_top] gte setup.clothingStateIndex[_origin]>> <<set $_lowerStateSame to setup.clothingStateIndex[$_clothing_lower.state] gte setup.clothingStateIndex[_origin]>> /* <<set $_clothing_upper.state to _dest>> */ <<combat-pull-clothing-state $_upperslot "up" $_hand>> /* if the base of the outfit is below the original top of the upper portion, pull the upper portion's top up as well */ <<if $_upperStateSame or setup.clothingStateIndex[$_clothing_upper.state_top_base] gte setup.clothingStateIndex[_origin]>> <<set $_clothing_upper.state_top to _dest>> <</if>> /* if the base of the outfit is below the original base of the lower portion, pull the lower portion's base up as well */ <<if $_lowerStateSame or setup.clothingStateIndex[$_clothing_lower.state_base] gte setup.clothingStateIndex[_origin]>> <<set $_clothing_lower.state to _dest>> <</if>> <<outfitChecksExposed>> <<switch _origin>> <<case "waist">> <<if $position is "wall" and $walltype isnot "front">> <<combat-tug-clothing "over_lower" $_hand>> <<else>> <<if $_target is "upper">> <<He>> pulls your bundled $_clothing_upper.name up past your midriff. <<else>> <<He>> lifts your $_clothing_upper.name above your midriff with <<his>> $_hand hand. <</if>> <<neutral 2 _n>> <<if playerBellyVisible()>><<set $speechpregnant to 1>><</if>> <</if>> <<case "midriff">> <<if $_target is "upper">> <<He>> pulls your bundled $_clothing_upper.name up past your <<exposedupper>>. <<else>> <<He>> lifts up your $_clothing_upper.name with <<his>> $_hand hand, <<if !_toplessExposed>> exposing your <<exposedupper>>. <<neutral 2 _n>> <<else>> <span class="lewd">exposing your <<breasts>>.</span> <<neutral 3 _n>><<set $speechbreasts to 1>> <</if>> <</if>> <<case "chest">> <<if $_target is "upper">> <span class="purple"><<He>> pulls your $_clothing_upper.name off your body with <<his>> $_hand hand.</span> <<else>> <span class="purple"><<He>> pulls your $_clothing_upper.name off completely with <<his>> $_hand hand.</span> <</if>> <<neutral 3 _n>> <</switch>> <<elseif $walltype isnot "front">> <<combat-tug-clothing $_targetslot $_hand>> <</if>> <</widget>> <<widget "combat-pull-clothing-down">> <<set $_slot to _args[0]>> <<set $_clothing to $worn[$_slot]>> <<set $_hand to _args[1]>> <<set _origin to $_clothing.state>> <<combat-pull-clothing-state $_slot "down" $_hand>> <<switch _origin>> <<case "chest">> <<He>> pulls your $_clothing.name down with <<his>> $_hand hand, <<if !_toplessExposed>> revealing your <<exposedupper>>. <<neutral 2 _n>> <<else>> <span class="lewd">revealing your <<breasts>>.</span> <<neutral 3 _n>><<set $speechbreasts to 1>> <</if>> <<case "midriff">> <<He>> pulls your $_clothing.name down past your midriff with <<his>> $_hand hand. <<neutral 1 _n>> <<if playerBellyVisible()>><<set $speechpregnant to 1>><</if>> <<case "waist">> <<He>> pulls your $_clothing.name down to your thighs with <<his>> $_hand hand, <<if !_bottomlessExposed and $_slot isnot "under_lower" and setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt isnot 1>> revealing your <<exposedlower>>. <<neutral 2 _n>> <<else>> revealing your <span class="lewd"><<genitals>>.</span> <<neutral 5 _n>><<set $speechgenitals to 1>> <</if>> <<case "thighs">> <<He>> pulls your $_clothing.name down to your knees with <<his>> $_hand hand. <<neutral 1 _n>> <<case "knees">> <<He>> pulls your $_clothing.name down to your ankles with <<his>> $_hand hand. <<neutral 1 _n>> <<case "ankles">> <span class="purple"><<He>> pulls your $_clothing.name off your legs with <<his>> $_hand hand.</span> <<neutral 3 _n>> <</switch>> <</widget>> <<widget "combat-pull-clothing-up">> <<set $_slot to _args[0]>> <<set $_clothing to $worn[$_slot]>> <<set $_hand to _args[1]>> <<if $position isnot "wall">> <<combat-pull-clothing-state $_slot "up" $_hand>> <<switch _dest>> <<case "midriff">> <<He>> lifts up your $_clothing.name with <<his>> $_hand hand, exposing your midriff. <<neutral 1 _n>> <<if playerBellyVisible()>><<set $speechpregnant to 1>><</if>> <<case "chest">> <<if _toplessExposed>> <<He>> lifts up your $_clothing.name with <<his>> $_hand hand, <span class="lewd">exposing your <<breasts>>.</span> <<neutral 2 _n>><<set $speechbreasts to 1>> <<else>> <<He>> lifts your $_clothing.name over your chest with <<his>> $_hand hand, exposing your <<exposedupper>>. <<neutral 1 _n>> <</if>> <<case 0>> <span class="purple"><<He>> completely removes your $_clothing.name with <<his>> $_hand hand.</span> <<neutral 3 _n>> <</switch>> <<else>> <<if $walltype isnot "front" and $_slot.includes("upper")>> <<combat-tug-clothing $_slot $_hand>> <</if>> <</if>> <</widget>> <<widget "combat-pull-clothing-to-side">> <<set $_clothing to $worn[_args[0]]>> <<set $_hand to _args[1]>> <<if playerHasStrapon() and $penisstate isnot 0>> <<He>> moves <<his>> $_hand hand away from your $worn.under_lower.colour $worn.under_lower.name. <<combat-reset-hand $_hand>><<neutral 5 _n>> <<else>> <<He>> pulls your $_clothing.name to the side, <span class="lewd">revealing your <<genitals>>.</span> <<set $_clothing.state to "totheside">> <<combat-reset-hand $_hand>><<neutral 5 _n>> <<set $_clothing.vagina_exposed to 1>><<set $_clothing.anus_exposed to 1>><<set $_clothing.exposed to 1>><<set $speechgenitals to 1>> <</if>> <</widget>> <<widget "combat-pull-clothing-state">> <<set $_slot to _args[0]>> <<set $_clothing to $worn[$_slot]>> <<set $_up to _args[1] is "up">> <<set $_hand to _args[2]>> <<if _args[3]>> <<set $_otherOutfitSlot to _args[3]>> <<set $_otherClothing to $worn[$_otherOutfitSlot]>> <</if>> <<if $_up>> <!-- pulling clothing up --> <<set _origin to $_clothing.state>> <<set _dest to setup.clothingStateNextUp[$_clothing.state]>> <<set $_clothing.state to _dest>> <<if $_clothing.state_top and setup.clothingStateIndex[$_clothing.state] gt setup.clothingStateIndex[$_clothing.state_top]>> <<set $_clothing.state_top to _dest>> <</if>> <<if $_otherClothing and setup.clothingStateIndex[$_clothing.state] gt setup.clothingStateIndex[$_otherClothing.state]>> <<set $_otherClothing.state to _dest>> <</if>> <<switch _origin>> <<case "midriff">> <<set $_clothing.exposed to 2>> <!-- breasts/chest now exposed below clothing bottom --> <<case "waist">> <<set $_clothing.exposed to 2>> <!-- genitals now exposed below clothing bottom --> <<set $_clothing.vagina_exposed to 1>><<set $_clothing.anus_exposed to 1>> <</switch>> <<else>> <!-- pulling clothing down --> <<if $_clothing.state_top>> <!-- upper clothing has a .state_top variable, and lower doesn't. --> <<set _origin to $_clothing.state_top>> <<set _dest to setup.clothingStateNextDown[_origin]>> <!-- pulling down open tops is only intended to free the tits, do not attempt to remove your bras by pulling them all the way down through the legs, baka! --> <<set $_min_dest to setup.clothingStateNextDown["chest"]>> <<set $_min_idx to setup.clothingStateIndex[$_min_dest]>> <<if setup.clothingStateIndex[_dest] lt $_min_idx>> <!-- this shouldn't happen, reset everything and quit --> <<set $_clothing.state_top to $_min_dest>> <<set $_clothing.state to $_min_dest>> <<set _origin to "none">> <<set $noupper to 1>> <<combat-reset-hand $_hand>> <<exit>> <<elseif setup.clothingStateIndex[_dest] is $_min_idx>> <!-- take npc hands off before continuing --> <<set $noupper to 1>> <<combat-reset-hand $_hand>> <</if>> <<set $_clothing.state_top to _dest>> <<if setup.clothingStateIndex[$_clothing.state_top] lt setup.clothingStateIndex[$_clothing.state]>> <!-- if the top of the clothing is as low as or lower than the bottom --> <<set $_clothing.state to _dest>> <</if>> <!-- adjust exposure --> <<if _origin is "chest">> <<set $_clothing.exposed to 2>> <!-- breasts/chest now exposed above clothing top --> <</if>> <<else>> <<set _origin to $_clothing.state>> <<set _dest to setup.clothingStateNextDown[$_clothing.state]>> <<set $_clothing.state to _dest>> <!-- adjust exposure --> <<if _origin is "waist">> <<set $_clothing.exposed to 2>> <!-- breasts/chest now exposed above clothing top --> <<set $_clothing.vagina_exposed to 1>><<set $_clothing.anus_exposed to 1>> <</if>> <</if>> <</if>> <<if _dest is 0>> <<combat-reset-hand $_hand>><<clothesstripstat>><<generalStrip $_slot>> <</if>> <<outfitChecksExposed>> <</widget>> <<widget "combat-lift-skirt">> <<set $_clothing to $worn[_args[0]]>> <<set $_hand to _args[1]>> <<set $_clothing.skirt_down to 0>><<set $_clothing.vagina_exposed to 1>><<set $_clothing.anus_exposed to 1>><<set $_clothing.exposed to 2>> <<outfitChecksExposed>> <<He>> lifts up your $_clothing.name with <<his>> $_hand hand, exposing your <<if !_bottomlessExposed>> <<exposedlower>>. <<neutral 2 _n>> <<elseif $worn.genitals.name isnot "naked">> $worn.genitals.name. <<neutral 2 _n>> <<else>> <span class="lewd"><<genitals>>.</span> <<neutral 5 _n>><<set $speechgenitals to 1>> <</if>> <</widget>> <<widget "combat-remove-buttplug">> <<set $_hand to _args[0]>> <<He>> removes your $worn.butt_plug.name, <span class="lewd">revealing your anus.</span> <<set $worn.butt_plug.state to "removed">> <<combat-reset-hand $_hand>><<neutral 5 _n>> <<set $speechanusentrance to 1>> <</widget>> <<widget "combat-tug-clothing">> <<set $_slot to _args[0]>> <<set $_hand to _args[1]>> <<He>> tugs at your $worn[$_slot].name with <<his>> $_hand hand, tearing <<it $_slot>> before <span class="blue">letting go.</span> <<combat-reset-hand $_hand>><<neutral 1 _n>> <<set $worn[$_slot].integrity -= 10>> <</widget>> <<widget "combat-hand-on-overlowerclothes">> <<set $_hand to _args[0]>> <<set $_overlowersetup to setup.clothes.over_lower[clothesIndex('over_lower', $worn.over_lower)]>> <<if $_overlowersetup.skirt is 1>> <<if $worn.over_lower.skirt_down is 1>> <<combat-lift-skirt "over_lower" $_hand>> <<elseif _overOutfit>> <<combat-pull-outfit-up "over" "lower" $_hand>> <<else>> <<combat-pull-clothing-down "over_lower" $_hand>> <</if>> <<elseif _overOutfit>> <<if $worn.over_upper.open is 1>> <<combat-pull-outfit-down "over" "lower" $_hand>> <<else>> <<combat-tug-clothing "over_lower" $_hand>> <</if>> <<else>> <<combat-pull-clothing-down "over_lower" $_hand>> <</if>> <</widget>> <<widget "combat-hand-on-underlowerclothes">> <<set $_hand to _args[0]>> <<set $_overlower_open to setup.clothes.over_lower[clothesIndex('over_lower', $worn.over_lower)].skirt is 1 or $worn.over_lower.type.includes("naked")>> <<set $_lower_open to setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1 or $worn.lower.type.includes("naked")>> <<if _underOutfit>> <<combat-pull-outfit-down "under" "lower" $_hand>> <<elseif playerHasStrapon() and $penisstate isnot 0>> <<He>> moves <<his>> hand away from your $worn.under_lower.colour $worn.under_lower.name. <<combat-reset-hand $_hand>> <<elseif ($_overlower_open and $_lower_open) or $worn.lower.state isnot "waist">> <<if $worn.under_lower.state is "waist" and !($rng gt 20 or $combatgoal is "strip" or $worn.under_lower.no_aside)>> <<combat-pull-clothing-to-side "under_lower" $_hand>> <<else>> <<combat-pull-clothing-down "under_lower" $_hand>> <</if>> <<else>> <<combat-tug-clothing "under_lower" $_hand>> <</if>> <</widget>> <<widget "combat-hand-on-buttplug">> <<set $_clothing to $worn.butt_plug.name>> <<set $_hand to _args[0]>> <<if random(0,3) is 0>> With <<his>> $_hand hand, <<he>> teases your anus with your $_clothing. <<else>> <<combat-remove-buttplug $_hand>> <</if>> <</widget>> <<widget "combat-hand-on-lowerclothes">> <<set $_hand to _args[0]>> <<set $_overlower_open to setup.clothes.over_lower[clothesIndex('over_lower', $worn.over_lower)].skirt is 1 or $worn.over_lower.type.includes("naked")>> <<set $_lower_open to setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1>> <<if $_overlower_open and $_lower_open>> <<if $worn.lower.skirt_down is 1>> <<combat-lift-skirt "lower" $_hand>> <<elseif _middleOutfit>> <<combat-pull-outfit-up "" "lower" $_hand>> <<else>> <<combat-pull-clothing-down "lower" $_hand>> <</if>> <<elseif _middleOutfit>> <<if $worn.upper.open is 1>> <<combat-pull-outfit-down "" "lower" $_hand>> <<else>> <<combat-tug-clothing "lower" $_hand>> <</if>> <<else>> <<combat-pull-clothing-down "lower" $_hand>> <</if>> <</widget>> <<widget "combat-hand-on-overupperclothes">> <<set $_hand to _args[0]>> <<if _overOutfit is false>> <<if $worn.over_upper.open is 1>> <<combat-pull-clothing-down "over_upper" $_hand>> <<else>> <<combat-pull-clothing-up "over_upper" $_hand>> <</if>> <<elseif $worn.over_upper.open is 1>> <<if $worn.over_lower.state is $worn.over_upper.state_top and $worn.over_lower.state is $worn.over_upper.state and setup.clothes.over_lower[clothesIndex('over_lower', $worn.over_lower)].skirt is 1>> <<combat-pull-outfit-up "over" "upper" $_hand>> <<else>> <<combat-pull-outfit-down "over" "upper" $_hand>> <</if>> <<else>> <<combat-tug-clothing "over_upper" $_hand>> <</if>> <</widget>> <<widget "combat-hand-on-upperclothes">> <<set $_hand to _args[0]>> <<if _middleOutfit is false>> <<if $worn.upper.open is 1>> <<combat-pull-clothing-down "upper" $_hand>> <<else>> <<combat-pull-clothing-up "upper" $_hand>> <</if>> <<elseif $worn.upper.open is 1>> <<if $worn.lower.state is $worn.upper.state_top and $worn.lower.state is $worn.upper.state and setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1>> <<combat-pull-outfit-up "" "upper" $_hand>> <<else>> <<combat-pull-outfit-down "" "upper" $_hand>> <</if>> <<else>> <<combat-tug-clothing "upper" $_hand>> <</if>> <</widget>> <<widget "combat-hand-on-underupperclothes">> <<set $_hand to _args[0]>> <<if _underOutfit is false>> <<if $worn.under_upper.open is 1>> <<combat-pull-clothing-down "under_upper" $_hand>> <<else>> <<combat-pull-clothing-up "under_upper" $_hand>> <</if>> <<elseif $worn.under_upper.open is 1>> <<if $worn.under_lower.state is $worn.under_upper.state_top and $worn.under_lower.state is $worn.under_upper.state and setup.clothes.under_lower[clothesIndex('under_lower', $worn.under_lower)].skirt is 1>> <<combat-pull-outfit-up "under" "upper" $_hand>> <<else>> <<combat-pull-outfit-down "under" "upper" $_hand>> <</if>> <</if>> <</widget>> <<widget "combat-hand-on-clothes">> <<set $_slot to _args[0]>> <<set $_hand to _args[1]>> <<set $_strugglevar to $_slot.replace("_","") + "struggle">> <<rng>> <<if $worn[$_slot].name is "naked" and !$removed?.includes($_slot)>> <<if !$removed>> <<set $removed to []>> <</if>> <<cast_aside_clothes>> <<combat-reset-hand $_hand>> <<set $removed.push($_slot)>> <<elseif $worn[$_slot].type.includes("strap-on") and $worn[$_slot].state is "waist" and $penisstate is 0>> <<combat-reset-hand $_hand>> <<elseif V[$_strugglevar] is 1>> <<set V[$_strugglevar] to 0>> You manage to keep <<him>> from stripping you of your $worn[$_slot].name. <<set $speechstripstruggle to 1>> <<elseif $rng gte 101>> <span class="lblue"><<He>> releases <<his>> hand from your $worn[$_slot].name.</span> <<combat-reset-hand $_hand>> <<elseif $rng lte 100>> <<switch $_slot>> <<case "under_lower">> <<combat-hand-on-underlowerclothes $_hand>> <<case "lower">> <<combat-hand-on-lowerclothes $_hand>> <<case "over_lower">> <<combat-hand-on-overlowerclothes $_hand>> <<case "under_upper">> <<combat-hand-on-underupperclothes $_hand>> <<case "upper">> <<combat-hand-on-upperclothes $_hand>> <<case "over_upper">> <<combat-hand-on-overupperclothes $_hand>> <</switch>> <</if>> <<switch $_slot>> <<case "under_upper" "upper" "over_upper">> <<bodypart_admire_chance "breasts">> <<case "over_lower" "lower">> <<bodypart_admire_chance "back">> <<case "under_lower">> <<bodypart_admire_chance "pubic">> <</switch>> <</widget>> <<widget "combat-hand-on-lube">> <<if $NPCList[_n].penis is "vaginaentrance" and $player.bodyliquid.vaginaoutside.goo lt 5>> <<He>> squeezes the bottle of lubricant in <<his>> _args[0] hand, <span class="pink">covering your <<pussy>> in slimy fluid.</span> <<neutral 10 _n>><<bodyliquid "vaginaoutside" "goo">> <<elseif $NPCList[_n].penis is "anusentrance" and $player.bodyliquid.bottom.goo lt 5>> <<He>> squeezes the bottle of lubricant in <<his>> _args[0] hand, <span class="pink">covering your <<bottom>> in slimy fluid.</span> <<neutral 10 _n>><<bodyliquid "bottom" "goo">> <<elseif $NPCList[_n].penis is "otheranusentrance" and $player.bodyliquid.penis.goo lt 5>> <<He>> squeezes the bottle of lubricant in <<his>> _args[0] hand, <span class="pink">covering your <<penis>> in slimy fluid.</span> <<neutral 10 _n>><<bodyliquid "penis" "goo">> <<elseif $NPCList[_n].vagina is "penisentrance" and $player.bodyliquid.penis.goo lt 5>> <<He>> squeezes the bottle of lubricant in <<his>> _args[0] hand, <span class="pink">covering your <<penis>> in slimy fluid.</span> <<neutral 10 _n>><<bodyliquid "penis" "goo">> <<elseif $NPCList[_n].vagina is "otheranusentrance" and $player.bodyliquid.penis.goo lt 5>> <<He>> squeezes the bottle of lubricant in <<his>> _args[0] hand, <span class="pink">covering your <<penis>> in slimy fluid.</span> <<neutral 10>><<bodyliquid "penis" "goo">> <<elseif ($NPCList[_n].penis is "vaginaentrancedouble" or $NPCList[_n].penis is "vaginaimminentdouble") and $player.bodyliquid.vaginaoutside.goo lt 5>> <<He>> squeezes the bottle of lubricant in <<his>> _args[0] hand, <span class="pink">covering your <<pussy>> in slimy fluid.</span> <<neutral 10>><<bodyliquid "vaginaoutside" "goo">> <<elseif ($NPCList[_n].penis is "anusentrancedouble" or $NPCList[_n].penis is "anusimminentdouble") and $player.bodyliquid.bottom.goo lt 5>> <<He>> squeezes the bottle of lubricant in <<his>> _args[0] hand, <span class="pink">covering your <<bottom>> in slimy fluid.</span> <<neutral 10>><<bodyliquid "bottom" "goo">> <<else>> <span class="lblue"><<He>> casts aside the lube in <<his>> _args[0] hand.</span> <<combat-reset-hand _args[0]>> <</if>> <</widget>> <<widget "combat-hand-on-shoes">> <<if $worn.feet.name isnot "naked">> <<He>> tugs off your $worn.feet.name. <<feetstrip>> <<neutral 5 _n>> <</if>> <<combat-reset-hand _args[0]>> <</widget>> <<widget "combat-hand-on-socks">> <<if $worn.legs.name isnot "naked">> <<He>> tugs off your $worn.legs.name, exposing your feet. <<legsstrip>> <<neutral 5 _n>> <</if>> <<combat-reset-hand _args[0]>> <</widget>> <<widget "combat-hand-on-shackle">> <<if $worn.feet.type.includes("shackle")>> <span class="lblue"><<He>> drops the iron shackles.</span> <<combat-reset-hand _args[0]>> <<else>> <span class="red"><<He>> clamps the iron shackles around your ankles.</span> They lock with a click. <<if $carried.feet.name isnot "naked">> <<silently>><<generalSteal "feet">><</silently>> <</if>> <<shackle_feet>> <<combat-reset-hand _args[0]>> <</if>> <</widget>> <<widget "combat-hand-on-shackle-imminent">> <<if $worn.feet.type.includes("shackle")>> <span class="lblue"><<He>> drops the iron shackles.</span> <<combat-reset-hand _args[0]>> <<else>> <span class="pink"><<He>> pulls your ankles into the iron shackles.</span> <<combat-set-hand-target _args[0] "shackle_imminent">> <</if>> <</widget>> <<widget "combat-hand-on-head_breasts">> <<rng>> <<if $rng gte 69 and ($worn.face.type.includes("covered") or $worn.face.type.includes("gag"))>> <<He>> pushes your mouth against <<hisselect _n>> $NPCList[_n].breastdesc, but it's blocked by your $worn.face.name. <<set $speechheadbreasts to 1>> <<if $NPCList[_n].type is "plant" and $NPCList[_n].pronoun is "f" and $settings.breastFeedingEnabled>> <span class="pink">Nectar leaks from <<hisselect _n>> bud.</span> <<damageFaceCover 1>> <<elseif $NPCList[_n].lactation is 1 and $settings.breastFeedingEnabled>> <span class="pink">Milk leaks from <<hisselect _n>> bud.</span> <<set $speechheadsuckleclosed to 1>> <<damageFaceCover 1>> <<else>> <<set $speechheadnippleclosed to 1>> <</if>> <<damageFaceCover 1>> <<elseif $rng gte 71>> <<sex 3 "mouth" _n>> <<combat-set-hand-target _args[0] "head_nipples">> <<if $mouthstate isnot "nipple">> <<set $mouthactiondefault to "breastclosed">> <</if>> <<set $mouthstate to "nipple">><<set $NPCList[_n].chest to "mouth">><<set $mouthtarget to _n>> <<if $NPCList[_n].breastsize gte 1>> <<He>> pushes your face against <<hisselect _n>> $NPCList[_n].breastdesc, <span class="purple">and your mouth against <<hisselect _n>> nipple.</span> <<else>> <span class="purple"><<He>> pushes your mouth against <<hisselect _n>> $NPCList[_n].breastdesc.</span> <</if>> <<if $NPCList[_n].type is "plant" and $NPCList[_n].pronoun is "f" and $settings.breastFeedingEnabled>> <span class="pink">Nectar leaks from <<hisselect _n>> bud.</span> <<elseif $NPCList[_n].lactation is 1 and $settings.breastFeedingEnabled>> <span class="pink">Milk leaks from <<hisselect _n>> bud.</span> <<set $speechheadsuckleclosed to 1>> <<else>> <<set $speechheadnippleclosed to 1>> <</if>> <<else>> <<neutral 3 _n>> <<He>> holds your head between <<hisselect _n>> $NPCList[_n].breastsdesc. <<if $NPCList[_n].breastsize gte 6>> <<set $speechheadbreasts to 1>> <<else>> <<set $speechheadchest to 1>> <</if>> <</if>> <<bodypart_admire_chance forehead>> <</widget>> <!-- pass "left", "right" or "both" as the first argument and "hand" or "hands" for the second argument --> <<widget "combat-hand-on-mask">> <<if ($worn.face.type.includes("mask") or $worn.face.type.includes("covered")) and ($nomask isnot 1 or $enemyanger gt ($enemyangermax / 2))>> <<set $_hishand to (_args[0] isnot "both" ? "<<his>> " : "") + _args[0] + " " + _args[1]>> <<if $face is "covered">> <<He>> tries to pull your $worn.face.name off your face with $_hishand, <span class="lblue">but you grip it tight.</span> <<if random(1, 3) is 3>> <span class="lblue"><<He>> releases it with a frustrated sigh.</span> <<combat-reset-hand _args[0]>> <<else>> <<if $enemyanger gt ($enemyangermax / 2)>> <span class="red"><<He>> tries to force your $worn.face.name off!</span> <<damageFaceCover 4>> <</if>> <</if>> <<else>> <<He>> pulls your $worn.face.name off your face with $_hishand, <span class="pink">revealing your identity.</span> <<facestrip>><<clothesstripstat>><<combat-reset-hand _args[0]>> <<if $mouthuse is "gagged">> <<set $mouthuse to 0>> <</if>> <</if>> <<else>> <<combat-reset-hand _args[0]>> <</if>> <</widget>> <<widget "combat-hand-on-chastity">> <<if $worn.genitals.name is "naked">> <<cast_aside_clothes>> <<combat-reset-hand _args[0]>> <<else>> <<if $worn.genitals.name is "chastity parasite">> <span class="blue"><<He>> pulls on your $worn.genitals.name, only to then squeeze it.</span> <span class="lewd"><<His>> rough handling leaves you feeling more aroused.</span> <<arousal 100 "genitals">> <<if random(0, 100) gt $enemyanger>> Seeing your reaction to squeezing it, <<he>> continues. <<arousal 200 "genitals">><<if !$earSlime.defyCooldown and $earSlime.vibration lt 120>><<set $earSlime.vibration += 5>><</if>> <<elseif $enemyanger gt 100>> Seeing your reaction to squeezing it, <<he>> gives it one more go at tearing it away before giving up. <<set $worn.genitals.integrity -= 5>> <<arousal 100 "genitals">><<combat-reset-hand _args[0]>><<set $speechchastity to 1>><<bodypart_admire_chance pubic>> <<else>> <<He>> stops after a few more moments of squeezing, looking bewildered. <<combat-reset-hand _args[0]>><<set $speechchastity to 1>><<bodypart_admire_chance pubic>> <</if>> <<set $worn.genitals.integrity -= 5>> <<elseif $worn.genitals.origin is $NPCList[_n].fullDescription>> <span class="lblue"><<He>> gently holds onto your $worn.genitals.name before letting it go.</span> <<combat-reset-hand _args[0]>><<set $speechchastity to 1>><<bodypart_admire_chance pubic>> <<else>> <span class="blue"><<He>> tries to loosen your $worn.genitals.name.</span> <<His>> rough handling leaves you feeling more frustrated and aroused. <<He>> gives up after a few moments of impotent tugging, looking disappointed. <<set $enemyanger += 5>><<combat-reset-hand _args[0]>><<set $speechchastity to 1>><<bodypart_admire_chance pubic>><<set $worn.genitals.integrity -= 10>> <</if>> <<neutral 1 "genitals" _n>><<arousal 5 "genitals">> <</if>> <</widget>> <<widget "combat-hand-on-throat">> <<if $settings.asphyxiaLevel gte 1>> <<rng>> <<if $consensual is 1>> <<mancombat_choke>> <<else>> <<mancombat_strangle>> <</if>> <</if>> <</widget>> <<widget "combat-hand-on-head_nipples">> <<sex 3 "mouth">> <<personselect _n>> <<He>> continues to push your mouth against <<his>> $NPCList[_n].breastdesc. <<if $settings.breastFeedingEnabled>> <<if $NPCList[_n].type is "plant" and $NPCList[_n].pronoun is "f">> <span class="pink">Nectar leaks from <<his>> bud.</span> <<elseif $NPCList[_n].lactation is 1>> <span class="pink">Milk leaks from <<his>> bud.</span> <</if>> <</if>> <<bodypart_admire_chance forehead>> <</widget>> <<widget "combat-pen-on-bodypart">> <<set $_hand to _args[0]>><<set $_penbodypart to _args[1]>> <<He>> scrawls on your <<bodypart $_penbodypart>>: <<bodywriting_npc $_penbodypart `$NPCList[_n][$_hand + "tool"]`>> <<set $newlyWritten.pushUnique($_penbodypart)>> <<combat-reset-hand $_hand>><<set $NPCList[_n][$_hand + "tool"] to 0>> <</widget>> <<widget "combat-set-hand-start">> <<rng>> <<outfitChecks>> <<combat-get-other-hand _args[0]>> <<if $askedtochoke is 1 and $consensual is 1 and $settings.asphyxiaLevel gte 1 and ($neckuse isnot "hand" or ($otherNPChand is "throat" and $rng lte 30))>> <<set $neckuse to "hand">> <<set $askedtochoke to 0>> <<combat-set-hand-target _args[0] "throat">> <<neutral 1 _n>> <<elseif $combatgoal is "strip">> <<if $worn.over_upper.name isnot "naked" and $noupper isnot 1 and !$worn.over_upper.cursed>> <span class="purple"><<He>> grasps your $worn.over_upper.name with <<his>> _args[0] hand.</span> <<neutral 1 _n>> <<set $handtarget to "overupperclothes">> <<elseif $worn.upper.name isnot "naked" and $noupper isnot 1 and !$worn.upper.cursed>> <span class="purple"><<He>> grasps your $worn.upper.name with <<his>> _args[0] hand.</span> <<neutral 1 _n>> <<set $handtarget to "upperclothes">> <<elseif $worn.under_upper.name isnot "naked" and !$worn.under_upper.type.includes("sticky") and $noupper isnot 1 and !$worn.under_upper.cursed>> <span class="purple"><<He>> grasps your $worn.under_upper.name with <<his>> _args[0] hand.</span> <<neutral 1 _n>> <<set $handtarget to "underupperclothes">> <<elseif $worn.over_lower.name isnot "naked" and $walltype isnot "front">> <span class="purple"><<He>> grasps your $worn.over_lower.name with <<his>> _args[0] hand.</span> <<neutral 1 _n>> <<set $handtarget to "overlowerclothes">> <<elseif $worn.lower.name isnot "naked" and $walltype isnot "front">> <span class="purple"><<He>> grasps your $worn.lower.name with <<his>> _args[0] hand.</span> <<neutral 1 _n>> <<set $handtarget to "lowerclothes">> <<elseif $worn.under_lower.name isnot "naked" and $worn.under_lower.state isnot "totheside" and $walltype isnot "front">> <span class="purple"><<He>> grasps your $worn.under_lower.name with <<his>> _args[0] hand.</span> <<neutral 1 _n>> <<set $handtarget to "underlowerclothes">> <<elseif $settings.analEnabled and playerHasButtPlug() and random(0,1) is 0>> <span class="purple"><<He>> places <<his>> hand on your $worn.butt_plug.name.</span> <<neutral 1 _n>><<set $handtarget to "buttplug">> <<elseif $worn.genitals.name isnot "naked" and $walltype isnot "front">> <span class="purple"><<He>> grasps your $worn.genitals.name with <<his>> _args[0] hand.</span> <<neutral 1 _n>> <<set $handtarget to "genitals">> <<else>> <!-- You're naked, so the strip attack stops. Either detect this and stop the attack, or just let the attack continue normally. --> <<set $combatgoal to 0>> <<set $handtarget to 0>> <<set $NPCList[_n].mouth to 0>> <<set _stripped to true>> <</if>> <<combat-set-hand-target _args[0] $handtarget>> <<elseif $NPCList[_n].heldSexToy isnot undefined and $rng lte 25 and !getSexToysofType("all").includes($NPCList[_n].lefttool) and !getSexToysofType("all").includes($NPCList[_n].righttool)>> <<giveNPCsextoy _n $NPCList[_n].heldSexToy _args[0]>> <<combat-reveal-sextoy _args[0]>> <<elseif $rng lte 7 and ($consensual isnot 1 or ["Whitney", "Kylar", "Sydney", "Gwylan"].includes($npc[$npcrow.indexOf(_n)])) and $settings.bodyWritingLevel gte 2 and $enemytype isnot "beast" and !$noBodyWriting>> <<set _rng to random(1, 5)>> <<if (_rng is 5 and $NPCList[_n].type isnot "plant" and $role isnot "islander") or $npc.includes("Sydney")>> <span class="purple"><<He>> pulls a <span class="pink">permanent</span> marker pen from <<his>> pocket, flicking off the lid.</span> <<set $tooltarget to "marker">> <<elseif _rng is 4 and $NPCList[_n].type isnot "plant" and $NPCList[_n].pronoun is "f" and $role isnot "islander" and !$npc.includes("Gwylan")>> <span class="purple"><<He>> pulls lipstick from <<his>> pocket and pushes out the tip.</span> <<set $tooltarget to "lipstick">> <<elseif (_rng is 3 and $outside is 1 and ["forest","moor","farmlands","farm"].includes($location)) or $NPCList[_n].type is "plant" or $role is "islander">> <span class="purple"><<He>> lifts a handful of mud from the ground.</span> <<set $tooltarget to "mud">> <<else>> <span class="purple"><<He>> pulls a pen from <<his>> pocket, flicking off the lid.</span> <<set $tooltarget to "pen">> <</if>> <<if _args[0] is "left">> <<set $NPCList[_n].lefttool to $tooltarget>> <<set $NPCList[_n].lefthand to "pen">> <<else>> <<set $NPCList[_n].righttool to $tooltarget>> <<set $NPCList[_n].righthand to "pen">> <</if>> <<neutral 1 _n>> <<elseif $enemyanger + $rng lte 15 and $NPCList[_n].traits.includes("hypnotist") and $settings.hypnosisEnabled and !$noHypnosis>> <<if $NPCList[_n].fullDescription is "Gwylan">> <<set _tool to $hallucinations gte 2 and $hypnosis_traits.devotion gte 3 ? "light" : "jasper pendant">> <<else>> <<set _tool to $role is "islander" ? "bundle of herbs" : "pendant">> <</if>> <<He>> produces a <<if _args[0] is "left">> <<set $NPCList[_n].lefthand to "hypnosis">> <<set $NPCList[_n].lefttool to _tool>> <<if $NPCList[_n].lefttool is "light">> small green light on the tip of <<his>> finger, <<elseif $NPCList[_n].lefttool is "jasper pendant">> jasper pendant<<if $NPCList[_n].clothes.upper.name isnot "naked">> from <<his>> <<= $NPCList[_n].clothes.upper.name>><</if>>, <<else>> <<print $NPCList[_n].lefttool>>, <</if>> <<else>> <<set $NPCList[_n].righthand to "hypnosis">> <<set $NPCList[_n].righttool to _tool>> <<if $NPCList[_n].righttool is "light">> small green light on the tip of <<his>> finger, <<elseif $NPCList[_n].righttool is "jasper pendant">> jasper pendant<<if $NPCList[_n].clothes.upper.name isnot "naked">> from <<his>> <<= $NPCList[_n].clothes.upper.name>><</if>>, <<else>> <<print $NPCList[_n].righttool>>, <</if>> <</if>> <span class="purple">and <<print $role is "islander" ? "waves" : "swings">> it in front of your face.</span> <<elseif $enemyanger + $rng lte 20>> <<if $walltype is "front">> <<He>> strokes your cheek. <<neutral 10 _n>> <<else>> <<set $handtarget to 0>> <<if $worn.over_lower.name isnot "naked">> <span class="purple"><<He>> grasps your $worn.over_lower.name with <<his>> _args[0] hand.</span> <<set $handtarget to "overlowerclothes">><<neutral 1 _n>> <<elseif $worn.lower.name isnot "naked">> <span class="purple"><<He>> grasps your $worn.lower.name with <<his>> _args[0] hand.</span> <<set $handtarget to "lowerclothes">><<neutral 1 _n>> <<elseif !(($player.penisExist and !playerChastity("penis")) or ($player.vaginaExist and !playerChastity("vagina")))>> <<He>> <<strokes>> your inner thigh and brushes <<his>> fingers against your $worn.genitals.name<<if $worn.genitals.name is "chastity parasite">>, <span class="lewd">leaving you feeling more aroused.</span><<arousal 100 "genitals">><<else>>.<</if>> <<neutral 10 "genitals" _n>><<set $speechchastity to 1>> <<elseif ($player.penisExist and !playerChastity("penis")) and ($player.vaginaExist and !playerChastity("vagina"))>> <<if $player.ballsExist and random(0,1) is 1>> <<He>> <<strokes>> your <<testicles>> and teases your glans. <<neutral 10 "genitals" _n>><<set $speechglans to 1>> <<else>> <<He>> strokes the base of your <<penis>> where it meets your <<pussy>>. <<neutral 10 "genitals" _n>><<set $speechfutapenis to 1>> <</if>> <<elseif $player.penisExist and $player.ballsExist and !playerChastity("penis")>> <<He>> <<strokes>> your <<testicles>> and teases your glans. <<neutral 10 "genitals" _n>><<set $speechglans to 1>> <<elseif $player.vaginaExist and !playerChastity("vagina")>> <<He>> <<strokes>> your pubic mound and teases your clit. <<neutral 10 "genitals" _n>><<set $speechclit to 1>> <</if>> <<combat-set-hand-target _args[0] $handtarget>> <</if>> <<elseif $enemyanger + $rng lte 30>> <<set $handtarget to 0>> <<if $position is "wall" and $walltype isnot "front">> <<if $worn.over_lower.name isnot "naked">> <span class="purple"><<He>> grasps your $worn.over_lower.name with <<his>> _args[0] hand.</span> <<set $handtarget to "overlowerclothes">><<neutral 1 _n>> <<elseif $worn.lower.name isnot "naked">> <span class="purple"><<He>> grasps your $worn.lower.name with <<his>> _args[0] hand.</span> <<set $handtarget to "lowerclothes">><<neutral 1 _n>> <<elseif playerHasStrapon()>> <<He>> <<strokes>> your inner thigh and brushes <<his>> fingers against your $worn.under_lower.name. <<neutral 10 "genitals" _n>> <<elseif !(($player.penisExist and !playerChastity("penis")) or ($player.vaginaExist and !playerChastity("vagina")))>> <<He>> <<strokes>> your inner thigh and brushes <<his>> fingers against your $worn.genitals.name<<if $worn.genitals.name is "chastity parasite">>, <span class="lewd">leaving you feeling more aroused.</span><<arousal 100 "genitals">><<else>>.<</if>> <<neutral 10 "genitals" _n>><<set $speechchastity to 1>> <<elseif ($player.penisExist and !playerChastity("penis")) and ($player.vaginaExist and !playerChastity("vagina"))>> <<He>> runs <<his>> hand up your thigh and over the area where your <<penis>> and <<pussy>> meet. <<neutral 10 "genitals" _n>><<set $speechfutapenis to 1>> <<elseif $player.penisExist and !playerChastity("penis")>> <<He>> <<strokes>> your inner thigh and brushes <<his>> fingers against your <<glans>>. <<neutral 10 "genitals" _n>><<set $speechglans to 1>> <<elseif $player.vaginaExist and !playerChastity("vagina")>> <<He>> <<strokes>> your inner thigh and brushes <<his>> fingers against your clit. <<neutral 10 "genitals" _n>><<set $speechclit to 1>> <<else>> <<He>> <<strokes>> your inner thigh. <<neutral 10 "genitals" _n>> <</if>> <<combat-set-hand-target _args[0] $handtarget>> <<bodypart_admire_chance random_thigh>> <<else>> <<if $worn.over_upper.name isnot "naked" and $noupper isnot 1 and !$worn.over_upper.cursed>> <span class="purple"><<He>> grasps your $worn.over_upper.name with <<his>> _args[0] hand.</span> <<set $handtarget to "overupperclothes">><<neutral 1 _n>> <<elseif $worn.upper.name isnot "naked" and $noupper isnot 1 and !$worn.upper.cursed>> <span class="purple"><<He>> grasps your $worn.upper.name with <<his>> _args[0] hand.</span> <<set $handtarget to "upperclothes">><<neutral 1 _n>> <<elseif $worn.under_upper.name isnot "naked" and !$worn.under_upper.type.includes("sticky") and $noupper isnot 1 and !$worn.under_upper.cursed>> <span class="purple"><<He>> grasps your $worn.under_upper.name with <<his>> _args[0] hand.</span> <<set $handtarget to "underupperclothes">><<neutral 1 _n>> <<else>> <<He>> <<strokes>> your chest, <<his>> fingers lingering around your <<nipple>>. <<neutral 4 "breasts" _n>><<playWithBreasts>> <</if>> <<combat-set-hand-target _args[0] $handtarget>> <<bodypart_admire_chance breasts>> <</if>> <<elseif $enemyanger + $rng lte 35>> <<if $walltype is "front">> <<He>> cups your chin with <<his>> _args[0] hand. <<neutral 2 _n>> <<else>> <<set $handtarget to 0>> <<if _skirtExposed>> <<if $worn.under_lower.name isnot "naked" and $worn.under_lower.state isnot "totheside">> <span class="purple"><<He>> grasps your $worn.under_lower.name with <<his>> _args[0] hand.</span> <<set $handtarget to "underlowerclothes">><<neutral 1 _n>> <<elseif $settings.analEnabled and random(0,1) is 0 and playerHasButtPlug()>> <span class="purple"><<He>> places <<his>> hand on your $worn.butt_plug.name.</span> <<neutral 1 _n>><<set $handtarget to "buttplug">> <<elseif $worn.genitals.name isnot "naked">> <span class="purple"><<He>> grasps your $worn.genitals.name with <<his>> _args[0] hand.</span> <<set $handtarget to "genitals">><<neutral 1 "genitals" _n>> <<elseif $worn.under_lower.anus_exposed is 1 and $worn.genitals.anus_exposed is 1>> <<if $worn.lower.anus_exposed is 1 and $worn.over_lower.anus_exposed is 1>> <<if $anususe is 0 and $settings.analEnabled>> <span class="purple"><<He>> presses <<his>> _args[0] hand against your <<bottom>>.</span> <<set $handtarget to "anusentrance">><<set $anususe to "hand">><<set $anusstate to "handentrance">><<neutral 1 _n>> <</if>> <</if>> <</if>> <<elseif $worn.lower.state isnot "waist">> <<if $worn.under_lower.name isnot "naked" and $worn.under_lower.state isnot "totheside">> <span class="purple"><<He>> grasps your $worn.under_lower.name with <<his>> _args[0] hand.</span> <<set $handtarget to "underlowerclothes">><<neutral 1 _n>> <<elseif $settings.analEnabled and random(0,1) is 0 and playerHasButtPlug()>> <span class="purple"><<He>> places <<his>> hand on your $worn.butt_plug.name.</span> <<neutral 1 _n>><<set $handtarget to "buttplug">> <<elseif $worn.genitals.name isnot "naked">> <span class="purple"><<He>> grasps your $worn.genitals.name with <<his>> _args[0] hand.</span> <<set $handtarget to "genitals">><<neutral 1 "genitals" _n>> <<elseif $worn.under_lower.anus_exposed is 1 and $worn.genitals.anus_exposed is 1>> <<if $worn.lower.anus_exposed is 1 and $worn.over_lower.anus_exposed is 1>> <<if $anususe is 0 and $settings.analEnabled>> <span class="purple"><<He>> presses <<his>> _args[0] hand against your <<bottom>>.</span> <<set $handtarget to "anusentrance">><<set $anususe to "hand">><<set $anusstate to "handentrance">><<neutral 1 _n>> <</if>> <</if>> <</if>> <</if>> <<combat-set-hand-target _args[0] $handtarget>> <<bodypart_admire_chance back>> <</if>> <<elseif $enemyanger + $rng lte 40>> <<if $walltype is "front">> <<He>> runs <<his>> fingers through your hair with <<his>> _args[0] hand. <<neutral 2 _n>> <<else>> <<set $handtarget to 0>> <<if _skirtExposed>> <<if $worn.under_lower.name isnot "naked" and $worn.under_lower.state isnot "totheside">> <span class="purple"><<He>> grasps your $worn.under_lower.name with <<his>> _args[0] hand.</span> <<set $handtarget to "underlowerclothes">><<neutral 1 _n>> <<elseif $settings.analEnabled and playerHasButtPlug() and random(0,1) is 0 and $worn.genitals.anal_shield isnot undefined and !playerChastity("anus")>> <span class="purple"><<He>> places <<his>> hand on your $worn.butt_plug.name.</span> <<neutral 1 _n>><<set $handtarget to "buttplug">> <<elseif $worn.genitals.name isnot "naked">> <span class="purple"><<He>> grasps your $worn.genitals.name with <<his>> _args[0] hand.</span> <<set $handtarget to "genitals">><<neutral 1 "genitals" _n>> <<elseif $worn.under_lower.vagina_exposed is 1 and $worn.genitals.vagina_exposed is 1>> <<if $worn.lower.vagina_exposed is 1 and $worn.over_lower.vagina_exposed is 1>> <<if $player.vaginaExist and $vaginause is 0 and (!$player.penisExist or $penisuse isnot 0 or random(0,100) gte 50)>> <span class="purple"><<He>> presses <<his>> _args[0] hand against your <<pussy>>, resting a finger on your entrance.</span> <<set $handtarget to "vaginaentrance">><<set $vaginause to 1>><<neutral 1 "genitals" _n>> <<elseif $player.penisExist and $penisuse is 0>> <span class="purple"><<He>> presses <<his>> _args[0] hand against your <<penis>>.</span> <<set $handtarget to "penisentrance">><<set $penisuse to 1>><<neutral 1 "genitals" _n>> <</if>> <</if>> <</if>> <<elseif $worn.lower.state isnot "waist">> <<if $worn.under_lower.name isnot "naked" and $worn.under_lower.state isnot "totheside">> <span class="purple"><<He>> grasps your $worn.under_lower.name with <<his>> _args[0] hand.</span> <<set $handtarget to "underlowerclothes">><<neutral 1 "genitals" _n>> <<elseif $worn.genitals.name isnot "naked">> <span class="purple"><<He>> grasps your $worn.genitals.name with <<his>> _args[0] hand.</span> <<set $handtarget to "genitals">><<neutral 1 "genitals" _n>> <<elseif $settings.analEnabled and random(0,1) is 0 and playerHasButtPlug()>> <span class="purple"><<He>> places <<his>> hand on your $worn.butt_plug.name.</span> <<neutral 1 _n>><<set $handtarget to "buttplug">> <<elseif $worn.under_lower.vagina_exposed is 1 and $worn.genitals.vagina_exposed is 1>> <<if $worn.lower.vagina_exposed is 1 and $worn.over_lower.vagina_exposed is 1>> <<if $player.vaginaExist and $vaginause is 0 and (!$player.penisExist or $penisuse isnot 0 or random(0,100) gte 50)>> <span class="purple"><<He>> presses <<his>> _args[0] hand against your <<pussy>>, resting a finger above your entrance.</span> <<set $handtarget to "vaginaentrance">><<set $vaginause to 1>><<neutral 1 "genitals" _n>> <<elseif $player.penisExist and $penisuse is 0>> <span class="purple"><<He>> presses <<his>> _args[0] hand against your <<penis>>.</span> <<set $handtarget to "penisentrance">><<set $penisuse to 1>><<neutral 1 "genitals" _n>> <</if>> <</if>> <</if>> <</if>> <<combat-set-hand-target _args[0] $handtarget>> <<bodypart_admire_chance pubic>> <</if>> <<elseif $enemyanger + $rng lte 45>> <<if $position is "wall" and $walltype isnot "front">> <<He>> leans against the wall. <<else>> <<He>> caresses your tummy. <<neutral 1 _n>> <<if playerBellyVisible()>><<set $speechpregnant to 1>><</if>> <</if>> <<bodypart_admire_chance back>> <<elseif $enemyanger + $rng lte 50>> <<if $position is "wall" and $walltype isnot "front">> <<He>> grips your thigh and pulls, but you're stuck firm. <<neutral 1 _n>> <<bodypart_admire_chance random_thigh>> <<else>> <<He>> <<strokes>> your hair. <<neutral 1 _n>> <<bodypart_admire_chance forehead>> <</if>> <<elseif $enemyanger + $rng lte 55>> <<if $position is "wall" and $walltype isnot "front">> <<He>> grips your thigh and pulls, but you're stuck firm. <<neutral 1 _n>> <<bodypart_admire_chance random_thigh>> <<elseif ($worn.face.type.includes("mask") or $worn.face.type.includes("gag")) and ($nomask isnot 1 or $enemyanger gte ($enemyangermax / 2))>> <span class="purple"><<He>> grasps your $worn.face.name with <<his>> _args[0] hand.</span> <<neutral 1 _n>><<combat-set-hand-target _args[0] "mask">> <<else>> <<He>> <<strokes>> your hair. <<neutral 1 _n>> <<bodypart_admire_chance forehead>> <</if>> <<elseif $enemyanger + $rng lte 60>> <<if $position is "wall" and $walltype isnot "front">> <<He>> tugs on your leg with <<his>> _args[0] hand, but you're stuck firm. <<neutral 1 _n>> <<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 Weather.BodyTemperature.state is "chilly" or Weather.BodyTemperature.state is "cold">> Your buds stand erect and vulnerable in the cold. <</if>> <<neutral 2 "breasts" _n>><<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 Weather.BodyTemperature.state is "chilly" or Weather.BodyTemperature.state is "cold">> Your buds stand erect and vulnerable in the cold. <</if>> <<neutral 2 "breasts" _n>><<playWithBreasts>> <<bodypart_admire_chance breasts>> <<else>> <<He>> gropes your exposed <<breasts>> with <<his>> _args[0] hand. <<if Weather.BodyTemperature.state is "chilly" or Weather.BodyTemperature.state is "cold">> Your buds stand erect and vulnerable in the cold. <</if>> <<neutral 4 "breasts" _n>><<playWithBreasts>> <<bodypart_admire_chance breasts>> <</if>> <<elseif $enemyanger + $rng lte 70 and $pronoun is "f" and $position isnot "wall" and not $gloryhole and $head is 0 and ($mouthuse is 0 or $mouthuse is "breasts") and ($NPCList[_n].chest is 0 or $NPCList[_n].chest is "clothed") and $NPCList[_n].location.genitals isnot "head" and $NPCList[_n].location.head isnot "genitals" and $NPCList[_n].stance isnot "topface">> <<if $NPCList[_n].chest is "clothed">> <span class="blue"><<He>> <<npcUndressText $NPCList[_n] "upper" "self">>,</span> and <span class="pink">pushes your face against <<his>> $NPCList[_n].breastsdesc</span> with <<his>> _args[0] hand. <<set $NPCList[_n].chest to 0>> <<else>> <<He>> cradles the back of your head in <<his>> _args[0] hand and <span class="pink">pushes your face against <<his>> $NPCList[_n].breastsdesc.</span> <</if>> <<if $NPCList[_n].type is "plant" and $settings.breastFeedingEnabled>> <span class="purple">It carries a sweet scent.</span> <<elseif $NPCList[_n].lactation is 1 and $settings.breastFeedingEnabled>> <span class="purple">It carries a scent of milk.</span> <</if>> <<combat-set-hand-target _args[0] "head_breasts">><<set $mouthuse to "breasts">><<set $mouthstate to "breasts">><<set $head to "breasts">> <<set $NPCList[_n].chest to "mouthentrance">><<set $speechheadbreasts to 1>><<neutral 3 _n>><<set $mouthactiondefault to "breastclosed">> <<set $NPCList[_n].location.head to "head">><<set $mouthtarget to _n>> <<bodypart_admire_chance forehead>> <<elseif $enemyanger + $rng lte 80>> <<if $walltype is "front">> <<He>> pushes your shoulder with <<his>> _args[0] hand, testing how stuck you are. <<neutral 2 _n>> <<else>> <<set $speechbottom to 1>> <<if $worn.over_lower.state is "waist" and setup.clothes.over_lower[clothesIndex('over_lower', $worn.over_lower)].skirt is 0>> <<if $worn.lower.state is "waist" and setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 0>> <<He>> tries to grope your <<bottom>> through your $worn.over_lower.name, but you're wearing too much to really feel it. <<neutral 1 _n>> <<else>> <<He>> gropes your <<bottom>> through your $worn.over_lower.name. <<neutral 5 _n>> <</if>> <<elseif $worn.lower.state is "waist" and setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 0>> <<He>> gropes your <<bottom>> through your $worn.lower.name. <<neutral 2 _n>> <<elseif $worn.under_lower.state is "waist">> <<He>> gropes your <<bottom>> through your $worn.under_lower.name. <<neutral 2 _n>> <<else>> <<He>> fondles and <<strokes>> your exposed <<bottom>>. <<neutral 4 _n>> <</if>> <<bodypart_admire_chance random_bottom>> <</if>> <<elseif $enemyanger + $rng lte 90 and $enemytype isnot "beast" and $NPCList[_n].type isnot "plant" and $NPCList[_n].fullDescription isnot "Ivory Wraith" and !$abomination and $role isnot "islander">> <<combat-set-hand-target _args[0] "lube">> <<if $NPCList[_n].penis is "vaginaentrance" and $player.bodyliquid.vaginaoutside.goo lt 5 and !playerChastity("vagina")>> <span class="purple"><<He>> holds a bottle of lubricant near your <<pussy>>.</span> <<elseif $NPCList[_n].penis is "anusentrance" and $player.bodyliquid.bottom.goo lt 5 and !playerChastity("anus")>> <span class="purple"><<He>> holds a bottle of lubricant near your <<bottom>>.</span> <<elseif $NPCList[_n].penis is "otheranusentrance" and $player.bodyliquid.penis.goo lt 5 and !playerChastity("penis")>> <span class="purple"><<He>> holds a bottle of lubricant near your <<penis>>.</span> <<elseif $NPCList[_n].vagina is "penisentrance" and $player.bodyliquid.penis.goo lt 5 and !playerChastity("penis")>> <span class="purple"><<He>> holds a bottle of lubricant near your <<penis>>.</span> <<elseif $NPCList[_n].vagina is "otheranusentrance" and $player.bodyliquid.penis.goo lt 5 and !playerChastity("penis")>> <span class="purple"><<He>> holds a bottle of lubricant near your <<penis>>.</span> <<else>> <<He>> smacks your hip. <<neutral 5 _n>> <<combat-reset-hand _args[0]>> <</if>> <<elseif $enemyanger + $rng lte 95>> <<if $worn.feet.cursed isnot 1 and $worn.feet.name isnot "naked">> <span class="purple"><<He>> grasps your $worn.feet.name.</span> <<combat-set-hand-target _args[0] "shoes">> <<neutral 3 _n>> <<else>> <<if $worn.legs.name is "naked">> <<He>> rubs your foot. <<neutral 1 _n>> <<else>> <span class="purple"><<He>> grasps your $worn.legs.name.</span> <<combat-set-hand-target _args[0] "socks">> <<neutral 3 _n>> <</if>> <</if>> <<elseif $enemyanger + $rng lte 100 and $walltype isnot "front">> <<if !(($player.penisExist and !playerChastity("penis")) or ($player.vaginaExist and !playerChastity("vagina")))>> <<if $worn.over_lower.state is "waist" and setup.clothes.over_lower[clothesIndex('over_lower', $worn.over_lower)].skirt is 0>> <<if $worn.lower.state is "waist" and setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 0>> <<He>> tries to fondle you around your $worn.genitals.name through your $worn.over_lower.name, but you're wearing too much to really feel it. <<neutral 1 _n>> <<else>> <<He>> fondles and <<strokes>> you around your $worn.genitals.name through your $worn.over_lower.name. <<neutral 5 "genitals" _n>> <</if>> <<elseif $worn.lower.state is "waist" and setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 0>> <<He>> fondles and <<strokes>> around your $worn.genitals.name through your $worn.lower.name. <<neutral 5 "genitals" _n>> <<elseif $worn.under_lower.state is "waist">> <<He>> fondles and <<strokes>> around your $worn.genitals.name through your $worn.under_lower.name. <<neutral 5 "genitals" _n>> <<elseif $penisuse is 0>> <<He>> fondles and <<strokes>> around your $worn.genitals.name. <<neutral 10 "genitals" _n>> <<else>> <<He>> <<strokes>> your thighs. <<neutral 10 "genitals" _n>> <</if>> <<bodypart_admire_chance random_thigh>> <<elseif $player.penisExist and (!$player.vaginaExist or random(0,100) gte 50) and !playerChastity("penis")>> <<if $worn.over_lower.state is "waist" and setup.clothes.over_lower[clothesIndex('over_lower', $worn.over_lower)].skirt is 0>> <<if $worn.lower.state is "waist" and setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 0>> <<He>> tries to grope your <<penis>> through your $worn.over_lower.name, but you're wearing too much to really feel it. <<neutral 1 _n>> <<else>> <<He>> gropes and <<strokes>> your <<penis>> through your $worn.over_lower.name. <<neutral 5 "genitals" _n>> <</if>> <<elseif $worn.lower.state is "waist" and setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 0>> <<He>> gropes and <<strokes>> your <<penis>> through your $worn.lower.name. <<neutral 5 "genitals" _n>> <<elseif $worn.under_lower.state is "waist">> <<He>> gropes and <<strokes>> your <<penis>> through your $worn.under_lower.name. <<neutral 5 "genitals" _n>> <<elseif $penisuse is 0>> <<He>> gropes and <<strokes>> your exposed <<penis>>. <<neutral 10 "genitals" _n>> <<elseif $player.ballsExist is true>> <<He>> cups and <<strokes>> your <<testicles>>. <<neutral 10 "genitals" _n>> <<else>> <<He>> runs a finger down your shaft, stopping and pressing against the point where your <<penis>> and <<pussy>> meet. <<neutral 10 "genitals" _n>> <</if>> <<bodypart_admire_chance pubic>> <<elseif $player.vaginaExist and !playerChastity("vagina")>> <<if $worn.over_lower.state is "waist" and setup.clothes.over_lower[clothesIndex('over_lower', $worn.over_lower)].skirt is 0>> <<if $worn.lower.state is "waist" and setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 0>> <<He>> tries to grope your labia through your $worn.over_lower.name, but you're wearing too much to really feel it. <<neutral 1 _n>> <<else>> <<He>> gropes and <<strokes>> your labia through your $worn.over_lower.name. <<neutral 5 "genitals" _n>> <</if>> <<elseif $worn.lower.state is "waist" and setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 0>> <<He>> gropes and <<strokes>> your labia through your $worn.lower.name. <<neutral 5 "genitals" _n>> <<elseif $worn.under_lower.state is "waist">> <<He>> gropes and <<strokes>> your labia through your $worn.under_lower.name. <<neutral 5 "genitals" _n>> <<else>> <<He>> gropes and <<strokes>> your exposed <<pussy>>. <<neutral 10 "genitals" _n>> <</if>> <<bodypart_admire_chance pubic>> <</if>> <<elseif $enemyanger + $rng lte 110 and $walltype isnot "front">> <<if $worn.over_lower.name isnot "naked" and !$worn.over_lower.cursed>> <span class="purple"><<He>> grasps your $worn.over_lower.name with <<his>> _args[0] hand.</span> <<combat-set-hand-target _args[0] "overlowerclothes">><<neutral 1 "genitals" _n>> <<elseif $worn.lower.name isnot "naked" and !$worn.lower.cursed>> <span class="purple"><<He>> grasps your $worn.lower.name with <<his>> _args[0] hand.</span> <<combat-set-hand-target _args[0] "lowerclothes">><<neutral 1 "genitals" _n>> <<elseif playerHasStrapon()>> <<He>> smacks your hip. <<neutral 15 _n>> <<elseif $player.penisExist>> /*$penis use need to be checked inside of $player.penisExist check to prevent mention of the clitoris*/ <<if $penisuse is 0>> <<He>> pinches your glans. <<neutral 15 "genitals" _n>><<bruise penis>><<set $speechglans to 1>> <<else>> <<He>> pinches your shaft. <<neutral 10 "genitals" _n>><<bruise penis>> <</if>> <<elseif $player.vaginaExist and !playerChastity("vagina")>> <<He>> pinches your clitoris. <<neutral 15 "genitals" _n>><<bruise vagina>><<set $speechclit to 1>> <</if>> <<bodypart_admire_chance pubic>> <<elseif $enemyanger + $rng lte 120>> <<if $position is "wall" and $walltype isnot "front">> <<He>> squeezes your thigh. <<violence 1>><<hitstat>><<bruise thigh>> <<bodypart_admire_chance random_thigh>> <<else>> <<combat-get-other-hand _args[0]>> <<if $worn.over_upper.name isnot "naked" and $noupper isnot 1 and !$worn.over_upper.cursed>> <span class="purple"><<He>> grasps your $worn.over_upper.name with <<his>> _args[0] hand.</span> <<combat-set-hand-target _args[0] "overupperclothes">><<neutral 1 _n>> <<elseif $worn.upper.name isnot "naked" and $noupper isnot 1 and !$worn.upper.cursed>> <span class="purple"><<He>> grasps your $worn.upper.name with <<his>> _args[0] hand.</span> <<combat-set-hand-target _args[0] "upperclothes">><<neutral 1 _n>> <<elseif $settings.asphyxiaLevel gte 1 and $nochoke isnot 1 and ($neckuse isnot "hand" or $otherNPChand is "throat")>> <<if $worn.neck.name is "familiar collar" and $worn.neck.cursed is 1 and $NPCList[_n].fullDescription isnot "Gwylan">> <<set $nochoke to 1>> <span class="purple"><<He>> grabs your throat,</span> <span class="green">but immediately recoils as the golden heart on your collar shocks <<him>>.</span> <<defiance 2 _n>><<combat-reset-hand _args[0]>> <<else>> <span class="purple"><<He>> grabs your throat.</span> <<violence 2>><<combat-set-hand-target _args[0] "throat">><<set $neckuse to "hand">> <</if>> <<else>> <<He>> tugs your hair. <<violence 1>> <</if>> <<bodypart_admire_chance random_shoulder>> <</if>> <<elseif $enemyanger + $rng lte 125 and $walltype isnot "front">> <<if _skirtExposed>> <<if $worn.under_lower.name isnot "naked" and $worn.under_lower.state isnot "totheside">> <span class="purple"><<He>> grasps your $worn.under_lower.name with <<his>> _args[0] hand.</span> <<combat-set-hand-target _args[0] "underlowerclothes">><<neutral 1 "genitals" _n>> <<elseif $settings.analEnabled and random(0,1) is 0 and playerHasButtPlug()>> <span class="purple"><<He>> places <<his>> hand on your $worn.butt_plug.name.</span> <<neutral 1 _n>><<set $handtarget to "buttplug">> <<elseif $worn.genitals.name isnot "naked">> <span class="purple"><<He>> grasps your $worn.genitals.name with <<his>> _args[0] hand.</span> <<combat-set-hand-target _args[0] "genitals">><<neutral 1 "genitals" _n>> <<elseif $worn.under_lower.anus_exposed is 1 and $worn.genitals.anus_exposed is 1>> <<if $worn.lower.anus_exposed is 1 and $worn.over_lower.anus_exposed is 1>> <<if $anususe is 0 and $settings.analEnabled>> <span class="purple"><<He>> presses <<his>> _args[0] hand against your <<bottom>>.</span> <<combat-set-hand-target _args[0] "anusentrance">><<set $anususe to "hand">><<set $anusstate to "handentrance">><<neutral 1 _n>> <</if>> <</if>> <</if>> <<bodypart_admire_chance back>> <!-- note: the sections above and below are identical other than the bodypart_admire_chance back --> <<elseif $worn.lower.state isnot "waist">> <<if $worn.under_lower.name isnot "naked" and $worn.under_lower.state isnot "totheside">> <span class="purple"><<He>> grasps your $worn.under_lower.name with <<his>> _args[0] hand.</span> <<combat-set-hand-target _args[0] "underlowerclothes">><<neutral 1 "genitals" _n>> <<elseif $settings.analEnabled and random(0,1) is 0 and playerHasButtPlug()>> <span class="purple"><<He>> places <<his>> hand on your $worn.butt_plug.name.</span> <<neutral 1 _n>><<set $handtarget to "buttplug">> <<elseif $worn.genitals.name isnot "naked">> <span class="purple"><<He>> grasps your $worn.genitals.name with <<his>> _args[0] hand.</span> <<combat-set-hand-target _args[0] "genitals">><<neutral 1 "genitals" _n>> <<elseif $worn.under_lower.anus_exposed is 1 and $worn.genitals.anus_exposed is 1>> <<if $worn.lower.anus_exposed is 1 and $worn.over_lower.anus_exposed is 1>> <<if $anususe is 0 and $settings.analEnabled>> <span class="purple"><<He>> presses <<his>> _args[0] hand against your <<bottom>>.</span> <<combat-set-hand-target _args[0] "anusentrance">><<set $anususe to "hand">><<set $anusstate to "handentrance">><<neutral 1 _n>> <</if>> <</if>> <</if>> <</if>> <<bodypart_admire_chance random_bottom>> <<elseif $enemyanger + $rng lte 130 and $walltype isnot "front">> <<if _skirtExposed>> <<if $worn.under_lower.name isnot "naked" and $worn.under_lower.state isnot "totheside">> <span class="purple"><<He>> grasps your $worn.under_lower.name with <<his>> _args[0] hand.</span> <<combat-set-hand-target _args[0] "underlowerclothes">><<neutral 1 "genitals" _n>> <<elseif $settings.analEnabled and random(0,1) is 0 and playerHasButtPlug()>> <span class="purple"><<He>> places <<his>> hand on your $worn.butt_plug.name.</span> <<neutral 1 _n>><<set $handtarget to "buttplug">> <<elseif $worn.genitals.name isnot "naked">> <span class="purple"><<He>> grasps your $worn.genitals.name with <<his>> _args[0] hand.</span> <<combat-set-hand-target _args[0] "genitals">><<neutral 1 "genitals" _n>> <<elseif $worn.under_lower.vagina_exposed is 1 and $worn.genitals.vagina_exposed is 1>> <<if $worn.lower.vagina_exposed is 1 and $worn.over_lower.vagina_exposed is 1>> <<if $player.vaginaExist and $vaginause is 0 and (!$player.penisExist or $penisuse isnot 0 or random(0,100) gte 50)>> <span class="purple"><<He>> presses <<his>> _args[0] hand against your <<pussy>>, <<his>> finger resting on your entrance.</span> <<combat-set-hand-target _args[0] "vaginaentrance">><<set $vaginause to 1>><<set $vaginastate to "otherhandentrance">><<neutral 1 "genitals" _n>> <<elseif $player.penisExist and $penisuse is 0>> <span class="purple"><<He>> presses <<his>> _args[0] hand against your <<penis>>.</span> <<combat-set-hand-target _args[0] "penisentrance">><<set $penisuse to 1>><<set $penisstate to "otherhandentrance">><<neutral 1 "genitals" _n>> <</if>> <</if>> <</if>> <<bodypart_admire_chance pubic>> <<elseif $worn.lower.state isnot "waist">> <<if $worn.under_lower.name isnot "naked" and $worn.under_lower.state isnot "totheside">> <span class="purple"><<He>> grasps your $worn.under_lower.name with <<his>> _args[0] hand.</span> <<combat-set-hand-target _args[0] "underlowerclothes">><<neutral 1 "genitals" _n>> <<elseif $settings.analEnabled and random(0,1) is 0 and playerHasButtPlug()>> <span class="purple"><<He>> places <<his>> hand on your $worn.butt_plug.name.</span> <<neutral 1 _n>><<set $handtarget to "buttplug">> <<elseif $worn.genitals.name isnot "naked">> <span class="purple"><<He>> grasps your $worn.genitals.name with <<his>> _args[0] hand.</span> <<combat-set-hand-target _args[0] "genitals">><<neutral 1 "genitals" _n>> <<elseif $worn.under_lower.vagina_exposed is 1 and $worn.genitals.vagina_exposed is 1>> <<if $worn.lower.vagina_exposed is 1 and $worn.over_lower.vagina_exposed is 1>> <<if $player.vaginaExist and $vaginause is 0 and (!$player.penisExist or $penisuse isnot 0 or random(0,100) gte 50)>> <span class="purple"><<He>> presses <<his>> _args[0] hand against your <<pussy>>, <<his>> finger resting on your entrance.</span> <<combat-set-hand-target _args[0] "vaginaentrance">><<set $vaginause to 1>><<neutral 1 "genitals" _n>> <<elseif $player.penisExist and $penisuse is 0>> <span class="purple"><<He>> presses <<his>> _args[0] hand against your <<penis>>.</span> <<combat-set-hand-target _args[0] "penisentrance">><<set $penisuse to 1>><<neutral 1 "genitals" _n>> <</if>> <</if>> <</if>> <</if>> <<bodypart_admire_chance pubic>> <<elseif $enemyanger + $rng lte 140>> <<if $position is "wall" and $walltype isnot "front">> <<He>> slaps your <<bottom>>. <<violence 1>><<bruise bottom>><<hitstat>> <<bodypart_admire_chance random_bottom>> <<else>> <span class="purple"><<He>> seizes your hair with <<his>> _args[0] hand.</span> <<combat-set-hand-target _args[0] "hair">><<violence 2>><<set $speechhair to 1>> <<bodypart_admire_chance forehead>> <</if>> <<elseif $enemyanger + $rng lte 160>> <<if $settings.asphyxiaLevel gte 4 and $nochoke isnot 1 and ($neckuse isnot "hand" or $otherNPChand is "throat") and random(1,2) is 1>> <<if $worn.neck.name is "familiar collar" and $worn.neck.cursed is 1 and $NPCList[_n].fullDescription isnot "Gwylan">> <<set $nochoke to 1>> <span class="purple"><<He>> grabs your throat,</span> <span class="green">but immediately recoils as the golden heart on your collar shocks <<him>>.</span> <<defiance 2 _n>><<combat-reset-hand _args[0]>> <<else>> <span class="purple"><<He>> grabs your throat.</span> <<violence 2>><<combat-set-hand-target _args[0] "throat">><<set $neckuse to "hand">> <</if>> <<elseif $leftarm isnot "bound" and $rightarm isnot "bound" and $leftarm isnot "grappled" and $rightarm isnot "grappled" and $NPCList[_n].lefthand isnot "arms" and $NPCList[_n].righthand isnot "arms">> <span class="purple"><<He>> pins down your arms.</span> <<combat-set-hand-target _args[0] "arms">><<disablearms>><<set $leftarm to "grappled">><<set $rightarm to "grappled">><<set $lefttarget to _n>><<set $righttarget to _n>><<violence 2>><<bruise leftarm>><<bruise rightarm>><<set $speecharms to 1>> <<if $vaginause is "cover">> <<set $vaginause to 0>> <</if>> <<if $anususe is "cover">> <<set $anususe to 0>> <</if>> <<if $penisuse is "cover">> <<set $penisuse to 0>> <</if>> <<bodypart_admire_chance random_shoulder>> <<else>> <<if $walltype is "front">> <<He>> slaps your face. <<violence 10>><<bruise face>><<hitstat>><<set $speechbeat to 1>> <<bodypart_admire_chance random_cheek>> <<else>> <<He>> slaps your <<bottom>>. <<violence 10>><<bruise bottom>><<hitstat>><<set $speechspank to 1>> <<bodypart_admire_chance random_bottom>> <</if>> <</if>> <<elseif $enemyanger + $rng lte 175>> <<if $walltype is "front">> <<He>> digs <<his>> nails into your <<breasts>> while groping, giving no heed to your comfort. <<violence 10>><<bruise chest>><<hitstat>><<set $speechbeat to 1>> <<bodypart_admire_chance back>> <<else>> <<He>> digs <<his>> nails into your <<bottom>> while groping, giving no heed to your comfort. <<violence 10>><<bruise bottom>><<hitstat>><<set $speechspank to 1>> <<bodypart_admire_chance back>> <</if>> <<elseif $enemyanger + $rng lte 180>> <<if $walltype is "front">> <<He>> smacks your <<breasts>>. <<violence 10>><<bruise chest>><<hitstat>><<set $speechbeat to 1>> <<bodypart_admire_chance back>> <<else>> <<He>> smacks your thighs. <<violence 10>><<bruise thigh>><<hitstat>><<set $speechbeat to 1>> <<bodypart_admire_chance random_thigh>> <</if>> <<elseif $enemyanger + $rng lte 185 and !(playerBellySize(true) gte 8)>> <<if $position is "wall" and $walltype isnot "front">> <<He>> beats your thigh. <<bruise thigh>><<hitstat>><<violence 10>><<set $speechbeat to 1>> <<bodypart_admire_chance random_thigh>> <<else>> <<He>> punches your tummy. <<violence 20>><<bruise tummy>><<hitstat>><<set $speechbeat to 1>> <<bodypart_admire_chance back>> <</if>> <<elseif $enemyanger + $rng lte 190>> <<if $position is "wall" and $walltype isnot "front">> <<He>> spanks your <<bottom>>. <<violence 20>><<bruise bottom>><<hitstat>><<set $speechbeat to 1>> <<bodypart_admire_chance random_bottom>> <<else>> <<He>> slaps your <<breasts>>. <<violence 20>><<bruise chest>><<hitstat>><<set $speechbeat to 1>><<playWithBreasts>> <<bodypart_admire_chance breasts>> <</if>> <<elseif $enemyanger + $rng lte 195>> <<if $walltype is "front">> <<He>> spits on your face. <<neutral 5 _n>> <<else>> <<if $NPCList[_n].clothes and $NPCList[_n].clothes.set>> <<set $_clothesSet to $NPCList[_n].clothes.set>> <</if>> <<if $worn.feet.cursed is 1>> <<He>> tests the restraints binding your legs. <<neutral 5 _n>> <<elseif $worn.feet.name isnot "naked">> <span class="purple"><<He>> grasps your $worn.feet.name.</span> <<combat-set-hand-target _args[0] "shoes">> <<neutral 3 _n>> <<elseif $enemytype is "man" and $NPCList[_n].fullDescription isnot "Ivory Wraith" and !$abomination and !$possessed and !$robinmist and $role isnot "islander" and !["maleSchoolSwim", "maleSchoolSwimShirt", "femaleSchoolSwim", "maleSwim1", "maleSwim2", "femaleSwim1", "femaleSwim2", "neutralSwim"].includes($_clothesSet)>> <span class="pink"><<He>> produces a pair of menacing metal shackles.</span> <<combat-set-hand-target _args[0] "shackle_entrance">> <<neutral 4 _n>> <<else>> <<He>> looks at your feet. <</if>> <</if>> <<elseif $enemyanger + $rng gte 196>> <<if _args[0] is "left">> <<if $position is "wall" and $walltype isnot "front">> <<if $player.penisExist>> <<He>> scratches your helpless <<bottom>>. <<violence 20>><<bruise bottom>><<hitstat>><<set $speechbeat to 1>> <<elseif $player.vaginaExist>> <<He>> scratches your helpless <<bottom>>. <<violence 20>><<bruise bottom>><<hitstat>><<set $speechbeat to 1>> <</if>> <<bodypart_admire_chance random_bottom>> <<else>> <<rng>> <<if $rng gte 81>> <<He>> punches your nose. <<violence 20>><<bruise face>><<hitstat>><<set $speechbeat to 1>> <<bodypart_admire_chance forehead>> <<elseif $rng gte 61>> <<He>> punches the back of your neck. <<violence 20>><<bruise neck>><<hitstat>><<set $speechbeat to 1>> <<bodypart_admire_chance back>> <<elseif $rng gte 41>> <<He>> punches your cheek. <<violence 20>><<bruise face>><<hitstat>><<set $speechbeat to 1>> <<bodypart_admire_chance random_cheek>> <<elseif $rng gte 21>> <<He>> punches your jaw. <<violence 20>><<bruise face>><<hitstat>><<set $speechbeat to 1>> <<bodypart_admire_chance breasts>> <<else>> <<He>> jabs the front of your neck. <<violence 20>><<bruise neck>><<hitstat>><<set $speechbeat to 1>> <<bodypart_admire_chance random_shoulder>> <</if>> <</if>> <<else>> <<if $position is "wall" and $walltype isnot "front">> <<if $player.penisExist and (!$player.vaginaExist or random(0,100) gte 50)>> <<He>> jabs your gooch. <<violence 20>><<bruise penis>><<hitstat>><<set $speechbeat to 1>> <<elseif $player.vaginaExist>> <<He>> jabs your gooch. <<violence 20>><<bruise vagina>><<hitstat>><<set $speechbeat to 1>> <</if>> <<bodypart_admire_chance pubic>> <<else>> <<rng>> <<if $rng gte 81>> <<He>> scratches the side of your face. <<violence 20>><<bruise face>><<hitstat>><<set $speechbeat to 1>> <<bodypart_admire_chance random_cheek>> <<elseif $rng gte 61>> <<He>> scratches the back of your neck. <<violence 20>><<bruise neck>><<hitstat>><<set $speechbeat to 1>> <<bodypart_admire_chance back>> <<elseif $rng gte 41>> <<He>> scratches your cheek. <<violence 20>><<bruise face>><<hitstat>><<set $speechbeat to 1>> <<bodypart_admire_chance random_cheek>> <<elseif $rng gte 21>> <<He>> scratches your jaw. <<violence 20>><<bruise face>><<hitstat>><<set $speechbeat to 1>> <<bodypart_admire_chance random_shoulder>> <<else>> <<He>> scratches the front of your neck. <<violence 20>><<bruise neck>><<hitstat>><<set $speechbeat to 1>> <<bodypart_admire_chance back>> <</if>> <</if>> <</if>> <</if>> <</widget>> <<widget "man-combat">> <<outfitChecks>> <<set _n to _args[0]>> <!-- Converted his1-6 to hisselect #. Person1-6 to personselect #. $intro1-6 as array $NPCList[_n].intro --> <!-- Converted man1-6speech to manspeech #. Randomised penissize reaction.--> <<if ["m", "f", "i", "n", "t"].includes($NPCList[_n].pronoun)>> <<set $pronoun to $NPCList[_n].pronoun>> <<elseif $options.debugdisable is "f">> <span class="red">ERROR: Unexpected $$NPCList[_n].pronoun: [$NPCList[_n].pronoun]</span> <</if>> <<personselect _n>> <<switch _n>> <<case 0>> <<manspeech _n>> <<if $NPCList[0].intro isnot -1>> <<set $NPCList[0].intro to 1>> <</if>> <<case 1 2 3 4 5>> <<manspeech _n>><<if $NPCList[_n].intro isnot -1>><<set $NPCList[_n].intro to 1>><</if>> <</switch>> <<if $NPCList[_n].state is "stalk">> <<man-stalk>> <<elseif $NPCList[_n].state is "pursuit">> <<man-pursuit>> <<elseif $NPCList[_n].state is "chased">> <<man-chased>> <<else>> <!-- HAND SECTION --> <<hand_section>> <!-- PENIS START --> <<rng>> <<if $NPCList[_n].penis is "clothed" and $npcSub isnot 1>> <<if $enemyarousal gte 40>> <span class="blue"><<He>> <<npcUndressText $NPCList[_n] "lower" "self">>, <<npcRevealText $NPCList[_n] "lower">>.</span> <<npcGenitalReaction $NPCList[_n]>> <<set $NPCList[_n].penis to 0>> <<if $NPCList[_n].vagina isnot "none">> <<set $NPCList[_n].vagina to 0>> <</if>> <</if>> <<if $NPCList[_n].fullDescription is "Sydney">> <<sydneyExpose>> <</if>> <</if>> <<if $NPCList[_n].penis is "strap-on">> <<He>> buckles <span class="blue"><<his>> $NPCList[_n].strapon.description around <<his>> hips.</span> <<set $NPCList[_n].penis to 0>> <</if>> <<rng>> <<if $NPCList[_n].penis is "thighs">> <<set $speechthigh to 1>> <<if $player.vaginaExist>> <<if $rng gte 101>> <<if $NPCList[_n].condom and $NPCList[_n].condom.willUse is true and $NPCList[_n].condom.worn is false and !$NPCList[_n].penisdesc.includes("strap-on")>> <<if $NPCList[_n].chastity.penis.includes("chastity")>> <<He>> tries to put a condom on, but can't seem to get it over <<his>> $NPCList[_n].chastity.penis. <span class="red"><<He>> quickly gives up.</span> <<set $NPCList[_n].condom.willUse to false>> <<else>> <span class="green"><<He>> slips <<condomDesc _n>> on <<his>> penis.</span> <<equipNPCCondom _n>> <</if>> <</if>> <span class="blue"><<He>> angles <<his>> $NPCList[_n].penisdesc towards your <<pussy>>.</span> <<if $NPCList[_n].type is "plant" and $NPCList[_n].penissize gte 4 and canImpregnateParasite("vagina")>> <span class="red">Something about it scares you.</span> <</if>> <<set $thighuse to 0>><<set $NPCList[_n].penis to "vaginaentrance">><<set $vaginause to "penis">><<set $vaginastate to "entrance">><<set $vaginatarget to _n>><<set $speechvaginaentrance to 1>> <<else>> <<if $npcSub>>You rub<<else>><<He>> rubs<</if>> <<his>> $NPCList[_n].penisdesc between your thighs and <<pussy>>. <<sex 5 "genital" _n>> <</if>> <<else>> <<if $rng gte 101>> <<He>> moves <<his>> <<= npcHasStrapon(_n) ? "strap-on" : "penis">> out from between your thighs. <<set $thighuse to 0>><<set $NPCList[_n].penis to 0>> <<else>> <<if $npcSub>>You rub<<else>><<He>> rubs<</if>> <<his>> $NPCList[_n].penisdesc between your thighs. <<sex 5 "genital" _n>> <</if>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].penis is "cheeks">> <<set $speechcheeks to 1>> <<if $rng gte 101>> <<if $NPCList[_n].condom and $NPCList[_n].condom.willUse is true and $NPCList[_n].condom.worn is false and !$NPCList[_n].penisdesc.includes("strap-on")>> <<if $NPCList[_n].chastity.penis.includes("chastity")>> <<He>> tries to put a condom on, but can't seem to get it over <<his>> $NPCList[_n].chastity.penis. <span class="red"><<He>> quickly gives up.</span> <<set $NPCList[_n].condom.willUse to false>> <<else>> <span class="green"><<He>> slips <<condomDesc _n>> on <<his>> penis.</span> <<equipNPCCondom _n>> <</if>> <</if>> <span class="blue"><<He>> angles <<his>> $NPCList[_n].penisdesc towards your anus.</span> <<if $NPCList[_n].type is "plant" and $NPCList[_n].penissize gte 4 and canImpregnateParasite("anus")>> <span class="red">Something about it scares you.</span> <</if>> <<set $NPCList[_n].penis to "anusentrance">><<set $anusstate to "entrance">><<set $anustarget to _n>><<set $bottomuse to 0>><<set $cheekactiondefault to "cheeks">><<set $speechanusentrance to 1>> <<else>> <<if $npcSub>>You rub<<else>><<He>> rubs<</if>> <<his>> $NPCList[_n].penisdesc between your cheeks. <<submission 3 _n>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].penis is "leftarm">> <<set $speechhandjobpenis to 1>> <<if $rng gte 1>> <<if $npcSub>>You rub<<else>><<He>> rubs<</if>> <<his>> $NPCList[_n].penisdesc between your fingers. <<submission 1 _n>> <<elseif $rng gte 101>> <<He>> moves <<his>> <<= npcHasStrapon(_n) ? "strap-on" : "penis">> away from your hand. <<set $NPCList[_n].penis to 0>><<set $leftarm to 0>><<set $leftactiondefault to "leftgrab">> <</if>> <</if>> <<rng>> <<if $NPCList[_n].penis is "rightarm">> <<set $speechhandjobpenis to 1>> <<if $rng gte 1>> <<if $npcSub>>You rub<<else>><<He>> rubs<</if>> <<his>> $NPCList[_n].penisdesc between your fingers. <<submission 1 _n>> <<elseif $rng gte 101>> <<He>> moves <<his>> <<= npcHasStrapon(_n) ? "strap-on" : "penis">> away from your hand. <<set $NPCList[_n].penis to 0>><<set $rightarm to 0>><<set $rightactiondefault to "rightgrab">> <</if>> <</if>> <<rng>> <<if $NPCList[_n].penis is "botharm">> <<set $speechhandjobpenis to 1>> <<if $rng gte 1>> <<if $npcSub>>You rub<<else>><<He>> rubs<</if>> <<his>> $NPCList[_n].penisdesc between your hands. <<submission 2 _n>> <<elseif $rng gte 101>> <<He>> moves <<his>> <<= npcHasStrapon(_n) ? "strap-on" : "penis">> away from your hands. <<set $NPCList[_n].penis to 0>><<set $leftarm to 0>><<set $rightarm to 0>><<set $rightactiondefault to "rightgrab">><<set $leftactiondefault to "leftgrab">> <</if>> <</if>> <<rng>> <<if $NPCList[_n].penis is "feet">> <<set $speechfeet to 1>> <<if $rng gte 1>> <<if $enemyarousal gte (($enemyarousalmax / 10) * 8)>> <<if $npcSub>>You quicken your pace, rubbing <<his>> $NPCList[_n].penisdesc<<else>><<He>> fucks your feet<</if>> with increasing force as <<he>> approaches <<his>> peak. <<submission 1 _n>> <<elseif $enemyarousal gte (($enemyarousalmax / 10) * 4)>> <<if $npcSub>>You rub and knead<<else>><<He>> pounds<</if>> <<his>> $NPCList[_n].penisdesc between your feet. <<submission 1 _n>> <<else>> <<if $npcSub>>You rub<<else>><<He>> rubs<</if>> <<his>> $NPCList[_n].penisdesc between your feet. <<submission 1 _n>> <</if>> <<elseif $rng gte 101>> <<He>> moves <<his>> <<= npcHasStrapon(_n) ? "strap-on" : "penis">> away from your feet. <<set $NPCList[_n].penis to 0>><<set $feetuse to 0>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].penis is "vagina">> <<if $rng gte 101>> <span class="purple"><<He>> slides <<his>> $NPCList[_n].penisdesc out of your <<pussy>>.</span> <<sex 30 "genital" _n>><<set $NPCList[_n].penis to "vaginaimminent">><<bruise vagina>><<violence 1>><<set $vaginastate to "imminent">> <<elseif $rng gte 1>> <<set _pain to Math.floor($vaginalPain * (1.5 / (5 - ($NPCList[_n].penissize or 1))))>> <<if $enemyanger gte 100>><<set _pain *= 1.5>> <<if $enemyarousal gte (($enemyarousalmax / 5) * 4)>> <<He>> violates your <<pussy>> with increasing intensity. <<elseif $enemyarousal gte (($enemyarousalmax / 5) * 2)>> <<He>> continues to fuck your <<pussy>> with no regard for your comfort. <<else>> <<He>> fucks your <<pussy>> with rough thrusts, giving no regard to your comfort. <</if>> <<elseif $enemyanger gte 20>> <<if $enemyarousal gte (($enemyarousalmax / 5) * 4)>> <<if npcHasStrapon(_n)>> <<He>> ruthlessly pounds your <<pussy>> with <<his>> $NPCList[_n].penisdesc. <<else>> You feel <<his>> $NPCList[_n].penisdesc throb as <<he>> pounds away at your <<pussy>>. <</if>> <<elseif $enemyarousal gte (($enemyarousalmax / 5) * 2)>> <<He>> continues to violate your <<pussy>>. <<else>> <<He>> fucks your <<pussy>> with deep and deliberate thrusts. <</if>> <<else>> <<if $enemyarousal gte (($enemyarousalmax / 5) * 4)>> <<if $npcSub>>You feel <<him>> approaching <<his>> peak and ride <<him>><<else>><<He>> fucks your <<pussy>><</if>> with increasing power. <<elseif $enemyarousal gte (($enemyarousalmax / 5) * 2)>> <<if $npcSub>>You continue to ride <<his>> $NPCList[_n].penisdesc.<<else>><<He>> continues thrusting into your <<pussy>>.<</if>> <<else>> <<if $npcSub>>You fuck <<his>> $NPCList[_n].penisdesc<<else>><<He>> fucks your <<pussy>><</if>> with steady thrusts. <</if>> <</if>> <<sex 30 "genital" _n>><<bruise vagina>><<violence 1>><<set $speechvaginapenetrated to 1>><<pain _pain>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].penis is "vaginaimminent">> <<if $rng gte 101>> <span class="blue"><<He>> stops pressing <<his>> $NPCList[_n].penisdesc against your pussy.</span> <<set $NPCList[_n].penis to "vaginaentrance">><<set $vaginastate to "entrance">> <<elseif $rng gte 1>> <<if $novaginal is 0>> <<set _pain to Math.floor($vaginalPain * (1.5 / (5 - ($NPCList[_n].penissize or 1))))>> <<if $player.virginity.vaginal isnot true>> <<if $enemyanger gte 80>> <span class="pink"><<He>> thrusts <<his>> $NPCList[_n].penisdesc deep into your <<pussy>>.</span> <<set _pain *= 1.5>> <<elseif $enemyanger gte 20>> <span class="pink"><<He>> thrusts <<his>> $NPCList[_n].penisdesc deep into your <<pussy>>.</span> <<else>> <span class="pink"><<He>> glides <<his>> $NPCList[_n].penisdesc deep into your <<pussy>>.</span> <</if>> <<switch $NPCList[_n].penissize>> <<case 4>> <span class="red"> You whimper as your <<pussy>> stretches to accommodate <<his>> cock.</span> <<default>> <</switch>> <<sex 30 "genital" _n>><<takeTempleVirginity $NPCList[_n].fullDescription "vaginal">><<violence 1>><<set $speechvaginapenetrated to 1>> <<pain _pain>> <<elseif $player.virginity.vaginal is true>> <<if $sexStats.vagina.pregnancy.totalBirthEvents gt 0>> <span class="red">Despite your lack of a hymen, you feel something inside you change as your virginity and purity are taken.</span> <<violence 10>> <<else>> <<switch $NPCList[_n].penissize>> <<case 4>> <span class="red"><<His>> $NPCList[_n].penisdesc thrusts deep into your virgin pussy, obliterating your hymen and <<virginitylosttext $NPCList[_n].fullDescription>> You scream out as your <<pussy>> struggles to accommodate <<his>> cock.</span> <<violence 200>> <<case 1>> <span class="red"><<His>> $NPCList[_n].penisdesc pushes into your virgin pussy, breaking your hymen and <<virginitylosttext $NPCList[_n].fullDescription>></span> <span class="green"> While technically no longer a virgin, you can barely feel it.</span> <<violence 25 4 4>> <<default>> <span class="pink"><<His>> $NPCList[_n].penisdesc thrusts deep into your virgin pussy,</span><span class="red"> tearing your hymen and <<virginitylosttext $NPCList[_n].fullDescription>></span> <<violence 100>> <</switch>> <</if>> <<sex 100 "genital" _n>><<takeVirginity $NPCList[_n].fullDescription "vaginal">><<set $speechvaginavirgin to 1>> <<if $enemyanger gte 100>><<set _pain *= 1.5>><</if>><<pain _pain>> <</if>> <<vaginalstat>><<set $NPCList[_n].penis to "vagina">><<takeNPCVirginity _n "penile">><<bruise vagina>><<raped>><<vaginaraped>><<set $vaginastate to "penetrated">> <<else>> Respecting your wishes, <<he>> presses <<his>> $NPCList[_n].penisdesc against your <<pussy>> but does not penetrate. <<sex 15 "genital" _n>><<set $speechvaginawithhold to 1>> <</if>> <<if setup.bodyliquid.combined("vagina") gte 1 or setup.bodyliquid.combined("vaginaoutside") gte 1>> Fluid oozes from your <<pussy>>, over <<his>> length. <</if>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].penis is "vaginaentrance">> <<if $rng gte 101>> <span class="lblue"><<He>> moves <<his>> <<= npcHasStrapon(_n) ? "strap-on" : "penis">> away from your <<pussy>>.</span> <<set $NPCList[_n].penis to 0>><<set $vaginause to 0>><<set $vaginastate to 0>> <<elseif $rng gte 1>> <<if $worn.over_lower.vagina_exposed is 0>> <<if $npcSub>>You rub<<else>><<He>> rubs<</if>> <<his>> $NPCList[_n].penisdesc against your <<pussy>> through your $worn.over_lower.name. <<sex 5 "genital" _n>><<set $worn.over_lower.integrity -= 10>><<set $speechvaginaentrance to 1>> <<elseif $worn.lower.vagina_exposed is 0>> <<if $npcSub>>You rub<<else>><<He>> rubs<</if>> <<his>> $NPCList[_n].penisdesc against your <<pussy>> through your $worn.lower.name. <<sex 5 "genital" _n>><<set $worn.lower.integrity -= 10>><<set $speechvaginaentrance to 1>> <<elseif $worn.lower.vagina_exposed is 1 and $worn.over_lower.vagina_exposed is 1>> <<rng>> <<if $worn.under_lower.vagina_exposed is 0>> <<if $npcSub>>You rub<<else>><<He>> rubs<</if>> <<his>> $NPCList[_n].penisdesc against your <<pussy>> through your $worn.under_lower.name. <<sex 5 "genital" _n>><<set $worn.under_lower.integrity -= 10>><<set $speechvaginaentrance to 1>> <<elseif $worn.under_lower.vagina_exposed is 1>> <<if $rng gte 51>> <<if $NPCList[_n].chastity.penis.includes("chastity")>> <<if $npcSub>>You rub<<else>><<He>> rubs<</if>> <<his>> $NPCList[_n].chastity.penis against your <<pussy>><<if playerChastity("vagina")>><<set $worn.genitals.integrity -= 10>> through your $worn.genitals.name<</if>>. <<sex 25 "genital" _n>><<set $speechNPCChastity to 1>> <<elseif playerChastity("vagina")>> <<if $npcSub>>You rub<<else>><<He>> rubs<</if>> <<his>> $NPCList[_n].penisdesc against your <<pussy>> through your $worn.genitals.name. <<sex 25 "genital" _n>><<set $worn.genitals.integrity -= 10>><<set $speechchastity to 1>> <<elseif !$npcSub>> <<if $vaginaWetness gte ($NPCList[_n].penissize * 15) + random(1, 40) or random(1, 2) is 2>> <<He>> pushes <<his>> $NPCList[_n].penisdesc against your <<pussy>>. <<vagina_lube_text>><span class="pink">the tip presses into you, a thrust away from penetrating.</span> <<sex 20 "genital" _n>><<set $NPCList[_n].penis to "vaginaimminent">><<set $vaginastate to "imminent">><<set $speechvaginaimminent to 1>> <<else>> <<if $npcSub>>You push<<else>><<He>> pushes<</if>> <<his>> $NPCList[_n].penisdesc against your <<pussy>>, <span class="blue">but fail<<if !$npcSub>>s<</if>> to penetrate,</span> instead angling away and rubbing it against your <<clit>>. <<sex 5 "genital" _n>><<set $speechvaginaimminent to 1>> <<if $enemyarousal gte ($enemyarousalmax / 2) and random(1, 3) is 3 and !npcHasStrapon(_n) and !wearingCondom(_n)>> Precum leaks from the tip, <span class="blue">lubricating your pussy.</span> <<bodyliquid "vaginaoutside" "semen">> <</if>> <</if>> <</if>> <<elseif $rng gte 1>> <<if !playerChastity("vagina")>> <<if $npcSub>> You tease <<his>> <<print $NPCList[_n].penisdesc>> with your <<pussy>> without trying to penetrate. <<else>> <<He>> teases your <<pussy>> with <<his>> <<print $NPCList[_n].penisdesc>> without trying to penetrate. <</if>> <<sex 10 "genital" _n>><<set $speechvaginaentrance to 1>> <<else>> <<if $npcSub>> You tease <<his>> <<print $NPCList[_n].penisdesc>> with your <<pussy>> as best you can with your $worn.genitals.name in the way. <<else>> <<He>> teases your <<pussy>> with <<his>> <<print $NPCList[_n].penisdesc>> as best <<he>> can with your $worn.genitals.name in the way. <</if>> <<sex 5 "genital" _n>><<set $speechchastity to 1>> <</if>> <</if>> <</if>> <</if>> <<if setup.bodyliquid.combined("vagina") gte 1 or setup.bodyliquid.combined("vaginaoutside") gte 1>> Fluid oozes from your <<pussy>>, over <<his>> length. <</if>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].penis is "vaginadouble">> <!-- Notes for how double functions work are found in the NPC action select section --> <<set _dvp to 0>> <<set _npcA to $vaginatarget>> <<set _npcB to $vaginadoubletarget>> <<if $NPCList[_npcA] is $NPCList[_n]>> /* State 1 is out of sync, state 2 is in sync */ <<set _dvp to ($NPCList[_npcB].penis isnot "vaginadouble" ? 1 : 2)>> <<elseif $NPCList[_npcB] is $NPCList[_n]>> <<set _dvp to ($NPCList[_npcA].penis isnot "vaginadouble" ? 1 : 2)>> <</if>> <<if $rng gte 101>> <span class="purple"><<He>> slides <<his>> $NPCList[_n].penisdesc out of your <<pussy>>.</span> <<sex 30 "genitals" _n>><<set $NPCList[_n].penis to "vaginaimminentdouble">><<bruise vagina>><<violence 1>><<set $vaginastate to "doubleimminent">> <<elseif $rng gte 1>> <<if _dvp is 2>> <<set $_alongsidearray to ["alongside","alongside","in time with","heedless of","pounding away against","thrusting against"]>> <<set $_alongsidetext to $_alongsidearray[random(0,5)]>> <<set _pain to Math.floor($vaginalPain * (1.5 / (5 - ($NPCList[_n].penissize or 1))))>> <<if $enemyanger gte 100>><<set _pain *= 1.5>> <<if $enemyarousal gte (($enemyarousalmax / 5) * 4)>> <<He>> violates your <<pussy>> with increasing intensity, $_alongsidetext the other cock. <<elseif $enemyarousal gte (($enemyarousalmax / 5) * 2)>> <<He>> continues to fuck your <<pussy>> $_alongsidetext the other cock, with no regard for your comfort nor the other cock's. <<else>> <<He>> fucks your <<pussy>> with rough thrusts, $_alongsidetext the other cock, giving no regard to your comfort nor the other cock's. <</if>> <<elseif $enemyanger gte 20>> <<if $enemyarousal gte (($enemyarousalmax / 5) * 4)>> <<if npcHasStrapon(_n)>> <<He>> ruthlessly pounds your <<pussy>> with <<his>> $NPCList[_n].penisdesc, $_alongsidetext the other cock. <<else>> You feel <<his>> $NPCList[_n].penisdesc throb as <<he>> pounds away at your <<pussy>>, $_alongsidetext the other cock. <</if>> <<elseif $enemyarousal gte (($enemyarousalmax / 5) * 2)>> <<He>> continues to violate your <<pussy>>, $_alongsidetext the other cock. <<else>> <<He>> fucks your <<pussy>> $_alongsidetext the other cock, with deep and deliberate thrusts. <</if>> <<else>> <<if $enemyarousal gte (($enemyarousalmax / 5) * 4)>> <<if $npcSub>>You feel <<him>> approaching <<his>> peak and ride <<him>><<else>><<He>> fucks your <<pussy>><</if>> with increasing power, $_alongsidetext the other cock. <<elseif $enemyarousal gte (($enemyarousalmax / 5) * 2)>> <<if $npcSub>>You continue to ride <<his>> $NPCList[_n].penisdesc.<<else>><<He>> continues thrusting into your <<pussy>>, $_alongsidetext the other cock.<</if>> <<else>> <<if $npcSub>>You fuck <<his>> $NPCList[_n].penisdesc<<else>><<He>> fucks your <<pussy>><</if>> with steady thrusts, $_alongsidetext the other cock. <</if>> <</if>> <<sex 30 "genitals" _n>><<bruise vagina>><<violence 1>><<set $speechvaginapenetrated to 1>><<pain _pain>> <<else>> /* single penetration */ <<set _pain to Math.floor($vaginalPain * (1.5 / (5 - ($NPCList[_n].penissize or 1))))>> <<if $enemyanger gte 100>><<set _pain *= 1.5>> <<if $enemyarousal gte (($enemyarousalmax / 5) * 4)>> <<He>> violates your <<pussy>> with increasing intensity. <<elseif $enemyarousal gte (($enemyarousalmax / 5) * 2)>> <<He>> continues to fuck your <<pussy>> with no regard for your comfort. <<else>> <<He>> fucks your <<pussy>> with rough thrusts, giving no regard to your comfort. <</if>> <<elseif $enemyanger gte 20>> <<if $enemyarousal gte (($enemyarousalmax / 5) * 4)>> <<if npcHasStrapon(_n)>> <<He>> ruthlessly pounds your <<pussy>> with <<his>> $NPCList[_n].penisdesc. <<else>> You feel <<his>> $NPCList[_n].penisdesc throb as <<he>> pounds away at your <<pussy>>. <</if>> <<elseif $enemyarousal gte (($enemyarousalmax / 5) * 2)>> <<He>> continues to violate your <<pussy>>. <<else>> <<He>> fucks your <<pussy>> with deep and deliberate thrusts. <</if>> <<else>> <<if $enemyarousal gte (($enemyarousalmax / 5) * 4)>> <<if $npcSub>>You feel <<him>> approaching <<his>> peak and ride <<him>><<else>><<He>> fucks your <<pussy>><</if>> with increasing power. <<elseif $enemyarousal gte (($enemyarousalmax / 5) * 2)>> <<if $npcSub>>You continue to ride <<his>> $NPCList[_n].penisdesc.<<else>><<He>> continues thrusting into your <<pussy>>.<</if>> <<else>> <<if $npcSub>>You fuck <<his>> $NPCList[_n].penisdesc<<else>><<He>> fucks your <<pussy>><</if>> with steady thrusts. <</if>> <</if>> <<sex 30 "genitals" _n>><<bruise vagina>><<violence 1>><<set $speechvaginapenetrated to 1>><<pain _pain>> <</if>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].penis is "vaginaimminentdouble">> <<set _dvp to 0>> <<set _npcA to (_n is $vaginatarget ? $vaginatarget : $vaginadoubletarget)>> <<set _npcB to (_n is $vaginatarget ? $vaginadoubletarget : $vaginatarget)>> <<if _npcA is _n>> /* State 1 is out of sync, state 2 is in sync */ <<set _dvp to ($NPCList[_npcB].penis isnot "vaginadouble" ? 1 : 2)>> <<elseif _npcB is _n>> <<set _dvp to ($NPCList[_npcA].penis isnot "vaginadouble" ? 1 : 2)>> <</if>> <<set $_n to _n>> /* backup _n so that we can use personselect widget without errors */ <<if $rng gte 101>> <span class="blue"><<He>> stops pressing <<his>> $NPCList[_n].penisdesc against your pussy.</span> <<set $NPCList[_n].penis to "vaginaentrancedouble">><<set $vaginastate to "doubleentrance">> <<elseif $rng gte 1>> <<if _dvp is 2>> <<if $novaginal is 0>> <<set _pain to Math.floor($vaginalPain * (1.5 / (5 - ($NPCList[_n].penissize or 1))))>> <<if $player.virginity.vaginal isnot true>> <<if $enemyanger gte 80>> <span class="pink"><<He>> furiously thrusts <<his>> $NPCList[_n].penisdesc deep into your <<pussy>>, joining <<personselect _npcB>><<combatpersons>> <<npcPenisSimple _npcB>>.</span><<set _n to $_n>> <<personselect _npcA>><<set _pain *= 1.5>> <<elseif $enemyanger gte 20>> <span class="pink"><<He>> thrusts <<his>> $NPCList[_n].penisdesc deep into your <<pussy>>, joining <<personselect _npcB>><<combatpersons>> <<npcPenisSimple _npcB>>.</span><<set _n to $_n>> <<personselect _npcA>> <<else>> <span class="pink"><<He>> glides <<his>> $NPCList[_n].penisdesc deep into your <<pussy>>, joining <<personselect _npcB>><<combatpersons>> <<npcPenisSimple _npcB>>.</span><<set _n to $_n>> <<personselect _npcA>> <</if>> <<switch $NPCList[_n].penissize>> <<case 3 4 5>> <span class="red"> You whimper as your <<pussy>> stretches to accommodate their <<penises>>.</span> <<default>> <</switch>> <<sex 30 "genitals" _n>><<takeTempleVirginity $NPCList[_n].fullDescription "vaginal">><<violence 1>><<set $speechvaginapenetrated to 1>> <<pain _pain>> <<elseif $player.virginity.vaginal is true>> <<if $sexStats.vagina.pregnancy.totalBirthEvents gt 0>> <span class="red">Despite your lack of a hymen, you feel something inside you change as your virginity and purity are taken.</span> <<violence 10>> <<else>> <<switch $NPCList[_n].penissize>> <<case 4 5>> <span class="red"><<His>> $NPCList[_n].penisdesc thrusts deep into your virgin pussy, joining <<personselect _npcB>><<combatPersons>> <<npcPenisSimple _npcB>><<personselect _npcA>>, obliterating your hymen and <<virginitylosttext $NPCList[_n].fullDescription>> You scream out as your <<pussy>> struggles to accommodate <<his>> cock.</span><<set _n to $_n>> <<violence 200>> <<case 1>> <span class="red"><<His>> $NPCList[_n].penisdesc pushes into your virgin pussy, joining <<personselect _npcB>><<combatPersons>> <<npcPenisSimple _npcB>><<personselect _npcA>>, breaking your hymen and <<virginitylosttext $NPCList[_n].fullDescription>></span> <span class="green"> While technically no longer a virgin, you can barely feel it.</span><<set _n to $_n>> <<violence 25 4 4>> <<default>> <span class="pink"><<His>> $NPCList[_n].penisdesc thrusts deep into your virgin pussy, joining <<personselect _npcB>><<combatPersons>> <<npcPenisSimple _npcB>><<personselect _npcA>>,</span><span class="red"> tearing your hymen and <<virginitylosttext $NPCList[_n].fullDescription>></span><<set _n to $_n>> <<violence 100>> <</switch>> <</if>> <<sex 100 "genitals" _n>><<takeVirginity $NPCList[_n].fullDescription "vaginal">><<set $speechvaginavirgin to 1>> <<if $enemyanger gte 100>><<set _pain *= 1.5>><</if>><<pain _pain>> <</if>> <<vaginalstat>><<vaginaldoublestat>><<set $NPCList[_n].penis to "vaginadouble">><<takeNPCVirginity _n "penile">><<bruise vagina>><<raped>><<vaginaraped>><<set $vaginastate to "doublepenetrated">> <<else>> Respecting your wishes, <<he>> presses <<his>> $NPCList[_n].penisdesc against your <<pussy>> but does not penetrate. <<sex 15 "genitals" _n>><<set $speechvaginawithhold to 1>> <</if>> <<else>> <<if $novaginal is 0>> <<set _pain to Math.floor($vaginalPain * (1.5 / (5 - ($NPCList[_n].penissize or 1))))>> <<if $player.virginity.vaginal isnot true>> <<if $enemyanger gte 80>> <span class="pink"><<He>> thrusts <<his>> $NPCList[_n].penisdesc deep into your <<pussy>>.</span> <<set _pain *= 1.5>> <<elseif $enemyanger gte 20>> <span class="pink"><<He>> thrusts <<his>> $NPCList[_n].penisdesc deep into your <<pussy>>.</span> <<else>> <span class="pink"><<He>> glides <<his>> $NPCList[_n].penisdesc deep into your <<pussy>>.</span> <</if>> <<switch $NPCList[_n].penissize>> <<case 4>> <span class="red"> You whimper as your <<pussy>> stretches to accommodate <<his>> cock.</span> <<default>> <</switch>> <<sex 30 "genitals" _n>><<takeTempleVirginity $NPCList[_n].fullDescription "vaginal">><<violence 1>><<set $speechvaginapenetrated to 1>> <<pain _pain>> <<elseif $player.virginity.vaginal is true>> <<if $sexStats.vagina.pregnancy.totalBirthEvents gt 0>> <span class="red">Despite your lack of a hymen, you feel something inside you change as your virginity and purity are taken.</span> <<violence 10>> <<else>> <<switch $NPCList[_n].penissize>> <<case 4>> <span class="red"><<His>> $NPCList[_n].penisdesc thrusts deep into your virgin pussy, obliterating your hymen and <<virginitylosttext $NPCList[_n].fullDescription>> You scream out as your <<pussy>> struggles to accommodate <<his>> cock.</span> <<violence 200>> <<case 1>> <span class="red"><<His>> $NPCList[_n].penisdesc pushes into your virgin pussy, breaking your hymen and <<virginitylosttext $NPCList[_n].fullDescription>></span> <span class="green"> While technically no longer a virgin, you can barely feel it.</span> <<violence 25 4 4>> <<default>> <span class="pink"><<His>> $NPCList[_n].penisdesc thrusts deep into your virgin pussy,</span><span class="red"> tearing your hymen and <<virginitylosttext $NPCList[_n].fullDescription>></span> <<violence 100>> <</switch>> <</if>> <<sex 100 "genitals" _n>><<takeVirginity $NPCList[_n].fullDescription "vaginal">><<set $speechvaginavirgin to 1>> <<if $enemyanger gte 100>><<set _pain *= 1.5>><</if>><<pain _pain>> <</if>> <<vaginalstat>><<set $NPCList[_n].penis to "vaginadouble">><<takeNPCVirginity _n "penile">><<bruise vagina>><<raped>><<vaginaraped>><<set $vaginastate to "doublepenetrated">> <<else>> Respecting your wishes, <<he>> presses <<his>> $NPCList[_n].penisdesc against your <<pussy>> but does not penetrate. <<sex 15 "genitals" _n>><<set $speechvaginawithhold to 1>> <</if>> <</if>> <<if setup.bodyliquid.combined("vagina") gte 1 or setup.bodyliquid.combined("vaginaoutside") gte 1>> Fluid oozes from your <<pussy>>, over their lengths. <</if>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].penis is "vaginaentrancedouble">> <<if $rng gte 101>> <span class="lblue"><<He>> moves <<his>> <<= npcHasStrapon(_n) ? "strap-on" : "penis">> away from your <<pussy>>, and the other cock.</span> <<set $NPCList[_n].penis to 0>><<set $vaginause to 0>><<set $vaginastate to 0>> <<elseif $rng gte 1>> <<if $worn.over_lower.vagina_exposed is 0>> <<if $npcSub>>You rub<<else>><<He>> rubs<</if>> <<his>> $NPCList[_n].penisdesc against your <<pussy>> through your $worn.over_lower.name. <<sex 5 "genitals" _n>><<set $worn.over_lower.integrity -= 10>><<set $speechvaginaentrance to 1>> <<elseif $worn.lower.vagina_exposed is 0>> <<if $npcSub>>You rub<<else>><<He>> rubs<</if>> <<his>> $NPCList[_n].penisdesc against your <<pussy>> through your $worn.lower.name. <<sex 5 "genitals" _n>><<set $worn.lower.integrity -= 10>><<set $speechvaginaentrance to 1>> <<elseif $worn.lower.vagina_exposed is 1 and $worn.over_lower.vagina_exposed is 1>> <<rng>> <<if $worn.under_lower.vagina_exposed is 0>> <<if $npcSub>>You rub<<else>><<He>> rubs<</if>> <<his>> $NPCList[_n].penisdesc against your <<pussy>> through your $worn.under_lower.name. <<sex 5 "genitals" _n>><<set $worn.under_lower.integrity -= 10>><<set $speechvaginaentrance to 1>> <<elseif $worn.under_lower.vagina_exposed is 1>> <<if $rng gte 51>> <<if $NPCList[_n].chastity.penis.includes("chastity")>> <<if $npcSub>>You rub<<else>><<He>> rubs<</if>> <<his>> $NPCList[_n].chastity.penis against your <<pussy>><<if playerChastity("vagina")>><<set $worn.genitals.integrity -= 10>> through your $worn.genitals.name<</if>>. <<sex 25 "genitals" _n>><<set $speechNPCChastity to 1>> <<elseif playerChastity("vagina")>> <<if $npcSub>>You rub<<else>><<He>> rubs<</if>> <<his>> $NPCList[_n].penisdesc against your <<pussy>> through your $worn.genitals.name. <<sex 25 "genitals" _n>><<set $worn.genitals.integrity -= 10>><<set $speechchastity to 1>> <<elseif !$npcSub>> <<if $vaginaWetness gte ($NPCList[_n].penissize * 15) + random(1, 40) or random(1, 3) is 2>> <<He>> pushes <<his>> $NPCList[_n].penisdesc against your <<pussy>>. <<vagina_lube_text>><span class="pink">the tip presses into you, a thrust away from penetrating.</span> <<sex 20 "genitals" _n>><<set $NPCList[_n].penis to "vaginaimminentdouble">><<set $speechvaginaimminent to 1>> <<if $vaginastate isnot "doublepenetrated">><<set $vaginastate to "doubleimminent">><</if>> <<else>> <<if $npcSub>>You push<<else>><<He>> pushes<</if>> <<his>> $NPCList[_n].penisdesc against your <<pussy>>; <span class="blue">but fail<<if !$npcSub>>s<</if>> to penetrate,</span> instead angling away and rubbing it against your <<clit>> and the other cock. <<sex 5 "genitals" _n>><<set $speechvaginaimminent to 1>> <<if $enemyarousal gte ($enemyarousalmax / 2) and random(1, 3) is 3 and !npcHasStrapon(_n) and !wearingCondom(_n)>> Precum leaks from the tip, <span class="blue">lubricating your pussy.</span> <<bodyliquid "vaginaoutside" "semen">> <</if>> <</if>> <</if>> <<elseif $rng gte 1>> <<if !playerChastity("vagina")>> <<if $npcSub>> You tease <<his>> <<print $NPCList[_n].penisdesc>> with your <<pussy>> without trying to penetrate. <<else>> <<He>> teases your <<pussy>> with <<his>> <<print $NPCList[_n].penisdesc>> without trying to penetrate. <</if>> <<sex 10 "genitals" _n>><<set $speechvaginaentrance to 1>> <<else>> <<if $npcSub>> You tease <<his>> <<print $NPCList[_n].penisdesc>> with your <<pussy>> as best you can with your $worn.genitals.name in the way. <<else>> <<He>> teases your <<pussy>> with <<his>> <<print $NPCList[_n].penisdesc>> as best <<he>> can with your $worn.genitals.name in the way. <</if>> <<sex 5 "genitals" _n>><<set $speechchastity to 1>> <</if>> <</if>> <</if>> <</if>> <</if>> <<if setup.bodyliquid.combined("vagina") gte 1 or setup.bodyliquid.combined("vaginaoutside") gte 1>> Fluid oozes from your <<pussy>>, over <<his>> length. <</if>> <</if>> <<rng>> <<if $NPCList[_n].penis is "anus">> <<if $rng gte 101>> <span class="purple"><<He>> withdraws <<his>> penis from your anus.</span> <<sex 30 "anal" _n>><<set $NPCList[_n].penis to "anusimminent">><<bruise anus>><<violence 1>><<set $anusstate to "imminent">> <<elseif $rng gte 1 and playerHasButtPlug()>> <<set _pain to Math.floor($analPain * (1.5 / (6 - ($NPCList[_n].penissize+1 or 1))))>> <<if $enemyanger gte 100>><<set _pain *= 1.5>> <<if $enemyarousal gte (($enemyarousalmax / 5) * 4)>> <<He>> ravages your <<bottom>> with a violent intensity<<alongsideButtPlug>>. <<elseif $enemyarousal gte (($enemyarousalmax / 5) * 2)>> You feel <<his>> $NPCList[_n].penisdesc ever deeper within you as <<he>> fucks your <<bottom>><<alongsideButtPlug>>. <<else>> <<He>> fucks your <<bottom>> with rough thrusts<<alongsideButtPlug>>, intent on showing you who's boss. <</if>> <<elseif $enemyanger gte 20>> <<if $enemyarousal gte (($enemyarousalmax / 5) * 4)>> <<if npcHasStrapon(_n)>> You feel <<his>> pace quicken as <<he>> fucks your <<bottom>> with <<his>> <<print $NPCList[_n].penisdesc>><<alongsideButtPlug>>. <<else>> You feel <<his>> $NPCList[_n].penisdesc throb within you as <<he>> fucks your <<bottom>><<alongsideButtPlug>>. <</if>> <<elseif $enemyarousal gte (($enemyarousalmax / 5) * 2)>> <<He>> continues to violate your <<bottom>><<alongsideButtPlug>>, giving no regard to your comfort. <<else>> <<He>> fucks your <<bottom>> with deep and dominating thrusts<<alongsideButtPlug>>. <</if>> <<else>> <<if $enemyarousal gte (($enemyarousalmax / 5) * 4)>> <<if $npcSub>>You feel <<him>> approaching <<his>> peak and ride <<him>><<else>><<He>> fucks your <<bottom>><</if>> with increasing power<<alongsideButtPlug>>. <<elseif $enemyarousal gte (($enemyarousalmax / 5) * 2)>> <<if $npcSub>>You continue to ride <<his>> $NPCList[_n].penisdesc.<<else>><<He>> continues thrusting into your <<bottom>><<alongsideButtPlug>>.<</if>> <<else>> <<if $npcSub>>You fuck <<his>> $NPCList[_n].penisdesc<<else>><<He>> fucks your <<bottom>><</if>> with steady thrusts<<alongsideButtPlug>>. <</if>> <</if>> <<sex 30 "anal" _n>><<bruise anus>><<violence 1>><<set $speechanuspenetrated to 1>><<pain _pain>> <<elseif $rng gte 1>> <<set _pain to Math.floor($analPain * (1.5 / (5 - ($NPCList[_n].penissize or 1))))>> <<if $enemyanger gte 100>><<set _pain *= 1.5>> <<if $enemyarousal gte (($enemyarousalmax / 5) * 4)>> <<He>> ravages your <<bottom>> with a violent intensity. <<elseif $enemyarousal gte (($enemyarousalmax / 5) * 2)>> You feel <<his>> $NPCList[_n].penisdesc ever deeper within you as <<he>> fucks your <<bottom>>. <<else>> <<He>> fucks your <<bottom>> with rough thrusts, intent on showing you who's boss. <</if>> <<elseif $enemyanger gte 20>> <<if $enemyarousal gte (($enemyarousalmax / 5) * 4)>> <<if npcHasStrapon(_n)>> You feel <<his>> pace quicken as <<he>> fucks your <<bottom>> with <<his>> $NPCList[_n].penisdesc. <<else>> You feel <<his>> $NPCList[_n].penisdesc throb within you as <<he>> fucks your <<bottom>>. <</if>> <<elseif $enemyarousal gte (($enemyarousalmax / 5) * 2)>> <<He>> continues to violate your <<bottom>>, giving no regard to your comfort. <<else>> <<He>> fucks your <<bottom>> with deep and dominating thrusts. <</if>> <<else>> <<if $enemyarousal gte (($enemyarousalmax / 5) * 4)>> <<if $npcSub>>You feel <<him>> approaching <<his>> peak and ride <<him>><<else>><<He>> fucks your <<bottom>><</if>> with increasing power. <<elseif $enemyarousal gte (($enemyarousalmax / 5) * 2)>> <<if $npcSub>>You continue to ride <<his>> $NPCList[_n].penisdesc.<<else>><<He>> continues thrusting into your <<bottom>>.<</if>> <<else>> <<if $npcSub>>You fuck <<his>> $NPCList[_n].penisdesc<<else>><<He>> fucks your <<bottom>><</if>> with steady thrusts. <</if>> <</if>> <<sex 30 "anal" _n>><<bruise anus>><<violence 1>><<set $speechanuspenetrated to 1>><<pain _pain>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].penis is "anusimminent">> <<if $rng gte 101>> <span class="blue"><<He>> stops pressing <<his>> $NPCList[_n].penisdesc against your anus.</span> <<set $NPCList[_n].penis to "anusentrance">><<set $anusstate to "entrance">> <<elseif $rng gte 1 and playerHasButtPlug()>> <<set $_buttplug to $worn.butt_plug.name>> <<set $_alongside to either("alongside","heedless of","pushing aside")>> <<if $noanal is 0>> <<set _pain to Math.floor($analPain * (1.5 / (6 - ($NPCList[_n].penissize+1 or 1))))>> <<if $player.virginity.anal isnot true>> <span class="pink"><<He>> thrusts <<his>> $NPCList[_n].penisdesc deep into your <<bottom>><<alongsideButtPlug>>.</span> <<switch $NPCList[_n].penissize>> <<case 3 4>> <span class="red"> You <<if $speech_attitude is "meek">>moan<<else>>whimper<</if>> as your ass stretches to accommodate both <<his>> cock and your $_buttplug.</span> <<case 1>> <span class="green">You can barely feel it.</span> <<default>> <</switch>> <<sex 30 "anal" _n>><<violence 1>><<set $speechanuspenetrated to 1>> <<if $enemyanger gte 100>><<set _pain *= 1.75>><</if>><<pain _pain>> <<elseif $player.virginity.anal is true>> <span class="pink"><<He>> thrusts <<his>> $NPCList[_n].penisdesc deep into your virgin anus<<alongsideButtPlug>>,</span> <span class="red">violating you in a way you hadn't conceived of.</span> <<switch $NPCList[_n].penissize>> <<case 3 4>> <span class="red"> You <<if $speech_attitude is "meek">>squeal<<else>>scream<</if>> as your ass struggles to accommodate both <<his>> cock and your $_buttplug.</span> <<case 1>> <span class="green"> While your ass is technically no longer virgin, you can barely feel it.</span> <<default>> <</switch>> <<sex 100 "anal" _n>><<violence 50>><<set $speechanusvirgin to 1>> <<if $enemyanger gte 100>><<set _pain *= 1.75>><</if>><<pain _pain>> <<takeVirginity $NPCList[_n].fullDescription "anal">> <</if>> <<analstat>><<set $NPCList[_n].penis to "anus">><<takeNPCVirginity _n "penile">><<set $anusstate to "penetrated">><<bruise anus>><<raped>><<anusraped>> <<else>> Respecting your wishes, <<he>> presses <<his>> $NPCList[_n].penisdesc against your anus and $_buttplug but does not penetrate. <<sex 15 "anal" _n>><<set $speechanuswithhold to 1>> <</if>> <<elseif $rng gte 1>> <<if $noanal is 0>> <<set _pain to Math.floor($analPain * (1.5 / (5 - ($NPCList[_n].penissize or 1))))>> <<if $player.virginity.anal isnot true>> <span class="pink"><<He>> thrusts <<his>> $NPCList[_n].penisdesc deep into your <<bottom>>.</span> <<switch $NPCList[_n].penissize>> <<case 4>> <span class="red"> You whimper as your ass stretches to accommodate <<his>> cock.</span> <<default>> <</switch>> <<sex 30 "anal" _n>><<violence 1>><<set $speechanuspenetrated to 1>> <<if $enemyanger gte 100>><<set _pain *= 1.5>><</if>><<pain _pain>> <<elseif $player.virginity.anal is true>> <span class="pink"><<He>> thrusts <<his>> $NPCList[_n].penisdesc deep into your virgin anus,</span> <span class="red">violating you in a way you hadn't conceived of.</span> <<switch $NPCList[_n].penissize>> <<case 4>> <span class="red"> You scream as your ass struggles to accommodate <<his>> cock.</span> <<case 1>> <span class="green"> While your ass is technically no longer virgin, you can barely feel it.</span> <<default>> <</switch>> <<sex 100 "anal" _n>><<takeVirginity $NPCList[_n].fullDescription "anal">><<violence 50>><<set $speechanusvirgin to 1>> <<if $enemyanger gte 100>><<set _pain *= 1.5>><</if>><<pain _pain>> <</if>> <<analstat>><<set $NPCList[_n].penis to "anus">><<takeNPCVirginity _n "penile">><<bruise anus>><<raped>><<anusraped>><<set $anusstate to "penetrated">> <<else>> Respecting your wishes, <<he>> presses <<his>> $NPCList[_n].penisdesc against your anus but does not penetrate. <<sex 15 "anal" _n>><<set $speechanuswithhold to 1>> <</if>> <</if>> <<if setup.bodyliquid.combined("bottom") gte 1 or setup.bodyliquid.combined("anus") gte 1>> Fluid oozes from your <<bottom>>, over <<his>> length. <</if>> <</if>> <<rng>> <<if $NPCList[_n].penis is "anusentrance">> <<if $rng gte 101>> <span class="lblue"><<He>> moves <<his>> <<= npcHasStrapon(_n) ? "strap-on" : "penis">> away from your <<bottom>>.</span> <<set $NPCList[_n].penis to 0>><<set $anususe to 0>><<set $anusstate to 0>> <<elseif $rng gte 1>> <<if $worn.over_lower.anus_exposed is 0>> <<if $npcSub>>You rub<<else>><<He>> rubs<</if>> <<his>> $NPCList[_n].penisdesc against your <<bottom>> through your $worn.over_lower.name. <<sex 5 "anal" _n>><<set $worn.over_lower.integrity -= 10>><<set $speechanusentrance to 1>> <<elseif $worn.lower.anus_exposed is 0>> <<if $npcSub>>You rub<<else>><<He>> rubs<</if>> <<his>> $NPCList[_n].penisdesc against your <<bottom>> through your $worn.lower.name. <<sex 5 "anal" _n>><<set $worn.lower.integrity -= 10>><<set $speechanusentrance to 1>> <<elseif $worn.lower.anus_exposed is 1 and $worn.over_lower.anus_exposed is 1>> <<rng>> <<if $worn.under_lower.anus_exposed is 0>> <<if $npcSub>>You rub<<else>><<He>> rubs<</if>> <<his>> $NPCList[_n].penisdesc against your <<bottom>> through your $worn.under_lower.name. <<set $speechanusentrance to 1>><<sex 5 "anal" _n>><<set $worn.under_lower.integrity -= 10>> <<elseif $worn.under_lower.anus_exposed is 1>> <<if $rng gte 51>> <<if $NPCList[_n].chastity.penis.includes("chastity")>> <<if $npcSub>>You rub<<else>><<He>> rubs<</if>> <<his>> $NPCList[_n].chastity.penis against your anus<<if playerChastity("anus")>><<set $worn.genitals.integrity -= 10>> through your $worn.genitals.name<</if>>. <<sex 25 "anal" _n>><<set $speechNPCChastity to 1>> <<elseif playerChastity("anus")>> <<if $npcSub>>You rub<<else>><<He>> rubs<</if>> <<his>> $NPCList[_n].penisdesc against your anus through your $worn.genitals.name. <<sex 25 "anal" _n>><<set $worn.genitals.integrity -= 10>><<set $speechchastity to 1>> <<elseif playerHasButtPlug()>> <<switch random(0,2)>> <<case 0>> <<if $npcSub>>You rub<<else>><<He>> rubs<</if>> <<his>> $NPCList[_n].penisdesc against your anus and your $worn.butt_plug.name. <<sex 10 "anal" _n>><<set $speechanusentrance to 1>> <<if $enemyarousal gte ($enemyarousalmax / 2) and random(1, 3) is 3 and !npcHasStrapon(_n) and !wearingCondom(_n)>> Precum leaks from the tip, <span class="blue">lubricating your ass.</span> <<bodyliquid "bottom" "semen">> <</if>> <<case 1>> <<if $NPCList[_n].lefthand is 0 or $NPCList[_n].righthand is 0>> <<He>> removes your $worn.butt_plug.name. <<set $worn.butt_plug.state to "removed">> <<else>> <<if $npcSub>>You rub<<else>><<He>> rubs<</if>> <<his>> $NPCList[_n].penisdesc against your anus and your $worn.butt_plug.name. <<if $enemyarousal gte ($enemyarousalmax / 2) and random(1, 3) is 3 and !npcHasStrapon(_n) and !wearingCondom(_n)>> Precum leaks from the tip, <span class="blue">lubricating your ass.</span> <<bodyliquid "bottom" "semen">> <</if>> <</if>> <<sex 10 "anal" _n>><<set $speechanusentrance to 1>> <<case 2>> <<if $anusWetness gte ($NPCList[_n].penissize * 15) + random(1, 40) or random(0, 2) is 2>> <<anus_lube_text>><<if $npcSub>>you press<<else>><<he>> presses<</if>> <<his>> $NPCList[_n].penisdesc against your anus and your $worn.butt_plug.name, <span class="pink">a thrust away from penetrating.</span> <<sex 10 "anal" _n>><<set $NPCList[_n].penis to "anusimminent">><<set $anusstate to "imminent">><<set $speechanusimminent to 1>> <<else>> <<if $npcSub>>You push<<else>><<He>> pushes<</if>> <<his>> $NPCList[_n].penisdesc against your <<bottom>> and your $worn.butt_plug.name, <span class="blue">but fail<<if !$npcSub>>s<</if>> to penetrate,</span> instead angling away and rubbing it between your cheeks. <<sex 5 "anal" _n>><<set $speechanusimminent to 1>> <<if $enemyarousal gte ($enemyarousalmax / 2) and random(1, 3) is 3 and !npcHasStrapon(_n) and !wearingCondom(_n)>> Precum leaks from the tip, <span class="blue">lubricating your ass.</span> <<bodyliquid "bottom" "semen">> <</if>> <</if>> <</switch>> <<elseif !$npcSub>> <<if $anusWetness gte ($NPCList[_n].penissize * 15) + random(1, 40) or random(1, 2) is 2>> <<He>> presses <<his>> $NPCList[_n].penisdesc against your <<bottom>>. <<anus_lube_text>><span class="pink">the tip presses into you, a thrust away from penetrating.</span> <<sex 20 "anal" _n>><<set $NPCList[_n].penis to "anusimminent">><<set $anusstate to "imminent">><<set $speechanusimminent to 1>> <<else>> <<if $npcSub>>You push<<else>><<He>> pushes<</if>> <<his>> $NPCList[_n].penisdesc against your <<bottom>>, <span class="blue">but fail<<if !$npcSub>>s<</if>> to penetrate,</span> instead angling away and rubbing it between your cheeks. <<sex 5 "anal" _n>><<set $speechanusimminent to 1>> <<if $enemyarousal gte ($enemyarousalmax / 2) and random(1, 3) is 3 and !npcHasStrapon(_n) and !wearingCondom(_n)>> Precum leaks from the tip, <span class="blue">lubricating your ass.</span> <<bodyliquid "bottom" "semen">> <</if>> <</if>> <</if>> <<elseif $rng gte 1>> <<if playerHasButtPlug()>> <<His>> $NPCList[_n].penisdesc rubs against your <<bottom>> and $worn.butt_plug.name. <<else>> <<His>> $NPCList[_n].penisdesc rubs against your <<bottom>>. <</if>> <<sex 5 "anal" _n>><<set $speechanusentrance to 1>> <</if>> <</if>> <</if>> <</if>> <<if setup.bodyliquid.combined("bottom") gte 1 or setup.bodyliquid.combined("anus") gte 1>> Fluid oozes from your <<bottom>>, over <<his>> length. <</if>> <</if>> <<rng>> <<if $NPCList[_n].penis is "anusdouble">> <!-- Notes for how double functions work are found in the NPC action select section --> <<set _dap to 0>> <<if $NPCList[$anustarget] is $NPCList[_n]>> /* State 1 is out of sync, state 2 is in sync */ <<set _dap to ($NPCList[$anusdoubletarget].penis isnot "anusdouble" ? 1 : 2)>> <<elseif $NPCList[$anusdoubletarget] is $NPCList[_n]>> <<set _dap to ($NPCList[$anustarget].penis isnot "anusdouble" ? 1 : 2)>> <</if>> <<if $rng gte 101>> <span class="purple"><<He>> withdraws <<his>> penis from your anus.</span> <<sex 30 "anal" _n>><<set $NPCList[_n].penis to "anusimminentdouble">><<bruise anus>><<violence 1>><<set $anusstate to "doubleimminent">> <<elseif $rng gte 1>> <<if _dap is 2>> /* double */ <<set $_alongsidearray to ["alongside","alongside","in time with","heedless of","pounding against","thrusting against"]>> <<set $_alongsidetext to $_alongsidearray[random(0,5)]>> <<set _pain to Math.floor($analPain * (1.5 / (5 - ($NPCList[_n].penissize or 1))))>> <<if $enemyanger gte 100>><<set _pain *= 1.5>> <<if $enemyarousal gte (($enemyarousalmax / 5) * 4)>> <<He>> ravages your <<bottom>> with a violent intensity, $_alongsidetext the other cock. <<elseif $enemyarousal gte (($enemyarousalmax / 5) * 2)>> You feel <<his>> $NPCList[_n].penisdesc ever deeper within you as <<he>> fucks your <<bottom>><<alongsideButtPlug>>, $_alongsidetext the other cock. <<else>> <<He>> fucks your <<bottom>><<alongsideButtPlug>>, and the other cock, with rough thrusts, intent on showing you who's boss. <</if>> <<elseif $enemyanger gte 20>> <<if $enemyarousal gte (($enemyarousalmax / 5) * 4)>> You feel <<his>> $NPCList[_n].penisdesc <<if npcHasStrapon(_n)>>hit the right spots<<else>>throb within you<</if>> as <<he>> fucks your <<bottom>>, $_alongsidetext the other cock. <<elseif $enemyarousal gte (($enemyarousalmax / 5) * 2)>> <<He>> continues to violate your <<bottom>>, giving no regard to your comfort nor the other cock. <<else>> <<He>> fucks your <<bottom>> with deep and dominating thrusts, $_alongsidetext the other cock. <</if>> <<else>> <<if $enemyarousal gte (($enemyarousalmax / 5) * 4)>> <<if $npcSub>>You feel <<him>> approaching <<his>> peak while riding both cocks<<else>><<He>> fucks your <<if playerHasButtPlug()>> <<bottom>>, your $worn.butt_plug.name, <<else>> <<bottom>> <</if>> and the other phallus<</if>> with increasing power. <<elseif $enemyarousal gte (($enemyarousalmax / 5) * 2)>> <<if $npcSub>>You continue to ride <<his>> $NPCList[_n].penisdesc, and the other cock.<<else>><<He>> continues thrusting into your <<bottom>><<alongsideButtPlug>>, $_alongsidetext the other cock.<</if>> <<else>> <<if $npcSub>>You fuck <<his>> $NPCList[_n].penisdesc, and the other cock,<<else>><<He>> fucks your <<bottom>><<alongsideButtPlug>>, $_alongsidetext the other cock,<</if>> with steady thrusts. <</if>> <</if>> <<sex 30 "anal" _n>><<bruise anus>><<violence 1>><<set $speechanuspenetrated to 1>><<pain _pain>> <<else>> /* Not double */ <<set _pain to Math.floor($analPain * (1.5 / (5 - ($NPCList[_n].penissize or 1))))>> <<if $enemyanger gte 100>><<set _pain *= 1.5>> <<if $enemyarousal gte (($enemyarousalmax / 5) * 4)>> <<He>> ravages your <<bottom>> with a violent intensity<<alongsideButtPlug>>. <<elseif $enemyarousal gte (($enemyarousalmax / 5) * 2)>> You feel <<his>> $NPCList[_n].penisdesc ever deeper within you as <<he>> fucks your <<bottom>><<alongsideButtPlug>>. <<else>> <<He>> fucks your <<bottom>> with rough thrusts<<alongsideButtPlug>>, intent on showing you who's boss. <</if>> <<elseif $enemyanger gte 20>> <<if $enemyarousal gte (($enemyarousalmax / 5) * 4)>> <<if npcHasStrapon(_n)>> You feel <<his>> pace quicken as <<he>> fucks your <<bottom>> with <<his>> <<print $NPCList[_n].penisdesc>><<alongsideButtPlug>>. <<else>> You feel <<his>> $NPCList[_n].penisdesc throb within you as <<he>> fucks your <<bottom>><<alongsideButtPlug>>. <</if>> <<elseif $enemyarousal gte (($enemyarousalmax / 5) * 2)>> <<He>> continues to violate your <<bottom>><<alongsideButtPlug>>, giving no regard to your comfort. <<else>> <<He>> fucks your <<bottom>> with deep and dominating thrusts<<alongsideButtPlug>>. <</if>> <<else>> <<if $enemyarousal gte (($enemyarousalmax / 5) * 4)>> <<if $npcSub>>You feel <<him>> approaching <<his>> peak while riding <<his>> cock<<else>><<He>> fucks your <<bottom>><</if>> with increasing power. <<elseif $enemyarousal gte (($enemyarousalmax / 5) * 2)>> <<if $npcSub>>You continue to ride <<his>> $NPCList[_n].penisdesc.<<else>><<He>> continues thrusting into your <<bottom>>.<</if>> <<else>> <<if $npcSub>>You fuck <<his>> $NPCList[_n].penisdesc<<else>><<He>> fucks your <<bottom>><</if>> with steady thrusts. <</if>> <</if>> <<sex 30 "anal" _n>><<bruise anus>><<violence 1>><<set $speechanuspenetrated to 1>><<pain _pain>> <</if>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].penis is "anusimminentdouble">> <<set _dap to 0>> <<set _otherNPCindex to "f">> <<if $NPCList[$anustarget] is $NPCList[_n]>> /* State 1 is out of sync, state 2 is in sync */ <<set _dap to ($NPCList[$anusdoubletarget].penis isnot "anusdouble" ? 1 : 2)>> <<set _otherNPCindex to $anusdoubletarget>> <<elseif $NPCList[$anusdoubletarget] is $NPCList[_n]>> <<set _dap to ($NPCList[$anustarget].penis isnot "anusdouble" ? 1 : 2)>> <<set _otherNPCindex to $anustarget>> <</if>> <<set $_n to _n>> /* backup _n so that we can use personselect widget without errors */ <<if $rng gte 101>> <span class="blue"><<He>> stops pressing <<his>> $NPCList[_n].penisdesc against your anus.</span> <<set $NPCList[_n].penis to "anusentrancedouble">><<set $anusstate to "doubleentrance">> <<elseif $rng gte 1>> <<if _dap is 2>> <<if $noanal is 0>> <<set _pain to Math.floor($analPain * (1.5 / (5 - ($NPCList[_n].penissize or 1))))>> <<if $player.virginity.anal isnot true>> <span class="pink"><<He>> thrusts <<his>> $NPCList[_n].penisdesc deep into your <<bottom>><<alongsideButtPlug>>, joining <<personselect _otherNPCindex>><<combatpersons _otherNPCindex>> <<npcPenisSimple _otherNPCindex>>.</span><<set _n to $_n>><<personselect _n>> <<switch $NPCList[_n].penissize>> <<case 4>> <span class="red"> You whimper as your ass stretches to accommodate <<his>> cock.</span> <<default>> <</switch>> <<sex 30 "anal" _n>><<violence 1>><<set $speechanuspenetrated to 1>> <<if $enemyanger gte 100>><<set _pain *= 1.5>><</if>><<pain _pain>> <<elseif $player.virginity.anal is true>> <span class="pink"><<He>> thrusts <<his>> $NPCList[_n].penisdesc deep into your virgin anus<<alongsideButtPlug>>,</span> <span class="red">violating you in a way you hadn't conceived of.</span> <<if $NPCList[$anustarget].penis is "anusdouble" and $NPCList[$anusdoubletarget].penis is "anusdouble">> <<switch $NPCList[_n].penissize>> <<default>> <span class="red"> You scream as your ass struggles to accommodate both cocks.</span> <</switch>> <<else>> <<switch $NPCList[_n].penissize>> <<case 4 5>> <span class="red"> You scream as your ass struggles to accommodate both cocks<<if playerHasButtPlug()>> and your $worn.butt_plug.name<</if>>.</span> <<case 1>> <span class="green"> While your ass is technically no longer virgin, you can barely feel it.</span> <<default>> <</switch>> <</if>> <<sex 100 "anal" _n>><<takeVirginity $NPCList[_n].fullDescription "anal">><<violence 50>><<set $speechanusvirgin to 1>> <<if $enemyanger gte 100>><<set _pain *= 1.5>><</if>><<pain _pain>> <</if>> <<analstat>><<analdoublestat>><<set $NPCList[_n].penis to "anusdouble">><<takeNPCVirginity _n "penile">><<bruise anus>><<raped>><<anusraped>><<set $anusstate to "doublepenetrated">> <<else>> Respecting your wishes, <<he>> presses <<his>> $NPCList[_n].penisdesc against your anus, and the other cock, but does not penetrate. <<sex 15 "anal" _n>><<set $speechanuswithhold to 1>> <</if>> <<else>> <<if $noanal is 0>> <<set _pain to Math.floor($analPain * (1.5 / (5 - ($NPCList[_n].penissize or 1))))>> <<if $player.virginity.anal isnot true>> <span class="pink"><<He>> thrusts <<his>> $NPCList[_n].penisdesc deep into your <<bottom>><<alongsideButtPlug>>.</span> <<switch $NPCList[_n].penissize>> <<case 4>> <span class="red"> You whimper as your ass stretches to accommodate <<his>> cock.</span> <<default>> <</switch>> <<sex 30 "anal" _n>><<violence 1>><<set $speechanuspenetrated to 1>> <<if $enemyanger gte 100>><<set _pain *= 1.5>><</if>><<pain _pain>> <<elseif $player.virginity.anal is true>> <span class="pink"><<He>> thrusts <<his>> $NPCList[_n].penisdesc deep into your virgin anus<<alongsideButtPlug>>,</span> <span class="red">violating you in a way you hadn't conceived of.</span> <<if $NPCList[$anustarget].penis is "anusdouble" and $NPCList[$anusdoubletarget].penis is "anusdouble">> <<switch $NPCList[_n].penissize>> <<default>> <span class="red"> You scream as your ass struggles to accommodate <<his>> cock.</span> <</switch>> <<else>> <<switch $NPCList[_n].penissize>> <<case 4>> <span class="red"> You scream as your ass struggles to accommodate <<his>> cock.</span> <<case 1>> <span class="green"> While your ass is technically no longer virgin, you can barely feel it.</span> <<default>> <</switch>> <</if>> <<sex 100 "anal" _n>><<violence 50>><<set $speechanusvirgin to 1>> <<if $enemyanger gte 100>><<set _pain *= 1.5>><</if>><<pain _pain>> <<takeVirginity $NPCList[_n].fullDescription "anal">> <</if>> <<analstat>><<set $NPCList[_n].penis to "anusdouble">><<takeNPCVirginity _n "penile">><<bruise anus>><<raped>><<anusraped>><<set $anusstate to "doublepenetrated">> <<else>> Respecting your wishes, <<he>> presses <<his>> $NPCList[_n].penisdesc against your anus, but does not penetrate. <<sex 15 "anal" _n>><<set $speechanuswithhold to 1>> <</if>> <</if>> <<if setup.bodyliquid.combined("bottom") gte 1 or setup.bodyliquid.combined("anus") gte 1>> Fluid oozes from your <<bottom>>, over <<his>> length. <</if>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].penis is "anusentrancedouble">> <<set _dap to 0>> <<if $NPCList[$anustarget] is $NPCList[_n]>> /* State 1 is out of sync, state 2 is in sync */ <<set _dap to ($NPCList[$anusdoubletarget].penis isnot "anusdouble" ? 1 : 2)>> <<elseif $NPCList[$anusdoubletarget] is $NPCList[_n]>> <<set _dap to ($NPCList[$anustarget].penis isnot "anusdouble" ? 1 : 2)>> <</if>> <<if $rng gte 101>> <span class="lblue"><<He>> moves <<his>> <<= npcHasStrapon(_n) ? "strap-on" : "penis">> away from your <<bottom>> and the other cock.</span> <<set $NPCList[_n].penis to 0>><<set $anususe to 0>><<set $anusstate to 0>> <<elseif $rng gte 1>> <<if $worn.over_lower.anus_exposed is 0>> <<if $npcSub>>You rub<<else>><<He>> rubs<</if>> <<his>> $NPCList[_n].penisdesc against your <<bottom>> through your $worn.over_lower.name. <<sex 5 "anal" _n>><<set $worn.over_lower.integrity -= 10>><<set $speechanusentrance to 1>> <<elseif $worn.lower.anus_exposed is 0>> <<if $npcSub>>You rub<<else>><<He>> rubs<</if>> <<his>> $NPCList[_n].penisdesc against your <<bottom>> through your $worn.lower.name. <<sex 5 "anal" _n>><<set $worn.lower.integrity -= 10>><<set $speechanusentrance to 1>> <<elseif $worn.lower.anus_exposed is 1 and $worn.over_lower.anus_exposed is 1>> <<rng>> <<if $worn.under_lower.anus_exposed is 0>> <<if $npcSub>>You rub<<else>><<He>> rubs<</if>> <<his>> $NPCList[_n].penisdesc against your <<bottom>> through your $worn.under_lower.name. <<set $speechanusentrance to 1>><<sex 5 "anal" _n>><<set $worn.under_lower.integrity -= 10>> <<elseif $worn.under_lower.anus_exposed is 1>> <<if $rng gte 51>> <<if $NPCList[_n].chastity.penis.includes("chastity")>> <<if $npcSub>>You rub<<else>><<He>> rubs<</if>> <<his>> $NPCList[_n].chastity.penis against your anus<<if playerChastity("anus")>><<set $worn.genitals.integrity -= 10>> through your $worn.genitals.name<</if>>. <<sex 25 "anal" _n>><<set $speechNPCChastity to 1>> <<elseif playerChastity("anus")>> <<if $npcSub>>You rub<<else>><<He>> rubs<</if>> <<his>> $NPCList[_n].penisdesc against your anus through your $worn.genitals.name. <<sex 25 "anal" _n>><<set $worn.genitals.integrity -= 10>><<set $speechchastity to 1>> <<elseif playerHasButtPlug()>> <<switch random(0,2)>> <<case 0>> <<if $npcSub>>You rub<<else>><<He>> rubs<</if>> <<his>> $NPCList[_n].penisdesc against your anus and your $worn.butt_plug.name. <<sex 10 "anal" _n>><<set $speechanusentrance to 1>> <<if $enemyarousal gte ($enemyarousalmax / 2) and random(1, 3) is 3 and !npcHasStrapon(_n) and !wearingCondom(_n)>> Precum leaks from the tip, <span class="blue">lubricating your ass.</span> <<bodyliquid "bottom" "semen">> <</if>> <<case 1>> <<if $NPCList[_n].lefthand is 0 or $NPCList[_n].righthand is 0>> <<He>> removes your $worn.butt_plug.name. <<set $worn.butt_plug.state to "removed">> <<else>> <<if $npcSub>>You rub<<else>><<He>> rubs<</if>> <<his>> $NPCList[_n].penisdesc against your anus and your $worn.butt_plug.name. <<if $enemyarousal gte ($enemyarousalmax / 2) and random(1, 3) is 3 and !npcHasStrapon(_n) and !wearingCondom(_n)>> Precum leaks from the tip, <span class="blue">lubricating your ass.</span> <<bodyliquid "bottom" "semen">> <</if>> <</if>> <<sex 10 "anal" _n>><<set $speechanusentrance to 1>> <<case 2>> <<if $anusWetness gte ($NPCList[_n].penissize * 15) + random(1, 40) or random(0, 2) is 2>> <<anus_lube_text>><<if $npcSub>>you press<<else>><<he>> presses<</if>> <<his>> $NPCList[_n].penisdesc against your anus and your $worn.butt_plug.name, <span class="pink">a thrust away from penetrating.</span> <<sex 10 "anal" _n>><<set $NPCList[_n].penis to "anusimminentdouble">> <<if $anusstate isnot "doublepenetrated">><<set $anusstate to "doubleimminent">><</if>><<set $speechanusimminent to 1>> <<else>> <<if $npcSub>>You push<<else>><<He>> pushes<</if>> <<his>> $NPCList[_n].penisdesc against your <<bottom>> and your $worn.butt_plug.name, <span class="blue">but fail<<if !$npcSub>>s<</if>> to penetrate,</span> instead angling away and rubbing it between your cheeks. <<sex 5 "anal" _n>><<set $speechanusimminent to 1>> <<if $enemyarousal gte ($enemyarousalmax / 2) and random(1, 3) is 3 and !npcHasStrapon(_n) and !wearingCondom(_n)>> Precum leaks from the tip, <span class="blue">lubricating your ass.</span> <<bodyliquid "bottom" "semen">> <</if>> <</if>> <</switch>> <<elseif !$npcSub>> <<if $anusWetness gte ($NPCList[_n].penissize * 15) + random(1, 40) or random(1, 2) is 2>> <<He>> presses <<his>> $NPCList[_n].penisdesc against your <<bottom>>. <<anus_lube_text>><span class="pink">the tip presses into you, a thrust away from penetrating.</span> <<sex 20 "anal" _n>><<set $NPCList[_n].penis to "anusimminentdouble">> <<if $anusstate isnot "doublepenetrated">><<set $anusstate to "doubleimminent">><</if>><<set $speechanusimminent to 1>> <<else>> <<if $npcSub>>You push<<else>><<He>> pushes<</if>> <<his>> $NPCList[_n].penisdesc against your <<bottom>>, <span class="blue">but fail<<if !$npcSub>>s<</if>> to penetrate,</span> instead angling away and rubbing it between your cheeks. <<sex 5 "anal" _n>><<set $speechanusimminent to 1>> <<if $enemyarousal gte ($enemyarousalmax / 2) and random(1, 3) is 3 and !npcHasStrapon(_n) and !wearingCondom(_n)>> Precum leaks from the tip, <span class="blue">lubricating your ass.</span> <<bodyliquid "bottom" "goo">> <</if>> <</if>> <</if>> <<elseif $rng gte 1>> <<if playerHasButtPlug()>> <<His>> $NPCList[_n].penisdesc rubs against your <<bottom>> and $worn.butt_plug.name. <<else>> <<His>> $NPCList[_n].penisdesc rubs against your <<bottom>>. <</if>> <<sex 5 "anal" _n>><<set $speechanusentrance to 1>> <</if>> <</if>> <</if>> <<if setup.bodyliquid.combined("bottom") gte 1 or setup.bodyliquid.combined("anus") gte 1>> Fluid oozes from your <<bottom>>, over <<his>> length. <</if>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].penis is "mouth">> <<if $rng gte 101>> <span class="purple"><<He>> withdraws <<his>> penis from your mouth.</span> <<sex 30 "mouth" _n>><<set $NPCList[_n].penis to "mouthimminent">><<bruise face>><<violence 1>><<set $mouthstate to "imminent">> <<elseif $enemyanger gte random(1, 100) and $NPCList[_n].penissize gte 2>> <<if currentSkillValue("oralskill") gte random(1, 1200 + 100 * ($NPCList[_n].penissize - 2))>> <<He>> shoves <<his>> $NPCList[_n].penisdesc down your throat, <span class="blue">but you manage to gasp between <<his>> thrusts.</span> <<if $neckuse isnot "hand">> <<suffocatepass -1>> <</if>> <<else>> <span class="pink">You gag as <<he>> thrusts <<his>> $NPCList[_n].penisdesc down your throat.</span> <<oxygen -150>> <<if $oxygen gte 900>> <span class="blue">You struggle for breath.</span> <<elseif $oxygen gte 600>> <span class="purple">You can't breathe!</span> <<violence 10 1 1 0.2>> <<elseif $oxygen gte 300>> <span class="pink">You feel light-headed.</span> <<violence 20 1 1 0.2>> <<elseif $oxygen gte 1>> <span class="pink">You see stars.</span> <<violence 40 1 1 0.2>> <<else>> <span class="red">You are suffocating.</span> <<violence 100 1 1 0.2>> <<suffocatepass>> <</if>> <</if>> <<if $NPCList[_n].type is "plant">> <span class="pink">Nectar pours down your throat.</span> <<nectarfed 15>> <</if>> <<submission 10 _n>><<bruise face>><<bruise neck>><<violence 1>><<set $speechmouthpenetrated to 1>> <<elseif $rng gte 1>> <<if $npcSub>> You continue to service <<him>> with your mouth. <<else>> <<He>> continues thrusting into your mouth. <</if>> <<if $NPCList[_n].penissize gte 4>> <<switch random(1, 4)>> <<case 1>> It's a struggle not to gag as the $NPCList[_n].penisdesc fills you. <<case 2>> <span class="pink">Saliva <<if $NPCList[_n].type is "plant">> mixes with nectar and <<set _nectar to 1>> <</if>> drools down your chin as you struggle to keep your lips wrapped around <<his>> $NPCList[_n].penisdesc.</span> <<set $hygiene += 500>><<bodyliquid "face" "goo">> <<default>> <</switch>> <</if>> <<if $NPCList[_n].type is "plant" and $mouthactiondefault isnot "suck" and !_nectar>> <span class="pink">Sweet nectar drips into your mouth.</span> <<nectarfed 10>> <</if>> <<submission 10 _n>><<bruise face>><<violence 1>><<set $speechmouthpenetrated to 1>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].penis is "mouthimminent">> <<if $pullaway is 1>> <<set $pullaway to 0>> Saliva drips from the tip of <<his>> phallus. <<else>> <<if $rng gte 101>> <span class="blue"><<He>> stops pressing <<his>> $NPCList[_n].penisdesc against your mouth.</span> <<set $NPCList[_n].penis to "mouthentrance">><<submission 5 _n>><<set $mouthstate to "entrance">> <<elseif $worn.face.type.includes("covered") or $worn.face.type.includes("gag")>> <<if $enemyanger lt $enemyangermax/2>> <span class="lblue"><<He>> moves <<his>> <<= npcHasStrapon(_n) ? "strap-on" : "penis">> away from your mouth.</span> <<set $NPCList[_n].penis to 0>><<set $mouthuse to 0>><<set $mouthstate to 0>> <<else>> <<switch random(0,2)>> <<case 0 1>> <<He>> pushes <<his>> $NPCList[_n].penisdesc against your $worn.face.name. <<He>> seems frustrated. <<damageFaceCover 2>> <<case 2>> <span class="lblue"><<He>> moves <<his>> <<= npcHasStrapon(_n) ? "strap-on" : "penis">> away from your mouth.</span> <<set $NPCList[_n].penis to 0>><<set $mouthuse to 0>><<set $mouthstate to 0>> <</switch>> <</if>> <<elseif $rng lte 15 or ($mouthsubmit isnot 1 and $rng lte 30)>> <<if $player.virginity.oral isnot true>> <span class="pink"><<He>> thrusts <<his>> $NPCList[_n].penisdesc into your mouth.</span> <<if $NPCList[_n].type is "plant">> <span class="pink">Sweet nectar drips into your mouth.</span> <<nectarfed 10>> <</if>> <<submission 10 _n>><<set $speechmouthpenetrated to 1>> <<elseif $player.virginity.oral is true>> <span class="pink"><<He>> thrusts <<his>> $NPCList[_n].penisdesc into your mouth.</span> <<if $NPCList[_n].type is "plant">> <span class="red">It tastes uncomfortably sweet.</span> <<else>> <span class="red">It tastes strange.</span> <</if>> <<submission 30 _n>><<takeVirginity $NPCList[_n].fullDescription "oral">><<violence 1>><<set $speechmouthvirgin to 1>> <</if>> <<oralstat>><<set $NPCList[_n].penis to "mouth">><<bruise face>><<raped>><<set $mouthstate to "penetrated">> <<elseif $mouthsubmit>> <<He>> allows you to pleasure <<his>> $NPCList[_n].penisdesc with your mouth. <<if $NPCList[_n].type is "plant" and !["peniskiss","lick"].includes($mouthactiondefault)>> <span class="pink">You lap up nectar with your tongue.</span> <<nectarfed 3>> <</if>> <<submission 5 _n>><<set $speechmouthimminent to 1>> <<else>> <<He>> rubs <<his>> $NPCList[_n].penisdesc against your lips. <</if>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].penis is "mouthentrance">> <<if $pullaway is 1>> <<set $pullaway to 0>> <<His>> $NPCList[_n].penisdesc hovers only inches from your face. <<else>> <<if $rng gte 101>> <span class="lblue"><<He>> moves <<his>> <<= npcHasStrapon(_n) ? "strap-on" : "penis">> away from your mouth.</span> <<set $NPCList[_n].penis to 0>><<set $mouthuse to 0>><<set $mouthstate to 0>> <<elseif $NPCList[_n].chastity.penis.includes("chastity")>> <span class="purple"><<if $npcSub>>You pull<<else>><<He>> pushes<</if>> <<his>> $NPCList[_n].chastity.penis against your mouth.</span> <<sex 25 "mouth" _n>><<set $speechNPCChastity to 1>> <<elseif $worn.face.type.includes("covered") or $worn.face.type.includes("gag")>> <<if $enemyanger lt $enemyangermax/2>> <span class="lblue"><<He>> moves <<his>> <<= npcHasStrapon(_n) ? "strap-on" : "penis">> away from your mouth.</span> <<set $NPCList[_n].penis to 0>><<set $mouthuse to 0>><<set $mouthstate to 0>> <<else>> <<switch random(0,2)>> <<case 0 1>> <<He>> pushes <<his>> $NPCList[_n].penisdesc against your $worn.face.name. <<He>> seems frustrated. <<damageFaceCover 2>> <<case 2>> <span class="lblue"><<He>> moves <<his>> <<= npcHasStrapon(_n) ? "strap-on" : "penis">> away from your mouth.</span> <<set $NPCList[_n].penis to 0>><<set $mouthuse to 0>><<set $mouthstate to 0>> <</switch>> <</if>> <<elseif $rng gte 1 and !$npcSub>> <span class="purple"><<He>> pushes <<his>> $NPCList[_n].penisdesc against your lips.</span> <<if $NPCList[_n].type is "plant" and !["peniskiss","penislick"].includes($mouthactiondefault)>> <span class="pink">Nectar glistens on the tip.</span> <</if>> <<set $NPCList[_n].penis to "mouthimminent">><<submission 5 _n>><<set $mouthstate to "imminent">><<set $speechmouthimminent to 1>> <</if>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].penis is "chest">> <<if $rng gte 101>> <<He>> moves <<his>> <<= npcHasStrapon(_n) ? "strap-on" : "penis">> away from your chest. <<set $NPCList[_n].penis to 0>><<set $chestuse to 0>> <<elseif $rng gte 1>> <<submission 3 _n>><<playWithBreasts>> <<if $breastcup is "none">> <<if $npcSub>>You rub<<else>><<He>> rubs<</if>> <<his>> $NPCList[_n].penisdesc against your <<breasts>>. <<set $speechchestrub to 1>> <<else>> <<if $npcSub>>You rub<<else>><<He>> rubs<</if>> <<his>> $NPCList[_n].penisdesc between your <<breasts>>. <<set $speechbreastrub to 1>> <</if>> <</if>> <</if>> <<if $NPCList[_n].penis is "footjob">> <<if $rng gte 101 or ($penisuse isnot "feet" and $vaginause isnot "feet")>> <span class="blue"><<He>> stops pressing <<his>> foot against your <<genitals>>.</span> <<set $NPCList[_n].penis to 0>> <<if ($player.penisExist or playerHasStrapon()) and $penisuse is "feet">> <<set $penisuse to 0>> <</if>> <<if $player.vaginaExist and $vaginause is "feet">> <<set $vaginause to 0>> <</if>> <<else>> <<if $penisuse is "feet">> <<He>> presses your <<penis>> against your stomach with <<his>> foot and rubs your <<glans>> between <<his>> toes. <<set $speechpenisfoot to 1>><<neutral 5 "genitals" _n>><<violence 1 1 1 1 _n>> <<elseif $vaginause is "feet">> <<He>> presses and teases your <<pussy>> with <<his>> foot. <<set $speechvaginafoot to 1>><<neutral 5 "genitals" _n>><<violence 1 1 1 1 _n>> <</if>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].penis is "otherfrot">> <<if $rng gte 101>> <span class="blue"><<He>> shifts <<his>> ass and presses <<his>> anus against your <<penis>>.</span> <<set $penisuse to "otheranus">><<set $NPCList[_n].penis to "otheranusentrance">><<set $penisstate to "otheranusentrance">><<set $speechotheranusentrance to 1>> <<else>> <<if $npcSub>>You rub<<else>><<He>> rubs<</if>> <<his>> ass against your <<penis>>. <<sex 5 "genital" _n>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].penis is "otheranus">> <<if $rng gte 101>> <span class="purple"><<He>> moves <<his>> pelvis away, releasing your <<penis>> from <<his>> anus.</span> <<sex 30 "genital" _n>><<set $NPCList[_n].penis to "otheranusimminent">><<set $penisstate to "otheranusimminent">><<set $speechotheranusimminent to 1>> <<if playerHasStrapon()>><<violence 1 1 1 0>> <<else>><<bruise penis>><<violence 1>><</if>> <<elseif $rng gte 1>> <<if $enemyanger gte 100>> <<if $enemyarousal gte (($enemyarousalmax / 5) * 4)>> <<He>> continues to fuck your <<penis>> with <<his>> ass, <<his>> movements violent and erratic. <<elseif $enemyarousal gte (($enemyarousalmax / 5) * 2)>> <<He>> continues to ride you, <<if !playerHasStrapon()>>your penis helpless as it's fucked.<<else>>relishing the feel of your strap-on.<</if>> <<else>> <<He>> fucks your <<penis>> with rough movements, intent on showing you who's boss. <</if>> <<elseif $enemyanger gte 20>> <<if $enemyarousal gte (($enemyarousalmax / 5) * 4)>> <<if playerHasStrapon()>> <<his>> ass twitches around your strap-on as <<he>> fucks you with wild abandon. <<else>> You feel <<his>> ass twitch around your length as <<he>> fucks you. <</if>> <<elseif $enemyarousal gte (($enemyarousalmax / 5) * 2)>> <<if playerHasStrapon()>> <<He>> continues to fuck your strap-on, relishing your sex toy inside <<him>>. <<else>> <<He>> continues to violate your <<penis>>, using you as a sex toy. <</if>> <<else>> <<He>> fucks your <<penis>>, taking as much of you into <<his>> ass as <<he>> can. <</if>> <<else>> <<if $enemyarousal gte (($enemyarousalmax / 5) * 4)>> <<if $npcSub>>You continue thrusting into <<him>><<else>><<He>> continues riding your <<penis>><</if>>, <<his>> anus rhythmically pounding your length. <<His>> body jerks whenever you hit a sensitive spot. <<elseif $enemyarousal gte (($enemyarousalmax / 5) * 2)>> <<if $npcSub>>You continue thrusting into <<him>><<else>><<He>> continues riding your <<penis>><</if>>, <<his>> anus rhythmically pounding your length. <<else>> <<if $npcSub>>You press into <<his>> ass<<else>><<He>> rides your <<penis>><</if>> with steady movements. <</if>> <</if>> <<sex 30 "genital" _n>><<set $speechotheranuspenetrated to 1>> <<if playerHasStrapon()>><<violence 1 1 1 0>> <<else>><<bruise penis>><<violence 1>><</if>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].penis is "otheranusimminent">> <<if $rng gte 101>> <span class="blue"><<He>> stops pressing <<his>> ass against your <<penis>>.</span> <<set $NPCList[_n].penis to "otheranusentrance">><<set $penisstate to "otheranusentrance">><<set $speechotheranusentrance to 1>> <<elseif $rng gte 1>> <<if $nopenile is 0>> <<set $penisactiondefault to "otheranustake">> <<if ((playerPenisSize() is -1 and $arousal lte ($arousalmax / 5) * 4) or (playerPenisSize() is -2 and $arousal lte ($arousalmax / 10) * 9))>> <<He>> presses <<his>> ass against the tip of your <<penis>>, trying to take you in. <span class="blue">But you don't have an erection.</span> <<set $speechpenissmall to 1>><<set $enemyanger += 5>> <<elseif playerPenisSize() lte 2 or playerPenisSize() is 3 and random(1, 100) gte 70 or playerPenisSize() gte 4 and random(1, 100) gte 90>> <<if playerHasStrapon() or $player.virginity.penile isnot true>> <span class="pink"><<He>> eases your <<penis>> into <<his>> ass, swallowing you to the base.</span> <<sex 30 "genital" _n>><<set $speechotheranuspenetrated to 1>> <<if playerHasStrapon()>><<violence 1 1 1 0>> <<else>><<bruise penis>><<takeTempleVirginity $NPCList[_n].fullDescription "penile">><<violence 1>><<raped>><<penisraped>><</if>> <<elseif $player.virginity.penile is true>> <span class="pink"><<He>> eases your virgin penis into <<his>> ass,</span><span class="red"> separating your foreskin from your glans and</span> <<virginitylosttext $NPCList[_n].fullDescription>> <<sex 100 "genital" _n>><<takeVirginity $NPCList[_n].fullDescription "penile">><<bruise penis>><<violence 100>><<raped>><<penisraped>><<set $speechpenisvirgin to 1>> <</if>> <<penilestat>><<set $NPCList[_n].penis to "otheranus">><<takeNPCVirginity _n "anal">><<set $penisstate to "otheranus">> <<if playerPenisSize() gte 4>> <<He>> looks proud to have taken something so big. <</if>> <<else>> <<He>> presses <<his>> ass against the tip of your <<penis>>, trying to take you in. <span class="blue">Your girth proves too much.</span> <<set $speechpenisbig to 1>><<set $enemyanger += 5>> <</if>> <<else>> Respecting your wishes, <<he>> does not envelop your <<penis>> with <<his>> ass, instead teasing the tip of your <<glans>>. <<sex 15 "genital" _n>><<set $speechotheranuswithhold to 1>> <</if>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].penis is "otheranusentrance">> <<if $rng gte 101>> <span class="lblue"><<He>> moves <<his>> ass away from your <<penis>>.</span> <<set $NPCList[_n].penis to 0>><<set $penisuse to 0>><<set $penisstate to 0>> <<elseif $rng gte 1>> <<if $worn.over_lower.vagina_exposed is 0>> <<if $npcSub>>You rub<<else>><<He>> rubs<</if>> <<his>> ass against your <<penis>> through your $worn.over_lower.name. <<sex 5 "genital" _n>><<set $worn.over_lower.integrity -= 10>><<set $speechotheranusentrance to 1>> <<elseif $worn.lower.vagina_exposed is 0>> <<if $npcSub>>You rub<<else>><<He>> rubs<</if>> <<his>> ass against your <<penis>> through your $worn.lower.name. <<sex 5 "genital" _n>><<set $worn.lower.integrity -= 10>><<set $speechotheranusentrance to 1>> <<elseif $worn.lower.vagina_exposed is 1 and $worn.over_lower.vagina_exposed is 1>> <<rng>> <<if $worn.under_lower.vagina_exposed is 0>> <<if $npcSub>>You rub<<else>><<He>> rubs<</if>> <<his>> ass against your <<penis>> through your $worn.under_lower.name. <<sex 5 "genital" _n>><<set $worn.under_lower.integrity -= 10>><<set $speechotheranusentrance to 1>> <<elseif $worn.under_lower.vagina_exposed is 1>> <<if $rng gte 71>> <<if $NPCList[_n].chastity.anus.includes("shield")>> <<if $npcSub>>You rub<<else>><<He>> rubs<</if>> <<his>> $NPCList[_n].chastity.anus against your <<penis>><<if playerChastity("penis")>><<set $worn.genitals.integrity -= 10>> through your $worn.genitals.name<</if>>. <<sex 25 "genital" _n>><<set $speechNPCChastity to 1>> <<elseif playerChastity("penis")>> <<if $worn.genitals.name is "chastity parasite">> <<if $npcSub>>You rub<<else>><<He>> rubs<</if>> <<his>> ass against your $worn.genitals.name, <span class="lewd">leaving you feeling more aroused.</span> <<arousal 100 "genitals">><<set $worn.genitals.integrity -= 5>> <<else>> <<if $npcSub>>You rub<<else>><<He>> rubs<</if>> <<his>> ass against your <<penis>> through your $worn.genitals.name. <<set $worn.genitals.integrity -= 10>> <</if>> <<sex 20 "genital" _n>><<set $speechchastity to 1>> <<elseif $nopenile is 1 and !$npcSub>> <span class="purple"><<He>> presses <<his>> ass against your <<penis>>.</span> <<sex 20 "genital" _n>><<set $NPCList[_n].penis to "otheranusimminent">><<set $penisstate to "otheranusimminent">><<set $speechotheranusimminent to 1>> <<elseif $penisWetness gte (playerPenisSize() * 15) + random(1, 40) or random(1, 2) is 2 and !$npcSub>> <<He>> presses <<his>> ass against your <<penis>>. <<penis_lube_text>> <span class="pink">your tip is pushed into <<him>>, a thrust away from being enveloped.</span> <<sex 20 "genital" _n>><<set $NPCList[_n].penis to "otheranusimminent">><<set $penisstate to "otheranusimminent">><<set $speechotheranusimminent to 1>> <<elseif !$npcSub>> <<He>> presses <<his>> ass against your <<penis>>, <span class="blue">but fails to envelop you.</span> Your <<penisSimple>> angles away and rubs between <<his>> cheeks. <<sex 5 "genital" _n>><<set $speechotheranusimminent to 1>> <</if>> <<elseif $rng gte 1>> <<if !playerChastity("penis")>> <<if $npcSub>>You rub<<else>><<He>> rubs<</if>> your <<penis>> between <<his>> cheeks. <<sex 10 "genital" _n>> <<else>> <<if $npcSub>>You rub<<else>><<He>> rubs<</if>> <<his>> cheeks using your $worn.genitals.name<<if $worn.genitals.name is "chastity parasite">>, <span class="lewd">making you feel more aroused.</span><<arousal 100 "genitals">><<else>>.<</if>> <<sex 5 "genital" _n>> <</if>> <</if>> <</if>> <</if>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].penis is "mouthotheranus">> <<if $rng gte 1>> <<if $enemyarousal gte (($enemyarousalmax / 5) * 3)>> <<He>> grinds <<his>> ass against your mouth. <<else>> <<He>> slowly moves <<his>> ass against your lips. <</if>> <<sex 3 "mouth" _n>><<set $speechmouthotheranus to 1>> <<if $mouthactiondefault is "anallick">> <<set $speechanallick to 1>> <<elseif $mouthactiondefault is "analkiss">> <<set $speechanalkiss to 1>> <</if>> <<else>> <span class="purple"><<He>> moves <<his>> ass away from your face.</span> <<set $mouthuse to 0>><<set $mouthstate to 0>><<set $NPCList[_n].penis to 0>> <<set $NPCList[_n].location.genitals = 0>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].penis is "penisentrance" and !$npcSub>> <<if $rng gte 51 and playerChastity("penis")>> <<He>> caresses <<his>> <<npcPenisSimple _n>> against your $worn.genitals.name. <<set $penisstate to "otherpenisimminent">><<set $NPCList[_n].penis to "penisimminent">><<sex 10 "genital" _n>> <<neutral 1 _n>> <<elseif $rng gte 51 and !playerChastity("penis")>> <<He>> caresses your <<penis>> with <<his>> <<npcPenisSimple _n>>, <span class="purple">teasing what's to come.</span> <<set $penisstate to "otherpenisimminent">><<set $NPCList[_n].penis to "penisimminent">><<sex 10 "genital" _n>> <<else>> <<if playerChastity("penis")>> <<He>> hovers <<his>> <<npcPenisSimple _n>> closer to your $worn.genitals.name. <<else>> <<He>> hovers <<his>> <<npcPenisSimple _n>> closer to your <<penis>>. <</if>> <<neutral 1 _n>> <</if>> <<set $speechfencingentrance to 1>> <<elseif $NPCList[_n].penis is "penisimminent" and !$npcSub>> <<He>> thrusts forward, <span class="pink"> <<if $enemyarousal gte (($enemyarousalmax / 10) * 7)>> fencing <<elseif $enemyarousal gte (($enemyarousalmax / 10) * 4)>> smashing <<else>> pressing <</if>> <<if playerChastity("penis")>> <<his>> <<npcPenisSimple _n>> against your $worn.genitals.name. <<set $worn.genitals.integrity -= 10>><<set $speechchastity to 1>> <<else>> <<his>> <<npcPenisSimple _n>> against your <<penis>>. <</if>> </span> <<set $penisstate to "otherpenis">><<set $NPCList[_n].penis to "penis">><<sex 20 "genital" _n>><<set $speechpenispenis to 1>> <<elseif $NPCList[_n].penis is "penis">> <<if $rng gte 1>> <<if playerChastity("penis")>> <<if $enemyarousal gte $enemyarousalmax * 0.8>> <<He>> thrusts <<his>> hips, <<if $npcSub>>instinctively<</if>> pounding into your $worn.genitals.name with <<his>> cock with a violent intensity. <<elseif $enemyarousal gte $enemyarousalmax * 0.6>> <<He>> thrusts <<his>> hips, <<if $npcSub>>instinctively<</if>> smashing <<his>> <<npcPenisSimple _n>> against your $worn.genitals.name. <<elseif $enemyarousal gte $enemyarousalmax * 0.4>> <<He>> thrusts <<his>> hips, rubbing and kneading your $worn.genitals.name and <<his>> <<npcPenisSimple _n>> together. <<else>> <<He>> rubs and kneads your $worn.genitals.name and <<his>> <<npcPenisSimple _n>> together. <</if>> <<if $enemyarousal gte $enemyarousalmax * 0.6 and !wearingCondom(_n) and $worn.genitals.name is "chastity parasite">> <span class="purple"><<His>> precum coats your $worn.genitals.name,</span> <span class="lewd">the parasite sending a wave of pleasure through your <<penis>>.</span><<set $worn.genitals.integrity -= 5>> <<arousal 400 "genitals">><<if !$earSlime.defyCooldown and $earSlime.vibration lt 120>><<set $earSlime.vibration += 10>><</if>> <<elseif $enemyarousal gte $enemyarousalmax * 0.6 and !wearingCondom(_n)>> <span class="purple">Your precum mingles.</span><<purity -1>><<set $worn.genitals.integrity -= 10>> <</if>> <<set $worn.genitals.integrity -= 5>> <<if $worn.genitals.name is "chastity parasite">><<arousal 100 "genitals">><</if>> <<set $speechchastity to 1>> <<elseif $enemyarousal gte $enemyarousalmax * 0.8>> <<He>> thrusts <<his>> hips, <<if $npcSub>>instinctively<</if>> pounding your <<penis>> against <<his>> cock with a violent intensity. <<if $penisWetness gte 45 and !playerHasStrapon() and !wearingCondom(_n) and !wearingCondom("player")>> <span class="purple">Your precum mingles.</span><<purity -1>> <</if>> <<elseif $enemyarousal gte $enemyarousalmax * 0.6>> <<He>> thrusts <<his>> hips, <<if $npcSub>>instinctively<</if>> smashing <<his>> <<npcPenisSimple _n>> against your <<penis>>. <<if $penisWetness gte 45 and !playerHasStrapon() and !wearingCondom(_n) and !wearingCondom("player")>> <span class="purple">Your precum mingles.</span><<purity -1>> <</if>> <<elseif $enemyarousal gte $enemyarousalmax * 0.4>> <<He>> thrusts <<his>> hips, rubbing and kneading your <<penises>> together. <<elseif $enemyarousal gte $enemyarousalmax * 0.2>> <<He>> rubs and kneads your <<penises>> together. <<else>> <<He>> kneads and caresses your <<penises>> together. <</if>> <<sex 20 "genital" _n>><<set $speechpenispenis to 1>> <<else>> <span class="lblue"><<He>> moves <<his>> <<npcPenisSimple _n>> away from yours.</span> <<set $penisuse to 0>><<set $NPCList[_n].penis to 0>> <</if>> <</if>> <!-- VAGINA START --> <<rng>> <<if $NPCList[_n].vagina is "clothed" and $npcSub isnot 1>> <<if $enemyarousal gte 40>> <span class="blue"><<He>> <<npcUndressText $NPCList[_n] "lower" "self">>, <<npcRevealText $NPCList[_n] "lower">>.</span> <<set $NPCList[_n].vagina to 0>> <<if $NPCList[_n].penis isnot "none">> <<npcGenitalReaction $NPCList[_n]>> <<set $NPCList[_n].penis to 0>> <</if>> <</if>> <<if $NPCList[_n].fullDescription is "Sydney">> <<sydneyExpose>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].vagina is "frot">> <<if $rng gte 101>> <span class="blue"><<He>> moves <<his>> clit away and presses <<his>> hungry pussy against your <<penis>>.</span> <<set $penisuse to "othervagina">><<set $NPCList[_n].vagina to "penisentrance">><<set $penisstate to "entrance">><<set $speechpenisentrance to 1>> <<else>> <<if $npcSub>>You rub<<else>><<He>> rubs<</if>> <<his>> clit against your <<glans>>. <<sex 5 "genital" _n>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].vagina is "penis">> <<if $rng gte 101>> <span class="purple"><<He>> moves <<his>> pelvis away, releasing your <<penis>> from <<his>> vagina.</span> <<sex 30 "genital" _n>><<set $NPCList[_n].vagina to "penisimminent">><<set $penisstate to "imminent">><<set $speechpenisimminent to 1>> <<if playerHasStrapon()>><<violence 1 1 1 0>> <<else>><<bruise penis>><<violence 1>><</if>> <<elseif $rng gte 1>> <<if $enemyanger gte 100>> <<if $enemyarousal gte (($enemyarousalmax / 5) * 4)>> <<He>> continues to fuck your <<penis>>, <<his>> movements violent and erratic as <<his>> pussy slides along your length. <<elseif $enemyarousal gte (($enemyarousalmax / 5) * 2)>> <<if !playerHasStrapon()>> <<He>> continues to ride you, your penis helpless as it's fucked. <<else>> <<He>> continues to ride your <<penis>>. <</if>> <<else>> <<He>> fucks your <<penis>> with rough movements, intent on showing you who's boss. <</if>> <<elseif $enemyanger gte 20>> <<if $enemyarousal gte (($enemyarousalmax / 5) * 4)>> <<if playerHasStrapon()>> <<His>> vagina twitches and throbs around your strap-on as <<he>> fucks you. <<else>> You feel <<his>> vagina twitch and throb around your length as <<he>> fucks you. <</if>> <<elseif $enemyarousal gte (($enemyarousalmax / 5) * 2)>> <<He>> continues to violate your <<penis>>, using you as a sex toy. <<else>> <<He>> fucks your <<penis>>, taking as much of you into <<his>> vagina as <<he>> can. <</if>> <<else>> <<if $enemyarousal gte (($enemyarousalmax / 5) * 4)>> <<if $npcSub>>You continue thrusting into <<him>><<else>><<He>> continues riding your <<penis>><</if>>, <<his>> vagina rhythmically kneading and squeezing your length. <<His>> body jerks whenever you hit a sensitive spot. <<elseif $enemyarousal gte (($enemyarousalmax / 5) * 2)>> <<if $npcSub>>You continue thrusting into <<him>><<else>><<He>> continues riding your <<penis>><</if>>, <<his>> vagina rhythmically kneading and squeezing your length. <<else>> <<if $npcSub>>You press into <<his>> pussy<<else>><<He>> rides your <<penis>><</if>> with steady movements. <</if>> <</if>> <<sex 30 "genital" _n>><<set $speechpenispenetrated to 1>> <<if playerHasStrapon()>><<violence 1 1 1 0>> <<else>><<bruise penis>><<violence 1>><</if>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].vagina is "penisimminent">> <<if $rng gte 101>> <span class="blue"><<He>> stops pressing <<his>> pussy against your <<penis>>.</span> <<set $NPCList[_n].vagina to "penisentrance">><<set $penisstate to "entrance">><<set $speechpenisentrance to 1>> <<elseif $rng gte 1>> <<if $nopenile is 0>> <<if ((playerPenisSize() is -1 and $arousal lte ($arousalmax / 5) * 4) or (playerPenisSize() is -2 and $arousal lte ($arousalmax / 10) * 9))>> <<He>> presses <<his>> pussy against the tip of your <<penis>>, trying to take you in. <span class="blue">But you don't have an erection.</span> <<set $speechpenissmall to 1>><<set $enemyanger += 5>> <<elseif playerPenisSize() lte 2 or playerPenisSize() is 3 and random(1, 100) gte 70 or playerPenisSize() gte 4 and random(1, 100) gte 90>> <<if playerHasStrapon() or $player.virginity.penile isnot true>> <span class="pink"><<He>> eases your <<penis>> into <<his>> pussy, swallowing you to the base.</span> <<sex 30 "genital" _n>><<set $speechpenispenetrated to 1>> <<if playerHasStrapon()>><<violence 1 1 1 0>> <<else>><<bruise penis>><<takeTempleVirginity $NPCList[_n].fullDescription "penile">><<violence 1>><<raped>><<penisraped>><</if>> <<elseif $player.virginity.penile is true>> <span class="pink"><<He>> eases your virgin penis into <<his>> pussy,</span><span class="red"> separating your foreskin from your glans and <<virginitylosttext $NPCList[_n].fullDescription>></span> <<sex 100 "genital" _n>><<takeVirginity $NPCList[_n].fullDescription "penile">><<bruise penis>><<violence 100>><<raped>><<penisraped>><<set $speechpenisvirgin to 1>> <</if>> <<penilestat>><<set $NPCList[_n].vagina to "penis">><<takeNPCVirginity _n "vaginal">><<set $penisstate to "penetrated">> <<if playerPenisSize() gte 4>> <<He>> looks proud to have taken something so big. <</if>> <<else>> <<He>> presses <<his>> pussy against the tip of your <<penis>>, trying to take you in. <span class="blue">Your girth proves too much.</span> <<He>> frots against your length. <<set $speechpenisbig to 1>><<set $enemyanger += 5>> <</if>> <<else>> Respecting your wishes, <<he>> does not envelop your <<penis>> with <<his>> vagina, instead teasing the tip of your glans. <<sex 15 "genital" _n>><<set $speechpeniswithhold to 1>> <</if>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].vagina is "penisentrance">> <<if $rng gte 101>> <span class="lblue"><<He>> moves <<his>> pussy away from your <<penis>>.</span> <<set $NPCList[_n].vagina to 0>><<set $penisuse to 0>><<set $penisstate to 0>> <<elseif $rng gte 1>> <<if $worn.over_lower.vagina_exposed is 0>> <<if $npcSub>>You rub<<else>><<He>> rubs<</if>> <<his>> pussy against your <<penis>> through your $worn.over_lower.name. <<sex 5 "genital" _n>><<set $worn.over_lower.integrity -= 10>><<set $speechpenisentrance to 1>> <<elseif $worn.lower.vagina_exposed is 0>> <<if $npcSub>>You rub<<else>><<He>> rubs<</if>> <<his>> pussy against your <<penis>> through your $worn.lower.name. <<sex 5 "genital" _n>><<set $worn.lower.integrity -= 10>><<set $speechpenisentrance to 1>> <<elseif $worn.lower.vagina_exposed is 1 and $worn.over_lower.vagina_exposed is 1>> <<rng>> <<if $worn.under_lower.vagina_exposed is 0>> <<if $npcSub>>You rub<<else>><<He>> rubs<</if>> <<his>> pussy against your <<penis>> through your $worn.under_lower.name. <<sex 5 "genital" _n>><<set $worn.under_lower.integrity -= 10>><<set $speechpenisentrance to 1>> <<elseif $worn.under_lower.vagina_exposed is 1>> <<if $rng gte 51>> <<if $NPCList[_n].chastity.vagina.includes("chastity")>> <<if $npcSub>>You rub<<else>><<He>> rubs<</if>> <<his>> $NPCList[_n].chastity.vagina against your <<penis>><<if playerChastity("penis")>><<set $worn.genitals.integrity -= 10>> through your $worn.genitals.name<</if>>. <<sex 25 "genital" _n>><<set $speechNPCChastity to 1>> <<elseif playerChastity("penis")>> <<if $worn.genitals.name is "chastity parasite">> <<if $npcSub>>You rub<<else>><<He>> rubs<</if>> <<his>> pussy against your $worn.genitals.name, <span class="lewd">leaving you feeling more aroused.</span> <<arousal 100 "genitals">><<set $worn.genitals.integrity -= 5>> <<else>> <<if $npcSub>>You rub<<else>><<He>> rubs<</if>> <<his>> pussy against your <<penis>> through your $worn.genitals.name. <<set $worn.genitals.integrity -= 10>> <</if>> <<sex 20 "genital" _n>><<set $speechchastity to 1>> <<elseif $nopenile is 1 and !$npcSub>> <span class="purple"><<He>> presses <<his>> pussy against your <<penis>>.</span> <<sex 20 "genital" _n>><<set $NPCList[_n].vagina to "penisimminent">><<set $penisstate to "imminent">><<set $speechpenisimminent to 1>> <<elseif $penisWetness gte (playerPenisSize() * 15) + random(1, 40) or random(1, 2) is 2 and !$npcSub>> <<He>> presses <<his>> pussy against your <<penis>>. <<penis_lube_text>> <span class="pink">your tip is pushed into <<him>>, a thrust away from being enveloped.</span> <<sex 20 "genital" _n>><<set $NPCList[_n].vagina to "penisimminent">><<set $penisstate to "imminent">><<set $speechpenisimminent to 1>> <<elseif !$npcSub>> <<He>> presses <<his>> pussy against your <<penis>>, <span class="blue">but fails to envelop you.</span> Your <<penisSimple>> angles away and rubs against <<his>> clit. <<sex 5 "genital" _n>><<set $speechpenisimminent to 1>> <<if $enemyarousal gte ($enemyarousalmax / 2) and random(1, 3) is 3>> Lewd fluid drips from <<his>> pussy, <span class="blue">lubricating your cock.</span> <<bodyliquid "penis" "goo">> <</if>> <</if>> <<elseif $rng gte 1>> <<if !playerChastity("penis")>> <<if $npcSub>> You tease <<his>> labia with your <<penis>>. <<else>> <<He>> teases your <<penis>> with <<his>> labia. <</if>> <<sex 10 "genital" _n>> <<else>> <<if $npcSub>> You tease <<his>> labia with your <<penis>>. <<else>> <<He>> teases your <<penis>> with <<his>> labia. <</if>> <<sex 5 "genital" _n>> <</if>> <</if>> <</if>> <</if>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].vagina is "lefthand" or $NPCList[_n].vagina is "righthand">> /*<<set $_npchand to $NPCList[_n].vagina.slice(0,4)>>*/ <<if $rng lte 80>> <<He>> strokes <<his>> pussy with <<his>> hand. <<neutral 1 _n>><<set $enemyarousal += 20>> <<else>> <span class="blue"><<He>> moves <<his>> hand away from <<his>> pussy.</span> <<set $NPCList[_n][$NPCList[_n].vagina] to 0>><<set $NPCList[_n].vagina to 0>> <</if>> <</if>> <<if $NPCList[_n].vagina is "mouth">> <<if $enemyanger gte 100>> <<He>> covers your mouth with <<his>> pussy, making it difficult to breathe. <<if $NPCList[_n].type is "plant" and $mouthactiondefault isnot "vaginalick">> <span class="pink">Sweet nectar leaks into your mouth.</span> <<nectarfed 8>> <</if>> <<violence 3>><<bruise face>><<set $speechvaginamouth to 1>> <<else>> <<if $mouthsubmit is 1>> <<if $rng gte 1>> <<if !$npcSub>> <<He>> rubs <<his>> pussy against your lips. <<else>> You continue to violate <<his>> pussy with your lips. <</if>> <<if $NPCList[_n].type is "plant" and $mouthactiondefault isnot "vaginalick">> <span class="pink">You can taste sweet nectar.</span> <<nectarfed 8>> <<elseif $enemyarousal gte (($enemyarousalmax / 5) * 3)>> You can taste <<his>> juices. <</if>> <<sex 3 "mouth" _n>><<set $speechvaginamouth to 1>> <<else>> <<He>> moves <<his>> pussy away from your face. <<set $mouthuse to 0>><<set $mouthstate to 0>><<set $NPCList[_n].vagina to 0>> <</if>> <<else>> <<if $rng gte 1>> <<if !$npcSub>> <<He>> rubs <<his>> pussy against your lips. <<else>> You continue to violate <<his>> pussy with your lips. <</if>> <<if $NPCList[_n].type is "plant" and $mouthactiondefault isnot "vaginalick">> <span class="pink">You can taste sweet nectar.</span> <<nectarfed 8>> <<elseif $enemyarousal gte (($enemyarousalmax / 5) * 3)>> You can taste <<his>> juices. <</if>> <<sex 3 "mouth" _n>><<set $speechvaginamouth to 1>> <<else>> <<He>> moves <<his>> pussy away from your face. <<set $mouthuse to 0>><<set $mouthstate to 0>><<set $NPCList[_n].vagina to 0>> <</if>> <</if>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].vagina is "vaginaentrance" and !$npcSub>> <<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 "genital" _n>> <<else>> <<He>> hovers <<his>> pussy closer to yours. <<neutral 1 _n>> <</if>> <<set $speechtribentrance to 1>> <<elseif $NPCList[_n].vagina is "vaginaimminent" and !$npcSub>> <<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 "genital" _n>><<set $speechvaginavagina to 1>> <<elseif $NPCList[_n].vagina is "vagina">> <<if $rng gte 1>> <<if $enemyarousal gte $enemyarousalmax * 0.8>> <<He>> thrusts <<his>> hips, <<if $npcSub>>instinctively<</if>> pounding your <<pussy>> against <<hers>> 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, <<if $npcSub>>instinctively<</if>> 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 kneads your <<pussy>> with <<his>> own. <<else>> <<He>> kneads and kisses your <<pussy>> with <<his>> own. <</if>> <<sex 20 "genital" _n>><<set $speechvaginavagina to 1>> <<else>> <span class="lblue"><<He>> moves <<his>> pussy away from yours.</span> <<set $vaginause to 0>><<set $NPCList[_n].vagina to 0>> <</if>> <</if>> <<if $NPCList[_n].vagina is "leftarm">> <<if $rng gte 1>> <<if !$npcSub>> <<He>> rubs <<his>> pussy against your fingers. <<submission 2 _n>> <<else>> You rub <<his>> pussy with your fingers. <</if>> <<else>> <<He>> moves your hand away from <<his>> pussy. <<set $leftarm to 0>><<set $NPCList[_n].vagina to 0>><<set $leftactiondefault to "leftplay">> <</if>> <</if>> <<if $NPCList[_n].vagina is "rightarm">> <<if $rng gte 1>> <<if !$npcSub>> <<He>> rubs <<his>> pussy against your fingers. <<submission 2 _n>> <<else>> You rub <<his>> pussy with your fingers. <</if>> <<else>> <<He>> moves your hand away from <<his>> pussy. <<set $rightarm to 0>><<set $NPCList[_n].vagina to 0>><<set $rightactiondefault to "rightplay">> <</if>> <</if>> <<rng>> <<if $NPCList[_n].vagina is "feet">> <<set $speechfeet to 1>> <<if $rng gte 1>> <<if !$npcSub>> <<He>> rubs <<his>> pussy against your feet. <<submission 2 _n>> <<else>> You rub <<his>> pussy with feet. <</if>> <<else>> <<He>> moves your feet away from <<his>> pussy. <<set $feetuse to 0>><<set $NPCList[_n].vagina to 0>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].vagina is "footjob">> <<if $rng gte 101 or ($penisuse isnot "feet" and $vaginause isnot "feet")>> <span class="blue"><<He>> stops pressing <<his>> foot against your <<genitals>>.</span> <<set $NPCList[_n].vagina to 0>> <<if ($player.penisExist or playerHasStrapon()) and $penisuse is "feet">> <<set $penisuse to 0>> <</if>> <<if $player.vaginaExist and $vaginause is "feet">> <<set $vaginause to 0>> <</if>> <<else>> <<if $penisuse is "feet">> <<He>> presses your <<penis>> against your stomach with <<his>> foot and rubs your <<glans>> between <<his>> toes. <<set $speechpenisfoot to 1>><<neutral 5 "genitals" _n>><<violence 1>> <<elseif $vaginause is "feet">> <<He>> rubs <<his>> foot against your <<pussy>>. <<set $speechvaginafoot to 1>><<neutral 5 "genitals" _n>><<violence 1>> <</if>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].vagina is "otherfrot">> <<if $rng gte 101>> <<if $NPCList[_n].condom and $NPCList[_n].condom.willUse is true and !$player.condom and $parasite.penis.name is undefined>> <<if playerChastity("penis")>> <<He>> tries to put a condom on your penis, but can't seem to get it over your $worn.genitals.name. <span class="red"><<He>> quickly gives up.</span> <<set $NPCList[_n].condom.willUse to false>> <<else>> <span class="green"><<He>> slips <<condomDesc _n>> on your <<penis>>.</span> <<equipNPCCondom _n "player">> <</if>> <</if>> <span class="blue"><<He>> shifts <<his>> ass and presses <<his>> anus against your <<penis>>.</span> <<set $penisuse to "otheranus">><<set $NPCList[_n].vagina to "otheranusentrance">><<set $penisstate to "otheranusentrance">><<set $speechotheranusentrance to 1>> <<else>> <<He>> rubs <<his>> ass against your <<penis>>. <<sex 5 "genital" _n>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].vagina is "otheranus">> <<if $rng gte 101>> <span class="purple"><<He>> moves <<his>> pelvis away, releasing your <<penis>> from <<his>> anus.</span> <<sex 30 "genital" _n>><<set $NPCList[_n].vagina to "otheranusimminent">><<set $penisstate to "otheranusimminent">><<set $speechotheranusimminent to 1>> <<if playerHasStrapon()>><<violence 1 1 1 0>> <<else>><<bruise penis>><<violence 1>><</if>> <<elseif $rng gte 1>> <<if $enemyanger gte 100>> <<if $enemyarousal gte (($enemyarousalmax / 5) * 4)>> <<He>> continues to fuck your <<penis>> with <<his>> ass, <<his>> movements violent and erratic. Fluid from <<his>> pussy drools onto your length. <<elseif $enemyarousal gte (($enemyarousalmax / 5) * 2)>> <<if !playerHasStrapon()>> <<He>> continues to ride you, your penis helpless as it's fucked. <<else>> <<He>> continues to ride your <<penis>>. <</if>> <<else>> <<He>> fucks your <<penis>> with rough movements, intent on showing you who's boss. <</if>> <<elseif $enemyanger gte 20>> <<if $enemyarousal gte (($enemyarousalmax / 5) * 4)>> You feel <<his>> ass twitch around your length as <<he>> fucks you. <<elseif $enemyarousal gte (($enemyarousalmax / 5) * 2)>> <<He>> continues to violate your <<penis>>, using you as a sex toy. <<else>> <<He>> fucks your <<penis>>, taking as much of you into <<his>> ass as <<he>> can. <</if>> <<else>> <<if $enemyarousal gte (($enemyarousalmax / 5) * 4)>> <<He>> continues riding your <<penis>>, <<his>> anus rhythmically pounding your length. <<His>> body jerks whenever you hit a sensitive spot. <<elseif $enemyarousal gte (($enemyarousalmax / 5) * 2)>> <<He>> continues riding your <<penis>>, <<his>> anus rhythmically pounding your length. <<else>> <<He>> rides your <<penis>> with steady movements. <</if>> <</if>> <<sex 30 "genital" _n>><<set $speechotheranuspenetrated to 1>> <<if playerHasStrapon()>><<violence 1 1 1 0>> <<else>><<bruise penis>><<violence 1>><</if>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].vagina is "otheranusimminent">> <<if $rng gte 101>> <span class="blue"><<He>> stops pressing <<his>> ass against your <<penis>>.</span> <<set $NPCList[_n].vagina to "otheranusentrance">><<set $penisstate to "otheranusentrance">><<set $speechotheranusentrance to 1>> <<elseif $rng gte 1>> <<if $nopenile is 0>> <<if ((playerPenisSize() is -1 and $arousal lte ($arousalmax / 5) * 4) or (playerPenisSize() is -2 and $arousal lte ($arousalmax / 10) * 9))>> <<He>> presses <<his>> ass against the tip of your <<penis>>, trying to take you in. <span class="blue">But you don't have an erection.</span> <<set $speechpenissmall to 1>><<set $enemyanger += 5>> <<elseif playerPenisSize() lte 2 or playerPenisSize() is 3 and random(1, 100) gte 70 or playerPenisSize() gte 4 and random(1, 100) gte 90>> <<if playerHasStrapon() or $player.virginity.penile isnot true>> <span class="pink"><<He>> eases your <<penis>> into <<his>> ass, swallowing you to the base.</span> <<sex 30 "genital" _n>><<set $speechotheranuspenetrated to 1>> <<if playerHasStrapon()>><<violence 1 1 1 0>> <<else>><<bruise penis>><<takeTempleVirginity $NPCList[_n].fullDescription "penile">><<violence 1>><<raped>><<penisraped>><</if>> <<elseif $player.virginity.penile is true>> <span class="pink"> <<He>> eases your virgin penis into <<his>> ass,</span><span class="red"> separating your foreskin from your glans and <<virginitylosttext $NPCList[_n].fullDescription>></span> <<sex 100 "genital" _n>><<takeVirginity $NPCList[_n].fullDescription "penile">><<bruise penis>><<violence 100>><<raped>><<penisraped>><<set $speechpenisvirgin to 1>> <</if>> <<penilestat>><<takeNPCVirginity _n "anal">><<set $NPCList[_n].vagina to "otheranus">><<set $penisstate to "otheranus">> <<if playerPenisSize() gte 4>> <<He>> looks proud to have taken something so big. <</if>> <<else>> <<He>> presses <<his>> ass against the tip of your <<penis>>, trying to take you in. <span class="blue">Your girth proves too much.</span> <<set $speechpenisbig to 1>><<set $enemyanger += 5>> <</if>> <<else>> Respecting your wishes, <<he>> does not envelop your <<penis>> with <<his>> ass, instead teasing the tip of your <<glans>>. <<sex 15 "genital" _n>><<set $speechotheranuswithhold to 1>> <</if>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].vagina is "otheranusentrance">> <<if $rng gte 101>> <span class="lblue"><<He>> moves <<his>> ass away from your <<penis>>.</span> <<set $NPCList[_n].vagina to 0>><<set $penisuse to 0>><<set $penisstate to 0>> <<elseif $rng gte 1>> <<if $NPCList[_n].condom and $NPCList[_n].condom.willUse is true and !$player.condom and $parasite.penis.name is undefined and $worn.under_lower.vagina_exposed is 1 and $worn.lower.vagina_exposed is 1 and $worn.over_lower.vagina_exposed is 1>> <<if playerChastity("penis")>> <<He>> tries to put a condom on your penis, but can't seem to get it over your $worn.genitals.name. <span class="red"><<He>> quickly gives up.</span> <<set $NPCList[_n].condom.willUse to false>> <<else>> <span class="green"><<He>> slips <<condomDesc _n>> on your <<penis>>.</span> <<equipNPCCondom _n "player">> <</if>> <</if>> <<if $worn.over_lower.vagina_exposed is 0>> <<if $npcSub>>You rub<<else>><<He>> rubs<</if>> <<his>> ass against your <<penis>> through your $worn.over_lower.name. <<sex 5 "genital" _n>><<set $worn.over_lower.integrity -= 10>><<set $speechotheranusentrance to 1>> <<elseif $worn.lower.vagina_exposed is 0>> <<if $npcSub>>You rub<<else>><<He>> rubs<</if>> <<his>> ass against your <<penis>> through your $worn.lower.name. <<sex 5 "genital" _n>><<set $worn.lower.integrity -= 10>><<set $speechotheranusentrance to 1>> <<elseif $worn.lower.vagina_exposed is 1 and $worn.over_lower.vagina_exposed is 1>> <<rng>> <<if $worn.under_lower.vagina_exposed is 0>> <<if $npcSub>>You rub<<else>><<He>> rubs<</if>> <<his>> ass against your <<penis>> through your $worn.under_lower.name. <<sex 5 "genital" _n>><<set $worn.under_lower.integrity -= 10>><<set $speechotheranusentrance to 1>> <<elseif $worn.under_lower.vagina_exposed is 1>> <<if $rng gte 51>> <<if $NPCList[_n].chastity.anus.includes("shield")>> <<if $npcSub>>You rub<<else>><<He>> rubs<</if>> <<his>> $NPCList[_n].chastity.anus against your <<penis>><<if playerChastity("penis")>><<set $worn.genitals.integrity -= 10>> through your $worn.genitals.name<</if>>. <<sex 25 "genital" _n>><<set $speechNPCChastity to 1>> <<elseif playerChastity("penis")>> <<if $worn.genitals.name is "chastity parasite">> <<if $npcSub>>You rub<<else>><<He>> rubs<</if>> <<his>> ass against your $worn.genitals.name, <span class="lewd">leaving you feeling more aroused.</span> <<arousal 100 "genitals">><<set $worn.genitals.integrity -= 5>> <<else>> <<if $npcSub>>You rub<<else>><<He>> rubs<</if>> <<his>> ass against your <<penis>> through your $worn.genitals.name. <<set $worn.genitals.integrity -= 10>> <</if>> <<sex 25 "genital" _n>><<set $speechchastity to 1>> <<elseif $nopenile is 1 and !$npcSub>> <span class="purple"><<He>> presses <<his>> ass against your <<penis>>.</span> <<sex 20 "genital" _n>><<set $NPCList[_n].vagina to "otheranusimminent">><<set $penisstate to "otheranusimminent">><<set $speechotheranusimminent to 1>> <<elseif $penisWetness gte (playerPenisSize() * 15) + random(1, 40) or random(1, 2) is 2 and !$npcSub>> <<He>> presses <<his>> ass against your <<penis>>. <<penis_lube_text>> <span class="pink">your tip is pushed into <<him>>, a thrust away from being enveloped.</span> <<sex 20 "genital" _n>><<set $NPCList[_n].vagina to "otheranusimminent">><<set $penisstate to "otheranusimminent">><<set $speechotheranusimminent to 1>> <<elseif !$npcSub>> <<He>> presses <<his>> ass against your <<penis>>, <span class="blue">but fails to envelop you.</span> Your <<penisSimple>> angles away and rubs between <<his>> cheeks. <<sex 5 "genital" _n>><<set $speechotheranusimminent to 1>> <</if>> <<elseif $rng gte 1>> <<if !playerChastity("penis")>> <<if $npcSub>>You rub<<else>><<He>> rubs<</if>> your <<penis>> between <<his>> cheeks. <<sex 10 "genital" _n>> <<else>> <<if $npcSub>>You rub<<else>><<He>> rubs<</if>> <<his>> cheeks on your $worn.genitals.name<<if $worn.genitals.name is "chastity parasite">>, <span class="lewd">making you feel more aroused.</span><<arousal 100 "genitals">><<else>>.<</if>> <<sex 10 "genital" _n>> <</if>> <</if>> <</if>> <</if>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].vagina is "facesit">> <<if $consensual is 0 and $underwater isnot 1>> <<if ($oxygen gt 150 and $enemyanger gte 30) or $enemyanger gte (($enemyangermax / 5) * 4)>> <<oxygen -150>> <<if $worn.face.type.includes("covered") or $worn.face.type.includes("gag")>> <<if $enemyanger lt $enemyangermax/2>> <span class="lblue"><<He>> moves <<his>> pussy away from your mouth.</span> <<set $mouthuse to 0>><<set $mouthstate to 0>><<set $NPCList[_n].vagina to 0>> <<else>> <<switch random(0,2)>> <<case 0 1>> <<He>> continues to sit down full weight on your $worn.face.name. <<damageFaceCover 2>> <<case 2>> <span class="lblue"><<He>> moves <<his>> pussy away from your mouth.</span> <<set $mouthuse to 0>><<set $mouthstate to 0>><<set $NPCList[_n].vagina to 0>> <</switch>> <</if>> <<else>> <<print either( "<<He>> covers your face with <<his>> pussy and ass.", "<<His>> pussy and ass press down on your face.", "<<He>> continues to sit down full weight on your face.", "<<He>> smothers you under <<him>>.", "<<His>> pussy and ass press down on your mouth and nose." )>> <</if>> <<sex 1 "mouth" _n>><<bruise face>><<bruise face>> <<if $suffocationPhase isnot 2>> <<if $oxygen gte 900>> <span class="blue">You struggle for breath.</span> <<violence 3>> <<elseif $oxygen gte 600>> <span class="purple">You can't breathe!</span> <<violence 5>> <<elseif $oxygen gte 300>> <span class="pink">You feel light-headed.</span> <<violence 10>> <<elseif $oxygen gte 1>> <span class="pink">You see stars.</span> <<violence 20>> <<else>> <span class="red">You are suffocating.</span> <<violence 50>> <<suffocatepass>> <</if>> <</if>> <<elseif $oxygen lte 900>> <<print either( "<<He>> lets you breathe in air from under <<him>>.", "<<He>> lifts off slightly, just enough to let you breathe a little.", "You are able to snatch in some small amount of air from under <<him>>." )>> <<if $neckuse isnot "hand">> <<suffocatepass -1>> <</if>> <</if>> <</if>> <<if $settings.analingusGivingEnabled and ($rng lte 5 or ($rng lte 10 and $enemyanger gte $enemyangermax / 10))>> <<He>> shifts <<his>> position on your face, pressing <<his>> ass onto your mouth. <<set $mouthstate to "anal">><<set $NPCList[_n].vagina to "facesitanal">> <<set $speechmouthotheranus to 1>> <<elseif $worn.face.type.includes("covered") or $worn.face.type.includes("gag")>> <<if $enemyanger lt $enemyangermax/2>> <span class="lblue"><<He>> moves <<his>> pussy away from your mouth.</span> <<set $mouthuse to 0>><<set $mouthstate to 0>><<set $NPCList[_n].vagina to 0>> <<else>> <<switch random(0,2)>> <<case 0 1>> <<He>> grinds <<his>> ?vulva against your $worn.face.name. <<damageFaceCover 2>> <<case 2>> <span class="lblue"><<He>> moves <<his>> pussy away from your mouth.</span> <<set $mouthuse to 0>><<set $mouthstate to 0>><<set $NPCList[_n].vagina to 0>> <</switch>> <</if>> <<elseif $rng gte 0>> <<if $mouthactiondefault is "vaginalick" and random(1) is 0>> <<if !$npcSub>> <<He>> grinds <<his>> pussy into your mouth and tongue. <<else>> You lap and lick <<his>> pussy. <</if>> <<else>> <<if !$npcSub>> <<He>> rubs <<his>> pussy against your lips. <<else>> You continue to violate <<his>> pussy with your lips. <</if>> <</if>> <<if $NPCList[_n].type is "plant" and $mouthactiondefault isnot "vaginalick">> <span class="pink">You can taste sweet nectar.</span> <<nectarfed 8>> <<elseif $enemyarousal gte (($enemyarousalmax / 5) * 3)>> You can taste <<his>> juices. <</if>> <<sex 3 "mouth" _n>><<set $speechfacesit to 1>> <<else>> <<He>> gets up off of your face. <<set $mouthuse to 0>><<set $mouthstate to 0>><<set $NPCList[_n].vagina to 0>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].vagina is "facesitanal">> <<if $rng gte 11 or ($rng gte 6 and $enemyanger gte $enemyangermax / 10)>> <<if $worn.face.type.includes("covered") or $worn.face.type.includes("gag")>> <<switch random(0,2)>> <<case 0 1>> <<He>> grinds <<his>> ass against your $worn.face.name. <<case 2>> <span class="lblue"><<He>> moves <<his>> ass away from your mouth.</span> <<set $mouthuse to 0>><<set $mouthstate to 0>><<set $NPCList[_n].vagina to 0>> <</switch>> <<elseif $enemyarousal gte (($enemyarousalmax / 5) * 3)>> <<He>> grinds <<his>> ass against your mouth. <<else>> <<He>> slowly moves <<his>> ass against your lips. <</if>> <<sex 3 "mouth" _n>><<set $speechmouthotheranus to 1>> <<if $mouthactiondefault is "anallick">> <<set $speechanallick to 1>> <<elseif $mouthactiondefault is "analkiss">> <<set $speechanalkiss to 1>> <</if>> <<elseif $rng gte 0>> <<He>> moves <<his>> ass away from your mouth, pressing <<his>> pussy down onto it as <<he>> changes <<his>> position. <<if $NPCList[_n].type is "plant">> <span class="pink">Nectar glistens at the entrance.</span> <</if>> <<set $mouthstate to "vagina">><<set $NPCList[_n].vagina to "facesit">> <<set $speechfacesit to 1>><<set $mouthtarget to _n>> <<else>> <<He>> gets up off of your face. <<set $mouthuse to 0>><<set $mouthstate to 0>><<set $NPCList[_n].vagina to 0>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].vagina is "mouthotheranus">> <<if $rng gte 1>> <<if $enemyarousal gte (($enemyarousalmax / 5) * 3)>> <<He>> grinds <<his>> ass against your mouth. <<else>> <<He>> slowly moves <<his>> ass against your lips. <</if>> <<sex 3 "mouth" _n>><<set $speechmouthotheranus to 1>> <<if $mouthactiondefault is "anallick">> <<set $speechanallick to 1>> <<elseif $mouthactiondefault is "analkiss">> <<set $speechanalkiss to 1>> <</if>> <<else>> <span class="purple"><<He>> moves <<his>> ass away from your face.</span> <<set $mouthuse to 0>><<set $mouthstate to 0>><<set $NPCList[_n].penis to 0>> <<set $NPCList[_n].location.genitals = 0>> <</if>> <</if>> <<if $NPCList[_n].vagina is 0 and $NPCList[_n].penis is 0>> <<if random(0,1) is 0>> <<vaginainit>> <<penisinit>> <<else>> <<penisinit>> <<vaginainit>> <</if>> <<elseif $NPCList[_n].vagina is 0>> <<vaginainit>> <<elseif $NPCList[_n].penis is 0>> <<penisinit>> <</if>> <<rng>> <<if $NPCList[_n].vagina is "leftDildo">> <<if $rng gte 1>> <<if !$npcSub>> <<if $enemyarousal lte (($enemyarousalmax / 5) * 4)>> <<He>> <<print either("rhythmically","","")>> thrusts <<his>> pussy against your $currentSexToyLeft.name. <<else>> <<print either( `<<He>> thrusts <<his>> pussy up and down your dildo, fucking <<himself>> with a violent intensity as <<he>> approaches <<his>> peak.`, `<<He>> <<print either("forcefully","desperately","rhythmically")>> thrusts <<his>> pussy against your $currentSexToyLeft.name.`, `<<He>> <<print either("thrusts","grinds")>> <<his>> pussy against your $currentSexToyLeft.name in circular motions.`, )>> <<if $NPCList[$lefttarget].type is "plant">>Nectar drips<<else>>Fluids drip<</if>> down the toy. <</if>> <<else>> <<if $enemyarousal lte (($enemyarousalmax / 5) * 4)>> You fuck <<his>> pussy with your $currentSexToyLeft.name. <<else>> You fuck <<his>> pussy with your $currentSexToyLeft.name. <<if $NPCList[$lefttarget].type is "plant">>Nectar drips<<else>>Fluids drip<</if>> down your toy. <</if>> <</if>> <<submission 2 _n>> <<else>> <<He>> moves your $currentSexToyLeft.name away from <<his>> pussy. <<set $leftarm to 0>><<set $NPCList[_n].vagina to 0>><<set $leftactiondefault to "dildoOtherPussyFuck">> <</if>> <</if>> <<rng>> <<if $NPCList[_n].vagina is "rightDildo">> <<if $rng gte 1>> <<if !$npcSub>> <<if $enemyarousal lte (($enemyarousalmax / 5) * 4)>> <<He>> <<print either("rhythmically","","")>> thrusts <<his>> pussy against your $currentSexToyRight.name. <<else>> <<print either( `<<He>> thrusts <<his>> pussy up and down your dildo, fucking <<himself>> with a violent intensity as <<he>> approaches <<his>> peak.`, `<<He>> <<print either("forcefully","desperately","rhythmically")>> thrusts <<his>> pussy against your $currentSexToyRight.name.`, `<<He>> <<print either("thrusts","grinds")>> <<his>> pussy against your $currentSexToyRight.name in circular motions.`, )>> <<if $NPCList[$righttarget].type is "plant">>Nectar drips<<else>>Fluids drip<</if>> down your toy. <</if>> <<else>> <<if $enemyarousal lte (($enemyarousalmax / 5) * 4)>> You fuck <<his>> pussy with your $currentSexToyRight.name. <<else>> You fuck <<his>> pussy with your $currentSexToyRight.name. <<if $NPCList[$righttarget].type is "plant">>Nectar drips<<else>>Fluids drip<</if>> from <<his>> pussy. <</if>> <</if>> <<submission 2 _n>> <<else>> <<He>> moves your $currentSexToyRight.name away from <<his>> pussy. <<set $rightarm to 0>><<set $NPCList[_n].vagina to 0>><<set $rightactiondefault to "dildoOtherPussyFuck">> <</if>> <</if>> <<rng>> <<if $NPCList[_n].vagina is "leftDildoAnus">> <<if $rng gte 1>> <<if !$npcSub>> <<He>> thrusts <<his>> ass against your $currentSexToyLeft.name. <<submission 2 _n>> <<else>> You fuck <<his>> ass with your $currentSexToyLeft.name. <</if>> <<else>> <<He>> moves your $currentSexToyLeft.name away from <<his>> ass. <<set $leftarm to 0>><<set $NPCList[_n].vagina to 0>><<set $leftactiondefault to "dildoOtherAnusFuck">> <</if>> <</if>> <<if $NPCList[_n].penis is "leftDildoAnus">> <<if $rng gte 1>> <<if !$npcSub>> <<He>> thrusts <<his>> ass against your $currentSexToyLeft.name. <<submission 2 _n>> <<else>> You fuck <<his>> ass with your $currentSexToyLeft.name. <</if>> <<else>> <<He>> moves your $currentSexToyLeft.name away from <<his>> ass. <<set $leftarm to 0>><<set $NPCList[_n].penis to 0>><<set $leftactiondefault to "dildoOtherAnusFuck">> <</if>> <</if>> <<rng>> <<if $NPCList[_n].vagina is "rightDildoAnus">> <<if $rng gte 1>> <<if !$npcSub>> <<He>> thrusts <<his>> ass against your $currentSexToyRight.name. <<submission 2 _n>> <<else>> You fuck <<his>> ass with your $currentSexToyRight.name. <</if>> <<else>> <<He>> moves your $currentSexToyRight.name away from <<his>> ass. <<set $rightarm to 0>><<set $NPCList[_n].vagina to 0>><<set $rightactiondefault to "dildoOtherAnusFuck">> <</if>> <</if>> <<if $NPCList[_n].penis is "rightDildoAnus">> <<if $rng gte 1>> <<if !$npcSub>> <<He>> thrusts <<his>> ass against your $currentSexToyRight.name. <<submission 2 _n>> <<else>> You fuck <<his>> ass with your $currentSexToyRight.name. <</if>> <<else>> <<He>> moves your $currentSexToyRight.name away from <<his>> ass. <<set $rightarm to 0>><<set $NPCList[_n].penis to 0>><<set $rightactiondefault to "dildoOtherAnusFuck">> <</if>> <</if>> <<rng>> <<if $NPCList[_n].penis is "leftStroker">> <<if $rng gte 1>> <<if !$npcSub>> <<He>> fucks your $currentSexToyLeft.name with steady thrusts. <<submission 2 _n>> <<else>> You fuck <<his>> <<npcPenis _n>> with your $currentSexToyLeft.name. <</if>> <<else>> <<He>> moves your $currentSexToyLeft.name away from <<his>> <<npcPenisSimple _n>>. <<set $leftarm to 0>><<set $NPCList[_n].vagina to 0>><<set $leftactiondefault to "dildoOtherPussyFuck">> <</if>> <</if>> <<rng>> <<if $NPCList[_n].penis is "rightStroker">> <<if $rng gte 1>> <<if !$npcSub>> <<He>> fucks your $currentSexToyRight.name with steady thrusts. <<submission 2 _n>> <<else>> You fuck <<his>> <<npcPenisSimple _n>> with your $currentSexToyRight.name. <</if>> <<else>> <<He>> moves your $currentSexToyRight.name away from <<his>> <<npcPenisSimple _n>>. <<set $rightarm to 0>><<set $NPCList[_n].penis to 0>><<set $rightactiondefault to "dildoOtherPussyFuck">> <</if>> <</if>> <!-- CHEST START --> <<rng>> <<if $NPCList[_n].chest is "clothed" and $npcSub isnot 1>> <<if ($NPCList[_n].pronoun is "f" and ($NPCList[_n].lactation is 1 or $rng lte ($enemyarousal - 80))) or ($rng lte 15 and $enemyarousal gte 105)>> <<if not $gloryhole>> <span class="blue"><<He>> <<npcUndressText $NPCList[_n] "upper" "self">>, <<npcRevealText $NPCList[_n] "upper">>.</span> <<else>> You faintly hear fabric sliding on the other side. <<He>> must have taken off some clothing. <</if>> <<set $NPCList[_n].chest to 0>> <</if>> <</if>> <<chest_section>> <!-- MOUTH START --> <<if $NPCList[_n].fullDescription is "Gwylan" and (!$gwylanSeen.includes("partners"))>> <<set $_preventKiss to true>> <</if>> <<rng>> <<if $NPCList[_n].mouth is "thigh">> <<He>> kisses and licks your thigh. <<neutral 5 _n>> <</if>> <<rng>> <<if $NPCList[_n].mouth is "bottom">> <<He>> kisses and licks your <<bottom>>. <<neutral 5 _n>> <</if>> <<rng>> <<if $NPCList[_n].mouth is "anus">> <<if $rng gte 101>> <span class="purple"><<He>> retracts <<his>> tongue from your anus.</span> <<sex 30 "anal" _n>><<set $NPCList[_n].mouth to "anusimminent">><<bruise anus>><<violence 1>><<set $anusstate to "othermouthimminent">> <<elseif $rng gte 1>> <<if $enemyarousal lte ($enemyarousalmax / 5)>> <<He>> caresses your anus with <<his>> tongue. <<sex 30 "anal" _n>><<bruise anus>><<violence 1>> <<elseif $enemyarousal lte (($enemyarousalmax / 5) * 2)>> <<His>> tongue probes inside your <<bottom>>. <<sex 30 "anal" _n>><<bruise anus>><<violence 1>> <<elseif $enemyarousal lte (($enemyarousalmax / 5) * 3)>> <<He>> circles <<his>> tongue inside your <<bottom>>. <<sex 30 "anal" _n>><<bruise anus>><<violence 1>> <<elseif $enemyarousal lte (($enemyarousalmax / 5) * 4)>> <<He>> presses <<his>> mouth firmly against your <<bottom>>, letting <<him>> push <<his>> tongue deeper into your anus. <<sex 30 "anal" _n>><<bruise anus>><<violence 1>> <<else>> Repeatedly thrusting and retracting, <<he>> fucks your <<bottom>> with <<his>> tongue. <<sex 30 "anal" _n>><<bruise anus>><<violence 1>> <</if>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].mouth is "anusimminent">> <<if $rng gte 101>> <span class="blue"><<He>> stops pressing <<his>> tongue against your anus.</span> <<set $NPCList[_n].mouth to "anusentrance">><<set $anusstate to "othermouthentrance">> <<elseif $rng gte 1>> <<if $noanal is 0 and $worn.genitals.anus_exposed is 0>> <<He>> uses <<his>> tongue to lick around your $worn.genitals.name attempting to get past it. <<sex 25 "genital" _n>><<set $worn.genitals.integrity -= 10>> <<elseif $noanal is 1 and $worn.genitals.anus_exposed is 0>> <<He>> uses <<his>> tongue to lick around your $worn.genitals.name. <<sex 30 "genital" _n>> <<elseif $noanal is 0>> <<if $player.virginity.anal isnot true or $virginitytest isnot 1>> <span class="pink"><<He>> pushes <<his>> tongue into your anus.</span> <<sex 30 "anal" _n>><<violence 1>> <<elseif $player.virginity.anal is true>> <span class="pink"><<He>> pushes <<his>> tongue into your virgin anus,</span><span class="red"> violating you in a way you hadn't conceived of.</span> <<sex 100 "anal" _n>><<takeVirginity $NPCList[_n].fullDescription "anal">><<violence 100>> <</if>> <<analstat>><<set $NPCList[_n].mouth to "anus">><<bruise anus>><<set $anusstate to "othermouthpenetrated">> <<if $virginitytest is 1>><<raped>><<anusraped>><</if>> <<else>> Respecting your wishes, <<he>> does not penetrate your <<bottom>> with <<his>> tongue, instead licking your anus. <<sex 15 "anal" _n>> <</if>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].mouth is "anusentrance">> <<if $rng gte 101>> <span class="lblue"><<He>> moves <<his>> head away from your <<bottom>>.</span> <<set $NPCList[_n].mouth to 0>><<set $anususe to 0>><<set $anusstate to 0>> <<if $NPCList[_n].vagina is "othermouth">> <<set $NPCList[_n].vagina to 0>> <</if>> <<if $NPCList[_n].penis is "othermouth">> <<set $NPCList[_n].penis to 0>> <</if>> <<elseif $rng gte 1>> <<if $worn.over_lower.anus_exposed is 0>> <<He>> circles <<his>> tongue around your anus through your $worn.over_lower.name. <<sex 5 "anal" _n>><<set $worn.over_lower.integrity -= 10>> <<elseif $worn.lower.anus_exposed is 0>> <<He>> circles <<his>> tongue around your anus through your $worn.lower.name. <<sex 5 "anal" _n>><<set $worn.lower.integrity -= 10>> <<elseif $worn.lower.anus_exposed is 1 and $worn.over_lower.anus_exposed is 1>> <<rng>> <<if $worn.under_lower.anus_exposed is 0>> <<He>> circles <<his>> tongue around your anus through your $worn.under_lower.name. <<sex 5 "anal" _n>><<set $worn.under_lower.integrity -= 10>> <<elseif $worn.genitals.anus_exposed is 0>> <<He>> prods your $worn.genitals.name with <<his>> tongue. <<sex 5 "anal" _n>><<set $worn.genitals.integrity -= 10>> <<elseif $worn.under_lower.anus_exposed is 1 and $worn.genitals.anus_exposed is 1>> <<if $rng gte 71>> <<if $noanal is 0 and playerChastity("anus")>> <span class="purple"><<He>> presses <<his>> tongue against your $worn.genitals.name near your anus.</span> <<sex 20 "anal" _n>><<set $NPCList[_n].mouth to "anusimminent">><<set $anusstate to "othermouthimminent">> <<elseif $noanal is 1>> <span class="purple"><<He>> presses <<his>> tongue against your anus.</span> <<sex 20 "anal" _n>><<set $NPCList[_n].mouth to "anusimminent">><<set $anusstate to "othermouthimminent">> <<else>> <span class="purple"><<He>> presses <<his>> tongue against your anus, preparing to penetrate you.</span> <<sex 20 "anal" _n>><<set $NPCList[_n].mouth to "anusimminent">><<set $anusstate to "othermouthimminent">> <</if>> <<elseif $rng gte 1>> <<He>> kisses and licks your <<bottom>>. <<sex 10 "anal" _n>> <</if>> <</if>> <</if>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].mouth is "vagina">> <<if $rng gte 101>> <span class="purple"><<He>> retracts <<his>> tongue from your <<pussy>>.</span> <<sex 30 "genital" _n>><<set $NPCList[_n].mouth to "vaginaimminent">><<bruise vagina>><<violence 1>><<set $vaginastate to "othermouthimminent">> <<elseif $rng gte 1>> <<if $enemyarousal lte ($enemyarousalmax / 5)>> <<He>> caresses your vagina with <<his>> tongue. <<sex 30 "genital" _n>><<bruise vagina>><<violence 1>> <<elseif $enemyarousal lte (($enemyarousalmax / 5) * 2)>> <<He>> presses down on your <<clit>> with <<his>> teeth while exploring your vagina with <<his>> tongue. <<sex 30 "genital" _n>><<bruise vagina>><<violence 1>> <<elseif $enemyarousal lte (($enemyarousalmax / 5) * 3)>> <<He>> circles <<his>> tongue around your vagina. <<sex 30 "genital" _n>><<bruise vagina>><<violence 1>> <<elseif $enemyarousal lte (($enemyarousalmax / 5) * 4)>> <<He>> presses <<his>> mouth firmly against your <<pussy>>, then pushes <<his>> tongue deeper into your vagina. <<He>> slowly pulls out again, then takes a deep breath. <<sex 30 "genital" _n>><<bruise vagina>><<violence 1>> <<else>> Repeatedly thrusting and retracting, <<he>> fucks your <<pussy>> with <<his>> tongue. <<sex 30 "genital" _n>><<bruise vagina>><<violence 1>> <</if>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].mouth is "vaginaimminent">> <<if $rng gte 101>> <span class="blue"><<He>> stops pressing <<his>> tongue against your <<pussy>>.</span> <<set $NPCList[_n].mouth to "vaginaentrance">><<set $vaginastate to "othermouthentrance">> <<elseif $rng gte 1>> <<if $novaginal is 0 and playerChastity("vagina")>> <<He>> licks around your $worn.genitals.name, attempting to get past it. <<sex 25 "genital" _n>><<set $worn.genitals.integrity -= 10>> <<elseif $novaginal is 1 and playerChastity("vagina")>> <<He>> licks around your $worn.genitals.name. <<sex 30 "genital" _n>> <<elseif $novaginal is 0>> <<if $player.virginity.vaginal isnot true or $virginitytest isnot 1>> <span class="pink"><<He>> pushes <<his>> tongue between your <<pussy>> lips.</span> <<sex 30 "genital" _n>> <<elseif $player.virginity.vaginal is true>> <span class="pink"><<He>> pushes <<his>> tongue into your virgin pussy,</span><span class="red"> breaking your hymen and <<virginitylosttext $NPCList[_n].fullDescription>></span> <<sex 100 "genital" _n>><<takeVirginity $NPCList[_n].fullDescription "vaginal">><<violence 100>> <</if>> <<vaginalstat>><<set $NPCList[_n].mouth to "vagina">><<bruise vagina>><<violence 1>><<set $vaginastate to "othermouth">> <<if $virginitytest is 1>><<raped>><<vaginaraped>><</if>> <<else>> Respecting your wishes, <<he>> does not penetrate your <<pussy>> with <<his>> tongue, instead running <<his>> tongue up and down your labia. <<sex 15 "genital" _n>> <</if>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].mouth is "vaginaentrance">> <<if $rng gte 101>> <span class="lblue"><<He>> moves <<his>> head away from your <<pussy>>.</span> <<set $NPCList[_n].mouth to 0>><<set $vaginause to 0>><<set $vaginastate to 0>> <<if $NPCList[_n].vagina is "othermouth">> <<set $NPCList[_n].vagina to 0>> <</if>> <<if $NPCList[_n].penis is "othermouth">> <<set $NPCList[_n].penis to 0>> <</if>> <<elseif $rng gte 1>> <<if $worn.over_lower.vagina_exposed is 0>> <<He>> traces the outline of your <<pussy>> with <<his>> tongue through your $worn.over_lower.name. <<sex 5 "genital" _n>><<set $worn.over_lower.integrity -= 10>> <<elseif $worn.lower.vagina_exposed is 0>> <<He>> traces the outline of your <<pussy>> with <<his>> tongue through your $worn.lower.name. <<sex 5 "genital" _n>><<set $worn.lower.integrity -= 10>> <<elseif $worn.lower.vagina_exposed is 1 and $worn.over_lower.vagina_exposed is 1>> <<rng>> <<if $worn.under_lower.vagina_exposed is 0>> <<He>> traces the outline of your <<pussy>> with <<his>> tongue through your $worn.under_lower.name. <<sex 5 "genital" _n>><<set $worn.under_lower.integrity -= 10>> <<elseif $worn.under_lower.vagina_exposed is 1>> <<if $rng gte 71>> <<if $novaginal is 0 and playerChastity("vagina")>> <span class="purple"><<He>> presses <<his>> lips against your $worn.genitals.name, near your <<pussy>>.</span> <<sex 20 "genital" _n>><<set $NPCList[_n].mouth to "vaginaimminent">><<set $vaginastate to "othermouthimminent">> <<elseif $novaginal is 1>> <span class="purple"><<He>> presses <<his>> lips against your <<pussy>>.</span> <<sex 20 "genital" _n>><<set $NPCList[_n].mouth to "vaginaimminent">><<set $vaginastate to "othermouthimminent">> <<else>> <span class="purple"><<He>> presses <<his>> lips against your <<pussy>>, preparing to fuck you with <<his>> tongue.</span> <<sex 20 "genital" _n>><<set $NPCList[_n].mouth to "vaginaimminent">><<set $vaginastate to "othermouthimminent">> <</if>> <<elseif $rng gte 1>> <<if !playerChastity("vagina")>> <<He>> blows on your <<clit>> and runs <<his>> tongue around your labia. <<sex 10 "genital" _n>> <<else>> <<He>> stares at your $worn.genitals.name. <<sex 5 "genital" _n>> <</if>> <</if>> <</if>> <</if>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].mouth is "penis">> <<if $rng gte 101>> <span class="purple"><<He>> moves <<his>> head back, releasing your <<penis>> from <<his>> mouth.</span> <<sex 30 "genital" _n>><<set $NPCList[_n].mouth to "penisimminent">><<set $penisstate to "othermouthimminent">> <<if playerHasStrapon()>><<violence 1 1 1 0>> <<else>><<bruise penis>><<violence 1>><</if>> <<elseif $rng gte 1>> <<if $enemyarousal lte ($enemyarousalmax / 5)>> <<He>> slowly caresses your shaft with <<his>> tongue. <<sex 30 "genital" _n>> <<elseif $enemyarousal lte (($enemyarousalmax / 5) * 2)>> Eyes fixed on your face, <<he>> wraps <<his>> tongue around your <<penis>> and sucks. <<sex 30 "genital" _n>> <<elseif $enemyarousal lte (($enemyarousalmax / 5) * 3)>> <<He>> squeezes <<his>> lips around your <<penis>> and circles <<his>> tongue around your <<glans>>. <<sex 30 "genital" _n>> <<elseif $enemyarousal lte (($enemyarousalmax / 5) * 4)>> <<He>> takes you deeper into <<his>> mouth, until your <<penis>> disappears inside <<him>> completely. <<He>> slowly pushes you out again, then takes a deep breath. <<sex 30 "genital" _n>> <<else>> <<He>> repeatedly swallows and expels your <<penis>>, fucking you with <<his>> mouth. <<sex 30 "genital" _n>> <</if>> <<if playerHasStrapon()>><<violence 1 1 1 0>> <<else>><<bruise penis>><<violence 1>><</if>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].mouth is "penisimminent">> <<if $rng gte 101>> <span class="blue"><<He>> stops pressing <<his>> lips against your <<penis>>.</span> <<set $NPCList[_n].mouth to "penisentrance">><<set $penisstate to "othermouthentrance">> <<elseif $rng gte 1>> <<if $worn.genitals.name is "chastity parasite">> <<He>> licks your $worn.genitals.name, <span class="lewd">the parasite sending a wave of pleasure through your <<penis>>.</span> Your reaction causes <<him>> to continue. <<arousal 400 "genitals">><<if !$earSlime.defyCooldown and $earSlime.vibration lt 120>><<set $earSlime.vibration += 10>><</if>> <<sex 30 "genital" _n>><<set $worn.genitals.integrity -= 5>> <<elseif $nopenile is 0 and playerChastity("penis")>> <<He>> licks around your $worn.genitals.name, near your <<penis>>, attempting to get past it. <<sex 25 "genital" _n>><<set $worn.genitals.integrity -= 10>> <<elseif $nopenile is 1 and playerChastity("penis")>> <<He>> licks around your $worn.genitals.name, near your <<penis>>. <<sex 30 "genital" _n>> <<elseif $nopenile is 0>> <<if playerHasStrapon() or $player.virginity.penile isnot true or $virginitytest isnot 1>> <span class="pink"><<He>> pushes <<his>> lips against your <<penis>>, taking you into <<his>> mouth.</span> <<sex 30 "genital" _n>> <<violence 1 1 1 `+playerHasStrapon()`>> <<elseif $player.virginity.penile is true>> <span class="pink"><<He>> pushes <<his>> lips against your virgin penis, taking you into <<his>> mouth,</span><span class="red"> separating your foreskin from your glans and <<virginitylosttext $NPCList[_n].fullDescription>></span> <<sex 100 "genital" _n>><<takeVirginity $NPCList[_n].fullDescription "penile">><<violence 100>> <</if>> <<penilestat>><<takeNPCVirginity _n "oral">><<set $NPCList[_n].mouth to "penis">><<set $penisstate to "othermouth">> <<if $virginitytest is 1 and !playerHasStrapon()>><<bruise penis>><<raped>><<penisraped>><</if>> <<else>> Respecting your wishes, <<he>> does not envelop your <<penis>> with <<his>> mouth, instead kissing the tip of your <<glans>>. <<sex 15 "genital" _n>> <</if>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].mouth is "penisentrance">> <<if $rng gte 101>> <span class="lblue"><<He>> moves <<his>> head away from your <<penis>>.</span> <<set $NPCList[_n].mouth to 0>><<set $penisuse to 0>><<set $penisstate to 0>> <<if $NPCList[_n].vagina is "othermouth">> <<set $NPCList[_n].vagina to 0>> <</if>> <<if $NPCList[_n].penis is "othermouth">> <<set $NPCList[_n].penis to 0>> <</if>> <<elseif $rng gte 1>> <<if $worn.over_lower.vagina_exposed is 0>> <<He>> traces the outline of your <<penis>> with <<his>> tongue through your $worn.over_lower.name. <<sex 5 "genital" _n>><<set $worn.over_lower.integrity -= 10>> <<elseif $worn.lower.vagina_exposed is 0>> <<He>> traces the outline of your <<penis>> with <<his>> tongue through your $worn.lower.name. <<sex 5 "genital" _n>><<set $worn.lower.integrity -= 10>> <<elseif $worn.lower.vagina_exposed is 1 and $worn.over_lower.vagina_exposed is 1>> <<rng>> <<if $worn.under_lower.vagina_exposed is 0>> <<He>> traces the outline of your <<penis>> with <<his>> tongue through your $worn.under_lower.name. <<sex 5 "genital" _n>><<set $worn.under_lower.integrity -= 10>> <<elseif $worn.under_lower.vagina_exposed is 1>> <<if $rng gte 71>> <<if playerChastity("penis")>> <span class="purple"><<He>> tries to wriggle <<his>> tongue into your $worn.genitals.name, eager to taste your <<penis>>.</span> <<sex 20 "genital" _n>> <<elseif $nopenile is 1>> <span class="purple"><<He>> presses <<his>> lips against your <<penis>>.</span> <<sex 20 "genital" _n>><<set $NPCList[_n].mouth to "penisimminent">><<set $penisstate to "othermouthimminent">> <<else>> <span class="purple"><<He>> presses <<his>> lips against your <<penis>>, preparing to take you in <<his>> mouth proper.</span> <<sex 20 "genital" _n>><<set $NPCList[_n].mouth to "penisimminent">><<set $penisstate to "othermouthimminent">> <</if>> <<elseif $rng gte 1>> <<if !playerChastity("penis")>> <<He>> blows on and licks the tip of your <<penis>>. <<sex 10 "genital" _n>> <<else>> <<He>> stares at your $worn.genitals.name. <<sex 5 "genital" _n>> <</if>> <</if>> <</if>> <</if>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].mouth is "kiss">> <<if $speechvaginavirgin isnot 1 and $speechpenisvirgin isnot 1 and $speechanusvirgin isnot 1 and $speechmouthvirgin isnot 1>> <<if $_preventKiss>> <span class="red"><<He>> pulls <<his>> mouth away from yours and looks angry.</span> <<set $enemytrust -= 200>><<set $enemyanger += 200>><<set $mouthuse to 0>><<set $NPCList[_n].mouth to 0>><<set $mouthstate to 0>> <<set $NPCList[_n].location.head to 0>> <<elseif $rng gte 101>> <span class="lblue"><<He>> pulls <<his>> mouth away from yours.</span> <<set $NPCList[_n].mouth to 0>><<set $mouthuse to 0>><<set $mouthstate to 0>> <<set $NPCList[_n].location.head to 0>> <<else>> <<if $robinDungeonKiss>> <<undergroundRobinKiss $mouthactiondefault>> <<elseif $npcSub>> <<He>> nervously follows your lead, allowing you to explore <<his>> mouth with your tongue. <<elseif $enemyanger lte 20>> <<He>> explores your mouth with <<his>> tongue. <<sex 2 "mouth" _n>> <<else>> <<He>> thrusts <<his>> tongue deep into your mouth. <<violence 1>> <</if>> <<if $NPCList[_n].type is "plant" and $mouthactiondefault isnot "kissback">> <span class="pink">Sweet nectar drips from <<his>> tongue and fills your mouth.</span> <<nectarfed 20>> <<elseif $NPCList[_n].fullDescription is "Gwylan">> <<gwylanKiss 1>> <</if>> <</if>> <<else>> <span class="lblue"><<He>> pulls <<his>> mouth away from yours.</span> <<set $mouthuse to 0>><<set $NPCList[_n].mouth to 0>><<set $mouthstate to 0>> <<set $NPCList[_n].location.head to 0>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].mouth is "kissimminent">> <<if $speechvaginavirgin isnot 1 and $speechpenisvirgin isnot 1 and $speechanusvirgin isnot 1 and $speechmouthvirgin isnot 1 and !$_preventKiss>> <<if $rng gte 101>> <span class="lblue"><<He>> pulls <<his>> mouth away from yours.</span> <<set $NPCList[_n].mouth to 0>><<set $mouthuse to 0>><<set $mouthstate to 0>> <<set $NPCList[_n].location.head to 0>> <<elseif $worn.face.type.includes("covered") or $worn.face.type.includes("gag")>> <<switch random(0,2)>> <<case 0 1>> <<He>> pushes <<his>> lips against your $worn.face.name. <<He>> seems disappointed. <<damageFaceCover 2>> <<if $consensual isnot 1>> <<brat 2>> <</if>> <<case 2>> <span class="lblue"><<He>> moves <<his>> <<= npcHasStrapon(_n) ? "strap-on" : "penis">> away from your mouth.</span> <<set $NPCList[_n].penis to 0>><<set $mouthuse to 0>><<set $mouthstate to 0>> <<if $consensual isnot 1>> <<brat 2>> <</if>> <</switch>> <<elseif $rng lte 100>> <<He>> pushes <<his>> tongue between your lips. <<set $NPCList[_n].mouth to "kiss">><<set $mouthstate to "kiss">><<sex 2 "mouth" _n>> <<if $NPCList[_n].type is "plant" and $mouthactiondefault isnot "kissback">> <span class="pink">Sweet nectar fills your mouth.</span> <<nectarfed 20>> <<elseif $NPCList[_n].fullDescription is "Gwylan">> <<gwylanKiss 1>> <</if>> <<else>> <<if $enemyanger lte 20>> <<He>> gently probes your lips with <<his>> tongue. <<sex 2 "mouth" _n>> <<else>> <<He>> bites and toys with your lips. <<violence 1>> <</if>> <</if>> <<else>> <span class="lblue"> <<He>> pulls <<his>> mouth away from yours.</span> <<set $mouthuse to 0>><<set $NPCList[_n].mouth to 0>><<set $mouthstate to 0>> <<set $NPCList[_n].location.head to 0>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].mouth is "kissentrance">> <<if $speechvaginavirgin isnot 1 and $speechpenisvirgin isnot 1 and $speechanusvirgin isnot 1 and $speechmouthvirgin isnot 1 and !$_preventKiss>> <<if $rng gte 101>> <span class="lblue"><<He>> pulls <<his>> mouth away from yours.</span> <<set $NPCList[_n].mouth to 0>><<set $mouthuse to 0>><<set $mouthstate to 0>> <<set $NPCList[_n].location.head to 0>> <<elseif $rng lte 100>> <<He>> pulls you closer and presses your lips together in a kiss. <<if $NPCList[_n].type is "plant" and !$player.virginity.kiss>> <span class="pink">Sweet nectar drips from <<his>> tongue and fills your mouth.</span> <<nectarfed 50>> <<elseif $NPCList[_n].fullDescription is "Gwylan">> <<gwylanKiss>> <</if>> <<if $player.virginity.kiss is true>> <<set $speechkissvirgin to 1>> <</if>> <<if $npcrow.includes(_n)>> <<takeKissVirginityNamed `$npc[$npcrow.indexOf(_n)]`>> <<else>> <<takeKissVirginity $NPCList[_n] `($consensual is 1?"":"rape")`>> <</if>> <<set $NPCList[_n].mouth to "kissimminent">><<set $mouthstate to "kissimminent">><<sex 2 "mouth" _n>> <<else>> <<if $enemyanger lte 20>> <<He>> gently brushes <<his>> lips against yours. <<sex 1 "mouth" _n>> <<else>> <<He>> bites your lower lip. <<violence 1>> <</if>> <</if>> <<else>> <span class="lblue"><<He>> pulls <<his>> mouth away from yours.</span> <<set $mouthuse to 0>><<set $NPCList[_n].mouth to 0>><<set $mouthstate to 0>> <<set $NPCList[_n].location.head to 0>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].mouth is "chest">> <<if $speechvaginavirgin isnot 1 and $speechpenisvirgin isnot 1 and $speechanusvirgin isnot 1 and $speechmouthvirgin isnot 1>> <<if $enemyanger gte 100>> <<if $milk_amount gte 1>> <<He>> sucks your <<nipple>>. <<Hes>> rough, biting and squeezing. Milk leaks from the tip. <<breastfeed>> <<violence 5>> <<else>> <<He>> sucks your <<nipple>>. <<Hes>> rough, biting and squeezing. Despite <<his>> efforts, no milk comes out. You've been sucked dry. <<milkvolume 1>> <<set $cheststate to "chestimminent">><<set $NPCList[_n].mouth to "chestimminent">> <<violence 3>> <</if>> <<else>> <<if $milk_amount gte 1>> <<He>> continues to suck your <<nipple>>. Milk leaks from the tip. <<breastfeed>> <<sex 5 "breast" _n>> <<else>> <<He>> continues to suck your <<nipple>>, but no milk comes out. You've been sucked dry. <<milkvolume 1>> <<set $cheststate to "chestimminent">><<set $NPCList[_n].mouth to "chestimminent">> <<sex 3 "breast" _n>> <</if>> <</if>> <<else>> <span class="lblue"><<He>> pulls <<his>> mouth away from your chest.</span> <<set $chestuse to 0>><<set $cheststate to 0>><<set $NPCList[_n].mouth to 0>> <<set $NPCList[_n].location.head to 0>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].mouth is "chestimminent">> <<if $speechvaginavirgin isnot 1 and $speechpenisvirgin isnot 1 and $speechanusvirgin isnot 1 and $speechmouthvirgin isnot 1>> <<if $lactating is 1 and $settings.breastFeedingEnabled and $milk_amount gte 1>> <span class="pink"><<He>> takes your <<nipple>> into <<his>> mouth. You feel milk leak from your tip.</span> <<breastfeed>> <<set $cheststate to "chest">><<set $NPCList[_n].mouth to "chest">><<sex 5 "breast" _n>> <<milkvolume 1>><<set $enemyanger -= 10>> <<else>> <<if random(1, 100) gte 81>> <<He>> pulls <<his>> head away from your chest. <<set $chestuse to 0>><<set $cheststate to 0>><<set $NPCList[_n].mouth to 0>> <<else>> <<if $enemyanger gte 100>> <<He>> kneads your <<nipple>> between <<his>> teeth. <<violence 3>> <<else>> <<He>> sucks your <<nipple>> while <<his>> tongue works the tip. <<sex 3 "breast" _n>> <</if>> <<milkvolume 1>> <</if>> <</if>> <<else>> <span class="lblue"><<He>> pulls <<his>> mouth away from your chest.</span> <<set $chestuse to 0>><<set $cheststate to 0>><<set $NPCList[_n].mouth to 0>> <<set $NPCList[_n].location.head to 0>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].mouth is "chestentrance">> <<if $speechvaginavirgin isnot 1 and $speechpenisvirgin isnot 1 and $speechanusvirgin isnot 1 and $speechmouthvirgin isnot 1>> <<if $enemyanger gte 100>> <<He>> bites your <<nipple>>, hard enough to hurt. <<set $NPCList[_n].mouth to "chestimminent">><<set $cheststate to "chestimminent">> <<violence 3>> <<else>> <<He>> presses the tip of <<his>> tongue against your <<nipple>>, licking and teasing. <<set $NPCList[_n].mouth to "chestimminent">><<set $cheststate to "chestimminent">> <<sex 3 "breast" _n>> <</if>> <<milkvolume 1>> <<else>> <span class="lblue"><<He>> pulls <<his>> mouth away from your chest.</span> <<set $chestuse to 0>><<set $cheststate to 0>><<set $NPCList[_n].mouth to 0>> <<set $NPCList[_n].location.head to 0>> <</if>> <</if>> <<rng>> <<namedNpcComments $NPCList[_n].fullDescription>> <<if ($NPCList[_n].mouth is 0 or $NPCList[_n].mouth is "speech_only" or ($NPCList[_n].type is "plant" and $speechkissvirgin is 1)) and $speechdisable isnot 1 and _noNameComment>> <<if $role is "islander" and (!$islander_language or $islander_language lt 100)>> <<He>> speaks and gesticulates in <<his>> incomprehensible language. <<elseif $NPCList[_n].type is "plant">> <<plantspeech>> <<elseif $combatgoal is "strip">> <<rng>> <<if $rng lte 25>> <<if $enemyanger lte 60>> <<He>> speaks. "<<print either("Let me take all these clothes off.", "Let's get you naked.", "I think you enjoy being stripped naked!", "You don't need clothes.", "You need to be naked!")>>" <<else>> <<He>> speaks. "<<print either("I'll rip your clothes off if I need to!", "I'll get you naked one way or another!", "I want your clothes gone!", "You like being stripped naked, don't you!", "You don't deserve clothes.", "I want you nude!")>>" <</if>> <</if>> <<elseif $speechvaginavirgin is 1 and $NPCList[_n].penis is "vagina">> <<if $enemyanger lte 60>> <<He>> speaks. "You were a virgin! I can't believe my luck!" <<else>> <<He>> speaks. "I felt your hymen tear, <<bitch>>. Something to remember me by." <</if>> <<elseif $speechpenisvirgin is 1 and ($NPCList[_n].vagina is "penis" or $NPCList[_n].vagina is "otheranus" or $NPCList[_n].penis is "otheranus")>> <<if $enemyanger lte 60>> <<He>> speaks. "AHH! This was your first time, wasn't it? It feels so good!" <<else>> <<He>> speaks. "How's it feel to have your virgin dick broken in? Feels amazing for me." <</if>> <<elseif $speechanusvirgin is 1 and $NPCList[_n].penis is "anus">> <<if $enemyanger lte 60>> <<He>> speaks. "It's so tight! This must be the first time your ass has been used like this." <<else>> <<He>> speaks. "It's so tight! This must be the first time your ass has been used like this. I've got plenty more work to do before you're properly broken in." <</if>> <<elseif $speechmouthvirgin is 1 and $NPCList[_n].penis is "mouth">> <<if npcHasStrapon(_n)>> <<if $enemyanger lte 60>> <<He>> speaks. "Is this your first time giving head?" <<else>> <<He>> speaks. "Is this your first time giving head? You'll be addicted to my strap before you know it." <</if>> <<else>> <<if $enemyanger lte 60>> <<He>> speaks. "Is this the first time you've tasted dick?" <<else>> <<He>> speaks. "Is this the first time you've tasted dick? You'll be a cum-addicted cock slave soon." <</if>> <</if>> <<elseif $speechspray is 1>> <<sprayspeech>> <<elseif $speechcum is 1 and $rng gte 61 and $speechorgasmrepeat lte 1 and $speechorgasmcount lte 6>> <<cumspeech>> <<elseif $rng gte 91>> <<if not $gloryhole>> <<basespeech>><<neutral 1 _n>> <<else>> <<basegloryholespeech>><<neutral 1 _n>> <</if>> <<elseif $rng gte 61>> <<combatspeech _n>><<neutral 1 _n>> <<elseif $rng gte 41 and !$gloryhole>> <<clothesspeech>> <<elseif !$gloryhole>> <<rng>> <<if $enemyanger + $rng lte 20>> <<He>> ?admires your body. <<neutral 1 _n>> <<elseif $enemyanger + $rng lte 25>> <<if $position is "wall" and $walltype isnot "front">> <<He>> ?admires your helpless <<bottom>>. <<neutral 1 _n>> <<bodypart_admire random_bottom>> <<else>> <<He>> ?admires your hair. <<neutral 1 _n>> <<bodypart_admire_chance random_shoulder>> <</if>> <<elseif $enemyanger + $rng lte 30>> <<if $position is "wall" and $walltype isnot "front">> <<He>> ?admires your helpless hips. <<neutral 1 _n>> <<bodypart_admire pubic>> <<else>> <<He>> ?admires your chest. <<neutral 1 _n>> <<bodypart_admire breasts>> <</if>> <<elseif $enemyanger + $rng lte 35>> <<if $walltype is "front">> <<He>> ?admires your face. <<neutral 1 _n>> <<bodypart_admire random_cheek>> <<else>> <<He>> ?admires your legs. <<neutral 1 _n>> <<bodypart_admire random_thigh>> <</if>> <<elseif $enemyanger + $rng lte 40>> <<if $position is "wall" and $walltype isnot "front">> <<He>> ?admires your helpless legs. <<neutral 1 _n>> <<bodypart_admire random_thigh>> <<elseif $chestuse is 0 and $NPCList[_n].location.genitals isnot "head" and $NPCList[_n].location.head isnot "head" and $NPCList[_n].location.head isnot "genitals">> <<set $NPCList[_n].mouth to "chestentrance">><<set $chestuse to "mouth">><<set $cheststate to "mouthentrance">><<set $chesttarget to _n>> <span class="blue"><<He>> moves <<his>> head to your chest.</span> <<neutralbreast 1 _n>> <<bodypart_admire breasts>> <<set $NPCList[_n].location.head to "head">> <<else>> <<He>> leers at your <<breasts>>. <</if>> <<elseif $enemyanger + $rng lte 45>> <<if $position is "wall" and $walltype isnot "front">> <<He>> kisses your helpless thighs. <<neutral 3 _n>> <<bodypart_admire random_thigh>> <<else>> <<He>> kisses you on the forehead. <<neutral 3 _n>> <<bodypart_admire forehead>> <</if>> <<elseif $enemyanger + $rng lte 50>> <<if $position is "wall" and $walltype isnot "front">> <<He>> kisses you on the hips. <<neutral 3 _n>> <<bodypart_admire random_bottom>> <<elseif $NPCList[_n].penis is "mouth" or $NPCList[_n].vagina is "mouth">> <<He>> leans back, <<if npcHasStrapon(_n)>> taking in the view of your mouth on <<his>> strap. <<else>> savouring the feel of your mouth on <<his>> genitals. <</if>> <<neutral 10 _n>> <<else>> <<He>> kisses you on the cheek. <<neutral 3 _n>> <<bodypart_admire random_cheek>> <</if>> <<elseif $enemyanger + $rng lte 55>> <<if $position is "wall" and $walltype isnot "front">> <<He>> licks your helpless thighs. <<neutral 3 _n>> <<bodypart_admire random_thigh>> <<elseif $NPCList[_n].penis is "mouth" or $NPCList[_n].vagina is "mouth">> <<He>> leans back, <<if npcHasStrapon(_n)>> taking in the view of your mouth on <<his>> strap. <<else>> savouring the feel of your mouth on <<his>> genitals. <</if>> <<neutral 10 _n>> <<else>> <<He>> kisses your neck. <<neutral 3 _n>> <<bodypart_admire breasts>> <</if>> <<elseif $enemyanger + $rng lte 60>> <<if $position is "wall" and $walltype isnot "front">> <<He>> licks your helpless hips. <<neutral 3 _n>> <<bodypart_admire random_bottom>> <<else>> <<cheeklick _n>> <</if>> <<elseif $enemyanger + $rng lte 80>> <<neutral 10 _n>> <<if $position is "wall" and $walltype isnot "front">> <<He>> licks your helpless legs. <<neutral 3 _n>> <<bodypart_admire random_thigh>> <<else>> <<if $mouthuse is 0 and !$worn.face.type.includes("covered") and !$worn.face.type.includes("gag")>> <<if $NPCList[_n].penis is "chest">> <<combatspeech _n>><<neutral 1 _n>> <<elseif $NPCList[_n].location.genitals isnot "head" and $NPCList[_n].fullDescription isnot "Gwylan">> <span class="blue"><<He>> moves <<his>> lips close to yours, about to kiss.</span> <<set $mouthuse to "kiss">><<set $mouthstate to "kissentrance">><<set $NPCList[_n].mouth to "kissentrance">><<sex 1 "mouth" _n>> <<set $NPCList[_n].location.head = "head">><<set $mouthtarget to _n>> <</if>> <<else>> <<cheeklick _n>> <</if>> <</if>> <<elseif $enemyanger + $rng lte 84 and $anususe is 0 and $settings.analingusReceivingEnabled and $NPCList[_n].location.head is 0 and $NPCList[_n].location.genitals isnot "genitals" and $walltype isnot "front">> <<neutral 10 _n>> <<if $NPCList[_n].location.genitals is "head">> <span class="blue">You feel <<him>> lean forward along your body, then you feel <<his>> breath on your <<bottom>>.</span> <<else>> <span class="blue"><<He>> kneels behind you. You feel <<his>> breath on your <<bottom>>.</span> <</if>> <<set $anususe to "othermouth">><<set $anusstate to "othermouthentrance">><<set $NPCList[_n].mouth to "anusentrance">> <<sex 1 "anal" _n>><<set $NPCList[_n].location.head to "genitals">><<set $anustarget to _n>> <<elseif $enemyanger + $rng lte 92 and $NPCList[_n].location.head is 0 and $NPCList[_n].location.genitals isnot "genitals" and $walltype isnot "front">> <<neutral 10 _n>> <<if $vaginause is 0 and $NPCList[_n].vagina is 0 and $player.vaginaExist>> <span class="blue"><<He>> kneels beside you. You feel <<his>> breath on your <<pussy>>.</span> <<set $vaginause to "othermouth">><<set $vaginastate to "othermouthentrance">><<set $NPCList[_n].mouth to "vaginaentrance">> <<set $NPCList[_n].vagina to "othermouth">><<sex 1 "genital" _n>><<set $NPCList[_n].location.head to "genitals">><<set $vaginatarget to _n>> <<elseif $vaginause is 0 and $NPCList[_n].penis is 0 and $player.vaginaExist>> <span class="blue"><<He>> kneels beside you. You feel <<his>> breath on your <<pussy>>.</span> <<set $vaginause to "othermouth">><<set $vaginastate to "othermouthentrance">><<set $NPCList[_n].mouth to "vaginaentrance">> <<set $NPCList[_n].penis to "othermouth">><<sex 1 "genital" _n>><<set $NPCList[_n].location.head to "genitals">><<set $vaginatarget to _n>> <<elseif $vaginause is 0 and $NPCList[_n].vagina is "facesit" and $player.vaginaExist>> <span class="blue">You feel <<him>> lean forward along your body, then feel <<his>> breath on your <<pussy>>.</span> <<set $vaginause to "othermouth">><<set $vaginastate to "othermouthentrance">><<set $NPCList[_n].mouth to "vaginaentrance">> <<sex 1 "genital" _n>><<set $NPCList[_n].location.head to "genitals">><<set $vaginatarget to _n>> <<else>> <<He>> breathes on your skin, making your hair stand on end. <<neutral 1>> <</if>> <<elseif $enemyanger + $rng lte 100 and $NPCList[_n].location.head is 0 and $NPCList[_n].location.genitals isnot "genitals" and $walltype isnot "front">> <<neutral 10 _n>> <<if $penisuse is 0 and $NPCList[_n].penis is 0 and $player.penisExist>> <<if $player.condom>> <<He>> removes <<condomDesc "player" "the">> from your penis. <<removeNPCCondom $mouthtarget "player">> <</if>> <span class="blue"> <<He>> kneels beside <<if $player.condom>> you and removes <<condomDesc "player" "your">>. <<removeNPCCondom $mouthtarget "player">> <<else>> you. <</if>> You feel <<his>> breath on your <<penis>>. </span> <<set $penisuse to "othermouth">><<set $penisstate to "othermouthentrance">><<set $NPCList[_n].mouth to "penisentrance">> <<set $NPCList[_n].penis to "othermouth">><<sex 1 "genital" _n>><<set $NPCList[_n].location.head to "genitals">><<set $penistarget to _n>> <<elseif $penisuse is 0 and $NPCList[_n].vagina is 0 and $player.penisExist>> <span class="blue"> <<He>> kneels beside <<if $player.condom>> you and removes <<condomDesc "player" "your">>. <<removeNPCCondom $mouthtarget "player">> <<else>> you. <</if>> You feel <<his>> breath on your <<penis>>. </span> <<set $penisuse to "othermouth">><<set $penisstate to "othermouthentrance">><<set $NPCList[_n].mouth to "penisentrance">> <<set $NPCList[_n].vagina to "othermouth">><<sex 1 "genital" _n>><<set $NPCList[_n].location.head to "genitals">><<set $penistarget to _n>> <<elseif $penisuse is 0 and $NPCList[_n].vagina is "facesit" and $player.penisExist>> <span class="blue"> You feel <<him>> lean forward along your body, then feel <<his>> breath on your <<if $player.condom>> <<penis>> as <<condomDesc "player" "your">> is removed. <<removeNPCCondom $mouthtarget "player">> <<else>> <<penis>>. <</if>> </span> <<set $penisuse to "othermouth">><<set $penisstate to "othermouthentrance">><<set $NPCList[_n].mouth to "penisentrance">> <<sex 1 "genital" _n>><<set $NPCList[_n].location.head to "genitals">><<set $penistarget to _n>> <<else>> <<He>> breathes on your skin, making your hair stand on end. <<neutral 1 _n>> <</if>> <<elseif $enemyanger + $rng lte 105>> <<if $position is "wall" and $walltype isnot "front" and $NPCList[_n].location.genitals isnot "genitals">> <<He>> kisses and caresses your helpless thighs with <<his>> tongue. <<neutral 10 _n>> <<bodypart_admire random_thigh>> <<elseif $NPCList[_n].location.genitals isnot "head">> <<He>> kisses and caresses your <<nipple>> with <<his>> tongue. <<neutralbreast 10 _n>> <<bodypart_admire breasts>> <</if>> <<elseif $enemyanger + $rng lte 110>> <<if $position is "wall" and $walltype isnot "front" and $NPCList[_n].location.genitals isnot "genitals">> <<He>> kisses and gently bites your helpless <<bottom>>. <<neutral 10 _n>> <<bodypart_admire random_bottom>> <<elseif $NPCList[_n].penis is "mouth" or $NPCList[_n].vagina is "mouth">> <<He>> leans back, <<if npcHasStrapon(_n)>> taking in the view of your mouth on <<his>> strap. <<else>> savouring the feel of your mouth on <<his>> genitals. <</if>> <<neutral 10 _n>> <<elseif $NPCList[_n].location.genitals isnot "head">> <<He>> kisses and gently bites you on the neck. <<neutral 10 _n>> <<bodypart_admire breasts>> <</if>> <<elseif $enemyanger + $rng lte 115>> <<if $walltype is "front">> <<He>> spits on your face. <<neutral 5 _n>> <<bodypart_admire forehead>> <<else>> <<He>> spits on your <<genitals>>. <<neutral 5 "genitals" _n>> <<bodypart_admire pubic>> <</if>> <<elseif $enemyanger + $rng lte 120>> <<if $walltype is "front">> <<He>> spits on your back. <<neutral 5 _n>> <<bodypart_admire back>> <<else>> <<He>> spits on your <<bottom>>. <<neutral 5 _n>> <<bodypart_admire random_bottom>> <</if>> <<elseif $enemyanger + $rng lte 130>> <<if $position is "wall" and $walltype isnot "front">> <<He>> spits on your tummy. <<neutral 5 _n>> <<bodypart_admire back>> <<if playerBellyVisible()>><<set $speechpregnant to 1>><</if>> <<elseif $NPCList[_n].location.genitals isnot "head" and $NPCList[_n].location.head isnot "head" and $NPCList[_n].location.head isnot "genitals" and $chestuse is 0>> <<set $NPCList[_n].mouth to "chestentrance">><<set $chestuse to "mouth">><<set $cheststate to "mouthentrance">><<set $chesttarget to _n>> <span class="blue"><<He>> moves <<his>> head to your chest.</span> <<neutralbreast 1 _n>> <<bodypart_admire breasts>> <<set $NPCList[_n].location.head to "head">> <</if>> <<elseif $enemyanger + $rng lte 135 and $NPCList[_n].location.genitals isnot "genitals">> <<if $walltype is "front">> <<He>> runs <<his>> tongue over your cheek and jaw. <<neutral 5 _n>> <<bodypart_admire random_cheek>> <<else>> <<He>> runs <<his>> tongue up your inner thigh. <<neutral 5 _n>> <<bodypart_admire random_thigh>> <</if>> <<elseif $enemyanger + $rng lte 140>> <<if $position is "wall" and $walltype isnot "front">> <<He>> spits on your helpless thighs. <<neutral 5 _n>> <<bodypart_admire random_thigh>> <<else>> <<He>> spits on your face. <<neutral 5 _n>> <<bodypart_admire random_cheek>> <</if>> <<elseif $enemyanger + $rng lte 145 and $NPCList[_n].location.genitals isnot "head">> <<He>> presses <<his>> mouth against your forehead. <<neutral 5 _n>> <<bodypart_admire forehead>> <<elseif $enemyanger + $rng lte 150>> <<if $walltype isnot "front">> <<He>> bites your cheek. <<violence 10>><<hitstat>><<bruise face>> <<bodypart_admire random_cheek>> <<else>> <<He>> bites your <<bottom>>. <<violence 10>><<hitstat>><<bruise bottom>> <<bodypart_admire random_bottom>> <</if>> <<elseif $enemyanger + $rng lte 155>> <<if $walltype isnot "front">> <<He>> ?admires your <<breasts>>, eyes full of thirst. <<neutral 5 _n>> <<bodypart_admire chest>> <<else>> <<He>> ?admires your groin, eyes full of thirst. <<neutral 5 _n>> <<bodypart_admire pubic>> <</if>> <<elseif $enemyanger + $rng lte 160>> <<if $position is "wall" and $walltype isnot "front" and $NPCList[_n].location.genitals isnot "genitals">> <<He>> bites your thighs. <<violence 10>><<hitstat>><<bruise thigh>> <<bodypart_admire random_thigh>> <<elseif $NPCList[_n].location.genitals isnot "head">> <<He>> bites your shoulders. <<violence 10>><<hitstat>><<bruise leftarm>><<bruise rightarm>> <<bodypart_admire_chance random_shoulder>> <</if>> <<elseif $enemyanger + $rng lte 165 and $NPCList[_n].location.genitals isnot "genitals" and !(playerBellySize(true) gte 8)>> <<He>> bites your tummy. <<violence 10>><<hitstat>><<bruise tummy>> <<bodypart_admire back>> <<elseif $enemyanger + $rng lte 170>> <<if $position is "wall" and $walltype isnot "front" and $NPCList[_n].location.genitals isnot "genitals">> <<He>> bites your hips. <<violence 10>><<hitstat>><<bruise tummy>> <<bodypart_admire pubic>> <<elseif $NPCList[_n].penis is "mouth" or $NPCList[_n].vagina is "mouth">> <<He>> leans back, <<if npcHasStrapon(_n)>> taking in the view of your mouth on <<his>> strap. <<else>> savouring the feel of your mouth on <<his>> genitals. <</if>> <<neutral 10 _n>> <<elseif $NPCList[_n].location.genitals isnot "head">> <<He>> bites your neck. <<violence 10>><<hitstat>><<bruise neck>> <<bodypart_admire breasts>> <</if>> <<elseif $enemyanger + $rng lte 180>> <<if $position is "wall" and $walltype isnot "front" and $NPCList[_n].location.genitals isnot "genitals">> <<He>> bites your thighs. <<violence 10>><<hitstat>><<bruise thigh>> <<bodypart_admire random_thigh>> <<elseif $NPCList[_n].penis is "mouth" or $NPCList[_n].vagina is "mouth">> <<He>> leans back, <<if npcHasStrapon(_n)>> taking in the view of your mouth on <<his>> strap. <<else>> savouring the feel of your mouth on <<his>> genitals. <</if>> <<neutral 10 _n>> <<elseif $NPCList[_n].location.genitals isnot "head">> <<He>> bites your cheek. <<violence 10>><<hitstat>><<bruise face>> <<bodypart_admire random_cheek>> <</if>> <<elseif $enemyanger + $rng gte 190>> <<if $position is "wall" and $walltype isnot "front" and $NPCList[_n].location.genitals isnot "genitals">> <<He>> bites your <<bottom>>. <<violence 10>><<hitstat>><<bruise bottom>> <<bodypart_admire random_bottom>> <<elseif $NPCList[_n].location.genitals isnot "head">> <<He>> bites your <<breasts>>. <<violence 10>><<hitstat>><<bruise chest>><<playWithBreasts>> <<bodypart_admire breasts>> <</if>> <</if>> <</if>> <</if>> <</if>> <<if $possessed and $control lt $controlmax>> <span class="blue">You barely feel a thing.</span> <</if>> <<if $stalk and _stripped>>/*NPC can run off with clothes and trigger a chase sequence. */ <<stalk_flight>> <<set $position to "stalk">> <<He>> runs away, <span class="pink">with your clothes still in <<his>> possession!</span> <</if>> <<manend>><<set $pullaway to 0>><<set $NPCList[_n].intro to 0>> <</widget>> <<widget "penisinit">> <<rng>> <<if $gloryhole>> The $NPCList[_n].penisdesc waits expectantly. <<elseif $npcSub>> <<His>> $NPCList[_n].penisdesc twitches, awaiting your touch. <<elseif $enemyanger + $rng lte 20>> <<if $NPCList[_n].lefthand is 0>> <<if $enemyarousal lte 40>> <<He>> slowly rubs <<his>> shaft. <<submission 1 _n>> <<elseif $enemyarousal lte 90>> <<He>> quickly rubs <<his>> shaft. <<submission 2 _n>> <<elseif $enemyarousal gte 91>> <<He>> rapidly rubs <<his>> shaft. <<submission 3 _n>> <</if>> <<elseif $NPCList[_n].righthand is 0>> <<if $enemyarousal lte 40>> <<He>> slowly rubs <<his>> shaft. <<submission 1 _n>> <<elseif $enemyarousal lte 90>> <<He>> quickly rubs <<his>> shaft. <<submission 2 _n>> <<elseif $enemyarousal gte 91>> <<He>> rapidly rubs <<his>> shaft. <<submission 3 _n>> <</if>> <<else>> <<if $walltype is "front">> <<He>> slaps <<his>> $NPCList[_n].penisdesc against your cheek. <<submission 2 _n>> <<else>> <<He>> rubs <<his>> $NPCList[_n].penisdesc against your thighs. <<submission 2 _n>> <</if>> <</if>> <<elseif $enemyanger + $rng lte 25>> <<if $position is "wall" and $walltype isnot "front">> <<He>> rubs <<his>> $NPCList[_n].penisdesc against your thighs. <<submission 2 _n>> <<else>> <<He>> rubs <<his>> $NPCList[_n].penisdesc against your tummy. <<submission 2 _n>> <<if playerBellyVisible()>><<set $speechpregnant to 1>><</if>> <</if>> <<elseif $enemyanger + $rng lte 30>> <<if $position is "wall" and $walltype isnot "front">> <<He>> rubs <<his>> $NPCList[_n].penisdesc against your thighs. <<submission 2 _n>> <<elseif $player.breastsize gte 3>> <span class="blue"><<He>> presses <<his>> $NPCList[_n].penisdesc against your <<breasts>>.</span> <<submission 2 _n>><<playWithBreasts>><<set $chestactiondefault to "rub">><<set $chestuse to "penis">><<set $chesttarget to _n>><<cheststat>><<set $mouthactiondefault to "peniskiss">><<set $NPCList[_n].penis to "chest">><<set $NPCList[_n].location.genitals to "head">> <<else>> <<He>> rubs <<his>> $NPCList[_n].penisdesc against your <<breasts>>. <<submission 2 _n>><<playWithBreasts>> <</if>> <<elseif $enemyanger + $rng lte 35>> <<if $walltype is "front">> <<He>> slaps <<his>> $NPCList[_n].penisdesc against your cheek. <<submission 2 _n>> <<else>> <<He>> rubs <<his>> $NPCList[_n].penisdesc against your thighs. <<submission 2 _n>> <</if>> <<elseif $enemyanger + $rng lte 40>> <<if $position is "wall" and $walltype isnot "front">> <<He>> rubs <<his>> $NPCList[_n].penisdesc against your thighs. <<submission 2 _n>> <<elseif $NPCList[_n].mouth is 0>> <<He>> rubs <<his>> $NPCList[_n].penisdesc against your face. <<submission 2 _n>> <<else>> <<He>> rubs <<his>> $NPCList[_n].penisdesc against your thighs. <<submission 2 _n>> <</if>> <<elseif $enemyanger + $rng lte 45 and $NPCList[_n].location.genitals is 0 and $NPCList[_n].location.head isnot "genitals" and $walltype isnot "front">> <!-- anal --> <<if $player.penisExist or playerHasStrapon()>> <<if $penisuse is 0>> <<if $settings.analEnabled and $consensual is 1>> <<if $NPCList[_n].condom and $NPCList[_n].condom.willUse is true and !$player.condom and $parasite.penis.name is undefined and $worn.under_lower.vagina_exposed is 1 and $worn.lower.vagina_exposed is 1 and $worn.over_lower.vagina_exposed is 1>> <<if playerChastity("penis")>> <<He>> tries to put a condom on your penis, but can't seem to get it over your $worn.genitals.name. <span class="red"><<He>> quickly gives up.</span> <<set $NPCList[_n].condom.willUse to false>> <<else>> <span class="green"><<He>> slips <<condomDesc _n>> on your <<penis>>.</span> <<equipNPCCondom _n "player">> <</if>> <</if>> <span class="blue"><<He>> straddles you, rubbing <<his>> ass against your <<penis>>.</span> <<neutral 5 _n>><<set $penisuse to "otheranus">><<set $NPCList[_n].penis to "otheranusentrance">><<set $penisstate to "otheranusentrance">><<set $speechotheranusentrance to 1>><<set $penistarget to _n>> <<set $NPCList[_n].location.genitals = "genitals">> <</if>> <</if>> <</if>> <<elseif $enemyanger + $rng lte 60 and $NPCList[_n].location.genitals is 0 and $NPCList[_n].location.head isnot "head">> <<if $mouthuse is 0>> <<if $penisbitten is 0>> <<if $position isnot "wall">> <<if wearingCondom(_n)>> <<He>> removes <<condomDesc _n "the">> from <<his>> penis. <<removeNPCCondom _n>> <</if>> <span class="blue"><<He>> positions <<his>> $NPCList[_n].penisdesc in front of your mouth.</span> <<if $NPCList[_n].type is "plant" and !["peniskiss","penislick"].includes($mouthactiondefault)>> <span class="pink">Nectar glistens on the tip.</span> <</if>> <<neutral 5 _n>><<set $mouthuse to "penis">><<set $NPCList[_n].penis to "mouthentrance">><<set $mouthstate to "entrance">><<set $speechmouthentrance to 1>> <<set $NPCList[_n].location.genitals = "head">><<set $mouthtarget to _n>> <</if>> <</if>> <</if>> <<elseif $enemyanger + $rng lte 70 and $penisuse is 0 and ($player.penisExist or (playerHasStrapon() and !npcHasStrapon(_n))) and $worn.under_lower.vagina_exposed is 1 and $worn.lower.vagina_exposed is 1 and $worn.over_lower.vagina_exposed is 1 and $NPCList[_n].location.genitals is 0 and $NPCList[_n].location.head isnot "genitals" and $walltype isnot "front">> <<set $penisuse to "otherpenis">><<set $penisstate to "otherpenisentrance">><<set $NPCList[_n].penis to "penisentrance">><<sex 5 "genital" _n>><<set $penistarget to _n>> <<if $NPCList[_n].chastity.penis.includes("chastity")>> <span class="blue"><<He>> moves <<his>> caged $NPCList[_n].penisdesc close to your penis.</span> <<elseif playerChastity("penis")>> <span class="blue"><<He>> moves <<his>> $NPCList[_n].penisdesc close to your $worn.genitals.name.</span> <<else>> <span class="blue"><<He>> moves <<his>> $NPCList[_n].penisdesc close to your <<penis>>.</span> <</if>> <<elseif $enemyanger + $rng lte 100 and $NPCList[_n].location.genitals is 0 and $NPCList[_n].location.head isnot "genitals" and $walltype isnot "front">> <<if $player.vaginaExist and $vaginause is 0 and ($anususe isnot 0 or random(0,100) gte 50)>> <<if $NPCList[_n].condom and $NPCList[_n].condom.willUse is true and $NPCList[_n].condom.worn is false and !$NPCList[_n].penisdesc.includes("strap-on")>> <<if $NPCList[_n].chastity.penis.includes("chastity")>> <<He>> tries to put a condom on, but can't seem to get it over <<his>> $NPCList[_n].chastity.penis. <span class="red"><<He>> quickly gives up.</span> <<set $NPCList[_n].condom.willUse to false>> <<else>> <span class="green"><<He>> slips <<condomDesc _n>> on <<his>> penis.</span> <<equipNPCCondom _n>> <</if>> <</if>> <span class="blue"><<He>> moves between your legs, positioning <<his>> $NPCList[_n].penisdesc in front of your <<pussy>>.</span> <<neutral 5 _n>><<set $vaginause to "penis">><<set $NPCList[_n].penis to "vaginaentrance">><<set $vaginastate to "entrance">><<set $speechvaginaentrance to 1>><<set $vaginatarget to _n>> <<set $NPCList[_n].location.genitals = "genitals">> <<elseif $player.vaginaExist and $settings.vaginalDoubleEnabled and ($awareness lt 300 ? random(0,1) is 0 : random(0,3) isnot 0) and $anususe isnot "penisdouble" and $vaginause is "penis" and $NPCList[_n].penissize gte 2 and $NPCList[$vaginatarget].penissize gte 2 and !["legLock","legLocked"].includes($feetuse)>> /* level 4 awareness( $awareness gt 300) should make this more common This action requires both NPCs to have a minimum penis size to initiate */ <!-- Double combat actions: Double comabt actions work similarly to their single counterparts, albeit with penetration states and enter/exit conditions. NPCs and player actions happen more or less the same way as existing actions. Initiation/escape actions will add or remove one NPC and switch the other one to single/double as appropriate. There are two primary states; in sync and out of sync. While out of sync, they typically display text more or less the same as their singular versions. While in sync, they display the double version text and combat outcomes. --> /* Error handling for escaped penises. Divert to regular penetration */ /* Essentially, NPC's penis has been set to 0 somehow, yet the player's states have not been reset. */ <<set $vaginadoubletarget to _n>> <<if $vaginatarget is $vaginadoubletarget>> <br><br> <<error { message : `[${$NPCList[$vaginatarget].fullDescription}] penis has escaped. It is set to [${$NPCList[$vaginatarget].penis}] but player state remains [${$vaginastate}]`, source : "[0x0] Occurred in man-combat -> penisinit: DVP. Please export and report." }>> <br><br> <<He>> teases your <<pussy>> with <<his>> $NPCList[$vaginatarget].penisdesc. <<set $NPCList[$vaginatarget].penis to "vaginaentrance">> <<if $vaginastate is "entrance">><<set $NPCList[$vaginatarget].penis to "vaginaentrance">> <<elseif $vaginastate is "imminent">><<set $NPCList[$vaginatarget].penis to "vaginaimminent">> <<elseif $vaginastate is "penetrated">><<set $NPCList[$vaginatarget].penis to "vagina">> <</if>> <<else>> /* Do intended function. Switch player into DP state and set NPC state */ <<if $NPCList[_n].condom and $NPCList[_n].condom.willUse is true and $NPCList[_n].condom.worn is false and !$NPCList[_n].penisdesc.includes("strap-on")>> <<if $NPCList[_n].chastity.penis.includes("chastity")>> <<He>> tries to put a condom on, but can't seem to get it over <<his>> $NPCList[_n].chastity.penis. <span class="red"><<He>> quickly gives up.</span> <<set $NPCList[_n].condom.willUse to false>> <<else>> <span class="green"><<He>> slips <<condomDesc _n>> on <<his>> penis.</span> <<equipNPCCondom _n>> <</if>> <</if>> <span class="blue"><<He>> moves <<his>> $NPCList[_n].penisdesc between your legs, joining the other cock in front of your <<pussy>>.</span> <<neutral 5>> /* Player */ <<set $vaginause to "penisdouble">> <<set $vaginastate to (["doublepenetration", "doubleimminent"].includes($vaginastate) ? $vaginastate : "doubleentrance")>> /* NPC */ <<set $speechvaginaentrance to 1>> <<set $NPCList[_n].penis to "vaginaentrancedouble">> <<set $NPCList[_n].location.genitals = "genitals">> <<if $NPCList[$vaginatarget].penis is "vagina">> <<set $NPCList[$vaginatarget].penis to "vaginadouble">> <<elseif $NPCList[$vaginatarget].penis is "vaginaimminent">> <<set $NPCList[$vaginatarget].penis to "vaginaimminentdouble">> <<elseif $NPCList[$vaginatarget].penis is "vaginaentrance">> <<set $NPCList[$vaginatarget].penis to "vaginaentrancedouble">> <</if>> <</if>> <<elseif $settings.analEnabled and $anususe is 0 and $bottomuse is 0>> <<if $NPCList[_n].condom and $NPCList[_n].condom.willUse is true and $NPCList[_n].condom.worn is false and !$NPCList[_n].penisdesc.includes("strap-on")>> <<if $NPCList[_n].chastity.penis.includes("chastity")>> <<He>> tries to put a condom on, but can't seem to get it over <<his>> $NPCList[_n].chastity.penis. <span class="red"><<He>> quickly gives up.</span> <<set $NPCList[_n].condom.willUse to false>> <<else>> <span class="green"><<He>> slips <<condomDesc _n>> on <<his>> penis.</span> <<equipNPCCondom _n>> <</if>> <</if>> <span class="blue"><<He>> moves between your legs, positioning <<his>> $NPCList[_n].penisdesc in front of your <<bottom>>.</span> <<if $NPCList[_n].type is "plant" and $NPCList[_n].penissize gte 4 and canImpregnateParasite("anus")>> <span class="red">Something about it scares you.</span> <</if>> <<neutral 5>><<set $anususe to "penis">><<set $NPCList[_n].penis to "anusentrance">><<set $anusstate to "entrance">><<set $speechanusentrance to 1>><<set $anustarget to _n>> <<set $NPCList[_n].location.genitals = "genitals">> <<elseif $settings.analEnabled and $settings.analDoubleEnabled and ($awareness lt 300 ? random(0,1) is 0 : random(0,3) isnot 0) and $vaginause isnot "penisdouble" and $bottomuse isnot "penis" and $anususe is "penis" and $anususe isnot "penisdouble" and $NPCList[_n].penissize gte 2 and $NPCList[$anustarget].penissize gte 2 and !["legLock","legLocked"].includes($feetuse)>> /* level 4 awareness( $awareness gt 300) should make this more common This action requires both NPCs to have a minimum penis size to initiate */ <!-- Double combat actions: Double comabt actions work similarly to their single counterparts, albeit with penetration states and enter/exit conditions. NPCs and player actions happen more or less the same way as existing actions. Initiation/escape actions will add or remove one NPC and switch the other one to single/double as appropriate. There are two primary states; in sync and out of sync. While out of sync, they typically display text more or less the same as their singular versions. While in sync, they display the double version text and combat outcomes. --> /* Error handling for escaped penises. Divert to regular penetration */ /* Essentially, NPC's penis has been set to 0 somehow, yet the player's states have not been reset. */ <<set $anusdoubletarget to _n>> <<if $anustarget is $anusdoubletarget>> <br><br> <<error { message : `[${$NPCList[$anustarget].fullDescription}] penis has escaped. It is set to [${$NPCList[$anustarget].penis}] but player state remains [${$anusstate}]`, source : "[0x0] Occurred in man-combat -> penisinit: DAP. Please export and report." }>> <br><br> <<He>> teases your <<bottom>> with <<his>> $NPCList[$anustarget].penisdesc. <<set $NPCList[$anustarget].penis to "anusentrance">> <<if $anusstate is "entrance">> <<set $NPCList[$anustarget].penis to "anusentrance">> <<He>> tries to penetrate, but slips away. <<elseif $anusstate is "imminent">> <<set $NPCList[$anustarget].penis to "anusimminent">> <<He>> pushes <<his>> cock against your opening, teasing what's to come. <<elseif $anusstate is "penetrated">> <<set $NPCList[$anustarget].penis to "anus">> <<He>> continues thrusting into your <<bottom>>. <</if>> <<else>> /* Otherwise do the intended function */ <<if $NPCList[_n].condom and $NPCList[_n].condom.willUse is true and $NPCList[_n].condom.worn is false and !$NPCList[_n].penisdesc.includes("strap-on")>> <<if $NPCList[_n].chastity.penis.includes("chastity")>> <<He>> tries to put a condom on, but can't seem to get it over <<his>> $NPCList[_n].chastity.penis. <span class="red"><<He>> quickly gives up.</span> <<set $NPCList[_n].condom.willUse to false>> <<else>> <span class="green"><<He>> slips <<condomDesc _n>> on <<his>> penis.</span> <<equipNPCCondom _n>> <</if>> <</if>> <span class="blue"><<He>> moves between your legs, joining the cock in front of your <<bottom>>.</span> <<neutral 5 _n>> /* Player */ <<set $anusdoubletarget to _n>> <<set $anususe to "penisdouble">> <<if $anusstate isnot "doublepenetration" and $anusstate isnot "doubleimminent">> <<set $anusstate to "doubleentrance">> <</if>> /* NPC */ <<set $NPCList[_n].penis to "anusentrancedouble">><<set $NPCList[_n].location.genitals = "genitals">><<set $speechanusentrance to 1>> <<if $NPCList[$anustarget].penis is "anus">> <<set $NPCList[$anustarget].penis to "anusdouble">> <<elseif $NPCList[$anustarget].penis is "anusimminent">> <<set $NPCList[$anustarget].penis to "anusimminentdouble">> <<elseif $NPCList[$anustarget].penis is "anusentrance">> <<set $NPCList[$anustarget].penis to "anusentrancedouble">> <</if>> <</if>> <</if>> <<elseif $enemyanger + $rng lte 120>> <<if $settings.analingusGivingEnabled and $enemyno gte 2 and $position isnot "wall" and $mouthuse is 0 and $NPCList[_n].location.head isnot "head" and $NPCList[_n].location.genitals is 0 and (!$player.vaginaExist or $vaginause isnot 0) and (!$player.penisExist or $penisuse isnot 0) and (!$settings.analEnabled or $anususe isnot 0) and !$worn.face.type.includes("covered") and !$worn.face.type.includes("gag")>> <span class="purple"><<He>> turns around and moves <<his>> ass in front of your face.</span> <<submission 5 _n>><<set $mouthuse to "otheranus">><<set $mouthstate to "otheranus">><<set $NPCList[_n].penis to "mouthotheranus">> <<set $NPCList[_n].location.genitals = "head">><<set $speechmouthotheranus to 1>><<set $mouthtarget to _n>> <<else>> <<He>> slowly traces <<his>> length across your exposed skin. <<neutral 1 _n>><<neutral 5 _n>> <</if>> <<elseif $enemyanger + $rng lte 140>> <<if $penisbitten is 0>> <<if $position isnot "wall">> <<if $mouthuse is 0 and $NPCList[_n].location.genitals is 0 and $NPCList[_n].location.head isnot "head"and !$worn.face.type.includes("covered") and !$worn.face.type.includes("gag")>> <<if wearingCondom(_n)>> <<He>> removes <<condomDesc _n "the">> from <<his>> penis. <<removeNPCCondom _n>> <</if>> <span class="purple"><<He>> shoves <<his>> $NPCList[_n].penisdesc against your lips.</span> <<if $NPCList[_n].type is "plant" and !["peniskiss","penislick"].includes($mouthactiondefault)>> <span class="pink">Nectar glistens on the tip.</span> <</if>> <<submission 5 _n>><<set $mouthuse to "penis">><<set $mouthstate to "imminent">><<set $NPCList[_n].penis to "mouthimminent">><<set $speechmouthimminent to 1>> <<set $NPCList[_n].location.genitals = "head">><<set $mouthtarget to _n>> <<else>> <<He>> slowly traces <<his>> length across your exposed skin. <<neutral 1 _n>> <</if>> <<else>> <<He>> slowly traces <<his>> length across your exposed skin. <<neutral 1 _n>> <</if>> <</if>> <<elseif $enemyanger + $rng lte 150 and ($penisuse is 0 or $vaginause is 0) and $NPCList[_n].location.genitals is 0 and $NPCList[_n].location.head isnot "genitals" and $settings.footFetishEnabled and $walltype isnot "front">> <span class="purple"><<He>> presses <<his>> foot against your <<genitals>>.</span> <<neutral 5 "genitals" _n>><<violence 1>><<set $NPCList[_n].penis to "footjob">> <<if $player.penisExist and $penisuse is 0>> <<set $penisuse to "feet">><<set $speechpenisfoot to 1>> <</if>> <<if $player.vaginaExist and $vaginause is 0>> <<set $vaginause to "feet">> <<if !$player.penisExist>> <<set $speechvaginafoot to 1>> <</if>> <</if>> <<elseif $enemyanger + $rng lte 170 and $NPCList[_n].location.genitals is 0 and $NPCList[_n].location.head isnot "genitals" and $walltype isnot "front">> <<if $anususe is 0 and $settings.analEnabled>> <<if $NPCList[_n].condom and $NPCList[_n].condom.willUse is true and $NPCList[_n].condom.worn is false and !$NPCList[_n].penisdesc.includes("strap-on")>> <<if $NPCList[_n].chastity.penis.includes("chastity")>> <<He>> tries to put a condom on, but can't seem to get it over <<his>> $NPCList[_n].chastity.penis. <span class="red"><<He>> quickly gives up.</span> <<set $NPCList[_n].condom.willUse to false>> <<else>> <span class="green"><<He>> slips <<condomDesc _n>> on <<his>> penis.</span> <<equipNPCCondom _n>> <</if>> <</if>> <<if $worn.lower.anus_exposed is 1 and $worn.over_lower.anus_exposed is 1>> <<if $worn.under_lower.anus_exposed is 1 and $worn.genitals.anus_exposed is 1 and $NPCList[_n].chastity.penis.includes("chastity")>> <span class="purple"><<He>> presses <<his>> $NPCList[_n].penisdesc against your anus.</span> <<neutral 5 "anus">><<set $anususe to "penis">><<set $NPCList[_n].penis to "anusentrance">><<set $anusstate to "entrance">><<set $speechanusentrance to 1>><<set $anustarget to _n>> <<elseif $worn.under_lower.anus_exposed is 1 and $worn.genitals.anus_exposed is 1>> <span class="purple"><<He>> presses <<his>> $NPCList[_n].penisdesc against your anus, preparing to penetrate.</span> <<sex 5 "anal" _n>><<set $anususe to "penis">><<set $NPCList[_n].penis to "anusimminent">><<set $anusstate to "imminent">><<set $speechanusimminent to 1>><<set $anustarget to _n>> <<elseif $worn.under_lower.anus_exposed is 0>> <span class="blue"><<He>> presses <<his>> $NPCList[_n].penisdesc against your anus through your $worn.under_lower.name.</span> <<sex 3 "anal" _n>><<set $NPCList[_n].penis to "anusentrance">><<set $anususe to "penis">><<set $worn.under_lower.integrity -= 10>><<set $anusstate to "entrance">><<set $speechanusentrance to 1>><<set $anustarget to _n>> <</if>> <<elseif $worn.over_lower.anus_exposed is 0>> <span class="blue"><<He>> presses <<his>> $NPCList[_n].penisdesc against your anus through your $worn.over_lower.name.</span> <<sex 2 "anal" _n>><<set $NPCList[_n].penis to "anusentrance">><<set $anususe to "penis">><<set $worn.over_lower.integrity -= 10>><<set $anusstate to "entrance">><<set $speechanusentrance to 1>><<set $anustarget to _n>> <<elseif $worn.lower.anus_exposed is 0>> <span class="blue"><<He>> presses <<his>> $NPCList[_n].penisdesc against your anus through your $worn.lower.name.</span> <<sex 2 "anal" _n>><<set $NPCList[_n].penis to "anusentrance">><<set $anususe to "penis">><<set $worn.lower.integrity -= 10>><<set $anusstate to "entrance">><<set $speechanusentrance to 1>><<set $anustarget to _n>> <</if>> <<if $NPCList[_n].type is "plant" and $NPCList[_n].penissize gte 4 and canImpregnateParasite("anus")>> <span class="red">Something about it scares you.</span> <</if>> <<set $NPCList[_n].location.genitals = "genitals">> <</if>> <<elseif $enemyanger + $rng gte 171 and $NPCList[_n].location.genitals is 0 and $NPCList[_n].location.head isnot "genitals" and $walltype isnot "front">> <<if $player.vaginaExist and $vaginause is 0 and (!$player.penisExist or $anususe isnot 0 or random(0,100) gte 50)>> <<if $NPCList[_n].condom and $NPCList[_n].condom.willUse is true and $NPCList[_n].condom.worn is false and !$NPCList[_n].penisdesc.includes("strap-on")>> <<if $NPCList[_n].chastity.penis.includes("chastity")>> <<He>> tries to put a condom on, but can't seem to get it over <<his>> $NPCList[_n].chastity.penis. <span class="red"><<He>> quickly gives up.</span> <<set $NPCList[_n].condom.willUse to false>> <<else>> <span class="green"><<He>> slips <<condomDesc _n>> on <<his>> penis.</span> <<equipNPCCondom _n>> <</if>> <</if>> <<if $worn.lower.vagina_exposed is 1 and $worn.over_lower.vagina_exposed is 1>> <<if $worn.under_lower.vagina_exposed is 1 and !playerChastity("vagina") and $NPCList[_n].chastity.penis.includes("chastity")>> <span class="purple"><<He>> presses <<his>> $NPCList[_n].penisdesc against your <<pussy>>.</span> <<sex 5 "genital" _n>><<set $vaginause to "penis">><<set $NPCList[_n].penis to "vaginaentrance">><<set $vaginastate to "entrance">><<set $speechvaginaentrance to 1>><<set $vaginatarget to _n>> <<elseif $worn.under_lower.vagina_exposed is 1 and !playerChastity("vagina")>> <span class="purple"><<He>> presses <<his>> $NPCList[_n].penisdesc against your <<pussy>>, preparing to penetrate.</span> <<sex 5 "genital" _n>><<set $vaginause to "penis">><<set $NPCList[_n].penis to "vaginaimminent">><<set $vaginastate to "imminent">><<set $speechvaginaimminent to 1>><<set $vaginatarget to _n>> <<elseif $worn.under_lower.vagina_exposed is 0>> <span class="blue"><<He>> presses <<his>> $NPCList[_n].penisdesc against your <<pussy>> through your $worn.under_lower.name.</span> <<set $worn.under_lower.integrity -= 10>><<sex 3 "genital" _n>><<set $NPCList[_n].penis to "vaginaentrance">><<set $vaginause to "penis">><<set $vaginastate to "entrance">><<set $speechvaginaentrance to 1>><<set $vaginatarget to _n>> <</if>> <<elseif $worn.over_lower.vagina_exposed is 0>> <span class="blue"><<He>> presses <<his>> $NPCList[_n].penisdesc against your <<pussy>> through your $worn.over_lower.name.</span> <<sex 2 "genital" _n>><<set $NPCList[_n].penis to "vaginaentrance">><<set $vaginause to "penis">><<set $worn.over_lower.integrity -= 10>><<set $vaginastate to "entrance">><<set $speechvaginaentrance to 1>><<set $vaginatarget to _n>> <<elseif $worn.lower.vagina_exposed is 0>> <span class="blue"><<He>> presses <<his>> $NPCList[_n].penisdesc against your <<pussy>> through your $worn.lower.name.</span> <<sex 2 "genital" _n>><<set $NPCList[_n].penis to "vaginaentrance">><<set $vaginause to "penis">><<set $worn.lower.integrity -= 10>><<set $vaginastate to "entrance">><<set $speechvaginaentrance to 1>><<set $vaginatarget to _n>> <</if>> <<if $NPCList[_n].type is "plant" and $NPCList[_n].penissize gte 4 and canImpregnateParasite("vagina")>> <span class="red">Something about it scares you.</span> <</if>> <<set $NPCList[_n].location.genitals to "genitals">> <<elseif $player.penisExist>> <<if $anususe is 0 and $settings.analEnabled>> <<if $NPCList[_n].condom and $NPCList[_n].condom.willUse is true and $NPCList[_n].condom.worn is false and !$NPCList[_n].penisdesc.includes("strap-on")>> <<if $NPCList[_n].chastity.penis.includes("chastity")>> <<He>> tries to put a condom on, but can't seem to get it over <<his>> $NPCList[_n].chastity.penis. <span class="red"><<He>> quickly gives up.</span> <<set $NPCList[_n].condom.willUse to false>> <<else>> <span class="green"><<He>> slips <<condomDesc _n>> on <<his>> penis.</span> <<equipNPCCondom _n>> <</if>> <</if>> <<if $worn.lower.anus_exposed is 1 and $worn.over_lower.anus_exposed is 1>> <<if $worn.under_lower.anus_exposed is 1 and $worn.genitals.anus_exposed is 1 and $NPCList[_n].chastity.penis.includes("chastity")>> <span class="purple"><<He>> presses <<his>> $NPCList[_n].penisdesc against your anus.</span> <<neutral 5 "anus">><<set $anususe to "penis">><<set $NPCList[_n].penis to "anusentrance">><<set $anusstate to "entrance">><<set $speechanusentrance to 1>><<set $anustarget to _n>> <<elseif $worn.under_lower.anus_exposed is 1 and $worn.genitals.anus_exposed is 1>> <span class="purple"><<He>> presses <<his>> $NPCList[_n].penisdesc against your anus, preparing to penetrate.</span> <<sex 5 "anal" _n>><<set $anususe to "penis">><<set $NPCList[_n].penis to "anusimminent">><<set $anusstate to "imminent">><<set $speechanusimminent to 1>><<set $anustarget to _n>> <<elseif $worn.under_lower.anus_exposed is 0>> <span class="blue"><<He>> presses <<his>> $NPCList[_n].penisdesc against your anus through your $worn.under_lower.name.</span> <<sex 3 "anal" _n>><<set $NPCList[_n].penis to "anusentrance">><<set $anususe to "penis">><<set $worn.under_lower.integrity -= 10>><<set $anusstate to "entrance">><<set $speechanusentrance to 1>><<set $anustarget to _n>> <</if>> <<elseif $worn.over_lower.anus_exposed is 0>> <span class="blue"><<He>> presses <<his>> $NPCList[_n].penisdesc against your anus through your $worn.over_lower.name.</span> <<sex 2 "anal" _n>><<set $NPCList[_n].penis to "anusentrance">><<set $anususe to "penis">><<set $worn.over_lower.integrity -= 10>><<set $anusstate to "entrance">><<set $speechanusentrance to 1>><<set $anustarget to _n>> <<elseif $worn.lower.anus_exposed is 0>> <span class="blue"><<He>> presses <<his>> $NPCList[_n].penisdesc against your anus through your $worn.lower.name.</span> <<sex 2 "anal" _n>><<set $NPCList[_n].penis to "anusentrance">><<set $anususe to "penis">><<set $worn.lower.integrity -= 10>><<set $anusstate to "entrance">><<set $speechanusentrance to 1>><<set $anustarget to _n>> <</if>> <<if $NPCList[_n].type is "plant" and $NPCList[_n].penissize gte 4 and canImpregnateParasite("anus")>> <span class="red">Something about it scares you.</span> <</if>> <<set $NPCList[_n].location.genitals = "genitals">> <</if>> <</if>> <</if>> <</widget>> <<widget "vaginainit">> <<rng>> <<if $gloryhole>> The pussy waits expectantly. <<elseif $npcSub>> <<His>> legs quiver, <<his>> pussy waiting for you to do something. <<neutral 1 _n>><<set $speechvaginaflaunt to 1>> <<elseif $enemyanger + $rng lte 20 and $NPCList[_n].location.genitals is 0>> <<He>> sways <<his>> hips suggestively. <<neutral 1 _n>><<set $speechvaginaflaunt to 1>> <<elseif $enemyanger + $rng lte 40>> <<He>> rubs <<his>> pussy. <<neutral 3 _n>><<set $speechvaginaflaunt to 1>> <<elseif $enemyanger + $rng lte 50 and $NPCList[_n].location.genitals is 0 and $NPCList[_n].location.head isnot "genitals" and ($player.penisExist or playerHasStrapon()) and $penisuse is 0 and $settings.analEnabled and $walltype isnot "front">> <<if $NPCList[_n].condom and $NPCList[_n].condom.willUse is true and !$player.condom and $parasite.penis.name is undefined and $worn.under_lower.vagina_exposed is 1 and $worn.lower.vagina_exposed is 1 and $worn.over_lower.vagina_exposed is 1>> <<if playerChastity("penis")>> <<He>> tries to put a condom on your penis, but can't seem to get it over your $worn.genitals.name. <span class="red"><<He>> quickly gives up.</span> <<set $NPCList[_n].condom.willUse to false>> <<else>> <span class="green"><<He>> slips <<condomDesc _n>> on your <<penis>>.</span> <<equipNPCCondom _n "player">> <</if>> <</if>> <span class="blue"><<He>> straddles you, rubbing <<his>> ass against your <<penis>>.</span> <<neutral 5 "genitals">><<set $penisuse to "otheranus">><<set $NPCList[_n].vagina to "otheranusentrance">><<set $penisstate to "otheranusentrance">><<set $speechotheranusentrance to 1>><<set $penistarget to _n>> <<set $NPCList[_n].location.genitals = "genitals">> <<elseif $enemyanger + $rng lte 60 and $NPCList[_n].location.genitals is 0 and $NPCList[_n].location.head isnot "head" and $mouthuse is 0 and ($position isnot "wall" or $walltype is "front") and !$worn.face.type.includes("covered") and !$worn.face.type.includes("gag")>> <<if $rng % 5 is 0 and $settings.facesitEnabled>> <<if $position is "doggy">> <<He>> gently rolls you onto your back. <<set $position to "missionary">> <</if>> <span class="purple"> <<print either( "<<He>> straddles your face and slowly lowers <<his>> pussy down onto your mouth.", "<<He>> stands over your face and lowers <<himself>>, planting <<his>> pussy on your face.", "<<His>> pussy comes down onto your face and rests lightly on your mouth, and <<he>> waits expectantly." )>> </span> <<submission 5 _n>><<set $NPCList[_n].vagina to "facesit">><<set $mouthuse to "facesit">><<set $mouthstate to "vagina">> <<set $speechfacesit to 1>><<set $NPCList[_n].location.genitals = "head">><<set $mouthtarget to _n>> <<else>> <span class="purple"><<He>> takes hold of your head and gently guides it in towards <<his>> pussy as <<he>> opens <<his>> legs.</span> <<submission 5 _n>><<set $mouthuse to "othervagina">><<set $NPCList[_n].vagina to "mouth">><<set $mouthstate to "othervagina">> <<set $speechvaginamouth to 1>><<set $NPCList[_n].location.genitals = "head">><<set $mouthtarget to _n>> <</if>> <<if $NPCList[_n].type is "plant">> <span class="pink">Nectar glistens at the entrance.</span> <</if>> <<elseif $enemyanger + $rng lte 70>> <<if $walltype is "front">> <<He>> rubs <<his>> pussy against your cheek. <<neutral 10 _n>> <<else>> <<He>> rubs <<his>> pussy against your thigh. <<neutral 10 _n>> <</if>> <<elseif $enemyanger + $rng lte 80 and $NPCList[_n].lefthand is 0>> <span class="lblue"><<He>> presses <<his>> fingers against <<his>> labia.</span> <<neutral 1 _n>><<set $enemyarousal += 10>><!-- <<set $NPCList[_n].vagina to "lefthand">><<set $NPCList[_n].lefthand to "othervagina">> --> <<elseif $enemyanger + $rng lte 80 and $NPCList[_n].righthand is 0>> <span class="lblue"><<He>> presses <<his>> fingers against <<his>> labia.</span> <<neutral 1 _n>><<set $enemyarousal += 10>><!-- <<set $NPCList[_n].vagina to "righthand">><<set $NPCList[_n].righthand to "othervagina">> --> <<elseif $enemyanger + $rng lte 80>> <<if $walltype is "front">> <<He>> rubs <<his>> pussy against your cheek. <<neutral 10 _n>> <<else>> <<He>> rubs <<his>> pussy against your thigh. <<neutral 10 _n>> <</if>> <<elseif $enemyanger + $rng lte 100 and $penisuse is 0 and ($player.penisExist or playerHasStrapon()) and $worn.under_lower.vagina_exposed is 1 and $worn.lower.vagina_exposed is 1 and $worn.over_lower.vagina_exposed is 1 and $NPCList[_n].location.genitals is 0 and $NPCList[_n].location.head isnot "genitals" and $walltype isnot "front">> <!-- mount and prepare for vaginal sex --> <<set $penisuse to "othervagina">><<set $NPCList[_n].vagina to "penisentrance">><<set $penisstate to "entrance">><<set $penistarget to _n>> <<if $NPCList[_n].condom and $NPCList[_n].condom.willUse is true and !$player.condom and $parasite.penis.name is undefined>> <<if playerChastity("penis")>> <<He>> tries to put a condom on your penis, but can't seem to get it over your $worn.genitals.name. <span class="red"><<He>> quickly gives up.</span> <<set $NPCList[_n].condom.willUse to false>> <<else>> <span class="green"><<He>> slips <<condomDesc _n>> on your <<penis>>.</span> <<equipNPCCondom _n "player">> <</if>> <</if>> <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 $player.vaginaExist and $worn.under_lower.vagina_exposed is 1 and $worn.lower.vagina_exposed is 1 and $worn.over_lower.vagina_exposed is 1 and $NPCList[_n].location.genitals is 0 and $NPCList[_n].location.head isnot "genitals" and $walltype isnot "front">> <!-- tribbing --> <<set $vaginause to "othervagina">><<set $vaginastate to "othervaginaentrance">><<set $NPCList[_n].vagina to "vaginaentrance">><<sex 5 "genital" _n>><<set $vaginatarget to _n>> <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 ($player.penisExist or playerHasStrapon()) and $worn.under_lower.vagina_exposed is 1 and $worn.lower.vagina_exposed is 1 and $worn.over_lower.vagina_exposed is 1 and $NPCList[_n].location.genitals is 0 and $NPCList[_n].location.head isnot "genitals" and !playerChastity("penis") and $walltype isnot "front">> <!-- forceful vaginal sex --> <<set $penisuse to "othervagina">><<set $NPCList[_n].vagina to "penisimminent">><<set $penisstate to "imminent">><<set $penistarget to _n>> <<if $NPCList[_n].condom and $NPCList[_n].condom.willUse is true and !$player.condom and $parasite.penis.name is undefined>> <<if playerChastity("penis")>> <<He>> tries to put a condom on your penis, but can't seem to get it over your $worn.genitals.name. <span class="red"><<He>> quickly gives up.</span> <<set $NPCList[_n].condom.willUse to false>> <<else>> <span class="green"><<He>> slips <<condomDesc _n>> on your <<penis>>.</span> <<equipNPCCondom _n "player">> <</if>> <</if>> <<if $NPCList[_n].chastity.vagina.includes("chastity")>> <<set $penisuse to "othervagina">><<set $NPCList[_n].vagina to "penisentrance">><<set $penisstate to "entrance">><<set $penistarget to _n>> <span class="blue"><<He>> straddles you, <<his>> pussy hovering close to your <<penis>>.</span> <<else>> <<set $penisuse to "othervagina">><<set $NPCList[_n].vagina to "penisimminent">><<set $penisstate to "imminent">><<set $penistarget to _n>> <span class="purple"><<He>> wraps <<his>> legs around your pelvis, pressing <<his>> pussy against your <<genitals>>.</span> <</if>> <<set $NPCList[_n].location.genitals = "genitals">> <<elseif $enemyanger + $rng lte 120 and $vaginause is 0 and $player.vaginaExist and $worn.under_lower.vagina_exposed is 1 and $worn.lower.vagina_exposed is 1 and $worn.over_lower.vagina_exposed is 1 and $NPCList[_n].location.genitals is 0 and $NPCList[_n].location.head isnot "genitals" and $walltype isnot "front">> <!-- forceful tribbing --> <<set $vaginause to "othervagina">><<set $vaginastate to "othervaginaimminent">><<set $NPCList[_n].vagina to "vaginaimminent">><<sex 20 "genital" _n>><<set $vaginatarget to _n>> <span class="purple"><<He>> pushes <<his>> pussy close to yours.</span> <<set $NPCList[_n].location.genitals = "genitals">> <<elseif $enemyanger + $rng lte 140 and $NPCList[_n].location.genitals is 0 and $NPCList[_n].location.head isnot "genitals">> <<if $position is "wall" and $walltype isnot "front">> <<He>> sits on your protruding <<bottom>>, pressing down on you painfully. <<violence 3>> <<elseif $mouthuse is 0>> <<He>> rubs <<his>> clit against your face. <<violence 3>> <<else>> <<He>> frots against your thigh while squeezing it with <<his>> own. <<violence 3>> <</if>> <<elseif $enemyanger + $rng lte 160 and ($penisuse is 0 or $vaginause is 0) and $NPCList[_n].location.genitals is 0 and $NPCList[_n].location.head isnot "genitals" and $settings.footFetishEnabled and $walltype isnot "front">> <!-- foot job --> <span class="purple"><<He>> presses <<his>> foot against your <<genitals>>.</span> <<neutral 5 "genitals" _n>><<violence 1>><<set $NPCList[_n].vagina to "footjob">> <<if ($player.penisExist or playerHasStrapon()) and $penisuse is 0>> <<set $penisuse to "feet">><<set $speechpenisfoot to 1>> <</if>> <<if $player.vaginaExist and $vaginause is 0>> <<set $vaginause to "feet">> <<if !$player.penisExist>> <<set $speechvaginafoot to 1>> <</if>> <</if>> <<elseif $enemyanger + $rng lte 180 and $NPCList[_n].location.genitals is 0 and $NPCList[_n].location.head isnot "genitals" and !(playerBellySize(true) gte 8)>> <<if $position is "wall" and $walltype isnot "front">> <<He>> kicks you in the <<bottom>>. <<violence 10>><<hitstat>><<bruise bottom>> <<else>> <<He>> kicks you in the stomach. <<violence 10>><<hitstat>><<bruise face>> <</if>> <<elseif $enemyanger + $rng lte 200 and $mouthuse is 0>> <<if $pullaway is 1>> <<set $pullaway to 0>> Saliva drips from <<his>> pussy. <<else>> <<if $position is "wall" and $walltype isnot "front" and $NPCList[_n].location.genitals is 0 and $NPCList[_n].location.head isnot "genitals">> <<if $player.penisExist>> <<He>> kicks your <<penis>>. <<violence 20>><<hitstat>><<bruise penis>><<set $speechbeat to 1>> <<elseif $player.vaginaExist>> <<He>> kicks your <<pussy>>. <<violence 20>><<hitstat>><<bruise vagina>><<set $speechbeat to 1>> <</if>> <<elseif $NPCList[_n].location.genitals is 0 and $NPCList[_n].location.head isnot "head" and $mouthuse is 0 and !$worn.face.type.includes("covered") and !$worn.face.type.includes("gag")>> <<if $rng % 2 is 0 and $settings.facesitEnabled>> <<if $position is "doggy">> <<He>> turns you onto your back. <<set $position to "missionary">> <</if>> <span class="purple"> <<print either( "<<He>> swings a leg over your face and sits down, sitting on your face.", "<<He>> sits down on your face, covering your mouth with <<his>> pussy.", "<<His>> pussy and ass descend onto your face, as <<he>> sits on it." )>> </span> <<submission 5 _n>><<set $NPCList[_n].vagina to "facesit">><<set $mouthuse to "facesit">><<set $mouthstate to "vagina">> <<violence 3>><<bruise face>><<set $speechfacesit to 1>><<set $mouthtarget to _n>> <<set $NPCList[_n].location.genitals = "head">> <<else>> <span class="purple"><<He>> wraps <<his>> legs around your head and presses <<his>> pussy against your mouth.</span> <<submission 5 _n>><<set $mouthuse to "othervagina">><<set $NPCList[_n].vagina to "mouth">><<set $mouthstate to "othervagina">><<violence 3>><<bruise face>><<set $speechvaginamouth to 1>> <<set $NPCList[_n].location.genitals = "head">><<set $mouthtarget to _n>> <</if>> <<if $NPCList[_n].type is "plant">> <span class="pink">Nectar glistens at the entrance.</span> <</if>> <</if>> <</if>> <<elseif $NPCList[_n].location.genitals is 0 and $NPCList[_n].location.head isnot "genitals">> <<if $position is "wall" and $walltype isnot "front">> <<if $player.penisExist>> <<He>> kicks your <<penis>>. <<violence 20>><<hitstat>><<bruise penis>><<set $speechbeat to 1>> <<elseif $player.vaginaExist>> <<He>> kicks your <<pussy>>. <<violence 20>><<hitstat>><<bruise vagina>><<set $speechbeat to 1>> <</if>> <<else>> <<He>> kicks you in the face. <<violence 10>><<bruise face>><<set $speechbeat to 1>><<hitstat>> <</if>> <</if>> <</widget>> <<widget "chest_section">> <<if $NPCList[_n].chest isnot "none">> <<if $NPCList[_n].breastsize lte 1>> <<set $_NPCBreastDesc to "chest">> <<else>> <<set $_NPCBreastDesc to ($NPCList[_n].chest is "clothed" ? "clothed" : either("bare", "exposed")) + " $NPCList[_n].breastsdesc">> <</if>> <</if>> <<if ($NPCList[_n].chest is 0 or $NPCList[_n].chest is "clothed") and !$gloryhole and $position isnot "wall">> <<if $NPCList[_n].pronoun is "f" and ($NPCList[_n].location.genitals is "genitals" or $NPCList[_n].stance is "top")>> <!-- Doggy --> <<if $position is "doggy">> <!-- Being under the player --> <<if $NPCList[_n].vagina.toString().includes("penis") or $NPCList[_n].vagina is "frot" or $NPCList[_n].vagina.toString().includes("vagina") or $NPCList[_n].vagina.toString().includes("otheranus") or $NPCList[_n].penis.toString().includes("otheranus") or $NPCList[_n].penis is "vaginadouble">> <<if $NPCList[_n].mouth is "kiss">> <<if $NPCList[_n].breastsize lte 1>> <<His>> nipples graze your own. <<else>> <<His>> $_NPCBreastDesc squish against <<if $NPCList[_n].breastsize is $player.breastsize>>yours<<else>>your <<breasts>><</if>>. <</if>> <<else>> <<if $NPCList[_n].breastsize gte 6>> <<if $NPCList[_n].righthand is 0 and $NPCList[_n].lefthand is 0>> <<He>> hugs you between <<his>> $_NPCBreastDesc. <<else>> <<His>> $NPCList[_n].breastsdesc bounce <<if $NPCList[_n].chest is "clothed">>beneath you in <<his>> $NPCList[_n].clothes.upper.name<<else>>freely beneath you with <<his>> movements<</if>>. <</if>> <<else>> <<His>> $_NPCBreastDesc lie<<if $_NPCBreastDesc is "chest">>s<</if>> open beneath you. <</if>> <</if>> <!-- Being above/behind the player --> <<else>> <<if $NPCList[_n].breastsize gte 8>> You feel <<his>> $_NPCBreastDesc weighing down on your back. <<else>> You feel <<his>> $_NPCBreastDesc pressing into your back. <</if>> <</if>> <!-- Missionary --> <<else>> <!-- Being under the player --> <<if $NPCList[_n].penis.toString().includes("anus") or $NPCList[_n].penis is "vaginadouble">> <<if $NPCList[_n].breastsize gte 10>> <<if $NPCList[_n].righthand is 0 and $NPCList[_n].lefthand is 0>> <<He>> hugs you between <<his>> $_NPCBreastDesc. <<else>> <<His>> $_NPCBreastDesc bounce around you as you lie between them. <</if>> <<else>> You feel <<his>> $_NPCBreastDesc pressing into your back. <</if>> <!-- Being above/riding the player --> <<else>> <<if $NPCList[_n].mouth is "kiss">> <<if $NPCList[_n].breastsize lte 1>> <<His>> nipples graze your own. <<else>> <<His>> $_NPCBreastDesc squish against <<if $NPCList[_n].breastsize is $player.breastsize>>yours<<else>>your <<breasts>><</if>>. <</if>> <<else>> <<if $NPCList[_n].breastsize gte 6>> <<His>> $NPCList[_n].breastsdesc bounce <<if $NPCList[_n].chest is "clothed">>above you in <<his>> $NPCList[_n].clothes.upper.name<<else>>freely above you with <<his>> movements<</if>>. <<else>> <<His>> $_NPCBreastDesc lie<<if $_NPCBreastDesc is "chest">>s<</if>> open above you. <</if>> <</if>> <</if>> <</if>> <</if>> <<elseif $NPCList[_n].chest.toString().includes("mouth")>> <<if $mouthstate is "breasts">> <<if $enemyarousal gte (($enemyarousalmax / 10) * 6)>> <<if $NPCList[_n].breastsize lte 1>> <<His>> heart beats rapidly against your cheek. <<else>> You can feel <<his>> heartbeat quickening through <<his>> $_NPCBreastDesc. <</if>> <<else>> <<if $NPCList[_n].breastsize lte 1>> <<His>> chest rubs against your face. <<else>> <<His>> chest swells with each breath, <<his>> $_NPCBreastDesc rhythmically rubbing against your face. <</if>> <</if>> <<elseif $mouthstate is "nipple">> <<if $enemyarousal gte (($enemyarousalmax / 10) * 6)>> <<if $NPCList[_n].breastsize lte 1>> <<His>> chest heaves erratically. <<He>> struggles to keep your mouth latched to <<his>> nipple. <<else>> <<His>> breaths are quick and heavy, jostling your head against <<his>> breast. <</if>> <</if>> <</if>> <</if>> <</widget>> <<widget "mancombat_strangle">> <<set _left = $NPCList[_n].lefthand is "throat">> <<set _right = $NPCList[_n].righthand is "throat">> <<set _hands = (_left ? 1 : 0) + (_right ? 1 : 0)>> <<set _handname = _hands == 2 ? "hands" : (_left ? "left hand" : "right hand")>> <<set _handvar = _left ? "lefthand" : "righthand">> <<if $enemyanger gte 100 or $keepchoke or ($enemyanger + $rng gte 150 and $settings.asphyxiaLevel gte 4)>> <<if $underwater isnot 1 and $settings.asphyxiaLevel gte 3>> <<if _hands == 2>> <!-- -200 per turn with both hands: max to 0 oxygen in 6 turns --> <<oxygen -250>> <<else>> <!-- -175 per turn with one hand: max to 0 oxygen in 7 turns --> <<oxygen -225>> <</if>> <<set $speechthroat to 1>> <<sub 1>> <</if>> <<bruise neck>><<bruise neck>> <<if $settings.asphyxiaLevel gte 3>> <<He>> strangles your throat<<if _hands is 2>> with both hands<</if>>. <<if $oxygen gte 900>> <<violence 5 1 1 0.02>> <<elseif $oxygen gte 600>> <span class="purple"> You can't breathe!</span> <<violence 10 1 1 0.02>> <<elseif $oxygen gte 300>> <span class="pink"> You feel light-headed.</span> <<violence 20 1 1 0.02>> <<elseif $oxygen gte 1>> <span class="pink"> You see stars.</span> <<violence 40 1 1 0.02>> <<else>> <span class="red"> You are suffocating!</span> <<suffocatepass>> <<violence 100 1 1 0.02>> <</if>> <<else>> <<He>> holds you by the neck roughly <<if _hands is 2>> with both hands<</if>>. <</if>> <<elseif $rng gte 91 and _hands is 2>> <span class="teal"><<He>> releases <<his>> hands from your throat.</span> <<set $neckuse to 0>> <<gaspair>> <<set $NPCList[_n].lefthand to 0>><<set $NPCList[_n].righthand to 0>> <<elseif $rng gte 81>> <<if _hands is 2>> <span class="teal"><<He>> releases <<his>> right hand from your throat.</span> <<set $NPCList[_n].righthand to 0>> <<suffocatepass -1>> <<else>> <span class="teal"><<He>> releases <<his>> _handname from your throat.</span> <<set $neckuse to 0>> <<gaspair>> <<set $NPCList[_n][_handvar] to 0>> <</if>> <<elseif $rng gte 71 and _hands is 2>> <span class="teal"><<He>> releases <<his>> left hand from your throat.</span> <<set $NPCList[_n].lefthand to 0>> <<suffocatepass -1>> <<else>> <<He>> holds you down <<if _hands is 2>>with both hands around<<else>>by<</if>> your throat. <<violence _hands>> <<suffocatepass -1>> <</if>> <<bruise neck>><<if _hands is 2>><<bruise neck>><</if>> <<bodypart_admire_chance random_cheek>> <</widget>> <<widget "mancombat_choke">> <<set _left = $NPCList[_n].lefthand is "throat">> <<set _right = $NPCList[_n].righthand is "throat">> <<set _hands = (_left ? 1 : 0) + (_right ? 1 : 0)>> <<set _handname = _hands == 2 ? "hands" : (_left ? "left hand" : "right hand")>> <<set _handvar = _left ? "lefthand" : "righthand">> <!-- 97.2% probability to stop choking before you pass out if my math is correct (95% if with both hands) --> <<if $oxygen gt 600 or $askedtochoke gte 1 or $keepchoke or $enemyanger gte 100 or $rng lte 55>> <<if $underwater isnot 1 and $settings.asphyxiaLevel gte 2>> <<if _hands == 2>> <!-- -175 per turn with both hands: max to 0 oxygen in 7 turns --> <<oxygen -225>> <<else>> <!-- -150 per turn with one hand: max to 0 oxygen in 8 turns --> <<oxygen -200>> <</if>> <<set $askedtochoke to 0>> <<set $speechthroat to 1>> <</if>> <<bruise neck>> <<if $settings.asphyxiaLevel gte 2>> <<He>> chokes you with <<if _hands is 2>>both hands<<else>><<his>> _handname<</if>>. <<if $oxygen gte 900>> <<violence 5 1 0.1 0.02>> <<elseif $oxygen gte 600>> <span class="purple"> You can't breathe!</span> <<violence 10 1 0.1 0.02>> <<elseif $oxygen gte 300>> <span class="pink"> You feel light-headed.</span> <<violence 20 1 0.1 0.02>> <<elseif $oxygen gte 1>> <span class="pink"> You see stars.</span> <<violence 40 1 0.1 0.02>> <<else>> <span class="red"> You are suffocating!</span> <<suffocatepass>> <<violence 100 1 0.1 0.02>> <</if>> <<else>> <<He>> holds your neck in a gentle but firm grip<<if _hands is 2>> with both hands<</if>>. <</if>> <<elseif $rng gte 91 and _hands is 2>> <span class="teal"><<He>> releases <<his>> hands from your neck.</span> <<set $neckuse to 0>> <<gaspair>> <<set $NPCList[_n].lefthand to 0>><<set $NPCList[_n].righthand to 0>> <<elseif $rng gte 81>> <<if _hands is 2>> <span class="teal"><<He>> releases <<his>> right hand from your neck.</span> <<set $NPCList[_n].righthand to 0>> <<suffocatepass -1>> <<else>> <span class="teal"><<He>> releases <<his>> _handname from your neck.</span> <<set $neckuse to 0>> <<gaspair>> <<set $NPCList[_n][_handvar] to 0>> <</if>> <<elseif $rng gte 71 and _hands is 2>> <span class="teal"><<He>> releases <<his>> left hand from your neck.</span> <<set $NPCList[_n].lefthand to 0>> <<suffocatepass -1>> <<else>> <<He>> holds you down <<if _hands is 2>>with both hands around<<else>>by<</if>> your neck. <<violence _hands 1 0.1 0.02>> <<suffocatepass -1>> <</if>> <<bruise neck>> <<bodypart_admire_chance random_cheek>> <</widget>> <<widget "gaspair">> <<if $underwater isnot 1>> <<if $oxygen gte 900>> You inhale sharply. <<elseif $oxygen gte 600>> You gasp for air. <<elseif $oxygen gte 1>> You hungrily gasp for air. <<else>> You hungrily gasp for air and cough. <</if>> <<oxygen 300>> <</if>> <<set $suffocating to 0>> <</widget>> <<widget "suffocatepass">> <<set $suffocating = Math.clamp($suffocating + (_args[0] or 1), 0, 10)>> <<if $suffocating gte 1 and $suffocationPhase isnot 2>><span class="red"> You're about to lose consciousness.</span><</if>> <!-- see "actionsman" widget for the code relating to the PC passing out from suffocation --> <</widget>><<if $npc.includes("Sydney")>> <<run statusCheck("Sydney")>> <</if>> <<if $npc.includes("Kylar")>> <<run statusCheck("Kylar")>> <</if>> <<if $suffocationPhase lte 1>> <span class='red'>You suffocate.</span><br> Your vision clouds and fades. <<if $vaginastate is "penetrated" or $vaginastate is "othervagina" or $penisstate is "othervagina" or $penisstate is "otheranus" or $penisstate is "othermouth" or $anusstate is "penetrated" or $mouthstate is "penetrated">> You jerk in a spasm for the last time and droop. Your limp body continues to be fucked relentlessly. <<else>> Your body spasms for the last time and goes limp. <</if>> <<set $penisaction to 0>> <<set $vaginaaction to 0>> <<set $anusaction to 0>> <<set $leftaction to 0>> <<set $rightaction to 0>> <<set $mouthaction to 0>> <<set $thighaction to 0>> <<set $cheekaction to 0>> <<set $feetaction to 0>> <<set $chestaction to 0>> <<set $mockaction to "none">> <<set $bodyaction to 0>> <!-- Didn't use $NPCList[_n].righthand instead of .find() because once i've got a weird error with $NPCList[_n] being undefined here. Perhaps, temporary _n expired? --> <<set _npc = $NPCList.find(x => x.lefthand == "throat" || x.righthand == "throat")>> <<if _npc isnot undefined>> <<set _npc.righthand to 0>> <<set _npc.lefthand to 0>> <</if>> <<set $neckuse to 0>> <<set $enemyanger -= 70>> <<set $suffocationPhase to 2>> <br><br> <<link [[Next|Man combat suffocated]]>><</link>> <<else>> <span class="red">You are unconscious.</span><br> <!-- Simulate 30 seconds of sex while passed out --> <<set _simTurns to 3>> <<for _turn to 0; _turn lte _simTurns; _turn++>> <<if _turn lt _simTurns>> <div class="unconscious shimmering" hidden=""> <<if $enemytype is "man">> <<man>> <<else>> <<beast $enemyno>><br> <</if>> <<integritycheck>> </div> <<else>> <div class="fade-in" hidden=""> You regain consciousness with a long gasp. Your body is still being used. <<oxygenrefresh>> <<set $suffocating to 0>> <<unset $suffocated>> <<unset $suffocationPhase>> <br><br> <span id="next"><<link [[Next|$previousPassage]]>><</link>></span> </div> <</if>> <</for>> <<script>> $(document).one(':passageend', function(ev) { const targets = [ ...document.getElementsByClassName('unconscious'), ...document.getElementsByClassName('fade-in') ]; let delay = 1500; targets.forEach(ele => { if (ele instanceof HTMLElement) { /* Element is prepared and ready to be unhidden, leave a 1.5 timeout per iteration */ setTimeout(() => { ele.hidden = false; }, delay); delay += 1500; } }); }); <</script>> <</if>><<widget "cheeklick">> <<set _n to _args[0]>> <<set _npcff to ["enjoys","smiles at","leers at","grins at"]>> <<set _npccr to ["pressed","shoved","mashed","grinding"]>> <<set _i to random(0, 3)>> <<set _j to random(0, 3)>> <<if _args[0]>> <<if $NPCList[_n].penis is "mouth">> <<He>> _npcff[_i] the sight of your face _npccr[_j] against <<his>> crotch. <<neutral 1>> <<elseif $NPCList[_n].penis is "mouthimminent" or $NPCList[_n].penis is "mouthentrance">> <<He>> _npcff[_i] the sight of <<his>> penis _npccr[_j] against your mouth. <<neutral 1>> <<elseif $NPCList[_n].vagina is "mouthentrance">> <<He>> _npcff[_i] the sight of your face _npccr[_j] against <<his>> crotch. <<neutral 1>> <<else>> <<if $consensual is 1>> <<switch random(1, 4)>> <<case 1>> <<He>> licks your cheek. <<neutral 3>> <<bodypart_admire random_cheek>> <<case 2>> <<He>> strokes your hair. <<neutral 3>> <<bodypart_admire forehead>> <<case 3>> <<He>> nibbles your ear. <<neutral 3>> <<bodypart_admire forehead>> <<case 4>> <<He>> nuzzles your neck. <<neutral 3>> <<bodypart_admire breasts>> <</switch>> <<else>> <<switch random(1, 4)>> <<case 1>> <<He>> licks your cheek. <<neutral 3>> <<bodypart_admire random_cheek>> <<case 2>> <<He>> tugs at your hair. <<neutral 3>> <<bodypart_admire forehead>> <<case 3>> <<He>> bites your ear. <<neutral 3>> <<bodypart_admire random_cheek>> <<case 4>> <<He>> grips your neck. <<neutral 3>> <<bodypart_admire breasts>> <</switch>> <</if>> <</if>> <</if>> <</widget>><<widget "npcstrip">> /* <<for $_npc range $NPCList>> <!-- anus not implemented yet --> <!-- <<set $_npc.anus to "idle">> --> <!-- note: setting genitals to "idle" will remove them from combat unless they're set to something else later. --> <<if $_npc.penis isnot "none">> <<set $_npc.penis to "idle">> <</if>> <<if $_npc.vagina isnot "none">> <<set $_npc.vagina to "idle">> <</if>> <<if !$worn.upper.type.includes("naked")>> <<set $_npc.lefthand to "upperclothes">> <<elseif !$worn.lower.type.includes("naked")>> <<set $_npc.lefthand to "lowerclothes">> <<elseif !$worn.under_lower.type.includes("naked") and !$worn.under_lower.type.includes("chastity")>> <<set $_npc.lefthand to "underlowerclothes">> <</if>> <<if !$worn.lower.type.includes("naked")>> <<set $_npc.righthand to "lowerclothes">> <<elseif !$worn.upper.type.includes("naked")>> <<set $_npc.righthand to "upperclothes">> <<elseif !$worn.under_lower.type.includes("naked") and !$worn.under_lower.type.includes("chastity")>> <<set $_npc.righthand to "underlowerclothes">> <</if>> <</for>> */ <<set $combatgoal to "strip">> <</widget>> <<widget "npcexhibit">> <!-- Does nothing, used in one event --> <</widget>> <<widget "stuck_in_wall_oral">> <<set $position to "wall">> <<set $walltype to "front">> <<set $anususe to "none">> <<set $vaginause to "none">> <<set $penisuse to "none">> <<set $thighuse to "none">> <<set $bottomuse to "none">> <<set $feetuse to "none">> <<set $chestuse to "none">> <<npcoral>> <</widget>> <<widget "npcoral">> <!-- TODO: make this take an index as an argument so you can use npcoral with NPCs in other slots --> <!-- TODO: make this take "m" or "f" as an argument so we can enforce consistency between use of this widget and scenes which set up context before using it --> <<run npcMakeNaked($NPCList[0], "lower")>> <<if $NPCList[0].penis isnot "none">> <<set $NPCList[0].penis to "mouthentrance">><<set $mouthstate to "entrance">><<set $mouthuse to "penis">> <<He>> presses <<his>> <<npcPenis>> against your lips. <<elseif $NPCList[0].vagina isnot "none">> <<set $NPCList[0].vagina to "mouth">><<set $mouthstate to "othervagina">><<set $mouthuse to "othervagina">> <<He>> presses <<his>> <<npcVagina>> against your lips. <<else>> <<He>> presses <<his>> featureless crotch against your lips. Everyone is confused. <span class="red">This is a bug, please inform Vrelnir.</span> <</if>> <<if $NPCList[0].type is "plant" and !["peniskiss","penislick"].includes($mouthactiondefault)>> <span class="pink">Nectar glistens <<print ($NPCList[0].penis isnot "none" ? "on the tip" : "at the entrance")>>. It smells sweet.</span> <</if>> <br><br> <<submission 5>><<set $mouthtarget to 0>><<set $NPCList[0].location.genitals to "head">> <</widget>> <<widget "npchand">> <<if $NPCList[0].penis isnot "none">> <<set $leftarm to "penis">><<set $NPCList[0].penis to "leftarm">> <<else>> <<set $leftarm to "othervagina">><<set $NPCList[0].vagina to "leftarm">> <</if>> <</widget>> <<widget "npcidlegenitals">> <<for _i = 0; _i < $NPCList.length; _i++>> <<if $NPCList[_i].penis isnot "none">> <<set $NPCList[_i].penis to "idle">> <</if>> <<if $NPCList[_i].vagina isnot "none">> <<set $NPCList[_i].vagina to "idle">> <</if>> <<set $NPCList[_i].chest to "idle">> <<set $NPCList[_i].condomAsk to true>> <</for>> <</widget>> <<widget "npckiss">> <<set $NPCList[0].mouth to "kiss">><<set $NPCList[0].location.head to "head">><<set $mouthstate to "kiss">><<set $mouthuse to "kiss">><<set $mouthtarget to 0>> <</widget>> <<widget "npcexpose">> <<for $_npc range $NPCList>> <<run npcMakeNaked($_npc, "upper")>> <<run npcMakeNaked($_npc, "lower")>> <</for>> <</widget>> <<widget "npcgrapplestripall">> <<if $rightarm is 0>> <<set $rightarm to "grappled">> <<set $NPCList[0].lefthand to "arms">> <</if>> <<if $leftarm is 0>> <<set $leftarm to "grappled">> <<set $NPCList[0].lefthand to "arms">> <</if>> <<set $NPCList[0].righthand to 0>> <<set $position to "missionary">> <<set $combatgoal to "strip">> <<set $NPCList[0].mouth to "speech_only">> <</widget>> <<widget "npcstripall">> <<set $NPCList[0].lefthand to 0>> <<set $NPCList[0].righthand to 0>> <<set $position to "missionary">> <<set $combatgoal to "strip">> <<set $NPCList[0].mouth to "speech_only">> <</widget>> <<widget "npcgangstrip">> /* Organises the NPC groups for strips, so they aren't all clawing at the same items (as much) */ <<set $combatgoal to "strip">> <<set $position to "missionary">> <<set _startpos to 0>> <<for _i = 0; _i < $NPCList.length; _i++>> <<set $NPCList[_i].righthand to 0>> <<set $NPCList[_i].lefthand to 0>> <<if $rightarm is 0>> /* Person 1 grabs you */ <<set $rightarm to "grappled">> <<set $NPCList[_i].lefthand to "arms">> <</if>> <<if $leftarm is 0>> <<set $leftarm to "grappled">> <<set $NPCList[_i].lefthand to "arms">> <</if>> <<if $NPCList[_i].righthand is 0 and $NPCList[_i].lefthand is 0>> <<switch _startpos>> <<case 0>> /* Person 2 starts low */ <<if $worn.over_lower.name isnot "naked">> <<set $NPCList[_i].lefthand to "overlowerclothes">> <<set $NPCList[_i].righthand to "overlowerclothes">> <<elseif $worn.lower.name isnot "naked">> <<set $NPCList[_i].lefthand to "lowerclothes">> <<set $NPCList[_i].righthand to "lowerclothes">> <<elseif $worn.under_lower.name isnot "naked">> <<set $NPCList[_i].lefthand to "underlowerclothes">> <<set $NPCList[_i].righthand to "underlowerclothes">> <</if>> <<case 1>> /* Person 3 starts high by default */ <<case 2>> /* Person 4 works with 1 - goes straight to under */ <<if $worn.under_upper.name isnot "naked">> <<set $NPCList[_i].lefthand to "underupperclothes">> <<set $NPCList[_i].righthand to "underupperclothes">> <</if>> <</switch>> <<set _startpos += 1>> <</if>> <</for>> <</widget>> <<widget "npcspank">> <<if $rightarm is 0>> <<set $rightarm to "grappled">> <<set $NPCList[0].lefthand to "arms">> <<set $righttarget to 0>> <</if>> <<if $leftarm is 0>> <<set $leftarm to "grappled">> <<set $NPCList[0].lefthand to "arms">> <<set $lefttarget to 0>> <</if>> <<set $NPCList[0].righthand to "spank">> <<set $position to "doggy">> <</widget>> <<widget "npcspankgag">> <<hand_gag 0 left>> <<set $NPCList[0].righthand to "spank">> <<set $position to "doggy">> <</widget>> <<widget "npcgloryhole">> <<set $gloryhole to 1>> <<set $punishmentposition to "gloryhole">><!-- This is added to conform with other parts of code-base. Needs to be unset or set to 0 manually after a scene.--> <<set $enemyhealthmax to 10>><<set $enemyhealth to 10>> <<set $enemytrust += 100>> <<set $NPCList[0].lefthand to "none">> <<set $position to "doggy">> <<set $NPCList[0].righthand to "none">> <<set $NPCList[0].mouth to "speech_only">> <<run npcMakeNaked($NPCList[0], "lower")>> <</widget>> <<widget "npcfence">> <<set $NPCList[0].lefthand to "none">> <<set $NPCList[0].righthand to "none">> <<set $NPCList[0].mouth to "speech_only">> <<run npcMakeNaked($NPCList[0], "lower")>> <</widget>> <<widget "npc_attempt_sex">> <<run npcMakeNaked($NPCList[0], "lower")>> <<if $NPCList[0].penis isnot "none">> <<if $player.vaginaExist>> <<set $NPCList[0].penis to "vaginaentrance">><<set $vaginause to "penis">><<set $vaginastate to "entrance">><<set $vaginatarget to 0>> <<elseif $settings.analEnabled>> <<set $NPCList[0].penis to "anusentrance">><<set $anususe to "penis">><<set $anusstate to "entrance">><<set $anustarget to 0>> <</if>> <<else>> <<if $player.penisExist>> <<set $NPCList[0].vagina to "penisentrance">><<set $penisuse to "othervagina">><<set $penisstate to "entrance">><<set $penistarget to 0>> <</if>> <</if>> <</widget>> <<widget "npc_submissive">> <<if $NPCList[0].penis isnot "none">> <<set $NPCList[0].penis to "clothed">> <</if>> <<if $NPCList[0].vagina isnot "none">> <<set $NPCList[0].vagina to "clothed">> <</if>> <<set $NPCList[0].chest to "clothed">> <<set $NPCList[0].lefthand to "idle">> <<set $NPCList[0].righthand to "idle">> <<set $NPCList[0].location.genitals to 0>> <<set $enemyarousal to 0>> <<set $npcSub to 1>> <<set $promiscuityIgnore to 1>> <span class="green">Your partner is submissive. You may take the lead. [Promiscuity requirements will be ignored for this encounter]</span> <</widget>> <<widget "npctakevirginity">> <<run npcMakeNaked($NPCList[0], "lower")>> <<if $player.vaginaExist and $NPCList[0].penis isnot "none">> <<set $vaginause to "penis">><<set $NPCList[0].penis to "vaginaentrance">><<set $vaginastate to "entrance">><<set $vaginatarget to 0>> <<set $NPCList[0].location.genitals = "genitals">> <<else>> <<if $NPCList[0].penis isnot "none" and $settings.analEnabled>> <<set $penisuse to "otheranus">><<set $NPCList[0].penis to "otheranusentrance">><<set $penisstate to "otheranusentrance">><<set $penistarget to 0>> <<elseif $NPCList[0].vagina isnot "none">> <<set $penisuse to "othervagina">><<set $NPCList[0].vagina to "penisentrance">><<set $penisstate to "entrance">><<set $penistarget to 0>> <<set $NPCList[0].location.genitals = "genitals">> <</if>> <</if>> <</widget>><<widget "npcdamage">> /* * Deducts the true damage dealt by the PC from each individual NPC's health, * and prevent excess damage from reaching $enemyhealth. * args[0] is the target passed through widget "defiance". * _thedamage is also calculated at widget "defiance". */ <<if _args[0] isnot undefined>> /* args[0] could very well be undefined. When it's not, we calculate as normal. */ <<set $NPCList[_args[0]].health -= _thedamage>> <<if $NPCList[_args[0]].health lte 0>> <<defeatnpc _args[0]>> <</if>> <<else>> <<set _npctodefeat to []>>/* An array for later use. */ /* When args[0] is undefined, that means the action has no target and inflicts damage to all NPCs. */ <<for _npctodamage to 0; _npctodamage lt $enemynomax; _npctodamage++>> <<if $NPCList[_npctodamage].active is "active" and $NPCList[_npctodamage].stance isnot "defeated" and (!$fightTargets or $fightTargets.includes(_npctodamage))>> <<set _enemydivide to $fightTargets ? $enemyno-$fightTargets.length : $enemyno>> /* Divide damage by all current active enemies. */ <<set $NPCList[_npctodamage].health -= (_thedamage/_enemydivide)>> /* Lookout for any NPCs whose healths were reduced to 0 by splash damage. */ <<if $enemyno gte 2 and $NPCList[_npctodamage].health lte 0>> <<set _npctodefeat.push(_npctodamage)>> <</if>> <</if>> <</for>> /* Then purge any and all NPCs defeated by splash damage. */ <<for $_defeatcontroller to 0; $_defeatcontroller lt _npctodefeat.length; $_defeatcontroller++>> <<if $enemyno gte 2>> <<defeatnpc _npctodefeat[$_defeatcontroller]>> <</if>> <</for>> <</if>> <<if $newtarget isnot undefined>> <<setnewtarget>> <</if>> <</widget>> /*Lollipop Scythe - there was a bug where the player action was not reset, there may be edgecases where the action shouldn't be changed. Not the author of the original code*/ <<widget "defeatnpc">> <!-- This knocks out and resets the last NPC on the list from 5 to 0 --> <!-- Resets PC variables to release PC from NPC actions, resets NPC variables as partial cleanup prior to cleannpc, gives PC stats uptick as side benefit to defeating NPCs. --> <<set _i to _args[0]>> <<personselect _i>> <span class="blue"><<combatPerson>> staggers back, defeated.</span> <<llpain>><<pain -15>><<llstress>><<stress -12>><<lltrauma>><<trauma -18>> <!-- Reset PC's limbs based on defeated NPC's --> <!-- NPC's Left hand --> <<switch $NPCList[_i].lefthand>> <<case "arms">> <<set $leftarm to 0>><<set $rightarm to 0>><<set $leftaction to 0>><<set $rightaction to 0>> <<case "leftarm">> <<set $leftarm to 0>><<set $leftaction to 0>> <<case "rightarm">> <<set $rightarm to 0>><<set $rightaction to 0>> <<case "vaginaentrance" "vagina">> <<set $vaginause to 0>><<set $vaginaaction to 0>> <<case "penisentrance" "penis">> <<set $penisuse to 0>><<set $penisaction to 0>> <<case "anusentrance" "anus">> <<set $anususe to 0>><<set $anusaction to 0>> <<case "mouth">> <<set $mouthuse to 0>><<set $mouthaction to 0>> <<case "throat">> <<set $neckuse to 0>> <<case "head_nipples" "head_breasts">> <<set $mouthstate to 0>><<set $mouthaction to 0>> <</switch>> <!-- NPC's Reft hand --> <<switch $NPCList[_i].righthand>> <<case "arms">> <<set $leftarm to 0>><<set $rightarm to 0>><<set $leftaction to 0>><<set $rightaction to 0>> <<case "leftarm">> <<set $leftarm to 0>><<set $leftaction to 0>> <<case "rightarm">> <<set $rightarm to 0>><<set $rightaction to 0>> <<case "vaginaentrance" "vagina">> <<set $vaginause to 0>><<set $vaginaaction to 0>> <<case "penisentrance" "penis">> <<set $penisuse to 0>><<set $penisaction to 0>> <<case "anusentrance" "anus">> <<set $anususe to 0>><<set $anusaction to 0>> <<case "mouth">> <<set $mouthuse to 0>><<set $mouthaction to 0>> <<case "throat">> <<set $neckuse to 0>> <<case "head_nipples" "head_breasts">> <<set $mouthstate to 0>><<set $mouthaction to 0>> <</switch>> <!-- NPC's Penis/Anus --> <<switch $NPCList[_i].penis>> <<case "thighs">> <<set $thighuse to 0>> <<case "cheeks">> <<set $bottomuse to 0>><<set $anususe to 0>><<set $anusstate to 0>><<set $anusaction to 0>> <<case "chest">> <<set $chestuse to 0>> <<case "leftarm">> <<set $leftarm to 0>><<set $leftactiondefault to "leftgrab">><<set $leftaction to 0>> <<case "rightarm">> <<set $rightarm to 0>><<set $rightactiondefault to "rightgrab">><<set $rightaction to 0>> <<case "leftotheranusdildotease" "leftotheranusdildo">> <<set $leftarm to 0>><<set $leftactiondefault to "rest">><<set $leftaction to 0>> <<case "rightotheranusdildotease" "rightotheranusdildo">> <<set $rightarm to 0>><<set $rightactiondefault to "rest">><<set $rightaction to 0>> <<case "botharm">> <<set $leftarm to 0>><<set $rightarm to 0>><<set $rightactiondefault to "rightgrab">><<set $leftactiondefault to "leftgrab">><<set $leftaction to 0>><<set $rightaction to 0>> <<case "feet">> <<set $feetuse to 0>><<set $feetactiondefault to "grab">><<set $feetaction to 0>> <<case "vagina" "vaginaimminent" "vaginaentrance">> <<set $vaginause to 0>><<set $vaginastate to 0>><<set $vaginaaction to 0>> <<case "anus" "anusimminent" "anusentrance">> <<set $anususe to 0>><<set $anusstate to 0>><<set $anusaction to 0>> <<case "otherfrot" "penis" "penisimminent" "penisentrance" "otheranus" "otheranusimminent" "otheranusentrance">> <<set $penisuse to 0>><<set $penisstate to 0>><<set $penisaction to 0>> <<case "mouth" "mouthimminent" "mouthentrance">> <<set $mouthuse to 0>><<set $mouthstate to 0>><<set $mouthaction to 0>> <<case "footjob">> <<if $player.penisExist and $penisuse is "feet">> <<set $penisuse to 0>> <</if>> <<if $player.vaginaExist and $vaginause is "feet">> <<set $vaginause to 0>> <</if>> <<case "anusdouble" "anusentrancedouble" "anusimminentdouble">> <<set $NPCList[_i].penis to "none">> <<for $_k = 0; $_k lt $NPCList.length; $_k++>> <<if ["anusdouble","anusimminentdouble","anusentrancedouble"].includes($NPCList[$_k].penis)>> <<switch $NPCList[$_k].penis>> <<case "anusdouble">> <<set $NPCList[$_k].penis to "anus">><<set $anusstate to "penetrated">> <<if $anusaction>> <<set $anusaction to $anusaction.replace('double','')>> <</if>> <<case "anusimminentdouble">> <<set $NPCList[$_k].penis to "anusimminent">><<set $anusstate to "imminent">> <<if $anusaction>> <<set $anusaction to $anusaction.replace('double','')>> <</if>> <<case "anusentrancedouble">> <<set $NPCList[$_k].penis to "anusentrance">><<set $anusstate to "entrance">> <<if $anusaction>> <<set $anusaction to $anusaction.replace('double','')>> <</if>> <<default>> <span class="red">ERROR - Anal double penetration: second NPC's penis wrong value!</span> <</switch>> <<set $anususe to "penis">> <<break>> <</if>> <<if $_k is 5>> <span class="red">ERROR - Anal double penetration: second NPC not found!</span> <<set $anususe to 0>><<set $anusstate to 0>> <</if>> <</for>> <<case "vaginadouble" "vaginaimminentdouble" "vaginaentrancedouble">> <<set $NPCList[_i].penis to "none">> <<for $_k = 0; $_k lt $NPCList.length; $_k++>> <<if ["vaginadouble","vaginaimminentdouble","vaginaentrancedouble"].includes($NPCList[$_k].penis)>> <<switch $NPCList[$_k].penis>> <<case "vaginadouble">> <<set $NPCList[$_k].penis to "vagina">><<set $vaginastate to "penetrated">> <<if $vaginaaction>> <<set $vaginaaction to $vaginaaction.replace('double','')>> <</if>> <<case "vaginaimminentdouble">> <<set $NPCList[$_k].penis to "vaginaimminent">><<set $vaginastate to "imminent">> <<if $vaginaaction>> <<set $vaginaaction to $vaginaaction.replace('double','')>> <</if>> <<case "vaginaentrancedouble">> <<set $NPCList[$_k].penis to "vaginaentrance">><<set $vaginastate to "entrance">> <<if $vaginaaction>> <<set $vaginaaction to $vaginaaction.replace('double','')>> <</if>> <<default>> <span class="red">ERROR - Vaginal double penetration: second NPC's penis wrong value!</span> <</switch>> <<set $vaginause to "penis">> <<break>> <</if>> <<if $_k is 5>> <span class="red">ERROR - Vaginal double penetration: second NPC not found!</span> <<set $vaginause to 0>><<set $vaginastate to 0>> <</if>> <</for>> <</switch>> <!-- NPC's Vagina/Anus --> <<switch $NPCList[_i].vagina>> <<case "frot" "otherfrot" "penis" "penisimminent" "penisentrance" "otheranus" "otheranusimminent" "otheranusentrance">> <<set $penisuse to 0>><<set $penisstate to 0>><<set $penisaction to 0>> <<case "mouth" "facesit" "facesitanal">> <<set $mouthuse to 0>><<set $mouthstate to 0>><<set $mouthaction to 0>> <<case "vagina" "vaginaimminent" "vaginaentrance" "othermouth">> <<set $vaginause to 0>><<set $vaginastate to 0>><<set $vaginaaction to 0>> <<case "leftarm">> <<set $leftarm to 0>><<set $leftactiondefault to "leftplay">><<set $leftaction to 0>> <<case "rightarm">> <<set $rightarm to 0>><<set $rightactiondefault to "rightplay">><<set $rightaction to 0>> <<case "leftotheranusdildotease" "leftotheranusdildo" "leftvaginadildotease" "leftvaginadildo">> <<set $leftarm to 0>><<set $leftactiondefault to "rest">><<set $leftaction to 0>> <<case "rightotheranusdildotease" "rightotheranusdildo" "rightvaginadildotease" "rightvaginadildo">> <<set $rightarm to 0>><<set $rightactiondefault to "rest">><<set $rightaction to 0>> <<case "feet">> <<set $feetuse to 0>><<set $feetactiondefault to "vaginagrab">><<set $feetaction to 0>> <<case "footjob">> <<if $player.penisExist and $penisuse is "feet">> <<set $penisuse to 0>> <</if>> <<if $player.vaginaExist and $vaginause is "feet">> <<set $vaginause to 0>> <</if>> <</switch>> <!-- NPC's Mouth --> <<switch $NPCList[_i].mouth>> <<case "thigh">> <<set $thighuse to 0>> <<case "bottom">> <<set $bottomuse to 0>> <<case "anus" "anusimminent" "anusentrance">> <<set $anususe to 0>><<set $anusstate to 0>><<set $anusaction to 0>> <<case "vagina" "vaginaimminent" "vaginaentrance">> <<set $vaginause to 0>><<set $vaginastate to 0>><<set $vaginaaction to 0>> <<case "penis" "penisimminent" "penisentrance">> <<set $penisuse to 0>><<set $penisstate to 0>><<set $penisaction to 0>> <<case "kiss" "kissimminent" "kissentrance">> <<set $mouthuse to 0>><<set $mouthstate to 0>><<set $mouthaction to 0>> <<case "chest" "chestimminent" "chestentrance">> <<set $chestuse to 0>><<set $cheststate to 0>> <</switch>> <!-- NPC's Chest (unique case) --> <<if $NPCList[_i].chest is "mouth" or $NPCList[_i].chest is "mouthentrance">> <<set $mouthstate to 0>><<set $mouthuse to 0>><<set $head to 0>> <</if>> <br><br> <!-- Reset Defeated NPC appendages --> <<set $NPCList[_i].lefthand to "none">> <<set $NPCList[_i].righthand to "none">> <<set $NPCList[_i].penis to "none">> <<set $NPCList[_i].vagina to "none">> <<set $NPCList[_i].mouth to "none">> <<set $NPCList[_i].chest to "none">> <<set $NPCList[_i].stance to "defeated">> <!-- Remove Defeated NPC from loops --> <<set $enemyno-->> <!-- Reset Group attributes--> <<set $enemyarousalmax to 500 * $enemyno>> <<set $enemyarousal to $enemyarousal * ($enemyno / ($enemyno +1))>> <<set $enemyhealthmax -= $NPCList[_i].healthmax>> <<set $_excessdamage to (0-$NPCList[_i].health)>> <!-- Debug message --> <<if $debug is 1>><br><span class="yellow">Total damage: _thedamage</span> | <span class="blue">Excess damage: $_excessdamage</span> |<</if>> <<set _thedamage -= $_excessdamage>> <!-- Debug message --> <<if $debug is 1>><span class="pink">enemyhealth damage: _thedamage</span><br><</if>> <<set $NPCList[_i].health to 0>> <<set $oldtarget to _i>> <<for $_newtarget to 0; $_newtarget lt $enemynomax; $_newtarget++>> <<if $NPCList[$_newtarget].active is "active" and $NPCList[$_newtarget].stance isnot "defeated">> <<set $newtarget to $_newtarget>> <<break>> <</if>> <</for>> <!-- Give PC stats uptick. --> <<violence -10>> <<if $newtarget is undefined>> <<set $newtarget to $oldtarget>> <</if>> <</widget>> <<widget "setnewtarget">> <<if $lefttarget is $oldtarget>> <<set $lefttarget to $newtarget>> <</if>> <<if $righttarget is $oldtarget>> <<set $righttarget to $newtarget>> <</if>> <<if $feettarget is $oldtarget>> <<set $feettarget to $newtarget>> <</if>> <<if $mouthtarget is $oldtarget>> <<set $mouthtarget to $newtarget>> <</if>> <<if $vaginatarget is $oldtarget>> <<set $vaginatarget to $newtarget>> <</if>> <<if $penistarget is $oldtarget>> <<set $penistarget to $newtarget>> <</if>> <<if $anustarget is $oldtarget>> <<set $anustarget to $newtarget>> <</if>> <<if $thightarget is $oldtarget>> <<set $thighaction to 0>> <</if>> <<if $chesttarget is $oldtarget>> <<set $chestaction to 0>> <</if>> <<unset $oldtarget>> <<unset $newtarget>> <</widget>><<widget "generateNPC">> <!-- Args are NPC#(1-6), Status, Pronoun, Gender, Level --> <!-- Example: <<generateNPC 1 a m m 18>> would generate NPC 1 as adult male/male "burly" --> <!-- Example: <<generateNPC 2 a f f 18>> would generate NPC 2 as adult female/female "vulgar" bodyguard type--> <!-- Example: <<generateNPC 1 a f h 20>> would generate NPC 1 as adult female/herm "demon" monster type--> <!-- Latter two examples can only be called via this widget; they are not autogenerated --> <<set _n to _args[0]-1>> <!-- Checks if endevent was properly used after the last event --> <<checkEventNPC _n>> <<set _status to _args[1]>> /* "t" for teen, "a" for adult, or "r" for random */ <<set _pronoun to _args[2]>> <<set _gender to _args[3]>> <<set _lvl to _args[4]>> <<if _pronoun is "m" or _pronoun is "f">> <<set $NPCList[_n].pronoun to _pronoun>> <<else>> <<rng>> <<if _generate_victim is 1>> <<unset _generate_victim>> <<set $NPCList[_n].pronoun to ($rng lte $settings.maleVictimChance ? "m" : "f")>> <<elseif !isNaN(_generate_partner) and $NPCList[_generate_partner].fullDescription>> <!-- This determines if the couple is homo or not. The generated NPC's partner is, by default, the NPC directly before them in NPCList. The partner can be selected manually with an argument. --> <<set $NPCList[_n].pronoun to maleChance($NPCList[_generate_partner].pronoun) gte random(1, 100) ? "m" : "f">> <<unset _generate_partner>> <<else>> <<set $NPCList[_n].pronoun to ($rng lte maleChance() ? "m" : "f")>> <</if>> <</if>> <!-- This doesn't need to be set here, but that's how it's been done in the past, so we'll set it just in case. --> <!-- NPC gender gets properly set according to player settings in the npcattribute widget. --> <<set $NPCList[_n].gender to $NPCList[_n].pronoun>> <<set $NPCList[_n].lefthand to 0>> <<set $NPCList[_n].righthand to 0>> <<set $NPCList[_n].mouth to 0>> <<set $NPCList[_n].location to {}>> <<set $NPCList[_n].location.head to 0>> <<set $NPCList[_n].location.genitals to 0>> <<set $NPCList[_n].bold to 0>> <<set $NPCList[_n].name to ($NPCList[_n].pronoun is "f" ? $NPC_names_f.random() : $NPC_names_m.random())>> <<generatePronouns $NPCList[_n]>> <!-- TODO: remove either .teen or .adult; all adults are not teens, and all teens are not adults. --> <!-- Having two separate variables means having twice as much code to accomplish the same thing, and STILL possibly introducing bugs if you do it wrong. --> <<if _status is "t" or (_status is "r" and random(0,1))>> <<set $NPCList[_n].teen to 1>> <<set $NPCList[_n].adult to 0>> <<else>> <<set $NPCList[_n].adult to 1>> <<set $NPCList[_n].teen to 0>> <</if>> <<set $NPCList[_n].pregnancyAvoidance to random(0,100)>> <<if $enemyno lt 6>><<set $enemyno += 1>><</if>> <<npcattribute _n _gender _lvl>> <<set $NPCList[_n].index to _n>> <<run EventSystem.push($passage, _n, $timeStamp)>> <</widget>> <<widget "generateRole">> <!-- Argument 1: The slot the new NPC should fill in $NPCList. Slot one would be "0" --> <!-- Argument 2: The description of the NPC. To generate a default description, use 0 To make a description that changes based on NPC gender, split the male/female descriptions with "/"--> <!-- Argument 3: The role of the NPC. To generate with no role, use 0. Do not set role to "normal" To make a role that changes based on NPC gender, split the male/female roles with "/"--> <!-- Argument 4: The status of the NPC. Defaults to adult; use "t" for student --> <!-- Example: <<generateRole 0 "curious" "scientist">> would generate the first NPC as adult "curious scientist" --> <!-- Example: <<generateRole 1 "arrogant" 0 t>> would generate the second NPC as "arrogant boy" or "arrogant girl"--> <!-- Example: <<generateRole 2 "starstruck" "fanboy/fangirl">> would generate the third NPC as adult "starstruck fanboy" or "starstruck fangirl" --> <<set _slot to _args[0]>> <<set _desc to _args[1] ? _args[1] : 0>> <<set _role to _args[2] ? _args[2] : 0>> <<set _status to _args[3] is "t" ? "t" : "a">> <<generateNPC `_slot + 1` _status>> <<if _desc>> <<if _desc.includes("/")>> <<set [_descM, _descF] to _desc.split("/")>> <<set $NPCList[_slot].description to $NPCList[_slot].pronoun is "m" ? _descM : _descF>> <<else>> <<set $NPCList[_slot].description to _desc>> <</if>> <</if>> <<if _role>> <<if _role.includes("/")>> <<set [_roleM, _roleF] to _role.split("/")>> <<set $NPCList[_slot].role to $NPCList[_slot].pronoun is "m" ? _roleM : _roleF>> <<else>> <<set $NPCList[_slot].role to _role>> <</if>> <<if _role.includes("guard")>> <<npcClothesType $NPCList[_slot] "security">> <<elseif _role.includes("inmate")>> <<npcClothesType $NPCList[_slot] "prison">> <<elseif _role.includes("pirate")>> <<npcClothesType $NPCList[_slot] "docker2">> <<elseif _role.includes("islander")>> <<npcClothesType $NPCList[_slot] "brothelHarness">> <</if>> <</if>> <<set $NPCList[_slot].fullDescription to $NPCList[_slot].description + " ">> <<if $NPCList[_slot].role isnot "normal">> <<set $NPCList[_slot].fullDescription += $NPCList[_slot].role>> <<elseif $NPCList[_slot].pronoun is "m">> <<set $NPCList[_slot].fullDescription += ($NPCList[_slot].teen is 1 ? "boy" : "man")>> <<elseif $NPCList[_slot].pronoun is "f">> <<set $NPCList[_slot].fullDescription += ($NPCList[_slot].teen is 1 ? "girl" : "woman")>> <</if>> <</widget>> <<widget "undressNPC">> <<set $_npc to $NPCList[_args[0]-1]>> <<if $_npc.penis is "clothed">> <<set $_npc.penis to 0>> <</if>> <<if $_npc.vagina is "clothed">> <<set $_npc.vagina to 0>> <</if>> <</widget>> <<widget "generate1">> <<generateNPC 1>> <</widget>> <<widget "generate2">> <<generateNPC 2>> <</widget>> <<widget "generate3">> <<generateNPC 3>> <</widget>> <<widget "generate4">> <<generateNPC 4>> <</widget>> <<widget "generate5">> <<generateNPC 5>> <</widget>> <<widget "generate6">> <<generateNPC 6>> <</widget>> <<widget "generatey1">> <<generateNPC 1 t>> <</widget>> <<widget "generatey2">> <<generateNPC 2 t>> <</widget>> <<widget "generatey3">> <<generateNPC 3 t>> <</widget>> <<widget "generatey4">> <<generateNPC 4 t>> <</widget>> <<widget "generatey5">> <<generateNPC 5 t>> <</widget>> <<widget "generatey6">> <<generateNPC 6 t>> <</widget>> <<widget "generatev1">> <<set _generate_victim to 1>> <<generateNPC 1>> <</widget>> <<widget "generatev2">> <<set _generate_victim to 1>> <<generateNPC 2>> <</widget>> <<widget "generatev3">> <<set _generate_victim to 1>> <<generateNPC 3>> <</widget>> <<widget "generatev4">> <<set _generate_victim to 1>> <<generateNPC 4>> <</widget>> <<widget "generatev5">> <<set _generate_victim to 1>> <<generateNPC 5>> <</widget>> <<widget "generatev6">> <<set _generate_victim to 1>> <<generateNPC 6>> <</widget>> <<widget "generateyv1">> <<set _generate_victim to 1>> <<generateNPC 1 t>> <</widget>> <<widget "generateyv2">> <<set _generate_victim to 1>> <<generateNPC 2 t>> <</widget>> <<widget "generateyv3">> <<set _generate_victim to 1>> <<generateNPC 3 t>> <</widget>> <<widget "generateyv4">> <<set _generate_victim to 1>> <<generateNPC 4 t>> <</widget>> <<widget "generateyv5">> <<set _generate_victim to 1>> <<generateNPC 5 t>> <</widget>> <<widget "generateyv6">> <<set _generate_victim to 1>> <<generateNPC 6 t>> <</widget>> <<widget "generatep2">> <<set _generate_partner to _args[0] isnot undefined ? _args[0] : 0>> <<generateNPC 2>> <</widget>> <<widget "generatep3">> <<set _generate_partner to _args[0] isnot undefined ? _args[0] : 1>> <<generateNPC 3>> <</widget>> <<widget "generatep4">> <<set _generate_partner to _args[0] isnot undefined ? _args[0] : 2>> <<generateNPC 4>> <</widget>> <<widget "generatep5">> <<set _generate_partner to _args[0] isnot undefined ? _args[0] : 3>> <<generateNPC 5>> <</widget>> <<widget "generatep6">> <<set _generate_partner to _args[0] isnot undefined ? _args[0] : 4>> <<generateNPC 6>> <</widget>> <<widget "generateyp2">> <<set _generate_partner to _args[0] isnot undefined ? _args[0] : 0>> <<generateNPC 2 t>> <</widget>> <<widget "generateyp3">> <<set _generate_partner to _args[0] isnot undefined ? _args[0] : 1>> <<generateNPC 3 t>> <</widget>> <<widget "generateyp4">> <<set _generate_partner to _args[0] isnot undefined ? _args[0] : 2>> <<generateNPC 4 t>> <</widget>> <<widget "generateyp5">> <<set _generate_partner to _args[0] isnot undefined ? _args[0] : 3>> <<generateNPC 5 t>> <</widget>> <<widget "generateyp6">> <<set _generate_partner to _args[0] isnot undefined ? _args[0] : 4>> <<generateNPC 6 t>> <</widget>> <<widget "generatel">> <<if $enemyno gte 0 and $enemyno lte 5>> <<if $location is "beach">> <<generateNPC `$enemyno + 1` t>> <!-- Generate next slot teenager --> <<else>> <<generateNPC `$enemyno + 1`>> <!-- Generate next slot adult --> <</if>> <</if>> <</widget>> <<widget "generates1">> <<set _npcClothesPreset to "school">> <<generatey1>> <</widget>> <<widget "generates2">> <<set _npcClothesPreset to "school">> <<generatey2>> <</widget>> <<widget "generates3">> <<set _npcClothesPreset to "school">> <<generatey3>> <</widget>> <<widget "generates4">> <<set _npcClothesPreset to "school">> <<generatey4>> <</widget>> <<widget "generates5">> <<set _npcClothesPreset to "school">> <<generatey5>> <</widget>> <<widget "generates6">> <<set _npcClothesPreset to "school">> <<generatey6>> <</widget>> <<widget "generatesm1">> <<set _npcClothesPreset to "school">> <<generateym1>> <</widget>> <<widget "generatesm2">> <<set _npcClothesPreset to "school">> <<generateym2>> <</widget>> <<widget "generatesm3">> <<set _npcClothesPreset to "school">> <<generateym3>> <</widget>> <<widget "generatesm4">> <<set _npcClothesPreset to "school">> <<generateym4>> <</widget>> <<widget "generatesm5">> <<set _npcClothesPreset to "school">> <<generateym5>> <</widget>> <<widget "generatesm6">> <<set _npcClothesPreset to "school">> <<generateym6>> <</widget>> <<widget "generatesf1">> <<set _npcClothesPreset to "school">> <<generateyf1>> <</widget>> <<widget "generatesf2">> <<set _npcClothesPreset to "school">> <<generateyf2>> <</widget>> <<widget "generatesf3">> <<set _npcClothesPreset to "school">> <<generateyf3>> <</widget>> <<widget "generatesf4">> <<set _npcClothesPreset to "school">> <<generateyf4>> <</widget>> <<widget "generatesf5">> <<set _npcClothesPreset to "school">> <<generateyf5>> <</widget>> <<widget "generatesf6">> <<set _npcClothesPreset to "school">> <<generateyf6>> <</widget>> <<widget "generatem1">> <<generateNPC 1 a m>> <</widget>> <<widget "generatem2">> <<generateNPC 2 a m>> <</widget>> <<widget "generatem3">> <<generateNPC 3 a m>> <</widget>> <<widget "generatem4">> <<generateNPC 4 a m>> <</widget>> <<widget "generatem5">> <<generateNPC 5 a m>> <</widget>> <<widget "generatem6">> <<generateNPC 6 a m>> <</widget>> <<widget "generatef1">> <<generateNPC 1 a f>> <</widget>> <<widget "generatef2">> <<generateNPC 2 a f>> <</widget>> <<widget "generatef3">> <<generateNPC 3 a f>> <</widget>> <<widget "generatef4">> <<generateNPC 4 a f>> <</widget>> <<widget "generatef5">> <<generateNPC 5 a f>> <</widget>> <<widget "generatef6">> <<generateNPC 6 a f>> <</widget>> <<widget "generateym1">> <<generateNPC 1 t m>> <</widget>> <<widget "generateym2">> <<generateNPC 2 t m>> <</widget>> <<widget "generateym3">> <<generateNPC 3 t m>> <</widget>> <<widget "generateym4">> <<generateNPC 4 t m>> <</widget>> <<widget "generateym5">> <<generateNPC 5 t m>> <</widget>> <<widget "generateym6">> <<generateNPC 6 t m>> <</widget>> <<widget "generateyf1">> <<generateNPC 1 t f>> <</widget>> <<widget "generateyf2">> <<generateNPC 2 t f>> <</widget>> <<widget "generateyf3">> <<generateNPC 3 t f>> <</widget>> <<widget "generateyf4">> <<generateNPC 4 t f>> <</widget>> <<widget "generateyf5">> <<generateNPC 5 t f>> <</widget>> <<widget "generateyf6">> <<generateNPC 6 t f>> <</widget>> <<widget "generatecm1">> <<generateNPC 1 t m>> <</widget>> <<widget "generatecm2">> <<generateNPC 2 t m>> <</widget>> <<widget "generatecm3">> <<generateNPC 3 t m>> <</widget>> <<widget "generatecm4">> <<generateNPC 4 t m>> <</widget>> <<widget "generatecm5">> <<generateNPC 5 t m>> <</widget>> <<widget "generatecm6">> <<generateNPC 6 t m>> <</widget>> <<widget "generatecf1">> <<generateNPC 1 t f>> <</widget>> <<widget "generatecf2">> <<generateNPC 2 t f>> <</widget>> <<widget "generatecf3">> <<generateNPC 3 t f>> <</widget>> <<widget "generatecf4">> <<generateNPC 4 t f>> <</widget>> <<widget "generatecf5">> <<generateNPC 5 t f>> <</widget>> <<widget "generatecf6">> <<generateNPC 6 t f>> <</widget>> <<widget "generatePlant1">> <<set _npcPlant to 1>><<set _strapIgnore to 1>><<set _condomIgnore to 1>> <<generateNPC 1 t>> <</widget>> <<widget "generatePlant2">> <<set _npcPlant to 1>><<set _strapIgnore to 1>><<set _condomIgnore to 1>> <<generateNPC 2 t>> <</widget>> <<widget "generatePlant3">> <<set _npcPlant to 1>><<set _strapIgnore to 1>><<set _condomIgnore to 1>> <<generateNPC 3 t>> <</widget>> <<widget "generatePlant4">> <<set _npcPlant to 1>><<set _strapIgnore to 1>><<set _condomIgnore to 1>> <<generateNPC 4 t>> <</widget>> <<widget "generatePlant5">> <<set _npcPlant to 1>><<set _strapIgnore to 1>><<set _condomIgnore to 1>> <<generateNPC 5 t>> <</widget>> <<widget "generatePlant6">> <<set _npcPlant to 1>><<set _strapIgnore to 1>><<set _condomIgnore to 1>> <<generateNPC 6 t>> <</widget>> <<widget "generateTemple">> <<set _npcChastity to 1>> <<set _npcClothesPreset to "temple">> <<generateNPC _args[0]>> <</widget>> <<widget "generateyTemple">> <<set _npcChastity to 1>> <<set _npcClothesPreset to "temple">> <<generateNPC _args[0] t>> <</widget>> <<widget "generateInitiate">> <<set _npcChastity to 1>> <<set _npcClothesPreset to "temple">> <<set _slot to (_args[0] - 1)>> <<generateRole _slot 0 "initiate">> <</widget>> <<widget "generateConfessor">> <<set _npcClothesPreset to "templeBlack">> <<generateNPC _args[0]>> <</widget>> <<widget "generateCultist">> <<set _npcClothesPreset to "templeBlack">> <<set _slot to (_args[0] - 1)>> <<generateRole _slot 0 "cultist">> <</widget>> <<widget "generatePolice">> <<set _npcClothesPreset to "police">> <<generateNPC _args[0]>> <</widget>> <<widget "generateSecurity">> <<set _npcClothesPreset to "security">> <<generateNPC _args[0]>> <</widget>> <<widget "generateSailor">> <<set _npcClothesPreset to "sailor">> <<generateNPC _args[0]>> <</widget>> <<widget "generateDoctor">> <<set _npcClothesPreset to "hospital">> <<generateNPC _args[0]>> <</widget>> <<widget "generatePlant">> <<set _npcPlant to 1>><<set _strapIgnore to 1>><<set _condomIgnore to 1>> <<generateNPC _args[0] "t">> <</widget>> <<widget "generateSweaterWearer">> <<set _npcClothesPreset to "sweater">> <<generateNPC _args[0]>> <</widget>> <<widget "generateDemon">> <<generateNPC _args[0] a f h 20>> <<undressNPC _args[0]>> <</widget>> <<widget "npcattribute">> <!-- V2.4 Widget set NPC attributes. $arg[0] calls NPC number (0 - 5) to be generated. NG--> <!-- $NPCList.pronoun sets appearance, including breasts. NPCList.gender sets genitals, including pp --> <!-- Future work this should call addns args to set pronoun, gender, and size of NPC(0-18) where larger number is more robust. This would eliminate much of the NPC calls from above and push to code. --> <!-- Added thug Vulgar/Brutish as NPC19, can only be called with $arg[2] --> <!-- Added strap-on functionality v2.8 --> <!-- Added sex toy functionality 0.3.8.0 --> <!-- check if this npc has seen the player while the player was pantiless; doesn't matter if they knew it or not. --> <<nounderwearcheck>> <<set _n to _args[0]>> <<set _gender to _args[1]>> <<set _lvl to _args[2]>> <!-- This sets genitals. --> <<set $NPCList[_n].vagina to "none">> <<set $NPCList[_n].penis to "none">> <<if ["m", "f", "h"].includes(_gender)>> <<set $NPCList[_n].gender to _gender>> <<if _gender is "m">> <<set $NPCList[_n].penis to "clothed">> <<elseif _gender is "f">> <<set $NPCList[_n].vagina to "clothed">> <<elseif _gender is "h">> <<set $NPCList[_n].vagina to "clothed">> <<set $NPCList[_n].penis to "clothed">> <</if>> <<else>> <<rng>> <<if $NPCList[_n].pronoun is "m">> <<if $rng lte $settings.maleNPCVaginaChance and $debugEnableHerms is 1>> <<set $NPCList[_n].penis to "clothed">> <<set $NPCList[_n].vagina to "clothed">> <<set $NPCList[_n].gender to "h">> <<elseif $rng lte $settings.maleNPCVaginaChance>> <<set $NPCList[_n].vagina to "clothed">> <<set $NPCList[_n].gender to "f">> <<else>> <<set $NPCList[_n].penis to "clothed">> <<set $NPCList[_n].gender to "m">> <</if>> <<elseif $NPCList[_n].pronoun is "f">> <<if $rng lte $settings.femaleNPCPenisChance and $debugEnableHerms is 1>> <<set $NPCList[_n].vagina to "clothed">> <<set $NPCList[_n].penis to "clothed">> <<set $NPCList[_n].gender to "h">> <<elseif $rng lte $settings.femaleNPCPenisChance>> <<set $NPCList[_n].penis to "clothed">> <<set $NPCList[_n].gender to "m">> <<else>> <<set $NPCList[_n].vagina to "clothed">> <<set $NPCList[_n].gender to "f">> <</if>> <</if>> <</if>> <<set $NPCList[_n].chastity to {penis:"", vagina:"", anus:""}>> <<if _npcChastity is 1>> <<unset _npcChastity>> <<if random(-100, 120) gte $world_corruption_soft>> <<if $NPCList[_n].penis isnot "none">> <<set $NPCList[_n].chastity.penis to (random(1, 3) is 1 ? "chastity belt" : "chastity cage")>> <</if>> <<if $NPCList[_n].vagina isnot "none">> <!-- if npc has both, give them the same chastity type on both. --> <<set $NPCList[_n].chastity.vagina to ($NPCList[_n].chastity.penis isnot "" ? $NPCList[_n].chastity.penis : "chastity belt")>> <</if>> <<set $_beltPresent to ($NPCList[_n].chastity.penis is "chastity belt" or $NPCList[_n].chastity.vagina is "chastity belt")>> <<if $settings.analEnabled and random(-100, 150) gte $world_corruption_soft and $_beltPresent>> <<set $NPCList[_n].chastity.anus to "anal shield">> <</if>> <</if>> <</if>> <<generateNPCClothes $NPCList[_n]>> /* Sex toy init rework */ /* Sex toys become more popular over time after the adult shop opens */ <<if !_strapIgnore and $enemytype isnot "beast" and ($NPCList[_n].teen isnot 1 or random(1,20) is 1) and ($position isnot "wall" or $walltype isnot "front")>> <<if $adultshopdegree gte random(0, 100) or random(0,100) lt 5>> <<if $settings.toyWhipEnabled and $settings.toyDildoEnabled and $player.gender_appearance isnot "f">> <<set _sexToy to randomSexToy()>> <<elseif $settings.toyWhipEnabled and $settings.toyDildoEnabled>> <<set _sexToy to randomSexToy("dildos and whips")>> <<elseif $settings.toyWhipEnabled and !$settings.toyDildoEnabled>> <<set _sexToy to randomSexToy("whip")>> <<elseif !$settings.toyWhipEnabled and $settings.toyDildoEnabled>> <<set _sexToy to randomSexToy("dildo")>> <</if>> <<if _sexToy isnot undefined>> <<set $NPCList[_n].heldSexToy to _sexToy>> <</if>> <</if>> <</if>> <<if $NPCList[_n].penis isnot "none">> <<set $NPCList[_n].penis to ($NPCList[_n].clothes.lower.name is "naked" ? 0 : "clothed")>> <</if>> <<if $NPCList[_n].vagina isnot "none">> <<set $NPCList[_n].vagina to ($NPCList[_n].clothes.lower.name is "naked" ? 0 : "clothed")>> <</if>> <<set $NPCList[_n].chest to ($NPCList[_n].clothes.upper.name is "naked" ? 0 : "clothed")>> <<if random(1, 100) lte $settings.darkSkinChance>> <<set $NPCList[_n].skincolour to "black">> <<else>> <<set $NPCList[_n].skincolour to "white">> <</if>> <<rng>> <<if $rng gte 81>> <<if $NPCList[_n].vagina isnot "none" and $NPCList[_n].penis isnot "none">> <<set $NPCList[_n].insecurity to ["penis","vagina"].random()>> <<elseif $NPCList[_n].penis isnot "none">> <<set $NPCList[_n].insecurity to "penis">> <<elseif $NPCList[_n].vagina isnot "none">> <<set $NPCList[_n].insecurity to "vagina">> <<else>> <<set $NPCList[_n].insecurity to "perfectly smooth crotch">> /* default case, shouldn't happen. */ <</if>> <<elseif $rng gte 61>> <<set $NPCList[_n].insecurity to "ethics">> <<elseif $rng gte 41>> <<set $NPCList[_n].insecurity to "weak">> <<elseif $rng gte 21>> <<set $NPCList[_n].insecurity to "skill">> <<else>> <<set $NPCList[_n].insecurity to "looks">> <</if>> <<if $NPCList[_n].teen is 1>> <<if $NPCList[_n].pronoun is "f">> <!-- female appearing student --> <<set $_hpMax to [125,175,150,150,150,175,150,200,200,200,125,200,250,125,250,200,250,250,200,300,400]>> <<set $_desc to ["slight","lithe","lean","thin","slender","lissome","slim","taut","graceful","trim","mousy","cute","fit","petite","toned","shapely","robust","plump","wide-eyed","vulgar","chubby","heavyset","minor demon"]>> <<set $_breastMin to [0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,5,5,8,3,10,12]>> <<set $_breastMax to [4,4,4,4,4,4,7,7,7,7,8,8,8,8,8,11,11,12,10,12,12]>> <<else>> <!-- male appearing student --> <<set $_hpMax to [125,175,150,150,150,175,150,200,200,200,125,200,250,125,250,200,250,250,200,300,400]>> <<set $_desc to ["slight","lithe","lean","thin","slender","lissome","slim","taut","graceful","trim","mousy","cute","fit","petite","toned","shapely","robust","plump","wide-eyed","brutish","chubby","heavyset","minor demon"]>> <</if>> <<else>> <<if $NPCList[_n].pronoun is "f">> <!-- female appearing adult --> <<set $_hpMax to [125,175,150,150,150,175,150,200,125,200,275,200,250,250,200,200,250,200,200,350,600]>> <<set $_desc to ["slight","lithe","lean","thin","slender","lissome","slim","taut","petite","trim","muscular","curvy","toned","plump","plush","shapely","robust","voluptuous","lush","vulgar","chubby","heavyset","demon"]>> <<set $_breastMin to [0,0,0,0,2,2,2,2,2,5,5,5,5,5,5,5,8,8,9,10,12]>> <<set $_breastMax to [4,4,4,4,4,4,7,7,8,9,9,9,9,12,10,11,10,11,11,12,12]>> <<else>> <!-- male appearing adult --> <<set $_hpMax to [125,125,150,150,150,150,175,175,200,200,200,200,250,250,250,250,275,275,275,400,600]>> <<set $_desc to ["petite","slight","slim","thin","slender","lanky","lissome","lithe","trim","lean","taut","plump","toned","bulky","broad","robust","rugged","muscular","burly","brutish","chubby","heavyset","demon"]>> <</if>> <</if>> <!-- Setting pp size limits separately. Changes should track with physical descriptions above, in order. --> <!-- Brutes and demons always have the largest penis size. --> <!-- $_penisMin is "smallest possible penis size", $_penisMax is "largest possible penis size" --> <<if $NPCList[_n].penis isnot "none">> <<if $NPCList[_n].teen is 1>> <<set $_penisMin to [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,8]>> <<set $_penisMax to [8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8]>> <<else>> <<set $_penisMin to [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,8]>> <<set $_penisMax to [8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8]>> <</if>> <</if>> <<set _brdes to ["nipple","budding","tiny","small","pert","modest","full","large","ample","massive","huge","gigantic","enormous"]>> <!-- Select NPC 1-18 Description/Strength pair. Breast size range bound to Description. NPC19 is Brute NPC20 is Demon--> <<if _lvl gte 0 and _lvl lte 20>> <<set _i to _lvl>> <<else>> <!-- Making NPCs unique, but only when their description is not specifically requested (and most of the time, it isn't) --> <!-- generate a range of numbers from 0 to N --> <<set $_range to [...Array(18).keys()]>> <!-- figure out which indices are already in use by looking them up in $_desc--> <<set $_takenDescriptionIndices to $NPCList.map(npc => $_desc.indexOf(npc.description))>> <!-- remove the already taken indices from the pool --> <<set $_range.delete($_takenDescriptionIndices)>> <!-- choose the index for this NPC using the filtered pool --> <<set _i to $_range.pluck()>> <</if>> <<set $NPCList[_n].healthmax to $_hpMax[_i]>> <<set $NPCList[_n].health to $NPCList[_n].healthmax>> <<set $NPCList[_n].description to $_desc[_i]>> <<if $NPCList[_n].penis isnot "none">><!-- set pp size based on the upper and lower bounds for the selected description --> <<if $settings.penisModifier gte $_penisMin[_i]>><<set $_penisMin[_i] to $settings.penisModifier>><</if>> <<if $settings.penisModifier gte $_penisMax[_i]>><<set $_penisMax[_i] to $settings.penisModifier>><</if>> <<if $settings.penisModifier lt 0>> <!-- Why is this only when $settings.penisModifier is negative? --> <<set $_penisMin[_i] to Math.clamp($_penisMin[_i]+$settings.penisModifier, 0, 8)>> <<set $_penisMax[_i] to Math.clamp($_penisMax[_i]+$settings.penisModifier, 0, 8)>> <</if>> <</if>> <<if $NPCList[_n].pronoun is "f">><!-- set breast size based on the upper and lower bounds for the selected description--> <<if $settings.breastModifier gte $_breastMin[_i]>><<set $_breastMin[_i] to $settings.breastModifier>><</if>> <<if $settings.breastModifier gte $_breastMax[_i]>><<set $_breastMax[_i] to $settings.breastModifier>><</if>> <<if $settings.breastModifier lt 0>> <!-- Why is this only when $settings.breastModifier is negative? --> <<set $_breastMin[_i] to Math.clamp($_breastMin[_i]+$settings.breastModifier, 0, 12)>> <<set $_breastMax[_i] to Math.clamp($_breastMax[_i]+$settings.breastModifier, 0, 12)>> <</if>> <</if>> <<if $NPCList[_n].pronoun is "f">><<set _rngbr to random($_breastMin[_i], $_breastMax[_i])>><</if>> <<if $NPCList[_n].penis isnot "none">><<set _rngpp to random($_penisMin[_i], $_penisMax[_i])>><</if>> <<set $NPCList[_n].fullDescription to $NPCList[_n].description + " ">> <<if $NPCList[_n].pronoun is "m">> <<set $NPCList[_n].fullDescription += ($NPCList[_n].teen is 1 ? "boy" : "man")>> <<elseif $NPCList[_n].pronoun is "f">> <<set $NPCList[_n].fullDescription += ($NPCList[_n].teen is 1 ? "girl" : "woman")>> <</if>> <<set $NPCList[_n].role to "normal">> /*Sets up multiple orgasms, code needs work*/ /*<<set $NPCList[_n].maxOrgasms to 1>> <<set $NPCList[_n].orgasms to 0>> <<if $NPCList[_n].fullDescription is "Robin">> <<set $NPCList[_n].maxOrgasms to 2>> <<set $setupMidOrgasm to true>> <</if>> */ <<if $NPCList[_n].pronoun is "m">> <<set $NPCList[_n].breastsize to 0>> <<set $NPCList[_n].breastsdesc to "nipples">> <<set $NPCList[_n].breastdesc to "nipple">> <<else>> <<if $NPCList[_n].adult is 1>> <!-- set adult breast size --> <<set $NPCList[_n].breastsize to _rngbr>> <<switch _rngbr>> <<case 0>> <<set $NPCList[_n].breastsdesc to "nipples">> <<set $NPCList[_n].breastdesc to "nipple">> <<default>> <<set $NPCList[_n].breastsdesc to _brdes[_rngbr]+" breasts">> <<set $NPCList[_n].breastdesc to _brdes[_rngbr]+" breast">> <</switch>> <<else>> <!-- set student breast size --> <<set $NPCList[_n].breastsize to _rngbr>> <<switch _rngbr>> <<case 0>> <<set $NPCList[_n].breastsdesc to "nipples">> <<set $NPCList[_n].breastdesc to "nipple">> <<default>> <<set $NPCList[_n].breastsdesc to _brdes[_rngbr]+" breasts">> <<set $NPCList[_n].breastdesc to _brdes[_rngbr]+" breast">> <</switch>> <</if>> <</if>> <<if $NPCList[_n].penis isnot "none">> <<if $NPCList[_n].adult is 1 or _npcPlant is 1>> <!-- set adult/plantperson pp size --> <<switch _rngpp>> <<case 0>> <<set $NPCList[_n].penisdesc to "tiny penis">> <<set $NPCList[_n].penissize to 1>> <<case 5 6 7>> <<set $NPCList[_n].penisdesc to either("thick cock","hefty cock","big cock","large cock","veiny cock","meaty cock")>> <<set $NPCList[_n].penissize to 3>> <<case 8>> <<set $NPCList[_n].penisdesc to either("massive cock","huge cock","humongous cock","immense cock","gigantic cock","enormous cock")>> <<set $NPCList[_n].penissize to 4>> <<default>> <<set $NPCList[_n].penisdesc to "penis">> <<set $NPCList[_n].penissize to 2>> <</switch>> <<else>> <!-- set student pp size --> <<switch _rngpp>> <<case 0>> <<set $NPCList[_n].penisdesc to "tiny penis">> <<set $NPCList[_n].penissize to 1>> <<case 7 8>> <<set $NPCList[_n].penisdesc to either("thick cock","hefty cock","big cock","large cock","veiny cock","meaty cock")>> <<set $NPCList[_n].penissize to 3>> <<default>> <<set $NPCList[_n].penisdesc to "penis">> <<set $NPCList[_n].penissize to 2>> <</switch>> <</if>> <</if>> <<rng>> <<if $NPCList[_n].pronoun is "f">> <<if $rng lte ($NPCList[_n].adult is 1 ? 40 : 20)>> <<set $NPCList[_n].lactation to 1>> <<else>> <<set $NPCList[_n].lactation to 0>> <</if>> <</if>> <<generateNPCvirginity $NPCList[_n]>> <!-- Sets females with strap-ons as adjustment--> <<if $NPCList[_n].gender is "f" and !_strapIgnore and !npcHasStrapon(_n)>> <<if random(0, 99) lt $settings.straponChance>> <<npcstrapon _n>> <</if>> <</if>> /*Location is relative to the PC*/ <<set $NPCList[_n].location to { head: 0, genitals: 0, }>> <<set $NPCList[_n].trust to 0>> <<set _rng to random(1, 6)>> <<if _rng gte 6>> <<set $NPCList[_n].size to "large">> <<elseif _rng gte 3>> <<set $NPCList[_n].size to "normal">> <<elseif _rng gte 1>> <<set $NPCList[_n].size to "small">> <<else>> <<set $NPCList[_n].size to "tiny">> <</if>> <<generate_npc_traits>> <<generate_npc_skills>> <<if _npcPlant is 1>> <<set $NPCList[_n].type to "plant">> <<set $NPCList[_n].fullDescription to $NPCList[_n].description + " plant">> <<if $NPCList[_n].pronoun is "m">> <<set $NPCList[_n].fullDescription += "boy">> <<elseif $NPCList[_n].pronoun is "f">> <<set $NPCList[_n].fullDescription += "girl">> <</if>> <<unset _npcPlant>> <<npcClothesType $NPCList[_n] "naked">> <<else>> <<set $NPCList[_n].type to "human">> <</if>> <<if $settings.condomLevel gte 2 and !_condomIgnore>> <<if $NPCList[_n].pregnancyAvoidance gte (100 - $settings.condomChance)>> <<set $NPCList[_n].condom to { willUse: random(0,100), state: (random(0,100) gt 98 ? "defective" : "normal"), type: "plain", colour: setup.colours.condom[random(0, (setup.colours.condom.length -1))].csstext, worn: false }>> <<elseif $NPCList[_n].pregnancyAvoidance lte 2>> <<set $NPCList[_n].condom to { willUse: random(0,100), state: "sabotaged", type: "plain", colour: setup.colours.condom[random(0, (setup.colours.condom.length -1))].csstext, worn: false }>> <</if>> <</if>> <<if $NPCList[_n].pregnancy is undefined>> <<set $NPCList[_n].pregnancy to 0>> <</if>> <</widget>> <<widget "npcstrapon">> <!-- NG Converts NPCs to strap-on --> <<switch _args[0]>> <<case 0 1 2 3 4 5>> <<set _xx to _args[0]>> <<default>> <span class="red">NPCSTRAPON Error: No NPC Identifier</span> <br><br> <</switch>> <<if !$NPCList[_xx].strapon>> <!-- set .penis to clothed if vagina was clothed, or nude if vagina was nude --> <<if $NPCList[_xx].vagina isnot "none">> <<set $NPCList[_xx].penis to $NPCList[_xx].vagina>> <<set $NPCList[_xx].vagina to "none">> <<set $NPCList[_xx].gender to "m">> <</if>> <!-- NPC strap-on descriptors added: 0.3.6.2 --> /* Other names: anal beads, barbed, ribbed, corkscrew, butt plug, unicorn horn, bovine */ <<set $_i to $NPCNameList.indexOf($NPCList[_xx].fullDescription)>> <<if _args[1]>> <<run console.log("assign strapon from args", _args[1])>> <<set $_strapon to _args[1]>> <<setNPCStrapon $NPCList[_xx] $_strapon>> <<set $NPCList[_xx].strapon.temp to true>> <<elseif $_i isnot -1 and $NPCName[$_i].strapons and $NPCName[$_i].strapons.length gte 1>> <!-- If the NPC owns at least one strapon, they'll choose one they own and put it on. --> <<run console.log("assign strapon from collection", $NPCName[$_i].strapons)>> <<set $_strapon to clone($NPCName[$_i].strapons.random())>> <<setNPCStrapon $NPCList[_xx] $_strapon>> <<else>> /* Generate random */ <<run console.log("generate random strapon")>> <<set _dildoType to either("dildo","penis","beaded dildo","horse cock","knotted cock", "tentacle","dolphin cock","studded cock","fist dildo")>> <<set _straponColor to either("black","red","pink","purple","fleshy","blue","green")>> <<set _bonusdescriptor to either("","","floppy","transparent","sparkly")>> <<switch random(1, 6)>> <<case 1>> <<set $NPCList[_xx].penisdesc to _bonusdescriptor +" "+_straponColor+" strap-on "+_dildoType>> <<set $NPCList[_xx].penissize to 2>> <<case 2 3>> <<set $NPCList[_xx].penisdesc to "large "+_straponColor+" strap-on cock">> <<set $NPCList[_xx].penissize to 3>> <<case 4>> <<set $NPCList[_xx].penisdesc to "large "+_straponColor+" strap-on "+_dildoType>> <<set $NPCList[_xx].penissize to 3>> <<case 5>> <<set $NPCList[_xx].penisdesc to "massive "+_straponColor+" strap-on "+_dildoType>> <<set $NPCList[_xx].penissize to 4>> <<default>> <<set $NPCList[_xx].penisdesc to "massive "+_straponColor+" strap-on cock">> <<set $NPCList[_xx].penissize to 4>> <</switch>> <!-- Set up like this for futureproofing --> <<set $NPCList[_xx].strapon to {state:"worn",color:_straponColor,description:$NPCList[_xx].penisdesc,size:$NPCList[_xx].penissize}>> <<if $_i isnot -1>> <!-- Give this named npc this strapon temporarily so that they will use it in future appearances (note: they are removed in the <<day>> widget) --> <<set $NPCList[_xx].strapon.temp to true>> <<set $randomNNPCStraponsToClear to true>> <<if !$NPCName[$_i].strapons or $NPCName[$_i].strapons.length is 0>> <<set $NPCName[$_i].strapons to [$NPCList[_xx].strapon]>> <<else>> <!-- This may not make sense? Why would a strapon be randomly generated if they already had one? --> <<run console.debug("Random strapon added to "+$NPCName[$_i].nam+"'s strapon collection when they already had one")>> <<set $NPCName[$_i].strapons.push($NPCList[_xx].strapon)>> <</if>> <</if>> <</if>> <<set $NPCList[_xx].strapon.state to "worn">> <</if>> <</widget>> <<widget "generateNewStrapon">> <<set $_straponSize to _args[0]>> <<set $_straponSizeDesc to {2: "", 3: "large", 4: "massive"}[_args[0]]>> <<set $_straponColour to _args[1]>> <<set $_straponShape to _args[2]>> <<set $_modifier to (_args[3] ? _args[3] : "")>> <<set $_straponDesc to `${$_straponSizeDesc} ${$_modifier} ${$_straponColour} strap-on ${$_straponShape}`.trim().replace(/\s\s+/, " ")>> <<set _newStrapon to { color: $_straponColour, size: $_straponSize, description: $_straponDesc, }>> <</widget>> <<widget "setNPCStrapon">> <<if _args[0] and _args[1]>> <<set $_npc to _args[0]>> <<set $_strapon to _args[1]>> <<set $_npc.strapon to clone($_strapon)>> <<set $_npc.strapon.state to "worn">> <<set $_npc.penisdesc to $_npc.strapon.description>> <<set $_npc.penissize to $_npc.strapon.size>> <</if>> <</widget>> <<widget "generate_npc_traits">> <<set $NPCList[_n].traits to []>> <<set _rng to random(1, 4)>> <<switch _rng>> <<case 1>> <<set $NPCList[_n].traits.push("relaxed")>> <<case 2>> <<set $NPCList[_n].traits.push("sociable")>> <<case 3>> <<set $NPCList[_n].traits.push("brooding")>> <<case 4>> <<set $NPCList[_n].traits.push("lecher")>> <</switch>> <<if $hallucinations gte 1 and $controlled is 0>> <!-- Update divisor when world corruption clamp changes--> <<set $_hypnoChance = Math.floor($world_corruption_soft / 10)>> <<if random(1, 100) lte $_hypnoChance>> <<set $NPCList[_n].traits.push("hypnotist")>> <</if>> <<else>> <<if random(1, 100) is 100>> <<set $NPCList[_n].traits.push("hypnotist")>> <</if>> <</if>> <!-- Update divisor when world corruption clamp changes--> <<set $_drugResistChance = Math.floor($world_corruption_soft / 20)>> <<if Time.isBloodMoon()>> <<set $_drugResistChance += 1>> <<set $_drugResistChance *= 5>> <</if>> <<if random(1, 100) lte $_drugResistChance>> <<set $NPCList[_n].traits.push("drug resistant")>> <</if>> /* <<if random(1, 5) is 5>> <<if random(1, 2) is 2>> <<set $NPCList[_n].traits.push("lazy")>> <<else>> <<set $NPCList[_n].traits.push("energetic")>> <</if>> <</if>> <<if random(1, 10) is 10>> <<set $NPCList[_n].traits.push("watchful")>> <</if>> <<if random(1, 10) is 10>> <<set $NPCList[_n].traits.push("needs glasses")>> <</if>> <<if random(1, 10) is 10>> <<set $NPCList[_n].traits.push("scrappy")>> <</if>> <<if random(1, 10) is 10>> <<set $NPCList[_n].traits.push("skulduggerous")>> <</if>> <<if random(1, 10) is 10>> <<set $NPCList[_n].traits.push("promiscuous")>> <</if>> <<if random(1, 10) is 10>> <<set $NPCList[_n].traits.push("exhibitionist")>> <</if>> <<if random(1, 10) is 10>> <<set $NPCList[_n].traits.push("deviant")>> <</if>> <<if random(1, 10) is 10>> <<set $NPCList[_n].traits.push("willful")>> <</if>> <<if random(1, 10) is 10>> <<set $NPCList[_n].traits.push("strong")>> <</if>> <<if random(1, 10) is 10>> <<set $NPCList[_n].traits.push("beautiful")>> <</if>> */ <</widget>> <<widget "generate_npc_skills">> <<set $NPCList[_n].skills to {}>> <<set $NPCList[_n].skills.security to random(1, 1000)>> <<set $NPCList[_n].skills.athletics to random(1, 1000)>> <</widget>> <!-- Argument 0 is NPC object, Argument 1 is clothes name or type. --> <<widget "npcClothesType">> <<if _args[0]>> <<run npcClothes(_args[0], _args[1])>> <</if>> <</widget>> <<widget "npcClothesName">> <<if _args[0] and _args[1]>> <<run npcSpecifiedClothes(_args[0], _args[1])>> <</if>> <</widget>> <<widget "generateNPCClothes">> <<if _args[0]>> <<set $_npc to _args[0]>> <<if _npcClothesPreset>> <!-- For clothing set in generation widgets --> <<if _npcClothesPreset is "school" and ($location is "pool" or $location is "beach" and Time.season isnot "winter")>> <<if $location is "pool" and $swimnudecounter gte random(1, 10)>> <<set _npcClothesPreset to "naked">> <<else>> <<set _npcClothesPreset to "schoolSwim">> <</if>> <</if>> <<set _npcClothingOptions to [_npcClothesPreset]>> <<unset _npcClothesPreset>> <<elseif $_npc.monster is "monster">> <<set _npcClothingOptions to ["naked"]>> <<elseif $location is "prison">> <<set _npcClothingOptions to ["prison"]>> <<else>> <!-- Determine possible NPC clothes types --> <<set _npcClothingOptions to ["default"]>> <<set $_schoolType to ($_npc.teen is 1 ? "school" : "teacher")>> <<switch $location>> <<case "brothel" "hospital" "temple" "spa">> <<set _npcClothingOptions.push($location, $location, "town", "town", "formal")>> <<case "moor" "farm" "alex_farm">> <<set _npcClothingOptions.push("town", "wilds", "wilds", "wilds", "riding")>> <<case "forest" "lake">> <<set _npcClothingOptions.push("town", "wilds", "wilds", "forest")>> <<case "beach">> <<if Time.season isnot "winter">> <<set _npcClothingOptions.push("town", "beach", "beach", "beach", "beach", "warm", "warm")>> <<if $_npc.teen is 1>> <<set _npcClothingOptions.push("schoolSwim", "schoolSwim")>> <</if>> <<else>> <<set _npcClothingOptions.push("town", "cold", "cold", "cold", "cold")>> <</if>> <<case "sea">> <<set _npcClothingOptions.push("town", "sailor", "sailor")>> <<case "docks">> <<set _npcClothingOptions.push("town", "docker", "docker")>> <<case "school">> <<set _npcClothingOptions to [$_schoolType]>> <<case "pool">> <<set _npcClothingOptions to ["schoolSwim"]>> <<case "dance_studio">> <<set _npcClothingOptions to ["dance_studio"]>> <<default>> <<set _npcClothingOptions.push("town", "town", "town")>> <<if $outside is 1>> <<switch Weather.precipitation>> <<case "none">> <<if Time.season isnot "winter">> <<set _npcClothingOptions.push("warm", "warm")>> <</if>> <<case "rain">> <<set _npcClothingOptions.push("cold", "wilds", "rain", "rain", "rain")>> <<case "snow">> <<set _npcClothingOptions.push("cold", "cold", "cold", "cold")>> <</switch>> <<if Time.season is "winter">> <<set _npcClothingOptions.push("cold", "cold", "cold", "cold")>> <</if>> <</if>> <<if Time.season is "summer">> <<set _npcClothingOptions.push("warm", "warm", "warm", "warm")>> <<elseif Time.betweenHours(19, 6)>> <<set _npcClothingOptions.push("cold", "cold", "formal", "formal", "formalRare")>> <</if>> <<if Time.season isnot "winter">> <<if Time.betweenHours(10, 15)>> <<set _npcClothingOptions.push("warm", "warm")>> <</if>> <</if>> <</switch>> <!-- For named NPCs. Remove "naked" outfit from outfits array. Find all outfit names in setup. Copy their types into an array. Compare this array with available options. Delete any possible options that the named NPC does not have a type of. --> <<if $_npc.outfits>> <<set $_npcOutfits to clone($_npc.outfits)>> <<set $_npcOutfits to $_npcOutfits.filter(x => !x.includes("naked"))>> <<set _npcOutfitsTypes to []>> <<for $_key, $_outfit range $_npcOutfits>> <<set _npcOutfitsTypes.push(setup.npcClothesSets.find(set => set.name === $_outfit).type)>> <</for>> <<for $_key, $_outfitType range _npcClothingOptions>> <<if !_npcOutfitsTypes.includes($_outfitType)>> <<run _npcClothingOptions.delete($_outfitType)>> <</if>> <</for>> <</if>> <<if _npcClothingOptions.length gt 1>> <<run _npcClothingOptions.delete("default")>> <</if>> <</if>> <<set _npcClothes to _npcClothingOptions.random()>> <<run npcClothes($_npc, _npcClothes)>> <</if>> <</widget>> <<widget "generateNPCvirginity">> <<set $_npc to _args[0]>> <<set $_npc.virginity to { "anal": true, "oral": true, "penile": true, "vaginal": true, "handholding": false, "temple": false, "kiss": false }>> <<set $_virginChance to ($_npc.adult is 1 ? $settings.npcVirginChanceAdult : $settings.npcVirginChanceStudent)>> <<if _npcPlant and $_virginChance lt 100>> <<set $_virginChance /= 20>> <</if>> <<set $_npc.virginity.penile to (random(1,100) lte $_virginChance)>> <<set $_npc.virginity.vaginal to (random(1,100) lte $_virginChance)>> <!-- Can't lose virginity if you don't have the part. --> <!-- Also, futureproofing for strapons; this runs before strapons are assigned, so they should not generate with both penile virginity AND a strapon. --> <<if $_npc.penis is "none">> <<set $_npc.virginity.penile to false>> <</if>> <<if $_npc.vagina is "none">> <<set $_npc.virginity.vaginal to false>> <</if>> <!-- this is quadratic, but basically it approaches 100% faster than regular virgin chance. --> <<set $_uncommonVirginChance to $_virginChance * (2 - ($_virginChance/100))>> <<if $settings.analEnabled>> <<set $_npc.virginity.anal to (random(1,100) lte $_uncommonVirginChance)>> <</if>> <<set $_npc.virginity.oral to (random(1,100) lte $_uncommonVirginChance)>> <</widget>> <<widget "generatetakevirginity">> <<set $_n to _args[0]>> <<set $_g to maleChance() gte random(1, 100) ? "m" : "f">> <<if $player.vaginaExist and $settings.straponChance is 0 and !unableTakeVirginity("vaginal")>> <<if $settings.femaleNPCPenisChance gte 1>> <<generateNPC $_n a $_g m>> <<else>> <<generateNPC $_n a m m>> <</if>> <<elseif $player.penisExist and !$settings.analEnabled and !unableTakeVirginity("penile")>> <<if $settings.maleNPCVaginaChance gte 1>> <<generateNPC $_n a $_g f>> <<else>> <<generateNPC $_n a f f>> <</if>> <<else>> <<generateNPC $_n>> <<run $_n -= 1>> <<if $player.vaginaExist and !$player.penisExist and $NPCList[$_n].penis is "none">> <<npcstrapon $_n>> <</if>> <</if>> <</widget>><<widget "speech-gwylan">> <<run statusCheck("Gwylan")>><<rng>> <<set _gwylan to $NPCList.find(npc => npc.fullDescription === "Gwylan")>> <<if !$gwylanComments>> <<set $gwylanComments to {}>> <<set $gwylanComments.penetrated to 0>> <<set $gwylanComments.mouth to 0>> <<set $gwylanComments.trib to 0>> <<set $gwylanComments.imminent to 0>> <<set $gwylanComments.touch to 0>> <<set $gwylanComments.fondle to 0>> <<set $gwylanComments.flaunt to 0>> <<set $gwylanUniqueComments to []>> <</if>> <<if $possessed>> <<if $control gte $controlmax>> <<set _gwyText to `<<He>> yells. "Now! Break free!"`>> <<elseif $enemyhealth lte 50 and !$gwylanUniqueComments.includes("wraithPain")>> <<set $gwylanUniqueComments.pushUnique("wraithPain")>> <<set _gwyText to `<<He>> grunts in pain, on the verge of collapsing. "Come on... exert your will!"`>> <<else>> <<switch random(1,10)>> <<case 1>> <<set _gwyText to `<<He>> growls. "You can't have <<phim>>."`>> <<case 2>> <<set _gwyText to `<<He>> growls. "You're stronger than it. I know you are."`>> <<case 3>> <<set _gwyText to `<<He>> demands. "Begone!"`>> <<case 4>> <<set _gwyText to `<<He>> speaks. "Come back to me, <<pcpetname 'Gwylan' 'name'>>."`>> <<case 5>> <<set _gwyText to `<<He>> speaks. "Don't leave me."`>> <<case 6>> <<set _gwyText to `<<He>> speaks. "Return to your shackles."`>> <<case 7>> <<set _gwyText to `<<He>> breathes heavily, trying to stay focused. "Why <<phim>>?"`>> <<case 8>> <<set _gwyText to `<<He>> tries to hold you still. "Just fight it."`>> <<case 9>> <<set _gwyText to `<<He>> speaks. "Release <<phim>> at once."`>> <<case 10>> <<set _gwyText to `<<He>> speaks. "This won't bring you peace."`>> <</switch>> <</if>> <<elseif $abomination is 1>> <<switch random(1,10)>> <<case 1>> <<set _gwyText to `<<He>> giggles. "You awoke this beast and you must sate it."`>> <<case 2>> <<set _gwyText to `<<He>> breathes heavily. "Energy like this cannot be destroyed. It has to be spent."`>> <<case 3>> <<set _gwyText to `<<He>> lets out a soft moan. "I can't help it. I need you."`>> <<case 4>> <<set _gwyText to `<<His>> eyes <span class="witch">glow</span> with lust.`>> <<case 5>> <<set _gwyText to `<<He>> giggles. "Admit it, <<pcpetname "Gwylan">>. You want to be ravished."`>> <<case 6>> <<set _gwyText to `<<He>> says nothing, driven to madness by need.`>> <<case 7>> <<set _gwyText to `"You started this," <<he>> says. "You can't back away now."`>> <<case 8>> <<set _gwyText to `"Don't leave me," <<he>> cries out.`>> <<case 9>> <<set _gwyText to `"I'm sorry," <<he>> whimpers.`>> <<case 10>> <<set _gwyText to `<<He>> breathes heavily. "You look so delicious, <<pcpetname "Gwylan">>. Let me taste you."`>> <</switch>> <<elseif $speechNPCPenisVirgin is 1 or $speechNPCVaginaVirgin is 1>> <<if $speechpenisvirgin is 1 or $speechvaginavirgin is 1 or $speechanusvirgin is 1>> <<set _gwyText to `<<He>> winces. "Oh my. I never quite get used to losing my virginity all over again." <<He>> giggles. "Thank you for going through it with me. You'll be my last first time."`>> <<else>> <<set _gwyText to `<<He>> winces. "Oh my. I never quite get used to losing my virginity all over again." <<He>> giggles. "I'm glad I could give you something in return. You'll be my last first time."`>> <</if>> <<elseif $speechNPCAnusVirgin is 1>> <<if $speechpenisvirgin is 1>> <<set _gwyText to `<<He>> winces. "Oh dear, I didn't prepare this body for anal yet. I'll be feeling it later." <<He>> smiles after a moment. "Dirty <<girl>>, having your first time like this."`>> <<else>> <<set _gwyText to `<<He>> winces. "Oh dear, I didn't prepare this body for anal yet. I'll be feeling it later." <<He>> smiles after a moment. "No, it's alright, keep going."`>> <</if>> <<elseif $speechpenisvirgin is 1 or $speechvaginavirgin is 1>> <<set _gwyText to ``>> <<if $fallenangel gte 2>> <<if $transformationParts.fallenAngel.halo isnot "hidden">> <<set _gwyText += `<<He>> frowns, <<his>> face no longer illuminated by your halo. "Is this really what you wanted?" `>> <<else>> <<set _gwyText += `<<He>> frowns. "Is this really what you wanted?" `>> <</if>> <<set $gwylanSeen.pushUnique("fallen_angel")>> <</if>> <<if $position is "missionary">> <<set _gwyText += `<<He>> briefly leans forward, placing a kiss on your forehead. `>> <<else>> <<set _gwyText += `<<He>> places a kiss on your cheek before getting back on all fours. `>> <</if>> <<set _gwyText += `"I'll remember this gift you've given me."`>> <<elseif $speechanusvirgin is 1>> <<set _gwyText to `"You're an adventurous one. Thank you for trusting me."`>> <<elseif $speechmouthvirgin is 1>> <<set _gwyText to `"Shhh, you're doing great. Relax your jaw."`>> <<elseif $speechNPCKissVirgin is 1>> <<set _gwyText to `<<He>> gazes at you lovingly. "Look at how far we've come, now I'm the one eager to kiss." <<He>> giggles.`>> <<elseif $speechhermaroused is 1>> <<if _gwylan.gender is "h">> <<set _gwyText to `<<He>> tilts <<his>> head. "We're alike in many ways, aren't we?"`>> <<else>> <<set _gwyText to `<<He>> tilts <<his>> head. "Oh, wow! I've never seen a rebis in person before. You're full of surprises."`>> <</if>> <<elseif $speechcrossdressaroused is 1>> <<set _gwyText to `<<He>> thinks for a moment. "Unexpected genitalia, but not unwelcome. I'm nothing if not versatile."`>> <<elseif $speechspray is 1>> <<set _gwyText to `<<He>> covers <<his>> eyes. "Bweh!"`>> <<elseif $speechnamedrop is 1>> <<set $speechnamedrop to 0>> <<switch _loveInterest>> <<case "Black Wolf" "Great Hawk">> <<set _gwyText to `<<He>> giggles. "Hush, I know well the companionship of animals."`>> <<case "Eden">> <<set _gwyText to `<<He>> frowns. "Shhh, don't speak <<nnpc_his 'Eden'>> name."`>> <<case "Robin">> <<if $gwylan.robin gte 50>> <<set _gwyText to `<<He>> giggles. "You should invite Robin to join us."`>> <<elseif $gwylanSeen.includes("romance")>> <<set _gwyText to `<<He>> tilts <<his>> head. "You're welcome to play around with whomever you like, but you will return to me in the end. You promised." <<npcincr Gwylan dom -2>><<lyearning>>`>> <<else>> <<set _gwyText to `<<He>> giggles. "Shhh. No need to invoke more names. It's just us."`>> <</if>> <<case "Kylar">> <<if $gwylanSeen.includesAny("kylar_parents", "kylar_kidnapped")>> <<set _gwyText to `<<He>> tilts <<his>> head. "Fascinating that you call out for <<nnpc_him "Kylar">>, despite everything you've told me about <<nnpc_him "Kylar">>."`>> <<elseif $gwylanSeen.includes("romance")>> <<set _gwyText to `<<He>> tilts <<his>> head. "You're welcome to play around with whomever you like, but you will return to me in the end. You promised." <<npcincr Gwylan dom -2>><<lyearning>>`>> <<else>> <<set _gwyText to `<<He>> giggles. "Shhh. No need to invoke more names. It's just us."`>> <</if>> <<default>> <<if $gwylanSeen.includes("romance")>> <<set _gwyText to `<<He>> tilts <<his>> head. "You're welcome to play around with whomever you like, but you will return to me in the end. You promised." <<npcincr Gwylan dom -2>><<lyearning>>`>> <<else>> <<set _gwyText to `<<He>> giggles. "Shhh. No need to invoke more names. It's just us."`>> <</if>> <</switch>> <<elseif $speechsextoy is 1>> <<set $speechsextoy to 0>> <<set _sexToy to ($rightarm is "heldSexToy" and $leftarm is "heldSexToy" ? "sex toys" : "sex toy")>> <<if $location is "forest_shop">> <<set _gwyText to `<<He>> looks at your <<print _sexToy>> and smiles. "I'm sure I have something laying around too." <<He>> reaches off to the side, and <<his>> hands find a ?gwylanItem. <<He>> seems to think about it for a moment, before tossing it back into the gloom.`>> <<else>> <<set _gwyText to `<<He>> looks at your <<print _sexToy>> and smiles. "Someone came with a plan. Think you'll cum with a plan, too?"`>> <</if>> <<elseif $speechcum is 1>> <<if _deniedOrgasm and !$gwylanUniqueComments.includes("ear_slime") and $consensual is 1>> <<set $gwylanUniqueComments.pushUnique("ear_slime")>> <<if $gwylanSeen.includes("hypnosis_silence")>> <<set _gwyText to `<<He>> frowns. "The parasite is at it again, is it? Do you want to stop?"`>> <<elseif !$gwylanSeen.includes("ear_slime_intro")>> <<set _gwyText to `<<He>> frowns. "Are you sure you don't want to stop?"`>> <<else>> <<set $gwylanSeen.pushUnique("ear_slime_intro")>> <<set _gwyText to `<<He>> frowns and disengages for a moment. "That didn't look good. You should <span class='blue'>come talk to me after this.</span> I might be able to help. We can stop if this isn't working for you."`>> <</if>> <<elseif $player.penisExist and ($orgasmcount gte 24 or $femaleclimax)>> <<if !$gwylanUniqueComments.includes("no_cum")>> <<set $gwylanUniqueComments.pushUnique("no_cum")>> <<set _gwyText to `"Oh dear, nothing came out. Had enough?"`>> <<else>> <<switch random(1, 4)>> <<case 1>><<set _gwyText to `"I'm sure I can coax something out..."`>> <<case 2>><<set _gwyText to `"Tsk. No good."`>> <<case 3>><<set _gwyText to `"Perhaps you need a supplement."`>> <<case 3>><<set _gwyText to `"Come on, give me something."`>> <</switch>> <</if>> <<elseif $player.penisExist and $orgasmcount gte 18 and !$gwylanUniqueComments.includes("small_cum")>> <<set $gwylanUniqueComments.pushUnique("small_cum")>> <<set _gwyText to `"Oh my, it looks like someone's starting to run dry."`>> <<elseif $speechspank is 1>> <<set _gwyText to `<<He>> giggles. "Oh my, what a dirty <<pcpetname 'Gwylan' 'simple'>> you are."`>> <<elseif _gwylan.vagina is "penisimminent" or _gwylan.vagina is "penisentrance">> <<set _gwyText to `<<He>> giggles. "Aww, you look like you wanted to finish inside. Poor <<pcpetname 'Gwylan' 'simple'>>."`>> <<elseif _gwylan.vagina is "frot">> <<if playerChastity("penis")>> <<set _gwyText to `<<He>> pouts. "We really need to get that off of you. I want you to fill me properly."`>> <<else>> <<set _gwyText to `<<He>> giggles. "The temptation to just let it slip in right before you finish..."`>> <</if>> <<elseif _gwylan.mouth is "penis">> <<if playerHasStrapon()>> <<set _gwyText to `<<He>> looks up to you as you climax, releasing your <<penis>> from <<his>> mouth and nearly choking as <<he>> starts laughing. "Is watching me suck off this toy really that arousing?"`>> <<else>> <<if $gwylanUniqueComments.includes("cum_in_mouth")>> <<set _gwyText to `<<He>> braces <<himself>> as you start to cum in <<his>> mouth again. `>> <<else>> <<set $gwylanUniqueComments.pushUnique("cum_in_mouth")>> <<set _gwyText to `<<His>> eyes widen as you start to cum in <<his>> mouth. `>> <</if>> <<switch $player.penissize>> <<case 4>> <<set _gwyText += `<<He>> takes a deep breath through <<his>> nose, and pushes <<himself>> down until <<he>> fully takes your massive length like an expert. <<He>> holds you in <<his>> throat until you finish cumming. <<He>> quickly releases your <<penis>>, inhaling sharply. <<He>> pants, <<his>> mouth open to show you that it's empty. All your cum went right down <<his>> throat.`>> <<case 3 2 1>> <<set _gwyText += `<<He>> pushes <<his>> head down, taking your whole length. <<He>> holds you in until you finish cumming, and releases you with a short gasp. <<He>> smiles and opens <<his>> mouth to show you your cum in <<his>> mouth, before <<he>> swallows it all.`>> <<default>> <<set _gwyText += `<<He>> pushes <<his>> head down, easily taking your small length. <<He>> holds you in until you finish cumming, and releases you. <<He>> smiles and opens <<his>> mouth to show you your cum in <<his>> mouth, before <<he>> swallows it all.`>> <</switch>> <</if>> <<elseif _gwylan.mouth is "vagina">> <<set _gwyText to `<<He>> licks you more intensely as you continue to shudder.`>> <<elseif _gwylan.vagina is "penis">> <<if playerHasStrapon()>> <<set _gwyText to `<<He>> laughs seductively as you climax. "Can't even outlast me with a toy? Poor <<pcpetname 'Gwylan' 'simple'>>."`>> <<else>> <<if _gwylanStatus.includes("wantsPregnancy") and $settings.pregnancySpeechEnabled>> <<set _gwyText to `<<He>> moans as <<he>> continues riding your <<penis>>. "<<pcPetname 'Gwylan' 'good'>>, give me <<if $wolfgirl gte 6 or $fox gte 6 or $cat gte 6>>a litter<<else>>your child<</if>>."`>> <<elseif _gwylanStatus.includes("heat")>> <<set _gwyText to `<<He>> breathes heavily as <<he>> feels your semen fill <<his>> womb. <<He>> sighs with relief. "I needed this. I needed your seed inside me."`>> <<else>> <<set _gwyText to either( `<<He>> shakes with arousal as you fill <<him>>. "<<pcPetname 'Gwylan' 'good'>>, fill me up."`, `<<He>> grinds your hips together and places a hand over <<his>> <<bellyDescription 'Gwylan'>>. "Warm."` )>> <</if>> <</if>> <<elseif $gwylanComments.fondle is 0 and ($speechvagina + $speechclit + $speechpenis + $speechglans) gte 1>> <<set $gwylanComments.fondle to 4>> <<set _gwyText to `<<He>> watches you climax with delight. "Don't feel ashamed, I have magic hands."`>> <<else>> <<switch $speechorgasmcount>> <<case 2>> <<set _gwyText to `<<He>> giggles, watching you climax with delight.`>> <<case 3>> <<set _gwyText to `<<He>> giggles. "Again?"`>> <<case 4>> <<set _gwyText to `<<He>> giggles. "That's right, just like that."`>> <<case 5>> <<set _gwyText to `<<He>> giggles. "Had enough yet?"`>> <<default>> <<set _gwyText to `<<He>> whispers. "<<pcPetname 'Gwylan' 'good'>>, let it all out for me."`>> <</switch>> <</if>> <<elseif $speechgenitals is 1 and $worn.genitals.type.includesAll("chastity", "hidden") and !$gwylanUniqueComments.includes("chastity")>> <<set _gwyText to `<<He>> grumbles in irritation upon seeing your <<printChastity>>.`>> <<set $gwylanUniqueComments.pushUnique("chastity")>> <<elseif $speechgenitals is 1 and !playerChastity() and $gwylan.request.event is "chastity">> <<set _gwyText to `<<He>> smiles in satisfaction upon seeing your <<genitals>> exposed. "Excellent. No more obstructions." <<He>> pats you on the head. "<<pcPetname 'Gwylan' 'good'>>." <<trauma -1>><<ltrauma>>`>> <<if $gwylan.request.command>> <<gwylanRequestEnd "silent">> <<else>> <<gwylanRequestEnd "skip">> <</if>> <<elseif $speechpenispenetrated is 1 and $gwylanComments.penetrated is 0>> <<set $gwylanComments.penetrated to 3>> <<if $arousal gte ($arousalmax / 5) * 4>> <<if _gwylanStatus.includes("wantsPregnancy") and $settings.pregnancySpeechEnabled and !npcIsPregnant("Gwylan")>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<set _gwyText to `<<He>> whines and pants with each thrust. Fluids drool from <<his>> <<npcVagina>>. "Plant your seed in me. Breed me, <<pcpetname 'Gwylan'>>. I need it."`>> <<else>> <<set _gwyText to `<<He>> shivers as <<he>> notices your arousal. "I want you to breed me. Give me everything."`>> <</if>> <<elseif _gwylanStatus.includes("heat")>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<set _gwyText to `<<He>> whines and pants with each thrust. Fluids drool from <<his>> <<npcVagina>>. "F-finish inside. I need it."`>> <<else>> <<set _gwyText to `<<He>> shivers as <<he>> notices your arousal. "You better not pull out."`>> <</if>> <<else>> <<if $settings.pregnancySpeechEnabled>> <<set _gwyText to `<<He>> puts a hand to <<his>> mouth and giggles. "You look like you're close. It's okay, you can finish inside. I won't get pregnant."`>> <<else>> <<set _gwyText to `<<He>> puts a hand to <<his>> mouth and giggles. "You look like you're close. It's okay, you can finish inside."`>> <</if>> <</if>> <<elseif $arousal gte ($arousalmax / 5) * 2>> <<if _gwylanStatus.includes("wantsPregnancy") and $settings.pregnancySpeechEnabled and !npcIsPregnant("Gwylan")>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<set _gwyText to `<<He>> whines and pants with each thrust. Fluids drool from <<his>> <<npcVagina>>. "Plant your seed in me. Breed me, <<pcpetname 'Gwylan'>>. I need it."`>> <<else>> <<set _gwyText to `<<He>> shivers. "I want you to breed me. Give me everything."`>> <</if>> <<elseif _gwylanStatus.includes("heat")>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<set _gwyText to `<<He>> whines and pants with each thrust. Fluids drool from <<his>> <<npcVagina>>. "I want your semen inside me."`>> <<else>> <<set _gwyText to `<<He>> shivers. "You better not pull out."`>> <</if>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<set _gwyText to `<<He>> giggles. "I hope you're enjoying this as much as I am."`>> <<else>> <<set _gwyText to `<<He>> giggles. "You look adorable <<if $position is 'missionary'>>down<<else>>back<</if>> there."`>> <</if>> <<else>> <<set _gwyText to `<<He>> smiles. "Doesn't it feel wonderful, being connected like this?"`>> <</if>> <<elseif $speechotheranuspenetrated is 1 and $gwylanComments.penetrated is 0>> <<set $gwylanComments.penetrated to 3>> <<if $arousal gte ($arousalmax / 5) * 4>> <<set _gwyText to `<<He>> puts a hand to <<his>> mouth and giggles. "You look like you're close. Come on, let it out."`>> <<elseif $arousal gte ($arousalmax / 5) * 2>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<set _gwyText to `<<He>> giggles. "I hope you're enjoying this as much as I am."`>> <<else>> <<set _gwyText to `<<He>> giggles. "You look adorable <<if $position is 'missionary'>>down<<else>>back<</if>> there."`>> <</if>> <<else>> <<set _gwyText to `<<He>> smiles. "Doesn't it feel wonderful, being connected like this?"`>> <</if>> <<elseif $speechvaginapenetrated is 1 and $gwylanComments.penetrated is 0>> <<set $gwylanComments.penetrated to 3>> <<if $arousal gte ($arousalmax / 5) * 4>> <<if _gwylanStatus.includes("wantsPregnancy") and $settings.pregnancySpeechEnabled and !playerIsPregnant()>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<set _gwyText to `<<He>> whines and pants with each thrust. "You'll let me finish inside, right <<pcpetname 'Gwylan'>>? You want to be bred, don't you?"`>> <<else>> <<set _gwyText to `<<His>> face turns a deep red as <<he>> giggles. "You look like you want me to breed you. I'll do my best for <<pcpetname 'Gwylan' 'my'>>."`>> <</if>> <<elseif _gwylanStatus.includes("heat")>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<set _gwyText to `<<He>> whines and pants with each thrust.`>> <<else>> <<set _gwyText to `<<He>> shivers as <<he>> notices your arousal.`>> <</if>> <<else>> <<if $settings.pregnancySpeechEnabled and $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<set _gwyText to `<<He>> puts a hand to <<his>> mouth and giggles. "I'm nearly there. Don't worry, I won't get you pregnant."`>> <<else>> <<set _gwyText to `<<He>> puts a hand to <<his>> mouth and giggles. "You look like you're close. It's okay, you can finish first."`>> <</if>> <</if>> <<elseif $arousal gte ($arousalmax / 5) * 2>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<set _gwyText to `<<He>> giggles. "I hope you're enjoying this as much as I am."`>> <<else>> <<set _gwyText to `<<He>> giggles. "You look adorable <<if $position is 'missionary'>>down<<else>>up<</if>> there."`>> <</if>> <<else>> <<set _gwyText to `<<He>> smiles. "Doesn't it feel wonderful, being connected like this?"`>> <</if>> <<elseif $speechanuspenetrated is 1 and $gwylanComments.penetrated is 0>> <<set $gwylanComments.penetrated to 3>> <<if $arousal gte ($arousalmax / 5) * 4>> <<set _gwyText to `<<He>> puts a hand to <<his>> mouth and giggles. "You look like you're close."`>> <<elseif $arousal gte ($arousalmax / 5) * 2>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<set _gwyText to `<<He>> giggles. "I hope you're enjoying this as much as I am."`>> <<else>> <<set _gwyText to `<<He>> giggles. "You look adorable <<if $position is 'missionary'>>down<<else>>up<</if>> there."`>> <</if>> <<else>> <<set _gwyText to `<<He>> smiles. "Doesn't it feel wonderful, being connected like this?"`>> <</if>> <<elseif ($speechpenispenetrated is 1 or $speechotheranuspenetrated or $speechvaginavagina or (($speechvaginapenetrated or $speechanuspenetrated) and $position is "missionary")) and !$gwylanUniqueComments.includes("scratched")>> <<set $gwylanUniqueComments.pushUnique("scratched")>> <<set _gwyText to `<<He>> speaks. "Don't be afraid to wrap your arms around me and scratch me up. I'm used to it."`>> <<elseif $gwylanUniqueComments.includes("scratched") and !$gwylanUniqueComments.includes("bite")>> <<set $gwylanUniqueComments.pushUnique("bite")>> <<set _gwyText to `<<He>> speaks. "Come to think of it, don't be afraid to bite me, either."`>> <<set $breastbitten to 0>> <<elseif $speechmouthpenetrated is 1 and $gwylanComments.penetrated is 0>> <<set $gwylanComments.penetrated to 3>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<set _gwyText to `<<He>> pets your head and exhales sharply. "<<pcPetname 'Gwylan' 'good'>>, I'm almost there."`>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<if $transformationParts.traits.fangs isnot "disabled">> <<set _gwyText to `<<He>> pets your head. "Watch those fangs. I feel you nibbling."`>> <<else>> <<set _gwyText to `<<He>> pets your head. "Just like that."`>> <</if>> <<else>> <<set _gwyText to `<<He>> pets your head. "<<pcPetname 'Gwylan' 'good'>>."`>> <</if>> <<elseif ($speechvaginamouth + $speechanallick + $speechanalkiss + $speechmouthotheranus + $speechthroat + $speechfacesit) gte 1 and $gwylanComments.mouth is 0>> <<set $gwylanComments.mouth to 4>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<set _gwyText to `<<He>> moans softly, placing both hands on your head. "G-<<pcpetname 'Gwylan' 'good'>>, keep going just like that."`>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<if $cat gte 6>> <<set _gwyText to `<<He>> giggles. "Try licking a different spot, your rough tongue is starting to hurt."`>> <<else>> <<set _gwyText to `<<He>> giggles. "You're good with that tongue."`>> <</if>> <<else>> <<set _gwyText to `<<He>> giggles. "Do you like licking me all over? Aren't I a tasty treat?"`>> <</if>> <<elseif ($speechvaginavagina + $speechtribentrance) gte 1 and $gwylanComments.trib is 0>> <<set $gwylanComments.trib to 4>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<set _gwyText to `<<He>> pants. "Just... a little more rubbing."`>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<set _gwyText to `<<He>> pants. "It feels good, doesn't it?"`>> <<else>> <<set _gwyText to `<<He>> smiles. "This isn't always the most effective method of pleasuring, but I know how to make it work."`>> <</if>> <<elseif ($speechvaginaimminent + $speechpenisimminent + $speechvaginaentrance + $speechpenisentrance) gte 1 and $gwylanComments.imminent is 0>> <<set $gwylanComments.imminent to 4>> <<if $speechvaginaimminent is 1 or $speechvaginaentrance is 1>> <<if $novaginal and $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<set _gwyText to `<<He>> pouts. "You're such a tease, not letting me put it in."`>> <<else>> <<set _gwyText to `<<He>> speaks. "Is this enough for you?"`>> <</if>> <<else>> <<if $nopenile and $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<set _gwyText to `<<He>> pouts. "You're such a tease, not wanting to fill me."`>> <<else>> <<set _gwyText to `<<He>> speaks. "Waiting for an invitation, dear?"`>> <</if>> <</if>> <<elseif ($speechotheranusimminent + $speechotheranusentrance) gte 1 and $gwylanComments.imminent is 0>> <<set $gwylanComments.imminent to 4>> <<if $nopenile and $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<set _gwyText to `<<He>> pouts. "You're such a tease, not wanting to fill me."`>> <<else>> <<set _gwyText to `<<He>> speaks. "Waiting for an invitation, dear?"`>> <</if>> <<elseif ($speechanusimminent + $speechanusentrance) gte 1 and $gwylanComments.imminent is 0>> <<set $gwylanComments.imminent to 4>> <<if $novaginal and $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<set _gwyText to `<<He>> pouts. "You're such a tease, not letting me put it in."`>> <<else>> <<set _gwyText to `<<He>> speaks. "Is this enough for you?"`>> <</if>> <<elseif $speechspank is 1>> <<if $speechmoan is 1>> <<set _gwyText to either( `<<He>> smirks. "Oh, you like that?"`, `<<He>> giggles. "<<pcPetname 'Gwylan' 'bad'>>."`, `<<He>> giggles. "Your voice is so sweet in between the pain. Sing for me again."` )>> <<else>> <<set _gwyText to either( `<<He>> speaks. "Just hold still, it'll be over soon."`, `<<He>> speaks. "You need to be disciplined. <<pcPetname 'Gwylan' 'bad'>>."`, `<<He>> giggles. "Let me hear how much it hurts."` )>> <</if>> <<elseif $speechapologise is 1>> <<set _gwyText to `<<He>> giggles. "Aww, it's hard for me to stay mad at you when you look at me like that."`>> <<elseif $speechapologiseno is 1>> <<set _gwyText to `<<He>> giggles. "Good. Beg more."`>> <<elseif $speechapologiseunforgiving is 1>> <<set _gwyText to `<<He>> scowls. "It will take more than an apology, <<pcpetname 'Gwylan'>>."`>> <<elseif ($speechvaginawithhold + $speechanuswithhold + $speechpeniswithhold + $speechotheranuswithhold) gte 1 and !$gwylanUniqueComments.includes("withhold")>> <<set $gwylanUniqueComments.pushUnique("withhold")>> <<if $angel gte 6 and ($speechvaginawithhold + $speechpeniswithhold) gte 1>> <<if $transformationParts.angel.halo isnot "hidden">> <<set _gwyText to `<<He>> smiles, and traces your halo with <<his>> finger. "I won't take this from you."`>> <<else>> <<set _gwyText to `<<He>> smiles, and traces a circle above your head. "I won't take this from you."`>> <</if>> <<else>> <<set _gwyText to `<<He>> sighs. "Very well, if that's what you want."`>> <</if>> <<elseif $speechchastity is 1 and !$gwylanUniqueComments.includes("chastity")>> <<set $gwylanUniqueComments.pushUnique("chastity")>> <<if $worn.genitals.name is "chastity parasite">> <<set _gwyText to `"I can work with this, I suppose. I'll need to clean myself up afterwards."`>> <<else>> <<set _gwyText to `"Troublesome device. If only I had my tools on hand."`>> <</if>> <<elseif ($speechcoverface + $speechcoverpenis + $speechcovervagina) gte 1 and !$gwylanUniqueComments.includes("hide")>> <<set $gwylanUniqueComments.pushUnique("hide")>> <<set _gwyText to `<<He>> giggles. "Aww, are you shy?"`>> <<elseif $speechhair is 1 and !$gwylanUniqueComments.includes("hair")>> <<set $gwylanUniqueComments.pushUnique("hair")>> <<set _gwyText to `<<He>> speaks. "I'd like to brush your hair."`>> <<elseif ($speechhandjobpenis + $speechhandjobvagina + $speechcheeks + $speechthigh + $speechfeet + $speechchestrub + $speechbreastrub) gte 1 and $gwylanComments.touch is 0>> <<set $gwylanComments.touch to 4>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<set _gwyText to `<<He>> pants. "Not bad, <<pcpetname 'Gwylan' 'name'>>."`>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<set _gwyText to `<<He>> smiles. "Trying to take care of me? Alright, go on."`>> <<else>> <<set _gwyText to `<<He>> giggles. "What do you think you're doing, getting all handsy with me?"`>> <</if>> <<elseif $speechpregnant is 1 and $settings.pregnancySpeechEnabled and !$gwylanUniqueComments.includes("pregnant")>> <<set $gwylanUniqueComments.pushUnique("pregnant")>> <<set _gwyText to `<<He>> giggles. "What a lovely blessing. It must be nice."`>> <<elseif $speechleglock is 1 and !$gwylanUniqueComments.includes("leglock")>> <<set $gwylanUniqueComments.pushUnique("leglock")>> <<set _gwyText to `<<He>> giggles. "Hold me tight, <<pcpetname 'Gwylan'>>."`>> <<elseif $speechscream is 1>> <<set _gwyText to `<<He>> giggles. "Be silent, <<pcpetname 'Gwylan'>>. There's no reason to scream."`>> <<elseif $speechwheeze is 1>> <<set _gwyText to `<<He>> giggles. "Shhhh. Don't try to speak."`>> <<elseif $speechpenisbig is 1 and !$gwylanUniqueComments.includes("big_pp")>> <<set $gwylanUniqueComments.pushUnique("big_pp")>> <<set _gwyText to `<<He>> puts <<his>> hand to <<his>> lips. "It's quite large, but I can handle it."`>> <<elseif $speechmasturbate is 1 and !$gwylanUniqueComments.includes("masturbate")>> <<set $gwylanUniqueComments.pushUnique("masturbate")>> <<set _gwyText to `<<He>> giggles. "Move your hands, let me take care of it."`>> <<elseif $speechheadbreasts is 1 and !$gwylanUniqueComments.includes("head_breasts")>> <<set $gwylanUniqueComments.pushUnique("head_breasts")>> <<set _gwyText to `<<He>> giggles. "Are you warm in there? What's that? I can't hear you."`>> <<elseif $speechfacesit is 1 and !$gwylanUniqueComments.includes("facesit")>> <<set $gwylanUniqueComments.pushUnique("facesit")>> <<set _gwyText to `<<He>> giggles. "Come on, grab my hips. Work for it."`>> <<elseif $speechvaginaescape is 1>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<set _gwyText to `<<He>> huffs. "Get back here, I'm not done."`>> <<else>> <<set _gwyText to `<<He>> giggles. "Is it too much?"`>> <</if>> <<elseif $speechpenisescape is 1>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<set _gwyText to `<<He>> huffs. "Put it back in."`>> <<else>> <<set _gwyText to `<<He>> giggles. "Get back in there, silly <<girl>>."`>> <</if>> <<elseif $combat_silenced and !$gwylanUniqueComments.includes("silenced")>> <<set $gwylanUniqueComments.pushUnique("silenced")>> <<set _gwyText to `"You should have listened, naughty <<girl>>."`>> <<elseif $speechaskrough is 1>> <<set _gwyText to `<<He>> giggles. "How can I say no? I'll make sure the pain is sweet."`>> <<elseif $speechbeat is 1>> <<set _gwyText to either( `<<He>> frowns. "Stop resisting me, <<pcpetname 'Gwylan' 'naughty'>>."`, `<<He>> frowns. "Just submit, and the pain will all go away."`, `<<He>> frowns. "Why are you struggling? Isn't this what you wanted, dear?"`, `<<He>> frowns. "I take no pleasure in this, dear, so please. Stop this senseless struggling."`, `<<He>> frowns. "I'm sorry. I'll give you something for the pain when we're done."`, )>> <<elseif $speechgrowl is 1>> <<set _gwyText to `<<He>> giggles. "Oh, what a thrilling growl. Show me those fangs again." <<npcincr Gwylan lust 1>><<glust>><br>`>> <<elseif $speechgrowlheat is 1 or $speechgrowlrut is 1>> <<set _gwyText to `<<He>> giggles. "Oh, what a lovely growl. Shh, I'll make you feel better." <<npcincr Gwylan lust 1>><<glust>><br>`>> <<elseif $speechplead is 1>> <<set _gwyText to `<<He>> giggles. "Hush, dear."`>> <<elseif $speechdemand is 1 and $hypnosis_traits.devotion gte 2 and !$combat_silenced>> <<if $gwylanUniqueComments.includes("demand")>> <<set _gwyText to `<br><span class="red"><<He>> stops and glares at you with an unreadable expression.</span> "I warned you." You open your mouth, only for <<his>> finger to trace up your neck. <<if $hallucinations gte 2>> <<hypnosisText "<span class='red'>A blue mist leaves your mouth, which <<he>> catches in <<his>> hand with a gentle grasp. Try as you might, no noise comes out, as if your voice had been stolen.</span>">> <<else>> <<hypnosisText "<span class='red'>Your voice catches in your throat. Try as you might, you can't say anything.</span>">> <</if>> <br> <<gwylanHypnoName "cap">> smiles again. "I'll give it back if you behave. Now be a <<pcpetname "Gwylan" "good">> and shush." <<He>> gets back into position and resumes. <<set $combat_silenced to true>> <<if $consensual is 1>> <<set $consensual to 0>> <<molested>><<controlloss>> <</if>><br><br>`>> <<else>> <<set $gwylanUniqueComments.pushUnique("demand")>> <<set _gwyText to `<<He>> giggles. "<<gwylanCommand "Hold your tongue, dear, or I'll hold it for you.">>"`>> <</if>> <<elseif $speechdemand is 1 and !$gwylanUniqueComments.includes("demand")>> <<set $gwylanUniqueComments.pushUnique("demand")>> <<set _gwyText to `<<He>> giggles. "Hold that brave face, dear. I want to remember it."`>> <<elseif $speechforgive is 1>> <<set _gwyText to `<<He>> frowns, and goes silent for a moment. "Do I deserve your forgiveness?"`>> <<elseif $speechhit is 1>> <<if $rng gte 100>> <<set _gwyText to `<<He>> recoils as you strike <<him>>. "Bweh!"`>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<set _gwyText to `<<He>> pants through the arousal and pain. "N-<<pcpetname 'Gwylan' 'naughty'>>!"`>> <<else>> <<set _gwyText to `<<He>> winces. "Ouch! Oh, <<pcpetname 'Gwylan' 'bad'>>."`>> <</if>> <<elseif $speechvaginaflaunt is 1 and $gwylanComments.flaunt is 0>> <<set $gwylanComments.flaunt to 3>> <<set _gwyText to either( `<<He>> blushes. "Enjoying the view?"`, `<<He>> giggles. "I feel your eyes all over me, and I like it."`, `<<He>> giggles. "Do I look good?"` )>> <<else>> <<cleareventpool>> <<if !$gwylanUniqueComments.includes("clothes")>> <<if $worn.upper.name is "chain tunic">> <<addinlineevent "gwylan_speech_clothes_chain_tunic" 3>> <<set $gwylanUniqueComments.pushUnique("clothes")>> <<set _gwyText to `<<He>> runs <<his>> hands over the ` + $worn.upper.name + `. <<He>> almost seems nostalgic. <<His>> touch softens, becoming more tender.`>> <<set $enemyanger -= 25>> <</addinlineevent>> <</if>> <<if $worn.head.name is "sage witch hat">> <<addinlineevent "gwylan_speech_clothes_sage_witch_hat">> <<set $gwylanUniqueComments.pushUnique("clothes")>> <<set _gwyText to `<<He>> runs a hand over the brim of your ` + $worn.head.name + ` and smiles. "You look good in this! You should wear it more."`>> <</addinlineevent>> <</if>> <<if $worn.upper.type.includes("holy")>> <<addinlineevent "gwylan_speech_clothes_holy">> <<set $gwylanUniqueComments.pushUnique("clothes")>> <<set _gwyText to `<<He>> runs <<his>> hands over your ` + $worn.upper.name + `. "If this is what you want, I'll help you get a little dirty."`>> <</addinlineevent>> <</if>> <<if $worn.neck.name is "holy pendant">> <<addinlineevent "gwylan_speech_clothes_holy_pendant">> <<set $gwylanUniqueComments.pushUnique("clothes")>> <<set _gwyText to `<<He>> looks at your ` + $worn.upper.name + ` and giggles. "I hope you're not basophobic."`>> <</addinlineevent>> <</if>> <<if $worn.neck.name is "stone pendant">> <<addinlineevent "gwylan_speech_clothes_stone_pendant">> <<set $gwylanUniqueComments.pushUnique("clothes")>> <<if $gwylanTalked.includes("stone pendant")>> <<set _gwyText to `<<He>> looks at your ` + $worn.upper.name + ` and smiles. "I'm glad you found an intact one. I thought the stone pendants were all destroyed."`>> <<else>> <<set _gwyText to `<<He>> looks at your ` + $worn.upper.name + `. "Where did you find that? You'd better tell me later."`>> <</if>> <</addinlineevent>> <</if>> <<if $worn.neck.name is "dark pendant">> <<addinlineevent "gwylan_speech_clothes_dark_pendant">> <<set $gwylanUniqueComments.pushUnique("clothes")>> <<set _gwyText to `<<He>> looks at your ` + $worn.upper.name + `. "I hope you know what you're doing with that."`>> <</addinlineevent>> <</if>> <<if $worn.lower.name is "naked" and playerHasStrapon()>> <<addinlineevent "gwylan_speech_clothes_strap">> <<set $gwylanUniqueComments.pushUnique("clothes")>> <<set _gwyText to `<<He>> looks at your <<penisSimple>>. "Sure, why not."`>> <</addinlineevent>> <</if>> <<if $exposed gte 2>> <<addinlineevent "gwylan_speech_clothes_naked">> <<set $gwylanUniqueComments.pushUnique("clothes")>> <<set _gwyText to `<<He>> looks over your body, and giggles. "I want to feel your skin on mine."`>> <</addinlineevent>> <</if>> <<for $_labelClothes, $_valueClothes range $worn>> <<if setup.specialClothes.some(item => item.name === $_valueClothes.name and !$gwylanTalked.includesAny(item.sets))>> <<addinlineevent "gwylan_speech_clothes_special" 4>> <<set $gwylanUniqueComments.pushUnique("clothes")>> <<set $_plural to $worn[$_labelClothes].plural ? "those" : "that">> <<set _gwyText to either( `<<He>> looks at your ` + $worn[$_labelClothes].name + `. "Where did you find ` + $_plural + `? You'd better tell me later."`, `<<He>> looks at your ` + $worn[$_labelClothes].name + `. "I see a story behind ` + $_plural + `. Come talk to me about it later."` )>> <</addinlineevent>> <<break>> <</if>> <</for>> /* Todo: Gwylan - Lots more clothing comments */ <</if>> <<addinlineevent "gwylan_speech_neutral_1">> <<set _gwyText to `<<He>> whispers. "You can just lay there, and I'll take care of you."`>> <</addinlineevent>> <<addinlineevent "gwylan_speech_neutral_2">> <<set _gwyText to `<<He>> whispers. "Share your burden with me."`>> <</addinlineevent>> <<if $gwylanSeen.includes("ritual_sex") and !$gwylanSeen.includes("partners")>> <<addinlineevent "gwylan_speech_kiss">> <<set _gwyText to `<<He>> speaks. "Remember, no kissing."`>> <</addinlineevent>> <</if>> <<if $enemyanger gte 15>> <<addinlineevent "gwylan_speech_anger">> <<set _gwyText to `"Just hold still and let me work."`>> <</addinlineevent>> <</if>> <<if $consensual isnot 1 and $enemyanger gte 20>> <<addinlineevent "gwylan_speech_rape_1" 3>> <<set _gwyText to `<<He>> speaks. "Don't try to resist, dear."`>> <</addinlineevent>> <<addinlineevent "gwylan_speech_rape_2" 3>> <<set _gwyText to `<<He>> speaks. "Just give in to me. I'll make everything okay."`>> <</addinlineevent>> <<addinlineevent "gwylan_speech_rape_3" 3>> <<set _gwyText to `<<He>> speaks. "Shh, don't think about it. Just keep your eyes on mine."`>> <</addinlineevent>> <<addinlineevent "gwylan_speech_rape_4" 3>> <<set _gwyText to `<<He>> speaks. "Sink deeper with me. The pain will go away."`>> <</addinlineevent>> <<addinlineevent "gwylan_speech_rape_5" 3>> <<set _gwyText to `<<He>> speaks. "We all have to suffer a little."`>> <</addinlineevent>> <<if $gwylanSeen.includes("yearning")>> <<addinlineevent "gwylan_speech_rape_6" 3>> <<set _gwyText to `<<He>> speaks. "You owe me this much after what you did, dear."`>> <</addinlineevent>> <<addinlineevent "gwylan_speech_rape_7" 4>> <<set _gwyText to `<<He>> speaks. "Your kiss poisoned me. You will take responsibility."`>> <</addinlineevent>> <</if>> <<if $gwylanSeen.includes("romance")>> <<addinlineevent "gwylan_speech_rape_8" 3>> <<set _gwyText to `<<He>> speaks. "Forever means forever, dear. Through sickness and health."`>> <</addinlineevent>> <</if>> <</if>> <<if $combat_silenced>> <<addinlineevent "gwylan_speech_silenced" 2>> <<set _gwyText to `<<He>> giggles. "Aww, you look like you have something to say. Don't worry, your lovely voice is safe with me."`>> <</addinlineevent>> <</if>> <<if _gwylanTF.known is true and _gwylanTF.tail is "revealed">> <<if _gwylanStatus.includes("heat")>> <<addinlineevent "gwylan_speech_tf_heat">> <<set _gwyText to `<<His>> face is deeply flushed, and <<he>> lets out a low whine. You wonder if <<hes>> in <<if C.npc.Gwylan.pronoun is 'm'>>rut<<else>>heat<</if>>.`>> <</addinlineevent>> <</if>> <<addinlineevent "gwylan_speech_tf_ears">> <<set _gwyText to `One of <<his>> fox ears twitches.`>> <</addinlineevent>> <<addinlineevent "gwylan_speech_tf_tail">> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<set _gwyText to `<<His>> tail sways back and forth quickly.`>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<set _gwyText to `<<His>> tail sways back and forth.`>> <<else>> <<set _gwyText to `<<His>> tail sways back and forth slowly.`>> <</if>> <</addinlineevent>> <</if>> /* Todo: Gwylan - Lots more misc comments */ <<addinlineevent "gwylan_speech_silent" 15>> <<set _gwyText to ` `>> /* Say nothing */ <</addinlineevent>> <<runeventpool>> <</if>> <<if $gwylanComments>> <<set _keys to Object.keys($gwylanComments)>> <<for $_i to 0; $_i lt _keys.length; $_i++>> <<if $gwylanComments[_keys[$_i]] gt 0>> <<set $gwylanComments[_keys[$_i]]-->> <</if>> <</for>> <</if>> <</widget>><<widget "speech-sydney">> <<set _sydney to statusCheck("Sydney")>><<rng>> <<if !$sydneyComments>> <<set $sydneyComments to {}>> <<set $sydneyComments.penetrated to 0>> <<set $sydneyComments.mouth to 0>> <<set $sydneyComments.trib to 0>> <<set $sydneyComments.imminent to 0>> <<set $sydneyComments.chastity to 0>> <<set $sydneyComments.touch to 0>> <<set $sydneyComments.fondle to 0>> <<set $sydneyComments.flaunt to 0>> <<set $sydneyUniqueComments to []>> <</if>> <<if $speechNPCPenisVirgin is 1 or $speechNPCVaginaVirgin is 1>> <<if $speechpenisvirgin is 1 or $speechvaginavirgin is 1 or $speechanusvirgin is 1>> <<if _sydneyStatus.includes("corrupt")>> <<if $sydneySeen.includes("corruptroom")>> <<set _sydneyText to `<<He>> moans, looking to you with pure ecstasy. "The feeling of you ruining me gets better each time. We belong to each other, now and forever!" <<He>> holds on to you tight. <<set $corruptionEvent to 1>><<npcincr Sydney purity -5>><<llspurity>>`>> <<else>> <<set _sydneyText to `<<He>> moans, looking to you with pure ecstasy. "You did it. You defiled me at last. We belong to each other forever now!" <<He>> holds on to you tight. <<set $corruptionEvent to 1>><<npcincr Sydney purity -20>><<lllspurity>>`>> <</if>> <<else>> <<if $templePromised is "Sydney">> <<set _sydneyText to `<<He>> gasps, looking to you with pure ecstasy. "We... we did it... I'm so happy..." <<He>> holds on to you tightly. "This means we're bound together forever... right?" <<npcincr Sydney purity -5>><<llspurity>>`>> <<else>> <<set _sydneyText to `<<He>> gasps, looking to you with pure ecstasy. "We shouldn't be doing this... so why do I feel so happy...?" <<He>> holds on to you tightly. "This means we're bound together forever... right?" <<set $corruptionEvent to 1>><<npcincr Sydney purity -20>><<lllspurity>>`>> <</if>> <</if>> <<else>> <<if _sydneyStatus.includes("corrupt")>> <<if $sydneySeen.includes("corruptroom")>> <<set _sydneyText to `<<He>> moans, looking to you with pure ecstasy. "The feeling of you ruining me gets better every time. I belong to you, now and forever!" <<He>> holds on to you tightly. <<set $corruptionEvent to 1>><<npcincr Sydney purity -5>><<llspurity>>`>> <<else>> <<set _sydneyText to `<<He>> moans, looking to you with pure ecstasy. "You did it. You defiled me at last. We belong to each other forever now!" <<He>> holds on to you tight. <<set $corruptionEvent to 1>><<npcincr Sydney purity -20>><<lllspurity>>`>> <</if>> <<else>> <<if $templePromised is "Sydney">> <<set _sydneyText to `<<He>> gasps, looking to you with pure ecstasy. "We... we did it... I'm so happy..." <<He>> holds on to you tightly. "Even if I wasn't your first... this means we're bound together forever... right?" <<npcincr Sydney purity -5>><<llspurity>>`>> <<else>> <<set _sydneyText to `<<He>> gasps, looking to you with pure ecstasy. "We shouldn't be doing this... so why do I feel so happy...?" <<He>> holds on to you tightly. "It's okay that I wasn't your first, as long as I'm your last!" <<set $corruptionEvent to 1>><<npcincr Sydney purity -20>><<lllspurity>>`>> <</if>> <</if>> <</if>> <<elseif $speechNPCAnusVirgin is 1>> <<if $speechpenisvirgin is 1>> <<if _sydneyStatus.includes("corrupt")>> <<set _sydneyText to `<<He>> moans. "This is your first time doing this too, isn't it? Don't slow down. Please!" <<He>> wraps <<his>> legs around you.`>> <<else>> <<set _sydneyText to `<<He>> gasps. "Are... are you sure we're still pure...? It feels... too good..." <<He>> holds on to you tightly.`>> <</if>> <<else>> <<if _sydneyStatus.includes("corrupt")>> <<set _sydneyText to `<<He>> moans. "Woah, I never expected it to feel like that... keep going!" <<He>> wraps <<his>> legs around you.`>> <<else>> <<set _sydneyText to `<<He>> gasps. "Are... are you sure I'm still pure...? It feels... too good..." <<He>> holds on to you tightly.`>> <</if>> <</if>> <<elseif $speechmouthvirgin is 1>> <<if _sydneyStatus.includes("corrupt")>> <<set _sydneyText to `<<He>> moans and places a hand on your head. "This is your first time doing this, isn't it? You're doing great."`>> <<else>> <<set _sydneyText to `<<He>> gasps. "Is... is this your first time doing thi—" <<He>> stifles further lewd noises by placing <<his>> hands over <<his>> mouth.`>> <</if>> <<elseif $speechNPCKissVirgin is 1>> <<set _sydneyText to `<<He>> gazes at you lovingly. "That was my first kiss..." <<he>> giggles.`>> <<elseif $speechhermaroused is 1>> <<if _sydneyStatus.includes("corrupt")>> <<if _sydney.gender is "h">> <<set _sydneyText to `<<He>> gasps. "Woah! <<sydneyMum>> always told me I was special, but you have both too!"`>> <<else>> <<set _sydneyText to `<<He>> gasps. "Woah! <<sydneyMum>> never told me that was possible."`>> <</if>> <<else>> <<if _sydney.gender is "h">> <<set _sydneyText to `<<He>> gasps. "You... have both too? I thought I was the only one!"`>> <<else>> <<set _sydneyText to `<<He>> gasps. "B...both? I didn't know that was possible!"`>> <</if>> <</if>> <<elseif $speechcrossdressaroused is 1>> <<if _sydneyStatus.includes("corrupt")>> <<set _sydneyText to `<<He>> gasps. "All this time, you were a <<pcSex>>? Well, that doesn't change how I feel about you."`>> <<else>> <<set _sydneyText to `<<He>> gasps. "You're... a <<pcSex>>? Th-that's okay! I don't think of you any differently!"`>> <</if>> <<elseif $speechnamedrop is 1 and $sydneyromance is 1>> <<set $speechnamedrop to 0>> <<switch _loveInterest>> <<case "Black Wolf" "Great Hawk">> <<set _sydneyText to `<<He>> balks. "An... animal? What?"`>> <<case "Whitney">> <<set _sydneyText to `<<He>> balks. "H... <<nnpc_him "Whitney">>?!"`>> <<case "Robin" "Kylar">> <<set _sydneyText to `<<He>> freezes. "I... thought you were just friends. You mean...?"`>> <<default>> <<set _sydneyText to `<<He>> freezes. "Wh... who? Who is it?!"`>> <</switch>> <<npcincr Sydney love -10>><<llllove>> <<elseif $speechsextoy is 1>> <<set $speechsextoy to 0>> <<set _sexToy to ($rightarm is "heldSexToy" and $leftarm is "heldSexToy" ? "sex toys" : "sex toy")>> <<if _sydneyStatus.includes("corrupt")>> <<set _sydneyText to `<<He>> looks at your <<print _sexToy>> and grins. "<<print either("Oh, I'd like nothing more than to test that out with you.","You got that on a discount, right?")>>"`>> <<elseif _sydneyStatus.includes("pure")>> <<set _sydneyText to `<<He>> looks at your <<print _sexToy>> and blushes. "<<print either("Oh, that's from <<sydneymum>>'s store!","...How do you use that one?")>>"`>> <<else>> <<set _sydneyText to `<<He>> looks at your <<print _sexToy>> and blushes. "This feels wrong, but I don't want to stop."`>> <</if>> <<elseif $speechcum is 1>> <<if $speechspank is 1>> <<switch _sydneyStatus>> <<case "pure" "pureLust">> <<set _sydneyText to `<<He>> looks down at you with confusion. "This is supposed to be painful, what... what is this?" <<npcincr Sydney purity -2>><<lspurity>>`>> <<case "corrupt" "corruptLust">> <<set _sydneyText to `<<He>> smiles at you and giggles. "Seeing you struggle and writhe just makes it better." <<npcincr Sydney purity -2>><<lspurity>>`>> <<default>> <<set _sydneyText to `<<He>> looks to you with a mixture of panic and confusion as you climax. <<npcincr Sydney purity -2>><<lspurity>>`>> <</switch>> <<else>> <<switch _sydneyStatus>> <<case "pure" "pureLust">> <<if $sydneySeen.includes("player climax")>> <<set _sydneyText to `<<He>> smiles at you. "I... I did it! I made you..." <<he>> giggles. <<npcincr Sydney purity -2>><<lspurity>>`>> <<else>> <<set _sydneyText to `<<His>> eyes widen. "A-are you okay? You're shaking!" You manage to nod in response, and <<he>> calms down. <<npcincr Sydney purity -5>><<llspurity>>`>> <</if>> <<case "corrupt" "corruptLust">> <<set _sydneyText to `<<He>> smiles at you and giggles. "My turn, now." <<npcincr Sydney purity -2>><<lspurity>>`>> <<default>> <<set _sydneyText to `<<He>> lovingly clings to you as you tremble. <<npcincr Sydney purity -2>><<lspurity>>`>> <</switch>> <</if>> <<set $sydneySeen.pushUnique("player climax")>> <<elseif $speechgenitals is 1 and playerChastity() and !$sydneySeen.includes("chastity")>> <<if $worn.genitals.name is "chastity parasite">> <!-- +corruption/-purity but never +lust --> <<set _sydneyText to `<<His>> eyebrows raise in surprise upon seeing your <<printChastity>>. <<set _lustincrdisplay to 1>><<set _lustincr to 1>><<npcincr Sydney purity -2>><<lspurity>>`>> <<else>> <<set _sydneyText to `<<His>> eyebrows raise in surprise upon seeing your <<printChastity>>. <<npcincr Sydney purity 2>><<gspurity>>`>> <</if>> <<set $sydneySeen.pushUnique("chastity")>> <<set $sydneyUniqueComments.pushUnique("chastity")>> <<elseif $speechpenispenetrated is 1 and $sydneyComments.penetrated is 0>> <<set $sydneyComments.penetrated to 2>> <<switch _sydneyStatus>> <<case "pure" "pureLust">> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<set _sydneyText to `<<He>> barely manages to speak. "If... if you... I'm going to..."`>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<set _sydneyText to `<<He>> speaks. "Th-the temple will punish me for this... but I don't care anymore!"`>> <<else>> <<set _sydneyText to `<<He>> speaks. "Y...you're really inside..."`>> <</if>> <<case "corrupt" "corruptLust">> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<if $rng gte 81 and $settings.pregnancySpeechEnabled>> <<set _sydneyText to `<<He>> grabs you by the head and pulls your face close to <<hers>>. "I want you to put a child in me. Now."`>> <<else>> <<set _sydneyText to `<<He>> moans. "Harder. Harder! I'm almost there!"`>> <</if>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<set _sydneyText to `<<He>> speaks. "This is worth any punishment the temple will do to me."`>> <<else>> <<set _sydneyText to `<<He>> speaks. "I love the feeling of you inside me."`>> <</if>> <<default>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<set _sydneyText to `<<He>> barely manages to speak. "I think I'm... getting close...!"`>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<set _sydneyText to `<<He>> speaks. "We're both sinners now, aren't we?"`>> <<else>> <<set _sydneyText to `<<He>> speaks. "I think I'm getting used to this."`>> <</if>> <</switch>> <<elseif $speechotheranuspenetrated is 1 and $sydneyComments.penetrated is 0>> <<set $sydneyComments.penetrated to 2>> <<switch _sydneyStatus>> <<case "pure" "pureLust">> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<set _sydneyText to `<<He>> barely manages to speak. "If... if you... I'm going to..."`>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<set _sydneyText to `<<He>> speaks. "This... still feels so wrong... but..."`>> <<else>> <<set _sydneyText to `<<He>> speaks. "Y...you're really inside..."`>> <</if>> <<case "corrupt" "corruptLust">> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<set _sydneyText to `<<He>> moans. "Harder. Harder! I'm almost there!"`>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<set _sydneyText to `<<He>> speaks. "I can't believe I never tried this. You've really opened my eyes."`>> <<else>> <<set _sydneyText to `<<He>> speaks. "I love the feeling of you inside me."`>> <</if>> <<default>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<set _sydneyText to `<<He>> barely manages to speak. "I think I'm... getting close...!"`>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<set _sydneyText to `<<He>> speaks. "We're still pure, right? This doesn't count?"`>> <<else>> <<set _sydneyText to `<<He>> speaks. "I think I'm getting used to this."`>> <</if>> <</switch>> <<elseif $speechvaginapenetrated is 1 and $sydneyComments.penetrated is 0>> <<set $sydneyComments.penetrated to 2>> <<switch _sydneyStatus>> <<case "pure" "pureLust">> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<set _sydneyText to `<<He>> barely manages to speak. "Sh... should I... pull out?"`>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<set _sydneyText to `<<He>> speaks. "Th-the temple will punish me for this... but I don't care anymore!"`>> <<else>> <<set _sydneyText to `<<He>> speaks. "I... I'm really inside..."`>> <</if>> <<case "corrupt" "corruptLust">> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<if $rng gte 81 and $settings.pregnancySpeechEnabled>> <<set _sydneyText to `<<He>> grabs you by the head and pulls your face close to <<hers>>. "I want to put a child in you."`>> <<else>> <<set _sydneyText to `<<He>> moans. "I'm almost there! Are you ready?"`>> <</if>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<set _sydneyText to `<<He>> speaks. "This is worth any punishment the temple will do to me."`>> <<else>> <<set _sydneyText to `<<He>> speaks. "I love the feeling of being inside you."`>> <</if>> <<default>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<set _sydneyText to `<<He>> barely manages to speak. "I think I'm... getting close...!"`>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<set _sydneyText to `<<He>> speaks. "We're both sinners now, aren't we?"`>> <<else>> <<set _sydneyText to `<<He>> speaks. "I'm getting used to this feeling."`>> <</if>> <</switch>> <<elseif $speechanuspenetrated is 1 and $sydneyComments.penetrated is 0>> <<set $sydneyComments.penetrated to 2>> <<switch _sydneyStatus>> <<case "pure" "pureLust">> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<if $settings.pregnancySpeechEnabled and !$player.vaginaExist and _sydney.gender is "m" and knowsAboutAnyPregnancy("pc","Sydney")>> <<set _sydneyText to `<<He>> barely manages to speak. "Sh... should I... pull out?"`>> <<else>> <<set _sydneyText to `<<He>> barely manages to speak. "If... if you... I'm going to..."`>> <</if>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<set _sydneyText to `<<He>> speaks. "This... still feels so wrong... but..."`>> <<else>> <<set _sydneyText to `<<He>> speaks. "I...I'm really inside..."`>> <</if>> <<case "corrupt" "corruptLust">> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<if $rng gte 81 and $settings.pregnancySpeechEnabled and !$player.vaginaExist and _sydney.gender is "m" and knowsAboutAnyPregnancy("pc","Sydney")>> <<set _sydneyText to `<<He>> grabs you by the head and pulls your face close to <<hers>>. "I want to put a child in you."`>> <<else>> <<set _sydneyText to `<<He>> moans. "I'm almost there! Are you ready?"`>> <</if>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<set _sydneyText to `<<He>> speaks. "Are you sure this feels good for you?"`>> <<else>> <<set _sydneyText to `<<He>> speaks. "I love being inside you."`>> <</if>> <<default>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<set _sydneyText to `<<He>> barely manages to speak. "I think I'm... getting close...!"`>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<set _sydneyText to `<<He>> speaks. "We're still pure, right? This doesn't count?"`>> <<else>> <<set _sydneyText to `<<He>> speaks. "I'm getting used to this feeling."`>> <</if>> <</switch>> <<elseif $speechmouthpenetrated is 1 and $sydneyComments.penetrated is 0>> <<set $sydneyComments.penetrated to 2>> <<switch _sydneyStatus>> <<case "pure" "pureLust">> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<set _sydneyText to `<<He>> barely manages to speak. "Ah... something's coming..."`>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<set _sydneyText to `<<He>> speaks. "I'm starting to feel weird..."`>> <<else>> <<set _sydneyText to `<<He>> giggles. "This tickles!"`>> <</if>> <<case "corrupt" "corruptLust">> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<set _sydneyText to `<<He>> moans, grabbing the back of your head. "I'm almost there! Are you ready?"`>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<set _sydneyText to `<<He>> speaks. "I hope you don't plan on wasting any."`>> <<else>> <<set _sydneyText to `<<He>> speaks. "You look so cute down there."`>> <</if>> <<default>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<set _sydneyText to `<<He>> barely manages to speak. "I think I'm... getting close...!"`>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<set _sydneyText to `<<He>> speaks. "You can breathe, right? I'm not hurting you?"`>> <<else>> <<set _sydneyText to `<<He>> speaks. "Your mouth is so warm."`>> <</if>> <</switch>> <<elseif ($speechvaginamouth + $speechanallick + $speechanalkiss + $speechmouthotheranus + $speechthroat + $speechfacesit) gte 1 and $sydneyComments.mouth is 0>> <<set $sydneyComments.mouth to 3>> <<switch _sydneyStatus>> <<case "pure" "pureLust">> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<set _sydneyText to `<<He>> barely manages to speak. "Ah... something's coming..."`>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<set _sydneyText to `<<He>> speaks. "I'm starting to feel weird..."`>> <<else>> <<set _sydneyText to `<<He>> giggles. "This tickles!"`>> <</if>> <<case "corrupt" "corruptLust">> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<set _sydneyText to `<<He>> moans, grabbing the back of your head. "I'm almost there! Are you ready?"`>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<set _sydneyText to `<<He>> speaks. "Lick harder."`>> <<else>> <<set _sydneyText to `<<He>> speaks. "You look so cute down there."`>> <</if>> <<default>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<set _sydneyText to `<<He>> barely manages to speak. "I think I'm... getting close...!"`>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<set _sydneyText to `<<He>> speaks. "You can breathe, right? I'm not hurting you?"`>> <<else>> <<set _sydneyText to `<<He>> speaks. "Your tongue is so warm."`>> <</if>> <</switch>> <<elseif ($speechvaginavagina + $speechtribentrance) gte 1 and $sydneyComments.trib is 0>> <<set $sydneyComments.trib to 3>> <<switch _sydneyStatus>> <<case "pure" "pureLust">> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<set _sydneyText to `<<He>> barely manages to speak. "If... if you... I'm going to..."`>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<set _sydneyText to `<<He>> speaks. "This... still feels so wrong... but..."`>> <<else>> <<set _sydneyText to `<<He>> speaks. "We're... really touching down there..."`>> <</if>> <<case "corrupt" "corruptLust">> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<set _sydneyText to `<<He>> moans. "I'm almost there! Are you ready?"`>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<set _sydneyText to `<<He>> speaks. "Are you sure this feels good for you?"`>> <<else>> <<set _sydneyText to `<<He>> speaks. "I love being this close together."`>> <</if>> <<default>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<set _sydneyText to `<<He>> barely manages to speak. "I think I'm... getting close...!"`>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<set _sydneyText to `<<He>> speaks. "We're still pure, right? This doesn't count?"`>> <<else>> <<set _sydneyText to `<<He>> speaks. "I'm getting used to this feeling."`>> <</if>> <</switch>> <<elseif ($speechvaginaimminent + $speechpenisimminent + $speechvaginaentrance + $speechpenisentrance) gte 1 and !_sydneyChastity and $sydneyComments.imminent is 0>> <<set $sydneyComments.imminent to 3>> <<switch _sydneyStatus>> <<case "pure" "pureLust" "neutral" "neutralLust">> <<if _sydneyVirgin>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<set _sydneyText to `<<He>> barely manages to speak. "D...don't... put it in..."`>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<set _sydneyText to `<<He>> speaks. "J... just the tip, alright?"`>> <<else>> <<set _sydneyText to `<<He>> giggles nervously. "This is dangerous..."`>> <</if>> <<else>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<set _sydneyText to `<<He>> speaks through gasps and moans. "J...just put it in already. I can't take it anymore!"`>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<set _sydneyText to `<<He>> smiles at you with pleading eyes and spreads <<his>> legs further. "Wh... what are you waiting for...?"`>> <<else>> <<set _sydneyText to `<<He>> giggles. "G... go ahead. Just be gentle, please."`>> <</if>> <</if>> <<case "corrupt" "corruptLust">> <<if _sydneyVirgin>> <<set _sydneyText to `<<He>> moans. "Do it. Deflower me. Make me yours!"`>> <<else>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<set _sydneyText to `<<He>> moans. "Stop teasing me!"`>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<if $speechvaginaimminent is 1>> <<set _sydneyText to `<<He>> speaks. "I want to be inside you."`>> <<else>> <<set _sydneyText to `<<He>> speaks. "I want you inside me."`>> <</if>> <<else>> <<set _sydneyText to `<<He>> speaks. "I want to put it in."`>> <</if>> <</if>> <</switch>> <<elseif ($speechotheranusimminent + $speechotheranusentrance) gte 1 and !_sydney.chastity.anus.includes("shield") and $sydneyComments.imminent is 0>> <<set $sydneyComments.imminent to 2>> <<switch _sydneyStatus>> <<case "pure" "pureLust" "neutral" "neutralLust">> <<if _sydney.virginity.anal is true>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<set _sydneyText to `<<He>> barely manages to speak. "I... think I'm ready..."`>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<set _sydneyText to `<<He>> speaks. "Be gentle, please..."`>> <<else>> <<set _sydneyText to `<<He>> giggles nervously. "I've never even though about doing it this way..."`>> <</if>> <<else>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<set _sydneyText to `<<He>> speaks through gasps and moans. "J...just put it in already. I can't take it anymore!"`>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<set _sydneyText to `<<He>> smiles at you with pleading eyes and spreads <<his>> legs further. "Wh... what are you waiting for...?"`>> <<else>> <<set _sydneyText to `<<He>> giggles. "At least it's still pure this way."`>> <</if>> <</if>> <<case "corrupt" "corruptLust">> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<set _sydneyText to `<<He>> moans. "Stop teasing me!"`>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<set _sydneyText to `<<He>> speaks. "I want you inside me."`>> <<else>> <<set _sydneyText to `<<He>> speaks. "I want to put it in."`>> <</if>> <</switch>> <<elseif ($speechanusimminent + $speechanusentrance) gte 1 and $sydneyComments.imminent is 0>> <<set $sydneyComments.imminent to 2>> <<switch _sydneyStatus>> <<case "pure" "pureLust" "neutral" "neutralLust">> <<if _sydneyVirgin>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<set _sydneyText to `<<He>> barely manages to speak. "D...don't... put it in..."`>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<set _sydneyText to `<<He>> speaks. "J... just the tip, alright?"`>> <<else>> <<set _sydneyText to `<<He>> giggles nervously. "This is dangerous..."`>> <</if>> <<else>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<set _sydneyText to `<<He>> speaks through gasps and moans. "J...just let me put it in already! I can't take it anymore!"`>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<set _sydneyText to `<<He>> smiles at you pleadingly. "Wh... what are you waiting for...?"`>> <<else>> <<set _sydneyText to `<<He>> giggles. "G... go ahead. Just be gentle, please."`>> <</if>> <</if>> <<case "corrupt" "corruptLust">> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<set _sydneyText to `<<He>> moans. "Stop teasing me!"`>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<set _sydneyText to `<<He>> speaks. "I want to be inside you."`>> <<else>> <<set _sydneyText to `<<He>> speaks. "I want to put it in."`>> <</if>> <</switch>> <<elseif $speechspank is 1>> <<if $speechmoan is 1>> <<switch _sydneyStatus>> <<case "pure" "pureLust">> <<set _sydneyText to either( `<<He>> blushes. "Th-this is supposed to be a punishment!"`, `<<He>> blushes. "I don't understand, am I not punishing you hard enough?"`, `<<He>> blushes. "Are you... enjoying this?" <<npcincr Sydney purity -1>><<lspurity>>` )>> <<case "corrupt" "corruptLust">> <<set _sydneyText to either( `<<He>> smirks. "I knew you were into this." <<npcincr Sydney purity -1>><<lspurity>>`, `<<He>> smirks. "Naughty <<girls>> get punished, and I love it when you're naughty." <<npcincr Sydney purity -1>><<lspurity>>`, `<<He>> smirks. "I want to savour your moans. I should spank you more often." <<npcincr Sydney purity -1>><<lspurity>>` )>> <<default>> <<set _sydneyText to either( `<<He>> pouts. "This is supposed to be discipline, you know."`, `<<He>> blushes. "Are you... into this?" <<npcincr Sydney purity -1>><<lspurity>>`, `<<He>> blushes. "This is supposed to be a punishment! Stop moaning like that!" <<npcincr Sydney purity -1>><<lspurity>>` )>> <</switch>> <<else>> <<switch _sydneyStatus>> <<case "pure" "pureLust">> <<if $sydneySeen.includes("spank") and $rng lte 10 and $location is "school">> <<set _sydneyText to `<<He>> speaks. "It's either I do this, or the <<nnpc_title "Leighton">> does, so please cooperate!"`>> <<elseif $rng lte 10 and $location is "temple">> <<set _sydneyText to `<<He>> speaks. "How dare you defile sacred ground!?"`>> <<elseif $rng lte 35>> <<set _sydneyText to `<<He>> speaks. "No one is above discipline!"`>> <<elseif $rng lte 70>> <<set _sydneyText to `<<He>> speaks. "Hold still! You need to learn your lesson!"`>> <<else>> <<set _sydneyText to `<<He>> speaks. "The pain will help you remember! Accept your punishment!"`>> <</if>> <<case "corrupt" "corruptLust">> <<if $sydneySeen.includes("spank") and $rng lte 10 and $location is "school">> <<set _sydneyText to `<<He>> speaks. "Better me than the <<nnpc_title "Leighton">>, right?"`>> <<elseif $rng lte 10 and $location is "temple">> <<set _sydneyText to `<<He>> speaks. "You've defiled a sacred place. Maybe I should defile you in return."`>> <<elseif $rng lte 35>> <<set _sydneyText to `<<He>> speaks. "I bet you're enjoying this."`>> <<elseif $rng lte 70>> <<set _sydneyText to `<<He>> speaks. "Does this make you angry? Maybe I'll let you do the same to me."`>> <<else>> <<set _sydneyText to `<<He>> speaks. "I won't stop until you enjoy the pain."`>> <</if>> <<default>> <<if $sydneySeen.includes("spank") and $rng lte 10 and $location is "school">> <<set _sydneyText to `<<He>> speaks. "It's either I do this, or the <<nnpc_title "Leighton">> does, so please cooperate!"`>> <<elseif $rng lte 10 and $location is "temple">> <<set _sydneyText to `<<He>> speaks. "How dare you defile sacred ground!?"`>> <<elseif $rng lte 35>> <<set _sydneyText to `<<He>> speaks. "Don't get the wrong idea, this is purely disciplinary."`>> <<elseif $rng lte 70>> <<set _sydneyText to `<<He>> speaks. "I wish you would just behave so I wouldn't have to do this, I don't like hurting you."`>> <<else>> <<set _sydneyText to `<<He>> speaks. "Jordan's taught me a thing or two about discipline, it's time for you to learn too."`>> <</if>> <</switch>> <</if>> <<elseif $speechapologise is 1>> <<switch _sydneyStatus>> <<case "pure" "pureLust" "neutral" "neutralLust">> <<set _sydneyText to `<<He>> looks confused. "Why are you sorry? Everything's okay, I promise."`>> <<case "corrupt" "corruptLust">> <<set _sydneyText to `<<He>> speaks. "I know how you can make it up to me."`>> <</switch>> <<elseif $speechapologiseno is 1>> <<switch _sydneyStatus>> <<case "pure" "pureLust" "neutral" "neutralLust">> <<set _sydneyText to `<<He>> looks confused. "You keep saying you're sorry, are you okay? We can stop if you want."`>> <<case "corrupt" "corruptLust">> <<set _sydneyText to `<<He>> speaks. "Yes, keep saying that, you look so delightfully helpless."`>> <</switch>> <<elseif $speechapologiseunforgiving is 1>> <<set _sydneyText to `<<He>> frowns. "You haven't earned forgiveness."`>> <<elseif ($speechvaginawithhold + $speechanuswithhold + $speechpeniswithhold + $speechotheranuswithhold) gte 1 and !$sydneyUniqueComments.includes("withhold")>> <<set $sydneyUniqueComments.pushUnique("withhold")>> <<switch _sydneyStatus>> <<case "pure" "pureLust" "neutral" "neutralLust">> <<set _sydneyText to `<<He>> smiles with glee. "We both have to stay pure, after all." <<npcincr Sydney purity 2>><<gspurity>>`>> <<case "corrupt" "corruptLust">> <<set _sydneyText to `<<He>> gives an exaggerated sigh, but smiles. "You're such a fucking sextease sometimes!" <<npcincr Sydney purity 2>><<gspurity>>`>> <</switch>> <<elseif $speechNPCChastity is 1 and $sydneyComments.chastity is 0>> <<set $sydneyComments.chastity to 3>> <<switch _sydneyStatus>> <<case "pure" "pureLust" "neutral" "neutralLust">> <<set _sydneyText to either( `<<He>> speaks. "Sorry about the belt, but I really need to stay safe..."`, `<<He>> speaks. "Please don't hurt yourself trying to mess with my belt."`, `<<He>> speaks. "Th... the belt's not going to make you stop loving me, is it?"` )>> <<case "corrupt" "corruptLust">> <<set _sydneyText to either( `<<He>> speaks. "I want this thing off, but I know it's for my own good."`, `<<He>> speaks. "Don't hurt yourself against the belt, it's a finger pincher."`, `<<He>> speaks. "I hope the belt's not a dealbreaker."` )>> <</switch>> <<elseif $speechchastity is 1 and !$sydneyUniqueComments.includes("chastity")>> <<set $sydneyUniqueComments.pushUnique("chastity")>> <<switch _sydneyStatus>> <<case "pure" "pureLust" "neutral" "neutralLust">> <<if $worn.genitals.name is "chastity parasite">> <<set _sydneyText to "What is that? Do you need to go to the hospital?">> <<elseif _sydneyChastity>> <<set _sydneyText to either( `<<He>> stares at your <<printChastity>>. "We're matching!"`, `<<He>> speaks. "We're both still pure if we both have chastity devices, right?"`, `<<He>> stares at your <<printChastity>>. "At least we don't have to worry since we're both protected."` )>> <<else>> <<set _sydneyText to either( `<<He>> stares at your <<printChastity>>. "You got me to remove mine, but now you have one?"`, `<<He>> stares at your <<printChastity>>. "So this is how it feels."`, `<<He>> stares at your <<printChastity>>. "Oh."` )>> <</if>> <<case "corrupt" "corruptLust">> <<if $worn.genitals.name is "chastity parasite">> <<set _sydneyText to `"I'm always up for trying new things, but that's a little freaky."`>> <<elseif _sydneyChastity>> <<set _sydneyText to either( `<<He>> speaks. "Okay, hear me out, if we smash the chastity devices together really hard..."`, `<<He>> speaks. "We need to find the keys for our chastity devices soon."`, `<<He>> stares at your <<printChastity>>. "I guess we're both just lusty sinners and can't do anything about it."` )>> <<else>> <<set _sydneyText to either( `<<He>> stares at your <<printChastity>>. "You're kidding me, right?"`, `<<He>> stares at your <<printChastity>>. "Is this a joke?"`, `<<He>> stares at your <<printChastity>>. "Oh you absolute sextease, you got me to remove mine just to—"` )>> <</if>> <</switch>> <<elseif $speechhit is 1>> <<switch _sydneyStatus>> <<case "pure" "pureLust">> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<set _sydneyText to `<<He>> winces. "H... harder..."`>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<set _sydneyText to `<<He>> winces. "You're hurting me..."`>> <<else>> <<set _sydneyText to `<<He>> winces. "Ow! Is it always this painful?"`>> <</if>> <<case "corrupt" "corruptLust">> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<set _sydneyText to `<<He>> gives you a menacing glare. "I know you can hit harder than that."`>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<set _sydneyText to `<<He>> laughs. "I love it when you're rough!"`>> <<else>> <<set _sydneyText to `<<He>> winces. "Ow! Haha, harder!"`>> <</if>> <<default>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<set _sydneyText to `<<He>> winces. "Hit me again! I like it!"`>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<set _sydneyText to `<<He>> laughs. "If you enjoy being rough, I guess I have to enjoy it too."`>> <<else>> <<set _sydneyText to `<<He>> winces. "Ow! That one really hurt!"`>> <</if>> <</switch>> <<elseif ($speechcoverface + $speechcoverpenis + $speechcovervagina) gte 1 and !$sydneyUniqueComments.includes("hide")>> <<set $sydneyUniqueComments.pushUnique("hide")>> <<switch _sydneyStatus>> <<case "pure" "pureLust">> <<set _sydneyText to `<<He>> notices your attempts to cover yourself. "A-are you nervous? That's okay, I am too."`>> <<case "corrupt" "corruptLust">> <<set _sydneyText to `<<He>> notices your attempts to cover yourself. "Remember when I was the apprehensive one? How things have changed."`>> <<default>> <<set _sydneyText to `<<He>> notices your attempts to cover yourself. "It's okay, I don't mind seeing you like this anymore. We can both trust each other, right?"`>> <</switch>> <<elseif $speechhair is 1 and !$sydneyUniqueComments.includes("hair")>> <<set $sydneyUniqueComments.pushUnique("hair")>> <<if _sydney.hairColour isnot "strawberryblond">> <<set _sydneyText to `<<He>> speaks. "I've always loved your hair. That's why I didn't hesitate to take your advice on my appearance."`>> <<else>> <<set _sydneyText to `<<He>> speaks. "I've always loved your hair."`>> <</if>> <<elseif ($speechhandjobpenis + $speechhandjobvagina + $speechcheeks + $speechthigh + $speechfeet + $speechchestrub + $speechbreastrub) gte 1 and $sydneyComments.touch is 0>> <<set $sydneyComments.touch to 3>> <<switch _sydneyStatus>> <<case "pure" "pureLust">> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<set _sydneyText to `<<He>> stifles a moan. "I... I think... something's coming..."`>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<set _sydneyText to `<<He>> gasps. "Th... this is called foreplay, right?"`>> <<else>> <<set _sydneyText to `<<He>> giggles. "I... guess this isn't too impure."`>> <</if>> <<case "corrupt" "corruptLust">> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<set _sydneyText to `<<He>> speaks through gasps and moans. "Just a little more!"`>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<set _sydneyText to `<<He>> speaks. "You're pretty good at this."`>> <<else>> <<set _sydneyText to `<<He>> lets out a clearly fake yawn. "Already bored of the foreplay."`>> <</if>> <<default>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<set _sydneyText to `<<He>> speaks through gasps and moans. "I'm getting close..."`>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<set _sydneyText to `<<He>> speaks. "I think I can handle a little more."`>> <<else>> <<set _sydneyText to `<<He>> giggles. "I wouldn't want anyone else to touch me like this."`>> <</if>> <</switch>> <<elseif $sydneyComments.fondle is 0 and ($speechfutapenis + $speechvagina + $speechclit + $speechpenis + $speechglans + $speechanus + $speechbottom) gte 1>> <<if $speechfutapenis is 1>> <<set $sydneyComments.fondle to 3>> <<if _sydney.gender is "h">> <<switch _sydneyStatus>> <<case "pure" "pureLust">> <<set _sydneyText to either( `<<He>> speaks. "Am... am I doing this right?"`, `<<He>> speaks. "It's getting harder! And... wetter."`, `<<He>> speaks. "I'm... not being too rough, am I?"` )>> <<case "corrupt" "corruptLust">> <<set _sydneyText to either( `<<He>> speaks. "I love that you've also got both sets of gear. You really are perfect."`, `<<He>> speaks. "I'll stick my fingers in your mouth after this, so you can taste yourself."`, `<<He>> speaks. "It'd be a shame if I just redirected your cumshot right into your own pussy. Then I could clone you!"`, `<<He>> speaks. "So, which one do you like more?"` )>> <<default>> <<set _sydneyText to either( `<<He>> speaks. "I never would have learned things like this, if not for you."`, `<<He>> speaks. "I think I'm getting the hang of this!"`, `<<He>> speaks. "Does it feel good when I work it like this?"` )>> <</switch>> <<else>> <!-- sydney is not a herm --> <<switch _sydneyStatus>> <<case "pure" "pureLust">> <<set _sydneyText to either( `<<He>> speaks. "Am... am I doing this right?"`, `<<He>> speaks. "It's getting harder! And... wetter."`, `<<He>> speaks. "I'm... not being too rough, am I?"` )>> <<case "corrupt" "corruptLust">> <<set _sydneyText to either( `<<He>> speaks. "I love that you've got both sets of gear. You really are perfect."`, `<<He>> speaks. "It'd be a shame if I just redirected your cumshot right into your own pussy. Then I could clone you!"`, `<<He>> speaks. "So, which one feels better?"` )>> <<default>> <<set _sydneyText to either( `<<He>> speaks. "You're so unique. I never learned about this in science class."`, `<<He>> speaks. "I think I'm getting used to working with both."`, `<<He>> speaks. "I'm almost jealous. I wish I knew what both felt like."` )>> <</switch>> <</if>> <<elseif $speechvagina is 1 or $speechclit is 1>> <<set $sydneyComments.fondle to 3>> <<switch _sydneyStatus>> <<case "pure" "pureLust">> <<set _sydneyText to either( `<<He>> speaks. "Am... am I doing this right?"`, `<<He>> giggles. "It's getting wetter!"`, `<<He>> speaks. "I'm... not being too rough, am I?"` )>> <<case "corrupt" "corruptLust">> <<set _sydneyText to either( `<<He>> speaks. "I'll stick my fingers in your mouth after this, so you can taste yourself."`, `<<He>> speaks. "Just relax, and let me take care of this."`, `<<He>> giggles. "Make sure to keep it down!"` )>> <<default>> <<set _sydneyText to either( `<<He>> speaks. "I never would have learned things like this, if not for you."`, `<<He>> speaks. "I think I'm getting the hang of this!"`, `<<He>> speaks. "How deep should I go?"` )>> <</switch>> <<elseif $speechpenis is 1 or $speechglans is 1>> <<set $sydneyComments.fondle to 3>> <<if playerHasStrapon()>> <<switch _sydneyStatus>> <<case "pure" "pureLust">> <<set _sydneyText to `<<He>> speaks. "Am... am I doing this right?"`>> <<case "corrupt" "corruptLust">> <<set _sydneyText to `<<He>> giggles. "This toy makes me feel hot. I need it inside me."`>> <<default>> <<set _sydneyText to either( `<<He>> speaks. "I never would have learned things like this, if not for you."`, `<<He>> speaks. "I think I'm getting the hang of this!"` )>> <</switch>> <<else>> <<switch _sydneyStatus>> <<case "pure" "pureLust">> <<set _sydneyText to either( `<<He>> speaks. "Am... am I doing this right?"`, `<<He>> giggles. "It's getting bigger!"`, `<<He>> speaks. "I'm... not being too rough, am I?"` )>> <<case "corrupt" "corruptLust">> <<set _sydneyText to either( `<<He>> speaks. "I'm going to wring you dry."`, `<<He>> speaks. "Just relax, and let me take care of this."`, `<<He>> giggles. "Make sure to keep it down!"` )>> <<default>> <<set _sydneyText to either( `<<He>> speaks. "I never would have learned things like this, if not for you."`, `<<He>> speaks. "I think I'm getting the hang of this!"`, `<<He>> speaks. "Does it feel good when I work it like this?"` )>> <</switch>> <</if>> <<elseif $speechanus is 1 or $speechbottom is 1>> <<set $sydneyComments.fondle to 3>> <<switch _sydneyStatus>> <<case "pure" "pureLust">> <<set _sydneyText to either( `<<He>> speaks. "Am... am I doing this right?"`, `<<He>> giggles. "I didn't know this spot could make someone feel good!"`, `<<He>> speaks. "I'm... not being too rough, am I?"` )>> <<case "corrupt" "corruptLust">> <<set _sydneyText to either( `<<He>> speaks. "Maybe we should stick something bigger in there."`, `<<He>> speaks. "Just relax, and let me take care of this."`, `<<He>> giggles. "Make sure to keep it down!"` )>> <<default>> <<set _sydneyText to either( `<<He>> speaks. "I never would have learned things like this, if not for you."`, `<<He>> speaks. "I think I'm getting the hang of this!"`, `<<He>> speaks. "How deep should I go?"` )>> <</switch>> <</if>> <<elseif $speechvaginaflaunt is 1 and $sydneyComments.flaunt is 0>> <<set $sydneyComments.flaunt to 2>> <<switch _sydneyStatus>> <<case "pure" "pureLust">> <<set _sydneyText to either( `<<He>> covers <<his>> blush. "D-don't just stare at it..."`, `<<He>> giggles. "You're looking at me funny..."`, `<<He>> whispers. "N-no one else has ever seen me like this before..."` )>> <<case "corrupt" "corruptLust">> <<set _sydneyText to either( `<<He>> uses two fingers to spread <<his>> lips. "Enjoying the view?"`, `<<He>> speaks. "Yeah, I know, it looks perfect doesn't it?"`, `<<He>> giggles. "It's all yours."` )>> <<default>> <<set _sydneyText to either( `<<He>> speaks. "You're staring. At least let me look at yours, too..."`, `<<He>> speaks. "What are you going to do?"`, `<<He>> speaks. "W...well? Don't just stand there..."` )>> <</switch>> <<else>> <<if $rng gte 96 and !$sydneyUniqueComments.includes("clothes")>> <<set $sydneyUniqueComments.pushUnique("clothes")>> <<if $worn.upper.name is "nun's habit" or $worn.upper.name is "monk's habit">> <<if _sydneyStatus.includes("corrupt")>> <<set _sydneyText to `<<He>> runs <<his>> hands over your ` + $worn.upper.name + `. <<He>> almost seems nostalgic. <<npcincr Sydney purity 2>><<gspurity>>`>> <<else>> <<set _sydneyText to `<<He>> looks over your ` + $worn.upper.name + `. "Does... wearing that make this all okay?" <<npcincr Sydney purity 2>><<gspurity>>`>> <</if>> <<elseif $worn.neck.name is "holy pendant" or $worn.neck.name is "stone pendant">> <<set $sydneySeen.pushUnique("holy pendant")>> <<if _sydneyStatus.includes("corrupt")>> <<set _sydneyText to `<<He>> stares at your ` + $worn.neck.name + `. <<He>> almost seems nostalgic. <<npcincr Sydney purity 2>><<gspurity>>`>> <<else>> <<set _sydneyText to `<<He>> looks over your ` + $worn.neck.name + `. "Does... wearing that make this all okay?" <<npcincr Sydney purity 2>><<gspurity>>`>> <</if>> <<elseif $worn.neck.name is "dark pendant">> <<set $sydneySeen.pushUnique("dark pendant")>> <<if _sydneyStatus.includes("corrupt")>> <<set _sydneyText to `<<He>> stares at your ` + $worn.neck.name + `. <<He>> seems to get lost in it for a moment. <<npcincr Sydney purity -2>><<lspurity>>`>> <<else>> <<set _sydneyText to `<<He>> looks over your ` + $worn.neck.name + `. "It's... so pretty, but also a little unsettling..." <<npcincr Sydney purity -2>><<lspurity>>`>> <</if>> <<elseif $location is "school" and $exposed lte 0 and (!$worn.upper.type.includes("school") and !$worn.lower.type.includes("school"))>> <<if _sydneyStatus.includes("corrupt")>> <<set _sydneyText to `<<He>> looks over your clothes and giggles. "That's not proper school uniform. Don't worry, I can help you take it off." <<set $combatgoal to "strip">>`>> <<else>> <<set _sydneyText to `<<He>> looks over your clothes. "Y-you should really adhere to the dress code, before you get in trouble..."`>> <</if>> <<elseif $worn.lower.name is "naked" and playerHasStrapon()>> <<if _sydneyStatus.includes("corrupt")>> <<set _sydneyText to `<<He>> looks over your <<penisSimple>> and giggles. "Oh, these toys are fun."`>> <<else>> <<set _sydneyText to `<<He>> looks over your <<penisSimple>> and blushes. "<<sydneyMum>>'s always talking about these."`>> <</if>> <<elseif $exposed gte 1>> <<if _sydneyStatus.includes("corrupt")>> <<set _sydneyText to `<<He>> looks over your body and giggles. "You look even better all exposed like this." <<npcincr Sydney lust 1>><<glust>>`>> <<else>> <<set _sydneyText to `<<He>> shyly looks over your exposed body. "Y-you're... you look... uhm..." <<He>> looks away for a moment. "You look good." <<npcincr Sydney lust 1>><<npcincr Sydney purity -2>><<gslust>><<lspurity>>`>> <</if>> <<else>> /* Say Nothing */ <<set _sydneyText to ``>> <</if>> <<elseif $rng gte 91>> <<switch _sydneyStatus>> <<case "pure" "pureLust">> <<set _sydneyText to `<<He>> murmurs. "Sorry, I don't really know what I'm doing..."`>> <<case "corrupt" "corruptLust">> <<set _sydneyText to `<<He>> speaks. "We sure know how to have fun."`>> <<default>> <<set _sydneyText to `"I used to get so nervous about this kind of thing..."`>> <</switch>> <<elseif $rng gte 86>> <<switch _sydneyStatus>> <<case "pure" "pureLust">> <<set _sydneyText to `<<He>> speaks. "This is... so sinful..."`>> <<case "corrupt" "corruptLust">> <<set _sydneyText to `<<He>> speaks. "You've opened my eyes, being a sinner is too much fun!"`>> <<default>> <<set _sydneyText to `<<He>> speaks. "I was always taught that this was sinful, but..."`>> <</switch>> <<elseif $rng gte 81>> <<switch _sydneyStatus>> <<case "pure" "pureLust">> <<set _sydneyText to `<<He>> murmurs. "N...not too rough, please..."`>> <<case "corrupt" "corruptLust">> <<set _sydneyText to `<<He>> speaks. "I can handle anything you have for me. Come on, show me what you've got!"`>> <<default>> <<set _sydneyText to `<<He>> speaks. "I... you can be a little rough, if you want..."`>> <</switch>> <<elseif $rng gte 76>> <<switch _sydneyStatus>> <<case "pure" "pureLust">> <<set _sydneyText to `<<He>> takes a deep breath. "I... I can do this."`>> <<case "corrupt" "corruptLust">> <<set _sydneyText to `<<He>> speaks. "Think you can keep up?"`>> <<default>> <<set _sydneyText to `<<He>> speaks. "I think I can keep pace with you, now."`>> <</switch>> <<elseif $rng gte 71>> <<switch _sydneyStatus>> <<case "pure" "pureLust">> <<set _sydneyText to `<<He>> takes a deep breath. "We... need to stay quiet..."`>> <<case "corrupt" "corruptLust">> <<set _sydneyText to `<<He>> giggles. "Shh!"`>> <<default>> <<set _sydneyText to `<<He>> speaks. "Let's try not to get caught..."`>> <</switch>> <<elseif $rng gte 66>> <<switch _sydneyStatus>> <<case "pure" "pureLust">> <<set _sydneyText to `<<He>> looks upwards. "Forgive me..."`>> <<case "corrupt" "corruptLust">> <<set _sydneyText to `<<He>> giggles. "Looks like I'm due for some discipline. Maybe you can punish me?"`>> <<default>> <<set _sydneyText to `<<He>> giggles. "I've sinned... is this my punishment?"`>> <</switch>> <<elseif $rng gte 61>> <<if $location is "temple">> <<switch _sydneyStatus>> <<case "pure" "pureLust">> <<set _sydneyText to `<<He>> looks upwards. "S...such a sin, doing this on such holy ground..."`>> <<case "corrupt" "corruptLust">> <<set _sydneyText to `<<He>> giggles. "Let's defile this place."`>> <<default>> <<set _sydneyText to `<<He>> giggles. "W...we're doing this in the temple, and nothing is stopping us..."`>> <</switch>> <<elseif $location is "school">> <<switch _sydneyStatus>> <<case "pure" "pureLust">> <<set _sydneyText to `<<He>> looks around nervously. "If... if someone caught us..."`>> <<case "corrupt" "corruptLust">> <<set _sydneyText to `<<He>> giggles. "I sure hope one of the other students hear us."`>> <<default>> <<set _sydneyText to `<<He>> looks around. "I hope there's no one waiting in line..."`>> <</switch>> <<else>> <<switch _sydneyStatus>> <<case "pure" "pureLust">> <<set _sydneyText to `<<He>> looks around nervously. "Here, of all places..."`>> <<case "corrupt" "corruptLust">> <<set _sydneyText to `<<He>> giggles. "Think anyone will find us?"`>> <<default>> <<set _sydneyText to `<<He>> looks around. "I think we're safe."`>> <</switch>> <</if>> <<else>> /* Say Nothing */ <<set _sydneyText to ` `>> <</if>> <</if>> <<if $sydneyComments>> <<set _keys to Object.keys($sydneyComments)>> <<for $_i to 0; $_i lt _keys.length; $_i++>> <<if $sydneyComments[_keys[$_i]] gt 0>> <<set $sydneyComments[_keys[$_i]]-->> <</if>> <</for>> <</if>> <</widget>><<widget "cumspeech">> <<rng>> <<He>> speaks. <<if $player.gender_appearance is "m" or ($exposed gte 2 and $player.penisExist)>> <<if _deniedOrgasm and $speechorgasmnocumcount is 0>> <<set $speechorgasmnocumcount += 1>> <<if $enemyanger lte 100>> "Weren't you just going to cum? What happened?" <<else>> "Good! You don't deserve to cum, you little brat." <</if>> <<elseif _deniedOrgasm and $enemyanger gt 100>> <<switch random(1,3)>> <<case 1>> "What's the matter? Did that orgasm hurt? Good lesson for a little brat." <<case 2>> "Good! You deserve it, you little brat." <<case 3>> "Maybe if we're a bit rougher it'll make the pain of having an orgasm easier on you." <</switch>> <<elseif ($orgasmcount gte 24 or $femaleclimax) and $speechorgasmnocumcount is 0>> <<set $speechorgasmnocumcount += 1>> "You climaxed but nothing came out! What's wrong with you?" <<elseif $speechorgasmnocumcount gte 1>> <<if $speechorgasmrepeat is 0>> <<switch random(1,3)>> <<case 1>> "Have you been over-milked or were you always this pathetic?" <<case 2>> "You better not be faking it." <<case 3>> "You should be embarrassed by your lack of ejaculate." <</switch>> <<else>> <<switch random(1,3)>> <<case 1>> "I think we've worn <<phim>> out already." <<case 2>> "Still nothing coming out. This is disappointing." <<case 3>> "Maybe if we're a bit rougher we'll get some semen to come out?" <</switch>> <</if>> <<set $speechorgasmrepeat += 1>> <<elseif $orgasmcount gte 18 and $speechorgasmweakcumcount is 0>> <<set $speechorgasmweakcumcount += 1>> "Is that really all the cum you can manage?" <<else>> <<if $speechorgasmrepeat is 0>> <<switch $speechorgasmcount>> <<case 1>> "You're cumming! That's it, let it out, don't hold any back." <<case 2>> "You're releasing even more cum! Have you no shame?" <<case 3>> "Don't try to hide it, you like being milked of your cum." <<case 4>> "Let out all your precious dick-milk." <<case 5>> "You've cum so much! You're making a real mess you know." <<default>> "So much cum, I don't know whether to be impressed or embarrassed for you." <</switch>> <<else>> <<switch $speechorgasmcount>> <<case 1>> "<<pShe>> really is cumming!" <<case 2>> "Cumming again? <<pShe>> is so dirty!" <<case 3>> "<<pShe>> is cumming again? This is great!" <<case 4>> "We'll milk <<phim>> dry at this rate." <<case 5>> "I want to keep some of <<pher>> cum for later." <<default>> "<<pShe>> has cum so much. Is <<pshe>> going to be okay?" <</switch>> <</if>> <<set $speechorgasmrepeat += 1>> <</if>> <<else>> <!-- gender appearance is female and either the player does not have a dick or the npc is not aware of it --> <<if $speechmilk and $rng gte 71>> <<switch $speechmilk>> <<case 1>>"<<pShes>> milking!" <<case 2>>"Couldn't wait for me to put my mouth on it first?" <<default>>"Holy shit, that was so much." <</switch>> <<elseif $speechorgasmrepeat is 0>> <<switch $speechorgasmcount>> <<case 1>> "I knew you'd enjoy it, your spasms don't lie." <<case 2>> "How does this orgasm feel? Better than the last I bet." <<case 3>> "You're cumming again? You're such a dirty slut!" <<case 4>> "I hope you remember me, what with all these orgasms I'm giving you." <<case 5>> "You're cumming over and over again, you must be quite the slut!" <<default>> "Making a <<girl>> cum repeatedly is so much fun." <</switch>> <<else>> <<switch $speechorgasmcount>> <<case 1>> "<<pShe>> spasms so delightfully when <<pshe>> cums." <<case 2>> "<<pHer>> pussy is absolutely drenched!" <<case 3>> "<<pShe>> is so very sensitive." <<case 4>> "<<pShe>> is cumming again? This is great." <<case 5>> "<<pShe>> is cumming again! Such a nasty <<bitch>>." <<default>> "Careful not to overdo it, <<pshe>> might break if <<pshe>> cums too much." <</switch>> <</if>> <<set $speechorgasmrepeat += 1>> <</if>> <</widget>> <<widget "combatspeech">> <<set _n to _args[0]>> <<rng>> <<if $encounterDialogue>> <<switch $encounterDialogue>> <<case "cold">> <<He>> speaks. <<if $enemyanger lte 50>> <<print [ `"I'll warm you up in no time."`, `"Feeling warmer now?"`, `"I'll get you all hot and bothered, you'll see."`, `"Your skin is so flushed. See, I'm helping!"`, `"Look at how red you're getting. You must be feeling better now."`, ][random(0,4)]>> <<else>> <<print [ `"Stop struggling! You know I'm helping you warm up, right?"`, `"What's the matter with you? I thought you were cold."`, `"I know you're cold, but you don't need to act like a frigid <<bitch>>."`, `"That's cold of you. Real cold."` ][random(0,3)]>> <</if>> <<case "hot">> <<He>> speaks. <<if $enemyanger lte 50>> <<print [ `"Hot and sweaty sex is the best."`, `"Your body feels so warm."`, `"I love seeing a <<girl>> all hot and bothered."`, `"Being flushed is a good sign."`, `"You'll feel cooler once we're done here."`, ][random(0,4)]>> <<else>> <<print [ `"Stop struggling! You know you're making yourself feel even hotter, right?"`, `"Just lay here and take it, and you'll feel better."`, `"I know you're all hot and bothered, but you're being a right pain."`, `"Be reasonable here. All this exertion isn't helping your heatstroke any."`, ][random(0,3)]>> <</if>> <<case "hotStrip">> <<if $enemyanger lte 20>> <<print [ `"Come on, I'm just trying to help."`, `"You'll feel cooler if you let me take this thing off."`, `"Aren't you hot wearing this?"`, ][random(0,2)]>> <<elseif $enemyanger lte 100>> <<print [ `"Is this how you treat everyone who tries to help you?"`, `"Just let me take your clothes off already."`, `"Be reasonable here. All this exertion isn't helping your heatstroke any."`, ][random(0,2)]>> <<else>> <<print [ `"Give me your clothes, <<bitch>>!"`, `"You're getting stripped, slut. Stop fighting it."`, `"Just give it up already. Your clothes belong to me now!"`, ][random(0,2)]>> <</if>> <<case "brothelVirginityShow">> <<if $player.virginity.penile isnot true or $player.virginity.vaginal isnot true>> <<print [ `"Ha, well, not a virgin any more."`, `"I hope you enjoyed losing your virginity on stage as much as I enjoyed taking it."`, `"Best ride I ever paid for."`, ][random(0,2)]>> <<elseif ($NPCList[_n].vagina is "penisimminent" or $NPCList[_n].vagina is "otheranusimminent" or $NPCList[_n].penis is "otheranusimminent") and $rng gte 81>> "Virgin cock, nothing like it." <<elseif $NPCList[_n].penis is "vaginaimminent" and $rng gte 81>> <<if $player.virginity.penile isnot true or $player.virginity.vaginal isnot true>> "It feels so good, but you're not as tight as I'd have expected for a virgin. Should be expected from a whore, I guess." <<else>> "Whew, that is one amazingly tight virgin pussy." <</if>> <<else>> <<if $brothelshowdata.counts.virginity gte 2 and $rng gte 51>> <<print [ `"No more games, I'll have you this time."`, `"You'll not be able to keep this up forever."`, `"I can't wait until someone finally gets you."`, `"One day you'll slip up and you'll be mine."`, ][random(0,3)]>> <<else>> <<print [ `"Your <<genitals>> will be all mine!"`, `"I can't wait to pop your cherry."`, `"Beg for it, I know you want it."`, `"Hard to believe a slut like you is a virgin."`, `"Your <<genitals>> looks so cute. Just wait and see how cute it will look when <<= $NPCList[_n].strapon ? "I fill it up" : $NPCList[_n].penis isnot "none" and $player.vaginaExist ? "I fill it with cum" : "you fill me with cum">>."`, ][random(0,4)]>> <</if>> <</if>> <<case "brothelVirginityRapeShow">> <<if ["chastity", "chastitylost"].includes($brothelVirginityState)>> <<if playerChastity()>> <<print [ `"I paid too much to be denied by a damn <<= $worn.genitals.name>>!"`, `"Going to rip this thing off if it's the last thing I do."`, `"You think you can promise your <<genitals 2>> and just show up in a <<= $worn.genitals.name>>?"`, `"Looks like we'll have to teach this stupid virgin a lesson."`, ][random(0,3)]>> <<elseif $brothelVirginityState is "chastitylost">> <<print [ `"What the hell? This slut isn't a virgin at all!"`, `"Lying, filthy, piece of meat, you're getting what you deserve!"`, `"It's no wonder a slut like you isn't a virgin."`, `"This is what happens to lying whores!"`, `"You don't deserve this, I'm sure you enjoy a good rape."`, ][random(0,4)]>> <<else>> <<print [ `"And I'm going to keep fucking you. It's not like it matters to a whore like you."`, `"Certainly not a virgin now."`, `"How does it feel to have your virginity robbed on stage?"`, `"Nice and tight, just the way I like my virgins."`, `"I just love the sight of a deflowered virgin."`, ][random(0,4)]>> <</if>> <<else>> <<if $NPCList[_n].penis is "vagina" or $NPCList[_n].penis is "otheranus" or $NPCList[_n].vagina is "penis" or $NPCList[_n].vagina is "otheranus" or $NPCList[_n].vagina is "penisimminent" or $NPCList[_n].vagina is "otheranusimminent" or $NPCList[_n].penis is "otheranusimminent" or $NPCList[_n].penis is "vaginaimminent">> <<print [ `"I bet you're sorry now."`, `"Certainly not a virgin now."`, `"It's no wonder a slut like you isn't a virgin."`, ][random(0,2)]>> <<else>> <<print [ `"This is what happens to lying whores!"`, `"I bet you wish you're a virgin now, don't you."`, `"Lying about your virginity just to enjoy a good raping? We'd have done that for free."`, `"You don't deserve this, I'm sure you enjoy a good rape."`, ][random(0,3)]>> <</if>> <</if>> <<case "undergroundBrothelVirginityShow">> <<if playerChastity()>> <<print [ `"I paid too much to be denied by a damn <<= $worn.genitals.name>>!"`, `"I'm going to rip this thing off if it's the last thing I do."`, `"Looks like we'll have to teach this stupid virgin a lesson."`, ][random(0,2)]>> <<elseif $player.virginity.penile isnot true or $player.virginity.vaginal isnot true>> <<print [ `"One less virgin in the world and one more slut. Don't try to hide it; you know you enjoyed it."`, `"How does it feel to have your virginity robbed on stage?"`, `"Nice and tight, just the way I like my virgins."`, `"I just love the sight of a deflowered virgin."`, `"This is what happens to whores like yourself."`, ][random(0,4)]>> <<else>> <<print [ `"Why fight it? You're losing that virginity, one way or another."`, `"Let's find out how tight you really are."`, `"Cry for me. Virgin tears are adorable."`, `"Don't worry, it's not going to hurt. For me."`, `"You deserve this, and more."`, `"Your virgin <<= $NPCList[_n].penis isnot "none" and $player.vaginaExist ? "pussy" : "penis">> will be all mine!"`, `"I can't wait to pop your cherry."`, `"Beg for it, I know you want it."`, `"Hard to believe a slut like you is a virgin."`, `"Your virgin <<= $NPCList[_n].penis isnot "none" and $player.vaginaExist ? "pussy" : "penis">> looks so cute. I can't wait to see how cute it will look when <<= $NPCList[_n].penis isnot "none" and $player.vaginaExist ? "I fill it with cum" : "you fill me with cum">>."`, ][random(0,9)]>> <</if>> <<default>> <<basespeech>> <</switch>> <<elseif $speechcrossdressangry is 1>> <<He>> glares at your newly-exposed <<genitals>>. <<print [ `"You thought you could trick me? Time to show you your place."`, `"I bet you're real happy you tricked me. You won't be smiling when I'm through with you."`, `"Fucking <<bitch>>, I'm gonna fuck you like you're a ${($player.sex is 'm' ? "girl" : "boy")} anyway."`, `"You think that's funny? I'm gonna fuck you senseless anyway."`, `"You'll pay for this, slut."`, ][random(0,4)]>> <<elseif $speechcrossdressaroused is 1>> <<He>> gazes with hunger at your newly exposed <<genitals>>. <<print [ `"What a treat!"`, `"You're full of surprises."`, `"Nothing gets me going like a crossdressing slut."`, `"It's like unwrapping a present."`, `"Sneaky slut, I know just what to do with you."`, ][random(0,4)]>> <<elseif $speechcrossdressshock is 1>> <<He>> stares at your <<genitals>> in shock. <<print [ `"I'm not normally into this sort of thing. You're pretty cute though."`, `"I never thought it could look so tasty."`, `"You're a sneaky one."`, `"This is fine too."`, `"You had me completely fooled."`, ][random(0,4)]>> <<elseif $speechcrossdressdisappointed is 1>> <<He>> looks at your <<genitals>> and sighs. <<print [ `"This isn't what I signed up for."`, `"I've come this far I guess."`, `"Cute, but that isn't what I wanted."`, `"I bet you think this is funny."`, `"Why do I keep falling for this?"`, ][random(0,4)]>> <<elseif $speechhermangry is 1>> <<He>> glares at your newly-exposed <<genitals>>. <<print [ `"You're a freak. Time to show you your place."`, `"I bet you're loving how fucking shocked I am. You won't be smiling when I'm through with you."`, `"Fucking <<bitch>>. I'm gonna fuck you like you're a <<girl>> anyway."`, `"You're a perversion, but I'm gonna fuck you senseless anyway."`, `"I can't believe you tricked me into thinking you were normal. You're gonna pay."`, ][random(0,4)]>> <<elseif $speechhermaroused is 1>> <<He>> gazes with hunger at your newly exposed <<genitals>>. <<print [ `"What a treat!"`, `"You're full of surprises."`, `"You're both a boy and girl rolled into one. It's like my birthday."`, `"It's like unwrapping a present."`, `"Sneaky slut, I know just what to do with you."`, ][random(0,4)]>> <<elseif $speechhermshock is 1>> <<He>> stares at your <<genitals>> in shock. <<print [ `"I've not seen anything like this. You're still pretty cute though."`, `"Whatever, you still look tasty."`, `"You're a strange one."`, `"This is fine too."`, `"I didn't expect to find this."`, ][random(0,4)]>> <<elseif $speechhermdisappointed is 1>> <<He>> looks at your <<genitals>> and sighs. <<print [ `"This isn't what I signed up for."`, `"I've come this far I guess."`, `"Cute, but I'm not sure what to do with it."`, `"Both? I hope there's nothing else wrong with you."`, `"Why do I never get anyone normal?"`, ][random(0,4)]>> <<elseif ($speechSextoyState is "aroused" or $speechsextoy is 1) and random(0,2) isnot 0 and ($rightarm is "heldSexToy" or $leftarm is "heldSexToy")>> <<if $rightarm is "heldSexToy" and $leftarm is "heldSexToy">> <<set $_sexToy to "sex toys">> <<elseif $rightarm is "heldSexToy">> <<set $_sexToy to $currentSexToyRight.name>> <<else>> <<set $_sexToy to $currentSexToyLeft.name>> <</if>> <<He>> gazes with hunger at your $_sexToy. <<print [ `"What a treat!"`, `"You're full of surprises."`, `"I've always wanted to try this toy. It's like my birthday."`, `"I can't wait to see you use it."`, `"Such a slut. I know just what to do with you."`, ][random(0,4)]>> <<elseif $speechSextoyState is "shocked" and ($rightarm is "heldSexToy" or $leftarm is "heldSexToy")>> <<if $rightarm is "heldSexToy" and $leftarm is "heldSexToy">> <<set $_sexToy to "sex toys">> <<elseif $rightarm is "heldSexToy">> <<set $_sexToy to $currentSexToyRight.name>> <<else>> <<set $_sexToy to $currentSexToyLeft.name>> <</if>> <<He>> stares at your $_sexToy in shock. <<print [ `"I've not seen anything like this. You're still pretty cute though."`, `"Whatever, you still look tasty."`, `"You're a strange one."`, `"This is fine too."`, `"I didn't expect to see this."`, ][random(0,4)]>> <<elseif $speechSextoyState is "disappointed" and ($rightarm is "heldSexToy" or $leftarm is "heldSexToy")>> <<if $rightarm is "heldSexToy" and $leftarm is "heldSexToy">> <<set $_sexToy to "sex toys">> <<elseif $rightarm is "heldSexToy">> <<set $_sexToy to $currentSexToyRight.name>> <<else>> <<set $_sexToy to $currentSexToyLeft.name>> <</if>> <<He>> looks at your $_sexToy and sighs. <<print [ `"This isn't what I signed up for."`, `"I've come this far I guess."`, `"Cute, but I'm not sure what to do with it."`, `"I just wanted us to be together."`, `"Why do I never get anyone normal?"`, ][random(0,4)]>> <<elseif $speechSextoyState is "angry" and ($rightarm is "heldSexToy" or $leftarm is "heldSexToy")>> <<if $rightarm is "heldSexToy" and $leftarm is "heldSexToy">> <<set $_sexToy to "sex toys">> <<elseif $rightarm is "heldSexToy">> <<set $_sexToy to $currentSexToyRight.name>> <<else>> <<set $_sexToy to $currentSexToyLeft.name>> <</if>> <<He>> glares at your $_sexToy. <<print [ `"This isn't what I signed up for."`, `"You fucking pervert."`, `"Fucking <<bitch>>. I'm going to fuck you senseless."`, `"I bet you're loving how fucking shocked I am. You won't be smiling when I'm through with you."`, `"Put that shit away you fucking slut."`, ][random(0,4)]>> <<elseif $speechgenitals is 1>> <<if $player.gender_appearance is $player.gender>> /* ToDo: Strapon - check if any one this needs its own strapon text */ <<if $worn.genitals.type.includesAll("chastity", "hidden")>> <<if $enemyanger lte 0>> <<He>> ?admires your newly-exposed $worn.genitals.name. "I wonder what treasures are behind that lock?" <<elseif $enemyanger lte 20>> <<He>> <<laughs>> at your newly-exposed $worn.genitals.name. "So are you hiding a pussy or a tiny penis?" <<if $player.penisExist>> <<if $player.penissize is 1>> <<insecurity "penis_small" 1>><<ginsecurity "penis_small">> <<elseif $player.penissize lt 1>> <<insecurity "penis_small" 2>><<ginsecurity "penis_small">> <</if>> <</if>> <<elseif $enemyanger lte 100>> <<He>> <<laughs>> at your newly-exposed $worn.genitals.name. "Don't be shy, I'll help you get it off." <<else>> <<He>> <<laughs>> at your newly-exposed $worn.genitals.name. "You must be a slut that was forced to wear that." <</if>> <<elseif $player.penisExist>> <<switch Math.clamp($player.penissize, -2, 4)>> <<case 4>> <<if $enemyanger lte 20>> <<He>> ?admires your newly-exposed <<genitals>>. "Your huge cock looks delicious!" <<elseif $enemyanger lte 100>> <<He>> ?admires your newly-exposed <<genitals>>. "I've never seen one so big." <<else>> <<He>> ?admires your newly-exposed <<genitals>>. "Don't think I'm intimidated by your freakishly big cock." <</if>> <<insecurity "penis_big" 1>><<ginsecurity "penis_big">> <<case 3>> <<if $enemyanger lte 20>> <<He>> ?admires your newly-exposed <<genitals>>. "Your cock looks delicious!" <<elseif $enemyanger lte 100>> <<He>> ?admires your newly-exposed <<genitals>>. "Nice. Very nice." <<else>> <<He>> ?admires your newly-exposed <<genitals>>. "There. Exposed like the slut you are." <</if>> <<insecurity "penis_big" 1>><<ginsecurity "penis_big">> <<case 2>> <<if $enemyanger lte 20>> <<He>> ?admires your newly-exposed <<genitals>>. "Your cock looks delicious!" <<elseif $enemyanger lte 100>> <<He>> ?admires your newly-exposed <<genitals>>. "Nice." <<else>> <<He>> ?admires your newly-exposed <<genitals>>. "There. Exposed like the slut you are." <</if>> <<case 1>> <<if $enemyanger lte 20>> <<He>> ?admires your newly-exposed <<genitals>>. "So small and cute!" <<elseif $enemyanger lte 100>> <<He>> <<laughs>> at your newly-exposed <<genitals>>. "It's so small!" <<else>> <<He>> <<laughs>> at newly-exposed <<genitals>>. "Your small cock is pathetic." <</if>> <<insecurity "penis_small" 1>><<ginsecurity "penis_small">> <<case 0 -1>> <<if $enemyanger lte 20>> <<He>> <<laughs>> at your newly-exposed <<genitals>>. "Your tiny cock is so cute!" <<elseif $enemyanger lte 100>> <<He>> <<laughs>> at your newly-exposed <<genitals>>. "I've never seen such a tiny cock." <<else>> <<He>> <<laughs>> at your newly-exposed <<genitals>>. "This is just pathetic." <</if>> <<insecurity "penis_small" 2>><<ginsecurity "penis_small">> <<case -2>> <<if $enemyanger lte 20>> <<He>> <<laughs>> at your newly-exposed <<genitals>>. "Your micro cock is so cute!" <<elseif $enemyanger lte 100>> <<He>> <<laughs>> at your newly-exposed <<genitals>>. "I've never seen such a miniature cock!" <<else>> <<He>> <<laughs>> at your newly-exposed <<genitals>>. "Ugly clit you have there." <</if>> <<insecurity "penis_small" 2>><<ginsecurity "penis_small">> <</switch>> <<else>> <<if $enemyanger lte 0>> <<He>> ?admires your newly-exposed <<genitals>>. "Your pussy is so cute!" <<elseif $enemyanger lte 20>> <<He>> ?admires your newly-exposed <<genitals>>. "Your pussy is so enticing!" <<elseif $enemyanger lte 100>> <<He>> ?admires your newly-exposed <<genitals>>. "Don't be shy, a pussy like this was made to be exposed." <<else>> <<He>> ?admires your newly-exposed <<genitals>>. "There, now you're exposed like the slut you are." <</if>> <</if>> <</if>> <<elseif $speechpregnant is 1 and $settings.pregnancySpeechEnabled>> <<if $enemyanger lte 20>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<if $NPCList[_n].penis isnot "none">> <<He>> speaks. "I'll be sure to find you later and knock you up myself!" <<else>> <<He>> speaks. "I can't imagine how much better this would be without that bump in the way." <</if>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<He>> speaks and pats your belly. "I'll be extra careful." <<else>> <<He>> speaks. "Look at that baby bump!" <</if>> <<elseif $enemyanger lte 100>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<He>> speaks. "You're lucky you look so vulnerable with that belly." <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<He>> speaks. "I guess I should have expected moodiness from a pregnant cocksleeve." <<else>> <<He>> speaks. "You'd better hope the father doesn't find out about this." <</if>> <<insecurity "pregnancy" 2>><<ginsecurity "pregnancy">> <<else>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<He>> laughs. "I feel bad for whoever was unlucky enough to get you pregnant." <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<He>> speaks. "Should have known better than to expect a pregnant <<bitch>> to behave." <<else>> <<He>> speaks. "If you want to live to see your kid be born, you'll knock it the fuck off and behave." <</if>> <<insecurity "pregnancy" 2>><<ginsecurity "pregnancy">> <</if>> <<elseif $speechleglock is 1>> <<if $enemyanger lte 20>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<if $NPCList[_n].pregnancyAvoidance gte 80>> <<He>> speaks. "Let me go! Hurry!" <<else>> <<He>> speaks. "Yeah, keep moving just like that!" <</if>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<if $NPCList[_n].pregnancyAvoidance gte 60>> <<He>> speaks. "Alright, ease up with the legs, <<girl>>!" <<else>> <<He>> speaks. "See how much better it feels this way?" <</if>> <<else>> <<if $NPCList[_n].pregnancyAvoidance gte 80>> <<He>> speaks. "You're making me a little nervous with that legwork." <<else>> <<He>> speaks. "You're into it, I knew it!" <</if>> <</if>> <<elseif $enemyanger lte 100>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<if $NPCList[_n].pregnancyAvoidance gte 80>> <<He>> speaks. "Let me go! I'm..." <<else>> <<He>> speaks. "<<if $position is "missionary">>Hold on tighter<<else>>Push back harder<</if>>!" <</if>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<if $NPCList[_n].pregnancyAvoidance gte 80>> <<He>> speaks. "Get your legs off me!" <<else>> <<He>> speaks. "See how much better it feels when you cooperate?" <</if>> <<else>> <<He>> speaks. "I knew you'd be eager, <<bitch>>." <</if>> <<else>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<if $NPCList[_n].pregnancyAvoidance gte 60>> <<He>> speaks. "Let me go! You crazy fucking... Ah!" <<else>> <<He>> speaks. "You want it that bad, huh? Fine!" <</if>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<if $NPCList[_n].pregnancyAvoidance gte 60>> <<He>> speaks. "The fuck do you think you're doing? Let go!" <<else>> <<He>> speaks. "Much better. Time to break you in." <</if>> <<else>> <<if $NPCList[_n].pregnancyAvoidance gte 60>> <<He>> speaks. "Get your legs off me!" <<else>> <<He>> speaks. "Eager now, huh?" <</if>> <</if>> <</if>> <<elseif $speechbreasts is 1>> <<if $player.gender_appearance is "m">> <<if $player.breastsize lte 0>> <<He>> ?admires your newly-exposed <<breasts>>. <<elseif $player.breastsize lte 1>> <<He>> ?admires your newly-exposed <<breasts>>. <<elseif $player.breastsize lte 2>> <<He>> ?admires your newly-exposed <<breasts>>. "That's a nice pair of <<bitch>>-tits you've got there." <<elseif $player.breastsize lte 4>> <<He>> ?admires your newly-exposed <<breasts>>. "You have breasts like a woman!" <<else>> <<He>> ?admires your newly-exposed <<breasts>>. "Those things are gigantic! Maybe you'll share some boy-milk." <</if>> <<else>> <<if $player.breastsize lte 0>> <<He>> ?admires your newly-exposed <<breasts>>. "Don't be ashamed about being flat, it's really cute." <<elseif $player.breastsize lte 1>> <<He>> ?admires your newly-exposed <<breasts>>. "Nothing quite like developing breasts. So lewd and cute." <<elseif $player.breastsize lte 2>> <<He>> ?admires your newly-exposed <<breasts>>. "Your small breasts are so lewd." <<elseif $player.breastsize lte 4>> <<He>> ?admires your newly-exposed <<breasts>>. "Don't be ashamed about having your breasts displayed like this, it's what they're for." <<else>> <<He>> ?admires your newly-exposed <<breasts>>. "They're so big! You'd make a fine cow." <</if>> <</if>> <<elseif $speechscream is 1>> <<set $speechscream to 0>> <<He>> speaks. <<print [ `"Shut your fucking mouth."`, `"Are you trying to make me hurt you? Be quiet!"`, `"Things are going to be difficult for you if you keep resisting."`, `"Stupid slut, no one's going to help you."`, `"Crying for help? No one gives a shit."`, ][random(0,4)]>> <<elseif $speechsteal is 1>> <<set $speechsteal to 0>> <<He>> speaks. <<if $enemyanger lte 100>> <<switch $npcspeechcycle>> <<case 0>> "Keep your fingers where I can see them." <<case 1>> "No one likes a thief." <<case 2>> "Hands off my stuff." <<case 3>> "You're a sneaky <<girl>>, aren't you?" <<case 4>> "Don't think you can steal from me." <<case 5>> "It's rude to touch other people's belongings." <<default>>"That isn't yours." <</switch>> <<else>> <<switch $npcspeechcycle>> <<case 0>> "Fingers where I can see them, or you're gonna get hurt." <<case 1>> "It'll be the pillory for you, thief." <<case 2>> "You'll regret trying to steal from me, <<bitch>>." <<case 3>> "I'm gonna teach you a lesson." <<case 4>> "When I'm done with you, you'll never steal again." <<case 5>> "I'll show you what I do to thieves." <<default>>"You think you can steal from me?" <</switch>> <</if>> <<elseif $speechwheeze is 1>> <<set $speechwheeze to 0>> <<if $enemyanger lte 20>> <<if $rng lte 7>> <<He>> speaks. "Just a little longer, baby." <<else>> <<He>> lets go of your throat. "Sorry, <<girl>>, what was that?" <<set _npc = $NPCList.find(x => x.lefthand == "throat" || x.righthand == "throat")>> <<run if (_npc != undefined) { if (_npc.lefthand == "throat") _npc.lefthand = 0; if (_npc.righthand == "throat") _npc.righthand = 0; $neckuse = 0; }>> <</if>> <<elseif $enemyanger lte 100>> <<print [ `<<He>> speaks. "Tough it up, <<girl>>, you'll enjoy it."`, `<<He>> speaks. "That's your punishment for being a bad <<girl>>."`, `<<He>> speaks. "Don't complain now, be a good <<girl>>."`, `<<He>> speaks. "You like it, don't you, <<girl>>?"`, `<<He>> speaks. "Too late now, you'll speak when I let you."`, ][random(0,4)]>> <<else>> <<print [ `<<He>> grins. "That's right, <<bitch>>."`, `<<He>> grins. "What was that? Can't hear you."`, `<<He>> speaks. "Shut up, you stupid whore."`, `<<He>> grins. "Hard to speak, isn't it?"`, `<<He>> speaks. "I love this wheezing sound they make!"`, ][random(0,4)]>> <</if>> <<elseif $speechpenisbig is 1>> /* ToDo: Strapon - check if this is reachable and replace with strapon varient */ <<set $speechpenisbig to 0>> <<He>> speaks. <<if (($enemyarousal / $enemyarousalmax) * 100) gte 70>> <<switch $npcspeechcycle>> <<case 0>> "How are you so fucking big?" <<case 1>> "You're too big to fit. That's so cruel." <<case 2>> "I hope I get you inside before I cum." <<case 3>> "Just go in already!" <<case 4>> "Fuck, you're gonna make me cum without even penetrating me." <<case 5>> "I don't care if you split me in two." <<default>>"I need it in me now." <</switch>> <<else>> <<switch $npcspeechcycle>> <<case 0>> "Help me get it in. I can take it." <<case 1>> "It's not my fault your cock is so big." <<case 2>> "I'm not used to taking such girths." <<case 3>> "You should be proud of such a large cock." <<case 4>> "I'm afraid it'll hurt." <<case 5>> "It's too big, but I need it." <<default>>"I-I can take it. I just need time." <</switch>> <</if>> <<ginsecurity "penis_big">><<insecurity "penis_big" 1>> <<elseif $speechnamedrop is 1>> <<set $speechnamedrop to 0>> <<if _loveInterest is "Black Wolf">> <<if $enemyanger lte 20>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<He>> speaks. "You're talented! Did you learn this from fucking animals all day?" <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<He>> speaks. "I'm sure your wolf friend won't mind." <<else>> <<He>> laughs. "Is it appropriate to call that 'Puppy Love'?" <</if>> <<elseif $enemyanger lte 100>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<He>> speaks. "I bet you get treated like a <<bitch>> by animals, too!" <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<He>> speaks. "I'll be sure to leave leftovers for your... dog." <<else>> <<He>> speaks. "So you're a dog fucker? No surprise there." <</if>> <<else>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<He>> laughs. "Not even your wolf will fuck you when I'm done!" <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<He>> speaks. "Keep this up and I'll feed you to more than just the wolves." <<else>> <<He>> speaks. "Good to know that you're accustomed to being prey, whore!" <</if>> <</if>> <<elseif _loveInterest is "Great Hawk">> <<if $enemyanger lte 20>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<He>> speaks. "You're talented! Did you learn this from fucking animals all day?" <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<He>> speaks. "I'm sure your bird friend won't mind." <<else>> <<He>> laughs. "I have no idea what you're talking about. Are you drugged?" <</if>> <<elseif $enemyanger lte 100>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<He>> speaks. "I bet you get treated like a <<bitch>> by animals, too!" <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<He>> speaks. "I'll be sure to leave leftovers for your... bird." <<else>> <<He>> speaks. "So you're a bird fucker? How does that even work?" <</if>> <<else>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<He>> laughs. "Not even your bird will fuck you when I'm done!" <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<He>> speaks. "Keep this up and I'll spread you out like bird seed." <<else>> <<He>> speaks. "Good to know that you're accustomed to being prey, whore!" <</if>> <</if>> <<elseif $enemyanger lte 20>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<He>> speaks. "Just close your eyes and think about them, just a little longer." <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<He>> speaks. "Don't worry, you'll see them again." <<else>> <<He>> speaks. "Already taken? Adorable. I'll make you forget all about them." <</if>> <<elseif $enemyanger lte 100>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<He>> speaks. "Enough. You're mine." <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<He>> speaks. "Quit being a brat and maybe I'll let you see them again." <<else>> <<He>> speaks. "I don't care about who you're seeing. Shut it." <</if>> <<else>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<He>> laughs. "You're mine, slut. They'll probably leave you when they find out about this!" <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<He>> speaks. "Keep it up and you won't see them again, <<bitch>>." <<else>> <<He>> speaks. "You're lucky they won't find you in a ditch somewhere." <</if>> <</if>> <<elseif $speechmasturbate is 1 and random(1,2) is 1 and not $gloryhole>> <<if $enemyanger lt 20>> <<He>> <<print ["speaks","speaks","coos","whispers"][random(0,3)]>>. <<print [ `"Am I not good enough for you?"`, `"Playing with yourself makes me feel so hot."`, `"You just can't wait, can you?"`, `"I see you're getting ready for me."`, ][random(0,3)]>> <<elseif $enemyanger lt 60>> <<He>> <<print ["speaks","jeers","coos","whispers"][random(0,3)]>>. <<print [ `"Do I disgust you so much you have to get yourself off?"`, `"Good <<girl>>, get all warmed up so we can play nice."`, `"I see you like it a little rough."`, `"Focus on me, <<bitch>>."`, `"I knew you'd be into this, <<slut>>."`, ][random(0,4)]>> <<else>> <<He>> <<print ["speaks","speaks","snarls","jeers"][random(0,3)]>>. <<print [ `"You know your place like a good whore."`, `"Isn't it much more fun when you behave?"`, `"I'm going to hurt you and you're going to like it."`, `"That's it, play with yourself. Pretend this isn't happening."`, `"Good little fuck slave."`, ][random(0,4)]>> <</if>> <<elseif $speechhandjobpenis is 1 and random(1, 2) is 2>> <<He>> speaks. <<if (($enemyarousal / $enemyarousalmax) * 100) gte 70>> <<if (($enemyanger / $enemyangermax) * 100) gte 10>> <<switch $npcspeechcycle>> <<case 0>> "Don't you dare stop now!" <<case 1>> "You better not waste a single drop." <<case 2>> "I'll make you lick your fingers clean when you're done." <<case 3>> "Keep going. Or I'll hurt you." <<case 4>> "Aim it at your mouth, or I'll force it down your throat!" <<case 5>> "Keep going, whore." <<default>> "Keep jerking it like the slut that you are." <</switch>> <<else>> <<switch $npcspeechcycle>> <<case 0>> "Don't stop jerking it. I'm so close!" <<case 1>> "Keep going." <<case 2>> "Milk my cock till it's dry." <<case 3>> "You're good at this." <<case 4>> "Faster! I'm almost there." <<case 5>> "Sliding my cock between your fingers feels so good." <<default>> "This feels amazing!" <</switch>> <</if>> <<else>> <<if (($enemyanger / $enemyangermax) * 100) gte 10>> <<switch $npcspeechcycle>> <<case 0>> "You better put in some work if you want to satisfy me." <<case 1>> "Your arms will tire before you can get me off like this." <<case 2>> "Keep your filthy hands off my cock." <<case 3>> "Put some work into it, or I'll make you." <<case 4>> "Just couldn't keep your hands off it, could you?" <<case 5>> "I might let you get away with this if you do a good job." <<default>> "Looks like you already know how to handle a cock, you little whore." <</switch>> <<else>> <<switch $npcspeechcycle>> <<case 0>> "Your hands feel so good around my cock." <<case 1>> "You look so cute, playing with my cock." <<case 2>> "You're so good with your hands." <<case 3>> "I love watching your fingers slide up and down my cock." <<case 4>> "This will do just fine." <<case 5>> "Show me how well you can handle a dick." <<default>> "Your hands are so soft." <</switch>> <</if>> <</if>> <<elseif $speechhandjobvagina is 1 and random(1, 2) is 2>> <<He>> speaks. <<if (($enemyarousal / $enemyarousalmax) * 100) gte 70>> <<if (($enemyanger / $enemyangermax) * 100) gte 10>> <<switch $npcspeechcycle>> <<case 0>> "Don't you dare stop now!" <<case 1>> "You better not waste a single drop." <<case 2>> "I'll make you lick your fingers clean when you're done." <<case 3>> "Keep going. Or I'll hurt you." <<case 4>> "You better keep this up." <<case 5>> "Keep going, whore." <<default>> "I'm so damn close." <</switch>> <<else>> <<switch $npcspeechcycle>> <<case 0>> "Your fingers are slippery with my juices." <<case 1>> "That's the spot. Don't stop!" <<case 2>> "I'm going to drench your hand in my juices." <<case 3>> "Faster! I'm so close!" <<case 4>> "This feels amazing. You're so good at this." <<case 5>> "Faster!" <<default>> "You're making my pussy feel so good." <</switch>> <</if>> <<else>> <<if (($enemyanger / $enemyangermax) * 100) gte 10>> <<switch $npcspeechcycle>> <<case 0>> "You better treat my pussy right." <<case 1>> "My pussy needs better than this." <<case 2>> "Take your filthy hands off my pussy." <<case 3>> "You better know what you're doing." <<case 4>> "I want more of you than just your hands." <<case 5>> "You better not bore me." <<default>> "Do a good job, or I'll have to punish you." <</switch>> <<else>> <<switch $npcspeechcycle>> <<case 0>> "Your hands are so warm." <<case 1>> "You really know how to handle a pussy." <<case 2>> "Don't be afraid of using more fingers." <<case 3>> "Don't stop rubbing my clit." <<case 4>> "You're so skilled with your hands." <<case 5>> "You have such lovely hands." <<default>> "So much better than doing it myself." <</switch>> <</if>> <</if>> <<elseif $speechdildovagina is 1 and random(1, 2) is 2>> <<if (($enemyarousal / $enemyarousalmax) * 100) gte 70>> <<if (($enemyanger / $enemyangermax) * 100) gte 10>> <<He>> <<print ["speaks","speaks","snarls","jeers"][random(0,3)]>>. <<switch $npcspeechcycle>> <<case 0>> "Don't you dare stop now!" <<case 1>> "You better not waste a single drop." <<case 2>> "I'll make you lick your toy clean when you're done." <<case 3>> "Keep going. Or I'll hurt you." <<case 4>> "You better keep this up." <<case 5>> "Keep going, whore." <<default>> "I'm so damn close." <</switch>> <<else>> <<He>> <<print ["speaks","speaks","whispers","moans"][random(0,3)]>>. <<switch $npcspeechcycle>> <<case 0>> "Your toy's slippery with my juices." <<case 1>> "That's the spot. Don't stop!" <<case 2>> "I'm going to drench your toy and hand in my juices." <<case 3>> "Faster! I'm so close!" <<case 4>> "This feels amazing. You're so good at this." <<case 5>> "Faster!" <<default>> "You're making my pussy feel so good." <</switch>> <</if>> <<else>> <<if (($enemyanger / $enemyangermax) * 100) gte 10>> <<He>> <<print ["speaks","speaks","snarls","jeers"][random(0,3)]>>. <<switch $npcspeechcycle>> <<case 0>> "You better treat my pussy right." <<case 1>> "My pussy needs better than this." <<case 2>> "Take your filthy toy off my pussy." <<case 3>> "You better know what you're doing." <<case 4>> "I want more of you than just your toy." <<case 5>> "You better not bore me." <<default>> "Do a good job, or I'll have to punish you." <</switch>> <<else>> <<He>> <<print ["speaks","speaks","whispers","moans"][random(0,3)]>>. <<switch $npcspeechcycle>> <<case 0>> "Your toy feels so good." <<case 1>> "You really know how to handle a pussy." <<case 2>> "Don't be afraid of hurting me." <<case 3>> "Don't slow down." <<case 4>> "You're so skilled with your hands." <<case 5>> "You have such lovely hands." <<default>> "So much better than doing it myself." <</switch>> <</if>> <</if>> <<elseif $speechdildoanus is 1 and random(1, 2) is 2>> <<He>> speaks. <<if (($enemyarousal / $enemyarousalmax) * 100) gte 70>> <<if (($enemyanger / $enemyangermax) * 100) gte 10>> <<switch $npcspeechcycle>> <<case 0>> "Don't you dare stop now!" <<case 1>> "You better know how to work this toy." <<case 2>> "I'll make you lick your toy clean when you're done." <<case 3>> "Keep going. Or I'll hurt you." <<case 4>> "You better keep this up." <<case 5>> "Keep going, whore." <<default>> "I'm so damn close." <</switch>> <<else>> <<switch $npcspeechcycle>> <<case 0>> "Your toy feels so good." <<case 1>> "That's the spot. Don't stop!" <<case 2>> "That's the spot. Don't stop!" <<case 3>> "Faster! I'm so close!" <<case 4>> "This feels amazing. You're so good at this." <<case 5>> "Faster!" <<default>> "You're making my ass feel so good." <</switch>> <</if>> <<else>> <<if (($enemyanger / $enemyangermax) * 100) gte 10>> <<switch $npcspeechcycle>> <<case 0>> "You better treat my ass right." <<case 1>> "My ass needs better than this." <<case 2>> "Take your filthy toy off my ass." <<case 3>> "You better know what you're doing." <<case 4>> "I want more of you than just your toy." <<case 5>> "You better not bore me." <<default>> "Do a good job, or I'll have to punish you." <</switch>> <<else>> <<switch $npcspeechcycle>> <<case 0>> "Your toy feels so good." <<case 1>> "You really know how to handle an ass." <<case 2>> "Don't be afraid of hurting me." <<case 3>> "Don't stop, it feels so good." <<case 4>> "You're so skilled with your hands." <<case 5>> "You have such lovely hands." <<default>> "So much better than doing it myself." <</switch>> <</if>> <</if>> <<elseif $speechstroker is 1 and random(1, 2) is 2>> <<He>> speaks. <<if (($enemyarousal / $enemyarousalmax) * 100) gte 70>> /* High arousal */ <<if (($enemyanger / $enemyangermax) * 100) gte 10>> /* high anger */ <<switch $npcspeechcycle>> <<case 0>> "Don't you dare stop now!" <<case 1>> "You better know how to work this toy." <<case 2>> speaks. "I'll make you lick your toy clean when you're done." <<case 3>> "Keep going. Or I'll hurt you." <<case 4>> <<print ["You better keep this up.","Aim it at your mouth, or I'll force it down your throat!"][random(0,1)]>> <<case 5>> "Keep going, whore." <<default>> "Keep jerking it like the slut that you are." <</switch>> <<else>> /* low anger */ <<switch $npcspeechcycle>> <<case 0>> "Your toy feels so good." <<case 1>> "That's the spot. Don't stop!" <<case 2>> "Milk my cock 'til it's dry." <<case 3>> "Faster! I'm so close!" <<case 4>> "This feels amazing. You're so good at this." <<case 5>> "Faster!" <<default>> "You're making my cock feel so good." <</switch>> <</if>> <<else>> /* low to mid arousal */ <<if (($enemyanger / $enemyangermax) * 100) gte 10>> /* high anger */ <<switch $npcspeechcycle>> <<case 0>> "You better treat my cock right." <<case 1>> <<print[`My cock needs better than this.`,`This toy is better than your worn-out ${$player.vaginaExist ? "holes" : "ass"}.`][random(0,1)]>> <<case 2>> "Take your filthy toy off my cock." <<case 3>> "You better know what you're doing." <<case 4>> "I want more of you than just your toy." <<case 5>> "You better not bore me." <<default>> "Do a good job, or I'll have to punish you." <</switch>> <<else>> /* low anger */ <<switch $npcspeechcycle>> <<case 0>> "Your toy feels so good around my cock." <<case 1>> "You really know how to handle cock." <<case 2>> "I love watching your toy slide up and down my cock." <<case 3>> "Don't stop, it feels so good." <<case 4>> "You're so skilled with your hands." <<case 5>> "You have such lovely hands." <<default>>"So much better than doing it myself." <</switch>> <</if>> <</if>> <<elseif $speechcheeks is 1 and random(1, 2) is 2>> <<He>> speaks. <<if (($enemyarousal / $enemyarousalmax) * 100) gte 70>> <<if (($enemyanger / $enemyangermax) * 100) gte 10>> <<switch $npcspeechcycle>> <<case 0>> "I'll slap your asscheeks raw if you stop." <<case 1>> "I'll grind against you until your ass goes numb." <<case 2>> "Don't think this'll hurt any less than putting it in." <<case 3>> "You won't be able to stand when I'm done with you!" <<case 4>> "I'll make you regret toying with me!" <<case 5>> "I'll spank the shit out of you when I'm done." <<default>> "You're gonna drain me before I can even stick it in." <</switch>> <<else>> <<switch $npcspeechcycle>> <<case 0>> "Your ass is mesmerising." <<case 1>> "You're good at this." <<case 2>> "Don't stop. Keep going!" <<case 3>> "I'm gonna shoot my load all over you." <<case 4>> "I love fucking your asscheeks." <<case 5>> "Your ass feels amazing against my cock." <<default>> "I can't wait to shoot my load on you." <</switch>> <</if>> <<else>> <<if (($enemyanger / $enemyangermax) * 100) gte 10>> <<switch $npcspeechcycle>> <<case 0>> "Want me to slap it, you whore?" <<case 1>> "You're even more of a slut than I thought." <<case 2>> "Trying to distract me from your <<print ($player.vaginaExist ? "holes" : "asshole")>>? It won't work." <<case 3>> "You look like such a whore." <<case 4>> "Look at this little slut shaking <<pher>> ass at me." <<case 5>> "I'll spank your ass raw if you don't satisfy me." <<default>> "Are you scared of having my cock inside you? Cute. I'll humour you for now." <</switch>> <<else>> <<switch $npcspeechcycle>> <<case 0>> "I can work with that." <<case 1>> "Need a warm up?" <<case 2>> "Your buttcheeks wrap so nicely around my cock." <<case 3>> "You have such a cute ass on you." <<case 4>> "Shake that ass for me." <<case 5>> "Watching you grind against me is so hot." <<default>> "You look so lewd when you run your ass-cheeks up and down my cock." <</switch>> <</if>> <</if>> <<elseif $speechthigh is 1 and random(1, 2) is 2>> <<He>> speaks. <<if (($enemyarousal / $enemyarousalmax) * 100) gte 70>> <<if (($enemyanger / $enemyangermax) * 100) gte 10>> <<switch $npcspeechcycle>> <<case 0>> "I'm gonna fuck your thighs raw." <<case 1>> "Trust a slut like you to turn anything into a hole." <<case 2>> "I'll slam your thighs all I please." <<case 3>> "You won't be able to stand when I'm done with you!" <<case 4>> "I'm so close to drenching your legs with cum!" <<case 5>> "You stand no chance against my cock." <<default>> "Your entire body exists for me to fuck." <</switch>> <<else>> <<switch $npcspeechcycle>> <<case 0>> "Your soft thighs are gonna make me cum." <<case 1>> "Sliding my cock between your thighs feels amazing." <<case 2>> "Your thighs are slick with precum." <<case 3>> "Those thighs were made to be fucked." <<case 4>> "I never expected this to feel so good." <<case 5>> "I'm gonna erupt between your thighs." <<default>> "I can't wait to see my cum run down your beautiful legs." <</switch>> <</if>> <<else>> <<if (($enemyanger / $enemyangermax) * 100) gte 10>> <<switch $npcspeechcycle>> <<case 0>> "You won't keep me away like this forever." <<case 1>> "Your thighs will do, for now." <<case 2>> "Don't waste my time with your thighs." <<case 3>> "Trying to distract me with your thighs?" <<case 4>> "My cock deserves better than this." <<case 5>> "I need more than this." <<default>> "You won't keep me away from your <<print ($player.vaginaExist ? "holes" : "asshole")>> forever." <</switch>> <<else>> <<switch $npcspeechcycle>> <<case 0>> "Your thighs are so smooth." <<case 1>> "You have beautiful legs." <<case 2>> "Your thighs are so soft." <<case 3>> "I don't mind some foreplay." <<case 4>> "I'm always open for new things." <<case 5>> "This feels surprisingly good." <<default>> "I love playing with your legs." <</switch>> <</if>> <</if>> <<elseif $speechfeet is 1 and random(1, 2) is 2>> <<He>> speaks. <<if (($enemyarousal / $enemyarousalmax) * 100) gte 70>> <<if (($enemyanger / $enemyangermax) * 100) gte 10>> <<switch $npcspeechcycle>> <<case 0>> "Your feet will be sore when I'm done with you." <<case 1>> "I'll defile every inch of your body." <<case 2>> "Your feet aren't worthy of my <<if $NPCList[_n].penis isnot "none">>cum<<else>>juices<</if>>." <<case 3>> "You must be a total slut, being this good with your feet." <<case 4>> "I won't leave an inch of your body unmolested." <<case 5>> "I'll make you lick those clean when I'm done." <<default>> "I'm gonna make a mess of your feet." <</switch>> <<else>> <<switch $npcspeechcycle>> <<case 0>> "You're so good with your feet!" <<case 1>> "Your feet feel so nice." <<case 2>> "I want to watch you lick those clean when we're done!" <<case 3>> "I'm going to drench your feet in my <<if $NPCList[_n].penis isnot "none">>cum<<else>>juices<</if>>." <<case 4>> <<if $NPCList[_n].penis isnot "none">>"I'm going to erupt between your feet."<<else>>"Your toes feel so good against my pussy."<</if>> <<case 5>> "Your feet feel so good." <<default>> "My <<if $NPCList[_n].penis isnot "none">>cock<<else>>pussy<</if>> feels so good against your feet. Don't stop." <</switch>> <</if>> <<else>> <<if (($enemyanger / $enemyangermax) * 100) gte 10>> <<switch $npcspeechcycle>> <<case 0>> "You won't keep me away with this forever." <<case 1>> "Your feet will do, for now." <<case 2>> "Don't waste my time with your feet." <<case 3>> "Trying to distract me with your feet?" <<case 4>> "You won't keep me away with your feet forever." <<case 5>> "Your feet aren't worthy of touching my <<if $NPCList[_n].penis isnot "none">>cock<<else>>pussy<</if>>." <<default>> "This won't be enough to make me cum." <</switch>> <<else>> <<switch $npcspeechcycle>> <<case 0>> "Your soles are so smooth!" <<case 1>> "You really know how to handle your feet." <<case 2>> "Put those feet to work." <<case 3>> "Show me what you can do with your feet." <<case 4>> "I love being teased by your feet." <<case 5>> "I love watching your toes play with me." <<default>> "I don't mind some foreplay." <</switch>> <</if>> <</if>> <<elseif $speechheadsuckle is 1 and random(1, 2) is 2>> <<if (($enemyarousal / $enemyarousalmax) * 100) gte 70>> <<if (($enemyanger / $enemyangermax) * 100) gte 10>> <<He>> speaks. <<switch $npcspeechcycle>> <<case 0>> "You should feel lucky to have such fresh milk." <<case 1>> "Keep sucking and I might forgive you." <<case 2>> "You're a greedy <<girl>>, aren't you?" <<case 3>> "Don't be so grouchy." <<case 4>> "You better appreciate this." <<case 5>> "Greedy brat." <<default>>"You're a real glutton." <</switch>> <<else>> <<He>> coos. <<switch $npcspeechcycle>> <<case 0>> "S-suck harder. I have more to give." <<case 1>> "It's such a relief to drain them." <<case 2>> "You're so well behaved." <<case 3>> "You like that, don't you." <<case 4>> "Finish up and we'll move on to dessert." <<case 5>> "I feel all tingly." <<default>> "I hope my milk is tasty." <</switch>> <</if>> <<else>> <<if (($enemyanger / $enemyangermax) * 100) gte 10>> <<He>> tuts. <<switch $npcspeechcycle>> <<case 0>> "I hope you choke." <<case 1>> "I'm not your mother. I won't forgive you so easily." <<case 2>> "Insolent <<girl>>. I bet you don't have a care in the world." <<case 3>> "Look at you, sucking away like you own the place." <<case 4>> "Does my milk taste good, you little brat?" <<case 5>> "My milk's too good for brats like you." <<default>> "You're having the time of your life, aren't you." <</switch>> <<else>> <<He>> coos. <<switch $npcspeechcycle>> <<case 0>> "Does my milk taste good?" <<case 1>> "I knew you were hungry." <<case 2>> "I hope my milk makes you feel good." <<case 3>> "I feel like a mother." <<case 4>> "Take your time." <<case 5>> "You gonna fall asleep?" <<default>> "You're so cute." <</switch>> <</if>> <</if>> <<elseif $speechheadnipple is 1 and random(1, 2) is 2>> <<if (($enemyarousal / $enemyarousalmax) * 100) gte 70>> <<if (($enemyanger / $enemyangermax) * 100) gte 10>> <<He>> speaks. <<switch $npcspeechcycle>> <<case 0>> "St-stupid..." <<case 1>> "I bet you're experienced at sucking things." <<case 2>> "That's it, put that whore mouth to work." <<case 3>> "Keep this up and I might forgive you." <<case 4>> "Maybe I'll share your mouth with all my friends." <<case 5>> "I bet you've done all sorts of nasty things with that mouth." <<default>> "Your slutty lips feel good against my skin." <</switch>> <<else>> <<He>> speaks. <<switch $npcspeechcycle>> <<case 0>> "You can be a bit rougher." <<case 1>> "H-harder." <<case 2>> "You tease." <<case 3>> "Your tongue... Ah!" <<case 4>> "You've done this before, haven't you." <<case 5>> "You know your way around my body." <<default>> "My chest feels so good." <</switch>> <</if>> <<else>> <<if (($enemyanger / $enemyangermax) * 100) gte 10>> <<He>> tuts. <<switch $npcspeechcycle>> <<case 0>> "You're a desperate slut, aren't you." <<case 1>> "You'd best remember who's in charge." <<case 2>> "Don't you dare bite." <<case 3>> "Don't think this means we're even." <<case 4>> "Keep sucking, whore." <<case 5>> "My chest feels good, but that doesn't mean I forgive you." <<default>> "You're such a brat." <</switch>> <<else>> <<He>> coos. <<switch $npcspeechcycle>> <<case 0>> "Don't stop." <<case 1>> "That tickles." <<case 2>> "You're making my chest feel good." <<case 3>> "That mouth of yours has some experience, I bet." <<case 4>> "You look cute like that." <<case 5>> "Your tongue feels good against my skin." <<default>> "That's it. Right there." <</switch>> <</if>> <</if>> <<elseif $speechheadnippleclosed is 1 and random(1, 2) is 2>> <<if (($enemyarousal / $enemyarousalmax) * 100) gte 70>> <<if (($enemyanger / $enemyangermax) * 100) gte 10>> <<He>> speaks. <<switch $npcspeechcycle>> <<case 0>> "You'd better start sucking, or else." <<case 1>> "I want you to suck me. Now." <<case 2>> "I bet you're good at nipple licking. Get to work." <<case 3>> "Hurry up and use your tongue." <<case 4>> "Suck. Now." <<case 5>> "Your head is there for a reason." <<default>> "Bratty <<girls>> like you are good for one thing." <</switch>> <<else>> <<He>> speaks. <<switch $npcspeechcycle>> <<case 0>> "Don't keep me waiting." <<case 1>> "Come on, make me feel good." <<case 2>> "Put your lips right there." <<case 3>> "You're making my chest feel funny." <<case 4>> "Don't fall asleep." <<case 5>> "I can't take this for much longer." <<default>> "You tease." <</switch>> <</if>> <<else>> <<if (($enemyanger / $enemyangermax) * 100) gte 10>> <<He>> tuts. <<switch $npcspeechcycle>> <<case 0>> "Stop being so stubborn." <<case 1>> "You'd best get to it, or I'll make you." <<case 2>> "You're right where I want you." <<case 3>> "You're in trouble." <<case 4>> "When I say use your tongue, you use it." <<case 5>> "I bet you've done all sorts of dirty things." <<default>> "Stupid slut." <</switch>> <<else>> <<He>> coos. <<switch $npcspeechcycle>> <<case 0>> "I can't wait to feel your tongue." <<case 1>> "They're so ready for you." <<case 2>> "I bet your lips feel wonderful." <<case 3>> "You're cute like that." <<case 4>> "I bet you've done this many times." <<case 5>> "You're a good <<girl>>, aren't you?" <<default>> "Do you like how I feel?" <</switch>> <</if>> <</if>> <<elseif $speechheadsuckleclosed is 1 and random(1, 2) is 2>> <<if (($enemyarousal / $enemyarousalmax) * 100) gte 70>> <<if (($enemyanger / $enemyangermax) * 100) gte 10>> <<He>> speaks. <<switch $npcspeechcycle>> <<case 0>> "Drink, or I'll make you." <<case 1>> "Open wide." <<case 2>> "Suck them. I need release!" <<case 3>> "Don't be such a brat." <<case 4>> "You drink when I tell you to." <<case 5>> "I can't believe how rude you are." <<default>> "I'm gonna fill you up." <</switch>> <<else>> <<He>> speaks. <<switch $npcspeechcycle>> <<case 0>> "Open wide." <<case 1>> "I promise you'll enjoy it." <<case 2>> "Don't hold back." <<case 3>> "I need to fill you." <<case 4>> "Please, hurry up and suck." <<case 5>> "Milk me dry." <<default>> "This is gonna feel so good." <</switch>> <</if>> <<else>> <<if (($enemyanger / $enemyangermax) * 100) gte 10>> <<He>> tuts. <<switch $npcspeechcycle>> <<case 0>> "Stupid <<girl>>, it's rude to turn down a treat." <<case 1>> "I'll squirt if you don't open up." <<case 2>> "You don't know what's good for you." <<case 3>> "How rude." <<case 4>> "Do as I say and open wide." <<case 5>> "Suck, or I'll make you." <<default>> "Such insolence." <</switch>> <<else>> <<He>> coos. <<switch $npcspeechcycle>> <<case 0>> "I know you're hungry." <<case 1>> "Come on, drink up." <<case 2>> "My milk will make you feel better. Open up." <<case 3>> "It's okay." <<case 4>> "Let me take care of you." <<case 5>> "Open wide." <<default>> "I promise you'll like the taste." <</switch>> <</if>> <</if>> <<elseif $speechheadbreasts is 1 and random(1, 2) is 2>> <<if (($enemyarousal / $enemyarousalmax) * 100) gte 70>> <<if (($enemyanger / $enemyangermax) * 100) gte 10>> <<He>> speaks. <<switch $npcspeechcycle>> <<case 0>> "You're lucky I'm not rougher." <<case 1>> "Maybe I'll keep you buried in my boobs." <<case 2>> "Better get to work, or I won't let you out." <<case 3>> "Impressed by my size?" <<case 4>> "You get to touch my magnificent breasts. You're so lucky." <<case 5>> "It feels good for me, at least." <<default>> "I bet you're enjoying this, slut." <</switch>> <<else>> <<He>> speaks. <<switch $npcspeechcycle>> <<case 0>> "My my." <<case 1>> "Don't be shy. You can play with them." <<case 2>> "Feels good in there, right?" <<case 3>> "Can you feel my heart beat? Or are my breasts too big?" <<case 4>> "My breasts feel tingly." <<case 5>> "Are my breasts soft enough?" <<default>> "My breasts feel so good." <</switch>> <</if>> <<else>> <<if (($enemyanger / $enemyangermax) * 100) gte 10>> <<He>> tuts. <<switch $npcspeechcycle>> <<case 0>> "I bet you're enjoying this." <<case 1>> "Trouble breathing?" <<case 2>> "Don't pass out in there." <<case 3>> "I bet you wanted this. Pervert." <<case 4>> "Hold still." <<case 5>> "Stop squirming." <<default>> "My breasts are better than you deserve." <</switch>> <<else>> <<He>> coos. <<switch $npcspeechcycle>> <<case 0>> "Are you blushing? That's so cute." <<case 1>> "Does it feel nice being smothered?" <<case 2>> "People always stare at my breasts." <<case 3>> "Are my breasts that much bigger than normal?" <<case 4>> "I can tell you like my breasts." <<case 5>> "Are my breasts soft enough?" <<default>> "Do you like my breasts?" <</switch>> <</if>> <</if>> <<elseif $speechheadchest is 1 and random(1, 2) is 2>> <<if (($enemyarousal / $enemyarousalmax) * 100) gte 70>> <<if (($enemyanger / $enemyangermax) * 100) gte 10>> <<He>> speaks. <<switch $npcspeechcycle>> <<case 0>> "It's your fault my breasts feel this way." <<case 1>> "I bet you think being cute means you can get away with whatever you like." <<case 2>> "I'm gonna do so many things to you." <<case 3>> "Don't get too comfortable." <<case 4>> "Shame on you, getting me riled up like this." <<case 5>> "What are you waiting for? Put that mouth to work." <<default>> "You better give me what I want." <</switch>> <<else>> <<He>> speaks. <<switch $npcspeechcycle>> <<case 0>> "You're so lewd." <<case 1>> "I can't keep this up much longer." <<case 2>> "Are my nipples hard? You did that." <<case 3>> "How can you be so cute and lewd at the same time." <<case 4>> "Are you feeling good? I am." <<case 5>> "My nipples need your touch." <<default>> "My chest feels warm where you touch it." <</switch>> <</if>> <<else>> <<if (($enemyanger / $enemyangermax) * 100) gte 10>> <<He>> tuts. <<switch $npcspeechcycle>> <<case 0>> "You'd better start putting that mouth to work. Or else." <<case 1>> "Be a good <<girl>> and do what I say." <<case 2>> "Stay where I can see you." <<case 3>> "I know you like my chest, slut." <<case 4>> "You like that, don't you." <<case 5>> "You're pathetic." <<default>> "I bet you think you can get away with anything." <</switch>> <<else>> <<He>> coos. <<switch $npcspeechcycle>> <<case 0>> "I know just what to do with you." <<case 1>> "Can you feel my heartbeat?" <<case 2>> "Your hair is soft." <<case 3>> "You're so cute." <<case 4>> "I like having you close to me." <<case 5>> "Is my chest comfy?" <<default>> "Soft." <</switch>> <</if>> <</if>> <<elseif $speechvaginaescape is 1>> <<set $speechvaginaescape to 0>> <<He>> speaks. <<if $enemyanger lte 20>> <<print [ `"I can't enjoy you properly if you keep squirming around."`, `"Be still now."`, `"You're a feisty little thing!"`, ][random(0,2)]>> <<elseif $enemyanger lte 100>> <<print [ `"Keep pretending you don't want to be fucked, I'm not fooled."`, `"Stop resisting."`, `"I love it when you squirm."`, ][random(0,2)]>> <<else>> <<print [ `"Do you think that will stop me, <<bitch>>?"`, `"The sooner you accept that you're nothing but a cock-sleeve the easier it'll be for you."`, `"Your pussy is mine slut, stop fighting it."`, ][random(0,2)]>> <</if>> <<elseif $speechpenisescape is 1>> <<set $speechpenisescape to 0>> <<He>> speaks. <<if $enemyanger lte 20>> <<print [ `"I can't enjoy you properly if you keep squirming around."`, `"Be still now."`, `"You're a feisty little thing!"`, ][random(0,2)]>> <<elseif $enemyanger lte 100>> <<print [ `"Keep pretending you don't want to be fucked, I'm not fooled."`, `"Stop resisting."`, `"I love it when you squirm."`, ][random(0,2)]>> <<else>> <<print [ `"Do you think that will stop me, <<bitch>>?"`, `"The sooner you accept that you're nothing but a piece of fuckmeat the easier it'll be for you."`, `"Your dick is mine slut, stop fighting it."`, ][random(0,2)]>> <</if>> <<elseif $speechotheranusescape is 1>> <<set $speechotheranusescape to 0>> <<He>> speaks. <<if $enemyanger lte 20>> <<print [ `"I can't enjoy you properly if you keep squirming around."`, `"Be still now."`, `"You're a feisty little thing!"`, ][random(0,2)]>> <<elseif $enemyanger lte 100>> <<print [ `"Keep pretending you don't want to be fucked, I'm not fooled."`, `"Stop resisting."`, `"I love it when you squirm."`, ][random(0,2)]>> <<else>> <<print [ `"Do you think that will stop me, <<bitch>>?"`, `"The sooner you accept that you're nothing but a piece of fuckmeat the easier it'll be for you."`, `"Your dick is mine slut, stop fighting it."`, ][random(0,2)]>> <</if>> <<elseif $speechanusescape is 1>> <<set $speechanusescape to 0>> <<He>> speaks. <<if $enemyanger lte 20>> <<print [ `"I can't enjoy you properly if you keep squirming around."`, `"Be still now."`, `"You're a feisty little thing!"`, ][random(0,2)]>> <<elseif $enemyanger lte 100>> <<print [ `"Keep pretending you don't want to be fucked, I'm not fooled."`, `"Stop resisting."`, `"I love it when you squirm."`, ][random(0,2)]>> <<else>> <<print [ `"Do you think that will stop me, <<bitch>>?"`, `"The sooner you accept that you're nothing but a cock-sleeve the easier it'll be for you."`, `"Your ass is mine slut, stop fighting it."`, ][random(0,2)]>> <</if>> <<elseif $speechpenispenetrated is 1>> <<if $dissociation lt 2>> <<if $enemyanger lte 20>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<He>> is lost in the moment. "Yes! Yes! Give it to me! AH!" <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<He>> speaks hushedly. "I've been needing this so badly." <<else>> <<if playerHasStrapon()>> <<He>> <<print ["speaks.","speaks.","coos.","whispers."][random(0,3)]>> "Your <<print $worn.under_lower.name>> feels so good inside me." <<else>> <<He>> speaks. "You feel so good inside me." <</if>> <</if>> <<elseif $enemyanger lte 100>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<He>> is lost in the moment. "UHH! That's it...Not long now... AH!" <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<He>> speaks hushedly. "That's it right there, good <<girl>>." <<else>> <<He>> speaks "I've been waiting too long for this, don't even think about stopping!" <</if>> <<else>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<He>> is lost in the moment. "You... Stupid... AHH!" <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<if playerHasStrapon()>> <<He>> <<print ["jeers","mocks you","teases"][random(0,2)]>>. "Do you know how to use this toy?" <<else>> <<He>> mocks you. "What's it like having your dick dominated like this?" <</if>> <<else>> <<He>> mocks you. "You're right where you belong." <</if>> <</if>> <<else>> <!-- Code deprecated as part of sissification and forced orgasm-like-a-girl content testing --> <<if $enemyanger lte 20>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<He>> is lost in the moment. "Oh! You... I... AHHH!" <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<He>> speaks hushedly. "You're so cute when you're being fucked." <<else>> <<He>> speaks. "Just relax, I'll look after your dick." <</if>> <<elseif $enemyanger lte 100>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<He>> is lost in the moment. "Keep... going... not long now." <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<He>> speaks. "Nothing like a nice cock." <<else>> <<He>> speaks. "You like being inside me, don't you?" <</if>> <<else>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<He>> is lost in the moment. "You... Stupid... AHH!" <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<He>> speaks hushedly. "You make a good fucktoy." <<else>> <<He>> speaks. "You're mine now, <<girl>>." <</if>> <</if>> <</if>> <<elseif $speechotheranuspenetrated is 1>> <<if $dissociation lt 2>> <<if playerHasStrapon()>> <<if $enemyanger lte 20>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<He>> is lost in the moment. "<<print ["Yes! Yes! Give it to me! Fuck my ass!","Yes, yes! Make me your strap-on <<bitch>>!","Oh-oh-yes! I'm nearly there, don't stop!"][random(0,2)]>>" <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<He>> speaks hushedly. "<<print ["I've been needing this so badly.","Give it to me harder!","Right there, just like that."][random(0,2)]>>" <<else>> <<He>> speaks. "Your toy feels so good inside me." <</if>> <<elseif $enemyanger lte 100>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<He>> is lost in the moment. "UHH! That's it... Not long now... AH!" <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<He>> speaks hushedly. "That's it, right there, good <<girl>>." <<else>> <<He>> <<print ["speaks. \"I've been waiting too long for this, don't even think about stopping!\"","teases. \"Do you know how to use this toy?\""][random(0,1)]>> <</if>> <<else>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<He>> is lost in the moment. "You... Stupid... AHH!" <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<He>> <<print ["mocks you","mocks you","jeers","snarls"][random(0,3)]>>. "Even with your toy up my ass, you're still the bottom <<bitch>>." <<else>> <<He>> mocks you. "You're right where you belong." <</if>> <</if>> <<else>> <<if $enemyanger lte 20>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<He>> is lost in the moment. "Yes! Yes! Give it to me! Fill me up!" <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<He>> speaks hushedly. "I've been needing this so badly." <<else>> <<He>> speaks. "You feel so good inside me." <</if>> <<elseif $enemyanger lte 100>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<He>> is lost in the moment. "UHH! That's it... Not long now... AH!" <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<He>> speaks hushedly. "That's it, right there, good <<girl>>." <<else>> <<He>> speaks "I've been waiting too long for this, don't even think about stopping!" <</if>> <<else>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<He>> is lost in the moment. "You... Stupid... AHH!" <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<He>> mocks you. "What's it like having your dick dominated like this?" <<else>> <<He>> mocks you. "You're right where you belong." <</if>> <</if>> <</if>> <<else>> <!-- Code deprecated as part of sissification and forced orgasm-like-a-girl content testing --> <<if $enemyanger lte 20>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<He>> is lost in the moment. "Oh! You... I... AHHH!" <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<He>> speaks hushedly. "You're so cute when you're being fucked." <<else>> <<He>> speaks. "Just relax, I'll look after your dick." <</if>> <<elseif $enemyanger lte 100>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<He>> is lost in the moment. "Keep... going... not long now." <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<He>> speaks. "Nothing like a nice cock." <<else>> <<He>> speaks. "You like being inside me, don't you?" <</if>> <<else>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<He>> is lost in the moment. "You... Stupid... AHH!" <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<He>> speaks hushedly. "You make a good fucktoy." <<else>> <<He>> speaks. "You're mine now, <<girl>>." <</if>> <</if>> <</if>> <<elseif $speechvaginapenetrated is 1>> <<if $dissociation lt 2>> <<if $vaginatarget isnot undefined and npcHasStrapon($vaginatarget)>> <!-- NPC strap-on --> <<if $enemyanger lte 20>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<He>> is lost in the moment. "<<print ["Yes, baby, just like that!","Oh yes! Just like that, my little fucktoy!","Take it like the whore you are!","I can feel your legs shaking!"][random(0,3)]>>" <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<He>> speaks. "It feels so good hammering against my clit." <<else>> <<He>> speaks. "Your pussy is perfect." <</if>> <<elseif $enemyanger lte 100>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<He>> is lost in the moment. "That's it! Take it, whore!" <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<He>> speaks hushedly. "Good <<girl>>." <<else>> <<He>> speaks "Your body is welcoming me at least." <</if>> <<else>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<He>> is lost in the moment. "Take it! Take it all you worthless slut!" <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<He>> mocks you. "What's it like having your pussy dominated like this?" <<else>> <<He>> mocks you. "You're right where you belong." <</if>> <</if>> <<else>> <<if $enemyanger lte 20>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<He>> is lost in the moment. "I'm gonna fill you up soon, I hope you're ready!" <<elseif playerBellyVisible() and $settings.pregnancySpeechEnabled>> "For a <<bred>> <<bitch>>, you're still pretty tight." <<insecurity "pregnancy" 2>><<ginsecurity "pregnancy">> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<He>> speaks. "You feel so nice around my dick." <<else>> <<He>> speaks. "Your pussy is so warm." <</if>> <<elseif $enemyanger lte 100>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<He>> is lost in the moment. "That's it! Take it, whore!" <<elseif playerBellyVisible() and $settings.pregnancySpeechEnabled>> "The more you struggle, the rougher I get, and that can't be good for the little brat, now can it?" <<insecurity "pregnancy" 2>><<ginsecurity "pregnancy">> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<He>> speaks hushedly. "Good <<girl>>." <<else>> <<He>> speaks "Your body is welcoming me at least." <</if>> <<else>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<He>> is lost in the moment. "Take it! Take it all you worthless slut!" <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<He>> mocks you. "What's it like having your pussy dominated like this?" <<else>> <<He>> mocks you. "You're right where you belong." <</if>> <</if>> <</if>> <<else>> <!-- Code deprecated as part of sissification and forced orgasm-like-a-girl content testing --> <<if $enemyanger lte 20>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<He>> is lost in the moment. "Your pussy is so good!" <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<He>> speaks hushedly. "You're so cute when you're being fucked." <<else>> <<He>> speaks. "Just relax, I'll look after you." <</if>> <<elseif $enemyanger lte 100>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<He>> is lost in the moment. "Keep... going... not long now." <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<He>> speaks. "Nothing like the cunt of a <<girl>> who tried fighting back." <<else>> <<He>> speaks. "You like being filled like this, don't you?" <</if>> <<else>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<He>> is lost in the moment. "Don't act like you didn't want this, I can feel you squeezing my dick, begging for my cum." <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<He>> speaks hushedly. "This is your place, remember that." <<else>> <<He>> speaks. "You're mine now, <<girl>>." <</if>> <</if>> <</if>> <<elseif $speechanuspenetrated is 1>> <<if $dissociation lt 2>> <<if $anustarget isnot undefined and npcHasStrapon($anustarget)>> <!-- NPC strap-on --> <<if $enemyanger lte 20>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<He>> is lost in the moment. "<<print ["Yes, baby, just like that!","Oh yes! Just like that, my little fucktoy!","Your moans are so good! I'm cumming!","Moan for me, <<bitch>>!"][random(0,3)]>>" <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<He>> speaks. "It feels so good hammering against my clit." <<else>> <<He>> speaks. "<<print ["Your butt is so welcoming","You're so tight, just relax"][random(0,1)]>>." <</if>> <<elseif $enemyanger lte 100>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<He>> is lost in the moment. "That's it! Take it, whore!" <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<He>> speaks hushedly. "Good <<girl>>." <<else>> <<He>> speaks "Your body is welcoming me at least." <</if>> <<else>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<He>> is lost in the moment. "Take it! Take it all you worthless slut!" <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<He>> mocks you. "What's it like having your ass dominated like this?" <<else>> <<He>> mocks you. "You're right where you belong." <</if>> <</if>> <<else>> <<if $enemyanger lte 20>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<He>> is lost in the moment. "I'm gonna fill you up soon, I hope you're ready!" <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<He>> speaks. "You feel so nice around my dick." <<else>> <<He>> speaks. "Your butt is so warm." <</if>> <<elseif $enemyanger lte 100>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<He>> is lost in the moment. "That's it! Take it, whore!" <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<He>> speaks hushedly. "Good <<girl>>." <<else>> <<He>> speaks "Your body is welcoming me at least." <</if>> <<else>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<He>> is lost in the moment. "Take it! Take it all you worthless slut!" <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<He>> mocks you. "What's it like having your ass dominated like this?" <<else>> <<He>> mocks you. "You're right where you belong." <</if>> <</if>> <</if>> <<else>> <!-- Code deprecated as part of sissification and forced orgasm-like-a-girl content testing --> <<if $enemyanger lte 20>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<He>> is lost in the moment. "Your butt is so tight!" <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<He>> speaks hushedly. "You're so cute when you're being fucked." <<else>> <<He>> speaks. "Just relax, I'll look after you." <</if>> <<elseif $enemyanger lte 100>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<He>> is lost in the moment. "Keep... going... not long now." <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<He>> speaks. "Nothing like an anal fucktoy." <<else>> <<He>> speaks. "You like being filled like this, don't you?" <</if>> <<else>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<He>> is lost in the moment. "Don't act like you didn't want this, I can feel you squeezing my dick, begging for my cum." <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<He>> speaks hushedly. "This is your place, remember that." <<else>> <<He>> speaks. "You're mine now, <<girl>>." <</if>> <</if>> <</if>> <<elseif $speechmouthpenetrated is 1>> <<if $dissociation lt 2>> <<if $mouthtarget isnot undefined and npcHasStrapon($mouthtarget)>> <!-- NPC strap-on --> <<if $enemyanger lte 20>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<He>> is lost in the moment. "<<print ["Yes, baby, just like that!","Oh yes! Just like that, my little fucktoy!","Open your mouth for me, <<bitch>>.","Your drooling is so hot."][random(0,3)]>>" <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<He>> speaks. "It feels so good hammering my clit." <<else>> <<He>> speaks. "<<print ["Do you like mouth-fucking my toy?","How does my toy taste?","This is so hot baby.","I want to see you deep throat my toy."][random(0,3)]>>" <</if>> <<elseif $enemyanger lte 100>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<He>> is lost in the moment. "That's it! Take it, whore!" <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<He>> speaks hushedly. "Good <<girl>>." <<else>> <<He>> speaks "Your throat is welcoming me at least." <</if>> <<else>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<He>> is lost in the moment. "Take it! Take it all you worthless slut!" <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<He>> mocks you. "What's it like being dominated like this?" <<else>> <<He>> mocks you. "You're right where you belong." <</if>> <</if>> <<else>> <!-- Not indented until feedback. Regular blowsex code --> <<if $enemyanger lte 20>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<He>> is lost in the moment. "I'm gonna fill you up soon, I hope you're ready!" <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<He>> speaks. "You feel so nice around my dick." <<else>> <<He>> speaks. "Your mouth is so warm." <</if>> <<elseif $enemyanger lte 100>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<He>> is lost in the moment. "That's it! Take it, whore!" <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<He>> speaks hushedly. "Good <<girl>>." <<else>> <<He>> speaks "Your throat is welcoming me at least." <</if>> <<else>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<He>> is lost in the moment. "Take it! Take it all you worthless slut!" <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<He>> mocks you. "What's it like being dominated like this?" <<else>> <<He>> mocks you. "You're right where you belong." <</if>> <</if>> <</if>> <<else>> <!-- Code deprecated as part of sissification and forced orgasm-like-a-girl content testing --> <<if $enemyanger lte 20>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<He>> is lost in the moment. "Keep going, I'm almost there!" <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<He>> speaks hushedly. "You're so cute with your lips around my dick." <<else>> <<He>> speaks. "Just relax, I'll look after you." <</if>> <<elseif $enemyanger lte 100>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<He>> is lost in the moment. "Keep... going... not long now." <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<He>> speaks. "Nothing like a mouthy fucktoy." <<else>> <<He>> speaks. "You like being filled like this, don't you?" <</if>> <<else>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<He>> is lost in the moment. "Don't act like you didn't want this, your mouth was made for it." <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<He>> speaks hushedly. "This is your place, remember that." <<else>> <<He>> speaks. "You're mine now, <<girl>>." <</if>> <</if>> <</if>> <<elseif $speechvaginaimminent is 1>> <<He>> speaks. <<if npcHasStrapon($vaginatarget)>> <<if $player.virginity.vaginal is true>> <<if $enemyanger lte 60>> <<print [ `"My toy is pressing against your virgin pussy... I could deflower you at any moment."`, `"Let's find out if your virgin pussy can handle my strap-on."`, ][random(0,1)]>> <<else>> <<print [ `"I'm an inch away from taking your virginity, <<bitch>>."`, `"You're not gonna be a virgin for long."`, ][random(0,1)]>> <</if>> <<else>> <<if $enemyanger lte 60>> <<print [ `"I need to feel your pussy hammer this toy against my clit!"`, `"I can't wait to start pounding away at your pussy."`, ][random(0,1)]>> <<else>> <<print [ `"I hope your pussy is ready, I sure am."`, `"My fat toy will ruin your cunt, <<bitch>>."`, ][random(0,1)]>> <</if>> <</if>> <<else>> <<if $player.virginity.vaginal is true>> <<if $enemyanger lte 60>> <<print [ `"My dick is pressing against your virgin pussy... I could deflower you at any moment."`, `"Let's find out if your virgin pussy can handle my cock."`, ][random(0,1)]>> <<else>> <<print [ `"I'm an inch away from taking your virginity, <<bitch>>."`, `"You're not gonna be a virgin for long."`, ][random(0,1)]>> <</if>> <<else>> <<if playerBellyVisible() and $settings.pregnancySpeechEnabled>> "Maybe if you're lucky, when that brat is born, I'll come and put one of my own in ya." <<elseif $enemyanger lte 60>> <<print [ `"Just having the tip pressing against you like this is driving me mad!"`, `"I can't wait to start pounding away at your pussy."`, ][random(0,1)]>> <<else>> <<print [ `"I hope your pussy is ready, I sure am."`, `"I'm going to destroy your cunt, <<bitch>>."`, ][random(0,1)]>> <</if>> <</if>> <</if>> <<elseif $speechpenisimminent is 1>> <<He>> speaks. <<if playerHasStrapon()>> <<if $enemyanger lte 60>> <<print [ `"Just having the tip pressing against me like this is driving me mad!"`, `"I can't wait to feel your strap-on inside me."`, ][random(0,1)]>> <<elseif $enemyanger lte 80>> <<print [ `"I need a hard cock, but this will do."`, `"Can your little toy keep up with my pussy?"`, ][random(0,1)]>> <<else>> <<print [ `"You better know how to use this toy, don't make me hurt you."`, `"I'm going to destroy your strap-on."`, ][random(0,1)]>> <</if>> <<elseif $player.virginity.penile is true>> <<if $enemyanger lte 60>> <<print [ `"My pussy is pressing against your virgin dick... I could deflower you at any moment."`, `"My pussy is going to destroy your virginity."`, ][random(0,1)]>> <<else>> <<print [ `"I'm an inch away from taking your virginity, <<bitch>>."`, `"You're not gonna be a virgin for long."`, ][random(0,1)]>> <</if>> <<else>> <<if $enemyanger lte 60>> <<print [ `"Just having the tip pressing against me like this is driving me mad!"`, `"I can't wait to feel you inside me."`, ][random(0,1)]>> <<else>> <<print [ `"I hope your dick is ready, I sure am."`, `"I'm going to destroy your penis."`, ][random(0,1)]>> <</if>> <</if>> <<elseif $speechotheranusimminent is 1>> <<He>> speaks. <<if playerHasStrapon()>> <<if $enemyanger lte 60>> <<print [ `"Just having the tip pressing against me like this is driving me mad!"`, `"I can't wait to take your strap-on up my ass."`, ][random(0,1)]>> <<elseif $enemyanger lte 80>> <<print [ `"I need a hard cock, but this will do."`, `"Can your little toy satisfy my ass?"`, ][random(0,1)]>> <<else>> <<print [ `"You better know how to use this toy, don't make me hurt you."`, `"My ass will destroy your little strap-on."`, ][random(0,1)]>> <</if>> <<elseif $player.virginity.penile is true>> <<if $enemyanger lte 60>> "My ass is pressing against your virgin dick... I could deflower you at any moment." <<else>> "I'm an inch away from taking your virginity, <<bitch>>." <</if>> <<else>> <<if $enemyanger lte 60>> "Just having the tip pressing against me like this is driving me mad!" <<else>> "I hope your dick is ready, I sure am." <</if>> <</if>> <<elseif $speechanusimminent is 1>> <<He>> speaks. <<if $anustarget isnot undefined and npcHasStrapon($anustarget)>> <<if $player.virginity.anal is true>> <<if $enemyanger lte 60>> "My toy is pressing against your virgin ass... It's gonna be a tight fit!" <<else>> "I'm an inch away from taking your anal virginity, <<bitch>>." <</if>> <<else>> <<if $enemyanger lte 60>> "I can't wait to start pounding your ass!" <<else>> "I hope your ass is ready for my strap-on, <<bitch>>!" <</if>> <</if>> <<else>> <<if $player.virginity.anal is true>> <<if $enemyanger lte 60>> "My dick is pressing against your virgin ass... It's gonna be a tight fit!" <<else>> "I'm an inch away from taking your anal virginity, <<bitch>>." <</if>> <<else>> <<if playerBellyVisible() and $settings.pregnancySpeechEnabled>> "Don't worry, I'll put it up your ass instead to keep the kid safe." <<elseif $enemyanger lte 60>> "Just having the tip pressing against you like this is driving me mad!" <<else>> "I hope your ass is ready, my dick sure is!" <</if>> <</if>> <</if>> <<elseif $speechmouthimminent is 1>> <<He>> speaks. <<if $player.virginity.oral is true>> <<if $enemyanger lte 60>> "You've never <<= npcHasStrapon(_n) ? "given head" : "tasted dick">> before, have you? You're in for a treat!" <<else>> "You've never <<= npcHasStrapon(_n) ? "given head" : "tasted dick">> before, have you? If you bite me, I'll fuck you up.<<if npcHasStrapon(_n)>> I don't want some brat leaving teeth marks on my strap.<</if>>" <</if>> <<else>> <<if $enemyanger lte 60>> "Just having the tip pressing against you like this is driving me mad!" <<else>> "Open wide, whore." <</if>> <</if>> <<elseif $speechapologise is 1>> <<He>> speaks. <<if $enemyanger lte 20>> "How could I be mad at a little hottie like you?" <<elseif $enemyanger lte 100>> "I can think of a few ways you can make it up to me." <<else>> "You better not be lying to me, or you'll be real sorry." <</if>> <<elseif $speechvaginaentrance is 1>> <<He>> speaks. <<if $player.gender_appearance is "m">> <<if $enemyanger lte 20>> "Don't worry, I'll be gentle." <<elseif $enemyanger lte 100>> "I can't wait to fuck you." <<else>> "Don't try to squirm. You're mine." <</if>> <<else>> <<if $enemyanger lte 20>> "Don't worry, I'll be gentle." <<elseif $enemyanger lte 100>> "I can't wait to fuck you." <<else>> "Don't try to squirm away. You're mine." <</if>> <</if>> <<elseif $speechanusentrance is 1>> <<He>> speaks. <<if $enemyanger lte 20>> "Don't worry, I'll be gentle with your ass." <<elseif $enemyanger lte 100>> "I can't wait to fuck you." <<else>> "Don't try to squirm away, your ass is mine." <</if>> <<elseif $speechmouthentrance is 1>> <<He>> speaks. <<if $mouthtarget isnot undefined and npcHasStrapon($mouthtarget)>> <<if $enemyanger lte 20>> "Let's see that tongue of yours." <<elseif $enemyanger lte 100>> "I can't wait to see your tongue on my strap-on." <<else>> "I want your lips around my toy. Now." <</if>> <<else>> <<if $enemyanger lte 20>> "Let's see that tongue of yours." <<elseif $enemyanger lte 100>> "I can't wait to feel your tongue on my dick." <<else>> "I want your lips around my dick. Now." <</if>> <</if>> <<elseif $speechpenisentrance is 1>> <<He>> speaks. <<if playerHasStrapon()>> <<if $enemyanger lte 20>> "The anticipation is almost too much!" <<elseif $enemyanger lte 80>> "I'd rather a penis, but this will do." <<elseif $enemyanger lte 100>> "I hope you know how to use this toy." <<else>> "I hope your toy satisfies me, for your sake." <</if>> <<elseif $player.gender_appearance is "f">> <<if $enemyanger lte 20>> "The anticipation is almost too much!" <<elseif $enemyanger lte 100>> "You're eager for my pussy, don't try to hide it." <<else>> "I hope you satisfy me, for your sake." <</if>> <<else>> <<if $enemyanger lte 20>> "My pussy almost has you, the anticipation is almost too much!" <<elseif $enemyanger lte 100>> "You're eager for my pussy, don't try to hide it." <<else>> "I hope you satisfy me, for your sake." <</if>> <</if>> <<elseif $speechotheranusentrance is 1>> <<He>> speaks. <<if $enemyanger lte 20>> "Is my ass making you feel good?" <<elseif $enemyanger lte 100>> "Your dick is eager for my ass, don't try to hide it." <<else>> "I hope you satisfy me, for your sake." <</if>> <<elseif $speechvaginawithhold is 1>> <<He>> speaks. <<if $enemyanger lte 20>> "I really wish I could fuck you, guess I'll have to make do." <<elseif $enemyanger lte 100>> "Are you sure you don't want my dick? Your pussy seems to." <<else>> "Fuck, I can't hold back like this for long." <</if>> <<elseif $speechanuswithhold is 1>> <<He>> speaks. <<if $enemyanger lte 20>> "I really wish I could ass fuck you, guess I'll have to make do." <<elseif $enemyanger lte 100>> "Are you sure you don't want my dick? Your ass is so close..." <<else>> "Fuck, I can't hold back like this for long." <</if>> <<elseif $speechpeniswithhold is 1>> <<He>> speaks. <<if $enemyanger lte 20>> "I can't take this, I need you inside me!" <<elseif $enemyanger lte 100>> "I can't take this, I need you inside me!" <<else>> "Fuck, I can't hold back like this for long." <</if>> <<elseif $speechotheranuswithhold is 1>> <<He>> speaks. <<if $enemyanger lte 20>> "I can't take this, I need you inside me!" <<elseif $enemyanger lte 100>> "I can't take this, I need you inside me!" <<else>> "Fuck, I can't hold back like this for long." <</if>> <<elseif $speechvagina is 1>> <<He>> speaks. <<if $arousal gte ($arousalmax / 5) * 4>> <<if $enemyanger lte 20>> "Your pussy is so moist! You need it bad, don't you?" <<elseif $enemyanger lte 100>> "You're sopping wet down here!" <<else>> "Don't pretend you don't want this. Your pussy is far too wet." <</if>> <<else>> <<if $enemyanger lte 20>> "Don't worry, I'll soon have your pussy drenched." <<elseif $enemyanger lte 100>> "How do you like the feel of me moving inside you?" <<else>> "You like being treated like a cheap harlot, don't lie." <</if>> <</if>> <<elseif $speechpenis is 1>> <<He>> speaks. <<if $arousal gte ($arousalmax / 5) * 4>> <<if $enemyanger lte 20>> "Your dick is so hard! You need it bad, don't you?" <<elseif $enemyanger lte 100>> "Don't pretend you don't want this, not with a dick this hard." <<else>> "Don't pretend you don't want this, not with a dick this hard." <</if>> <<else>> <<if $enemyanger lte 20>> "Does my hand make you feel good?" <<elseif $enemyanger lte 100>> "You like that, don't you." <<else>> "Your dick is in my hand, I hope you realise who's in charge now." <</if>> <</if>> <<elseif $speechanus is 1>> <<if $NPCList[_n].lefthand is "anusdildo" or $NPCList[_n].righthand is "anusdildo">> <<set $_toyOrFinger to ($NPCList[_n].lefthand is "anusdildo" ? $NPCList[_n].lefttool : $NPCList[_n].righttool)>> <<else>> <<set $_toyOrFinger to "finger">> <</if>> <<He>> speaks. <<if $enemyanger lte 20>> "Does my $_toyOrFinger make you feel good?" <<elseif $enemyanger lte 100>> "You like that, don't you." <<else>> "You better start being good, I can be much rougher than this." <<He>> moves the $_toyOrFinger in your anus more violently to demonstrate the point. <</if>> <<elseif $speechvaginamouth is 1>> <<if $enemyanger lte 20>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<He>> is lost in the moment. "Ohh! Not long now!" <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<He>> speaks. "How do you like the taste of my juices?" <<else>> <<He>> speaks. "Let's see what your tongue is capable of." <</if>> <<elseif $enemyanger lte 100>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<He>> is lost in the moment. "Mmm, it feels so good!" <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<He>> speaks. "Now's your chance to satisfy me." <<else>> <<He>> speaks. "You don't want to disappoint me, do you?" <</if>> <<else>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<He>> is lost in the moment. "OHH! Your tongue, you stupid... AHH!" <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<He>> speaks. "You better swallow all my juices." <<else>> <<He>> speaks. "Nothing like rubbing my cunt in a fucktoy's face to remind them who's boss." <</if>> <</if>> <<elseif $speechvaginavagina is 1>> <<if $enemyanger lte 20>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<He>> is lost in the moment. "Ohh! Not long now!" <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<He>> speaks. "How do you like the feel of my pussy against yours?" <<else>> <<He>> speaks. "How do you like the feel of my pussy against yours?" <</if>> <<elseif $enemyanger lte 100>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<He>> is lost in the moment. "Our juices are mingling together." <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<He>> speaks. "Mmm, it feels so good!" <<else>> <<He>> speaks. "You don't want to disappoint me, do you? Rub harder." <</if>> <<else>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<He>> is lost in the moment. "OHH! Your pussy is so good!" <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<He>> speaks. "You act like you don't want this, but your pussy is drenching me." <<else>> <<He>> speaks. "You like that, slut?" <</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 $speechpenispenis is 1>> <<if playerChastity("penis")>> <<if $enemyanger lte 20>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<He>> is lost in the moment. "Ohh! Not long now!" <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<He>> speaks. "If only I could get you out of that chastity." <<else>> <<He>> speaks. "How do you like the fact of our <<penises>> are so close together?" <</if>> <<elseif $enemyanger lte 100>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<if $worn.genitals.name is "chastity parasite">> <<He>> is lost in the moment. "If only my penis juice could mix with yours." <<else>> <<He>> is lost in the moment. "Our penis juices are mingling together." <</if>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<He>> speaks. "Mmm, it feels so good!" <<else>> <<He>> speaks. "You don't want to disappoint me, do you? Rub harder." <</if>> <<else>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<He>> is lost in the moment. "OHH! Your penis is so good!" <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<if $worn.genitals.name is "chastity parasite">> <<He>> speaks. "You act like you don't want this, but your reaction tells me otherwise." <<else>> <<He>> speaks. "You act like you don't want this, but your <<penis>> is drenching me in precum." <</if>> <<else>> <<He>> speaks. "You like that, stud?" <</if>> <</if>> <<else>> <<if $enemyanger lte 20>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<He>> is lost in the moment. "Ohh! Not long now!" <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<He>> speaks. "How do you like the feel of my cock against yours?" <<else>> <<He>> speaks. "How do you like the feel of our <<penises>> pressed together?" <</if>> <<elseif $enemyanger lte 100>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<He>> is lost in the moment. "Our penis juices are mingling together." <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<He>> speaks. "Mmm, it feels so good!" <<else>> <<He>> speaks. "You don't want to disappoint me, do you? Rub harder." <</if>> <<else>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<He>> is lost in the moment. "OHH! Your penis is so good!" <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<He>> speaks. "You act like you don't want this, but your <<penis>> is drenching me in precum." <<else>> <<He>> speaks. "You like that, stud?" <</if>> <</if>> <</if>> <<elseif $speechfencingentrance 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 <<penis>>." <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<He>> speaks. "Your penis will feel so good against mine." <<else>> <<He>> speaks. "Your <<penis>> looks tasty." <</if>> <<elseif $enemyanger lte 100>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<He>> is lost in the moment. "I need your penis. 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 cock 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 dick, 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 penis will dominate you." <</if>> <</if>> <<elseif $speechbeat is 1>> <<He>> speaks. <<print [ `"That's the least you deserve, <<bitch>>!"`, `"You want some more of this? Huh?"`, `"Hurts, don't it."`, `"I'll beat you into submission if I have to."`, `"Take that you stupid fuck!"`, `"There's plenty more punishment to come, whore."`, `"I love it when sluts cower."`, `"I'll have my fun, even if I have to beat it out of you."`, `"Maybe you like being beaten? I can accommodate that."`, `"Afraid of me yet?"`, ][random(0,9)]>> <<elseif $speechhit is 1>> <<if $enemyanger lte 20>> <<He>> is annoyed by your attack. <<print [ `"Now why'd you go and do that?"`, `"Come on, don't be like that."`, `"Ow! Not so rough!"`, ][random(0,2)]>> <<elseif $enemyanger lte 100>> <<He>> is annoyed by your attack. <<print [ `"You're starting to piss me off."`, `"Are you trying to get yourself hurt?"`, `"Keep this up and you'll be in a lot of trouble, <<girl>>."`, ][random(0,2)]>> <<else>> <<He>> is enraged by your attack. <<print [ `"I'm going to fucking murder you if you don't stop."`, `"I'm going to show you your place, <<bitch>>."`, `"Ungrateful piece of shit."`, ][random(0,2)]>> <</if>> <<elseif $speechthroat is 1>> <<He>> tightens <<his>> grip around your throat. <<if $consensual and $enemyanger lt 100>> <<print [ `"Yes, choke on me."`, `"Your neck is so soft."`, `"You like to be dominated, don't you?"`, `"You are so fragile."`, `"I love the way you squirm."`, ][random(0,4)]>> <<else>> <<print [ `"What's the matter? Trouble breathing?"`, `"Don't lose consciousness just yet, I want you to be awake for this."`, `"You better start being nice to me if you want to breathe freely."`, `"Too tight for you? Maybe you should stop being such a brat."`, `"I love it when they squirm."`, ][random(0,4)]>> <</if>> <<elseif $speechvaginafoot is 1>> <<He>> speaks. <<if $enemyanger lte 20>> "I can feel you leaking on my toes." <<elseif $enemyanger lte 100>> "I know you like being trodden on like this, don't pretend otherwise." <<else>> "It's probably best I use my foot, I don't know where your slutty slit has been." <</if>> <<elseif $speechpenisfoot is 1>> <<He>> speaks. <<if $enemyanger lte 20>> "Do you like the feel of my feet?" <<elseif $enemyanger lte 100>> "I know you like being trodden on like this, don't pretend otherwise." <<else>> "It's probably best I use my foot, I don't know where your filthy dick has been." <</if>> <<elseif $speechNPCChastity is 1>> <<He>> speaks. <<if $enemyanger lte 20>> <<print [ `"I wish I didn't have to wear this."`, `"Help me get this thing off, would you?"`, `"I really want to get out of this thing."`, ][random(0,2)]>> <<elseif $enemyanger lte 100>> <<print [ `"Stupid device."`, `"Fuck, how do I get this off?"`, `"Just you wait until I get this off of me. Oh, the fun we'll have."`, ][random(0,2)]>> <<else>> <<print [ `"Something's gonna break, either you or this device."`, `"Fuck you, and fuck this device."`, `"Just you wait until I get this off."`, ][random(0,2)]>> <</if>> <<elseif $speechchastity is 1>> <<He>> speaks. <<if $worn.genitals.name is "chastity parasite">> <<if $enemyanger lte 20>> <<print [ `"What even is this thing? You seem to like me touching it."`, `"It seems too elastic to do anything but tease you."`, `"Are you getting off from me squeezing this thing?"`, ][random(0,2)]>> <<elseif $enemyanger lte 100>> <<print [ `"Oh, you little tease."`, `"Fuck, I don't even see how you got it on, let alone how to get it off."`, `"Oh, you poor thing, I'll get this thing off for you."`, ][random(0,2)]>> <<else>> <<print [ `"Something's gonna break, either you or this... sphere."`, `"Fuck, am I even damaging this thing?"`, `"Just you wait until I tear this thing up."`, ][random(0,2)]>> <</if>> <<else>> <<if $enemyanger lte 20>> <<print [ `"This device is on pretty tight."`, `"I can't get it off."`, `"I really want to get under this thing."`, ][random(0,2)]>> <<elseif $enemyanger lte 100>> <<print [ `"Oh, you little tease."`, `"Fuck, how do I get this off?"`, `"Just you wait until I get this off of you. Oh, the fun we'll have."`, ][random(0,2)]>> <<else>> <<print [ `"Something's gonna break, either you or this device."`, `"Fuck you, and fuck this device."`, `"Just you wait until I get this off."`, ][random(0,2)]>> <</if>> <</if>> <<elseif $speechstripstruggle is 1>> <<He>> speaks. <<if $enemyanger lte 20>> <<print [ `"Come on, don't be shy."`, `"You're so beautiful, I have to see more of you."`, `"I really want to get under this thing."`, ][random(0,2)]>> <<elseif $enemyanger lte 100>> <<print [ `"Oh, you little tease."`, `"Stop struggling!"`, `"If you let me take your clothes off, things will go easier for you."`, ][random(0,2)]>> <<else>> <<print [ `"Give me your clothes, <<bitch>>!"`, `"You're getting stripped, slut. Stop fighting it."`, `"Your clothes belong to me now, stop struggling."`, ][random(0,2)]>> <</if>> <<elseif $speechstruggle is 1>> <<He>> speaks. <<if $enemyanger lte 20>> <<print [ `"You're a feisty little thing!"`, `"Calm down, you're not going to be hurt."`, `"Just be calm and let it happen."`, ][random(0,2)]>> <<elseif $enemyanger lte 100>> <<print [ `"Stop struggling, or I'll get angry."`, `"If you don't want things to get worse, then calm down."`, `"A good <<girl>> wouldn't struggle. Do you want to be punished?"`, ][random(0,2)]>> <<else>> <<print [ `"Be still, you ungrateful <<bitch>>!"`, `"Stop struggling and accept your place."`, `"Stupid slut! Stop it!"`, ][random(0,2)]>> <</if>> <<elseif $speechspank is 1>> <<if ["dildo","riding crop","length of anal beads","flog"].includes($NPCList[_n].lefttool) or ["dildo","riding crop","length of anal beads","flog"].includes($NPCList[_n].righttool)>> <<He>> speaks. <<print [ `"I'll spank you raw, cutie."`, `"Naughty <<girl>>."`, `"Have you learnt your lesson yet?"`, `"You've been a bad, bad <<girl>>. And bad <<girls>> get spanked."`, ][random(0,3)]>> <<elseif $enemyanger lte 20>> <<He>> speaks. <<print [ `"If this doesn't teach you to behave, I'm not sure what will."`, `"If you're a good <<girl>> in the future, then you won't need to be punished."`, `"Have you learnt your lesson yet?"`, `"This hurts me more than it hurts you."`, ][random(0,3)]>> <<elseif $enemyanger lte 100>> <<print [ `<<He>> speaks. "I could spank you far harder than this if I wanted."`, `<<He>> speaks. "If you don't want things to get worse, then stop acting like a brat."`, `<<He>> tuts. "You'll think twice before being so naughty in future."`, `<<He>> speaks. "You've been a bad <<girl>>. So you get punished. It's as simple as that."`, ][random(0,3)]>> <<else>> <<He>> speaks. <<print [ `"You're going to take your punishment, and you're going to thank me for it when I'm done!"`, `"You deserve far worse than this."`, `"Does that hurt? Good."`, `"I'm gonna spank your butt raw, <<girl>>."`, ][random(0,3)]>> <</if>> <<elseif $speecharms is 1>> <<He>> speaks. <<if $enemyanger lte 20>> <<print [ `"If I give you your arms back, will you be good?"`, `"Some people like being restrained, you know."`, `"It's cute when they can't use their arms."`, ][random(0,2)]>> <<elseif $enemyanger lte 100>> <<print [ `"I'd release your arms if I was sure you wouldn't be a brat."`, `"If you prove that you're nice, then I won't have to restrain you."`, `"You're completely helpless."`, ][random(0,2)]>> <<else>> <<print [ `"You're completely at my mercy, get used to it."`, `"Try to struggle free, I dare you."`, `"I know you love being restrained like this, you dirty slut."`, ][random(0,2)]>> <</if>> <<elseif $speechclit is 1>> <<He>> speaks. <<if $enemyanger lte 20>> <<print [ `"Does having your clit teased feel good?"`, `"Your little clit is so cute!"`, `"Your clit is really firm. I guess that means you like it."`, ][random(0,2)]>> <<elseif $enemyanger lte 100>> <<print [ `"Your clit is so much fun to play with."`, `"I could hurt instead of pleasure you, you know, best be a good <<girl>>."`, `"You don't want to annoy me, not with your clit vulnerable like this."`, ][random(0,2)]>> <<else>> <<print [ `"You like having your bean toyed with, <<bitch>>?"`, `"Nothing like teasing some slut's clit to assert your superiority."`, `"The fucktoy reacts to having its clit teased, what a surprise."`, ][random(0,2)]>> <</if>> <<elseif $speechfutapenis is 1>> <<He>> speaks. <<if $enemyanger lte 20>> <<print [ `"Which feels better when teased, your cock or your pussy?"`, `"Your face is so cute when your cock is being teased like this!"`, `"Your cock is as firm as your pussy is wet. I guess that means you like it."`, ][random(0,2)]>> <<elseif $enemyanger lte 100>> <<print [ `"I can't decide which of your genitals are more fun to play with."`, `"I could hurt instead of pleasure you, you know, best be a good <<girl>>."`, `"You don't want to annoy me, not with your cock and pussy vulnerable like this."`, ][random(0,2)]>> <<else>> <<print [ `"You like having your cock toyed with, <<bitch>>? Or would you prefer I tease your pussy?"`, `"Nothing like teasing some freak's cock to assert your superiority."`, `"The freak reacts to having its cock teased, what a surprise."`, ][random(0,2)]>> <</if>> <<elseif $speechglans is 1>> <<He>> speaks. <<if $enemyanger lte 20>> <<print [ `"Does having your dick played with feel good?"`, `"Your face is so cute when your dick is being teased like this!"`, `"Your dick is really firm. I guess that means you like it."`, ][random(0,2)]>> <<elseif $enemyanger lte 100>> <<print [ `"Your dick is so much fun to play with."`, `"I could hurt instead of pleasure you, you know, best be a good <<girl>>."`, `"You don't want to annoy me, not with your dick vulnerable like this."`, ][random(0,2)]>> <<else>> <<print [ `"You like having your dick toyed with, <<bitch>>?"`, `"Nothing like teasing some fucktoy's dick to assert your superiority."`, `"The fucktoy reacts to having its glans teased, what a surprise."`, ][random(0,2)]>> <</if>> <<elseif $speechbottom is 1>> <<He>> speaks. <<if $enemyanger lte 20>> <<print [ `"Does having your butt fondled feel good?"`, `"Your face is so cute when your butt is being teased like this!"`, `"Your butt is so shapely."`, ][random(0,2)]>> <<elseif $enemyanger lte 100>> <<print [ `"Your butt is so much fun to play with."`, `"I could hurt instead of pleasure you, you know, best be a good <<girl>>."`, `"If you annoy me, I'll give you a spanking."`, ][random(0,2)]>> <<else>> <<print [ `"You like having your ass toyed with, <<bitch>>?"`, `"Bitches like you deserve a hard spanking."`, `"Nice ass. At least you've got something going for you, slut."`, ][random(0,2)]>> <</if>> <<elseif $speechhair is 1>> <<He>> speaks. <<if $hairlength gte 400>> <<if $enemyanger lte 20>> <<print [ `"Long hair is fun to play with."`, `"Your silken locks are lovely."`, `"Your hair is so long and beautiful."`, ][random(0,2)]>> <<elseif $enemyanger lte 100>> <<print [ `"Long hair is fun to yank around."`, `"I could hurt you a lot by just pulling your hair, best be a good <<girl>>."`, `"Your hair makes a fine leash."`, ][random(0,2)]>> <<else>> <<print [ `"You like having your hair pulled, <<bitch>>?"`, `"You're staying right where I want you."`, `"You'll give me what I want, or I'll keep pulling."`, ][random(0,2)]>> <</if>> <<else>> <<if $enemyanger lte 20>> <<print [ `"Your hair is fun to play with."`, `"Your hair is silky smooth."`, `"Your hair is so beautiful."`, ][random(0,2)]>> <<elseif $enemyanger lte 100>> <<print [ `"Your hair is fun to yank around."`, `"I could really hurt you if I pulled hard enough, best be a good <<girl>>."`, `"Your hair is cute, but don't think I won't pull it harder."`, ][random(0,2)]>> <<else>> <<print [ `"You like having your hair pulled, <<bitch>>?"`, `"You're staying right where I want you."`, `"You'll give me what I want, or I'll keep pulling."`, ][random(0,2)]>> <</if>> <</if>> <<elseif $speechchestrub is 1>> <<if $player.gender_appearance is "m">> <<if $enemyanger lte 20>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<He>> is lost in the moment. "I'm gonna cum all over your chest!" <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<He>> speaks. "I bet your nipples are a weak spot." <<else>> <<He>> speaks. "Do you like the sight of my dick?" <</if>> <<elseif $enemyanger lte 100>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<He>> is lost in the moment. "You'll be drenched when I'm done!" <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<He>> speaks. "Nothing quite like getting off on a boy's chest." <<else>> <<He>> speaks. "Be on your best behaviour, or I'll find some other part of you to fuck." <</if>> <<else>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<He>> is lost in the moment. "I'm gonna mark you with my seed!" <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<He>> speaks. "You'll be begging for more when I'm done, fucktoy." <<else>> <<He>> speaks. "Don't get any delusions of grandeur, you're just a cum rag." <</if>> <</if>> <<else>> <<if $enemyanger lte 20>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<He>> is lost in the moment. "I'm gonna cum all over your flat chest!" <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<He>> speaks. "Flat breasts are so lewd..." <<else>> <<He>> speaks. "Don't be ashamed of your small breasts, it's cute." <</if>> <<elseif $enemyanger lte 100>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<He>> speaks. "They may be small, but your breasts feel good on my dick." <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<He>> speaks. "Keep it up, whore." <<else>> <<He>> speaks. "Your breasts are so small. You'll have to make it up to me in other ways." <</if>> <<else>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<He>> speaks. "I'm gonna cover your pathetic excuse for breasts in my seed, and you're gonna thank me for it." <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<He>> speaks. "What's it like to have such an inadequate rack?" <<else>> <<He>> speaks. "Your breasts are pathetic by the way." <</if>> <</if>> <</if>> <<elseif $speechbreastrub is 1>> <<He>> speaks. <<if $enemyanger lte 20>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> "I'm gonna cum all over your delicious breasts!" <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> "Nothing like a boob job from a cutie." <<else>> "My dick feels so good between your breasts." <</if>> <<elseif $enemyanger lte 100>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> "Careful, or I might squirt in your face." <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> "Your boobs were made for pleasuring dick." <<else>> "Keep those tits of yours around my dick." <</if>> <<else>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> "That's it, take it between your tits like the slut you are." <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> "Take it, <<bitch>>!" <<else>> "You better be good at this, for your sake." <</if>> <</if>> <<elseif $speechgrowl is 1>> <<He>> speaks. <<if $enemyanger lte 20>> <<if $npcspeechcycle is 0>> "Sounds like you've got some bite!" <<elseif $npcspeechcycle is 1>> "You're too cute to be threatening." <<elseif $npcspeechcycle is 2>> "There's a good <<bitch>>." <<elseif $npcspeechcycle is 3>> "I bet you're tamer than you sound." <<elseif $npcspeechcycle is 4>> "Cute fangs." <<elseif $npcspeechcycle is 5>> "Who's a good puppy?" <<else>> "I bet you're a good licker." <</if>> <<elseif $enemyanger lte 100>> <<if $npcspeechcycle is 0>> "You've got some bite to you!" <<elseif $npcspeechcycle is 1>> "You'll be barking like a <<bitch>> soon." <<elseif $npcspeechcycle is 2>> "Best not bite. You'll regret it." <<elseif $npcspeechcycle is 3>> "Your weird teeth don't scare me." <<elseif $npcspeechcycle is 4>> "Bite me. I dare you." <<elseif $npcspeechcycle is 5>> "Can't wait to tame you." <<else>> "You think you frighten me?" <</if>> <<else>> <<if $npcspeechcycle is 0>> "I'm gonna muzzle that mouth of yours." <<elseif $npcspeechcycle is 1>> "Put those teeth away before I shut you up." <<elseif $npcspeechcycle is 2>> "I'll fuck you up, <<bitch>>." <<elseif $npcspeechcycle is 3>> "I know how to shut up <<bitch>>es like you." <<elseif $npcspeechcycle is 4>> "I'm gonna put you in your place, <<bitch>>." <<elseif $npcspeechcycle is 5>> "You'll be whining when I'm through with you." <<else>> "I'm gonna hold that jaw of yours open." <</if>> <</if>> <<elseif $speechgrowlheat is 1 or $speechgrowlrut is 1>> <<He>> speaks. <<if $npcspeechcycle is 0>> "Sounds like someone is in a very <<print ($settings.pregnancySpeechEnabled ? "breedable" : "fuckable")>> mood!" <<elseif $npcspeechcycle is 1>> "Someone's a little too horny to be threat." <<elseif $npcspeechcycle is 2>> "There's a good <<bitch>>." <<elseif $npcspeechcycle is 3>> "Don't worry, you'll be <<bred>> before you know it." <<elseif $npcspeechcycle is 4>> "Cute fangs." <<elseif $npcspeechcycle is 5>> "Who's a good puppy in heat?" <<else>> "I bet you'll do anything to be <<bred>>." <</if>> <<elseif $speechplead is 1>> <<if $enemyanger lte 20>> <<He>> speaks. <<print [ `"You don't want to stop really."`, `"Don't be silly, you're enjoying this."`, `"It'll be over before you know it."`, `"You're not going to be hurt you know."`, `"Don't worry, I'll be gentle."`, ][random(0,4)]>> <<elseif $enemyanger lte 100>> <<He>> speaks. <<print [ `"This is happening, one way or another."`, `"Don't try to guilt me."`, `"You say that, but your body tells a different story."`, `"I'm not stopping until I'm satisfied."`, `"All the more reason to please me, it'll be over faster."`, ][random(0,4)]>> <<else>> <<He>> speaks. <<print [ `"Don't make me laugh, a slut like you can't get enough of this."`, `"We're not stopping until I'm done, whore."`, `"You're a selfish little shit, aren't you?"`, `"Did I give you permission to speak?"`, `"Don't make me laugh, <<bitch>>. You're gagging for this."`, ][random(0,4)]>> <</if>> <<elseif $speechmoan is 1>> <<if random(0,2) isnot 0 and (($vaginastate is "doublepenetrated" and $NPCList[$vaginatarget].penis is "vaginadouble" and $NPCList[$vaginadoubletarget].penis is "vaginadouble") or ($anusstate is "doublepenetrated" and $NPCList[$anustarget].penis is "anusdouble" and $NPCList[$anusdoubletarget].penis is "anusdouble"))>> <<He>> <<print ["speaks","speaks","whispers","coos","laughs","sniggers","jeers"][random(0,6)]>>. <<print [ `"You love having your hole ruined by us, don't you <<bitch>>?"`, `"You like that, slut? Two fat cocks stretching you out?"`, `"Don't worry, we'll use you properly."`, `"You're so cute. You love taking our cocks."`, `"Yes, baby. Take our cocks you filthy cock-sleeve."`, ][random(0,4)]>> <<else>> <<if $enemyanger lte 20>> <<He>> speaks. <<print [ `"I knew you'd love it."`, `"Don't worry, I'll use you properly."`, `"Your voice is so cute."`, `"You're such a good <<girl>>."`, `"You're so precious."`, ][random(0,4)]>> <<elseif $enemyanger lte 100>> <<He>> speaks. <<print [ `"That's more like it."`, `"Trying to butter me up? You still need to be punished."`, `"You like that? Filthy slut."`, `"You'd make a fine pet."`, `"Keep this up and it'll end well for you."`, ][random(0,4)]>> <<else>> <<He>> speaks. <<print [ `"Shut up, <<bitch>>, I'm on to your tricks."`, `"You have a sweet mouth, but I know you're a rotten whore."`, `"You're a submissive little shit, aren't you?"`, `"Did I give you permission to speak?"`, `"Don't make me laugh, <<bitch>>. You're a manipulative whore."`, ][random(0,4)]>> <</if>> <</if>> <<elseif $speechdemand is 1>> <<if $enemyanger lte 20>> <<He>> speaks. <<print [ `"You certainly have a mouth on you."`, `"You shouldn't be so rude to your betters."`, `"You better start being nicer, or I'll get meaner."`, `"You're such a naughty <<girl>>."`, `"Careful, that's no way to speak to me."`, ][random(0,4)]>> <<elseif $enemyanger lte 100>> <<He>> speaks. <<print [ `"Keep talking like that and I'll show you just how little you're worth."`, `"How dare you talk to me like that."`, `"If you don't start being more polite, I'll fuck you up."`, `"You're not making this any easier on yourself."`, `"Keep this up and it won't end well for you."`, ][random(0,4)]>> <<else>> <<He>> speaks. <<print [ `"Shut the fuck up, <<bitch>>."`, `"Shut up, or I'll shut you up."`, `"You're a bratty little shit, aren't you?"`, `"Did I give you permission to speak?"`, `"Don't make me laugh, <<bitch>>. You're a weak little toy."`, ][random(0,4)]>> <</if>> <<elseif $speechforgive is 1>> <<if $enemyanger lte 20>> <<print [ `<<He>> laughs. "You forgive me? How cute."`, `<<He>> laughs. "You forgive me? For what?"`, `<<He>> speaks. "Shush, <<girl>>."`, `<<He>> speaks. "You're a sweet little thing."`, `<<He>> laughs. "You can't be this cute."`, ][random(0,4)]>> <<elseif $enemyanger lte 100>> <<He>> speaks. <<print [ `"Forgive me for what?"`, `"I don't like what you're implying, <<girl>>."`, `"Don't worry yourself, I'll give you plenty to forgive."`, `"Did I ask for your forgiveness? Better keep it zipped."`, `"Forgive me? That's presumptuous for a <<bitch>> in your position."`, ][random(0,4)]>> <<else>> <<He>> speaks. <<print [ `"Shut the fuck up, <<bitch>>."`, `"Don't make me laugh, <<bitch>>. Toys like you are made to be played with."`, `"You're a presumptuous little shit, aren't you?"`, `"Did I give you permission to speak?"`, `"There's nothing wrong with putting you to your proper use."`, ][random(0,4)]>> <</if>> <<elseif $speechvaginaflaunt is 1>> <<He>> coos. <<if $player.gender_appearance is "m">> <<print [ `"I can't wait to swallow your dick."`, `"Just look at the effect you're having on me."`, `"Like what you see?"`, ][random(0,2)]>> <<else>> <<print [ `"I'm rather proud of my body, I'm sure you can see why."`, `"Just look at the effect you're having on me."`, `"Like what you see?"`, ][random(0,2)]>> <</if>> <<elseif $speechcoverface is 1>> <<He>> speaks. <<if $enemyanger lte 20>> <<print [ `"Aww look, the shy <<girl>> is covering <<pher>> face."`, `"<<pShe>> is so shy!"`, `"Don't be shy, <<girl>>."`, ][random(0,2)]>> <<elseif $enemyanger lte 100>> <<print [ `"Don't think you won't be recognised."`, `"Something to hide?"`, `"If covering your face makes this easier for you, fine."`, ][random(0,2)]>> <<else>> <<print [ `"<<pShe>> is covering <<pher>> face! How pathetic."`, `"Cover your face if you want slut, you can't hide everything."`, `"At least I don't have to look at your whore face."`, ][random(0,2)]>> <</if>> <<elseif $speechcoverpenis is 1>> <<He>> speaks. <<if $enemyanger lte 20>> <<print [ `"Stop hiding your penis from me and I'll make you feel good."`, `"Why are you hiding your penis from me?"`, `"There's no reason to be shy."`, ][random(0,2)]>> <<elseif $enemyanger lte 100>> <<print [ `"Come on, let me see your penis."`, `"Something to hide?"`, `"Stop covering your penis, I want to see it."`, ][random(0,2)]>> <<else>> <<print [ `"If you don't stop covering your dick I'll beat you until you do."`, `"Let me see your dick. Now."`, `"Stop covering your fucktoy dick or I'll stop being so courteous."`, ][random(0,2)]>> <</if>> <<elseif $speechcovervagina is 1>> <<He>> speaks. <<if $enemyanger lte 20>> <<print [ `"Stop hiding your pussy from me and I'll make you feel good."`, `"Why are you hiding your pussy from me?"`, `"There's no reason to be shy."`, ][random(0,2)]>> <<elseif $enemyanger lte 100>> <<print [ `"Come on, let me see your pussy."`, `"Something to hide?"`, `"Stop covering your pussy, I want to see it."`, ][random(0,2)]>> <<else>> <<print [ `"If you don't stop covering your cunt I'll beat you until you do."`, `"Let me see your pussy. Now."`, `"Stop covering your whore cunt or I'll stop being so courteous."`, ][random(0,2)]>> <</if>> <<elseif $speechapologiseno is 1>> <<He>> speaks. <<if $enemyanger lte 20>> <<print [ `"Shhh, you've already apologised."`, `"That's very polite, but I already know you're sorry."`, `"I know you're sorry, don't worry about it."`, ][random(0,2)]>> <<elseif $enemyanger lte 100>> <<print [ `"I heard you the first time."`, `"Quit whining."`, `"Shush, <<girl>>."`, ][random(0,2)]>> <<else>> <<print [ `"Shut up, <<bitch>>."`, `"Shut up before I give you something to choke on."`, `"Do you have permission to speak, <<slut>>?"`, ][random(0,2)]>> <</if>> <<elseif $speechapologiseunforgiving is 1>> <<He>> speaks. <<print [ `"Shut up, <<bitch>>."`, `"Shut up before I give you something to choke on."`, `"Do you have permission to speak, <<slut>>?"`, ][random(0,2)]>> <<elseif $speechfacesit is 1>> <<if (($enemyarousal / $enemyarousalmax) * 100) gte 70>> <<if (($enemyanger / $enemyangermax) * 100) gte 10>> <<print [ `<<He>> speaks. "Yeah, take it, <<girl>>!"`, `<<He>> speaks. "You're gonna make me cum all over your worthless face!"`, `<<He>> speaks. "I'm gonna drown you in my juices, unless you drink them all up!"`, ][random(0,2)]>> <<else>> <<print [ `<<He>> moans. "Yeah! Keep working that tongue!"`, `<<He>> is lost in the moment. "Mmm, it feels so good!"`, `<<He>> sighs. "Not long now..."`, ][random(0,2)]>> <</if>> <<else>> <<if (($enemyanger / $enemyangermax) * 100) gte 10>> <<print [ `<<He>> speaks. "Get that tongue to work, <<girl>>!"`, `<<He>> speaks. "Maybe I'll stay on until you pass out!"`, `<<He>> speaks. "I'm not getting off until I cum on your face."`, ][random(0,2)]>> <<else>> <<print [ `<<He>> speaks. "Make me feel good with your mouth."`, `<<He>> speaks. "Do you like me sitting on your face?"`, `<<He>> speaks. "How do I taste?"`, ][random(0,2)]>> <</if>> <</if>> <<elseif $speechanallick is 1>> <<if (($enemyarousal / $enemyarousalmax) * 100) gte 70>> <<print [ `<<He>> moans. "Yeah! Keep working that tongue!"`, `<<He>> is lost in the moment. "Mmm, your tongue feels so good against my ass!"`, `<<He>> sighs. "You licking my butt is going to make me cum..."`, ][random(0,2)]>> <<elseif (($enemyanger / $enemyangermax) * 100) gte 10>> <<print [ `<<He>> speaks. "Yeah, <<girl>>, work that tongue and lick my ass!"`, `<<He>> speaks. "Good <<girl>>. Lick my ass clean."`, `<<He>> coos. "Not bad, slut. Keep licking!"`, ][random(0,2)]>> <<else>> <<print [ `<<He>> speaks. "I love the feel of your tongue in my ass."`, `<<He>> speaks. "I think you like licking my ass, don't you?"`, `<<He>> speaks. "Yeah! your tongue feels so good up there."`, ][random(0,2)]>> <</if>> <<elseif $speechanalkiss is 1>> <<if (($enemyanger / $enemyangermax) * 100) gte 10>> <<print [ "<<He>> speaks. \"This is where you belong, kissing ass.\"", "<<He>> speaks. \"Good slut, keep kissing that ass.\"", "<<He>> coos. \"Ooh, you are a good ass kisser!\"" ][random(0,2)]>> <<else>> <<print [ "<<He>> speaks. \"You like kissing my ass, don't you?\"", "<<He>> speaks. \"Mmm. That feels good. Keep kissing my ass.\"", "<<He>> speaks. \"I love the feel of your lips against my ass.\"" ][random(0,2)]>> <</if>> <<elseif $speechmouthotheranus is 1>> <<if (($enemyanger / $enemyangermax) * 100) gte 10>> <<print [ "<<He>> speaks. \"Kiss my ass!\"", "<<He>> speaks. \"Lick my butt, <<bitch>>!\"", "<<He>> speaks. \"You belong there, worshipping my ass, slut.\"", "<<He>> speaks. \"Get that mouth to work! Make my ass feel good.\"", "<<He>> speaks. \"How does my butt taste?\"" ][random(0,4)]>> <<else>> <<print [ "<<He>> speaks. \"Do you like my ass in your face?\"", "<<He>> speaks. \"Make my ass feel good with your mouth.\"", "<<He>> speaks. \"Go on, be good to my ass.\"", "<<He>> speaks. \"I want you to worship my ass.\"", "<<He>> speaks. \"Do things to my butt, with your mouth.\"" ][random(0,4)]>> <</if>> <<elseif $speechaskrough is 1>> <<if (($enemyanger / $enemyangermax) * 100) gte 10>> <<print [ "<<He>> speaks. \"You want it more rough? If you say so, slut.\"", "<<He>> speaks. \"I'll treat you like the worthless whore you are.\"", "<<He>> speaks. \"I'll smack you around like you deserve.\"", "<<He>> speaks. \"I wonder how hard I could beat you before you pass out.\"", "<<He>> speaks. \"I'm just getting started, <<bitch>>.\"" ][random(0,4)]>> <<else>> <<print [ "<<He>> speaks. \"Rougher? You're a kinky one.\"", "<<He>> speaks. \"Want it rough? I'll give you rough.\"", "<<He>> speaks. \"I'll treat you like you deserve, slut.\"", "<<He>> speaks. \"I've been too gentle with you so far.\"", "<<He>> speaks. \"Hah! The slut wants it hard. I can oblige.\"" ][random(0,4)]>> <</if>> <<else>> <<if not $gloryhole>> <<basespeech>> <<else>> <<basegloryholespeech>> <</if>> <</if>> <</widget>> <<widget "basespeech">> <<if $enemyanger lte 20 or _args[0] is "low">> <<rng>> <<He>> whispers. <<if $rng lte 5>> "You are so beautiful." <<elseif $rng lte 10>> "You are so very pretty." <<elseif $rng lte 15>> "You're such a gorgeous <<girl>>." <<elseif $rng lte 20>> "I bet you get a lot of attention." <<elseif $rng lte 25>> "You are so very cute." <<elseif $rng lte 30>> "You're so lovely." <<elseif $rng lte 35 and $consensual is 0>> "Be a good <<girl>> and I won't hurt you." <<elseif $rng lte 40>> "Be a good <<girl>> and I'll make you feel good." <<elseif $rng lte 45>> "If you make me feel good, I'll make you feel good too." <<elseif $rng lte 50>> "Your skin is so smooth." <<elseif $rng lte 55>> "I want to kiss you all over." <<elseif $rng lte 60>> "You're a delicate thing, aren't you?" <<elseif $rng lte 65>> "You are wonderful." <<elseif $rng lte 70>> "Your body is so appealing." <<elseif $rng lte 75>> "Don't be ashamed of your body." <<elseif $rng lte 80>> "You look so fragile." <<elseif $rng lte 85>> "You're like an angel." <<elseif $rng lte 90 and !$gloryhole>> "Your <<breasts>> are so cute." <<elseif $rng lte 95>> "You smell nice." <<elseif $rng lte 100>> "You're such a cute <<girl>>." <</if>> <<elseif ($enemyanger lte 100 and _args[0] isnot "low") or _args[0] is "mid">> <<rng>> <<He>> gives you a stern look. <<if $rng lte 5>> "Don't try my patience." <<elseif $rng lte 10>> "Bad sluts get hurt." <<elseif $rng lte 15>> "You're not a bad <<girl>>, are you?" <<elseif $rng lte 20>> "Don't think I won't hurt you." <<elseif $rng lte 25>> "You're so fucking sexy." <<elseif $rng lte 30>> "I wonder how much you could take." <<elseif $rng lte 35>> "This is happening, you might as well make it easy on yourself." <<elseif $rng lte 40>> "Be a good <<girl>> and things will be easier for you." <<elseif $rng lte 45>> "I'm going to have fun with your body." <<elseif $rng lte 50>> "Don't defy me." <<elseif $rng lte 55>> "You were made for this." <<elseif $rng lte 60>> "I can tell you're enjoying this." <<elseif $rng lte 65>> "This is your fault, you know." <<elseif $rng lte 70>> "You like this, don't you." <<elseif $rng lte 75>> "You're on thin ice, <<girl>>." <<elseif $rng lte 80>> "Don't think you've seen the worst of me." <<elseif $rng lte 85>> "I own you now." <<elseif $rng lte 90>> "It's not over until I say it's over." <<elseif $rng lte 95>> "You're a fun toy, but don't get any ideas." <<elseif $rng lte 100>> "You should treat your betters with respect." <</if>> <<elseif ($enemyanger gt 100 and !_args[0]) or _args[0] is "high">> <<rng>> <<He>> looks at you with fury. <<if $rng lte 5>> "Fucking whore." <<elseif $rng lte 10>> "You're just a filthy <<slut>>." <<elseif $rng lte 15>> "You're a vessel for cum, nothing more." <<elseif $rng lte 20>> "You should be happy anyone is giving a worthless piece of shit like you attention." <<elseif $rng lte 25>> "I haven't killed you yet, you should show gratitude." <<elseif $rng lte 30>> "I'm going to break you, in so many ways." <<elseif $rng lte 35>> "You'll show me respect before I'm done." <<elseif $rng lte 40>> "I wonder where I'll dump you when I'm done." <<elseif $rng lte 45>> "Even rape is too good for a <<bitch>> like you." <<elseif $rng lte 50>> "You deserve this, <<bitch>>." <<elseif $rng lte 55>> "You enjoy being treated like this. Don't try to deny it." <<elseif $rng lte 60>> "You're a worthless fucktoy." <<elseif $rng lte 65>> "You look pretty good, for useless trash." <<elseif $rng lte 70>> "Getting me off is your only purpose, don't forget." <<elseif $rng lte 75>> "I know you like this, you stupid <<slut>>." <<elseif $rng lte 80>> "You deserve far worse than this, whore." <<elseif $rng lte 85>> "You're a worthless <<slut>>." <<elseif $rng lte 90>> "I'm going to hurt you, and you're going to like it." <<elseif $rng lte 95>> "There's only one thing a <<girl>> like you is good for." <<elseif $rng lte 100>> "You're such a wretched tramp." <</if>> <</if>> <</widget>> <<widget "basegloryholespeech">> <<if $enemyanger lte 20 or _args[0] is "low">> <<rng>> <<He>> whispers. <<if $rng lte 5>> "I wish I could see you." <<elseif $rng lte 10>> "I bet you're very pretty." <<elseif $rng lte 15>> "I wish I could see the <<girl>> on the other side." <<elseif $rng lte 20>> "Are you a boy or a girl? So exciting not to know." <<elseif $rng lte 25>> "You must be cute. I'd love to see you." <<elseif $rng lte 30>> "Not seeing who's pleasuring me is exciting." <<elseif $rng lte 35>> "Be a good <<girl>>, give it all you've got." <<elseif $rng lte 40>> "Be a good <<girl>>, it will make you feel good." <<elseif $rng lte 45>> "Make me feel good and you'll feel good too." <<elseif $rng lte 50>> "I wish I could touch you." <<elseif $rng lte 55>> "I want to kiss you all over." <<elseif $rng lte 60>> "The things I'd do to you if this wall weren't in the way." <<elseif $rng lte 65>> "You're doing wonderful things to me." <<elseif $rng lte 70>> "If only I could caress your body." <<elseif $rng lte 75>> "I'd love to see your body." <<elseif $rng lte 80>> "I wish this wall wasn't here." <<elseif $rng lte 85>> "I wonder who's on the other side." <<elseif $rng lte 90>> "You're doing a great job." <<elseif $rng lte 95>> "I wonder what you look like." <<elseif $rng lte 100>> "You're such a good <<girl>>." <</if>> <<elseif $enemyanger lte 100 or _args[0] is "mid">> <<rng>> <<He>> speaks. <<if $rng lte 5>> "Don't try my patience." <<elseif $rng lte 10>> "Bad sluts get hurt." <<elseif $rng lte 15>> "You're not a bad <<girl>>, are you?" <<elseif $rng lte 20>> "Don't think I won't find a way to hurt you." <<elseif $rng lte 25>> "You need to do better, <<girl>>." <<elseif $rng lte 30>> "I wonder how much more you can give." <<elseif $rng lte 35>> "This is happening, you might as well make it easy on yourself." <<elseif $rng lte 40>> "Be a good <<girl>> and things will be easier for you." <<elseif $rng lte 45>> "You're going to pleasure me with your body." <<elseif $rng lte 50>> "Don't defy me." <<elseif $rng lte 55>> "You were made for this." <<elseif $rng lte 60>> "I can tell you're enjoying this." <<elseif $rng lte 65>> "This is your fault, you know." <<elseif $rng lte 70>> "You like this, don't you." <<elseif $rng lte 75>> "You're on thin ice, <<girl>>." <<elseif $rng lte 80>> "Don't think you've seen the worst of me." <<elseif $rng lte 85>> "I own you now." <<elseif $rng lte 90>> "It's not over until I say it's over." <<elseif $rng lte 95>> "You're a fun toy, but don't get any ideas." <<elseif $rng lte 100>> "You should treat your betters with respect." <</if>> <<elseif $enemyanger gt 100 or _args[0] is "high">> <<rng>> <<He>> pounds the wall in fury. <<if $rng lte 5>> "Fucking whore." <<elseif $rng lte 10>> "You're just a filthy slut." <<elseif $rng lte 15>> "You're a vessel for cum, nothing more." <<elseif $rng lte 20>> "You should be happy a worthless piece of shit like you is allowed to give me attention." <<elseif $rng lte 25>> "I haven't broken through this wall yet, you should show gratitude." <<elseif $rng lte 30>> "I'm going to break this wall, and then I'm going to break you." <<elseif $rng lte 35>> "You'll show me respect before I'm done." <<elseif $rng lte 40>> "I wonder what I'll do to you once I get on the other side." <<elseif $rng lte 45>> "Even rape is too good for a <<bitch>> like you." <<elseif $rng lte 50>> "You deserve far worse than this, <<bitch>>." <<elseif $rng lte 55>> "You enjoy this. Don't try to deny it." <<elseif $rng lte 60>> "You're a worthless fucktoy." <<elseif $rng lte 65>> "I'll break this wall if I have to, you useless trash." <<elseif $rng lte 70>> "Getting me off is your only purpose, don't forget." <<elseif $rng lte 75>> "You like this, don't you? You stupid slut." <<elseif $rng lte 80>> "You deserve far worse than this, whore. If only I could get to you." <<elseif $rng lte 85>> "You're a worthless slut." <<elseif $rng lte 90>> "I'm going to get over there, I'm going to hurt you, and you're going to like it." <<elseif $rng lte 95>> "There's only one thing a <<girl>> like you is good for." <<elseif $rng lte 100>> "You're such a wretched tramp." <</if>> <</if>> <</widget>> <<widget "sprayspeech">> <<He>> shouts. <<switch $speechspraycycle>> <<case 0>> "Where the fuck did you get that?" <<case 1>> "You're no fun." <<case 2>> "You sadistic <<bitch>>!" <<case 3>> "Fuck! Shit!" <<case 4>> "Argh!" <<case 5>> "Shit. You've some fight in you." <<default>> "My eyes!" <</switch>> <<set $speechspraycycle to $speechspraycycle isnot undefined ? ($speechspraycycle + 1) % 7 : 0>> <</widget>> <<widget "beastspeech">> <<set _n to _args[0]>> <<switch $NPCList[_n].type>> <<case "lizardgirl" "lizardboy">> <<bHe>> hisses. <<case "dolphingirl" "dolphinboy">> <<bHe>> clicks. <<case "catgirl" "catboy">> <<bHe>> purrs. <<case "harpy">> <<bHe>> chirps. <<case "cowgirl" "bullboy">> <<bHe>> moos. <<case "spidergirl" "spiderboy">> <<bHe>> chitters. <<case "foxgirl" "foxboy">> <<bHe>> yips. <<default>> <<bHe>> growls. <</switch>> <<if $NPCList[_n].fullDescription is "Great Hawk">> <<hawkspeech>> <<elseif $NPCList[_n].penis isnot "none">> <<if $player.gender_appearance is "f">> <<if $enemyanger gte 60>> <<if $enemyarousal gte ($enemyarousalmax / 2)>> <<if $NPCList[_n].type is "wolfgirl" or $NPCList[_n].type is "wolfboy">> <<switch $npcspeechcycle>> <<case 0>> "Mark you with scent. As mine." <<case 1>> "All will know scent. Show to pack as prize." <<case 2>> "Litter inside you should make you quiet soon." <<case 3>> "No struggle, work hard for prey." <<case 4>> "Share with pack if keep squirming!" <<case 5>> "Prey is mine." <<default>> "Submit! Submit!" <</switch>> <<else>> <<switch $npcspeechcycle>> <<case 0>> "I can't wait to mark you with my seed." <<case 1>> "I'm gonna fill you up so everyone knows who owns you." <<case 2>> "You won't be so insolent once I've put a litter in you." <<case 3>> "It's no fun without a struggle." <<case 4>> "You'd best be nice, or I'll share you with my siblings." <<case 5>> "Your womb is mine." <<default>> "My cock will show you your place." <</switch>> <</if>> <<else>> <<if $NPCList[_n].type is "wolfgirl" or $NPCList[_n].type is "wolfboy">> <<switch $npcspeechcycle>> <<case 0>> "I show prey who the alpha is." <<case 1>> "Squirm less. Submit!" <<case 2>> "Prey should be lucky. Prefer to eat." <<case 3>> "Be proud. Mate, not eat. Best of pack." <<case 4>> "Stay still, else I attack." <<case 5>> "Smell good. Eat later." <<default>> "Strong offspring from you, as pack mother." <</switch>> <<else>> <<switch $npcspeechcycle>> <<case 0>> "I'm gonna show you who's boss." <<case 1>> "Stop squirming." <<case 2>> "You're lucky I don't eat you." <<case 3>> "You should feel honoured I want to mate." <<case 4>> "Don't make me hurt you." <<case 5>> "You smell good enough to eat." <<default>> "You'll have strong babies." <</switch>> <</if>> <</if>> <<else>> <<if $enemyarousal gte ($enemyarousalmax / 2)>> <<if $NPCList[_n].type is "wolfgirl" or $NPCList[_n].type is "wolfboy">> <<switch $npcspeechcycle>> <<case 0>> "Filling you with seed will feel good." <<case 1>> "Hope you are enjoying this. Much as I do." <<case 2>> "Strong scent from you. Has me in a rut." <<case 3>> "Marking you with scent will make you smell better." <<case 4>> "Happy to find mate. Lucky." <<case 5>> "Finish. Cruel to leave me in a rut." <<default>> "Strong offspring from you, as pack mother." <</switch>> <<else>> <<switch $npcspeechcycle>> <<case 0>> "Filling you up is gonna feel so good." <<case 1>> "I hope you're enjoying this as much as me." <<case 2>> "Your scent alone has me in a rut." <<case 3>> "My seed will make you smell even better." <<case 4>> "I'm lucky to have a mate like you." <<case 5>> "It's cruel to arouse me without finishing." <<default>> "You'll have strong babies." <</switch>> <</if>> <<else>> <<if $NPCList[_n].type is "wolfgirl" or $NPCList[_n].type is "wolfboy">> <<switch $npcspeechcycle>> <<case 0>> "You smell nice." <<case 1>> "Going to mate with you. Okay?" <<case 2>> "<<print ($settings.pregnancySpeechEnabled ? "Breed" : "Mate")>> with me." <<case 3>> "Bet prey tastes nice." <<case 4>> "Smell fertile. Ready for seed." <<case 5>> "Cold out. I keep you warm." <<default>> "Ready to fight for your litter. All will see." <</switch>> <<else>> <<switch $npcspeechcycle>> <<case 0>> "You smell nice." <<case 1>> "I'm going to mate with you. I hope that's okay." <<case 2>> "You have to <<print ($settings.pregnancySpeechEnabled ? "breed" : "mate")>> with me." <<case 3>> "I bet you taste nice." <<case 4>> "You smell very fertile." <<case 5>> "I'll keep you warm." <<default>> "I'm ready to father a litter, you'll see." <</switch>> <</if>> <</if>> <</if>> <<else>> <<if $enemyanger gte 60>> <<if $enemyarousal gte ($enemyarousalmax / 2)>> <<if $NPCList[_n].type is "wolfgirl" or $NPCList[_n].type is "wolfboy">> <<switch $npcspeechcycle>> <<case 0>> "Mark you with scent. As mine." <<case 1>> "All will know scent. Show to pack as prize." <<case 2>> "Seed inside you should make you quiet soon." <<case 3>> "No struggle, work hard for prey." <<case 4>> "Share with pack if keep squirming!" <<case 5>> "I'm in charge. You follow." <<default>> "Submit! Submit!" <</switch>> <<else>> <<switch $npcspeechcycle>> <<case 0>> "I can't wait to mark you with my seed." <<case 1>> "I'm gonna fill you up so everyone knows who owns you." <<case 2>> "You won't be so insolent once you're full of seed." <<case 3>> "It's no fun without a struggle." <<case 4>> "You'd best be nice, or I'll share you with my siblings." <<case 5>> "I'm in charge." <<default>> "My cock will show you your place." <</switch>> <</if>> <<else>> <<if $NPCList[_n].type is "wolfgirl" or $NPCList[_n].type is "wolfboy">> <<switch $npcspeechcycle>> <<case 0>> "You're no alpha! I show you." <<case 1>> "Squirm less. Submit!" <<case 2>> "Prey should be lucky. Prefer to eat." <<case 3>> "Be proud. Mate, not eat. Best of pack." <<case 4>> "Stay still, else I attack." <<case 5>> "Smell good. Eat later." <<default>> "Strong offspring from you, as pack mother." <</switch>> <<else>> <<switch $npcspeechcycle>> <<case 0>> "I'm gonna show you who's boss." <<case 1>> "Stop squirming." <<case 2>> "You're lucky I don't eat you." <<case 3>> "You should feel honoured I want to mate." <<case 4>> "Don't make me hurt you." <<case 5>> "You smell good enough to eat." <<default>> "I'm strongest of pack. <<print ($settings.pregnancySpeechEnabled ? "You're breeding stock." : "You'll do what I want.")>>" <</switch>> <</if>> <</if>> <<else>> <<if $enemyarousal gte ($enemyarousalmax / 2)>> <<if $NPCList[_n].type is "wolfgirl" or $NPCList[_n].type is "wolfboy">> <<switch $npcspeechcycle>> <<case 0>> "Filling you with seed will feel good." <<case 1>> "Hope you are enjoying this. Much as I do." <<case 2>> "Strong scent from you. Has me in a rut." <<case 3>> "Marking you with scent will make you smell better." <<case 4>> "Happy to find mate. Lucky." <<case 5>> "Finish. Cruel to leave me in a rut." <<default>> "I impressed you, yes?" <</switch>> <<else>> <<switch $npcspeechcycle>> <<case 0>> "Filling you up is gonna feel so good." <<case 1>> "I hope you're enjoying this as much as me." <<case 2>> "Your scent alone has me in a rut." <<case 3>> "My seed will make you smell even better." <<case 4>> "I'm lucky to have a mate like you." <<case 5>> "It's cruel to arouse me without finishing." <<default>> "Are you impressed?" <</switch>> <</if>> <<else>> <<if $NPCList[_n].type is "wolfgirl" or $NPCList[_n].type is "wolfboy">> <<switch $npcspeechcycle>> <<case 0>> "You smell nice." <<case 1>> "Going to mate with you. Okay?" <<case 2>> "<<print ($settings.pregnancySpeechEnabled ? "Breed" : "Mate")>> with me." <<case 3>> "Bet prey tastes nice." <<case 4>> "Smell fertile. Ready for seed." <<case 5>> "Cold out. I keep you warm." <<default>> "I am the pack's strongest. All will see." <</switch>> <<else>> <<switch $npcspeechcycle>> <<case 0>> "You smell nice." <<case 1>> "I'm going to mate with you. I hope that's okay." <<case 2>> "You have to mate with me." <<case 3>> "I bet you taste nice." <<case 4>> "You smell very fertile." <<case 5>> "I'll keep you warm." <<default>> "I'm the strongest, you'll see." <</switch>> <</if>> <</if>> <</if>> <</if>> <<else>> <<if $player.gender_appearance is "f">> <<if $enemyanger gte 60>> <<if $enemyarousal gte ($enemyarousalmax / 2)>> <<if $NPCList[_n].type is "wolfgirl" or $NPCList[_n].type is "wolfboy">> <<switch $npcspeechcycle>> <<case 0>> "My territory. Mine." <<case 1>> "All will know scent. Show to pack as prize." <<case 2>> "Show prey who leads." <<case 3>> "No struggle, work hard for prey." <<case 4>> "Share with pack if keep squirming!" <<case 5>> "I'm in charge. You follow." <<default>> "Show prey their place." <</switch>> <<else>> <<switch $npcspeechcycle>> <<case 0>> "This is my territory." <<case 1>> "I'm gonna mark you with my scent so everyone knows who owns you." <<case 2>> "I'm gonna show you who's in charge." <<case 3>> "It's no fun without a struggle." <<case 4>> "You'd best be nice, or I'll share you with my siblings." <<case 5>> "I'm the alpha here." <<default>> "I'll show you your place." <</switch>> <</if>> <<else>> <<if $NPCList[_n].type is "wolfgirl" or $NPCList[_n].type is "wolfboy">> <<switch $npcspeechcycle>> <<case 0>> "You're no alpha! I show you." <<case 1>> "Squirm less. Submit!" <<case 2>> "Prey should be lucky. Prefer to eat." <<case 3>> "Be proud. Mate, not eat. Best of pack." <<case 4>> "Stay still, else I attack." <<case 5>> "Smell good. Eat later." <<default>> "Strong offspring from you one day. For pack. We can protect them." <</switch>> <<else>> <<switch $npcspeechcycle>> <<case 0>> "I'm gonna show you who's boss." <<case 1>> "Stop squirming." <<case 2>> "You're lucky I don't eat you." <<case 3>> "You should feel honoured I want to mate." <<case 4>> "Don't make me hurt you." <<case 5>> "You smell good enough to eat." <<default>> "You'll have strong babies one day." <</switch>> <</if>> <</if>> <<else>> <<if $enemyarousal gte ($enemyarousalmax / 2)>> <<if $NPCList[_n].type is "wolfgirl" or $NPCList[_n].type is "wolfboy">> <<switch $npcspeechcycle>> <<case 0>> "Play feels good." <<case 1>> "Hope you are enjoying this. Much as I do." <<case 2>> "Strong scent from you. Has me in heat." <<case 3>> "Marking you with scent will make you smell better." <<case 4>> "Happy to find mate. Lucky." <<case 5>> "Finish. Cruel to leave me in heat." <<default>> "Strong offspring from you one day. For pack. We can protect them." <</switch>> <<else>> <<switch $npcspeechcycle>> <<case 0>> "Playing with you feels so good." <<case 1>> "I hope you're enjoying this as much as me." <<case 2>> "Your scent alone has me in heat." <<case 3>> "My scent will make you smell even better." <<case 4>> "I'm lucky to have a mate like you." <<case 5>> "It's cruel to arouse me without finishing." <<default>> "You'll have strong babies one day." <</switch>> <</if>> <<else>> <<if $NPCList[_n].type is "wolfgirl" or $NPCList[_n].type is "wolfboy">> <<switch $npcspeechcycle>> <<case 0>> "You smell nice." <<case 1>> "Going to mate with you. Okay?" <<case 2>> "Mate with me." <<case 3>> "Bet prey tastes nice." <<case 4>> "Smell fertile." <<case 5>> "Cold out. I keep you warm." <<default>> "My mates for me only. Not for you. No taking." <</switch>> <<else>> <<switch $npcspeechcycle>> <<case 0>> "You smell nice." <<case 1>> "I'm going to mate with you. I hope that's okay." <<case 2>> "You have to mate with me." <<case 3>> "I bet you taste nice." <<case 4>> "You smell very fertile." <<case 5>> "I'll keep you warm." <<default>> "You aren't planning on stealing my mates, I hope." <</switch>> <</if>> <</if>> <</if>> <<else>> <<if $enemyanger gte 60>> <<if $enemyarousal gte ($enemyarousalmax / 2)>> <<if $NPCList[_n].type is "wolfgirl" or $NPCList[_n].type is "wolfboy">> <<switch $npcspeechcycle>> <<case 0>> "Ready. Mark with your scent. Can take it all. Wait no longer." <<case 1>> "I belong to you. All will know your scent. Fill me." <<case 2>> "Litter inside me should make you quiet soon. I carry for you." <<case 3>> "No struggle, work hard for prey." <<case 4>> "Share with pack if keep squirming!" <<case 5>> "Prey is mine." <<default>> "My womb belongs to you. Begging for you." <</switch>> <<else>> <<switch $npcspeechcycle>> <<case 0>> "I can't wait to take your seed." <<case 1>> "Fill me up so everyone knows who <<bred>> me." <<case 2>> "You won't be so insolent once I'm carrying your litter." <<case 3>> "It's no fun without a struggle." <<case 4>> "You'd best be nice, or I'll share you with my siblings." <<case 5>> "Your cock is mine." <<default>> "My womb is desperate for you." <</switch>> <</if>> <<else>> <<if $NPCList[_n].type is "wolfgirl" or $NPCList[_n].type is "wolfboy">> <<switch $npcspeechcycle>> <<case 0>> "I show prey who the alpha is." <<case 1>> "Squirm less. Submit!" <<case 2>> "Prey should be lucky. Prefer to eat." <<case 3>> "Be proud. Mate, not eat. Best of pack." <<case 4>> "Stay still, else I attack." <<case 5>> "Smell good. Eat later." <<default>> "Strong offspring from you, as pack father." <</switch>> <<else>> <<switch $npcspeechcycle>> <<case 0>> "I'm gonna show you who's boss." <<case 1>> "Stop squirming." <<case 2>> "You're lucky I don't eat you." <<case 3>> "You should feel honoured I want to mate." <<case 4>> "Don't make me hurt you." <<case 5>> "You smell good enough to eat." <<default>> "You'll father strong babies." <</switch>> <</if>> <</if>> <<else>> <<if $enemyarousal gte ($enemyarousalmax / 2)>> <<if $NPCList[_n].type is "wolfgirl" or $NPCList[_n].type is "wolfboy">> <<switch $npcspeechcycle>> <<case 0>> "Put seed in me. Please." <<case 1>> "Hope you are enjoying this. Much as I do." <<case 2>> "Strong scent from you. Has me in heat." <<case 3>> "Mark me as yours. Yours alone. My own special mate." <<case 4>> "Happy to find mate. Lucky." <<case 5>> "Finish. Cruel to leave me in heat." <<default>> "Strong offspring from you, as pack father." <</switch>> <<else>> <<switch $npcspeechcycle>> <<case 0>> "Being filled is gonna feel so good." <<case 1>> "I hope you're enjoying this as much as me." <<case 2>> "Your scent alone has me in heat." <<case 3>> "Mark me with your seed and scent." <<case 4>> "I'm lucky to have a mate like you." <<case 5>> "It's cruel to leave me in heat." <<default>> "You'll father strong babies." <</switch>> <</if>> <<else>> <<if $NPCList[_n].type is "wolfgirl" or $NPCList[_n].type is "wolfboy">> <<switch $npcspeechcycle>> <<case 0>> "You smell nice." <<case 1>> "Going to mate with you. Okay?" <<case 2>> "Mate with me." <<case 3>> "Bet prey tastes nice." <<case 4>> "Smell fertile." <<case 5>> "Cold out. I keep you warm." <<default>> "My mates for me only. Not for you. No taking." <</switch>> <<else>> <<switch $npcspeechcycle>> <<case 0>> "You smell nice." <<case 1>> "I'm going to mate with you. I hope that's okay." <<case 2>> "You have to <<print ($settings.pregnancySpeechEnabled ? "breed" : "mate")>> with me." <<case 3>> "I bet you taste nice." <<case 4>> "You smell very fertile." <<case 5>> "I'll keep you warm." <<default>> "Ready to mother litter. Yours. All will see." <</switch>> <</if>> <</if>> <</if>> <</if>> <</if>> <</widget>> <<widget "hawkspeech">> <<if $NPCList[_n].penis isnot "none">> <<if $player.gender_appearance is "f">> <<if $enemyanger gte 60>> <<if $enemyarousal gte ($enemyarousalmax / 2)>> <<switch $npcspeechcycle>> <<case 0>> "<<Wife>> has to take my seed." <<case 1>> "Be still. Let me take care of you." <<case 2>> "Now is not time for mating dance! It's time for mating!" <<case 3>> "Is this landbound way of showing love? I have a lot to learn from <<wife>>." <<case 4>> "Will be harder to move like this when <<wife>> is full of eggs." <<case 5>> "Is <<wife>> not happy? How can I fix?" <<default>> "Will my seed calm you down, <<wife>>?" <</switch>> <<else>> <<switch $npcspeechcycle>> <<case 0>> "Even if <<wife>> is rough, I will be gentle." <<case 1>> "<<Wife>> is very strong! I feel so proud!" <<case 2>> "<<Wife>> will get hungry from all this squirming. I'll hunt big meal after." <<case 3>> "Will make sure <<wife>> has belly full of food and eggs." <<case 4>> "Be careful! I am not food! No need to fight me!" <<case 5>> "Hold still. I want to fill <<wife>> up." <<default>> "Our babies will be the strongest flyers." <</switch>> <</if>> <<else>> <<if $enemyarousal gte ($enemyarousalmax / 2)>> <<switch $npcspeechcycle>> <<case 0>> "Grateful for my eyes, that spotted you." <<case 1>> "I want to hear <<wife>>'s sweet mating song." <<case 2>> "Your smell is making me broody. I'll fill you up." <<case 3>> "I'll watch <<wife>> lay our eggs from <<pher>> fertile womb." <<case 4>> "I want to finish in <<wife>> and only <<wife>> for the rest of my life." <<case 5>> "Want to see you sitting on a clutch of eggs." <<default>> "Our babies will be the strongest flyers." <</switch>> <<else>> <<switch $npcspeechcycle>> <<case 0>> "We will make a beautiful flock together." <<case 1>> "Our mating song is the prettiest sound in the world." <<case 2>> "First you'll be full of my seed. Then full of my eggs." <<case 3>> "Does this make <<wife>> feel good, too?" <<case 4>> "I'll mate with you, make you as happy as you make me." <<case 5>> "Is <<wife>> ready for my seed?" <<default>> "I'm ready to breed with you." <</switch>> <</if>> <</if>> <<else>> <<if $enemyanger gte 60>> <<if $enemyarousal gte ($enemyarousalmax / 2)>> <<switch $npcspeechcycle>> <<case 0>> "<<Wife>> has to take my seed." <<case 1>> "Be still. Let me take care of you." <<case 2>> "Now is not time for mating dance! It's time for mating!" <<case 3>> "Is this landbound way of showing love? I have a lot to learn from <<wife>>." <<case 4>> "Will be harder to move like this when <<wife>> is full of my seed." <<case 5>> "Is <<wife>> not happy? How can I fix?" <<default>> "Will my seed calm you down, <<wife>>?" <</switch>> <<else>> <<switch $npcspeechcycle>> <<case 0>> "Even if <<wife>> is rough, I will be gentle." <<case 1>> "<<Wife>> is very strong! I feel so proud!" <<case 2>> "<<Wife>> will get hungry from all this squirming. I'll hunt big meal after." <<case 3>> "Will make sure <<wife>> has belly full of food and hole full of me." <<case 4>> "Be careful! I am not food! No need to fight me!" <<case 5>> "Hold still. I want to fill <<wife>> up." <<default>> "You're taking me so well." <</switch>> <</if>> <<else>> <<if $enemyarousal gte ($enemyarousalmax / 2)>> <<switch $npcspeechcycle>> <<case 0>> "Grateful for my eyes, that spotted you." <<case 1>> "I want to hear <<wife>>'s sweet mating song." <<case 2>> "Your smell is making me broody. I'll fill you up." <<case 3>> "I'll watch <<wife>>'s hole be filled with my seed." <<case 4>> "I want to finish in <<wife>> and only <<wife>> for the rest of my life." <<case 5>> "Want to see you sitting naked in our nest." <<default>> "You're taking me so well." <</switch>> <<else>> <<switch $npcspeechcycle>> <<case 0>> "You make such a beautiful <<wife>>." <<case 1>> "Our mating song is the prettiest sound in the world." <<case 2>> "You'll be full of my seed." <<case 3>> "Does this make <<wife>> feel good, too?" <<case 4>> "I'll mate with you, make you as happy as you make me." <<case 5>> "Is <<wife>> ready for my seed?" <<default>> "I'm ready to breed with you." <</switch>> <</if>> <</if>> <</if>> <<else>> <<if $player.gender_appearance is "f">> <<if $enemyanger gte 60>> <<if $enemyarousal gte ($enemyarousalmax / 2)>> <<switch $npcspeechcycle>> <<case 0>> "<<Wife>> has to be marked with my scent." <<case 1>> "Be still. Let me take care of you." <<case 2>> "Now is not time for mating dance! It's time for mating!" <<case 3>> "Is this landbound way of showing love? I have a lot to learn from <<wife>>." <<case 4>> "Why move like this, <<wife>>?" <<case 5>> "Is <<wife>> not happy? How can I fix?" <<default>> "What will calm you down, <<wife>>?" <</switch>> <<else>> <<switch $npcspeechcycle>> <<case 0>> "Even if <<wife>> is rough, I will be gentle." <<case 1>> "<<Wife>> is very strong! I feel so proud!" <<case 2>> "<<Wife>> will get hungry from all this squirming. I'll hunt big meal after." <<case 3>> "Will make sure <<wife>> has belly full of food and skin marked with my scent." <<case 4>> "Be careful! I am not food! No need to fight me!" <<case 5>> "Hold still. I want to show <<wife>> my love." <<default>> "You're such a good mate." <</switch>> <</if>> <<else>> <<if $enemyarousal gte ($enemyarousalmax / 2)>> <<switch $npcspeechcycle>> <<case 0>> "Grateful for my eyes, that spotted you." <<case 1>> "I want to hear <<wife>>'s sweet mating song." <<case 2>> "Your smell is making me broody. I'll wet you with my juices." <<case 3>> "I'll watch the look on <<wife>>'s face as <<pshe>> finishes." <<case 4>> "I want to finish with <<wife>> and only <<wife>> for the rest of my life." <<case 5>> "Want to see you sitting naked in our nest." <<default>> "You're such a good mate." <</switch>> <<else>> <<switch $npcspeechcycle>> <<case 0>> "You make such a beautiful <<wife>>." <<case 1>> "Our mating song is the prettiest sound in the world." <<case 2>> "First you'll be under me. Then finish under me." <<case 3>> "Does this make <<wife>> feel good, too?" <<case 4>> "I'll mate with you, make you as happy as you make me." <<case 5>> "Is <<wife>> ready to finish?" <<default>> "I'm ready to breed with you." <</switch>> <</if>> <</if>> <<else>> <<if $enemyanger gte 60>> <<if $enemyarousal gte ($enemyarousalmax / 2)>> <<switch $npcspeechcycle>> <<case 0>> "<<Wife>> has to give me <<pher>> seed." <<case 1>> "Be still. Let me take care of you." <<case 2>> "Now is not time for mating dance! It's time for mating!" <<case 3>> "Is this landbound way of showing love? I have a lot to learn from <<wife>>." <<case 4>> "Will be harder to move like this when <<wife>> is filling my womb." <<case 5>> "Is <<wife>> not happy? How can I fix?" <<default>> "Will my hole calm you down, <<wife>>?" <</switch>> <<else>> <<switch $npcspeechcycle>> <<case 0>> "Even if <<wife>> is rough, I will be gentle." <<case 1>> "<<Wife>> is very strong! I feel so proud!" <<case 2>> "<<Wife>> will get hungry from all this squirming. I'll hunt big meal after." <<case 3>> "Will make sure <<wife>> has belly full of food and body warmed by me." <<case 4>> "Be careful! I am not food! No need to fight me!" <<case 5>> "Hold still. I want <<wife>> to fill me up." <<default>> "Our babies will be the strongest flyers." <</switch>> <</if>> <<else>> <<if $enemyarousal gte ($enemyarousalmax / 2)>> <<switch $npcspeechcycle>> <<case 0>> "Grateful for my eyes, that spotted you." <<case 1>> "I want to hear <<wife>>'s sweet mating song." <<case 2>> "Your smell is making me broody. Fill me up." <<case 3>> "I'll watch <<wife>> fill me with <<pher>> semen." <<case 4>> "I want to finish with <<wife>> and only <<wife>> for the rest of my life." <<case 5>> "Want to sit on the eggs you'll give me." <<default>> "Our babies will be the strongest flyers." <</switch>> <<else>> <<switch $npcspeechcycle>> <<case 0>> "You make such a beautiful <<wife>>." <<case 1>> "Our mating song is the prettiest sound in the world." <<case 2>> "Fill me with your seed." <<case 3>> "Does this make <<wife>> feel good, too?" <<case 4>> "I'll mate with you, make you as happy as you make me." <<case 5>> "Is <<wife>> ready to finish in me?" <<default>> "I'm ready to breed with you." <</switch>> <</if>> <</if>> <</if>> <</if>> <</widget>> <<widget "clothesspeech">> <<rng>> <<if $rng gte 81>> <<rng>> <<if !$worn.upper.type.includes("naked")>> <<He>> examines your $worn.upper.name. <<switch $worn.upper.name>> <<case "sundress">> <<switch random(1,3)>> <<case 1>> "What a cute little dress." <<case 2>> "I like your dress." <<case 3>> "So cute and innocent." <</switch>> <<case "evening gown">> <<if $enemyanger gte 20>> "You look like an expensive whore." <<else>> "Classy." <</if>> <<case "ballgown">> <<switch random(1,3)>> <<case 1>> "Beautiful." <<case 2>> "Looks like I stole someone's dance partner." <<case 3>> "I almost feel bad about getting your clothes dirty." <</switch>> <<case "kimono" "mini kimono">> <<switch random(1,3)>> <<case 1>> "How exotic." <<case 2>> "Where'd you get this?" <<case 3>> "You even dressed up for me." <</switch>> <<case "maid dress">> <<switch random(1,3)>> <<case 1>> "Time to service your <<master>>." <<case 2>> "I'm your <<master>> now." <<case 3>> "Call me <<master>>." <</switch>> <<case "nun's habit">> <<if $enemyanger gte 20>> <<switch random(1,3)>> <<case 1>> "Trying to look virtuous? No one's buying it, slut." <<case 2>> "You think that's going to protect you?" <<case 3>> "Pious girls are all the more fun to ravage." <</switch>> <<else>> "Always wanted to fuck a nun." <</if>> <<case "pyjama shirt">> <<if $rng gte 71 and $location isnot "home">> "Looks like someone forgot to dress this morning." <<elseif $rng gte 41>> "How unflattering." <<else>> "Don't sell yourself short." <</if>> <<case "t-shirt">> "That shirt's doing a poor job of hiding your cute body." <<case "school shirt">> <<if ["Sirris","River","Doren","Winter","Mason","Leighton"].includes($NPCList[_n].fullDescription)>> <<if $location is "school">> "At least you're following the dress code." <<else>> "Still eager to learn?" <</if>> <<elseif $NPCList[_n].teen is 1>> <<switch random(1,4)>> <<case 1>> "The school uniform looks good on you." <<case 2>> "I hate how they make us wear these." <<case 3>> "Call me teacher." <<case 4>> "I've got a lot to teach you." <</switch>> <<else>> <<switch random(1,4)>> <<case 1>> "Always wanted to fuck a student." <<case 2>> "Still going to school, I see." <<case 3>> "Call me teacher." <<case 4>> "I've got a lot to teach you." <</switch>> <</if>> <<case "tank top">> <<switch random(1,2)>> <<case 1>> "Only sluts wear tank tops." <<case 2>> "Really shows off your chest." <</switch>> <<case "tuxedo jacket">> <<if $enemyanger gte 20>> "Looks like you were on your way to somewhere fancy. You're stuck with me now." <<elseif $player.gender_appearance is "f">> "Trying to pass as a boy?" <<else>> "Classy." <</if>> <<case "babydoll lingerie">> <<if $enemyanger gte 20>> "You're really asking for it, wearing that." <<else>> <<switch random(1,3)>> <<case 1>> "So sexy." <<case 2>> "God, you're hot." <<case 3>> "You can't expect me to control myself if you dress like that." <</switch>> <</if>> <<case "crop top">> "Really shows off your nice, tight body." <<case "tube top">> <<switch random(1,2)>> <<case 1>> "You're barely wearing anything." <<case 2>> "You may as well be running around in underwear." <</switch>> <<case "turtleneck">> <<if $enemyanger gte 20>> <<switch random(1,2)>> <<case 1>> "You look so slutty in that." <<case 2>> "Only sluts dress like this." <</switch>> <<else>> <<switch random(1,2)>> <<case 1>> "Cute tummy." <<case 2>> "You're so slim." <</switch>> <</if>> <<case "sweater">> <<switch random(1,2)>> <<case 1>> "You're adorable." <<case 2>> "Why so shy?" <</switch>> <<case "serafuku" "gakuran">> <<switch random(1,3)>> <<case 1>> "What a cute outfit." <<case 2>> "Are you one of those anime nerds?" <<case 3>> "Always wanted to fuck a <<girl>> in one of these." <</switch>> <<case "plant top">> <<switch random(1,7)>> <<case 1>> "How strange." <<case 2>> "What is that?" <<case 3>> "You look like a mermaid." <<case 4>> "Has an odd charm." <<case 5>> "Lost your clothes?" <<case 6>> "That can't be hygienic." <<case 7>> "Is that made of plants?" <</switch>> <<case "towel top" "large towel">> <<switch random(1,3)>> <<case 1>> "Were you in a hurry?" <<case 2>> "You need to get yourself some new clothes." <<case 3>> "Nice and easy to take off." <</switch>> <<default>> <<basespeech>><<neutral 1>> <</switch>> <<else>> <<basespeech>><<neutral 1>> <</if>> <<elseif $rng gte 61>> <<rng>> <<if !$worn.lower.type.includes("naked")>> <<He>> examines your $worn.lower.name. <<switch $worn.lower.name>> <<case "pyjama bottoms">> <<if $rng gte 71 and $location isnot "home">> "Forget to dress this morning?" <<elseif $rng gte 41>> "How unflattering." <<else>> "Don't sell yourself short." <</if>> <<case "waist apron">> <<switch(1,2)>> <<case 1>> "Already dressed for service, huh?" <<case 2>> "Cute apron." <</switch>> <<case "school shorts">> <<if $player.gender_appearance is "f">> <<switch random(1,2)>> <<case 1>> "Aren't those for boys?" <<case 2>> "What a tomboy you are." <</switch>> <<else>> <<switch random(1,2)>> <<case 1>> <<if $NPCList[_n].teen is 1>>"The uniform shorts fit you."<<else>>"Always wanted to fuck a school boy."<</if>> <<case 2>> "Nice and tight." <</switch>> <</if>> <<case "shorts">> <<switch(1,2)>> <<case 1>> "These show off your legs nicely." <<case 2>> "Wish you were wearing something tighter." <</switch>> <<case "school skirt">> <<if $player.gender_appearance is "m">> <<if $NPCList[_n].teen is 1>> "Do you get off on people thinking you're a girl?" <<else>> "Do your classmates know you're a boy?" <</if>> <<else>> <<if $NPCList[_n].teen is 1>> "The uniform skirt suits you." <<else>> "Always wanted to fuck a school girl." <</if>> <</if>> <<case "tuxedo trousers">> <<if $enemyanger gte 20>> "Were you on your way to somewhere fancy? You're stuck with me now." <<elseif $player.gender_appearance is "f">> "Do you enjoy dressing as a boy?" <<else>> <<switch random(1,2)>> <<case 1>> "Nice trousers." <<case 2>> "I'll try not to dirty your fancy trousers too much." <</switch>> <</if>> <<case "board shorts">> <<switch(1,2)>> <<case 1>> "I hope you enjoy your swim." <<case 2>> "I prefer shorts to be shorter." <</switch>> <<case "breeches">> "Really show off your legs." <<case "long cut skirt" "short cut skirt" "long skirt">> <<switch(1,2)>> <<case 1>> "I love a skirt. So easy to pull up." <<case 2>> "I'm glad you're wearing a skirt. Makes things easy." <</switch>> <<case "cycle shorts">> <<switch random(1,5)>> <<case 1>> "The sight of your cute bottom in those tight shorts is driving me crazy." <<case 2>> "Those don't leave much to the imagination. I'm not complaining." <<case 3>> "Do I see a wet patch between your legs?" <<case 4>> "That tight fabric is so inviting." <<case 5>> "I want to run my hands all over that." <</switch>> <<case "jeans">> "They really accentuate your legs." <<case "school trousers">> <<if $player.gender_appearance is "f">> "You're such a tomboy." <<else>> <<if $NPCList[_n].teen is 1>> "You should wear something more revealing." <<else>> "Always wanted to fuck a school boy." <</if>> <</if>> <<case "trousers">> "You should wear something tighter." <<case "miniskirt">> <<if $enemyanger gte 20>> "Only total sluts wear them this short." <<else>> <<switch random(1,2)>> <<case 1>> "That short skirt is driving me crazy." <<case 2>> "I like them short." <</switch>> <</if>> <<case "plant skirt">> <<switch random(1,7)>> <<case 1>> "How strange." <<case 2>> "What is that?" <<case 3>> "You look like a mermaid." <<case 4>> "Has an odd charm." <<case 5>> "Lost your clothes?" <<case 6>> "That can't be hygienic." <<case 7>> "Is that made of plants?" <</switch>> <<case "towel skirt" "large towel bottom">> <<switch random(1,3)>> <<case 1>> "Were you in a hurry?" <<case 2>> "You need to get yourself some new clothes." <<case 3>> "Nice and easy to take off." <</switch>> <<default>> <<basespeech>><<neutral 1>> <</switch>> <<else>> <<basespeech>><<neutral 1>> <</if>> <<elseif $rng gte 41>> <<rng>> <<if !$worn.under_upper.type.includes("naked") and $worn.upper.exposed gte 2>> <<He>> examines your $worn.under_upper.name. <<switch $worn.under_upper.name>> <<case "school swimsuit" "foreign school swimsuit">> <<if $enemyanger gte 20>> "I'll leave you a wet mess." <<elseif $rng gte 51>> <<if $NPCList[_n].teen is 1>> "Always wanted to fuck the girls in my class in their swimsuits." <<else>> "Always wanted to fuck a student in one of these swimsuits." <</if>> <<else>> "School swimsuits are so hot." <</if>> <<case "leotard" "skimpy leotard" "unitard">> <<switch random(1,4)>> <<case 1>> "That leotard leaves little to the imagination." <<case 2>> "So nice and tight." <<case 3>> "That leotard really accentuates your body." <<case 4>> "I love athletic <<girls>>." <</switch>> <<case "swimsuit">> <<if $enemyanger gte 20>> "I'll leave you a wet mess." <<else>> <<switch random(1,3)>> <<case 1>> "Always wanted to fuck a <<if $player.gender_appearance is "m">>'girl'<<else>>girl<</if>> in a swimsuit." <<case 2>> "What a cute swimsuit." <<case 3>> "Your swimsuit is so hot." <</switch>> <</if>> <<case "bunny leotard">> <<switch random(1,6)>> <<case 1>> "That leotard leaves nothing to the imagination." <<case 2>> "So nice and tight." <<case 3>> "That leotard really accentuates your body." <<case 4>> "Your body deserves a tip." <<case 5>> "Are you in heat, bunnygirl?" <<case 6>> "You look just like those in magazines." <</switch>> <<case "bikini top">> <<if $rng gte 51>> "Cute bikini." <<else>> <<if $NPCList[_n].penis isnot "none">> "I bet you give people lots of awkward boners on the beach." <<else>> "I bet you've gotten countless pussies wet." <</if>> <</if>> <<case "catgirl bra">> <<switch random(1,2)>> <<case 1>> "You're a cute one." <<case 2>> "Quite the playful one, aren't you?" <</switch>> <<case "lace bra">> <<switch random(1,2)>> <<case 1>> "Sexy and tasteful." <<case 2>> "That's pretty lewd." <</switch>> <<case "microkini top">> "You're lewd indeed if you go swimming like this." <<case "plain bra">> "Plain, but pretty." <<case "sports bra" "swim shirt">> <<switch random(1,2)>> <<case 1>> "I love sexy sportswear." <<case 2>> "You're quite athletic, aren't you?" <</switch>> <<default>> <<basespeech>><<neutral 1>> <</switch>> <<else>> <<basespeech>><<neutral 1>> <</if>> <<elseif $rng gte 21>> <<rng>> <<if !$worn.under_lower.type.includes("naked") and $worn.lower.exposed gte 2>> <<He>> examines your $worn.under_lower.name. <<switch $worn.under_lower.name>> <<case "plain panties">> "Plain, but pretty." <<case "bikini bottoms">> <<if $rng gte 51>> "Cute bikini." <<else>> <<if $NPCList[_n].penis isnot "none">> "I bet you cause lots of awkward boners wearing this at the beach." <<else>> "You're making me so wet." <</if>> <</if>> <<case "lace panties">> "Lewd yet classy." <<case "briefs">> <<if $player.gender_appearance is "f">> "Aren't those for boys?" <<else>> "I might keep these as a souvenir." <</if>> <<case "school swim shorts">> <<if $player.gender_appearance is "f">> <<switch random(1,2)>> <<case 1>> "Did you steal those from the boys' changing room?" <<case 2>> "Aren't those for boys? They're nice and tight still." <</switch>> <<else>> <<switch random(1,2)>> <<case 1>> "I've always wanted to fuck a school boy wearing these." <<case 2>> "So glad they make the uniform swimsuits so tight." <</switch>> <</if>> <<case "boyshorts">> <<switch random(1,2)>> <<case 1>> "These really show off your bottom." <<case 2>> "So spankable." <</switch>> <<case "catgirl panties">> <<switch random(1,2)>> <<case 1>> "So cute." <<case 2>> "How playful." <</switch>> <<case "G-string">> <<switch random(1,2)>> <<case 1>> "I love these." <<case 2>> "They barely cover anything." <</switch>> <<case "crotchless panties">> <<switch random(1,2)>> <<case 1>> "Kinky." <<case 2>> "Don't even need to remove them." <</switch>> <<case "microkini bottom">> "You must be pretty perverted to go swimming in this." <<case "speedo">> <<if $player.gender_appearance is "f">> "Aren't those for boys? Hot though." <<else>> "So tight." <</if>> <<case "striped panties">> <<if $rng gte 100>> "Shimapan!" <<elseif $rng gte 51>> "Very cute." <<else>> "Cute colours." <</if>> <<default>> <<basespeech>><<neutral 1>> <</switch>> <<else>> <<basespeech>><<neutral 1>> <</if>> <<elseif $rng gte 11>> <<rng>> <<if !$worn.face.type.includes("naked")>> <<He>> examines your $worn.face.name. <<if $worn.face.type.includes("glasses")>> <<if $enemyanger gte 20>> <<switch random(1,5)>> <<case 1>> "I'll break those if you don't behave." <<case 2>> "Fucking nerd." <<case 3>> "How'd you like to have your glasses smashed?" <<case 4>> "You must be picked on all the time with those." <<case 5>> "How much those cost? Maybe I'll take them." <</switch>> <<else>> <<switch random(1,5)>> <<case 1>> "I love <<girls>> with glasses." <<case 2>> "Cute glasses." <<case 3>> "Fashionable." <<case 4>> "They suit you." <<case 5>> "Nice eyewear." <</switch>> <</if>> <<else>> <<basespeech>><<neutral 1>> <</if>> <<else>> <<basespeech>><<neutral 1>> <</if>> <<else>> <<rng>> <<if !$worn.legs.type.includes("naked")>> <<He>> examines your $worn.legs.name. <<switch $worn.legs.name>> <<case "tights">> <<switch random(1,3)>> <<case 1>> "Your legs look so smooth." <<case 2>> "Makes me want to run my hands all over them." <<case 3>> "Such a tease." <</switch>> <<case "boy's gym socks" "girl's gym socks">> "Cute socks." <<case "fishnet stockings" "fishnet tights">> <<if $enemyanger gte 20>> "You look like a whore." <<else>> "I love fishnets." <</if>> <<case "stockings" "garter stockings">> "Classy." <<case "legwarmers">> "How cute." <<default>> <<basespeech>><<neutral 1>> <</switch>> <<else>> <<basespeech>><<neutral 1>> <</if>> <</if>> <</widget>> <<widget "plantspeech">> <<if $speechpenisvirgin is 1 or $speechvaginavirgin is 1>> <<He>> grins. "Is this your first time? Lucky break!" <<elseif $speechanusvirgin gte 1>> <<He>> grins. "First time taking it up this hole, huh? I'll show you how great it is!" <<elseif $speechmouthvirgin gte 1>> <<He>> grins. "You've never used your mouth like this before, have you? I'll make it extra sweet, just for you." <<elseif $speechkissvirgin is 1>> <<He>> moans into your mouth. "I'll get you addicted to kissing. Or maybe you'll just be addicted to me." <span class="pink">Sweet nectar floods your mouth, and <<he>> winks.</span> <<nectarfed 50>> <<elseif $speechvaginavirgin is 2 and $NPCList[0].penis isnot "none">> <<He>> whines. "Oh, you were a virgin? Come on! I knew I should've used my dick." <<elseif $speechpenisvirgin is 2>> <<He>> whines. "Oh, you were a virgin? Come on! I knew I should've used my <<if $NPCList[0].vagina isnot "none">>pussy<<else>>ass<</if>>." <<elseif $speechspray is 1>> <<He>> yelps. <<if $speechspraycycleplant is 1>> "Cut that out!" <<else>> <<set $speechspraycycleplant to 1>> "Agh! What is that, attack pollen? Can humans do that?!" <</if>> <<elseif $speechcum is 1>> <<if $exposed gte 2 and $player.penisExist>> <<if $semen_amount lte (($semen_volume / 24) * 6) or $orgasmcount gte 24 or $femaleclimax or _deniedOrgasm>> <<He>> blinks. "Where's the, y'know... the cum? Is that it?" <<elseif ["othervagina","otheranus","tentacle","tentacledeep"].includes($penisstate)>> <<if $parasite.penis.name or _condom or $worn.genitals.name is "chastity parasite">> <<He>> groans. "Come on, get that thing off your dick! It blocked all the cum!" <<elseif $orgasmcurrent is 1>> <<He>> moans. "Oh, that's the stuff. I'll milk you dry for this. Fertilise me more." <<else>> <<He>> moans. "I'll be the one addicted to you at this rate. Plant your seed in me." <</if>> <<else>> <<switch $orgasmcurrent>> <<case 1>> <<He>> giggles. "I'm not the only one having fun." <<case 2>> <<He>> giggles. "Wow, you're like a fountain!" <<default>> <<He>> giggles. "I'll milk you dry, just watch me." <</switch>> <</if>> <<else>> <<if ["otherpenis","tentacle"].includes($vaginause) or ["otherpenis","tentacle"].includes($anususe)>> <<switch $orgasmcurrent>> <<case 1>> <<He>> moans. "It'll be my turn soon. I'll pollinate you." <<case 2>> <<if $vaginause is "tentacle" or $anususe is "tentacle">> <<He>> giggles. "Are my vines making you feel that good?" <<else>> <<He>> giggles. "You're so cute, making that face while I'm fucking you." <</if>> <<default>> <<He>> giggles. "You won't need anyone but me soon enough!" <</switch>> <<else>> <<switch $orgasmcurrent>> <<case 1>> <<He>> grins. "I love making humans do that." <<case 2>> <<He>> grins. "Now how about you make me feel good, to return the favour?" <<default>> <<He>> giggles. "You won't need anyone but me soon enough!" <</switch>> <</if>> <</if>> <<elseif $alarm is 1 and isLoveInterest("Eden") and $location is "forest">> <<He>> yelps. "What are you doing, shouting for the freak? Don't you know how dangerous <<nnpc_he "Eden">> is?!" <<set $enemytrust -= 30>> <<elseif $speechnamedrop is 1 and _loveInterest is "Eden" and $location is "forest">> <<He>> flinches at your words. "Oh shit, you know the <<nnpc_title "Eden">>? This is... dangerous." <<set $enemytrust -= 20>> <<elseif $speechnamedrop is 1 and _loveInterest is "Black Wolf" and $location is "forest">> <<He>> grins. "The alpha won't even recognise you when I'm done with you!" <<elseif $speechnamedrop is 1 and _loveInterest is "Alex" and $location is "moor">> <<He>> grins. "A farmer, huh? Maybe I'll cultivate you, cow<<girl>>." <<elseif $speechnamedrop is 1 and _loveInterest is "Great Hawk" and $location is "moor">> <<He>> flinches at your words. "Oh shit, you know the sky terror? This is... dangerous." <<set $enemytrust -= 20>> <<elseif $speechnamedrop is 1 and _loveInterest is "Gwylan">> <<His>> vegetation turns pale. "Th-the witch? You're <<nnpc_his "Gwylan">> charge? Shit." <<set $enemytrust -= 20>> <<elseif random(1,10) is 10 and $NPCList[_n].penis isnot "chest" and $NPCList[_n].location.genitals isnot "head" and $mouthstate is 0 and !$worn.face.type.includes("covered") and !$worn.face.type.includes("gag")>> <span class="blue"><<He>> moves <<his>> lips close to yours, about to kiss.</span> <span class="pink"><<His>> breath smells sweet.</span> <<set $mouthuse to "kiss">><<set $mouthstate to "kissentrance">><<set $NPCList[_n].mouth to "kissentrance">><<sex 1 "mouth">><<set $mouthtarget to _n>> <<set $NPCList[_n].location.head = "head">> <<elseif random(1,20) is 20 and $tentacleMouth>> <<He>> <span class="lblue">yanks the $tentacleMouth <<if $mouthstate is "tentacle" or $mouthstate is "tentacledeep">>out of<<else>>away from<</if>> your mouth</span> and <span class="blue">moves <<his>> lips close to yours, about to kiss.</span> <span class="pink"><<His>> breath smells sweet.</span> <<set $mouthuse to "kiss">><<set $mouthstate to "kissentrance">><<set $NPCList[_n].mouth to "kissentrance">><<sex 1 "mouth">><<set $mouthtarget to _n>> <<set $NPCList[_n].location.head = "head">> <<set $tentacleMouth to "removed">> <<elseif random(1,3) is 3>> <<basespeech "low">> <<else>> <<if $speechheadsuckle is 1 or $speechmouthpenetrated is 1 or $speechvaginamouth is 1 or $speechfacesit is 1>> <<switch $npcspeechcycle>> <<case 0>> <<He>> coos. "Isn't it the sweetest thing you've ever tasted?" <<case 1>> <<He>> coos. "Drink up, it's good for you!" <<case 2>> <<He>> giggles. "You love my nectar, don't you? It's okay. Everyone does." <<case 3>> <<He>> coos. "Just keep drinking it, until your mind goes blank." <<case 4>> <<He>> giggles. "Wouldn't it be lovely if you got addicted and had to spend the rest of your life here?" <<case 5>> <<He>> <<if $NPCList[_n].lefthand is 0 or $NPCList[_n].righthand is 0>>strokes your hair<<else>>smiles at you<</if>>. "You don't need to worry. I'll take care of you." <<default>> <<He>> giggles. "You won't be able to go back to anything else." <</switch>> <<elseif $speechheadsuckleclosed is 1 or $speechmouthentrance is 1 or $speechmouthimminent is 1 or ($speechheadnippleclosed is 1 and $NPCList[_n].pronoun is "f")>> <<switch $npcspeechcycle>> <<case 0>> <<He>> whines. "Try it, it's good!" <<case 1>> <<He>> coos. "You'll love my nectar. Come on, just a lick." <<case 2>> <<He>> coos. "It's delicious, I promise!" <<case 3>> <<He>> whines. "Please? Just one lick. Just one itty-bitty drop." <<case 4>> <<He>> huffs. "You'd love slurping down my nectar, you know." <<case 5>> <<He>> whines. "You're supposed to get addicted! Come on, work with me!" <<default>> <<He>> pouts. "We'd both have so much more fun if you just opened your mouth and started sucking." <</switch>> <<else>> <<switch $npcspeechcycle>> <<case 0>> <<if $worn.upper.name is "plant top" and random(0,1) is 1>> <<He>> examines your $worn.upper.name and beams. "We match!" <<elseif $worn.lower.name is "plant skirt" and random(0,1) is 1>> <<He>> examines your $worn.lower.name and beams. "We match!" <<elseif $worn.head.name is "flower crown" and random(0,1) is 1>> <<He>> examines your $worn.head.name and gasps. "Oh, that's so cute! I need to make one of those for myself!" <<elseif $worn.neck.name is "familiar collar" and random(0,1) is 1>> <<He>> examines your $worn.neck.name and winces. "I'm... going to try not to think about the implications of that." <<elseif $rng gte 51>> <<He>> speaks. "I bet nobody in the town has vines like mine!" <<else>> <<He>> speaks. "All natural, baby." <</if>> <<case 1>> <<if $wolfgirl gte 4 and $transformationParts.wolf.ears isnot "hidden" and $location is "forest">> <<He>> examines your wolf ears and frowns. "Hey, are you with the... never mind." <<elseif $harpy gte 6 and $transformationParts.bird.wings isnot "hidden" and $location is "moor">> <<He>> examines your<<if $demon gte 6 or $angel gte 6 or $fallenangel gte 2>> bird<</if>> wings and frowns. "Hey, are you with the... never mind." <<elseif $cow gte 2 and $transformationParts.cow.horns isnot "hidden" and $location is "moor">> <<He>> examines your<<if $demon gte 2>> cow<</if>> horns and smiles. "Don't worry. I won't let Remy get you." <<elseif $rng gte 51>> <<He>> speaks. "You deserve this. You deserve this pleasure." <<else>> <<He>> speaks. "We fit together perfectly!" <</if>> <<case 2>> <<if $speechcoverface is 1 or $speechcoverpenis is 1 or $speechcovervagina is 1>> <<He>> giggles. "You don't need to be shy! I'm the only one here." <<elseif ["othervagina","otheranus","tentacle","tentacledeep"].includes($penisuse) and $orgasmcurrent gte 1>> <<He>> moans. "You're a much better pollinator than <<if $location is "forest">>those giant wasps<<else>>the lurkers<</if>>!" <<He>> <<if $NPCList[_n].lefthand is 0 or $NPCList[_n].righthand is 0>>scratches <<his>> head<<else>>smiles<</if>> sheepishly. "That, er, was a compliment." <<elseif $rng gte 51>> <<He>> whispers. "Don't you want to kiss me, lick me, taste me all over?" <<else>> <<He>> speaks. "This is the best, isn't it?" <</if>> <<case 3>> <<if $rng gte 66>> <<He>> grins. "A little slice of paradise, just for us." <<elseif $rng gte 33>> <<He>> grins. "You'll be thinking about me for days." <<else>> <<He>> grins. "If I had my way, you'd be here forever." <</if>> <<case 4>> <<if $anususe is "tentacle" and $tentacleAnusBaby and $settings.parasitePregnancyEnabled>> <<He>> grins. "I'll leave you with something to remember me." <span class="purple">The $tentacleAnus pounding your <<bottom>> speeds up.</span> <<if $NPCList[_n].penis is "anus" and $NPCList[_n].penissize gte 4 and $settings.parasitePregnancyEnabled>> <<He>> grins. "I'll leave you with something to remember me." <span class="purple"><<He>> thrusts faster into your <<bottom>>.</span> <</if>> <<elseif $noanal is 1 and $settings.parasitePregnancyEnabled>> <<He>> pouts. "Shame you don't want it in the ass. I could've given you something to remember me by." <<elseif $rng gte 51>> <<He>> grins. "I just want to pollinate you." <<else>> <<He>> speaks. "Just let me take care of you." <</if>> <<case 5>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> <<He>> moans. "I don't want it to end, but... I'm so close!" <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <<He>> moans. "I might not be able to go back to anyone else. Not after you." <<else>> <<He>> speaks. "I swear, you were made for this!" <</if>> <<default>> <<if $tentacletrait is 1 and random(1,5) is 1>> <<He>> grins. "I can see it in your eyes. You've been dying for this, haven't you?" <<He>> leans in to whisper in your ear. "Someone like me, filling your every hole with my vines. <<if $speech_attitude is "bratty">> Let me fulfil that wish, little <span class="lewd">witch</span>." <<else>> Turning you into my <span class="lewd">prey</span>." <</if>> <<elseif $rng gte 51>> <<He>> speaks. "I'll keep going, and going, until you give in." <<else>> <<He>> giggles. "I've fucked a lot of humans. You're one of my favourites!" <</if>> <</switch>> <</if>> <</if>> <</widget>> <<widget "namedNpcComments">><<silently>> <<unset _noNameComment>> <<switch _args[0]>> <<case "Robin">> <<if $robinmist>> <<set $_text_output to `<br><br>`>> <<set $_text_output += [ `Robin is crying.`, `Robin frantically tries to look away from you, but <<he>> doesn't stop.`, `"I d-don't..." Robin whispers under <<his>> breath.`, `"I love you!" Robin says, though <<hes>> not smiling.`, `"I just need—" Robin gasps. <<He>> doesn't try to finish <<his>> sentence.`, `Robin closes <<his>> eyes, unable to meet your gaze.`, `Robin cries out. Tears are running down <<his>> face.`, `Robin shakes <<his>> head and closes <<his>> eyes.`, `"S-stop it!" Robin yells, but not at you.`, `"I need you..." Robin says with teary eyes.` ][random(0,9)]>> <<set $_text_output += `<<grtrauma>>`>> <<elseif $robinMetal>> <<set $_text_output to [ `Robin can't maintain eye contact.`, `"Hurry," Robin whispers. "So they'll leave you alone."`, `Robin struggles against <<his>> bindings.`, `Robin struggles against the metal tentacles holding <<him>>. They don't budge.`, `"Please," Robin whimpers.`, `Robin stifles a sob.`, `"I'm sorry," Robin hiccups.`, `"They did something to me," Robin says shamefully. "I feel... numb."`, `"I'm sorry it's taking so long," Robin mutters.`, `"They're using me against you," Robin sobs.` ][random(0,9)]>> <<elseif ($speechpenisvirgin is 1 and $player.virginity.penile is _args[0]) or ($speechvaginavirgin is 1 and $player.virginity.vaginal is _args[0])>> <<set $_text_output to `<<He>> gasps. "You saved yourself for me. I don't deserve something so special. Thank you." Tears roll down <<his>> cheeks.`>> <<elseif $speechanusvirgin is 1 and $player.virginity.anal is _args[0]>> <<set $_text_output to `<<He>> gasps. "This is so naughty!"`>> <<elseif $speechmouthvirgin is 1 and $player.virginity.oral is _args[0]>> <<set $_text_output to `<<He>> gasps. "You're making me feel funny down there."`>> <<elseif $speechnamedrop is 1>> <<set $speechnamedrop to 0>> <<set $_text_output to `<<He>> speaks. "So you're a cheater in more ways than one. (This line is a placeholder and should be unobtainable.)"`>> <<elseif $speechsextoy is 1>> <<set $speechsextoy to 0>> <<set $_sexToy to ($rightarm is "heldSexToy" and $leftarm is "heldSexToy" ? "sex toys" : "sex toy")>> <<if C.npc.Robin.dom gte 70>> <<set $_text_output to `<<He>> looks at your $_sexToy and giggles. "` + [`I've wanted to do this with you for a while.`, `This is so dirty... keep going.`][random(0,1)] + `"`>> <<elseif C.npc.Robin.dom lte 30>> <<set $_text_output to `<<He>> looks at your $_sexToy and blushes. "` + [`Woah! Don't you feel embarrassed?`, `Just take it slow, okay?`][random(0,1)] + `"`>> <<else>> <<set $_text_output to `<<He>> looks at your $_sexToy and giggles. "` + [`I can't believe you're touching that.`, `This is so dirty... keep going.`][random(0,1)] + `"`>> <</if>> <<elseif $speechaskrough is 1>> <<set $_text_output to `<<He>> speaks. "You want me to be more rough? I'm sorry, I'm already being as rough as I can."`>> <<else>> <<set $_text_output to ` `>> <</if>> <<case "Kylar">> <<set _kylar to statusCheck("Kylar")>> <<if ($speechpenisvirgin is 1 and $player.virginity.penile is _args[0]) or ($speechvaginavirgin is 1 and $player.virginity.vaginal is _args[0])>> <<set $_text_output to `<<He>> gasps. "You were a virgin too," <<he>> says. "We were meant for each other."`>> <<elseif $speechanusvirgin is 1 and $player.virginity.anal is _args[0]>> <<if $player.vaginaExist and $settings.pregnancySpeechEnabled>> <<set $_text_output to `<<He>> gasps. "We can't make babies this way, but I just couldn't resist you."`>> <<elseif !$player.vaginaExist and _kylar.gender is "m" and knowsAboutAnyPregnancy("pc","Kylar") and $settings.pregnancySpeechEnabled>> <<set $_text_output to `<<He>> gasps. "Is this how you got pregnant before? But you were still a virgin!"`>> <<else>> <<set $_text_output to `<<He>> gasps. "Every part of you, the deepest part of you. I wanna feel it all!"`>> <</if>> <<elseif $speechmouthvirgin is 1 and $player.virginity.oral is _args[0]>> <<set $_text_output to `<<He>> gasps. "Finally, you're kissing the most intimate part of me. Just like in my dreams!"`>> <<elseif $speechkissvirgin is 1 and $player.virginity.kiss is _args[0]>> <<set $_text_output to `<<He>> gasps. "Iloveyouiloveyouiloveyou!!!"`>> <<set $kylarSeen.pushUnique("saidLove")>> <<elseif $speechcrossdressaroused is 1 and $settings.pregnancySpeechEnabled>> <<if _kylar.gender is "h">> <<set $_text_output to `<<He>> gasps. "Oh. I thought you were..." <<He>> shakes <<his>> head with a grin. "Oh well! We can still make a family together...!"`>> <<elseif $player.penisExist>> <<set $_text_output to `<<He>> gasps. "You can make me pregnant. I'd given up on making a family, but..." <<He>> starts to cry. "You can make me pregnant...!"`>> <<else>> <<set $_text_output to `<<He>> gasps. "I can make you pregnant. I'd given up on making a family, but..." <<He>> starts to cry. "I can make you pregnant...!"`>> <</if>> <<elseif $speechcrossdressdisappointed is 1>> <<if !$player.vaginaExist and knowsAboutAnyPregnancy("pc","Kylar")>> <<set $_text_output to `<<He>> sighs. "Oh. I thought you were..." <<He>> suddenly looks excited. "But weren't you pregnant before? Hmm, there's still a chance then."`>> <<else>> <<set $_text_output to `<<He>> sighs. "Oh. I thought you were..." <<He>> shakes <<his>> head. "I-it's okay. We can always adopt."`>> <</if>> <<elseif $speechhermaroused is 1>> <<if _kylar.gender is "h" and $settings.pregnancySpeechEnabled>> <<set $_text_output to `<<He>> gasps. "You have both...? Just like me...? We could make so many children...perfection..."`>> <<else>> <<set $_text_output to `<<He>> gasps. "You have both...? I didn't think you could get any more perfect..."`>> <</if>> <<elseif $speechnamedrop is 1>> <<set $speechnamedrop to 0>> <<if _loveInterest is "Black Wolf" or _loveInterest is "Great Hawk">> <<set $_text_output to `<<His>> eyes narrow. "I can be an animal, too. Watch!"`>> <<elseif random(1, 100) lte 50>> <<switch _loveInterest>> <<case "Robin">> <<set $_text_output to `<<He>> growls. "Robin can't take care of you like I can!"`>> <<case "Whitney">> <<set $_text_output to `<<He>> freezes. "W... Whitney can't stop me!"`>> <<case "Sydney">> <<set $_text_output to `<<He>> growls. "Sydney doesn't know you like I do!"`>> <<set $kylarSeen.pushUnique("sydneyWriting")>> <<default>> <<set $_text_output to `<<He>> freezes. "Who... are you talking about...?"`>> <</switch>> <<else>> <<set $_text_output to `<<He>> freezes. "You don't need them! You only need me!"`>> <</if>> <<set $_text_output += "<<npcincr Kylar rage 10>><<ggksuspicion>>">> <<elseif $speechsextoy is 1>> <<set $speechsextoy to 0>> <<set $_sexToy to ($rightarm is "heldSexToy" and $leftarm is "heldSexToy" ? "sex toys" : "sex toy")>> <<if !$player.penisExist and $NPCList[0].vagina isnot "none" and random(0,2) isnot 0>> <<set $_text_output to `<<He>> looks at your $_sexToy and speaks. "` + [`U-use it. Please, use me, use it.`, `It's a sign of our love, right?`][random(0,1)] + `"`>> <<elseif $player.penisExist or $NPCList[0].penis isnot "none" and random(0,2) isnot 0>> <<set $_text_output to `<<He>> looks at your $_sexToy and speaks. "` + [`What... am I doing wrong...?`, `If it makes you happy, my love, but...`][random(0,1)] + `"`>> <<else>> <<set $_text_output to `<<He>> looks at your $_sexToy and pouts. "Am I not good enough for you?"`>> <</if>> <<elseif _silent isnot 1>> <<set $kylarsexcycle to $kylarsexcycle or 0>> <<switch $kylarsexcycle>> <<case 0>> <<if $settings.pregnancySpeechEnabled and (playerCanBreedWith("Kylar") or (!$genderknown.includes("Kylar") and $player.gender_appearance is "f"))>> <<set $_text_output to `<<He>> whispers into your ear. "We're going to make lots of babies."`>> <<else>> <<set $_text_output to `"We're going to adopt lots of babies," <<he>> says.`>> <</if>> <<case 1>> <<set $_text_output to `"You'll be the best ${$player.gender_appearance is "m" ? "daddy" : "mummy"} ever," <<he>> says.`>> <<case 2>> <<set $_text_output to `"You're so naughty," <<he>> says. "We're not even married yet!"`>> <<case 3>> <<set $_text_output to `"I want you to wear me out," <<he>> says, "and then keep going."`>> <<case 4>> <<set $_text_output to `"I'm going to do this again and again until you forget about every other ${$pronoun is "m" ? "bastard" : "whore"} who's looked at you," <<he>> says.`>> <<case 5>> <<set $_text_output to `"I'll be the only one you ever think about," <<he>> says.`>> <<case 6>> <<set $_text_output to `"Everyone is bad," <<he>> says. "Except you. You're perfect."`>> <<case 7>> <<set $_text_output to `"I feel safe like this," <<he>> says. "I never want it to end."`>> <<case 8>> <<set $_text_output to `"I l-love you," <<he>> says.`>> <<set $kylarSeen.pushUnique("saidLove")>> <<default>> <<set $_text_output to `"You're so lewd and naughty and all mine," <<he>> says.`>> <</switch>> <<set $kylarsexcycle to ($kylarsexcycle + 1) % 10>> <!-- increase by one, and reset to 0 if it hits 10 --> <<else>> <<set $_text_output to ` `>> <</if>> <<case "Eden">> <<if ($speechpenisvirgin is 1 and $player.virginity.penile is _args[0]) or ($speechvaginavirgin is 1 and $player.virginity.vaginal is _args[0])>> <<set $_text_output to `<<He>> speaks. "I felt your virginity. I couldn't help it. I needed to take you."`>> <<elseif $speechanusvirgin is 1 and $player.virginity.anal is _args[0]>> <<set $_text_output to `<<He>> speaks. "I know this hurts now, but you'll get used to it soon."`>> <<elseif $speechmouthvirgin is 1 and $player.virginity.oral is _args[0]>> <<set $_text_output to `<<He>> speaks. "Damn, you feel great. We're definitely doing this more often."`>> <<elseif $speechkissvirgin is 1 and $player.virginity.kiss is _args[0]>> <<set $_text_output to `<<He>> speaks. "How was that? I'm not done, though."`>> <<elseif $speechnamedrop is 1>> <<set $speechnamedrop to 0>> <<switch _loveInterest>> <<case "Black Wolf" "Great Hawk">> <<set $_text_output to `<<He>> speaks. "That thing will tear you apart the first chance it gets! Stay away from it."`>> <<case "Gwylan">> <<set $_text_output to `<<He>> freezes. "That damned witch is trying to steal you from me, too?"`>> <<default>> <<set $_text_output to `<<He>> speaks. "Whoever that is, forget them." <<He>> sounds hurt.`>> <</switch>> <<elseif $speechsextoy is 1>> <<set $speechsextoy to 0>> <<set $_sexToy to ($rightarm is "heldSexToy" and $leftarm is "heldSexToy" ? "sex toys" : "sex toy")>> <<set $_text_output to `Eden looks at your $_sexToy. "Toys like that aren't necessary," <<he>> says. "They might even get in the way."`>> <</if>> <<if $daily.eden.huntCaught gte 1>> <<switch $daily.eden.huntCaught>> <<case 1>> <<set $_text_output to `"How dare they touch you?" Eden growls.`>> <<case 2>> <<set $_text_output to `"You belong to me," Eden snaps.`>> <<case 3>> <<set $_text_output to `"You're mine," Eden says. "Only mine."`>> <<case 4>> <<set $_text_output to `"I'm the only one who's allowed to do this to you," Eden says.`>> <<case 5>> <<set $_text_output to `"If anyone else lays their hands on you," Eden says, "they're dead."`>> <<case 6>> <<set $_text_output to `"Only I can touch you like this," Eden seethes.`>> <<case 7>> <<set $_text_output to `"Say it," Eden growls. "Tell me that you're mine."`>> <<case 8>> <<set $_text_output to `"You're my possession," Eden says. "Mine alone."`>> <<case 9>> <<set $_text_output to `"Don't forget who you belong to," Eden says.`>> <<case 10>> <<set $_text_output to `"I own every single part of you," Eden growls.`>> <</switch>> <<set $daily.eden.huntCaught to ($daily.eden.huntCaught + 1) % 10>> <</if>> <<if $daily.eden.robinCrash gte 1>> <<switch $daily.eden.robinCrash>> <<case 1>> <<set $_text_output to `"<<nnpc_He "Robin">> can't protect you," Eden snarls.`>> <<case 2>> <<set $_text_output to `"Only I can," Eden says.`>> <<case 3>> <<set $_text_output to `"I'm the one who provides for you," Eden says.`>> <<case 4>> <<set $_text_output to `"I'm the one who cares for you," Eden shouts.`>> <<case 5>> <<set $_text_output to `"<<nnpc_He "Robin">> didn't rescue you from the town," Eden sneers, "I did."`>> <<case 6>> <<set $_text_output to `"You're the only one I need," Eden says.`>> <<case 7>> <<set $_text_output to `"And I'm the only one you need," Eden says.`>> <<case 8>> <<set $_text_output to `"Everyone else is just noise," Eden says.`>> <<case 9>> <<set $_text_output to `"I'm never going to let you go," Eden says.`>> <<case 10>> <<set $_text_output to `"You belong to me and only me," Eden growls. "I'll make sure you forget about everyone else. "`>> <</switch>> <<set $daily.eden.robinCrash to ($daily.eden.robinCrash + 1) % 10>> <</if>> <<case "Whitney">> <<if ($speechpenisvirgin is 1 and $player.virginity.penile is _args[0]) or ($speechvaginavirgin is 1 and $player.virginity.vaginal is _args[0])>> <<set $_text_output to `<<He>> laughs. "No one can call you a virgin after this. You're my dirty slut now."`>> <<elseif $speechanusvirgin is 1 and $player.virginity.anal is _args[0]>> <<set $_text_output to `<<He>> laughs. "Was this off limits? I want to hear you squeal, <<bitch>>!"`>> <<elseif $speechmouthvirgin is 1 and $player.virginity.oral is _args[0]>> <<set $_text_output to `<<He>> laughs. "I bet you'll get addicted in no time!"`>> <<elseif $speechkissvirgin is 1 and $player.virginity.kiss is _args[0]>> <<set $_text_output to `<<He>> laughs. "Why are you looking at me like that? I can't be your first, slut."`>> <<elseif $speechnamedrop is 1>> <<set $speechnamedrop to 0>> <<if _loveInterest is "Black Wolf">> <<set $_text_output to `<<He>> laughs. "` + [`Did you just admit to fucking a dog? You're making this too easy.`, `I think I need to remind you whose <<bitch>> you actually are.`][random(0,1)] + `"`>> <<elseif _loveInterest is "Great Hawk">> <<set $_text_output to `<<He>> laughs. "` + [`Did you just admit to fucking a bird? You're making this too easy.`, `You can't fly away. Not from me.`][random(0,1)] + `"`>> <<elseif random(1, 2) lte 1>> <<switch _loveInterest>> <<case "Robin">> <<set $_text_output to `<<He>> laughs. "You've fallen for that weak little shit? I guess I know who to visit next."`>> <<case "Kylar">> <<set $_text_output to `<<He>> scowls. "I should've known you'd fall for that freak."`>> <<case "Sydney">> <<set $_text_output to `<<He>> laughs. "Two book criminals, sitting in a tree. Adorable."`>> <<default>> <<set $_text_output to `<<He>> scowls. "Let me remind you why you don't have a choice."`>> <</switch>> <<else>> <<set $_text_output to `<<He>> laughs. "I don't care about your little crush. You belong to me."`>> <</if>> <<elseif $speechsextoy is 1>> <<set $speechsextoy to 0>> <<set $_sexToy to ($rightarm is "heldSexToy" and $leftarm is "heldSexToy" ? "sex toys" : "sex toy")>> <<set $_text_output to `<<He>> looks at your $_sexToy and grins. "` + [`Good slut.`, `I knew you were a dirty slut.`, `Don't get any bright ideas.`, `What's wrong, is your slutty mouth getting tired?`][random(0,3)] + `"`>> <<elseif $speechchastity is 1>> <<if $worn.genitals.name is "chastity parasite">> <<set $_text_output to [`<<He>> laughs. "You always get a slutty look on your face when I squeeze this."`, `<<He>> raises an eyebrow. "That good?"`, `<<He>> raises an eyebrow. "Horny slut."`][random(0, 2)]>> <<elseif $worn.genitals.origin is "Whitney">> <<if $rng gte 86 and $player.gender_appearance is "f" and $player.penissize lt 0>> <<set $_text_output to `<<He>> smirks. "You look so cute with your tiny${$player.virginity.penile is true ? " virgin" : " useless"} penis all locked up." <<insecurity "penis_small" 4>><<ginsecurity "penis_small">>`>> <<elseif $rng gte 61>> <<if playerBellyVisible() and random(0, 100) gte 50>> <<set $_text_output to `"Good slut." <<He>> smirks. "You clearly don't need to be unlocked when you've obviously been having a lot of fun without it."`>> <<elseif ((!playerBellyVisible() and knowsAboutAnyPregnancy("pc", "Whitney")) or !$settings.pregnancySpeechEnabled) and random(0, 100) gte 50>> <<set $_text_output to `"Good slut." <<He>> smirks. "Don't worry, you'll still be my slut even when you get ${$settings.pregnancySpeechEnabled ? "knocked" : "fucked"} up."`>> <<elseif C.npc.Whitney.vagina isnot "none" and $whitneyromance and $settings.pregnancySpeechEnabled and !npcIsPregnant("Whitney")>> <<set $_text_output to `"Good slut." <<He>> smirks. "Maybe I'll unlock you in the future, whenever I'm ready to have my own."`>> <<else>> <<set $_text_output to `"Good slut." <<He>> smirks. "Not like you need that thing to have fun."`>> <</if>> <<else>> <<set $_text_output to `"Good slut." <<He>> smirks. "${ ["Can't trust a slut like you to run around without being locked up.", "I hope it's getting you all hot and bothered.", "If only these things were indestructible."][random(0,2)] }"`>> <</if>> <</if>> <</if>> <<case "Avery">> <<if ($speechpenisvirgin is 1 and $player.virginity.penile is _args[0]) or ($speechvaginavirgin is 1 and $player.virginity.vaginal is _args[0])>> <<set $_text_output to `<<He>> laughs. "How splendid. Your virginity is a wonderful gift."`>> <<elseif $speechanusvirgin is 1 and $player.virginity.anal is _args[0]>> <<set $_text_output to `<<He>> laughs. "This may hurt a bit, but you'll feel good soon. Trust me."`>> <<elseif $speechmouthvirgin is 1 and $player.virginity.oral is _args[0]>> <<set $_text_output to `<<He>> laughs. "Have you never done this before? Don't worry. I'll teach you."`>> <<elseif $speechkissvirgin is 1 and $player.virginity.kiss is _args[0]>> <<set $_text_output to `<<He>> laughs. "I hope you enjoyed it as much as I did."`>> <<elseif $speechnamedrop is 1>> <<set $speechnamedrop to 0>> <<switch _loveInterest>> <<case "Robin">> <<set $_text_output to `<<His>> face darkens. "The little brat I keep seeing you with? I should've known."`>> <<case "Black Wolf" "Great Hawk">> <<set $_text_output to `<<His>> face darkens. "I don't pay you to let a filthy animal have its way with you."`>> <<default>> <<set $_text_output to `<<He>> wordlessly eyes you with contempt.`>> <</switch>> <<elseif $speechsextoy is 1>> <<set $speechsextoy to 0>> <<set $_sexToy to ($rightarm is "heldSexToy" and $leftarm is "heldSexToy" ? "sex toys" : "sex toy")>> <<if C.npc.Avery.rage gte 60>> <<set $_text_output to `<<He>> looks at your $_sexToy and speaks. "` + [`Well, this is a nice change of pace.`, `Everyone has their tools of the trade.`][random(0,1)] + `"`>> <<else>> <<set $_text_output to `<<He>> looks at your $_sexToy and speaks. "` + [`Oh, no. I'm paying you too much for this.`, `You put that back this instant.`][random(0,1)] + `"`>> <<set $enemyanger += 50>><<set $enemytrust -= 50>> <</if>> <</if>> <<case "Alex">> <<if ($speechpenisvirgin is 1 and $player.virginity.penile is _args[0]) or ($speechvaginavirgin is 1 and $player.virginity.vaginal is _args[0])>> <<set $_text_output to `<<He>> smiles. "Your first time? I'll work extra hard to make it memorable."`>> <<elseif $speechanusvirgin is 1 and $player.virginity.anal is _args[0]>> <<set $_text_output to `<<He>> smiles. "It's tight. I won't tell anyone you let me fuck your bottom."`>> <<elseif $speechmouthvirgin is 1 and $player.virginity.oral is _args[0]>> <<set $_text_output to `<<He>> smiles. "You haven't used your mouth like this before, have you? Just keep your chompers away."`>> <<elseif $speechkissvirgin is 1 and $player.virginity.kiss is _args[0]>> <<set $_text_output to `<<He>> smiles. "Town <<girls>> are so cute."`>> <<elseif $speechnamedrop is 1>> <<set $speechnamedrop to 0>> <<if $alex_countdown is undefined and $farm_stage gte 7>> <<switch _loveInterest>> <<case "Black Wolf">> <<set $_text_output to `<<He>> deflates. "You're two-timing me with an animal? I need another drink..."`>> <<case "Great Hawk">> <<set $_text_output to `<<He>> glares. "Did your brain get pecked in the moor? Stay out of there."`>> <<default>> <<set $_text_output to `<<He>> glares. "You're two-timing me?"`>> <</switch>> <<else>> <<switch _loveInterest>> <<case "Black Wolf" "Great Hawk">> <<set $_text_output to `"I think I had one too many," <<he>> says. "You're speaking nonsense."`>> <<default>> <<set $_text_output to `"I think I had one too many," <<he>> says, holding <<his>> forehead.`>> <</switch>> <</if>> <<elseif $speechsextoy is 1>> <<set $speechsextoy to 0>> <<set $_sexToy to ($rightarm is "heldSexToy" and $leftarm is "heldSexToy" ? "sex toys" : "sex toy")>> <<if C.npc.Alex.dom gte 30>> <<set $_text_output to `<<He>> looks at your $_sexToy and grins. "` + [`Now we're getting somewhere.`, `Cute toy. You better know how to use it.`, `Is that the best thing town has to offer?`][random(0,2)] + `"`>> <<elseif C.npc.Alex.dom lte -30>> <<set $_text_output to `<<He>> looks at your $_sexToy and hesitates. "` + [`All right. I trust your judgement.`, `Hope you know how to use that thing.`, `You always know just how to have a good time.`][random(0,2)] + `"`>> <<else>> <<set $_text_output to `<<He>> looks at your $_sexToy and smiles. "` + [`I like where your head's at.`, `Looks like we're in for a wild ride.`, `So this is what sells in town.`][random(0,2)] + `"`>> <</if>> <</if>> <<case "Leighton">> <<if ($speechpenisvirgin is 1 and $player.virginity.penile is _args[0]) or ($speechvaginavirgin is 1 and $player.virginity.vaginal is _args[0])>> <<set $_text_output to `<<He>> smirks. "Far from satisfactory. Come see me again for further improvement."`>> <<elseif $speechanusvirgin is 1 and $player.virginity.anal is _args[0]>> <<set $_text_output to `<<He>> smirks. "You'll need plenty of training."`>> <<elseif $speechmouthvirgin is 1 and $player.virginity.oral is _args[0]>> <<set $_text_output to `<<He>> smirks. "You lack skill... For now."`>> <<elseif $speechkissvirgin is 1 and $player.virginity.kiss is _args[0]>> <<set $_text_output to `<<He>> smirks. "Not terrible for a first time."`>> <<elseif $speechnamedrop is 1>> <<set $speechnamedrop to 0>> <<switch _loveInterest>> <<case "Robin">> <<set $_text_output to `<<He>> smirks. "Another student? Perhaps I should invite <<nnpc_him "Robin">> to my office."`>> <<case "Kylar">> <<set $_text_output to `<<He>> frowns. "Kylar? That explains a lot of things."`>> <<case "Whitney">> <<set $_text_output to `<<He>> frowns. "You and that delinquent? I'm not surprised."`>> <<case "Sydney">> <<if $sydneySeen.includes("spank")>> <<set $_text_output to `<<He>> smirks. "Sydney? We could do <<nnpc_his "Sydney">> punishment in my office next time."`>> <<else>> <<set $_text_output to `<<He>> smirks. "Sydney? I plan to have <<nnpc_him "Sydney">> in my office soon."`>> <</if>> <<case "Black Wolf" "Great Hawk">> <<set $_text_output to `<<He>> frowns. "An animal? This requires extra discipline."`>> <<default>> <<set $_text_output to `<<He>> smirks. "I'm not familiar. This is a private matter, anyway."`>> <</switch>> <<elseif $speechsextoy is 1>> <<set $speechsextoy to 0>> <<set $_sexToy to ($rightarm is "heldSexToy" and $leftarm is "heldSexToy" ? "sex toys" : "sex toy")>> <<set $_text_output to `<<He>> looks at your $_sexToy and smirks. "I can teach you a thing or two with that."`>> <</if>> <<case "Harper">> <<if $speechpenisvirgin is 1 and $player.virginity.penile is _args[0]>> <<set $_text_output to `<<He>> smiles. "Hold still. I need to check your blood pressure."`>> <<elseif ($speechvaginavirgin is 1 and $player.virginity.vaginal is _args[0])>> <<set $_text_output to `<<He>> smiles. "This will only hurt a bit."`>> <<elseif $speechanusvirgin is 1 and $player.virginity.anal is _args[0]>> <<if $player.sex is "f">> <<set $_text_output to `<<He>> smiles. "I'm going to administer a suppository. Please, try to relax."`>> <<else>> <<set $_text_output to `<<He>> smiles. "You're overdue for a prostate examination. Please, try to relax."`>> <</if>> <<elseif $speechmouthvirgin is 1 and $player.virginity.oral is _args[0]>> <<set $_text_output to `<<He>> smiles. "Say 'Ahh'..."`>> <<elseif $speechkissvirgin is 1 and $player.virginity.kiss is _args[0]>> <<set $_text_output to `<<He>> smiles. "How's my bedside manner?"`>> <<elseif $speechnamedrop is 1>> <<set $speechnamedrop to 0>> <<switch _loveInterest>> <<case "Gwylan">> <<set $_text_output to `<<He>> speaks. "Interesting. You've a very healthy imagination, to give your hallucination such a name."`>> <<case "Black Wolf" "Great Hawk">> <<set $_text_output to `<<He>> shakes <<his>> head. "As I've said, such animals do not exist."`>> <<default>> <<set $_text_output to `<<He>> nods. "Prior attachments. Noted."`>> <</switch>> <</if>> <<case "Morgan">> <<if $possessed>> <<switch random(1,10)>> <<case 1>> <<set $_text_output to `<<He>> roars. "I won't let you hurt <<phim>>!"`>> <<case 2>> <<set $_text_output to `<<He>> pleads. "Fight it, <<charles>>! Fight back!"`>> <<case 3>> <<set $_text_output to `<<He>> spits. "Return to mist!"`>> <<case 4>> <<set $_text_output to `<<He>> scowls. "Get out of here. Get out of <<phim>>!"`>> <<case 5>> <<set $_text_output to `<<He>> scowls. "I can see you falling apart."`>> <<case 6>> <<set $_text_output to `<<He>> hisses. "Don't make me repeat myself."`>> <<case 7>> <<set $_text_output to `<<He>> screeches incoherently.`>> <<case 8>> <<set $_text_output to `<<He>> meets your eye and nods reassuringly.`>> <<case 9>> <<set $_text_output to `<<He>> babbles under <<his>> breath.`>> <<case 10>> <<set $_text_output to `<<He>> shakes <<his>> head. "You'll fall. You'll fall, and you won't get back up."`>> <</switch>> <<elseif ($speechpenisvirgin is 1 and $player.virginity.penile is _args[0]) or ($speechvaginavirgin is 1 and $player.virginity.vaginal is _args[0])>> <<set $_text_output to `<<He>> smiles. "This feels like your first time again. How did you do that <<charles>>?"`>> <<elseif $speechanusvirgin is 1 and $player.virginity.anal is _args[0]>> <<set $_text_output to `<<He>> smiles. "<<charles>>, I got to pop your other cherry too! Isn't it wonderful?"`>> <<elseif $speechmouthvirgin is 1 and $player.virginity.oral is _args[0]>> <<set $_text_output to `<<He>> smiles. "Did you forget how to do this?"`>> <<elseif $speechkissvirgin is 1 and $player.virginity.kiss is _args[0]>> <<set $_text_output to `<<He>> smiles. "Don't you remember my taste?"`>> <<elseif $speechnamedrop is 1>> <<set $speechnamedrop to 0>> <<switch _loveInterest>> <<default>> <<set $_text_output to `<<He>> snarls. "<<charles>>, you belong to <<mummy>>!"`>> <</switch>> <<elseif ($NPCList[_n].vagina is "feet" or $NPCList[_n].penis is "feet") and random(1, 10) is 1 and $settings.footFetishEnabled>> <<set $_text_output to `<<He>> moans. "Oh, <<charles>>, your feet...!"`>> /* I hate you I hate you I hate you */ <<elseif $speechsextoy is 1>> <<set $speechsextoy to 0>> <<set $_sexToy to ($rightarm is "heldSexToy" and $leftarm is "heldSexToy" ? "sex toys" : "sex toy")>> <<set $_text_output to `<<He>> looks at your $_sexToy and speaks. "<<charles>>, what is that?"`>> <</if>> <<case "Zephyr">> <<if $possessed>> <<if $control gte $controlmax>> <<set $_text_output to `<<He>> scoffs. "Now leave, and leave <<phim>> be."`>> <<elseif $npcspeechcycle is 0>> <<set $_text_output to `<<He>> raises <<his>> telescope to <<his>> eye for a moment, before putting it away.`>> <<else>> <<set $_text_output to `<<He>> stares you down, silent.`>> <</if>> <<elseif $speechnamedrop is 1>> <<set $speechnamedrop to 0>> <<switch _loveInterest>> <<case "Gwylan">> <<set $_text_output to `<<He>> speaks. "Hah! How's little seabird doing?"`>> <<case "Black Wolf" "Great Hawk">> <<set $_text_output to `<<He>> chortles. "Oh, you're full of tales."`>> <<default>> <<set $_text_output to `<<He>> smirks. "A lover on land or a heart at sea, pick one."`>> <</switch>> <</if>> <<case "Bailey">> <<set $_stringsPre to ($enemyanger lte 60 ? "<<He>> snickers. ":"<<He>> snarls. ")>> <<if ($speechpenisvirgin is 1 and $player.virginity.penile is _args[0]) or ($speechvaginavirgin is 1 and $player.virginity.vaginal is _args[0])>> <<set $_text_output to $_stringsPre + `"Fuck. Your value just depreciated a little."`>> <<elseif $speechanusvirgin is 1 and $player.virginity.anal is _args[0]>> <<set $_text_output to $_stringsPre + `"You should be putting out more if you're this tight. What do you think you're good for?"`>> <<elseif $speechmouthvirgin is 1 and $player.virginity.oral is _args[0]>> <<set $_text_output to $_stringsPre + `"Don't get any funny ideas. Just take it."`>> <<elseif $speechkissvirgin is 1 and $player.virginity.kiss is _args[0]>> <<set $_text_output to $_stringsPre + `"Surprised are you? You'll learn to kiss better soon."`>> <<elseif $speechnamedrop is 1>> <<set $speechnamedrop to 0>> <<switch _loveInterest>> <<case "Robin">> <<set $_text_output to $_stringsPre + `"That worthless brat can't save you."`>> <<case "Black Wolf" "Great Hawk">> <<set $_text_output to $_stringsPre + `"People would pay extra to see you ${$player.penisExist ? "fuck" : "get fucked by"} some beast."`>> <<case "Eden">> <<set $_text_output to $_stringsPre + `"You'll be going right back to <<nnpc_him 'Eden'>> if you keep this up."`>> <<case "Gwylan">> <<set $_text_output to `<<He>> pauses, then speaks. "Careful where you bring that name."`>> <<default>> <<set $_text_output to $_stringsPre + `"If <<nnpc_he _loveInterest>> cared about you, <<nnpc_he _loveInterest>> would pay for you."`>> <</switch>> <<elseif $speechcum is 1>> <<set $_strings to [`"I hope you appreciate that."`,`"Just something to remember me by."`,`"We'll call that your going away gift."`]>> <<set $_text_output to $_stringsPre + $_strings[random(0, $_strings.length - 1)]>> <<elseif $arousal gte 9500>> <<set $_strings to [`"Nice look. Some people would pay big to see you hot and bothered like this."`,`"Should've brought a camera. Your profile would look great with this expression."`]>> <<set $_text_output to $_stringsPre + $_strings[random(0, $_strings.length - 1)]>> <<elseif $enemyanger lte 60>> <<if $rng gte 81>> <<set $_options to ["default"]>> <<if $hairlength gte 600>> <<run $_options.push("hair")>> <</if>> <<if $player.breastsize gte 6 or $player.penissize gte 4>> <<run $_options.push("cow")>> <</if>> <<if $athletics gte 750 or $physique gte $physiquesize * 0.75>> <<run $_options.push("healthy")>> <</if>> <<switch $_options[random(0, $_options.length - 1)]>> <<case "hair">><<set $_text_output to $_stringsPre + `"Kept your hair long? I know someone who will like that."`>> <<case "cow">><<set $_text_output to $_stringsPre + `"Cows fetch a high price these days, you know."`>> <<case "healthy">><<set $_text_output to $_stringsPre + `"You're strong. Good. Some people pay for the fight."`>> <<case "default">><<set $_text_output to $_stringsPre + `"Don't make this harder than it needs to be."`>> <</switch>> <<elseif $rng gte 61>> <<set $_text_output to $_stringsPre + `"You're so valuable!"`>> <<elseif $rng gte 41>> <<set $_text_output to $_stringsPre + `"Just relax. I'll handle everything like always."`>> <<elseif $rng gte 21>> <<set $_text_output to $_stringsPre + `"You were always the best looking little ` + ["bastard","shit","<<bitch>>"][random(0,2)] + `."`>> <<else>> <<set $_text_output to $_stringsPre + `"It's easier this way. Trust me."`>> <</if>> <<else>> <<if $rng gte 91 and $enemyanger lte 70>> <<set $_text_output to $_stringsPre + `"Maybe I should inspect you before we go."`>> <<else>> <<set $_strings to [`Why do you shits have to make it harder on yourselves?`, `I told you to hold still.`, `You're making it harder on both of us.`, `You chose this.`, `Are you going to listen to me now?`, `I have someone willing to pay big for you.`, `You're coming with me, and that's that.`]>> <<set $_text_output to $_stringsPre + '"' + $_strings[random(0,6)] + '"'>> <</if>> <</if>> <<case "Sydney">> <<speech-sydney>> <<if _sydneyText and $speechdisable isnot 1>> <<set $_text_output to _sydneyText>> <</if>> <<case "Gwylan">> <<speech-gwylan>> <<if _gwyText and $speechdisable isnot 1>> <<set $_text_output to _gwyText>> <</if>> <<case "Ivory Wraith">> <<if !_speechWraith>> <<speechWraith>> <<set $_text_output to _speechWraith>> <</if>> <</switch>> <</silently>><<if _silent>><<elseif $_text_output or _silent>>$_text_output<<else>><<set _noNameComment to true>><</if>><</widget>>/*Hands */ <<widget "left_pursuit_grab">> <<if ($NPCList[0].state is "pursuit" or $NPCList[0].state is "chased") and $NPCList[0].distance lte 0>> <<set _leftaction["Grab"] to "pursuit_grab">> <</if>> <</widget>> <<widget "right_pursuit_grab">> <<if ($NPCList[0].state is "pursuit" or $NPCList[0].state is "chased") and $NPCList[0].distance lte 0>> <<set _rightaction["Grab"] to "pursuit_grab">> <</if>> <</widget>> /*Feet */ <<widget "feet_walk">> <<if $leftleg isnot "bound" and $rightleg isnot "bound" and $dissociation lt 2 and $NPCList[0].state isnot "pursuit" and $NPCList[0].state isnot "chased" and $feetuse isnot "run" and (currentSkillValue("feetskill") gte 200 or !$worn.feet.type.includes("heels"))>> <<set _feetaction["Walk"] to "walk">> <</if>> <</widget>> <<widget "feet_strut">> <<if $leftleg isnot "bound" and $rightleg isnot "bound" and $dissociation lt 2 and $NPCList[0].state isnot "pursuit" and $NPCList[0].state isnot "chased" and $feetuse isnot "run" and hasSexStat("exhibitionism", 2)>> <<set _feetaction["Strut"] to "strut">> <</if>> <</widget>> <<widget "feet_run">> <<if $leftleg isnot "bound" and $rightleg isnot "bound" and $dissociation lt 2 and (currentSkillValue("feetskill") gte 200 or !$worn.feet.type.includes("heels"))>> <<if $NPCList[0].state is "pursuit" or $NPCList[0].state is "chased">> <<set _feetaction["Chase"] to "run">> <<else>> <<set _feetaction["Run"] to "run">> <</if>> <</if>> <</widget>> <<widget "feet_stand">> <<if $dissociation lt 2 and $NPCList[0].state isnot "pursuit" and $NPCList[0].state isnot "chased" and $feetuse isnot "run">> <<set _feetaction["Stand still"] to "stand">> <</if>> <</widget>> <<widget "feet_hobble">> <<if $dissociation lt 2 and ($leftleg is "bound" or $rightleg is "bound") or (currentSkillValue("feetskill") lt 200 and $worn.feet.type.includes("heels"))>> <<set _feetaction["Hobble"] to "hobble">> <</if>> <</widget>> <<widget "feet_hide">> <<if $dissociation lt 2 and $panicviolence lte 0 and $NPCList[0].state isnot "chased">> <<set _feetaction["Hide"] to "hide">> <</if>> <</widget>> <<widget "feet_ambush">> <<if $NPCList[0].legs is "run" and $NPCList[0].state isnot "pursuit" and $NPCList[0].state isnot "chased" and $transformationParts.traits.chase isnot "disabled">> <<set _feetaction["Ambush"] to "ambush">> <</if>> <</widget>> <<widget "feet_confront">> <<if $dissociation lt 2 and $panicviolence lte 0 and $NPCList[0].legs isnot "run" and $NPCList[0].state isnot "pursuit" and $NPCList[0].state isnot "chased">> <<set _feetaction["Confront"] to "confront">> <</if>> <</widget>> <<widget "head_turn">> <<if $dissociation lt 2 and $panicviolence lte 0 and $NPCList[0].legs isnot "run" and $NPCList[0].state isnot "pursuit" and $NPCList[0].state isnot "chased">> <<set _mouthaction["Look behind you"] to "turn">> <</if>> <</widget>> <<widget "head_down">> <<if $dissociation lt 2 and $panicviolence lte 0 and $NPCList[0].legs isnot "run" and $NPCList[0].state isnot "pursuit" and $NPCList[0].state isnot "chased">> <<set _mouthaction["Look at the ground"] to "down">> <</if>> <</widget>> <<widget "head_up">> <<if $dissociation lt 2 and $panicviolence lte 0 and $NPCList[0].legs isnot "run" and $NPCList[0].state isnot "pursuit" and $NPCList[0].state isnot "chased">> <<set _mouthaction["Keep your chin up"] to "up">> <</if>> <</widget>> <<widget "stalk_taunt">> <<if $leftleg isnot "bound" and $rightleg isnot "bound" and (currentSkillValue("feetskill") gte 200 or !$worn.feet.type.includes("heels")) and hasSexStat("promiscuity", 2) and $dissociation lt 2 and $panicviolence lte 0 and $NPCList[0].legs isnot "run" and $NPCList[0].state isnot "pursuit" and $NPCList[0].state isnot "chased">> <<set _mouthaction["Taunt"] to "taunt">> <</if>> <</widget>> <<widget "bottom_wiggle">> <<if $dissociation lt 2 and $panicviolence lte 0 and $NPCList[0].legs isnot "run" and $NPCList[0].state isnot "pursuit" and $NPCList[0].state isnot "chased">> <<set _anusaction["Wiggle"] to "wiggle">> <</if>> <</widget>><<widget "man-stalk">> <<if $stalk_intro is undefined and $NPCList[0].legs isnot "run">> <<set $stalk_intro to true>> <i>You are being stalked. <span class="brat">Bratty</span> actions will discourage people from assaulting you, while <span class="meek">meek</span> actions will make them less likely to be violent if they do. <br><br> You could always run or hide, but failing will increase the chance of being assaulted. Looking over your shoulder will give an idea of how hard they are to outrun or deceive. <br><br></i> <</if>> <<if _n is 0 and $stalk_end isnot "escaped" and $stalk_end isnot "hide" and $stalk_end isnot "confront" and $stalk_end isnot "ambush">>/*Only triggers on first NPC in a group. */ <<if $NPCList[_n].legs is "walk">> <<set $NPCList[_n].distance -= 1>> <<if $NPCList[_n].distance is 3>> You hear a pair of footsteps <span class="blue">some distance</span> behind you. <<elseif $NPCList[_n].distance is 2>> You hear a pair of footsteps <span class="purple">close</span> behind you. <<elseif $NPCList[_n].distance is 1>> You hear a pair of footsteps <span class="pink">right behind</span> you! <</if>> <<else>> <<set $NPCList[_n].distance -= 1>> <<if $NPCList[_n].distance is 3>> You hear footsteps running <span class="blue">some distance</span> behind you. <<elseif $NPCList[_n].distance is 2>> You hear footsteps running <span class="purple">close</span> behind you. <<elseif $NPCList[_n].distance is 1>> You hear footsteps running <span class="pink">right behind</span> you! <</if>> <</if>> <<if $NPCList[_n].distance lte _n>> <<if !$stalk_end>> <<if $NPCList[0].fullDescription isnot "Ivory Wraith" and ($NPCList[_n].legs is "run" or $NPCList[0].bold gte random(1, 1000)) or $NPCList[0].fullDescription is "Ivory Wraith" and C.npc["Ivory Wraith"].lust gte random(5,15)>> <span class="red">You are accosted.</span> <<if $npcrow.includes(0)>> <<stalk_nnpc_text_attack $NPCList[0].fullDescription>> <<if !$stalk_assess>> <<if $NPCList[0].fullDescription is "Ivory Wraith">> <span class="red">A<<if $wraith.seen gte 3>> familiar<</if>> pale figure stares down at you, eyes flashing <<wraithEyes>>.</span> <<else>> <span class="pink">It's <<print $npc[$npcrow.indexOf(0)]>>.</span> <</if>> <</if>> <<set $stalk_assess to true>> <br><br> <<events_stalk_nnpc $NPCList[0].fullDescription>> <<else>> <br><br> <<events_stalk>> <</if>> <<else>> <<if $npcrow.includes(0)>> <<stalk_nnpc_text_passed $NPCList[0].fullDescription>> <<else>> A <<person1>><<person>> <<switch $enemyno>> <<case 6>> and five others pass by. <span class="teal">They don't glance at you.</span> <<case 5>> and four others pass by. <span class="teal">They don't glance at you.</span> <<case 4>> and three others pass by. <span class="teal">They don't glance at you.</span> <<case 3>> and two others pass by. <span class="teal">They don't glance at you.</span> <<case 2>> and <<person2>><<person>> pass by. <span class="teal">They don't glance at you.</span> <<default>> passes by. <span class="teal"><<He>> doesn't glance at you.</span> <</switch>> <</if>> <<set $stalk_end to "passed">> <</if>> <</if>> <</if>> <</if>> <<stalk_img>> <</widget>> <<widget "stalk_walk_events">> <<switch $location>> <<case forest>> <<set _rng to random(1, 10)>> <<switch _rng>> <<case 1>> <<if Weather.isSnow>> Snow tumbles from an overturned branch. <<elseif Time.season is "autumn">> Leaves fall all around. <<elseif Time.season is "spring">> Budding branches sway in the breeze. <<else>> Dapples of sunlight cover the path ahead. <</if>> <<case 2>> You push through low hanging branches. <<case 3>> Your foot almost snags on a root. <<case 4>> <<if Weather.isSnow>> Snow crunches underfoot. <<elseif Time.season is "winter">> You travel on a bare landscape. <<elseif Time.season is "autumn">> Leaves crunch underfoot. <<elseif Time.season is "spring">> You travel through a patch of wild flowers. <<else>> You travel through a patch of wild flowers. <</if>> <<case 5>> You push through a dense patch of ferns. <</switch>> <<case moor>> <<set _rng to random(1, 10)>> <<switch _rng>> <<case 1>> You traverse a small, rocky ridge. <<case 2>> You avoid a small pond. <<case 3>> You push through a patch of heather. <<case 4>> You find the remains of an old path, now almost swallowed by surrounding plants. <<case 5>> You glimpse a small animal scurry into a bush. <</switch>> <<case alley>> <<set _rng to random(1, 10)>> <<switch _rng>> <<case 1>> Steam rises from a nearby grate. <<case 2>> <<if Weather.precipitation is "rain">> You avoid a puddle. <<elseif Weather.isSnow>> You avoid a patch of ice. <<else>> You avoid a pile of rubbish. <</if>> <<case 3>> The buildings tower around the thin alley. <<case 4>> The path dips and bends. <<case 5>> You're penned between metal fences. <</switch>> <<default>> <<set _rng to random(1, 10)>> <<switch _rng>> <<case 1>> Steam rises from a nearby grate. <<case 2>> <<if Weather.precipitation is "rain">> You avoid a puddle. <<elseif Weather.isSnow>> You avoid a patch of ice. <<else>> You avoid a pile of rubbish. <</if>> <<case 3>> You pass beneath an awning. <<case 4>> You walk beneath an overpass. <<case 5>> The pavement is rough and uneven. <</switch>> <</switch>> <</widget>> <<widget "stalk_run_events">> <<if $stalk_event>> <br><br> <<stalk_events_followup>> <<else>> <<if $exposed gte 1 and Time.dayState isnot "night" and $location is "town">> <</if>> <<switch $location>> <<case forest>> <<if $NPCList[0].state is "chased">> <br><br> <<set _rng to random(1, 10)>> <<switch _rng>> <<case 1>> <<set $stalk_event to "tree_climb">> Your quarry <span class="blue">grabs the trunk of a tree and starts climbing</span>. You'll need to do likewise if you mean to follow. <<case 2>> <<set $stalk_event to "river_jump">> There's a small river ahead. Your quarry <span class="blue">jumps it</span>. You'll need to do likewise if you mean to follow. <<case 3>> <<set $stalk_event to "bramble">> Your quarry <span class="blue">starts to wade through a thick bramble</span>. You'll need to do likewise if you mean to follow. <<default>> The wind rushes by as you run. <</switch>> <</if>> <<case moor>> <<case alley>> <<if $NPCList[0].state is "pursuit">> <br><br> <<set _rng to random(1, 5)>> <<switch _rng>> <<case 1>> You run across a metal grate. Warm air blows from the depths below. <<case 2>> <<switch $NPCList[0].size>> <<case large>> <<set $stalk_event to "wall_large">> Your quarry <span class="blue">jumps and hauls <<himself>> over a <span class="purple">tall</span> wall.</span> You'll need to do likewise if you mean to follow. <<case normal>> <<set $stalk_event to "wall_normal">> Your quarry <span class="blue">jumps and hauls <<himself>> over a wall.</span> You'll need to do likewise if you mean to follow. <<case small>> <<set $stalk_event to "wall_small">> Your quarry <span class="blue">kneels and scrambles through a hole in a wall.</span> You'll need to likewise if you mean to follow. <<case tiny>> <<set $stalk_event to "wall_tiny">> Your quarry <span class="blue">kneels and scrambles through a <span class="purple">tight</span> hole in the wall.</span> You'll need to likewise if you mean to follow. <</switch>> <<case 3>> <<set $stalk_event to "cat">> Your quarry kicks aside a sleeping cat. It stands upright <span class="blue">and hisses in anger.</span> <<case 4>> <<set $stalk_event to "dead-end">> You follow <<him>> around a corner and see a brick wall up ahead. It looks like a dead-end. <<He>> searches for a way out. <<case 5>> <<set $stalk_event to "employee">> <span class="blue">An employee from a nearby establishment leans against the wall up ahead,</span> and regards the <<person>> with mild curiosity. <</switch>> <<else>> <</if>> <<default>> <<if $NPCList[0].state is "pursuit">> <br><br> <<if Time.dayState is "night">> <<set _rng to random(1, 5)>> <<switch _rng>> <<case 1>> <<set $stalk_event to "taxi">> A taxi drives around the corner. <span class="blue">It's heading this way.</span> <<case 2>> <<set $stalk_event to "crowd">> The <<person>> runs <span class="blue">into a drunken crowd.</span> <<case 3>> <<if $hallucinations gte 2>> <span class="pink">Something snares your foot in the dark.</span> A tentacle extends from a storm drain and coils around your ankle. <<else>> <span class="pink">Something snares your foot in the dark.</span> <</if>> You shake it free, but your quarry is getting away. <<set $NPCList[0].distance += 1>> <<case 4>> <<set $stalk_event to "night_house">> <span class="blue">You hear voices from a building up ahead.</span> Light floods from the windows, bathing the street. <<case 5>> A chill gust makes your hair stand on end. <</switch>> <<else>> <<set _rng to random(1, 5)>> <<switch _rng>> <<case 1>> <<set $stalk_event to "bus">> A tourist bus pulls around the corner up ahead. <span class="blue">It's heading this way.</span> <<case 2>> <<set $stalk_event to "crowd">> The <<person>> runs <span class="blue">into a crowd.</span> <<case 3>> <<set $stalk_event to "restaurant">> The <<person>> runs past <span class="blue">a busy restaurant.</span> <<case 4>> <<set $stalk_event to "school">> The <<person>> runs past <span class="blue">a gaggle of students you recognise from school.</span> <<case 5>> <<set $stalk_event to "street">> The <<person>> <span class="blue">runs across the street.</span> <</switch>> <</if>> <<else>> <</if>> <</switch>> <</if>> <</widget>> <<widget "stalk_events_followup">> <<switch $stalk_event>> <<case "bus">> The bus drives by. A <<personsimple>> spots you. <<His>> mouth moves, <<set _rng to random(1, 2)>> <<switch _rng>> <<case 1>> <span class="green">but no one else seems interested in what <<he>> has to say.</span> The bus passes. <<case 2>> <span class="red">and other heads turn your way.</span> There's a flurry of activity and the tourists grab their cameras, eager to snap the <<nude_text>> <<girl>>. <<fameexhibitionism 10 "pic">><<if playerBellyVisible()>><<famepregnancy 10 "pic">><</if>> <</switch>> <<case "crowd">> You run into the crowd. You hope to move fast enough to keep anyone from snatching more than a glimpse. <<if dangerEvent(0.5)>> <<if random(1, 3) is 3>> <span class="pink">Someone gropes your <<bottom>> as you pass, encouraging others.</span> More hands reach out, fondling and stroking your body.<<gtrauma>><<gstress>><<garousal>> <br><br> You emerge from the other side and escape around the corner before the bemused pedestrians can reach for their phones. <<else>> <span class="red">The <<person>> ambushes you!</span> <<He>> grasps your arms and shoves you to the ground. <br><br> <<stalk_attack>> <<set $audience_active to true>> <</if>> <<else>> You emerge from the other side and escape around the corner before the bemused pedestrians can reach for their phones. <br><br> <</if>> <<case "restaurant">> You rush past the restaurant. <<set _rng to random(1, 2)>> <<switch _rng>> <<case 1>> <span class="green">Everyone's too occupied to notice the <<nude_text>> <<girl>> run by.</span> <br><br> <<case 2>> <span class="pink">Someone shouts.</span> Spoons drop in soup, their owners aghast at the sight of the <<nude_text>> <<girl>> running by. Others chuckle and reach for their phones. <<fameexhibitionism 10 "vid">> <br><br> <</switch>> <<case "school">> The students laugh as you run by. <br> <<if $worn.face.type.includes("mask")>> <<if random(1, 2) is 2>> "Do you recognise <<phim>> from school?" asks one <<persony>>. <<else>> "<<pShe>> must go to our school," says one <<persony>>. <</if>> <br> <<if random(1, 2) is 2>> "I can't see behind <<pher>> mask," replies another. <<else>> "Someone grab <<pher>> mask!" replies another. <</if>> <br> <<elseif $face is "covered">> <<if random(1, 2) is 2>> "Do you recognise <<phim>> from school?" asks one <<persony>>. <<else>> "<<pShe>> must go to our school," says one <<persony>>. <</if>> <br> <<if random(1, 2) is 2>> "I can't tell," replies another. "<<pHer>> hands are in the way." <<else>> "Someone grab them!" replies another. <</if>> <br> <<else>><<fameexhibitionism 5>> <<checkforloveinterests>> <<if _loveInterest is "Robin">> "Isn't that Robin's <<girlfriend>>?" asks one <<persony>>. <br> "Who'd have thought Robin would be into perverts," says another. <br> <<elseif _loveInterest is "Whitney">> "That's the <<girl>> Whitney always bullies," says one <<persony>>. <br> "I bet this is Whitney's fault," replies another. <br> <<elseif _loveInterest is "Kylar">> "That's the <<girl>> Kylar hangs out with," says one <<persony>>. <br> "Figures <<pshe>>'d be a pervert," replies another. <br> <<elseif _loveInterest is "Sydney">> "Hold on, that's Sydney's <<girlfriend>>," says one <<persony>>. "What's <<pshe>> doing like that?" <br> "Stole one too many books, now <<pshes>> on the run," laughs another. <br> <<else>> <<if random(1, 2) is 2>> "I recognise <<phim>>!" proclaims one <<persony>>. <<else>> "I know <<phim>> from school," says one <<persony>>. <</if>> <br> <<if random(1, 2) is 2>> "Oh my god," replies another. "I can't wait to tell everyone." <<else>> "<<pShes>> so perverted," replies another. <</if>> <br> <</if>> <</if>> You run around a corner and escape their prying before they get touchy.<<gtrauma>><<gstress>><<trauma 6>><<stress 6>> <br><br> <<case "street">> You cross the street. <<set _rng to random(1, 5)>> <<if _rng gte 5>> <span class="blue">A car almost collides with you.</span> It screeches to a halt, <span class="red">but still thuds into you with enough force to knock you to the ground.</span><<ggstress>><<stress 12>><<gtrauma>><<trauma 6>><<gpain>><<pain 4>> <br><br> You're left lying in the middle of the street, giving everyone time for a good look. <<covered>> The <<personsimple>> behind the offending vehicle steps out, a bewildered look on <<his>> face. <br><br> You struggle to your feet and rush after the <<person>> before <<he>> escapes, your face bright hot. <br><br> <<set $NPCList[0].distance += 1>> <<elseif _rng gte 3>> <span class="blue">A car almost collides with you,</span> but screeches to a halt instead. The <<personsimple>> behind the wheel's expression softens in bewilderment when <<he>> sees your state of dress. You don't have time to apologise. You make it to the other side, where you're a bit more sheltered.<<gstress>><<stress 6>> <<else>> You keep focused on your quarry, but you know eyes up and down the street are glimpsing you. You make it to the other side, where you're a bit more sheltered.<<ggstress>><<stress 12>><<gtrauma>><<trauma 6>> <</if>> <br><br> <<case "taxi">> <<set _rng to random(1, 3)>> <<switch _rng>> <<case 1>> <span class="purple">The taxi pulls to a stop as you pass,</span> and the <<personsimple>> in the passenger seat leans. <<catcalllewd>><<gtrauma>><<gstress>><<trauma 6>><<stress 6>> <br><br> <<case 2>> A <<personsimple>> leans out the passenger seat of the taxi as you pass, <span class="purple">a large camera pressed against <<his>> face.</span> You hear it click.<<gtrauma>><<gstress>><<trauma 6>><<stress 6>><<fameexhibitionism 5 "pic">> <br><br> <<case 3>> The taxi driver stares at you as you pass, but doesn't stop.<<gstress>><<stress 6>> <br><br> <</switch>> <<case "night_house">> <<set _rng to random(1, 3)>> <<if _rng gte 3>> You run through the light. <span class="purple">A cry of mirth erupts from the lit building.</span> You glance over and see a dozen faces staring back.<<gtrauma>><<gstress>><<trauma 12>><<stress 12>><<fameexhibitionism 12>> <br><br> <<else>> You run through the light, sparing a nervous glance at the windows. There are people within, but none are looking this way. <br><br> <</if>> <<case "wall_large">> <<if $bodysize gte 3 or $bodysize gte 2 and random(1, 2) is 2>> <span class="green">You jump and haul yourself over the wall.</span> <br><br> <<else>> You jump and try to grasp the top of the wall, <span class="red">but you're too short.</span> You manage to squeeze through a hole at the base instead, but the <<person>> is getting away. <<set $NPCList[0].distance += 1>> <br><br> <</if>> <<case "wall_normal">> <<if $bodysize gte 2 or $bodysize gte 1 and random(1, 2) is 2>> <span class="green">You jump and haul yourself over the wall.</span> <br><br> <<else>> You jump and try to grasp the top of the wall, <span class="red">but you're too short.</span> You manage to squeeze through a hole at the base instead, but the <<person>> is getting away. <<set $NPCList[0].distance += 1>> <br><br> <</if>> <<case "wall_small">> <<if $bodysize lte 1 or $bodysize lte 2 and random(1, 2) is 2>> You drop to your knees and crawl through the hole, <span class="green">emerging on the other side.</span> You continue the chase. <br><br> <<else>> You drop to your knees and crawl through the hole. You emerge on the other side, <span class="red">but get stuck.</span> <br><br> The <<person>> returns when <<he>> notices your predicament. <<He>> <<npcUndressText $NPCList[0] "lower" "self">>, <span class="purple"><<npcRevealText $NPCList[0] "lower">>.</span> <<stalk_attack>> <<stuck_in_wall_oral>> <br><br> <</if>> <<case "wall_tiny">> <<if $bodysize lte 0 or $bodysize lte 1 and random(1, 2) is 2>> You drop to your knees and crawl through the hole, <span class="green">emerging on the other side.</span> You continue the chase. <br><br> <<else>> You drop to your knees and crawl through the hole. You emerge on the other side, <span class="red">but get stuck.</span> <br><br> The <<person>> returns when <<he>> notices your predicament. <<He>> <<npcUndressText $NPCList[0] "lower" "self">>, <span class="purple"><<npcRevealText $NPCList[0] "lower">>.</span> <<stuck_in_wall_oral>> <br><br> <</if>> <<case "cat">> <<if $cat gte 6>> You meow at the cat. <span class="green">It meows back,</span> and runs after the <<person>>. It jumps on <<his>> back, its claws ablur. <span class="green"><<He>> drops your $stalk_clothes and reaches for the attacker.</span> <br><br> <<He>> throws the cat away, then turns to face you. <br><br> <<stalk_catch>> <<else>> The cat hisses as you pass. <br><br> <</if>> <<case "dead-end">> <<if random(1, 2) is 2>> <<He>> spots a thin passage between a building and metal shed and squeezes through. <br><br> <<else>> Finding no way out, <span class="blue">the <<person>> turns to face you.</span> <br><br> <<stalk_catch>> <</if>> <<case "employee">> <<set _rng to random(1, 3)>> <<switch _rng>> <<case 3>> The employee reaches into <<his>> pocket when <<he>> spots you, <span class="blue">and produces <<his>> phone,</span> pointing it at you as you pass. <<fameexhibitionism 5>> <br><br> <<case 2>> The employee's mouth opens in shock when <<he>> spots you. <<His>> cigarette falls to the floor. <br><br> <<case 1>> The employee's mouth opens in shock when <<he>> spots you. <br><br> <</switch>> <<case "tree_climb">> <<if $fox gte 6>> With your fox-like reflexes, <span class="green">you easily scramble up the same tree</span>. The two of you chase each other through the canopy for a short time, before returning to the forest floor. <<elseif $cat gte 6>> With your cat-like reflexes, <span class="green">you easily scramble up the same tree</span>. The two of you chase each other through the canopy for a short time, before returning to the forest floor. <<elseif $harpy gte 6 and $birdFly and !$plucked>> You crouch, and give your wings a heavy flap to do a high jump. <span class="green">It gives you enough of a boost to climb the rest of the way.</span> The two of you chase each other through the canopy for a short time, before returning to the forest floor. <<elseif currentSkillValue("athletics") gte random(0, $NPCList[0].skills.athletics + 100)>> <<if $harpy gte 6 and $birdFly and $plucked>> You flap your wings, but they're too plucked to give you any sort of boost. <</if>> You climb the tree after <<him>>, <span class="green">and manage to keep up</span>. The two of you chase each other through the canopy for a short time, before returning to the forest floor. <<else>> You spend a moment trying to climb the tree, <span class="red">but can't get a good enough grip</span>. You chase <<him>> from the ground instead, losing some distance. <<set $NPCList[0].distance += 1>> <</if>> <<case "river_jump">> <<if $angel gte 6 or $fallenangel gte 2 or $demon gte 6 or $harpy gte 6>> You jump and <span class="green">easily glide the short distance</span> over the river. <<elseif currentSkillValue("athletics") gte random(0, 800)>> You jump the river, and <span class="green">manage to clear the full distance</span>. <<else>> You jump the river, and <span class="red">come up just short</span>. You grab the opposite bank, but your lower half dips into the water. You quickly pull yourself up, but you've lost some distance. <<lowerwet 100>><<underlowerwet 100>> <</if>> <<case "bramble">> <<if $dryad gte 6>> The thorns and vines <span class="green">move aside for you</span>. You end up making it through faster than your quarry did, and gain some distance. <<set $NPCList[0].distance -= 1>> <<elseif currentSkillValue("tending") gte random(1, 800)>> You brace yourself, and take your time navigating the thick foliage. <span class="green">You know where to step, and when to take it as slow as possible to avoid being ensnared.</span> <<else>> You try to push through as fast as possible, <span class="red">and end up getting momentarily ensnared in some vines</span>. You escape, but your quarry has pulled ahead. <<set $NPCList[0].distance += 1>> <</if>> <</switch>> <<unset $stalk_event>> <</widget>> <<widget "man-pursuit">> <<if _n is 0>> <<set $NPCList[_n].distance += 1>> <<if $NPCList[_n].distance gte 4>> You round a corner, but the <<person>> is nowhere to be seen. <span class="red">You've lost <<him>>.</span> <<set $stalk_end to "outpaced">> <<elseif $NPCList[_n].distance is 3>> The <<person>> rounds a corner ahead. <span class="pink">You've almost lost <<him>>.</span> <<elseif $NPCList[_n].distance is 2>> The <<person>> runs, your clothes trailing behind <<him>>. <span class="purple"><<Hes>> some distance from you.</span> <<elseif $NPCList[_n].distance is 1>> The <<person>> runs and throws the occasional glance over <<his>> shoulder. <span class="blue"><<Hes>> not far ahead.</span> <<else>> <<set $NPCList[_n].distance to 0>> The <<person>> runs, your clothes bundled under <<his>> arm. <span class="green"><<Hes>> right in front of you.</span> <</if>> <</if>> <<stalk_img>> <</widget>> <<widget "man-chased">> <<if _n is 0 and $stalk_end isnot "catch">> <<set $NPCList[_n].distance += 1>> <<if $location is "forest">> <<if $NPCList[_n].distance gte 4>> You push through the foliage, but your quarry is nowhere to be seen. <span class="red">You've lost <<him>>.</span> <<set $stalk_end to "outpaced">> <<elseif $NPCList[_n].distance is 3>> Your quarry is barely visible through the trees. <span class="pink">You've almost lost <<him>>.</span> <<elseif $NPCList[_n].distance is 2>> Your quarry runs, expertly dodging branches. <span class="purple"><<Hes>> some distance from you.</span> <<elseif $NPCList[_n].distance is 1>> Your quarry runs and throws the occasional glance over <<his>> shoulder. <span class="blue"><<Hes>> not far ahead.</span> <<else>> <<set $NPCList[_n].distance to 0>> Your quarry runs. <span class="green"><<Hes>> right in front of you.</span> <</if>> <<else>> <<if $NPCList[_n].distance gte 4>> You round a corner, but the <<person>> is nowhere to be seen. <span class="red">You've lost <<him>>.</span> <<set $stalk_end to "outpaced">> <<elseif $NPCList[_n].distance is 3>> The <<person>> rounds a corner ahead. <span class="pink">You've almost lost <<him>>.</span> <<elseif $NPCList[_n].distance is 2>> The <<person>> runs. <span class="purple"><<Hes>> some distance from you.</span> <<elseif $NPCList[_n].distance is 1>> The <<person>> runs and throws the occasional glance over <<his>> shoulder. <span class="blue"><<Hes>> not far ahead.</span> <<else>> <<set $NPCList[_n].distance to 0>> The <<person>> runs. <span class="green"><<Hes>> right in front of you.</span> <</if>> <</if>> <</if>> <<stalk_img>> <</widget>> <<widget "stalk_catch">> <<set $stalk_end to "catch">> <<if $consensual isnot 1>> <<for _i = 0; _i < $NPCList.length; _i++>> <<set $NPCList[_i].state to "attack">> <</for>> <<if random(1, 2) is 2>> <<set $position to "missionary">> <<else>> <<set $position to "doggy">> <</if>> <<if $location is "town" and Time.dayState isnot "night">> <<set $audience_active to true>> <</if>> <</if>> <</widget>> <<widget "stalk_attack">> <<for _i = 0; _i < $NPCList.length; _i++>> <<set $NPCList[_i].state to "attack">> <</for>> <<if random(1, 2) is 2>> <<set $position to "missionary">> <<else>> <<set $position to "doggy">> <</if>> <<if $location is "town" and Time.dayState isnot "night">> <<set $audience_active to true>> <</if>> <<set $feetuse to 0>> <<controlloss>> <<molested>> <</widget>> <<widget "stalk_pursuit">> <<for _i = 0; _i < $NPCList.length; _i++>> <<set $NPCList[_i].state to "pursuit">> <<set $NPCList[_i].distance to 2>> <</for>> <<set _clothesJustStolen to true>> <<set $rescue to 0>> <<controlloss>> <<molested>> <</widget>> <<widget "stalk_chased">> <<for _i = 0; _i < $NPCList.length; _i++>> <<set $NPCList[_i].state to "chased">> <<set $NPCList[_i].distance to 2>> <</for>> <<set $rescue to 0>> <</widget>> <<widget "stalk_run">> <<set $feetuse to "run">> <<for _i = 0; _i < $NPCList.length; _i++>> <<set $NPCList[_i].legs to "run">> <</for>> <br> <</widget>> <<widget "stalk_flight">> <<for _i = 0; _i < $NPCList.length; _i++>> <<set $NPCList[_i].state to "pursuit">> <<set $NPCList[_i].distance to 2>> <</for>> <<set $rescue to 0>> <<unset $audience_active>> <</widget>> <<widget "stalk_init">> <<for _i = 0; _i < $NPCList.length; _i++>> <<set $NPCList[_i].state to "stalk">> <<set $NPCList[_i].distance to 4>> <<set $NPCList[_i].legs to "walk">> <</for>> <<set $position to "stalk">> <<set $feetuse to "walk">> <<set $stalk to true>> <<set $enemyanger to 40>> <<if $controlled is 0 and ($anxiety gte 2 and random(1, 3) is 3 or $anxiety gte 1 and random(1, 9) is 9) and !$consensual>> <span class="red">Your mind races, concocting terrible scenarios of what could befall you.</span><<anxiety_disorder_text>><<llcontrol>><<control -25>> <br> <</if>> <</widget>> <<widget "events_stalk">> <<if $combatgoal is "confront">> <<if $npcrow.includes(0)>> <<stalk_nnpc_text_confront $NPCList[0].fullDescription>> <<else>> <span class="purple">You're grabbed by the arm and pulled back to face your assailant.</span> <</if>> <<set $stalk_end to "confront">> <<else>> <<switch $enemyno>> <<case 1>> <<set _rng to random(1, 100)>> <<if $worn.upper.name is "large towel" and $worn.upper.set is $worn.lower.set>> A <<person>> <span class="purple">snatches the towel from your body,</span> <span class="pink">exposing your <<undertop>> and <<undies>>.</span> <<He>> runs ahead, leaving you exposed in the middle of the <<location_text>>. <<set $stalk_clothes to $worn.upper.name>> <<upperstrip>> <<exposure>> <<stalk_pursuit>> <br><br> <<elseif $worn.upper.name is "large towel">> A <<person>> <span class="purple">snatches the towel from your chest,</span> <span class="pink">exposing your <<undertop>>.</span> <<He>> runs ahead, leaving you exposed in the middle of the <<location_text>>. <<set $stalk_clothes to $worn.upper.name>> <<upperstrip>> <<exposure>> <<stalk_pursuit>> <br><br> <<elseif $worn.lower.name is "large towel bottom">> A <<person>> <span class="purple">snatches the towel from your waist,</span> <span class="pink">exposing your <<undies>>.</span> <<He>> runs ahead, leaving you exposed in the middle of the <<location_text>>. <<set $stalk_clothes to $worn.lower.name>> <<lowerstrip>> <<exposure>> <<stalk_pursuit>> <br><br> <<elseif $worn.upper.name is "towel top">> A <<person>> <span class="purple">snatches the towel from your chest,</span> <span class="pink">exposing your <<undertop>>.</span> <<He>> runs ahead, leaving you exposed in the middle of the <<location_text>>. <<set $stalk_clothes to $worn.upper.name>> <<upperstrip>> <<exposure>> <<stalk_pursuit>> <br><br> <<elseif $worn.lower.name is "towel skirt">> A <<person>> <span class="purple">snatches the towel from your waist,</span> <span class="pink">exposing your <<undies>>.</span> <<He>> runs ahead, leaving you exposed in the middle of the <<location_text>>. <<set $stalk_clothes to $worn.lower.name>> <<lowerstrip>> <<exposure>> <<stalk_pursuit>> <br><br> <<elseif _rng gte 81 and $exposed lt 2>> You hear a <<person>> behind you. <<catcall>> Before you can respond, a pair of intruding hands grasp your clothes! <<npcstrip>> <<npcidlegenitals>> <<stalk_attack>> <br><br> <<elseif pcAreArmsBound("any")>> Someone grabs your bound arms from behind. "All wrapped up like a present," says a <<person>> as <<he>> swivels you around. "How could I resist?" <<stalk_attack>> <br><br> <<else>> You hear a <<person>> behind you. <<catcall>> Before you can respond, a pair of intruding hands grasp you! <<stalk_attack>> <br><br> <</if>> <<case 2>> You hear a <<person1>><<person>> behind you. Before you can respond, <<he>> seizes you by the arms and mouth. <<if $location is "alley">> <<He>> drags you into a shadowed alley, where <<his>> friend awaits. <<elseif $location is "town">> <<He>> drags you into an alley, where <<his>> friend awaits. <<else>> <<He>> drags you into the shadows, where <<his>> friend awaits. <</if>> <<stalk_attack>> <<set $leftarm to "grappled">><<set $rightarm to "grappled">><<hand_gag 0 left>><<set $NPCList[0].righthand to "arms">> <br><br> <<case 3>> <<if $worn.upper.name is "large towel" or $worn.lower.name is "large towel bottom" or $worn.upper.name is "towel top" or $worn.lower.name is "towel skirt">> A <<person1>><<person>> steps in front of you, while two other figures move in from behind, penning you between them. "That's an odd thing to walk around in during the night," says the <<person1>><<person>> as <<he>> strokes your towel. "I think I know exactly what you want." <br><br> <<set $combat_end_text to '"Dress like a slut, get treated like one," says the <<person>>. They leave you lying on the pavement.'>> <<stalk_attack>> <<else>> A <<person1>><<person>> steps in front of you, while other figures move in from behind, penning you between them. <br><br> <<stalk_attack>> <</if>> <<case 4>> A <<person1>><<person>>'s hand grasps your shoulder and three other figures block your path. "You're going nowhere <<lass>>," the <<person>> says. "Not til we're done." <br><br> <<stalk_attack>> <<case 5>> A <<person1>><<person>> steps in front of you while <<person2>><<person>> rests <<his>> hands on your hips. Three others are with them. They aren't going to let you go. <br><br> <<person1>> <<stalk_attack>> <<default>> A <<person1>><<person>> and <<person2>><<person>> step in front of you as several others press in from behind, penning you in. <br><br> <<person1>> <<stalk_attack>> <</switch>> <</if>> <</widget>> <<widget "events_stalk_nnpc">> <<switch _args[0]>> <<case "Avery">> <<He>> drags you into an alley and shoves you against a wall. You feel <<his>> breath on your neck. <br><br> <<person1>> <<set $location to "alley">><<set $bus to "commercial">> <<stalk_attack>> <<case "Gwylan">> <<He>> pounces, tackling you to the ground. <<set $stalk_end to "confront">> <<set $mouthaction to 0>> <<default>> <<events_stalk>> <</switch>> <</widget>> <<widget "stalk_athletics_difficulty">> <<if $stalk_assess or $NPCList[0].state is "pursuit" or $NPCList[0].state is "chased">> <<if $worn.feet.type.includes("heels")>> <<skill_difficulty `currentSkillValue("feetskill")` "Feet (heels)" 1 1000>> <</if>> <<athleticsdifficulty 0 $NPCList[0].skills.athletics>> <</if>> <</widget>> <<widget "stalk_skulduggery_difficulty">> <<if $stalk_assess or $NPCList[0].state is "pursuit" or $NPCList[0].state is "chased">> <<set _difficulty to $NPCList[0].skills.security>> <<set _difficulty += $liquidcount * 20>> <<if $liquidcount gte 1>> <<skill_difficulty `currentSkillValue("skulduggery")` "Skulduggery (Slimy)" 0 _difficulty>> <<else>> <<skill_difficulty `currentSkillValue("skulduggery")` "Skulduggery" 0 _difficulty>> <</if>> <</if>> <</widget>> <<widget "run_text">> <<switch $location>> <<case alley>> <<set _rng to random(1, 3)>> <<switch _rng to random(1, 3)>> <<case 1>> You leap over a parked car. <<case 2>> You skirt between tightly-packed dumpsters. <<case 3>> You avoid a bollard. <</switch>> <<case park>> <<set _rng to random(1, 3)>> <<switch _rng to random(1, 3)>> <<case 1>> You leap over bins and through bushes. <<case 2>> You duck beneath a tall hedge. <<case 3>> You bat away obstructing branches. <</switch>> <<case moor>> <<set _rng to random(1, 3)>> <<switch _rng to random(1, 3)>> <<case 1>> You leap over a muddy patch. <<case 2>> You scramble up a ridge. <<case 3>> You stomp through a patch of short brambles. <</switch>> <<case forest>> <<set _rng to random(1, 3)>> <<switch _rng to random(1, 3)>> <<case 1>> You leap over a stream. <<case 2>> You squeeze between dense trees. <<case 3>> You stomp through a patch of ferns. <</switch>> <<default>> <<set _rng to random(1, 3)>> <<switch _rng to random(1, 3)>> <<case 1>> <<if Weather.precipitation is "rain">> You leap over a puddle. <<elseif Weather.isSnow>> You leap over ice. <<else>> You leap over a pothole. <</if>> <<case 2>> You avoid colliding with a <<if random(1, 2) is 2>>postbox<<else>>bin<</if>>. <<case 3>> You weave between parked cars. <</switch>> <</switch>> <</widget>> <!-- Named NPC response widgets. _args[0] = npc name --> <!-- Default responses should be inaccessible and are only here as a failsafe. Any named (and maybe persistent) NPCs that don't have responses should be given them before they're written into a stalking scene. --> <!-- Player is accosted after failing to run, hide or confront --> <<widget "stalk_nnpc_text_attack">> <<switch _args[0]>> <<case "Avery">> <<switch random(1, 4)>> <<case 4>>"That's enough, brat." <<case 3>>"When I say come, you come." <<case 2>>"Who do you think you are, wasting my time?" <<case 1>>"Making me run all over town for you," <<he>> spits. "You've earned this." <</switch>> <<case "Bailey">> <<switch random(1, 4)>> <<case 4>>"Time to pay up." <<case 3>>"I'm done playing games with you." <<case 2>>"Thanks for wasting my time," <<he>> sneers. "Now hold still." <<case 1>>"You're almost more trouble than you're worth." <<He>> smiles. "Almost." <</switch>> <<case "Briar">> <<switch random(1, 4)>> <<case 4>>"Let me show you who's boss around here." <<case 3>>"One way or another, you're paying me back." <<case 2>>"There <<pshe>> is. The little thorn in my side." <<case 1>>"No one pisses me off. You're about to find out why." <</switch>> <<case "Eden">> <<if $syndromeeden is 1>> <<switch random(1, 4)>> <<case 4>>"Time to go home." <<case 3>>"Quiet. I've got you." <<case 2>>"I knew I'd get you back." <<case 1>>"Thought you could run away?" <</switch>> <<else>> <<switch random(1, 4)>> <<case 4>>"Don't struggle." <<case 3>>"No more running." <<case 2>>"I've got you now." <<case 1>>"I always get my prey." <</switch>> <</if>> <<case "Harper">> <<if $cow gte 6>> <<switch random(1, 4)>> <<case 4>>"Remy's waiting." <<case 3>>"We've missed you." <<case 2>>"Let's get you home." <<case 1>>"You'll be at peace again." <</switch>> <<else>> <<switch random(1, 4)>> <<case 4>>"Shh. Just relax." <<case 3>>"Close your eyes." <<case 2>>"Take a deep breath." <<case 1>>"You're too tense," <<he>> whispers. "It's unhealthy." <</switch>> <</if>> <<case "Kylar">> <<switch random(1, 4)>> <<case 4>>"D-don't worry! It's just me!" <<case 3>>"I won't let you get away," <<he>> whispers. "Ever." <<case 2>>"Looking for me?" <<he>> giggles. "I'm right here, silly!" <<case 1>>"I-I couldn't help myself." <<He>> licks <<his>> lips. "I need you." <</switch>> <<case "Leighton">> <<switch random(1, 4)>> <<case 4>>"Time for your discipline." <<case 3>>"Good <<girls>> obey their superiors." <<case 2>>"Best keep quiet," <<he>> whispers. "If you know what's good for you." <<case 1>>"You should be honoured," <<he>> whispers. "Most <<girls>> are beneath my notice." <</switch>> <<case "Morgan">> <<switch random(1, 4)>> <<case 4>>"<<charles>>!" <<case 3>>"There you are, you little sneak!" <<case 2>>"I've found you," <<he>> whispers. "At last." <<case 1>>"Don't worry, darling," <<he>> coos. "I'm here, now." <</switch>> <<case "Whitney">> <<switch random(1, 4)>> <<case 4>>"Guess who?" <<case 3>>"Surprise, slut." <<case 2>>"Thought you were safe? Guess again." <<case 1>>"My favourite <<bitch>>, all by <<pherself>>." <<He>> grins. "Lucky me." <</switch>> <<case "Gwylan">> <<if $huntGame?.adversaryText is "the brown fox">> The brown fox bears down on you. <<else>> <<switch random(1, 4)>> <<case 4>>"<<pcPetname "Gwylan">>!" <<case 3>>"Not fast enough, <<pcpetname "Gwylan" "name">>!" <<case 2>>"Incoming!" <<case 1>>"Surprise!" <</switch>> <</if>> <<case "Ivory Wraith">> <<if $wraith.state is "haunt">> <<switch random(1, 5)>> <<case 5>><<set _wraith_output to "Give it back.">> <<case 4>><<set _wraith_output to "I am everywhere.">> <<case 3>><<set _wraith_output to "<<pcPetname \"Wraith\">>.">> <<case 2>><<set _wraith_output to "Where can you go but down?">> <<case 1>><<set _wraith_output to "Run from your sins, into empty arms.">> <</switch>> <<elseif ["dead","sold"].includes($wraith.offspring)>> <<switch random(1, 5)>> <<case 5>><<set _wraith_output to "Coward.">> <<case 4>><<set _wraith_output to "All your fault.">> <<case 3>><<set _wraith_output to "<<pcPetname \"Wraith\">>.">> <<case 2>><<set _wraith_output to "Afraid. Alone. You'll share that pain.">> <<case 1>><<set _wraith_output to ($wraith.offspring is "dead" ? "You've dug their grave. Now lie with them." : "They're still calling your name. Will you hear them?")>> <</switch>> <<else>> <<switch random(1, 5)>> <<case 5>><<set _wraith_output to "Find you.">> <<case 4>><<set _wraith_output to "Why run from fate?">> <<case 3>><<set _wraith_output to "<<pcPetname \"Wraith\">>.">> <<case 2>><<set _wraith_output to "You can run. But where will you go?">> <<case 1>><<set _wraith_output to "Fly while you can, before your wings are clipped.">> <</switch>> <</if>> "<span class="wraith"><<print _wraith_output>></span>" <<rainWraith true>> <<default>> "Best play along," <<he>> says. "It'll be easier for you." <</switch>> <</widget>> <!-- Successfully used the "confront" action --> <<widget "stalk_nnpc_text_threat">> <<switch _args[0]>> <<case "Avery">> <<if $averyragerevealed is 1 and C.npc.Avery.rage gte random(20, 100)>> <<switch random(1, 3)>> <<case 3>><<He>> looks you up and down, <span class="green">then rolls <<his>> eyes.</span> "I've no time to waste on you." <<case 2>><<He>> narrows <<his>> eyes before <span class="green">turning away with a scoff.</span> "Not worth the effort." <<case 1>><<He>> stops, fixing you with a glare. "I'm a busy <<personsimple>>. <span class="green">Lucky for you, I have places to be.</span>" <</switch>> <br><br> <<He>> walks on. You feel tense.<<stress 2>><<gstress>> <<else>> <<switch random(1, 3)>> <<case 3>><span class="green"><<He>> raises an eyebrow,</span> smirking. "Is that your idea of a proper greeting?"<br><br> <<He>> laughs as <<he>> walks on. <<case 2>><<He>> stops and stares at you, brow furrowed. <span class="green"><<He>> brushes past you without a word.</span><br><br> <<case 1>><<He>> crosses <<his>> arms and holds up <<his>> phone. "Do you mind?"<br><br> <<He>> walks on, trying to pick up <<his>> conversation. <</switch>> You feel a little silly. <</if>> <<case "Bailey">> <<switch random(1, 3)>> <<case 3>><<He>> doesn't break eye contact as <<he>> passes, <span class="green">but ultimately leaves you alone.</span> <<case 2>><<He>> stops in front of you, stares in silence, <span class="green">then continues on <<his>> way.</span> <<case 1>><<He>> stands in front of you and raises <<his>> phone. You hear a click. <span class="green"><<He>> leaves without a word.</span> <</switch>> <br><br> You let out a shaky breath as <<he>> walks on.<<stress 6>><<gstress>> <<case "Briar">> <<switch random(1, 3)>> <<case 3>><<He>> smirks, eyes you up and down, <span class="green">then walks right past you.</span> <<case 2>><span class="green"><<He>> bursts out laughing.</span> "You? That's rich." <<case 1>><span class="green"><<He>> lets out a sharp bark of laughter.</span> "Cute. Now get out of my way." <</switch>> <br><br> <<He>> peers at you over <<his>> shoulder as <<he>> walks on. You feel tense.<<stress 2>><<gstress>> <<case "Eden">> <<He>> stares for a moment, <span class="teal">then silently slinks <<if $location is "forest">>between the trees<<elseif $location is "moor">>into the fog<<else>>into an alley<</if>>.</span> <br><br> You let out a shaky breath.<<stress 4>><<gstress>> <<case "Harper">> <span class="green"><<He>> stops.</span> <<His>> polite smile doesn't falter. <<switch random(1, 3)>> <<case 3>>"Lashing out at innocent passers-by is a sure sign of stress, you know." <<case 2>>"For some people, anger is just a cry for help. Please, be well." <<case 1>>"You look troubled. Don't be afraid to ask for help." <</switch>> <br><br> <<He>> walks on. You feel tense.<<stress 2>><<gstress>> <<case "Kylar">> <<switch random(1, 3)>> <<case 3>><<He>> mutters something under <<his>> breath. You can't make it out. <span class="green"><<He>> scurries past you.</span> <<case 2>><<He>> tenses as you turn around, barely managing an awkward smile and a wave <span class="green">before hurrying past you.</span> <<case 1>><<He>> freezes up, <span class="green">before bolting in the opposite direction.</span> You're left bewildered. <</switch>> <<case "Leighton">> <<switch random(1, 3)>> <<case 3>><<He>> tuts. <span class="green">"How uncouth. If I weren't so busy, I'd discipline you myself."</span> <<case 2>><<He>> raises an eyebrow, <span class="green">then turns away.</span> "I'll overlook that remark." <<case 1>><span class="green"><<He>> looks down at you with contempt,</span> muttering under <<his>> breath. "Disrespectful brats." <</switch>> <br><br> <<He>> walks on. You feel a little silly. <<case "Morgan">> <<switch random(1, 3)>> <<case 3>><<He>> stops in <<his>> tracks and gasps. "You're right! I forgot the scones!"<br><br> <span class="green"><<He>> runs off in the opposite direction,</span> leaving you bewildered. <<case 2>><span class="green"><<He>> stumbles past you as if you weren't there.</span><br><br> You watch <<him>> leave, babbling to <<himself>> all the while. <<case 1>><span class="green"><<He>> smiles and waves as <<he>> walks past you.</span><br><br> You feel silly and more than a little confused. <</switch>> <<case "Whitney">> <<switch random(1, 3)>> <<case 3>><span class="green"><<He>> shoves past you,</span> almost knocking you over.<br><br> You dust yourself off, thankful nothing worse became of it. <<case 2>><span class="green"><<He>> throws <<his>> hands up,</span> smiling innocently. "Just admiring the view from back here."<br><br> <<He>> smacks your <<bottom>> as <<he>> walks on.<<stress 2>><<arousal 150 "bottom">><<gstress>><<garousal>> <<case 1>>Just as <<he>> draws near, <<he>> jumps at you with a loud "Boo!" You flinch on instinct.<br><br> "Wuss," <<he>> laughs <span class="green">as <<he>> leaves you behind.</span><<stress 4>><<gstress>> <</switch>> <<case "Gwylan">> <<switch random(1, 3)>> <<case 3>><span class="green"><<He>> tilts <<his>> head,</span> and walks around you. <<if $location is "forest">>"I'm just out gathering some ingredients,"<<else>>"I'm just out for a stroll,"<</if>> <<he>> says. "I thought I'd say hello." You chat briefly. <<lstress>><<stress -1>> <<case 2>><span class="green"><<He>> stops.</span> "Are you alright? You looked so nervous, I was just coming to check on you." <<He>> smiles, petting your head for a moment. <<case 1>><span class="green"><<He>> stops.</span> "I wanted to invite you to come by the shop later, that's all." <<He>> smiles, petting your head for a moment. <</switch>> <br><br> <<He>> walks on. <<if $hypnosis_traits.devotion gte 3>> <<hypnosisText "You have trouble tearing your eyes away as <<he>> leaves.">> <<trauma -1>><<ltrauma>> <<else>> You feel a little silly. <</if>> <<set $daily.gwylan.noHunt to true>> <<case "Ivory Wraith">> It cackles, <span class="teal">before dissipating into a thick, cool mist.</span> Its voice echoes around you. <<switch random(1, 3)>> <<case 3>><<set _wraith_output to "Bask while you can. The night comes quickly.">> <<case 2>><<set _wraith_output to "For what little comfort it's worth.">> <<case 1>><<set _wraith_output to "Hold it close.">> <</switch>> "<span class="wraith"><<print _wraith_output>></span>" <br><br> You shiver as the haze clears around you, revealing an empty <<if $location is "forest">>clearing<<elseif $location is "moor">>field<<else>>street<</if>>. <<trauma 2>><<stress 4>><<gtrauma>><<gstress>> <<default>> <span class="green"><<He>> throws up <<his>> hands.</span> "Easy <<girl>>," <<he>> says, giving you a wide berth. "I didn't mean to frighten you." <br><br> <<He>> walks ahead. <</switch>> <</widget>> <!-- NPC walks by due to lack of boldness --> <<widget "stalk_nnpc_text_passed">> <<switch _args[0]>> <<case "Avery">> <<switch random(1, 3)>> <<case 3>><<stalk_nnpc_name>> chats on <<his>> phone as <<he>> passes. <span class="teal"><<He>> ignores you.</span> <<case 2>><<stalk_nnpc_name>> peers at you from the corner of <<his>> eye as <<he>> passes. <span class="teal"><<He>> leaves you alone.</span> <<case 1>><<stalk_nnpc_name>> walks by. <span class="teal"><<He>> doesn't glance at you.</span> <</switch>> <<case "Bailey">> <<switch random(1, 3)>> <<case 3>><<stalk_nnpc_name>> walks by, <span class="teal">too busy on the phone to acknowledge you.</span> <<case 2>><<stalk_nnpc_name>> peers at you from the corner of <<his>> eye as <<he>> passes. <span class="teal"><<He>> leaves you alone.</span> <<case 1>><<stalk_nnpc_name>> thumps <<his>> shoulder against yours as <<he>> passes. <span class="teal"><<He>> doesn't look up.</span> <</switch>> <<if $stalk_assess>> You let out a shaky breath. <<stress 4>><<gstress>> <</if>> <<case "Briar">> <<switch random(1, 3)>> <<case 3>><<stalk_nnpc_name>> winks over <<his>> shoulder <span class="teal">as <<he>> walks on by.</span> <<case 2>><<stalk_nnpc_name>> stops, stares at you over <<his>> shoulder, <span class="teal">then continues on <<his>> way.</span> <<case 1>><<stalk_nnpc_name>> walks by. <span class="teal"><<He>> doesn't so much as glance at you.</span> <</switch>> <<case "Eden">> <<switch random(1, 3)>> <<case 3>>Suddenly seized by primal fear, you turn around. <span class="teal">You're alone.</span><<stress 4>><<gstress>> <<case 2>><span class="teal"><<stalk_nnpc_name>> stomps past you,</span> almost shoving you to the ground in <<his>> haste. <<case 1>>You hear movement behind you. You turn to catch a glimpse of <<if $stalk_assess>>Eden<<else>>a large figure<</if>> <span class="teal">disappearing <<if $location is "forest">>between the trees<<elseif $location is "moor">>into the fog<<else>>into an alley<</if>>.</span> <</switch>> <<case "Harper">> <<switch random(1, 3)>> <<case 3>><<stalk_nnpc_name>> jots notes in a journal as <<he>> passes. <span class="teal"><<He>> ignores you.</span> <<case 2>><<stalk_nnpc_name>> peers at you from the corner of <<his>> eye as <<he>> passes. <span class="teal"><<He>> leaves you alone.</span> <<case 1>><<stalk_nnpc_name>> walks by. <span class="teal"><<He>> doesn't glance at you.</span> <</switch>> <<case "Kylar">> <<switch random(1, 3)>> <<case 3>><span class="teal"><<stalk_nnpc_name>> walks right by you,</span> <<his>> gaze fixed to the floor. <<case 2>>You feel a tug on your arm from behind. When you turn, <span class="teal">nobody's there.</span><<stress 4>><<gstress>> <<case 1>><<stalk_nnpc_name>> passes without looking up, <span class="teal">leaving you alone.</span> <</switch>> <<case "Leighton">> <<switch random(1, 3)>> <<case 3>><<stalk_nnpc_name>> leers as <<he>> passes, <span class="teal">but otherwise leaves you alone.</span> <<case 2>><<stalk_nnpc_name>> gives you a passing nod. <span class="teal"><<He>> continues on <<his>> way.</span> <<case 1>><<stalk_nnpc_name>> walks by, <span class="teal">too busy tinkering with <<his>> watch to notice you.</span> <</switch>> <<case "Morgan">> <<switch random(1, 3)>> <<case 3>><<stalk_nnpc_name>> cheerfully hums as <<he>> passes, <span class="teal">all but ignoring you.</span> <<case 2>><span class="teal"><<stalk_nnpc_name>> stumbles past you as if you weren't there.</span> <<case 1>>You hear a gasp behind you. <span class="teal">You turn in time to catch a fleeting glimpse of <<if $stalk_assess>>Morgan<<else>>a figure<</if>> scurrying away.</span> <</switch>> <<case "Whitney">> <<switch random(1, 3)>> <<case 3>><span class="teal"><<stalk_nnpc_name>> flicks a cigarette butt over <<his>> shoulder as <<he>> passes.</span> It bounces off your cheek. <<case 2>><<stalk_nnpc_name>> smacks your <<bottom>> as <<he>> passes. <<if $stalk_assess>> <<He>> flashes a smug smirk over <<his>> shoulder.<<else>> <<Hes>> gone before you can get a good look at <<him>>.<</if>><<stress 2>><<arousal 150 "bottom">><<gstress>><<garousal>> <<case 1>><<stalk_nnpc_name>> picks at <<his>> nails as <<he>> passes. <span class="teal"><<Hes>> too engrossed to notice you.</span> <</switch>> <<case "Gwylan">> <<switch random(1, 3)>> <<case 3>> Your wrist is grabbed, and your hand is forcibly opened. <<if !$stalk_assess>><span class="forest-green">It's Gwylan.</span><<set $stalk_assess to true>><</if>> <span class="teal"><<stalk_nnpc_name>> picks a berry out of <<his>> basket, places it in your hand, and closes it again.</span> "Enjoy!" <br><br> You eat the berry. It's quite tasty. <<stress -1>><<lstress>> <<case 2>> "There you are! I knew I'd find you around here somewhere." <<if !$stalk_assess>><span class="forest-green">It's Gwylan.</span><<set $stalk_assess to true>><</if>> <br><br> <span class="teal"><<stalk_nnpc_name>> walks right past you,</span> <<his>> gaze trained on an object on the ground. It's a ?gwylanItem. <<He>> picks it up and inspects it with a smile. <br><br> <<He>> turns to you. "Thanks for showing me where it was, <<pcpetname "Gwylan">>." <<case 1>> <<stalk_nnpc_name>> <span class="red">grabs your arm as <<he>> walks by...</span> only to twirl you around, as if dancing. <<if !$stalk_assess>><span class="forest-green">It's Gwylan.</span><<set $stalk_assess to true>><</if>> <<if $gwylanSeen.includes("partners")>> <<He>> hums as <<he>> dances you around for a moment, only to kiss you on the cheek and release you, stepping and twirling away. <<else>> <<He>> hums as <<he>> dances you around for a moment, only to release you and twirl away<<if $location is "forest">> back into the trees<</if>>. <</if>> <<His>> humming slowly fades. <</switch>> <<set $daily.gwylan.noHunt to true>> <<case "Ivory Wraith">> <<switch random(1, 3)>> <<case 3>>A cold chill blows over you, <span class="teal">but it vanishes just as quickly.</span> <<case 2>>A cold, clammy hand grabs your shoulder. You turn, <span class="teal">but no one's there.</span> <<case 1>>You feel a presence. Someone breathes in your ear. "<span class="wraith">Not yet.</span>" A warm breeze washes over you, <span class="teal">taking the unwelcome presence with it.</span> <</switch>> A faint mist is left in the air. You think you're alone.<<trauma 2>><<stress 4>><<gtrauma>><<gstress>> <<default>> A <<personsimple>> passes by. <span class="teal"><<He>> doesn't glance at you.</span> <</switch>> <</widget>> <!-- For specific encounters where $combatgoal is "confront" --> <<widget "stalk_nnpc_text_confront">> <<switch _args[0]>> <<case "Kylar">> You feel a tug on your arm. You turn around to face <<if $stalk_assess>> <<print $NPCList[0].fullDescription>>. <<else>> the culprit. <</if>> <<case "Ivory Wraith">> The air chills around you. Animated by instinct, you turn around to find a pair of <<wraithEyes>> eyes staring back. <<case "Eden">> Eden's hand grabs tightly onto the back of your neck, bringing you to a stop. <<case "Gwylan">> <<if $huntGame>><<= $huntGame.adversaryText.toUpperFirst()>><<else>>Gwylan<</if>> tackles you to the ground. <<set $mouthaction to 0>> <<default>> You're grabbed by the arm and pulled back to face your assailant. <</switch>> <</widget>> <<widget "stalk_nnpc_name">> <<if $NPCList[0].fullDescription is "Ivory Wraith">> <<if $stalk_assess>> The pale figure <<else>> Somebody <</if>> <<else>> <<if $stalk_assess>> <<print $NPCList[0].fullDescription>> <<else>> A <<personsimple>> <</if>> <</if>> <</widget>> <<widget "stalk_taunt_effects">> /* This has to be able to account for the player starting to run at the same time, hence why it's in its own widget */ You look behind you, at <<person1>> <<if $npcrow.includes(0)>> <<if $NPCList[0].fullDescription is "Ivory Wraith">> <<if $stalk_assess>> the pale figure. <<else>> a<<if $wraith.seen gte 3>> familiar<</if>> pale figure. <</if>> <<else>> <<if $stalk_assess>> <<if $enemyno gte 3>> <<print $NPCList[0].fullDescription>> and <<his>> companions. <<elseif $enemyno is 2>> <<print $NPCList[0].fullDescription>> and <<his>> companion. <<else>> <<print $NPCList[0].fullDescription>>. <</if>> <<else>> <<if $enemyno gte 3>> a <<personsimple>> and <<his>> companions. <<elseif $enemyno is 2>> a <<personsimple>> and <<his>> companion. <<else>> a <<personsimple>>. <</if>> <span class="pink">It's <<print $NPCList[0].fullDescription>>.</span> <</if>> <</if>> <<elseif $enemyno gte 3>> the <<person>> and <<his>> companions. <<elseif $enemyno is 2>> the <<person>> and <<his>> companion. <<else>> the <<person>>. <</if>> <<set $stalk_assess to true>> <<if $npcrow.includes(0)>> <<actionstauntNNPC>> <<else>> <<actionstaunt>> <</if>> <br> <<if $combatgoal is "confront" or $NPCList[0].fullDescription isnot "Ivory Wraith" and $NPCList[0].bold * 2 gte random(1, 1000) or $NPCList[0].fullDescription is "Ivory Wraith" and C.npc["Ivory Wraith"].lust gte random(1,10) or $NPCList[0].fullDescription is "Gwylan" and $gwylanSeen?.includes("ritual_sex")>> <<set $_chasingAnyways to true>> <</if>> <<if currentSkillValue('seductionskill') gte random(1, 1000) or $NPCList[0].fullDescription is "Gwylan">> <<set $_tauntSuccess to true>> <</if>> <<if $_chasingAnyways or $_tauntSuccess>> <<stalk_run>><<set $feetaction to 0>><<set $feetactiondefault to "run">> <<if $NPCList[0].fullDescription is "Ivory Wraith">> <span class="red">The pale figure floats towards you, faster now.</span> <<elseif $NPCList[0].fullDescription is "Gwylan">> <span class="lewd"><<He>> looks excited by your provocation, and starts running towards you.</span> <<set $stalk_taunted to "success">> <<else>> <<if $_chasingAnyways>> <<if $_tauntSuccess>> <span class="blue"><<He>> hesitates for just a moment, before starting to run after you.</span> It's clear <<he>> was already planning something, <span class="green">but your boldness has caught <<him>> off guard</span>. <<set $stalk_taunted to "success">> <<else>> <span class="red"><<He>> sneers and immediately starts to run after you. It's clear <<he>> intended to chase you even before your provocation.</span> <</if>> <<set $NPCList[0].skills.athletics += 150>> <<set $NPCList[0].skills.athletics to Math.clamp($NPCList[_n].skills.athletics, 1, 1000)>> <<else>> <span class="green"><<He>> hesitates, before starting to run after you.</span> <<set $stalk_taunted to "success">> <</if>> <</if>> /* <br><br> */ <<if $npcrow.includes(0)>> /* NPCs need unique taunt responses, be sure to remove linebreaks in the following condition and uncomment the others if you do */ <<else>> <br><br> <<if $NPCList[0].traits.includes("relaxed")>> "You look like you're worth it, and now you've gotten me excited!" <<he>> yells after you. <<elseif $NPCList[0].traits.includes("sociable")>> "Making a <<if $pronoun is "m">>gentleman<<else>>lady<</if>> like me run is so uncouth," <<he>> says. "You'll make it up to me once I catch you, mark my words!" <<elseif $NPCList[0].traits.includes("brooding")>> "Don't run, that just makes me more eager," <<he>> says. <<else>> "Get back here!" <<he>> yells after you. <</if>> <br><br> <</if>> /* <br><br> */ <<else>> <<if $npcrow.includes(0)>> <<stalk_nnpc_text_threat $NPCList[0].fullDescription>> <<else>> <span class="blue"><<He>> gives you a strange look and doesn't pursue.</span> <<if $NPCList[0].traits.includes("relaxed")>> "Easy <<girl>>," <<he>> says, giving you a wide berth. "Sorry for making you jumpy." <<elseif $NPCList[0].traits.includes("sociable")>> "Damn," <<he>> says. "Talk about damaged goods." <<He>> gives you a wide berth. <<elseif $NPCList[0].traits.includes("brooding")>> <<He>> laughs. "The streets that rough for you?" <<he>> asks. "I'll give you space." <<else>> "I was only looking!" <<he>> says. "Wasn't gonna try anything, honest." <<He>> gives you a wide berth. <</if>> <br><br> <<He>> walks ahead. You feel a little silly. <</if>> <br><br> <<set $stalk_end to "passed">> <<set $NPCList[_n].distance to 1>> <</if>> <</widget>> <<widget "stalk_ambush_text">><<silently>><<person1>> <<set $_npc to _args[0]>> <<if $dissociation gte 1>> <<set $_ambushTextPool to ["You settle on top of the <<person>>, resting on <<his>> chest. You freeze, staring unblinkingly into <<his>> eyes. Eventually, you shake yourself out of it and stand up. As you run, you hear a second set of footsteps fleeing in the other direction."]>> <<else>> <<set $_ambushTextPool to [ "You bat the <<person>> in the face a few times as <<he>> lies under you, helpless. You spring off of <<him>> and continue running before <<he>> can get <<his>> bearings.", "You bring your face close to <<hers>>. Before <<he>> can get any ideas, you scream loudly. You clamber off of <<his>> body with a victorious giggle, leaving <<him>> stunned." ]>> <<if $_npc?.clothes?.lower.name isnot "naked">> <<set $_ambushTextPool.pushUnique("You grab the <<persons>> <<npcClothesText $NPCList[0] 'lower'>> in your fangs and tug until it rips, leaving <<him>> exposed. You flee as <<he>> tries to cover <<himself>>.")>> <</if>> <<if $submissive lte 850>> <<set $_ambushTextPool.pushUnique("You roll off of <<him>> gracefully and kick <<him>> in the groin before fleeing. <<He>> won't be getting up to chase you for a while.")>> <<set $_ambushTextPool.pushUnique("Secure in your position straddling the <<person>>, you spit in <<his>> face. You hear <<him>> groaning in disgust as you flee.")>> <<elseif $submissive gte 1150>> <<set $_ambushTextPool.pushUnique('"Boo!" you say as you lie atop <<him>>. <<He>> looks utterly confused, and you use the moment to flee before <<he>> can get <<his>> bearings.')>> <</if>> <<if $transformationParts.angel.halo isnot "disabled" and $transformationParts.angel.halo isnot "hidden">> <<set $_ambushTextPool.pushUnique("You bring your face down to <<hers>>. <<He>> tries to cover <<his>> eyes as your halo sheds blinding light into them. <<He>> trembles in fear, and you let out a satisfied huff. <<He>> doesn't even try to chase you again.")>> <</if>> <<if $transformationParts.fallenAngel.halo isnot "disabled" and $transformationParts.fallenAngel.halo isnot "hidden">> <<set $_ambushTextPool.pushUnique("You bring your face down to <<hers>>. <<He>> covers <<his>> face as the shards of your broken halo all turn to point at <<him>>. <<He>> trembles in fear, and you let out a satisfied huff. <<He>> doesn't even try to chase you again.")>> <</if>> <<if $transformationParts.demon.horns isnot "disabled" and $transformationParts.demon.horns isnot "hidden">> <<set $_ambushTextPool.pushUnique("You headbutt <<him>> with your horns and roll off of <<him>>. You flee as <<he>> writhes on the ground, clutching <<his>> head.")>> <</if>> <<if hasSexStat("promiscuity", 4)>> <<set $_ambushTextPool.pushUnique("You crash down on top of the <<person>>, purposefully planting your <<bottom>> against <<his>> face. You playfully wiggle against <<his>> mouth and nose, hearing <<him>> struggle to breathe. After a few moments of this, you're satisfied and leap off <<him>> to flee the scene. <<arousal 1000>><<ggarousal>><br>")>> <</if>> <<if currentSkillValue('skulduggery') gte 600>> <<set $_ambushTextPool.pushUnique("You manage to knock the <<person>> to the ground. Taking advantage, you tie <<his>> shoelaces together with incredible deftness. <<He>> curses as you triumphantly make your escape.")>> <</if>> <</if>> <<set $_text to $_ambushTextPool.pluck()>> <</silently>><<print $_text>><</widget>> <<widget "stalk_img">> /* 'pursuit' = NPC stole clothes and is running away from player. 'chased' = NPC running from player for other reason. */ <<if $options.images is 1>> <br><br> <div class="div_stalk"> /* Tiles */ <<switch $location>> <<case "park" "forest" "lake" "farm" "meadow" "moor" "bog">> <<for _i to 0; _i lt 8; _i++>> <<if $outside is 1>> <img @class="'stalk_' + _i" src="img/misc/stalk/base_grass.png"> <<else>> <img @class="'stalk_' + _i" src="img/misc/stalk/base_floor.png"> <</if>> <</for>> <<case "beach" "island" "prison">> <<for _i to 0; _i lt 8; _i++>> <<if $outside is 1>> <img @class="'stalk_' + _i" src="img/misc/stalk/base_sand.png"> <<else>> <img @class="'stalk_' + _i" src="img/misc/stalk/base_floor.png"> <</if>> <</for>> <<default>> <<for _i to 0; _i lt 8; _i++>> <<if $outside is 1>> <img @class="'stalk_' + _i" src="img/misc/stalk/base_street.png"> <<else>> <img @class="'stalk_' + _i" src="img/misc/stalk/base_floor.png"> <</if>> <</for>> <</switch>> /* NPC */ <<if $NPCList[0].fullDescription is "Ivory Wraith" and $stalk_assess>> <<set $_stalker to "_wraith">> <<elseif $NPCList[0].fullDescription is "Gwylan" and $stalk_assess>> <<run statusCheck("Gwylan")>> <<if _gwylanTF.known>> <<set $_stalker to "_gwylan_tf">> <<else>> <<set $_stalker to "_gwylan">> <</if>> <<elseif $consensual is 1 and $stalk_assess>> <<set $_stalker to "_friendly">> <<else>> <<set $_stalker to "">> <</if>> /* Player */ <<if _clothesJustStolen>> <<set $_pcAction to "_theft">> <<elseif $feetuse is "run">> <<if ($exposed is 1 and $uncomfortable.underwear) or ($exposed gte 2 and $uncomfortable.nude)>> <<set $_pcAction to "_run_exposed">> <<else>> <<set $_pcAction to "_run">> <</if>> <<else>> <<set $_pcAction to "">> <</if>> /* NPC and PC have reached the same tile */ <<if ($NPCList[0].distance lte 0 and !["pursuit", "chased"].includes($NPCList[0].state)) or ["hide", "ambush", "catch"].includes($stalk_end)>> <<if $stalk_end is "confront">> /* NPC goal is confront */ <<if $_stalker is "_wraith">> /* PC is never ready for the Wraith */ <img class="stalk_4" src="img/misc/stalk/caught_wraith.png"> <<elseif $feetaction is "confront" and !$_stalker.includes("_gwylan")>> /* PC Confronting NPC */ <img class="stalk_4" @src="'img/misc/stalk/confront_npc' + $_stalker + '.png'"> <<else>> /* NPC grabs PC */ <img class="stalk_4" @src="'img/misc/stalk/grabbed' + $_stalker + '.png'"> <</if>> <<elseif $stalk_end is "catch" and $_stalker isnot "_wraith">> <<if $NPCList[0].state is "pursuit">> /* PC caught up to NPC who stole clothes*/ <img class="stalk_4" @src="'img/misc/stalk/npc_theft_caught' + $_stalker + '.png'"> <<else>> /* PC caught NPC */ <<if $consensual isnot 1 and !$_stalker.includes("_gwylan")>> /* No sprites for catching non-friendly NPC normally yet */ <img class="stalk_4" @src="'img/misc/stalk/npc_theft_caught' + $_stalker + '.png'"> <<else>> <<if $_stalker.includes("_gwylan")>> <img class="stalk_4" @src="'img/misc/stalk/ambush' + $_stalker + '.png'"> <<else>> <img class="stalk_4" @src="'img/misc/stalk/npc_caught' + $_stalker + '.png'"> <</if>> <</if>> <</if>> <<elseif $stalk_end is "ambush" and $_stalker isnot "_wraith">> /* PC ambush success */ <img class="stalk_4" @src="'img/misc/stalk/ambush' + $_stalker + '.png'"> <<elseif $stalk_end>> /* NPC passing by, either because PC successfully hid or confronted an NPC who didn't intend to attack */ <<if $feetaction is "confront" or $mouthaction is "taunt">> <img class="stalk_4" src="img/misc/stalk/confront_npc_safe.png"> <<else>> <img class="stalk_4" src="img/misc/stalk/pc.png"> <</if>> <img class="stalk_5" @src="'img/misc/stalk/npc_safe' + $_stalker + '.png'"> <<else>> <<if $feetaction is "confront" and $_stalker isnot "_wraith" and !$_stalker.includes("_gwylan")>> /* NPC caught PC */ <img class="stalk_4" src="img/misc/stalk/confront_npc.png"> <<else>> /* NPC caught PC */ <<if $consensual is 1 and $_stalker isnot "_wraith" or $_stalker.includes("_gwylan")>> <<if $NPCList[0].legs is "run" or $_stalker.includes("_gwylan")>> <img class="stalk_4" @src="'img/misc/stalk/grabbed' + $_stalker + '.png'"> <<else>> <img class="stalk_4" src="'img/misc/stalk/caught_friendly.png'"> <</if>> <<else>> <img class="stalk_4" @src="'img/misc/stalk/caught' + $_stalker + '.png'"> <</if>> <</if>> <</if>> <<else>> /* Active */ <<if $NPCList[0].distance lt 4>> <<if $NPCList[0].state is "pursuit">> /* NPC running away with stolen clothes */ <<set _stalk_position to 4 + $NPCList[0].distance>> <<if $_stalker is "_wraith">> <img @class="'stalk_' + _stalk_position" @src="'img/misc/stalk/npc' + $_stalker + '.png'"> <img @class="'stalk_' + _stalk_position" src="img/misc/stalk/clothes.png"> <<else>> <img @class="'stalk_' + _stalk_position" @src="'img/misc/stalk/npc_theft' + $_stalker + '.png'"> <</if>> <<elseif $NPCList[0].state is "chased">> /* NPC ahead of player */ <<set _stalk_position to 4 + $NPCList[0].distance>> <<if $_stalker.includes("_gwylan") and $NPCList[0].distance is 0>> <<set $_skipPlayer to true>> <img @class="'stalk_' + _stalk_position" @src="'img/misc/stalk/npc_close' + $_stalker + '.png'"> <<elseif $consensual is 1 and $NPCList[0].legs is "run">> <img @class="'stalk_' + _stalk_position" @src="'img/misc/stalk/npc_run' + $_stalker + '.png'"> <<else>> <img @class="'stalk_' + _stalk_position" @src="'img/misc/stalk/npc' + $_stalker + '.png'"> <</if>> <<elseif $stalk_end is "escaped">> /* No NPC image */ <<else>> /* NPC behind player */ <<set _stalk_position to 4 - $NPCList[0].distance>> <img @class="'stalk_' + _stalk_position" @src="'img/misc/stalk/npc' + $_stalker + '.png'"> <</if>> <</if>> /* Player sprite */ <<if !$_skipPlayer>> <img class="stalk_4" @src="'img/misc/stalk/pc' + $_pcAction + '.png'"> <</if>> <</if>> </div> <</if>> <</widget>><<widget "stateman">> <div @class="($debugLines ? 'debugLines-stateman' : '')"> <<if $position isnot "stalk">> <<if $fightTargets is undefined or $fightTargets.length lte 0>> <<set $_enemies to $enemyno>> <<else>> <<set $_enemies to $fightTargets.length>> <</if>> <<set _looks to ($_enemies is 1? "looks" : "look")>> <<set _doesntlook to ($_enemies is 1? "doesn't look" : "don't look")>> <<set _is to ($_enemies is 1? "is" : "are")>> <<set $_n to 0>> <<if $enemyno is 1 and $enemynomax gt 1>> <<for $_i to 0; $_i lt $enemynomax; $_i++>> <<if $NPCList[$_i].active is "active" and $NPCList[$_i].stance isnot "defeated">> <<set $_n to $_i>> <<break>> <</if>> <</for>> <</if>> <<if ["m", "f", "i", "n", "t"].includes($NPCList[$_n].pronoun)>> <<set $pronoun to $NPCList[$_n].pronoun>> <<elseif $options.debugdisable is "f">> <span class="red">ERROR: Unexpected $$NPCList[0].pronoun: [$NPCList[0].pronoun]</span> <</if>> <<if $enemytype is "beast" and $monster is 0>> <<set $pronoun to "i">> <</if>> <<if $_enemies gt 1>> <<set $pronoun to "t">> <</if>> <<if $loveDrunk>> <span class="lustful"><<He>> _looks <<print either("love-drunk", "sinful", "crazed", "wild with lust", "rapturous")>>.</span> <<elseif $enemyhealth gte $enemyhealthmax>> <span class="red"><<He>> _looks eager.</span> <<elseif $enemyhealth gte ($enemyhealthmax / 5) * 4>> <span class="pink"><<He>> _looks uncomfortable.</span> <<elseif $enemyhealth gte ($enemyhealthmax / 5) * 3>> <span class="purple"><<He>> _looks stung.</span> <<elseif $enemyhealth gte ($enemyhealthmax / 5) * 2>> <span class="blue"><<He>> _looks pained.</span> <<elseif $enemyhealth gte ($enemyhealthmax / 5) * 1>> <span class="lblue"><<He>> _looks hurt.</span> <<elseif $enemyhealth gt 0>> <span class="teal"><<He>> _doesntlook like <<he>> can take much more pain.</span> <<elseif $enemyhealth lte 0>> <span class="green"><<He>> _is recoiling in pain.</span> <<combatcontrol 15>><<def 10>> <</if>> <<if $enemyarousal gte $enemyarousalmax>> <<if $NPCList[0].penis isnot "none" and !npcHasStrapon(0)>> <span class="red">Ejaculation imminent.</span> <<else>> <span class="red">Orgasm imminent.</span> <</if>> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 4>> <span class="pink">You think <<he>> _is approaching orgasm.</span> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 3>> <span class="purple"><<He>> _looks lustful.</span> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> <span class="blue"><<He>> _looks horny.</span> <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 1>> <span class="lblue"><<He>> _looks aroused.</span> <<elseif $enemyarousal gt 0>> <span class="teal"><<He>> _looks stimulated.</span> <<elseif $enemyarousal lte 0>> <<if $_enemies gt 1>> <span class="green"><<He>> _looks unaroused.</span> <<else>> <<if $npcSub>> <span class="green"><<He>> lies still, waiting for you.</span> <<else>> <span class="green"><<He>> is positively <<if $NPCList[0].penis isnot "none">>flaccid<<else>>dry<</if>>.</span> <</if>> <</if>> <</if>> <<if $enemyanger gte $enemyangermax>> <span class="red"><<He>> _is furious.</span> <<elseif $enemyanger gte ($enemyangermax / 5) * 4>> <span class="pink"><<He>> _looks incredibly pissed off.</span> <<elseif $enemyanger gte ($enemyangermax / 5) * 3>> <span class="purple"><<He>> _looks angry.</span> <<elseif $enemyanger gte ($enemyangermax / 5) * 2>> <span class="blue"><<He>> _looks frustrated.</span> <<elseif $enemyanger gte ($enemyangermax / 5) * 1>> <span class="lblue"><<He>> _looks irritated.</span> <<elseif $enemyanger gt 0>> <span class="teal"><<He>> _looks disappointed.</span> <<elseif $enemyanger lte 0>> <span class="green"><<He>> _looks calm.</span> <</if>> <<if $enemytrust lte -100>> <span class="red"><<He>> _looks full of suspicion.</span> <<elseif $enemytrust lte -60>> <span class="pink"><<He>> _looks guarded.</span> <<elseif $enemytrust lte -20>> <span class="purple"><<He>> _looks wary.</span> <<elseif $enemytrust lte 20>> <span class="blue"><<He>> _looks cautious.</span> <<elseif $enemytrust lte 60>> <span class="lblue"><<He>> _looks alert.</span> <<elseif $enemytrust lte 100>> <span class="teal"><<He>> _looks relaxed.</span> <<elseif $enemytrust gt 100>> <span class="green"><<He>> _looks confident.</span> <</if>> <</if>> <<if $panicviolence is 0 and $panicparalysis is 0 and $controlled is 0>> <<if $panicattacks gte 1 and _panicchecked isnot true and random(1, 100) is 100>> <<set $panicparalysis to 5>> <</if>> <<set _panicchecked to true>> <<if $panicattacks gte 2 and _paniccheckedviolence isnot true and random(1, 100) is 100>> <<set $panicviolence to 3>> <<if $position is "stalk">> <<set $feetuse to "run">> <</if>> <</if>> <<set _paniccheckedviolence to true>> <</if>> <br><br> <<if $arousal gte $arousalmax and $orgasmdown lte 0>> <<orgasm>> <</if>> <<sexcheck>> </div> <<unset $speechcamerapose>> <</widget>><<widget "combatstate">> <<if _statechecked isnot true>> <<if $gamemode is "soft">> <<set $pain to 0>> <</if>> <<wetnessCalculate>> <<if $orgasmdown gte 1>> <<set $enemyarousal += 10>> <span class="pink">Your body pulses and spasms with orgasmic waves, preventing you from acting normally.</span> <br> <<disable>> <<if $options.combatControls is "disabled" and $panicviolence lte 0 and $panicparalysis lte 0 and $trance lte 0>> <<actionsorgasm>> <</if>> <</if>> <<if $pain gte 100 and $willpowerpain is 0>> <<set $enemyarousal += 10>> <<if $possessed is true>> <<if $orgasmdown lte 0>> You can't take any more pain, <span class="red">but your body continues to fight.</span> <<trauma 12>><<ggtrauma>> <br> <</if>> <<else>> <span class="red">You are in too much pain to act normally.</span> <br> <<disable>> <<if $options.combatControls is "disabled" and $orgasmdown lte 0 and $panicviolence lte 0 and $panicparalysis lte 0 and $trance lte 0>> <<actionspain>> <</if>> <</if>> <</if>> <<if $panicviolence gte 1 and !$possessed>> <<set $enemyarousal += 10>> <<if $position is "stalk">> <span class="red">You are overcome by panic. You run, needing to be anywhere but here.</span> <<else>> <span class="red">You are stricken with panic and flail wildly at anything invading your personal space.</span> <</if>> <br> <<defiance 10>><<set $panicviolence to $panicviolence - 1>><<disable>> <</if>> <<if $panicparalysis gte 1 and !$possessed>> <<set $enemyarousal += 10>> <<if $position is "stalk">> <span class="red">You are stricken with panic. Your muscles seize up, leaving you motionless.</span> <<else>> <span class="red">You are stricken with panic. Your muscles seize up, leaving you helpless.</span> <</if>> <br> <<set $panicparalysis -= 1>><<disable>> <</if>> <<if $dissociation gte 2 and !$possessed>> <<set $enemyarousal += 10>> You feel disconnected from yourself, as if in a dream. <br> <<disable>> <<if $options.combatControls is "disabled" and $orgasmdown lte 0 and $panicviolence lte 0 and $panicparalysis lte 0 and $trance lte 0>> <<if $pain lt 100 or $willpowerpain is undefined>> <<actionsdissociation>> <</if>> <</if>> <</if>> <<if $trance gte 1>> <<set $enemyarousal += 10>> You are entranced. <br> <<disable>> <</if>> <<if $possessed is true>> <<if $orgasmdown lte 0>> Your body is not your own. <<if $rng gte 96>><span class="fading">It never was.</span><</if>> <br> <</if>> <<disable>> <<if $options.combatControls is "disabled" and $dissociation lte 1 and $orgasmdown lte 0 and $panicviolence lte 0 and $panicparalysis lte 0 and $trance lte 0>> <<actionspossessed>> <</if>> /* Updates the control caption at the top of the screen to include any control gained through the rest of the passage */ <<run $(()=>{ Dynamic.render("control-caption") })>> /* Adds the condition for ending an encounter. */ <<if $control gte $controlmax>> <<set _controlRegain to 1>> <</if>> <</if>> <<set _statechecked to true>> <</if>> <</widget>> <<widget "carryblock">> <<if $orgasmdown gte 1>> <<set $carryblock to "orgasm">> <<elseif $pain gte 100 and $willpowerpain is 0>> <<set $carryblock to "pain">> <<elseif $dissociation gte 2>> <<set $carryblock to "dissociation">> <<elseif $panicviolence gte 1>> <<set $carryblock to 1>> <<elseif $panicparalysis gte 1>> <<set $carryblock to 1>> <<elseif $trance gte 1>> <<set $carryblock to 1>> <<else>> <<set $carryblock to 0>> <</if>> <</widget>> <<widget "actioncarry">> <<if $carryblock is 0>> <<set $leftactioncarry to $leftactiondefault>> <<set $rightactioncarry to $rightactiondefault>> <<set $feetactioncarry to $feetactiondefault>> <<set $mouthactioncarry to $mouthactiondefault>> <<set $vaginaactioncarry to $vaginaactiondefault>> <<set $penisactioncarry to $penisactiondefault>> <<set $anusactioncarry to $anusactiondefault>> <<set $thighactioncarry to $thighactiondefault>> <<set $cheekactioncarry to $cheekactiondefault>> <<set $chestactioncarry to $chestactiondefault>> <<elseif $carryblock is "pain">> <<set $leftactioncarrypain to $leftactiondefault>> <<set $rightactioncarrypain to $rightactiondefault>> <<set $feetactioncarrypain to $feetactiondefault>> <<set $mouthactioncarrypain to $mouthactiondefault>> <<set $vaginaactioncarrypain to $vaginaactiondefault>> <<set $penisactioncarrypain to $penisactiondefault>> <<set $anusactioncarrypain to $anusactiondefault>> <<set $thighactioncarrypain to $thighactiondefault>> <<set $cheekactioncarrypain to $cheekactiondefault>> <<set $chestactioncarrypain to $chestactiondefault>> <<elseif $carryblock is "orgasm">> <<set $leftactioncarryorgasm to $leftactiondefault>> <<set $rightactioncarryorgasm to $rightactiondefault>> <<set $feetactioncarryorgasm to $feetactiondefault>> <<set $mouthactioncarryorgasm to $mouthactiondefault>> <<set $vaginaactioncarryorgasm to $vaginaactiondefault>> <<set $penisactioncarryorgasm to $penisactiondefault>> <<set $anusactioncarryorgasm to $anusactiondefault>> <<set $thighactioncarryorgasm to $thighactiondefault>> <<set $cheekactioncarryorgasm to $cheekactiondefault>> <<set $chestactioncarryorgasm to $chestactiondefault>> <<elseif $carryblock is "dissociation">> <<set $leftactioncarrydissociation to $leftactiondefault>> <<set $rightactioncarrydissociation to $rightactiondefault>> <<set $feetactioncarrydissociation to $feetactiondefault>> <<set $mouthactioncarrydissociation to $mouthactiondefault>> <<set $vaginaactioncarrydissociation to $vaginaactiondefault>> <<set $penisactioncarrydissociation to $penisactiondefault>> <<set $anusactioncarrydissociation to $anusactiondefault>> <<set $thighactioncarrydissociation to $thighactiondefault>> <<set $cheekactioncarrydissociation to $cheekactiondefault>> <<set $chestactioncarrydissociation to $chestactiondefault>> <</if>> <<set $carryblock to 0>> <</widget>> <<widget "actioncarrydrop">> <<if $orgasmdown gte 1>> <<set $leftactiondefault to $leftactioncarryorgasm>> <<set $rightactiondefault to $rightactioncarryorgasm>> <<set $feetactiondefault to $feetactioncarryorgasm>> <<set $mouthactiondefault to $mouthactioncarryorgasm>> <<set $vaginaactiondefault to $vaginaactioncarryorgasm>> <<set $penisactiondefault to $penisactioncarryorgasm>> <<set $anusactiondefault to $anusactioncarryorgasm>> <<set $thighactiondefault to $thighactioncarryorgasm>> <<set $cheekactiondefault to $cheekactioncarryorgasm>> <<set $chestactiondefault to $chestactioncarryorgasm>> <<elseif $pain gte 100 and $willpowerpain is 0>> <<set $leftactiondefault to $leftactioncarrypain>> <<set $rightactiondefault to $rightactioncarrypain>> <<set $feetactiondefault to $feetactioncarrypain>> <<set $mouthactiondefault to $mouthactioncarrypain>> <<set $vaginaactiondefault to $vaginaactioncarrypain>> <<set $penisactiondefault to $penisactioncarrypain>> <<set $anusactiondefault to $anusactioncarrypain>> <<set $thighactiondefault to $thighactioncarrypain>> <<set $cheekactiondefault to $cheekactioncarrypain>> <<set $chestactiondefault to $chestactioncarrypain>> <<elseif $dissociation gte 2>> <<set $leftactiondefault to $leftactioncarrydissociation>> <<set $rightactiondefault to $rightactioncarrydissociation>> <<set $feetactiondefault to $feetactioncarrydissociation>> <<set $mouthactiondefault to $mouthactioncarrydissociation>> <<set $vaginaactiondefault to $vaginaactioncarrydissociation>> <<set $penisactiondefault to $penisactioncarrydissociation>> <<set $anusactiondefault to $anusactioncarrydissociation>> <<set $thighactiondefault to $thighactioncarrydissociation>> <<set $cheekactiondefault to $cheekactioncarrydissociation>> <<set $chestactiondefault to $chestactioncarrydissociation>> <<else>> <<set $leftactiondefault to $leftactioncarry>> <<set $rightactiondefault to $rightactioncarry>> <<set $feetactiondefault to $feetactioncarry>> <<set $mouthactiondefault to $mouthactioncarry>> <<set $vaginaactiondefault to $vaginaactioncarry>> <<set $penisactiondefault to $penisactioncarry>> <<set $anusactiondefault to $anusactioncarry>> <<set $thighactiondefault to $thighactioncarry>> <<set $cheekactiondefault to $cheekactioncarry>> <<set $chestactiondefault to $chestactioncarry>> <</if>> <</widget>><<widget "combateffects">> <<if $trauma gte $traumasaved>> <<set $traumagain += ($trauma - $traumasaved)>> <</if>> <<if $trauma lte 0>> <<set $traumasaved to 0>> <<else>> <<set $traumasaved to $trauma>> <</if>> <<if $stress gte $stresssaved>> <<set $stressgain += ($stress - $stresssaved)>> <</if>> <<if $stress lte 0>> <<set $stresssaved to 0>> <<else>> <<set $stresssaved to $stress>> <</if>> <<set $enemyanger to Math.clamp($enemyanger, 0, 200)>> <</widget>> /* Use first parameter to override the output text <<alarmstate "Custom line">> */ /* Use <<alarmstate 1>> if you want to set $alarm to 0 later in the passage */ <<widget "alarmstate">> <<if $alarm is 1 and $rescue is 0>> <<if _args[0] isnot 1 and _args[1] isnot 1>> <<set $alarm to 0>> <</if>> <<if _args[0] is undefined or _args[0] is 1>> <span class="red">No one comes to your aid.</span> <<if $drugged gte 1>>The drugs inhibit you, you couldn't cry very convincingly.<</if>> <<else>> _args[0] <</if>> <br><br> <</if>> <</widget>><<widget "struggle_init">> <<set $enemytype to "struggle">> <<set $struggle to { timer: 0, creature: "lurker", number: 1, warded: 0, done: 0, enemy: {} }>> <<set $feetaction to "evade">> <<set $leftaction to "guard">> <<set $rightaction to "guard">> <<if $worn.face.type.includes("gag")>> <<set $mouthuse to "gagged">> <</if>> <<if $worn.feet.type.includes("shackle")>> <<set $leftleg to "bound">> <<set $rightleg to "bound">> <<set $feetuse to "bound">> <</if>> /*<<if playerHasStrapon() and $worn.under_lower.size isnot undefined>> <<set $playerPenisSizeBackup to $player.penissize>> <<set $player.penissize to $worn.under_lower.size>> <</if>>*/ <</widget>> <<widget "struggle_creatures">> <<set $struggle.number to _args[0]>> <<set $struggle.descriptions to ["twisting", "slimy", "chittering", "slippery", "darting", "mesmerising", "big", "small", "colourful", "dull", "jittering", "shuddering", "pulsating", "wide", "thin", "thick", "buzzing", "glistening"]>> <<for _i to 0; _i lt $struggle.number; _i++>> <<generate_struggle_creature _i _args[1]>> <</for>> <<for _part range ["mouth", "vagina", "penis", "anus", "chest"]>> <<struggle_part_init _part>> <</for>> <</widget>> <<widget "struggle_add">> <<set _i to $struggle.number>> <<set $struggle.number += _args[0]>> <<for _i to _i; _i lt $struggle.number; _i++>> <<generate_struggle_creature _i _args[1]>> <</for>> <</widget>> <<widget "generate_struggle_creature">> <<set _slot = _args[0]; _health = _args[1]; _type = _args[2] ? _args[2] : $struggle.creature >> <<set $struggle.enemy[_slot] to { location: "lurking", health: _health, satisfied: 0, name: _type, description: $struggle.descriptions.pluck(), motion: {wasp: "flying", bee: "flying", squid: "swimming"}[_type] || "jumping", legs: {wasp: "legs", bee: "legs", squid: "tentacles"}[_type] || "none" }>> <</widget>> <<widget "struggle_part_init">> <<if ["mouth", "vagina", "penis", "anus", "chest"].includes(_args[0])>> <<set $_part to _args[0]>> <<else>> <span class="error">struggle_part_init error: invalid arguments: _args</span> <</if>> <!-- reset bodypart states --> <<set $struggle[$_part] to { grip: 0, creature: 0, progress: 0, success: 0, action: 0, action_default: 0, damage: 0 }>> <<if !$struggle_start>> <!-- clean all creatures stuck to bodypart --> <<for _i to 0; _i lt $struggle.number; _i++>> <<if $struggle.enemy[_i].location is $_part>> <<set $struggle.enemy[_i].location to "fleeing">> <<if _args[1] is "cum">> <<set $struggle.enemy[_i].satisfied += 1>> <<else>> <<set $struggle.enemy[_i].health -= 1>> <</if>> <</if>> <</for>> <!-- clean hand states --> <<set $_actions to [$_part + '_strengthen', $_part + '_pull', $_part + '_spray', $_part + '_grasp', $_part + '_stroke']>> <<if $_actions.includes($leftactiondefault)>> <<if $carryblock>> <<set $leftactioncarry to "rest">> <<else>> <<set $leftactiondefault to "rest">> <</if>> <<set $leftarmstate to 0>> <<set $leftarm to 0>> <</if>> <<if $_actions.includes($rightactiondefault)>> <<if $carryblock>> <<set $rightactioncarry to "rest">> <<else>> <<set $rightactiondefault to "rest">> <</if>> <<set $rightarmstate to 0>> <<set $rightarm to 0>> <</if>> <</if>> <</widget>> <<widget "struggle_name">><<silently>> <!-- prints full description of an enemy in specified slot or location --> <<set $_loc to _args[0]>> <<if $_loc lt $struggle.number>> <!-- when _args[0] is a slot number --> <<set _fulldesc to $struggle.enemy[$_loc].description + ' ' + $struggle.enemy[$_loc].name>> <<elseif ["mouth", "vagina", "penis", "anus", "chest"].includes($_loc)>> <!-- when _args[0] is a location --> <<if $struggle[$_loc].description>> <!-- description doesn't exist in older versions --> <<set _fulldesc to $struggle[$_loc].description + ' ' + $struggle[$_loc].creature>> <<elseif $struggle[$_loc].creature>> <<for _i to 0; _i lt $struggle.number; _i++>> <<if $struggle.enemy[_i].location is $_loc>> <<set _fulldesc to $struggle.enemy[_i].description + ' ' + $struggle.enemy[_i].name>> <<set $struggle[$_loc].description to $struggle.enemy[_i].description>> <</if>> <</for>> <</if>> <</if>> <</silently>><<print _fulldesc>> <</widget>> <<widget "struggle">> <<struggle_effects>> <<struggle_enemy>> <<struggle_state>> <<struggle_actions>> <</widget>> <<widget "struggle_state">> <<for $_part range ["mouth", "vagina", "penis", "anus", "chest"]>> <<if $struggle[$_part].creature>> You have <<switch $struggle[$_part].grip>> <<case 0>><span class="red"> no </span> <<case 1>>a <span class="pink"> fragile </span> <<case 2>>a <span class="purple"> weak </span> <<case 3>>a <span class="blue"> tentative </span> <<case 4>>a <span class="lblue"> decent </span> <<case 5>>a <span class="teal"> strong </span> <<default>>an <span class="green"> iron </span> <</switch>> grip on the <<print $struggle[$_part].creature>> clutching your <<switch $_part>> <<case "mouth">> mouth. <<case "vagina">> pelvis. <<case "penis">> tummy. <<case "anus">> bottom. <<case "chest">> chest. <</switch>> <br> <</if>> <</for>> <br> <<if $arousal gte $arousalmax and $orgasmdown lte 0>> <<orgasm>> <</if>> <<set $struggle.timer += 1>> <<sexcheck>> <</widget>> <<widget "struggle_end">> /*<<if playerHasStrapon()>> <<set $player.penissize to $playerPenisSizeBackup>> <</if>>*/ <<unset $struggle>> <</widget>> <<widget "generateActionsStruggle">> <<set $combat to 1>> <<if _targetlist is undefined>> <<getTargetList>> <</if>> <<for _i to 0; _i lt $struggle.number; _i++>> <<if $struggle.enemy[_i].location is "fleeing" or $struggle.enemy[_i].location is "lurking">> The <<struggle_name _i>> keeps at a distance. <br> <<if $farm_stage gte 10 and $lurkers_held lt 1>> <<set _lurker_net_possible to true>> <</if>> <</if>> <</for>> <hr> <div id="listContainer" style="margin-bottom:0px"> <div id="leftaction" @class="$options.combatControls + 'Control'"> <<leftActionInitStruggle>> </div> <div id="rightaction" @class="$options.combatControls + 'Control'"> <<rightActionInitStruggle>> </div> <<if $dissociation lte 1 and $orgasmdown lte 0 and ($pain lt 100 or $willpowerpain is undefined)>> <div id="feetaction" @class="$options.combatControls + 'Control'"> <<feetActionInitStruggle>> </div> <</if>> </div> <<if ($mouthuse is "struggle" and $struggle.mouth.creature) or ($mouthuse is 0 and !($dissociation lte 1 and $orgasmdown lte 0 and ($pain lt 100 or $willpowerpain is undefined)))>> <hr> <div id="listContainer" style="margin-bottom:0px"> <div id="mouthaction" @class="$options.combatControls + 'Control'"> <<mouthActionInitStruggle>> </div> </div> <</if>> <<if $dissociation lte 1 and $orgasmdown lte 0 and ($pain lt 100 or $willpowerpain is undefined)>> <<if $vaginastate isnot 0 and $player.vaginaExist>> <hr> <div id="listContainer" style="margin-bottom:0px"> <div id="vaginaaction" @class="$options.combatControls + 'Control'"> <<vaginaActionInitStruggle>> </div> </div> <</if>> <<if $penisstate isnot 0 and (playerHasStrapon() or $player.penisExist)>> <hr> <div id="listContainer" style="margin-bottom:0px"> <div id="penisaction" @class="$options.combatControls + 'Control'"> <<penisActionInitStruggle>> </div> </div> <</if>> <<if $anusstate isnot 0>> <hr> <div id="listContainer" style="margin-bottom:0px"> <div id="anusaction" @class="$options.combatControls + 'Control'"> <<anusActionInitStruggle>> </div> </div> <</if>> <<if $chestuse isnot 0 and $chestuse isnot "squeezed">> <hr> <div id="listContainer" style="margin-bottom:0px"> <div id="chestaction" @class="$options.combatControls + 'Control'"> <<chestActionInitStruggle>> </div> </div> <</if>> <</if>> <</widget>> <<widget "leftActionInitStruggle">> <<set $lefttarget to "struggle">> <<switch $leftarm>> <<case 0>> <<if $orgasmdown gte 1>> <<set _leftOptions to "orgasm">> <span class="lewd">Your left arm is free, but you can't stop the spasms.</span> <<elseif $pain gte 100 and $willpowerpain is 0>> <<set _leftOptions to "pain">> <span class="red">Your left arm is free, but hurts to move.</span> <<elseif $dissociation gte 2>> <<set _leftOptions to "unreal">> <span class="pink">Your left arm is free, but doesn't feel real.</span> <<else>> <<if _targetYourself is true and _targetnumber gt 1>> <<set _targetlistarms["Yourself"] to "self">> <</if>> <<if not $options.combatControls.includes("adio") and _targetnumber gt 1>> <<targetListBox "left" _targetlistarms>> <</if>> <<set _leftOptions to "free">> <span @class="($lastOptions.left isnot _leftOptions ? 'gold' : '')">Your left arm is free.</span> <<if $options.combatControls.includes("adio") and _targetnumber gt 1>> <<targetListBox "left" _targetlistarms>> <br> <</if>> <</if>> <<if $options.combatControls is "radio">><br><</if>> <<case "struggle">> <<if $orgasmdown gte 1>> <<set _leftOptions to "orgasm">> <span class="lewd">You hold a $struggle.creature with your left arm, but you can't stop the spasms.</span> <<elseif $pain gte 100 and $willpowerpain is 0>> <<set _leftOptions to "bound">> <span class="red">You hold a $struggle.creature with your left arm, but it hurts to move.</span> <<elseif $dissociation gte 2>> <<set _leftOptions to "bound">> <span class="pink">You hold a $struggle.creature with your left arm, but it doesn't feel real.</span> <<else>> <<set _leftOptions to "struggle">> <<switch $leftarmstate>> <<case "mouth_struggle">> <span @class="($lastOptions.left isnot _leftOptions ?'gold':'')">Your left arm grips the $struggle.mouth.creature over your mouth.</span> <<case "penis_struggle">> <span @class="($lastOptions.left isnot _leftOptions ?'gold':'')">Your left arm grips the $struggle.penis.creature over your <<penis>>.</span> <<case "vagina_struggle">> <span @class="($lastOptions.left isnot _leftOptions ?'gold':'')">Your left arm grips the $struggle.vagina.creature over your <<pussy>>.</span> <<case "anus_struggle">> <span @class="($lastOptions.left isnot _leftOptions ?'gold':'')">Your left arm grips the $struggle.anus.creature over your <<bottom>>.</span> <<case "chest_struggle">> <span @class="($lastOptions.left isnot _leftOptions ?'gold':'')">Your left arm grips the $struggle.chest.creature over your chest.</span> <</switch>> <</if>> <<if $options.combatControls is "radio">><br><</if>> <<case "bound">> <<set _leftOptions to "bound">> <<if $orgasmdown gte 1>> <span class="lewd">Your left arm jerks against its bonds.</span> <<elseif $pain gte 100 and $willpowerpain is 0>> <span class="red">Your left arm is held in a painful bind.</span> <<elseif $dissociation gte 2>> <span class="pink">Your left arm lies limp in its bonds.</span> <<else>> <span @class="($lastOptions.left isnot _leftOptions ?'gold':'')">Your left arm is bound.</span> <</if>> <<if $options.combatControls is "radio">><br><</if>> <<case "trapped">> <<set $_changetype to true>><<leftActionInitVore>> <<case "grappled" "penis" "othervagina" "vagina" "coverpenis" "anus" "behind">> <<set $_changetype to true>><<leftActionInit>> <<case "swarmgrappled">> <<set $_changetype to true>><<leftActionInitSwarm>> <<case "mechgrappled">> <<set $_changetype to true>><<leftActionInitMachine>> <<default>> <<set $_changetype to true>><<leftActionInitTentacle>> <</switch>> <<if $_changetype isnot true>> <<leftActionsStruggle>> <<if Object.keys(_leftaction).length gt 0>> <<if Object.values(_leftaction).includes($leftactiondefault)>> <<set $leftaction to $leftactiondefault>> <</if>> <<generateCombatAction _leftaction "leftaction" "Struggle">> <<if $options.combatControls.includes("ists")>> <div id="leftactionDifficulty"> <<leftactionDifficulty>> </div> <</if>> <</if>> <<set $lastOptions.left to clone(_leftOptions)>> <</if>> <</widget>> <<widget "leftactionDifficultyStruggle">>/* Don't mind the blank widget. */ <!-- Does nothing --> <</widget>> <<widget "leftActionsStruggle">> <<set _leftaction to {}>> <<switch _leftOptions>> <<case "free" "struggle">> <<set _leftaction["Keep left arm still"] to "rest">> <<if _lurker_net_possible is true>> <<set _leftaction["Hurl net"] to "capture">> <</if>> <<set _leftaction["Guard"] to "guard">> <<leftclothesnew>> <<if not $options.combatControls.includes("adio")>> <<for $_part range ["mouth", "vagina", "penis", "anus", "chest"]>> <<if V[$_part + 'use'] is "struggle" and $struggle[$_part].creature>> <<set $_desc to ($leftactiondefault.includes($_part) ? '' : ' (' + $_part + ')')>> <<if $leftactiondefault.includes($_part) and $struggle[$_part].grip gte 1>> <!-- require hand on the creature before pulling or strengthening --> <<if $struggle[$_part].success lt 100>> <<set _leftaction["Strengthen your grip"] to $_part + '_strengthen'>> <</if>> <<set _leftaction["Pull"] to $_part + '_pull'>> <<elseif $struggle[$_part].success lt 100>> <<set _leftaction['Grasp' + $_desc] to $_part + '_grasp'>> <</if>> <<if $spray gte 1 and $consensual isnot 1>> <<set _leftaction['Spray' + $_desc] to $_part + '_spray'>> <</if>> <<set _leftaction['Stroke' + $_desc] to $_part + '_stroke'>> <</if>> <</for>> <</if>> <<case "bound">> <<case "orgasm">> <<set _leftaction["Fold"] to "leftfold">> <<set _leftaction["Grip"] to "leftgrip">> <<case "pain">> <<set _leftaction["Struggle"] to "leftstruggleweak">> <<set _leftaction["Protect"] to "leftprotect">> <<case "unreal">> <<set _leftaction["Poke yourself"] to "leftpoke">> <<set _leftaction["Keep your arms out of the way"] to "leftcurl">> <</switch>> <</widget>> <<widget "rightActionInitStruggle">> <<set $righttarget to "struggle">> <<switch $rightarm>> <<case 0>> <<if $orgasmdown gte 1>> <<set _rightOptions to "orgasm">> <span class="lewd">Your right arm is free, but you can't stop the spasms.</span> <<elseif $pain gte 100 and $willpowerpain is 0>> <<set _rightOptions to "pain">> <span class="red">Your right arm is free, but hurts to move.</span> <<elseif $dissociation gte 2>> <<set _rightOptions to "unreal">> <span class="pink">Your right arm is free, but doesn't feel real.</span> <<else>> <<if _targetYourself is true and _targetnumber gt 1>> <<set _targetlistarms["Yourself"] to "self">> <</if>> <<if not $options.combatControls.includes("adio") and _targetnumber gt 1>> <</if>> <<set _rightOptions to "free">> <span @class="($lastOptions.right isnot _rightOptions ?'gold':'')">Your right arm is free.</span> <<if $options.combatControls.includes("adio") and _targetnumber gt 1>> <<targetListBox "right" _targetlistarms>> <<if $options.combatControls is "radio">><br><</if>> <</if>> <</if>> <<if $options.combatControls is "radio">><br><</if>> <<case "struggle">> <<if $orgasmdown gte 1>> <<set _rightOptions to "orgasm">> <span class="lewd">You hold a $struggle.creature with your right arm, but you can't stop the spasms.</span> <<elseif $pain gte 100 and $willpowerpain is 0>> <<set _rightOptions to "bound">> <span class="red">You hold a $struggle.creature with your right arm, but it hurts to move.</span> <<elseif $dissociation gte 2>> <<set _rightOptions to "bound">> <span class="pink">You hold a $struggle.creature with your right arm, but it doesn't feel real.</span> <<else>> <<set _rightOptions to "struggle">> <<switch $rightarmstate>> <<case "mouth_struggle">> <span @class="($lastOptions.right isnot _rightOptions ?'gold':'')">Your right arm grips the $struggle.mouth.creature over your mouth.</span> <<case "penis_struggle">> <span @class="($lastOptions.right isnot _rightOptions ?'gold':'')">Your right arm grips the $struggle.penis.creature over your <<penis>>.</span> <<case "vagina_struggle">> <span @class="($lastOptions.right isnot _rightOptions ?'gold':'')">Your right arm grips the $struggle.vagina.creature over your <<pussy>>.</span> <<case "anus_struggle">> <span @class="($lastOptions.right isnot _rightOptions ?'gold':'')">Your right arm grips the $struggle.anus.creature over your <<bottom>>.</span> <<case "chest_struggle">> <span @class="($lastOptions.right isnot _rightOptions ?'gold':'')">Your right arm grips the $struggle.chest.creature over your chest.</span> <</switch>> <</if>> <<if $options.combatControls is "radio">><br><</if>> <<case "bound">> <<set _rightOptions to "bound">> <<if $orgasmdown gte 1>> <span class="lewd">Your right arm jerks against its bonds.</span> <<elseif $pain gte 100 and $willpowerpain is 0>> <span class="red">Your right arm is held in a painful bind.</span> <<elseif $dissociation gte 2>> <span class="pink">Your right arm lies limp in its bonds.</span> <<else>> <span @class="($lastOptions.right isnot _rightOptions ?'gold':'')">Your right arm is bound.</span> <</if>> <<if $options.combatControls is "radio">><br><</if>> <<case "trapped">> <<set $_changetype to true>><<rightActionInitVore>> <<case "grappled" "penis" "othervagina" "vagina" "coverpenis" "anus" "behind">> <<set $_changetype to true>><<rightActionInit>> <<case "swarmgrappled">> <<set $_changetype to true>><<rightActionInitSwarm>> <<case "mechgrappled">> <<set $_changetype to true>><<rightActionInitMachine>> <<default>> <<set $_changetype to true>><<rightActionInitTentacle>> <</switch>> <<if $_changetype isnot true>> <<rightActionsStruggle>> <<if Object.keys(_rightaction).length gt 0>> <<if Object.values(_rightaction).includes($rightactiondefault)>> <<set $rightaction to $rightactiondefault>> <</if>> <<generateCombatAction _rightaction "rightaction" "Struggle">> <<if $options.combatControls.includes("ists")>> <div id="rightactionDifficulty"> <<rightactionDifficulty>> </div> <</if>> <</if>> <<set $lastOptions.right to clone(_rightOptions)>> <</if>> <</widget>> <<widget "rightactionDifficultyStruggle">>/* It's a necessary evil. */ <!-- Does nothing. todo: investigate why combatButtonAdjustments() needs this --> <</widget>> <<widget "rightActionsStruggle">> <<set _rightaction to {}>> <<switch _rightOptions>> <<case "free" "struggle">> <<set _rightaction["Keep right arm still"] to "rest">> <<if _lurker_net_possible is true>> <<set _rightaction["Hurl net"] to "capture">> <</if>> <<set _rightaction["Guard"] to "guard">> <<rightclothesnew>> <<if not $options.combatControls.includes("adio")>> <<for $_part range ["mouth", "vagina", "penis", "anus", "chest"]>> <<if V[$_part + 'use'] is "struggle" and $struggle[$_part].creature>> <<set $_desc to ($rightactiondefault.includes($_part) ? '' : ' (' + $_part + ')')>> <<if $rightactiondefault.includes($_part) and $struggle[$_part].grip gt 0>> <!-- require hand on the creature before pulling or strengthening --> <<if $struggle[$_part].success lt 100>> <<set _rightaction["Strengthen your grip"] to $_part + '_strengthen'>> <</if>> <<set _rightaction["Pull"] to $_part + '_pull'>> <<elseif $struggle[$_part].success lt 100>> <<set _rightaction['Grasp' + $_desc] to $_part + '_grasp'>> <</if>> <<if $spray gte 1 and $consensual isnot 1>> <<set _rightaction['Spray' + $_desc] to $_part + '_spray'>> <</if>> <<set _rightaction['Stroke' + $_desc] to $_part + '_stroke'>> <</if>> <</for>> <</if>> <<case "bound">> <<case "orgasm">> <<set _rightaction["Fold"] to "rightfold">> <<set _rightaction["Grip"] to "rightgrip">> <<case "pain">> <<set _rightaction["Struggle"] to "rightstruggleweak">> <<set _rightaction["Protect"] to "rightprotect">> <<case "unreal">> <<set _rightaction["Poke yourself"] to "rightpoke">> <<set _rightaction["Keep your arms out of the way"] to "rightcurl">> <</switch>> <</widget>> <<widget "feetActionInitStruggle">> <<set $feettarget to "struggle">> <<switch $feetuse>> <<case 0>> <<if _targetYourself is true and _targetnumber gt 1>> <<set _targetlistall["Yourself"] to "self">> <</if>> <<if not $options.combatControls.includes("adio") and _targetnumber gt 1>> <<if ($leftleg is "grappled" and $rightleg is "grappled") or ($leftleg is "bound" and $rightleg is "bound")>> <<else>> <<targetListBox "feet" _targetlistall>> <</if>> <</if>> <<if $leftleg is 0 and $rightleg is 0>> <<set _feetOptions to "free">> <span @class="($lastOptions.feet isnot _feetOptions ?'gold':'')">Your feet are free.</span> <<elseif $leftleg is 0>> <<set _feetOptions to "leftfree">> <span @class="($lastOptions.feet isnot _feetOptions ?'gold':'')">Your left leg is free.</span> <<elseif $rightleg is 0>> <<set _feetOptions to "rightfree">> <span @class="($lastOptions.feet isnot _feetOptions ?'gold':'')">Your right leg is free.</span> <<elseif $leftleg is "grappled" and $rightleg is "grappled">> <<set $_changetype to true>><<feetActionInitTentacle>> <<elseif $leftleg is "bound" and $rightleg is "bound">> <<set $_changetype to true>><<feetActionInitTentacle>> <<else>> <<set _feetOptions to "free">> <span @class="($lastOptions.feet isnot _feetOptions or _feetGold is true ?'gold':'')">Your feet are free.</span> <</if>> <<if $options.combatControls.includes("adio") and _targetnumber gt 1 and _feetOptions.toLowerCase().includes("free")>> <<targetListBox "feet" _targetlistall>> <</if>> <<if _targetnumber is 1>> <<set $feettarget to _firsttarget>> <</if>> <<if $options.combatControls is "radio">><br><</if>> <<case "penis" "othervagina" "bound" "walk" "run" "strut" "none">> <<set $_changetype to true>><<feetActionInit>> <<case "mechgrappled">> <<set $_changetype to true>><<feetActionInitMachine>> <<default>> <<set $_changetype to true>><<feetActionInitTentacle>> <</switch>> <<if $_changetype isnot true>> <<feetActionsStruggle>> <<if Object.keys(_feetaction).length gt 0>> <<if !(Object.values(_feetaction).includes($feetactiondefault))>> <<set $feetactiondefault to "rest">> <</if>> <<set $feetaction to $feetactiondefault>> <<generateCombatAction _feetaction "feetaction" "Struggle">> <<if $options.combatControls.includes("ists")>> <div id="feetactionDifficulty"> <<feetactionDifficulty>> </div> <</if>> <</if>> <<set $lastOptions.feet to clone(_feetOptions)>> <</if>> <</widget>> <<widget "feetactionDifficultyStruggle">>/* "How so", you ask? */ <!-- Does nothing --> <</widget>> <<widget "feetActionsStruggle">> <<set _feetaction to {}>> <<set _feetaction["Keep still"] to "rest">> <<set _feetaction["Dodge"] to "evade">> <<set _feetaction["Plant"] to "plant">> <</widget>> <<widget "mouthActionInitStruggle">> <<if $orgasmdown gte 1>> <<mouthActionInit>> <<elseif $pain gte 100 and $willpowerpain is 0>> <<mouthActionInit>> <<elseif $dissociation gte 2>> <<mouthActionInit>> <<else>> <<set $mouthtarget to "struggle">> <<switch $mouthuse>> <<case "struggle">> <span @class="($lastOptions.mouth isnot _mouthOptions or _mouthGold is true ?'gold':'')">A <<print $struggle.mouth.creature>> clings to your face.</span> <<if $leftarmstate is "mouth_struggle" and $rightarmstate is "mouth_struggle">> You clutch it with both hands. <<elseif $leftarmstate is "mouth_struggle">> You clutch it with your left hand. <<elseif $rightarmstate is "mouth_struggle">> You clutch it with your right hand. <</if>> <<if $options.combatControls is "radio">><br><</if>> <<case "tentacle">> <<set $_changetype to true>><<mouthActionInitTentacle>> <<default>> <<set $_changetype to true>><<mouthActionInit>> <</switch>> <<if $_changetype isnot true>> <<set _mouthaction to {}>> <<if $mouthstate is "struggle" and !$worn.face.type.includes("covered") and !$worn.face.type.includes("gag")>> <<set _mouthaction["Keep closed"] to "rest">> <<set _mouthaction["Open"] to "open">> <<elseif $worn.face.type.includes("covered") or $worn.face.type.includes("gag")>> <<set _mouthaction["Rest"] to "rest">> <<elseif $mouthstate is "struggle_pen">> <<set _mouthaction["Rest"] to "rest">> <<set _mouthaction["Suck"] to "suck">> <<if $consensual isnot 1>> <<set _mouthaction["Bite"] to "bite">> <</if>> <</if>> <<if Object.keys(_mouthaction).length gt 0>> <<if !(Object.values(_mouthaction).includes($mouthactiondefault))>> <<if !["open", "suck", "bite"].includes($mouthactiondefault)>> <<set $mouthactiondefault to "rest">> <</if>> <</if>> <<set $mouthaction to $mouthactiondefault>> <<if $options.combatControls.includes("adio")>> <span>Mouth: <<generateCombatAction _mouthaction "mouthaction" "Struggle">> </span> <<else>> <<generateCombatAction _mouthaction "mouthaction" "Struggle">> <</if>> <<if $options.combatControls.includes("ists")>> <div id="mouthactionDifficulty"> <<mouthactionDifficulty>> </div> <</if>> <</if>> <<if $options.combatControls is "radio">> <<handsActionsStruggleRadio "mouth">> <</if>> <<if $options.combatControls is "columnRadio">> <<handsActionsStruggleColumnRadio "mouth">> <</if>> <<set $lastOptions.mouth to clone(_mouthOptions)>> <</if>> <</if>> <</widget>> <<widget "mouthactionDifficultyStruggle">>/* Simply put, there's a JavaScript macro that needs it. */ <!-- Does nothing --> <</widget>> <<widget "penisActionInitStruggle">> <<set $penistarget to "struggle">> <<if $dissociation lte 1 and $orgasmdown lte 0 and ($pain lt 100 or $willpowerpain is undefined)>> <<switch $penisstate>> <<case "struggle" "struggle_pen">> <span @class="(_gold_penis ? 'gold' : '')">A <<print $struggle.penis.creature>> clings to your tummy, where it threatens your <<penisSimple>>.</span> <<if $leftarmstate is "penis_struggle" and $rightarmstate is "penis_struggle">> You clutch it with both hands. <<elseif $leftarmstate is "penis_struggle">> You clutch it with your left hand. <<elseif $rightarmstate is "penis_struggle">> You clutch it with your right hand. <</if>> <<case "tentacleentrance" "tentacleimminent" "tentacle" "tentacledeep" "tentaclerub">> <<set $_changetype to true>><<penisActionInitTentacle>> <<default>> <<set $_changetype to true>><<penisActionInit>> <</switch>> <<if $_changetype isnot true and $options.combatControls is "radio">> <<handsActionsStruggleRadio penis>> <</if>> <<if $_changetype isnot true and $options.combatControls is "columnRadio">> <<handsActionsStruggleColumnRadio penis>> <</if>> <</if>> <</widget>> <<widget "vaginaActionInitStruggle">> <<set $vaginatarget to "struggle">> <<switch $vaginastate>> <<case "struggle" "struggle_pen">> <span @class="(_gold_vagina ? 'gold' : '')">A <<print $struggle.vagina.creature>> clings to your pelvis, where it threatens your pussy.</span> <<if $leftarmstate is "vagina_struggle" and $rightarmstate is "vagina_struggle">> You clutch it with both hands. <<elseif $leftarmstate is "vagina_struggle">> You clutch it with your left hand. <<elseif $rightarmstate is "vagina_struggle">> You clutch it with your right hand. <</if>> <<case "tentacleentrance" "tentacleimminent" "tentacle" "tentacledeep" "tentaclerub">> <<set $_changetype to true>><<vaginaActionInitTentacle>> <<default>> <<set $_changetype to true>><<vaginaActionInit>> <</switch>> <<if $_changetype isnot true and $options.combatControls is"radio">> <<handsActionsStruggleRadio "vagina">> <</if>> <<if $_changetype isnot true and $options.combatControls is "columnRadio">> <<handsActionsStruggleColumnRadio "vagina">> <</if>> <</widget>> <<widget "anusActionInitStruggle">> <<set $anustarget to "struggle">> <<if $bottomuse is "mouth" or $bottomuse is "penis">> <<set $_changetype to true>><<anusActionInit>> <<else>> <<switch $anusstate>> <<case "struggle" "struggle_pen">> <span @class="(_gold_anus ? 'gold' : '')">A <<print $struggle.anus.creature>> clings to your bottom.</span> <<if $leftarmstate is "anus_struggle" and $rightarmstate is "anus_struggle">> You clutch it with both hands. <<elseif $leftarmstate is "anus_struggle">> You clutch it with your left hand. <<elseif $rightarmstate is "anus_struggle">> You clutch it with your right hand. <</if>> <<case "tentacleentrance" "tentacleimminent" "tentacle" "tentacledeep" "tentaclerub">> <<set $_changetype to true>><<anusActionInitTentacle>> <<default>> <<set $_changetype to true>><<anusActionInit>> <</switch>> <</if>> <<if $_changetype isnot true and $options.combatControls is "radio">> <<handsActionsStruggleRadio "anus">> <</if>> <<if $_changetype isnot true and $options.combatControls is "columnRadio">> <<handsActionsStruggleColumnRadio "anus">> <</if>> <</widget>> <<widget "chestActionInitStruggle">> <<switch $chestuse>> <<case "struggle">> <span @class="(_gold_chest ? 'gold' : '')">A <<print $struggle.chest.creature>> clings to your chest.</span> <<if $leftarmstate is "chest_struggle" and $rightarmstate is "chest_struggle">> You clutch it with both hands. <<elseif $leftarmstate is "chest_struggle">> You clutch it with your left hand. <<elseif $rightarmstate is "chest_struggle">> You clutch it with your right hand. <</if>> <<case "tentaclerub">> <<set $_changetype to true>><<chestActionInitTentacle>> <<case "penis">> <<set $_changetype to true>><<chestActionInit>> <</switch>> <<if $_changetype isnot true and $options.combatControls is "radio">> <<handsActionsStruggleRadio "chest">> <</if>> <<if $_changetype isnot true and $options.combatControls is "columnRadio">> <<handsActionsStruggleColumnRadio "chest">> <</if>> <</widget>> <<widget "struggle_actions">> <<if !($struggle.mouth.progress gte 6 and $struggle.mouth.progress lte 14) and !$underwater>> <<oxygen 50>> <</if>> <<willpowerpain>> <<willpowerorgasm>> <<actioncarry>> <<actioncarrydrop>> <<combatstate>> <<carryblock>> <<if $trance lte 0 and $panicparalysis is 0 and $panicviolence is 0 and $options.combatControls isnot "radio_old">> <<struggle_difficulty_set>> <<if $options.combatControls.includes("adio")>> <<set $leftaction to $leftactiondefault>> <<set $rightaction to $rightactiondefault>> <</if>> <<generateActionsStruggle>> <</if>> <<if $trance lte 0 and $dissociation lte 1 and $panicparalysis is 0 and $panicviolence is 0 and $orgasmdown lte 0 and ($pain lt 100 or $willpowerpain is undefined) and $options.combatControls is "radio_old">> <<struggle_difficulty_set>> <!-- arms bound set --> <<if $leftarm is "bound" and $rightarm is "bound">> <span class="pink">Your arms are helplessly bound, leaving you defenceless.</span> <<elseif $leftarm is "grappled" and $rightarm is "grappled">> <span class="pink">Your arms are grappled, leaving you defenceless.</span> <<elseif $leftarm is "grappled" or $leftarm is "bound">> <span class="purple">Your left arm is grappled.</span> <<elseif $rightarm is "grappled" or $rightarm is "bound">> <span class="purple">Your right arm is grappled.</span> <<else>> Your arms are free. <</if>> <!-- arms line --> <<set $leftaction to $leftactiondefault>> <<if $leftarm isnot "grappled" and $leftarm isnot "bound">> <label><span class="meek">Keep left arm still</span> <<radiobutton "$leftaction" "rest" autocheck>></label> <<set _pipe to 1>> <</if>> <<set $rightaction to $rightactiondefault>> <<if $rightarm isnot "grappled" and $rightarm isnot "bound">> <<if _pipe>>| <</if>><label><span class="meek">Keep right arm still</span> <<radiobutton "$rightaction" "rest" autocheck>></label> <</if>> <<set _pipe to 0>> <br> <!-- feet line --> <<set $feetaction to $feetactiondefault>> <<if $feetuse is 0>> Your feet are free. <<set $feetaction to $feetactiondefault>> <label><span class="meek">Keep still</span> <<radiobutton "$feetaction" "rest" autocheck>></label> | <label><span class="meek">Dodge</span> <<radiobutton "$feetaction" "evade" autocheck>></label> | <label><span class="meek">Plant</span> <<radiobutton "$feetaction" "plant" autocheck>></label> <</if>> <br> <hr> <!-- attached lurkers --> <!-- mouth --> <<if $mouthuse is "struggle" and $struggle.mouth.creature>> The <<struggle_name "mouth">> clings to your face. <br> <span> Mouth: <<if $mouthstate is "struggle">> <<set $mouthaction to ($mouthactiondefault is "open" ? "open" : "rest")>> <label>Keep closed <<radiobutton "$mouthaction" "rest" autocheck>></label> | <label><span class="sub">Open</span> <<radiobutton "$mouthaction" "open" autocheck>></label> <<elseif $mouthstate is "struggle_pen">> <<if $mouthactiondefault is "suck" or ($consensual isnot 1 and $mouthactiondefault is "bite")>> <!-- all is good --> <<else>> <<set $mouthactiondefault to "rest">> <</if>> <<set $mouthaction to $mouthactiondefault>> <label>Rest <<radiobutton "$mouthaction" "rest" autocheck>></label> | <label><span class="sub">Suck</span> <<radiobutton "$mouthaction" "suck" autocheck>></label> <<if $consensual isnot 1>> | <label><span class="def">Bite</span> <<radiobutton "$mouthaction" "bite" autocheck>></label> <</if>> <</if>> </span> <<if $options.combatControls is "radio">> <br> <hr> <<handsActionsStruggleRadio "mouth">> <<elseif $options.combatControls is "columnRadio">> <<handsActionsStruggleColumnRadio "mouth">> <</if>> <</if>> <!-- the rest of it --> <<for _part range ["vagina", "penis", "anus", "chest"]>> <<if V[_part + 'use'] is "struggle">> The <<struggle_name _part>> clings to your <<struggle_region _part>><<if ["vagina", "penis"].includes(_part)>>, where it threatens your <<struggle_bodypart _part>><</if>>. <br> <<if $options.combatControls is "radio">> <<handsActionsStruggleRadio _part>> <hr> <<elseif $options.combatControls is "columnRadio">> <<handsActionsStruggleColumnRadio _part>> <</if>> <</if>> <</for>> <!-- distant lurkers --> <<set _dlurkers to []>> <<for _i to 0; _i lt $struggle.number; _i++>> <<if $struggle.enemy[_i].location is "fleeing" or $struggle.enemy[_i].location is "lurking">> <<set _dlurkers.push(_i)>> <</if>> <</for>> <<if _dlurkers.length gt 0>> The <<for _i to _dlurkers.length - 1; _i gte 0; _i-->> <<struggle_name _dlurkers[_i]>><<if _i gte 2>>, the<<elseif _i is 1>> and the<</if>> <</for>> keep<<if _dlurkers.length is 1>>s<</if>> at a distance. <<if $farm_stage gte 10 and $lurkers_held lt 1>> <<if $leftarm isnot "grappled" and $leftarm isnot "bound">> <br> Left arm: <label><span class="def">Hurl net</span> <<radiobutton "$leftaction" "capture" autocheck>></label> <</if>> <<if $rightarm isnot "grappled" and $rightarm isnot "bound">> <br> Right arm: <label><span class="def">Hurl net</span> <<radiobutton "$rightaction" "capture" autocheck>></label> <</if>> <</if>> <br> <hr> <</if>> <</if>> <br><br> <<setupMidOrgasm>> <</widget>> <<widget "handsActionsStruggleRadio">> <<set _hpart to _args[0]>> <<set V[_hpart + 'target'] to "struggle">> <<if V[_hpart + 'use'] is "struggle">> <br> <<for _hhand range ["left", "right"]>> <<if ["free", "struggle"].includes(_leftOptions)>> <<print (_hhand is "left" ? "Left" : "Right")>> arm: <<if V[_hhand + 'actiondefault'].includes(_hpart) and $struggle[_hpart].grip gte 1>> <!-- require hand on the creature before pulling or strengthening --> <<if $struggle[_hpart].success lt 100>> <label><<radiobutton `'$' + _hhand + 'action'` `_hpart + '_strengthen'` autocheck>> <span class="brat">Strengthen your grip</span></label> | <</if>> <label><<radiobutton `'$' + _hhand + 'action'` `_hpart + '_pull'` autocheck>> <span class="def">Pull</span></label> | <<elseif $struggle[_hpart].success lt 100>> <label><<radiobutton `'$' + _hhand + 'action'` `_hpart + '_grasp'` autocheck>> <span class="brat">Grasp</span></label> | <</if>> <<if $spray gte 1 and !$consensual>> <label><<radiobutton `'$' + _hhand + 'action'` `_hpart + '_spray'` autocheck>> <span class="def">Spray</span></label> | <</if>> <label><<radiobutton `'$' + _hhand + 'action'` `_hpart + '_stroke'` autocheck>> <span class="sub">Stroke it</span></label> | <</if>> <br> <</for>> <</if>> <</widget>> <<widget "handsActionsStruggleColumnRadio">> <<set _hpart to _args[0]>> <<set V[_hpart + 'target'] to "struggle">> <<if V[_hpart + 'use'] is "struggle">> <span> <<for _hhand range ["left", "right"]>> <<if ["free", "struggle"].includes(_leftOptions)>> <span><<print (_hhand is "left" ? "Left" : "Right")>> arm: </span> <<if V[_hhand + 'actiondefault'].includes(_hpart) and $struggle[_hpart].grip gte 1>> <!-- require hand on the creature before pulling or strengthening --> <<if $struggle[_hpart].success lt 100>> <label><<radiobutton `'$' + _hhand + 'action'` `_hpart + '_strengthen'` autocheck>> <span class="brat">Strengthen your grip</span></label> | <</if>> <label><<radiobutton `'$' + _hhand + 'action'` `_hpart + '_pull'` autocheck>> <span class="def">Pull</span></label> | <<elseif $struggle[_hpart].success lt 100>> <label><<radiobutton `'$' + _hhand + 'action'` `_hpart + '_grasp'` autocheck>> <span class="brat">Grasp</span></label> | <</if>> <<if $spray gte 1 and !$consensual>> <label><<radiobutton `'$' + _hhand + 'action'` `_hpart + '_spray'` autocheck>> <span class="def">Spray</span></label> | <</if>> <label><<radiobutton `'$' + _hhand + 'action'` `_hpart + '_stroke'` autocheck>> <span class="sub">Stroke it</span></label> <</if>> <br> <</for>> </span> <</if>> <</widget>> <<widget "handsActionsStruggleRadiobkp">> <<set _hpart to _args[0]>> <<set V[_hpart + 'target'] to "struggle">> <<if V[_hpart + 'use'] is "struggle">> <br> <<for _hhand range ["left", "right"]>> <<if V[_hhand + 'arm'] isnot "bound" and !(V[_hhand + 'arm'] and V[_hhand + 'arm'].includes("grappled"))>> <<print (_hhand is "left" ? "Left" : "Right")>> arm: <<if $struggle[_hpart].success lt 100>> <<if !V[_hhand + 'armstate'].includes(_hpart)>> <label><<radiobutton `'$' + _hhand + 'action'` `_hpart + '_grasp'` autocheck>> <span class="brat">Grasp</span></label> | <<else>> <label><<radiobutton `'$' + _hhand + 'action'` `_hpart + '_strengthen'` autocheck>> <span class="brat">Strengthen your grip</span></label> | <</if>> <</if>> <<if $struggle[_hpart].grip gte 1>> <label><<radiobutton `'$' + _hhand + 'action'` `_hpart + '_pull'` autocheck>> <span class="def">Pull</span></label> | <</if>> <<if $spray gte 1 and !$consensual>> <label><<radiobutton `'$' + _hhand + 'action'` `_hpart + '_spray'` autocheck>> <span class="def">Spray</span></label> | <</if>> <label><<radiobutton `'$' + _hhand + 'action'` `_hpart + '_stroke'` autocheck>> <span class="sub">Stroke it</span></label> | <</if>> <br> <</for>> <</if>> <</widget>> <<widget "struggle_effects">> <<pain -0.25>> <<if $trance gte 1 or $dissociation gte 2>> <<if $position is "stalk">> You wander in a daze, unaware of your surroundings. <<else>> You stare straight ahead, your body passive and compliant. <</if>> <</if>> <<if $underwater is 1>> <<set $underwatertime += 1>> <<if $underwatertime lte 5>> You are underwater and cannot speak. <<elseif $underwatertime lte 10>> <span class="blue">You are underwater and cannot breathe.</span> <<gstress>><<stress 1>> <<elseif $underwatertime lte 15>> <span class="purple">You are underwater and cannot breathe.</span> <<gstress>><<stress 2>> <<elseif $underwatertime lte 20>> <span class="pink">You are underwater and running out of breath.</span> <<gtrauma>><<gstress>><<stress 4>><<trauma 2>> <<else>> <span class="red">You are suffocating beneath the water.</span> <<pain 20 1>><<gtrauma>><<gstress>><<gpain>><<stress 6>><<trauma 4>> <br><br> <</if>> <</if>> <<effectspain>> <<effectsorgasm>> <<effectsdissociation>> <!-- MOUTH --> <<if $mouthaction is "rest">> <!-- nothing to do. add some flavour text maybe? --> <<elseif $mouthaction is "open" and $mouthstate is "struggle">> <<set $mouthactiondefault to "suck">> You open your mouth wide allowing it to enter. <<set _mouthOpen to true>> <<if $struggle.mouth.progress gte 1 and $struggle.mouth.progress lte 3>> <<set $struggle.mouth.progress to 4>><<submission 1>> <</if>> <<elseif $mouthaction is "suck" and $mouthstate is "struggle_pen">> You suck on the <<struggle_name mouth>>'s <<struggle_appendage mouth>><<if $struggle.mouth.progress gte 8>>, forcing it to release more sweet fluid down your throat<</if>>. <<neutral 5 "mouth">><<struggle_fluid mouth>><<purity -1>><<internalejac>><<bodyliquid "mouth" "goo">><<submission 2>> <<if $struggle.mouth.progress gt 7 and $struggle.mouth.progress lt 13>> <<set $struggle.mouth.progress += 1>> <</if>> <<elseif $mouthaction is "bite" and $mouthstate is "struggle_pen">> <<if $transformationParts.traits.fangs isnot "disabled">> <<set _rng to random(1, 5)>> <<switch _rng>> <<case 1>> You bite the <<struggle_name mouth>>'s <<struggle_appendage mouth>> with your fangs. <<case 2>> Your fangs bite deep into the <<struggle_name mouth>>'s <<struggle_skin mouth>>. <<case 3>> Your fangs rip and tear into the <<struggle_name mouth>>'s <<struggle_skin mouth>>. <<case 4>> Your fangs pierce the <<struggle_name mouth>>'s <<struggle_skin mouth>>. <<default>> Your fangs skewer the <<struggle_name mouth>>'s <<struggle_skin mouth>>. <</switch>> <span class="green">It leaps off your face.</span> <<set $mouthuse to 0>> <<set $mouthstate to 0>> <<struggle_part_init "mouth">> <<set $struggle.warded += 1>> <<defiance 2>> <<control 5>> <<struggleClearActions "mouth_">> <br> <<else>> <<set _rng to random(1, 5)>> <<switch _rng>> <<case 1>> No matter how hard you try to bite on its <<struggle_appendage mouth>>, <span class="red">it doesn't react.</span> <<case 2>> You bite, <span class="red">but your teeth fail</span> to penetrate the <<struggle_name mouth>>'s <<struggle_skin mouth>>. <<case 3>> You bite, <span class="red">but your teeth are unable to breach</span> the <<struggle_name mouth>>'s tough <<struggle_skin mouth>>. <<case 4>> You bite into the <<struggle_name mouth>>'s tough <<struggle_skin mouth>>, <span class="red">but it's not enough to provoke a reaction.</span> <<default>> You bite down, <span class="red">but your teeth can't get purchase</span> on the <<struggle_name mouth>>'s <<struggle_skin mouth>>. <</switch>> <<defiance 1>> <</if>> <</if>> <<if !$carryblock>> <<set $mouthactiondefault to ($mouthaction is "bite" ? "rest" : $mouthaction)>> <<set $mouthaction to 0>> <</if>> <!-- FEET --> <<set _grip_strength to currentSkillValue('physique') / 20 + currentSkillValue("handskill")>> <<if $feetaction is "rest">> <<unset $dodging>> You rest your legs. <<elseif $feetaction is "evade">> <<set $dodging to 1>> <<if $underwater is 1 or ["sea","lake"].includes($location)>> You relax your legs and let yourself float, ready to dodge incoming attacks. <<else>> You remain light on your feet, ready to dodge incoming attacks. <</if>> <<elseif $feetaction is "plant">> <<unset $dodging>> <<set _grip_strength += currentSkillValue("feetskill")>> <<if $underwater is 1 or ["sea","lake"].includes($location)>> You tread water, helping you steady your grip. <<else>> You plant your feet, helping you get a firm grip. <</if>> <<feetskilluse>> <</if>> <<if !$carryblock>> <<set $feetactiondefault to ($feetaction ? $feetaction : "rest")>> <<set $feetaction to 0>> <</if>> <!-- HANDS --> <<set _actionPriority = ["rest", "stroke", "grasp", "strengthen", "pull", "spray"]>> <<set _hands = [{id: "left", handaction: $leftaction},{id: "right", handaction: $rightaction}] .map(h => { let [,part, action] = /(?:([^_]+)_)?(.*)/.exec(h.handaction); return Object.assign(h, {part, action}); }).sort((a,b) => _actionPriority.indexOf(a.action) - _actionPriority.indexOf(b.action)) >> <<for _i, _handObj range _hands>> <!-- iterate once per hand, unless $leftaction is $rightaction, in which case do stuff for the other hand immediately and <<break>> --> /* <<set {id: _hand, part: _actionpart, action: _action} = _Hand>> */ <<set _hand = _handObj.id, _actionpart = _handObj.part, _action = _handObj.action>> <<set _otherHand to _hands[1-_i].id>> <<if !_action or V[_hand + "action"] is 0>><<continue>><</if>> <<if _action.includes("upper") or _action.includes("lower")>><<set _action to "clothes">><</if>> <<set _gripped to _grip_strength gte random(2000)>> <!-- _grip_strength is set above in the FEET section --> <<switch _action>> <<case "rest">> /* nothing to do */ <<case "stroke">> <<if _actionpart is "mouth">> You stroke the <<struggle_name _actionpart>>, hoping to put it at ease. <<else>> You stroke the <<struggle_name _actionpart>>'s <<struggle_appendage _actionpart>>, hoping to excite it. <<if $struggle[_actionpart].progress gt 7 and $struggle[_actionpart].progress lt (_actionpart is "chest" ? 12 : 13)>> <<set $struggle[_actionpart].progress++>> <<bodyliquid _actionpart "goo">> <<if ["vagina", "anus"].includes(_actionpart)>> <<struggle_fluid _actionpart>> <<purity -1>> <<internalejac>> <</if>> <</if>> <</if>> <br> <<neutral 5>><<submission 2>> <<set V[_hand + 'arm'] to "struggle">> <<set V[_hand + 'armstate'] to _actionpart + '_struggle'>> <<if $leftaction is $rightaction>> <<set V[_otherHand + "armstate"] to _actionpart + '_struggle'>> <<set V[_otherHand + "arm"] to "struggle">> <<submission 2>> <<break>> <</if>> <<case "grasp">> You raise your <<if $leftaction is $rightaction>>hands<<else>>_hand hand<</if>> to the <<print $struggle[_actionpart].creature>> clinging to your <<struggle_region _actionpart>>, though it's hard to find purchase. <<set V[_hand + 'arm'] to "struggle">> <<set V[_hand + 'armstate'] to _actionpart + '_struggle'>> <<set $struggle[_actionpart].grip += 1 + _gripped>> <<set V[_hand + 'action'] to _actionpart + '_strengthen'>> <<case "strengthen">> You tighten your grip on the <<print $struggle[_actionpart].creature>> clinging to your <<struggle_region _actionpart>><<if $leftaction is $rightaction>> with both hands<</if>>. <<set V[_hand + 'arm'] to "struggle">> <<set V[_hand + 'armstate'] to _actionpart + '_struggle'>> <<if _gripped>> Your grasp is <span class="teal">much better.</span> <<set $struggle[_actionpart].grip += 2>> <<else>> Your grasp is <span class="blue">a bit better.</span> <<set $struggle[_actionpart].grip += 1>> <</if>> <br> <<handskilluse>> <<if $leftaction is $rightaction and _i == 0>> <<set $struggle[_actionpart].grip += 1 + _gripped>> <<set V[_otherHand + "arm"] to "struggle">> <<set V[_otherHand + "armstate"] to _actionpart + '_struggle'>> <<break>> <</if>> <<case "pull">> <br> You dig your nails in and try to wrench the <<print $struggle[_actionpart].creature>> off your <<struggle_region _actionpart>>. <<struggle_difficulty_set>> <<if $struggle[_actionpart].success gte random(1, 100) || ($leftaction is $rightaction and $struggle[_actionpart].success gte random(1, 100))>> <span class="green">You hurl it away from you.</span> <<set V[_actionpart + 'use'] to 0>> <<set V[_actionpart + 'state'] to 0>> <<struggle_part_init _actionpart>> <<set $struggle.warded++>> <<struggleClearActions `_actionpart + '_'`>> <<else>> <!-- TODO: maybe add some skill and random checks, with possibilities (and corresponding flavour text) to retain the grip --> You can't maintain your grip, and <span class="red">your fingers pull away without the creature.</span> <<set $struggle[_actionpart].grip to 0>> <<set V[_hand + 'action'] to _actionpart + '_grasp'>> <</if>> <<if $leftaction is $rightaction>> <<break>> <</if>> <<case "spray">> <<if $spray gte 1>> You spray the <<print $struggle[_actionpart].creature>>. <span class="green">It leaps off your <<struggle_region _actionpart>>.</span> <<set $spraystat++>><<spray -1>> <<set V[_actionpart + 'use'] to 0>> <<set V[_actionpart + 'state'] to 0>> <<struggle_part_init _actionpart>> <<set $struggle.warded++>> <<struggleClearActions _actionpart>> <<effectssprayFree>> <<else>> You try to spray the <<print $struggle[_actionpart].creature>> clinging to your <<struggle_region _actionpart>>, <span class="purple">but your spray is empty!</span> <</if>> <br> <<if $leftaction is $rightaction>> <<break>> <</if>> <<case "clothes">> <<effectshandsclothes>> <br> <<if _hand is "left" and ($rightaction.toString().includes("upper") or $rightaction.toString().includes("lower"))>> <<break>> <</if>> <</switch>> <</for>> /* lose grasp on the lurkers that you have no contact with */ <<if !$carryblock>> <<for _part range ["mouth", "vagina", "penis", "anus", "chest"]>> <<if $struggle[_part].grip gt 0 and (!$leftaction or !$leftaction.includes(_part)) and (!$rightaction or !$rightaction.includes(_part))>> Switching all attention away from it, <span class="red">you lose all grasp on the <<print $struggle[_part].creature>> clutching your <<struggle_region _part>>.</span> <<set $struggle[_part].grip to 0>> <!-- reset arm state --> <<if $leftarmstate.toString().includes(_part)>> <<set $leftarmstate to 0>> <<set $leftarm to 0>> <</if>> <<if $rightarmstate.toString().includes(_part)>> <<set $rightarmstate to 0>> <<set $rightarm to 0>> <</if>> <!-- prevent attempts to strenghten what hasn't been grasped after orgasm, disassociation, etc --> <!-- pretty useless unless !$carryblock check above goes away some day --> <<if $rightactioncarry is (_part + '_strengthen')>> <<set $rightactioncarry to (_part + '_grasp')>> <</if>> <<if $leftactioncarry is (_part + '_strengthen')>> <<set $leftactioncarry to (_part + '_grasp')>> <</if>> <</if>> <</for>> <</if>> /* capture calculations should go independently */ <<if $leftaction is "capture" or $rightaction is "capture">> <<set _capture_chance to (!!($leftaction is "capture") + !!($rightaction is "capture")) * 30>> <!-- select the best target --> <<for _i to 0; _i lt $struggle.number; _i++>> <<if $struggle.enemy[_i].location is "fleeing">> <<set _capture_chance *= 2>> <<set _capture_creature to _i>> <<break>> <<elseif $struggle.enemy[_i].location is "lurking">> <<set _capture_creature to _i>> <</if>> <</for>> <<if _capture_creature isnot undefined>> <!-- do a strict check for undefined and not something else! otherwise the check will fail on 0 --> You cast your net at the <<if $struggle.enemy[_capture_creature] is "fleeing">><span class="green">recoiling </span><</if>><<print $struggle.enemy[_capture_creature].name>><<if $leftaction is $rightaction>> with both hands<</if>>. <<if $prof.net / 20 + _capture_chance gte random(100)>> <<set _succ to true>> <</if>> <<else>> You prepare to cast your net at a <<print $struggle.creature>>, <span class="pink">but they're too close.</span> You'll have to drive one back first. <</if>> <<if _succ>> <span class="green">The net lands true.</span> You pull the creature into your possession. <<if $struggle.enemy[_capture_creature].name is "lurker">> <<set $lurkers_held += 1>> <<set $stat_lurkers_captured += 1>> <</if>> <<set $struggle.done += 1>> <<set $struggle.enemy[_capture_creature].location to "fled">> <<if $leftaction is "capture">> <<set $leftaction to "rest">> <</if>> <<if $rightaction is "capture">> <<set $rightaction to "rest">> <</if>> <<else>> <span class="red">The creature squirms aside.</span><<gnet>><<prof net 1>> <</if>> <</if>> <<if $leftaction is "guard" and $rightaction is "guard">> You raise both arms, preparing to bat away any attacks. <<set $left_guard to 1>> <<set $right_guard to 1>> <<elseif $leftaction is "guard">> You raise your left arm, preparing to bat away any attacks. <<set $left_guard to 1>> <<elseif $rightaction is "guard">> You raise your right arm, preparing to bat away any attacks. <<set $right_guard to 1>> <</if>> <<if !$carryblock>> <<set $leftactiondefault to ($leftaction ? $leftaction : "rest"); $leftaction to 0>> <<set $rightactiondefault to ($rightaction ? $rightaction : "rest"); $rightaction to 0>> <</if>> <br> <</widget>> <<widget "struggle_enemy">> <<if $struggle.mouth.creature>> <<switch $struggle.mouth.progress>> <<case 0>> <<if $struggle.mouth.legs is "tentacles">> The <<print $struggle.mouth.creature>>'s tentacles wrap around your neck.<<neutral 2>> <<elseif $worn.face.type.includes("covered") or $worn.face.type.includes("gag")>> The <<print $struggle.mouth.creature>>'s <<struggle_appendage mouth>> rubs against your $worn.face.name.<<neutral 1>> <<else>> The <<print $struggle.mouth.creature>>'s <<struggle_appendage mouth>> rubs against your face.<<neutral 1>> <</if>> <<case 1>> <<if $worn.face.type.includes("covered") or $worn.face.type.includes("gag")>> The <<print $struggle.mouth.creature>> plays with your $worn.face.name, <span class="blue">searching for a way in.</span><<neutral 2 "mouth">> /*<<struggle_clothes mouth>>*/ <<else>> The <<print $struggle.mouth.creature>> plays with your lips, <span class="blue">searching for a way in.</span><<neutral 2 "mouth">> <</if>> <<case 2>> <<struggle_clothes mouth>> /*The <<print $struggle.mouth.creature>>'s <<struggle_appendage mouth>> <span class="purple">pushes against your lips.</span><<neutral 4 "mouth">>*/ <<case 3>> The tip of the <<print $struggle.mouth.creature>>'s <<struggle_appendage mouth>> begins to part your lips. <span class="pink">It's about to penetrate fully.</span><<neutral 5 "mouth">> <<case 4>> <<if $player.virginity.oral isnot true>> The <<print $struggle.mouth.creature>> <span class="pink"><<print (_mouthOpen ?'slides':'forces')>> its <<struggle_appendage mouth>> into your mouth</span>. It becomes girthier as more enters. <<submission 10>> <<else>> The <<print $struggle.mouth.creature>> <span class="pink"><<print (_mouthOpen ?'slides':'forces')>> its <<struggle_appendage mouth>> into your mouth</span>. <span class="red">It tastes strange.</span> <<submission 30>><<takeVirginity $struggle.mouth.creature "oral">> <</if>> <<if $consensual isnot 1>><<bruise face>><<violence 1>><<raped>><</if>> <<oralstat>><<neutral 5 "mouth">><<set $mouthstate to "struggle_pen">><<set $mouthaction to 0>> <<case 5>> The <<print $struggle.mouth.creature>> pushes itself deeper into your mouth.<<neutral 5 "mouth">> <<case 6>> The <<print $struggle.mouth.creature>>'s <<struggle_appendage mouth>> pushes down your throat. <<if $underwater isnot 1>><span class="purple">You can't breathe!</span><</if>><<neutral 5 "mouth">> <<case 7>> The <<print $struggle.mouth.creature>> <span class="pink">shudders as it begins to pump a sweet fluid down your throat.</span><<neutral 5 "mouth">><<struggle_fluid mouth>><<purity -1>><<internalejac>><<bodyliquid "mouth" "goo">><<oralejacstat>><<ejacstat>> <<case 13>> <<if $struggle.creature is "lurker">> <<impregnateParasite "Lurker" 400>><<fertiliseParasites>> <<if _impreg is true>> The <<print $struggle.mouth.creature>>'s <<struggle_appendage mouth>> <span class="red">expands again</span>, but the extra pressure disappears quickly. It feels like it left something behind. <<neutral 5 "mouth">><<struggle_fluid mouth>><<purity -1>><<internalejac>><<bodyliquid "mouth" "goo">> <<else>> <<set _failedImpreg to true>> <</if>> <<set _impreg to false>> <<else>> <<set _failedImpreg to true>> <</if>> <<if _failedImpreg>> The <<print $struggle.mouth.creature>> pumps a sweet fluid down your throat.<<neutral 5 "mouth">><<struggle_fluid mouth>><<purity -1>><<internalejac>><<bodyliquid "mouth" "goo">> <</if>> <<case 14>> The <<print $struggle.mouth.creature>> shudders, <span class="blue">and withdraws its <<struggle_appendage mouth>> from your throat.</span> It leaps from your face.<<neutral 5 "mouth">><<struggle_fluid mouth>> <<set $mouthuse to 0>> <<set $mouthstate to 0>> <<struggle_part_init "mouth" "cum">> <<default>> The <<print $struggle.mouth.creature>> pumps a sweet fluid down your throat.<<neutral 5 "mouth">><<struggle_fluid mouth>><<purity -1>><<internalejac>><<bodyliquid "mouth" "goo">> <</switch>> <<if $struggle.mouth.progress gte 6 and $struggle.mouth.progress lte 14>> <<if $underwater isnot 1>> <<oxygen -150>> <</if>> <<if $oxygen gte 900>> <!-- TODO: maybe add something here? --> <<elseif $oxygen gte 600>> <<elseif $oxygen gte 300>> <<elseif $oxygen gte 1>> <<else>> <<violence 15>> <</if>> <</if>> <<set $struggle.mouth.progress += 1>> <br> <</if>> <<if $struggle.vagina.creature>> <<switch $struggle.vagina.progress>> <<case 0>> <<if $struggle.vagina.legs is "tentacles">> The <<print $struggle.vagina.creature>>'s tentacles grope and cling to your pelvis.<<neutral 2 "genitals">> <<else>> The <<print $struggle.vagina.creature>>'s <<struggle_appendage vagina>> prods your pelvis, as if searching for something.<<neutral 1 "genitals">> <</if>> <<case 1>> The <<print $struggle.vagina.creature>> slides over your labia, <span class="blue">searching for a way in.</span><<neutral 2 "genitals">> <<case 2>> <<struggle_clothes vagina>> <<case 3>> The tip of the <<print $struggle.vagina.creature>>'s <<struggle_appendage vagina>> pushes against your <<pussy>>. <span class="pink">It's about to penetrate fully.</span><<neutral 5 "genitals">> <<case 4>> <<set _pain to $vaginalPain>> <<if $player.virginity.vaginal isnot true>> The <<print $struggle.vagina.creature>> <span class="pink">forces its <<struggle_appendage vagina>> into your <<pussy>>.</span> It becomes girthier as more enters. <<sex 30 "genitals">> <<else>> The <<print $struggle.vagina.creature>> <span class="pink">forces its <<struggle_appendage vagina>> into your <<pussy>>,</span> <<if $sexStats.vagina.pregnancy.totalBirthEvents gt 0>> <span class="red">despite your lack of a hymen, you feel something inside you change as your virginity and purity are taken.</span> <<else>> <span class="red">breaking your hymen and forever robbing you of your purity.</span> <</if>> <<sex 100 "genitals">><<takeVirginity $struggle.vagina.creature "vaginal">> <</if>> <<if $consensual isnot 1>><<bruise vagina>><<violence 2>><<pain _pain>><</if>> <<raped>><<vaginaraped>> <<vaginalstat>><<set $vaginastate to "struggle_pen">><<neutral 5 "genitals">> <<case 5>> The <<print $struggle.vagina.creature>> pushes itself deeper into your <<pussy>>.<<neutral 5 "genitals">> <<case 6>> The <<print $struggle.vagina.creature>>'s <<struggle_appendage vagina>> begins to thrust into your <<pussy>>.<<neutral 5 "genitals">> <<case 7>> The <<print $struggle.vagina.creature>> <span class="pink">shudders and pumps a warm fluid into your <<pussy>>.</span><<neutral 5 "genitals">><<struggle_fluid vagina>><<purity -1>><<internalejac>><<bodyliquid "vagina" "goo">><<vaginalejacstat>><<ejacstat>> <<case 13>> <<impregnateParasite $struggle.vagina.creature 50 "vagina">> <<if _impreg is true>> The <<print $struggle.vagina.creature>>'s <<struggle_appendage mouth>> <span class="red">expands again</span>, but the extra pressure disappears quickly. It feels like it left something behind.<<neutral 5 "genitals">><<bodyliquid "vagina" "goo">><<struggle_fluid vagina>><<purity -1>><<internalejac>><<bodyliquid "vagina" "goo">> <<set _impreg to false>> <<else>> The <<print $struggle.vagina.creature>>'s <<struggle_appendage vagina>> thrusts into your <<pussy>>.<<neutral 5 "genitals">><<bodyliquid "vagina" "goo">><<struggle_fluid vagina>><<purity -1>><<internalejac>><<bodyliquid "vagina" "goo">> <</if>> <<case 14>> The <<print $struggle.vagina.creature>> shudders, <span class="blue">and withdraws its <<struggle_appendage vagina>> from your <<pussy>>.</span> It leaps from your pelvis.<<neutral 5 "genitals">><<struggle_fluid vagina>> <<set $vaginause to 0>> <<set $vaginastate to 0>> <<struggle_part_init "vagina" "cum">> <<default>> The <<print $struggle.vagina.creature>> pumps a warm fluid into your <<pussy>>.<<neutral 5 "genitals">><<struggle_fluid vagina>><<purity -1>><<internalejac>><<bodyliquid "vagina" "goo">> <</switch>> <<set $struggle.vagina.progress += 1>> <br> <</if>> <<if $struggle.penis.creature>> <<switch $struggle.penis.progress>> <<case 0>> <<if $struggle.penis.legs is "tentacles">> The <<print $struggle.penis.creature>> lowers itself towards your <<penis>> as its tentacles slide and grope.<<neutral 2 "genitals">> <<else>> The <<print $struggle.penis.creature>> lowers itself towards your <<penis>>.<<neutral 1 "genitals">> <</if>> <<case 1>> The <<print $struggle.penis.creature>> presses against your <<penis>>, <span class="blue">trying to envelop.</span><<neutral 2 "genitals">> <<case 2>> <<struggle_clothes penis>> <<case 3>> The <<print $struggle.penis.creature>> pushes against your <<penis>>. <span class="pink">It's about to envelop you fully.</span><<neutral 5 "genitals">> <<case 4>> <<set _pain to $penisPain>> <<if playerHasStrapon() or $player.virginity.penile isnot true>> The <<print $struggle.penis.creature>> <span class="pink">forces your <<penis>> inside its body.</span> It becomes tighter as more enters. <<sex 30 "genitals">> <<else>> The <<print $struggle.penis.creature>> <span class="pink">forces your <<penis>> into its body,</span> <span class="red">separating your foreskin from your glans and forever robbing you of your purity.</span> <<sex 100 "genitals">><<takeVirginity $struggle.penis.creature "penile">><<penisraped>><<raped>><<penilestat>> <</if>> <<if playerHasStrapon()>><<violence 2 1 1 0>> <<elseif $consensual isnot 1>><<bruise penis>><<violence 2>><<pain _pain>><</if>> <<neutral 5 "genitals">><<set $penisstate to "struggle_pen">> <<case 5>> The <<print $struggle.penis.creature>> takes your <<penis>> deeper inside.<<neutral 5 "genitals">> <<case 6>> The <<print $struggle.penis.creature>> begins to thrust against your <<penis>>.<<neutral 5 "genitals">> <<case 7>> The <<print $struggle.penis.creature>> <span class="pink">shudders as your <<penis>> thrusts against its core.</span><<neutral 5 "genitals">><<bodyliquid "penis" "goo">> <<case 14>> The <<print $struggle.penis.creature>> shudders, <span class="blue">and releases your <<penis>>.</span> It leaps from your tummy.<<neutral 5 "genitals">> <<set $penisuse to 0>> <<set $penisstate to 0>> <<struggle_part_init "penis" "cum">> <<default>> The <<print $struggle.penis.creature>> thrusts against your <<penis>>.<<neutral 5 "genitals">><<bodyliquid "penis" "goo">> <</switch>> <<set $struggle.penis.progress += 1>> <br> <</if>> <<if $struggle.anus.creature>> <<switch $struggle.anus.progress>> <<case 0>> <<if $struggle.anus.legs is "tentacles">> The <<print $struggle.anus.creature>>'s tentacles slide and grope over your <<bottom>>.<<neutral 2 "anus">> <<else>> The <<print $struggle.anus.creature>>'s <<struggle_appendage anus>> slides over your <<bottom>>.<<neutral 1 "anus">> <</if>> <<case 1>> The <<print $struggle.anus.creature>>'s <<struggle_appendage anus>> gropes your <<bottom>>, <span class="blue">trying to find an entrance.</span><<neutral 2 "anus">> <<case 2>> <<struggle_clothes anus>> <<case 3>> The <<print $struggle.anus.creature>>'s <<struggle_appendage anus>> pushes against your <<bottom>>, <span class="pink">about to penetrate you fully.</span><<neutral 5 "anus">> <<case 4>> <<set _pain to $analPain>> <<if $player.virginity.anal isnot true>> The <<print $struggle.anus.creature>>'s <<struggle_appendage anus>> <span class="pink">thrusts into your <<bottom>>.</span> It becomes girthier as more enters. <<sex 30 "anus">> <<else>> The <<print $struggle.anus.creature>>'s <<struggle_appendage anus>> <span class="pink">thrusts into your <<bottom>>,</span> <span class="red">violating you in a way you hadn't conceived of.</span> <<sex 100 "anus">><<takeVirginity $struggle.anus.creature "anal">> <</if>> <<if $consensual isnot 1>><<bruise anus>><<violence 2>><</if>> <<raped>><<anusraped>> <<analstat>><<neutral 5 "anus">><<pain _pain>><<set $anusstate to "struggle_pen">> <<case 5>> The <<print $struggle.anus.creature>>'s <<struggle_appendage anus>> pushes deeper into your <<bottom>>.<<neutral 5 "anus">> <<case 6>> The <<print $struggle.anus.creature>>'s <<struggle_appendage anus>> begins to thrust into your <<bottom>>.<<neutral 5 "anus">> <<case 7>> The <<print $struggle.anus.creature>> <span class="pink">shudders as it pumps a warm fluid into your <<bottom>>.</span><<neutral 5 "anus">><<struggle_fluid anus>><<purity -1>><<internalejac>><<bodyliquid "anus" "goo">><<analejacstat>><<ejacstat>> <<case 13>> <<impregnateParasite $struggle.anus.creature 50>> <<if _impreg is true>> The <<print $struggle.anus.creature>>'s <<struggle_appendage mouth>> <span class="red">expands again</span>, but the extra pressure disappears quickly. It feels like it left something behind.<<neutral 5 "anus">><<bodyliquid "anus" "goo">><<struggle_fluid anus>><<purity -1>><<internalejac>><<bodyliquid "anus" "goo">> <<set _impreg to false>> <<else>> The <<print $struggle.anus.creature>>'s <<struggle_appendage anus>> thrusts into your <<bottom>>.<<neutral 5 "anus">><<bodyliquid "anus" "goo">><<struggle_fluid anus>><<purity -1>><<internalejac>><<bodyliquid "anus" "goo">> <</if>> <<case 14>> The <<print $struggle.anus.creature>> shudders <span class="blue">and withdraws its <<struggle_appendage anus>>,</span> leaping from your <<bottom>>.<<neutral 5 "anus">><<struggle_fluid anus>> <<set $anususe to 0>> <<set $anusstate to 0>> <<struggle_part_init "anus" "cum">> <<default>> The <<print $struggle.anus.creature>>'s <<struggle_appendage anus>> thrusts into your <<bottom>>.<<neutral 5 "anus">><<bodyliquid "anus" "goo">><<struggle_fluid anus>><<purity -1>><<internalejac>><<bodyliquid "anus" "goo">> <</switch>> <<set $struggle.anus.progress += 1>> <br> <</if>> <<if $struggle.chest.creature>> <<switch $struggle.chest.progress>> <<case 0>> <<neutral 2 "breasts">> <<if $struggle.chest.legs is "tentacles">> The <<print $struggle.chest.creature>>'s tentacles grope your <<breasts>>, <<if $player.breastsize gte 3>> squeezing them together as <span class="blue">a phallic <<struggle_appendage chest>> rubs against them.</span> <<else>> teasing them as <span class="blue">a phallic <<struggle_appendage chest>> rubs between them.</span> <</if>> <<elseif $struggle.chest.legs is "legs">> The <<print $struggle.chest.creature>>'s legs grope your <<if $player.breastsize gte 3>> <<breasts>>. <span class="blue">A phallic <<struggle_appendage chest>> emerges from the creature,</span> and rubs against them. <<else>> <<breasts>>, teasing them as <span class="blue">a phallic <<struggle_appendage chest>> emerges from the creature,</span> and joins the flurry. <</if>> <<else>> The <<print $struggle.chest.creature>>'s body slides over your <<breasts>>. <<if $player.breastsize gte 3>> <span class="blue">A phallic <<struggle_appendage chest>> emerges from the creature</span> and rubs against them. <<else>> It teases them as <span class="blue">a phallic <<struggle_appendage chest>> emerges from the creature.</span> <</if>> <</if>> <<case 1>> <<struggle_clothes chest>> <<case 2>> <<if $player.breastsize gte 3>> <<if $struggle.chest.legs is "tentacles">> The <<print $struggle.chest.creature>>'s tentacles <span class="pink">wrap around your breasts.</span><<neutral 5 "breasts">> <<else>> The <<print $struggle.chest.creature>> squeezes your <<breasts>> together and <span class="pink">pushes its <<struggle_appendage chest>> between them.</span><<neutral 3 "breasts">> <</if>> <<else>> <<if $struggle.chest.legs is "tentacles">> The <<print $struggle.chest.creature>>'s tentacles grope and flick your <<breasts>>.<<neutral 5 "breasts">> <<else>> The <<print $struggle.chest.creature>> gropes and teases your <<breasts>>.<<neutral 3 "breasts">> <</if>> <</if>> <<if $lactating is 1 and $settings.breastFeedingEnabled and $milk_amount gte 1>> <span class="pink">You feel milk leak from your buds.</span> <<breastfeed>> <<milkvolume 1>> <<else>> <<milkvolume 1>> <</if>> <<case 3>> <<if $player.breastsize gte 3>> <<if $struggle.chest.legs is "tentacles">> <<if $lactating is 1 and $settings.breastFeedingEnabled and $milk_amount gte 1>> The <<print $struggle.chest.creature>>'s tentacles <span class="pink">squeeze milk from your <<breasts>>.</span> <<breastfeed>> <<else>> The <<print $struggle.chest.creature>>'s tentacles squeeze your <<breasts>>, while others flick your nipples. <<milkvolume 1>> <</if>> <<sex 5 "breasts">> <<else>> <<if $lactating is 1 and $settings.breastFeedingEnabled and $milk_amount gte 1>> The <<print $struggle.chest.creature>> <span class="pink">thrusts its <<struggle_appendage chest>> between your <<breasts>></span> as <span class="pink">milk leaks from your buds.</span> <<breastfeed>> <<else>> The <<print $struggle.chest.creature>> <span class="pink">thrusts its <<struggle_appendage chest>> between your <<breasts>>.</span> <<milkvolume 1>> <</if>> <<sex 5 "breasts">> <</if>> <<else>> <<struggle_flat_chest>> <</if>> <<case 4>> <<if $player.breastsize gte 3>> <<if $struggle.chest.legs is "tentacles">> <<if $lactating is 1 and $settings.breastFeedingEnabled and $milk_amount gte 1>> The <<print $struggle.chest.creature>>'s appendage <span class="pink">presses against your <<breasts>></span> as <span class="pink">the tentacles continue to squeeze milk from your buds.</span> <<breastfeed>> <<else>> The <<print $struggle.chest.creature>>'s appendage <span class="pink">presses against your <<breasts>></span> as <span class="pink">the tentacles continue to squeeze.</span> <<milkvolume 1>> <</if>> <<sex 5 "breasts">> <<else>> <<if $lactating is 1 and $settings.breastFeedingEnabled and $milk_amount gte 1>> The <<print $struggle.chest.creature>> fucks your <<breasts>> as <span class="pink">milk leaks from your buds.</span> The creature shudders as <span class="purple">a warm fluid erupts from its <<struggle_appendage chest>>.</span> <<breastfeed>> <<else>> The <<print $struggle.chest.creature>>'s <<struggle_appendage chest>> fucks your <<breasts>>. The creature shudders as <span class="purple">a warm fluid erupts from its <<struggle_appendage chest>>.</span> <<milkvolume 1>> <</if>> <<sex 5 "breasts">><<bodyliquid "chest" "goo">> <</if>> <<else>> <<struggle_flat_chest>> <</if>> <<case 5>> <<if $player.breastsize gte 3>> <<if $struggle.chest.legs is "tentacles">> <<if $lactating is 1 and $settings.breastFeedingEnabled and $milk_amount gte 1>> The <<print $struggle.chest.creature>>'s appendage <span class="pink">thrusts between your <<breasts>></span> as <span class="pink">the tentacles continue to squeeze milk from your buds.</span> <<breastfeed>> <<else>> The <<print $struggle.chest.creature>>'s appendage <span class="pink">thrusts between your <<breasts>></span> as <span class="pink">the tentacles continue to squeeze.</span> <<milkvolume 1>> <</if>> <<sex 5 "breasts">> <<else>> <<if $lactating is 1 and $settings.breastFeedingEnabled and $milk_amount gte 1>> The <<print $struggle.chest.creature>>'s <<struggle_appendage chest>> fucks your <<breasts>>, pumping warm fluid with each thrust as <span class="pink">milk leaks from your buds.</span> <<breastfeed>> <<else>> The <<print $struggle.chest.creature>>'s <<struggle_appendage chest>> keeps thrusting between your <<breasts>>, pumping out a warm fluid. <<milkvolume 1>> <</if>> <<sex 5 "breasts">><<bodyliquid "chest" "goo">> <</if>> <<else>> <<struggle_flat_chest>> <</if>> <<case 6>> <<if $player.breastsize gte 3>> <<if $struggle.chest.legs is "tentacles">> <<if $lactating is 1 and $settings.breastFeedingEnabled and $milk_amount gte 1>> The <<print $struggle.chest.creature>>'s appendage fucks your <<breasts>> as <span class="pink">the tentacles continue to squeeze milk from your buds.</span> The creature shudders as a warm fluid erupts from its <<struggle_appendage chest>>. <<breastfeed>> <<else>> The <<print $struggle.chest.creature>>'s appendage fucks your <<breasts>> as <span class="pink">the tentacles continue to squeeze.</span> The creature shudders as a warm fluid erupts from its <<struggle_appendage chest>>. <<milkvolume 1>> <</if>> <<sex 5 "breasts">><<bodyliquid "chest" "goo">> <<else>> <<if $lactating is 1 and $settings.breastFeedingEnabled and $milk_amount gte 1>> The <<print $struggle.chest.creature>>'s <<struggle_appendage chest>> fucks your <<breasts>>, pumping warm fluid with each thrust as <span class="pink">milk leaks from your buds.</span> <<breastfeed>> <<else>> The <<print $struggle.chest.creature>>'s <<struggle_appendage chest>> keeps thrusting between your <<breasts>>, pumping out a warm fluid. <<milkvolume 1>> <</if>> <<sex 5 "breasts">><<bodyliquid "chest" "goo">> <</if>> <<else>> <<struggle_flat_chest>> <</if>> <<case 12>> <<if $player.breastsize gte 3>> The <<print $struggle.chest.creature>> shudders <span class="blue">and withdraws its <<struggle_appendage chest>>,</span> leaping from your <<breasts>>.<<bodyliquid "chest" "goo">> <<else>> The <<print $struggle.chest.creature>> <span class="blue">leaps from your <<breasts>>.</span> <</if>> <<set $chestuse to 0>> <<set $cheststate to 0>> <<struggle_part_init "chest" "cum">> <<default>> <<if $player.breastsize gte 3>> <<if $struggle.chest.legs is "tentacles">> <<if $lactating is 1 and $settings.breastFeedingEnabled and $milk_amount gte 1>> The <<print $struggle.chest.creature>>'s appendage keeps thrusting between your <<breasts>>, pumping a warm fluid as the tentacles <span class="pink">continue to squeeze milk from your buds.</span> <<breastfeed>> <<else>> The <<print $struggle.chest.creature>>'s appendage keeps thrusting between your <<breasts>>, pumping out a warm fluid. <<milkvolume 1>> <</if>> <<sex 5 "breasts">><<bodyliquid "chest" "goo">> <<else>> <<if $lactating is 1 and $settings.breastFeedingEnabled and $milk_amount gte 1>> The <<print $struggle.chest.creature>>'s <<struggle_appendage chest>> fucks your <<breasts>>, pumping warm fluid with each thrust as <span class="pink">milk leaks from your buds.</span> <<breastfeed>> <<else>> The <<print $struggle.chest.creature>>'s <<struggle_appendage chest>> keeps thrusting between your <<breasts>>, pumping out a warm fluid. <<milkvolume 1>> <</if>> <<sex 5 "breasts">><<bodyliquid "chest" "goo">> <</if>> <<else>> <<struggle_flat_chest>> <</if>> <</switch>> <<set $struggle.chest.progress += 1>> <br> <</if>> <!-- populate an array of unoccupied bodyparts to target --> <<set _targets to []>> <<if $mouthuse is 0>><<set _targets.push("mouth")>><</if>> <<if $vaginause is 0 and $player.vaginaExist>><<set _targets.push("vagina")>><</if>> <<if $penisuse is 0 and (playerHasStrapon() or $player.penisExist)>><<set _targets.push("penis")>><</if>> <<if $anususe is 0 and $settings.analEnabled>><<set _targets.push("anus")>><</if>> <<if $chestuse is 0>><<set _targets.push("chest")>><</if>> <<for _i to 0; _i lt $struggle.number; _i++>> <<if $struggle.enemy[_i].location is "fleeing">> The <<print $struggle.enemy[_i].description>> <<print $struggle.enemy[_i].name>> <<if $struggle.enemy[_i].health gte 1 and $struggle.enemy[_i].satisfied lt 1>> <<if $underwater is 1 or $struggle.enemy[_i].motion is "swimming">> swims around you, <<elseif $struggle.enemy[_i].motion is "flying">> flies around you, <<else>> lands nearby, <</if>> <span class="blue">preparing to attack.</span> <<set $struggle.enemy[_i].location to "lurking">> <<else>> <<if $underwater is 1 or $struggle.enemy[_i].motion is "swimming">> swims into the murk. <<elseif $struggle.enemy[_i].motion is "flying">> flies away. <<else>> leaps away. <</if>> <span class="green">It won't return.</span> <<set $struggle.done += 1>> <<set $struggle.enemy[_i].location to "fled">> <</if>> <br> <<elseif $struggle.enemy[_i].location is "lurking" and _targets.length gt 0>> <!-- lurkers attacc --> <<rng>> <<if $dodging gte 1>> <<set _doge_chance to ((currentSkillValue("feetskill") / 3) + (currentSkillValue('danceskill') / 3) - $drunk - (!!$worn.feet.type.includes("heels") * 200))>> <<feetskilluse>> <</if>> <<if $left_guard is 1>> <<set _left_guard_chance to (currentSkillValue("handskill") / 3)>> <<handskilluse>> <</if>> <<if $right_guard is 1>> <<set _right_guard_chance to (currentSkillValue("handskill") / 3)>> <<handskilluse>> <</if>> <<set _hit_chance to random(1, 1000)>> <<if _doge_chance gte _hit_chance>> <<struggle_bide_the>> <<print $struggle.enemy[_i].description>> <<print $struggle.enemy[_i].name>> <<if $underwater is 1 or $struggle.enemy[_i].motion is "swimming">> swims towards you, <<elseif $struggle.enemy[_i].motion is "flying">> flies towards you, <<else>> leaps towards you, <</if>> <<set $dodging -= 1>> <<if $drunk gte 60>> but you drunkenly stagger out of the way<<if !random(100)>> like the drunk master you are<</if>>, <<elseif currentSkillValue("feetskill") gte 800 or currentSkillValue('danceskill') gte 400>> but you dance aside, <<elseif currentSkillValue("feetskill") gte 200>> but you step aside, <<else>> but you stumble aside, <</if>> <<if _doge_chance - _hit_chance gte 200>> <span class="green">dodging it.</span> <<else>> <span class="teal">narrowly dodging it.</span> <<for $_slot range setup.clothingLayer.torso>> <<if $worn[$_slot].name isnot "naked">> <<set $worn[$_slot].integrity -= random(10, 15)>> <<set _clothesdamaged to true>> It tears your $worn[$_slot].name as it passes. <<break>> <</if>> <</for>> <<if !_clothesdamaged>> It whips you as it passes. <<pain 2>> <</if>> <<neutral 2>> <</if>> <<elseif _left_guard_chance gte _hit_chance or _right_guard_chance gte _hit_chance>> <<struggle_bide_the>> <<print $struggle.enemy[_i].description>> <<print $struggle.enemy[_i].name>> <<if $underwater is 1 or $struggle.enemy[_i].motion is "swimming">> swims towards you, <<elseif $struggle.enemy[_i].motion is "flying">> flies towards you, <<else>> leaps towards you, <</if>> <<if currentSkillValue("handskill") gte 800>> but you redirect its momentum with a well-timed blow, <<elseif currentSkillValue("handskill") gte 200>> but you bat it aside, <<else>> but your flailing knocks it aside, <</if>> <<if _left_guard_chance - _hit_chance gte 200 or _right_guard_chance - _hit_chance gte 200>> <span class="green">smacking it against the ground.</span> <<set $struggle.enemy[_i].health -= 1>> <<else>> <span class="teal">narrowly dodging it.</span> <<for $_slot range ["over_upper", "over_lower", "upper", "lower", "under_upper", "under_lower"]>> <<if $worn[$_slot].name isnot "naked">> <<set $worn[$_slot].integrity -= random(10, 15)>> <<set _clothesdamaged to true>> It tears your $worn[$_slot].name as it passes. <<break>> <</if>> <</for>> <<if !_clothesdamaged>> It whips you as it passes. <<pain 2>> <</if>> <<neutral 2>> <</if>> <<if _left_guard_chance gte _hit_chance>> <<unset $left_guard>> <<elseif _right_guard_chance gte _hit_chance>> <<unset $right_guard>> <</if>> <<elseif $rng lte 66 and _targets.length gt 0>> <<set _target to _targets.pluck()>> <<struggle_bide_the>> <<print $struggle.enemy[_i].description>> <<print $struggle.enemy[_i].name>> <<if $underwater is 1 or $struggle.enemy[_i].motion is "swimming">> swims towards you, <<elseif $struggle.enemy[_i].motion is "flying">> flies towards you, <<else>> leaps towards you, <</if>> <span class="blue">landing on your <<struggle_region _target>>.</span> <<struggle_attach _target>> <<set V[_target + 'use'] to "struggle">> <<set V[_target + 'state'] to "struggle">> <<set V[_target + 'target'] to "struggle">> <<elseif random(1, 2) is 2>> An appendage emerges from the <<print $struggle.enemy[_i].description>> <<print $struggle.enemy[_i].name>> and <span class="blue">shoots a string of sticky fluid at you.</span> <<random_goo>> <<else>> The <<print $struggle.enemy[_i].description>> <<print $struggle.enemy[_i].name>> waits for an opening. <<set $struggle.enemy[_i].bide to true>> <</if>> <br> <</if>> <</for>> <<unset $left_guard>> <<unset $right_guard>> <<if $oxygen lt $oxygenmax and $underwater isnot 1 and _strangle is 1>> <<unset _strangle>> <br>Air: <<oxygencaption>> <</if>> <br> <<turnend>> <</widget>> <<widget "struggle_difficulty">>/*Unused for now*/ <!-- can be slapped at the end of _pull actions to show difficulty --> <<set $_chance to $struggle[_args[0]].success>> <<struggle_difficulty_set>> | Success Chance : <<if $_chance gte 100>> <span class="green"><<print $_chance>>%</span> <<elseif $_chance gte 80>> <span class="teal"><<print $_chance>>%</span> <<elseif $_chance gte 60>> <span class="lblue"><<print $_chance>>%</span> <<elseif $_chance gte 40>> <span class="blue"><<print $_chance>>%</span> <<elseif $_chance gte 20>> <span class="purple"><<print $_chance>>%</span> <<elseif $_chance gte 1>> <span class="pink"><<print $_chance>>%</span> <<else>> <span class="red"><<print $_chance>>%</span> <</if>> <</widget>> <<widget "struggle_difficulty_set">> <<for $_part range ["mouth", "vagina", "penis", "anus", "chest"]>> <<set $struggle[$_part].success to Math.trunc(($struggle[$_part].grip * 17) + (currentSkillValue('physique') / 600))>> <<if $struggle[$_part].success gte 100>> <!-- can't strengthen anymore, default to pull --> <<if $leftactiondefault is $_part + '_strengthen'>> <<set $leftactiondefault to $_part + '_pull'>> <</if>> <<if $rightactiondefault is $_part + '_strengthen'>> <<set $rightactiondefault to $_part + '_pull'>> <</if>> <</if>> <</for>> <</widget>> <<widget "struggle_bide_the">> <<if $struggle.enemy[_i].bide is true>> <<set $struggle.enemy[_i].bide to false>> Seeing an opening, the <<else>> The <</if>> <</widget>> <<widget "struggle_fluid">> <<if ["mouth", "vagina", "anus"].includes(_args[0])>> <<if $struggle[_args[0]].creature is "lurker" or $struggle.mouth.creature is "slime">> <<drugs 25>> <<elseif $struggle[_args[0]].creature is "pale slime">> <<drugs 50>> <<hallucinogen 40>> <</if>> <</if>> <</widget>> <<widget "struggle_clothes">> <<if _args[0] is "vagina" or _args[0] is "penis">> <<if $worn.over_lower.vagina_exposed is 0 or (setup.clothes.over_lower[clothesIndex('over_lower', $worn.over_lower)].skirt is 1 and $worn.over_lower.skirt_down is 1)>> <<set _struggle_exposed to "over">> <<elseif $worn.lower.vagina_exposed is 0 or (setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1 and $worn.lower.skirt_down is 1)>> <<set _struggle_exposed to "main">> <<elseif $worn.under_lower.vagina_exposed is 0 or (setup.clothes.under_lower[clothesIndex('under_lower', $worn.under_lower)].skirt is 1 and $worn.under_lower.skirt_down is 1)>> <<set _struggle_exposed to "under">> <<elseif (playerChastity("penis") and _args[0] is "penis") or (playerChastity("vagina") and _args[0] is "vagina")>> <<set _struggle_exposed to "genitals">> <<else>> <<set _struggle_exposed to "naked">> <</if>> <<elseif _args[0] is "anus">> <<if (setup.clothes.over_lower[clothesIndex('over_lower', $worn.over_lower)].skirt is 1 and $worn.over_lower.skirt_down is 1) or $worn.over_lower.anus_exposed is 0>> <<set _struggle_exposed to "over">> <<elseif $worn.lower.anus_exposed is 0 or (setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1 and $worn.lower.skirt_down is 1)>> <<set _struggle_exposed to "main">> <<elseif $worn.under_lower.anus_exposed is 0 or (setup.clothes.under_lower[clothesIndex('under_lower', $worn.under_lower)].skirt is 1 and $worn.under_lower.skirt_down is 1)>> <<set _struggle_exposed to "under">> <<elseif playerChastity("anus")>> <<set _struggle_exposed to "genitals">> <<else>> <<set _struggle_exposed to "naked">> <</if>> <<elseif _args[0] is "chest">> <<if !$worn.over_upper.type.includes("naked") and $worn.over_upper.exposed lt 2>> <<set _struggle_exposed to "over_top">> <<elseif !$worn.upper.type.includes("naked") and $worn.upper.exposed lt 2>> <<set _struggle_exposed to "main_top">> <<elseif !$worn.under_upper.type.includes("naked") and $worn.under_upper.exposed is 0>> <<set _struggle_exposed to "under_top">> <<else>> <<set _struggle_exposed to "naked">> <</if>> <<elseif _args[0] is "mouth">> <<if $worn.face.type.includes("covered") or $worn.face.type.includes("gag")>> <<set _struggle_exposed to "mask">> <<else>> <<set _struggle_exposed to "naked">> <</if>> <</if>> <<if _struggle_exposed is "over_top">> <<set $struggle[_args[0]].progress -= 1>> <<if $struggle[_args[0]].legs is "tentacles">> The <<print $struggle[_args[0]].creature>>'s tentacles tear your $worn.over_upper.name as they search for a way in.<<neutral 2>><<set $worn.over_upper.integrity -= 10>> <<else>> The <<print $struggle[_args[0]].creature>>'s appendage prods your <<struggle_bodypart _args[0]>> through your $worn.over_upper.name.<<neutral 1>> <</if>> <<set $worn.over_upper.integrity -= 10>> <<if $struggle[_args[0]].creature is "slime">> <span class="purple">The fabric hisses as it dissolves in the slime.</span><<set $worn.over_upper.integrity -= 30>> <<elseif $struggle[_args[0]].creature is "pale slime">> <span class="purple">The fabric violently hisses as it dissolves in the pale slime.</span><<set $worn.over_upper.integrity -= 50>> <</if>> <<if $worn.over_upper.integrity lte 0>> <<integritycheck no_text>><<exposure>> <<if $struggle[_args[0]].legs is "tentacles">> The tentacles wrap around the fabric and <span class="pink">tear it off your body with a flick, exposing your <<top>>.</span> <<else>> Its appendage pierces the fabric and <span class="pink">tears it off your body with a flick, exposing your <<top>>.</span> <</if>> <</if>> <<elseif _struggle_exposed is "main_top">> <<set $struggle[_args[0]].progress -= 1>> <<if $struggle[_args[0]].legs is "tentacles">> The <<print $struggle[_args[0]].creature>>'s tentacles tear your $worn.upper.name as they search for a way in.<<neutral 2>><<set $worn.upper.integrity -= 10>> <<else>> The <<print $struggle[_args[0]].creature>>'s appendage prods your <<struggle_bodypart _args[0]>> through your $worn.upper.name.<<neutral 1>> <</if>> <<set $worn.upper.integrity -= 10>> <<if $struggle[_args[0]].creature is "slime">> <span class="purple">The fabric hisses as it dissolves in the slime.</span><<set $worn.upper.integrity -= 30>> <<elseif $struggle[_args[0]].creature is "pale slime">> <span class="purple">The fabric violently hisses as it dissolves in the pale slime.</span><<set $worn.upper.integrity -= 50>> <</if>> <<if $worn.upper.integrity lte 0>> <<integritycheck no_text>><<exposure>> <<if $struggle[_args[0]].legs is "tentacles">> The tentacles wrap around the fabric and <span class="pink">tear it off your body with a flick, exposing your <<undertop>>.</span> <<else>> Its appendage pierces the fabric and <span class="pink">tears it off your body with a flick, exposing your <<undertop>>.</span> <</if>> <</if>> <<elseif _struggle_exposed is "under_top">> <<set $struggle[_args[0]].progress -= 1>> <<if $struggle[_args[0]].legs is "tentacles">> The <<print $struggle[_args[0]].creature>>'s tentacles tear your $worn.under_upper.name as they search for a way in.<<neutral 3>><<set $worn.under_upper.integrity -= 10>> <<else>> The <<print $struggle[_args[0]].creature>>'s appendage prods your $worn.under_upper.name. <</if>> <<set $worn.under_upper.integrity -= 10>> <<if $struggle[_args[0]].creature is "slime">> <span class="purple">The fabric hisses as it dissolves in the slime.</span><<set $worn.under_upper.integrity -= 30>> <<elseif $struggle[_args[0]].creature is "pale slime">> <span class="purple">The fabric violently hisses as it dissolves in the pale slime.</span><<set $worn.under_upper.integrity -= 50>> <</if>> <<if $worn.under_upper.integrity lte 0>> <<integritycheck no_text>><<exposure>> <<if $struggle[_args[0]].legs is "tentacles">> The tentacles wrap around the fabric and <span class="pink">tear it off your body with a flick, exposing your <<breasts>>.</span> <<else>> Its appendage pierces the fabric and <span class="pink">tears it off your body with a flick, exposing your <<breasts>>.</span> <</if>> <</if>> <<elseif _struggle_exposed is "over">> <<set $struggle[_args[0]].progress -= 1>> <<if $struggle[_args[0]].legs is "tentacles">> The <<print $struggle[_args[0]].creature>>'s tentacles tear at your $worn.over_lower.name, trying to reach the <<struggle_bodypart _args[0]>> beneath.<<neutral 2>><<set $worn.over_lower.integrity -= 10>> <<else>> The <<print $struggle[_args[0]].creature>> tears at your $worn.over_lower.name, trying to reach the <<struggle_bodypart _args[0]>> beneath.<<neutral 1>> <</if>> <<set $worn.over_lower.integrity -= 10>> <<if $struggle[_args[0]].creature is "slime">> <span class="purple">The fabric hisses as it dissolves in the slime.</span><<set $worn.over_lower.integrity -= 30>> <<elseif $struggle[_args[0]].creature is "pale slime">> <span class="purple">The fabric violently hisses as it dissolves in the pale slime.</span><<set $worn.over_lower.integrity -= 50>> <</if>> <<if $worn.over_lower.integrity lte 0>> <<integritycheck no_text>><<exposure>> <<if $struggle[_args[0]].legs is "tentacles">> Its tentacles wrap around the fabric and <span class="pink">tear it off your body with a flick, exposing your <<crotch>>.</span> <<else>> Its appendage pierces the fabric and <span class="pink">tears it off your body with a flick, exposing your <<crotch>>.</span> <</if>> <</if>> <<elseif _struggle_exposed is "main">> <<set $struggle[_args[0]].progress -= 1>> <<if $struggle[_args[0]].legs is "tentacles">> The <<print $struggle[_args[0]].creature>>'s tentacles tear at your $worn.lower.name, trying to reach the <<struggle_bodypart _args[0]>> beneath.<<neutral 2>><<set $worn.lower.integrity -= 10>> <<else>> The <<print $struggle[_args[0]].creature>> tears at your $worn.lower.name, trying to reach the <<struggle_bodypart _args[0]>> beneath.<<neutral 1>> <</if>> <<set $worn.lower.integrity -= 10>> <<if $struggle[_args[0]].creature is "slime">> <span class="purple">The fabric hisses as it dissolves in the slime.</span><<set $worn.lower.integrity -= 30>> <<elseif $struggle[_args[0]].creature is "pale slime">> <span class="purple">The fabric violently hisses as it dissolves in the pale slime.</span><<set $worn.lower.integrity -= 50>> <</if>> <<if $worn.lower.integrity lte 0>> <<integritycheck no_text>><<exposure>> <<if $struggle[_args[0]].legs is "tentacles">> Its tentacles wrap around the fabric and <span class="pink">tear it off your body with a flick, exposing your <<undies>>.</span> <<else>> Its appendage pierces the fabric and <span class="pink">tears it off your body with a flick, exposing your <<undies>>.</span> <</if>> <</if>> <<elseif _struggle_exposed is "under">> <<set $struggle[_args[0]].progress -= 1>> <<if $struggle[_args[0]].legs is "tentacles">> The <<print $struggle[_args[0]].creature>>'s tentacles worm their way inside your $worn.under_lower.name, trying to get to the <<struggle_bodypart _args[0]>> beneath.<<neutral 2>><<set $worn.under_lower.integrity -= 10>> <<else>> The <<print $struggle[_args[0]].creature>> tears at your $worn.under_lower.name, trying to get to the <<struggle_bodypart _args[0]>> beneath.<<neutral 1>> <</if>> <<set $worn.under_lower.integrity -= 10>> <<if $struggle[_args[0]].creature is "slime">> <span class="purple">The fabric hisses as it dissolves in the slime.</span><<set $worn.under_lower.integrity -= 30>> <<elseif $struggle[_args[0]].creature is "pale slime">> <span class="purple">The fabric violently hisses as it dissolves in the pale slime.</span><<set $worn.under_lower.integrity -= 50>> <</if>> <<if $worn.under_lower.integrity lte 0>> <<integritycheck no_text>><<exposure>> <<if $struggle[_args[0]].legs is "tentacles">> Its tentacles worm their way into the fabric and <span class="pink">tear it off your body with a flick, exposing your <<genitals>>.</span> <<else>> Its appendage pierces the fabric and <span class="pink">tears it off your body with a flick, exposing your <<genitals>>.</span> <</if>> <</if>> <<elseif _struggle_exposed is "genitals">> <<set $struggle[_args[0]].progress -= 1>> <<if $struggle[_args[0]].legs is "tentacles">> <<if $worn.genitals.name is "chastity parasite">> The <<print $struggle[_args[0]].creature>>'s tentacles worm round your $worn.genitals.name, rubbing and squeezing it in the process. <span class="lewd">Your clearly aroused reaction encourages it further.</span> <<arousal 200 "genitals">><<neutral 2 "genitals">><<set $worn.genitals.integrity -= 5>> <<else>> The <<print $struggle[_args[0]].creature>>'s tentacles worm behind your $worn.genitals.name, brushing against your <<struggle_bodypart _args[0]>> as they search for a way in.<<neutral 2 "genitals">><<set $worn.genitals.integrity -= 10>> <</if>> <<else>> <<if $worn.genitals.name is "chastity parasite">> The <<print $struggle[_args[0]].creature>> attempts to tear at your $worn.genitals.name, but only succeed at squeezing it and <span>further arousing you.</span> <<neutral 1 "genitals">><<arousal 100 "genitals">><<set $worn.genitals.integrity -= 5>> <<else>> The <<print $struggle[_args[0]].creature>> tears at your $worn.genitals.name, trying to get to your <<struggle_bodypart _args[0]>> beneath.<<neutral 1 "genitals">><<set $worn.genitals.integrity -= 10>> <</if>> <</if>> <<if $struggle[_args[0]].creature is "slime">> <span class="purple">The material hisses as it dissolves in the slime.</span><<set $worn.genitals.integrity -= 30>> <<elseif $struggle[_args[0]].creature is "pale slime">> <span class="purple">The material violently hisses as it dissolves in the pale slime.</span><<set $worn.genitals.integrity -= 50>> <</if>> <<if $worn.genitals.integrity lte 0>> <<integritycheck no_text>><<exposure>> <<if $struggle[_args[0]].legs is "tentacles">> Its tentacles wrap around the material and pull. The material <<if $worn.genitals.name is "chastity parasite">> pops <<else>> groans <</if>> <span class="pink">as the <<print $struggle[_args[0]].creature>> tears it off your body with a flick, exposing your <<genitals>>.</span> <<else>> Its appendage pierces the material and pulls. The material <<if $worn.genitals.name is "chastity parasite">> pops <<else>> groans <</if>> <span class="pink">as the <<print $struggle[_args[0]].creature>> tears it off your body with a flick, exposing your <<genitals>>.</span> <</if>> <<else>> <<if $struggle[_args[0]].damage gte 10>> It <<if $worn.genitals.name is "chastity parasite">>tired<<else>>hurt<</if>> itself against the material, <span class="green">and leaps away.</span> <<if _args[0] is "vagina">> <<set $vaginause to 0>> <<set $vaginastate to 0>> <<struggle_part_init "vagina">> <<set $struggle.warded += 1>> <<struggleClearActions "vagina_">> <<elseif _args[0] is "penis">> <<set $penisuse to 0>> <<set $penisstate to 0>> <<struggle_part_init "penis">> <<set $struggle.warded += 1>> <<struggleClearActions "penis_">> <<else>> <<set $anususe to 0>> <<set $anusstate to 0>> <<struggle_part_init "anus">> <<set $struggle.warded += 1>> <<struggleClearActions "anus_">> <</if>> <<else>> It <<if $worn.genitals.name is "chastity parasite">>tires<<else>>hurts<</if>> itself against the material. <<set $struggle[_args[0]].damage += 1>> <</if>> <</if>> <<elseif _struggle_exposed is "mask">> <<set $struggle[_args[0]].progress -= 1>> <<if $struggle[_args[0]].legs is "tentacles">> The <<print $struggle[_args[0]].creature>>'s tentacles worm their way inside your $worn.face.name, trying to get to the <<struggle_bodypart _args[0]>> beneath.<<neutral 2>><<damageFaceCover 5 struggle>> <<else>> The <<print $struggle[_args[0]].creature>> tears at your $worn.face.name, trying to get to the <<struggle_bodypart _args[0]>> beneath.<<neutral 1>> <</if>> <<damageFaceCover 5 struggle>> <<if $struggle[_args[0]].creature is "slime">> <span class="purple">The fabric hisses as it dissolves in the slime.</span><<damageFaceCover 20 struggle>> <<elseif $struggle[_args[0]].creature is "pale slime">> <span class="purple">The fabric violently hisses as it dissolves in the pale slime.</span><<damageFaceCover 30 struggle>> <</if>> <<if $worn.face.integrity lte 0>> <<if $struggle[_args[0]].legs is "tentacles">> Its tentacles worm their way into the fabric and <span class="pink">tear it off your body with a flick, exposing your mouth.</span> <<else>> Its appendage pierces the fabric and <span class="pink">tears it off your body with a flick, exposing your mouth.</span> <</if>> <<faceruined>><<set $worn.face.type.push("broken")>> <</if>> <<elseif _struggle_exposed is "naked">> <<if _args[0] is "vagina">> The <<print $struggle[_args].creature>>'s appendage <span class="purple">presses against your <<pussy>>.</span><<neutral 4 "genitals">> <<elseif _args[0] is "penis">> The <<print $struggle[_args].creature>> <span class="purple">presses an aperture against your <<penis>>.</span><<neutral 4 "genitals">> <<elseif _args[0] is "anus">> The <<print $struggle[_args].creature>>'s appendage <span class="purple">presses against your <<bottom>>.</span><<neutral 4 "bottom">> <<elseif _args[0] is "chest">> The <<print $struggle[_args].creature>>'s appendage <span class="purple">presses against your <<breasts>>.</span><<neutral 4 "breasts">> <<elseif _args[0] is "mouth">> The <<print $struggle[_args].creature>>'s appendage <span class="purple">presses against your mouth.</span><<neutral 4 "mouth">> <</if>> <</if>> <</widget>> <<widget "struggle_bodypart">><<silently>> <<switch _args[0]>> <<case "vagina">> <<pussy>> <<case "penis">> <<penis>> <<case "anus">> <<bottom>> <<case "chest">> <<breasts>> <<case "mouth">> <<set _text_output to "mouth">> <</switch>> <</silently>><<print _text_output>> <</widget>> <<widget "struggle_appendage">><<silently>> <<switch $struggle[_args[0]].creature>> <<case "wasp" "bee">> <<set $_text_output to "stinger">> <<case "squid">> <<set $_text_output to "tentacle">> <<default>> <<set $_text_output to "appendage">> <</switch>> <</silently>><<print $_text_output>> <</widget>> <<widget "struggle_skin">><<silently>> <<switch $struggle[_args[0]].creature>> <<case "wasp" "bee">> <<set $_text_output to "carapace">> <<default>> <<set $_text_output to "flesh">> <</switch>> <</silently>><<print $_text_output>> <</widget>> <<widget "struggle_flat_chest">> <<if $struggle.chest.legs is "tentacles">> <<if $lactating is 1 and $settings.breastFeedingEnabled and $milk_amount gte 1>> The <<print $struggle.chest.creature>>'s tentacles flick your <<breasts>> as <span class="pink">milk leaks from your buds.</span> <<else>> The <<print $struggle.chest.creature>>'s tentacles flick and tease your <<breasts>>. <</if>> <<sex 5 "breasts">> <<else>> <<if $lactating is 1 and $settings.breastFeedingEnabled and $milk_amount gte 1>> The <<print $struggle.chest.creature>> suckles your <<breasts>> as <span class="pink">milk leaks from your buds.</span> <<breastfeed>><<sex 3 "breasts">> <<else>> The <<print $struggle.chest.creature>> sucks on your <<breasts>> as its <<struggle_appendage chest>> rubs against your abdomen. <<milkvolume 1>><<sex 5 "breasts">> <</if>> <<sex 3 "breasts">> <</if>> <</widget>> <<widget "struggle_attach">> <<set $struggle[_args[0]].creature to $struggle.enemy[_i].name>> <<set $struggle[_args[0]].description to $struggle.enemy[_i].description>> <<set $struggle[_args[0]].legs to $struggle.enemy[_i].legs>> <<set $struggle.enemy[_i].location to _args[0]>> <!-- temp var to highlight newly attached lurkers --> <<set T['gold_' + _args[0]] to true>> <</widget>> <<widget "struggleClearActions">> <<if _args[0]>> <<if ($mouthaction).toString().includes(_args[0])>> <<set $mouthactiondefault to $mouthaction>><<set $mouthaction to 0>> <</if>> <<if ($leftaction).toString().includes(_args[0])>> <<set $leftactiondefault to $leftaction>><<set $leftaction to 0>> <</if>> <<if ($rightaction).toString().includes(_args[0])>> <<set $rightactiondefault to $rightaction>><<set $rightaction to 0>> <</if>> <<if ($leftarmstate).toString().includes(_args[0])>> <<set $leftarm to 0>><<set $leftarmstate to 0>> <</if>> <<if ($rightarmstate).toString().includes(_args[0])>> <<set $rightarm to 0>><<set $rightarmstate to 0>> <</if>> <</if>> <</widget>> <<widget "struggle_region">><<silently>> <<if ["mouth","vagina","penis","anus","chest"].includes(_args[0])>> <<switch _args[0]>> <<case "mouth">><<set _text_output to "head">> <<case "vagina">><<set _text_output to "pelvis">> <<case "penis">><<set _text_output to "tummy">> <<case "anus">><<set _text_output to "bottom">> <<case "chest">><<set _text_output to "chest">> <</switch>> <</if>> <</silently>><<print _text_output>> <</widget>><<widget "generateActionsSwarm">> <<set $combat to 1>> <<if _targetlist is undefined>> <<getTargetList>> <</if>> <div id="listContainer"> <div id="leftaction" @class="$options.combatControls + 'Control'"> <<if $lefttarget is "self">> <<leftActionInitSelf>> <<else>> <<leftActionInitSwarm>> <</if>> </div> <div id="rightaction" @class="$options.combatControls + 'Control'"> <<if $righttarget is "self">> <<rightActionInitSelf>> <<else>> <<rightActionInitSwarm>> <</if>> </div> <div id="feetaction" @class="$options.combatControls + 'Control'"> <<feetActionInitSwarm>> </div> <<if ($mouthuse is 0 and !($dissociation lte 1 and $orgasmdown lte 0 and ($pain lt 100 or $willpowerpain is undefined)))>> <div id="mouthaction" @class="$options.combatControls + 'Control'"> <<mouthActionInit>> </div> <</if>> </div> <</widget>> <<widget "leftActionInitSwarm">> <<set $lefttarget to "swarm">> <<switch $leftarm>> <<case 0>> <<if $orgasmdown gte 1>> <<set _leftOptions to "orgasm">> <span class="lewd">Your left arm is free, but you can't stop the spasms.</span> <<elseif $pain gte 100 and $willpowerpain is 0>> <<set _leftOptions to "pain">> <span class="red">Your left arm is free, but hurts to move.</span> <<elseif $dissociation gte 2>> <<set _leftOptions to "unreal">> <span class="pink">Your left arm is free, but doesn't feel real.</span> <<else>> <<if _targetYourself is true and _targetnumber gt 1>> <<set _targetlistarms["Yourself"] to "self">> <</if>> <<if not $options.combatControls.includes("adio") and _targetnumber gt 1>> <<targetListBox "left" _targetlistarms>> <</if>> <<set _leftOptions to "free">> <span @class="($lastOptions.left isnot _leftOptions ?'gold':'')">Your left arm is free.</span> <<if $options.combatControls.includes("adio") and _targetnumber gt 1>> <<targetListBox "left" _targetlistarms>> <<if $options.combatControls is "radio">><br><</if>> <</if>> <</if>> <<case "swarmgrappled">> <<set _leftOptions to "unable">> <span class="purple">The $swarm["type"] are constricting your left arm!</span> <<if $options.combatControls.includes("adio")>><br><</if>> <<case "bound">> <<if $orgasmdown gte 1>> <<set _leftOptions to "unable">> <span class="lewd">Your left arm jerks against its bonds.</span> <<elseif $pain gte 100 and $willpowerpain is 0>> <<set _leftOptions to "unable">> <span class="red">Your left arm is held in a painful bind.</span> <<elseif $dissociation gte 2>> <<set _leftOptions to "unable">> <span class="pink">Your left arm lies limp in its bonds.</span> <<else>> <<set _leftOptions to "bound">> <span @class="($lastOptions.left isnot _leftOptions ?'gold':'')">Your left arm is bound and helpless.</span> <</if>> <<if $options.combatControls.includes("adio")>><br><</if>> <<case "trapped">> <<set $_changetype to true>><<leftActionInitVore>> <<case "grappled" "penis" "othervagina" "vagina" "coverpenis" "anus" "behind">> <<set $_changetype to true>><<leftActionInit>> <<case "struggle">> <<set $_changetype to true>><<leftActionInitStruggle>> <<case "mechgrappled">> <<set $_changetype to true>><<leftActionInitMachine>> <<default>> <<set $_changetype to true>><<leftActionInitTentacle>> <</switch>> <<if $_changetype isnot true>> <<leftActionsSwarm>> <<if Object.keys(_leftaction).length gt 0>> <<if !(Object.values(_leftaction).includes($leftactiondefault))>> <<set $leftactiondefault to "swarmrest">> <</if>> <<set $leftaction to $leftactiondefault>> <div class="extraMargin"> <<generateCombatAction _leftaction "leftaction" "Swarm">> <br> </div> <<if $options.combatControls.includes("ists")>> <div id="leftactionDifficulty"> <<leftactionDifficulty>> </div> <</if>> <</if>> <<set $lastOptions.left to clone(_leftOptions)>> <</if>> <</widget>> <<widget "leftactionDifficultySwarm">>/* Yes, it is supposed to be blank. */ <!-- Does nothing --> <</widget>> <<widget "leftActionsSwarm">> <<set _leftaction to {}>> <<switch _leftOptions>> <<case "free">> <<if $rightarm is "swarmgrappled" and ($lefttarget is "self" or $options.targetYourself is false or _targetnumber is 1)>> <<set _leftaction["Free your right arm"] to "leftfree">> <<elseif _swarmamounts.active[2] gte 1 and $lefttarget isnot "self">> <<silently>><<swarmName>><</silently>> <<set _leftaction[_swarmsteady + " one of the " + _swarmname] to "leftswarm">> <</if>> <<if _swarmamounts.genital[0] lte 0 and _swarmamounts.genital[1] lte 0 and ($lefttarget is "self" or $options.targetYourself is false or _targetnumber is 1)>> <<silently>><<genitals>><</silently>> <<set _leftaction["Cover your "+ _text_output] to "frontcoverleft">> <</if>> <<if _swarmamounts.butt[0] lte 0 and _swarmamounts.butt[1] lte 0 and ($lefttarget is "self" or $options.targetYourself is false or _targetnumber is 1)>> <<set _leftaction["Cover your butt"] to "backcoverleft">> <</if>> <<if _swarmamounts.chest lte 0 and ($lefttarget is "self" or $options.targetYourself is false or _targetnumber is 1)>> <<set _leftaction["Cover your chest"] to "chestcoverleft">> <</if>> <<if $lefttarget isnot "self">> <<if _swarmamounts.genital[1] gte 1 and !playerChastity()>> <<silently>><<genitals>><</silently>> <<set _leftaction["Pull the "+ $swarm["type"] + " from your " + _text_output] to "frontpurgeleft">> <</if>> <<if _swarmamounts.genital[0] gte 1 and !playerChastity()>> <<silently>><<genitals>><</silently>> <<set _leftaction["Keep the "+ $swarm["type"] + " away from your " + _text_output] to "frontclearleft">> <</if>> <<if _swarmamounts.butt[1] gte 1 and !playerChastity("anus")>> <<set _leftaction["Pull the "+ $swarm["type"] + " out of your anus"] to "backpurgeleft">> <</if>> <<if _swarmamounts.butt[0] gte 1 and !playerChastity("anus")>> <<set _leftaction["Keep the "+ $swarm["type"] + " away from your butt"] to "backclearleft">> <</if>> <<if _swarmamounts.chest gte 1>> <<set _leftaction["Clear the "+ $swarm["type"] + " off of your chest"] to "chestclearleft">> <</if>> <</if>> <<if $water is 1 and $vorecreature is 0 and ($consensual isnot 1 or $gamemode is "soft") and ($lefttarget is "self" or $options.targetYourself is false or _targetnumber is 1)>> <<set _leftaction["Swim to safety"] to "swim">> <</if>> <<if $vorecreature is 0>> <<set _leftaction["Rest"] to "swarmrest">> <</if>> <<leftclothesnew>> <<case "bound">> <<if $gamemode is "soft" and $nowiggle isnot true>> <<set _leftaction["Wriggle free"] to "leftwriggle">> <</if>> <<case "orgasm">> <<set _leftaction["Fold"] to "leftfold">> <<set _leftaction["Grip"] to "leftgrip">> <<case "pain">> <<set _leftaction["Struggle"] to "leftstruggleweak">> <<set _leftaction["Protect"] to "leftprotect">> <<case "unreal">> <<set _leftaction["Poke yourself"] to "leftpoke">> <<set _leftaction["Keep your arms out of the way"] to "leftcurl">> <</switch>> <</widget>> <<widget "rightActionInitSwarm">> <<set $righttarget to "swarm">> <<switch $rightarm>> <<case 0>> <<if $orgasmdown gte 1>> <<set _rightOptions to "orgasm">> <span class="lewd">Your right arm is free, but you can't stop the spasms.</span> <<elseif $pain gte 100 and $willpowerpain is 0>> <<set _rightOptions to "pain">> <span class="red">Your right arm is free, but hurts to move.</span> <<elseif $dissociation gte 2>> <<set _rightOptions to "unreal">> <span class="pink">Your right arm is free, but doesn't feel real.</span> <<else>> <<if _targetYourself is true and _targetnumber gt 1>> <<set _targetlistarms["Yourself"] to "self">> <</if>> <<if not $options.combatControls.includes("adio") and _targetnumber gt 1>> <<targetListBox "right" _targetlistarms>> <</if>> <<set _rightOptions to "free">> <span @class="($lastOptions.right isnot _rightOptions ?'gold':'')">Your right arm is free.</span> <<if $options.combatControls.includes("adio") and _targetnumber gt 1>> <<targetListBox "right" _targetlistarms>> <<if $options.combatControls is "radio">><br><</if>> <</if>> <</if>> <<case "swarmgrappled">> <<set _rightOptions to "unable">> <span class="purple">The $swarm["type"] are constricting your right arm!</span><<if $options.combatControls.includes("adio")>><br><</if>> <<case "bound">> <<if $orgasmdown gte 1>> <<set _rightOptions to "unable">> <span class="lewd">Your right arm jerks against its bonds.</span> <<elseif $pain gte 100 and $willpowerpain is 0>> <<set _rightOptions to "unable">> <span class="red">Your right arm is held in a painful bind.</span> <<elseif $dissociation gte 2>> <<set _rightOptions to "unable">> <span class="pink">Your right arm lies limp in its bonds.</span> <<else>> <<set _rightOptions to "bound">> <span @class="($lastOptions.right isnot _rightOptions ?'gold':'')">Your right arm is bound and helpless.</span> <</if>><<if $options.combatControls.includes("adio")>><br><</if>> <<case "trapped">> <<set $_changetype to true>><<rightActionInitVore>> <<case "grappled" "penis" "othervagina" "vagina" "coverpenis" "anus" "behind">> <<set $_changetype to true>><<rightActionInit>> <<case "struggle">> <<set $_changetype to true>><<rightActionInitStruggle>> <<case "mechgrappled">> <<set $_changetype to true>><<rightActionInitMachine>> <<default>> <<set $_changetype to true>><<rightActionInitTentacle>> <</switch>> <<if $_changetype isnot true>> <<rightActionsSwarm>> <<if Object.keys(_rightaction).length gt 0>> <<if !(Object.values(_rightaction).includes($rightactiondefault))>> <<set $rightactiondefault to "swarmrest">> <</if>> <<set $rightaction to $rightactiondefault>> <div class="extraMargin"> <<generateCombatAction _rightaction "rightaction" "Swarm">> </div> <<if $options.combatControls.includes("ists")>> <div id="rightactionDifficulty"> <<rightactionDifficulty>> </div> <</if>> <</if>> <<set $lastOptions.right to clone(_rightOptions)>> <</if>> <</widget>> <<widget "rightactionDifficultySwarm">>/* No, it cannot be removed. */ <!-- Does nothing --> <</widget>> <<widget "rightActionsSwarm">> <<set _rightaction to {}>> <<switch _rightOptions>> <<case "free">> <<if $leftarm is "swarmgrappled" and ($righttarget is "self" or $options.targetYourself is false or _targetnumber is 1)>> <<set _rightaction["Free your left arm"] to "rightfree">> <<elseif _swarmamounts.active[2] gte 1 and $righttarget isnot "self">> <<silently>><<swarmName>><</silently>> <<set _rightaction[_swarmsteady + " one of the " + _swarmname] to "rightswarm">> <</if>> <<if _swarmamounts.genital[0] lte 0 and _swarmamounts.genital[1] lte 0 and ($righttarget is "self" or $options.targetYourself is false or _targetnumber is 1)>> <<silently>><<genitals>><</silently>> <<set _rightaction["Cover your "+ _text_output] to "frontcoverright">> <</if>> <<if _swarmamounts.butt[0] lte 0 and _swarmamounts.butt[1] lte 0 and ($righttarget is "self" or $options.targetYourself is false or _targetnumber is 1)>> <<set _rightaction["Cover your butt"] to "backcoverright">> <</if>> <<if _swarmamounts.chest lte 0 and ($righttarget is "self" or $options.targetYourself is false or _targetnumber is 1)>> <<set _rightaction["Cover your chest"] to "chestcoverright">> <</if>> <<if $righttarget isnot "self">> <<if _swarmamounts.genital[1] gte 1 and !playerChastity()>> <<silently>><<genitals>><</silently>> <<set _rightaction["Pull the "+ $swarm["type"] + " from your " + _text_output] to "frontpurgeright">> <</if>> <<if _swarmamounts.genital[0] gte 1 and !playerChastity()>> <<silently>><<genitals>><</silently>> <<set _rightaction["Keep the "+ $swarm["type"] + " away from your " + _text_output] to "frontclearright">> <</if>> <<if _swarmamounts.butt[1] gte 1 and !playerChastity("anus")>> <<set _rightaction["Pull the "+ $swarm["type"] + " out of your anus"] to "backpurgeright">> <</if>> <<if _swarmamounts.butt[0] gte 1 and !playerChastity("anus")>> <<set _rightaction["Keep the "+ $swarm["type"] + " away from your butt"] to "backclearright">> <</if>> <<if _swarmamounts.chest gte 1>> <<set _rightaction["Clear the "+ $swarm["type"] + " off of your chest"] to "chestclearright">> <</if>> <</if>> <<if $water is 1 and $vorecreature is 0 and ($consensual isnot 1 or $gamemode is "soft") and ($righttarget is "self" or $options.targetYourself is false or _targetnumber is 1)>> <<set _rightaction["Swim to safety"] to "swim">> <</if>> <<if $vorecreature is 0>> <<set _rightaction["Rest"] to "swarmrest">> <</if>> <<rightclothesnew>> <<case "bound">> <<if $gamemode is "soft" and $nowiggle isnot true>> <<set _rightaction["Wriggle free"] to "rightwriggle">> <</if>> <<case "orgasm">> <<set _rightaction["Fold"] to "rightfold">> <<set _rightaction["Grip"] to "rightgrip">> <<case "pain">> <<set _rightaction["Struggle"] to "rightstruggleweak">> <<set _rightaction["Protect"] to "rightprotect">> <<case "unreal">> <<set _rightaction["Poke yourself"] to "rightpoke">> <<set _rightaction["Keep your arms out of the way"] to "rightcurl">> <</switch>> <</widget>> <<widget "feetActionInitSwarm">> <<if $dissociation lte 1 and $orgasmdown lte 0 and ($pain lt 100 or $willpowerpain is undefined)>> <<set $feettarget to "swarm">> <<switch $feetuse>> <<case 0>> <<if _targetYourself is true and _targetnumber gt 1>> <<set _targetlistall["Yourself"] to "self">> <</if>> <<if not $options.combatControls.includes("adio") and _targetnumber gt 1>> <<if ($leftleg is "grappled" and $rightleg is "grappled") or ($leftleg is "bound" and $rightleg is "bound")>> <<else>> <<targetListBox "feet" _targetlistall>> <</if>> <</if>> <<if $leftleg is 0 and $rightleg is 0>> <<set _feetOptions to "free">> <span @class="($lastOptions.feet isnot _feetOptions ?'gold':'')">Your feet are free.</span> <<elseif $leftleg is 0>> <<set _feetOptions to "leftfree">> <span @class="($lastOptions.feet isnot _feetOptions ?'gold':'')">Your left leg is free.</span> <<elseif $rightleg is 0>> <<set _feetOptions to "rightfree">> <span @class="($lastOptions.feet isnot _feetOptions ?'gold':'')">Your right leg is free.</span> <<elseif $leftleg is "grappled" and $rightleg is "grappled">> <<set $_changetype to true>><<feetActionInitTentacle>> <<elseif $leftleg is "bound" and $rightleg is "bound">> <<set $_changetype to true>><<feetActionInitTentacle>> <<else>> <<set _feetOptions to "free">> <span @class="($lastOptions.feet isnot _feetOptions or _feetGold is true ?'gold':'')">Your feet are free.</span> <</if>> <<if $options.combatControls.includes("adio") and _targetnumber gt 1 and _feetOptions.toLowerCase().includes("free")>> <<targetListBox "feet" _targetlistall>> <</if>> <<if _targetnumber is 1>> <<set $feettarget to _firsttarget>> <</if>> <<case "bound" "penis" "othervagina" "walk" "strut" "run" "none">> <<set $_changetype to true>><<feetActionInit>> <<case "mechgrappled">> <<set $_changetype to true>><<feetActionInitMachine>> <<default>> <<set $_changetype to true>><<feetActionInitTentacle>> <</switch>> <<if $lastOptions.feet isnot _feetOptions>> <<set _feetGold to true>> <</if>> <<if $_changetype isnot true>> <<feetActionsSwarm>> <<if Object.keys(_feetaction).length gt 0>> <<if !(Object.values(_feetaction).includes($feetactiondefault))>> <<set $feetactiondefault to "swarmrest">> <</if>> <<set $feetaction to $feetactiondefault>> <div class="extraMargin"> <<generateCombatAction _feetaction "feetaction" "Swarm">> </div> <<if $options.combatControls.includes("ists")>> <div id="feetactionDifficulty"> <<feetactionDifficulty>> </div> <</if>> <</if>> <<set $lastOptions.feet to clone(_feetOptions)>> <</if>> <<else>> <<timed 100ms>> <<run jQuery("#feetaction").remove();>> <</timed>> <</if>> <</widget>> <<widget "feetactionDifficultySwarm">>/* If removed, expect errors in combats with controls set to "lists". */ <!-- Does nothing --> <</widget>> <<widget "feetActionsSwarm">> <<set _feetaction to {}>> <<if $swarm.amount.active[2] gte 1 and $feettarget isnot "self">> <<silently>><<swarmName>><</silently>> <<set _feetaction[_swarmsteady + " one of the " + _swarmname] to "feetswarm">> <</if>> <<if _feetOptions is "free">> <<if $water is 1 and $vorecreature is 0 and currentSkillValue('swimmingskill') gt 700 and $consensual isnot 1 and ($feettarget is "self" or $options.targetYourself is false or _targetnumber is 1)>> <<set _feetaction["Swim to safety"] to "swim">> <</if>> <</if>> <<if $vorecreature is 0>> <<set _feetaction["Rest"] to "swarmrest">> <</if>> <</widget>><<widget "swarmactions">> <div @class="($debugLines ? 'debugLines-swarmactions' : '')"> <<set $chest to 0>> <<set $front to 0>> <<set $back to 0>> <<if $vorecreature is 0>> <<set _swarmactive to $swarm.amount.active ? $swarm.amount.active[0] : 0>> <<animateCombat>> <</if>> <<willpowerpain>> <<willpowerorgasm>> <<actioncarry>> <<actioncarrydrop>> <<combatstate>> <<carryblock>> <<if $trance lte 0 and $panicparalysis is 0 and $panicviolence is 0 and $options.combatControls isnot "disabled">> <<set _swarmsteady to $swarm["steady"].toUpperFirst()>> <<set _swarmamounts to $swarm.amount>> <<generateActionsSwarm>> <</if>> <<if $trance lte 0 and $dissociation lte 1 and $panicparalysis is 0 and $panicviolence is 0 and $orgasmdown lte 0 and ($pain lt 100 or $willpowerpain is undefined) and $options.combatControls is "disabled">> <<set _swarmsteady to $swarm["steady"].toUpperFirst()>> <<set _swarmamounts to $swarm.amount>> <<if $leftarm is "bound">> Your left arm is bound and helpless. <<if $gamemode is "soft" and $nowiggle isnot true>> <br> <label>Wriggle free<<radiobutton "$leftaction" "leftwriggle" checked>></label> | <</if>> <br><br> <<elseif $leftarm is "swarmgrappled">> <span class="purple">The $swarm["type"] are constricting your left arm!</span> <br><br> <<elseif $leftarm is 0>> Your left arm is free. <br> <<if $rightarm is "swarmgrappled">> <label><span class="brat">Free your right arm</span> <<radiobutton "$leftaction" "leftfree">></label> | <<elseif _swarmamounts.active[2] gte 1>> <label>_swarmsteady one of the <<swarmName>> <<radiobutton "$leftaction" "leftswarm">></label> | <</if>> <<if _swarmamounts.genital[0] lte 0 and _swarmamounts.genital[1] lte 0>> <label>Cover your <<genitals>> <<radiobutton "$leftaction" "frontcoverleft">></label> | <</if>> <<if _swarmamounts.butt[0] lte 0 and _swarmamounts.butt[1] lte 0>> <label>Cover your butt <<radiobutton "$leftaction" "backcoverleft" checked>></label> | <</if>> <<if _swarmamounts.chest lte 0>> <label>Cover your chest <<radiobutton "$leftaction" "chestcoverleft">></label> | <</if>> <<if _swarmamounts.genital[1] gte 1 and !playerChastity()>> <label><span class="brat">Pull the $swarm["type"] from your <<genitals>></span> <<radiobutton "$leftaction" "frontpurgeleft">></label> | <</if>> <<if _swarmamounts.genital[0] gte 1 and !playerChastity()>> <label><span class="brat">Keep the $swarm["type"] away from your <<genitals>></span> <<radiobutton "$leftaction" "frontclearleft">></label> | <</if>> <<if _swarmamounts.butt[1] gte 1 and !playerChastity("anus")>> <label><span class="brat">Pull the $swarm["type"] out of your anus</span> <<radiobutton "$leftaction" "backpurgeleft" checked>></label> | <</if>> <<if _swarmamounts.butt[0] gte 1 and !playerChastity("anus")>> <label><span class="brat">Keep the $swarm["type"] away from your butt</span> <<radiobutton "$leftaction" "backclearleft" checked>></label> | <</if>> <<if _swarmamounts.chest gte 1>> <label><span class="brat">Clear the $swarm["type"] off of your chest</span> <<radiobutton "$leftaction" "chestclearleft">></label> | <</if>> <<if $water is 1 and $vorecreature is 0 and ($consensual isnot 1 or $gamemode is "soft")>> <label><span class="teal">Swim to safety</span> <<radiobutton "$leftaction" "swim" checked>></label> | <</if>> <<if $vorecreature is 0>> <label>Rest <<radiobutton "$leftaction" "swarmrest">></label> | <</if>> <br><br> <</if>> <<if $rightarm is "bound">> Your right arm is bound and helpless. <<if $gamemode is "soft" and $nowiggle isnot true>> <br> <label>Wriggle free<<radiobutton "$rightaction" "rightwriggle" checked>></label> | <</if>> <br><br> <<elseif $rightarm is "swarmgrappled">> <span class="purple">The $swarm["type"] are constricting your right arm!</span> <br><br> <<elseif $rightarm is 0>> Your right arm is free. <br> <<if $leftarm is "swarmgrappled">> <label><span class="brat">Free your left arm</span> <<radiobutton "$rightaction" "rightfree">></label> | <<elseif _swarmamounts.active[2] gte 1>> <label>_swarmsteady one of the <<swarmName>> <<radiobutton "$rightaction" "rightswarm">></label> | <</if>> <<if _swarmamounts.genital[0] lte 0 and _swarmamounts.genital[1] lte 0>> <label>Cover your <<genitals>> <<radiobutton "$rightaction" "frontcoverright" checked>></label> | <</if>> <<if _swarmamounts.butt[0] lte 0 and _swarmamounts.butt[1] lte 0>> <label>Cover your butt <<radiobutton "$rightaction" "backcoverright">></label> | <</if>> <<if _swarmamounts.chest lte 0>> <label>Cover your chest <<radiobutton "$rightaction" "chestcoverright">></label> | <</if>> <<if _swarmamounts.genital[1] gte 1 and !playerChastity("hidden")>> <label><span class="brat">Pull the $swarm["type"] from your <<genitals>></span> <<radiobutton "$rightaction" "frontpurgeright" checked>></label> | <</if>> <<if _swarmamounts.genital[0] gte 1 and !playerChastity("hidden")>> <label><span class="brat">Keep the $swarm["type"] away from your <<genitals>></span> <<radiobutton "$rightaction" "frontclearright" checked>></label> | <</if>> <<if _swarmamounts.butt[1] gte 1 and !playerChastity("anus")>> <label><span class="brat">Pull the $swarm["type"] out of your anus</span> <<radiobutton "$rightaction" "backpurgeright">></label> | <</if>> <<if _swarmamounts.butt[0] gte 1 and !playerChastity("anus")>> <label><span class="brat">Keep the $swarm["type"] away from your butt</span> <<radiobutton "$rightaction" "backclearright">></label> | <</if>> <<if _swarmamounts.chest gte 1>> <label><span class="brat">Clear the $swarm["type"] off of your chest</span> <<radiobutton "$rightaction" "chestclearright">></label> | <</if>> <<if $water is 1 and $vorecreature is 0 and ($consensual isnot 1 or $gamemode is "soft")>> <label><span class="teal">Swim to safety</span> <<radiobutton "$rightaction" "swim" checked>></label> | <</if>> <<if $vorecreature is 0>> <label>Rest <<radiobutton "$rightaction" "swarmrest">></label> | <</if>> <br><br> <</if>> <<if $feetuse is 0>> Your feet are free. <br> <<if $swarm.amount.active[2] gte 1>> <label>_swarmsteady one of the <<swarmName>> <<radiobutton "$feetaction" "feetswarm" checked>></label> | <</if>> <<if $water is 1 and $vorecreature is 0 and currentSkillValue('swimmingskill') gt 700 and $consensual isnot 1>> <label><span class="teal">Swim to safety</span> <<radiobutton "$feetaction" "swim" checked>></label> | <</if>> <<if $vorecreature is 0>> <label>Rest <<radiobutton "$feetaction" "swarmrest">></label> | <</if>> <</if>> <br><br> <</if>> <br><br><br> </div> <</widget>><<widget "swarmeffects">> <<effectspain>> <<effectsorgasm>> <<effectsdissociation>> <<set _swarmamounts to $swarm.amount>> /* -------- Clothes -------- */ <<effectshandsclothes>> /* -------- Arms and Legs -------- */ <<if $leftaction is "swim" and $rightaction is "swim" and $feetaction is "swim">> <<set $leftactiondefault to $leftaction>> <<set $rightactiondefault to $rightaction>> <<set $feetactiondefault to $feetaction>> <<set $leftaction to 0>> <<set $rightaction to 0>> <<set $feetaction to 0>> <<set $swimdistance -= 3>> You paddle towards safety with your arms and legs. <</if>> <<if $leftaction is "swarmrest" and $rightaction is "swarmrest" and $feetaction is "swarmrest">> <<set $leftactiondefault to $leftaction>> <<set $rightactiondefault to $rightaction>> <<set $feetactiondefault to $feetaction>> <<set $leftaction to 0>> <<set $rightaction to 0>> <<set $feetaction to 0>> You rest your arms and legs. <</if>> /* -------- Both Arms -------- */ <<if $leftaction is "swim" and $rightaction is "swim">> <<set $leftactiondefault to $leftaction>> <<set $rightactiondefault to $rightaction>> <<set $leftaction to 0>> <<set $rightaction to 0>> <<set $swimdistance -= 2>> You paddle towards safety with both arms. <</if>> <<if $leftaction is "swarmrest" and $rightaction is "swarmrest">> <<set $leftactiondefault to $leftaction>> <<set $rightactiondefault to $rightaction>> <<set $leftaction to 0>> <<set $rightaction to 0>> You rest your arms. <</if>> /* -------- Legs and Left Arm -------- */ <<if $leftaction is "swim" and $feetaction is "swim">> <<set $leftactiondefault to $leftaction>> <<set $feetactiondefault to $feetaction>> <<set $leftaction to 0>> <<set $feetaction to 0>> <<set $swimdistance -= 2>> You paddle towards safety with your legs and left arm. <</if>> <<if $leftaction is "swarmrest" and $feetaction is "swarmrest">> <<set $leftactiondefault to $leftaction>> <<set $feetactiondefault to $feetaction>> <<set $leftaction to 0>> <<set $feetaction to 0>> You rest your legs and left arm. <</if>> /* -------- Legs and Right Arm -------- */ <<if $rightaction is "swim" and $feetaction is "swim">> <<set $rightactiondefault to $rightaction>> <<set $feetactiondefault to $feetaction>> <<set $rightaction to 0>> <<set $feetaction to 0>> <<set $swimdistance -= 2>> You paddle towards safety with your legs and right arm. <</if>> <<if $rightaction is "swarmrest" and $feetaction is "swarmrest">> <<set $rightactiondefault to $rightaction>> <<set $feetactiondefault to $feetaction>> <<set $rightaction to 0>> <<set $feetaction to 0>> You rest your legs and right arm. <</if>> /* -------- Left Arm -------- */ <<if $leftaction is "leftwriggle">> <<set $leftactiondefault to "swim">> <<set $leftaction to 0>> <<if $leftarm is "bound">> <<unbind>><span class="green">You wriggle free from your bonds.</span> <</if>> <</if>> <<if $leftaction is "leftfree">> <<set $leftactiondefault to "swim">> <<set $leftaction to 0>> <<set $rightarm to 0>> <span class="lblue">You push away the $swarm["type"] covering your right arm, freeing it.</span> <</if>> <<if $leftaction is "leftswarm">> <<set $leftactiondefault to "leftswarm">> <<set $leftaction to 0>> <<set _swarmamounts.active[2] -= 1>> <<set _swarmamounts.active[3] += 1>> <span class="lblue">You $swarm["steady"] one of the <<swarmName>> with your left hand.</span> <</if>> <<if $leftaction is "frontcoverleft">> <<set $leftactiondefault to "frontcoverleft">> <<set $leftaction to 0>> <<set $front to "covered">> You cover your <<genitals>> with your left hand to prevent the $swarm["type"] from violating you. <</if>> <<if $leftaction is "backcoverleft">> <<set $leftactiondefault to "backcoverleft">> <<set $leftaction to 0>> <<set $back to "covered">> You cover your butt with your left hand. Hopefully it will keep the $swarm["type"] from invading your rear. They prod and poke without success, for now. <</if>> <<if $leftaction is "chestcoverleft">> <<set $leftactiondefault to "chestcoverleft">> <<set $leftaction to 0>> <<set $chest to "covered">> You cover your chest with your left hand, keeping the $swarm["type"] away from your sensitive bust. <</if>> <<if $leftaction is "frontpurgeleft">> <<set $leftaction to 0>> <<set _swarmamounts.genital[1] -= 1>> <<set _swarmamounts.active[4] += 1>> <span class="teal">You remove some of the $swarm["type"] that are <<print ($player.vaginaExist ? "penetrating" : "wrapped around")>> your <<if $player.vaginaExist and $player.penisExist>><<pussy>><<else>><<genitals>><</if>>.</span> <<if _swarmamounts.genital[1] gte 1>> <<set $leftactiondefault to "frontpurgeleft">> However, there are still some violating you. <<else>> <<set $leftactiondefault to "swim">> You think you got them all, for now. <</if>> <</if>> <<if $leftaction is "frontclearleft">> <<set $leftaction to 0>> <<set _swarmamounts.genital[0] -= 1>> <<set _swarmamounts.active[4] += 1>> <span class="lblue">You prevent the encroaching $swarm["type"] from <<print ($player.vaginaExist ? "entering" : "enveloping")>> your <<if $player.vaginaExist and $player.penisExist>><<pussy>><<else>><<genitals>><</if>>.</span> <<if _swarmamounts.genital[0] gte 1>> <<set $leftactiondefault to "frontclearleft">> <span class="purple">There are so many however, that some make it through your guard.</span> <<else>> <<set $leftactiondefault to "swim">> <</if>> <</if>> <<if $leftaction is "backpurgeleft">> <<set $leftaction to 0>> <<set _swarmamounts.butt[1] -= 1>> <<set _swarmamounts.active[4] += 1>> <span class="teal">You extract some of the $swarm["type"] from your anus.</span> <<if _swarmamounts.butt[1] gte 1>> <<set $leftactiondefault to "backpurgeleft">> However, there are still some infesting you. <<else>> <<set $leftactiondefault to "swim">> You think you got them all. <</if>> <</if>> <<if $leftaction is "backclearleft">> <<set $leftaction to 0>> <<set _swarmamounts.butt[0] -= 1>> <<set _swarmamounts.active[4] += 1>> <span class="lblue">You prevent the encroaching $swarm["type"] from burrowing into your anus.</span> <<if _swarmamounts.butt[0] gte 1>> <<set $leftactiondefault to "backclearleft">> <span class="purple">There are so many however, that some make it through your guard.</span> <<else>> <<set $leftactiondefault to "swim">> <</if>> <</if>> <<if $leftaction is "chestclearleft">> <<set $leftaction to 0>> <<set _swarmamounts.chest -= 1>> <<set _swarmamounts.active[4] += 1>> <span class="lblue">You clear away some of the $swarm["type"] around your sensitive nipples.</span> <<if _swarmamounts.chest gte 1>> <<set $leftactiondefault to "chestclearleft">> <span class="purple">Many more remain however.</span> <<else>> <<set $leftactiondefault to "swim">> <</if>> <</if>> <<if $leftaction is "swim">> <<set $leftactiondefault to "swim">> <<set $leftaction to 0>> <<set $swimdistance -= 1>> You paddle towards safety with your left arm. <</if>> <<if $leftaction is "swarmrest">> <<set $leftactiondefault to "swarmrest">> <<set $leftaction to 0>> You rest your left arm. <</if>> /* -------- Right Arm -------- */ <<if $rightaction is "rightwriggle">> <<set $rightactiondefault to "swim">> <<set $rightaction to 0>> <<if $rightarm is "bound">> <<unbind>><span class="green">You wriggle free from your bonds.</span> <</if>> <</if>> <<if $rightaction is "rightfree">> <<set $rightactiondefault to "swim">> <<set $rightaction to 0>> <<set $leftarm to 0>> <span class="lblue">You push away the $swarm["type"] covering your left arm, freeing it.</span> <</if>> <<if $rightaction is "rightswarm">> <<set $rightactiondefault to "rightswarm">> <<set $rightaction to 0>> <<set _swarmamounts.active[2] -= 1>> <<set _swarmamounts.active[3] += 1>> <span class="lblue">You $swarm["steady"] one of the <<swarmName>> with your right hand.</span> <</if>> <<if $rightaction is "frontcoverright">> <<set $rightactiondefault to "frontcoverright">> <<set $rightaction to 0>> <<set $front to "covered">> You cover your <<genitals>> with your right hand to prevent the $swarm["type"] from violating you. <</if>> <<if $rightaction is "backcoverright">> <<set $rightactiondefault to "backcoverright">> <<set $rightaction to 0>> <<set $back to "covered">> You cover your butt with your right hand. Hopefully it will keep the $swarm["type"] from invading your rear. <</if>> <<if $rightaction is "chestcoverright">> <<set $rightactiondefault to "chestcoverright">> <<set $rightaction to 0>> <<set $chest to "covered">> You cover your chest with your right hand, keeping the $swarm["type"] away from your sensitive bust. <</if>> <<if $rightaction is "frontpurgeright">> <<set $rightaction to 0>> <<set _swarmamounts.genital[1] -= 1>> <<set _swarmamounts.active[4] += 1>> <span class="teal">You remove some of the $swarm["type"] that are <<print ($player.vaginaExist ? "penetrating" : "wrapped around")>> your <<if $player.vaginaExist and $player.penisExist>><<pussy>><<else>><<genitals>><</if>>.</span> <<if _swarmamounts.genital[1] gte 1>> <<set $rightactiondefault to "frontpurgeright">> However, there are still some violating you. <<else>> <<set $rightactiondefault to "swim">> You think you got them all, for now. <</if>> <</if>> <<if $rightaction is "frontclearright">> <<set $rightaction to 0>> <<set _swarmamounts.genital[0] -= 1>> <<set _swarmamounts.active[4] += 1>> <span class="lblue">You prevent the encroaching $swarm["type"] from <<print ($player.vaginaExist ? "entering" : "enveloping")>> your <<if $player.vaginaExist and $player.penisExist>><<pussy>><<else>><<genitals>><</if>>.</span> <<if _swarmamounts.genital[0] gte 1>> <<set $rightactiondefault to "frontclearright">> <span class="purple">There are so many however, that some make it through your guard.</span> <<else>> <<set $rightactiondefault to "swim">> <</if>> <</if>> <<if $rightaction is "backpurgeright">> <<set $rightaction to 0>> <<set _swarmamounts.butt[1] -= 1>> <<set _swarmamounts.active[4] += 1>> <span class="teal">You extract some of the $swarm["type"] from your anus.</span> <<if _swarmamounts.butt[1] gte 1>> <<set $rightactiondefault to "backpurgeright">> However, there are still some infesting you. <<else>> <<set $rightactiondefault to "swim">> You think you got them all. <</if>> <</if>> <<if $rightaction is "backclearright">> <<set $rightaction to 0>> <<set _swarmamounts.butt[0] -= 1>> <<set _swarmamounts.active[4] += 1>> <span class="lblue">You prevent the encroaching $swarm["type"] from burrowing into your anus.</span> <<if _swarmamounts.butt[0] gte 1>> <<set $rightactiondefault to "backclearright">> <span class="purple">There are so many however, that some make it through your guard.</span> <<else>> <<set $rightactiondefault to "swim">> <</if>> <</if>> <<if $rightaction is "chestclearright">> <<set $rightaction to 0>> <<set _swarmamounts.chest -= 1>> <<set _swarmamounts.active[4] += 1>> <span class="lblue">You clear away some of the $swarm["type"] around your sensitive nipples.</span> <<if _swarmamounts.chest gte 1>> <<set $rightactiondefault to "chestclearright">> <span class="purple">Many more remain however.</span> <<else>> <<set $rightactiondefault to "swim">> <</if>> <</if>> <<if $rightaction is "swim">> <<set $rightactiondefault to "swim">> <<set $rightaction to 0>> <<set $swimdistance -= 1>> You paddle towards safety with your right arm. <</if>> <<if $rightaction is "swarmrest">> <<set $rightactiondefault to "swarmrest">> <<set $rightaction to 0>> You rest your right arm. <</if>> /* -------- Legs -------- */ <<if $feetaction is "feetswarm">> <<set $feetactiondefault to "feetswarm">> <<set $feetaction to 0>> <<set $swarm.amount.active[2] -= 1>> <<set $swarm.amount.active[3] += 1>> <span class="lblue">You $swarm["steady"] one of the <<swarmName>> with your feet.</span> <</if>> <<if $feetaction is "swim">> <<set $feetactiondefault to "swim">> <<set $feetaction to 0>> <<set $swimdistance -= 1>> You paddle towards safety with your legs. <</if>> <<if $feetaction is "swarmrest">> <<set $feetactiondefault to "swarmrest">> <<set $feetaction to 0>> You rest your legs. <</if>> <br><br> <</widget>><<widget "swarminit">> /* Example call <<swarminit "fish" "container" "shaking" "shatter" "steady" 4 6>> */ /* <<swarminit type name move spill steady amountactive amountstored>> */ /* Define Data to make each swarmer type unique Milk: Sets of the swarm type is attracted to PC's chest when lactating */ <<set _swarmdats to { "fish":{"milk":1}, "eels":{"milk":1}, "snakes":{"milk":1}, "spiders":{"milk":0}, "slimes":{"milk":1}, "pale slimes":{"milk":1}, "maggots":{"milk":0}, "worms":{"milk":0} }>> /* This contains the persistent data we will use for the encounter. */ <<set $swarm to { "data": _swarmdats[_args[0]], "type":_args[0], "name":_args[1], "move":_args[2], "spill":_args[3], "steady":_args[4], "amount":{ "active":[_args[5],_args[6],0,0,_args[5]], "chest":0, "genital":[0,0], "butt":[0,0] } }>> <<set $enemyarousal to 0>> <</widget>> <<widget "swarm">> <div @class="($debugLines ? 'debugLines-swarm' : '')"> <<set $position to "doggy">> <<set _swarmnote to { "activate":0, "chestintro":0, "chestcovered":0, "chestintroclothed":0, "chestclothed":0, "chestmolest":0, "chestmilk":0, "buttintro":0, "buttcovered":0, "buttlowerclothed":0, "buttlowerintroclothed":0, "buttunderclothed":0, "buttunderintroclothed":0, "buttmolest":0, "buttchasity":0, "buttinsideintro":0, "genitalintro":0, "genitalcovered":0, "genitallowerclothed":0, "genitallowerintroclothed":0, "genitalunderclothed":0, "genitalunderintroclothed":0, "genitalmolest":0, "genitalchasity":0, "genitalinsideintro":0, }>> <<set _swarmamounts to $swarm.amount>> <<set _swarmcreature to $swarm.type>> <<set _swarmactive to _swarmamounts.active[0]>> /* Swarm Targeting priorities */ <<set _swarmchance to {"chest":30,"butt":30,"genital":30}>> <<if !$settings.analEnabled>> <<set _swarmchance["butt"] to 0>><<set _swarmchance["chest"] += 10>><<set _swarmchance["genital"] += 20>> <</if>> /* Chest related activities */ <<if _swarmamounts.chest gt 0>> /* Swarms didn't do much after going to the chest before */ <<if $lactating gte 1 and $settings.breastFeedingEnabled>> <<if $milk_amount gte 1>> /* Milky, maybe milk attracts swarmers to the breasts */ <<set _swarmnote.chestmilk to 1>> <<breastfeed>> <<if $swarm.data["milk"] gt 0>> <<set _swarmchance["chest"] += 15>>/*Increase chest roll ratio since the swarm is attracted to milk*/ <</if>> <</if>> <</if>> <</if>> /* Butt related activities */ <<if _swarmamounts.butt[1] gt 0>> /* Inside Activities */ <</if>> <<if _swarmamounts.butt[0] gt 0>> <<set _swarmnote.buttinsideintro += _swarmamounts.butt[0]>> <<set _swarmamounts.butt[1] += _swarmamounts.butt[0]>><<set _swarmamounts.butt[0] to 0>> <</if>> /* Genital related activities */ <<if _swarmamounts.genital[1] gt 0>> /* Inside Activities */ <</if>> <<if _swarmamounts.genital[0] gt 0>> <<set _swarmnote.genitalinsideintro += _swarmamounts.genital[0]>> <<set _swarmamounts.genital[1] += _swarmamounts.genital[0]>><<set _swarmamounts.genital[0] to 0>> <</if>> /* Handle the active swarm and give them targets to go after */ <<for _i to 0; _i lt _swarmamounts.active[4]; _i++>> <<rng>> <<if $rng lte _swarmactive * 20>> <<rng _swarmchance["chest"]+_swarmchance["butt"]+_swarmchance["genital"]>> <<if $rng lte _swarmchance["chest"]>> <<if $chest is "covered">> <<set _swarmnote.chestcovered += 1>> <<arousal 10 "breasts">> <<else>> <<rng>> <<if $rng lte _swarmactive * 20>> <<outfitChecks>> <<if _shirtless>> <<set _swarmamounts.chest += 1>><<set _swarmamounts.active[4] -= 1>> <<set _swarmnote.chestintro += 1>> <<neutral 3 "breasts">> <<else>> <<rng>> <<if $rng gte 81>> /* Maybe smaller swarmers are more likely to get under cloths */ <<set _swarmamounts.chest += 1>><<set _swarmamounts.active[4] -= 1>> <<set _swarmnote.chestintroclothed += 1>> <<neutral 3 "breasts">> <<else>> <<set _swarmnote.chestclothed += 1>> <<if !$worn.over_upper.type.includes("naked")>> <<set $worn.over_upper.integrity -= 2>> <</if>> <<if !$worn.upper.type.includes("naked")>> <<set $worn.upper.integrity -= 2>> <</if>> <<neutral 1 "breasts">> <</if>> <</if>> <<else>> <<set _swarmnote.chestmolest += 1>> <<if !$worn.over_upper.type.includes("naked")>> <<set $worn.over_upper.integrity -= 2>> <</if>> <<if !$worn.upper.type.includes("naked")>> <<set $worn.upper.integrity -= 2>> <</if>> <<neutral 1 "breasts">> <</if>> <</if>> <<elseif $rng gt _swarmchance["chest"] and $rng lte _swarmchance["chest"]+_swarmchance["butt"]>> /* Butt */ <<if $back is "covered">> <<set _swarmnote.buttcovered += 1>> <<arousal 10 "bottom">> <<else>> <<rng>> <<if $rng lte _swarmactive * 20>> <<rng>> <<if $rng gte 81>> /*Chance swarm bypass clothing*/ <<neutral 4 "bottom">> <<set _swarmamounts.butt[0] += 1>><<set _swarmamounts.active[4] -= 1>> <<if $worn.under_lower.type.includes("naked") and !(playerChastity("hidden") and playerChastity("anus"))>> <<if (!$worn.over_lower.type.includes("naked") and setup.clothes.over_lower[clothesIndex('over_lower', $worn.over_lower)].skirt is 0) or (!$worn.lower.type.includes("naked") and setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 0)>> <<set _swarmnote.buttlowerintroclothed += 1>> <<else>> <<set _swarmnote.buttintro += 1>> <</if>> <<elseif playerChastity("hidden") and playerChastity("anus")>> <<set _swarmnote.buttchasity += 1>> <<else>> <<set _swarmnote.buttunderintroclothed += 1>> <</if>> <<else>> <<if (!$worn.over_lower.type.includes("naked") and setup.clothes.over_lower[clothesIndex('over_lower', $worn.over_lower)].skirt is 0) or (!$worn.lower.type.includes("naked") and setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 0)>> <<set _swarmnote.buttlowerclothed += 1>> <<if !$worn.over_lower.type.includes("naked")>> <<set $worn.over_lower.integrity -= 2>> <</if>> <<if !$worn.lower.type.includes("naked")>> <<set $worn.lower.integrity -= 2>> <</if>> <<neutral 1>> <<elseif !$worn.under_lower.type.includes("naked")>> <<set _swarmnote.buttunderclothed+= 1>> <<set $worn.under_lower.integrity -= 2>> <<neutral 1>> <<elseif playerChastity("hidden") and playerChastity("anus")>> <<set _swarmamounts.butt[0] += 1>><<set _swarmamounts.active[4] -= 1>> <<set _swarmnote.buttchasity += 1>> <<neutral 4>> <<else>> <<set _swarmamounts.butt[0] += 1>><<set _swarmamounts.active[4] -= 1>> <<set _swarmnote.buttintro += 1>> <<neutral 4>> <</if>> <</if>> <<else>> <<set _swarmnote.buttmolest += 1>> <<set $worn.lower.integrity -= 2>> <<if $worn.lower.type.includes("naked")>> <<set $worn.under_lower.integrity -= 2>> <</if>> <<neutral 1 "bottom">> <</if>> <</if>> <<elseif $rng gt _swarmchance["chest"]+_swarmchance["butt"]>> /* Genitals */ <<if $front is "covered">> <<set _swarmnote.genitalcovered += 1>> <<arousal 10 "genitals">> <<else>> <<rng>> <<if $rng lte _swarmactive * 20>> <<rng>> <<if $rng gte 81>> <<set _swarmamounts.genital[0] += 1>><<set _swarmamounts.active[4] -= 1>> <<neutral 4 "genitals">> <<if $worn.under_lower.type.includes("naked") and !playerChastity("hidden")>> <<if (!$worn.over_lower.type.includes("naked") and setup.clothes.over_lower[clothesIndex('over_lower', $worn.over_lower)].skirt is 0) or (!$worn.lower.type.includes("naked") and setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 0)>> <<set _swarmnote.genitallowerintroclothed += 1>> <<else>> <<set _swarmnote.genitalintro += 1>> <</if>> <<elseif playerChastity("hidden")>> <<set _swarmnote.genitalchasity += 1>> <<else>> <<set _swarmnote.genitalunderintroclothed += 1>> <</if>> <<else>> <<if (!$worn.over_lower.type.includes("naked") and setup.clothes.over_lower[clothesIndex('over_lower', $worn.over_lower)].skirt is 0) or (!$worn.lower.type.includes("naked") and setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 0)>> <<set _swarmnote.genitallowerclothed+= 1>> <<if !$worn.over_lower.type.includes("naked")>> <<set $worn.over_lower.integrity -= 2>> <</if>> <<if !$worn.lower.type.includes("naked")>> <<set $worn.lower.integrity -= 2>> <</if>> <<neutral 1 "genitals">> <<elseif !$worn.under_lower.type.includes("naked")>> <<set _swarmnote.genitalunderclothed += 1>> <<set $worn.under_lower.integrity -= 2>> <<neutral 1 "genitals">> <<elseif playerChastity("hidden")>> <<set _swarmamounts.genital[0] += 1>><<set _swarmamounts.active[4] -= 1>> <<set _swarmnote.genitalchasity += 1>> <<neutral 4 "genitals">> <<else>> <<set _swarmamounts.genital[0] += 1>><<set _swarmamounts.active[4] -= 1>> <<set _swarmnote.genitalintro += 1>> <<neutral 4 "genitals">> <</if>> <</if>> <<else>> <<set _swarmnote.genitalmolest += 1>> <<set $worn.lower.integrity -= 2>> <<if $worn.lower.type.includes("naked")>> <<set $worn.under_lower.integrity -= 2>> <</if>> <<neutral 1 "genitals">> <</if>> <</if>> <</if>> <<else>> <<arousal 10>> <</if>> <</for>> /* pending -> active */ <<if _swarmamounts.active[2] gt 0>> <<set _swarmamounts.active[0] += _swarmamounts.active[2]>> <<set _swarmamounts.active[4] += _swarmamounts.active[2]>> <<set _swarmamounts.active[2] to 0>> <<set _swarmnote.activate to 1>> <</if>> /* 0:active, 1:contained, 2:pending, 3:steadied 4:idle*/ <<if _swarmamounts.active[1] gt 0>>/* contained -> pending */ <<for _i to 0; _i lt _swarmamounts.active[1]; _i++>> <<rng>> <<if $rng gte 51>> /* Maybe this number can be augmented by something? */ <<set _swarmamounts.active[1] -= 1>> <<set _swarmamounts.active[2] += 1>> <</if>> <</for>> <</if>> /* steadied -> contained */ <<set _swarmamounts.active[1] += _swarmamounts.active[3]>> <<set _swarmamounts.active[3] to 0>> /* --------- Text Notifications ---------*/ <<if _swarmnote.activate gte 1>> <<set _swarmnote.activate to 0>> The <<swarmName>> $swarm.spill, surrounding you with more $swarm.type. <</if>> <<if _swarmamounts.active[2] gte 1>> <<set $_remainingSwarms to _swarmamounts.active[1] + _swarmamounts.active[2]>> There <<if $_remainingSwarms gt 1>>are<<else>>is<</if>> <<number $_remainingSwarms>> <<swarmName $_remainingSwarms>> and <span class="blue"><<if _swarmamounts.active[1] + _swarmamounts.active[2] is 1>>it<<else>><<number _swarmamounts.active[2]>> of them<</if>> <<if _swarmamounts.active[2] gte 2>>are<<else>>is<</if>> $swarm.move.</span> <</if>> <<if _swarmactive lte 0>> <<elseif _swarmactive lte 1>> The _swarmcreature are squirming over you. <<elseif _swarmactive lte 2>> The _swarmcreature are swarming over you. <<elseif _swarmactive lte 3>> The _swarmcreature teem around you. <<elseif _swarmactive lte 4>> You're practically swimming in _swarmcreature. <<elseif _swarmactive lte 9>> The _swarmcreature completely surround you. <<elseif _swarmactive gte 10>> <span class="pink">The _swarmcreature completely surround you, as if you are in a living pit.<<if $orgasmdown gte 1>> Not an inch of skin is spared the torment.<</if>></span> <</if>> <<rng>> <<if $rng gte 91 and $leftarm is 0 and $rightarm is 0>> <<if $rng gte 96>> <<set $leftarm to "swarmgrappled">><<set $lefttarget to "swarm">> <span class="purple">The $swarm["type"] swarm over your left arm, restraining it.</span> <<else>> <<set $rightarm to "swarmgrappled">><<set $righttarget to "swarm">> <span class="purple">The $swarm["type"] swarm over your right arm, restraining it.</span> <</if>> <</if>> /* -------- Chest -------- */ <<if _swarmnote.chestcovered gte 1>> <<set _swarmnote.chestcovered to 0>> You manage to keep them away from your chest. <</if>> <<if _swarmnote.chestmolest gte 1>> <<set _swarmnote.chestmolest to 0>> They writhe over your <<print either("chest", "stomach", "back", "neck", "arms")>>. <</if>> <<if _swarmnote.chestclothed gte 1>> <<set _swarmnote.chestclothed to 0>> Some of them assault and damage your <<if !$worn.over_upper.type.includes("naked")>> $worn.upper.name<<if !$worn.upper.type.includes("naked")>> and<<else>>,<</if>> <</if>> <<if !$worn.upper.type.includes("naked")>> $worn.upper.name, <</if>> trying to get to the skin beneath. <</if>> <<if _swarmnote.chestintro gte 1>> <<set _swarmnote.chestintro to 0>> <<if _swarmamounts.chest gte 1>> <span class="purple">More $swarm["type"] gather around your <<breasts>>.</span> <<else>> <span class="purple">A number of them take a liking to your <<breasts>>.</span> <</if>> <</if>> <<if _swarmnote.chestintroclothed gte 1>> <<set _swarmnote.chestintroclothed to 0>> <span class="purple">Some of them wriggle their way into your <<if !$worn.over_upper.type.includes("naked")>> $worn.upper.name<<if !$worn.upper.type.includes("naked")>> and<<else>>,<</if>> <</if>> <<if !$worn.upper.type.includes("naked")>> $worn.upper.name, <</if>> where they take a liking to your <<breasts>>.</span> <</if>> <<if _swarmamounts.chest gte 1>> <<playWithBreasts _swarmamounts.chest>> <<arousal `_swarmamounts.chest * 20`>> <<neutral 5 "breasts">> <<if _swarmnote.chestmilk gte 1>> <<set _swarmnote.chestmilk to 0>> They twist and tease your <<nipples>>, <span class="purple">causing milk to leak out of the tips.</span> /*Maybe put a notification here, about swarmers that are attracted to milk?*/ <<else>> They twist and tease your <<nipples>>, keeping them firm. <</if>> <</if>> /* -------- Butts --------*/ <<if _swarmnote.buttcovered gte 1>> <<set _swarmnote.buttcovered to 0>> You manage to keep them away from your butt. <</if>> <<if _swarmnote.buttmolest gte 1>> <<set _swarmnote.buttmolest to 0>> They writhe over your <<print either("butt", "thighs", "legs")>>. <</if>> <<if _swarmnote.buttlowerclothed gte 1>> <<set _swarmnote.buttlowerclothed to 0>> <<if $worn.over_lower.name is "naked" and $worn.lower.name is "naked">> Some tear apart the ruined scraps of your clothing. <<else>> Some of them burrow into your <<if !$worn.over_lower.type.includes("naked")>> $worn.over_lower.name<<if !$worn.lower.type.includes("naked")>> and<<else>>,<</if>> <</if>> <<if !$worn.lower.type.includes("naked")>> $worn.lower.name, <</if>> tearing the fabric. <</if>> <</if>> <<if _swarmnote.buttunderclothed gte 1>> <<set _swarmnote.buttunderclothed to 0>> Some of them assail your $worn.under_lower.name, tearing the fabric. <</if>> <<if _swarmnote.buttlowerintroclothed gte 1>> <<set _swarmnote.buttlowerintroclothed to 0>> <span class="purple">Some of them wriggle their way into your <<if !$worn.over_lower.type.includes("naked")>> $worn.over_lower.name<<if !$worn.lower.type.includes("naked")>> and<<else>>,<</if>> <</if>> <<if !$worn.lower.type.includes("naked")>> $worn.lower.name, <</if>> you feel them moving toward your anus.</span> <</if>> <<if _swarmnote.buttunderintroclothed gte 1>> <<set _swarmnote.buttunderintroclothed to 0>> <span class="purple">Some of them wriggle their way into your $worn.under_lower.name, you feel them moving toward your anus.</span> <</if>> <<if _swarmnote.buttchasity gte 1>> <<set _swarmnote.buttchasity to 0>> <span class="purple">Some of them wriggle their way into your $worn.genitals.name; you feel them moving toward your <<genitals 1>>.</span> <span class="pink">With your $worn.genitals.name anal shield in the way, you won't be able to get them out!</span> <<if $settings.parasitesEnabled>> <<set $analchastityparasite to $swarm["type"]>> <</if>> <</if>> <<if _swarmnote.buttintro gte 1>> <<set _swarmnote.buttintro to 0>> <span class="purple">They swarm around your butt, you feel them move toward your anus.</span> <</if>> <<if _swarmnote.buttinsideintro gte 1>> <<set _swarmnote.buttinsideintro to 0>> <span class="pink">They start squirming their way into your <<bottom>>.</span> <</if>> <<if _swarmamounts.butt[1] gte 1>> <<neutral 10 "bottom">><<impregnateParasite $swarm["type"] _swarmamounts.butt[1]>> They writhe inside your lower intestine<<if $player.sex isnot "f">>, blindly teasing your prostate<</if>><<if _impreg is true>><<if $player.sex isnot "f">>,<</if>> and <span class="red">attempt to move further inside you</span><</if>>. <<set _impreg to false>> <<arousal `_swarmamounts.butt[1] * 20`>> <</if>> /* -------- Genital -------- */ <<if _swarmnote.genitalcovered gte 1>> <<set _swarmnote.genitalcovered to 0>> You manage to keep them away from your <<genitals>>. <</if>> <<if _swarmnote.genitalmolest gte 1>> <<set _swarmnote.genitalmolest to 0>> You feel them writhing over your <<if !$worn.lower.type.includes("naked") and setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt isnot 1>><<genitals>> through your <<if !$worn.over_lower.type.includes("naked")>> $worn.over_lower.name<<if !$worn.lower.type.includes("naked")>> and<<else>>.<</if>> <</if>> <<if !$worn.lower.type.includes("naked")>> $worn.lower.name. <</if>> <<elseif !$worn.under_lower.type.includes("naked")>> <<genitals>> through your $worn.under_lower.name.<<else>>unprotected <<genitals>>. <</if>> <</if>> <<if _swarmnote.genitallowerclothed gte 1>> <<set _swarmnote.genitallowerclothed to 0>> Some of them start tearing into your <<if !$worn.over_lower.type.includes("naked")>> $worn.over_lower.name<<if !$worn.lower.type.includes("naked")>> and<<else>>.<</if>> <</if>> <<if !$worn.lower.type.includes("naked")>> $worn.lower.name. <</if>> <</if>> <<if _swarmnote.genitalunderclothed gte 1>> <<set _swarmnote.genitalunderclothed to 0>> Some of them try to breach your $worn.under_lower.name, trying to get to the skin beneath. <</if>> <<if _swarmnote.genitallowerintroclothed gte 1>> <<set _swarmnote.genitallowerintroclothe to 0>> <span class="purple">Some of them wriggle their way into your <<if !$worn.over_lower.type.includes("naked")>> $worn.over_lower.name<<if !$worn.lower.type.includes("naked")>> and<<else>>,<</if>> <</if>> <<if !$worn.lower.type.includes("naked")>> $worn.lower.name, <</if>> you feel them moving toward your <<genitals>>.</span> <</if>> <<if _swarmnote.genitalunderintroclothed gte 1>> <<set _swarmnote.genitalunderintroclothed to 0>> <span class="purple">Some of them wriggle their way into your $worn.under_lower.name, you feel them moving toward your <<genitals>>.</span> <</if>> <<if _swarmnote.genitalchasity gte 1>> <<set _swarmnote.genitalchasity to 0>> <span class="purple">Some of them wriggle their way into your $worn.genitals.name; you feel them moving toward your <<genitals 1>>.</span> <span class="pink">With your $worn.genitals.name in the way, you won't be able to get them out!</span> <<if $settings.parasitesEnabled>> <<if $player.vaginaExist and playerChastity("vagina")>> <<set $vaginalchastityparasite to $swarm["type"]>> <</if>> <<if $player.penisExist and playerChastity("penis")>> <<set $penilechastityparasite to $swarm["type"]>> <</if>> <</if>> <</if>> <<if _swarmnote.genitalintro gte 1>> <<set _swarmnote.genitalintro to 0>> <span class="purple">They swarm around your groin, you feel them move toward your <<genitals>>.</span> <</if>> <<if _swarmnote.genitalinsideintro gte 1>> <<set _swarmnote.genitalinsideintro to 0>> <<if $player.vaginaExist>> <span class="pink">They start squirming their way into your pussy!</span> <<elseif $player.penisExist>> <span class="pink">They start enveloping your penis!</span> <</if>> <</if>> <<if _swarmamounts.genital[1] gte 1>> <<if $player.vaginaExist>> <<impregnateParasite $swarm["type"] _swarmamounts.genital[1] "vagina">> They writhe and squirm inside your vagina, probing and teasing without mercy<<if _impreg is true>>, and <span class="red">attempt to move further inside you</span><</if>>. <<set _impreg to false>> <<arousal `_swarmamounts.genital[1] * 20 * $genitalsensitivity`>> <<neutral 10 "genitals">> <<elseif $player.penisExist>> They writhe and squirm over your penis, rubbing and teasing the entire length. <<arousal `_swarmamounts.genital[1] * 20 * $genitalsensitivity`>> <<neutral 10 "genitals">> <</if>> <</if>> <br><br> <<if $panicattacks gte 1 and $panicviolence is 0 and $panicparalysis is 0 and $controlled is 0 and _panicchecked isnot true>> <<rng>> <<if $rng is 100>> <<set $panicparalysis to 5>> <</if>> <<set _panicchecked to true>> <</if>> <<if $panicattacks gte 2 and $panicviolence is 0 and $panicparalysis is 0 and $controlled is 0 and _paniccheckedviolence isnot true>> <<rng>> <<if $rng is 100>> <<set $panicviolence to 3>> <</if>> <<set _paniccheckedviolence to true>> <</if>> <<if $arousal gte $arousalmax and $orgasmdown lte 0>> <<orgasm>> <</if>> </div> <</widget>> <<widget "swarmName">> <<if _args[0] is undefined or _args[0] gt 1>> <<if $swarm.name.endsWith(" mass")>> <<set _swarmname to $swarm.name + "es">> <<else>> <<set _swarmname to $swarm.name + "s">> <</if>> <<else>> <<set _swarmname to $swarm.name>> <</if>> _swarmname <</widget>>/* Turn NPC into Abomination. Only works if only one NPC generated for now. Can be used mid-combat. */ <<widget "makeAbomination">> <<if $enemyno isnot 1>> <span class="red">ERROR: Only one NPC may be present to turn into an Abomination.</span> <<else>> <<set $abomination to 1>> <<set _tentacleNumber to (_args[0] ? _args[0] : random(2,8))>> <<set _tentacleHealth to (_args[1] ? _args[1] : 15)>> <<set _tentacleType to (_args[2] ? _args[2] : undefined)>> <<set _tentacleVariant to (_args[3] ? _args[3] : undefined)>> <<set _tentacleVarDesc to (_args[4] ? _args[4] : undefined)>> <<tentaclestart _tentacleNumber _tentacleHealth _tentacleType _tentacleVariant _tentacleVarDesc>> <<for _i to 0; _i lt $tentacles.active; _i++>> <<set $enemyhealthmax += $tentacles[_i].tentaclehealth>> <<set $enemyhealth += $tentacles[_i].tentaclehealth>> <<set $enemyarousalmax += $tentacles[_i].tentaclehealth>> <</for>> <</if>> <</widget>> <<widget "effectsabomination">> <<effectsman>> <div @class="($debugLines ? 'debugLines-effectstentacleadv' : '')"> <<for _i to 0; _i lt $tentacles.max; _i++>> <<if $tentacles[_i] isnot undefined>> <<set _tentacle to $tentacles[_i]>> <<effectstentacleadv _tentacle>> <</if>> <</for>> </div> <</widget>> <<widget "abomination">> <<if !$enemytype or ["man","plant"].includes($enemytype)>> <<man>> <<else>> <<beast $enemyno>> <</if>> <<for _i to 0; _i lt $tentacles.max; _i++>> <<set _tentacle to $tentacles[_i]>> <<if _tentacle isnot undefined>> <<tentacleadv _tentacle>> <<set _tentacle.tentaclehealth -= 0.2>><<tentacle_record "attrition" 0.2>> <<set $enemyarousal += 2>> <</if>> <</for>> <</widget>> <<widget "stateabomination">> <<statetentacles>> <<stateman>> <</widget>> <<widget "actionsabomination">> <div @class="($debugLines ? 'debugLines-actionsman' : '')"> <<exposure>> <<set $face to 0>> <<if $enemyno gte 2>> <<set $pronoun to "n">> <<else>> <<if $NPCList[0].pronoun is "m">> <<set $pronoun to "m">> <</if>> <<if $NPCList[0].pronoun is "f">> <<set $pronoun to "f">> <</if>> <<if $NPCList[0].pronoun is "i">> <<set $pronoun to "i">> <</if>> <<if $NPCList[0].pronoun is "n">> <<set $pronoun to "n">> <</if>> <<if $NPCList[0].pronoun is "t">> <<set $pronoun to "t">> <</if>> <</if>> <<animateCombat>> <<if $traumafocus gte 1 and $traumafocusintro isnot 1>> <<set $traumafocusintro to 1>> <i>As you gain focus, you become more and more likely to escape your helpless state of dissociation.</i> <br><br> <</if>> <<if $traumafocus gt random(1, 1000) and $dissociation gte 2 and $combat is 1>> <<set $traumafocus to 0>><<set $trauma -= 1000>><<set $dissociation to 1>> <span class="green">Your lucidity returns.</span> <<ltrauma>> <br> <span class="red">The weight of reality crashes down on you.</span> <br><br> <</if>> <<oxygen 50>> <<willpowerpain>> <<willpowerorgasm>> <<actioncarry>> <<actioncarrydrop>> <<combatstate>> <<carryblock>> <<if $trance lte 0 and $panicparalysis is 0 and ($panicviolence is 0 or $position is "stalk")>> <<if $orgasmdown lte 0 and ($pain lt 100 or $willpowerpain is undefined) and $dissociation lte 1>> <<if $options.images is 1 and $options.combatImages is 1 and $consensual is 1 and $position_lock isnot 1>> <<if $position is "doggy">> | <label>Roll over <<radiobutton "$bodyaction" "missionary">></label> <<elseif $position is "missionary">> | <label>Roll over <<radiobutton "$bodyaction" "doggy">></label> <</if>> <<if $position isnot "stalk">> | <label>Rest <<radiobutton "$bodyaction" "rest" checked>></label> <br> <</if>> <</if>> <</if>> <<if $options.combatControls isnot "disabled">> <<generateActionsAbomination>> <</if>> <br> <</if>> <br><br> <<set $face to 0>> </div> /*Due to how combat is setup, this is the best location for it*/ <<setupMidOrgasm>> <<set _combatend to ($alarm is 1 and $rescue gte 1) or ($enemyhealth lte 0) or ($enemyarousal gte $enemyarousalmax) or ($finish is 1) >> <<if $debug is 1>> __Debug__ <br> <<for _i to 0; _i lt $enemynomax; _i++>> <<print _i>> $NPCList[_i].fullDescription: Head Location: $NPCList[_i].location.head --- Genitals Location: $NPCList[_i].location.genitals <br> Penis: $NPCList[_i].penis --- Vagina: $NPCList[_i].vagina --- Mouth: $NPCList[_i].mouth --- Anus: $NPCList[_i].anus <br><br> <</for>> <</if>> <br><br> <</widget>> <<widget "generateActionsAbomination">> <<set $combat to 1>> <<if _targetlist is undefined>> <<getTargetList>> <</if>> <div id="listContainer"> <div id="leftaction" @class="$options.combatControls + 'Control'"> <<if $lefttarget is "self">> <<leftActionInitSelf>> <<elseif $lefttarget is "tentacles" and Object.values(_targetlistarms).includes("tentacles")>> <<leftActionInitTentacle>> <<else>> <<leftActionInit>> <</if>> </div> <div id="rightaction" @class="$options.combatControls + 'Control'"> <<if $righttarget is "self">> <<rightActionInitSelf>> <<elseif $righttarget is "tentacles" and Object.values(_targetlistarms).includes("tentacles")>> <<rightActionInitTentacle>> <<else>> <<rightActionInit>> <</if>> </div> <div id="feetaction" @class="$options.combatControls + 'Control'"> <<if $feettarget is "self">> <<feetActionInitSelf>> <<elseif $feettarget is "tentacles" and Object.values(_targetlistall).includes("tentacles")>> <<feetActionInitTentacle>> <<else>> <<feetActionInit>> <</if>> </div> <div id="mouthaction" @class="$options.combatControls + 'Control'"> <<if $mouthtarget is "tentacles" and Object.values(_targetlistall).includes("tentacles")>> <<mouthActionInitTentacle>> <<else>> <<mouthActionInit>> <</if>> </div> <<if $player.penisExist>> <div id="penisaction" @class="$options.combatControls + 'Control'"> <<if $penistarget is "tentacles" and Object.values(_targetlistall).includes("tentacles")>> <<penisActionInitTentacle>> <<else>> <<penisActionInit>> <</if>> </div> <</if>> <<if $player.vaginaExist>> <div id="vaginaaction" @class="$options.combatControls + 'Control'"> <<if $vaginatarget is "tentacles" and Object.values(_targetlistall).includes("tentacles")>> <<vaginaActionInitTentacle>> <<else>> <<vaginaActionInit>> <</if>> </div> <</if>> <div id="anusaction" @class="$options.combatControls + 'Control'"> <<if $anustarget is "tentacles" and Object.values(_targetlistall).includes("tentacles")>> <<anusActionInitTentacle>> <<else>> <<anusActionInit>> <</if>> </div> <<if $chestuse is "tentaclerub">> <div id="chestaction" @class="$options.combatControls + 'Control'"> <<chestActionInitTentacle>> </div> <<elseif $chestuse is "penis">> <div id="chestaction" @class="$options.combatControls + 'Control'"> <<chestActionInit>> </div> <</if>> <<if $thighuse isnot 0>> <div id="thighaction" @class="$options.combatControls + 'Control'"> <<thighActionInit>> </div> <</if>> </div> <</widget>><<widget "tentacleact">> <<if $tentacles[$tentacleindex].health lte 0 and $tentacles[$tentacleindex].shaft isnot "finished">> Worn out, the $tentacles[$tentacleindex].name tentacle retracts from you. <<tentacledisable>> <<set $tentacles[$tentacleindex].shaft to "finished">> <<set $tentacles[$tentacleindex].head to "finished">> <</if>> <<if $tentacles[$tentacleindex].shaft is "tummy">> The $tentacles[$tentacleindex].name tentacle <<slithers>> around your tummy, <</if>> <<if $tentacles[$tentacleindex].shaft is "thighs">> The $tentacles[$tentacleindex].name tentacle <<slithers>> between your thighs, <</if>> <<if $tentacles[$tentacleindex].shaft is "breasts">> The $tentacles[$tentacleindex].name tentacle squeezes your breasts together, <</if>> <<if $tentacles[$tentacleindex].shaft is "chest">> The $tentacles[$tentacleindex].name tentacle <<slithers>> around your chest, <</if>> <<if $tentacles[$tentacleindex].shaft is "waist">> The $tentacles[$tentacleindex].name tentacle <<slithers>> around your waist, <</if>> <<if $tentacles[$tentacleindex].shaft is "neck">> The $tentacles[$tentacleindex].name tentacle <<slithers>> around your neck, <</if>> <<if $tentacles[$tentacleindex].shaft is "shoulders">> The $tentacles[$tentacleindex].name tentacle <<slithers>> around your shoulders, <</if>> <<if $tentacles[$tentacleindex].shaft is "leftleg">> The $tentacles[$tentacleindex].name tentacle <<slithers>> around your left leg, <</if>> <<if $tentacles[$tentacleindex].shaft is "rightleg">> The $tentacles[$tentacleindex].name tentacle <<slithers>> around your right leg, <</if>> <<if $tentacles[$tentacleindex].shaft is "leftarm">> The $tentacles[$tentacleindex].name tentacle <<slithers>> around your left arm, <</if>> <<if $tentacles[$tentacleindex].shaft is "rightarm">> The $tentacles[$tentacleindex].name tentacle <<slithers>> around your right arm, <</if>> <<if $tentacles[$tentacleindex].head is "leftarm">> The $tentacles[$tentacleindex].name tentacle writhes in your left hand. <<neutral 5>> <</if>> <<if $tentacles[$tentacleindex].head is "rightarm">> The $tentacles[$tentacleindex].name tentacle writhes in your right hand. <<neutral 5>> <</if>> <<if $tentacles[$tentacleindex].head is "feet">> The $tentacles[$tentacleindex].name tentacle writhes between your feet. <<neutral 5>> <</if>> <<if $tentacles[$tentacleindex].head is "leftnipplesuck">> and up to your <<breasts>>, where it suckles your left nipple. <<neutralbreast 3>><<playWithBreasts>> <</if>> <<if $tentacles[$tentacleindex].head is "rightnipplesuck">> and up to your <<breasts>>, where it suckles your right nipple. <<neutralbreast 3>><<playWithBreasts>> <</if>> <<if $tentacles[$tentacleindex].head is "leftnipple">> and continues teasing your left nipple. <span class="purple">The tip of the tentacle opens up, latches on, then begins sucking.</span> <<neutralbreast 3>><<set $tentacles[$tentacleindex].head to "leftnipplesuck">><<set $leftnipple to "tentaclesuck">><<playWithBreasts>> <</if>> <<if $tentacles[$tentacleindex].head is "rightnipple">> and continues teasing your right nipple. <span class="purple">The tip of the tentacle opens up, latches on, then begins sucking.</span> <<neutralbreast 3>><<set $tentacles[$tentacleindex].head to "rightnipplesuck">><<set $rightnipple to "tentaclesuck">><<playWithBreasts>> <</if>> <<if $parasite.nipples.name isnot undefined>> The suction drives the attached $parasite.nipples.name into a frenzy. <</if>> <<if $tentacles[$tentacleindex].head is "chest">> <<if $chestuse is 0>> moves away from your <<breasts>> <<set $tentacles[$tentacleindex].head to 0>> <<else>> then up between your <<breasts>>, rubbing itself between them. <<neutralbreast 2>> <</if>> <</if>> <<if $tentacles[$tentacleindex].head is "mouthdeep">> and up into your mouth where it spurts a sweet fluid down your throat at the apex of each thrust. <<purity -1>><<internalejac>><<sex 5 "mouth">><<drugs 3>><<bodyliquid "mouth" "goo">><<set $tentacles[$tentacleindex].health -= 1>> <<if $tentacles[$tentacleindex].desc.includes("pale")>> <<hallucinogen 3>> <</if>> <</if>> <<if $tentacles[$tentacleindex].head is "mouth">> and continues thrusting into your mouth.<span class="pink"> The tip opens and begins oozing a sweet liquid.</span> <<purity -1>><<internalejac>><<set $mouthstate to "tentacledeep">><<set $tentacles[$tentacleindex].head to "mouthdeep">><<sex 5 "mouth">><<oralejacstat>><<ejacstat>> <</if>> <<if $tentacles[$tentacleindex].head is "mouthimminent">> <<if $worn.face.type.includes("covered") or $worn.face.type.includes("gag")>> <span class="purple"> and forces itself against your <<print $worn.face.name>>, desperate to get in.</span> <<damageFaceCover 5>> <<else>> <<if $player.virginity.oral is true>> <span class="pink"> and thrusts between your lips,</span><span class="red"> penetrating your mouth for the first time.</span> <<takeVirginity $tentacles[$tentacleindex].fullDesc "oral">><<violence 5>> <<else>> <span class="pink"> and thrusts between your lips.</span> <</if>> <<set $mouthstate to "tentacle">><<set $tentacles[$tentacleindex].head to "mouth">><<sex 5 "mouth">><<raped>><<oralstat>> <</if>> <</if>> <<if $tentacles[$tentacleindex].head is "mouthentrance">> <<if $worn.face.type.includes("covered") or $worn.face.type.includes("gag")>> <span class="purple"> and presses against your <<print $worn.face.name>>.</span> <<damageFaceCover 3>> <<else>> <span class="purple"> and presses against your lips.</span> <</if>> <<set $mouthstate to "tentacleimminent">><<set $tentacles[$tentacleindex].head to "mouthimminent">><<neutral 4 "mouth">> <</if>> <<if $tentacles[$tentacleindex].head is "vaginadeep">> and <<slithers>> into your <<pussy>> where it pumps a viscous fluid at the apex of each thrust. <<purity -1>><<internalejac>><<sex 5 "genitals">><<drugs 3>><<bodyliquid "vagina" "goo">><<set $tentacles[$tentacleindex].health -= 1>> <<if $tentacles[$tentacleindex].desc.includes("pale")>> <<hallucinogen 3>> <</if>> <</if>> <<if $tentacles[$tentacleindex].head is "vagina">> and continues thrusting into your <<pussy>>.<span class="pink"> The tip opens and begins oozing a viscous liquid.</span> <<purity -1>><<internalejac>><<set $vaginastate to "tentacledeep">><<set $tentacles[$tentacleindex].head to "vaginadeep">><<sex 5 "genitals">><<vaginalejacstat>><<ejacstat>> <</if>> <<if $tentacles[$tentacleindex].head is "vaginaimminent">> <<if $player.virginity.vaginal is true>> <span class="pink"> and thrusts into your <<pussy>>,</span> <<if $sexStats.vagina.pregnancy.totalBirthEvents gt 0>> <span class="red">despite your lack of a hymen, you feel something inside you change as your virginity and purity are taken.</span> <<violence 10>> <<else>> <span class="red">tearing your hymen and forever robbing you of your purity.</span> <<violence 100>> <</if>> <<else>> <span class="pink"> and thrusts into your <<pussy>>.</span> <</if>> <<takeVirginity $tentacles[$tentacleindex].fullDesc "vaginal">> <<set $vaginastate to "tentacle">><<set $tentacles[$tentacleindex].head to "vagina">><<sex 5 "genitals">><<raped>><<vaginaraped>><<vaginalstat>><<violence 1>> <</if>> <<if $tentacles[$tentacleindex].head is "vaginaentrance">> <<if !playerChastity("vagina")>> <<if $vaginaWetness gte ($tentacles[$tentacleindex].size * 20) + random(1, 40) or random(1, 2) is 2>> and presses against your <<pussy>>. <<vagina_lube_text>> <span class="pink">the tip presses into you, a thrust away from penetrating.</span> <<set $vaginastate to "tentacleimminent">><<set $tentacles[$tentacleindex].head to "vaginaimminent">><<sex 10 "genitals">> <<else>> and presses against your <<pussy>>, <span class="blue">but fails to gain purchase.</span> <<sex 5 "genitals">> <<if random(1, 3) gte 3>> <span class="purple">Slimy fluid squirts from the tip, lubricating you.</span> <<bodyliquid "vaginaoutside" "goo">> <</if>> <</if>> <<else>> and tries to find a way inside to your <<pussy>>. Failing, it lashes at the <<print setup.clothes.genitals[clothesIndex('genitals',$worn.genitals)].altDamage or "metal">>. <<set $worn.genitals.integrity -= 10>><<violence 1>> <</if>> <</if>> <<if $tentacles[$tentacleindex].head is "penisdeep">> and continues thrusting against your <<penis>>, caressing and kneading your length. <<sex 5 "genitals">><<set $tentacles[$tentacleindex].health -= 1>> <</if>> <<if $tentacles[$tentacleindex].head is "penis">> and continues thrusting against your <<penis>>.<span class="pink"> It sucks and kneads your length, trying to milk you of your cum.</span> <<set $penisstate to "tentacledeep">><<set $tentacles[$tentacleindex].head to "penisdeep">><<sex 5 "genitals">> <</if>> <<if $tentacles[$tentacleindex].head is "penisimminent">> <<if $player.virginity.penile is true and !playerHasStrapon()>> <span class="pink"> and thrusts against your <<penis>>, swallowing you to the base and</span> <span class="red">tearing the membrane between your glans and foreskin, forever robbing you of your purity.</span> <<violence 100>> <<else>> <span class="pink"> and thrusts against your <<penis>>, swallowing you to the base.</span> <</if>> <<takeVirginity $tentacles[$tentacleindex].fullDesc "penile">> <<set $penisstate to "tentacle">><<set $tentacles[$tentacleindex].head to "penis">><<sex 5 "genitals">> <<if !playerHasStrapon()>> <<raped>><<penisraped>> <</if>> <<penilestat>><<violence 1>> <</if>> <<if $tentacles[$tentacleindex].head is "penisentrance">> <<if !playerChastity("penis")>> <<if $penisWetness + ($tentacles[$tentacleindex].size * 10) gte (playerPenisSize() * 15) + random(1, 40) or random(1, 2) is 2>> and <<slithers>> over to your <<penis>>. <<penis_lube_text>> <span class="purple">the tip opens and presses against your glans, a thrust away from enveloping.</span> <<set $penisstate to "tentacleimminent">><<set $tentacles[$tentacleindex].head to "penisimminent">><<neutralgenitals 4>> <<else>> and <<slithers>> over to your <<penis>>. The tip opens presses against your glans, but <span class="blue">it fails to gain purchase.</span> <<sex 5 "genitals">> <<if random(1, 3) gte 3>> <span class="purple">Slimy fluid squirts from the tip, lubricating you.</span> <<bodyliquid "penis" "goo">> <</if>> <</if>> <<elseif $worn.genitals.name is "chastity parasite">> and worms round your $worn.genitals.name, rubbing and squeezing it in the process. <span class="lewd">Your clearly aroused reaction encourages it further.</span> <<arousal 200 "genitals">><<neutral 2 "genitals">><<set $worn.genitals.integrity -= 5>> <<else>> and tries to find a way inside to envelop your <<penis>>. Failing, it lashes at the <<print setup.clothes.genitals[clothesIndex('genitals',$worn.genitals)].altDamage or "metal">>. <<set $worn.genitals.integrity -= 10>><<violence 1>> <</if>> <</if>> <<if $tentacles[$tentacleindex].head is "anusdeep">> and <<slithers>> into your <<bottom>> where it pumps a viscous fluid at the apex of each thrust. <<purity -1>><<internalejac>><<sex 5 "anus">><<drugs 3>><<bodyliquid "anus" "goo">><<set $tentacles[$tentacleindex].health -= 1>> <<if $tentacles[$tentacleindex].desc.includes("pale")>> <<hallucinogen 3>> <</if>> <</if>> <<if $tentacles[$tentacleindex].head is "anus">> and continues thrusting into your <<bottom>>.<span class="pink"> The tip opens and begins oozing a viscous liquid.</span> <<purity -1>><<internalejac>><<set $anusstate to "tentacledeep">><<set $tentacles[$tentacleindex].head to "anusdeep">><<sex 5 "anus">><<analejacstat>><<ejacstat>> <</if>> <<if $tentacles[$tentacleindex].head is "anusimminent">> <<if $player.virginity.anal is true>> <span class="pink"> and thrusts into your <<bottom>>,</span><span class="red"> violating you in a way you hadn't conceived of.</span> <<takeVirginity $tentacles[$tentacleindex].fullDesc "anal">><<violence 100>> <<else>> <span class="pink"> and thrusts into your <<bottom>>.</span> <</if>> <<set $anusstate to "tentacle">><<set $tentacles[$tentacleindex].head to "anus">><<sex 5 "anus">><<raped>><<anusraped>><<analstat>><<violence 1>> <</if>> <<if $tentacles[$tentacleindex].head is "anusentrance">> <<if !playerChastity("anus")>> <<if $anusWetness gte ($tentacles[$tentacleindex].size * 20) + random(1, 40) or random(1, 2) is 2>> and presses against your <<bottom>>. <<anus_lube_text>> <span class="pink">the tip presses into you, a thrust away from penetrating.</span> <<set $anusstate to "tentacleimminent">><<set $tentacles[$tentacleindex].head to "anusimminent">><<neutral 4 "anus">> <<else>> and presses against your <<bottom>>. <span class="blue">It fails to gain purchase.</span> <<sex 5 "anus">> <<if random(1, 3) gte 3>> <span class="purple">Slimy fluid squirts from the tip, lubricating you.</span> <<bodyliquid "bottom" "goo">> <</if>> <</if>> <<else>> and tries to find a way inside to your <<bottom>>. Failing, it lashes at the device. <<set $worn.genitals.integrity -= 10>><<violence 1>> <</if>> <</if>> <<rng>> <<if $tentacles[$tentacleindex].head is "vaginarub">> <<if $rng gte 21>> <<if $tentacles[$tentacleindex].shaft is "thighs">> and against your <<pussy>>, pressing into your clit. <<else>> and between your thighs where it <<slithers>> against your <<pussy>>, pressing against your clit. <</if>> <<sex 3 "genitals">> <<else>> <<if $tentacles[$tentacleindex].shaft is "thighs">> <span class="blue">where it <<slithers>> toward your <<pussy>>.</span> <<else>> and between your thighs <span class="blue">where it <<slithers>> toward your <<pussy>>.</span> <</if>> <<neutralgenitals 3>><<set $vaginause to "tentacle">><<set $vaginastate to "tentacleentrance">><<set $tentacles[$tentacleindex].head to "vaginaentrance">><<set $thighuse to 0>><<set $vaginatarget to "tentacles">> <</if>> <</if>> <<rng>> <<if $tentacles[$tentacleindex].head is "penisrub">> <<if $rng gte 21>> <<if $tentacles[$tentacleindex].shaft is "thighs">> where it <<slithers>> against your <<penis>>, coiling around it. <<else>> and between your thighs where it <<slithers>> against your <<penis>>, coiling around it. <</if>> <<sex 3 "genitals">> <<else>> <<if $tentacles[$tentacleindex].shaft is "thighs">> <span class="blue">where the tip opens as it <<slithers>> toward your <<penis>>.</span> <<else>> and between your thighs, <span class="blue">where the tip opens as it <<slithers>> toward your <<penis>>.</span> <</if>> <<neutralgenitals 3>><<set $penisuse to "tentacle">><<set $penisstate to "tentacleentrance">><<set $tentacles[$tentacleindex].head to "penisentrance">><<set $thighuse to 0>><<set $penistarget to "tentacles">><<set $tentaclePenis to _tentacle.fullDesc>> <</if>> <</if>> <<rng>> <<if $tentacles[$tentacleindex].head is "anusrub">> <<if $rng gte 21>> and between your <<bottom>> cheeks where it <<slithers>> against your back. <<sex 3 "anus">> <<else>> and between your <<bottom>> cheeks, <span class="blue">toward your anus.</span> <<neutral 3 "anus">><<set $anususe to "tentacle">><<set $anusstate to "tentacleentrance">><<set $tentacles[$tentacleindex].head to "anusentrance">><<set $anustarget to "tentacles">> <</if>> <</if>> <<rng>> <<if $tentacles[$tentacleindex].head is 0 and $tentacles[$tentacleindex].shaft isnot 0>> <<if $rng lte 10>> <<if $chestuse is "squeezed">> <<upperslither>><span class="blue">and up between your squeezed <<breasts>>.</span> <<set $tentacles[$tentacleindex].head to "chest">><<neutralbreast 2>><<set $chestuse to "tentaclerub">><<cheststat>><<set $chesttarget to "tentacles">> <<else>> <<tentacledefault>> <</if>> <<elseif $rng lte 20>> <<if $leftnipple is 0>> <<upperslither>> <<playWithBreasts>><span class="blue">and teases your left nipple.</span> <<neutralbreast 2>><<set $tentacles[$tentacleindex].head to "leftnipple">><<set $leftnipple to "tentacle">> <<else>> <<tentacledefault>> <</if>> <<elseif $rng lte 30>> <<if $rightnipple is 0>> <<upperslither>> <<playWithBreasts>><span class="blue">and teases your right nipple.</span> <<neutralbreast 2>><<set $tentacles[$tentacleindex].head to "rightnipple">><<set $rightnipple to "tentacle">> <<else>> <<tentacledefault>> <</if>> <<elseif $rng lte 40>> <<if $mouthuse is 0>> <<upperslither>> <span class="blue">and up toward your mouth.</span> <<neutral 2 "mouth">><<set $mouthuse to "tentacle">><<set $mouthstate to "tentacleentrance">><<set $tentacles[$tentacleindex].head to "mouthentrance">><<set $mouthtarget to "tentacles">> <<else>> <<tentacledefault>> <</if>> <<elseif $rng lte 50>> <<if $anususe is 0 and $settings.analEnabled>> <<underslither>> <span class="blue">and <<slithers>> toward your <<bottom>>.</span> <<neutral 2 "bottom">><<set $anususe to "tentacle">><<set $anusstate to "tentacleentrance">><<set $tentacles[$tentacleindex].head to "anusentrance">><<set $anustarget to "tentacles">> <<else>> <<tentacledefault>> <</if>> <<elseif $rng lte 60>> <<if $player.vaginaExist and $vaginause is 0>> <<underslither>> <span class="blue">and <<slithers>> toward your <<pussy>>.</span> <<neutralgenitals 2>><<set $vaginause to "tentacle">><<set $vaginastate to "tentacleentrance">><<set $tentacles[$tentacleindex].head to "vaginaentrance">><<set $vaginatarget to "tentacles">> <<else>> <<tentacledefault>> <</if>> <<elseif $rng lte 70>> <<if $player.penisExist and $penisuse is 0>> <<underslither>> <span class="blue">and <<slithers>> toward your <<penis>>.</span> <<neutralgenitals 2>><<set $penisuse to "tentacle">><<set $penisstate to "tentacleentrance">><<set $tentacles[$tentacleindex].head to "penisentrance">><<set $penistarget to "tentacles">><<set $tentaclePenis to _tentacle.fullDesc>> <<else>> <<tentacledefault>> <</if>> <<elseif $rng lte 80>> <<if $thighuse is 0>> <<if $player.penisExist and $penisuse is 0>> <<if $tentacles[$tentacleindex].shaft is "thighs">> <<underslither>> <span class="blue">where it <<slithers>> against your tummy and <<penis>>.</span> <<else>> <<underslither>> <span class="blue">where it <<slithers>> between your thighs and against your tummy and <<penis>>.</span> <</if>> <<set $penisuse to "tentaclerub">><<set $thighuse to "tentaclerub">><<set $tentacles[$tentacleindex].head to "penisrub">><<sex 3 "genitals">><<thighstat>><<set $penistarget to "tentacles">><<set $tentaclePenis to _tentacle.fullDesc>> <<elseif $player.vaginaExist and $vaginause is 0>> <<if $tentacles[$tentacleindex].shaft is "thighs">> <<underslither>> <span class="blue">where it <<slithers>> against your tummy and <<pussy>>.</span> <<else>> <<underslither>> <span class="blue">where it <<slithers>> between your thighs and against your tummy and <<pussy>>.</span> <</if>> <<set $vaginause to "tentaclerub">><<set $thighuse to "tentaclerub">><<set $tentacles[$tentacleindex].head to "vaginarub">><<sex 3 "genitals">><<thighstat>><<set $vaginatarget to "tentacles">> <<else>> <<tentacledefault>> <</if>> <<else>> <<tentacledefault>> <</if>> <<elseif $rng lte 90>> <<if $anusstate is 0 and $anususe is 0 and $settings.analEnabled>> <<underslither>> <span class="blue">and <<slithers>> between your <<bottom>> cheeks and against your back.</span> <<set $anusstate to "tentaclerub">><<set $anususe to "tentaclerub">><<set $tentacles[$tentacleindex].head to "anusrub">><<sex 1 "anus">><<bottomstat>><<set $anustarget to "tentacles">> <<else>> <<tentacledefault>> <</if>> <<elseif $rng lte 95>> <<else>> <<tentacledefault>> <</if>> <<elseif $tentacles[$tentacleindex].head is 0 and $tentacles[$tentacleindex].shaft is 0>> <<if $rng lte 10>> <<if $position isnot "wall">> The $tentacles[$tentacleindex].name tentacle winds around your tummy. <<neutral 1>><<set $tentacles[$tentacleindex].shaft to "tummy">> <<else>> The $tentacles[$tentacleindex].name tentacle gently slaps your <<bottom>>. <<violence 1>><<hitstat>> <</if>> <<elseif $rng lte 20>> The $tentacles[$tentacleindex].name tentacle <<slithers>> between your thighs. <<neutral 1>><<set $tentacles[$tentacleindex].shaft to "thighs">> <<elseif $rng lte 30>> <<if $position isnot "wall">> <<if $player.breastsize gte 2 and $chestuse is 0>> The $tentacles[$tentacleindex].name tentacle <<slithers>> around your <<breasts>>, <span class="blue">squeezing them together.</span> <<neutralbreast 1>><<set $tentacles[$tentacleindex].shaft to "breasts">><<set $chestuse to "squeezed">> <<else>> The $tentacles[$tentacleindex].name tentacle gently slaps your <<bottom>>. <<violence 1>><<hitstat>> <</if>> <<else>> The $tentacles[$tentacleindex].name tentacle gently slaps your <<bottom>>. <<violence 1>><<hitstat>> <</if>> <<elseif $rng lte 40>> <<if $position isnot "wall">> The $tentacles[$tentacleindex].name tentacle winds its way around your chest, beneath your <<breasts>>. <<neutralbreast 1>><<set $tentacles[$tentacleindex].shaft to "chest">> <<else>> The $tentacles[$tentacleindex].name tentacle gently slaps your <<bottom>>. <<violence 1>><<hitstat>> <</if>> <<elseif $rng lte 50>> The $tentacles[$tentacleindex].name tentacle winds its way around your waist. <<neutral 1>><<set $tentacles[$tentacleindex].shaft to "waist">> <<elseif $rng lte 60>> <<if $position isnot "wall">> <<if $head is 0>> The $tentacles[$tentacleindex].name tentacle winds its way around your neck, <span class="blue">restraining your head.</span> <<neutral 1>><<set $tentacles[$tentacleindex].shaft to "neck">><<set $head to "grappled">> <<else>> The $tentacles[$tentacleindex].name tentacle winds its way around your shoulders. <<neutral 1>><<set $tentacles[$tentacleindex].shaft to "shoulders">> <</if>> <<else>> The $tentacles[$tentacleindex].name tentacle gently slaps your <<bottom>>. <<violence 1>><<hitstat>> <</if>> <<elseif $rng lte 70>> The $tentacles[$tentacleindex].name tentacle gently slaps your <<bottom>>. <<violence 1>><<hitstat>> <<elseif $rng lte 80>> <<if $leftleg is 0>> The $tentacles[$tentacleindex].name tentacle winds its way around your left leg, <span class="blue">restraining it.</span> <<neutral 1>><<feettentacledisable>><<set $tentacles[$tentacleindex].shaft to "leftleg">><<set $leftleg to "grappled">><<set $feettarget to "tentacles">> <<else>> The $tentacles[$tentacleindex].name tentacle tickles your feet. <<neutral 1>> <</if>> <<elseif $rng lte 85>> <<if $rightleg is 0>> The $tentacles[$tentacleindex].name tentacle winds its way around your right leg, <span class="blue">restraining it.</span> <<neutral 1>><<feettentacledisable>><<set $tentacles[$tentacleindex].shaft to "rightleg">><<set $rightleg to "grappled">><<set $feettarget to "tentacles">> <<else>> The $tentacles[$tentacleindex].name tentacle tickles your feet. <<neutral 1>> <</if>> <<elseif $rng lte 90>> <<if $leftarm is 0>> The $tentacles[$tentacleindex].name tentacle winds its way around your left arm, <span class="blue">restraining it.</span> <<neutral 1>><<leftarmtentacledisable>><<set $tentacles[$tentacleindex].shaft to "leftarm">><<set $leftarm to "tentgrappled">><<set $leftarmstate to 0>><<set $lefttarget to "tentacles">> <<else>> The $tentacles[$tentacleindex].name tentacle tickles your armpit. <<neutral 1>> <</if>> <<elseif $rng lte 95>> <<if $rightarm is 0>> The $tentacles[$tentacleindex].name tentacle winds its way around your right arm, <span class="blue">restraining it.</span> <<rightarmtentacledisable>><<neutral 1>><<set $tentacles[$tentacleindex].shaft to "rightarm">><<set $rightarm to "tentgrappled">><<set $rightarmstate to 0>><<set $righttarget to "tentacles">> <<else>> The $tentacles[$tentacleindex].name tentacle tickles your armpit. <<neutral 1>> <</if>> <<elseif $rng lte 100>> The $tentacles[$tentacleindex].name tentacle <<slithers>> against your <<bottom>>. <<neutral 1 "bottom">> <</if>> <</if>> <</widget>> <<widget "tentacledefault">> <<rng>> <<if $rng gte 91>> then squirts a warm fluid over your neck. <<neutral 1>><<bodyliquid "neck" "goo">><<set $tentacles[$tentacleindex].health -= 1>><<neckejacstat>><<ejacstat>> <<elseif $rng gte 81>> then squirts a warm fluid over your right arm. <<neutral 1>><<bodyliquid "rightarm" "goo">><<set $tentacles[$tentacleindex].health -= 1>><<handejacstat>><<ejacstat>> <<elseif $rng gte 71>> then squirts a warm fluid over your left arm. <<neutral 1>><<bodyliquid "leftarm" "goo">><<set $tentacles[$tentacleindex].health -= 1>><<handejacstat>><<ejacstat>> <<elseif $rng gte 61>> then squirts a warm fluid over your thighs. <<neutral 1>><<bodyliquid "thigh" "goo">><<set $tentacles[$tentacleindex].health -= 1>><<thighejacstat>><<ejacstat>> <<elseif $rng gte 51>> then squirts a warm fluid over your <<bottom>>. <<neutral 1>><<bodyliquid "bottom" "goo">><<set $tentacles[$tentacleindex].health -= 1>><<bottomejacstat>><<ejacstat>> <<elseif $rng gte 41>> then squirts a warm fluid over your tummy. <<neutral 1>><<bodyliquid "tummy" "goo">><<set $tentacles[$tentacleindex].health -= 1>><<tummyejacstat>><<ejacstat>> <<elseif $rng gte 31>> then squirts a warm fluid over your chest. <<neutralbreast 1>><<bodyliquid "chest" "goo">><<set $tentacles[$tentacleindex].health -= 1>><<chestejacstat>><<ejacstat>> <<elseif $rng gte 21>> then squirts a warm fluid over your face. <<neutral 1>><<bodyliquid "face" "goo">><<set $tentacles[$tentacleindex].health -= 1>><<faceejacstat>><<ejacstat>> <<elseif $rng gte 11>> then squirts a warm fluid over your hair. <<neutral 1>><<bodyliquid "hair" "goo">><<set $tentacles[$tentacleindex].health -= 1>><<hairejacstat>><<ejacstat>> <<else>> then squirts a warm fluid over your feet. <<neutral 1>><<bodyliquid "feet" "goo">><<set $tentacles[$tentacleindex].health -= 1>><<feetejacstat>><<ejacstat>> <</if>> <</widget>> <<widget "tentacledisable">> <<if $tentacles[$tentacleindex].head is "feet">> <<set $leftleg to 0>> <<set $rightleg to 0>> <<set $feetstate to 0>> <</if>> <<if $tentacles[$tentacleindex].head is "leftarm">> <<set $leftarm to 0>> <<set $leftarmstate to 0>> <</if>> <<if $tentacles[$tentacleindex].head is "rightarm">> <<set $rightarm to 0>> <<set $rightarmstate to 0>> <</if>> <<if $tentacles[$tentacleindex].head is "leftnipplesuck">> <<set $leftnipple to 0>> <</if>> <<if $tentacles[$tentacleindex].head is "rightnipplesuck">> <<set $rightnipple to 0>> <</if>> <<if $tentacles[$tentacleindex].head is "leftnipple">> <<set $leftnipple to 0>> <</if>> <<if $tentacles[$tentacleindex].head is "rightnipple">> <<set $rightnipple to 0>> <</if>> <<if $tentacles[$tentacleindex].head is "mouthentrance">> <<set $mouthuse to 0>> <<set $mouthstate to 0>> <</if>> <<if $tentacles[$tentacleindex].head is "mouthimminent">> <<set $mouthuse to 0>> <<set $mouthstate to 0>> <</if>> <<if $tentacles[$tentacleindex].head is "mouth">> <<set $mouthuse to 0>> <<set $mouthstate to 0>> <</if>> <<if $tentacles[$tentacleindex].head is "mouthdeep">> <<set $mouthuse to 0>> <<set $mouthstate to 0>> <</if>> <<if $tentacles[$tentacleindex].head is "anusentrance">> <<set $anususe to 0>> <<set $anusstate to 0>> <</if>> <<if $tentacles[$tentacleindex].head is "anusimminent">> <<set $anususe to 0>> <<set $anusstate to 0>> <</if>> <<if $tentacles[$tentacleindex].head is "anus">> <<set $anususe to 0>> <<set $anusstate to 0>> <</if>> <<if $tentacles[$tentacleindex].head is "anusdeep">> <<set $anususe to 0>> <<set $anusstate to 0>> <</if>> <<if $tentacles[$tentacleindex].head is "vaginaentrance">> <<set $vaginause to 0>> <<set $vaginastate to 0>> <</if>> <<if $tentacles[$tentacleindex].head is "vaginaimminent">> <<set $vaginause to 0>> <<set $vaginastate to 0>> <</if>> <<if $tentacles[$tentacleindex].head is "vagina">> <<set $vaginause to 0>> <<set $vaginastate to 0>> <</if>> <<if $tentacles[$tentacleindex].head is "vaginadeep">> <<set $vaginause to 0>> <<set $vaginastate to 0>> <</if>> <<if $tentacles[$tentacleindex].head is "penisentrance">> <<set $penisuse to 0>> <<set $penisstate to 0>> <</if>> <<if $tentacles[$tentacleindex].head is "penisimminent">> <<set $penisuse to 0>> <<set $penisstate to 0>> <</if>> <<if $tentacles[$tentacleindex].head is "penis">> <<set $penisuse to 0>> <<set $penisstate to 0>> <</if>> <<if $tentacles[$tentacleindex].head is "penisdeep">> <<set $penisuse to 0>> <<set $penisstate to 0>> <</if>> <<if $tentacles[$tentacleindex].head is "vaginarub">> <<set $vaginause to 0>> <<set $thighuse to 0>> <</if>> <<if $tentacles[$tentacleindex].head is "penisrub">> <<set $penisuse to 0>> <<set $thighuse to 0>> <</if>> <<if $tentacles[$tentacleindex].head is "anusrub">> <<set $anususe to 0>> <<set $anusstate to 0>> <</if>> <<if $tentacles[$tentacleindex].head is "chest">> <<set $chestuse to "squeezed">> <</if>> <<if $tentacles[$tentacleindex].shaft is "breasts">> <<set $chestuse to 0>> <</if>> <<if $tentacles[$tentacleindex].shaft is "neck" and $head isnot "bound">> <<set $head to 0>> <</if>> <<if $tentacles[$tentacleindex].shaft is "leftleg" and $leftleg isnot "bound">> <<set $leftleg to 0>> <</if>> <<if $tentacles[$tentacleindex].shaft is "rightleg" and $rightleg isnot "bound">> <<set $rightleg to 0>> <</if>> <<if $tentacles[$tentacleindex].shaft is "leftarm" and $leftarm isnot "bound">> <<set $leftarm to 0>> <</if>> <<if $tentacles[$tentacleindex].shaft is "rightarm" and $rightarm isnot "bound">> <<set $rightarm to 0>> <</if>> <<set $tentacles[$tentacleindex].shaft to 0>> <<set $tentacles[$tentacleindex].head to 0>> <</widget>><<widget "tentacleadv">> <<set _tentacle to _args[0]>> <<if _tentacle.type is "vine" and $abomination is 1 or ["vine","root","shoot"].includes(_tentacle.type)>> <<set _fluid to "nectar">> <<set _Slimy to "Sticky">> <<else>> <<set _fluid to "fluid">> <<set _Slimy to "Slimy">> <</if>> <<set _The to ($abomination is 1 ? "<<His>>" : "The")>> <<set _the to ($abomination is 1 ? "<<his>>" : "the")>> <<if $abomination is 1 and $ejaculating is 1>> <<statetentacles>> <<if (_tentacle.head is "anus" or _tentacle.head is "anusdeep") and _tentacle.baby isnot 0>> <<impregnateParasite _tentacle.baby _tentacle.babychance>> <<fertiliseParasites>> <<set _tentacleAnus to _impregnatedParasite is "anus" ? $tentacleAnus : 0>> <</if>> <<if (_tentacle.head is "vagina" or _tentacle.head is "vaginadeep") and _tentacle.baby isnot 0>> <<impregnateParasite _tentacle.baby _tentacle.babychance "vagina">> <<fertiliseParasites "vagina">> <<set _tentacleVagina to _impregnatedParasite is "vagina" ? $tentacleVagina : 0>> <</if>> <<if _tentacle.shaft isnot "finished" and _tentacle.head isnot "finished">> <<if _firsttentacle isnot 1>><<set _firsttentacle to 1>>_The<</if>> <<if $tentacles.active is 1>> <<if _retract isnot 3 and _retract isnot 2>><<set _retract to 1>><</if>> <<if _retract is 1>> _tentacle.fullDesc retracts <<elseif _retract is 2>> and <<print _tentacle.fullDesc>>s both retract <<else>> and <<print _tentacle.fullDesc>>s all retract <</if>> <<if _tentacleVagina and _tentacleAnus>> away from you, the _tentacleVagina and _tentacleAnus <span class="red">pumping something into your vagina and anus</span> before leaving. <<elseif _tentacleVagina>> away from you,<<if _retract isnot 1>> the _tentacleVagina<</if>> <span class="red">pumping something into your vagina</span> before leaving. <<elseif _tentacleAnus>> away from you,<<if _retract isnot 1>> the _tentacleAnus<</if>> <span class="red">pumping something into your anus</span> before leaving. <<else>> away from you. <</if>> <br> <<elseif $tentacles.active is 2>> <<if _retract isnot 3>><<set _retract to 2>><</if>> _tentacle.desc <<else>> <<set _retract to 3>> _tentacle.desc, <</if>> <<tentacleadvdisable _tentacle>> <<set _tentacle.shaft to "finished">><<set _tentacle.head to "finished">> <</if>> <</if>> <<if _tentacle.tentaclehealth lte 0 and _tentacle.shaft isnot "finished">> <<if _tentacle.tentaclehealth lte -250>> <span class="red">_The _tentacle.fullDesc crumbles to dust.</span> <<elseif ["leftarm","rightarm"].includes(_tentacle.head)>> <span class="green">Worn out, _the _tentacle.fullDesc writhes around your hand and squeezes, before retracting from you.</span> <<takeHandholdingVirginity `$abomination is 1 ? $NPCList[0].fullDescription + "'s " + _tentacle.fullDesc : _tentacle.fullDesc` "tentacle" _tentacle.type true>> <<else>> <span class="green">Worn out, _the _tentacle.fullDesc retracts from you.</span> <</if>> <<tentacleadvdisable _tentacle>> <<set _tentacle.shaft to "finished">><<set _tentacle.head to "finished">> <br> <</if>> <<if $novaginal is 1 and (_tentacle.head is "vaginaentrance" or _tentacle.head is "vaginaimminent" or _tentacle.head is "vagina" or _tentacle.head is "vaginadeep")>> The <<personsimple>> clicks <<his>> tongue, and <span class="lblue">_the _tentacle.fullDesc retracts from your <<pussy>>.</span> <<tentacleadvdisable _tentacle>> <</if>> <<if $noanal is 1 and (_tentacle.head is "anusentrance" or _tentacle.head is "anusimminent" or _tentacle.head is "anus" or _tentacle.head is "anusdeep")>> The <<personsimple>> clicks <<his>> tongue, and <span class="lblue">_the _tentacle.fullDesc retracts from your <<bottom>>.</span> <<tentacleadvdisable _tentacle>> <</if>> <<if $nopenile is 1 and (_tentacle.head is "penisentrance" or _tentacle.head is "penisimminent" or _tentacle.head is "penis" or _tentacle.head is "penisdeep")>> The <<personsimple>> clicks <<his>> tongue, and <span class="lblue">_the _tentacle.fullDesc retracts from your <<penis>>.</span> <<tentacleadvdisable _tentacle>> <</if>> <<if $nochoke is 1 and _tentacle.shaft is "neck">> The <<personsimple>> clicks <<his>> tongue, and <span class="lblue">_the _tentacle.fullDesc retracts from your neck</span>. <<tentacleadvdisable _tentacle>> <</if>> <<if $tentacleMouth is "removed" and (_tentacle.head is "mouthentrance" or _tentacle.head is "mouthimminent" or _tentacle.head is "mouth" or _tentacle.head is "mouthdeep")>> <<tentacleadvdisable _tentacle>> <</if>> <<if $tentacleAnus is "removed" and (_tentacle.head is "anusentrance" or _tentacle.head is "anusimminent" or _tentacle.head is "anus" or _tentacle.head is "anusdeep")>> <<tentacleadvdisable _tentacle>> <</if>> <<if $tentacleVagina is "removed" and (_tentacle.head is "vaginaentrance" or _tentacle.head is "vaginaimminent" or _tentacle.head is "vagina" or _tentacle.head is "vaginadeep")>> <<tentacleadvdisable _tentacle>> <</if>> <<if $tentaclePenis is "removed" and (_tentacle.head is "penisentrance" or _tentacle.head is "penisimminent" or _tentacle.head is "penis" or _tentacle.head is "penisdeep")>> <<tentacleadvdisable _tentacle>> <</if>> <<if _tentacle.shaft is "tummy">>_The _tentacle.fullDesc <<slithers>> around your tummy,<</if>> <<if _tentacle.shaft is "thighs">>_The _tentacle.fullDesc <<slithers>> between your thighs,<</if>> <<if _tentacle.shaft is "breasts">>_The _tentacle.fullDesc squeezes your breasts together,<</if>> <<if _tentacle.shaft is "chest">>_The _tentacle.fullDesc <<slithers>> around your chest,<</if>> <<if _tentacle.shaft is "waist">>_The _tentacle.fullDesc <<slithers>> around your waist,<</if>> <<if _tentacle.shaft is "neck">>_The _tentacle.fullDesc <<slithers>> around your neck,<</if>> <<if _tentacle.shaft is "shoulders">>_The _tentacle.fullDesc <<slithers>> around your shoulders,<</if>> <<if _tentacle.shaft is "leftleg">><span class="blue">_The _tentacle.fullDesc <<slithers>> around your left leg</span>,<</if>> <<if _tentacle.shaft is "rightleg">><span class="blue">_The _tentacle.fullDesc <<slithers>> around your right leg</span>,<</if>> <<if _tentacle.shaft is "leftarm">><span class="blue">_The _tentacle.fullDesc <<slithers>> around your left arm</span>,<</if>> <<if _tentacle.shaft is "rightarm">><span class="blue">_The _tentacle.fullDesc <<slithers>> around your right arm</span>,<</if>> <<if _tentacle.head is "leftarm">> _The _tentacle.fullDesc writhes in your left hand. <<neutral 5>> <br> <</if>> <<if _tentacle.head is "rightarm">> _The _tentacle.fullDesc writhes in your right hand. <<neutral 5>> <br> <</if>> <<if _tentacle.head is "feet">> _The _tentacle.fullDesc writhes between your feet. <<neutral 5>> <br> <</if>> <<if _tentacle.head is "leftnipplesuck">> and<<if _tentacle.shaft is "breasts">> <<slithers>><</if>> up to your <<breasts>>, where it suckles your left nipple. <<playWithBreasts>><<neutralbreast 3>> <br> <</if>> <<if _tentacle.head is "rightnipplesuck">> and<<if _tentacle.shaft is "breasts">> <<slithers>><</if>> up to your <<breasts>>, where it suckles your right nipple. <<playWithBreasts>><<neutralbreast 3>> <br> <</if>> <<if _tentacle.head is "leftnipple">> and continues teasing your left nipple. <span class="purple">The tip of the <<print _tentacle.type>> opens up, latches on, then begins sucking.</span> <<set _tentacle.head to "leftnipplesuck">><<set $leftnipple to "tentaclesuck">> <<playWithBreasts>><<neutralbreast 3>> <br> <</if>> <<if _tentacle.head is "rightnipple">> and continues teasing your right nipple. <span class="purple">The tip of the <<print _tentacle.type>> opens up, latches on, then begins sucking.</span> <<set _tentacle.head to "rightnipplesuck">><<set $rightnipple to "tentaclesuck">> <<playWithBreasts>><<neutralbreast 3>> <br> <</if>> <<if _tentacle.head is "chest">> <<if $chestuse is 0>> moves away from your <<breasts>> <<set _tentacle.head to 0>> <<else>> then<<if _tentacle.shaft is "breasts">> <<slithers>><</if>> up between your <<breasts>>, rubbing itself between them. <<neutralbreast 2>> <<tentacle_skin "breasts">> <</if>> <br> <</if>> <<if _tentacle.head is "mouthdeep">> and<<if _tentacle.shaft is "breasts">> <<slithers>><</if>> up into your mouth where it spurts a sweet _fluid down your throat at the apex of each thrust. <<if $ejactrait gte 1>> The sensation of the thick liquid flowing down your throat makes you shiver. <</if>> <<tentacle_skin "mouth">> <<purity -1>><<internalejac>><<sex 5 "mouth">> <<if _fluid is "nectar">><<nectarfed 5>><<else>><<drugs 3>><</if>><<bodyliquid "mouth" _fluid>> <<set _tentacle.tentaclehealth -= 1>><<tentacle_record "fluid" 1>> <<if _tentacle.desc.includes("pale")>> <<hallucinogen 5>> <</if>> <<if $abomination is 1>> <<set $enemyarousal += 3>> <</if>> <br> <</if>> <<if _tentacle.head is "mouth">> and continues thrusting into your mouth. <span class="pink">The tip opens and begins oozing a sweet _fluid.</span> <<tentacle_skin "mouth">> <<purity -1>><<internalejac>><<sex 5 "mouth">> <<set $mouthstate to "tentacledeep">><<set _tentacle.head to "mouthdeep">> <<oralejacstat>><<ejacstat>> <br> <</if>> <<if _tentacle.head is "mouthimminent">> <<if $worn.face.type.includes("covered") or $worn.face.type.includes("gag")>> <span class="blue">and thrashes against your <<print $worn.face.name>>, trying to force itself inside.</span> <<damageFaceCover 5>> <<else>> <<if $player.virginity.oral is true>> <<switch _tentacle.size>> <<case 3>> <span class="pink">and thrusts between your lips forcing your mouth wide open, </span><span class="red">penetrating your mouth for the first time.</span> <<violence 25>> <<default>> <span class="pink">and thrusts between your lips, </span><span class="red">penetrating your mouth for the first time.</span> <</switch>> <<takeVirginity `$abomination is 1 ? $NPCList[0].fullDescription + "'s " + _tentacle.fullDesc : _tentacle.fullDesc` "oral">><<violence 5>> <<if $abomination is 1 and $NPCList[0].type is "plant">> <<set $speechmouthvirgin to 2>> <</if>> <<else>> <<switch _tentacle.size>> <<case 3>> <span class="pink">and thrusts between your lips forcing your mouth wide open.</span> <<violence 25>> <<default>> <span class="pink">and thrusts between your lips.</span> <</switch>> <</if>> <<tentacle_skin "mouth">> <<set $mouthstate to "tentacle">><<set _tentacle.head to "mouth">><<sex 5 "mouth">><<raped>><<oralstat>> <br> <</if>> <</if>> <<if _tentacle.head is "mouthentrance">> <<if $worn.face.type.includes("covered") or $worn.face.type.includes("gag")>> <span class="purple">and presses against your <<print $worn.face.name>>.</span> <<damageFaceCover 5>> <<else>> <span class="purple">and presses against your lips.</span> <<set $mouthstate to "tentacleimminent">><<set _tentacle.head to "mouthimminent">> <<neutral 4 "mouth">> <<set $tentacleMouth to _tentacle.fullDesc>> <br> <</if>> <</if>> <<if _tentacle.head is "vaginadeep">> <<if _tentacle.baby isnot 0>> and <<slithers>> into your <<pussy>> where it pumps a viscous _fluid <<if canImpregnateParasite("vagina")>><span class="red">alongside something else</span><</if>> at the apex of each thrust. <<impregnateParasite _tentacle.baby _tentacle.babychance "vagina">> <<fertiliseParasites "vagina">> <<else>> and <<slithers>> into your <<pussy>> where it pumps a viscous _fluid at the apex of each thrust. <</if>> <<tentacle_skin "vagina">> <<purity -1>><<internalejac>><<sex 5 "genitals">> <<drugs 3>><<bodyliquid "vagina" _fluid>><<pain $vaginalPain>> <<set _tentacle.tentaclehealth -= 1>><<tentacle_record "fluid" 1>> <<if _tentacle.desc.includes("pale")>> <<hallucinogen 5>> <</if>> <<if $abomination is 1>> <<set $enemyarousal += 3>> <</if>> <br> <</if>> <<if _tentacle.head is "vagina">> <<if _tentacle.baby isnot 0 and canImpregnateParasite("vagina")>> and continues thrusting into your <<pussy>>. <span class="pink">The tip opens and begins oozing a viscous _fluid <span class="red">alongside something else</span>.</span> <span class="red">Something about it scares you.</span> <<else>> and continues thrusting into your <<pussy>>. <span class="pink">The tip opens and begins oozing a viscous _fluid.</span> <</if>> <<tentacle_skin "vagina">> <<purity -1>><<internalejac>> <<set $vaginastate to "tentacledeep">><<set _tentacle.head to "vaginadeep">><<pain $vaginalPain>> <<sex 5 "genitals">><<vaginalejacstat>><<ejacstat>> <br> <</if>> <<if _tentacle.head is "vaginaimminent">> <<if $player.virginity.vaginal is true>> <<if $sexStats.vagina.pregnancy.totalBirthEvents gt 0>> <span class="pink">and thrusts into your <<pussy>>.</span> <span class="red">Despite your lack of a hymen, you feel something inside you change as your virginity and purity are taken.</span> <<violence 10>> <<else>> <<switch _tentacle.size>> <<case 3>> <span class="pink">and thrusts into your <<pussy>>, </span><span class="red">tearing your hymen and forever robbing you of your purity. You whimper as your <<pussy>> stretches to accommodate _the _tentacle.fullDesc.</span> <<violence 100>> <<default>> <span class="pink">and thrusts into your <<pussy>>, </span><span class="red">tearing your hymen and forever robbing you of your purity.</span> <</switch>> <<violence 100>> <<if $abomination is 1 and $NPCList[0].type is "plant">> <<set $speechvaginavirgin to 2>> <</if>> <</if>> <<else>> <<switch _tentacle.size>> <<case 3>> <span class="pink">and thrusts into your <<pussy>>.</span> <span class="red">You whimper as your <<pussy>> stretches to accommodate _the _tentacle.fullDesc.</span> <<default>> <span class="pink">and thrusts into your <<pussy>>.</span> <</switch>> <</if>> <<tentacle_skin "vagina">> <<takeVirginity `$abomination is 1 ? $NPCList[0].fullDescription + "'s " + _tentacle.fullDesc : _tentacle.fullDesc` "vaginal">> <<set $vaginastate to "tentacle">><<set _tentacle.head to "vagina">><<sex 5 "genitals">><<raped>><<vaginaraped>><<vaginalstat>><<violence 1>><<pain $vaginalPain>> <br> <</if>> <<if _tentacle.head is "vaginaentrance">> <<if !playerChastity("vagina")>> <<if $vaginaWetness gte (_tentacle.size * 20) + random(1, 40) or random(1, 2) is 2>> and presses into your <<pussy>>. <<vagina_lube_text>> <span class="pink">the tip presses into you, a thrust away from penetrating.</span> <<set $vaginastate to "tentacleimminent">><<set _tentacle.head to "vaginaimminent">><<sex 10 "genitals">> <<if setup.bodyliquid.combined("vagina") gte 1 or setup.bodyliquid.combined("vaginaoutside") gte 1>> _Slimy _fluid oozes out. <</if>> <<else>> and presses against your <<pussy>>, <span class="blue">but fails to gain purchase.</span> <<sex 5 "genitals">> <<if random(1, 3) gte 3>> <span class="purple">_Slimy _fluid squirts from the tip, lubricating you</span>. <<bodyliquid "vaginaoutside" _fluid>> <</if>> <</if>> <<else>> and tries to find a way inside to your <<pussy>>. Failing, it lashes the <<print setup.clothes.genitals[clothesIndex('genitals',$worn.genitals)].altDamage or "metal">>. <<set $worn.genitals.integrity -= 10>><<violence 1>> <</if>> <<set $tentacleVagina to _tentacle.fullDesc>> <br> <</if>> <<if _tentacle.head is "penisdeep">> and continues thrusting against your <<penis>>, caressing and kneading your length. <<sex 5 "genitals">><<set _tentacle.tentaclehealth -= 1>><<tentacle_record "arousal" 1>> <<if $abomination is 1>> <<set $enemyarousal += 3>> <</if>> <<tentacle_skin "penis">> <br> <</if>> <<if _tentacle.head is "penis">> and continues thrusting against your <<penis>>. <span class="pink">It sucks and kneads your length, trying to milk you of your cum.</span> <<tentacle_skin "penis">> <<set $penisstate to "tentacledeep">><<set _tentacle.head to "penisdeep">><<sex 5 "genitals">> <br> <</if>> <<if _tentacle.head is "penisimminent">> <<if $player.virginity.penile is true and !playerHasStrapon()>> <span class="pink">and thrusts against your <<penis>>, swallowing you to the base and</span> <span class="red">tearing the membrane between your glans and foreskin, forever robbing you of your purity.</span> <<violence 100>> <<if $abomination is 1 and $NPCList[0].type is "plant">> <<set $speechpenisvirgin to 2>> <</if>> <<else>> <span class="pink">and thrusts against your <<penis>>, swallowing you to the base.</span> <</if>> <<tentacle_skin "penis">> <<takeVirginity `$abomination is 1 ? $NPCList[0].fullDescription + "'s " + _tentacle.fullDesc : _tentacle.fullDesc` "penile">> <<set $penisstate to "tentacle">><<set _tentacle.head to "penis">><<sex 5 "genitals">> <br> <<if !playerHasStrapon()>> <<raped>><<penisraped>> <</if>> <<penilestat>><<violence 1>> <</if>> <<if _tentacle.head is "penisentrance">> <<if !playerChastity("penis")>> <<if $penisWetness + (_tentacle.size * 10) gte (playerPenisSize() * 15) + random(1, 40) or random(1, 2) is 2>> and <<slithers>> over to your <<penis>>. <<penis_lube_text>> <span class="pink">the tip opens and presses against your glans, a thrust away from enveloping.</span> <<set $penisstate to "tentacleimminent">><<set _tentacle.head to "penisimminent">><<neutralgenitals 4>> <<else>> and <<slithers>> over to your <<penis>>. The tip opens and presses against your glans, but <span class="blue">it fails to gain purchase.</span> <<sex 5 "genitals">> <<if random(1, 3) gte 3>> <span class="purple">_Slimy _fluid squirts from the tip, lubricating you</span>. <<bodyliquid "penis" _fluid>> <</if>> <</if>> <<tentacle_skin "penis">> <<elseif $worn.genitals.name is "chastity parasite">> and worms round your $worn.genitals.name, rubbing and squeezing it in the process. <span class="lewd">Your clearly aroused reaction encourages it further.</span> <<arousal 200 "genitals">><<neutral 2 "genitals">><<set $worn.genitals.integrity -= 5>> <<else>> and tries to find a way inside to envelop your <<penis>>. Failing, it lashes the <<print setup.clothes.genitals[clothesIndex('genitals',$worn.genitals)].altDamage or "metal">>. <<set $worn.genitals.integrity -= 10>><<violence 1>> <</if>> <<set $tentaclePenis to _tentacle.fullDesc>> <br> <</if>> <<if _tentacle.head is "anusdeep">> <<if _tentacle.baby isnot 0>> and <<slithers>> into your <<bottom>> where it pumps a viscous _fluid <<if canImpregnateParasite("anus")>><span class="red">alongside something else</span><</if>> at the apex of each thrust. <<impregnateParasite _tentacle.baby _tentacle.babychance>> <<fertiliseParasites>> <<set _tentacle.baby to 0>><<set $tentacleAnusBaby to _tentacle.baby>> <<else>> and <<slithers>> into your <<bottom>> where it pumps a viscous _fluid at the apex of each thrust. <</if>> <<purity -1>><<internalejac>><<sex 5 "anus">> <<drugs 3>><<bodyliquid "anus" _fluid>> <<set _tentacle.tentaclehealth -= 1>><<pain $analPain>><<tentacle_record "fluid" 1>> <<if _tentacle.desc.includes("pale")>> <<hallucinogen 5>> <</if>> <<if $abomination is 1>> <<set $enemyarousal += 3>> <</if>> <<tentacle_skin "anus">> <br> <</if>> <<if _tentacle.head is "anus">> <<if _tentacle.baby isnot 0 and canImpregnateParasite("anus")>> and continues thrusting into your <<bottom>>. <span class="pink">The tip opens and begins oozing a viscous _fluid</span> <span class="red">alongside something else. Something about it scares you.</span> <<else>> and continues thrusting into your <<bottom>>. <span class="pink">The tip opens and begins oozing a viscous _fluid.</span> <</if>> <<purity -1>><<internalejac>><<sex 5 "anus">> <<set $anusstate to "tentacledeep">><<set _tentacle.head to "anusdeep">> <<analejacstat>><<ejacstat>><<pain $analPain>> <<tentacle_skin "anus">> <br> <</if>> <<if _tentacle.head is "anusimminent">> <<if $player.virginity.anal is true>> <<switch _tentacle.size>> <<case 3>> <span class="pink">and thrusts into your <<bottom>>, </span><span class="red">violating you in a way you hadn't conceived of. You shudder as your <<bottom>> stretches to accommodate _the _tentacle.fullDesc.</span> <<violence 100>> <<default>> <span class="pink">and thrusts into your <<bottom>>, </span><span class="red">violating you in a way you hadn't conceived of.</span> <</switch>> <<takeVirginity `$abomination is 1 ? $NPCList[0].fullDescription + "'s " + _tentacle.fullDesc : _tentacle.fullDesc` "anal">><<violence 100>> <<if $abomination is 1 and $NPCList[0].type is "plant">> <<set $speechanusvirgin to 2>> <</if>> <<else>> <<switch _tentacle.size>> <<case 3>> <span class="pink">and thrusts into your <<bottom>>. </span><span class="red"> You shudder as your <<bottom>> stretches to accommodate _the _tentacle.fullDesc.</span> <<default>> <span class="pink">and thrusts into your <<bottom>>.</span> <</switch>> <</if>> <<set $anusstate to "tentacle">><<set _tentacle.head to "anus">> <<sex 5 "anus">><<raped>><<anusraped>><<analstat>><<violence 1>><<pain $analPain>> <<tentacle_skin "anus">> <br> <</if>> <<if _tentacle.head is "anusentrance">> <<if !playerChastity("anus")>> <<if $anusWetness gte (_tentacle.size * 20) + random(1, 40) or random(1, 2) is 2>> and presses against your <<bottom>>. <<anus_lube_text>> <span class="pink">the tip presses into you, a thrust away from penetrating.</span> <<set $anusstate to "tentacleimminent">><<set _tentacle.head to "anusimminent">><<neutral 4 "anus">> <<if setup.bodyliquid.combined("bottom") gte 1 or setup.bodyliquid.combined("anus") gte 1>> _Slimy _fluid oozes out. <</if>> <<else>> and presses against your <<bottom>>. <span class="blue">It fails to gain purchase.</span> <<sex 5 "anus">> <<if random(1, 3) gte 3>> <span class="purple">_Slimy _fluid squirts from the tip, lubricating you</span>. <<bodyliquid "bottom" _fluid>> <</if>> <</if>> <<else>> and tries to find a way inside to your <<bottom>>. Failing, it lashes the device. <<set $worn.genitals.integrity -= 10>><<violence 1>> <</if>> <<set $tentacleAnus to _tentacle.fullDesc>><<set $tentacleAnusBaby to _tentacle.baby>> <br> <</if>> <<rng>> <<if _tentacle.head is "vaginarub">> <<if $rng gte 21>> <<if _tentacle.shaft is "thighs">> where it <<slithers>> against your <<pussy>>, pressing against your clit. <<else>> and<<if _tentacle.shaft is "breasts">> <<slithers>><</if>> between your thighs where it <<slithers>> against your <<pussy>>, pressing against your clit. <</if>> <<sex 3 "genitals">> <<elseif $novaginal is 1>> <<if _tentacle.shaft is "thighs">> where it <<slithers>> toward your <<pussy>>. <<else>> and<<if _tentacle.shaft is "breasts">> <<slithers>><</if>> between your thighs where it <<slithers>> toward your <<pussy>>. <</if>> The <<personsimple>> clicks <<his>> tongue, and <span class="lblue">it retracts,</span> pressing against your clit instead. <<sex 3 "genitals">> <<else>> <<if _tentacle.shaft is "thighs">> <span class="blue">where it <<slithers>> toward your <<pussy>>.</span> <<else>> and<<if _tentacle.shaft is "breasts">> <<slithers>><</if>> between your thighs <span class="blue">where it <<slithers>> toward your <<pussy>>.</span> <</if>> <<if _tentacle.baby isnot 0 and canImpregnateParasite("vagina")>> <span class="red"> Something about it scares you.</span> <</if>> <<set $vaginause to "tentacle">><<set $vaginastate to "tentacleentrance">><<set _tentacle.head to "vaginaentrance">><<set $thighuse to 0>><<set $vaginatarget to "tentacles">> <</if>> <br> <</if>> <<rng>> <<if _tentacle.head is "penisrub">> <<if $rng gte 21>> <<if _tentacle.shaft is "thighs">> where it <<slithers>> against your <<penis>>, coiling around it. <<else>> and<<if _tentacle.shaft is "breasts">> <<slithers>><</if>> between your thighs where it <<slithers>> against your <<penis>>, coiling around it. <</if>> <<sex 3 "genitals">> <<elseif $nopenile is 1>> <<if _tentacle.shaft is "thighs">> where the tip opens as it <<slithers>> toward your <<penis>>. <<else>> and<<if _tentacle.shaft is "breasts">> <<slithers>><</if>> between your thighs where the tip opens as it <<slithers>> toward your <<penis>>. <</if>> The <<personsimple>> clicks <<his>> tongue, and <span class="lblue">it retracts,</span> coiling around your <<penis>> instead. <<sex 3 "genitals">> <<else>> <<if _tentacle.shaft is "thighs">> <span class="blue">where the tip opens as it <<slithers>> toward your <<penis>>.</span> <<else>> and<<if _tentacle.shaft is "breasts">> <<slithers>><</if>> between your thighs <span class="blue">where the tip opens as it <<slithers>> toward your <<penis>>.</span> <</if>> <<set $penisuse to "tentacle">><<set $penisstate to "tentacleentrance">><<set _tentacle.head to "penisentrance">><<set $thighuse to 0>><<set $penistarget to "tentacles">><<set $tentaclePenis to _tentacle.fullDesc>> <</if>> <br> <</if>> <<rng>> <<if _tentacle.head is "anusrub">> <<if $rng gte 21>> and<<if _tentacle.shaft is "breasts">> <<slithers>><</if>> between your <<bottom>> cheeks where it <<slithers>> against your back. <<sex 3 "anus">> <<elseif $noanal is 1>> and <<slithers>> toward your <<bottom>>. The <<personsimple>> clicks <<his>> tongue, and <span class="lblue">it retracts,</span> <<slithering>> between your <<bottom>> cheeks instead. <<else>> <<if _tentacle.baby isnot 0 and canImpregnateParasite("anus")>> <span class="blue">and <<slithers>> toward your <<bottom>>.</span> <span class="red">Something about it scares you.</span> <<else>> and<<if _tentacle.shaft is "breasts">> <<slithers>><</if>> between your <<bottom>> cheeks, <span class="blue">toward your anus.</span> <<neutral 3 "anus">> <</if>> <<set $anususe to "tentacle">> <<set $anusstate to "tentacleentrance">><<set _tentacle.head to "anusentrance">><<set $anustarget to "tentacles">> <</if>> <br> <</if>> <<rng>> <<if _tentacle.head is "hypnosis_scream">> and in front of your face <<if _tentacle.type is "vine">> <span class="pink">where it puffs glittering pollen in your face.</span> <<elseif _tentacle.fullDesc.includes("metal")>> <span class="pink">where a light flashes to a fascinating rhythm.</span> <<else>> <span class="pink">where it shines with eldritch light.</span> <</if>> <span class="pink">You feel something shift in your consciousness.</span> <<if ($hypnosis_traits.devotion gte 5 or $hypnosis_traits.devotion is 4 and random(1, 100) gte 50) and $NPCList[0].fullDescription isnot "Gwylan">> Whatever it is, it's blotted out by something else. <span class="forest-green">Instead, in your mind's eye, Gwylan gently holds your face in front of <<nnpc_his "Gwylan">> own. The slightest sting of a thorn keeps your mind focused.</span> <<elseif !$hypnosis_traits.scream>> You've gained the <span class="pink">Hypnotic Yearning</span> trait. <<set $hypnosis_traits.scream to 1>> <<elseif $hypnosis_traits.scream lt 5>> Your hypnotic yearning has deepened. <<set $hypnosis_traits.scream += 1>> <</if>> <<hypnotised 1>><<set $combat_hypnosis to "scream">> <<set _tentacle.tentaclehealth -= 6>><<tentacle_record "hypnosis" 6>><<set _tentacle.head to 0>><<set _tentacle.tempBusy to true>> <br> <</if>> <<rng>> <<if _tentacle.head is "hypnosis_cover">> and in front of your face <<if _tentacle.type is "vine">> <span class="pink">where it puffs glittering pollen in your face.</span> <<elseif _tentacle.fullDesc.includes("metal")>> <span class="pink">where a light flashes to a fascinating rhythm.</span> <<else>> <span class="pink">where it shines with eldritch light.</span> <</if>> <span class="pink">You feel something shift in your consciousness.</span> <<if ($hypnosis_traits.devotion gte 5 or $hypnosis_traits.devotion is 4 and random(1, 100) gte 50) and $NPCList[0].fullDescription isnot "Gwylan">> Whatever it is, it's blotted out by something else. <span class="forest-green">Instead, in your mind's eye, Gwylan gently holds your face in front of <<nnpc_his "Gwylan">> own. The slightest sting of a thorn keeps your mind focused.</span> <<elseif !$hypnosis_traits.cover>> You've gained the <span class="pink">Hypnotic Flaunting</span> trait. <<set $hypnosis_traits.cover to 1>> <<elseif $hypnosis_traits.cover lt 5>> Your hypnotic flaunting has deepened. <<set $hypnosis_traits.cover += 1>> <</if>> <<hypnotised 1>><<set $combat_hypnosis to "cover">> <<set _tentacle.tentaclehealth -= 6>><<tentacle_record "hypnosis" 6>><<set _tentacle.head to 0>><<set _tentacle.tempBusy to true>> <br> <</if>> <<rng>> <<if _tentacle.head is "hypnosis_deviancy">> and in front of your face <<if _tentacle.type is "vine">> <span class="pink">where it puffs glittering pollen in your face.</span> <<elseif _tentacle.fullDesc.includes("metal")>> <span class="pink">where a light flashes to a fascinating rhythm.</span> <<else>> <span class="pink">where it shines with eldritch light.</span> <</if>> <span class="pink">You feel something shift in your consciousness.</span> Alluring sensations of unspeakable matings fill your mind, <<if $hypnosis_traits.devotion gte 5 and $NPCList[0].fullDescription isnot "Gwylan">> <span class="lblue">only to be snuffed out</span>.<br> <span class="forest-green">Instead, in your mind's eye, Gwylan's arms hold you in a naked embrace. Strange purple petals flutter around you.</span><br> It feels so real, leaving you contented when the vision fades away. You yearn only for one mate in this brief moment. <<if _tentacle.type is "vine">> <span class="red">_The _tentacle.fullDesc rapidly decays.</span> <<elseif _tentacle.fullDesc.includes("metal")>> <span class="red">_The _tentacle.fullDesc rapidly rusts.</span> <<else>> <span class="red">_The _tentacle.fullDesc rapidly withers.</span> <</if>> <<if $abomination is 1>> The <<person>> clutches <<his>> head in pain. <<defiance 5>> <</if>> <<arousal -500>><<pain -4>><<larousal>><<lpain>> <<set _tentacle.tentaclehealth -= 300>><<tentacle_record "hypnosis_backlash" 300>><<tentacleadvdisable _tentacle>> <<elseif $hypnosis_traits.devotion is 4 and random(1, 100) gte 50 and $NPCList[0].fullDescription isnot "Gwylan">> <span class="forest-green">only to fade as you feel a pair of gentle hands cover your eyes, blocking out the compulsion</span>. <<if $abomination is 1>> <<if $NPCList[0].fullDescription is "Gwylan">> Gwylan growls in an otherworldly tone. <<else>> The <<person>> looks irritated. <</if>> <</if>> <<elseif $uncomfortable.hypnosis is false>> <span class="red">devouring all contrary thoughts.</span> <<if !$hypnosis_traits.deviancy>> You've gained the <span class="pink">Hypnotic Deviancy</span> trait. <<set $hypnosis_traits.deviancy to 1>> <<elseif $hypnosis_traits.deviancy lt 5>> Your hypnotic deviancy has deepened. <<set $hypnosis_traits.deviancy += 1>> <</if>> <<willpower 1>><<gwillpower>> <<elseif $willpower gte random(1, 1000)>> <span class="green">but you will them away.</span> <<else>> <span class="red">devouring all contrary thoughts.</span> <<if !$hypnosis_traits.deviancy>> You've gained the <span class="pink">Hypnotic Deviancy</span> trait. <<set $hypnosis_traits.deviancy to 1>> <<elseif $hypnosis_traits.deviancy lt 5>> Your hypnotic deviancy has deepened. <<set $hypnosis_traits.deviancy += 1>> <</if>> <<willpower 1>><<gwillpower>> <</if>> <<set _tentacle.tentaclehealth -= 6>><<tentacle_record "hypnosis" 6>><<set _tentacle.head to 0>><<set _tentacle.tempBusy to true>> <br> <</if>> <<rng>> <<if _tentacle.head is "hypnosis_sadism">> and in front of your face <<if _tentacle.type is "vine">> <span class="pink">where it puffs glittering pollen in your face.</span> <<elseif _tentacle.fullDesc.includes("metal")>> <span class="pink">where a light flashes to a fascinating rhythm.</span> <<else>> <span class="pink">where it shines with eldritch light.</span> <</if>> A deep yearning blooms, <<if $hypnosis_traits.devotion gte 5 and $NPCList[0].fullDescription isnot "Gwylan">> <span class="lblue">only to be plucked</span>.<br> <span class="forest-green">Instead, in your mind's eye, Gwylan gently holds both of your wrists together, before pulling you into an embrace. Red rose petals flutter around you.</span><br> It feels so real, leaving you at peace when the vision fades away. You yearn only for <<nnpc_his "Gwylan">> comfort in this brief moment.<br> <<if _tentacle.type is "vine">> <span class="red">_The _tentacle.fullDesc rapidly decays.</span> <<elseif _tentacle.fullDesc.includes("metal")>> <span class="red">_The _tentacle.fullDesc rapidly rusts.</span> <<else>> <span class="red">_The _tentacle.fullDesc rapidly withers.</span> <</if>> <<if $abomination is 1>> The <<person>> clutches <<his>> head in pain. <<defiance 5>> <</if>> <<arousal -500>><<pain -4>><<larousal>><<lpain>> <<set _tentacle.tentaclehealth -= 300>><<tentacle_record "hypnosis_backlash" 300>><<tentacleadvdisable _tentacle>> <<elseif $hypnosis_traits.devotion is 4 and random(1, 100) gte 50 and $NPCList[0].fullDescription isnot "Gwylan">> <span class="forest-green">only to wither as you feel a pair of gentle hands cover your eyes, blocking out the compulsion</span>. <<if $abomination is 1>> <<if $NPCList[0].fullDescription is "Gwylan">> Gwylan growls in an otherworldly tone. <<else>> The <<person>> looks irritated. <</if>> <</if>> <<elseif $uncomfortable.hypnosis is false>> nurtured by a lewd part of you. <span class="lewd">Your mind immediately accepts it.</span> You long for the suffering of others. <<sadism 10>> <<elseif $willpower gte random(1, 1000)>> nurtured by a traitorous part of you. <span class="lblue">You will it away.</span> <<else>> unbeckoned. <span class="pink">You can't resist it.</span> You long for the suffering of others. <<sadism 10>><<willpower 1>><<gwillpower>> <</if>> <<hypnotised 1>><<set $combat_hypnosis to "sadism">> <<set _tentacle.tentaclehealth -= 6>><<tentacle_record "hypnosis" 6>><<set _tentacle.head to 0>><<set _tentacle.tempBusy to true>> <br> <</if>> <<rng>> <<if _tentacle.head is "hypnosis_orgasm">> and in front of your face <<if _tentacle.type is "vine">> <span class="pink">where it puffs glittering pollen in your face.</span> <<elseif _tentacle.fullDesc.includes("metal")>> <span class="pink">where a light flashes to a fascinating rhythm.</span> <<else>> <span class="pink">where it shines with eldritch light.</span> <</if>> A deep yearning blooms, <<if $hypnosis_traits.devotion gte 5 and $NPCList[0].fullDescription isnot "Gwylan">> <span class="lblue">only to be plucked</span>.<br> <span class="forest-green">Instead, in your mind's eye, Gwylan cups your cheeks with gentle hands and smiles down at you. Red rose petals flutter around you.</span><br> It feels so real, leaving you empty when the vision fades away. You yearn only for <<nnpc_him "Gwylan">> in this brief moment. <<if _tentacle.type is "vine">> <span class="red">_The _tentacle.fullDesc rapidly decays.</span> <<elseif _tentacle.fullDesc.includes("metal")>> <span class="red">_The _tentacle.fullDesc rapidly rusts.</span> <<else>> <span class="red">_The _tentacle.fullDesc rapidly withers.</span> <</if>> <<if $abomination is 1>> The <<person>> clutches <<his>> head in pain. <<defiance 5>> <</if>> <<arousal -500>><<pain -4>><<larousal>><<lpain>> <<set _tentacle.tentaclehealth -= 300>><<tentacle_record "hypnosis_backlash" 300>><<tentacleadvdisable _tentacle>> <<elseif $hypnosis_traits.devotion is 4 and random(1, 100) gte 50 and $NPCList[0].fullDescription isnot "Gwylan">> <span class="forest-green">only to wither as you feel a pair of gentle hands cover your eyes, blocking out the compulsion</span>. <<if $abomination is 1>> <<if $NPCList[0].fullDescription is "Gwylan">> Gwylan growls in an otherworldly tone. <<else>> The <<person>> looks irritated. <</if>> <</if>> <<elseif $uncomfortable.hypnosis is false>> nurtured by a lewd part of you. <span class="lewd">Your mind immediately accepts it.</span> Feelings of arousal overwhelm you. <<arousal 10000>> <<elseif $willpower gte random(1, 1000)>> nurtured by a traitorous part of you. <span class="lblue">You will it away.</span> <<else>> unbeckoned. <span class="pink">You can't resist it.</span> Feelings of arousal overwhelm you. <<arousal 10000>><<willpower 1>><<gwillpower>> <</if>> <<hypnotised 1>><<set $combat_hypnosis to "orgasm">> <<set _tentacle.tentaclehealth -= 6>><<tentacle_record "hypnosis" 6>><<set _tentacle.head to 0>><<set _tentacle.tempBusy to true>> <br> <</if>> <<rng>> <<if _tentacle.head is "hypnosis">> and in front of your face <<if _tentacle.type is "vine">> <span class="purple">where glittering pollen lingers on the tip.</span> <<elseif _tentacle.fullDesc.includes("metal")>> <span class="purple">where a light blinks to a strange rhythm.</span> <<else>> <span class="purple">where it glimmers with eldritch light.</span> <</if>> <<rng 5>> <<if $rng gte 5 and ($hypnosis_traits.scream is undefined or $hypnosis_traits.scream lt 5)>> Confusing images swim through your mind, blending and reversing your thoughts. <<set _tentacle.head to "hypnosis_scream">> <<elseif $rng gte 4 and ($hypnosis_traits.cover is undefined or $hypnosis_traits.cover lt 5)>> Confusing images swim through your mind, blending and reversing your thoughts. <<set _tentacle.head to "hypnosis_cover">> <<elseif $rng gte 3 and $settings.bestialityEnabled and ($hypnosis_traits.deviancy is undefined or $hypnosis_traits.deviancy lt 5)>> Unspeakable images fill your mind, luring you someplace alien. <<set _tentacle.head to "hypnosis_deviancy">> <<elseif $rng gte 2>> Sadistic images surge through your mind, accompanied by unholy delight. <<set _tentacle.head to "hypnosis_sadism">> <<else>> A feeling of immense pleasure shivers through your scalp. A dangerous feeling. <<set _tentacle.head to "hypnosis_orgasm">> <</if>> <br> <</if>> <<if _tentacle.head is "leftlegentrance">> <<if _tentacle.traits.includes("pain")>> <<violence 2>> <<switch random(1, 3)>> <<case 3>>_The _tentacle.fullDesc pries your left leg out of the way, <span class="purple">leaving you defenceless.</span> <<case 2>>_The _tentacle.fullDesc gives your left leg a harsh tug, <span class="purple">painfully seizing it.</span> <<case 1>>_The _tentacle.fullDesc wrings your left leg in a vice grip, <span class="purple">restraining it.</span> <</switch>> <<else>> <<switch random(1, 3)>> <<case 3>>_The _tentacle.fullDesc rings around your left leg, <span class="purple">trapping it in its coils.</span> <<case 2>>_The _tentacle.fullDesc tightens around your left leg, <span class="purple">restraining it.</span> <<case 1>>_The _tentacle.fullDesc squeezes tight, <span class="purple">until your left leg goes numb.</span> <</switch>> <</if>> <<neutral 1>><<disablefeet>><<feettentacledisable>><<set _tentacle.shaft to "leftleg">><<set _tentacle.head to 0>> <<set $leftleg to "grappled">><<set $feettarget to "tentacles">><<set _tentacle.tempBusy to true>> <<if $rightleg and $rightleg.includes("tentacle")>> <<set $rightleg to 0>> <</if>> <<tentacle_skin "left_thigh">> <br> <</if>> <<if _tentacle.head is "rightlegentrance">> <<if _tentacle.traits.includes("pain")>> <<violence 2>> <<switch random(1, 3)>> <<case 3>>_The _tentacle.fullDesc pries your right leg out of the way, <span class="purple">leaving you defenceless.</span> <<case 2>>_The _tentacle.fullDesc gives your right leg a harsh tug, <span class="purple">painfully seizing it.</span> <<case 1>>_The _tentacle.fullDesc wrings your right leg in a vice grip, <span class="purple">restraining it.</span> <</switch>> <<else>> <<switch random(1, 3)>> <<case 3>>_The _tentacle.fullDesc rings around your right leg, <span class="purple">trapping it in its coils.</span> <<case 2>>_The _tentacle.fullDesc tightens around your right leg, <span class="purple">restraining it.</span> <<case 1>>_The _tentacle.fullDesc squeezes tight, <span class="purple">until your right leg goes numb.</span> <</switch>> <</if>> <<neutral 1>><<disablefeet>><<feettentacledisable>><<set _tentacle.shaft to "rightleg">><<set _tentacle.head to 0>> <<set $rightleg to "grappled">><<set $feettarget to "tentacles">><<set _tentacle.tempBusy to true>> <<if $leftleg and $leftleg.includes("tentacle")>> <<set $left to 0>> <</if>> <<tentacle_skin "right_thigh">> <br> <</if>> <<if _tentacle.head is "leftarmentrance">> <<if _tentacle.traits.includes("pain")>> <<violence 2>> <<switch random(1, 3)>> <<case 3>>_The _tentacle.fullDesc pries your left arm out of the way, <span class="purple">leaving you defenceless.</span> <<case 2>>_The _tentacle.fullDesc twists your left arm behind your back, <span class="purple">painfully seizing it.</span> <<case 1>>_The _tentacle.fullDesc wrings your left arm in a vice grip, <span class="purple">restraining it.</span> <</switch>> <<else>> <<switch random(1, 3)>> <<case 3>>_The _tentacle.fullDesc rings around your left arm, <span class="purple">trapping it in its coils.</span> <<case 2>>_The _tentacle.fullDesc tightens around your left arm, <span class="purple">restraining it.</span> <<case 1>>_The _tentacle.fullDesc squeezes tight, <span class="purple">until your left arm goes numb.</span> <</switch>> <</if>> <<neutral 1>><<leftarmtentacledisable>><<set _tentacle.shaft to "leftarm">><<set _tentacle.head to 0>> <<set $leftarm to "tentgrappled">><<set $leftarmstate to 0>><<set $lefttarget to "tentacles">><<set _tentacle.tempBusy to true>> <<tentacle_skin "left_shoulder">> <br> <</if>> <<if _tentacle.head is "rightarmentrance">> <<if _tentacle.traits.includes("pain")>> <<violence 2>> <<switch random(1, 3)>> <<case 3>>_The _tentacle.fullDesc pries your right arm out of the way, <span class="purple">leaving you defenceless.</span> <<case 2>>_The _tentacle.fullDesc twists your right arm behind your back, <span class="purple">painfully seizing it.</span> <<case 1>>_The _tentacle.fullDesc wrings your right arm in a vice grip, <span class="purple">restraining it.</span> <</switch>> <<else>> <<switch random(1, 3)>> <<case 3>>_The _tentacle.fullDesc rings around your right arm, <span class="purple">trapping it in its coils.</span> <<case 2>>_The _tentacle.fullDesc tightens around your right arm, <span class="purple">restraining it.</span> <<case 1>>_The _tentacle.fullDesc squeezes tight, <span class="purple">until your right arm goes numb.</span> <</switch>> <</if>> <<rightarmtentacledisable>><<neutral 1>><<set _tentacle.shaft to "rightarm">><<set _tentacle.head to 0>> <<set $rightarm to "tentgrappled">><<set $rightarmstate to 0>><<set $righttarget to "tentacles">><<set _tentacle.tempBusy to true>> <<tentacle_skin "right_shoulder">> <br> <</if>> <<rng>> <<if _tentacle.head is 0 and _tentacle.shaft isnot 0 and !_tentacle.tempBusy>> <<if random(1, 2) is 2 and _tentacle.traits.includes("hypno") and $settings.hypnosisEnabled>> <<upperslither>><span class="blue">and waves in front of your eyes.</span> <<set _tentacle.head to "hypnosis">> <<elseif $rng lte 10>> <<if $chestuse is "squeezed">> <<upperslither>><span class="blue">and<<if _tentacle.shaft is "breasts">> <<slithers>><</if>> up between your squeezed <<breasts>>.</span> <<set _tentacle.head to "chest">><<neutralbreast 2>><<set $chestuse to "tentaclerub">><<cheststat>><<set $chesttarget to "tentacles">> <<tentacle_skin "breasts">> <<else>> <<tentacleadvdefault _tentacle>> <</if>> <<elseif $rng lte 20>> <<if $leftnipple is 0>> <<upperslither>> <<playWithBreasts>><span class="blue">and teases your left nipple.</span> <<neutralbreast 2>> <<set _tentacle.head to "leftnipple">><<set $leftnipple to "tentacle">> <<tentacle_skin "breasts">> <<else>> <<tentacleadvdefault _tentacle>> <</if>> <<elseif $rng lte 30>> <<if $rightnipple is 0>> <<upperslither>> <<playWithBreasts>><span class="blue">and teases your right nipple.</span> <<neutralbreast 2>> <<set _tentacle.head to "rightnipple">><<set $rightnipple to "tentacle">> <<tentacle_skin "breasts">> <<else>> <<tentacleadvdefault _tentacle>> <</if>> <<elseif $rng lte 40>> <<if $mouthuse is 0>> <<upperslither>> <span class="blue">and<<if _tentacle.shaft is "breasts">> <<slithers>><</if>> up toward your mouth.</span> <<neutral 1 "breasts">><<neutral 1 "mouth">> <<set $mouthuse to "tentacle">><<set $mouthstate to "tentacleentrance">><<set _tentacle.head to "mouthentrance">><<set $mouthtarget to "tentacles">> <<tentacle_skin "left_cheek" "right_cheek">> <<else>> <<tentacleadvdefault _tentacle>> <</if>> <<elseif $rng lte 50>> <<if $anususe is 0 and $settings.analEnabled and $noanal is 0>> <<underslither>> <span class="blue">and <<slithers>> toward your <<bottom>>.</span> <<if _tentacle.baby isnot 0 and canImpregnateParasite("anus")>> <span class="red">Something about it scares you.</span> <</if>> <<neutral 2 "bottom">> <<set $anususe to "tentacle">><<set $anusstate to "tentacleentrance">><<set _tentacle.head to "anusentrance">><<set $anustarget to "tentacles">> <<tentacle_skin "left_bottom" "right_bottom">> <<else>> <<tentacleadvdefault _tentacle>> <</if>> <<elseif $rng lte 60>> <<if $player.vaginaExist and $vaginause is 0 and $novaginal is 0>> <<underslither>> <span class="blue">and <<slithers>> toward your <<pussy>>.</span> <<if _tentacle.baby isnot 0 and canImpregnateParasite("vagina")>> <span class="red">Something about it scares you.</span> <</if>> <<neutralgenitals 2>> <<set $vaginause to "tentacle">><<set $vaginastate to "tentacleentrance">><<set _tentacle.head to "vaginaentrance">><<set $vaginatarget to "tentacles">> <<tentacle_skin "pubic">> <<else>> <<tentacleadvdefault _tentacle>> <</if>> <<elseif $rng lte 70>> <<if $player.penisExist and $penisuse is 0 and $nopenile is 0>> <<underslither>> <span class="blue">and <<slithers>> toward your <<penis>>.</span> <<neutralgenitals 2>> <<set $penisuse to "tentacle">><<set $penisstate to "tentacleentrance">><<set _tentacle.head to "penisentrance">><<set $penistarget to "tentacles">><<set $tentaclePenis to _tentacle.fullDesc>> <<tentacle_skin "pubic">> <<else>> <<tentacleadvdefault _tentacle>> <</if>> <<elseif $rng lte 80>> <<if $player.penisExist and $penisuse is 0 and random(0,100) gte 50>> <<if _tentacle.shaft is "thighs">> <<underslither>> <span class="blue">where it <<slithers>> against your tummy and <<penis>>.</span> <<else>> <<underslither>> <span class="blue">where it <<slithers>> between your thighs and against your tummy and <<penis>>.</span> <</if>> <<set $penisuse to "tentaclerub">><<set $thighuse to "tentaclerub">><<set _tentacle.head to "penisrub">><<sex 3 "genitals">><<thighstat>><<set $penistarget to "tentacles">><<set $tentaclePenis to _tentacle.fullDesc>> <<elseif $player.vaginaExist and $vaginause is 0 and random(0,100) gte 50>> <<if _tentacle.shaft is "thighs">> <<underslither>> <span class="blue">where it <<slithers>> against your tummy and <<pussy>>.</span> <<else>> <<underslither>> <span class="blue">where it <<slithers>> between your thighs and against your tummy and <<pussy>>.</span> <</if>> <<set $vaginause to "tentaclerub">><<set $thighuse to "tentaclerub">><<set _tentacle.head to "vaginarub">><<sex 3 "genitals">><<thighstat>><<set $vaginatarget to "tentacles">> <<tentacle_skin "left_thigh" "right_thigh">> <<else>> <<tentacleadvdefault _tentacle>> <</if>> <<elseif $rng lte 90>> <<if $anusstate is 0 and $anususe is 0 and $settings.analEnabled>> <<underslither>> <span class="blue">and <<slithers>> between your <<bottom>> cheeks and against your back.</span> <<set $anusstate to "tentaclerub">><<set $anususe to "tentaclerub">><<set _tentacle.head to "anusrub">><<sex 1 "anus">><<bottomstat>><<set $anustarget to "tentacles">> <<tentacle_skin "back">> <<else>> <<tentacleadvdefault _tentacle>> <</if>> <<else>> <<tentacleadvdefault _tentacle>> <</if>> <br> <<elseif _tentacle.head is 0 and _tentacle.shaft is 0>> <<if $rng lte 10>> <<if $position isnot "wall">> _The _tentacle.fullDesc winds around your tummy. <<neutral 1>> <<set _tentacle.shaft to "tummy">> <<else>> _The _tentacle.fullDesc gently slaps your <<bottom>>. <<violence 1>><<hitstat>> <</if>> <<elseif $rng lte 20>> _The _tentacle.fullDesc <<slithers>> between your thighs. <<neutral 1 "genitals">> <<set _tentacle.shaft to "thighs">> <<tentacle_skin "left_thigh" "right_thigh">> <<elseif $rng lte 30>> <<if $position isnot "wall">> <<if $player.breastsize gte 2 and $chestuse is 0>> _The _tentacle.fullDesc <<slithers>> around your <<breasts>>, <span class="blue">squeezing them together.</span> <<neutralbreast 1>><<set _tentacle.shaft to "breasts">><<set $chestuse to "squeezed">> <<tentacle_skin "breasts">> <<else>> _The _tentacle.fullDesc gently slaps your <<bottom>>. <<violence 1>><<hitstat>> <<tentacle_skin "left_bottom" "right_bottom">> <</if>> <<else>> _The _tentacle.fullDesc gently slaps your <<bottom>>. <<violence 1>><<hitstat>> <<tentacle_skin "left_bottom" "right_bottom">> <</if>> <<elseif $rng lte 40>> <<if $position isnot "wall">> _The _tentacle.fullDesc winds its way around your chest, beneath your <<breasts>>. <<neutralbreast 1>><<set _tentacle.shaft to "chest">> <<tentacle_skin "breasts">> <<else>> _The _tentacle.fullDesc gently slaps your <<bottom>>. <<violence 1>><<hitstat>> <<tentacle_skin "left_bottom" "right_bottom">> <</if>> <<elseif $rng lte 50>> _The _tentacle.fullDesc winds its way around your waist. <<neutral 1>><<set _tentacle.shaft to "waist">> <<elseif $rng lte 60>> <<if $position isnot "wall">> <<if $head is 0 and $nochoke isnot 1 and $settings.asphyxiaLevel gte 1>> <<if $worn.neck.name is "familiar collar" and $worn.neck.cursed is 1>> <<set $nochoke to 1>> _The _tentacle.fullDesc winds its way around your neck, <span class="green">but immediately recoils as the golden heart on your collar shocks it.</span> <<tentacleadvdisable _tentacle>><<set _tentacle.tentaclehealth -= 3>><<tentacle_record "damage" 3>> <<else>> _The _tentacle.fullDesc winds its way around your neck, <span class="blue">restraining your head.</span> <<neutral 1>><<set _tentacle.shaft to "neck">><<set $head to "grappled">> <<tentacle_skin "left_cheek" "right_cheek">> <</if>> <<else>> _The _tentacle.fullDesc winds its way around your shoulders. <<neutral 1>><<set _tentacle.shaft to "shoulders">> <</if>> <<else>> _The _tentacle.fullDesc gently slaps your <<bottom>>. <<tentacle_skin "left_bottom" "right_bottom">> <<violence 1>><<hitstat>> <</if>> <<elseif $rng lte 70>> _The _tentacle.fullDesc gently slaps your <<bottom>>. <<tentacle_skin "left_bottom" "right_bottom">> <<violence 1>><<hitstat>> <<elseif $rng lte 80>> <<if $leftleg is 0>> <<switch random(1, 3)>> <<case 3>>_The _tentacle.fullDesc winds its way around your left leg, <span class="blue">wrapping around it.</span> <<case 2>>_The _tentacle.fullDesc <span class="blue">prods your left leg,</span> probing for a response. <<case 1>>_The _tentacle.fullDesc <span class="blue">curls up to your left leg.</span> <</switch>> <<neutral 1>><<set _tentacle.head to "leftlegentrance">><<tentacle_skin "left_thigh">> <<else>> <<switch random(1, 3)>> <<case 3>>_The _tentacle.fullDesc tickles your feet. <<case 2>>_The _tentacle.fullDesc squeezes your thigh. <<case 1>>_The _tentacle.fullDesc <<slithers>> between your legs. <</switch>> <<neutral 1>> <</if>> <<elseif $rng lte 85>> <<if $rightleg is 0>> <<switch random(1, 3)>> <<case 3>>_The _tentacle.fullDesc winds its way around your right leg, <span class="blue">wrapping around it.</span> <<case 2>>_The _tentacle.fullDesc <span class="blue">prods your right leg,</span> probing for a response. <<case 1>>_The _tentacle.fullDesc <span class="blue">curls up to your right leg.</span> <</switch>> <<neutral 1>><<set _tentacle.head to "rightlegentrance">><<tentacle_skin "right_thigh">> <<else>> <<switch random(1, 3)>> <<case 3>>_The _tentacle.fullDesc tickles your feet. <<case 2>>_The _tentacle.fullDesc squeezes your thigh. <<case 1>>_The _tentacle.fullDesc <<slithers>> between your legs. <</switch>> <<neutral 1>> <</if>> <<elseif $rng lte 90>> <<if $leftarm is 0>> <<switch random(1, 3)>> <<case 3>>_The _tentacle.fullDesc winds its way around your left arm, <span class="blue">wrapping around it.</span> <<case 2>>_The _tentacle.fullDesc <span class="blue">prods your left arm,</span> probing for a response. <<case 1>>_The _tentacle.fullDesc <span class="blue">curls up to your left arm.</span> <</switch>> <<neutral 1>><<set _tentacle.head to "leftarmentrance">><<tentacle_skin "left_shoulder">> <<else>> <<switch random(1, 3)>> <<case 3>>_The _tentacle.fullDesc tickles your armpit. <<case 2>>_The _tentacle.fullDesc <<slithers>> over your ribs. <<case 1>>_The _tentacle.fullDesc slaps against your palm. <</switch>> <<neutral 1>> <</if>> <<elseif $rng lte 95>> <<if $rightarm is 0>> <<switch random(1, 3)>> <<case 3>>_The _tentacle.fullDesc winds its way around your right arm, <span class="blue">wrapping around it.</span> <<case 2>>_The _tentacle.fullDesc <span class="blue">prods your right arm,</span> probing for a response. <<case 1>>_The _tentacle.fullDesc <span class="blue">curls up to your right arm.</span> <</switch>> <<neutral 1>><<set _tentacle.head to "rightarmentrance">><<tentacle_skin "right_shoulder">> <<else>> <<switch random(1, 3)>> <<case 3>>_The _tentacle.fullDesc tickles your armpit. <<case 2>>_The _tentacle.fullDesc <<slithers>> over your ribs. <<case 1>>_The _tentacle.fullDesc slaps against your palm. <</switch>> <<neutral 1>> <</if>> <<elseif $rng lte 100>> _The _tentacle.fullDesc <<slithers>> against your <<bottom>>. <<tentacle_skin "left_bottom" "right_bottom">> <<neutral 1 "bottom">> <</if>> <br> <</if>> <<run delete _tentacle.tempBusy>> <</widget>> <<widget "tentacleadvdefault">> <<set _tentacle to _args[0]>> <<rng>> <<if $rng gte 91>> then squirts a warm _fluid over your neck. <<bodyliquid "neck" _fluid>><<neckejacstat>> <<elseif $rng gte 81>> then squirts a warm _fluid over your right arm. <<bodyliquid "rightarm" _fluid>><<handejacstat>> <<elseif $rng gte 71>> then squirts a warm _fluid over your left arm. <<bodyliquid "leftarm" _fluid>><<handejacstat>> <<elseif $rng gte 61>> then squirts a warm _fluid over your thighs. <<bodyliquid "thigh" _fluid>><<thighejacstat>> <<elseif $rng gte 51>> then squirts a warm _fluid over your <<bottom>>. <<bodyliquid "bottom" _fluid>><<bottomejacstat>> <<elseif $rng gte 41>> then squirts a warm _fluid over your tummy. <<bodyliquid "tummy" _fluid>><<tummyejacstat>> <<elseif $rng gte 31>> then squirts a warm _fluid over your chest. <<bodyliquid "chest" _fluid>><<chestejacstat>> <<elseif $rng gte 21>> then squirts a warm _fluid over your face. <<bodyliquid "face" _fluid>><<faceejacstat>> <<elseif $rng gte 11>> then squirts a warm _fluid over your hair. <<bodyliquid "hair" _fluid>><<hairejacstat>> <<else>> then squirts a warm _fluid over your feet. <<bodyliquid "feet" _fluid>><<feetejacstat>> <</if>> <<neutral 1>><<set _tentacle.tentaclehealth -= 1>><<tentacle_record "fluid" 1>><<ejacstat>> <<if $abomination is 1>> <<set $enemyarousal += 3>> <</if>> <</widget>> <<widget "tentacleadvdisable">> <<set _tentacle to _args[0]>> <<if _tentacle.head is "feet">><<set $leftleg to 0>><<set $rightleg to 0>><<set $feetstate to 0>><</if>> <<if _tentacle.head is "leftarm">><<set $leftarm to 0>><<set $leftarmstate to 0>><</if>> <<if _tentacle.head is "rightarm">><<set $rightarm to 0>><<set $rightarmstate to 0>><</if>> <<if _tentacle.head is "leftnipple" or _tentacle.head is "leftnipplesuck">> <<set $leftnipple to 0>> <</if>> <<if _tentacle.head is "rightnipple" or _tentacle.head is "rightnipplesuck">> <<set $rightnipple to 0>> <</if>> <<if _tentacle.head is "mouthentrance" or _tentacle.head is "mouthimminent" or _tentacle.head is "mouth" or _tentacle.head is "mouthdeep">> <<if $mouthuse is "tentacle">><<set $mouthuse to 0>><<set $mouthstate to 0>><</if>> <<unset $tentacleMouth>> <</if>> <<if _tentacle.head is "anusentrance" or _tentacle.head is "anusimminent" or _tentacle.head is "anus" or _tentacle.head is "anusdeep">> <<if $anususe is "tentacle" or $anususe is "tentaclerub">><<set $anususe to 0>><<set $anusstate to 0>><</if>> <<unset $tentacleAnus>><<unset $tentacleAnusBaby>> <</if>> <<if _tentacle.head is "vaginaentrance" or _tentacle.head is "vaginaimminent" or _tentacle.head is "vagina" or _tentacle.head is "vaginadeep">> <<if $vaginause is "tentacle" or $vaginause is "tentaclerub">><<set $vaginause to 0>><<set $vaginastate to 0>><</if>> <<unset $tentacleVagina>> <</if>> <<if _tentacle.head is "penisentrance" or _tentacle.head is "penisimminent" or _tentacle.head is "penis" or _tentacle.head is "penisdeep">> <<if $penisuse is "tentacle" or $penisuse is "tentaclerub">><<set $penisuse to 0>><<set $penisstate to 0>><</if>> <<unset $tentaclePenis>> <</if>> <<if _tentacle.head is "chest">><<set $chestuse to "squeezed">><</if>> <<if _tentacle.shaft is "breasts">><<set $chestuse to 0>><</if>> <<if _tentacle.head is "vaginarub">><<set $vaginause to 0>><<set $thighuse to 0>><</if>> <<if _tentacle.head is "penisrub">><<set $penisuse to 0>><<set $thighuse to 0>><</if>> <<if _tentacle.head is "bottomrub">><<set $anususe to 0>><<set $bottomuse to 0>><</if>> <<if _tentacle.head is "anusrub">><<set $anususe to 0>><<set $anususe to 0>><</if>> <<if _tentacle.shaft is "neck" and $head isnot "bound">><<set $head to 0>><</if>> <<if _tentacle.shaft is "leftleg" and $leftleg isnot "bound">><<set $leftleg to 0>><</if>> <<if _tentacle.shaft is "rightleg" and $rightleg isnot "bound">><<set $rightleg to 0>><</if>> <<if _tentacle.shaft is "leftarm" and $leftarm isnot "bound">><<set $leftarm to 0>><</if>> <<if _tentacle.shaft is "rightarm" and $rightarm isnot "bound">><<set $rightarm to 0>><</if>> <<set _tentacle.shaft to 0>> <<set _tentacle.head to 0>> <</widget>> <<widget "actionstentacleadvcheckbox">> /* Dunno what im doing honestly ~Ludsoe */ <<if _args[3] is _args[4]>><<set _checked to "checked">><<else>><<set _checked to "">><</if>> /* Originally i was just passing _args[0] along to the label, but for some reason that didnt work.... but this does*/ <<if _args[0] is "def">> | <label><span class="def">_args[1]</span> <<radiobutton _args[2] _args[3] _checked>></label> <<elseif _args[0] is "sub">> | <label><span class="sub">_args[1]</span> <<radiobutton _args[2] _args[3] _checked>></label> <<elseif _args[0] is "neutral">> | <label><span class="neutral">_args[1]</span> <<radiobutton _args[2] _args[3] _checked>></label> <<elseif _args[0] is "brat">> | <label><span class="brat">_args[1]</span> <<radiobutton _args[2] _args[3] _checked>></label> <</if>> <</widget>> <<widget "actionstentacleadvlefthand">> /* unused */ <<set _tentacle to _args[0]>> <<if $leftarm is 0 and _tentacle.shaft isnot "finished">> <<set _action to "lefthittentacle"+_tentacle.id>> <<actionstentacleadvcheckbox "def" "Strike the _tentacle.fullDesc" "$leftaction" _action $leftactiondefault>> <<set _action to "leftgrabtentacle"+_tentacle.id>> <<actionstentacleadvcheckbox "sub" "Grab the _tentacle.fullDesc" "$leftaction" _action $leftactiondefault>> <<if $angel gte 4 and $angelBanish gte 1>> <<set _action to "leftbanish"+_tentacle.id>> <<actionstentacleadvcheckbox "def" "Banish the _tentacle.fullDesc" "$leftaction" _action $leftactiondefault>> <</if>> <br> <<elseif $leftarm is _tentacle.id>> You hold the _tentacle.fullDesc in your left hand. <br> <<set _action to "leftrub"+_tentacle.id>> <<actionstentacleadvcheckbox "sub" "Milk it" "$leftaction" _action $leftactiondefault>> <<set _action to "leftstop"+_tentacle.id>> <<actionstentacleadvcheckbox "neutral" "Let go" "$leftaction" _action $leftactiondefault>> <<if hasSexStat("deviancy", 5)>> /* Should i lock this behind consentacles? */ <<if ($anususe is 0 and $settings.analEnabled) or ($player.vaginaExist and $vaginause is 0 or $player.penisExist and $penisuse is 0) or $mouthuse is 0>> <br>--<<deviant5>>| --<br> <<if $anususe is 0 and $settings.analEnabled>> <<set _action to "showbottom"+_tentacle.id>> <<actionstentacleadvcheckbox "sub" "Guide to your <<bottom>>." "$leftaction" _action $leftactiondefault>> <</if>> <<if ($player.vaginaExist and $vaginause is 0) or ($player.penisExist and $penisuse is 0)>> <<set _action to "showthighs"+_tentacle.id>> <<actionstentacleadvcheckbox "sub" "Guide to your thighs." "$leftaction" _action $leftactiondefault>> <</if>> <<if $mouthuse is 0>> <<set _action to "showmouth"+_tentacle.id>> <<actionstentacleadvcheckbox "sub" "Guide to your mouth." "$leftaction" _action $leftactiondefault>> <</if>> <</if>> <</if>> <br> <</if>> <</widget>> <<widget "actionstentacleadvrighthand">> /* unused */ <<set _tentacle to _args[0]>> <<if $rightarm is 0 and _tentacle.shaft isnot "finished">> <<set _action to "righthittentacle"+_tentacle.id>> <<actionstentacleadvcheckbox "def" "Strike _the _tentacle.fullDesc" "$rightaction" _action $rightactiondefault>> <<set _action to "rightgrabtentacle"+_tentacle.id>> <<actionstentacleadvcheckbox "sub" "Grab _the _tentacle.fullDesc" "$rightaction" _action $rightactiondefault>> <<if $angel gte 4 and $angelBanish gte 1>> <<set _action to "rightbanish"+_tentacle.id>> <<actionstentacleadvcheckbox "def" "Banish _the _tentacle.fullDesc" "$rightaction" _action $rightactiondefault>> <</if>> <br> <<elseif $rightarm is _tentacle.id>> You hold the _tentacle.fullDesc in your right hand. <br> <<set _action to "rightrub"+_tentacle.id>> <<actionstentacleadvcheckbox "sub" "Milk it" "$rightaction" _action $rightactiondefault>> <<set _action to "rightstop"+_tentacle.id>> <<actionstentacleadvcheckbox "neutral" "Let go" "$rightaction" _action $rightactiondefault>> <<if hasSexStat("deviancy", 5)>> /* Should i lock this behind consentacles? */ <<if ($anususe is 0 and $settings.analEnabled) or ($player.vaginaExist and $vaginause is 0 or $player.penisExist and $penisuse is 0) or $mouthuse is 0>> <br>--<<deviant5>>| --<br> <<if $anususe is 0 and $settings.analEnabled>> <<set _action to "showbottom"+_tentacle.id>> <<actionstentacleadvcheckbox "sub" "Guide to your <<bottom>>." "$rightaction" _action $rightactiondefault>> <</if>> <<if ($player.vaginaExist and $vaginause is 0) or ($player.penisExist and $penisuse is 0)>> <<set _action to "showthighs"+_tentacle.id>> <<actionstentacleadvcheckbox "sub" "Guide to your thighs." "$rightaction" _action $rightactiondefault>> <</if>> <<if $mouthuse is 0>> <<set _action to "showmouth"+_tentacle.id>> <<actionstentacleadvcheckbox "sub" "Guide to your mouth." "$rightaction" _action $rightactiondefault>> <</if>> <</if>> <</if>> <br> <</if>> <</widget>> <<widget "actionstentacleadvlegs">> /* unused */ <<set _tentacle to _args[0]>> <<if $leftleg is 0 and $rightleg is 0 and _tentacle.shaft isnot "finished">> <<set _action to "feethit"+_tentacle.id>> <<actionstentacleadvcheckbox "def" "Kick _the _tentacle.fullDesc" "$feetaction" _action $feetactiondefault>> <<set _action to "feetgrab"+_tentacle.id>> <<actionstentacleadvcheckbox "sub" "Grab _the _tentacle.fullDesc" "$feetaction" _action $feetactiondefault>> <br> <<elseif ($rightleg is 0 or $leftleg is 0) and _tentacle.shaft isnot "finished">> <<set _action to "feethit"+_tentacle.id>> <<actionstentacleadvcheckbox "def" "Kick _the _tentacle.fullDesc" "$feetaction" _action $feetactiondefault>> <br> <<elseif $leftleg is _tentacle.id>> You hold the _tentacle.fullDesc between your feet. <br> <<set _action to "feetrub"+_tentacle.id>> <<actionstentacleadvcheckbox "sub" "Milk it" "$feetaction" _action $feetactiondefault>> <<set _action to "feetstop"+_tentacle.id>> <<actionstentacleadvcheckbox "neutral" "Let go" "$feetaction" _action $feetactiondefault>> <<if hasSexStat("deviancy", 5)>> /* Should i lock this behind consentacles? */ <<if ($anususe is 0 and $settings.analEnabled) or ($player.vaginaExist and $vaginause is 0 or $player.penisExist and $penisuse is 0)>> <br>--<<deviant5>>| --<br> <<if $anususe is 0 and $settings.analEnabled>> <<set _action to "showbottom"+_tentacle.id>> <<actionstentacleadvcheckbox "sub" "Guide to your <<bottom>>." "$feetaction" _action $feetactiondefault>> <</if>> <<if ($player.vaginaExist and $vaginause is 0) or ($player.penisExist and $penisuse is 0)>> <<set _action to "showthighs"+_tentacle.id>> <<actionstentacleadvcheckbox "sub" "Guide to your thighs." "$feetaction" _action $feetactiondefault>> <</if>> <</if>> <</if>> <br> <</if>> <</widget>> <<widget "actionstentacleadvmouth">> /* unused */ <<set _tentacle to _args[0]>> <<if _tentacle.head is "mouthentrance">> <<set _action to "mouthlick"+_tentacle.id>> <<actionstentacleadvcheckbox "sub" "Lick it" "$mouthaction" _action $mouthactiondefault>> <<if $head is "grappled">> <<else>> <<set _action to "mouthpullaway"+_tentacle.id>> <<actionstentacleadvcheckbox "brat" "Pull away" "$mouthaction" _action $mouthactiondefault>> <</if>> <<if $tending gte 600 and !$combat_silenced>> <<set _action to "mouthlull"+_tentacle.id>> <<actionstentacleadvcheckbox "brat" "Lull" "$mouthaction" _action $mouthactiondefault>> <</if>> <<elseif _tentacle.head is "mouthimminent">> <<set _action to "mouthkiss"+_tentacle.id>> <<actionstentacleadvcheckbox "sub" "Kiss it" "$mouthaction" _action $mouthactiondefault>> <<if $head is "grappled">> <<else>> <<set _action to "mouthpullaway"+_tentacle.id>> <<actionstentacleadvcheckbox "brat" "Pull away" "$mouthaction" _action $mouthactiondefault>> <</if>> <<if $tending gte 600 and !$combat_silenced>> <<set _action to "mouthlull"+_tentacle.id>> <<actionstentacleadvcheckbox "brat" "Lull" "$mouthaction" _action $mouthactiondefault>> <</if>> <<elseif _tentacle.head is "mouth" or _tentacle.head is "mouthdeep">> <<set _action to "mouthcooperate"+_tentacle.id>> <<actionstentacleadvcheckbox "sub" "Cooperate" "$mouthaction" _action $mouthactiondefault>> <<set _action to "mouthbite"+_tentacle.id>> <<actionstentacleadvcheckbox "def" "Bite" "$mouthaction" _action $mouthactiondefault>> <<else>> <<if $tending gte 600 and !$combat_silenced>> <<set _action to "mouthlull"+_tentacle.id>> <<actionstentacleadvcheckbox "brat" "Lull" "$mouthaction" _action $mouthactiondefault>> <</if>> <</if>> <</widget>> <<widget "actionstentacleadvvagina">> /* unused */ <<set _tentacle to _args[0]>> <<if _tentacle.head is "vaginaentrance" or _tentacle.head is "vaginaimminent">> <<set _action to "vaginarub"+_tentacle.id>> <<actionstentacleadvcheckbox "sub" "Rub" "$vaginaaction" _action $vaginaactiondefault>> <<if $leftleg is "grappled" and $rightleg is "grappled">> <<else>> <<set _action to "vaginapullaway"+_tentacle.id>> <<actionstentacleadvcheckbox "brat" "Pull away" "$vaginaaction" _action $vaginaactiondefault>> <</if>> <<elseif _tentacle.head is "vagina" or _tentacle.head is "vaginadeep">> <<set _action to "vaginacooperate"+_tentacle.id>> <<actionstentacleadvcheckbox "sub" "Cooperate" "$vaginaaction" _action $vaginaactiondefault>> <</if>> <</widget>> <<widget "actionstentacleadvpenis">> /* unused */ <<set _tentacle to _args[0]>> <<if _tentacle.head is "penisentrance" or _tentacle.head is "penisimminent">> <<set _action to "penisrub"+_tentacle.id>> <<actionstentacleadvcheckbox "sub" "Rub" "$penisaction" _action $penisactiondefault>> <<if $leftleg is "grappled" and $rightleg is "grappled">> <<else>> <<set _action to "penispullaway"+_tentacle.id>> <<actionstentacleadvcheckbox "brat" "Pull away" "$penisaction" _action $penisactiondefault>> <</if>> <<elseif _tentacle.head is "penis" or _tentacle.head is "penisdeep">> <<set _action to "peniscooperate"+_tentacle.id>> <<actionstentacleadvcheckbox "sub" "Cooperate" "$penisaction" _action $penisactiondefault>> <</if>> <</widget>> <<widget "actionstentacleadvanus">> /* unused */ <<set _tentacle to _args[0]>> <<if _tentacle.head is "anusentrance" or _tentacle.head is "anusimminent">> <<set _action to "anusrub"+_tentacle.id>> <<actionstentacleadvcheckbox "sub" "Rub" "$anusaction" _action $anusactiondefault>> <<if $leftleg is "grappled" and $rightleg is "grappled">> <<else>> <<set _action to "anuspullaway"+_tentacle.id>> <<actionstentacleadvcheckbox "brat" "Pull away" "$anusaction" _action $anusactiondefault>> <</if>> <<elseif _tentacle.head is "anus" or _tentacle.head is "anusdeep">> <<set _action to "anuscooperate"+_tentacle.id>> <<actionstentacleadvcheckbox "sub" "Cooperate" "$anusaction" _action $anusactiondefault>> <</if>> <</widget>> <<widget "actionstentacleadvthighs">> /* unused */ <<set _tentacle to _args[0]>> <<if _tentacle.head is "penisrub">> <<set _action to "penisrub"+_tentacle.id>> <<actionstentacleadvcheckbox "sub" "Rub" "$thighaction" _action $thighactiondefault>> <<elseif _tentacle.head is "vaginarub">> <<set _action to "vaginarub"+_tentacle.id>> <<actionstentacleadvcheckbox "sub" "Rub" "$thighaction" _action $thighactiondefault>> <</if>> <</widget>> <<widget "actionstentacleadvbottom">> /* unused */ <<set _tentacle to _args[0]>> <<set _action to "bottomrub"+_tentacle.id>> <<actionstentacleadvcheckbox "sub" "Rub" "$bottomaction" _action $bottomactiondefault>> <</widget>> <<widget "actionstentacleadvchest">> /* unused */ <<set _tentacle to _args[0]>> <<set _action to "chestrub"+_tentacle.id>> <<actionstentacleadvcheckbox "sub" "Rub" "$chestaction" _action $chestactiondefault>> <</widget>> <<widget "effectstentacleadv">> <<set _tentacle to _args[0]>> <<if _tentacle.type is "vine">> <<set _fluid to "nectar">> <<set _Slimy to "Sticky">> <<else>> <<set _fluid to "fluid">> <<set _Slimy to "Slimy">> <</if>> <<rng>> <<set _The to ($abomination is 1 ? "<<His>>" : "The")>> <<set _the to ($abomination is 1 ? "<<his>>" : "the")>> /*New Controls*/ <<if ($leftaction is "lefthittentacle" and $leftactionTarget is _tentacle.id) or ($rightaction is "righthittentacle" and $rightactionTarget is _tentacle.id)>> <<if $leftaction is "lefthittentacle" and $rightaction is "righthittentacle" and $leftactionTarget is $rightactionTarget>> You strike _the _tentacle.fullDesc with both hands and it reels away from you. <<set _multi to 2>> <<set $leftaction to 0>><<set $leftactiondefault to "lefthittentacle">> <<set $rightaction to 0>><<set $rightactiondefault to "righthittentacle">> <<elseif $leftaction is "lefthittentacle" and $leftactionTarget is _tentacle.id>> You strike _the _tentacle.fullDesc with your left hand and it reels away from you. <<set _multi to 1>><<set $leftaction to 0>> <<set $leftactiondefault to "lefthittentacle">> <<else>> You strike _the _tentacle.fullDesc with your right hand and it reels away from you. <<set _multi to 1>> <<set $rightaction to 0>><<set $rightactiondefault to "righthittentacle">> <</if>> <<defiance `2 * _multi`>> <<set $speechhit to 1 * _multi>><<set $attackstat += 1 * _multi>> <<if $rng lte (currentSkillValue('physique') / 200)>> <span class="green">It trembles before your strength.</span> <<set _tentacle.tentaclehealth -= 1 * _multi>><<tentacle_record "damage" 1 * _multi>> <</if>> <<set _tentacle.tentaclehealth -= 1 * _multi>><<tentacle_record "damage" 1 * _multi>> <<tentacleadvdisable _tentacle>> <<if $abomination is 1>> The <<person>> winces in pain. <</if>> <</if>> <<if ($leftaction is "leftbanish" and $leftactionTarget is _tentacle.id) or ($rightaction is "rightbanish" and $rightactionTarget is _tentacle.id)>> <<if $leftaction is "leftbanish" and $rightaction is "rightbanish" and $leftactionTarget is $rightactionTarget and $angelBanish gte 2>> <<set $angelBanish -= 2>> You clasp your hands together in prayer. _The _tentacle.fullDesc shimmers brightly and is blasted away from you. <<set _multi to 2>> <<set $leftaction to 0>><<set $leftactiondefault to "leftbanish">> <<set $rightaction to 0>><<set $rightactiondefault to "rightbanish">> <<elseif $leftaction is "leftbanish" and $angelBanish gte 1 and $leftactionTarget is _tentacle.id>> <<set $angelBanish -->> You make an intricate gesture with your left hand. _The _tentacle.fullDesc shimmers and recoils violently. <<set _multi to 1>><<set $leftaction to 0>> <<set $leftactiondefault to "leftbanish">> <<elseif $rightaction is "rightbanish" and $angelBanish gte 1 and $rightactionTarget is _tentacle.id>> <<set $angelBanish -->> You make an intricate gesture with your right hand. _The _tentacle.fullDesc shimmers and recoils violently. <<set _multi to 1>><<set $rightaction to 0>> <<set $rightactiondefault to "rightbanish">> <<else>> You make an intricate gesture with your <<if $leftaction is "leftbanish">>left<<else>>right<</if>> hand, <span class="red">but nothing happens</span>. <</if>> <<if $purity gte 1000>> <<set _multi ++>> <</if>> <<defiance `Math.floor($purity / 150) * _multi`>> <<set $speechbanish to 1 * _multi>><<set $attackstat += 1 * _multi>> <<if $rng lte ($purity / 20)>><<set _tentacle.tentaclehealth -= 10 * _multi>><<tentacle_record "banish" 10 * _multi>><</if>> <<set _tentacle.tentaclehealth -= 10 * _multi>><<tentacle_record "banish" 10 * _multi>> <<tentacleadvdisable _tentacle>> <<if $abomination is 1>> <<combatPerson>> recoils from the light. <</if>> <</if>> <<if ($leftaction is "leftgrabtentacle" and $leftactionTarget is _tentacle.id) or ($rightaction is "rightgrabtentacle" and $rightactionTarget is _tentacle.id)>> <<tentacleadvdisable _tentacle>> /* Make sure you call this before trying to set the tentacle info */ <<if $leftaction is "leftgrabtentacle" and $leftactionTarget is _tentacle.id>> <<set _hand to "left">><<set $leftaction to 0>><<set $leftactiondefault to "leftrub">> <<set $leftarm to _tentacle.id>><<set _tentacle.head to "leftarm">><<set $leftarmstate to "tentacle">><<set $lefttarget to "tentacles">> <<else>> <<set _hand to "right">><<set $rightaction to 0>><<set $rightactiondefault to "rightrub">> <<set $rightarm to _tentacle.id>><<set _tentacle.head to "rightarm">><<set $rightarmstate to "tentacle">><<set $righttarget to "tentacles">> <</if>> <span class="lblue">You <<handtext>> grab _the _tentacle.fullDesc with your _hand hand.</span> <<submission 1>><<handstat>> <</if>> <<if $leftaction is "leftrub"+_tentacle.id or $rightaction is "rightrub"+_tentacle.id>> <<if $leftaction is "leftrub"+_tentacle.id>> <<set _hand to "left">><<set $leftaction to 0>> <<set $leftactiondefault to "leftrub"+_tentacle.id>> <<else>> <<set _hand to "right">><<set $rightaction to 0>> <<set $rightactiondefault to "rightrub"+_tentacle.id>> <</if>> <<handskilluse>><<submission 1>> You <<handtext>> squeeze _the _tentacle.fullDesc in your _hand hand and rub up and down its length. <<if currentSkillValue("handskill") gte (800 - ($rng * 10))>> <span class="lblue">_Slimy _fluid erupts from the tip</span>. <<set _tentacle.tentaclehealth -= 3>><<tentacle_record "fluid" 3>> <<if $abomination is 1>> <<set $enemyarousal += 6>> <</if>> <<handejacstat>><<ejacstat>> <<if _hand is "left">><<bodyliquid "leftarm" _fluid>><<else>><<bodyliquid "rightarm" _fluid>><</if>> <</if>> <</if>> <<if $leftaction is "leftstruggle" or $rightaction is "rightstruggle">> <<if !_struggletext>> <<if $leftaction is "leftstruggle" and $rightaction is "rightstruggle">> You struggle with all your might. <<else>> You struggle. <</if>> <<set _struggletext to 1>> <</if>> <<if $abomination is 1 and ($NPCList[0].lefthand is "arms" or $NPCList[0].righthand is "arms")>> <<if $leftaction is "leftstruggle" and $rightaction is "rightstruggle">> <<set $leftaction to 0>><<set $rightaction to 0>><<set $leftactiondefault to "leftstruggle">><<set $rightactiondefault to "rightstruggle">> <<if currentSkillValue('physique') gte random(1, 32000)>> <span class="teal">You manage to twist your arms free.</span> <<defiance 5>> <<set $leftarm to 0>><<set $rightarm to 0>> <<set $NPCList[0].lefthand to 0>> <<set $NPCList[0].righthand to 0>> <<else>> <span class="purple">Your arms remain entangled.</span> <</if>> <<else>> <<if currentSkillValue('physique') gte random(1, 64000)>> <span class="teal">You manage to twist your arms free.</span> <<defiance 5>> <<set $leftarm to 0>><<set $rightarm to 0>> <<set $NPCList[0].lefthand to 0>> <<set $NPCList[0].righthand to 0>> <<else>> <span class="purple">Your arms remain entangled.</span> <</if>> <</if>> <</if>> <<if $leftaction is "leftstruggle" and _tentacle.shaft is "leftarm">> <<set $leftaction to 0>><<set $leftactiondefault to "leftstruggle">> <<set $speechstruggle to 1>><<defiance 1>> <<if currentSkillValue('physique') gte random(1, 64000)>> <span class="teal">You manage to twist your left arm free.</span> <<defiance 5>><<tentacleadvdisable _tentacle>> <<set $leftarm to 0>> <<else>> <span class="purple">Your left arm remains entangled.</span> <</if>> <</if>> <<if $rightaction is "rightstruggle" and _tentacle.shaft is "rightarm">> <<set $rightaction to 0>><<set $rightactiondefault to "rightstruggle">> <<defiance 1>><<set $speechstruggle to 1>> <<if currentSkillValue('physique') gte random(1, 64000)>> <span class="teal">You manage to twist your right arm free.</span> <<defiance 5>><<tentacleadvdisable _tentacle>> <<set $rightarm to 0>> <<else>> <span class="purple">Your right arm remains entangled.</span> <</if>> <</if>> <</if>> <<if $leftaction is "showbottom"+_tentacle.id or $rightaction is "showbottom"+_tentacle.id>> <<if $leftaction is "showbottom"+_tentacle.id>> <<set _hand to "left">><<set $leftaction to 0>> <<set $leftarm to 0>> <<set $leftarmstate to 0>> <<else>> <<set _hand to "right">><<set $rightaction to 0>> <<set $rightarm to 0>> <<set $rightarmstate to 0>> <</if>> <<submission 1>> <br> <<combatdeviancy5>> <br> You <<handtext>> guide _the _tentacle.fullDesc with your _hand hand towards your <<bottom>>. <<if $rng lte 30>> /* How common will the tentacle wrap around the arm guiding it */ <<if _hand is "left">> <<leftarmtentacledisable>> <<set _tentacle.shaft to "leftarm">> <<set $leftarm to "tentgrappled">><<set $leftarmstate to 0>><<set $lefttarget to "tentacles">> <<else>> <<rightarmtentacledisable>> <<set _tentacle.shaft to "rightarm">> <<set $rightarm to "tentgrappled">><<set $rightarmstate to 0>><<set $righttarget to "tentacles">> <</if>> _The _tentacle.fullDesc winds its way around your _hand arm, <span class="blue">restraining it.</span> <<neutral 1>> <<else>> <<if _tentacle.shaft is 0>> <<set _tentacle.shaft to (either("tummy","waist","thighs"))>> <</if>> <</if>> <<set $anusstate to "tentaclerub">><<set $anususe to "tentaclerub">> <<set _tentacle.head to "anusrub">><<sex 1 "anus">><<bottomstat>><<set $anustarget to "tentacles">> <</if>> <<if $leftaction is "showmouth"+_tentacle.id or $rightaction is "showmouth"+_tentacle.id>> <<if $leftaction is "showmouth"+_tentacle.id>> <<set _hand to "left">><<set $leftaction to 0>> <<set $leftarm to 0>> <<set $leftarmstate to 0>> <<else>> <<set _hand to "right">><<set $rightaction to 0>> <<set $rightarm to 0>> <<set $rightarmstate to 0>> <</if>> <<submission 1>> <br> <<combatdeviancy5>> <br> You <<handtext>> guide _the _tentacle.fullDesc with your _hand hand up towards your mouth. <<if $rng lte 30>> /* How common will the tentacle wrap around the arm guiding it */ <<if _hand is "left">> <<leftarmtentacledisable>> <<set _tentacle.shaft to "leftarm">> <<set $leftarm to "tentgrappled">><<set $leftarmstate to 0>><<set $lefttarget to "tentacles">> <<else>> <<rightarmtentacledisable>> <<set _tentacle.shaft to "rightarm">> <<set $rightarm to "tentgrappled">><<set $rightarmstate to 0>><<set $righttarget to "tentacles">> <</if>> _The _tentacle.fullDesc winds its way around your _hand arm, <span class="blue">restraining it.</span> <<neutral 1>> <<else>> <<if _tentacle.shaft is 0>> <<if $nochoke is 1>> <<set _tentacle.shaft to (either("tummy","chest","breasts"))>> <<else>> <<set _tentacle.shaft to (either("tummy","neck","chest","breasts"))>> <</if>> <</if>> <</if>> <<set $mouthuse to "tentacle">><<set $mouthstate to "tentacleentrance">><<set $mouthtarget to "tentacles">> <<set _tentacle.head to "mouthentrance">><<neutral 2 "mouth">> <</if>> <<if $leftaction is "showthighs"+_tentacle.id or $rightaction is "showthighs"+_tentacle.id>> <<if $leftaction is "showthighs"+_tentacle.id>> <<set _hand to "left">><<set $leftaction to 0>> <<set $leftarm to 0>> <<set $leftarmstate to 0>> <<else>> <<set _hand to "right">><<set $rightaction to 0>> <<set $rightarm to 0>> <<set $rightarmstate to 0>> <</if>> <<submission 1>> <br> <<combatdeviancy5>> <br> You <<handtext>> guide _the _tentacle.fullDesc with your _hand hand between your thighs. <<if $rng lte 30>> /* How common will the tentacle wrap around the arm guiding it */ <<if _hand is "left">> <<leftarmtentacledisable>> <<set _tentacle.shaft to "leftarm">> <<set $leftarm to "tentgrappled">><<set $leftarmstate to 0>><<set $lefttarget to "tentacles">> <<else>> <<rightarmtentacledisable>> <<set _tentacle.shaft to "rightarm">> <<set $rightarm to "tentgrappled">><<set $rightarmstate to 0>><<set $righttarget to "tentacles">> <</if>> _The _tentacle.fullDesc winds its way around your _hand arm, <span class="blue">restraining it.</span> <<neutral 1>> <<else>> <<if _tentacle.shaft is 0>> <<set _tentacle.shaft to (either("tummy","waist"))>> <</if>> <</if>> <<if $player.penisExist and $penisuse is 0>> <<set $penisuse to "tentaclerub">><<set _tentacle.head to "penisrub">><<set $penistarget to "tentacles">> <<elseif $player.vaginaExist and $vaginause is 0>> <<set $vaginause to "tentaclerub">><<set _tentacle.head to "vaginarub">><<set $vaginatarget to "tentacles">> <</if>> <<sex 3 "genitals">><<thighstat>> <<set $thighuse to "tentaclerub">> <</if>> <<if $leftaction is "showpenis"+_tentacle.id or $rightaction is "showpenis"+_tentacle.id>> <<if $leftaction is "showpenis"+_tentacle.id>> <<set _hand to "left">><<set $leftaction to 0>> <<set $leftarm to 0>> <<set $leftarmstate to 0>> <<else>> <<set _hand to "right">><<set $rightaction to 0>> <<set $rightarm to 0>> <<set $rightarmstate to 0>> <</if>> <<if playerHasStrapon() or $player.penisExist>> <<submission 1>> <br> <<combatdeviancy5>> <br> You <<handtext>> guide _the _tentacle.fullDesc with your _hand hand between your thighs close to your <<penisSimple>>. <<if $rng lte 30>> /* How common will the tentacle wrap around the arm guiding it */ <<if _hand is "left">> <<leftarmtentacledisable>> <<set _tentacle.shaft to "leftarm">> <<set $leftarm to "tentgrappled">><<set $leftarmstate to 0>><<set $lefttarget to "tentacles">> <<else>> <<rightarmtentacledisable>> <<set _tentacle.shaft to "rightarm">> <<set $rightarm to "tentgrappled">><<set $rightarmstate to 0>><<set $righttarget to "tentacles">> <</if>> _The _tentacle.fullDesc winds its way around your _hand arm, <span class="blue">restraining it.</span> <<neutral 1>> <<else>> <<if _tentacle.shaft is 0>> <<set _tentacle.shaft to (either("tummy","waist"))>> <</if>> <</if>> <<if $penisuse is 0>> <<set $penisuse to "tentaclerub">><<set _tentacle.head to "penisrub">><<set $penistarget to "tentacles">> <</if>> <<sex 3 "genitals">><<thighstat>> <<set $thighuse to "tentaclerub">> <</if>> <</if>> <<if $leftaction is "showvagina"+_tentacle.id or $rightaction is "showvagina"+_tentacle.id>> <<if $leftaction is "showvagina"+_tentacle.id>> <<set _hand to "left">><<set $leftaction to 0>> <<set $leftarm to 0>> <<set $leftarmstate to 0>> <<else>> <<set _hand to "right">><<set $rightaction to 0>> <<set $rightarm to 0>> <<set $rightarmstate to 0>> <</if>> <<if $player.vaginaExist>> <<submission 1>> <br> <<combatdeviancy5>> <br> You <<handtext>> guide _the _tentacle.fullDesc with your _hand hand between your thighs close to your pussy. <<if $rng lte 30>> /* How common will the tentacle wrap around the arm guiding it */ <<if _hand is "left">> <<leftarmtentacledisable>> <<set _tentacle.shaft to "leftarm">> <<set $leftarm to "tentgrappled">><<set $leftarmstate to 0>><<set $lefttarget to "tentacles">> <<else>> <<rightarmtentacledisable>> <<set _tentacle.shaft to "rightarm">> <<set $rightarm to "tentgrappled">><<set $rightarmstate to 0>><<set $righttarget to "tentacles">> <</if>> _The _tentacle.fullDesc winds its way around your _hand arm, <span class="blue">restraining it.</span> <<neutral 1>> <<else>> <<if _tentacle.shaft is 0>> <<set _tentacle.shaft to (either("tummy","waist"))>> <</if>> <</if>> <<if $vaginause is 0>> <<set $vaginause to "tentaclerub">><<set _tentacle.head to "vaginarub">><<set $vaginatarget to "tentacles">> <</if>> <<sex 3 "genitals">><<thighstat>> <<set $thighuse to "tentaclerub">> <</if>> <</if>> <<if $leftaction is "leftstop"+_tentacle.id>> <<set $leftaction to 0>><<set $leftactiondefault to "leftstop"+_tentacle.id>> You release _the _tentacle.fullDesc from your left hand. <<tentacleadvdisable _tentacle>> <</if>> <<if $rightaction is "rightstop"+_tentacle.id>> <<set $rightaction to 0>><<set $rightactiondefault to "rightstop"+_tentacle.id>> You release _the _tentacle.fullDesc from your right hand. <<tentacleadvdisable _tentacle>> <</if>> <<if $leftaction is "leftstop"+_tentacle.id>> <<set $leftaction to 0>><<set $leftactiondefault to "leftstop"+_tentacle.id>> You release _the _tentacle.fullDesc from your left hand. <<tentacleadvdisable _tentacle>> <</if>> <<if $rightaction is "rest">> <<set $rightaction to 0>> <<set $rightactiondefault to "rest">> <</if>> <<if $leftaction is "rest">> <<set $leftaction to 0>> <<set $leftactiondefault to "rest">> <</if>> <<effectshandsclothes>> <<if $feetaction is "feethit" and $feetactionTarget is _tentacle.id>> <<set $feetaction to 0>><<set $feetactiondefault to "feethit">> You kick _the _tentacle.fullDesc and it reels away from you. <<defiance 2>><<set $speechhit to 1>><<tentacleadvdisable _tentacle>><<set $attackstat += 1>> <<set _tentacle.tentaclehealth -= 1>><<tentacle_record "damage" 1>> <<if $rng lte (currentSkillValue('physique') / 200)>> <span class="green">It trembles before your strength.</span> <<set _tentacle.tentaclehealth -= 1>><<tentacle_record "damage" 1>> <</if>> <<if $abomination is 1>> <<defiance 3>> <</if>> <</if>> <<if $feetaction is "feetgrab" and $feetactionTarget is _tentacle.id>> <<set $feetaction to 0>><<set $feetactiondefault to "feetrub">><<submission 1>><<feetstat>> <span class="lblue">You <<feettext>> grab _the _tentacle.fullDesc between your feet.</span> <<tentacleadvdisable _tentacle>><<set $leftleg to _tentacle.id>><<set $rightleg to _tentacle.id>><<set $feettarget to "tentacles">> <<set _tentacle.head to "feet">><<feetstat>><<set $feetstate to "tentacle">> <</if>> <<if $feetaction is "feetrub"+_tentacle.id>> <<set $feetaction to 0>><<set $feetactiondefault to "feetrub"+_tentacle.id>><<feetskilluse>><<submission 1>> You <<feettext>> squeeze _the _tentacle.fullDesc between your feet and rub up and down its length. <<if currentSkillValue("feetskill") gte (800 - ($rng * 10))>> <span class="lblue">_Slimy _fluid erupts from the tip</span>. <<bodyliquid "feet" _fluid>><<set _tentacle.tentaclehealth -= 3>><<tentacle_record "fluid" 3>><<feetejacstat>><<ejacstat>> <<if $abomination is 1>> <<set $enemyarousal += 6>> <</if>> <</if>> <</if>> <<if $feetaction is "showthighs"+_tentacle.id or $feetaction is "showbottom"+_tentacle.id>> <<set $feetaction to 0>><<set $feetstate to 0>> <<set $leftleg to 0>><<set $rightleg to 0>> <<submission 1>> <br> <<combatdeviancy5>> <br> <<if $feetaction is "showthighs"+_tentacle.id>> <<set _dir to "thighs">> You <<feettext>> guide _the _tentacle.fullDesc with your feet between your thighs. <<else>> <<set _dir to "bottom">> You <<feettext>> guide _the _tentacle.fullDesc with your feet towards your <<bottom>>. <</if>> <<if $rng lte 30>> /* Leg grapple? */ <<if $rng gte 16>> <<set _leg to "left">><<set _tentacle.shaft to "leftleg">><<set $leftleg to "grappled">><<set $feettarget to "tentacles">> <<else>> <<set _leg to "right">><<set _tentacle.shaft to "rightleg">><<set $rightleg to "grappled">><<set $feettarget to "tentacles">> <</if>> <<neutral 1>><<feettentacledisable>> _The _tentacle.fullDesc winds its way around your _leg leg, <span class="blue">restraining it.</span> <<else>> <<if _tentacle.shaft is 0>> <<if _dir is "thighs">> <<set _tentacle.shaft to (either("tummy","waist"))>> <<else>> <<set _tentacle.shaft to (either("tummy","waist","thighs"))>> <</if>> <</if>> <</if>> <<if _dir is "thighs">> <<if $player.penisExist and $penisuse is 0>> <<set $penisuse to "tentaclerub">><<set _tentacle.head to "penisrub">><<set $penistarget to "tentacles">> <<elseif $player.vaginaExist and $vaginause is 0>> <<set $vaginause to "tentaclerub">><<set _tentacle.head to "vaginarub">><<set $vaginatarget to "tentacles">> <</if>> <<sex 3 "genitals">><<thighstat>> <<set $thighuse to "tentaclerub">> <<else>> <<set $anusstate to "tentaclerub">><<set $anususe to "tentaclerub">> <<set _tentacle.head to "anusrub">><<sex 1 "anus">><<bottomstat>><<set $anustarget to "tentacles">> <</if>> <</if>> <<if $feetaction is "showvagina"+_tentacle.id>> <<set $feetaction to 0>><<set $feetstate to 0>> <<set $leftleg to 0>><<set $rightleg to 0>> <<if $player.vaginaExist>> <<submission 1>> <br> <<combatdeviancy5>> <br> You <<feettext>> guide _the _tentacle.fullDesc with your feet between your thighs close to your pussy. <<if $rng lte 30>> <<if $rng gte 16>> <<set _leg to "left">><<set _tentacle.shaft to "leftleg">><<set $leftleg to "grappled">><<set $feettarget to "tentacles">> <<else>> <<set _leg to "right">><<set _tentacle.shaft to "rightleg">><<set $rightleg to "grappled">><<set $feettarget to "tentacles">> <</if>> <<neutral 1>><<feettentacledisable>> _The _tentacle.fullDesc winds its way around your _leg leg, <span class="blue">restraining it.</span> <<else>> <<if _tentacle.shaft is 0>> <<set _tentacle.shaft to (either("tummy","waist"))>> <</if>> <</if>> <<if $vaginause is 0>> <<set $vaginause to "tentaclerub">><<set _tentacle.head to "vaginarub">><<set $vaginatarget to "tentacles">> <</if>> <<sex 3 "genitals">><<thighstat>> <<set $thighuse to "tentaclerub">> <</if>> <</if>> <<if $feetaction is "showpenis"+_tentacle.id>> <<set $feetaction to 0>><<set $feetstate to 0>> <<set $leftleg to 0>><<set $rightleg to 0>> <<if playerHasStrapon() or $player.penisExist>> <<submission 1>> <br> <<combatdeviancy5>> <br> You <<feettext>> guide _the _tentacle.fullDesc with your feet between your thighs close to your <<print playerHasStrapon() ? "strap-on" : "penis">>. <<if $rng lte 30>> <<if $rng gte 16>> <<set _leg to "left">><<set _tentacle.shaft to "leftleg">><<set $leftleg to "grappled">><<set $feettarget to "tentacles">> <<else>> <<set _leg to "right">><<set _tentacle.shaft to "rightleg">><<set $rightleg to "grappled">><<set $feettarget to "tentacles">> <</if>> <<neutral 1>><<feettentacledisable>> _The _tentacle.fullDesc winds its way around your _leg leg, <span class="blue">restraining it.</span> <<else>> <<if _tentacle.shaft is 0>> <<set _tentacle.shaft to (either("tummy","waist"))>> <</if>> <</if>> <<if $penisuse is 0>> <<set $penisuse to "tentaclerub">><<set _tentacle.head to "penisrub">><<set $penistarget to "tentacles">> <</if>> <<sex 3 "genitals">><<thighstat>> <<set $thighuse to "tentaclerub">> <</if>> <</if>> <<if $feetaction is "feetstop"+_tentacle.id>> <<set $feetaction to 0>><<set $feetactiondefault to "feetstop"+_tentacle.id>> You let go of the _tentacle.fullDesc between your feet. <<tentacleadvdisable _tentacle>> <</if>> <<if $feetaction is "rest">> <<set $feetaction to 0>> <<set $feetactiondefault to "rest">> <</if>> <<if $mouthaction is "mouthlull"+_tentacle.id>> <<set $mouthaction to 0>><<set $mouthactiondefault to "mouthlull"+_tentacle.id>> <<brat 1>> You hum a soothing lullaby at _the _tentacle.fullDesc, sapping its strength. <span class="green">It recoils.</span> <<tentacleadvdisable _tentacle>><<set _tentacle.tentaclehealth -= 1>><<tentacle_record "soothe" 1>> <<if $rng lte (currentSkillValue('willpower') / 10)>> <span class="green">It trembles before your will.</span> <<set _tentacle.tentaclehealth -= 1>><<tentacle_record "soothe" 1>> <</if>> <</if>> <<if $mouthaction is "mouthlick"+_tentacle.id>> <<set $mouthaction to 0>><<set $mouthactiondefault to "mouthlick"+_tentacle.id>> <<submission 2>><<oralskilluse>> You <<oraltext>> lick the tip of _the _tentacle.fullDesc. <<if currentSkillValue("oralskill") gte (800 - ($rng * 10))>> <span class="lblue">_Slimy _fluid erupts from the tip, covering your face</span>. <<bodyliquid "face" _fluid>><<set _tentacle.tentaclehealth -= 3>><<tentacle_record "fluid" 3>><<faceejacstat>><<ejacstat>> <<if $abomination is 1>> <<set $enemyarousal += 6>> <</if>> <</if>> <</if>> <<if $mouthaction is "mouthkiss"+_tentacle.id>> <<set $mouthaction to 0>><<set $mouthactiondefault to "mouthkiss"+_tentacle.id>> <<submission 3>><<oralskilluse>> You <<oraltext>> kiss the tip of _the _tentacle.fullDesc. <<if currentSkillValue("oralskill") gte (800 - ($rng * 10))>> <span class="lblue">_Slimy _fluid erupts from the tip, covering your face</span>. <<bodyliquid "face" _fluid>><<set _tentacle.tentaclehealth -= 3>><<tentacle_record "fluid" 3>><<faceejacstat>><<ejacstat>> <<if $abomination is 1>> <<set $enemyarousal += 6>> <</if>> <</if>> <</if>> <<if $mouthaction is "take">> <<set $mouthaction to 0>><<set $mouthactiondefault to "take">> <</if>> <<if $mouthaction is "mouthcooperate"+_tentacle.id>> <<set $mouthaction to 0>><<set $mouthactiondefault to "mouthcooperate"+_tentacle.id>> <<sex 5 "mouth">><<oralskilluse>> You <<oraltext>> suck the _tentacle.fullDesc invading your mouth. <<if currentSkillValue("oralskill") gte (800 - ($rng * 10))>> <span class="lblue">_Slimy _fluid erupts from the tip and into your mouth</span>. <<set _tentacle.tentaclehealth -= 3>><<tentacle_record "fluid" 3>><<if _fluid is "nectar">><<nectarfed 5>><<else>><<drugs 3>><</if>><<bodyliquid "mouth" _fluid>><<oralejacstat>><<ejacstat>> <<if _tentacle.desc.includes("pale")>> <<hallucinogen 5>> <</if>> <<if $abomination is 1>> <<set $enemyarousal += 6>> <</if>> <</if>> <</if>> <<if $mouthaction is "mouthpullaway"+_tentacle.id>> <<set _nectarDifficulty to Math.clamp($drugged, 0, 500) + Math.clamp($nectar_addiction, 0, 500)>> <<willpowerdifficulty _nectarDifficulty $willpowermax "silent">> <<if $NPCList[0].type is "plant" and _tentacle.head is "mouthdeep" and !$willpowerSuccess>> You attempt to pull away from the _tentacle.fullDesc threatening your mouth. <span class="red">However, you can't tear yourself from the sweet nectar,</span> and desperately suck on the _tentacle.type. <<willpower 1>> <<else>> <<set $mouthaction to 0>><<set $mouthactiondefault to "mouthpullaway"+_tentacle.id>><<brat 1>> <span class="teal">You pull away from the _tentacle.fullDesc threatening your mouth.</span> <<tentacleadvdisable _tentacle>> <</if>> <</if>> <<if $mouthaction is "mouthbite"+_tentacle.id>> <<set $mouthaction to 0>><<set $mouthactiondefault to "mouthbite"+_tentacle.id>><<defiance 5>> You bite down on the _tentacle.fullDesc invading your mouth. <span class="teal">It recoils immediately.</span> <<tentacleadvdisable _tentacle>><<set $attackstat += 1>><<set _tentacle.tentaclehealth -= 1>><<tentacle_record "damage" 1>> <<if $rng lte (currentSkillValue('physique') / 200)>> <span class="green">It trembles before your strength.</span> <<set _tentacle.tentaclehealth -= 1>><<tentacle_record "damage" 1>> <</if>> <<if $abomination is 1>> The <<person>> grunts in pain. <<defiance 10>> <<if $transformationParts.traits.fangs isnot "disabled">> <<defiance 10>><<defiance 10>> You lick your fangs clean. <</if>> <</if>> <</if>> <<if $vaginaaction is "vaginarub"+_tentacle.id>> <<set $vaginaaction to 0>><<set $vaginaactiondefault to "vaginarub"+_tentacle.id>> <<submission 2>><<vaginalskilluse>> You <<vaginaltext>> rub the tip of _the _tentacle.fullDesc with your <<pussy>>. <<if currentSkillValue("vaginalskill") gte (800 - ($rng * 10))>> <span class="lblue">_Slimy _fluid erupts from the tip</span>. <<bodyliquid "vaginaoutside" _fluid>><<set _tentacle.tentaclehealth -= 3>><<tentacle_record "fluid" 3>><<vaginalentranceejacstat>><<ejacstat>> <<if $abomination is 1>> <<set $enemyarousal += 6>> <</if>> <</if>> <</if>> <<if $vaginaaction is "take">> <<set $vaginaaction to 0>><<set $vaginaactiondefault to "take">> <</if>> <<if $vaginaaction is "vaginacooperate"+_tentacle.id>> <<set $vaginaaction to 0>><<set $vaginaactiondefault to "vaginacooperate"+_tentacle.id>> <<sex 5 "genitals">><<vaginalskilluse>> You <<vaginaltext>> push back against the _tentacle.fullDesc invading your <<pussy>>. <<if currentSkillValue("vaginalskill") gte (800 - ($rng * 10))>> <span class="lblue">_Slimy _fluid erupts from the tip, flooding your womb with its warmth</span>. <<set _tentacle.tentaclehealth -= 3>><<tentacle_record "fluid" 3>><<drugs 3>><<bodyliquid "vagina" _fluid>><<vaginalejacstat>><<ejacstat>> <<if _tentacle.desc.includes("pale")>> <<hallucinogen 5>> <</if>> <<if $abomination is 1>> <<set $enemyarousal += 6>> <</if>> <</if>> <</if>> <<if $vaginaaction is "vaginapullaway"+_tentacle.id>> <<set $vaginaaction to 0>><<set $vaginaactiondefault to "vaginapullaway"+_tentacle.id>><<brat 1>> <span class="teal">You pull away from the _tentacle.fullDesc threatening your <<pussy>>.</span> <<tentacleadvdisable _tentacle>> <</if>> <<if $penisaction is "penisrub"+_tentacle.id>> <<set $penisaction to 0>><<set $penisactiondefault to "penisrub"+_tentacle.id>> <<submission 2>><<penileskilluse>> You <<peniletext>> rub the tip of the _tentacle.fullDesc with your <<penis>>. <<if currentSkillValue("penileskill") gte (800 - ($rng * 10))>> <span class="lblue">_Slimy _fluid erupts from the tip</span>. <<bodyliquid "penis" _fluid>><<set _tentacle.tentaclehealth -= 3>><<tentacle_record "fluid" 3>> <<if $abomination is 1>> <<set $enemyarousal += 6>> <</if>> <</if>> <</if>> <<if $penisaction is "take">> <<set $penisaction to 0>><<set $penisactiondefault to "take">> <</if>> <<if $penisaction is "peniscooperate"+_tentacle.id>> <<set $penisaction to 0>><<set $penisactiondefault to "peniscooperate"+_tentacle.id>> <<sex 5 "genitals">><<penileskilluse>> You <<peniletext>> push back against the _tentacle.fullDesc engulfing your <<penis>>. <<if currentSkillValue("penileskill") gte (800 - ($rng * 10))>> <span class="lblue">_Slimy _fluid erupts from the tip, covering your groin</span>. <<set _tentacle.tentaclehealth -= 3>><<tentacle_record "fluid" 3>><<bodyliquid "penis" _fluid>> <<if $abomination is 1>> <<set $enemyarousal += 6>> <</if>> <</if>> <</if>> <<if $penisaction is "penispullaway"+_tentacle.id>> <<set $penisaction to 0>><<set $penisactiondefault to "penispullaway"+_tentacle.id>><<brat 1>> <span class="teal">You pull away from the _tentacle.fullDesc threatening your <<penis>>.</span> <<tentacleadvdisable _tentacle>> <</if>> <<if $anusaction is "anusrub"+_tentacle.id>> <<set $anusaction to 0>><<set $anusactiondefault to "anusrub"+_tentacle.id>> <<submission 2>><<analskilluse>> You <<analtext>> rub the tip of _the _tentacle.fullDesc with your <<bottom>>. <<if currentSkillValue("analskill") gte (800 - ($rng * 10))>> <span class="lblue">_Slimy _fluid erupts from the tip, covering your <<bottom>>.</span> <<bodyliquid "bottom" _fluid>><<set _tentacle.tentaclehealth -= 3>><<tentacle_record "fluid" 3>><<bottomejacstat>><<ejacstat>> <<if $abomination is 1>> <<set $enemyarousal += 6>> <</if>> <</if>> <</if>> <<if $anusaction is "take">> <<set $anusaction to 0>><<set $anusactiondefault to "take">> <</if>> <<if $anusaction is "anuscooperate"+_tentacle.id>> <<set $anusaction to 0>><<set $anusactiondefault to "anuscooperate"+_tentacle.id>> <<sex 5 "anus">><<analskilluse>> You <<analtext>> push back against the _tentacle.fullDesc invading your <<bottom>>. <<if currentSkillValue("analskill") gte (800 - ($rng * 10))>> <span class="lblue">_Slimy _fluid erupts from the tip, flooding your bowels with its warmth</span>. <<set _tentacle.tentaclehealth -= 3>><<tentacle_record "fluid" 3>><<drugs 3>><<bodyliquid "anus" _fluid>><<analejacstat>><<ejacstat>> <<if _tentacle.desc.includes("pale")>> <<hallucinogen 5>> <</if>> <<if $abomination is 1>> <<set $enemyarousal += 6>> <</if>> <</if>> <</if>> <<if $anusaction is "anuspullaway"+_tentacle.id>> <<set $anusaction to 0>><<set $anusactiondefault to "anuspullaway"+_tentacle.id>><<brat 1>> <span class="teal">You pull away from the _tentacle.fullDesc threatening your <<bottom>>.</span> <<tentacleadvdisable _tentacle>> <</if>> <<if $thighaction is "penisrub"+_tentacle.id>> <<set $thighaction to 0>><<set $thighactiondefault to "penisrub"+_tentacle.id>> <<submission 3>><<thighskilluse>> You <<thightext>> rub _the _tentacle.fullDesc between your thighs. <<if currentSkillValue("thighskill") gte (800 - ($rng * 10))>> <span class="lblue">_Slimy _fluid erupts from the tip, covering your tummy</span>. <<set _tentacle.tentaclehealth -= 3>><<tentacle_record "fluid" 3>><<bodyliquid "tummy" _fluid>><<tummyejacstat>><<ejacstat>> <<if $abomination is 1>> <<set $enemyarousal += 6>> <</if>> <</if>> <</if>> <<if $thighaction is "vaginarub"+_tentacle.id>> <<set $thighaction to 0>><<set $thighactiondefault to "vaginarub"+_tentacle.id>> <<submission 3>><<thighskilluse>>You <<thightext>> rub _the _tentacle.fullDesc between your thighs. <<if currentSkillValue("thighskill") gte (800 - ($rng * 10))>> <span class="lblue">_Slimy _fluid erupts from the tip, covering your tummy</span>. <<set _tentacle.tentaclehealth -= 3>><<bodyliquid "tummy" _fluid>><<tummyejacstat>><<ejacstat>> <<if $abomination is 1>> <<set $enemyarousal += 6>> <</if>> <</if>> <</if>> <<if $anusaction is "anusrub"+_tentacle.id>> <<set $anusaction to 0>><<set $anusactiondefault to "anusrub"+_tentacle.id>> <<submission 3>><<bottomskilluse>> You <<bottomtext>> rub _the _tentacle.fullDesc between your cheeks. <<if currentSkillValue("bottomskill") gte (800 - ($rng * 10))>> <span class="lblue">_Slimy _fluid erupts from the tip, covering your <<bottom>>.</span> <<set _tentacle.tentaclehealth -= 3>><<tentacle_record "fluid" 3>><<bodyliquid "bottom" _fluid>><<bottomejacstat>><<ejacstat>> <<if $abomination is 1>> <<set $enemyarousal += 6>> <</if>> <</if>> <</if>> <<if $chestaction is "chestrub"+_tentacle.id>> <<set $chestaction to 0>><<set $chestactiondefault to "chestrub"+_tentacle.id>> <<submission 3>><<chestskilluse>> You <<chesttext>> rub _the _tentacle.fullDesc between your <<breasts>>. <<if currentSkillValue("chestskill") gte (800 - ($rng * 10))>> <span class="lblue">_Slimy _fluid erupts from the tip, covering your chest</span>. <<set _tentacle.tentaclehealth -= 3>><<tentacle_record "fluid" 3>><<bodyliquid "chest" _fluid>><<chestejacstat>><<ejacstat>> <<if $abomination is 1>> <<set $enemyarousal += 6>> <</if>> <</if>> <</if>> <</widget>> <<widget "tentacle_skin">> <<if $skin[_args[0]] and $skin[_args[0]].special is "holy" or $skin[_args[1]] and $skin[_args[1]].special is "holy" and !$banishDisable>> The holy symbol on your skin burns with a white light, <span class="pink">searing you,</span> <span class="teal">and _the _tentacle.fullDesc.</span><<pain 8>><<set _tentacle.tentaclehealth -= 12>><<tentacle_record "banish" 12>><<tentacleadvdisable _tentacle>> <<set $speechbanish to 1>> <<elseif _tentacle.traits.includes("pain") and _args[0] isnot "pubic">> <<if _args[0].includes("_")>> <<set _bodypart to _args[0].split("_").pop()>> <<else>> <<set _bodypart to _args[0]>> <</if>> <<if !(playerHasStrapon() and _bodypart is "penis")>> You <<print $masochism_level gte 3 ? "shiver" : "wince">> as _the _tentacle.fullDesc rubs against your _bodypart. <<pain 1>><<gpain>> <</if>> <</if>> <</widget>> <<widget "tentacle_record">> /* Records total tentacle health reductions from various sources */ <<set $_type to _args[0] or "fluid">> <<set $_amount to _args[1] or 1>> <<if !$combat_tentacle_record>> <<set $combat_tentacle_record to { arousal: 0, fluid: 0, damage: 0, banish: 0, hypnosis: 0, hypnosis_backlash: 0, soothe: 0, attrition: 0, }>> <</if>> <<set $combat_tentacle_record[$_type] += $_amount>> <</widget>><<widget "generateActionsTentacle">> <<set $combat to 1>> <<if _targetlist is undefined>> <<getTargetList>> <</if>> <<set _The to ($abomination is 1 ? "<<His>>" : "The")>> <<set _the to ($abomination is 1 ? "<<his>>" : "the")>> <div id="listContainer"> <div id="leftaction" @class="$options.combatControls + 'Control'"> <<leftActionInitTentacle>> </div> <div id="rightaction" @class="$options.combatControls + 'Control'"> <<rightActionInitTentacle>> </div> <div id="feetaction" @class="$options.combatControls + 'Control'"> <<feetActionInitTentacle>> </div> <<if $mouthstate isnot 0 or !($dissociation lte 1 and $orgasmdown lte 0 and ($pain lt 100 or $willpowerpain is undefined))>> <div id="mouthaction" @class="$options.combatControls + 'Control'"> <<mouthActionInitTentacle>> </div> <</if>> <<if $penisstate isnot 0 and $player.penisExist>> <div id="penisaction" @class="$options.combatControls + 'Control'"> <<penisActionInitTentacle>> </div> <</if>> <<if $vaginastate isnot 0 and $player.vaginaExist>> <div id="vaginaaction" @class="$options.combatControls + 'Control'"> <<vaginaActionInitTentacle>> </div> <</if>> <<if $anusstate isnot 0>> <div id="anusaction" @class="$options.combatControls + 'Control'"> <<anusActionInitTentacle>> </div> <</if>> <<if $chestuse isnot 0 and $chestuse isnot "squeezed">> <div id="chestaction" @class="$options.combatControls + 'Control'"> <<chestActionInitTentacle>> </div> <</if>> </div> <</widget>> <<widget "leftActionInitTentacle">> <<set $lefttarget to "tentacles">> <<switch $leftarm>> <<case 0>> <<if $orgasmdown gte 1>> <<set _leftOptions to "orgasm">> <span class="lewd">Your left arm is free, but you can't stop the spasms.</span> <<elseif $pain gte 100 and $willpowerpain is 0>> <<set _leftOptions to "pain">> <span class="red">Your left arm is free, but hurts to move.</span> <<elseif $dissociation gte 2>> <<set _leftOptions to "unreal">> <span class="pink">Your left arm is free, but doesn't feel real.</span> <<else>> <<if not $options.combatControls.includes("adio") and _targetnumber gt 1>> <<targetListBox "left" _targetlistarms>> <</if>> <<set _leftOptions to "free">> <span @class="($lastOptions.left isnot _leftOptions ?'gold':'')">Your left arm is free.</span> <<if $options.combatControls.includes("adio") and _targetnumber gt 1>> <<targetListBox "left" _targetlistarms>> <</if>> <</if>> <<case "tentgrappled">> <<if $orgasmdown gte 1>> <<set _leftOptions to "bound">> <span class="lewd">Your left arm jerks against _the grip.</span> <<elseif $pain gte 100 and $willpowerpain is 0>> <<set _leftOptions to "bound">> <span class="red">Your left arm is held in a painful grip.</span> <<elseif $dissociation gte 2>> <<set _leftOptions to "bound">> <span class="pink">Your left arm lies limp in _the grip.</span> <<else>> <<set _leftOptions to "grappled">> <<for _i to 0; _i lt $tentacles.max; _i++>> <<if $tentacles[_i].shaft is "leftarm">> <span @class="($lastOptions.left isnot _leftOptions ?'gold':'')">_The $tentacles[_i].fullDesc entangles your left arm.</span> <<set $_tentgrab to 1>> <<if $angel gte 4 and $angelBanish gte 1 and !$banishDisable>> <<set _banishTarget to $tentacles[_i]>> <</if>> <<break>> <</if>> <</for>> <<if !$_tentgrab>> <span @class="($lastOptions.left isnot _leftOptions ?'gold':'')">Your left arm is being held down.</span> <</if>> <</if>> <<case "bound">> <<set _leftOptions to "bound">> <<if $orgasmdown gte 1>> <span class="lewd">Your left arm jerks against its bonds.</span> <<elseif $pain gte 100 and $willpowerpain is 0>> <span class="red">Your left arm is held in a painful bind.</span> <<elseif $dissociation gte 2>> <span class="pink">Your left arm lies limp in its bonds.</span> <<else>> <span @class="($lastOptions.left isnot _leftOptions ?'gold':'')">Your left arm is bound.</span> <</if>> <<case "grappled" "penis" "othervagina" "vagina" "coverpenis" "anus" "behind">> <<set $_changetype to true>><<leftActionInit>> <<case "trapped">> <<set $_changetype to true>><<leftActionInitVore>> <<case "struggle">> <<set $_changetype to true>><<leftActionInitStruggle>> <<case "swarmgrappled">> <<set $_changetype to true>><<leftActionInitSwarm>> <<case "mechgrappled">> <<set $_changetype to true>><<leftActionInitMachine>> <<default>> <<for _i to 0; _i lt $tentacles.max; _i++>> <<if $leftarm is $tentacles[_i].id>> <<set _leftOptions to "tentacle">> <<set _tentacleLeftOption to $tentacles[_i].id>> <span @class="($lastOptions.left isnot _leftOptions ?'gold':'')">You hold _the $tentacles[_i].fullDesc in your left hand.</span> <<break>> <</if>> <</for>> <</switch>> <<if $_changetype isnot true>> <<leftActionsTentacle>> <<if Object.keys(_leftaction).length gt 0>> <<if Object.values(_leftaction).includes($leftactiondefault) is false or _args[0] is true or ["rest","leftgrabtentacle"].includes($leftactiondefault)>> <<set _defaultsCombatAction to "leftaction">> <<set _actionsSet = DefaultActions.get($defaultsCombatType, "Tentacles", _defaultsCombatAction)>> <<set _pass to false>> <<for _set to 0; _set lt _actionsSet.length; _set++>> <<if ["leftgrabtentacle"].includes(_actionsSet[_set]) and $leftactionTarget isnot undefined>> <<for _i to 0; _i lt $tentacles.max; _i++>> <<if $tentacles[_i].shaft isnot "finished">> <<if $regrab and $tentacles[_i].head is 0>> <<set $leftactiondefault to clone(_actionsSet[_set])>> <<set $leftactionTarget to $tentacles[_i].id>> <<set _pass to true>> <<break>> <<elseif $tentacles[_i].head is 0>> <<set $leftactiondefault to clone(_actionsSet[_set])>> <<set _pass to true>> <</if>> <<if $regrab is false>> <<break>> <</if>> <</if>> <</for>> <<elseif ["leftrub","showpenis","showvagina","showbottom"].includes(_actionsSet[_set]) and _tentacleLeftOption isnot undefined>> <<if Object.values(_leftaction).includes(_actionsSet[_set] + _tentacleLeftOption)>> <<set $leftactiondefault to clone(_actionsSet[_set] + _tentacleLeftOption)>> <<set _pass to true>> <<break>> <</if>> <<elseif Object.values(_leftaction).includes(_actionsSet[_set])>> <<set $leftactiondefault to clone(_actionsSet[_set])>> <<set _pass to true>> <<break>> <</if>> <</for>> <<if _pass is false>> <<set $leftactiondefault to Object.values(_leftaction)[0]>> <</if>> <</if>> <<set $leftaction to $leftactiondefault>> <<set _textColor to combatListColor('leftaction', (Object.values(_leftaction).includes($leftaction) ? $leftaction : Object.values(_leftaction)[0]), "Tentacle")>> <div class="extraMargin"> <<if not $options.combatControls.includes("adio") and _leftOptions is "free">> <<set _reducedWidths to true>> <<else>> <<set _reducedWidths to false>> <</if>> /* _reducedWidths is used by generateCombatAction */ <<generateCombatAction _leftaction "leftaction" "Tentacle">> <<if _leftOptions is "free" and $tentacles.active gt 0>> <<leftactionSetupTentacle>> <<elseif _leftOptions is "grappled" and $angel gte 4 and $angelBanish gte 1 and !$banishDisable and _banishTarget>> <<leftactionBoundBanish>> <</if>> </div> <<if $options.combatControls.includes("ists")>> <div id="leftactionDifficulty"> <<leftactionDifficultyTentacle>> </div> <</if>> <</if>> <<set $lastOptions.left to clone(_leftOptions)>> <</if>> <</widget>> <<widget "leftactionSetupTentacle">> <<if $options.combatControls is "radio">> <br><br> <<set _first to true>> <<if $regrab>> <<for _i to 0; _i lt $tentacles.max; _i++>> <<if $tentacles[_i] isnot undefined>> <<if $tentacles[_i].shaft isnot "finished" and $tentacles[_i].id is $leftactionTarget>> <<set _first to false>> <<set $_found to $tentacles[_i].id>> <<break>> <</if>> <</if>> <</for>> <</if>> <<for _i to 0; _i lt $tentacles.max; _i++>> <<if $tentacles[_i] isnot undefined>> <<if $tentacles[_i].shaft isnot "finished">> <label> <<print '<<radiobutton "$leftactionTarget" "'+$tentacles[_i].id+'" ' + (_first is true or $tentacles[_i].id is $_found ? "checked" : "") + '>>'>> $tentacles[_i].fullDesc </label> | <<set _first to false>> <</if>> <</if>> <</for>> <<else>> <<if _availableTargets is undefined>> <<if $controls is "radio">> <br> <</if>> <<set _availableTargets to {}>> <<for _i to 0; _i lt $tentacles.max; _i++>> <<if $tentacles[_i] isnot undefined>> <<if $tentacles[_i].shaft isnot "finished">> <<set _availableTargets[$tentacles[_i].fullDesc] to $tentacles[_i].id>> <<set _tentacle_targets_available to true>> <</if>> <</if>> <</for>> <</if>> <<if _tentacle_targets_available>> <<if $options.combatControls is "columnRadio">> <label> Target: <span @class="'whiteList ' + 'reducedWidth'"> <<listbox "$leftactionTarget" autoselect>> <<optionsfrom _availableTargets>> <</listbox>> </span> </label> <<else>> <span @class="'whiteList ' + (_reducedWidths is true? 'reducedWidth':'')"> <<listbox "$leftactionTarget" autoselect>> <<optionsfrom _availableTargets>> <</listbox>> </span> <</if>> <</if>> <</if>> <</widget>> <<widget "leftactionBoundBanish">> <<if $options.combatControls.includes("adio")>> <br> <label> <<print '<<radiobutton "$leftactionTarget" "'+_banishTarget.id+'">>'>> $tentacles[_i].fullDesc </label> | <<else>> <<set _availableTargets to {}>> <<set _availableTargets[_banishTarget.fullDesc] to _banishTarget.id>> <span @class="'whiteList ' + (_reducedWidths is true? 'reducedWidth':'')"> <<listbox "$leftactionTarget" autoselect>> <<optionsfrom _availableTargets>> <</listbox>> </span> <</if>> <</widget>> <<widget "leftactionDifficultyTentacle">> <<if _args[0] is undefined>> <<set _diffAction to $leftaction>> <<else>> <<set _diffAction to _args[0]>> <</if>> <<switch (""+_diffAction).replace(/\d+/g,'')>> <<case "showbottomtentacle" "showthighstentacle" "showmouthtentacle" "showpenistentacle" "showvaginatentacle">><<deviant5>> <</switch>> <</widget>> <<widget "leftActionsTentacle">> /*Generate Actions*/ <<set _leftaction to {}>> <<if !(["orgasm", "pain", "unreal"].includes(_leftOptions))>> <<set _leftaction["Rest"] to "rest">> <</if>> <<switch _leftOptions>> <<case "free">> <<if $tentacles.active gt 0>> <<if $consensual is 0>> <<set _leftaction["Strike the"] to "lefthittentacle">> <<if $angel gte 4 and $angelBanish gte 1 and !$banishDisable>> <<set _leftaction["("+$angelBanish+" / "+$angelBanishMax+") Banish the"] to "leftbanish">> <</if>> <</if>> <<set _leftaction["Grab the"] to "leftgrabtentacle">> <</if>> <<leftclothesnew>> <<case "grappled">> <<if $angel gte 4 and $angelBanish gte 1 and !$banishDisable>> <<for _i to 0; _i lt $tentacles.max; _i++>> <<if $tentacles[_i].shaft is "leftarm">> <<set _leftaction["("+$angelBanish+" / "+$angelBanishMax+") Banish the"] to "leftbanish">> <<break>> <</if>> <</for>> <</if>> <<case "bound">> <<case "tentacle">> <<set _leftaction["Milk it"] to "leftrub"+_tentacleLeftOption>> <<set _leftaction["Let go"] to "leftstop"+_tentacleLeftOption>> <<if hasSexStat("deviancy", 5)>> <<if playerHasStrapon() and $penisuse is 0>> <<set _leftaction["Guide to your strap-on"] to "showpenis"+_tentacleLeftOption>> <<elseif $player.penisExist and $penisuse is 0>> <<set _leftaction["Guide to your penis"] to "showpenis"+_tentacleLeftOption>> <</if>> <<if $player.vaginaExist and $vaginause is 0>> <<set _leftaction["Guide to your pussy"] to "showvagina"+_tentacleLeftOption>> <</if>> <<if $anususe is 0 and $settings.analEnabled>> <<set _leftaction["Guide to your ass"] to "showbottom"+_tentacleLeftOption>> <</if>> /* Old Control <<if ($player.vaginaExist and $vaginause is 0) or ($player.penisExist and $penisuse is 0)>> <<set _leftaction["Guide to your thighs"] to "showthighs"+_tentacleLeftOption>> <</if>>*/ <<if $mouthuse is 0>> <<set _leftaction["Guide to your mouth"] to "showmouth"+_tentacleLeftOption>> <</if>> <</if>> <<case "orgasm">> <<set _leftaction["Fold"] to "leftfold">> <<set _leftaction["Grip"] to "leftgrip">> <<case "pain">> <<set _leftaction["Struggle"] to "leftstruggleweak">> <<set _leftaction["Protect"] to "leftprotect">> <<case "unreal">> <<set _leftaction["Poke yourself"] to "leftpoke">> <<set _leftaction["Keep your arms out of the way"] to "leftcurl">> <</switch>> <</widget>> <<widget "rightActionInitTentacle">> <<set $righttarget to "tentacles">> <<switch $rightarm>> <<case 0>> <<if $orgasmdown gte 1>> <<set _rightOptions to "orgasm">> <span class="lewd">Your right arm is free, but you can't stop the spasms.</span> <<elseif $pain gte 100 and $willpowerpain is 0>> <<set _rightOptions to "pain">> <span class="red">Your right arm is free, but hurts to move.</span> <<elseif $dissociation gte 2>> <<set _rightOptions to "unreal">> <span class="pink">Your right arm is free, but doesn't feel real.</span> <<else>> <<if _targetYourself is true and _targetnumber gt 1>> <<set _targetlistarms["Yourself"] to "self">> <</if>> <<if not $options.combatControls.includes("adio") and _targetnumber gt 1>> <<targetListBox "right" _targetlistarms>> <</if>> <<set _rightOptions to "free">> <span @class="($lastOptions.right isnot _rightOptions ?'gold':'')">Your right arm is free.</span> <<if $options.combatControls.includes("adio") and _targetnumber gt 1>> <<targetListBox "right" _targetlistarms>> <</if>> <<if _targetnumber is 1>> <<set $righttarget to _firsttarget>> <</if>> <</if>> <<case "tentgrappled">> <<if $orgasmdown gte 1>> <<set _rightOptions to "bound">> <span class="lewd">Your right arm jerks against _the grip.</span> <<elseif $pain gte 100 and $willpowerpain is 0>> <<set _rightOptions to "bound">> <span class="red">Your right arm is held in a painful grip.</span> <<elseif $dissociation gte 2>> <<set _rightOptions to "bound">> <span class="pink">Your right arm lies limp in _the grip.</span> <<else>> <<set _rightOptions to "grappled">> <<for _i to 0; _i lt $tentacles.max; _i++>> <<if $tentacles[_i].shaft is "rightarm">> <span @class="($lastOptions.right isnot _rightOptions ?'gold':'')">_The $tentacles[_i].fullDesc entangles your right arm.</span> <<set $_tentgrab to 1>> <<if $angel gte 4 and $angelBanish gte 1 and !$banishDisable>> <<set _banishTarget to $tentacles[_i]>> <</if>> <<break>> <</if>> <</for>> <<if !$_tentgrab>> <span @class="($lastOptions.right isnot _rightOptions ?'gold':'')">Your right arm is being held down.</span> <</if>> <</if>> <<case "bound">> <<set _rightOptions to "bound">> <<if $orgasmdown gte 1>> <span class="lewd">Your right arm jerks against its bonds.</span> <<elseif $pain gte 100 and $willpowerpain is 0>> <span class="red">Your right arm is held in a painful bind.</span> <<elseif $dissociation gte 2>> <span class="pink">Your right arm lies limp in its bonds.</span> <<else>> <span @class="($lastOptions.right isnot _rightOptions ?'gold':'')">Your right arm is bound.</span> <</if>> <<case "grappled" "penis" "othervagina" "vagina" "coverpenis" "anus" "behind">> <<set $_changetype to true>><<rightActionInit>> <<case "trapped">> <<set $_changetype to true>><<rightActionInitVore>> <<case "struggle">> <<set $_changetype to true>><<rightActionInitStruggle>> <<case "swarmgrappled">> <<set $_changetype to true>><<rightActionInitSwarm>> <<case "mechgrappled">> <<set $_changetype to true>><<rightActionInitMachine>> <<default>> <<for _i to 0; _i lt $tentacles.max; _i++>> <<if $rightarm is $tentacles[_i].id>> <<set _rightOptions to "tentacle">> <<set _tentaclerightOption to $tentacles[_i].id>> <span @class="($lastOptions.right isnot _rightOptions ?'gold':'')">You hold _the $tentacles[_i].fullDesc in your right hand.</span> <<break>> <</if>> <</for>> <</switch>> <<if $_changetype isnot true>> <<rightActionsTentacle>> <<if Object.keys(_rightaction).length gt 0>> <<if Object.values(_rightaction).includes($rightactiondefault) is false or _args[0] is true or ["rest","rightgrabtentacle"].includes($rightactiondefault)>> <<set _defaultsCombatAction to "rightaction">> <<set _actionsSet = DefaultActions.get($defaultsCombatType, "Tentacles", _defaultsCombatAction)>> <<set _pass to false>> <<for _set to 0; _set lt _actionsSet.length; _set++>> <<if ["rightgrabtentacle"].includes(_actionsSet[_set]) and $rightactionTarget isnot undefined>> <<for _i to 0; _i lt $tentacles.max; _i++>> <<if $tentacles[_i].shaft isnot "finished">> <<if $regrab and $tentacles[_i].head is 0>> <<set $rightactiondefault to clone(_actionsSet[_set])>> <<set $rightactionTarget to $tentacles[_i].id>> <<set _pass to true>> <<break>> <<elseif $tentacles[_i].head is 0>> <<set $rightactiondefault to clone(_actionsSet[_set])>> <<set _pass to true>> <</if>> <<if $regrab is false>> <<break>> <</if>> <</if>> <</for>> <<elseif ["rightrub","showpenis","showvagina","showbottom"].includes(_actionsSet[_set]) and _tentaclerightOption isnot undefined>> <<if Object.values(_rightaction).includes(_actionsSet[_set] + _tentaclerightOption)>> <<set $rightactiondefault to clone(_actionsSet[_set] + _tentaclerightOption)>> <<set _pass to true>> <<break>> <</if>> <<elseif Object.values(_rightaction).includes(_actionsSet[_set])>> <<set $rightactiondefault to clone(_actionsSet[_set])>> <<set _pass to true>> <<break>> <</if>> <</for>> <<if _pass is false>> <<set $rightactiondefault to Object.values(_rightaction)[0]>> <</if>> <</if>> <<set $rightaction to $rightactiondefault>> <<set _textColor to combatListColor('rightaction', (Object.values(_rightaction).includes($rightaction) ? $rightaction : Object.values(_rightaction)[0]), "Tentacle")>> <div class="extraMargin"> <<if not $options.combatControls.includes("adio") and _rightOptions is "free">> <<set _reducedWidths to true>> <<else>> <<set _reducedWidths to false>> <</if>> /* _reducedWidths is used by generateCombatAction */ <<generateCombatAction _rightaction "rightaction" "Tentacle">> <<if _rightOptions is "free" and $tentacles.active gt 0>> <<rightactionSetupTentacle>> <<elseif _rightOptions is "grappled" and $angel gte 4 and $angelBanish gte 1 and !$banishDisable and _banishTarget>> <<rightactionBoundBanish>> <</if>> </div> <<if $options.combatControls.includes("ists")>> <div id="rightactionDifficulty"> <<rightactionDifficultyTentacle>> </div> <</if>> <</if>> <<set $lastOptions.right to clone(_rightOptions)>> <</if>> <</widget>> <<widget "rightactionSetupTentacle">> <<if $options.combatControls is "radio">> <br><br> <<set _first to true>> <<if $regrab>> <<for _i to 0; _i lt $tentacles.max; _i++>> <<if $tentacles[_i] isnot undefined>> <<if $tentacles[_i].shaft isnot "finished" and $tentacles[_i].id is $rightactionTarget>> <<set _first to false>> <<set $_found to $tentacles[_i].id>> <<break>> <</if>> <</if>> <</for>> <</if>> <<for _i to 0; _i lt $tentacles.max; _i++>> <<if $tentacles[_i] isnot undefined>> <<if $tentacles[_i].shaft isnot "finished">> <label> <<print '<<radiobutton "$rightactionTarget" "'+$tentacles[_i].id+'" ' + (_first is true or $tentacles[_i].id is $_found ? "checked" : "") + '>>'>> $tentacles[_i].fullDesc </label> | <<set _first to false>> <</if>> <</if>> <</for>> <<else>> <<if _availableTargets is undefined>> <<if $controls is "radio">> <br> <</if>> <<set _availableTargets to {}>> <<for _i to 0; _i lt $tentacles.max; _i++>> <<if $tentacles[_i] isnot undefined>> <<if $tentacles[_i].shaft isnot "finished">> <<set _availableTargets[$tentacles[_i].fullDesc] to $tentacles[_i].id>> <<set _tentacle_targets_available to true>> <</if>> <</if>> <</for>> <</if>> <<if _tentacle_targets_available>> <<if $options.combatControls is "columnRadio">> <label> Target: <span @class="'whiteList ' + 'reducedWidth'"> <<listbox "$rightactionTarget" autoselect>> <<optionsfrom _availableTargets>> <</listbox>> </span> </label> <<else>> <span @class="'whiteList ' + (_reducedWidths is true? 'reducedWidth':'')"> <<listbox "$rightactionTarget" autoselect>> <<optionsfrom _availableTargets>> <</listbox>> </span> <</if>> <</if>> <</if>> <</widget>> <<widget "rightactionBoundBanish">> <<if $options.combatControls.includes("adio")>> <br> <label> <<print '<<radiobutton "$rightactionTarget" "'+_banishTarget.id+'">>'>> $tentacles[_i].fullDesc </label> | <<else>> <<set _availableTargets to {}>> <<set _availableTargets[_banishTarget.fullDesc] to _banishTarget.id>> <span @class="'whiteList ' + (_reducedWidths is true? 'reducedWidth':'')"> <<listbox "$rightactionTarget" autoselect>> <<optionsfrom _availableTargets>> <</listbox>> </span> <</if>> <</widget>> <<widget "rightactionDifficultyTentacle">> <<if _args[0] is undefined>> <<set _diffAction to $rightaction>> <<else>> <<set _diffAction to _args[0]>> <</if>> <<switch (""+_diffAction).replace(/\d+/g,'')>> <<case "showbottomtentacle" "showthighstentacle" "showmouthtentacle" "showpenistentacle" "showvaginatentacle">><<deviant5>> <</switch>> <</widget>> <<widget "rightActionsTentacle">> /*Generate Actions*/ <<set _rightaction to {}>> <<if !(["orgasm", "pain", "unreal"].includes(_rightOptions))>> <<set _rightaction["Rest"] to "rest">> <</if>> <<switch _rightOptions>> <<case "free">> <<if $tentacles.active gt 0>> <<if $consensual is 0>> <<set _rightaction["Strike the"] to "righthittentacle">> <<if $angel gte 4 and $angelBanish gte 1 and !$banishDisable>> <<set _rightaction["("+$angelBanish+" / "+$angelBanishMax+") Banish the"] to "rightbanish">> <</if>> <</if>> <<set _rightaction["Grab the"] to "rightgrabtentacle">> <</if>> <<rightclothesnew>> <<case "grappled">> <<if $angel gte 4 and $angelBanish gte 1 and !$banishDisable>> <<for _i to 0; _i lt $tentacles.max; _i++>> <<if $tentacles[_i].shaft is "rightarm">> <<set _rightaction["("+$angelBanish+" / "+$angelBanishMax+") Banish the"] to "rightbanish">> <<break>> <</if>> <</for>> <</if>> <<case "bound">> <<case "tentacle">> <<set _rightaction["Milk it"] to "rightrub"+_tentaclerightOption>> <<set _rightaction["Let go"] to "rightstop"+_tentaclerightOption>> <<if hasSexStat("deviancy", 5)>> <<if playerHasStrapon() and $penisuse is 0>> <<set _rightaction["Guide to your strap-on"] to "showpenis"+_tentacleRightOption>> <<elseif $player.penisExist and $penisuse is 0>> <<set _rightaction["Guide to your penis"] to "showpenis"+_tentaclerightOption>> <</if>> <<if $player.vaginaExist and $vaginause is 0>> <<set _rightaction["Guide to your pussy"] to "showvagina"+_tentaclerightOption>> <</if>> <<if $anususe is 0 and $settings.analEnabled>> <<set _rightaction["Guide to your ass"] to "showbottom"+_tentaclerightOption>> <</if>> /* Old controls <<if ($player.vaginaExist and $vaginause is 0) or ($player.penisExist and $penisuse is 0)>> <<set _rightaction["Guide to your thighs"] to "showthighs"+_tentaclerightOption>> <</if>>*/ <<if $mouthuse is 0>> <<set _rightaction["Guide to your mouth"] to "showmouth"+_tentaclerightOption>> <</if>> <</if>> <<case "orgasm">> <<set _rightaction["Fold"] to "rightfold">> <<set _rightaction["Grip"] to "rightgrip">> <<case "pain">> <<set _rightaction["Struggle"] to "rightstruggleweak">> <<set _rightaction["Protect"] to "rightprotect">> <<case "unreal">> <<set _rightaction["Poke yourself"] to "rightpoke">> <<set _rightaction["Keep your arms out of the way"] to "rightcurl">> <</switch>> <</widget>> <<widget "feetActionInitTentacle">> <<set $feettarget to "tentacles">> <<if $dissociation lte 1 and $orgasmdown lte 0 and ($pain lt 100 or $willpowerpain is undefined)>> <<switch $feetuse>> <<case "penis" "othervagina" "bound" "walk" "run" "strut" "none">> <<set $_changetype to true>><<feetActionInit>> <<case "mechgrappled">> <<set $_changetype to true>><<feetActionInitMachine>> <<default>> <<if _targetYourself is true and _targetnumber gt 1>> <<set _targetlistall["Yourself"] to "self">> <</if>> <<if not $options.combatControls.includes("adio") and _targetnumber gt 1>> <<if !(($leftleg is "grappled" and $rightleg is "grappled") or ($leftleg is "bound" and $rightleg is "bound"))>> <<targetListBox "feet" _targetlistall>> <</if>> <</if>> <<if $leftleg is 0 and $rightleg is 0>> <<set _feetOptions to "free">> <span @class="($lastOptions.feet isnot _feetOptions ?'gold':'')">Your legs are free.</span> <<elseif $leftleg is 0>> <<set _feetOptions to "leftFree">> <span @class="($lastOptions.feet isnot _feetOptions ?'gold':'')">Your left leg is free.</span> <<elseif $rightleg is 0>> <<set _feetOptions to "rightFree">> <span @class="($lastOptions.feet isnot _feetOptions ?'gold':'')">Your right leg is free.</span> <<elseif $leftleg is "grappled" and $rightleg is "grappled">> <<set _feetOptions to "grappled">> <span @class="($lastOptions.feet isnot _feetOptions ?'gold':'')">Your legs are entangled and forced apart, leaving you less able to protect your <<genitals>>.</span> <<elseif $leftleg is "bound" and $rightleg is "bound">> <<set _feetOptions to "bound">> <span @class="($lastOptions.feet isnot _feetOptions ?'gold':'')">Your legs are bound and forced apart, leaving you less able to protect your <<genitals>>.</span> <<else>> <<for _i to 0; _i lt $tentacles.max; _i++>> <<if $leftleg is $tentacles[_i].id>> <<set _feetOptions to "tentacle">> <<set _tentacleFeetOption to $tentacles[_i].id>> <span @class="($lastOptions.feet isnot _feetOptions ?'gold':'')">You hold _the $tentacles[_i].fullDesc between your feet.</span> <<break>> <</if>> <</for>> <</if>> <<if $options.combatControls.includes("adio") and _targetnumber gt 1 and _feetOptions.toLowerCase().includes("free")>> <<targetListBox "feet" _targetlistall>> <</if>> <<if _targetnumber is 1>> <<set $feettarget to _firsttarget>> <</if>> <</switch>> <<if $_changetype isnot true>> <<feetActionsTentacle>> <<if Object.keys(_feetaction).length gt 0>> <<if Object.values(_feetaction).includes($feetactiondefault) is false or _args[0] is true or ["rest","feetgrab"].includes($feetactiondefault)>> <<set _defaultsCombatAction to "feetaction">> <<set _actionsSet = DefaultActions.get($defaultsCombatType, "Tentacles", _defaultsCombatAction)>> <<set _pass to false>> <<for _set to 0; _set lt _actionsSet.length; _set++>> <<if ["feetgrab"].includes(_actionsSet[_set]) and $feetactionTarget isnot undefined>> <<for _i to 0; _i lt $tentacles.max; _i++>> <<if $tentacles[_i].shaft isnot "finished">> <<if $regrab and $tentacles[_i].head is 0>> <<set $feetactiondefault to clone(_actionsSet[_set])>> <<set $feetactionTarget to $tentacles[_i].id>> <<set _pass to true>> <<break>> <<elseif $tentacles[_i].head is 0>> <<set $feetactiondefault to clone(_actionsSet[_set])>> <<set _pass to true>> <</if>> <<if $regrab is false>> <<break>> <</if>> <</if>> <</for>> <<elseif ["feetrub","showpenis","showvagina","showbottom"].includes(_actionsSet[_set]) and _tentacleFeetOption isnot undefined>> <<if Object.values(_feetaction).includes(_actionsSet[_set] + _tentacleFeetOption)>> <<set $feetactiondefault to clone(_actionsSet[_set] + _tentacleFeetOption)>> <<set _pass to true>> <<break>> <</if>> <<elseif Object.values(_feetaction).includes(_actionsSet[_set])>> <<set $feetactiondefault to clone(_actionsSet[_set])>> <<set _pass to true>> <<break>> <</if>> <</for>> <<if _pass is false>> <<set $feetactiondefault to Object.values(_feetaction)[0]>> <</if>> <</if>> <<set $feetaction to $feetactiondefault>> <<set _textColor to combatListColor('feetaction', (Object.values(_feetaction).includes($feetaction) ? $feetaction : Object.values(_feetaction)[0]), "Tentacle")>> <div class="extraMargin"> <<set _availableContext to ["free","leftFree","rightFree"]>> <<if not $options.combatControls.includes("adio") and _availableContext.includes(_feetOptions)>> <<set _reducedWidths to true>> <<else>> <<set _reducedWidths to false>> <</if>> /* _reducedWidths is used by generateCombatAction */ <<generateCombatAction _feetaction "feetaction" "Tentacle">> <<if _availableContext.includes(_feetOptions) and $tentacles.active gt 0>> <<feetactionSetupTentacle>> <</if>> </div> <<if $options.combatControls.includes("ists")>> <div id="feetactionDifficulty"> <<feetactionDifficultyTentacle>> </div> <</if>> <</if>> <<set $lastOptions.feet to clone(_feetOptions)>> <</if>> <<else>> <<timed 100ms>> <<run jQuery("#feetaction").remove();>> <</timed>> <</if>> <</widget>> <<widget "feetactionSetupTentacle">> <<if $options.combatControls is "radio">> <br><br> <<set _first to true>> <<if $regrab>> <<for _i to 0; _i lt $tentacles.max; _i++>> <<if $tentacles[_i] isnot undefined>> <<if $tentacles[_i].shaft isnot "finished" and $tentacles[_i].id is $feetactionTarget>> <<set _first to false>> <<set $_found to $tentacles[_i].id>> <<break>> <</if>> <</if>> <</for>> <</if>> <<for _i to 0; _i lt $tentacles.max; _i++>> <<if $tentacles[_i] isnot undefined>> <<if $tentacles[_i].shaft isnot "finished">> <label> <<print '<<radiobutton "$feetactionTarget" "'+$tentacles[_i].id+'" ' + (_first is true or $tentacles[_i].id is $_found ? "checked" : "") + '>>'>> $tentacles[_i].fullDesc </label> | <<set _first to false>> <</if>> <</if>> <</for>> <<else>> <<if _availableTargets is undefined>> <<if $controls is "radio">> <br> <</if>> <<set _availableTargets to {}>> <<for _i to 0; _i lt $tentacles.max; _i++>> <<if $tentacles[_i] isnot undefined>> <<if $tentacles[_i].shaft isnot "finished">> <<set _availableTargets[$tentacles[_i].fullDesc] to $tentacles[_i].id>> <<set _tentacle_targets_available to true>> <</if>> <</if>> <</for>> <</if>> <<if _tentacle_targets_available>> <<if $options.combatControls is "columnRadio">> <label> Target: <span @class="'whiteList ' + 'reducedWidth'"> <<listbox "$feetactionTarget" autoselect>> <<optionsfrom _availableTargets>> <</listbox>> </span> </label> <<else>> <span @class="'whiteList ' + (_reducedWidths is true? 'reducedWidth':'')"> <<listbox "$feetactionTarget" autoselect>> <<optionsfrom _availableTargets>> <</listbox>> </span> <</if>> <</if>> <</if>> <</widget>> <<widget "feetactionDifficultyTentacle">> <<if _args[0] is undefined>> <<set _diffAction to $feetaction>> <<else>> <<set _diffAction to _args[0]>> <</if>> <<switch (""+_diffAction).replace(/\d+/g,'')>> <<case "showbottomtentacle" "showthighstentacle" "showpenistentacle" "showvaginatentacle">><<deviant5>> <</switch>> <</widget>> <<widget "feetActionsTentacle">> /*Generate Actions*/ <<set _feetaction to {}>> <<set _feetaction["Rest"] to "rest">> <<switch _feetOptions>> <<case "free">> <<if $tentacles.active gt 0>> <<if $consensual is 0>> <<set _feetaction["Kick the"] to "feethit">> <</if>> <<set _feetaction["Grab the"] to "feetgrab">> <</if>> <<case "leftFree" "rightFree">> <<if $tentacles.active gt 0>> <<if $consensual is 0>> <<set _feetaction["Kick the"] to "feethit">> <</if>> <</if>> <<case "tentacle">> <<set _feetaction["Milk it"] to "feetrub"+_tentacleFeetOption>> <<set _feetaction["Let go"] to "feetstop"+_tentacleFeetOption>> <<if hasSexStat("deviancy", 5)>> <<if playerHasStrapon() and $penisuse is 0>> <<set _feetaction["Guide to your strap-on"] to "showpenis"+_tentacleFeetOption>> <<elseif $player.penisExist and $penisuse is 0>> <<set _feetaction["Guide to your penis"] to "showpenis"+_tentacleFeetOption>> <</if>> <<if $player.vaginaExist and $vaginause is 0>> <<set _feetaction["Guide to your pussy"] to "showvagina"+_tentacleFeetOption>> <</if>> <<if $anususe is 0 and $settings.analEnabled>> <<set _feetaction["Guide to your ass"] to "showbottom"+_tentacleFeetOption>> <</if>> /* Old control <<if ($player.vaginaExist and $vaginause is 0) or ($player.penisExist and $penisuse is 0)>> <<set _feetaction["Guide to your thighs"] to "showthighs"+_tentacleFeetOption>> <</if>>*/ <</if>> <</switch>> <</widget>> <<widget "mouthActionInitTentacle">> <<if $orgasmdown gte 1>> <<mouthActionInit>> <<elseif $pain gte 100 and $willpowerpain is 0>> <<mouthActionInit>> <<elseif $dissociation gte 2>> <<mouthActionInit>> <<else>> <<set $mouthtarget to "tentacles">> <<for _i to 0; _i lt $tentacles.max; _i++>> <<switch $mouthstate>> <<case "tentacleentrance">> <<if $tentacles[_i].head is "mouthentrance">> <<set _mouthOptions to "entrance">> <<set _tentacleMouthOption to $tentacles[_i].id>> <<if $worn.face.type.includes("covered") or $worn.face.type.includes("gag")>> <span @class="($lastOptions.mouth isnot _mouthOptions ?'gold':'')">_The $tentacles[_i].fullDesc threatens your <<print $worn.face.name>>.</span> <<else>> <span @class="($lastOptions.mouth isnot _mouthOptions ?'gold':'')">_The $tentacles[_i].fullDesc threatens your mouth.</span> <</if>> <<break>> <</if>> <<case "tentacleimminent">> <<if $tentacles[_i].head is "mouthimminent">> <<set _mouthOptions to "imminent">> <<set _tentacleMouthOption to $tentacles[_i].id>> <<if $worn.face.type.includes("covered") or $worn.face.type.includes("gag")>> <span @class="($lastOptions.mouth isnot _mouthOptions ?'gold':'')">_The $tentacles[_i].fullDesc presses against your <<print $worn.face.name>>.</span> <<else>> <span @class="($lastOptions.mouth isnot _mouthOptions ?'gold':'')">_The $tentacles[_i].fullDesc presses against your mouth.</span> <</if>> <<break>> <</if>> <<case "tentacle">> <<if $tentacles[_i].head is "mouth">> <<set _mouthOptions to "penetrated">> <<set _tentacleMouthOption to $tentacles[_i].id>> <span @class="($lastOptions.mouth isnot _mouthOptions ?'gold':'')">_The $tentacles[_i].fullDesc thrusts into your mouth.</span> <<break>> <</if>> <<case "tentacledeep">> <<if $tentacles[_i].head is "mouthdeep">> <<set _mouthOptions to "penetrated">> <<set _tentacleMouthOption to $tentacles[_i].id>> <span @class="($lastOptions.mouth isnot _mouthOptions ?'gold':'')">_The $tentacles[_i].fullDesc thrusts into your mouth, ejaculating down your throat.</span> <<break>> <</if>> <<case "struggle" "struggle_pen">> <<set $_changetype to true>><<mouthActionInitStruggle>> <<break>> <<default>> <<set $_changetype to true>><<mouthActionInit>> <<break>> <</switch>> <</for>> <<if $_changetype isnot true>> <<mouthActionsTentacle>> <<if Object.keys(_mouthaction).length gt 0>> <<if Object.values(_mouthaction).includes($mouthactiondefault) is false or _args[0] is true or $mouthactiondefault is "rest">> <<set _defaultsCombatAction to "mouthaction">> <<set _actionsSet = DefaultActions.get($defaultsCombatType, "Tentacles", _defaultsCombatAction)>> <<set _pass to false>> <<for _set to 0; _set lt _actionsSet.length; _set++>> <<if ["mouthlick","mouthpullaway","mouthkiss","mouthcooperate","mouthbite"].includes(_actionsSet[_set]) and _tentacleMouthOption isnot undefined>> <<if Object.values(_mouthaction).includes(_actionsSet[_set] + _tentacleMouthOption)>> <<set $mouthactiondefault to clone(_actionsSet[_set] + _tentacleMouthOption)>> <<set _pass to true>> <<break>> <</if>> <<elseif Object.values(_mouthaction).includes(_actionsSet[_set])>> <<set $mouthactiondefault to clone(_actionsSet[_set])>> <<set _pass to true>> <<break>> <</if>> <</for>> <<if _pass is false>> <<set $mouthactiondefault to Object.values(_mouthaction)[0]>> <</if>> <</if>> <<set $mouthaction to $mouthactiondefault>> <<set _textColor to combatListColor('mouthaction', (Object.values(_mouthaction).includes($mouthaction) ? $mouthaction : Object.values(_mouthaction)[0]), "Tentacle")>> <div class="extraMargin"> <<generateCombatAction _mouthaction "mouthaction" "Tentacle">> </div> <<if $options.combatControls.includes("ists")>> <div id="mouthactionDifficulty"> <<mouthactionDifficultyTentacle>> </div> <</if>> <</if>> <<set $lastOptions.mouth to clone(_mouthOptions)>> <</if>> <</if>> <</widget>> <<widget "mouthactionDifficultyTentacle">> /* <<if _args[0] is undefined>> <<set _diffAction to $mouthaction>> <<else>> <<set _diffAction to _args[0]>> <</if>> <<switch (""+_diffAction).replace(/\d+/g,'')>> <</switch>> */ <</widget>> <<widget "mouthActionsTentacle">> /*Generate Actions*/ <<set _mouthaction to {}>> <<switch _mouthOptions>> <<case "entrance">> <<set _mouthaction["Rest"] to "rest">> <<if !$worn.face.type.includes("covered") and !$worn.face.type.includes("gag")>> <<set _mouthaction["Lick it"] to "mouthlick"+_tentacleMouthOption>> <</if>> <<if $head isnot "grappled">> <<set _mouthaction["Pull away"] to "mouthpullaway"+_tentacleMouthOption>> <</if>> <<if !$combat_silenced>> <<set _mouthaction["Lull"] to "mouthlull"+_tentacleMouthOption>> <</if>> <<case "imminent">> <<set _mouthaction["Rest"] to "rest">> <<if !$worn.face.type.includes("covered") and !$worn.face.type.includes("gag")>> <<set _mouthaction["Kiss it"] to "mouthkiss"+_tentacleMouthOption>> <</if>> <<if $head isnot "grappled">> <<set _mouthaction["Pull away"] to "mouthpullaway"+_tentacleMouthOption>> <</if>> <<if !$combat_silenced>> <<set _mouthaction["Lull"] to "mouthlull"+_tentacleMouthOption>> <</if>> <<case "penetrated">> <<set _mouthaction["Take it"] to "take">> <<set _mouthaction["Cooperate"] to "mouthcooperate"+_tentacleMouthOption>> <<if $consensual is 0>> <<set _mouthaction["Bite"] to "mouthbite"+_tentacleMouthOption>> <</if>> <<default>> <<if !$combat_silenced>> <<set _mouthaction["Lull"] to "mouthlull"+_tentacleMouthOption>> <</if>> <</switch>> <</widget>> <<widget "penisActionInitTentacle">> <<set $penistarget to "tentacles">> <<if $dissociation lte 1 and $orgasmdown lte 0 and ($pain lt 100 or $willpowerpain is undefined)>> <<for _i to 0; _i lt $tentacles.max; _i++>> <<switch $penisstate>> <<case "tentacleentrance">> <<if $tentacles[_i].head is "penisentrance">> <<set _penisOptions to "entrance">> <<set _tentaclepenisOption to $tentacles[_i].id>> <span @class="($lastOptions.penis isnot _penisOptions ?'gold':'')">_The $tentacles[_i].fullDesc threatens your <<penis>>.</span> <<break>> <</if>> <<case "tentacleimminent">> <<if $tentacles[_i].head is "penisimminent">> <<set _penisOptions to "imminent">> <<set _tentaclepenisOption to $tentacles[_i].id>> <span @class="($lastOptions.penis isnot _penisOptions ?'gold':'')">_The $tentacles[_i].fullDesc presses against your <<penis>>, about to engulf.</span> <<break>> <</if>> <<case "tentacle">> <<if $tentacles[_i].head is "penis">> <<set _penisOptions to "penetrated">> <<set _tentaclepenisOption to $tentacles[_i].id>> <span @class="($lastOptions.penis isnot _penisOptions ?'gold':'')">_The $tentacles[_i].fullDesc envelops and pounds your <<penis>>.</span> <<break>> <</if>> <<case "tentacledeep">> <<if $tentacles[_i].head is "penisdeep">> <<set _penisOptions to "penetrated">> <<set _tentaclepenisOption to $tentacles[_i].id>> <span @class="($lastOptions.penis isnot _penisOptions ?'gold':'')">_The $tentacles[_i].fullDesc envelops and pounds your <<penis>>.</span> <<break>> <</if>> <<case "tentaclerub">> <<if $tentacles[_i].head is "penisrub">> <<set _penisOptions to "penisrub">> <<set _tentaclepenisOption to $tentacles[_i].id>> <span @class="($lastOptions.penis isnot _penisOptions ?'gold':'')">_The $tentacles[_i].fullDesc runs between your thighs, coiling around your <<penis>> and pressing against your tummy.</span> <<break>> <</if>> <<case "struggle" "struggle_pen">> <<set $_changetype to true>><<penisActionInitStruggle>> <<break>> <<default>> <<set $_changetype to true>><<penisActionInit>> <<break>> <</switch>> <</for>> <<if $_changetype isnot true>> <<penisActionsTentacle>> <<if Object.keys(_penisaction).length gt 0>> <<if Object.values(_penisaction).includes($penisactiondefault) is false or _args[0] is true or $penisactiondefault is "rest">> <<set _defaultsCombatAction to "penisaction">> <<set _actionsSet = DefaultActions.get($defaultsCombatType, "Tentacles", _defaultsCombatAction)>> <<set _pass to false>> <<for _set to 0; _set lt _actionsSet.length; _set++>> <<if ["penisrub","penispullaway","peniscooperate"].includes(_actionsSet[_set]) and _tentaclepenisOption isnot undefined>> <<if Object.values(_penisaction).includes(_actionsSet[_set] + _tentaclepenisOption)>> <<set $penisactiondefault to clone(_actionsSet[_set] + _tentaclepenisOption)>> <<set _pass to true>> <<break>> <</if>> <<elseif Object.values(_penisaction).includes(_actionsSet[_set])>> <<set $penisactiondefault to clone(_actionsSet[_set])>> <<set _pass to true>> <<break>> <</if>> <</for>> <<if _pass is false>> <<set $penisactiondefault to Object.values(_penisaction)[0]>> <</if>> <</if>> <<set $penisaction to $penisactiondefault>> <<set _textColor to combatListColor('penisaction', (Object.values(_penisaction).includes($penisaction) ? $penisaction : Object.values(_penisaction)[0]), "Tentacle")>> <div class="extraMargin"> <<generateCombatAction _penisaction "penisaction" "Tentacle">> </div> <<if $options.combatControls.includes("ists")>> <div id="penisactionDifficulty"> <<penisactionDifficultyTentacle>> </div> <</if>> <</if>> <<set $lastOptions.penis to clone(_penisOptions)>> <</if>> <<else>> <<timed 100ms>> <<run jQuery("#penisaction").remove();>> <</timed>> <</if>> <</widget>> <<widget "penisactionDifficultyTentacle">> /* <<if _args[0] is undefined>> <<set _diffAction to $penisaction>> <<else>> <<set _diffAction to _args[0]>> <</if>> <<switch (""+_diffAction).replace(/\d+/g,'')>> <</switch>> */ <</widget>> <<widget "penisActionsTentacle">> /*Generate Actions*/ <<set _penisaction to {}>> <<switch _penisOptions>> <<case "entrance" "imminent">> <<set _penisaction["Rest"] to "rest">> <<set _penisaction["Rub"] to "penisrub"+_tentaclepenisOption>> <<if $leftleg isnot "grappled" or $rightleg isnot "grappled">> <<set _penisaction["Pull away"] to "penispullaway"+_tentaclepenisOption>> <</if>> <<case "penetrated">> <<set _penisaction["Take it"] to "take">> <<set _penisaction["Cooperate"] to "peniscooperate"+_tentaclepenisOption>> <<case "penisrub">> <<set _penisaction["Rest"] to "rest">> <<set _penisaction["Rub"] to "penisrub"+_tentaclepenisOption>> <</switch>> <</widget>> <<widget "vaginaActionInitTentacle">> <<set $vaginatarget to "tentacles">> <<if $dissociation lte 1 and $orgasmdown lte 0 and ($pain lt 100 or $willpowerpain is undefined)>> <<for _i to 0; _i lt $tentacles.max; _i++>> <<switch $vaginastate>> <<case "tentacleentrance">> <<if $tentacles[_i].head is "vaginaentrance">> <<set _vaginaOptions to "entrance">> <<set _tentaclevaginaOption to $tentacles[_i].id>> <span @class="($lastOptions.right isnot _rightOptions ?'gold':'')">_The $tentacles[_i].fullDesc threatens your <<pussy>>.</span> <<break>> <</if>> <<case "tentacleimminent">> <<if $tentacles[_i].head is "vaginaimminent">> <<set _vaginaOptions to "imminent">> <<set _tentaclevaginaOption to $tentacles[_i].id>> <span @class="($lastOptions.vagina isnot _vaginaOptions ?'gold':'')">_The $tentacles[_i].fullDesc presses against your <<pussy>>, about to penetrate.</span> <<break>> <</if>> <<case "tentacle">> <<if $tentacles[_i].head is "vagina">> <<set _vaginaOptions to "penetrated">> <<set _tentaclevaginaOption to $tentacles[_i].id>> <span @class="($lastOptions.vagina isnot _vaginaOptions ?'gold':'')">_The $tentacles[_i].fullDesc thrusts into your <<pussy>>.</span> <<break>> <</if>> <<case "tentacledeep">> <<if $tentacles[_i].head is "vaginadeep">> <<set _vaginaOptions to "penetrated">> <<set _tentaclevaginaOption to $tentacles[_i].id>> <span @class="($lastOptions.vagina isnot _vaginaOptions ?'gold':'')">_The $tentacles[_i].fullDesc thrusts into your <<pussy>>, ejaculating deep into your womb.</span> <<break>> <</if>> <<case "tentaclerub">> <<if $tentacles[_i].head is "tentaclerub">> <<set _vaginaOptions to "vaginarub">> <<set _tentaclevaginaOption to $tentacles[_i].id>> <span @class="($lastOptions.vagina isnot _vaginaOptions ?'gold':'')">_The $tentacles[_i].fullDesc runs between your thighs, pressing against your labia and continuing to your tummy.</span> <<break>> <</if>> <<case "struggle" "struggle_pen">> <<set $_changetype to true>><<vaginaActionInitStruggle>> <<break>> <<default>> <<set $_changetype to true>><<vaginaActionInit>> <<break>> <</switch>> <</for>> <<if $_changetype isnot true>> <<vaginaActionsTentacle>> <<if Object.keys(_vaginaaction).length gt 0>> <<if Object.values(_vaginaaction).includes($vaginaactiondefault) is false or _args[0] is true or $vaginaactiondefault is "rest">> <<set _defaultsCombatAction to "vaginaaction">> <<set _actionsSet = DefaultActions.get($defaultsCombatType, "Tentacles", _defaultsCombatAction)>> <<set _pass to false>> <<for _set to 0; _set lt _actionsSet.length; _set++>> <<if ["vaginarub","vaginapullaway","vaginacooperate"].includes(_actionsSet[_set]) and _tentaclevaginaOption isnot undefined>> <<if Object.values(_vaginaaction).includes(_actionsSet[_set] + _tentaclevaginaOption)>> <<set $vaginaactiondefault to clone(_actionsSet[_set] + _tentaclevaginaOption)>> <<set _pass to true>> <<break>> <</if>> <<elseif Object.values(_vaginaaction).includes(_actionsSet[_set])>> <<set $vaginaactiondefault to clone(_actionsSet[_set])>> <<set _pass to true>> <<break>> <</if>> <</for>> <<if _pass is false>> <<set $vaginaactiondefault to Object.values(_vaginaaction)[0]>> <</if>> <</if>> <<set $vaginaaction to $vaginaactiondefault>> <<set _textColor to combatListColor('vaginaaction', (Object.values(_vaginaaction).includes($vaginaaction) ? $vaginaaction : Object.values(_vaginaaction)[0]), "Tentacle")>> <div class="extraMargin"> <<generateCombatAction _vaginaaction "vaginaaction" "Tentacle">> </div> <<if $options.combatControls.includes("ists")>> <div id="vaginaactionDifficulty"> <<vaginaactionDifficultyTentacle>> </div> <</if>> <</if>> <<set $lastOptions.vagina to clone(_vaginaOptions)>> <</if>> <<else>> <<timed 100ms>> <<run jQuery("#vaginaaction").remove();>> <</timed>> <</if>> <</widget>> <<widget "vaginaactionDifficultyTentacle">> /* <<if _args[0] is undefined>> <<set _diffAction to $vaginaaction>> <<else>> <<set _diffAction to _args[0]>> <</if>> <<switch (""+_diffAction).replace(/\d+/g,'')>> <</switch>> */ <</widget>> <<widget "vaginaActionsTentacle">> /*Generate Actions*/ <<set _vaginaaction to {}>> <<switch _vaginaOptions>> <<case "entrance" "imminent">> <<set _vaginaaction["Rest"] to "rest">> <<set _vaginaaction["Rub"] to "vaginarub"+_tentaclevaginaOption>> <<if $leftleg isnot "grappled" or $rightleg isnot "grappled">> <<set _vaginaaction["Pull away"] to "vaginapullaway"+_tentaclevaginaOption>> <</if>> <<case "penetrated">> <<set _vaginaaction["Take it"] to "take">> <<set _vaginaaction["Cooperate"] to "vaginacooperate"+_tentaclevaginaOption>> <<case "vaginarub">> <<set _vaginaaction["Rest"] to "rest">> <<set _vaginaaction["Rub"] to "vaginarub"+_tentaclevaginaOption>> <</switch>> <</widget>> <<widget "anusActionInitTentacle">> <<set $anustarget to "tentacles">> <<if $dissociation lte 1 and $orgasmdown lte 0 and ($pain lt 100 or $willpowerpain is undefined)>> <<if $bottomuse is "mouth" or $bottomuse is "penis">> <<set $_changetype to true>><<anusActionInit>> <<else>> <<for _i to 0; _i lt $tentacles.max; _i++>> <<switch $anusstate>> <<case "tentacleentrance">> <<if $tentacles[_i].head is "anusentrance">> <<set _anusOptions to "entrance">> <<set _tentacleanusOption to $tentacles[_i].id>> <span @class="($lastOptions.anus isnot _anusOptions ?'gold':'')">_The $tentacles[_i].fullDesc threatens your <<bottom>>.</span> <<break>> <</if>> <<case "tentacleimminent">> <<if $tentacles[_i].head is "anusimminent">> <<set _anusOptions to "imminent">> <<set _tentacleanusOption to $tentacles[_i].id>> <span @class="($lastOptions.anus isnot _anusOptions ?'gold':'')">_The $tentacles[_i].fullDesc presses against your <<bottom>>, about to penetrate.</span> <<break>> <</if>> <<case "tentacle">> <<if $tentacles[_i].head is "anus">> <<set _anusOptions to "penetrated">> <<set _tentacleanusOption to $tentacles[_i].id>> <span @class="($lastOptions.anus isnot _anusOptions ?'gold':'')">_The $tentacles[_i].fullDesc thrusts into your <<bottom>>.</span> <<break>> <</if>> <<case "tentacledeep">> <<if $tentacles[_i].head is "anusdeep">> <<set _anusOptions to "penetrated">> <<set _tentacleanusOption to $tentacles[_i].id>> <span @class="($lastOptions.anus isnot _anusOptions ?'gold':'')">_The $tentacles[_i].fullDesc thrusts into your <<bottom>>, ejaculating deep into your bowels.</span> <<break>> <</if>> <<case "tentaclerub">> <<if $tentacles[_i].head is "anusrub">> <<set _anusOptions to "anusrub">> <<set _tentacleanusOption to $tentacles[_i].id>> <span @class="($lastOptions.anus isnot _anusOptions ?'gold':'')">_The $tentacles[_i].fullDesc rubs itself between your butt cheeks.</span> <<break>> <</if>> <<case "struggle" "struggle_pen">> <<set $_changetype to true>><<anusActionInitStruggle>> <<break>> <<default>> <<set $_changetype to true>><<anusActionInit>> <<break>> <</switch>> <</for>> <</if>> <<if $_changetype isnot true>> <<anusActionsTentacle>> <<if Object.keys(_anusaction).length gt 0>> <<if Object.values(_anusaction).includes($anusactiondefault) is false or _args[0] is true or $anusactiondefault is "rest">> <<set _defaultsCombatAction to "anusaction">> <<set _actionsSet = DefaultActions.get($defaultsCombatType, "Tentacles", _defaultsCombatAction)>> <<set _pass to false>> <<for _set to 0; _set lt _actionsSet.length; _set++>> <<if ["anusrub","anuspullaway","anuscooperate"].includes(_actionsSet[_set]) and _tentacleanusOption isnot undefined>> <<if Object.values(_anusaction).includes(_actionsSet[_set] + _tentacleanusOption)>> <<set $anusactiondefault to clone(_actionsSet[_set] + _tentacleanusOption)>> <<set _pass to true>> <<break>> <</if>> <<elseif Object.values(_anusaction).includes(_actionsSet[_set])>> <<set $anusactiondefault to clone(_actionsSet[_set])>> <<set _pass to true>> <<break>> <</if>> <</for>> <<if _pass is false>> <<set $anusactiondefault to Object.values(_anusaction)[0]>> <</if>> <</if>> <<set $anusaction to $anusactiondefault>> <<set _textColor to combatListColor('anusaction', (Object.values(_anusaction).includes($anusaction) ? $anusaction : Object.values(_anusaction)[0]), "Tentacle")>> <div class="extraMargin"> <<generateCombatAction _anusaction "anusaction" "Tentacle">> </div> <<if $options.combatControls.includes("ists")>> <div id="anusactionDifficulty"> <<anusactionDifficultyTentacle>> </div> <</if>> <</if>> <<set $lastOptions.anus to clone(_anusOptions)>> <</if>> <<else>> <<timed 100ms>> <<run jQuery("#vaginaaction").remove();>> <</timed>> <</if>> <</widget>> <<widget "anusactionDifficultyTentacle">> /* <<if _args[0] is undefined>> <<set _diffAction to $anusaction>> <<else>> <<set _diffAction to _args[0]>> <</if>> <<switch (""+_diffAction).replace(/\d+/g,'')>> <</switch>> */ <</widget>> <<widget "anusActionsTentacle">> /*Generate Actions*/ <<set _anusaction to {}>> <<switch _anusOptions>> <<case "entrance" "imminent">> <<set _anusaction["Rest"] to "rest">> <<set _anusaction["Rub"] to "anusrub"+_tentacleanusOption>> <<if $leftleg isnot "grappled" or $rightleg isnot "grappled">> <<set _anusaction["Pull away"] to "anuspullaway"+_tentacleanusOption>> <</if>> <<case "penetrated">> <<set _anusaction["Take it"] to "take">> <<set _anusaction["Cooperate"] to "anuscooperate"+_tentacleanusOption>> <<case "anusrub">> <<set _anusaction["Rest"] to "rest">> <<set _anusaction["Rub"] to "anusrub"+_tentacleanusOption>> <</switch>> <</widget>> <<widget "chestActionInitTentacle">> <<set $chesttarget to "tentacles">> <<if $dissociation lte 1 and $orgasmdown lte 0 and ($pain lt 100 or $willpowerpain is undefined)>> <<for _i to 0; _i lt $tentacles.max; _i++>> <<switch $chestuse>> <<case "tentaclerub">> <<if $tentacles[_i].head is "chestrub">> <<set _chestOptions to "entrance">> <<set _tentaclechestOption to $tentacles[_i].id>> <span @class="($lastOptions.chest isnot _chestOptions ?'gold':'')">_The $tentacles[_i].fullDesc rubs itself between your chest.</span> <<break>> <</if>> <<case "penis">> <<set $_changetype to true>><<chestActionInit>> <<break>> <<case "struggle">> <</switch>> <</for>> <<if $_changetype isnot true>> <<chestActionsTentacle>> <<if Object.keys(_chestaction).length gt 0>> <<if $chestactiondefault is 0 or Object.values(_chestaction).includes($chestactiondefault) is false>> <<set $chestactiondefault to Object.values(_chestaction)[0]>> <</if>> <<set $chestaction to $chestactiondefault>> <<set _textColor to combatListColor('chestaction', (Object.values(_chestaction).includes($chestaction) ? $chestaction : Object.values(_chestaction)[0]), "Tentacle")>> <div class="extraMargin"> <<generateCombatAction _chestaction "chestaction" "Tentacle">> </div> <<if $options.combatControls.includes("ists")>> <div id="chestactionDifficulty"> <<chestactionDifficultyTentacle>> </div> <</if>> <</if>> <<set $lastOptions.chest to clone(_chestOptions)>> <</if>> <<else>> <<timed 100ms>> <<run jQuery("#chestaction").remove();>> <</timed>> <</if>> <</widget>> <<widget "chestactionDifficultyTentacle">> /* <<if _args[0] is undefined>> <<set _diffAction to $chestaction>> <<else>> <<set _diffAction to _args[0]>> <</if>> <<switch (""+_diffAction).replace(/\d+/g,'')>> <</switch>> */ <</widget>> <<widget "chestActionsTentacle">> /*Generate Actions*/ <<set _chestaction to {}>> <<switch _chestOptions>> <<case "chestrub">> <<set _chestaction["Rest"] to "rest">> <<set _chestaction["Rub"] to "chestrub"+_tentaclechestOption>> <</switch>> <</widget>> <<widget "actionsvorentacles">> <<animateCombat>> <<willpowerpain>> <<willpowerorgasm>> <<actioncarry>> <<actioncarrydrop>> <<combatstate>> <<carryblock>> <<if $trance lte 0 and $panicparalysis is 0 and $panicviolence is 0>> <<generateActionsVorentacles>> <</if>> <br> <</widget>> <<widget "generateActionsVorentacles">> <<set $combat to 1>> <<if _targetlist is undefined>> <<getTargetList>> <</if>> <div id="listContainer"> <div id="leftaction" @class="$options.combatControls + 'Control'"> <<if $lefttarget is "vore" or $tentacles.active is 0>> <<leftActionInitVore>> <<else>> <<leftActionInitTentacle>> <</if>> </div> <div id="rightaction" @class="$options.combatControls + 'Control'"> <<if $righttarget is "vore" or $tentacles.active is 0>> <<rightActionInitVore>> <<else>> <<rightActionInitTentacle>> <</if>> </div> <div id="feetaction" @class="$options.combatControls + 'Control'"> <<feetActionInitTentacle>> </div> <<if $mouthstate isnot 0 or !($dissociation lte 1 and $orgasmdown lte 0 and ($pain lt 100 or $willpowerpain is undefined))>> <div id="mouthaction" @class="$options.combatControls + 'Control'"> <<mouthActionInitTentacle>> </div> <</if>> <<if $penisstate isnot 0 and (playerHasStrapon() or $player.penisExist)>> <div id="penisaction" @class="$options.combatControls + 'Control'"> <<penisActionInitTentacle>> </div> <</if>> <<if $vaginastate isnot 0 and $player.vaginaExist>> <div id="vaginaaction" @class="$options.combatControls + 'Control'"> <<vaginaActionInitTentacle>> </div> <</if>> <<if $anusstate isnot 0>> <div id="anusaction" @class="$options.combatControls + 'Control'"> <<anusActionInitTentacle>> </div> <</if>> <<if $chestuse isnot 0 and $chestuse isnot "squeezed">> <div id="chestaction" @class="$options.combatControls + 'Control'"> <<chestActionInitTentacle>> </div> <</if>> </div> <</widget>><<widget "tentaclestart">> <<if $abomination isnot 1>> <<set $enemyarousalmax to 10000>> <</if>> <<set $tentacles to { "max": _args[0], "active": _args[0], }>> <<if _args[0]>> <<if _args[2]>> <<set _tentacleType to _args[2]>> <<else>> <<set _tentacleType to "tentacle">> <</if>> <<if ["root","shoot"].includes(_tentacleType)>> <<set _babyType to "vine">> <<elseif _tentacleType is "tendril">> <<set _babyType to "tentacle">> <<else>> <<set _babyType to _tentacleType>> <</if>> <<if _args[3] isnot "tainted" and ["root","shoot","vine","metal"].includes(_tentacleType) or _args[3] is "metal">> <<set $banishDisable to true>> <</if>> /* Deciding if tentacle templates should be defined somewhere else still */ /* Argument 0 is the number of tentacles. * Argument 1 is health. * Argument 2 is tentacle type, which can be replaced with "vines", "machines" etc later on. Optional, unless also using Argument 3. * Argument 3 is variant and will give different offspring as well as allowing different batches of descriptions. * Argument 4 is whether or not the variant impacts the full description and offspring. If Argument 4 is used, Argument 3 will only impact which description batches are part of _tentacledescs. If Argument 4 is "desc", Argument 3 will impact description batches and variant, but not offspring.*/ <<set _tentacledescs to [ {"desc":"slimy","baby":0,"size":2,"traits":[]}, {"desc":"sticky","baby":0,"size":2,"traits":[]}, {"desc":"thick","baby":_babyType,"size":3,"traits":[]}, {"desc":"throbbing","baby":0,"size":2,"traits":[]}, {"desc":"slick","baby":0,"size":2,"traits":[]}, {"desc":"moist","baby":0,"size":2,"traits":[]}, {"desc":"quivering","baby":0,"size":2,"traits":[]}, {"desc":"sodden","baby":0,"size":2,"traits":[]}, {"desc":"shivering","baby":0,"size":2,"traits":[]}, {"desc":"shuddering","baby":0,"size":2,"traits":[]}, {"desc":"convulsing","baby":0,"size":2,"traits":["hypno"]}, {"desc":"undulating","baby":0,"size":2,"traits":[]}, {"desc":"damp","baby":0,"size":2,"traits":[]}, {"desc":"bulbous","baby":0,"size":3,"traits":[]}, {"desc":"gyrating","baby":0,"size":2,"traits":["hypno"]}, {"desc":"large","baby":_babyType,"size":3,"traits":[]}, {"desc":"bumpy","baby":0,"size":2,"traits":[]}, {"desc":"thin","baby":0,"size":1,"traits":[]}, {"desc":"narrow","baby":0,"size":1,"traits":[]}, {"desc":"squishy","baby":0,"size":2,"traits":[]}, {"desc":"rough","baby":0,"size":2,"traits":["pain"]}, ]>> <<if _args[3]>> <<if _args[3] is "pale">> <<set _tentacledescs.push( {"desc":"ghostly","baby":_babyType,"size":2,"traits":[]}, {"desc":"translucent","baby":0,"size":1,"traits":["hypno"]}, {"desc":"twitching","baby":0,"size":2,"traits":[]}, {"desc":"manic","baby":0,"size":3,"traits":[]}, {"desc":"cloudy","baby":_babyType,"size":3,"traits":[]}, {"desc":"ethereal","baby":0,"size":1,"traits":[]}, {"desc":"incandescent","baby":0,"size":3,"traits":["hypno"]}, {"desc":"iridescent","baby":_babyType,"size":2,"traits":["hypno"]}, {"desc":"searing","baby":0,"size":3,"traits":["pain"]}, )>> <<elseif _args[3] is "vine">> <<set _tentacledescs.push( {"desc":"flowering","baby":_babyType,"size":3,"traits":[]}, {"desc":"blossoming","baby":0,"size":3,"traits":[]}, {"desc":"wooden","baby":0,"size":2,"traits":[]}, {"desc":"blooming","baby":_babyType,"size":2,"traits":["hypno"]}, {"desc":"climbing","baby":0,"size":2,"traits":[]}, {"desc":"mossy","baby":0,"size":2,"traits":[]}, {"desc":"grassy","baby":0,"size":2,"traits":[]}, {"desc":"thorny","baby":0,"size":2,"traits":["pain"]}, {"desc":"pistil","baby":_babyType,"size":1,"traits":[]}, {"desc":"leafy","baby":0,"size":1,"traits":[]}, {"desc":"sprouting","baby":0,"size":1,"traits":[]}, {"desc":"sapling","baby":0,"size":1,"traits":[]}, )>> <<elseif _args[3] is "metal">> <<set _tentacledescs.push( {"desc":"jerking","baby":0,"size":3,"traits":[]}, {"desc":"plated","baby":0,"size":3,"traits":[]}, {"desc":"sparking","baby":0,"size":2,"traits":["pain"]}, {"desc":"shiny","baby":0,"size":2,"traits":[]}, {"desc":"labelled","baby":_babyType,"size":2,"traits":[]}, {"desc":"jolting","baby":0,"size":2,"traits":["pain"]}, {"desc":"rusted","baby":0,"size":2,"traits":[]}, {"desc":"wired","baby":0,"size":1,"traits":["hypno"]}, {"desc":"stainless","baby":0,"size":1,"traits":[]}, )>> <<elseif _args[3] is "tainted">> <<set _tentacledescs.push( {"desc":"strange-flowering","baby":_babyType,"size":3,"traits":["hypno"]}, {"desc":"jagged","baby":0,"size":3,"traits":["pain"]}, {"desc":"blossoming","baby":0,"size":3,"traits":[]}, {"desc":"burnt","baby":0,"size":2,"traits":["pain"]}, {"desc":"witchblooming","baby":_babyType,"size":2,"traits":["pain", "hypno"]}, {"desc":"crumbling","baby":_babyType,"size":2,"traits":["pain"]}, {"desc":"glowing","baby":0,"size":2,"traits":["hypno"]}, {"desc":"spined","baby":0,"size":2,"traits":["pain"]}, {"desc":"thorny","baby":0,"size":2,"traits":["pain"]}, {"desc":"leaking","baby":_babyType,"size":1,"traits":[]}, {"desc":"desiccated","baby":0,"size":1,"traits":["pain"]}, {"desc":"wilting","baby":0,"size":1,"traits":[]}, {"desc":"stunted","baby":0,"size":1,"traits":[]}, )>> <</if>> <</if>> <<set _tentacledescs to shuffle(_tentacledescs)>> <<for _i to 0; _i lt _args[0]; _i++>> <<if _i gte _tentacledescs.length - 1>> <<error { message : `Passage ${$passage} attempted to generate ${_args[0]} tentacles, when max possible tentacles is ${_tentacledescs.length - 1}`, source : Utils.GetStack() }>> <<break>> <</if>> <<set _tentacledata to _tentacledescs[_i]>> <<set _tentacle to { "desc": (_args[3] and (!_args[4] or _args[4] is "desc") ? _args[3] + " " : "" ) + _tentacledata.desc, "fullDesc": (_args[3] and (!_args[4] or _args[4] is "desc") ? _args[3] + " " : "" ) + _tentacledata.desc + " " + _tentacleType, "type": _tentacleType, "tentaclehealth": _args[1], "tentaclehealthstart": _args[1], "shaft": 0, "head": 0, "id": "tentacle"+_i, "baby": (_args[3] and (!_args[4] or _args[4] is "baby") and _tentacledata.baby isnot 0 ? _args[3] + " " + _tentacledata.baby : _tentacledata.baby ), "babychance": 400, "size": _tentacledata.size, "traits": _tentacledata.traits }>> <<set $tentacles[_i] to clone(_tentacle)>> <</for>> <</if>> <<set $combat to 1>> <<if $rng gte 51>> <<set $position to "missionary">> <<else>> <<set $position to "doggy">> <</if>> <<wetnessCalculate>> <<resetLastOptions>> <<getCombatDefaultsType>> <<if !$tentacleColour>> <<if $tentacles[0].fullDesc.includes("pale")>> <<set $tentacleColour to "tentacles-wraith">> <<elseif $tentacles[0].fullDesc.includes("metal")>> <<set $tentacleColour to "tentacles-red">> <<elseif $tentacles[0].type>> <<switch $tentacles[0].type>> <<case "vine" "shoot">> <<set $tentacleColour to "tentacles-vines">> <<case "root">> <<set $tentacleColour to "tentacles-roots">> <<default>> <<set $tentacleColour to "tentacles-purple">> <</switch>> <<else>> <<set $tentacleColour to "tentacles-purple">> <</if>> <</if>> <</widget>> <<widget "tentacles">> <div @class="($debugLines ? 'debugLines-tentacles' : '')"> <<for _i to 0; _i lt $tentacles.max; _i++>> <<set _tentacle to $tentacles[_i]>> <<if _tentacle isnot undefined>> <<tentacleadv _tentacle>> <<set _tentacle.tentaclehealth -= 0.2>> <</if>> <</for>> <<if $panicattacks gte 1 and $panicviolence is 0 and $panicparalysis is 0 and $controlled is 0 and _panicchecked isnot true>> <<rng>> <<if $rng is 100>> <<set $panicparalysis to 5>> <</if>> <<set _panicchecked to true>> <</if>> <<if $panicattacks gte 2 and $panicviolence is 0 and $panicparalysis is 0 and $controlled is 0 and _paniccheckedviolence isnot true>> <<rng>> <<if $rng is 100>> <<set $panicviolence to 3>> <</if>> <<set _paniccheckedviolence to true>> <</if>> <<if $arousal gte $arousalmax and $orgasmdown lte 0>> <<orgasm>> <</if>> <br> </div> <</widget>> <<widget "effectstentacles">> <<effectspain>> <<effectsorgasm>> <<effectsdissociation>> <div @class="($debugLines ? 'debugLines-effectstentacleadv' : '')"> <<for _i to 0; _i lt $tentacles.max; _i++>> <<if $tentacles[_i] isnot undefined>> <<set _tentacle to $tentacles[_i]>> <<effectstentacleadv _tentacle>> <</if>> <</for>> </div> <br> <</widget>> <<widget "actionstentacles">> <div @class="($debugLines ? 'debugLines-actionstentacles' : '')"> <<set $enemyarousal to $arousal>> <<if $vorecreature is 0 and _swarmcreature is undefined>> <<animateCombat>> <</if>> <<willpowerpain>> <<willpowerorgasm>> <<actioncarry>> <<actioncarrydrop>> <<combatstate>> <<carryblock>> <<if $trance lte 0 and $panicparalysis is 0 and $panicviolence is 0>> <<generateActionsTentacle>> <</if>> </div> <br><br> <</widget>> <<widget "actionstentaclespenis">> /* unused */ <<for _i to 0; _i lt $tentacles.max; _i++>> <<if $tentacles[_i] isnot undefined>> <<set _tentacle to $tentacles[_i]>> <<actionstentacleadvpenis _tentacle>> <</if>> <</for>> <br> <</widget>> <<widget "actionstentacleslegs">> /* unused */ <<for _i to 0; _i lt $tentacles.max; _i++>> <<if $tentacles[_i] isnot undefined>> <<set _tentacle to $tentacles[_i]>> <<actionstentacleadvlegs _tentacle>> <</if>> <</for>> <</widget>> <<widget "actionstentaclesrighthand">> /* unused */ <<for _i to 0; _i lt $tentacles.max; _i++>> <<if $tentacles[_i] isnot undefined>> <<set _tentacle to $tentacles[_i]>> <<actionstentacleadvrighthand _tentacle>> <</if>> <</for>> <</widget>> <<widget "actionstentacleslefthand">> /* unused */ <<for _i to 0; _i lt $tentacles.max; _i++>> <<if $tentacles[_i] isnot undefined>> <<set _tentacle to $tentacles[_i]>> <<actionstentacleadvlefthand _tentacle>> <</if>> <</for>> <</widget>> <<widget "upperslither">> <<if $worn.over_upper.name isnot "naked">> then <<slithers>> beneath your $worn.over_upper.name<<if $worn.upper.name isnot "naked">> and $worn.upper.name<</if>> <<elseif $worn.upper.name isnot "naked">> then <<slithers>> beneath your $worn.upper.name <<else>> then <<slithers>> across your bare skin <</if>> <</widget>> <<widget "lowerslither">> <<if $worn.over_lower.name isnot "naked">> then <<slithers>> beneath your $worn.over_lower.name<<if $worn.lower.name isnot "naked">> and $worn.lower.name<</if>> <<elseif $worn.lower.name isnot "naked">> then <<slithers>> beneath your $worn.lower.name <<else>> then <<slithers>> across your bare skin <</if>> <</widget>> <<widget "underslither">> <<if $worn.lower.name isnot "naked">> <<if !$worn.under_lower.type.includes("naked")>> then <<slithers>> beneath your $worn.lower.name and $worn.under_lower.name <<elseif playerChastity()>> then <<slithers>> beneath your $worn.lower.name against your <<print $worn.genitals.name>> <<else>> <</if>> <<else>> <<if !$worn.under_lower.type.includes("naked")>> then <<slithers>> beneath your $worn.under_lower.name <<if playerChastity("hidden")>> against your <<print $worn.genitals.name>>. <</if>> <<elseif $worn.under_lower.type.includes("naked") and playerChastity("hidden")>> then <<slithers>> against your <<print $worn.genitals.name>> <<else>> then <<slithers>> across your bare skin <</if>> <</if>> <</widget>> <<widget "statetentacles">> <<for _j to 0; _j lt $tentacles.max; _j++>> <<if $tentacles[_j] isnot undefined>> <<if $tentacles[_j].shaft is "finished" and $tentacles[_j].name isnot "finished">> <<set $tentacles.active -= 1>> <<set $tentacles[_j].name to "finished">> <</if>> <</if>> <</for>> <<sexcheck>> <<if $ejaculating isnot 1>> You count <span class="blue"><<number $tentacles.active>></span> <<print $tentacles[0].type>><<if $tentacles.active isnot 1>>s<</if>> surrounding you. <br><br> <</if>> <</widget>> <<widget "leftarmtentacledisable">> <<for _j to 0; _j lt $tentacles.max; _j++>> <<if $tentacles[_j] isnot undefined>> <<if $tentacles[_j].id is $leftarm>> <<set $tentacles[_j].head to 0>> <</if>> <</if>> <</for>> <</widget>> <<widget "rightarmtentacledisable">> <<for _j to 0; _j lt $tentacles.max; _j++>> <<if $tentacles[_j] isnot undefined>> <<if $tentacles[_j].id is $rightarm>> <<set $tentacles[_j].head to 0>> <</if>> <</if>> <</for>> <</widget>> <<widget "feettentacledisable">> <<for _j to 0; _j lt $tentacles.max; _j++>> <<if $tentacles[_j] isnot undefined>> <<if $tentacles[_j].id is $feetuse>> <<set $tentacles[_j].head to 0>> <</if>> <</if>> <</for>> <</widget>><<if $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<enable_rescue>> <<maninit>> <<set $NPCList[0].chest to "none">> <<He>> reaches toward you. <<set $NPCList[0].fullDescription to "Tutorial " + ($NPCList[0].pronoun is "m"?"man":"woman")>> <</if>> <<effects>> <<effectsman>><<man>> <<stateman>> <br><br> __Combat Tutorial__ <br> <<if $gamemode is "soft">> <i>Your character will be quite passive at first. More actions will become available as you become more promiscuous and comfortable being assertive. <br><br> <span class="sub">Assertive</span> and <span class="meek">meek</span> actions will arouse your partner, bringing them closer to orgasm. They'll also make them trust you more. <br><br> <span class="brat">Bratty</span> acts will irritate your partner. Use them too frequently and they will become rougher and less trusting. <br><br> Some actions have only a chance of working, based on your skill with the bodypart being used and how trusting your partner is. <br><br> Each part of your body can perform one action per turn. Choose your actions, then click next or press enter to continue.</i> <br><br> <<else>> <i>There are three common ways to escape an attacker; fight them off, sexually satisfy them, or be rescued. <span class="def">Defiant</span> acts will hurt them. Hurt them enough and you'll escape. However, <span class="def">defiant</span> acts will anger them, making them more violent. <br><br> They'll be happy to use you as a passive toy, but <span class="sub">submissive</span> acts will make them cum faster. Once spent, they'll usually leave you alone. Some <span class="sub">submissive</span> acts will occupy their genitals, so they can't use them in more dangerous ways. <br><br> <span class="meek">Meek</span> acts will endear you to them without being directly sexual. <span class="meek">Meek</span> acts will make them trust you more, and often have effects which may help you. <br><br> <span class="brat">Bratty</span> acts protect you in ways that defy your attacker's will without hurting them. <span class="brat">Bratty</span> acts will reduce trust and increase anger. <br><br> Finally, you could scream for help. Whether it will help or make things worse depends on who's around to hear. Screaming at night or in the wilderness will only anger your attacker. You won't be able to scream (or speak) if your attacker has you gagged. For this encounter, screaming will get you rescued. Each part of your body can perform one action per turn. Choose your actions, then click next or press enter to continue.</i> <br><br> <</if>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Tutorial Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Tutorial]]>><</link>></span><<nexttext>> <</if>><<effects>><<set $eventskip to 1>> <<if $enemyarousal gte $enemyarousalmax>> <<ejaculation>> <<if $enemyanger gte 60>> "That's what you get, slut." <<He>> leaves you lying on the ground. <<else>> "Good <<girl>>. Here's a little something for the trouble." <<He>> leaves you lying on the ground. <br><br> <<tearful>> you climb to your knees. You've gained <<moneyGain 5 false false `"tutorial" + ($NPCList[0].pronoun is "m"?"Man":"Woman")`>>. <</if>> <br><br> <<clotheson>> <<endcombat>> <<if $gamemode is "soft">> <<generate1>><<person1>>A <<person>> rushes over to you. "Are you okay?" <<He>> offers an arm to help you up. <br><br> <<else>> <<generate1>><<person1>>A <<person>> rushes over to you. "I saw what that fiend did. Are you okay?" <<He>> offers an arm to help you up. <br><br> <</if>> <i>Being attacked will damage your sense of control. You will become more vulnerable to trauma as your control fails. Actions marked as "promiscuity", "exhibitionism" or "deviancy" will lower stress and trauma. They will also restore your sense of control. Committing these actions with enough frequency will unlock lewder actions of the same type, but make weaker actions lose effectiveness. If you're not careful, you'll be unable to reach the controlled state without shameless and outrageous acts.</i> <br><br> <<link [[Flirt|Tutorial Flirt]]>><<set $spraymax++>><<spray 5>><</link>><<promiscuous1>> <br> <<link [[Thank <<him>>|Tutorial Thank]]>><<set $spraymax++>><<spray 5>><</link>> <br> <<elseif $enemyhealth lte 0>> The <<person>> recoils in pain. "You're fucking nuts," <<he>> says, limping away. <<tearful>> you climb to your knees. <br><br> <<clotheson>> <<endcombat>> <<if $gamemode is "soft">> <<generate1>><<person1>>A <<person>> rushes over to you. "Are you okay?" <<He>> offers an arm to help you up. <br><br> <<else>> <<generate1>><<person1>>A <<person>> rushes over to you. "I saw what that fiend did. Are you okay?" <<He>> offers an arm to help you up. <br><br> <</if>> <i>Being attacked will damage your sense of control. You will become more vulnerable to trauma as your control fails. Actions marked as "promiscuity", "exhibitionism", or "deviancy" will lower stress and trauma. They will also restore your sense of control. Committing these actions with enough frequency will unlock lewder actions of the same type, but make weaker actions lose effectiveness. If you're not careful, you'll be unable to reach the controlled state without shameless and outrageous acts.</i> <br><br> <<link [[Flirt|Tutorial Flirt]]>><<set $spraymax++>><<spray 5>><</link>><<promiscuous1>> <br> <<link [[Thank <<him>>|Tutorial Thank]]>><<set $spraymax++>><<spray 5>><</link>> <br> <<elseif $rescue is 1 and $alarm is 1>> <<set $rescued += 1>> <<He>> notices several heads turning in response to your cry, and relents in <<his>> assault before making a hurried escape. <br><br> <<tearful>> you climb to your knees. <br><br> <<clotheson>> <<endcombat>> <<if $gamemode is "soft">> <<generate1>><<person1>>A <<person>> rushes over to you. "Are you okay?" <<He>> offers an arm to help you up. <br><br> <<else>> <<generate1>><<person1>>A <<person>> rushes over to you. "I saw what that fiend did. Are you okay?" <<He>> offers an arm to help you up. <br><br> <</if>> <i>Being attacked will damage your sense of control. You will become more vulnerable to trauma as your control fails. Actions marked as "promiscuity", "exhibitionism", or "deviancy" will lower stress and trauma. They will also restore your sense of control. Committing these actions with enough frequency will unlock lewder actions of the same type, but make weaker actions lose effectiveness. If you're not careful, you'll be unable to reach the controlled state without shameless and outrageous acts.</i> <br><br> <<link [[Flirt|Tutorial Flirt]]>><<set $spraymax++>><<spray 5>><</link>><<promiscuous1>> <br> <<link [[Thank <<him>>|Tutorial Thank]]>><<set $spraymax++>><<spray 5>><</link>> <br> <</if>><<set $outside to 1>><<set $location to "town">><<effects>><<set $bus to "domus">> <<wearProp "pepperspray">> <<if $tutorialExit is undefined>><<set $tutorialExit to "Domus Street">><</if>> You take <<his>> arm and hoist yourself up and against <<him>>, forcing <<him>> to catch you in an embrace to stop you falling. You look <<him>> in the eyes. "I feel safe now," you say. <<promiscuity1>> <<He>> blushes. "I-I'm glad you're alright," <<he>> says as <<he>> slowly withdraws <<his>> arms from you, making sure you're steady. <<He>> glances around. "Here." <<He>> hands you a small cylinder. "Be discreet. It's not legal, and there's only enough for one use." <<gspraymax>> <br><br> <<if $tutorialExit.includes("Robin")>> "You better get back to your friend, <<nnpc_hes "Robin">> the one that called me over. <<nnpc_He "Robin">> was pale as a ghost and could hardly form the words. I need to get going. You be careful." <<else>> "I need to get going. You be careful." <</if>> <br><br> <<link [[Next|$tutorialExit]]>><<endevent>><<set $eventskip to 1>><<unset $tutorialExit>><<set $tutorial to 1>><</link>><<set $outside to 1>><<set $location to "town">><<effects>><<set $bus to "domus">> <<if $tutorialExit is undefined>><<set $tutorialExit to "Domus Street">><</if>> <<wearProp "pepperspray">> You take <<his>> arm and <<he>> helps lift you to your feet. "Thank you," you say. "I'll be okay now." <br><br> <<He>> glances around. "Here." <<He>> hands you a small cylinder. "Be discreet. It's not legal, and there's only enough for one use." <<gspraymax>> <br><br> <<if $tutorialExit isnot "Domus Street">> "You better get back to your friend, <<nnpc_hes "Robin">> the one that called me over. <<nnpc_He "Robin">> was pale as a ghost and could hardly form the words. I need to get going. You be careful." <<else>> "I need to get going. You be careful." <</if>> <br><br> <<link [[Next|$tutorialExit]]>><<endevent>><<set $eventskip to 1>><<unset $tutorialExit>><<set $tutorial to 1>><</link>><<widget "generateActionsVore">> <<set $combat to 1>> <<if _targetlist is undefined>> <<getTargetList>> <</if>> <div id="listContainer"> <div id="leftaction" @class="$options.combatControls + 'Control'"> <<leftActionInitVore>> </div> <div id="rightaction" @class="$options.combatControls + 'Control'"> <<rightActionInitVore>> </div> <<if ($mouthuse is 0 and !($dissociation lte 1 and $orgasmdown lte 0 and ($pain lt 100 or $willpowerpain is undefined)))>> <div id="mouthaction" @class="$options.combatControls + 'Control'"> <<mouthActionInit>> </div> <</if>> </div> <</widget>> <<widget "leftActionInitVore">> <<set $lefttarget to "vore">> <<switch $leftarm>> <<case 0>> <<set $lefttarget to "vore">> <<if $orgasmdown gte 1>> <<set _leftOptions to "orgasm">> <span class="lewd">Your left arm is free, but you can't stop the spasms.</span> <<elseif $pain gte 100 and $willpowerpain is 0>> <<set _leftOptions to "pain">> <span class="red">Your left arm is free, but hurts to move.</span> <<elseif $dissociation gte 2>> <<set _leftOptions to "unreal">> <span class="pink">Your left arm is free, but doesn't feel real.</span> <<else>> <<if _targetYourself is true and _targetnumber gt 1>> <<set _targetlistarms["Yourself"] to "self">> <</if>> <<if not $options.combatControls.includes("adio") and _targetnumber gt 1>> <<targetListBox "left" _targetlistarms>> <</if>> <<set _leftOptions to "free">> <span @class="($lastOptions.left isnot _leftOptions ?'gold':'')">Your left arm is free.</span> <<if $options.combatControls.includes("adio") and _targetnumber gt 1>> <<targetListBox "left" _targetlistarms>> <<if $options.combatControls is "radio">><br><</if>> <</if>> <</if>> <<case "bound">> <<set _leftOptions to "bound">> <<if $orgasmdown gte 1>> <span class="lewd">Your left arm jerks against its bonds.</span> <<elseif $pain gte 100 and $willpowerpain is 0>> <span class="red">Your left arm is held in a painful bind.</span> <<elseif $dissociation gte 2>> <span class="pink">Your left arm lies limp in its bonds.</span> <<else>> <span @class="($lastOptions.left isnot _leftOptions ?'gold':'')">Your left arm is bound.</span> <</if>><<if $options.combatControls.includes("adio")>><br><</if>> <<case "trapped">> <<set _leftOptions to "trapped">> <span @class="($lastOptions.left isnot _leftOptions ?'gold':'purple')">Your left arm is trapped by the $vorecreature.</span><<if $options.combatControls.includes("adio")>><br><</if>> <<case "grappled" "penis" "othervagina" "vagina" "coverpenis" "anus" "behind">> <<set $_changetype to true>><<leftActionInit>> <<case "struggle">> <<set $_changetype to true>><<leftActionInitStruggle>> <<case "swarmgrappled">> <<set $_changetype to true>><<leftActionInitSwarm>> <<case "mechgrappled">> <<set $_changetype to true>><<leftActionInitMachine>> <<default>> <<set $_changetype to true>><<leftActionInitTentacle>> <</switch>> <<if $_changetype isnot true>> <<leftActionsVore>> <<if Object.keys(_leftaction).length gt 0>> <<if !(Object.values(_leftaction).includes($leftactiondefault))>> <<set $leftactiondefault to "rest">> <</if>> <<set $leftaction to $leftactiondefault>> <div class="extraMargin"> <<generateCombatAction _leftaction "leftaction" "Vore">> </div> <<if $options.combatControls.includes("ists")>> <div id="leftactionDifficulty"> <<leftactionDifficulty>> </div> <</if>> <</if>> <<set $lastOptions.left to clone(_leftOptions)>> <</if>> <</widget>> <<widget "leftactionDifficultyVore">>/* Blank widget to pacify the JavaScript Gods. */ <!-- Does nothing --> <</widget>> <<widget "leftActionsVore">> <<set _leftaction to {}>> <<if !(["orgasm", "pain", "unreal"].includes(_leftOptions))>> <<set _leftaction["Rest"] to "rest">> <</if>> <<switch _leftOptions>> <<case "free">> <<set _leftaction["Escape the "+$vorecreature] to "leftescape">> <<if $vorestage lte 6>> <<set _leftaction["Hold on to the "+$vorecreature] to "lefthold">> <</if>> <<if $rightarm is "trapped">> <<set _leftaction["Free your right arm"] to "leftvorefree">> <</if>> <<case "bound" "trapped">> <<case "orgasm">> <<set _leftaction["Fold"] to "leftfold">> <<set _leftaction["Grip"] to "leftgrip">> <<case "pain">> <<set _leftaction["Struggle"] to "leftstruggleweak">> <<set _leftaction["Protect"] to "leftprotect">> <<case "unreal">> <<set _leftaction["Poke yourself"] to "leftpoke">> <<set _leftaction["Keep your arms out of the way"] to "leftcurl">> <</switch>> <</widget>> <<widget "rightActionInitVore">> <<set $righttarget to "vore">> <<switch $rightarm>> <<case 0>> <<if $orgasmdown gte 1>> <<set _rightOptions to "orgasm">> <span class="lewd">Your right arm is free, but you can't stop the spasms.</span> <<elseif $pain gte 100 and $willpowerpain is 0>> <<set _rightOptions to "pain">> <span class="red">Your right arm is free, but hurts to move.</span> <<elseif $dissociation gte 2>> <<set _rightOptions to "unreal">> <span class="pink">Your right arm is free, but doesn't feel real.</span> <<else>> <<if _targetYourself is true and _targetnumber gt 1>> <<set _targetlistarms["Yourself"] to "self">> <</if>> <<if not $options.combatControls.includes("adio") and _targetnumber gt 1>> <<targetListBox "right" _targetlistarms>> <</if>> <<set _rightOptions to "free">> <span @class="($lastOptions.right isnot _rightOptions ?'gold':'')">Your right arm is free.</span> <<if $options.combatControls.includes("adio") and _targetnumber gt 1>> <<targetListBox "right" _targetlistarms>> <<if $options.combatControls is "radio">><br><</if>> <</if>> <</if>> <<case "bound">> <<set _rightOptions to "bound">> <<if $orgasmdown gte 1>> <span class="lewd">Your right arm jerks against its bonds.</span> <<elseif $pain gte 100 and $willpowerpain is 0>> <span class="red">Your right arm is held in a painful bind.</span> <<elseif $dissociation gte 2>> <span class="pink">Your right arm lies limp in its bonds.</span> <<else>> <span @class="($lastOptions.right isnot _rightOptions ?'gold':'')">Your right arm is bound.</span> <</if>> <<case "trapped">> <<set _rightOptions to "trapped">> <span @class="($lastOptions.right isnot _rightOptions ?'gold':'purple')">Your right arm is trapped by the $vorecreature.</span><br> <<case "grappled" "penis" "othervagina" "vagina" "coverpenis" "anus" "behind">> <<set $_changetype to true>><<rightActionInit>> <<case "struggle">> <<set $_changetype to true>><<rightActionInitStruggle>> <<case "swarmgrappled">> <<set $_changetype to true>><<rightActionInitSwarm>> <<case "mechgrappled">> <<set $_changetype to true>><<rightActionInitMachine>> <<default>> <<set $_changetype to true>><<rightActionInitTentacle>> <</switch>> <<if $_changetype isnot true>> <<rightActionsVore>> <<if Object.keys(_rightaction).length gt 0>> <<if !(Object.values(_rightaction).includes($rightactiondefault))>> <<set $rightactiondefault to "rest">> <</if>> <<set $rightaction to $rightactiondefault>> <div class="extraMargin"> <<generateCombatAction _rightaction "rightaction" "Vore">> </div> <<if $options.combatControls.includes("ists")>> <div id="rightactionDifficulty"> <<rightactionDifficulty>> </div> <</if>> <</if>> <<set $lastOptions.right to clone(_rightOptions)>> <</if>> <</widget>> <<widget "rightactionDifficultyVore">>/* But seriously, not having this blank widget will cause red blocks of error in the "lists" actions types */ <!-- Does nothing --> <</widget>> <<widget "rightActionsVore">> <<set _rightaction to {}>> <<if !(["orgasm", "pain", "unreal"].includes(_rightOptions))>> <<set _rightaction["Rest"] to "rest">> <</if>> <<switch _rightOptions>> <<case "free">> <<set _rightaction["Escape the "+$vorecreature] to "rightescape">> <<if $vorestage lte 6>> <<set _rightaction["Hold on to the "+$vorecreature] to "righthold">> <</if>> <<if $rightarm is "trapped">> <<set _rightaction["Free your right arm"] to "rightvorefree">> <</if>> <<case "bound" "trapped">> <<case "orgasm">> <<set _rightaction["Fold"] to "rightfold">> <<set _rightaction["Grip"] to "rightgrip">> <<case "pain">> <<set _rightaction["Struggle"] to "rightstruggleweak">> <<set _rightaction["Protect"] to "rightprotect">> <<case "unreal">> <<set _rightaction["Poke yourself"] to "rightpoke">> <<set _rightaction["Keep your arms out of the way"] to "rightcurl">> <</switch>> <</widget>><<widget "vore">> <<rng>> <<if $vorestage is 1>> Your thighs are gripped by the $vorecreature's mouth, your shins and feet at the mercy of its probing tongue. <<neutral 4>> <<elseif $vorestage is 2>> Your waist is gripped by the $vorecreature's mouth, your delicate parts at the mercy of its slippery tongue. <<neutral 2 "genitals">><<neutral 2 "bottom">> <<elseif $vorestage is 3>> Your chest is gripped by the $vorecreature's mouth, your body at the mercy of its slimy tongue. <<neutral 2 "breasts">><<neutral 3 "genitals">><<neutral 3 "bottom">> <<elseif $vorestage is 4>> Your shoulders are gripped by the $vorecreature's mouth, your body at the mercy of its intrusive tongue. <<neutral 3 "breasts">><<neutral 4 "genitals">><<neutral 4 "bottom">> <<elseif $vorestage is 5>> Your entire body is in the $vorecreature's mouth. Its slimy tongue presses against your whole body. <<neutral 4 "breasts">><<neutral 5 "genitals">><<neutral 5 "bottom">> <<elseif $vorestage is 6>> You are in the $vorecreature's gullet, pushed along by movements in the walls. <<neutral 5 "breasts">><<neutral 6 "genitals">><<neutral 6 "bottom">> <<elseif $vorestage is 7>> You are in the $vorecreature's stomach. It's a struggle to keep your head above the slimy liquid. <<if $vorecreature is "oyster" and $rng lte 10 and $pearlChance is undefined>> <<wearProp "oyster pearl">> You feel something round and smooth pressing against your body. You grab it and investigate it. <span class="green">You found a rare pearl.</span> It's going to fetch a tidy sum. <<tending_give oyster_pearl 1>> <<set $pearlChance to 1>> <</if>> <<neutral 6 "breasts">><<neutral 7 "genitals">><<neutral 7 "bottom">> <</if>> <<if $vorestage is 1>> <<if ($vorestruggle * currentSkillValue('physique')) gte $vorestrength>> <<if $vorestruggle is 2>> You push down on the $vorecreature's maw with both your arms, <span class="green">preventing it from swallowing you further.</span> <<elseif $vorestruggle is 1>> You push down on the $vorecreature's maw with one arm, <span class="green">preventing it from swallowing you further.</span> <<else>> There's nothing preventing the $vorecreature from swallowing you further, <span class="green">but it doesn't take advantage of your vulnerability.</span> <</if>> <<else>> <<set $vorestage += 1>> <<if $vorestruggle is 2>> You push down on the $vorecreature's maw with both your arms,<span class="blue"> but it isn't enough.</span> You slide deeper into its mouth, until it swallows you up to the waist. <<elseif $vorestruggle is 1>> You push down on the $vorecreature's maw with one arm,<span class="blue"> but it isn't enough.</span> You slide deeper into its mouth, until it swallows you up to the waist. <<else>> There's nothing preventing the $vorecreature from swallowing you further, <span class="blue">and it takes advantage of your vulnerability.</span> You slide deeper into its mouth, until it swallows you up to the waist. <</if>> <<if $voretrait gte 1 and random(1, 3) is 3>> You shiver at the sensation.<<arousal 100>> <</if>> <</if>> <<elseif $vorestage is 2>> <<if $worn.over_lower.integrity gt 0>> <<set $worn.over_lower.integrity -= 1>> <<elseif $worn.lower.integrity lte 0>> <<set $worn.lower.integrity -= 1>> <<elseif $worn.under_lower.integrity lte 0>> <<set $worn.under_lower.integrity -= 1>> <</if>> <<if ($vorestruggle * currentSkillValue('physique')) gte $vorestrength>> <<if $vorestruggle is 2>> You push down on the $vorecreature's maw with both your arms, <span class="green">preventing it from swallowing you further.</span> <<elseif $vorestruggle is 1>> You push down on the $vorecreature's maw with one arm, <span class="green">preventing it from swallowing you further.</span> <<else>> There's nothing preventing the $vorecreature from swallowing you further, <span class="green">but it doesn't take advantage of your vulnerability.</span> <</if>> <<else>> <<set $vorestage += 1>> <<if $vorestruggle is 2>> You push down on the $vorecreature's maw with both your arms,<span class="purple"> but it isn't enough.</span> You slide deeper into its mouth, until it swallows you up to your chest. <<elseif $vorestruggle is 1>> You push down on the $vorecreature's maw with one arm,<span class="purple"> but it isn't enough.</span> You slide deeper into its mouth, until it swallows you up to your chest. <<else>> There's nothing preventing the $vorecreature from swallowing you further, <span class="purple">and it takes advantage of your vulnerability.</span> You slide deeper into its mouth, until it swallows you up to your chest. <</if>> <</if>> <<elseif $vorestage is 3>> <<if $worn.over_lower.integrity gt 0>> <<set $worn.over_lower.integrity -= 1>> <<elseif $worn.lower.integrity gt 0>> <<set $worn.lower.integrity -= 1>> <<elseif $worn.under_lower.integrity gt 0>> <<set $worn.under_lower.integrity -= 1>> <</if>> <<if $worn.over_upper.integrity gt 0>> <<set $worn.over_upper.integrity -= 1>> <<elseif $worn.upper.integrity gt 0>> <<set $worn.upper.integrity -= 1>> <<elseif $worn.under_upper.integrity gt 0>> <<set $worn.under_upper.integrity -= 1>> <</if>> <<set $worn.upper.integrity -= 1>> <<if ($vorestruggle * currentSkillValue('physique')) gte $vorestrength>> <<if $vorestruggle is 2>> You push down on the $vorecreature's maw with both your arms, <span class="green">preventing it from swallowing you further.</span> <<elseif $vorestruggle is 1>> You push down on the $vorecreature's maw with one arm, <span class="green">preventing it from swallowing you further.</span> <<else>> There's nothing preventing the $vorecreature from swallowing you further, <span class="green">but it doesn't take advantage of your vulnerability.</span> <</if>> <<else>> <<set $vorestage += 1>> <<if $vorestruggle is 2>> You push down on the $vorecreature's maw with both your arms,<span class="pink"> but it isn't enough.</span> You slide deeper into its mouth, until it swallows you up to your neck. <<elseif $vorestruggle is 1>> You push down on the $vorecreature's maw with one arm,<span class="pink"> but it isn't enough.</span> You slide deeper into its mouth, until it swallows you up to your neck. <<else>> There's nothing preventing the $vorecreature from swallowing you further, <span class="pink">and it takes advantage of your vulnerability.</span> You slide deeper into its mouth, until it swallows you up to your neck. <</if>> <</if>> <<elseif $vorestage is 4>> <<if $worn.over_lower.integrity gt 0>> <<set $worn.over_lower.integrity -= 1>> <<elseif $worn.lower.integrity gt 0>> <<set $worn.lower.integrity -= 1>> <<elseif $worn.under_lower.integrity gt 0>> <<set $worn.under_lower.integrity -= 1>> <</if>> <<if $worn.over_upper.integrity gt 0>> <<set $worn.over_upper.integrity -= 1>> <<elseif $worn.upper.integrity gt 0>> <<set $worn.upper.integrity -= 1>> <<elseif $worn.under_upper.integrity gt 0>> <<set $worn.under_upper.integrity -= 1>> <</if>> <<if ($vorestruggle * currentSkillValue('physique')) gte $vorestrength>> <<if $vorestruggle is 2>> You grab the inside of the $vorecreature's maw with both arms, <span class="green">preventing it from swallowing you further.</span> <<elseif $vorestruggle is 1>> You grab the inside of the $vorecreature's maw with one arm, <span class="green">preventing it from swallowing you further.</span> <<else>> There's nothing preventing the $vorecreature from swallowing you further, <span class="green">but it doesn't take advantage of your vulnerability.</span> <</if>> <<else>> <<set $vorestage += 1>> <<if $vorestruggle is 2>> You grab the inside of the $vorecreature's maw with both your arms,<span class="pink"> but it isn't enough.</span> The last of your body slides into its mouth, its lips closing behind you. <<elseif $vorestruggle is 1>> You grab the inside of the $vorecreature's maw with one arm,<span class="pink"> but it isn't enough.</span> The last of your body slides into its mouth, its lips closing behind you. <<else>> There's nothing preventing the $vorecreature from swallowing you further, <span class="pink">and it takes advantage of your vulnerability.</span> The last of your body slides into its mouth, its lips closing behind you. <</if>> <</if>> <<elseif $vorestage is 5>> <<if $worn.over_lower.integrity gt 0>> <<set $worn.over_lower.integrity -= 1>> <<elseif $worn.lower.integrity gt 0>> <<set $worn.lower.integrity -= 1>> <<elseif $worn.under_lower.integrity gt 0>> <<set $worn.under_lower.integrity -= 1>> <</if>> <<if $worn.over_upper.integrity gt 0>> <<set $worn.over_upper.integrity -= 1>> <<elseif $worn.upper.integrity gt 0>> <<set $worn.upper.integrity -= 1>> <<elseif $worn.under_upper.integrity gt 0>> <<set $worn.under_upper.integrity -= 1>> <</if>> <<if ($vorestruggle * currentSkillValue('physique')) gte $vorestrength>> <<if $vorestruggle is 2>> You grab the inside of the $vorecreature's maw with both arms, <span class="green">preventing it from swallowing you further.</span> <<elseif $vorestruggle is 1>> You grab the inside of the $vorecreature's maw with one arm, <span class="green">preventing it from swallowing you further.</span> <<else>> There's nothing preventing the $vorecreature from swallowing you further, <span class="green">but it doesn't take advantage of your vulnerability.</span> <</if>> <<else>> <<set $vorestage += 1>> <<if $vorestruggle is 2>> You grab the inside of the $vorecreature's maw with both your arms,<span class="pink"> but it isn't enough.</span> The $vorecreature sucks you further down, sliding you into its gullet. <<elseif $vorestruggle is 1>> You grab the inside of the $vorecreature's maw with one arm,<span class="pink"> but it isn't enough.</span> The $vorecreature sucks you further down, sliding you into its gullet. <<else>> There's nothing preventing the $vorecreature from swallowing you further, <span class="pink">and it takes advantage of your vulnerability.</span> The $vorecreature sucks you further down, sliding you into its gullet. <</if>> <</if>> <<elseif $vorestage is 6>> <<if $worn.over_lower.integrity gt 0>> <<set $worn.over_lower.integrity -= 1>> <<elseif $worn.lower.integrity gt 0>> <<set $worn.lower.integrity -= 1>> <<elseif $worn.under_lower.integrity gt 0>> <<set $worn.under_lower.integrity -= 1>> <</if>> <<if $worn.over_upper.integrity gt 0>> <<set $worn.over_upper.integrity -= 1>> <<elseif $worn.upper.integrity gt 0>> <<set $worn.upper.integrity -= 1>> <<elseif $worn.under_upper.integrity gt 0>> <<set $worn.under_upper.integrity -= 1>> <</if>> <<if ($vorestruggle * currentSkillValue('physique')) gte $vorestrength>> <<if $vorestruggle is 2>> You grab the inside of the $vorecreature's maw with both arms, <span class="green">preventing it from swallowing you further.</span> <<elseif $vorestruggle is 1>> You grab the inside of the $vorecreature's maw with one arm, <span class="green">preventing it from swallowing you further.</span> <<else>> There's nothing preventing the $vorecreature from swallowing you further, <span class="green">but it doesn't take advantage of your vulnerability.</span> <</if>> <<else>> <<set $vorestomach to 0>> <<set $vorestage += 1>> <<if $vorestruggle is 2>> You grab the inside of the $vorecreature's maw with both your arms,<span class="pink"> but it isn't enough.</span> The $vorecreature sucks you further down, depositing you in a fleshy chamber. <<if $leftarm is "trapped">><<set $leftarm to 0>><</if>><<if $rightarm is "trapped">><<set $rightarm to 0>><<swallowed>><</if>> <<elseif $vorestruggle is 1>> You grab the inside of the $vorecreature's maw with one arm,<span class="pink"> but it isn't enough.</span> The $vorecreature sucks you further down, depositing you in a fleshy chamber. <<if $leftarm is "trapped">><<set $leftarm to 0>><</if>><<if $rightarm is "trapped">><<set $rightarm to 0>><<swallowed>><</if>> <<else>> There's nothing preventing the $vorecreature from swallowing you further, <span class="pink">and it takes advantage of your vulnerability.</span> The $vorecreature sucks you further down, depositing you in a fleshy chamber. <<if $leftarm is "trapped">><<set $leftarm to 0>><</if>><<if $rightarm is "trapped">><<set $rightarm to 0>><</if>><<swallowed>> <</if>> <</if>> <<else>> <<if $worn.over_lower.integrity gt 0>> <<set $worn.over_lower.integrity -= 5>> <</if>> <<if ($worn.over_lower.name is "naked" or $worn.over_lower.integrity lte clothingData('over_lower',$worn.over_lower,'integrity_max') / 5) and $worn.lower.integrity gt 0>> <<set $worn.upper.integrity -= 5>> <</if>> <<if ($worn.over_lower.name is "naked" or $worn.over_lower.integrity lte clothingData('over_lower',$worn.over_lower,'integrity_max') / 5) and ($worn.lower.name is "naked" or $worn.lower.integrity lte clothingData('lower',$worn.lower,'integrity_max') / 5) and $worn.under_lower.integrity gt 0>> <<set $worn.under_lower.integrity -= 5>> <</if>> <<if $worn.over_upper.integrity gt 0>> <<set $worn.over_upper.integrity -= 5>> <</if>> <<if ($worn.over_upper.name is "naked" or $worn.over_upper.integrity lte clothingData('over_upper',$worn.over_upper,'integrity_max') / 5) and $worn.upper.integrity gt 0>> <<set $worn.upper.integrity -= 5>> <</if>> <<if ($worn.over_upper.name is "naked" or $worn.over_upper.integrity lte clothingData('over_upper',$worn.over_upper,'integrity_max') / 5) and ($worn.upper.name is "naked" or $worn.upper.integrity lte clothingData('upper',$worn.upper,'integrity_max') / 5) and $worn.under_upper.integrity gt 0>> <<set $worn.under_upper.integrity -= 5>> <</if>> <</if>> <br><br> <<set $vorestruggle to 0>> <<rng>> <<if $vorestage is 1>> <<if $rng gte 66>> You feel the $vorecreature licking your feet. <<neutral 5>> <<elseif $rng gte 33>> The $vorecreature's tongue protrudes from its maw and licks your inner thighs. <<neutral 5 "genitals">> <<else>> The $vorecreature's tongue protrudes from its maw and licks your butt. <<neutral 5 "anus">> <</if>> <<elseif $vorestage is 2>> <<if $rng gte 66>> You feel the $vorecreature licking your butt. <<neutral 5 "anus">> <<elseif $rng gte 33>> The $vorecreature gently licks your <<groin>>. <<neutral 10 "genitals">> <<else>> The $vorecreature's tongue wraps around your pelvis and rubs up and down the length of your thighs. <<neutral 5 "genitals">> <</if>> <<elseif $vorestage is 3>> <<if $rng gte 66>> The $vorecreature's tongue presses your body against the roof of its maw. <<neutral 5>> <<elseif $rng gte 33>> The $vorecreature gently prods your <<groin>>. <<neutral 10 "genitals">> <<else>> The $vorecreature's tongue caresses your inner thighs. <<neutral 5 "genitals">> <</if>> <<elseif $vorestage is 4>> <<if $rng gte 66>> The $vorecreature runs the tip of its tongue down the length of your body. <<neutral 5>> <<elseif $rng gte 33>> The $vorecreature gently prods your <<groin>>. <<neutral 10 "genitals">> <<else>> The $vorecreature's tongue caresses your inner thighs. <<neutral 10 "genitals">> <</if>> <<elseif $vorestage is 5>> <<if $rng gte 66>> The $vorecreature runs the tip of its tongue down the length of your body. <<neutral 10>> <<elseif $rng gte 33>> The $vorecreature wraps its tongue around your body. <<neutral 10>> <<else>> The $vorecreature flicks your <<groin>> with the tip of its tongue. <<neutral 15 "genitals">> <</if>> <<elseif $vorestage is 6>> <<if $rng gte 81 and $leftarm is 0>> A groove in the side of the gullet constricts around your left arm, trapping it. <<set $leftarm to "trapped">><<set $lefttarget to "vore">><<neutral 10>> <<elseif $rng gte 61 and $rightarm is 0>> A groove in the side of the gullet constricts around your right arm, trapping it. <<set $rightarm to "trapped">><<set $righttarget to "vore">><<neutral 10>> <<elseif $rng gte 41>> The gullet tightens around your entire body, holding you in place. <<neutral 10>> <<elseif $rng gte 21>> Valves open at the side of the tube and release a warm liquid, coating you in a slimy goo. <<neutral 15>> <<elseif $rng gte 1>> The sides of the gullet push against you, sliding you along the tube. <<neutral 15>> <</if>> <<elseif $vorestage is 7>> <<if $rng gte 81 and $rightarm is 0>> A groove in the side of the chamber constricts around your right arm, trapping it. <<set $rightarm to "trapped">><<set $righttarget to "vore">><<neutral 15>> <<elseif $rng gte 61>> More liquid squirts out the side of the chamber, covering you in a slimy goo. <<neutral 15>><<outergoo>> <<elseif $rng gte 41 and $leftarm is 0>> A groove in the side of the chamber constricts around your left arm, trapping it. <<set $leftarm to "trapped">><<set $lefttarget to "vore">><<neutral 15>> <<elseif $rng gte 21>> The chamber pulses to a gentle rhythm. <<neutral 15>> <<elseif $rng gte 1>> The entire chamber pulsates and rubs against you. <<neutral 20>> <</if>> <<if $vorestomach is 0>> <<set $vorestomach to 1>> <span class="blue">The walls close in around you.</span> <<elseif $vorestomach is 1>> <<set $vorestomach to 2>> <span class="purple">The walls close in around you.</span> <<elseif $vorestomach is 2>> <<set $vorestomach to 3>> <span class="pink">The walls close in around you, squeezing your body and stealing your breath.</span> <<elseif $vorestomach is 3>> <<set $vorestomach to 4>> <span class="red">The walls close in around you. You soon won't be able to move at all.</span> <<else>> <<set $vorestomach to 5>> <span class="red">The walls close in around you. The world starts to fade.</span> <</if>> <</if>> <br><br> <<rng>> <<if $rng gte 76>> <<set $vorestrength to 0>> <<elseif $rng gte 51>> <<set $vorestrength to random(-5000, 10000)>> <<elseif $rng gte 26>> <<set $vorestrength to random(-5000, 20000)>> <<elseif $rng gte 1>> <<set $vorestrength to random(1, 20000)>> <</if>> <<if $voretrait gte 1>> <<set $vorestrength -= 2500>> <</if>> <<if $vorestage lte 5>> <<if $vorestrength lte 0>> <span class="lblue">The $vorecreature seems content to savour your taste, for now.</span> <<elseif $vorestrength lte 5000>> <span class="blue">The $vorecreature salivates in anticipation.</span> <<elseif $vorestrength lte 10000>> <span class="purple">The $vorecreature prepares to suck you in.</span> <<elseif $vorestrength lte 20000>> <span class="pink">The $vorecreature prepares to gulp you down.</span> <</if>> <br><br> <</if>> <<if $panicattacks gte 1 and $panicviolence is 0 and $panicparalysis is 0 and $controlled is 0 and _panicchecked isnot true>> <<rng>> <<if $rng is 100>> <<set $panicparalysis to 5>> <</if>> <<set _panicchecked to true>> <</if>> <<if $panicattacks gte 2 and $panicviolence is 0 and $panicparalysis is 0 and $controlled is 0 and _paniccheckedviolence isnot true>> <<rng>> <<if $rng is 100>> <<set $panicviolence to 3>> <</if>> <<set _paniccheckedviolence to true>> <</if>> <<if $arousal gte $arousalmax and $orgasmdown lte 0>> <<orgasm>> <</if>> <</widget>> <<widget "swallowedstat">> <<set $swallowedstat += 1>> <</widget>> <<widget "swallowed">> <<if $swallowed isnot 1>> <<set $swallowed to 1>> <<swallowedstat>> <</if>> <</widget>><<widget "voreactions">> <<animateCombat>> <<willpowerpain>> <<willpowerorgasm>> <<actioncarry>> <<actioncarrydrop>> <<combatstate>> <<carryblock>> <<if $trance lte 0 and $panicparalysis is 0 and $panicviolence is 0>> <<generateActionsVore>> <</if>> <br> <</widget>><<widget "voreeffects">> <<rng>> <<effectspain>> <<effectsorgasm>> <<effectsdissociation>> <<if $leftaction is "leftescape" and $rightaction is "rightescape">> <<set $leftaction to 0>><<set $rightaction to 0>><<set $leftactiondefault to "leftescape">><<set $rightactiondefault to "rightescape">><<set $attackstat += 2>><<set $leftactiondefault to "leftescape">><<set $rightactiondefault to "rightescape">> <<if $rng lte 80>> <<if $leftarm is "trapped">><<set $leftarm to 0>><</if>><<if $rightarm is "trapped">><<set $rightarm to 0>><</if>> <<if $vorestage is 1>> <<set $vorestage -= 1>> You hit the $vorecreature's maw with both arms, <span class="green">and make it spit you out.</span> <<elseif $vorestage is 2>> <<set $vorestage -= 1>> You hit the $vorecreature's mouth with both arms. <span class="green">It gags, letting you slide your body out, freeing your <<genitals>> from its maw.</span> <<elseif $vorestage is 3>> <<set $vorestage -= 1>> You hit the $vorecreature's mouth with both arms. <span class="green">It gags, letting you slide your body out, freeing your <<breasts>> from its maw.</span> <<elseif $vorestage is 4>> <<set $vorestage -= 1>> You hit the inside of the $vorecreature's mouth with both arms. <span class="green">It gags, letting you slide your body out, freeing your arms from its maw.</span> <<elseif $vorestage is 5>> <<set $vorestage -= 1>> You hit the inside of the $vorecreature's mouth with both arms. <span class="green">It gags, letting you slide your head back out.</span> <<elseif $vorestage is 6>> <<set $vorestage -= 1>> You hit the walls of the $vorecreature's gullet with both arms. <span class="green">It convulses, violently pushing you up into its mouth.</span> <<elseif $vorestage is 7>> <<set $vorestage -= 1>> You pound the walls of the $vorecreature's stomach with both arms. <span class="green">It convulses, violently pushing you up into its gullet.</span> <</if>> <<else>> <<if $vorestage is 1>> You hit the $vorecreature's maw with both arms, <span class="red">but it doesn't react.</span> <<elseif $vorestage is 2>> You hit the $vorecreature's mouth with both arms, <span class="red">but it doesn't react.</span> <<elseif $vorestage is 3>> You hit the $vorecreature's mouth with both arms, <span class="red">but it doesn't react.</span> <<elseif $vorestage is 4>> You hit the inside of the $vorecreature's mouth with both arms, <span class="red">but it doesn't react.</span> <<elseif $vorestage is 5>> You hit the inside of the $vorecreature's mouth with both arms, <span class="red">but it doesn't react.</span> <<elseif $vorestage is 6>> You hit the walls of the $vorecreature's gullet with both arms, <span class="red">but it doesn't react.</span> <<elseif $vorestage is 7>> You pound the walls of the $vorecreature's stomach with both arms, <span class="red">but it doesn't react.</span> <</if>> <</if>> <<elseif $leftaction is "leftescape">> <<set $leftaction to 0>><<set $leftactiondefault to "leftescape">><<set $attackstat += 1>><<set $leftactiondefault to "leftescape">> <<if $rng lte 60>> <<if $leftarm is "trapped">><<set $leftarm to 0>><</if>><<if $rightarm is "trapped">><<set $rightarm to 0>><</if>> <<if $vorestage is 1>> <<set $vorestage -= 1>> You hit the $vorecreature's maw with your left arm, <span class="green">and make it spit you out.</span> <<elseif $vorestage is 2>> <<set $vorestage -= 1>> You hit the $vorecreature's mouth with your left arm. <span class="green">It gags, letting you slide your body out, freeing your <<genitals>> from its maw.</span> <<elseif $vorestage is 3>> <<set $vorestage -= 1>> You hit the $vorecreature's mouth with your left arm. <span class="green">It gags, letting you slide your body out, freeing your <<breasts>> from its maw.</span> <<elseif $vorestage is 4>> <<set $vorestage -= 1>> You hit the inside of the $vorecreature's mouth with your left arm. <span class="green">It gags, letting you slide your body out, freeing your arms from its maw.</span> <<elseif $vorestage is 5>> <<set $vorestage -= 1>> You hit the inside of the $vorecreature's mouth with your left arm. <span class="green">It gags, letting you slide your head back out.</span> <<elseif $vorestage is 6>> <<set $vorestage -= 1>> You hit the walls of the $vorecreature's gullet with your left arm. <span class="green">It convulses, violently pushing you up into its mouth.</span> <<elseif $vorestage is 7>> <<set $vorestage -= 1>> You pound the walls of the $vorecreature's stomach with your left arm. <span class="green">It convulses, violently pushing you up into its gullet.</span> <</if>> <<else>> <<if $vorestage is 1>> You hit the $vorecreature's maw with your left arm, <span class="red">but it doesn't react.</span> <<elseif $vorestage is 2>> You hit the $vorecreature's mouth with your left arm, <span class="red">but it doesn't react.</span> <<elseif $vorestage is 3>> You hit the $vorecreature's mouth with your left arm, <span class="red">but it doesn't react.</span> <<elseif $vorestage is 4>> You hit the inside of the $vorecreature's mouth with your left arm, <span class="red">but it doesn't react.</span> <<elseif $vorestage is 5>> You hit the inside of the $vorecreature's mouth with your left arm, <span class="red">but it doesn't react.</span> <<elseif $vorestage is 6>> You hit the walls of the $vorecreature's gullet with your left arm, <span class="red">but it doesn't react.</span> <<elseif $vorestage is 7>> You pound the walls of the $vorecreature's stomach with your left arm, <span class="red">but it doesn't react.</span> <</if>> <</if>> <<elseif $rightaction is "rightescape">> <<set $rightaction to 0>><<set $rightactiondefault to "rightescape">><<set $attackstat += 1>><<set $rightactiondefault to "rightescape">> <<if $rng lte 60>> <<if $leftarm is "trapped">><<set $leftarm to 0>><</if>><<if $rightarm is "trapped">><<set $rightarm to 0>><</if>> <<if $vorestage is 1>> <<set $vorestage -= 1>> You hit the $vorecreature's maw with your right arm, <span class="green">and make it spit you out.</span> <<elseif $vorestage is 2>> <<set $vorestage -= 1>> You hit the $vorecreature's mouth with your right arm. <span class="green">It gags, letting you slide your body out, freeing your <<genitals>> from its maw.</span> <<elseif $vorestage is 3>> <<set $vorestage -= 1>> You hit the $vorecreature's mouth with your right arm. <span class="green">It gags, letting you slide your body out, freeing your <<breasts>> from its maw.</span> <<elseif $vorestage is 4>> <<set $vorestage -= 1>> You hit the inside of the $vorecreature's mouth with your right arm. <span class="green">It gags, letting you slide your body out, freeing your arms from its maw.</span> <<elseif $vorestage is 5>> <<set $vorestage -= 1>> You hit the inside of the $vorecreature's mouth with your right arm. <span class="green">It gags, letting you slide your head back out.</span> <<elseif $vorestage is 6>> <<set $vorestage -= 1>> You hit the walls of the $vorecreature's gullet with your right arm. <span class="green">It convulses, violently pushing you up into its mouth.</span> <<elseif $vorestage is 7>> <<set $vorestage -= 1>> You pound the walls of the $vorecreature's stomach with your right arm. <span class="green">It convulses, violently pushing you up into its gullet.</span> <</if>> <<else>> <<if $vorestage is 1>> You hit the $vorecreature's maw with your right arm, <span class="red">but it doesn't react.</span> <<elseif $vorestage is 2>> You hit the $vorecreature's mouth with your right arm, <span class="red">but it doesn't react.</span> <<elseif $vorestage is 3>> You hit the $vorecreature's mouth with your right arm, <span class="red">but it doesn't react.</span> <<elseif $vorestage is 4>> You hit the inside of the $vorecreature's mouth with your right arm, <span class="red">but it doesn't react.</span> <<elseif $vorestage is 5>> You hit the inside of the $vorecreature's mouth with your right arm, <span class="red">but it doesn't react.</span> <<elseif $vorestage is 6>> You hit the walls of the $vorecreature's gullet with your right arm, <span class="red">but it doesn't react.</span> <<elseif $vorestage is 7>> You pound the walls of the $vorecreature's stomach with your right arm, <span class="red">but it doesn't react.</span> <</if>> <</if>> <</if>> <<if $leftaction is "lefthold" and $rightaction is "righthold">> <<set $leftaction to 0>><<set $rightaction to 0>><<set $leftactiondefault to "lefthold">><<set $rightactiondefault to "righthold">><<set $vorestruggle to 2>> <<if $vorestage is 1>> You grab hold of the $vorecreature's maw with both arms. <<elseif $vorestage is 2>> You grab hold of the $vorecreature's maw with both arms. <<elseif $vorestage is 3>> You grab hold of the $vorecreature's maw with both arms. <<elseif $vorestage is 4>> You cling to the side of the $vorecreature's mouth with both arms. <<elseif $vorestage is 5>> You cling to the side of the $vorecreature's mouth with both arms. <<elseif $vorestage is 6>> You cling to the side of the $vorecreature's gullet with both arms. <</if>> <<elseif $leftaction is "lefthold">> <<set $leftaction to 0>><<set $leftactiondefault to "lefthold">><<set $vorestruggle to 1>> <<if $vorestage is 1>> You grab hold of the $vorecreature's maw with your left arm. <<elseif $vorestage is 2>> You grab hold of the $vorecreature's maw with your left arm. <<elseif $vorestage is 3>> You grab hold of the $vorecreature's maw with your left arm. <<elseif $vorestage is 4>> You cling to the side of the $vorecreature's mouth with your left arm. <<elseif $vorestage is 5>> You cling to the side of the $vorecreature's mouth with your left arm. <<elseif $vorestage is 6>> You cling to the side of the $vorecreature's gullet with your left arm. <</if>> <<elseif $rightaction is "righthold">> <<set $rightaction to 0>><<set $rightactiondefault to "righthold">><<set $vorestruggle to 1>> <<if $vorestage is 1>> You grab hold of the $vorecreature's maw with your right arm. <<elseif $vorestage is 2>> You grab hold of the $vorecreature's maw with your right arm. <<elseif $vorestage is 3>> You grab hold of the $vorecreature's maw with your right arm. <<elseif $vorestage is 4>> You cling to the side of the $vorecreature's mouth with your right arm. <<elseif $vorestage is 5>> You cling to the side of the $vorecreature's mouth with your right arm. <<elseif $vorestage is 6>> You cling to the side of the $vorecreature's gullet with your right arm. <</if>> <</if>> <<if $leftaction is "leftvorefree">> <<set $leftaction to 0>> <<set $rightarm to 0>> <span class="lblue">Using all your strength, you manage to free your right arm from the side of the gullet.</span> <</if>> <<if $rightaction is "rightvorefree">> <<set $rightaction to 0>> <<set $leftarm to 0>> <span class="lblue">Using all your strength, you manage to free your left arm from the side of the gullet.</span> <</if>> <<if $leftaction is "vorerest">> <<set $leftaction to 0>><<set $leftactiondefault to "vorerest">> <</if>> <<if $rightaction is "vorerest">> <<set $rightaction to 0>><<set $rightactiondefault to "vorerest">> <</if>> <br><br> <</widget>><<widget "takeVirginity">> <<if Array.isArray(_args[0])>> /* Array of NPCList index's, should only be used for double penetration */ <<set $_npc to $NPCList[_args[0][0]]>> <<set $_npc2 to $NPCList[_args[0][1]]>> <<if $_npc?.fullDescription and $_npc2?.fullDescription>> <<set $_taker to `${$_npc.fullDescription} and ${$_npc2.fullDescription}`>> <</if>> <</if>> <<if !$_taker>> <<set $_taker to _args[0]>> <<set $_npcIndex to $NPCNameList.indexOf($_taker)>> <<if $_npcIndex isnot -1>> <<set $_npc to $NPCName[$_npcIndex]>> <<else>> <<run $NPCList.forEach(npc => { if (npc.fullDescription is $_taker) $_npc to npc; })>> <</if>> <</if>> <<if _args[1]>> <<if _args[1] is "penile" and playerHasStrapon()>> <!-- Do nothing --> <<else>> <<if $player.virginity[_args[1]] is true>> <<if $activeNightmare or ($wraith.mimic is $_taker)>> <<switch $_taker>> <<case "Robin">><<displayFeatFake "Robin the Lover">> <<case "Kylar">><<displayFeatFake "Kylar the Obsessed">> <<case "Eden">><<displayFeatFake "Eden the Lonely">> <<case "Whitney">><<displayFeatFake "Whitney the Tsundere">> <<case "Avery">><<displayFeatFake "Avery the Moneybags">> <<case "Leighton">><<displayFeatFake "Leighton the Shady">> <<case "Alex">><<displayFeatFake "Alex the Robust">> <<case "Great Hawk">><<displayFeatFake "Great Hawk the Terror">> <<case "Wren">><<displayFeatFake "Wren the Sly">> <<case "Black Wolf">><<displayFeatFake "Great Wolf the Alpha">> <<case "Harper">><<displayFeatFake "Harper the Hypnotist">> <<case "Morgan">><<displayFeatFake "Morgan the Lost">> <<case "Gwylan">><<displayFeatFake "Gwylan the Bewitching">> <</switch>> <<if !$activeNightmare>> <<set $_taker to "Ivory Wraith">> <</if>> <<elseif _args[1] is "vaginal" or _args[1] is "penile">> <<switch $_taker>> <<case "Robin">><<earnFeat "Robin the Lover">> <<case "Kylar">><<earnFeat "Kylar the Obsessed">> <<case "Eden">><<earnFeat "Eden the Lonely">> <<case "Whitney">><<earnFeat "Whitney the Tsundere">> <<case "Avery">><<earnFeat "Avery the Moneybags">> <<case "Leighton">><<earnFeat "Leighton the Shady">> <<case "Alex">><<earnFeat "Alex the Robust">> <<case "Great Hawk">><<earnFeat "Great Hawk the Terror">> <<case "Wren">><<earnFeat "Wren the Sly">> <<case "Black Wolf">><<earnFeat "Great Wolf the Alpha">> <<case "Harper">><<earnFeat "Harper the Hypnotist">> <<case "Morgan">><<earnFeat "Morgan the Lost">> <<case "Gwylan">><<earnFeat "Gwylan the Bewitching">> <</switch>> <</if>> <<if !$player.virginityDetails>> <<set $player.virginityDetails to {}>> <</if>> <<set $player.virginityDetails[_args[1]] to { timestamp: Time.date.timeStamp, taker: $_taker, passage: $passage, }>> <<if _consensualOverride isnot undefined>> <<set $player.virginityDetails[_args[1]].consensual to _consensualOverride>> <<unset _consensualOverride>> <<elseif $combat>> <<set $player.virginityDetails[_args[1]].consensual to !!$consensual>> <<set $player.virginityDetails[_args[1]].position to $position>> <</if>> <<if _args[1] is "penile">> <<set $player.virginityDetails[_args[1]].playerPenisSize to $player.penissize>> <<elseif ["vaginal", "anal", "oral"].includes(_args[1])>> <<if $_npc>> <<set $player.virginityDetails[_args[1]].npcPenisSize to $_npc.penissize>> <<set $player.virginityDetails[_args[1]].npcPenisdesc to $_npc.penisdesc>> <</if>> <<if $_npc2>> <<set $player.virginityDetails[_args[1]].npcPenisSize2 to $_npc2.penissize>> <<set $player.virginityDetails[_args[1]].npcPenisdesc2 to $_npc2.penisdesc>> <</if>> <<if !$player.virginityDetails[_args[1]].npcPenisSize>> <<if $tentacles>> <<run Object.values($tentacles).forEach(tentacle => { if (tentacle and tentacle.fullDesc is $_taker and tentacle.size isnot undefined) $player.virginityDetails[_args[1]].tentacleSize to tentacle.size; })>> <</if>> <</if>> <</if>> <<if $_taker isnot undefined and $_taker isnot 0>> <<set $player.virginity[_args[1]] to $_taker>> <<if $ironmanmode is true and $passage != "Loveth">> <<run ironmanAutoSave()>> <</if>> <<else>> <<set $player.virginity[_args[1]] to false>> <</if>> <!-- virgin purity loss --> <<switch _args[1]>> <<case "vaginal" "penile">> <<if $templePromised isnot $_taker>> <<purity -50>> <</if>> <<case "anal">><<purity -25>> <<case "oral">><<purity -25>> <<case "handholding">><<purity -10>> <<case "kiss">><<purity -10>> <</switch>> <</if>> <<if $player.virginity.temple is true and (_args[1] is "vaginal" or _args[1] is "penile") and $templePromised isnot $_taker>> <<set $virginityProtected to false>> <<set $player.virginity.temple to $_taker>> <</if>> <</if>> <</if>> <</widget>> <<widget "takeTempleVirginity">> <<if _args[1]>> <<if _args[1] is "penile" and playerHasStrapon()>> <!-- Do nothing --> <<else>> <<if $player.virginity.temple is true and (_args[1] is "vaginal" or _args[1] is "penile") and $templePromised isnot _args[0]>> <<set $virginityProtected to false>> <<set $player.virginity.temple to _args[0]>> <</if>> <</if>> <</if>> <</widget>> <<widget "takeHandholdingVirginity">> <<if typeof _args[0] === 'string' or _args[0] instanceof String>> <<set $_fullDescription to _args[0]>> <<if C.npc[_args[0]]>> <<set $_type to C.npc[_args[0]].type>> <<else>> <<set $_type to _args[2]>> <</if>> <<else>> <<set $_fullDescription to _args[0].fullDescription>> <<set $_type to _args[0].type>> <</if>> <<switch _args[1]>> <<case "romantic" "consensual">> <<set _npcConsensualOverride to true>> <<case "rape">> <<set _npcConsensualOverride to true>> <</switch>> <<takeNPCVirginity $_fullDescription "handholding" "pc">> <<unset _npcConsensualOverride>> <<if $player.virginity.handholding is true>> <<switch _args[1]>> <<case "romantic">> <span class="lewd">You aren't used to this kind of romantic handholding.</span><<arousal 2000>><<ggarousal>> <<set _consensualOverride to true>> <<case "rape">> <span class="red">You feel horrible, being forced to hold hands like this.</span><<stress 40>><<ggstress>> <<set _consensualOverride to false>> <<case "consensual">> <span class="green">Having your hand held feels nice.</span><<lltrauma>><<trauma -18>> <<set _consensualOverride to true>> <<case "tentacle">> <<set $_handTentacle to _args[2] or "tentacle">> <span class="lewd">You wonder what others would say about a $_handTentacle holding your hand, if they would even believe you.</span><<arousal 1000>> <<default>> <span class="blue">You feel nervous holding the hands of someone you're not close to.</span><<stress 20>><<gstress>> <</switch>> <<if _args[3]>><br><br><</if>> <<takeVirginity $_fullDescription "handholding">> <</if>> <<recordSperm `{target: "pc", spermOwner: _args[0], spermType: $_type, genital: "hand"}`>> <<recordSperm `{target: _args[0], spermOwner: "pc", spermType: "human", genital: "hand"}`>> <<if !$combat>><<fetishPregnancyImg>><</if>> <</widget>> <<widget "takeKissVirginity">> <<if typeof _args[0] === 'string' or _args[0] instanceof String>> <<set $_fullDescription to _args[0]>> <<if C.npc[_args[0]]>> <<set $_type to C.npc[_args[0]].type>> <<else>> <<set $_type to _args[2]>> <</if>> <<else>> <<set $_fullDescription to _args[0].fullDescription>> <<set $_type to _args[0].type>> <</if>> <<switch _args[1]>> <<case "loveInterest" "romantic">> <<set _npcConsensualOverride to true>> <<case "rape" "loveRape">> <<set _npcConsensualOverride to true>> <</switch>> <<takeNPCVirginity $_fullDescription "kiss" "pc">> <<unset _npcConsensualOverride>> <<if $player.virginity.kiss is true>> <<if _args[0].type is "plant" and $backgroundTraits.includes("plantlover") and $nectar_timer lte 14>> <<set $_kissType to "addiction">> <<else>> <<set $_kissType to _args[1]>> <</if>> <<switch $_kissType>> <<case "loveInterest">> <span class="lewd">You're happy your first kiss went to a love interest.</span><<arousal 3000>><<stress -12>><<trauma -12>><<ggarousal>><<llstress>> <<if ($wraith.mimic isnot $_fullDescription)>><<earnFeat "First Kiss">><</if>> <<set _consensualOverride to true>> <<case "romantic">> <span class="lewd">You're happy your first kiss was taken in such a romantic way.</span><<arousal 1500>><<stress -6>><<trauma -6>><<garousal>><<lstress>> <<set _consensualOverride to true>> <<case "consensual">> <span class="green"> You feel warm, having your first kiss like this.</span><<arousal 500>><<stress -3>><<garousal>><<lstress>> <<set _consensualOverride to true>> <<case "rape">> <span class="red">Your first kiss was stolen. You feel horrible.</span><<stress 40>><<gggstress>> <<set _consensualOverride to false>> <<case "loveRape">> <span class="red">You didn't want your first kiss with <<nnpc_him $_fullDescription>> to be like this.</span><<stress 40>><<gggstress>> <<set _consensualOverride to false>> <<case "tentacle">> <span class="lewd">You wonder what others would say about giving a tentacle your first kiss, if they would even believe you.</span><<arousal 3000>> <<case "addiction">> <span class="lewd">You're so relieved, the thought of giving away your first kiss like this hardly registers to you.</span><<arousal 1000>> <<default>> <span class="blue">You feel conflicted about giving away your first kiss like this.</span><<stress 20>><<ggstress>> <</switch>> <<takeVirginity $_fullDescription "kiss">> <br><br> <</if>> <<recordSperm `{target: "pc", spermOwner: _args[0], spermType: $_type, genital: "kiss"}`>> <<recordSperm `{target: _args[0], spermOwner: "pc", spermType: "human", genital: "kiss"}`>> <<if !$combat>><<fetishPregnancyImg>><</if>> <</widget>> <<widget "takeKissVirginityNamed">> <<switch _args[0]>> <<case "Robin">> <<set $_isLoveInterest to ($robinromance is 1)>> <<case "Whitney">> <<set $_isLoveInterest to ($whitneyromance is 1)>> <<case "Kylar">> <<set $_isLoveInterest to ($kylarenglish gte 1)>> <<case "Sydney">> <<set $_isLoveInterest to ($sydneyromance is 1)>> <<case "Eden">> <<set $_isLoveInterest to ($syndromeeden is 1)>> <<case "Avery">> <<set $_isLoveInterest to ($auriga_artefact)>> <<case "Black Wolf">> <<set $_isLoveInterest to ($syndromewolves is 1 and hasSexStat("deviancy", 3))>> <<case "Great Hawk">> <<set $_isLoveInterest to ($syndromebird is 1)>> <<case "Alex">> <<set $_isLoveInterest to ($farm_stage gte 7 and $alex_countdown is undefined)>> <<case "Gwylan">> <<set $_isLoveInterest to ($gwylanSeen?.includes("romance"))>> <<default>> <<run $NPCNameList.includes(_args[0]) ? $_isLoveInterest = false : Errors.report("wrong argument passed to takeKissVirginityNamed: ", _args)>> <</switch>> <<set $_isConsensual to _args[1] or ($consensual is 1)>> <<if $_isLoveInterest>> <<set $_kissType to ($_isConsensual ? "loveInterest" : "loveRape")>> <<else>> <<set $_kissType to ($_isConsensual ? "consensual" : "rape")>> <</if>> <<takeKissVirginity _args[0] $_kissType>> <</widget>> /* Argument 0 is the npc, argument 1 is their virginity. */ <<widget "takeNPCVirginity">> <<set $_npcId to _args[0]>> <<set $_vType to _args[1]>> <!-- if the first argument is a name, find which npc has that name, else assume it is an index. --> <<if typeof $_npcId is "string">> <<set $_npcId to $NPCList.findIndex(npc => npc.fullDescription === $_npcId)>> <</if>> <<if $_npcId isnot undefined and $_npcId gte 0>> <<set $_npc to $NPCList[$_npcId]>> <<set $_straponvirginityIgnore to ($_vType is "penile" and npcHasStrapon($_npcId))>> <</if>> <<if $_npc and $_vType and $_npc.virginity and $_npc.virginity[$_vType] and ($wraith.mimic isnot $_npc.fullDescription) and !$_straponvirginityIgnore>> <<if ($_vType is "vaginal" or $_vType is "penile") and $_npc.virginity.temple is true and $templePromised isnot $_npc.fullDescription>> <<set $_npc.virginity.temple to false>> <<if !$activeNightmare and $NPCNameList.indexOf($_npc.fullDescription) isnot -1>> <<set $NPCName[$NPCNameList.indexOf($_npc.fullDescription)].virginity.temple to false>> <</if>> <</if>> /* note: virginity must be exactly equal to true; only true means that they still have their virginity. */ <<if $_npc.virginity[$_vType] is true>> <<personselect $_npcId>> <<set $_npc.virginity[$_vType] to "player">> <<switch $_vType>> <<case "vaginal">> <<set $speechNPCVaginaVirgin to 1>> <span class="pink">You feel <<his>> hymen tear, forever robbing <<him>> of <<his>> purity.</span> <<if $demon gte 6>> <span class="lewd">You feel a surge of pleasure unlike any other as you defile <<him>> and spread your impurity.</span> <<stress -50>><<trauma -50>><<lllstress>><<llltrauma>> <</if>> <<arousal 2000>><<ggarousal>> <br> <<case "penile">> <<set $speechNPCPenisVirgin to 1>> <span class="pink">You feel <<his>> foreskin separate from <<his>> glans, forever robbing <<him>> of <<his>> purity.</span> <<if $demon gte 6>> <span class="lewd">You feel a surge of pleasure unlike any other as you defile <<him>> and spread your impurity.</span> <<stress -50>><<trauma -50>><<lllstress>><<llltrauma>> <</if>> <<arousal 2000>><<ggarousal>> <br> <<case "anal">> <<set $speechNPCAnusVirgin to 1>> <span class="pink">It's a tight fit. This is probably <<his>> first time doing this.</span> <<arousal 2000>><<ggarousal>> <br> <<case "oral">> <<set $speechNPCOralVirgin to 1>> <span class="pink"><<He>> looks surprised, as if <<he>> wasn't expecting the taste. This is probably <<his>> first time.</span> <<arousal 1500>><<ggarousal>> <br> <<case "kiss">> <<set $speechNPCKissVirgin to 1>> <<set _npcKissVirginTemp to 1>> <<case "handholding">> <<set $speechNPCHandholdingVirgin to 1>> <span class="green"><<His>> hand clenches, and <<he>> looks slightly nervous.</span> <<default>> <</switch>> <<if $activeNightmare>> <<if $_npc.fullDescription is "Sydney" and ($_vType is "vaginal" or $_vType is "penile")>> <<displayFeatFake "Sydney the Pure Hearted">> <</if>> <<else>> <<if $NPCNameList.includes($_npc.fullDescription)>> <<run $virginTaken[$_vType].pushUnique($_npc.fullDescription)>> <<else>> /* non-named npcs' descriptions are not unique. ~15kb of uncompressed save bloat per 1000 virginities taken. acceptable until npc rework */ <<run $virginTaken[$_vType].push($_npc.fullDescription)>> <</if>> <<set $_i to $NPCNameList.indexOf($_npc.fullDescription)>> <<if $_i isnot -1>> <<if $_npc.fullDescription is "Sydney" and ($_vType is "vaginal" or $_vType is "penile")>> <<earnFeat "Sydney the Pure Hearted">> <</if>> <<set $NPCName[$_i].virginity to $_npc.virginity>> <<if !$NPCName[$_i].virginityDetails>> <<set $NPCName[$_i].virginityDetails to {}>> <</if>> <<set $NPCName[$_i].virginityDetails[$_vType] to { timestamp: Time.date.timeStamp, taker: "pc", passage: $passage, }>> <<if $combat>> <<set $NPCName[$_i].virginityDetails[$_vType].consensual to !!$consensual>> <<set $NPCName[$_i].virginityDetails[$_vType].position to $position>> <<elseif _npcConsensualOverride isnot undefined>> <<set $NPCName[$_i].virginityDetails[$_vType].consensual to _npcConsensualOverride>> <<unset _npcConsensualOverride>> <</if>> <<if $_vType is "penile">> <<set $NPCName[$_i].virginityDetails[$_vType].npcPenisSize to $NPCName[$_i].penissize>> <<set $NPCName[$_i].virginityDetails[$_vType].npcPenisdesc to $NPCName[$_i].penisdesc>> <<elseif ["vaginal", "anal", "oral"].includes($_vType)>> <<if playerHasStrapon() or $player.penisExist>> <<set $NPCName[$_i].virginityDetails[$_vType].playerPenisSize to playerPenisSize()>> <</if>> <</if>> <</if>> <</if>> <</if>> <</if>> <</widget>> <<widget "NPCVirginityTakenByOther">> <!-- Argument 0 is the npc, argument1 is the virginity, argument 2 is the thing taking the virginity --> <!-- example usage: <<NPCVirginityTakenByOther "Robin" "vaginal" $NPCList[0].fullDescription>> --> <!-- example usage: <<NPCVirginityTakenByOther 0 "anal" $tentacles[$tentacleindex].fullDesc>> --> <<set $_npcId to _args[0]>> <<set $_vType to _args[1]>> <<set $_takerDesc to _args[2]>> <<set _npcVirgin to {}>> <!-- if the first argument is a name, find which npc has that name, else assume it is an index. --> <<if typeof $_npcId is "string">> <<set $_npc to $NPCList.find(npc => npc.fullDescription === $_npcId)>> <<if $_npc is undefined>> <<set $_npc to $NPCName.find(npc => npc.description === $_npcId)>> <<set $_isNamedOnly to ($_npc isnot undefined)>> <</if>> <<elseif $_npcId isnot undefined>> <<set $_npc to $NPCList[$_npcId]>> <</if>> <<if $_npc and $_npc.penisdesc && $_npc.penisdesc.includes("strap-on")>> <<set $_straponvirginityIgnore to ($_vType is "penile")>> <</if>> <<if $_npc and $_vType and $_npc.virginity and $_npc.virginity[$_vType] is true>> <!-- note: virginity must be exactly equal to true; only true means that they still have their virginity. --> <!-- note: NTR is never going to be a thing, but we record this bc it might be useful to remember HOW an npc's virginity was lost, and to what. beast/tentacle/etc --> <<set $_npc.virginity[$_vType] to $_takerDesc>> <<if !$_npc.virginityDetails>> <<set $_npc.virginityDetails to {}>> <</if>> <<set $_npc.virginityDetails[$_vType] to { timestamp: Time.date.timeStamp, taker: $_takerDesc, passage: $passage, }>> <<if $combat>> <<set $_npc.virginityDetails[$_vType].consensual to !!$consensual>> <<set $_npc.virginityDetails[$_vType].position to $position>> <</if>> <<if $_vType is "penile">> <<set $_npc.virginityDetails[$_vType].npcPenisSize to $_npc.penissize>> <<set $_npc.virginityDetails[$_vType].npcPenisdesc to $_npc.penisdesc>> <<elseif ["vaginal", "anal", "oral"].includes($_vType)>> <<set $_npcIndex to $NPCNameList.indexOf($_takerDesc)>> <<if $_npcIndex isnot -1>> <<set $_npc.virginityDetails[$_vType].npcPenisSize to $NPCName[$_npcIndex].penissize>> <<set $_npc.virginityDetails[$_vType].npcPenisdesc to $NPCName[$_npcIndex].penisdesc>> <<else>> <<run $NPCList.forEach(npc => { if (npc.fullDescription is $_takerDesc) $_npc.virginityDetails[$_vType].npcPenisSize to npc.penissize; if (npc.fullDescription is $_takerDesc) $_npc.virginityDetails[$_vType].npcPenisdesc to npc.penisdesc; })>> <</if>> <</if>> <!-- if the npc is named, this will find and update their entry in $NPCName --> <<if !$_isNamedOnly>> <<set $_i to $NPCNameList.indexOf($_npc.fullDescription)>> <<if $_i isnot -1>> <<set $NPCName[$_i].virginity to $_npc.virginity>> <<set $NPCName[$_i].virginityDetails ||= {}>> <!-- Doubled up due to the way this widget works --> <<set $NPCName[$_i].virginityDetails[$_vType] to { timestamp: Time.date.timeStamp, taker: $_takerDesc, passage: $passage, }>> <<if $combat>> <<set $NPCName[$_i].virginityDetails[$_vType].consensual to !!$consensual>> <<set $NPCName[$_i].virginityDetails[$_vType].position to $position>> <</if>> <<if $_vType is "penile">> <<set $NPCName[$_i].virginityDetails[$_vType].npcPenisSize to $NPCName[$_i].penissize>> <<set $NPCName[$_i].virginityDetails[$_vType].npcPenisdesc to $NPCName[$_i].penisdesc>> <<elseif ["vaginal", "anal", "oral"].includes($_vType)>> <<run console.log($_takerDesc)>> <<set $_npcIndex to $NPCNameList.indexOf($_takerDesc)>> <<if $_npcIndex isnot -1>> <<set $NPCName[$_i].virginityDetails[$_vType].npcPenisSize to $NPCName[$_npcIndex].penissize>> <<set $NPCName[$_i].virginityDetails[$_vType].npcPenisdesc to $NPCName[$_npcIndex].penisdesc>> <<else>> <<run $NPCList.forEach(npc => { if (npc.fullDescription is $_takerDesc) $NPCName[$_i].virginityDetails[$_vType].npcPenisSize to npc.penissize; if (npc.fullDescription is $_takerDesc) $NPCName[$_i].virginityDetails[$_vType].npcPenisdesc to npc.penisdesc; })>> <</if>> <</if>> <</if>> <</if>> <!-- temporary variables to use for scenes. --> <<set _npcVirgin[$_vType] to true>> <</if>> <</widget>> <<widget "setupMidOrgasm">> <<if $setupMidOrgasm isnot undefined and $enemyarousal gte $enemyarousalmax>> <<set _midOrgasm to false>> <<for _n to 0; _n lt $NPCList.length;_n++>> <<if $NPCList[_n].maxOrgasms gt 1>> <<set $NPCList[_n].orgasms++>> <</if>> <<if $NPCList[_n].orgasms lt $NPCList[_n].maxOrgasms>> <<set _midOrgasm to true>> <</if>> <</for>> <<if _midOrgasm is true>> <<set $enemyarousal to $enemyarousalmax / 2>> <<set $finish to 0>> <<set $ejaculatingMid to true>> <</if>> <</if>> <</widget>> <<widget "combatTrainAdvance">>/*For use after a beast/monster in a train is finished with their turn. Loads next in line into $NPCList[0]. Loads them all back into $NPCList if at the end of the train.*/ <<clearnpc>> <<if $combatTrain.length gt 0>> <<set $combatTrain.length-->> <<set $combatTrain.active += 1>> <<loadNPC 0 `"beast_" + $combatTrain.active`>> <<if $NPCList[0].monster is "monster">> <<set $monster to 1>> <<else>> <<set $monster to 0>> <</if>> <<else>> <<for _e_n to 0; _e_n lt $combatTrain.total_length + 1; _e_n++>> <<loadNPC _e_n `"beast_" + _e_n`>> <<clearNPC `"beast_" + _e_n`>> <</for>> <</if>> <<set $active_enemy to 0>> <<unset $hypnosis_deviancy_check>> <<unset $otherFilled>> <<unset $leglocktarget>> <</widget>> <<widget "beastTrainGenerate">>/*Saves all beasts/monsters in $NPCList, then loads the first into slot 0.*/ <<set _enemyno to $enemyno - 1>> <<set $combatTrain to { length: _enemyno, total_length: _enemyno, active: 0, pronouns: [], monsters: [], beastTypes: [] }>> <<for _e_n to 0; _e_n lt $enemyno; _e_n++>> <<saveNPC _e_n `"beast_" + _e_n`>> <<set $combatTrain.beastTypes.push($NPCList[_e_n].type)>> <<set $combatTrain.pronouns.push($NPCList[_e_n].pronoun)>> <<set $combatTrain.monsters.push($NPCList[_e_n].monster)>> <</for>> <<clearnpc>> <<loadNPC 0 beast_0>> <</widget>> /* Cannot remove as it is used in combat logic */ <<widget "leg_position">> <<set $_parts to [$anususe, $vaginause, $chestuse, $mouthuse]>> <<if $machine and $machine.tattoo and ["left_thigh", "right_thigh"].includes($machine.tattoo.use)>> <<set _leg_position to "up">> <<elseif $_parts.includes("penis") or $_parts.includes(1)>> <<set _leg_position to "up">> <<else>> <<set _leg_position to "down">> <</if>> <</widget>> /* Should ideally only be used if you're sure one npc is in this position */ /* Selects the NPC that has the given body part (chest, mouth, vagina) set to the given value */ /* Useful when you know one of them is in a given position by looking at the PC, but aren't sure which */ <<widget "selectNpcWithPartInPosition">> <<if _args[0] and _args[1]>> <<set $_part to _args[0]>> <<set $_position to _args[1]>> <<unset _npc>> <<for _j = 0; _j lt $enemynomax; _j++>> <<if $_part is "hand" and ($NPCList[_j]["lefthand"] is $_position or $NPCList[_j]["righthand"] is $_position)>> <<personselect _j>> <<set _npc to $NPCList[_j]>> <<break>> <<elseif $NPCList[_j][$_part] is $_position>> <<personselect _j>> <<set _npc to $NPCList[_j]>> <<break>> <</if>> <</for>> <<if _index isnot undefined>> <<personselect _j>> <<else>> <!-- Should we throw an error? If we suspect an NPC part is in this position and don't find one, is that a bug? --> <</if>> <<else>> <<run throw new Error("selectNpcWithPartInPosition used with incorrect number of variables (or one is undefined)")>> <</if>> <</widget>> <<widget "selectNpcWithPartInPositionAnus">> <<if _args[0]>> <<unset _npc>> <<for _j = 0; _j lt $enemynomax; _j++>> <<if $NPCList[_j].penis is _args[0] or $NPCList[_j].vagina is _args[0]>> <<personselect _j>> <<set _npc to $NPCList[_j]>> <<break>> <</if>> <</for>> <</if>> <</widget>> <<widget "cover_end">> <<if $enemyarousal gte $enemyarousalmax>> <<exit>> <</if>> <<if $leftarm is "vagina" or $rightarm is "vagina">> <<set $vaginause to 0>> <<elseif $leftarm is "coverpenis" or $rightarm is "coverpenis">> <<set $penisuse to 0>> <<elseif $leftarm is "anus" or $rightarm is "anus">> <<set $anususe to 0>> <<elseif $leftarm is "face" or $rightarm is "face">> <<set $face to 0>> <</if>> <</widget>> /* args[0] - 0-5 for npc, or "player", args[1] fo article (the, it, etc)*/ <<widget "condomDesc">><<silently>> <<if _args[1] is "it">> <<set _text_output to "it">> <<elseif _args[0] isnot "player" and !between(_args[0], 0, 5)>> <<run Errors.report("Bad arguments for <<condomDesc>> ", "args: " + JSON.stringify(_args) + "; stack: " + Utils.GetStack())>> <span class="error"><<print "Bad arguments for condomDesc. args: " + JSON.stringify(_args) + "; stack: " + Utils.GetStack()>></span> <<else>> <<set $_condomArticle to (_args[1] ? _args[1] : "a")>> <<set $_condom to (_args[0] ? _args[0] : 0)>> <<set _text_output to $_condomArticle>> <<if $_condom is "player" and $player.condom>> <<set $_condomDesc to clone($player.condom)>> <<elseif $NPCList[$_condom].condom>> <<set $_condomDesc to clone($NPCList[$_condom].condom)>> <<else>> <<set _text_output to "ERROR: Condom $_condom invalid">> <</if>> <<if $_condomDesc.colour is "lblue">> <<set $_colourName to "light blue">> <<else>> <<set $_colourName to $_condomDesc.colour>> <</if>> <<if $_condomArticle is "a">> <<set _text_output += (["a","e","i","o","u","A","E","I","O","U"].some(letter => $_colourName.startsWith(letter)) ? "n " + $_colourName + " " : " " + $_colourName + " ")>> <<elseif $_condomArticle is "the">> <<set _text_output += " ">> <<else>> <<set _text_output += " " + $_colourName + " ">> <</if>> <<if $_condomDesc.type isnot "plain">> <<set _text_output += $_condomDesc.type + " ">> <</if>> <<set _text_output += "condom">> <</if>> <</silently>><<print _text_output>><</widget>> /* args[0] - 0-5 for npc, args[1] "player" if the npc is equipping it on the player */ <<widget "equipNPCCondom">> <<set $_condomnpc to (_args[0] ? _args[0] : 0)>> <<if $NPCList[$_condomnpc].condom>> <<if _args[1] is "player">> <<set $player.condom to clone($NPCList[$_condomnpc].condom)>> <<set $player.condom.worn to true>> <<run delete $player.condom.willUse>> <<set $NPCList[$_condomnpc].condom to false>> <<else>> <<set $NPCList[$_condomnpc].condom.worn to true>> <</if>> <<set $NPCList[$_condomnpc].condomAsk to true>> <<else>> <span class="red">ERROR: NPC condom $_condomnpc not defined.</span> <</if>> <</widget>> /* args[0] - 0-5 for npc, args[1] "player" if the npc is removing it from the player */ <<widget "removeNPCCondom">> <<set $_condomnpc to (_args[0] ? _args[0] : 0)>> <<if _args[1] is "player">> <<set $player.condom to false>> <<else>> <<set $NPCList[$_condomnpc].condom to false>> <</if>> <</widget>> /* For the player equipping their own condom on themselves */ <<widget "equipPlayerCondom">> <<set $player.condom to { state: (random(0,100) gt 98 ? "defective" : "normal"), type: "plain", colour: setup.colours.condom[random(0, (setup.colours.condom.length -1))].csstext, worn: true }>> <<set $condoms -= 1>> <</widget>> /* For the player removing any condom from themselves */ <<widget "removePlayerCondom">> <<set $player.condom to false>> <</widget>> <<widget "giveNPCCondom">> <<set $_condomnpc to (_args[0] ? _args[0] : 0)>> <<if $NPCList[$_condomnpc].condom>> <span class="red">ERROR: NPC condom $_condomnpc overlapped with existing condom.</span> <<else>> <<set $NPCList[$_condomnpc].condom to { willUse: true, state: (random(0,100) gt 98 ? "defective" : "normal"), type: "plain", colour: setup.colours.condom[random(0, (setup.colours.condom.length -1))].csstext, worn: false }>> <<set $condoms -= 1>> <<set $NPCList[$_condomnpc].condomCanGive to false>> <<npcCondomEquipImmediate $_condomnpc "it">> <</if>> <</widget>> <<widget "npcCondomEquipImmediate">> <<set $_condomnpc to (_args[0] ? _args[0] : 0)>> <<set $_condomArticle to (_args[1] ? _args[1] : 0)>> <<if $NPCList[$_condomnpc].condom and $NPCList[$_condomnpc].condom.willUse>> /*Your penis*/ <<if $penisstate is "entrance" or $penisstate is "imminent" or $penisstate is "otheranusentrance" or $penisstate is "otheranusimminent">> <<if ($NPCList[$_condomnpc].vagina.toString().includes("penis") or $NPCList[$_condomnpc].penis.toString().includes("otheranus")) and !$player.condom and $parasite.penis.name is undefined>> <<personselect $_condomnpc>> <<if playerChastity("penis")>> <<He>> tries to put a condom on your penis, but can't seem to get it over your $worn.genitals.name. <span class="red"><<He>> quickly gives up.</span> <<set $NPCList[$_condomnpc].condom.willUse to false>> <<else>> <span class="green"><<He_Short>> slips <<condomDesc $_condomnpc $_condomArticle>> onto your penis.</span> <<equipNPCCondom $_condomnpc "player">> <</if>> <</if>> <</if>> <<if $penisstate is "penetrated">> <<if $NPCList[$_condomnpc].vagina is "penis" and !$player.condom and $parasite.penis.name is undefined>> <<personselect $_condomnpc>> <span class="green"><<He_Short>> briefly frees your penis from <<his>> vagina, slips <<condomDesc $_condomnpc $_condomArticle>> on, and slides it back in.</span> <<equipNPCCondom $_condomnpc "player">> <</if>> <</if>> <<if $penisstate is "otheranus">> <<if $NPCList[$_condomnpc].penis is "otheranus" and !$player.condom and $parasite.penis.name is undefined>> <<personselect $_condomnpc>> <span class="green"><<He_Short>> briefly frees your penis from <<his>> ass, slips <<condomDesc $_condomnpc $_condomArticle>> on, and slides it back in.</span> <<equipNPCCondom $_condomnpc "player">> <</if>> <</if>> /*Their penis*/ <<if $vaginastate is "entrance" or $vaginastate is "imminent">> <<if ($NPCList[$_condomnpc].penis is "vaginaentrance" or $NPCList[$_condomnpc].penis is "vaginaimminent") and $NPCList[$_condomnpc].condom.worn is false and !$NPCList[$_condomnpc].penisdesc.includes("strap-on")>> <<personselect $_condomnpc>> <<if $NPCList[$_condomnpc].chastity.penis.includes("chastity")>> <<He>> tries to put a condom on, but can't seem to get it over <<his>> $NPCList[$_condomnpc].chastity.penis. <span class="red"><<He>> quickly gives up.</span> <<set $NPCList[$_condomnpc].condom.willUse to false>> <<else>> <span class="green"><<He_Short>> slips <<condomDesc $_condomnpc $_condomArticle>> onto <<his>> penis.</span> <<equipNPCCondom $_condomnpc>> <</if>> <</if>> <</if>> <<if $vaginastate is "penetrated">> <<if $NPCList[$_condomnpc].penis is "vagina" and $NPCList[$_condomnpc].condom.worn is false and !$NPCList[$_condomnpc].penisdesc.includes("strap-on")>> <<personselect $_condomnpc>> <span class="green">The <<person>> briefly withdraws <<his>> penis from your vagina, slips <<condomDesc $_condomnpc $_condomArticle>> on, and slides it back in.</span> <<equipNPCCondom $_condomnpc>> <</if>> <</if>> <<if $anusstate is "entrance" or $anusstate is "imminent">> <<if ($NPCList[$_condomnpc].penis is "anusentrance" or $NPCList[$_condomnpc].penis is "anusimminent") and $NPCList[$_condomnpc].condom.worn is false and !$NPCList[$_condomnpc].penisdesc.includes("strap-on")>> <<personselect $_condomnpc>> <span class="green">The <<person>> slips <<condomDesc $_condomnpc $_condomArticle>> onto <<his>> penis.</span> <<equipNPCCondom $_condomnpc>> <</if>> <</if>> <<if $anusstate is "penetrated">> <<if $NPCList[$_condomnpc].penis is "anus" and $NPCList[$_condomnpc].condom.worn is false and !$NPCList[$_condomnpc].penisdesc.includes("strap-on")>> <<personselect $_condomnpc>> <span class="green">The <<person>> briefly withdraws <<his>> penis from your ass, slips <<condomDesc $_condomnpc $_condomArticle>> on, and slides it back in.</span> <<equipNPCCondom $_condomnpc>> <</if>> <</if>> <</if>> <</widget>> <<widget "pickupSexToy">> <<if $consensual is 1 and hasSexStat("promiscuity", 3) and $enemytype is "man">> <<set $_hand to _args[0]>> <<set $_items to window.listUniqueCarriedSextoys()>> <<if $_hand is "left" and ($lefttarget is "self" or $options.targetYourself is false or _targetnumber is 1)>> <<if $_items.length gt 0>> <<set _itemsLeft to {}>> <<run $_items.forEach(item => { if (($currentSexToyRight is undefined or item.name isnot $currentSexToyRight.name) and item.type.includesAny("dildo","stroker") and !item.worn){ _itemsLeft[item.namecap] = item; } })>> <<if Object.keys(_itemsLeft).length gte 1>> <<set _leftaction["Pick up item:"] to "pickupSexToy">> <</if>> <</if>> <</if>> <<if $_hand is "right" and ($righttarget is "self" or $options.targetYourself is false or _targetnumber is 1)>> <<if $_items>> <<set _itemsRight to {}>> <<run $_items.forEach(item => { if (($currentSexToyLeft is undefined or item.name isnot $currentSexToyLeft.name) and item.type.includesAny("dildo","stroker") and !item.worn){ _itemsRight[item.namecap] = item; } })>> <<if Object.keys(_itemsRight).length gte 1>> <<set _rightaction["Pick up item:"] to "pickupSexToy">> <</if>> <</if>> <</if>> <</if>> <</widget>> <<widget "andButtPlug">><<silently>> <<set _text_output to (playerHasButtPlug() ? " and $worn.butt_plug.name" : "")>> <</silently>><<print _text_output>><</widget>> <<widget "alongsideButtPlug">><<silently>> <<set $_alongside to either("alongside","heedless of","pushing aside")>> <<set _text_output to (playerHasButtPlug() ? ", "+$_alongside+" your "+$worn.butt_plug.name : "")>> <</silently>><<print _text_output>><</widget>><h3>Character Viewer</h3> /*Old Variables*/ <<unset $characterViewerControls>> <<unset $debugClothesEquipped>> <<unset $debugClothesEquippedIntegrity>> <<unset $debugBodyState>> <<unset $debugSelectedColors>> <<unset $debugSkinColor>> /*End*/ <<if $options.images is 1>> <<if $characterViewer is undefined>> <<set $characterViewer to {}>> <<set $characterViewer.clothesEquipped to { head:0, face:0, neck:0, hands:0, handheld:0, upper:0, lower:0, under_upper:0, under_lower:0, legs:0, feet:0, genitals:0, }>> <<set $characterViewer.clothesIntegrity to { head:"full", face:"full", neck:"full", hands:"full", handheld:"full", upper:"full", lower:"full", under_upper:"full", under_lower:"full", legs:"full", feet:"full", genitals:"full", }>> <<set $characterViewer.bodyState to { show_face: true, facestyle: "default", facevariant: "default", freckles: false, brows: "none", mouth: "none", trauma: false, blink: true, eyes_half: false, eyes_bloodshot: false, tears: 0, blush: 0, hairStage: "none", hairType: "default", fringeType: "default", fringeStage: "short", fringePosition: "back", breastSize: 0, penisSize: "none", penisVirgin: "virgin", ballsExist: true, bellySize: 0, vaginaCum: 0, anusCum: 0, mouthCum: 0, bodytype: 0, rightArmCovering: false, leftArmCovering: false, angelHalo:"hidden", angelWings:"hidden", angelWingsLeftType:"idle", angelWingsRightType:"idle", angelWingsLayer:"front", fallenAngelHalo:"hidden", fallenAngelWings:"hidden", fallenAngelWingsLeftType:"idle", fallenAngelWingsRightType:"idle", fallenAngelWingsLayer:"front", demonHorns:"hidden", demonHornsLayer:"back", demonTail:"hidden", demonTailType:"idle", demonTailLayer:"front", demonWings:"hidden", demonWingsType:"idle", demonWingsLayer:"front", wolfEars:"hidden", wolfTail:"hidden", wolfTailLayer:"front", wolfPits:"hidden", wolfPubes:"hidden", wolfCheeks:"hidden", catEars:"hidden", catTail:"hidden", catTailLayer:"front", catTailType:"idle", cowHorns:"hidden", cowHornsLayer:"back", cowEars:"hidden", cowTail:"hidden", cowTailLayer:"front", birdEyes:"hidden", birdMalar:"hidden", birdPlumage:"hidden", birdPubes:"hidden", birdWings:"hidden", birdWingsLeftType:"idle", birdWingsRightType:"idle", birdWingsLayer:"front", birdTail:"hidden", birdTailLayer:"front", foxEars:"hidden", foxTail:"hidden", foxTailLayer:"front", foxCheeks:"hidden", }>> <<set $characterViewer.colours to { dyedHairPart: "full", hair_colour_style: "simple", hair: "red", hair_colour_gradient: {style: "low-ombre", colours: ["red", "red"]}, hair_fringe_colour_style: "simple", fringe: "red", hair_fringe_colour_gradient: {style: "low-ombre", colours: ["red", "red"]}, eyesl: "purple", eyesr: "purple", head:["Range", "Range"], face:["Range", "Range"], neck:["Range", "Range"], hands:["Range", "Range"], handheld:["Range", "Range"], upper:["Range", "Range"], lower:["Range", "Range"], under_upper:["Range", "Range"], under_lower:["Range", "Range"], legs:["Range", "Range"], feet:["Range", "Range"], genitals:["Range", "Range"], }>> <<set $characterViewer.patterns to { head:["Range", "Range"], face:["Range", "Range"], neck:["Range", "Range"], hands:["Range", "Range"], handheld:["Range", "Range"], upper:["Range", "Range"], lower:["Range", "Range"], under_upper:["Range", "Range"], under_lower:["Range", "Range"], legs:["Range", "Range"], feet:["Range", "Range"], genitals:["Range", "Range"], }>> <<set $characterViewer.skinColour to { style:"", type: "light", range: 0, }>> <<set $characterViewer.controls to { charactersToShow: 1, page: "body", animations: true, autoRefresh: true, expand: false, }>> <</if>> <<if !$characterViewer.colours.hair_colour_style>> <<set $characterViewer.colours.hair_colour_style to "simple">> <<set $characterViewer.colours.hair_colour_gradient to {style: "low-ombre", colours: ["red", "red"]}>> <<set $characterViewer.colours.hair_fringe_colour_style to "simple">> <<set $characterViewer.colours.hair_fringe_colour_gradient to {style: "low-ombre", colours: ["red", "red"]}>> <</if>> <<if $tempCharacterViewerControls>> <<set $characterViewer.controls to clone($tempCharacterViewerControls)>> <<unset $tempCharacterViewerControls>> <</if>> <<if !_clothes>> <<clothesTestingGenerateClothes>> <</if>> <div id="images"> <<clothesTestingImageGenerateAll>> </div> <div style="clear:both;"></div> <<if !$characterViewer.controls.autoRefresh>> <br> <<link "Refresh Image">><<clothesTestingImageUpdate>><</link>> <br> <</if>> <div id="controlsNav"> <br> <<link "Body">> <<set $characterViewer.controls.page to "body">> <<removeclass "#controls-body" "hidden">> <<addclass "#controls-face" "hidden">> <<addclass "#controls-hair" "hidden">> <<addclass "#controls-transformations" "hidden">> <<addclass "#controls-clothes" "hidden">> <<addclass "#controls-export" "hidden">> <</link>> | <<link "Face">> <<set $characterViewer.controls.page to "face">> <<addclass "#controls-body" "hidden">> <<removeclass "#controls-face" "hidden">> <<addclass "#controls-hair" "hidden">> <<addclass "#controls-transformations" "hidden">> <<addclass "#controls-clothes" "hidden">> <<addclass "#controls-export" "hidden">> <</link>> | <<link "Hair">> <<set $characterViewer.controls.page to "hair">> <<addclass "#controls-body" "hidden">> <<addclass "#controls-face" "hidden">> <<removeclass "#controls-hair" "hidden">> <<addclass "#controls-transformations" "hidden">> <<addclass "#controls-clothes" "hidden">> <<addclass "#controls-export" "hidden">> <</link>> | <<link "Transformations">> <<set $characterViewer.controls.page to "transformations">> <<addclass "#controls-body" "hidden">> <<addclass "#controls-face" "hidden">> <<addclass "#controls-hair" "hidden">> <<removeclass "#controls-transformations" "hidden">> <<addclass "#controls-clothes" "hidden">> <<addclass "#controls-export" "hidden">> <</link>> | <<link "Clothes">> <<set $characterViewer.controls.page to "clothes">> <<addclass "#controls-body" "hidden">> <<addclass "#controls-face" "hidden">> <<addclass "#controls-hair" "hidden">> <<addclass "#controls-transformations" "hidden">> <<removeclass "#controls-clothes" "hidden">> <<addclass "#controls-export" "hidden">> <</link>> | <<link "Export/Settings">> <<set $characterViewer.controls.page to "export">> <<addclass "#controls-body" "hidden">> <<addclass "#controls-face" "hidden">> <<addclass "#controls-hair" "hidden">> <<addclass "#controls-transformations" "hidden">> <<addclass "#controls-clothes" "hidden">> <<removeclass "#controls-export" "hidden">> <</link>> | <br> </div> <br> <div id="controls" class="no-numberify"> <div id="controls-body" @class="$characterViewer.controls.page is 'body' ? '' : 'hidden'"> <<clothesTestingBodyControls>> </div> <div id="controls-face" @class="$characterViewer.controls.page is 'face' ? '' : 'hidden'"> <<clothesTestingFaceControls>> </div> <div id="controls-hair" @class="$characterViewer.controls.page is 'hair' ? '' : 'hidden'"> <<clothesTestingHairControls>> </div> <div id="controls-transformations" @class="$characterViewer.controls.page is 'transformations' ? '' : 'hidden'"> <<clothesTestingTransformationsControls>> </div> <div id="controls-clothes" @class="$characterViewer.controls.page is 'clothes' ? '' : 'hidden'"> <<characterViewerModelClothesControls>> </div> </div> <div id="controls-export" @class="$characterViewer.controls.page is 'export' ? '' : 'hidden'"> <div class="no-numberify"><<characterViewerModelExportControls>></div> </div> <br> <<link [[Temp save|$passage]]>><</link>> <br><br> <<link [[Reset Character|$passage]]>> <<set $tempCharacterViewerControls to clone($characterViewer.controls)>> <<unset $characterViewer>> <</link>> | <<link [[Reset All|$passage]]>> <<unset $characterViewer>> <</link>> <<if $characterViewer.controls.autoRefresh>> <<run $(() => $('#controls input, #controls select').on('input change', e => wikifier('<<clothesTestingImageUpdate>>')) )>> <</if>> <<if $characterViewer.controls.expand>> <<addclass "#passages" "debugPassages">> <</if>> <<else>> images disabled <</if>> <br><br> <<link [[Return|$lastPassage]]>> <<unset $characterViewer>> <<unset $lastPassage>> <<removeclass "#passages" "debugPassages">> <</link>><<widget "clothesTestingImageUpdate">> <<replace #images>> <<clothesTestingImageGenerateAll>> <</replace>> <</widget>> <<widget "clothesTestingImageGenerateAll">> <<set _test to []>> <<for _i to 0; _i lt $characterViewer.controls.charactersToShow; _i++>> <<capture _i>> <div @id="'no' + _i" class="left debug-hideImageOverflow debug-images"> <<characterViewerModel _i>> </div> <</capture>> <</for>> <</widget>> <<widget "clothesTestingGenerateClothes">> <<set _clothes to {}>> <<set _equip to ["upper","lower","under_upper","under_lower","head","face","neck","hands", "handheld","legs","feet","genitals"]>> <<for _i to 0; _i lt _equip.length; _i++>> <<set _slot to _equip[_i]>> <<set _clothes[_slot] to {}>> <<set _keys to Object.keys(setup.clothes[_slot])>> <<for _j to 0; _j lt _keys.length; _j++>> <<if _clothes[_slot][setup.clothes[_slot][_j].name] is undefined>> <<set _clothes[_slot][setup.clothes[_slot][_j].name] to setup.clothes[_slot][_j].index>> <</if>> <</for>> <</for>> <</widget>> <<widget "clothesTestingBodyControls">> <h4>Body</h4> <<set _penisSize to {"None":"none","Micro":"-2", "Mini":"-1", "Tiny":"0", "Small":"1", "Normal":"2", "Large":"3", "Enormous":"4"}>> <<set _breastNames to ["Flat", "Budding", "Tiny", "Small", "Pert", "Modest", "Full", "Large", "Ample", "Massive", "Huge", "Gigantic", "Enormous"]>> <<set _liquidNames to ["None","Drops","Some","Lots","Dripping","Overflowing"]>> <<link "Reset">> <<set $characterViewer.bodyState.bodytype to 0>> <<set $characterViewer.skinColour.type to "light">> <<set $characterViewer.skinColour.range to 0>> <<set $characterViewer.bodyState.penisSize to "none">> <<set $characterViewer.bodyState.penisVirgin to "virgin">> <<set $characterViewer.bodyState.ballsExist to true>> <<set $characterViewer.bodyState.breastSize to 0>> <<set $characterViewer.bodyState.cleavage to false>> <<set $characterViewer.bodyState.bellySize to 0>> <<set $characterViewer.bodyState.vaginaCum to 0>> <<set $characterViewer.bodyState.anusCum to 0>> <<set $characterViewer.bodyState.mouthCum to 0>> <<set $characterViewer.bodyState.leftArmCovering to false>> <<set $characterViewer.bodyState.rightArmCovering to false>> <<replace "#controls-body">><<clothesTestingBodyControls>><</replace>> <<clothesTestingImageUpdate>> <<if $characterViewer.controls.autoRefresh>> <<run $(() => $('#controls-body input, #controls-body select').on('input change', e => wikifier('<<clothesTestingImageUpdate>>')) )>> <</if>> <</link>> | <<link "Randomise">> <<set $characterViewer.bodyState.bodytype to random(0,2)>> <<set $characterViewer.skinColour.type to ["light", "medium", "dark", "gyaru", "rlight", "rmedium", "rdark", "rgyaru", "ylight", "ymedium", "ydark", "ygyaru", "glight", "gmedium", "gdark", "ggyaru", "blight", "bmedium", "bdark", "bgyaru"].random()>> <<set $characterViewer.skinColour.range to random(0, 100)>> <<set $characterViewer.bodyState.penisSize to Object.values(_penisSize).random()>> <<set $characterViewer.bodyState.penisVirgin to ["virgin", "default"].random()>> <<set $characterViewer.bodyState.ballsExist to !random(1)>> <<set $characterViewer.bodyState.breastSize to random(0, _breastNames.length - 1)>> <<set $characterViewer.bodyState.cleavage to !random(1)>> <<set $characterViewer.bodyState.bellySize to random(0, 24)>> <<set $characterViewer.bodyState.vaginaCum to random(0, _liquidNames.length - 1)>> <<set $characterViewer.bodyState.anusCum to random(0, _liquidNames.length - 1)>> <<set $characterViewer.bodyState.mouthCum to random(0, _liquidNames.length - 1)>> <<set $characterViewer.bodyState.leftArmCovering to !random(1)>> <<set $characterViewer.bodyState.rightArmCovering to !random(1)>> <<replace "#controls-body">><<clothesTestingBodyControls>><</replace>> <<clothesTestingImageUpdate>> <<if $characterViewer.controls.autoRefresh>> <<run $(() => $('#controls-body input, #controls-body select').on('input change', e => wikifier('<<clothesTestingImageUpdate>>')) )>> <</if>> <</link>> <br><br> <span class="gold">Body Shape</span> <br> <label>Classic <<radiobutton "$characterViewer.bodyState.bodytype" 0 autocheck>></label> | <label>Slender <<radiobutton "$characterViewer.bodyState.bodytype" 1 autocheck>></label> | <label>Curvy <<radiobutton "$characterViewer.bodyState.bodytype" 2 autocheck>></label> | <label>Soft <<radiobutton "$characterViewer.bodyState.bodytype" 3 autocheck>></label> <br><br> <span class="gold">Skin Colour</span> <br> Neutral: <label>Light <<radiobutton "$characterViewer.skinColour.type" "light" autocheck>></label> | <label>Medium <<radiobutton "$characterViewer.skinColour.type" "medium" autocheck>></label> | <label>Dark <<radiobutton "$characterViewer.skinColour.type" "dark" autocheck>></label> | <label>Gyaru <<radiobutton "$characterViewer.skinColour.type" "gyaru" autocheck>> (Pale with no tan, very dark with full tan)</label> <br> Warm: <label>Light <<radiobutton "$characterViewer.skinColour.type" "rlight" autocheck>></label> | <label>Medium <<radiobutton "$characterViewer.skinColour.type" "rmedium" autocheck>></label> | <label>Dark <<radiobutton "$characterViewer.skinColour.type" "rdark" autocheck>></label> | <label>Gyaru <<radiobutton "$characterViewer.skinColour.type" "rgyaru" autocheck>></label> <br> Golden: <label>Light <<radiobutton "$characterViewer.skinColour.type" "glight" autocheck>></label> | <label>Medium <<radiobutton "$characterViewer.skinColour.type" "gmedium" autocheck>></label> | <label>Dark <<radiobutton "$characterViewer.skinColour.type" "gdark" autocheck>></label> | <label>Gyaru <<radiobutton "$characterViewer.skinColour.type" "ggyaru" autocheck>></label> <br> Olive: <label>Light <<radiobutton "$characterViewer.skinColour.type" "ylight" autocheck>></label> | <label>Medium <<radiobutton "$characterViewer.skinColour.type" "ymedium" autocheck>></label> | <label>Dark <<radiobutton "$characterViewer.skinColour.type" "ydark" autocheck>></label> | <label>Gyaru <<radiobutton "$characterViewer.skinColour.type" "ygyaru" autocheck>></label> <br> Cool: <label>Light <<radiobutton "$characterViewer.skinColour.type" "blight" autocheck>></label> | <label>Medium <<radiobutton "$characterViewer.skinColour.type" "bmedium" autocheck>></label> | <label>Dark <<radiobutton "$characterViewer.skinColour.type" "bdark" autocheck>></label> | <label>Gyaru <<radiobutton "$characterViewer.skinColour.type" "bgyaru" autocheck>></label> <br><br> <label>Initial Tan: <<numberslider "$characterViewer.skinColour.range" $characterViewer.skinColour.range 0 100 1>></label> <br><br> <span class="gold">Penis Size</span> <br> <<set _keys to Object.keys(_penisSize)>> <<for _i to 0; _i lt _keys.length; _i++>> <label> <<print _keys[_i]>> <<print '<<radiobutton "$characterViewer.bodyState.penisSize" "'+_penisSize[_keys[_i]]+'" ' + ($characterViewer.bodyState.penisSize is _penisSize[_keys[_i]] ? "checked" : "") + '>>'>> </label> | <</for>> <br><br> <span class="gold">Penis Virginity</span> <br> <label>Virgin <<radiobutton "$characterViewer.bodyState.penisVirgin" "virgin" autocheck>></label> | <label>Non-Virgin <<radiobutton "$characterViewer.bodyState.penisVirgin" "default" autocheck>></label> | <br><br> <span class="gold">Testes</span><br> <label>Yes <<radiobutton "$characterViewer.bodyState.ballsExist" true autocheck>></label> | <label>No <<radiobutton "$characterViewer.bodyState.ballsExist" false autocheck>></label> | <br><br> <span class="gold">Breasts</span> <<numberslider "$characterViewer.bodyState.breastSize" $characterViewer.bodyState.breastSize 0 _breastNames.length-1 1>> <br> <label>Breast Cleavage: <<checkbox "$characterViewer.bodyState.cleavage" false true autocheck>></label> <br><br> <span class="gold">Belly Size</span> <br> <<numberslider "$characterViewer.bodyState.bellySize" $characterViewer.bodyState.bellySize 0 24 1>> <br><br> <span class="gold">Vagina Cum Amount</span> <br> <<numberslider "$characterViewer.bodyState.vaginaCum" $characterViewer.bodyState.vaginaCum 0 _liquidNames.length-1 1>> <br><br> <span class="gold">Anus Cum Amount</span> <br> <<numberslider "$characterViewer.bodyState.anusCum" $characterViewer.bodyState.anusCum 0 _liquidNames.length-1 1>> <br><br> <span class="gold">Mouth Cum Amount</span> <br> <<numberslider "$characterViewer.bodyState.mouthCum" $characterViewer.bodyState.mouthCum 0 _liquidNames.length-1 1>> <br><br> <label> <span class="gold">Left Arm Covering Chest:</span> <<checkbox "$characterViewer.bodyState.leftArmCovering" false true autocheck>> </label> <br> <label> <span class="gold">Right Arm Covering Crotch:</span> <<checkbox "$characterViewer.bodyState.rightArmCovering" false true autocheck>> </label> <br><br> <<run $(() => { function setupListener(name, labels) { let className = name.toLowerCase(); $('#numberslider-input-characterviewerbodystate' + className).on('input change', e => $('#numberslider-value-characterviewerbodystate' + className).html(" "+labels[e.currentTarget.value])); $('#numberslider-value-characterviewerbodystate' + className).html(" "+labels[$characterViewer.bodyState[name]]); } setupListener("breastSize", _breastNames); setupListener("vaginaCum", _liquidNames); setupListener("anusCum", _liquidNames); setupListener("mouthCum", _liquidNames); })>> <</widget>> <<widget "clothesTestingFaceControls">> <h4>Face</h4> <<set _browTypes to ["none", "top", "mid", "low", "orgasm"]>> <<set _mouthTypes to ["none", "neutral", "cry", "frown", "smile"]>> <<set _eyeColours to ["purple", "dark blue", "light blue", "amber", "hazel", "green", "red", "pink", "grey", "range"]>> <<link "Reset">> <<set $characterViewer.bodyState.show_face to true>> <<set $characterViewer.bodyState.freckles to false>> <<set $characterViewer.bodyState.brows to "none">> <<set $characterViewer.bodyState.blush to 0>> <<set $characterViewer.bodyState.mouth to "none">> <<set $characterViewer.bodyState.trauma to false>> <<set $characterViewer.bodyState.blink to false>> <<set $characterViewer.bodyState.eyes_half to false>> <<set $characterViewer.bodyState.eyes_bloodshot to false>> <<set $characterViewer.bodyState.tears to 0>> <<set $characterViewer.colours.eyesl to "purple">> <<set $characterViewer.colours.eyesr to "purple">> <<replace "#controls-face">><<clothesTestingFaceControls>><</replace>> <<clothesTestingImageUpdate>> <<if $characterViewer.controls.autoRefresh>> <<run $(() => $('#controls-face input, #controls-face select').on('input change', e => wikifier('<<clothesTestingImageUpdate>>')) )>> <</if>> <</link>> | <<link "Randomise">> <<set $characterViewer.bodyState.show_face to true>> <<set $characterViewer.bodyState.freckles to !random(1)>> <<set $characterViewer.bodyState.brows to _browTypes.random()>> <<set $characterViewer.bodyState.blush to random(4)>> <<set $characterViewer.bodyState.mouth to _mouthTypes.random()>> <<set $characterViewer.bodyState.trauma to !random(1)>> <<set $characterViewer.bodyState.blink to !random(1)>> <<set $characterViewer.bodyState.eyes_half to !random(1)>> <<set $characterViewer.bodyState.eyes_bloodshot to !random(1)>> <<set $characterViewer.bodyState.tears to random(4)>> <<set $characterViewer.colours.eyesl to _eyeColours.random()>> <<set $characterViewer.colours.eyesr to _eyeColours.random()>> <<replace "#controls-face">><<clothesTestingFaceControls>><</replace>> <<clothesTestingImageUpdate>> <<if $characterViewer.controls.autoRefresh>> <<run $(() => $('#controls-face input, #controls-face select').on('input change', e => wikifier('<<clothesTestingImageUpdate>>')) )>> <</if>> <</link>> <br><br> <span class="gold">Show Face</span><br> <label>Yes <<radiobutton "$characterViewer.bodyState.show_face" true autocheck>></label> | <label>No <<radiobutton "$characterViewer.bodyState.show_face" false autocheck>></label> | <br><br> <<if setup.faceStyleOptions.length gt 1>> <span class="gold">Face style:</span><br> <<listbox "$characterViewer.bodyState.facestyle" autoselect>> <<optionsfrom setup.faceStyleOptions>> <</listbox>> <br><br> <</if>> <span class="gold">Demeanour:</span><br> <<listbox "$characterViewer.bodyState.facevariant" autoselect>> <<optionsfrom setup.faceVariantOptions[$characterViewer.bodyState.facestyle]>> <</listbox>> <br><br> <span class="gold">Freckles</span><br> <label>Yes <<radiobutton "$characterViewer.bodyState.freckles" true autocheck>></label> | <label>No <<radiobutton "$characterViewer.bodyState.freckles" false autocheck>></label> | <br><br> <span class="gold">Brow</span><br> <<for $_name range _browTypes>> <label><<print $_name.toUpperFirst()>> <<radiobutton "$characterViewer.bodyState.brows" $_name autocheck>></label> | <</for>> <br><br> <span class="gold">Blush level</span><br> <label>None <<radiobutton "$characterViewer.bodyState.blush" 0 autocheck>></label> | <label>1 <<radiobutton "$characterViewer.bodyState.blush" 1 autocheck>></label> | <label>2 <<radiobutton "$characterViewer.bodyState.blush" 2 autocheck>></label> | <label>3 <<radiobutton "$characterViewer.bodyState.blush" 3 autocheck>></label> | <label>4 <<radiobutton "$characterViewer.bodyState.blush" 4 autocheck>></label> | <br><br> <span class="gold">Mouth</span><br> <<for $_name range _mouthTypes>> <label><<print $_name.toUpperFirst()>> <<radiobutton "$characterViewer.bodyState.mouth" $_name autocheck>></label> | <</for>> <br><br> <h4>Eyes</h4> <span class="gold">Show Trauma Eyes</span><br> <label>Yes <<radiobutton "$characterViewer.bodyState.trauma" true autocheck>></label> | <label>No <<radiobutton "$characterViewer.bodyState.trauma" false autocheck>></label> | <br><br> <span class="gold">Enable blinking</span><br> <label>Yes <<radiobutton "$characterViewer.bodyState.blink" true autocheck>></label> | <label>No <<radiobutton "$characterViewer.bodyState.blink" false autocheck>></label> | <br><br> <span class="gold">Enable Half Eyes</span><br> <label>Yes <<radiobutton "$characterViewer.bodyState.eyes_half" true autocheck>></label> | <label>No <<radiobutton "$characterViewer.bodyState.eyes_half" false autocheck>></label> | <br><br> <span class="gold">Enable Bloodshot eyes</span><br> <label>Yes <<radiobutton "$characterViewer.bodyState.eyes_bloodshot" true autocheck>></label> | <label>No <<radiobutton "$characterViewer.bodyState.eyes_bloodshot" false autocheck>></label> | <br><br> <span class="gold">Tears level</span><br> <label>None <<radiobutton "$characterViewer.bodyState.tears" 0 autocheck>></label> | <label>1 <<radiobutton "$characterViewer.bodyState.tears" 1 autocheck>></label> | <label>2 <<radiobutton "$characterViewer.bodyState.tears" 2 autocheck>></label> | <label>3<<radiobutton "$characterViewer.bodyState.tears" 3 autocheck>></label> | <label>4 <<radiobutton "$characterViewer.bodyState.tears" 4 autocheck>></label> | <br><br> <span class="gold">Left Eye Colour</span> <br> <label><span class="purple">Purple</span> <<radiobutton "$characterViewer.colours.eyesl" "purple" autocheck>></label> | <label><span class="blue">Dark Blue</span> <<radiobutton "$characterViewer.colours.eyesl" "dark blue" autocheck>></label> | <label><span class="lblue">Light Blue</span> <<radiobutton "$characterViewer.colours.eyesl" "light blue" autocheck>></label> | <label><span class="tangerine">Amber</span> <<radiobutton "$characterViewer.colours.eyesl" "amber" autocheck>></label> | <label><span class="brown">Hazel</span> <<radiobutton "$characterViewer.colours.eyesl" "hazel" autocheck>></label> | <label><span class="green">Green</span> <<radiobutton "$characterViewer.colours.eyesl" "green" autocheck>></label> | <label><span class="red">Red</span> <<radiobutton "$characterViewer.colours.eyesl" "red" autocheck>></label> | <label><span class="pink">Pink</span> <<radiobutton "$characterViewer.colours.eyesl" "pink" autocheck>></label> | <label><span class="grey">Grey</span> <<radiobutton "$characterViewer.colours.eyesl" "grey" autocheck>></label> | <label><span class="grey">Range</span> <<radiobutton "$characterViewer.colours.eyesl" "range" autocheck>></label> | <br><br> <span class="gold">Right Eye Colour</span> <br> <label><span class="purple">Purple</span> <<radiobutton "$characterViewer.colours.eyesr" "purple" autocheck>></label> | <label><span class="blue">Dark Blue</span> <<radiobutton "$characterViewer.colours.eyesr" "dark blue" autocheck>></label> | <label><span class="lblue">Light Blue</span> <<radiobutton "$characterViewer.colours.eyesr" "light blue" autocheck>></label> | <label><span class="tangerine">Amber</span> <<radiobutton "$characterViewer.colours.eyesr" "amber" autocheck>></label> | <label><span class="brown">Hazel</span> <<radiobutton "$characterViewer.colours.eyesr" "hazel" autocheck>></label> | <label><span class="green">Green</span> <<radiobutton "$characterViewer.colours.eyesr" "green" autocheck>></label> | <label><span class="red">Red</span> <<radiobutton "$characterViewer.colours.eyesr" "red" autocheck>></label> | <label><span class="pink">Pink</span> <<radiobutton "$characterViewer.colours.eyesr" "pink" autocheck>></label> | <label><span class="grey">Grey</span> <<radiobutton "$characterViewer.colours.eyesr" "grey" autocheck>></label> | <label><span class="grey">Range</span> <<radiobutton "$characterViewer.colours.eyesr" "range" autocheck>></label> | <br><br> <</widget>> <<widget "clothesTestingHairControls">> <h4>Hair</h4> <<set _hairLengths to ["short", "shoulder", "chest", "navel", "thighs", "feet"]>> <<set _hairColorByName to {"Red":"red", "Jet Black":"jetblack", "Black":"black", "Brown":"brown", "Soft Brown":"softbrown", "Light Brown":"lightbrown", "Blond":"blond", "Platinum Blond":"platinumblond", "Strawberry Blond":"strawberryblond", "Soft Blond":"softblond", "Ashy blond":"ashyblond", "Burnt Orange":"burntorange", "Ginger":"ginger", "Blue":"blue", "Green":"green", "Teal":"teal", "Pink":"pink", "Hotpink":"hotpink", "Softpink":"softpink", "Crimson":"crimson", "Purple":"purple","Medium Purple":"mediumpurple", "Bright Purple":"brightpurple", "White":"white", "Snow White":"snowwhite", "Deep Blue":"deepblue","Dark Lime":"darklime", "Toxic Green":"toxicgreen",}>> <<set _hairTypeByName to {}>> <<run setup.hairstyles.sides.forEach(style => { if (!V.shopClothingFilter || !V.shopClothingFilter.active || !V.shopClothingFilter.traits.length || style.type.find(type => V.shopClothingFilter.traits.includes(type))) T.hairTypeByName[style.name_cap] = style.variable; })>> <<set _fringeTypeByName to {}>> <<run setup.hairstyles.fringe.forEach(style => { if (!V.shopClothingFilter || !V.shopClothingFilter.active || !V.shopClothingFilter.traits.length || style.type.find(type => V.shopClothingFilter.traits.includes(type))) T.fringeTypeByName[style.name_cap] = style.variable; })>> <<link "Reset">> <<set $characterViewer.bodyState.hairStage to "none">> <<set $characterViewer.bodyState.hairType to "default">> <<set $characterViewer.colours.hair to Object.values(_hairColorByName)[0]>> <<set $characterViewer.colours.hair_colour_style to "simple">> <<set $characterViewer.colours.dyedHairPart to "full">> <<set $characterViewer.bodyState.fringeStage to "none">> <<set $characterViewer.bodyState.fringeType to "default">> <<set $characterViewer.colours.fringe to Object.values(_hairTypeByName)[0]>> <<set $characterViewer.colours.hair_fringe_colour_style to "simple">> <<replace "#controls-hair">><<clothesTestingHairControls>><</replace>> <<clothesTestingImageUpdate>> <<if $characterViewer.controls.autoRefresh>> <<run $(() => $('#controls-hair input, #controls-hair select').on('input change', e => wikifier('<<clothesTestingImageUpdate>>')) )>> <</if>> <</link>> | <<link "Randomise">> <<set $characterViewer.bodyState.hairStage to _hairLengths.random()>> <<set $characterViewer.bodyState.hairType to Object.values(_hairTypeByName).random()>> <<set $characterViewer.colours.hair to Object.values(_hairColorByName).random()>> <<set $characterViewer.colours.hair_colour_style to ["simple", "gradient"].random()>> <<set $characterViewer.colours.hair_colour_gradient.style to ["low-ombre", "high-ombre", "split", "face-frame"].random()>> <<set $characterViewer.colours.hair_colour_gradient.colours[0] to Object.values(_hairColorByName).random()>> <<set $characterViewer.colours.hair_colour_gradient.colours[1] to Object.values(_hairColorByName).random()>> <<set $characterViewer.colours.dyedHairPart to ["full", "split"].random()>> <<set $characterViewer.bodyState.fringeStage to _hairLengths.random()>> <<set $characterViewer.bodyState.fringeType to Object.values(_fringeTypeByName).random()>> <<set $characterViewer.colours.fringe to Object.values(_hairTypeByName).random()>> <<set $characterViewer.colours.hair_fringe_colour_style to ["simple", "gradient"].random()>> <<set $characterViewer.colours.hair_fringe_colour_gradient.style to ["low-ombre", "high-ombre", "split", "face-frame"].random()>> <<set $characterViewer.colours.hair_fringe_colour_gradient.colours[0] to Object.values(_hairTypeByName).random()>> <<set $characterViewer.colours.hair_fringe_colour_gradient.colours[1] to Object.values(_hairTypeByName).random()>> <<replace "#controls-hair">><<clothesTestingHairControls>><</replace>> <<clothesTestingImageUpdate>> <<if $characterViewer.controls.autoRefresh>> <<run $(() => $('#controls-hair input, #controls-hair select').on('input change', e => wikifier('<<clothesTestingImageUpdate>>')) )>> <</if>> <</link>> <br><br> <span class="gold">Hair Length</span> <br> <label>None <<radiobutton "$characterViewer.bodyState.hairStage" "none" autocheck>></label> | <<for $_name range _hairLengths>> <label><<print $_name.toUpperFirst()>> <<radiobutton "$characterViewer.bodyState.hairStage" $_name autocheck>></label> | <</for>> <br><br> <span class="gold">Hair Type</span> <br> <<listbox "$characterViewer.bodyState.hairType" autoselect>> <<optionsfrom _hairTypeByName>> <</listbox>> <br><br> <span class="gold">Colour Method: </span> <br> <span @class="$characterViewer.colours.dyedHairPart is 'full' ? 'goldLink' : ''"> <<link "Full">> <<set $characterViewer.colours.dyedHairPart to "full">> <<replace "#controls-hair">><<clothesTestingHairControls>><</replace>> <<clothesTestingImageUpdate>> <<if $characterViewer.controls.autoRefresh>> <<run $(() => $('#controls-hair input, #controls-hair select').on('input change', e => wikifier('<<clothesTestingImageUpdate>>')) )>> <</if>> <</link>> </span> | <span @class="$characterViewer.colours.dyedHairPart is 'split' ? 'goldLink' : ''"> <<link "Split">> <<set $characterViewer.colours.dyedHairPart to "split">> <<replace "#controls-hair">><<clothesTestingHairControls>><</replace>> <<clothesTestingImageUpdate>> <<if $characterViewer.controls.autoRefresh>> <<run $(() => $('#controls-hair input, #controls-hair select').on('input change', e => wikifier('<<clothesTestingImageUpdate>>')) )>> <</if>> <</link>> </span> <br><br> <div id="controls-hair-colour-simple" @class="$characterViewer.colours.hair_colour_style is 'simple' ? '' : 'hidden'"> <<link "Enable Two Tone for hair">> <<set $characterViewer.colours.hair_colour_style to "gradient">> <<addclass "#controls-hair-colour-simple" "hidden">> <<removeclass "#controls-hair-colour-gradient" "hidden">> <</link>> <br><br> <span class="gold">Hair Colour</span> <br> <<listbox "$characterViewer.colours.hair" autoselect>> <<optionsfrom _hairColorByName>> <</listbox>> <br><br> </div> <div id="controls-hair-colour-gradient" @class="$characterViewer.colours.hair_colour_style is 'simple' ? 'hidden' : ''"> <<link "Disable Two Tone for hair">> <<set $characterViewer.colours.hair_colour_style to "simple">> <<removeclass "#controls-hair-colour-simple" "hidden">> <<addclass "#controls-hair-colour-gradient" "hidden">> <</link>> <br><br> <span class="gold">Style:</span> <<listbox "$characterViewer.colours.hair_colour_gradient.style" autoselect>> <<option "Low Ombré" "low-ombre">> <<option "High Ombré" "high-ombre">> <<option "Split" "split">> <<option "Face-framing highlights" "face-frame">> <</listbox>> <br><br> <span class="gold">First Colour:</span> <br> <<listbox "$characterViewer.colours.hair_colour_gradient.colours[0]" autoselect>> <<optionsfrom _hairColorByName>> <</listbox>> <br><br> <span class="gold">Second Colour:</span> <br> <<listbox "$characterViewer.colours.hair_colour_gradient.colours[1]" autoselect>> <<optionsfrom _hairColorByName>> <</listbox>> <br><br> </div> <span class="gold">Fringe Length</span> <br> <label>None <<radiobutton "$characterViewer.bodyState.fringeStage" "none" autocheck>></label> | <<for $_name range _hairLengths>> <label><<print $_name.toUpperFirst()>> <<radiobutton "$characterViewer.bodyState.fringeStage" $_name autocheck>></label> | <</for>> <br><br> <span class="gold">Fringe Type</span> <br> <<listbox "$characterViewer.bodyState.fringeType" autoselect>> <<optionsfrom _fringeTypeByName>> <</listbox>> <br><br> <<if $characterViewer.colours.dyedHairPart is "split">> <div id="controls-hair-colourfringe-simple" @class="$characterViewer.colours.hair_fringe_colour_style is 'simple' ? '' : 'hidden'"> <<link "Enable Two Tone for fringe">> <<set $characterViewer.colours.hair_fringe_colour_style to "gradient">> <<addclass "#controls-hair-colourfringe-simple" "hidden">> <<removeclass "#controls-hair-colourfringe-gradient" "hidden">> <</link>> <br><br> <span class="gold">Fringe Colour</span> <br> <<listbox "$characterViewer.colours.fringe" autoselect>> <<optionsfrom _hairColorByName>> <</listbox>> <br><br> </div> <div id="controls-hair-colourfringe-gradient" @class="$characterViewer.colours.hair_fringe_colour_style is 'simple' ? 'hidden' : ''"> <<link "Disable Two Tone for fringe">> <<set $characterViewer.colours.hair_fringe_colour_style to "simple">> <<removeclass "#controls-hair-colourfringe-simple" "hidden">> <<addclass "#controls-hair-colourfringe-gradient" "hidden">> <</link>> <br><br> <span class="gold">Style:</span> <<listbox "$characterViewer.colours.hair_fringe_colour_gradient.style" autoselect>> <<option "Low Ombré" "low-ombre">> <<option "High Ombré" "high-ombre">> <<option "Split" "split">> <<option "Face-framing highlights" "face-frame">> <</listbox>> <br><br> <span class="gold">First Colour:</span> <br> <<listbox "$characterViewer.colours.hair_fringe_colour_gradient.colours[0]" autoselect>> <<optionsfrom _hairColorByName>> <</listbox>> <br><br> <span class="gold">Second Colour:</span> <br> <<listbox "$characterViewer.colours.hair_fringe_colour_gradient.colours[1]" autoselect>> <<optionsfrom _hairColorByName>> <</listbox>> <br><br> </div> <</if>> <</widget>> <<widget "clothesTestingTransformationsControls">> <h4>Transformations</h4> <<link "Reset">> /* Figured that it was only V. that was needed for this method to work, just as i was about done... */ <<set $characterViewer.bodyState to { ...V.characterViewer.bodyState, angelHalo:"hidden", angelWings:"hidden", angelWingsLeftType:"idle", angelWingsRightType:"idle", angelWingsLayer:"front", fallenAngelHalo:"hidden", fallenAngelWings:"hidden", fallenAngelWingsLeftType:"idle", fallenAngelWingsRightType:"idle", fallenAngelWingsLayer:"front", demonHorns:"hidden", demonHornsLayer:"back", demonTail:"hidden", demonTailType:"idle", demonTailLayer:"front", demonWings:"hidden", demonWingsType:"idle", demonWingsLayer:"front", wolfEars:"hidden", wolfTail:"hidden", wolfTailLayer:"front", wolfPits:"hidden", wolfPubes:"hidden", wolfCheeks:"hidden", catEars:"hidden", catTail:"hidden", catTailLayer:"front", catTailType:"idle", cowHorns:"hidden", cowHornsLayer:"back", cowEars:"hidden", cowTail:"hidden", cowTailLayer:"front", birdEyes:"hidden", birdMalar:"hidden", birdPlumage:"hidden", birdPubes:"hidden", birdWings:"hidden", birdWingsLeftType:"idle", birdWingsRightType:"idle", birdWingsLayer:"front", birdTail:"hidden", birdTailLayer:"front", foxEars:"hidden", foxTail:"hidden", foxTailLayer:"front", foxCheeks:"hidden", }>> <<replace "#controls-transformations">><<clothesTestingTransformationsControls>><</replace>> <<clothesTestingImageUpdate>> <<if $characterViewer.controls.autoRefresh>> <<run $(() => $('#controls-transformations input, #controls-transformations select').on('input change', e => wikifier('<<clothesTestingImageUpdate>>')) )>> <</if>> <</link>> | <<link "Randomise">> <<set $characterViewer.bodyState to { ...V.characterViewer.bodyState, angelHalo:["hidden", "default", "traditional"].random(), angelWings:["hidden", "default", "classic"].random(), angelWingsLeftType:["idle", "cover"].random(), angelWingsRightType:["idle", "cover"].random(), angelWingsLayer:["front", "back"].random(), fallenAngelHalo:["hidden", "default", "traditional", "celestial-gold", "celestial-black", "celestial-fallenplus"].random(), fallenAngelWings:["hidden", "default", "classic", "fallenplus", "classicfallenplus"].random(), fallenAngelWingsLeftType:["idle", "cover"].random(), fallenAngelWingsRightType:["idle", "cover"].random(), fallenAngelWingsLayer:["front", "back"].random(), demonHorns:["hidden", "default", "classic", "succubus"].random(), demonHornsLayer:["front", "back"].random(), demonTail:["hidden", "default", "classic", "succubus"].random(), demonTailType:["idle", "cover"].random(), demonTailLayer:["front", "back"].random(), demonWings:["hidden", "default", "succubus", "imp"].random(), demonWingsType:["idle", "cover"].random(), demonWingsLayer:["front", "back"].random(), wolfEars:["hidden", "default", "feral"].random(), wolfTail:["hidden", "default", "feral"].random(), wolfTailLayer:["front", "back"].random(), wolfPits:"hidden", wolfPubes:"hidden", wolfCheeks:["hidden", "feral"].random(), catEars:["hidden", "default"].random(), catTail:["hidden", "default"].random(), catTailLayer:["front", "back"].random(), catTailType:["idle", "cover"].random(), cowHorns:["hidden", "default"].random(), cowHornsLayer:["front", "back"].random(), cowEars:["hidden", "default", "spotted black", "spotted brown"].random(), cowTail:["hidden", "default", "black"].random(), cowTailLayer:["front", "back"].random(), birdEyes:["hidden", "default"].random(), birdMalar:["hidden", "default"].random(), birdPlumage:["hidden", "default"].random(), birdPubes:["hidden", "default"].random(), birdWings:["hidden", "default"].random(), birdWingsLeftType:["idle", "cover"].random(), birdWingsRightType:["idle", "cover"].random(), birdWingsLayer:["front", "back"].random(), birdTail:["hidden", "default"].random(), birdTailLayer:["front", "back"].random(), foxEars:["hidden", "default"].random(), foxTail:["hidden", "default"].random(), foxTailLayer:["front", "back"].random(), foxCheeks:["hidden", "default"].random(), }>> <<replace "#controls-transformations">><<clothesTestingTransformationsControls>><</replace>> <<clothesTestingImageUpdate>> <<if $characterViewer.controls.autoRefresh>> <<run $(() => $('#controls-transformations input, #controls-transformations select').on('input change', e => wikifier('<<clothesTestingImageUpdate>>')) )>> <</if>> <</link>> <br><br> <span class="gold">Angel:</span> <br> Wings: <<listbox "$characterViewer.bodyState.angelWings" autoselect>> <<option "Hide" "hidden">> <<option "Default" "default">> <<option "Classic" "classic">> <</listbox>> || Halo: <<listbox "$characterViewer.bodyState.angelHalo" autoselect>> <<option "Hide" "hidden">> <<option "Default" "default">> <<option "Traditional" "traditional">> <</listbox>> <br> Left Wing Type: <<listbox "$characterViewer.bodyState.angelWingsLeftType" autoselect>> <<option "Normal" "idle">> <<option "Cover" "cover">> <</listbox>> || Right Wing Type: <<listbox "$characterViewer.bodyState.angelWingsRightType" autoselect>> <<option "Normal" "idle">> <<option "Cover" "cover">> <</listbox>> <br> Wing Layering: <<listbox "$characterViewer.bodyState.angelWingsLayer" autoselect>> <<option "Front" "front">> <<option "Back" "back">> <</listbox>> <br><br> <span class="gold">Fallen Angel:</span> <br> Wings: <<listbox "$characterViewer.bodyState.fallenAngelWings" autoselect>> <<option "Hide" "hidden">> <<option "Default" "default">> <<option "Classic" "classic">> <<option "Feathered" "fallenplus">> <<option "Classic Feathered" "classicfallenplus">> <</listbox>> || Halo: <<listbox "$characterViewer.bodyState.fallenAngelHalo" autoselect>> <<option "Hide" "hidden">> <<option "Default" "default">> <<option "Celestial" "celestial">> <<option "Black Celestial" "celestial-black">> <<option "Forgiven Celestial" "celestial-fallenplus">> <<option "Traditional" "traditional">> <</listbox>> <br> Left Wing Type: <<listbox "$characterViewer.bodyState.fallenAngelWingsLeftType" autoselect>> <<option "Normal" "idle">> <<option "Cover" "cover">> <</listbox>> || Right Wing Type: <<listbox "$characterViewer.bodyState.fallenAngelWingsRightType" autoselect>> <<option "Normal" "idle">> <<option "Cover" "cover">> <</listbox>> <br> Wing Layering: <<listbox "$characterViewer.bodyState.fallenAngelWingsLayer" autoselect>> <<option "Front" "front">> <<option "Back" "back">> <</listbox>> <br><br> <span class="gold">Demon:</span> <br> Horns: <<listbox "$characterViewer.bodyState.demonHorns" autoselect>> <<option "Hide" "hidden">> <<option "Default" "default">> <<option "Classic" "classic">> <<option "Succubus" "succubus">> <</listbox>> || Tail: <<listbox "$characterViewer.bodyState.demonTail" autoselect>> <<option "Hide" "hidden">> <<option "Default" "default">> <<option "Classic" "classic">> <<option "Succubus" "succubus">> <</listbox>> || Demon Wings: <<listbox "$characterViewer.bodyState.demonWings" autoselect>> <<option "Hide" "hidden">> <<option "Default" "default">> <<option "Imp" "imp">> <<option "Succubus" "succubus">> <</listbox>> <br> Demon Wings Type: <<listbox "$characterViewer.bodyState.demonWingsType" autoselect>> <<option "Normal" "idle">> <<option "Cover" "cover">> <<option "Flaunt" "flaunt">> <</listbox>> <br> Demon Tail Type: <<listbox "$characterViewer.bodyState.demonTailType" autoselect>> <<option "Normal" "idle">> <<option "Cover" "cover">> <<option "Flaunt" "flaunt">> <</listbox>> <br> Horn Layering: <<listbox "$characterViewer.bodyState.demonHornsLayer" autoselect>> <<option "Front" "front">> <<option "Back" "back">> <</listbox>> || Tail Layering: <<listbox "$characterViewer.bodyState.demonTailLayer" autoselect>> <<option "Front" "front">> <<option "Back" "back">> <</listbox>> || Wing Layering: <<listbox "$characterViewer.bodyState.demonWingsLayer" autoselect>> <<option "Front" "front">> <<option "Back" "back">> <</listbox>> <br><br> <span class="gold">Wolf:</span> <br> Ears: <<listbox "$characterViewer.bodyState.wolfEars" autoselect>> <<option "Hide" "hidden">> <<option "Default" "default">> <<option "Feral" "feral">> <</listbox>> || Tail: <<listbox "$characterViewer.bodyState.wolfTail" autoselect>> <<option "Hide" "hidden">> <<option "Default" "default">> <<option "Feral" "feral">> <</listbox>> || Cheeks: <<listbox "$characterViewer.bodyState.wolfCheeks" autoselect>> <<option "Hide" "hidden">> <<option "Feral" "feral">> <</listbox>> <br> Tail Layering: <<listbox "$characterViewer.bodyState.wolfTailLayer" autoselect>> <<option "Front" "front">> <<option "Back" "back">> <</listbox>> <br><br> <span class="gold">Cat:</span> <br> Ears: <<listbox "$characterViewer.bodyState.catEars" autoselect>> <<option "Hide" "hidden">> <<option "Default" "default">> <</listbox>> || Tail: <<listbox "$characterViewer.bodyState.catTail" autoselect>> <<option "Hide" "hidden">> <<option "Default" "default">> <</listbox>> || Tail: <<listbox "$characterViewer.bodyState.catTailType" autoselect>> <<option "Normal" "idle">> <<option "Cover" "cover">> <<option "Flaunt" "flaunt">> <</listbox>> <br> Tail Layering: <<listbox "$characterViewer.bodyState.catTailLayer" autoselect>> <<option "Front" "front">> <<option "Back" "back">> <</listbox>> <br><br> <span class="gold">Cow:</span> <br> Horns: <<listbox "$characterViewer.bodyState.cowHorns" autoselect>> <<option "Hide" "hidden">> <<option "Default" "default">> <</listbox>> || Ears: <<listbox "$characterViewer.bodyState.cowEars" autoselect>> <<option "Hide" "hidden">> <<option "Default" "default">> <<option "Spotted black" "spotted black">> <<option "Spotted brown" "spotted brown">> <</listbox>> || Tail: <<listbox "$characterViewer.bodyState.cowTail" autoselect>> <<option "Hide" "hidden">> <<option "Default" "default">> <<option "Black" "black">> <</listbox>> <br> Horn Layering: <<listbox "$characterViewer.bodyState.cowHornsLayer" autoselect>> <<option "Front" "front">> <<option "Back" "back">> <</listbox>> || Tail Layering: <<listbox "$characterViewer.bodyState.cowTailLayer" autoselect>> <<option "Front" "front">> <<option "Back" "back">> <</listbox>> <br><br> <span class="gold">Bird:</span> <br> Eyes: <<listbox "$characterViewer.bodyState.birdEyes" autoselect>> <<option "Hide" "hidden">> <<option "Default" "default">> <</listbox>> || Malar: <<listbox "$characterViewer.bodyState.birdMalar" autoselect>> <<option "Hide" "hidden">> <<option "Default" "default">> <</listbox>> || Plumage: <<listbox "$characterViewer.bodyState.birdPlumage" autoselect>> <<option "Hide" "hidden">> <<option "Default" "default">> <</listbox>> || Pubes: <<listbox "$characterViewer.bodyState.birdPubes" autoselect>> <<option "Hide" "hidden">> <<option "Default" "default">> <</listbox>> || Tail: <<listbox "$characterViewer.bodyState.birdTail" autoselect>> <<option "Hide" "hidden">> <<option "Default" "default">> <</listbox>> <br> Wings: <<listbox "$characterViewer.bodyState.birdWings" autoselect>> <<option "Hide" "hidden">> <<option "Default" "default">> <</listbox>> || Left Wing Type: <<listbox "$characterViewer.bodyState.birdWingsLeftType" autoselect>> <<option "Normal" "idle">> <<option "Cover" "cover">> <</listbox>> || Right Wing Type: <<listbox "$characterViewer.bodyState.birdWingsRightType" autoselect>> <<option "Normal" "idle">> <<option "Cover" "cover">> <</listbox>> <br> Tail Layering: <<listbox "$characterViewer.bodyState.birdTailLayer" autoselect>> <<option "Front" "front">> <<option "Back" "back">> <</listbox>> || Wing Layering: <<listbox "$characterViewer.bodyState.birdWingsLayer" autoselect>> <<option "Front" "front">> <<option "Back" "back">> <</listbox>> <br><br> <span class="gold">Fox:</span> <br> Ears: <<listbox "$characterViewer.bodyState.foxEars" autoselect>> <<option "Hide" "hidden">> <<option "Default" "default">> <</listbox>> || Tail: <<listbox "$characterViewer.bodyState.foxTail" autoselect>> <<option "Hide" "hidden">> <<option "Default" "default">> <</listbox>> || Cheeks: <<listbox "$characterViewer.bodyState.foxCheeks" autoselect>> <<option "Hide" "hidden">> <<option "Default" "default">> <</listbox>> <br> Tail Layering: <<listbox "$characterViewer.bodyState.foxTailLayer" autoselect>> <<option "Front" "front">> <<option "Back" "back">> <</listbox>> <br><br> <</widget>> <<widget "characterViewerModel">> <<set $_id to _args[0] or 0>> <<set $_instanceId to `characterViewer-${$_id}`>> <<selectmodel "main" $_instanceId>> /* set options and filters */ /*group toggles*/ <<set _modeloptions.show_hair to $characterViewer.bodyState.hairStage !== "none">> <<set _modeloptions.show_face to $characterViewer.bodyState.show_face>> /*body*/ <<set _modeloptions.body_type to ["classic","slender","curvy", "soft"][$characterViewer.bodyState.bodytype]>> <<set _modeloptions.breasts to $characterViewer.bodyState.cleavage ? "cleavage" : "default">> /* <<set _modeloptions.breasts to $characterViewer.clothesEquipped.under_upper isnot 0 ? "cleavage" : "default">> */ <<set _modeloptions.arm_left to $characterViewer.bodyState.leftArmCovering ? "cover" : "idle">> <<set _modeloptions.arm_right to $characterViewer.bodyState.rightArmCovering ? "cover" : "idle">> <<switch $characterViewer.bodyState.breastSize>> <<case 12>> <<set _modeloptions.breast_size to 6>> <<case 8 9 10 11>> <<set _modeloptions.breast_size to 5>> <<case 6 7>> <<set _modeloptions.breast_size to 4>> <<case 4 5>> <<set _modeloptions.breast_size to 3>> <<case 3>> <<set _modeloptions.breast_size to 2>> <<case 1 2>> <<set _modeloptions.breast_size to 1>> <<default>> <<set _modeloptions.breast_size to 0>> <</switch>> <<set _modeloptions.crotch_visible to $characterViewer.bodyState.penisSize !== "none">> <<set _modeloptions.crotch_exposed to $characterViewer.bodyState.penisSize !== "none">> <<set _modeloptions.penis to $characterViewer.bodyState.penisSize !== "none" ? $characterViewer.bodyState.penisVirgin : "">> <<set _modeloptions.penis_size to $characterViewer.bodyState.penisSize !== "none" ? $characterViewer.bodyState.penisSize : "">> <<set _modeloptions.balls to $characterViewer.bodyState.ballsExist>> <<set _modeloptions.belly to $characterViewer.bodyState.bellySize>> /*Skin & tan*/ <<set _modeloptions.skin_type to $characterViewer.skinColour.type>> <<set _modeloptions.skin_tone to $characterViewer.skinColour.range>> /*Hair*/ <<set _modeloptions.hair_colour_style to $characterViewer.colours.hair_colour_style>> <<set _modeloptions.hair_colour to $characterViewer.colours.hair>> <<set _modeloptions.hair_colour_gradient to $characterViewer.colours.hair_colour_gradient>> <<set _modeloptions.hair_sides_type to $characterViewer.bodyState.hairType>> <<set _modeloptions.hair_sides_length to $characterViewer.bodyState.hairStage>> <<set _modeloptions.hair_sides_position to $characterViewer.bodyState.fringePosition>> <<if $characterViewer.colours.dyedHairPart is "full">> <<set _modeloptions.hair_fringe_colour_style to $characterViewer.colours.hair_colour_style>> <<set _modeloptions.hair_fringe_colour to $characterViewer.colours.hair>> <<set _modeloptions.hair_fringe_colour_gradient to $characterViewer.colours.hair_colour_gradient>> <<else>> <<set _modeloptions.hair_fringe_colour_style to $characterViewer.colours.hair_fringe_colour_style>> <<set _modeloptions.hair_fringe_colour to $characterViewer.colours.fringe>> <<set _modeloptions.hair_fringe_colour_gradient to $characterViewer.colours.hair_fringe_colour_gradient>> <</if>> <<set _modeloptions.hair_fringe_type to $characterViewer.bodyState.fringeType>> <<set _modeloptions.hair_fringe_length to $characterViewer.bodyState.fringeStage>> <<set _modeloptions.brows_colour to $characterViewer.colours.hair>> <<switch $characterViewer.colours.dyedHairPart>> <<case "full">> <<set _modeloptions.hair_fringe_colour_style to $characterViewer.colours.hair_colour_style>> <<set _modeloptions.hair_fringe_colour to $characterViewer.colours.hair>> <<set _modeloptions.hair_fringe_colour_gradient to $characterViewer.colours.hair_colour_gradient>> <<case "fringe">> <<case "sides">> <</switch>> /*Face*/ <<set _modeloptions.facestyle to $characterViewer.bodyState.facestyle>> <<set _modeloptions.facevariant to $characterViewer.bodyState.facevariant>> <<set _modeloptions.freckles to $characterViewer.bodyState.freckles>> <<set _modeloptions.brows to $characterViewer.bodyState.brows>> <<set _modeloptions.mouth to $characterViewer.bodyState.mouth>> <<set _modeloptions.trauma to $characterViewer.bodyState.trauma>> <<set _modeloptions.blink to $characterViewer.bodyState.blink>> <<set _modeloptions.eyes_half to $characterViewer.bodyState.eyes_half>> <<set _modeloptions.eyes_bloodshot to $characterViewer.bodyState.eyes_bloodshot>> <<set _modeloptions.tears to $characterViewer.bodyState.tears>> <<set _modeloptions.blush to $characterViewer.bodyState.blush>> <<set _eyeOptions to ["purple","dark blue","light blue","amber","hazel","green","red","pink","grey"]>> <<if $characterViewer.colours.eyesl is "range">> <<set _modeloptions.left_eye to _eyeOptions[Math.clamp($_id,0,_eyeOptions.length - 1)]>> <<else>> <<set _modeloptions.left_eye to $characterViewer.colours.eyesl>> <</if>> <<if $characterViewer.colours.eyesr is "range">> <<set _modeloptions.right_eye to _eyeOptions[Math.clamp($_id,0,_eyeOptions.length - 1)]>> <<else>> <<set _modeloptions.right_eye to $characterViewer.colours.eyesr>> <</if>> /*Fluid*/ <<set _baseArray to ["", "Start", "VerySlow", "Slow", "Fast", "VeryFast"]>> <<set _modeloptions.drip_vaginal to _baseArray[$characterViewer.bodyState.vaginaCum]>> <<set _modeloptions.drip_anal to _baseArray[$characterViewer.bodyState.anusCum]>> <<set _modeloptions.drip_mouth to _baseArray[$characterViewer.bodyState.mouthCum]>> /*Clothes*/ <<characterViewerModelClothes $_id "head">> <<characterViewerModelClothes $_id "face">> <<characterViewerModelClothes $_id "neck">> <<characterViewerModelClothes $_id "hands">> <<characterViewerModelClothes $_id "handheld">> <<characterViewerModelClothes $_id "upper">> <<characterViewerModelClothes $_id "lower">> <<characterViewerModelClothes $_id "under_upper">> <<characterViewerModelClothes $_id "under_lower">> <<characterViewerModelClothes $_id "legs">> <<characterViewerModelClothes $_id "feet">> <<characterViewerModelClothes $_id "genitals">> <<if _modeloptions.worn.handheld.index>> <<set _modeloptions.arm_right to "hold">> <<else>> <<run delete _modeloptions.arm_right>> <</if>> /*tf*/ <<set _modeloptions.angel_wings_type to $characterViewer.bodyState.angelWings>> <<set _modeloptions.angel_wing_right to $characterViewer.bodyState.angelWingsRightType>> <<set _modeloptions.angel_wing_left to $characterViewer.bodyState.angelWingsLeftType>> <<set _modeloptions.angel_wings_layer to $characterViewer.bodyState.angelWingsLayer>> <<set _modeloptions.angel_halo_type to $characterViewer.bodyState.angelHalo>> <<set _modeloptions.fallen_wings_type to $characterViewer.bodyState.fallenAngelWings>> <<set _modeloptions.fallen_wing_right to $characterViewer.bodyState.fallenAngelWingsRightType>> <<set _modeloptions.fallen_wing_left to $characterViewer.bodyState.fallenAngelWingsLeftType>> <<set _modeloptions.fallen_wings_layer to $characterViewer.bodyState.fallenAngelWingsLayer>> <<set _modeloptions.fallen_halo_type to $characterViewer.bodyState.fallenAngelHalo>> <<set _modeloptions.demon_wings_type to $characterViewer.bodyState.demonWings>> <<set _modeloptions.demon_wings_state to $characterViewer.bodyState.demonWingsType>> <<set _modeloptions.demon_wings_layer to $characterViewer.bodyState.demonWingsLayer>> <<set _modeloptions.demon_tail_type to $characterViewer.bodyState.demonTail>> <<set _modeloptions.demon_tail_state to $characterViewer.bodyState.demonTailType>> <<set _modeloptions.demon_tail_layer to $characterViewer.bodyState.demonTailLayer>> <<set _modeloptions.demon_horns_type to $characterViewer.bodyState.demonHorns>> <<set _modeloptions.demon_horns_layer to $characterViewer.bodyState.demonHornsLayer>> <<set _modeloptions.wolf_tail_type to $characterViewer.bodyState.wolfTail>> <<set _modeloptions.wolf_tail_layer to $characterViewer.bodyState.wolfTailLayer>> <<set _modeloptions.wolf_ears_type to $characterViewer.bodyState.wolfEars>> <<set _modeloptions.wolf_pits_type to $characterViewer.bodyState.wolfPits>> <<set _modeloptions.wolf_pubes_type to $characterViewer.bodyState.wolfPubes>> <<set _modeloptions.wolf_cheeks_type to $characterViewer.bodyState.wolfCheeks>> <<set _modeloptions.wolf_cheeks_type to "disabled">> <<set _modeloptions.cat_tail_type to $characterViewer.bodyState.catTail>> <<set _modeloptions.cat_tail_state to $characterViewer.bodyState.catTailType>> <<set _modeloptions.cat_tail_layer to $characterViewer.bodyState.catTailLayer>> <<set _modeloptions.cat_ears_type to $characterViewer.bodyState.catEars>> <<set _modeloptions.cow_horns_type to $characterViewer.bodyState.cowHorns>> <<set _modeloptions.cow_horns_layer to $characterViewer.bodyState.cowHornsLayer>> <<set _modeloptions.cow_tail_type to $characterViewer.bodyState.cowTail>> <<set _modeloptions.cow_tail_layer to $characterViewer.bodyState.cowTailLayer>> <<set _modeloptions.cow_ears_type to $characterViewer.bodyState.cowEars>> <<set _modeloptions.bird_wings_type to $characterViewer.bodyState.birdWings>> <<set _modeloptions.bird_wing_right to $characterViewer.bodyState.birdWingsRightType>> <<set _modeloptions.bird_wing_left to $characterViewer.bodyState.birdWingsLeftType>> <<set _modeloptions.bird_wings_layer to $characterViewer.bodyState.birdWingsLayer>> <<set _modeloptions.bird_tail_type to $characterViewer.bodyState.birdTail>> <<set _modeloptions.bird_tail_layer to $characterViewer.bodyState.birdTailLayer>> <<set _modeloptions.bird_eyes_type to $characterViewer.bodyState.birdEyes>> <<set _modeloptions.bird_malar_type to $characterViewer.bodyState.birdMalar>> <<set _modeloptions.bird_plumage_type to $characterViewer.bodyState.birdPlumage>> <<set _modeloptions.bird_pubes_type to $characterViewer.bodyState.birdPubes>> <<set _modeloptions.fox_tail_type to $characterViewer.bodyState.foxTail>> <<set _modeloptions.fox_tail_layer to $characterViewer.bodyState.foxTailLayer>> <<set _modeloptions.fox_ears_type to $characterViewer.bodyState.foxEars>> <<set _modeloptions.fox_cheeks_type to $characterViewer.bodyState.foxCheeks>> <<if $characterViewer.controls.animations>> <<animatemodel>> <<else>> <<rendermodel>> <</if>> <</widget>> <<widget "characterViewerModelClothesControls">> <h4>Clothes</h4> <<link "Reset">> <<run Object.keys($characterViewer.clothesEquipped).forEach(slot => { $characterViewer.clothesEquipped[slot] = 0; $characterViewer.colours[slot] = ["Range", "Range"]; })>> <<replace "#controls-clothes">><<characterViewerModelClothesControls>><</replace>> <<clothesTestingImageUpdate>> <<if $characterViewer.controls.autoRefresh>> <<run $(() => $('#controls-clothes input, #controls-clothes select').on('input change', e => wikifier('<<clothesTestingImageUpdate>>')) )>> <</if>> <</link>> | <<link "Randomise">> <<run Object.keys($characterViewer.clothesEquipped).forEach(slot => { const item = clone(setup.clothes[slot]).random(); $characterViewer.clothesEquipped[slot] = item.index; $characterViewer.colours[slot] = [(item.colour_options || [0]).random(), (item.accessory_colour_options || [0]).random()]; })>> <<replace "#controls-clothes">><<characterViewerModelClothesControls>><</replace>> <<clothesTestingImageUpdate>> <<if $characterViewer.controls.autoRefresh>> <<run $(() => $('#controls-clothes input, #controls-clothes select').on('input change', e => wikifier('<<clothesTestingImageUpdate>>')) )>> <</if>> <</link>> <br><br> <<set $_equip to ["upper","lower","under_upper","under_lower","head","face","neck","hands", "handheld","legs","feet","genitals"]>> <<for $_i to 0; $_i lt $_equip.length; $_i++>> <<set $_slot to $_equip[$_i]>> <span class="gold"><<print $_slot.toUpperFirst()>></span> <<set _clothingMap to new Map(Object.entries(_clothes[$_slot]).sort((a, b) => a[0].localeCompare(b[0])))>> <<set $_var to `$characterViewer.clothesEquipped.${$_slot}`>> <<listbox $_var autoselect>> <<optionsfrom _clothingMap>> <</listbox>> <br> <div @id="'controls-clothes-colour-' + $_slot"> <<characterViewerModelClothesControlsColour $_slot>> </div> <<if ["over_upper","over_lower","upper","lower","under_upper","under_lower","genitals"].includes($_slot) and $characterViewer.clothesEquipped[$_slot] isnot 0>> <br> Integrity: <<listbox `"$characterViewer.clothesIntegrity." + $_slot` autoselect>> <<option "full">> <<option "frayed">> <<option "torn">> <<option "tattered">> <</listbox>> <</if>> <br><br> <</for>> <<run $(() => { function setupListener(slot = "") { let classId = '#listbox-characterviewerclothesequipped' + slot.replace(/_/g, "-"); $(classId).on('input change', e => { const slot = e.target.id.split("equipped")[1].replace(/-/g, "_"); const index = e.target.value; wikifier(`<<replace "#controls-clothes-colour-${slot}">><<characterViewerModelClothesControlsColour "${slot}">><</replace>>`); $(`#controls-clothes-colour-${slot} select`).on('input change', e => wikifier('<<clothesTestingImageUpdate>>')); }); } ["upper","lower","under_upper","under_lower","head","face","neck","hands", "handheld","legs","feet","genitals"].forEach(slot => setupListener(slot)); })>> <</widget>> <<widget "characterViewerModelClothesControlsColour">> <<if _args[0]>> <<set $_item to setup.clothes[_args[0]][$characterViewer.clothesEquipped[_args[0]] or 0]>> <<set $_options1 to ["Range", "Inversed Range"].concat($_item.colour_options or [])>> <<set $_options2 to ["Range", "Inversed Range"].concat($_item.accessory_colour_options or [])>> <<if $_item.colour_options.length gt 0>> Primary: <<set $_var to `$characterViewer.colours.${_args[0]}[0]`>> <<run $_options1.delete("custom")>> <<listbox $_var autoselect>> <<optionsfrom $_options1>> <</listbox>> <</if>> <<if $_item.accessory_colour_options.length gt 0>> <<if $_item.colour_options>>|<</if>> Secondary: <<set $_var2 to `$characterViewer.colours.${_args[0]}[1]`>> <<run $_options2.delete("custom")>> <<listbox $_var2 autoselect>> <<optionsfrom $_options2>> <</listbox>> <</if>> <<if $_item.pattern_options>> <<if $_item.colour_options.length gt 0 || $_item.accessory_colour_options.length gt 0>><br><</if>> <<set $_options3 to ["Range", "Inversed Range"].concat($_item.pattern_options or [])>> Pattern: <<set $_var3 to `$characterViewer.patterns.${_args[0]}[1]`>> <<listbox $_var3 autoselect>> <<optionsfrom $_options3>> <</listbox>> <</if>> <</if>> <</widget>> <<widget "characterViewerModelClothes">> <<set $_instanceId to _args[0]>> <<set $_slot to _args[1]>> <<set $_item to setup.clothes[$_slot][$characterViewer.clothesEquipped[$_slot]]>> <<if $_item and $characterViewer.clothesEquipped[$_slot] isnot 0 and $_item.name isnot "naked">> <<set _modeloptions.worn[$_slot].index to $characterViewer.clothesEquipped[$_slot]>> <<if ["over_upper","over_lower","upper","lower","under_upper","under_lower","genitals"].includes($_slot)>> <<set _modeloptions.worn[$_slot].integrity to $characterViewer.clothesIntegrity[$_slot]>> <</if>> <<set $_colours to $_item.colour_options>> <<run $_colours.delete("custom")>> <<set $_acc_colours to $_item.accessory_colour_options>> <<run $_acc_colours.delete("custom")>> <<set $_patterns to $_item.pattern_options || []>> <<if !Array.isArray($_colours) or $_colours.length is 0>> <<set _modeloptions.worn[$_slot].colour to "">> <<elseif $characterViewer.colours[$_slot][0] is "Range">> <<set _modeloptions.worn[$_slot].colour to $_colours[Math.clamp($_instanceId,0,$_colours.length - 1)]>> <<elseif $characterViewer.colours[$_slot][0] is "Inversed Range">> <<set _modeloptions.worn[$_slot].colour to $_colours[Math.clamp($_colours.length - $_instanceId - 1,0,$_colours.length - 1)]>> <<else>> <<set _modeloptions.worn[$_slot].colour to $characterViewer.colours[$_slot][0]>> <</if>> <<if !Array.isArray($_acc_colours) or $_acc_colours.length is 0>> <<set _modeloptions.worn[$_slot].accColour to "">> <<elseif $characterViewer.colours[$_slot][1] is "Range">> <<set _modeloptions.worn[$_slot].accColour to $_acc_colours[Math.clamp($_instanceId,0,$_acc_colours.length - 1)]>> <<elseif $characterViewer.colours[$_slot][1] is "Inversed Range">> <<set _modeloptions.worn[$_slot].accColour to $_acc_colours[Math.clamp($_acc_colours.length - $_instanceId - 1,0,$_acc_colours.length - 1)]>> <<else>> <<set _modeloptions.worn[$_slot].accColour to $characterViewer.colours[$_slot][1]>> <</if>> <<if !Array.isArray($_patterns) or $_patterns.length is 0>> <<set _modeloptions.worn[$_slot].pattern to "">> <<elseif $characterViewer.patterns[$_slot][1] is "Range">> <<set _modeloptions.worn[$_slot].pattern to $_patterns[Math.clamp($_instanceId,0,$_patterns.length - 1)]>> <<elseif $characterViewer.patterns[$_slot][1] is "Inversed Range">> <<set _modeloptions.worn[$_slot].pattern to $_patterns[Math.clamp($_patterns.length - $_instanceId - 1,0,$_patterns.length - 1)]>> <<else>> <<set _modeloptions.worn[$_slot].pattern to $characterViewer.patterns[$_slot][1]>> <</if>> <<else>> <<set _modeloptions.worn[$_slot].index to 0>> <<set _modeloptions.worn[$_slot].colour to "">> <<set _modeloptions.worn[$_slot].accColour to "">> <<set _modeloptions.worn[$_slot].pattern to "">> <</if>> <</widget>> <<widget "characterViewerModelExportControls">> <h4>Export/Settings</h4> <span class="gold">Character Setup</span> <br> <<listbox "$characterViewer.controls.charactersToShow" autoselect>> <<option "Single" 1>> <<option "Wiki" 11>> <</listbox>> <br><br> <span class="gold">Animations</span> <br> <label>Enable <<radiobutton "$characterViewer.controls.animations" true autocheck>></label> | <label>Disable <<radiobutton "$characterViewer.controls.animations" false autocheck>></label> | <br><br> <span class="gold">Expand the space for character images</span> <br> <<link "Expand Temp">> <<addclass "#passages" "debugPassages">> <</link>> | <<link "Expand">> <<set $characterViewer.controls.expand to true>> <<addclass "#passages" "debugPassages">> <</link>> | <<link "Set Default">> <<set $characterViewer.controls.expand to false>> <<removeclass "#passages" "debugPassages">> <</link>> <br><br> <span class="gold">Auto Refresh</span> <small class="red">May be laggy on slower devices</small> <br> <<if $characterViewer.controls.autoRefresh>> <<link [[Disable|$passage]]>> <<set $characterViewer.controls.autoRefresh to false>> <</link>> <<else>> <<link [[Enable|$passage]]>> <<set $characterViewer.controls.autoRefresh to true>> <</link>> <</if>> <br><br> <span class="gold">Export/Import</span> <br> <textarea id="characterViewerDataInput" rows="4" cols="40" onClick="if(V.disableAutoSelect == false)this.select();" onfocus="V.tempDisable = true;" onblur="V.tempDisable = false;"></textarea> <br> <input type="button" value="Clear Text Box" onclick="clearTextBox('characterViewerDataInput')"/> <input type="button" value="Top of Text Box" onclick="topTextArea('characterViewerDataInput')"/> <input type="button" value="Bottom of Text Box" onclick="bottomTextArea('characterViewerDataInput')"/> <input type="button" value="Get Character Data" onclick="getCharacterViewerDate()"/> <input type="button" value="Load Character Data" onclick="loadCharacterViewerDate()"/> <input id="CopyTextArea" type="button" value="Copy Text Area" onclick="copySavedata('characterViewerDataInput')"> <br><br> <label> <<checkbox "$disableAutoSelect" false true autocheck>> Disables auto select. </label> <</widget>><!-- Any widget with the goal to bug-purge events goes here. Since I didn't find an appropriate file to put this in, I decided to make my own. Feel free to delete this comment at leisure. --> <<widget "checkEventNPC">> <<if (EventSystem.isSlotTaken(_args[0]) and !EventSystem.Disable) or $enemynomax gte 6 or $enemyno gte 6>> <<set $endeventerror to $lastgenerated>> <<clearsinglenpc _args[0]>> <!-- <<endevent phaseless>> --> <</if>> <<set $lastgenerated to $passage>> <</widget>> <<widget "eventExtraInfo">> <!-- Setup useful variables --> <<set $_passages = V.event is undefined ? [] : V.event.buffer.reduce((prev, cur) => { prev.pushUnique(cur.area[0]); return prev; }, []) >> <h3>Area information</h3> <br> Passage: $_passages <br> <<if _eventAlertMajorArea is true>> <span class="red">You are in a major area, which means an NPC escaped!</span> <<if $cheatsEnabled is true>> Ignore this message if you've just used a cheat. Otherwise, <span class="red">please report this!</span> <<else>> <span class="red">Please report this!</span> <</if>> <<set _eventreason to true>> <<elseif !_eventAlertMajorArea>> <span class="green">This NPC was defined in this passage</span> <<set _eventreason to true>> <<else>> <<if $passage.includes("Street Stalk")>> <span class="green">You are being stalked. Usually this means everything is in order.</span> <<set _eventreason to true>> <</if>> <<if $event isnot undefined>> <<if $_passages.includes($passage)>> <span class="green">You are in a passage where NPCs were generated.</span> <<set _eventreason to true>> <<elseif $passage.includes($_passages)>> <span class="green">You are in a subpassage from where NPCs were generated. Usually this means they are still in use.</span> <<set _eventreason to true>> <</if>> <<else>> <span class="yellow">You are not in an event.</span> <</if>> <</if>> <<if !_eventreason>> <span class="yellow">NPCs were generated at some point and may not be cleared. They could still be in use. If you feel like they shouldn't be active, please report this. If you're unsure whether or not to report this, go to a major area (i.e a street/alleyway/outside) and check this again.</span> <</if>> <br><br> <h3>NPC information</h3> <br> $enemyno NPC<<if $enemyno gt 1>>s are<<else>> is<</if>> currently active. Max: $enemynomax. Them being:<br><br> <div class="debug-event-container"> <<for $_i to 0; $_i lt $NPCList.length; $_i++>> <<set $_npc to $NPCList[$_i]>> <<set $_eventNPC to EventSystem.get($_i)>> <<if $_npc.type isnot undefined and $_eventNPC isnot undefined>> <<set $_time to new DateTime($_eventNPC.time + V.startDate)>> <div class="debug-event-item debug-event-success"> ID: $_i | $_npc.fullDescription<br> Sex: $_npc.gender | Gender: $_npc.pronouns.man<br> Description: $_npc.description<<if $_npc.role>> | Role: $_npc.role<</if>><br> Source: <<print $_eventNPC.area[0]>>, at: <<ampm $_time.getHours() $_time.getMinutes()>>.<br> </div> <<else>> <div class="debug-event-item debug-event-empty"> NPC #: $_i </div> <</if>> <</for>> </div> <<if $event isnot undefined>> <br>Extra debugging:<br> <<for $_i to 0; $_i lt $event.buffer.length; $_i++>> <<set $_eventNPC to $event.buffer[$_i]>> <<set $_time to new DateTime($_eventNPC.time + V.startDate)>> <<print ($NPCList[$_eventNPC.slot] || {}).fullDescription || "No description.">><br> Defined in passage <<print $_eventNPC.area[0]>>, at <<ampm $_time.getHours() $_time.getMinutes()>>.<br> <<if $_eventNPC.area.length gt 1>> Widget Stack: <<set $_widgetStack to $_eventNPC.area.slice(1)>> <<for $_iStack = 0; $_iStack lt $_widgetStack.length; $_iStack++>> <<print "<<$_widgetStack[$_iStack]>>">><<if $_iStack isnot $_widgetStack.length - 1>>, <</if>> <</for>> <br> <</if>> <!-- Check other event NPCs for linked passages --> <<for $_j to 0; $_j lt $event.buffer.length; $_j++>> <<set $_eventNPC2 to $event.buffer[$_j]>> <<if $_i isnot $_j and $_eventNPC.area[0] is $_eventNPC2.area[0]>> <<if _eventnumberinpassage is undefined>> <<set _eventnumberinpassage to 0>> <</if>> <<set _eventnumberinpassage += 1>> <</if>> <</for>> <!-- Check other event NPCs for linked passages --> <<if _eventnumberinpassage isnot undefined>> <<print _eventnumberinpassage>> other NPC<<if _eventnumberinpassage isnot 1>>s<</if>> have also been defined in passage <<print $_eventNPC.area[0]>>.<br> <<unset _eventnumberinpassage>> <</if>> Set in slot <<print $_eventNPC.slot>> of $$NPCList.<br> <<for $_j to 0; $_j lt $event.buffer.length; $_j++>> <<if $_i isnot $_j and $_eventNPC.slot is $_eventNPC.slot[$_j]>> <span class="red">This NPC has been overwritten or overwrote another one in slot <<print $event.slot[$_eventNPC.slot]>>!</span><br> <<break>> <</if>> <</for>> <br> <</for>> Phase: $phase <</if>> <</widget>> <!-- <<widget "eventAlert">> <<if $event[0] is $passage>> <span class="green" style="text-align: center">Event Active</span> <<if $debug is 1>> <<set _eventAlertMajorArea to false>> <span class="rainbow"><<button "More Event Info">> <<overlayReplace "eventExtraInfo">> <</button>></span> <</if>> <<elseif ["Orphanage", "Bedroom", "Barb Street", "Cliff Street", "Connudatus Street", "Danube Street", "Domus Street", "Elk Street", "Harvest Street", "High Street", "Mer Street", "Nightingale Street", "Oxford Street", "Starfish Street", "Wolf Street", "Residential Alleyways", "Commercial Alleyways", "Industrial Alleyways", "Park", "Hallways", "Brothel", "Strip Club", "Beach", "Ocean Breeze", "Docks Work", "Residential Drain", "Commercial Drain", "Industrial Drain", "Forest", "Farmland", "Livestock Field", "Forest Wolf Cave", "Wolf Cave", "Wolf Cave Clearing", "Asylum", "Asylum Cell", "Underground Cell"].includes($passage)>> <span class="red" style="text-align: center">Event Active</span> <<set _eventAlertMajorArea to true>> <span class="rainbow"><<button "More Event Info">> <<overlayReplace "eventExtraInfo">> <</button>></span> <<elseif ["Forest Cabin", "Eden Cabin", "Eden Clearing"].includes($event[0]) and $event.length is 1>> <span class="green" style="text-align: center">Eden Active</span> <<else>> <span class="yellow" style="text-align: center">Event Active</span> <span class="rainbow"><<button "More Event Info">> <<overlayReplace "eventExtraInfo">> <</button>></span> <</if>> <</widget>> --><<widget "debug">> <<button DEBUG>> <<script>>overlayShowHide('debugOverlay')<</script>> <</button>> <<if $debugMenu is undefined>> <<set $debugMenu to [false, 'debugMain', ""]>> <</if>> <<if $debugMenu[2] is undefined>> <<set $debugMenu[2] = "">> <</if>> <<if $debug_favourite == undefined>> <<set $debug_favourite = []>> <</if>> <<if setup.debugMenu.cacheDebugDiv["debugOverlay"] == undefined or setup.debugMenu.cacheDebugDiv["debugOverlay"] == {}>> <<if $debugMenu == []>> <<set $debugMenu = [false, "debugMain", ""]>> <</if>> <<replace "#debugOverlay">><<debugContents>><</replace>> <<if $debugMenu[0] is true>> <<removeclass "#debugOverlay" "hidden">> <<else>> <<addclass "#debugOverlay" "hidden">> <</if>> <<else>> <<saveLoadCache "load">> <<if $debugMenu[2] != "" and $debugMenu[2] != undefined>> <<run window.researchEvents($debugMenu[2])>> <</if>> <</if>> <<run window.checkEventCondition()>> <</widget>> <<widget "debugContents">> <<set _selected = $debugMenu[1]>> <nav class="overlayMenu"> <ul> <li><input id="debugOverlayButton" type="button" class="close" style="width:45px;height: 35px;" value="⮨" onclick="overlayShowHide('debugOverlay', 'close')"/></li> <li><input id="debugMainButton" @class="'bg-color-debug-unselected '+(_selected == 'debugMain' ? 'bg-color-debug-selected' : '')" type="button" value="Main" style="width: 60px;" onclick="overlayMenu('debugMain', 'debug')"/></li> <li><input id="debugCharacterButton" @class="'bg-color-debug-unselected '+(_selected == 'debugCharacter' ? 'bg-color-debug-selected' : '')" type="button" value="Character" onclick="overlayMenu('debugCharacter', 'debug')"/></li> <li><input id="debugEventsButton" @class="'bg-color-debug-unselected '+(_selected == 'debugEvents' ? 'bg-color-debug-selected' : '')" type="button" value="Events" style="width: 65px;" onclick="overlayMenu('debugEvents', 'debug')"/></li> <li><input id="debugFavouritesButton" @class="'bg-color-debug-unselected '+(_selected == 'debugFavourites' ? 'bg-color-debug-selected' : '')" type="button" value="Favourites" onclick="overlayMenu('debugFavourites', 'debug')"/></li> <li><input id="debugAddButton" @class="'bg-color-debug-unselected '+(_selected == 'debugAdd' ? 'bg-color-debug-selected' : '')" style="width: 20px; padding-left: 0.259em;" type="button" value="+" onclick="overlayMenu('debugAdd', 'debug')"/></li> </ul> <div class="header-content-search-content" id="formChangeColor" style=""> <input name="searchEvents" id="searchEvents" placeholder="Filtering..." onfocusout="window.changeBorderColor()" onfocus="window.changeBorderColor()" oninput="window.researchEvents(null,event)"> </div> </nav> <<if $debugMenu[1] is "debugMain">> <div id="debugMain" class="overlayItem"> <h3>Main</h3> <<debugMain>> <br> </div> <<else>> <div id="debugMain" class="overlayItem hidden"> <h3>Main</h3> <<debugMain>> <br> </div> <</if>> <<if $debugMenu[1] is "debugCharacter">> <div id="debugCharacter" class="overlayItem"> <h3>Character</h3> <<debugCharacter>> <br> </div> <<else>> <div id="debugCharacter" class="overlayItem hidden"> <h3>Character</h3> <<debugCharacter>> <br> </div> <</if>> <<if $debugMenu[1] is "debugEvents">> <div id="debugEvents" class="overlayItem" onload="restoreDebugMenuState"> <h3>Events</h3> <<debugEvents>> <br> </div> <<else>> <div id="debugEvents" class="overlayItem hidden" onload="restoreDebugMenuState"> <h3>Events</h3> <<debugEvents>> <br> </div> <</if>> <<if $debugMenu[1] is "debugFavourites">> <div id="debugFavourites" class="overlayItem" onload="restoreDebugMenuState"> <h3>Favourites</h3> <<debugFavourites>> <br> </div> <<else>> <div id="debugFavourites" class="overlayItem hidden" onload="restoreDebugMenuState"> <h3>Favourites</h3> <<debugFavourites>> <br> </div> <</if>> <<if $debugMenu[1] is "debugAdd">> <div id="debugAdd" class="overlayItem" onload="restoreDebugMenuState"> <h3>Add passages to the Menu</h3> <<debugAdd>> <br> <br> </div> <<else>> <div id="debugAdd" class="overlayItem hidden" onload="restoreDebugMenuState"> <h3>Add passages to the Menu</h3> <<debugAdd>> <br> </div> <</if>> <<if $debugMenu[2] != "" and $debugMenu[2] != undefined>> <<run window.researchEvents($debugMenu[2])>> <</if>> <<saveLoadCache "save">> <</widget>> <<widget "debugMain">> <br> <div id="MainDebugInfo"> Allure: <<print $allure>> <br> Rng: <<print $rng>> <br> Passage: <<print $passage>> <br> </div> <input type="button" id="backwords" value="Back" onclick="SugarCube.State.backward()"/> <br> <div id='debugEventsMain'> <<debugGenerateDivs "Main">> </div> <</widget>> <<widget "debugCharacter">> <div id='debugEventsCharacter'> <<debugGenerateDivs "Character">> </div> <</widget>> <<widget "debugEvents">> <div id='debugEventsEvents'> <<debugGenerateDivs "Events">> </div> <</widget>> <<widget "debugFavourites">> <<if _args[0] == "replace">> <<replace "#debugEventsFavourites">> <<debugGenerateDivs "Favourites">> <</replace>> <<else>> <div id='debugEventsFavourites'> <<debugGenerateDivs "Favourites">> </div> <</if>> <</widget>> <<widget "debugAdd">> <div id='debugEventsAdd'> <<debugGenerateDivs "Add">> </div> <</widget>> <<widget "debugGenerateDivs">> <<if ndef _event_list>> <<set _event_list to window.returnEventList()>> <</if>> <<if _event_list["Favourites"] == undefined>> <<set _event_list["Favourites"] = $debug_favourite>> <</if>> <<if _args[0] != "Add">> <<for _index = 0; _index < _event_list[_args[0]].length; _index++>> <<if _event_list[_args[0]][_index].text_only != undefined>> <<for _c = 0; _event_list[_args[0]][_index].text_only[_c] == '\n'; _c++>><br name="#"><</for>> <<if _c < _event_list[_args[0]][_index].text_only.length>> <div name="#" @id="_args[0]+'-'+_index"> <<print _event_list[_args[0]][_index].text_only>> </div> <<for _c = _event_list[_args[0]][_index].text_only.length - 1; _event_list[_args[0]][_index].text_only[_c] == '\n'; _c-->><br name="#"><</for>> <</if>> <<else>> <<run window.getNameAndPassage(_args[0], T.index)>> <<capture _args[0] _index _link_name _link_passage>> <<set _onclickTemp = "window.debugCreateLinkAndRedirect("+"'"+_args[0]+"'"+","+_index+","+"'"+_args[0]+"-"+_index+"'"+");">> <div @name="_link_name" @id="_args[0]+'-'+_index"> <a tabindex="0" @onclick="_onclickTemp">_link_name</a> <<run window.addFavouriteIcon(_args[0], _index, _args[0]+'-'+_index)>> </div> <<run window.addonClickDivPassage(_args[0], _index, _args[0]+'-'+_index)>> <</capture>> <</if>> <</for>> <<else>> <<run window.addDebugForm()>> <</if>> <</widget>> <<widget "saveLoadCache">> <<if _args[0] == "save">> <<run window.cacheDebugDiv()>> <<else>> <<run $(document).one(':passageend', (ev) => window.loadCachedDebugDiv())>> <</if>> <</widget>> <<widget "resetDebugLinks">> <<link _link_name _link_passage>> <<run window.runWidgetsInsideLink(_args[0], _index)>> <</link>> <</widget>><<if !$scenesSearch>> <<set $scenesSearch to { numberOfItems: 12, hideLocked: false, text: "", }>> <</if>> <h3>Scene Viewer</h3> <<scenes>> <<scenesSearch>> <<scenesViewerCalc>> <div id="scenesViewer"> <<scenesViewer>> </div> <div id="scenesViewerControls"> <<scenesViewerControls>> </div> <<if $debug is 1>> <!--<br> <<saveCompareTool>>--> <br> <<link [[Reset|$passage]]>><<unset $scenes>><<unset _scenes>><</link>> <</if>> <<if $lastPassage>> <br> <<link [[Exit|$lastPassage]]>><<unset $scenes>><<unset $lastPassage>><</link>> <</if>>End of '<<print $replayScene.name>>' scene. <br><br> <<unset $replayScene>> <<unfreezePlayerStats>> <<endevent>> <<link [[Exit scene|Scene Viewer]]>><</link>><<switch $sceneViewSwitch>> <<case "halloweenwhitney">><<halloweenwhitney>> <<case "halloweenkylar">><<halloweenkylar>> <<case "AlexFarmWorkStage3">><<farmVisitor>> <<case "AlexFarmWorkStage4">><<farmStage4>> <<case "AlexFarmWorkStage5">><<farmStage5>> <<case "AlexFarmWorkStage6">><<farmStage6>> <<case "AlexFarmWorkStage7">><<farmStage7>> <<case "AlexFarmWorkStage8">><<farmStage8>> <<case "AlexFarmWorkStage9">><<farmStage9>> <<case "AlexFarmWorkStage10">><<farmStage10>> <<case "AlexFarmWorkStage11">><<farmStage11>> <<case "AlexFarmWorkStage12">><<farmStage12>> <<case "schoolBully">><<schoolbully>> <<case "schoolBullyPantyCheck">><<WhitneyPantyCheck>> <<case "whitneyShoppingCentre">><<whitneyShoppingCentre>> <<case "prison_spire_options">><<prison_spire_options>> <<default>> Error occurred in scene viewer. <<print $replayScene.name>>. Please report. <br><br> <<set _exitpassage to clone($replayScene.exitpassage)>> <<unset $replayScene>> <<unfreezePlayerStats>> <<link [[Back|_exitpassage]]>> <</link>> <</switch>> <<unset $sceneViewSwitch>><<widget "setupReplayScene">> /*In case the object isn't setup correctly*/ <<set _passages to ["Scene Viewer End"]>> <<if Array.isArray(_args[2])>> <<set _passages to _args[2]>> <</if>> <<set _variablesToRestore to []>> <<freezePlayerStats>> <<set $replayScene to { name: _args[0], startPassage: (_args[1] ? _args[1] : _passages[0]), passages: _passages, exitpassage: $passage }>> <</widget>> /*Scenes when player viewing can't be tracked*/ <<widget "seenPassage">> <<if $scenePassages is undefined>> <<set $scenePassages to []>> <</if>> <<run $scenePassages.pushUnique(_args[0] || $passage)>> <</widget>> /*Scenes when player viewing can be tracked*/ <<widget "seenPassageChecks">> <<set $_robin to statusCheck("Robin")>> <<if $scenePassages is undefined>> <<set $scenePassages to []>> <</if>> <<if C.npc.Avery.init is 1>> <<run $scenePassages.pushUnique("Park Lichen")>> <</if>> <<if $_robin.init is 1>> <<run $scenePassages.pushUnique("Robin Intro")>> <</if>> <<if $bun_value gte 15000>> <<run $scenePassages.pushUnique("Photography Chef")>> <<run $scenePassages.pushUnique("Chef Opening")>> <</if>> <<if $adultshopintro or $adultshopunlocked>> <<run $scenePassages.pushUnique("AdultShopIntro")>> <</if>> <<if $adultshopunlocked>> <<run $scenePassages.pushUnique("AdultShopOpening")>> <</if>> <<if $schoolevent gte 1>> <<run $scenePassages.pushUnique("Penis School Inspection")>> <</if>> <<if $schoolevent gte 2>> <<run $scenePassages.pushUnique("Pussy School Inspection")>> <</if>> <<if $schoolevent gte 3>> <<run $scenePassages.pushUnique("Breast School Inspection")>> <</if>> <<if $halloween_whitney_proposed>> <<run $scenePassages.pushUnique("halloweenwhitney")>> <</if>> <<if $halloween_kylar_proposed>> <<run $scenePassages.pushUnique("halloweenkylar")>> <</if>> <!-- Intentional breakless design for this switch. Example: If $farm_stage is 4, it will run cases 4, 3 and 2. --> <<run switch (Math.clamp($farm_stage, 0, 12)) { case 12: $scenePassages.pushUnique("AlexFarmWorkStage12"); case 11: $scenePassages.pushUnique("AlexFarmWorkStage11"); case 10: $scenePassages.pushUnique("AlexFarmWorkStage10"); case 9: $scenePassages.pushUnique("AlexFarmWorkStage9"); case 8: $scenePassages.pushUnique("AlexFarmWorkStage8"); case 7: $scenePassages.pushUnique("AlexFarmWorkStage7"); case 6: $scenePassages.pushUnique("AlexFarmWorkStage6"); case 5: $scenePassages.pushUnique("AlexFarmWorkStage5"); case 4: $scenePassages.pushUnique("AlexFarmWorkStage4"); case 3: $scenePassages.pushUnique("AlexFarmWorkStage3"); case 2: $scenePassages.pushUnique("AlexFarmIntro"); } >> <<if $farm and $farm.milking and $farm.milking.alexNightEvent>> <<run $scenePassages.pushUnique("AlexFarmSelfMilkingCaught")>> <</if>> <<if $bullyevent gt 0>> <<run $scenePassages.pushUnique("WhitneySchoolBully1")>> <</if>> <<if $bullyevent gt 1>> <<run $scenePassages.pushUnique("WhitneySchoolBully2")>> <</if>> <<if $bullyevent gt 2>> <<run $scenePassages.pushUnique("WhitneySchoolBully3")>> <</if>> <<if $bullyevent gt 3>> <<run $scenePassages.pushUnique("WhitneySchoolBully4")>> <</if>> <<if $whitneypantiescheck>> <<run $scenePassages.pushUnique("WhitneySchoolBullyPanty")>> <</if>> <<if $whitneyskirtcheck>> <<run $scenePassages.pushUnique("WhitneySchoolBullySkirt")>> <</if>> <<if $bullyEventShopping isnot undefined>> <<run $scenePassages.pushUnique("WhitneyShopping")>> <<if $bullyEventShopping gt 1 or $whitneyCrossdressSchool gte 0 or $whitneyCrossdressNormalItems gte 0 or $whitneyCrossdressSwimwear gte 0 or $whitneyCrossdressSleepwear gte 0>> <<run $scenePassages.pushUnique("Whitney Shopping Centre Clothes")>> <</if>> <<if $whitneyCrossdressMakeup gte 0>> <<run $scenePassages.pushUnique("Whitney Shopping Centre Cosmetics")>> <</if>> <</if>> <<if $whitneyCrossdressSwimwear gte 1>> <<run $scenePassages.pushUnique("WhitneyCrossdressSwimming")>> <</if>> <<if $loft_whitney>> <<run $scenePassages.pushUnique("WhitneyOrphanageLoft")>> <</if>> <!-- Intentional breakless design for this switch. Example: If $_robin.cdquest is 3, it will run cases 3, 2 and 1. --> <<run switch (Math.clamp($_robin.cdquest, 0, 6)) { case 6: $scenePassages.pushUnique("RobinCrossdressing6", "RobinCrossdressing6I"); case 5: $scenePassages.pushUnique("RobinCrossdressing5"); case 4: $scenePassages.pushUnique("RobinCrossdressing4"); case 3: $scenePassages.pushUnique("RobinCrossdressing3"); case 2: $scenePassages.pushUnique("RobinCrossdressing2"); case 1: $scenePassages.pushUnique("RobinCrossdressing1"); } >> <<if $robinfirstrentfight is 1>> <<run $scenePassages.pushUnique("RentFirstRobinFight")>> <</if>> <<if $robinPunishments.includes("docks")>> <<run $scenePassages.pushUnique("RobinDocks")>> <</if>> <<if $robinPunishments.includes("landfill")>> <<run $scenePassages.pushUnique("RobinLandfill")>> <</if>> <<if $robinPunishments.includes("pillory")>> <<run $scenePassages.pushUnique("RobinPillory")>> <</if>> <<if $kylarSeen.includes("basement")>> <<run $scenePassages.pushUnique("KylarBasement")>> <</if>> <<if $syndromekylar is 1>> <<run $scenePassages.pushUnique("KylarAbduction")>> <</if>> <<if $kylar_sleep_abduction is 1>> <<set $scenePassages.pushUnique("KylarManorSleep")>> <</if>> <!-- Intentional breakless design for this switch. Example: If $kylar_manor_secret is 2, it will run cases 2 and 1. --> <<run switch (Math.clamp($kylar_manor_secret, 0, 3)) { case 3: $scenePassages.pushUnique("KylarMonstranceAccost"); case 2: $scenePassages.pushUnique("KylarMonstranceAsk"); case 1: $scenePassages.pushUnique("KylarManorSecret"); } >> <<if $syndromeeden>> <<set $scenePassages.pushUnique("EdenIntro")>> <</if>> <<if $edenradiointro gte 2>> <<set $scenePassages.pushUnique("EdenRadioIntro")>> <</if>> <<if $wraithPrison and $wraithPrison.vision>> <<set $scenePassages.pushUnique("Schism")>> <</if>> <<if $christmas_wraith>> <<set $scenePassages.pushUnique("Christmas Mirror")>> <</if>> <<if $temple_rank is "monk" or $temple_rank is "priest">> <<set $scenePassages.pushUnique("TempleVigil")>> <</if>> <<if $templePromised is "Sydney">> <<set $scenePassages.pushUnique("TempleSydneyPureRitual")>> <</if>> <<if $sydneySeen>> <<if $sydneySeen.includes("corruptroom")>> <<set $scenePassages.pushUnique("TempleSydneyCorrupt")>> <</if>> <<if $sydneySeen.includes("punishment")>> <<set $scenePassages.pushUnique("TempleSydneyPunish")>> <</if>> <</if>> <<if $temple_confessor_intro>> <<set $scenePassages.pushUnique("TempleConfessorIntro")>> <</if>> <<if $spear_vessel>> <<set $scenePassages.pushUnique("IslandCastle")>> <</if>> <<if $christmas_book_read gte 3>> <<set $scenePassages.pushUnique("Pinch")>> <</if>> <<if $janet_book_read is 1>> <<set $scenePassages.pushUnique("RaulAndJanet")>> <</if>> <<if $nightmaresSeen>> <<if $nightmaresSeen.includes("eden")>> <<set $scenePassages.pushUnique("NightmareEden")>> <</if>> <<if $nightmaresSeen.includes("wraith")>> <<set $scenePassages.pushUnique("NightmareWraith")>> <</if>> <<if $nightmaresSeen.includes("bird")>> <<set $scenePassages.pushUnique("NightmareBird")>> <</if>> <<if $nightmaresSeen.includes("harper")>> <<set $scenePassages.pushUnique("NightmareHarper")>> <</if>> <<if $nightmaresSeen.includes("sydneyCorrupt")>> <<set $scenePassages.pushUnique("NightmareCorruptSydney")>> <</if>> <<if $nightmaresSeen.includes("Alex")>> <<set $scenePassages.pushUnique("NightmareAlex")>> <</if>> <<if $nightmaresSeen.includes("witch")>> <<set $scenePassages.pushUnique("NightmareWitch")>> <</if>> <<if $nightmaresSeen.includes("gwylan")>> <<set $scenePassages.pushUnique("NightmareGwylan")>> <</if>> <<if $nightmaresSeen.includes("office")>> <<set $scenePassages.pushUnique("NightmareOffice")>> <</if>> <</if>> <<if $harper_appointments.hypnosis gte 1>> <<set $scenePassages.pushUnique("HarperHypnosisIntro")>> <</if>> <<if $harper_appointments.hypnosis gte 2>> <<set $scenePassages.pushUnique("HarperHypnosisTrance1")>> <</if>> <<if $harper_appointments.hypnosis gte 3>> <<set $scenePassages.pushUnique("HarperHypnosisTrance2")>> <</if>> <<if $harper_appointments.hypnosis gte 4>> <<set $scenePassages.pushUnique("HarperHypnosisTrance3")>> <</if>> <<if $harper_appointments.hypnosis gte 5>> <<set $scenePassages.pushUnique("HarperHypnosisTrance4")>> <</if>> <<if $harper_appointments.exam gte 1>> <<set $scenePassages.pushUnique("HarperHypnosisExam1")>> <</if>> <<if $harper_appointments.exam gte 2>> <<set $scenePassages.pushUnique("HarperHypnosisExam2")>> <</if>> <<if $harper_appointments.exam gte 3>> <<set $scenePassages.pushUnique("HarperHypnosisExam3")>> <</if>> <<if $harper_appointments.dog gte 1>> <<set $scenePassages.pushUnique("HarperDogIntro")>> <</if>> <<if $harper_appointments.dog gte 2>> <<set $scenePassages.pushUnique("HarperDog1")>> <</if>> <<if $harper_appointments.dog gte 3>> <<set $scenePassages.pushUnique("HarperDog2")>> <</if>> <<if $harper_appointments.dog gte 4>> <<set $scenePassages.pushUnique("HarperDog3")>> <</if>> <<if $harper_appointments.dog gte 5>> <<set $scenePassages.pushUnique("HarperDog4")>> <</if>> <<if $hookah_plot gte 1>> <<set $scenePassages.pushUnique("TentacleForestDoor")>> <</if>> <<if $hookah_plot gte 3>> <<set $scenePassages.pushUnique("TownHallComputer")>> <</if>> <<if $syndromewolves>> <<set $scenePassages.pushUnique("BlackWolfIntro")>> <</if>> <<if $pound?.progress gte 5>> <<set $scenePassages.pushUnique("FreeTheBlackDog")>> <</if>> <<if $mickeyPub gte 2>> <<set $scenePassages.pushUnique("OrphanageHacker")>> <</if>> <<if $pubfame and $pubfame.status>> <<set $scenePassages.pushUnique("PubFameIntro")>> <</if>> <<if $per_npc.anxious_guard?.name_known>> <<set $scenePassages.pushUnique("PrisonSpirePrecipice")>> <</if>> <<if $per_npc.veteran_guard?.name_known>> <<set $scenePassages.pushUnique("PrisonYardLocket")>> <</if>> <<if $per_npc.scarred_inmate?.name_known>> <<set $scenePassages.pushUnique("PrisonScarredInmate")>> <</if>> <</widget>> <<widget "scenes">> /*Be extra careful when adding new scenes, make sure that any variables that shouldn't be changed this way, are restored right after The widgets `<<freezePlayerStats>>` and `<<unfreezePlayerStats>>` can help here alongside `variablesToRestore` for more scene specific variables The variable $statFreeze to prevent other widgets from running Be aware that many objects will be restored for you, including player, worn, carried, wardrobe, sexStats, dateCount and named npc's */ <<if $scenePassages is undefined>> <<set $scenePassages to []>> <</if>> <<if $scenes is undefined>> <<seenPassageChecks>> <<set $scenes to { /*"placeHolder":{ name:"", startPassage:"", passages:["",""], manualVariableChanges:"", unlocked: $scenePassages.includes("startPassage"), lockedMessage: $someCheck ? "Optional locked message, remove line if not required" : "Locked" },*/ "Tutorial":{ name:"Tutorial", startPassage:"SV Tutorial", passages: ["SV Tutorial","Tutorial","Tutorial Finish","Tutorial Flirt","Tutorial Thank","Rent Intro","Tutorial Bailey","Garden Fence","Robin's Lemonade Set Tutorial","Robin's Lemonade Set Tutorial 2","Robin Chocolate Set Tutorial","Robin Chocolate Set Tutorial 2","Robin Walk School","Robin Walk School Tutorial"], manualVariableChanges: "<<set $tutorial to 0>><<set $debug to 0>>", unlocked: $scenePassages.includes("Tutorial"), lockedMessage: "Locked." /* Intention change */ }, "TheFarm":{ name:"The Farm", startPassage:"The Farm", passages: ["The Farm","The Farm Finish"], manualVariableChanges: "<<set $molestationstart to 1>>", unlocked: $scenePassages.includes("The Farm"), lockedMessage: "Locked." /* Intention change */ }, "AveryParkIntroduction":{ name:"Avery Park Introduction", startPassage:"Park Lichen", passages: ["Park Lichen","Park Lichen Climb","Park Lichen Help","Park Lichen Explain","Park Lichen Run","Park Lichen Honest","Park Lichen Evasive","Park Lichen Accept","Park Lichen Refuse","Park Lichen Smooch","Park Lichen Still","Park Lichen Move"], manualVariableChanges: "<<set C.npc.Avery.init to 0>>", unlocked: $scenePassages.includes("Park Lichen") }, "AveryHelicopter":{ name:"Avery Helicopter", startPassage:"SV Avery Helicopter", passages: ["SV Avery Helicopter","Avery Helicopter","Avery Helicopter Drink","Avery Helicopter Refuse","Avery Helicopter 2","Avery Helicopter Nod","Avery Helicopter Brush","Avery Helicopter Push","Avery Helicopter Sex","Avery Helicopter Sex End","Avery Helicopter Roll","Avery Helicopter Slap","Avery Helicopter Walk"], manualVariableChanges: "<<set $location to 'town'>>", unlocked: $scenePassages.includes("Avery Helicopter") }, "RobinIntro1":{ name:"Robin Intro 1", startPassage:"Orphanage", passages:[], manualVariableChanges:"<<set C.npc.Robin.init to 0>><<set Time.setTime(7, 0)>><<set $stress to 0>><<set $home_gone to 0>><<if $exposed gt 0>><<givestartclothing>><</if>>", unlocked: $scenePassages.includes("Robin Intro") }, "RobinIntro2":{ name:"Robin Intro 2", startPassage:"Shopping Centre", passages:[], manualVariableChanges:"<<set C.npc.Robin.init to 0>><<set Time.set(0)>><<set Time.setTime(18, 0)>><<set $stress to 0>><<if $exposed gt 0>><<givestartclothing>><</if>>", unlocked: $scenePassages.includes("Robin Intro") }, "RobinIntro3":{ name:"Robin Intro 3", startPassage:"Canteen", passages:[], manualVariableChanges:"<<set C.npc.Robin.init to 0>><<set $schoolstate to 'lunch'>><<set Time.setTime(12, 0)>><<set $stress to 0>><<if $exposed gt 0>><<givestartclothing>><</if>>", unlocked: $scenePassages.includes("Robin Intro") }, "ChefOpeningPhotograph":{ name:"Chef Opening Photograph", startPassage:"Photography Chef", passages:["Photography Chef","Photography Chef 2","Photography Chef 3","Photography Chef 4","Photography Chef 5","Photography Chef Tease","Photography Chef Wait","Photography Chef Cream","Photography Chef Leave","Photography Chef Milk","Photography Chef 6","Photography Chef Wait","Photography Chef Lewd Cream","Photography Chef Normal Cream","Photography Chef 7"], manualVariableChanges:"", unlocked: $scenePassages.includes("Photography Chef") }, "ChefOpeningCeremony":{ name:"Chef Opening Ceremony", startPassage:"Chef Opening", passages:["Chef Opening","Chef Opening 2","Chef Opening 3","Chef Opening Current","Chef Opening Gown","Chef Opening Tuxedo","Chef Opening 4","Chef Opening 5","Chef Opening Avery Accept","Chef Opening Avery Refuse","Chef Opening 6","Chef Opening Bailey Slap","Chef Opening Bailey Thank","Chef Opening Bailey Silent","Chef Opening 7","Chef Opening Smile","Chef Opening Funny","Chef Opening Refuse Photograph","Chef Opening 8","Chef Opening 9","Chef Opening 10","Chef Opening 11","Chef Opening Truth","Chef Opening Bailey","Chef Opening Sam","Chef Opening Self","Chef Opening Refuse","Chef Opening Local","Chef Opening Foreign","Chef Opening Staff","Chef Opening Enjoy","Chef Opening End","Chef Opening End 2"], manualVariableChanges:"", unlocked: $scenePassages.includes("Chef Opening") }, "AdultShopIntro":{ name:"Adult Shop Intro", startPassage:"SV Dilapidated Shop", passages:["SV Dilapidated Shop","Dilapidated Shop","Dilapidated Shop Intro","Dilapidated Help","Dilapidated Toy","Dilapidated Suggest","Dilapidated Let","Dilapidated Paint Suit Romance","Dilapidated Paint Watch Romance","Dilapidated Paint Look","Dilapidated Paint Watch","Dilapidated Paint Help","Dilapidated Paint Watch 2","Dilapidated End","Dilapidated Dildo","Dilapidated Dildo Refuse","Dilapidated Dildo Encourage","Dilapidated Dildo Work","Dilapidated Dildo Tease","Dilapidated Pretend","Dilapidated Beads","Dilapidated Beads Refuse","Dilapidated Beads Lick","Dilapidated Beads Lick Refuse","Dilapidated Beads Tease","Dilapidated Crop Fours","Dilapidated Crop Refuse","Dilapidated Crop Whack Hard","Dilapidated Crop Whack Soft","Dilapidated Crop Whack Refuse","Dilapidated Crop Tease","Dilapidated Crop Fours 2","Dilapidated Crop Fours End","Dilapidated Crop Fours Flirt","Dilapidated Crop Fours Cry","Dilapidated Crop Fours Work","Dilapidated Beads 2","Dilapidated Beads Refuse 2","Dilapidated Dildo Lick","Dilapidated Dildo Sydney Lick","Dilapidated Bye","Dilapidated Temple"], manualVariableChanges:"<<set $location to 'dilapidated_shop'>><<unset $adultshopintro>><<unset $adultshophelped>><<set $adultshopprogress to 0>><<set $sydney_location_override to 'shop'>><<run Time.setDate(Time.getNextWeekdayDate(6))>><<run Time.setTime(17,0)>>", unlocked: $scenePassages.includes("AdultShopIntro") }, "AdultShopOpening":{ name:"Adult Shop Opening", startPassage:"SV Adult Shop Opening", passages:["SV Adult Shop Opening","Adult Shop Opening","Adult Shop Opening 2","Adult Shop Opening Refuse","Adult Shop Opening Refuse 2","Adult Shop Opening Refuse 3","Adult Shop Opening Pure","Adult Shop Opening Pure Onesie","Adult Shop Opening Pure Babydoll","Adult Shop Opening Pure 2","Adult Shop Opening Pure 3","Adult Shop Opening Pure Refresh","Adult Shop Opening Pure Fine","Adult Shop Opening Pure Bed","Adult Shop Opening Pure Let","Adult Shop Opening Pure Hold","Adult Shop Opening Pure Kiss","Adult Shop Opening Neutral","Adult Shop Opening Neutral Onesie","Adult Shop Opening Neutral Onesie 2","Adult Shop Opening Neutral Pictures","Adult Shop Opening Neutral Refuse","Adult Shop Opening Neutral Babydoll","Adult Shop Opening Neutral Babydoll 2","Adult Shop Opening Neutral 2","Adult Shop Opening Neutral Kiss","Adult Shop Opening Neutral Smile","Adult Shop Opening Corrupt","Adult Shop Opening Corrupt Onesie","Adult Shop Opening Corrupt Onesie Ask","Adult Shop Opening Corrupt Onesie Compliment","Adult Shop Opening Corrupt Onesie 2","Adult Shop Opening Corrupt Babydoll","Adult Shop Opening Corrupt Babydoll Ask","Adult Shop Opening Corrupt Babydoll Compliment","Adult Shop Opening Corrupt Babydoll 2","Adult Shop Opening Corrupt 2","Adult Shop Opening Corrupt Niki","Adult Shop Opening Corrupt Niki Kiss","Adult Shop Opening Corrupt Niki 2","Adult Shop Opening Corrupt 3","Adult Shop Opening End","Adult Shop Opening End 2"], manualVariableChanges:"<<set $location to 'adult_shop'>><<run Time.setTime(17,0)>><<set C.npc.Sydney.virginity.kiss to true>>", unlocked: $scenePassages.includes("AdultShopOpening") }, "SchoolInspectionPenis":{ name:"School Inspection - Penis", startPassage:"Science Lesson", passages:["Penis Inspection", "Penis Inspection 1", "Penis Inspection Expose", "Penis Inspection Flaunt", "Penis Inspection Run Away", "Penis Inspection End", "Penis Inspection Flaunt No Penis", "Penis Inspection Forced", "Penis Inspection Forced Defiant", "Penis Inspection 2"], manualVariableChanges:"<<set Time.setDate(Time.getNextWeekdayDate(2))>><<set Time.setTime(9, 1)>><<set $schoolevent to 0>><<set $schooleventtimer to 0>>", unlocked: $scenePassages.includes("Penis School Inspection") }, "SchoolInspectionPussy":{ name:"School Inspection - Pussy", startPassage:"Science Lesson", passages:["Pussy Inspection", "Pussy Inspection 1", "Pussy Inspection 2", "Pussy Inspection Run", "Pussy Inspection Flaunt No Pussy", "Pussy Inspection Comply", "Pussy Inspection Flaunt", "Pussy Inspection Forced", "Pussy Inspection Forced Defiant", "Pussy Inspection End"], manualVariableChanges:"<<set Time.setDate(Time.getNextWeekdayDate(2))>><<set Time.setTime(9, 1)>><<set $schoolevent to 1>><<set $schooleventtimer to 0>>", unlocked: $scenePassages.includes("Pussy School Inspection") }, "SchoolInspectionBreast":{ name:"School Inspection - Breast", startPassage:"Science Lesson", passages:["Breast Inspection","Breast Inspection Comply","Breast Inspection Flaunt","Breast Inspection Flat Flaunt","Breast Inspection Protest","Breast Inspection End"], manualVariableChanges:"<<set Time.setTime(9, 1)>><<set $schoolevent to 2>><<set $schooleventtimer to 0>>", unlocked: $scenePassages.includes("Breast School Inspection") }, "HalloweenWhitney":{ name:"Halloween Whitney", startPassage:"Scene Viewer passages", passages:["Whitney Trick 1","Whitney Trick 2","Whitney Trick Refuse","Whitney Trick 2","Whitney Trick Refuse 2","Whitney Trick 3","Whitney Trick 4","Whitney Trick Stop","Whitney Trick Watch","Whitney Trick 5","Whitney Trick 6","Whitney Trick Exhibitionism","Whitney Trick Drink","Whitney Trick Drink","Whitney Trick Sex","Whitney Trick Sex Refuse","Whitney Trick 7","Whitney Trick Sex Finish"], manualVariableChanges:"<<set $sceneViewSwitch to 'halloweenwhitney'>>", unlocked: $scenePassages.includes("halloweenwhitney") }, "HalloweenKylar":{ name:"Halloween Kylar", startPassage:"Scene Viewer passages", passages:["Kylar Halloween Look","Kylar Halloween Watch","Kylar Halloween","Kylar Halloween Refuse","Kylar Halloween Walk","Kylar Halloween Hesitate","Kylar Halloween Forest Refuse","Kylar Halloween Continue","Kylar Halloween Angry","Kylar Halloween Continue Walk","Kylar Halloween Leave","Kylar Halloween March","Kylar Halloween Kiss","Kylar Halloween Yes","Kylar Halloween No","Kylar Halloween Town","Kylar Halloween Sex","Kylar Halloween Sex Finish","Kylar Halloween Mansion","Kylar Halloween Mansion 2","Kylar Halloween Known Drink","Kylar Halloween Unknown Refuse","Kylar Halloween Known Angry","Kylar Halloween Unknown Drink","Kylar Halloween Known Pretend","Kylar Halloween Known Hand","Kylar Halloween Known Go","Kylar Halloween Known Scare","Kylar Halloween Mansion Sex","Kylar Halloween Mansion Sex Finish","Kylar Halloween Exit","Kylar Halloween Known Chase","Kylar Halloween Known Curtain","Kylar Halloween Known Sheet","Kylar Halloween Known Front","Kylar Halloween Known Dumb","Kylar Halloween Known Clean","Kylar Halloween Known Kiss","Kylar Halloween Known Stand","Kylar Halloween Known Sex","Kylar Halloween Known Sex Finish","Kylar Halloween Rough Exit","Kylar Halloween Unknown Refuse 2","Kylar Halloween Exit 2","Kylar Halloween Skulduggery 2","Kylar Halloween Pick","Kylar Halloween Upstairs","Kylar Halloween Skulduggery","Kylar Halloween Skulduggery Kiss","Kylar Halloween Skulduggery Pull","Kylar Halloween Upstairs Dodge","Kylar Halloween Caught","Kylar Halloween Upstairs Applaud","Kylar Halloween Upstairs Angry","Kylar Halloween Kneel","Kylar Halloween Kneel Refuse","Kylar Halloween Kneel Refuse 2","Kylar Halloween Kneel Run","Kylar Halloween Kneel Help","Kylar Halloween Kneel Spray","Kylar Halloween Forced Kneel","Kylar Halloween Oral","Kylar Halloween Lick","Kylar Halloween Lick Refuse","Kylar Halloween Lick Refuse 2","Kylar Halloween End","Kylar Halloween Oral Finish","Kylar Halloween Bed","Kylar Halloween Bed 2","Kylar Halloween Bed 3","Kylar Halloween Bed 4","Kylar Halloween Bed 5","Kylar Halloween Wait","Kylar Halloween Warn","Kylar Halloween Escape","Kylar Halloween Tricks","Kylar Halloween Whitney","Kylar Halloween Accompany","Kylar Halloween Alone","Kylar Halloween Thank","Kylar Halloween Ask","Kylar Halloween Whitney Kiss","Kylar Halloween Whitney Apologise","Kylar Halloween Whitney Silent"], manualVariableChanges:"<<set $sceneViewSwitch to 'halloweenkylar'>>", unlocked: $scenePassages.includes("halloweenkylar") }, "AlexFarmIntro":{ name:"Alex Farm Intro", startPassage:"Farm Intro", passages:["Farm Intro","Farm Intro 2","Farm Intro 3","Farm Intro 4","Farm Intro 5","Farm Intro 6","Farm Intro 7","Farm Intro 8","Farm Intro 9","Farm Intro 10","Farm Intro Accept","Farm Intro Refuse"], manualVariableChanges:"", unlocked: $scenePassages.includes("AlexFarmIntro") }, "AlexFarmWorkStage03":{ name:"Alex Farm Work Stage 3", startPassage:"Scene Viewer passages", passages:["Farm Visitor"], manualVariableChanges:"<<set $sceneViewSwitch to 'AlexFarmWorkStage3'>><<farm_work_update>>", unlocked: $scenePassages.includes("AlexFarmWorkStage3") }, "AlexFarmWorkStage04":{ name:"Alex Farm Work Stage 4", startPassage:"Scene Viewer passages", passages:["Farm Stage 4"], manualVariableChanges:"<<set $sceneViewSwitch to 'AlexFarmWorkStage4'>><<farm_work_update>>", unlocked: $scenePassages.includes("AlexFarmWorkStage4") }, "AlexFarmWorkStage05":{ name:"Alex Farm Work Stage 5", startPassage:"Scene Viewer passages", passages:["Farm Stage 5","Farm Stage 5 2","Farm Stage 5 3"], manualVariableChanges:"<<set $sceneViewSwitch to 'AlexFarmWorkStage5'>><<farm_work_update>>", unlocked: $scenePassages.includes("AlexFarmWorkStage5") }, "AlexFarmWorkStage06":{ name:"Alex Farm Work Stage 6", startPassage:"Scene Viewer passages", passages:["Farm Stage 6","Farm Stage 6 2","Farm Stage 6 Look","Farm Stage 6 No Look","Farm Stage 6 Pull","Farm Stage 6 3","Farm Stage 6 Pull 2","Farm Stage 6 Pull Return","Farm Stage 6 Pull Refuse","Farm Stage 6 4","Farm Stage 6 5","Farm Stage 6 6","Farm Stage 6 7","Farm Stage 6 8"], manualVariableChanges:"<<set $sceneViewSwitch to 'AlexFarmWorkStage6'>>", unlocked: $scenePassages.includes("AlexFarmWorkStage6") }, "AlexFarmWorkStage07":{ name:"Alex Farm Work Stage 7", startPassage:"Scene Viewer passages", passages:["Farm Stage 7","Farm Stage 7 Warn","Farm Stage 7 Break","Farm Stage 7 2","Farm Fight","Farm Fight End","Farm Fight Search","Farm Fight Search Shelf","Farm Fight Search Toolbox","Farm Fight Search Cupboard","Farm Fight Search Rakes","Farm Fight Search Sheet","Farm Fight End 2","Farm Fight End Rush","Farm Fight End Confront","Farm Fight End Threaten","Farm Fight End 3","Farm Fight End Rational","Farm Fight End Tea","Farm Fight End 4","Farm Fight End Ask","Farm Fight End Apologise","Farm Fight End Suggest","Farm Fight End Accept","Farm Fight End Refuse"], manualVariableChanges:"<<set $sceneViewSwitch to 'AlexFarmWorkStage7'>>", unlocked: $scenePassages.includes("AlexFarmWorkStage7") }, "AlexFarmWorkStage08":{ name:"Alex Farm Work Stage 8", startPassage:"Scene Viewer passages", passages:["Farm Stage 8"], manualVariableChanges:"<<set $sceneViewSwitch to 'AlexFarmWorkStage8'>>", unlocked: $scenePassages.includes("AlexFarmWorkStage8") }, "AlexFarmWorkStage09":{ name:"Alex Farm Work Stage 9", startPassage:"Scene Viewer passages", passages:["Farm Stage 9 Catch","Farm Stage 9 Leave","Farm Stage 9 Empty","Farm Stage 9 Caught","Farm Stage 9 Impressed","Farm Stage 9 Curious","Farm Stage 9 Dismissive","Farm Stage 9 Lab","Farm Stage 9 Yes","Farm Stage 9 No","Farm Stage 9 Agree","Farm Stage 9 Object"], manualVariableChanges:"<<set $sceneViewSwitch to 'AlexFarmWorkStage9'>>", unlocked: $scenePassages.includes("AlexFarmWorkStage9") }, "AlexFarmWorkStage10":{ name:"Alex Farm Work Stage 10", startPassage:"Scene Viewer passages", passages:["Farm Stage 10 Impressed","Farm Stage 10 Dismiss","Farm Stage 10 Explain"], manualVariableChanges:"<<set $sceneViewSwitch to 'AlexFarmWorkStage10'>>", unlocked: $scenePassages.includes("AlexFarmWorkStage10") }, "AlexFarmWorkStage11":{ name:"Alex Farm Work Stage 11", startPassage:"Scene Viewer passages", passages:["Farm Stage 11 Confident","Farm Stage 11 Caution"], manualVariableChanges:"<<set $sceneViewSwitch to 'AlexFarmWorkStage11'>>", unlocked: $scenePassages.includes("AlexFarmWorkStage11") }, "AlexFarmWorkStage12":{ name:"Alex Farm Work Stage 12", startPassage:"Scene Viewer passages", passages:["Farm Stage 12 Hands","Farm Stage 12 Pat","Farm Stage 12 Reassure","Farm Stage 12 Embolden","Farm Stage 12 Remy","Farm Stage 12 Intercede","Farm Stage 12 Alex","Farm Stage 12 End"], manualVariableChanges:"<<set $sceneViewSwitch to 'AlexFarmWorkStage12'>>", unlocked: $scenePassages.includes("AlexFarmWorkStage12") }, "AlexFarmSelfMilkingCaught":{ name:"Alex Farm Self Milking Caught", startPassage:"Farm Barn Caught", passages:[], manualVariableChanges:"", unlocked: $scenePassages.includes("AlexFarmSelfMilkingCaught") }, "WhitneySchoolBully1":{ name:"Whitney School Bully 1", startPassage:"Scene Viewer passages", passages:[], manualVariableChanges:"<<set $sceneViewSwitch to 'schoolBully'>><<set $bullyevent to 0>><<unset $whitneyReunionScene>>", unlocked: $scenePassages.includes("WhitneySchoolBully1") }, "WhitneySchoolBully2":{ name:"Whitney School Bully 2", startPassage:"Scene Viewer passages", passages:["Bully Locker","Bully Fight","Bully Fight Finish"], manualVariableChanges:"<<set $sceneViewSwitch to 'schoolBully'>><<set $bullyevent to 1>><<unset $whitneyReunionScene>>", unlocked: $scenePassages.includes("WhitneySchoolBully2") }, "WhitneySchoolBully3":{ name:"Whitney School Bully 3", startPassage:"Scene Viewer passages", passages:["Bully Fight","Bully Fight Finish","Bully Top","Bully Top Flaunt"], manualVariableChanges:"<<set $sceneViewSwitch to 'schoolBully'>><<set $bullyevent to 2>><<unset $whitneyReunionScene>>", unlocked: $scenePassages.includes("WhitneySchoolBully3") }, "WhitneySchoolBully4":{ name:"Whitney School Bully 4", startPassage:"Scene Viewer passages", passages:["Bully Fight","Bully Fight Finish","Bully Strip","Bully Strip Flaunt","Bully Walk","Bully Walk Flaunt","Bully Refuse"], manualVariableChanges:"<<set $sceneViewSwitch to 'schoolBully'>><<set $bullyevent to 3>><<unset $whitneyReunionScene>>", unlocked: $scenePassages.includes("WhitneySchoolBully4") }, "WhitneySchoolBullyPanty":{ name:"Whitney School Bully Underwear Rule", startPassage:"Scene Viewer passages", passages:["Bully Fight","Bully Fight Finish","Bully Panties","Bully Panties 2"], manualVariableChanges:"<<set $sceneViewSwitch to 'schoolBullyPantyCheck'>><<npc Whitney>><<set $bullyevent to 10>><<set $whitneypantiescheck to 0>><<set C.npc.Whitney.dom to 18>><<unset $whitneyReunionScene>>", unlocked: $scenePassages.includes("WhitneySchoolBullyPanty") }, "WhitneySchoolBullySkirt":{ name:"Whitney School Bully Skirt Rule", startPassage:"Scene Viewer passages", passages:["Bully Fight","Bully Fight Finish","Bully Skirt"], manualVariableChanges:"<<set $sceneViewSwitch to 'schoolBully'>><<set $bullyevent to 15>><<set $whitneyskirtcheck to 0>><<set $settings.forcedCrossdressingEnabled to true>><<set C.npc.Whitney.dom to 18>><<unset $whitneyReunionScene>>", unlocked: $scenePassages.includes("WhitneySchoolBullySkirt"), lockedMessage: $player.sex isnot "m" ? "Male exclusive scene" : "Locked" }, "WhitneySchoolBullyChastity":{ name:"Whitney School Bully Chastity Rule", startPassage:"Scene Viewer passages", passages:["Bully Chastity"], manualVariableChanges:"<<set $sceneViewSwitch to 'schoolBully'>><<set $bullyevent to 15>><<set $whitneyskirtcheck to 1>><<set $settings.forcedCrossdressingEnabled to true>><<set C.npc.Whitney.dom to 18>><<set $worn.genitals to setup.clothes.genitals[0]>><<unset $whitneychastity>><<unset $whitneyReunionScene>>", unlocked: $scenePassages.includes("WhitneySchoolBullySkirt"), lockedMessage: $player.sex isnot "m" ? "Male exclusive scene" : "Locked" }, "WhitneyShoppingCentreHairDressers":{ name:"Whitney Shopping Centre Hairdressers", startPassage:"Scene Viewer passages", passages:["Whitney Shopping Centre", "Whitney Shopping Centre Refuse","Whitney Shopping Centre Hairdressers","Whitney Shopping Centre Hairdressers Refuse","Whitney Shopping Centre Hairdressers 2","Whitney Shopping Centre Hairdressers 3"], manualVariableChanges:"<<set $sceneViewSwitch to 'whitneyShoppingCentre'>><<set $location to 'town'>><<set $bullyEventShopping to 0>>", unlocked: $scenePassages.includes("WhitneyShopping"), }, "WhitneyShoppingCentreClothes":{ name:"Whitney Shopping Centre Clothes", startPassage:"Scene Viewer passages", passages:["Whitney Shopping Centre", "Whitney Shopping Centre Refuse","Whitney Shopping Centre Clothes","Whitney Shopping Centre Clothes 2","Whitney Shopping Centre Clothes 2 Thank","Whitney Shopping Centre Clothes 2 Thank Lewd","Whitney Shopping Centre Clothes 2 Thank Lewd Sex","Whitney Shopping Centre Clothes 2 Thank Lewd Sex Finish","Whitney Shopping Centre Clothes 3"], manualVariableChanges:"<<set $sceneViewSwitch to 'whitneyShoppingCentre'>><<set $location to 'town'>><<set $bullyEventShopping to 1>><<set C.npc.Whitney.lust to 100>><<set $whitneyCrossdressSchool to 0>>", unlocked: $scenePassages.includes("Whitney Shopping Centre Clothes"), }, "WhitneyShoppingCentreCosmetics":{ name:"Whitney Shopping Centre Cosmetics", startPassage:"Scene Viewer passages", passages:["Whitney Shopping Centre", "Whitney Shopping Centre Refuse","Whitney Shopping Centre Cosmetics","Whitney Shopping Centre Cosmetics 2"], manualVariableChanges:"<<set $sceneViewSwitch to 'whitneyShoppingCentre'>><<set $location to 'town'>><<set $bullyEventShopping to 2>>", unlocked: $scenePassages.includes("Whitney Shopping Centre Cosmetics"), }, "WhitneySchoolBullySwimwear":{ name:"Whitney School Bully Swimwear Rule", startPassage:"Scene Viewer passages", passages:["Bully Fight","Bully Fight Finish","Bully Changing Room"], manualVariableChanges:"<<set $sceneViewSwitch to 'schoolBully'>><<set $bullyevent to 11>><<set $whitneyCrossdressSwimwear to 0>><<set $settings.forcedCrossdressingEnabled to true>><<set C.npc.Whitney.dom to 18>><<unset $whitneyReunionScene>>", unlocked: $scenePassages.includes("WhitneySchoolBullySkirt"), lockedMessage: $player.sex isnot "m" ? "Male exclusive scene" : "Locked" }, "WhitneyOrphanageVisit":{ name:"Whitney Orphanage Visit", startPassage:"SV Street Bully Orphanage Go", passages:["SV Street Bully Orphanage Go","SV Street Bully Orphanage Go 2","Street Bully Orphanage Go","Street Bully Orphanage Promise","Street Bully Orphanage Refuse","Street Bully Orphanage Bedroom","Street Bully Orphanage Office","Street Bully Orphanage Office 2","Street Bully Orphanage Leave","Street Bully Orphanage Stay","Street Bully Orphanage Wait","Street Bully Orphanage Eavesdrop","Street Bully Orphanage Living","Street Bully Orphanage Close","Street Bully Orphanage Kiss","Street Bully Orphanage Oral","Street Bully Orphanage Sex","Street Bully Orphanage Sex Finish"], manualVariableChanges:"", unlocked: $scenePassages.includes("Street Bully Orphanage Go"), }, "WhitneyOrphanageLoft":{ name:"Whitney Orphanage Loft", startPassage:"Whitney Orphanage Loft 5", passages:["Whitney Orphanage Loft 5","Whitney Orphanage Loft Decline","Whitney Orphanage Loft Pay","Whitney Orphanage Loft Kiss","Whitney Orphanage Loft Pull","Whitney Orphanage Loft Cafe","Whitney Orphanage Loft Cafe Hello","Whitney Orphanage Loft Cafe Shake","Whitney Orphanage Loft Cafe Silent","Whitney Orphanage Loft Cafe 2","Whitney Orphanage Loft Cafe Vegetarian","Whitney Orphanage Loft Cafe 3","Whitney Orphanage Loft Cafe Steal","Whitney Orphanage Loft Cafe 4","Whitney Orphanage Loft Cafe Ask","Whitney Orphanage Loft Cafe Ask 2","Whitney Orphanage Loft Cafe 5","Whitney Orphanage Loft Cafe 6","Whitney Orphanage Loft Ladder","Whitney Orphanage Loft Modest","Whitney Orphanage Loft Flaunt","Whitney Orphanage Loft Flaunt Lewd","Whitney Orphanage Loft Insist","Whitney Orphanage Loft Slap","Whitney Orphanage Loft 7","Whitney Orphanage Loft Flirt","Whitney Orphanage Loft 8","Whitney Orphanage Loft 9","Whitney Orphanage Loft 10","Whitney Orphanage Loft 11","Whitney Orphanage Loft 12","Whitney Orphanage Loft 13"], manualVariableChanges:"<<npc Whitney>><<set $money to 200000>>", unlocked: $scenePassages.includes("WhitneyOrphanageLoft"), }, "RobinCrossdressing1":{ name:"Robin Caught Crossdressing", startPassage:"Robin Caught CD SV Start", passages:["Robin Caught CD SV Start", "Robin Caught CD","Robin CD Encourage","Robin CD Soft Discourage","Robin CD Harsh Discourage"], manualVariableChanges:"", unlocked: $scenePassages.includes("RobinCrossdressing1") }, "RobinCrossdressing2":{ name:"Robin Crossdressing In Room", startPassage:"Robin CD Door SV Start", passages:["Robin CD Door SV Start","Robin CD Door Answer", "Robin CD Door Ignore","Robin CD Door Encourage","Robin CD Door Discourage"], manualVariableChanges:"<<set $NPCName[$NPCNameList.indexOf(\"Robin\")].crossdress to 2>>", unlocked: $scenePassages.includes("RobinCrossdressing2") }, "RobinCrossdressing3":{ name:"Robin Crossdressing In Orphanage", startPassage:"Robin CD Socialise SV Start", passages:["Robin CD Socialise SV Start", "Robin CD Socialise", "Robin CD Socialise Defend", "Robin CD Socialise Change"], manualVariableChanges:"<<set $NPCName[$NPCNameList.indexOf(\"Robin\")].crossdress to 3>><<set Time.setTime(16)>>", unlocked: $scenePassages.includes("RobinCrossdressing3") }, "RobinCrossdressing4":{ name:"Robin Crossdressing At Drink Stand", startPassage:"Robin's Stand CD SV Intro", passages:["Robin's Stand CD SV Intro", "Robin's Stand CD Explain Demo", "Robin's Stand CD Explain Full", "Robin's Stand CD Accept", "Robin's Stand CD Refuse", "Robin's Stand CD Intervene", "Robin's Stand CD Listen", "Robin's Stand CD Wait", "Robin's Stand CD Reassure", "Robin's Stand CD Discourage"], manualVariableChanges:"<<set $NPCName[$NPCNameList.indexOf(\"Robin\")].crossdress to 4>><<set Time.setDate(Time.getNextWeekdayDate(7))>><<set Time.setTime(9, 0)>>", unlocked: $scenePassages.includes("RobinCrossdressing4") }, "RobinCrossdressing5":{ name:"Robin Crossdressing Before School", startPassage:"Robin School CD SV Intro", passages:["Robin School CD SV Intro", "Robin School CD Interrupt", "Robin School CD Compliment","Robin School CD Refuse","Robin School CD Accept","Robin School CD Change","Robin School CD Walk"], manualVariableChanges:"<<set $NPCName[$NPCNameList.indexOf(\"Robin\")].crossdress to 5>><<set Time.setDate(Time.getNextWeekdayDate(1))>><<set Time.setTime(7, 0)>>", unlocked: $scenePassages.includes("RobinCrossdressing5") }, "RobinCrossdressing6":{ name:"Robin Crossdressing In Canteen", startPassage:"Canteen Lunch Robin CD 1", passages:["Canteen Lunch Robin CD 1", "Canteen Lunch Robin CD 2"], manualVariableChanges:"<<set $NPCName[$NPCNameList.indexOf(\"Robin\")].crossdress to 6>><<set Time.setDate(Time.getNextWeekdayDate(1))>><<set Time.setTime(12, 0)>>", unlocked: $scenePassages.includes("RobinCrossdressing6") }, "RobinCrossdressing6I":{ name:"Robin Crossdressing Infirmary Sex", startPassage:"School Infirmary Robin CD Intro", passages:["School Infirmary Robin CD Intro", "School Infirmary Robin CD Kiss", "School Infirmary Robin CD No Sex", "School Infirmary Robin CD Receive Oral", "School Infirmary Robin CD Penetrate", "School Infirmary Robin CD Get Penetrated", "School Infirmary Robin CD Give Oral", "School Infirmary Robin CD Aftercare"], /* TODO: update this when we figure out how much time the above passage is meant to take */ manualVariableChanges:"<<set $NPCName[$NPCNameList.indexOf(\"Robin\")].crossdress to 6>><<set Time.setDate(Time.getNextWeekdayDate(1))>><<set Time.setTime(12, 0)>>", unlocked: $scenePassages.includes("RobinCrossdressing6I") }, "RentFirstRobinFight":{ name:"Rent First Robin Fight", startPassage:"Rent First Robin SV", passages:["Rent Pay","Rent Seduce","Rent Refuse","Rent First Robin Fight","Rent First Robin Fight Finish"], manualVariableChanges:"<<set $robinpaid to 1>><<set $robinromance to 1>><<set $bus to \"home\">><<set $robinfirstrentfight to 0>><<set $baileydefeatedchain to 3>><<unset $baileyReunionScene>><<set $renttime to 0>><<set $robinmissing to 0>><<set $home_gone to 0>>", unlocked: $scenePassages.includes("RentFirstRobinFight") }, "RobinDocks":{ name:"Robin Docks", startPassage:"Docks_Robin", passages:["Docks_Robin","Docks_Robin Get Help","Docks_Robin Get Help 2","Docks_Robin Get Help 3","Docks_Robin Get Help 4","Docks_Robin Swap","Docks_Robin Fight","Docks_Robin Fight Finish","Docks_Robin Rescue","Docks_Robin Leave","Docks_Robin Swap 2","Docks_Robin Comfort","Docks_Robin Ignore"], manualVariableChanges:"", unlocked: $scenePassages.includes("RobinDocks") }, "RobinLandfill":{ name:"Robin Landfill", startPassage:"Robin Mist Intro", passages:["Robin Mist Intro","Robin Mist Fight","Robin Mist Fight Finish","Robin Mist Rescue","Robin Mist Forgive","Robin Mist Silence","Robin Mist Rescue 2","Robin Mist Walk","Robin Mist Abandon"], manualVariableChanges:"", unlocked: $scenePassages.includes("RobinLandfill") }, "RobinPilloryIntro":{ name:"Robin Pillory Intro", startPassage:"Robin Pillory Intro", passages:["Robin Pillory Intro","Robin Pillory Truth","Robin Pillory Evade"], manualVariableChanges:"<<set $robinPillory to {}>>", unlocked: $scenePassages.includes("RobinPillory") }, "RobinPillory":{ name:"Robin Pillory", startPassage:"Robin Pillory Watch", passages:["Robin Pillory Watch","Robin Pillory Failure","Robin Pillory Failure 2","Robin Pillory Failure 3","Robin Pillory Failure Optimism","Robin Pillory Failure Pessimism","Robin Pillory Lockpick","Robin Pillory Distractions","Robin Pillory Speech","Robin Pillory Fruit","Robin Pillory Money","Robin Pillory Crime","Robin Pillory Flower","Robin Pillory Escape","Robin Pillory Escape End","Robin Pillory Escape Sex","Robin Pillory Escape Sex Finish","Robin Pillory Escape Orphanage","Robin Pillory Bath","Robin Pillory Bath Wait","Robin Pillory Finish"], manualVariableChanges:"<<set $robinPillory to {locks: 3, danger: 0, distractions: [], known: true}>><<run Time.setTime(15,0)>><<set C.npc.Robin.virginity.vaginal to true>><<set C.npc.Robin.virginity.anal to true>>", unlocked: $scenePassages.includes("RobinPillory") }, "RobinUndergroundDice":{ name:"Robin Underground Dice", startPassage:"Underground Robin Dice Intro", passages:["Underground Robin Dice Intro","Underground Robin Dice Intro 2","Underground Robin Dice Intro 3","Underground Robin Dice Intro 4","Underground Robin Dice Molestation","Underground Robin Dice Molestation Finish"], manualVariableChanges:"<<set $undergroundbrothel to {}>><<ruined>><<set C.npc.Robin.virginity.vaginal to true>><<set C.npc.Robin.virginity.anal to true>>", unlocked: $scenePassages.includes("RobinUnderground") }, "RobinUndergroundStage":{ name:"Robin Underground Stage", startPassage:"Underground Robin Stage Intro", passages:["Underground Robin Stage Intro","Underground Robin Stage Pig","Underground Robin Stage Pig Finish","Underground Robin Stage Molestation","Underground Robin Stage Molestation Finish"], manualVariableChanges:"<<set $undergroundbrothel to {}>><<ruined>><<set C.npc.Robin.virginity.vaginal to true>><<set C.npc.Robin.virginity.anal to true>>", unlocked: $scenePassages.includes("RobinUnderground") }, "RobinUndergroundMachine":{ name:"Robin Underground Machine", startPassage:"Underground Robin Machine Intro", passages:["Underground Robin Machine Intro","Underground Robin Machine","Underground Robin Machine End"], manualVariableChanges:"<<set $undergroundbrothel to {}>><<ruined>><<set C.npc.Robin.virginity.vaginal to true>><<set C.npc.Robin.virginity.anal to true>>", unlocked: $scenePassages.includes("RobinUnderground") }, "RobinUndergroundKiss":{ name:"Robin Underground Kiss", startPassage:"Underground Robin Kiss Intro", passages:["Underground Robin Kiss Intro","Underground Robin Kiss Molestation","Underground Robin Kiss Molestation Finish"], manualVariableChanges:"<<set $undergroundbrothel to {}>><<ruined>><<set C.npc.Robin.virginity.vaginal to true>><<set C.npc.Robin.virginity.anal to true>>", unlocked: $scenePassages.includes("RobinUnderground") }, "RobinUndergroundHunt":{ name:"Robin Underground Hunt", startPassage:"Underground Robin Hunt Intro", passages:["Underground Robin Hunt Intro","Underground Robin Hunt","Underground Robin Hunt Dog","Underground Robin Hunt Dog Finish","Underground Robin Hunt Molestation","Underground Robin Hunt Molestation Finish"], manualVariableChanges:"<<set $undergroundbrothel to {}>><<ruined>><<set C.npc.Robin.virginity.vaginal to true>><<set C.npc.Robin.virginity.anal to true>>", unlocked: $scenePassages.includes("RobinUnderground") }, "RobinUndergroundEscape":{ name:"Robin Underground Escape", startPassage:"SV undergroundEscapeForestRobin", passages:["SV undergroundEscapeForestRobin","Underground Robin Escape Stalk","Underground Robin Escape Stalk End","Underground Robin Escape Fight","Underground Robin Escape Fight Finish","Underground Robin Escape Swim","Underground Robin Escape Shore","Underground Robin Escape Orphanage","Underground Robin Escape Stay"], manualVariableChanges:"<<set $undergroundbrothel to {}>><<ruined>><<set C.npc.Robin.virginity.vaginal to true>><<set C.npc.Robin.virginity.anal to true>>", unlocked: $scenePassages.includes("RobinUnderground") }, "KylarBasement":{ name:"Kylar Basement", startPassage:"Kylar Basement", passages:["Kylar Basement","Kylar Basement 2","Kylar Basement 3","Kylar Basement Rape","Kylar Basement Rape Finish","Kylar Basement 4","Kylar Basement Protest","Kylar Basement Silent","Kylar Basement Police","Kylar Basement Police Silent","Kylar Basement Police Heroics","Kylar Basement Car"], manualVariableChanges:"<<npcincr Kylar rage 100>>", unlocked: $scenePassages.includes("KylarBasement") }, "KylarAbduction":{ name:"Kylar Abduction", startPassage:"Kylar Abduction Intro", passages:["Kylar Abduction Intro","Kylar Abduction Intro Nod","Kylar Abduction Intro Angry","Kylar Abduction Intro Plead","Kylar Abduction Intro Silent","Kylar Abduction Intro Kiss","Kylar Abduction Intro Turn","Kylar Abduction Intro Bite","Kylar Abduction Intro End","Kylar Abduction","Kylar Abduction Weaken","Kylar Abduction Rest","Kylar Abduction Event Response","Kylar Abduction Rape","Kylar Abduction Rape Finish","Kylar Abduction Rage","Kylar Abduction Stupid","Kylar Abduction Grass","Kylar Abduction Formal","Kylar Abduction Goth","Kylar Abduction Swimsuit","Kylar Abduction Normal","Kylar Abduction Kneel","Kylar Abduction Feet","Kylar Abduction Dance","Kylar Abduction Dance Cool","Kylar Abduction Dance Sophisticated","Kylar Abduction Dance Sensual","Kylar Abduction Dance Sexual","Kylar Abduction Dance Berate","Kylar Abduction Dance Compliment","Kylar Abduction Release","Kylar Abduction Comfort","Kylar Abduction Leave","Kylar Abduction Release 2","Kylar Abduction Release 3","Kylar Abduction Release Investigate","Kylar Abduction Release Investigate 2","Kylar Abduction Release Investigate 3","Kylar Abduction Release Investigate 4","Kylar Abduction Release Investigate 5","Kylar Abduction Release 4","Kylar Abduction Free","Kylar Abduction Free Wait","Kylar Abduction Free Rescue","Kylar Abduction Free Rescue 2","Kylar Abduction Free Rescue 3","Kylar Abduction Free Rescue 4","Kylar Abduction Free Rescue 5","Kylar Abduction Free Rescue Reassure","Kylar Abduction Free Rescue Mock","Kylar Abduction Free Rescue Leave","Kylar Abduction Free Rescue 6","Kylar Abduction Free Rescue Inform","Kylar Abduction Free Rescue Quiet","Kylar Abduction Free Rescue Thank","Kylar Abduction Free Rescue Angry","Kylar Abduction Free Rescue Silent","Kylar Abduction Free Refuse","Kylar Abduction Free Guilt","Kylar Abduction Free Silent","Kylar Abduction Laptop","Kylar Abduction Free Pictures","Kylar Abduction Free Video","Kylar Abduction Free Browser","Kylar Abduction Free Bailey","Kylar Abduction Free Peek","Kylar Abduction Free Corridor","Kylar Abduction Free Flicker","Kylar Abduction Free Flicker Room","Kylar Abduction Free Flicker Room 2","Kylar Abduction Free Water","Kylar Abduction Free Water Room","Kylar Abduction Free Scurry","Kylar Abduction Free Scurry Room","Kylar Abduction Free Cabinet","Kylar Abduction Free Hunt","Kylar Abduction Free Hunt Hide","Kylar Abduction Free Hunt Run","Kylar Abduction Free Breeze","Kylar Abduction Free Stairs","Kylar Abduction Free Sneak","Kylar Abduction Free Investigate","Kylar Abduction Free Investigate 2","Kylar Abduction Free Capture","Kylar Abduction Free Leave","Kylar Abduction Free Reassure","Kylar Abduction Free Mock","Kylar Abduction Free Leave 2","Kylar Abduction Hypnosis Pretend","Kylar Abduction Hypnosis","Kylar Abduction Hypnosis Resist","Kylar Abduction Hypnosis Let", "Kylar Abduction Event End","Kylar Abduction Neck Resist","Kylar Abduction Neck Headbutt","Kylar Abduction Neck Kiss","Kylar Abduction Knife Agree","Kylar Abduction Knife Disagree","Kylar Abduction Knife Whimper","Kylar Abduction Circle Encourage","Kylar Abduction Circle Discourage","Kylar Abduction Circle Nothing","Kylar Abduction Camera Smile","Kylar Abduction Camera Frown","Kylar Abduction Camera Glare","Kylar Abduction Camera Close","Kylar Abduction Food","Kylar Abduction Food Veg","Kylar Abduction Food Veg Suggest","Kylar Abduction Food Veg Bite","Kylar Abduction Food Meat","Kylar Abduction Food Meat Eat","Kylar Abduction Food Meat Refuse","Kylar Abduction Food Fruit","Kylar Abduction Food Nothing","Kylar Abduction Food Kiss","Kylar Abduction Food Spit","Kylar Abduction Food Turn","Kylar Abduction Song Like","Kylar Abduction Song Hate","Kylar Abduction Song Silent","Kylar Abduction Kids Insult","Kylar Abduction Kids Nice","Kylar Abduction Kids Terrible","Kylar Abduction Kids Silent","Kylar Abduction Parents Encourage","Kylar Abduction Parents Silent","Kylar Abduction Draw Agree","Kylar Abduction Draw Refuse","Kylar Abduction Draw Nice","Kylar Abduction Draw Horrible","Kylar Abduction Draw Silent", "Kylar Abduction Stockholm","Kylar Abduction Stockholm 2","Kylar Abduction Stockholm Offer","Kylar Abduction Stockholm Tease","Kylar Abduction Stockholm Silent","Kylar Abduction Stockholm 3","Kylar Abduction Stockholm Dress","Kylar Abduction Stockholm Dress Refuse","Kylar Abduction Stockholm 4","Kylar Abduction Stockholm 5","Kylar Abduction Stockholm 6","Kylar Abduction Stockholm 7","Kylar Abduction Stockholm Tease 2","Kylar Abduction Stockholm Ignore 2","Kylar Abduction Stockholm 8","Kylar Abduction Stockholm Refuse","Kylar Abduction Stockholm Agree","Kylar Abduction Stockholm Leave","Kylar Abduction Stockholm Suggest","Kylar Abduction Stockholm Tell","Kylar Abduction Stockholm Ignore","Kylar Abduction Stockholm Kiss","Kylar Abduction Stockholm End"], manualVariableChanges:"<<set $kylar_camera to 2>><<set $syndromekylar to 0>>", unlocked: $scenePassages.includes("KylarAbduction") }, "KylarManorSleep":{ name:"Kylar Manor Sleep", startPassage:"Manor Sleep Abduction", passages:["Manor Sleep Abduction","Manor Sleep Abduction 2","Manor Sleep Abduction 3","Manor Sleep Abduction 4","Manor Sleep Abduction Reassure","Manor Sleep Abduction Angry","Manor Sleep Abduction Silent","Manor Sleep Abduction 5"], manualVariableChanges:"<<set Time.setTime(20, 0)>><<set $outside to 0>><<location 'kylarmanor'>>", unlocked: $scenePassages.includes("KylarManorSleep") }, "KylarManorSecret":{ name:"Kylar Manor Secret", startPassage:"Manor Kylar Secret", passages:["Manor Kylar Secret","Manor Kylar Secret 2","Manor Kylar Secret 3","Manor Kylar Secret 4","Manor Kylar Secret 5"], manualVariableChanges:"<<set $outside to 0>><<location 'kylarmanor'>><<npc Kylar>><<person1>>", unlocked: $scenePassages.includes("KylarManorSecret") }, "KylarMonstranceAsk":{ name:"Kylar Monstrance Ask", startPassage:"Temple Kylar Monstrance", passages:["Temple Kylar Monstrance","Temple Kylar Monstrance Open","Temple Kylar Monstrance Refuse"], manualVariableChanges:"<<set $outside to 0>><<set $location to 'temple'>><<npc Jordan>><<person1>>", unlocked: $scenePassages.includes("KylarMonstranceAsk") }, "KylarMonstranceAccost":{ name:"Kylar Monstrance Accost", startPassage:"SV Temple Kylar Monstrance", passages:["SV Temple Kylar Monstrance","Street Monstrance Nothing","Street Monstrance Brave","Street Monstrance Scary","Street Monstrance Silent","Street Monstrance 2","Street Monstrance 3","Street Monstrance Angry","Street Monstrance Silent 2"], manualVariableChanges:"<<set $outside to 0>><<set $location to 'temple'>>", unlocked: $scenePassages.includes("KylarMonstranceAccost") }, "EdenIntro":{ name:"Eden Intro", startPassage:"ForestHuntDebug", passages:["ForestHuntDebug","Forest Hunter Molestation","Forest Hunter Molestation Finish","Forest Hunter Intro","Forest Hunter Resist Molestation","Forest Hunter Resist Molestation Finish","Forest Hunter Nod","Forest Hunter Refuse","Forest Hunter Punishment","Forest Hunter Punishment Finish"], manualVariableChanges:"<<set $location to 'forest'>><<set $forestHunter to 'Eden'>><<unset $hunterintro>><<set $syndromeeden to 0>><<unset $edenCagedEscape>><<unset $edenfreedom>>", unlocked: $scenePassages.includes("EdenIntro") }, "EdenRadioIntro":{ name:"Eden Radio Intro", startPassage:"Eden Radio Intro", passages:["Eden Valentines Bath","Eden Radio Intro 2","Eden Radio Intro 3","Eden Radio Intro 4"], manualVariableChanges:"<<npc Eden>><<person1>>", unlocked: $scenePassages.includes("EdenRadioIntro") }, "EdenValentinesBath":{ name:"Eden Valentines Bath", startPassage:"Eden Valentines Bath", passages:["Eden Valentines Bath","Eden Valentines Bath 2","Eden Valentines Relax","Eden Valentines Wash","Eden Valentines Wash Nod","Eden Valentines Bath 3","Eden Valentines Dance","Eden Valentines Dance 2","Eden Valentines Dance 3","Eden Valentines Book","Eden Valentines Book Refuse","Eden Valentines Read","Eden Valentines Book 2","Eden Valentines Listen","Eden Valentines Distract","Eden Valentines Distract Push","Eden Valentines Push","Eden Valentines Sex","Eden Valentines Sex Finish","Eden Valentines Book 3"], manualVariableChanges:"<<npc Eden>><<person1>>", unlocked: $scenePassages.includes("Eden Valentines Bath") }, "Schism":{ name:"Schism", startPassage:"Schism", passages:["Schism", "Schism 2", "Schism 3", "Schism 4", "Schism Lichen Eat", "Schism Lichen Refuse", "Schism Lichen Refuse 2", "Schism Lichen Refuse 3", "Schism 5", "Schism Gold Give", "Schism Gold Refuse", "Schism 6", "Schism Robes Accept", "Schism Robes Refuse", "Schism Robes Refuse Finish", "Schism 7", "Schism 8", "Schism Continue", "Schism 9", "Schism 10", "Schism Awakening", "Schism Awake", "Schism Battle", "Schism Battle 2", "Schism Battle 3", "Schism Struggle", "Schism Drown", "Schism Drowned", "Schism Necklace", "Schism Ghost", "Schism Wraith", "Schism Wraith 2", "Schism Failure", "Schism End"], manualVariableChanges:"<<set $outside to 0>><<set $location to 'lake_ruin'>>", unlocked: $scenePassages.includes("Schism") }, "Christmas Mirror":{ name:"Christmas Mirror", startPassage:"Christmas Mirror", passages:["Christmas Mirror","Christmas Mirror Leave","Christmas Mirror Watch","Christmas Mirror Reach","Christmas Mirror 2","Christmas Mirror 3","Christmas Mirror 4","Christmas Mirror 5","Christmas Mirror Fall","Christmas Mirror End"], manualVariableChanges:"<<set $location to 'home'>>", unlocked: $scenePassages.includes("Christmas Mirror") }, "TempleSydneyPureRitual":{ name:"Temple Sydney Pure Ritual", startPassage:"SV Sydney Temple Pure", passages:["SV Sydney Temple Pure","Sydney Temple Pure","Sydney Temple Pure 2","Sydney Temple Pure 3","Sydney Temple Pure Eavesdrop","Sydney Temple Pure Eavesdrop 2","Sydney Temple Pure 4","Sydney Temple Pure 5","Sydney Temple Pure 6","Sydney Temple Pure Abuse","Sydney Temple Pure Appearance","Sydney Temple Pure Final","Sydney Temple Pure Fail","Sydney Temple Pure Test","Sydney Temple Pure Test Refuse","Sydney Temple Pure Test Admission","Sydney Temple Pure Pass","Sydney Temple Pure Ritual","Sydney Temple Pure Ritual 2","Sydney Temple Pure Sex","Sydney Temple Pure Sex Finish","Sydney Temple Pure End"], manualVariableChanges:"<<set $outside to 0>><<set $location to 'temple'>><<run Time.setTime(17,0)>>", unlocked: $scenePassages.includes("TempleSydneyPureRitual"), lockedMessage: $scenePassages.includes("TempleSydneyCorrupt") ? "Mutually exclusive scene" : "Locked" }, "TempleSydneyCorrupt":{ name:"Temple Sydney Corrupt", startPassage:"SV Sydney Temple Corrupt", passages:["SV Sydney Temple Corrupt","Sydney Temple Corrupt","Sydney Temple Corrupt Cancel","Sydney Temple Corrupt 2","Sydney Temple Corrupt Lock","Sydney Temple Corrupt Pick","Sydney Temple Corrupt Fight","Sydney Temple Corrupt Fight Finish","Sydney Temple Corrupt Search","Sydney Temple Corrupt 3","Sydney Temple Corrupt 4","Sydney Temple Corrupt Sex","Sydney Temple Corrupt Sex Finish","Sydney Temple Corrupt End","Sydney Temple Corrupt End 2","Sydney Temple Corrupt End 3","Sydney Temple Corrupt End 4","Sydney Temple Corrupt End 5","Sydney Temple Corrupt End 6","Sydney Temple Corrupt End Final"], manualVariableChanges:"<<set $outside to 0>><<set $location to 'temple'>><<run Time.setTime(21,0)>>", unlocked: $scenePassages.includes("TempleSydneyCorrupt"), lockedMessage: $scenePassages.includes("TempleSydneyPureRitual") ? "Mutually exclusive scene" : "Locked" }, "TempleSydneyPunish":{ name:"Temple Sydney Punish", startPassage:"Sydney Temple Punish Intro", passages:["Sydney Temple Punish Intro","Sydney Temple Punish Intro 2","Sydney Temple Punish Intro 3","Sydney Temple Punish Intro 4","Sydney Temple Punish","Sydney Temple Punish Repeat","Sydney Temple Punish Hold","Sydney Temple Punish Belt","Sydney Temple Punish Hit","Sydney Temple Punish Plead","Sydney Temple Punish Close","Sydney Temple Punish Touch","Sydney Temple Punish End"], manualVariableChanges:"<<set $outside to 0>><<set $location to 'temple'>><<set $stress to 0>><<set $arousal to 0>>", unlocked: $scenePassages.includes("TempleSydneyPunish") }, "TempleVigil":{ name:"Temple Vigil", startPassage:"SV Temple Vigil Inquire", passages:["SV Temple Vigil Inquire","Temple Vigil Inquire","Temple Vigil","Temple Vigil 2","Temple Vigil 3","Temple Vigil 4","Temple Vigil Undress","Temple Vigil Undress Refuse","Temple Vigil Undress Refuse 2","Temple Vigil 5","Temple Vigil Abandon","Temple Vigil End","Temple Vigil End 2","Temple Vigil End Sydney","Temple Vigil End Sydney 2","Temple Vigil 6","Temple Vigil 7","Temple Vigil 8","Temple Vigil 9","Temple Vigil 10","Temple Vigil Refuse","Temple Vigil Refuse 2","Temple Vigil 11","Temple Vigil 12","Temple Vigil 13","Temple Vigil Focus","Temple Vigil Yield","Temple Vigil 14","Temple Vigil 15","Temple Vigil 15 Sydney"], manualVariableChanges:"<<set $outside to 0>><<set $location to 'temple'>><<run Time.setDate(Time.getNextWeekdayDate(1))>><<run Time.setTime(20,0)>><<set $grace to 100>>", unlocked: $scenePassages.includes("TempleVigil") }, "TempleConfessorIntro":{ name:"Temple Purge and Confessor Intro", startPassage:"SV Temple Confess Purge", passages:["SV Temple Confess Purge","SV Temple Confess Purge 2","Temple Confess Purge Sex","Temple Confess Purge Sex Finish Corrupt","Temple Confess Inspect","Temple Confess Drain","Temple Confess Stop","Temple Confess Drain End","Temple Confessor Intro","Temple Confessor Intro 2","Temple Confessor Intro 3","Temple Confessor Intro 4","Temple Confessor Intro 5","Temple Confessor Intro Ask","Temple Confessor Intro 6","Temple Confessor Intro 7","Temple Confessor Intro 8"], manualVariableChanges:"<<set $outside to 0>><<set $location to 'temple'>><<unset $temple_confessor_intro>>", unlocked: $scenePassages.includes("TempleConfessorIntro") }, "IslandCastle":{ name:"Island Castle", startPassage:"SV Island Castle Approach", passages:["SV Island Castle Approach","Island Castle Dignified","Island Castle Cute","Island Castle Enter","Island Castle 2","Island Castle 3","Island Castle Stool","Island Castle Stool 2","Island Castle Stool 3","Island Castle Stool 4","Island Castle Run","Island Castle Run 2","Islander","Islander 2","Islander Play","Islander Understand","Islander 3","Islander 4","Islander Walk","Islander Kneel","Islander Spear","Islander End","Islander End 2","Islander End 3","Islander Enforce","Islander End Hide","Islander End Confident","Islander End Hand","Islander Pirate Return","Islander End Swim","Islander End Throw","Islander End Throw 2"], manualVariableChanges:"<<set $outside to 1>><<set $location to 'island'>><<unset $spear_vessel>>", unlocked: $scenePassages.includes("IslandCastle") }, "Pinch":{ name:"Pinch", startPassage: "Olive Book 1", passages:["Olive Book 1", "Olive Book 2", "Olive Book 3", "Olive Book 4", "Olive Book Full", "Olive Book Full 2", "Olive Book Full 3", "Olive Book Full 4", "Olive Book Full 5", "Olive Book Full 6", "Olive Book Full 7", "Olive Book Lew", "Olive Book Lew Molestation", "Olive Book Lew Finish", "Olive Book Full 8", "Olive Book Full 9", "Olive Book Full 10", "Olive Book Full 11", "Olive Book Pinch", "Olive Book Pinch 2", "Olive Book Pinch Gangbang", "Olive Book Pinch Finish", "Olive Book End"], manualVariableChanges:"<<set $oliveExitPassage to 'Bedroom'>>", unlocked: $scenePassages.includes("Pinch") }, "RaulAndJanet":{ name:"Raul and Janet", startPassage: "ScarletBook1", passages:["ScarletBook1", "ScarletBook2", "ScarletBook3", "ScarletBook4", "ScarletBook5", "ScarletBook6", "ScarletBook7aye", "ScarletBook7nay", "ScarletBook7nay_page2", "ScarletBook8aye", "ScarletBook8nay", "ScarletBook9", "ScarletBook10", "Loveth", "Loveth Finish", "Drama", "Drama Finish"], manualVariableChanges:"<<set $scarletExitPassage to 'Bedroom'>><<set $bus to ''>><<set $arousal to ($arousalmax / 5) * 2>>", unlocked: $scenePassages.includes("RaulAndJanet") }, "NightmareEden":{ name:"Nightmare Eden", startPassage:"Nightmare Eden", passages:["Nightmare Eden","Nightmare Eden Wake","Nightmare Eden 2","Nightmare Eden 3","Nightmare Eden Molestation","Nightmare Eden Molestation Finish","Nightmare Eden End","Nightmare Eden Wake 2","Nightmare Eden Console","Nightmare Eden Insist"], manualVariableChanges:"<<set $sleephour to 1>><<set $nightmareExit to 'Eden Cabin Bed'>>", unlocked: $scenePassages.includes("NightmareEden") }, "NightmareWraith":{ name:"Nightmare Wraith", startPassage:"Nightmare Wraith", passages:["Nightmare Wraith","Nightmare Wraith Wake","Nightmare Wraith 2","Nightmare Wraith 3","Nightmare Wraith 4","Nightmare Wraith 5","Nightmare Wraith Rape","Nightmare Wraith Rape Finish","Nightmare Wraith 6","Nightmare Wraith End"], manualVariableChanges:"<<set $sleephour to 1>><<set $nightmareExit to 'Bed'>>", unlocked: $scenePassages.includes("NightmareWraith") }, "NightmareBird":{ name:"Nightmare Bird", startPassage:"Nightmare Bird", passages:["Nightmare Bird","Nightmare Bird Wake","Nightmare Bird 2","Nightmare Bird Rape","Nightmare Bird Rape Finish","Nightmare Bird End"], manualVariableChanges:"<<set $sleephour to 1>><<set $nightmareExit to 'Bird Tower Bed'>>", unlocked: $scenePassages.includes("NightmareBird") }, "NightmareCorruptSydney":{ name:"Nightmare Corrupt Sydney", startPassage:"Nightmare Corrupt Sydney", passages:["Nightmare Corrupt Sydney","Nightmare Corrupt Sydney Wake","Nightmare Corrupt Sydney 2","Nightmare Corrupt Sydney 3","Nightmare Corrupt Sydney 4","Nightmare Corrupt Sydney 5","Nightmare Corrupt Sydney 6","Nightmare Corrupt Sydney 7","Nightmare Corrupt Sydney 8","Nightmare Corrupt Sydney 9","Nightmare Corrupt Sydney 10","Nightmare Corrupt Sydney 11","Nightmare Corrupt Sydney 12","Nightmare Corrupt Sydney Rape","Nightmare Corrupt Sydney Rape Finish","Nightmare Corrupt Sydney Rape Finish 2","Nightmare Corrupt Sydney End"], manualVariableChanges:"<<set $sleephour to 1>><<set $nightmareExit to 'Bed'>>", unlocked: $scenePassages.includes("NightmareCorruptSydney") }, "NightmareHarper":{ name:"Nightmare Harper", startPassage:"Nightmare Harper", passages:["Nightmare Harper","Nightmare Harper Wake","Nightmare Harper 2","Nightmare Harper 3","Nightmare Harper 4","Nightmare Harper 5","Nightmare Harper Machine","Nightmare Harper Machine Finish","Nightmare Harper 6","Nightmare Harper End"], manualVariableChanges:"<<set $sleephour to 1>><<set $nightmareExit to 'Bed'>>", unlocked: $scenePassages.includes("NightmareHarper") }, "NightmareAlex":{ name:"Nightmare Alex", startPassage:"Nightmare Alex", passages:["Nightmare Alex","Nightmare Alex Wake","Nightmare Alex 2","Nightmare Alex Rape","Nightmare Alex Rape Finish","Nightmare Alex End"], manualVariableChanges:"<<set $sleephour to 1>><<set $nightmareExit to 'Farm Bed'>>", unlocked: $scenePassages.includes("NightmareAlex") }, "NightmareWitch":{ name:"Nightmare Witch", startPassage:"Nightmare Witch", passages:["Nightmare Witch","Nightmare Witch Wake","Nightmare Witch 2","Nightmare Witch 3","Nightmare Witch 4","Nightmare Witch Faith","Nightmare Witch Love","Nightmare Witch Desperation","Nightmare Witch Perdition","Nightmare Witch Paranoia","Nightmare Witch Hatred","Nightmare Witch Nothing","Nightmare Witch End"], manualVariableChanges:"<<set $sleephour to 1>><<set $nightmareExit to 'Bed'>>", unlocked: $scenePassages.includes("NightmareWitch") }, "NightmareOffice":{ name:"Nightmare Office", startPassage:"Nightmare Office", passages:["Nightmare Office","Nightmare Office Wake","Nightmare Office 2","Nightmare Office 3","Nightmare Office Rape","Nightmare Office Rape Finish","Nightmare Office End"], manualVariableChanges:"<<set $sleephour to 1>><<set $nightmareExit to 'Bed'>>", unlocked: $scenePassages.includes("NightmareOffice") }, "NightmareGwylan":{ name:"Nightmare Gwylan", startPassage:"Nightmare Gwylan", passages:["Nightmare Gwylan", "Nightmare Gwylan Wake", "Nightmare Gwylan Leave", "Nightmare Gwylan Leave 2", "Nightmare Gwylan 2", "Nightmare Gwylan 3", "Nightmare Gwylan 4", "Nightmare Gwylan Tornado", "Nightmare Gwylan Whalefall", "Nightmare Gwylan End"], manualVariableChanges:"<<set $sleephour to 1>><<set $nightmareExit to 'Bed'>>", unlocked: $scenePassages.includes("NightmareGwylan") }, "HarperHypnosisIntro":{ name:"Harper Hypnosis Intro", startPassage:"SV Doctor Harper's Office", passages:["SV Doctor Harper's Office","Doctor Harper's Office Trance", "Doctor Harper's Office Trance Resist"], manualVariableChanges:"<<set $harper_appointments.hypnosis to 0>><<set $phase to 'intro'>>", unlocked: $scenePassages.includes("HarperHypnosisIntro") }, "HarperHypnosisTrance1":{ name:"Harper Hypnosis Trance 1", startPassage:"SV Doctor Harper's Office", passages:["SV Doctor Harper's Office","Doctor Harper's Office Trance","Doctor Harper's Office Camera", "Doctor Harper's Office Trance Resist", "Doctor Harper's Office Camera Resist"], manualVariableChanges:"<<set $harper_appointments.hypnosis to 1>><<set $phase to 'hypno'>>", unlocked: $scenePassages.includes("HarperHypnosisTrance1") }, "HarperHypnosisTrance2":{ name:"Harper Hypnosis Trance 2", startPassage:"SV Doctor Harper's Office", passages:["SV Doctor Harper's Office","Doctor Harper's Office Trance","Doctor Harper's Office Camera2", "Doctor Harper's Office Trance Resist", "Doctor Harper's Office Camera Resist"], manualVariableChanges:"<<set $harper_appointments.hypnosis to 2>><<set $phase to 'hypno'>>", unlocked: $scenePassages.includes("HarperHypnosisTrance2") }, "HarperHypnosisTrance3":{ name:"Harper Hypnosis Trance 3", startPassage:"SV Doctor Harper's Office", passages:["SV Doctor Harper's Office","Doctor Harper's Office Trance","Doctor Harper's Office Camera3", "Doctor Harper's Office Trance Resist", "Doctor Harper's Office Camera Resist"], manualVariableChanges:"<<set $harper_appointments.hypnosis to 3>><<set $phase to 'hypno'>>", unlocked: $scenePassages.includes("HarperHypnosisTrance3") }, "HarperHypnosisTrance4":{ name:"Harper Hypnosis Trance 4", startPassage:"SV Doctor Harper's Office", passages:["SV Doctor Harper's Office","Doctor Harper's Office Trance","Doctor Harper's Office Camera3","Doctor Harper's Office Camera Molestation","Doctor Harper's Office Camera Molestation Finish", "Doctor Harper's Office Trance Resist", "Doctor Harper's Office Camera Resist"], manualVariableChanges:"<<set $harper_appointments.hypnosis to 4>><<set $phase to 'hypno'>>", unlocked: $scenePassages.includes("HarperHypnosisTrance4") }, "HarperHypnosisExam1":{ name:"Harper Hypnosis Exam 1", startPassage:"SV Doctor Harper's Office", passages:["SV Doctor Harper's Office","Doctor Harper's Office Exam"], manualVariableChanges:"<<set $harper_appointments.exam to 0>><<set $phase to 'exam1'>>", unlocked: $scenePassages.includes("HarperHypnosisExam1") }, "HarperHypnosisExam2":{ name:"Harper Hypnosis Exam 2", startPassage:"SV Doctor Harper's Office", passages:["SV Doctor Harper's Office","Doctor Harper's Office Exam"], manualVariableChanges:"<<set $harper_appointments.exam to 1>><<set $phase to 'exam2'>>", unlocked: $scenePassages.includes("HarperHypnosisExam2") }, "HarperHypnosisExam3":{ name:"Harper Hypnosis Exam 3", startPassage:"SV Doctor Harper's Office", passages:["SV Doctor Harper's Office","Doctor Harper's Office Exam"], manualVariableChanges:"<<set $harper_appointments.exam to 2>><<set $phase to 'exam3'>>", unlocked: $scenePassages.includes("HarperHypnosisExam3") }, "HarperHypnosisDogIntro":{ name:"Harper Dog Intro", startPassage:"SV Doctor Harper's Office", passages:["SV Doctor Harper's Office", "Doctor Harper's Office Trance Dog", "Doctor Harper's Office Trance Resist"], manualVariableChanges:"<<set $harper_appointments.dog to 0>><<unset $harper_appointments.dog_intro>><<set $phase to 'dog'>>", unlocked: $scenePassages.includes("HarperDogIntro") }, "HarperHypnosisDog1":{ name:"Harper Dog 1", startPassage:"SV Doctor Harper's Office", passages:["SV Doctor Harper's Office", "Doctor Harper's Office Trance Dog", "Doctor Harper's Office Trance Resist", "Doctor Harper's Office Trance Dog Resist", "Doctor Harper's Office Dog Happy"], manualVariableChanges:"<<set $harper_appointments.dog to 1>><<set $phase to 'dog'>>", unlocked: $scenePassages.includes("HarperDog1") }, "HarperHypnosisDog2":{ name:"Harper Dog 2", startPassage:"SV Doctor Harper's Office", passages:["SV Doctor Harper's Office", "Doctor Harper's Office Trance Dog", "Doctor Harper's Office Trance Resist", "Doctor Harper's Office Trance Dog Resist", "Doctor Harper's Office Dog Strip", "Doctor Harper's Office Dog Strip Licking"], manualVariableChanges:"<<set $harper_appointments.dog to 2>><<set $phase to 'dog'>>", unlocked: $scenePassages.includes("HarperDog2") }, "HarperHypnosisDog3":{ name:"Harper Dog 3", startPassage:"SV Doctor Harper's Office", passages:["SV Doctor Harper's Office", "Doctor Harper's Office Trance Dog", "Doctor Harper's Office Trance Resist", "Doctor Harper's Office Trance Dog Resist", "Doctor Harper's Office Dog Strip"], manualVariableChanges:"<<set $harper_appointments.dog to 3>><<set $phase to 'dog'>>", unlocked: $scenePassages.includes("HarperDog3") }, "HarperHypnosisDog4":{ name:"Harper Dog 4", startPassage:"SV Doctor Harper's Office", passages:["SV Doctor Harper's Office", "Doctor Harper's Office Trance Dog", "Doctor Harper's Office Trance Resist", "Doctor Harper's Office Trance Dog Resist", "Doctor Harper's Office Dog Strip", "Doctor Harper's Office Dog Strip Licking", "Doctor Harper's Office Dog Molestation", "Doctor Harper's Office Dog Molestation Finish", "Doctor Harper's Office Dog Focus", "Doctor Harper's Office Dog Wake"], manualVariableChanges:"<<set $harper_appointments.dog to 4>><<set $phase to 'dog'>>", unlocked: $scenePassages.includes("HarperDog4") }, "MoorFlower":{ name:"Moor Flower", startPassage:"SV Moor Flower", passages:["SV Moor Flower","Moor Flower","Moor Phallus Plant","Moor Flower Masturbation","Moor Flower Masturbation Finish","Moor Phallus Plant Masturbation","Moor Phallus Plant Masturbation Finish","Moor Flower Ignore","Moor Flower Leave","Moor Tentacles","Moor Tentacles Finish"], manualVariableChanges:"<<set $location to 'moor'>>", unlocked: $scenePassages.includes("Moor Flower") or $scenePassages.includes("Moor Phallus Plant") }, "HookahPlot1":{ name:"Hookah Plot 1: Tentacle Forest Door", startPassage:"Tentacle Forest Door", passages:["Tentacle Forest Door","Tentacle Forest Quinn","Tentacle Forest Quinn 2","Tentacle Forest Quinn 3","Tentacle Forest Quinn 4"], manualVariableChanges:"<<set $location to 'tentworld'>><<set $tentacle_forest_time to 30>><<set $tentacle_forest_key to 1>><<set $hookah_plot to 0>>", unlocked: $scenePassages.includes("TentacleForestDoor") }, "HookahPlot2":{ name:"Hookah Plot 2: Town Hall Computer", startPassage:"Town Hall Computer", passages:["Town Hall Computer","Town Hall Computer 2","Town Hall Computer 3","Town Hall Computer 4","Town Hall Computer 5","Town Hall Computer 6","Town Hall Computer 7","Town Hall Computer 8"], manualVariableChanges:"<<set $location to 'town'>>", unlocked: $scenePassages.includes("TownHallComputer") }, "BlackWolfIntro":{ name:"Black Wolf Intro", startPassage:"ForestHuntDebug", passages:["ForestHuntDebug","Forest Wolf Molestation","Forest Wolf Molestation Finish","Forest Wolf Cave Intro","Forest Wolf Molestation Resist","Forest Wolf Molestation Resist Finish","Forest Wolf Cave Rape","Forest Wolf Cave Rape Finish","Forest Wolf Cave Rape End"], manualVariableChanges:"<<set $location to 'forest'>><<set $forestHunter to 'Black Wolf'>><<set $syndromewolves to 0>>", unlocked: $scenePassages.includes("BlackWolfIntro") }, "FreeTheBlackDog":{ name:"Free the Black Dog", startPassage:"Pound Free", passages:["Pound Free","Pound Free Reassure","Pound Free Lead","Pound Free 2","Pound Free Distract","Pound Free Run","Pound Free 3","Pound Free 4","Pound Free 5","Pound Free Fight","Pound Free Fight Finish","Pound Free Submit","Pound Free Crawl","Pound Free Stand","Pound Free Refuse","Pound Free 6","Pound Free Rape","Pound Free Rape Finish","Pound Free 7","Pound Free Beast","Pound Free Beast End"], manualVariableChanges:"<<set $location to 'town'>>", unlocked: $scenePassages.includes("FreeTheBlackDog") }, "MickeyOrphanageHacker":{ name:"Mickey Orphanage Hacker", startPassage:"Orphanage Hacker", passages:["Orphanage Hacker","Orphanage Hacker Strip Refuse","Orphanage Hacker Strip","Orphanage Hacker Strip 2","Orphanage Hacker Strip 3","Orphanage Hacker Strip 4"], manualVariableChanges:"<<set $location to 'home'>>", unlocked: $scenePassages.includes("OrphanageHacker") }, "MickeyPubFameIntro":{ name:"Mickey Pub Fame Intro", startPassage:"SV Pub Fame Intro", passages:["SV Pub Fame Intro","Pub Fame Intro","Pub Fame Intro 2","Pub Fame Intro 3","Pub Fame Intro 4"], manualVariableChanges:"<<set $location to 'pub'>><<set $mickeyPub to 2>>", unlocked: $scenePassages.includes("PubFameIntro") }, "PrisonSpirePrecipice":{ name:"Prison Spire Precipice", startPassage:"Scene Viewer passages", passages:["Prison Spire Precipice","Prison Spire Precipice Help","Prison Spire Precipice Demand"], manualVariableChanges:"<<set $sceneViewSwitch to 'prison_spire_options'>><<set $location to 'prison'>><<set $per_npc.anxious_guard.name_known to 0>><<run Time.setTime(13,0)>>", unlocked: $scenePassages.includes("PrisonSpirePrecipice") }, "PrisonYardLocket":{ name:"Prison Yard Locket", startPassage:"Prison Yard Speak", passages:["Prison Yard Speak","Prison Yard Locket"], manualVariableChanges:"<<set $location to 'prison'>><<set $per_npc.veteran_guard.name_known to 0>><<run Time.setTime(13,0)>>", unlocked: $scenePassages.includes("PrisonYardLocket") }, "PrisonScarredInmate":{ name:"Prison Scarred Inmate", startPassage:"SV Prison Scarred", passages:["SV Prison Scarred","Prison Scarred","Prison Scarred Bars","Prison Scarred Bars 2","Prison Scarred Bars Say","Prison Scarred Bars Refuse","Prison Scarred Bars Sob","Prison Scarred Refuse","Prison Scarred Pair","Prison Scarred Pair 2","Prison Scarred Pair Calm","Prison Scarred Pair Spank","Prison Scarred Pair Silent","Prison Scarred Pair Help","Prison Scarred Molestation","Prison Scarred Molestation 2","Prison Scarred Rape","Prison Scarred Rape Finish","Prison Scarred Turn","Prison Scarred Resist","Prison Scarred Fight","Prison Scarred Fight Finish","Prison Scarred Walk","Prison Scarred Walk 2","Prison Scarred Yard","Prison Scarred Yard Warn","Prison Scarred Yard End","Prison Scarred Yard Rape","Prison Scarred Yard Rape Finish","Prison Scarred Inmate Rape","Prison Scarred Inmate Rape Finish","Prison Scarred Inmate Help","Prison Scarred Sex","Prison Scarred Sex Finish","Prison Scarred Ask","Prison Scarred Sibling Refuse","Prison Scarred Sibling Agree","Prison Scarred Sibling 2","Prison Scarred Sibling 3","Prison Scarred Sibling 4","Prison Scarred Sex Refuse"], manualVariableChanges:"<<set $location to 'prison'>><<run Time.setTime(13,0)>>", unlocked: $scenePassages.includes("PrisonScarredInmate") }, }>> <</if>> <</widget>> <<widget "scenesSearch">> <span class="red">Avoid updating your games while you're replaying a scene.<<if $debug isnot 0>> "Teleporting" during a replay will break saves, avoid it if you don't know how to fix saves.<</if>></span> <br> Scenes per page: <<numberslider "$scenesSearch.numberOfItems" $scenesSearch.numberOfItems 4 40 2>> <br> <label>Hide locked: <<checkbox "$scenesSearch.hideLocked" false true autocheck>></label> <br> Search: <<textbox "$scenesSearch.text" $scenesSearch.text>> <br><br> <<run $(() => { $("#numberslider-input-scenessearchnumberofitems, #checkbox-scenessearchhidelocked").on("input change", function (e) { wikifier("<<scenesSearchUpdate>>"); }); $("#textbox-scenessearchtext").on("input keypress", function (e) { V.scenesSearch.text = e.target.value; switch(e.target.value.toLowerCase()) { case "tutorial": V.scenePassages.pushUnique("Tutorial"); V.scenes.Tutorial.unlocked = true; break; case "the farm": V.scenePassages.pushUnique("The Farm"); V.scenes.TheFarm.unlocked = true; break; } wikifier("<<scenesSearchUpdate>>"); }); })>> <</widget>> <<widget "scenesSearchUpdate">> <<set $scenesSearch.text to $scenesSearch.text.replace(/[^a-zA-Z\u4e00-\u9fa5 0-9]+/g,"")>> <<set _listPage to 1>> <<updateSceneViewer>> <</widget>> <<widget "scenesViewerCalc">> <<set _scenes to {}>> <<for _label, _value range $scenes>> <<if $scenesSearch.hideLocked and !_value.unlocked>><<continue>><</if>> <<set _lowerName to clone(_value.name).toLowerCase()>> <<set _lowerPassages to "".concat(_value.startPassage).toLowerCase()>> <<if $scenesSearch.text.length is 0 or ((_value.unlocked or $debug is 1) and (_value.name.toLowerCase().includes($scenesSearch.text.toLowerCase()) or "".concat(_value.startPassage).toLowerCase().includes($scenesSearch.text.toLowerCase())))>> <<run _scenes[_label] to clone(_value)>> <</if>> <</for>> <<set _keys to Object.keys(_scenes)>> <<set _keys to _keys.sort()>> <<set _scenesAvailable to _keys.length gt 0>> <<if _listPage is undefined>> <<set _listPage to 1>> <</if>> <<set _listMaxItems to $scenesSearch.numberOfItems>> <<set _listPageMax to Math.ceil(_keys.length / _listMaxItems)>> <<set _indexStart to ((_listPage - 1) * _listMaxItems)>> <<set _indexEnd to (_indexStart + _listMaxItems gt _keys.length ? _keys.length : _indexStart + _listMaxItems)>> <</widget>> <<widget "scenesViewer">> <<if _scenesAvailable is false>> No Scenes Found. <<exit>> <</if>> <<for _i to _indexStart; _i lt _indexEnd; _i++>> <<set _item to _scenes[_keys[_i]]>> <<if _item.unlocked is false and $debug is 0>> <span class="no-numberify red"> <<print _item.lockedMessage || "Locked">> </span> <<elseif _item.name is undefined or _item.startPassage is undefined or _item.passages is undefined>> <span class="no-numberify red"> Error in key '<<print _keys[_i]>>'. </span> <<else>> <<capture _item>> <span class="no-numberify"> <<link [[_item.name|_item.startPassage]]>><<setupReplayScene _item.name _item.startPassage _item.passages>><<print _item.manualVariableChanges>><</link>> </span> <</capture>> <</if>> <</for>> <</widget>> <<widget "scenesViewerControls">> <<if _scenesAvailable is false>><<exit>><</if>> <<set _disabled = _listPage > 1 ? "" : "disabled">> <div @class="'div-link btn-pagination prev ' + _disabled"> <<link "Previous">> <<if _listPage > 1>> <<set _listPage -= 1>> <<updateSceneViewer>> <</if>> <</link>> <div class="btn-pagination-arrow">&lt;</div> </div> <div> <<print (_listPage) + " out of " + _listPageMax>> </div> <<set _disabled = _listPage < _listPageMax ? "" : "disabled">> <div @class="'div-link btn-pagination next ' + _disabled"> <<link "Next">> <<if _listPage < _listPageMax>> <<set _listPage += 1>> <<updateSceneViewer>> <</if>> <</link>> <div class="btn-pagination-arrow">&gt;</div> </div> <<run linkifyDivs('#scenesViewerControls')>> <</widget>> <<widget "updateSceneViewer">> <<scenesViewerCalc>> <<replace "#scenesViewer">><<scenesViewer>><</replace>> <<replace "#scenesViewerControls">><<scenesViewerControls>><</replace>> <</widget>> <<widget "saveCompareTool">> Stored Variables are lost on page refresh. <div id="saveCompareUI"> <<saveCompareUI>> </div> <</widget>> <<widget "saveCompareUI">> <<link "Store Save1">><<set window.variableData1 to clone(V)>><<replace "#saveCompareUI">><<saveCompareUI>><</replace>><</link>> <<print (window.variableData1 isnot undefined ? "(Stored)" : "")>> <br> <<link "Store Save2">><<set window.variableData2 to clone(V)>><<replace "#saveCompareUI">><<saveCompareUI>><</replace>><</link>> <<print (window.variableData2 isnot undefined ? "(Stored)" : "")>> <br><br> <<if window.variableData1 and window.variableData2>> <<link "Compare Saves">><<set _comparedResult to saveDataCompare(window.variableData1,window.variableData2)>><<replace "#saveCompareUI">><<saveCompareUI>><</replace>><</link>> <</if>> <<if _comparedResult>> <<set _skip to ["map","NPCName","NPCList","saveDetails","lastgenerated","description","npcadult","lastOptions","danger","lock","femaleclimax","anusactiondefault","anusactioncarry","enemyhealthmax","enemyhealth","enemyarousal","mouthactiondefault","enemyanger","npcspeechcycle","mouthactioncarry","rng","pass","speechcycle"]>> <<if Object.keys(_comparedResult).length gt 0>> <div id="comparedResult"> <<for _label, _value range _comparedResult>> <<if _skip.includes(_label)>> <<continue>> <</if>> <div class="item"> <<if typeof _value[0] === 'object'>> <<print _label>> <br><br> <<print JSON.stringify(_value[0])>> <br><br> <<print JSON.stringify(_value[1])>> <<else>> <<print _label>> - <<print _value[0]>> - <<print _value[1]>> <</if>> </div> <</for>> </div> <<else>> Saves Identical <</if>> <</if>> <</widget>> <<widget "freezePlayerStats">> <<if $frozenValues>><<exit>><</if>> /* Should never be run more than once */ <<script>> const skipKeysOnFreeze = ["replayScene", "frozenValues", "statFreeze", "passage", "debug", "debugMenu", "options"]; V.statFreeze = true; V.frozenValues = {}; V.frozenValues.deepMerge(V, (key, value, depth) => { return !(depth === 1 && skipKeysOnFreeze.includes(key)) && typeof value !== "function"; }); <</script>> <</widget>> <<widget "unfreezePlayerStats">> <<if $replayScene>><<exit>><</if>> /* Should never be run when a scene is running */ <<script>> const skipKeysOnFreeze = ["replayScene", "frozenValues", "statFreeze", "passage", "debug", "debugMenu", "options", "hcChallenge", "hcChallengesCompleted"]; const objectsToHardRestore = ["skin", "worn", "prof", "player", "transformationParts", "sexStats", "hypnosis_traits", "hypnosisTimers", "parasite"]; delete V.statFreeze; if (V.frozenValues) { const retainedKeys = Object.fromEntries( Object.entries(V).filter(([key]) => skipKeysOnFreeze.includes(key)) ); const cleanedObjects = Object.fromEntries( Object.entries(V.frozenValues).filter(([key]) => objectsToHardRestore.includes(key)) ); V.deepMerge(V.frozenValues, "strict-replace"); Object.assign(V, cleanedObjects); Object.assign(V, retainedKeys); delete V.frozenValues; Time.set(); } <</script>> <<if $replayScene is undefined>> <<doVersionCheck>> <</if>> <</widget>> <<widget "SVTutorial">> <<givestartclothing>> <<set $worn.over_upper to clone(setup.clothes.over_upper[0])>> <<set $worn.over_lower to clone(setup.clothes.over_lower[0])>> <<set $worn.upper to clone(setup.clothes.upper[0])>> <<set $worn.lower to clone(setup.clothes.lower[0])>> <<exposedcheck>> <</widget>> <<widget "SVSydney">> Sydney Purity: <span id="sydneyPurity">Current Save</span> <br> <<link "Set Pure">> <<set C.npc.Sydney.purity to 100>> <<set C.npc.Sydney.corruption to 0>> <<replace "#sydneyPurity">>Pure<</replace>> <</link>> | <<link "Set Neutral">> <<set C.npc.Sydney.purity to 0>> <<set C.npc.Sydney.corruption to 0>> <<replace "#sydneyPurity">>Neutral<</replace>> <</link>> | <<link "Set Corrupt">> <<set C.npc.Sydney.purity to 0>> <<set C.npc.Sydney.corruption to 100>> <<replace "#sydneyPurity">>Corrupt<</replace>> <</link>> | <br><br> Sydney Lust: <span id="sydneyLust">Current Save</span> <br> <<link "Clear">> <<set C.npc.Sydney.lust to 0>> <<replace "#sydneyLust">>Not Lustful<</replace>> <</link>> | <<link "Set">> <<set C.npc.Sydney.lust to 100>> <<replace "#sydneyLust">>Lustful<</replace>> <</link>> | <br><br> Sydney Romance: <span id="sydneyRomance">Current Save</span> <br> <<link "Clear">> <<set $sydneyromance to 0>> <<replace "#sydneyRomance">>Not romancing<</replace>> <</link>> | <<link "Set">> <<set $sydneyromance to 1>> <<replace "#sydneyRomance">>Romancing<</replace>> <</link>> | <</widget>> <!-- False passages to initiate scene viewer scenes, for cases where starting passages have too many potential roadblocks --><br> You are in the main hall of the orphanage. <<if $christmas is 1 and Time.monthDay is 25 and Time.dayState isnot "night">> The room is alive with festive merriment. <<else>> <<if Time.dayState is "day">> A couple of orphans on cleaning duty sweep the floor. <<elseif Time.dayState is "dusk">> You hear hushed voices. <<elseif Time.dayState is "dawn">> <<if Time.schoolDay>> The orphans are heading off to school. <<else>> The orphans are leaving to find work. <</if>> <<elseif Time.dayState is "night">> The orphans must be asleep. <</if>> <</if>> <br><br> A hand rests on your shoulder from behind. <span class="red">It's Bailey.</span> <br><br> <<if $robinfirstrentfight and ($baileypaychain lt 2 or $renttime lte -1)>> <<rentduerobin 0>> <<else>> <<rentdue 0>> <</if>><<set $outside to 0>><<set $location to "home">><<effects>> <<npc Robin>><<person1>> You go to Robin's room. There's a note on the door. "Please don't enter!" <br><br> <<link [[Enter|Robin Caught CD]]>><</link>> <br> <<link [[Leave|Orphanage]]>><<set $fromRobinRoom to true>><<endevent>><</link>> <br><<set $outside to 0>><<set $location to "home">><<effects>> <<set _robin to statusCheck("Robin")>> <<npc Robin>><<person1>> You play a cooperative game with <<him>>. You're about to win the stage when there's a knock on the door. <br><br> Robin, still wearing <<his>> <<if _robin.pronoun is "f">> <<npcClothesText _robin "upper">> and chest binder, <<else>> <<npcClothesText _robin "upper">>, <</if>> flushes deeply. "This looks bad doesn't it?" <br><br> <<link [[Let Robin respond|Robin CD Door Answer]]>><</link>> <br> <<link [[Tell Robin to ignore it|Robin CD Door Ignore]]>><</link>> <br><<set $outside to 0>><<set $location to "home">><<home_effects>><<effects>> You are in the main hall of the orphanage. A couple of orphans on cleaning duty sweep the floor. <br><br> <<npc Robin>> <<generatey2>><<person2>> You see Robin talking with a <<person2>><<person>>. Robin waves you over. <br><br> <<link [[Go over|Robin CD Socialise]]>><</link>> <br> <<link [[Ignore|Orphanage]]>><<endevent>><</link>><<set _uniqueoptions to true>> <<robinroom>> <<if Time.season is "winter">> <<set _stand to "hot chocolate stand">> <<set _inLocation to "in the park">> <<else>> <<set _stand to "lemonade stand">> <<set _inLocation to "on the beach">> <</if>> Robin looks at the clock on the wall and sighs. "I need to get my _stand set up." <<He>> slowly gets up. "I'll get changed, then I'll be _inLocation if you want to see me." <br><br> <<if _robin.lovestage gte 5>> <<link [[Ask what's wrong|Robin's Stand CD Explain Full]]>><<npcincr Robin love 3>><</link>><<gglove>> <<else>> <<link [[Ask what's wrong|Robin's Stand CD Explain Demo]]>><</link>> <</if>> <br> <<if Time.season is "winter">> <<link [[Offer to help set up (0:30)|Robin Chocolate Set]]>><<pass 30>><<npcincr Robin love 1>><</link>><<glove>> <<else>> <<link [[Offer to help set up (0:30)|Robin's Lemonade Set]]>><<pass 30>><<npcincr Robin love 1>><</link>><<glove>> <</if>> <br> <<link [[Leave|Orphanage]]>><<set $fromRobinRoom to true>><<endevent>><</link>> <br><<npc Robin>><<person1>> <<set _robin to statusCheck("Robin")>> You enter Robin's room, <<hes>> standing in front of <<his>> mirror holding a <<print (_robin.pronoun is "m" ? "girl's" : "boy's")>> school uniform in front of <<him>>. <<He>> seems focused on how <<he>> looks and doesn't notice you at first. <br><br> <<if $robinromance is 1>> <<link [[Compliment|Robin School CD Compliment]]>><</link>> <<else>> <<link [[Interrupt|Robin School CD Interrupt]]>><</link>> <</if>> <br> <<link [[Leave|Orphanage]]>><</link>> <br><<set $outside to 1>><<set $location to "town">><<effects>><<set $bus to "wolf">> You are on Wolf Street. The nearby forest bleeds into the town here, particularly where the temple sits. <<if Time.dayState is "day">> <<if Weather.precipitation is "rain">> The trees sway in the wind. <<elseif Weather.isSnow>> The trees sway in the wind, dislodging snow from their branches. <<else>> It's one of the quieter parts of town. <</if>> <<elseif Time.dayState is "dawn">> You hear chanting from within. <<elseif Time.dayState is "dusk">> It strikes a forbidding silhouette against the darkening sky. <<elseif Time.dayState is "night">> It's almost pitch-black. <</if>> <<streeteffects>> <br><br> <<monstrance_accost>><<SVSydney>> <br><br> <<link [[Start|SV Temple Confess Purge 2]]>><</link>> <br>"I name you <span class="red">corrupted</span>." You kneel, positioning yourself against the seal and opening the small metal shutter. "Remove your clothes and stand against the seal of confession. I will take your corruption into myself, and you will be forgiven." <br><br> <<set $attendant to ["corrupt_1","corrupt_2","corrupt_3","corrupt_4","corrupt_5","corrupt_6","corrupt_7","corrupt_8","corrupt_9"].random()>> <<generate1>><<person1>> <<switch $attendant>> <<case "corrupt_1">> <<set _accepted to true>> "Ah... yes! Fill the hole! I understand now! Bless you, <<sister>>!" <<He>> complies. <<case "corrupt_2">> <<set _accepted to true>> "Oh? How unexpected. If you insist, dear <<sister>>." <<He>> complies. <<case "corrupt_3">> <<set _accepted to true>> <<He>> complies. "Will this make God forgive me?" <<case "corrupt_4">> <<set _accepted to true>> "Is this purification? Will this spare me the... the wall? Th-thank you, <<sister>>." <<He>> complies. <<case "corrupt_5">> <<set _accepted to true>> "Finally, someone punctual." <<He>> complies. <<case "corrupt_6">> <<set _accepted to true>> "Right away, <<sister>>. Anything to make this feeling stop. Is... is this going to hurt?" <<case "corrupt_7">> <<set _accepted to true>> <<He>> complies with your request. "This... this feels sinful, but I trust you, <<sister>>." <<case "corrupt_8">> <<set _accepted to true>> <<He>> goes silent for a moment. "Purges. Urges. Purges. Urges." <br><br> <<He>> continues to repeat <<himself>>, but complies with your request. <<case "corrupt_9">> <<set _accepted to true>> "Wonderful! Thank you, <<sister>>." <<He>> complies with your request. <</switch>> <br><br> <<link [[Next|Temple Confess Purge Sex]]>><<set $sexstart to 1>><</link>> <br><<effects>> <<generateRole 0 0 "islander">> <<generateRole 1 0 "islander">> <<person1>> You approach the guards, a <<person>> and <<person2>><<person>>. <span class="green">Your mask conceals your face.</span> They remain motionless, until you're halfway across the bridge. <br><br> "Halt," the <<person1>><<person>> says. "What gives you the right to enter here?" <span class="green">You should be able to respond in their language.</span> <br><br> <<link [[Act dignified|Island Castle Dignified]]>><</link>> <br> <<link [[Act cute|Island Castle Cute]]>><</link>> <br><<if random(1, 2) is 1>> <<set $moorFlower to "flower">> <<else>> <<set $moorFlower to "phallus plant">> <</if>> You smell a sweet fragrance. A pink flower alongside an odd plant grows among the heather. <<if $earSlime.corruption gte 80 and random(1, 4) gte 5 - numberOfEarSlime()>> <span class="red">The ear slimes weaken your ability to resist its allure.</span> <<if numberOfEarSlime() gte 2>> <<set $moorFlowerMod to 400>> <<else>> <<set $moorFlowerMod to 200>> <</if>> <<else>> <<set $moorFlowerMod to 0>> <</if>> <br><br> <<link [[Investigate the flower|Moor Flower]]>><<arousal 600>><<drugs 60>><<set $moorFlower to "flower">><</link>><<garousal>> <br> <<link [[Investigate the odd plant|Moor Phallus Plant]]>><<arousal 600>><<drugs 60>><<set $moorFlower to "phallus plant">><</link>><<garousal>> <br> <<link [[Ignore|Moor Flower Ignore]]>><</link>><<willpowerdifficulty `1 + $moorFlowerMod` `600 + $moorFlowerMod`>> <br><div id="SVTutorial"> <<link "Leaving the Orphanage">> <<replace "#SVTutorial">> <<generate1>><<person1>>As you leave the orphanage you bump into a <<person>> passing by. <<He>> staggers back and looks at you with anger, but <<his>> rage turns to lechery as <<he>> beholds you. "You're the cutest thing I've seen all week! Come 'ere." <br><br> <<link [[Next|Tutorial]]>><<set $molestationstart to 1>><<set $tutorialExit to "Domus Street">><</link>> <</replace>> <</link>> <br> <<link [[Climbing a Fence in just underwear|Garden Fence]]>><<SVTutorial>><</link>> <br> <<link [[Walking to school with Robin|Robin Walk School]]>><</link>> <br> <<link [[Helping Robin with <<nnpc_his "Robin">> lemonade stand|Robin's Lemonade Set Tutorial]]>><<npc Robin>><</link>> <br> <<link [[Helping Robin with <<nnpc_his "Robin">> hot chocolate stand|Robin Chocolate Set Tutorial]]>><<npc Robin>><</link>> <br> <<link [[Waiting it out|Rent Intro]]>><</link>> <br> <<link '"Sleep" walking'>> <<set $molestationstart to 1>> <<replace "#SVTutorial">><<slimeWakeAlleyway>><</replace>> <</link>> <br> </div><<undergroundEscapeForestRobin>><<SVSydney>> <br><br> <<link [[Start|Temple Vigil Inquire]]>><</link>> <br><<SVSydney>> <br><br> <<link [[Start|Dilapidated Shop]]>><</link>> <br><<SVSydney>> <br><br> <<link [[Start|Adult Shop Opening]]>><</link>> <br><<set $pubfame to {seen: [], tasksDone: []}>><<set $fameDecay to {}>><<set $fameDecayTimer to {}>> <<generate1>><<person1>> A hand lands on your shoulder from behind. "You've been busy," a <<person>> says in your ear. You can smell the alcohol on <<his>> breath. "Don't think I don't recognise you. You're the talk of the town. <<if $fame.bestiality gte 400>> Bit surprising not seeing a buncha mutts fucking you raw, though." <<elseif $fame.sex gte 400 or $fame.rape gte 400 or $fame.prostitution gte 400>> Bit surprising not seeing you being fucked raw, though." <<else>> Bit surprising seeing you all covered up, though." <</if>> <<stress 3>><<gstress>> <br><br> <<His>> grip tightens. "I reckon it's time I got my slice of the pie. <<if $fame.prostitution gte 400>>Hope you don't mind that I'm not paying for it.<<elseif $fame.rape gte 400>>You like it rough, right? That's what I've heard.<</if>> Come 'ere, sweetheart." <br><br> <<link [[Next|Pub Fame Intro]]>><</link>><<npc Avery>><<person1>> As you are about to leave the building, you hear a great uproar. Dozens of students are gathering outside as a helicopter descends upon the school precincts. One of the passenger doors swings open. Avery beckons from inside. <br><br> "Come on, get a move on, I haven't got all day! Important business awaits!" <br><br> <<link [[Board helicopter (0:20)|Avery Helicopter]]>><<npcincr Avery love 2>><</link>><<gglove>> <br> <<link [[Walk away|Avery Helicopter Walk]]>><<npcincr Avery love -1>><<npcincr Avery rage 5>><</link>><<garage>><<llove>>Whitney Meets Bailey First Time: <span id="baileyMeet">False</span> <br> <<link "Clear">> <<set $whitney_bailey_met to 0>> <<replace "#baileyMeet">>False<</replace>> <<run Time.setTime(17,0)>> <<replace "#timeOfDay">>Day<</replace>> <</link>> | <<link "Set">> <<set $whitney_bailey_met to 1>> <<replace "#baileyMeet">>True<</replace>> <<run Time.setTime(17,0)>> <<replace "#timeOfDay">>Day<</replace>> <</link>> | <br><br> Time of day: <span id="timeOfDay">Current Save</span> <br> <<link "Day">> <<run Time.setTime(17,0)>> <<replace "#timeOfDay">>Day<</replace>> <</link>> | <<link "Night">> <<run Time.setTime(22,0)>> <<replace "#timeOfDay">>Night<</replace>> <</link>> | <br><br> <<link [[Start|SV Street Bully Orphanage Go 2]]>><</link>> <br><<npc Whitney>><<person1>> "Just the slut I was looking for," <<he>> says. "Come on. I'm visiting your home. The orphanage." <<He>> flicks a fresh cigarette butt into the gutter and takes your arm in <<his>> own. <br><br> <<link [[Make Whitney promise to be nice to the other residents (0:25)|Street Bully Orphanage Promise]]>><<pass 25>><</link>> <br> <<link [[Go to the orphanage (0:25)|Street Bully Orphanage Go]]>><<npcincr Whitney love 1>><<pass 25>><</link>><<glove>> <br> <<link [[Refuse|Street Bully Orphanage Refuse]]>><<npcincr Whitney love -3>><</link>><<lllove>> <br>Player Purity: <span id="playerPurity">Current Save</span> <br> <<link "High">> <<set $purity to 999>> <<replace "#playerPurity">>High<</replace>> <</link>> | <<link "Mid">> <<set $purity to 950>> <<replace "#playerPurity">>Mid<</replace>> <</link>> | <<link "Low">> <<set $purity to 450>> <<replace "#playerPurity">>Low<</replace>> <</link>> | <br><br> Player Grace: <span id="playerGrace">Current Save</span> <br> <<link "High">> <<set $grace to 100>> <<replace "#playerGrace">>High<</replace>> <</link>> | <<link "Mid">> <<set $grace to 50>> <<replace "#playerGrace">>Mid<</replace>> <</link>> | <<link "Low">> <<set $grace to 1>> <<replace "#playerGrace">>Low<</replace>> <</link>> | <<link "None">> <<set $grace to 0>> <<replace "#playerGrace">>None<</replace>> <</link>> | <br><br> Evaluation already taken: <span id="evaluation">Current Save</span> <br> <<link "No">> <<run $sydneySeen.delete("evaluation")>> <<replace "#evaluation">>No<</replace>> <</link>> | <<link "Yes">> <<run $sydneySeen.pushUnique("evaluation")>> <<replace "#evaluation">>Yes<</replace>> <</link>> | <br><br> Sydney is Pure: <span id="sydneyPurity">Current Save</span> <br> <<link "Yes">> <<set C.npc.Sydney.purity to 100>> <<replace "#sydneyPurity">>Yes<</replace>> <</link>> | <<link "Lost some">> <<set C.npc.Sydney.purity to 80>> <<replace "#sydneyPurity">>Lost some<</replace>> <</link>> | <<link "Not enough">> <<set C.npc.Sydney.purity to 0>> <<replace "#sydneyPurity">>Not enough<</replace>> <</link>> | <br><br>First met Sydney at: <span id="sydneyMet">Current Save</span> <br> <<link "Mass">> <<set $sydneyFirstSeen to "mass">> <<run $sydneySeen.pushUnique("mass")>> <<replace "#sydneyMet">>Mass<</replace>> <</link>> | <<link "Library">> <<set $sydneyFirstSeen to "library">> <<run $sydneySeen.pushUnique("library")>> <<replace "#sydneyMet">>Library<</replace>> <</link>> | <<link "Library rescue">> <<set $sydneyFirstSeen to "libRescue">> <<run $sydneySeen.pushUnique("libRescue")>> <<replace "#sydneyMet">>Library rescue<</replace>> <</link>> | <<link "Science class">> <<set $sydneyFirstSeen to "science">> <<run $sydneySeen.pushUnique("science")>> <<replace "#sydneyMet">>Science class<</replace>> <</link>> | <<link "Sirris' Shop">> <<set $sydneyFirstSeen to "shop">> <<run $sydneySeen.pushUnique("shop")>> <<replace "#sydneyMet">>shop<</replace>> <</link>> | <<link "Trial of Anguish">> <<set $sydneyFirstSeen to "anguish">> <<run $sydneySeen.pushUnique("anguish")>> <<replace "#sydneyMet">>anguish<</replace>> <</link>> | <br><br> <<link [[Start|Sydney Temple Pure]]>><<npc Sydney>><</link>> <br><<npc "Sydney">><<person1>> Sydney takes a deep breath. "I'm ready." <<He>> begins to count the number of <<monks>> around. "Perfect. We should have an opening in a minute. I'll go first, follow me in about two minutes." <<He>> begins giving you a list of directions and subtle details to look out for in the temple's back halls. <br><br> <<He>> starts to get up, but stops <<himself>> and turns back to you. "Are you absolutely sure you're ready? Broken vows are taken very seriously here, and if we get caught..." <br><br> <<link [[Yes (0:02)|Sydney Temple Corrupt 2]]>><<pass 2>><</link>> <br> <<link [[No|Sydney Temple Corrupt Cancel]]>><</link>> <br><br><br>Stage: <span id="stage">Name Learned</span> <br> <<link "1st Event">> <<set $per_npc.scarred_inmate.name_known to 0>> <<set $prison.scarred to 0>> <<set $prison.scarred_level to 0>> <<replace "#stage">>1st Event<</replace>> <</link>> | <<link "2nd Event">> <<set $per_npc.scarred_inmate.name_known to 0>> <<set $prison.scarred to 0>> <<set $prison.scarred_level to 1>> <<replace "#stage">>2nd Event<</replace>> <</link>> | <<link "3rd Event">> <<set $per_npc.scarred_inmate.name_known to 0>> <<set $prison.scarred to 0>> <<set $prison.scarred_level to 2>> <<replace "#stage">>3rd Event<</replace>> <</link>> | <<link "4th Event">> <<set $per_npc.scarred_inmate.name_known to 0>> <<set $prison.scarred to 0>> <<set $prison.scarred_level to 3>> <<replace "#stage">>4th Event<</replace>> <</link>> | <<link "5th Event">> <<set $per_npc.scarred_inmate.name_known to 0>> <<set $prison.scarred to 0>> <<set $prison.scarred_level to 5>> <<replace "#stage">>5th Event<</replace>> <</link>> | <<link "Name Learned">> <<set $per_npc.scarred_inmate.name_known to 0>> <<replace "#stage">>Name Learned<</replace>> <</link>> | <br><br> <<link [[Start|Prison Scarred]]>><</link>> <br><<set $outside to 0>> <<set $location to "hospital">> <<effects>> <<npc Harper>><<person1>> You knock on the door and hear <<if $hospitalintro isnot 1>>a <<personsimple>><<else>>Harper<</if>>'s voice on the other side. "Come in." You enter. <br><br> <<if $phase is "intro">> <<include "Doctor Harper's Office Intro">> <<elseif $phase is "hypno">> <<include "Doctor Harper's Office Hypnosis">> <<elseif $phase is "exam1">> <<include "Doctor Harper's Office Exam 1">> <<elseif $phase is "exam2">> <<include "Doctor Harper's Office Exam 2">> <<elseif $phase is "exam3">> <<include "Doctor Harper's Office Exam 3">> <<elseif $phase is "dog">> <<include "Doctor Harper's Office Dog">> <</if>><<set $outside to 0>><<set $location to "school">><<schooleffects>><<effects>> <!-- Generate Demon --> <<generateDemon 1>><<person1>> You investigate the noise coming from the school's hallway. Suddenly, with a HERMMMMM-POP a portal swirls open in front out you. From the portal <span class="blue">a <<person>> strides out,</span> <<his>> red eyes never leaving contact with yours. <br><br> The <<person>> opens <<his>> mouth and roars hotly. <span class="red">Your clothes are shredded to nothing in a blast of heat and wind as you wince from the impact,</span> your skin glowing hotly. <<set Skin.color.tan to 100>> <br> <<set $worn.lower.integrity to 0>><<set $worn.upper.integrity to 0>><<set $worn.under_lower.integrity to 0>><<set $worn.under_upper.integrity to 0>> <<headruined>><<legsruined>><<feetruined>> <<integritycheck>> <br> You look up, feeling a combination of awe and terror. The <<persons>> $NPCList[0].breastsdesc are standing straight out in defiance of gravity, <<his>> $NPCList[0].penisdesc dangling semi-engorged over <<his>> vagina... while the <<person>> is standing in front of you, everything shifts about lazily, as if you were looking at painting being swirled. <br><br> The <<person>> speaks in a commanding voice breaking your reverie, "Serve me well mortal and you shall be rewarded." <br><br> You consider your options... <br><br> <<link [[Run away screaming|Oxford Street]]>><</link>> <br> <<link [[Stay and see what happens...|Demon Sex]]>><<set $sexstart to 1>><</link>> <br><<effects>><<person1>> <<if $sexstart is 1>> <span class="pink">Prepare yourself, mortal.</span> <<set $sexstart to 0>> <<consensual>> <<set $consensual to 1>> <<violence 1>> <<neutral 1>> <<maninit>> <<set $enemytrust += 500>> <<set $enemyarousalmax to 10000>> <<set $ostart to $orgasmcount>><<set $oindex to 0>><<set $o to 0>> <</if>> /% DEBUG: $NPCList[0].penis $NPCList[0].vagina<br> %/ /% DEBUG: ocount $orgasmcount $o $oindex $ostart <br> %/ <<set $o to ($orgasmcount - $ostart)>> <<if $o gt $oindex>> You have cum $o times. <span class="purple">The <<person>> grows in power as <<he>> drains you. <<awareness -10>><<llawareness>></span> <br> <<set $oindex to $o>> <</if>> <<set $enemyanger to 0>> <<effects>> <<effectsman>><<man>> <<stateman>> <br><br> <<actionsman>> <<if $enemyhealth lte 0>> <span id="next"><<link [[Next|Demon Sex Finish]]>><</link>></span><<nexttext>> <<elseif $enemyarousal gte $enemyarousalmax>> <span id="next"><<link [[Next|Demon Sex Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Demon Sex]]>><</link>></span><<nexttext>> <</if>><<schooleffects>><<effects>> <<unset $o>><<unset $ostart>><<unset $oindex>> <<person1>> <<if $enemyarousal gte $enemyarousalmax>> <<ejaculation-demon>> You wake on a grassy field, refreshed but drenched in semen and goo... the <<person>> is gone, <span class="blue">leaving you with a deep sense of longing you can't shake or understand.</span> <br><br> <<set $tiredness to 1>> <<set $pain to 0>> <<drench "semen" "slime" 5>> <<clotheson>> <<endcombat>> <<link [[Next|Park]]>><</link>> <<else>> <<He>> recoils and vanishes. You are left with a deep sense of longing you can't shake or understand. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Hallways]]>><</link>> <</if>><<widget "ejaculation-demon">> <<famesex 1>> You pass out from exertion, completely spent, <span class="blue">while the <<person>> roars and continues to work away on your limp body.</span> <<animateCombat>> <</widget>><<if $molestationstart is 1>> <<set $molestationstart to 0>> <<generate1>><<generate2>><<generate3>><<generate4>><<generate5>><<generate6>><<person1>> You feel the room shake, then shift sideways. You find yourself in a featureless black room with a gang of $enemyno and an audience behind ropes. There is a sign on the wall that says <span class="orange">DEBUG</span> in bright orange letters, along with other statistics you don't understand. <br><br> <span class="red">The gang advances...</span> <br><br> <<controlloss>> <br> <<violence 1>> <<neutral 1>> <<maninit>> <</if>> <span class="orange">DEBUG GROUP:</span> <span class="red">TRST: $enemytrust HLTH: <<print Math.trunc($enemyhealth)>> : $enemyhealthmax AROSL: <<print Math.trunc($enemyarousal)>> : $enemyarousalmax ANGR: $enemyanger : $enemyangermax </span> <br> <span class="orange">DEBUG BROTHEL EVENT:</span> Enemy current of $enemynomax (1 - 6): $enemyno <br> <span class="green">DEBUG: Enemy #: Health Descr Gen Pro PP Vag Mouth LH RH Clothes</span> <br> <<for _ii = 0; _ii < $enemynomax; _ii++>> DEBUG: _ii: <<print Math.trunc($NPCList[_ii].health)>> $NPCList[_ii].description $NPCList[_ii].gender $NPCList[_ii].pronoun $NPCList[_ii].penis $NPCList[_ii].vagina $NPCList[_ii].mouth $NPCList[_ii].lefthand $NPCList[_ii].righthand $NPCList[_ii].clothes.upper.name $NPCList[_ii].clothes.lower.name <br> <</for>> DEBUG PC (P/V/A/M/LARM): $penisstate $vaginastate $anusstate $mouthstate $leftarm <br><br> <<effects>> <<effectsman>> <<alarmstate>> <<man>> <<audience>> <<stateman>> <br><br> <<actionsman>> <<if $alarm is 1>> <<if $rescue is 0>> <<set $alarm to 0>> <<if ($enemyarousal gte $enemyarousalmax) or ($enemyhealth lte 0)>> <span id="next"><<link [[Next|The Pod Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|The Pod]]>><</link>></span><<nexttext>> <</if>> <</if>> <<elseif ($enemyarousal gte $enemyarousalmax) or ($enemyhealth lte 0)>> <span id="next"><<link [[Next|The Pod Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|The Pod]]>><</link>></span><<nexttext>> <</if>><<effects>> <<if $enemyhealth lte 0>> <<He>> recoils in pain, giving you the chance you need. <<tearful>> you escape the gang, leaving them defeated on the floor. <br> You feel the room shift again and find yourself in your bedroom. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Bedroom]]>><</link>> <<elseif $enemyarousal gte $enemyarousalmax>> <<ejaculation>> <<if $audience is 1>> A cheer erupts from the crowd as the <<person1>><<person>> climaxes. <<tearful>> you manage to stagger away before anyone else gets ideas. <<elseif $audience lte 6>> The <<person1>><<person>> and <<person2>><<person>> high-five each other. <<tearful>> you manage to stagger away while the audience congratulates each other. <<else>> A cheer erupts from the crowd, seems they enjoyed the show. <<tearful>> you manage to stagger away before anyone else gets any ideas. <</if>> <br><br> <<stealclothes>> <<clotheson>> <<endcombat>> You feel the room shift again and find yourself in your bedroom. <br><br> <<link [[Next|Bedroom]]>><</link>> <</if>><<if $molestationstart is 1>> <<set $molestationstart to 0>> <<generateBEAST 1 dog>> <<generateBEAST 2 pig>> <<generateBEAST 3 cat>> <<generateBEAST 4 fox>> <<generateBEAST 5 lizard>> <<generateBEAST 6 creature>> <<beastTrainGenerate>> You stumble from the woods onto the verge of a steep cliff. Losing your balance <span class="red">you tip over the edge, tumbling to the bottom.</span> <br><br> When you recover, you find yourself in the main yard of a small farm. You are stunned to see several animals dancing around you... singing... <br><br> <span class="green">Old McDonald's rape-y farm <br> E-I-E-I-O <br> And on this farm we found a whore <br> E-I-E-I-O</span> <br><br> <span class="red">They stop singing and advance on you</span> <br> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<beastCombatInit>> <</if>> <<effects>> <<effectsman>> <br> <<beast $enemyno>> <br><br> <<if $replayScene is undefined>> DEBUG BEAST EVENT: Enemy current of $enemynomax (1 - 6): $enemyno <br> <span class="green">DEBUG: Enemy #: Gen Pro Type Monster Stance PP Vag</span> <br> <<for _ii = 0; _ii < $enemynomax; _ii++>> DEBUG: _ii: $NPCList[_ii].gender $NPCList[_ii].pronoun $NPCList[_ii].type $NPCList[_ii].monster $NPCList[_ii].stance $NPCList[_ii].penis $NPCList[_ii].vagina <br> <</for>> <br><br> <</if>> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|The Farm Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|The Farm]]>><</link>></span><<nexttext>> <</if>><<effects>> <<if $enemyhealth lte 0>> <<beastwound>> <<if $combatTrain.length gt 0>> The $NPCList[0].type recoils in pain and fear, but another beast is eager for a go. <<combatTrainAdvance>> <br><br> <<link [[Next|The Farm]]>><</link>> <<else>> The $NPCList[_na].type recoils in pain and fear. <br><br> <<link [[Next|The Farm Finish]]>><<set $finish to 1>><</link>> <</if>> <<elseif $enemyarousal gte $enemyarousalmax>> <<beastejaculation>> <<if $combatTrain.length gt 0>> Satisfied, the $NPCList[0].type moves and another beast takes its turn. <<combatTrainAdvance>> <br><br> <<link [[Next|The Farm]]>><</link>> <<else>> Satisfied, the $NPCList[0].type moves away from you. <br><br> <<link [[Next|The Farm Finish]]>><<set $finish to 1>><</link>> <</if>> <<elseif $finish is 1>> <<if $enemywounded is 1 and $enemyejaculated is 0>> The $NPCList[_na].type whimpers and flees into a barn. <<elseif $enemywounded is 0 and $enemyejaculated is 1>> The $NPCList[_na].type leaves you lying on the grass. <<elseif $enemywounded gte 2 and $enemyejaculated is 0>> Feeling that you're more trouble than you're worth, the animals flee to a nearby barn. <<elseif $enemywounded is 0 and $enemyejaculated gte 2>> The animals leave you spent and shivering on the grass. <<elseif $enemywounded gte 1 and $enemyejaculated gte 1>> The animals leave you spent and shivering on the grass. <</if>> <br><br> <<tearful>> you gather yourself. <br><br> <<clotheson>> <<endcombat>> Out of nowhere a goat runs from the shed. Rearing back, <span class="green">it kicks you all the way to Domus Street and through your bedroom window.</span> <br> <<link [[Next|Bedroom]]>><</link>> <</if>><!-- Used to debug Beast generation by displaying all attributes. --> <span class="red">TOTAL BEAST TYPES: $BeastList.length</span> <br> <<for _i = 0; _i lt $BeastList.length; _i++>> /% <<generateBEAST 1 $BeastList[_i]>><!-- This can call all m/f if specified --> %/ <<beastNEWinit 1 $BeastList[_i]>> <br> Introducing Beast <<print _i>>: <span class="green">$NPCList[0].description $NPCList[0].type</span> <br> PRONOUN: <span class="red">$NPCList[0].pronoun</span> GENDER: <span class="red">$NPCList[0].gender</span> <br> PPSize,Desc: <span class="gold">$NPCList[0].penissize, $NPCList[0].penisdesc</span> BREASTSize,Desc: <span class="gold">$NPCList[0].breastsize, $NPCList[0].breastsdesc</span> <br> PenActiv: <span class="gold">$NPCList[0].penis</span> VagActiv: <span class="gold">$NPCList[0].vagina</span> <br> /% DOM: $NPCList[0].dom LUST $NPCList[0].lust RAGE: $NPCList[0].rage TRAUMA $NPCList[0].trauma<br> %/ /% STATE: $NPCList[0].state<br> %/ <</for>> <<link [[Next|Bedroom]]>><</link>><!-- Used to debug Beast Train --> <<beastNEWinit 6 dolphin>> <span class="red">BEAST TRAIN: $enemyno members</span> <br> <<for _x = $enemyno-1; _x gte 0; _x-->> Introducing Beast <<print _x+1>>: <span class="green">$NPCList[_x].description $NPCList[_x].type</span> <br> PRONOUN: <span class="red">$NPCList[_x].pronoun</span> GENDER: <span class="red">$NPCList[_x].gender</span> <br> PPSize,Desc: <span class="gold">$NPCList[_x].penissize, $NPCList[_x].penisdesc</span> BREASTSize,Desc: <span class="gold">$NPCList[_x].breastsize, $NPCList[_x].breastsdesc</span> <br> PenActiv: <span class="gold">$NPCList[_x].penis</span> VagActiv: <span class="gold">$NPCList[_x].vagina</span> <br><br> <</for>> <<link [[Next|Bedroom]]>><</link>><!-- Used to debug Named NPCs by displaying all attributes. --> <span class="red">TOTAL NAMED NPCS: $NPCName.length</span> <br> <!-- Example of introduction, variable set / increment, and put away of npc --> /% <<npc Robin>> %/ /% In walks $npc[0] and takes a bow. <<He>> has more Trauma now. And out <<he>> goes.<br> %/ /% <<npcset $npc[0] trauma 80>> %/ /% <<npcincr $npc[0] trauma 100>> %/ /% <<endnpc>> %/ <<set _genderColor to {"m": "blue", "h": "purple", "f": "pink"}>> <<for _i = 0; _i lt $NPCName.length; _i++>> <<set _nnpc to $NPCName[_i]>> <<set _nnpc_init_backup to _nnpc.init>> <<npc _nnpc.nam>> <<set _listnpc to $NPCList[0]>> <br> NNPC #<<print _i>>: <span class="green">_nnpc.nam, the _nnpc.title</span> <br> <<set _pColor to _genderColor[_nnpc.pronoun]>> <<set _gColor to _genderColor[_nnpc.gender]>> PRONOUN: <span @class="_pColor"><<print _nnpc.pronoun.toUpperCase()>></span> | GENDER: <span @class="_gColor"><<print _nnpc.gender.toUpperCase()>></span> <br> Penis Size: <span class="gold">_nnpc.penissize</span>, Desc: <span class="gold">_nnpc.penisdesc</span>, State: <span @class="_nnpc.penis is 'none' ? 'red' : 'gold'">_nnpc.penis</span> <br> Breast Size: <span class="gold">_nnpc.breastsize</span>, Desc: <span class="gold">_nnpc.breastsdesc</span> <br> TYPE: <span class="blue"><<if _nnpc.adult>>Adult<<elseif _nnpc.teen>>Teen<<else>>???<</if>></span> | INSECURITY: <span class="red">_nnpc.insecurity</span> <br> TRUST: <span class="gold">_nnpc.trust</span> | LOVE (<span class="pink"><<print setup.loveAlias[_nnpc.nam]()>></span>): <span class="gold">_nnpc.love</span> | DOM: <span class="gold">_nnpc.dom</span> | LUST: <span class="gold">_nnpc.lust</span> | RAGE: <span class="gold">_nnpc.rage</span> | TRAUMA: <span class="gold">_nnpc.trauma</span> <br> STATE: _nnpc.state <br> CLOTHES: <span class="teal">_nnpc.clothes.set</span> <br> Upper: <span class="teal">_nnpc.clothes.upper.name</span> | Lower: <span class="teal">_nnpc.clothes.lower.name</span> <br> Outfits: [<<print '<span class="teal">'+_nnpc.outfits.join('</span>, <span class="teal">')+"</span>">>] <br> You have <<if _nnpc_init_backup isnot 1>><span class="red">not</span><</if>> been introduced to <<him>>. <br> <<endnpc _nnpc.nam>> <<set _nnpc.init to _nnpc_init_backup>> <hr> <</for>> <<link [[Next|Bedroom]]>><</link>><!-- Keeping this only as an example on how to use Widget as Event for debug --> <<residentialex2>> <<link [[Next|Domus Street]]>><</link>><<if $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<abomination>> You awaken to find yourself being assaulted by a strange beast! <</if>> <<effects>> <<effectsman>> <<alarmstate>> <<man>> <<stateman>> <br><br> <<actionsman>> <<if $alarm is 1>> <<if $rescue is 1>> <span id="next"><<link [[Next|Abomination Old]]>><</link>></span><<nexttext>> <<else>> <<set $alarm to 0>> <<if $enemyarousal gte $enemyarousalmax>> <span id="next"><<link [[Next|Abomination Old]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Abomination Old]]>><</link>></span><<nexttext>> <</if>> <</if>> <<elseif $enemyarousal gte $enemyarousalmax>> <span id="next"><<link [[Next|Abomination Old]]>><</link>></span><<nexttext>> <<elseif $enemyhealth lte 0>> <span id="next"><<link [[Next|Abomination Old]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Abomination Old]]>><</link>></span><<nexttext>> <</if>><<if $molestationstart is 1>> <<set $molestationstart to 0>> <<molested>> <<controlloss>> <<set $combat to 1>> <</if>> <<underwater>><<effects>><<swarmeffects>> <<swarm>> <<swarmactions>> <<if $stress gte $stressmax>> <span id="next"><<link [[Next|Swarm Test]]>><</link>></span><<nexttext>> <<elseif $swimdistance lte 0>> <span id="next"><<link [[Next|Swarm Test]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Swarm Test]]>><</link>></span><<nexttext>> <</if>><<location "sea">><<effects>> <<if $molestationstart is 1>><<set $molestationstart to 0>> <<set $combat to 1>> <<molested>> <<controlloss>> <<set $enemytype to "tentacles">> <<tentaclestart 6 15>> <<set $vorestage to 1>> <<set $vorecreature to "whale">> <<set $vorestrength to 1>><<set $position to "doggy">> <<if $hallucinations gte 1>> <<set $voretentacles to 1>> <<else>> <<set $voretentacles to 0>> <</if>> <<swarminit "fish" "swarm" "moving towards you" "encircle you" "fend off" 1 9>> <<set $swimdistance to 20>> <<set $water to 1>> <<resetLastOptions>> <<getCombatDefaultsType>> <</if>> <<voreeffects>><<swarmeffects>><<effectstentacles>> <<vore>><<swarm>><<tentacles>> <<statetentacles>> <<actionsOmni>> <<if $stress gte $stressmax>> <span id="next"><<link [[Next|Monster Test]]>><</link>></span><<nexttext>> <<elseif $vorestage lte 0>> <span id="next"><<link [[Next|Monster Test]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Monster Test]]>><</link>></span><<nexttext>> <</if>><<if $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<generate1>><<generate2>><<maninit>> <<set $NPCList[0].penis to "vagina">><<set $vaginause to "penis">><<set $vaginastate to "penetrated">><<set $vaginatarget to 0>> <<set $NPCList[1].penis to "anus">><<set $anususe to "penis">><<set $anusstate to "penetrated">><<set $anustarget to 1>> <</if>> <<effects>> <<effectsman>> <<alarmstate>> <<man>> <<stateman>> <br><br> <<actionsman>> <<if $alarm is 1>> <<if $rescue is 1>> <span id="next"><<link [[Next|DP Test]]>><</link>></span><<nexttext>> <<else>> <<set $alarm to 0>> <<if $enemyarousal gte $enemyarousalmax>> <span id="next"><<link [[Next|Molestation Ejaculation]]>><</link>></span><<nexttext>> <<elseif $enemyhealth lte 0>> <span id="next"><<link [[Next|Molestation Escape]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|DP Test]]>><</link>></span><<nexttext>> <</if>> <</if>> <<elseif $enemyarousal gte $enemyarousalmax>> <span id="next"><<link [[Next|Molestation Ejaculation]]>><</link>></span><<nexttext>> <<elseif $enemyhealth lte 0>> <span id="next"><<link [[Next|Molestation Escape]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|DP Test]]>><</link>></span><<nexttext>> <</if>><<if $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<beastNEWinit 1 dog>> <<beastCombatInit>> <<beastTrainGenerate>> You awaken to find yourself surrounded by a pack of stray dogs! <</if>> <<effects>> <<effectsman>> <<alarmstate>> <<beast $enemyno>> <br><br> <<stateman>> <br><br> <<actionsman>> <<if $alarm is 1>> <<set $alarm to 0>> <<if $enemyarousal gte $enemyarousalmax>> <span id="next"><<link [[Next|Wolf Pack Ejaculation]]>><</link>></span><<nexttext>> <<elseif $enemyhealth lte 0>> <span id="next"><<link [[Next|Wolf Pack Escape]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Wolf Pack]]>><</link>></span><<nexttext>> <</if>> <<elseif $enemyarousal gte $enemyarousalmax>> <span id="next"><<link [[Next|Wolf Pack Ejaculation]]>><</link>></span><<nexttext>> <<elseif $enemyhealth lte 0>> <span id="next"><<link [[Next|Wolf Pack Escape]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Wolf Pack]]>><</link>></span><<nexttext>> <</if>><<effects>> <<beastwound>> <<if $combatTrain.length gt 0>> The beast recoils in pain and fear, but another takes its place. <<beastNEWinit $combatTrain.numberPerTrain[0] $combatTrain.beastTypes[0]>> <<combatTrainAdvance>> <br><br> <<link [[Next|Wolf Pack]]>><</link>> <<else>> The beast recoils in pain and fear. <br><br> <<link [[Next|Wolf Pack End]]>><</link>> <</if>><<effects>> <<beastejaculation>> <<if $combatTrain.length gt 0>> Satisfied, the beast leaves you be. Another takes its place. <<beastNEWinit $combatTrain.numberPerTrain[0] $combatTrain.beastTypes[0]>> <<combatTrainAdvance>> <br><br> <<link [[Next|Wolf Pack]]>><</link>> <<else>> Satisfied, the beast leaves you be. <br><br> <<link [[Next|Wolf Pack End]]>><</link>> <</if>><<effects>> <<if $enemywounded is 1 and $enemyejaculated is 0>> The wolf whimpers and flees into the forest. <<elseif $enemywounded is 0 and $enemyejaculated is 1>> The wolf leaves you lying on the grass. <<elseif $enemywounded gte 2 and $enemyejaculated is 0>> Feeling that you're more trouble than you're worth, the wolves flee into the forest. <<elseif $enemywounded is 0 and $enemyejaculated gte 2>> The wolves leave you spent and shivering on the grass. <<elseif $enemywounded gte 1 and $enemyejaculated gte 1>> The wolves leave you spent and shivering on the grass. One seems to be limping. <</if>> <br><br> <<clotheson>> <<endcombat>> <<link [[It was just a dream|Bedroom]]>><</link>>Add the NPCs you want.<br> <<if $enemyno lt 6>> <<if !($npc.includes("Alex"))>> <<link [[Add Alex|$passage]]>><<npc Alex -1>><</link>><br> <</if>> <<if !($npc.includes("Avery"))>> <<link [[Add Avery|$passage]]>><<npc Avery -1>><</link>><br> <</if>> <<if !($npc.includes("Bailey"))>> <<link [[Add Bailey|$passage]]>><<npc Bailey -1>><</link>><br> <</if>> <<if !($npc.includes("Briar"))>> <<link [[Add Briar|$passage]]>><<npc Briar -1>><</link>><br> <</if>> <<if !($npc.includes("Charlie"))>> <<link [[Add Charlie|$passage]]>><<npc Charlie -1>><</link>><br> <</if>> <<if !($npc.includes("Darryl"))>> <<link [[Add Darryl|$passage]]>><<npc Darryl -1>><</link>><br> <</if>> <<if !($npc.includes("Doren"))>> <<link [[Add Doren|$passage]]>><<npc Doren -1>><</link>><br> <</if>> <<if !($npc.includes("Eden"))>> <<link [[Add Eden|$passage]]>><<npc Eden -1>><</link>><br> <</if>> <<if !($npc.includes("Gwylan"))>> <<link [[Add Gwylan|$passage]]>><<npc Gwylan -1>><</link>><br> <</if>> <<if !($npc.includes("Harper"))>> <<link [[Add Harper|$passage]]>><<npc Harper -1>><</link>><br> <</if>> <<if !($npc.includes("Jordan"))>> <<link [[Add Jordan|$passage]]>><<npc Jordan -1>><</link>><br> <</if>> <<if !($npc.includes("Kylar"))>> <<link [[Add Kylar|$passage]]>><<npc Kylar -1>><</link>><br> <</if>> <<if !($npc.includes("Landry"))>> <<link [[Add Landry|$passage]]>><<npc Landry -1>><</link>><br> <</if>> <<if !($npc.includes("Leighton"))>> <<link [[Add Leighton|$passage]]>><<npc Leighton -1>><</link>><br> <</if>> <<if !($npc.includes("Mason"))>> <<link [[Add Mason|$passage]]>><<npc Mason -1>><</link>><br> <</if>> <<if !($npc.includes("Morgan"))>> <<link [[Add Morgan|$passage]]>><<npc Morgan -1>><</link>><br> <</if>> <<if !($npc.includes("Niki"))>> <<link [[Add Niki|$passage]]>><<npc Niki -1>><</link>><br> <</if>> <<if !($npc.includes("Quinn"))>> <<link [[Add Quinn|$passage]]>><<npc Quinn -1>><</link>><br> <</if>> <<if !($npc.includes("Remy"))>> <<link [[Add Remy|$passage]]>><<npc Remy -1>><</link>><br> <</if>> <<if !($npc.includes("River"))>> <<link [[Add River|$passage]]>><<npc River -1>><</link>><br> <</if>> <<if !($npc.includes("Robin"))>> <<link [[Add Robin|$passage]]>><<npc Robin -1>><</link>><br> <</if>> <<if !($npc.includes("Sam"))>> <<link [[Add Sam|$passage]]>><<npc Sam -1>><</link>><br> <</if>> <<if !($npc.includes("Sirris"))>> <<link [[Add Sirris|$passage]]>><<npc Sirris -1>><</link>><br> <</if>> <<if !($npc.includes("Sydney"))>> <<link [[Add Sydney|$passage]]>><<npc Sydney -1>><</link>><br> <</if>> <<if !($npc.includes("Whitney"))>> <<link [[Add Whitney|$passage]]>><<npc Whitney -1>><</link>><br> <</if>> <<if !($npc.includes("Winter"))>> <<link [[Add Winter|$passage]]>><<npc Winter -1>><</link>><br> <</if>> <<if !($npc.includes("Wren"))>> <<link [[Add Wren|$passage]]>><<npc Wren -1>><</link>><br> <</if>> <<if !($npc.includes("Zephyr"))>> <<link [[Add Zephyr|$passage]]>><<npc Zephyr -1>><</link>><br> <</if>> <</if>> <br><br> <<if $enemyno gte 1>> <<for _lll to 0; _lll lt $enemyno; _lll++>> $npc[_lll] is active.<br> <</for>><br> <<link "Remove $npc[0]"$passage>><<endnpc `$npc[0]`>><</link>><br> <<if $enemyno gte 2>> <<link "Remove $npc[1]"$passage>><<endnpc `$npc[1]`>><</link>><br> <</if>> <<if $enemyno gte 3>> <<link "Remove $npc[2]"$passage>><<endnpc `$npc[2]`>><</link>><br> <</if>> <<if $enemyno gte 4>> <<link "Remove $npc[3]"$passage>><<endnpc `$npc[3]`>><</link>><br> <</if>> <<if $enemyno gte 5>> <<link "Remove $npc[4]"$passage>><<endnpc `$npc[4]`>><</link>><br> <</if>> <<if $enemyno is 6>> <<link "Remove $npc[5]"$passage>><<endnpc `$npc[5]`>><</link>><br> <</if>> <<if $enemyno gte 2>> <<link [[Remove all NPCs|$passage]]>><<endnpc>><</link>><br> <</if>> <br><br> <<link [[Named NPC Gangbang]]>><<set $sexstart to 1>><</link>> <</if>><<if $sexstart is 1>> <<set $sexstart to 0>> <<consensual>> <<set $consensual to 1>> <<neutral 1>> <<maninit>> <<if $possessed is true>> <<set $enemyanger to 200>><<npcidlegenitals>> <</if>> <</if>> <<effects>> <<effectsman>> <<man>> <<stateman>> <br><br> <<actionsman>> <<if _combatend or _controlRegain is 1>> <span id="next"><<link [[Next|Named NPC Gangbang Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Named NPC Gangbang]]>><</link>></span><<nexttext>> <</if>><<if $enemyarousal gte $enemyarousalmax>> <<ejaculation>><br> <<elseif $enemyhealth lte 0>> You've beaten their ass. <<elseif $finish is 1>> You ended it prematurely. <<elseif $possessed is true and $control gte $controlmax>> You maxed out your control. <<set $possessed to false>><<set _possess to 1>> <</if>> <br> <<clotheson>> <<if _possess>> <<link [[Go again|Possessed Fight Test]]>><<endcombat>><<set $possessed to true>><<set $control to 0>><</link>><<lllcontrol>><<note "+ Wraith" "wraith">><br> <<else>> <<link [[Select NPCs|Named NPC Gangbang Select]]>><<endcombat>><</link>><br> <</if>> <<link [[Back Home|Bedroom]]>><<endcombat>><</link>><<set $outside to 0>><<set $location to "home">><<effects>> <!-- Generate Ivory Wraith --> <<generateWraith 1 true>><<person1>><<rainWraith>> You find yourself standing before your mirror. You trace a holy symbol on it, and a baleful red glow begins to emanate from it. A beautiful pale figure stares back. It presses a hand against the mirror. <br><br> "<span class="wraith">I can feel your heartbeat. I am already inside you. Won't you give in?</span>" <br><br> How do you respond? <br><br> <<link [[As One.|Wraith Test]]>><<set $wraith.select to "man">><</link>> <br> <<link [[The Writhing Ensues.|Wraith Test]]>><<set $wraith.select to "tentacles">><</link>> <br> <<link [[Enveloped by Nothing.|Wraith Test]]>><<set $wraith.select to "slimetentacles">><</link>> <br> <<link [[Dissolve.|Wraith Test]]>><<set $wraith.select to "slime">><</link>> <br> <<link [[Immaculate Vanity.|Wraith Test]]>><<set $wraith.select to "arms">><</link>> <br> <<link [[The Power of Lust.|Wraith Test]]>><<set $wraith.select to "abomination">><</link>> <br> <<link [[Surprise Me.|Wraith Test]]>><<set $wraith.select to "random">><</link>> <br> <<link [[I'm going to jump out my window now, bye.|Domus Street]]>><<endWraith>><<clearWraith>><<set $eventskip to 1>><</link>> <br><<effects>> <<if $wraith.select is "random">> <<switch random(1, 6)>> <<case 1>> <<set $wraith.select to "man">> <<case 2>> <<set $wraith.select to "tentacles">> <<case 3>> <<set $wraith.select to "slimetentacles">> <<case 4>> <<set $wraith.select to "slime">> <<case 5>> <<set $wraith.select to "arms">> <<case 6>> <<set $wraith.select to "abomination">> <</switch>> <</if>> <<if ($wraith.select.includes("slime") and !$settings.slimesEnabled) or (($wraith.select.includes("tentacle") or $wraith.select is "abomination") and !$settings.tentaclesEnabled)>> The image in the mirror freezes, and the figure's face becomes blank. A message appears on the surface: <br><br> <span class="red">ERROR: You have chosen or randomly rolled an option disabled by your current settings. Please enable both slimes and tentacles. If both are already enabled, please tell PurityGuy that he's an idiot.</span> <br><br> The figure unfreezes and shakes its head. It then looks at you. "<span class="wraith">Get fucked.</span>" Your mirror shatters and signals for replacement. When you blink, it's been fixed. <br><br> <<link [[Next...?|Bedroom]]>><<endWraith>><</link>> <br> <<else>> <<initWraith $wraith.select>> <<switch $wraith.gen>> <<case "man">> A pale arm reaches out from the mirror and lifts your chin. "<span class="wraith">Forever,</span> <span class="tentacle">As One.</span>" It steps from the mirror. <<case "tentacles">> The space behind the figure begins to distort. A mass of pale tentacles shoot out from the mirror, violently pinning you to the wall and destroying your clothes. <<clothesruined>><<legsruined>><<feetruined>> <br><br> "<span class="wraith">The writhing ensues.</span>" The figure steps out of the mirror. <<case "slimetentacles">> The space behind the figure begins to distort. A mass of pale tentacles shoot out from the mirror, violently pinning you to the wall and destroying your clothes. <br><br> It raises its hand, and a swirling portal appears above you. Slimes begin to pour out and cover you. <br><br> "<span class="wraith">Be enveloped by nothing.</span>" <<clothesruined>><<legsruined>><<feetruined>> <<case "slime">> The figure raises a hand as it steps from the mirror. From behind it, a group of pale slimes leap at you! "<span class="wraith">Dissolve the shell to have your way with the flesh.</span>" <<case "arms">> The figure steps out from the mirror. As it emerges before you, several extra pairs of arms spring out from its back. "<span class="wraith">Kneel before my immaculate form.</span>" <<case "abomination">> The space behind the figure begins to distort. A mass of pale tentacles shoot out from the mirror as it steps out. "<span class="wraith">Embrace the power of lust.</span>" <</switch>> <br><br> <<link [[Next|Wraith Test Sex]]>><</link>> <</if>><<effects>> <<if $struggle_start is 1>> <<set $combat to 1>> <<controlloss>> <<violence 1>> <<molested>> <<if $player.penisExist>> <<set $struggle.penis.creature to "pale slime">><<set $penisuse to "struggle">><<set $penisstate to "struggle">><<set $struggle.enemy[0].location to "penis">> <<else>> <<set $struggle.vagina.creature to "pale slime">><<set $vaginause to "struggle">><<set $vaginastate to "struggle">><<set $struggle.enemy[0].location to "vagina">> <</if>> <<unset $struggle_start>> <<elseif $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<set $enemytype to $wraith.type>> <</if>> <<set $rescue to 0>> <<effectsWraith>> <<switch $wraith.type>> <<case "man">> <<if $enemyarousal gte $enemyarousalmax>> <span id="next"><<link [[Next|Wraith Test Sex Finish]]>><</link>></span><<nexttext>> <<elseif $enemyhealth lte 0>> <span id="next"><<link [[Next|Wraith Test Sex Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Wraith Test Sex]]>><</link>></span><<nexttext>> <</if>> <<case "tentacles">> <<if $tentacles.active lte ($tentacles.max / 2)>> <span id="next"><<link [[Next|Wraith Test Sex Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Wraith Test Sex]]>><</link>></span><<nexttext>> <</if>> <<case "slime">> <<if $struggle.done gte $struggle.number>> <span id="next"><<link [[Next|Wraith Test Sex Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Wraith Test Sex]]>><</link>></span><<nexttext>> <</if>> <</switch>> <br> <<link [[Back to the bedroom|Bedroom]]>><<endcombat>><<endWraith>><<clotheson>><</link>> <br><br><br><br><<effects>> <<switch $wraith.type>> <<case "man">> <<if $enemyhealth lte 0>> The figure looks down at you in shock as it staggers backwards. <<if $wraith.gen is "abomination">> The tentacles drop lifelessly to the ground and sublimate into a pink mist. <<elseif $wraith.gen is "arms">> Its extra arms fold back in. <</if>> Its head snaps back, and it dissipates into nothingness with a brief shriek that echoes in your mind. Your ears ring, and you think you hear laughter. "<span class="wraith">Worry not, we'll meet again soon.</span>" <br><br> <<tearful>> you sit against your bed, wondering if what just happened was real. <<set $wraith.defeated++>> <<else>> <<ejaculation>> With a bright flash, it vanishes. You feel lewd energy linger in the air and its laughs echo between your ears. "<span class="wraith">Worry not, we'll meet again soon.</span>" <br><br> <<tearful>> you sit against your bed, wondering if what just happened was real. <</if>> <<case "tentacles">> The tentacles retreat from you, back to the pale figure's side.<<if $wraith.gen is "slimetentacles">> The slimes quickly follow.<</if>> It gives you a regal bow, before stepping back into your mirror, which promptly shatters behind it. <br><br> You blink, and your mirror looks normal again. <<tearful>> you sit against your bed, wondering if what just happened was real. <<case "slime">> The slimes disengage, retreating back to the figure. It picks one up and begins to pet it as it walks back though your mirror. <br><br> <<tearful>> you sit against your bed, wondering if what just happened was real. <</switch>> <<clotheson>> <<endcombat>> <<endWraith>> <<link [[Next|Bedroom]]>><<set $eventskip to 1>><</link>> <br><br> <<if $settings.plantsEnabled or $settings.tentaclesEnabled>> <<link [[Consensual sex in the forest|Plantperson Test Sex]]>><<set $sexstart to 1>><<set $location to "forest">><</link>><br> <<link [[Nonconsensual sex in the forest|Plantperson Test Sex]]>><<set $molestationstart to 1>><<set $location to "forest">><</link>><br> <<link [[Consensual sex in the moor|Plantperson Test Sex]]>><<set $sexstart to 1>><<set $location to "moor">><</link>><br> <<link [[Nonconsensual sex in the moor|Plantperson Test Sex]]>><<set $molestationstart to 1>><<set $location to "moor">><</link>> <<else>> <b>Plantpeople/tentacles are disabled or otherwise unavailable.</b> I don't know what you're trying to do here. <br><br> <<link [[Enable plantpeople|Plantperson Test]]>><<hallucinogen 10>><<set $settings.plantsEnabled to true>><<set $settings.tentaclesEnabled to true>><</link>><<ghallucinogens>> <</if>> <br><br> <<link [[Back home|Bedroom]]>><<endevent>><</link>><<if $sexstart is 1 or $molestationstart is 1>> <<if $sexstart is 1>> <<set $sexstart to 0>> <<consensual>><<set $consensual to 1>> <<neutral 1>> <<elseif $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <</if>> <<generatePlant1>><<person1>> <<maninit "plant">><<npcexpose>> <<if $location is "forest">> <<enable_rescue>> <</if>> <<set $enemyarousalmax to 800>> <<set _randomtentacles to random(6, 10)>> <<makeAbomination _randomtentacles 10 "vine" "vine" true>> "Hi there!" A <<person>> pops up in front of you, <<plant_details>> strewn through <<his>> hair because you're in the $location and it's <<print Time.season>>. "You're cute! I'm gonna fuck you with my vines!" <br> A bunch of vines pop out of the ground. <</if>> <<effects>> <<effectsabomination>><<abomination>> <<stateabomination>> <br><br> <<actionsabomination>> <<if $finish is 1>> <span id="next"><<link [[FINISH|Plantperson Test Sex Finish]]>><</link>></span><<nexttext>> <<elseif $enemyhealth lte 0>> <span id="next"><<link [[HEALTH|Plantperson Test Sex Finish]]>><</link>></span><<nexttext>> <<elseif $enemyarousal gte $enemyarousalmax>> <span id="next"><<link [[ORGASM|Plantperson Test Sex Finish]]>><</link>></span><<nexttext>> <<elseif $alarm is 1 and $rescue is 1>> <span id="next"><<link [[RESCUE|Plantperson Test Sex Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Plantperson Test Sex]]>><</link>></span><<nexttext>> <</if>> <br> <<link [[Emergency exit|Plantperson Test Sex Finish]]>><<set $finish to 1>><</link>> <br><br><br><br><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<ejaculation>> <<if _orgasm>> "That was great!" the <<person>> cheers. "And thanks for cumming in me! Later!" <<else>> "That was fun!" the <<person>> chirps. "Later!" <</if>> <<He>> digs back into the ground, and <<his>> vines follow. One of the vines waves at you. <<elseif $enemyhealth lte 0>> "Ow!" the <<person>> whines. "You're no fun!" <<He>> digs back into the ground, and <<his>> vines follow. One of the vines flips you off, somehow. <<elseif $alarm is 1 and $rescue is 1>> You hear a gun fire close by, and a bullet lands at the <<persons>> feet. "Fuck," <<he>> hisses. "It's the <<nnpc_title "Eden">>. Fuck. Fuck shit fuck. Um." <<He>> grabs your face and gives you a syrupy kiss on each cheek, before pulling away from you. "See ya! I'm out!" <<bodyliquid "face" "goo">> <br><br> The <<person>> retracts <<his>> vines and retreats into the forest right as Eden emerges. <<nnpc_He "Eden">> helps you collect yourself. "Damn hikers," <<nnpc_he "Eden">> mutters. "Are you okay?" <<else>> "Emergency exit? Bummer," the <<person>> says. <<He>> shrugs. "Oh well. Fuck your holes until you're a gibbering mess hopelessly addicted to my nectar later!" <<He>> digs back into the ground, and <<his>> vines follow. One of the vines checks <<his>> notifications on <<his>> phone. <</if>> <<endcombat>> <<clotheson>> <<link [[Do it again|Plantperson Test]]>><</link>><br> <<link [[Back home|Bedroom]]>><</link>><<generateWraith>><<endevent>> <<if !$wraith.will>> <<set $wraith.will to random(1300, 1700)>> <</if>> <br> You feel a tap on your shoulder. You turn around. Nothing is there. You turn back. <br><br> "<span class="wraith">Boo.</span>" <br><br> You open your mouth to scream, but it is already inside you. <br><br> <<link [[Fight a stranger|Possessed Fight]]>><<set $opponent to 1>><<set $fightstart to 1>><</link>><br> <<link [[Fight Sydney|Possessed Fight]]>><<set $opponent to 2>><<set $fightstart to 1>><</link>><br> <<link [[Select your named NPCs|Named NPC Gangbang Select]]>><</link>><<if $fightstart is 1>> <<set $fightstart to 0>> <<if $opponent is 1>> <<generate1>><<person1>> <<catcall>> A <<person>> reaches for you. <br><br> Your body is made to laugh. "<span class="wraith">Those who interrupt ghosts shall join them.</span>" <<elseif $opponent is 2>> <<npc Sydney>><<person1>> Sydney freezes in front of you. "Oh, no. Beloved, something's wrong, I can feel it." <br><br> Your body is made to laugh. "<span class="wraith">False. Everything is right in the world.</span>" <</if>> <<neutral 1>> <<maninit>> <<set $enemytrust -= 100>> <<set $enemyanger += 200>> <<npcidlegenitals>> <br><br> <</if>> <<effects>> <<effectsman>><<man>> <<stateman>> <br><br> <<actionsman>> <<if $enemyhealth lte 0>> <span id="next" class="nextWraith"><<link [[HEALTH|Possessed Fight Finish]]>><</link>></span><<nexttext>> <<elseif $enemyarousal gte $enemyarousalmax>> <span id="next" class="nextWraith"><<link [[ORGASM|Possessed Fight Finish]]>><</link>></span><<nexttext>> <<elseif _controlRegain is 1>> <span id="next" class="nextWraith"><<link [[CONTROL|Possessed Fight Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next" class="nextWraith"><<link [[Next|Possessed Fight]]>><</link>></span><<nexttext>> <</if>><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<ejaculation>> <br><br> <<tearful>> you recover. "<span class="wraith">Shall we dance again?</span>" your mouth is forced to ask. <br><br> <<clotheson>> <<endcombat>> <<link [[Fight again|Possessed Fight]]>><<endevent phaseless>><<set $fightstart to 1>><</link>> <br> <<link [[Freshen up, then fight again|Possessed Fight]]>><<endevent phaseless>><<set $fightstart to 1>><<set $pain to 0>><<set $arousal to 0>><</link>><<lpain>><<larousal>> <<elseif $enemyhealth lte 0>> <<if $opponent is 1>> The <<person>> falls back and scrambles away. <<elseif $opponent is 2>> Sydney moans, slaps a hand over <<his>> mouth, and runs away. <</if>> <br><br> <<tearful>> you recover. "<span class="wraith">Shall we dance again?</span>" your mouth is forced to ask. <br><br> <<clotheson>> <<endcombat>> <<link [[Fight again|Possessed Fight]]>><<set $fightstart to 1>><<endevent phaseless>><</link>> <br> <<link [[Freshen up, then fight again|Possessed Fight]]>><<set $fightstart to 1>><<endevent phaseless>><<set $pain to 0>><<set $arousal to 0>><</link>><<lpain>><<larousal>> <<else>> <<set $possessed to false>> You regain control in your body and rip the pale figure out of your chest like you're pulling a rabbit out of a hat. <<if $opponent is 1>>The <<person>>, justifiably terrified by this development, scrambles away.<</if>> <br><br> "<span class="wraith">Congratulations. You won.</span>" It pats you on the head, then vanishes in a torrent of water. <<if $opponent is 2>>Sydney is nowhere to be seen.<</if>> <br><br> <<tearful>> you try to decide if you want to go again or not. <br><br> <<clotheson>> <<endcombat>> <<link [[Fight again|Possessed Fight]]>><<set $possessed to true>><<set $control to 0>><<set $fightstart to 1>><<endevent phaseless>><</link>><<lllcontrol>><<note "+ Wraith" "wraith">> <br> <<link [[Freshen up, then fight again|Possessed Fight]]>><<set $possessed to true>><<set $control to 0>><<set $fightstart to 1>><<endevent phaseless>><<set $pain to 0>><<set $arousal to 0>><</link>><<lpain>><<larousal>><<lllcontrol>><<note "+ Wraith" "wraith">> <br> <<link [[Decision room|Possessed Fight Test]]>><<set $possessed to true>><<set $control to 0>><</link>><<lllcontrol>><<note "Also + Wraith" "wraith">> <</if>> <br><br> <<link [[Back home|Bedroom]]>><<set $possessed to false>><<endevent>><<unset $opponent>><</link>><br> The lights flash on. You find yourself in a strange chamber, completely smooth and featureless. There is a sign on the wall that says <span class="orange">DEBUG</span> in bright orange letters. A large, opaque tube reaches to the ceiling. The words <span class="blue">CUSTOM CONSTRUCT</span> are labelled on the front. <br> A terminal is attached to the tube. You look at the prompts. <br><br> <i>Please select the construct's descriptor. Leave blank for default generation.</i> <br> <<if $npcselectdesc is undefined>><<set $npcselectdesc to "custom">><</if>> <<textbox "$npcselectdesc" $npcselectdesc>> <br><br> <i>Please select the construct's role. Leave blank for default generation.</i> <br> <<if $npcselectrole is undefined>><<set $npcselectrole to "construct">><</if>> <<textbox "$npcselectrole" $npcselectrole>> <br><br> <<link [[Sex|NPC Role Fight]]>><<set $sexstart to 1>> <<if $npcselectdesc is undefined>><<set $npcselectdesc to "custom">><</if>> <<if $npcselectrole is undefined>><<set $npcselectrole to "construct">><</if>> <<set $npcselectdesc to Util.escape($npcselectdesc)>> <<set $npcselectrole to Util.escape($npcselectrole)>> <<generateRole 0 $npcselectdesc $npcselectrole>><<person1>> <<unset $npcselectdesc>><<unset $npcselectrole>> <</link>> <br> <<link [[Fight|NPC Role Fight]]>><<set $fightstart to 1>> <<if $npcselectdesc is undefined>><<set $npcselectdesc to "custom">><</if>> <<if $npcselectrole is undefined>><<set $npcselectrole to "construct">><</if>> <<set $npcselectdesc to Util.escape($npcselectdesc)>> <<set $npcselectrole to Util.escape($npcselectrole)>> <<generateRole 0 $npcselectdesc $npcselectrole>><<person1>> <<unset $npcselectdesc>><<unset $npcselectrole>> <</link>> <br><br> <<link [[Back home|Bedroom]]>><<unset $npcselectdesc>><<unset $npcselectrole>><</link>><<if $sexstart is 1>> <<set $sexstart to 0>> <<consensual>> <<set $consensual to 1>> <<neutral 1>> <<maninit>> With a hiss of steam, the tube retracts to the ceiling. A figure walks out, a <<if $pronoun is "m">>man<<else>>woman<</if>>. You recognise <<him>> as the <<person>> you selected. <br><br> "Beginning sex encounter," the <<person>> says in a flat tone, before <<his>> face morphs into a lascivious smile. <<catcall>> <<elseif $fightstart is 1>> <<set $fightstart to 0>> <<neutral 1>> <<maninit>> <<set $enemytrust -= 100>> <<set $enemyanger += 200>> <<npcidlegenitals>> With a hiss of steam, the tube retracts to the ceiling. A figure walks out, a <<if $pronoun is "m">>man<<else>>woman<</if>>. You recognise <<him>> as the <<person>> you selected. <br><br> "Beginning combat encounter," the <<person>> says in a flat tone, before <<his>> face morphs into an angry scowl. "Oh, you're in for it now!" <</if>> <<effects>> <<effectsman>><<man>> <<stateman>> <br><br> <<actionsman>> <<if $finish is 1>> <span id="next"><<link [[FINISH|NPC Role Fight Finish]]>><</link>></span><<nexttext>> <<elseif $enemyhealth lte 0>> <span id="next"><<link [[HEALTH|NPC Role Fight Finish]]>><</link>></span><<nexttext>> <<elseif $enemyarousal gte $enemyarousalmax>> <span id="next"><<link [[ORGASM|NPC Role Fight Finish]]>><</link>></span><<nexttext>> <<elseif $pain gte 100 and $willpowerpain is 0>> <span id="next"><<link [[PAIN|NPC Role Fight Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|NPC Role Fight]]>><</link>></span><<nexttext>> <</if>> <br> <<link [[Emergency exit|NPC Role Fight Finish]]>><<set $finish to 1>><</link>> <br><br><br><br><<if $finish is 1>> "Test concluded," the <<person>> says in a flat tone, abruptly stepping back. "Restoring state to default." <<elseif $enemyhealth lte 0>> "Test concluded," the <<person>> says in a flat tone, stepping away from you as if <<he>> weren't hurt at all. "Restoring state to default." <<elseif $pain gte 100 and $willpowerpain is 0>> "Test concluded," the <<person>> says in a flat tone, stepping away from you. "Restoring state to default." <<elseif $enemyarousal gte $enemyarousalmax>> <<ejaculation>> "Test concluded," the <<person>> says in a flat tone, stepping away from you. "Restoring state to default." <</if>> <br><br> <<He>> walks back to the terminal and flicks a switch. <<He>> steps past it, and the tube descends from the ceiling over <<him>> again. Once the tube touches the floor, the lights switch off. <br><br> <<tearful>> you wonder what to do next. <br><br> <<endcombat>><<clotheson>> <<link [[Create another construct|NPC Role Select]]>><</link>> <br> <<link [[Back home|Bedroom]]>><</link>><br> The lights flash on. You find yourself in a strange chamber, completely smooth and featureless. There is a sign on the wall that says <span class="orange">DEBUG</span> in bright orange letters. A large, opaque tube reaches to the ceiling. The words <span class="blue">CUSTOM CONSTRUCT</span> are labelled on the front. <br> A terminal is attached to the tube. You look at the prompts. <br><br> <i>Please select the construct's outfit.</i> <br> <<set _clothesOptions to setup.npcClothesSets.map(c => c.name)>> <<listbox "_npcClothes" autoselect>> <<optionsfrom _clothesOptions>> <</listbox>> <br><br> <i>Please select the construct's configuration.</i> <br> <label>Male <<radiobutton "_npcPronoun" "m">></label> | <label>Female <<radiobutton "_npcPronoun" "f">></label> | <label>Use Settings <<radiobutton "_npcPronoun" "" checked>></label> <br> <label>Penis <<radiobutton "_npcGender" "m">></label> | <label>Vagina <<radiobutton "_npcGender" "f">></label> | <label>Both <<radiobutton "_npcGender" "h">></label> | <label>Use Settings <<radiobutton "_npcGender" "" checked>></label> <br> <label>Teen <<radiobutton "_npcType" "t">></label> | <label>Adult <<radiobutton "_npcType" "a">></label> | <label>Random <<radiobutton "_npcType" "r" checked>></label> <br><br> <!-- storing the values and then generating the npc in the next passage is a bit more convenient for debugging. --> <<link [[Sex|NPC Clothing Fight]]>> <<set $sexstart to 1>> <<set $npcOptions to {"type": _npcType, "pronoun": _npcPronoun, "gender": _npcGender, "clothes": _npcClothes}>> <</link>> <br> <<link [[Rape|NPC Clothing Fight]]>> <<set $fightstart to 1>> <<set $npcOptions to {"type": _npcType, "pronoun": _npcPronoun, "gender": _npcGender, "clothes": _npcClothes}>> <</link>> <br><br> <<link [[Back home|Bedroom]]>><</link>><<if $sexstart is 1>> <<generateNPC 1 $npcOptions.type $npcOptions.pronoun $npcOptions.gender>><<person1>> <<run npcEquipSet($NPCList[0], setup.npcClothesSets.find(n => n.name === $npcOptions.clothes))>> <<unset $npcOptions>> <<set $sexstart to 0>> <<consensual>> <<set $consensual to 1>> <<neutral 1>> <<maninit>> With a hiss of steam, the tube retracts to the ceiling. A figure walks out, a <<personsimple>>. You recognise <<him>> as the <<person>> you selected. <br><br> "Beginning sexual encounter," the <<person>> says in a flat tone, before <<his>> face morphs into a lascivious smile. <<catcall>> <<elseif $fightstart is 1>> <<generateNPC 1 $npcOptions.type $npcOptions.pronoun $npcOptions.gender>><<person1>> <<run npcEquipSet($NPCList[0], setup.npcClothesSets.find(n => n.name === $npcOptions.clothes))>> <<unset $npcOptions>> <<set $fightstart to 0>> <<neutral 1>> <<maninit>> With a hiss of steam, the tube retracts to the ceiling. A figure walks out, a <<personsimple>>. You recognise <<him>> as the <<person>> you selected. <br><br> "Beginning combat encounter," the <<person>> says in a flat tone, before <<his>> face morphs into an angry scowl. "Oh, you're in for it now!" <</if>> <<effects>> <<effectsman>><<man>> <<stateman>> <br><br> <<actionsman>> <<if $finish is 1>> <span id="next"><<link [[FINISH|NPC Clothing Fight Finish]]>><</link>></span><<nexttext>> <<elseif $enemyhealth lte 0>> <span id="next"><<link [[HEALTH|NPC Clothing Fight Finish]]>><</link>></span><<nexttext>> <<elseif $enemyarousal gte $enemyarousalmax>> <span id="next"><<link [[ORGASM|NPC Clothing Fight Finish]]>><</link>></span><<nexttext>> <<elseif $pain gte 100 and $willpowerpain is 0>> <span id="next"><<link [[PAIN|NPC Clothing Fight Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|NPC Clothing Fight]]>><</link>></span><<nexttext>> <</if>> <br> <<link [[Emergency exit|NPC Clothing Fight Finish]]>><<set $finish to 1>><</link>> <br><br><br><br><<if $finish is 1>> "Test concluded," the <<person>> says in a flat tone, abruptly stepping back. "Restoring state to default." <<elseif $enemyhealth lte 0>> "Test concluded," the <<person>> says in a flat tone, stepping away from you as if <<he>> weren't hurt at all. "Restoring state to default." <<elseif $pain gte 100 and $willpowerpain is 0>> "Test concluded," the <<person>> says in a flat tone, stepping away from you. "Restoring state to default." <<elseif $enemyarousal gte $enemyarousalmax>> <<ejaculation>> "Test concluded," the <<person>> says in a flat tone, stepping away from you. "Restoring state to default." <</if>> <br><br> <<He>> walks back to the terminal and flicks a switch. <<He>> steps past it, and the tube descends from the ceiling over <<him>> again. Once the tube touches the floor, the lights switch off. <br><br> <<tearful>> you wonder what to do next. <br><br> <<endcombat>><<clotheson>> <<link [[Create another construct|NPC Clothing Select]]>><</link>> <br> <<link [[Back home|Bedroom]]>><</link>>Generating two NPCs both at slot 0. <<generate1>><<generate1>>Manipulating time itself. <br> Distorting time by $timeDistortion. <br> <<set $timeStamp += $timeDistortion>> <<run Time.set()>> $$timeStamp = $timeStamp <br> hour = <<print Time.hour>> <br> minute = <<print Time.minute>> <br><br> <<link [[Fast-Forward (0:05)|TimeTest]]>><<set $timeDistortion to 5>><</link>> <br> <<link [[Fast-Backward -(0:05)|TimeTest]]>><<set $timeDistortion to -5>><</link>> <br><br> <<link [[Go back|$prevPassage]]>><<run delete $timeDistortion>><</link>><<widget "straponGeneratorOptions">> <i>Size:</i> <<listbox "_straponSize" autoselect>> <<option "regular" 2>> <<option "large" 3>> <<option "massive" 4>> <</listbox>> <i>Colour:</i> <<set _colourOptions to ["black","red","pink","purple","fleshy","blue","green"]>> <<listbox "_straponColour" autoselect>> <<optionsfrom _colourOptions>> <</listbox>> <i>Shape:</i> <<set _shapeOptions to ["dildo","penis","beaded dildo","horse cock","knotted cock","tentacle","dolphin cock","studded cock","fist dildo"]>> <<listbox "_straponShape" autoselect>> <<optionsfrom _shapeOptions>> <</listbox>> <i>Additional Modifier:</i> <<set _modifierOptions to ["","floppy","transparent","sparkly"]>> <<listbox "_straponModifier" autoselect>> <<optionsfrom _modifierOptions>> <</listbox>> <br><br> <</widget>>The lights flash on. You find yourself in a strange chamber, completely smooth and featureless. There is a sign on the wall that says <span class="orange">DEBUG</span> in bright orange letters. A large, opaque tube reaches to the ceiling. The words <span class="blue">CUSTOM CONSTRUCT</span> are labelled on the front. <br> <<set _nnpcOptions to $NPCName.filter(npc => npc.penis === "none")>> <<set _nnpcOptions to _nnpcOptions.map(npc => npc.nam)>> A terminal is attached to the tube. <<if _nnpcOptions.length gte 1>> Its screen is a monochrome green. You look at the prompts. The first one surprises you. It's a list of the names of people you recognise, how peculiar... <br><br> <i>Please select the construct's model.</i> <br> <<listbox "_npcNameSelect" autoselect>> <<optionsfrom _nnpcOptions>> <</listbox>> <br><br> <i>Please design the construct's strap-on.</i> <br> <<set _straponSize to 3>> <span id="straponOptions"> <<straponGeneratorOptions>> </span> <<button "<i>Randomise</i>">> <<set _straponSize to [2,3,4].random()>> <<set _straponColour to ["black","red","pink","purple","fleshy","blue","green"].random()>> <<set _straponShape to ["dildo","penis","beaded dildo","horse cock","knotted cock","tentacle","dolphin cock","studded cock","fist dildo"].random()>> <<set _straponModifier to ["","","floppy","transparent","sparkly"].random()>> <<replace "#straponOptions">><<straponGeneratorOptions>><</replace>> <</button>> <br><br> Having selected the desired options, your finger hovers over the "Create" button. You really have no idea what this strange device is about to do... <br><br> <<link [[Create Construct|NNPC Strapon Generator Sex]]>> <<npc _npcNameSelect>><<npcexpose>><<person1>> <<generateNewStrapon _straponSize _straponColour _straponShape _straponModifier>> <<npcstrapon 0>> <<setNPCStrapon $NPCList[0] _newStrapon>> <<set $sexstart to 1>> <</link>> <br><br> <<else>> Its screen is a solid red colour, and it displays a message. <br><br> <span class="red"><i>Subject has no compatible candidates for construct in memory.</i></span> <br> <span class="red"><i>No actions available at this time.</i></span> <br><br> <</if>> <<link [[Back home|Bedroom]]>><</link>><<if $sexstart is 1>> <<set $sexstart to 0>> <<consensual>> <<set $consensual to 1>> <<neutral 1>> <<maninit>> With a hiss of steam, the tube retracts to the ceiling. A figure walks out, looking identical to <<print $NPCList[0].fullDescription>>, <<if $NPCList[0].fullDescription is "Whitney">> although fully nude and holding a <<print $NPCList[0].strapon.description>> in <<his>> hand. <br><br> <<setNPCStrapon $NPCList[0] `C.npc.Whitney.strapons[0]`>> "This thing is cute and all, but I've already got one", <<he>> says, throwing it away and pulling <<his>> favourite <<print $NPCList[0].strapon.description>> out of nowhere. <<else>> although fully nude and wearing a <<print $NPCList[0].strapon.description>>. <</if>> <br><br> "Beginning sex encounter," the <<personsimple>> says in a flat tone, before <<his>> face morphs into a lascivious smile. <<catcall>> <</if>> <<effects>> <<effectsman>><<man>> <<stateman>> <br><br> <<actionsman>> <<if $finish is 1>> <span id="next"><<link [[FINISH|NNPC Strapon Generator Sex Finish]]>><</link>></span><<nexttext>> <<elseif $enemyhealth lte 0>> <span id="next"><<link [[HEALTH|NNPC Strapon Generator Sex Finish]]>><</link>></span><<nexttext>> <<elseif $enemyarousal gte $enemyarousalmax>> <span id="next"><<link [[ORGASM|NNPC Strapon Generator Sex Finish]]>><</link>></span><<nexttext>> <<elseif $pain gte 100 and $willpowerpain is 0>> <span id="next"><<link [[PAIN|NNPC Strapon Generator Sex Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|NNPC Strapon Generator Sex]]>><</link>></span><<nexttext>> <</if>> <br> <<link [[Emergency exit|NNPC Strapon Generator Sex Finish]]>><<set $finish to 1>><</link>> <br><br><br><br><<if $finish is 1>> "Test concluded," the <<personsimple>> says in a flat tone, abruptly stepping back. "Restoring state to default." <<elseif $enemyhealth lte 0>> "Test concluded," the <<personsimple>> says in a flat tone, stepping away from you as if <<he>> weren't hurt at all. "Restoring state to default." <<elseif $pain gte 100 and $willpowerpain is 0>> "Test concluded," the <<personsimple>> says in a flat tone, stepping away from you. "Restoring state to default." <<elseif $enemyarousal gte $enemyarousalmax>> <<ejaculation>> "Test concluded," the <<personsimple>> says in a flat tone, stepping away from you. "Restoring state to default." <</if>> <br><br> <<He>> walks back to the terminal and flicks a switch. <<He>> steps past it, and the tube descends from the ceiling over <<him>> again. Once the tube touches the floor, the lights switch off. <br><br> <<tearful>> you wonder what to do next. <br><br> <<endcombat>><<clotheson>> <<link [[Create another construct|NNPC Strapon Generator]]>><</link>> <br> <<link [[Back home|Bedroom]]>><</link>><<if $sexstart is 1>> <<beastNEWinit 1 cow>> <<set $sexstart to 0>> <<consensual>> <<set $consensual to 1>> <<neutral 1>> <<beastCombatInit>> <</if>> <<effects>> <<effectsman>> <br> <<beast $enemyno>> <br><br> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Cow Test Sex Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Cow Test Sex]]>><</link>></span><<nexttext>> <</if>><<if $enemyarousal gte $enemyarousalmax>> <<beastejaculation>> The <<beasttype>> is spent <br><br> <<elseif $enemyhealth lte 0>> The <<beasttype>> can't take any more and runs away <br><br> <<else>> The <<beasttype>> leaves <br><br> <</if>> <<clotheson>> <<endcombat>> <<link [[Find another cow|Cow Test Sex]]>><<set $sexstart to 1>><</link>> <br> <<link [[Go home|Bedroom]]>><</link>> <br><<set $location to "town">><<set $bus to "domus">><<set $outside to 1>><<effects>> <<if $phase is 1>> <<if $enemyno gte 2>> <<person1>>You hear footsteps behind you, from more than one person. <span class="blue">You feel followed.</span> <br><br> <<link [[Next|Street Stalk Group]]>><<set $molestationstart to 1>><</link>> <br> <<else>> <<person1>>You hear footsteps behind you. <span class="blue">You feel followed.</span> <br><br> <<link [[Next|Street Stalk]]>><<set $molestationstart to 1>><</link>> <br> <</if>> <<else>> <<if $stalkTestNPC>> <<if $stalkTestNPC is "Ivory Wraith">> <<generateWraith 1>> <<else>> <<npc $stalkTestNPC>> <</if>> <<set $NPCList[0].skills to {athletics: random(1, 1000), security: random(1, 1000)}>> <<unset $stalkTestNPC>> <</if>> <<if $enemyno gte 1>> <<person1>> <<if $NPCList[0].fullDescription is "Ivory Wraith">> <span class="red">You are being hunted by <span class="wraith">the Ivory Wraith.</span></span> <<else>> <span class="red">You are being hunted by <<print $npc[$npcrow.indexOf(0)]>>.</span> <</if>> <br><br> <<His>> athletics skill is <span class="gold"><<print $NPCList[0].skills.athletics>></span>. <br> <<His>> security skill is <span class="gold"><<print $NPCList[0].skills.security>></span>. <br><br> <</if>> <<if $enemyno is 2>> <span class="teal"><<He>> will be accompanied by a <<person2>><<person>>.</span> <<person1>> <br><br> <<elseif $enemyno gte 3>> <<He>> will be accompanied by <<switch $enemyno>> <<case 6>><span class="pink">five</span> <<case 5>><span class="purple">four</span> <<case 4>><span class="blue">three</span> <<case 3>><span class="lblue">two</span> <</switch>> others. <br><br> <</if>> <<if $NPCList[0].fullDescription is "Ivory Wraith">> <span class="blue">You can't add any NPCs to accompany the Wraith.</span> <br> <<link [[Start test|Named NPC Stalk Select]]>><<set $phase to 1>><</link>> <br> <<else>> <<switch $enemyno>> <<case 6>> <span class="blue">You can't add any more NPCs.</span> <br><br> <<link [[Start test|Named NPC Stalk Select]]>><<set $phase to 1>><</link>> <br> <<case 5>> <<link [[Add another unnamed NPC|Named NPC Stalk Select]]>><<generate6>><</link>> <br> <<link [[Start test|Named NPC Stalk Select]]>><<set $phase to 1>><</link>> <br> <<case 4>> <<link [[Add another unnamed NPC|Named NPC Stalk Select]]>><<generate5>><</link>> <br> <<link [[Start test|Named NPC Stalk Select]]>><<set $phase to 1>><</link>> <br> <<case 3>> <<link [[Add another unnamed NPC|Named NPC Stalk Select]]>><<generate4>><</link>> <br> <<link [[Start test|Named NPC Stalk Select]]>><<set $phase to 1>><</link>> <br> <<case 2>> <<link [[Add another unnamed NPC|Named NPC Stalk Select]]>><<generate3>><</link>> <br> <<link [[Start test|Named NPC Stalk Select]]>><<set $phase to 1>><</link>> <br> <<case 1>> <<link [[Add an unnamed NPC|Named NPC Stalk Select]]>><<generate2>><</link>> <br> <<link [[Start test|Named NPC Stalk Select]]>><<set $phase to 1>><</link>> <br> <</switch>> <</if>> <<if $enemyno is 0>> Choose a named NPC. <br><br> <<link [[Avery|Named NPC Stalk Select]]>><<set $stalkTestNPC to "Avery">><</link>> <br> <<link [[Bailey|Named NPC Stalk Select]]>><<set $stalkTestNPC to "Bailey">><</link>> <br> <<link [[Briar|Named NPC Stalk Select]]>><<set $stalkTestNPC to "Briar">><</link>> <br> <<link [[Eden|Named NPC Stalk Select]]>><<set $stalkTestNPC to "Eden">><</link>> <br> <<link [[Harper|Named NPC Stalk Select]]>><<set $stalkTestNPC to "Harper">><</link>> <br> <<link [[Kylar|Named NPC Stalk Select]]>><<set $stalkTestNPC to "Kylar">><</link>> <br> <<link [[Leighton|Named NPC Stalk Select]]>><<set $stalkTestNPC to "Leighton">><</link>> <br> <<link [[Morgan|Named NPC Stalk Select]]>><<set $stalkTestNPC to "Morgan">><</link>> <br> <<link [[Whitney|Named NPC Stalk Select]]>><<set $stalkTestNPC to "Whitney">><</link>> <br> <<link [[Wraith|Named NPC Stalk Select]]>><<set $stalkTestNPC to "Ivory Wraith">><</link>> <br> <<link [[Someone else|Named NPC Stalk Select]]>><<set $stalkTestNPC to either("Alex","Charlie","Darryl","Doren","Gwylan","Jordan","Landry","Mason","Niki","Quinn","Remy","River","Robin","Sam","Sirris","Sydney","Wren", "Zephyr")>><</link>> <br> <</if>> <br> <<link [[Restart|Named NPC Stalk Select]]>><<endevent>><<set $phase to 0>><</link>> <br> <</if>><br> <<link [[Consensual sex|Hypnotist Test Sex]]>><<set $sexstart to 1>><</link>> <br> <<link [[Nonconsensual sex|Hypnotist Test Sex]]>><<set $molestationstart to 1>><</link>> <br> <<link [[Harper|Hypnotist Test Sex]]>><<set $molestationstart to 1>><<set $phase to "Harper">><</link>> <br> <<if $settings.tentaclesEnabled>> <<link [[Tentacles|Hypnotist Test Tentacles]]>><<set $molestationstart to 1>><</link>> <<else>> <b>Tentacles are disabled or otherwise unavailable.</b> Enable tentacles to test tentacle hypnosis. <br><br> <<link [[Enable tentacles|Hypnotist Test]]>><<set $settings.tentaclesEnabled to true>><</link>> <</if>> <br><br> <<link [[Back home|Bedroom]]>><<endevent>><</link>><<if $sexstart is 1 or $molestationstart is 1>> <<if $sexstart is 1>> <<set $sexstart to 0>> <<consensual>><<set $consensual to 1>> <<neutral 1>> <<elseif $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <</if>> <<if $phase is "Harper">> <<npc Harper>><<person1>> Doctor Harper approaches you. "It's time to commit medical malpractice," <<he>> says. <<else>> <<generate1>><<person1>><<set $NPCList[0].traits.pushUnique("hypnotist")>> A <<person>> walks up to you. "Hey," <<he>> says. "You're feeling sleepy, or whatever. Let's get this over with." <</if>> <<maninit>><<enable_rescue>> <<set $NPCList[0].lefthand to "hypnosis">><<set $NPCList[0].lefttool to "pendant">> <br><br> <</if>> <<effects>> <<effectsman>><<man>> <<stateman>> <br><br> <<actionsman>> <<if $alarm is 1 and $rescue is 1>> <span id="next"><<link [[FINISH|Hypnotist Test Sex Finish]]>><</link>></span><<nexttext>> <<elseif $enemyhealth lte 0>> <span id="next"><<link [[HEALTH|Hypnotist Test Sex Finish]]>><</link>></span><<nexttext>> <<elseif $enemyarousal gte $enemyarousalmax>> <span id="next"><<link [[ORGASM|Hypnotist Test Sex Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Hypnotist Test Sex]]>><</link>></span><<nexttext>> <</if>> <br> <<link [[Emergency exit|Hypnotist Test Sex Finish]]>><<set $finish to 1>><</link>> <br><br><br><br><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<ejaculation>> <<He>> nods and walks away, swaying <<his>> ass hypnotically. <<elseif $enemyhealth lte 0>> <<He>> frowns. "Look, what's the point in testing this out if you're just going to beat me up?" <<elseif $alarm is 1 and $rescue is 1>> "You managed to scream," <<he>> mutters. "We'll need to change that in the future." <<else>> "I suppose we can stop there," <<he>> says. <</if>> <br><br> <<endcombat>> <<clotheson>> <<link [[Do it again|Hypnotist Test]]>><</link>><br> <<link [[Back home|Bedroom]]>><</link>><<if $molestationstart is 1>> <<set $molestationstart to 0>> <<set $combat to 1>> <<set $enemytype to "tentacles">> <<controlloss>> <<molested>> <<tentaclestart 8 15>> <<for _t to 0; _t lt $tentacles.max; _t++>> <<set $tentacles[_t].traits.pushUnique("hypno")>> <</for>> A hoard of tentacles accosts you. Each one is capable of hypnotising you, including tentacles that typically don't have the hypno trait. <</if>> <<effects>> <<effectstentacles>> <<tentacles>> <<statetentacles>> <<actionstentacles>> <<if $tentacles.active lte ($tentacles.max / 2)>> <span id="next"><<link [[Next|Hypnotist Test Tentacles Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Hypnotist Test Tentacles]]>><</link>></span><<nexttext>> <</if>><<effects>> The creature loses interest in you, its testing complete, and returns to nothingness. <br><br> <<clotheson>> <<endcombat>> <<link [[Do it again|Hypnotist Test]]>><</link>><br> <<link [[Back home|Bedroom]]>><</link>>Increase and decrease belly size here. If you use anything but the exit link below to exit this scene, your belly size will be stuck, so be careful! Unset V.bellySizeDebug to fix. <hr> <<if $sexstart is 1>> <<set $sexstart to 0>> <<consensual>><<set $consensual to 1>> <<generate1>><<person1>> <<maninit>> <<set $bellySizeDebug to playerBellySize()>> <</if>> <<effects>> <<effectsman>> <<animateCombat>> <hr> <label class="no-numberify"> <span class="lewd">Body:</span><br> <div class="small-description"> <<link [[Roll over|Pregnancy Belly Test]]>><<set $position to (V.position === "doggy" ? "missionary" : "doggy")>><</link>> <br> Change Speed: <<link [[Idle|Pregnancy Belly Test]]>><<set $animDebug to false>><<set $enemyarousal to 0>><</link>> | <<link [[Slow|Pregnancy Belly Test]]>><<set $animDebug to true>><<set $enemyarousal to 0>><</link>> | <<link [[Med|Pregnancy Belly Test]]>><<set $animDebug to true>><<set $enemyarousal to 1 + ($enemyarousalmax / 5) * 1>><</link>> | <<link [[Fast|Pregnancy Belly Test]]>><<set $animDebug to true>><<set $enemyarousal to 1 + ($enemyarousalmax / 5) * 3>><</link>> | <<link [[Very Fast|Pregnancy Belly Test]]>><<set $animDebug to true>><<set $enemyarousal to 1 + ($enemyarousalmax / 5) * 4>><</link>> | </div> <hr> <span class="lewd">Belly:</span><br> <div class="small-description"> <<set $bellySizeDebug to Math.clamp($bellySizeDebug,0,24)>> <span class="blue">Current Belly Size: $bellySizeDebug</span> <<ind>> Increase belly size by: <<link [[1|Pregnancy Belly Test]]>><<set $bellySizeDebug++>><</link>> | <<link [[5|Pregnancy Belly Test]]>><<set $bellySizeDebug += 5>><</link>> | <<link [[10|Pregnancy Belly Test]]>><<set $bellySizeDebug += 10>><</link>> | <<ind>> Decrease belly size by: <<link [[1|Pregnancy Belly Test]]>><<set $bellySizeDebug-->><</link>> | <<link [[5|Pregnancy Belly Test]]>><<set $bellySizeDebug -= 5>><</link>> | <<link [[10|Pregnancy Belly Test]]>><<set $bellySizeDebug -= 10>><</link>> | <<ind>> Description: <<bellyDescription "pc" true>> </div> <hr> <span class="green">Clothes:</span><br> <div class="small-description"> Strip: <<link [[Strip All|Pregnancy Belly Test]]>><<strip>><</link>> | <<if $worn.upper.name isnot "naked">><<link [[Upper|Pregnancy Belly Test]]>><<upperstrip>><</link>> |<</if>> <<if $worn.under_upper.name isnot "naked">><<link [[Under_Upper|Pregnancy Belly Test]]>><<underupperstrip>><</link>> |<</if>> <<if $worn.lower.name isnot "naked">><<link [[Lower|Pregnancy Belly Test]]>><<lowerstrip>><</link>> |<</if>> <<if $worn.under_lower.name isnot "naked">><<link [[Under_Lower|Pregnancy Belly Test]]>><<underlowerstrip>><</link>> |<</if>> <<if $worn.head.name isnot "naked">><<link [[Head|Pregnancy Belly Test]]>><<headstrip>><</link>> |<</if>> <<if $worn.face.name isnot "naked">><<link [[Face|Pregnancy Belly Test]]>><<facestrip>><</link>> |<</if>> <<if $worn.hands.name isnot "naked">><<link [[Hands|Pregnancy Belly Test]]>><<handsstrip>><</link>> |<</if>> <<if $worn.legs.name isnot "naked">><<link [[Legs|Pregnancy Belly Test]]>><<legsstrip>><</link>> |<</if>> <<if $worn.feet.name isnot "naked">><<link [[Feet|Pregnancy Belly Test]]>><<feetstrip>><</link>> |<</if>> <br> Displace: <<if $worn.upper.name isnot "naked">><<link [[Upper|Pregnancy Belly Test]]>><<set $leftaction to "upper">><</link>> |<</if>> <<if $worn.under_upper.name isnot "naked">><<link [[Under_Upper|Pregnancy Belly Test]]>><<set $leftaction to "under_upper">><</link>> |<</if>> <<if $worn.lower.name isnot "naked">><<link [[Lower|Pregnancy Belly Test]]>><<set $leftaction to "lower">><</link>> |<</if>> <<if $worn.under_lower.name isnot "naked">><<link [[Under_Lower|Pregnancy Belly Test]]>><<set $leftaction to "under_lower">><</link>> |<</if>> <br> <<link [[Fix All Clothes|Pregnancy Belly Test]]>><<clotheson>><</link>> </div> <hr> <span class="gold">Props:</span><br> <div class="small-description"> <<set _propList to ["haybale", "table", "bench", "milk", "semen", "rails", "neck_shackle", "arm_shackle", "leg_shackle", "breast_pump", "penis_pump", "examtable", "hospitalbed", "ivbag"]>> Add: <<for _pr1 to 0; _pr1 < _propList.length; _pr1 ++>> <<if !$prop.includes(_propList[_pr1])>> <<capture _pr1>> <<link [[_propList[_pr1]|Pregnancy Belly Test]]>><<prop _propList[_pr1]>><</link>> | <</capture>> <</if>> <</for>> <br> Remove: <<for _pr2 to 0; _pr2 < _propList.length; _pr2 ++>> <<if $prop.includes(_propList[_pr2])>> <<capture _pr2>> <<link [[_propList[_pr2]|Pregnancy Belly Test]]>><<set $prop.delete(_propList[_pr2])>><</link>> | <</capture>> <</if>> <</for>> </div> </label> <br> <<link [[Back home|Bedroom]]>><<endcombat>><<unset $bellySizeDebug>><<unset $animDebug>><<clotheson>><</link>> <br> <!-- Used in the debug start events --><<foresthunt>><<effects>> <span id="statsTEST"> GRACE:<br> <<lgrace>><<llgrace>><<lllgrace>><br> <<ggrace>><<gggrace>><<ggggrace>><br><br> STRESS:<br> <<lstress>><<llstress>><<lllstress>><br> <<gstress>><<ggstress>><<gggstress>><br><br> TIREDNESS (fatigue):<br> <<ltiredness>><<lltiredness>><<llltiredness>><br> <<gtiredness>><<ggtiredness>><<gggtiredness>><br><br> AROUSAL:<br> <<larousal>><<llarousal>><<lllarousal>><br> <<garousal>><<ggarousal>><<gggarousal>><br><br> TRAUMA:<br> <<ltrauma>><<lltrauma>><<llltrauma>><br> <<gtrauma>><<ggtrauma>><<gggtrauma>><br><br> LEWDITY (the old one):<br> <<llewdity>><<lllewdity>><<llllewdity>><br> <<glewdity>><<gglewdity>><<ggglewdity>><br><br> PAIN:<br> <<lpain>><<llpain>><<lllpain>><br> <<gpain>><<ggpain>><<gggpain>><br><br> PURITY:<br> <<lpurity>><<llpurity>><<lllpurity>><br> <<gpurity>><<ggpurity>><<gggpurity>><br><br> DELINQUENCY:<br> <<ldelinquency>><<lldelinquency>><<llldelinquency>><br> <<gdelinquency>><<ggdelinquency>><<gggdelinquency>><br><br> COOL (status):<br> <<lcool>><<llcool>><<lllcool>><br> <<gcool>><<ggcool>><<gggcool>><br><br> SALTINESS:<br> <<lsaltiness>><<llsaltiness>><<lllsaltiness>><br> <<gsaltiness>><<ggsaltiness>><<gggsaltiness>><br><br> CHAOS:<br> <<lchaos>><<llchaos>><<lllchaos>><br> <<gchaos>><<ggchaos>><<gggchaos>><br><br> TRUST:<br> <<ltrust>><<lltrust>><<llltrust>><br> <<gtrust>><<ggtrust>><<gggtrust>><br><br> OXYGEN:<br> <<loxygen>><<goxygen>><br><br> CONTROL:<br> <<lcontrol>><<llcontrol>><<llcontrol>><br> <<gcontrol>><<ggcontrol>><<gggcontrol>><br> COMBAT CONTROL:<br> Current Control: $control<br> "Starting" Control: $controlstart<br> <<link "Control Up" "statDisplay Test">><<set $control += 250>><</link>> | <<link "Control Down" "statDisplay Test">><<set $control -= 250>><</link>> | <<link "Starting Control Up" "statDisplay Test">><<set $controlstart += 250>><</link>> | <<link "Starting Control Down" "statDisplay Test">><<set $controlstart -= 250>><</link>> <br> <<lcombatcontrol>><<llcombatcontrol>><<lllcombatcontrol>><br> <<gcombatcontrol>><<ggcombatcontrol>><<gggcombatcontrol>><br><br> MYSTERY:<br> <<gmystery>><br><br> SCHOOL:<br> <<gschool>><br><br> SWIMMING:<br> <<gswimming>><<ggswimming>><<gggswimming>><br><br> ATHLETICS:<br> <<gathletics>><<ggathletics>><<gggathletics>><br><br> DANCE:<br> <<gdanceskill>><<ggdanceskill>><<gggdanceskill>><br><br> TENDING:<br> <<gtending>><<ggtending>><<gggtending>><br><br> TREASURE:<br> <<ltreasure>><<gtreasure>><br> CHANCE OF HARASSMENT:<br> <<lharass>><<gharass>><<noharass>><br><br> LOVE:<br> <<llove>><<lllove>><<llllove>><br> <<glove>><<gglove>><<ggglove>><br> WITH NPC ARGUMENT:<br> <<llove "Robin">><<lllove "Whitney">><<llllove "Kylar">><br> <<glove "Vrelnir">><<gglove "John Lewdity">><<ggglove "The Cuddle Monster">><br><br> LUST:<br> <<llust>><<lllust>><<llllust>><br> <<glust>><<gglust>><<ggglust>><br><br> WITH NPC ARGUMENT:<br> <<llust "Sydney">><<lllust "Avery">><<llllust "Eden">><br> <<glust "Me">><<gglust "Tutorial Man">><<ggglust "Tentacle Number 529">><br><br> ROBIN'S TRAUMA:<br> Current Robin Trauma: <<print C.npc.Robin.trauma>> <<link "Trauma Up" "statDisplay Test">><<npcincr "Robin" trauma 10>><</link>> | <<link "Trauma Down" "statDisplay Test">><<npcincr "Robin" trauma -10>><</link>> | <br> <<lrtrauma>><<llrtrauma>><<lllrtrauma>><br> <<grtrauma>><<ggrtrauma>><<gggrtrauma>><br><br> ATTENTION:<br> <<lattention>><<llattention>><<lllattention>><br> <<if !$daily.prison>> <span class="red">DAILY PRISON OBJECT NOT INITIALISED</span> <<else>> <<gattention>><<ggattention>><<gggattention>> <</if>><br><br> AGGRO (Remy's Encroachment):<br> <<if !$farm>> <span class="red">FARM NOT INITIALISED</span> <</if>> <<laggro>><<llaggro>><<lllaggro>><br> <<gaggro>><<ggaggro>><<gggaggro>><br><br> SUSPICION (Kylar's Jealousy):<br> <<lksuspicion>><<llksuspicion>><<lllksuspicion>><br> <<gksuspicion>><<ggksuspicion>><<gggksuspicion>><br><br> SUSPICION:<br> <<lsuspicion>><<llsuspicion>><<lllsuspicion>><br> <<gsuspicion>><<ggsuspicion>><<gggsuspicion>><br><br> AVERY'S RAGE:<br> <<if $averyragerevealed is 1>> <<link "Toggle Avery Rage Reveal" "statDisplay Test">><<set $averyragerevealed to 0>><</link>> CURRENTLY: AVERY RAGE <span class="green">REVEALED</span> <<else>> <<link "Toggle Avery Rage Reveal" "statDisplay Test">><<set $averyragerevealed to 1>><</link>> CURRENTLY: AVERY RAGE <span class="red">HIDDEN</span> <</if>> <br> <<larage>><<llarage>><<lllarage>><br> <<garage>><<ggarage>><<gggarage>><br><br> ENDEARMENT:<br> <<lendear>><<llendear>><<lllendear>><br> <<gendear>><<ggendear>><<gggendear>><br><br> HOPE:<br> <<lhope>><<llhope>><<lllhope>><br> <<ghope>><<gghope>><<ggghope>><br><br> REBELLIOUSNESS:<br> <<lreb>><<llreb>><<lllreb>><br> <<greb>><<ggreb>><<gggreb>><br><br> BODY SKILLS:<br> <<ghandskill>><<goralskill>><<gthighskill>><<gbottomskill>><<gvaginalskill>><<gpenileskill>><<ganalskill>><<gfeetskill>><<gchestskill>><br><br> STOCKHOLM:<br> <<lstockholm>><<llstockholm>><<lllstockholm>><br> <<gstockholm>><<ggstockholm>><<gggstockholm>><br><br> SHAME:<br> <<lshame>><<llshame>><<lllshame>><br> <<gshame>><<ggshame>><<gggshame>><br><br> FARM YIELD:<br> <<lfarm>><<llfarm>><<lllfarm>><br> <<gfarm>><<ggfarm>><<gggfarm>><br><br> WEAPONS:<br> <<gnet>><<gbaton>><<ggbaton>><<gggbaton>><<gwhip>><<ggwhip>><<gggwhip>><br><br> SECURITY:<br> <<lsecurity>><<llsecurity>><<lllsecurity>><br> <<gsecurity>><<ggsecurity>><<gggsecurity>><br><br> IMPATIENCE:<br> <<limpatience>><<llimpatience>><<lllimpatience>><br> <<gimpatience>><<ggimpatience>><<gggimpatience>><br><br> INTEREST:<br> <<linterest>><<llinterest>><<lllinterest>><br> <<ginterest>><<gginterest>><<ggginterest>><br><br> DARING:<br> <<ldaring>><<lldaring>><<llldaring>><br> <<gdaring>><<ggdaring>><<gggdaring>><br><br> KNOWLEDGE:<br> <<gknowledge>><br><br> BODYWRITING:<br> <<gbodywriting>><<ggbodywriting>><<gggbodywriting>><br><br> HALLUCINOGENS:<br> <<ghallucinogens>><<gghallucinogens>><<ggghallucinogens>><br><br> OBEDIENCE:<br> <<lobey>><<llobey>><<lllobey>><br> <<gobey>><<ggobey>><<gggobey>><br><br> HUNGER:<br> <<lhunger>><<llhunger>><<lllhunger>><br> <<ghunger>><<gghunger>><<ggghunger>><br><br> ACCEPTANCE:<br> <<gacceptance>><<ginsecurity "breasts_big">><br><br> WILLPOWER:<br> <<gwillpower>><<ggwillpower>><<gggwillpower>><br><br> PHYSIQUE:<br> <<lphysique>><<llphysique>><<lllphysique>><br> <<gphysique>><<ggphysique>><<gggphysique>><br><br> TANNED:<br> <<gtanned>><<ggtanned>><<gggtanned>><br><br> CORRUPTION:<br> <<link "Give Self Left Ear Slime" "statDisplay Test">><<parasite left_ear slime>><</link>><br> <<link "Corruption Up" "statDisplay Test">><<set $earSlime.corruption += 20>><</link>> | <<link "Corruption Down" "statDisplay Test">><<set $earSlime.corruption -= 20>><</link>> Current: $earSlime.corruption<br> <<link "Growth Up" "statDisplay Test">><<set $earSlime.growth += 20>><</link>> | <<link "Growth Down" "statDisplay Test">><<set $earSlime.growth -= 20>><</link>> Current: $earSlime.growth<br> <<lcorruption>><<llcorruption>><<lllcorruption>><br> <<gcorruption>><<ggcorruption>><<gggcorruption>><br><br> AWARENESS:<br> <<if $innocencestate is 1>> <<link "Toggle Innocence" "statDisplay Test">><<set $innocencestate to 0>><</link>> CURRENTLY: INNOCENT <<else>> <<link "Toggle Innocence" "statDisplay Test">><<set $innocencestate to 1>><</link>> CURRENTLY: AWARE <</if>> <br> <<lawareness>><<llawareness>><<lllawareness>><br> <<gawareness>><<ggawareness>><<gggawareness>><br><br> SYDNEY'S PURITY:<br> <<if C.npc.Sydney.purity gte 1>> <<link "CORRUPT SYDNEY" "statDisplay Test">><<set C.npc.Sydney.purity to -1>><</link>> CURRENTLY: PURE <<else>> <<link "PURIFY SYDNEY" "statDisplay Test">><<set C.npc.Sydney.purity to 1>><</link>> CURRENTLY: CORRUPT <</if>> <br> <<lspurity>><<llspurity>><<lllspurity>><br> <<gspurity>><<ggspurity>><<gggspurity>><br><br> SYDNEY'S LUST:<br> <<lslust>><<llslust>><<lllslust>><br> <<gslust>><<ggslust>><<gggslust>><br><br> SCHOOL GRADES:<br> <<link "Stars to 0" "statDisplay Test">><<set $science_star to 0>><<set $maths_star to 0>><<set $english_star to 0>><<set $history_star to 0>><</link>> | <<link "Stars to 1" "statDisplay Test">><<set $science_star to 1>><<set $maths_star to 1>><<set $english_star to 1>><<set $history_star to 1>><</link>> | <<link "Stars to 2" "statDisplay Test">><<set $science_star to 2>><<set $maths_star to 2>><<set $english_star to 2>><<set $history_star to 2>><</link>> | <<link "Stars to 3" "statDisplay Test">><<set $science_star to 3>><<set $maths_star to 3>><<set $english_star to 3>><<set $history_star to 3>><</link>> | <br> <<lscience>><<gscience>><<ggscience>><<gggscience>><br> <<lmaths>><<gmaths>><<ggmaths>><<gggmaths>><br> <<lenglish>><<genglish>><<ggenglish>><<gggenglish>><br> <<lhistory>><<ghistory>><<gghistory>><<ggghistory>><br><br> HOUSEKEEPING:<br> Current: $housekeeping <<link "Housekeeping to 0" "statDisplay Test">><<set $housekeeping to 0>><</link>> <<link "Housekeeping to 600" "statDisplay Test">><<set $housekeeping to 600>><</link>> <br> <<ghousekeeping 500>> (Threshold: 500)<br> <<gghousekeeping>><<ggghousekeeping>><br><br> NPC DOMINANCE:<br> <<ldom>><<lldom>><<llldom>><br> <<gdom>><<ggdom>><<gggdom>><br> ROBIN'S CONFIDENCE:<br> <<npc "Robin" 2>> <<ldom>><<lldom>><<llldom>><br> <<gdom>><<ggdom>><<gggdom>><br> <<endevent>> MANUAL ARGUMENT NAME CALL:<br> <<ldom "Vrelnir">><<lldom "Vrelnir">><<llldom "Vrelnir">><br> <<gdom "Vrelnir">><<ggdom "Vrelnir">><<gggdom "Vrelnir">><br> WITH MULTIPLE LOADED NAMED NPCS (Whitney slot 0, Robin slot 1):<br> <<npc "Whitney">><<npc "Eden" 2>> <<ldom>><<lldom>><<llldom>><br> <<gdom>><<ggdom>><<gggdom>><br><br> <<endevent>> RESPECT:<br> <<lrespect>><<llrespect>><<lllrespect>><br> <<grespect>><<ggrespect>><<gggrespect>><br> PIRATE RESPECT:<br> <<grespect "scum">><<ggrespect "scum">><<gggrespect "scum">><br> <<grespect "mate">><<ggrespect "mate">><<gggrespect "mate">><br><br> ALEX'S DEVIANCY:<br> <<ladeviancy>><<lladeviancy>><<llladeviancy>><br> <<gadeviancy>><<ggadeviancy>><<gggadeviancy>><br><br> HARMONY:<br> <<gharmony>><<lharmony>><br> FEROCITY:<br> <<gferocity>><<lferocity>><br> WOLF TRUST:<br> <<wolfpacktrust>><<wolfpackfear>><br><br> OTHER:<br> <<incgpenisinsecurity>><<incggpenisinsecurity>><<incgbreastinsecurity>><<gpenisacceptance 10>><br><br> </span> <br> <<if !$settings.blindStatsEnabled>> <<link "Toggle Stat Disable" "statDisplay Test">><<set $settings.blindStatsEnabled to true>><</link>> CURRENTLY: STATS <span class="green">ENABLED</span> <<elseif $settings.blindStatsEnabled>> <<link "Toggle Stat Disable" "statDisplay Test">><<set $settings.blindStatsEnabled to false>><</link>> CURRENTLY: STATS <span class="red">DISABLED</span> <<else>> <<link "Toggle Stat Disable" "statDisplay Test">><<set $settings.blindStatsEnabled to false>><</link>> CURRENTLY: SOMETHING OTHER THAN "t" OR "f" FOR SOME REASON, PROBABLY AN UNRELATED BUG, CLICK TO ENABLE <</if>> <br><br><br> <<link [[Back Home|Bedroom]]>><<endcombat>><</link>> <br><<effects>> Take penile virginity: <span class="gold"><<= !unableTakeVirginity("penile") ? "Yes":"No">>.</span><br> male vaginas 0% + female penises 100% + disable anal: <span class="gold"><<= ($settings.maleNPCVaginaChance is 0 and $settings.femaleNPCPenisChance is 100 and !$settings.analEnabled) ? "true":"false">></span><br> All NPCs are male + male vaginas 0% + disable anal: <span class="gold"><<= (maleChance() is 100 and $settings.maleNPCVaginaChance is 0 and !$settings.analEnabled) ? "true":"false">></span><br> All NPCs are female + female penises 100% + disable anal: <span class="gold"><<= (maleChance() is 0 and $settings.femaleNPCPenisChance is 100 and !$settings.analEnabled) ? "true":"false">></span><br> All NPCs are male + male vaginas 100% + strap-on penises 100% + disable anal: <span class="gold"><<= (maleChance() is 100 and $settings.maleNPCVaginaChance is 100 and $settings.straponChance is 100 and !$settings.analEnabled) ? "true":"false">></span><br> All NPCs are female + female penises 0% + strap-on penises 100% + disable anal: <span class="gold"><<= (maleChance() is 0 and $settings.femaleNPCPenisChance is 0 and $settings.straponChance is 100 and !$settings.analEnabled) ? "true":"false">></span> <br><br> Take vaginal virginity: <span class="gold"><<= !unableTakeVirginity("vaginal") ? "Yes":"No">>.</span><br> male vaginas 100% + female penises 0% + strap-on penises 0%: <span class="gold"><<= ($settings.maleNPCVaginaChance is 100 and $settings.femaleNPCPenisChance is 0 and $settings.straponChance is 0) ? "true":"false">></span><br> All NPCs are male + male vaginas 100% + strap-on penises 0%: <span class="gold"><<= (maleChance() is 100 and $settings.maleNPCVaginaChance is 100 and $settings.straponChance is 0) ? "true":"false">></span><br> All NPCs are female + female penises 0% + strap-on penises 0%: <span class="gold"><<= (maleChance() is 0 and $settings.femaleNPCPenisChance is 0 and $settings.straponChance is 0) ? "true":"false">></span> <br><br> <<set _test to "Virginity Show Test">> Virginity: <span class="gold"><<= !unableTakeVirginity() and $player.virginity.penile is true and $player.virginity.vaginal is true ? "true" : "false">></span> <br> <<link [[Generate Take Virginity NPCs|_test]]>><<endevent>><<generatetakevirginity 1>><<generatetakevirginity 2>><<generatetakevirginity 3>><<generatetakevirginity 4>><<generatetakevirginity 5>><<generatetakevirginity 6>><</link>> <br> <<if EventSystem.any() and $debug is 1>> <<script>> V.NPCList.forEach((element, index) => { console.log(`NPC_${index}; penis: ${element.penis}; vagina: ${element.vagina}.`); }); <</script>> <</if>> <<link [[Take Virginity Combat|Underground Virgin Rape]]>><<endevent>><<generatetakevirginity 1>><<set $molestationstart to 1>><</link>> <br><br> Brothel Virginity Show: <br> <<link [[Briar's Office Show|Briar's Office Show]]>><<endevent>><<npc Briar>><<person1>><<set Time.setDate(Time.getNextWeekdayDate(5))>><</link>> <br> <<link [[Brothel Virginity Show|Brothel Stage]]>><<endevent>><<set $brothelVirginityIntro to true>><<set Time.setDate(Time.getNextWeekdayDate(5))>><<acceptbrothelshow "virginity">><<set Time.setDate(Time.getNextWeekdayDate(6))>><</link>> <br> <<link [[Show Virginity Auction|Brothel Show Virginity Auction]]>><<endevent>><<set $virginitytip to 0>><<set $weekly.brothelVirginityShow to 0>><</link>> <br> Underground Brothel Virginity Show: <br> <<link [[Underground Brothel Virginity Show|Underground Intro]]>><<endevent>><<generate1>><<generate2>><</link>> <br><br> <<link [[Gameplay Settings|Settings]]>><<set $settingsExitPassage to "Virginity Show Test">><</link>> <br> <<link [[Back Home|Bedroom]]>><<endevent>><</link>> <br><<if $molestationstart is 1>> <<set $molestationstart to 0>> <<generate1>><<generate2>><<generate3>><<person1>> <br><br> <span class="red">The gang advances...</span> <br><br> <<controlloss>> <br> <<violence 1>> <<neutral 1>> <<maninit>> <</if>> <div class="debugBorder"><<effects>></div> <div class="debugBorder"><<effectsman>></div> <div class="debugBorder"><<man>></div> <div class="debugBorder"><<audience>></div> <div class="debugBorder"><<stateman>></div> <br><br> <div class="debugBorder"><<debugactionsman>></div> <<if $enemyarousal gte $enemyarousalmax>> <span id="next"><<link [[Next|UITest1 Finish]]>><</link>></span><<nexttext>> <<elseif $enemyhealth lte 0>> <span id="next"><<link [[Next|UITest1 Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|UITest1]]>><</link>></span><<nexttext>> <</if>>Demo Over<<widget "debugactionsman">> <!-- Unused --> <</widget>><<silently>><<effects>><</silently>><br> /*<<Avatar>>*/ <<link [[<<|Testing Room]]>><<set $pain -= 10>><</link>> <<link [[<|Testing Room]]>><<set $pain -= 5>><</link>> Pain (<<print $pain>>) <<link [[>|Testing Room]]>><<set $pain += 5>><</link>> <<link [[>>|Testing Room]]>><<set $pain += 10>><</link>> <br> <<link [[<<|Testing Room]]>><<arousal -1000>><</link>> <<link [[<|Testing Room]]>><<arousal -100>><</link>> Arousal (<<print $arousal>>) <<link [[>|Testing Room]]>><<arousal 100>><</link>> <<link [[>>|Testing Room]]>><<arousal 1000>><</link>> <br> <<link [[<<|Testing Room]]>><<set $stress -= 1000>><</link>> <<link [[<|Testing Room]]>><<set $stress -= 100>><</link>> Stress (<<print $stress>>) <<link [[>|Testing Room]]>><<set $stress += 100>><</link>> <<link [[>>|Testing Room]]>><<set $stress += 1000>><</link>> <br> <<link [[<<|Testing Room]]>><<set $trauma -= 1000>><</link>> <<link [[<|Testing Room]]>><<set $trauma -= 100>><</link>> Trauma (<<print $trauma>>) <<link [[>|Testing Room]]>><<set $trauma += 100>><</link>> <<link [[>>|Testing Room]]>><<set $trauma += 1000>><</link>> <br><br> <<link [[<<|Testing Room]]>><<set $promiscuity -= 10>><</link>> <<link [[<|Testing Room]]>><<set $promiscuity -= 2>><</link>> Promiscuity (<<print $promiscuity>>) <<link [[>|Testing Room]]>><<set $promiscuity += 2>><</link>> <<link [[>>|Testing Room]]>><<set $promiscuity += 10>><</link>> <br> <<link [[<<|Testing Room]]>><<set $exhibitionism -= 10>><</link>> <<link [[<|Testing Room]]>><<set $exhibitionism -= 2>><</link>> Exhibitionism (<<print $exhibitionism>>) <<link [[>|Testing Room]]>><<set $exhibitionism += 2>><</link>> <<link [[>>|Testing Room]]>><<set $exhibitionism += 10>><</link>> <br><br> Toggle: <<link [[Gender|Testing Room]]>> /* note: add ability to switch to herm gender in the future; maybe a set of (three) buttons to pick which gender instead of a toggle? */ <<set $player.gender to ($player.sex is "m" ? "f" : "m")>> <<set $player.penisExist to ($player.sex is "m")>> <<set $player.ballsExist to ($player.sex is "m")>> <<set $player.vaginaExist to ($player.sex is "f")>> <</link>> | <<link [[Sex|Testing Room]]>> <<set $player.sex to ($player.sex is "m" ? "f" : "m")>> <<set $player.penisExist to ($player.sex is "m")>> <<set $player.ballsExist to ($player.sex is "m")>> <<set $player.vaginaExist to ($player.sex is "f")>> <</link>> | <<link [[Virginity|Testing Room]]>> <<if $player.virginity.penile isnot true or $player.virginity.vaginal isnot true>> <<set $player.virginity.vaginal to true>><<set $player.virginity.penile to true>><<set $player.virginity.anal to true>><<set $player.virginity.oral to true>> <<else>> <<set $player.virginity.vaginal to false>><<set $player.virginity.penile to false>><<set $player.virginity.anal to false>><<set $player.virginity.oral to false>><<set $player.virginity.temple to false>> <</if>> <</link>> | <<link [[Hirsute|Testing Room]]>> <<set $hirsutedisable to ($hirsutedisable is "t"? "f" : "t")>> <</link>> | <<link [[Bound Left Arm|Testing Room]]>> <<if $leftarm is "bound">> <<set $leftarm to 0>><<set $leftboundcarry to 0>> <<else>> <<set $leftarm to "bound">> <</if>> <</link>> | <<link [[Bound Right Arm|Testing Room]]>> <<if $rightarm is "bound">> <<set $rightarm to 0>><<set $rightboundcarry to 0>> <<else>> <<set $rightarm to "bound">> <</if>> <</link>> <br><br> Breast Size - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 <br> Hair Colour (<<print $haircolour>>): <<link [[Black|Testing Room]]>><<set $haircolour to "black">><</link>> | <<link [[Brown|Testing Room]]>><<set $haircolour to "brown">><</link>> | <<link [[Red|Testing Room]]>><<set $haircolour to "red">><</link>> | <<link [[Ginger|Testing Room]]>><<set $haircolour to "ginger">><</link>> | <<link [[Blond|Testing Room]]>><<set $haircolour to "blond">><</link>> | <<link [[Green|Testing Room]]>><<set $haircolour to "green">><</link>> | <<link [[Blue|Testing Room]]>><<set $haircolour to "blue">><</link>> | <<link [[Purple|Testing Room]]>><<set $haircolour to "purple">><</link>> <br> Fringe Colour (<<print $hairfringecolour>>): <<link [[Black|Testing Room]]>><<set $hairfringecolour to "black">><</link>> | <<link [[Brown|Testing Room]]>><<set $hairfringecolour to "brown">><</link>> | <<link [[Red|Testing Room]]>><<set $hairfringecolour to "red">><</link>> | <<link [[Ginger|Testing Room]]>><<set $hairfringecolour to "ginger">><</link>> | <<link [[Blond|Testing Room]]>><<set $hairfringecolour to "blond">><</link>> | <<link [[Green|Testing Room]]>><<set $hairfringecolour to "green">><</link>> | <<link [[Blue|Testing Room]]>><<set $hairfringecolour to "blue">><</link>> | <<link [[Purple|Testing Room]]>><<set $hairfringecolour to "purple">><</link>> <br> <<link [[<<|Testing Room]]>><<set $hairlength -= 100>><</link>> <<link [[<|Testing Room]]>><<set $hairlength -= 10>><</link>> Hair Length (<<print $hairlength>>) <<link [[>|Testing Room]]>><<set $hairlength += 10>><</link>> <<link [[>>|Testing Room]]>><<set $hairlength += 100>><</link>> <br> Eye Colour (<<print $leftEyeColour>>/<<print $rightEyeColour>>): <<link [[Hazel|Testing Room]]>><<set $leftEyeColour to "hazel">><<set $rightEyeColour to "hazel">><</link>> | <<link [[Amber|Testing Room]]>><<set $leftEyeColour to "amber">><<set $rightEyeColour to "amber">><</link>> | <<link [[Green|Testing Room]]>><<set $leftEyeColour to "green">><<set $rightEyeColour to "green">><</link>> | <<link [[Dark Blue|Testing Room]]>><<set $leftEyeColour to "dark blue">><<set $rightEyeColour to "dark blue">><</link>> | <<link [[Light Blue|Testing Room]]>><<set $leftEyeColour to "light blue">><<set $rightEyeColour to "light blue">><</link>> | <<link [[Purple|Testing Room]]>><<set $leftEyeColour to "purple">><<set $rightEyeColour to "purple">><</link>> <br><br> <<link [[<|Testing Room]]>><<set $wolfgirl -= 1>><</link>> Wolf (<<print $wolfgirl>>) <<link [[>|Testing Room]]>><<set $wolfgirl += 1>><</link>> | <<link [[<|Testing Room]]>><<set $angel -= 1>><</link>> Angel (<<print $angel>>) <<link [[>|Testing Room]]>><<set $angel += 1>><</link>> | <<link [[<|Testing Room]]>><<set $demon -= 1>><</link>> Demon (<<print $demon>>) <<link [[>|Testing Room]]>><<set $demon += 1>><</link>> | <<link [[<|Testing Room]]>><<set $fallenangel -= 1>><</link>> Fallen Angel (<<print $fallenangel>>) <<link [[>|Testing Room]]>><<set $fallenangel += 1>><</link>> <br><br> Semen: <<link [[<|Testing Room]]>><<bodyliquid "vagina" "semen" -1>><</link>> Vagina (<<print $player.bodyliquid.vagina.semen>>) <<link [[>|Testing Room]]>><<bodyliquid "vagina" "semen">><</link>> | <<link [[<|Testing Room]]>><<bodyliquid "anus" "semen" -1>><</link>> Anus (<<print $player.bodyliquid.anus.semen>>) <<link [[>|Testing Room]]>><<bodyliquid "anus" "semen">><</link>> | <<link [[<|Testing Room]]>><<bodyliquid "mouth" "semen" -1>><</link>> Mouth (<<print $player.bodyliquid.mouth.semen>>) <<link [[>|Testing Room]]>><<bodyliquid "mouth" "semen" 1>><</link>> <br> Goo: <<link [[<|Testing Room]]>><<bodyliquid "vagina" "goo" -1>><</link>> Vagina (<<print $player.bodyliquid.vagina.goo>>) <<link [[>|Testing Room]]>><<bodyliquid "vagina" "goo">><</link>> | <<link [[<|Testing Room]]>><<bodyliquid "anus" "goo" -1>><</link>> Anus (<<print $player.bodyliquid.anus.goo>>) <<link [[>|Testing Room]]>><<bodyliquid "anus" "goo">><</link>> | <<link [[<|Testing Room]]>><<bodyliquid "mouth" "goo" -1>><</link>> Mouth (<<print $player.bodyliquid.mouth.goo>>) <<link [[>|Testing Room]]>><<bodyliquid "mouth" "goo">><</link>> <br> Parasite: <<link [[Chest|Testing Room]]>> <<if $parasite.nipples.name is undefined>> <<parasite nipples urchin>> <<else>> <<removeparasite nipples>> <</if>> <</link>> | <<link [[Penis|Testing Room]]>> <<if $parasite.penis.name is undefined>> <<parasite penis urchin>> <<else>> <<removeparasite penis>> <</if>> <</link>> | <<link [[Clit|Testing Room]]>> <<if $parasite.clit.name is undefined>> <<parasite clit urchin>> <<else>> <<removeparasite clit>> <</if>> <</link>> <br><br> Upper Clothes: <<link [[<<|Testing Room]]>><<set $worn.upper.integrity -= 10>><</link>> <<link [[<|Testing Room]]>><<set $worn.upper.integrity -= 1>><</link>> Integrity (<<print $worn.upper.integrity>>) <<link [[>|Testing Room]]>><<set $worn.upper.integrity += 1>><</link>> <<link [[>>|Testing Room]]>><<set $worn.upper.integrity += 10>><</link>> | <<link [[<|Testing Room]]>><<set $upperwet -= 100>><</link>> Wet (<<print $upperwet>>) <<link [[>|Testing Room]]>><<set $upperwet += 1>><</link>> <br> Lower Clothes: <<link [[<<|Testing Room]]>><<set $worn.lower.integrity -= 10>><</link>> <<link [[<|Testing Room]]>><<set $worn.lower.integrity -= 1>><</link>> Integrity (<<print $worn.lower.integrity>>) <<link [[>|Testing Room]]>><<set $worn.lower.integrity += 1>><</link>> <<link [[>>|Testing Room]]>><<set $worn.lower.integrity += 10>><</link>> | <<link [[<|Testing Room]]>><<set $lowerwet -= 100>><</link>> Wet (<<print $lowerwet>>) <<link [[>|Testing Room]]>><<set $lowerwet += 1>><</link>> <br> Under Bottoms: <<link [[<<|Testing Room]]>><<set $worn.under_lower.integrity -= 10>><</link>> <<link [[<|Testing Room]]>><<set $worn.under_lower.integrity -= 1>><</link>> Integrity (<<print $worn.under_lower.integrity>>) <<link [[>|Testing Room]]>><<set $worn.under_lower.integrity += 1>><</link>> <<link [[>>|Testing Room]]>><<set $worn.under_lower.integrity += 10>><</link>> | <<link [[<|Testing Room]]>><<set $underlowerwet -= 100>><</link>> Wet (<<print $underlowerwet>>) <<link [[>|Testing Room]]>><<set $underlowerwet += 1>><</link>> <br> Under Top: <<link [[<<|Testing Room]]>><<set $worn.under_upper.integrity -= 10>><</link>> <<link [[<|Testing Room]]>><<set $worn.under_upper.integrity -= 1>><</link>> Integrity (<<print $worn.under_upper.integrity>>) <<link [[>|Testing Room]]>><<set $worn.under_upper.integrity += 1>><</link>> <<link [[>>|Testing Room]]>><<set $worn.under_upper.integrity += 10>><</link>> | <<link [[<|Testing Room]]>><<set $underupperwet -= 100>><</link>> Wet (<<print $underupperwet>>) <<link [[>|Testing Room]]>><<set $underupperwet += 1>><</link>> <br> /*ToDo: Add handling for toggling clothing.*/ /*ToDo: Wardrobe and Shop*/ <br><br> <<link [[Bedroom]]>><</link>> <br><<widget "attitudes">> <div class="settingsGrid"> <div class="settingsHeader">Attitudes</div> <div class="settingsToggleItem"> <span class="gold bold">How do you feel about consensual sex?</span> <br> <span class="black small-description"><i>Provides a bonus after consensual sex based on how assertive you were.</i></span> <br> <label> <<radiobutton "$assertiveaction" "submissive" autocheck>> <span class="meek">I like making people feel good</span> (increase submissiveness) </label> <br> <label> <<radiobutton "$assertiveaction" "defiant" autocheck>> <span class="brat">I like being in control</span> (increase defiance) </label> <br> <label> <<radiobutton "$assertiveaction" "trauma" autocheck>> <span class="green">It's naughty</span> (decrease trauma) </label> <br> <label> <<radiobutton "$assertiveaction" "stress" autocheck>> <span class="green">It's fun</span> (decrease stress) </label> </div> <div class="settingsToggleItem"> <span class="gold bold">With what demeanour do you speak with others?</span> <br> <label><<radiobutton "$speech_attitude" "neutral" autocheck>> Neutral</label> <br> <<if $submissive gt 850>> <label><<radiobutton "$speech_attitude" "meek" autocheck>> <span class="meek">Meek</span></label> <br> <<else>> <input type="radio" disabled /> <span class="black"><i>You're too defiant to adopt a meek demeanour.</i></span> <br> <</if>> <<if $submissive lt 1150>> <label><<radiobutton "$speech_attitude" "bratty" autocheck>> <span class="brat">Bratty</span></label> <br> <<else>> <input type="radio" disabled /> <span class="black"><i>You're too submissive to adopt a bratty demeanour.</i></span> <br> <</if>> <<if $avery_mansion and $avery_fate isnot "fallen" and $avery_fate isnot "kicked">> <<if $attitudesControl.unlockAveryMeek>> <label><<checkbox "$speech_attitude_avery" false true autocheck>> Make a meek exception for Avery.</label> <br> <</if>> <<if $attitudesControl.unlockAveryKneel or $attitudesControl.unlockAveryBow>> <span class="gold bold">How do you present yourself to Avery?</span> <br> <<if $attitudesControl.unlockAveryKneel>> <label><<radiobutton "$avery_mansion.kneel" "refuse" autocheck>> <span class="brat">Refuse to degrade yourself</span></label> <br> <label><<radiobutton "$avery_mansion.kneel" "kneel" autocheck>> <span class="meek">Kneel</span></label> <br> <label><<radiobutton "$avery_mansion.kneel" "prostrate" autocheck>> <span class="sub">Prostrate</span></label> <br> <</if>> <<if $attitudesControl.unlockAveryBow>> <label><<checkbox "$avery_mansion.bow" false true autocheck>> <<if $player.gender_appearance is "m">> Bow <<else>> Curtsy <</if>> when greeting Avery after work. </label> <br> <</if>> <</if>> <</if>> </div> <div class="settingsToggleItem"> <span class="gold bold">What makes you feel uncomfortable?</span> <br> /* some events can force the switches to false without actually unlocking them */ <<if $attitudesControl.unlockExhibitionismUnderwear or $uncomfortable.underwear is false>> <label><<checkbox "$uncomfortable.underwear" false true autocheck>> Having your underwear seen by others</label> <<else>> <input type="checkbox" checked disabled /> <span class="black">Having your underwear seen by others</span> <br> <span class="blue small-description"><i>Requires higher exhibitionism.</i></span> <</if>> <br> <<if $attitudesControl.unlockExhibitionismNude or $uncomfortable.nude is false>> <label><<checkbox "$uncomfortable.nude" false true autocheck>> Being nude in front of others</label> <<else>> <input type="checkbox" checked disabled /> <span class="black">Being nude in front of others</span> <br> <span class="blue small-description"><i>Requires higher exhibitionism.</i></span> <</if>> <br> <<if $attitudesControl.unlockProstitution>> <label><<checkbox "$uncomfortable.prostituting" false true autocheck>> Prostituting yourself to help avoid Bailey's torments <br> <span class="black small-description"><i>If unchecked, you can prostitute yourself without appropriate promiscuity. Doing so will decrease control.</i></span></label> <<else>> <input type="checkbox" checked disabled /> <span class="black">Prostituting yourself to help avoid Bailey's torments</span> <br> <span class="blue small-description"><i>Bailey hasn't scared you enough.</i></span> <</if>> <br> <<if $gamemode isnot "hard">> <<if $attitudesControl.unlockLewd>> <label><<checkbox "$uncomfortable.lewd" false true autocheck>> Reflecting on all the lewd acts you've performed <br> <span class="black small-description"><i>If unchecked, exhibitionism, promiscuity, and deviancy will not decay. This can make managing control difficult.</i></span></label> <<else>> <input type="checkbox" checked disabled /> <span class="black">Reflecting on all the lewd acts you've performed</span> <br> <span class="blue small-description"><i>Requires higher exhibitionism, deviancy, or promiscuity.</i></span> <</if>> <br> <</if>> <<if $attitudesControl.unlockHypnosis>> <label><<checkbox "$uncomfortable.hypnosis" false true autocheck>> Being hypnotised during sex <br> <span class="black small-description"><i>If unchecked, you will accept hypnosis attempts during combat regardless of willpower.</i></span></label> <br> <</if>> </div> <<set _loveIntStart1 to $loveInterest.primary>> <<set _loveIntStart2 to $loveInterest.secondary>> <<set _loveIntStart3 to $loveInterest.tertiary>> <div id="loveInterest" class="settingsToggleItem"> <div class="gold bold">Who do you consider to be your love interest?</div> <<loveInterest>> </div> <<loveInterestFunction>> </div> <hr> <div class="settingsGrid"> <div class="settingsHeader">Default Combat Actions</div> <div class="settingsToggleItemWide"> <<setupDefaults>> <span class="gold bold">How do you feel about others?</span> <br> <<if $moleststat gt 0 or $debug is 1>> <<set _options to ["Everyone","Strangers","Animals","Tentacles","Acquaintances","Robin","Bailey"]>> <<set _named to ["Whitney","Kylar","Eden","Avery","Leighton","Sydney","Alex","Ivory Wraith","Black Wolf","Great Hawk"]>> <<for _i to 0; _i lt _named.length; _i++>> <<set _index to $NPCNameList.indexOf(_named[_i])>> <<if $NPCName[_index].init is 1>> <<run _options.push(_named[_i])>> <</if>> <</for>> <<run _options.push("Alternative")>> <<run _options.push("Defiant")>> <<run _options.push("Submissive")>> /*Data for the later loops*/ <<set _titles to ["Left Hand","Right Hand","Feet","Mouth","Penis","Vagina","Anus"]>> <<set _dataName to ["leftaction","rightaction","feetaction","mouthaction","penisaction","vaginaaction","anusaction"]>> <<set _data to ["_leftHand","_rightHand","_feet","_mouth","_penis","_vagina","_anus"]>> <<set _defaultActions = DefaultActions.load(DefaultActions.create())>> <<listbox "_defaultoption" autoselect>> <<optionsfrom _options>> <</listbox>> <<combatDefaults>> <br> <<set _currentActionSet to 0>> <div id="othersFeelings"> <<othersFeelings 0>> </div> <<else>> <span class="black"><i>Default Actions will be unlocked after your first encounter.</i></span> <</if>> </div> </div> <</widget>> <<widget "othersFeelings">> <<set _currentOptions to _args[0]>> <<set _stringDefault to "_defaultActions.consensual['"+_options[_currentOptions]+"']">> <<switch _options[_currentOptions]>> <<case "Everyone">><span class="red small-description">"Everyone" will only apply defaults when the "Override related settings" link is used. This will override defaults for every NPC.</span> <<set _requireConfirm to true>> <<case "Acquaintances">><span class="red small-description">Will override the other named acquaintances in the list if you use "Override related settings".</span> <<set _requireConfirm to true>> <<case "Alternative" "Defiant" "Submissive">>Can be used to replace moves mid-combat. Is not changed by "Override related settings" in any way. <<set _requireConfirm to false>> <<default>><<set _requireConfirm to false>> <</switch>> <br><br> <span class="gold bold">Selected Action Set:</span> <br> Your first action set has highest priority. Default options in higher sets are used if the default action in a lower set is unavailable. <div class="featButtonContainer no-numberify"> <<if _currentActionSet gt 0>> <div class="featButton"> <<button "<span class='fa-icon fa-left'></span>">> <<set _currentActionSet-->> <<replace #othersFeelings>><<othersFeelings _currentOptions>><</replace>> <</button>> </div> <<else>> <div class="featButtonGrey"> <<button "<span class='fa-icon fa-left'></span>">><</button>> </div> <</if>> <div class="gold featButton buttonDisable"> <<set _selectedActionSet to _currentActionSet + 1>> <<button "_selectedActionSet / 10">><</button>> </div> <<if _currentActionSet lt 9>> <div class="featButton"> <<button "<span class='fa-icon fa-right'></span>">> <<set _currentActionSet++>> <<replace #othersFeelings>><<othersFeelings _currentOptions>><</replace>> <</button>> </div> <<else>> <div class="featButtonGrey"> <<button "<span class='fa-icon fa-right'></span>">><</button>> </div> <</if>> </div> <hr> Consensual Sex: <br> <span class="black small-description">Some actions require sufficient lewdity.</span> <br> <<if _options[_currentOptions] is "Tentacles">> <<tentacleDefaults false>> <<else>> <<sexDefaults false>> <</if>> <ul class="listMargin"> <<for _i to 0; _i lt _titles.length; _i++>> <<if (_titles[_i] is "Penis" and !$player.penisExist) or (_titles[_i] is "Vagina" and !$player.vaginaExist)>> <<continue>> <</if>> <!-- This creates the consensual list of items. --> <li> <<print _titles[_i]>>: <<print '<<listbox "'+_stringDefault+'.'+_dataName[_i]+'['+_currentActionSet+']" autoselect>><<optionsfrom '+_data[_i]+'>><</listbox>>'>> </li> <</for>> <<if _options[_currentOptions] is "Tentacles">> <li> <label>Auto Select different tentacle for grab actions when the current tentacle is occupied <<print '<<checkbox "_defaultActions.consensual.Tentacles.regrab[0]" false true ' + (_defaultActions.consensual.Tentacles.regrab[0] is true ? "checked" : "") + '>>'>></label> </li> <</if>> <<if _defaultActions.consensual[_options[_currentOptions]].askActions isnot undefined>> <li> <label>Ask them: <<print '<<listbox "'+_stringDefault+'.askActions['+_currentActionSet+']" autoselect>><<optionsfrom _askActions>><</listbox>>'>></label> </li> <</if>> </ul> <<set _stringDefault to "_defaultActions.rape['"+_options[_currentOptions]+"']">> <<if _options[_currentOptions] isnot "Robin">> <<if _options[_currentOptions] is "Tentacles">> <<tentacleDefaults true>> <<else>> <<sexDefaults true>> <</if>> <br><br> Assault: <br> <ul class="listMargin"> <<for _i to 0; _i lt _titles.length; _i++>> <<if (_titles[_i] is "Penis" and !$player.penisExist) or (_titles[_i] is "Vagina" and !$player.vaginaExist)>> <<continue>> <</if>> <li> <<print _titles[_i]>>: <<print '<<listbox "'+_stringDefault+"."+_dataName[_i]+'['+_currentActionSet+']" autoselect>><<optionsfrom '+_data[_i]+'>><</listbox>>'>> </li> <</for>> <<if _options[_currentOptions] is "Tentacles">> <li> <label>Auto Select different tentacle for grab actions when the current tentacle is occupied <<print '<<checkbox "_defaultActions.rape.Tentacles.regrab[0]" false true ' + (_defaultActions.rape.Tentacles.regrab[0] is true ? "checked" : "") + '>>'>></label> </li> <</if>> <<if _defaultActions.rape[_options[_currentOptions]].askActions isnot undefined>> <li> <label>Ask them: <<print '<<listbox "'+_stringDefault+'.askActions['+_currentActionSet+']" autoselect>><<optionsfrom _askActions>><</listbox>>'>></label> </li> <</if>> </ul> <</if>> <br> <<if _requireConfirm is true>> <br> <<link [[Override related settings|$passage]]>> <<run DefaultActions.save(T.defaultActions)>> <<switch _options[_currentOptions]>> <<case "Everyone">> <<set _options to ["Strangers","Animals","Acquaintances","Robin", "Bailey","Whitney","Kylar","Eden","Avery","Leighton","Sydney","Alex","Ivory Wraith","Black Wolf","Great Hawk"]>> <<for _option range _options>> <<if !$actionDefaults.consensual>> <<set $actionDefaults.consensual to {}>> <</if>> <<if !$actionDefaults.rape>> <<set $actionDefaults.rape to {}>> <</if>> <<set _index to $NPCNameList.indexOf(_option)>> <<if $NPCName[_index] && $NPCName[_index].init isnot 1>> <<continue>> <</if>> <<set $actionDefaults.consensual[_option] to clone($actionDefaults.consensual.Everyone)>> <<set $actionDefaults.rape[_option] to clone($actionDefaults.rape.Everyone)>> <</for>> <<case "Acquaintances">> <<set _options to ["Robin","Bailey","Whitney","Kylar","Eden","Avery","Leighton","Sydney","Alex","Ivory Wraith","Black Wolf","Great Hawk"]>> <<for _option range _options>> <<if !$actionDefaults.consensual>> <<set $actionDefaults.consensual to {}>> <</if>> <<if !$actionDefaults.rape>> <<set $actionDefaults.rape to {}>> <</if>> <<set _index to $NPCNameList.indexOf(_option)>> <<if $NPCName[_index] && $NPCName[_index].init isnot 1>> <<continue>> <</if>> <<set $actionDefaults.consensual[_option] to clone($actionDefaults.consensual.Acquaintances)>> <<set $actionDefaults.rape[_option] to clone($actionDefaults.rape.Acquaintances)>> <</for>> <</switch>> <</link>> <</if>> <</widget>> <<widget "setupDefaults">> <<set $actionDefaults = DefaultActions.check(DefaultActions.setup())>> <</widget>> <!-- _args[0] As Boolean: false is consensual, true is non-consensual. --> <<widget "sexDefaults">> <<set _leftHand to { "Rest": "rest", "Stroke": "leftchest", "Hold behind back": "behind", "Stop holding behind": "stopbehind" }>> <<if _args[0] is true>> <<set _leftHand["Punch"] to "lefthit">> <<set _leftHand["Pull their hand off your neck"] to "stopchokenoncon">> <<else>> <<set _leftHand["Press their hand to your neck"] to "keepchoke">> <<set _leftHand["Take their hand off your neck"] to "stopchoke">> <</if>> <<set _leftHand["Cover your face"] to "leftcoverface">> <<set _leftHand["Pose for camera"] to "leftcamerapose">> <<set _leftHand["Whack the writing tool away"] to "penwhack">> <<set _leftHand["Whack the hypnotic instrument away"] to "hypnosiswhack">> <<if currentSkillValue('skulduggery') gte 200>> <<set _leftHand["Steal"] to "steal">> <</if>> <<set _leftHand["Struggle"] to "leftstruggle">> <<set _leftHand["Stroke their penis"] to "leftstroke">> <<if hasSexStat("promiscuity", 3) or hasSexStat("deviancy", 3) or _args[0] is true>> <<set _leftHand["Grab their penis"] to "leftgrab">> <<set _leftHand["Work their shaft"] to "leftwork">> <<set _leftHand["Play with their pussy"] to "leftplay">> <<set _leftHand["Rub their clit"] to "leftclit">> <</if>> <<if hasSexStat("promiscuity", 2)>> <<if $player.penisExist>> <<set _leftHand["Play with your penis"] to "leftmasturbatepenis">> <</if>> <<if $player.vaginaExist>> <<set _leftHand["Play with your pussy"] to "leftmasturbatepussy">> <</if>> <</if>> <<if hasSexStat("promiscuity", 3) and $awareness gte 200>> <<set _leftHand["Play with your anus"] to "leftmasturbateanus">> <</if>> <<set _leftHand["Remove your buttplug"] to "removebuttplug">> <<set _leftHand["Grip"] to "leftgrip">> <<set _leftHand["Protect"] to "leftprotect">> <<set _rightHand to { "Rest":"rest", "Stroke":"rightchest", "Hold behind back": "behind", "Stop holding behind": "stopbehind" }>> <<if _args[0] is true>> <<set _rightHand["Punch"] to "righthit">> <<set _rightHand["Pull their hand off your neck"] to "stopchokenoncon">> <<else>> <<set _rightHand["Press their hand to your neck"] to "keepchoke">> <<set _rightHand["Take their hand off your neck"] to "stopchoke">> <</if>> <<set _rightHand["Cover your face"] to "rightcoverface">> <<set _rightHand["Pose for camera"] to "rightcamerapose">> <<set _rightHand["Whack the writing tool away"] to "penwhack">> <<set _rightHand["Whack the hypnotic instrument away"] to "hypnosiswhack">> <<if currentSkillValue('skulduggery') gte 200>> <<set _rightHand["Steal"] to "steal">> <</if>> <<set _rightHand["Struggle"] to "rightstruggle">> <<set _rightHand["Stroke their penis"] to "rightstroke">> <<if hasSexStat("promiscuity", 3) or hasSexStat("deviancy", 3) or _args[0] is true>> <<set _rightHand["Grab their penis"] to "rightgrab">> <<set _rightHand["Work their shaft"] to "rightwork">> <<set _rightHand["Play with their pussy"] to "rightplay">> <<set _rightHand["Rub their clit"] to "rightclit">> <</if>> <<if hasSexStat("promiscuity", 2)>> <<if $player.vaginaExist>> <<set _rightHand["Play with your pussy"] to "rightmasturbatepussy">> <</if>> <<if $player.penisExist>> <<set _rightHand["Play with your penis"] to "rightmasturbatepenis">> <</if>> <</if>> <<if hasSexStat("promiscuity", 3) and $awareness gte 200>> <<set _rightHand["Play with your anus"] to "rightmasturbateanus">> <</if>> <<set _rightHand["Remove your buttplug"] to "removebuttplug">> <<set _rightHand["Grip"] to "rightgrip">> <<set _rightHand["Protect"] to "rightprotect">> <<set _feet to { "Rest":"rest", }>> <<if _args[0] is true>> <<set _feet["Kick"] to "kick">> <</if>> <<if hasSexStat("promiscuity", 3) or hasSexStat("deviancy", 3) or _args[0] is true>> <<set _feet["Grab their penis"] to "grab">> <<set _feet["Rub their penis"] to "grabrub">> <<set _feet["Press against their pussy"] to "vaginagrab">> <<set _feet["Rub their pussy"] to "vaginagrabrub">> <</if>> <<if (_args[0] is false and (hasSexStat("promiscuity", 3) or hasSexStat("deviancy", 3))) or (_args[0] is true and (hasSexStat("promiscuity", 6) or hasSexStat("deviancy", 6)))>> <<set _feet["Leg lock them"] to "legLock">> <</if>> <<set _feet["Curl toes"] to "feetCurl">> <<set _mouth to { "Rest":"rest", "Kiss":"kiss", "Kiss Back":"kissback", "Kiss skin": "kissskin", }>> <<if _args[0] is true>> <<set _mouth["Scream"] to "scream">> <<set _mouth["Plead"] to "plead">> <</if>> <<if $wolfgirl gte 2>> <<set _mouth["Growl"] to "growl">> <</if>> <<if $submissive gte 1150 or (hasSexStat("promiscuity", 3) and _args[0] is false)>> <<set _mouth["Moan"] to "moan">> <</if>> <<if $angel gte 6 and $angelforgive isnot 1 and _args[0] is true>> <<set _mouth["Forgive"] to "forgive">> <</if>> <<if $fallenangel gte 4 and $angelforgive isnot 1 and _args[0] is true>> <<set _mouth["Disparage"] to "disparage">> <</if>> <<if $submissive lte 850 and _args[0] is true>> <<set _mouth["Demand"] to "demand">> <</if>> <<if hasSexStat("promiscuity", 4) or hasSexStat("deviancy", 4) or _args[0] is true>> <<set _mouth["Move your lips to their penis"] to "mouth">> <</if>> <<if hasSexStat("promiscuity", 3) or hasSexStat("deviancy", 3) or _args[0] is true>> <<set _mouth["Grab penis between breasts"] to "grasp">> <</if>> <<set _mouth["Pull away"] to "pullaway">> <<set _mouth["Lick their penis"] to "lick">> <<if hasSexStat("promiscuity", 5) or hasSexStat("deviancy", 5) or _args[0] is true>> <<set _mouth["Take their penis into your mouth"] to "swallow">> <</if>> <<set _mouth["Suck their penis"] to "suck">> <<if _args[0] is true>> <<set _mouth["Bite their penis"] to "bite">> <</if>> <<if _args[0] is false>> <<set _mouth["Swallow their cum"] to "ejacswallow">> <<set _mouth["Spit out their cum"] to "ejacspit">> <</if>> <<set _mouth["Pull away from their penis"] to "pullaway">> <<if hasSexStat("promiscuity", 4) or hasSexStat("deviancy", 4) or _args[0] is true>> <<set _mouth["Move your lips to their pussy"] to "othervagina">> <</if>> <<set _mouth["Lick their pussy"] to "vaginalick">> <<if _args[0] is true>> <<set _mouth["Bite their pussy"] to "bitepussy">> <</if>> <<set _mouth["Pull away from their vagina"] to "pullawayvagina">> <<if hasSexStat("promiscuity", 3) or _args[0] is true>> <<set _mouth["Move your lips to their chest"] to "movetochest">> <</if>> <<set _mouth["Lick their breasts"] to "breastlick">> <<set _mouth["Pull away from their breasts"] to "breastpull">> <<set _mouth["Suck their breasts"] to "breastsuck">> <<if _args[0] is true>> <<set _mouth["Bite their breasts"] to "breastbite">> <</if>> <<set _mouth["Keep your mouth closed"] to "breastclosed">> <<if hasSexStat("promiscuity", 4) or $deviancy gt 55 or _args[0] is true>> <<set _mouth["Edge"] to "oraledge">> <</if>> <<set _mouth["Lick ass"] to "anallick">> <<if $submissive gte 1150>> <<set _mouth["Kiss ass"] to "analkiss">> <</if>> <<if _args[0] is false>> <<set _mouth["Pull away from their ass"] to "analpull">> <</if>> <<if _args[0] is true>> <<set _mouth["Headbutt"] to "headbutt">> <</if>> <<set _mouth["Let it out (pain)"] to "letout">> <<set _mouth["Let it out (orgasm)"] to "letoutorgasm">> <<set _mouth["Ask them"] to "ask">> <<set _askActions to {"Nothing":"rest"}>> <<if _args[0] is false>> <<set _askActions["to stop"] to "finish">> <<if $player.vaginaExist>> <<set _askActions["to not put anything in your pussy"] to "novaginal">> <</if>> <<if $player.penisExist>> <<set _askActions["to not put your penis in anything"] to "nopenile">> <</if>> <<set _askActions["to not put anything in your anus"] to "noanal">> <<if $settings.asphyxiaLevel gte 1>> <<set _askActions["to not choke you"] to "nochoke">> <</if>> <</if>> <<if (_args[0] is false and ($choketrait or ($chokeorgasm gte 1 and $submissive gt 850))) or ($awarelevel gte 2 and $submissive gte 1150)>> <<set _askActions["to choke you"] to "askchoke">> <</if>> <<if (_args[0] is false and $masochism_level gte 1) or $masochism_level gte 3>> <<set _askActions["to be more rough"] to "askrough">> <</if>> <<if $settings.condomLevel gte 2>> <<set _askActions["to use a condom"] to "condoms">> <<set _askActions["to not use a condom"] to "noCondoms">> <</if>> <<set _askActions["to leave your top on"] to "noupper">> <<if $settings.asphyxiaLevel gte 1 and _args[0] is false and ($choketrait or ($chokeorgasm gte 1 and $submissive gt 850) or ($awarelevel gte 2 and $submissive gte 1150))>> <<set _askActions["to choke you"] to "askchoke">> <</if>> <<if $consensual is 1 and $masochism_level gte 1 or $masochism_level gte 3>> <<set _askActions["to be more rough"] to "askrough">> <</if>> <<set _penis to { "Rest":"rest", }>> <<if hasSexStat("promiscuity", 5) or hasSexStat("deviancy", 5) or _args[0] is true>> <<set _penis["Press against their pussy"] to "penistovagina">> <<set _penis["Penetrate their pussy"] to "penisvaginafuck">> <</if>> <<if hasSexStat("promiscuity", 4) or hasSexStat("deviancy", 4) or _args[0] is true>> <<set _penis["Frot against their clit"] to "bay">> <</if>> <<set _penis["Tease the pussy"] to "tease">> <<set _penis["Pull away from their pussy"] to "escape">> /*After bay*/ <<if hasSexStat("promiscuity", 4) or hasSexStat("deviancy", 4) or _args[0] is true>> <<set _penis["Rub against their pussy"] to "rub">> <</if>> /*After penisvaginafuck*/ <<set _penis["Take the pussy"] to "take">> <<set _penis["Cooperate with their pussy"] to "cooperate">> <<if (hasSexStat("promiscuity", 4) or hasSexStat("deviancy", 4) or _args[0] is true) and currentSkillValue("penileskill") gte 800>> <<set _penis["Edge their vagina"] to "vaginaEdging">> <</if>> <<if hasSexStat("promiscuity", 5) or hasSexStat("deviancy", 5) or _args[0] is true>> <<set _penis["Press against their ass"] to "penistoanus">> <<set _penis["Penetrate their ass"] to "penisanusfuck">> <</if>> <<if hasSexStat("promiscuity", 4) or hasSexStat("deviancy", 4) or _args[0] is true>> <<set _penis["Frot against their ass"] to "otheranusbay">> <</if>> <<set _penis["Tease the ass"] to "otheranustease">> <<set _penis["Pull away from their ass"] to "otheranusescape">> /*After otheranusbay*/ <<if hasSexStat("promiscuity", 4) or hasSexStat("deviancy", 4) or _args[0] is true>> <<set _penis["Rub against their ass"] to "otheranusrub">> <</if>> /*After penisanusfuck*/ <<set _penis["Take the ass"] to "otheranustake">> <<set _penis["Cooperate with their ass"] to "otheranuscooperate">> <<if (hasSexStat("promiscuity", 4) or hasSexStat("deviancy", 4) or _args[0] is true) and currentSkillValue("penileskill") gte 800>> <<set _penis["Edge their ass"] to "otheranusEdging">> <</if>> <<set _penis["Press your thigh against their mouth"] to "thighbay">> <<set _penis["Rub against their face"] to "othermouthtease">> <<set _penis["Rub against their lips"] to "othermouthrub">> <<set _penis["Pull away from their mouth"] to "othermouthescape">> <<set _penis["Cooperate with their mouth"] to "othermouthcooperate">> <<set _vagina to { "Rest":"rest", "Offer your ass instead":"penisanus", }>> <<if hasSexStat("promiscuity", 5) or hasSexStat("deviancy", 5) or _args[0] is true>> <<set _vagina["Straddle their penis"] to "vaginatopenis">> <<set _vagina["Envelop their penis"] to "vaginapenisfuck">> <</if>> <<if hasSexStat("promiscuity", 4) or hasSexStat("deviancy", 4) or _args[0] is true>> <<set _vagina["Try to keep their penis away with your thighs"] to "penisthighs">> <</if>> <<if hasSexStat("promiscuity", 5) or hasSexStat("deviancy", 5) or _args[0] is true>> <<set _vagina["Push your pussy against theirs"] to "vaginatovagina">> <</if>> <<set _vagina["Pull away from their penis"] to "escape">> <<set _vagina["Tease the tip"] to "penistease">> /*After penisthighs*/ <<if hasSexStat("promiscuity", 4) or hasSexStat("deviancy", 4) or _args[0] is true>> <<set _vagina["Rub against their penis"] to "rub">> <</if>> /*After vaginapenisfuck*/ <<set _vagina["Take it"] to "take">> <<set _vagina["Cooperate"] to "cooperate">> <<if (hasSexStat("promiscuity", 4) or hasSexStat("deviancy", 4) or _args[0] is true) and currentSkillValue("vaginalskill") gte 800>> <<set _vagina["Edge their penis with your vagina"] to "penisEdging">> <</if>> <<set _vagina["Press your thigh against their mouth"] to "thighbay">> <<set _vagina["Rub against their face"] to "othermouthtease">> <<set _vagina["Rub against their lips"] to "othermouthrub">> <<set _vagina["Pull away from their mouth"] to "othermouthescape">> <<set _vagina["Cooperate with their mouth"] to "othermouthcooperate">> <<set _anus to { "Rest":"rest", }>> <<if $player.vaginaExist>> <<set _anus["Offer your pussy instead"] to "penispussy">> <</if>> <<if hasSexStat("promiscuity", 5) or hasSexStat("deviancy", 5) or _args[0] is true>> <<set _anus["Straddle their penis"] to "anustopenis">> <<set _anus["Envelop their penis"] to "anuspenisfuck">> <</if>> <<if hasSexStat("promiscuity", 4) or hasSexStat("deviancy", 4) or _args[0] is true>> <<set _anus["Keep their penis away with your cheeks"] to "penischeeks">> <</if>> <<set _anus["Tease the tip"] to "penistease">> <<set _anus["Pull away from their penis"] to "escape">> /*After penischeeks*/ <<set _anus["Rub against their penis"] to "rub">> /*After anuspenisfuck*/ <<set _anus["Take it"] to "take">> <<set _anus["Cooperate"] to "cooperate">> <<if (hasSexStat("promiscuity", 4) or hasSexStat("deviancy", 4) or _args[0] is true) and currentSkillValue("analskill") gte 800>> <<set _anus["Edge their penis with your ass"] to "penisEdging">> <</if>> <<set _anus["Press your butt against their mouth"] to "bottombay">> <<set _anus["Rub against their face"] to "othermouthtease">> <<set _anus["Rub against their lips"] to "othermouthrub">> <<set _anus["Pull away from their mouth"] to "othermouthescape">> <<set _anus["Cooperate with their mouth"] to "othermouthcooperate">> <<set _anus["Rub their hand with your cheeks"] to "bottomhandbay">> <<set _anus["Rub your anus against their hand"] to "handtease">> <<set _anus["Rub against their fingers"] to "handrub">> <<set _anus["Pull away from their hand"] to "handescape">> <<set _anus["Cooperate with their fingers"] to "handcooperate">> <</widget>> <<widget "tentacleDefaults">> <<set _leftHand to { "Rest":"rest", "Grab the":"leftgrab" }>> <<if hasSexStat("deviancy", 5)>> <<set _leftHand["Guide to your penis"] to "showpenis">> <<set _leftHand["Guide to your pussy"] to "showvagina">> <<set _leftHand["Guide to your ass"] to "showbottom">> <</if>> <<if _args[0] is true>> <<set _leftHand["Strike the"] to "lefthittentacle">> <</if>> <<set _leftHand["Milk it"] to "leftrub">> <<set _rightHand to { "Rest":"rest", "Grab the":"rightgrab" }>> <<if hasSexStat("deviancy", 5)>> <<set _rightHand["Guide to your penis"] to "showpenis">> <<set _rightHand["Guide to your pussy"] to "showvagina">> <<set _rightHand["Guide to your ass"] to "showbottom">> <</if>> <<if _args[0] is true>> <<set _rightHand["Strike the"] to "righthittentacle">> <</if>> <<set _rightHand["Milk it"] to "rightrub">> <<set _feet to { "Rest":"rest", "Grab the":"feetgrab" }>> <<if hasSexStat("deviancy", 5)>> <<set _feet["Guide to your penis"] to "showpenis">> <<set _feet["Guide to your pussy"] to "showvagina">> <<set _feet["Guide to your ass"] to "showbottom">> <</if>> <<if _args[0] is true>> <<set _feet["Kick the"] to "feethit">> <</if>> <<set _feet["Milk it"] to "feetrub">> <<set _mouth to { "Rest":"rest", "Lick it":"mouthlick", "Pull away":"mouthpullaway", "Kiss it":"mouthkiss", "Take it":"take", "Cooperate":"mouthcooperate" }>> <<if _args[0] is true>> <<set _mouth["Bite"] to "mouthbite">> <</if>> <<set _penis to { "Rest":"rest", "Rub":"penisrub", "Pull away":"penispullaway", "Take it":"take", "Cooperate":"peniscooperate" }>> <<set _vagina to { "Rest":"rest", "Rub":"vaginarub", "Pull away":"vaginapullaway", "Take it":"take", "Cooperate":"vaginacooperate" }>> <<set _anus to { "Rest":"rest", "Rub":"anusrub", "Pull away":"anuspullaway", "Take it":"take", "Cooperate":"anuscooperate" }>> <</widget>> <<widget "loveInterest">> Primary Love Interest: <br> <<set _npc = ["None"].concat(setup.loveInterestNpc)>> /* Love interest requirements defined in function isPossibleLoveInterest() */ <<set _potentialLoveInterests = ["None"].concat(setup.loveInterestNpc.filter(LI => isPossibleLoveInterest(LI)))>> <<if _potentialLoveInterests.length lte 1>> <span class="black"><i>You haven't developed feelings for anyone yet.</i></span> <<else>> <<listbox "$loveInterest.primary" autoselect>> <<optionsfrom _potentialLoveInterests>> <</listbox>> <<if $loveInterest.primary isnot "None">> <<run _potentialLoveInterests.delete($loveInterest.primary)>> <</if>> <br><br> Secondary Love Interest: <br> <<if $awarelevel gte 2>> <<if $loveInterest.primary is "None">> <<set $loveInterest.secondary to "None">> <span class="black">You need to choose a primary love interest before you can choose a secondary.</span> <<else>> <<listbox "$loveInterest.secondary" autoselect>> <<optionsfrom _potentialLoveInterests>> <</listbox>> <<if $loveInterest.secondary isnot "None">> <<run _potentialLoveInterests.delete($loveInterest.secondary)>> <</if>> <</if>> <<else>> <span class="black">You don't consider it possible to have more than one love interest.</span> <<set $loveInterest.secondary to "None">> <</if>> <br><br> Tertiary Love Interest: <br> <<if $awarelevel gte 3>> <<if $loveInterest.secondary is "None">> <<set $loveInterest.tertiary to "None">> <span class="black">You need to choose a secondary love interest before you can choose a tertiary.</span> <<else>> <<listbox "$loveInterest.tertiary" autoselect>> <<optionsfrom _potentialLoveInterests>> <</listbox>> <</if>> <<else>> <span class="black">You don't consider it possible to have more than two love interests.</span> <<set $loveInterest.tertiary to "None">> <</if>> <</if>> <<if $transformationParts.traits.mateForLife isnot "disabled" and (!isLoveInterest(_loveIntStart1) or (_loveIntStart2 isnot "None" and !isLoveInterest(_loveIntStart2)) or (_loveIntStart3 isnot "None" and !isLoveInterest(_loveIntStart3)))>> <<set $LIChanged to true>> <br> <span class="red">Changing your partners goes against your instincts to mate for life. It will take a toll on your mental state.</span> <<else>> <<unset $LIChanged>> <</if>> <</widget>> <<widget "loveInterestAdd">> <<set $_LI to _args[0]>> <<if setup.loveInterestNpc.includes($_LI)>> <span class="gold"> <<if $loveInterest.primary is "None">> <<set $loveInterest.primary to $_LI>><<set $_assigned to true>> <<elseif $loveInterest.secondary is "None" and $awarelevel gte 2>> <<set $loveInterest.secondary to $_LI>><<set $_assigned to true>> <<elseif $loveInterest.tertiary is "None" and $awarelevel gte 3>> <<set $loveInterest.tertiary to $_LI>><<set $_assigned to true>> <</if>> <<if $_assigned>> <<= $_LI>> is now your love interest! <<else>> <<= $_LI>> can now be claimed as your love interest! <</if>> <<switch $_LI>> <<case "Robin">>The thought makes you feel warm. <<case "Whitney">>It seems you don't have a choice in the matter. <<case "Kylar">> <<if _args[1] is "consensual">> You know <<nnpc_he "Kylar">>'ll always be watching your back. Always. <<else>> You aren't sure if you agreed to this. <</if>> <<case "Sydney">>Will you keep <<nnpc_him "Sydney">> pure, or fall from grace together? <<case "Eden">>The feeling of danger has passed, and you feel safer here. <<case "Avery">>You feel yourselves moving up in the world. <<case "Black Wolf">><<nnpc_He "Black Wolf">> seems happy to have found a mate. <<case "Great Hawk">>This isn't how you expected to find a <<if $monster is 1>><<nnpc_wife "Great Hawk">><<else>>partner<</if>>, but you feel uplifted all the same. <<case "Alex">>You can live together, after all. <<case "Gwylan">> <<if $gwylanSeen?.includes("romance")>> You feel ready for forever, and so does <<nnpc_he "Gwylan">>. <<else>> Not forever, but for right now. Right now is all that matters. <</if>> <</switch>> <br> You can change your love interest<<if $awarelevel gte 2>>s<</if>> in the "Attitudes" menu. </span> <</if>> <</widget>> <<widget "loveInterestRemove">> <<set $_LI to _args[0]>> <<if setup.loveInterestNpc.includes($_LI) and isLoveInterest($_LI)>> <<if $loveInterest.primary is $_LI>> <<set $loveInterest.primary to "None">> <<elseif $loveInterest.secondary is $_LI>> <<set $loveInterest.secondary to "None">> <<elseif $loveInterest.tertiary is $_LI>> <<set $loveInterest.tertiary to "None">> <</if>> <<if $loveInterest.primary is "None" and $loveInterest.secondary isnot "None">> <<set $loveInterest.primary to $loveInterest.secondary>> <<set $loveInterest.secondary to "None">> <</if>> <<if $loveInterest.secondary is "None" and $loveInterest.tertiary isnot "None">> <<set $loveInterest.secondary to $loveInterest.tertiary>> <<set $loveInterest.tertiary to "None">> <</if>> <</if>> <</widget>> <<widget "attitudesControlCheck">> /* highlight the attitudes button when new attitude controls are available */ <<script>> /* back up the old variable for later comparison */ T.oldControl = clone(V.attitudesControl); /* update available controls */ V.attitudesControl.unlockExhibitionismUnderwear = V.exhibitionism >= 55; V.attitudesControl.unlockExhibitionismNude = V.exhibitionism >= 95; V.attitudesControl.unlockDemonFlaunt = V.demon >= 6 && V.exhibitionism >= 95; V.attitudesControl.unlockProstitution = V.soldCount >= 1 || V.docksrobinintro === 1; /* getting the first LI automatically assigns them as a primary one, indicating that now there's options */ V.attitudesControl.unlockLoveInterest1 = V.loveInterest.primary !== "None"; /* there's no point in highlighting that you can assign the second LI if you've not assigned the first one */ V.attitudesControl.unlockLoveInterest2 = V.awarelevel >= 2 && V.loveInterest.primary !== "None" && V.loveInterest.secondary === "None"; V.attitudesControl.unlockLoveInterest3 = V.awarelevel >= 3 && V.loveInterest.primary !== "None" && V.loveInterest.secondary !== "None" && V.loveInterest.tertiary === "None"; V.attitudesControl.unlockDefaultActions = V.moleststat > 0; V.attitudesControl.unlockLewd = V.exhibitionism >= 35 || V.promiscuity >= 35 || V.deviancy >= 35; V.attitudesControl.unlockHypnosis = Object.keys(V.hypnosis_traits).length >= 1; V.attitudesControl.unlockAveryMeek = V.avery_mansion?.jobs.includes("meek"); V.attitudesControl.unlockAveryKneel = V.avery_mansion?.jobs.includes("knees"); V.attitudesControl.unlockAveryBow = V.avery_mansion?.jobs.includes("bow"); /* set the highlight flag when one of the controls switches to true */ for (const c in V.attitudesControl) { if (V.attitudesControl[c] && !T.oldControl[c]) { V.attitudesControl.showGoldLink = true; break } } <</script>> <</widget>><<widget "attach_leash">> <<if $worn.neck.colour>><<set $_colour to $worn.neck.colour>><</if>> <<set $_collaredpolice to $worn.neck.collaredpolice>> <<if $worn.neck.name is "familiar collar">> /* Ideally all collars that can have leashes should work similar, and there shouldn't be unique clothing objects for collars versus collars with leashes, but I'm not touching that right now. */ <<if $npc.includes("Gwylan")>> <<set $worn.neck.type.pushUnique("leash")>> <<set $familiarLeash to $passage>> <<else>> /* To catch any stray cases of an NPC 'attaching a leash' to the collar, only Gwylan should be able to do it */ <<set _magicLeash to true>> <</if>> <<elseif $worn.neck.name is "collar">> <<set $worn.neck.type.push("broken")>> <<neckruined _args[1]>> <<neckwear 21 $_colour>> <<elseif $worn.neck.name is "free use collar">> <<set $worn.neck.type.push("broken")>> <<neckruined _args[1]>> <<neckwear 22 $_colour>> <<elseif $worn.neck.name is "leather collar">> <<set $worn.neck.type.push("broken")>> <<neckruined _args[1]>> <<neckwear 24 $_colour>> <<elseif $worn.neck.name is "spiked collar">> <<set $_cursed to $worn.neck.cursed>> <<set $worn.neck.type.push("broken")>> <<neckruined _args[1]>> <<neckwear 26 $_colour>> <<if !_args[0] or $_cursed>><<set $worn.neck.cursed to 1>><</if>> <</if>> <<set $worn.neck.collaredpolice to $_collaredpolice>> <</widget>> <<widget "detach_leash">> <<if $worn.neck.colour>><<set $_colour to $worn.neck.colour>><</if>> <<set $_collaredpolice to $worn.neck.collaredpolice>> <<if $worn.neck.name is "familiar collar">> /* Ideally all collars that can have leashes should work similar, and there shouldn't be unique clothing objects for collars versus collars with leashes, but I'm not touching that right now. */ <<if $npc.includes("Gwylan")>> <<set $worn.neck.type.delete("leash")>> <<unset $familiarLeash>> <</if>> <<elseif $worn.neck.name is "collar with leash">> <<set $worn.neck.type.push("broken")>> <<neckruined _args[1]>> <<neckwear 1 $_colour>> <<elseif $worn.neck.name is "free use collar with leash">> <<set $worn.neck.type.push("broken")>> <<neckruined _args[1]>> <<neckwear 20 $_colour>> <<elseif $worn.neck.name is "leather collar with leash">> <<set $worn.neck.type.push("broken")>> <<neckruined _args[1]>> <<neckwear 25 $_colour>> <<elseif $worn.neck.name is "spiked collar with leash">> <<set $_cursed to $worn.neck.cursed>> <<set $worn.neck.type.push("broken")>> <<neckruined _args[1]>> <<neckwear 10 $_colour>> <<if !_args[0] or $_cursed>><<set $worn.neck.cursed to 1>><</if>> <<set $worn.neck.collared to 1>> <</if>> <<set $worn.neck.collaredpolice to $_collaredpolice>> <</widget>> <<widget "pull_leash">><<silently>> <<set $_pull to _args[0] || "pulls">> <<set $_text_output to $_pull + " your ">> <<if $worn.neck.type.includes("leash")>> <<set $_text_output += "leash">> <<elseif $worn.neck.collared is 1>> <<set $_text_output += "collar">> <<elseif $worn.neck.has_collar>> <<set $_text_output += $worn.neck.name>> <<elseif $worn.upper.has_collar>> <<set $_text_output to $_pull + " the collar of your " + $worn.upper.name>> <<elseif $worn.neck.name isnot "naked">> <<set $_text_output += $worn.neck.name>> <<else>> <<set $_text_output to $_pull + " the nape of your neck">> <</if>> <</silently>><<print $_text_output>><</widget>><<widget "init_bodywriting_objects">> /*fuckdoll isn't used yet.*/ <<set setup.bodywriting to { rape_me: { index: 0, writing: "Rape me", type: "text", arrow: 1, special: "rape", gender: "n", lewd: 1, degree: 0, key: "rape_me", sprites: ["breasts", "forehead", "left_thigh", "pubic", "right_thigh"] }, slut: { index: 1, writing: "Slut", type: "text", arrow: 0, special: "none", gender: "n", lewd: 1, degree: 0, key: "slut", sprites: ["breasts", "forehead", "left_thigh", "pubic", "right_thigh"] }, fucktoy: { index: 2, writing: "Fucktoy", type: "text", arrow: 0, special: "none", gender: "n", lewd: 1, degree: 0, key: "fucktoy", sprites: ["breasts", "forehead", "left_thigh", "pubic", "right_thigh"] }, rapetoy: { index: 3, writing: "Rapetoy", type: "text", arrow: 0, special: "rape", gender: "n", lewd: 1, degree: 0, key: "rapetoy", sprites: ["breasts", "forehead", "left_thigh", "pubic", "right_thigh"] }, worthless: { index: 4, writing: "Worthless", type: "text", arrow: 0, special: "none", gender: "n", lewd: 1, degree: 0, key: "worthless", sprites: ["breasts", "left_thigh", "pubic", "right_thigh"] }, free_use: { index: 5, writing: "Free use", type: "text", arrow: 1, special: "none", gender: "n", lewd: 1, degree: 0, key: "free_use", sprites: ["breasts", "forehead", "left_thigh", "pubic", "right_thigh"] }, slave: { index: 6, writing: "Slave", type: "text", arrow: 0, special: "slave", gender: "n", lewd: 1, degree: 0, key: "slave", sprites: ["breasts", "forehead", "left_thigh", "pubic", "right_thigh"] }, use_me: { index: 7, writing: "Use me", type: "text", arrow: 1, special: "none", gender: "n", lewd: 1, degree: 0, key: "use_me", sprites: ["breasts", "forehead", "left_thigh", "pubic", "right_thigh"] }, hit_me: { index: 8, writing: "Hit me", type: "text", arrow: 0, special: "violence", gender: "n", lewd: 1, degree: 0, key: "hit_me", sprites: ["breasts", "forehead", "left_thigh", "pubic", "right_thigh"] }, cum_rag: { index: 9, writing: "Cum rag", type: "text", arrow: 0, special: "none", gender: "n", lewd: 1, degree: 0, key: "cum_rag", sprites: ["breasts", "forehead", "left_thigh", "pubic", "right_thigh"] }, walking_dildo: { index: 10, writing: "Walking dildo", type: "text", arrow: 0, special: "none", gender: "n", lewd: 1, degree: 0, key: "walking_dildo", sprites: ["breasts", "forehead", "left_thigh", "pubic", "right_thigh"] }, rape_bait: { index: 11, writing: "Rape bait", type: "text", arrow: 0, special: "rape", gender: "n", lewd: 1, degree: 0, key: "rape_bait", sprites: ["breasts", "forehead", "left_thigh", "pubic", "right_thigh"] }, bitch: { index: 12, writing: "Bitch", type: "text", arrow: 0, special: "none", gender: "n", lewd: 1, degree: 0, key: "bitch", sprites: ["breasts", "forehead", "left_thigh", "pubic", "right_thigh"] }, fuck_me: { index: 13, writing: "Fuck me", type: "text", arrow: 1, special: "none", gender: "n", lewd: 1, degree: 0, key: "fuck_me", sprites: ["breasts", "forehead", "left_thigh", "pubic", "right_thigh"] }, hurt_me: { index: 14, writing: "Hurt me", type: "text", arrow: 0, special: "violence", gender: "n", lewd: 1, degree: 0, key: "hurt_me", sprites: ["breasts", "forehead", "left_thigh", "pubic", "right_thigh"] }, enslave_me: { index: 15, writing: "Enslave me", type: "text", arrow: 0, special: "none", gender: "n", lewd: 1, degree: 0 }, treat_me_bad: { index: 16, writing: "Treat me bad", type: "text", arrow: 0, special: "violence", gender: "n", lewd: 1, degree: 0 }, sex_addict: { index: 17, writing: "Sex addict", type: "text", arrow: 0, special: "none", gender: "n", lewd: 1, degree: 0 }, rape_addict: { index: 18, writing: "Rape addict", type: "text", arrow: 0, special: "rape", gender: "n", lewd: 1, degree: 0 }, make_me_squeal: { index: 19, writing: "Make me squeal", type: "text", arrow: 0, special: "violence", gender: "n", lewd: 1, degree: 0 }, make_me_cum: { index: 20, writing: "Make me cum", type: "text", arrow: 0, special: "none", gender: "n", lewd: 1, degree: 0 }, free_sex: { index: 21, writing: "Free sex", type: "text", arrow: 1, special: "none", gender: "n", lewd: 1, degree: 0 }, rapists_toy: { index: 22, writing: "Rapist's toy", type: "text", arrow: 0, special: "rape", gender: "n", lewd: 1, degree: 0 }, no_means_yes: { index: 23, writing: "No means yes", type: "text", arrow: 0, special: "rape", gender: "n", lewd: 1, degree: 0, key: "no_means_yes", sprites: ["breasts", "forehead", "left_thigh", "pubic", "right_thigh"] }, public_toy: { index: 24, writing: "Public toy", type: "text", arrow: 0, special: "rape", gender: "n", lewd: 1, degree: 0, key: "public_toy", sprites: ["breasts", "forehead", "left_thigh", "pubic", "right_thigh"] }, public_property: { index: 25, writing: "Public property", type: "text", arrow: 0, special: "rape", gender: "n", lewd: 1, degree: 0 }, promiscuous: { index: 26, writing: "Promiscuous", type: "text", arrow: 0, special: "sex", gender: "n", lewd: 1, degree: 0 }, town_bicycle: { index: 27, writing: "Town bicycle", type: "text", arrow: 0, special: "sex", gender: "n", lewd: 1, degree: 0 }, public_slut: { index: 28, writing: "Public slut", type: "text", arrow: 0, special: "sex", gender: "n", lewd: 1, degree: 0 }, wanton: { index: 29, writing: "Wanton", type: "text", arrow: 0, special: "sex", gender: "n", lewd: 1, degree: 0 }, insatiable_slut: { index: 30, writing: "Insatiable slut", type: "text", arrow: 0, special: "sex", gender: "n", lewd: 1, degree: 0 }, doggy_slut: { index: 31, writing: "Doggy slut", type: "text", arrow: 0, special: "bestiality", gender: "n", lewd: 1, degree: 0 }, animal: { index: 32, writing: "Animal", type: "text", arrow: 0, special: "bestiality", gender: "n", lewd: 1, degree: 0 }, beast_fucker: { index: 33, writing: "Beast fucker", type: "text", arrow: 0, special: "bestiality", gender: "n", lewd: 1, degree: 0 }, breedable: { index: 34, writing: "Breedable", type: "text", arrow: 0, special: "bestiality", gender: "n", lewd: 1, degree: 0 }, deviant: { index: 35, writing: "Deviant", type: "text", arrow: 0, special: "bestiality", gender: "n", lewd: 1, degree: 0 }, five_pound_whore: { index: 36, writing: "£5 whore", type: "text", arrow: 1, special: "prostitution", gender: "n", lewd: 1, degree: 500, key: "five_pound_whore", sprites: ["breasts", "forehead", "left_thigh", "pubic", "right_thigh"] }, ten_pound_a_pop: { index: 37, writing: "£10 a pop", type: "text", arrow: 1, special: "prostitution", gender: "n", lewd: 1, degree: 1000, key: "ten_pound_a_pop", sprites: ["breasts", "forehead", "left_thigh", "pubic", "right_thigh"] }, twenty_five_pound_per_fuck: { index: 38, writing: "£25 per fuck", type: "text", arrow: 1, special: "prostitution", gender: "n", lewd: 1, degree: 2500, key: "twenty_five_pound_per_fuck", sprites: ["breasts", "forehead", "left_thigh", "pubic", "right_thigh"] }, one_hundred_pound: { index: 39, writing: "£100", type: "text", arrow: 1, special: "prostitution", gender: "n", lewd: 1, degree: 10000, key: "one_hundred_pound", sprites: ["breasts", "forehead", "left_thigh", "pubic", "right_thigh"] }, its_not_rape_if_you_pay_me: { index: 40, writing: "It's not rape if you pay me", type: "text", arrow: 1, special: "prostitution", gender: "n", lewd: 1, degree: 0 }, whore: { index: 41, writing: "Whore", type: "text", arrow: 1, special: "prostitution", gender: "n", lewd: 1, degree: 0 }, slut_for_hire: { index: 42, writing: "Slut for hire", type: "text", arrow: 1, special: "prostitution", gender: "n", lewd: 1, degree: 0 }, body_for_sale: { index: 43, writing: "Body for sale", type: "text", arrow: 1, special: "prostitution", gender: "n", lewd: 1, degree: 0 }, pervert: { index: 44, writing: "Pervert", type: "text", arrow: 0, special: "exhibitionism", gender: "n", lewd: 1, degree: 0 }, attention_whore: { index: 45, writing: "Attention whore", type: "text", arrow: 0, special: "exhibitionism", gender: "n", lewd: 1, degree: 0 }, flaunter: { index: 46, writing: "Flaunter", type: "text", arrow: 0, special: "exhibitionism", gender: "n", lewd: 1, degree: 0 }, object: { index: 47, writing: "Object", type: "text", arrow: 0, special: "exhibitionism", gender: "n", lewd: 1, degree: 0 }, strip_me: { index: 48, writing: "Strip me", type: "text", arrow: 0, special: "exhibitionism", gender: "n", lewd: 1, degree: 0 }, fuckdoll: { index: 49, writing: "Fuckdoll", type: "text", arrow: 0, special: "none", gender: "n", lewd: 1, degree: 0 }, handsome: { index: 50, writing: "Handsome", type: "text", arrow: 0, special: "none", gender: "m", lewd: 1, degree: 0 }, pretty: { index: 51, writing: "Pretty", type: "text", arrow: 0, special: "none", gender: "f", lewd: 1, degree: 0 }, hot: { index: 52, writing: "Hot", type: "text", arrow: 0, special: "none", gender: "n", lewd: 1, degree: 0, key: "hot", sprites: ["breasts", "forehead", "left_thigh", "pubic", "right_thigh"] }, beautiful: { index: 53, writing: "Beautiful", type: "text", arrow: 0, special: "none", gender: "n", lewd: 1, degree: 0 }, cute_boy: { index: 54, writing: "Cute boy", type: "text", arrow: 0, special: "none", gender: "m", lewd: 1, degree: 0, key: "cute_boy", sprites: ["breasts", "forehead", "left_thigh", "pubic", "right_thigh"] }, cute_girl: { index: 55, writing: "Cute girl", type: "text", arrow: 0, special: "none", gender: "f", lewd: 1, degree: 0, key: "cute_girl", sprites: ["breasts", "forehead", "left_thigh", "pubic", "right_thigh"] }, stud: { index: 56, writing: "Stud", type: "text", arrow: 0, special: "none", gender: "n", lewd: 1, degree: 0 }, beauty: { index: 57, writing: "Beauty", type: "text", arrow: 0, special: "none", gender: "f", lewd: 1, degree: 0 }, defiant_whelp: { index: 58, writing: "Defiant whelp", type: "text", arrow: 0, special: "combat", gender: "n", lewd: 1, degree: 0 }, insolent: { index: 59, writing: "Insolent", type: "text", arrow: 0, special: "combat", gender: "n", lewd: 1, degree: 0 }, brat: { index: 60, writing: "Brat", type: "text", arrow: 0, special: "combat", gender: "n", lewd: 1, degree: 0 }, punish_me: { index: 61, writing: "Punish me", type: "text", arrow: 0, special: "combat", gender: "n", lewd: 1, degree: 0 }, naughty: { index: 62, writing: "Naughty", type: "text", arrow: 0, special: "combat", gender: "n", lewd: 1, degree: 0 }, whitneys_slut: { index: 63, writing: "Whitney's slut", type: "text", arrow: 0, special: "Whitney", gender: "f", lewd: 1, degree: 0, featSkip: true }, whitneys_boyslut: { index: 64, writing: "Whitney's boyslut", type: "text", arrow: 0, special: "Whitney", gender: "m", lewd: 1, degree: 0, featSkip: true }, property_of_whitney: { index: 65, writing: "Property of Whitney", type: "text", arrow: 0, special: "Whitney", gender: "n", lewd: 1, degree: 0, featSkip: true }, whitneys_toy: { index: 66, writing: "Whitney's toy", type: "text", arrow: 0, special: "Whitney", gender: "n", lewd: 1, degree: 0, featSkip: true }, unicorn: { index: 67, writing: "unicorn", type: "object", arrow: 0, special: "none", gender: "f", lewd: 0, degree: 0 }, one_six_three: { index: 68, writing: "163", type: "text", arrow: 0, special: "none", gender: "n", lewd: 0, degree: 0, featSkip: true }, insatiable: { index: 69, writing: "Insatiable", type: "text", arrow: 0, special: "none", gender: "n", lewd: 1, degree: 0 }, stupid_whore: { index: 70, writing: "Stupid whore", type: "text", arrow: 0, special: "none", gender: "n", lewd: 1, degree: 0 }, heart: { index: 71, writing: "heart", type: "object", arrow: 0, special: "none", gender: "f", lewd: 0, degree: 0 }, paw_print: { index: 72, writing: "paw print", type: "object", arrow: 0, special: "bestiality", gender: "n", lewd: 0, degree: 0 }, flower: { index: 73, writing: "flower", type: "object", arrow: 0, special: "none", gender: "f", lewd: 0, degree: 0 }, butterfly: { index: 74, writing: "butterfly", type: "object", arrow: 0, special: "none", gender: "f", lewd: 0, degree: 0 }, star: { index: 75, writing: "star", type: "object", arrow: 0, special: "none", gender: "f", lewd: 0, degree: 0 }, skull: { index: 76, writing: "skull", type: "object", arrow: 0, special: "none", gender: "m", lewd: 0, degree: 0 }, cross: { index: 77, writing: "cross", type: "object", arrow: 0, special: "holy", gender: "n", lewd: 0, degree: 0 }, flame: { index: 78, writing: "flame", type: "object", arrow: 0, special: "none", gender: "m", lewd: 0, degree: 0 }, cattle_brand: { index: 79, writing: "cattle brand", type: "object", arrow: 0, special: "cattle", gender: "n", lewd: 1, degree: 0 }, remys_cattle: { index: 80, writing: "Remy's cattle", type: "text", arrow: 0, special: "cattle", gender: "n", lewd: 1, degree: 0 }, remys_cow: { index: 81, writing: "Remy's cow", type: "text", arrow: 0, special: "cattle", gender: "f", lewd: 1, degree: 0 }, remys_bull: { index: 82, writing: "Remy's bull", type: "text", arrow: 0, special: "cattle", gender: "m", lewd: 1, degree: 0 }, dairy_cow: { index: 83, writing: "Dairy cow", type: "text", arrow: 0, special: "cattle", gender: "n", lewd: 1, degree: 0 }, milk_me: { index: 84, writing: "Milk me", type: "text", arrow: 0, special: "cattle", gender: "n", lewd: 1, degree: 0 }, daddy_issues: { index: 85, writing: "Daddy issues", type: "text", arrow: 0, special: "none", gender: "n", lewd: 1, degree: 0 }, mummy_issues: { index: 86, writing: "Mummy issues", type: "text", arrow: 0, special: "none", gender: "n", lewd: 1, degree: 0 }, orphan: { index: 87, writing: "Orphan", type: "text", arrow: 0, special: "none", gender: "n", lewd: 0, degree: 0 }, prostitute: { index: 88, writing: "Prostitute", type: "text", arrow: 0, special: "prostitution", gender: "n", lewd: 1, degree: 0 }, ask_to_see_me_naked: { index: 89, writing: "Ask to see me naked", type: "text", arrow: 0, special: "exhibitionism", gender: "n", lewd: 1, degree: 0 }, trashy: { index: 90, writing: "Trashy", type: "text", arrow: 0, special: "none", gender: "n", lewd: 1, degree: 0 }, cocksucker: { index: 91, writing: "Cocksucker", type: "text", arrow: 0, special: "none", gender: "n", lewd: 1, degree: 0 }, side_piece: { index: 92, writing: "Side piece", type: "text", arrow: 0, special: "none", gender: "n", lewd: 1, degree: 0 }, dtf: { index: 93, writing: "D.T.F.", type: "text", arrow: 0, special: "sex", gender: "n", lewd: 1, degree: 0 }, size_queen: { index: 94, writing: "Size queen", type: "text", arrow: 0, special: "none", gender: "f", lewd: 1, degree: 0 }, abuse_me: { index: 95, writing: "Abuse me", type: "text", arrow: 0, special: "violence", gender: "n", lewd: 1, degree: 0 }, strugglefucker: { index: 96, writing: "Strugglefucker", type: "text", arrow: 0, special: "violence", gender: "n", lewd: 1, degree: 0 }, slam_pig: { index: 97, writing: "Slam pig", type: "text", arrow: 0, special: "none", gender: "n", lewd: 1, degree: 0 }, cum_dump: { index: 98, writing: "Cum dump", type: "text", arrow: 0, special: "none", gender: "n", lewd: 1, degree: 0 }, submissive: { index: 99, writing: "Submissive", type: "text", arrow: 0, special: "none", gender: "n", lewd: 1, degree: 0 }, pet: { index: 100, writing: "Pet", type: "text", arrow: 0, special: "none", gender: "n", lewd: 1, degree: 0 }, skank: { index: 101, writing: "Skank", type: "text", arrow: 0, special: "none", gender: "n", lewd: 1, degree: 0 }, gutter_whore: { index: 102, writing: "Gutter whore", type: "text", arrow: 0, special: "none", gender: "n", lewd: 1, degree: 0 }, stupid_ho: { index: 103, writing: "Stupid ho", type: "text", arrow: 0, special: "none", gender: "n", lewd: 1, degree: 0 }, asking_for_it: { index: 104, writing: "Asking for it", type: "text", arrow: 0, special: "rape", gender: "n", lewd: 1, degree: 0 }, cock_tease: { index: 105, writing: "Cock tease", type: "text", arrow: 0, special: "none", gender: "n", lewd: 1, degree: 0 }, horse_cock_only: { index: 106, writing: "Horse cock only", type: "text", arrow: 0, special: "bestiality", gender: "n", lewd: 1, degree: 0 }, knots_only: { index: 107, writing: "Knots only", type: "text", arrow: 0, special: "bestiality", gender: "n", lewd: 1, degree: 0 }, barn_slut: { index: 108, writing: "Barn slut", type: "text", arrow: 0, special: "bestiality", gender: "n", lewd: 1, degree: 0 }, breeding_stud: { index: 109, writing: "Breeding stud", type: "text", arrow: 0, special: "bestiality", gender: "m", lewd: 1, degree: 0 }, breeding_mare: { index: 110, writing: "Breeding mare", type: "text", arrow: 0, special: "bestiality", gender: "f", lewd: 1, degree: 0 }, cats_toy: { index: 111, writing: "Cat's toy", type: "text", arrow: 0, special: "bestiality", gender: "n", lewd: 1, degree: 0 }, cat_fucker: { index: 112, writing: "Cat fucker", type: "text", arrow: 0, special: "bestiality", gender: "n", lewd: 1, degree: 0 }, cat_slut: { index: 113, writing: "Cat's slut", type: "text", arrow: 0, special: "bestiality", gender: "n", lewd: 1, degree: 0 }, criminal_scum: { index: 114, writing: "Criminal scum", type: "text", arrow: 0, special: "criminal", gender: "n", lewd: 1, degree: 0 }, criminal: { index: 115, writing: "Criminal", type: "text", arrow: 0, special: "criminal", gender: "n", lewd: 1, degree: 0 }, law_breaker: { index: 116, writing: "Law breaker", type: "text", arrow: 0, special: "criminal", gender: "n", lewd: 1, degree: 0 }, criminal_whore: { index: 117, writing: "Criminal whore", type: "text", arrow: 0, special: "criminal", gender: "n", lewd: 1, degree: 0 }, in_debt_to_society: { index: 118, writing: "In debt to society", type: "text", arrow: 1, special: "criminal", gender: "n", lewd: 1, degree: 0 }, deserves_prison: { index: 119, writing: "Deserves prison", type: "text", arrow: 0, special: "criminal", gender: "n", lewd: 1, degree: 0 }, threat_to_society: { index: 120, writing: "Threat to society", type: "text", arrow: 0, special: "criminal", gender: "n", lewd: 1, degree: 0 }, dumb_bitch: { index: 121, writing: "Dumb bitch", type: "text", arrow: 0, special: "none", gender: "n", lewd: 1, degree: 0 }, kick_me: { index: 122, writing: "Kick me", type: "text", arrow: 0, special: "violence", gender: "n", lewd: 1, degree: 0 }, buttslut: { index: 123, writing: "Buttslut", type: "text", arrow: 0, special: "none", gender: "n", lewd: 1, degree: 0 }, anal_whore: { index: 124, writing: "Anal whore", type: "text", arrow: 0, special: "none", gender: "n", lewd: 1, degree: 0 }, public_pet: { index: 125, writing: "Public pet", type: "text", arrow: 0, special: "none", gender: "n", lewd: 1, degree: 0 }, oh_no: { index: 126, writing: "Oh no", type: "text", arrow: 0, special: "violence", gender: "n", lewd: 1, degree: 0 }, robins_protector: { index: 127, writing: "Robin's Protector", type: "text", arrow: 0, special: "Robin", gender: "n", lewd: 0, degree: 0, featSkip: true }, robin_and_i: { index: 128, writing: "Robin & I", type: "text", arrow: 0, special: "Robin", gender: "n", lewd: 0, degree: 0, featSkip: true, key: "robin_and_i", sprites: ["breasts", "forehead", "left_thigh", "pubic", "right_thigh"] }, the_orphan_lover: { index: 129, writing: "The Orphan Lover", type: "text", arrow: 0, special: "Robin", gender: "n", lewd: 0, degree: 0, featSkip: true }, robins_boyfriend: { index: 130, writing: "Robin's Boyfriend", type: "text", arrow: 0, special: "Robin", gender: "m", lewd: 0, degree: 0, featSkip: true, key: "robins_boyfriend", sprites: ["breasts", "forehead", "left_thigh", "pubic", "right_thigh"] }, robins_girlfriend: { index: 131, writing: "Robin's Girlfriend", type: "text", arrow: 0, special: "Robin", gender: "f", lewd: 0, degree: 0, featSkip: true, key: "robins_girlfriend", sprites: ["breasts", "forehead", "left_thigh", "pubic", "right_thigh"] }, whitneys_pet: { index: 132, writing: "Whitney's Pet", type: "text", arrow: 0, special: "Whitney", gender: "n", lewd: 1, degree: 0, featSkip: true, key: "whitneys_pet", sprites: ["breasts", "forehead", "left_thigh", "pubic", "right_thigh"] }, kylars_obsession: { index: 133, writing: "Kylar's Obsession", type: "text", arrow: 0, special: "Kylar", gender: "n", lewd: 0, degree: 0, featSkip: true }, love_kylar_forever: { index: 134, writing: "Love Kylar Forever", type: "text", arrow: 0, special: "Kylar", gender: "n", lewd: 0, degree: 0, featSkip: true }, reserved_for_kylar: { index: 135, writing: "Reserved for Kylar", type: "text", arrow: 1, special: "Kylar", gender: "n", lewd: 1, degree: 0, featSkip: true }, just_kylar: { index: 136, writing: "Just Kylar", type: "text", arrow: 0, special: "Kylar", gender: "n", lewd: 0, degree: 0, featSkip: true }, edens_companion: { index: 137, writing: "Eden's Companion", type: "text", arrow: 0, special: "Eden", gender: "n", lewd: 0, degree: 0, featSkip: true }, hunter_and_prey: { index: 138, writing: "Hunter and Prey", type: "text", arrow: 0, special: "Eden", gender: "n", lewd: 1, degree: 0, featSkip: true }, its_lonely_in_the_woods: { index: 139, writing: "It's Lonely in the Woods", type: "text", arrow: 0, special: "Eden", gender: "n", lewd: 0, degree: 0, featSkip: true }, something_is_hunting_you: { index: 140, writing: "Something is Hunting You", type: "text", arrow: 0, special: "Eden", gender: "n", lewd: 1, degree: 0, featSkip: true }, averys_trophy: { index: 141, writing: "Avery's Trophy", type: "text", arrow: 0, special: "Avery", gender: "n", lewd: 0, degree: 0, featSkip: true }, uptown_boy: { index: 142, writing: "Uptown Boy", type: "text", arrow: 0, special: "Avery", gender: "m", lewd: 0, degree: 0, featSkip: true }, uptown_girl: { index: 143, writing: "Uptown Girl", type: "text", arrow: 0, special: "Avery", gender: "f", Lewd: 0, degree: 0, featSkip: true }, averys_monopoly: { index: 144, writing: "Avery's Monopoly", type: "text", arrow: 0, special: "Avery", gender: "n", lewd: 1, degree: 0, featSkip: true }, endearing: { index: 145, writing: "Endearing", type: "text", arrow: 0, special: "Avery", gender: "n", lewd: 1, degree: 0, featSkip: true }, alexs_partner: { index: 146, writing: "Alex's Partner", type: "text", arrow: 0, special: "Alex", gender: "n", lewd: 0, degree: 0, featSkip: true }, sunrise_to_sunset: { index: 147, writing: "Sunrise to Sunset", type: "text", arrow: 0, special: "Alex", gender: "n", lewd: 0, degree: 0, featSkip: true }, hay_baler: { index: 148, writing: "Hay Baler", type: "text", arrow: 0, special: "Alex", gender: "n", lewd: 0, degree: 0, featSkip: true }, cowboy: { index: 149, writing: "Cowboy", type: "text", arrow: 0, special: "Alex", gender: "m", lewd: 0, degree: 0, featSkip: true }, cowgirl: { index: 150, writing: "Cowgirl", type: "text", arrow: 0, special: "Alex", gender: "f", lewd: 0, degree: 0, featSkip: true }, sydneys_savior: { index: 151, writing: "Sydney's Saviour", type: "text", arrow: 0, special: "Sydney", gender: "n", lewd: 1, degree: 0, featSkip: true }, bound_to_sydney: { index: 152, writing: "Bound to Sydney", type: "text", arrow: 0, special: "Sydney", gender: "n", lewd: 1, degree: 0, featSkip: true }, sydney_makes_me_smile: { index: 153, writing: "Sydney makes me :)", type: "text", arrow: 0, special: "Sydney", gender: "n", lewd: 0, degree: 0, featSkip: true }, purest_love: { index: 154, writing: "Purest Love", type: "text", arrow: 0, special: "Sydney", gender: "n", lewd: 1, degree: 0, featSkip: true }, lusty_sinners: { index: 155, writing: "Lusty Sinners", type: "text", arrow: 0, special: "Sydney", gender: "n", lewd: 1, degree: 0, featSkip: true }, black_wolfs_bitch: { index: 156, writing: "Black Wolf's Bitch", type: "text", arrow: 0, special: "Black Wolf", gender: "n", lewd: 1, degree: 0, featSkip: true }, all_for_my_alpha: { index: 157, writing: "All for my Alpha", type: "text", arrow: 0, special: "Black Wolf", gender: "n", lewd: 1, degree: 0, featSkip: true }, leader_of_the_pack: { index: 158, writing: "Leader of the Pack", type: "text", arrow: 0, special: "Black Wolf", gender: "n", lewd: 0, degree: 0, featSkip: true }, runs_with_wolves: { index: 159, writing: "Runs with Wolves", type: "text", arrow: 0, special: "Black Wolf", gender: "n", lewd: 1, degree: 0, featSkip: true }, great_hawks_spouse: { index: 160, writing: "Great Hawk's Spouse", type: "text", arrow: 0, special: "Great Hawk", gender: "n", lewd: 1, degree: 0, featSkip: true }, soaring_with_love: { index: 161, writing: "Soaring with Love", type: "text", arrow: 0, special: "Great Hawk", gender: "n", lewd: 0, degree: 0, featSkip: true }, terrors_mate: { index: 162, writing: "Terror's Mate", type: "text", arrow: 0, special: "Great Hawk", gender: "n", lewd: 1, degree: 0, featSkip: true }, free_bird: { index: 163, writing: "Free Bird", type: "text", arrow: 0, special: "Great Hawk", gender: "n", lewd: 0, degree: 0, featSkip: true }, book_criminal_frown: { index: 164, writing: "Book Criminal >:(", type: "text", arrow: 0, special: "Sydney", gender: "n", lewd: 0, degree: 0, featSkip: true, key: "book_criminal_frown", sprites: ["forehead", "left_cheek", "right_cheek"] }, book_criminal_heart: { index: 165, writing: "Book Criminal <3", type: "text", arrow: 0, special: "Sydney", gender: "n", lewd: 1, degree: 0, featSkip: true, key: "book_criminal_heart", sprites: ["forehead", "left_cheek", "right_cheek"] }, best_friend: { index: 166, writing: "Best Friend", type: "text", arrow: 0, special: "Sydney", gender: "n", lewd: 0, degree: 0, featSkip: true }, interesting: { index: 167, writing: "Interesting", type: "text", arrow: 0, special: "Sydney", gender: "n", lewd: 0, degree: 0, featSkip: true }, inspiring: { index: 168, writing: "Inspiring", type: "text", arrow: 0, special: "Sydney", gender: "n", lewd: 0, degree: 0, featSkip: true }, study_fiend: { index: 169, writing: "Study Fiend", type: "text", arrow: 0, special: "Sydney", gender: "n", lewd: 0, degree: 0, featSkip: true }, lazybones: { index: 170, writing: "Lazybones", type: "text", arrow: 0, special: "Sydney", gender: "n", lewd: 0, degree: 0, featSkip: true }, copycat: { index: 171, writing: "Copycat >:(", type: "text", arrow: 0, special: "Sydney", gender: "n", lewd: 0, degree: 0, featSkip: true }, attractive_force: { index: 172, writing: "Attractive force = 8.19 × 10-", type: "text", arrow: 0, special: "Sydney", gender: "n", lewd: 1, degree: 0, featSkip: true }, reproductive_system: { index: 173, writing: "Reproductive System", type: "text", arrow: 0, special: "Sydney", gender: "n", lewd: 1, degree: 0, featSkip: true }, breeding_cycle: { index: 174, writing: "The Breeding Cycle of-", type: "text", arrow: 0, special: "Sydney", gender: "n", lewd: 1, degree: 0, featSkip: true }, water_tables: { index: 175, writing: "Water Tables", type: "text", arrow: 0, special: "Sydney", gender: "n", lewd: 0, degree: 0, featSkip: true }, cytoplasm: { index: 176, writing: "Cytoplasm", type: "text", arrow: 0, special: "Sydney", gender: "n", lewd: 0, degree: 0, featSkip: true }, atomic_weight: { index: 177, writing: "Atomic Weight 196.96657", type: "text", arrow: 0, special: "Sydney", gender: "n", lewd: 0, degree: 0, featSkip: true }, stupid_little_fucking_sextease_bitch_fucker: { index: 178, writing: "Stupid little fucking sextease bitch fucker", type: "text", arrow: 0, special: "Sydney", gender: "n", lewd: 1, degree: 0, featSkip: true }, sleepyhead: { index: 179, writing: "Sleepyhead", type: "text", arrow: 0, special: "Sydney", gender: "n", lewd: 0, degree: 0, featSkip: true }, sinner: { index: 180, writing: "Sinner", type: "text", arrow: 0, special: "Sydney", gender: "n", lewd: 0, degree: 0, featSkip: true, key: "sinner", sprites: ["breasts", "forehead", "left_thigh", "pubic", "right_thigh"] }, brood_mother: { index: 181, writing: "Brood mother", type: "text", arrow: 0, special: "pregnancy", gender: "f", lewd: 1, degree: 0 }, inseminate_me: { index: 182, writing: "Inseminate me", type: "text", arrow: 0, special: "pregnancy", gender: "f", lewd: 1, degree: 0 }, impregnate_me: { index: 183, writing: "Impregnate me", type: "text", arrow: 0, special: "pregnancy", gender: "f", lewd: 1, degree: 0 }, pregnancy_slut: { index: 184, writing: "Pregnancy slut", type: "text", arrow: 0, special: "pregnancy", gender: "f", lewd: 1, degree: 0 }, breeding_ground: { index: 185, writing: "Breeding ground", type: "text", arrow: 0, special: "pregnancy", gender: "f", lewd: 1, degree: 0 }, seedbed: { index: 186, writing: "Seedbed", type: "text", arrow: 0, special: "pregnancy", gender: "f", lewd: 1, degree: 0 }, fertile: { index: 187, writing: "Fertile", type: "text", arrow: 0, special: "pregnancy", gender: "f", lewd: 1, degree: 0 }, fill_me_up: { index: 188, writing: "Fill me up", type: "text", arrow: 0, special: "pregnancy", gender: "f", lewd: 1, degree: 0 }, homewrecker: { index: 189, writing: "Homewrecker", type: "text", arrow: 0, special: "impreg", gender: "m", lewd: 1, degree: 0 }, sire: { index: 190, writing: "Sire", type: "text", arrow: 0, special: "impreg", gender: "m", lewd: 1, degree: 0 }, sperm_donor: { index: 191, writing: "Sperm donor", type: "text", arrow: 0, special: "impreg", gender: "m", lewd: 1, degree: 0 }, stallion: { index: 192, writing: "Stallion", type: "text", arrow: 0, special: "impreg", gender: "m", lewd: 1, degree: 0 }, condom_breaker: { index: 193, writing: "Condom breaker", type: "text", arrow: 0, special: "impreg", gender: "m", lewd: 1, degree: 0 }, seed_sower: { index: 194, writing: "Seed sower", type: "text", arrow: 0, special: "impreg", gender: "m", lewd: 1, degree: 0 }, virile: { index: 195, writing: "Virile", type: "text", arrow: 0, special: "impreg", gender: "m", lewd: 1, degree: 0 }, womb_filler: { index: 196, writing: "Womb filler", type: "text", arrow: 0, special: "impreg", gender: "m", lewd: 1, degree: 0 }, square: { index: 197, writing: "square", type: "object", arrow: 0, special: "islander", gender: "n", lewd: 0, degree: 0 }, triangle: { index: 198, writing: "triangle", type: "object", arrow: 0, special: "islander", gender: "n", lewd: 0, degree: 0 }, circle: { index: 199, writing: "circle", type: "object", arrow: 0, special: "islander", gender: "n", lewd: 0, degree: 0 }, triquetra: { index: 200, writing: "triquetra", type: "object", arrow: 0, special: "esoteric", gender: "n", lewd: 0, degree: 0 }, witchs_ward: { index: 201, writing: "Witch's Ward", type: "text", arrow: 0, special: "Gwylan", gender: "n", lewd: 0, degree: 0, featSkip: true }, witchs_familiar: { index: 202, writing: "Witch's Familiar", type: "text", arrow: 0, special: "Gwylan", gender: "n", lewd: 1, degree: 0, featSkip: true }, gwylans_treasure: { index: 203, writing: "Gwylan's Treasure", type: "text", arrow: 0, special: "Gwylan", gender: "n", lewd: 0, degree: 0, featSkip: true }, gwylans_apprentice: { index: 204, writing: "Gwylan's Apprentice", type: "text", arrow: 0, special: "Gwylan", gender: "n", lewd: 0, degree: 0, featSkip: true }, forever_yearning: { index: 205, writing: "Forever Yearning", type: "text", arrow: 0, special: "Gwylan", gender: "n", lewd: 1, degree: 0, featSkip: true } }>> <<set setup.bodywriting_namebyindex to []>> <<for _label, _value range setup.bodywriting>> <<set setup.bodywriting_namebyindex[_value.index] to _label>> <</for>> <</widget>><<widget "bodywriting_init">> <<set $skin to {}>> <<set $bodypart_number to 12>> <<for _active_bodypart range setup.bodyparts>> <<set $skin[_active_bodypart] to {}>> <</for>> <</widget>> <<widget "add_bodywriting">>/*First argument is body part. Second is the tattoo/bodywriting. Third is the tool used.*/ <<if typeof _args[1] === "object">> <<set $skin[_args[0]] to clone(_args[1])>> <<elseif typeof _args[1] === "number">> <<set $skin[_args[0]] to clone(setup.bodywriting[setup.bodywriting_namebyindex[_args[1]]])>> <<else>> <<set $skin[_args[0]] to clone(setup.bodywriting[_args[1]])>> <</if>> <<set $skin[_args[0]].pen to _args[2]>> <</widget>> <<widget "bodywriting_npc_bodypart">>/*Argument is the hand used.*/ <<if $walltype is 0 or $walltype is "front">> <<set _bodypart to "forehead">> <</if>> <<if $walltype is "front">> <<set $_parts to setup.bodyparts.slice(0,6)>> <<elseif $walltype isnot 0>> <<set $_parts to setup.bodyparts.slice(6)>> <<else>> <<set $_parts to setup.bodyparts>> <</if>> <<for _i to 0; _i lt 10; _i++>> <<rng $bodypart_number>> <<switch $rng>> <<case 1>> <<if $_parts.includes("forehead")>> <<set _bodypart to "forehead">> <<break>> <</if>> <<case 2>> <<if !$worn.face.type.includes("mask") and $_parts.includes("left_cheek")>> <<set _bodypart to "left_cheek">> <<if not $skin[_bodypart].pen>> <<break>> <</if>> <</if>> <<case 3>> <<if !$worn.face.type.includes("mask") and $_parts.includes("right_cheek")>> <<set _bodypart to "right_cheek">> <<if not $skin[_bodypart].pen>> <<break>> <</if>> <</if>> <<case 4>> <<if ($worn.upper.exposed gte 2 or $worn.upper.open is 1) and ($worn.under_upper.exposed gte 1 or $worn.under_open is 1) and $_parts.includes("left_shoulder")>> <<set _bodypart to "left_shoulder">> <<if not $skin[_bodypart].pen>> <<break>> <</if>> <</if>> <<case 5>> <<if ($worn.upper.exposed gte 2 or $worn.upper.open is 1) and ($worn.under_upper.exposed gte 1 or $worn.under_open is 1) and $_parts.includes("right_shoulder")>> <<set _bodypart to "right_shoulder">> <<if not $skin[_bodypart].pen>> <<break>> <</if>> <</if>> <<case 6>> <<if $worn.upper.exposed gte 2 and ($worn.under_upper.exposed gte 1 or $worn.under_upper.open is 1) and $_parts.includes("breasts")>> <<set _bodypart to "breasts">> <<if not $skin[_bodypart].pen>> <<break>> <</if>> <</if>> <<case 7>> <<if ($worn.upper.exposed gte 2 or $worn.upper.state isnot "waist") and ($worn.under_upper.exposed gte 1 or $worn.under_upper.state isnot "waist") and $_parts.includes("back")>> <<set _bodypart to "back">> <<if not $skin[_bodypart].pen>> <<break>> <</if>> <</if>> <<case 8>> <<if ($worn.lower.exposed gte 2 or $worn.lower.anus_exposed gte 1) and ($worn.under_lower.exposed gte 1 or !$worn.under_lower.type.includes("covered") and !$worn.legs.type.includes("covered")) and $_parts.includes("left_bottom")>> <<set _bodypart to "left_bottom">> <<if not $skin[_bodypart].pen>> <<break>> <</if>> <</if>> <<case 9>> <<if ($worn.lower.exposed gte 2 or $worn.lower.anus_exposed gte 1) and ($worn.under_lower.exposed gte 1 or !$worn.under_lower.type.includes("covered") and !$worn.legs.type.includes("covered")) and $_parts.includes("right_bottom")>> <<set _bodypart to "right_bottom">> <<if not $skin[_bodypart].pen>> <<break>> <</if>> <</if>> <<case 10>> <<if $worn.lower.exposed gte 1 and ($worn.under_lower.exposed gte 1 or !$worn.under_lower.type.includes("covered") and !$worn.legs.type.includes("covered")) and $_parts.includes("pubic")>> <<set _bodypart to "pubic">> <<if not $skin[_bodypart].pen>> <<break>> <</if>> <</if>> <<case 11>> <<if $worn.lower.vagina_exposed gte 1 and !$worn.under_lower.type.includes("covered") and !$worn.legs.type.includes("covered") and $_parts.includes("left_thigh")>> <<set _bodypart to "left_thigh">> <<if not $skin[_bodypart].pen>> <<break>> <</if>> <</if>> <<case 12>> <<if $worn.lower.vagina_exposed gte 1 and !$worn.under_lower.type.includes("covered") and !$worn.legs.type.includes("covered") and $_parts.includes("right_thigh")>> <<set _bodypart to "right_thigh">> <<if not $skin[_bodypart].pen>> <<break>> <</if>> <</if>> <</switch>> <</for>> <<if !_bodypart>> <<set _bodypart to "failure">> <</if>> <<if _args[0] is "left">> <<for _bwn to 0; _bwn lt $enemynomax; _bwn++>> <<if _n isnot _bwn and ($NPCList[_bwn].lefthand is "pen" + "_" + _bodypart or $NPCList[_bwn].righthand is "pen" + "_" + _bodypart)>> <<He>> tries to scrawl on your <<bodypart _bodypart>> with <<his>> <<print $NPCList[_n].lefttool>>, <span class="blue">but <<his>> colleague shoves <<him>> out of the way.</span> <<set $NPCList[_n].lefthand to 0>> <<set _bwn_stop to 1>> <<break>> <</if>> <</for>> <<else>> <<for _bwn to 0; _bwn lt $enemynomax; _bwn++>> <<if _n isnot _bwn and ($NPCList[_bwn].lefthand is "pen" + "_" + _bodypart or $NPCList[_bwn].righthand is "pen" + "_" + _bodypart)>> <<He>> tries to scrawl on your <<bodypart _bodypart>> with <<his>> <<print $NPCList[_n].righttool>>, <span class="blue">but <<his>> colleague shoves <<him>> out of the way.</span> <<set $NPCList[_n].righthand to 0>> <<set _bwn_stop to 1>> <<break>> <</if>> <</for>> <</if>> <<if _bwn_stop isnot 1>> <<if _bodypart is "failure">> <<He>> examines your body, not seeing anywhere <<he>> can access, <<brat 1>> <<if _args[0] is "left">> <<set $NPCList[_n].lefthand to 0>> <span class="blue">and discards the <<print $NPCList[_n].lefttool>> in frustration.</span> <<else>> <<set $NPCList[_n].righthand to 0>> <span class="blue">and discards the <<print $NPCList[_n].righttool>> in frustration.</span> <</if>> <<elseif $skin[_bodypart].pen is "tattoo">> <<He>> tries to rub the tattoo off your <<bodypart _bodypart>>. <<brat 1>> <<if _args[0] is "left">> <<set $NPCList[_n].lefthand to 0>> <span class="blue"><<He>> discards the <<print $NPCList[_n].lefttool>> in frustration.</span> <<else>> <<set $NPCList[_n].righthand to 0>> <span class="blue"><<He>> discards the <<print $NPCList[_n].righttool>> in frustration.</span> <</if>> <<elseif $skin[_bodypart].pen is "brand">> <<He>> tries to rub the brand off your <<bodypart _bodypart>>. <<brat 1>> <<if _args[0] is "left">> <<set $NPCList[_n].lefthand to 0>> <span class="blue"><<He>> discards the <<print $NPCList[_n].lefttool>> in frustration.</span> <<else>> <<set $NPCList[_n].righthand to 0>> <span class="blue"><<He>> discards the <<print $NPCList[_n].righttool>> in frustration.</span> <</if>> <<elseif $skin[_bodypart].pen is "magic">> <<He>> tries to rub the seal off your <<bodypart _bodypart>>. <<brat 1>> <<if _args[0] is "left">> <<set $NPCList[_n].lefthand to 0>> <span class="blue"><<He>> discards the <<print $NPCList[_n].lefttool>> in frustration.</span> <<else>> <<set $NPCList[_n].righthand to 0>> <span class="blue"><<He>> discards the <<print $NPCList[_n].righttool>> in frustration.</span> <</if>> <<elseif $skin[_bodypart].pen is "marker">> <<He>> tries to rub the permanent ink off your <<bodypart _bodypart>>. <<brat 1>> <<if _args[0] is "left">> <<set $NPCList[_n].lefthand to 0>> <span class="blue"><<He>> discards the <<print $NPCList[_n].lefttool>> in frustration.</span> <<else>> <<set $NPCList[_n].righthand to 0>> <span class="blue"><<He>> discards the <<print $NPCList[_n].righttool>> in frustration.</span> <</if>> <<elseif $skin[_bodypart].pen is "pen">> <<He>> looks thoughtful as <span class="lblue"><<he>> rubs off the ink scrawled on your <<bodypart _bodypart>>.</span> <<bodywriting_clear _bodypart>> <<if _args[0] is "left">> <<set $NPCList[_n].lefthand to "pen" + "_" + _bodypart>> <<else>> <<set $NPCList[_n].righthand to "pen" + "_" + _bodypart>> <</if>> <<elseif $skin[_bodypart].pen is "lipstick">> <<He>> looks thoughtful as <span class="lblue"><<he>> rubs off the lipstick scrawled on your <<bodypart _bodypart>>.</span> <<bodywriting_clear _bodypart>> <<if _args[0] is "left">> <<set $NPCList[_n].lefthand to "pen" + "_" + _bodypart>> <<else>> <<set $NPCList[_n].righthand to "pen" + "_" + _bodypart>> <</if>> <<elseif $skin[_bodypart].pen is "mud">> <<He>> looks thoughtful as <span class="lblue"><<he>> rubs off the mud scrawled on your <<bodypart _bodypart>>.</span> <<bodywriting_clear _bodypart>> <<if _args[0] is "left">> <<set $NPCList[_n].lefthand to "pen" + "_" + _bodypart>> <<else>> <<set $NPCList[_n].righthand to "pen" + "_" + _bodypart>> <</if>> <<else>> <<if _args[0] is "left">> <<set $NPCList[_n].lefthand to "pen" + "_" + _bodypart>> <<He>> looks thoughtful as <<he>> hovers the <<print $NPCList[_n].lefttool>> over your <<bodypart _bodypart>>. <<else>> <<set $NPCList[_n].righthand to "pen" + "_" + _bodypart>> <<He>> looks thoughtful as <<he>> hovers the <<print $NPCList[_n].righttool>> over your <<bodypart _bodypart>>. <</if>> <</if>> <</if>> <<unset _bwn_stop>> <</widget>> <<widget "bodywriting_npc">> /*First arg: bodypart Second arg: tool */ <<rng>> <<if $npc[$npcrow.indexOf(_n)] is "Whitney">> <<bodywriting_npc_whitney _args[0] _args[1]>> <<elseif $npc[$npcrow.indexOf(_n)] is "Kylar">> <<bodywriting_npc_kylar _args[0] _args[1]>> <<elseif $npc[$npcrow.indexOf(_n)] is "Sydney">> <<bodywriting_npc_sydney _args[0] _args[1]>> <<elseif $npc[$npcrow.indexOf(_n)] is "Gwylan">> <<bodywriting_npc_gwylan _args[0] _args[1]>> <<elseif $NPCList[_n].type is "plant">> <<bodywriting_npc_picture _args[0] _args[1]>> <<elseif $role is "islander">> <<bodywriting_npc_shape _args[0] _args[1]>> <<elseif $rng gte 51>> <<bodywriting_npc_special _args[0] _args[1]>> <<else>> <<bodywriting_npc_normal _args[0] _args[1]>> <</if>> <</widget>> <<widget "bodywriting_npc_whitney">> <<rng 3>> <<switch $rng>> <<case 1>> <<if $player.gender_appearance is "m">> <<add_bodywriting _args[0] whitneys_boyslut _args[1]>> <<else>> <<add_bodywriting _args[0] whitneys_slut _args[1]>> <</if>> <<case 2>> <<add_bodywriting _args[0] property_of_whitney _args[1]>> <<case 3>> <<add_bodywriting _args[0] whitneys_toy _args[1]>> <</switch>> <<bodywriting_finalisation _args[0]>> <</widget>> <<widget "bodywriting_npc_kylar">> <<rng 3>> <<switch $rng>> <<case 1>> <<add_bodywriting _args[0] love_kylar_forever _args[1]>> <<case 2>> <<add_bodywriting _args[0] reserved_for_kylar _args[1]>> <<case 3>> <<add_bodywriting _args[0] just_kylar _args[1]>> <</switch>> <<bodywriting_finalisation _args[0]>> <</widget>> <<widget "bodywriting_npc_sydney">> <<if $consensual is 1 or $combat is 0>> <<rng 6>> <<switch $rng>> <<case 1>> <<if C.npc.Sydney.purity gte 1>> <<add_bodywriting _args[0] purest_love _args[1]>> <<else>> <<add_bodywriting _args[0] lusty_sinners _args[1]>> <</if>> <<case 2>> <<add_bodywriting _args[0] bound_to_sydney _args[1]>> <<case 3>> <<add_bodywriting _args[0] sydney_makes_me_smile _args[1]>> <<case 4>> <<if C.npc.Sydney.corruption gte 10>> <<if $player.gender_appearance is "m">> <<add_bodywriting _args[0] stud _args[1]>> <<else>> <<add_bodywriting _args[0] beauty _args[1]>> <</if>> <<else>> <<if $player.gender_appearance is "m">> <<add_bodywriting _args[0] handsome _args[1]>> <<else>> <<add_bodywriting _args[0] pretty _args[1]>> <</if>> <</if>> <<case 5>> <<if C.npc.Sydney.corruption gte 10 and $daily.sydney.sex gte 2>> <<add_bodywriting _args[0] insatiable _args[1]>> <<else>> <<if $player.gender_appearance is "m">> <<add_bodywriting _args[0] cute_boy _args[1]>> <<else>> <<add_bodywriting _args[0] cute_girl _args[1]>> <</if>> <</if>> <<case 6>> <<add_bodywriting _args[0] sinner _args[1]>> <</switch>> <<else>> <<add_bodywriting _args[0] sinner _args[1]>> <</if>> <<bodywriting_finalisation _args[0]>> <</widget>> <<widget "bodywriting_npc_sydney_book">> <<if $sydneyromance is 1>> <<add_bodywriting _args[0] book_criminal_heart _args[1]>> <<else>> <<add_bodywriting _args[0] book_criminal_frown _args[1]>> <</if>> <<bodywriting_finalisation _args[0]>> <</widget>> <<widget "bodywriting_npc_sydney_science">> <<if _sydneyStatus.includes("corrupt") or _sydneyStatus.includes("Lust")>> <<switch random(1, 3)>> <<case 1>> <<add_bodywriting _args[0] attractive_force _args[1]>> <<case 2>> <<add_bodywriting _args[0] reproductive_system _args[1]>> <<case 3>> <<add_bodywriting _args[0] breeding_cycle _args[1]>> <</switch>> <<else>> <<switch random(1, 3)>> <<case 1>> <<add_bodywriting _args[0] water_tables _args[1]>> <<case 2>> <<add_bodywriting _args[0] cytoplasm _args[1]>> <<case 3>> <<add_bodywriting _args[0] atomic_weight _args[1]>> <</switch>> <</if>> <<bodywriting_finalisation _args[0]>> <</widget>> <<widget "bodywriting_npc_sydney_friendly">> <<if C.npc.Sydney.love gte 70>> <<add_bodywriting _args[0] best_friend _args[1]>> <<elseif C.npc.Sydney.love gte 40>> <<add_bodywriting _args[0] inspiring _args[1]>> <<else>> <<add_bodywriting _args[0] interesting _args[1]>> <</if>> <<bodywriting_finalisation _args[0]>> <</widget>> <<widget "bodywriting_npc_gwylan">> <<run statusCheck("Gwylan")>> <<rng 6>> <<switch $rng>> <<case 1>> <<bodywriting_npc_shape _args[0] _args[1]>> <<case 2>> <<if $gwylanSeen?.includes("romance")>> <<add_bodywriting _args[0] heart _args[1]>> <<else>> <<bodywriting_npc_shape _args[0] _args[1]>> <</if>> <<case 3>> <<add_bodywriting _args[0] paw_print _args[1]>> <<case 4>> <<add_bodywriting _args[0] flower _args[1]>> <<case 5>> <<if _gwylanStatus?.includes("dom")>> <<add_bodywriting _args[0] pet _args[1]>> <<else>> <<bodywriting_npc_shape _args[0] _args[1]>> <</if>> <<case 6>> <<if $worn.neck.name is "familiar collar" and $worn.neck.cursed is 1>> <<add_bodywriting _args[0] witchs_familiar _args[1]>> <<else>> <<bodywriting_npc_shape _args[0] _args[1]>> <</if>> <</switch>> <<bodywriting_finalisation _args[0]>> <</widget>> <<widget "bodywriting_npc_picture">> <<if $NPCList[0].type is "plant">> <<rng 7>> <<else>> <<rng 10>> <</if>> <<switch $rng>> <<case 1>> <<add_bodywriting _args[0] unicorn _args[1]>> <<case 2>> <<add_bodywriting _args[0] heart _args[1]>> <<case 3>> <<add_bodywriting _args[0] paw_print _args[1]>> <<case 4>> <<add_bodywriting _args[0] flower _args[1]>> <<case 5>> <<add_bodywriting _args[0] butterfly _args[1]>> <<case 6>> <<add_bodywriting _args[0] star _args[1]>> <<case 7>> <<add_bodywriting _args[0] skull _args[1]>> <<case 8>> <<add_bodywriting _args[0] cross _args[1]>> <<case 9>> <<add_bodywriting _args[0] flame _args[1]>> <<case 10>> <<add_bodywriting _args[0] cattle_brand _args[1]>> <</switch>> <<bodywriting_finalisation _args[0]>> <</widget>> <<widget "bodywriting_npc_shape">> <<rng 4>> <<switch $rng>> <<case 1>> <<add_bodywriting _args[0] square _args[1]>> <<case 2>> <<add_bodywriting _args[0] triangle _args[1]>> <<case 3>> <<add_bodywriting _args[0] circle _args[1]>> <<case 4>> <<add_bodywriting _args[0] triquetra _args[1]>> <</switch>> <</widget>> <<widget "bodywriting_normal_select">> <<rng 39>> <<switch $rng>> <<case 1>> <<add_bodywriting _args[0] slut _args[1]>> <<case 2>> <<add_bodywriting _args[0] fucktoy _args[1]>> <<case 3>> <<add_bodywriting _args[0] worthless _args[1]>> <<case 4>> <<add_bodywriting _args[0] free_use _args[1]>> <<case 5>> <<add_bodywriting _args[0] slave _args[1]>> <<case 6>> <<add_bodywriting _args[0] use_me _args[1]>> <<case 7>> <<add_bodywriting _args[0] hit_me _args[1]>> <<case 8>> <<if ($settings.maleNPCVaginaChance lt 100 or $settings.femaleNPCPenisChance gte 1) and !$player.penisExist>> <<add_bodywriting _args[0] cum_rag _args[1]>> <<elseif ($settings.femaleNPCPenisChance lt 100 or $settings.maleNPCVaginaChance gte 1) and $player.penisExist>> <<add_bodywriting _args[0] walking_dildo _args[1]>> <<else>> <<add_bodywriting _args[0] free_use _args[1]>> <</if>> <<case 9>> <<if ($settings.femaleNPCPenisChance lt 100 or $settings.maleNPCVaginaChance gte 1) and $player.penisExist>> <<add_bodywriting _args[0] walking_dildo _args[1]>> <<elseif ($settings.maleNPCVaginaChance lt 100 or $settings.femaleNPCPenisChance gte 1) and !$player.penisExist>> <<add_bodywriting _args[0] cum_rag _args[1]>> <<else>> <<add_bodywriting _args[0] free_use _args[1]>> <</if>> <<case 10>> <<add_bodywriting _args[0] rape_bait _args[1]>> <<case 11>> <<add_bodywriting _args[0] bitch _args[1]>> <<case 12>> <<add_bodywriting _args[0] fuck_me _args[1]>> <<case 13>> <<add_bodywriting _args[0] hurt_me _args[1]>> <<case 14>> <<add_bodywriting _args[0] enslave_me _args[1]>> <<case 15>> <<add_bodywriting _args[0] treat_me_bad _args[1]>> <<case 16>> <<add_bodywriting _args[0] sex_addict _args[1]>> <<case 17>> <<add_bodywriting _args[0] rape_addict _args[1]>> <<case 18>> <<add_bodywriting _args[0] make_me_squeal _args[1]>> <<case 19>> <<add_bodywriting _args[0] make_me_cum _args[1]>> <<case 20>> <<add_bodywriting _args[0] free_sex _args[1]>> <<case 21>> <<add_bodywriting _args[0] insatiable _args[1]>> <<case 22>> <<add_bodywriting _args[0] stupid_whore _args[1]>> <<case 23>> <<add_bodywriting _args[0] rapetoy _args[1]>> <<case 24>> <<add_bodywriting _args[0] cocksucker _args[1]>> <<case 25>> <<add_bodywriting _args[0] side_piece _args[1]>> <<case 26>> <<add_bodywriting _args[0] slam_pig _args[1]>> <<case 27>> <<add_bodywriting _args[0] abuse_me _args[1]>> <<case 28>> <<add_bodywriting _args[0] strugglefucker _args[1]>> <<case 29>> <<add_bodywriting _args[0] cum_dump _args[1]>> <<case 30>> <<add_bodywriting _args[0] submissive _args[1]>> <<case 31>> <<add_bodywriting _args[0] pet _args[1]>> <<case 32>> <<add_bodywriting _args[0] skank _args[1]>> <<case 33>> <<add_bodywriting _args[0] gutter_whore _args[1]>> <<case 34>> <<add_bodywriting _args[0] stupid_ho _args[1]>> <<case 35>> <<add_bodywriting _args[0] asking_for_it _args[1]>> <<case 36>> <<add_bodywriting _args[0] cock_tease _args[1]>> <<case 37>> <<add_bodywriting _args[0] dumb_bitch _args[1]>> <<case 38>> <<add_bodywriting _args[0] kick_me _args[1]>> <<case 39>> <<add_bodywriting _args[0] buttslut _args[1]>> <</switch>> <</widget>> <<widget "bodywriting_npc_normal">> <<set _bigdick to 0>> <<for _nx to 0; _nx lt $enemynomax; _nx++>> <<if $NPCList[_nx].penissize gte 3>> <<set _bigdick to 1>> <</if>> <</for>> <<rng 10>> <<if _bigdick eq 1 and $rng eq 1>> <<add_bodywriting _args[0] size_queen _args[1]>> <<else>> <<bodywriting_normal_select _args[0] _args[1]>> <</if>> <<bodywriting_finalisation _args[0]>> <</widget>> <<widget "bodywriting_finalisation">> <<if $skin[_args[0]].type is "text">> <i><span class="pink">"<<print $skin[_args[0]].writing>>"</span></i>. <<else>> <i><span class="pink">A picture of a <<print $skin[_args[0]].writing>></span></i>. <</if>> <<if $skin[_args[0]].arrow is 1>> <<if _args[1] is "machine">> <<set $_He to "It">> <<else>> <<set $_He to "<<He>>">> <</if>> <<switch _args[0]>> <<case "left_cheek" "right_cheek">> $_He draws an arrow beside it, <span class="red">pointing at your mouth.</span> <<case "pubic" "left_thigh" "right_thigh">> $_He draws an arrow beside it, <span class="red">pointing at your <<genitals 1>>.</span> <<case "back" "left_bottom" "right_bottom">> <<if $settings.analEnabled>> $_He draws an arrow beside it, <span class="red">pointing at your <<bottom>>.</span> <</if>> <</switch>> <</if>> <<if _args[1] is "machine">> <<set $skin[_args[0]].pen to "tattoo">> <<else>> <<if $skin[_args[0]].pen is undefined>> <<set $skin[_args[0]].pen to "pen">> <</if>> <</if>> <</widget>> <<widget "bodywriting_criminal">> <<bodywriting_criminal_select _args[0] _args[1]>> <<bodywriting_finalisation _args[0]>> <</widget>> <<widget "bodywriting_criminal_select">> <<switch random(1, 7)>> <<case 1>><<add_bodywriting _args[0] criminal_scum _args[1]>> <<case 2>><<add_bodywriting _args[0] criminal _args[1]>> <<case 3>><<add_bodywriting _args[0] law_breaker _args[1]>> <<case 4>><<add_bodywriting _args[0] criminal_whore _args[1]>> <<case 5>><<add_bodywriting _args[0] in_debt_to_society _args[1]>> <<case 6>><<add_bodywriting _args[0] deserves_prison _args[1]>> <<case 7>><<add_bodywriting _args[0] threat_to_society _args[1]>> <</switch>> <</widget>> <<widget "bodywriting_rape_select">> <<switch random(1, 5)>> <<case 1>><<add_bodywriting _args[0] rape_me _args[1]>> <<case 2>><<add_bodywriting _args[0] rapists_toy _args[1]>> <<case 3>><<add_bodywriting _args[0] no_means_yes _args[1]>> <<case 4>><<add_bodywriting _args[0] public_toy _args[1]>> <<case 5>><<add_bodywriting _args[0] public_property _args[1]>> <</switch>> <</widget>> <<widget "bodywriting_sex_select">> <<switch random(1, 6)>> <<case 1>><<add_bodywriting _args[0] promiscuous _args[1]>> <<case 2>><<add_bodywriting _args[0] town_bicycle _args[1]>> <<case 3>><<add_bodywriting _args[0] public_slut _args[1]>> <<case 4>><<add_bodywriting _args[0] wanton _args[1]>> <<case 5>><<add_bodywriting _args[0] insatiable_slut _args[1]>> <<case 6>><<add_bodywriting _args[0] dtf _args[1]>> <</switch>> <</widget>> <<widget "bodywriting_bestiality_select">> <<switch random(1, 12)>> <<case 1>><<add_bodywriting _args[0] doggy_slut _args[1]>> <<case 2>><<add_bodywriting _args[0] animal _args[1]>> <<case 3>><<add_bodywriting _args[0] beast_fucker _args[1]>> <<case 4>><<add_bodywriting _args[0] breedable _args[1]>> <<case 5>><<add_bodywriting _args[0] deviant _args[1]>> <<case 6>><<add_bodywriting _args[0] horse_cock_only _args[1]>> <<case 7>><<add_bodywriting _args[0] knots_only _args[1]>> <<case 8>><<add_bodywriting _args[0] barn_slut _args[1]>> <<case 9>> <<if $player.gender_appearance is "m">> <<add_bodywriting _args[0] breeding_stud _args[1]>> <<else>> <<add_bodywriting _args[0] breeding_mare _args[1]>> <</if>> <<case 10>><<add_bodywriting _args[0] cats_toy _args[1]>> <<case 11>><<add_bodywriting _args[0] cat_fucker _args[1]>> <<case 12>><<add_bodywriting _args[0] cat_slut _args[1]>> <</switch>> <</widget>> <<widget "bodywriting_prostitution_select">> <<switch random(1, 9)>> <<case 1>><<add_bodywriting _args[0] five_pound_whore _args[1]>> <<case 2>><<add_bodywriting _args[0] ten_pound_a_pop _args[1]>> <<case 3>><<add_bodywriting _args[0] twenty_five_pound_per_fuck _args[1]>> <<case 4>><<add_bodywriting _args[0] one_hundred_pound _args[1]>> <<case 5>><<add_bodywriting _args[0] its_not_rape_if_you_pay_me _args[1]>> <<case 6>><<add_bodywriting _args[0] whore _args[1]>> <<case 7>><<add_bodywriting _args[0] slut_for_hire _args[1]>> <<case 8>><<add_bodywriting _args[0] body_for_sale _args[1]>> <<case 9>><<add_bodywriting _args[0] prostitute _args[1]>> <</switch>> <</widget>> <<widget "bodywriting_pregnancy_select">> <<switch random(1, 8)>> <<case 1>><<add_bodywriting _args[0] brood_mother _args[1]>> <<case 2>><<add_bodywriting _args[0] inseminate_me _args[1]>> <<case 3>><<add_bodywriting _args[0] impregnate_me _args[1]>> <<case 4>><<add_bodywriting _args[0] pregnancy_slut _args[1]>> <<case 5>><<add_bodywriting _args[0] breeding_ground _args[1]>> <<case 6>><<add_bodywriting _args[0] seedbed _args[1]>> <<case 7>><<add_bodywriting _args[0] fertile _args[1]>> <<case 8>><<add_bodywriting _args[0] fill_me_up _args[1]>> <</switch>> <</widget>> <<widget "bodywriting_impreg_select">> <<switch random(1, 8)>> <<case 1>><<add_bodywriting _args[0] homewrecker _args[1]>> <<case 2>><<add_bodywriting _args[0] sire _args[1]>> <<case 3>><<add_bodywriting _args[0] sperm_donor _args[1]>> <<case 4>><<add_bodywriting _args[0] stallion _args[1]>> <<case 5>><<add_bodywriting _args[0] condom_breaker _args[1]>> <<case 6>><<add_bodywriting _args[0] seed_sower _args[1]>> <<case 7>><<add_bodywriting _args[0] virile _args[1]>> <<case 8>><<add_bodywriting _args[0] womb_filler _args[1]>> <</switch>> <</widget>> <<widget "bodywriting_exhibitionism_select">> <<switch random(1, 5)>> <<case 1>><<add_bodywriting _args[0] pervert _args[1]>> <<case 2>><<add_bodywriting _args[0] attention_whore _args[1]>> <<case 3>><<add_bodywriting _args[0] flaunter _args[1]>> <<case 4>><<add_bodywriting _args[0] object _args[1]>> <<case 5>><<add_bodywriting _args[0] strip_me _args[1]>> <</switch>> <</widget>> <<widget "bodywriting_beauty_select">> <<switch random(1, 5)>> <<case 1>> <<if $player.gender_appearance is "m">> <<add_bodywriting _args[0] handsome _args[1]>> <<else>> <<add_bodywriting _args[0] pretty _args[1]>> <</if>> <<case 2>><<add_bodywriting _args[0] hot _args[1]>> <<case 3>><<add_bodywriting _args[0] beautiful _args[1]>> <<case 4>> <<if $player.gender_appearance is "m">> <<add_bodywriting _args[0] cute_boy _args[1]>> <<else>> <<add_bodywriting _args[0] cute_girl _args[1]>> <</if>> <<case 5>> <<if $player.gender_appearance is "m">> <<add_bodywriting _args[0] stud _args[1]>> <<else>> <<add_bodywriting _args[0] beauty _args[1]>> <</if>> <</switch>> <</widget>> <<widget "bodywriting_scrap_select">> <<switch random(1, 6)>> <<case 1>><<add_bodywriting _args[0] defiant_whelp _args[1]>> <<case 2>><<add_bodywriting _args[0] brat _args[1]>> <<case 3>><<add_bodywriting _args[0] punish_me _args[1]>> <<case 4>><<add_bodywriting _args[0] insolent _args[1]>> <<case 5>><<add_bodywriting _args[0] naughty _args[1]>> <<case 6>><<add_bodywriting _args[0] dumb_bitch _args[1]>> <</switch>> <</widget>> <<widget "bodywriting_npc_special">> <<rng>> <<if $rng gte 91>> <<if $fame.rape gte random(200, 1000)>> <<bodywriting_rape_select _args[0] _args[1]>> <<bodywriting_finalisation _args[0]>> <<else>> <<bodywriting_npc_normal _args[0] _args[1]>> <</if>> <<elseif $rng gte 81>> <<if $fame.sex gte random(200, 1000)>> <<bodywriting_sex_select _args[0] _args[1]>> <<bodywriting_finalisation _args[0]>> <<else>> <<bodywriting_npc_normal _args[0] _args[1]>> <</if>> <<elseif $rng gte 71>> <<if $fame.bestiality gte random(200, 1000)>> <<bodywriting_bestiality_select _args[0] _args[1]>> <<bodywriting_finalisation _args[0]>> <<else>> <<bodywriting_npc_normal _args[0] _args[1]>> <</if>> <<elseif $rng gte 61>> <<if $fame.pregnancy gte random(200, 1000) and $player.vaginaExist and $rng gte 66>> <<bodywriting_pregnancy_select _args[0]>> <<bodywriting_finalisation _args[0]>> <<elseif $fame.impreg gte random(200, 1000) and $player.penisExist>> <<bodywriting_impreg_select _args[0]>> <<bodywriting_finalisation _args[0]>> <<else>> <<bodywriting_npc_normal _args[0]>> <</if>> <<elseif $rng gte 51>> <<if $fame.prostitution gte random(200, 1000)>> <<bodywriting_prostitution_select _args[0] _args[1]>> <<bodywriting_finalisation _args[0]>> <<else>> <<bodywriting_npc_normal _args[0] _args[1]>> <</if>> <<elseif $rng gte 41>> <<if $fame.exhibitionism gte random(200, 1000)>> <<bodywriting_exhibitionism_select _args[0] _args[1]>> <<bodywriting_finalisation _args[0]>> <<else>> <<bodywriting_npc_normal _args[0] _args[1]>> <</if>> <<elseif $rng gte 28>> <<if $beauty gte random(1, $beautymax)>> <<bodywriting_beauty_select _args[0] _args[1]>> <<bodywriting_finalisation _args[0]>> <<else>> <<bodywriting_npc_normal _args[0] _args[1]>> <</if>> <<elseif $rng gte 16>> <<if $fame.scrap gte random(1, 1000)>> <<bodywriting_scrap_select _args[0] _args[1]>> <<bodywriting_finalisation _args[0]>> <<else>> <<bodywriting_npc_normal _args[0] _args[1]>> <</if>> <<else>> <<bodywriting_npc_normal _args[0] _args[1]>> <</if>> <</widget>> <<widget "bodywriting_machine">> <<rng>> <<if $bodywriting_special is "dungeon">> <<bodywriting_dungeon_select _args[0]>> <<bodywriting_finalisation _args[0] machine>> <<elseif $rng gte 94>> <<if $fame.rape gte random(200, 1000)>> <<bodywriting_rape_select _args[0]>> <<bodywriting_finalisation _args[0] machine>> <<else>> <<bodywriting_normal_select _args[0]>> <<bodywriting_finalisation _args[0] machine>> <</if>> <<elseif $rng gte 87>> <<if $fame.sex gte random(200, 1000)>> <<bodywriting_sex_select _args[0]>> <<bodywriting_finalisation _args[0]>> <<else>> <<bodywriting_normal_select _args[0]>> <<bodywriting_finalisation _args[0] machine>> <</if>> <<elseif $rng gte 81>> <<if $fame.bestiality gte random(200, 1000)>> <<bodywriting_bestiality_select _args[0]>> <<bodywriting_finalisation _args[0]>> <<else>> <<bodywriting_normal_select _args[0]>> <<bodywriting_finalisation _args[0] machine>> <</if>> <<elseif $rng gte 73>> <<if $fame.pregnancy gte random(200, 1000) and $player.vaginaExist>> <<bodywriting_pregnancy_select _args[0]>> <<bodywriting_finalisation _args[0]>> <<else>> <<bodywriting_npc_normal _args[0]>> <<bodywriting_finalisation _args[0] machine>> <</if>> <<elseif $rng gte 65>> <<if $fame.prostitution gte random(200, 1000)>> <<bodywriting_prostitution_select _args[0]>> <<bodywriting_finalisation _args[0]>> <<else>> <<bodywriting_normal_select _args[0]>> <<bodywriting_finalisation _args[0] machine>> <</if>> <<elseif $rng gte 59>> <<if $fame.exhibitionism gte random(200, 1000)>> <<bodywriting_exhibitionism_select _args[0]>> <<bodywriting_finalisation _args[0]>> <<else>> <<bodywriting_normal_select _args[0]>> <<bodywriting_finalisation _args[0] machine>> <</if>> <<elseif $rng gte 53>> <<if $beauty gte random(1, $beautymax)>> <<bodywriting_beauty_select _args[0]>> <<bodywriting_finalisation _args[0]>> <<else>> <<bodywriting_normal_select _args[0]>> <<bodywriting_finalisation _args[0] machine>> <</if>> <<elseif $rng gte 47>> <<if $fame.scrap gte random(1, 1000)>> <<bodywriting_scrap_select _args[0]>> <<bodywriting_finalisation _args[0]>> <<else>> <<bodywriting_normal_select _args[0]>> <<bodywriting_finalisation _args[0] machine>> <</if>> <<else>> <<bodywriting_normal_select _args[0]>> <<bodywriting_finalisation _args[0] machine>> <</if>> <</widget>> <<widget "bodypart">> <<switch _args[0]>> <<case "breasts" "chest">> <<set _text_output to "<<breasts>>">> <<case "pubic">> <<set _text_output to "pubic area">> <<case "left_bottom">> <<set _text_output to "left ass cheek">> <<case "right_bottom">> <<set _text_output to "right ass cheek">> <<case "leftarm">> <<set _text_output to "left arm">> <<case "rightarm">> <<set _text_output to "right arm">> <<case "vaginaoutside">> <<set _text_output to "labia">> <<case "thigh">> <<set _text_output to "thighs">> <<default>> <<set _text_output to _args[0].replace(/_/g," ")>> <</switch>> <<print _text_output>> <</widget>> <<widget "tattoo">> <span class="lewd">"<<print $skin[_args[0]].writing>>"</span> <<switch $skin[_args[0]].pen>> <<case "tattoo">><<set _text_output to "tattoo">> <<case "brand">><<set _text_output to "brand">> <<case "magic">><<set _text_output to "seal">> <<default>><<set _text_output to ($skin[_args[0]].type is "text" ? "writing" : "image")>> <</switch>> <<print _text_output>> <</widget>> <<widget "bodywriting_clear">> <<set $skin[_args[0]] to {}>> <</widget>> <<widget "bodywriting_clear_all">> <<bodywriting_clear forehead>> <<bodywriting_clear left_cheek>> <<bodywriting_clear right_cheek>> <<bodywriting_clear left_shoulder>> <<bodywriting_clear right_shoulder>> <<bodywriting_clear breasts>> <<bodywriting_clear back>> <<bodywriting_clear pubic>> <<bodywriting_clear left_thigh>> <<bodywriting_clear right_thigh>> <<bodywriting_clear left_bottom>> <<bodywriting_clear right_bottom>> <</widget>> <<widget "bodypart_admire_prostitution">> <<if $NPCList[_n].paid is 1>> <<elseif $skin[_args[0]].degree lte 0>> <<if (($enemyarousal + ($enemytrust * 5) - $enemyanger + ($attractiveness / 10) * (currentSkillValue("seductionskill") / 200)) gte 1000)>> <<set $enemyanger += 10>><<set $enemytrust -= 100>><<fameprostitution 1>> <<if !$speechadmired>><<set $speechadmired to 1>> <<switch random(1, 5)>> <<case 1>><<He>> speaks. "Expensive. Fine." <<case 2>><<He>> speaks. "I'll pay, but you better be worth it." <<case 3>><<He>> speaks. "I'll pay this time, slut." <<case 4>><<He>> speaks. "I've seen worse deals." <<case 5>><<He>> speaks. "I should pay you. I doubt you're good for anything else." <</switch>> <</if>> <<He>> drops a <<printmoney 1000>><<money 1000 "prostitution">> note atop you. <<earnFeat "Billboard">><<set $NPCList[_n].paid to 1>> <<elseif (($enemyarousal + ($enemytrust * 5) - $enemyanger + ($attractiveness / 10) * (currentSkillValue("seductionskill") / 200)) gte 500)>> <<set $enemyanger += 10>><<set $enemytrust -= 100>><<fameprostitution 1>> <<if !$speechadmired>><<set $speechadmired to 1>> <<switch random(1, 5)>> <<case 1>><<He>> speaks. "You're lucky I'm giving you a thing." <<case 2>><<He>> speaks. "If only money could buy you dignity." <<case 3>><<He>> speaks. "I've bought drinks more expensive than you." <<case 4>><<He>> speaks. "Where should I insert it?" <<case 5>><<He>> speaks. "Cheap and dirty whores are the best." <</switch>> <</if>> <<He>> drops a <<printmoney 500>><<money 500 "prostitution">> note atop you. <<earnFeat "Billboard">><<set $NPCList[_n].paid to 1>> <<else>><<set $enemytrust -= 20>> <<fameprostitution 1>> <<if !$speechadmired>><<set $speechadmired to 1>> <<switch random(1, 5)>> <<case 1>><<He>> speaks. "Pay you? Don't make me laugh." <<case 2>><<He>> speaks. "Getting to fuck me is payment enough." <<case 3>><<He>> speaks. "Don't think you're worth anything." <<case 4>><<He>> speaks. "I hope you're not expecting cash." <<case 5>><<He>> speaks. "Whores like you don't deserve anything." <</switch>> <</if>> <</if>> <<elseif $skin[_args[0]].degree lte ($enemyarousal + ($enemytrust * 5) - $enemyanger + ($attractiveness / 10) * (currentSkillValue("seductionskill") / 200))>> <<set $enemyanger += 10>><<set $enemytrust -= $skin[_args[0]].degree>><<fameprostitution 1>> <<if !$speechadmired>><<set $speechadmired to 1>> <<switch random(1, 5)>> <<case 1>><<He>> speaks. "I'm paying, but you better be worth it." <<case 2>><<He>> speaks. "You whores are so full of yourself." <<case 3>><<He>> speaks. "Fine, but I'm getting my money's worth." <<case 4>><<He>> speaks. "I'm gonna make you earn every penny." <<case 5>><<He>> speaks. "Fine, I'll pay. This time." <</switch>> <</if>> <<He>> drops <<printmoney $skin[_args[0]].degree>><<money $skin[_args[0]].degree "prostitution">> atop you. <<earnFeat "Billboard">><<set $NPCList[_n].paid to 1>> <<else>> <<set $enemytrust -= 20>><<fameprostitution 1>> <<if !$speechadmired>><<set $speechadmired to 1>> <<switch random(1, 5)>> <<case 1>><<He>> speaks. "You're fucking kidding me." <<case 2>><<He>> speaks. "You're not getting a penny, slut." <<case 3>><<He>> speaks. "You're not worth a penny." <<case 4>><<He>> speaks. "I work hard for my cash. I'm not about to give it to some slut." <<case 5>><<He>> speaks. "Fucking me is the only reward you need." <</switch>> <</if>> <</if>> <</widget>> <<widget "bodypart_admire_arrow">> <<if $skin[_args[0]].special is "prostitution" and $NPCList[_n].type isnot "plant">> <<bodypart_admire_prostitution _args[0]>> <</if>> <<if (_args[0] is "left_cheek" or _args[0] is "right_cheek") and $NPCList[_n].location.genitals is 0 and $NPCList[_n].location.head isnot "head" and ($position isnot "wall" or $walltype is "front") and $mouthuse is 0>> <<if $settings.analingusGivingEnabled and random(1, 10) is 1 and ($NPCList[_n].penis is 0 or $NPCList[_n].vagina is 0)>> <<He>> follows the arrow's instruction, <span class="blue">and swings <<his>> ass in front of your face.</span> <<neutral 5>><<set $mouthuse to "otheranus">><<set $mouthstate to "otheranus">> <<if $NPCList[_n].penis is 0>> <<set $NPCList[_n].penis to "mouthotheranus">> <</if>> <<if $NPCList[_n].vagina is 0>> <<set $NPCList[_n].vagina to "mouthotheranus">> <</if>> <<set $NPCList[_n].location.genitals = "head">><<set $speechmouthotheranus to 1>><<set $mouthtarget to _n>> <<elseif $NPCList[_n].penis is 0>> <<He>> follows the arrow's instruction, <span class="blue">and positions <<his>> $NPCList[_n].penisdesc in front of your mouth.</span> <<neutral 5>><<set $mouthuse to "penis">><<set $NPCList[_n].penis to "mouthentrance">><<set $mouthstate to "entrance">><<set $speechmouthentrance to 1>><<set $mouthtarget to _n>> <<set $NPCList[_n].location.genitals to "head">> <<elseif $NPCList[_n].vagina is 0>> <<He>> follows the arrow's instruction. <<if random(4) is 0 and $settings.facesitEnabled>> <<if $position is "doggy">> <<He>> gently rolls you onto your back. <<set $position to "missionary">> <</if>> <span class="purple"> <<if $enemyanger gte (($enemyangermax / 5) * 1)>> <<print either( "<<He>> swings a leg over your face and sits down, sitting on your face.", "<<He>> sits down on your face, covering your mouth with <<his>> pussy.", "<<His>> pussy and ass descend onto your face, as <<he>> sits on it." )>> <<violence 3>><<bruise face>> <<else>> <<print either( "<<He>> straddles your face and slowly lowers <<his>> pussy down onto your mouth.", "<<He>> stands over your face and lowers <<himself>>, planting <<his>> pussy on your face.", "<<His>> pussy comes down onto your face and rests lightly on your mouth, and <<he>> waits expectantly." )>> <</if>> </span> <<submission 5>><<set $NPCList[_n].vagina to "facesit">><<set $mouthuse to "facesit">><<set $mouthstate to "vagina">><<set $mouthtarget to _n>> <<set $speechfacesit to 1>><<set $NPCList[_n].location.genitals = "head">> <<else>> <span class="purple"><<He>> wraps <<his>> legs around your head and presses <<his>> pussy against your mouth.</span> <<submission 5>><<set $mouthuse to "othervagina">><<set $NPCList[_n].vagina to "mouth">><<set $mouthstate to "othervagina">><<violence 3>><<bruise face>><<set $speechvaginamouth to 1>><<set $mouthtarget to _n>> <<set $NPCList[_n].location.genitals to "head">> <</if>> <</if>> <<elseif (_args[0] is "back" or _args[0] is "right_bottom" or _args[0] is "left_bottom") and $NPCList[_n].location.genitals is 0 and $NPCList[_n].location.head isnot "genitals">> <<if $worn.lower.anus_exposed gte 1 and $worn.under_lower.anus_exposed gte 1 and $anususe is 0>> <<if $settings.analingusReceivingEnabled and $NPCList[_n].mouth is 0 and ($NPCList[_n].penis is "none" or random(1, 10) is 1)>> <<He>> follows the arrow's instruction and lowers <<his>> head, <span class="blue">until <<hes>> level with your <<bottom>>.</span> <<neutral 5>><<set $NPCList[_n].mouth to "anusentrance">><<set $anususe to "othermouth">><<set $anusstate to "othermouthentrance">> <<set $NPCList[_n].location.head to "genitals">><<set $anustarget to _n>> <<elseif $NPCList[_n].penis is 0>> <<He>> follows the arrow's instruction, <span class="blue">and positions <<his>> penis in front of your <<bottom>>.</span> <<if $NPCList[_n].type is "plant" and $NPCList[_n].penissize gte 4 and canImpregnateParasite("anus")>> <span class="red">Something about it scares you.</span> <</if>> <<neutral 5>><<set $anususe to "penis">><<set $NPCList[_n].penis to "anusentrance">><<set $anusstate to "entrance">><<set $speechanusentrance to 1>> <<set $NPCList[_n].location.genitals to "genitals">><<set $anustarget to _n>> <</if>> <</if>> <<elseif (_args[0] is "pubic" or _args[0] is "left_thigh" or _args[0] is "right_thigh") and $NPCList[_n].location.genitals is 0 and $NPCList[_n].location.head isnot "genitals">> <<if $worn.lower.vagina_exposed gte 1 and $worn.under_lower.vagina_exposed gte 1>> <<if $penisuse is 0 and ($vaginause isnot 0 or random(1))>> <<if random(1, 5) is 1 and $NPCList[_n].mouth is 0>> <<He>> follows the arrow's instruction and lowers <<his>> head, <span class="blue">until <<hes>> level with your <<penis>>.</span> <<neutral 5>><<set $NPCList[_n].mouth to "penisentrance">><<set $penisuse to "othermouth">><<set $penisstate to "othermouthentrance">> <<set $NPCList[_n].location.head to "genitals">><<set $penistarget to _n>> <<elseif $NPCList[_n].penis is 0>> <<He>> follows the arrow's instruction, <span class="blue">and angles <<his>> $NPCList[_n].penisdesc towards yours.</span> <<neutral 5>><<set $NPCList[_n].penis to "penisentrance">><<set $penisuse to "otherpenis">><<set $penisstate to "otherpenisentrance">> <<set $NPCList[_n].location.genitals to "genitals">><<set $penistarget to _n>><<set $speechfencingentrance to 1>> <<elseif $NPCList[_n].vagina is 0>> <<He>> follows the arrow's instruction, <span class="blue">and straddles you, <<his>> pussy hovering close to your <<penis>>.</span> <<neutral 5>><<set $NPCList[_n].vagina to "penisentrance">><<set $penisuse to "othervagina">><<set $penisstate to "entrance">> <<set $NPCList[_n].location.genitals to "genitals">><<set $penistarget to _n>><<set $speechpenisentrance to 1>> <</if>> <<elseif $vaginause is 0>> <<if random(1, 5) is 1 and $NPCList[_n].mouth is 0>> <<He>> follows the arrow's instruction and lowers <<his>> head, <span class="blue">until <<hes>> level with your <<pussy>>.</span> <<neutral 5>><<set $NPCList[_n].mouth to "vaginaentrance">><<set $vaginause to "othermouth">><<set $vaginastate to "othermouthentrance">> <<set $NPCList[_n].location.head to "genitals">><<set $vaginatarget to _n>> <<elseif $NPCList[_n].penis is 0>> <<He>> follows the arrow's instruction, <span class="blue">and moves between your legs, positioning <<his>> $NPCList[_n].penisdesc in front of your <<pussy>>.</span> <<if $NPCList[_n].type is "plant" and $NPCList[_n].penissize gte 4 and canImpregnateParasite("vagina")>> <span class="red">Something about it scares you.</span> <</if>> <<neutral 5>><<set $NPCList[_n].penis to "vaginaentrance">><<set $vaginause to "penis">><<set $vaginastate to "entrance">> <<set $NPCList[_n].location.genitals to "genitals">><<set $vaginatarget to _n>><<set $speechvaginaentrance to 1>> <<elseif $NPCList[_n].vagina is 0>> <<He>> follows the arrow's instruction, <span class="blue">and moves <<his>> pussy closer to yours.</span> <<neutral 5>><<set $NPCList[_n].vagina to "vaginaentrance">><<set $vaginause to "othervagina">><<set $vaginastate to "othervaginaentrance">> <<set $NPCList[_n].location.genitals to "genitals">><<set $vaginatarget to _n>><<set $speechtribentrance to 1>> <</if>> <</if>> <</if>> <</if>> <<set $speechadmired to 1>> <</widget>> <<widget "bodypart_admire_rape">> <<set $enemytrust -= 20>><<famerape 1>> <<if !$speechadmired>><<set $speechadmired to 1>> <<if $consensual is 1>> <<switch random(1, 9)>> <<case 1>><<He>> speaks. "Do you get off on being treated like filth?" <<case 2>><<He>> speaks. "I didn't know you were that kind of <<girl>>." <<case 3>><<He>> speaks. "You'd like it to be rougher, aye?" <<case 4>><<He>> speaks. "You're a dirty one." <<case 5>><<He>> speaks. "Do you get taken often?" <<case 6>><<He>> speaks. "I'll treat you like you want, don't worry." <<case 7>><<He>> speaks. "So you like being a victim?" <<case 8>><<He>> speaks. "I bet you put that on yourself, slut." <<case 9>><<He>> speaks. "You're just asking for it." <</switch>> <<else>> <<switch random(1, 9)>> <<case 1>><<He>> speaks. "Hah! I knew you were a rape addict." <<case 2>><<He>> speaks. "I'm just giving you what you want, after all." <<case 3>><<He>> speaks. "Don't worry, you'll be treated how you deserve." <<case 4>><<He>> speaks. "My my, what a slut." <<case 5>><<He>> speaks. "Good to see you know your place." <<case 6>><<He>> speaks. "You're just asking for it." <<case 7>><<He>> speaks. "I knew you were a fucktoy." <<case 8>><<He>> speaks. "I knew this was all you're good for." <<case 9>><<He>> speaks. "I'm giving you what you deserve." <</switch>> <</if>> <</if>> <</widget>> <<widget "bodypart_admire_exhibitionism">> <<fameexhibitionism 1>> <<if !$speechadmired>><<set $speechadmired to 1>> <<switch random(1, 10)>> <<case 1>><<He>> speaks. "Don't worry. I'm getting a good look." <<case 2>><<He>> speaks. "Maybe I'll take some pictures." <<case 3>><<He>> speaks. "You're certainly a feast for the eyes." <<case 4>><<He>> speaks. "You're hot alright." <<case 5>><<He>> speaks. "You like being ogled at, slut?" <<case 6>><<He>> speaks. "Being leered at is all you're good for." <<case 7>><<He>> speaks. "You'd look great in a cage." <<case 8>><<He>> speaks. "Cuties like you shouldn't wear clothes." <<case 9>><<He>> speaks. "You're such an attention whore." <<case 10>><<He>> speaks. "I bet half the town's seen that ass of yours." <</switch>> <</if>> <</widget>> <<widget "bodypart_admire_bestiality">> <<famebestiality 1>> <<if !$speechadmired>><<set $speechadmired to 1>> <<switch random(1, 10)>> <<case 1>><<He>> speaks. "You're disgusting." <<case 2>><<He>> speaks. "So you like fucking animals? Doesn't surprise me." <<case 3>><<He>> speaks. "Maybe I'm not hairy enough for you." <<case 4>><<He>> speaks. "You belong in a kennel." <<case 5>><<He>> speaks. "Filthy <<bitch>>." <<case 6>> <<if $player.gender_appearance is "f">> <<He>> speaks. "You must be in heat." <<else>> <<He>> speaks. "You must be rutting." <</if>> <<case 7>><<He>> speaks. "You're such a dirty <<girl>>." <<case 8>> <<if $player.gender_appearance is "m">> <<He>> speaks. "Good dog." <<else>> <<He>> speaks. "Good <<bitch>>." <</if>> <<case 9>><<He>> speaks. "Someone should tie you up in the park, let the neighbourhood dogs take out their stress." <<case 10>><<He>> speaks. "I knew you were a dog-fucker." <</switch>> <</if>> <</widget>> <<widget "bodypart_admire_promiscuity">> <<famesex 1>> <<if !$speechadmired>><<set $speechadmired to 1>> <<switch random(1, 10)>> <<case 1>><<He>> speaks. "You're such a slut." <<case 2>><<He>> speaks. "I bet you'd fuck anyone." <<case 3>><<He>> speaks. "I'll let my friends know who to see if they need a fucktoy." <<case 4>><<He>> speaks. "Have you no shame?" <<case 5>><<He>> speaks. "Self-respect must be an alien concept to you." <<case 6>><<He>> speaks. "Don't worry, I know how to satisfy a <<girl>>." <<case 7>><<He>> speaks. "I'm glad I could find such a slut." <<case 8>><<He>> speaks. "Fucking must be like breathing to you." <<case 9>><<He>> speaks. "I bet you can't go a single day without a good fuck." <<case 10>><<He>> speaks. "Seems I'm giving you what you want." <</switch>> <</if>> <</widget>> <<widget "bodypart_admire_pregnancy">> <<if playerBellyVisible()>> <<famepregnancy 1>> <<if !$speechadmired>><<set $speechadmired to 1>> <<if $settings.pregnancySpeechEnabled>> <<switch random(1, 10)>> <<case 1>><<He>> speaks. "Doesn't look like it's something I can help with right now." <<case 2>><<He>> speaks. "So how many kids have you given birth to?" <<case 3>><<He>> speaks. "I'll let my friends know who to see if they want a kid in a couple of months." <<case 4>><<He>> speaks. "How far along are you?" <<case 5>><<He>> speaks. "Not being pregnant must be an alien concept to you." <<case 6>><<He>> speaks. "Don't worry, you're already pregnant." <<case 7>><<He>> speaks. "At least I don't need to worry about condoms." <<case 8>><<He>> speaks. "Breeding must be like breathing to you." <<case 9>><<He>> speaks. "I bet you love the feeling of giving birth." <<case 10>><<He>> speaks. "Seems like you already have what you're after." <</switch>> <</if>> <</if>> <<else>> <<if !$speechadmired>><<set $speechadmired to 1>> <<if $settings.pregnancySpeechEnabled>> <<switch random(1, 10)>> <<case 1>><<He>> speaks. "You want a kid that much, slut?" <<case 2>><<He>> speaks. "So how many kids have you given birth to?" <<case 3>><<He>> speaks. "I'll let my friends know who to see if they want a kid." <<case 4>><<He>> speaks. "Are you ovulating right now?" <<case 5>><<He>> speaks. "Not being pregnant must be an alien concept to you." <<case 6>><<He>> speaks. "Don't worry, I know how to get you pregnant." <<case 7>><<He>> speaks. "I'm glad I don't need to worry about condoms." <<case 8>><<He>> speaks. "Breeding must be like breathing to you." <<case 9>><<He>> speaks. "I bet you love the feeling of giving birth." <<case 10>><<He>> speaks. "Seems I'm giving you what you want." <</switch>> <</if>> <</if>> <</if>> <</widget>> <<widget "bodypart_admire_impreg">> <<fameimpreg 1>> <<if !$speechadmired>><<set $speechadmired to 1>> <<if $settings.pregnancySpeechEnabled>> <<switch random(1, 10)>> <<case 1>><<He>> speaks. "You want a kid that much, slut?" <<case 2>><<He>> speaks. "So how many kids have you sired?" <<case 3>><<He>> speaks. "I'll let my friends know who to see if they want a kid." <<case 4>><<He>> speaks. "Just how many people have you knocked up?" <<case 5>><<He>> speaks. "You must love seeing baby bumps." <<case 6>><<He>> speaks. "What a stud." <<case 7>><<He>> speaks. "I'm glad I don't need to worry about condoms." <<case 8>><<He>> speaks. "Breeding must be like breathing to you." <<case 9>><<He>> speaks. "I bet you love the feeling of impregnating others." <<case 10>><<He>> speaks. "Seems I'm giving you what you want." <</switch>> <</if>> <</if>> <</widget>> <<widget "bodypart_admire_girly">> <<if !$speechadmired>><<set $speechadmired to 1>> <<if $player.gender_appearance is "m">> <<switch random(1, 10)>> <<case 1>><<He>> speaks. "You want to be treated like a girl? Fine by me." <<case 2>><<He>> speaks. "That's an odd thing for a boy to wear." <<case 3>><<He>> speaks. "So girly." <<case 4>><<He>> speaks. "Makes you look like a girl." <<case 5>><<He>> speaks. "Don't worry, I'll treat you like a girl." <<case 6>><<He>> speaks. "Aren't you embarrassed to be covered in such a girly thing?" <<case 7>><<He>> speaks. "Cute." <<case 8>><<He>> speaks. "I bet you like dressing up as a girl, slut." <<case 9>><<He>> speaks. "I bet your friends make fun of you." <<case 10>><<He>> speaks. "Why would you wear such a thing?" <</switch>> <<else>> <<switch random(1, 10)>> <<case 1>><<He>> speaks. "Cute." <<case 2>><<He>> speaks. "I bet you wanna be treated like a princess, but you're just a slut." <<case 3>><<He>> speaks. "I'll treat you like a kidnapped princess." <<case 4>><<He>> speaks. "So cute and feminine." <<case 5>><<He>> speaks. "I think you need someone strong to protect you." <<case 6>><<He>> speaks. "Most girls would be embarrassed to wear such a thing." <<case 7>><<He>> speaks. "Do other girls wear marks like this?" <<case 8>><<He>> speaks. "Advertising your femininity? Like anyone would mistake you for a boy." <<case 9>><<He>> speaks. "You're fucking hot, that's for sure." <<case 10>><<He>> speaks. "So glad I get such a pretty girl to play with." <</switch>> <</if>> <</if>> <</widget>> <<widget "bodypart_admire_boyish">> <<if !$speechadmired>><<set $speechadmired to 1>> <<if $player.gender_appearance is "m">> <<switch random(1, 10)>> <<case 1>><<He>> speaks. "So glad I get such a handsome boy to play with." <<case 2>><<He>> speaks. "You're fucking hot, that's for sure." <<case 3>><<He>> speaks. "Advertising your masculinity? Like anyone would mistake you for a girl." <<case 4>><<He>> speaks. "Do other boys wear marks like this?" <<case 5>><<He>> speaks. "Most boys would be embarrassed to wear such a thing." <<case 6>><<He>> speaks. "I think you need someone strong to protect you." <<case 7>><<He>> speaks. "So strong and masculine." <<case 8>><<He>> speaks. "I'll treat you like a kidnapped prince." <<case 9>><<He>> speaks. "You're a hot fucktoy alright." <<case 10>><<He>> speaks. "It's not wrong." <</switch>> <<else>> <<switch random(1, 10)>> <<case 1>><<He>> speaks. "Why would you wear such a thing?" <<case 2>><<He>> speaks. "I bet your friends make fun of you." <<case 3>><<He>> speaks. "I bet you like dressing up as a boy, but you're just a slut." <<case 4>><<He>> speaks. "Hot." <<case 5>><<He>> speaks. "Aren't you embarrassed to be covered in such a boyish thing?" <<case 6>><<He>> speaks. "Don't worry, I'll treat you like a boy." <<case 7>><<He>> speaks. "Makes you look like a boy." <<case 8>><<He>> speaks. "So boyish." <<case 9>><<He>> speaks. "That's an odd thing for a girl to wear." <<case 10>><<He>> speaks. "You want to be treated like a boy? Fine by me." <</switch>> <</if>> <</if>> <</widget>> <<widget "bodypart_admire_combat">> <<famescrap 1>><<set $enemytrust -= 5>> <<if !$speechadmired>><<set $speechadmired to 1>> <<switch random(1, 10)>> <<case 1>><<He>> speaks. "I need to watch myself around you." <<case 2>><<He>> speaks. "I bet you like being treated badly, really." <<case 3>><<He>> speaks. "Your brattiness is a front. I can see through it." <<case 4>><<He>> speaks. "Do I need to watch my <<if $NPCList[_n].pronoun is "f">>purse<<else>>wallet<</if>>?" <<case 5>><<He>> speaks. "Try anything funny and you'll get beat." <<case 6>><<He>> speaks. "Like you could take me." <<case 7>><<He>> speaks. "You must have a high opinion of yourself." <<case 8>><<He>> speaks. "The people you've beaten must be real wimps." <<case 9>><<He>> speaks. "You don't look so tough." <<case 10>><<He>> speaks. "Bratty little <<bitch>>." <</switch>> <</if>> <</widget>> <<widget "bodypart_admire_violence">> <<set $enemyanger += 20>> <<if !$speechadmired>><<set $speechadmired to 1>> <<switch random(1, 10)>> <<case 1>><<He>> speaks. "So you like it rough." <<case 2>><<He>> speaks. "I'm just giving you what you want." <<case 3>><<He>> speaks. "I bet you're addicted to pain." <<case 4>><<He>> speaks. "Sluts like you do deserve beatings." <<case 5>><<He>> speaks. "I'll hurt you all you want, and then some." <<case 6>><<He>> speaks. "Like I need to be asked." <<case 7>><<He>> speaks. "It's a dream come true." <<case 8>><<He>> speaks. "I can be rougher." <<case 9>><<He>> speaks. "So that's how you like it." <<case 10>><<He>> speaks. "Will you cum if I hit you hard enough?" <</switch>> <</if>> <</widget>> <<widget "bodypart_admire_lewd">> <<if !$speechadmired>><<set $speechadmired to 1>> <<if $skin[_args[0]].type is "text">> <<switch random(1, 10)>> <<case 1>> <<if $skin[_args[0]].pen is "tattoo">> <<He>> speaks. "Such a lewd tattoo." <<elseif $skin[_args[0]].pen is "brand">> <<He>> speaks. "Such a lewd brand." <<else>> <<He>> speaks. "Such lewd writing." <</if>> <<case 2>> <<if $skin[_args[0]].pen is "tattoo">> <<He>> speaks. "Why would you have yourself tattooed so?" <<elseif $skin[_args[0]].pen is "brand">> <<He>> speaks. "Why would you burn that into your skin?" <<else>> <<He>> speaks. "Did you write this?" <</if>> <<case 3>><<He>> speaks. "Suits you." <<case 4>><<He>> speaks. "I like my sluts signposted." <<case 5>><<He>> speaks. "You're a perfect canvas." <<case 6>><<He>> speaks. "I see others have marked their territory." <<case 7>><<He>> speaks. "Short and to the point." <<case 8>><<He>> speaks. "Good to see sluts come with instructions now." <<case 9>><<He>> speaks. "Maybe I'll add my mark." <<case 10>><<He>> speaks. "I can think of worse things to write on you." <</switch>> <<else>> <<switch random(1, 10)>> <<case 1>> <<if $skin[_args[0]].pen is "tattoo">> <<He>> speaks. "Such a lewd tattoo." <<elseif $skin[_args[0]].pen is "brand">> <<He>> speaks. "Such a lewd brand." <<else>> <<He>> speaks. "Such a lewd drawing." <</if>> <<case 2>> <<if $skin[_args[0]].pen is "tattoo">> <<He>> speaks. "Why would you have yourself tattooed so?" <<elseif $skin[_args[0]].pen is "brand">> <<He>> speaks. "Why would you burn that into your skin?" <<else>> <<He>> speaks. "Did you draw this?" <</if>> <<case 3>><<He>> speaks. "Suits you." <<case 4>> <<if $skin[_args[0]].pen is "tattoo">> <<He>> speaks. "I love tattooed sluts." <<elseif $skin[_args[0]].pen is "brand">> <<He>> speaks. "Burned into you. Lovin' it." <<else>> <<He>> speaks. "You should get that as a tattoo." <</if>> <<case 5>><<He>> speaks. "You're a perfect canvas." <<case 6>><<He>> speaks. "I see others have marked their territory." <<case 7>><<He>> speaks. "Someone's an artist." <<case 8>> <<if $skin[_args[0]].pen is "tattoo">> <<He>> speaks. "You should get more lewd tattoos." <<elseif $skin[_args[0]].pen is "brand">> <<He>> speaks. "You should get more lewd brands." <<else>> <<He>> speaks. "I might leave my own mark." <</if>> <<case 9>> <<if $skin[_args[0]].pen is "tattoo">> <<He>> speaks. "Good use of ink." <<elseif $skin[_args[0]].pen is "brand">> <<He>> speaks. "I can think of worse things to brand you with." <<else>> <<He>> speaks. "I can think of worse things to draw on you." <</if>> <<case 10>><<He>> speaks. "I've seen lewder." <</switch>> <</if>> <</if>> <</widget>> <<widget "bodypart_admire_criminal">> <<set $enemytrust -= 35>> <<if !$speechadmired>><<set $speechadmired to 1>> <<if $consensual is 1>> <<switch random(1, 9)>> <<case 1>><<He>> speaks. "I should watch my money." <<case 2>><<He>> speaks. "I'm keeping an eye on you." <<case 3>><<He>> speaks. "Maybe I should punish you." <<case 4>><<He>> speaks. "Don't try to steal anything." <<case 5>><<He>> speaks. "Don't think about robbing me." <<case 6>><<He>> speaks. "Should I be worried?" <<case 7>><<He>> speaks. "Who'd you steal from?" <<case 8>><<He>> speaks. "I didn't know being a slut was illegal." <<case 9>><<He>> speaks. "I bet you tried whoring yourself." <</switch>> <<else>> <<switch random(1, 9)>> <<case 1>><<He>> speaks. "You deserve to be treated like this." <<case 2>><<He>> speaks. "I'm doing my part for the community." <<case 3>><<He>> speaks. "Punishing whores is fun." <<case 4>><<He>> speaks. "Be good, or I'll tell the police you robbed me." <<case 5>><<He>> speaks. "Steal from me and I'll fuck you up." <<case 6>><<He>> speaks. "Don't try anything. I've counted every penny." <<case 7>><<He>> speaks. "I bet you tried to whore yourself, you dumb slut." <<case 8>><<He>> speaks. "I knew this was all you're good for." <<case 9>><<He>> speaks. "I'm giving you what you deserve." <</switch>> <</if>> <</if>> <</widget>> <<widget "bodypart_admire_cum_heavy">> <<if $NPCList[_n].type is "plant">> <<He>> licks <<his>> lips. <<else>> <<famesex 2>> <<if !$speechadmired>><<set $speechadmired to 1>> <<He>> speaks. <<if _args[0] is "anus" and $player.sex is "m" and $player.penissize lte 1 and random(1, 5) is 1>> <<if random(1, 2) is 1>> "Doesn't surprise me, with a dick that small." <<else>> "With such a tiny cock, I guess that's the only way you could pleasure someone." <</if>> <<if $player.penissize is 1>> <<insecurity "penis_small" 1>> <<else>> <<insecurity "penis_small" 2>> <</if>> <<else>> <<switch random(1, 11)>> <<case 1>>"What a fucking cum rag." <<case 2>>"What a filthy slut." <<case 3>>"What a fucking cumdump." <<case 4>>"You nasty cumdump!" <<case 5>>"Does walking around covered in cum excite you?" <<case 6>>"Do you ever clean yourself?" <<case 7>>"Fucking sluts won't even have a bath anymore." <<case 8>>"Were you whoring yourself?" <<case 9>>"Fuck, are you addicted to cum or what?" <<case 10>>"Someone knows how to have fun." <<case 11>> <<if _args[0] is "vagina">> "Are you that desperate for a baby?" <<elseif _args[0] is "anus">> "Looks like your ass is getting a lot of action." <<else>> "Someone knows how to have fun." <</if>> <</switch>> <</if>> <</if>> <</if>> <</widget>> <<widget "bodypart_admire_cum_light">> <<if $NPCList[_n].type is "plant">> <<He>> licks <<his>> lips. <<else>> <<famesex 1>> <<if !$speechadmired>><<set $speechadmired to 1>> <<He>> speaks. <<if _args[0] is "vagina">> <<switch random(1, 9)>> <<case 1>> <<if maleChance() gt 0>> "Did you have some fun with your boyfriend?" <<else>> "I see someone had fun already." <</if>> <<case 2>> <<if maleChance() gt 0>> "Did your boyfriend do that?" <<else>> "Who put that load in you?" <</if>> <<case 3>> <<if maleChance() gt 0>> "I bet you made your boyfriend happy." <<else>> "You must've made someone very happy." <</if>> <<case 4>>"Don't worry, I'll give you some more." <<case 5>>"Guess I'll be taking sloppy seconds." <<case 6>>"At least clean yourself after slutting out." <<case 7>>"I see someone had fun already." <<case 8>>"Do you like being creampied?" <<case 9>><<if $settings.pregnancySpeechEnabled>>"Are you trying to get pregnant?"<<else>>"Do you like being filled?"<</if>> <</switch>> <<elseif _args[0] is "anus">> <<if $player.sex is "m" and $player.penissize lte 1 and random(1, 5) is 1>> <<if random(1, 2) is 1>> "Doesn't surprise me, with a dick that small." <<else>> "With such a tiny cock, I guess that's the only way you could pleasure someone." <</if>> <<if $player.penissize is 1>> <<insecurity "penis_small" 1>> <<else>> <<insecurity "penis_small" 2>> <</if>> <<else>> <<switch random(1, 10)>> <<case 1>> <<if maleChance() gt 0>> "Did you have some fun with your boyfriend?" <<else>> "I see someone had fun already." <</if>> <<case 2>> <<if maleChance() gt 0>> "Did your boyfriend do that?" <<else>> "Who put that load in you?" <</if>> <<case 3>> <<if maleChance() gt 0>> "I bet you made your boyfriend happy." <<else>> "You must've made someone very happy." <</if>> <<case 4>>"Don't worry, I'll give you some more." <<case 5>>"Guess I'll be taking sloppy seconds." <<case 6>>"At least clean yourself after slutting out." <<case 7>>"I see someone had fun already." <<case 8>>"Nice to know you don't mind taking it in the ass." <<case 9>>"Did you enjoy getting your ass filled?" <<case 10>>"Were you trying to stay a virgin?" <</switch>> <</if>> <<else>> <<switch random(1, 8)>> <<case 1>> <<if maleChance() gt 0>> "Did you have some fun with your boyfriend?" <<else>> "I see someone had fun with you already." <</if>> <<case 2>> <<if maleChance() gt 0>> "Did your boyfriend do that?" <<else>> "Who dumped that load on you?" <</if>> <<case 3>> <<if maleChance() gt 0>> "I bet you made your boyfriend happy." <<else>> "You must've made someone very happy." <</if>> <<case 4>>"Do you like having cum on you?" <<case 5>>"Don't worry, I'll give you some more." <<case 6>>"At least clean yourself after slutting out." <<case 7>>"I see someone had fun with you already." <<case 8>>"Were you trying to stay a virgin?" <</switch>> <</if>> <</if>> <</if>> <</widget>> <<widget "bodypart_admire_parasite_comment">> <<if $NPCList[_n].type is "plant">> <<if !$speechadmired>><<set $speechadmired to 1>> <<if _args[0] is "penis">> <<He>> pouts. "That thing better not block your cum<<if $orgasmcurrent gte 1>> again<</if>>." <<else>> <<He>> raises an eyebrow. "Alright. Gotta admit, that's a new one." <</if>> <</if>> <<else>> <<famebestiality 1>> <<if !$speechadmired>><<set $speechadmired to 1>> <<He>> speaks. <<switch random(1, 8)>> <<case 1>>"That must feel good." <<case 2>>"I bet that keeps you horny. That's why you haven't taken it off yet." <<case 3>>"You should see a doctor about that." <<case 4>>"Fuck, is that real?" <<case 5>>"Did you put that on yourself?" <<case 6>>"Where did you even find that?" <<case 7>>"I would never suspect a <<girl>> like you to be into that." <<case 8>>"Not my thing, but I guess I can't be picky." <</switch>> <</if>> <</if>> <</widget>> <<widget "bodypart_admire_kylar">> <<set _silent to 1>> <<set $_kylar to statusCheck("Kylar")>> <<switch $skin[_args[0]].special>> <<case "Kylar">> <<switch $skin[_args[0]].writing>> <<case "Reserved for Kylar">> "Reserved for me," <<he>> says lovingly as <<he>> <<if (_args[0] is "left_cheek" or _args[0] is "right_cheek") and $NPCList[_n].location.genitals is 0 and $NPCList[_n].location.head isnot "head" and $NPCList[_n].penis is 0 and $mouthuse is 0>> <span class="blue">positions <<his>> $NPCList[_n].penisdesc in front of your mouth</span>. <<neutral 5>><<set $mouthuse to "penis">><<set $NPCList[_n].penis to "mouthentrance">><<set $mouthstate to "entrance">><<set $NPCList[_n].location.genitals to "head">><<set $mouthtarget to _n>> <<elseif (_args[0] is "left_cheek" or _args[0] is "right_cheek") and $NPCList[_n].location.genitals is 0 and $NPCList[_n].location.head isnot "head" and $NPCList[_n].vagina is 0 and $mouthuse is 0>> <<if random(4) is 0 and $settings.facesitEnabled>> gently rolls you onto your back and <span class="purple">straddles your face, lowering <<his>> pussy down onto your mouth</span>. <<submission 5>><<set $NPCList[_n].vagina to "facesit">><<set $mouthuse to "facesit">><<set $mouthstate to "vagina">><<set $position to "missionary">><<set $mouthtarget to _n>> <<else>> <span class="blue">wraps <<his>> legs around your head, pressing <<his>> pussy against your mouth</span>. <<submission 5>><<set $mouthuse to "othervagina">><<set $NPCList[_n].vagina to "mouth">><<set $mouthstate to "othervagina">><<set $mouthtarget to _n>> <</if>> <<elseif (_args[0] is "back" or _args[0] is "right_bottom" or _args[0] is "left_bottom") and $NPCList[_n].location.genitals is 0 and $NPCList[_n].location.head isnot "genitals" and $worn.lower.anus_exposed gte 1 and $worn.under_lower.anus_exposed gte 1 and $NPCList[_n].penis is 0 and $anususe is 0>> <span class="blue">positions <<his>> penis in front of your <<bottom>></span>. <<neutral 5>><<set $anususe to "penis">><<set $NPCList[_n].penis to "anusentrance">><<set $anusstate to "entrance">><<set $anustarget to _n>> <<elseif (_args[0] is "pubic" or _args[0] is "left_thigh" or _args[0] is "right_thigh") and $NPCList[_n].location.genitals is 0 and $NPCList[_n].location.head isnot "genitals" and $player.vaginaExist and $worn.lower.vagina_exposed gte 1 and $worn.under_lower.vagina_exposed gte 1 and $NPCList[_n].penis is 0 and $vaginause is 0>> <span class="blue">moves between your legs, positioning <<his>> $NPCList[_n].penisdesc in front of your pussy</span>. <<neutral 5>><<set $NPCList[_n].penis to "vaginaentrance">><<set $vaginause to "penis">><<set $vaginastate to "entrance">><<set $NPCList[_n].location.genitals to "genitals">><<set $vaginatarget to _n>> <<elseif (_args[0] is "pubic" or _args[0] is "left_thigh" or _args[0] is "right_thigh") and $NPCList[_n].location.genitals is 0 and $NPCList[_n].location.head isnot "genitals" and $player.penisExist and $worn.lower.vagina_exposed gte 1 and $worn.under_lower.vagina_exposed gte 1 and $NPCList[_n].vagina is 0 and $penisuse is 0>> <span class="blue">straddles you, <<his>> pussy hovering close to your <<penis>></span>. <<neutral 5>><<set $penisuse to "othervagina">><<set $NPCList[_n].vagina to "penisentrance">><<set $penisstate to "entrance">><<set $NPCList[_n].location.genitals to "genitals">><<set $penistarget to _n>> <<else>> smiles at you. <</if>> <<case "Kylar's Obsession">> <<He>> looks nervous. "I-it doesn't bother you, right?" <<case "Love Kylar Forever">> <<if random(1) and ($NPCList[_n].lefthand is 0 or $NPCList[_n].righthand is 0)>> <<He>> traces <<his>> finger along the letters, smiling. "F-o-r-e-v-e-r." <<else>> <<He>> smiles. "One day we'll get married, and it really will be forever!" <</if>> <<case "Just Kylar">> <<He>> looks down. "I-I hope you only love me..." <<default>> <<He>> smiles at you. <<unset _silent>> <</switch>> <<set $enemyanger -= 10>><<set $enemytrust += 10>><<npcincr Kylar rage -2>> <<case "Robin">> <<if _kylarStatus.includes("Rage")>> <<He>> snarls. "Forget about <<nnpc_him "Robin">>! I'm better than <<nnpc_him "Robin">>!" <<else>> <<He>> growls. "Robin can't take care of you like I can!" <</if>> <<set $enemyanger += 30>><<set $enemytrust -= 30>><<npcincr Kylar rage 3>> <<case "Whitney">> <<if _kylarStatus.includes("Rage")>> <<He>> snarls. "You're not Whitney's! You're mine!" <<else>> <<He>> freezes. "Wh... Whitney doesn't treat you right! I can!" <</if>> <<set $enemyanger += 30>><<set $enemytrust -= 30>><<npcincr Kylar rage 3>> <<case "Sydney">> <<if $skin[_args[0]].lewd isnot 1>> <<He>> frowns, but doesn't say anything about it. <<unset _silent>> <<set $enemyanger += 5>><<set $enemytrust -= 5>> <<elseif !$kylarSeen.includes("sydneyWriting") and _args[0].lewd is 1>> <<He>> frowns, reading it again, and <<his>> lip curls. "<<nnpc_He "Sydney">>... Forget about <<nnpc_him "Sydney">>." <<set $enemyanger += 20>><<set $enemytrust -= 20>><<npcincr Kylar rage 1>><<set $kylarSeen.pushUnique("sydneyWriting")>> <<elseif _kylarStatus.includes("Rage")>> <<He>> growls. "Sydney doesn't know you like I do!" <<set $enemyanger += 30>><<set $enemytrust -= 30>><<npcincr Kylar rage 3>> <<else>> <<He>> frowns. "I don't like how close you are to <<nnpc_him "Sydney">>." <<set $enemyanger += 20>><<set $enemytrust -= 20>><<npcincr Kylar rage 1>> <</if>> <<case "Black Wolf" "Great Hawk">> <<His>> eyes narrow. "I can be an animal, too. Watch!" <<set $enemyanger += 30>><<set $enemytrust -= 30>><<npcincr Kylar rage 3>> <<case "Eden" "Avery" "Alex" "Gwylan">> <<if _kylarStatus.includes("Rage")>> <<He>> snarls. "Whoever they are, they're worthless!" <<else>> <<He>> growls. "You don't need them! You only need me!" <</if>> <<set $enemyanger += 30>><<set $enemytrust -= 30>><<npcincr Kylar rage 3>> <<case "prostitution" "rape" "exhibitionism" "sex">> <<He>> grimaces. <<unset _silent>> <<set $enemyanger += 20>><<set $enemytrust -= 20>><<npcincr Kylar rage 1>> <<case "pregnancy">> /*ToDo: Pregnancy, write once Kylar's reaction to/thoughts on pregnancy is better understood. May differ based on gender, jealousy and whether or not Kylar has impregnated the PC in the past.*/ <<case "combat" "violence" "criminal">> <<His>> eyes widen, but <<he>> doesn't say anything about it. <<unset _silent>> <<default>> <<if $skin[_args[0]].lewd is 1>> <<He>> frowns. <<unset _silent>> <<set $enemyanger += 10>><<set $enemytrust -= 10>><<npcincr Kylar rage 1>> <<else>> /*Do nothing.*/ <<unset _silent>> <</if>> <</switch>> <</widget>> <<widget "bodypart_admire_named">> <<switch $npc[$npcrow.indexOf(_n)]>> <<case "Kylar">> <<bodypart_admire_kylar _args[0]>> <<set _admireNothing to true>> <<case "Robin">> <<switch $skin[_args[0]].special>> <<case "Robin">> <<switch $skin[_args[0]].writing>> <<case "Robin's Protector">> <<if $NPCName[_n].trauma gte 10>> <<He>> winces. <<npcincr Robin dom -1>> <<else>> <<He>> grins. <<set _text_output to "You really do keep me safe!">> <<npcincr Robin love 1>> <</if>> <<case "Robin & I">> <<if random(1)>> <<He>> gives you a soft look. <<set _text_output to "I'm still amazed you chose me,">> <<else>> <<He>> eyes meet yours. <<set _text_output to "I wouldn't have it any other way... you know?">> <</if>> <<npcincr Robin love 1>><<npcincr Robin dom 1>> <<case "The Orphan Lover">> <<He>> smiles. <<if random(1)>> <<set _text_output to "You really love me?">> <<else>> <<if $NPCName[_n].dom gte 20>> <<set _text_output to "I'm so glad to have you.">> <<else>> <<set _text_output to "I'm so lucky to have you.">> <</if>> <</if>> <<npcincr Robin love 1>><<npcincr Robin dom 1>> <<case "Robin's Boyfriend" "Robin's Girlfriend">> <<He>> giggles. <<set _text_output to "I'm so happy we're together!">> <<npcincr Robin love 1>><<npcincr Robin dom 1>> <<default>> <<He>> smiles. <<npcincr Robin love 1>> <</switch>> <<default>> /*Do nothing.*/ <<set _admireNothing to true>> <</switch>> <<case "Eden">> <<switch $skin[_args[0]].special>> <<case "Eden">> <<switch $skin[_args[0]].writing>> <<case "Eden's Companion">> <<if random(1)>> <<set _text_output to "That's right. You're mine, my <<wife>>. Never forget that.">> <<else>> <<set _text_output to "A nice little reminder of who you belong to.">> <</if>> <<case "Hunter and Prey">> <<He>> smiles. <<if random(1)>> <<set _text_output to "You want to be chased, is that it?">> <<else>> <<set _text_output to "You enjoy being prey, is that it?">> <</if>> <<npcincr Eden lust 1>> <<case "It's Lonely in the Woods">> <<His>> eyes soften. <<set _text_output to "It's much better with a <<girl>> like you around.">> <<case "Something is Hunting You">> <<He>> raises an eyebrow. <<set _text_output to "Do you like that? Being hunted?">> <<npcincr Eden lust 1>> <<default>> <<He>> chuckles. <</switch>> <<set $enemyanger -= 10>><<set $enemytrust += 10>> <<case "Black Wolf">> <<He>> scowls. <<if random(1)>> <<set _text_output to "Whose pet do you think you are?">> <<else>> <<set _text_output to "Maybe I'll start treating you like an animal, then.">> <</if>> <<set $enemyanger += 20>><<set $enemytrust -= 20>> <<case "Gwylan">> <<He>> scowls. <<if random(1)>> <<set _text_output to "That witch has gotten in your head.">> <<else>> <<set _text_output to "<<nnpc_He 'Gwylan'>> doesn't own you. I do.">> <</if>> <<set $enemyanger += 20>><<set $enemytrust -= 20>> <<default>> <<bodypart_admire_generic _args[0]>> <</switch>> <<case "Avery">> <<switch $skin[_args[0]].special>> <<case "Avery">> <<switch $skin[_args[0]].writing>> <<case "Avery's Trophy">> <<if $averyragerevealed is 1 and C.npc.Avery.rage gte random(20, 100)>> <<He>> scoffs. <<set _text_output to "Don't flatter yourself.">> <<set $enemyanger += 20>><<set $enemytrust -= 20>><<npcincr Avery rage 1>> <<else>> <<if random(1)>> <<He>> raises an eyebrow. <<set _text_output to "You better keep behaving so perfectly.">> <<else>> <<He>> smiles. <<set _text_output to "It would be a shame not to show you off.">> <</if>> <<set $enemyanger -= 10>><<set $enemytrust += 10>><<npcincr Avery rage -1>> <</if>> <<case "Uptown Boy" "Uptown Girl">> <<if $averyragerevealed is 1 and C.npc.Avery.rage gte random(20, 100)>> <<He>> scoffs. <<set _text_output to "An urchin like you? As if.">> <<set $enemyanger += 20>><<set $enemytrust -= 20>><<npcincr Avery rage 1>> <<else>> <<He>> laughs. <<set _text_output to "One day you just might be.">> <<set $enemyanger -= 10>><<set $enemytrust += 10>><<npcincr Avery rage -1>> <</if>> <<case "Avery's Monopoly">> <<if $averyragerevealed is 1 and C.npc.Avery.rage gte random(20, 100)>> <<He>> sneers. <<set _text_output to "You're more of a subsidiary.">> <<set $enemyanger += 20>><<set $enemytrust -= 20>><<npcincr Avery rage 1>> <<else>> <<if random(1)>> <<He>> laughs. <<set _text_output to "Maybe we should play that lewd dice game some time.">> <<else>> <<He>> laughs. <<set _text_output to "What's next? Sole Shareholder?">> <</if>> <<set $enemyanger -= 10>><<set $enemytrust += 10>><<npcincr Avery rage -1>> <</if>> <<case "Endearing">> <<if $averyragerevealed is 1 and C.npc.Avery.rage gte random(20, 100)>> <<He>> scowls. <<set _text_output to "You're not as cute as you think.">> <<set $enemyanger += 20>><<set $enemytrust -= 20>><<npcincr Avery rage 1>> <<else>> <<His>> eyes soften. <<set _text_output to "You truly are, my dear.">> <<set $enemyanger -= 10>><<set $enemytrust += 10>><<npcincr Avery rage -1>> <</if>> <<default>> <<He>> cocks an eyebrow. <</switch>> <<default>> <<bodypart_admire_generic _args[0]>> <</switch>> <<case "Alex">> <<switch $skin[_args[0]].special>> <<case "Alex">> <<switch $skin[_args[0]].writing>> <<case "Alex's Partner">> <<He>> smiles wide. <<if $player.gender_appearance is "m">> <<set _text_output to "You sure are! You're my man!">> <<else>> <<set _text_output to "You sure are! You're my woman!">> <</if>> <<npcincr Alex love 1>> <<case "Sunrise to Sunset">> <<He>> sighs. <<set _text_output to "If only we didn't have to work all day.">> <<npcincr Alex love 1>> <<case "Cowboy" "Cowgirl">> <<He>> chuckles. <<set _text_output to "We can do some riding, that's for sure.">> <<npcincr Alex lust 3>> <<case "Hay Baler">> <<if random(1)>> <<He>> tilts <<his>> head. <<set _text_output to "Like 'em strong, do you?">> <<else>> <<He>> grins. <<set _text_output to "There's better ways to make you sweat.">> <</if>> <<npcincr Alex lust 3>> <<default>> <<He>> chuckles. <</switch>> <<default>> <<bodypart_admire_generic _args[0]>> <</switch>> <<case "Black Wolf">> /*Not obtainable*/ <<if $monster is 1>> <<if random(1)>> <<bHe>> frowns. <<set _text_output to "Stupid human scratchings. Make no sense.">> <<else>> <<bHe>> tilts <<bhis>> head. <<set _text_output to "Is that dirt?">> <</if>> <</if>> <<case "Great Hawk">> /*Not obtainable*/ <<if $monster is 1>> <<bHe>> tilts <<bhis>> head. <<if random(1)>> <<set _text_output to "Did someone scratch you? What are these?">> <<else>> <<set _text_output to "Is this landbound custom?">> <</if>> <</if>> <<case "Bailey">> <<switch $skin[_args[0]].special>> <<case "Robin">> <<switch $skin[_args[0]].writing>> <<case "Robin & I">> <<He>> sneers. <<set _text_output to "Good thinking. They'll pay double for a package deal.">> <<default>> <<if $speechadmired>> <<He>> glares. <<else>> <<He>> smiles. <</if>> <<set _text_output to "Don't worry, I'll be paying <<nnpc_him 'Robin'>> a visit soon.">> <</switch>> <<case "Gwylan">> <<switch $skin[_args[0]].writing>> <<case "Witch's Ward" "Witch's Familiar">> <<He>> sneers. <<set _text_output to "What's this nonsense?">> <<case "Gwylan's Treasure" "Gwylan's Apprentice">> <<He>> sneers. <<set _text_output to "A foolish name to mark yourself with.">> <<default>> <<He>> scoffs. <<set _text_output to "You're in over your head.">> <</switch>> <<case "prostitution">> <<if $skin[_args[0]].degree gte 10000>> <<He>> nods. <<if random(1)>> <<set _text_output to "Decent price.">> <<else>> <<set _text_output to "Good. You know your worth.">> <</if>> <<else>> <<He>> sneers. <<if random(1)>> <<set _text_output to "You're selling yourself short.">> <<else>> <<set _text_output to "At least you know what you're good for.">> <</if>> <</if>> <<case "rape">> <<He>> curls <<his>> lip. <<if random(1)>> <<set _text_output to "Throwing your body away like garbage. Pathetic.">> <<else>> <<set _text_output to "What a waste.">> <</if>> <<default>> /*Do nothing.*/ <<set _admireNothing to true>> <</switch>> <<case "Briar">> <<if $skin[_args[0]].special is "prostitution">> <<if $skin[_args[0]].degree gte 10000>> <<He>> balks. <<if random(1)>> <<set _text_output to "Someone's full of <<pherself>>.">> <<else>> <<set _text_output to "Like hell you're worth that much.">> <</if>> <<elseif $skin[_args[0]].degree gte 2500>> <<if random(1)>> <<He>> smirks. <<set _text_output to "A pity. You could've made much more with me.">> <<else>> <<He>> scowls. <<set _text_output to "You're not worth shit.">> <</if>> <<else>> <<He>> scoffs. <<if random(1)>> <<set _text_output to "Who'd want a cheap street rat?">> <<else>> <<set _text_output to "At least my whores have some dignity.">> <</if>> <</if>> <<set $enemyanger += 30>><<set $enemytrust -= 30>> <<else>> <<bodypart_admire_generic _args[0]>> <</if>> <<case "Remy">> <<switch $skin[_args[0]].special>> <<case "Alex">> <<if random(1)>> <<if $speechadmired>> <<He>> flashes a smug grin. <<else>> <<He>> smiles. <</if>> <<set _text_output to "You're in better hands now.">> <<else>> <<His>> eyes narrow. <<set _text_output to "That upstart would've squandered such a fine specimen.">> <</if>> <<set $enemytrust -= 20>> <<case "cattle">> <<if $cow gte 6>> <<He>> smiles. <<if random(1)>> <<set _text_output to "The pride of this ranch.">> <<else>> <<set _text_output to "A fine specimen, indeed.">> <</if>> <<set $enemyanger -= 5>><<set $enemytrust += 5>><<livestock_obey 1>> <<else>> <<He>> smiles. <<if random(1)>> <<set _text_output to "I'll make a prize of you yet.">> <<else>> <<set _text_output to "You belong here. Never forget that.">> <</if>> <</if>> <<case "prostitution">> <<He>> laughs. <<set _text_output to "You're more valuable than you know.">> <<default>> <<bodypart_admire_generic _args[0]>> <</switch>> <<case "Gwylan">> <<switch $skin[_args[0]].special>> <<case "Gwylan">> <<switch $skin[_args[0]].writing>> <<case "Witch's Familiar">> <<He>> giggles. <<set _text_output to "You're my perfect little companion.">> <<npcincr Gwylan lust 1>> <<case "Gwylan's Apprentice">> <<He>> giggles. <<if $worn.head.name is "sage witch hat">> <<set _text_output to "You even have the hat to match!">> <<else>> <<set _text_output to "I couldn't ask for a better one.">> <</if>> <<default>> <<He>> giggles. <<set _text_output to "Oh, <<pcpetname 'Gwylan' 'simple'>>, you're adorable.">> <</switch>> <<set $enemyanger -= 10>><<set $enemytrust += 10>> <<case "Robin">> <<if $gwylan.robin gte 50>> <<He>> giggles. <<set _text_output to "Oh, that's precious. We should invite <<nnpc_him 'Robin'>> to join us.">> <<else>> /*Do nothing.*/ <<set _admireNothing to true>> <</if>> <<case "Eden">> <<He>> frowns. <<if random(1)>> <<set _text_output to "I'll just have to be the better master.">> <<else>> <<set _text_output to "Nature versus nurture, I suppose.">> <</if>> <<case "Black Wolf">> <<He>> giggles. <<if random(1)>> <<set _text_output to "Should we call some wolves to join us, <<pcpetname 'Gwylan' 'simple'>>?">> <<else>> <<set _text_output to "Are you having exotic cravings?">> <</if>> <<case "islander" "esoteric">> <<He>> hums in satisfaction. <<set _admireNothing to true>> <<default>> /*Do nothing.*/ <<set _admireNothing to true>> <</switch>> <<case "Mason" "Sydney">> /*Do nothing.*/ <<set _admireNothing to true>> <<default>> <<bodypart_admire_generic _args[0]>> <</switch>> <<if !$speechadmired and !_admireNothing>><<set $speechadmired to 1>> "<<print _text_output>>" <</if>> <</widget>> <<widget "bodypart_admire_plant">> <<if !$speechadmired>><<set $speechadmired to 1>> <<if $skin[_args[0]].type is "object">> <<switch $skin[_args[0]].writing>> <<case "unicorn">> "Horses like that exist? Whoa." <<case "heart" "cross">> "Aw, how cute! ...What is it?" <<case "paw_print">> <<if $location is "forest">> "Hey, are you with the... never mind." <<else>> "Exotic!" <</if>> <<case "flower" "butterfly">> "Oh, I love it!" <<set $enemytrust += 20>> <<case "star">> <<if $location is "forest">> "I wish we could see the stars, but the trees block most of them out..." <<elseif Time.dayState is "night">> "Just like the sky!" <<else>> "Just like the night sky..." <</if>> <<case "skull">> "You mean you have one of those in your body? I don't buy it." <<case "flame">> <<if $skin[_args[0]].pen is "brand" or $skin[_args[0]].pen is "magic">> "That's not... actually burning you, is it?" <<else>> "You've got a taste for the dangerous." <</if>> <<case "cattle_brand">> <<if $location is "moor">> "Don't worry. I won't let Remy take you from me." <<else>> "Aw, how cute! ...What is it?" <</if>> <<case "penis">> "Ooh, how lewd! ...What do you mean, unused?!" <</switch>> <<else>> <<switch $skin[_args[0]].pen>> <<case "tattoo">> "What is that, a birthmark?" <<case "brand">> "Yowch, wouldn't want that seared into me." <<case "magic">> "Did I have a funky mushroom, or is that actually glowing?" <<case "lipstick">> "Ooh, pink!" <<case "mud">> "Nature's canvas." <<default>> "It's a shame to draw on such cute skin." <</switch>> <</if>> <</if>> <</widget>> <<widget "bodypart_admire">> <<if !$noAdmire and ($role isnot "islander" or $islander_language gte 100)>> <<if _args[0].includes("random_")>> <<set _args[0] to _args[0].replace("random_", (random(0,1) ? "left_" : "right_"))>> <!-- ex "random_cheek" turns into either "right_cheek" or "left_cheek" --> <</if>> <<switch _args[1]>> <<case "bodywriting">> <<if $skin[_args[0]] is undefined or $newlyWritten.includes(_args[0])>> <<elseif $skin[_args[0]].writing>> <<if _args[0] is "forehead" or (_args[0] is "left_cheek" or _args[0] is "right_cheek") and !$worn.face.type.includes("mask") or (_args[0] is "left_shoulder" or _args[0] is "right_shoulder") and ($worn.upper.exposed gte 1 or $worn.upper.open is 1) and ($worn.under_upper.exposed gte 1 or $worn.under_open is 1) or _args[0] is "breasts" and $worn.upper.exposed gte 1 and ($worn.under_upper.exposed gte 1 or $worn.under_upper.open is 1) or _args[0] is "back" and ($worn.upper.exposed gte 1 or $worn.upper.state isnot "waist") and ($worn.under_upper.exposed gte 1 or $worn.under_upper.state isnot "waist") or (_args[0] is "left_bottom" or _args[0] is "right_bottom") and ($worn.lower.exposed gte 1 or $worn.lower.anus_exposed gte 1) and ($worn.under_lower.exposed gte 1 or !$worn.under_lower.type.includes("covered")) or _args[0] is "pubic" and $worn.lower.exposed gte 1 and ($worn.under_lower.exposed gte 1 or !$worn.under_lower.type.includes("covered")) or (_args[0] is "left_thigh" or _args[0] is "right_thigh") and $worn.lower.vagina_exposed gte 1 and !$worn.under_lower.type.includes("covered")>>/*Makes sure bodywriting isn't seen if obstructed by clothing.*/ <<if $skin[_args[0]].type is "text">> <<He>> reads the "<<print $skin[_args[0]].writing>>" writing on your <<bodypart _args[0]>>. <<else>> <<He>> examines the <<print $skin[_args[0]].writing>> image on your <<bodypart _args[0]>>. <</if>> <<if $npc[_n]>> <<bodypart_admire_named _args[0]>> <<else>> <<bodypart_admire_generic _args[0]>> <</if>> <</if>> <</if>> <<case "cum">> <<bodypart_admire_cum_convert _args[0]>> <<case "parasite">> <<bodypart_admire_parasite_convert _args[0]>> <</switch>> <</if>> <</widget>> <<widget "bodypart_admire_generic">> <<if $skin[_args[0]].arrow is 1 and (_args[0] is "left_cheek" or _args[0] is "right_cheek" or _args[0] is "back" or _args[0] is "left_bottom" or _args[0] is "right_bottom" or _args[0] is "pubic" or _args[0] is "left_thigh" or _args[0] is "right_thigh")>> <<bodypart_admire_arrow _args[0]>> <<elseif $NPCList[_n].type is "plant">> <<bodypart_admire_plant _args[0]>> <<elseif $skin[_args[0]].special is "prostitution">> <<bodypart_admire_prostitution _args[0]>> <<elseif $skin[_args[0]].special is "rape">> <<bodypart_admire_rape _args[0]>> <<elseif $skin[_args[0]].special is "exhibitionism">> <<bodypart_admire_exhibitionism _args[0]>> <<elseif $skin[_args[0]].special is "bestiality" or $skin[_args[0]].special is "Black Wolf" or $skin[_args[0]].special is "Great Hawk">> <<bodypart_admire_bestiality _args[0]>> <<elseif $skin[_args[0]].special is "sex">> <<bodypart_admire_promiscuity _args[0]>> <<elseif $skin[_args[0]].special is "pregnancy">> <<bodypart_admire_pregnancy _args[0]>> <<elseif $skin[_args[0]].special is "impreg">> <<bodypart_admire_impreg _args[0]>> <<elseif $skin[_args[0]].gender is "f">> <<bodypart_admire_girly _args[0]>> <<elseif $skin[_args[0]].gender is "m">> <<bodypart_admire_boyish _args[0]>> <<elseif $skin[_args[0]].special is "combat">> <<bodypart_admire_combat _args[0]>> <<elseif $skin[_args[0]].special is "violence">> <<bodypart_admire_violence _args[0]>> <<elseif $skin[_args[0]].special is "criminal">> <<bodypart_admire_criminal _args[0]>> <<elseif $skin[_args[0]].writing>> <<bodypart_admire_lewd _args[0]>> <</if>> <</widget>> <<widget "bodypart_admire_cum_convert">> <<switch _args[0]>> <<case "forehead">> <<bodypart_admire_cum hair>> <<case "left_bottom", "right_bottom">> <<if random(1, 2) is 1>> <<bodypart_admire_cum bottom>> <<else>> <<bodypart_admire_cum anus>> <</if>> <<case "left_shoulder">> <<bodypart_admire_cum leftarm>> <<case "right_shoulder">> <<bodypart_admire_cum rightarm>> <<case "pubic">> <<if $player.penisExist and (!$player.vaginaExist or random(1, 2) is 1)>> <<bodypart_admire_cum penis>> <<else>> <<if random(1, 2) is 1>> <<bodypart_admire_cum vagina>> <<else>> <<bodypart_admire_cum vaginaoutside>> <</if>> <</if>> <<case "back">> <<bodypart_admire_cum neck>> <<case "breasts">> <<bodypart_admire_cum chest>> <<case "left_thigh", "right_thigh">> <<bodypart_admire_cum thigh>> <<case "left_cheek", "right_cheek">> <<if random(1, 2) is 1>> <<bodypart_admire_cum face>> <<else>> <<bodypart_admire_cum mouth>> <</if>> <<default>> <<set _admireNothing to true>> <</switch>> <<if $NPCList[_n].type is "plant">> <<set _admireNothing to true>> <</if>> <</widget>> <<widget "bodypart_admire_parasite_convert">> <<switch _args[0]>> <<case "left_bottom", "right_bottom">> <<bodypart_admire_parasite bottom>> <<case "left_shoulder">> <<bodypart_admire_parasite left_arm>> <<case "right_shoulder">> <<bodypart_admire_parasite right_arm>> <<case "pubic">> <<if $player.penisExist and (!$player.vaginaExist or random(1, 2) is 1)>> <<bodypart_admire_parasite penis>> <<else>> <<bodypart_admire_parasite clit>> <</if>> <<case "breasts">> <<bodypart_admire_parasite nipples>> <<default>> <<set _admireNothing to true>> <</switch>> <</widget>> <<widget "bodypart_admire_cum">> <<if _admireNothing>> <<elseif setup.bodyliquid.combined(_args[0]) gte 4>> <<set _bodypartLiquidText to formatList( ["semen", "goo", "nectar"].filter(stuff => $player.bodyliquid[_args[0]][stuff] gte 1) ).replace("goo", "slime") >> <<if _args[0] is "vagina" or _args[0] is "anus" or _args[0] is "mouth">> <<He>> <<print either("sees a large amount of", "spots the", "notices the", "eyes up the", "stares at the")>> <<print _bodypartLiquidText>> <<print either("oozing from", "pouring out of", "running from", "drooling from", "streaming from")>> your <<bodypart _args[0]>>. <<else>> <<He>> <<print either("sees a large amount of", "spots the", "notices the", "eyes up the", "stares at the")>> <<print _bodypartLiquidText>> <<print either("coating", "soaking", "running down", "cascading off", "dripping off of")>> your <<bodypart _args[0]>>. <</if>> <<if !$npc[_n]>> <<bodypart_admire_cum_heavy _args[0]>> <</if>> <<elseif setup.bodyliquid.combined(_args[0]) gte 2>> <<set _bodypartLiquidText to formatList( ["semen", "goo", "nectar"].filter(stuff => $player.bodyliquid[_args[0]][stuff] gte 1) ).replace("goo", "slime") >> <<if _args[0] is "vagina" or _args[0] is "anus" or _args[0] is "mouth">> <<He>> <<print either("sees a small amount of", "spots some", "notices some", "eyes up the")>> <<print _bodypartLiquidText>> <<print either("dripping from", "leaking from", "running from", "dribbling out of")>> your <<bodypart _args[0]>>. <<else>> <<He>> <<print either("sees a small amount of", "spots some", "notices some", "eyes up the")>> <<print _bodypartLiquidText>> on your <<bodypart _args[0]>>. <</if>> <<if !$npc[_n]>> <<bodypart_admire_cum_light _args[0]>> <</if>> <</if>> <</widget>> <<widget "bodypart_admire_parasite">> <<if _admireNothing or $parasite[_args[0]].name is undefined>> <<elseif (_args[0] is "nipples" and $worn.upper.exposed gte 2 and $worn.under_upper.exposed gte 1) or (["bottom","clit","penis"].includes(_args[0]) and $worn.lower.exposed gte 2 and $worn.under_lower.exposed gte 1) or !["nipples","bottom","clit","penis"].includes(_args[0])>> <<He>> <<print either("notices", "stares at", "glances at", "eyes up", "sees")>> the <<print $parasite[_args[0]].name>> on your <<bodypart _args[0]>>. <<if !$npc[_n]>> <<bodypart_admire_parasite_comment _args[0]>> <</if>> <</if>> <</widget>> <<widget "bodypart_admire_chance">> <<if $enemytype isnot "beast" and ($NPCList[_n].mouth is 0 or $NPCList[_n].mouth is "speech_only" or ($NPCList[_n].type is "plant" and $speechkissvirgin is 1)) and $speechdisable isnot 1>> <<switch random(1, 5)>> <<case 5>> <<bodypart_admire _args[0] bodywriting>> <<case 4>> <<bodypart_admire _args[0] cum>> <<case 3>> <<bodypart_admire _args[0] parasite>> <<default>> /*Do nothing*/ <<set _admireNothing to true>> <</switch>> <</if>> <</widget>> <<widget "bodywriting">> <<bodywritingExposureCheck true true>> <<for _active_bodypart range setup.bodyparts>> <<if $skin[_active_bodypart].writing>> <<if $skin[_active_bodypart].type is "text">> <<if isLoveInterest($skin[_active_bodypart].special)>> "<span class="lewd"><<print $skin[_active_bodypart].writing>></span>" has been <<elseif $skin[_active_bodypart].special isnot "none">> "<span class="red"><<print $skin[_active_bodypart].writing>></span>" has been <<elseif $skin[_active_bodypart].lewd is 1>> "<span class="pink"><<print $skin[_active_bodypart].writing>></span>" has been <<else>> "<span class="purple"><<print $skin[_active_bodypart].writing>></span>" has been <</if>> <<if $skin[_active_bodypart].pen is "pen">> written on your <<bodypart _active_bodypart>> in regular pen. <<elseif $skin[_active_bodypart].pen is "marker">> written on your <<bodypart _active_bodypart>> in <span class="purple">permanent marker.</span> <<elseif $skin[_active_bodypart].pen is "tattoo">> <span class="red">tattooed</span> on your <<bodypart _active_bodypart>>. <<elseif $skin[_active_bodypart].pen is "lipstick">> written on your <<bodypart _active_bodypart>> in lipstick. <<elseif $skin[_active_bodypart].pen is "mud">> written on your <<bodypart _active_bodypart>> in mud. <<elseif $skin[_active_bodypart].pen is "brand">> <span class="red">branded</span> on your <<bodypart _active_bodypart>>. <<elseif $skin[_active_bodypart].pen is "magic">> <span class="pink">sealed</span> on your <<bodypart _active_bodypart>>. <</if>> <<else>> <<if $skin[_active_bodypart].special isnot "none">> A picture of a <span class="red"><<print $skin[_active_bodypart].writing>></span> has been <<elseif $skin[_active_bodypart].lewd is 1>> A picture of a <span class="pink"><<print $skin[_active_bodypart].writing>></span> has been <<else>> A picture of a <span class="purple"><<print $skin[_active_bodypart].writing>></span> has been <</if>> <<if $skin[_active_bodypart].pen is "pen">> drawn on your <<bodypart _active_bodypart>> in regular pen. <<elseif $skin[_active_bodypart].pen is "lipstick">> drawn on your <<bodypart _active_bodypart>> in lipstick. <<elseif $skin[_active_bodypart].pen is "mud">> drawn on your <<bodypart _active_bodypart>> in mud. <<elseif $skin[_active_bodypart].pen is "marker">> drawn on your <<bodypart _active_bodypart>> in <span class="purple">permanent marker.</span> <<elseif $skin[_active_bodypart].pen is "tattoo">> <span class="red">tattooed</span> on your <<bodypart _active_bodypart>>. <<elseif $skin[_active_bodypart].pen is "brand">> <span class="red">branded</span> on your <<bodypart _active_bodypart>>. <<elseif $skin[_active_bodypart].pen is "magic">> <span class="pink">sealed</span> on your <<bodypart _active_bodypart>>. <</if>> <</if>> <<if $skin[_active_bodypart].arrow is 1>> <<if _active_bodypart is "left_cheek" or _active_bodypart is "right_cheek">> An arrow points to your mouth. <<elseif _active_bodypart is "left_bottom" or _active_bodypart is "right_bottom" or _active_bodypart is "back">> An arrow points to your anus. <<elseif _active_bodypart is "pubic" or _active_bodypart is "left_thigh" or _active_bodypart is "right_thigh">> An arrow points to your <<genitals true>>. <</if>> <</if>> <<if _skin_array.includes(_active_bodypart)>> <span class="purple">It's currently visible.</span> <<else>> <span class="lblue">It isn't currently visible.</span> <</if>> <br> <</if>> <</for>> <</widget>> <<widget "bodywriting_prostitution_check">> <!-- unused --> <</widget>> <<widget "tattoo_parlour">> <<generate1>><<person1>> <<if ["bestiality", "Black Wolf", "Great Hawk"].includes($tattoo_parlour.special)>> <<set $_embarassingType to "deviant">> <<elseif $tattoo_parlour.lewd is 1>> <<set $_embarassingType to "lewd">> <<elseif ["left_bottom", "right_bottom", "pubic", "breasts"].includes($tattoo_bodypart)>> <<set $_embarassingType to "location">> <</if>> <<if $tattoo_choice>> <<if $tattoo_parlour.type is "text">> <<set $_request to `<span class="pink">"<<print $tattoo_parlour.writing>>"</span>`>> <<else>> <<set $_request to `a <span class="pink"><<print $tattoo_parlour.writing>></span>`>> <</if>> <<if $_embarassingType>> Blushing, you tell the tattoo artist you want $_request tattooed on your <<bodypart $tattoo_bodypart>>. <<control 50>><<gggcontrol>> <br><br> <<else>> You tell the tattoo artist you want $_request tattooed on your <<bodypart $tattoo_bodypart>>. <<control 25>><<ggcontrol>> <</if>> <<else>> <<set $_writing to ($tattoo_parlour.type is "text" ? "writing" : "image")>> <<if $_embarassingType>> Blushing, you tell the tattoo artist you want the $_writing on your <<bodypart $tattoo_bodypart>> to become permanent. <<else>> You tell the tattoo artist you want the $_writing on your <<bodypart $tattoo_bodypart>> to become permanent. <</if>> <</if>> <<if $_embarassingType is "deviant">> <<Hes>> unfazed by your deviant request. <<elseif $_embarassingType is "lewd">> <<Hes>> unfazed by your lewd request. <<elseif $_embarassingType is "location">> <<Hes>> unfazed by the location. <</if>> <br><br> <<set $_skirt to setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt>> <<if ["left_bottom", "right_bottom"].includes($tattoo_bodypart)>> "Alright," <<he>> says, pulling the curtain shut. "Let's see your bottom." <<if $worn.lower.type.includes("naked")>> <<if $worn.under_lower.type.includes("naked")>> You <<nervously>> turn, showing <<him>> your <<bottom>>. <<else>> You <<nervously>> pull down your $worn.under_lower.name, baring your <<bottom>>. <</if>> <<elseif $worn.under_lower.type.includes("naked")>> <<if $_skirt is 1>> You <<nervously>> flip up your skirt, baring your <<bottom>>. <<else>> You <<nervously>> pull down your $worn.lower.name, baring your <<bottom>>. <</if>> <<else>> <<if $_skirt is 1>> You <<nervously>> flip up your skirt, baring your $worn.under_lower.name. <<elseif $worn.lower.set is $worn.upper.set>> You <<nervously>> remove your $worn.upper.name, baring your <<undertop>> and $worn.under_lower.name. <<else>> You <<nervously>> pull down your $worn.lower.name, baring your $worn.under_lower.name. <</if>> "Those need to go," <<he>> says. "Or they'll get in the way." <<if $worn.under_lower.set is $worn.under_upper.set>> You follow <<his>> instruction and shuffle out of your $worn.under_upper.name while <<his>> back is turned. <<else>> You follow <<his>> instruction and pull down your $worn.under_lower.name while <<his>> back is turned. <</if>> <</if>> <br><br> <<elseif ["pubic", "left_thigh", "right_thigh"].includes($tattoo_bodypart)>> "Alright," <<he>> says, pulling the curtain shut. <<if $worn.lower.type.includes("naked")>> <<if $tattoo_bodypart is "pubic" and !$worn.under_lower.type.includes("naked")>> "Those need to go," <<he>> says. "Or they'll get in the way." <<if $worn.under_lower.set is $worn.under_upper.set>> You <<nervously>> follow <<his>> instruction and shuffle out of your $worn.under_upper.name while <<his>> back is turned. <<else>> You <<nervously>> follow <<his>> instruction and pull down your $worn.under_lower.name while <<his>> back is turned. <</if>> <</if>> <<else>> <<if $_skirt is 1>> "You'll have to pull your skirt right up. Don't want fabric getting in the way." You <<nervously>> lift your $worn.lower.name, baring your <<undies>>. <<elseif $worn.upper.set is $worn.lower.set>> "You'll have to strip right down. Don't want fabric getting in the way." You <<nervously>> remove your $worn.upper.name, baring your <<undertop>> and <<undies>>. <<else>> "You'll have to take your bottoms off. Don't want the fabric getting in the way." You <<nervously>> pull down your $worn.lower.name, baring your <<undies>>. <</if>> <<if $tattoo_bodypart is "pubic" and !$worn.under_lower.type.includes("naked")>> "Those need to go too," <<he>> says. <<if $worn.under_lower.set is $worn.under_upper.set>> You follow <<his>> instruction and shuffle out of your $worn.under_upper.name while <<his>> back is turned. <<else>> You follow <<his>> instruction and pull down your $worn.under_lower.name while <<his>> back is turned. <</if>> <</if>> <</if>> <br><br> <<elseif ["breasts", "back"].includes($tattoo_bodypart)>> "Alright," <<he>> says, pulling the curtain shut. <<if !$worn.upper.type.includes("naked")>> <<if $worn.upper.open is 1 or $worn.upper.type.includes("naked")>> "Could you pull your top down?" You <<nervously>> tug down your $worn.upper.name, <<else>> "Could you take your top off?" You <<nervously>> remove your $worn.upper.name, <</if>> exposing your <<undertop>>. <</if>> <br><br> <</if>> <<if ["left_bottom", "right_bottom", "pubic", "left_thigh", "right_thigh"].includes($tattoo_bodypart)>> <<He>> pulls a lever, and the chair beside <<him>> reclines. "Lie <<print (["left_bottom", "right_bottom"].includes($tattoo_bodypart) ? "on your side" : "down")>>," <<he>> says. <<if $worn.genitals.name isnot "naked">> <<He>> doesn't mention your $worn.genitals.name. You assume that means it won't get in the way. <br><br> <</if>> <<if $worn.under_lower.type.includes("naked")>> Bare from the waist down, you lie as instructed. "This will hurt a bit." <<else>> You lie as instructed. "This will hurt a bit." <</if>> <<else>> <<He>> pulls a lever, and the chair beside <<him>> reclines. "Lie down." You lie as instructed. "This will hurt a bit." <</if>> <br><br> <<Hes>> not wrong. Your <<bodypart $tattoo_bodypart>> stings the whole way through, but you get used to it, becoming bored instead. <<if $_embarassingType is "location">> The artist remains professional despite the lewd location. <</if>> <br><br> "There we go," <<he>> says at last, reaching for a mirror. You examine your new tattoo, <<set $_colour to ($tattoo_parlour.lewd is 1 ? "lewd" : "purple")>> <<if $tattoo_parlour.type is "text">> <span @class="$_colour">"<<print $tattoo_parlour.writing>>"</span> <<else>> a <span @class="$_colour"><<print $tattoo_parlour.writing>></span> <</if>> now permanently emblazoned on your <<bodypart $tattoo_bodypart>>. <br><br> The artist explains how to care for your skin while the tattoo is still raw. You get the gist. "Thanks for your custom," <<he>> says as you stand. <<if $tattoo_bodypart is "left_bottom" or $tattoo_bodypart is "right_bottom">> "Oh, and be careful sitting down." <</if>> <br><br> <<if $tattoo_parlour.writing is "Book Criminal >:(" or $tattoo_parlour.writing is "Book Criminal <3">> <<earnFeat "A Crime Most Foul">> <</if>> <<unset $tattoo_parlour>> <<unset $tattoo_bodypart>> <<unset $tattoo_choice>> <<endevent>> <</widget>> <<widget "bodywriting_dungeon_select">> <<if !Object.values($skin).some(p => p.writing is "163") or random(0,2) is 2>> <<add_bodywriting _args[0] one_six_three>> <<elseif random(0,2) is 1>> <<bodywriting_rape_select _args[0]>> <<else>> <<add_bodywriting _args[0] slave>> <</if>> <</widget>><div @class="(Errors.log.length==0?'hidden':'') + ' error-reporter-btn'" onclick="Errors.Reporter.toggle()"></div> <<run T.buttons = new window.Tab("overlayButtons", "macro-button-selected")>> <<if $intro is 0>> <<if $options.weatherUpdate && $options.images>> <<skybox>> <<else>> <<weatherdisplay>> <</if>> <<if $gamemode is "soft">> <<set $pain to 0>> <</if>> <<if $options.images is 1>> <<addclass body has-images>> <<removeclass body no-images>> <div id="sidebar-img-container"> <<img>> </div> <<else>> <<removeclass body has-images>> <<addclass body no-images>> <</if>> <<combateffects>> <div id="storyCaptionDiv" @class="($extendedStats ? 'statsExtended' : '')"> <div id="debugWindow"></div> <<if $options.images is 1>> <div id="stats" onclick="extendStats()"> <<statsCaption>> </div> <</if>> <div id="storyCaptionContent"> <<if $options.numpad is true>> <style> .mob-btn-group{ position: fixed; top: 100px; right: 0; display: flex; align-items: end; flex-direction: column; cursor: pointer; color: #fff; } .mob-btn-group>div{ padding: 10px; background-color: var(--850); border: 1px solid var(--750); border-radius: 5px 0 0 5px; } .mob-btn-group>div:hover{ background-color: var(--800); } </style> <div class="mob-btn-group unstowable"> <div class="mob-btn-h" onclick="mobBtnShow()" style="display:none;"></div> <div class="mob-btn" onclick="mobBtnHide()"></div> <div @class="'mob-btn' + (Links.currentLinks.length < 1 ? ' red' : '')" onclick="mobClick(1)">1</div> <div @class="'mob-btn' + (Links.currentLinks.length < 2 ? ' link-disabled' : '')" onclick="mobClick(2)">2</div> <div @class="'mob-btn' + (Links.currentLinks.length < 3 ? ' link-disabled' : '')" onclick="mobClick(3)">3</div> <div @class="'mob-btn' + (Links.currentLinks.length < 4 ? ' link-disabled' : '')" onclick="mobClick(4)">4</div> <div @class="'mob-btn' + (Links.currentLinks.length < 5 ? ' link-disabled' : '')" onclick="mobClick(5)">5</div> <div @class="'mob-btn' + (Links.currentLinks.length < 6 ? ' link-disabled' : '')" onclick="mobClick(6)">6</div> <div @class="'mob-btn' + (Links.currentLinks.length < 7 ? ' link-disabled' : '')" onclick="mobClick(7)">7</div> <div @class="'mob-btn' + (Links.currentLinks.length < 8 ? ' link-disabled' : '')" onclick="mobClick(8)">8</div> <div @class="'mob-btn' + (Links.currentLinks.length < 9 ? ' link-disabled' : '')" onclick="mobClick(9)">9</div> <div @class="'mob-btn' + (Links.currentLinks.length < 10 ? ' link-disabled' : '')" onclick="mobClick(10)">0</div> </div> <</if>> <<if $endeventerror isnot undefined>> <<if $options.debugdisable is "f">> <<if $options.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 $cheatsEnabled is true>>Disregard this if you've just used a cheat.<</if>></span> <br><br> <</if>> <<unset $endeventerror>> <</if>> <<if $physiquechange is 1>><<set $physiquechange to 0>> <<if $physiqueuse gte $physique / 1000>> <span class="gold"><<possessedWord 'Your' 'gold'>> physique is improving due to all the exercise <<possessedWord 'you' 'gold'>> are getting.</span> <<set $physiqueuse to 0>> <br><br> <<else>> <span class="pink"><<possessedWord 'You' 'pink'>> didn't get enough exercise yesterday, <<possessedWord 'your' 'pink'>> physique has deteriorated slightly as a result.</span> <<set $physiqueuse to 0>> <br><br> <</if>> <</if>> <<if !$lessonmissedtext>> <<else>> <<if $lessonmissedtext is 1>> <span class="pink"><<possessedWord 'You' 'pink'>> missed a lesson yesterday.</span> <<elseif $lessonmissedtext gte 2>> <span class="pink"><<possessedWord 'You' 'pink'>> missed $lessonmissedtext lessons yesterday.</span> <</if>> /* give players a grace period of 2 weeks worth of skipped lessons before penalizing them for not attending the school in case they're stuck in a bad end, and wait a weak before doing that again */ <<if $lessonmissed gte 50 && !$truancytimer>> <span class="red"><<possessedWord "You've" 'red'>> missed many lessons. <<possessedWord 'Your' 'red'>> reputation has taken a hit.</span> <<delinquency 50>><<gggdelinquency>><<status -5>><<lcool>> <<set $truancytimer to 7>> <<elseif $truancytimer>> <<set $truancytimer-->> <</if>> /* don't let $lessonmissed get out of control */ <<set $lessonmissed to Math.clamp($lessonmissed, 0, 75)>> <<set $lessonmissedtext to 0>> <br> <</if>> <<if $options.images is 0>> <div id="money-noimg"> <<possessedWord 'You'>> have <<printmoney $money true>><br> </div> <br> It is <<ampm>>. <br> It is <<print Time.weekDayName>>. <br> <</if>> <<schoolday>> <br> <<if $options.clothingCaption or !$options.images>> <div id="sidebar-look-description"> <<clothingCaptionText>> </div> <br> <</if>> <<caption_clamp>> <<calculateallure>> <<rng>> <<if $worn.neck.collared gte 1 and $worn.neck.cursed is 1>> <<if $worn.neck.name is "familiar collar" and $hypnosis_traits.devotion gte 4>> <span class="pink"><<possessedWord 'Your' 'pink'>> <<if $worn.neck.type.includes("leash")>>leashed<</if>> familiar collar protects <<possessedWord 'your' 'pink'>> neck.</span> <<else>> <span class="red">A <<if $worn.neck.type.includes("leash")>>leashed<</if>> collar encases <<possessedWord 'your' 'red'>> neck.</span> <</if>> <br> <</if>> <<if $penilechastityparasite isnot 0>> <span class="pink"><<possessedWord 'You' 'pink'>> feel $penilechastityparasite squirming around <<possessedWord 'your' 'pink'>> penis.</span> <br> <</if>> <<if $vaginalchastityparasite isnot 0 and $vaginalchastityparasite eq $analchastityparasite>> <span class="pink"><<possessedWord 'You' 'pink'>> feel $vaginalchastityparasite squirming inside <<possessedWord 'your' 'pink'>> vagina and lower intestine.</span> <br> <<else>> <<if $vaginalchastityparasite isnot 0>> <span class="pink"><<possessedWord 'You' 'pink'>> feel $vaginalchastityparasite squirming inside <<possessedWord 'your' 'pink'>> vagina.</span> <br> <</if>> <<if $analchastityparasite isnot 0>> <span class="pink"><<possessedWord 'You' 'pink'>> feel $analchastityparasite squirming inside <<possessedWord 'your' 'pink'>> lower intestine.</span> <br> <</if>> <</if>> <<for _type range $parasite.types>> <<switch $parasite[_type].length>> <<case 0>> <<case 1>> <<if $parasite[_type][0] is "nipples">> <span class="pink">The _type parasites clinging to <<possessedWord 'your' 'pink'>> <<print $parasite[_type][0]>> suck and massage <<possessedWord 'you' 'pink'>>.</span> <<else>> <span class="pink">The _type parasite clinging to <<possessedWord 'your' 'pink'>> <<print $parasite[_type][0]>> sucks and massages <<possessedWord 'you' 'pink'>>.</span> <</if>> <br> <<case 2>> <span class="pink">The _type parasites clinging to <<possessedWord 'your' 'pink'>> <<print $parasite[_type][0]>> and <<print $parasite[_type][1]>> suck and massage <<possessedWord 'you' 'pink'>>.</span> <br> <<default>> <<set _pstring to $parasite[_type][0]>> <<for _i to 1; _i lt $parasite[_type].length - 1; _i++>> <<set _pstring += ", " + $parasite[_type][_i]>> <</for>> <<set _pstring += ", and " + $parasite[_type][_i]>> <span class="pink">The _type parasites clinging to <<possessedWord 'your' 'pink'>> _pstring suck and massage <<possessedWord 'you' 'pink'>>.</span> <br> <</switch>> <</for>> <<if $worn.genitals.name isnot "chastity parasite">> <<if $parasite.penis.name and $parasite.penis.name is "parasite">> <<if $earSlime.defyCooldown>> <span class="red">The parasite compresses <<possessedWord 'your' 'red'>> <<if $player.ballsExist>>balls<<else>>penis<</if>>.</span> <<elseif $earSlime.vibration and $earSlime.vibration lte 20>> <span class="pink">The parasite pulsates around <<possessedWord 'your' 'pink'>> penis.</span> <<elseif $earSlime.vibration>> <span class="pink">The parasite vibrates around <<possessedWord 'your' 'pink'>> penis.</span> <</if>> <<elseif $parasite.clit.name and $parasite.clit.name is "parasite">> <<if $earSlime.defyCooldown>> <span class="red">The parasite<<if $earSlime.focus isnot "pregnancy">> penis<</if>> compresses <<possessedWord 'your' 'red'>> clit.</span> <<elseif $earSlime.vibration and $earSlime.vibration lte 20>> <span class="pink">The parasite<<if $earSlime.focus isnot "pregnancy">> penis<</if>> pulsates around <<possessedWord 'your' 'pink'>> clit.</span> <<elseif $earSlime.vibration>> <span class="pink">The parasite<<if $earSlime.focus isnot "pregnancy">> penis<</if>> vibrates around <<possessedWord 'your' 'pink'>> clit.</span> <</if>> <</if>> <</if>> <<if $parasite.left_ear.name and $parasite.left_ear.name eq $parasite.right_ear.name>> <<if $parasite.left_ear.name is "slime" and !$hypnosis_traits.silence>> <span class="lewd">The $parasite.left_ear.name in each ear influences <<possessedWord 'your' 'lewd'>> thoughts<<if $earSlime.growth gte 100>> and actions<</if>>.</span> <br> <</if>> <<else>> <<if $parasite.left_ear.name is "slime" and !$hypnosis_traits.silence>> <span class="lewd">The $parasite.left_ear.name in <<possessedWord 'your' 'lewd'>> left ear influences <<possessedWord 'your' 'lewd'>> thoughts.</span> <br> <</if>> <<if $parasite.right_ear.name is "slime" and !$hypnosis_traits.silence>> <span class="lewd">The $parasite.right_ear.name in <<possessedWord 'your' 'lewd'>> right ear influences <<possessedWord 'your' 'lewd'>> thoughts.</span> <br> <</if>> <</if>> <<switch pcGetArmsBound()>> <<case "both">> <span class="pink"><<possessedWord 'Your' 'pink'>> arms are bound.</span> <br> <<case "left">> <span class="purple"><<possessedWord 'Your' 'purple'>> left arm is bound.</span> <br> <<case "right">> <span class="purple"><<possessedWord 'Your' 'purple'>> right arm is bound.</span> <br> <</switch>> <<if $feetuse is "bound" or $worn.feet.type.includes("shackle")>> <span class="pink"><<possessedWord 'Your' 'pink'>> legs are bound.</span> <br> <</if>> <<goo>> <div id="statmeters" @class="($options.showCaptionText is true ? '' : 'condensed')"> <<if $gamemode isnot "soft">> <<paincaption>> <</if>> <<arousalcaption>> <<tirednesscaption>> <<stresscaption>> <<if $innocencestate is 1>> <<innocencecaption>> <<else>> <<traumacaption>> <</if>> <<if $gamemode isnot "soft">> <<controlcaption>> <</if>> <<allurecaption>> <<if $underwater is 1>> <<oxygencaption true>> <</if>> <<drunkcaption>><<druggedcaption>><<hallucinogencaption>> </div> <br> <<if $options.tipdisable is "f" and (!$statFreeze or $hc)>> <span class="gold">Tip:</span> <<tips>> <br><br> <</if>> <div id="overlayButtons"> <<button CHARACTERISTICS>> <<overlayReplace "characteristics">> <</button>> <<button SOCIAL>> <<overlayReplace "social">> <</button>> <div class="sidebarButtonSplit"> <<button TRAITS>> <<overlayReplace "traits">> <</button>> <<button JOURNAL>> <<overlayReplace "journal">> <</button>> </div> <div class="sidebarButtonSplit"> <<button STATS>> <<overlayReplace "statistics">> <</button>> <<button FEATS>> <<overlayReplace "gameFeats">> <</button>> </div> <br> <div class="sidebarButtonSplit"> <<if $dancing is 0 and $combat is 0 and $passage isnot "Start2" and $cheatsEnabled is true or $debug is 1>> <<button CHEATS>> <<overlayReplace "cheats">> <</button>> <</if>> <<if $debug is 1>> <<debug>> <</if>> </div> <!-- Event debug button - Shows an overlay stored in debug-events.twee. --> <<if $event isnot undefined and $options.debugdisable is "f">> <!-- Default _temp to what we should people regularly if an event active. --> <<set _temp to "<span class='yellow'>SHOW EVENT INFO</span>">> <!-- Prepare for cases where we want to update the button view. --> <<if EventSystem.any()>> <<if !EventSystem.validate()>> <!-- Could not validate the NPC list with event data. --> <<set _temp to "<span class='red'>EVENT ERROR</span>">> <<elseif EventSystem.has(0) and EventSystem.get(0).area[0] is $passage>> <<set _eventAlertMajorArea to false>> <<set _temp to "<span class='green'>EVENT ACTIVE</span>">> <<elseif setup.majorAreas.includes($passage)>> <<set _eventAlertMajorArea to true>> <<set _temp to "<span class='red'>EVENT ACTIVE</span>">> <<elseif $event.buffer.map(e => e.area[0]).length is 1 and EventSystem.has(0) and ["Forest Cabin", "Eden Cabin", "Eden Clearing"].includes(EventSystem.get(0).area[0])>> <<set _temp to "<span class='green'>EVENT ACTIVE</span>">> <</if>> <</if>> <<button _temp>><<overlayReplace "eventExtraInfo">><</button>> <<unset _temp>> <</if>> <<if $options.showDebugRenderer>> <<button "DEBUG RENDERER">><<overlayReplace "canvasModel">><</button>> <</if>> <div class="sidebarButtonSplit"> <<button OPTIONS>> <<overlayReplace "options">> <</button>> <<button SAVES>> <<overlayReplace "saves">> <</button>> </div> </div> </div> </div> <<if $passage isnot "Start" and $passage isnot "Start2">> <div id="mobileStats"> <<if $options.sidebarStats is "all">> <div class="weatherIcon"> <<weatherIcon>> </div> <</if>> <<if $options.sidebarTime is "top">> <<mobileStatsTime>> <</if>> <<if $options.sidebarStats isnot "disabled">> <<mobileStats>> <</if>> <<if $options.sidebarTime is "bottom">> <<mobileStatsTime>> <</if>> </div> <</if>> <<else>> <<run T.buttons = new window.Tab("startCaption", "macro-button-selected")>> <<if StartConfig.enableImages is true>> <div id="startingPlayerImage" class="hidden"></div> <</if>> <div id="startCaption"> <<startCaption>> </div> <</if>> <br> <<unset _currentOverlay>><<widget "startCaption">> <<versioninfo>> <div class="my-4"> <<linkinformation>> </div> <<button SAVES>> <<overlayReplace "saves">> <</button>> <div class="sidebarButtonSplit"> <<button OPTIONS>> <<overlayReplace "options">> <</button>> <<button FEATS>> <<overlayReplace "startFeats">> <</button>> </div> <</widget>> <<widget "statsCaption">> <<set $_icon to $outside ? "icon_open.png" : "icon_closed.png">> <<set _message to $outside ? "<<possessedWord 'You'>> are outside." : "<<possessedWord 'You'>> are inside.">> <<if $extendedStats>> <div class="left-fixed expanded" tooltip="_message"> <img class="icon_ui" @src="'img/ui/' + $_icon"> </div> <</if>> <div class="content"> <div class="first-row"> <div class="centered-elements"> <<if !$extendedStats>> <div tooltip="_message"> <img class="icon_ui" @src="'img/ui/' + $_icon"> </div> <</if>> <div> <span class="true"> <<printmoney $money true>> </span> </div> <div> <<clock>> <<ampm>> </div> <<if !$extendedStats>> <div> <img class="icon_ui" src="img/ui/icon_day.png"> <<print Time.weekDayName.slice(0, 3)>> </div> <</if>> </div> </div> <<if $extendedStats>> <div class="second-row"> <div> <img class="icon_ui" src="img/ui/icon_day.png"> <<print Time.weekDayName.slice(0, 3)>> <<print getShortFormattedDate(Time.date)>> </div> </div> <</if>> </div> <</widget>> <<widget "startingPlayerImage">> <<set $naturalhaircolour to $hairselect>> <<set _filters to { "body": Skin.cssColorFilter(Skin.color.natural), "breasts": Skin.cssColorFilter(Skin.color.natural), "penis": Skin.cssColorFilter(Skin.color.natural), "mouth": Skin.cssColorFilter(Skin.color.natural), }>> <<if $hairlength gte 900>> <<set _hairlengthstage to "feet">> <<elseif $hairlength gte 700>> <<set _hairlengthstage to "thighs">> <<elseif $hairlength gte 600>> <<set _hairlengthstage to "navel">> <<elseif $hairlength gte 400>> <<set _hairlengthstage to "chest">> <<elseif $hairlength gte 200>> <<set _hairlengthstage to "shoulder">> <<else>> <<set _hairlengthstage to "short">> <</if>> <<set _fringelengthstage to "short">> <<if _showClothes is undefined>> <<set _showClothes to true>> <</if>> <<if $player.gender is "m">> <<set _clothesType to "male">> <<elseif $player.gender is "f">> <<set _clothesType to "female">> <<else>> <<if $player.gender_body is "m" or ($player.gender_body is "a" and $player.breastsize lte 3)>> <<set _clothesType to "male">> <<else>> <!-- if $player.gender_body is "f" or ($player.gender_body is "a" and $player.breastsize gt 3)) --> <<set _clothesType to "female">> <</if>> <</if>> <<if $background is "crossdresser">> <<set _clothesType to ($player.sex is "m" ? "female" : "male")>> <</if>> <div id="startImg" @class="'hair-'+ $hairselect + ' noAnimations'"> /*Prep for image checks*/ <<switch $player.breastsize>> <<case 12>> <<set _breastSize to 6>> <<case 8 9 10 11>> <<set _breastSize to 5>> <<case 6 7>> <<set _breastSize to 4>> <<case 4 5>> <<set _breastSize to 3>> <<case 3>> <<set _breastSize to 2>> <<case 1 2>> <<set _breastSize to 1>> <<default>> <<set _breastSize to 0>> <</switch>> <<if $player.sex is "m" or $player.sex is "h">> <<set _penisSize to $player.penissize>> <<else>> <<unset _penisSize>> <</if>> <<set _disabled to ["disabled","hidden"]>> <<selectmodel "lighting" "sidebar">> <<set _modeloptions.lights.gradient.enabled = false>> <<set _modeloptions.lights.flat.enabled = false>> <<rendermodel "lighting">> <<selectmodel "main" "sidebar">> <!-- reuse sidebar cache slot --> <<twinescript>> _modeloptions.body_type = $player.bodyshape; _modeloptions.breast_size = _breastSize; _modeloptions.breasts = (!_showUnderwear && !_showClothes) ? "default" : "cleavage"; if (_penisSize isnot undefined) { _modeloptions.penis = $player.virginity.penile is true ? "virgin" : "default"; _modeloptions.penis_size = _penisSize; _modeloptions.balls = $player.sex is "h" ? $player.ballsExist : true; } _modeloptions.skin_type = Skin.color.natural; _modeloptions.skin_tone = Skin.color.tan; _modeloptions.hair_colour = $hairselect; _modeloptions.hair_fringe_colour = $hairselect; _modeloptions.hair_sides_position = $hairposition; _modeloptions.hair_sides_length = _hairlengthstage; _modeloptions.hair_fringe_length = _hairlengthstage; _modeloptions.facestyle = $facestyle; _modeloptions.facevariant = $facevariant; _modeloptions.left_eye = $eyeselect; _modeloptions.right_eye = $eyeselect; _modeloptions.mouth = "smile"; _modeloptions.freckles = $player.freckles is true; _modeloptions.toast = _toast is true; _modeloptions.demon_wings_type = $transformationParts.demon.wings; _modeloptions.angel_wings_type = $transformationParts.angel.wings; _modeloptions.fallen_wings_type = $transformationParts.fallenAngel.wings; _modeloptions.worn = {}; if (_clothesType is "male") { if (_showClothes) { _modeloptions.worn = { upper: { index: 4, /* t-shirt */ colour: "tangerine", }, lower: { index: 5, /* shorts */ colour: "blue", }, legs: { index: 2 /* boysgymsocks */ }, feet: { index: 1 /* schoolshoes */ }, }; } if (_showUnderwear) { _modeloptions.worn.under_lower = { index: 4, /* briefs */ colour: "black", }; } } else if (_clothesType is "female") { if (_showClothes) { _modeloptions.worn = { upper: { index: 1, /* sundress */ colour: "white", }, lower: { index: 1, /* sundress */ colour: "white", }, legs: { index: 3 /* girlsgymsocks */ }, feet: { index: 1 /* schoolshoes */ }, }; } if (_showUnderwear) { if ($player.breastsize > 3) { _modeloptions.worn.under_upper = { index: 12, /* plainbra */ colour: "pale white", }; } _modeloptions.worn.under_lower = { index: 1, /* plainpanties */ colour: "pale white", }; } } _modeloptions.crotch_visible = !_showClothes && !_showUnderwear; <</twinescript>> <<rendermodel>> </div> <</widget>> <<widget "startingPlayerImageUpdate">> <<if $passage is "Start" and StartConfig.enableImages is true>> <<replace #startingPlayerImage>> <<startingPlayerImage>> <</replace>> <</if>> <</widget>>Testing<<widget "sleep_clamp">> <<set $stress = Math.clamp($stress, 0, $stressmax)>> <<arousalclamp>> <<set $tiredness = Math.clamp($tiredness, 0, 2000)>> <</widget>> <<widget "caption_clamp">> <<set $stress = Math.clamp($stress, 0, $stressmax)>> <<set $enemyanger to Math.clamp($enemyanger, 0, 200)>> <<set $audienceexcitement to Math.clamp($audienceexcitement, 0, 100)>> <<set $audiencearousal to Math.clamp($audiencearousal, 0, 100)>> <</widget>> <<widget "clamp">> <<traumaclamp>> <<caption_clamp>> <<set $beauty = Math.clamp($beauty, 0, $beautymax)>> <<set $physique = Math.clamp($physique, 0, $physiquesize)>> <<set $upperwet = Math.clamp($upperwet, 0, 200)>> <<set $lowerwet = Math.clamp($lowerwet, 0, 200)>> <<set $underlowerwet = Math.clamp($underlowerwet, 0, 200)>> <<set $underupperwet = Math.clamp($underupperwet, 0, 200)>> <<set $seductionskill = Math.clamp($seductionskill, 0, 1000)>> <<set $oralskill = Math.clamp($oralskill, 0, 1000)>> <<set $vaginalskill = Math.clamp($vaginalskill, 0, 1000)>> <<set $analskill = Math.clamp($analskill, 0, 1000)>> <<set $handskill = Math.clamp($handskill, 0, 1000)>> <<set $feetskill = Math.clamp($feetskill, 0, 1000)>> <<set $bottomskill = Math.clamp($bottomskill, 0, 1000)>> <<set $thighskill = Math.clamp($thighskill, 0, 1000)>> <<set $chestskill = Math.clamp($chestskill, 0, 1000)>> <<set $penileskill = Math.clamp($penileskill, 0, 1000)>> <<set $earSlime.corruption = Math.clamp($earSlime.corruption, 0, 100)>> <<set $milk_volume to Math.clamp($milk_volume, 24, $milk_max)>> <<set $semen_volume to Math.clamp($semen_volume, 0, $semen_max)>> <<set $semen_amount = Math.clamp($semen_amount, 0, $semen_volume)>> <<set $milk_amount = Math.clamp($milk_amount, 0, $milk_volume)>> <<set $lactation_pressure = Math.clamp($lactation_pressure, 0, 100)>> <<set $nectar_addiction = Math.clamp($nectar_addiction, 0, 200)>> <<set $hygiene = Math.clamp($hygiene, 0, 2000)>> <<arousalclamp>> <<set $tiredness = Math.clamp($tiredness, 0, 2000)>> <<set $hairlength = Math.clamp($hairlength, 0, 1000)>> <<set $fringelength = Math.clamp($fringelength, 0, 1000)>> <<if $gamemode is "soft">> <<set $control = $controlmax>> <<else>> <<set $control = Math.clamp($control, 0, $controlmax)>> <</if>> <<set $awareness = Math.clamp($awareness, -200, 1000)>> <<set $submissive = Math.clamp($submissive, 0, 2000)>> /* note: $player.virginity.* is truthy even after it's taken */ <<if $virginityProtected or $player.virginity.vaginal is true and $player.virginity.penile is true>> <<set $purity = Math.clamp($purity, 0, 1000)>> <<else>> <<set $purity = Math.clamp($purity, 0, 999)>> <</if>> <<set $orgasmcount = Math.clamp($orgasmcount, 0, 25)>> <<set $willpower = Math.clamp($willpower, 0, $willpowermax)>> <<set $orphan_hope = Math.clamp($orphan_hope, -50, 50)>> <<set $orphan_reb = Math.clamp($orphan_reb, -50, 50)>> <<set $english to Math.clamp($english, 0, 1000)>> <<set $maths to Math.clamp($maths, 0, 1000)>> <<set $science to Math.clamp($science, 0, 1000)>> <<set $history to Math.clamp($history, 0, 1000)>> <<set $school to Math.clamp($school, 0, 4000)>> <<set $cool to Math.clamp($cool, 0, $coolmax)>> <<set $delinquency to Math.clamp($delinquency, 0, 1000)>> <<set $skulduggery to Math.clamp($skulduggery, 0, 1000)>> <<set $swimmingskill to Math.clamp($swimmingskill, 0, 1000)>> <<set $danceskill to Math.clamp($danceskill, 0, 1000)>> <<set $athletics to Math.clamp($athletics, 0, 1000)>> <<set $tending to Math.clamp($tending, 0, 1000)>> <<painclamp>> <<set $housekeeping to Math.clamp($housekeeping, 0, 1000)>> <<if $gamemode is "soft">> <<set $pain to Math.clamp($pain, 0, 0)>> <<else>> <<set $pain to Math.clamp($pain, 0, 200)>> <</if>> <<set $facebruise to Math.clamp($facebruise, 0, 100)>> <<set $chestbruise to Math.clamp($chestbruise, 0, 100)>> <<set $tummybruise to Math.clamp($tummybruise, 0, 100)>> <<set $vaginabruise to Math.clamp($vaginabruise, 0, 100)>> <<set $penisbruise to Math.clamp($penisbruise, 0, 100)>> <<set $anusbruise to Math.clamp($anusbruise, 0, 100)>> <<set $bottombruise to Math.clamp($bottombruise, 0, 100)>> <<set $thighbruise to Math.clamp($thighbruise, 0, 100)>> <<set $neckbruise to Math.clamp($neckbruise, 0, 100)>> <<set $masochism to Math.clamp($masochism, 0, 1000)>> <<set $sadism to Math.clamp($sadism, 0, 1000)>> <<set $player.breastsize to Math.clamp($player.breastsize, 0, 12)>> <<set $player.bottomsize to Math.clamp($player.bottomsize, 0, 8)>> <<set $player.penissize to Math.clamp($player.penissize, -2, 4)>> <<set $ballssize to Math.clamp($ballssize, -2, 4)>> <<set $mouthsensitivity to Math.clamp($mouthsensitivity, 1, 4)>> <<set $breastsensitivity to Math.clamp($breastsensitivity, 1, 4)>> <<set $bottomsensitivity to Math.clamp($bottomsensitivity, 1, 4)>> <<set $genitalsensitivity to Math.clamp($genitalsensitivity, 1, 4)>> <<set $exhibitionism to Math.clamp($exhibitionism, 0, 100)>> <<set $promiscuity to Math.clamp($promiscuity, 0, 100)>> <<set $deviancy to Math.clamp($deviancy, 0, 100)>> <<set $hallucinogen to Math.clamp($hallucinogen, 0, 1000)>> <<set $drunk to Math.clamp($drunk, 0, 1000)>> <<set $drugged to Math.clamp($drugged, 0, 1000)>> <</widget>> <<widget "fameclamp">> <!-- clamp all fames between 0 and 2k --> <<for _t range Object.keys($fame)>> <<set $fame[_t] to Math.clamp($fame[_t], 0, 2000)>> <</for>> <!-- limit preg fame growth by the number of actual pregnancies --> <<set $fame.pregnancy to Math.clamp($fame.pregnancy, 0, Math.clamp(playerNormalPregnancyTotal(),1,8) * 250)>> <<set $fame.scrap to Math.clamp($fame.scrap, 0, 2000)>> <<set $fame.good to Math.clamp($fame.good, 0, 2000)>> <<set $fame.business to Math.clamp($fame.business, 0, 2000)>> <<set $fame.pimp to Math.clamp($fame.pimp, 0, 2000)>> <<set $fame.social to Math.clamp($fame.social, 0, 2000)>> <<set $fame.model to Math.clamp($fame.model, 0, 2000)>> <</widget>><<widget "deviancy1">> <<deviancyN 1>> <</widget>> <<widget "deviancy2">> <<deviancyN 2>> <</widget>> <<widget "deviancy3">> <<deviancyN 3>> <</widget>> <<widget "deviancy4">> <<deviancyN 4>> <</widget>> <<widget "deviancy5">> <<deviancyN 5>> <</widget>> <<widget "deviancy6">> <<deviancyN 6>> <</widget>> <<widget "deviancyN">> <<set $_n to _args[0]>> <<set $_scaledDeviancyMax to 20 * $_n>> <<if $control lt $controlmax>> <<if $_n is 6>> Performing such an act of manic depravity <span class="green">fully restores your sense of control</span>, <span class="red">but inflicts damage to your mental state</span>. <<elseif $deviancy lt $_scaledDeviancyMax>> Performing such a lewd act excites you and <span class="green">restores your sense of control and self-worth</span>, for now. <<else>> Performing such a lewd act excites you, but does nothing to lift the cloud hanging over you. <span class="pink">You need to do something more extreme.</span> <</if>> <<else>> <<if $_n is 6>> You already feel in control, <span class="red">leaving you unfulfilled as your act of manic depravity seems wasted</span>. <<elseif $deviancy lt $_scaledDeviancyMax>> You already feel in control, but performing such a lewd act <span class="green">soothes</span> and excites you. <<else>> You already feel in control and the act is <span class="pink">too tame to soothe</span>, but it does excite you. <</if>> <</if>> <<if !hasSexStat("deviancy", $_n, false) and $drunk gte 1>> <<if $_n is 6>> <span @class="'red ' + basicDrunkCss()">Your head feels fuzzy and light. You hope you don't remember this later.</span> <<else>> <span @class="'blue ' + basicDrunkCss()">You feel weightless as the alcohol dulls your inhibitions.</span> <</if>> <</if>> <<if !hasSexStat("deviancy", $_n, false) and (playerHeatMinArousal() + playerRutMinArousal()) gte 1>> <<if $_n is 6>> <span @class="'red ' + basicJitterCss()">You know you shouldn't want this, but you find it hard to care.</span> <<else>> <span @class="'pink ' + basicJitterCss()">You feel a primal urge pushing you to go further.</span> <</if>> <</if>> <!-- separating the code from the written text --> <<if $_n is 6>> <<set $deviancy += ($control lt $controlmax ? 2 : 1)>> <<if $control lt $controlmax>> <<control $controlmax>> /* max out control, doesn't matter if it's *10 */ <<gggcontrol>> <</if>> <<trauma 40>> <<ggtrauma>> <<elseif $deviancy lt $_scaledDeviancyMax>> <<set $deviancy += ($control lt $controlmax ? 2 : 1)>> <<if $control lt $controlmax>> <<ggcontrol>> <</if>> <<control 25>><<stress $_n -300>><<combattrauma `$_n * -30`>><<ltrauma>><<lstress>> <<else>> <<if V.daily["deviancyStress" + $_n] isnot 1 and $statFreeze isnot true>> <<set V.daily["deviancyStress" + $_n] to 1>><<lstress>><<stress $_n -100>> <</if>> <</if>> <<arousal `$_n * 100`>><<garousal>> <<earSlimeSeenActions "deviancy" $_n>> <br><br> <<set $deviancy to Math.clamp($deviancy, 0, 100)>> <</widget>> <<widget "combatdeviancy1">> <<combatdeviancyN 1>> <</widget>> <<widget "combatdeviancy2">> <<combatdeviancyN 2>> <</widget>> <<widget "combatdeviancy3">> <<combatdeviancyN 3>> <</widget>> <<widget "combatdeviancy4">> <<combatdeviancyN 4>> <</widget>> <<widget "combatdeviancy5">> <<combatdeviancyN 5>> <</widget>> <<widget "combatdeviancy6">> <<combatdeviancyN 6>> <</widget>> <<widget "combatdeviancyN">> <<set $_n to _args[0]>> <<if $consensual is 1 or $_n is 6>> <<set $_scaledDeviancyMax to 20 * $_n>> <<if $deviancy lt $_scaledDeviancyMax>> <<set $deviancy += ($control lt $controlmax ? 2 : 1)>> <<if $control lt $controlmax>> <<set _combat_deviancy_success to (_combat_deviancy_success gte $_n ? _combat_deviancy_success : $_n)>> <<if $_n is 6>> <<control $controlmax>> <<else>> <<control 25>> <</if>> <<else>> <<set _combat_deviancy_max_control to $_n>> <</if>> <<if $_n is 6>> <<combattrauma 40>> <<else>> <<stress $_n -300>> <<combattrauma `$_n * -30`>> <</if>> <<else>> <<set _combat_deviancy_failure to $_n>> <<if V.daily["deviancyStress" + $_n] isnot 1 and $statFreeze isnot true>> <<set V.daily["deviancyStress" + $_n] to 1>><<stress $_n -100>> <</if>> <</if>> <<arousal `$_n * 100`>> <</if>> <<set $deviancy to Math.clamp($deviancy, 0, 100)>> <<earSlimeSeenActions "deviancy" $_n 5>> <</widget>> <<widget "combat_deviancy_text">> <<if _combat_deviancy_success>> <br> <<if _combat_deviancy_success is 6>> Your crazed act of deviancy <span class="green">fully restores your sense of control</span>, <span class="red">but inflicts damage to your mental state</span>.<<gggcontrol>><<ggtrauma>><<ggarousal>> <<else>> Your deviant behaviour <span class="green">restores your sense of control.</span><<ggcontrol>><<ltrauma>><<lstress>><<garousal>> <</if>> <<elseif _combat_deviancy_max_control>> <br> <<if _combat_deviancy_success is 6>> You already feel in control, <span class="red">leaving you unfulfilled as your act of manic depravity seems wasted</span>.<<gggcontrol>><<ggtrauma>><<ggarousal>> <<else>> Your deviant behaviour <span class="green">soothes and excites you.</span><<ltrauma>><<lstress>><<garousal>> <</if>> <<elseif _combat_deviancy_failure>> <br> Your behaviour is deviant, <span class="pink">though it's too tame to soothe.</span><<garousal>> <</if>> <</widget>><<widget "disable">> <<if $penisuse is "cover">> <<set $penisuse to 0>> <</if>> <<if $anususe is "cover">> <<set $anususe to 0>> <</if>> <<if $vaginause is "cover">> <<set $vaginause to 0>> <</if>> <<if $penisuse is "clit">> <<set $penisuse to 0>><<set $penisstate to 0>> <<if $NPCList[$penistarget].vagina is "frot">> <<set $NPCList[$penistarget].vagina to 0>> <<set $NPCList[$penistarget].location.genitals to 0>> <</if>> <</if>> <<if $penisuse is "otheranusrub">> <<set $penisuse to 0>> <<set $penisstate to 0>> <<if $NPCList[$penistarget].vagina is "otheranusfrot">> <<set $NPCList[$penistarget].vagina to 0>> <<set $NPCList[$penistarget].location.genitals to 0>> <</if>> <<if $NPCList[$penistarget].penis is "otheranusfrot">> <<set $NPCList[$penistarget].penis to 0>> <<set $NPCList[$penistarget].location.genitals to 0>> <</if>> <</if>> <<disablefeet>> <<disablearms>> <<if $bottomuse is "penis">> <<set $bottomuse to 0>><<set $anusstate to 0>><<set $anususe to 0>> <<if $NPCList[$anustarget].penis is "cheeks">> <<set $NPCList[$anustarget].penis to 0>> <<set $NPCList[$anustarget].location.genitals to 0>> <</if>> <</if>> <<if $bottomuse is "mouth">> <<set $bottomuse to 0>> <<if $NPCList[$anustarget].mouth is "bottom">> <<set $NPCList[$anustarget].mouth to 0>> <<if $NPCList[$anustarget].penis is "othermouth">> <<set $NPCList[$anustarget].penis to 0>> <<set $NPCList[$anustarget].location.head to 0>> <</if>> <<if $NPCList[$anustarget].vagina is "othermouth">> <<set $NPCList[$anustarget].vagina to 0>> <<set $NPCList[$anustarget].location.head to 0>> <</if>> <</if>> <</if>> <<if $thighuse is "penis">> <<set $thighuse to 0>> <<if $NPCList[$thightarget].penis is "thighs">> <<set $NPCList[$thightarget].penis to 0>> <<set $NPCList[$thightarget].location.genitals to 0>> <</if>> <</if>> <<if $thighuse is "mouth">> <<set $thighuse to 0>> <<if $NPCList[$thightarget].mouth is "thigh">> <<set $NPCList[$thightarget].mouth to 0>> <<if $NPCList[$thightarget].penis is "othermouth">> <<set $NPCList[$thightarget].penis to 0>> <<set $NPCList[$thightarget].location.head to 0>> <</if>> <<if $NPCList[$thightarget].vagina is "othermouth">> <<set $NPCList[$thightarget].vagina to 0>> <<set $NPCList[$thightarget].location.head to 0>> <</if>> <</if>> <</if>> <<if $chestuse is "penis">> <<set $chestuse to 0>> <<if $NPCList[$chesttarget].penis is "chest">> <<set $NPCList[$chesttarget].penis to 0>> <<set $NPCList[$chesttarget].location.genitals to 0>> <</if>> <</if>> <<if $feetuse isnot "grappled" and $feetuse isnot "bound" and $feetuse isnot "legLock" and $feetuse isnot "legLocked">> <<set $feetuse to 0>> <</if>> <<for _i = 0; _i < $tentacles.max; _i++>> <<if $tentacles[_i].head is "feet">> <<set $leftleg to 0>> <<set $rightleg to 0>> <<set $tentacles[_i].head to 0>> <<elseif $tentacles[_i].head is "leftarm">> <<set $leftarm to 0>> <<set $leftarmstate to 0>> <<set $tentacles[_i].head to 0>> <<elseif $tentacles[_i].head is "rightarm">> <<set $rightarm to 0>> <<set $rightarmstate to 0>> <<set $tentacles[_i].head to 0>> <</if>> <</for>> <</widget>> <<widget "disablefeet">> <<if $feetuse is "othervagina">> <<set $feetuse to 0>> <<if $NPCList[$feettarget].vagina is "feet">> <<set $NPCList[$feettarget].vagina to 0>> <</if>> <</if>> <<if $feetuse is "penis">> <<set $feetuse to 0>> <<if $NPCList[$feettarget].penis is "feet">> <<set $NPCList[$feettarget].penis to 0>> <</if>> <</if>> <</widget>> <<widget "disablearms">> <<disableleftarm>> <<disablerightarm>> <</widget>> <<widget "disableleftarm">> <<if $leftarm is "othervagina">> <<if $NPCList[$lefttarget].vagina is "leftarm">> <<set $NPCList[$lefttarget].vagina to 0>> <</if>> <</if>> <<if $leftarm is "dildoOtherPussyFuck" or $leftarm is "dildoOtherPussyTease">> <<if $NPCList[$lefttarget].vagina is "leftDildo">> <<set $NPCList[$lefttarget].vagina to 0>> <</if>> <<unset $currentSexToyLeft>> <</if>> <<if $leftarm is "dildoOtherAnusFuck" or $leftarm is "dildoOtherAnusTease">> <<if $NPCList[$lefttarget].vagina is "leftDildoAnus">> <<set $NPCList[$lefttarget].vagina to 0>> <</if>> <<if $NPCList[$lefttarget].penis is "leftDildoAnus">> <<set $NPCList[$lefttarget].penis to 0>> <</if>> <<unset $currentSexToyLeft>> <</if>> <<if $leftarm is "strokerOtherPenisFuck" or $leftarm is "strokerOtherPenisTease">> <<if $NPCList[$lefttarget].penis is "leftStroker">> <<set $NPCList[$lefttarget].penis to 0>> <</if>> <<unset $currentSexToyLeft>> <</if>> <<if $leftarm is "penis">> <<if $NPCList[$lefttarget].penis is "leftarm">> <<set $NPCList[$lefttarget].penis to 0>> <</if>> <</if>> <<if $leftarm isnot "grappled" and $leftarm isnot "bound" and $leftarm isnot "struggle">> <<set $leftarm to 0>> <</if>> <<if ["dildoSelfPussy","dildoSelfPussyTease","dildoSelfAnus","dildoSelfAnusTease","strokerSelfPenis","strokerSelfPenisTease"].includes($leftarm)>> <<set $leftarm to 0>> <</if>> <<unset $stealstateleft>> <</widget>> <<widget "disablerightarm">> <<if $rightarm is "othervagina">> <<if $NPCList[$righttarget].vagina is "rightarm">> <<set $NPCList[$righttarget].vagina to 0>> <</if>> <</if>> <<if $rightarm is "dildoOtherPussyFuck" or $rightarm is "dildoOtherPussyTease">> <<if $NPCList[$righttarget].vagina is "rightDildo">> <<set $NPCList[$righttarget].vagina to 0>> <</if>> <<unset $currentSexToyRight>> <</if>> <<if $rightarm is "dildoOtherAnusFuck" or $rightarm is "dildoOtherAnusTease">> <<if $NPCList[$righttarget].vagina is "rightDildoAnus">> <<set $NPCList[$righttarget].vagina to 0>> <</if>> <<if $NPCList[$righttarget].penis is "rightDildoAnus">> <<set $NPCList[$righttarget].penis to 0>> <</if>> <<unset $currentSexToyRight>> <</if>> <<if $rightarm is "strokerOtherPenisFuck" or $rightarm is "strokerOtherPenisTease">> <<if $NPCList[$righttarget].penis is "rightStroker">> <<set $NPCList[$righttarget].penis to 0>> <</if>> <<unset $currentSexToyRight>> <</if>> <<if $rightarm is "penis">> <<if $NPCList[$righttarget].penis is "rightarm">> <<set $NPCList[$righttarget].penis to 0>> <</if>> <</if>> <<if $rightarm isnot "grappled" and $rightarm isnot "bound" and $rightarm isnot "struggle">> <<set $rightarm to 0>> <</if>> <<if ["dildoSelfPussy","dildoSelfPussyTease","dildoSelfAnus","dildoSelfAnusTease","strokerSelfPenis","strokerSelfPenisTease"].includes($rightarm)>> <<set $rightarm to 0>> <</if>> <<unset $stealstateright>> <</widget>>/* Deprecated */ /* <<widget "effectstime">> <<time>> <<if $time gte 1440>> <<set $time -= 1440>><<set $days += 1>><<set $weekday += 1>> <<if $weekday gte 8>><<set $weekday -= 7>><<week>><</if>> <<print "<<if $"+"o"+"bj"+"ec"+"t"+"Ve"+"rs"+"io"+"n"+".t"+"es"+"t isnot undefined>><<set $"+"f"+"e"+"at"+"s."+"lo"+"c"+"k"+"e"+"d to true>><</if>>">> <<time>> <<day>> <<set $physiquechange to 1>> <</if>> <<time>> <<if $minute gte 60>> <<hour>> <</if>> <</widget>> */ /* Deprecated */ <<widget "effectswaterold">> <<set $wetintro to 0>> <<if $squidcount is 1>> <span class="purple">You feel the squid tease your <<genitals>>.</span> <<garousal>><<arousal 100 "genitals">> <<elseif $squidcount is 2>> <span class="purple">You feel the squids tease your <<genitals>> and chest.</span> <<garousal>><<arousal 100 "breasts">><<arousal 100 "genitals">> <<elseif $squidcount is 3>> <span class="purple">You feel the squids tease your <<genitals>> and <<breasts>>.</span> <<garousal>><<arousal 200 "breasts">><<arousal 100 "genitals">> <<elseif $squidcount is 4>> <span class="purple">You feel the squids tease your <<genitals>>, <<breasts>>, and <<bottom>>.</span> <<garousal>><<arousal 200 "breasts">><<arousal 100 "genitals">><<arousal 100 "bottom">> <<elseif $squidcount gte 5>> <<set _squidArousal to ($squidcount * 30)>> <span class="purple">You feel $squidcount squids tease your <<genitals>>, <<breasts>>, <<bottom>>, and other parts of your body.</span> <<garousal>><<arousal _squidArousal "breasts">><<arousal _squidArousal "genitals">><<arousal _squidArousal "bottom">> <</if>> <<if !$worn.upper.type.includes("naked") and !waterproofCheck($worn.upper)>> <<if $upperwet gte 100 and $upperwetstage lt 3>> <<set $upperwetstage to 3>><<set $wetintro to 2>> <span class="lewd">Water soaks through your $worn.upper.name, exposing your <<undertop>>. </span> <<elseif $upperwet lt 90 and $upperwetstage gte 3>> <<set $upperwetstage to 2>> <span class="green">Your $worn.upper.name <<upperhas>> dried, concealing your <<undertop>>. </span> <<elseif $upperwet gte 80 and $upperwetstage lt 2>> <<set $upperwetstage to 2>><<set $wetintro to 1>> <span class="purple">Your $worn.upper.name <<upperplural>> wet. </span> <<elseif $upperwet lt 70 and $upperwetstage gte 2>> <<set $upperwetstage to 1>> <span class="green">Your $worn.upper.name <<upperplural>> drying out. </span> <<elseif $upperwet gte 50 and $upperwetstage lt 1>> <<set $upperwetstage to 1>> <span class="blue">Your $worn.upper.name <<upperplural>> damp. </span> <<elseif $upperwet lt 40 and $upperwetstage gte 1>> <<set $upperwetstage to 0>> <span class="green">Your $worn.upper.name <<upperplural>> dry. </span> <</if>> <</if>> <<if !$worn.lower.type.includes("naked") and !waterproofCheck($worn.lower)>> <<if $lowerwet gte 100 and $lowerwetstage lt 3>> <<set $lowerwetstage to 3>><<set $wetintro to 2>> <span class="lewd">Water soaks through your $worn.lower.name, exposing your <<undies>>. </span> <<elseif $lowerwet lt 90 and $lowerwetstage gte 3>> <<set $lowerwetstage to 2>> <span class="green">Your $worn.lower.name <<lowerhas>> dried, concealing your <<undies>>. </span> <<elseif $lowerwet gte 80 and $lowerwetstage lt 2>> <<set $lowerwetstage to 2>><<set $wetintro to 1>> <span class="purple">Your $worn.lower.name <<lowerplural>> wet. </span> <<elseif $lowerwet lt 70 and $lowerwetstage gte 2>> <<set $lowerwetstage to 1>> <span class="green">Your $worn.lower.name <<lowerplural>> drying out. </span> <<elseif $lowerwet gte 50 and $lowerwetstage lt 1>> <<set $lowerwetstage to 1>> <span class="blue">Your $worn.lower.name <<lowerplural>> damp. </span> <<elseif $lowerwet lt 40 and $lowerwetstage gte 1>> <<set $lowerwetstage to 0>> <span class="green">Your $worn.lower.name <<lowerplural>> dry. </span> <</if>> <</if>> <<if !$worn.under_lower.type.includes("naked") and !playerChastity() and !waterproofCheck($worn.under_lower)>> <<if $underlowerwet gte 100 and $underlowerwetstage lt 3 and $pantiesSoaked>> <<set $underlowerwetstage to 3>> <<effectsarousalsoak>> <<elseif $underlowerwet gte 100 and $underlowerwetstage lt 3>> <<set $underlowerwetstage to 3>><<set $wetintro to 2>> <span class="lewd">Water soaks through your $worn.under_lower.name, exposing your <<genitals>>. </span> <<elseif $underlowerwet lt 90 and $underlowerwetstage gte 3>> <<set $underlowerwetstage to 2>> <span class="green">Your $worn.under_lower.name <<underlowerhas>> dried, concealing your <<genitals>>. </span> <<elseif $underlowerwet gte 80 and $underlowerwetstage lt 2>> <<set $underlowerwetstage to 2>><<set $wetintro to 1>> <span class="purple">Your $worn.under_lower.name <<underlowerplural>> wet. </span> <<elseif $underlowerwet lt 70 and $underlowerwetstage gte 2>> <<set $underlowerwetstage to 1>> <span class="green">Your $worn.under_lower.name <<underlowerplural>> drying out. </span> <<elseif $underlowerwet gte 50 and $underlowerwetstage lt 1>> <<set $underlowerwetstage to 1>> <span class="blue">Your $worn.under_lower.name <<underlowerplural>> damp. </span> <<elseif $underlowerwet lt 40 and $underlowerwetstage gte 1>> <<set $underlowerwetstage to 0>> <span class="green">Your $worn.under_lower.name <<underlowerplural>> dry. </span> <</if>> <</if>> <<if !$worn.under_upper.type.includes("naked") and !$worn.under_upper.type.includes("chastity") and !waterproofCheck($worn.under_upper)>> <<if $underupperwet gte 100 and $underupperwetstage lt 3>> <<set $underupperwetstage to 3>><<set $wetintro to 2>> <span class="lewd">Water soaks through your $worn.under_upper.name, exposing your <<breasts>>. </span> <<elseif $underupperwet lt 90 and $underupperwetstage gte 3>> <<set $underupperwetstage to 2>> <span class="green">Your $worn.under_upper.name <<underupperhas>> dried, concealing your <<breasts>>. </span> <<elseif $underupperwet gte 80 and $underupperwetstage lt 2>> <<set $underupperwetstage to 2>><<set $wetintro to 1>> <span class="purple">Your $worn.under_upper.name <<underupperplural>> wet. </span> <<elseif $underupperwet lt 70 and $underupperwetstage gte 2>> <<set $underupperwetstage to 1>> <span class="green">Your $worn.under_upper.name <<underupperplural>> drying out. </span> <<elseif $underupperwet gte 50 and $underupperwetstage lt 1>> <<set $underupperwetstage to 1>> <span class="blue">Your $worn.under_upper.name <<underupperplural>> damp. </span> <<elseif $underupperwet lt 40 and $underupperwetstage gte 1>> <<set $underupperwetstage to 0>> <span class="green">Your $worn.under_upper.name <<underupperplural>> dry. </span> <</if>> <</if>> <<if $wetintro gte 2 and !$possessed>> <<exposure>> <<if hasSexStat("exhibitionism", 4)>> <<if !$worn.face.type.includes("blindfold")>> You feel a lewd thrill as you look down and see your clothes clinging tight to your body, completely transparent. <<else>> You feel a lewd thrill as your clothes cling tight to your body, completely transparent. <</if>> <<else>> <<if !$worn.face.type.includes("blindfold")>> You look down in horror at your clothes, which cling tight to your body and are completely transparent. <<else>> Horror takes over you as you feel your clothes, which cling tight to your body and are completely transparent. <</if>> <</if>> <<covered>> <br><br> <<elseif $wetintro gte 1 and !$possessed>> <<if hasSexStat("exhibitionism", 3)>> <<if !$worn.face.type.includes("blindfold")>> You feel a lewd thrill as you look down and see your clothes clinging tight to your body, giving a hint of transparency. <<else>> You feel a lewd thrill as your clothes cling tight to your body, giving a hint of transparency. <</if>> <<else>> <<if !$worn.face.type.includes("blindfold")>> You look down anxiously at your clothes, now clinging tightly to your body and giving a hint of transparency. <<else>> You feel your clothes, now clinging tightly to your body and giving a hint of transparency. <</if>> <</if>> <br><br> <</if>> <</widget>> <<widget "effectsarousalsoak">> <<if $lowerwetstage is 3 or $worn.lower.type.includes("naked")>> <!-- If clothing above underwear is also wet, or missing --> <<set $wetintro to 2>> <span class="lewd">Your bodily fluids soak through your $worn.under_lower.name, exposing your <<genitals>>. </span> <<elseif setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1>> <span class="lewd">Your bodily fluids soak through your $worn.under_lower.name, exposing your <<genitals>> to the air under your $worn.lower.name. </span> <<else>> <span class="lewd">Your bodily fluids soak through your $worn.under_lower.name. </span> <</if>> <<if $wetintro is 0 and $underupperwet lt 100>> <<if !hasSexStat("exhibitionism", 4)>> You hope nobody notices. <<else>> You hope somebody notices. <</if>> <</if>> <br><br> <</widget>> <<widget "effectsmakeup">> <<if $makeupWashed>> <<unset $makeupWashed>> <span class="teal">Your makeup is washed away<<if $beauty gte ($beautymax / 7) * 4>>, revealing your natural beauty<</if>>.</span><br> <</if>> <<if $makeup.mascara and $makeup.mascara_running lt painToTearsLvl($pain) and !$makeup.mascara.includes("waterproof")>> <<set $makeup.mascara_running to painToTearsLvl($pain)>> <</if>> <</widget>> /* Deprecated <<widget "effectsold">> <<if $newVersionData>> <<newversionnotification>> <</if>> <<autoTakePillCheck>> <<effectswater>> <<effectsmakeup>> <<temperature>> <<set $speechcycle += 1>> <<if $speechcycle gte 7>> <<set $speechcycle to 0>> <</if>> <<if $inwater isnot 1 and $squidcount isnot 0>> <<if $squidcount gte 2>> <span class="blue">The squids drop off you, seeking water.</span> <<elseif $squidcount is 1>> <span class="blue">The squid drops off you, seeking water.</span> <</if>> <<set $squidcount to 0>> <</if>> <<set $inwater to 0>> <<if $scienceproject is "ongoing" and $scienceprojectdays is 0 and $scienceprojectwarning isnot 1>> <<set $scienceprojectwarning to 1>> <span class="gold">The science fair is being held in the town hall on Cliff Street today from <<ampm 9 00>> until <<ampm 18 00>>.</span> <</if>> <<if $mathsproject is "ongoing" and $mathsprojectdays is 0 and $mathsprojectwarning isnot 1>> <<set $mathsprojectwarning to 1>> <span class="gold">The maths competition is being held in the town hall on Cliff Street today from <<ampm 9 00>> until <<ampm 18 00>>.</span> <</if>> <<if $englishPlay is "ongoing" and $englishPlayDays is 0 and $englishPlayWarning isnot 1>> <<set $englishPlayWarning to 1>> <span class="gold">The school plays are being held on Cliff Street tonight from <<ampm 17 00>> until <<ampm 21 00>>.</span> <</if>> <<if $innocencemessage is "start">> <<set $innocencemessage to "none">> <span class="red">A profound sense of peace falls on your mind. You were upset a moment ago, but you can't remember why.</span> <i>Your trauma has been replaced with innocence. Trauma will continue to accumulate and will return should you run out of innocence.</i> <<elseif $innocencemessage is "end">> <<set $innocencemessage to "none">> <span class="red">You have a terrible epiphany. The abuse you've endured can be ignored no longer.</span> <br> <i>Your innocence has been replaced by trauma.</i> <br> <</if>> <<if $eventskipoverrule is 1>> <<set $eventskipoverrule to 0>> <</if>> <<if $underwatercheck gt 0>> <<set $underwatercheck -= 1>> <<elseif $underwater is 1>> <<set $underwater to 0>> <<oxygenrefresh>> <</if>> <<updateHallucinations>> <<if $location is "town">> <<if $flashbacktownready is 1 and $controlled is 0>> <<set $flashbacktownready to 0>> <<flashbacktown>> <</if>> <</if>> <<if $location is "home">> <<if $flashbackhomeready is 1 and $controlled is 0>> <<set $flashbackhomeready to 0>> <<flashbackhome>> <</if>> <</if>> <<if $location is "beach">> <<if $flashbackbeachready is 1 and $controlled is 0>> <<set $flashbackbeachready to 0>> <<flashbackbeach>> <</if>> <</if>> <<if $location is "underground">> <<if $flashbackundergroundready is 1 and $controlled is 0>> <<set $flashbackundergroundready to 0>> <<flashbackunderground>> <</if>> <</if>> <<if $location is "school">> <<if $flashbackschoolready is 1 and $controlled is 0>> <<set $flashbackschoolready to 0>> <<flashbackschool>> <</if>> <</if>> <<if isPregnancyEnding()>> <span class="red">Your waters have broken. <<if ["asylum","prison","hospital"].includes($location)>> You need to find help, fast! <<else>> You need to head to the hospital, fast! <</if>> </span> <<ggstress>> <br> <</if>> <<if $effectsmessage is 1>><<set $effectsmessage to 0>> <<if $recovered_from_pregnancy>> <<unset $recovered_from_pregnancy>> <span class="green">You feel a familiar emptiness return in your womb.</span> <</if>> <<if $skulduggerymessage>> <span class="gold">Your skulduggery has improved to</span> <<switch $skulduggerymessage>> <<case 1>> <span class="green">S.</span> <<case 2>> <span class="teal">A+.</span> <<case 3>> <span class="teal">A.</span> <<case 4>> <span class="lblue">B+.</span> <<case 5>> <span class="lblue">B.</span> <<case 6>> <span class="blue">C+.</span> <<case 7>> <span class="blue">C.</span> <<case 8>> <span class="purple">D+.</span> <<case 9>> <span class="purple">D.</span> <<case 10>> <span class="pink">F+.</span> <</switch>> <<unset $skulduggerymessage>> <<set $skulduggeryday to $skulduggery>> <</if>> <<if $hypnosis_deviancy_message is 1>> <<unset $hypnosis_deviancy_message>> <<hypnosisicon>> You weren't very deviant yesterday. <<switch $hypnosis_traits.deviancy>> <<case 1>> The thought fills you with <span class="lblue">shame.</span> <<case 2>> The thought fills you with <span class="blue">regret.</span> <<case 3>> The thought fills you with <span class="purple">guilt.</span> <<case 4>> The thought fills you with <span class="pink">intense guilt.</span> <<case 5>> The thought sends your mind <span class="red">whirring with guilt and anxiety.</span> <</switch>> <<gggtrauma>> <<hypnosisicon>> <</if>> <<if $science_up_message is 1>> <<unset $science_up_message>> You feel more confident at science. <<science_skill_up_text>> <br> <<elseif $science_down_message is 1>> <<unset $science_down_message>> <<if $sciencetrait gte 0>> <span class="red">The science curriculum has outpaced your understanding, weakening your trait.</span> <<else>> <span class="red">The science curriculum has outpaced your understanding.</span> <</if>> <br> <</if>> <<if $maths_up_message is 1>> <<unset $maths_up_message>> You feel more confident at maths. <<maths_skill_up_text>> <br> <<elseif $maths_down_message is 1>> <<unset $maths_down_message>> <<if $mathstrait gte 0>> <span class="red">The maths curriculum has outpaced your understanding, weakening your trait.</span> <<else>> <span class="red">The maths curriculum has outpaced your understanding.</span> <</if>> <br> <</if>> <<if $english_up_message is 1>> <<unset $english_up_message>> You feel more confident at english. <<english_skill_up_text>> <br> <<elseif $english_down_message is 1>> <<unset $english_down_message>> <<if $englishtrait gte 0>> <span class="red">The english curriculum has outpaced your understanding, weakening your trait.</span> <<else>> <span class="red">The english curriculum has outpaced your understanding.</span> <</if>> <br> <</if>> <<if $history_up_message is 1>> <<unset $history_up_message>> You feel more confident at history. <<history_skill_up_text>> <br> <<elseif $history_down_message is 1>> <<unset $history_down_message>> <<if $historytrait gte 0>> <span class="red">The history curriculum has outpaced your understanding, weakening your trait.</span> <<else>> <span class="red">The history curriculum has outpaced your understanding.</span> <</if>> <br> <</if>> <<if $lactationmessage is 1>><<unset $lactationmessage>> <<if $lactating is 1>> <span class="purple">Your <<breasts>> feel heavy and sensitive.</span> <<else>> <span class="lblue">Your <<breasts>> feel light. They are no longer so sensitive.</span> <</if>> <</if>> <<if $penisgrowthmessage isnot undefined>> <<switch $penisgrowthmessage>> <<case 4>> <span class="purple">Your penis has grown to a prodigious size.</span> <<case 3>> <span class="purple">Your penis has grown larger.</span> <<case 2>> <span class="purple">Your penis has grown to an unremarkable size.</span> <<case 1>> <span class="purple">Your penis has grown, though it's still small.</span> <<case 0>> <span class="purple">Your penis looks like it's recovering.</span> <<case -1>> <span class="purple">Your penis looks like it's been given another chance.</span> <</switch>> <<unset $penisgrowthmessage>> <</if>> <<if $penisshrinkmessage isnot undefined>> <<if $worn.genitals.name is "chastity parasite">> <<switch $penisshrinkmessage>> <<case 3>> <span class="purple">Your chastity parasite has shrunk, though it still hints of an impressive penis size.</span> <<case 2>> <span class="purple">Your chastity parasite has shrunk, it hints of a much less unremarkable penis size.</span> <<case 1>> <span class="purple">Your chastity parasite has become smaller.</span> <<case 0>> <span class="purple">Your chastity parasite has become tiny.</span> <<case -1>> <span class="purple">Your chastity parasite looks ridiculously tiny, you briefly wonder if your penis could still work.</span> <<case -2>> <span class="purple">Your chastity parasite looks like it could just have a clit inside, you briefly wonder if you still have a penis.</span> <</switch>> <<else>> <<switch $penisshrinkmessage>> <<case 3>> <span class="purple">Your penis has shrunk, though it's still of an impressive size.</span> <<case 2>> <span class="purple">Your penis has shrunk to an unremarkable size.</span> <<case 1>> <span class="purple">Your penis has become smaller.</span> <<case 0>> <span class="purple">Your penis has become tiny.</span> <<case -1>> <span class="purple">Your penis looks like it may shrivel up.</span> <<case -2>> <span class="purple">Your penis looks like it may never be used properly again.</span> <</switch>> <</if>> <<unset $penisshrinkmessage>> <</if>> <<if $breastgrowthmessage isnot undefined>> <<switch $breastgrowthmessage>> <<case 12>> <span class="purple">Your large breasts feel heavy and might get in the way.</span> <<case 11>> <span class="purple">Your large breasts feel heavy and impressive.</span> <<case 9 10>> <span class="purple">Your breasts feel heavy.</span> <<case 7 8>> <span class="purple">Your breasts feel a little heavier.</span> <<case 5 6>> <span class="purple">Your small breasts will be obvious to those around you.</span> <<case 3 4>> <span class="purple">Your small breasts might be obvious to others.</span> <<case 1 2>> <span class="purple">Your chest feels odd; it might be growing.</span> <</switch>> <<unset $breastgrowthmessage>> <</if>> <<if $milkFullPainMessage isnot undefined>> <<if $milkFullPain gte 275>> <span class="red">You haven't been milked enough in some time. Your <<breasts>> throb painfully from being so full.</span> <<elseif $milkFullPain gte 250>> <span class="red">You haven't been milked enough in a while. Your <<breasts>> are sore from being so full.</span> <<else>> <span class="red">You haven't been milked enough recently. Your <<breasts>> feel a little sore from being so full.</span> <</if>> <<set $daily.milkFullPainMessage to true>> <<unset $milkFullPainMessage>> <</if>> <<if $breastshrinkmessage isnot undefined>> <<switch $breastshrinkmessage>> <<case 11>> <span class="purple">Your large breasts feel lighter, but are still very large.</span> <<case 9 10>> <span class="purple">Your breasts feel light and are looking less impressive.</span> <<case 7 8>> <span class="purple">Your breasts feel lighter.</span> <<case 5 6>> <span class="purple">Your small breasts feel a little lighter.</span> <<case 3 4>> <span class="purple">Your small breasts look less obvious.</span> <<case 1 2>> <span class="purple">Your chest looks flatter.</span> <<case 0>> <span class="purple">Your chest looks flat.</span> <</switch>> <<unset $breastshrinkmessage>> <</if>> <<if $bottomgrowthmessage isnot undefined>> <<switch $bottomgrowthmessage>> <<case 8>> <span class="purple">Your large butt has become even larger.</span> <<case 7>> <span class="purple">Your butt feels heavy.</span> <<case 6>> <span class="purple">Your butt feels plump.</span> <<case 5>> <span class="purple">Your butt feels round.</span> <<case 4>> <span class="purple">Your butt feels plush.</span> <<case 3>> <span class="purple">Your butt has gained a little weight.</span> <<case 2>> <span class="purple">Your small butt sticks out more than you remember.</span> <<case 1>> <span class="purple">Your butt doesn't feel so small any more.</span> <</switch>> <<unset $bottomgrowthmessage>> <</if>> <<if $bottomshrinkmessage isnot undefined>> <<switch $bottomshrinkmessage>> <<case 7>> <span class="purple">Your large butt feels a bit lighter.</span> <<case 6>> <span class="purple">Your butt feels lighter.</span> <<case 5>> <span class="purple">Your butt isn't quite as cushioned as before.</span> <<case 4>> <span class="purple">Your butt has lost weight.</span> <<case 3>> <span class="purple">Your butt feels small.</span> <<case 2>> <span class="purple">Your butt feels a lot sleeker.</span> <<case 1>> <span class="purple">Your butt feels small.</span> <<case 0>> <span class="purple">Your butt feels tiny.</span> <</switch>> <<unset $bottomshrinkmessage>> <</if>> <<if $speech_attitude_bratty_message>> <span class="purple">You've become too submissive to adopt a bratty demeanor in conversation.</span> <<unset $speech_attitude_bratty_message>> <</if>> <<if $speech_attitude_meek_message>> <span class="purple">You've become too defiant to adopt a meek demeanor in conversation.</span> <<unset $speech_attitude_meek_message>> <</if>> <<if $pillsTaken>> <span class="purple">You take your daily pills.</span> <<if $pillsTakenLast>> <span class="red">You have run out of some of them.</span> <<unset $pillsTakenLast>> <</if>> <<unset $pillsTaken>> <</if>> <<if $hairGrowthApplied>> <span class="purple">You apply growth formula to your hair<<if $hairGrowthAppliedLast>>, <span class="red">but used the last of it</span><<unset $hairGrowthAppliedLast>><</if>>.</span> <<unset $hairGrowthApplied>> <</if>> <<if $exhibitionism_message is 1>> <<set $exhibitionism_message to 0>> <span class="lblue">You've spent time in public with no underwear on. You wonder if people can tell and shiver at the thought.</span> <<exhibitionism1>> <</if>> <<if $rebuy_success.length gt 0>> <<set _rebuyMessage to {}>> <<run $rebuy_success.forEach(item => { if(T.rebuyMessage[item[1]] === undefined){ T.rebuyMessage[item[1]] = []; } T.rebuyMessage[item[1]].push(item[0]); })>> <span class="lblue"> <<for $_label, $_value range _rebuyMessage>> Your <<for $_i to 0; $_i lt $_value.length; $_i++>> <<print $_value[$_i]>><<if $_value.length gt 2 and $_i lt $_value.length - 2>>, <<elseif $_value.length gte 2 and $_i is $_value.length - 2>> and <</if>> <</for>> <<if $_value.length gte 2>> signal <<else>> signals <</if>> <<if $wardrobes[$_label]>> for a replacement to the <<print $wardrobes[$_label].name>>. <<else>> for a replacement. (Likely One-off update error, no need to report unless seen multiple times in the same save) <<if Array.isArray($rebuy_success)>><<print JSON.stringify($rebuy_success)>><</if>> <</if>> <</for>> </span> <<set $rebuy_success to []>> <</if>> <<if $rebuy_failure.length gt 0>> <span class="purple">Your <<for _i to 0; _i lt $rebuy_failure.length; _i++>> <<print $rebuy_failure[_i]>><<if $rebuy_failure.length gt 2 and _i lt $rebuy_failure.length - 2>>, <<elseif $rebuy_failure.length gte 2 and _i is $rebuy_failure.length - 2>> and <</if>> <</for>> <<if $rebuy_failure.length gte 2>> signal <<else>> signals <</if>> for a replacement, but you don't have enough money.</span> <<set $rebuy_failure to []>> <</if>> <<if $masochism_message is "up 1">><<unset $masochism_message>> <span class="blue">Your thoughts wander over the attacks you've suffered. You shiver. <i>You've become a guilty masochist.</i></span> <</if>> <<if $masochism_message is "up 2">><<unset $masochism_message>> <span class="purple">Your thoughts turn to the attacks you've suffered. A thrill follows, unbeckoned. <i>You've become a normal masochist.</i></span> <</if>> <<if $masochism_message is "up 3">><<unset $masochism_message>> <span class="pink">Your body yearns for more abuse. <i>You've become a hardened masochist.</i></span> <</if>> <<if $masochism_message is "up 4">><<unset $masochism_message>> <span class="red">Your body craves more abuse. <i>You've become a drooling masochist.</i></span> <</if>> <<if $masochism_message is "down 0">><<unset $masochism_message>> <span class="lblue"><i>You are no longer a masochist.</i></span> <</if>> <<if $masochism_message is "down 1">><<unset $masochism_message>> <span class="blue">You are no longer so masochistic and can only be considered a <i>guilty masochist.</i></span> <</if>> <<if $masochism_message is "down 2">><<unset $masochism_message>> <span class="purple">You are no longer so masochistic and can only be considered a <i>normal masochist.</i></span> <</if>> <<if $masochism_message is "down 3">><<unset $masochism_message>> <span class="pink">You are no longer so masochistic and can only be considered a <i>hardened masochist.</i></span> <</if>> <<if $sadism_message is "up 1">><<unset $sadism_message>> <span class="blue">Your thoughts turn to the pain you've inflicted. You shiver. <i>You've become a guilty sadist.</i></span> <</if>> <<if $sadism_message is "up 2">><<unset $sadism_message>> <span class="purple">Your thoughts turn to the pain you've inflicted. A thrill follows, unbeckoned. <i>You've become a normal sadist.</i></span> <</if>> <<if $sadism_message is "up 3">><<unset $sadism_message>> <span class="pink">You yearn to hurt others. <i>You've become a hardened sadist.</i></span> <</if>> <<if $sadism_message is "up 4">><<unset $sadism_message>> <span class="red">If they want to play rough, so be it. <i>You've become a vengeful sadist.</i></span> <</if>> <<if $sadism_message is "down 0">><<unset $sadism_message>> <span class="lblue"><i>You are no longer a sadist.</i></span> <</if>> <<if $sadism_message is "down 1">><<unset $sadism_message>> <span class="blue">You are no longer so sadistic and can only be considered a <i>guilty sadist.</i></span> <</if>> <<if $sadism_message is "down 2">><<unset $sadism_message>> <span class="purple">You are no longer so sadistic and can only be considered a <i>normal sadist.</i></span> <</if>> <<if $sadism_message is "down 3">><<unset $sadism_message>> <span class="pink">You are no longer so sadistic and can only be considered a <i>hardened sadist.</i></span> <</if>> <<if $school_crossdress_message gte 5>> <<unset $school_crossdress_message>> <span class="red">Your crossdressing has become common knowledge at school. Everyone knows, including the teachers.</span> <<elseif $school_crossdress_message gte 4>> <<unset $school_crossdress_message>> <span class="pink">Rumours of your crossdressing are spreading throughout the school.</span> <<elseif $school_crossdress_message gte 3>> <<unset $school_crossdress_message>> <span class="purple">Rumours of your crossdressing are spreading and have become a popular topic of conversation at school.</span> <<elseif $school_crossdress_message gte 2>> <<unset $school_crossdress_message>> <span class="blue">Whispers of your crossdressing are spreading through the school.</span> <<elseif $school_crossdress_message gte 1>> <<unset $school_crossdress_message>> <span class="lblue">A few cliques at school have begun whispering of your crossdressing.</span> <</if>> <<if $school_herm_message gte 5>> <<unset $school_herm_message>> <span class="red">Everyone at school has heard of your unique genitalia, including the teachers.</span> <<elseif $school_herm_message gte 4>> <<unset $school_herm_message>> <span class="pink">Rumours of your unique genitalia have spread throughout the school.</span> <<elseif $school_herm_message gte 3>> <<unset $school_herm_message>> <span class="purple">It sounds far-fetched to many, but the school is rife with gossip about a student with both boy and girl parts.</span> <<elseif $school_herm_message gte 2>> <<unset $school_herm_message>> <span class="blue">Rumours of a student with both boy and girl parts are spreading through the school.</span> <<elseif $school_herm_message gte 1>> <<unset $school_herm_message>> <span class="lblue">A few cliques at school have begun whispering about a student with both boy and girl parts.</span> <</if>> <<if $orgasm_trait_message is 1>> <<unset $orgasm_trait_message>> <<if $submissive lte 850>> <span class="gold">You've gained the "Hedonist" trait.</span> <<else>> <span class="gold">You've gained the "Orgasm Addict" trait.</span> <</if>> <</if>> <<if $molest_trait_message is 1>> <<unset $molest_trait_message>> <<if $submissive lte 850>> <span class="gold">You've gained the "Graceful" trait.</span> <<else>> <span class="gold">You've gained the "Plaything" trait.</span> <</if>> <</if>> <<if $rape_trait_message is 1>> <<unset $rape_trait_message>> <<if $submissive lte 850>> <span class="gold">You've gained the "Survivor" trait.</span> <<else>> <span class="gold">You've gained the "Fucktoy" trait.</span> <</if>> <</if>> <<if $bestiality_trait_message is 1>> <<unset $bestiality_trait_message>> <<if $submissive lte 850>> <span class="gold">You've gained the "Tamer" trait.</span> <<else>> <span class="gold">You've gained the "Bitch" trait.</span> <</if>> <</if>> <<if $tentacle_trait_message is 1>> <<unset $tentacle_trait_message>> <<if $submissive lte 850>> <span class="gold">You've gained the "Witch" trait.</span> <<else>> <span class="gold">You've gained the "Prey" trait.</span> <</if>> <</if>> <<if $vore_trait_message is 1>> <<unset $vore_trait_message>> <<if $submissive lte 850>> <span class="gold">You've gained the "Daredevil" trait.</span> <<else>> <span class="gold">You've gained the "Tasty" trait.</span> <</if>> <</if>> <<if $milk_trait_message is 1>> <<unset $milk_trait_message>> <<if $submissive lte 850>> <span class="gold">You've gained the "Milk Enthusiast" trait.</span> <<else>> <span class="gold">You've gained the "Milk Addict" trait.</span> <</if>> <</if>> <<if $cum_trait_message is 1>> <<unset $cum_trait_message>> <<if $submissive lte 850>> <span class="gold">You've gained the "Cumoisseur" trait.</span> <<else>> <span class="gold">You've gained the "Cum Dump" trait.</span> <</if>> <</if>> <<if $nectarmessage is "traitGain">><<unset $nectarmessage>> <span class="purple">You find yourself craving more sweet nectar. You've gained the <<if $submissive lte 850>>"Dendrophile"<<else>>"Plant Lover"<</if>> and</span> <span class="red">"Nectar Addict"</span> <span class="purple">traits.</span> <</if>> <<if $nectarmessage is "traitLost">><<unset $nectarmessage>> <span class="lblue">The cravings for nectar finally subside. You've lost the <<if $submissive lte 850>>"Dendrophile"<<else>>"Plant Lover"<</if>> and</span> <span class="red">"Nectar Addict"</span> <span class="lblue">traits.</span> <</if>> <<if $nectarmessage is "withdrawals">><<unset $nectarmessage>> <span class="red">Your body craves nectar and has begun to suffer from withdrawals.</span> <<stress 12>><<ggstress>><<trauma 12>><<ggtrauma>><<physique_loss 4>><<lphysique>> <br> <</if>> <<if $hiddenTransformMessage is 1>> <span class="red">Your mental state is too fragile to continue hiding your inner self.</span> <<unset $hiddenTransformMessage>> <<elseif $hiddenTransformMessage is 2>> <span class="red">Hiding your inner self takes a toll on your mental state.</span> <<gtrauma>> <<unset $hiddenTransformMessage>> <</if>> <<if $prof_spray_message is 1>> <<unset $prof_spray_message>> <span class="green">Your spray was accurate. You didn't need to use a full cartridge, saving ammo.</span> <</if>> <<if $community_message is "missed">> <<unset $community_message>> <span class="red">You missed community service. The police have taken note.</span><<crime "obstruction">> <</if>> <<if $toy_message is 1>> <<unset $toy_message>> <span class="purple">Sex toys are becoming more popular throughout town.</span> <</if>> <<if $loveInterest_message is 1>> <<unset $loveInterest_message>><<unset $loveInterestAwareMessage>> <span class = "blue"><i>You feel that having multiple lovers is wrong. You can no longer choose more than one love interest.</i></span> <<elseif $loveInterest_message is 2 and !$loveInterestAwareMessage>> <<unset $loveInterest_message>><<set $loveInterestAwareMessage to 1>> <span class = "pink"><i>Your mind is open to the possibility of multiple lovers. You may now choose a second love interest.</i></span> <</if>> <<if $fallenangelmessage is 1>> <<unset $fallenangelmessage>> <span class="red">You feel dark presence clawing at your skin.</span> <<gstress>><<set $stress += $stressmax>> <</if>> <<if $demonmessage is 1>> <<unset $demonmessage>> <span class="red">You feel a terrible light sear through you.</span> <<gstress>><<set $stress += $stressmax>> <</if>> <<if $bookoverduemessage is 1>> <<unset $bookoverduemessage>> <<crimeUp 5 "thievery">> <<delinquency `5 / 4`>> <span class="red">You have a book severely overdue, and the police have been informed.</span> <<elseif $bookoverduemessage is 2>> <<unset $bookoverduemessage>> <<delinquency `3 / 4`>> <span class="red">You have a book overdue and have incurred delinquency.</span> <</if>> <<if $wraithcompoundmessage is 1>> <<unset $wraithcompoundmessage>> <span class="red">A fell mist hangs over Elk Street.</span> <</if>> <<if $earSlimebreastsParasite or $earSlimePenisParasite or $earSlimeClitParasite>> <<set $_count to ($earSlimebreastsParasite ? 1 : 0) + ($earSlimePenisParasite ? 1 : 0) + ($earSlimeClitParasite ? 1 : 0)>> <<if $earSlimebreastsParasite is 1>> <<set $_parasiteMessage to `A new parasite forms around your ${$player.breastsize gte 1 ? "breasts" : "chest"}`>> <</if>> <<if $earSlimePenisParasite is 1>> <<if $_parasiteMessage>> <<set $_parasiteMessage += ' and the base of your penis'>> <<else>> <<set $_parasiteMessage to 'A new parasite forms around the base of your penis'>> <</if>> <</if>> <<if $earSlimeClitParasite>> <<set $_looks to playerChastity("vagina") ? "feels" : "looks">> <<if $earSlime.focus is "pregnancy">> <<set $_parasiteMessage to 'A new parasite forms around your <<pussy>>'>> <<else>> <<if $_parasiteMessage>> <<set $_parasiteMessage += ` and clit. It ${$_looks} like you have your own penis now`>> <<else>> <<set $_parasiteMessage to `A new parasite forms around the base of your clit, it ${$_looks} similar to a penis`>> <</if>> <</if>> <</if>> <span class="blue"> A satisfied warmth fills you. <<print $_parasiteMessage>>. You can tell that <<if $_count gt 1>>they are<<else>>it's<</if>> from the slimes in your ears. </span> <<if $earSlimePenisParasite and $earSlimePenisParasite isnot 1>> <span class="red">The previous $earSlimePenisParasite falls off shortly after it finishes growing.</span> <</if>> <<if $earSlimeClitParasite and $earSlimeClitParasite isnot 1>> <span class="red">The $earSlimeClitParasite that was on your clit falls off as the new one grows larger.</span> <</if>> <<unset $earSlimebreastsParasite>> <<unset $earSlimePenisParasite>> <<unset $earSlimeClitParasite>> <</if>> <<if $penisslimebrokenchastitymessage>> <span class="purple">The parasite at the base of your genitals frees you from the <<print $penisslimebrokenchastitymessage>><<if $penisslimecagemessage is 1>>, and almost just as quickly, a new chastity parasite forms around your penis<<unset $penisslimecagemessage>><</if>>. </span> <<unset $penisslimecagemessage>> <<unset $penisslimebrokenchastitymessage>> <</if>> <<if $penisslimecagemessage is 1>> <span class="purple">A new chastity parasite forms around your penis.</span> <<unset $penisslimecagemessage>> <<elseif $penisslimecagemessage is 2>> <span class="purple">Your chastity parasite looks brand new again.</span> <<unset $penisslimecagemessage>> <</if>> <</if>> <<if $foxCrimeMessage>> <<if $blackmoney gte 100>> <span class="gold">You feel an animalistic satisfaction towards your growing collection of stolen goods.</span> <<else>> <span class="gold">You feel an animalistic satisfaction as you commit such crimes.</span> <</if>> <<unset $foxCrimeMessage>> <</if>> <<if $pregnancyDailyEvent>> <<pregnancyDailyEvent>> <<unset $pregnancyDailyEvent>> <</if>> <<if $daily.parasiteEvent>> <<if $sexStats.vagina.pregnancy.type is "parasite">> <<set $_minDaysLeft to $sexStats.vagina.pregnancy.fetus.reduce((prev,curr) => prev.daysLeft < curr.daysLeft ? prev.daysLeft : curr.daysLeft, 30)>> <</if>> <<if $sexStats.anus.pregnancy.type is "parasite">> <<set $_minDaysLeft to $sexStats.anus.pregnancy.fetus.reduce((prev,curr) => prev.daysLeft < curr.daysLeft ? prev.daysLeft : curr.daysLeft, $_minDaysLeft || 30)>> <</if>> <<set _stressMulti to Math.clamp(2 - $sexStats.anus.pregnancy.motherStatus + $sexStats.vagina.pregnancy.motherStatus, 0, 2)>> <<set _arousalMulti to Math.clamp(1 + $sexStats.anus.pregnancy.motherStatus + $sexStats.vagina.pregnancy.motherStatus, 1, 3)>> <<set $_arousalGain to 0>> <<if $daily.parasiteEvent.includes("anus3") && $daily.parasiteEvent.includes("vagina3")>><<run $daily.parasiteEvent.delete("vagina3")>><</if>> <<for _i to 0; _i lt $daily.parasiteEvent.length; _i++>> <<switch $daily.parasiteEvent[_i]>> <<case "anus0" "vagina0">> <<if $pregnancyStats.parasiteDoctorEvents gte 4>> You feel <<if $pregnancyStats.namesParasitesChild is true>>your grown child<<else>>the grown parasite<</if>> in your <<print $daily.parasiteEvent[_i] === "anus0" ? "stomach" : "uterus">>. <<ggarousal>> <<else>> You feel something large move around in your <<print $daily.parasiteEvent[_i] === "anus0" ? "stomach" : "uterus">>. Might be best to go to the hospital again. <<ggarousal>> <</if>> <<set $_arousalGain += 2000>> <<case "anus1" "vagina1">> <<if $pregnancyStats.parasiteDoctorEvents gte 2>> You feel one of <<if $pregnancyStats.namesParasitesChild is true>>your children<<else>>the parasites<</if>> move around in your <<print $daily.parasiteEvent[_i] === "anus1" ? "stomach" : "uterus">>. <<ggarousal>><<if _stressMulti gt 0>><<gstress>><</if>> <<else>> You feel something move around in your <<print $daily.parasiteEvent[_i] === "anus1" ? "stomach" : "uterus">>. Might be best to go to the hospital. <<ggarousal>><<if _stressMulti gt 0>><<gstress>><</if>> <</if>> <<set _arousal to _arousalMulti * 500 / ($_minDaysLeft + 1)>><<set $stress += 300 * _stressMulti>> <<set $_arousalGain += _arousal>> <<case "anus2" "vagina2">> Your <<print $daily.parasiteEvent[_i] === "anus2" ? "stomach" : "uterus">> rumbles a little. You hope the noise hasn't attracted any attention. <<if _stressMulti gt 0>><<gstress>><</if>> <<set _arousal to _arousalMulti * 250 / ($_minDaysLeft + 1)>><<set $stress += 200 * _stressMulti>> <<set $_arousalGain += _arousal>> <<case "anus3" "vagina3">> You feel a little lightheaded for a moment. <<if _stressMulti gt 0>><<gstress>><</if>> <<set $stress += 100 * _stressMulti>> <</switch>> <</for>> <<if $_arousalGain>><<arousal `Math.clamp($_arousalGain, 0, 10000)`>><</if>> <br> <<run delete $daily.parasiteEvent>> <</if>> <<if $earSlime.event.includes("get sperm into your") and $earSlime.event.includes("completed") and $earSlime.eventTimer lte 2>> <<set $earSlime.event to "">> <span class="green">The slime in your ear is pleased that you completed its task of getting sperm into your <<print $player.vaginaExist ? "vagina" : "anus">>.</span> <<pain -4>><<stress -6>><<trauma -12>><<lpain>><<lltrauma>><<lstress>> <br> <<elseif $earSlime.event.includes("get your own sperm into your") and $earSlime.event.includes("completed") and $earSlime.eventTimer lte 2>> <<set $earSlime.event to "">> <span class="green">The slime in your ear is pleased that you completed its task of getting your own sperm into your <<print $player.vaginaExist ? "vagina" : "anus">>.</span> <<pain -4>><<stress -6>><<trauma -12>><<lpain>><<lltrauma>><<lstress>> <<if $earSlime.growth gte 100 and $earSlime.focus is "pregnancy" and $worn.genitals.name is "naked">> <span class="purple">A new chastity parasite forms around your penis.</span> <<genitalswear 8>> <<set $worn.genitals.origin to "ear slime">> <</if>> <br> <<elseif $earSlime.event and ($earSlime.eventTimer lte 2 or ($earSlime.noSleep and Time.dayState isnot "night"))>> <<if $earSlime.startedThreats>> <span class="red">The slime in your ear punishes you for failing to complete your task.</span> <<ggpain>><<ggtrauma>><<ggstress>><<pain 16>><<stress 12>><<trauma 12>> <<set $earSlime.defyCooldown += 4>> <<else>> <span class="cyan">The slime in your ear is upset you were unable to complete what you said you would do.</span> <</if>> <<set $earSlime.event to "">><<set $earSlime.noSleep to false>> <br> <</if>> <<integritycheck>> <<exposure>> <<set $orgasmdown -= 1>> <<if $exposed gte 1 and $exposedcheck is 1>> <<set $exposedcheck to 0>> You feel self-conscious about your <<nudity>>. <br> <</if>> <<if $timer gte 1>> <<set $timer -= 1>> <</if>> <!-- <<set $turnCount++>> --> <<bindings>> <<if $worn.genitals.cursed is 1 and $worn.genitals.integrity lte 0>> <<set $worn.genitals.type.push("broken")>> <</if>> <<heelsUpdate>> <<if $combat is 1>> <<pass 10 seconds>> <</if>> <br> <<set $menu to 0>> <<if $combat is 0 and $ironmanmode is true>> <<run IronMan.scheduledSaves()>> <</if>> <</widget>> */<<widget "exhibitionism1">> <<exhibitionismN 1>> <</widget>> <<widget "exhibitionism2">> <<exhibitionismN 2>> <</widget>> <<widget "exhibitionism3">> <<exhibitionismN 3>> <</widget>> <<widget "exhibitionism4">> <<exhibitionismN 4>> <</widget>> <<widget "exhibitionism5">> <<exhibitionismN 5>> <</widget>> <<widget "exhibitionism6">> <<exhibitionismN 6>> <</widget>> <<widget "exhibitionismN">> <<set $_n to _args[0]>> <<set $_scaledExhibitionismMax to 20 * $_n>> <<if $desperateaction is 1>> You feel disgusting, but it's better than what Bailey has in store for you. <<elseif $desperateaction is 2>> You feel disgusting, but it's better than the alternative. <<elseif typeof $desperateaction is "string">> You feel disgusting, but <<print $desperateaction>>. <<else>> <<if $control lt $controlmax>> <<if $_n is 6>> Performing such an act of manic depravity <span class="green">fully restores your sense of control</span>, <span class="red">but inflicts damage to your mental state</span>. <<elseif $exhibitionism lt $_scaledExhibitionismMax>> Performing such a lewd act excites you and <span class="green">restores your sense of control and self-worth</span>, for now. <<else>> Performing such a lewd act excites you, but does nothing to lift the cloud hanging over you. <span class="pink">You need to do something more extreme.</span> <</if>> <<else>> <<if $_n is 6>> You already feel in control, <span class="red">leaving you unfulfilled as your act of manic depravity seems wasted</span>. <<elseif $exhibitionism lt $_scaledExhibitionismMax>> You already feel in control, but performing such a lewd act <span class="green">soothes</span> and excites you. <<else>> You already feel in control and the act is <span class="pink">too tame to soothe</span>, but it does excite you. <</if>> <</if>> <<if !hasSexStat("exhibitionism", $_n, false) and $drunk gte 1>> <<if $_n is 6>> <span @class="'red ' + basicDrunkCss()">Your head feels fuzzy and light. You hope you don't remember this later.</span> <<else>> <span @class="'blue ' + basicDrunkCss()">You feel weightless as the alcohol dulls your inhibitions.</span> <</if>> <</if>> <</if>> <!-- separating the code from the written text --> <<if $desperateaction is 1 or $desperateaction is 2 or typeof $desperateaction is "string">> <<control `$_n * -10`>> <<switch $_n>> <<case 1>><<lcontrol>> <<case 2>><<llcontrol>> <<case 3>><<llcontrol>> <<case 4>><<llcontrol>> <<case 5>><<lllcontrol>> <</switch>> <<gtrauma>><<trauma $_n>> <<else>> <<if $_n is 6>> <<set $exhibitionism += 2>> <<if $control lt $controlmax>> <<control $controlmax>> <<gggcontrol>> <</if>> <<trauma 40>> <<ggtrauma>> <<elseif $exhibitionism lt $_scaledExhibitionismMax>> <<set $exhibitionism += 2>> <<if $control lt $controlmax>> <<ggcontrol>> <</if>> <<control 25>> <<stress $_n -300>> <<combattrauma `$_n * -30`>> <<ltrauma>> <<lstress>> <<else>> <<if V.daily["exhibitionismStress" + $_n] isnot 1 and $statFreeze isnot true>> <<set V.daily["exhibitionismStress" + $_n] to 1>><<lstress>><<stress $_n -100>> <</if>> <</if>> <<arousal `$_n * 100`>><<garousal>> <</if>> <<earSlimeSeenActions "exhibitionism" $_n>> <br><br> <<unset $desperateaction>> <<set $exhibitionism to Math.clamp($exhibitionism, 0, 100)>> <</widget>> <<widget "exhibitionism">> <<if _args[0] is "street">> <<if $uncomfortable.nude is false>> <<if $exposed is 1>> <<if Weather.dayState is "night">> <<arousal 20>> You are standing on a public street in a state of undress! The cold night air blows against your bare skin. There appears to be no one else around, but you don't know how long that will last. <br><br> You feel a sense of excitement that's even stronger if you don't cover your undressed body<<if pcAreArmsBound("both")>>, which you can't do anyway, as your arms are tied behind your back.<<else>>.<</if>> <br><br> It's dark enough that you could remain mostly concealed by sticking to the shadows. Alternatively, you could avoid the street entirely. You might feel less exposed but there's something foreboding about the darkness. <br><br> <<else>> <<arousal 40>> You are standing on a public street in a state of undress! You take cover behind a parked car, shielding you from view for now. <br><br> You feel a sense of excitement that's even stronger if you don't cover your undressed body<<if pcAreArmsBound("both")>>, which you can't do anyway, as your arms are tied behind your back.<<else>>.<</if>> <br><br> <</if>> <<elseif $exposed is 2>> <<if Weather.dayState is "night">> <<arousal 40>> You are standing on a public street completely exposed! The cold night air blows against your bare skin. There appears to be no one else around, but you don't know how long that will last. <br><br> You feel a sense of excitement that's even stronger if you don't cover your naked body<<if pcAreArmsBound("both")>>, which you can't do anyway, as your arms are tied behind your back.<<else>>.<</if>> <br><br> It's dark enough that you could remain mostly concealed by sticking to the shadows. Alternatively, you could avoid the street entirely. You might feel less exposed but there's something foreboding about the darkness. <br><br> <<else>> <<arousal 80>> You feel a sense of excitement that's even stronger if you don't cover your naked body<<if pcAreArmsBound("both")>>, which you can't do anyway, as your arms are tied behind your back.<<else>>.<</if>> <br><br> <</if>> <</if>> <<else>> <<if $exposed is 1>> <<if Weather.dayState is "night">> <<arousal 20>> You are standing on a public street in a state of undress! The cold night air blows against your bare skin. There appears to be no one else around, but you don't know how long that will last. <br><br> You feel intense embarrassment at your exposure<<if pcAreArmsBound("both")>>, but with your arms bound you can do nothing to hide your state of undress.<<else>> and cover yourself as best you can.<</if>> <br><br> It's dark enough that you could remain mostly concealed by sticking to the shadows. Alternatively, you could avoid the street entirely. You might feel less exposed but there's something foreboding about the darkness. <br><br> <<else>> <<arousal 10>> You are standing on a public street in a state of undress! You take cover behind a parked car, shielding you from view for now. <br><br> You feel intense embarrassment at your exposure<<if pcAreArmsBound("both")>>, but with your arms bound you can do nothing to hide your state of undress.<<else>> and cover yourself as best you can.<</if>> <br><br> <</if>> <<elseif $exposed is 2>> <<if Weather.dayState is "night">> <<arousal 10>> You are standing on a public street completely exposed! The cold night air blows against your bare skin. There appears to be no one else around, but you don't know how long that will last. <br><br> You feel intense embarrassment at your exposure<<if pcAreArmsBound("both")>>, but with your arms bound you can do nothing to hide your nakedness.<<else>> and cover yourself as best you can.<</if>> <br><br> It's dark enough that you could remain mostly concealed by sticking to the shadows. Alternatively, you could avoid the street entirely. You might feel less exposed but there's something foreboding about the darkness. <br><br> <<else>> <<arousal 5>> You are standing on a public street in a state of undress! You take cover behind a parked car, shielding you from view for now. <br><br> You feel intense embarrassment at your exposure<<if pcAreArmsBound("both")>>, but with your arms bound you can do nothing to hide your nakedness.<<else>> and cover yourself as best you can.<</if>> <br><br> <</if>> <</if>> <</if>> <<elseif _args[0] is "alley">> <<if $uncomfortable.nude is false>> <<if $exposed is 1>> <<if Weather.dayState is "night">> <<arousal 20>> You are standing in a public alley in a state of undress! The cold night air blows against your bare skin. There appears to be no one else around, but you don't know how long that will last. <br><br> You feel a sense of excitement that's even stronger if you don't cover your undressed body<<if pcAreArmsBound("both")>>, which you can't do anyway, as your arms are tied behind your back.<<else>>.<</if>> <br><br> <<else>> <<arousal 40>> You are standing in a public alley in a state of undress. <br><br> You feel a sense of excitement that's even stronger if you don't cover your undressed body<<if pcAreArmsBound("both")>>, which you can't do anyway, as your arms are tied behind your back.<<else>>.<</if>> <br><br> <</if>> <<elseif $exposed is 2>> <<if Weather.dayState is "night">> <<arousal 40>> You are standing in a public alley with your vulnerables exposed! The cold night air blows against your bare skin. There appears to be no one else around, but you don't know how long that will last. <br><br> You feel a sense of excitement that's even stronger if you don't cover your naked body<<if pcAreArmsBound("both")>>, which you can't do anyway, as your arms are tied behind your back.<<else>>.<</if>> <br><br> <<else>> <<arousal 80>> You are standing in a public alley with your vulnerables exposed! <br><br> You feel a sense of excitement that's even stronger if you don't cover your naked body<<if pcAreArmsBound("both")>>, which you can't do anyway, as your arms are tied behind your back.<<else>>.<</if>> <br><br> <</if>> <</if>> <<else>> <<if $exposed is 1>> <<if Weather.dayState is "night">> <<arousal 20>> You are standing in a public alley in a state of undress! The cold night air blows against your bare skin. There appears to be no one else around, but you don't know how long that will last. <br><br> You feel intense embarrassment at your exposure<<if pcAreArmsBound("both")>>, but with your arms bound you can do nothing to hide your state of undress.<<else>> and cover yourself as best you can.<</if>> <br><br> <<else>> <<arousal 10>> You are standing in a public alley in a state of undress. <br><br> You feel intense embarrassment at your exposure<<if pcAreArmsBound("both")>>, but with your arms bound you can do nothing to hide your state of undress.<<else>> and cover yourself as best you can.<</if>> <br><br> <</if>> <<elseif $exposed is 2>> <<if Weather.dayState is "night">> <<arousal 10>> You are standing in a public alley with your vulnerables exposed! The cold night air blows against your bare skin. There appears to be no one else around, but you don't know how long that will last. <br><br> You feel intense embarrassment at your exposure<<if pcAreArmsBound("both")>>, but with your arms bound you can do nothing to hide your nakedness.<<else>> and cover yourself as best you can.<</if>> <br><br> <<else>> <<arousal 5>> You are standing in a public alley with your vulnerables exposed! <br><br> You feel intense embarrassment at your exposure<<if pcAreArmsBound("both")>>, but with your arms bound you can do nothing to hide your nakedness.<<else>> and cover yourself as best you can.<</if>> <br><br> <</if>> <</if>> <</if>> <<elseif _args[0] is "park">> <<if $uncomfortable.nude is false>> <<if $exposed is 1>> <<if Weather.dayState is "night">> <<arousal 20>> You are standing next to a bush, ready to hide behind it at a moment's notice. The cold night air blows against your bare skin. <br><br> You feel a sense of excitement that's even stronger if you don't cover your undressed body<<if pcAreArmsBound("both")>>, which you can't do anyway, as your arms are tied behind your back<<else>>.<</if>> <br><br> <<else>> <<arousal 40>> You are hiding behind a bush, hidden from the people using the park. If you're careful you might be able to remain concealed by hiding behind vegetation. <br><br> You feel a sense of excitement that's even stronger if you don't cover your undressed body<<if pcAreArmsBound("both")>>, which you can't do anyway, as your arms are tied behind your back<<else>>.<</if>> <br><br> <</if>> <<elseif $exposed is 2>> <<if Weather.dayState is "night">> <<arousal 40>> You are standing next to a bush, ready to hide behind it at a moment's notice. The cold night air blows against your bare skin. <br><br> You feel a sense of excitement that's even stronger if you don't cover your naked body<<if pcAreArmsBound("both")>>, which you can't do anyway, as your arms are tied behind your back<<else>>.<</if>> <br><br> <<else>> <<arousal 80>> You are hiding behind a bush, hidden from the people using the park. If you're careful you might be able to remain concealed by hiding behind vegetation. <br><br> You feel a sense of excitement that's even stronger if you don't cover your naked body<<if pcAreArmsBound("both")>>, which you can't do anyway, as your arms are tied behind your back<<else>>.<</if>> <br><br> <</if>> <</if>> <<else>> <<if $exposed is 1>> <<if Weather.dayState is "night">> <<arousal 20>> You are hiding behind a bush. The cold night air blows against your bare skin. You are thankful the park remains mostly empty at night, but that might make you more obvious. <br><br> You feel intense embarrassment at your exposure<<if pcAreArmsBound("both")>>, but with your arms bound you can do nothing to hide your state of undress.<<else>> and cover yourself as best you can.<</if>> <br><br> <<else>> <<arousal 10>> You are hiding behind a bush. If you're careful you might be able to remain concealed by hiding behind vegetation. You hope nobody notices you, but you don't know how long that might last. <br><br> You feel intense embarrassment at your exposure<<if pcAreArmsBound("both")>>, but with your arms bound you can do nothing to hide your state of undress.<<else>> and cover yourself as best you can.<</if>> <br><br> <</if>> <<elseif $exposed is 2>> <<if Weather.dayState is "night">> <<arousal 10>> You are hiding behind a bush. The cold night air blows against your bare skin. You are thankful the park remains mostly empty at night, but that might make you more obvious. <br><br> You feel intense embarrassment at your exposure<<if pcAreArmsBound("both")>>, but with your arms bound you can do nothing to hide your nakedness.<<else>> and cover yourself as best you can.<</if>> <br><br> <<else>> <<arousal 5>> You are hiding behind a bush. If you're careful you might be able to remain concealed by hiding behind vegetation. You hope nobody notices you, but you don't know how long that might last. <br><br> You feel intense embarrassment at your exposure<<if pcAreArmsBound("both")>>, but with your arms bound you can do nothing to hide your nakedness.<<else>> and cover yourself as best you can.<</if>> <br><br> <</if>> <</if>> <</if>> <<elseif _args[0] is "roof">> <<if $uncomfortable.nude is false>> <<if $exposed is 1>> <<if Weather.dayState is "night">> <<arousal 20>> <br><br> You feel a sense of excitement that's even stronger if you don't cover your undressed body<<if pcAreArmsBound("both")>>, which you can't do anyway, as your arms are tied behind your back.<<else>>.<</if>> <br><br> <<else>> <<arousal 40>> <br><br> You feel a sense of excitement that's even stronger if you don't cover your undressed body<<if pcAreArmsBound("both")>>, which you can't do anyway, as your arms are tied behind your back.<<else>>.<</if>> <br><br> <</if>> <<elseif $exposed is 2>> <<if Weather.dayState is "night">> <<arousal 40>> <br><br> You feel a sense of excitement that's even stronger if you don't cover your naked body<<if pcAreArmsBound("both")>>, which you can't do anyway, as your arms are tied behind your back.<<else>>.<</if>> <br><br> <<else>> <<arousal 80>> <br><br> You feel a sense of excitement that's even stronger if you don't cover your naked body<<if pcAreArmsBound("both")>>, which you can't do anyway, as your arms are tied behind your back.<<else>>.<</if>> <br><br> <</if>> <</if>> <<else>> <<if $exposed is 1>> <<if Weather.dayState is "night">> <<arousal 20>> <br><br> You feel intense embarrassment at your exposure<<if pcAreArmsBound("both")>>, but with your arms bound you can do nothing to hide your state of undress.<<else>> and cover yourself as best you can.<</if>> <br><br> <<else>> <<arousal 10>> <br><br> You feel intense embarrassment at your exposure<<if pcAreArmsBound("both")>>, but with your arms bound you can do nothing to hide your state of undress.<<else>> and cover yourself as best you can.<</if>> <br><br> <</if>> <<elseif $exposed is 2>> <<if Weather.dayState is "night">> <<arousal 10>> <br><br> You feel intense embarrassment at your exposure<<if pcAreArmsBound("both")>>, but with your arms bound you can do nothing to hide your nakedness.<<else>> and cover yourself as best you can.<</if>> <br><br> <<else>> <<arousal 5>> <br><br> You feel intense embarrassment at your exposure<<if pcAreArmsBound("both")>>, but with your arms bound you can do nothing to hide your nakedness.<<else>> and cover yourself as best you can.<</if>> <br><br> <</if>> <</if>> <</if>> <<elseif _args[0] is "garden">> <<if $uncomfortable.nude is false>> <<if $exposed is 1>> <<if Weather.dayState is "night">> <<arousal 20>> <br><br> You feel a sense of excitement that's even stronger if you don't cover your undressed body<<if pcAreArmsBound("both")>>, which you can't do anyway, as your arms are tied behind your back.<<else>>.<</if>> <br><br> <<else>> <<arousal 40>> <br><br> You feel a sense of excitement that's even stronger if you don't cover your undressed body<<if pcAreArmsBound("both")>>, which you can't do anyway, as your arms are tied behind your back.<<else>>.<</if>> <br><br> <</if>> <<elseif $exposed is 2>> <<if Weather.dayState is "night">> <<arousal 40>> <br><br> You feel a sense of excitement that's even stronger if you don't cover your naked body<<if pcAreArmsBound("both")>>, which you can't do anyway, as your arms are tied behind your back.<<else>>.<</if>> <br><br> <<else>> <<arousal 80>> <br><br> You feel a sense of excitement that's even stronger if you don't cover your naked body<<if pcAreArmsBound("both")>>, which you can't do anyway, as your arms are tied behind your back.<<else>>.<</if>> <br><br> <</if>> <</if>> <<else>> <<if $exposed is 1>> <<if Weather.dayState is "night">> <<arousal 20>> <br><br> You feel intense embarrassment at your exposure<<if pcAreArmsBound("both")>>, but with your arms bound you can do nothing to hide your state of undress.<<else>> and cover yourself as best you can.<</if>> <br><br> <<else>> <<arousal 10>> <br><br> You feel intense embarrassment at your exposure<<if pcAreArmsBound("both")>>, but with your arms bound you can do nothing to hide your state of undress.<<else>> and cover yourself as best you can.<</if>> <br><br> <</if>> <<elseif $exposed is 2>> <<if Weather.dayState is "night">> <<arousal 10>> <br><br> You feel intense embarrassment at your exposure<<if pcAreArmsBound("both")>>, but with your arms bound you can do nothing to hide your nakedness.<<else>> and cover yourself as best you can.<</if>> <br><br> <<else>> <<arousal 5>> <br><br> You feel intense embarrassment at your exposure<<if pcAreArmsBound("both")>>, but with your arms bound you can do nothing to hide your nakedness.<<else>> and cover yourself as best you can.<</if>> <br><br> <</if>> <</if>> <</if>> <<elseif _args[0] is "building">> <<if $uncomfortable.nude is false>> <<if $exposed is 1>> <<if Weather.dayState is "night">> <<arousal 20>> <br><br> You feel a sense of excitement that's even stronger if you don't cover your undressed body<<if pcAreArmsBound("both")>>, which you can't do anyway, as your arms are tied behind your back.<<else>>.<</if>> <br><br> <<else>> <<arousal 40>> <br><br> You feel a sense of excitement that's even stronger if you don't cover your undressed body<<if pcAreArmsBound("both")>>, which you can't do anyway, as your arms are tied behind your back.<<else>>.<</if>> <br><br> <</if>> <<elseif $exposed is 2>> <<if Weather.dayState is "night">> <<arousal 40>> <br><br> You feel a sense of excitement that's even stronger if you don't cover your naked body<<if pcAreArmsBound("both")>>, which you can't do anyway, as your arms are tied behind your back.<<else>>.<</if>> <br><br> <<else>> <<arousal 80>> <br><br> You feel a sense of excitement that's even stronger if you don't cover your naked body<<if pcAreArmsBound("both")>>, which you can't do anyway, as your arms are tied behind your back.<<else>>.<</if>> <br><br> <</if>> <</if>> <<else>> <<if $exposed is 1>> <<if Weather.dayState is "night">> <<arousal 20>> <br><br> You feel intense embarrassment at your exposure<<if pcAreArmsBound("both")>>, but with your arms bound you can do nothing to hide your state of undress.<<else>> and cover yourself as best you can.<</if>> <br><br> <<else>><<arousal 10>> <br><br> You feel intense embarrassment at your exposure<<if pcAreArmsBound("both")>>, but with your arms bound you can do nothing to hide your state of undress.<<else>> and cover yourself as best you can.<</if>> <br><br> <</if>> <<elseif $exposed is 2>> <<if Weather.dayState is "night">> <<arousal 10>> <br><br> You feel intense embarrassment at your exposure<<if pcAreArmsBound("both")>>, but with your arms bound you can do nothing to hide your nakedness.<<else>> and cover yourself as best you can.<</if>> <br><br> <<else>> <<arousal 5>> <br><br> You feel intense embarrassment at your exposure<<if pcAreArmsBound("both")>>, but with your arms bound you can do nothing to hide your nakedness.<<else>> and cover yourself as best you can.<</if>> <br><br> <</if>> <</if>> <</if>> <<elseif _args[0] is "classroom">> <<if $uncomfortable.nude is false>> <<if $exposed is 1>> <<if Weather.dayState is "night">> <<arousal 20>> <br><br> You feel a sense of excitement that's even stronger if you don't cover your undressed body<<if pcAreArmsBound("both")>>, which you can't do anyway, as your arms are tied behind your back.<<else>>.<</if>> <br><br> <<else>> <<arousal 40>> <br><br> You feel a sense of excitement that's even stronger if you don't cover your undressed body<<if pcAreArmsBound("both")>>, which you can't do anyway, as your arms are tied behind your back.<<else>>.<</if>> <br><br> <</if>> <<elseif $exposed is 2>> <<if Weather.dayState is "night">> <<arousal 40>> <br><br> You feel a sense of excitement that's even stronger if you don't cover your naked body<<if pcAreArmsBound("both")>>, which you can't do anyway, as your arms are tied behind your back.<<else>>.<</if>> <br><br> <<else>> <<arousal 80>> <br><br> You feel a sense of excitement that's even stronger if you don't cover your naked body<<if pcAreArmsBound("both")>>, which you can't do anyway, as your arms are tied behind your back.<<else>>.<</if>> <br><br> <</if>> <</if>> <<else>> <<if $exposed is 1>> <<if Weather.dayState is "night">> <<arousal 20>> <br><br> You feel intense embarrassment at your exposure<<if pcAreArmsBound("both")>>, but with your arms bound you can do nothing to hide your state of undress.<<else>> and cover yourself as best you can.<</if>> <br><br> <<else>> <<arousal 10>> <br><br> You feel intense embarrassment at your exposure<<if pcAreArmsBound("both")>>, but with your arms bound you can do nothing to hide your state of undress.<<else>> and cover yourself as best you can.<</if>> <br><br> <</if>> <<elseif $exposed is 2>> <<if Weather.dayState is "night">> <<arousal 10>> <br><br> You feel intense embarrassment at your exposure<<if pcAreArmsBound("both")>>, but with your arms bound you can do nothing to hide your nakedness.<<else>> and cover yourself as best you can.<</if>> <br><br> <<else>> <<arousal 5>> <br><br> You feel intense embarrassment at your exposure<<if pcAreArmsBound("both")>>, but with your arms bound you can do nothing to hide your nakedness.<<else>> and cover yourself as best you can.<</if>> <br><br> <</if>> <</if>> <</if>> <<elseif _args[0] is "beach">> <<if $uncomfortable.nude is false>> <<if $exposed is 1>> <<if Weather.dayState is "night">> <<arousal 20>> You are alone, but being in such a lewd state of dress is as terrifying as it is thrilling. <br><br> You feel a sense of excitement that's even stronger if you don't cover your undressed body<<if pcAreArmsBound("both")>>, which you can't do anyway, as your arms are tied behind your back.<<else>>.<</if>> <br><br> <<else>> <<arousal 40>> Even for the beach, your state of undress is too much. You hide behind a windbreaker. <br><br> You feel a sense of excitement that's even stronger if you don't cover your undressed body<<if pcAreArmsBound("both")>>, which you can't do anyway, as your arms are tied behind your back.<<else>>.<</if>> <br><br> <</if>> <<elseif $exposed is 2>> <<if Weather.dayState is "night">> <<arousal 40>> You are alone, but being in such a lewd state of dress is as terrifying as it is thrilling. <br><br> You feel a sense of excitement that's even stronger if you don't cover your naked body<<if pcAreArmsBound("both")>>, which you can't do anyway, as your arms are tied behind your back.<<else>>.<</if>> <br><br> <<else>> <<arousal 80>> You're completely exposed in broad daylight! Thankfully, there are enough windbreakers to hide your body. <br><br> You feel a sense of excitement that's even stronger if you don't cover your naked body<<if pcAreArmsBound("both")>>, which you can't do anyway, as your arms are tied behind your back.<<else>>.<</if>> <br><br> <</if>> <</if>> <<else>> <<if $exposed is 1>> <<if Weather.dayState is "night">> <<arousal 20>> You are alone, but being in such a lewd state of dress is as terrifying as it is thrilling. <br><br> You feel intense embarrassment at your exposure<<if pcAreArmsBound("both")>>, but with your arms bound you can do nothing to hide your state of undress.<<else>> and cover yourself as best you can.<</if>> <br><br> <<else>> <<arousal 10>> You are dressed too lewdly even for here! You feel excitement and terror in equal measure. If you keep low you might be able to use the numerous windbreakers scattered across the beach to shield yourself. <br><br> You feel intense embarrassment at your exposure<<if pcAreArmsBound("both")>>, but with your arms bound you can do nothing to hide your state of undress.<<else>> and cover yourself as best you can.<</if>> <br><br> <</if>> <<elseif $exposed is 2>> <<if Weather.dayState is "night">> <<arousal 10>> You are alone, but being in such a lewd state of dress is as terrifying as it is thrilling. <br><br> You feel intense embarrassment at your exposure<<if pcAreArmsBound("both")>>, but with your arms bound you can do nothing to hide your nakedness.<<else>> and cover yourself as best you can.<</if>> <br><br> <<else>> <<arousal 5>> You are in broad daylight with your unmentionables uncovered! This is no good, no good at all! Maybe if you keep low you might be able to use the numerous windbreakers scattered across the beach to shield your nudity. <br><br> You feel intense embarrassment at your exposure<<if pcAreArmsBound("both")>>, but with your arms bound you can do nothing to hide your nakedness.<<else>> and cover yourself as best you can.<</if>> <br><br> <</if>> <</if>> <</if>> <<else>> BUG - Missing/typo'd location in "exhibitionism" widget<br><br> <</if>> <</widget>> <<widget "exhibitionismgarden">> You are hiding behind the garden shed. <<if $exposed is 1>> <<arousal 20>> <<elseif $exposed is 2>> <<arousal 50>> <</if>> <<if Weather.dayState is "night">> The cold night air blows against your bare skin. <</if>> You hope you can make it to your bedroom without anyone seeing you. <br><br> You feel intense embarrassment at your exposure <<if pcAreArmsBound("both")>> but with your arms bound you can do nothing to hide your nakedness. <<else>> and cover yourself as best you can. <</if>> <br><br> <</widget>> <<widget "exhibitionismroof">> <<if $exposed is 1>> <<arousal 20>> <<elseif $exposed is 2>> <<arousal 50>> <</if>> <<if Weather.dayState is "night">> The cool night breeze makes you shiver. <</if>> The open air makes you feel more exposed than ever despite no one being around. <br><br> You feel intense embarrassment at your exposure <<if pcAreArmsBound("both")>> but with your arms bound you can do nothing to hide your nakedness. <<else>> and cover yourself as best you can. <</if>> <br><br> <</widget>> <<widget "exhibitionismbuilding">> <<if $exposed is 1>> <<arousal 20>> <<if Weather.dayState is "night">> You are alone, but being in such a lewd state of dress is as terrifying as it is thrilling. <br><br> You feel intense embarrassment at your exposure <<if pcAreArmsBound("both")>> but with your arms bound you can do nothing to hide your nakedness. <<else>> and cover yourself as best you can. <</if>> <br><br> <<else>> You are dressed lewdly in a public space! You feel excitement and terror in equal measure. <br><br> You also feel intensely embarrassed at your exposure <<if pcAreArmsBound("both")>> but with your arms bound you can do nothing to hide your nakedness. <<else>> and cover yourself as best you can. <</if>> <br><br> <</if>> <<elseif $exposed is 2>> <<arousal 50>> <<if Weather.dayState is "night">> You are alone, but being in such a lewd state of dress is as terrifying as it is thrilling. <br><br> You feel intense embarrassment at your exposure <<if pcAreArmsBound("both")>> but with your arms bound you can do nothing to hide your nakedness. <<else>> and cover yourself as best you can. <</if>> <br><br> <<else>> You are in public with your unmentionables uncovered! You feel excitement and terror in equal measure. <br><br> You also feel intensely embarrassed at your exposure <<if pcAreArmsBound("both")>> but with your arms bound you can do nothing to hide your nakedness. <<else>> and cover yourself as best you can. <</if>> <br><br> <</if>> <</if>> <</widget>> <<widget "exhibitionclassroom">> <<if $exposed gte 1>> You're alone in the room, but being exposed in this often-crowded space makes you feel vulnerable and conscious of your <<nudity>>. <br><br> <</if>> <</widget>><<widget "fame">> <!-- Usage: <<fame 10 "scrap" "good">>. Raises fames regardless of mask, gloryhole, etc. --> <<if _args.length gte 2 and $statFreeze isnot true>> <<set [$_gain, ...($_fameTypes)] to _args>> <!-- remove first element of array since it's the number --> <<run $_fameTypes.forEach(fameType => $fame[fameType] += $_gain)>> <!-- add the specified amount to each specified fame type --> <<fameclamp>> <</if>> <</widget>> <<widget "fameexhibitionism">> <<if _args[0] and $statFreeze isnot true>> <<if $face isnot "covered" and !$worn.face.type.includes("mask") and !$gloryhole and !($npc.length is 1 and ["Eden", "Robin", "Kylar", "Sydney", "Gwylan"].includes($npc[0])) or _args[2] is true>> <<set $fame.exhibitionism += _args[0]>> <<set $fame.exhibitionism to Math.clamp($fame.exhibitionism, 0, 2000)>> <</if>> <</if>> <</widget>> <<widget "fameprostitution">> <<if _args[0] and $statFreeze isnot true>> <<if $face isnot "covered" and !$worn.face.type.includes("mask") and !$gloryhole or _args[2] is true>> <<set $fame.prostitution += _args[0]>> <<set $fame.prostitution to Math.clamp($fame.prostitution, 0, 2000)>> <</if>> <</if>> <</widget>> <<widget "famebestiality">> <<if _args[0] and $statFreeze isnot true>> <<if $face isnot "covered" and !$worn.face.type.includes("mask") and !$gloryhole or _args[2] is true>> <<set $fame.bestiality += _args[0]>> <<set $fame.bestiality to Math.clamp($fame.bestiality, 0, 2000)>> <</if>> <</if>> <</widget>> <<widget "famerape">> <<if _args[0] and $statFreeze isnot true>> <<if ($face isnot "covered" and !$worn.face.type.includes("mask") and !$gloryhole and !($npc.length is 1 and ["Eden", "Robin", "Kylar", "Sydney", "Gwylan"].includes($npc[0]))) or _args[2] is true>> <<set $fame.rape += _args[0]>> <<set $fame.rape to Math.clamp($fame.rape, 0, 2000)>> <</if>> <</if>> <</widget>> <<widget "famesex">> <<if _args[0] and $statFreeze isnot true or _args[2] is true>> <<if $face isnot "covered" and !$worn.face.type.includes("mask") and !$gloryhole and !($npc.length is 1 and ["Eden", "Robin", "Sydney", "Gwylan"].includes($npc[0])) or _args[2] is true>> <<set $fame.sex += _args[0]>> <<set $fame.sex to Math.clamp($fame.sex, 0, 2000)>> <</if>> <</if>> <</widget>> <<widget "famepregnancy">> <<if _args[0] and $statFreeze isnot true and playerBellyVisible()>> <<if $face isnot "covered" and !$worn.face.type.includes("mask") and !$gloryhole or _args[2] is true>> <<set $fame.pregnancy += _args[0]>> <<set $fame.pregnancy to Math.clamp($fame.pregnancy, 0, Math.clamp(playerNormalPregnancyTotal() + 1,1,8) * 250)>> <</if>> <</if>> <</widget>> <<widget "fameimpreg">> <<if _args[0] and $statFreeze isnot true>> <<if $face isnot "covered" and !$worn.face.type.includes("mask") and !$gloryhole or _args[2] is true>> <<set $fame.impreg += _args[0]>> <<set $fame.impreg to Math.clamp($fame.impreg, 0, 2000)>> <</if>> <</if>> <</widget>> <<widget "famegood">> <<if _args[0] and $statFreeze isnot true>> <<if $face isnot "covered" and !$worn.face.type.includes("mask") and !$gloryhole or _args[2] is true>> <<set $fame.good += _args[0]>> <<set $fame.good to Math.clamp($fame.good, 0, 2000)>> <</if>> <</if>> <</widget>> <<widget "famebusiness">> <<if _args[0] and $statFreeze isnot true>> <<if $face isnot "covered" and !$worn.face.type.includes("mask") and !$gloryhole or _args[2] is true>> <<set $fame.business += _args[0]>> <<set $fame.business to Math.clamp($fame.business, 0, 2000)>> <</if>> <</if>> <</widget>> <<widget "famepimp">> <<if _args[0] and $statFreeze isnot true>> <<if $face isnot "covered" and !$worn.face.type.includes("mask") and !$gloryhole or _args[2] is true>> <<set $fame.pimp += _args[0]>> <<set $fame.pimp to Math.clamp($fame.pimp, 0, 2000)>> <</if>> <</if>> <</widget>> <<widget "famescrap">> <<if _args[0] and $statFreeze isnot true>> <<if $face isnot "covered" and !$worn.face.type.includes("mask") and !$gloryhole or _args[2] is true>> <<set $fame.scrap += _args[0]>> <<set $fame.scrap to Math.clamp($fame.scrap, 0, 2000)>> <</if>> <</if>> <</widget>> <<widget "famesocial">> <<if _args[0] and $statFreeze isnot true>> <<if $face isnot "covered" and !$worn.face.type.includes("mask") and !$gloryhole or _args[2] is true>> <<set $fame.social += _args[0]>> <<set $fame.social to Math.clamp($fame.social, 0, 2000)>> <</if>> <</if>> <</widget>> <<widget "famemodel">> <<if _args[0] and $statFreeze isnot true>> <<if $face isnot "covered" and !$worn.face.type.includes("mask") and !$gloryhole or _args[2] is true>> <<set $fame.model += _args[0]>> <<set $fame.model to Math.clamp($fame.model, 0, 2000)>> <</if>> <</if>> <</widget>> <<widget "famedance">> <<exposure>> <<if $face isnot "covered" and !$worn.face.type.includes("mask") and !$gloryhole and $statFreeze isnot true>> <<if $exposed is 1>> <<set $fame.exhibitionism += $audience>> <<set $fame.exhibitionism to Math.clamp($fame.exhibitionism, 0, 2000)>> <<elseif $exposed gte 2>> <<set $fame.exhibitionism += ($audience * 2)>> <<set $fame.exhibitionism to Math.clamp($fame.exhibitionism, 0, 2000)>> <</if>> <</if>> <</widget>> <<widget "fameschoolex">> <<if _args[0] and $statFreeze isnot true>> <<if $face isnot "covered" and !$worn.face.type.includes("mask") and !$gloryhole>> <<set $fame.exhibitionism += _args[0]>> <<set $fame.exhibitionism to Math.clamp($fame.exhibitionism, 0, 2000)>> <</if>> <</if>> <</widget>> <<widget "fameProse">> <<switch _args[0]>> <<case "scrap">> <<set $_output to "combat">> <<case "good">> <<set $_output to "kindness">> <<case "social">> <<set $_output to "socialite">> <<case "model">> <<set $_output to "modelling">> <<case "impreg">> <<set $_output to "impregnation">> <<default>> <<set $_output to _args[0]>> <</switch>> <<print $_output>> <</widget>><<widget "updateFeats">> <<if _passageCheck is "Start">> <<set _recalledFeats to JSON.parse(localStorage.getItem("dolFeats"))>> <</if>> <<if _recalledFeats is undefined or _recalledFeats is null>> <<set _recalledFeats to {points: 0}>> <</if>> <<set _points to 0>> <<set _keys to Object.keys(setup.feats)>> <<for _i to 0; _i lt _keys.length; _i++>> <<set _gainPoints to false>> <<if $feats.currentSave[_keys[_i]] isnot undefined>> <<set _gainPoints to true>> <<set _saveTime to getTimeNumber($feats.currentSave[_keys[_i]])>> <<set _allSaveTime to getTimeNumber($feats.allSaves[_keys[_i]])>> <<if _saveTime lt _allSaveTime>> <<set $feats.allSaves[_keys[_i]] to $feats.currentSave[_keys[_i]]>> <</if>> <</if>> <<set _allSaveTime to getTimeNumber($feats.allSaves[_keys[_i]])>> <<set _recalledSaveTime to getTimeNumber(_recalledFeats[_keys[_i]])>> <<if _allSaveTime gt _recalledSaveTime>> <<if _recalledFeats[_keys[_i]] isnot undefined>> <<set $feats.allSaves[_keys[_i]] to _recalledFeats[_keys[_i]]>> <<set _gainPoints to true>> <</if>> <<else>> <<if $feats.allSaves[_keys[_i]] isnot undefined>> <<set _gainPoints to true>> <</if>> <</if>> <<if _gainPoints is true>> <<set _points += setup.feats[_keys[_i]].difficulty>> <</if>> <</for>> <<set $feats.allSaves.points to _points>> <!--Store a record of which clothes the player has unlocked--> <<if _recalledFeats.specialClothes isnot undefined>> <<set $feats.allSaves.specialClothes to _recalledFeats.specialClothes>> <<elseif $feats.allSaves.specialClothes is undefined>> <<set $feats.allSaves.specialClothes to []>> <</if>> <<if !Array.isArray(V.feats.allSaves.specialClothes)>> <!-- Update old special clothes system to new system --> <<set V.feats.allSaves.specialClothes to getUnlockedSpecialSets(updateSpecialClothesNames(V.feats.allSaves.specialClothes)).filter(set => setup.specialClothesSets[set].feat)>> <</if>> <<if $specialClothes and $feats.locked is false and $cheatsEnabled is false>> <<set $_unlockedSets to getUnlockedSpecialSets().filter(set => setup.specialClothesSets[set].feat)>> <<for $_label, $_value range $_unlockedSets>> <!-- value.unlocked being 3 or greater means the requirements to unlock the clothing was actually met --> <<if $_value>> <<set $feats.allSaves.specialClothes.pushUnique($_value)>> <</if>> <</for>> <</if>> <<if _passageCheck is "Start">> <<else>> <<set localStorage.setItem("dolFeats",JSON.stringify($feats.allSaves))>> <</if>> <</widget>> <<widget "setupFeats">> <<if $featsBoosts is undefined or _args[0] is true>> <<set _earnedFeats = new Set(Object.keys($feats.allSaves))>> <<set $featsBoosts = { upgrades: {}, /* coins spent on upgrades */ upgradeDetails: {}, /* junk data */ purchased: {}, /* amount of upgrades purchased */ missing: {}, /* ugh */ name: {}, /* why */ pointsUsed:0, /* hatred and also suffering */ clothingGender:"Either", clothingCustomColors:false, hidden: { greenThumb: true }, tattoos:{ 1:{bodypart:"Random",tattoo:"Random",pen:"Tattoo"}, 2:{bodypart:"Random",tattoo:"Random",pen:"Tattoo"}, 3:{bodypart:"Random",tattoo:"Random",pen:"Tattoo"}, 4:{bodypart:"Random",tattoo:"Random",pen:"Tattoo"}, 5:{bodypart:"Random",tattoo:"Random",pen:"Tattoo"} }, sexToys:[{},{},{},{},{},{}], specialClothesSets:{}, earSlimeType:"immaturePassive" }>> <<set _featData = { money: { name: "Starting Money", required: ["Pocket Change", "Money Maker", "Tycoon", "Millionaire"], cost: 5, maxMultiplier: 2, missing: "Unlock this boost by obtaining the 'Pocket Change' feat" }, grades: { name: "School Grades", required: ["Perfect Record"], cost: 15, max: 2, missing: "Unlock this boost by obtaining the 'Perfect Record' feat" }, skulduggery: { name: "Skulduggery Grade", required: ["Thief"], cost: 5, max: 4, missing: "Unlock this boost by obtaining the 'Thief' feat" }, dancing: { name: "Dancing Grade", required: ["May I have this Dance?"], cost: 5, max: 4, missing: "Unlock this boost by obtaining the 'May I have this Dance?' feat" }, swimming: { name: "Swimming Grade", required: ["Aquanaut"], cost: 5, max: 4, missing: "Unlock this boost by obtaining the 'Aquanaut' feat" }, athletics: { name: "Athletics Grade", required: ["Swift"], cost: 5, max: 4, missing: "Unlock this boost by obtaining the 'Swift' feat" }, tending: { name: "Tending Grade", required: ["Green Fingered"], cost: 5, max: 4, missing: "Unlock this boost by obtaining the 'Green Fingered' feat" }, greenThumb: { name: "Green Thumb Trait", required: ["Green Fingered"], cost: 40, max: 1, missing: "Unlock this boost by obtaining the 'Green Fingered' feat" }, housekeeping: { name: "Housekeeping Grade", required: ["Majordomo"], cost: 5, max: 4, missing: "Unlock this boost by obtaining the 'Majordomo' feat" }, seduction: { name: "Seduction Grade", required: ["Seductress"], cost: 5, max: 4, missing: "Unlock this boost by obtaining the 'Seductress' feat" }, purity: { name: "Daily Purity Boost", required: ["Angel", "Fallen Angel"], cost: 20, max: 5, exclusive: "impurity", missing: "Unlock this boost by obtaining the 'Walk Like an Angel' and 'Falling, Falling, Falling...' feats" }, impurity: { name: "Daily Impurity Boost", required: ["Demon"], cost: 20, max: 5, exclusive: "purity", missing: "Unlock this boost by obtaining the 'Devilish Looks' feat" }, newLife: { name: "A New Life", required: ["Broodmother Host", "Top Broodmother Host"], cost: 20, missing: "Unlock this boost by obtaining a hidden feat (" + setup.feats["Broodmother Host"].hint + ")" }, aNewBestFriend: { name: "A New Best Friend", required: ["Ear Slime Lover", "Ear Slime Amalgam"], cost: 10, missing: "Unlock this boost by obtaining a hidden feat (" + setup.feats["Ear Slime Lover"].hint + ")" }, tattoos: { name: "Starting Tattoos", required: ["A Living Canvas", "Billboard"], cost: 5, max: 5, missing: "Unlock this boost by obtaining the 'Billboard' and 'A Living Canvas' feats" }, randomClothing: { name: "Random Clothing", required: [], cost: 1, max: 20, missing: "" }, specialClothing: { name: "Special Clothing", required: ["Curious Attire", "Wicked Wardrobe"], cost: 0, missing: "Unlock this boost by obtaining a hidden feat (" + setup.feats["Curious Attire"].hint + ")" }, sexToys: { name: "Sex Toys", required: ["Opened Pandoras Box", "Opened Pandoras Cocks"], cost: 30, missing: "Unlock this boost by obtaining a hidden feat (" + setup.feats["Opened Pandoras Box"].hint + ")" } }>> <<run Object.entries(_featData).forEach(([k,f])=>{ const maxEarned = !f.required.length ? 1 : f.required.filter(x => _earnedFeats.has(x)).length; const max = !maxEarned ? 0 : (f.max ?? (f.maxMultiplier * maxEarned || maxEarned)); $featsBoosts.upgrades[k] = 0; $featsBoosts.upgradeDetails[k] = {cost:f.cost, max:max, purchased:0, ...(f.exclusive?{exclusive:f.exclusive}:{})}; $featsBoosts.missing[k] = f.missing; $featsBoosts.name[k] = max > 0 ? f.name : "?????"; })>> <</if>> <</widget>> <<widget "update_school_skills">> <<for _subject range ["science", "english", "maths", "history"]>> <<if V[_subject + 'trait'] gte 4>> <<set V[_subject] to 1000>> <<elseif V[_subject + 'trait'] gte 3>> <<set V[_subject] to 700>> <<elseif V[_subject + 'trait'] gte 2>> <<set V[_subject] to 400>> <<elseif V[_subject + 'trait'] gte 1>> <<set V[_subject] to 200>> <<else>> <<set V[_subject] to 100>> <</if>> <</for>> <</widget>> <<widget "applyFeatsBoost">> <<set _upgrades to $featsBoosts.upgrades>> <<set _details to $featsBoosts.upgradeDetails>> <<if $featsBoosts.pointsUsed gt 0>> <<earnFeat "A New Life">> <</if>> <<if _upgrades.money gt 0>> <<money `_details.money.purchased * _details.money.max * 2500` "startingMoney">> <</if>> <<if _upgrades.grades gt 0>> <<set $sciencetrait += _upgrades.grades / _details.grades.cost * 1>> <<set $englishtrait += _upgrades.grades / _details.grades.cost * 1>> <<set $mathstrait += _upgrades.grades / _details.grades.cost * 1>> <<set $historytrait += _upgrades.grades / _details.grades.cost * 1>> <<update_school_skills>> <</if>> <<if _upgrades.skulduggery gt 0>> <<set $skulduggery to _upgrades.skulduggery / _details.skulduggery.cost * 100>> <<set $skulduggeryday to _upgrades.skulduggery / _details.skulduggery.cost * 100>> <</if>> <<if _upgrades.dancing gt 0>> <<set $danceskill to _upgrades.dancing / _details.dancing.cost * 100>> <</if>> <<if _upgrades.tending gt 0>> <<set $tending += _upgrades.tending / _details.tending.cost * 100>> <</if>> <<if _upgrades.swimming gt 0>> <<set $swimmingskill += _upgrades.swimming / _details.swimming.cost * 100>> <</if>> <<if _upgrades.athletics gt 0>> <<set $athletics += _upgrades.athletics / _details.athletics.cost * 100>> <</if>> <<if _upgrades.seduction gt 0>> <<set $seductionskill to _upgrades.seduction / _details.seduction.cost * 100>> <</if>> <<if _upgrades.housekeeping gt 0>> <<set $housekeeping to _upgrades.housekeeping / _details.housekeeping.cost * 100>> <</if>> <<if _upgrades.purity gt 0>> <<set $featsPurityBoost to _upgrades.purity / _details.purity.cost>> <</if>> <<if _upgrades.impurity gt 0>> <<set $featsPurityBoost to _upgrades.impurity / _details.impurity.cost * -1>> <</if>> <<if _upgrades.newLife gt 0 and $settings.parasitePregnancyEnabled>> <<impregnateParasite "tentacle" 400>> <<fertiliseParasites>> <<set _pregnancy to $sexStats.anus.pregnancy>> <<set _pregnancy.motherStatus to 2>> <<set $pregnancyStats.parasiteDoctorEvents to 2>> <<set _pregnancy.fetus[0].stats.gender to "Hermaphrodite">> <<if _upgrades.newLife is 40>> <<set _pregnancy.fetus[0].stats.growth to 7>> <<set _pregnancy.fetus[0].stats.speed to 54>> <</if>> <<set _pregnancy.fetus[0].stats.lastEgg to Math.floor(_pregnancy.fetus[0].stats.growth / 3)>> <</if>> <<if _upgrades.aNewBestFriend gt 0>> <<parasite left_ear slime>> <<switch $featsBoosts.earSlimeType>> <<case "immatureAggressive">> <<set $earSlime.corruption to 20>> <<set $earSlime.growth to 0>> <<set $earSlime.startedThreats to true>> <<set $earSlime.exhibitionism to 2>> <<set $earSlime.deviancy to 2>> <<set $earSlime.promiscuity to 2>> <<case "grownAggressive">> <<set $earSlime.corruption to 100>> <<set $earSlime.growth to 25>> <<set $earSlime.startedThreats to true>> <<set $earSlime.exhibitionism to 2>> <<set $earSlime.promiscuity to 2>> <<set $earSlime.deviancy to 2>> <<default>> <<set $earSlime.corruption to 0>> <</switch>> <<else>> <<run delete $featsBoosts.earSlimeType>> <</if>> <<if _upgrades.aNewBestFriend gt 10>> <<parasite right_ear slime>> <</if>> <<if _upgrades.greenThumb gt 0>> <<set $backgroundTraits.pushUnique("greenthumb")>> <<if $fertiliser>> <<set $fertiliser.current++>> <</if>> <</if>> <<if _upgrades.randomClothing gt 0>> <<set _clothingItems to _upgrades.randomClothing * 3>> <<set _options to { head:[], face:[], neck:[], hands:[], handheld:[], upper:[], lower:[], under_upper:[], under_lower:[], legs:[], feet:[] }>> <<set _equip to setup.clothingLayer.body>> <<for _i to 0; _i lt _equip.length; _i++>> <<set _slot to _equip[_i]>> <<for _j to 0; _j lt setup.clothes[_slot].length; _j++>> <<if (setup.clothes[_slot][_j].gender is "f" and $featsBoosts.clothingGender is "Male") or (setup.clothes[_slot][_j].gender is "m" and $featsBoosts.clothingGender is "Female")>> <<continue>> <</if>> <<if setup.clothes[_slot][_j].outfitSecondary isnot undefined>> <<continue>> <</if>> <<if setup.clothes[_slot][_j].shop.includes("clothing")>> <<run _options[_slot].push(_j)>> <</if>> <</for>> <</for>> <<set _equip to ["head","face","neck","upper","upper","upper","upper","upper","lower","lower","lower","lower","lower","under_upper","under_upper","under_upper","under_lower","under_lower","under_lower","hands","legs","feet"]>> <<for _i to 0; _i lt _clothingItems; _i++>> <<set _slot to _equip.random()>> <<set _index to _options[_slot].random()>> <<set _item to clone(setup.clothes[_slot][_index])>> <<if _item.colour_options.length gt 0>> <<set _colors to clone(_item.colour_options)>> <<if $featsBoosts.clothingCustomColors is false>> <<run _colors.delete("custom")>> <</if>> <<set _item.colour to _colors.random()>> <<if $featsBoosts.clothingCustomColors is true and _item.colour is "custom">> <<set _item.colourCustom to customColour(random(0,360), (random(0,20)/10), (random(5,40)/10), (random(0,20)/10), (random(0,100)/100))>> <</if>> <</if>> <<if _item.accessory_colour_options.length gt 0>> <<set _colors to clone(_item.accessory_colour_options)>> <<if $featsBoosts.clothingCustomColors is false>> <<run _colors.delete("custom")>> <</if>> <<set _item.accessory_colour to _colors.random()>> <<if $featsBoosts.clothingCustomColors is true and _item.accessory_colour is "custom">> <<set _item.accessory_colourCustom to customColour(random(0,360), (random(0,20)/10), (random(5,40)/10), (random(0,20)/10), (random(0,100)/100))>> <</if>> <</if>> <<if _item.pattern_options and _item.pattern_options.length gt 0>> <<set _item.pattern to clone(_item.pattern_options).random()>> <</if>> <<set $_outfitPrimary to _item.outfitPrimary>> <<set $_items to {}>> <<run $_items[_slot] to clone(_item)>> <<if $_outfitPrimary isnot undefined>> <<for _labelf, _valuef range $_outfitPrimary>> <<for _j to 0; _j lt setup.clothes[_labelf].length; _j++>> <<if _valuef is setup.clothes[_labelf][_j].name>> <<set $_items[_labelf] to clone(setup.clothes[_labelf][_j])>> <<set $_items[_labelf].colour to clone($_items[_slot].colour)>> <<set $_items[_labelf].accessory_colour to clone($_items[_slot].accessory_colour)>> <<if $_items[_labelf].pattern_options and $_items[_labelf].pattern_options.length gt 0>><<set $_items[_labelf].pattern to clone($_items[_slot].pattern)>><</if>> <<if $featsBoosts.clothingCustomColors is true and _item.colour is "custom">> <<set $_items[_labelf].colourCustom to clone($_items[_slot].colourCustom)>> <</if>> <<if $featsBoosts.clothingCustomColors is true and _item.accessory_colour is "custom">> <<set $_items[_labelf].accessory_ColourCustom to clone($_items[_slot].accessory_colourCustom)>> <</if>> <<break>> <</if>> <</for>> <</for>> <</if>> <<if $_items[_slot] isnot undefined and $wardrobe[_slot].length lt $wardrobe.space>> <<for _labelf, _valuef range $_items>> <<run $wardrobe[_labelf].push(_valuef)>> <</for>> <<else>> <<set _clothingItems += 1>> <</if>> <<unset _item>> <</for>> <</if>> <<if _upgrades.tattoos gt 0>> <<featsTattooOptions>> <<set _totalTattoos to $featsBoosts.upgrades.tattoos / $featsBoosts.upgradeDetails.tattoos.cost>> <<set _bodyPartOptions to ["forehead","left_cheek","right_cheek","left_shoulder","right_shoulder","back","breasts","left_bottom","right_bottom","left_thigh","right_thigh","pubic"]>> /*Remove non-random locations*/ <<for _label, _value range $featsBoosts.tattoos>> <<if _value.tattoo isnot "Random">> <<set _bodyPart to _value.bodypart.toLowerCase()>> <<set _bodyPart to _bodyPart.replace(" ", "_")>> <<run _bodyPartOptions.delete(_bodyPart)>> <</if>> <</for>> /*Add non-random bodyparts*/ <<for _label, _value range $featsBoosts.tattoos>> <<if _label gt _totalTattoos>> <<break>> <</if>> <<if _value.bodypart is "Random">> <<continue>> <</if>> <<set _bodyPart to _value.bodypart.toLowerCase()>> <<set _bodyPart to _bodyPart.replace(" ", "_")>> <<run _bodyPartOptions.delete(_bodyPart)>> <<if _value.tattoo is "Random">> <<set _tattoo to _featsTattooAll.pluck()>> <<else>> <<set _tattoo to _value.tattoo>> <</if>> <<for _label2, _value2 range setup.bodywriting>> <<if _value2.writing is _tattoo>> <<add_bodywriting _bodyPart _label2 `_value.pen.toLowerCase()`>> <<break>> <</if>> <</for>> <</for>> /*Add random bodyparts*/ <<for _label, _value range $featsBoosts.tattoos>> <<if _label gt _totalTattoos>> <<break>> <</if>> <<if _value.bodypart isnot "Random">> <<continue>> <</if>> <<set _bodyPart to _bodyPartOptions.pluck()>> <<if _value.tattoo is "Random">> <<set _tattoo to _featsTattooAll.pluck()>> <<else>> <<set _tattoo to _value.tattoo>> <</if>> <<for _label2, _value2 range setup.bodywriting>> <<if _value2.writing is _tattoo>> <<add_bodywriting _bodyPart _label2 `_value.pen.toLowerCase()`>> <<break>> <</if>> <</for>> <</for>> <<bodywritingExposureCheck true>> <</if>> <<if _upgrades.specialClothing gt 0>> <<set _unlocked to $feats.allSaves.specialClothes>> <<specialClothesUpdate>> <<if (_upgrades.specialClothing / _details.specialClothing.cost) is 3>> /* Level 3 upgrade - everything is remembered. */ <<for $_labelC, $_valueC range _unlocked>> <<if $featsBoosts.specialClothesSets[$_labelC] is true>> <<run specialClothesUnlock("set", $_labelC, 3)>> <</if>> <</for>> <<elseif (_upgrades.specialClothing / _details.specialClothing.cost) is 2>> /* Level 2 upgrade - unlock all special clothes unlocked in any other save. */ <<for $_labelC, $_valueC range _unlocked>> <<if $featsBoosts.specialClothesSets[$_labelC] is true>> <<run specialClothesUnlock("set", $_labelC, 2)>> <</if>> <</for>> <<else>> /* Level 1 upgrade - unlock previosuly unlocked special clothing sets by selection. */ <<for $_labelC, $_valueC range $featsBoosts.specialClothesSets>> <<if $featsBoosts.specialClothesSets[$_labelC] is true>> <<run specialClothesUnlock("set", $_labelC, 2)>> <</if>> <</for>> <</if>> <</if>> <<if _upgrades.sexToys gt 0>> <<set _totalToys to _upgrades.sexToys / 10>> <<set _indexList to []>> <<run Object.values(setup.sextoys.filter(item => !item.shop.includes("forest"))).forEach(toy => T.indexList.push(toy.index))>> <<for _i to 0; _i lt _totalToys; _i++>> <<if $featsBoosts.sexToys[_i].index isnot undefined and $featsBoosts.sexToys[_i].index isnot -1>> <<set _sexToyIndex to $featsBoosts.sexToys[_i].index>> <<set _sexToyColour to $featsBoosts.sexToys[_i].colour>> <<run _indexList.delete(_sexToyIndex)>> <<else>> <<set _sexToyIndex to _indexList.pluck()>> <</if>> <<if !_sexToyColour or _sexToyColour is -1>> <<set _sexToyColourOptions to Object.values(setup.sextoys).find(toy => toy.index is _sexToyIndex).colour_options>> <<set _sexToyColour to _sexToyColourOptions[random(0, _sexToyColourOptions.length - 1)]>> <</if>> <<run sexShopOnBuyClick(_sexToyIndex, false, _sexToyColour, false)>> <<unset _sexToyColour>> <</for>> <</if>> /* Clean Up */ <<run delete $featsBoosts.name>> <<run delete $featsBoosts.missing>> <<run delete $featsBoosts.clothingCustomColors>> <<run delete $featsBoosts.clothingGender>> <<run delete $featsBoosts.upgradeDetails>> <<run delete $featsBoosts.tattoos>> <<run delete $featsBoosts.sexToys>> <<run delete $featsBoosts.hidden>> <<run delete $featsBoosts.purchased>> <<run delete $featsBoosts.specialClothesSets>> <</widget>> <!-- Paste in the console to get the total number of vrelcoins var count = 0; for (var i = 0; i < Object.keys(setup.feats).length;i++){ count += setup.feats[Object.keys(setup.feats)[i]].difficulty }--><<widget "barbicon">> <<icon "barb.png">> <</widget>> <<widget "wolfcaveicon">> <<switch _args[0]>> <<case "pup">><<icon "wolfpup.png">> <<case "sleep">><<icon "wolfsleep.png">> <<case "stream">><<icon "stream.png">> <<case "black dog">><<icon "blackdog.png">> <<case "bw">><<icon "blackwolf.png">> <<case "ferocity">><span class="icon-container"><img class="icon" src="img/ui/wolfferocity.png"></span> <<case "harmony">><span class="icon-container"><img class="icon" src="img/ui/wolfharmony.png"></span> <<case "inside">><<icon "wolfcave_inside.png">> <<case "outside">><<icon "wolfcave_outside.png">> <<case "entrance">><<icon "wolfcave_entrance.png">> <<case "hole">><<icon "wolfcave_hole.png">> <<case "pupsden">><<icon "wolfcave_pupsden.png">> <<case "wolf">> <<set _wolfcolor = ["brown", "caramel", "gray", "white"]>> <<set _selectedColor = _wolfcolor.random()>> <<set _wolf = "wolf_" + _selectedColor + ".png">> <<icon _wolf>> <<case "wolf play">> <<set _wolfcolor = ["brown", "caramel", "gray", "white"]>> <<set _selectedColor = _wolfcolor.random()>> <<set _wolfplay = "wolf_" + _selectedColor + "_play" + ".png">> <<icon _wolfplay>> <<case "children">> <<run Object.values($children).forEach(child => { if (child.type is "wolf" and child.location is "wolf_cave") { if (!T.childrenIconSelect) T.childrenIconSelect = []; T.childrenIconSelect.push(child.childId); } })>> <<if _childrenIconSelect.length gte 2>> <<set $_child1 to _childrenIconSelect.pluck()>> <<set $_child2 to _childrenIconSelect.pluck()>> <<if $children[$_child1].features.monster isnot $children[$_child2].features.monster>> <<set _wolfkid to ($children[$_child1].features.monster is "monster") ? $_child1 : $_child2>> <<set _wolfpup to (_wolfkid is $_child1 ? $_child2 : $_child1)>> <<set $_baseIcon to "children/pups/duo_features.png">> <<set $_wolfkidHair to "children/pups/duo_monster_hair.png">> <<set $_wolfkidSkin to "children/pups/duo_monster_skin.png">> <<set $_wolfkidEyes to "children/pups/duo_monster_eyes.png">> <<set $_wolfpupHair to "children/pups/duo_wolf_hair.png">> <<set $_wolfpupEyes to "children/pups/duo_wolf_eyes.png">> <<set _wolfkidSkinFilter = "filter: " + setup.colours.getSkinCSSFilter($children[_wolfkid].features.skinColour)>> <<set _wolfPupEyeClass = $children[_wolfpup].features.eyeColour?.replace("pc",V.eyeselect)?.replace(/ /g, '-')>> <<set _wolfKidEyeClass = $children[_wolfkid].features.eyeColour?.replace("pc",V.eyeselect)?.replace(/ /g, '-')>> <span class="icon-container"> <<icon $_baseIcon>> <span @style="_wolfkidSkinFilter"> <<icon $_wolfkidSkin>> </span> <span @class="'hair-'+$children[_wolfkid].features.hairColour"> <span class="colour-hair"><<icon $_wolfkidHair>></span> </span> <span @class="'hair-'+$children[_wolfpup].features.hairColour"> <span class="colour-hair"><<icon $_wolfpupHair>></span> </span> <span @class="'eye-'+_wolfPupEyeClass"> <<icon $_wolfpupEyes>> </span> <span @class="'eye-'+_wolfKidEyeClass"> <<icon $_wolfkidEyes>> </span> <<set $_baseIcon to "children/pups/duo_features.png">> </span> <<else>> <<set _monster to $children[$_child1].features.monster is "monster">> <<set $_wolfHair to _monster ? "children/pups/monster_fur.png" : "children/pups/beast_fur.png">> <<set $_wolfSkin to _monster ? "children/pups/monster_body.png" : null>> <<set $_wolfEyes to _monster ? "children/pups/monster_eyes.png" : "children/pups/beast_eyes.png">> <<set _wolfEyeClass = $children[$_child1].features.eyeColour?.replace("pc",V.eyeselect)?.replace(/ /g, '-')>> <span class="icon-container"> <<if $_wolfSkin>> <<set _wolfkidSkinFilter = "filter: " + setup.colours.getSkinCSSFilter($children[$_child1].features.skinColour)>> <span @style="_wolfkidSkinFilter"> <<icon $_wolfSkin>> </span> <</if>> <span @class="'hair-'+$children[$_child1].features.hairColour"> <span class="colour-hair"><<icon $_wolfHair>></span> </span> <span @class="'eye-'+_wolfEyeClass"> <<icon $_wolfEyes>> </span> <<if $_wolfSkin>> <<icon "children/pups/monster_paws.png">> <</if>> </span> <</if>> <</if>> <<default>><<icon "wolf_gray.png">> <</switch>> <</widget>> <<widget "clifficon">> <<icon "cliff.png">> <</widget>> <<widget "starfishicon">> <<icon "starfish.png">> <</widget>> <<widget "fishtankicon">> <<switch $container.home.name>> <<case "Small Fish Tank">> <<icon "tank_small.gif">> <<case "Fish Tank">> <<icon "tank_medium.gif">> <<case "Large Fish Tank">> <<switch $container.home.decorations>> <<case "Standard Decorations">><<icon "tank_large_decor.gif">> <<case "Exotic Decorations">><<icon "tank_large_exotic.gif">> <<default>><<icon "tank_large.gif">> <</switch>> <<case "Huge Fish Tank">> <<switch $container.home.decorations>> <<case "Standard Decorations">><<icon "tank_huge_decor.gif">> <<case "Exotic Decorations">><<icon "tank_huge_exotic.gif">> <<default>><<icon "tank_huge.gif">> <</switch>> <<default>> <<icon "tank_medium.gif">> <</switch>> <</widget>> <<widget "mericon">> <<icon "mer.png">> <</widget>> <<widget "domusicon">> <<icon "domus.png">> <</widget>> <<widget "connudatusicon">> <<icon "connudatus.png">> <</widget>> <<widget "highicon">> <<icon "high.png">> <</widget>> <<widget "oxfordicon">> <<icon "oxford.png">> <</widget>> <<widget "harvesticon">> <<icon "harvest.png">> <</widget>> <<widget "danubeicon">> <<icon "danube.png">> <</widget>> <<widget "wolficon">> <<icon "wolf.png">> <</widget>> <<widget "nightingaleicon">> <<icon "nightingale.png">> <</widget>> <<widget "elkicon">> <<icon "elk.png">> <</widget>> <<widget "busicon">> <<icon "bus.png">> <</widget>> <<widget "brothelicon">> <<switch _args[0]>> <<case "gloryhole">><<icon "actions/gloryhole.png">> <<case "stage">><<icon "stage.png">> <<default>><<icon "brothel.gif">> <</switch>> <</widget>> <<widget "swimmingicon">> <<icon "swimming.png">> <</widget>> <<widget "scienceicon">> <<switch _args[0]>> <<case "pink lichen">><<icon "lichen_pink.png">> <<case "white lichen">><<icon "lichen_white.png">> <<case "violet lichen">><<icon "lichen_violet.png">> <<case "purple lichen">><<icon "lichen_purple.png">> <<default>><<icon "science.png">> <</switch>> <</widget>> <<widget "historyicon">> <<icon "history.png">> <</widget>> <<widget "mathicon">> <<icon "math.png">> <</widget>> <<widget "englishicon">> <<icon "english.png">> <</widget>> <<widget "parkicon">> <<switch _args[0]>> <<case "fountain">><<icon "fountain.png">> <<default>><<icon "park.gif">> <</switch>> <</widget>> <<widget "policeicon">> <<icon "police.png">> <</widget>> <<widget "peppersprayicon">> <<icon "spray.png">> <</widget>> <<widget "sewericon">> <<switch _args[0]>> <<case "algae">><<icon "algae.png">> <<case "breeze">><<icon "breeze.png">> <<case "drain">><<icon "drain_ocean.png">> <<case "litter">><<icon "litter.png">> <<case "main">><<icon "sewermain.png">> <<case "mud">><<icon "mud.png">> <<case "wood">><<icon "log.png">> <<case "webs">><<icon "webs.png">> <<case "rubble">><<icon "rubble.png">> <<case "rubbish">><<icon "rubbish.png">> <<case "ruins">><<icon "ruins.png">> <<case "sculpture">><<icon "sculpture.png">> <<case "scrap">><<icon "scrap.png">> <<case "smuggler">><<icon "smuggler.png">> <<case "waterfall">><<icon "waterfall.png">> <<default>><<icon "sewer.png">> <</switch>> <</widget>> <<widget "foresticon">> <<switch _args[0]>> <<case "bush">><<icon "bush.png">> <<case "churchyard">><<icon "churchyard.png">> <<case "river">><<icon "river.png">> <<case "bog">><<icon "bog.png">> <<case "garden">> <<switch Time.season>> <<case "spring">><<icon "forest_garden_spring.png">> <<case "summer">><<icon "forest_garden_summer.png">> <<case "autumn">><<icon "forest_garden_autumn.png">> <<case "winter">><<icon "forest_garden_winter.png">> <<default>><<icon "forest_garden_spring.png">> <</switch>> <<default>><<icon "forest.png">> <</switch>> <</widget>> <<widget "islandicon">> <<switch _args[0]>> <<case "explore">><<icon "actions/explore.png">> <<case "mask">><<icon "clothes/islander_mask.png">> <<case "nuts">><<icon "nuts.png">> <<default>><<icon "island.png">> <</switch>> <</widget>> <<widget "pubicon">> <<icon "pub.png">> <</widget>> <<widget "lockericon">> <<switch _args[0]>> <<case "put in">><<icon "putinlocker.png">> <<default>><<icon "locker.png">> <</switch>> <</widget>> <<widget "loitericon">> <<icon "loiter.gif">> <</widget>> <<widget "compoundicon">> <<icon "compound.gif">> <</widget>> <<widget "oakicon">> <<icon "danube_oak.png">> <</widget>> <<widget "heelsicon">> <<switch _args[0]>> <<case "hobble">><<icon "actions/hobbleheels.png">> <<default>><<icon "exerciseheels.png">> <</switch>> <</widget>> <<widget "exerciseicon">> <<icon "physique.png">> <</widget>> <<widget "getinicon">> <<icon "get_in.png">> <</widget>> <<widget "refuseicon">> <<icon "refuse.png">> <</widget>> <<widget "getouticon">> <<switch _args[0]>> <<case "dig">><<icon "dig.png">> <<case "hole">><<icon "get_out_hole.png">> <<default>><<icon "get_out.png">> <</switch>> <</widget>> <<widget "loveicon">> <<switch _args[0]>> <<case "kiss">><<icon "actions/kiss.png">> <<case "hug">><<icon "actions/hug.png">> <<default>><<iconUi "love_interest.png">> <</switch>> <</widget>> <<widget "lockicon">> <<switch _args[0]>> <<case "key">><<icon "key_cabinet.png">> <<case "gate">><<icon "gate.png">> <<case "bronze key">><<icon "key_bronze.png">> <<case "old key">><<icon "key_old.png">> <<case "iron key">><<icon "key_iron.png">> <<case "pick">><<icon "lockpick.png">> <<case "unlock">><<icon "padlock_unlocked.png">> <<default>><<icon "padlock.png">> <</switch>> <</widget>> <<widget "templeicon">> <<switch _args[0]>> <<case "altar">><<icon "altar.gif">> <<case "baton">><<icon "baton.png">> <<case "cloister">><<icon "cloister.png">> <<case "confession">><<icon "confessional.png">> <<case "garden">><<switch Weather.dayState>><<case "night">><<icon "temple_garden_night.png">><<default>><<icon "temple_garden.png">><</switch>> <<case "pew">><<icon "pew.png">> <<case "pray">><<skinicon "pray">> <<case "prayer room">><<icon "prayer_room.png">> <<case "quarters">><<icon "quarters.png">> <<case "statue">> <<if $hc>> <<icon "statue_child.png">> <<elseif $world_corruption_soft lte 25>> <<icon "statue_low.png">> <<elseif $world_corruption_soft lte 99>> <<icon "statue_mid.png">> <<else>> <<icon "statue_high.png">> <</if>> <<case "trial">><<icon "trial_of_purity.gif">> <<case "trialcontinue">><<icon "trial_continue.gif">> <<case "trialbail">><<icon "trial_jump.gif">> <<case "whip">><<icon "whip.png">> <<case "virginity">><<icon "virginity_test.png">> <<default>><<wolficon>> <</switch>> <</widget>> <<widget "edenicon">> <<switch _args[0]>> <<case "coat stand">><<icon "coatstand.png">> <<case "curtains">><<icon "curtains.png">> <<case "rug">><<icon "rug.png">> <<case "scarf">><<icon "clothes/scarf.png">> <<case "salve">><<icon "salve.png">> <<case "soap">><<icon "soap.png">> <<case "supplies">><<icon "supplies.png">> <<case "target">><<icon "target.png">> <<default>><<icon "cabin.png">> <</switch>> <</widget>> <<widget "choreicon">> <<switch _args[0]>> <<case "sweep">><<icon "broom_dustpan.png">> <<case "clean">><<icon "sponge.png">> <<case "fix">><<icon "hammer_nails.png">> <<case "litter">><<icon "litter.png">> <<case "rubbish">><<icon "rubbish.png">> <<case "trashcan">><<icon "landfill.png">> <<case "trim">><<icon "shears.gif">> <<default>><<icon "sponge.png">> <</switch>> <</widget>> <<widget "wraithicon">> <<icon "wraith.png">> <</widget>> <<widget "assignmenticon">> <<icon "assignment.png">> <</widget>> <<widget "couchicon">> <<icon "couch.png">> <</widget>> <<widget "mysteryicon">> <<icon "ask.png">> <</widget>> <<widget "stallicon">> <<switch _args[0]>> <<case "open">><<icon "stall_open.png">> <<case "balloon">><<icon "stall_balloon.png">> <<default>><<icon "stall.png">> <</switch>> <</widget>> <<widget "entertownicon">> <<switch Weather.dayState>> <<case "night">> <<icon "town_night.png">> <<default>> <<icon "town.png">> <</switch>> <</widget>> <<widget "relaxicon">> <<icon "actions/relax.png">> <</widget>> <<widget "farmicon">> <<switch _args[0]>> <<case "alexbed">><<icon "farm_alexbed.png">> <<case "alexdesk">><<icon "farm_alexdesk.png">> <<case "barn">><<icon "barn.png">> <<case "clear yard">><<icon "clearyard.gif">> <<case "cottage">><<icon "cottage.png">> <<case "grass">><<icon "grass.png">> <<case "kennel">><<icon "kennel.png">> <<case "meadow">><<icon "meadow.png">> <<case "milk">><<icon "milk_machine.png">> <<case "bucket">><<icon "milk_bucket.png">> <<case "tv">><<icon "TV.gif">> <<case "lab">><<icon "farm_lab.gif">> <<case "parasitebarn">><<icon "farm_parasitebarn.png">> <<case "relax">><<icon "farm_alexrelax.png">> <<default>> <<switch Time.season>> <<case "autumn">><<icon "farmlands_autumn.png">> <<case "winter">><<icon "farmlands_winter.png">> <<default>><<icon "farmlands.png">> <</switch>> <</switch>> <</widget>> <<widget "tendingicon">> <<set _string to "tending/" + _args[0]>> <<if !_string.includes(".png") and !_string.includes(".gif")>> <<if setup.plants[_args[0]]?.icon.includes(".gif")>> <<set _string += ".gif">> <<else>> <<set _string += ".png">> <</if>> <</if>> <<icon _string>> <</widget>> <<widget "crimeicon">> <<switch _args[0]>> <<case "black box">><<icon "blackbox.gif">> <<case "mark">><<icon "mark.gif">> <<case "safe">><<icon "safe.gif">> <<case "shackles">><<icon "shackles.png">> <<case "plunder">><<icon "actions/plunder.png">> <<default>><<icon "actions/crime.png">> <</switch>> <</widget>> <<widget "antiqueicon">> <<icon `"antiques/antique_" + _args[0] + ".png"`>> <</widget>> <<widget "symbol">> <<switch _args[0]>> <<case "purity">><<tficon "angel">><<exit>> <<case "corruption">><<tficon "demon">><<exit>> <<case "promiscuity" "lust">><<set _symbol to "sym_lust.png">> <<case "trauma" "willpower" "fear">><<set _symbol to "sym_trauma.png">> <<default>><<set _symbol to `sym_${_args[0]}.png`>> <</switch>> <<iconUi _symbol>> <</widget>> <<widget "gifticon">> <<switch _args[0]>> <<case "balloons">><<icon "balloons.png">> <<case "christmas">><<icon "gift_christmas.png">> <<case "christmas hat">><<icon "clothes/christmas_hat.png">> <<case "gothic">><<icon "clothes/gothic_gown.png">> <<case "hunting">><span class="clothes-brown"><<icon "clothes/hunting_coat.png">></span> <<case "kimono">><<icon "clothes/kimono.png">> <<case "love">><<icon "gift_li.png">> <<case "wrapping">><<icon "wrapping.png">> <<case "shirt">><span class="clothes-light-blue"><<icon "clothes/t-shirt.png">></span> <<case "sundress">><span class="clothes-light-pink"><<icon "clothes/sundress.png">></span> <<case "tuxedo">><<icon "clothes/tuxedo_jacket.png">> <<case "valentine">><<icon "gift_vday.png">> <<default>><<icon "gift_christmas.png">> <</switch>> <</widget>> <<widget "mooricon">> <<switch _args[0]>> <<case "remy">><<icon "estate.png">> <<case "remy cottage">><<icon "remy_cottage.png">> <<default>><<icon "moor.png">> <</switch>> <</widget>> <<widget "birdicon">> <<switch _args[0]>> <<case "nest">> <<set $_nestImg to "birdTower/nest">> <<switch $bird.upgrades.nest>> <<case 0>><<set $_nestImg += "_wood">> <<case 1>><<set $_nestImg += "_padded">> <<case 2>><<set $_nestImg += "_cushioned">> <<case 3>> <<set $_nestImg += "_luxurious">> <<if $bird.upgrades.decor gte 4>> <<set $_nestImg += "_decor">> <</if>> <</switch>> <<if Object.values($children).find(child => (child.type is "hawk" and child.location is "tower" and child.eggTimer))>> <<set $_nestImg += "_eggs">> <</if>> <<set $_nestImg += ".png">> <<icon $_nestImg>> <<case "perch">> <<set $_perchImg to "birdTower/perch">> <<switch Weather.dayState>> <<case "night">> <<if Weather.bloodMoon>> <<set $_perchImg += "_blood">> <<else>> <<set $_perchImg += "_night">> <</if>> <<default>> <<switch Weather.name>> <<case "lightPrecipitation" "heavyPrecipitation" "thunderStorm">> <<if Weather.precipitation is "snow">> <<set $_perchImg += "_snow">> <<else>> <<set $_perchImg += "_rain">> <</if>> <<default>><<set $_perchImg += ("_" + Weather.dayState)>> <</switch>> <</switch>> <<if $bird.upgrades?.decor gte 3>> <<set $_perchImg += "_decor">> <</if>> <<set $_perchImg += ".png">> <<icon $_perchImg>> <<case "perch_up">><<icon "actions/perch_get_up.png">> <<case "preen">> <<set $_frontIcon = 'birdTower/preen_wing_debris.png'>> <<if $daily.birdGroom is undefined>> <<icon $_frontIcon infront>> <</if>> <<icon "birdTower/preen_wing.png">> <<case "preen_self">> <<set $_hairIcon = 'birdTower/preen_wing_hair.png'>> <<set $_frontIcon = 'birdTower/preen_wing_debris.png'>> <<if $daily.birdSelfPreen is undefined>> <<icon $_frontIcon infront>> <</if>> <span @class="'hair-'+$haircolour"> <span class="colour-hair"><<icon $_hairIcon>></span> </span> <<case "hunt">> <<set $_huntImg to "birdTower/prepare_hunt_" + Weather.dayState + ".gif">> <<icon $_huntImg>> <<case "firepit">> <<if $bird.upgrades>> <<set $_firePitImg to "birdTower/firepit_">> <<switch $bird.upgrades.firepit>> <<case 0 1>><<set $_firePitImg += "makeshift_">> <<case 2>><<set $_firePitImg += "robust_">> <<case 3>><<set $_firePitImg += "bonfire_">> <</switch>> <<set $_firePitTime to getBirdBurnTime()>> <<if $_firePitTime lte 0>> <<set $_firePitImg += "0.gif">> <<elseif $_firePitTime lte 120>> <<set $_firePitImg += "1.gif">> <<elseif $_firePitTime lte 480>> <<set $_firePitImg += "2.gif">> <<elseif $_firePitTime lte 960>> <<set $_firePitImg += "3.gif">> <<else>> <<set $_firePitImg += "4.gif">> <</if>> <<icon $_firePitImg>> <<else>> <<icon "campfire.gif">> <</if>> <<case "rainwater">> <<if $bird.upgrades?.pot is 3 and getBirdBurnTime() gt 0>> <<icon "birdTower/rain_pool_heated.gif">> <<else>> <<icon "birdTower/rain_pool.gif">> <</if>> <<case "rack">> <<switch $bird.upgrades.rack>> <<case 0 1>><<icon "birdTower/drying_rack_makeshift.png">> <<case 2>><<icon "birdTower/drying_rack_expanded.png">> <<case 3>><<icon "birdTower/drying_rack_enclosed.png">> <</switch>> <<case "snare">><<icon "birdTower/snare_no_bait.png">> <<case "snare_bait">><<icon "birdTower/snare_bait.png">> <<case "snare_lurker">><<icon "birdTower/snare_lurker.gif">> <<case "sing">><<icon "sing.png">> <<case "tower">><<icon "birdTower/tower.png">> <<case "tools">><<icon "birdTower/toolbox.png">> <<case "pot">><<icon "birdTower/cooking_pot.png">> <<case "pot_cook">> <<if getBirdBurnTime() gt 0>> <<icon "birdTower/cooking_pot_boil.gif">> <<else>> <<icon "birdTower/cooking_pot.png">> <</if>> <<case "telescope">><<icon "birdTower/ornate_telescope.png">> <<case "wood">><<icon "birdTower/wood.png">> <<case "fabric">><<icon "birdTower/fabric.png">> <<case "sticks">><<icon "birdTower/stick.png">> <<case "leaves">><<icon "birdTower/leaf.png">> <<case "junk">><<icon "birdTower/junk.png">> <<case "lurkers">><<icon "birdTower/lurker_dead.png">> <<case "lurkers_netted">><<icon "birdTower/lurker_netted.png">> <<case "leather">><<icon "birdTower/lurker_leather.png">> <<case "feathers">><<icon "birdTower/feather.png">> <<case "tarp" "shelter">><<icon "birdTower/tarp.png">> <<case "mirror">> <<if $bird.upgrades?.decor gte 3>> <<icon "birdTower/mirror_tower_decor.png">> <<else>> <<icon "birdTower/mirror_tower.png">> <</if>> <<case "wardrobe">><<if $bird.upgrades?.decor gte 4>><<icon "birdTower/wardrobe_tower_decor.png">><<else>><<icon "birdTower/wardrobe_tower.png">><</if>> <<case "eggs">> <<switch _eggIcon>> <<case 1>><<icon "birdTower/hawk_egg_one.png">> <<case 2>><<icon "birdTower/hawk_egg_two.png">> <<default>><<icon "birdTower/hawk_egg_three.png">> <</switch>> <<case "kiss">><<if $monster is 1>><<icon "actions/kiss_greathawk_monster.png">><<else>><<icon "actions/kiss_greathawk_beast.png">><</if>> <<case "fly_down">><<icon "actions/flight_land.png">> <<case "bracelet">><<icon "birdTower/bracelet.png">> <<case "wallet">><<icon "birdTower/wallet.png">> <<case "ring">><<icon "birdTower/ring.png">> <<case "watch">><<icon "birdTower/watch.png">> <<case "necklace">><<icon "birdTower/necklace.png">> <<case "antique bullet">><<icon "antiques/antique_bullet.png">> <<case "silver">><<icon "birdTower/silver_bar.gif">> <<case "trapdoor">><<if $bird.lock is 1>><<icon "birdTower/trap_door_locked.png">><<else>><<icon "birdTower/trap_door.png">><</if>> <<case "children">> <<run Object.values($children).forEach(child => { if (child.type is "hawk" and child.location is "tower" and child.eggTimer is undefined) { if (!T.childrenIconSelect) T.childrenIconSelect = []; T.childrenIconSelect.push(child.childId); } })>> <<if _childrenIconSelect.length gte 2>> <<set $_child1 to _childrenIconSelect.pluck()>> <<set $_child2 to _childrenIconSelect.pluck()>> <<if $children[$_child1].features.monster is $children[$_child2].features.monster>> <<if $children[$_child1].features.monster is "monster">> <<set _childIconFilter1 = "filter: " + setup.colours.getSkinCSSFilter($children[$_child1].features.skinColour)>> <<set _childIconFilter2 = "filter: " + setup.colours.getSkinCSSFilter($children[$_child2].features.skinColour)>> <<set $_baseIcon to "birdTower/child_harpies.png">> <<set $_skinIcon1 to "birdTower/child_harpies_skin1.png">> <<set $_skinIcon2 to "birdTower/child_harpies_skin2.png">> <span class="icon-container"> <<icon $_baseIcon>> <span @style="_childIconFilter1"> <<icon $_skinIcon2>> </span> <span @style="_childIconFilter2"> <<icon $_skinIcon1>> </span> </span> <<else>> <<icon "birdTower/child_hawks.png">> <</if>> <<else>> <<set _childIconFilter = "filter: " + ($children[$_child1].features.monster is "monster" ? setup.colours.getSkinCSSFilter($children[$_child1].features.skinColour) : setup.colours.getSkinCSSFilter($children[$_child2].features.skinColour))>> <<set $_baseIcon to "birdTower/child_birds.png">> <<set $_skinIcon to "birdTower/child_birds_skin.png">> <span class="icon-container"> <<icon $_baseIcon>> <span @style="_childIconFilter"> <<icon $_skinIcon>> </span> </span> <</if>> <<else>> <<if $children[_childrenIconSelect[0]].features.monster is "monster">> <<set _childIconFilter = "filter: " + setup.colours.getSkinCSSFilter($children[_childrenIconSelect[0]].features.skinColour)>> <<set $_baseIcon to "birdTower/child_harpy.png">> <<set $_skinIcon to "birdTower/child_harpy_skin.png">> <span class="icon-container"> <<icon $_baseIcon>> <span @style="_childIconFilter"> <<icon $_skinIcon>> </span> </span> <<else>> <<icon "birdTower/child_hawk.png">> <</if>> <</if>> <<default>><<icon "birdTower/tower.png">> <</switch>> <</widget>> <<widget "tficon">> <<switch _args[0]>> <<case "angel" "fallenangel" "demon">> <<iconUi `"tf_" + _args[0] + ".png"`>> <<case "wolf">> <<set $_hairIcon = 'tf_wolf.png'>> <<set $_frontIcon = 'tf_wolf_acc.png'>> <<case "cat">> <<set $_hairIcon = 'tf_cat.png'>> <<set $_frontIcon = 'tf_cat_acc.png'>> <<case "cow">> <<set $_baseIcon = 'tf_cow.png'>> <<case "fox">> <<set $_hairIcon = 'tf_fox.png'>> <<set $_frontIcon = 'tf_fox_acc.png'>> <<case "bird" "harpy">> <<set $_hairIcon = 'tf_bird.png'>> <</switch>> <<if $_baseIcon>> <<icon $_baseIcon>> <<elseif $_hairIcon>> <<if $_frontIcon>> <<icon $_frontIcon infront>> <</if>> <span @class="'hair-'+$haircolour"> <span class="colour-hair"><<icon $_hairIcon>></span> </span> <</if>> <</widget>> <<widget "alleyicon">> <<switch Weather.dayState>> <<case "day">> <<icon "alley.png">> <<case "night">> <<icon "alley_night.png">> <<case "dawn">> <<icon "alley_dawn.png">> <<case "dusk">> <<icon "alley_dusk.png">> <<default>> <<icon "alley.png">> <</switch>> <</widget>> <<widget "arcadeicon">> <<icon "arcade.gif">> <</widget>> <<widget "gameicon">> <<switch _args[0]>> <<case "controller">> <<set $_baseIcon to "robin_controller.png">> <<case "cards">> <<set $_cardIcon = "game_cards.gif">> <<set $_frontIcon = "game_acc_cards.gif">> <<case "cards_0" "cards_1" "cards_2">> <<set $_cardIcon = "game_cards_bet.gif">> <<set $_frontIcon = "game_acc_" + _args[0] +".gif">> <<default>> <<set $_baseIcon to "game_" + _args[0] +".png">> <</switch>> <<if $_baseIcon>> <<icon $_baseIcon>> <<elseif $_cardIcon>> <<icon $_frontIcon infront>> <span @class="'clothes-' + $cardcover.colour"> <<icon $_cardIcon>> </span> <</if>> <</widget>> <<widget "windowicon">> <<icon "window_glass.png" infront>> <<icon "window_bw.gif">> <</widget>> <<widget "poundicon">> <<if Weather.precipitation is "rain">> <<icon "pound_rust.png">> <<else>> <<icon "pound.png">> <</if>> <</widget>> <<widget "dancestudioicon">> <<icon "dancestudio.png">> <</widget>> <<widget "flatsicon">> <<icon "flats.png">> <</widget>> <<widget "maleicon">> <<icon "male.png">> <</widget>> <<widget "femaleicon">> <<icon "female.png">> <</widget>> <<widget "museumicon">> <<switch _args[0]>> <<case "duck">> <<icon "museum_duck.png">> <<case "horse">> <<icon "museum_horse.png">> <<default>> <<icon "museum.png">> <</switch>> <</widget>> <<widget "homeicon">> <<icon "orphanage.png">> <</widget>> <<widget "roadicon">> <<if (Weather.bloodMoon or $forcedBloodmoon)>> <<icon "roadnight_blood.png">> <<else>> <<switch Weather.dayState>> <<case "day">> <<icon "roadday.png">> <<case "night">> <<icon "roadnight.png">> <<case "dawn">> <<icon "roaddawn.png">> <<case "dusk">> <<icon "roaddusk.png">> <<default>> <<icon "roadday.png">> <</switch>> <</if>> <</widget>> <<widget "forestroadicon">> <<icon `"forest_road_" + _args[0] + ".png"`>> <</widget>> <<widget "schoolicon">> <<switch _args[0]>> <<case "building">><span style="position:relative;bottom:5px"><<icon "schoolnew.png">></span> <<case "courtyard">><<icon "actions/school_courtyard.png">> <<case "hallways">><<icon "hallways.png">> <<case "headdesk">><<icon "headdesk.png">> <<case "infirmary">><<icon "infirmary.png">> <<case "library">> <<icon "library.png">> <<case "library desk">><<icon "library_desk.png">> <<case "stump">><<icon "stump.png">> <<default>><<icon "school.png">> <</switch>> <</widget>> <<widget "spaicon">> <<switch _args[0]>> <<case "massage">><<icon "spa.gif">> <<case "tanning">><<icon "tanning.png">> <<default>><<icon "spa.png">> <</switch>> <</widget>> <<widget "stripclubicon">> <<icon "stripclub.gif">> <</widget>> <<widget "stairsicon">> <<set _stairs = `actions/stairs${_args[0] || "downup"}${_args[1] || ""}.png`>> <<icon _stairs>> <</widget>> <<widget "walkicon">> <<set _direction to _args[0] is "west" ? "flip" : "">> <<icon "actions/walk.png" _direction>> <</widget>> <<widget "runicon">> <<set _direction to _args[0] is "west" ? "flip" : "">> <<icon "actions/run.png" _direction>> <</widget>> <<widget "glideicon">> <<set _direction to _args[0] is "west" ? "flip" : "">> <<icon "actions/wing.png" _direction>> <</widget>> <<widget "swimicon">> <<switch _args[0]>> <<case "back">><<icon "actions/swim.png" "flip">> <<case "break">><<icon "actions/breakice.png">> <<case "dive">><<icon "actions/dive.png">> <<case "down">><<icon "actions/swimdown.png">> <<case "leave">><<icon "actions/leavewater.png">> <<case "up">><<icon "actions/swimup.png">> <<default>><<icon "actions/swim.png">> <</switch>> <</widget>> <<widget "sneakicon">> <<icon "actions/sneak.png">> <</widget>> <<widget "caveicon">> <<switch _args[0]>> <<case "left">><<icon "actions/caveleft.png">> <<case "right">><<icon "actions/caveright.png">> <<case "north">><<icon "actions/cavenorth.png">> <<case "south">><<icon "actions/cavesouth.png">> <<case "west">><<icon "actions/cavedeeper.png">> <<case "east">><<icon "actions/cavedeeper.png" "flip">> <<case "sea">><<icon "actions/cavesea.png">> <<case "torch">><<icon "torch.gif">> <<case "treasure">><<icon "treasure_chest.png">> <<default>><<icon "actions/cavedeeper.png">> <</switch>> <</widget>> <<widget "tentacleicon">> <<switch _args[0]>> <<case "north">><<icon "actions/tentanorth.png">> <<case "south">><<icon "actions/tentasouth.png">> <<case "west">><<icon "actions/tentadeeper.png">> <<case "east">><<icon "actions/tentadeeper.png" "flip">> <<default>><<icon "actions/tentadeeper.png">> <</switch>> <</widget>> <<widget "entranceicon">> <<icon "actions/entrance.png">> <</widget>> <<widget "exiticon">> <<icon "actions/exit.png">> <</widget>> <<widget "lakeicon">> <<switch _args[0]>> <<case "campfire">><<icon "birdTower/firepit_robust_3.gif">> <<case "dock">><<icon "lake_dock.png">> <<case "field office">><<icon "field_office.png">> <<case "firepit">> <<set $_firePitImg to "birdTower/firepit_bonfire_">> <<set _edenHeaterBurnTime to Cooker.getBurnTime($edenHeater)>> <<set _burnTimeRatio to _edenHeaterBurnTime / $edenHeater.maxBurnTime>> <<set _startingBurnTimeRatio = Math.max(($edenHeaterStartingLastsUntil ?? $edenHeater.lastsUntil) - $timeStamp, 0) / $edenHeater.maxBurnTime>> <<if _edenHeaterBurnTime is 0>> <<set $_firePitImg += "0.gif">> <<elseif _burnTimeRatio lte 0.05 or _startingBurnTimeRatio gte 0.95>> <<set $_firePitImg += "1.gif">> <<elseif _burnTimeRatio lte 0.1 or _startingBurnTimeRatio gte 0.9>> <<set $_firePitImg += "2.gif">> <<elseif _burnTimeRatio lte 0.2 or _startingBurnTimeRatio gte 0.8>> <<set $_firePitImg += "3.gif">> <<else>> <<set $_firePitImg += "4.gif">> <</if>> <<icon $_firePitImg>> <<case "fishing">><<icon "fishing.png">> <<case "key">><<icon "bronze_key.png">> <<case "meditate">><<icon "actions/meditate.png">> <<case "plinth">><<icon "plinth.png">> <<case "pond">> <<if Weather.waterTemperature gte 36>> <<icon "pond_steam.gif">> <<else>> <<icon "pond.png">> <</if>> <<case "pond twigs">> <span class="icon-container"> <<icon "pond.png">> <<icon "pond_twig.png">> </span> <<case "pots">><<icon "pots.png">> <<case "skate">><span class="clothes-tan"><<icon "clothes/ice_skates.png">></span> <<case "waterfall">><<icon "waterfall_lake.png">> <<default>><<icon "lake.png">> <</switch>> <</widget>> <<widget "bedicon">> <<switch _args[0]>> <<case "zzz">><<icon "zzz.png">> <<case "single">><<furnitureicon "bed">> <<case "double">><<furnitureicon "doublebed">> <<case "deluxe">><<furnitureicon "doublebeddeluxe">> <<case "eden">><<icon "bededen.png">> <<case "farm">><<icon "farm_pcbed.png">> <<case "alex">><<icon "farm_alexli.png">> <<case "exotic">><<furnitureicon "doublebedexotic">> <<case "hospital">><<icon "hospital_bed.png">> <<case "kylar">><<icon "kylars_bed.png">> <<case "parents">><<icon "kylars_parents.gif">> <<case "wicker">><<furnitureicon "doublebedwicker">> <<case "yellow">><<furnitureicon "doublebedyellow">> <<case "gwylanpet">><<icon "bedgwylanpet.png">> <<default>><<icon "bed.png">> <</switch>> <</widget>> <<widget "furnitureicon">> <<set _path to _args[0].replace(/ /g, '_')>> <<icon `"furniture/" + _args[0] + ".png"`>> <</widget>> <<widget "deskchairicon">> <<if $options.images is 1>> <<set $_desk to Furniture.get('desk').iconFile>> <<set $_chair to Furniture.get('chair').iconFile2>> <span> <<if $_chair>><<icon `"furniture/" + $_chair + ".png"` "infront">><</if>> <<if $_desk>><<icon `"furniture/" + $_desk + ".png"`>><</if>> </span> <</if>> <</widget>> <<widget "bedroomtablechairicon">> <<if $options.images is 1>> <<set $_table to Furniture.get('table')>> <<set $_chair to Furniture.get('chair')>> <span> <<if $_table>><img class="icon infront" @src="'img/misc/icon/furniture/' + $_table.iconFile + '.png'"><</if>> <<if $_chair>><img class="icon" @src="'img/misc/icon/furniture/' + $_chair.iconFile + '.png'"><</if>> </span> <</if>> <</widget>> <<widget "wardrobeicon">> <<icon "wardrobe.png">> <</widget>> <<widget "gardenicon">> <<switch _args[0]>> <<case "fertiliser">><<icon "fertiliser.png">> <<case "flower">><<icon "flower.png">> <<case "kylar">><<icon "kylars_garden.png">> <<case "overgrown">><<icon "kylars_garden_overgrown.png">> <<case "plot">><<icon "gardenplot.png">> <<case "strangled">><<icon "gardenstrangled.png">> <<case "tangled">><<icon "gardentangled.png">> <<case "till">><<icon "till.png">> <<case "water">><<icon "watering_can.gif">> <<case "weeds">><<icon "gardenweeds.png">> <<default>><<icon "garden.png">> <</switch>> <</widget>> <<widget "laddericon">> <<icon "ladder.png">> <</widget>> <<widget "lofticon">> <<icon "loft.png">> <</widget>> <<widget "fenceicon">> <<icon "fence.gif">> <</widget>> <<widget "undobindingsicon">> <<icon "bindings.png">> <</widget>> <<widget "bathroomicon">> <<switch _args[0]>> <<case "shower">><<icon "shower.gif">> <<case "sink">><<icon "sink.png">> <<case "bath">><<icon "bath.png">> <<case "robe">><<icon "clothes/bathrobe.png">> <<case "shave">><<icon "shave.png">> <<case "toothbrush">><<icon "toothbrush.png">> <<case "toilet">><<icon "toilet.png">> <<default>><<icon "bathroom.png">> <</switch>> <</widget>> <<widget "shavestyleicon">> <<if $options.images is 1>> <<set _shaveIconFilter = "filter: " + setup.colours.getSkinCSSFilter(Skin.color.natural, Skin.color.tan)>> <<set $_fileName = 'shave_' + _args[0] + '_' + ($player.penisExist ? 'm' : 'f') + '.png'>> <span @style="_shaveIconFilter"> <<icon $_fileName>> </span> <</if>> <</widget>> <<widget "skinicon">> <<if $options.images is 1>> <<set _iconFilter = "filter: " + setup.colours.getSkinCSSFilter(Skin.color.natural, Skin.color.tan)>> <<switch _args[0]>> <<case "chef">> <<set $_skinIcon = 'chef_hands.png'>> <<set $_frontIcon = 'chef_bowl.png'>> <<case "give">> <<set $_skinIcon = 'give_hand.png'>> <<set $_frontIcon = 'give_tray.png'>> <<case "wade">> <<set $_skinIcon = 'wade_body.png'>> <<set $_frontIcon = 'wade.png'>> <<case "waiter">> <<set $_skinIcon = 'waiter_arm.png'>> <<set $_frontIcon = 'waiter_platter.png'>> <<case "hitchhike">> <<set $_skinIcon = 'hitchhike_thumb.png'>> <<set $_frontIcon = 'hitchhike_car.png'>> <<case "masturbate">> <<set $_skinIcon = `masturbation_${$player.penisExist ? 'penis' : 'vagina'}.gif`>> <<set $_noFront to 1>> <<case "strip">> <<set $_skinIcon = 'strip_skin.png'>> <<set $_frontIcon = 'strip_undies.png'>> <<case "pray">> <<set $_skinIcon = 'pray_hands.png'>> <<set $_frontIcon = 'pray.png'>> <<case "breastEnlarge">> <<set $_skinIcon = 'breast_enlarge_skin.png'>> <<set $_frontIcon = 'breast_enlarge_arrows.png'>> <<case "breastReduce">> <<set $_skinIcon = 'breast_reduce_skin.png'>> <<set $_frontIcon = 'breast_reduce_arrows.png'>> <<case "penisEnlarge">> <<set $_skinIcon = 'penis_enlarge_skin.png'>> <<set $_frontIcon = 'penis_enlarge_arrows.png'>> <<case "penisReduce">> <<set $_skinIcon = 'penis_reduce_skin.png'>> <<set $_frontIcon = 'penis_reduce_arrows.png'>> <<case "wash">> <<set $_skinIcon = 'wash_skin.png'>> <<set $_frontIcon = 'wash_bubbles.png'>> <<case "manacles">> <<set $_skinIcon = 'manacles_skin.png'>> <<set $_frontIcon = 'manacles.gif'>> <<case "banish">> <<set $_skinIcon = 'banish_skin.png'>> <<set $_frontIcon = 'banish_front.png'>> <<case "wraith">> <<set $_skinIcon = 'wraith_skin.png'>> <<set $_frontIcon = 'wraith_front.png'>> <</switch>> <span class="icon-container"> <span @style="_iconFilter"> <<icon $_skinIcon>> </span> <<if !$_noFront>><<icon $_frontIcon>><</if>> </span> <</if>> <</widget>> <<widget "pregnancyicon">> <<if $options.images is 1>> <<if _args[0] is "player">> <<set _pregnancyIconFilter = "filter: " + setup.colours.getSkinCSSFilter(Skin.color.natural, Skin.color.tan)>> <<set $_skinIcon to "belly_human_breasts">> <<switch $player.breastsize>> <<case 0>><<set $_skinIcon += "0.png">> <<case 1 2>><<set $_skinIcon += "1.png">> <<case 3 4>><<set $_skinIcon += "2.png">> <<case 5 6>><<set $_skinIcon += "3.png">> <<case 7 8>><<set $_skinIcon += "4.png">> <<case 9 10>><<set $_skinIcon += "5.png">> <<case 11 12>><<set $_skinIcon += "6.png">> <</switch>> <span @style="_pregnancyIconFilter"> <<icon $_skinIcon>> </span> <<elseif C.npc[_args[0]]>> <<if _args[0] is "Great Hawk">> <<if $monster is 1 or ($settings.monsterChance gte $rng and $hallucinations gte 1) or ($settings.monsterChance gte $rng and !$settings.monsterHallucinationsOnly) or ($greathawkmonster is 2) or (!$settings.bestialityEnabled)>> <<set _skin to C.npc["Great Hawk"].skincolour is "black" ? "dark" : "light">> <<set _pregnancyIconFilter = "filter: " + setup.colours.getSkinCSSFilter(_skin)>> <<set $_frontIcon to "birdTower/belly_harpy.png">> <<set $_skinIcon to "birdTower/belly_harpy_breasts">> <<switch C.npc["Great Hawk"].breastsize>> <<case 0>><<set $_skinIcon += "0.png">> <<case 1 2>><<set $_skinIcon += "1.png">> <<case 3 4>><<set $_skinIcon += "2.png">> <<case 5 6>><<set $_skinIcon += "3.png">> <<case 7 8>><<set $_skinIcon += "4.png">> <<case 9 10>><<set $_skinIcon += "5.png">> <<case 11 12>><<set $_skinIcon += "6.png">> <</switch>> <span class="icon-container"> <span @style="_pregnancyIconFilter"> <<icon $_skinIcon>> </span> <<icon $_frontIcon>> </span> <<else>> <<icon "birdTower/belly_hawk.png">> <</if>> <<else>> <<set _skin to C.npc[_args[0]].skincolour is "black" ? "dark" : "light">> <<set _pregnancyIconFilter = "filter: " + setup.colours.getSkinCSSFilter(_skin)>> <<set $_skinIcon to "belly_human_breasts">> <<switch C.npc[_args[0]].breastsize>> <<case 0>><<set $_skinIcon += "0.png">> <<case 1 2>><<set $_skinIcon += "1.png">> <<case 3 4>><<set $_skinIcon += "2.png">> <<case 5 6>><<set $_skinIcon += "3.png">> <<case 7 8>><<set $_skinIcon += "4.png">> <<case 9 10>><<set $_skinIcon += "5.png">> <<case 11 12>><<set $_skinIcon += "6.png">> <</switch>> <span @style="_pregnancyIconFilter"> <<icon $_skinIcon>> </span> <</if>> <</if>> <</if>> <</widget>> <<widget "dressasyouwereicon">> <<set _slot to setup.clothingLayer.all.find(c => V.carried[c].name !== "naked")>> <<if _temp_clothes_present and _temp_strip>> <<set _slot to setup.clothingLayer.all.find(c => V.store[c].find(item => item.location is T.temp_strip))>> <<set _item to V.store[_slot].find(item => item.location is T.temp_strip)>> <<clothingicon _item _slot>> <<elseif _slot>> <<clothingicon $carried[_slot] _slot>> <<else>> <span class="clothes-light-blue"><<icon "clothes/serafuku.png">></span> <</if>> <</widget>> <<widget "towelicon">> <span class="clothes-off-white"><<icon "clothes/towel.png">></span> <</widget>> <<widget "bedroomicon">> <<icon "bedroom.png">> <</widget>> <<widget "mirroricon">> <<switch _args[0]>> <<case "blood">><<icon "mirrorblood.gif">> <<case "home">><<icon "mirrorhome.png">> <<case "temple">><<icon "mirrortemple.png">> <<case "school">><<icon "mirrorschool.png">> <<default>> <<switch $location>> <<case "home">><<icon "mirrorhome.png">> <<case "prison">><<prisonicon "mirror">> <<case "temple">> <<set _mirror to $passage is "Temple Mirror" ? "mirror.png" : "mirrortemple.png">> <<icon _mirror>> <<case "school">><<icon "mirrorschool.png">> <<default>><<icon "mirror.png">> <</switch>> <</switch>> <</widget>> <<widget "animalicon">> <<icon `_args[0] + ".png"`>> <</widget>> <<widget "investigateicon">> <<icon "investigate.png">> <</widget>> <<widget "robinicon">> <<icon `"robin_" + _args[0] + ".png"`>> <</widget>> <<widget "shopicon">> <<switch _args[0]>> <<case "adult">><<icon "adultshop.gif">> <<case "closed">><<icon "closedstore.png">> <<case "clothing">><<icon "clothingshop.png">> <<case "dilapidated">><<icon "dilapidatedshop.png">> <<case "forest">><<icon "forestshop.png">> <<case "tailor">><<icon "tailorThread.png">> <<case "tattoo">><<icon "tattoo.png">> <<case "toy">><<icon "toyshop.png">> <<case "register">><<icon "cash_register.png">> <<default>><<icon "shopping_centre.png">> <</switch>> <</widget>> <<widget "petshopicon">> <<switch _args[0]>> <<case "brush">><<icon "kennel_brush.png">> <<case "cage">><<icon "cage.png">> <<case "chew">><<icon "childToys/rope.png">> <<case "decor">><<icon "tank_decor.png">> <<case "decor exotic">><<icon "tank_decor_exotic.png">> <<case "dog bowl">><<icon "dog_bowl.png">> <<case "dog food">><<icon "dog_bowl_food.png">> <<case "dog leash">><<icon "dog_leash_acc.png" "infront">><<icon "dog_leash.png">> <<case "feeder">><<icon "automatic_feeder.gif">> <<case "tanks">><<icon "tanks.png">> <<case "tank small">><<icon "tank_small.gif">> <<case "tank medium">><<icon "tank_medium.gif">> <<case "tank large">><<icon "tank_large.gif">> <<case "tank huge">><<icon "tank_huge.gif">> <<case "treat">><<icon "dogtreat.png">> <<default>><<icon "petshop.png">> <</switch>> <</widget>> <<widget "hairdressericon">> <<switch _args[0]>> <<case "chair">><<icon "hairdresser_chair.png">> <<case "gel">><<icon "hairgel.png">> <<case "hairspray">><<icon "hairspray.png">> <<default>><<icon "hairdresser.gif">> <</switch>> <</widget>> <<widget "cosmeticsicon">> <<switch _args[0]>> <<case "blusher">><<icon "blusher.png">> <<case "contacts">><<icon "contacts.png">> <<case "dyes">><<icon "dye.png">> <<case "mascara">><<icon "mascara.png">> <<case "eyeshadow">><<icon "eyeshadow.png">> <<case "sunscreen">><<icon "sunscreen.png">> <<default>><<icon "cosmetics.gif">> <</switch>> <</widget>> <<widget "rebuyicon">> <<switch _args[0]>> <<case "disable">><<icon "rebuy_disabled.png">> <<default>><<icon "rebuy.png">> <</switch>> <</widget>> <<widget "pregnancytesticon">> <<icon "pregnancy_test.gif">> <</widget>> <<widget "beachicon">> <<switch _args[0]>> <<case "seaweed">><<icon "seaweed.png">> <<case "rocks">><<icon "sea_rocks.png">> <<default>><<icon "beach.gif">> <</switch>> <</widget>> <<widget "chaleticon">> <<icon "chalet.png">> <</widget>> <<widget "prisonicon">> <<icon `"prison_" + _args[0] + ".png"`>> <</widget>> <<widget "hospitalicon">> <<icon "hospital.png">> <</widget>> <<widget "procedureicon">> <<switch _args[0]>> <<case "breast enlarge">><<skinicon "breastEnlarge">> <<case "breast reduce">><<skinicon "breastReduce">> <<case "penis enlarge">><<skinicon "penisEnlarge">> <<case "penis reduce">><<skinicon "penisReduce">> <<case "parasite">><<icon "antiParasiteCream.png">> <<case "paternity">><<icon "paternityTest.png">> <</switch>> <</widget>> <<widget "condomicon">> <<switch _args[0]>> <<case "machine">><<icon "condom_machine.png">> <<default>><<icon "condom.png">> <</switch>> <</widget>> <<widget "pillicon">> <<switch _args[0]>> <<case "breastEnlarge">><<icon "smalluparrow.png" "infront">><<icon "pillbreast.png">> <<case "breastReduce">><<icon "smalldownarrow.png" "infront">><<icon "pillbreast.png">> <<case "breastBlock">><<icon "smallcross.png" "infront">><<icon "pillbreast.png">> <<case "penisEnlarge">><<icon "smalluparrow.png" "infront">><<icon "pillpenis.png">> <<case "penisReduce">><<icon "smalldownarrow.png" "infront">><<icon "pillpenis.png">> <<case "penisBlock">><<icon "smallcross.png" "infront">><<icon "pillpenis.png">> <<case "bottomEnlarge">><<icon "smalluparrow.png" "infront">><<icon "pillbottom.png">> <<case "bottomReduce">><<icon "smalldownarrow.png" "infront">><<icon "pillbottom.png">> <<case "bottomBlock">><<icon "smallcross.png" "infront">><<icon "pillbottom.png">> <<case "fertility">><<icon "fertility_booster.png">> <<case "contraceptive">><<icon "contraceptive_pills.png">> <<case "morningAfter">><<icon "morningAfter.png">> <<case "blue">><<icon "pillblue.png">> /*unused*/ <<case "stimulant">><<icon "stimulant.png">> <<default>><<icon "pill_collection.png">> <</switch>> <</widget>> <<widget "asylumicon">> <<switch _args[0]>> <<case "door">><<icon "asylum_door.png">> <<case "wardrobe">><<icon "asylum_wardrobe.png">> <<case "cell">><<icon "asylum_cell.png">> <<case "bed">><<icon "hospital_bed.png">> <<default>><<icon "hospital_bed.png">> <</switch>> <</widget>> <<widget "socialiseicon">> <<switch _args[0]>> <<case "angry">><<icon "socialise_angry.png">> <<case "breakdown">><<icon "socialise_breakdown.png">> <<case "party">><<icon "solocup.png">> <<case "volleyball">><<icon "volleyball.png">> <<case "cinema">><<icon "ticket.png">> <<case "ask">><<icon "socialise_question.png">> <<case "dance">><<icon "dance.gif">> <<default>><<icon "socialise.png">> <</switch>> <</widget>> <<widget "smokeicon">> <<icon "cig.png">> <</widget>> <<widget "daydreamicon">> <<icon "daydream.png">> <</widget>> <<widget "photographystudioicon">> <<icon "camera.png">> <</widget>> <<widget "officeicon">> <<switch _args[0]>> <<case "files">><<icon "filing_cabinet.png">> <<default>><<icon "office.png">> <</switch>> <</widget>> <<widget "pilloryicon">> <<icon "watch_pillory.png">> <</widget>> <<widget "cafeicon">> <<icon "cafe.png">> <</widget>> <<widget "docksicon">> <<icon "docks.png">> <</widget>> <<widget "landfillicon">> <<icon "rubbish.png">> <</widget>> <<widget "coastalpathicon">> <<switch Weather.dayState>> <<case "day">> <<icon "coastalpath_day.png">> <<case "night">> <<icon "coastalpath_night.png">> <<case "dawn">> <<icon "coastalpath_dawn.png">> <<case "dusk">> <<icon "coastalpath_dusk.png">> <<default>> <<icon "coastalpath_day.png">> <</switch>> <</widget>> <<widget "baskicon">> <<icon "bask.png">> <</widget>> <<widget "changingroomicon">> <<icon "changingroom.png">> <</widget>> <<widget "scarleticon">> <<icon "scarlet.png">> <</widget>> <<widget "oliveicon">> <<icon "olive.png">> <</widget>> <<widget "sextoysicon">> <<switch _args[0]>> <<case "anal beads">><span class="clothes-silver"><<icon "sexToys/analbeads.png">></span> <<case "dildo">><span class="clothes-fleshy"><<icon "sexToys/dildo.png">></span> <<case "horse strap-on">><<icon "sexToys/strap-on_horse_cock_front.png" infront>><<icon "sexToys/strap-on_horse_cock.png">> <<case "knotted strap-on">><<icon "sexToys/strap-on_knotted_cock_front.png" infront>><<icon "sexToys/strap-on_knotted_cock.png">> <<case "lube">><<icon "sexToys/lube_front.png" infront>><span class="clothes-light-blue"><<icon "sexToys/lube.png">></span> <<case "pump">><span class="clothes-pink"><<icon "sexToys/handheld_pump.png">></span> <<case "smalldildo">><span class="clothes-fleshy"><<icon "sexToys/dildo_small.png">></span> <<case "strap-on">><<icon "sexToys/strap-on_front.png" infront>><<icon "sexToys/strap-on.png">> <<case "stroker">><<icon "sexToys/onahole.png">> <<case "tickler">><<icon "sexToys/tickler.png">> <<case "candle">><<icon "sexToys/candle.png">> <<case "paddle">><<icon "sexToys/paddle.png">> <<case "flogger">><<icon "sexToys/flogger.png">> <<default>><<icon "sexToys/bulletvibe.png">> <</switch>> <</widget>> <<widget "busstationicon">> <<icon "busstation.png">> <</widget>> <<widget "factoryicon">> <<icon "factory.gif">> <</widget>> <<widget "foodicon">> <<icon `"food/" + _args[0] + ".png"`>> <</widget>> <<widget "hypnosisicon">> <<set $_inline to _args.includes("inline") ? "with-text" : null>> <<set $_size to _args.includes("inline") ? "_small" : "">> <<set $_type to _args.includes("static") ? ".png" : ".gif">> <<set $_icon to "hypnosis" + $_size + $_type>> <<iconUi $_icon $_inline>> <</widget>> <<widget "dooricon">> <<switch _args[0]>> <<case "basement">><<icon "basement_door.png">> <<case "domus">><<icon "domus_house.png">> <<case "danube">><<icon "danube_house.png">> <<case "doren">><<icon "doren_flat.png">> <<case "locked">><<icon "padlocked_door.png">> <<case "open">><<icon "flat_door_open.png">> <<case "orphanage">><<icon "orphanage_doors.png">> <<case "trapdoor">><<icon "trapdoor.png">> <<default>><<icon "flat_door.png">> <</switch>> <</widget>> <<widget "childicon">> <<set _toy to _args[0].replace(/ /g, "_");>> <<icon `"childToys/" + _toy + ".png"`>> <</widget>> <<widget "childrenicon">> <<set $_child to $children[_args[0]]>> <<set _monster to $_child.features.monster is "monster">> <<switch $_child.type>> <<case "hawk">> <<if _monster>> <<set _childIconFilter = "filter: " + setup.colours.getSkinCSSFilter($_child.features.skinColour)>> <<set $_baseIcon to "birdTower/child_harpy.png">> <<set $_skinIcon to "birdTower/child_harpy_skin.png">> <span class="icon-container"> <<icon $_baseIcon>> <span @style="_childIconFilter"> <<icon $_skinIcon>> </span> </span> <<else>> <<icon "birdTower/child_hawk.png">> <</if>> <<case "wolf">> <<set $_wolfHair to _monster ? "children/pups/monster_fur.png" : "children/pups/beast_fur.png">> <<set $_wolfSkin to _monster ? "children/pups/monster_body.png" : null>> <<set $_wolfEyes to _monster ? "children/pups/monster_eyes.png" : "children/pups/beast_eyes.png">> <<set _wolfEyeClass = $_child.features.eyeColour?.replace("pc",V.eyeselect)?.replace(/ /g, '-')>> <span class="icon-container"> <<if $_wolfSkin>> <<set _wolfkidSkinFilter = "filter: " + setup.colours.getSkinCSSFilter($_child.features.skinColour)>> <span @style="_wolfkidSkinFilter"> <<icon $_wolfSkin>> </span> <</if>> <span @class="'hair-'+$_child.features.hairColour"> <span class="colour-hair"><<icon $_wolfHair>></span> </span> <span @class="'eye-'+_wolfEyeClass"> <<icon $_wolfEyes>> </span> <<if $_wolfSkin>> <<icon "children/pups/monster_paws.png">> <</if>> <<if $_child.localVariables.activity is "crying" and _monster>> <<icon "children/pups/monster_tears.png">> <</if>> </span> <<default>> <<set $_hair to "children/humans/hair.png">> <<set $_skin to "children/humans/body.png">> <<set $_eyes to "children/humans/eyes.png">> <<if $_child.features.eyeColour>> <<set _eyeClass = $_child.features.eyeColour?.replace("pc",V.eyeselect)?.replace(/ /g, '-')>> <<else>> <<set _eyeClass = "hazel">> <</if>> <<set _skinFilter = "filter: " + setup.colours.getSkinCSSFilter($_child.features.skinColour)>> <span class="icon-container"> <span @style="_skinFilter"> <<icon $_skin>> </span> <<if $_child.features.divineTransform>> <<set $_divine to `children/humans/transformations_${$_child.features?.divineTransform}.png`>> <<icon $_divine>> <</if>> <<if $_child.features.beastTransform>> <<set $_beast to `children/humans/transformations_${$_child.features?.beastTransform}.png`>> <span @class="'hair-'+$_child.features.hairColour"> <span class="colour-hair"><<icon $_beast>></span> </span> <</if>> <<icon "children/humans/diaper.png">> <span @class="'hair-'+$_child.features.hairColour"> <span class="colour-hair"><<icon $_hair>></span> </span> <span @class="'eye-'+_eyeClass"> <<icon $_eyes>> </span> </span> <</switch>> <</widget>> <<widget "officebuildingicon">> <<icon "office_building.png">> <</widget>> <<widget "kitchenicon">> <<icon `"kitchen_" + (_args[0] || "pot") + ".png"`>> <</widget>> <<widget "supermarketicon">> <<icon `"supermarket_" + (_args[0] || "basket") + ".png"`>> <</widget>> <<widget "kylarmanoricon">> <<switch _args[0]>> <<case "pipe">><<icon `"kylars_" + _args[0] + ".gif"`>> <<default>><<icon `"kylars_" + (_args[0] || "manor") + ".png"`>> <</switch>> <</widget>> <<widget "main_hall_icon">> <<if $christmas is 1>> <<icon "mainhall_christmas.png">> <<elseif $halloween is 1>> <<icon "mainhall_halloween.png">> <<else>> <<icon "mainhall.png">> <</if>> <</widget>> <<widget "townhallicon">> <<icon "town_hall.png">> <</widget>> <<widget "venticon">> <<switch _args[0]>> <<case "eyes">><<icon "vent_eyes.png">> <<default>><<icon "vent.png">> <</switch>> <</widget>> <<widget "ind">> <<icon "indent.png">> <</widget>> <<widget "clothingicon">> <<if $options.images is 1>> <<set $_item to setup.clothes[_args[1]][clothesIndex(_args[1],_args[0])]>> <<if $_item.iconFile>> <<if typeof($_item.iconFile) === 'string'>> <<if $_item.iconFile is "pattern" and !["secondary", "tertiary"].includes($_item.pattern_layer)>> <<set $clothesiconFile = "img/misc/icon/clothes/" + $_item.name.replace(/ /g, '_') + "_" + (_args[0].pattern || $_item.pattern_options[0]).replace(/ /g, '_') + ".png" >> <<else>> <<set $clothesiconFile = "img/misc/icon/clothes/" + $_item.iconFile>> <</if>> <<else>> <<set $clothesiconFile = "img/misc/icon/clothes/" + $_item.name_cap + ".png">> <</if>> <<if _args[0].colour is 0 or $_item.colour_options.length lt 2>> <img class="icon" alt="" @src="$clothesiconFile"> <<else>> <img alt="" @class="'icon-'+ _args[0].colour.replace(/ /g, '-') + ' icon'" @src="$clothesiconFile" @style="(_args[0].colour is 'custom'? _args[0].colourCustom : '')"> <</if>> <</if>> <<if $_item.accIcon isnot 0 and ($_item.accessory isnot 0 || $_item.breast_acc_img)>> <<if typeof($_item.accIcon) === 'string'>> <<if $_item.accIcon is "pattern" and $_item.pattern_layer === "secondary">> <<set $_patternName to $_item.outfitSecondary ? $_item.outfitSecondary[1] : $_item.name>> <<set $clothesiconFile = "img/misc/icon/clothes/" + $_patternName.replace(/ /g, '_') + "_" + (_args[0].pattern || $_item.pattern_options[0]).replace(/ /g, '_') + ".png" >> <<else>> <<set $clothesiconFile = "img/misc/icon/clothes/" + $_item.accIcon>> <</if>> <<else>> <<set $clothesiconFile = "img/misc/icon/clothes/" + $_item.name_cap + "_acc.png">> <</if>> <span class="spanIcon"> <<if !_args[0].accessory_colour or $_item.accessory_colour_options.length lt 2>> <img class="accIcon" alt="" @src="$clothesiconFile"> <<else>> <img @class="'icon-'+ _args[0].accessory_colour.replace(/ /g, '-') + ' accIcon'" alt="" @src="$clothesiconFile" @style="(_args[0].accessory_colour is 'custom'? _args[0].accessory_colourCustom : '')"> <</if>> </span> <</if>> <<if $_item.detailIcon>> <<if typeof($_item.detailIcon) === 'string'>> <<if $_item.detailIcon is "pattern" and $_item.pattern_layer === "tertiary">> <<set $clothesiconFile = "img/misc/icon/clothes/" + $_item.name.replace(/ /g, '_') + "_" + (_args[0].pattern || $_item.pattern_options[0]).replace(/ /g, '_') + ".png" >> <<else>> <<set $clothesiconFile = "img/misc/icon/clothes/" + $_item.detailIcon>> <</if>> <<else>> <<set $clothesiconFile = "img/misc/icon/clothes/" + $_item.name.replace(/ /g, '_') + "_detail.png">> <</if>> <span class="spanIcon"> <img class="accIcon" alt="" @src="$clothesiconFile"> </span> <</if>> <</if>> <</widget>> <<widget "skyscrapericon">> <<switch _args[0]>> <<case "bloodmoon">> <<icon "skyscraper_bloodmoon.gif">> <<case "fire">> <<icon "skyscraper_fire.gif">> <<case "ruined">> <<icon "skyscraper_ruins.gif">> <<case "construction">> <<icon "skyscraper_construction.gif">> <<default>> <<if $avery_tower?.progress is 100>> <<switch Weather.dayState>> <<case "night">><<icon "skyscraper_night.gif">> <<default>><<icon "skyscraper_day.gif">> <</switch>> <<else>> <<icon "skyscraper_construction.gif">> <</if>> <</switch>> <</widget>> <<widget "steedicon">> <<set _icons to { "appaloosa": { class: "clothes-off-white", spots: "clothes-black" }, "bay": { class: "icon-bronze" }, "black": { class: "clothes-blue-steel" }, "brown": { class: "clothes-brown" }, "buckskin": { class: "clothes-pale-yellow" }, "chestnut": { class: "clothes-tangerine" }, "cremello": { class: "clothes-off-white" }, "dun": { class: "clothes-sand" }, "grey": { class: "clothes-grey" }, "overo": { class: "clothes-sand",spots: "icon-bronze" }, "palomino": { class: "clothes-pale-yellow" }, "piebald": { class: "clothes-blue-steel", spots: "clothes-off-white" }, "roan": { class: "clothes-tan" }, "skewbald": { class: "icon-bronze", spots: "clothes-off-white" }, "spotted": { class: "clothes-sand", spots: "clothes-tan" }, "tobiano": { class: "clothes-off-white", spots: "clothes-wine" }, }>> <<set _direction to $location is "town" ? "flip" : "">> <<if _icons.hasOwnProperty($farm?.steed) || _icons.hasOwnProperty($NPCList[0].hair)>> <<set _horse to $NPCList[0].hair || $farm.steed>> <<if _icons[_horse].spots>> <span @class="'icon-container icon infront'"> <span @class="_icons[_horse].spots"> <<icon "horsespottedicon.png" _direction>> </span> </span> <</if>> <span @class="_icons[_horse].class"> <<icon "horsebodyicon.png" _direction>> </span> <<else>> <span class="icon-bronze"> <<icon "horsebodyicon.png" _direction>> </span> <</if>> <</widget>> <<widget "techicon">> <<switch _args[0]>> <<case "lightbulb">><<icon "lightbulb.gif">> <<default>><<icon `_args[0] + ".png"`>> <</switch>> <</widget>> <<widget "watericon">> <<set _daytime to Weather.bloodMoon ? "-bloodmoon" : Time.dayState is "dawn" or Time.dayState is "dusk" ? "-dawn" : Time.dayState is "day" ? "-day" : "-night">> <<set _water to { "waterfall": { decoclass: "", decotype: "waterfall_rockgreen.png", waterclass: "water-outdoor", watertype: "waterfall_base.gif" }, "stream": { decoclass: "", decotype: "stream_grass.png", waterclass: "water-outdoor", watertype: "stream_base.gif" }, "pond": { decoclass: "", decotype: "pond_grass.png", waterclass: "water-outdoor", watertype: "pond_base.gif" }, "pond_frozen": { decoclass: "", decotype: "pond_grass.png", waterclass: "water-outdoor", watertype: "pond_frozen.png" }, "waterfall_wolfcave": { decoclass: "static-rock", decotype: "waterfall_rock.png", waterclass: "water-wolfcave", watertype: "waterfall_base.gif" }, "stream_wolfcave": { decoclass: "static-rock", decotype: "stream_rock.png", waterclass: "water-wolfcave", watertype: "stream_base.gif" }, "waterside_wolfcave": { decoclass: "", decotype: "waterside_soil.png", waterclass: "water-wolfcave", watertype: "waterside_base.gif" }, "waterfall_sewer": { decoclass: "", decotype: "waterfall_sewer.png", waterclass: "static-sewer", watertype: "waterfall_base.gif" }, }>> <<set _key to _args[0]>> <<set _decoclass to _water[_key].decoclass.includes("static") ? _water[_key].decoclass.replace("static-", "water-") : (_water[_key].decoclass ? _water[_key].decoclass + _daytime : "")>> <<set _waterclass to _water[_key].waterclass.includes("static") ? _water[_key].waterclass.replace("static-", "water-") : (_water[_key].waterclass ? _water[_key].waterclass + _daytime : "")>> <span @class="'icon-container icon infront'"><span @class=_decoclass><<icon _water[_key].decotype>></span></span> <span @class=_waterclass><<icon _water[_key].watertype>></span> <</widget>> <<widget "distracticon">> <<switch _args[0]>> <<case "green">><<set _iconFilter to "filter: hue-rotate(85deg) saturate(294%) brightness(180%) contrast(120%)">> <<case "blue">><<set _iconFilter to "filter: hue-rotate(206deg) saturate(229%) brightness(178%) contrast(113%)">> <<default>><<set _iconFilter to _args[0] || "red">> <</switch>> <span class="icon-container"> <span @style="_iconFilter"> <<icon "distract-base.png">> </span> <<icon "distract-front.png">> </span> <</widget>><<widget "kitchenDisplay">> <div id="kitchenDisplay" class="food_ui no-numberify"> <div id="body"> <div id="mainSection"> <div id="search"> Search: <<textbox "_foodSearch" "">> <<run $(() => { var foodTimer = null; $('#textbox--foodsearch').on('input change keypress', e => { _foodSearch = e.target.value; clearTimeout(foodTimer); foodTimer = setTimeout(updateUI, 300); }); var updateUI = () => { Wikifier.wikifyEval('<<if elementExists(\'#itemList\')>><<replace "#itemList">><<kitchenDisplayRecipes>><</replace>><</if>>'); } })>> <<link "Options">> <<replace "#altSection">> <<kitchenDisplayOptions>> <<removeclass "#altSection, #mobileCloser" "mobileHidden">> <</replace>> <</link>> </div> <div id="itemList"> <<kitchenDisplayRecipes>> </div> </div> <div id="altSection" class="mobileHidden"> <<if $lastRecipeViewed and setup.plants[$lastRecipeViewed] and _recipeKeys.some((x) => x)>> <<kitchenDisplayRecipeDetail $lastRecipeViewed>> <<else>> <<kitchenDisplayOptions>> <</if>> </div> <div id="mobileCloser" class="mobileOnly mobileHidden" onclick="wikifier('addclass', '#altSection', 'mobileHidden'); wikifier('addclass', '#mobileCloser', 'mobileHidden');"></div> </div> </div> <br> <</widget>> <<widget "kitchenDisplayOptions">> <div id="basket"> <span class="gold bold">Options:</span> <div class="mobileOnly"> <<link "Close">> <<addclass "#altSection, #mobileCloser" "mobileHidden">> <</link>> <br><br> </div> </div> <div id="basketItems" class="info"> Search for: <<listbox "$options.ingredientsSearch" autoselect>> <<option "All" "all">> <<option "Recipes" "recipes">> <<option "Ingredients" "ingredients">> <</listbox>> <<run $(() => { $('#listbox-optionsingredientssearch').on('input change', e => { Wikifier.wikifyEval('<<replace "#itemList">><<kitchenDisplayRecipes>><</replace>>'); }); })>> <br><br> <label>Auto-manage ingredients: <<checkbox "$options.ingredientsAutoManage" false true autocheck>></label> <<if $chef_state gte 3>> <br> <label>Allow lewd auto-managed ingredients: <<checkbox "$options.ingredientsAutoManageLewd" false true autocheck>></label> <<run $(() => { $('#checkbox-optionsingredientsautomanage').on('input change', e => { if (!$options.ingredientsAutoManageLewd) Wikifier.wikifyEval('<<replace "#itemList">><<kitchenDisplayRecipes>><</replace>>'); }); $('#checkbox-optionsingredientsautomanagelewd').on('input change', e => { Wikifier.wikifyEval('<<replace "#itemList">><<kitchenDisplayRecipes>><</replace>>'); }); })>> <</if>> </div> <</widget>> <<widget "kitchenDisplayRecipes">> <<kitchenFilter>> <<if _recipeKeys.some(key => key.group isnot "Provided Ingredients")>> <<for _category range _recipesGroups>> <<if !_recipeKeys.find(key => key.group is _category)>><<continue>><</if>> <<set _categoryVar to "_" + _category.replace(" ", "")>> <<foldout false _categoryVar>> <span class="gold"><<print _category.toLocaleUpperFirst()>></span> <<set _filteredRecipes to _recipeKeys.filter(key => key.group is _category)>> <<for $_i, $_keyObject range _filteredRecipes>> <div @id="$_keyObject.key" class="item"><<kitchenDisplayRecipe $_keyObject.key>></div> <<if $_i < _filteredRecipes.length - 1>><hr><</if>> <</for>> <</foldout>> <</for>> <<else>> <<if !Object.values(V.plants).some(item => item.recipe)>> <div class="info">You haven't learned how to cook yet! Attend housekeeping classes to unlock new recipes.</div> <</if>> <<for _category range _recipesGroups>> <<if !_recipeKeys.find(key => key.group is _category)>><<continue>><</if>> <<set _categoryVar to "_" + _category.replace(" ", "")>> <<foldout false _categoryVar>> <span class="gold"><<print _category.toLocaleUpperFirst()>></span> <<set _filteredRecipes to _recipeKeys.filter(key => key.group is _category)>> <<for $_i, $_keyObject range _filteredRecipes>> <div @id="$_keyObject.key" class="item"><<kitchenDisplayRecipe $_keyObject.key>></div> <<if $_i < _filteredRecipes.length - 1>><hr><</if>> <</for>> <</foldout>> <</for>> <</if>> <</widget>> <<widget "kitchenDisplayRecipe">> <<set $_setupItem to setup.plants[_args[0]]>> <div class="details"> <div> <<tendingicon $_setupItem.icon>> <<recipe_name _args[0] "cap">> | Owned: <span class="gold"><<print $plants[_args[0]].amount>></span> </div> <<set $_group to _recipeKeys.find((obj) => obj.key is _args[0]).group>> <<switch $_group>> <<case "Missing Ingredients">> <div> <span class="red">Missing:</span> <<print formatList($_setupItem.ingredients.filter(ingredient => { return ingredientsTotal(ingredient, _args[0], true) lte 0 and !ingredientsProvided(ingredient, _args[0]); }).sort(), "and", true).replace(/_/g, " ")>> </div> <<case "Restricted Ingredients">> <div> <span class="red">Restricted:</span> <<print formatList($_setupItem.ingredients.filter(ingredient => { return !ingredientIsAllowed(ingredient); }).sort(), "and", true).replace(/_/g, " ")>> </div> <</switch>> </div> <div class="recipe"> <<capture _args[0]>> <<if $options.images is 1>> <<set _file to `recipe_${setup.plants[_args[0]].type}.png`>> <<link "<<iconUi _file>>">> <<replace "#altSection">><<kitchenDisplayRecipeDetail _args[0]>><</replace>> <<removeclass "#altSection, #mobileCloser" "mobileHidden">> <</link>> <<else>> <<link "Details">> <<replace "#altSection">><<kitchenDisplayRecipeDetail _args[0]>><</replace>> <<removeclass "#altSection, #mobileCloser" "mobileHidden">> <</link>> <</if>> <</capture>> </div> <</widget>> <<widget "kitchenDisplayRecipeDetail">> <<set $lastRecipeViewed to _recipeKeys.some((obj) => obj.key is _args[0]) ? _args[0] : _recipeKeys[0].key>> <<set $_setupItem to setup.plants[$lastRecipeViewed]>> <div id="basket"> <div> <<tendingicon $_setupItem.icon>> <div class="recipeTitle"><<recipe_name $lastRecipeViewed "cap">>:</div> </div> <div class="mobileOnly"> <<link "Close">> <<addclass "#altSection, #mobileCloser" "mobileHidden">> <</link>> </div> </div> <<set _basketOpen to false>> <div id="basketItems"> Owned: <span class="gold"><<print $plants[$lastRecipeViewed].amount>></span> <<if $_setupItem?.ingredients.length>> <br> Time: <span class="gold"><<print $_setupItem.days>></span> <<pluralise $_setupItem.days "minute">> <br> Result: <span class="gold"><<print $_setupItem.multiplier>></span> <hr> <</if>> <div id="requiredForRecipe"> <<requiredForRecipe $lastRecipeViewed>> <<kitchenDisplayRecipeMake>> </div> <<knownFoodRecipes $lastRecipeViewed>> </div> <</widget>> <<widget "kitchenDisplayRecipeMake">> <<set $_setupItem to setup.plants[$lastRecipeViewed]>> <<set $_group to _recipeKeys.find((obj) => obj.key is $lastRecipeViewed).group>> <div style="margin-top: 16px"> <<if $_setupItem?.ingredients.length>> <<switch $_group>> <<case "Restricted Ingredients">> <span class="purple">Some required ingredients are banned in this kitchen.</span> <<case "Missing Ingredients">> <span class="purple">You do not have all the required ingredients.</span> <<default>> <<if $tiredness gte C.tiredness.max>> <span class="purple">You're too tired to cook!</span> <<elseif $_setupItem.ingredients.every(ingredient => $plants[ingredientUsed(ingredient, $lastRecipeViewed)].amount gte 1 or _ingredientsSupplied?.includes(ingredientUsed(ingredient, $lastRecipeViewed)))>> Make: <<set _hours to Math.floor($_setupItem.days / 60)>> <<set _minutes to $_setupItem.days % 60>> <<set _timeString to " (" + (_hours lt 10 ? "0": "") +_hours+":"+(_minutes lt 10 ? "0": "")+_minutes+")">> <<link [["1" + _timeString|$passage]]>><<make_recipe $lastRecipeViewed 1>><</link>> <<if $_setupItem.ingredients.every(ingredient => $plants[ingredientUsed(ingredient, $lastRecipeViewed)].amount gte 3 or _ingredientsSupplied?.includes(ingredientUsed(ingredient, $lastRecipeViewed)))>> <<set _hours to Math.floor($_setupItem.days * 3 / 60)>> <<set _minutes to ($_setupItem.days * 3) % 60>> <<set _timeString to " (" + (_hours lt 10 ? "0": "") +_hours+":"+(_minutes lt 10 ? "0": "")+_minutes+")">> /* Prevent passing too much time */ <<set _futureTime to new DateTime(Time.date.timeStamp)>> <<set _futureTime to _futureTime.addHours(_hours)>> <<set _futureTime to _futureTime.addMinutes(_minutes)>> <<if !_hourRestriction or _futureTime.hour lt _hourRestriction or _futureTime.minute lte 15>> | <<link [["3" + _timeString|$passage]]>><<make_recipe $lastRecipeViewed 3>><</link>> <</if>> <</if>> <br> <<if $_group is "Provided Ingredients">><span class="purple">This kitchen gives you access to an infinite supply of this item.</span><</if>> <<elseif $_group is "Provided Ingredients">> <span class="purple">You do not have the ingredients to make this item, but you have access to an infinite supply of it in this kitchen.</span> <<else>> <span class="purple">You are missing an ingredient, but may be able to use a substitute.</span> <</if>> <</switch>> <<else>> <<switch $_group>> <<case "Provided">> <span class="purple">This kitchen provides you with an infinite supply of this ingredient.</span> <<case "Restricted Ingredients">> <span class="purple">This ingredient is banned in this kitchen.</span> <<case "Missing Ingredients">> <<if $_setupItem.shop>> <span class="purple">You need to find a means to buy or access these.</span> <<else>> <span class="purple">You need to find a means to access these.</span> <</if>> <</switch>> <</if>> </div> <</widget>> <<widget "requiredForRecipe">> <<if Array.isArray(setup.plants[_args[0]]?.ingredients) and setup.plants[_args[0]]?.ingredients.length gt 0>> Ingredients: <div class="itemSummary"> <<for $_ingredient range clone(setup.plants[_args[0]].ingredients).sort()>> <<set $_usedIngredient to ingredientUsed($_ingredient, _args[0])>> <div class="basketItem"> <<set _icon to setup.plants[$_usedIngredient].ingredientIcon || setup.plants[$_usedIngredient].icon>> <<tendingicon _icon>> <<print $_usedIngredient.replace(/_/g, " ").toLocaleUpperFirst()>> <<if _ingredientsSupplied?.includes($_usedIngredient)>> <span class="gold">(∞)</span> <<else>> <<set _ingredientsUnavailable to $plants[$_usedIngredient].amount gt 0>> <span @class="$plants[$_usedIngredient].amount gt 0 ? 'gold' : 'red'">(<<print $plants[$_usedIngredient].amount>>)</span> <</if>> <<if !$options.ingredientsAutoManage and ingredientsOptions($_ingredient, _args[0]).length gt 1>> <<capture $_ingredient _args[0] _args[1]>> <<link ">>">> <<run ingredientsNextAlternative($_ingredient, _args[0])>> <<replace "#requiredForRecipe">> <<requiredForRecipe _args[0] _args[1]>> <<kitchenDisplayRecipeMake>> <</replace>> <</link>> <</capture>> <</if>> </div> <</for>> </div> <</if>> <</widget>> <<widget "learn_recipe">> <<if $plants[_args[0]].recipe isnot true>> <span class="gold">You have learned how to make <<recipe_name _args[0] "article">>!</span> <<tendingicon setup.plants[_args[0]].icon>> <</if>> <<set $plants[_args[0]].recipe to true>> <<set _recipes_known to 0>> <<set _food_keys_recipes to Object.keys(setup.plants)>> <<for _e to 0; _e lt _food_keys_recipes.length; _e++>> <<set _food_recipes to _food_keys_recipes[_e]>> <<if $plants[_food_recipes].recipe is true>> <<set _recipes_known++>> <</if>> <</for>> <<if _recipes_known gte 5>> <<earnFeat "Chef de Tournant">> <</if>> <<if _recipes_known gte 20>> <<earnFeat "Chef de Partie">> <</if>> <<if _recipes_known gte 50>> <<earnFeat "Sous Chef">> <</if>> <</widget>> <<widget "learn_recipe_all">> <<set _food_keys to Object.keys(setup.plants)>> <<for $_i to 0; $_i lt _food_keys.length; $_i++>> <<set _food to _food_keys[$_i]>> <<if setup.plants[_food].ingredients.length gte 1>> <<learn_recipe _food>> <</if>> <</for>> <</widget>> <<widget "make_recipe">> <<set $_amount to _args[1] or 1>> <<tending_give _args[0] `setup.plants[_args[0]].multiplier * $_amount`>> <<for $_ingredient range setup.plants[_args[0]].ingredients>> <<if !_ingredientsSupplied?.includes($_ingredient) or !_ingredientsSupplied?.includes(ingredientUsed($_ingredient, _args[0]))>> <<set $_ingredient to ingredientUsed($_ingredient, _args[0])>> <<tending_give $_ingredient `-$_amount`>> <</if>> <</for>> <<wearProp setup.plants[_args[0]].handheld>> <<pass `setup.plants[_args[0]].days * $_amount`>> <<if $bus is "avery_kitchen" and $avery_mansion.jobs.includes("kitchen") and $_amount gte random(1,3)>> <<set $avery_mansion.kitchen_made += $_amount>> <</if>> <</widget>> <<widget "knownFoodRecipes">> <<if _args[0]>> <<set _knownRecipes to []>> <<set _possibleRecipes to 0>> <<run Object.keys(setup.plants).forEach(item => { if (setup.plants[item]?.ingredients.includes(_args[0])) { _possibleRecipes++; if ($plants[item].recipe) _knownRecipes.pushUnique(item); } })>> <<if _knownRecipes.length>> <hr> Known Recipes (_knownRecipes.length / _possibleRecipes): <br> <<for $_recipe range _knownRecipes>> <div class="recipe"> <div><<tendingicon setup.plants[$_recipe].icon>></div> <div> <mouse class="tooltip"> <<print $_recipe.replace(/_/g, " ").toLocaleUpperFirst()>> <span> Ingredients: <ul> <<for $_secondaryIngredients range setup.plants[$_recipe].ingredients>> <li> <<print $_secondaryIngredients.replace(/_/g, " ").toLocaleUpperFirst()>> <<if _ingredientsSupplied?.includes($_secondaryIngredients)>> <i class="gold">(∞)</i> <<else>> <i class="gold">(<<print $plants[$_secondaryIngredients].amount>>)</i> <</if>> </li> <</for>> </ul> </span> </mouse> </div> </div> <</for>> <<elseif _possibleRecipes isnot 0>> <hr> You don't know any recipes that use this item. <</if>> <<if setup.plants[_args[0]]?.type is "food" and Array.isArray($plants[_args[0]].knownFavorite) and $plants[_args[0]].knownFavorite.length>> <hr> Known Favourite: <<for $_npc range $plants[_args[0]].knownFavorite>> <br> <<iconUi "sym_love.png">><<print $_npc>> <</for>> <</if>> <</if>> <</widget>> <<widget "ingredientsSupplied">> <<set _ingredientsSupplied to []>> <<if typeof _args[0] is "object">> <<run _args[0].forEach(key => _ingredientsSupplied.pushUnique(key))>> <<elseif _args[0]>> <<run _args.forEach(key => _ingredientsSupplied.pushUnique(key))>> <</if>> <</widget>> <<widget "ingredientsExceptions">> <<set _ingredientsExceptions to []>> <<if _args[0]>> <<run _args.forEach(key => _ingredientsExceptions.pushUnique(key))>> <</if>> <</widget>> /* Vrel: If I remember right, that's as far as I got with the UI for the PC eating their own food. Should probably be removed once said feature has been implemented <<widget "food_list">> <summary class="journal"><<print _args[0].toLocaleUpperFirst()>></summary> <<set _food_keys to Object.keys(setup.plants)>> <<for _i to 0; _i lt _food_keys.length; _i++>> <<set _food to _food_keys[_i]>> <<if _args[0] is "sweets" and setup.plants[_food].special.includes("sweet") or _args[0] is "drinks" and setup.plants[_food].special.includes("drink") or _args[0] is "savouries" and !setup.plants[_food].special.includes("sweet") and !setup.plants[_food].special.includes("drink") and setup.plants[_food].type isnot "ingredient">> <<set _recipe_go to true>> <<else>> <<set _recipe_go to false>> <</if>> <<if $plants[_food].recipe is true and _recipe_go is true>> <div class="kitchen-recipe-box"> <div class="recipe-text"><<tendingicon setup.plants[_food].icon>><<print _food.toLocaleUpperFirst().replace(/_/g," ")>></div> Number owned: <<print $plants[_food].amount>> <br> <<if _ingredients_available isnot false>> <<capture _food>> <br> <<if $tiredness gte C.tiredness.max>> <span class="purple">You're too tired to cook!</span> <<else>> <<link [[Make|$passage]]>><<make_recipe _food>><</link>> <</if>> <</capture>> <</if>> <<set _recipe_known to true>> </div> <</if>> <</for>> <<if _recipe_known is false>> <span class="blue">You know no recipes!</span> <span class="gold">You can learn them from the housekeeping class at school.</span> <</if>> <</widget>> <<widget "food_list_all">> <<food_list "savouries">> <br> <<food_list "sweets">> <br> <<food_list "drinks">> <br> <</widget>>*/ <<widget "housekeeping_exam_select">> <<unset $chosen_recipe>> <<set _food_keys to Object.keys(setup.plants)>> <<set _possible_recipes to []>> <<set $_foodOptions to Object.entries(clone(setup.plants)).filter(([key, item]) => !$plants[key].recipe and item.ingredients?.length)>> <<for $_difficulty to 1; $_difficulty lt 5; $_difficulty++>> <<run $_foodOptions.forEach(([key, item]) => { if (item.difficulty is $_difficulty and item.ingredients.every(ingredient => !setup.plants[ingredient].ingredients?.length or $plants[ingredient].recipe)) { _possible_recipes.pushUnique(key); } })>> <<if _possible_recipes.length>> <<if Object.keys($plants).filter(key => !$plants[key].recipe and setup.plants[key].ingredients.length and setup.plants[key].difficulty is $_difficulty).length is Object.keys($plants).filter(key => setup.plants[key].ingredients.length and setup.plants[key].difficulty is $_difficulty).length>> <<set _difficultyNotice to $_difficulty>> <</if>> <<set $chosen_recipe to _possible_recipes.pluck()>> <<break>> <</if>> <</for>> <<if !$chosen_recipe>><<set $chosen_recipe to "none">><</if>> <</widget>> <<widget "avery_food_select">> <<set $avery_mansion.food_last to $gift.name>> <<set $avery_requested_food to $avery_mansion.food.name>> <<unset $chosen_recipe>> <<set _food_keys to Object.keys(setup.plants)>> <<set _possible_recipes to []>> <<set $_foodOptions to Object.entries(clone(setup.plants)).filter(([key, item]) => item.ingredients?.length && item.type !== "ingredient" && !item.special.includes("drink"))>> <<if C.npc.Avery.dom gte 75>> <<set $_difficulty to 4>> <<elseif C.npc.Avery.dom gte 50>> <<set $_difficulty to 3>> <<elseif C.npc.Avery.dom gte 25>> <<set $_difficulty to 2>> <<else>> <<set $_difficulty to 1>> <</if>> <<run $_foodOptions.forEach(([key, item]) => { if (item.difficulty is $_difficulty) { _possible_recipes.pushUnique(setup.plants[key]); } })>> <<if _possible_recipes.length>> <<set $chosen_recipe to _possible_recipes.pluck()>> <</if>> <<if !$chosen_recipe>><<set $chosen_recipe to "none">><</if>> <<set $avery_mansion.food to $chosen_recipe>> /* once Avery has chosen a new meal, the player loses the chance to learn the recipes they'd asked to learn prior */ <<set $avery_mansion.recipe to []>> <</widget>> <<widget "food_gift_list">> <<set _food_keys to Object.keys(setup.plants)>> <<for _i to 0; _i lt _food_keys.length; _i++>> <<set _food to _food_keys[_i]>> <<if setup.plants[_food].type is "food">> <<if $plants[_food].amount gte 1>> <<set _food_gift_found to true>> <<set _color to $bus is "avery_dining" and _food is $avery_mansion.food.name ? "gold" : "">> <label><<tendingicon setup.plants[_food].icon>><span @class="_color"><<recipe_name _food "cap">> (<<print $plants[_food].amount>>)</span> <<radiobutton "$gift" setup.plants[_food] checked>></label> | <</if>> <</if>> <</for>> <<if _food_gift_found isnot true>> You don't have any homemade food to gift. <</if>> <br><br> <</widget>> <<widget "give_gift">> <<tending_give $gift.name -1>> <<set $daily.giftedFood[_args[0]] to $gift.name>> <</widget>> <<widget "recipe_name">><<silently>> <<set $_difficultyColour to _args[1]?.includes("difficulty") ? ["","green","blue","purple","pink","red"][setup.plants[_args[0]].difficulty] : "white">> <<set $_recipeName to _args[1]?.includes("plural") ? setup.plants[_args[0]].plural : setup.plants[_args[0]]?.recipe_name or setup.plants[_args[0]].name.replace(/_/g," ")>> <<if _args[1]?.includes("cap")>> <<set $_recipeName to $_recipeName.toUpperFirst()>> <</if>> <<if !_args[1]>> <<set $_recipeName to $_recipeName.replace(/^(a |an |the )/i, "")>> <</if>> <</silently>><span @class=$_difficultyColour><<print $_recipeName>></span><</widget>> <<widget "saveFavoriteFood">> <<if C.npc[_args[0]] and setup.plants[_args[1]]?.type is "food">> <<if !$plants[_args[1]].knownFavorite>><<set $plants[_args[1]].knownFavorite to []>><</if>> <<run $plants[_args[1]].knownFavorite.pushUnique(_args[0])>> <</if>> <</widget>> <<widget "recipe_exam_description">> <<if setup.plants[_args[0]].ingredients.length lt 1>> <span class="black">Food item "_args[0]" is not a cookable recipe! Please report this!</span> <<else>> <<if _difficultyNotice is 1>> "We're going to start you off with simpler recipes," River says. "These are easier to make, but still either helpful or tasty. We're starting off with a recipe for <<recipe_name _args[0] "difficulty">>." <<He>> clears <<his>> throat. <<elseif _difficultyNotice is 2>> "We're moving up a level," River says. "You've demonstrated knowledge of the basics. Good. These next dishes are more complex, either because they take longer to make, require more ingredients, or are easier to make mistakes with. Today, you'll be learning to make <<recipe_name _args[0] "difficulty">>." <<He>> clears <<his>> throat. <<elseif _difficultyNotice is 3>> "We're moving to the advanced dishes today," River says. "Generally, the harder a dish, the more 'worth it' making it is. Though that's all subjective, of course. Your first advanced exam will be a recipe for <<recipe_name _args[0] "difficulty">>." <<He>> clears <<his>> throat. <<elseif _difficultyNotice is 4>> River claps to grab the class' attention. "As of today, you will be learning even more difficult dishes. There are not very many dishes left I can teach you. Regardless, these next few exams will be the hardest you've taken in this class yet. The first of them will be a recipe for <<recipe_name _args[0] "difficulty">>." <<He>> clears <<his>> throat. <<else>> "You will be learning a recipe for <<recipe_name _args[0] "difficulty">>," River says. <</if>> <<switch _args[0]>> <<case "apple_crumble">> "Very similar to an apple crisp, but there are differences. It's all in the topping." <<case "apple_strudel">> "If you're making these yourself, I recommend eating them warm. Fortunately, they're also good cold." <<case "arancini">> "Careful you don't burn yourself. Yes, I'll be saying that every time we're working with hot oil. It's important." <<case "bakewell_tart">> "Cherry bakewell tart, specifically. You can experiment with other fruit in your own time." <<case "banana_bread">> "Very similar to pumpkin bread or zucchini bread, but bananas are the cheapest for the academy to buy in bulk." <<case "bangers_and_mash">> "Don't be intimidated by the full plate. It's more arranging than anything." <<case "beef_wellington">> "You remember salmon wellington. This is very similar. Beef is hardier than salmon, so you don't need to be as delicate, but this is compounded by the serving size for beef wellington being larger." <<case "belgian_bun">> "Unlike most pastries, the cherry is not optional. If you used a different berry, it would no longer be a Belgian bun." <<case "bread">> "Homemade bread does not come pre-sliced. Yes, it's inconvenient, but you'll find it tastes far better than store-bought." <<case "brownie">> "I recommend serving warm with a scoop of vanilla ice cream. That's not on the exam, though." <<case "butter">> "I hear those groans. You'll be thanking me when the grocery store only has margarine." <<case "carbonara">> "This uses spaghetti as the base, but as with nearly all pastas, the flavour lies in the sauce. And the pork, in this case." <<case "carrot_cake">> "I know that, by name alone, it doesn't sound appealing. But stow your expectations. I think you'll be surprised." <<case "cauliflower_cheese">> "Don't chop the cauliflower. Break it into pieces with your hands. You'll get more natural bites that way." <<case "cheese">> "Apologies to the lactose intolerant among you, but cheese is a very common ingredient in many dishes." <<case "cheese_and_crackers">> "Always nice when you have guests over. It sounds unimpressive, but this is only a few steps removed from a charcuterie board." <<case "cheese_topped_trout">> "A common culinary rule is that cheese and seafood should never be on the same plate together. Like any culinary rule, sufficiently accomplished chefs can ignore it." <<case "cheeseburger">> "If you can make hamburgers, there's no reason you can't make this. Do not use pre-sliced cheese. Slice your own cheese, it's worth it." <<case "chelsea_bun">> "If you've ever had a cinnamon bun, these are extremely similar. The main difference is that Chelsea buns are more glazed, while cinnamon buns are more frosted." <<case "chicken_tikka_masala">> "The tikka and the masala- or the chicken and the sauce- are made separately and then combined to simmer. This will test your ability to focus on two different processes at once." <<case "chicken_vindaloo">> "I will be entirely honest with you. This is likely the spiciest dish you'll learn in this class. If you have a problem with spice, well, I'm afraid that's a you problem." <<case "chilli_con_carne">> "Chilli con carne has a thicker sauce than standard chilli and uses chunks of beef rather than ground beef. Many of the fundamentals are the same, however." <<case "chips">> "One of the most popular side dishes there is, and for a reason." <<case "choc_chip_cookie">> "Do not flatten them before putting them in the oven. Keep the dough in balls. They flatten out while baking." <<case "chocolate">> "This is for using as ingredients, not for eating on its own. That being said, there is no chef on this planet that has <i>never</i> had a nibble anyway." <<case "clam_chowder">> "Chowder is not just a type of soup; it's thicker and creamier. It's also unlike stew, as stew is meatier and tends to lack the cream that chowder has." A few students snicker at the description. River ignores them. <<case "crumpet">> "These are porous, to allow for spreadings to soak in. I recommend eating with honey or jam." <<case "crème_brulee">> "You may have seen recipes saying you need a blow torch for the best effect. That's not true. Broiling it will do just as well." <<case "fish_and_chips">> "Go to any pub in town, and they'll be serving this." <<He>> pauses. "I was speaking generally. That is not encouragement to go to pubs." <<case "flapjack">> "Not pancakes. These are made to be snacks, not breakfast." <<case "flour">> "Not the most exciting recipe, I'm aware, but you'll want to know how to make it. Flour is the foundation of so many meals." <<case "full_english_breakfast">> "It's called a breakfast, but you can have this any time of day. You shouldn't. But you can." <<case "ghostbrew">> <!-- failsafe --> <<He>> pauses. "Wait. This wasn't in the syllabus. You shouldn't be learning about this." <<He>> clicks <<his>> tongue. "<span class="red">Report this to Vrelnir when you have a second.</span> In the meantime, I suppose we'll just... push on." <<case "hamburger">> "The quintessential junk food." <<He>> smiles thinly. "But you're not making junk food. You're learning to make <i>real</i> hamburgers." <<case "honey">> "To be honest, I would prefer if you just bought honey. Foraging for honeycomb is far too dangerous and tedious just to make some dessert. The local stores don't stock it, though, so here we are." <<case "honeyed_pork">> "Adding hints of sweetness to a savoury dish is a common trick. That being said, in this case, the honey sauce is just a glaze applied to the pork." <<case "jam">> "Not jelly. Jam and jelly are two separate things; jam uses fruit, jelly uses fruit juice. We're not getting into preserves." <<case "jammie_dodger">> "If you don't care about looks, you don't need to make the hole shaped exactly like a heart. However, for the sake of this exam, I <i>will</i> be judging aesthetics. Keep that in mind." <<case "kedgeree">> "Some purists will insist haddock is the only option for fish; anything else, like salmon or tuna, and it's not a kedgeree. I don't believe this to be the case, though haddock is notably more traditional than other fish." <<case "lasagne">> "Anyone who makes a 'pasta cake' joke will be on dish cleaning duty." <<case "lemon_meringue_pie">> "The ideal lemon meringue pie is not overpowering in its sourness. It's more tart than anything, blended with sweetness." <<case "lemonade">> "An excellent drink for the summer months, if you wish to cool off. Serve it hot for a satisfactory cold remedy, alongside some honey." <<case "linguine">> "It's recommended you use linguine as a base for other flavours, like seafood or alfredo. However, if your linguine cannot stand on its own, no amount of sauce will cover that up." <<case "macaroni_cheese">> "Remember to boil it for less time than the package says for. It will finish cooking in the oven." <<case "melting_moment">> "A rare pastry that doesn't require eggs to make." <<case "mince_pie">> "This was originally mince<i>meat</i> pie, and the meat was eventually phased out of the recipe. However, the 'mince' part of the name isn't actually derived from mincemeat. Though that's a lesson for English class, perhaps." <<case "naan_bread">> "This makes for an excellent side, especially if you slather it in garlic butter. It's not a main dish, however. A snack at most." <<case "omelette">> "A simple breakfast. You can add anything you want to this, but the exam will only focus on the fundamental technique." <<case "onion_bhaji">> "I'm aware some of you take issue with onion, either due to the taste or the texture. Hopefully, this dish will help you get over that." <<case "orange_juice">> "I see those eye rolls. If you'd like to stuff your body with preservatives, by all means, keep drinking store-bought." <<case "pasta">> "The foundation for so many savoury meals. Much like pastries and sweet dishes." <<if $plants.pastry.recipe>> <<He>> smiles. "Sound familiar?" <</if>> <<case "pastry">> "The foundation for so many sweet meals. Much like pasta and savoury dishes." <<if $plants.pasta.recipe>> <<He>> smiles. "Sound familiar?" <</if>> <<case "peach_panzanella">> "The bread must be cubed, and the peaches must be sliced into wedges. That's not a hard rule for the dish itself, but it's a requirement for this exam. This lesson is primarily about knife control." <<case "pizza">> "This will still end up slightly greasy, I'm afraid. That's just what happens when you cook cheese." <<case "plum_pudding">> "Despite the name, plums aren't actually a required ingredient. Any dried fruit will do. We're using plums for this exam, however." <<case "poached_pear">> "Do not raise the water to boiling temperatures. Poaching is done at lower heat levels." <<case "porridge">> "A good breakfast for when you're in a hurry. I'd recommend adding fruit or honey for taste, but it's edible without." <<case "potato_pancake">> "Very similar to bubble and squeak, but without the vegetables on the side. This makes potato pancakes more fitting as a breakfast, or a snack." <<case "prawn_bisque">> "Do not remove the shells until the prawns have been simmered. This helps the broth gain a lot of flavour you would otherwise lose. The shells are sieved out later." <<case "quiche">> "No, this is not just a savoury pie. Really, the only things they have in common is they both use pie crust." <<case "rich_biscuit">> "If you dunk these into the tea, it's an instant failure." You can't tell if <<hes>> joking or not. <<case "roast_dinner">> "You know how to make everything that goes into this. All that matters now is putting it together." <<case "salad">> "There's more than one type of salad, of course, but most of them share the same fundamentals. If you can make a garden salad, you can probably make a Caesar salad." <<case "salmon_wellington">> "This takes a long time in the oven, and the pastry needs to chill beforehand as well. Those are just waiting periods, though, so we'll be skipping those for the exam. Otherwise we'd be here until lunch." <<case "samosa">> "You can experiment with different shapes in your own time. For now, we're learning how to make them in triangles." <<case "sausage_roll">> "We've talked a bit about sausages. Now it's time to put them to use." <<case "scone">> "Unflavoured, but don't be afraid to experiment in your own time. You could put anything in a scone." <<He>> pauses. "Almost anything." <<case "shortbread">> "Contrary to what the name would have you think, these are a type of cookie. You won't be making sandwiches with these." <<case "soufflé">> "As far as desserts go, this recipe has a reputation for a reason. It's easy to mess up and hard to get perfect. Pay close attention while preparing." <<case "spaghetti_bolognese">> "Take care to remove the bay leaves when you're finished. They impart flavour during the cooking process, but they should not be eaten themselves." <<case "sponge_cake">> "The ideal sponge cake should be so fluffy, you barely notice it's there. ...That's a joke. If you can't notice if your cake is there, you likely haven't made anything." <<case "steak">> "I'm sure many of you have been waiting for this one. To be quite honest, I've been waiting for it too." <<case "sticky_toffee_pudding">> "As with all cakes, be careful not to overbake it. When in doubt, use the toothpick trick." <<case "stuffing">> "Thanksgiving isn't a proper holiday here, like it is overseas. That means you can make this any time of year without feeling guilty." <<case "sweet_and_sour_chicken">> "Fried, not baked. Not deep-fried, though. We're making food, not junk." <<case "swiss_roll">> "Most Swiss rolls are dark brown, due to the chocolate used. However, the chocolate is optional. We'll be skipping it for this recipe." <<case "tart">> "It tastes exactly how the name suggests." <<case "turnip_soup">> "This is a meal I've made more times than I can count. Not the most exciting dish, but keeps your stomach full and warm." <<case "wolfbrew">> <!-- failsafe --> <<He>> pauses. "Wait. This wasn't in the syllabus. You shouldn't be learning about this." <<He>> clicks <<his>> tongue. "<span class="red">Report this to Vrelnir when you have a second.</span> In the meantime, I suppose we'll just... push on." <<case "yorkshire_pudding">> "This isn't the type of pudding you would have for dessert. If you're making this alongside roast beef, use the meat drippings for extra flavour." <<default>> "Let's get right into it." <<if $debug is 1 or $options.debugdisable is "f">> <span class="black">Food item "_args[0]" does not have an exam description!</span> <</if>> <</switch>> <<if setup.plants[_args[0]].ingredients.includes("chicken_egg") and !$housekeepingTips.includes("alternativeEgg")>> <<set $housekeepingTips.pushUnique("alternativeEgg")>> <br><br> "Most recipes will call for standard eggs, those being chicken eggs," <<he>> adds. "But keep in mind that <span class="gold">any type of egg can be used as a substitute</span> if you don't have chicken eggs." <</if>> <<if _args[0] is "lasagne" and !$housekeepingTips.includes("alternativeLasagne")>> <<set $housekeepingTips.pushUnique("alternativeLasagne")>> <br><br> "Lasagne is typically made with beef," <<he>> adds. "But if you don't have any beef, or if you'd just prefer a different flavour, <span class="gold">you can also substitute chicken instead</span>. Not pork, though." <</if>> <</if>> <br><br> <</widget>> <<widget "allowLewdIngredients">> <<set _allowLewdIngredients to true>> <<if !$housekeepingTips.includes("alternativeLewd") and $plants.bottle_of_breast_milk.amount + $plants.bottle_of_semen gte 1>> <<set $housekeepingTips.pushUnique("alternativeLewd")>> You doubt you could get away with it in more controlled kitchens, but this kitchen seems quite free. If you're running short on milk or cream, <span class="gold">you may be able substitute with lewder ingredients</span>. <</if>> <</widget>><<widget "init_locations">> /* parent: the location this location is in. values are inherited from here area: marker for locations that represent large areas with many locations inside. you don't usually want to set the pc location to them. use a more specialised location instead. bus: marker for sub-areas within the town outside: if the location is outside or indoors tanning: factor applied to tanning. only used for outside locations location: locations that should show up in C.location, don't set this on e.g. indoor variants or single rooms. you can get those with C.sublocation if you need them */ <<script>> setup.addlocation = function(location) { setup.locations[location] = { name: location, parent: "world" }; return { data: setup.locations[location], parent: function(parent) { this.data.parent = parent; return this; }, area: function() { this.data.area = true; return this; }, bus: function() { this.data.bus = true; return this; }, outside: function() { this.data.outside = 1; return this; }, inside: function() { this.data.outside = 0; return this; }, tanning: function(tanning) { this.data.tanning = tanning; return this; }, descr: function(descr) { this.data.descr = descr; return this; }, location: function(name = undefined) { this.data.location = true; this.data.location_name = name; /* override for weird inheritance, e.g. drains */ return this; }, build: function() { if (this.data.descr === undefined) { this.data.descr = this.data.name.replace(/_/, " ").replace(/(^|\s)\S/g, function(t) { return t.toUpperCase() }); } let parent = this.data.name; while (parent !== undefined) { if (this.data.area_name === undefined && setup.locations[parent].area) { this.data.area_name = setup.locations[parent].name; } if (this.data.location_name === undefined && setup.locations[parent].location) { this.data.location_name = setup.locations[parent].name; } if (this.data.bus_name === undefined && setup.locations[parent].bus) { this.data.bus_name = setup.locations[parent].name; } if (this.data.outside === undefined && setup.locations[parent].outside !== undefined) { this.data.outside = setup.locations[parent].outside; } if (this.data.tanning === undefined && setup.locations[parent].tanning !== undefined) { this.data.tanning = setup.locations[parent].tanning; } parent = setup.locations[parent].parent; } if (!this.data.outside) { this.data.tanning = 0; } } }; }; setup.locations = { world: { parent: undefined, area: true, location: true, bus: false, outside: 1, tanning: 1.0 } }; setup.addlocation( "town" ).parent("world").area().location().tanning(0.5).build(); setup.addlocation( "alley" ).parent("town").location().build(); setup.addlocation( "beach" ).parent("town").location().tanning(1.1).build(); setup.addlocation( "changingroom" ).parent("beach").inside().build(); setup.addlocation( "seabeach" ).parent("beach").bus().tanning(1.0).build(); setup.addlocation( "drain" ).parent("town").location().inside().build(); setup.addlocation( "sewers" ).parent("drain").location().build(); setup.addlocation( "underground" ).parent("town").location().inside().build(); /* both underground brothel and various caves */ setup.addlocation( "promenade" ).parent("town").location().build(); setup.addlocation( "residential" ).parent("town").bus().build(); setup.addlocation( "domus" ).parent("residential").bus().build(); setup.addlocation( "home" ).parent("domus").location().inside().build(); setup.addlocation( "backyard" ).parent("home").outside().build(); setup.addlocation( "garden" ).parent("home").outside().build(); setup.addlocation( "barb" ).parent("residential").bus().build(); setup.addlocation( "dance_studio" ).parent("barb").location().inside().build(); setup.addlocation( "police_station" ).parent("barb").location().inside().build(); setup.addlocation( "flats" ).parent("barb").location().inside().build(); setup.addlocation( "canal" ).parent("barb").location().inside().build(); setup.addlocation( "mines" ).parent("flats").location().inside().build(); setup.addlocation( "danube" ).parent("residential").bus().build(); setup.addlocation( "spa" ).parent("danube").location().inside().build(); setup.addlocation( "kylarmanor" ).parent("danube").location("kylar_manor").bus().inside().build(); setup.addlocation( "kylarmanor_outside" ).parent("kylarmanor").location("kylar_manor").bus().outside().build(); setup.addlocation( "kylarmanor_grounds" ).parent("kylarmanor_outside").location("kylarmanor_grounds").bus().outside().build(); setup.addlocation( "wolf" ).parent("residential").bus().build(); setup.addlocation( "temple" ).parent("danube").location().inside().build(); setup.addlocation( "residential_alley" ).parent("residential").location("alley").build(); setup.addlocation( "residential_drain" ).parent("residential").location("drain").inside().build(); setup.addlocation( "avery_mansion" ).parent("danube").location("avery_mansion").inside().build(); setup.addlocation( "commercial" ).parent("town").bus().location().build(); setup.addlocation( "connudatus" ).parent("town").bus().build(); setup.addlocation( "strip_club" ).parent("connudatus").location().inside().build(); setup.addlocation( "cliff" ).parent("town").bus().build(); setup.addlocation( "townhall" ).parent("cliff").location().inside().build(); setup.addlocation( "cafe" ).parent("cliff").location().inside().build(); setup.addlocation( "cafe_outside" ).parent("cafe").outside().build(); /* outside seating */ setup.addlocation( "high" ).parent("town").bus().build(); setup.addlocation( "shopping_centre" ).parent("high").location().inside().build(); setup.addlocation( "shopping_centre_roof" ).parent("shopping_centre").location().inside().build(); setup.addlocation( "office" ).parent("high").location().inside().build(); setup.addlocation( "starfish" ).parent("town").bus().build(); setup.addlocation( "arcade" ).parent("starfish").location().inside().build(); setup.addlocation( "nightingale" ).parent("town").bus().build(); setup.addlocation( "hospital" ).parent("nightingale").location().inside().build(); setup.addlocation( "park" ).parent("town").location().tanning(0.75).build(); setup.addlocation( "parkmens" ).parent("park").inside().bus().descr("Men's Room").build(); setup.addlocation( "parkwomens" ).parent("park").inside().bus().descr("Women's Room").build(); setup.addlocation( "chocolate_stand" ).parent("park").inside().build(); setup.addlocation( "parkcafe" ).parent("park").inside().build(); setup.addlocation( "parktree" ).parent("park").inside().descr("Park").build(); setup.addlocation( "oxford" ).parent("town").bus().build(); setup.addlocation( "school" ).parent("oxford").location().inside().build(); setup.addlocation( "schoolgrounds" ).parent("school").outside().build(); setup.addlocation( "pool" ).parent("school").location().build(); setup.addlocation( "museum" ).parent("oxford").location().inside().build(); setup.addlocation( "commercial_alley" ).parent("commercial").location("alley").build(); setup.addlocation( "commercial_drain" ).parent("commercial").location("drain").inside().build(); setup.addlocation( "pound" ).parent("starfish").location().inside().build(); setup.addlocation( "industrial" ).parent("town").bus().location().build(); setup.addlocation( "mer" ).parent("industrial").bus().build(); setup.addlocation( "docks" ).parent("mer").location().outside().build(); setup.addlocation( "docks_building" ).parent("docks").inside().build(); setup.addlocation( "elk" ).parent("industrial").bus().build(); setup.addlocation( "compound" ).parent("elk").location().build(); setup.addlocation( "compound_building" ).parent("compound").location().inside().build(); setup.addlocation( "landfill" ).parent("elk").location().build(); setup.addlocation( "night_monster_lair" ).parent("elk").location().inside().build(); setup.addlocation( "harvest" ).parent("industrial").bus().build(); setup.addlocation( "brothel" ).parent("harvest").location().inside().build(); setup.addlocation( "pub" ).parent("harvest").location().inside().build(); setup.addlocation( "industrial_alley" ).parent("industrial").location("alley").build(); setup.addlocation( "industrial_drain" ).parent("industrial").location("drain").inside().build(); setup.addlocation( "avery_skyscraper" ).parent("elk").location("avery_skyscraper").inside().build(); setup.addlocation( "forest" ).parent("world").area().location().tanning(0.1).build(); setup.addlocation( "churchyard" ).parent("forest").location().outside().tanning(0.1).build(); setup.addlocation( "sepulchre" ).parent("churchyard").location().inside().build(); setup.addlocation( "wolf_cave" ).parent("forest").location().inside().build(); setup.addlocation( "wolf_cave_yard" ).parent("wolf_cave").outside().tanning(0.5).build(); setup.addlocation( "asylum" ).parent("forest").location().inside().build(); setup.addlocation( "asylum_yard" ).parent("asylum").outside().tanning(0.5).build(); setup.addlocation( "cabin" ).parent("forest").location().inside().build(); setup.addlocation( "lake" ).parent("forest").location().tanning(1.0).build(); setup.addlocation( "lake_ruin" ).parent("lake").location().inside().build(); setup.addlocation( "lake_office" ).parent("lake").location("lake_office").inside().build(); setup.addlocation( "farmroad3" ).parent("forest").bus().tanning(1.0).build(); setup.addlocation( "plains" ).parent("world").area().build(); setup.addlocation( "farm" ).parent("plains").location().build(); /* underground farm */ setup.addlocation( "farm_manors" ).parent("farm").location().build(); setup.addlocation( "estate" ).parent("farm").location().build(); setup.addlocation( "alex_farm" ).parent("plains").location().build(); setup.addlocation( "alex_cottage" ).parent("alex_farm").location().inside().build(); setup.addlocation( "alex_stables" ).parent("alex_farm").inside().build(); setup.addlocation( "riding_school" ).parent("plains").location().build(); setup.addlocation( "moor" ).parent("plains").location().build(); setup.addlocation( "castle" ).parent("moor").location().build(); setup.addlocation( "tower" ).parent("castle").location().build(); setup.addlocation( "sea" ).parent("world").area().location().bus().build(); setup.addlocation( "searocks" ).parent("sea").bus().build(); setup.addlocation( "seadocks" ).parent("sea").bus().build(); setup.addlocation( "seacliffs" ).parent("sea").bus().build(); setup.addlocation( "pirate_ship" ).parent("sea").location().inside().build(); setup.addlocation( "coastpath" ).parent("sea").location().build(); setup.addlocation( "prison" ).parent("sea").location().inside().build(); setup.addlocation( "prison_beach" ).parent("prison").location().tanning(1.1).build(); setup.addlocation( "island" ).parent("sea").location().build(); setup.addlocation( "tentworld" ).parent("world").area().location().tanning(0).inside().build(); /* TODO: remove inside() when consuming code has been adapted */ <</script>> <</widget>> <!-- This shall replace all "set $location/$outside/$bus" when this system is fully implemented --> <<widget "location">> <<set _location to _args[0]>> <<if ndef setup.locations[_location]>> <<set $locationerror to _location>> /* unused */ <<else>> <<set $sublocation to _location>> <<set $area to CU.area>> <<set $location to CU.location>> <<if def CU.bus>> <<set $bus to CU.bus>> <</if>> <<set $outside to CU.outside>> <</if>> <</widget>> <!-- Do NOT use these computes until all "set $location"s have been eliminated! --> <<compute "area">> setup.locations[$sublocation].area_name <</compute>> <<compute "location">> setup.locations[$sublocation].location_name <</compute>> <<compute "sublocation">> setup.locations[$sublocation].name <</compute>> <<compute "bus">> setup.locations[$sublocation].bus_name <</compute>> <<compute "outside">> setup.locations[$sublocation].outside <</compute>> <<compute "tanning">> setup.locations[$sublocation].tanning <</compute>> <<compute "location_pretty_name">> setup.locations[$sublocation].descr <</compute>><<widget "mirror">> <div id="mirror"> <<if _args[0] isnot undefined>> <<mirrorDisplay _args[0]>> <<else>> <<mirrorDisplay>> <</if>> </div> <</widget>> <<widget "preMirror">> <<if (Browser.isMobile).any()>> <<set $showMannequins to 0>> <<else>> <<set $showMannequins to 1>> <</if>> <</widget>> <<widget "postMirror">> <<shopClothingFilterReset>> /* Due to the reusing of shop code */ <</widget>> <<widget "mirrorDisplay">> <<switch $mirrorMenu>> <<case "appearance">> <<if playerBellyVisible(true) and !playerAwareTheyArePregnant()>> <<mirrorAppearancePregnancy>> <<else>> <<mirrorAppearance>> <</if>> <<case "body">> <<visual-settings>> <<case "skin">> <<mirrorSkin>> <<case "hair">> <<mirrorHair>> <<case "makeup">> <<mirrorMakeup>> <<case "transformation">> <<mirrorTransformation>> <<default>> <<mirrorMenu _args[0]>> <</switch>> <<calchairlengthstage>> <br><br> <</widget>> <<widget "mirrorwet">> <<if _args[1] or _args[2] or _args[3]>> <br> <<set $_part to _args[0]>> <<set $_semen to _args[1]>> <<set $_slime to _args[2]>> <<set $_nectar to _args[3]>> Your $_part <<if $_part is "thighs" or $_part is "feet">> are <<else>> is <</if>> <<if $_semen gt 0>> <<switch Math.clamp($_semen, 1, 5)>> <<case 1>> <span class="blue">moist</span> with <<case 2>> <span class="purple">wet</span> with <<case 3>> <span class="purple">slick</span> with <<case 4>> <span class="pink">soaked</span> in <<case 5>> <span class="red">drenched</span> in <</switch>> <<if $_slime gt 0 and $_nectar gt 0>> semen, <<elseif $_slime gt 0 or $_nectar gt 0>> semen and <<else>> semen. <</if>> <</if>> <<if $_slime gt 0>> <<switch Math.clamp($_slime, 1, 5)>> <<case 1>> <span class="blue">moist</span> with <<case 2>> <span class="purple">wet</span> with <<case 3>> <span class="purple">slick</span> with <<case 4>> <span class="pink">soaked</span> in <<case 5>> <span class="red">drenched</span> in <</switch>> <<if $_nectar gt 0>> slime and <<else>> slime. <</if>> <</if>> <<if $_nectar gt 0>> <<switch Math.clamp($_nectar, 1, 5)>> <<case 1>> <span class="blue">moist</span> with <<case 2>> <span class="purple">wet</span> with <<case 3>> <span class="purple">slick</span> with <<case 4>> <span class="pink">soaked</span> in <<case 5>> <span class="red">drenched</span> in <</switch>> nectar. <</if>> <</if>> <</widget>> <<widget "mirrorMenu">> <<set $_mirror to _args[0] || 'mirror'>> You look into the $_mirror. <<if $fallenangel is 2>> A pathetic excuse of a person <<elseif $hallucinogen gte 200>> The $_mirror melts away into an inky black puddle, floating before you. <<if $_mirror is 'mirror'>> Shards of glass graze past your skin and dissolve into the air. <</if>> <br> You stare into the void, and the void <<elseif $hallucinogen gte 100>> The surface folds over itself at an angle you can't quite understand, and something unrecognisable <<elseif $hallucinogen gt 0>> The surface ripples at your presence, and a vaguely familiar <<girl>> <<elseif $trauma gte $traumamax>> A <<girl>> with glazed eyes <<else>> A <<= $pain gte 100 ? "crying" : $pain gte 40 ? "tearful" : $pain gte 1 ? "frowning" : "cheerful">> <<girl>> <</if>> stares back. <<if ["haunt", "despair"].includes($wraith.state) and $hallucinations gte 1 and ((random(1, 100) is 1) or ($controlled is 0 and random(1, 100) lte 5))>> <span class="fading">A pale figure stands behind.</span> <</if>> <br><br> <<crimeicon "mark">><<link "Examine how you are seen by others">><<set $mirrorMenu to "appearance">><<replace #mirror>><<mirrorDisplay>><</replace>><<numberify "#passages > .passage">><</link>> <br><br> <<if !$simpleMirror>> __Appearance__ <br> <<investigateicon>><<link "Examine your body">><<set $mirrorMenu to "skin">><<replace #mirror>><<mirrorDisplay>><</replace>><<numberify "#passages > .passage">><</link>> <br><br> <</if>> __Hair__ <br> <<hairdressericon "hairspray">><<link "Change your hair style">><<set $mirrorMenu to "hair">><<replace #mirror>><<mirrorDisplay>><</replace>><<numberify "#passages > .passage">><</link>> <br><br> __Makeup__ <br> <<cosmeticsicon>><<link "Apply makeup">><<set $mirrorMenu to "makeup">><<replace #mirror>><<mirrorDisplay>><</replace>><<numberify "#passages > .passage">><</link>> <br><br> <<if $worn.neck.name is "love locket">> __Locket__ <br> <span @class="'clothes-'+$worn.neck.colour.replace(' ','-')"><<icon "locket.png">></span><<link [[Customise locket|Mirror Locket]]>><<set $passage_mirror to $passage>><</link>> <br><br> <</if>> <<if !$simpleMirror>> /* only display the tf menu if there's actually some options that can be changed */ <<set $_tfs to setup.transformations.filter(tf => tf.parts?.some(part => tf.level >= part.tfRequired))>> <<if $_tfs.length >= 1>> __Transformation__ <br> /* show the icon of the highest leveled transform with parts unlocked */ /* assumes maximum of 2 simultaneous transformations */ <<set $_icon to ($_tfs[1]?.level gt $_tfs[0].level) ? $_tfs[1].name : $_tfs[0].name>> <<if !$_icon>><<set $_icon to "angel">><</if>> <<tficon $_icon>> <<link "Examine your inner self">><<set $mirrorMenu to "transformation">><<replace #mirror>><<mirrorDisplay>><</replace>><<numberify "#passages > .passage">><</link>> <<else>> Obtain otherworldly powers to examine further. <</if>> <</if>> <br><br> <</widget>> <<widget "mirrorGender">> <div class="settingsGrid"> <div class="settingsHeader">Gender Appearance</div> <<settextcolorfromfemininity $player.femininity>> <div class="settingsToggleItem"> You look like a <span @class="_text_color"><<if playerBellyVisible(true)>>pregnant <</if>><<girl>>.</span> </div> <div class="settingsToggleItem"> <span class="gold bold">Gender:</span> <br> <label class="blue">Male <<radiobutton "$player.gender" "m" autocheck>></label> | <label class="pink">Female <<radiobutton "$player.gender" "f" autocheck>></label> | <label class="purple">Neither <<radiobutton "$player.gender" "n" autocheck>></label> <br> <span class="small-description">How you see yourself. Does not change your genitals or affect how other people perceive you.</span> </div> <div class="settingsToggleItem"> <span class="gold bold">Contributing Factors:</span> <br> <<for _x range $player.gender_appearance_factors>> <<if _x.femininity is 0 or !_x.factor>> <<continue>> <</if>> <<settextcolorfromfemininity _x.femininity>> <span @class="_text_color"> _x.factor <<if $debug is 1>> _x.femininity <<else>> <<print "+".repeat( Math.trunc(Math.clamp( Math.abs(_x.femininity) / 100, 0, 10 )) )>> <</if>> </span> <br> <</for>> <<if $debug is 1>> <<settextcolorfromfemininity $player.femininity>> Total femininity: <span @class="_text_color">$player.femininity</span> <br> <</if>> </div> <div class="settingsToggleItem"> <span class="gold bold">Behaviour:</span> <br> <<if $player.gender_posture is "n">> You turn around to get a look at yourself. You look like a <<girl>>. Maybe if you carried yourself differently, you could change that. <<elseif $player.gender_posture is "f">> You strike a few girly poses and put on your best feminine voice. <br> <span class="pink">Others will be more likely to think that you're a girl.</span> <<elseif $player.gender_posture is "m">> You flex your muscles and add some gruff to your voice. <br> <span class="lblue">Others will be more likely to think that you're a boy.</span> <</if>> <br><br> <<set _postures to ["masculine", "feminine", "natural"]>> Posture: <<capture _i>> <<for _i = 0; _i < _postures.length; _i++>> <span @class="$player.gender_posture is _postures[_i].charAt(0) ? 'goldLink no-numberify' : 'unselected no-numberify'"> <<link _postures[_i].toUpperFirst()>> <<set $player.gender_posture to _postures[_i].charAt(0)>> <<exposedcheck>> <<replace "#mirrorGender">><<mirrorGender>><</replace>> <</link>> </span> <<= _i lt _postures.length - 1 ? "|" : "">> <</for>> <</capture>> </div> </div> <</widget>> <<widget "mirrorAppearance">> <<mirroricon>><<link "Back">><<replace #mirror>><<mirrorMenu>><</replace>><<numberify "#passages > .passage">><<unset $mirrorMenu>><</link>> <br><br> <span id="mirrorGender"> <<mirrorGender>> </span> <hr> <div class="settingsGrid"> <<set _increaseAllure to []>> <<set _increaseAttractive to []>> <<set _increaseBoth to (name) => { _increaseAllure.push(name); _increaseAttractive.push(name); }>> <<if $beauty gte ($beautymax / 7) * 6>> <<run _increaseBoth("Beauty: Divine +++++")>> <<elseif $beauty gte ($beautymax / 7) * 5>> <<run _increaseBoth("Beauty: Ravishing ++++")>> <<elseif $beauty gte ($beautymax / 7) * 4>> <<run _increaseBoth("Beauty: Beautiful +++")>> <<elseif $beauty gte ($beautymax / 7) * 3>> <<run _increaseBoth("Beauty: Charming ++")>> <<elseif $beauty gte ($beautymax / 7) * 2>> <<run _increaseBoth("Beauty: Pretty +")>> <<elseif $beauty gte ($beautymax / 7)>> <<run _increaseBoth("Beauty: Cute")>> <</if>> <<run _increaseBoth(`Hair length ${$hairlength gte 333 ? "+".repeat($hairlength gte 666 ? 2 : 1) : ""}`)>> <<if $worn.upper.type.includes("naked")>> <<run _increaseBoth("Topless")>> <<elseif $worn.upper.reveal gte 500>> <<run _increaseBoth("Revealing top")>> <</if>> <<if $worn.lower.type.includes("naked")>> <<run _increaseBoth("Bottomless")>> <<elseif $worn.lower.reveal gte 500>> <<run _increaseBoth("Revealing bottoms")>> <</if>> <<if $worn.under_lower.type.includes("naked")>> <<run _increaseBoth("Pantiless")>> <<elseif $worn.under_lower.reveal gte 500>> <<run _increaseBoth("Sexy underwear")>> <</if>> <<if $wolfgirl gte 6>> <<run _increaseBoth(`Wolfy ${"+".repeat(2 - ["ears", "tail"].filter(p => $transformationParts.wolf[p] is "hidden").length)}`)>> <</if>> <<if $cat gte 6>> <<run _increaseBoth(`Catlike ${"+".repeat(2 - ["ears", "tail"].filter(p => $transformationParts.cat[p] is "hidden").length)}`)>> <</if>> <<if $cow gte 6>> <<run _increaseBoth(`Bovine ${"+".repeat(2 - Math.ceil(["ears", "tail", "horns"].filter(p => $transformationParts.cow[p] is "hidden").length / 2))}`)>> <</if>> <<if $harpy gte 6>> <<run _increaseBoth(`Harpy ${"+".repeat(2 - Math.ceil(["tail", "eyes", "malar", "plumage", "wings"].filter(p => $transformationParts.bird[p] is "hidden").length / 3))}`)>> <</if>> <<if $fox gte 6>> <<run _increaseAttractive.push(`Vulpine ${"+".repeat(3 - ["ears", "tail"].filter(p => $transformationParts.fox[p] is "hidden").length)}`)>> <<run _increaseAllure.push(`Foxy ${"+".repeat(3 - ["ears", "tail"].filter(p => $transformationParts.fox[p] is "hidden").length)}`)>> <</if>> <<if $angel gte 6>> <<run _increaseBoth(`Angel ${"+".repeat(2 - ["halo", "wings"].filter(p => $transformationParts.angel[p] is "hidden").length)}`)>> <</if>> <<if $fallenangel gte 2>> <<run _increaseBoth(`Fallen angel ${"+".repeat(2 - ["halo", "wings"].filter(p => $transformationParts.fallenAngel[p] is "hidden").length)}`)>> <</if>> <<if $demon gte 6>> <<run _increaseBoth(`Demon ${"+".repeat(2 - Math.ceil(["horns", "tail", "wings"].filter(p => $transformationParts.demon[p] is "hidden").length / 2))}`)>> <</if>> <<if $earSlime.growth gt 50>> <<run _increaseAllure.push(`Ear slime pheromones${$earSlime.growth gt 75 ? " " + "+".repeat(Math.ceil(($earSlime.growth - 75) / 25)): ""}`)>> <</if>> <<if $makeup.lipstick != 0 or $makeup.eyeshadow != 0 or $makeup.mascara != 0 or $makeup.blusher != 0>> <<run _increaseAllure.push("Alluring makeup")>> <<run _increaseAttractive.push("Attractive makeup")>> <</if>> <<if $worn.upper.reveal + $worn.lower.reveal gte 50>> <<set $_outfit to $worn.lower.name is "naked" or ($worn.upper.name is "naked" and $player.perceived_breastsize gt 2) ? '"outfit"' : 'outfit'>> <<run _increaseAllure.push(`Alluring ${$_outfit} ${"+".repeat(Math.floor(($worn.upper.reveal + $worn.lower.reveal) / 400))}`)>> <<run _increaseAttractive.push(`Attractive ${$_outfit} ${"+".repeat(Math.floor(($worn.upper.reveal + $worn.lower.reveal) / 400))}`)>> <</if>> <<if $worn.head.reveal gte 50>> <<run _increaseAllure.push(`Alluring headwear ${"+".repeat(Math.floor($worn.head.reveal / 200))}`)>> <<run _increaseAttractive.push(`Attractive headwear ${"+".repeat(Math.floor($worn.head.reveal / 200))}`)>> <</if>> <<if $worn.face.reveal gte 50>> <<run _increaseAllure.push(`Alluring face accessory ${"+".repeat(Math.floor($worn.face.reveal / 200))}`)>> <<run _increaseAttractive.push(`Attractive face accessory ${"+".repeat(Math.floor($worn.face.reveal / 200))}`)>> <</if>> <<if $worn.neck.reveal gte 50>> <<run _increaseAllure.push(`Alluring neck accessory ${"+".repeat(Math.floor($worn.neck.reveal / 200))}`)>> <<run _increaseAttractive.push(`Attractive neck accessory ${"+".repeat(Math.floor($worn.neck.reveal / 200))}`)>> <</if>> <<if $worn.legs.reveal gte 50>> <<run _increaseAllure.push(`Alluring legwear ${"+".repeat(Math.floor($worn.legs.reveal / 200))}`)>> <<run _increaseAttractive.push(`Attractive legwear ${"+".repeat(Math.floor($worn.legs.reveal / 200))}`)>> <</if>> <<if $worn.feet.reveal gte 50>> <<run _increaseAllure.push(`Alluring shoes ${"+".repeat(Math.floor($worn.feet.reveal / 200))}`)>> <<run _increaseAttractive.push(`Attractive shoes ${"+".repeat(Math.floor($worn.feet.reveal / 200))}`)>> <</if>> <<if Weather.dayState is "night">> <<run _increaseAllure.push("Night")>> <</if>> <<if $exposed gte 1>> <<run _increaseAllure.push("Exposed")>> <</if>> <<if $liquidcount gte 1>> <<run _increaseAllure.push("Smell of lewd fluids")>> <</if>> <<if $liquidcount gte 10>> <<run _increaseAllure.push("Covered in lewd fluids")>> <</if>> <<if $liquidcount gte 30>> <<run _increaseAllure.push("Drenched in lewd fluids")>> <</if>> <<if Time.isBloodMoon()>> <<run _increaseAllure.push("Full moon")>> <</if>> <<if $auriga_scar gte 1>> <<run _increaseAllure.push(`Elk-scarred ${"+".repeat($auriga_scar)}`)>> <</if>> <<set _negLabels = [ { threshold: 1000, class: "red", label: "Notorious" }, { threshold: 600, class: "pink", label: "Famous" }, { threshold: 400, class: "purple", label: "Recognised" }, { threshold: 200, class: "blue", label: "Known" }, { threshold: 100, class: "lblue", label: "Low-key" }, { threshold: 30, class: "teal", label: "Obscure" } ]>> <<set _posLabels = [ { threshold: 1000, class: "green", label: "Notorious" }, { threshold: 600, class: "teal", label: "Famous" }, { threshold: 400, class: "lblue", label: "Recognised" }, { threshold: 200, class: "blue", label: "Known" }, { threshold: 100, class: "purple", label: "Low-key" }, { threshold: 30, class: "pink", label: "Obscure" } ]>> <<set _neg = [ { type: "sex", name: "slut" }, { type: "prostitution", name: "whore" }, { type: "rape", name: "fucktoy" }, { type: "bestiality", name: $settings.bestialityEnabled ? "bitch" : "monster fucker" }, { type: "exhibitionism", name: "flaunter" }, { type: "pregnancy", name: $fame.pregnancy gte 1000 ? "broodmother" : ($fame.pregnancy gte 400 ? "breeder" : "mother") }, { type: "impreg", name: $fame.impreg gte 1000 ? "allfather" : ($fame.impreg gte 400 ? "sire" : "inseminator") }, ]>> <<set _pos = [ { type: "scrap", name: "scrapper" }, { type: "good", name: "do-gooder" }, { type: "business", name: "entrepreneur" }, { type: "social", name: $fame.social gte 1000 ? "schmoozer" : "socialite" }, { type: "model", name: $fame.model gte 1000 ? "show off" : "model" }, ]>> <<set _decreaseAllure to _pos.some(fame => (_posLabels.some(status => $fame[fame.type] >= status.threshold)))>> <div class="settingsHeader">Attractiveness</div> <div class="settingsToggleItemWide"> <i>Attractiveness</i> measures your ability to use your looks to your advantage. <br> Rating: <<if $attractiveness gte 5000>> <span class="green">S</span> <<elseif $attractiveness gte 4000>> <span class="teal">A</span> <<elseif $attractiveness gte 3000>> <span class="lblue">B</span> <<elseif $attractiveness gte 2000>> <span class="blue">C</span> <<elseif $attractiveness gte 1000>> <span class="purple">D</span> <<else>> <span class="pink">F</span> <</if>> </div> <div class="settingsToggleItemWide"> <span class="gold bold">Contributing Factors:</span> <br> <span class="green"> <<for _item range _increaseAttractive>> <<= _item>> <br> <</for>> </span> </div> </div> <hr> <div class="settingsGrid"> <div class="settingsHeader">Allure</div> <div class="settingsToggleItemWide"> <i>Allure</i> is the dark side of attractiveness and measures how much people will want to molest you. <br> Currently: <<if $allure gte 6000 * $settings.allureModifier>> <span class="red">You look like you need to be ravaged.</span> <<elseif $allure gte 4000 * $settings.allureModifier>> <span class="pink">You look perverted.</span> <<elseif $allure gte 3000 * $settings.allureModifier>> <span class="purple">You look lewd.</span> <<elseif $allure gte 2000 * $settings.allureModifier>> <span class="blue">You stand out.</span> <<elseif $allure gte 1500 * $settings.allureModifier>> <span class="lblue">You attract attention.</span> <<elseif $allure gte 1000 * $settings.allureModifier>> <span class="teal">You attract glances.</span> <<else>> <span class="green">You look unremarkable.</span> <</if>> </div> <div @class="_decreaseAllure ? 'settingsToggleItem' : 'settingsToggleItemWide'"> <span class="gold bold">Increasing Allure:</span> <br> <span class="red"> <<for _item range _increaseAllure>> <<= _item>> <br> <</for>> </span> <<if !["island"].includes($location)>> <<for _fame range _neg>> <<set _famous = _negLabels.find(status => $fame[_fame.type] >= status.threshold)>> <<if _famous>> <span @class="_famous.class">Fame: <<= _famous.label>> <<= _fame.name>> <<= "+".repeat([30, 100, 200, 400, 600, 1000].indexOf(_famous.threshold))>></span> <br> <</if>> <</for>> <</if>> </div> <<if _decreaseAllure>> <div class="settingsToggleItem"> <span class="gold bold">Decreasing Allure:</span> <br> <<if !["island"].includes("location")>> <<for _fame range _pos>> <<set _famous = _posLabels.find(status => $fame[_fame.type] >= status.threshold)>> <<if _famous>> <span @class="_famous.class">Fame: <<= _famous.label>> <<= _fame.name>> <<= "+".repeat([30, 100, 200, 400, 600, 1000].indexOf(_famous.threshold))>></span> <br> <</if>> <</for>> <</if>> <<if $moorLuck gt 5>> <span class="green">????</span> <br> <<elseif $moorLuck gt 0>> <span class="lblue">????</span> <br> <</if>> </div> <</if>> </div> <</widget>> <<widget "mirrorAppearancePregnancy">> You look like a <span class="lewd">pregnant <<girl>>...</span> <<if !$hourly.mirrorPregArousal>> <<set $hourly.mirrorPregArousal to true>> <<garousal>><<gstress>><<arousal 300>><<stress 10>> <</if>> <br><br> <<if getPregnancyObject().potentialFathers.length is 1>> <<set $_fatherName to pregnancyNameCorrection(getPregnancyObject().potentialFathers[0].source)>> <span class="lewd">It's clear that <<print $_fatherName === "yourself" ? "you are" : $_fatherName + " is">> the father.</span> <<else>> <span class="red">You wonder who the father is.</span> <</if>> <<set getPregnancyObject().awareOf to "mirror">> <</widget>> <<widget "mirrorBodywriting">> <<set _array to _args[0] is "visible" ? _skin_array : _hidden_writing>> <<for _index, _active_bodypart range _array>> <<if $skin[_active_bodypart].writing>> <<silently>><<bodypart _active_bodypart>><</silently>> <<= _text_output.toUpperFirst()>>: <<if isLoveInterest($skin[_active_bodypart].special)>> <<set _colour to "lewd">> <<elseif $skin[_active_bodypart].special isnot "none">> <<set _colour to "red">> <<elseif $skin[_active_bodypart].lewd is 1>> <<set _colour to "pink">> <<else>> <<set _colour to "purple">> <</if>> <<if $skin[_active_bodypart].type is "text">> <<set _written to "written">> "<span @class="_colour"><<= $skin[_active_bodypart].writing.toUpperFirst()>></span>" <<else>> <<set _written to "drawn">> A picture of a <span @class="_colour"><<= $skin[_active_bodypart].writing>></span> <</if>> <<if $skin[_active_bodypart].arrow is 1>> <<if _active_bodypart is "left_cheek" or _active_bodypart is "right_cheek">> and an arrow pointing to your mouth <<elseif _active_bodypart is "left_bottom" or _active_bodypart is "right_bottom" or _active_bodypart is "back">> and an arrow pointing to your anus <<elseif _active_bodypart is "pubic" or _active_bodypart is "left_thigh" or _active_bodypart is "right_thigh">> and an arrow pointing to your <<genitals true>> <</if>> <</if>> <<switch $skin[_active_bodypart].pen>> <<case "marker">> (_written in permanent marker) <<case "magic">> (<span class="pink">seal</span>) <<case "tattoo" "brand">> (<span class="red"><<= $skin[_active_bodypart].pen>></span>) <<default>> (_written in <<= $skin[_active_bodypart].pen>>) <</switch>> <<= _index lt _array.length - 1 ? "<br>" : "">> <</if>> <</for>> <</widget>> <<widget "visual-settings">> <<mirroricon>><<link "Back">><<replace #mirror>><<mirrorMenu>><</replace>><<numberify "#passages > .passage">><<unset $mirrorMenu>><</link>> <</widget>> <<widget "faceStyleOptions">> Your current face style is: <<listbox "_facestyle" autoselect>> <<optionsfrom setup.faceStyleOptions>> <</listbox>> <br> <<link "Apply">> <<if $facestyle isnot _facestyle>> <<set $facestyle to _facestyle>> <<set $facevariant to "default">> <<replace "#visualsFaceVariantRadios">><<faceVariantOptions>><</replace>> <<updatesidebarimg true>> <</if>> <</link>> <</widget>> <<widget "faceVariantOptions">> <<if Object.keys(setup.faceVariantOptions[$facestyle]).length gt 1>> Your current demeanour is: <<listbox "$facevariant" autoselect>> <<optionsfrom setup.faceVariantOptions[$facestyle]>> <</listbox>> <br> <<run $(() => { $("#listbox-facevariant").on("change", () => { Wikifier.wikifyEval('<<updatesidebarimg true>>'); }); })>> <<else>> There are <mouse class = "gold tooltip-small" style="border-bottom-color:white"> no alternative demeanours available. <span class="blue"> Selecting a different face style may make additional demeanours available to you. </span> </mouse> <</if>> <</widget>> <<widget "mirrorSkin">> <<mirroricon>><<link "Back">><<handheldon>><<updatesidebarimg>><<replace #mirror>><<mirrorMenu>><</replace>><<numberify "#passages > .passage">><<unset $mirrorMenu>><</link>> <br><br> <div class="settingsGrid"> <div class="settingsHeader">Skin</div> <div class="settingsToggleItem"> <span class="gold bold">Tanning:</span> <br> <span id="sunscreenDescription"> <<sunscreenDesc>> </span> <span id="sunscreenLinks"> <<sunscreenLinks>> </span> <br> <label data-target="options.images" data-disabledif="V.options.images===0"> <<checkbox "$options.tanLines" false true autocheck>> Enable tanning lines from clothing </label> <mouse class="tooltip-small linkBlue">(?)<span>Disables the visual aspect of tanning lines. Only for sidebar.</span></mouse> </div> <div class="settingsToggleItem"> <span class="gold bold">Body Liquids:</span> <<if $liquidcount gt 0>> <<mirrorwet "neck" $player.bodyliquid.neck.semen $player.bodyliquid.neck.goo $player.bodyliquid.neck.nectar>> <<mirrorwet "right arm" $player.bodyliquid.rightarm.semen $player.bodyliquid.rightarm.goo $player.bodyliquid.rightarm.nectar>> <<mirrorwet "left arm" $player.bodyliquid.leftarm.semen $player.bodyliquid.leftarm.goo $player.bodyliquid.leftarm.nectar>> <<mirrorwet "thighs" $player.bodyliquid.thigh.semen $player.bodyliquid.thigh.goo $player.bodyliquid.thigh.nectar>> <<mirrorwet "bottom" $player.bodyliquid.bottom.semen $player.bodyliquid.bottom.goo $player.bodyliquid.bottom.nectar>> <<mirrorwet "tummy" $player.bodyliquid.tummy.semen $player.bodyliquid.tummy.goo $player.bodyliquid.tummy.nectar>> <<mirrorwet "chest" $player.bodyliquid.chest.semen $player.bodyliquid.chest.goo $player.bodyliquid.chest.nectar>> <<mirrorwet "face" $player.bodyliquid.face.semen $player.bodyliquid.face.goo $player.bodyliquid.face.nectar>> <<mirrorwet "hair" $player.bodyliquid.hair.semen $player.bodyliquid.hair.goo $player.bodyliquid.hair.nectar>> <<mirrorwet "feet" $player.bodyliquid.feet.semen $player.bodyliquid.feet.goo $player.bodyliquid.feet.nectar>> <<mirrorwet "labia" $player.bodyliquid.vaginaoutside.semen $player.bodyliquid.vaginaoutside.goo $player.bodyliquid.vaginaoutside.nectar>> <<mirrorwet "vagina" $player.bodyliquid.vagina.semen $player.bodyliquid.vagina.goo $player.bodyliquid.vagina.nectar>> <<mirrorwet "penis" $player.bodyliquid.penis.semen $player.bodyliquid.penis.goo $player.bodyliquid.penis.nectar>> <<mirrorwet "anus" $player.bodyliquid.anus.semen $player.bodyliquid.anus.goo $player.bodyliquid.anus.nectar>> <<mirrorwet "mouth" $player.bodyliquid.mouth.semen $player.bodyliquid.mouth.goo $player.bodyliquid.mouth.nectar>> <<else>> <br> Your skin feels <span class="green">clean</span>. <</if>> </div> </div> <hr> <div class="settingsGrid"> <<bodywritingExposureCheck true true>> <<bodywritingHiddenCheck true true>> <div class="settingsHeader">Body</div> <<if _bodywriting_exposed is 1 and _bodywriting_hidden is 1>> <div class="settingsToggleItem"> <span class="gold bold">Visible Bodywriting:</span> <br> <<mirrorBodywriting "visible">> <br> </div> <div class="settingsToggleItem"> <span class="gold bold">Hidden Bodywriting:</span> <br> <<mirrorBodywriting "hidden">> <br> </div> <<elseif _bodywriting_exposed is 1 || _bodywriting_hidden is 1>> <div class="settingsToggleItemWide"> <<if _bodywriting_exposed is 1>> <span class="gold bold">Visible Bodywriting:</span> <br> <<mirrorBodywriting "visible">> <br> <<elseif _bodywriting_hidden is 1>> <span class="gold bold">Hidden Bodywriting:</span> <br> <<mirrorBodywriting "hidden">> <br> <</if>> </div> <</if>> <div class="settingsToggleItemWide"> <<if $bodyWritingSelected is null>> <<unset $bodyWritingSelected>> <</if>> <<if $bodyWritingSelected isnot undefined>> You write <<if isLoveInterest($skin[$bodyPartSelected].special)>> "<span class="lewd"><<print $bodyWritingSelected>></span>" <<elseif $skin[$bodyPartSelected].special isnot "none">> "<span class="red"><<print $bodyWritingSelected>></span>" <<elseif $skin[$bodyPartSelected].lewd is 1>> "<span class="pink"><<print $bodyWritingSelected>></span>" <<else>> "<span class="purple"><<print $bodyWritingSelected>></span>" <</if>> on your <<bodypart $bodyPartSelected>>. <<unset $bodyWritingSelected>> <<unset $bodyPartSelected>> <hr> <</if>> <<bodywritingOptions>> /*Needs to be last*/ <div class="mirrorContainer"> <<bodywritingMenuLinks>> </div> </div> <div class="settingsToggleItemWide"> <span class="gold bold">Body shape:</span> <mouse class="tooltip-small linkBlue">(?)<span>This is a cosmetic change that does not contribute towards gender appearance.</span></mouse> <br> Your chosen body shape is: <span class="capitalize"> <<listbox "$player.bodyshape" autoselect>> <<optionsfrom setup.bodyShapes>> <</listbox>> </span> <br> <<run $(() => { $("#listbox-playerbodyshape").on("change", () => { Wikifier.wikifyEval('<<updatesidebarimg true>>'); }); })>> </div> </div> <hr> <div class="settingsGrid"> <div class="settingsHeader">Facial Settings</div> <<if setup.faceStyleOptions.length gt 1>> <div id="visualsFaceStyle" class="settingsToggleItem"> <span class="gold bold">Face style:</span><br> <<faceStyleOptions>> </div> <</if>> <div id="visualsFaceVariants" @class="setup.faceStyleOptions.length gt 1 ? 'settingsToggleItem' : 'settingsToggleItemWide'"> <span class="gold bold">Demeanour:</span> <br> <div id="visualsFaceVariantRadios"> <<faceVariantOptions>> </div> </div> </div> <</widget>> <<widget "sunscreenLinks">> <<if Skin.Sunscreen.isApplied()>> <br> <<cosmeticsicon "sunscreen">><<link "Remove sunscreen">> <<handheldon>> <<set Skin.Sunscreen.autoApply to false>> <<replace #sunscreenDescription>><<sunscreenApply "remove">><</replace>> <<replace #sunscreenLinks>><<sunscreenLinks>><</replace>> <</link>> <<note `Skin.Sunscreen.usesLeft + ' use'+(Skin.Sunscreen.usesLeft > 1 ? 's' : '') + ' left'`>> <<else>> <<if Skin.Sunscreen.usesLeft gt 0>> <br> <<cosmeticsicon "sunscreen">><<link "Apply sunscreen">> <<handheldon>> <<replace #sunscreenDescription>><<sunscreenApply>><</replace>> <<replace #sunscreenLinks>><<sunscreenLinks>><</replace>> <</link>> <<note `Skin.Sunscreen.usesLeft + ' use'+(Skin.Sunscreen.usesLeft > 1 ? 's' : '') + ' left'`>> <</if>> <</if>> <br> <<if Skin.Sunscreen.usesLeft gt 0>> <<ind>><<link `Skin.Sunscreen.autoApply ? "Stop applying" : "Apply when required"`>> <<set Skin.Sunscreen.autoApply to !Skin.Sunscreen.autoApply>> <<replace #sunscreenLinks>><<sunscreenLinks>><</replace>> <</link>> <</if>> <</widget>> <<widget "sunscreenDesc">> Your skin is <<if Skin.Sunscreen.isApplied()>> <mouse class = "gold tooltip-small" style="border-bottom-color:white"> protected against the sun <span class="black"> Sunscreen is keeping your skin from getting tanned. <<if Skin.Sunscreen.usesLeft is 0>> <br> <i class="blue">Sunscreen can be acquired at the shops</i> <</if>> </span> </mouse> <<set $_timeLeft to Math.floor(Skin.Sunscreen.timeLeft / 60)>> (<<print getTimeString($_timeLeft)>> left). <<else>> <mouse class = "gold tooltip-small" style="border-bottom-color:white"> not protected against the sun. <span class="black"> Your skin will tan when exposed to the sun. <<if Skin.Sunscreen.usesLeft is 0>> <br> <i class="blue">Sunscreen can be acquired at the cosmetics shop</i> <</if>> </span> </mouse> <</if>> <</widget>> <<widget "sunscreenApply">> <<if !pcAreArmsBound("any")>> <<if _args[0] is "remove">> <<run Skin.Sunscreen.remove()>> <<else>> <<run Skin.Sunscreen.apply()>> <</if>> <</if>> <<if pcAreArmsBound("both")>> <span class="red">Both of your arms are bound</span>, and you find it difficult to do anything about your skin this way. <hr> <<elseif _args[0] is "remove">> <<wearProp "rag" "white">><<updatesidebarimg>> You scrub a damp towel over your skin, removing any last traces of sunscreen. <hr> <<else>> <<wearProp "sunscreen">><<updatesidebarimg>> You squirt a hefty dollop of sunscreen onto your hand and rub it into your skin. <hr> <</if>> <<sunscreenDesc>> <</widget>> <<widget "bodywritingOptions">> <<set _bodyWritingOptions to { General: { "Cute boy":"cute_boy", "Cute girl":"cute_girl", "Orphan":"orphan" } }>> <<if $beauty gte ($beautymax / 7) * 3>> <<set _bodyWritingOptions.General["Handsome"] to "handsome">> <<set _bodyWritingOptions.General["Pretty"] to "pretty">> <</if>> <<if $beauty gte ($beautymax / 7) * 4>> <<set _bodyWritingOptions.General["Stud"] to "stud">> <<set _bodyWritingOptions.General["Beauty"] to "beauty">> <</if>> <<if $beauty gte ($beautymax / 7) * 5>> <<set _bodyWritingOptions.General["Beautiful"] to "beautiful">> <</if>> <<if $trauma gte (($traumamax / 5) * 2)>> <<set _bodyWritingOptions.General["Daddy issues"] to "daddy_issues">> <<set _bodyWritingOptions.General["Mummy issues"] to "mummy_issues">> <<set _bodyWritingOptions.General["Trashy"] to "trashy">> <</if>> <<if $trauma gte (($traumamax / 5) * 3)>> <<set _bodyWritingOptions.General["Worthless"] to "worthless">> <<set _bodyWritingOptions.General["Oh no"] to "oh_no">> <<set _bodyWritingOptions.General["Dumb bitch"] to "dumb_bitch">> <</if>> <<if hasSexStat("promiscuity", 2)>> <<set _bodyWritingOptions.General["Hot"] to "hot">> <</if>> <<if hasSexStat("promiscuity", 3)>> <<set _bodyWritingOptions.Promiscuity = {}>> <<set _bodyWritingOptions.Promiscuity["Slut"] to "slut">> <<set _bodyWritingOptions.Promiscuity["Promiscuous"] to "promiscuous">> <<set _bodyWritingOptions.Promiscuity["Wanton"] to "wanton">> <<set _bodyWritingOptions.Promiscuity["D.T.F."] to "dtf">> <</if>> <<if hasSexStat("promiscuity", 4)>> <<set _bodyWritingOptions.Promiscuity["Insatiable slut"] to "insatiable_slut">> <<set _bodyWritingOptions.Promiscuity["Free Sex"] to "free_sex">> <<set _bodyWritingOptions.Promiscuity["Town bicycle"] to "town_bicycle">> <<set _bodyWritingOptions.Promiscuity["Size queen"] to "size_queen">> <<if $orgasmtrait gte 1>> <<set _bodyWritingOptions.Promiscuity["Sex addict"] to "sex_addict">> <<set _bodyWritingOptions.Promiscuity["Make me cum"] to "make_me_cum">> <</if>> <</if>> <<if hasSexStat("promiscuity", 5)>> <<set _bodyWritingOptions.Promiscuity["Fuck Me"] to "fuck_me">> <<set _bodyWritingOptions.Promiscuity["Cocksucker"] to "cocksucker">> <<set _bodyWritingOptions.Promiscuity["Cum dump"] to "cum_dump">> <<set _bodyWritingOptions.Promiscuity["Public Slut"] to "public_slut">> <<if $analstat gte 100>> <<set _bodyWritingOptions.Promiscuity["Buttslut"] to "buttslut">> <<set _bodyWritingOptions.Promiscuity["Anal whore"] to "anal_whore">> <</if>> <</if>> <<if hasSexStat("promiscuity", 3)>> <<set _bodyWritingOptions.Prostitution = {}>> <<if $trauma gte (($traumamax / 5) * 2)>> <<set _bodyWritingOptions.Prostitution["It's not rape if you pay me"] to "its_not_rape_if_you_pay_me">> <</if>> <<set _bodyWritingOptions.Prostitution["£5 whore"] to "five_pound_whore">> <<set _bodyWritingOptions.Prostitution["£10 a pop"] to "ten_pound_a_pop">> <<set _bodyWritingOptions.Prostitution["Slut for hire"] to "slut_for_hire">> <</if>> <<if hasSexStat("promiscuity", 4)>> <<set _bodyWritingOptions.Prostitution["£25 per fuck"] to "twenty_five_pound_per_fuck">> <<set _bodyWritingOptions.Prostitution["£100"] to "one_hundred_pound">> <<set _bodyWritingOptions.Prostitution["Body for sale"] to "body_for_sale">> <<if $trauma gte (($traumamax / 5) * 3)>> <<set _bodyWritingOptions.Prostitution["Stupid whore"] to "stupid_whore">> <<else>> <<set _bodyWritingOptions.Prostitution["Whore"] to "whore">> <</if>> <<set _bodyWritingOptions.Prostitution["Prostitute"] to "prostitute">> <</if>> <<if hasSexStat("exhibitionism", 3)>> <<set _bodyWritingOptions.Exhibitionism to {}>> <<set _bodyWritingOptions.Exhibitionism["Pervert"] to "pervert">> <<set _bodyWritingOptions.Exhibitionism["Attention whore"] to "attention_whore">> <<set _bodyWritingOptions.Exhibitionism["Flaunter"] to "flaunter">> <<set _bodyWritingOptions.Exhibitionism["Object"] to "object">> <<set _bodyWritingOptions.Exhibitionism["Strip me"] to "strip_me">> <<set _bodyWritingOptions.Exhibitionism["Ask to see me naked"] to "ask_to_see_me_naked">> <</if>> <<if hasSexStat("deviancy", 4)>> <<set _bodyWritingOptions.Deviancy to {}>> <<set _bodyWritingOptions.Deviancy["Doggy slut"] to "doggy_slut">> <<set _bodyWritingOptions.Deviancy["Animal"] to "animal">> <<set _bodyWritingOptions.Deviancy["Beast fucker"] to "beast_fucker">> <<set _bodyWritingOptions.Deviancy["Breedable"] to "breedable">> <<set _bodyWritingOptions.Deviancy["Deviant"] to "deviant">> <</if>> <<if $masochism_level gte 1>> <<set _bodyWritingOptions.Masochism to {}>> <<set _bodyWritingOptions.Masochism["Hit me"] to "hit_me">> <<set _bodyWritingOptions.Masochism["Hurt me"] to "hurt_me">> <<set _bodyWritingOptions.Masochism["Treat me bad"] to "treat_me_bad">> <<set _bodyWritingOptions.Masochism["Make me squeal"] to "make_me_squeal">> <</if>> <<if $submissive gte 1200>> <<set _bodyWritingOptions.Submission to {}>> <<set _bodyWritingOptions.Submission["Submissive"] to "submissive">> <<set _bodyWritingOptions.Submission["Pet"] to "pet">> <<if hasSexStat("deviancy", 3)>> <<set _bodyWritingOptions.Submission["Public pet"] to "public_pet">> <</if>> <<if hasSexStat("promiscuity", 4)>> <<set _bodyWritingOptions.Submission["Free use"] to "free_use">> <<set _bodyWritingOptions.Submission["Use Me"] to "use_me">> <</if>> <<if $submissive gte 1500>> <<set _bodyWritingOptions.Submission["Slave"] to "slave">> <<set _bodyWritingOptions.Submission["Enslave Me"] to "enslave_me">> <<set _bodyWritingOptions.Submission["Cum rag"] to "cum_rag">> <<if hasSexStat("promiscuity", 5)>> <<set _bodyWritingOptions.Submission["Fuckdoll"] to "fuckdoll">> <<set _bodyWritingOptions.Submission["Fucktoy"] to "fucktoy">> <<if $player.penisExist>> <<set _bodyWritingOptions.Submission["Walking dildo"] to "walking_dildo">> <</if>> <</if>> <</if>> <</if>> <<if ($player.vaginaExist or ($sexStats.anus.pregnancy.awareOf or $sexStats.anus.pregnancy.givenBirth gte 1)) and hasSexStat("promiscuity", 5)>> <<set _bodyWritingOptions.Pregnancy to {}>> <<set _bodyWritingOptions.Pregnancy["Brood mother"] to "brood_mother">> <<set _bodyWritingOptions.Pregnancy["Inseminate me"] to "inseminate_me">> <<set _bodyWritingOptions.Pregnancy["Impregnate me"] to "impregnate_me">> <<set _bodyWritingOptions.Pregnancy["Pregnancy slut"] to "pregnancy_slut">> <<set _bodyWritingOptions.Pregnancy["Breeding ground"] to "breeding_ground">> <</if>> <<set _bodyWritingOptions["Love Interests"] to {}>> <<if isPossibleLoveInterest("Robin")>> <<set _bodyWritingOptions["Love Interests"]["Robin's Protector"] to "robins_protector">> <<set _bodyWritingOptions["Love Interests"]["Robin & I"] to "robin_and_i">> <<set _bodyWritingOptions["Love Interests"]["The Orphan Lover"] to "the_orphan_lover">> <<if ($player.penisExist or $player.gender_appearance is "m" or $backgroundTraits.includes("crossdresser"))>> <<set _bodyWritingOptions["Love Interests"]["Robin's Boyfriend"] to "robins_boyfriend">> <</if>> <<if ($player.vaginaExist or $player.gender_appearance is "f" or $backgroundTraits.includes("crossdresser"))>> <<set _bodyWritingOptions["Love Interests"]["Robin's Girlfriend"] to "robins_girlfriend">> <</if>> <</if>> <<if isPossibleLoveInterest("Whitney")>> <<set _bodyWritingOptions["Love Interests"]["Whitney's Pet"] to "whitneys_pet">> <<set _bodyWritingOptions["Love Interests"]["Property of Whitney"] to "property_of_whitney">> <<set _bodyWritingOptions["Love Interests"]["Whitney's Toy"] to "whitneys_toy">> <<if ($player.penisExist or $player.gender_appearance is "m" or $backgroundTraits.includes("crossdresser"))>> <<set _bodyWritingOptions["Love Interests"]["Whitney's Boyslut"] to "whitneys_boyslut">> <</if>> <<if ($player.vaginaExist or $player.gender_appearance is "f" or $backgroundTraits.includes("crossdresser"))>> <<set _bodyWritingOptions["Love Interests"]["Whitney's Slut"] to "whitneys_slut">> <</if>> <</if>> <<if isPossibleLoveInterest("Kylar")>> <<set _bodyWritingOptions["Love Interests"]["Kylar's Obsession"] to "kylars_obsession">> <<set _bodyWritingOptions["Love Interests"]["Love Kylar Forever"] to "love_kylar_forever">> <<set _bodyWritingOptions["Love Interests"]["Reserved for Kylar"] to "reserved_for_kylar">> <<set _bodyWritingOptions["Love Interests"]["Just Kylar"] to "just_kylar">> <</if>> <<if isPossibleLoveInterest("Eden")>> <<set _bodyWritingOptions["Love Interests"]["Eden's Companion"] to "edens_companion">> <<set _bodyWritingOptions["Love Interests"]["Hunter and Prey"] to "hunter_and_prey">> <<set _bodyWritingOptions["Love Interests"]["It's Lonely in the Woods"] to "its_lonely_in_the_woods">> <<set _bodyWritingOptions["Love Interests"]["Something is Hunting you"] to "something_is_hunting_you">> <</if>> <<if isPossibleLoveInterest("Avery")>> <<set _bodyWritingOptions["Love Interests"]["Avery's Trophy"] to "averys_trophy">> <<set _bodyWritingOptions["Love Interests"]["Endearing"] to "endearing">> <<if ($player.penisExist or $player.gender_appearance is "m" or $backgroundTraits.includes("crossdresser"))>> <<set _bodyWritingOptions["Love Interests"]["Uptown Boy"] to "uptown_boy">> <</if>> <<if ($player.vaginaExist or $player.gender_appearance is "f" or $backgroundTraits.includes("crossdresser"))>> <<set _bodyWritingOptions["Love Interests"]["Uptown Girl"] to "uptown_girl">> <</if>> <<set _bodyWritingOptions["Love Interests"]["Avery's Monopoly"] to "averys_monopoly">> <</if>> <<if isPossibleLoveInterest("Alex")>> <<set _bodyWritingOptions["Love Interests"]["Alex's Partner"] to "alexs_partner">> <<set _bodyWritingOptions["Love Interests"]["Sunrise to Sunset"] to "sunrise_to_sunset">> <<set _bodyWritingOptions["Love Interests"]["Hay Baler"] to "hay_baler">> <<if ($player.penisExist or $player.gender_appearance is "m" or $backgroundTraits.includes("crossdresser"))>> <<set _bodyWritingOptions["Love Interests"]["Cowboy"] to "cowboy">> <</if>> <<if ($player.vaginaExist or $player.gender_appearance is "f" or $backgroundTraits.includes("crossdresser"))>> <<set _bodyWritingOptions["Love Interests"]["Cowgirl"] to "cowgirl">> <</if>> <</if>> <<if isPossibleLoveInterest("Sydney")>> <<set _bodyWritingOptions["Love Interests"]["Sydney's Saviour"] to "sydneys_savior">> <<set _bodyWritingOptions["Love Interests"]["Bound to Sydney"] to "bound_to_sydney">> <<set _bodyWritingOptions["Love Interests"]["Sydney Makes Me :)"] to "sydney_makes_me_smile">> <<if C.npc.Sydney.purity gt 1>> <<set _bodyWritingOptions["Love Interests"]["Purest Love"] to "purest_love">> <<else>> <<set _bodyWritingOptions["Love Interests"]["Lusty Sinners"] to "lusty_sinners">> <</if>> <</if>> <<if isPossibleLoveInterest("Black Wolf")>> <<set _bodyWritingOptions["Love Interests"]["Black Wolf's Bitch"] to "black_wolfs_bitch">> <<set _bodyWritingOptions["Love Interests"]["All for my Alpha"] to "all_for_my_alpha">> <<if $wolfpackleader is 1>> <<set _bodyWritingOptions["Love Interests"]["Leader of the Pack"] to "leader_of_the_pack">> <</if>> <<set _bodyWritingOptions["Love Interests"]["Runs With Wolves"] to "runs_with_wolves">> <</if>> <<if isPossibleLoveInterest("Great Hawk")>> <<set _bodyWritingOptions["Love Interests"]["Great Hawk's Spouse"] to "great_hawks_spouse">> <<set _bodyWritingOptions["Love Interests"]["Soaring With Love"] to "soaring_with_love">> <<set _bodyWritingOptions["Love Interests"]["Terror's Mate"] to "terrors_mate">> <<set _bodyWritingOptions["Love Interests"]["Free Bird"] to "free_bird">> <</if>> <<if isPossibleLoveInterest("Gwylan")>> <<set _bodyWritingOptions["Love Interests"]["Witch's Ward"] to "witchs_ward">> <<set _bodyWritingOptions["Love Interests"]["Witch's Familiar"] to "witchs_familiar">> <<set _bodyWritingOptions["Love Interests"]["Gwylan's Treasure"] to "gwylans_treasure">> <<set _bodyWritingOptions["Love Interests"]["Gwylan's Apprentice"] to "gwylans_apprentice">> <<set _bodyWritingOptions["Love Interests"]["Forever Yearning"] to "forever_yearning">> <</if>> <<if $debug is 1>> <<set _bodyWritingOptions["Debug"] to setup.bodywriting>> <<set _debugBodywritingOptionsKeys to Object.keys(setup.bodywriting)>> <<link [[Wash yourself|$passage]]>> <<set $mirrorMenu to "skin">> <<wash>> <</link>> <<link [[Bind hands|$passage]]>> <<set $mirrorMenu to "skin">> <<bind>> <</link>><span class="black"> (Will destroy handheld items.)</span> <br/> <<print Object.values(setup.bodywriting).length>> known bodywriting options. <</if>> <</widget>> <<widget "bodywritingMenuLinks">> <span class="gold bold">Add Bodywriting:</span> <br> <div id="bodywritingMenuLinks"> <<set _keys to Object.keys(_bodyWritingOptions)>> <<if $bodywritingSet is undefined>> <<set $bodywritingSet to "General">> <</if>> <<for _i to 0; _i lt _keys.length; _i++>> <<capture _i _keys>> <div @id="'link-'+_keys[_i].replace(/ /g,'-')" @class="(_keys[_i] is $bodywritingSet ? 'no-numberify bodywritingSelected' : 'no-numberify bodywriting')"> <<button _keys[_i]>> <<removeclass `'#link-'+$bodywritingSet.replace(/ /g,'-')` "bodywritingSelected">> <<addclass `'#link-'+$bodywritingSet.replace(/ /g,'-')` "bodywriting">> <<set $bodywritingSet to clone(_keys[_i])>> <<addclass `'#link-'+$bodywritingSet.replace(/ /g,'-')` "bodywritingSelected">> <<replace "#bodywritingMenu">><<bodywritingMenu _args[0]>><</replace>> <</button>> </div> <</capture>> <</for>> </div> <br> <div id="bodywritingMenu" class="skinMenu no-numberify"> <<bodywritingMenu _args[0]>> </div> <div class="skinMenu"> <label data-target="options.images" data-disabledif="V.options.images===0"> <<checkbox "$options.bodywritingImages" false true autocheck>> Enable bodywriting images </label> </div> <</widget>> <<widget "bodywritingMenu">> <<if Object.keys(_bodyWritingOptions[$bodywritingSet]).length gt 0>> <<set _bodyPartOptions to {}>> <<if _args[0] isnot undefined>> <<set _bodyPartOptionsSkip to _args[0]>> <<else>> <<set _bodyPartOptionsSkip to ["back", "left_bottom", "right_bottom"]>> <</if>> <<for _label, _value range $skin>> <<if _bodyPartOptionsSkip.includes(_label)>> <<continue>> <<elseif Object.keys(_value).length is 0>> <<silently>><<bodypart _label>><</silently>> <<set _bodyPartOptions[_text_output.toUpperFirst()] to _label>> <</if>> <</for>> <<if $debug is 1>> Write <<listbox "_bodyWritingDebugSelected">> <<optionsfrom _bodyWritingOptions[$bodywritingSet]>> <</listbox>> everywhere <<link [[Confirm|$passage]]>> <<set $mirrorMenu to "skin">> <<for _part, _value range $skin>> <<add_bodywriting _part _bodyWritingDebugSelected "pen">> <</for>> <</link>> <br /> Write <<listbox "_bodyWritingDebugSelected">> <<optionsfrom _bodyWritingOptions[$bodywritingSet]>> <</listbox>> everywhere where it has custom sprites <<link [[Confirm|$passage]]>> <<set $mirrorMenu to "skin">> <<for _part, _value range $skin>> <<if _bodyWritingDebugSelected.sprites.includes(_part)>> <<add_bodywriting _part _bodyWritingDebugSelected "pen">> <</if>> <</for>> <</link>> <br /> <br /> <</if>> <<if Object.keys(_bodyPartOptions).length gt 0>> Write <<listbox "_bodyWritingSelected">> <<optionsfrom _bodyWritingOptions[$bodywritingSet]>> <</listbox>> on your <<listbox "_bodyPartSelected">> <<optionsfrom _bodyPartOptions>> <</listbox>> <<link [[Confirm|$passage]]>> <<set $mirrorMenu to "skin">> <<set $bodyWritingSelected to Object.keys(_bodyWritingOptions[$bodywritingSet])[Object.values(_bodyWritingOptions[$bodywritingSet]).indexOf(_bodyWritingSelected)]>> <<set $bodyPartSelected to _bodyPartSelected>> <<add_bodywriting _bodyPartSelected _bodyWritingSelected "pen">> <</link>> <<else>> <span class="blue">You're not sure where else you can write an advertisement.</span> <</if>> <<else>> <span class="blue">You have not unlocked any bodywriting options for this category yet.</span> <</if>> <</widget>> <<widget "hairDescription">> You check your hair in the mirror. <<if $hairtype is "default" and $fringetype is "default">> Your hair is not currently styled. Your sides are positioned <<if $hairposition is "front">>in front of<<else>>behind<</if>> your body. Your hair <<if $hairgelBottles is undefined>><<set $hairgelBottles to 0>><</if>> <<if $earsposition is "front">> <span class="gold"> is tucked behind your ears</span> <<else>> <span class="gold">hangs in front of your ears</span> <</if>> and is <<if $ruffledisable is "t">> <mouse class = "gold tooltip-small" style="border-bottom-color:white"> fixed in place. <span class="black">Your hairstyle cannot be ruined. <br> <i class="red">Selecting a new hairstyle will re-enable hair ruffling. <<print ($hairgelBottles is 0 ? "Hair gel can be acquired at the shops." : "Hair gel will need to be re-applied.")>></i></span> </mouse> <<else>> <mouse class = "gold tooltip-small" style="border-bottom-color:white"> not fixed in place. <span class="black">Certain situations may change your hair to a messier style. <br> <i class="teal">You can apply hair gel to disable hair ruffling.<<print ($hairgelBottles is 0 ? " Hair gel can be acquired at the shops." : "")>></i> </span> </mouse> <</if>> <div class="no-numberify"> <<link [[Randomise your hairstyle|$passage]]>> <<set _hairType to Object.values(_hairTypeByName)>> <<set $hairtype to _hairType[random(0,_hairType.length - 1)]>> <<set _fringeType to Object.values(_fringeTypeByName)>> <<set $fringetype to _fringeType[random(0,_fringeType.length - 1)]>> <<set $hairposition to ["front","back"][random(0,1)]>> <</link>> | <<switch $hairposition>> <<case "front">> <<link "Position sides behind body">> <<run State.setVar("$hairposition", "back")>> <<run Engine.show()>> <</link>> <<case "back">> <<link "Position sides in front of body">> <<run State.setVar("$hairposition", "front")>> <<run Engine.show()>> <</link>> <<default>> <<link "Position sides in front of body">> <<run State.setVar("$hairposition", "front")>> <<run Engine.show()>> <</link>> <</switch>> | <<switch $earsposition>> <<case "front">> <<link "Position hair in front of ears">> <<run State.setVar("$earsposition", "back")>> <<run Engine.show()>> <</link>> <<case "back">> <<link "Tuck hair behind ears">> <<run State.setVar("$earsposition", "front")>> <<run Engine.show()>> <</link>> <<default>> <<link "Tuck hair behind ears">> <<run State.setVar("$earsposition", "front")>> <<run Engine.show()>> <</link>> <</switch>> | <<switch $browsposition>> <<case "front">> <<link "Position brows behind hair">> <<run State.setVar("$browsposition", "back")>> <<run Engine.show()>> <</link>> <<case "back">> <<link "Position brows in front of hair">> <<run State.setVar("$browsposition", "front")>> <<run Engine.show()>> <</link>> <<default>> <<link "Position brows behind hair">> <<run State.setVar("$browsposition", "back")>> <<run Engine.show()>> <</link>> <</switch>> <br><br> </div> <<else>> <<if $hairtype is "default">> Currently, your fringe is in the <span class="gold">$fringetype</span> style. Your sides are left <span class="gold">natural</span> and are positioned <<if $hairposition is "front">>in front of<<else>>behind<</if>> your body. <<elseif $fringetype is "default">> Currently, your fringe is left <span class="gold">natural</span>. Your sides are in the <span class="gold">$hairtype</span> style and are positioned <<if $hairposition is "front">>in front of<<else>>behind<</if>> your body. <<else>> Currently, your fringe is in the <span class="gold">$fringetype</span> style. Your sides are in the <span class="gold">$hairtype</span> style and are positioned <<if $hairposition is "front">>in front of<<else>>behind<</if>> your body. <</if>> Your hair <<if $hairgelBottles is undefined>><<set $hairgelBottles to 0>><</if>> <<if $earsposition is "front">> <span class="gold"> is tucked behind your ears</span> <<else>> <span class="gold">hangs in front of your ears</span> <</if>> and is <<if $ruffledisable is "t">> <mouse class = "gold tooltip-small" style="border-bottom-color:white"> fixed in place. <span class="black">Your hairstyle cannot be ruined. <br> <i class="red">Selecting a new hairstyle will re-enable hair ruffling. <<print ($hairgelBottles is 0 ? "Hair gel can be acquired at the shops." : "Hair gel will need to be re-applied.")>></i></span> </mouse> <<else>> <mouse class = "gold tooltip-small" style="border-bottom-color:white"> not fixed in place. <span class="black">Certain situations may change your hair to a messier style. <br> <i class="teal">You can apply hair gel to disable hair ruffling.<<print ($hairgelBottles is 0 ? " Hair gel can be acquired at the shops." : "")>></i> </span> </mouse> <</if>> <div class="no-numberify"> <<link [[Randomise your hairstyle|$passage]]>> <<set _hairType to Object.values(_hairTypeByName)>> <<set $hairtype to _hairType[random(0,_hairType.length - 1)]>> <<set _fringeType to Object.values(_fringeTypeByName)>> <<set $fringetype to _fringeType[random(0,_fringeType.length - 1)]>> <<set $hairposition to ["front","back"][random(0,1)]>> <</link>> | <<switch $hairposition>> <<case "front">> <<link "Position sides behind body">> <<run State.setVar("$hairposition", "back")>> <<run Engine.show()>> <</link>> <<case "back">> <<link "Position sides in front of body">> <<run State.setVar("$hairposition", "front")>> <<run Engine.show()>> <</link>> <<default>> <<link "Position sides in front of body">> <<run State.setVar("$hairposition", "front")>> <<run Engine.show()>> <</link>> <</switch>> | <<switch $earsposition>> <<case "front">> <<link "Position hair in front of ears">> <<run State.setVar("$earsposition", "back")>> <<run Engine.show()>> <</link>> <<case "back">> <<link "Tuck hair behind ears">> <<run State.setVar("$earsposition", "front")>> <<run Engine.show()>> <</link>> <<default>> <<link "Tuck hair behind ears">> <<run State.setVar("$earsposition", "front")>> <<run Engine.show()>> <</link>> <</switch>> | <<switch $browsposition>> <<case "front">> <<link "Position brows behind hair">> <<run State.setVar("$browsposition", "back")>> <<run Engine.show()>> <</link>> <<case "back">> <<link "Position brows in front of hair">> <<run State.setVar("$browsposition", "front")>> <<run Engine.show()>> <</link>> <<default>> <<link "Position brows behind hair">> <<run State.setVar("$browsposition", "back")>> <<run Engine.show()>> <</link>> <</switch>> <br><br> </div> <</if>> <</widget>> <<widget "mirrorHair">> <<mirroricon>><<link "Back">><<handheldon>><<updatesidebarimg>><<replace #mirror>><<mirrorMenu>><</replace>><<numberify "#passages > .passage">><<unset $mirrorMenu>><</link>> <<shopClothingFilterSettingsDefault>> /* Due to reusing the traits filtering */ <br><br> <div id="hairDescription"> <<hairDescription>> </div> <div id="hairgelLinks"> <<hairgelLinks>> </div> <br> <<set _hairTypeByName to {}>> <<run setup.hairstyles.sides.sort((a, b) => { if (a.name === "natural") return -1; if (b.name === "natural") return 1; return a.name.localeCompare(b.name); }).forEach(style => { if (!V.shopClothingFilter.active || !V.shopClothingFilter.traits.length || style.type.find(type => V.shopClothingFilter.traits.includes(type))) { T.hairTypeByName[style.name] = style.variable; } })>> <<set _fringeTypeByName to {}>> <<run setup.hairstyles.fringe.sort((a, b) => { if (a.name === "natural") return -1; if (b.name === "natural") return 1; return a.name.localeCompare(b.name); }).forEach(style => { if (!V.shopClothingFilter.active || !V.shopClothingFilter.traits.length || style.type.find(type => V.shopClothingFilter.traits.includes(type))) { T.fringeTypeByName[style.name] = style.variable; } })>> <div id="hairContainer"> <div class="containerHeader" class="no-numberify"> <<mirrorhairdisplayLinks "hair">> </div> <<mirrorhairdisplay "$hairtype" "sides">> </div> <br><br> <</widget>> <<widget "hairgelLinks">> <div class="no-numberify"> <<link [[($showMannequins ? "Hide" : "Show") + " Mannequins"|$passage]]>><<set $showMannequins to 1 - ($showMannequins or 0)>><</link>> <mouse class="tooltip-small linkBlue">(?)<span>Disable preview images for hairstyles. <i class="red">Enabling mannequins may cause performance issues on some devices.</i></span></mouse> <<if $hairgelBottles isnot undefined and $hairgelBottles gte 1>> | <<hairdressericon "gel">> <<if $ruffledisable is "f">> <<link "Apply hair gel">><<replace #hairDescription>><<hairgelApply>><</replace>><<replace #hairgelDesc>><<hairgelDesc>><</replace>><<replace#hairgelLinks>><<hairgelLinks>><</replace>><</link>> | <</if>> <div id="hairgelDesc" style="display:inline"><<hairgelDesc>></div> <</if>> </div> <</widget>> <<widget "hairgelApply">> <<if !pcAreArmsBound("any")>> <<set $ruffledisable to "t">> <<set $hairgelBottles += -1>> <</if>> <<hairDescription>> <<if pcAreArmsBound("both")>> <span class="red">Both of your arms are bound</span>, and you find it difficult to do anything about your hair this way. <hr> <<else>> <<wearProp "hairgel">><<updatesidebarimg>> You squirt a hefty dollop of hair gel onto your hand and slick it through your hair. By the time you're finished, your hairstyle is securely in place, and the small bottle is empty. <span class="pink">If you decide to change up your hairstyle, you'll need to <<print ($hairgelBottles is 0) ? "acquire" : "apply">> more.</span> <hr> <</if>> <</widget>> <<widget "hairgelDesc">> You have <span class="gold">$hairgelBottles</span> <<pluralise $hairgelBottles "bottle">> of hair gel remaining. <</widget>> <<widget "mirrorhairdisplay">> <<if _hairCategory isnot _args[0]>> <<set _perPage to $showMannequins ? 14 : 100>> <<set _page to 1>> <</if>> <<set _hairCategory to _args[0]>> <<mirrorhairOptions _args[1]>> <div id="hairContainerElements"> <<mirrorhairdisplayElements _hairOptions>> </div> <div id="hairContainerPages" class="no-numberify"> <<mirrorhairControls _args[1]>> </div> <</widget>> <<widget "mirrorhairControls">> <<if $showMannequins>> <div class="containerFooter"> <div class="tab"> <<if _page gt 1>> <<button '<span class="fa-icon fa-left"></span> Previous'>> <<if _page gt 1>><<set _page-->><</if>> <<mirrorhairOptions _args[0]>> <<replace "#hairContainerElements">><<mirrorhairdisplayElements _hairOptions>><</replace>> <<replace "#hairContainerPages">><<mirrorhairControls _args[0]>><</replace>> <</button>> <<else>> <button class="link-internal macro-button no-numberify buttonDisabled" disabled>Previous</button> <</if>> </div> <div class="tab"> <<if _page lt _pageMax>> <<button 'Next <span class="fa-icon fa-right"></span>'>> <<if _page lt _pageMax>><<set _page++>><</if>> <<mirrorhairOptions _args[0]>> <<replace "#hairContainerElements">><<mirrorhairdisplayElements _hairOptions>><</replace>> <<replace "#hairContainerPages">><<mirrorhairControls _args[0]>><</replace>> <</button>> <</if>> </div> <div class="tab"> <div class="buttonPage"> <<button '_page/_pageMax'>> <</button>> </div> </div> </div> <</if>> <</widget>> <<widget "mirrorhairTraits">> <div id="hairContainerFilter"> <div class="tab"> <<button "<span class='fa-icon fa-check'></span> Apply">> <<set $shopClothingFilter.active = true>> <<run updateMoment()>> <</button>> <<button "<span class='fa-icon fa-reset'></span> Reset Filters">> <<shopClothingFilterReset>> <<replace "#hairContainerTraits">><<mirrorHairTraitList>><</replace>> <<run updateMoment()>> <</button>> <<button "<span class='fa-icon fa-selected'></span> Select/Deselect All">> <<run toggleAllHairTraitsFilter()>> <</button>> </div> </div> <</widget>> <<widget "mirrorhairOptions">> <<set _hairOptions to {}>> <<run setup.hairstyles[_args[0]].forEach(style => { if (!V.shopClothingFilter.active || !V.shopClothingFilter.traits.length || style.type.find(type => V.shopClothingFilter.traits.includes(type))) T.hairOptions[style.name] = style.variable; })>> <<set _pageMax to Math.ceil(Object.keys(_hairOptions).length / _perPage)>> <<run Object.keys(_hairOptions).forEach((key, index) => { if (!between(index, T.perPage * (T.page - 1), (T.perPage * T.page) - 1)) { delete T.hairOptions[key]; } })>> <</widget>> <<widget "mirrorhairdisplayLinks">> <div class="tab"> <span @class="_args[0] is 'hair' ? 'tab-selected' : 'tab'"> <<button "Sides">> <<replace "#hairContainer">> <div class="containerHeader" class="no-numberify"> <<mirrorhairdisplayLinks "hair">> </div> <<mirrorhairdisplay "$hairtype" "sides">> <</replace>> <</button>> </span> </div> <div class="tab"> <span @class="_args[0] is 'fringe' ? 'tab-selected' : ''"> <<button "Fringe">> <<replace "#hairContainer">> <div class="containerHeader" class="no-numberify"> <<mirrorhairdisplayLinks "fringe">> </div> <<mirrorhairdisplay "$fringetype" "fringe">> <</replace>> <</button>> </span> </div> <div class="tab"> <span @class="_args[0] is 'style' ? 'tab-selected' : ''"> <<button "Save/Load">> <<replace "#hairContainer">> <div class="containerHeader" class="no-numberify"> <<mirrorhairdisplayLinks "style">> </div> <<mirrorhairdisplaySave>> <</replace>> <</button>> <div id="hairContainerSave" class="no-numberify"> </div> </span> </div> <div class="tab"> <span @class="_args[0] is 'filter' ? 'tab-selected' : ''"> <<button "Filters">> <<replace "#hairContainer">> <div class="containerHeader" class="no-numberify"> <<mirrorhairdisplayLinks "filter">> </div> <<mirrorhairdisplayFilter>> <</replace>> <</button>> </span> </div> <</widget>> <<widget "mirrorhairdisplayElements">> <div id="hairGridSides" class="no-numberify hairGrid"> <<for _label, _hairName range _args[0]>> <<capture _hairCategory, _hairName>> <div @id="'hairGrid-' + _hairCategory.replace('$','') + '-' + _hairName.replace(/ /g,'')" @class="'gridItem' + (_hairName is V[_hairCategory.replace('$','')] ? ' selectedHair' : '')" @onclick="`wikifier('mirrorhairdisplayClick', '${T.hairCategory.replace('$','')}', '${T.hairName.replace(/ /g,'_')}');`"> <<if $options.images is 1 and $showMannequins is 1>> <<selectmodel "main">> <<set _modeloptions.tanningEnabled to false>> <<set _modeloptions.skin_type = Skin.color.natural>> <<set _modeloptions.skin_tone = Skin.color.tan>> <<set _modeloptions.freckles = $player.freckles == true and $makeup.concealer != 1>> <<set _modeloptions.mouth to 'neutral'>> <<set _modeloptions.facevariant = $facevariant>> <<set _modeloptions.left_eye = $makeup.eyelenses.left != 0 ? $makeup.eyelenses.left : $leftEyeColour>> <<set _modeloptions.right_eye = $makeup.eyelenses.right != 0 ? $makeup.eyelenses.right : $rightEyeColour>> <<set _modeloptions.hair_colour = $haircolour>> <<set _modeloptions.hair_fringe_colour = $hairfringecolour>> <<set _modeloptions.hair_fringe_colour_gradient = $hairFringeColourGradient>> <<set _modeloptions.hair_fringe_colour_style = $hairFringeColourStyle>> <<set _modeloptions.hair_colour_gradient = $hairColourGradient>> <<set _modeloptions.hair_colour_style = $hairColourStyle>> <<set _modeloptions.hair_sides_length to $hairlengthstage>> <<set _modeloptions.hair_sides_position to $hairposition>> <<set _modeloptions.hair_fringe_length to $fringelengthstage>> <<if _hairCategory is "$hairtype">> <<set _modeloptions.hair_sides_type to _hairName>> <<set _modeloptions.hair_fringe_type to $fringetype>> <<else>> <<set _modeloptions.hair_fringe_type to _hairName>> <<set _modeloptions.hair_sides_type to $hairtype>> <</if>> <<set _modeloptions.ears_position to $earsposition>> <<rendermodel "hairstyleMannequin">> <br> <</if>> <<print toTitleCase(_label)>> </div> <</capture>> <</for>> </div> <</widget>> <<widget "mirrorhairdisplayClick">> <<if _args[0] and _args[1]>> <<if Object.values(_hairOptions).includes(V[_args[0]])>> <<set _id to "#hairGrid-" + _args[0] + "-" + V[_args[0]].replace(/ /g,"")>> <<removeclass _id "selectedHair">> <</if>> <<set V[_args[0]] to _args[1].replace(/_/g," ")>> <<set _id2 to "#hairGrid-" + _args[0] + "-" + _args[1].replace(/_/g,"")>> <<set $ruffledisable to "f">> <<addclass _id2 "selectedHair">> <<updatesidebarimg>> <<replace #hairDescription>><<hairDescription>><</replace>> <<replace #hairgelLinks>><<hairgelLinks>><</replace>> <</if>> <</widget>> <<widget "mirrorhairdisplaySave">> <div id="hairContainerHairstyle"> <<mirrorHairSaveOptions>> </div> <div id="hairContainerSave" class="no-numberify"> <<mirrorHairSave>> </div> <</widget>> <<widget "mirrorHairSaveOptions">> <<if !$savedHairStyles>> <<set $savedHairStyles to { Default: { hairtype:$hairtype, fringetype:$fringetype, hairposition:$hairposition } }>> <</if>> <div class="no-numberify saveHair"> <span class="bold">Select a hairstyle:</span> <hr style="border:none;margin:.25em 0"> <<set _savedHairStylesKeys to Object.keys($savedHairStyles)>> <<if _savedHairStylesKeys.length gt 0>> <<listbox '_selectedSavedHairStyle'>> <<optionsfrom _savedHairStylesKeys>> <</listbox>> <</if>> <br> </div> <div class="no-numberify saveHair"> <span class="bold" style="margin:.25em 0">Create a new hairstyle:</span> <hr style="border:none;margin:.25em 0"> <label>Name: <<textbox "_hairStyleName" "">></label> <mouse class="tooltip linkBlue"> (?)<span>Saves your current hairstyle, so it may be worn later. Duplicate names will overwrite existing styles.</span></mouse> <span id="textbox-error"></span> </div> <</widget>> <<widget "mirrorhairdisplayFilter">> <div id="hairContainerTraits" class="no-numberify"> <<mirrorHairTraitList>> </div> <div id="hairContainerFilter"> <<mirrorhairTraits>> </div> <</widget>> <<widget "mirrorHairTraitList">> <<set _shopLocation to "mirrorhair">> <div class="hairGridTraits"> <div class="traitCategory"> <<set _textureTraits to ["curly", "sleek", "wavy", "textured"]>> <span class="gold" style="padding-left:5px">Texture:</span> <<for _trait range _textureTraits.sort()>> <<silently>><< _trait>><</silently>> <<set _traitObj to setup.shopDetails[_trait]>> <div class="filters-trait-row"> <label> <<set _checked = $shopClothingFilter.traits.includes(_trait) ? 'checked="checked"' : ''>> <<clothingtrait _trait 'display_normal'>> <<print '<input type="checkbox" @id="_trait" @value="_trait" ' + _checked + ' onclick="window.shopClothingFilterToggleTrait(this.value)">'>> <<if !_traitObj.desc>> <<print _traitObj.name>> <<else>> <mouse class = "tooltip-small"> <<print _traitObj.name>> <span class="black"><<print _traitObj.desc>></span> </mouse> <</if>> </label> </div> <</for>> </div> <div class="traitCategory"> <span class="gold" style="padding-left:5px">Style:</span> <<set _styleTraits to ["braids", "buns", "pigtails", "ponytail"]>> <<for _trait range _styleTraits.sort()>> <<silently>><< _trait>><</silently>> <<set _traitObj to setup.shopDetails[_trait]>> <div class="filters-trait-row"> <label> <<set _checked = $shopClothingFilter.traits.includes(_trait) ? 'checked="checked"' : ''>> <<clothingtrait _trait 'display_normal'>> <<print '<input type="checkbox" @id="_trait" @value="_trait" ' + _checked + ' onclick="window.shopClothingFilterToggleTrait(this.value)">'>> <<if !_traitObj.desc>> <<print _traitObj.name>> <<else>> <mouse class = "tooltip-small"> <<print _traitObj.name>> <span class="black"><<print _traitObj.desc>></span> </mouse> <</if>> </label> </div> <</for>> </div> <div class="traitCategory"> <span class="gold" style="padding-left:5px">Other</span> <<set _otherTraits to ["loose","short"]>> <<for _trait range _otherTraits.sort()>> <<silently>><< _trait>><</silently>> <<set _traitObj to setup.shopDetails[_trait]>> <div class="filters-trait-row"> <label> <<set _checked = $shopClothingFilter.traits.includes(_trait) ? 'checked="checked"' : ''>> <<clothingtrait _trait 'display_normal'>> <<print '<input type="checkbox" @id="_trait" @value="_trait" ' + _checked + ' onclick="window.shopClothingFilterToggleTrait(this.value)">'>> <<if !_traitObj.desc>> <<print _traitObj.name>> <<else>> <mouse class = "tooltip-small"> <<print _traitObj.name>> <span class="black"><<print _traitObj.desc>></span> </mouse> <</if>> </label> </div> <</for>> </div> </div> <</widget>> <<widget "mirrorHairSave">> <div class="hairContainerSave"> <<if _savedHairStylesKeys.length gt 0>> <div class="tab"> <<button '<span class="fa-icon fa-check"></span> Wear'>> <<set $hairtype to $savedHairStyles[_selectedSavedHairStyle].hairtype>> <<set $fringetype to $savedHairStyles[_selectedSavedHairStyle].fringetype>> <<set $hairposition to $savedHairStyles[_selectedSavedHairStyle].hairposition>> <<set $ruffledisable to "f">> <<updatesidebarimg>> <</button>> <<button '<span class="fa-icon fa-overwrite"></span> Overwrite'>> <<set $savedHairStyles[_selectedSavedHairStyle].hairtype to $hairtype>> <<set $savedHairStyles[_selectedSavedHairStyle].fringetype to $fringetype>> <<set $savedHairStyles[_selectedSavedHairStyle].hairposition to $hairposition>> <<updatesidebarimg>> <</button>> <<button '<span class="fa-icon fa-delete"></span> Delete'>> <<if _selectedSavedHairStyle isnot "Default">> <<run $outfit.forEach((o) => { if(o.hairStyle === T.selectedSavedHairStyle){ o.hairStyle = undefined; } })>> <<run delete $savedHairStyles[_selectedSavedHairStyle]>> <<updatesidebarimg>> <<replace #hairContainerHairstyle>><<mirrorHairSaveOptions>><</replace>> <</if>> <</button>> <<button '<span class="fa-icon fa-save"></span> Save'>> <<if _hairStyleName is "">> <<replace "#textbox-error">><br> <span class="red">Please enter a name.</span><</replace>> <<else>> <<replace "#textbox-error">><</replace>> <<set _hairStyleName to _hairStyleName.replace(/[^a-zA-Z\u4e00-\u9fa50-9_-]+/g,"").substring(0,30)>> <<set $savedHairStyles[_hairStyleName] to { hairtype:$hairtype, fringetype:$fringetype, hairposition:$hairposition }>> <<replace #hairContainerHairstyle>><<mirrorHairSaveOptions>><</replace>> <</if>> <</button>> </div> <<else>> <div class="tab"> <<button '<span class="fa-icon fa-save"></span> Save'>> <<if _hairStyleName is "">> <<replace "#textbox-error">><br> <span class="red">Please enter a name.</span><</replace>> <<else>> <<replace "#textbox-error">><</replace>> <<set _hairStyleName to _hairStyleName.replace(/[^a-zA-Z\u4e00-\u9fa50-9_-]+/g,"").substring(0,30)>> <<set $savedHairStyles[_hairStyleName] to { hairtype:$hairtype, fringetype:$fringetype, hairposition:$hairposition }>> <<replace #hairContainerHairstyle>><<mirrorHairSaveOptions>><</replace>> <</if>> <</button>> </div> <</if>> </div> <</widget>> <<widget "mirrorMakeupPart">> <<set _itemType = _args[0]>> <<set _items = $makeup.owned[_itemType].filter(x => x.count > 0)>> <<if $makeup.owned[_itemType].length == 0>> <<cosmeticsicon _itemType>> You don't own any _itemType. <<elseif _items.length == 0>> You ran out of _itemType. <br> <</if>> <<if _items.length != 0 or $makeup[_itemType] != 0>> <<cosmeticsicon _itemType>> <span class="gold bold"><<= _itemType.toUpperFirst()>>:</span> <<if $makeup[_itemType] != 0>> <<capture _itemType>> <span class="no-numberify"> <<link "Remove">> <<if _itemType is "eyelenses">> <!-- A safety check for $makeup.eyelenses --> <<set $makeup.eyelenses to { left: 0, right: 0 }>> <<else>> <<set $makeup[_itemType] to 0>> <</if>> <<if _itemType == 'mascara'>> <<set $makeup.mascara_running = 0>> <</if>> <<run Engine.show()>> <</link>> </span> <</capture>> <</if>> <div class="makeupList no-numberify capitalize"> <<for _i, _item range _items>> <span @class="$makeup[_itemType] == _item.colour ? 'makeupWorn' : 'makeupItem'"> <<capture _item, _itemType>> <<set _name to `_item.colour <span @class="_itemType+'-'+_item.colour.replace(/ /g, '-')"><span class="colour-sample"></span></span> × _item.count`>> <<button _name>> <<handheldon>> <<if _itemType is "lipstick">> <<set _colour to _item.colour is "dark red" ? "jewel red" : _item.colour is "orange" ? "tangerine" : _item.colour>> <<wearProp _itemType _colour>> <<else>> <<wearProp _itemType>> <</if>> <<if $makeup[_itemType] !== _item.colour>> <<set $makeup[_itemType] = _item.colour>> <<set _item.count -= 1>> <<if _itemType == 'mascara'>> <<set $makeup.mascara_running = 0>> <</if>> <<run Engine.show()>> <</if>> <</button>> <</capture>> </span> <</for>> </div> <</if>> <</widget>> <<widget "mirrorMakeup">> <<mirroricon>><<link "Back">><<replace #mirror>><<mirrorMenu>><</replace>><<numberify "#passages > .passage">><<unset $mirrorMenu>><</link>> <br><br> <div class="settingsGrid"> <div class="settingsHeader">Makeup</div> <<set _makeup to []>> <<if $makeup.lipstick isnot 0>> <<run _makeup.push($makeup.lipstick + " lipstick")>> <</if>> <<if $makeup.eyeshadow isnot 0>> <<run _makeup.push($makeup.eyeshadow + " eyeshadow")>> <</if>> <<if $makeup.blusher isnot 0>> <<run _makeup.push($makeup.blusher + " blusher")>> <</if>> <<if $makeup.mascara isnot 0>> <<run _makeup.push($makeup.mascara + " mascara")>> <</if>> <<if $makeup.concealer is 1>> <<run _makeup.push("concealer")>> <</if>> <<set _makeupNames to ["lipstick","eyeshadow","mascara","blusher","browscolour","eyelenses"]>> <<set _makeupData to ["lipstick","eyeshadow","mascara","blusher","hairdye","eyelenses"]>> <<set _ownsMakeup to _makeupData.some(item => $makeup.owned[item].some(colour => colour.count > 0))>> <<set _removableMakeup to _makeup.length gt 1 or (_makeup.length is 1 and _makeup[0] isnot "concealer")>> <div class="settingsToggleItemWide"> <<if _makeup.length gt 0>> You are wearing <<=_makeup.reduce( (a, b, i, array) => a + ( i < array.length - 1 ? ', ' : (array.length > 2 ? ', and ' : ' and ') ) + b)>>. <<else>> You are not wearing any makeup. <</if>> <<if _ownsMakeup or _makeup.length gt 0 or $player.freckles == true>> <br><br> Makeup: <</if>> <<if _removableMakeup>> <<link [[Remove all|$passage]]>> <<set $makeup.lipstick to 0>> <<set $makeup.eyeshadow to 0>> <<set $makeup.mascara to 0>> <<set $makeup.blusher to 0>> <<set $makeup.eyelenses to { left: 0, right: 0 }>> <<set $makeup.mascara_running to 0>> <</link>> <<if _makeup.includes("concealer")>> <mouse class="tooltip linkBlue">(?)<span>Will not remove concealer.</span></mouse> <</if>> | <</if>> <<if _ownsMakeup>> <<link [[Randomise|$passage]]>> <<for _i to 0; _i lt _makeupNames.length; _i++>> <<set _ownedMakeup to $makeup.owned[_makeupData[_i]]>> <<if _makeupNames[_i] is "eyelenses">> <<set _rng to random(0, _ownedMakeup.length)>> <<set _lens to _rng is _ownedMakeup.length ? 0 : _ownedMakeup[_rng]>> <<set $makeup.eyelenses to { left: _lens, right: _lens }>> <<else>> <<set _rngset to []>> <<for _label, _value range _ownedMakeup>> <<if _value.count gt 0>> <<run _rngset.push(_label)>> <</if>> <</for>> <<run _rngset.push(_ownedMakeup.length)>> <<set _rng to _rngset[random(0, _rngset.length - 1)]>> <<if _rng is _ownedMakeup.length and _makeupNames[_i] is "browscolour">> /*Do Nothing*/ <<elseif _rng is _ownedMakeup.length>> <<set $makeup[_makeupNames[_i]] to 0>> <<elseif _ownedMakeup[_rng].count gt 0 and $makeup[_makeupNames[_i]] isnot _ownedMakeup[_rng].colour>> <<set $makeup[_makeupNames[_i]] to _ownedMakeup[_rng].colour>> <<set _ownedMakeup[_rng].count-->> <</if>> <</if>> <</for>> <</link>> <</if>> /* CONCEALER */ <<if $player.freckles == true>> <<if _ownsMakeup>>|<</if>> <<if $makeup.concealer == 0>> <<link "Hide freckles with concealer">> <<set $makeup.concealer = 1>> <<run Engine.show()>> <</link>> <<else>> <<link "Remove concealer">> <<set $makeup.concealer = 0>> <<run Engine.show()>> <</link>> <</if>> <</if>> <<if $makeup.presets is undefined>> <<set $makeup.presets to {}>> <</if>> <<if Object.keys($makeup.presets).length gt 0>> <br> Presets: <<for _label, _value range $makeup.presets>> <<capture _label>> <<link _label>> <<replace "#makeupPresets">> <<makeupPresets _label>> <</replace>> <</link>> <<if _label != Object.keys(V.makeup.presets).slice(-1)[0]>>|<</if>> <</capture>> <</for>> <div id="makeupPresets"></div> <</if>> </div> <div class="settingsToggleItem"> <<mirrorMakeupPart "lipstick">> </div> <div class="settingsToggleItem"> <<mirrorMakeupPart "eyeshadow">> </div> <div class="settingsToggleItem"> <<mirrorMakeupPart "mascara">> </div> <div class="settingsToggleItem"> <<mirrorMakeupPart "blusher">> </div> <div class="settingsToggleItemWide"> <span class="gold bold">New Makeup Preset</span> <br> Saves the makeup you currently have equipped. <br> <<textbox "_newPresetName" "">> <br> <<link [[Save preset|$passage]]>> <<set _newPresetName to _newPresetName.replace(/[^a-zA-Z\u4e00-\u9fa5 0-9]+/g,"")>> <<set $makeup.presets[_newPresetName] to { lipstick:clone($makeup.lipstick), eyeshadow:clone($makeup.eyeshadow), mascara:clone($makeup.mascara), blusher:clone($makeup.blusher), browscolour:clone($makeup.browscolour), eyelenses:clone($makeup.eyelenses), }>> <</link>> </div> <<if !$simpleMirror>> <div class="settingsToggleItemWide"> <<cosmeticsicon "contacts">> <<if $makeup.owned.eyelenses.length == 0 and $makeup.owned.custom_eyelenses.length == 0>> You don't own any contact lenses. <<else>> <span class="gold bold">Contact Lenses:</span> <<if $makeup.eyelenses.left != 0 || $makeup.eyelenses.right != 0>> <span class="no-numberify"> <<link "Remove">> <<set $makeup.eyelenses = { left: 0, right: 0 }>> <<run Engine.show()>> <</link>> </span> <br> You are wearing <<if $makeup.eyelenses.left is $makeup.eyelenses.right>> <<= $makeup.eyelenses.left>> contacts. <<elseif $makeup.eyelenses.left != 0 and $makeup.eyelenses.right != 0>> <<= $makeup.eyelenses.left>> contacts in your left eye and <<= $makeup.eyelenses.right>> contacts in your right eye. <<else>> <<set _lens to $makeup.eyelenses.left != 0 ? $makeup.eyelenses.left : $makeup.eyelenses.right>> <<set _eye to $makeup.eyelenses.left != 0 ? "left" : "right">> <<= _lens>> contacts in your <<= _eye>> eye. Your <<= _eye is "left" ? "right" : "left">> eye is your natural <<= _eye is "left" ? $rightEyeColour : $leftEyeColour>> colour. <</if>> <<else>> <br> You are not wearing any contact lenses. <</if>> <br><br> Put contacts in: <label><<radiobutton "_contact_eye_selected" "Both" checked>> Both eyes</label> | <label><<radiobutton "_contact_eye_selected" "Left eye">> Left eye</label> | <label><<radiobutton "_contact_eye_selected" "Right eye">> Right eye</label> <br> <div class="makeupList no-numberify capitalize"> <<for _i, _colour range $makeup.owned.eyelenses>> <<switch _contact_eye_selected>> <<default>><<set _eye to "left">> <</switch>> <span class="makeupItem"> <<capture _colour>> <<set _contactName to `_colour <span @class="'eye-'+_colour.replace(/ /g, '-')"><span class="colour-sample bgcolour-eyes left-"></span></span>`>> <<button _contactName>> <<handheldon 1>> <<if _contact_eye_selected == "Both">> <<set $makeup.eyelenses = { left: _colour, right: _colour }>> <<elseif _contact_eye_selected == "Left eye">> <<set $makeup.eyelenses.left = _colour>> <<elseif _contact_eye_selected == "Right eye">> <<set $makeup.eyelenses.right = _colour>> <</if>> <<run Engine.show()>> <</button>> <</capture>> </span> <</for>> /* I wish a fiery death on whoever made the custom contacts */ <<for _i = 0; _i < $makeup.owned.custom_eyelenses.length; _i++>> <<run _colour = $makeup.owned.custom_eyelenses[_i]>> <<for _e = 0; _e < $custom_eyecolours.length; _e++>> <<if $custom_eyecolours[_e].variable == $makeup.owned.custom_eyelenses[_i]>> <<set _background_colour to clone($custom_eyecolours[_e].canvasfilter.blend)>> <</if>> <</for>> <span class="makeupItem"> <<capture _colour _background_colour>> <<set _colourSpaced to window.colorNameTranslate(_colour, "spaced name")>> <<set _customName to `_colourSpaced [C] <span class="eye-custom"><span @style="'background:'+_background_colour" class="colour-sample"></span></span>`>> <<button _customName>> <<if _contact_eye_selected == "Both">> <<set $makeup.eyelenses = { left:_colour, right:_colour }>> <<elseif _contact_eye_selected == "Left eye">> <<set $makeup.eyelenses.left = _colour>> <<elseif _contact_eye_selected == "Right eye">> <<set $makeup.eyelenses.right = _colour>> <</if>> <<run Engine.show()>> <</button>> <</capture>> </span> <</for>> </div> <</if>> </div> /* WHY IS THIS IN THE BEDROOM AND NOT THE BATHROOM WITH THE PUBIC HAIR DYE? WHY IS IT SAVED WITH MAKEUP PRESETS? */ <div class="settingsToggleItemWide"> <<cosmeticsicon "dyes">> <<set _dyes = $makeup.owned.hairdye.filter(x => x.count > 0)>> <<if _dyes.length == 0>> You have no hair dye to dye your eyebrows with. <<else>> <span class="gold bold">Eyebrow Colour:</span> <br> <<if $mirror_eyebrow_dye is true>> <<handheldon 1>> <<wearProp "hairdye">> <<unset $mirror_eyebrow_dye>> You open up the box with <<= setup.colours.hair_map[$browsDyeOption].name>> dye and prepare the mixture. Using a small brush, you carefully apply the dye to your eyebrows. You wait several minutes for the dye to set and hope you didn't mess up anything. <<set $makeup.owned.hairdye.find(x => x.colour == $browsDyeOption).count -= 1>><<set $makeup.browscolour = $browsDyeOption>><<unset $browsDyeOption>> <hr> <</if>> <<if $makeup.browscolour != 0>> Your brows are coloured with <<hairmapcolourtext $makeup.browscolour>> hair dye. Visit a hairdresser to restore them to their natural <<hairmapcolourtext $naturalhaircolour>> colour. <<else>> Your brows are their natural <<hairmapcolourtext $naturalhaircolour>> colour. <</if>> <br><br> Dying your eyebrows will take <span class="gold">0:15</span> minutes. <br> <div class="makeupList no-numberify capitalize"> <<for _i to 0; _i lt _dyes.length; _i++>> <<if $makeup.browscolour is _dyes[_i].colour or $naturalhaircolour is _dyes[_i].colour>> <<continue>> <</if>> <<set _displayName = (_dyes[_i].colour in setup.colours.hair_map ? setup.colours.hair_map[_dyes[_i].colour].name : _dyes[_i].colour.charAt(0).toUpperCase() + _dyes[_i].colour.slice(1)) + " ×" + _dyes[_i].count + " ">> <<set _dyeName to _displayName + `<span @class="'hair-' + _dyes[_i].colour.replace(/ /g, '-')"><span class="colour-sample bgcolour-hair colour-hair"></span></span>`>> <<capture _dyes, _i>> <<button _dyeName>> <<set $mirror_eyebrow_dye to true>><<pass 15>> <<set $browsDyeOption to _dyes[_i].colour>> <<run Engine.show()>> <</button>> <</capture>> <</for>> </div> <</if>> </div> <</if>> </div> <</widget>> <<widget "makeupPresets">> <<set _presetChosen to $makeup.presets[_args[0]]>> <hr> Preset: <<print _args[0]>> <br> <<for $_label, $_value range _presetChosen>> <<switch $_label>> <<case "browscolour">> Eyebrow Dye: <<makeupPresetsItem "hairdye" $_value>> <<case "lipstick">> Lipstick: <<makeupPresetsItem $_label $_value>> <<case "eyeshadow">> Eyeshadow: <<makeupPresetsItem $_label $_value>> <<case "mascara">> Mascara: <<makeupPresetsItem $_label $_value>> <<case "blusher">> Blusher: <<makeupPresetsItem $_label $_value>> <<case "eyelenses">> Contact Lenses: <<makeupPresetsItem $_label $_value>> <</switch>> <br> <</for>> <br> <<link [[Apply preset makeup|$passage]]>> <<for _makeupName range _makeupNames>> <<set _preset to _presetChosen[_makeupName]>> <<if _makeupName is "eyelenses">> <<if _preset.left is 0 and _preset.right is 0>> <<set $makeup.eyelenses to { left:0, right:0 }>> <<elseif $makeup.owned.eyelenses.includes(_preset.left) and $makeup.owned.eyelenses.includes(_preset.right)>> <<set $makeup.eyelenses to _preset>> <<elseif $makeup.owned.custom_eyelenses.includes(_preset.left) and $makeup.owned.custom_eyelenses.includes(_preset.right)>> <<set $makeup.eyelenses to _preset>> <</if>> <<elseif _preset is 0 and _makeupName is "hairdye">> /*Do Nothing*/ <<elseif _preset is 0>> <<set $makeup[_makeupName] to 0>> <<else>> <<set _makeupName2 to (_makeupName is "browscolour" ? "hairdye" : _makeupName)>> <<set _target to $makeup.owned[_makeupName2].find(invMakeup => invMakeup.colour is _preset and invMakeup.colour isnot $makeup[_makeupName] and invMakeup.count gt 0)>> <<if _target>> <<set $makeup[_makeupName] to clone(_target.colour)>> <<set _target.count-->> <</if>> <</if>> <</for>> <</link>> | <<link [[Delete preset|$passage]]>> <<run delete $makeup.presets[_args[0]]>> <</link>> <</widget>> <<widget "makeupPresetsItem">> <<if _args[0] isnot undefined and _args[1] isnot undefined>> <<if _args[1] is 0 and _args[0] is "hairdye">> <span class="green">Natural</span> <<elseif _args[1] is 0>> None <<else>> <<if _args[0] is "eyelenses">> <<if _args[1].left == 0 && _args[1].right == 0>> None <<elseif _args[1].left == _args[1].right>> <span class="green"><<print _args[1].left.toUpperFirst()>> (Owned)</span> <<else>> <<if _args[1].left == 0>> <<set _args[1].left to "None">> <</if>> <<if _args[1].right == 0>> <<set _args[1].right to "None">> <</if>> <span class="green"><<print _args[1].left.toUpperFirst() + " (Left), " + _args[1].right.toUpperFirst()+" (Right)">></span> <</if>> <<else>> <<for $_i to 0; $_i lt $makeup.owned[_args[0]].length; $_i++>> <<if $makeup.owned[_args[0]][$_i].colour is _args[1]>> <<if $makeup.owned[_args[0]][$_i].count gt 0>> <span class="green"><<print _args[1].toUpperFirst()>> (<<print "×"+$makeup.owned[_args[0]][$_i].count>>)</span> <<else>> <span class="red"><<print _args[1].toUpperFirst()>> (× 0)</span> <</if>> <<break>> <</if>> <</for>> <</if>> <</if>> <</if>> <</widget>> <<widget "browsColourPreview">> <span id="browsColourPreview"> <<if $browsDyeOption isnot "noChange">> <span @class="'hair-' + $browsDyeOption.replace(/ /g, '-')"> <span class="colour-sample bgcolour-hair colour-hair"></span> </span> <br><<link [[Dye eyebrows (0:15)|$passage]]>><<set $mirror_eyebrow_dye to true>><<pass 15>><</link>> <</if>> </span> <</widget>> <<widget "mirrorTransformation">> <<mirroricon>><<link "Back">><<replace #mirror>><<mirrorMenu>><</replace>><<numberify "#passages > .passage">><<unset $mirrorMenu>><</link>> <<set _angel to $transformationParts.angel>> <<set _fallen to $transformationParts.fallenAngel>> <<set _demon to $transformationParts.demon>> <<set _cat to $transformationParts.cat>> <<set _cow to $transformationParts.cow>> <<set _wolf to $transformationParts.wolf>> <<set _bird to $transformationParts.bird>> <<set _fox to $transformationParts.fox>> <<set _traits to $transformationParts.traits>> <<set _divine to ["angel", "fallenangel", "demon"].find(tf => V[tf] > 1)>> <<set _animal to ["cat", "cow", "wolfgirl", "harpy", "fox"].find(tf => V[tf] > 1)>> <div class="settingsGrid"> <div class="settingsHeader">Transformations</div> <div class="settingsToggleItemWide"> <<if $hypnosis_traits.peace gte 1 and $settings.hypnosisEnabled>> Hiding parts of your inner self lowers your attractiveness and allure. <span class="forest-green">You are at peace with your inner self, and will incur no penalty.</span> <<else>> Hiding parts of your Inner Self lowers your attractiveness and allure, but will also slowly increase your Trauma over time. <<if ["wolfgirl", "harpy", "fox"].includes(_animal)>>Extra bodyhair (pubes, pits) can be hidden without affecting your attractiveness or incurring Trauma.<</if>> If your Trauma gets too high, you will be unable to hide. <</if>> </div> <<if _divine>> <div @class="_animal ? 'settingsToggleItem' : 'settingsToggleItemWide'"> <<tficon _divine>> <span class="gold bold">Divine: <<= _divine is "fallenangel" ? "Fallen Angel" : _divine.toUpperFirst()>></span> <<if $angel gt 1>> <<if _angel.halo isnot "disabled">> <div class='tf-part-item'> Halo: <<listbox "_angel.halo" autoselect>> <<option "Hide" "hidden">> <<option "Default" "default">> <<option "Celestial" "celestial">> <<option "Traditional" "traditional">> <</listbox>> </div> <</if>> <<if _angel.wings isnot "disabled">> <div class='tf-part-item'> Wings: <<listbox "_angel.wings" autoselect>> <<option "Hide" "hidden">> <<option "Default" "default">> <<option "Cherub" "cherub">> <<option "Classic" "classic">> <</listbox>> </div> <</if>> <<elseif $fallenangel gt 1>> <<if _fallen.halo isnot "disabled">> <div class='tf-part-item'> Halo: <<if $fallenangel gte 4>> <<listbox "_fallen.halo" autoselect>> <<option "Hide" "hidden">> <<option "Default" "default">> <<option "Celestial" "celestial">> <<option "Dark Celestial" "celestial-black">> <<option "Blue Celestial" "celestial-fallenplus">> <<option "Traditional" "traditional">> <</listbox>> <<else>> <<listbox "_fallen.halo" autoselect>> <<option "Hide" "hidden">> <<option "Default" "default">> <<option "Celestial" "celestial">> <<option "Dark Celestial" "celestial-black">> <<option "Traditional" "traditional">> <</listbox>> <</if>> </div> <</if>> <<if _fallen.wings isnot "disabled">> <div class='tf-part-item'> Wings: <<if $fallenangel gte 4>> <<listbox "_fallen.wings" autoselect>> <<option "Hide" "hidden">> <<option "Default" "default">> <<option "Torn" "torn">> <<option "Cherub" "cherub">> <<option "Dark Cherub" "cherub-black">> <<option "Feathered Cherub" "cherub-fallenplus">> <<option "Feathered" "fallenplus">> <<option "Classic Feathered" "classicfallenplus">> <<option "Classic" "classic">> <</listbox>> <<else>> <<listbox "_fallen.wings" autoselect>> <<option "Hide" "hidden">> <<option "Default" "default">> <<option "Torn" "torn">> <<option "Cherub" "cherub">> <<option "Dark Cherub" "cherub-black">> <<option "Classic" "classic">> <</listbox>> <</if>> </div> <</if>> <<elseif $demon gt 1>> <<if _demon.horns isnot "disabled">> <div class='tf-part-item'> Horns: <<listbox "_demon.horns" autoselect>> <<option "Hide" "hidden">> <<option "Default" "default">> <<option "Classic" "classic">> <<option "Succubus" "succubus">> <</listbox>> <<gencolourselector "_demon.horns_colour">> </div> <</if>> <<if _demon.wings isnot "disabled">> <div class='tf-part-item'> Wings: <<listbox "_demon.wings" autoselect>> <<option "Hide" "hidden">> <<option "Default" "default">> <<option "Imp" "imp">> <<option "Succubus" "succubus">> <</listbox>> <<gencolourselector "_demon.wings_colour">> </div> <</if>> <<if _demon.tail isnot "disabled">> <div class='tf-part-item'> Tail: <<listbox "_demon.tail" autoselect>> <<option "Hide" "hidden">> <<option "Default" "default">> <<option "Imp" "imp">> <<option "Classic" "classic">> <<option "Succubus" "succubus">> <</listbox>> <<gencolourselector "_demon.tail_colour">> </div> <</if>> <<if $demon gte 4>> <div class='tf-part-item'> <<if hasSexStat("exhibitionism", 6)>> Flaunting when exposed: <<listbox "_traits.flaunting" autoselect>> <<option "Hide" "hidden">> <<option "Default" "default">> <</listbox>> <<ind>> <<else>> <span class="black">Flaunting (requires higher exhibitionism):</span> <<listbox "_traits.flaunting" autoselect>> <<option "Hide" "hidden">> <</listbox>> <<ind>> <</if>> </div> <</if>> <</if>> </div> <</if>> <<if _animal>> <div @class="_divine ? 'settingsToggleItem' : 'settingsToggleItemWide'"> <span class="gold bold"><<tficon _animal>>Animal: <<= _animal is "harpy" ? "Bird" : _animal is "wolfgirl" ? "Wolf" : _animal.toUpperFirst()>></span> <<if $cat gt 1>> <<if _cat.ears isnot "disabled">> <div class='tf-part-item'> Ears: <<listbox "_cat.ears" autoselect>> <<option "Hide" "hidden">> <<option "Default" "default">> <</listbox>> </div> <</if>> <<if _cat.tail isnot "disabled">> <div class='tf-part-item'> Tail: <<listbox "_cat.tail" autoselect>> <<option "Hide" "hidden">> <<option "Default" "default">> <</listbox>> </div> <</if>> <<if _cat.heterochromia isnot "disabled">> <div class='tf-part-item'> Heterochromia: <<listbox "_cat.heterochromia" autoselect>> <<option "Hide" "hidden">> <<option "Default" "default">> <</listbox>> </div> <</if>> <</if>> <<if $cow gt 1>> <<if _cow.horns isnot "disabled">> <div class='tf-part-item'> Horns: <<listbox "_cow.horns" autoselect>> <<option "Hide" "hidden">> <<option "Default" "default">> <</listbox>> </div> <</if>> <<if _cow.ears isnot "disabled">> <div class='tf-part-item'> Ears: <<listbox "_cow.ears" autoselect>> <<option "Hide" "hidden">> <<option "Default" "default">> <<option "Spotted black" "spotted black">> <<option "Spotted brown" "spotted brown">> <</listbox>> </div> <</if>> <<if _cow.tail isnot "disabled">> <div class='tf-part-item'> Tail: <<listbox "_cow.tail" autoselect>> <<option "Hide" "hidden">> <<option "Default" "default">> <<option "Black" "black">> <</listbox>> </div> <</if>> <</if>> <<if $wolfgirl gt 1>> <<if _wolf.ears isnot "disabled">> <div class='tf-part-item'> Ears: <<listbox "_wolf.ears" autoselect>> <<option "Hide" "hidden">> <<option "Default" "default">> <<option "Feral" "feral">> <</listbox>> </div> <</if>> <<if _wolf.tail isnot "disabled">> <div class='tf-part-item'> Tail: <<listbox "_wolf.tail" autoselect>> <<option "Hide" "hidden">> <<option "Default" "default">> <<option "Feral" "feral">> <</listbox>> </div> <</if>> <<if _wolf.cheeks isnot "disabled">> <div class='tf-part-item'> Cheeks: <<listbox "_wolf.cheeks" autoselect>> <<option "Hide" "hidden">> <<option "Feral" "feral">> <</listbox>> </div> <</if>> <<if _wolf.pubes isnot "disabled" and $settings.pubicHairEnabled>> <div class='tf-part-item'> Pubes: <<listbox "_wolf.pubes" autoselect>> <<option "Hide" "hidden">> <<option "Default" "default">> <</listbox>> </div> <</if>> <<if _wolf.pits isnot "disabled" and $settings.pubicHairEnabled>> <div class='tf-part-item'> Pits: <<listbox "_wolf.pits" autoselect>> <<option "Hide" "hidden">> <<option "Default" "default">> <</listbox>> </div> <</if>> <</if>> <<if $harpy gt 1>> <<if _bird.eyes isnot "disabled">> <div class='tf-part-item'> Eyes: <<listbox "_bird.eyes" autoselect>> <<option "Hide" "hidden">> <<option "Default" "default">> <</listbox>> </div> <</if>> <<if _bird.malar isnot "disabled">> <div class='tf-part-item'> Malar Stripes: <<listbox "_bird.malar" autoselect>> <<option "Hide" "hidden">> <<option "Default" "default">> <</listbox>> </div> <</if>> <<if _bird.plumage isnot "disabled">> <div class='tf-part-item'> Plumage: <<listbox "_bird.plumage" autoselect>> <<option "Hide" "hidden">> <<option "Default" "default">> <</listbox>> </div> <</if>> <<if _bird.tail isnot "disabled">> <div class='tf-part-item'> Tail: <<listbox "_bird.tail" autoselect>> <<option "Hide" "hidden">> <<option "Default" "default">> <</listbox>> </div> <</if>> <<if _bird.wings isnot "disabled">> <div class='tf-part-item'> Wings: <<listbox "_bird.wings" autoselect>> <<option "Hide" "hidden">> <<option "Default" "default">> <</listbox>> </div> <</if>> <<if _bird.pubes isnot "disabled" and $settings.pubicHairEnabled>> <div class='tf-part-item'> Pubes: <<listbox "_bird.pubes" autoselect>> <<option "Hide" "hidden">> <<option "Default" "default">> <</listbox>> </div> <</if>> <</if>> <<if $fox gt 1>> <<if _fox.ears isnot "disabled">> <div class='tf-part-item'> Ears: <<listbox "_fox.ears" autoselect>> <<option "Hide" "hidden">> <<option "Default" "default">> <</listbox>> </div> <</if>> <<if _fox.tail isnot "disabled">> <div class='tf-part-item'> Tail: <<listbox "_fox.tail" autoselect>> <<option "Hide" "hidden">> <<option "Default" "default">> <</listbox>> </div> <</if>> <<if _fox.cheeks isnot "disabled">> <div class='tf-part-item'> Cheeks: <<listbox "_fox.cheeks" autoselect>> <<option "Hide" "hidden">> <<option "Default" "default">> <</listbox>> </div> <</if>> <br> <</if>> <<set $_chimeraOptions to { "demoncat_tail" : !["disabled", "hidden"].includesAny(_demon.tail, _cat.tail), "demoncow_tail" : !["disabled", "hidden"].includesAny(_demon.tail, _cow.tail), "demonwolf_tail" : !["disabled", "hidden"].includesAny(_demon.tail, _wolf.tail), "demonfox_tail" : !["disabled", "hidden"].includesAny(_demon.tail, _fox.tail), "demonfox_ears" : !["disabled", "hidden"].includesAny(_fox.ears) && V.demon >= 6, "demonharpy_wings" : !["disabled", "hidden"].includesAny(_demon.wings, _bird.wings), "angelharpy_wings" : !["disabled", "hidden"].includesAny(_angel.wings, _bird.wings), "fallenharpy_wings" : !["disabled", "hidden"].includesAny(_fallen.wings, _bird.wings), }>> <<set $_chimeraEnabled to Object.values($_chimeraOptions).some(o => o) ? "" : " hide">> <div @class="'chimera' + $_chimeraEnabled"> <<if _divine>><<tficon _divine>><</if>> <span class="gold bold">Chimera</span> <<if $_chimeraOptions.demoncat_tail>> /* Using demon cat chimera tail. */ <div class='tf-part-item'> Demon cat tail: <<listbox "$chimera.demoncat.tail" autoselect>> <<option "Show" true>> <<option "Hide" false>> <</listbox>> </div> <</if>> <<if $_chimeraOptions.demoncow_tail>> /* Using demon cow chimera tail. */ <div class='tf-part-item'> Demon cow tail: <<listbox "$chimera.demoncow.tail" autoselect>> <<option "Show" true>> <<option "Hide" false>> <</listbox>> </div> <</if>> <<if $_chimeraOptions.demonwolf_tail>> /* Using demon wolf chimera tail. */ <div class='tf-part-item'> Demon wolf tail: <<listbox "$chimera.demonwolf.tail" autoselect>> <<option "Show" true>> <<option "Hide" false>> <</listbox>> </div> <</if>> <<if $_chimeraOptions.demonfox_tail>> /* Using demon fox chimera tail. */ <div class='tf-part-item'> Demon fox tail: <<listbox "$chimera.demonfox.tail" autoselect>> <<option "Show" true>> <<option "Hide" false>> <</listbox>> </div> <</if>> <<if $_chimeraOptions.demonfox_ears>> /* Using demon fox chimera ears. */ <div class='tf-part-item'> Demon fox ears: <<listbox "$chimera.demonfox.ears" autoselect>> <<option "Show" true>> <<option "Hide" false>> <</listbox>> </div> <</if>> <<if $_chimeraOptions.demonharpy_wings>> /* Using demon harpy chimera wings. */ <div class='tf-part-item'> Demon harpy wings: <<listbox "$chimera.demonharpy.wings" autoselect>> <<option "Show" true>> <<option "Hide" false>> <</listbox>> </div> <</if>> <<if $_chimeraOptions.angelharpy_wings>> /* Using angel harpy chimera wings. */ <div class='tf-part-item'> Angel harpy wings: <<listbox "$chimera.angelharpy.wings" autoselect>> <<option "Show" true>> <<option "Hide" false>> <</listbox>> </div> <</if>> <<if $_chimeraOptions.fallenharpy_wings>> /* Using fallen angel harpy chimera wings. */ <div class='tf-part-item'> Fallen harpy wings: <<listbox "$chimera.fallenharpy.wings" autoselect>> <<option "Show" true>> <<option "Hide" false>> <</listbox>> </div> <</if>> </div> </div> <</if>> <<if !["demon", "cow"].every(transform => T[transform].horns is "disabled") || !["demon", "cat", "cow", "wolf", "bird", "fox"].every(transform => T[transform].tail is "disabled") || !["angel", "fallen", "demon", "bird"].every(transform => T[transform].wings is "disabled")>> <div class="settingsToggleItemWide no-numberify"> <span class="gold bold">Layer Adjustments:</span> <br> <<if !["demon", "cow"].every(transform => T[transform].horns is "disabled")>> <<switch $hornslayer>> <<case "front">> <<link "Prioritise headwear over horns">> <<run State.setVar("$hornslayer", "back")>> <<run Engine.show()>> <<updatesidebarimg true>> <</link>> <<case "back">> <<link "Prioritise horns over headwear">> <<run State.setVar("$hornslayer", "front")>> <<run Engine.show()>> <<updatesidebarimg true>> <</link>> <<default>> <<link "Prioritise horns over headwear">> <<run State.setVar("$hornslayer", "front")>> <<run Engine.show()>> <<updatesidebarimg true>> <</link>> <</switch>> <br> <</if>> <<if !["demon", "cat", "cow", "wolf", "bird", "fox"].every(transform => T[transform].tail is "disabled")>> <<switch $taillayer>> <<case "front">> <<link "Push tail back">> <<run State.setVar("$taillayer", "back")>> <<run Engine.show()>> <<updatesidebarimg true>> <</link>> <<case "back">> <<link "Move tail forward">> <<run State.setVar("$taillayer", "front")>> <<run Engine.show()>> <<updatesidebarimg true>> <</link>> <<default>> <<link "Push tail back">> <<run State.setVar("$taillayer", "back")>> <<run Engine.show()>> <<updatesidebarimg true>> <</link>> <</switch>> <br> <</if>> <<if !["angel", "fallen", "demon", "bird"].every(transform => T[transform].wings is "disabled")>> <<switch $wingslayer>> <<case "front">> <<link "Push wings behind">> <<run State.setVar("$wingslayer", "back")>> <<run Engine.show()>> <<updatesidebarimg true>> <</link>> <<case "back">> <<link "Move wings forward">> <<run State.setVar("$wingslayer", "front")>> <<run Engine.show()>> <<updatesidebarimg true>> <</link>> <<default>> <<link "Push wings behind">> <<run State.setVar("$wingslayer", "back")>> <<run Engine.show()>> <<updatesidebarimg true>> <</link>> <</switch>> <br> <</if>> </div> <</if>> <<if _isMenuEnabled>> <details class="expandMenu"> <summary class="expandMenu">Custom Colours</summary> <div class="menuWarning"> You haven't chosen any transformation parts! Select the checkboxes for the parts you'd like to recolour. </div> <div class="menuContent hidden"> <<set _options to ['ffffff', 'ff0000', '00ff00', '0000ff', '590099', '000000']>> <<gencoloursquares _options>> <<gencolourpicker>> </div> </details> <</if>> </div> <!-- Attach an event to every listbox item to update the PC on the sidebar. --> <<script>> jQuery('.passage').on('change', 'select.macro-listbox', function (e) { if (V.transformationParts.cat.heterochromia === "hidden") { Wikifier.wikifyEval('<<catHeterochromiaTF "hide">>'); } else if (V.cat >= 7 && V.cat <= 10) { Wikifier.wikifyEval('<<catHeterochromiaTF `$cat - 7`>>') }; Wikifier.wikifyEval('<<updatesidebarimg true>>'); }); <</script>> <</widget>><<widget "mobileStats">> <<if Number.isFinite($pain) and ($options.sidebarStats is "all" or $pain gt 50)>> <<mobileStatsColor "pain">> <div @class="'stat ' + _mobileColor"> <mouse class="tooltip-centertop">P<span>Pain: <<print $pain.toFixed(2)>></span></mouse> </div> <</if>> <<if Number.isFinite($arousal) and ($options.sidebarStats is "all" or $arousal gt $arousalmax / 2)>> <<mobileStatsColor "arousal">> <div @class="'stat ' + _mobileColor"> <mouse class="tooltip-centertop">Ar<span>Arousal: <<print $arousal.toFixed(2)>></span></mouse> </div> <</if>> <<if Number.isFinite($tiredness) and ($options.sidebarStats is "all" or $tiredness gt C.tiredness.max / 2)>> <<mobileStatsColor "fatigue">> <div @class="'stat ' + _mobileColor"> <mouse class="tooltip-centertop">F<span>Fatigue: <<print $tiredness.toFixed(2)>></span></mouse> </div> <</if>> <<if Number.isFinite($stress) and ($options.sidebarStats is "all" or $stress gt $stressmax / 2)>> <<mobileStatsColor "stress">> <div @class="'stat ' + _mobileColor"> <mouse class="tooltip-centertop">S<span>Stress: <<print $stress.toFixed(2)>></span></mouse> </div> <</if>> <<if Number.isFinite($innocencestate) and $innocencestate is 1 and ($options.sidebarStats is "all" or $awareness gt -100)>> <<mobileStatsColor "innocence">> <div @class="'stat ' + _mobileColor"> <mouse class="tooltip-centertop">I<span>Innocence: <<print Math.abs($awareness).toFixed(2)>></span></mouse> </div> <<elseif Number.isFinite($trauma) and ($options.sidebarStats is "all" or $trauma gt $traumamax / 2)>> <<mobileStatsColor "trauma">> <div @class="'stat ' + _mobileColor"> <mouse class="tooltip-centertop">T<span>Trauma: <<print $trauma.toFixed(2)>></span></mouse> </div> <</if>> <<if Number.isFinite($control) and ($options.sidebarStats is "all" or $control gt $controlmax / 2)>> <<mobileStatsColor "control">> <div @class="'stat ' + _mobileColor"> <mouse class="tooltip-centertop">C<span>Control: <<print $control.toFixed(2)>></span></mouse> </div> <</if>> <<mobileStatsColor "allure">> <<if Number.isFinite($allure)>> <div @class="'stat ' + _mobileColor"> <mouse class="tooltip-centertop">Al<span>Allure: <<print $allure.toFixed(2)>></span></mouse> </div> <</if>> <<if Number.isFinite($drunk) and $drunk gt 0>> <<mobileStatsColor "drunk">> <div @class="'stat ' + _mobileColor"> <mouse class="tooltip-centertop">Dk<span>Drunk: <<print $drunk.toFixed(2)>></span></mouse> </div> <</if>> <<if Number.isFinite($drugged) and $drugged gt 0>> <<mobileStatsColor "drugged">> <div @class="'stat ' + _mobileColor"> <mouse class="tooltip-centertop">Dg<span>Drugged: <<print $drugged.toFixed(2)>></span></mouse> </div> <</if>> <<if Number.isFinite($hallucinogen) and $hallucinogen gt 0>> <<mobileStatsColor "hallucinogen">> <div @class="'stat ' + _mobileColor"> <mouse class="tooltip-centertop">H<span>Hallucinogen: <<print $hallucinogen.toFixed(2)>></span></mouse> </div> <</if>> <</widget>> <<widget "mobileStatsTime">> <<set _hour to $options.timestyle === "ampm" ? ((Time.hour + 11) % 12) + 1 : Time.hour>> <div class="stat time"> <<print _hour.toString().padStart(2, "0")>> <br> <span class="vertical">:</span> <br> <<print Time.minute.toString().padStart(2, "0")>> <<if $options.timestyle === "ampm">> <br> <<print Time.hour >= 12 ? "pm" : "am">> <</if>> </div> <</widget>> <<widget "mobileStatsColor">> <<switch _args[0]>> <<case "pain">> <<mobileStatsColorSet `($pain gte 100 and $willpowerpain is 0 ? $pain : Math.clamp($pain, 0, 99))` 100>> <<case "arousal">> <<mobileStatsColorSet `Math.clamp($arousal, 0, $arousalmax)` $arousalmax>> <<case "fatigue">> <<mobileStatsColorSet `Math.clamp($tiredness, 0, C.tiredness.max)` `C.tiredness.max`>> <<case "stress">> <<mobileStatsColorSet `Math.clamp($stress, 0, $stressmax)` $stressmax>> <<case "innocence">> <<mobileStatsColorSetIverted `Math.clamp($awareness, 0, -200)` -200>> <<case "trauma">> <<mobileStatsColorSet `Math.clamp($trauma, 0, $traumamax)` $traumamax>> <<case "control">> <<mobileStatsColorSetIverted `Math.clamp($control, 0, $controlmax)` $controlmax>> <<case "allure">> <<mobileStatsColorAllure>> <<case "drunk">> <<mobileStatsColorSet `Math.clamp($drunk, 50, 500)` 500>> <<case "drugged">> <<mobileStatsColorSet `Math.clamp($drugged, 50, 500)` 500>> <<case "hallucinogen">> <<mobileStatsColorSet `Math.clamp($hallucinogen, 50, 500)` 500>> <</switch>> <</widget>> <<widget "mobileStatsColorSet">> <<if _args[0] is 0>> <<set _mobileColor to "green">> <<else>> <<set _percent=Math.floor((_args[0]/_args[1])*10)>> <<switch _percent>> <<case 8 9>> <<set _mobileColor to "pink">> <<case 6 7>> <<set _mobileColor to "purple">> <<case 4 5>> <<set _mobileColor to "blue">> <<case 2 3>> <<set _mobileColor to "lblue">> <<case 0 1>> <<set _mobileColor to "teal">> <<default>> <<set _mobileColor to "red">> <</switch>> <</if>> <</widget>> <<widget "mobileStatsColorSetIverted">> <<if _args[0] is 0>> <<set _mobileColor to "red">> <<else>> <<set _percent=Math.floor((_args[0]/_args[1])*10)>> <<switch _percent>> <<case 8 9>> <<set _mobileColor to "teal">> <<case 6 7>> <<set _mobileColor to "lblue">> <<case 4 5>> <<set _mobileColor to "blue">> <<case 2 3>> <<set _mobileColor to "purple">> <<case 0 1>> <<set _mobileColor to "pink">> <<default>> <<set _mobileColor to "green">> <</switch>> <</if>> <</widget>> <<widget "mobileStatsColorAllure">> <<if $allure gte (6000 * $settings.allureModifier)>> <<set _mobileColor to "red">> <<else>> <<switch Math.floor($allure / $settings.allureModifier / 1000)>> <<case 3>> <<set _mobileColor to "purple">> <<case 2>> <<set _mobileColor to "blue">> <<case 1>> <<if $allure / $settings.allureModifier gte 1500>> <<set _mobileColor to "lblue">> <<else>> <<set _mobileColor to "teal">> <</if>> <<case 0>> <<set _mobileColor to "green">> <<default>> <<set _mobileColor to "pink">> <</switch>> <</if>> <</widget>><<widget "init_names">> <<set $NPC_names_m to [ "Oliver", "Noah", "George", "Arthur", "Freddie", "Leo", "Theo", "Oscar", "Charlie", "Harry", "Michael", "Christopher", "Matthew", "Joshua", "Jacob", "Nicholas", "Andrew", "Daniel", "Tyler", "Joseph", "James", "David", "Robert", "Jack", "Richard", "Paul", "Mark", "Thomas", "Adam", "Jason", "Connor", "Jake", "John", "Brian", "William", "Ben", "Kevin", "Eric", "Jeffrey", "Jamie", "Louis", "Ryan", "Mark", "Joe", "Stephen", "Ian", "Austin", "Kyle", "Zach", "Patrick" ]>> <<set $NPC_names_f to [ "Olivia", "Amelia", "Isla", "Ava", "Mia", "Grace", "Freya", "Lily", "Sophia", "Ivy", "Jessica", "Ashley", "Emily", "Sarah", "Samantha", "Amanda", "Brittany", "Elizabeth", "Taylor", "Megan", "Laura", "Gemma", "Emma", "Rebecca", "Claire", "Victoria", "Rachel", "Amy", "Jennifer", "Nicola", "Katie", "Lisa", "Julie", "Melissa", "Michelle", "Kim", "Angela", "Heather", "Stephanie", "Nicole", "Christina", "Susan", "Karen", "Jacqueline", "Deborah", "Tracey", "Jane", "Helen", "Diane", "Sharon" ]>> <</widget>><<widget "endnpc">> /* We properly change how Named NPCs are ended. * The way we want to do this is: if an argument is passed (the argument being the Named NPC's name) we clearnpc the specific NPC in question. * If no argument is passed, we clear all the Named NPCs. */ <<if _args[0]>> <<set _passargs to _args[0]>> <<set _leindex to $npc.indexOf(_passargs)>> <<set C.npc[_passargs].trust += ($enemytrust / 100)>> <<for _temp to 0; _temp lt $NPCList.length; _temp++>> <<if $NPCList[_temp].fullDescription is _passargs>> <<set _ii to clone(_temp)>> <<break>> <</if>> <</for>> <!-- In case someone calls the wrong NPC, or doesn't use upper case --> <<if _ii is undefined>> <span class="red">Error: <<print _passargs>> is not active. Aborting.</span> <<else>> <<set $NPCList[_ii].lefthand to "none">> <<set $NPCList[_ii].righthand to "none">> <<set $NPCList[_ii].penis to "none">> <<set $NPCList[_ii].vagina to "none">> <<set $NPCList[_ii].mouth to "none">> <<set $NPCList[_ii].chest to "none">> <<set $NPCList[_ii].gender to 0>> <<set $NPCList[_ii].pronoun to 0>> <<set $NPCList[_ii].description to 0>> <<set $NPCList[_ii].fullDescription to 0>> <<set $NPCList[_ii].insecurity to 0>> <<set $NPCList[_ii].lactation to 0>> <<set $NPCList[_ii].intro to 0>> <<set $NPCList[_ii].speechanusescape to 0>> <<set $NPCList[_ii].speechpenisescape to 0>> <<set $NPCList[_ii].speechvaginaescape to 0>> <<set $NPCList[_ii].type to 0>> <<set $NPCList[_ii].stance to 0>> <<set $NPCList[_ii].monster to 0>> /*multiple orgasms code needs work <<set $NPCList[_ii].maxOrgasms to 1>> <<set $NPCList[_ii].orgasms to 0>> */ <<set $NPCList[_ii].paid to 0>> <<if _ii < 1>> <<set $NPCList[_ii].breastsize to 3>> <<set $NPCList[_ii].breastsdesc to "breasts">> <<set $NPCList[_ii].breastdesc to "breast">> <<set $NPCList[_ii].penisdesc to "penis">> <<set $NPCList[_ii].penissize to 2>> <<set $NPCList[_ii].health to 200>> <<set $NPCList[_ii].healthmax to 200>> <<else>> <<set $NPCList[_ii].breastsize to 0>> <<set $NPCList[_ii].breastsdesc to 0>> <<set $NPCList[_ii].breastdesc to 0>> <<set $NPCList[_ii].penisdesc to 0>> <<set $NPCList[_ii].penissize to 0>> <<set $NPCList[_ii].health to 0>> <</if>> <<set $enemyno -= 1>> <<set $enemynomax -= 1>> <<if $endeventerror is undefined>> <<run EventSystem.pop(_ii)>> <</if>> <<if $enemyno is 0>> <<set $pronoun to 0>> <<if $endeventerror is undefined>> <<run EventSystem.clear()>> <</if>> <</if>> <<set $npc.splice(_leindex, 1)>> <<set $npcnum.splice(_leindex, 1)>> <<set $npcrow.splice(_leindex, 1)>> <</if>> <<unset _temp>> <<unset _leindex>> <<else>> <!-- For each and every named NPC defined, we increase their trust. --> <<for _temp to 0; _temp lt $npc.length; _temp++>> <<set _nam to clone($npc[_temp])>> <<set C.npc[_nam].trust += ($enemytrust / 100)>> <</for>> <<clearnpc>> <<unset _temp>> <</if>> <</widget>> <!-- Named NPC aka NNPC notes --> <!-- $NPCNameList.indexOf("Eden") returns the index value of Eden array, allowing name-friendly calls --> <!-- To call NNPC Eden, use <<npc Eden>>. To put them away, use <<endnpc>>. --> /*Gender neutral names for future reference Aiden Akira Alex Alexis Ariel Armani Ashanti Ashton Aspen Aubrey August Blair Blake Brogan Brooklyn Bryce Cameron Carson Casey Chris Courtney Dana Delaney Devon Dominique Drew Dylan Easton Elia Elliot Esme Evan Farai Faris Ferris Finley Flynn Frankie Genesis Hayden Hollis Hudson Ira Ivory Jamie Jayden Jean Jeryn Jesse Joey Jun Justice Keegan Kendall Kennedy Kerry Kim Kirby Kit Kris Kyrie Lashawn Lee Lesley Lincoln Linden Mackenzie Maddox Madison Mel Michael Nakia Nasim Noah Noor Nyx Odell Orion Palmer Paris Payson Peyton Phoenix Raz Reagan Rebel Rei Ren Rey Riley Roan Rotem Ryan Shannon Sharon Shaw Shay Shiloh Spencer Sydney Taylor Teagan Toby Tracy Tyne Willow Wren Wynne Yael Yannick Zain Zane Zephyr Zia Zohar */ <<widget "initnpcskin">> <<for _i to 0; _i lt $NPCName.length; _i++>> <<initnpcskinsingle _i _args[0]>> <</for>> <</widget>> <<widget "initnpcskinsingle">> <<set _i to _args[0]>> <<if !$NPCName[_i].skincolour or $NPCName[_i].skincolour is "none" or _args[1] is "skincolour">> <<if random(0, 99) lte $settings.darkSkinChance>> <<set $NPCName[_i].skincolour to "black">> <<else>> <<set $NPCName[_i].skincolour to "white">> <</if>> <</if>> <</widget>> <<widget "initnpcgender">> <<for _i to 0; _i lt $NPCName.length; _i++>> <<initnpcgendersingle _i _args[0]>> <</for>> <</widget>> <<widget "initnpcgendersingle">> <<set _i to _args[0]>> <!-- Set Pronoun --> <<if !$NPCName[_i].pronoun or $NPCName[_i].pronoun is "none" or _args[1] is "genders">> <<if $passage is "Start">> <<if $player.sex is "m">> <<set _override to "m">> <<elseif $player.sex is "h">> <<if $player.gender_body is "m" or ($player.gender_body is "a" and $player.breastsize lte 3)>> <<set _override to "m">> <<else>> <!-- if $player.gender_body is "f" or ($player.gender_body is "a" and $player.breastsize gt 3)) --> <<set _override to "f">> <</if>> <<else>> <!-- if $player.sex is "f" --> <<set _override to "f">> <</if>> <<if $background is "crossdresser">> <<set _override to (_override is "m" ? "f" : "m")>> <</if>> <</if>> <<if ($NPCName[_i].type is "human" and maleChance(_override) lt random(1, 100)) or ($NPCName[_i].type isnot "human" and beastMaleChance(_override) lt random(1, 100))>> <<set $NPCName[_i].pronoun to "f">> <<else>> <<set $NPCName[_i].pronoun to "m">> <</if>> <</if>> <!-- Set Gender --> <<if $NPCName[_i].pregnancy?.type>> <<set $NPCName[_i].gender to "f">> <<elseif !$NPCName[_i].gender or $NPCName[_i].gender is "none" or _args[1] is "genders">> <<if $NPCName[_i].pronoun is "m">> <<if random(0, 99) gte $settings.maleNPCVaginaChance>> <<set $NPCName[_i].gender to "m">> <<else>> <<set $NPCName[_i].gender to "f">> <</if>> <<elseif $NPCName[_i].pronoun is "f">> <<if random(0, 99) gte $settings.femaleNPCPenisChance>> <<set $NPCName[_i].gender to "f">> <<else>> <<set $NPCName[_i].gender to "m">> <</if>> <</if>> <</if>> <<if $NPCName[_i].nam is "Ivory Wraith">> <<set $NPCName[_i].pronoun to "i">> <</if>> <!-- Set Genital Existence --> <<if $NPCName[_i].type isnot "human">> <<set $NPCName[_i].penis to ($NPCName[_i].gender !== "f" ? 0 : "none")>> <<set $NPCName[_i].vagina to ($NPCName[_i].gender !== "m" ? 0 : "none")>> <<else>> <<set $NPCName[_i].penis to ($NPCName[_i].gender !== "f" ? "clothed" : "none")>> <<set $NPCName[_i].vagina to ($NPCName[_i].gender !== "m" ? "clothed" : "none")>> <</if>> <!-- Set breast defaults--> <<set _b_mod_lower to Math.clamp($settings.breastModifier, 0, 12)>> <<set _b_mod_upper to Math.clamp($settings.breastModifier + 12, 0, 12)>> <!-- can't use breastsize, since that would either break the numberslider or make one of the sizes always be randomised, but can use breastdesc not being changed from 0 as a substitute --> <<if $NPCName[_i].breastdesc is 0 or _args[1] is "breasts">> <<if $NPCName[_i].pronoun is "m">> <<set $NPCName[_i].breastsize to 0>> <<else>> <<set $NPCName[_i].breastsize to random(_b_mod_lower, _b_mod_upper)>> <</if>> <</if>> <<if $NPCName[_i].breastsize gt 0>> <<set _brdes to ["nipple","budding","tiny","small","pert","modest","full","large","ample","massive","huge","gigantic","enormous"]>> <<set $NPCName[_i].breastdesc to _brdes[$NPCName[_i].breastsize]+" breast">> <<else>> <<set $NPCName[_i].breastdesc to "nipple">> <</if>> <<set $NPCName[_i].breastsdesc to $NPCName[_i].breastdesc + "s">> <!-- Set pp to defaults--> /* New way to set upper and lower bounds. * This method makes use of all other slider positions, but does nothing when slider is between -1 and 1, * for a total of 15 unique positions vs the current method's 9. (max would be 17) * Changing the penis_mod slider to range from -7 to 7 would work to make every slider position unique here, but potentially affects unnamed npc generation. */ /* <<set _p_mod_upper to 8>><<set _p_mod_lower to 1>> <<if $settings.penisModifier gt 0>> <<set _p_mod_lower += $settings.penisModifier - 1>> <<elseif $settings.penisModifier lt 0>> <<set _p_mod_upper += $settings.penisModifier + 1>> <</if>> alternative way to write that: <<set _p_mod_lower to ($settings.penisModifier > 0 ? $settings.penisModifier : 1)>> <<set _p_mod_upper to ($settings.penisModifier < 0 ? 9 + $settings.penisModifier : 8)>> */ <<if $settings.penisModifier is 8>>/*Clumsy way to get average penis size setting working for NNPCs.*/ <<set _p_mod_upper to 8>><<set _p_mod_lower to 8>> <<elseif $settings.penisModifier gte 6>> <<set _p_mod_upper to 8>><<set _p_mod_lower to 7>> <<elseif $settings.penisModifier gte 4>> <<set _p_mod_upper to 8>><<set _p_mod_lower to 5>> <<elseif $settings.penisModifier gte 2>> <<set _p_mod_upper to 8>><<set _p_mod_lower to 3>> <<elseif $settings.penisModifier gte 0>> <<set _p_mod_upper to 8>><<set _p_mod_lower to 1>> <<elseif $settings.penisModifier gte -2>> <<set _p_mod_upper to 7>><<set _p_mod_lower to 1>> <<elseif $settings.penisModifier gte -4>> <<set _p_mod_upper to 5>><<set _p_mod_lower to 1>> <<elseif $settings.penisModifier gte -6>> <<set _p_mod_upper to 3>><<set _p_mod_lower to 1>> <<else>> <<set _p_mod_upper to 1>><<set _p_mod_lower to 1>> <</if>> <<if $NPCName[_i].penissize is 0 or _args[1] is "penis">> <<if $NPCName[_i].gender is "f">> <<set $NPCName[_i].penissize to 0>> <<set $NPCName[_i].penisdesc to "none">> <<else>> <<switch random(_p_mod_lower, _p_mod_upper)>> <<case 8>> <<set $NPCName[_i].penisdesc to either("massive cock","huge cock","humongous cock","immense cock","gigantic cock","enormous cock")>> <<set $NPCName[_i].penissize to 4>> <<case 5 6 7>> <<set $NPCName[_i].penisdesc to either("thick cock","hefty cock","big cock","large cock","veiny cock","meaty cock")>> <<set $NPCName[_i].penissize to 3>> <<case 2 3 4>> <<set $NPCName[_i].penisdesc to "penis">> <<set $NPCName[_i].penissize to 2>> <<default>> <<set $NPCName[_i].penisdesc to either("tiny penis","pathetic cock","little penis","small penis","mini penis","micro penis")>> <<set $NPCName[_i].penissize to 1>> <</switch>> <</if>> <</if>> <!-- Set pp to size in case PC selected it--> <<if $NPCName[_i].penissize isnot 0>> <<switch $NPCName[_i].penissize>> <<case 4>> <<set $NPCName[_i].penisdesc to either("massive cock","huge cock","humongous cock","immense cock","gigantic cock","enormous cock")>> <<case 3>> <<set $NPCName[_i].penisdesc to either("thick cock","hefty cock","big cock","large cock","veiny cock","meaty cock")>> <<case 1>> <<set $NPCName[_i].penisdesc to either("tiny penis","pathetic cock","little penis","small penis","mini penis","micro penis")>> <<default>> <<set $NPCName[_i].penisdesc to "penis">> <</switch>> <</if>> <<switch $NPCName[_i].nam>> <<case "Jordan">> <<set $NPCName[_i].title to ($NPCName[_i].pronoun is "m" ? "priest" : "priestess")>> <<case "Leighton">> <<set $NPCName[_i].title to ($NPCName[_i].pronoun is "m" ? "headmaster" : "headmistress")>> <<case "Eden">> <<set $NPCName[_i].title to ($NPCName[_i].pronoun is "m" ? "hunter" : "huntress")>> <<case "Avery">> <<if $avery_fate isnot "ascended">><<set $NPCName[_i].title to ($NPCName[_i].pronoun is "m" ? "businessman" : "businesswoman")>><</if>> <</switch>> <<generatePronouns $NPCName[_i]>> <</widget>> <<widget "initnpc">> <<set _nam to _args[0]>> <<set _i to $NPCNameList.indexOf(_nam)>> <<if $NPCName[_i].init is 0>> <!-- This prevents double-init from wiping variables --> <<set $NPCName[_i].init to 1>> <<set $NPCName[_i].trust to 0>> <<set $NPCName[_i].love to 0>> <<set $NPCName[_i].dom to 0>> <<set $NPCName[_i].lust to 0>> <<set $NPCName[_i].trauma to 0>> <<set $NPCName[_i].rage to 0>> <<set $NPCName[_i].state to "active">> <<set $NPCName[_i].purity to 0>> <<set $NPCName[_i].corruption to 0>> <<set $NPCName[_i].chastity to {penis:"", vagina:"", anus:""}>> <<set $NPCName[_i].name_known to 1>> <<if !$NPCName[_i].skincolour>> <<if random(1, 100) lte $settings.darkSkinChance>> <<set $NPCName[_i].skincolour to "black">> <<else>> <<set $NPCName[_i].skincolour to "white">> <</if>> <</if>> <<generatePronouns $NPCName[_i]>> <<initNNPCClothes _nam>> <<initNNPCstrapon $NPCName[_i]>> <!-- Special Cases NNPC Variables, Introductions, Adjustments --> <<switch _nam>> <<case Kylar>> <<set C.npc.Kylar.state to 0>> <<case Robin>> <<set $robinSeen to []>> <<set $NPCName[_i].cdquest to 0>> <<case River>> <<if $NPCName[_i].pronoun is "m">> //River teaches maths and housekeeping at the local school. His short brown hair is flecked with grey and his piercing blue eyes scrutinise his surroundings. Students tend to be well-behaved in his class.// <<else>> //River teaches maths and housekeeping at the local school. Her long brown hair is flecked with grey and her piercing blue eyes scrutinise her surroundings. Students tend to be well-behaved in her class.// <</if>> <<case Leighton>> <<if $NPCName[_i].pronoun is "m">> <<set $NPCName[_i].title to "headmaster">> //Leighton is the headmaster of the local school. He has green eyes and well-kept greying black hair. Tall and stately, he has a firm attitude towards the students at his school.// <<else>> <<set $NPCName[_i].title to "headmistress">> //Leighton is the headmistress of the local school. She has green eyes and greying black hair, held behind her head in a bun. Tall and stately, she has a firm attitude towards the students at her school.// <</if>> <<case Mason>> <<if $NPCName[_i].pronoun is "m">> //Mason is the swimming teacher at the local school. He's the youngest teacher, only a few years older than some of the students. His toned body is naturally shown off during class, but if he notices the way he's leered at, he gives no indication.// <<else>> //Mason is the swimming teacher at the local school. She's the youngest teacher, only a few years older than some of the students. Her toned body is naturally shown off during class, but if she notices the way she's leered at, she gives no indication.// <</if>> <<set $NPCName[_i].chastityKeyCarried to 0>> /* Mason is carrying the key to unlock Winter's Chastity belt. 1 is carried, 2 player knows it is carried */ <<set $NPCName[_i].chastityRemoved to 0>> /* Number of chastity devices Mason has removed */ <<set $NPCName[_i].chastityRemovalDeclined to 0>> /* Whether you've declined Mason's offer to remove it (prompts more passive checking). Resets when a device is removed */ <<case Winter>> <<if $NPCName[_i].pronoun is "m">> //Winter teaches history at the local school. He's an older gentleman, well-groomed and sophisticated.// <<else>> //Winter teaches history at the local school. She's an older lady, well-groomed and sophisticated.// <</if>> <<case Doren>> <<if $NPCName[_i].pronoun is "m">> //Doren teaches English at the local school. His shaggy red hair and beard give him a savage look.// <<else>> //Doren teaches English at the local school. Her shaggy red hair gives her a savage look.// <</if>> <<case Sirris>> <<if $NPCName[_i].pronoun is "m">> //Sirris teaches science at the local school. He's calm and patient, which sometimes leads to a disordered classroom.// <<else>> //Sirris teaches science at the local school. She's calm and patient, which sometimes leads to a disordered classroom.// <</if>> <<case Eden>> <<if $NPCName[_i].pronoun is "m">> <<set $NPCName[_i].title to "hunter">> <<else>> <<set $NPCName[_i].title to "huntress">> <</if>> <<set $NPCName[_i].name_known to 0>> <<case Avery>> <<if $NPCName[_i].pronoun is "m">> <<set $NPCName[_i].title to "businessman">> <<else>> <<set $NPCName[_i].title to "businesswoman">> <</if>> <<if $averySeen is undefined>> <<set $averySeen to []>> <</if>> <<if $averyRejected is undefined>> <<set $averyRejected to {}>> <<set $weekly.averyRejected to {}>> <</if>> <<case Jordan>> <<if $NPCName[_i].pronoun is "m">> <<set $NPCName[_i].title to "priest">> <<else>> <<set $NPCName[_i].title to "priestess">> <</if>> <<case Whitney>> <<set C.npc.Whitney.dom to 10>> <<case "Great Hawk">> <<set C.npc["Great Hawk"].dom to 50>> <<case Sydney>> <<set $NPCName[_i].purity to 100>> <<set $NPCName[_i].chastity to {penis:"chastity belt", vagina:"chastity belt", anus:"anal shield"}>> <<set $sydneySeen to []>> <<set $sydneyFirstSeen to "">> <<set $sydney to { glasses: "glasses", hair: "ponytail", swim: "school", sexTotal: 0, rank: "initiate", }>> <<case "Ivory Wraith">> <<checkWraith>> <<set $genderknown.pushUnique("Ivory Wraith")>> <<set C.npc["Ivory Wraith"].lust to 0>> <<if $wraith.state is "haunt">> <<set C.npc["Ivory Wraith"].lust to 20>> <<if $wraithPrison and $wraithPrison.vision>> <<set C.npc["Ivory Wraith"].lust -= 5>> <</if>> <</if>> <<set C.npc["Ivory Wraith"].skincolour to "ghost">> <<case Remy>> <<if $remySeen is undefined>> <<set $remySeen to []>> <</if>> <<case Wren>> <<if $wrenSeen is undefined>> <<set $wrenSeen to []>> <</if>> <<case Niki>> <<if $nikiSeen is undefined>> <<set $nikiSeen to []>> <</if>> <<case Gwylan>> <<set $gwylanSeen to []>> <<set $gwylanTalked to []>> <<set $gwylan to { progress: 0, stage: 0, sea: 0, wary: 0, robin: 0, purged: 0, timer: {}, request: {}, requestCount: 0, requestDone: false, }>> <<set $gwylan.timer.lastSeen to Time.date.timeStamp>> <<default>> <</switch>> <</if>> <</widget>> <<widget "initNNPCClothes">> <<set _nam to _args[0]>> <<set _i to $NPCNameList.indexOf(_nam)>> <<set $_generation to (_args[1] ? _args[1] : "none")>> <<if !$NPCName[_i].outfits or $_generation is "reset" or $_generation is "update">> <<if $_generation isnot "update">> <<set $NPCName[_i].outfits to ["naked", "maleDefault", "femaleDefault"]>> <</if>> <<switch _nam>> <<case Kylar>> <<set $NPCName[_i].outfits.pushUnique( "maleSchool", "femaleSchool", "maleSchoolSwim", "femaleSchoolSwim", "maleTown1", "femaleTown1", "maleWarm1", "femaleWarm1", "coldHoodie" )>> <<case Robin>> <<set $NPCName[_i].outfits.pushUnique( "maleSchool", "femaleSchool", "maleSchoolLong", "femaleSchoolLong", "maleSchoolSwimShirt", "femaleSchoolSwim", "maleTown1", "femaleTown1", "maleWarm1", "femaleWarm1", "coldPuffer", "pyjamas" )>> <<case Whitney>> <<set $NPCName[_i].outfits.pushUnique( "Whitney", "maleSchoolBlazer", "femaleSchoolBlazer", "maleSchoolSwim", "femaleSchoolSwim", "coldHoodie" )>> <<case Sydney>> <<set $NPCName[_i].outfits.pushUnique( "maleSchoolLong", "femaleSchoolLong", "maleSchoolSwimShirt", "femaleSchoolSwim", "neutralRobe", "coldTrench" )>> <<case Gwylan>> <<set $NPCName[_i].outfits.pushUnique( "gwylanTown", "gwylanCold", "maleWarm2", "femaleWarmTank", "witch", "gloomyTunic", "ritualRobes", "vintageMale", "vintageFemale" )>> <<case Alex>><<set $NPCName[_i].outfits.pushUnique("wildsFlannel", "AlexJorts", "AlexSkirt", "coldCoat")>> <<case Avery>><<set $NPCName[_i].outfits.pushUnique("business", "maleFormal1", "femaleFormal1", "pyjamas")>> <<case Eden>><<set $NPCName[_i].outfits.pushUnique("Eden")>> <<case Morgan>><<set $NPCName[_i].outfits.pushUnique("Morgan")>> <<case Briar>><<set $NPCName[_i].outfits.pushUnique("maleBriar", "femaleBriar")>> <<case Darryl>><<set $NPCName[_i].outfits.pushUnique("maleFormal1", "femaleFormal1")>> <<case Remy>><<set $NPCName[_i].outfits.pushUnique("ridingFormal")>> <<case Landry>><<set $NPCName[_i].outfits.pushUnique("maleLandry", "femaleLandry")>> <<case Charlie>><<set $NPCName[_i].outfits.pushUnique("dance")>> <<case Harper>><<set $NPCName[_i].outfits.pushUnique("doctor")>> <<case Jordan>><<set $NPCName[_i].outfits.pushUnique("maleRobe", "femaleRobe")>> <<case Sirris>><<set $NPCName[_i].outfits.pushUnique("teacher", "townTurtleneck", "townCollar")>> <<case Doren>><<set $NPCName[_i].outfits.pushUnique("teacher", "townTrack", "townCollar")>> <<case River>><<set $NPCName[_i].outfits.pushUnique("teacher", "neutralRobe", "townCollar")>> <<case Winter>><<set $NPCName[_i].outfits.pushUnique("teacher")>> <<case Mason>><<set $NPCName[_i].outfits.pushUnique("teacher", "maleSchoolSwim", "neutralSwim", "townTrack")>> <<case Leighton>><<set $NPCName[_i].outfits.pushUnique("teacher", "maleFormal1", "femaleFormal1")>> <<case "Black Wolf" "Great Hawk">><<set $NPCName[_i].outfits to ["naked"]>> <<case "Ivory Wraith">><<set $NPCName[_i].outfits to ["naked", "moonRobe"]>> <<default>> <!-- Maybe should be left as a default case for futureproofing? Assigns area-appropriate clothes without saving them to the NPC. If this does not run, named NPC will only have default and naked clothes. <<set $NPCName[_i].outfits to undefined>> --> <</switch>> <</if>> <<getNNPCClothes _nam>> <</widget>> <<widget "getNNPCClothes">> <<set _nam to _args[0]>> <<set _i to $NPCNameList.indexOf(_nam)>> <<if !$NPCName[_i].outfits>> <<generateNPCClothes $NPCName[_i]>> <<run console.log('Named NPC [', $NPCName[_i], '] generated with area-appropriate clothes due to a lack of outfits.')>> <<else>> <<switch _nam>> <<case Alex>> <<if $location is "alex_cottage" and Time.betweenHours(21, 5)>> <<if $NPCName[_i].pronoun is "m">> <<npcClothesName $NPCName[_i] "maleAlexSleep">> <<else>> <<npcClothesName $NPCName[_i] "femaleAlexSleep">> <</if>> <<else>> <<generateNPCClothes $NPCName[_i]>> <</if>> <<case Avery>> <<if Time.hour gte 18>> <<npcClothesType $NPCName[_i] "formal">> <<else>> <<npcClothesType $NPCName[_i] "business">> <</if>> <<case Robin>> <<run getRobinCrossdressingStatus($NPCName[_i].crossdress)>> <<set $NPCName[_i].crossdressing to _robin_cd>> <<run statusCheck("Robin")>> <<switch _robin_location>> <<case "sleep">> <<npcClothesType $NPCName[_i] "sleep">> <<case "school">> <<npcClothesType $NPCName[_i] "school">> <<case "park">> <<npcClothesType $NPCName[_i] "cold">> <<case "halloween">> <<if $halloween_robin_costume>> <<npcClothesName $NPCName[_i] $halloween_robin_costume>> <<else>> <<generateNPCClothes $NPCName[_i]>> <</if>> <<default>> <<generateNPCClothes $NPCName[_i]>> <</switch>> <<case Sydney>> <<sydneySchedule>> <<switch _sydney_location>> <<case "temple">> <<npcClothesType $NPCName[_i] "temple">> <<case "school" "class" "lunch" "library">> <<npcClothesType $NPCName[_i] "school">> <<default>> <<generateNPCClothes $NPCName[_i]>> <</switch>> <<case Kylar>> <<if $kylar_clothes is "formal">> <<npcClothesType $NPCName[_i] "formal">> <<elseif $kylar_clothes is "goth">> <<npcClothesType $NPCName[_i] "formalRare">> <<elseif $kylar_clothes is "swimsuit">> <<npcClothesType $NPCName[_i] "beach">> <<else>> <<generateNPCClothes $NPCName[_i]>> <</if>> <<case Gwylan>> <<if gwylanSchedule() is "shop">> <<if $location is "forest_shop_garden" and ($beastRitual or $sexRitual)>> <<npcClothesName $NPCName[_i] "ritualRobes">> <<else>> <<npcClothesName $NPCName[_i] "gloomyTunic">> <</if>> <<else>> <<if Time.season is "winter">> <<npcClothesType $NPCName[_i] "cold">> <<else>> <<generateNPCClothes $NPCName[_i]>> <</if>> <</if>> <<case Eden Morgan Briar Landry Remy>> <<npcClothesType $NPCName[_i] _nam>> <<case Darryl>> <<npcClothesType $NPCName[_i] "formal">> <<case Charlie>> <<npcClothesType $NPCName[_i] "dance_studio">> <<case Harper>> <<npcClothesType $NPCName[_i] "hospital">> <<case Jordan>> <<npcClothesType $NPCName[_i] "temple">> <<case Mason>> <<npcClothesType $NPCName[_i] "beach">> <<case "Black Wolf" "Great Hawk">> <<npcClothesType $NPCName[_i] "naked">> <<case "Ivory Wraith">> <<npcClothesType $NPCName[_i] "Wraith">> <<default>> <<generateNPCClothes $NPCName[_i]>> <</switch>> <</if>> <<if $NPCName[_i].penis isnot "none">> <<set $NPCName[_i].penis to ($NPCName[_i].clothes.lower.name is "naked" ? 0 : "clothed")>> <</if>> <<if $NPCName[_i].vagina isnot "none">> <<set $NPCName[_i].vagina to ($NPCName[_i].clothes.lower.name is "naked" ? 0 : "clothed")>> <</if>> <<set $NPCName[_i].chest to ($NPCName[_i].clothes.upper.name is "naked" ? 0 : "clothed")>> <</widget>> <!-- addNNPCOutfit and removeNNPCOutfit should only ever be used on named NPCs! --> <<widget "addNNPCOutfit">> <<set _nam to _args[0]>> <<set _i to $NPCNameList.indexOf(_nam)>> <<set $_newNPCOutfit to _args[1]>> <<if _args[0] and _args[1]>> <<if !setup.npcClothesSets.some(set => set.name.includes($_newNPCOutfit))>> <<error { message : `NPC (${_nam}) was given invalid outfit (Outfit name: ${$_newNPCOutfit}). Please inform PurityGuy.`, source : Utils.GetStack() }>> <<elseif _i lt 0>> <<error { message : `NPC (${_nam}) ${"is"} invalid (Must be a named NPC. check for typos!). Please inform PurityGuy.`, source : Utils.GetStack() }>> <<else>> <<if !$NPCName[_i].outfits>> <<set $NPCName[_i].outfits to ["naked", "maleDefault", "femaleDefault"]>> <</if>> <<set $NPCName[_i].outfits.pushUnique($_newNPCOutfit)>> <</if>> <</if>> <</widget>> <<widget "removeNNPCOutfit">> <<set _nam to _args[0]>> <<set _i to $NPCNameList.indexOf(_nam)>> <<set $_newNPCOutfit to _args[1]>> <<if _args[0] and _args[1]>> <<if _i lt 0>> <<error { message : `NPC (${_nam}) ${"is"} invalid (Must be a named NPC. Check for typos!). Please inform PurityGuy.`, source : Utils.GetStack() }>> <<elseif !$NPCName[_i].outfits>> <<error { message : `NPC (${_nam}) attempted to remove outfit (Outfit name: ${$_newNPCOutfit}) while having no outfits. Please inform PurityGuy.`, source : Utils.GetStack() }>> <<elseif !$NPCName[_i].outfits.some(x => x.includes($_newNPCOutfit))>> <<error { message : `NPC (${_nam}) had non-existent outfit removed (Outfit name: ${$_newNPCOutfit}). Please inform PurityGuy.`, source : Utils.GetStack() }>> <<else>> <<set $NPCName[_i].outfits.delete($_newNPCOutfit)>> <<if $NPCName[_i].outfits.length is 0>> <<set $NPCName[_i].outfits to undefined>> <</if>> <</if>> <</if>> <</widget>> <!-- generates the strapon that the NNPC will use if the scene or rng calls for it. doesn't guarantee they will have it 100% of the time. --> <<widget "initNNPCstrapon">> <<set $_npcName to _args[0]>> <<set $_name to $_npcName.nam>> <<switch $_name>> <<case "Whitney">> <<set $_npcName.strapons to [{"state": "worn", "color": "dark red", "size": 3, "description":"large dark red strap-on cock"}]>> <<default>> <<set $_npcName.strapons to []>> <</switch>> <</widget>> <!-- give an NNPC a *new* strapon --> <!-- <<giveNNPCnewstrapon _npcNameSelect _straponSize _straponColour _straponShape _modifierOptions>> --> <<widget "giveNNPCnewstrapon">> <<set $_name to _args[0]>> <<set $_npcName to $NPCName.find(npc => npc.nam === $_name)>> <<set $_index to $NPCName.findIndex(npc => npc.nam === $_name)>> <<if _newStrapon is undefined>> <<run throw new Error("giveNNPCnewstrapon was run when _newStrapon was undefined! Call generateNewStrapon first!")>> <<else>> <<set $_strapon to clone(_newStrapon)>> <!-- unset _newStrapon so that we can't accidentally dupe strapons. That's right, we're forcing you to generate multiple if you want identical ones. --> <<unset _newStrapon>> <</if>> <!-- if the nnpc's name is in the following list, they will refuse to accept a new strapon --> <<if !["Whitney"].includes($_name)>> <<if $_npcName.strapons is undefined or $_npcName.strapons.length is 0>> <<set $NPCName[$_index].strapons to [$_strapon]>> <<else>> <<set $NPCName[$_index].strapons.push($_strapon)>> <</if>> <</if>> <</widget>> <<widget "npc">> /* Prepare the call for multiple Named NPCs at the same time. * We do this by changing all $NPCList[0] calls to $NPCList[x] in which x can be any temporary variable. In this case, we'll use _npcno. * We also give the option to set the Named NPC in any available row if so desired, by calling a second argument _args[1]. In case no _args[1] is passed, it will default to the first row. * We also now have the option to have the Named NPC be set into the first available slot instead, by setting the secent argument _args[1] to a negative number, such as -1. However this will bypass the check for npcs that have broken free from a previous passage. * Remember: available rows go from 0 to 5 ($NPCList[0] to $NPCList[5]). No more than that. */ <<if _args[1] lt 0>> <<for _controller to 0; _controller lte $NPCList.length; _controller++>> <<if _controller gte 6>> <!-- Since 6 is past our limit, we want to alert the user something went wrong. For simplicity, we'll set _npcno to 0 and overwrite $NPCList[0] --> <span class="red"> Error: There are already 6 active NPCs. Clearing NPC 0 to make space for Named NPC.</span> <<set _npcno to 0>> <<clearsinglenpc 0>> <<set _overwrite to true>> <<break>> <!-- Always remember to break the for loop when the condition is met --> <</if>> <<if $NPCList[_controller].gender is undefined and $NPCList[_controller].description is undefined>> <!-- These comparisons could be changed to a proper variable, for example $NPCList[x].active which would store if NPC x is active or not. To make things simple, we compare to .gender and .description since those two are always set to something other than 0 if the NPC in question is in fact active --> <<set _npcno to clone(_controller)>> <<break>> <!-- Always remember to break the for loop when the condition is met --> <</if>> <</for>> <<elseif _args[1]>> <<set _npcno to _args[1] - 1>> <<else>> <<set _npcno to 0>> <</if>> <<if _npcno is 0 and $enemyno gte 1 and !_overwrite>> <<set $endeventerror to $lastgenerated>> <<endevent phaseless>> <</if>> <<set $lastgenerated to $passage>> <<set _nam to _args[0]>> <<set _i to $NPCNameList.indexOf(_nam)>> <!-- Initialise NPC on first time called, introducing them to PC --> <<if $NPCName[_i].init isnot 1>> <<initnpc _nam>> <</if>> <!-- Determine what outfit the NPC should be wearing --> <<if !$NPCName[_i].outfits>> <<initNNPCClothes _nam>> <<else>> <<getNNPCClothes _nam>> <</if>> <<if !$NPCName[_i].strapons>> <<initNNPCstrapon $NPCName[_i]>> <</if>> <<set $NPCList[_npcno].virginity to $NPCName[_i].virginity>> <!-- Set global variables --> /* Both $npc and $npcnum will keep defined NPCs in the order they were defined. * DO NOT COMPARE NEITHER $npc NOR $npcnum TO $NPCList. * Since when defining an NPC one can choose in which row of $NPCList to put it, comparing them could result in missmatches. */ <<set $npc.push(_nam)>> <<set $npcnum.push(_i)>> <<set $NPCList[_npcno].fullDescription to _nam>> <!-- Set a variable to be compared to $NPCList, for simplicity. The row indicates which NPC it is, value is where in $NPCList it was defined. --> <<set $npcrow.push(_npcno)>> <<if $npc.length gt 1>> <<set $pronoun to "t">> <!-- In case more than 1 Named NPC is defined, we set pronoun to "they". --> <<else>> <<set $pronoun to $NPCName[_i].pronoun>> <</if>> /*Sets up multiple orgasms, code needs work*/ /*<<set $NPCList[0].maxOrgasms to 1>> <<set $NPCList[0].orgasms to 0>> <<if $NPCList[0].fullDescription is "Robin">> <<set $NPCList[0].maxOrgasms to 2>> <<set $setupMidOrgasm to true>> <</if>> */ <!-- Set combat variables --> <<set $NPCList[_npcno].pronoun to $NPCName[_i].pronoun>> <<set $NPCList[_npcno].pronouns to clone($NPCName[_i].pronouns)>> <<set $NPCList[_npcno].gender to $NPCName[_i].gender>> <<set $NPCList[_npcno].type to $NPCName[_i].type>> <<set $NPCList[_npcno].lefthand to 0>> <<set $NPCList[_npcno].righthand to 0>> <<set $NPCList[_npcno].mouth to 0>> <<set $NPCList[_npcno].anus to 0>>/* is not actually used anywhere */ <<set $NPCList[_npcno].chest to 0>> <<set $NPCList[_npcno].traits to []>> <<switch _nam>> <<case "Eden" "Black Wolf" "Great Hawk">> <<set $NPCList[_npcno].health to 600>> <<set $NPCList[_npcno].healthmax to 600>> <<case "Bailey">> <<set $NPCList[_npcno].health to 400>> <<set $NPCList[_npcno].healthmax to 400>> <<set $NPCList[_npcno].traits.push("unforgiving")>> <<case "Avery">> <<if $auriga_artefact is "Avery">> <<set $NPCList[_npcno].health to 600>> <<set $NPCList[_npcno].healthmax to 600>> <<else>> <<set $NPCList[_npcno].health to 200>> <<set $NPCList[_npcno].healthmax to 200>> <</if>> <<if $avery_fate isnot "saved">> <<set $NPCList[_npcno].traits.push("unforgiving")>> <</if>> <<case "Harper">> <<set $NPCList[_npcno].health to 200>> <<set $NPCList[_npcno].healthmax to 200>> <<set $NPCList[_npcno].traits.push("hypnotist")>> <<case "Ivory Wraith">> <<statsWraith>> <<set $NPCList[_npcno].health to _wraithHP>> <<set $NPCList[_npcno].healthmax to _wraithHP>> <<set $NPCList[_npcno].traits to ["brooding", "watchful", "willful", "beautiful"]>> <<set _condomIgnore to true>> <<case "Alex">> <<set $NPCList[_npcno].health to 200>> <<set $NPCList[_npcno].healthmax to 200>> /* Alex never thinks to bring a condom. */ <<set _condomIgnore to true>> <<case "Morgan">> <<set $NPCList[_npcno].health to 200>> <<set $NPCList[_npcno].healthmax to 200>> /* I'm so sorry.*/ <<set $NPCName[_npcno].pregnancyAvoidance to random(0,100)>> <<case "Gwylan">> <<set $NPCList[_npcno].health to 200>> <<set $NPCList[_npcno].healthmax to 200>> <<set $NPCName[_npcno].pregnancyAvoidance to 0>> <<set $NPCList[_npcno].traits.push("hypnotist", "willful", "deviant", "drug resistant")>> <<if $gwylan?.wary gte 5>> <<set $NPCList[_npcno].traits.push("unforgiving")>> <</if>> <<set $NPCList[_npcno].skills to {}>> <<set $NPCList[_npcno].skills.security to 800>> <<set $NPCList[_npcno].skills.athletics to 800>> <<set _condomIgnore to true>><<set _strapIgnore to true>> <<case "Leighton">> <<set $NPCList[_npcno].health to 200>> <<set $NPCList[_npcno].healthmax to 200>> <<if $headblackmailed is 1>> <<set $NPCList[_npcno].traits.push("unforgiving")>> <</if>> <<default>> <<set $NPCList[_npcno].health to 200>> <<set $NPCList[_npcno].healthmax to 200>> <</switch>> <<set $NPCList[_npcno].breastsize to $NPCName[_i].breastsize>> <<set $NPCList[_npcno].breastsdesc to $NPCName[_i].breastsdesc>> <<set $NPCList[_npcno].breastdesc to $NPCName[_i].breastdesc>> <<set $NPCList[_npcno].vagina to $NPCName[_i].vagina>> <<if $settings.breastFeedingEnabled and (_nam is "Morgan" or _nam is "Gwylan" or npcIsPregnant(_nam)) and $NPCName[_i].pronoun is "f" and $NPCName[_i].breastsize gt 0>> <<set $NPCList[_npcno].lactation to 1>> <</if>> <<set $NPCList[_npcno].penis to $NPCName[_i].penis>> <<set $NPCList[_npcno].penissize to $NPCName[_i].penissize>> <<set $NPCList[_npcno].penisdesc to $NPCName[_i].penisdesc>> <<set $NPCList[_npcno].chastity to clone($NPCName[_i].chastity)>> <<set $NPCList[_npcno].clothes to clone($NPCName[_i].clothes)>> <<set $NPCList[_npcno].chest to clone($NPCName[_i].chest)>> <<if $NPCList[_npcno].penis is "none" and $NPCName[_i].strapons and $NPCName[_i].strapons.length gt 0 and random(0,99) lt $settings.straponChance>> <<set $NPCList[_npcno].penis to $NPCList[_npcno].vagina>> <<set $NPCList[_npcno].vagina to "none">> <<set $NPCList[_npcno].gender to "m">> <<set $_strapon to clone($NPCName[_i].strapons.random())>> <<setNPCStrapon $NPCList[_npcno] $_strapon>> <</if>> <<set $NPCList[_npcno].skincolour to $NPCName[_i].skincolour>> <<set $NPCList[_npcno].insecurity to $NPCName[_i].insecurity>> <<set $NPCList[_npcno].description to $NPCName[_i].title>> <<set $NPCList[_npcno].insecurity to $NPCName[_i].insecurity>> <<set $NPCList[_npcno].description to $NPCName[_i].title>> <<set $NPCList[_npcno].adult to $NPCName[_i].adult>> <<set $NPCList[_npcno].teen to $NPCName[_i].teen>> <<set $NPCList[_npcno].location to { head: 0, genitals: 0, }>> <<set $NPCList[_npcno].bold to 0>> <<set $NPCList[_npcno].condom to false>> <<set $NPCList[_npcno].pregnancyAvoidance to $NPCName[_i].pregnancyAvoidance>> <<set $NPCList[_npcno].name_known to $NPCName[_i].name_known>> <<if $settings.condomLevel gte 2>> <!-- 50 is the threshold for named NPCs bringing their own condoms, do not change --> <<if ($NPCList[_npcno].pregnancyAvoidance gte 50 and !_condomIgnore)>> <<set $NPCList[_npcno].condom to { willUse: true, state: (random(0,100) gt 98 ? "defective" : "normal"), type: "plain", colour: setup.colours.condom[random(0, (setup.colours.condom.length -1))].csstext, worn: false }>> <!-- Kylar brings their own sabotaged condoms --> <<elseif _nam is "Kylar">> <<set $NPCList[_npcno].condom to { willUse: false, state: "sabotaged", type: "plain", colour: setup.colours.condom[random(0, (setup.colours.condom.length -1))].csstext, worn: false }>> <</if>> <</if>> <!-- Whitney and Avery should wear strap-ons based on strap-on chance --> <<if $NPCList[_npcno].penis is "none" and (_nam is "Whitney" or _nam is "Avery") and !_strapIgnore and random(0,99) lt $settings.straponChance>> <<npcstrapon _npcno>> <</if>> <<if _nam is "Sydney" and $sydney_toy isnot undefined>> <<giveNPCsextoy _npcno $sydney_toy>> <</if>> <!-- Following sections adjusted for the changes converting from $claws to .claws --> <!-- Adjust for Beast type NNPCs: Black Wolf --> <!-- Changed all instances of zeroes (0) to _npcno in the event multi-beast is properly implemented --> <<if $NPCList[_npcno].type is "wolf">> <<set $beastname to "blackwolf">> <<set $NPCList[_npcno].lefthand to "none">> <<set $NPCList[_npcno].righthand to "none">> <<set $NPCList[_npcno].stance to "approach">> <<if $daily.bwMonsterRoll isnot undefined and $blackwolfmonster is 1>> <<if $daily.bwMonsterRoll is true>> <<set $NPCList[_npcno].monster to "monster">> <<set $monster to 1>><<set _monsterOverride to true>> <<set $NPCList[_npcno].type to ($NPCList[_npcno].pronoun is "f" ? "wolfgirl" : "wolfboy")>> <<set $NPCList[_npcno].lefthand to 0>> <<set $NPCList[_npcno].righthand to 0>> <<run delete $NPCList[_npcno].claws>> <<else>> <<set $NPCList[_npcno].monster to 0>> <<set $NPCList[_npcno].pronoun to "i">> <<set $NPCList[_npcno].claws to "claws">> <</if>> <<elseif $blackwolfmonster gte 1>> <<if ($settings.monsterChance gte $rng and ($hallucinations gte 1 or !$settings.monsterHallucinationsOnly)) or ($blackwolfmonster is 2)>> <<set $daily.bwMonsterRoll to true>> <<set $NPCList[_npcno].monster to "monster">> <<set $monster to 1>><<set _monsterOverride to true>> <<set $NPCList[_npcno].type to ($NPCList[_npcno].pronoun is "f" ? "wolfgirl" : "wolfboy")>> <<set $NPCList[_npcno].lefthand to 0>> <<set $NPCList[_npcno].righthand to 0>> <<run delete $NPCList[_npcno].claws>> <<else>> <<set $daily.bwMonsterRoll to false>> <<set $NPCList[_npcno].monster to 0>> <<set $NPCList[_npcno].pronoun to "i">> <<set $NPCList[_npcno].claws to "claws">> <</if>> <<else>> <<set $daily.bwMonsterRoll to false>> <<set $NPCList[_npcno].monster to 0>> <<set $NPCList[_npcno].pronoun to "i">> <<set $NPCList[_npcno].claws to "claws">> <</if>> <</if>> <!-- Adjust for Beast type NNPCs: Great Hawk --> <<if $NPCList[_npcno].type is "hawk">> <<set $beastname to "greathawk">> <<set $NPCList[_npcno].lefthand to "none">> <<set $NPCList[_npcno].righthand to "none">> <<set $NPCList[_npcno].stance to "approach">> <<if $daily.ghMonsterRoll isnot undefined and $greathawkmonster is 1>> <<if $daily.ghMonsterRoll is true>> <<set $NPCList[_npcno].monster to "monster">> <<set $monster to 1>><<set _monsterOverride to true>> <<set $NPCList[_npcno].type to "harpy">> <<set $NPCList[_npcno].lefthand to 0>> <<set $NPCList[_npcno].righthand to 0>> <<run delete $NPCList[_npcno].claws>> <<else>> <<set $NPCList[_npcno].monster to 0>> <<set $NPCList[_npcno].pronoun to "i">> <<set $NPCList[_npcno].claws to "talons">> <</if>> <<elseif $greathawkmonster gte 1 or !$settings.bestialityEnabled>> <<if ($settings.monsterChance gte $rng and ($hallucinations gte 1 or !$settings.monsterHallucinationsOnly)) or ($greathawkmonster is 2) or (!$settings.bestialityEnabled)>> <<set $daily.ghMonsterRoll to true>> <<set $NPCList[_npcno].monster to "monster">> <<set $monster to 1>><<set _monsterOverride to true>> <<set $NPCList[_npcno].type to "harpy">> <<set $NPCList[_npcno].lefthand to 0>> <<set $NPCList[_npcno].righthand to 0>> <<run delete $NPCList[_npcno].claws>> <<else>> <<set $daily.ghMonsterRoll to false>> <<set $NPCList[_npcno].monster to 0>> <<set $NPCList[_npcno].pronoun to "i">> <<set $NPCList[_npcno].claws to "talons">> <</if>> <<else>> <<set $daily.ghMonsterRoll to false>> <<set $NPCList[_npcno].monster to 0>> <<set $NPCList[_npcno].pronoun to "i">> <<set $NPCList[_npcno].claws to "talons">> <</if>> <</if>> <<if $enemyno lt 6>><<set $enemyno += 1>><</if>> <<if $NPCList[0].monster is "monster" or _monsterOverride>> <<set $monster to 1>> <<else>> <<set $monster to 0>> <</if>> /*Run pregnancy Checks*/ <<if playerIsPregnant() and playerBellyVisible(true) and _nam isnot "Robin">> <<setKnowsAboutPregnancy "pc" _args[0]>> <</if>> <<if npcIsPregnant(_args[0]) and npcBellyVisible(_args[0])>> <<setKnowsAboutPregnancy _args[0] "pc">> <</if>> <<set $NPCList[_npcno].index to _npcno>> <<run EventSystem.push($passage, _npcno, $timeStamp)>> <<set $index to _npcno>> <</widget>> <<widget "npcrelationship">> <!-- Robin, Avery, Kylar are unique and are treated differently --> <<set _i to V.NPCName.findIndex(i => i.nam === _args[0])>> <<if _i !== -1>> <<set _npc to _args[0]>> <<else>> <<error { message: "<<npcrelationship>> was provided incorrect arguments" }>> <</if>> <<if $NPCName[_i].init is 1>> <<relationshiptext>> <br> <</if>> <</widget>> <<widget "npcincr">> <!-- Arguments passed are NNPC name, variable type, and value (+/-)--> <<set _nam to _args[0]>> <<set _var to _args[1]>> <<set _val to _args[2]>> <<if _args[3]>> <<set _cheat to _args[3]>> <</if>> <<set _i to $NPCNameList.indexOf(_nam)>> <<switch _var>> <<case love>> <<set $NPCName[_i].love += _val>> <<case dom>> <<if _nam is "Gwylan" and _val gt 0>> <<set $_stage to Math.floor($NPCName[_i].dom / 25)>> <<if $_stage gte 1 and !$gwylanSeen?.includes("yearning") or $_stage gte 3 and !$gwylanSeen?.includes("partners") or $gwylan?.wary gt 1>> <!-- No increase --> <<else>> <<set $NPCName[_i].dom += _val>> <</if>> <<else>> <<set $NPCName[_i].dom += _val>> <</if>> <<case trust>> <<set $NPCName[_i].trust += _val>> <<case lust>> <<if _nam is "Sydney" and !_sydneyChastity and _val gt 0 and !_cheat>> <<set $NPCName[_i].lust += (_val + 1)>> <<else>> <<set $NPCName[_i].lust += _val>> <</if>> <<set _lustincr to 1>> <<case rage>> <<set $NPCName[_i].rage += _val>> <<case state>> <<set $NPCName[_i].state to _val>> <<case init>> <<set $NPCName[_i].init to _val>> <<case trauma>> <<if _nam is "Robin" and _val lt 0>> <<set $NPCName[_i].trauma += Math.round(_val * ($robinTraumaMultiplier || 1))>> <<if $NPCName[_i].trauma lt 0>> <<set $NPCName[_i].trauma = 0>> <</if>> <<else>> <<set $NPCName[_i].trauma += _val>> <<if $NPCName[_i].trauma gt 100>> <<set $NPCName[_i].trauma = 100>> <</if>> <</if>> <<case purity>> <<if $NPCName[_i].corruption gt 0>> <<set $NPCName[_i].corruption -= _val>> <<if $NPCName[_i].corruption lte 0>> <<if $purityEvent is 1>> <<set _rollover to -$NPCName[_i].corruption>> <<set $NPCName[_i].purity += (_rollover + 4)>> <<set $NPCName[_i].corruption = 0>> <<set $purityRollover to 1>> <<else>> <<set $NPCName[_i].corruption = 1>> <</if>> <</if>> <<else>> <<set $NPCName[_i].purity += _val>> <<if $NPCName[_i].purity lte 0>> <<if $corruptionEvent is 1>> <<set _rollover to -$NPCName[_i].purity>> <<set $NPCName[_i].corruption += (_rollover + 10)>> <<set $NPCName[_i].purity = 0>> <<set $corruptionRollover to 1>> <<else>> <<set $NPCName[_i].purity = 1>> <</if>> <</if>> <<if $NPCName[_i].purity gte 100 and ($NPCName[_i].virginity.vaginal isnot true or $NPCName[_i].virginity.penile isnot true)>> <<set $NPCName[_i].purity = 99>> <</if>> <</if>> <<if $NPCName[_i].purity lte 50 and _val lt 0 and _lustincr isnot 1>> <<npcincr Sydney lust 1>> <</if>> <<unset $purityEvent>> <<unset $corruptionEvent>> <<default>> <span class="red">NPCINCR error - Unknown variable _var</span> <br><br> <</switch>> <<relationshipclamp>> <</widget>> <<widget "npcset">> <!-- Sets selected NNPC variables using NNPC name--> <!-- Arguements passed are NNPC name, variable type, value --> <<set _nam to _args[0]>> <<set _var to _args[1]>> <<set _val to _args[2]>> <<set _i to $NPCNameList.indexOf(_nam)>> <<switch _var>> <<case love>> <<set $NPCName[_i].love to _val>> <<case dom>> <<set $NPCName[_i].dom to _val>> <<case trust>> <<set $NPCName[_i].trust to _val>> <<case lust>> <<set $NPCName[_i].lust to _val>> <<case rage>> <<set $NPCName[_i].rage to _val>> <<case state>> <<set $NPCName[_i].state to _val>> <<case init>> <<set $NPCName[_i].init to _val>> <<case trauma>> <<set $NPCName[_i].trauma to _val>> <<case purity>> <<set $NPCName[_i].purity to _val>> <<case corruption>> <<set $NPCName[_i].corruption to _val>> <<default>> <span class="red">NPCSET error - Unknown value _var</span> <br><br> <</switch>> <</widget>> <<widget "relationshiptext">> <!-- Special cases for LIs + Wraith --> <<switch _npc>> <<case Robin>> Robin <<if $robin.timer.hurt gte 2>> feels <span class="red">betrayed</span>. <<elseif $robin.timer.hurt gte 1>> feels <span class="purple">conflicted</span>. <<elseif $robinromance is 1>> <<if $NPCName[_i].trauma gte 80>> <<if $NPCName[_i].lust gte 50>> is <span class="red">lost in need for you</span>. <<else>> is <span class="red">nothing without you</span>. <</if>> <<elseif $NPCName[_i].dom gte 40>> <span class="lewd">cherishes you</span>. <<else>> <span class="lewd">loves you</span>. <</if>> <<elseif $NPCName[_i].trauma gte 80>> is <span class="red">traumatised</span>. <<elseif $NPCName[_i].trauma gte 40>> is <span class="red">in pain</span>. <<elseif $NPCName[_i].trauma gte 10>> is <span class="purple">troubled</span>. <<elseif $NPCName[_i].dom gte 80>> feels <span class="teal">protective of you</span>. <<elseif $NPCName[_i].dom gte 20>> thinks you're <span class="teal"><<nnpc_his "Robin">> best friend</span>. <<else>> <span class="teal">looks up to you</span>. <</if>> <<case Avery>> Avery <<if $NPCName[_i].state is "dismissed">> <<if $avery_fate is "fallen" or $avery_fate is "kicked">> <span class="black">has fallen.</span> <<else>> <span class="red">has moved on.</span> <</if>> <<elseif $NPCName[_i].rage gte 96 and $averyragerevealed is 1 and $dateCount.Avery gte 2 and !$avery_mansion>> has <span class="red">given up on you</span>. <<elseif $NPCName[_i].love gte 60>> <<if $NPCName[_i].rage gte 60>> is <span class="pink">infuriated by you</span>. <<elseif $NPCName[_i].rage gte 20>> wants you <span class="blue">on a tighter leash</span>. <<else>> <span class="green">prizes you</span>. <</if>> <<elseif $NPCName[_i].love gte 20>> <<if $NPCName[_i].rage gte 60>> is <span class="pink">furious with you</span>. <<elseif $NPCName[_i].rage gte 20>> sees you <span class="purple">as a possession</span>. <<else>> thinks you're <span class="teal">cute</span>. <</if>> <<else>> <<if $NPCName[_i].rage gte 60>> thinks you're <span class="pink">insolent</span>. <<elseif $NPCName[_i].rage gte 20>> thinks you're <span class="blue">a brat</span>. <<else>> has no strong opinion of you. <</if>> <</if>> <<case Kylar>> Kylar <<if $NPCName[_i].state is "prison" and $location isnot "prison">> is <span class="red">imprisoned</span>. <<elseif $NPCName[_i].love gte 90>> <<if $NPCName[_i].rage gte 90>> is <span class="red">hysterical</span>. <<elseif $NPCName[_i].rage gte 60>> is <span class="pink">obsessed with you</span>. <<elseif $NPCName[_i].rage gte 30>> is <span class="blue">obsessed with you</span>. <<else>> is <span class="green">obsessed with you</span>. <</if>> <<elseif $NPCName[_i].love gte 60>> <<if $NPCName[_i].rage gte 90>> is <span class="red">hysterical</span>. <<elseif $NPCName[_i].rage gte 60>> is <span class="pink">enamoured with you</span>. <<elseif $NPCName[_i].rage gte 30>> is <span class="purple">enamoured with you</span>. <<else>> is <span class="teal">enamoured with you</span>. <</if>> <<elseif $NPCName[_i].love gte 30>> <<if $NPCName[_i].rage gte 90>> is <span class="red">hysterical</span>. <<elseif $NPCName[_i].rage gte 60>> is <span class="pink">infatuated with you</span>. <<elseif $NPCName[_i].rage gte 30>> is <span class="purple">infatuated with you</span>. <<else>> is <span class="lblue">infatuated with you</span>. <</if>> <<else>> <<if $NPCName[_i].rage gte 90>> is <span class="red">hysterical</span>. <<elseif $NPCName[_i].rage gte 60>> is <span class="pink">fixated on you</span>. <<elseif $NPCName[_i].rage gte 30>> is <span class="purple">fixated on you</span>. <<else>> is <span class="blue">fixated on you</span>. <</if>> <</if>> <<case Whitney>> Whitney <<if $NPCName[_i].state is "dungeon">> is <span class="red">gone</span>. <<elseif $whitneyRescueStatus isnot undefined>> <<if $whitneyRescueStatus is "humiliated" and !$whitneyRescueTimer>> is <span class="red">vulnerable</span>. <<elseif $whitneyRescueStatus is "humiliated">> is <span class="red">humiliated</span>. <<elseif $whitneyRescueStatus is "shaken">> is <span class="pink">unnerved and agitated</span>. <<elseif $whitneyRescueStatus is "grateful">> is <span class="green">grateful</span>. <</if>> <<elseif $NPCName[_i].love gte 20>> <<if $NPCName[_i].lust gte 60>> is <span class="lewd">up for some fun</span>. <<else>> <<if $NPCName[_i].dom gte 20>> <span class="lewd">owns you</span>. <<elseif $NPCName[_i].dom lte 8>> thinks you're <span class="green"><<nnpc_his "Whitney">> <<girlfriend>></span>. <<else>> thinks you're <span class="lewd"><<nnpc_his "Whitney">> pet</span>. <</if>> <</if>> <<elseif $NPCName[_i].love lte 5>> <<if $NPCName[_i].lust gte 60>> wants to <span class="pink"><<= $NPCName[_i].dom gte 18 ? "make" : "hear">> you beg</span>. <<else>> <<if $NPCName[_i].dom gte 20>> thinks you're <span class="red">pathetic</span>. <<elseif $NPCName[_i].dom lte 7>> <<if $NPCName[_i].dom lte 2 and $NPCName[_i].love lte 2>> has <span class="red">a vendetta against you</span>. <<else>> thinks you're <span class="red">a threat to <<nnpc_his "Whitney">> status</span>. <</if>> <<else>> thinks you're <span class="red">a freak</span>. <</if>> <</if>> <<else>> <<if $NPCName[_i].dom gte 20>> thinks you're <span class="teal">fun to pick on</span>. <<elseif $NPCName[_i].dom lte 8>> finds you <span class="purple">annoying</span>. <<else>> thinks you're <span class="pink">an easy target</span>. <</if>> <</if>> <<case Eden>> Eden <<if $syndromeeden gte 1>> <<if $edenfreedom gte 1 and $location isnot "cabin" and ($edenfreedom is 1 and $edendays gt 2 or $edenfreedom is 2 and $edendays gt 7)>> <<if $edenfreedom is 1 and $edendays gte 4 or $edenfreedom is 2 and $edendays gte 10>> wants you to <span class="red">come home</span>. <<else>> is <span class="blue">worried about you</span>. <</if>> <<else>> /* edenfreedom checks here should be replaced with trust stat later. edenfreedom = 2 is high trust, 1 is med trust, 0 is low trust. */ <<if $NPCName[_i].love gte 150>> <<if $edenfreedom is 2>> knows you're <span class="green"><<nnpc_hers "Eden">></span>. <<elseif $edenfreedom is 1>> is <span class="teal">confident you'll obey <<nnpc_him "Eden">></span>. <<else>> wants to <span class="blue">keep you as <<nnpc_hers "Eden">></span>. <</if>> <<elseif $NPCName[_i].love gte 75>> <<if $edenfreedom is 2>> knows you <span class="blue">belong with <<nnpc_him "Eden">></span>. <<elseif $edenfreedom is 1>> wants you to <span class="purple">obey <<nnpc_him "Eden">></span>. <<else>> wants to <span class="pink">remind you that you're <<nnpc_hers "Eden">></span>. <</if>> <<else>> <<if $edenfreedom is 2>> knows you <span class="purple">should be with <<nnpc_him "Eden">></span>. <<elseif $edenfreedom is 1>> will <span class="pink">make you obey <<nnpc_him "Eden">></span>. <<else>> wants to <span class="red">make you <<nnpc_hers "Eden">></span>. <</if>> <</if>> <</if>> <<else>> <<if $location is "cabin">> wants to <span class="red">keep you</span>. <<else>> will <span class="red">hunt you again</span>. <</if>> <</if>> <<case Sydney>> Sydney <<if $sydneyromance is 1>> <<if $NPCName[_i].purity gt 80>> <<if $NPCName[_i].lust gte 60>> <span class="lewd">can't think of anything but you</span>. <<else>> <span class="lewd">loves you beyond words</span>. <</if>> <<elseif $NPCName[_i].purity gte 40>> <<if $NPCName[_i].lust gte 30>> <span class="lewd">yearns for your touch</span>. <<else>> feels <span class="lewd">bound to you</span>. <</if>> <<elseif $NPCName[_i].corruption gte 40>> <<if $NPCName[_i].lust gte 20>> wants to <span class="lewd">be <<if $NPCName[_i].virginity.vaginal is true and $NPCName[_i].virginity.penile is true>>deflowered<<else>>defiled<</if>> by you</span>. <<else>> <span class="lewd">loves you beyond words</span>. <</if>> <<elseif $NPCName[_i].corruption gte 10>> <<if $NPCName[_i].lust gte 10>> <span class="lewd">craves your touch</span>. <<else>> <span class="lewd">belongs to you</span>. <</if>> <<else>> <span class="lewd">loves you</span>. <</if>> <<elseif $NPCName[_i].love gte 60>> <<if $NPCName[_i].purity gte 50>> <<if $purity lte 500 or $demon gte 6>> wants to <span class="blue">save you</span>. <<elseif $temple_rank is "monk" or $temple_rank is "priest" or $angel gte 6>> considers you <span class="green">an inspiration</span>. <<elseif $temple_rank is "initiate">> considers you <span class="green">a prodigy</span>. <<else>> is <span class="green">very fond of you</span>. <</if>> <<elseif $NPCName[_i].corruption gte 10>> is <span class="lewd">influenced by you</span>. <<else>> is <span class="purple">torn</span>. <</if>> <<elseif $NPCName[_i].love gte 30>> <<if $NPCName[_i].purity gte 50>> <<if $purity lte 500 or $demon gte 6>> thinks you're <span class="blue">misguided</span>. <<elseif $temple_rank is "monk" or $temple_rank is "priest" or $angel gte 6>> <span class="teal">looks up to you</span>. <<elseif $temple_rank is "initiate">> sees you as <span class="teal">an equal</span>. <<else>> <span class="teal">enjoys your company</span>. <</if>> <<elseif $NPCName[_i].corruption gte 10>> wants to <span class="pink">know you better</span>. <<else>> is <span class="purple">conflicted</span>. <</if>> <<elseif $NPCName[_i].love gte 10>> <<if $sydneySeen and $sydneySeen.includes("initiate")>> <<if $purity lte 500 or $demon gte 6>> thinks <span class="pink">you're lost</span>. <<else>> is <span class="lblue">proud of you</span>. <</if>> <<else>> is <span class="lblue">intrigued by you</span>. <</if>> <<else>> <<if $sydneySeen and $sydneySeen.includes("initiate")>> <<if $purity lte 500 or $demon gte 6>> thinks you're <span class="red">heretical</span>. <<elseif $sydney.rank is "initiate" and $temple_rank is "initiate">> is <span class="blue">happy to know another initiate</span>. <<else>> is <span class="blue">happy to know another worshipper</span>. <</if>> <<else>> has no strong opinion of you. <</if>> <</if>> <<case Alex>> Alex <<if $alex_countdown is undefined and $farm_stage gte 7>> <<if $NPCName[_i].lust gte 60>> wants to <span class="lewd">ride until sun<<if Time.dayState is "night">>rise<<else>>set<</if>></span>. <<elseif $NPCName[_i].dom gte 30>> is <span class="lewd">in charge</span>. <<elseif $NPCName[_i].dom lte -30>> <span class="lewd">depends on you</span>. <<else>> thinks you're <span class="lewd"><<nnpc_his "Alex">> partner</span>. <</if>> <<elseif $farm_stage gte 6>> <<if $NPCName[_i].dom gte 30>> is <span class="pink">in control</span>. <<elseif $NPCName[_i].dom lte -30>> <span class="teal">relies on you</span>. <<else>> <span class="blue">can't be more grateful</span>. <</if>> <<elseif $farm_stage gte 5>> <<if $NPCName[_i].dom gte 10>> <span class="blue">respects you</span>. <<elseif $NPCName[_i].dom lte -10>> <span class="blue">admires you</span>. <<else>> <span class="blue">appreciates you</span>. <</if>> <<elseif $farm_stage gte 4>> <<if $NPCName[_i].dom gte 10>> thinks you're <span class="green">responsible</span>. <<elseif $NPCName[_i].dom lte -10>> thinks you're <span class="green">capable</span>. <<else>> <span class="green">likes having you around</span>. <</if>> <<elseif $NPCName[_i].love gte 10>> is <span class="green">glad to have help</span>. <<elseif $NPCName[_i].love lte -10>> <<if $NPCName[_i].lust gte 10>> thinks you're <span class="purple">a pervert</span>. <<elseif $NPCName[_i].dom gte 10>> <span class="red">wants a new farmhand</span>. <<else>> thinks you're <span class="red">a bother</span>. <</if>> <<else>> has no strong opinion of you. <</if>> <<case "Ivory Wraith">> <<if $wraith>> <<if $wraith.hunt and !$wraith.type>> The Wraith <<if $wraith.state is "haunt">> is <span class="red">fiercely hunting you</span>. <<else>> is <span class="blue">stalking you</span>. <</if>> <<elseif _rngWraithLineChance is 1>> <<if !_rngWraithLine>> <<set _rngWraithLine to true>> <<silently>><<speechWraith "lines">><</silently>> <</if>> _line1 <<else>> The Wraith <<if $wraith.state is "haunt">> <<if $NPCName[_i].lust gte 18>> is <span class="red">manic</span>. <<elseif $NPCName[_i].lust gte 14>> is <span class="pink">enraged</span>. <<else>> <span class="purple">holds a grudge</span>. <</if>> <<elseif $wraith.state is "despair">> <<if $NPCName[_i].lust gte 18>> is <span class="red">manic</span>. <<elseif $NPCName[_i].lust gte 14>> is <span class="pink">in anguish</span>. <<else>> is <span class="purple">melancholy</span>. <</if>> <<else>> <<if $NPCName[_i].lust gte 15>> is <span class="purple">obsessed with you</span>. <<elseif $NPCName[_i].lust gte 6>> is <span class="purple">intrigued by you</span>. <<else>> is <span class="blue">entertained by you</span>. <</if>> <</if>> <</if>> <</if>> <<case "Great Hawk">> Great Hawk <<if $syndromebird is 1>> <<if $NPCName[_i].love gte 60>> <<if $NPCName[_i].dom gte 50>> has <span class="lewd">claimed you as <<if $greathawkmonster gte 1>><<nnpc_his "Great Hawk">><<else>>its<</if>> <<wife>></span>. <<elseif $NPCName[_i].dom gte 20>> thinks you're <span class="lewd"><<if $greathawkmonster gte 1>><<nnpc_his "Great Hawk">><<else>>its<</if>> <<wife>></span>. <<else>> thinks you're <span class="lewd">a good <<wife>></span>. <</if>> <<elseif $NPCName[_i].love gte 20>> <<if $NPCName[_i].dom gte 50>> wants you to <span class="red">return <<if $greathawkmonster gte 1>><<nnpc_his "Great Hawk">><<else>>its<</if>> affections</span>. <<elseif $NPCName[_i].dom gte 20>> is <span class="red">distraught</span>. <<else>> is <span class="red">desperate for your affection</span>. <</if>> <<else>> <<if $NPCName[_i].dom gte 50>> wants you <span class="teal">as a mate</span>. <<elseif $NPCName[_i].dom gte 20>> is <span class="teal">lonely</span>. <<else>> is <span class="teal">smitten with you</span>. <</if>> <</if>> <<else>> wants you to <span class="red">stay forever</span>. <</if>> <<case "Black Wolf">> Black Wolf <<if $syndromewolves is 1>> <<if $NPCName[_i].love gte $npclovehigh>> <<if $wolfpackferocity gt $wolfpackharmony>> <<print $blackwolfmonster gte 1 ? "is" : "seems">> <span class="lewd">proud you're <<if $blackwolfmonster gte 1>><<nnpc_his "Black Wolf">><<else>>its<</if>> mate</span>. <<elseif $wolfpackharmony gt $wolfpackferocity>> <<print $blackwolfmonster gte 1 ? "is" : "seems">> <span class="lewd">glad you're <<if $blackwolfmonster gte 1>><<nnpc_his "Black Wolf">><<else>>its<</if>> mate</span>. <<else>> thinks of you <span class="lewd">as <<if $blackwolfmonster gte 1>><<nnpc_his "Black Wolf">><<else>>its<</if>> mate</span>. <</if>> <<elseif $NPCName[_i].love lte $npclovelow>> <<if $wolfpackferocity gt $wolfpackharmony>> wants you <span class="red">out of the pack</span>. <<elseif $wolfpackharmony gt $wolfpackferocity>> is <span class="red">wary of you</span>. <<else>> thinks you're <span class="red">a terrible packmate</span>. <</if>> <<else>> <<if $wolfpackferocity gt $wolfpackharmony>> thinks you're <span class="pink">a strong packmate</span>. <<elseif $wolfpackharmony gt $wolfpackferocity>> thinks you're <span class="teal">a worthy packmate</span>. <<else>> <span class="teal">values your place in the pack</span>. <</if>> <</if>> <<else>> <<if $NPCName[_i].love gte $npclovehigh>> <<if $wolfpackferocity gt $wolfpackharmony>> thinks you'd be <span class="green">a powerful packmate</span>. <<elseif $wolfpackharmony gt $wolfpackferocity>> thinks you'd be <span class="green">a valuable packmate</span>. <<else>> thinks you'd be <span class="green">a good packmate</span>. <</if>> <<elseif $NPCName[_i].love lte $npclovelow>> <<if $wolfpackferocity gt $wolfpackharmony>> thinks you'd be <span class="red">a weak packmate</span>. <<elseif $wolfpackharmony gt $wolfpackferocity>> thinks you'd be <span class="red">a useless packmate</span>. <<else>> thinks you'd be <span class="red">a poor packmate</span>. <</if>> <<else>> <<if $wolfpackferocity gt $wolfpackharmony>> wants to <span class="pink">tussle with you</span>. <<elseif $wolfpackharmony gt $wolfpackferocity>> wants to <span class="teal">spend more time with you</span>. <<else>> has no strong opinion of you. <</if>> <</if>> <</if>> <<case Gwylan>> <<run statusCheck("Gwylan")>> <<if isGwylanAbsent() is "nobody">><span class="red">Nobody</span><<else>>Gwylan<</if>> <<if C.npc.Gwylan.state is "scorned">> <<if $yearningLetter is 2>> is <span class="blue">waiting for you at the forest shop</span>. <<elseif $gwylanSeen?.includes("yearning_pub")>> is <span class="pink">sulking</span>. <<else>> has <span class="red">scorned your affections</span>. <</if>> <<elseif $gwylanSeen?.includes("ritual_sex") and $gwylan?.timer.ritual and Time.date.dayDifference(new DateTime($gwylan.timer.ritual)) lte 0>> <<if $gwylan.hunting gte 2>> <<if $gwylanSeen?.includes("romance")>> <span class="red">can't do this without you anymore</span>. <<else>> is <span class="red">looking for you</span>. <</if>> <<elseif _gwylanStatus.includesAny("heat") and _gwylanTF.known>> is <span class="lewd">eager to mate with you</span>. <<elseif _gwylanStatus.includesAny("aroused", "lust")>> <span class="lewd">eagerly awaits you at the forest shop</span>. <<else>> is <span class="blue">ready to enact the ritual with you</span>. <</if>> <<elseif $gwylanSeen?.includes("romance")>> <<if isGwylanAbsent() is "nobody">> is home. <<elseif $gwylan.taken>> <<if $gwylan.taken is "scarred">> will <span class="red">protect you from the world, and protect the world from you</span>. <<elseif C.npc.Gwylan.dom gte 140>> wants to <span class="lewd">pamper you forever</span>. <<else>> will <span class="lewd">care for you</span>. <</if>> <<elseif $gwylan?.wary gte 2 && ($brownFoxRevealed or $gwylanSeen?.includes("auriga_scar"))>> <<if $avery_fate is "ascended" and $auriga_scar gte 1>> has been <span class="red">broken by your betrayal</span>. <<else>> is <span class="red">disappointed in you</span>. <</if>> <<elseif C.npc.Gwylan.dom gte 140>> <span class="forest-green">won't stop thinking of you</span>. <<elseif C.npc.Gwylan.dom gte 110>> <span class="green">can't stop thinking of you</span>. <<elseif C.npc.Gwylan.dom gte 80>> <span class="green">thinks of you all the time</span>. <<elseif C.npc.Gwylan.dom gte 50>> <span class="green">thinks of you often</span>. <<else>> <span class="teal">thinks of you fondly</span>. <</if>> <<elseif $gwylanSeen?.includes("partners")>> <<if $gwylan?.wary gte 2 && ($brownFoxRevealed or $gwylanSeen?.includes("auriga_scar"))>> <<if $avery_fate is "ascended" and $auriga_scar gte 1>> feels <span class="red">betrayed</span>. <<else>> is <span class="red">disappointed in you</span>. <</if>> <<elseif _gwylanStatus.includes("wantsPregnancy")>> is <span class="pink">lost in you</span>. <<elseif C.npc.Gwylan.dom gte 140>> seems <span class="witchbloom">conflicted</span>. <<elseif _gwylanStatus.includes("heat")>> <<if _gwylanTF.known>> is <span class="pink">in <<if C.npc.Gwylan.gender is "m">>rut<<else>>heat<</if>></span>. <<else>> is <span class="pink">acting strange around you</span>. <</if>> <<elseif C.npc.Gwylan.dom gte 110>> <span class="green">can't stop thinking of you</span>. <<elseif C.npc.Gwylan.dom gte 80>> <span class="green">thinks of you all the time</span>. <<elseif C.npc.Gwylan.dom gte 50>> <span class="green">thinks of you often</span>. <<else>> <span class="teal">thinks of you fondly</span>. <</if>> <<elseif $gwylanSeen?.includes("yearning") and C.npc.Gwylan.dom gte 25>> <<if $gwylan?.wary gte 2 && ($brownFoxRevealed or $gwylanSeen?.includes("auriga_scar"))>> <<if $avery_fate is "ascended" and $auriga_scar gte 1>> feels <span class="red">betrayed</span>. <<else>> is <span class="red">wary of you</span>. <</if>> <<elseif C.npc.Gwylan.dom gte 75 and $dateCount?.GwylanSex gte 5>> is <span class="pink">giving in to your advances</span>. <<elseif _gwylanStatus.includes("lust")>> is <span class="pink">wavering</span>. <<elseif C.npc.Gwylan.dom gte 50>> <span class="teal">enjoys your companionship</span>. <<else>> wants things to go <span class="purple">back to the way they were</span>. <</if>> <<else>> <<if $gwylan?.wary gt 1 && ($brownFoxRevealed or $gwylanSeen?.includes("auriga_scar"))>> is <span class="red">wary of you</span>. <<elseif _gwylanStatus.includes("aroused")>> is <span class="pink">nervous about how close you are becoming</span>. <<elseif _gwylanLovePercent gte 80>> <span class="green">knows there's something special about you</span>. <<elseif _gwylanLovePercent lt 65 and $gwylanTalked?.length gte 6 and !$daily.gwylan.clothesTalk>> is <span class="blue">eager to hear more of your stories</span>. <<elseif _gwylanLovePercent gte 60>> <span class="teal">thinks there's something special about you</span>. <<elseif _gwylanLovePercent gte 40>> is <span class="lblue">fascinated by you</span>. <<elseif _gwylanLovePercent gte 20 or $avery_mansion>> is <span class="blue">curious about you</span>. <<else>> has no strong opinion of you. <</if>> <</if>> <!-- Persons of interest --> <<case Bailey>> Bailey <<if $renttime lte 0>> is <span class="red">ready to collect</span>. <<elseif $NPCName[_i].love gte 50>> thinks you <span class="blue">can handle yourself</span>. <<elseif $NPCName[_i].love gte 25>> thinks you're merchandise. <<else>> thinks you're bait. <</if>> <<case Briar>> Briar <<if $brothelshowdata?.missed>> is <span class="red">looking for you</span>. <<elseif $NPCName[_i].love gte 50>> <<if $NPCName[_i].dom gte 25>> thinks you're <span class="green"><<nnpc_his "Briar">> star</span>. <<else>> is <span class="teal">pleased with your success</span>. <</if>> <<elseif $NPCName[_i].love gte 25>> <<if $NPCName[_i].dom gte 25>> thinks you <span class="blue">can go the distance</span>. <<else>> thinks you <span class="blue">have what it takes</span>. <</if>> <<elseif $NPCName[_i].love lte $npclovelow>> <<if $NPCName[_i].dom gte $npcdomhigh>> thinks you're <span class="red">a common whore</span>. <<else>> thinks you're <span class="red">unprofessional</span>. <</if>> <<else>> <<if $NPCName[_i].dom gte 25>> wants you to <span class="purple">work harder</span>. <<else>> is <span class="pink">unimpressed with you</span>. <</if>> <</if>> <<case Charlie>> Charlie <<if $danceskill gte 800>> <<if $NPCName[_i].love gte 35>> thinks you're <span class="green"><<nnpc_his "Charlie">> star pupil</span>. <<else>> <span class="teal">recognises your talent</span>. <</if>> <<elseif $danceskill gte 400>> <<if $NPCName[_i].love gte 35>> <span class="teal">looks forward to seeing you in class</span>. <<else>> <span class="blue">sees your potential</span>. <</if>> <<elseif $danceskill gte 200>> <<if $NPCName[_i].love gte 35>> is happy to teach you. <<else>> wants to help you improve. <</if>> <<elseif $NPCName[_i].love lte $npclovelow>> thinks you're <span class="red">an arrogant pupil</span>. <<else>> is eager to show you the ropes. <</if>> <<case Darryl>> Darryl <<if $NPCName[_i].love gte 40>> <<if $NPCName[_i].dom gte 25>> wants to <span class="green">keep you safe</span>. <<else>> is <span class="teal">grateful you're in <<nnpc_his "Darryl">> life</span>. <</if>> <<elseif $NPCName[_i].love gte 20>> <<if $NPCName[_i].dom gte 25>> is <span class="blue">worried you're being exploited</span>. <<else>> finds you <span class="blue">comforting</span>. <</if>> <<elseif $NPCName[_i].love lte $npclovelow>> thinks you're <span class="red">a disappointment</span>. <<else>> <<if $NPCName[_i].dom gte 25>> hopes you're being careful. <<else>> thinks you've got room to grow. <</if>> <</if>> <<case Doren>> Doren <<if $dorenintro gte 1>> <<if $NPCName[_i].love gte 50>> <span class="green">watches out for you</span>. <<else>> is <span class="teal">willing to listen</span>. <</if>> <<elseif $NPCName[_i].love lte $npclovelow>> <span class="red">expects better of you</span>. <<else>> <<if $NPCName[_i].love gte 50>> <span class="green">wishes other students had your enthusiasm</span>. <<elseif $NPCName[_i].love gte 25>> thinks you're <span class="teal">a fine student</span>. <<else>> has no strong opinion of you. <</if>> <</if>> <<case Harper>> Harper <<if $awareness gte 400>> <<if $NPCName[_i].love gte 50>> is <span class="red">eager to treat you</span>. <<else>> wants to <span class="red">study you</span>. <</if>> <<elseif $awareness gte 200>> <<if $NPCName[_i].love gte 50>> is <span class="blue">keeping a careful eye on your progress</span>. <<else>> is <span class="blue">concerned for your well-being</span>. <</if>> <<elseif $NPCName[_i].love lte $npclovelow>> <<if $NPCName[_i].dom gte $npcdomhigh>> thinks you're <span class="red">pathetic</span>. <<elseif $NPCName[_i].dom lte $npcdomlow>> thinks you're <span class="red">irritating</span>. <<else>> thinks you're <span class="red">terrible</span>. <</if>> <<else>> <<if $NPCName[_i].love gte 50>> is <span class="green">glad that you are well</span>. <<else>> wants to <span class="green">check up on you</span>. <</if>> <</if>> <<case Jordan>> Jordan <<if $NPCName[_i].love gte 50>> considers you <span class="green">a valued member of the faith</span>. <<elseif $NPCName[_i].love gte 25>> is <span class="teal">impressed with your dedication</span>. <<else>> prays for you. <</if>> <<case Landry>> <<set $_mickey to $mickeyPub gte 2>> Landry<<if $_mickey>> and 'Mickey'<</if>> <<if $moneyStats?.pubStolenGoods?.earned gte 800000>> <<if $pub_task_stat gte 25>> <<if $_mickey>>are<<else>>is<</if>> <span class="green">glad you're on <<if $_mickey>>their<<else>><<nnpc_his "Landry">><</if>> side</span>. <<else>> <<if $_mickey>>are <span class="teal">impressed by your talents</span>.<<else>>is <span class="teal">impressed by your sticky fingers</span>.<</if>> <</if>> <<elseif $moneyStats?.pubStolenGoods?.earned gte 400000>> <<if $pub_task_stat gte 25>> think<<if !$_mickey>>s<</if>> you're <span class="teal">helpful</span>. <<else>> think<<if !$_mickey>>s<</if>> you're <span class="teal">profitable</span>. <</if>> <<elseif $moneyStats?.pubStolenGoods?.earned gte 100000>> <<if $pub_task_stat gte 25>> think<<if !$_mickey>>s<</if>> you're <span class="blue">useful</span>. <<else>> expect<<if !$_mickey>>s<</if>> good things from you. <</if>> <<else>> <<if $_mickey>>have<<else>>has<</if>> no strong opinion of you. <</if>> <<case Leighton>> Leighton <<if $NPCName[_i].love gte 50>> <<if $NPCName[_i].dom gte 20>> <<if $headdrive is 1>> has <span class="red">a folder devoted to you</span>. <<else>> shows <span class="lewd">special interest</span> in you. <</if>> <<else>> <<if $delinquency gte 400>> is aware of your reputation. <<else>> thinks you're <span class="lewd">a model student</span>. <</if>> <</if>> <<elseif $NPCName[_i].love gte 25>> <<if $NPCName[_i].dom gte 20>> sees you as <span class="lewd">an enthusiastic learner</span>. <<else>> <<if $delinquency gte 400>> is aware of your reputation. <<else>> recognises your studiousness. <</if>> <</if>> <<elseif $NPCName[_i].love lte $npclovelow>> thinks you <span class="red">need to be taught a lesson</span>. <<else>> <<if $NPCName[_i].dom gte 20>> thinks you <span class="lewd">need hands-on education</span>. <<else>> <<if $delinquency gte 400>> is aware of your reputation. <<else>> is watching you. <</if>> <</if>> <</if>> <<case Mason>> Mason <<if $NPCName[_i].love gte 35>> <<if $NPCName[_i].lust gte 40>> <span class="lewd">can't get you out of <<nnpc_his "Mason">> mind</span>. <<else>> is <span class="green">proud of how far you've come</span>. <</if>> <<elseif $NPCName[_i].love gte 15>> <<if $NPCName[_i].lust gte 30>> has <span class="lewd">an interest in you</span>. <<else>> wants the best for you. <</if>> <<elseif $NPCName[_i].love lte $npclovelow>> wants you to <span class="red">push yourself</span>. <<else>> <<if $NPCName[_i].lust gte 20>> thinks you're <span class="lewd">a pest</span>. <<else>> has no strong opinion of you. <</if>> <</if>> <<case Morgan>> Morgan <<if $NPCName[_i].love gte 50>> <span class="red">covets you</span>. <<elseif $NPCName[_i].love gte 25>> <span class="pink">wants you back</span>. <<else>> <span class="purple">wants you</span>. <</if>> <<case River>> River <<if $NPCName[_i].love gte 40>> thinks you <span class="green">will go far</span>. <<elseif $NPCName[_i].love gte 20>> <span class="teal">keeps an eye on you</span>. <<elseif $NPCName[_i].love lte $npclovelow>> <span class="red">expects better of you</span>. <<else>> <<if $soup_kitchen_known is 1>> is <span class="blue">unsure about you</span>. <<else>> has no strong opinion of you. <</if>> <</if>> <<case Sam>> Sam <<if $chef_state gte 1>> <<if $chef_state gte 9>> <span class="gold">couldn't be happier with you</span>. <<elseif $chef_sus gte 50>> <span class="pink">wonders about your process</span>. <<elseif $NPCName[_i].love gte 25>> thinks you're <span class="green">the employee of the month</span>. <<else>> is <span class="teal">hopeful you'll work out as chef</span>. <</if>> <<else>> <<if $NPCName[_i].love gte 10>> is <span class="teal">beginning to trust you</span>. <<else>> has no strong opinion of you. <</if>> <</if>> <<case Sirris>> Sirris <<if $adultshopunlocked>> <<if $NPCName[_i].love gte 50>> <<if $sydneyromance gte 1 and $sydneySeen?.includes("parent") and pregnancyCompatible("Sydney") and $rng gte 51>> <span class="green">wants grandkids</span>. <<else>> is <span class="teal">grateful for all that you've done</span>. <</if>> <<else>> thinks you're <span class="teal">considerate</span>. <</if>> <<elseif $NPCName[_i].love lte $npclovelow>> <span class="red">knows you can do better</span>. <<else>> <<if $NPCName[_i].love gte 50>> <span class="green">wishes other students had your enthusiasm</span>. <<elseif $NPCName[_i].love gte 25>> thinks you're <span class="teal">a fine student</span>. <<else>> <<if $adultshopintro>> <span class="blue">could use your help</span>. <<else>> has no strong opinion of you. <</if>> <</if>> <</if>> <<case Winter>> Winter <<if $NPCName[_i].love gte 75>> <<set $_antiquesFound to Object.values($museumAntiques.antiques).filter(status => status !== "notFound").length>> <<set $_paintingsFound to Object.values($museumAntiques.paintings).filter(status => status !== "notFound").length>> <<set $_totalFound to $_antiquesFound + $_paintingsFound>> <<if $_totalFound is $museumAntiques.maxCount + Object.values($museumAntiques.paintings).length>> views you as <span class="green">a fellow historian</span>. <<else>> considers you <span class="green"><<nnpc_his "Winter">> assistant</span>. <</if>> <<elseif $NPCName[_i].love gte 50>> is <span class="teal">impressed with your respect for history</span>. <<elseif $NPCName[_i].love gte 25>> <span class="teal">appreciates your help</span>. <<elseif $NPCName[_i].love lte $npclovelow>> thinks you're <span class="red">insolent</span>. <<else>> has no strong opinion of you. <</if>> <<case Niki>> Niki <<if $photo_known gte 2>> <<if $NPCName[_i].love gte 50>> <<if $fame.model gte 2000>> considers you <span class="green"><<nnpc_his "Niki">> muse</span>. <<else>> considers you <span class="green">a professional</span>. <</if>> <<elseif $NPCName[_i].love gte 25>> considers you <span class="teal">a colleague</span>. <<elseif $NPCName[_i].love lte $npclovelow>> thinks you're <span class="red">obnoxious</span>. <<else>> thinks you're <span class="blue">a novice</span>. <</if>> <<else>> has no strong opinion of you. <</if>> <<case Quinn>> Quinn <<if $NPCName[_i].love gte 50>> <<if $NPCName[_i].lust gte 40>> thinks you're <span class="red">wonderful</span>. <<else>> is <span class="pink">monitoring you</span>. <</if>> <<elseif $NPCName[_i].love gte 25>> <<if $NPCName[_i].lust gte 30>> has <span class="purple">taken an interest in you</span>. <<else>> has you <span class="blue">on <<nnpc_his "Quinn">> radar</span>. <</if>> <<elseif $NPCName[_i].love lte $npclovelow>> thinks you're <span class="red">terrible</span>. <<else>> <<if $NPCName[_i].lust gte 20>> keeps you <span class="blue">in the back of <<nnpc_his "Quinn">> mind</span>. <<else>> has no strong opinion of you. <</if>> <</if>> <<case Remy>> Remy <<if $livestock_intro isnot undefined>> <<if $NPCName[_i].love gte 50>> <<if $NPCName[_i].dom gte 25>> thinks you're <span class="red">the pride of the herd</span>. <<else>> wishes you weren't so defiant. <</if>> <<elseif $NPCName[_i].love gte 25>> <<if $NPCName[_i].dom gte 25>> is <span class="pink">pleased with your production</span>. <<else>> is <span class="purple">willing to show you your place</span>. <</if>> <<elseif $NPCName[_i].love lte $npclovelow>> <<if $NPCName[_i].dom gte $npcdomhigh>> will <span class="red">milk you for all you're worth</span>. <<elseif $NPCName[_i].dom lte $npcdomlow>> is <span class="red">determined to break you</span>. <<else>> thinks you're <span class="red">a stubborn <<= $player.gender_appearance is "m" ? "bull" : "cow">></span>. <</if>> <<else>> <<if $NPCName[_i].dom gte 25>> is <span class="purple">committed to improving your yield</span>. <<else>> thinks you <span class="red">need to be broken</span>. <</if>> <</if>> <<else>> has no strong opinion of you. <</if>> <<case Wren>> Wren <<if $NPCName[_i].love gte 35>> <<if $NPCName[_i].dom gte 25>> finds you <span class="green">entertaining</span>. <<else>> is <span class="green">up for anything</span>. <</if>> <<elseif $NPCName[_i].love gte 15>> <<if $NPCName[_i].dom gte 25>> is <span class="teal">intrigued by you</span>. <<else>> thinks you're <span class="teal">fun</span>. <</if>> <<elseif $NPCName[_i].love lte $npclovelow>> <<if $NPCName[_i].dom gte $npcdomhigh>> thinks you <span class="red">can't be trusted</span>. <<elseif $NPCName[_i].dom lte $npcdomlow>> thinks you're <span class="red">a cheat</span>. <<else>> thinks you're <span class="red">a pain</span>. <</if>> <<else>> <<if $NPCName[_i].dom gte 25>> thinks you're <span class="pink">cute, but boring</span>. <<else>> is cautious around you. <</if>> <</if>> <<case Zephyr>> Zephyr <<if $NPCName[_i].love gte 75>> <<if $pirate_rank is 1>> wants you to <span class="green">see the world</span>. <<else>> will <span class="green">show you the world</span>. <</if>> <<elseif $NPCName[_i].love gte 50>> enjoys <span class="teal"><<nnpc_his "Zephyr">> adventures with you</span>. <<else>> thinks you're sheltered. <</if>> <!-- Default cases --> <<default>> _npc <<if $NPCName[_i].love gte $npclovehigh>> <<if $NPCName[_i].dom gte $npcdomhigh>> thinks you're <span class="green">adorable</span>. <<elseif $NPCName[_i].dom lte $npcdomlow>> thinks you're <span class="green">inspiring</span>. <<else>> thinks you're <span class="green">delightful</span>. <</if>> <<elseif $NPCName[_i].love lte $npclovelow>> <<if $NPCName[_i].dom gte $npcdomhigh>> thinks you're <span class="red">pathetic</span>. <<elseif $NPCName[_i].dom lte $npcdomlow>> thinks you're <span class="red">irritating</span>. <<else>> thinks you're <span class="red">terrible</span>. <</if>> <<else>> <<if $NPCName[_i].dom gte $npcdomhigh>> thinks you're <span class="pink">cute</span>. <<elseif $NPCName[_i].dom lte $npcdomlow>> <span class="teal">looks up to you</span>. <<else>> has no strong opinion of you. <</if>> <</if>> <</switch>> <</widget>> <<widget "push_nnpc_genderknown">> <!-- Can be used in any situation to let all active named NPCs known the player's gender --> <!-- Use _args[0] to ignore clothing --> <!-- Won't ignore the chastity belt's "hidden" property (for now) --> <<if _args[0] or $exposed gte 2>> <<if !playerChastity("hidden")>> <<run $npc.forEach(npc => $genderknown.pushUnique(npc))>> <</if>> <</if>> <</widget>><<widget "underworld_nickname">><<silently>> <<if $fame.sex gte 400>> <<if $fame.prostitution gte 400>> <<if $fame.rape gte 400>> <<if $fame.bestiality gte 400>> <<if $fame.scrap gte 400>> <<if $fame.pimp gte 400>> <<if $player.gender_appearance is "m">> <<set _text_output to "Our Boy">> <<else>> <<set _text_output to "Our Girl">> <</if>> <<else>> <<if $player.gender_appearance is "m">> <<set _text_output to "The Boy">> <<else>> <<set _text_output to "The Girl">> <</if>> <</if>> <<else>> <<if $fame.pimp gte 400>> <<set _text_output to "Plaything">> <<else>> <<set _text_output to "Fucktoy">> <</if>> <</if>> <<else>> <<if $fame.scrap gte 400>> <<if $fame.pimp gte 400>> <<set _text_output to "Pike">> <<else>> <<set _text_output to "Rapier">> <</if>> <<else>> <<if $fame.pimp gte 400>> <<set _text_output to "Ultra Slut">> <<else>> <<set _text_output to "Super Slut">> <</if>> <</if>> <</if>> <<else>> <<if $fame.bestiality gte 400>> <<if $fame.scrap gte 400>> <<if $fame.pimp gte 400>> <<set _text_output to "Milker">> <<else>> <<set _text_output to "Milky">> <</if>> <<else>> <<if $fame.pimp gte 400>> <<set _text_output to "Kibbles">> <<else>> <<set _text_output to "Nibbles">> <</if>> <</if>> <<else>> <<if $fame.scrap gte 400>> <<if $fame.pimp gte 400>> <<set _text_output to "Weaver">> <<else>> <<set _text_output to "Needle">> <</if>> <<else>> <<if $fame.pimp gte 400>> <<set _text_output to "Pokies">> <<else>> <<set _text_output to "Pokey">> <</if>> <</if>> <</if>> <</if>> <<else>> <<if $fame.rape gte 400>> <<if $fame.bestiality gte 400>> <<if $fame.scrap gte 400>> <<if $fame.pimp gte 400>> <<set _text_output to "Wolf Whore">> <<else>> <<set _text_output to "Wolf Slut">> <</if>> <<else>> <<if $fame.pimp gte 400>> <<set _text_output to "Dog Whore">> <<else>> <<set _text_output to "Dog Slut">> <</if>> <</if>> <<else>> <<if $fame.scrap gte 400>> <<if $fame.pimp gte 400>> <<set _text_output to "Spike">> <<else>> <<set _text_output to "Rough-and-Tumble">> <</if>> <<else>> <<if $fame.pimp gte 400>> <<set _text_output to "Freebies">> <<else>> <<set _text_output to "Free Slut">> <</if>> <</if>> <</if>> <<else>> <<if $fame.bestiality gte 400>> <<if $fame.scrap gte 400>> <<if $fame.pimp gte 400>> <<set _text_output to "Doggy Squeezer">> <<else>> <<set _text_output to "Wolf Warrior">> <</if>> <<else>> <<if $fame.pimp gte 400>> <<set _text_output to "Doggy Milker">> <<else>> <<set _text_output to "Wolf Rider">> <</if>> <</if>> <<else>> <<if $fame.scrap gte 400>> <<if $fame.pimp gte 400>> <<if $player.gender_appearance is "m">> <<set _text_output to "Pimp">> <<else>> <<set _text_output to "Madame">> <</if>> <<else>> <<set _text_output to "Sabre">> <</if>> <<else>> <<if $fame.pimp gte 400>> <<if $player.gender_appearance is "m">> <<set _text_output to "Slut Dad">> <<else>> <<set _text_output to "Slut Mum">> <</if>> <<else>> <<set _text_output to "Slut">> <</if>> <</if>> <</if>> <</if>> <</if>> <<else>> <<if $fame.prostitution gte 400>> <<if $fame.rape gte 400>> <<if $fame.bestiality gte 400>> <<if $fame.scrap gte 400>> <<if $fame.pimp gte 400>> <<if $player.gender_appearance is "m">> <<set _text_output to "Hound Father">> <<else>> <<set _text_output to "Hound Mother">> <</if>> <<else>> <<set _text_output to "Hound">> <</if>> <<else>> <<if $fame.pimp gte 400>> <<set _text_output to "Dogged One">> <<else>> <<set _text_output to "Pup">> <</if>> <</if>> <<else>> <<if $fame.scrap gte 400>> <<if $fame.pimp gte 400>> <<set _text_output to "Dagger">> <<else>> <<set _text_output to "Scar">> <</if>> <<else>> <<if $fame.pimp gte 400>> <<set _text_output to "Sex Beggar">> <<else>> <<set _text_output to "Rape Beggar">> <</if>> <</if>> <</if>> <<else>> <<if $fame.bestiality gte 400>> <<if $fame.scrap gte 400>> <<if $fame.pimp gte 400>> <<set _text_output to "Fang">> <<else>> <<set _text_output to "Claw">> <</if>> <<else>> <<if $fame.pimp gte 400>> <<set _text_output to "The Hound">> <<else>> <<set _text_output to "Puppy">> <</if>> <</if>> <<else>> <<if $fame.scrap gte 400>> <<if $fame.pimp gte 400>> <<set _text_output to "Stiletto">> <<else>> <<set _text_output to "Knife">> <</if>> <<else>> <<if $fame.pimp gte 400>> <<if $player.gender_appearance is "m">> <<set _text_output to "Whoredad">> <<else>> <<set _text_output to "Whoremum">> <</if>> <<else>> <<set _text_output to "Penny Chaser">> <</if>> <</if>> <</if>> <</if>> <<else>> <<if $fame.rape gte 400>> <<if $fame.bestiality gte 400>> <<if $fame.scrap gte 400>> <<if $fame.pimp gte 400>> <<set _text_output to "Tasty">> <<else>> <<set _text_output to "The Rabbit">> <</if>> <<else>> <<if $fame.pimp gte 400>> <<set _text_output to "Kitten">> <<else>> <<set _text_output to "Bitch">> <</if>> <</if>> <<else>> <<if $fame.scrap gte 400>> <<if $fame.pimp gte 400>> <<set _text_output to "The Rough One">> <<else>> <<if $player.gender_appearance is "m">> <<set _text_output to "Spear-Prick">> <<else>> <<set _text_output to "Vagina Dentata">> <</if>> <</if>> <<else>> <<if $fame.pimp gte 400>> <<set _text_output to "Free Samples">> <<else>> <<set _text_output to "Rape Bait">> <</if>> <</if>> <</if>> <<else>> <<if $fame.bestiality gte 400>> <<if $fame.scrap gte 400>> <<if $fame.pimp gte 400>> <<if $player.gender_appearance is "m">> <<set _text_output to "Den Father">> <<else>> <<set _text_output to "Den Mother">> <</if>> <<else>> <<set _text_output to "The Wolf">> <</if>> <<else>> <<if $fame.pimp gte 400>> <<set _text_output to "Rancher">> <<else>> <<set _text_output to "Paw">> <</if>> <</if>> <<else>> <<if $fame.scrap gte 400>> <<if $fame.pimp gte 400>> <<set _text_output to "The Rat">> <<else>> <<set _text_output to "Scrappy">> <</if>> <<else>> <<if $fame.pimp gte 400>> <<if $player.gender_appearance is "m">> <<set _text_output to "Dad">> <<else>> <<set _text_output to "Mum">> <</if>> <<else>> <<set _text_output to "meat">> <</if>> <</if>> <</if>> <</if>> <</if>> <</if>> <<if _args[0] is "cap">><<capitalise>><</if>> <</silently>><<print _text_output>><</widget>> <<widget "overworld_nickname">><<silently>> <<if $fame.exhibitionism gte 400>> <<if $fame.good gte 400>> <<if $fame.business gte 400>> <<if $fame.social gte 400>> <<set _text_output to "The Orphan">> <<elseif $fame.model gte 400>> <<set _text_output to "Crowd Pleaser">> <<else>> <<set _text_output to "Gold Heart">> <</if>> <<else>> <<if $fame.social gte 400>> <<if $fame.model gte 400>> <<set _text_output to "Scandalous">> <<else>> <<set _text_output to "Flaunty">> <</if>> <<else>> <<if $fame.model gte 400>> <<set _text_output to "Venus">> <<else>> <<set _text_output to "Smiles">> <</if>> <</if>> <</if>> <<else>> <<if $fame.business gte 400>> <<if $fame.social gte 400>> <<if $fame.model gte 400>> <<set _text_output to "Centerfold">> <<else>> <<set _text_output to "Orchid">> <</if>> <<else>> <<if $fame.model gte 400>> <<set _text_output to "Hot Shot">> <<else>> <<if $player.gender_appearance is "m">> <<set _text_output to "Suspicious Shop Boy">> <<else>> <<set _text_output to "Suspicious Shop Girl">> <</if>> <</if>> <</if>> <<else>> <<if $fame.social gte 400>> <<if $fame.model gte 400>> <<if $player.gender_appearance is "m">> <<set _text_output to "Star">> <<else>> <<set _text_output to "Starlet">> <</if>> <<else>> <<if $player.gender_appearance is "m">> <<set _text_output to "Party Boy">> <<else>> <<set _text_output to "Party Girl">> <</if>> <</if>> <<else>> <<if $fame.model gte 400>> <<if $player.gender_appearance is "m">> <<set _text_output to "Pin-Up Boy">> <<else>> <<set _text_output to "Pin-Up Girl">> <</if>> <<else>> <<if $player.gender_appearance is "m">> <<set _text_output to "Lewd Boy">> <<else>> <<set _text_output to "Lewd Girl">> <</if>> <</if>> <</if>> <</if>> <</if>> <<else>> <<if $fame.good gte 400>> <<if $fame.business gte 400>> <<if $fame.social gte 400>> <<if $fame.model gte 400>> <<set _text_output to "Icon">> <<else>> <<set _text_output to "Flower">> <</if>> <<else>> <<if $fame.model gte 400>> <<set _text_output to "Mascot">> <<else>> <<set _text_output to "Charity">> <</if>> <</if>> <<else>> <<if $fame.social gte 400>> <<if $fame.model gte 400>> <<set _text_output to "Poppet">> <<else>> <<set _text_output to "Preachy">> <</if>> <<else>> <<if $fame.model gte 400>> <<set _text_output to "Muse">> <<else>> <<set _text_output to "Angel">> <</if>> <</if>> <</if>> <<else>> <<if $fame.business gte 400>> <<if $fame.social gte 400>> <<if $fame.model gte 400>> <<set _text_output to "Promo">> <<else>> <<set _text_output to "Tulip">> <</if>> <<else>> <<if $fame.model gte 400>> <<set _text_output to "Money Shot">> <<else>> <<if $player.gender_appearance is "m">> <<set _text_output to "Shop Boy">> <<else>> <<set _text_output to "Shop Girl">> <</if>> <</if>> <</if>> <<else>> <<if $fame.social gte 400>> <<if $fame.model gte 400>> <<set _text_output to "Trendy">> <<else>> <<set _text_output to "Wallflower">> <</if>> <<else>> <<if $fame.model gte 400>> <<if $player.gender_appearance is "m">> <<set _text_output to "Glamour Boy">> <<else>> <<set _text_output to "Glamour Girl">> <</if>> <<else>> <<if $player.gender_appearance is "m">> <<set _text_output to "some orphan boy">> <<else>> <<set _text_output to "some orphan girl">> <</if>> <</if>> <</if>> <</if>> <</if>> <</if>> <<if _args[0] is "cap">><<capitalise>><</if>> <</silently>><<print _text_output>><</widget>> <<widget "pcpetname">><<silently>> <<if _args[0]>> <<set $_npc to _args[0]>> <<elseif $npc.length gte 1>> <<set $_npc to $npc[0]>> <</if>> <<set $_mod to _args[1]>> <<if $wraith.mimic is $_npc>> <<set $_wraith to true>> <</if>> <<set _names to []>> <<set _gender to $player.gender_appearance>> <<switch $_npc>> <<case "Avery" "avery">> /* note: female terms for male pc are intentional */ <<set _names.push(_gender is "m" ? "boy" : "girl")>> <<set _love to C.npc.Avery.love>> <<set _rage to C.npc.Avery.rage>> <<set _dom to C.npc.Avery.dom>> <<if _love + _rage gte 25>> /* generic */ <<if _love gte 30>> <<set _names.push("doll", "sunshine")>> <<if _love gte 60>> <<set _names.push("princess")>> <<if _gender is "m">><<set _names.push("prince")>><</if>> <</if>> <</if>> <<if _rage gte 30>> <<set _names.push("brat")>> <<if _rage gte 60>> <<set _names.push("cunt")>> <<if _gender is "m">><<set _names.push("dick")>><</if>> <</if>> <</if>> /* tf */ <<if ($cat gte 6) and ($transformationParts.cat.ears isnot "hidden") and ($transformationParts.cat.tail isnot "hidden")>> <<set _names.push("kitten", "pussy")>> <</if>> <<if ($wolfgirl gte 6) and ($transformationParts.wolf.ears isnot "hidden") and ($transformationParts.wolf.tail isnot "hidden")>> <<set _names.push("puppy", "pup")>> <</if>> <<if ($cow gte 6) and ($transformationParts.cow.ears isnot "hidden") and ($transformationParts.cow.tail isnot "hidden") and ($transformationParts.cow.horns isnot "hidden")>> <<set _names.push(_gender is "m"? "cowboy" : "cowgirl")>> <</if>> <<if ($harpy gte 6) and ($transformationParts.bird.wings isnot "hidden") and ($transformationParts.bird.tail isnot "hidden") and ($transformationParts.bird.plumage isnot "hidden")>> <<set _names.push("nestling", "cygnet")>> <</if>> <<if ($fox gte 6) and ($transformationParts.fox.ears isnot "hidden") and ($transformationParts.fox.tail isnot "hidden")>> <<set _names.push(_gender is "m" ? "kit" : "vixen")>> <</if>> <<if ($angel gte 6) and ($transformationParts.angel.wings isnot "hidden") and ($transformationParts.angel.halo isnot "hidden")>> <<set _names.push("angel", "cherub")>> <</if>> <<if ($demon gte 6) and ($transformationParts.demon.wings isnot "hidden") and ($transformationParts.demon.tail isnot "hidden") and ($transformationParts.demon.horns isnot "hidden")>> <<set _names.push("demon", "succubus")>> <<if _gender is "m">><<set _names.push("incubus")>><</if>> <</if>> /* attitude and dominance */ <<if random(0, 100) lt 40>> <<if $submissive gte 1150 or _dom gte 25>> <<set _names.push("pet")>> <<if $submissive gte 1500 or _dom gte 50>> <<set _names.push("toy")>> <<if $submissive gte 1900 or _dom gte 75>> <<set _names.push("slave")>> <</if>> <</if>> <</if>> <</if>> /* fame */ <<if random(0, 100) lt 20>> <<if $fame.exhibitionism gte 400>> <<set _names.push("show off")>> <<if $fame.exhibitionism gte 600>> <<set _names.push("flaunty")>> <</if>> <</if>> <<if $fame.sex gte 400>> <<set _names.push("nymph")>> <<if $fame.sex gte 600>> <<set _names.push("slut")>> <</if>> <</if>> <<if $fame.prostitution gte 400>> <<set _names.push("tramp")>> <<if $fame.prostitution gte 600>> <<set _names.push("whore")>> <</if>> <</if>> <<if $fame.rape gte 400>> <<set _names.push("fuckdoll")>> <<if $fame.rape gte 600>> <<set _names.push("fucktoy")>> <</if>> <</if>> <</if>> /* mimic */ <<if $_wraith>> <<set _names.push("thief","graverobber")>> <</if>> <</if>> /* pick and decorate */ <<set _text_output to _names.pluck()>> <<if _love gte 30 and random(0, 100) lt _love - 30 and !["boy","girl"].includes(_text_output)>> <<set _text_output to "little " + _text_output>> <</if>> <<if _rage gte 50 and random(0, 100) lt _rage - 30>> <<set _text_output to "insufferable " + _text_output>> <</if>> <<if _love gte 60 and random(0, 100) lt _love - 30 and _args[1] isnot "my">> <<set _text_output to "my " + _text_output>> <</if>> <<case "wraith" "Wraith" "Ivory Wraith">> <<set _pre to [""]>> /* generic */ <<set _names.push( "manifestation", "reflection", "body" )>> <<if playerIsPregnant()>> <<set _names.push("lifebearer")>> <</if>> <<if $location is "lake" or $location is "forest">> <<set _names.push("trespasser")>> <</if>> <<if $avery_fate is "ascended">> <<set _names.push("betrayer", "footstool")>> <</if>> /* angry or calm */ <<if $wraith.state is "haunt" and $_mod isnot "nice" or $_mod is "angry">> <<set _names.push( "graverobber","graverobber","graverobber","graverobber","graverobber","graverobber", "thief","thief","thief","thief", "vulture","vulture", "forsaker", "scion", "twig" )>> <<if playerIsPregnant()>> <<set _names.push("seedbed")>> <</if>> <<set _pre.push( "wretched ", "baleful ", "cruel " )>> <<else>> <<if $wraith.state is "despair">> <<set _names.push("accomplice")>> <</if>> <<set _names.push( "promise", "droplet", "memory", "pearl" )>> <<if $temple_rank isnot undefined and $temple_rank isnot "prospective">> <<set _names.push( "coalwalker" )>> <</if>> <<if $temple_confessor_intro>> <<set _names.push( "confessor" )>> <</if>> <</if>> /* offspring */ <<if ["dead","sold"].includes($wraith.offspring)>> <<set _names.push( "oathbreaker", "mutineer", "serpent" )>> <</if>> /* tfs, intended to not check for part visibility */ <<if $angel gte 6>> <<set _names.push( "messenger", "gaoler" )>> <<set _pre.push("fluttering ")>> <</if>> <<if $fallenangel gte 2>> <<set _names.push( "wingless", "shard" )>> <<set _pre.push("fallen ")>> <</if>> <<if $demon gte 6>> <<set _names.push( "hellion", "imp" )>> <</if>> /* pick and decorate */ <<set _text_output to _names.pluck()>> <<if random(1,100) lte 15>> <<set _text_output to _pre.pluck() + _text_output>> <</if>> <<case "gwylan" "Gwylan">> <<set _yearning to C.npc.Gwylan.dom>> <<if ["good", "dear", "bad", "naughty"].includes(_args[1])>> <<set _names.push(_gender is "m" ? "boy" : "girl")>> <</if>> /* tfs, intended to not check for part visibility */ <<if $cat gte 6>> <<set _names.push("kitty")>> <<if ["name"].includes(_args[1])>> <<set _names.push("paws")>> <<if $gwylanSeen?.includes("cream_lick")>> <<set _names.push("rough-tongue")>> <</if>> <</if>> <<elseif $wolfgirl gte 6>> <<set _names.push("puppy")>> <<if _yearning gte 100>> <<set _names.push("dog")>> <<if $angel gte 6 or $fallenangel gte 2 or $dryad gte 6>> <<set _names.push("mutt")>> <</if>> <<if $demon gte 6>> <<set _names.push("hellpup")>> <</if>> <</if>> <<elseif $harpy gte 6>> <<set _names.push("birdie", "canary")>> <<if $demon gte 6>> <<set _names.push("siren")>> <</if>> <<if ["name"].includes(_args[1])>> <<set _names.push("chirp")>> <</if>> <<elseif $fox gte 6>> <<set _names.push("kit")>> <<if ["name"].includes(_args[1])>> <<set _names.push("vix")>> <<if $gwylanSeen?.includes("gwylan_tf_revealed")>> <<set _names.push("kin")>> <</if>> <<if $demon gte 6>> <<set _names.push("foxfire")>> <</if>> <</if>> <<elseif $cow gte 6>> <<set _names.push("calf")>> <<if ["name"].includes(_args[1])>> <<set _names.push("bright eyes")>> <</if>> <<elseif _yearning gte 35>> <<set _names.push("puppy")>> <</if>> <<if $angel gte 6 or $fallenangel gte 2>> <<if ["name"].includes(_args[1])>> <<set _names.push("angel eyes", "twinkle-top")>> <</if>> <<elseif $demon gte 6>> <<elseif $dryad gte 6>> <<set _names.push("seedling", "sprout")>> <</if>> /* clothing */ <<if $worn.upper.name is "pumpkin dress">> <<set _names.push("pumpkin")>> <</if>> /* other */ <<if (_yearning gte 75 or $hypnosis_traits.devotion gte 4) and ["simple", undefined].includes(_args[1]) or ["my"].includes(_args[1])>> <<set _names.push("pet")>> <</if>> <<if $gwylanSeen?.includes("romance") and ["simple", "name", undefined].includes(_args[1])>> <<set _names.push("love", "dearest")>> <</if>> <<if _names.length is 0 or ["simple", "name", undefined].includes(_args[1])>> <<set _names.push("dear")>> <</if>> /* pick and decorate */ <<set _text_output to _names.pluck()>> <<if !["simple", "bad", "naughty", "good", "dear", "name"].includes(_args[1]) and (_args[1] is "my" or _yearning gte 75 and random(0, 150) lt _yearning - 50 or _text_output.includes("pet"))>> <<set $_addMyToStart to true>> <</if>> <<if !["simple", "name"].includes(_args[1]) and random(0, 150) lt _yearning - 50 and !["boy","girl","dear","love","dearest"].includes(_text_output)>> <<set _text_output to "little " + _text_output>> <</if>> <<if !["simple", "bad", "naughty", "name"].includes(_args[1]) and (["good", "dear"].includes(_args[1]) or _yearning gte 60 and random(0, 150) lt _yearning - 50 and !$gwylan.punishment and $_addMyToStart) and !["dear","love","dearest"].includes(_text_output)>> <<if ["good", "dear"].includes(_args[1])>> <<if _args[1] is "good">> <<set _text_output to "good " + _text_output>> <<else>> <<set _text_output to "dear " + _text_output>> <</if>> <<elseif random(0, 1)>> <<set _text_output to "good " + _text_output>> <<else>> <<set _text_output to "dear " + _text_output>> <</if>> <<elseif !["simple", "good", "dear", "name"].includes(_args[1]) and (["bad", "naughty"].includes(_args[1]) or $gwylan.punishment and $_addMyToStart) and !["dear","love","dearest"].includes(_text_output)>> <<if ["bad", "naughty"].includes(_args[1])>> <<if _args[1] is "bad">> <<set _text_output to "bad " + _text_output>> <<else>> <<set _text_output to "naughty " + _text_output>> <</if>> <<elseif random(0, 1)>> <<set _text_output to "bad " + _text_output>> <<else>> <<set _text_output to "naughty " + _text_output>> <</if>> <</if>> <<if $_addMyToStart>> <<set _text_output to "my " + _text_output>> <</if>> <<default>> <<girl>> <</switch>> <</silently>><<print _text_output>><</widget>> <<widget "pcPetname">><<silently>> <<pcpetname _args[0] _args[1]>><<capitalise>> <</silently>><<print _text_output>><</widget>> <<widget "foxnickname">><<silently>> <<if $fox gte 6>> <<set _text_output to "kit">> <<elseif $cat gte 6>> <<set _text_output to "stray">> <<elseif $wolfgirl gte 6>> <<set _text_output to "pup">> <<else>> <<set _text_output to "meat">> <</if>> <</silently>><<print _text_output>><</widget>><<widget "orgasm">> <<orgasmstat>><<orgasmcount 1>><<set $orgasmdown to 3>> <<if $combat is 1>> <<set $speechcum to 1>><<set $speechorgasmcount += 1>> <</if>> <<tinyPenisDryOrgasmChance>> <<if $hypnosis_traits.silence>> <<set _noSlimes to true>> <</if>> <<if $earSlime.growth gte 100 and $earSlime.defyCooldown gte Math.clamp(30 - Math.floor($earSlime.growth / 9), 2, 20) and !$possessed and $settings.ruinedOrgasmEnabled and !_noSlimes>> <span class="red">You are almost overcome by sensation, but it ends prematurely.</span><<pain 10>><<stress 10>><<gpain>><<gstress>> <br> <<set _deniedOrgasm to true>> <<set $ruinedOrgasmStat++>> <<set $ruinedOrgasmTimeStat to Time.date.timeStamp>> <<if $masturbating>> <<set $masturbationRuinedOrgasm++>> <</if>> <<elseif $player.penisExist>> <<if $earSlime.focus is "pregnancy" and $earSlime.growth gte 100>> <<set _cumDesc to "watery cum">> <<elseif $earSlime.focus is "impregnation" and $earSlime.growth gte 100>> <<set _cumDesc to "thick cum">> <<else>> <<set _cumDesc to "cum">> <</if>> <<if $femaleclimax is 1>> <span class="pink">You are overcome by sensation and climax like a girl.</span> <<semenvolume `$player.penissize is -2 ? -5 : -1`>> <<elseif $semen_volume is 0 or $semen_amount lt 0.1>> <span class="pink">You are overcome by sensation and climax, but nothing comes out.</span> <<set $femaleclimax to 1>> <<semenvolume -1>> <<else>> <<set $parasitePenis to $player.sex is "f" and $parasite.clit.name is "parasite" ? " parasitic" : "">> <<if !playerHasStrapon()>> <<bodyliquid "penis" "semen">> <</if>> <<if wearingCondom("player")>> <<set _condom to $player.condom.state>> <</if>> <<if ($parasite.penis.name and $parasite.penis.name isnot "parasite") or $worn.genitals.name is "chastity parasite">> /* No need for you to know it breaks */ <<elseif _condom is "defective">> <span class="red">The condom broke.</span> <<elseif _condom is "sabotaged">> <span class="red">The tip of the condom bursts, exposing the head of your<<print $parasitePenis>> penis.</span> <</if>> <<if $parasite.penis.name and $parasite.penis.name isnot "parasite">> <span class="pink">You are overcome by sensation and ejaculate into the parasite latched onto your<<print $parasitePenis>> penis.</span> <<elseif $worn.genitals.name is "chastity parasite">> <span class="pink">You are overcome by sensation and climax into your chastity parasite.</span> <<elseif _condom is "normal" or _condom is "used">> <span class="pink">You are overcome by sensation and ejaculate into the condom that covers your<<print $parasitePenis>> penis.</span> <<set $player.condom.state to "used">> <<elseif playerHasStrapon()>> <span class="pink">You are overcome by sensation and climax under your strap-on.</span> <<elseif $penisuse is "othervagina">> <<if $NPCList[$penistarget].vagina is "penis">> <<personselect $penistarget>> <<penileejacstat>> <span class="pink">You are overcome by sensation and ejaculate<<if _cumDesc isnot "cum">> _cumDesc<</if>> deep into <<his>> womb.</span> <<if $earSlime.event is "ejaculate into someone's vagina">> <<set $earSlime.event to "">> <<set $_earslimeEjaculateTask to true>> <</if>> <<internalejac>><<creampie "npc" "vagina">><<fillOther>> <<if $earSlime.focus is "pregnancy" and $earSlime.growth gte 75>> <<set _orgasmSpermRng to 25>> <<elseif $earSlime.focus is "impregnation" and $earSlime.growth gte 75>> <<set _orgasmSpermRng to 200>> <<else>> <<set _orgasmSpermRng to 100>> <</if>> <<if $semen_amount lte ($semen_volume * (6 / 24))>> <<set _orgasmSpermRng to Math.floor(_orgasmSpermRng / 2)>> <</if>> <<if $abomination is 1>> /*ToDo: Pregnancy, figure out how the Wraith, plantpeople, etc will handle pregnancy.*/ <<elseif $npcrow.includes($penistarget)>> <<recordSperm `{target: $NPCList[$penistarget].fullDescription, spermOwner: "pc", spermType: "human", rngModifier: _orgasmSpermRng}`>> <<elseif $NPCList[$penistarget].pregnancy is 0 and ["realistic", "fetish"].includes($settings.pregnancyType)>> /* Pregnancy Count */ <<set $_count to Object.values($storedNPCs).reduce((prev, curr) => { if(curr.pregnancy) return prev + 1; return prev; },0)>> /* Pregnancy chance checks */ <<set $_impregnatedChance to 200 / (20 - $settings.baseNpcPregnancyChance)>> <<if V.sexStats.pills.pills["fertility booster"].doseTaken gt 0>> <<set $_impregnatedChance to Math.ceil($_impregnatedChance * (1 + (V.sexStats.pills.pills["fertility booster"].doseTaken * 0.5)))>> <</if>> <<if V.sexStats.pills.pills["contraceptive"].doseTaken gt 0>> <<set $_impregnatedChance to Math.ceil($_impregnatedChance * 0.1)>> <</if>> <<set $_impregnatedChance to Math.floor($_impregnatedChance * (_orgasmSpermRng / 100))>> /*If random NPC is impregnated, store NPC and fetus*/ <<if ($_impregnatedChance gte random(0,200) or _npcForceImpregnation)>> <<switch $NPCList[$penistarget].type>> <<case "human">><<set $_pregnancy to pregnancyGenerator.human(V.NPCList[$penistarget], "pc", true)>> <<case "wolf">><<set $_pregnancy to pregnancyGenerator.wolf(V.NPCList[$penistarget], "pc", true, "vagina", false)>> <<case "wolfgirl" "wolfboy">><<set $_pregnancy to pregnancyGenerator.wolf(V.NPCList[$penistarget], "pc", true, "vagina", true)>> <</switch>> <<if $_pregnancy and !(typeof $_pregnancy is "string" || $_pregnancy instanceof String)>> <<if $consensual is 1 and ((random(0, 1 + $_count) is 0 and $_count lte 10) or (setup.pregnancy.randomAlwaysKeep.includes($location) and $_count lte 15))>> <<storeNPC $penistarget "pregnancy">> <<set $storedNPCs[_lastStoredName].pregnancy to $_pregnancy>> <</if>> <<if $settings.pregnancyType is "fetish">><<set _npcIsNowPregnant to $NPCList[$penistarget].fullDescription>><</if>> <<set $NPCList[$penistarget].pregnancy to 1>> <</if>> <</if>> <</if>> <<elseif $NPCList[$penistarget].vagina is "penisimminent" or $NPCList[$penistarget].vagina is "penisentrance">> <<personselect $penistarget>> <span class="pink">You are overcome by sensation and ejaculate<<if _cumDesc isnot "cum">> _cumDesc<</if>> on <<his>> pussy.</span> <</if>> <<elseif $penisuse is "otheranus">> <<for $_i = 0; $_i lt $enemynomax; $_i++>> <<if $NPCList[$_i].penis is "otheranus" or $NPCList[$_i].vagina is "otheranus">> <<personselect $_i>> <<penileejacstat>> <span class="pink">You are overcome by sensation and ejaculate<<if _cumDesc isnot "cum">> _cumDesc<</if>> deep into <<his>> bowels.</span> <<internalejac>><<creampie "npc" "anus">><<fillOther>> <<elseif $NPCList[$_i].penis is "otheranusimminent" or $NPCList[$_i].penis is "otheranusentrance" or $NPCList[$_i].vagina is "otheranusimminent" or $NPCList[$_i].vagina is "otheranusentrance">> <<personselect $_i>> <span class="pink">You are overcome by sensation and ejaculate<<if _cumDesc isnot "cum">> _cumDesc<</if>> on <<his>> ass.</span> <</if>> <</for>> <<elseif $penisuse is "othermouth">> <<for $_i = 0; $_i lt $enemynomax; $_i++>> <<if $NPCList[$_i].mouth is "penis">> <<personselect $_i>> <<penileejacstat>> <span class="pink">You are overcome by sensation and ejaculate<<if _cumDesc isnot "cum">> _cumDesc<</if>> into <<his>> mouth.</span> <<internalejac>><<creampie "npc" "mouth">><<fillOther>> <<elseif $NPCList[$_i].mouth is "penisimminent" or $NPCList[$_i].mouth is "penisentrance">> <<personselect $_i>> <span class="pink">You are overcome by sensation and ejaculate<<if _cumDesc isnot "cum">> _cumDesc<</if>> on <<his>> face.</span> <</if>> <</for>> <<elseif $penisuse is "otherpenis">> <<for $_i = 0; $_i lt $enemyno; $_i++>> <<if $NPCList[$_i].penis is "penis">> <<personselect $_i>> <<penileejacstat>> <span class="pink">You are overcome by sensation and ejaculate<<if _cumDesc isnot "cum">> _cumDesc<</if>> over <<his>> penis.</span> <<internalejac>><<fillOther>> <!-- <<creampie "npc" "penis">> --> <<elseif $NPCList[$_i].penis is "penisimminent" or $NPCList[$_i].penis is "penisentrance">> <<personselect $_i>> <span class="pink">You are overcome by sensation and ejaculate<<if _cumDesc isnot "cum">> _cumDesc<</if>> over <<his>> cock and stomach.</span> <</if>> <</for>> <<elseif $penisuse is "tentacle">> <<if $penisstate isnot "tentacleentrance" and $penisstate isnot "tentacleimminent">> <<penileejacstat>> <span class="pink">You are overcome by sensation. The $tentaclePenis milks you of your semen.</span> <<internalejac>><<fillOther>> <!-- <<creampie "npc" "tentacle">> --> <<else>> <span class="pink">You are overcome by sensation and ejaculate<<if _cumDesc isnot "cum">> _cumDesc<</if>> on the $tentaclePenis.</span> <</if>> <<elseif $mouth is "mpenisentrance">> <span class="pink"> You are overcome by sensation. A surge of _cumDesc erupts from your<<print $parasitePenis>> penis onto your face<<if $rng gte 11 and $semen_amount gt ($semen_volume / 24) * 18>> and hair.<<bodyliquid "hair" "semen">><<else>>.<</if>> </span> <<if $semen_amount gt ($semen_volume / 24) * 18>> <<bodyliquid "face" "semen">> <</if>> <<elseif $mouth is "mpenis">> <<if $selfsuckDepth gte 2>> <span class="pink">You are overcome by sensation. A surge of _cumDesc pumps up the length of your<<print $parasitePenis>> penis and flows straight down your throat.</span> <<else>> <span class="pink">You are overcome by sensation and ejaculate<<if _cumDesc isnot "cum">> _cumDesc<</if>> in your mouth, forcing you to quickly drink it down.</span> <</if>> <<set $_released to calculateSemenReleased()>> <<if $_released gt 0>> <<oralejacstat>><<cumswallow "pc" $_released>> <</if>> <<elseif playerChastity()>> <span class="pink">You are overcome by sensation. A surge of _cumDesc erupts from your<<print $parasitePenis>> penis into your $worn.genitals.name.</span> <<elseif $leftarm is "mpenisentrance" or $rightarm is "mpenisentrance">> <<if $leftarm is "mpenisentrance" and $semen_amount gte random(500,1500)>> <<set $leftFingersSemen to 1>> <<set $_hand to "left hand">> <</if>> <<if $rightarm is "mpenisentrance" and $semen_amount gte random(500,1500)>> <<set $rightFingersSemen to 1>> <<set $_hand to ($_hand is undefined ? "right hand" : "hands")>> <</if>> <span class="pink">You are overcome by sensation. A surge of _cumDesc erupts from your<<print $parasitePenis>> penis<<if $_hand>>, and some of it gets on your $_hand<</if>>.</span> <<else>> <span class="pink">You are overcome by sensation. A surge of _cumDesc erupts from your<<print $parasitePenis>> penis.</span> <</if>> <<if $semen_amount lte ($semen_volume * (6 / 24))>> <span class="pink">Exhausted, your body only manages to produce a few droplets of watery cum.</span> <<semenvolume -2>> <<elseif $semen_amount lte ($semen_volume * (12 / 24))>> <span class="pink">Tired from overuse, your cum is thin and watery.</span> <<semenvolume -1>> <<elseif $semen_amount lte ($semen_volume * (18 / 24))>> <span class="pink">The repeated orgasms are taking their toll, reducing the amount of _cumDesc your body manages to produce.</span> <<semenvolume -1>> <</if>> <</if>> <</if>> <<if $player.vaginaExist and !_deniedOrgasm>> <<if !$player.penisExist>> <span class="pink">You are overcome by sensation and climax.</span> <</if>> <<if $leftarm is "mvaginafist" or $rightarm is "mvaginafist">> <span class="pink">You feel your muscles clamp down around your hand, pulsing as your orgasm runs its course.</span> <<elseif $leftarm is "mvagina" or $rightarm is "mvagina">> <span class="pink">You feel your muscles clamp down around your fingers, pulsing as your orgasm runs its course.</span> <</if>> <</if>> <<if $arousalmasochism/$arousal gte 0.70>> <!-- If over 70% arousal is from pain, PC has added reaction NG v2.7 combat get 4 points per orgasm everything else get 8 points per day if from just pain, 10 if its from a denied orgasm --> <<if $combat>> <span class="green">Your body writhes and yearns for more pain.</span> <<masochism 4>> <<elseif $daily.masturbationMasochism or 0 lte _deniedOrgasm ? 10 : 8>> <span class="green">Your body writhes and yearns for more pain.</span> <<masochism `_deniedOrgasm ? 2 : 1`>> <<set $daily.masturbationMasochism to ($daily.masturbationMasochism or 0) + (_deniedOrgasm ? 2 : 1)>> <<else>> <span class="red">Your body yearns for more pain from elsewhere.</span> <</if>> <</if>> <<if $masturbation_bowl is 1>><<set _liquid_collection_text to []>><</if>> <<if $player.penisExist and !_deniedOrgasm>> <<semenOrgasm>>/*Makes changes to semen values*/ <</if>> <<if $player.vaginaExist and !_deniedOrgasm>> <<vaginaFluidOrgasm>> <<if _lube_released gt 10>> <span class="pink">Fluids gush from your <<pussy>>.</span> <<elseif _lube_released gt 0>> <span class="pink">Fluids leak from your <<pussy>>.</span> <</if>> <</if>> <<if $lactating is 1 and $milk_volume gte 1000 and $milk_amount gte ($milk_volume / 3) and $breastsensitivity gte 1.5>> <<if $worn.over_upper.exposed is 0 or $worn.upper.exposed is 0 or $worn.under_upper.exposed is 0>> <<if $milk_amount gte (($milk_volume / 3) * 2) and $milk_amount gte 2500>> <<breastfeed 4>><<set $_wetAmount to 100>><<set $_milkText to "sprays">> <<else>> <<breastfeed 2>><<set $_wetAmount to 50>><<set $_milkText to "leaks">> <</if>> <<if $worn.under_upper.exposed is 0>> <<set $_milkedName to $worn.under_upper.name>> <<if !$worn.under_upper.type.includes("swim") and !$worn.under_upper.type.includes("naked")>> <<underupperwet $_wetAmount>> <</if>> <<elseif $worn.upper.exposed is 0>> <<set $_milkedName to $worn.upper.name>> <<if !$worn.upper.type.includes("swim") and !$worn.upper.type.includes("naked")>> <<upperwet $_wetAmount>> <</if>> <<else>> <<set $_milkedName to $worn.over_upper.name>> <</if>> <span class="pink">Milk $_milkText from your <<breasts>> into your $_milkedName.</span> <<if $combat is 1>><<set $speechmilk to 1>><</if>> <<elseif $combat is 1 and ($cheststate is "chest" or $cheststate is "chestimminent") and $settings.breastFeedingEnabled>> <<for $_i = 0; $_i lt $enemynomax; $_i++>> <<if $NPCList[$_i].mouth is "chest">> <<personselect $_i>> <<if $milk_amount gte (($milk_volume / 3) * 2) and $milk_amount gte 2500>> <<if $milk_amount gte 2500>> <span class="pink">Your orgasm makes your <<breasts>> start spraying milk. You flood <<his>> mouth, and <<hes>> forced to disengage, coughing.</span> <<breastfeed 10>> <<set $cheststate to "chestimminent">><<set $NPCList[$_i].mouth to "chestimminent">> <<milkvolume 1>><<set $enemyanger += 10>> <<set $speechmilk to 3>> <<else>> <span class="pink">Your orgasm makes your <<breasts>> start spraying milk. <<He>> struggles to drink it all down.</span> <<breastfeed 8>><<milkvolume 1>><<sex 2 "breast" $_i>> <<set $speechmilk to 1>> <</if>> <<else>> <span class="pink">Your orgasm makes your <<breasts>> leak even more milk into <<his>> eager mouth.</span> <<breastfeed 4>><<milkvolume 1>><<sex 2 "breast" $_i>> <<set $speechmilk to 1>> <</if>> <<elseif $NPCList[$_i].mouth is "chestimminent" or $NPCList[$_i].mouth is "chestentrance">> <<personselect $_i>> <<if $milk_amount gte (($milk_volume / 3) * 2) and $milk_amount gte 2500>> <span class="pink">Your orgasm makes your <<breasts>> start spraying milk all over <<his>> face.</span> <<breastfeed 8>> <<set $speechmilk to 2>> <<else>> <span class="pink">Your orgasm makes your <<breasts>> leak milk.</span> <<breastfeed 3>> <<set $speechmilk to 1>> <</if>> <</if>> <</for>> <<elseif $masturbating and $mouthaction is "mbreastsuck" or $mouthaction is "mbreastlick">> <<if $milk_amount gte (($milk_volume / 3) * 2) and $milk_amount gte 2500>> <<if $milk_amount gte 2500>> <span class="pink">A surge of milk floods your mouth. You disengage temporarily to gasp and cough after managing to swallow it all.</span> <<else>> <span class="pink">Milk sprays into your mouth. You struggle to drink it all down in one gulp.</span> <</if>> <<else>> <span class="pink">You quickly drink down the thin stream of milk flowing into your mouth.</span> <</if>> <<else>> <<if $milk_amount gte (($milk_volume / 3) * 2) and $milk_amount gte 2500>> <<if $leftarm is "mbreastpump" and $rightarm is "mbreastpump">> <span class="pink">Milk bursts from your <<breasts>>.</span> <<else>> <span class="pink"><<if $leftarm is "mbreastpump" or $rightarm is "mbreastpump">>Some milk<<else>>Milk<</if>> sprays from your <<breasts>><<if $lactating and $bugsinside>>, launching some of the insects into the air<</if>>.</span> <<set _milkEscaped to true>> <</if>> <<breastfeed 4>> <<else>> <span class="pink">Milk leaks from your <<breasts>>.</span> <<breastfeed 2>> <</if>> <<if $combat is 1>><<set $speechmilk to 1>><</if>> <</if>> <</if>> <<if !_noSlimes>> <<if _deniedOrgasm>> <span class="blue">A forgiving warmth fills you.</span> You can tell it's the slimes in your ears, rewarding you for having a ruined orgasm. <<gcorruption>><<ltrauma>><<trauma -1>><<corruption 1>> <br> <<elseif numberOfEarSlime() gte 2 and $_earslimeEjaculateTask>> <span class="green">A pleased warmth fills you.</span> You almost forget the strife of the world. You can tell it's the slimes in your ears, rewarding you for having an orgasm while completing their request. <<gcorruption>><<lltrauma>><<llstress>><<trauma -24>><<stress -24>><<corruption 2>> <br> <<elseif numberOfEarSlime() gte 2>> <span class="blue">A soothing warmth fills you.</span> You almost forget the strife of the world. You can tell it's the slimes in your ears, rewarding you for having an orgasm. <<gcorruption>><<ltrauma>><<lstress>><<trauma -12>><<stress -12>><<corruption 2>> <br> <<elseif $parasite.left_ear.name is "slime">> <span class="blue">A soothing warmth fills you.</span> You almost forget the strife of the world. You can tell it's the slime in your left ear, rewarding you for having an orgasm. <<gcorruption>><<ltrauma>><<lstress>><<trauma -6>><<stress -6>><<corruption 1>> <br> <<elseif $parasite.right_ear.name is "slime">> <span class="blue">A soothing warmth fills you.</span> You almost forget the strife of the world. You can tell it's the slime in your right ear, rewarding you for having an orgasm. <<gcorruption>><<ltrauma>><<lstress>><<trauma -6>><<stress -6>><<corruption 1>> <br> <</if>> <</if>> <!-- This code is orphaned, the $swarmchestgrab variable is not referenced or set in any other file --> <<if $swarmchestgrab gte 1 and !_deniedOrgasm>> <span class="pink">Your convulsions launch the _swarmcreature away from your chest.</span> <<set $swarmchestgrab to 0>> <</if>> <<if $orgasmcount lte 4>> <<set $stress -= 200>> <<set $_arousalDrop to -3000 - ($orgasmcount * 1000)>> <<if _deniedOrgasm>><<set $_arousalDrop += 1000>><</if>> <<if $drugged gte 1>> <<arousal $_arousalDrop>><<drugs -20>> <<else>> <<arousal `$_arousalDrop * 2`>> <</if>> <<if _deniedOrgasm>> <span class="pink">You shudder despite the lack of release.</span> <<else>> <span class="pink">You shudder from the sudden release.</span> <</if>> <<elseif $orgasmcount lte 5>> <<set $stress -= 200>> <<if $drugged gte 1>> <<arousal -8000>><<drugs -20>> <<else>> <<arousal -10000>> <</if>> <span class="pink">You feel spent.</span> <<elseif $orgasmcount lte 8>> <<set $stress -= 100>> <<if $drugged gte 1>> <<set $_arousalDrop to -7000 + (($orgasmcount - 8) * 1000)>> <<arousal $_arousalDrop>><<drugs -20>> <<else>> <<arousal -10000>> <</if>> <<if _deniedOrgasm>> <span class="pink">Despite being denied the orgasm, you're left feeling like you've nothing to give.</span> <<else>> <span class="pink">Despite feeling like you've nothing left to give, the orgasm is intense.</span> <</if>> <<elseif $orgasmcount lte 11>> <<if $drugged gte 1>> <<set $_arousalDrop to -4000 + (($orgasmcount - 9) * 1000)>> <<arousal $_arousalDrop>><<drugs -20>> <<else>> <<arousal -10000>> <</if>> <span class="pink">Your body is tiring from the repeated<<if _deniedOrgasm>> failed<</if>> climaxes.</span> <<elseif $orgasmcount lte 18>> <<if $drugged gte 1>> <<arousal -2000>><<drugs -20>> <<else>> <<arousal -10000>> <</if>> <<set $stress += 100>> <span class="pink">The repeated<<if _deniedOrgasm>> failed<</if>> orgasms are causing you great strain. You don't want to cum any more.</span> <<elseif $orgasmcount lte 23>> <<if $drugged gte 1>> <<arousal -2000>><<drugs -20>> <<else>> <<arousal -10000>> <</if>> <<set $stress += 100>><<combattrauma 10>> <span class="pink">Your mind and body buckle under the continued<<if _deniedOrgasm>> failed<</if>> orgasms.</span> <<else>> <<if $drugged gte 1>> <<arousal -2000>><<drugs -20>> <<else>> <<arousal -10000>> <</if>> <<set $stress += 100>><<combattrauma 10>><<pain 1>> <<if _deniedOrgasm>> <span class="red">You've had so many failed orgasms in such a short span of time that you are numb to them.</span> <<else>> <span class="red">You've had so many orgasms in such a short span of time that you no longer gain any pleasure from them. They're painful, both physically and psychologically.</span> <</if>> <</if>> <!-- Chance to get "dick drunk" after 3rd orgasm, chance is 45% for consensual and 15% otherwise, +5% for each following orgasm, but aphrodisiacs make it 100% --> <<if $orgasmcount gte 3 and $drunk lte 1000 and playerIsPenetrated() and $mouth isnot "mpenis" and !_deniedOrgasm>> <<if $drugged gt 0 or (random(1,100) + ($orgasmcount * 5) gte ($consensual ? 70 : 100))>> <<alcohol 25>> <span class="purple"><<print either("You feel dizzy.", "You feel lightheaded.", "You can't think straight.")>></span> <</if>> <</if>> <!-- If came while being choked --> <<if $neckuse is "hand" and $oxygen lt $oxygenmax and !_deniedOrgasm>> <<set $chokeorgasm += 1>> <<if $chokeorgasm gte 35 and $choketrait isnot 1>> <<set $choketrait = 1>> <br><span class="green">You feel that your orgasms are more intense when you can't breathe, and you like it.</span> <</if>> <</if>> <<if ($halloween is 1 or $NPCList[0].fullDescription is "Ivory Wraith") and random(1, 10000) is 10000>> <span class="pink">Bustin' makes you feel good.</span> <</if>> <br><br> <<if $orgasmtrait gte 1 and !_deniedOrgasm>> <<set $stress -= 100>> <</if>> <<set $orgasmcurrent += 1>> <<set $lastOrgasmPassage to $passage>> /* helps debug if the $orgasmcurrent counter escapes due to no endevent */ <<wetnessCalculate>> <<if $masturbation_bowl is 1>> <<if $masturbation_milk gt 0>> <<set _liquid_collection_text.push($masturbation_milk.toFixed(1) + " mL of milk")>> <</if>> <<if _liquid_collection_text.length is 0>> <span class="purple">You've failed to gather anything.</span> <<else>> <span class="gold">You've gathered <<print formatList(_liquid_collection_text, "and", true)>>.</span> <</if>> <br> <</if>> <</widget>> <<widget "orgasmstreet">> <<orgasm>> <<if $exposed gte 1>> <<if Weather.dayState isnot "night">> You steady yourself as your spasms subside, feeling exposed and hoping the noise hasn't given away your hiding place. <<else>> You steady yourself as your spasms subside, feeling exposed and hoping the noise hasn't attracted attention. <</if>> <<else>> <<if Weather.dayState isnot "night">> The sight and sound of a <<girl>> convulsing in climax draws attention, and as you regain control you find yourself stared at from all directions. Face red, you flee the scene. <<gtrauma>><<gstress>><<trauma 6>><<stress 6>><<fameexhibitionism 10>> <<else>> You steady yourself as your spasms subside and hope the noise hasn't attracted attention. <</if>> <</if>> <br><br> <</widget>> <<widget "orgasmforest">> <<orgasm>> <<if $exposed gte 1>> <<if Time.dayState isnot "night">> You steady yourself against a tree as your spasms subside. <<else>> You steady yourself against a tree as your spasms subside. <</if>> <<else>> <<if Time.dayState isnot "night">> You steady yourself against a tree as your spasms subside. <<else>> You steady yourself against a tree as your spasms subside. <</if>> <</if>> <br><br> <</widget>> <<widget "orgasmbog">> <<orgasm>> <<if $bogwater gte 1>> You sink under the surface of the water for a moment, but swiftly resurface. <<else>> You nearly tumble into the water, but manage to steady yourself. <</if>> <br><br> <</widget>> <<widget "orgasmbeach">> <<orgasm>> <<if $exposed gte 1>> <<if Time.dayState isnot "night">> You steady yourself as your spasms subside, feeling exposed and hoping the noise hasn't given away your hiding place. <<else>> You steady yourself as your spasms subside, feeling exposed on the open beach. <</if>> <<else>> <<if Time.dayState isnot "night">> The sight and sound of a <<girl>> convulsing in climax draws attention, and as you regain control you find yourself stared at from all across the beach. Face red, you flee the scene. <<gtrauma>><<gstress>><<trauma 6>><<stress 6>><<fameexhibitionism 10>> <<else>> You steady yourself as your spasms subside, feeling exposed on the open beach. <</if>> <</if>> <br><br> <</widget>> <<widget "orgasmstage">> <<if hasSexStat("exhibitionism", 5) and $backgroundTraits.includes("lustful") and $orgasmtrait gte 1>> You feel a massive orgasm building up. <br><br> Blinded by your <span class="lewd">lust</span> and your <span class="lewd">hedonism</span>, you <<if $exposed lte 1 and !pcAreArmsBound("any")>> rip the clothes still covering you and <<clothesstrip>> <</if>> kneel right at the edge of the stage, presenting your naked <<body_size_text>> and <<breasts>> to the crowd. Hands reach out to grope you. <<arousal 500 "breasts">><<garousal>> <br><br> <<set $audience += 26>> /* Fills all unoccupied NPC slots; generatel not to be confused with generate1 */ <<if $enemyno is 0>> <<generatel>><<generatel>><<generatel>><<generatel>><<generatel>><<generatel>> <<elseif $enemyno is 1>> <<generatel>><<generatel>><<generatel>><<generatel>><<generatel>> <<elseif $enemyno is 2>> <<generatel>><<generatel>><<generatel>><<generatel>> <<elseif $enemyno is 3>> <<generatel>><<generatel>><<generatel>> <<elseif $enemyno is 4>> <<generatel>><<generatel>> <<elseif $enemyno is 5>> <<generatel>> <</if>> The muscles in your legs and abs tense. Your pelvis twitches back and forth. You moan and convulse with a mix of pain and pleasure while the audience cheers. <br><br> <<orgasm>> After a while, the spasms subside. You lie on the floor gasping for air. The music has stopped. The multitude around you gaze at your body, covered in sweat and fluids. <br><br> You rise, shaking, to your feet and bow. The gathered crowd erupts in applause. <<fameexhibitionism 15>> <<set $audiencearousal += 80>> <<set $audienceexcitement += 50>> <<set $audiencemod += 5>> <<else>> You feel an orgasm build within, interrupting your dance. <<orgasm>> <<if currentSkillValue('danceskill') lte 500>> It breaks your focus. You try to regain balance, but your knees give in and you fall to your knees. The gathered crowd taunts you and mocks your dance skills. <br><br> <<if $worn.feet.type.includes("heels")>> You try to climb to your feet, but one last orgasmic shiver disrupts your balance. The heel on one of your shoes breaks your fall, and your weight breaks your heel. You crash to the floor again, eliciting laughter from the crowd.<<ggpain>> <<pain 10>> <<feetruined>> <br><br> <</if>> <<if $dancelocation is "smuggler_forced" or $dancelocation is "underground">> You feel ashamed, but you've nowhere to run. <<ggtrauma>><<gggstress>><<trauma 12>><<stress 24>> <<else>> <<tearful>> you crawl out of sight, face red and ashamed. <<gtrauma>><<gstress>><<trauma 10>><<stress 10>> <<set $danceevent to "finish">> <</if>> <<elseif currentSkillValue('danceskill') gte 500 and hasSexStat("exhibitionism", 4) and hasSexStat("promiscuity", 4)>> You drop to your knees before you collapse outright. Your <<body_size_text>> is wracked by violent spasms. The crowd cheers you on. <br><br> You climb to your feet and continue dancing, as the crowd jeer. <<fameexhibitionism 15>> <<set $audiencearousal += 10>> <<set $audienceexcitement += 5>> <<set $audiencemod += 2>> <<else>> You try to conceal your spasming body with your dance moves. <<if $dancelocation is "smuggler_forced" or $dancelocation is "underground">> The humiliation is too much to bear, but you stay put for fear of your captors. <<trauma 10>><<stress 12>><<gtrauma>><<ggstress>> <<else>> But it's too much to bear. You flee the scene with as much grace as you can manage. <<gtrauma>><<gstress>><<trauma 5>><<stress 5>> <<set $danceevent to "finish">> <</if>> <</if>> <</if>> <</widget>> <<widget "orgasmLocation">> <<orgasm>> <<switch _args[0]>> <<case "schoolHallway">> <<if ["early","late","earlynoschool","latenoschool","daynoschool"].includes($schoolstate)>> You steady yourself as your spasms subside. You feel fortunate that the hallway is empty right now and hope the noise hasn't attracted attention. <<elseif $exposed gte 1>> <<set $_hidden to true>> <<else>> The sight and sound of a <<girl>> convulsing in climax draws attention, and as you regain control you find yourself stared at from all directions by your fellow students. A few whispers start to run down the hallway. Face red, you turn around a corner, out of sight. <<gtrauma>><<gstress>><<trauma 6>><<stress 6>><<fameexhibitionism 10>> <</if>> <<case "emptyClassroom">> You steady yourself as your spasms subside. You feel fortunate that the classroom is empty right now and hope the noise hasn't attracted attention. <<case "classroom">> <<if $schoolstate is "second" and ($whitneymaths is "active" or $whitneymaths is "seat")>> Having taken notice of your orgasm, Whitney smiles at you. <<npcincr Whitney lust 1>><<glust>> <br><br> <<elseif $schoolstate is "third" and ($kylarenglishstate is "watching" or $kylarenglishstate is "seat")>> Kylar watches you, transfixed by your orgasm. <<npcincr Kylar lust 1>><<glust>> <br><br> <<elseif $schoolstate is "fourth" and $robinhistory is "seat">> Robin politely tries to look away, but still can't avoid a peek. <<npcincr Robin lust 1>><<glust>> <br><br> <</if>> You manage to keep yourself from moaning, but your spasms announce your climax to the students around you. A few whispers start to run through the classroom, but are quickly shut down by <<print _teacher>>. <<nnpc_He _teacher>> doesn't seem to know the reason, but understands that you are the talk of the class. <<gtrauma>><<gstress>><<trauma 6>><<stress 6>><<fameexhibitionism 10>><<detention 1>><<gdelinquency>> <<case "swimClassroom">> You manage to keep quiet, so as to not draw Mason's attention. However, your spasms announce your climax to the students around you. A few whispers start to run through the pool. <<gtrauma>><<gstress>><<trauma 6>><<stress 6>><<fameexhibitionism 10>> <<case "emptySwimClassroom">> You steady yourself as your spasms subside. You feel fortunate that the pool is empty right now and hope the noise hasn't attracted attention. <<case "canteen">> <<if ["early","late","earlynoschool","latenoschool","daynoschool"].includes($schoolstate)>> You steady yourself as your spasms subside. You feel fortunate that the canteen is empty right now and hope the noise hasn't attracted attention. <<elseif $exposed gte 1>> <<set $_hidden to true>> <<else>> The sight and sound of a <<girl>> convulsing in climax draws attention, and as you regain control you find yourself stared at from all directions by your fellow students. A few whispers start to run through the canteen. Face red, you attempt to conceal yourself. <<gtrauma>><<gstress>><<trauma 6>><<stress 6>><<fameexhibitionism 10>> <</if>> <<case "library">> <<if ["early","late","earlynoschool","latenoschool","daynoschool"].includes($schoolstate)>> You steady yourself as your spasms subside. You feel fortunate that the library is empty right now and hope the noise hasn't attracted attention. <<elseif $exposed gte 1>> <<set $_hidden to true>> <<else>> The sight and sound of a <<girl>> convulsing in climax draws attention, and as you regain control you find yourself stared at from all directions by your fellow students. A few whispers start to run through the library. <<gtrauma>><<gstress>><<trauma 6>><<stress 6>><<fameexhibitionism 10>> <<if $sydneySeen and _sydney_location is "library">> <br><br> Sydney clears <<nnpc_his "Sydney">> throat. The other students get the message and the whispers stop. <</if>> <</if>> <<case "boyChangingRoom">> <<if $changingroomstate is "empty">> You steady yourself as your spasms subside. You feel fortunate that the room is empty right now and hope the noise hasn't attracted attention. <<elseif $player.gender_appearance is "f">> The sight and sound of a <<girl>> convulsing in climax incites the <<if $changingRoomGender is "girls">>girls<<else>>boys<</if>>. Their reactions vary. Some cheer you on. Some try to look away. And some shout all kinds of insults at you. <<gtrauma>><<gstress>><<trauma 6>><<stress 6>><<fameexhibitionism 10>> <<else>> The sight and sound of a <<girl>> convulsing in climax draws attention, and as you regain control you find yourself stared at from all directions by your fellow students. A few whispers start to run through the room. Face red, you turn away to hide your face. <<gtrauma>><<gstress>><<trauma 6>><<stress 6>><<fameexhibitionism 10>> <</if>> <<case "girlChangingRoom">> <<if $changingroomstate is "empty">> You steady yourself as your spasms subside. You feel fortunate that the room is empty right now and hope the noise hasn't attracted attention. <<elseif $player.gender_appearance is "m">> The sight and sound of a <<girl>> convulsing in climax incites the <<if $changingRoomGender is "girls">>girls<<else>>boys<</if>>. Their reactions vary. Some cheer you on. Some try to look away. And some shout all kinds of insults at you. <<gtrauma>><<gstress>><<trauma 6>><<stress 6>><<fameexhibitionism 10>> <<else>> The sight and sound of a <<girl>> convulsing in climax draws attention, and as you regain control you find yourself stared at from all directions by your fellow students. A few whispers start to run through the room. Face red, you turn away to hide your face. <<gtrauma>><<gstress>><<trauma 6>><<stress 6>><<fameexhibitionism 10>> <</if>> <<case "policeStation">> <<if Time.dayState is "night">> <<set $_quiet to "police station">> <<else>> The sight and sound of a <<girl>> convulsing in climax draws the attention of those in the police station. Their reactions are mixed. Some citizens filing a complaint avoid looking. Some more sketchy individuals loudly cheer you on. As you regain control of yourself, you see two officers coming in your direction. Face red, you decide it's best to flee the scene. <<gtrauma>><<gstress>><<trauma 6>><<stress 6>><<fameexhibitionism 10>> <</if>> <<case "danceStudio">> <<if $openinghours is 0 and Time.hour isnot $closinghour>> <<set $_quiet to "studio">> <<elseif $exposed gte 1>> <<set $_hidden to true>> <<else>> The sight and sound of a <<girl>> convulsing in climax draws the attention of those in the studio. Their reactions are mixed. Some avoid looking. Some stare at you with displeasure. But some also cheer you on. As you regain control of yourself, you notice how rowdy the studio has become. Face red, you try to make yourself look as small and unassuming as possible. <<gtrauma>><<gstress>><<trauma 6>><<stress 6>><<fameexhibitionism 10>> <</if>> <<case "pound">> The sight and sound of a <<girl>> convulsing in climax draws the attention of the <<pound_text>>, who watch with curiosity as you shake and steady yourself. <<gtrauma>><<gstress>><<trauma 6>><<stress 6>> <<case "danceStudioLesson">> The sight and sound of a <<girl>> convulsing in climax draws the attention of those in the studio. Their reactions are mostly muted, only the odd glances as they focus on their dancing. As you regain control of yourself, you notice Charlie blushing. <<gtrauma>><<gstress>><<trauma 6>><<stress 6>><<fameexhibitionism 10>><<npcincr Charlie love 1>> <<case "danceStudioHeelLesson">> The sight and sound of a <<girl>> convulsing in climax draws the attention of those in the studio. Their reactions are mostly muted, only the odd glances as they focus on Charlie. As you regain control of yourself, you notice Charlie blushing. <<gtrauma>><<gstress>><<trauma 6>><<stress 6>><<fameexhibitionism 10>><<npcincr Charlie love 1>> <<case "cafe">> <<if $openinghours is 0>> <<set $_quiet to "cafe">> <<elseif $exposed gte 1>> <<set $_hidden to true>> <<else>> The sight and sound of a <<girl>> convulsing in climax draws the attention of the patrons. Their reactions are mixed. Some avoid looking. Some stare at you with displeasure. But some also cheer you on. As you regain control of yourself, you notice how rowdy the cafe has become. Face red, you try to make yourself look as small and unassuming as possible. <<gtrauma>><<gstress>><<trauma 6>><<stress 6>><<fameexhibitionism 10>> <</if>> <<case "arcade">> <<if Weather.dayState is "night" or Weather.dayState is "dawn">> <<set $_quiet to "arcade">> <<else>> You steady yourself as your spasms subside. Fortunately, the loud ambient noise has stifled your moans, and the dim lights made your spasms almost imperceptible. Still, as you look around, you notice a <<generatey1>><<person1>><<person>> staring at you, with a look of surprise and disbelief. <<His>> attention, however, quickly goes back to the game <<he>> was playing. <<endevent>> <<gtrauma>><<gstress>><<trauma 6>><<stress 6>><<fameexhibitionism 10>> <</if>> <<case "docks">> <<if Weather.dayState is "night">> <<set $_quiet to "docks">> <<else>> You steady yourself as your spasms subside. You look around, and it doesn't look like anyone noticed your orgasm. That is, until you take note of a <<generate1>><<person1>><<person>> looking at you from afar. <<He>> gives you a grin, and then goes back to work. <<endevent>> <<gtrauma>><<gstress>><<trauma 6>><<stress 6>><<fameexhibitionism 10>> <</if>> <<case "stripClub">> <<if Weather.dayState isnot "night" and Weather.dayState isnot "dusk" and Time.hour isnot 6>> <<set $_quiet to "club">> <<else>> You steady yourself as your spasms subside. Fortunately, the loud ambient noise has stifled your moans, and the dim lights made your spasms almost imperceptible. Still, as you look around, you notice a patron staring at you. <<generate1>><<person1>><<He>> grins and gives you a wink, before getting up and leaving. <<endevent>> <<gtrauma>><<gstress>><<trauma 6>><<stress 6>><<fameexhibitionism 10>> <</if>> <<case "shoppingCentre">> <<if Time.dayState is "night">> <<set $_quiet to "shopping centre">> <<elseif $exposed gte 1>> <<set $_hidden to true>> <<else>> The sight and sound of a <<girl>> convulsing in climax draws the attention of the other shoppers. Their reactions are mixed. Some avoid looking. Some stare at you with displeasure. But some also cheer you on. As you regain control of yourself, you notice how rowdy the place has become. Face red, you flee around a corner. <<gtrauma>><<gstress>><<trauma 6>><<stress 6>><<fameexhibitionism 10>> <</if>> <<case "museum">> <<if Time.dayState is "night">> <<set $_quiet to "museum">> <<else>> The sight and sound of a <<girl>> convulsing in climax draws the attention of the other visitors. As you regain control, you feel yourself stared from all directions. Face red, you flee the scene. <<gtrauma>><<gstress>><<trauma 6>><<stress 6>><<fameexhibitionism 10>> <</if>> <<case "brothel">> The sight and sound of a <<girl>> convulsing in climax draws attention. Those in the brothel cheer you on, while shouting all kinds of profanities. As you regain control of yourself, you notice how rowdy the place has become. Face red, you disappear into a crowded area. <<gtrauma>><<gstress>><<trauma 6>><<stress 6>><<fameexhibitionism 10>> <<case "pub">> The sight and sound of a <<girl>> convulsing in climax draws attention. Those in the pub cheer you on, while shouting all kinds of profanities. As you regain control of yourself, you notice how rowdy the place has become. Face red, you disappear into a crowded area <<gtrauma>><<gstress>><<trauma 6>><<stress 6>><<fameexhibitionism 10>> <<case "spa">> <<if $openinghours is 0 and Time.hour isnot $closinghour>> <<set $_quiet to "spa">> <<else>> The sight and sound of a <<girl>> convulsing in climax draws the attention of the patrons. Their reactions are mixed. Some avoid looking. Some stare at you with displeasure. But some also cheer you on. As you regain control of yourself, you notice how rowdy the spa has become. Face red, you duck behind a tanning bed. <<gtrauma>><<gstress>><<trauma 6>><<stress 6>><<fameexhibitionism 10>> <</if>> <<case "temple">> <<if Time.dayState is "night">> <<set $_quiet to "temple walls">> <<elseif $exposed gte 1>> <<set $_hidden to true>> <<else>> The sight and sound of a <<girl>> convulsing in climax draws attention. The prevalent silence only makes your moans more obvious. Most look at you with disdain, but some shower you with a lustful gaze. As you regain control, you notice yourself stared at from all directions. Face red, you duck behind a pew. <<gtrauma>><<gstress>><<trauma 6>><<stress 6>><<fameexhibitionism 10>> <</if>> <<case "hospital">> <<if Time.dayState is "night">> <<set $_quiet to "hospital">> <<elseif $exposed gte 1>> <<set $_hidden to true>> <<else>> The sight and sound of a <<girl>> convulsing in climax draws attention. The reaction of those in the hospital is mixed. Some avoid looking. Some stare at you with displeasure. But some also cheer you on. As you regain control of yourself, you notice how rowdy the place has become. Face red, you try to feign it as a medical condition. <<gtrauma>><<gstress>><<trauma 6>><<stress 6>><<fameexhibitionism 10>> <</if>> <<case "countryside">> <<switch random(1,10)>> <<case 1 2 3>> You steady yourself as your spasms subside. A car passes by your side. You wonder if the people inside noticed your climax. <<gtrauma>><<gstress>><<trauma 6>><<stress 6>> <<case 4>> You steady yourself as your spasms subside. A truck passes by your side. You wonder if the driver noticed your climax. <<gtrauma>><<gstress>><<trauma 6>><<stress 6>> <<case 5>> You steady yourself as your spasms subside. A tractor passes by your side. You wonder if the farmer noticed your climax. <<gtrauma>><<gstress>><<trauma 6>><<stress 6>> <<default>> <<set $_quiet to "countryside">> <</switch>> <<case "meadow">> <<if $rng gte 91>> <<beastNEWinit 1 fox>> You grip the blades, steadying yourself as your spasms subside. You think there's no one around to listen, but you notice a <<beasttype>> staring at you, hiding in the grass. <<bHe>> runs off before you can flee. <<gtrauma>><<gstress>><<trauma 6>><<stress 6>> <<endevent>> <<else>> You grip the blades, steadying yourself as your spasms subside. The sounds of your climax get carried by the breeze, but fortunately there's no one around to listen. <</if>> <<case "alexFarmWork">> <<if Time.dayState is "night">> You steady yourself as your spasms subside and hope the noise hasn't disturbed the animals. <<elseif ($exposed gte 2 and $uncomfortable.nude is true) or ($exposed is 1 and $uncomfortable.underwear is true)>> <<set $_hidden to true>> <<elseif ["shower","tending","admin","clearing"].includes($farm_work.alex)>> The sight and sound of a <<girl>> convulsing in climax agitate the animals around you. Fortunately, Alex is not around to see you in such a state. You steady yourself and go back to work. <<else>> The sight and sound of a <<girl>> convulsing in climax agitate the animals around you. Alex takes notice of the small commotion, looking at you as your orgasm starts to subside. Face deep red, you both avoid eye contact and try to act like nothing happened. <<gtrauma>><<gstress>><<trauma 6>><<stress 6>><<npcincr Alex lust 1>><<glust>> <</if>> <<case "alexFarmTending">> Noticing your spasms, Alex comes to check on you. Once <<nnpc_he "Alex">> understands what's happening, however, <<nnpc_he "Alex">> stops <<nnpc_himself "Alex">>, watching as your orgasm subsides. Face deep red, you both avoid eye contact and try to act like nothing happened. <<gtrauma>><<gstress>><<trauma 6>><<stress 6>><<npcincr Alex lust 1>><<glust>> <<case "alexFarmTendingAlone">> You steady yourself as your spasms subside and feel grateful that Alex isn't around right now to see you in such a state. <<case "alexFarmAdmin">> Your loud moans attract the attention of Alex and the person on the phone. "I-I'm sorry," <<nnpc_he "Alex">> stammers. "Th-that was just the wind." <br><br> <<nnpc_He "Alex">> continues the call with <<nnpc_his "Alex">> face deep red, and you both avoid eye contact as your spasms subside. <<gtrauma>><<gstress>><<trauma 6>><<stress 6>><<npcincr Alex lust 1>><<glust>> <<case "sewers">> Your loud moans echo through the tunnels. <<if _args[1]>> As your spasms subside, you hope the noise hasn't attracted further attention. <<gtrauma>><<gstress>><<trauma 6>><<stress 6>> <<set $sewerschasedstep -= 1>> <<else>> As your spasms subside, you hope the noise hasn't attracted attention. <</if>> <<case "lake">> <<if _args[1]>> You steady yourself against a tree as your spasms subside. Fortunately, there's no one around right now to see you in such a state. <<elseif $exposed gte 1>> <<set $_hidden to true>> <<else>> You steady yourself as your spasms subside. Fortunately, the loud ambient noise has stifled your moans, and the foliage provides cover for your spasms. Still, as you look around, you notice a <<generatey1>><<person1>><<person>> staring at you. <<He>> grins, before going back to <<his>> friends. <<endevent>> <<gtrauma>><<gstress>><<trauma 6>><<stress 6>><<fameexhibitionism 10>> <</if>> <<case "campsite">> <<if Weather.precipitation !== "none" or Time.hour lt 18 or $daily.lakeCouple is 1>> You steady yourself against a tree as your spasms subside. Fortunately, there's no one around right now to see you in such a state. <<elseif $exposed gte 1>> <<set $_hidden to true>> <<else>> The sight and sound of a <<girl>> convulsing in climax draws the attention of the campers. They look surprised for a moment, but soon smile at your lewd display. As you regain control of yourself, you notice their lustful gaze. Face red, you flee the scene. <<gtrauma>><<gstress>><<trauma 6>><<stress 6>><<fameexhibitionism 10>> <</if>> <<case "moor">> You almost fall down to the short grass, but manage to steady yourself as your orgasm subsides. <<case "underwater">> Bubbles stream upwards as your spasms subside and you regain control of your lungs. <<wateraction>><<wateraction>><<note "- - Oxygen" "blue">> <<run $(()=>{ Dynamic.render("oxygen-caption") })>> /* Updates the dynamic caption in "underwater" with the oxygen lost via orgasm */ <</switch>> <<if $_hidden>> You steady yourself as your spasms subside, feeling exposed and hoping the noise hasn't given away your hiding place. <</if>> <<if $_quiet>> Your loud moans echo through the empty <<print $_quiet>>. As your spasms subside, you hope the noise hasn't attracted attention. <</if>> <br><br> <</widget>> <<widget "breastfeed">> <<set _milk_released to random(10, 50)>> <<if $cow gte 6>> <<set _milk_released *= 2>> <</if>> <<set _milk_released /= 10>> <<set _milk_released to parseFloat(_milk_released.toFixed(1))>> <<if _args[0]>><<set _milk_released *= _args[0]>><</if>> /* if the player doesn't have enough milk, set _milk_released to whatever they have left */ <<if $milk_amount lt _milk_released>> <<set _milk_released to $milk_amount>> <</if>> <<set $milk_produced_stat += Math.trunc(_milk_released)>> <<milkvolume 1>> <<if ($worn.over_upper.exposed is 0 and $worn.upper.exposed is 0 and $worn.under_upper.exposed is 0) or _args[1] is "drunk">> <<else>> <<set $_milkEscaped to _milkEscaped and _args[1] isnot "pump">> <<if $masturbating>> <<if $masturbation_bowl is 1 and $_milkEscaped>> /* Either Milk sprays everywhere or is drunk, so isn't collected */ <<else>> <<set $masturbation_milk += _milk_released>> <</if>> <</if>> <<if _args[1] is "pump">> <<set $bottledMilk to ($bottledMilk or 0) + _milk_released>> <</if>> <<if $masturbation_bowl is 1>> <<if $_milkEscaped>> <span class="red">The force of your orgasm makes<<if $leftarm is "mbreastpump" or $rightarm is "mbreastpump">> some of<</if>> your milk spray out wildly, missing the bowl entirely.</span> <<if $location is "cafe">><<gsuspicion>><<set $chef_sus += 5>><</if>> <br> <<else>> <span class="gold">You gather <<print (_milk_released).toFixed(1)>> mL of your breast milk.</span> <</if>> <<elseif $leftaction is "mbreastpumppump" or $rightaction is "mbreastpumppump">> <span class="gold">You store <<print (_milk_released).toFixed(1)>> mL of your breast milk.</span> <</if>> <</if>> <<milk_amount `-_milk_released`>> <</widget>> <<widget "orgasmHourlyRecovery">> <<if $purity gte 990>> <<orgasmcount -1>> <<else>> <<set _orgmod to Math.floor((1100-$purity)/100)>> <<set _orgmod to Math.clamp(_orgmod, 2, 11)>> <<orgasmcount `-_orgmod`>> <</if>> <<if $cow gte 6>> <<semenvolume 1>> <<milkvolume 1>> <</if>> <<if $player.penisExist>> <<if $arousal gte $arousalmax * (4/5)>> <<set $_semen_gain to Math.floor($semen_volume * (3/24))>> <<elseif $arousal gte $arousalmax * (3/5)>> <<set $_semen_gain to Math.floor($semen_volume * (2/24))>> <<else>> <<set $_semen_gain to Math.floor($semen_volume * (1/24))>> <</if>> <<if $cow gte 6 or ($earSlime.growth gte 100 and $earSlime.focus is "impregnation")>> <<set $_semen_gain *= 2>> <</if>> <<if $earSlime.growth gte 100 and $earSlime.focus is "pregnancy">> <<set $_semen_gain /= 4>> <</if>> <<if $drugged gte 1>> <<set $_semen_gain += Math.floor($semen_volume * (1/24))>> <</if>> <<semen_amount $_semen_gain>> <<if $semen_amount gte $semen_volume>> <<if $arousal gte $arousalmax * (4/5)>> <<semenvolume 2>> <<elseif $arousal gte $arousalmax * (3/5)>> <<semenvolume 1>> <</if>> <<if $drugged gte 1>> <<semenvolume 1>> <</if>> <<set $semen_amount to $semen_volume>> <</if>> <</if>> <<set $_milk_gain to $milk_volume / 24>> <<if $earSlime.growth gte 75 and $earSlime.focus is "impregnation">> <<set $_milk_gain /= 4>> <</if>> <<if $earSlime.growth gte 75 and $earSlime.focus is "pregnancy">> <<set $_milk_gain *= 2>> <</if>> <<milk_amount `Math.floor($_milk_gain)`>> <<if $milk_amount is $milk_volume and $lactating>> <<set $milkFullPain to Math.clamp(($milkFullPain || 0) + Math.ceil($milk_volume / 1000),0,200 + Math.ceil($milk_volume / 60))>> <<else>> <<set $milkFullPain to 0>> <</if>> <</widget>> <<widget "semenOrgasm">> <<set _semen_released to calculateSemenReleased()>> <<if $semen_amount gte 1 and $worn.under_lower.vagina_exposed is 1 and $worn.lower.vagina_exposed is 1 and $mouth isnot "mpenis" and $worn.genitals.name isnot "chastity parasite">> <<if $masturbating>> <<set $masturbation_semen += _semen_released>> <</if>> <<if $masturbation_bowl is 1>> <<set _liquid_collection_text.push($masturbation_semen.toFixed(1) + " mL of <<semen>>")>> <</if>> <</if>> <<if $femaleclimax isnot 1>> <<semenvolume 1>> <</if>> <<set $semen_produced_stat += _semen_released>> <<semen_amount `-_semen_released`>> <</widget>> <<widget "wetnessCalculate">> <<if $player.vaginaExist>> <<vaginaWetnessCalculate>> <</if>> <<if $player.penisExist>> <<set $_minimumPenis to 0>> <<if playerRutMinArousal() and numberOfEarSlime() and $earSlime.focus is "impregnation" and $earSlime.growth gte 100>> <<set $_minimumPenis += Math.floor(($earSlime.growth - 100) / 2)>> <</if>> <<set $penisWetness to setup.bodyliquid.combined("penis") * 12>> <<set $penisWetness to Math.clamp($penisWetness, Math.clamp($_minimumPenis, 0, 45), 120)>> <</if>> <<set $anusWetness to (setup.bodyliquid.combined("anus") + setup.bodyliquid.combined("bottom")) * 6>> <<set $_minimum to 0>> <<if playerHeatMinArousal() and numberOfEarSlime() and $earSlime.focus is "pregnancy" and $earSlime.growth gte 100 and $player.sex is "m">> <<set $_minimum += Math.floor(($earSlime.growth - 100) / 2)>> <</if>> <<set $anusWetness to Math.clamp($anusWetness, Math.clamp($_minimum, 0, 45), 120)>> <<if $combat is 1>> <<penetrationPainCalculate>> <</if>> <</widget>> <<widget "vaginaWetnessCalculate">> <<set _totalArousal = 0>> <<set _length to $trackedArousal.length>> <<for _ia to 0; _ia lt _length; _ia++>> <<set _totalArousal += $trackedArousal[_ia] / ((_length - _ia) * 1.5)>> <</for>> <<if $combat is 1>> <!-- combatWetBoost can be from 0 to 5, because max promiscuity/deviancy is 100. --> <<if $enemytype is "man">> <<set $combatWetBoost to Math.floor($promiscuity /20)>> <<elseif $enemytype is "tentacles" or $enemytype is "beast">> <<set $combatWetBoost to Math.floor($deviancy /20)>> <<else>> <<set $combatWetBoost to 0>> <</if>> <!-- combatArousalWetness has been replaced by vaginaArousalWetness but I don't want to remove it completely so it's commented out for now. --> /* <<set $_combatArousalWetness to 75 - Math.floor(Math.pow(0.99985,_totalArousal) * 75)>> <<set $combatWetBoost += $_combatArousalWetness>> */ <<else>> <<set $combatWetBoost to 0>> <</if>> <<set $_minimum to 0>> <<if playerHeatMinArousal() and numberOfEarSlime() and $earSlime.focus is "pregnancy" and $earSlime.growth gte 100>> <<set $_minimum += Math.floor(($earSlime.growth - 100) / 2)>> <</if>> <<set $vaginaWetness to $vaginaArousalWetness + $combatWetBoost + (setup.bodyliquid.combined("vagina") + setup.bodyliquid.combined("vaginaoutside")) * 6>> <<set $vaginaWetness to Math.clamp($vaginaWetness, Math.clamp($_minimum, 0, 45), 120)>> <</widget>> <<widget "penetrationPainCalculate">> <<set $vaginalPain to 0>> <<set $analPain to 0>> <<set $penisPain to 0>> <<if $demon lt 6 and $gamemode isnot "soft">> <<if $player.vaginaExist>> <<if $consensual is 1>> <<set $vaginalPain to Math.floor(3 * Math.pow(0.4,$vaginaWetness/8))>> <<else>> <<set $vaginalPain to Math.floor(6 * Math.pow(0.5,$vaginaWetness/25))>> <</if>> <</if>> <<if $player.penisExist>> <<if $consensual is 1>> <<set $penisPain to Math.floor(3 * Math.pow(0.4,$penisWetness/8))>> <<else>> <<set $penisPain to Math.floor(6 * Math.pow(0.5,$penisWetness/25))>> <</if>> <</if>> <<if $consensual is 1>> <<set $analPain to Math.floor(3 * Math.pow(0.4,$anusWetness/8))>> <<else>> <<set $analPain to Math.floor(6 * Math.pow(0.5,$anusWetness/25))>> <</if>> <<if $gamemode is "hard">> <<set $vaginalPain *= 2>> <<set $penisPain *= 2>> <<set $analPain *= 2>> <</if>> <</if>> <</widget>> <!-- Lube is only released when vaginaArousalWetness is over 60 (also, its max value is 100)--> <!-- "passive" means the lube is dripping out, while "active" means it is being pushed out --> <<widget "vaginaFluidPassive">> <<set $_lube_max to Math.round(30*Math.log10($vaginaArousalWetness - 59))>> <<set _lube_released to random(0, $_lube_max)/20>> <!-- Expected value is between 0 and 2.5, much more likely to be on the lower end due to wetness having a softcap --> <<set _lube_released to parseFloat(_lube_released.toFixed(1))>> <<set $masturbation_vaginaFluid += _lube_released>> <<set $lube_produced_stat += _lube_released>> <</widget>> <<widget "vaginaFluidActive">> <<set $_lube_max to Math.ceil(30*Math.log10($vaginaArousalWetness - 59))>> <<set _lube_released to random(10, $_lube_max)/10>> <!-- Expected value is between 1 and 5, much more likely to be on the lower end due to wetness having a softcap --> <<set _lube_released to parseFloat(_lube_released.toFixed(1))>> <<set $masturbation_vaginaFluid += _lube_released>> <<set $lube_produced_stat += _lube_released>> <</widget>> <<widget "vaginaFluidOrgasm">> <<addVaginalWetness 10>> <<if $vaginaArousalWetness gte 60>> <<set _lube_released to (2*Math.log10($vaginaArousalWetness - 59)) + 11>> <<elseif $vaginaArousalWetness gte 30>> <<set _lube_released to ($vaginaArousalWetness / 10) + 5>> <<else>> <<set _lube_released to 0>> <</if>> <!-- Expected value is either 0, or between 5 and 15 --> <<set _lube_released to parseFloat(_lube_released.toFixed(1))>> <<if $worn.under_lower.vagina_exposed is 1 and $worn.lower.vagina_exposed is 1>> <<if $masturbating>> <<set $masturbation_vaginaFluid += _lube_released>> <</if>> <<if $masturbation_bowl is 1>> <<set _liquid_collection_text.push($masturbation_vaginaFluid.toFixed(1) + " mL of vaginal fluid")>> <</if>> <<elseif $worn.under_lower.vagina_exposed is 0>> <<set $underlowerwet += Math.round(30 * Math.clamp((1 - $underlowerwet/100), 0, 1))>> <</if>> <<set $lube_produced_stat += _lube_released>> <</widget>> <<widget "tinyPenisDryOrgasmChance">> <<if !$player.penisExist or $player.penissize gte 0>> <!-- Cannot have a "femaleclimax" (aka an orgasm with no cum, but with extra humiliation) without a size -1 or lower penis --> <<set $femaleclimax to 0>> <<else>> <!-- Guaranteed at size -2 --> <<set $femaleclimax to 1>> <!-- chance at -1, if haven't cum in a while --> <<if $player.penissize is -1 and $orgasmdown lt 0>> <<set $_femaleclimaxchance to 50>> <<if ['penetrated', 'tentacle', 'tentacledeep', 'doublepenetrated'].includes($anusstate)>> <<set $_femaleclimaxchance += 40>> <<if $anusstate is "doublepenetrated">> <<set $_femaleclimaxchance += 20>> <</if>> <</if>> <<if ['penetrated', 'tentacle', 'tentacledeep'].includes($mouthstate)>> <<set $_femaleclimaxchance += 20>> <</if>> <<if ['penetrated', 'otheranus', 'tentacle', 'tentacledeep'].includes($penisstate)>> <<set $_femaleclimaxchance -= 40>> <</if>> <<set $femaleclimax to (random(1, 100) lte $_femaleclimaxchance ? 1 : 0)>> <</if>> <</if>> <</widget>> <<widget "orgasmcount">> <<if _args[0]>> <<set $orgasmcount += _args[0]>> <<set $orgasmcount = Math.clamp($orgasmcount, 0, 25)>> <</if>> <</widget>><<widget "characteristics">> <br> You are <<if $wraithSkin>> a spirit <<elseif $wolfgirl gte 6 or $cat gte 6 or $cow gte 6 or $harpy gte 6 or $fox gte 6>> <<if $angel gte 6>> an angelic <<elseif $fallenangel gte 2>> a fallen <<elseif $demon gte 6>> a demonic <<elseif $dryad gte 6>> a verdant <<else>> a <</if>> <<if $wolfgirl gte 6 and ($demon gte 6 or $fallenangel gte 2)>> hellhound <<elseif $wolfgirl gte 6 and $angel gte 6>> dog <<elseif $wolfgirl gte 6>> wolf <<elseif $cat gte 6>> cat <<elseif $cow gte 6>> <<if $player.gender_appearance is "m">> bull <<else>> cow <</if>> <<elseif $harpy gte 6>> <<if $hallucinations gte 2 or !$settings.bestialityEnabled>> harpy <<else>> bird <</if>> <<elseif $fox gte 6>> fox <</if>> <<else>> <<if $angel gte 6>> an angel <<elseif $fallenangel gte 2>> a fallen angel <<elseif $demon gte 6>> a demon <<elseif $dryad gte 6>> a dryad <<else>> a<<if $player.gender is "n">>n<</if>> <</if>> <</if>> <<pcGender>>. <br><br> <<switch $bodysize>> <<case 0>>You are tiny compared to others. <<case 1>>You are small compared to others. <<case 2>>You are of average height. <<case 3>>You are large compared to others. <</switch>> <!-- Eye details --> <<print window.buildEyeDetails()>> <!-- --> You have a <<skincolourtext>> <<if $player.breastsize gte 1>> <<if $player.breastsize is $player.perceived_breastsize>> You have <<breasts>>. <<else>> You have <<breasts>>, but your clothing <<if $player.perceived_breastsize is 0>> hides them, making them look flat. <<elseif $player.perceived_breastsize lt $player.breastsize>> hides them, making them look <<breastsizedesc $player.perceived_breastsize>>. <<else>> /*if $player.perceived_breastsize gt $player.breastsize*/ pads them, making them look <<breastsizedesc $player.perceived_breastsize>>. <</if>> <</if>> <<elseif $player.breastsize is 0 and $player.perceived_breastsize gte 1>> Your chest is flat, but your clothing pads it, making it look <<breastsizedesc $player.perceived_breastsize>>. <</if>> You have a <<bottom true>>. <<if $player.penisExist and $player.vaginaExist>> <<silently>> <<penis false true>><<set _penis to _text_output>> <<pussy false true>><<set _pussy to _text_output>> <</silently>> You have <<a _penis>> and <<a _pussy>>. <<else>> You have <<if $player.penisExist>> <<silently>><<penis false true>><<set _penis to _text_output>><</silently>> <<a _penis>>. <</if>> <<if $player.vaginaExist>> <<silently>><<pussy false true>><<set _pussy to _text_output>><</silently>> <<a _pussy>>. <</if>> <</if>> <!--Hair Details--> <<set _hairTextConfig = { currentValue : $hairlength, states : [ { requiredValue: 0, color: '', preText: 'Your ', description: '<<haircolourtext>>', postText: ' hair is short.' }, { requiredValue: 100, color: '', preText: 'When left natural, your ', description: '<<haircolourtext>>', postText: ' hair passes your chin, <<fringedescription>>' }, { requiredValue: 200, color: '', preText: 'When left natural, your ', description: '<<haircolourtext>>', postText: ' hair comes down to your shoulders, <<fringedescription>>' }, { requiredValue: 300, color: '', preText: 'When left natural, your ', description: '<<haircolourtext>>', postText: ' hair is quite long and comes down to the top of your chest, <<fringedescription>>' }, { requiredValue: 400, color: '', preText: 'When left natural, your long ', description: '<<haircolourtext>>', postText: ' hair hangs down to your nipples, <<fringedescription>>' }, { requiredValue: 500, color: '', preText: 'When left natural, your long ', description: '<<haircolourtext>>', postText: ' hair reaches the top of your tummy, <<fringedescription>>' }, { requiredValue: 600, color: '', preText: 'When left natural, your long ', description: '<<haircolourtext>>', postText: ' hair reaches your navel, <<fringedescription>>' }, { requiredValue: 700, color: '', preText: 'When left natural, your very long ', description: '<<haircolourtext>>', postText: ' hair reaches your thighs, <<fringedescription>>' }, { requiredValue: 800, color: '', preText: 'When left natural, your very long ', description: '<<haircolourtext>>', postText: ' hair reaches your knees, <<fringedescription>>' }, { requiredValue: 900, color: '', preText: 'When left natural, your extremely long ', description: '<<haircolourtext>>', postText: ' hair reaches your ankles, <<fringedescription>>' }, { requiredValue: 1000, color: '', preText: 'When left natural, your ', description: '<<haircolourtext>>', postText: ' hair is so long you need be careful lest you trip on it, <<fringedescription>>' } ] }>> <<characteristic-text _hairTextConfig>> <br><br> <!--Pregnancy Details--> <<set $_pregnancy to getPregnancyObject()>> <<set $_menstruation to $sexStats.vagina.menstruation>> <<set $_pills to $sexStats.pills>> <<set $_knowsTheyCanBecomePregnant to ($settings.playerPregnancyHumanEnabled or $settings.playerPregnancyBeastEnabled) and playerAwareTheyCanBePregnant()>> <<set $_heatArousal to playerHeatMinArousal()>> <<set $_rutArousal to playerRutMinArousal()>> <<set $_heatRutDisplay to ($_heatArousal and playerAwareTheyAreInHeat() ? "heat" : "") + ($_heatArousal and playerAwareTheyAreInHeat() and $_rutArousal ? " and " : "") + ($_rutArousal ? "rut" : "")>> <<if $_pregnancy.fetus.length and $_pregnancy.awareOf>> <<if $_pregnancy.timer / $_pregnancy.timerEnd lte 0.33>> <<set _trimester to "first">> <<elseif $_pregnancy.timer / $_pregnancy.timerEnd lte 0.66>> <<set _trimester to "second">> <<else>> <<set _trimester to "third">> <</if>> <<if $_pregnancy.awareOfDetails || $_pregnancy.potentialFathers.every((father, index, array) => father.type === array[0].type)>> <<if $_pregnancy.awareOfDetails>> <<set $_number to $_pregnancy.fetus.length>> <<elseif $_pregnancy.awareOfMultiple>> <<set $_number to $_pregnancy.fetus.length is 1 ? 1 : "more than one">> <<else>> <<set $_number to "an unknown number of">> <</if>> <<switch $_pregnancy.type>> <<case "human">> <<if $_number isnot "an unknown number of" and $_number isnot "more than one" and $_number gt 1>> <<set _childType to "">> <<if $_pregnancy.fetus[0].features.identical is true and $_pregnancy.awareOfDetails>> <<set _childType += "identical ">> <</if>> <<set _childType += ($_number is 3 ? "triplets" : "twins")>> <<else>> <<set _childType to ($_number is 1 || $_number is "more than one" ? "baby" : "babies")>> <</if>> <<case "wolf">> <<set _childType to ($_number is 1 || $_number is "more than one" ? "wolf pup" : "wolf pups")>> <<case "hawk">> <<set _childType to ($_number is 1 || $_number is "more than one" ? "hawk egg" : "hawk eggs")>> <</switch>> <<if $_pregnancy.type is "hawk">> You're pregnant with <<number $_number>> _childType, <<switch _trimester>> <<case "first">>and it will be a while before you can lay <<if $_number is 1>>it<<else>>them<</if>>. <<case "second">>but it will still take some time to lay <<if $_number is 1>>it<<else>>them<</if>>. <<case "third">>and you'll be ready to lay <<if $_number is 1>>it<<else>>them<</if>> soon. <</switch>> <<else>> You're pregnant with <<if !["twins", "identical twins", "triplets"].includes(_childType)>><<number $_number>><</if>> _childType, in the _trimester trimester of your pregnancy. <</if>> <<else>> You know you're in the _trimester trimester of your pregnancy. <</if>> <<if between($_pregnancy.timer / $_pregnancy.timerEnd, 0.1, 1) and !$daily.ultrasoundDone>> <span class="blue">You can get an ultrasound done at the hospital.</span> <</if>> <<if $_pregnancy.potentialFathers.length is 1>> You know that the father is <<print pregnancyNameCorrection($_pregnancy.potentialFathers[0].source)>>. <<elseif $_pregnancy.potentialFathers.length is 2>> You're sure that the father is either <<print pregnancyNameCorrection($_pregnancy.potentialFathers[0].source)>> or <<print pregnancyNameCorrection($_pregnancy.potentialFathers[1].source)>>. <<elseif $_pregnancy.potentialFathers.length is 3>> You're pretty sure that the father is either <<print pregnancyNameCorrection($_pregnancy.potentialFathers[0].source)>>, <<print pregnancyNameCorrection($_pregnancy.potentialFathers[1].source)>> or <<print pregnancyNameCorrection($_pregnancy.potentialFathers[2].source)>>. <<else>> You're unsure who the father is. <</if>> <br><br> <<elseif $_knowsTheyCanBecomePregnant and $_pills.pills.contraceptive.doseTaken>> <<if $_pills.pills.contraceptive.doseTaken gte 2>> You have overdosed on a contraceptive, reducing your chance of impregnation to zero. <<else>> You have taken a contraceptive, reducing your chance of impregnation to almost zero. <</if>> <br><br> <<elseif $_knowsTheyCanBecomePregnant and (($sciencetrait gte 4 and $awareness gte 200) or $awareness gte 500)>> <<set $_risk to playerPregnancyRisk()>> <<if $_risk isnot undefined>> <<switch $_risk>> <<case 6>><<set $_pregnancyRisk to "very safe">><<set $_pregnancyRiskColour to "green">> <<case 5>><<set $_pregnancyRisk to "safe">><<set $_pregnancyRiskColour to "teal">> <<case 3 4>><<set $_pregnancyRisk to "some-what safe">><<set $_pregnancyRiskColour to "lblue">> <<case 1 2>><<set $_pregnancyRisk to "risky">><<set $_pregnancyRiskColour to "pink">> <<case 0>><<set $_pregnancyRisk to "dangerous">><<set $_pregnancyRiskColour to "red">> <</switch>> <<if $_heatArousal or $_rutArousal>> <<heatRutDisplay>> Intercourse will be <span @class="$_pregnancyRiskColour">$_pregnancyRisk</span>. <<else>> You feel that it's <span @class="$_pregnancyRiskColour">$_pregnancyRisk</span> to have intercourse. <</if>> <br><br> <</if>> <<else>> <<heatRutDisplay true>> <</if>> <!--Semen Details--> <<if $player.penisExist and $player.penissize gte -1>> <<set _semenCapacityTextConfig = { currentValue : $semen_volume, preText: 'You produce ', states : [ { requiredValue: 0, color: '', description: '', postText: ' no cum.' }, { requiredValue: 1, color: 'red', description: 'a tiny', postText: ' amount of cum, ' }, { requiredValue: 100, color: 'pink', description: 'a small', postText: ' amount of cum, ' }, { requiredValue: 300, color: 'purple', description: 'a limited', postText: ' amount of cum, ' }, { requiredValue: 500, color: 'blue', description: 'a decent', postText: ' amount of cum, ' }, { requiredValue: 1000, color: 'lblue', description: 'a large', postText: ' amount of cum, ' }, { requiredValue: 1500, color: 'teal', description: 'a huge', postText: ' amount of cum, ' }, { requiredValue: 2000, color: 'green', description: 'a prodigious', postText: ' amount of cum, ' } ] }>> <<set _semenVolumeTextConfig = { currentValue : $semen_amount, states : [ { requiredValue: 0, color: 'red', preText: "", description: "but you\'ve been milked completely dry."}, { requiredValue: 1, color: 'pink', preText: "but you\'re ", description: 'almost empty. '}, { requiredValue: ($semen_volume / 7) * 2, color: 'pink', preText: "but you\'re ", description: 'running out. '}, { requiredValue: ($semen_volume / 7) * 3, color: 'purple', preText: "but you\'re ", description: 'running low. '}, { requiredValue: ($semen_volume / 7) * 4, color: 'blue', preText: "and you\'ve ", description: 'about half left. '}, { requiredValue: ($semen_volume / 7) * 5, color: 'lblue', preText: "and you have ", description: 'plenty left. '}, { requiredValue: ($semen_volume / 7) * 6, color: 'teal', preText: "and you\'re ", description: 'almost full. '}, { requiredValue: $semen_volume, color: 'green', preText: "and you\'re ", description: 'full to the brim. '} ] }>> <<characteristic-text _semenCapacityTextConfig>> <<if $semen_volume gt 0>> <<characteristic-text _semenVolumeTextConfig>> <<if $semen_amount gte $semen_volume>> <<if $arousal gte ($arousalmax / 5) * 4>> As you're already full, <span class="pink">your arousal is increasing your capacity.</span> <<elseif $arousal gte ($arousalmax / 5) * 3>> As you're already full, <span class="purple">your arousal is increasing your capacity.</span> <</if>> <<else>> <<if $arousal gte ($arousalmax / 5) * 4>> <span class="pink">Your arousal is helping recover.</span> <<elseif $arousal gte ($arousalmax / 5) * 3>> <span class="purple">Your arousal is helping recover.</span> <</if>> <</if>> <</if>> <br> <</if>> <!--Lactation Details--> <<if $lactating is 1 and $settings.breastFeedingEnabled>> <<set _milkCapacityTextConfig = { currentValue : $milk_volume, preText: 'Your <<breasts>> produce a ', postText: ' amount of milk, ', states : [ { requiredValue: 0, color: 'red', description: 'tiny'}, { requiredValue: 100, color: 'pink', description: 'small'}, { requiredValue: 300, color: 'purple', description: 'limited'}, { requiredValue: 500, color: 'blue', description: 'decent'}, { requiredValue: 1000, color: 'lblue', description: 'large'}, { requiredValue: 1500, color: 'teal', description: 'huge'}, { requiredValue: 2000, color: 'green', description: 'prodigious'} ] }>> <<set _milkVolumeTextConfig = { currentValue : $milk_amount, states : [ { requiredValue: 0, color: 'red', preText: "", description: " but you\'ve been milked completely dry."}, { requiredValue: 1, color: 'pink', preText: "but you\'re ", description: ' almost empty.'}, { requiredValue: ($milk_volume / 7) * 2, color: 'pink', preText: "but you\'re ", description: ' running out.'}, { requiredValue: ($milk_volume / 7) * 3, color: 'purple', preText: "but you\'re ", description: ' running low.'}, { requiredValue: ($milk_volume / 7) * 4, color: 'blue', preText: "and you\'ve ", description: ' about half left.'}, { requiredValue: ($milk_volume / 7) * 5, color: 'lblue', preText: "and you have ", description: ' plenty left.'}, { requiredValue: ($milk_volume / 7) * 6, color: 'teal', preText: "and you\'re ", description: ' almost full.'}, { requiredValue: $milk_volume, color: 'green', preText: "and you\'re ", description: ' full to the brim.'} ] }>> <<characteristic-text _milkCapacityTextConfig>> <<characteristic-text _milkVolumeTextConfig>> <<if $milkFullPain and $milkFullPain gt 200>> Being full for so long is causing you some pain. <<if !$player.inventory.sextoys["breast pump"] and $milkFullPain gt 225>><span class="gold">A breast pump from the pharmacy might help.</span><</if>> <</if>> <br> <</if>> <<set _holeWetnessStates = [ { requiredValue: 0, color: 'green', description: 'dry.', postText: ' Insertions will be difficult.' }, { requiredValue: 15, color: 'teal', description: 'a little slick.', postText: ' Insertions will be difficult for all but the smallest penises.' }, { requiredValue: 30, color: 'lblue', description: 'slick.', postText: ' Most penises will have a hard time penetrating.' }, { requiredValue: 45, color: 'blue', description: 'moist.', postText: ' Some penises will be able to penetrate without difficulty.' }, { requiredValue: 60, color: 'purple',description: 'wet.', postText: ' Most penises will have an easy time sliding in.' }, { requiredValue: 75, color: 'pink', description: 'dripping.', postText: ' All but the largest penises will have an easy time sliding in.' }, { requiredValue: 90, color: 'red', description: 'drenched.', postText: ' Even the largest penises will have an easy time sliding in.' } ]>> <!--Vagina Wetness--> <<if $player.vaginaExist>> <<set _vaginaWetnessTextConfig = { currentValue : $vaginaWetness, preText: 'Your vagina is ', states: _holeWetnessStates}>> <<characteristic-text _vaginaWetnessTextConfig>> <br> <</if>> <!--Penis Wetness--> <<if $player.penisExist>> <<set _penisWetnessTextConfig = { currentValue : $penisWetness, preText: 'Your penis is ', states: [ { requiredValue: 0, color: 'green', description: 'dry.', postText: ($player.penissize >= 2) ? " Insertions may be difficult." : ''}, { requiredValue: 15, color: 'teal', description: 'a little slick.', postText: ''}, { requiredValue: 30, color: 'lblue', description: 'slick.', postText: ''}, { requiredValue: 45, color: 'blue', description: 'moist.', postText: ''}, { requiredValue: 60, color: 'purple',description: 'wet.', postText: ''}, { requiredValue: 75, color: 'pink', description: 'dripping.', postText: ''}, { requiredValue: 90, color: 'red', description: 'well-lubricated.', postText: ($player.penissize >= 4) ? " It shouldn\'t have much trouble sliding into places, even at your size." : ''} ]}>> <<characteristic-text _penisWetnessTextConfig>> <br> <</if>> <!--Anal Wetness--> <<if $settings.analEnabled>> <<set _analWetnessTextConfig = { currentValue : $anusWetness, preText: 'Your ass is ', states: _holeWetnessStates}>> <<characteristic-text _analWetnessTextConfig>> <</if>> <br><br> <<bodywriting>> <div id="characteristics-display"> <br> <span class="gold">Core Characteristics</span> <div id="base-characteristics" class="characteristic-box-list"> <!--Core skill configurations--> <<silently>> <!--PURITY--> <<if $demon gte 6>> <<set _purityIcon='ui/tf_demon'>> <<elseif $fallenangel gte 2>> <<set _purityIcon='ui/tf_fallenangel'>> <<else>> <<set _purityIcon='ui/tf_angel'>> <</if>> <<set _purityConfig = { name : "Purity", icon : _purityIcon, displayType : "level", currentValue : $purity, modifier: 100, modTypes: { good: [], bad: [] }, states : [ { requiredValue: 0, level: 0, color: 'red', description: 'You are beyond defiled.'}, { requiredValue: 1, level: 1, color: 'red', description: 'You feel utterly defiled.'}, { requiredValue: 500, level: 2, color: 'pink', description: 'You feel defiled.'}, { requiredValue: 600, level: 3, color: 'purple', description: 'You feel somewhat defiled.'}, { requiredValue: 700, level: 4, color: 'blue', description: 'You feel soiled.'}, { requiredValue: 800, level: 5, color: 'lblue', description: 'You feel slightly soiled.'}, { requiredValue: 900, level: 6, color: 'teal', description: "You don\'t feel entirely pure."}, { requiredValue: 1000, level: 7, color: 'green', description: 'You are angelic.'} ] }>> <!--AWARENESS--> <<set _awarenessConfig = { name : "Awareness", icon : "ui/sym_awareness", displayType : "level", currentValue : $awareness, modifier: 100, modTypes: { good: [], bad: [] }, states : [ { requiredValue: -200, level: 0, color: 'green', description: 'You are innocent.'}, { requiredValue: 1, level: 1, color: 'teal', description: 'You are almost entirely innocent.'}, { requiredValue: 100, level: 2, color: 'lblue', description: 'You have a limited understanding of sexuality.'}, { requiredValue: 200, level: 3, color: 'blue', description: 'You have a normal understanding of sexuality.'}, { requiredValue: 300, level: 4, color: 'purple', description: 'Your knowledge of sexual depravity extends beyond that of most people.'}, { requiredValue: 400, level: 5, color: 'pink', description: 'You have seen things that few are privy to.'}, { requiredValue: 500, level: 6, color: 'red', description: 'You have peered into the depths of depravity.'}, { requiredValue: 1000, level: 7, color: 'red', description: 'Your understanding is transcendental.'} ] }>> <!--PHYSIQUE--> <<set _physiqueConfig = { name : "Physique", icon : "ui/sym_physique", displayType : "level", currentValue : $physique, maxValue: $physiquesize, modifier: 100, modTypes: { good: [], bad: [] }, states : [ { requiredValue: 0, level: 0, color: 'red', description: `You are ${$player.bodyshape === "soft" ? "malnourished" : "emaciated"}.`}, { requiredValue: $physiquesize / 7, level: 1, color: 'pink', description: `Your body is ${$player.bodyshape === "soft" ? "squishy" : "skinny"}.`}, { requiredValue: ($physiquesize / 7) * 2, level: 2, color: 'purple', description: `Your body is ${$player.bodyshape === "soft" ? "soft and supple" : "lithe and slender"}.`}, { requiredValue: ($physiquesize / 7) * 3, level: 3, color: 'blue', description: `Your body is ${$player.bodyshape === "soft" ? "well built" : "slim"}.`}, { requiredValue: ($physiquesize / 7) * 4, level: 4, color: 'lblue', description: `Your body is ${$player.bodyshape === "soft" ? "sturdy" : "slim"} and athletic.`}, { requiredValue: ($physiquesize / 7) * 5, level: 5, color: 'teal', description: `Your body is ${$player.bodyshape === "soft" ? "robust" : "toned"} and firm.`}, { requiredValue: ($physiquesize / 7) * 6, level: 6, color: 'green', description: `Your body is ${$player.bodyshape === "soft" ? "robust" : "toned"} and powerful.`} ] }>> <<if playerBellySize() gte 10 and playerNormalPregnancyTotal() lt 50>> <<switch playerNormalPregnancyTotal()>> <<case 0>><<set _pregnancyModifier to 36>> <<case 1>><<set _pregnancyModifier to 48>> <<case 2>><<set _pregnancyModifier to 60>> <<case 3 4 5>><<set _pregnancyModifier to 78>> <<case 6 7>><<set _pregnancyModifier to 96>> <<default>><<set _pregnancyModifier to 120>> <</switch>> <<set _physiqueConfig.modifier to Math.floor(_physiqueConfig.modifier * (1 - (playerBellySize() / _pregnancyModifier)))>> <<set _physiqueConfig.modTypes.bad.pushUnique(playerAwareTheyArePregnant() ? "Pregnant" : "Large Belly")>> <</if>> <<switch $location>> <<case "forest" "moor" "farm" "alex_farm">> <<if $worn.feet.type.includes("heels")>> <<set _physiqueConfig.modifier to Math.floor(_physiqueConfig.modifier * (1 - ($worn.feet.reveal / 5000)))>> <<set _physiqueConfig.modTypes.bad.pushUnique("heels")>> <</if>> <<if $worn.feet.type.includes("rugged")>> <<set _physiqueConfig.modifier to Math.floor(_physiqueConfig.modifier * (1 + (currentSkillValue("feetskill") / 10000)))>> <<set _physiqueConfig.modTypes.good.pushUnique("rugged footwear")>> <</if>> <</switch>> <<if $auriga_artefact is "pc">> <<set _physiqueConfig.modifier to Math.floor(_physiqueConfig.modifier * 1.1)>> <<set _physiqueConfig.modTypes.good.pushUnique("<i>a white so pale</i>")>> <</if>> <!--WILLPOWER--> <<set _willpowerConfig = { name : "Willpower", icon : "ui/sym_trauma", displayType : "level", currentValue : $willpower, maxValue: $willpowermax, modifier: 100, modTypes: { good: [], bad: [] }, states : [ { requiredValue: 0, level: 0, color: 'red', description: 'You are timid.'}, { requiredValue: $willpowermax / 7, level: 1, color: 'pink', description: 'You are fainthearted.'}, { requiredValue: ($willpowermax / 7) * 2, level: 2, color: 'purple', description: 'You are mindful.'}, { requiredValue: ($willpowermax / 7) * 3, level: 3, color: 'blue', description: 'You are resolved.'}, { requiredValue: ($willpowermax / 7) * 4, level: 4, color: 'lblue', description: 'You are determined.'}, { requiredValue: ($willpowermax / 7) * 5, level: 5, color: 'teal', description: 'You are tenacious.'}, { requiredValue: ($willpowermax / 7) * 6, level: 6, color: 'green', description: 'Your will is iron.'} ] }>> <<if numberOfEarSlime() gte 2 and $earSlime.growth gt 50>> <<set _willpowerConfig.modifier to Math.floor(_willpowerConfig.modifier * (0.9 - Math.clamp(($earSlime.growth - 50) / 1000, 0, 0.1)))>> <<set _willpowerConfig.modTypes.bad.pushUnique("ear slimes")>> <<elseif numberOfEarSlime() gte 2>> <<set _willpowerConfig.modifier to Math.floor(_willpowerConfig.modifier * 0.9)>> <<set _willpowerConfig.modTypes.bad.pushUnique("ear slimes")>> <</if>> <!--BEAUTY--> <<set _beautyConfig = { name : "Beauty", icon : "ui/sym_beauty", displayType : "level", currentValue : $beauty, maxValue: $beautymax, modifier: 100, modTypes: { good: [], bad: [] }, states : [ { requiredValue: 0, level: 0, color: 'red', description: 'You are plain.'}, { requiredValue: $beautymax / 7, level: 1, color: 'pink', description: 'You are cute.'}, { requiredValue: ($beautymax / 7) * 2, level: 2, color: 'purple', description: 'You are pretty.'}, { requiredValue: ($beautymax / 7) * 3, level: 3, color: 'blue', description: 'You are charming.'}, { requiredValue: ($beautymax / 7) * 4, level: 4, color: 'lblue', description: 'You are beautiful.'}, { requiredValue: ($beautymax / 7) * 5, level: 5, color: 'teal', description: 'You are ravishing.'}, { requiredValue: ($beautymax / 7) * 6, level: 6, color: 'green', description: 'Your beauty is divine.'} ] }>> <!--PROMISCUITY--> <<set _promiscuityConfig = { name : "Promiscuity", icon : "ui/sym_lust", displayType : "level", currentValue : $promiscuity, maxValue: 100, modifier: 100, modTypes: { good: [], bad: [] }, states : [ { requiredValue: 0, level: 0, color: 'green', description: 'You are chaste and pure.'}, { requiredValue: 1, level: 1, color: 'teal', description: 'You are prudish.'}, { requiredValue: 15, level: 2, color: 'lblue', description: 'You are sexually curious.'}, { requiredValue: 35, level: 3, color: 'blue', description: 'The thought of sexual contact excites you.'}, { requiredValue: 55, level: 4, color: 'purple', description: 'You crave sexual contact.'}, { requiredValue: 75, level: 5, color: 'pink', description: 'You are a slut.'}, { requiredValue: 95, level: 6, color: 'red', description: 'Your sexual appetite is insatiable.'} ] }>> <!--EXHIBITIONISM--> <<set _exhibitionismConfig = { name : "Exhibitionism", icon : "ui/sym_exhibitionism", displayType : "level", currentValue : $exhibitionism, maxValue: 100, modifier: 100, modTypes: { good: [], bad: [] }, states : [ { requiredValue: 0, level: 0, color: 'green', description: 'You are coy.'}, { requiredValue: 1, level: 1, color: 'teal', description: 'You are shy.'}, { requiredValue: 15, level: 2, color: 'lblue', description: 'You like being sexualised.'}, { requiredValue: 35, level: 3, color: 'blue', description: 'You enjoy lewd attention.'}, { requiredValue: 55, level: 4, color: 'purple', description: 'Feeling exposed excites you.'}, { requiredValue: 75, level: 5, color: 'pink', description: 'You are shameless.'}, { requiredValue: 95, level: 6, color: 'red', description: 'The thought of exposure fills you with wild abandon.'} ] }>> <!--DEVIANCY--> <<set _deviancyConfig = { name : "Deviancy", icon : "ui/sym_deviancy", displayType : "level", currentValue : $deviancy, maxValue: 100, modifier: 100, modTypes: { good: [], bad: [] }, states : [ { requiredValue: 0, level: 0, color: 'green', description: 'You are squeamish.'}, { requiredValue: 1, level: 1, color: 'teal', description: 'You are conventional.'}, { requiredValue: 15, level: 2, color: 'lblue', description: 'Your tastes are strange.'}, { requiredValue: 35, level: 3, color: 'blue', description: 'Your tastes are shocking.'}, { requiredValue: 55, level: 4, color: 'purple', description: 'Your desires are scandalous.'}, { requiredValue: 75, level: 5, color: 'pink', description: "You crave acts others wouldn\'t conceive of."}, { requiredValue: 95, level: 6, color: 'red', description: 'You lust for the unspeakable.'} ] }>> <!-- Visual indicator for lewd stats being affected by alcohol --> <<if $drunk gte 1>> <<set _promiscuityConfig.modTypes.good.pushUnique("alcohol")>> <<set _exhibitionismConfig.modTypes.good.pushUnique("alcohol")>> <<set _deviancyConfig.modTypes.good.pushUnique("alcohol")>> <</if>> <!-- Visual indicator for lewd stats being affected by heat --> <<if playerHeatMinArousal() gte 1>> <<set _promiscuityConfig.modTypes.good.pushUnique("in heat")>> <<set _deviancyConfig.modTypes.good.pushUnique("in heat")>> <</if>> <!-- Visual indicator for lewd stats being affected by rut --> <<if playerRutMinArousal() gte 1>> <<set _promiscuityConfig.modTypes.good.pushUnique("in rut")>> <<set _deviancyConfig.modTypes.good.pushUnique("in rut")>> <</if>> <!-- MOOR LUCK, at the end so it appears at the end of the mouseover tooltip --> <<if $moorLuck gt 0>> <<set _physiqueConfig.modifier to Math.floor(_physiqueConfig.modifier * (1 + ($moorLuck / 100)))>> <<set _physiqueConfig.modTypes.good.pushUnique("<i>????</i>")>> <<set _willpowerConfig.modifier to Math.floor(_willpowerConfig.modifier * (1 + ($moorLuck / 100)))>> <<set _willpowerConfig.modTypes.good.pushUnique("<i>????</i>")>> <</if>> <</silently>> <<characteristic-box _purityConfig>> <<characteristic-box _beautyConfig>> <<characteristic-box _physiqueConfig>> <<characteristic-box _willpowerConfig>> <<characteristic-box _awarenessConfig>> <<characteristic-box _promiscuityConfig>> <<characteristic-box _exhibitionismConfig>> <<characteristic-box _deviancyConfig>> </div> <!--Common states for skills with grades--> <<silently>> <<set _basicSkillGrades=[ { requiredValue: 0, level: "None", color: 'red'}, { requiredValue: 1, level: "F", color: 'pink'}, { requiredValue: 200, level: "D", color: 'purple'}, { requiredValue: 400, level: "C", color: 'blue'}, { requiredValue: 600, level: "B", color: 'lblue'}, { requiredValue: 800, level: "A", color: 'teal'}, { requiredValue: 1000, level: "S", color: 'green'} ]>> <<set _detailedSkillGrades=[ { requiredValue: 0, level: "None", color: 'red'}, { requiredValue: 1, level: "F", color: 'pink'}, { requiredValue: 100, level: "F+", color: 'pink'}, { requiredValue: 200, level: "D", color: 'purple'}, { requiredValue: 300, level: "D+", color: 'purple'}, { requiredValue: 400, level: "C", color: 'blue'}, { requiredValue: 500, level: "C+", color: 'blue'}, { requiredValue: 600, level: "B", color: 'lblue'}, { requiredValue: 700, level: "B+", color: 'lblue'}, { requiredValue: 800, level: "A", color: 'teal'}, { requiredValue: 900, level: "A+", color: 'teal'}, { requiredValue: 1000, level: "S", color: 'green'} ]>> <</silently>> <br> <span class="gold">Skills</span> <div id="base-skills" class="characteristic-box-list" @style="($parasite.left_ear.name == 'slime' || $parasite.right_ear.name == 'slime') ? '--min-width: 30%;' : ''"> <!--Additional skills configurations--> <<silently>> <<set _corruptionConfig = { name : "Corruption", displayType : "none", currentValue : $earSlime.corruption, modifier: 100, modTypes: { good: [], bad: [] }, meterColor: $earSlime.startedThreats ? "purple" : "blue", secondValue: $earSlime.growth / 2, secondMeterColor: "red"}>> <<set _skulduggeryConfig = { name : "Skulduggery", displayType : "grade", currentValue : $skulduggery, modifier: 100, modTypes: { good: [], bad: [] }, states : _detailedSkillGrades}>> <<set _dancingConfig = { name : "Dancing", displayType : "grade", currentValue : $danceskill, modifier: 100, modTypes: { good: [], bad: [] }, states : _detailedSkillGrades}>> <<set _swimmingConfig = { name : "Swimming", displayType : "grade", currentValue : $swimmingskill, modifier: 100, modTypes: { good: [], bad: [] }, states : _detailedSkillGrades}>> <<set _athleticsConfig = { name : "Athletics", displayType : "grade", currentValue : $athletics, modifier: 100, modTypes: { good: [], bad: [] }, states : _detailedSkillGrades}>> <<set _tendingConfig = { name : "Tending", displayType : "grade", currentValue : $tending, modifier: 100, modTypes: { good: [], bad: [] }, states : _detailedSkillGrades}>> <<set _housekeepingConfig = { name : "Housekeeping",displayType : "grade", currentValue : $housekeeping, modifier: 100, modTypes: { good: [], bad: [] }, states : _detailedSkillGrades}>> <<set _bellySize to playerBellySize()>> <<if _bellySize gte 10 and playerNormalPregnancyTotal() lt 50>> <<switch playerNormalPregnancyTotal()>> <<case 0>><<set _pregnancyModifier to 36>> <<case 1>><<set _pregnancyModifier to 48>> <<case 2>><<set _pregnancyModifier to 60>> <<case 3 4 5>><<set _pregnancyModifier to 78>> <<case 6 7>><<set _pregnancyModifier to 96>> <<default>><<set _pregnancyModifier to 120>> <</switch>> <<set _dancingConfig.modifier to Math.floor(_dancingConfig.modifier * (1 - (_bellySize / _pregnancyModifier)))>> <<set _dancingConfig.modTypes.bad.pushUnique(playerAwareTheyArePregnant() ? "Pregnant" : "Large Belly")>> <<set _swimmingConfig.modifier to Math.floor(_swimmingConfig.modifier * (1 - (_bellySize / _pregnancyModifier)))>> <<set _swimmingConfig.modTypes.bad.pushUnique(playerAwareTheyArePregnant() ? "Pregnant" : "Large Belly")>> <<set _athleticsConfig.modifier to Math.floor(_athleticsConfig.modifier * (1 - (_bellySize / _pregnancyModifier)))>> <<set _athleticsConfig.modTypes.bad.pushUnique(playerAwareTheyArePregnant() ? "Pregnant" : "Large Belly")>> <</if>> <<if $transformationParts.traits.chase isnot "disabled">> <<set _athleticsConfig.modifier to Math.floor(_athleticsConfig.modifier * 1.10)>> <<set _athleticsConfig.modTypes.good.pushUnique("thrill of the chase")>> <</if>> <<if $worn.hands.type.includes("sticky_fingers")>> <<set _skulduggeryConfig.modifier to Math.floor(_skulduggeryConfig.modifier * 1.05)>> <<set _skulduggeryConfig.modTypes.good.pushUnique("sticky fingers")>> <</if>> <<if $transformationParts.traits.sharpEyes isnot "disabled">> <<set _skulduggeryConfig.modifier to Math.floor(_skulduggeryConfig.modifier * 1.05)>> <<set _skulduggeryConfig.modTypes.good.pushUnique("sharp eyes")>> <</if>> <<if $fox gte 6>> <<set _skulduggeryConfig.modifier to Math.floor(_skulduggeryConfig.modifier * 1.10)>> <<set _skulduggeryConfig.modTypes.good.pushUnique("fox")>> <</if>> <<if $worn.under_upper.type.includesAny("dance", "naked") and $worn.under_lower.type.includesAny("dance", "naked") and $worn.upper.type.includesAny("dance", "naked")and $worn.lower.type.includesAny("dance", "naked")>> <<set _dancingConfig.modifier to Math.floor(_dancingConfig.modifier * 1.05)>> <<if [$worn.under_upper.type, $worn.under_lower.type, $worn.upper.type, $worn.lower.type].flat().includes("dance")>> <<set _dancingConfig.modTypes.good.pushUnique("dancing attire")>> <<else>> <<set _dancingConfig.modTypes.good.pushUnique("naked")>> <</if>> <</if>> <<if $worn.under_upper.type.includesAny("swim", "naked") and $worn.under_lower.type.includesAny("swim", "naked") and $worn.upper.type.includesAny("swim", "naked") and $worn.lower.type.includesAny("swim", "naked")>> <<set _swimmingConfig.modifier to Math.floor(_swimmingConfig.modifier * 1.05)>> <<if $worn.under_upper.type.includes("swim") or $worn.under_lower.type.includes("swim") or $worn.upper.type.includes("swim") or $worn.lower.type.includes("swim")>> <<set _swimmingConfig.modTypes.good.pushUnique("swimwear")>> <<else>> <<set _swimmingConfig.modTypes.good.pushUnique("naked")>> <</if>> <</if>> <<if $worn.feet.type.includes("swim")>> <<set _swimmingConfig.modifier to Math.floor(_swimmingConfig.modifier * (1 + (currentSkillValue("feetskill") / 10000)))>> <<set _swimmingConfig.modTypes.good.pushUnique("flippers")>> <<elseif !$worn.feet.type.includes("naked")>> <<if $worn.feet.type.includes("heels")>> <<set _heels to 0.1>> <<set _swimmingConfig.modTypes.bad.pushUnique("heels")>> <<else>> <<set _heels to 0>> <<set _swimmingConfig.modTypes.bad.pushUnique("shoes")>> <</if>> <<set _swimmingConfig.modifier to Math.floor(_swimmingConfig.modifier * (0.9 + (currentSkillValue("feetskill") / 10000) - _heels))>> <</if>> <<switch $location>> <<case "forest" "moor" "farm" "alex_farm">> <<if $worn.feet.type.includes("heels")>> <<set _athleticsConfig.modifier to Math.floor(_athleticsConfig.modifier * (1 - ($worn.feet.reveal / 5000)))>> <<set _athleticsConfig.modTypes.bad.pushUnique("heels")>> <</if>> <<if $worn.feet.type.includes("rugged")>> <<set _athleticsConfig.modifier to Math.floor(_athleticsConfig.modifier * (1 + (currentSkillValue("feetskill") / 10000)))>> <<set _athleticsConfig.modTypes.good.pushUnique("rugged footwear")>> <</if>> <</switch>> <<if $worn.feet.type.includes("shackle")>> <<set _athleticsConfig.modifier to 0>> <<set _athleticsConfig.modTypes.bad.pushUnique("<b>shackled</b>")>> <<set _swimmingConfig.modifier to Math.floor(_swimmingConfig.modifier * 0.5)>> <<run _swimmingConfig.modTypes.bad.delete("heels","shoes")>> <<set _swimmingConfig.modTypes.bad.pushUnique("<b>shackled</b>")>> <<set _dancingConfig.modifier to Math.floor(_dancingConfig.modifier * 0.5)>> <<set _dancingConfig.modTypes.bad.pushUnique("<b>shackled</b>")>> <</if>> <<if $worn.upper.type.includes("heavy") or $worn.lower.type.includes("heavy")>> <<set _athleticsConfig.modifier to Math.floor(_athleticsConfig.modifier * (V.physique / V.physiquesize) / 1.5)>> <<set _athleticsConfig.modTypes.bad.pushUnique("<b>armoured</b>")>> <<set _swimmingConfig.modifier to Math.floor(_swimmingConfig.modifier * ((V.physique / V.physiquesize) / 3))>> <<set _swimmingConfig.modTypes.bad.pushUnique("<b>armoured</b>")>> <<set _dancingConfig.modifier to Math.floor(_dancingConfig.modifier * ((V.physique / V.physiquesize) / 3))>> <<set _dancingConfig.modTypes.bad.pushUnique("<b>armoured</b>")>> <</if>> <<if $backgroundTraits.includes("plantlover")>> <<set _tendingConfig.modifier to Math.floor(_tendingConfig.modifier * (1 + ($trauma / ($traumamax * 2))))>> <<if $submissive lte 850>> <<set _tendingConfig.modTypes.good.pushUnique("dendrophile")>> <<else>> <<set _tendingConfig.modTypes.good.pushUnique("plant lover")>> <</if>> <</if>> <<if $worn.upper.type.includes("maid")>> <<set _housekeepingConfig.modifier to Math.floor(_housekeepingConfig.modifier * 1.05)>> <<set _housekeepingConfig.modTypes.good.pushUnique("maid outfit")>> <</if>> <<if $worn.lower.type.includes("maid")>> <<set _housekeepingConfig.modifier to Math.floor(_housekeepingConfig.modifier * 1.05)>> <<set _housekeepingConfig.modTypes.good.pushUnique("maid outfit")>> <</if>> <<if $worn.head.type.includes("maid")>> <<set _housekeepingConfig.modifier to Math.floor(_housekeepingConfig.modifier * 1.05)>> <<set _housekeepingConfig.modTypes.good.pushUnique("maid outfit")>> <</if>> <<if $worn.handheld.type.includes("maid")>> <<set _housekeepingConfig.modifier to Math.floor(_housekeepingConfig.modifier * 1.05)>> <<set _housekeepingConfig.modTypes.good.pushUnique("cleaning supplies")>> <</if>> <<if $moorLuck gt 0>> <<set _skulduggeryConfig.modifier to Math.floor(_skulduggeryConfig.modifier * (1 + ($moorLuck / 100)))>> <<set _skulduggeryConfig.modTypes.good.pushUnique("<i>????</i>")>> <<set _dancingConfig.modifier to Math.floor(_dancingConfig.modifier * (1 + ($moorLuck / 100)))>> <<set _dancingConfig.modTypes.good.pushUnique("<i>????</i>")>> <<set _swimmingConfig.modifier to Math.floor(_swimmingConfig.modifier * (1 + ($moorLuck / 100)))>> <<set _swimmingConfig.modTypes.good.pushUnique("<i>????</i>")>> <<set _athleticsConfig.modifier to Math.floor(_athleticsConfig.modifier * (1 + ($moorLuck / 100)))>> <<set _athleticsConfig.modTypes.good.pushUnique("<i>????</i>")>> <<set _tendingConfig.modifier to Math.floor(_tendingConfig.modifier * (1 + ($moorLuck / 100)))>> <<set _tendingConfig.modTypes.good.pushUnique("<i>????</i>")>> <<set _housekeepingConfig.modifier to Math.floor(_housekeepingConfig.modifier * (1 + ($moorLuck / 100)))>> <<set _housekeepingConfig.modTypes.good.pushUnique("<i>????</i>")>> <</if>> <</silently>> <<characteristic-box _skulduggeryConfig>> <<characteristic-box _dancingConfig>> <<characteristic-box _swimmingConfig>> <<characteristic-box _athleticsConfig>> <<characteristic-box _tendingConfig>> <<characteristic-box _housekeepingConfig>> <<if numberOfEarSlime()>> <<characteristic-box _corruptionConfig>> <</if>> </div> <br> <span class="gold">Sex Skills</span> <!--Sex skills configurations--> <<silently>> <<set _seductionConfig = { name : "Seduction", displayType : "grade", currentValue : $seductionskill, modifier: 100, modTypes: { good: [], bad: [] }, states : _basicSkillGrades, sensitivity : 0}>> <<set _oralConfig = { name : "Oral", displayType : "grade", currentValue : $oralskill, modifier: 100, modTypes: { good: [], bad: [] }, states : _basicSkillGrades, sensitivity : $mouthsensitivity}>> <<set _chestConfig = { name : "Chest", displayType : "grade", currentValue : $chestskill, modifier: 100, modTypes: { good: [], bad: [] }, states : _basicSkillGrades, sensitivity : $breastsensitivity}>> <<set _handsConfig = { name : "Hands", displayType : "grade", currentValue : $handskill, modifier: 100, modTypes: { good: [], bad: [] }, states : _basicSkillGrades, sensitivity : 0}>> <<set _buttocksConfig = { name : "Buttocks", displayType : "grade", currentValue : $bottomskill, modifier: 100, modTypes: { good: [], bad: [] }, states : _basicSkillGrades, sensitivity : $bottomsensitivity}>> <<set _analConfig = { name : "Anal", displayType : "grade", currentValue : $analskill, modifier: 100, modTypes: { good: [], bad: [] }, states : _basicSkillGrades, sensitivity : $bottomsensitivity}>> <<set _thighsConfig = { name : "Thighs", displayType : "grade", currentValue : $thighskill, modifier: 100, modTypes: { good: [], bad: [] }, states : _basicSkillGrades, sensitivity : 0}>> <<set _feetConfig = { name : "Feet", displayType : "grade", currentValue : $feetskill, modifier: 100, modTypes: { good: [], bad: [] }, states : _basicSkillGrades, sensitivity : 0}>> <<if $player.penisExist>> <<set _penileConfig = { name : "Penile", displayType : "grade", currentValue : $penileskill, modifier: 100, modTypes: { good: [], bad: [] }, states : _basicSkillGrades, sensitivity : $genitalsensitivity}>> <</if>> <<if playerHasStrapon()>> <<set _penileConfig = { name : "Strap-on use",displayType : "grade", currentValue : $penileskill, modifier: 100, modTypes: { good: [], bad: [] }, states : _basicSkillGrades, sensitivity : 0}>> <</if>> <<if $player.vaginaExist>> <<set _vaginalConfig = { name : "Vaginal", displayType : "grade", currentValue : $vaginalskill, modifier: 100, modTypes: { good: [], bad: [] }, states : _basicSkillGrades, sensitivity : $genitalsensitivity}>> <</if>> <<if $earSlime.growth gt 50 and !V.earSlime.defyCooldown>> <<set _seductionConfig.modTypes.good.pushUnique("ear slimes")>> <<set _seductionConfig.modifier to Math.floor(_seductionConfig.modifier * (1 + (($earSlime.growth - 50) / 600)))>> <</if>> <<if $earSlime.growth gte 100 and $earSlime.focus is "pregnancy">> <<if _vaginalConfig>> <<set _vaginalConfig.modTypes.good.pushUnique("ear slimes")>> <<set _vaginalConfig.modifier to Math.floor(_vaginalConfig.modifier * (1 + (($earSlime.growth - 100) / 500)))>> <</if>> <<if _penileConfig>> <<set _penileConfig.modTypes.bad.pushUnique("ear slimes")>> <<set _penileConfig.modifier to Math.floor(_penileConfig.modifier * (1 - (($earSlime.growth - 100) / 400)))>> <</if>> <<if !$player.vaginaExist>> <<set _analConfig.modTypes.good.pushUnique("ear slimes")>> <<set _analConfig.modifier to Math.floor(_analConfig.modifier * (1 + (($earSlime.growth - 100) / 500)))>> <</if>> <</if>> <<if $earSlime.growth gte 100 and $earSlime.focus is "impregnation">> <<if _vaginalConfig>> <<set _vaginalConfig.modTypes.bad.pushUnique("ear slimes")>> <<set _vaginalConfig.modifier to Math.floor(_vaginalConfig.modifier * (1 - (($earSlime.growth - 100) / 400)))>> <</if>> <<if _penileConfig>> <<set _penileConfig.modTypes.good.pushUnique("ear slimes")>> <<set _penileConfig.modifier to Math.floor(_penileConfig.modifier * (1 + (($earSlime.growth - 100) / 500)))>> <</if>> <</if>> <<if playerHeatMinArousal()>> <<if _vaginalConfig>> <<set _vaginalConfig.modTypes.good.pushUnique("in heat")>> <<set _vaginalConfig.modifier to Math.floor(_vaginalConfig.modifier * (1 + (Math.clamp(playerHeatMinArousal(), 0, 4000) / 20000)))>> <</if>> <<if !$player.vaginaExist>> <<set _analConfig.modTypes.good.pushUnique(playerAwareTheyCanBePregnant() ? "in heat" : "<i>????</i>")>> <<set _analConfig.modifier to Math.floor(_analConfig.modifier * (1 + (Math.clamp(playerHeatMinArousal(), 0, 4000) / 20000)))>> <</if>> <</if>> <<if playerRutMinArousal()>> <<set _penileConfig.modTypes.good.pushUnique("in rut")>> <<set _penileConfig.modifier to Math.floor(_penileConfig.modifier * (1 + (Math.clamp(playerRutMinArousal(), 0, 4000) / 20000)))>> <</if>> <</silently>> <<if $options.images is 1>> <div id="player-body"> <<player-base-body>> </div> <div id="sex-diagram"> <div class="characteristic-box-list left-column"> <div class="sex-diagram-box"> <<characteristic-box _seductionConfig>> <div class="connector-box"></div> </div> <div class="sex-diagram-box"> <<characteristic-box _chestConfig>> <<connector-box 52 35 10>> </div> <div class="sex-diagram-box"> <<characteristic-box _buttocksConfig>> <<connector-box 37 50 20>> </div> <<if $player.vaginaExist>> <div class="sex-diagram-box"> <<characteristic-box _vaginalConfig>> <<connector-box 0 50 3>> </div> <div class="sex-diagram-box"> <<characteristic-box _thighsConfig>> <<connector-box 37 35 10 true>> </div> <<else>> <div class="sex-diagram-box"> <<characteristic-box _thighsConfig>> <<connector-box 0 35 10>> </div> <</if>> </div> <div class="characteristic-box-list right-column"> <div class="sex-diagram-box"> <<connector-box 71 35 3>> <<characteristic-box _oralConfig>> </div> <div class="sex-diagram-box"> <<connector-box 74 50 15>> <<characteristic-box _handsConfig>> </div> <<if $player.penisExist or playerHasStrapon()>> <div class="sex-diagram-box"> <<connector-box 36 65 2>> <<characteristic-box _penileConfig>> </div> <div class="sex-diagram-box"> <<connector-box 2 50 12 true>> <<characteristic-box _analConfig>> </div> <div class="sex-diagram-box"> <<connector-box 0 50 14>> <<characteristic-box _feetConfig>> </div> <<else>> <div class="sex-diagram-box"> <<connector-box 39 65 12>> <<characteristic-box _analConfig>> </div> <div class="sex-diagram-box"> <<connector-box 45 80 15>> <<characteristic-box _feetConfig>> </div> <</if>> </div> </div> <<else>> <div id="sex-skills" class="characteristic-box-list"> <<characteristic-box _seductionConfig>> <<characteristic-box _oralConfig>> <<if $player.vaginaExist>> <<characteristic-box _vaginalConfig>> <</if>> <<if $player.penisExist>> <<characteristic-box _penileConfig>> <</if>> <<if playerHasStrapon()>> <<characteristic-box _penileConfig>> <</if>> <<characteristic-box _analConfig>> <<characteristic-box _handsConfig>> <<characteristic-box _feetConfig>> <<characteristic-box _thighsConfig>> <<characteristic-box _buttocksConfig>> <<characteristic-box _chestConfig>> </div> <</if>> <br> <span class="gold">School Performance</span> <div id="school-grades" class="characteristic-box-list"> <!--School grade configurations--> <<silently>> <<set _schoolGradeStates= [ { requiredValue: -1, level: 'F', color: 'red'}, { requiredValue: 0, level: 'D', color: 'purple'}, { requiredValue: 1, level: 'C', color: 'blue'}, { requiredValue: 2, level: 'B', color: 'lblue'}, { requiredValue: 3, level: 'A', color: 'teal'}, { requiredValue: 4, level: 'A*', color: 'green'} ]>> <<set _scienceConfig = { name : 'Science', icon : 'misc/icon/science', displayType : "grade", currentValue : $sciencetrait, modifier: 100, modTypes: { good: [], bad: [] }, percent: $science_exam, showStars: true, starLevel: $science_star, states : _schoolGradeStates}>> <<set _mathsConfig = { name : 'Maths', icon : 'misc/icon/math', displayType : "grade", currentValue : $mathstrait, modifier: 100, modTypes: { good: [], bad: [] }, percent: $maths_exam, showStars: true, starLevel: $maths_star, states : _schoolGradeStates}>> <<set _englishConfig = { name : 'English', icon : 'misc/icon/english', displayType : "grade", currentValue : $englishtrait, modifier: 100, modTypes: { good: [], bad: [] }, percent: $english_exam, showStars: true, starLevel: $english_star, states : _schoolGradeStates}>> <<set _historyConfig = { name : 'History', icon : 'misc/icon/history', displayType : "grade", currentValue : $historytrait, modifier: 100, modTypes: { good: [], bad: [] }, percent: $history_exam, showStars: true, starLevel: $history_star, states : _schoolGradeStates}>> <<if $moorLuck gt 0>> <<set _scienceConfig.modifier to Math.floor(_scienceConfig.modifier * (1 + ($moorLuck / 100)))>> <<set _scienceConfig.modTypes.good.pushUnique("<i>????</i>")>> <<set _mathsConfig.modifier to Math.floor(_mathsConfig.modifier * (1 + ($moorLuck / 100)))>> <<set _mathsConfig.modTypes.good.pushUnique("<i>????</i>")>> <<set _englishConfig.modifier to Math.floor(_englishConfig.modifier * (1 + ($moorLuck / 100)))>> <<set _englishConfig.modTypes.good.pushUnique("<i>????</i>")>> <<set _historyConfig.modifier to Math.floor(_historyConfig.modifier * (1 + ($moorLuck / 100)))>> <<set _historyConfig.modTypes.good.pushUnique("<i>????</i>")>> <</if>> <</silently>> <<characteristic-box _scienceConfig>> <<characteristic-box _mathsConfig>> <<characteristic-box _englishConfig>> <<characteristic-box _historyConfig>> </div> <div class="characteristic-box-extras"> <<set _schoolPerformanceConfig = { currentValue : $school, preText: 'Your overall school performance is ', modifier: 100, modTypes: { good: [], bad: [] }, states : [ { requiredValue: 0, color: 'red', description: 'appalling.'}, { requiredValue: 1, color: 'pink', description: 'awful.'}, { requiredValue: 400, color: 'purple', description: 'bad.'}, { requiredValue: 800, color: 'blue', description: 'okay.'}, { requiredValue: 1600, color: 'lblue', description: 'good.'}, { requiredValue: 2800, color: 'teal', description: 'excellent.'}, { requiredValue: 4000, color: 'green', description: 'exemplary.'} ] }>> <<characteristic-text _schoolPerformanceConfig>> <br> </div> <br> <span class="gold">Weapon Skills</span> <div id="prof" class="characteristic-box-list"> <<silently>> <<set _sprayConfig = { name : "Sprays", displayType : "grade", currentValue : $prof.spray, modifier: 100, modTypes: { good: [], bad: [] }, states : _basicSkillGrades}>> <<set _netConfig = { name : "Nets", displayType : "grade", currentValue : $prof.net, modifier: 100, modTypes: { good: [], bad: [] }, states : _basicSkillGrades}>> <<set _batonConfig = { name : "Batons", displayType : "grade", currentValue : $prof.baton, modifier: 100, modTypes: { good: [], bad: [] }, states : _basicSkillGrades}>> <<set _whipConfig = { name : "Whips", displayType : "grade", currentValue : $prof.whip, modifier: 100, modTypes: { good: [], bad: [] }, states : _basicSkillGrades}>> <<set _hiddenConfig = { name : "<i>????</i>", displayType : "grade", currentValue : 0, modifier: 100, modTypes: { good: [], bad: [] }, states : _basicSkillGrades}>> <</silently>> <<characteristic-box _sprayConfig>> <<if $prof.net isnot undefined>> <<characteristic-box _netConfig>> <<else>> <<characteristic-box _hiddenConfig>> <</if>> <<if $prof.baton isnot undefined>> <<characteristic-box _batonConfig>> <<else>> <<characteristic-box _hiddenConfig>> <</if>> <<if $prof.whip isnot undefined>> <<characteristic-box _whipConfig>> <<else>> <<characteristic-box _hiddenConfig>> <</if>> /* <<if $prof.pickaxe isnot undefined>> <<characteristic-box _pickaxeConfig>> <<else>> <<characteristic-box _hiddenConfig>> <</if>>*/ </div> </div> <br> <span class="gold">Insecurities</span> <div class="description">Scrutiny becomes harder to take as insecurity increases, inflicting more stress and damaging control. Acceptance renders you immune to the effect.</div> <br><br> <<set $_penisSize to setup.penisSizes[$player.penissize + 2].toUpperFirst()>> <<if insecurityExists("penis_small")>> <span class="red">Insecurity: <<print $_penisSize>> Penis</span> <div class="meter"> <<set _percent=Math.floor(($insecurity_penis_small/1000)*100)>> <<print '<div class="redbar" style="width:' + _percent + '%"></div>'>> </div> <<if $acceptance_penis_small gte 1>> <span class="green">Acceptance: <<print $_penisSize>> Penis</span> <div class="meter"> <<set _percent=Math.floor(($acceptance_penis_small/1000)*100)>> <<print '<div class="greenbar" style="width:' + _percent + '%"></div>'>> </div> <</if>> <</if>> <<if insecurityExists("penis_big")>> <span class="red">Insecurity: <<print $_penisSize>> Penis</span> <div class="meter"> <<set _percent=Math.floor(($insecurity_penis_big/1000)*100)>> <<print '<div class="redbar" style="width:' + _percent + '%"></div>'>> </div> <<if $acceptance_penis_big gte 1>> <span class="green">Acceptance: <<print $_penisSize>> Penis</span> <div class="meter"> <<set _percent=Math.floor(($acceptance_penis_big/1000)*100)>> <<print '<div class="greenbar" style="width:' + _percent + '%"></div>'>> </div> <</if>> <</if>> <<set $_breastSize to setup.breastsizes[$player.breastsize].toUpperFirst()>> <<if insecurityExists("breasts_small")>> <span class="red">Insecurity: <<print $player.breastsize ? "$_breastSize Breasts" : "Flat Chest">></span> <div class="meter"> <<set _percent=Math.floor(($insecurity_breasts_small/1000)*100)>> <<print '<div class="redbar" style="width:' + _percent + '%"></div>'>> </div> <<if $acceptance_breasts_small gte 1>> <span class="green">Acceptance: <<print $player.breastsize ? "$_breastSize Breasts" : "Flat Chest">></span> <div class="meter"> <<set _percent=Math.floor(($acceptance_breasts_small/1000)*100)>> <<print '<div class="greenbar" style="width:' + _percent + '%"></div>'>> </div> <</if>> <</if>> <<if insecurityExists("breasts_big")>> <span class="red">Insecurity: <<print $player.gender is "m" ? "Male" : $_breastSize>> Breasts</span> <div class="meter"> <<set _percent=Math.floor(($insecurity_breasts_big/1000)*100)>> <<print '<div class="redbar" style="width:' + _percent + '%"></div>'>> </div> <<if $acceptance_breasts_big gte 1>> <span class="green">Acceptance: <<print $player.gender is "m" ? "Male" : $_breastSize>> Breasts</span> <div class="meter"> <<set _percent=Math.floor(($acceptance_breasts_big/1000)*100)>> <<print '<div class="greenbar" style="width:' + _percent + '%"></div>'>> </div> <</if>> <</if>> <<if insecurityExists("pregnancy")>> <<set $_bellyText to (playerAwareTheyArePregnant() ? "Pregnant Belly" : "Pregnant Looking Belly")>> <span class="red">Insecurity: <<print $_bellyText>></span> <div class="meter"> <<set _percent=Math.floor(($insecurity_pregnancy/1000)*100)>> <<print '<div class="redbar" style="width:' + _percent + '%"></div>'>> </div> <<if $acceptance_pregnancy gte 1>> <span class="green">Acceptance: <<print $_bellyText>></span> <div class="meter"> <<set _percent=Math.floor(($acceptance_pregnancy/1000)*100)>> <<print '<div class="greenbar" style="width:' + _percent + '%"></div>'>> </div> <</if>> <</if>> <br> <</widget>> <<widget "heatRutDisplay">><<silently>> <<set $_knowsTheyCanBecomePregnant to ($settings.playerPregnancyHumanEnabled or $settings.playerPregnancyBeastEnabled) and playerAwareTheyCanBePregnant()>> <<set $_heatArousal to playerHeatMinArousal()>> <<set $_rutArousal to playerRutMinArousal()>> <<if $_heatArousal or $_rutArousal>> <<set $_source to []>> <<set $_sourceText to "Something">> <<set $_arousal to []>> <<set $_arousedText to "keeping you aroused">> /* SourceText */ <<if $wolfgirl gte 2 or $cat gte 2 or $cow gte 2 or $fox gte 2>> <<run $_source.push("inner beast")>> <</if>> <<if $earSlime.growth gt 50 and (($earSlime.focus is "pregnancy" and $_heatArousal) or ($earSlime.focus is "impregnation" and $_rutArousal))>> <<run $_source.push("ear slime")>> <</if>> <<if $_source.length>> <<set $_sourceText to "Your " + formatList($_source, "and")>> <</if>> /* arousedText */ <<if $_source.length and $_heatArousal and $_knowsTheyCanBecomePregnant>> <<run $_arousal.push("heat")>> <</if>> <<if $_source.length and $_rutArousal>> <<run $_arousal.push("rut")>> <</if>> <<if $_arousal.length>> <<set $_arousedText to "sending you into " + formatList($_arousal, "and")>> <</if>> <</if>> <</silently>><<if $_sourceText>><<print $_sourceText>><<print $_source.length and $_source.length gte 2 ? " are " : " is">> <<print $_arousedText>>.<<if _args[0]>><br><br><</if>><</if>> <</widget>><<widget "cheats">> <<link [[Confirm|$passage]]>><<set $cheatReload to true>><</link>> <br> Can cause problems if confirmed during events, or with NPCs around. <br> Only required if you want cheats to take immediate effect on the current scene. <hr> <div id="cheatsShown"><<cheats-characterStats>></div> <div class="settingsGrid"> <input type="button" class="toTop options" value="Top of Page" onclick="$('#customOverlayContent').scrollTop(0)"/> </div> <</widget>> <<widget "cheatVirginityToggle">> <<set _type to _args[0]>> <<set _id to `stats${_type}virginity`>> <<capture _type _id>> <span @id="_id"><<= ($player.virginity[_type] is true ? "Present" : "Taken by " + ($player.virginity[_type] is false ? "unknown" : $player.virginity[_type]))>></span> | <span @id="_id + 'link'"><<link `($player.virginity[_type] is true and !$player?.virginityDetails?.[_type]?.taker ? "Take" : "Restore")`>> <<if $player.virginity[_type] is true>> <<set $player.virginity[_type] to (_virginity[_type] is true ? false : _virginity[_type])>> <<if $player.virginity[_type] is false and $player?.virginityDetails?.[_type]?.taker>><<set $player.virginity[_type] to $player.virginityDetails[_type].taker>><</if>> <<if $player.virginity.temple isnot false and ["penile", "vaginal"].includes(_type)>><<set $player.virginity.temple to "unknown">><</if>> <<else>> <<set $player.virginity[_type] to true>> <<if $player.virginity.temple isnot false and ["penile", "vaginal"].includes(_type)>><<set $player.virginity.temple to true>><</if>> <</if>> <<run $(`#${_id}link .link-internal`).html($player.virginity[_type] is true and !$player?.virginityDetails?.[_type]?.taker ? "Take" : "Restore")>> <<run $(`#${_id}`).html($player.virginity[_type] is true ? "Present" : "Taken by " + ($player.virginity[_type] is false ? "unknown" : $player.virginity[_type]))>> <</link>></span> <</capture>> <</widget>> <<widget "cheatParasiteToggle">> <<set _bodypart to _args[0]>> <<set _parasiteTypes to setup.parasiteTypesPerBodypart[_bodypart]>> <<= _bodypart.toUpperFirst().replace("_", " ")>>: <<capture _bodypart, _parasiteTypes, _i, _temp>> <<for _i = 0; _i < _parasiteTypes.length; _i++>> <span @id="_parasite" @class="_parasiteTypes[_i] is $parasite[_bodypart].name || _parasiteTypes[_i] is 'none' and !$parasite[_bodypart].name ? 'goldLink' : 'link' "> <<link _parasiteTypes[_i]>> <<removeparasite _bodypart>> <<set _temp to _parasiteTypes[_i]>> <<set _parasiteTypes[_i] to _parasiteTypes[0]>> <<set _parasiteTypes[0] to _temp>> <<if _temp isnot "none">> <<parasite _bodypart _temp>> <</if>> <<updatesidebarimg>> <<replace `"#"+ _bodypart`>><<cheatParasiteToggle _bodypart>><</replace>> <</link>> </span> <<if _i < _parasiteTypes.length - 1>> |<</if>> <</for>> <</capture>> <</widget>> <<widget "cheatBodyLiquid">> <<set _semen to _args[0]>> <<set _label to _semen is "goo" ? "slime" : _semen>> <div class="settingsToggleItem"> <span class="gold"><<= _label.toUpperFirst()>></span> <br> <<capture _type _semen>> <<link `'Add all ' + _label`>> <<for _type range ["neck","rightarm","leftarm","thigh","bottom","tummy","chest","face","hair","feet","vaginaoutside","vagina","penis","anus","mouth"]>> <<bodyliquid _type _semen 5>><<run $(`#stats${_type}${_semen}`).html(Math.trunc($player.bodyliquid[_type][_semen]))>> <</for>> <<updatesidebarimg>> <<set _id to "#cheatLiquids-" + _semen>> <<replace _id>><<cheatBodyliquidElement _semen>><</replace>> <</link>> <</capture>> | <<capture _type _semen>> <<link `'Remove all ' + _label`>> <<for _type range ["neck","rightarm","leftarm","thigh","bottom","tummy","chest","face","hair","feet","vaginaoutside","vagina","penis","anus","mouth"]>> <<bodyliquid _type _semen -5>><<run $(`#stats${_type}${_semen}`).html(Math.trunc($player.bodyliquid[_type][_semen]))>> <</for>> <<updatesidebarimg>> <<set _id to "#cheatLiquids-" + _semen>> <<replace _id>><<cheatBodyliquidElement _semen>><</replace>> <</link>> <</capture>> <br> <<set _id to "cheatLiquids-" + _semen>> <span @id="_id"> <<cheatBodyliquidElement _semen>> </span> </div> <</widget>> <<widget "cheatBodyliquidElement">> <<set _semen to _args[0]>> <<set _options to { max: 5, step: 1, values: [_semen], activeButtons: ["single", "minMax"], percentage: false, reverse: true, css: {display: "inline-block", "margin-bottom": "0"} }>> <<numberStepper "Neck" $player.bodyliquid.neck[_semen] {...T.options, callback: (value, arr) => { V.player.bodyliquid.neck[arr[0]] = value; Wikifier.wikifyEval("<<updatesidebarimg>>") }}>> <<numberStepper "Right arm" $player.bodyliquid.rightarm[_semen] {...T.options, callback: (value, arr) => { V.player.bodyliquid.rightarm[arr[0]] = value; Wikifier.wikifyEval("<<updatesidebarimg>>") }}>> <<numberStepper "Left arm" $player.bodyliquid.leftarm[_semen] {...T.options, callback: (value, arr) => { V.player.bodyliquid.leftarm[arr[0]] = value; Wikifier.wikifyEval("<<updatesidebarimg>>") }}>> <<numberStepper "Thigh" $player.bodyliquid.thigh[_semen] {...T.options, callback: (value, arr) => { V.player.bodyliquid.thigh[arr[0]] = value; Wikifier.wikifyEval("<<updatesidebarimg>>") }}>> <<numberStepper "Bottom" $player.bodyliquid.bottom[_semen] {...T.options, callback: (value, arr) => { V.player.bodyliquid.bottom[arr[0]] = value; Wikifier.wikifyEval("<<updatesidebarimg>>") }}>> <<numberStepper "Tummy" $player.bodyliquid.tummy[_semen] {...T.options, callback: (value, arr) => { V.player.bodyliquid.tummy[arr[0]] = value; Wikifier.wikifyEval("<<updatesidebarimg>>") }}>> <<numberStepper "Chest" $player.bodyliquid.chest[_semen] {...T.options, callback: (value, arr) => { V.player.bodyliquid.chest[arr[0]] = value; Wikifier.wikifyEval("<<updatesidebarimg>>") }}>> <<numberStepper "Face" $player.bodyliquid.face[_semen] {...T.options, callback: (value, arr) => { V.player.bodyliquid.face[arr[0]] = value; Wikifier.wikifyEval("<<updatesidebarimg>>") }}>> <<numberStepper "Hair" $player.bodyliquid.hair[_semen] {...T.options, callback: (value, arr) => { V.player.bodyliquid.hair[arr[0]] = value; Wikifier.wikifyEval("<<updatesidebarimg>>") }}>> <<numberStepper "Feet" $player.bodyliquid.feet[_semen] {...T.options, callback: (value, arr) => { V.player.bodyliquid.feet[arr[0]] = value; Wikifier.wikifyEval("<<updatesidebarimg>>") }}>> <<numberStepper "Labia" $player.bodyliquid.vaginaoutside[_semen] {...T.options, callback: (value, arr) => { V.player.bodyliquid.vaginaoutside[arr[0]] = value; Wikifier.wikifyEval("<<updatesidebarimg>>") }}>> <<numberStepper "Vagina" $player.bodyliquid.vagina[_semen] {...T.options, callback: (value, arr) => { V.player.bodyliquid.vagina[arr[0]] = value; Wikifier.wikifyEval("<<updatesidebarimg>>") }}>> <<numberStepper "Penis" $player.bodyliquid.penis[_semen] {...T.options, callback: (value, arr) => { V.player.bodyliquid.penis[arr[0]] = value; Wikifier.wikifyEval("<<updatesidebarimg>>") }}>> <<numberStepper "Anus" $player.bodyliquid.anus[_semen] {...T.options, callback: (value, arr) => { V.player.bodyliquid.anus[arr[0]] = value; Wikifier.wikifyEval("<<updatesidebarimg>>") }}>> <<numberStepper "Mouth" $player.bodyliquid.mouth[_semen] {...T.options, callback: (value, arr) => { V.player.bodyliquid.mouth[arr[0]] = value; Wikifier.wikifyEval("<<updatesidebarimg>>") }}>> <</widget>> <<widget "cheats-characterStats">> <div class="settingsGrid"> <div class="settingsHeader options">Player</div> <div class="settingsToggleItemWide"> <span class="gold">Miscellaneous</span> <br> <<numberStepper "Money" $money { activeButtons: ["single", "double", "triple"], step: 1000, max: 10000000000, colorArr:["--yellow"], percentage: false, valueFormat: (value) => `<b>${formatMoney(value)}</b>`, callback: (value) => { const difference = value - V.money; V.moneyStats.cheats.earned += difference; V.money = value; } }>> <<if $location is "prison">> <<set $prison.teeth to $prison.teeth or 0>> <<numberStepper "Teeth" $prison.teeth {callback: (value) => V.prison.teeth = value, disableMinMax: true, step: 1, max: 1000000, colorArr:["--yellow"], percentage: false}>> <</if>> Infinite spray: <span id="statsinfinitespray"><<= ($infinitespray ? "On" : "Off")>></span> | <<link "Change">> <<if $infinitespray is 1>> <<set $infinitespray to 0>> <<else>> <<spray 5>> <<set $infinitespray to 1>> <</if>> <<replace "#statsinfinitespray">><<= ($infinitespray ? "On" : "Off")>><</replace>> <</link>> <br> <<if $debug is 1>> Pheromones (DEBUG): <span id="statsalluretest"><<= $alluretest ? "On" : "Off">></span> | <<link "Change">> <<if $alluretest is 1>> <<set $alluretest to 0>> <<else>> <<set $alluretest to 1>> <</if>> <<replace "#statsalluretest">><<= $alluretest>><</replace>> <</link>> <br> <</if>> </div> <div class="settingsToggleItem"> <span class="gold">Body</span> <mouse class="tooltip linkBlue">(?)<span>Changing the player's genitalia will wash the player of lewd fluids and remove genital parasites to prevent them from lingering on nonexisting body parts.</span></mouse> <br> Genitals: <span id="statsGender"> <<cheatsSex>> </span> <br> <<set _gender_body_words to {"m": "Masculine", "f": "Feminine", "a": "Androgynous"}>> Body type: <mouse class="tooltip linkBlue">(?)<span>Contributes to how feminine or masculine you appear. In normal gameplay, the player's body type does not contribute to gender appearance, unless it has been feminised or masculinised via special clothing.</span></mouse>: <span id="statsBodyType"> <<cheatsBody>> </span> <br> <<set _bodysize_words to ["Tiny","Small","Normal","Large"]>> Body size: <span id="statsBodySize"> <<cheatsBodySize>> </span> <br> Body shape: <span id="statsBodyShape"> <<cheatsBodyShape>> </span> <<if setup.faceStyleOptions.length gt 1>> <br> Face style: <span id="statsFaceStyle"> <<cheatsFaceStyle>> </span> <</if>> <br> Demeanour: <span id="statsDemeanour"> <<cheatsDemeanour>> </span> </div> <div class="settingsToggleItem"> <span class="gold">Virginity</span> <br> <<set _virginity to clone($player.virginity)>> <<if $player.vaginaExist or $player.virginity.vaginal isnot true>> Vaginal: <<cheatVirginityToggle "vaginal">> <br> <</if>> <<if $player.penisExist or $player.virginity.penile isnot true>> Penile: <<cheatVirginityToggle "penile">> <br> <</if>> Anal: <<cheatVirginityToggle "anal">> <br> Oral: <<cheatVirginityToggle "oral">> <br> Handholding: <<cheatVirginityToggle "handholding">> <br> First kiss: <<cheatVirginityToggle "kiss">> <<if $temple_rank isnot undefined and $temple_rank isnot "prospective">> <br> Temple Vow: <<cheatVirginityToggle "temple">> <</if>> </div> <div class="settingsToggleItem"> <span class="gold">State</span> <br> <<set _state to ["pain", "arousal", "tiredness", "stress", "trauma", "drunk", "drugged", "hallucinogen"]>> <<link "Refresh">> <<set $control = 1000>><<clamp>> <<for _i range _state>> <<set V[_i] to 0>><<clamp>> <</for>> <<replace "#cheatstate">><<cheatSection "state">><</replace>> <<updatesidebarimg>> <</link>> | <<link "Ruin">> <<set $control = 0>><<clamp>> <<for _i range _state>> <<set V[_i] to 20000>><<clamp>> <</for>> <<replace "#cheatstate">><<cheatSection "state">><</replace>> <<updatesidebarimg>> <</link>> <br><br> <div id="cheatstate"> <<cheatSection "state">> </div> </div> <div class="settingsToggleItem"> <span class="gold">Fluids:</span> <<link "Refill">> <<set $semen_amount to $semen_volume>> <<set $milk_amount to $milk_volume>> <<replace "#fluids">><<cheats-fluids>><</replace>> <</link>> | <<link "Empty">> <<set $semen_amount to 0>> <<set $milk_amount to 0>> <<replace "#fluids">><<cheats-fluids>><</replace>> <</link>> <br> <span class="gold">Lactating:</span> <span id="statslactatingspray"><<= ($lactating is 1 ? "Yes" : "No")>></span> | <<link "Toggle">><<set $lactating to ($lactating is 1 ? 0 : 1)>><<set $lactation_pressure to $lactating * 100>><<replace "#statslactatingspray">><<= ($lactating is 1 ? "Yes" : "No")>><</replace>><<updatesidebarimg>><</link>> <br><br> <span id="fluids"><<cheats-fluids>></span> <<numberStepper "Milk Volume" $milk_volume { callback: value => { V.milk_volume = value; V.milk_amount = Math.min(V.milk_amount, V.milk_volume); Wikifier.wikifyEval("<<replace '#fluids'>><<cheats-fluids>><</replace>>"); }, step: 10, valueFormat: value => Math.round(value) + "ml", percentage: false, min: 24, max: 3000 }>> <<if $player.penisExist>> <<numberStepper "Semen Volume" $semen_volume { callback: value => { V.semen_volume = value; V.semen_amount = Math.min(V.semen_amount, V.semen_volume); Wikifier.wikifyEval("<<replace '#fluids'>><<cheats-fluids>><</replace>>"); }, step: 10, valueFormat: value => Math.round(value) + "ml", percentage: false, max: 3000 }>> <</if>> </div> </div> <hr> <div class="settingsGrid"> <div class="settingsHeader options">Clothes</div> <div class="settingsToggleItemWide"> <<link "Unlock all special clothing">> <<run for(const c in V.specialClothes) {if (V.specialClothes[c].unlocked === 0) V.specialClothes[c].unlocked = 1}>> <</link>> <br> <span class="description">If clothing health is set to zero, it will break. Leaving the cheats menu will destroy it, and you will not be able to get it back.</span> <br> </div> <<set _cl_slots to ["upper", "lower", "under_upper", "under_lower", "over_upper", "over_lower", "genitals"]>> <<if $worn.face.type.includesAny("covered", "gag", "mask")>> <<run _cl_slots.push("face")>> <</if>> <<set $_clothes to []>> <<if $worn.over_upper.integrity gte 1>> <div class="settingsToggleItem numberslider-inline"> <span class="gold"><<clothingicon $worn.over_upper "over_upper">><<= $worn.over_upper.name.toUpperFirst()>> integrity:</span> <<set _overupperintegritymax to getSetupClothing('over_upper', $worn.over_upper)?.integrity_max || 200>> <<numberslider "$worn.over_upper.integrity" `Math.min($worn.over_upper.integrity, _overupperintegritymax)` 0 _overupperintegritymax 1 { onInputChange: value => wikifier("<<updatesidebarimg false>>"), value: () => integrityWord(V.worn.over_upper, "over_upper") || `<span class="green">full</span>` }>> </div> <div class="settingsToggleItem numberslider-inline"> <span class="gold"><<clothingicon $worn.over_upper "over_upper">><<= $worn.over_upper.name.toUpperFirst()>> wetness:</span> <<numberslider "$overupperwet" $overupperwet 0 200 1 { onInputChange: (value) => cheatsShowWetness('overupperwet', value), value: v => wetnessWord('overupper') }>> </div> <<else>> <<set $_clothes.push("an overtop")>> <</if>> <<if $worn.over_lower.integrity gte 1>> <div class="settingsToggleItem numberslider-inline"> <<set _overlowerintegritymax to getSetupClothing('over_lower', $worn.over_lower)?.integrity_max || 200>> <span class="gold"><<clothingicon $worn.over_lower "over_lower">><<= $worn.over_lower.name.toUpperFirst()>> integrity:</span> <<numberslider "$worn.over_lower.integrity" `Math.min($worn.over_lower.integrity, _overlowerintegritymax)` 0 _overlowerintegritymax 1 { onInputChange: value => wikifier("<<updatesidebarimg false>>"), value: () => integrityWord(V.worn.over_lower, "over_lower") || `<span class="green">full</span>` }>> </div> <div class="settingsToggleItem numberslider-inline"> <span class="gold"><<clothingicon $worn.over_lower "over_lower">><<= $worn.over_lower.name.toUpperFirst()>> wetness:</span> <<numberslider "$overlowerwet" $overlowerwet 0 200 1 { onInputChange: (value) => cheatsShowWetness('overlowerwet', value), value: v => wetnessWord('overlower') }>> </div> <<else>> <<set $_clothes.push("an overbottom")>> <</if>> <<if $worn.upper.integrity gte 1>> <div class="settingsToggleItem numberslider-inline"> <span class="gold"><<clothingicon $worn.upper "upper">><<= $worn.upper.name.toUpperFirst()>> integrity:</span> <<set _upperintegritymax to getSetupClothing('upper', $worn.upper)?.integrity_max || 200>> <<numberslider "$worn.upper.integrity" `Math.min($worn.upper.integrity, _upperintegritymax)` 0 _upperintegritymax 1 { onInputChange: value => wikifier("<<updatesidebarimg false>>"), value: () => integrityWord(V.worn.upper, "upper") || `<span class="green">full</span>` }>> </div> <div class="settingsToggleItem numberslider-inline"> <span class="gold"><<clothingicon $worn.upper "upper">><<= $worn.upper.name.toUpperFirst()>> wetness:</span> <<numberslider "$upperwet" $upperwet 0 200 1 { onInputChange: (value) => cheatsShowWetness('upperwet', value), value: v => wetnessWord('upper') }>> </div> <<else>> <<set $_clothes.push("a top")>> <</if>> <<if $worn.lower.integrity gte 1>> <div class="settingsToggleItem numberslider-inline"> <span class="gold"><<clothingicon $worn.lower "lower">><<= $worn.lower.name.toUpperFirst()>> integrity:</span> <<set _lowerintegritymax to getSetupClothing('lower', $worn.lower)?.integrity_max || 200>> <<numberslider "$worn.lower.integrity" `Math.min($worn.lower.integrity, _lowerintegritymax)` 0 _lowerintegritymax 1 { onInputChange: value => wikifier("<<updatesidebarimg false>>"), value: () => integrityWord(V.worn.lower, "lower") || `<span class="green">full</span>` }>> </div> <div class="settingsToggleItem numberslider-inline"> <span class="gold"><<clothingicon $worn.lower "lower">><<= $worn.lower.name.toUpperFirst()>> wetness:</span> <<numberslider "$lowerwet" $lowerwet 0 200 1 { onInputChange: (value) => cheatsShowWetness('lowerwet', value), value: v => wetnessWord('lower') }>> </div> <<else>> <<set $_clothes.push("a bottom")>> <</if>> <<if $worn.under_lower.integrity gte 1>> <div class="settingsToggleItem numberslider-inline"> <span class="gold"><<clothingicon $worn.under_lower "under_lower">><<= $worn.under_lower.name.toUpperFirst()>> integrity:</span> <<set _underlowerintegritymax to getSetupClothing('under_lower', $worn.under_lower)?.integrity_max || 200>> <<numberslider "$worn.under_lower.integrity" `Math.min($worn.under_lower.integrity, _underlowerintegritymax)` 0 _underlowerintegritymax 1 { onInputChange: value => wikifier("<<updatesidebarimg false>>"), value: () => integrityWord(V.worn.under_lower, "under_lower") || `<span class="green">full</span>` }>> <br> </div> <div class="settingsToggleItem numberslider-inline"> <span class="gold"><<clothingicon $worn.under_lower "under_lower">><<= $worn.under_lower.name.toUpperFirst()>> wetness:</span> <<numberslider "$underlowerwet" $underlowerwet 0 200 1 { onInputChange: (value) => cheatsShowWetness('underlowerwet', value), value: v => wetnessWord('underlower') }>> </div> <<else>> <<set $_clothes.push("underbottoms")>> <</if>> <<if $worn.under_upper.integrity gte 1>> <div class="settingsToggleItem numberslider-inline"> <span class="gold"><<clothingicon $worn.under_upper "under_upper">><<= $worn.under_upper.name.toUpperFirst()>> integrity:</span> <<set _underupperintegritymax to getSetupClothing('under_upper', $worn.under_upper)?.integrity_max || 200>> <<numberslider "$worn.under_upper.integrity" `Math.min($worn.under_upper.integrity, _underupperintegritymax)` 0 _underupperintegritymax 1 { onInputChange: value => wikifier("<<updatesidebarimg false>>"), value: () => integrityWord(V.worn.under_upper, "under_upper") || `<span class="green">full</span>` }>> <br> </div> <div class="settingsToggleItem numberslider-inline"> <span class="gold"><<clothingicon $worn.under_upper "under_upper">><<= $worn.under_upper.name.toUpperFirst()>> wetness:</span> <<numberslider "$underupperwet" $underupperwet 0 200 1 { onInputChange: (value) => cheatsShowWetness('underupperwet', value), value: v => wetnessWord('underupper') }>> </div> <<else>> <<set $_clothes.push("an undertop")>> <</if>> <<if $worn.genitals.integrity gte 1>> <div class="settingsToggleItemWide numberslider-inline"> <span class="gold"><<clothingicon $worn.genitals "genitals">><<= $worn.genitals.name.toUpperFirst()>> integrity:</span> <<set _genitalsintegritymax to getSetupClothing('genitals', $worn.genitals)?.integrity_max || 200>> <<numberslider "$worn.genitals.integrity" `Math.min($worn.genitals.integrity, _genitalsintegritymax)` 0 _genitalsintegritymax 1 { onInputChange: value => wikifier("<<updatesidebarimg false>>"), value: () => integrityWord(V.worn.genitals, "genitals") || `<span class="green">full</span>` }>> <br> </div> <<else>> <<set $_clothes.push("a chastity belt")>> <</if>> <<if $worn.face.type.includesAny("covered", "gag", "mask")>> <div class="settingsToggleItemWide numberslider-inline"> <span class="gold"><<clothingicon $worn.face "face">><<= $worn.face.name.toUpperFirst()>> integrity:</span> <<set _faceintegritymax to getSetupClothing('face', $worn.face)?.integrity_max || 200>> <<numberslider "$worn.face.integrity" `Math.min($worn.face.integrity, _faceintegritymax)` 0 _faceintegritymax 1 { onInputChange: value => wikifier("<<updatesidebarimg false>>"), value: () => integrityWord(V.worn.face, "face") || `<span class="green">full</span>` }>> <br> </div> <<else>> <<set $_clothes.push("a mask, or a gag")>> <</if>> <div class="settingsToggleItemWide"> You are not wearing <span class="gold"><<= $_clothes.join(", ")>></span>. /* Don't show links if player doesn't have anything to fix/destroy */ <<if $_clothes.length lt 8>> <br> <<link "Fix all">> <<run _cl_slots.forEach((slot) => { if (V.worn[slot].name === "naked") return; V.worn[slot].integrity = clothingData(slot, V.worn[slot], "integrity_max"); cheatsUpdateSlider( `#numberslider-input-worn${slot.replace('_', '-')}integrity`, V.worn[slot].integrity ); })>> <<updatesidebarimg>> <</link>> | <<link "Destroy all">> /* not using ruined widgets to avoid side effects until confirmation */ <<run _cl_slots.forEach((slot) => { if (V.worn[slot].name === "naked") return; V.worn[slot].integrity = 0; cheatsUpdateSlider( `#numberslider-input-worn${slot.replace('_', '-')}integrity`, V.worn[slot].integrity ); })>> <<updatesidebarimg>> <</link>> <</if>> /* Don't show unless the player is wearing clothes that can be drenched or dried */ <<if !$_clothes.includesAll("an overtop", "an overbottom", "a top", "a bottom", "underbottoms", "an undertop")>> | <<link "Dry all">> <<dry_full>> <<run _cl_slots.slice(0, 4).forEach((slot) => { if (V.worn[slot].name === 'naked') return; const wetnessProp = slot.replace('_', '') + 'wet'; V[wetnessProp + 'stage'] = 0; cheatsUpdateSlider(`#numberslider-input-${wetnessProp}`, V[wetnessProp]); })>> <<updatesidebarimg>> <</link>> | <<link "Drench all">> <<run _cl_slots.slice(0, 4).forEach((slot) => { if (V.worn[slot].name === 'naked') return; const wetnessProp = slot.replace('_', '') + 'wet'; V[wetnessProp] = 200; V[wetnessProp + 'stage'] = 3; cheatsUpdateSlider(`#numberslider-input-${wetnessProp}`, V[wetnessProp]); })>> <<updatesidebarimg>> <</link>> <</if>> <br><br> <span class="gold">Bindings:</span> <br> <span class="description"> Binding your arms will destroy handheld items. Shackling your feet will destroy shoes.</span> <br> <<icon "clothes/gag.png">><<link "Gag">><<facewear 4>><<updatesidebarimg>><</link>> | <<link "Blindfold">><<facewear 5>><<updatesidebarimg>><</link>> | <<link "Gag and blindfold">><<facewear 6>><<updatesidebarimg>><</link>> | <<link "Bind arms">><<bind>><<updatesidebarimg>><</link>> | <<link "Shackle feet">><<shackle_feet>><<updatesidebarimg>><</link>> <br> <<undobindingsicon>> <<link "Unbind all">><<unbind>><<if $worn.face.type.includes("gag") or $worn.face.type.includes("blindfold")>><<set $worn.face.type.push("broken")>><<faceruined>><</if>><<updatesidebarimg>><</link>> <<if $debug is 1>> <br><br> <span class="gold">Add to Wardrobe:</span> <br> <span class="description">DEBUG: Send clothing with a given ID to your wardrobe.</span> <br> <<listbox "_slot" autoselect>> <<optionsfrom setup.clothingLayer.body>> <</listbox>> <<set _clothesID to "1">> <<textbox "_clothesID" "1">> <br> <<link "Send">> <<if !between(+_clothesID, 1, setup.clothes[_slot].length)>> <<replace "#ClothesSendResult">>That didn't work!<</replace>> <<else>> <<shopbuyv2 _slot "buy" "send" _clothesID 1>> <<replace "#ClothesSendResult">>Sent <<= setup.clothes[_slot][_clothesID].name>> to your wardrobe!<</replace>> <</if>> <</link>> <br> <span id="ClothesSendResult"></span> <</if>> </div> </div> <hr> <div class="cheatsGrid"> <div class="settingsHeader options">Characteristics</div> <div class="settingsToggleItem"> <<set _core to ["purity", "beauty", "physique", "willpower", "awareness", "promiscuity", "exhibitionism", "deviancy"]>> <<if numberOfEarSlime()>><<set _core.push("earSlime.corruption")>><</if>> <span class="gold">Core Characteristics</span> <br> <<link "Set all to 0">> <<for _i range _core>> <<set V[_i] to 0>><<clamp>> <</for>> <<replace "#characteristics">><<cheatSection "characteristics">><</replace>> <</link>> | <<link "Set all to max">> <<for _i range _core>> <<set V[_i] to 20000>><<clamp>> <</for>> <<replace "#characteristics">><<cheatSection "characteristics">><</replace>> <</link>> <br><br> <span id="characteristics"> <<cheatSection "characteristics">> </span> <hr> <span class="gold">Secondary Characteristics</span> <br> Speech Attitude: <span id="statsSpeechAttitude"> <<cheatsSpeechAttitude>> </span> <br> <span class="description">Changing speech attitude will also alter your submissiveness.</span> <<numberStepper "Submissiveness" $submissive "submissive" {max: 2000}>> <<numberStepper "Masochism" $masochism "masochism" {max: 1000}>> <<numberStepper "Sadism" $sadism "sadism" {max: 1000}>> <<if $temple_rank is "initiate" or $temple_rank is "monk" or $temple_rank is "priest">> <<numberStepper "Grace" $grace "grace">> <</if>> </div> <div class="settingsToggleItem"> <<set _skills to ["skulduggery", "skulduggeryday", "danceskill", "swimmingskill", "athletics", "tending", "housekeeping"]>> <span class="gold">Core Skills</span> <br> <<link "Set all to 0">> <<for _i range _skills>> <<set V[_i] to 0>><<clamp>> <</for>> <<replace "#coreSkills">><<cheatSection "skills">><</replace>> <</link>> | <<link "Set all to max">> <<for _i range _skills>> <<set V[_i] to 20000>><<clamp>> <</for>> <<replace "#coreSkills">><<cheatSection "skills">><</replace>> <</link>> <br><br> <span id="coreSkills"> <<cheatSection "skills">> </span> <hr> <<set _subjects to ["english", "maths", "science", "history"]>> <span class="gold">School Skills</span> <br> <<link "Set all to 0">> <<for _i range _subjects>> <<set V[_i] to 0>><<clamp>> <</for>> <<adjust_school_traits>> <<replace "#schoolSkills">><<cheatSection "school">><</replace>> <</link>> | <<link "Set all to max">> <<for _i range _subjects>> <<set V[_i] to 1000>><<clamp>> <</for>> <<adjust_school_traits>> <<replace "#schoolSkills">><<cheatSection "school">><</replace>> <</link>> <br><br> <span id="schoolSkills"> <<cheatSection "school">> </span> </div> <div class="settingsToggleItem"> <<set _sexSkills to ["seduction", "oral", "vaginal", "penile", "anal", "hand", "feet", "bottom", "thigh", "chest"]>> <span class="gold">Sex Skills</span> <br> <<link "Set all to 0">> <<for _i range _sexSkills>> <<set V[`${_i}skill`] to 0>><<clamp>> <</for>> <<replace "#cheatsSex">><<cheatSection "sex">><</replace>> <</link>> | <<link "Set all to max">> <<for _i range _sexSkills>> <<set V[`${_i}skill`] to 1000>><<clamp>> <</for>> <<replace "#cheatsSex">><<cheatSection "sex">><</replace>> <</link>> <br><br> <span id="cheatsSex"> <<cheatSection "sex">> </span> </div> <div class="settingsToggleItem"> <span class="gold">Traits</span> <br> <<set $_traits to {"choke": $choketrait, "milkdrank" : $milkdranktrait, "vore" : $voretrait, "tentacle" : $tentacletrait, "bestiality" : $bestialitytrait, "rape" : $rapetrait, "molest" : $molesttrait, "ejac" : $ejactrait, "orgasm" : $orgasmtrait}>> <<set _traitValue to {"1": "On", "-1": "Disabled", "0": "Off"}>> Orgasm Addict: <span id="statsorgasmtrait" @class="$orgasmtrait is 1 ? 'green' : 'red'"><<= _traitValue[$_traits["orgasm"].toString()]>></span> | <<link "Change">> <<set $orgasmtrait += 1>> <<if $orgasmtrait gte 2>> <<set $orgasmtrait to -1>> <</if>> <<replace "#statsorgasmtrait">> <<set _orgasmtrait to _traitValue[$orgasmtrait.toString()]>> <<= _orgasmtrait>> <<changeCheatClass "#statsorgasmtrait" _orgasmtrait>> <</replace>> <</link>> <br> Cum Dump: <span id="statsejactrait" @class="$ejactrait is 1 ? 'green' : 'red'"><<= _traitValue[$_traits["ejac"].toString()]>></span> | <<link "Change">> <<set $ejactrait += 1>> <<if $ejactrait gte 2>> <<set $ejactrait to -1>> <</if>> <<replace "#statsejactrait">> <<set _ejactrait to _traitValue[$ejactrait.toString()]>> <<= _ejactrait>> <<changeCheatClass "#statsejactrait" _ejactrait>> <</replace>> <</link>> <br> Plaything: <span id="statsmolesttrait" @class="$molesttrait is 1 ? 'green' : 'red'"><<= _traitValue[$_traits["molest"].toString()]>></span> | <<link "Change">> <<set $molesttrait += 1>> <<if $molesttrait gte 2>> <<set $molesttrait to -1>> <</if>> <<replace "#statsmolesttrait">> <<set _molesttrait to _traitValue[$molesttrait.toString()]>> <<= _molesttrait>> <<changeCheatClass "#statsmolesttrait" _molesttrait>> <</replace>> <</link>> <br> Fucktoy: <span id="statsrapetrait" @class="$rapetrait is 1 ? 'green' : 'red'"><<= _traitValue[$_traits["rape"].toString()]>></span> | <<link "Change">> <<set $rapetrait += 1>> <<if $rapetrait gte 2>> <<set $rapetrait to -1>> <</if>> <<replace "#statsrapetrait">> <<set _rapetrait to _traitValue[$rapetrait.toString()]>> <<= _rapetrait>> <<changeCheatClass "#statsrapetrait" _rapetrait>> <</replace>> <</link>> <br> Bitch: <span id="statsbestialitytrait" @class="$bestialitytrait is 1 ? 'green' : 'red'"><<= _traitValue[$_traits["bestiality"].toString()]>></span> | <<link "Change">> <<set $bestialitytrait += 1>> <<if $bestialitytrait gte 2>> <<set $bestialitytrait to -1>> <</if>> <<replace "#statsbestialitytrait">> <<set _bestialitytrait to _traitValue[$bestialitytrait.toString()]>> <<= _bestialitytrait>> <<changeCheatClass "#statsbestialitytrait" _bestialitytrait>> <</replace>> <</link>> <br> Prey: <span id="statstentacletrait" @class="$tentacletrait is 1 ? 'green' : 'red'"><<= _traitValue[$_traits["tentacle"].toString()]>></span> | <<link "Change">> <<set $tentacletrait += 1>> <<if $tentacletrait gte 2>> <<set $tentacletrait to -1>> <</if>> <<replace "#statstentacletrait">> <<set _tentacletrait to _traitValue[$tentacletrait.toString()]>> <<= _tentacletrait>> <<changeCheatClass "#statstentacletrait" _tentacletrait>> <</replace>> <</link>> <br> Tasty: <span id="statsvoretrait" @class="$voretrait is 1 ? 'green' : 'red'"><<= _traitValue[$_traits["vore"].toString()]>></span> | <<link "Change">> <<set $voretrait += 1>> <<if $voretrait gte 2>> <<set $voretrait to -1>> <</if>> <<replace "#statsvoretrait">> <<set _voretrait to _traitValue[$voretrait.toString()]>> <<= _voretrait>> <<changeCheatClass "#statsvoretrait" _voretrait>> <</replace>> <</link>> <br> Milk Addict: <span id="statsmilkdranktrait" @class="$milkdranktrait is 1 ? 'green' : 'red'"><<= _traitValue[$_traits["milkdrank"].toString()]>></span> | <<link "Change">> <<set $milkdranktrait += 1>> <<if $milkdranktrait gte 2>> <<set $milkdranktrait to -1>> <</if>> <<replace "#statsmilkdranktrait">> <<set _milkdranktrait to _traitValue[$milkdranktrait.toString()]>> <<= _milkdranktrait>> <<changeCheatClass "#statsmilkdranktrait" _milkdranktrait>> <</replace>> <</link>> <br> Lustful: <span id="statslustful" @class="$backgroundTraits.includes('lustful') is true ? 'green' : 'red'"><<= $backgroundTraits.includes("lustful") is true ? "On" : "Off">></span> | <<link "Change">> <<if !$backgroundTraits.includes("lustful")>> <<set $backgroundTraits.pushUnique("lustful")>><<set $specialClothesEffects.bimbo.total to 1200>> <<else>> <<set $backgroundTraits.delete("lustful")>><<if $specialClothesEffects.bimbo.total gt 1000>><<set $specialClothesEffects.bimbo.total to 1000>><</if>> <</if>> <<replace "#statslustful">> <<set _lustful to $backgroundTraits.includes("lustful") is true ? "On" : "Off">> <<= _lustful>> <<changeCheatClass "#statslustful" _lustful>> <</replace>> <</link>> <br> Crossdresser: <span id="statscrossdresser" @class="$backgroundTraits.includes('crossdresser') is true ? 'green' : 'red'"><<= $backgroundTraits.includes("crossdresser") is true ? "On" : "Off">></span> | <<link "Change">> <<if !$backgroundTraits.includes("crossdresser")>> <<set $backgroundTraits.pushUnique("crossdresser")>><<set $crossdressingTrait to 100>> <<else>> <<set $backgroundTraits.delete("crossdresser")>><<if $crossdressingTrait gt 80>><<set $crossdressingTrait to 80>><</if>> <</if>> <<replace "#statscrossdresser">> <<set _crossdresser to $backgroundTraits.includes("crossdresser") is true ? "On" : "Off">> <<= _crossdresser>> <<changeCheatClass "#statscrossdresser" _crossdresser>> <</replace>> <</link>> <br> Green Thumb: <span id="statsgreenthumb" @class="$backgroundTraits.includes('greenthumb') is true ? 'green' : 'red'"><<= $backgroundTraits.includes("greenthumb")is true ? "On" : "Off">></span> | <<link "Change">> <<if !$backgroundTraits.includes("greenthumb")>> <<set $backgroundTraits.pushUnique("greenthumb")>> <<else>> <<set $backgroundTraits.delete("greenthumb")>> <</if>> <<replace "#statsgreenthumb">> <<set _greenthumb to $backgroundTraits.includes("greenthumb") is true ? "On" : "Off">> <<= _greenthumb>> <<changeCheatClass "#statsgreenthumb" _greenthumb>> <</replace>> <</link>> <br> Asphyxiophilia: <span id="statschoke" @class="$choketrait is 1 ? 'green' : 'red'"><<= _traitValue[$_traits["choke"].toString()]>></span> | <<link "Change">> <<set $choketrait += 1>> <<if $choketrait gte 2>> <<set $choketrait to 0>> <</if>> <<replace "#statschoke">> <<set _choketrait to _traitValue[$choketrait.toString()]>> <<= _choketrait>> <<changeCheatClass "#statschoke" _choketrait>> <</replace>> <</link>> <br> Plant Lover: <span id="statsplantlover" @class="$backgroundTraits.includes('plantlover') is true ? 'green' : 'red'"><<= $backgroundTraits.includes("plantlover")is true ? "On" : "Off">></span> | <<link "Change">> <<if !$backgroundTraits.includes("plantlover")>> <<set $backgroundTraits.pushUnique("plantlover")>> <<set $nectar_addiction to 200>> <<set $nectar_timer to 21>> <<else>> <<set $backgroundTraits.delete("plantlover")>> <<set $nectar_addiction to 0>> <<set $nectar_timer to 0>> <</if>> <<replace "#statsplantlover">> <<set _plantlover to $backgroundTraits.includes("plantlover") is true ? "On" : "Off">> <<= _plantlover>> <<changeCheatClass "#statsplantlover" _plantlover>> <</replace>> <</link>> </div> </div> <hr> <div class="settingsGrid"> <div class="settingsHeader options">Fame</div> <div class="settingsToggleItem"> <<set _positiveFames to ["good", "business", "scrap", "social", "model"]>> <<set _negativeFames to ["exhibitionism", "prostitution", "bestiality", "sex", "rape", "pregnancy", "impreg"]>> <span class="gold">Negative Fame</span> <br> <<link "Set all to 0">> <<for _i range _negativeFames>> <<set $fame[_i] to 0>> <</for>> <<fameclamp>> <<replace #cheatsNegative>><<cheatSection "negative">><</replace>> <</link>> | <<link "Set all to max">> <<for _i range _negativeFames>> <<set $fame[_i] to 2000>> <</for>> <<fameclamp>> <<replace #cheatsNegative>><<cheatSection "negative">><</replace>> <</link>> <br><br> <span id="cheatsNegative"> <<cheatSection "negative">> </span> <hr> <span class="gold">Positive Fame</span> <br> <<link "Set all to 0">> <<for _i range _positiveFames>> <<set $fame[_i] to 0>> <</for>> <<fameclamp>> <<replace #cheatsPositive>><<cheatSection "positive">><</replace>> <</link>> | <<link "Set all to max">> <<for _i range _positiveFames>> <<set $fame[_i] to 2000>> <</for>> <<fameclamp>> <<replace #cheatsPositive>><<cheatSection "positive">><</replace>> <</link>> <br><br> <span id="cheatsPositive"> <<cheatSection "positive">> </span> </div> <div class="settingsToggleItem"> <span class="gold">Crime</span> <br> <<link "Set all to 0">> <<for _cr range Object.keys(setup.crimeNames)>> <<capture _cr>> <<set C.crime[_cr] to 0>> <<replace "#cheatsCrime">><<cheatSection "crime">><</replace>> <</capture>> <</for>> <</link>> | <<link "Set all to max">> <<for _cr range Object.keys(setup.crimeNames)>> <<capture _cr>> <<set C.crime[_cr] to 10000>> <<replace "#cheatsCrime">><<cheatSection "crime">><</replace>> <</capture>> <</for>> <</link>> <br><br> <span id="cheatsCrime"> <<cheatSection "crime">> </span> <hr> <span class="gold">Crime Events</span> <br> <span id="statscrimeevents"><<listCrimeCheats>></span> <<link "Clear Crime events">><<crimeClearEvent "all">><<replace #statscrimeevents>><<listCrimeCheats>><</replace>><</link>> </div> </div> <</widget>> <<widget "cheats-fluids">> <<numberStepper "Milk Amount" $milk_amount "milk_amount" { max: $milk_volume, step: 10, valueFormat: (value, percentage) => `<b>${Math.round(percentage)}%</b> (${Math.round(value)}ml)` }>> <<if $player.penisExist>> <<numberStepper "Semen Amount" $semen_amount "semen_amount" { max: $semen_volume, step: 10, valueFormat: (value, percentage) => `<b>${Math.round(percentage)}%</b> (${Math.round(value)}ml)` }>> <</if>> <</widget>> <<widget "cheats-characterVisual">> <div class="settingsGrid"> <div class="settingsHeader options">Player</div> <div class="settingsToggleItemWide"> <span class="gold">Hair Length</span> <br> <<if $passage is "Hairdressers Seat">> Hair cheats are disabled while at the hairdressers. <br><br> <<else>> <<numberStepper "Hair length" $hairlength {max: 1000, callback: value => {V.hairlength = value; calchairlengthstage(); wikifier("updatesidebarimg")}}>> <<numberStepper "Fringe length" $fringelength {max: 1000, callback: value => {V.fringelength = value; calchairlengthstage(); wikifier("updatesidebarimg")}}>> <<if $hairtest is 1 or $debug>> <<foldout false "_cheatsFoldoutNatural">> <span class="gold">Natural Hair Colour (DEBUG)</span> <<set _bar to false>> <<for _i = 0; _i < setup.colours.hair.length; _i++>> <<if setup.colours.hair[_i].natural>> <<if _bar>>|<</if>> <label><span @class="setup.colours.hair[_i].csstext"><<= setup.colours.hair[_i].name_cap>></span> <<radiovar "$naturalhaircolour" setup.colours.hair[_i].variable>> <<updatesidebarimg>><</radiovar>></label> <<set _bar to true>> <</if>> <</for>> <br><br> <</foldout>> <</if>> <<foldout false "_cheatsFoldoutDye">> <span class="gold">Hair Dye</span> <label>None <<radiovar "$haircolour" $naturalhaircolour>> <<updatesidebarimg>><</radiovar>></label> <<for _i = 0; _i < setup.colours.hair.length; _i++>> <<if setup.colours.hair[_i].dye>> | <label><span @class="setup.colours.hair[_i].csstext"><<= setup.colours.hair[_i].name_cap>></span> <<radiovar "$haircolour" setup.colours.hair[_i].variable>> <<updatesidebarimg>><</radiovar>></label> <</if>> <</for>> <br> Two-tone: <label>Enable <<radiovar "$hairColourStyle" "gradient">> <<updatesidebarimg>><</radiovar>></label> <label>Disable <<radiovar "$hairColourStyle" "simple">> <<updatesidebarimg>><</radiovar>></label> <br> Two-tone style: <<listbox "$hairColourGradient.style" autoselect>> <<option "Low Ombré" "low-ombre">> <<option "High Ombré" "high-ombre">> <<option "Split" "split">> <<option "Face-framing highlights" "face-frame">> <</listbox>> <br><br> <</foldout>> <<foldout false "_cheatsFoldoutFringe">> <span class="gold">Hair Fringe Dye</span> <label>None <<radiovar "$hairfringecolour" $naturalhaircolour>> <<updatesidebarimg>><</radiovar>></label> <<for _i = 0; _i < setup.colours.hair.length; _i++>> <<if setup.colours.hair[_i].dye>> | <label><span @class="setup.colours.hair[_i].csstext"><<= setup.colours.hair[_i].name_cap>></span> <<radiovar "$hairfringecolour" setup.colours.hair[_i].variable>> <<updatesidebarimg>><</radiovar>></label> <</if>> <</for>> <br> Two-tone: <label>Enable <<radiovar "$hairFringeColourStyle" "gradient">> <<updatesidebarimg>><</radiovar>></label> <label>Disable <<radiovar "$hairFringeColourStyle" "simple">> <<updatesidebarimg>><</radiovar>></label> <br> Two-tone style: <<listbox "$hairFringeColourGradient.style" autoselect>> <<option "Low Ombré" "low-ombre">> <<option "High Ombré" "high-ombre">> <<option "Split" "split">> <<option "Face-framing highlights" "face-frame">> <</listbox>> <br><br> <</foldout>> <</if>> </div> <div class="settingsToggleItem"> <span class="gold">Eye Colour</span> <br> <<set _bar to false>> <<for _i = 0; _i < setup.colours.eyes.length; _i++>> <<if setup.colours.eyes[_i].natural>> <<if _bar>>|<</if>> <label><span @class="setup.colours.eyes[_i].csstext"> <<= setup.colours.eyes[_i].name>></span> <<radiovar "$eyeselected" setup.colours.eyes[_i].variable>> <<cheatMenuEyesSelected>> <</radiovar>></label> <<set _bar to true>> <</if>> <</for>> </div> <div class="settingsToggleItem"> <span class="gold">Freckles</span> <br> <label>Enabled <<radiobutton "$player.freckles" true autocheck>></label> | <label>Disabled <<radiobutton "$player.freckles" false `!$player.freckles ? "checked" : ""`>></label> </div> <div class="settingsToggleItem"> <span class="gold">Breast Size</span> <<set _breastsText to ["Flat", "Budding", "Tiny", "Small", "Pert", "Modest", "Full", "Large", "Ample", "Massive", "Huge", "Gigantic", "Enormous"]>> <<numberslider "$player.breastsize" $player.breastsize 0 _breastsText.length-1 1 { onInputChange: value => { wikifier("<<updatesidebarimg false>>"); }, value: v => { return T.breastsText[v]; } }>> <br><br> <span class="gold">Bottom Size</span> <<set _buttsText to ["Slender", "Slim", "Modest", "Cushioned", "Soft", "Round", "Plump", "Large", "Huge"]>> <<numberslider "$player.bottomsize" $player.bottomsize 0 _buttsText.length-1 1 { onInputChange: value => { wikifier("<<updatesidebarimg false>>"); }, value: v => { return T.buttsText[v]; } }>> <<if $player.penisExist>> <br><br> <span class="gold">Penis Size</span> <<set _penisText to ["Micro", "Mini", "Tiny", "Small", "Normal", "Large", "Enormous"]>> <<numberslider "$player.penissize" $player.penissize -2 4 1 { onInputChange: value => { wikifier("<<updatesidebarimg false>>"); }, value: v => { return T.penisText[v + 2]; } }>> <<if $debug is 1>> <br> <span class="description">Ball Size (DEBUG): <<link "<">><<set $ballssize -= 1>><<clamp>><<replace "#statsballssize">><<= Math.trunc($ballssize)>><</replace>> <<updatesidebarimg>><</link>> | <span id="statsballssize"><<= Math.trunc($ballssize)>></span> | <<link ">">><<set $ballssize += 1>><<clamp>><<replace "#statsballssize">><<= Math.trunc($ballssize)>><</replace>> <<updatesidebarimg>><</link>></span> <</if>> <</if>> <br><br> Cover nudity (only if embarrassed): <<checkbox "$dontHide" true false autocheck>> <<run $(() => $('#checkbox-donthide').on('change', e => wikifier('<<updatesidebarimg>>')))>> </div> <div class="settingsToggleItem"> <span class="gold">Sensitivity</span> <<numberStepper "Mouth sensitivity" $mouthsensitivity "mouthsensitivity" { min: 1, max: 4, step: 0.1, reverse: true, valueFormat: value => `<b>${round(value, 2)}</b> (${sensitivityString(value)})` }>> <<numberStepper "Breast sensitivity" $breastsensitivity "breastsensitivity" { min: 1, max: 4, step: 0.1, reverse: true, valueFormat: value => `<b>${round(value, 2)}</b> (${sensitivityString(value)})` }>> <<numberStepper "Genital sensitivity" $genitalsensitivity "genitalsensitivity" { min: 1, max: 4, step: 0.1, reverse: true, valueFormat: value => `<b>${round(value, 2)}</b> (${sensitivityString(value)})` }>> <<numberStepper "Bottom sensitivity" $bottomsensitivity "bottomsensitivity" { min: 1, max: 4, step: 0.1, reverse: true, valueFormat: value => `<b>${round(value, 2)}</b> (${sensitivityString(value)})` }>> </div> </div> <<if $settings.parasitesEnabled>> <hr> <div class="settingsGrid"> <div class="settingsHeader options">Parasites</div> <div class="settingsToggleItemWide"> <<set _penis to $player.penisExist ? "penis" : "clit">> <div id="nipples"><<cheatParasiteToggle "nipples">></div> <div @id="_penis"><<cheatParasiteToggle _penis>></div> <div id="bottom"><<cheatParasiteToggle "bottom">></div> <div id="left_thigh"><<cheatParasiteToggle "left_thigh">></div> <div id="right_thigh"><<cheatParasiteToggle "right_thigh">></div> <div id="left_arm"><<cheatParasiteToggle "left_arm">></div> <div id="right_arm"><<cheatParasiteToggle "right_arm">></div> <div id="tummy"><<cheatParasiteToggle "tummy">></div> <<if playerIsPregnant() and $player.sex is "m" and numberOfEarSlime()>> <div class="red">Unable to remove ear slimes while pregnant as a male.</div> <<else>> <div id="left_ear"><<cheatParasiteToggle "left_ear">></div> <div id="right_ear"><<cheatParasiteToggle "right_ear">></div> <</if>> </div> </div> <</if>> <hr> <div class="settingsGrid"> <div class="settingsHeader options">Fluids</div> <<cheatBodyLiquid "semen">> <<cheatBodyLiquid "goo">> <<cheatBodyLiquid "nectar">> </div> <hr> <div class="settingsGrid"> <div class="settingsHeader options">Transformations</div> <div class="settingsToggleItem"> <span class="gold">Transformation Types</span> <br> <span class="description">You may only have one animal and one divine transformation at a time.</span> <br> <<tficon "angel">>Angel: <<link "Set">><<clearDivineTransformations>><<angelTransform>><<updatesidebarimg>><</link>> | <<link "Clear">><<angelTransform 99>><<updatesidebarimg>><</link>><br> <<tficon "fallenangel">>Fallen Angel: <<link "Set">><<clearDivineTransformations>><<set $specialTransform to 1>> <<set $fallenangel to 2>><<set $transformationParts.fallenAngel.halo to ($transformationParts.angel.halo is "traditional" ? "traditional" : "default")>><<set $transformationParts.fallenAngel.wings to ($transformationParts.angel.wings is "classic" ? "classic" : "default")>><<updatesidebarimg>><</link>> | <<link "Clear">><<fallenButNotOut 99>><<updatesidebarimg>><</link>><br> <<tficon "demon">>Demon: <<link "Set">><<clearDivineTransformations>><<demonTransform>><<updatesidebarimg>><</link>> | <<link "Clear">><<demonTransform 99>><<updatesidebarimg>><</link>><br> <<tficon "wolf">>Wolf: <<link "Set">><<clearAnimalTransformations>><<wolfTransform>><<updatesidebarimg>><</link>> | <<link "Clear">><<wolfTransform 99>><<updatesidebarimg>><</link>><br> <<tficon "cat">>Cat: <<link "Set">><<clearAnimalTransformations>><<catTransform>><<updatesidebarimg>><</link>> | <<link "Clear">><<catTransform 99>><<updatesidebarimg>><</link>><br> <<tficon "cow">>Cow: <<link "Set">><<clearAnimalTransformations>><<cowTransform>><<updatesidebarimg>><</link>> | <<link "Clear">><<cowTransform 99>><<updatesidebarimg>><</link>><br> <<tficon "bird">>Bird: <<link "Set">><<clearAnimalTransformations>><<harpyTransform>><<updatesidebarimg>><</link>> | <<link "Clear">><<harpyTransform 99>><<updatesidebarimg>><</link>><br> <<tficon "fox">>Fox: <<link "Set">><<clearAnimalTransformations>><<foxTransform>><<updatesidebarimg>><</link>> | <<link "Clear">><<foxTransform 99>><<updatesidebarimg>><</link>> </div> <div class="settingsToggleItem"> <span class="gold">Transformation Points</span> <br> <span class="description">Angel and Cat require 50 points to reach their full transformation, while all others require 30 points. Fallen Angel requires 30 points for Acceptance.</span> <<for _tf range ["angel", "fallenangel", "demon", "wolf", "cat", "cow", "bird", "fox"]>> <<capture _tf>> <<set _name to (_tf is "fallenangel" ? "Fallen Angel" : _tf)>> <<set _title to `<<tficon _tf>> ${toTitleCase(_name)}`>> <<set _varName to (_tf is "fallenangel" ? "fallenbuild" : `${_tf}build`)>> <<numberStepper _title `V[T.varName]` { callback: (value, arr) => { V[arr[0]] = value; Wikifier.wikifyEval("<<transformationAlteration>><<updatesidebarimg>>"); }, max: 100, percentage: false, colorArr: ["--teal", "--purple"], values: [T.varName] }>> <</capture>> <</for>> <<unset _cr>> </div> </div> <</widget>> <<widget "cheatMenuEyesSelected">> <<set $leftEyeColour to $eyeselected>> <<set $rightEyeColour to $eyeselected>> <<updatesidebarimg>> <</widget>> <<widget "cheats-npcs">> <div class="settingsGrid"> <div class="settingsHeader options">NPC Virginity</div> <div class="settingsToggleItemWide"> Reset the following NPC's virginities to their starting values: <br> <<listbox "_npcId" autoselect>> <<optionsfrom $NPCNameList>> <</listbox>> <br><br> <<link "Confirm">> <<initNNPCVirginity $NPCNameList.indexOf(_npcId)>> <<if $npc.includes(_npcId)>> <<set $NPCList[$npcrow[$npc.indexOf(_npcId)]].virginity to C.npc[_npcId].virginity>> <</if>> <<for _virginType, _virginList range $virginTaken>> <<run _virginList.delete(_npcId)>> <</for>> <<replace "#npcvirgin">><br><<= _npcId>>'s virginities have been restored.<</replace>> <</link>> <span id="npcvirgin"></span> </div> </div> <hr> <div class="settingsGrid"> <div class="settingsHeader options">Primary Relationships</div> <div class="settingsToggleItem"> <span class="gold">Robin</span> <<numberStepper "<<symbol love>> Love" `C.npc.Robin.love` { callback: value => { C.npc.Robin.love = value } }>> <<numberStepper "<<symbol lust>> Lust" `C.npc.Robin.lust` { callback: value => { C.npc.Robin.lust = value } }>> <<numberStepper "<<symbol confidence>> Confidence" `C.npc.Robin.dom` { callback: value => { C.npc.Robin.dom = value } }>> <<numberStepper "<<symbol trauma>> Trauma" `C.npc.Robin.trauma` { callback: value => { C.npc.Robin.trauma = value }, reverse: true }>> </div> <div class="settingsToggleItem"> <span class="gold">Whitney</span> <<numberStepper "<<symbol love>> Love" `C.npc.Whitney.love` { callback: value => { C.npc.Whitney.love = value }, max: 30 }>> <<numberStepper "<<symbol lust>> Lust" `C.npc.Whitney.lust` { callback: value => { C.npc.Whitney.lust = value } }>> <<numberStepper "<<symbol dominance>> Dominance" `C.npc.Whitney.dom` { callback: value => { C.npc.Whitney.dom = value }, max: 20 }>> </div> <div class="settingsToggleItem"> <span class="gold">Eden</span> <<numberStepper "<<symbol love>> Love" `C.npc.Eden.love` { callback: value => { C.npc.Eden.love = value }, max: 200 }>> <<numberStepper "<<symbol lust>> Lust" `C.npc.Eden.lust` { callback: value => { C.npc.Eden.lust = value } }>> <<numberStepper "<<symbol dominance>> Dominance" `C.npc.Eden.dom` { callback: value => { C.npc.Eden.dom = value }, max: 150}>> </div> <div class="settingsToggleItem"> <span class="gold">Kylar</span> <<numberStepper "<<symbol love>> Love" `C.npc.Kylar.love` { callback: value => { C.npc.Kylar.love = value } }>> <<numberStepper "<<symbol lust>> Lust" `C.npc.Kylar.lust` { callback: value => { C.npc.Kylar.lust = value } }>> <<numberStepper "<<symbol jealousy>> Jealousy" `C.npc.Kylar.rage` { callback: value => { C.npc.Kylar.rage = value }, reverse: true }>> </div> <div class="settingsToggleItem"> <span class="gold">Avery</span> <<numberStepper "<<symbol love>> Love" `C.npc.Avery.love` { callback: value => { C.npc.Avery.love = value } }>> <<numberStepper "<<symbol rage>> Rage" `C.npc.Avery.rage` { callback: value => { C.npc.Avery.rage = value }, reverse: true }>> <<numberStepper "<<symbol dominance>> Dominance" `C.npc.Avery.dom` { callback: value => { C.npc.Avery.dom = value } }>> </div> <div class="settingsToggleItem"> <span class="gold">Alex</span> <<numberStepper "<<symbol love>> Love" `C.npc.Alex.love` { callback: value => { C.npc.Alex.love = value } }>> <<numberStepper "<<symbol lust>> Lust" `C.npc.Alex.lust` { callback: value => { C.npc.Alex.lust = value } }>> <<numberStepper "<<symbol dominance>> Dominance" `C.npc.Alex.dom` { callback: value => { C.npc.Alex.dom = value }, min: -50 }>> </div> <div class="settingsToggleItem"> <span class="gold">Great Hawk</span> <<numberStepper "<<symbol love>> Love" `C.npc["Great Hawk"].love` { callback: value => { C.npc["Great Hawk"].love = value } }>> <<numberStepper "<<symbol dominance>> Dominance" `C.npc["Great Hawk"].dom` { callback: value => { C.npc["Great Hawk"].dom = value } }>> </div> <div class="settingsToggleItem"> <span class="gold">Black Wolf</span> <<numberStepper "<<symbol love>> Love" `C.npc["Black Wolf"].love` { callback: value => { C.npc["Black Wolf"].love = value }, max: 150 }>> </div> <div class="settingsToggleItemWide"> <span class="gold">Sydney</span> <<set _purity to C.npc.Sydney.purity gt 0 ? "purity" : "corruption">> <<numberStepper "<<symbol love>> Love" `C.npc.Sydney.love` { callback: value => { C.npc.Sydney.love = value }, max: 150 }>> <<numberStepper "<<symbol lust>> Lust" `C.npc.Sydney.lust` { callback: value => { C.npc.Sydney.lust = value } }>> <span id="sydneypurity"> <<sydneyPurity>> </span> <span id="sydneydesc" class="description"> Setting Sydney's <<= _purity is "purity" ? "purity to below 0%" : "corruption to above 0%">> will switch it to <<= _purity is "purity" ? "corruption" : "purity">>. </span> </div> /* Gwylan's love is a calculated value and any change added here would not stick. */ <<if $gwylanSeen?.includes("yearning")>> <div class="settingsToggleItemWide"> <span class="gold">Gwylan</span> <span id="gwylandesc" class="description"> Gwylan's love is calculated as a total from a list of events and can not be set with cheats. </span> <<numberStepper "<<symbol lust>> Lust" `C.npc.Gwylan.lust` { callback: value => { C.npc.Gwylan.lust = value } }>> <<numberStepper "<<symbol yearning>> Yearning" `C.npc.Gwylan.dom` { callback: value => { C.npc.Gwylan.dom = value }, max: 150 }>> </div> <</if>> </div> <hr> <div class="settingsGrid"> <div class="settingsHeader options">People of Interest</div> <div class="settingsToggleItem"> <span class="gold">Mason</span> <<numberStepper "<<symbol love>> <<print setup.loveAlias.Mason()>>" `C.npc.Mason.love` { callback: value => { C.npc.Mason.love = value }, max: 50 }>> <<numberStepper "<<symbol lust>> Lust" `C.npc.Mason.lust` { callback: value => { C.npc.Mason.lust = value }, max: 100 }>> </div> <div class="settingsToggleItem"> <span class="gold">Zephyr</span> <<numberStepper "<<symbol love>> <<print setup.loveAlias.Zephyr()>>" `C.npc.Zephyr.love` { callback: value => { C.npc.Zephyr.love = value } }>> <<numberStepper "<<symbol lust>> Lust" `C.npc.Zephyr.lust` { callback: value => { C.npc.Zephyr.lust = value }, max: 100 }>> </div> <div class="settingsToggleItem"> <span class="gold">Teachers</span> <<numberStepper "<<symbol love>> Sirris <<print setup.loveAlias.Sirris()>>" `C.npc.Sirris.love` { callback: value => { C.npc.Sirris.love = value } }>> <<numberStepper "<<symbol love>> Doren <<print setup.loveAlias.Doren()>>" `C.npc.Doren.love` { callback: value => { C.npc.Doren.love = value } }>> <<numberStepper "<<symbol love>> Leighton <<print setup.loveAlias.Leighton()>>" `C.npc.Leighton.love` { callback: value => { C.npc.Leighton.love = value } }>> <<numberStepper "<<symbol love>> River <<print setup.loveAlias.River()>>" `C.npc.River.love` { callback: value => { C.npc.River.love = value }, max: 50 }>> <<numberStepper "<<symbol love>> Winter <<print setup.loveAlias.Winter()>>" `C.npc.Winter.love` { callback: value => { C.npc.Winter.love = value } }>> </div> <div class="settingsToggleItem"> <span class="gold">Other Named NPCs</span> <<numberStepper "<<symbol love>> Briar <<print setup.loveAlias.Briar()>>" `C.npc.Briar.love` { callback: value => { C.npc.Briar.love = value } }>> <<numberStepper "<<symbol love>> Charlie <<print setup.loveAlias.Charlie()>>" `C.npc.Charlie.love` { callback: value => { C.npc.Charlie.love = value }, max: 50 }>> <<numberStepper "<<symbol love>> Darryl <<print setup.loveAlias.Darryl()>>" `C.npc.Darryl.love` { callback: value => { C.npc.Darryl.love = value }, max: 50 }>> <<numberStepper "<<symbol love>> Harper <<print setup.loveAlias.Harper()>>" `C.npc.Harper.love` { callback: value => { C.npc.Harper.love = value } }>> <<numberStepper "<<symbol love>> Morgan <<print setup.loveAlias.Morgan()>>" `C.npc.Morgan.love` { callback: value => { C.npc.Morgan.love = value } }>> <<numberStepper "<<symbol love>> Niki <<print setup.loveAlias.Niki()>>" `C.npc.Niki.love` { callback: value => { C.npc.Niki.love = value } }>> <<numberStepper "<<symbol love>> Remy <<print setup.loveAlias.Remy()>>" `C.npc.Remy.love` { callback: value => { C.npc.Remy.love = value } }>> <<numberStepper "<<symbol love>> Sam <<print setup.loveAlias.Sam()>>" `C.npc.Sam.love` { callback: value => { C.npc.Sam.love = value }, max: 50 }>> <<numberStepper "<<symbol love>> Wren <<print setup.loveAlias.Wren()>>" `C.npc.Wren.love` { callback: value => { C.npc.Wren.love = value }, max: 50 }>> </div> </div> <hr> <div class="settingsGrid"> <div class="settingsHeader options">Reputation</div> <<if $farm_stage gte 2>> <div class="settingsToggleItem"> <<farmicon>><span class="gold">Farm Status</span> <<numberStepper "Steeds' Respect" `V.farm.beasts.horses` { callback: value => { V.farm.beasts.horses = value }, min: -30, max: 30 }>> <<numberStepper "Pigs' Respect" `V.farm.beasts.pigs` { callback: value => { V.farm.beasts.pigs = value }, min: -30, max: 30}>> <<numberStepper "Cattle' Respect" `V.farm.beasts.cattle` { callback: value => { V.farm.beasts.cattle = value }, min: -30, max: 30 }>> <<numberStepper "Dogs' Respect" `V.farm.beasts.dogs` { callback: value => { V.farm.beasts.dogs = value }, min: -30, max: 30 }>> </div> <div class="settingsToggleItem"> <<farmicon>><span class="gold">Farm Progress</span> <br> <<if $farm_stage gte 12>> You've cleared <span class="green">all</span> of the fields. <<else>> <span id="farmYard"><<cheatsRep "farm">></span> <</if>> <<if $farm_stage gte 5>> <hr> <<numberStepper "Remy's Encroachment" `V.farm.aggro` { reverse: true, callback: value => { V.farm.aggro = value; Wikifier.wikifyEval("<<replace #farmAggro>><<cheatsRep aggro>><</replace>>") } }>> <span id="farmAggro"><<cheatsRep "aggro">></span> <</if>> </div> <</if>> <div class="settingsToggleItem"> <<wolfcaveicon "pup">><span class="gold">Wolf Pack</span> <br> <<if $syndromewolves is 1>> Rank: <span id="wolfpackleader"><<cheatsRep "wolfpackleader">></span> <</if>> <<numberStepper "Trust" $wolfpacktrust "wolfpacktrust" {max: 30}>> <<numberStepper "Fear" $wolfpackfear "wolfpackfear" {max: 30}>> <<if $syndromewolves is 1>> <<numberStepper "Harmony" $wolfpackharmony "wolfpackharmony" {max: 20}>> <<numberStepper "Ferocity" $wolfpackferocity "wolfpackferocity" {max: 20}>> <</if>> </div> <div class="settingsToggleItem"> <<schoolicon "building">><span class="gold">School</span> <<numberStepper "Status" $cool "cool" {max: V.coolmax}>> <<numberStepper "Delinquency" $delinquency "delinquency" {max: 1000, reverse: true}>> <hr> <<if $player.penisExist and $player.vaginaExist>> <<numberStepper "Hermaphrodite Fame" $schoolrep.herm { callback: value => {V.schoolrep.herm = value; Wikifier.wikifyEval("<<replace '#repherm'>><<cheatsRep herm>><</replace>>")}, max: 5, step: 1, percentage: false, reverse: true, activeButtons: ["single", "minMax"] }>> <span id="repherm"><<cheatsRep "herm">></span> <<else>> <<numberStepper "Crossdresser Fame" $schoolrep.crossdress { callback: value => {V.schoolrep.crossdress = value; Wikifier.wikifyEval("<<replace '#repcrossdress'>><<cheatsRep crossdress>><</replace>>")}, max: 5, step: 1, percentage: false, reverse: true, activeButtons: ["single", "minMax"] }>> <span id="repcrossdress"><<cheatsRep "crossdress">></span> <</if>> </div> <<if ["asylum", "prison"].includes($location)>> <div class="settingsToggleItem"> <<if $location is "asylum">> <<asylumicon "cell">><span class="gold">Asylum</span> <<numberStepper "Status" $asylumstatus "asylumstatus">> <<numberStepper "Suspicion" $asylumsuspicion "asylumsuspicion">> <<elseif $location is "prison">> <<policeicon>><span class="gold">Prison</span> <<numberStepper "Guards" $prison.guards { callback: value => { V.prison.guards = value } }>> <<numberStepper "Inmates" $prison.inmates { callback: value => { V.prison.inmates = value } }>> <</if>> </div> <</if>> <<if $dockwork is 2>> <div class="settingsToggleItem"> <<docksicon>><span class="gold">Docks</span> <<numberStepper "Status" $dockstatus "dockstatus">> </div> <</if>> <<if $pirate_rank gte 0>> <div class="settingsToggleItem"> <<mericon>><span class="gold">Pirates</span> <br> Rank: <span id="pirate_rank"><<cheatsRep "pirate_rank">></span> <<numberStepper "Status" $pirate_status "pirate_status">> </div> <</if>> <<if $pound>> <div class="settingsToggleItem"> <<poundicon>><span class="gold">Pound</span> <<numberStepper "Status" $pound.status { callback: value => { V.pound.status = value } }>> <<numberStepper "Stray Contentment" $stray_happiness "stray_happiness">> </div> <</if>> <div class="settingsToggleItem"> <<homeicon>><span class="gold">Orphanage</span> <<numberStepper "Hope" $orphan_hope "orphan_hope" {max: 50}>> <<numberStepper "Rebelliousness" $orphan_reb "orphan_reb" {max: 50}>> </div> </div> <</widget>> <<widget "sydneyPurity">> <<if C.npc.Sydney.purity gt 0>> <<numberStepper "<<symbol purity>> Purity" `C.npc.Sydney.purity` { callback: value => { C.npc.Sydney.purity = value; if (value < 0) { C.npc.Sydney.corruption = Math.abs(value); value = 0; Wikifier.wikifyEval("<<replace '#sydneypurity'>><<sydneyPurity>><</replace>>"); } }, min: -100, max: 100, step: 1, percentage: false, valueFormat: value => `<b>${value}%</b>` }>> <<else>> <<numberStepper "<<symbol corruption>> Corruption" `C.npc.Sydney.corruption` { callback: value => { C.npc.Sydney.corruption = value; if (value < 0) { C.npc.Sydney.purity = Math.abs(value); value = 0; Wikifier.wikifyEval("<<replace '#sydneypurity'>><<sydneyPurity>><</replace>>"); } }, min: -100, max: 50, step: 1, percentage: false, reverse: true, reverseButtons: true, valueFormat: value => `<b>${value*2}%</b>` }>> <</if>> <</widget>> <<widget "cheatsRep">> <<switch _args[0]>> <<case "aggro">> <<if $farm.aggro gte 100>> <span class="red">Remy's goons operate in the open, sabotaging the farm and its business.</span> <<elseif $farm.aggro gte 60>> <span class="pink">The farm is being sabotaged, day and night.</span> <<elseif $farm.aggro gte 40>> <span class="purple">The farm is being sabotaged at night.</span> <<elseif $farm.aggro gte 20>> <span class="blue">Something is spooking the beasts of the farm.</span> <<elseif $farm.aggro gte 10>> <span class="lblue">Signs of intrusion have been found around the farm.</span> <<elseif $farm.aggro gte 1>> <span class="teal">Strange people have been seen watching the farm.</span> <<else>> <span class="green">The farm is peaceful.</span> <</if>> <<case "farm">> One of the fields is being cleared, <<if $farm.clearing lte 0>> <span class="green">and is ready for planting!</span> <<elseif $farm.clearing lte 20>> <span class="teal">and is almost ready for planting.</span> <<elseif $farm.clearing lte 40>> <span class="lblue">and is starting to look civilised.</span> <<elseif $farm.clearing lte 60>> <span class="blue">and soil has been exposed in places.</span> <<elseif $farm.clearing lte 80>> <span class="purple">but the tangle remains defiant.</span> <<elseif $farm.clearing lte 99>> <span class="pink">but little progress has been made.</span> <<else>> <span class="red">but remains a jungle of weeds.</span> <</if>> <<if $farm.clearing gt 0>> | <<farmicon "clear yard">><<link "Clear field">><<set $farm.clearing to 0>><<replace "#farmYard">><<cheatsRep "farm">><</replace>><</link>> <<else>> <span class="green">Talk to Alex to advance farm progress.</span> <</if>> <<case "crossdress">> <<set _crossdressing to $player.gender isnot $player.sex ? "presumed crossdressing" : "crossdressing">> <<set _knows to $player.gender isnot $player.sex ? "believes it to be true" : "knows">> <<switch $schoolrep.crossdress>> <<case 5>><span class="red">Your _crossdressing has become common knowledge at school. Everyone _knows, including the teachers.</span> <<case 4>><span class="pink">Rumours of your _crossdressing are spreading throughout the school.</span> <<case 3>><span class="purple">Rumours of your _crossdressing are spreading and have become a popular topic of conversation at school.</span> <<case 2>><span class="blue">Whispers of your _crossdressing are spreading through the school.</span> <<case 1>><span class="lblue">A few cliques at school have begun whispering of your _crossdressing.</span> <<default>><span class="green">No one is spreading rumours about you at school.</span> <</switch>> <<case "herm">> <<switch $schoolrep.herm>> <<case 5>><span class="red">Everyone at school has heard of your unique genitalia, including the teachers.</span> <<case 4>><span class="pink">Rumours of your unique genitalia have spread throughout the school.</span> <<case 3>><span class="purple">It sounds far-fetched to many, but the school is rife with gossip about a student with both boy and girl parts.</span> <<case 2>><span class="blue">Rumours of a student with both boy and girl parts are spreading through the school.</span> <<case 1>><span class="lblue">A few cliques at school have begun whispering about a student with both boy and girl parts.</span> <<default>><span class="green">No one is spreading rumours about you at school.</span> <</switch>> <<case "wolfpackleader" "pirate_rank">> <<set _ranks to _args[0] is "pirate_rank" ? {0: "Scum", 1: "Mate"} : {0: "Packmate", 1: "Pack leader"}>> <<capture _i, _ranks>> <<for _i to 0; _i lt Object.keys(_ranks).length; _i++>> <span @class="V[_args[0]] is _i ? 'goldLink' : 'unselected'"> <<link _ranks[_i]>> <<set V[_args[0]] to _i>> <<replace `"#" + _args[0]`>><<cheatsRep _args[0]>><</replace>> <</link>> </span> <<= _i < Object.keys(_ranks).length - 1 ? "|" : "">> <</for>> <</capture>> <<default>> <</switch>> <</widget>> <<widget "cheats-teleport">> <div class="settingsGrid"> <div class="settingsHeader options">Teleportation</div> <<if ["Clothing Shop", "Forest Shop", "School Library Shop", "Adult Shop Store"].includes($passage)>> <div class="settingsToggleItemWide"> <span class="red">Teleporting from a clothing store can break your wardrobe.</span> Please leave the shop before teleporting. </div> <<elseif ["Livestock Field"].includes($passage)>> <div class="settingsToggleItemWide"> <span class="red">Teleporting from bad end can lead to various problems.</span> Please escape before teleporting. </div> <<elseif setup.majorAreas.includes($passage) and $event is undefined>> <div class="settingsToggleItemWide"> <b>Teleporting from anywhere but the overworld can cause bugs.</b> </div> <div class="settingsToggleItem"> <span class="gold">Town Locations</span> <br> <<homeicon>><<link [[Orphanage]]>><<cheats-teleport-function>><</link>> <br> <<shopicon>><<link [[Shopping Centre]]>><<cheats-teleport-function>><</link>> <br> <<if $dorenintro gte 1 and $exposed lte 0>> <<dooricon "doren">><<link [[Doren's Flat|Doren Entrance]]>><<cheats-teleport-function>><</link>> <br> <</if>> <<dancestudioicon>><<link [[Dance Studio]]>><<cheats-teleport-function>><</link>> <br> <<policeicon>><<link [[Police Station]]>><<cheats-teleport-function>><</link>> <br> <<policeicon>><<link [[Police Back Office]]>><<cheats-teleport-function>><</link>> <br> <<spaicon>><<link [[Spa]]>><<cheats-teleport-function>><</link>> <br> <<wolficon>><<link [[Temple]]>><<cheats-teleport-function>><</link>> <br> <<kitchenicon "soup">><<link [[Soup Kitchen]]>><<cheats-teleport-function>><</link>> <br> <<stripclubicon>><<link [[Strip Club]]>><<cheats-teleport-function>><</link>> <br> <<hospitalicon>><<link [[Hospital|Hospital front]]>><<cheats-teleport-function>><</link>> <br> <<if $trash_unlocked is 1>> <<landfillicon>><<link [[Landfill|Trash Gate Enter]]>><<cheats-teleport-function>><</link>> <br> <</if>> <<if $compound.card or $farm_stage gte 9>> <<landfillicon>><<link [[Elk Compound]]>><<cheats-teleport-function>><</link>> <br> <</if>> <<museumicon>><<link [[Museum]]>><<cheats-teleport-function>><</link>> <br> <<oxfordicon>><<link [[School Front Courtyard]]>><<cheats-teleport-function>><</link>> <br> <<brothelicon>><<link [[Brothel]]>><<cheats-teleport-function>><</link>> <br> <<pubicon>><<link [[Pub]]>><<cheats-teleport-function>><</link>> <br> <<busstationicon>><<link [[Bus Station]]>><<cheats-teleport-function>><</link>> <br> <<docksicon>><<link [[Docks]]>><<cheats-teleport-function>><</link>> <br> <<beachicon>><<link [[Beach]]>><<cheats-teleport-function>><</link>> <br> <<cafeicon>><<link [[Ocean Breeze]]>><<cheats-teleport-function>><</link>> <hr> <span class="gold">Town Outskirts</span> <br> <<foresticon>><<link [[Forest]]>><<cheats-teleport-function>><</link>> <br> <<roadicon>><<link [[Farm Road 1]]>><<cheats-teleport-function>><</link>> <br> <<farmicon "barn">><<link [[Farmlands|Farmland]]>><<cheats-teleport-function>><</link>> </div> <div class="settingsToggleItem"> <span class="gold">Town Streets</span> <br> <<domusicon>><<link [[Domus Street]]>><<cheats-teleport-function>><</link>> <br> <<danubeicon>><<link [[Danube Street]]>><<cheats-teleport-function>><</link>> <br> <<barbicon>><<link [[Barb Street]]>><<cheats-teleport-function>><</link>> <br> <<wolficon>><<link [[Wolf Street]]>><<cheats-teleport-function>><</link>> <br> <<connudatusicon>><<link [[Connudatus Street]]>><<cheats-teleport-function>><</link>> <br> <<nightingaleicon>><<link [[Nightingale Street]]>><<cheats-teleport-function>><</link>> <br> <<highicon>><<link [[High Street]]>><<cheats-teleport-function>><</link>> <br> <<elkicon>><<link [[Elk Street]]>><<cheats-teleport-function>><</link>> <br> <<oxfordicon>><<link [[Oxford Street]]>><<cheats-teleport-function>><</link>> <br> <<harvesticon>><<link [[Harvest Street]]>><<cheats-teleport-function>><</link>> <br> <<mericon>><<link [[Mer Street]]>><<cheats-teleport-function>><</link>> <br> <<starfishicon>><<link [[Starfish Street]]>><<cheats-teleport-function>><</link>> <br> <<clifficon>><<link [[Cliff Street]]>><<cheats-teleport-function>><</link>> <br> <<alleyicon>><<link [[Commercial Alleyways]]>><<cheats-teleport-function>><</link>> <br> <<alleyicon>><<link [[Industrial Alleyways]]>><<cheats-teleport-function>><</link>> <br> <<alleyicon>><<link [[Residential Alleyways]]>><<cheats-teleport-function>><</link>> <hr> <span class="gold">Underground</span> <br> <<sewericon>><<link [[Industrial Drain]]>><<cheats-teleport-function>><</link>> <br> <<sewericon>><<link [[Commercial Drain]]>><<cheats-teleport-function>><</link>> <br> <<sewericon>><<link [[Residential Drain]]>><<cheats-teleport-function>><</link>> <br> <<sewericon>><<link [[Drain ocean exit|Drain Exit]]>><<cheats-teleport-function>><</link>> <br> <<sewericon>><<link [[Sewers Residential]]>><<cheats-teleport-function>><</link>> <br> <<sewericon>><<link [[Sewers Commercial]]>><<cheats-teleport-function>><</link>> <br> <<sewericon>><<link [[Sewers Industrial]]>><<cheats-teleport-function>><</link>> </div> <<else>> <div class="settingsToggleItemWide"> <span class="red">You are in an area where teleporting can break your save, or an event is in progress.</span> Return to the overworld before teleporting. </div> <</if>> </div> <</widget>> <<widget "cheats-teleport-function">> <<set _lastBadEnd to $badEndStats.last()>> <<if _lastBadEnd?.trackedStart and _lastBadEnd.trackedEnd is undefined>> <<badEndTrackingEnd _lastBadEnd.source { reason: "teleportCheater" }>> <</if>> <<switch $passage>> <<case "Island">> <<island_end>> <<case "Underground Cell">> <<dungeonescape>> <<case "Asylum" "Asylum Cell">> <<asylumescape>> <<case "Prison Cell">> <<prison_bondage_removal>> <</switch>> <</widget>> <<widget "cheats-other">> <div class="settingsGrid"> <div class="settingsHeader options">Time and Weather</div> <div class="settingsToggleItem"> <span class="gold">Advance time:</span> <br> <<link [[15 minutes|$passage]]>><<pass 15>><</link>> <br> <<link [[30 minutes|$passage]]>><<pass 30>><</link>> <br> <<for _i, _hr range [1, 2, 3, 6, 8, 12, 16, 24]>> <<capture _hr>> <<= _i gt 0 ? "<br>" : "">> <<set _hours to _i is 0 ? "hour" : "hours">> <<link [[_hr _hours|$passage]]>><<pass _hr hour>><</link>> <</capture>> <</for>> <hr> <<foldout false "_cheatsExpiredHistoryFoldout">> <span class="grey">Expired passages:</span> <<set _cheatsHistoryPassageTitles to State.expired>> <<for _i to 0; _i lt _cheatsHistoryPassageTitles.length; _i++>> <<= _i gt 0 ? "<br>" : "">> <<print (_i - _cheatsHistoryPassageTitles.length) + ':\t'>> <span class="grey"><<print _cheatsHistoryPassageTitles[_i]>></span> <</for>> <</foldout>> <<foldout false "_cheatsHistoryNavigationFoldout">> <span class="gold">Current passages: """[[""" <<print $passage>> """]]"""</span> <<set _cheatsHistoryPassageTitles to State.history.map((e) => e.title)>> <<for _i to 0; _i lt _cheatsHistoryPassageTitles.length; _i++>> <<= _i gt 0 ? "<br>" : "">> <<print _i + ':\t'>> <<if _i === State.activeIndex>> <span class="gold"><<print _cheatsHistoryPassageTitles[_i]>></span> <<else>> <<capture _i>> <<link _cheatsHistoryPassageTitles[_i]>><<cheatsHistoryNavigation _i true>><</link>> <</capture>> <</if>> <</for>> <</foldout>> <<link "Backward">><<cheatsHistoryNavigation `State.activeIndex - 1` true>><</link>> | <<link "Forward">><<cheatsHistoryNavigation `State.activeIndex + 1` true>><</link>> </div> <div class="settingsToggleItem"> <span class="gold">Current Weather:</span> <br> <span id="cheatsWeather"><<cheatsWeather>></span> <br> <span class="description">Changing this setting will change the weather for at least 6 hours, before returning to the original weather simulation.</span> </div> <div class="settingsToggleItemWide"> <span class="gold">Temperature</span> <br> <span class="description">Will increase or decrease the base temperature until the next day - then go back to the proper temperature over time.<br> The base temperature will still be modified by other factors such as time of day - and will not be constant throughout the day.</span> <<numberStepper "Outside Temperature" `Weather.toSelected(Weather.temperature)` { callback: value => { Weather.Temperature.set(V.options.fahrenheit ? Weather.Temperature.toCelsius(value) : value); Weather.Temperature.set(V.options.fahrenheit ? Weather.Temperature.toCelsius(value) : value, new DateTime(Time.date).addDays(1)); }, min: -60, max: 60, step: 0.1, colorArr: ["--blue", "--teal", "--yellow", "--orange", "--red"], percentage: false, valueFormat: value => round(value, 1) + (V.options.fahrenheit ? "°F" : "°C"), activeButtons: ["single", "double", "triple"] }>> <span class="description">Changes will be visible after at least 1 minute of game time passes.</span> </div> </div> <hr> <div class="settingsGrid"> <div class="settingsHeader options">Pregnancy</div> <<if !$settings.parasitePregnancyEnabled>> <div class="settingsToggleItemWide"> <span class="gold">Parasitic Pregnancy</span> <br> You need to enable parasitic pregnancy in the settings to access these cheats. </div> <<else>> <div @class="$player.vaginaExist ? 'settingsToggleItem' : 'settingsToggleItemWide'"> <<if $sexStats.anus.pregnancy.type is "parasite" or $sexStats.anus.pregnancy.type is null>> <div id="cheatsParasiteOptions-anus"><<cheatsParasiteOptions "anus">></div> <<else>> <span class="gold">Anal Parasitic Pregnancy</span> <br> You're currently pregnant with <<= $sexStats.anus.pregnancy.type>> children and can't get pregnant with anal parasites. <</if>> </div> <<if $player.vaginaExist>> <div class="settingsToggleItem"> <<if ($sexStats.vagina.pregnancy.type is "parasite" or $sexStats.vagina.pregnancy.type is null)>> <div id="cheatsParasiteOptions-vagina"><<cheatsParasiteOptions "vagina">></div> <<elseif !($sexStats.vagina.pregnancy.type is "parasite" or $sexStats.vagina.pregnancy.type is null)>> <span class="gold">Vaginal Parasitic Pregnancy</span> <br> You're currently pregnant with <<= $sexStats.vagina.pregnancy.type>> children and can't get pregnant with vaginal parasites. <</if>> </div> <</if>> <</if>> <<if ($settings.playerPregnancyBeastEnabled or $settings.playerPregnancyHumanEnabled)>> <div class="settingsToggleItem" id="cheatsPregnancyOptions"> <<cheatsPregnancyOptions>> </div> <div class="settingsToggleItem" id="cheatsImpregOptions"> <<cheatsImpregOptions>> </div> <<else>> <div class="settingsToggleItem"> <span class="gold">Non-Parasitic Pregnancy</span> <br> You need to enable pregnancy in the settings to access these cheats. </div> <div class="settingsToggleItem"> <span class="gold">Impregnation</span> <br> You need to enable pregnancy in the settings to access these cheats. </div> <</if>> </div> <</widget>> <<widget "cheatsHistoryNavigation">> <<if typeof _args[0] is "number">> <<if !(_args[1] === true) or State.history[_args[0]]?.title === "Start">> <<run Engine.goTo(_args[0])>> <<exit>> <</if>> <<set setup.cheatsHistoryNavigation to {offsetY: $("#customOverlayContent").scrollTop() || 0}>> <<run Engine.goTo(_args[0])>> <<overlayReplace "cheats">> <<replace #cheatsShown>><<cheats-other>><</replace>> <<run $("#customOverlayContent").scrollTop(setup.cheatsHistoryNavigation.offsetY)>> <<set delete setup.cheatsHistoryNavigation>> <</if>> <</widget>> <<widget "cheatsParasiteOptions">> <<capture _args, _anal, _type>> <<set $_pregnancy to $sexStats[_args[0]].pregnancy>> <<set _anal to _args[0] is "anus" ? "anal" : "vaginal">> <<set _slots to maxParasites(_args[0])>> <<set $_aPregnancy to $sexStats[_args[0]].pregnancy>> <<set _parasiteTypes to ["eels", "slimes", "fish", "snake", "worms", "tentacle", "lurker", "wasp", "bee", "squid", "vine", "slug", "maggots", "spiders"]>> <<set $_linkName to "Clear current " + _anal + " pregnancies">> <span class="gold"><<= _anal.toUpperFirst()>> Parasitic Pregnancy</span> <br> You can have up to <<number _slots>> _anal <<= _slots is 1 ? "parasite" : "parasites">>. <<if $_pregnancy.fetus.length lt maxParasites(_args[0])>> <br><br> <<if $_aPregnancy.type is "parasite" or $_aPregnancy.type is null>> Get Pregnant with a: <br> <<for _i, _type range _parasiteTypes>> <<set _parasiteName to _type.endsWith('s') ? _type.slice(0, -1).toUpperFirst() : _type.toUpperFirst()>> <<link _parasiteName>> <<impregnateParasite _type true _args[0]>><<cheatsParasite _args[0] _hermaphrodite>> <<set _hermaphrodite to false>> <</link>> <<= _i lt _parasiteTypes.length - 1 ? "|" : "">> <</for>> <br> <<if $_pregnancy.motherStatus lt 2>> <label><<checkbox "_hermaphrodite" false true autocheck>> Hermaphrodite</label> <<else>> You can only have one hermaphrodite parasite in your _args[0] at a time. <</if>> <<else>> You are currently unable to host parasites due to your current _anal pregnancy. <</if>> <br> <<else>> You cannot get <<= _anal + "ly">> pregnant with any more parasites. <</if>> <hr> <<for _i to 0; _i lt maxParasites(_args[0]); _i++>> <<if $_aPregnancy.fetus[_i] isnot undefined>> <<if $_aPregnancy.fetus[_i].fertilised>> <<= _anal.toUpperFirst()>> slot <<=_i+1>> is pregnant with a $_aPregnancy.fetus[_i].stats.gender $_aPregnancy.fetus[_i].creature. <br> <<else>> <<= _anal.toUpperFirst()>> slot <<=_i+1>> has a $_aPregnancy.fetus[_i].stats.gender $_aPregnancy.fetus[_i].creature egg ready to be fertilised. <br> <</if>> <<else>> <<= _anal.toUpperFirst()>> slot <<=_i+1>> is empty. <br> <</if>> <</for>> <<link $_linkName>> <<if $sexStats[_args[0]].pregnancy.type is "parasite">> <<set $sexStats[_args[0]].pregnancy.fetus to []>> <<set $sexStats[_args[0]].pregnancy.type to null>> <<if $sexStats[_args[0]].pregnancy.motherStatus is 2>> <<set $sexStats[_args[0]].pregnancy.motherStatus to 1>> <</if>> <</if>> <<replace `"#cheatsParasiteOptions-" + _args[0]`>><<cheatsParasiteOptions _args[0]>><</replace>> <</link>> <</capture>> <</widget>> <<widget "cheatsParasite">> <<set $_pregnancy to $sexStats[_args[0]].pregnancy>> <<if $pregnancyStats.parasiteDoctorEvents lt 2>> <<set $pregnancyStats.parasiteDoctorEvents to 2>> <</if>> <<if _args[1]>> <<set $_pregnancy.motherStatus to 2>> <<set $_pregnancy.fetus.last().stats.gender to "Hermaphrodite">> <<set $_pregnancy.fetus.last().stats.lastEgg to Math.floor($_pregnancy.fetus.last().stats.growth / 3)>> <<else>> <<if $_pregnancy.motherStatus is 0>> <<set $_pregnancy.motherStatus to 1>> <</if>> <</if>> <<fertiliseParasites _args[0]>> <<replace `"#cheatsParasiteOptions-" + _args[0]`>><<cheatsParasiteOptions _args[0]>><</replace>> <</widget>> <<widget "cheatsPregnancyOptions">> <span class="gold">Non-Parasitic Pregnancy</span> <br> <<set _womb to ($player.vaginaExist ? "vagina" : "anus")>> <<set _eligible to ["Avery", "Eden", "Harper", "Kylar", "Morgan", "Robin", "Whitney", "Black Wolf", "Alex", "Wren", "Sydney", "Great Hawk"]>> <<set _impregnatableNPC to []>> <<set _impregnatorNPC to []>> <<set _pregnantNPC to {}>> <<for _pregEnabled range $NPCName.filter(npc => npc.pregnancy and npc.pregnancy.enabled isnot undefined)>> <<if playerPregnancyPossibleWith(_pregEnabled)>> <<set _impregnatorNPC.push($NPCName.indexOf(_pregEnabled))>> <</if>> <<if NPCPregnancyPossibleWithPlayer(_pregEnabled.nam)>> <<set _impregnatableNPC.push($NPCName.indexOf(_pregEnabled))>> <</if>> <</for>> <<if $player.vaginaExist or canBeMPregnant()>> <<set _menstruation to $sexStats.vagina.menstruation>> <<set $_pregnancy to getPregnancyObject()>> <<if !playerIsPregnant() and $settings.fertilityCycleEnabled>> You aren't pregnant. <<if $settings.pregnancyType is "realistic">> You have <span id="cheatSpermSources"><span class="gold"><span class="gold">$sexStats[_womb].sperm.length</span></span> <<pluralise $sexStats[_womb].sperm.length "sperm source">></span> contributing to your chances of getting pregnant. <</if>> <br><br> Menstruation: <br> <<link "<<">><<set _menstruation.currentDay to Math.clamp(_menstruation.currentDay - 5, 0, _menstruation.currentDaysMax)>><<replace "#cheatMenstruationDay">><<= Math.trunc(_menstruation.currentDay)>><</replace>><</link>> | <<link "<">><<set _menstruation.currentDay to Math.clamp(_menstruation.currentDay - 1, 0, _menstruation.currentDaysMax)>><<replace "#cheatMenstruationDay">><<= Math.trunc(_menstruation.currentDay)>><</replace>><</link>> | Day <span id="cheatMenstruationDay"><<= Math.trunc(_menstruation.currentDay)>></span> of _menstruation.currentDaysMax | <<link "Ovulate">><<set _menstruation.currentDay to _menstruation.stages[2]>><<replace "#cheatMenstruationDay">><<= Math.trunc(_menstruation.currentDay)>><</replace>><</link>> | <<link ">">><<set _menstruation.currentDay to Math.clamp(_menstruation.currentDay + 1, 0, _menstruation.currentDaysMax)>><<replace "#cheatMenstruationDay">><<= Math.trunc(_menstruation.currentDay)>><</replace>><</link>> | <<link ">>">><<set _menstruation.currentDay to Math.clamp(_menstruation.currentDay + 5, 0, _menstruation.currentDaysMax)>><<replace "#cheatMenstruationDay">><<= Math.trunc(_menstruation.currentDay)>><</replace>><</link>> <br><br> <</if>> <<if playerIsPregnant()>> You are pregnant. <<set _pregnancyTimer to getPregnancyObject()>> <<numberStepper "Pregnancy progress" _pregnancyTimer.timer { callback: value => { getPregnancyObject().timer = value; Wikifier.wikifyEval("<<updatesidebarimg>>"); }, min: 0, max: getPregnancyObject().timerEnd - 0.5, colorArr: ["--teal", "--pink"], activeButtons: ["single", "double"] }>> <br><br> <<link [[Clear current pregnancy|$passage]]>> <<set _pregnancyClear to getPregnancyObject()>> <<set _pregnancyClear.type to null>> <<set _pregnancyClear.fetus to []>> <<set _pregnancyClear.waterBreaking to false>> <<set _pregnancyClear.waterBreakingTimer to null>> <<set _pregnancyClear.timer to null>> <<set _pregnancyClear.timerEnd to null>> <<set _pregnancyClear.awareOf to null>> <<set _pregnancyClear.awareOfMultiple to null>> <<set _pregnancyClear.awareOfDetails to null>> <<set _pregnancyClear.potentialFathers to []>> <<set $sexStats[($player.vaginaExist ? "vagina" : "anus")].sperm to []>> <<restartMenstruationCycle>> <<set _menstruation.currentState to "normal">> <<set _menstruation.recoveryTime to null>> <<set _menstruation.recoveryTimeStart to null>> <<set _menstruation.recoveryStage to null>> <<run delete C.npc.Alex.pregnancy.pcKnowledge>> <<run delete C.npc.Alex.pregnancy.test>> <<run delete C.npc.Alex.pregnancy.ultraSound>> <<run delete C.npc.Alex.pregnancy.sample>> <<run delete C.npc.Alex.pregnancy.ultraSoundPics>> <</link>> <<else>> <<if ($settings.playerPregnancyHumanEnabled or $settings.playerPregnancyBeastEnabled) and !playerIsPregnant()>> Get pregnant from: <br> <<if $settings.playerPregnancyHumanEnabled>> <<link [[A random person|$passage]]>> /* checks if males or females have penises, if there is no people with penises a foreigner impregnates PC */ <<set _impregnator to either("arbitrary", "aimless", "by-the-way", "casual", "driftless", "hit-or-miss", "fluky", "promiscuous", "slapdash", "irresponsible", "careless", "negligent") + " cheater ">> <<if $settings.femaleNPCPenisChance gt 0 and $settings.maleNPCVaginaChance lt 100>> <<set _impregnator += either("man", "boy", "woman", "girl")>> <<elseif $settings.femaleNPCPenisChance gt 0 and $settings.maleNPCVaginaChance gt 99>> <<set _impregnator += either("woman", "girl")>> <<elseif $settings.femaleNPCPenisChance lt 1 and $settings.maleNPCVaginaChance lt 100>> <<set _impregnator += either("man", "boy")>> <<else>> <<set _impregnator += "foreigner">> <</if>> <<playerPregnancy _impregnator "human" true _womb undefined true>> <</link>> <</if>> <<if $settings.playerPregnancyBeastEnabled>> <<if $settings.playerPregnancyHumanEnabled>> | <</if>> <<link [[A wolf|$passage]]>> <<if $settings.monsterChance gte random(1, 100) and ($hallucinations gte 1 or !$settings.monsterHallucinationsOnly)>> <<if $settings.femaleNPCPenisChance gt 0 and $settings.maleNPCVaginaChance lt 100>> <<set _impregnator to either("cheater wolfboy", "cheater wolfgirl")>> <<elseif $settings.femaleNPCPenisChance gt 0 and $settings.maleNPCVaginaChance gt 99>> <<set _impregnator to "cheater wolfgirl">> <<elseif $settings.femaleNPCPenisChance lt 1 and $settings.maleNPCVaginaChance lt 100>> <<set _impregnator to "cheater wolfboy">> <<else>> <<set _impregnator to "foreign cheater wolfperson">> <</if>> <<if _impregnator is "cheater wolfgirl">><<set _spermType to "wolfgirl">><<else>><<set _spermType to "wolfboy">><</if>> <<else>> <<if beastMaleChance() gt 0>> /* checks if there are male wolves, if not a foreigner wolf impregnates PC */ <<set _impregnator to "cheater wolf">> <<else>> <<set _impregnator to "cheater foreign wolf">> <</if>> <<set _spermType to "wolf">> <</if>> <<playerPregnancy _impregnator _spermType true _womb undefined true>> <</link>> <</if>> <<for _pregEnabled range _impregnatorNPC>> <<set _actor to $NPCName[_pregEnabled]>> <<if !_eligible.includes(_actor.nam)>> <<continue>> <</if>> <<switch _actor.nam>> <<case "Black Wolf">> <<if $blackwolfmonster>> <<set _spermType to (C.npc["Black Wolf"].pronoun is "f" ? "wolfgirl" : "wolfboy")>> <<else>> <<set _spermType to "wolf">> <</if>> <<case "Great Hawk">> <<if $greathawkmonster>> <<set _spermType to "harpy">> <<else>> <<set _spermType to "hawk">> <</if>> <<default>><<set _spermType to "human">> <</switch>> <<capture _actor, _spermType, _womb>> | <<link [[_actor.nam|$passage]]>> <<playerPregnancy _actor.nam _spermType true _womb undefined true>> <</link>> <</capture>> <</for>> <<if $player.penisExist>> | <<link [[Yourself|$passage]]>> <<playerPregnancy "pc" "human" true _womb undefined true>> <</link>> <</if>> <br><br> <<if $settings.pregnancyType is "realistic">> Add sperm from: <br> <<if $settings.playerPregnancyHumanEnabled>> <<link "An anonymous donor">> /* The sperm owner is always the same, anonymous donor, so it helps pregnancy from only one source */ <<recordSperm `{target: "pc", spermOwner: "anonymous donor", spermType: "human", genital: _womb}`>> <<replace "#cheatSpermSources">><span class="gold">$sexStats[_womb].sperm.length</span> <<= $sexStats[_womb].sperm.length is 1 ? "sperm source" : "sperm sources">><</replace>> <</link>> | <<link "A random person">> /* checks if males or females have penises, if there is no people with penises a foreigner inseminates PC */ <<set _impregnator to either("arbitrary", "aimless", "by-the-way", "casual", "driftless", "hit-or-miss", "fluky", "promiscuous", "slapdash", "irresponsible", "careless", "negligent") + " cheater ">> <<if $settings.femaleNPCPenisChance gt 0 and $settings.maleNPCVaginaChance lt 100>> <<set _impregnator += either("man", "boy", "woman", "girl")>> <<elseif $settings.femaleNPCPenisChance gt 0 and $settings.maleNPCVaginaChance gt 99>> <<set _impregnator += either("woman", "girl")>> <<elseif $settings.femaleNPCPenisChance lt 1 and $settings.maleNPCVaginaChance lt 100>> <<set _impregnator += either("man", "boy")>> <<else>> <<set _impregnator += "foreigner">> <</if>> <<recordSperm `{target: "pc", spermOwner: _impregnator, spermType: "human", genital: _womb}`>> <<replace "#cheatSpermSources">><span class="gold">$sexStats[_womb].sperm.length</span> <<= $sexStats[_womb].sperm.length is 1 ? "sperm source" : "sperm sources">><</replace>> <</link>> <</if>> <<if $settings.playerPregnancyBeastEnabled>> <<if $settings.playerPregnancyHumanEnabled>> | <</if>> <<link "A wolf">> <<if $settings.monsterChance gte random(1, 100) and ($hallucinations gte 1 or !$settings.monsterHallucinationsOnly)>> <<if $settings.femaleNPCPenisChance gt 0 and $settings.maleNPCVaginaChance lt 100>> <<set _impregnator to either("cheater wolfboy", "cheater wolfgirl")>> <<elseif $settings.femaleNPCPenisChance gt 0 and $settings.maleNPCVaginaChance gt 99>> <<set _impregnator to "cheater wolfgirl">> <<elseif $settings.femaleNPCPenisChance lt 1 and $settings.maleNPCVaginaChance lt 100>> <<set _impregnator to "cheater wolfboy">> <<else>> <<set _impregnator to "foreign cheater wolfperson">> <</if>> <<if _impregnator is "cheater wolfgirl">><<set _spermType to "wolfgirl">><<else>><<set _spermType to "wolfboy">><</if>> <<else>> <<if beastMaleChance() gt 0>> /* checks if there are male wolves, if not a foreigner wolf inseminates PC */ <<set _impregnator to "cheater wolf">> <<else>> <<set _impregnator to "foreign cheater wolf">> <</if>> <<set _spermType to "wolf">> <</if>> <<recordSperm `{target: "pc", spermOwner: _impregnator, spermType: _spermType, genital: _womb}`>> <<replace "#cheatSpermSources">><span class="gold">$sexStats[_womb].sperm.length</span> <<= $sexStats[_womb].sperm.length is 1 ? "sperm source" : "sperm sources">><</replace>> <</link>> <</if>> <<for _pregEnabled range _impregnatorNPC>> <<set _actor to $NPCName[_pregEnabled]>> <<if !_eligible.includes(_actor.nam)>> <<continue>> <</if>> <<switch _actor.nam>> <<case "Black Wolf">> <<if $blackwolfmonster>> <<set _spermType to (C.npc["Black Wolf"].pronoun is "f" ? "wolfgirl" : "wolfboy")>> <<else>> <<set _spermType to "wolf">> <</if>> <<case "Great Hawk">> <<if $greathawkmonster>> <<set _spermType to "harpy">> <<else>> <<set _spermType to "hawk">> <</if>> <<default>><<set _spermType to "human">> <</switch>> <<capture _actor, _spermType, _womb>> | <<link _actor.nam>> <<recordSperm `{target: "pc", spermOwner: _actor.nam, spermType: _spermType, genital: _womb}`>> <<replace "#cheatSpermSources">><span class="gold">$sexStats[_womb].sperm.length</span> <<= $sexStats[_womb].sperm.length is 1 ? "sperm source" : "sperm sources">><</replace>> <</link>> <</capture>> <</for>> <<if $player.penisExist>> | <<link "Yourself">> <<recordSperm `{target: "pc", spermOwner: "pc", spermType: "human", genital: _womb}`>> <<replace "#cheatSpermSources">><span class="gold">$sexStats[_womb].sperm.length</span> <<= $sexStats[_womb].sperm.length is 1 ? "sperm source" : "sperm sources">><</replace>> <</link>> <</if>> <</if>> <</if>> <</if>> <<else>> You are unable to get pregnant. <</if>> <</widget>> <<widget "cheatsImpregOptions">> <span class="gold">Impregnation</span> <<if $player.penisExist and _impregnatableNPC.length>> <br> You can impregnate <span class="gold">_impregnatableNPC.length</span> fertile <<= _impregnatableNPC.length is 1 ? "NPC" : "NPCs">>. <br><br> <<set _fertileNPC to 0>> <<for _pregEnabled range _impregnatableNPC>> <<set _actor to $NPCName[_pregEnabled]>> <<set _actorNameNoSpace to _actor.nam.replace(" ","")>> <<if !_eligible.includes(_actor.nam) or _actor.pregnancy.fetus.length>> <<continue>> <</if>> <<set _fertileNPC += 1>> <<= _actor.nam>>: <br> <<capture _actor>> <<set _linkText to "Impregnate">> <<link [[_linkText|$passage]]>> <<namedNpcPregnancy _actor.nam "pc" "human" true undefined true>> <</link>> <<if $settings.pregnancyType is "realistic">> <<set _linkText to "Inseminate">> - <<link _linkText>> <<recordSperm `{target: _actor.nam, spermOwner: "pc", spermType: "human", genital: "vagina"}`>> <<replace `"#cheatSpermSources" + _actorNameNoSpace`>>(<<= _actor.pregnancy.sperm.length>> doses)<</replace>> <</link>> <span @id="'cheatSpermSources' + _actorNameNoSpace" class="description">(<<= _actor.pregnancy.sperm.length>> doses)</span> <</if>> <<if $settings.fertilityCycleEnabled>> - <<link [[Set cycle to fertile days|$passage]]>> <<set _actor.pregnancy.cycleDay to _actor.pregnancy.cycleDangerousDay - 1>> <</link>> <</if>> <</capture>> <br> <</for>> <<if !_fertileNPC is 0>> You can't impregnate any other NPCs. <</if>> <<else>> <br> You can't currently impregnate any NPCs<<if !$player.penisExist>>, since you have no penis<</if>>. <</if>> <<for _pregEnabled range $NPCName>> /* Checks for any pregnant named NPC. */ <<if npcIsPregnant(_pregEnabled.nam) and _pregEnabled.pregnancy.type isnot "parasite">> <<set _pregnantNPC[_pregEnabled.nam] to $NPCName.indexOf(_pregEnabled)>> <</if>> <</for>> <<if Object.keys(_pregnantNPC).length>> <hr> <span class="gold">Pregnant NPCs</span> <br> <<listbox "_pregnantNPCId" autoselect>> <<optionsfrom _pregnantNPC>> <</listbox>> <br><br> <div id="cheatPregnancyNPC"> <<cheatPregnancyNPC _pregnantNPCId>> </div> <<cheatPregnancyNPCReset>> <</if>> <</widget>> <<widget "cheatPregnancyNPCStepper">> <<numberStepper "Pregnancy progress" _pregnancyNPC.timer { callback: (value, arr) => { $NPCName[arr[0]].pregnancy.timer = value; Wikifier.wikifyEval("<<updatesidebarimg>>"); }, values: [_args[0]], min: 0, max: $NPCName[_args[0]].pregnancy.timerEnd - 0.5, colorArr: ["--teal", "--pink"], activeButtons: ["single", "double"] }>> <</widget>> <<widget "cheatPregnancyNPC">> <<set _pregnancyNPC to $NPCName[_args[0]].pregnancy>> <<set $_fatherName to pregnancyNameCorrection(_pregnancyNPC.fetus[0].father)>> <<= $NPCName[_args[0]].nam>> is pregnant with <<= _pregnancyNPC.type is "wolf" ? "wolve" : _pregnancyNPC.type>>s. <<= $_fatherName === "yourself" ? "You are" : $_fatherName.toUpperFirst() + "is">> the father. <span id="cheatNPCPregnancyProgress"> <<cheatPregnancyNPCStepper _args[0]>> </span> <br> <<link "1st trimester">> <<set _pregnancyNPC.timer to _pregnancyNPC.timerEnd * .05>> <<replace "#cheatNPCPregnancyProgress">><<cheatPregnancyNPCStepper _args[0]>><</replace>> <</link>> - <<link "2nd trimester">> <<set _pregnancyNPC.timer to _pregnancyNPC.timerEnd * .35>> <<replace "#cheatNPCPregnancyProgress">><<cheatPregnancyNPCStepper _args[0]>><</replace>> <</link>> - <<link "3rd trimester">> <<set _pregnancyNPC.timer to _pregnancyNPC.timerEnd * .7>> <<replace "#cheatNPCPregnancyProgress">><<cheatPregnancyNPCStepper _args[0]>><</replace>> <</link>> - <<link "End of pregnancy">> <<set _pregnancyNPC.timer to _pregnancyNPC.timerEnd>> <<replace "#cheatNPCPregnancyProgress">><<cheatPregnancyNPCStepper _args[0]>><</replace>> <</link>> <br><br> <<link [[Clear pregnancy|$passage]]>> <<set _pregnancyNPC.type to null>> <<set _pregnancyNPC.fetus to []>> <<set _pregnancyNPC.waterBreaking to false>> <<set _pregnancyNPC.timer to null>> <<set _pregnancyNPC.timerEnd to null>> <<set _pregnancyNPC.npcAwareOf to null>> <<set _pregnancyNPC.pcAwareOf to null>> <<set _pregnancyNPC.potentialFathers to []>> <<set _pregnancyNPC.sperm to []>> <<set _pregnancyNPC.cycleDay to 1>> <<if _pregnantNPCId is 25>><<run delete C.npc.Alex.pregnancy.selfKnowledge>><</if>> <</link>> <</widget>> <<widget "changeCheatClass">> <<for _class range ["red", "pink", "purple", "blue", "lblue", "teal", "green", "gold"]>> <<removeclass _args[0] _class>> <</for>> <<if _args[1] is "On">><<addclass _args[0] "green">> <<elseif ["Off", "Disabled"].includes(_args[1])>><<addclass _args[0] "red">> <<else>><<addclass _args[0] _statColour>> <</if>> <</widget>> <<widget "cheatsBody">> <<set _bodyTypes to ["masculine", "feminine", "androgynous"]>> <<capture _i>> <<for _i = 0; _i < _bodyTypes.length; _i++>> <span @class="$player.gender_body is _bodyTypes[_i].charAt(0) ? 'goldLink' : 'unselected'"> <<link _bodyTypes[_i].toUpperFirst()>> <<set $player.gender_body to _bodyTypes[_i].charAt(0)>> <<replace "#statsBodyType">><<cheatsBody>><</replace>><<updatesidebarimg>> <</link>> </span> <<= _i lt _bodyTypes.length - 1 ? "|" : "">> <</for>> <</capture>> <</widget>> <<widget "cheatsBodySize">> <<set _size = [6000, 10000, 12000, 16000]>> <<set _label = ["Tiny", "Small", "Normal", "Large"]>> <<capture _i, _size, _label>> <<for _i = 0; _i < _size.length; _i++>> <span @class="$bodysize is _i ? 'goldLink' : 'link'"> <<link _label[_i]>> <<set $bodysize to _i>> <<set _physique_max_old to $physiquesize>> <<set $physiquesize to _size[_i]>> <<set $physique *= $physiquesize / _physique_max_old>> <<replace "#statsBodySize">><<cheatsBodySize>><</replace>> <</link>> </span> <<= _i lt _size.length - 1 ? "|" : "">> <</for>> <</capture>> <</widget>> <<widget "cheatsBodyShape">> <<capture _i>> <<for _i = 0; _i < setup.bodyShapes.length; _i++>> <span @class="$player.bodyshape is setup.bodyShapes[_i] ? 'goldLink' : 'unselected'"> <<link setup.bodyShapes[_i].toUpperFirst()>> <<set $player.bodyshape to setup.bodyShapes[_i]>> <<replace "#statsBodyShape">><<cheatsBodyShape>><</replace>><<updatesidebarimg>> <</link>> </span> <<= _i lt setup.bodyShapes.length - 1 ? "|" : "">> <</for>> <</capture>> <</widget>> <<widget "cheatsFaceStyle">> <<set _faceStyles to Object.values(setup.faceStyleOptions)>> <<capture _i>> <<for _i = 0; _i < _faceStyles.length; _i++>> <span @class="$facestyle is _faceStyles[_i] ? 'goldLink' : 'unselected'"> <<link _faceStyles[_i].toUpperFirst()>> <<set $facestyle to _faceStyles[_i]>> <<set $facevariant to "default">> <<replace "#statsFaceStyle">><<cheatsFaceStyle>><</replace>><<updatesidebarimg>> <<replace "#statsDemeanour">><<cheatsDemeanour>><</replace>><<updatesidebarimg>> <</link>> </span> <<= _i lt _faceStyles.length - 1 ? "|" : "">> <</for>> <</capture>> <</widget>> <<widget "cheatsDemeanour">> <<set _faceVariants to Object.values(setup.faceVariantOptions[V.facestyle])>> <<capture _i>> <<for _i = 0; _i < _faceVariants.length; _i++>> <span @class="$facevariant is _faceVariants[_i] ? 'goldLink' : 'unselected'"> <<link _faceVariants[_i].toUpperFirst()>> <<set $facevariant to _faceVariants[_i]>> <<replace "#statsDemeanour">><<cheatsDemeanour>><</replace>><<updatesidebarimg>> <</link>> </span> <<= _i lt _faceVariants.length - 1 ? "|" : "">> <</for>> <</capture>> <</widget>> <<widget "cheatsSpeechAttitude">> <<set _submissiveness = [1500, 1000, 500]>> <<set _attitude = ["meek", "neutral", "bratty"]>> <<capture _i, _submissiveness, _attitude>> <<for _i = 0; _i < _attitude.length; _i++>> <span @class="$speech_attitude is _attitude[_i] ? 'goldLink' : 'link'"> <<link _attitude[_i].toUpperFirst()>> <<set $speech_attitude to _attitude[_i]>> <<set $submissive to _submissiveness[_i]>> <<replace "#statsSpeechAttitude">><<cheatsSpeechAttitude>><</replace>> <</link>> </span> <<= _i lt _attitude.length - 1 ? "|" : "">> <</for>> <</capture>> <</widget>> <<widget "cheatsWeather">> <<set _weatherTypes to ["clear", "lightClouds", "heavyClouds", "lightPrecipitation", "heavyPrecipitation"]>> <<set _dayState to Weather.bloodMoon ? "blood" : Weather.dayState === "night" ? "night" : "day">> <<capture _i, _weatherState, _dayState, _name, _iconType, _weatherIcon>> <<for _i = 0; _i < _weatherTypes.length; _i++>> <<set _weatherState to _weatherTypes[_i]>> <<set _iconType = resolveValue(setup.WeatherGeneration.weatherTypes.find(w => w.name === _weatherState).iconType, "clear")>> <<set _weatherIcon to `<<iconUi 'weather/${_dayState}_${_iconType}.png'>>`>> <<set _weatherName to _weatherState.replace(/([a-z])([A-Z])/g, '$1 $2').toLowerCase().toUpperFirst()>> <<= _weatherIcon.replace("none", "rain")>> <span @class="Weather.name is _weatherState ? 'goldLink' : 'unselected'"> <<link _weatherName>> <<set Weather.set(_weatherState, true, 6 * 60)>> <<replace "#cheatsWeather">><<cheatsWeather>><</replace>> <</link>> </span> <<= _i lt _weatherTypes.length - 1 ? "<br>" : "">> <</for>> <</capture>> <</widget>> <<widget "cheatsSex">> <<set _reasons to []>> <<if $sexStats.vagina.menstruation.currentState isnot "normal">><<set _reasons.push($sexStats.vagina.menstruation.currentState is "recovering" ? "you still being in recovery from your last pregnancy" : "your pregnancy")>><</if>> <<if $earSlime.growth gt 50>><<set _reasons.push("your ear slime's current growth")>><</if>> <<if _inWardrobe>> <<if _reasons.length gte 1>> <span class="gold"><<= $player.sex is "m" ? "Penis" : $player.sex is "f" ? "Vagina" : "Hermaphrodite">></span> | This setting cannot be changed due to <<= _reasons.join(" and ")>>. <<else>> <<if $player.sex is "m">> <span class="gold">Penis</span> | <<else>> <<link "Penis">> <<wash>> <<removeparasite clit>> <<removeparasite penis>> <<set $vaginause to "none">> <<set $vaginastate to "none">> <<set $penisuse to 0>> <<set $penisstate to 0>> <<set $player.sex to "m">> <<set $player.ballsExist to true>> <<set $player.penisExist to true>> <<set $player.vaginaExist to false>> <<set $sexStats.vagina.menstruation.running = false>> <<updatesidebarimg>> <<replace "#statsGender">><<cheatsSex>><</replace>> <</link>> | <</if>> <<if $player.sex is "f">> <span class="gold">Vagina</span> | <<else>> <<link "Vagina">> <<wash>> <<removeparasite clit>> <<removeparasite penis>> <<set $vaginause to 0>> <<set $vaginastate to 0>> <<set $penisuse to "none">> <<set $penisstate to "none">> <<set $player.sex to "f">> <<set $player.ballsExist to false>> <<set $player.penisExist to false>> <<set $player.vaginaExist to true>> <<set $sexStats.vagina.menstruation.running = true>> <<updatesidebarimg>> <<replace "#statsGender">><<cheatsSex>><</replace>> <</link>> | <</if>> <<if $player.sex is "h">> <span class="gold">Both</span> <<else>> <<link "Both">> <<wash>> <<removeparasite clit>> <<removeparasite penis>> <<set $vaginause to 0>> <<set $vaginastate to 0>> <<set $penisuse to 0>> <<set $penisstate to 0>> <<set $player.sex to "h">> <<set $player.penisExist to true>> <<set $player.vaginaExist to true>> <<set $sexStats.vagina.menstruation.running = true>> <<updatesidebarimg>> <<replace "#statsGender">><<cheatsSex>><</replace>> <</link>> <</if>> <</if>> <<if $player.sex is "h">> <br> Hermaphrodite Balls: <span id="statsBallsExist"><<= $player.ballsExist ? "Present" : "Disabled">></span> | <<link "Change">> <<set $player.ballsExist to clone(!$player.ballsExist)>> <<updatesidebarimg>> <<replace "#statsGender">><<cheatsSex>><</replace>> <</link>> <</if>> <<else>> <span class="gold"><<= $player.sex is "m" ? "Penis" : $player.sex is "f" ? "Vagina" : "Hermaphrodite">></span> | <<if _reasons.length gte 1>>You cannot change your genitals due to <<= _reasons.join(" and ")>>. Normally, this<<else>>This<</if>> setting can only be changed when accessing your wardrobe. <</if>> <</widget>> <<widget "cheatSection">> <<switch _args[0]>> <<case "state">> <<numberStepper "Pain" $pain { callback: value => { V.pain = value; Wikifier.wikifyEval("<<updatesidebarimg>>") }, max: 200, reverse: true}>> <<numberStepper "Arousal" $arousal { callback: value => { V.arousal = value; Wikifier.wikifyEval("<<updatesidebarimg>>") }, max: 10000, reverse: true}>> <<numberStepper "Fatigue" $tiredness { callback: value => { V.tiredness = value; Wikifier.wikifyEval("<<updatesidebarimg>>") }, max: 2000, reverse: true}>> <<numberStepper "Stress" $stress { callback: value => { V.stress = value; Wikifier.wikifyEval("<<updatesidebarimg>>") }, max: 10000, reverse: true}>> <<numberStepper "Trauma" $trauma { callback: value => { V.trauma = value; Wikifier.wikifyEval("<<updatesidebarimg>>") }, max: 5000, reverse: true}>> <<numberStepper "Control" $control { callback: value => { V.control = value; Wikifier.wikifyEval("<<updatesidebarimg>>") }, max: 1000}>> <<numberStepper "Alcohol" $drunk { callback: value => { V.drunk = value; Wikifier.wikifyEval("<<updatesidebarimg>>") }, max: 1000, reverse: true}>> <<numberStepper "Drugs" $drugged { callback: value => { V.drugged = value; Wikifier.wikifyEval("<<updatesidebarimg>>") }, max: 1000, reverse: true}>> <<numberStepper "Hallucinogens" $hallucinogen { callback: value => { V.hallucinogen = value; Wikifier.wikifyEval("<<updatesidebarimg>>") }, max: 1000, reverse: true}>> <<case "crime">> <<for _cr range Object.keys(setup.crimeNames)>> <<capture _cr>> <<numberStepper toTitleCase(setup.crimeNames[_cr]) $crime[_cr].current { callback: (value, arr) => { V.crime[arr[0]].current = value }, max: 10000, step: 10, reverse: true, percentage: false, values: [_cr]}>> <</capture>> <</for>> <<unset _cr>> <<case "negative">> <<numberStepper "Sex" $fame.sex { callback: value => { V.fame.sex = value }, max: 2000, reverse: true}>> <<numberStepper "Prostitution" $fame.prostitution { callback: value => { V.fame.prostitution = value }, max: 2000, reverse: true}>> <<numberStepper "Rape" $fame.rape { callback: value => { V.fame.rape = value }, max: 2000, reverse: true}>> <<numberStepper "Bestiality" $fame.bestiality { callback: value => { V.fame.bestiality = value }, max: 2000, reverse: true}>> <<numberStepper "Pregnancy" $fame.pregnancy { callback: value => { V.fame.pregnancy = value }, max: Math.clamp(playerNormalPregnancyTotal(),1,8) * 250, step: 2000 / 100, percentage: false, reverse: true, valueFormat: (value) => `<b>${Math.round(((value - 0) / (2000 - 0)) * 100)}%</b>`}>> <<numberStepper "Impregnation" $fame.impreg { callback: value => { V.fame.impreg = value }, max: 2000, reverse: true}>> <<numberStepper "Exhibitionism" $fame.exhibitionism { callback: value => { V.fame.exhibitionism = value }, max: 2000, reverse: true}>> <<if playerNormalPregnancyTotal() lt 8>> <span class="description"><<set _pregsNeeded to Math.trunc(8-playerNormalPregnancyTotal())>> Your pregnancy fame is capped by the amount of pregnancies you've had. You need to get pregnant <span class="gold"><<number _pregsNeeded>></span> more <<= _pregsNeeded is 1 ? "time" : "times">> to reach maximum pregnancy fame.</span> <</if>> <<case "positive">> <<numberStepper "Combat" $fame.scrap { callback: value => { V.fame.scrap = value }, max: 2000}>> <<numberStepper "Kindness" $fame.good { callback: value => { V.fame.good = value }, max: 2000}>> <<numberStepper "Business" $fame.business { callback: value => { V.fame.business = value }, max: 2000}>> <<numberStepper "Socialite" $fame.social { callback: value => { V.fame.social = value }, max: 2000}>> <<numberStepper "Model" $fame.model { callback: value => { V.fame.model = value }, max: 2000}>> <<case "skills">> <<numberStepper "Skulduggery" $skulduggery "skulduggery" {max: 1000}>> <<numberStepper "Dance" $danceskill "danceskill" {max: 1000}>> <<numberStepper "Swimming" $swimmingskill "swimmingskill" {max: 1000}>> <<numberStepper "Athletics" $athletics "athletics" {max: 1000}>> <<numberStepper "Tending" $tending "tending" {max: 1000}>> <<numberStepper "Housekeeping" $housekeeping "housekeeping" {max: 1000}>> <<case "school">> /* normally, school traits are adjusted by the widget "school_skill_change" */ <<numberStepper "<<scienceicon>> Science" $science "science" { callback: (value) => wikifier('adjust_school_traits'), max: 1000 }>> <<numberStepper "<<mathicon>> Maths" $maths "maths" { callback: (value) => wikifier('adjust_school_traits'), max: 1000 }>> <<numberStepper "<<englishicon>> English" $english "english" { callback: (value) => wikifier('adjust_school_traits'), max: 1000 }>> <<numberStepper "<<historyicon>> History" $history "history" { callback: (value) => wikifier('adjust_school_traits'), max: 1000 }>> <<case "characteristics">> <<numberStepper "<<tficon angel>> Purity" $purity "purity" {max: 1000}>> <<numberStepper "<<symbol beauty>> Beauty" $beauty "beauty" {max: 10000}>> <<numberStepper "<<symbol physique>> Physique" $physique "physique" {max: $physiquesize}>> <<numberStepper "<<symbol willpower>> Willpower" $willpower "willpower" {max: 1000}>> <<numberStepper "<<symbol awareness>> Awareness" $awareness "awareness" {min: -200, max: 1000, reverse: true}>> <<numberStepper "<<symbol promiscuity>> Promiscuity" $promiscuity "promiscuity" {reverse: true}>> <<numberStepper "<<symbol exhibitionism>> Exhibitionism" $exhibitionism "exhibitionism" {reverse: true}>> <<numberStepper "<<symbol deviancy>> Deviancy" $deviancy "deviancy" {reverse: true}>> <<if numberOfEarSlime()>> <<numberStepper "<<symbol corruption>> Corruption" $earSlime.corruption { callback: value => {V.earSlime.corruption = value; Wikifier.wikifyEval("<<updatesidebarimg>>")}, reverse: true}>> <</if>> <<case "sex">> <<numberStepper "Seduction" $seductionskill "seductionskill" {max: 1000}>> <<numberStepper "Chest" $chestskill "chestskill" {max: 1000}>> <<numberStepper "Buttocks" $bottomskill "bottomskill" {max: 1000}>> <<if $player.vaginaExist>><<numberStepper "Vaginal" $vaginalskill "vaginalskill" {max: 1000}>><</if>> <<if $player.penisExist>><<numberStepper "Penile" $penileskill "penileskill" {max: 1000}>><</if>> <<numberStepper "Thighs" $thighskill "thighskill" {max: 1000}>> <<numberStepper "Oral" $oralskill "oralskill" {max: 1000}>> <<numberStepper "Hands" $handskill "handskill" {max: 1000}>> <<numberStepper "Anal" $analskill "analskill" {max: 1000}>> <<numberStepper "Feet" $feetskill "feetskill" {max: 1000}>> <<default>> ERROR: Skill issue. <</switch>> <</widget>><<widget "feats">> <<updateFeats>> <br> As you play through Degrees of Lewdity, you will obtain <span class="gold">feats</span> by completing different tasks. The more feats you earn, the more <span class="gold">VrelCoins</span> you will earn. When you start a new game, your VrelCoins can be used to purchase <span class="gold">feat boosters</span>. These boosters grant you bonuses in your next game. <br><br> This tab displays all the feats that have been unlocked in your <span class="gold">most recently loaded save</span>, which will carry over to your next playthrough. VrelCoins are earned linearly, over the course of a single playthrough. <span class="red">Save-hopping may cause your VrelCoins and unlocked feats to disappear from this page.</span> <br><br> Multiple runs are necessary in order to achieve all feats. If you have multiple saves with different feats earned, you will be able to combine these feats when you start a new game by using the <span class="gold">Import all feats</span> button on the Feat Boosters page. Keep this in mind if you are aiming for 100% completion! <br><br> Some feats display as earned as soon as you meet the requirements, while others won't trigger until the next in-game hour. Happy hunting! <br><br> <<if $feats.locked>> <span class="red">You can't earn feats as you have enabled cheats at some point.</span> <<elseif $debug is 1>> <span class="red">Feats are disabled during debug mode.</span> <<elseif $replayScene isnot undefined>> <span class="red">Feats are disabled during replay mode.</span> <<elseif $feats.soft or $feats.pregnancyLocked>> <span class="red">Some feats are locked in this current game.</span> <<else>> <span class="green">You can earn feats.</span> <</if>> <br><br> <<set _keysSetup to Object.keys(setup.feats)>> <<set _keysSave to Object.keys($feats.currentSave)>> <<set _keysAll to Object.keys($feats.allSaves).filter(f => !["points", "specialClothes"].includes(f))>> You currently have <<if $feats.allSaves.point is undefined>><span class="gold"><<print $feats.allSaves.points>></span><<else>><span class="red">0</span><</if>> <<pluralise $feats.allSaves.points "VrelCoin">>. You have obtained <<if _keysSave.length gte 1>><span class="gold"><<print _keysSave.length>></span> <<pluralise _keysSave.length "feat">> in this save and <</if>> <<if _keysAll.length gte 1>><span class="gold"><<print _keysAll.length>></span><<else>><span class="red">0</span><</if>> <<pluralise _keysAll.length "feat">> in total, out of a possible <span class="gold"><<print _keysSetup.length>></span>. <br><br> <<set $feats.filter to "General">> Filter by: <select id="featTypes" name="featTypes" onchange="V.feats.filter = this.value; Wikifier.wikifyEval('<<replace #featsList>><<featsList>><</replace>>')"> <option value="General" selected>General</option> <option value="Stats">Stats</option> <option value="Social">Social</option> <option value="Transformation">Transformation</option> <option value="Discoveries-Town">Discoveries - In Town</option> <option value="Discoveries-Other">Discoveries - Outside Town</option> <option value="Special">Special</option> <option value="Pregnancy">Pregnancy</option> <option value="All">Show All</option> <option value="General" hidden="hidden" selected="selected">General</option> </select> <br> <<set $feats.sort to "None">> Sort by: <select id="featSort" name="featSort" onchange="V.feats.sort = this.value; Wikifier.wikifyEval('<<replace #featsList>><<featsList>><</replace>>')"> <option value="None" selected>None</option> <option value="Date">Date</option> <option value="None" hidden="hidden" selected="selected">None</option> </select> <br> <<set $feats.shownew to true>> <input type="checkbox" checked name="showNew" onchange="V.feats.shownew = this.checked; Wikifier.wikifyEval('<<replace #featsList>><<featsList>><</replace>>')" /> Show New | <<set $feats.showold to true>> <input type="checkbox" checked name="showOld" onchange="V.feats.showold = this.checked; Wikifier.wikifyEval('<<replace #featsList>><<featsList>><</replace>>')" /> Show Old | <<set $feats.showmissing to true>> <input type="checkbox" checked name="showMissing" onchange="V.feats.showmissing = this.checked; Wikifier.wikifyEval('<<replace #featsList>><<featsList>><</replace>>')" /> Show Missing <br><br> <div id="featsList"> <<featsList>> </div> <</widget>> <<widget "featsList">> <<set _skip to []>> <<set _sorting to []>> <<for _i to 0; _i lt _keysSetup.length; _i++>> <<set _setup to setup.feats[_keysSetup[_i]]>> <<if !_setup.filter.includes($feats.filter)>> <<continue>> <</if>> <<if _keysSave.includes(_keysSetup[_i])>> <<if !$feats.shownew>><<continue>><</if>> <<set _owned to 2>> <<set _date to new Date($feats.currentSave[_keysSetup[_i]])>> <<elseif _keysAll.includes(_keysSetup[_i])>> <<if !$feats.showold>><<continue>><</if>> <<set _owned to 1>> <<set _date to new Date($feats.allSaves[_keysSetup[_i]])>> <<else>> <<if !$feats.showmissing>><<continue>><</if>> <<if _setup.hidden or _skip.includes(_setup.series)>> <<continue>> <</if>> <<if _setup.series isnot "">> <<set _skip.push(_setup.series)>> <</if>> <<set _owned to 0>> <<set _date to 0>> <</if>> <<set _sorting.push( { key: _keysSetup[_i], owned: _owned, date: _date } )>> <</for>> <<if $feats.sort is "Date">> <<set _sorting to _sorting.sort(function(a, b) { return b.date - a.date; })>> <</if>> <<for _i to 0; _i lt _sorting.length; _i++>> <<set _feat to _sorting[_i]>> <<set _setup to setup.feats[_feat.key]>> <div class="feat"> <div class="featImage"> <<if _feat.owned gt 0>> <<switch _setup.difficulty>> <<case 1>><img @src="'img/ui/CopperCoin'+(_feat.owned is 1 ? 'Dull':'')+'.png'" class="featCoin" @style="(_feat.owned is 1 ? 'filter:brightness(65%) contrast(85%);':'')"> <<case 2>><img @src="'img/ui/SilverCoin'+(_feat.owned is 1 ? 'Dull':'')+'.png'" class="featCoin" @style="(_feat.owned is 1 ? 'filter:brightness(75%) contrast(85%);':'')"> <<case 3>><img @src="'img/ui/GoldCoin'+(_feat.owned is 1 ? 'Dull':'')+'.png'" class="featCoin" @style="(_feat.owned is 1 ? 'filter:brightness(65%) contrast(85%);':'')"> <<case 4>><img @src="'img/ui/PlatinumCoin'+(_feat.owned is 1 ? 'Dull':'')+'.png'" class="featCoin" @style="(_feat.owned is 1 ? 'filter:brightness(65%) contrast(85%);':'')"> <<case 5>><img @src="'img/ui/JeweledCoin'+(_feat.owned is 1 ? 'Dull':'')+'.png'" class="featCoin" @style="(_feat.owned is 1 ? 'filter:brightness(65%) contrast(85%);':'')"> <</switch>> <<else>> <img class="dot"> <</if>> </div> <div class="featText"> <<if ($feats.pregnancyLocked and _setup.pregnancyLockable) or ($feats.pregnancySillyLocked and _setup.pregnancySillyLockable) or ($feats.soft and _setup.softLockable) or $feats.locked or ($gamemode is "soft" or $settings.allureModifier lt 1)>> <<set _titleColor to " red">> <<else>> <<set _titleColor to "">> <</if>> <<if _feat.owned gt 0 or _setup.hint is undefined>> <span @class="'title' + _titleColor"><<print _setup.title>></span> <span class="text"><<print _setup.desc>></span> <<else>> <span @class="'title' + _titleColor">?????</span> <span class="text"><<print _setup.hint>></span> <</if>> <br> <<if _feat.owned is 2>> <span class="text">Earned on: <<print _feat.date.toLocaleString(returnTimeFormat())>></span> <<elseif _feat.owned is 1>> <span class="text">Originally Earned on: <<print _feat.date.toLocaleString(returnTimeFormat())>></span> <</if>> </div> </div> <</for>> <</widget>> /*Feat Points Menu*/ <<widget "featsPointsMenu">> <div id="featsStats" class="settingsToggleIndent"> <<if $feats.allSaves.points is undefined or $feats.allSaves.points is 0>> You have earned a lifetime total of <span class="red">0 VrelCoins</span> and cannot purchase Feat Boosters. <br> <span class="black small-description">If this is incorrect, please load your last save and restart.</span> <<else>> You have earned a lifetime total of <span class="green"><<print $feats.allSaves.points>> <<pluralise $feats.allSaves.points "VrelCoin">>.</span> <</if>> </div> /*Have to do this due to the `????` names*/ <<set _listbox to '<<listbox "_upgradeNameID" autoselect>>'>> <<for $_i to 0; $_i lt _upgradeNames.length; $_i++>> <<if !$featsBoosts.hidden[_upgradeNames[$_i]]>> <<set _listbox += '<<option _visibleUpgradeNames[' + $_i + '] _visibleUpgradeIDs[' + $_i + ']>>'>> <</if>> <</for>> <<set _upgradeName to _upgradeNames[_upgradeNameID or 0]>> <<set _listbox += '<</listbox>>'>> <span class="gold settingsToggleIndent">Jump to a specific feat boost:</span> <<print _listbox>> <div class="settingsGridFeats"> <div class="settingsHeader"> <span id="featName"><<featName>></span> <br> <span style="font-size:80%;"> <<link "Previous">> <<set _upgradeNameID-->> <<if _upgradeNameID lt 0>> <<set _upgradeNameID to _upgradeNames.length - 1>> <</if>> <<if $featsBoosts.hidden[_upgradeNames[_upgradeNameID]]>> <<for _upgradeNameID; $featsBoosts.hidden[_upgradeNames[_upgradeNameID]]; _upgradeNameID-->> <</for>> <</if>> <<set _upgradeName to _upgradeNames[_upgradeNameID]>> <<updateFeatsPointsMenu>> <<updateFeatName>> <</link>> | <<link "Next">> <<set _upgradeNameID++>> <<if _upgradeNameID gte _upgradeNames.length>> <<set _upgradeNameID to 0>> <</if>> <<if $featsBoosts.hidden[_upgradeNames[_upgradeNameID]]>> <<for _upgradeNameID; $featsBoosts.hidden[_upgradeNames[_upgradeNameID]]; _upgradeNameID++>> <<if (_upgradeNameID + 1) gte _upgradeNames.length>> <<set _upgradeNameID to 0>> <<break>> <</if>> <</for>> <</if>> <<set _upgradeName to _upgradeNames[_upgradeNameID]>> <<updateFeatsPointsMenu>> <<updateFeatName>> <</link>> </span> </div> /*<<set _upgradeName to _upgradeNames[_upgradeNameID]>>*/ <div @id="'feats-' + _upgradeName" class="settingsToggleItem"> <<featsMenu _upgradeName>> <<if $featsBoosts.pointsUsed isnot 0>> <hr> Purchased Feat Boosts: <ul> <<for $_i to 0; $_i lt _upgradeNames.length; $_i++>> <<if $featsBoosts.upgrades[_upgradeNames[$_i]] gt 0>> <li> <<switch _upgradeNames[$_i]>> <<case "randomClothing">> <<= ($featsBoosts.clothingGender is "Either" ? "Male and Female" : $featsBoosts.clothingGender)>> <<print $featsBoosts.name[_upgradeNames[$_i]]>>: <span class="gold"><<print $featsBoosts.upgrades[_upgradeNames[$_i]]>></span> <<pluralise $featsBoosts.upgrades[_upgradeNames[$_i]] "coin">> <<case "specialClothing">> Special Clothing: <span class="gold"><<print $featsBoosts.upgrades[_upgradeNames[$_i]]>></span> <<pluralise $featsBoosts.upgrades[_upgradeNames[$_i]] "coin">> <br> <<foldout false "_unlockedSets">> <span class="gold">Unlocked Sets</span> <span class="descriptunlocked-hint"> <<= Object.keys($featsBoosts.specialClothesSets) .filter(k => $featsBoosts.specialClothesSets[k]) .map(k => `${k.replace(/_/g," ").toUpperFirst()}: <span class="gold">${setup.specialClothesSets[k].featCost}</span> coins`) .join("<br>")>> </span> <</foldout>> <<default>> <<= $featsBoosts.name[_upgradeNames[$_i]]>>: <span class="gold"><<print $featsBoosts.upgrades[_upgradeNames[$_i]]>></span> <<pluralise $featsBoosts.upgrades[_upgradeNames[$_i]] "coin">> <</switch>> </li> <</if>> <</for>> </ul> <<set _pointsRemaining to $feats.allSaves.points - $featsBoosts.pointsUsed>> You have<span class="green"> <<print _pointsRemaining>> <<pluralise _pointsRemaining "VrelCoin">></span> left to spend on Feat Boosts. <</if>> </div> </div> <</widget>> <<widget "updateFeatName">> <<replace #featName>> <<featName>> <</replace>> <</widget>> <<widget "featName">> <<set _details to $featsBoosts.upgradeDetails[_upgradeName]>> <<if _details.max gte 1>> <<switch _upgradeName>> <<case "money">> <span class="gold">Starting Money</span> <<case "grades">> <span class="gold">Starting School Grades</span> <<case "purity" "impurity">> <span class="gold" style="text-transform: capitalize;">Daily _upgradeName Boost</span> <<case "newLife">> <span class="gold">A New Life</span> <<case "aNewBestFriend">> <span class="gold">A New Best Friend</span> <<case "randomClothing">> <span class="gold">Random Clothing</span> <<case "tattoos">> <span class="gold">Starting Tattoos</span> <<case "specialClothing">> <span class="gold">Special Clothing</span> <<case "sexToys">> <span class="gold">Sex Toys</span> <<default>> <span class="gold" style="text-transform: capitalize;">Starting _upgradeName Grade</span> <</switch>> <<else>> <span class="red">?????</span> <</if>> <</widget>> <<widget "featsMenu">> <<set _name to _args[0]>> <<capture _name>> <<set _details to $featsBoosts.upgradeDetails[_name]>> <<set _maxUpgrades to _details.max>> <<set _purchasedUpgrades to _details.purchased>> <<if _maxUpgrades>> <<if !$feats.allSaves.points>> <span class="red">Earn some VrelCoins in order to purchase this feat boost!</span> <<else>> <<switch _name>> <<case "money">> You will start the game with <span class="green"> £<<= 5 + _purchasedUpgrades * _maxUpgrades * 25>>.00</span>. <<case "grades">> You will start the game with <<switch _details.purchased>> <<case 2>><span class="lblue">B</span> <<case 1>><span class="blue">C</span> <<default>><span class="purple">D</span> <</switch>> grades. <<case "purity">> <<if !_purchasedUpgrades>> You will always gain <span class="green">1</span> point of purity per day. Purchased purity boosts will increase your daily purity gain. <i>Actions you take can negate or amplify your purity gains.</i> <<else>> You will always gain <span class="green"><<print 1 + _purchasedUpgrades>></span> points of purity per day. <i>Actions you take can negate or amplify your purity gains.</i> <</if>> <<case "impurity">> <<switch _purchasedUpgrades>> <<case 0>> You will always gain <span class="green">1</span> point of purity per day. Purchased impurity boosts will counteract this daily purity gain. <i>Actions you take can negate or amplify your purity losses.</i> <<case 1>> You will always lose <span class="red">1</span> point of purity per day. This cancels out the daily point of purity you would normally gain at midnight. <i>Actions you take can negate or amplify your purity losses.</i> <<default>> You will always lose <span class="red"><<= _purchasedUpgrades - 1>></span> <<= _purchasedUpgrades is 2 ? "point" : "points">> of purity per day. <i>Actions you take can negate or amplify your purity losses.</i> <</switch>> <<case "newLife">> You will start the game <span @class="$featsBoosts.upgrades.newLife ? 'green' : 'red'"> <<= $featsBoosts.upgrades.newLife ? "with" : "without">> </span> a parasite. <<case "aNewBestFriend">> You will start the game <<switch $featsBoosts.upgrades.aNewBestFriend>> <<case 0>><span class='red'>without</span> an ear slime. <<case 10>><span class='green'>with</span> an ear slime. <<case 20>><span class='green'>with two</span> ear slimes. <</switch>> <<case "randomClothing">> You will start the game with <span class="gold"><<= 3 * _purchasedUpgrades>></span> random clothing items. <<case "tattoos">> <<if _purchasedUpgrades is 0>> You will start the game with <span class="red">no</span> tattoos. <<elseif _purchasedUpgrades is 1>> You will start the game with <span class="green">1</span> tattoo. <<else>> You will start the game with <span class="green">_purchasedUpgrades</span> tattoos. <</if>> <<case "specialClothing">> <<if _purchasedUpgrades is 0>> You will start the game with special clothing from the Forest Shop <span class='red'>locked</span>. <<elseif _purchasedUpgrades is 1>> You can purchase <span class="teal">up to half</span> of special clothing sets from the Forest Shop to start the game with them <span class="green">unlocked</span>, if you've unlocked it in any other save. <<else>> You can purchase <span class="teal">any amount</span> of special clothing sets from the Forest Shop to start the game with them <span class="green">unlocked</span>, if you've unlocked it in any other save. <</if>> <<case "sexToys">> You will start the game with <<if _purchasedUpgrades>> <span class="green"><<print 3 * _purchasedUpgrades>></span> sex toys. <<else>> <span class="red">no</span> sex toys. <</if>> <<default>> You will start the game with <<switch _purchasedUpgrades>> <<case 1>> _name at level <span class="pink">F+</span>. <<case 2>> _name at level <span class="purple">D</span>. <<case 3>> _name at level <span class="purple">D+</span>. <<case 4>> _name at level <span class="blue">C</span>. <<default>> <span class="red">no</span> proficiency in _name. <</switch>> <</switch>> <<if _name is "randomClothing">> <br> <span class="gold bold">Clothing Type: </span> <label><<print '<<radiobutton "$featsBoosts.clothingGender" "Either" ' + ($featsBoosts.clothingGender is "Either" ? "checked" : "") + '>>'>> Either</label> | <label><<print '<<radiobutton "$featsBoosts.clothingGender" "Male" ' + ($featsBoosts.clothingGender is "Male" ? "checked" : "") + '>>'>> Male</label> | <label><<print '<<radiobutton "$featsBoosts.clothingGender" "Female" ' + ($featsBoosts.clothingGender is "Female" ? "checked" : "") + '>>'>> Female</label> <br> <span class="gold bold">Enable Custom Colour (expect crazy results): </span> <label><<print '<<radiobutton "$featsBoosts.clothingCustomColors" false ' + ($featsBoosts.clothingCustomColors is false ? "checked" : "") + '>>'>> No</label> | <label><<print '<<radiobutton "$featsBoosts.clothingCustomColors" true ' + ($featsBoosts.clothingCustomColors is true ? "checked" : "") + '>>'>> Yes</label> <</if>> <<if !_details.exclusive or $featsBoosts.upgrades[_details.exclusive] is 0>> <<featsPointsMenuButtons _name _details>> <<else>> <span class="red">Remove _details.exclusive upgrades to make use of this upgrade.</span> <</if>> <<if _name is "tattoos">> <<set _totalTattoos to $featsBoosts.upgrades.tattoos / _details.cost>> <<if _tattooNumber is undefined or _tattooNumber gt _totalTattoos>> <<set _tattooNumber to Math.clamp(_totalTattoos, 1, $featsBoosts.upgradeDetails.tattoos.max)>> <</if>> <<if _totalTattoos gt 0>> <div class="settingsGrid" style="margin:10px 0px"> <div class="settingsHeader">Tattoo <<print _tattooNumber>> <br> <<if _tattooNumber gte 1 and _totalTattoos gt 1>> <span style="font-size:80%;"> <<link "Previous Tattoo">> <<set _tattooNumber-->> <<if _tattooNumber lte 0>> <<set _tattooNumber to _totalTattoos>> <</if>> <<replace #featsPointsMenu>><<featsPointsMenu>><</replace>> <</link>> | <<link "Next Tattoo">> <<set _tattooNumber++>> <<if _tattooNumber gt _totalTattoos>> <<set _tattooNumber to 1>> <</if>> <<replace #featsPointsMenu>><<featsPointsMenu>><</replace>> <</link>> </span> <</if>> </div> <div class="settingsToggleItem"> <span class="listMargin"> <span class="gold">Tattoo Type:</span> <<set _penOptions to ["Tattoo","Brand"]>> <<listbox `"$featsBoosts.tattoos["+_tattooNumber+"].pen"` autoselect>> <<optionsfrom _penOptions>> <</listbox>> </span> </div> <div class="settingsToggleItem"> <span class="gold">Tattoo Location:</span> <<set _bodyPartOptions to ["Forehead","Left cheek","Right cheek","Left shoulder","Right shoulder","Back","Breasts","Left bottom","Right bottom","Left thigh","Right thigh","Pubic"]>> <<for _l to 1; _l lte _totalTattoos; _l++>> <<if _tattooNumber is _l>> <<continue>> <</if>> <<run _bodyPartOptions.delete($featsBoosts.tattoos[_l].bodypart)>> <</for>> <<listbox `"$featsBoosts.tattoos["+_tattooNumber+"].bodypart"` autoselect>> <<option "Random">> <<optionsfrom _bodyPartOptions>> <</listbox>> </div> <div @id="_tattooNumber + 'tattooFilter'" class="settingsToggleItem"> <<tattooFilter>> </div> <div @id="_tattooNumber + 'tattooList'" class="settingsToggleItem"> <<tattooList>> </div> </div> <<run $(() => { const currentList = '#' + _tattooNumber + 'tattooList'; const currentFilterId = '#' + _tattooNumber + 'tattooFilter'; $(currentFilterId + ' select').on('input change', e => { new Wikifier(null, `<<print "${currentList}">> <<replace "${currentList}">><<tattooList>><</replace>>`); }).trigger('change'); })>> <</if>> <</if>> <<if _name is "sexToys">> <div id="sexToys"><<sexToysFeatUI>></div> <</if>> <<if _name is "aNewBestFriend" and $featsBoosts.upgradeDetails.aNewBestFriend.purchased gte 2>> <div id="aNewBestFriend"> <label>Earslime starting type: <<listbox "$featsBoosts.earSlimeType" autoselect>> <<option "Immature and passive" "immaturePassive">> <<option "Immature and aggressive" "immatureAggressive">> <<option "Partly grown and aggressive" "grownAggressive">> <</listbox>> </label> </div> <</if>> <<if _name is "specialClothing">> <div id="specialClothing"><<specialClothingFeatUI>></div> <</if>> <</if>> <<else>> <span class="red"><<print $featsBoosts.missing[_name]>></span> <</if>> <</capture>> <</widget>> <<widget "tattooFilter">> <span class="gold">Filter designs by:</span> <<set _tattooFilters = { "All" : "all", "Image" : "object", "Text" : "text", "Masculine" : "m", "Feminine" : "f", "Bestiality" : "bestiality", "Cattle" : "cattle", "Combat" : "combat", "Criminal" : "criminal", "Exhibitionism" : "exhibitionism", "Prostitution" : "prostitution", "Rape" : "rape", "Sex" : "sex", "Violence" : "violence", "Pregnancy" : "pregnancy", "Impreg" : "impreg", }>> <<listbox `"$tattooFilter"+_tattooNumber` autoselect>> <<optionsfrom _tattooFilters>> <</listbox>> <</widget>> <<widget "tattooList">> <span class="gold">Tattoo Design:</span> <<featsTattooOptions>> <<listbox `"$featsBoosts.tattoos["+_tattooNumber+"].tattoo"` autoselect>> <<option "Random">> <<optionsfrom _featsTattooOptions>> <</listbox>> <</widget>> <<widget "featsTattooOptions">> <<if _featsTattooAll is undefined>> <<set _featsTattooAll to []>> <<for _value range setup.bodywriting>> <<if _value.featSkip is true>> <<continue>> <</if>> <<run _featsTattooAll.push(_value.writing)>> <</for>> <</if>> <<set _featsTattooOptions to []>> <<switch _tattooNumber>> <<case 1>><<set _tattooFilter to $tattooFilter1>> <<case 2>><<set _tattooFilter to $tattooFilter2>> <<case 3>><<set _tattooFilter to $tattooFilter3>> <<case 4>><<set _tattooFilter to $tattooFilter4>> <<case 5>><<set _tattooFilter to $tattooFilter5>> <</switch>> <<for _value range setup.bodywriting>> <<if (_tattooFilter is "all" and _value.featSkip) or (_tattooFilter is "object" and (_value.featSkip or _value.type isnot _tattooFilter)) or (_tattooFilter is "text" and (_value.featSkip or _value.type isnot _tattooFilter)) or (_tattooFilter is "m" and (_value.featSkip or _value.gender isnot _tattooFilter)) or (_tattooFilter is "f" and (_value.featSkip or _value.gender isnot _tattooFilter)) or (_tattooFilter isnot "all" and _tattooFilter isnot "object" and _tattooFilter isnot "text" and _tattooFilter isnot "m" and _tattooFilter isnot "f" and (_value.featSkip or _value.special isnot _tattooFilter))>> <<continue>> <</if>> <<run _featsTattooOptions.push(_value.writing)>> <</for>> <</widget>> <<widget "featsPointsMenuButtons">> <<set _type to _args[0]>> <<set _details to _args[1]>> <<set _cost to _details.cost>> <<set _maxUpgrades to _details.max>> <<set _purchasedUpgrades to _details.purchased>> <<set _remainingUpgrades to _maxUpgrades - _purchasedUpgrades>> <<set _availableCoins to $feats.allSaves.points - $featsBoosts.pointsUsed>> <br><br> <span class="gold bold">Upgrades:</span> <br> <div style="margin-bottom:10px;"> <<switch _type>> <<case "money">> Each purchased upgrade will add <span class="green">£<<print _maxUpgrades * 25>></span> to your starting money. <<case "grades">> Each purchased upgrade will raise your starting school grades by <span class="green">one letter grade.</span> <<case "purity">> Each purchased upgrade will increase your daily purity by one point per level. <<case "impurity">> Each purchased upgrade will decrease your daily purity by one point per level. <<case "newLife">> <<if _maxUpgrades is 2>> Purchase the first upgrade to start the game with a hermaphrodite tentacle parasite. Purchase the second upgrade to give it perfect activity; otherwise it will have random activity. <<else>> Purchase the first upgrade to start the game with a hermaphrodite tentacle parasite with random activity. Acquire a second broodmother feat to give it perfect activity. <</if>> <<case "aNewBestFriend">> Purchase this upgrade to start the game with an ear slime parasite. <<case "randomClothing">> Each purchased upgrade gives you three random clothing items of the specified gender. <<case "tattoos">> Each purchased upgrade will allow you to get one starting tattoo or brand of your choice. <<case "specialClothing">> <<if _maxUpgrades is 2>> Select the first upgrade to purchase up to half of previously unlocked special clothes. Purchase the second rank to purchase any number of previously unlocked special clothes. <<else>> Select the first upgrade to purchase up to half of previously unlocked special clothes. Acquire a secret feat to purchase any number of previously unlocked special clothes. <</if>> <<case "sexToys">> Each purchased upgrade will give you three starting sex toys of your choice. <<default>> Each purchased upgrade will raise your _type level by <span class="green">one letter grade.</span> <</switch>> </div> <<capture _type _cost>> <div class="featButtonContainer"> <<if _purchasedUpgrades gte 1>> <div class="featButton roundl"> <<button "<span class='fa-icon fa-left'></span><span class='fa-icon fa-left'></span>">> <<set $featsBoosts.upgradeDetails[_type].purchased to 0>> <<set _cost to (-1 * _purchasedUpgrades * _cost)>> <<updateFeatsPointsMenu _type _cost>> <</button>> </div> <div class="featButton"> <<button "<span class='fa-icon fa-left'></span>">> <<set $featsBoosts.upgradeDetails[_type].purchased-->> <<set _cost to (-1 * _cost)>> <<updateFeatsPointsMenu _type _cost>> <</button>> </div> <<else>> <div class="featButtonGrey roundl"> <<button "<span class='fa-icon fa-left'></span><span class='fa-icon fa-left'></span>">> <</button>> </div> <div class="featButtonGrey"> <<button "<span class='fa-icon fa-left'></span>">> <</button>> </div> <</if>> <div class="gold featButton buttonDisable"> <<button "_purchasedUpgrades / _maxUpgrades">> <</button>> </div> <<if _purchasedUpgrades lt _maxUpgrades and (_availableCoins gte _cost)>> <div class="featButton"> <<button "<span class='fa-icon fa-right'></span>">> <<set $featsBoosts.upgradeDetails[_type].purchased++>> <<updateFeatsPointsMenu _type _cost>> <</button>> </div> <<else>> <div class="featButtonGrey"> <<button "<span class='fa-icon fa-right'></span>">> <</button>> </div> <</if>> <<if _purchasedUpgrades lt _maxUpgrades and (_availableCoins gte (_remainingUpgrades * _cost))>> <div class="featButton roundr"> <<button "<span class='fa-icon fa-right'></span><span class='fa-icon fa-right'></span>">> <<set $featsBoosts.upgradeDetails[_type].purchased to _maxUpgrades>> <<set _cost to (_remainingUpgrades * _cost)>> <<updateFeatsPointsMenu _type _cost>> <</button>> </div> <<else>> <div class="featButtonGrey roundr"> <<button "<span class='fa-icon fa-right'></span><span class='fa-icon fa-right'></span>">> <</button>> </div> <</if>> </div> <<if _type isnot "specialClothing">> <div class=" black small-description" style="margin-top:10px;"> (<span class="gold">_details.cost <<pluralise _details.cost "VrelCoin">></span> per upgrade) </div> <</if>> <<if _type is "tending">> <div style="margin-top:10px;"> <span class="green">Green Thumb</span> - More bountiful crops and no decay when using fertiliser. Start with one fertiliser. <div class="featButton roundl roundr" style="margin-top:5px;"> <<if $feats.allSaves.points - $featsBoosts.pointsUsed gte $featsBoosts.upgradeDetails.greenThumb.cost and !$featsBoosts.upgrades.greenThumb>> <<button "Start with this trait">> <<updateFeatsPointsMenu "greenThumb" $featsBoosts.upgradeDetails.greenThumb.cost>> <</button>> <<elseif $featsBoosts.upgrades.greenThumb>> <<button "Remove this trait">> <<updateFeatsPointsMenu "greenThumb" $featsBoosts.upgradeDetails.greenThumb.cost "subtract">> <</button>> <</if>> </div> </div> <div class=" black small-description" style="margin-top:10px;">(<span class="gold"><<print "$featsBoosts.upgradeDetails.greenThumb.cost">> <<pluralise $featsBoosts.upgradeDetails.greenThumb.cost "VrelCoin">></span> to purchase)</div> <</if>> <</capture>> <</widget>> <<widget "sexToysFeatUI">> <<set _totalToys to $featsBoosts.upgrades.sexToys / 10>> <<if _toyNumber is undefined or _toyNumber gt _totalToys>> <<set _toyNumber to 0>> <</if>> <<if _toys is undefined>> <<set _toys to {}>> <<run Object.values(setup.sextoys.filter(item => !item.shop.includes("forest"))).forEach(toy => T.toys[toy.namecap] = toy.index)>> <</if>> <<if _totalToys gt 1>> <div class="settingsGrid" style="margin:10px 0px"> <div class="settingsHeader">Toy <<print _toyNumber+1>> <br> <<if _toyNumber gte 0 and _totalToys gt 1>> <span style="font-size:80%;"> <<link "Previous Toy">> <<set _toyNumber-->> <<if _toyNumber lt 0>> <<set _toyNumber to _totalToys-1>> <</if>> <<replace #featsPointsMenu>><<featsPointsMenu>><</replace>> <</link>> | <<link "Next Toy">> <<set _toyNumber++>> <<if _toyNumber+1 gt _totalToys>> <<set _toyNumber to 0>> <</if>> <<replace #featsPointsMenu>><<featsPointsMenu>><</replace>> <</link>> </span> <</if>> </div> <div class="settingsToggleItem"> <span class="gold">Sex Toy:</span> <div id="sexToysFeatUIIndex"> <<listbox "$featsBoosts.sexToys[_toyNumber].index" autoselect>> <<option "Random" -1>> <<optionsfrom _toys>> <</listbox>> </div> </div> <div id="sexToysFeatUIColour"> <<sexToysFeatUIColour>> </div> </div> <<run $(() => { $('#sexToysFeatUIIndex select').on('input change', e => { new Wikifier(null, "<<replace '#sexToysFeatUIColour'>><<sexToysFeatUIColour>><</replace>>"); }).trigger('change') })>> <</if>> <</widget>> <<widget "sexToysFeatUIColour">> <<if $featsBoosts.sexToys[_toyNumber].index isnot undefined and $featsBoosts.sexToys[_toyNumber].index isnot -1>> <<set _toyColours to {}>> <<set _selectedToy to Object.values(setup.sextoys).find(toy => toy.index === V.featsBoosts.sexToys[T.toyNumber].index)>> <<if _selectedToy and _selectedToy.colour_options and _selectedToy.colour_options.length>> <<run _selectedToy.colour_options.forEach(colour => _toyColours[colour] = colour)>> <</if>> <<else>> <<set _toyColours to {}>> <</if>> <<if Object.values(_toyColours).length gt 1>> <div class="settingsToggleItem"> <span class="gold">Colour:</span><br> <<listbox "$featsBoosts.sexToys[_toyNumber].colour" autoselect>> <<option "Random" -1>> <<optionsfrom _toyColours>> <</listbox>> </div> <</if>> <</widget>> <<widget "specialClothingFeatUI">> <<if $featsBoosts.upgradeDetails.specialClothing.purchased>> <<set _totalSpecialClothesSets to getSpecialSets(set => set.feat)>> <<set _totalUnlockedSets to $feats.allSaves.specialClothes>> <<set _totalUnlockedSetsLimit to $featsBoosts.upgradeDetails.specialClothing.purchased gte 2 ? _totalUnlockedSets.length : Math.ceil(_totalUnlockedSets.length / 2)>> <<if !Object.values($featsBoosts.specialClothesSets).length>> <!-- Populate object --> <<for $_labelPop, $_valuePop range _totalSpecialClothesSets>> <<set $featsBoosts.specialClothesSets[$_valuePop] to false>> <</for>> <</if>> <<run $(() => { $('[data-limit-group]').first().trigger('change.macros') })>> <br> <div class="settingsHeader" style="margin-bottom: 0.5em">Sets To Unlock</div> <form> <fieldset> <legend>Select up to _totalUnlockedSetsLimit sets</legend> <div class="red" style="padding-left: 10px">If you find that certain sets aren't unlocked when they should be, try loading a save with the set unlocked, move a passage, and save.</div> <div class="settingsGridSmall"> <<for $_labelC, $_valueC range $featsBoosts.specialClothesSets>> <label> <div class="settingsToggleItem" id="specialClothesFeatBooster"> <<capture $_labelC>> <<set $_clothingObject to clone(setup.specialClothesSets[$_labelC])>> <<set $_listFromSets to []>><<set $_hints to []>> <<set $_clothesToPush to setup.specialClothes.filter(fromSets => fromSets.sets.includes($_labelC))>> <<run $_clothesToPush.forEach(clothing => $_listFromSets.push(clothing.name.toUpperFirst()))>> <<set $_canAfford to ($feats.allSaves.points - $featsBoosts.pointsUsed) - $_clothingObject.featCost gte 0>> <<set $_costDisplay to "<<print setup.specialClothesSets[$_labelC].featCost>>"+ ($options.images is 1 ? " <img class='imgButton' src='img/ui/GoldCoin.gif'/>" : "Vrelcoins")>> <<if _totalUnlockedSets.includes($_labelC)>> <<if $_canAfford or $featsBoosts.specialClothesSets[$_labelC]>> <<set $_listText to "Includes: <span class='green'>" + formatList($_listFromSets, 'and', true) + "</span>">> <<checkbox "$featsBoosts.specialClothesSets[$_labelC]" false true autocheck "specialClothingFeatSets" _totalUnlockedSetsLimit "<span class='red'>Selection limit reached!</span>">> <<else>> <<set $_listText to "<span class='red'>Not enough VrelCoins!</span><br> Includes: <span class='green'>" + formatList($_listFromSets, 'and', true) + "</span>">> <input type="checkbox" class="black tooltip-anchor" @tooltip="Includes: $_listText" disabled> <</if>> <<if $_clothingObject.icon is "clothes">> <<set $_cIcon to clone(setup.clothes[$_clothingObject.iconSlot][$_clothingObject.iconIndex])>> <<set $_cIcon.colour to $_clothingObject.iconColor>><<set $_cIcon.accessory_colour to $_clothingObject.iconAccColor>> <<clothingicon $_cIcon $_clothingObject.iconSlot>> <<else>> <<set $_cIcon to $_clothingObject.icon>> <<icon $_cIcon>> <</if>> <span class="gold tooltip-anchor" @tooltip="$_listText"><<print $_labelC.replace(/_/g," ").toUpperFirst()>></span> <div class="gold" style="display:inline-block">($_costDisplay)</div> <<else>> <<if setup.specialClothesSets[$_labelC].subsetOf>> <<run setup.specialClothesSets[$_labelC].subsetOf.forEach(subset => { if (setup.specialClothesSets[subset].hint) $_hints.pushUnique(setup.specialClothesSets[subset].hint); })>> <</if>> <<if setup.specialClothesSets[$_labelC].hint>> <<set $_hints.pushUnique(setup.specialClothesSets[$_labelC].hint)>> <</if>> <<set $_hintText to $_hints.length ? "<br><span class='black'>Hint: " + formatList($_hints, 'or', true).toUpperFirst() + "</span>" : "">> <<set $_listText to "<span class='red'>Not earned!</span><br> Includes: <span class='black'>" + formatList($_listFromSets, 'and', true) + "</span>" + $_hintText>> <input type="checkbox" class="black tooltip-anchor" @tooltip="Includes: $_listText" disabled> <<lockicon>> <span class="black tooltip-anchor" @tooltip="Includes: $_listText"><<print $_labelC.replace(/_/g," ").toUpperFirst()>></span> <div class="black" style="display:inline-block">($_costDisplay)</div> <</if>> <</capture>> </div> </label> <</for>> </div> </fieldset> </form> <<run $(document).off("change.specialClothesFeat").on("change.specialClothesFeat", 'input[type="checkbox"][data-limit-group="specialClothingFeatSets"]', function () { const id = $(this).attr("id").replace(/^checkbox-featsboostsspecialclothessets-/, "").replace(/-/g, "_"); if ($(this).prop("checked")) { new Wikifier(null, `<<updateFeatsPointsMenu "specialClothing" setup.specialClothesSets["${id}"].featCost>>`); } else { new Wikifier(null, `<<updateFeatsPointsMenu "specialClothing" setup.specialClothesSets["${id}"].featCost "subtract">>`); } } ); >> <</if>> <</widget>> <<widget "updateFeatsPointsMenu">> <<set _cost to _args[2] is "subtract" ? _args[1] * -1 : _args[1]>> <<if $feats.allSaves.points - $featsBoosts.pointsUsed gte _cost or _cost lt 0>> <<set $featsBoosts.upgrades[_args[0]] += _cost>> <<set $featsBoosts.pointsUsed += _cost>> <<set $featsBoosts.pointsUsed = Math.max(0, $featsBoosts.pointsUsed)>> <</if>> <<replace #featsPointsMenu>> <<featsPointsMenu>> <</replace>> <</widget>> /* Fake feats, for when you want to gaslight the player. Used for the Wraith, primarily */ <<widget "displayFeatFake">> <<if _args[0] and $feats.locked is false and $cheatsEnabled is false and $debug is 0 and $gamemode isnot "soft" and $settings.allureModifier gte 1>> <<silently>> <<if _featsCount is undefined>> <<set _featsCount to 0>> <<else>> <<set _featsCount++>> <</if>> <</silently>> <div @id="'feat-' + _featsCount" class="feat feat-overlay"> <div class="featImage"> <<switch setup.feats[_args[0]].difficulty>> <<case 1>><img src="img/ui/CopperCoinFake.gif" class="featCoin"> <<case 2>><img src="img/ui/SilverCoinFake.gif" class="featCoin"> <<case 3>><img src="img/ui/GoldCoinFake.gif" class="featCoin"> <<case 3>><img src="img/ui/PlatinumCoinFake.gif" class="featCoin"> <<case 3>><img src="img/ui/JeweledCoinFake.gif" class="featCoin"> <</switch>> </div> <div class="featText"> <<switch _args[0]>> <<case "It Belongs in a Museum">> <span class="title">It Belongs in a Museum?</span> <<default>> <<if setup.feats[_args[0]].title.endsWith("?")>> <span class="title"><<print setup.feats[_args[0]].title>></span> <<else>> <span class="title"><<print setup.feats[_args[0]].title>>?</span> <</if>> <</switch>> <br> <<switch _args[0]>> <<case "No More Control">> <span class="text">You don't know how to get lewder... right?</span> <<case "Teachers Nightmare">> <span class="text">You are a terror... right?</span> <<case "Anti-Social Moth">> <span class="text">Who needs friends... right?</span> <<default>> <<if setup.feats[_args[0]].desc.endsWith(".")>> <span class="text"><<print setup.feats[_args[0]].desc>>.. right?</span> <<else>> <span class="text"><<print setup.feats[_args[0]].desc>>... right?</span> <</if>> <</switch>> </div> <div @id="'closeFeat-' + _featsCount" class="closeFeat" @onclick="'closeFeats('+ _featsCount +')'"></div> </div> <</if>> <</widget>><<widget "journal">> <br> <<print "It is " + getFormattedDate(Time.date) + ", " + Time.year + ".">> <ul class="journal"> <<if Time.days lt 0>> <<if Time.days lt -365>> <<set _yearsBefore = Math.floor(Time.startDate.year - Time.year)>> <li>It is around <span class="gold"><<print _yearsBefore>></span> <<pluralise _yearsBefore "year">> before you started the game.</li> <<else>> <<set _daysBefore = Time.days * -1>> <li>It is <span class="gold"><<print _daysBefore>></span> <<pluralise _daysBefore "day">> before you started the game.</li> <</if>> <<else>> <li>It has been <span class="gold"><<print Time.days>></span> <<pluralise Time.days "day">> since the game started.</li> <<if $hardmodedays isnot undefined>> <li>You survived <span class="gold">$hardmodedays</span> <<pluralise $hardmodedays "day">> on hard mode.</li> <br> <</if>> <li>The game started in <<print Time.getSeason(new DateTime($startDate))>>.</li> <li>It is <<print Time.season>>.</li> <li><<schoolterm>></li> <</if>> </ul> <<if $options.images is 1>> <div class="map"> <<if Weather.isSnow>> <img id="world_map" src="img/misc/world_map_winter.png"> <<else>> <img id="world_map" src="img/misc/world_map.png"> <</if>> </div> <</if>> <<if $hc>> <hr> <h1 class="header gold bold">Hopeless Cycle</h1> <<if $tags.includes("ending")>> All stories must end. <<elseif Time.isBloodMoon()>> The blood moon looms. This is it. <<else>> <<set $_daysUntilBloodMoon to Time.lastDayOfMonth - Time.monthDay>> <<if $_daysUntilBloodMoon is 0>> Night of the blood moon. <<elseif $_daysUntilBloodMoon is 1>> One day until the blood moon. <<else>> <<Number $_daysUntilBloodMoon>> days until the blood moon. <</if>> <br> <<if $prisonerEvents.includes("health")>> <ul class="journal"> <<if $hc.nightBreakIn is "heard">> <li>Someone plans to sneak into <<= $prisoner.name>>'s cell late at night.</li> <</if>> <<if $prisonerEvents.includes("raped") and !$prisonerEvents.includes("rapedReported")>> <li>You can inform the Hand of <<= $prisoner.name>>'s defilement in the prayer room.</li> <</if>> <<if $prisonerEvents.includes("brand")>> <li><<= $prisoner.name.toUpperFirst()>>'s burns can be treated with herbs from the garden and <i>clean</i> water.</li> <</if>> <<if $hc.dogs>> <li>House Romilly's dogs are present in the garden.</li> <</if>> <<if $hc.wellTainted>> <li>The well's water is foul. Water can be sourced from the lake in the forest instead.</li> <</if>> </ul> <</if>> <<if Object.values($hcChallenge).count(true)>> <<if $hcChallengeRandom.blind>> <<if $hcChallengeRandom.min is $hcChallengeRandom.max>> You selected <<number Object.values($hcChallenge).count(true)>> <span class="blue">unknown</span> challenges. <<else>> You selected between <<number $hcChallengeRandom.min>> and <<number $hcChallengeRandom.max>> <span class="blue">unknown</span> challenges. <</if>> <<else>> <<hcChallengeSummary "journal">> <</if>> <</if>> <</if>> <</if>> <<if $statFreeze>> <<exit>> <</if>> <<if $rentday isnot undefined || $rentmoney isnot undefined>> <hr> <h1 class="header gold bold">Time-Sensitive</h1> <ul class="journal"> <<if $avery_mansion>>/* Is Avery paying for the PC? */ <<if $avery_mansion.rage.assess gte 9>> <<set _avery_pay to false>> <<else>> <<set _avery_pay to true>> <</if>> <<else>> <<set _avery_pay to false>> <</if>> <<if !_avery_pay>> <<if $rentday isnot undefined>> <<if $renttime lte 0>> <li>Bailey is looking for you and wants <<printmoney $rentmoney>><<babyRentDisplay " plus " " for not looking after your children" "gold">>.</li> <<else>> <li>Bailey wants <<printmoney $rentmoney>> on <<rentday>><<babyRentDisplay " plus " " for not looking after your children" "gold">>.</li> <</if>> <<elseif $rentmoney isnot undefined>> <li>Bailey wants <<printmoney $rentmoney>><<babyRentDisplay " plus " " for not looking after your children" "gold">>.</li> <</if>> <</if>> <<if $syndromeeden is 1 and $edenfreedom gte 1 and $location isnot "cabin">> /* Another parameter is planned, something like $edenpunishment. It is meant to only trigger the journal note after the player has been given a reason to be wary of breaking Eden's rules. */ <<if edenFreedomStatus() is 0>> <li>You are expected back at Eden's cabin <<if $edenfreedom is 1>> <<if $edendays is 2>> <span class="pink">tonight, before midnight</span>. <<else>> /* $edendays is 1 */ by <span class="gold">tomorrow night</span>, at the latest. <</if>> <<else>> /* $edenfreedom is 2 or more */ <<if $edendays is 7>> <span class="pink">tonight, before midnight</span>. <<elseif $edendays is 6>> by <span class="gold">tomorrow night</span>, at the latest. <<else>> /* $edendays is between 1 and 5 */ in <span class="gold"><<print ["seven", "six", "five", "four", "three", "two"][$edendays]>></span> days, at the latest. <</if>> <</if>></li> <<elseif edenFreedomStatus() is 1 and (($edenfreedom is 1 and $edendays lt 4) or ($edenfreedom is 2 and $edendays lt 10))>> /* Warning lasts for one day on freedom 1 and two days on freedom 2 */ <li>You have <span class="red">failed</span> to return to Eden on time. <<nnpc_He "Eden">> will have noticed by now.</li> <</if>> <</if>> <<if $avery_mansion?.schedule isnot "away" and $averydate is 1 and Time.hour lte 21 and $averydatedone isnot 1>> <li>You have a date scheduled with Avery <span class="pink"><<this_saturday>></span>. <<nnpc_He "Avery">>'ll wait for you <<= $avery_mansion ? "in the garage" : "on Domus Street">> between <span class="gold"><<ampm 20 00>></span> and <span class="gold"><<ampm 21 00>></span>.</li> <</if>> <<if $harper_appointments.enabled or $schoolPsych is 1>> <li>You <<if $harper_appointments.enabled>>have an<<else>>may get an<</if>> appointment with Doctor Harper <<if Time.weekDay is 6>> <<if $daily.harperVisit is 1>> next <span class="gold">Friday</span>. <<else>> <span class="pink">today</span>. <</if>> <<else>> on <span class="gold">Friday</span>. <</if>></li> <</if>> <<if $brothelshowdata.type isnot "none" and $brothelshowdata.intro>> <li>You're expected to perform a $brothelshowdata.type show at the brothel <<if Time.weekDay is 6>> <<if $brothelshowdata.done>> next <span class="gold">Friday</span>. <<else>> <span class="pink">today</span>. <</if>> <<else>> on <span class="gold">Friday</span>. <</if>></li> <</if>> <<if $brothel_escortjob isnot undefined>> <<if ($brothel_escortjob.done is undefined or $brothel_escortjob.escape is undefined) and $brothel_escortjob.accept is true and $brothel_escortjob.missed isnot true>> <<set _date to new DateTime($brothel_escortjob.date)>> <li>You have an escort job scheduled. You're expected to be in front of the brothel <<if Time.monthDay is _date.day>> <span class="pink">today</span> <<elseif Time.date.dayDifference(_date) is 1>> <span class="gold">tomorrow</span> <<elseif Time.date.dayDifference(_date) gte 7>> next <span class="gold">_date.weekDayName</span> <<else>> on <span class="gold">_date.weekDayName</span> <</if>> at <span class="gold"><<ampm _date.hour>></span>.</li> <</if>> <</if>> <<if $community_service gte 1>> <<if $community_service_done is 1>> <li><span class="lblue">You've performed your community service today.</span></li> <<elseif ["asylum","prison"].includes($location)>> <li>Your sentence of community service has been put on hold due to your <<if $location is "prison">>incarceration<<else>>treatment<</if>>.</li> <<elseif Time.hour gte 21>> <li>It's too late in the day to perform your community service.</li> <<elseif Time.hour lt 6>> <li>The police station is expecting you later for your daily community service.</li> <<else>> <li>The police station is expecting you for your daily community service.</li> <</if>> <<if $community_service is 1>> <li>You have <span class="purple">one day</span> of community service remaining.</li> <<else>> <li>You have <span class="pink">$community_service</span> days of community service remaining.</li> <</if>> <</if>> <<if $wrenHeist is true and Time.hour lte 20 and $wrenHeistDance.attended isnot true>> <li>You are supposed to meet Wren <span class="pink">tonight</span> between <span class="gold"><<ampm 19 00>></span> and <span class="gold"><<ampm 21 00>></span>. <<nnpc_He "Wren">> gave you directions to the mansion on Danube Street.</li> <</if>> <<if $smuggler_known is 1 and $smuggler_timer gte 0>> <li>Smugglers are bringing something valuable into town <<if $smuggler_timer is 0>> <span class="pink">tonight</span>, before midnight. <<elseif $smuggler_timer is 1>> <span class="gold">tomorrow</span>, before midnight. <<else>> <<nDays $smuggler_timer>>. <</if>> <<if $smuggler_location is "forest">> They're bringing it through the forest. <<elseif $smuggler_location is "sewer">> They're bringing it through the old sewers. <<elseif $smuggler_location is "beach">> They plan to land at that rock near the beach. <<elseif $smuggler_location is "bus">> They're sneaking it in on a bus. <</if>> </li> <</if>> <<if $farm_stage gte 7>> <li>Remy will attack the farm <<if $farm_attack_timer is 0>> <span class="pink">tonight</span>. <<else>> <<nDays $farm_attack_timer>>. <</if>> <<nnpc_He Remy>>'ll arrive between <span class="gold"><<ampm 21 00>></span> and <span class="gold">midnight</span>. </li> <</if>> <<if $temple_rank is "initiate" or $temple_rank is "monk" or $temple_rank is "priest">> <li>You are <<print $temple_rank is "initiate" ? "an initiate at" : "a <<temple_title>> of">> the temple. <<if $temple_chastity_timer lte 0>> <span class="pink">You have a chastity exam due.</span> <<elseif $temple_chastity_timer is 1>> You have a chastity exam due <span class="purple">tomorrow</span>. <<else>> You have a chastity exam due <<nDays $temple_chastity_timer>>. <</if>> You will receive an <span class="gold">allowance</span> when passing the exam. </li> <</if>> <<if $studyBooks isnot undefined and ($studyBooks?.rented isnot "none" or $studyBooks?.stolen isnot "none")>> <li> <<if $studyBooks.rented isnot "none">> <<switch $studyBooks.rented>> <<case "Pinch">> <<if $per_npc.pinch isnot undefined>> <<set _book to `copy of \"How ${$per_npc.pinch.pronoun is "m" ? "Mr" : "Ms"} Pinch Groped Christmas\"`>> <<else>> <<set _book to "olive-coloured book">> <</if>> <<case "Raul and Janet">> <<set _book to `copy of \"${$studyBooks.rented}\"`>> <<case "English" "science" "maths" "history">> <<set _book to $studyBooks.rented + " textbook">> <</switch>> <<if Time.schoolTerm>> <<if $book_rent_timer is 0>> <span class="blue">You have <<a _book>> due.</span> <<elseif $book_rent_timer lt 0>> <span class="red">You have <<a _book>> overdue.</span> <<else>> You have <<a _book>> due in <span class="gold">$book_rent_timer</span> <<pluralise $book_rent_timer "day">>. <</if>> <</if>> <</if>> <<if $studyBooks.stolen isnot "none">> <<set _colour to $bookStolenKnown gte 3 ? "red" : $bookStolenKnown is 2 ? "pink" : "white">> <<switch $studyBooks.stolen>> <<case "Pinch">> <<if $per_npc.pinch isnot undefined>> <span @class=_colour>You've stolen a copy of "How <<= $per_npc.pinch.pronoun is "m" ? "Mr" : "Ms">> Pinch Groped Christmas".</span> <<else>> <span @class=_colour>You've stolen an olive-coloured book.</span> <</if>> <<case "Raul and Janet">> <span @class=_colour>You've stolen a copy of "$studyBooks.stolen".</span> <<case "English" "science" "maths" "history">> <span @class=_colour>You've stolen <<a $studyBooks.stolen>> textbook.</span> <<default>> <</switch>> <</if>> <<if !Time.schoolTerm and $studyBooks.rented isnot "none">> <<if $studyBooks.rented>>You have <<a _book>> checked out.<</if>> <span class="blue">Books are not due over school break!</span> <</if>> </li> <</if>> <<if $gwylanSeen?.includes("ritual_beast")>> <li> <<run statusCheck("Gwylan")>> <<if $gwylan.timer.ritual and Time.date.dayDifference(new DateTime(V.gwylan.timer.ritual)) > 0>> <<set _ritualDays to Time.date.dayDifference(new DateTime(V.gwylan.timer.ritual))>> Gwylan will be ready for another ritual in <span class="gold"><<number _ritualDays>></span> <<pluralise _ritualDays "day" "days">>. <<elseif _gwylanStatus.includes("badEndReady") or $gwylan.hunting is 3>> <span class="red">Gwylan is waiting to perform another ritual with you.</span> <<else>> <span class="pink">Gwylan is ready to perform another ritual.</span> <</if>> </li> <</if>> </ul> <</if>> <<if !$statFreeze and (($location is "asylum" and ($eden_asylum_window is 1 or ($daily.eden.distract gte 1 and Time.hour lt 21))) || $temple_spear_mission gte 1 || $dockwork gte 2 || ($brothelshowdata.intro and $brothelshowdata.type is "none") || $robindebtevent gte 1 and $robinmissing isnot 0 || $pubtask2 is 1 || $pubtask || $police_hack is 1 || $pub_hack_job gte 1 || $pubfame ||( $earSlime.event and !_tempEventHide) || $earSlime.forcedCommando isnot undefined || $earSlime.forcedDressing isnot undefined || $temple_rank is "prospective" || $chef_state gte 4 || $mason_pond gte 1 || ($brothel_machine_repair gte 1 and $brothel_machine_repair lte 3) || ($harpy gte 6 and $birdFly isnot 1) || $adultshopgrandopening || ($adultshopintro is 1 and $adultshopunlocked is undefined) || $gwylan?.request.event)>> /*TODO: streamline during eventual Journal UI Overhaul bc lol. lmao, even. */ <hr> <h1 class="header gold bold">Reminders</h1> <ul class="journal carry"> <<if $temple_spear_mission is 1>> <li><<islandicon>> Jordan has tasked you with retrieving an artefact spear. It is said to reside on a mysterious island. <<if $temple_spear_mission_winter is undefined>> Jordan mentioned that the historian at the local museum might have more information. <<else>> According to Winter, you can find someone who knows of the island at a secret pub in the sewers. <</if>> </li> <</if>> <<if $eden_asylum_window is 1 and $location is "asylum">> <<if Time.hour lt 22>> <li><<asylumicon "cell">> Eden will be watching the asylum at <<ampm 20 00>> <span class="pink">tonight</span>.</li> <<else>> <li><<asylumicon "cell">> Eden is watching the asylum, waiting for you to mark your room.</li> <</if>> <</if>> <<if $daily.eden.distract gte 1 and $location is "asylum">> <<if Time.hour lt 21>> <li><<asylumicon "cell">> Eden will create a distraction at <<ampm 21 00>> <span class="pink">tonight</span>.</li> <</if>> <</if>> <<if $dockwork gte 2>> <li><<docksicon>> You can work at the docks starting from <<ampm 7 00>> - <<ampm 8 00>><<if !($idDocksReveal is 2)>> on any day except school days<</if>>.</li> <</if>> <<if $brothelshowdata.intro and $brothelshowdata.type is "none">> <li><<brothelicon "stage">> You can star in shows at the brothel.</li> <</if>> <<if $pubtask2 is 1>> <li><<crimeicon "black box">> Return the black box to Landry at the pub.</li> <<elseif $pubtask>> <li><<crimeicon "black box">> Landry wants you to retrieve a black box from the $pubtask.</li> <</if>> <<if $farm_manors_usb gte 1>> <li><<techicon "usb">> You have a USB containing sensitive information, found in a manor in the farmlands.</li> <</if>> <<if $police_hack is 1>> <li><<techicon "computer">> Landry might be able to help you with the locked police computer.</li> <<elseif $pub_hack_job is 1>> <li><<investigateicon>> Landry wants you to find a hacker supposedly named 'Mickey' living at the Domus Street orphanage.</li> <<elseif $pub_hack_job is 2>> <li><<socialiseicon>> Convince 'Mickey' to work with you.</li> <<elseif $pub_hack_job is 3>> <<if !$hacker_tasks.includes("bailey")>> <li><<techicon "email">> 'Mickey' wants you to implant a device on Bailey's computer while Bailey is logged in.</li> <</if>> <<if !$hacker_tasks.includes("leighton")>> <li><<crimeicon "safe">> 'Mickey' wants you to steal memory cards from a strongbox under Leighton's desk.</li> <</if>> <<if $hacker_tasks.length gte 2>> <li><<socialiseicon>> You need to talk to Landry about 'Mickey'.</li> <</if>> <</if>> <<if $pubfame>> <<if $pubfame.status is "accepted">> <li> <<switch $pubfame.task>> <<case "river">> <<investigateicon>> 'Mickey' wants you to check on River, the maths teacher at your school. <<case "gwylan">> <<icon "snowgsnowglobelobe.gif">> 'Mickey' wants you to find a specific snow globe at <<if $forest_shop_intro is 1>>Gwylan's shop<<else>>the shop on the outskirts of the forest<</if>>. <<case "temple">> <<templeicon>> 'Mickey' wants you to find a book on architecture at the temple with a password on the inside cover. <<case "kylar">> <<icon "manilaenvelope.png">> 'Mickey' wants you to deliver a letter to <<if C.npc.Kylar.state is "prison">> the police station, so they can give it to Kylar. <<else>> Kylar<<if C.npc.Kylar.init isnot 1>>, a student at your school<</if>>. <</if>> <<case "wren">> <<icon "manilaenvelope.png">> 'Mickey' wants you to deliver a letter to <<if $wren_intro is undefined>>a <<nnpc_gender "Wren">> named Wren. <<nnpc_He "Wren">> can be found at Remy's estate in the moor, or at the docks at night<<else>>Wren<</if>>. <<case "hospital">> <<icon "access_card.png">> 'Mickey' wants you to steal a keycard from the hospital. <<if $location is "asylum">> However, you think they might be happy with a keycard from this place too. <</if>> <<case "morgan">> <<techicon "usb">> 'Mickey' wants you to retrieve a USB drive from the old sewers. They think <<if $sewersintro is 1>>Morgan<<else>>someone down there<</if>> has it. <<case "niki">> <<photographystudioicon>> 'Mickey' wants you to retrieve a photo from Niki's photography studio, of a $per_npc.pubfame_model.fullDescription with $pubfame.niki.hair hair. <<case "bailey">> <<techicon "usb">> 'Mickey' wants you to implant a device on Bailey's computer while Bailey is logged in. <<case "briar">> <<techicon "usb">> 'Mickey' wants you to implant a device on Briar's computer at the brothel. <<case "office">> <<if $avery_fate is "ascended">> <<skyscrapericon>> 'Mickey' wants you to deliver a letter to Avery's skyscraper <<else>> <<officebuildingicon>> 'Mickey' wants you to deliver a letter to the office building <</if>>. <<case "remy">> <!-- intentionally does not include the password --> <<steedicon>> 'Mickey' wants you to retrieve a package from a contact at Remy's riding school<<if $ridingschoolintro is undefined>>, in the countryside beyond Harvest Street<</if>>. <<case "compound">> <<techicon "vcam">> 'Mickey' wants you to set cameras around the compound on Elk Street. <<if $pubfame.compound.cameras.length gte 1>> You've already hidden cameras in <<print formatList($pubfame.compound.cameras, "and", true)>>. <</if>> <</switch>> They'll <<if $pubfame.goal.includes("perm")>>permanently<<else>>temporarily<</if>> <<if $pubfame.goal.includes("Raise")>>raise<<else>>lower<</if>> your <<fameProse $pubfame.target>> fame upon completion. </li> <<elseif $pubfame.status is "done">> <li><<socialiseicon>> You can report to 'Mickey' that your favour is complete.</li> <</if>> <</if>> <<if $robindebtevent gte 1 and $robinmissing is "docks" and $docksrobinintro isnot 1>> <li><<docksicon>> Robin is missing. <<nnpc_He "Robin">> was taken to the docks on Mer Street.</li> <</if>> <<if $robindebtevent gte 1 and $robinmissing is "landfill" and $mistrobinintro isnot 1 and $robinmistknown>> <li><<landfillicon>> Robin is missing. <<nnpc_He "Robin">> was taken to the landfill on Elk Street.</li> <</if>> <<if $robindebtevent gte 1 and $robinmissing is "pillory" and $robinPillory.known is 1>> <li><<pilloryicon>> Robin is missing. <<if Time.hour lte 14>> <<nnpc_Hes "Robin">> scheduled to be put in the pillory on Cliff Street at <<ampm 15 00>>. <<else>> <<nnpc_Hes "Robin">> currently in the pillory. You don't know what will happen to <<nnpc_him "Robin">>. <</if>> </li> <</if>> <<if $earSlime.event and !_tempEventHide>> <<switch $earSlime.event>> <<case "get sperm into your anus" "get sperm into your vagina" "get sperm into your anus completed" "get sperm into your vagina completed">> <li class="lewd"><<socialiseicon "ask">> The slime in your head commanded you to get sperm into your <<print $player.vaginaExist ? "vagina" : "anus">>.</li> <<case "get your own sperm into your anus" "get your own sperm into your vagina" "get your own sperm into your anus completed" "get your own sperm into your vagina completed">> <li class="lewd"><<socialiseicon "ask">> The slime in your head commanded you to get your own sperm into your <<print $player.vaginaExist ? "vagina" : "anus">>.</li> <<case "only sleep naked from now on" "only wear feminine clothes for a while" "only wear masculine clothes for a while">> /* Show nothing */ <<default>> <li class="lewd"><<bedicon>> The slime in your head commanded you to <<print $earSlime.event>><<if $earSlime.noSleep>> before it allows you to sleep<</if>>.</li> <</switch>> <</if>> <<if $earSlime.forcedCommando isnot undefined>> <li class="lewd"><<icon "cross.png" "infront">><span class="clothes-white"><<icon "clothes/plain_panties.png">></span> The slime in your head commanded you to go commando.</li> <</if>> <<if $earSlime.forcedDressing isnot undefined>> <li class="lewd"><<if $earSlime.forcedDressing.type is "f">><<femaleicon>><<else>><<maleicon>><</if>> The slime in your head commanded you to only wear more <<print $earSlime.forcedDressing.type is "f" ? "feminine" : "masculine">> clothing.</li> <</if>> <<if $temple_rank is "prospective">> <li><<templeicon>> Jordan has offered you a place at the temple, but you must first pass the trial of purity.</li> <</if>> <<if $chef_state is 4>> <li><<nightingaleicon>> Sam wants you to visit an address on Nightingale Street.</li> <<elseif $chef_state is 7 and $chef_rework lte 0>> <li><<cafeicon>> The renovations at the Ocean Breeze have finished.</li> <<elseif $chef_state is 7 and $chef_rework lte 30>> <li><<cafeicon>> The Ocean Breeze is closed for renovations. They will be done <<nDays $chef_rework>>.</li> <<elseif $chef_state is 7>> <<set _timer to $chef_rework - 30>> <li><<cafeicon>> The Ocean Breeze will close for renovations <<nDays _timer>>.</li> <<elseif $chef_state is 8>> <li><<cafeicon>> Sam wants you to attend the Ocean Breeze's grand reopening on any evening between <<ampm 18 00>> and <<ampm 21 00>>.</li> <</if>> <<if $mason_pond is 1>> <li><<socialiseicon "ask">> Mason mentioned a stream under Domus Street, which could be used to make a spring. You'd need Bailey's permission first.</li> <<elseif $mason_pond is 2>> <li><<birdicon "wallet">> Bailey wants <<printmoney 600000>> to build a spring in the orphanage garden.</li> <<elseif $mason_pond is 3>> <li><<watericon "waterside_wolfcave">> A spring is being built in the orphanage garden.</li> <<elseif $mason_pond is 4>> <li><<watericon "waterside_wolfcave">> The spring in the orphanage garden should be finished.</li> <</if>> <<if $brothel_machine_repair is 1>> <li><<socialiseicon "ask">> Ask Briar about the backstage sex machine.</li> <<elseif $brothel_machine_repair is 2>> <li><<symbol "lust">> The brothel sex machine needs refuelling. It uses an expensive pink gel. Briar suggested looking in the landfill. It would be deep inside, near the compactor.</li> <<elseif $brothel_machine_repair is 3>> <li><<symbol "lust">> You have the pink gel Briar wants for the sex machine.</li> <</if>> <<if $harpy gte 6 and $birdFly isnot 1>> <li><<birdicon "prepare_hunt_day">> Your wings are strong, but you don't know how to use them. The Great Hawk could teach you.</li> <</if>> <<if $farm_stage gte 5 and $estate_fence is undefined>> <li><<mooricon "remy">> Remy is encroaching on Alex's farm, operating from the estate on the moor.</li> <<elseif $farm_stage gte 5 or isPubfameTaskAccepted("wren")>> <<if $estate_fence is "quest" and currentSkillValue('skulduggery') lt 800>> <li><<mooricon "remy">> Find someone who can help you break into the Remy estate. Someone with underworld connections, or who knows the moor.</li> <<elseif $estate_fence is "bird">> <li><<mooricon "remy">> Search the Remy estate fence for an entrance made by the Great Hawk.</li> <<elseif $estate_fence is "landry">> <li><<mooricon "remy">> Search the Remy estate fence for an entrance made by Landry's specialist.</li> <</if>> <</if>> <<if $farm>> <<if $farm.tower gte 1 and !$farm.tower_guard>> <li><<investigateicon>> The watchtower at the farm isn't staffed. You can find suitable candidates in the pub on Harvest Street.</li> <</if>> <</if>> <<if $photo>> <<if $photo.silly is "accepted">> <li><<highicon>> A business owner on High Street is expecting you during the day.</li> <<elseif $photo.silly is "done">> <li><<photographystudioicon>> You can collect your pay for the High Street job from Niki.</li> <</if>> <</if>> <<if $jordan_ritual_dance is 1>> <li><<danubeicon>> Jordan has asked you to investigate one of the manors on Danube Street. One of the temple's flock went missing after finding work there. You can get access through Charlie, and your status as a dancer.</li> <<elseif $jordan_ritual_dance is 2>> <li><<templeicon>> You encountered a strange ritual in a manor on Danube Street. Inform Jordan, head <<nnpc_title "Jordan">> at the temple.</li> <</if>> <<if $farm>> <<if $farm.build>> <li> <<switch $farm.build>> <<case "parasites 1">> <<farmicon 'parasitebarn'>> The parasite barn is being built. <<case "parasites 2">> <<farmicon 'parasitebarn'>> The parasite barn is being expanded. <<case "wall 1">> <<choreicon "fix">> The wall is undergoing a thorough repair. <<case "wall 2">> <<choreicon "fix">> The wall is being reinforced. <<case "wall 3">> <<choreicon "fix">> A metal fence is being built atop the stone wall. <<case "wall 4">> <<choreicon "fix">> Barbed wire is being affixed atop the fence. <<case "tower 1">> <<skyscrapericon "construction">> A watchtower is being constructed at the edge of the fields. <<case "tower 2">> <<techicon "torch">> Searchlights are being affixed atop the watchtower. <<case "kennel 1">> <<farmicon "kennel">> A guard dog training facility is being constructed. <<case "barn 1" "barn 2">> <<farmicon "barn">> The barn is being expanded. <<case "woodland 1" "woodland 2" "woodland 3">> <<choreicon "fix">> A fence is being built around the nearby woodland. <<case "stable 1">> <<farmicon "barn">> The stable is being expanded. <<case "coop 1" "coop 2">> <<farmicon "barn">> The coop is being expanded. <<case "irrigation">> <<gardenicon "plot">> Irrigation is being installed in a field. <<case "nursery">> <<childicon "crib">> A nursery is being built in the cottage. <</switch>> It'll be finished <<nDays $farm.build_timer>>. </li> <</if>> <</if>> <<if $adultshopgrandopening is true>> <li><<shopicon "adult">> The grand opening of Sirris' adult shop is taking place on Elk Street <span class="pink">today</span>.</li> <<elseif $adultshopintro is 1 and $adultshopunlocked is undefined>> <<set $_theshop to "The adult shop">> <li> <<if $adultshopprogress gte 22>> <<shopicon "adult">> $_theshop's official opening is tomorrow. <<elseif $adultshopprogress gte 18>> <<shopicon "dilapidated">> $_theshop is nearing completion. <<elseif $adultshopprogress gte 14>> <<shopicon "dilapidated">> $_theshop is halfway to completion. <<elseif $adultshopprogress gte 7>> <<shopicon "dilapidated">> $_theshop is starting to take shape. <<elseif $adultshopprogress gte 2>> <<shopicon "dilapidated">> $_theshop is in disrepair. <<else>> <<shopicon "dilapidated">> $_theshop is in great disrepair. <</if>> <<if $adultshopprogress lt 22>> You can help Sydney there on Elk Street, on Fridays after <<ampm 16>>. <</if>> </li> <</if>> <<if $avery_mansion?.landry is 1 and !$avery_fate>> <li><<harvesticon>> Someone dropped a note for you outside Avery's mansion, asking you to visit them in the pub on Harvest Street.</li> <</if>> <<if $gwylan?.request?.event and !($gwylan?.timer?.nobody gte Time.date.timeStamp)>> <<switch $gwylan.request.event>> <<case "meetAtShop">> <li><<shopicon "forest">>Gwylan has asked you to meet <<nnpc_him "Gwylan">> at the forest shop.</li> <<case "meetAtCafe">> <li><<cafeicon>>Gwylan has asked you to meet <<nnpc_him "Gwylan">> at the cafe between <<ampm 7 20>> and <<ampm 9 20>>.</li> <<case "yearning">> <li><<shopicon "forest">>Gwylan has asked you to meet <<nnpc_him "Gwylan">> at the forest shop so <<nnpc_he "Gwylan">> can apologise properly.</li> <<case "clothing">> <li><<shopicon "forest">>Gwylan has asked you to wear <<if $gwylan.request.items.length gt 1>>some clothes<<else>>a clothing item<</if>> to the forest shop.</li> <<gwylanJournalItems>> <<case "ingredients">> <li><<tendingicon "basket">>Gwylan has asked you to gather some ingredients.</li> <<gwylanJournalItems>> <<case "sample">> <li><<iconUi "emptyvial.png">> Gwylan has asked you to gather some samples.</li> <<gwylanJournalItems>> <<case "recipe">> <li><<tendingicon "basket">>Gwylan has asked you to gather some items to make <span class="blue">$gwylan.request.special</span>.</li> <<gwylanJournalItems>> <<case "samplePlayer">> /* ToDo: Gwylan */ <<case "preen">> <<if $gwylan.request.special is "harpy">> <li><<tficon "bird">> Gwylan has asked to preen your wings. <<if $harpy lt 6>> <span class="blue">You don't have wings anymore. Perhaps enough hawk feathers will suffice.</span> <</if>> </li> <<else>> <<set $_featherCount to $gwylan.request.items.find(feather => feather.name === "feathers").need>> <li><<birdicon "feathers">> Gwylan has asked you for <span class="gold"><<number $_featherCount>></span> of the hawk's feathers.</li> <<if $bird?.materials?.feathers>>You have <span class="blue"><<number $bird.materials.feathers>>.</span><</if>> <<if $harpy gte 6>> <span class="gold">Perhaps <<nnpc_he "Gwylan">> could preen your wings directly...</span> <</if>> <</if>> <<case "cream">> <li><<tendingicon "cream">><span class="lewd">Gwylan has made you a lewd offer involving some cream...</span></li> <<case "robin">> /* ToDo: Gwylan */ <<case "chastity">> <li> <<if playerChastity()>><<lockicon>><<else>><<lockicon "unlock">><</if>> <<if $gwylan.request.command is true>> Gwylan <<if $hypnosis_traits.devotion gte 3>>has commanded<<else>>wants<</if>> you to remove your chastity device. <<else>> Gwylan has offered to help you remove your chastity device. <</if>> <<if playerChastity() and $gwylan.request.items>> <<nnpc_He "Gwylan">> needs some items to help. <</if>> </li> <<if !playerChastity()>> <span class='fa-icon fa-selected'></span> <<else>> <span class='fa-icon fa-unselected'></span> <</if>> <<if $worn.genitals.name is "gold chastity belt" or $gwylan.request.details?.gold>> <<antiqueicon "chastity">> <<else>> <<icon "clothes/chastity_belt.png">> <</if>> <span class="red">Remove</span> chastity device <<if playerChastity() and $gwylan.request.items>> <br><span class="blue">Or</span><br> <<gwylanJournalItems>> <</if>> <<default>> <li><span class="red">Gwylan has asked you to do something, but the task has no journal description! Please report this bug.</span></li> <</switch>> <</if>> </ul> <</if>> <<if ($valentines is 1 and $valentines_eden is 1) or $halloween is 1 or $christmas is 1>> <hr> <h1 class="header gold bold">Holidays</h1> <</if>> <<if $valentines_eden is 1>> <ul class="journal"> <li>Valentine's day is held on February 14th.</li> <<if $valentines_eden is 1 and !$valentines_eden_bought>> <li>You can buy something for Eden to celebrate.</li> <<elseif $valentines_eden_bought is 1>> <li>You can prepare a bath for Eden on Valentine's day at <<ampm 17 00>>.</li> <</if>> </ul> <</if>> <<if $halloween is 1>> <ul class="journal"> <li>Halloween is held on October 31st.</li> <<if $halloween_whitney is 1 and C.npc.Whitney.state isnot "dungeon">> <li>Whitney will be trick-or-treating on Domus Street from <<ampm 19 00>>.</li> <</if>> <<if $halloween_robin is 1 and $robinmissing is 0>> <li>Robin wants to go trick-or-treating between <<ampm 16 00>> and <<ampm 19 00>>.</li> <</if>> <<if $halloween_kylar is 1 and C.npc.Kylar.state isnot "prison">> <li>Kylar has asked you to meet in the park after <<ampm 21 00>>.</li> <</if>> <<if $halloween_eden is 1>> <li>You can buy sweets for Eden to celebrate Halloween.</li> <</if>> <<if $halloween_lake is 1>> <li>Students are throwing a party at the lake from <<ampm 18 00>> until midnight.</li> <<if $halloweenWolves>> <li>One of the members of the wolf pack was injured at it.</li> <</if>> <</if>> </ul> <</if>> <<if $christmas is 1>> <ul class="journal"> <li> <<if Time.monthDay is 25 and Time.hour lte 20>> The orphans are celebrating Christmas. <<else>> The orphans will celebrate Christmas on the <span class="gold">25th</span> 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>> </li> <<if $christmas_gift_robin is undefined and C.npc.Robin.init is 1>> <li>You can buy Robin a gift at the shopping centre<<if $forest_shop_intro is 1>> or forest shop<</if>>.</li> <<elseif $christmas_gift_robin and $christmas_gift_robin_wrapped isnot 1 and C.npc.Robin.init is 1>> <li>You can wrap Robin's gift in your room.</li> <</if>> <<if !$christmas_wrap>> <li>The shopping centre should sell wrapping paper.</li> <</if>> <<if $syndromeeden gte 1>> <<if Time.monthDay is 25>> <<if Time.hour lte 20>> <li>You can celebrate Christmas with Eden <span class="pink">today</span>.</li> <</if>> <<else>> <li>Christmas is coming. You can celebrate it with Eden.</li> <</if>> <<if $christmas_gift_eden is undefined>> <li>You can buy Eden a gift at the shopping centre.</li> <</if>> <<if $edenmeal is 1>> <li>Eden's invited you for a Christmas dinner at <<ampm 18 00>>.</li> <</if>> <</if>> <<if $fake_artefact is "pc" and $avery_fate isnot "ascended">> <li>Landry wants you to find the wishing stones in the vault in Avery's mansion and replace them with the fakes <<nnpc_he Landry>> provided. <<nnpc_He Landry>> said that would save Avery from <<nnpc_himself "Avery">>.</li> <</if>> </ul> <</if>> <<if $avery_mansion and C.npc.Avery.state isnot "dismissed">> <hr> <h1 class="header gold bold">Avery's Demands</h1> <ul class="journal carry"> <li><<foodicon "eat">>Avery wants you to have dinner ready at <span @class="between(Time.weekDay,2,6) ? 'gold' : ''"><<ampm 21 00>> weekdays</span>.</li> <<if $avery_mansion.food.name isnot "none">> <li> <<tendingicon $avery_mansion.food.icon>> <<set $_averyMissedColor to ["","purple","pink","red"][Math.clamp($avery_mansion.rage.dinner_missed,0,3)]>> <<set $_averyDishAmount to $plants[$avery_mansion.food.name].amount>> <<set $_averyDishAmountColour to $plants[$avery_mansion.food.name].amount ? "green" : "red">> <span @class="$_averyMissedColor">Avery wants <<recipe_name $avery_mansion.food.name "article">>.</span> You currently have <span @class="$_averyDishAmountColour"><<print $_averyDishAmount>></span>. </li> <</if>> <<if !["missed", "started"].includes($avery_mansion.party_state)>> <li><<icon "front_gate.png">>You're expected at Avery's mansion <span @class="Time.weekDay is 1 ? 'gold' : ''">after <<ampm 18>> <<if ["first sunday skip", "finished", "skipped"].includes($avery_mansion.party_state)>>next<<else>>on<</if>> Sunday</span>, for a party. The guest of honour is $avery_mansion.guest.</li> <</if>> <<if $avery_mansion.fox.task and !$avery_fate>> <li><<icon "clothes/foxmask.png">> <<if $avery_mansion.fox.task_complete is "success">> <span class="green">You have completed the brown fox's task.</span> <<elseif $avery_mansion.fox.task_complete is "fail">> <span class="red">You have failed the brown fox's task.</span> <<elseif $avery_mansion.fox.task isnot $avery_mansion.guest and $avery_mansion.fox.task isnot "heist">> <span class="purple">You did not complete the brown fox's task.</span> <<else>> <<switch $avery_mansion.fox.task>> <<case "heist">>The brown fox trusts you enough to conduct a direct heist of the wishing stones and has given you a signal to make in the garden whenever Avery isn't around. <<case "Jordan">>The brown fox has asked you to give a message to two disguised initiates when Jordan comes by the mansion. <<case "Quinn">>The brown fox has asked you to perform a hand signal after getting the attention of a compromised agent who's grown attached to Quinn at the next party. <<case "Remy">> <<if $brownFoxWounded or $fake_artefact is "Avery">> <<if $avery_mansion.fox.task_detail is "descend">> The brown fox has tasked you with ensuring that both of Remy's retainers leave the party early. <<else>> The brown fox has tasked you with ensuring that both of Remy's retainers remain at the party. <</if>> <<else>> The brown fox will be at Avery's next party. <</if>> <<case "Briar">> <<if $avery_mansion.fox.task_detail is "descend">> The brown fox has tasked you with getting Briar to actively sabotage construction on the tower during the next party. <<else>> The brown fox has tasked you with convincing Briar to support tower construction during the next party. <</if>> <<case "Harper">>The brown fox has tasked you with swapping out Harper's phials during the next party. <</switch>> <</if>> </li> <</if>> /* Reworked, left in while in construction <<if $avery_mansion.landry gte 2 and $auriga_artefact is "Avery">> <li>Landry will give you <span class="gold">£10000</span> if you can bring <<nnpc_him "Landry">> the <span class="pink">wishing stones</span> from Avery's mansion.</li> <<if $avery_mansion.mickey>> <li>Mickey suggests making Avery feel more dominant would cause them to reveal the stones' location. Alternatively, helping Avery reach their goals could bring them into the open.</li> <</if>> <<if $avery_mansion.jobs.includes("dungeon")>> <li>Avery revealed a dungeon containing a vault. It seems a likely place for the stones.</li> <</if>> <<if $avery_mansion.fake_stones is 2>> <li>Optionally, replace Avery's wishing stones with the fakes Mickey gave you.</li> <</if>> <<elseif $avery_mansion.landry gte 2 and $auriga_artefact is "pc">> <li>Landry will give you <span class="gold">£10000</span> if you can bring <<nnpc_him "Landry">> the <span class="pink">wishing stones</span> that are in your possession.</li> <</if>> <<if $avery_mansion.fake_stones is 1>> <li><<investigateicon>> Find a convincing fake to swap for the wishing stones.</li> <<elseif $avery_mansion.fake_stones is 2>> <li><<icon "avery_vault.png">> Leave the fake wishing stones in Avery's vault.</li> <</if>>*/ <<if $avery_mansion.jobs.length>> <li> <<icon "avery_garage.png">> Additionally, Avery expects to see proper presentation from you when <<nnpc_he "Avery">> returns from work. <<if $avery_mansion.jobs.includes("maid")>> <br> <<if $worn.upper.type.includes("maid") and $worn.lower.type.includes("maid")>> <span class='fa-icon fa-selected'></span> <<else>> <span class='fa-icon fa-unselected'></span> <</if>> <<iconUi "clothes/traits/maid.png">>Greeting <<nnpc_him Avery>> wearing an outfit with the maid trait. <<elseif $avery_mansion.jobs.includes("formal")>> <br> <<if $worn.upper.type.includes("formal") and $worn.lower.type.includes("formal")>> <span class='fa-icon fa-selected'></span> <<else>> <span class='fa-icon fa-unselected'></span> <</if>> <<iconUi "clothes/traits/formal.png">>Greeting <<nnpc_him Avery>> wearing an outfit with the formal trait. <</if>> <<if $avery_mansion.jobs.includes("knees")>> <br> <<if $avery_mansion.kneel isnot "refuse">> <span class='fa-icon fa-selected'></span> <<else>> <span class='fa-icon fa-unselected'></span> <</if>> <<sneakicon>>Greeting <<nnpc_him Avery>> by kneeling before <<nnpc_him Avery>>. <<elseif $avery_mansion.jobs.includes("bow")>> <br> <<if $avery_mansion.bow>> <span class='fa-icon fa-selected'></span> <<else>> <span class='fa-icon fa-unselected'></span> <</if>> <<sneakicon>>Greeting <<nnpc_him Avery>> by <<= $player.gender_appearance is "f" ? "curtsying" : "bowing">> to <<nnpc_him Avery>>. <</if>> <<if $avery_mansion.jobs.includes("meek")>> <br> <<if $speech_attitude is "meek" or $speech_attitude_avery>> <span class='fa-icon fa-selected'></span> <<else>> <span class='fa-icon fa-unselected'></span> <</if>> <<socialiseicon>>Greeting <<nnpc_him Avery>> with a meek demeanour. <</if>> <<if $avery_mansion.jobs.includes("hairlength")>> <br> <<if $hairlength lt 400>> <span class='fa-icon fa-selected'></span> <<else>> <span class='fa-icon fa-unselected'></span> <</if>> <<icon "scissors.png">>Keeping your hair no longer than the top of your chest. <</if>> <<if $avery_mansion.jobs.includes("hairstyle")>> <br> <<if $hairtype is "neat">> <span class='fa-icon fa-selected'></span> <<else>> <span class='fa-icon fa-unselected'></span> <</if>> <<icon "comb.png">>Keeping your hair in the 'neat' style. <</if>> <<if ["lounge", "dining", "bedroom", "pool", "garden", "display", "kitchen", "bathroom"].includesAny($avery_mansion.jobs)>> <br> <<avery_mansion_housework_total>> <<set $_averyCleanColor to ["","purple","pink","red"][Math.clamp(Math.floor((_avery_mansion_housework_total) / 3),0,3)]>> <<if $_averyCleanColor is "">> <span class='fa-icon fa-selected'></span> <<else>> <span class='fa-icon fa-unselected'></span> <</if>> <<icon "clothes/feather_duster.png">><span @class="$_averyCleanColor">Keeping <<nnpc_his Avery>> mansion clean.</span> <</if>> </li> <</if>> <<if $avery_tower>> <<if $avery_tower.stage is 3 and !$avery_fate>> <li><<skyscrapericon "bloodmoon">> Avery expects you to meet <<nnpc_him Avery>> at <<nnpc_his Avery>> mansion <span class="gold">during the next blood moon</span> to attend the opening ceremony for <<nnpc_his Avery>> skyscraper. </li> <</if>> <</if>> </ul> <</if>> <<if $scienceproject is "ongoing">> <hr> <h1 class="header gold bold">Science Fair</h1> <<if $scienceprojectdays is 0>> The science fair is being held at the town hall on Cliff Street <span class="pink">today</span> from <<ampm 9 00>> until <<ampm 18 00>>. <br> <<else>> The science fair will be held at the town hall on Cliff Street <<nDays $scienceprojectdays>>. <br> <</if>> <<if $avery_mansion and $scienceproject is "ongoing" and ($sciencephalluschance gte 1 or $sciencelichenchance gte 1 or $scienceshroomchance gte 1) and !$avery_mansion.attend.science and $avery_fate isnot "fallen" and $avery_fate isnot "kicked">> <span class="blue">Consider asking Avery to attend.</span> <br> <</if>> You have the following ongoing science projects. You'll choose one to present at the fair. <br><br> <<if $sciencelichenknown is 1>> <span class="gold bold">Local Lichen</span> <br> <<if $sciencechance is undefined>> <<set $sciencechance to []>> <</if>> <<if $sciencelichenpark is 1>> <<if $sciencelichenparkready is 1>> <<run $sciencechance.pushUnique("Lichen")>> <span class='fa-icon fa-selected'></span> You've incorporated the lichen living in the park to your project. <br> <<else>> <span class='fa-icon fa-unselected'></span> You've examined lichen in the park. You need to write it up at home or the library. <br> <</if>> <<else>> <span class='fa-icon fa-unselected'></span><span class="black"> Examine white lichen in the park.</span> <br> <</if>> <<if $sciencelichentemple is 1>> <<if $sciencelichentempleready is 1>> <<run $sciencechance.pushUnique("Temple")>> <span class='fa-icon fa-selected'></span> You've incorporated the lichen living on the temple to your project. <br> <<else>> <span class='fa-icon fa-unselected'></span> You've examined lichen living on the temple. You need to add it to your project at home or the library. <br> <</if>> <<else>> <span class='fa-icon fa-unselected'></span><span class="black"> Examine pink lichen on the temple.</span> <br> <</if>> <<if $sciencelichendrain is 1>> <<if $sciencelichendrainready is 1>> <<run $sciencechance.pushUnique("Drain")>> <span class='fa-icon fa-selected'></span> You've incorporated the lichen living in the storm drain to your project. <br> <<else>> <span class='fa-icon fa-unselected'></span> You've examined lichen living in the storm drain. You need to add it to your project at home or the library. <br> <</if>> <<else>> <span class='fa-icon fa-unselected'></span><span class="black"> Examine violet lichen in the storm drain, where it exits into the sea.</span> <br> <</if>> <<if $sciencelichenlake is 1>> <<if $sciencelichenlakeready is 1>> <<run $sciencechance.pushUnique("Ruin")>> <span class='fa-icon fa-selected'></span> You've incorporated the lichen living on the lake ruin to your project. <br> <<else>> <span class='fa-icon fa-unselected'></span> You've examined lichen living on the lake ruin. You need to add it to your project at home or the library. <br> <</if>> <<else>> <span class='fa-icon fa-unselected'></span><span class="black"> Examine purple lichen on the lake ruin.</span> <br> <</if>> As it is, this project has a <span @class="($sciencechance.length is 0 ? 'red' : $sciencechance.length is 1 ? 'pink' : $sciencechance.length is 2 ? 'purple' : $sciencechance.length is 3 ? 'teal' : $sciencechance.length is 4 ? 'green' : '')"><<print ($sciencelichenparkready * 25 + $sciencelichenlakeready * 25 + $sciencelichendrainready * 25 + $sciencelichentempleready * 25)>>%</span> chance of winning the fair. Winning with this project will greatly reduce trauma and endear you to your teachers. <br><br> <<else>> <span class="black">????????????</span> <br> Explore to discover. <br><br> <</if>> <<if $scienceshroomknown is 1>> <span class="gold bold">Local Mushrooms</span> <br> <span @class="($scienceshroomheart is 5 ? 'fa-icon fa-selected' : 'fa-icon fa-unselected')"></span><span @class="$scienceshroomheart is 0 and $scienceshroomheartready is 0 ? 'black' : ''"> $scienceshroomheart/5 heartshrooms found.</span> <br> <span @class="($scienceshroomheartready is 5 ? 'fa-icon fa-selected' : 'fa-icon fa-unselected')"></span><span @class="$scienceshroomheart is 0 and $scienceshroomheartready is 0 ? 'black' : ''"> $scienceshroomheartready/5 heartshrooms added to project.</span> <<if $scienceshroomheart gt $scienceshroomheartready>> Add mushrooms to your project at home or the library. <</if>> <br> <span @class="($scienceshroomwolf is 5 ? 'fa-icon fa-selected' : 'fa-icon fa-unselected')"></span><span @class="$scienceshroomwolf is 0 and $scienceshroomwolfready is 0 ? 'black' : ''"> $scienceshroomwolf/5 wolfshrooms found.</span> <br> <span @class="($scienceshroomwolfready is 5 ? 'fa-icon fa-selected' : 'fa-icon fa-unselected')"></span><span @class="$scienceshroomwolf is 0 and $scienceshroomwolfready is 0 ? 'black' : ''"> $scienceshroomwolfready/5 wolfshrooms added to project.</span> <<if $scienceshroomwolf gt $scienceshroomwolfready>> Add mushrooms to your project at home or the library. <</if>> <br> <<set $scienceshroomchance to ($scienceshroomwolfready * 10 + $scienceshroomheartready * 10)>> As it is, this project has a <span @class="$scienceshroomchance gte 100 ? 'green' : $scienceshroomchance gte 80 ? 'teal' : $scienceshroomchance gte 60 ? 'lblue' : $scienceshroomchance gte 40 ? 'purple' : $scienceshroomchance gte 20 ? 'pink' : $scienceshroomchance gte 0 ? 'red' : ''"><<print $scienceshroomchance>>%</span> chance of winning the fair. Winning with this project will greatly reduce trauma and make you more popular among your peers. <br><br> <<else>> <span class="black">????????????</span> <br> Explore the forest to discover. <br><br> <</if>> <<if $sciencephallusknown is 1>> <span class="gold bold">Local Phalli <mouse class="tooltip gold">(?)<span>Look for participants on the beach during good weather.</span></mouse></span> <br> <span @class="($sciencephallus is 10 ? 'fa-icon fa-selected' : 'fa-icon fa-unselected')"></span> $sciencephallus/10 phalli measured. <br> <span @class="($sciencephallusready is 10 ? 'fa-icon fa-selected' : 'fa-icon fa-unselected')"></span> $sciencephallusready/10 phalli added to project. <<if $sciencephallus gt $sciencephallusready>> Add phalli to your project at home or the library. <</if>> <br> As it is, this project has a <span @class="$sciencephallusready gte 10 ? 'green' : $sciencephallusready gte 8 ? 'teal' : $sciencephallusready gte 6 ? 'lblue' : $sciencephallusready gte 4 ? 'purple' : $sciencephallusready gte 2 ? 'pink' : $sciencephallusready gte 0 ? 'red' : ''"><<print ($sciencephallusready * 10)>>%</span> chance of winning the fair. Winning with this project will greatly reduce trauma and make you more famous. <br> <<else>> <span class="black">????????????</span> <br> Become more promiscuous to discover. <br> <</if>> <</if>> <<if $mathsproject is "ongoing">> <<set $mathschance = Math.clamp($mathschance, 0, 100)>> <hr> <h1 class="header gold bold">Maths Competition</h1> <<if $mathsprojectdays is 0>> The maths competition is being held at the town hall on Cliff Street <span class="pink">today</span> from <<ampm 9 00>> until <<ampm 18 00>>. <br> <<else>> The maths competition will be held at the town hall on Cliff Street in <span class="gold">$mathsprojectdays</span> <<pluralise $mathsprojectdays "day">>. <br> Your solution must be ready before then. You can work on your project at the orphanage or the school library. <br> <</if>> <<if $avery_mansion and $mathsproject is "ongoing" and $mathschance gte 1 and !$avery_mansion.attend.maths and $avery_fate isnot "fallen" and $avery_fate isnot "kicked">> <span class="blue">Consider asking Avery to attend.</span> <br> <</if>> <<if $mathschance is 0>> <span class="black">You haven't begun work on a solution. You have a $mathschance% chance of winning the competition.</span> <<elseif $mathschance lte 10>> <span class="pink">You've barely begun work on a solution. You have a $mathschance% chance of winning the competition.</span> <<elseif $mathschance lte 30>> <span class="purple">Your solution isn't much, but it's something. You have a $mathschance% chance of winning the competition.</span> <<elseif $mathschance lte 50>> <span class="blue">Your solution has some substance, but there's a long way to go. You have a $mathschance% chance of winning the competition.</span> <<elseif $mathschance lte 80>> <span class="lblue">Your solution is shaping up, but there's room for improvement. You have a $mathschance% chance of winning the competition.</span> <<elseif $mathschance lte 99>> <span class="teal">Your solution isn't right, but it's good. You can't imagine anyone else has gone as far as this. You have a $mathschance% chance of winning the competition.</span> <<else>> <span class="green">Your solution is perfect. You have a $mathschance% chance of winning the competition.</span> <</if>> <br><br> You have <span class="gold">$mathsinfo</span> <<pluralise $mathsinfo "insight">>. <<if $stimdealerknown is 1>> You have <span class="gold">$mathsstim</span> <<pluralise $mathsstim "stimulant">>. <br> You can buy stimulants from dealers on Oxford Street. <br> <</if>> <</if>> <<if $englishPlay is "ongoing">> <hr> <h1 class="header gold bold">English Play</h1> <<if $englishPlayDays is 0>> The school plays are being held at the town hall on Cliff Street <span class="pink">tonight</span> from <span class="gold"><<ampm 17 00>></span> until <span class="gold"><<ampm 21 00>></span>. <<else>> The school plays will be performed at the town hall on Cliff Street in <span class="gold">$englishPlayDays</span> <<pluralise $englishPlayDays "day">>. <</if>> /* <<if $avery_mansion and $englishPlay is "ongoing" and $englishPlayReadiness gte 1 and !$avery_mansion.attend.english_play and $avery_fate isnot "fallen" and $avery_fate isnot "kicked">> <span class="blue">Consider asking Avery to attend.</span> <br> <</if>> */ <<if $englishPlayRoles.Player isnot "none">> <ul class="journal"> <li>You have taken the role of $englishPlayRoles.Player. You can rehearse alone at the orphanage.</li> <<if $englishPlayRoles.Kylar isnot "none" and $englishPlayRoles.KylarKnown>> <li>Kylar has taken the role of $englishPlayRoles.Kylar. You can rehearse with <<nnpc_him "Kylar">> in <<if Weather.precipitation !== "none">>the school library<<else>>the school's rear courtyard<</if>> after school.</li> <<elseif $englishPlayKylarReplace>> <li>Kylar's part in the play will have to be taken over by another student.</li> <</if>> <<if $englishPlayRoles.SydneyKnown>> <li>Sydney has taken the role of $englishPlayRoles.Sydney. You can rehearse with <<nnpc_him "Sydney">> in the English classroom after school.</li> <</if>> <<if !$englishPlayRoles.SydneyKnown and !$englishPlayRoles.KylarKnown>> <li>You can meet your partners in the English classroom after school.</li> <<elseif !$englishPlayRoles.SydneyKnown or (!$englishPlayRoles.KylarKnown and !$englishPlayKylarReplace)>> <li>You can meet your other partner in the English classroom after school.</li> <</if>> </ul> <br> <<playReadiness>> Performing well will spread social fame and give a large boost to school status. <<else>> <<if $englishPlayLate>> You have <<number $englishPlayLate>> <<pluralise $englishPlayLate "day">> to choose a role. You can sign up in the English classroom after school, or just help other students rehearse. <<else>> It's too late for you to take a role, but you can still help other students rehearse and watch the plays with the audience. <</if>> <</if>> <</if>> <<set _plant_keys to Object.keys($plants)>> <<set _hasProduce to Object.keys($plants).some(key => $plants[key].amount >= 1)>> <<set _carrying to [$antiquemoney, $blackmoney, $phials_held, $lurkers_held, $popcorn, $milkshake, $panties_held].some(i => i >= 1)>> <<if _carrying or _hasProduce>> <hr> <h1 class="header gold bold">Inventory</h1> <</if>> <<if $farm_key is true and $location is "farm" and !$bus.includes("farm")>> You have stored: <ul class="journal carry"> <li><<lockicon "bronze key">> <span class="green">A ring of keys</span> in your stall. You can use them to escape, but be careful not to get caught with them.</li> </ul> <br> <</if>> <<if _carrying or _hasProduce>> You are carrying: <ul class="journal carry"> <<if ["prison", "prison_beach"].includes($location) and $prison.teeth gte 1>> <li><<tendingicon "sharks_teeth">> <span class="green"><<number $prison.teeth>></span> shark's teeth. <<if $prison_wren_intro isnot 1>> You can find Wren in the yard on Fridays after lunch. <</if>> </li> <</if>> <<if $antiquemoney gt 0>> <li><<museumicon>><span class="green">£<<print $antiquemoney>></span> in antiques. You can sell them to the museum.</li> <</if>> <<if $blackmoney gt 0>> <li><<highicon>><span class="green">£<<print $blackmoney>></span> in stolen goods. You can sell them to someone on the black market.</li> <</if>> <<if $phials_held gt 0>> <li><<icon "aphrodisiac.png">> <span class="green">$phials_held</span> <<pluralise $phials_held "phial">> of aphrodisiac. You can sell <<pluralise $phials_held "it" "them">> on Elk Street.</li> <</if>> <<if $lurkers_held gt 0>> <li><<birdicon "lurkers">><span class="green">$lurkers_held</span> <<pluralise $lurkers_held "lurker">>.</li> <</if>> <<if $milkshake gt 0>> <li><<foodicon "milkshake">> <span class="green">$milkshake</span> <<pluralise $milkshake "milkshake">>.</li> <</if>> <<if $popcorn gt 0>> <li><<foodicon "popcorn">> <span class="green">$popcorn</span> <<pluralise $popcorn "bag">> of popcorn.</li> <</if>> <<if $panties_held gt 0>> <li><span class="clothes-white"><<icon "clothes/plain_panties.png">></span> <<print $panties_held is 1 ? "a pair" : "<span class='green'>$panties_held</span> pairs">> of stolen underwear. You can sell <<pluralise $panties_held "it" "them">> during lunchtime in the school rear courtyard.</li> <</if>> <<if _hasProduce>> <li><<stallicon "open">> <span class="green">Products</span> for sale. You can sell them by renting a stand on Connudatus Street at dawn.</li> <</if>> </ul> <<if _hasProduce>> <br> <details class="journal"> <summary class="journal">Products</summary> <<set $_types to []>> <<for _t to 0; _t lt _plant_keys.length; _t++>> <<set _produce to setup.plants[$plants[_plant_keys[_t]].name]>> <<set $_types.pushUnique(_produce.type.toUpperFirst())>> <</for>> <<set $_types.sort()>> <<if $_types.length>> <div style="padding: 0.25rem 0.5rem;"> Show: <<listbox "_invDisplay" autoselect>> <<option "All" "all">> <<optionsfrom $_types>> <</listbox>> </div> <</if>> <div class="itemInventory" id="journalInv"> <<journalInventory _invDisplay>> </div> <<run jQuery(document).on("change", "#listbox--invdisplay", function (e) { Wikifier.wikifyEval("<<replace #journalInv>><<journalInventory " + T.invDisplay.toLowerCase() + ">><</replace>>"); });>> </details> <</if>> <</if>> <<if $museumintro is 1 or $plants_known.length gte 0>> <hr> <h1 class="header gold bold">Collectibles</h1> <<if $museumintro is 1>> <<museumAntiqueText>><<museumPaintingText>> <<if $museumAntiqueJournalHints.length gte 1 || Object.values(V.museumAntiques.paintings).includes("found")>> <<set _hintslist to clone($museumAntiqueJournalHints).reverse()>> <<if $museumAntiqueJournalHints.length gte 1>> Winter has mentioned some items that are missing from the museum. <</if>> <ul class="journal"> <<for _hint range _hintslist>> <<if _museumAntiqueText[_hint]>> <<if ["found", "talk"].includes($museumAntiques.antiques[_hint])>> <li>You should show the <<= _museumAntiqueText[_hint].name.toLowerCase()>> to Winter.</li> <<else>> <li><<print _museumAntiqueText[_hint].journal>></li> <</if>> <<else>> <li><span class="red">Warning: Antique "_hint" doesn't have a hint. Did you export this save from a modded version?</span></li> <<set $museumAntiqueJournalHints.delete(_hint)>> <</if>> <</for>> <<for $_labelP, $_valueP range $museumAntiques.paintings>> <<if $_valueP is "found">> <li>You should show the <<= _museumPaintingText[$_labelP].journalName.toLowerCase()>> to Winter.</li> <</if>> <</for>> </ul> <br> <</if>> <<set $_antiquesFound to Object.values($museumAntiques.antiques).filter(status => status !== "notFound").length>> <<set $_paintingsFound to Object.values($museumAntiques.paintings).filter(status => status !== "notFound").length>> <<set $_totalFound to $_antiquesFound + $_paintingsFound>> <<if $_totalFound is 0>> You haven't found any items for the museum yet. Explore the world more to discover antiques. <<elseif $_antiquesFound is $museumAntiques.maxCount and !$museum_paintings_intro>> The museum has <span class="gold"><<= $_antiquesFound>></span> <<pluralise $_antiquesFound "antique">>. You've found <span class="green">every</span> antique for the museum. <<elseif $_totalFound is $museumAntiques.maxCount + Object.values($museumAntiques.paintings).length>> The museum has <span class="gold"><<= $_antiquesFound>></span> <<pluralise $_antiquesFound "antique">> and <span class="gold"><<= $_paintingsFound>></span> <<pluralise $_paintingsFound "painting">>. You've found <span class="green">every</span> item for the museum. <<else>> You've found <span class="gold"><<= $_antiquesFound>></span> <<pluralise $_antiquesFound "antique">> <<if $museum_paintings_intro>>and <span class="gold"><<= $_paintingsFound>></span> <<pluralise $_paintingsFound "painting">><</if>> for the museum. <<set _antiquesMissing to $museumAntiques.maxCount - $_antiquesFound>> <<set _paintingsMissing to Object.values($museumAntiques.paintings).length - $_paintingsFound>> <<if $_antiquesFound is $museumAntiques.maxCount>> You've found <span class="green">every</span> antique for the museum, but are missing <span class="gold"><<= _paintingsMissing>></span> <<pluralise _paintingsMissing "painting">>. <<elseif _paintingsMissing is 0>> You've found <span class="green">every</span> painting for the museum, but are missing <span class="gold"><<= _antiquesMissing>></span> <<pluralise _antiquesMissing "antique">>. <<else>> You're missing <span class="gold"><<= _antiquesMissing>></span> <<pluralise _antiquesMissing "antique">><<if $museum_paintings_intro>> and <span class="gold"><<= _paintingsMissing>></span> <<pluralise _paintingsMissing "painting">><</if>>. <</if>> <</if>> <br><br> <details class="journal"> <summary class="journal">Museum Items</summary> <<if $museum_paintings_intro>> <span class="gold bold m-2">Antiques</span> <br> <</if>> <div class="itemCollectible"> <<for _labelM, _valueM range $museumAntiques.antiques>> <<set _antique to $museumAntiqueJournalHints.includes(_labelM) ? _museumAntiqueText[_labelM]?.journalName || _museumAntiqueText[_labelM].name.toLowerCase().toUpperFirst() : _museumAntiqueText[_labelM].name.toLowerCase().toUpperFirst()>> <<if $museumAntiqueJournalHints.includes(_labelM)>> <<switch _valueM>> <<case "notFound">> <div class="item unknown" @tooltip="_antique"> <<icon "museum_empty.png">> </div> <<default>> <div class="item" @tooltip="_antique"> <<icon _museumAntiqueText[_labelM].icon>> </div> <</switch>> <<else>> <<switch _valueM>> <<case "notFound">> <div class="item unknown" tooltip="Unknown antique."> <<mysteryicon>> </div> <<default>> <div class="item" @tooltip="_antique"> <<icon _museumAntiqueText[_labelM].icon>> </div> <</switch>> <</if>> <</for>> </div> <<if $museum_paintings_intro>> <hr> <span class="gold bold m-2">Paintings</span> <br> <div class="itemPainting"> <<for _labelP, _valueP range $museumAntiques.paintings>> <<set _painting to _valueP isnot "museum" ? _museumPaintingText[_labelP].journalName : _museumPaintingText[_labelP].name>> <<switch _valueP>> <<case "museum" "recovered">> <<if _labelP is "paintingward">> <<if $bleedingWardCheckpoint>> <<set _painting += ": 50% heard">> <</if>> <<elseif _labelP is "paintingsnake">> <<set _painting to `<div style='text-align:center'>${_museumPaintingText[_labelP].name}`>> <<if $hcEndings.length is 0>> <<set _painting += "<br><span class='gold'>0/7 Endings:</span><br><span class='black'>S, A, B, C, D, E, F</span>">> <<else>> <<set _painting += `<br><span class='gold'>${$hcEndings.length}/7 Endings:</span><br>`>> <<set _painting += `<span class=${$hcEndings.includes('S') ? 'gold' : 'black'}> ${$hcEndings.includes('S') ? 'S' : '?'}</span>,`>> <<set _painting += `<span class=${$hcEndings.includes('A') ? 'green' : 'black'}> ${$hcEndings.includes('A') ? 'A' : '?'}</span>,`>> <<set _painting += `<span class=${$hcEndings.includes('B') ? 'teal' : 'black'}> ${$hcEndings.includes('B') ? 'B' : '?'}</span>,`>> <<set _painting += `<span class=${$hcEndings.includes('C') ? 'blue' : 'black'}> ${$hcEndings.includes('C') ? 'C' : '?'}</span>,`>> <<set _painting += `<span class=${$hcEndings.includes('D') ? 'purple' : 'black'}> ${$hcEndings.includes('D') ? 'D' : '?'}</span>,`>> <<set _painting += `<span class=${$hcEndings.includes('E') ? 'pink' : 'black'}> ${$hcEndings.includes('E') ? 'E' : '?'}</span>,`>> <<set _painting += `<span class=${$hcEndings.includes('F') ? 'red' : 'black'}> ${$hcEndings.includes('F') ? 'F' : '?'}</span>`>> <</if>> <<if $hcChallengesCompleted and Object.values($hcChallengesCompleted).count("") isnot Object.values($hcChallengesCompleted).length>> <<set _painting += `<br><span class='blue italic'>Challenges completed:</span><br>`>> <<set _painting += `<span style="color: ${ColourUtils.interpolateMultiple(["--red", "--pink", "--purple", "--blue", "--teal", "--green", "--gold"], normalise(Object.values($hcChallengesCompleted).count("S"), Object.values($hcChallengesCompleted).length, 0))}">${Object.values($hcChallengesCompleted).count("S")}/${setup.hopelessCycleChallenges.length}</span>`>> <</if>> <<set _painting += `</div>`>> <</if>> <div class="item" @tooltip="_painting"> <img class="icon" @src="'img/misc/icon/' + _museumPaintingText[_labelP].iconFull" width="120" height="120"> <<switch _labelP>> <<case "paintingsnake">><<set _percent to (Math.round($hcEndings.length) / 7 * 100)>> <<case "paintingward">><<set _percent to $bleedingWardCheckpoint ? 50 : 100>> <<default>><<set _percent to 100>> <</switch>> <div class="paintingProgress" @style="'--progress: ' + _percent + '%;'"> <<if $options.images>> <div class="progress"> <span class="starBar"> <img class="active-icon-img" src="img/ui/gold_star.png"> <img class="inactive-icon-img" src="img/ui/empty_star.png"> </span> </div> <<else>> <div class="meter"> <div class="goldbar" @style="'width:' + _percent + '%'"></div> </div> <</if>> </div> </div> <<case "talk">> <<set $_tooltipPainting to `You should ask Winter about the ${_museumPaintingText[_labelP].journalName.toLowerCase()}.`>> <div class="item" @tooltip="$_tooltipPainting"> <img class="icon" @src="'img/misc/icon/' + _museumPaintingText[_labelP].iconFull" width="120" height="120"> </div> <<case "notFound">> <div class="item" tooltip="Unknown Painting."> <img class="icon" src="img/misc/icon/antiques/paintings/curtain.png" width="120" height="120"> </div> <<default>> <div class="item" @tooltip="_painting"> <img class="icon" @src="'img/misc/icon/' + _museumPaintingText[_labelP].iconRaw" width="120" height="120"> </div> <</switch>> <</for>> </div> <</if>> </details> <br> <</if>> <<if $plants_known.length gte 0>> <<set _plant_keys to Object.keys(setup.plants)>> <<set _collection to 0>> <<for _i to 0; _i lt $plants_known.length; _i++>> <<if Object.keys(setup.plants).includes($plants_known[_i])>> <<set _collection += 1>> <</if>> <</for>> <<set _total to 0>> <<for _i to 0; _i lt _plant_keys.length; _i++>> <<if setup.plants[_plant_keys[_i]].type === "flower" || setup.plants[_plant_keys[_i]].type === "vegetable">> <<set _total += 1>> <</if>> <</for>> <<if _collection is 0>> You can't grow any plants. Explore the world more to discover seeds. <<else>> You can grow <span class="gold"><<= _collection>></span> <<pluralise _collection "kind of plant" "kinds of plants">>. <<if _collection is _total>> You've found <span class="green">every</span> seed. <<else>> <<set _seedsMissing to _total - _collection>> You're missing <span class="gold"><<= _seedsMissing>></span> <<pluralise _seedsMissing "seed">>. <</if>> <</if>> <br><br> <details class="journal"> <summary class="journal">Seeds</summary> <div class="itemCollectible"> <<for _i to 0; _i lt _plant_keys.length; _i++>> <<set _tooltip to setup.plants[_plant_keys[_i]].seed_name ? setup.plants[_plant_keys[_i]].seed_name.toUpperFirst() : (setup.plants[_plant_keys[_i]].plural[0].toUpperCase() + setup.plants[_plant_keys[_i]].plural.substring(1))>> <<set _icon to setup.plants[_plant_keys[_i]].icon>> <<if setup.plants[_plant_keys[_i]].type is "flower" or setup.plants[_plant_keys[_i]].type is "vegetable">> <<if $plants_known.includes( setup.plants[_plant_keys[_i]].name)>> <div class="item" @tooltip="_tooltip"> <<icon `"tending/" + _icon`>> </div> <<else>> <div class="item unknown" tooltip="Unknown seed."> <<mysteryicon>> </div> <</if>> <</if>> <</for>> </div> </details> <</if>> <</if>> <br> <</widget>> <<widget "journalInventory">> <<set $_filter to _args[0] || "all">> <<for _t to 0; _t lt _plant_keys.length; _t++>> <<set _item to $plants[_plant_keys[_t]]>> <<set _produce to setup.plants[_item.name]>> <<if _item.amount gte 1>> <<if $_filter is "all" or _produce.type is $_filter>> <<set _formatter = new Intl.NumberFormat('en-gb', { roundingMode: 'trunc', notation: 'compact' })>> <<set _amount = _formatter.format(_item.amount)>> <<if _item.amount === 1>> <<set _itemName to _produce.singular || _produce.name.replace(/_/g, ' ')>> <<else>> <<set _itemName to _produce.plural>> <</if>> <<set _tooltip to `<span class="green">${_item.amount}</span> ${_itemName}`>> <div class="item" @tooltip="_tooltip"> <<set _iconName to _produce.icon.replace(/\.[^/.]+$/, "")>> <<tendingicon _iconName>> <hr> <<= _amount>> </div> <</if>> <</if>> <</for>> <</widget>> <<widget "journalNotes">> <<if $journalNotes is undefined>> <<set $journalNotes to {"default":""}>> <<set $options.notesAutoSave to true>> <<set _currentPage to "default">> <</if>> <<if !_currentPage>><<set _currentPage to "default">><</if>> <<set _listPageName to _currentPage>> <<foldout false "_journalFoldout">> <span>Extra</span> Page: <<listbox "_listPageName" autoselect>> <<optionsfrom Object.keys($journalNotes)>> <</listbox>> <<link "Load">> <<journalNotesTextareaSave>> <<set _currentPage to _listPageName>> <<replace "#journalNotesTextarea">><<journalNotesTextarea>><</replace>> <</link>> | <<link "Delete">> <<if _listPageName is "default">> <<set $journalNotes.default to "">> <<else>> <<run delete $journalNotes[_listPageName]>> <</if>> <<if !$journalNotes[_currentPage]>><<set _currentPage to "default">><</if>> <<replace "#customOverlayContent">><<journalNotes>><</replace>> <</link>> | <<if $debug is 1>> <<link "DEBUG: <<=($options.enableJournalDebugTwee ? 'Disable' : 'Enable')>> Code Execution">> <<if $options.enableJournalDebugTwee>> <<set delete $options.enableJournalDebugTwee>> <<else>> <<set $options.enableJournalDebugTwee to true>> <</if>> <<replace "#customOverlayContent">><<journalNotes>><</replace>> <</link>> <mouse class="tooltip linkBlue">(?)<span> Allows journal notes to run as Twee code. </span></mouse> | <</if>> <br><br> New page name: <<textbox "_pageName" "">> <<link "New Page">> <<journalNotesTextareaSave>> <<set _newName to journalNotesReplacer(_pageName).slice(0,20)>> <<if $journalNotes[_newName] is undefined>> <<set $journalNotes[_newName] to "">> <<set _currentPage to _newName>> <<replace "#customOverlayContent">><<journalNotes>><</replace>> <<else>> <<replace "#journalNotesMessage">><span class="red">Unique name required.</span><</replace>> <</if>> <</link>> <mouse class="tooltip linkBlue">(?)<span> Page names can only contain A-Z, numbers, underscore, dashes and spaces. </span></mouse> <div id="journalNotesMessage"></div> <</foldout>> <br> <div id="journalNotesTextarea"><<journalNotesTextarea>></div> <</widget>> <<widget "journalNotesTextarea">> <<if $options.enableJournalDebugTwee and $debug is 1>> <div class="settingsToggleItemWide"> <<foldout true "_journalDebugTweeFoldout">> <span style="font-size:large">output</span> <span id='journalDebugTweeOutput'>@@color:red;wiki&lpar;&rpar; executes Twee code from the textarea below.@@<br></span> <</foldout>> <hr> <<button "@@color:red;.wiki&lpar;'_currentPage'&rpar;@@">> <<journalNotesTextareaSave>> <<replace "#journalDebugTweeOutput">><<script>>$(output).wiki(T.displayedTextArea);<</script>><</replace>> <<replace "#journalDebugTweeCopyButton">> <<button 'Copy to clipboard'>> <<run _txt = $('#journalDebugTweeOutput')[0].innerHTML>> <<run navigator.clipboard.writeText(_txt.replaceAll('<br>','\n'))>> <</button>> <<button [[Reload Passage|$passage]]>><<set $cheatReload to true>><</button>> <</replace>> <</button>> <span id='journalDebugTweeCopyButton'></span> </div> <br> <</if>> <<button `'<span class="fa-icon fa-save"></span> Save (' + _currentPage + ')'`>> <<journalNotesTextareaSave>> <</button>> <label><<checkbox "$options.notesAutoSave" false true autocheck>> Auto Save</label> <mouse class="tooltip linkBlue">(?)<span> <div>Closing the overlay or changing tabs will save your note. Character limit of 3000 per page.</div> <div class="red">Reloading your older save files will not have your recent changes. Excessive use will bloat save file size.</div> </span></mouse> <<textarea "_displayedTextArea" `LZString.decompress($journalNotes[_currentPage])`>> <<run $(() => { var notesTimer = null; $('#textarea--displayedtextarea').on('input change', e => { if (notesTimer) clearTimeout(notesTimer); if (V.options.notesAutoSave) notesTimer = setTimeout(saveText, 1000); }); $('#textarea--displayedtextarea').attr('maxlength','3000'); var saveText = () => { new Wikifier (null, "<<journalNotesTextareaSave>>"); } })>> <</widget>> <<widget "journalNotesTextareaSave">> <<set _noteElement to jQuery('#textarea--displayedtextarea')[0]>> <<if _noteElement and _noteElement.value>> <<set $journalNotes[_currentPage] to LZString.compress(_noteElement.value)>> /* put notes into save data immediately without the need to change passage */ <<run State.history[State.activeIndex].variables.journalNotes = clone(V.journalNotes)>> <</if>> <</widget>> <<widget "nDays">><<silently>> <<switch _args[0]>> <<case 0>><<set $_text_output to '<span class="gold">today</span>'>> <<case 1>><<set $_text_output to '<span class="gold">tomorrow</span>'>> <<default>><<set $_text_output to 'in <span class="gold"><<= _args[0]>></span> days'>> <</switch>> <</silently>><<print $_text_output>><</widget>><<widget "setupOptions">> <<set _optionsRefresh to false>> <<script>> settingsDisableElement(); window.Theme.initControl(); onInputChanged(() => { if(!T.optionsRefresh) T.optionsRefresh = true; if(T.globalThemeDefaults) Wikifier.wikifyEval("<<setFont true>>"); }); <</script>> <</widget>> <<widget "optionsgeneral">> <<setupOptions>> <<set _globalGeneralDefaults to JSON.parse(localStorage.getItem("dolDefaultGeneralSettings"))>> <<if !_globalGeneralDefaults>> <<set _globalGeneralDefaults to {}>> <</if>> <<if !_globalThemeDefaults>> <<set _globalThemeDefaults to {}>> <</if>> <<if $debug is 1>> /*<label><<checkbox "$notifyUpdate" false true autocheck>> Notify when there's a new game update available</label> <br>*/ /*<<link "Check for updates">> <<run checkNewVersion()>> <</link>> <br><br>*/ <</if>> <div class="settingsGrid"> <div> <<button "Save Current As Default">> <<set _toSaveDefaults to {}>> <<if $options.general>><<set _toSaveDefaults.general to $options.general>><</if>> <<if $options.dateFormat>><<set _toSaveDefaults.dateFormat to $options.dateFormat>><</if>> <<if $options.fahrenheit>><<set _toSaveDefaults.fahrenheit to $options.fahrenheit>><</if>> <<if $options.timestyle>><<set _toSaveDefaults.timestyle to $options.timestyle>><</if>> <<if $options.mapMovement>><<set _toSaveDefaults.mapMovement to $options.mapMovement>><</if>> <<if $options.mapLegacy>><<set _toSaveDefaults.mapLegacy to $options.mapLegacy>><</if>> <<if $options.mapMarkers>><<set _toSaveDefaults.mapMarkers to $options.mapMarkers>><</if>> <<if $options.mapTop>><<set _toSaveDefaults.mapTop to $options.mapTop>><</if>> <<if $options.closeButtonMobile>><<set _toSaveDefaults.closeButtonMobile to $options.closeButtonMobile>><</if>> <<if $options.passageCount>><<set _toSaveDefaults.passageCount to $options.passageCount>><</if>> <<if $options.playtime>><<set _toSaveDefaults.playtime to $options.playtime>><</if>> <<if $options.neverNudeMenus>><<set _toSaveDefaults.neverNudeMenus to $options.neverNudeMenus>><</if>> <<if $options.autosaveDisabled>><<set _toSaveDefaults.autosaveDisabled to $options.autosaveDisabled>><</if>> <<if $options.numberify_enabled>><<set _toSaveDefaults.numberify_enabled to $options.numberify_enabled>><</if>> <<run localStorage.setItem("dolDefaultGeneralSettings",JSON.stringify(_toSaveDefaults))>> <<replace #customOverlayContent>><<optionsgeneral>><</replace>> <</button>> <<button "Reset Defaults">> <<run localStorage.removeItem("dolDefaultGeneralSettings")>> <</button>> </div> </div> <div class="settingsGrid"> <div class="settingsHeader options"><span class="gold">General</span></div> <div class="settingsToggleItem"> <label> <<checkbox "$options.neverNudeMenus" false true autocheck>> Hide player nudity in menus </label> </div> <div class="settingsToggleItem"> <label data-disabledif="V.ironmanmode===true"> <<checkbox "$options.autosaveDisabled" false true autocheck>> Disable autosave on sleeping </label> </div> <div class="settingsToggleItem"> <span class="gold">Date Format:</span><<optionsThemeDefault "dateFormat">> <br> <label class="en-GB"><<radiobutton "$options.dateFormat" "en-GB" autocheck>> dd/mm/yyyy</label> | <label class="en-US"><<radiobutton "$options.dateFormat" "en-US" autocheck>> mm/dd/yyyy</label> | <label class="zh-CN"><<radiobutton "$options.dateFormat" "zh-CN" autocheck>> yyyy/mm/dd</label> </div> <div class="settingsToggleItem"> <span class="gold">Temperature Format:</span><<optionsThemeDefault "fahrenheit">> <br> <label><<checkbox "$options.fahrenheit" false true autocheck>> Use Fahrenheit for temperatures</label> </div> <div class="settingsToggleItem"> <label data-disabledif="!StartConfig.enableLinkNumberify"> <<checkbox "$options.numberify_enabled" 0 1 autocheck>> Enable numbered link navigation </label> <mouse class="tooltip-small linkBlue">(?)<span>Allows navigation with keyboard.</span></mouse> </div> <div class="settingsToggleItem"> Wakeup outfit menu style: <<listbox "$options.listboxOutfitsEnabled" autoselect>> <<option "Radio buttons" false>> <<option "List box" true>> <</listbox>> </div> </div> <hr> <div class="settingsGrid"> <div class="settingsHeader options">Sidebar</div> <div class="settingsToggleItem"> <span class="gold">Time format:</span> <br> <label><<radiobutton "$options.timestyle" "military" autocheck>> 24-hour</label> | <label><<radiobutton "$options.timestyle" "ampm" autocheck>> 12-hour</label> </div> <div class="settingsToggleItem"> <span class="gold">Condoms display:</span> <br> <label><<radiovar "$options.condomsDisplay" "standard">><<updatesidebarimg>><</radiovar>> Standard</label> | <label><<radiovar "$options.condomsDisplay" "none">><<updatesidebarimg>><</radiovar>> Hidden</label> </div> <div class="settingsToggleItem"> <span class="gold">Pepper sprays display:</span> <br> <label><<radiovar "$options.pepperSprayDisplay" "sprays">><<updatesidebarimg>><</radiovar>> Standard</label> | <label><<radiovar "$options.pepperSprayDisplay" "compact">><<updatesidebarimg>><</radiovar>> Compact</label> | <label><<radiovar "$options.pepperSprayDisplay" "none">><<updatesidebarimg>><</radiovar>> Hidden</label> </div> <div class="settingsToggleItem"> <label><<checkbox "$options.tipdisable" "t" "f" autocheck>> Enable sidebar hints and tips</label> </div> <div class="settingsToggleItem"> <label><<checkbox "$options.debugdisable" "t" "f" autocheck>> Enable additional error messages</label> </div> <div class="settingsToggleItem"> Show stats when sidebar is closed: <<listbox "$options.sidebarStats" autoselect>> <<option "Disabled" "disabled">> <<option "Limited" "limited">> <<option "Show all" "all">> <</listbox>> <div class="mobile-rec gold">It's a good idea to enable this on mobile!</div> </div> <div class="settingsToggleItem"> Show clock when sidebar is closed: <<listbox "$options.sidebarTime" autoselect>> <<option "Disabled" "disabled">> <<option "Above" "top">> <<option "Below" "bottom">> <</listbox>> <div class="mobile-rec gold">It's a good idea to enable this on mobile!</div> </div> <div class="settingsToggleItem"> <label><<checkbox "$options.clothingCaption" false true autocheck>> Show clothing descriptions in sidebar</label> <span class="tooltip-anchor linkBlue" tooltip="Still displays the description as a tooltip when hovering over the avatar when disabled.">(?)</span> </div> <div class="settingsToggleItem"> <label><<checkbox "$options.showCaptionText" false true autocheck>> Show caption text in sidebar</label> </div> <div class="settingsToggleItem"> <label><<checkbox "$options.showSidebarEffects" false true autocheck>> Show effects around player canvas</label> <span class="tooltip-anchor linkBlue" tooltip="<span class='blue'>Includes precipitation, underwater bubbles, and more. Can also be temporarily hidden by clicking the thermometer in the sidebar to make getting pictures of your PC easier!</span>">(?)</span> </div> </div> <hr> <div class="settingsGrid"> <div class="settingsHeader options">Combat</div> <div class="settingsToggleItem"> "Yourself" as a target: <label><<radiobutton "$options.targetYourself" false autocheck>> Disabled</label> | <label><<radiobutton "$options.targetYourself" true autocheck>> Enabled</label> </div> <div class="settingsToggleItem"> <label> <<checkbox "$options.scrollRemember" false true autocheck>> Restore scrolling position during combat </label> </div> <div class="settingsToggleItemWide"> Combat Controls: <<listbox "$options.combatControls" autoselect>> <<option "Radio Buttons" "radio">> <<option "Radio Buttons (In Columns)" "columnRadio">> <<option "Lists (No width limit)" "lists">> <<option "Lists (Width Limit)" "limitedLists">> <</listbox>> </div> </div> <<if $map isnot undefined>> <hr> <div class="settingsGrid"> <div class="settingsHeader options">Map</div> <div class="settingsToggleItem"> <label data-target="images"><<checkbox "$options.mapMovement" false true autocheck>> Enable map movement by clicking/touching the map icons</label> </div> <div class="settingsToggleItem"> <label data-target="images" data-disabledif="V.options.images===0"><<checkbox "$options.mapLegacy" false true autocheck>> Disable SVG map. Enable if town map is not visible.</label> </div> <div class="settingsToggleItem"> <label data-target="['images', 'maplegacy]" data-disabledif="V.options.images===0||V.options.mapLegacy"><<checkbox "$options.mapMarkers" false true autocheck>> Show clickable area on map</label> </div> <div class="settingsToggleItem"> <label data-target="images"><<checkbox "$options.mapTop" false true autocheck>> Move the map above the map links</label> </div> </div> <</if>> <hr> <div class="settingsGrid"> <div class="settingsHeader options">Overlays</div> <div class="settingsToggleItemWide"> <span class="gold">Position of the close-button for overlay menus:</span> <span class="tooltip-anchor linkBlue" tooltip="Updated next time overlay is opened">(?)</span> <br> <label><<radiobutton "$options.closeButtonMobile" false autocheck>> Normal</label> | <label><<radiobutton "$options.closeButtonMobile" true autocheck>> Mobile (Left-hand side)</label> </div> </div> <hr> <div class="settingsGrid"> <div class="settingsHeader options">Extra Info</div> <div class="settingsToggleItem"> <span class="gold">Display passage count in the top right of the screen:</span> <br> <label><<radiobutton "$options.passageCount" "disabled" autocheck>> Disable</label> <br> <label><<radiobutton "$options.passageCount" "changes" autocheck>> Passage Changes Count</label> <span class="tooltip-anchor linkBlue" tooltip="Total number of times a new passage has changed (Clicking on links in most cases). Passages such as the settings are excluded. Not tracked in versions '0.3.12.X' and older">(?)</span> <br> <label><<radiobutton "$options.passageCount" "total" autocheck>> Passage Count</label> <span class="tooltip-anchor linkBlue" tooltip="Total number of times a new passage has been loaded (Clicking on links in most cases). Passages such as the settings are excluded. Not tracked in versions '0.3.12.X' and older">(?)</span> </div> <div class="settingsToggleItem"> <span class="gold">Display play time in the top right of the screen:</span> <span class="tooltip-anchor linkBlue" tooltip="Formatted into 'h:mm:ss'. Be aware that leaving the game for hours alone, then saving will have its time tracked. To avoid, save the game before ending play and then load the save when you resume play. Not tracked in versions '0.3.13.X' and older">(?)</span> <br> <label><<radiobutton "$options.playtime" false autocheck>> Disable</label> <br> <label><<radiobutton "$options.playtime" true autocheck>> Enable</label> </div> </div> <<if $passage isnot "Start">> <br> <<button "Restart Game">> <<script>> SugarCube.UI.restart(); <</script>> <</button>> <</if>> <</widget>> <<widget "optionstheme">> <<setupOptions>> <<set _globalThemeDefaults to JSON.parse(localStorage.getItem("dolDefaultThemeSettings"))>> <<if !_globalThemeDefaults>> <<set _globalThemeDefaults to {}>> <</if>> <div class="settingsGrid"> <div> <<button "Save Current As Default">> <<set _toSaveDefaults to {}>> <<if $options.theme>><<set _toSaveDefaults.theme to $options.theme>><</if>> <<if $options.passageMaxWidth>><<set _toSaveDefaults.passageMaxWidth to $options.passageMaxWidth>><</if>> <<if $options.passageLineHeight>><<set _toSaveDefaults.passageLineHeight to $options.passageLineHeight>><</if>> <<if $options.overlayLineHeight>><<set _toSaveDefaults.overlayLineHeight to $options.overlayLineHeight>><</if>> <<if $options.sidebarLineHeight>><<set _toSaveDefaults.sidebarLineHeight to $options.sidebarLineHeight>><</if>> <<if $options.passageFontSize>><<set _toSaveDefaults.passageFontSize to $options.passageFontSize>><</if>> <<if $options.overlayFontSize>><<set _toSaveDefaults.overlayFontSize to $options.overlayFontSize>><</if>> <<if $options.sidebarFontSize>><<set _toSaveDefaults.sidebarFontSize to $options.sidebarFontSize>><</if>> <<if $options.font>><<set _toSaveDefaults.font to $options.font>><</if>> <<run localStorage.setItem("dolDefaultThemeSettings",JSON.stringify(_toSaveDefaults))>> <<replace #customOverlayContent>><<optionstheme>><</replace>> <</button>> <<button "Reset Defaults">> <<run localStorage.removeItem("dolDefaultThemeSettings")>> <</button>> </div> </div> <div class="settingsGrid"> <div class="settingsHeader options">Theme<<optionsThemeDefault "theme">></div> <div class="settingsToggleItemWide"> <span class="gold">Style:</span> <label><input type="radio" name="theme" value="system-default" /> Default</label> | <label><input type="radio" name="theme" value="dark" /> Dark</label> | <label><input type="radio" name="theme" value="arctic" /> Nord</label> | <label><input type="radio" name="theme" value="zen" /> Zenburn</label> | <label><input type="radio" name="theme" value="monokai" /> Monokai</label> | <label><input type="radio" name="theme" value="storm" /> Storm</label> | <label><input type="radio" name="theme" value="latte" /> Catppuccin Latte</label> | <label><input type="radio" name="theme" value="frappe" /> Catppuccin Frappé</label> | <label><input type="radio" name="theme" value="macchiato" /> Catppuccin Macchiato</label> | <label><input type="radio" name="theme" value="mocha" /> Catppuccin Mocha</label> <div class="small-description">Selected styles cannot currently be saved as the 'default' option, though they will carry over to new saves.</div> </div> </div> <hr> <div class="settingsGrid"> <div class="settingsHeader options">Line Height</div> <div class="settingsToggleItem"> Passage: <<listbox "$options.passageLineHeight" autoselect>> <<option "Default" undefined>> <<option "1" 1>> <<option "1.25" 1.25>> <<option "1.5" 1.5>> <<option "1.75" 1.75>> <<option "2" 2>> <</listbox>> <<optionsThemeDefault "passageLineHeight">> </div> <div class="settingsToggleItem"> Overlay: <<listbox "$options.overlayLineHeight" autoselect>> <<option "Default" undefined>> <<option "1" 1>> <<option "1.25" 1.25>> <<option "1.5" 1.5>> <<option "1.75" 1.75>> <<option "2" 2>> <</listbox>> <<optionsThemeDefault "overlayLineHeight">> </div> <div class="settingsToggleItemWide"> Sidebar: <<listbox "$options.sidebarLineHeight" autoselect>> <<option "Default" undefined>> <<option "1" 1>> <<option "1.25" 1.25>> <<option "1.5" 1.5>> <<option "1.75" 1.75>> <<option "2" 2>> <</listbox>> <<optionsThemeDefault "sidebarLineHeight">> </div> </div> <hr> <div class="settingsGrid"> <div class="settingsHeader options">Font Size</div> <div class="settingsToggleItem"> Passage: <<listbox "$options.passageFontSize" autoselect>> <<option "Default" undefined>> <<option "10px" 10>> <<option "12px" 12>> <<option "14px" 14>> <<option "16px" 16>> <<option "18px" 18>> <<option "20px" 20>> <</listbox>> <<optionsThemeDefault "passageFontSize">> </div> <div class="settingsToggleItem"> Overlay <span class="tooltip-anchor linkBlue" tooltip="Default is equivalent to passage font size.">(?)</span>: <<listbox "$options.overlayFontSize" autoselect>> <<option "Default" undefined>> <<option "10px" 10>> <<option "12px" 12>> <<option "14px" 14>> <<option "16px" 16>> <<option "18px" 18>> <<option "20px" 20>> <</listbox>> <<optionsThemeDefault "overlayFontSize">> </div> <div class="settingsToggleItemWide"> Sidebar: <<listbox "$options.sidebarFontSize" autoselect>> <<option "Default" undefined>> <<option "12px" 12>> <<option "14px" 14>> <<option "16px" 16>> <<option "18px" 18>> <<option "20px" 20>> <</listbox>> <<optionsThemeDefault "sidebarFontSize">> </div> </div> <hr> <div class="settingsGrid"> <div class="settingsHeader options">Font Style</div> <div class="settingsToggleItemWide"> <<optionsThemeDefault "font">> <label><<radiobutton "$options.font" "" `$options.font is undefined ? 'checked' : 'autocheck'`>> Use system default</label> <br> <span class="gold">Sans-serif:</span> <label class="Arial"><<radiobutton "$options.font" "Arial" autocheck>> Arial</label> | <label class="Verdana"><<radiobutton "$options.font" "Verdana" autocheck>> Verdana</label> <br> <span class="gold">Serif:</span> <label class="TimesNewRoman"><<radiobutton "$options.font" "TimesNewRoman" autocheck>> Times New Roman</label> | <label class="Georgia"><<radiobutton "$options.font" "Georgia" autocheck>> Georgia</label> | <label class="Garamond"><<radiobutton "$options.font" "Garamond" autocheck>> Garamond</label> <br> <span class="gold">Monospace:</span> <label class="CourierNew"><<radiobutton "$options.font" "CourierNew" autocheck>> Courier New</label> | <label class="LucidaConsole"><<radiobutton "$options.font" "LucidaConsole" autocheck>> Lucida Console</label> | <label class="Monaco"><<radiobutton "$options.font" "Monaco" autocheck>> Monaco</label> <br> <span class="gold">Accessibility:</span> <label class="OpenDyslexicMono"><<radiobutton "$options.font" "OpenDyslexicMono" autocheck>> OpenDyslexic Mono</label> | <label class="ComicSans"><<radiobutton "$options.font" "ComicSans" autocheck>> Comic Sans</label> </div> </div> <hr> <div class="settingsGrid"> <div class="settingsHeader options">Text Animations</div> <div class="settingsToggleItemWide"> <label data-target="options.textAnimsAll"> <<checkbox "$options.textAnimsAll" false true autocheck { onToggle: t => { $("#prevDrunk").replaceWith(Wikifier.wikifyEval('<span id="prevDrunk" @class="basicDrunkCss()">Drunk sway</span>')); $("#prevHeat").replaceWith(Wikifier.wikifyEval('<span id="prevHeat" @class="basicJitterCss()">Heat/rut jitter</span>')); $("#prevHypno").replaceWith(Wikifier.wikifyEval('<span id="prevHypno"><<hypnosisText "Hypnosis spiral">></span>')); }}>> Uncheck to disable all text animations </label> <br> <<checkbox "$options.textAnimsDrunk" false true autocheck { onToggle: t => { $("#prevDrunk").replaceWith(Wikifier.wikifyEval('<span id="prevDrunk" @class="basicDrunkCss()">Drunk sway</span>')); }}>> <span id="prevDrunk" @class="basicDrunkCss()">Drunk sway</span> <br> <<checkbox "$options.textAnimsHeat" false true autocheck { onToggle: t => { $("#prevHeat").replaceWith(Wikifier.wikifyEval('<span id="prevHeat" @class="basicJitterCss()">Heat/rut jitter</span>')); }}>> <span id="prevHeat" @class="basicJitterCss()">Heat/rut jitter</span> <br> <<checkbox "$options.textAnimsHypno" false true autocheck { onToggle: t => { $("#prevHypno").replaceWith(Wikifier.wikifyEval('<span id="prevHypno"><<hypnosisText "Hypnosis spiral">></span>')); }}>> <span id="prevHypno"><<hypnosisText "Hypnosis spiral">></span> </div> </div> <</widget>> <<widget "optionsThemeDefault">> <<if _args[0]>> <span @id="'optionsThemeDefault-' + _args[0]"> <<if _globalThemeDefaults[_args[0]]>> Default: (<<print _globalThemeDefaults[_args[0]]>>) <<elseif _globalGeneralDefaults[_args[0]]>> Default: (<<print _globalGeneralDefaults[_args[0]]>>) <</if>> </span> <</if>> <</widget>> <<widget "optionsperformance">> <<setupOptions>> <<if StartConfig.enableImages is true>> <div class="settingsGrid"> <div class="settingsHeader options">Images</div> <div class="settingsToggleItem"> <label><<checkbox "$options.images" 0 1 autocheck>> Enable images</label> <span class="tooltip-anchor linkBlue" tooltip="Images may not load properly on older Androids.">(?)</span> </div> <div class="settingsToggleItem"> <label data-target="options.images" data-disabledif="V.options.images===0"> <<checkbox "$options.combatImages" 0 1 autocheck>> Enable combat images </label> </div> <div class="settingsToggleItem"> <label data-target="options.images" data-disabledif="V.options.images===0"><<checkbox "$options.silhouetteEnabled" false true autocheck>> Enable NPC silhouettes</label> </div> </div> <hr> <div class="settingsGrid"> <div class="settingsHeader options">Rendering</div> <div class="settingsToggleItem"> <label data-target="options.images" data-disabledif="V.options.images===0"><<checkbox "$options.weatherUpdate" false true autocheck>> Use new weather renderer for sidebar</label> </div> <div class="settingsToggleItem"> <label data-target='["options.images", "weatherupdate"]' data-disabledif="V.options.images===0||V.options.weatherUpdate===false"><<checkbox "$options.reflections" false true autocheck>> Render water reflections </label> <span class="tooltip-anchor linkBlue" tooltip="Could cause performance issues on old devices.">(?)</span> </div> <div class="description">Close the options menu for the change to apply.</div> </div> <span class="gold">Animations</span> <div class="settingsGrid"> <div class="settingsToggleItem"> <label data-target="options.images" data-disabledif="V.options.images===0"> <<checkbox "$options.sidebarAnimations" false true autocheck>> Sidebar character animations </label> </div> <div class="settingsToggleItem"> <label data-target='["options.images", "sidebaranimations"]' data-disabledif="V.options.images===0||V.options.sidebarAnimations===false"> <<checkbox "$options.blinkingEnabled" false true autocheck>> Animate eyes blinking </label> </div> <div class="settingsToggleItem"> <label data-target="images" data-disabledif="V.options.images===0||V.options.combatImages===0"> <<checkbox "$options.combatAnimations" false true autocheck>> Combat animations </label> <span class="tooltip-anchor linkBlue" tooltip="Disabling may help improve performance during combat.">(?)</span> </div> <<if $eyelidTEST is true>> <div class="settingsToggleItem"> <label data-target='["options.images", "sidebaranimations"]' data-disabledif="V.options.images===0||V.options.sidebarAnimations===false"> <<checkbox "$options.halfClosedEnabled" false true autocheck>> Enable half-closed eyes graphics </label> </div> <div class="description"> Draw eyelids in sidebar as half-closed when highly aroused. </div> <</if>> </div> <hr> <div> <div class="settingsGrid" data-target='["images", "characterLightEnabled"]' data-disabledif="V.options.images===0||V.options.characterLightEnabled===false" oninput='Renderer.refresh(Renderer.locateModel("lighting", "sidebar"));'> <div class="settingsHeader options">Character Lighting</div> <div class="settingsToggleItem"> <label> Spotlight<br> <<numberslider "$options.lightSpotlight" $options.lightSpotlight 0 1 0.05>> </label> </div> <div class="settingsToggleItem"> <label> Gradient<br> <<numberslider "$options.lightGradient" $options.lightGradient 0 1 0.05>> </label> </div> <div class="settingsToggleItem"> <label> Glow<br> <<numberslider "$options.lightGlow" $options.lightGlow 0 1 0.05>> </label> </div> <div class="settingsToggleItem"> <label> Flat<br> <<numberslider "$options.lightFlat" $options.lightFlat 0 1 0.05>> </label> </div> <div class="settingsToggleItem"> <label> Colour Component<br> <<numberslider "$options.lightTFColor" $options.lightTFColor 0 1 0.05>> <span class="description">Requires Angel/Demon transformation</span> </label> </div> </div> <div style="margin-left: 10px" onchange="new Wikifier(null, '<<updatesidebarimg>>')"> <label data-target="options.images" data-disabledif="V.options.images===0"> <<checkbox "$options.characterLightEnabled" false true autocheck>> Enable character lighting </label> </div> </div> <hr> <div> <div class="settingsGrid" data-target='["images", "combatImages", "combatLightEnabled"]' data-disabledif="V.options.images===0||!V.options.combatImages||V.options.characterLightEnabled===false" oninput='Renderer.refresh(Renderer.locateModel("lighting", "combat-lighting"));Renderer.refresh(Renderer.locateModel("lighting", "combat-lighting-demo"));'> <div class="settingsHeader options">Combat Lighting</div> <div class="settingsToggleItemWide d-flex justify-content-center lighting-demo-container"> <<setupCombatLightingDemo>> </div> <div class="settingsToggleItem"> <label> Y Offset<br> <<numberslider "$options.combatLightOffsetY" $options.combatLightOffsetY 0 128 1>> </label> </div> <div class="settingsToggleItem"> <label> Spotlight intensity<br> <<numberslider "$options.combatLightSpotlight" $options.combatLightSpotlight 0 1 0.05>> </label> </div> <div class="settingsToggleItem"> <label> Spotlight width<br> <<numberslider "$options.combatLightSpotlightX" $options.combatLightSpotlightX 0 128 1>> </label> </div> <div class="settingsToggleItem"> <label> Spotlight height<br> <<numberslider "$options.combatLightSpotlightY" $options.combatLightSpotlightY 0 48 1>> </label> </div> <div class="settingsToggleItem"> <label> Gradient<br> <<numberslider "$options.combatLightGradient" $options.combatLightGradient 0 1 0.05>> </label> </div> <div class="settingsToggleItem"> <label> Glow<br> <<numberslider "$options.combatLightGlow" $options.combatLightGlow 0 1 0.05>> </label> </div> <div class="settingsToggleItem"> <label> Flat<br> <<numberslider "$options.combatLightFlat" $options.combatLightFlat 0 1 0.05>> </label> </div> <div class="settingsToggleItem"> <label> Colour Component<br> <<numberslider "$options.combatLightTFColor" $options.combatLightTFColor 0 1 0.05>> <span class="description">Requires Angel/Demon transformation</span> </label> </div> </div> <div style="margin-left: 10px" onchange="new Wikifier(null, '<<updateCombatLightingDemo .lighting-demo-container>>')"> <label data-target='["images", "combatImages"]' data-disabledif="V.options.images===0||!V.options.combatImages"> <<checkbox "$options.combatLightEnabled" false true autocheck>> Enable combat lighting </label> </div> </div> <<else>> <br> Images disabled <</if>> <hr> <div class="settingsGrid"> <div class="settingsHeader options">History Depth</div> <div class="settingsToggleItem"> Enables going back in history up to N-1 passages. Useful for reporting bugs or undoing decisions. <hr> <label> <<checkbox "$options.historyControls" false true autocheck>> Display history controls in the sidebar </label> </div> <div class="settingsToggleItem"> <span class="gold">States saved to memory:</span> <<numberslider "$options.maxStates" `$options.maxStates gt 20 ? 20 : $options.maxStates` 1 20 1 $ironmanmode>> <br><br> </div> </div> <</widget>> <<widget "setupCombatLightingDemo">> <<run Renderer.refresh(Renderer.locateModel("lighting", "combat-lighting-demo"))>> <<selectmodel "lighting" "combat-lighting-demo">> <<configureCombatLighting>> <<if $passage isnot "Start">> <<rendermodel "lighting position-absolute z-hidden">> <<selectmodel "combatMainPc" "combatMainDemo">> <<rendermodel "combatMainPc">> <<else>> <<rendermodel "lighting z-hidden">> <</if>> <</widget>> <<widget "updateCombatLightingDemo">> <<if elementExists(_args[0])>> <<replace _args[0]>><<setupCombatLightingDemo>><</replace>> <</if>> <</widget>> <<widget "optionsadvanced">> <<setupOptions>> <div class="settingsGrid"> <div class="settingsHeader options">Advanced Settings</div> <div class="settingsToggleItem"> <label> <<checkbox "$options.numpad" false true autocheck>> Enable numpad </label> <span class="tooltip-anchor linkBlue" tooltip="Useful on mobile if links break due to translation software.">(?)</span> </div> <div class="settingsToggleItem"> <label> <<checkbox "$options.useNarrowMarket" false true autocheck>> Use "narrow screen" version of the market inventory </label> </div> <div class="settingsToggleItem"> <label><<checkbox "$options.showDebugRenderer" false true autocheck>> Enable renderer debugger</label> </div> <<if $debug is 1 or $options.showCombatTools>> <div class="settingsToggleItem"> <label><<checkbox "$options.showCombatTools" false true autocheck>> Enable combat tooling</label> </div> <</if>> <div class="settingsToggleItem"> <label onclick="setTimeout(() => {toggleConfirmDialogUponTabClose();}, 100)"> <<checkbox "$options.confirmDialogUponTabClose" false true autocheck>> Prompt confirmation dialog upon closing tab </label> </div> </div> <hr> <div class="settingsGrid"> <div class="settingsHeader options">Game Zoom</div> <div class="settingsToggleItemWide"> <span class="gold">Zoom Size:</span> <span class="tooltip-anchor linkBlue" tooltip-width="460" tooltip="Will allow you to adjust the size of game elements and text.<br><br><span class='red'> Please be careful with this setting! Only save if you are happy with the changes made, as reloading the game will reset it to the last value used in that save. Depending on the device and browser, the setting may break entirely and may cause unexpected effects. </span>">(?)</span> <br> <span class="description red">Not supported in all browsers</span> <br> <<numberslider "$options.zoom" $options.zoom 50 200 1>> <br><br> <input type="button" value="Set" onclick='zoom()'/> <input type="button" value="Reset" onclick='zoom(100)'/> </div> </div> <</widget>> <<widget "optionsinformation">> <div class="p-2 text-align-center"> <h3>People of Interest</h3> <div class="m-2"> <span class="gold">Creator: </span><span>Vrelnir</span> </div> <div class="m-2"> <span class="gold">Former developer: </span><span>PurityGuy</span> </div> </div> <div class="p-2 text-align-center"> <h3>Useful Resources</h3> <<linkinformation>> <div class="m-2"> <p class="gold m-0">Unofficial Wiki</p> [[degreesoflewdity.miraheze.org|"https://degreesoflewdity.miraheze.org/wiki/Main_Page"]] </div> </div> <</widget>> <<widget "setFont">> <<set _globalThemeDefaults to JSON.parse(localStorage.getItem("dolDefaultThemeSettings"))>> <<if !_globalThemeDefaults>> <<set _globalThemeDefaults to {}>> <</if>> <<removeclass "#passages" "passageMaxWidth50">> <<removeclass "#passages" "passageMaxWidth55">> <<removeclass "#passages" "passageMaxWidth60">> <<removeclass "#passages" "passageMaxWidth65">> <<removeclass "#passages" "passageMaxWidth70">> <<removeclass "#passages" "passageMaxWidth75">> <<if $options.passageMaxWidth>><<addclass "#passages" `"passageMaxWidth" + $options.passageMaxWidth`>><</if>> <<removeclass "#passages" "fontSize10">> <<removeclass "#passages" "fontSize12">> <<removeclass "#passages" "fontSize14">> <<removeclass "#passages" "fontSize16">> <<removeclass "#passages" "fontSize18">> <<removeclass "#passages" "fontSize20">> <<if $options.passageFontSize>><<addclass "#passages" `"fontSize" + $options.passageFontSize`>><</if>> <<removeclass "#story-caption" "fontSize12">> <<removeclass "#story-caption" "fontSize14">> <<removeclass "#story-caption" "fontSize16">> <<removeclass "#story-caption" "fontSize18">> <<removeclass "#story-caption" "fontSize20">> <<if $options.sidebarFontSize>><<addclass "#story-caption" `"fontSize" + $options.sidebarFontSize`>><</if>> <<if _args[0]>><!--For elements that are not sugarcube specific and wont be loaded when the widget is normally called--> <<removeclass "#customOverlay" "fontSize10">> <<removeclass "#customOverlay" "fontSize12">> <<removeclass "#customOverlay" "fontSize14">> <<removeclass "#customOverlay" "fontSize16">> <<removeclass "#customOverlay" "fontSize18">> <<removeclass "#customOverlay" "fontSize20">> <<if $options.overlayFontSize>><<addclass "#customOverlay" `"fontSize" + $options.overlayFontSize`>><</if>> <</if>> <<removeclass "#passages" "lineHeight1">> <<removeclass "#passages" "lineHeight125">> <<removeclass "#passages" "lineHeight15">> <<removeclass "#passages" "lineHeight175">> <<removeclass "#passages" "lineHeight2">> <<if $options.passageLineHeight>><<addclass "#passages" `"lineHeight" + $options.passageLineHeight.toString().replace('.','')`>><</if>> <<removeclass "#story-caption" "lineHeight1">> <<removeclass "#story-caption" "lineHeight125">> <<removeclass "#story-caption" "lineHeight15">> <<removeclass "#story-caption" "lineHeight175">> <<removeclass "#story-caption" "lineHeight2">> <<if $options.sidebarLineHeight>><<addclass "#story-caption" `"lineHeight" + $options.sidebarLineHeight.toString().replace('.','')`>><</if>> <<if _args[0]>> <<removeclass "#customOverlay" "lineHeight1">> <<removeclass "#customOverlay" "lineHeight125">> <<removeclass "#customOverlay" "lineHeight15">> <<removeclass "#customOverlay" "lineHeight175">> <<removeclass "#customOverlay" "lineHeight2">> <<if $options.overlayLineHeight>><<addclass "#customOverlay" `"lineHeight" + $options.overlayLineHeight.toString().replace('.','')`>><</if>> <</if>> <<removeclass "html" "Arial">> <<removeclass "html" "Verdana">> <<removeclass "html" "TimesNewRoman">> <<removeclass "html" "Georgia">> <<removeclass "html" "Garamond">> <<removeclass "html" "CourierNew">> <<removeclass "html" "LucidaConsole">> <<removeclass "html" "Monaco">> <<removeclass "html" "ComicSans">> <<removeclass "html" "OpenDyslexicMono">> <<if $options.font>><<addclass "html" $options.font>><</if>> <!--Adding to the body would remove it on changing passage--> <</widget>>/* Displays overlay (#customOverlay element) with title and content defined by provided key. */ <<widget "overlayReplace">> <<set _key to _args[0]>> <<if !_key>> <<exit>> <</if>> <<if _currentOverlay is _key>> <<run closeOverlay()>> <<exit>> <</if>> <<script>> if (T.buttons.activeTab != -1) { T.buttons.toggle(); updateOptions(); } T.currentOverlay = T.key; $("#customOverlay").removeClass("hidden").parent().removeClass("hidden"); $("#customOverlay").attr("data-overlay", T.currentOverlay); <</script>> <<switch _key>> <<case "characteristics">> <<replace #customOverlayTitle>><<titleCharacteristics>><</replace>> <<replace #customOverlayContent>><<characteristics>><</replace>> <<case "social">> <<replace #customOverlayTitle>><<titleSocial>><</replace>> <<replace #customOverlayContent>><<social>><</replace>> <<case "traits">> <<replace #customOverlayTitle>><<titleTraits>><</replace>> <<replace #customOverlayContent>><<traits>><</replace>> <<case "journal">> <<replace #customOverlayTitle>><<titleJournal>><</replace>> <<replace #customOverlayContent>><<journal>><</replace>> <<case "journalNotes">> <<replace #customOverlayTitle>><<titlejournalNotes>><</replace>> <<replace #customOverlayContent>><<journalNotes>><</replace>> <<case "statistics">> <<replace #customOverlayTitle>><<titleStats>><</replace>> <<replace #customOverlayContent>><<statistics>><</replace>> <<case "gameFeats">> <<replace #customOverlayTitle>><<titleFeats>><</replace>> <<replace #customOverlayContent>><<feats>><</replace>> <<case "startFeats">> <<replace #customOverlayTitle>><<titleFeats>><</replace>> <<replace #customOverlayContent>><<feats>><</replace>> <<case "cheats">> <<replace #customOverlayTitle>><<titleCheats>><</replace>> <<replace #customOverlayContent>><<cheats>><</replace>> <<case "options">> <<replace #customOverlayTitle>><<titleOptions>><</replace>> <<replace #customOverlayContent>><<optionsgeneral>><</replace>> <<case "saves">> <<replace #customOverlayTitle>><<titleSaves>><</replace>> <<replace #customOverlayContent>><<saves>><</replace>> <<case "export">> <<replace #customOverlayTitle>><<titleSaves>><</replace>> <<replace #customOverlayContent>><<optionsExportImport>><</replace>> <<case "blackjackHelp">> <<replace #customOverlayTitle>><<titleBlackjackHelp>><</replace>> <<replace #customOverlayContent>><<blackjackHelp>><</replace>> <<case "eventExtraInfo">> <<replace #customOverlayTitle>><<titleEventInfo>><</replace>> <<replace #customOverlayContent>><<eventExtraInfo>><</replace>> <<case "canvasModel">> <<replace #customOverlayTitle>><<titleDebugRenderer>><</replace>> <<replace #customOverlayContent>><<canvasModelEditor>><</replace>> <<case "outfitEditor">> <<replace #customOverlayTitle>><<titleOutfitEditor>><</replace>> <<replace #customOverlayContent>><<outfitEditor>><</replace>> <</switch>> <</widget>> <<widget "titleCharacteristics">> <<setupTabs>> <div id="overlayTabs" class="tab"> <<closeButtonMobile>> <<button "Characteristics">> <<toggleTab>> <<replace #customOverlayContent>><<characteristics>><</replace>> <</button>> <<colourCodes>> </div> <<closeButton>> <</widget>> <<widget "titleSocial">> <<setupTabs>> <div id="overlayTabs" class="tab"> <<closeButtonMobile>> <<button "Social">> <<toggleTab>> <<replace #customOverlayContent>><<social>><</replace>> <</button>> <<colourCodes>> </div> <<closeButton>> <</widget>> <<widget "titleTraits">> <<setupTabs>> <div id="overlayTabs" class="tab"> <<closeButtonMobile>> <<button "Traits">> <<toggleTab>> <<replace #customOverlayContent>><<traits>><</replace>> <</button>> </div> <<closeButton>> <</widget>> <<widget "titleJournal">> <<setupTabs>> <div id="overlayTabs" class="tab"> <<closeButtonMobile>> <<button "Journal">> <<journalNotesTextareaSave>> <<toggleTab>> <<replace #customOverlayContent>><<journal>><</replace>> <</button>> <<button "Notes">> <<toggleTab>> <<set $tempDisable to true>> <<replace #customOverlayContent>><<journalNotes>><</replace>> <</button>> </div> <<closeButton>> <</widget>> <<widget "titlejournalNotes">> <<setupTabs>> <div id="overlayTabs" class="tab"> <<closeButtonMobile>> <<button "Journal">> <<journalNotesTextareaSave>> <<toggleTab>> <<replace #customOverlayContent>><<journal>><</replace>> <</button>> <<button "Notes">> <<toggleTab>> <<set $tempDisable to true>> <<replace #customOverlayContent>><<journalNotes>><</replace>> <</button>> </div> <<closeButton>> <</widget>> <<widget "titleStats">> <<setupTabs>> <div id="overlayTabs" class="tab"> <<closeButtonMobile>> <<button "Statistics">> <<toggleTab>> <<replace #customOverlayContent>><<statistics>><</replace>> <</button>> <<button "Extra stats (spoilers)">> <<toggleTab>> <<if $options.skipStatisticsConfirmation>> <<replace #customOverlayContent>><<extraStatistics>><</replace>> <<else>> <<replace #customOverlayContent>><<extraStatisticsWarning>><</replace>> <</if>> <</button>> </div> <<closeButton>> <</widget>> <<widget "titleFeats">> <<setupTabs>> <div id="overlayTabs" class="tab"> <<closeButtonMobile>> <<button "Feats">> <<toggleTab>> <<replace #customOverlayContent>><<feats>><</replace>> <</button>> </div> <<closeButton>> <</widget>> <<widget "titleCheats">> <<setupTabs>> <div id="overlayTabs" class="tab"> <<closeButtonMobile>> <<button "Stats">> <<toggleTab>> <<replace #cheatsShown>><<cheats-characterStats>><</replace>> <<run $("#customOverlayContent").scrollTop(0);>> <</button>> <<button "Visual">> <<toggleTab>> <<replace #cheatsShown>><<cheats-characterVisual>><</replace>> <<run $("#customOverlayContent").scrollTop(0);>> <</button>> <<button "NPCs">> <<toggleTab>> <<replace #cheatsShown>><<cheats-npcs>><</replace>> <<run $("#customOverlayContent").scrollTop(0);>> <</button>> <<if !$statFreeze>> <<button "Teleport">> <<toggleTab>> <<replace #cheatsShown>><<cheats-teleport>><</replace>> <<run $("#customOverlayContent").scrollTop(0);>> <</button>> <</if>> <<button "Other">> <<toggleTab>> <<replace #cheatsShown>><<cheats-other>><</replace>> <<run $("#customOverlayContent").scrollTop(0);>> <</button>> </div> <<closeButton>> <</widget>> <<widget "titleOptions">> <<setupTabs>> <div id="overlayTabs" class="tab"> <<closeButtonMobile>> <<button "General">> <<toggleTab>> <<replace #customOverlayContent>><<optionsgeneral>><</replace>> <</button>> <<button "Theme">> <<toggleTab>> <<replace #customOverlayContent>><<optionstheme>><</replace>> <</button>> <<button "Performance">> <<toggleTab>> <<replace #customOverlayContent>><<optionsperformance>><</replace>> <</button>> <<button "Advanced">> <<toggleTab>> <<replace #customOverlayContent>><<optionsadvanced>><</replace>> <</button>> <<button "Information">> <<toggleTab>> <<replace #customOverlayContent>><<optionsinformation>><</replace>> <</button>> </div> <<closeButton>> <</widget>> <<widget "titleSaves">> <<setupTabs>> <div id="overlayTabs" class="tab"> <<closeButtonMobile>> <<button "Saves">> <<toggleTab>> <<replace #customOverlayContent>><<saves>><</replace>> <</button>> <<button "Export/Import">> <<toggleTab>> <<replace #customOverlayContent>><<optionsExportImport>><</replace>> <</button>> </div> <<closeButton>> <</widget>> <<widget "titleBlackjackHelp">> <<setupTabs>> <div id="overlayTabs" class="tab"> <<closeButtonMobile>> <<button "Blackjack Guide">> <<toggleTab>> <<replace #customOverlayContent>><<blackjackHelp>><</replace>> <</button>> </div> <<closeButton>> <</widget>> <<widget "titleEventInfo">> <<setupTabs>> <div id="overlayTabs" class="tab"> <<closeButtonMobile>> <<button "Event Info">> <<toggleTab>> <<replace #customOverlayContent>><<eventExtraInfo>><</replace>> <</button>> </div> <<closeButton>> <</widget>> <<widget "titleDebugRenderer">> <<setupTabs 2>> <div id="overlayTabs" class="tab"> <<closeButtonMobile>> <<button "Layers">> <<toggleTab>> <<replace #customOverlayContent>><<canvasLayersEditor>><</replace>> <</button>> <<button "Colours">> <<toggleTab>> <<replace #customOverlayContent>><<canvasColoursEditor `$cheatsEnabled is true`>><</replace>> <</button>> <<button "Model">> <<toggleTab>> <<replace #customOverlayContent>><<canvasModelEditor>><</replace>> <</button>> <<if Renderer.lastAnimation>> <<button "Start/Stop Animation">> <<script>> if (Renderer.lastAnimation.playing) { Renderer.lastAnimation.stop(); } else { Renderer.lastAnimation.start(); } <</script>> <</button>> <</if>> <<button "Refresh Caches">> <<script>> Renderer.Stats.logmsgLoad.value = ""; Renderer.Stats.logmsgRender.value = ""; Renderer.Stats.logmsgAnimate.value = ""; Renderer.ImageCaches = {}; Renderer.ImageErrors = {}; Renderer.lastAnimation.invalidateCaches(); Renderer.invalidateLayerCaches(Renderer.lastModel.layerList); Renderer.lastModel.redraw(); <</script>> <</button>> <<script>> output.append(Renderer.Stats.logmsgLoad.bindText($("<div class='rendererOutput'>")[0])); output.append(Renderer.Stats.logmsgRender.bindText($("<div class='rendererOutput'>")[0])); output.append(Renderer.Stats.logmsgAnimate.bindText($("<div class='rendererOutput'>")[0])); <</script>> </div> <<closeButton>> <</widget>> <<widget "titleOutfitEditor">> <<setupTabs>> <div id="overlayTabs" class="tab"> <<closeButtonMobile>> <<button "Outfit Editor">> <<toggleTab>> <<replace #customOverlayContent>><<outfitEditor>><</replace>> <</button>> </div> <<closeButton>> <</widget>> <<widget "colourCodes">> <mouse class="tooltip-small colourCodes"><span>Colour Codes</span> <span> <i class="red">Terrible</i> | <i class="pink">Bad</i> | <i class="purple">Poor</i> | <i class="blue">Okay</i> | <i class="lblue">Decent</i> | <i class="teal">Good</i> | <i class="green">Excellent</i> </span> </mouse> <</widget>> <<widget "setupTabs">> <<script>> T.tab = new window.Tab("overlayTabs", "tab-selected"); let active = V.options.closeButtonMobile ? 1 : 0; T.tab.setActive((T.args[0] || 0) + active); <</script>> <</widget>> <<widget "toggleTab">> <<run T.tab.toggle()>> <</widget>> <<widget "closeButton">> <<if !$options.closeButtonMobile>> <div class="customOverlayClose" onclick="closeOverlay()"></div> <</if>> <</widget>> <<widget "closeButtonMobile">> <<if $options.closeButtonMobile>> <<button "Close">> <<run closeOverlay()>> <</button>> <</if>> <</widget>><<widget "optionsExportImport">> <<if SugarCube.Browser.isMobile.Android is true>> <span class="red">Note that saving and loading from file may not work on Android devices in all environments.</span> <</if>> <<set $_errorCount to document.querySelectorAll('.error').length>> <<set $_dolErrorCount to document.querySelectorAll('.dol-error').length>> <<set $_customErrorCount to Errors.log.length>> <<set $_bypassRestrictions to $debug is 1 or $_errorCount gt 0 or $_dolErrorCount gt 0 or $_customErrorCount gt 0>> Load from file: <input id="saveImport" type="file" value="Load from file" onchange="importSave(this.files)"> <br><br> <<if tags().includes("nosave")>> You can't export your current save here! <<elseif $ironmanmode>> <<if $_bypassRestrictions>> <input type="button" class="saveMenuButton" value="Save to file" onclick="IronMan.exportCurrent()"> <<else>> Unable to save to file during ironman-mode. Only autosaves can be exported. <</if>> <<elseif ($replayScene is undefined) or $_bypassRestrictions>> <<set _exportName to "'degrees-of-lewdity"+($saveName isnot ''?'-'+$saveName:'')+ "'">> <input type="button" class="saveMenuButton" value="Save to file" @onclick="'SugarCube.Save.export('+_exportName+')'"> <<else>> Unable to save to file currently. <</if>> <br><br> <span class="gold">Text Import/Export</span> <<if !($dancing is 0 and $combat is 0 and $replayScene is undefined)>> <span class="red"><b>Combat event active, only use resulting save data for bug reporting!!</b></span><br> <</if>> This feature lets you transfer saves between devices when one or more does not allow access to save files, such as on Android. <br> To save, click on "Get Save Data", then copy and paste the save data where required. <br> To load, paste in the save data, then click "Load Save Data". <br> To transfer to and from Android, it is recommended to use email or a service such as pastebin. Please ensure that the start and the end of the save are exact to prevent issues. <br> Click on "Copy Text Area" to copy the current contents for you. The button name will change to "Copying Error" if your device or browser does not support it. <br><br> <textarea id="saveDataInput" rows="4" cols="40" onClick="if(V.disableAutoSelect == false)this.select();"><<if _presetData>>_presetData<</if>></textarea> <br> <input type="button" class="saveMenuButton" value="Clear Text Box" onclick="clearTextBox('saveDataInput')"/> <input type="button" class="saveMenuButton" value="Top of Text Box" onclick="topTextArea('saveDataInput')"/> <input type="button" class="saveMenuButton" value="Bottom of Text Box" onclick="bottomTextArea('saveDataInput')"/> <<if $ironmanmode is true || tags().includes("nosave") || V.replayScene !== undefined>> <input type="button" value="Get Save Data" disabled> <<else>> <input type="button" class="saveMenuButton" value="Get Save Data" onclick="getSaveData()"/> <</if>> <input type="button" class="saveMenuButton" value="Load Save Data" onclick="loadSaveData()"/> <input id="CopyTextArea" class="saveMenuButton" type="button" value="Copy Text Area" onclick="copySavedata('saveDataInput')"> <br><br> <label> <<print '<<checkbox "$disableAutoSelect" false true '+($disableAutoSelect is true? "checked":"")+'>>'>> Disables auto select. </label> <br><br> <<if $saveDetails isnot undefined>> How many days after exporting will the export warning show: <br> <label><<radiobutton "$saveDetails.exported.frequency" 5 autocheck>>5</label> | <label><<radiobutton "$saveDetails.exported.frequency" 10 autocheck>>10</label> | <label><<radiobutton "$saveDetails.exported.frequency" 15 autocheck>>15</label> | <label><<radiobutton "$saveDetails.exported.frequency" 20 autocheck>>20</label> | <label><<radiobutton "$saveDetails.exported.frequency" 30 autocheck>>30</label> | <label><<radiobutton "$saveDetails.exported.frequency" 60 autocheck>>60</label> | <label><<radiobutton "$saveDetails.exported.frequency" 365 autocheck>>365</label> <</if>> <</widget>><<widget "saves">> <<if StartConfig.sneaky>> <div class="sneaky-warning"> <h3>Warning</h3> <p> Please export any saves you plan to use before playing this <b>Sneaky Build</b>. If any bugs or glitches occur, we strongly advise reporting the issue directly to our discord server. Be careful when saving, especially if the issue is affecting your ability to play the game. </p> </div> <br> <</if>> <<if $ironmanmode is true>> <span style="background-color: #ffffff1a;">Ironman mode enabled:</span> <ul class="ironman-ul"><li>You can save your game in Ironman mode, but it will lead you back to the Start menu.</li> <li style="text-decoration: underline;">Loading an Ironman save <span style="color: #ff0000;">will delete the save</span> after loading it</li> <li>Automatic save every 5 to 8 days (in-game time), those won't be deleted on loading. Regular auto-saves that used to happen after sleep are disabled. </li> <li>Cheats disabled</li> <li>Ironman saves are recognisable by the <img src="img/ui/SilverCoin.gif" style="max-width: 16px;filter: brightness(2.2);"> next to them</li> </ul> <</if>> <div id="saveList"> <<if idb.active and !$ironmanmode and !sessionStorage.getItem("noidb")>> <<run setTimeout(() => idb.saveList())>> <<else>> /* record idb status between page reloads within the same session */ <<run sessionStorage.setItem("noidb", true); idb.active = false>> <<saveList>> <</if>> </div> <<if $saveDetails isnot undefined>> <br> <div> How many days after exporting will the export warning show: <br> <label><<radiobutton "$saveDetails.exported.frequency" 5 autocheck>>5</label> | <label><<radiobutton "$saveDetails.exported.frequency" 10 autocheck>>10</label> | <label><<radiobutton "$saveDetails.exported.frequency" 15 autocheck>>15</label> | <label><<radiobutton "$saveDetails.exported.frequency" 20 autocheck>>20</label> | <label><<radiobutton "$saveDetails.exported.frequency" 30 autocheck>>30</label> | <label><<radiobutton "$saveDetails.exported.frequency" 60 autocheck>>60</label> | <label><<radiobutton "$saveDetails.exported.frequency" 365 autocheck>>365</label> </div> <</if>> <</widget>> <<widget "saveList">> <<run prepareSaveDetails()>> <<if !tags().includes("nosave") && $replayScene is undefined>> <<set _saveUnlock to true>> <</if>> <<if $replayScene isnot undefined>> <h3 class="red">The scene viewer is currently in use, preventing the use of the save system.</h3> <<elseif tags().includes("nosave")>> <h3 class="red">You can't save here!</h3> <</if>> <p>Saves here will be lost if your browser cache is cleared. Exporting is recommended to prevent the loss of saves from occurring.</p> <p> <i class="description">__Where are my saves?__</i> <mouse class="tooltip linkBlue">(?)<span> If you can't find your saves, it's possible you saved them using a different storage method. Try toggling the "Enable IndexedDB" option below the list of saves. </span></mouse> </p> <<set _saveDetails = getSaveDetails()>> <!--Extra checks in case the above fails for some reason--> <<if _saveDetails eq null>> <<set _saveDetails to returnSaveDetails()>> <<elseif _saveDetails.autosave is undefined or _saveDetails.slots is undefined>> <<set _saveDetails to returnSaveDetails()>> <</if>> <<set _lastSlot to _saveDetails.autosave ? { slot: "autosave", date: _saveDetails.autosave.date } : { slot: "", date: 0 }>> <<for _slot, _data range _saveDetails.slots>> <<if _data and _data.date gt _lastSlot.date>> <<set _lastSlot to { slot: _slot, date: _data.date }>> <</if>> <</for>> <<set _currentTime to new Date().getTime()>> <div id="savesListContainer"> <div class="savesListRow"> <div class="saveGroup"> <div class="saveId">#</div> <div class="saveButton">Save/Load</div> <div class="saveName">ID/Name</div> <div class="saveDetails">Details</div> </div> <div class="deleteButton"></div> </div> <<for _i to 0; _i lt 11; _i++>> <<if _i != 9 or (_i == 9 and _saveDetails.slots[_i - 1] != null)>> <div class="savesListRow"> <<if _i is 0>> <<if _saveDetails.autosave neq null>> <<if _lastSlot.slot is "autosave">> <<set _highlight to " green">> <<elseif _saveDetails.autosave.date gte _currentTime - 1800000>> <<set _highlight to " gold">> <<else>> <<set _highlight to "">> <</if>> <div class="saveGroup"> <div class="saveId">A</div> <div class="saveButton"> <input type="button" class="saveMenuButton" value="Load" onclick="DoLSave.loadHandler('auto')"/> </div> <<if _saveDetails.autosave.metadata isnot undefined>> <div @class="'saveName' + ($saveId is _saveDetails.autosave.metadata.saveId ? ' gold' : '')"> <<if _saveDetails.autosave.metadata.saveName isnot "">> <<print _saveDetails.autosave.metadata.saveName.slice(0,10)>> <<else>> <<print _saveDetails.autosave.metadata.saveId>> <</if>> </div> <<else>> <div class="saveName"></div> <</if>> <div class="saveDetails"> <span><<print Util.escapeMarkup(_saveDetails.autosave.title.replace(/</g, "< "))>></span> <span @class="'datestamp' + _highlight"><<print new Date(_saveDetails.autosave.date).toLocaleString(returnTimeFormat())>></span> </div> </div> <div class="deleteButton"> <input type="button" class="saveMenuButton right" value="Delete" onclick="deleteSave('auto')"/> </div> <<else>> <div class="saveGroup"> <div class="saveId">A</div> <div class="saveButton"> <input type="button" value="Load" disabled/> </div> <div class="saveName"></div> <div class="saveDetails"></div> </div> <div class="deleteButton"> <input class="right" type="button" value="Delete" disabled/> </div> <</if>> <<elseif _i lt 10>> <<set _slot to _i - 1>> <<set _ironmanSlot to 9>> <<if _saveDetails.slots[_slot] neq null>> <<if _lastSlot.slot eq _slot>> <<set _highlight to " green">> <<elseif _saveDetails.slots[_slot].date gte _currentTime - 1800000>> <<set _highlight to " gold">> <<else>> <<set _highlight to "">> <</if>> <div class="saveGroup"> <<if _saveDetails.slots[_slot].metadata.ironman === true>> <div class="saveId" style="width: 10px;"> <img src="img/ui/SilverCoin.gif" class="ironman-icon" @onclick="'IronMan.UI.exportHandler(' + _slot + ')'"> </div> <<else>> <div class="saveId" style="width: 10px;"> <<print _i>> </div> <</if>> <div class="saveButton"> <<if _i lt 9>> <<if _saveUnlock>> <<set _onclick to "save("+_slot+", false, "+_saveDetails.slots[_slot].metadata.saveId+", `"+$saveName+"`)">> <input type="button" class="saveMenuButton" value="Save" @onclick="clone(_onclick)"/> <<else>> <input type="button" value="Save" disabled/> <</if>> <</if>> <input type="button" class="saveMenuButton" value="Load" @onclick="'DoLSave.loadHandler('+ _slot +')'"/> </div> <div @class="'saveName' + ($saveId is _saveDetails.slots[_slot].metadata.saveId ? ' gold' : '')"> <<if _saveDetails.slots[_slot].metadata.saveName isnot "">> <<print _saveDetails.slots[_slot].metadata.saveName.slice(0,10)>> <<else>> <<print _saveDetails.slots[_slot].metadata.saveId>> <</if>> </div> <div class="saveDetails"> <span><<print Util.escapeMarkup(_saveDetails.slots[_slot].title.replace(/</g, "< "))>></span> <span @class="'datestamp' + _highlight"><<print new Date(_saveDetails.slots[_slot].date).toLocaleString(returnTimeFormat())>></span> </div> </div> <<if _i is _ironmanSlot>> <div id="exportButton" class="exportButton"><input type="button" class="saveMenuButton right" value="Export" @onclick="'IronMan.export('+ _slot +')'"/></div> <</if>> <div class="deleteButton"><input type="button" class="saveMenuButton right" value="Delete" @onclick="'deleteSave('+ _slot +')'"/></div> <<else>> <div class="saveGroup"> <div class="saveId"></div> <div class="saveButton"> <<if _saveUnlock>> <input type="button" class="saveMenuButton" value="Save" @onclick="'save('+ _slot +',true,'+$saveId+', `'+$saveName+'`)'"/> <<else>> <input type="button" value="Save" disabled/> <</if>> <input type="button" value="Load" disabled/> </div> <div class="saveName"></div> <div class="saveDetails"></div> </div> <div class="deleteButton"> <input class="right" type="button" value="Delete" disabled/> </div> <</if>> <<else>>/* */ <div class="saveGroup"> <span style="margin: 0;">Special thanks to all those who [[Support Degrees of Lewdity| "https://subscribestar.adult/vrelnir"]]</span> <div class="saveId"></div> <div class="saveButton"></div> <div class="saveName"></div> <div class="saveDetails"></div> </div> <div class="saveButton"><input type="button" class="saveMenuButton right" value="Delete All" onclick="deleteSave('all')"/></div> <</if>> </div> <</if>> <</for>> </div> <label> <<checkbox "$compressSave" false true autocheck>> Compress saves </label> <br> <label> <<checkbox "$confirmSave" false true autocheck>> Require Confirmation on Save </label> <br> <label> <<checkbox "$confirmLoad" false true autocheck>> Require Confirmation on Load </label> <br> <label> <<checkbox "$confirmDelete" false true autocheck>> Require Confirmation on Delete </label> <br> <label id="idbToggleSaves"> /* checkbox macro doesn't allow changing variables that do not start with "$" or "_". this is a bypass hack. */ <<run setTimeout(() => jQuery(document.createElement("input")) .attr({ id: "checkbox-idbactive", name: "checkbox-idbactive", type: "checkbox", checked: idb.active && !V.ironmanmode, disabled: idb.lock || V.ironmanmode }) .addClass("macro-checkbox") .on("change.macros", () => { idb.active = document.getElementById("checkbox-idbactive").checked; if (idb.active) { sessionStorage.removeItem("noidb"); idb.saveList() } }) .prependTo("#idbToggleSaves"))>> Enable indexedDB<<if $ironmanmode>> (unavailable in ironman mode)<</if>> </label> <br><br> <<if $debug is 1>> <br> <label><<print '<<checkbox "$prepareSaveDetails" false true '+($prepareSaveDetails is true ? "checked" : "")+'>>'>> Run `prepareSaveDetails`. Disabling will cause saving/deleting on older version to not update the save list on newer versions but may speed up refresh loading times. </label> <</if>> <</widget>> <<widget "clearAllWarning">> <div class="saveBorder"> <h4><span class="red">Warning</span> - Are you sure you would like to delete all saves?</h4> <input type="button" class="close saveMenuConfirm" value="Confirm Delete All" onclick="deleteSave('all', true)"/> <input type="button" class="saveMenuButton saveMenuConfirm" value="Cancel" onclick="resetSaveMenu();"/> <br> </div> <</widget>> <<widget "saveWarning">> <div class="saveBorder"> <<if _saveDetails.slots[_args[0]] isnot null>> <<if _saveDetails.slots[_args[0]].metadata isnot undefined>> <<if _saveDetails.slots[_args[0]].metadata.saveId isnot $saveId>> <<set _showSaveId to true>> <<else>> <<set _showSaveId to false>> <</if>> <<else>> <<set _showSaveId to "noId">> <</if>> <</if>> <<if _saveDetails.slots[_args[0]] is null>> <h4 class="red">Save on slot <<print (_args[0] is "auto"? "auto": _args[0] + 1)>></h4> <<if _showSaveId is true>> <span class="red">Save ID does not match, continue with overwrite?</span> <br> <</if>> <<if _showSaveId is "noId">> <span class="red">Save ID not found on older save, continue with overwrite?</span> <br> <</if>> <<else>> <h4 class="red">Overwrite Save on slot <<print (_args[0] is "auto"? "auto": _args[0] + 1)>>?</h4> <<if _showSaveId is true>> <span class="red">Save ID does not match, continue with overwrite?</span> <br> <</if>> <<if _showSaveId is "noId">> <span class="red">Save ID not found on older save, continue with overwrite?</span> <br> <</if>> Old Save: <<print Util.escapeMarkup(_saveDetails.slots[_args[0]].title)>> <br> <<print new Date(_saveDetails.slots[_args[0]].date).toLocaleString(returnTimeFormat())>> <br> <</if>> <<if _saveDetails.slots[_args[0]].metadata isnot undefined>> <<if _saveDetails.slots[_args[0]].metadata.saveName isnot undefined>> Older Save Name: <<print _saveDetails.slots[_args[0]].metadata.saveName>> <br> <</if>> <</if>> <<if _showSaveId is true>> Older Save ID: <<print _saveDetails.slots[_args[0]].metadata.saveId>> <br><br> <<if $saveName isnot undefined>> Current Save Name: <<print $saveName>> <br> <</if>> Current Save ID: <<print $saveId>> <br> <</if>> <input type="button" class="saveMenuButton saveMenuConfirm" value="Save" @onclick="'save('+ _args[0] +', true,'+$saveId+', `'+$saveName+'`)'"/> <input type="button" class="saveMenuButton saveMenuConfirm" value="Cancel" onclick="resetSaveMenu();"/> <br> </div> <</widget>> <<widget "loadWarning">> <div class="saveBorder"> <h4 class="red">Load slot <<print (_args[0] is "auto"? "auto": _args[0] + 1)>></h4> <<if _args[0] is "auto">> <<print Util.escapeMarkup(_saveDetails.autosave.title)>> <br> <<print new Date(_saveDetails.autosave.date).toLocaleString(returnTimeFormat())>> <br> <input type="button" class="saveMenuButton saveMenuConfirm" value="Load" onclick="DoLSave.loadHandler('auto', true)"/> <<else>> <<print Util.escapeMarkup(_saveDetails.slots[_args[0]].title)>> <br> <<print new Date(_saveDetails.slots[_args[0]].date).toLocaleString(returnTimeFormat())>> <br> <input type="button" class="saveMenuButton saveMenuConfirm" value="Load" @onclick="'DoLSave.loadHandler('+ _args[0] +', true)'"/> <</if>> <input type="button" class="saveMenuButton saveMenuConfirm" value="Cancel" onclick="resetSaveMenu();"/> <br> </div> <</widget>> <<widget "loadwarningcompat">> <!-- Wrap auto in strings, for the onclick fn further down. Planned to change in future. --> <<set $_slot to _args[0] is "auto" ? "'auto'" : _args[0]>> <div class="saveBorder"> <h4 class="red">Loading save into an older version!</h4> Loading a save game into an older version can have many unintended consequences. We do not guarantee forward compatibility, expect bugs. <br> <input type="button" class="saveMenuButton saveMenuConfirm" value="Load" @onclick="'DoLSave.load(' + $_slot + ')'"/> <input type="button" class="saveMenuButton saveMenuConfirm" value="Cancel" onclick="resetSaveMenu();"/> <br> </div> <</widget>> <<widget "deleteWarning">> <div class="saveBorder"> <h4 class="red">Delete Save in slot <<print (_args[0] is "auto"? "auto": _args[0] + 1)>></h4> <<if _args[0] is "auto">> <<set _title to _saveDetails.autosave.title>> <<print Util.escapeMarkup(_title)>> <br> <<print new Date(_saveDetails.autosave.date).toLocaleString(returnTimeFormat())>> <br> <input type="button" class="saveMenuButton" value="Delete Auto" onclick="deleteSave('auto', true)"/> <<else>> <<set _title to _saveDetails.slots[_args[0]].title>> <<print Util.escapeMarkup(_title)>> <br> <<print new Date(_saveDetails.slots[_args[0]].date).toLocaleString(returnTimeFormat())>> <br> <input type="button" class="saveMenuButton" value="Delete" @onclick="'deleteSave('+ _args[0] +', true)'"/> <</if>> <input type="button" class="saveMenuButton saveMenuConfirm" value="Cancel" onclick="resetSaveMenu();"/> <br> </div> <</widget>> <<widget "loadBoxIronmanCheater">> <div class="saveBorder"> <h4 class="red">Cheating detected</h4> <ul> <li>You enabled Ironman mode for this save as to prevent yourself from cheating and savescumming.</li> <li>Even if a situation in-game seems unfair or frustrating, you chose to accept it by enabling this mode.</li> <li>Revert any variable changes you made, and you will be able to resume this run. You can ask us on Discord if you're having troubles</li> </ul> <<print Util.escapeMarkup(_saveDetails.slots[_args[0]].title)>> <br> <<print new Date(_saveDetails.slots[_args[0]].date).toLocaleString(returnTimeFormat())>> <br> <input type="button" class="saveMenuButton saveMenuConfirm" value="Cancel" onclick="resetSaveMenu();"/> <br> </div> <</widget>> <<widget "loadBoxIronmanSafetyCancel">> <div class="saveBorder"> <h4 class="orange">Loading cancelled.</h4> <ul> <li>Loading a save while being in-game with ironman mode activated will have you lose the current game.</li> <li style="text-decoration: underline;">Save your game, then you can load the save you want.</li> </ul> <input type="button" class="saveMenuButton saveMenuConfirm" value="Cancel" onclick="resetSaveMenu();"/> <br> </div> <</widget>> <<widget "resetSaveMenu">> <<if document.getElementById("saveList") != null>> <<replace #saveList>> <<saveList>> <</replace>> <</if>> <</widget>> <<widget "clearSaveMenu">> <<replace #saveList>> <<clearAllWarning>> <</replace>> <</widget>> <<widget "saveConfirm">> <<replace #saveList>> <<saveWarning _args[0]>> <</replace>> <</widget>> <<widget "loadConfirm">> <<replace #saveList>> <<loadWarning _args[0]>> <</replace>> <</widget>> <<widget "loadconfirmcompat">> <<replace #saveList>> <<loadwarningcompat _args[0]>> <</replace>> <</widget>> <<widget "loadIronmanSafetyCancel">> <<replace #saveList>> <<loadBoxIronmanSafetyCancel _args[0]>> <</replace>> <</widget>> <<widget "loadIronmanCheater">> <<replace #saveList>> <<loadBoxIronmanCheater _args[0]>> <</replace>> <</widget>> <<widget "deleteConfirm">> <<replace #saveList>> <<deleteWarning _args[0]>> <</replace>> <</widget>><<widget "social">> <div id="relation-display"> <<silently>> <<script>> if (V.wolfpackharmony) C.npc["Black Wolf"].harmony = V.wolfpackharmony; if (V.wolfpackferocity) C.npc["Black Wolf"].ferocity = V.wolfpackferocity; /*data config for non-standard NPCs boxes, allows for different stat configs, custom display data, and dynamic requirements*/ T.npcConfig = { "Robin" : { important : true, dom : { name : "Confidence", activeIcon : "img/ui/sym_confidence.png", color: "blue" } }, "Whitney" : { important : true, love : { maxValue : 30 }, dom : { maxValue: 20 } }, "Eden" : { important : true, love : { maxValue: 200 }, dom : { maxValue: 150 } /*false always hides this stat*/ }, "Kylar" : { important : true, rage : { name : "Jealousy", activeIcon : "img/ui/sym_jealousy.png", color: "green" } }, "Avery" : { important : true, rage : { requirements : V.averyragerevealed, inactiveIcon : 'img/ui/sym_rage_empty.png', } }, "Great Hawk" : { important : true, }, "Black Wolf" : { important : true, love : { maxValue : 30 }, harmony : { name : "Wolf Pack Harmony", maxValue: 20, activeIcon : "img/ui/wolfharmony.png" }, ferocity : { name : "Wolf Pack Ferocity", maxValue: 20, activeIcon : "img/ui/wolfferocity.png" } }, "Sydney" : { important : true, love : { maxValue: 150 }, purity : { requirements : V.NPCName[28].purity > 0, maxValue : 100, minValue : 0 }, corruption : { requirements : V.NPCName[28].corruption > 0, maxValue : 50, minValue : 0 } }, "Alex" : { important : true, love : { maxValue : 100 }, lust : { maxValue : 100 }, dom : { maxValue : 100 } }, "Gwylan" : { important: V.gwylanSeen?.includes("yearning"), love : { maxValue : (getSpecialSets(sets => sets.shop.includes("forest")).length * 2), activeIcon: V.gwylanSeen?.includes("yearning") ? "img/ui/sym_love_green.png" : "img/ui/sym_love.png", color: 'green' }, dom : { name : "Yearning", activeIcon : "img/ui/sym_yearning.png", requirements : V.gwylanSeen?.includes("yearning"), maxValue : 150, color: 'forest-green' } }, "Mason" : { love : { maxValue : 50 } }, "Darryl" : { love : { maxValue : 50 } }, "River" : { love : { maxValue : 50 } }, "Sam" : { love : { maxValue : 50 } }, "Charlie" : { love : { maxValue : 50 } }, "Wren" : { love : { maxValue : 50 } }, "Zephyr" : { love : { maxValue : 100 }, dom : { maxValue : 50 } }, "Ivory Wraith" : { lust : { name: "Obsession", activeIcon : (V.wraith && (V.wraith.state == "haunt" || V.wraith.state == "despair") ? "img/ui/obsessionblood.png" : "img/ui/obsession.png"), inactiveIcon : "img/ui/obsessionempty.png", maxValue : 20 } } }; /* This list dictates the order that the important NPCs will show up in on the social menu screen */ T.importantNpcOrder = ["Robin", "Whitney", "Eden", "Kylar", "Sydney", "Avery", "Great Hawk", "Black Wolf", "Alex"]; if (V.gwylanSeen?.includes("yearning")) T.importantNpcOrder.pushUnique("Gwylan"); T.specialNPCs = ["Ivory Wraith"]; /* this list is sorted */ T.importantNPCs = T.importantNpcOrder.map(name => V.NPCName[V.NPCNameList.indexOf(name)]); /* this list is unsorted */ T.otherNPCs = V.NPCName.filter(npc => !T.importantNpcOrder.includes(npc.nam) && !T.specialNPCs.includes(npc.nam)); /* sorting takes the lower value and puts it first, so if a < b, a goes first. */ /* yes, this works on words, somehow. it's math shit, but it works. read a book if necessary. */ T.otherNPCs.sort((a,b) => a.nam - b.nam); <</script>> <</silently>> <br> <span class="gold">Primary Relationships</span> <div id="npc-relations" class="relation-box-list"> <<set _initNPC to 0>> <<for _k = 0; _k lt _importantNPCs.length; _k++>> <<relation-box _importantNPCs[_k] _npcConfig[_importantNPCs[_k].nam]>> <<set _initNPC += _npcData.init>> <</for>> </div> <<if _initNPC is 0>> //No primary relationships// <br> <</if>> <br> <span class="gold">People of Interest</span> <div id="secondary-npcs" class="relation-box-list"> <<set _initNPC to 0>> <<for _k= 0; _k lt _otherNPCs.length; _k++>> <<relation-box _otherNPCs[_k] _npcConfig[_otherNPCs[_k].nam]>> <<set _initNPC += _npcData.init>> <</for>> <<for _ik= 0; _ik lt _specialNPCs.length; _ik++>> <<set $_npc to $NPCName[$NPCNameList.indexOf(_specialNPCs[_ik])]>> <<relation-box $_npc _npcConfig[_specialNPCs[_ik]]>> <<set _initNPC += _npcData.init>> <</for>> </div> <<if _initNPC is 0>> //No secondary relationships// <br> <</if>> <br> <span class="gold">Reputation</span> <div id="faction-reputations" class="relation-box-list"> <<silently>> /* Police config */ <<set _policeCrimeConfig = { currentValue : crimeSumHistory(), preText: 'The police ', states : [ { requiredValue: 0, color: 'green', description: 'aren\'t concerned with you,'}, { requiredValue: 1000, color: 'teal', description: 'have you on their records,'}, { requiredValue: 2000, color: 'lblue', description: 'consider you a person of interest,'}, { requiredValue: 3000, color: 'blue', description: 'consider you a troublemaker,'}, { requiredValue: 5000, color: 'purple', description: 'consider you a criminal,'}, { requiredValue: 10000, color: 'pink', description: 'have a binder devoted to you,'}, { requiredValue: 30000, color: 'red', description: 'have a filing cabinet devoted to you,'} ]}>> <<set _policeEvidenceConfig = { currentValue : crimeSumHistory(), secondaryValue : crimeSumCurrent(), states : [ { requiredValue: 0, secondaryStates : [ { requiredValue: 0, color: 'green', description: 'and have no evidence linking you to any crime.'}, { requiredValue: 1, color: 'teal', description: 'despite having a little evidence linking you to crime.'}, ]}, { requiredValue: 1000, secondaryStates : [ { requiredValue: 0, color: 'green', description: 'but lack enough evidence for an arrest.'}, { requiredValue: 1000, color: 'pink', description: 'and have enough evidence for an arrest.'}, { requiredValue: 5000, color: 'red', description: 'and have more than enough evidence for an arrest.'}, ]} ]}>> <<set _policeBoxConfig = { name : "Police", icon : "img/misc/icon/police.png", description: "<<relation-text _policeCrimeConfig>> <<relation-text _policeEvidenceConfig>>"}>> /* Orphanage */ <<set _orphanageMoodConfig = { currentValue: $orphan_hope, secondaryValue: $orphan_reb, preText: 'The atmosphere in the orphanage is ', states : [ { requiredValue: -100, secondaryStates : [ { requiredValue: -100, color: 'pink', description: 'hopeless.'}, { requiredValue: -40, color: 'pink', description: 'crestfallen.'}, { requiredValue: -10, color: 'pink', description: 'unhappy.'}, { requiredValue: 10, color: 'pink', description: 'spiteful.'}, { requiredValue: 40, color: 'def', description: 'vengeful.'}, ]}, { requiredValue: -40, secondaryStates : [ { requiredValue: -100, color: 'purple', description: 'morose.'}, { requiredValue: -40, color: 'purple', description: 'dispirited.'}, { requiredValue: -10, color: 'purple', description: 'resigned.'}, { requiredValue: 10, color: 'purple', description: 'disobedient.'}, { requiredValue: 40, color: 'def', description: 'unruly.'}, ]}, { requiredValue: -10, secondaryStates : [ { requiredValue: -100, color: 'blue', description: 'obedient.'}, { requiredValue: -40, color: 'blue', description: 'compliant.'}, { requiredValue: -10, color: 'blue', description: 'calm.'}, { requiredValue: 10, color: 'blue', description: 'subversive.'}, { requiredValue: 40, color: 'def', description: 'defiant.'}, ]}, { requiredValue: 10, secondaryStates : [ { requiredValue: -100, color: 'teal', description: 'enduring.'}, { requiredValue: -40, color: 'teal', description: 'unresistant.'}, { requiredValue: -10, color: 'teal', description: 'optimistic.'}, { requiredValue: 10, color: 'teal', description: 'rebellious.'}, { requiredValue: 40, color: 'def', description: 'mutinous.'}, ]}, { requiredValue: 40, secondaryStates : [ { requiredValue: -100, color: 'green', description: 'kind.'}, { requiredValue: -40, color: 'green', description: 'friendly.'}, { requiredValue: -10, color: 'green', description: 'hopeful.'}, { requiredValue: 10, color: 'green', description: 'idealistic.'}, { requiredValue: 40, color: 'def', description: 'revolutionary.'}, ]}, ]}>> <<set _orphanageBoxConfig = { name : "Orphanage", icon : "img/misc/icon/orphanage.png", description: "<<relation-text _orphanageMoodConfig>>"}>> /* School config */ <<set _teacherRepConfig = { currentValue: $delinquency, preText: 'You are considered ', postText: ' by the teachers.', states : [ { requiredValue: 0, color: 'green', description: 'an ideal student'}, { requiredValue: 10, color: 'teal', description: 'a normal student'}, { requiredValue: 200, color: 'lblue', description: 'a bad student'}, { requiredValue: 400, color: 'blue', description: 'a delinquent'}, { requiredValue: 600, color: 'purple', description: 'a delinquent'}, { requiredValue: 800, color: 'pink', description: 'a delinquent'}, { requiredValue: 1000, color: 'red', description: 'a terror'} ]}>> <<set _studentRepConfig = { currentValue: $cool, preText: 'Your fellow students think you\'re ', states : [ { requiredValue: 0, color: 'red', preText: 'Your fellow students ', description: 'avoid you.'}, { requiredValue: 40, color: 'pink', description: 'odd.'}, { requiredValue: 80, color: 'purple', description: 'dorky.'}, { requiredValue: 120, color: 'blue', description: 'ok.'}, { requiredValue: 160, color: 'lblue', description: 'cool.'}, { requiredValue: 240, color: 'teal', description: 'very cool.'}, { requiredValue: 400, color: 'green', preText: 'Your fellow students ', description: 'aspire to be seen with you.'} ]}>> <<set _teacherBoxConfig = { name : "Teachers", icon : "img/misc/icon/school.png", description: "<<relation-text _teacherRepConfig>> <<statbar 0 $delinquency 1000>>"}>> <<set _studentBoxConfig = { name : "Students", icon : "img/misc/icon/schoolnew.png", description: "<<relation-text _studentRepConfig>> <<statbarinverted $cool $coolmax>>"}>> /*Crossdressing*/ <<if $schoolrep.crossdress neq 0>> <<set _crossdressing to $player.gender isnot $player.sex ? "presumed crossdressing" : "crossdressing exploits">> <<set _knows to $player.gender isnot $player.sex ? "believes" : "knows">> <<set _crossdressRepConfig = { currentValue: $schoolrep.crossdress, states : [ { requiredValue: 1, color: 'lblue', description: `A few cliques at school whisper amongst themselves about your ${_crossdressing}. Few believe it.`}, { requiredValue: 2, color: 'blue', description: `A rumour has taken root at school. Some say you're a crossdresser.`}, { requiredValue: 3, color: 'purple', description: `Students gossip about your supposed crossdressing, though most think it only a joke.`}, { requiredValue: 4, color: 'pink', description: `Everyone at school has heard the rumours of your ${_crossdressing}.`}, { requiredValue: 5, color: 'red', description: `Everyone at school ${_knows} that you crossdress, including the teachers.`} ]}>> <<set _crossdressBoxConfig = { name : "Crossdressing", description : '<<relation-text _crossdressRepConfig>>'}>> <</if>> /*Herm*/ <<if $schoolrep.herm neq 0>> <<set _hermRepConfig = { currentValue: $schoolrep.herm, states : [ { requiredValue: 1, color: 'lblue', description: 'A few cliques at school gossip about a student with both boy and girl parts. Few believe it.'}, { requiredValue: 2, color: 'blue', description: 'Rumours of a student with both boy and girl parts have spread through the school.'}, { requiredValue: 3, color: 'purple', description: 'The school is rife with gossip about a student with both boy and girl parts.'}, { requiredValue: 4, color: 'pink', description: 'Everyone at school has heard the rumours about your unique genitalia.'}, { requiredValue: 5, color: 'red', description: 'Everyone at school has heard of your unique genitalia, including the teachers.'} ]}>> <<set _hermBoxConfig = { name : "Genitalia", description : '<<relation-text _hermRepConfig>>'}>> <</if>> /* Prison */ <<if $prison>> <<set _prisonMoodConfig = { currentValue: $prison.hope, secondaryValue: $prison.reb, preText: 'The atmosphere in the prison is ', states : [ { requiredValue: 0, secondaryStates : [ { requiredValue: 0, color: 'pink', description: 'hopeless.'}, { requiredValue: 20, color: 'pink', description: 'crestfallen.'}, { requiredValue: 40, color: 'pink', description: 'unhappy.'}, { requiredValue: 60, color: 'pink', description: 'spiteful.'}, { requiredValue: 80, color: 'def', description: 'vengeful.'}, ]}, { requiredValue: 20, secondaryStates : [ { requiredValue: 0, color: 'purple', description: 'morose.'}, { requiredValue: 20, color: 'purple', description: 'dispirited.'}, { requiredValue: 40, color: 'purple', description: 'resigned.'}, { requiredValue: 60, color: 'purple', description: 'disobedient.'}, { requiredValue: 80, color: 'def', description: 'unruly.'}, ]}, { requiredValue: 40, secondaryStates : [ { requiredValue: 0, color: 'blue', description: 'obedient.'}, { requiredValue: 20, color: 'blue', description: 'compliant.'}, { requiredValue: 40, color: 'blue', description: 'calm.'}, { requiredValue: 60, color: 'blue', description: 'subversive.'}, { requiredValue: 80, color: 'def', description: 'defiant.'}, ]}, { requiredValue: 60, secondaryStates : [ { requiredValue: 0, color: 'teal', description: 'enduring.'}, { requiredValue: 20, color: 'teal', description: 'unresistant.'}, { requiredValue: 40, color: 'teal', description: 'optimistic.'}, { requiredValue: 60, color: 'teal', description: 'rebellious.'}, { requiredValue: 80, color: 'def', description: 'mutinous.'}, ]}, { requiredValue: 80, secondaryStates : [ { requiredValue: 0, color: 'green', description: 'tolerant.'}, { requiredValue: 20, color: 'green', description: 'patient.'}, { requiredValue: 40, color: 'green', description: 'hopeful.'}, { requiredValue: 60, color: 'green', description: 'idealistic.'}, { requiredValue: 80, color: 'def', description: 'revolutionary.'}, ]}, ]}>> <<set _guardRepConfig = { currentValue: $prison.guards, preText: 'The guards ', states : [ { requiredValue: 0, color: 'red', description: 'have you under constant surveillance.'}, { requiredValue: 15, color: 'pink', description: 'consider you a problem.'}, { requiredValue: 30, color: 'purple', description: 'watch you.'}, { requiredValue: 45, color: 'blue', description: 'are keeping an eye on you.'}, { requiredValue: 60, color: 'lblue', description: 'expect no trouble from you.'}, { requiredValue: 80, color: 'teal', description: 'overlook you.'}, { requiredValue: 100, color: 'green', description: 'forget you are here.'} ]}>> <<set _inmateRepConfig = { currentValue: $prison.inmates, preText: 'Most fellow inmates ', states : [ { requiredValue: 0, color: 'red', description: 'see you as meat.'}, { requiredValue: 15, color: 'pink', description: 'think you\'re a fucktoy.'}, { requiredValue: 30, color: 'purple', description: 'consider you a bitch.'}, { requiredValue: 45, color: 'blue', description: 'see you as one of them.'}, { requiredValue: 60, color: 'lblue', description: 'have a good opinion of you.'}, { requiredValue: 80, color: 'teal', description: 'respect you.'}, { requiredValue: 100, color: 'green', description: 'think you\'re the boss.'} ]}>> <<set _prisonBoxConfig = { name : "Prison Atmosphere", icon : "img/misc/icon/prison_cell.png", description: "<<relation-text _prisonMoodConfig>>"}>> <<set _guardBoxConfig = { name : "Prison Guards", icon : "img/misc/icon/prison_cell.png", description: "<<relation-text _guardRepConfig>>"}>> <<set _inmateBoxConfig = { name : "Prison Inmates", icon : "img/misc/icon/prison_cell.png", description: "<<relation-text _inmateRepConfig>>"}>> <</if>> /*Docks */ <<if $dockwork gte 2>> <<set _dockRepConfig = { currentValue: $dockstatus, preText: 'The other workers ', states : [ { requiredValue: 0, color: 'purple', description: 'view you with contempt.'}, { requiredValue: 10, color: 'blue', description: 'view you with suspicion.'}, { requiredValue: 30, color: 'lblue', description: 'tolerate you.'}, { requiredValue: 80, color: 'teal', description: 'accept you.'}, { requiredValue: 100, color: 'green', description: 'respect you.'} ]}>> <<set _dockBoxConfig = { name : "Docks", icon : "img/misc/icon/docks.png", description : '<<relation-text _dockRepConfig>>'}>> <</if>> /*Pirates */ <<set _pirateStatusConfig = { currentValue: $pirate_rank, secondaryValue: $pirate_status, preText: 'The pirates view you as ', states : [ { requiredValue: 0, secondaryStates : [ { requiredValue: 0, color: 'red', description: 'wretched scum.'}, { requiredValue: 10, color: 'pink', description: 'worthless scum.'}, { requiredValue: 30, color: 'pink', description: 'pathetic scum.'}, { requiredValue: 50, color: 'pink', description: 'sloppy scum.'}, { requiredValue: 70, color: 'pink', description: 'endearing scum.'}, { requiredValue: 90, color: 'purple', description: 'scum no longer.'}, ]}, { requiredValue: 1, secondaryStates : [ { requiredValue: 0, color: 'blue', description: 'a scummy mate.'}, { requiredValue: 10, color: 'blue', description: 'a useless mate.'}, { requiredValue: 30, color: 'blue', description: 'an untested mate.'}, { requiredValue: 50, color: 'blue', description: 'a second-class mate.'}, { requiredValue: 70, color: 'blue', description: 'a mate in good standing.'}, { requiredValue: 90, color: 'lblue', description: 'a first-class mate.'}, ]}, ]}>> <<set _pirateBoxConfig = { name : "Pirate Rank", icon : "img/misc/icon/mer.png", description: "<<relation-text _pirateStatusConfig>>"}>> <</silently>> <<relation-box-simple _policeBoxConfig>> <<relation-box-simple _orphanageBoxConfig>> <<relation-box-simple _teacherBoxConfig>> <<relation-box-simple _studentBoxConfig>> <<if $schoolrep.crossdress neq 0>> <<relation-box-simple _crossdressBoxConfig>> <</if>> <<if $schoolrep.herm neq 0>> <<relation-box-simple _hermBoxConfig>> <</if>> <<if $prison>> <<relation-box-simple _guardBoxConfig>> <<relation-box-simple _inmateBoxConfig>> <<relation-box-simple _prisonBoxConfig>> <</if>> <<if $dockwork gte 2>> <<relation-box-simple _dockBoxConfig>> <</if>> <<if $pirate_rank gte 0>> <<relation-box-simple _pirateBoxConfig>> <</if>> <<relation-box-wolves>> </div> <<if $farm_stage gte 2>> <<silently>> /* Farm Animals */ /*Horses*/ <<switch $settings.beastMaleChance>> <<case 100>> <<set _people to "boys">> <<set _cowpeople to "bullboys">> <<case 0>> <<set _people to "girls">> <<set _cowpeople to "cowgirls">> <<default>> <<set _people to "people">> <<set _cowpeople to "cowgirls and bullboys">> <</switch>> <<set _farmHorseRepConfig = { currentValue: $farm.beasts.horses, preText: `The ${$settings.monsterChance is 100 ? 'centaurs ' : 'steeds '}`, postText: ' you.', states: [ { requiredValue: -100, color: 'pink', description: 'see you as a fucktoy.', postText: ' '}, { requiredValue: -20, color: 'purple', description: 'have little respect', postText: ' for you.'}, { requiredValue: -5, color: '', description: 'are wary of'}, { requiredValue: 5, color: 'lblue', description: 'trust'}, { requiredValue: 20, color: 'green', description: 'respect'} ]}>> /*Pigs*/ <<set _farmPigRepConfig = { currentValue: $farm.beasts.pigs, preText: `The ${$settings.monsterChance is 100 ? 'pig' + _people : 'pigs '}`, postText: ' you.', states: [ { requiredValue: -100, color: 'pink', description: 'see you as a fucktoy.', postText: ' '}, { requiredValue: -20, color: 'purple', description: 'have little respect', postText: ' for you.'}, { requiredValue: -5, color: '', description: 'are wary of'}, { requiredValue: 5, color: 'lblue', description: 'trust'}, { requiredValue: 20, color: 'green', description: 'respect'} ]}>> /*Cattle*/ <<set _farmCattleRepConfig = { currentValue: $farm.beasts.cattle, preText: `The ${$settings.monsterChance is 100 ? _cowpeople : 'cattle '}`, postText: ' you.', states: [ { requiredValue: -100, color: 'pink', description: 'see you as an annoyance.', postText: ' '}, { requiredValue: -20, color: 'purple', description: 'have little respect', postText: ' for you.'}, { requiredValue: -5, color: '', description: 'are wary of'}, { requiredValue: 5, color: 'lblue', description: 'trust'}, { requiredValue: 20, color: 'green', description: 'respect'} ]}>> /*Dogs*/ <<set _farmDogRepConfig = { currentValue: $farm.beasts.dogs, preText: `The ${$settings.monsterChance is 100 ? 'dog' + _people : 'dogs '}`, postText: ' you.', states: [ { requiredValue: -100, color: 'pink', description: 'see you as a fucktoy.', postText: ' '}, { requiredValue: -20, color: 'purple', description: 'have little respect', postText: ' for you.'}, { requiredValue: -5, color: '', description: 'are wary of'}, { requiredValue: 5, color: 'lblue', description: 'trust'}, { requiredValue: 20, color: 'green', description: 'respect'} ]}>> <<set _farmHorseBoxConfig = { name: "Horses", icon : "img/misc/icon/horse.png", description : '<<relation-text _farmHorseRepConfig>>'}>> <<set _farmPigBoxConfig = { name: "Pigs", icon : "img/misc/icon/pig.png", description : '<<relation-text _farmPigRepConfig>>'}>> <<set _farmCattleBoxConfig = { name: "Cattle", icon : "img/misc/icon/cow.png", description : '<<relation-text _farmCattleRepConfig>>'}>> <<set _farmDogBoxConfig = { name: "Dogs", icon : "img/misc/icon/dog.png", description : '<<relation-text _farmDogRepConfig>>'}>> <<if $farm_stage gte 5>> /* Farm Sabotage */ <<set _farmSabotageConfig = { currentValue: $farm.aggro, states: [ { requiredValue: 0, color: 'green', description: 'The farm is peaceful.'}, { requiredValue: 1, color: 'teal', description: 'Strange people have been seen watching the farm.'}, { requiredValue: 10, color: 'lblue', description: 'Signs of intrusion have been found around the farm.'}, { requiredValue: 20, color: 'blue', description: 'Something is spooking the beasts of the farm.'}, { requiredValue: 40, color: 'purple', description: 'The farm is being sabotaged at night.'}, { requiredValue: 60, color: 'pink', description: 'The farm is being sabotaged, day and night.'}, { requiredValue: 100, color: 'red', description: 'Remy\'s goons operate in the open, sabotaging the farm and its business.'}, ]}>> <<set _farmSabotageBoxConfig = { name: "Farm Safety", icon : "img/misc/icon/barn.png", description : '<<relation-text _farmSabotageConfig>>'}>> <</if>> <</silently>> <br> <span class="gold">Farm Status</span> <div id="farm-status" class="relation-box-list"> <<relation-box-simple _farmHorseBoxConfig>> <<relation-box-simple _farmPigBoxConfig>> <<relation-box-simple _farmCattleBoxConfig>> <<relation-box-simple _farmDogBoxConfig>> <<if $farm_stage gte 5>> <<relation-box-simple _farmSabotageBoxConfig>> <</if>> </div> <</if>> <br> <span class="gold">Fame</span> <div id="global-recognition" class="relation-box-list"> <<silently>> <<set _fameStates = [ { requiredValue: 0, color: 'green', description: ' Unknown'}, { requiredValue: 30, color: 'teal', description: ' Obscure'}, { requiredValue: 100, color: 'lblue', description: ' Low-key'}, { requiredValue: 200, color: 'blue', description: ' Known'}, { requiredValue: 400, color: 'purple', description: ' Recognised'}, { requiredValue: 600, color: 'pink', description: ' Famous'}, { requiredValue: 1000, color: 'red', description: ' Notorious _config.flavorText'} ]>> <<set _inverseFameStates = [ { requiredValue: 0, color: 'red', description: ' Unknown'}, { requiredValue: 30, color: 'pink', description: ' Obscure'}, { requiredValue: 100, color: 'purple', description: ' Low-key'}, { requiredValue: 200, color: 'blue', description: ' Known'}, { requiredValue: 400, color: 'lblue', description: ' Recognised'}, { requiredValue: 600, color: 'teal', description: ' Famous'}, { requiredValue: 1000, color: 'green', description: ' Notorious _config.flavorText'} ]>> <<set _sexFameConfig = { currentValue: $fame.sex, preText: 'Sex:', flavorText: 'slut', states: _fameStates }>> <<set _prostitutionFameConfig = { currentValue: $fame.prostitution, preText: 'Prostitution:', flavorText: 'whore', states: _fameStates }>> <<set _rapeFameConfig = { currentValue: $fame.rape, preText: 'Rape:', flavorText: 'fucktoy', states: _fameStates }>> <<if $settings.bestialityEnabled>> <<set $_pre to "Bestiality:">> <<set $_flavor to "bitch">> <<else>> <<set $_pre to "Monster People:">> <<set $_flavor to "monster fucker">> <</if>> <<set _bestialityFameConfig = { currentValue: $fame.bestiality, preText: $_pre, flavorText: $_flavor, states: _fameStates }>> <<set _exhibitionismFameConfig = { currentValue: $fame.exhibitionism, preText: 'Exhibitionism:', flavorText: 'flaunter', states: _fameStates }>> <<if $fame.pregnancy gte 600>> <<set $_name to "broodmother">> <<elseif $fame.pregnancy gte 200>> <<set $_name to "breeder">> <<else>> <<set $_name to "mother">> <</if>> <<set _pregnancyFameConfig = { currentValue: $fame.pregnancy, preText: 'Pregnancy:', flavorText: $_name, states: _fameStates }>> <<if $fame.impreg gte 600>> <<set $_name to "allfather">> <<elseif $fame.impreg gte 200>> <<set $_name to "sire">> <<else>> <<set $_name to "inseminator">> <</if>> <<set _impregFameConfig = { currentValue: $fame.impreg, preText: 'Pregnancy:', flavorText: $_name, states: _fameStates }>> <<set _combatFameConfig = { currentValue: $fame.scrap, preText: 'Combat:', flavorText: 'scrapper', states: _inverseFameStates }>> <<set _kindnessFameConfig = { currentValue: $fame.good, preText: 'Kindness:', flavorText: 'do-gooder', states: _inverseFameStates }>> <<set _businessFameConfig = { currentValue: $fame.business, preText: 'Business:', flavorText: 'entrepreneur', states: _inverseFameStates }>> <<set _socialFameConfig = { currentValue: $fame.social, preText: 'Socialite:', flavorText: 'schmoozer', states: _inverseFameStates }>> <<set _modelFameConfig = { currentValue: $fame.model, preText: 'Modelling:', flavorText: 'show off', states: _inverseFameStates }>> <<set _overallFameConfig = { currentValue: fameTotal(), preText: 'Overall:', flavorText: '', states: [ { requiredValue: 0, color: 'green', description: ' Unknown'}, { requiredValue: 100, color: 'teal', description: ' Obscure'}, { requiredValue: 500, color: 'lblue', description: ' Low-key'}, { requiredValue: 1000, color: 'blue', description: ' Known'}, { requiredValue: 2000, color: 'purple', description: ' Recognised'}, { requiredValue: 3000, color: 'pink', description: ' Famous'}, { requiredValue: 4000, color: fameSum('business', 'good', 'social', 'model') > 4000 ? 'green' : 'red', description: ' Notorious'} ]}>> <<set _sexFameBoxConfig = { description : '<<relation-text _sexFameConfig>>' }>> <<set _prostitutionFameBoxConfig = { description : '<<relation-text _prostitutionFameConfig>>' }>> <<set _rapeFameBoxConfig = { description : '<<relation-text _rapeFameConfig>>' }>> <<set _bestialityFameBoxConfig = { description : '<<relation-text _bestialityFameConfig>>' }>> <<set _exhibitionismFameBoxConfig = { description : '<<relation-text _exhibitionismFameConfig>>' }>> <<set _pregnancyFameBoxConfig = { description : '<<relation-text _pregnancyFameConfig>>' }>> <<set _combatFameBoxConfig = { description : '<<relation-text _combatFameConfig>>' }>> <<set _kindnessFameBoxConfig = { description : '<<relation-text _kindnessFameConfig>>' }>> <<set _businessFameBoxConfig = { description : '<<relation-text _businessFameConfig>>' }>> <<set _socialFameBoxConfig = { description : '<<relation-text _socialFameConfig>>' }>> <<set _modelFameBoxConfig = { description : '<<relation-text _modelFameConfig>>' }>> <<set _overallFameBoxConfig = { description : '<<relation-text _overallFameConfig>>' }>> <</silently>> <<relation-box-simple _sexFameBoxConfig>> <<relation-box-simple _prostitutionFameBoxConfig>> <<relation-box-simple _rapeFameBoxConfig>> <<relation-box-simple _bestialityFameBoxConfig>> <<relation-box-simple _exhibitionismFameBoxConfig>> <<if $fame.model gte 1>> <<relation-box-simple _modelFameBoxConfig>> <</if>> <<relation-box-simple _pregnancyFameBoxConfig>> <<relation-box-simple _combatFameBoxConfig>> <<relation-box-simple _kindnessFameBoxConfig>> <<relation-box-simple _businessFameBoxConfig>> <<relation-box-simple _socialFameBoxConfig>> <<relation-box-simple _overallFameBoxConfig>> <div class="relation-box" @style="(_boxConfig.style || '')"> <div class="relation-description"> The townsfolk know you as <span class="teal"><<overworld_nickname>>.</span> Those in the criminal underworld call you <span class="pink"><<underworld_nickname>>.</span> </div> </div> </div> <br> </div> <br> <</widget>><<widget "statistics">> <<foldout false "_virginitiesFoldout">> <span class="gold">Virginities</span> <<run ["vaginal", "penile", "anal", "oral", "handholding", "kiss"].forEach(type => { if ($player.virginity[type] is true) { T[type + "VirginityColour"] = "gold"; } else if (isPossibleLoveInterest($player.virginity[type])) { T[type + "VirginityColour"] = "lewd"; if ($player.virginityDetails and $player.virginityDetails?.[type]?.consensual is false) T[type + "VirginityColour"] = "red"; } else if ($player.virginityDetails and $player.virginityDetails?.[type]?.consensual isnot undefined) { T[type + "VirginityColour"] = $player.virginityDetails?.[type]?.consensual ? "green" : "red"; } else { T[type + "VirginityColour"] = ""; } })>> <<if $player.vaginaExist or $player.virginity.vaginal isnot true>> Vaginal virginity: <span @class="_vaginalVirginityColour"><<print ($player.virginity.vaginal is true ? "Present" : "Taken by " + ($player.virginity.vaginal is false ? "unknown" : $player.virginity.vaginal))>></span> <<virginityToolTip $player.virginityDetails.vaginal $player.virginity.vaginal "pc" "vaginal">> <br> <</if>> <<if $player.penisExist or $player.virginity.penile isnot true>> Penile virginity: <span @class="_penileVirginityColour"><<print ($player.virginity.penile is true ? "Present" : "Taken by " + ($player.virginity.penile is false ? "unknown" : $player.virginity.penile))>></span> <<virginityToolTip $player.virginityDetails.penile $player.virginity.penile "pc" "penile">> <br> <</if>> Anal virginity: <span @class="_analVirginityColour"><<print ($player.virginity.anal is true ? "Present" : "Taken by " + ($player.virginity.anal is false ? "unknown" : $player.virginity.anal))>></span> <<virginityToolTip $player.virginityDetails.anal $player.virginity.anal "pc" "penile">> <br> Oral virginity: <span @class="_oralVirginityColour"><<print ($player.virginity.oral is true ? "Present" : "Taken by " + ($player.virginity.oral is false ? "unknown" : $player.virginity.oral))>></span> <<virginityToolTip $player.virginityDetails.oral $player.virginity.oral "pc" "oral">> <br> Handholding virginity: <span @class="_handholdingVirginityColour"><<print ($player.virginity.handholding is true ? "Present" : "Taken by " + ($player.virginity.handholding is false ? "unknown" : $player.virginity.handholding))>></span> <<virginityToolTip $player.virginityDetails.handholding $player.virginity.handholding "pc" "handholding">> <br> First kiss: <span @class="_kissVirginityColour"><<print ($player.virginity.kiss is true ? "Present" : "Taken by " + ($player.virginity.kiss is false ? "unknown" : $player.virginity.kiss))>></span> <<virginityToolTip $player.virginityDetails.kiss $player.virginity.kiss "pc" "kiss">> <br> <<if $temple_rank isnot undefined and $temple_rank isnot "prospective">> Temple vow: <<print ($player.virginity.temple is true ? "Unbroken" : "Broken by " + ($player.virginity.temple is false ? "unknown" : $player.virginity.temple))>> <br> <</if>> <br> <</foldout>> <<foldout false "_virginitiesTakenFoldout">> <span class="gold">Virginities taken</span> Total: <<print Object.values(V.virginTaken).flat().length>> <br> <!-- For each individual virginity type, the number is named and unnamed combined, but the list of names has unnamed npcs filtered out. --> <<run ["vaginal", "penile", "anal", "oral", "handholding", "kiss"].forEach((virginity) => { const virginityNamed = `${virginity}Named`; T[virginityNamed] = []; /* _vaginalNamed, _penileNamed, ... */ for (const name of V.virginTaken[virginity]) { if (!V.NPCNameList.includes(name)) continue; const details = C.npc[name].virginityDetails?.[virginity]; let colour = ''; if (setup.loveInterestNpc.includes(name) && (!details || details.consensual !== false)) { colour = "lewd"; } else if (details && details.consensual != null) { colour = details.consensual ? "green" : "red"; } const nameText = `<span class="${colour}">${name}</span>`; const detailsArg = details ? `\`C.npc['${name}'].virginityDetails.${virginity}\`` : ''; T[virginityNamed].push(`${nameText}<<virginityToolTip ${detailsArg} ${name} "npc" ${virginity}>>`); } })>> Vaginal: $virginTaken.vaginal.length<<print (_vaginalNamed.length gte 1 ? ", including: " + _vaginalNamed.join(', ') : "")>> <br> Penile: $virginTaken.penile.length<<print (_penileNamed.length gte 1 ? ", including: " + _penileNamed.join(', ') : "")>> <br> Anal: $virginTaken.anal.length<<print (_analNamed.length gte 1 ? ", including: " + _analNamed.join(', ') : "")>> <br> Oral: $virginTaken.oral.length<<print (_oralNamed.length gte 1 ? ", including: " + _oralNamed.join(', ') : "")>> <br> First hands held: $virginTaken.handholding.length<<print (_handholdingNamed.length gte 1 ? ", including: " + _handholdingNamed.join(', ') : "")>> <br> First kisses: $virginTaken.kiss.length<<print (_kissNamed.length gte 1 ? ", including: " + _kissNamed.join(', ') : "")>> <br><br> <</foldout>> <<foldout false "_jobsFoldout">> <span class="gold">Jobs</span> Danced: $dancestat <br> Drinks served: $drinksservedstat <br> Tables served: $tablesservedstat <br> Whored yourself: $prostitutionstat <br> <<if $gamemode isnot "soft">> Forcibly whored out: $forcedprostitutionstat <br> <</if>> <<if statChange.timeTrackingTotal("docks")>> Hours worked on the docks: <<print statChange.timeTrackingTotal("docks")>> <br> <</if>> Buns sold at the cafe: $bunstat <br> Most "cream" produced: <<print parseFloat($creamstat.toFixed(1))>> mL <br> Smugglers intercepted: $smuggler_stolen_stat <br> Tasks performed at the pub: $pub_task_stat <br> Produce sold: $produce_sold <br> <<if $farmersProduce>> Produce sold in bulk: $farmersProduce.totalSold <br> <</if>> Fertiliser used: $fertiliser.used <br> Hours worked on a farm: <<print Math.trunc($farm_shift / 60)>> <br> Cattle milked: $cattle_milked <br> Clients serviced as a masseur: $masseur_stat <br> Wild plants picked: $wild_plant_stat <br> Aphrodisiacs sold: $stat_aphrodisiacs_sold <br> <<if $brothelVending and $brothelVending.total>> Products sold at the brothel: $brothelVending.total <br> <</if>> <<if $confessionsDone>> Sins confessed: $confessionsDone <br> <</if>> <<if $confessionsTaken>> Confessions taken: $confessionsTaken <br> <</if>> <br> <</foldout>> <<foldout false "_sexFoldout">> <span class="gold">Sex</span> Number of orgasms you've experienced: $orgasmstat <br> Last orgasm: <<statisticsTimeCompare $orgasmTimeStat>> <br> <<if $ruinedOrgasmStat>> Number of ruined orgasms you've experienced: $ruinedOrgasmStat <br> Last ruined orgasm: <<statisticsTimeCompare $ruinedOrgasmTimeStat>> <br> <</if>> <<if $settings.asphyxiaLevel gte 2>> Orgasms while being choked: $chokeorgasm <br> <</if>> <<if $player.penisExist or $penilestat>> Penetrated others: $penilestat <br> Last penetrated others: <<statisticsTimeCompare $penileTimeStat>> <br> <</if>> <<if $straponstat>> Penetrated others with a strapon: $straponstat <br> <</if>> <<if $player.penisExist or $penileejacstat>> Ejaculated in others: $penileejacstat <br> Last ejaculated in others: <<statisticsTimeCompare $penileEjacTimeStat>> <br> <</if>> <<if $player.vaginaExist>> Vaginally penetrated: $vaginalstat <br> Last vaginally penetrated: <<statisticsTimeCompare $vaginalTimeStat>> <br> Ejaculated in vaginally: $vaginalejacstat <br> Last ejaculated in vaginally: <<statisticsTimeCompare $vaginalEjacTimeStat>> <br> <</if>> <<if $settings.analEnabled>> Anally penetrated: $analstat <br> Last anally penetrated: <<statisticsTimeCompare $analTimeStat>> <br> Ejaculated in anally: $analejacstat <br> Last ejaculated in anally: <<statisticsTimeCompare $analEjacTimeStat>> <br> <</if>> Orally penetrated: $oralstat <br> Ejaculated in orally: $oralejacstat <br> <<if $cunnilingusstat>> Cunnilingus: $cunnilingusstat <br> <</if>> <<if $cunnilingusejacstat>> Cunnilingus ejaculations: $cunnilingusejacstat <br> <</if>> Semen swallowed: <<print Math.floor($semenswallowedstat)>> mL <<if $settings.bestialityEnabled>> <br> Animal semen swallowed: <<print Math.floor($animalsemenswallowedstat)>> mL <</if>> <br> Handjobs given: $handstat <br> Handjob ejaculations: $handejacstat <br> <<if $settings.footFetishEnabled>> Footjobs given: $feetstat <br> Footjob ejaculations: $feetejacstat <br> <</if>> Thighjobs given: $thighstat <br> Thighjob ejaculations: $thighejacstat <br> Chestjobs given: $cheststat <br> Chestjob ejaculations: $chestejacstat <br> Buttjobs given: $bottomstat <br> Buttjob ejaculations: $bottomejacstat <br> Hair ejaculated on: $hairejacstat <br> Tummy ejaculated on: $tummyejacstat <br> Neck ejaculated on: $neckejacstat <br> <<if $player.vaginaExist>> Pussy ejaculated on: $vaginalentranceejacstat <br> <</if>> Face ejaculated on: $faceejacstat <br> Total times you've been ejaculated on or in: $ejacstat <br> Gloryholes serviced: $gloryholestat <br> Masturbated: $masturbationstat <br> Last masturbated: <<statisticsTimeCompare $masturbationTimeStat>> <br> Masturbated to orgasm: $masturbationorgasmstat <br> Last masturbated to orgasm: <<statisticsTimeCompare $masturbationOrgasmTimeStat>> <br> Minutes spent masturbating: <<print Math.trunc($secondsSpentMasturbating / 60)>> <br> <<if $settings.breastFeedingEnabled>> Breast milk drank: <<print Math.floor($milk_drank_stat)>> mL <br> Breast milk produced: <<print Math.floor($milk_produced_stat)>> mL <br> <</if>> <<if $settings.plantsEnabled>> Nectar drank: <<print Math.floor($nectar_drank_stat)>> mL <br> <</if>> <<if $player.penisExist or $semen_produced_stat>> Semen produced: <<print Math.floor($semen_produced_stat)>> mL <br> <</if>> <<if $player.vaginaExist>> Lewd fluid produced: <<print Math.floor($lube_produced_stat)>> mL <br> <</if>> <<if $player.penisExist or $settings.breastFeedingEnabled or $fluid_forced_stat>> Fluid forcibly milked: <<print Math.floor($fluid_forced_stat)>> mL <br> <</if>> <<if $knot_stat isnot undefined>> Knotted: $knot_stat <br> <</if>> <<if $sextoystat isnot undefined>> Sex toys used on others: $sextoystat <</if>> <br> <<if $settings.analDoubleEnabled and $analdoublestat isnot undefined>> Double anally penetrated: $analdoublestat <br> <</if>> <<if $settings.vaginalDoubleEnabled and $vaginaldoublestat isnot undefined>> Double vaginally penetrated: $vaginaldoublestat <br> <</if>> <<if $settings.watersportsEnabled>> Urinated on: $urinestat <br> <</if>> <br> <</foldout>> <<if $gamemode isnot "soft">> <<foldout false "_violenceFoldout">> <span class="gold">Violence</span> Molested: $moleststat <br> Last molested: <<statisticsTimeCompare $molestTimeStat>> <br> Raped: $rapestat <br> Last raped: <<statisticsTimeCompare $rapeTimeStat>> <br> <<if $settings.bestialityEnabled>> Raped by animals: $beastrapestat <br> <<else>> Raped by monster people: $beastrapestat <br> <</if>> <<if $settings.tentaclesEnabled>> Raped by tentacle monsters: $tentaclerapestat <br> <</if>> <<if $settings.voreEnabled>> Swallowed: $swallowedstat <br> <</if>> <<if $settings.parasitesEnabled>> Parasites hosted: $parasitestat <br> <</if>> Been hit: $hitstat <br> Hit others: $attackstat <br> Pepper spray used: $spraystat <br> <<if C.npc.Eden.init>> Practise shots fired with Eden: $stat_shoot <br> <</if>> Machines disabled: $machine_stat <br> <<if $settings.lurkersEnabled>> Lurkers captured: $stat_lurkers_captured <br><br> <</if>> <</foldout>> <</if>> <<foldout false "_datesFoldout">> <span class="gold">Dates</span> <<if $dateCount.Total lte 0>> You haven't gone on any dates!<br> <<else>> Total Dates: $dateCount.Total <br> <<if $dateCount.Robin gte 1>> Dates with Robin: $dateCount.Robin <br> <</if>> <<if $dateCount.Whitney gte 1>> Dates with Whitney: $dateCount.Whitney <br> <</if>> <<if $dateCount.Kylar gte 1>> Dates with Kylar: $dateCount.Kylar <br> <</if>> <<if $dateCount.Eden gte 1>> Dates with Eden: $dateCount.Eden <br> <</if>> <<if $dateCount.Avery gte 1>> Dates with Avery: $dateCount.Avery <br> <</if>> <<if $dateCount.BlackWolfHunts gte 1>> Hunts with the Black Wolf: $dateCount.BlackWolfHunts <br> <</if>> <<if $dateCount.GreatHawkHunts gte 1>> Hunts with the Great Hawk: $dateCount.GreatHawkHunts <br> <</if>> <<if $dateCount.GreatHawkCasual gte 1>> Casual flights with the Great Hawk: $dateCount.GreatHawkCasual <br> <</if>> <<if $dateCount.Alex gte 1>> Dates with Alex: $dateCount.Alex <br> <</if>> <<if $dateCount.Sydney gte 1>> Dates with Sydney: $dateCount.Sydney <br> <</if>> <<if $dateCount.Gwylan gte 1>> Dates with Gwylan: $dateCount.Gwylan <br> <</if>> <<if $dateCount.GwylanSex gte 1>> Intimate rituals with Gwylan: $dateCount.GwylanSex <br> <</if>> <</if>> <br> <</foldout>> <<foldout false "_pregnancyFoldout">> <span class="gold">Pregnancy</span> Times given birth: <<print playerNormalPregnancyTotal()>> <br> <<if $pregnancyStats.playerVirginBirths.length>> Total virgin births: <<print $pregnancyStats.playerVirginBirths.length>> <br> <</if>> Total number of children you gave birth to: <<print $pregnancyStats.playerChildren>> <br> Total number of children you know you fathered: <<print $pregnancyStats.npcChildren>> <br> Total days knowingly being pregnant: <<print Math.floor($pregnancyStats.totalDaysPregnancyKnown)>> <br> Total number of human children: <<print $pregnancyStats.humanChildren>> <br> Total number of wolf children: <<print $pregnancyStats.wolfChildren>> <br> Total number of hawk children: <<print $pregnancyStats.hawkChildren>> <br> Children interactions: <<print $pregnancyStats.childInteractions>> <br> <!-- ToDo: Pregnancy - Move outside of commented area when interactions are added Breastfed interactions: <<print $pregnancyStats.childBreastfedInteractions>> <br> Bottlefed interactions: <<print $pregnancyStats.childBottlefedInteractions>> <br> First Word interaction: <<print $pregnancyStats.childFirstWordInteractions>> <br> --> Bottles of milk given to the orphanage: <<print $pregnancyStats.orphanageMilkBottlesTotal>> <br> Morning-after pills taken: <<print $pregnancyStats.aftermorningpills>> <br> Pregnancy tests taken: <<print $pregnancyStats.pregnancyTestsTaken>> <br> <<if $player.vaginaExist>> Vaginal parasites born: <<print $sexStats.vagina.pregnancy.parasiteBirthEvents>> <br> <</if>> Anal parasites born: <<print $sexStats.anus.pregnancy.parasiteBirthEvents>> <br><br> <</foldout>> <<foldout false "_gamblingFoldout">> <span class="gold">Gambling</span> Games of blackjack played: $estatePersistent.totalGamesPlayed <br> Games of blackjack played with betting: $estatePersistent.totalGamesPlayedWithBetting <br> Rounds of blackjack won/lost/tied: $estatePersistent.totalRoundsWon/$estatePersistent.totalRoundsLost/$estatePersistent.totalRoundsTied <br> Rounds of blackjack won/lost/tied (with bets): $estatePersistent.totalBetRoundsWon/$estatePersistent.totalBetRoundsLost/$estatePersistent.totalBetRoundsTied <br> Money won in blackjack: <<printmoney $estatePersistent.totalBetMoneyMade>> <br> Money lost in blackjack: <<printmoney $estatePersistent.totalBetMoneyLost>> <br> Money confiscated in blackjack: <<printmoney $estatePersistent.totalMoneyConfiscated>> <br> Tips received in blackjack: <<printmoney $estatePersistent.totalTipMoneyMade>> <br> Times caught cheating: $estatePersistent.totalCaughtCheating <br> Highest blackjack streak: $estatePersistent.winStreakHighScore <<if $blackjack_played gt 0 or $blackjack_won gt 0>> <br> Rounds of old blackjack played/won: $blackjack_played/$blackjack_won <</if>> <<if $blackjack_streak_high and $blackjack_streak_high gt 0>> <br> Highest old blackjack streak: $blackjack_streak_high <</if>> <br><br> <</foldout>> <<foldout false "_detailedTablesFoldout">> <span class="gold">Detailed Stat Tables</span> <span id="moneyButton" @class="_openedTable is 'money' ? 'gold': ''"> <<button "Money">> <<set _openedTable to "money">> <<replace "#detailedStatsDiv">><<statisticsDetailedTables>><</replace>> <<addclass "#moneyButton" "gold">> <<removeclass "#produceButton" "gold">> <<removeclass "#badEndsButton" "gold">> <</button>> </span> <span id="produceButton" @class="_openedTable is 'produce' ? 'gold': ''"> <<button "Produce">> <<set _openedTable to "produce">> <<replace "#detailedStatsDiv">><<statisticsDetailedTables>><</replace>> <<removeclass "#moneyButton" "gold">> <<addclass "#produceButton" "gold">> <<removeclass "#badEndsButton" "gold">> <</button>> </span> <span id="badEndsButton" @class="_openedTable is 'badEnd' ? 'gold': ''"> <<if $badEndStats.length>> <<button "Bad Ends">> <<set _openedTable to "badEnd">> <<replace "#detailedStatsDiv">><<statisticsDetailedTables>><</replace>> <<removeclass "#moneyButton" "gold">> <<removeclass "#produceButton" "gold">> <<addclass "#badEndsButton" "gold">> <</button>> <</if>> </span> <div id="detailedStatsDiv"><<statisticsDetailedTables>></div> <</foldout>> <<foldout false "_miscFoldout">> <span class="gold">Miscellaneous</span> <<if $gamemode isnot "soft">> Rescued: $rescued <br> <</if>> Clothing stripped: $clothesstripstat <br> Clothing ruined: $clothesruinstat <br> Passed out: $passoutstat <br> Last passed out: <<statisticsTimeCompare $passoutTimeStat>> <br> Distinctions won: $distinction_stat <br> Hours slept: $sleepStat <br> Underwear stolen: $stat_panties_stolen <br> Sentenced with community service: $stat_police.community <br> Sentenced with the pillory: $stat_police.pillory <br> Days in prison: $stat_police.prison <br> Hypnotised: $hypnotised <<if $wraith.possessCount>> <br> Possessed: $wraith.possessCount <</if>> <br> School lessons missed: <<print Object.values($schoolLessonsMissed).reduce((x, y) => x + y)>> <mouse class="tooltip linkBlue">(?)<span>Bad math in earlier versions of the game may mean these stats are inaccurate before version '0.4.0.0'</span></mouse> <br> Science lessons missed: $schoolLessonsMissed.science <br> Maths lessons missed: $schoolLessonsMissed.maths <br> Housekeeping lessons missed: $schoolLessonsMissed.housekeeping <br> English lessons missed: $schoolLessonsMissed.english <br> History lessons missed: $schoolLessonsMissed.history <br> Swimming lessons missed: $schoolLessonsMissed.swimming <br> <<if $earSlimeDaysStat>> Days with an ear slime: $earSlimeDaysStat <br> <</if>> <<if $earSlime.days>> Days with the current ear slime: $earSlime.days <br> <</if>> <<if $earSlimePassiveDaysStat>> Most days with a passive ear slime: $earSlimePassiveDaysStat <br> <</if>> <<if $whitney_smoke gte 1>> Cigarettes smoked: $whitney_smoke <br> <</if>> <<if $bird and $bird.lurkersEaten>> Lurkers eaten: $bird.lurkersEaten <br> <</if>> <<if $gwylan?.requestCount>> Gwylan's requests fulfilled: $gwylan.requestCount <br> <</if>> <<if $world_corruption_reduced and ($temple_confessor_intro or $gwylanSeen?.includes("ritual_beast"))>> Total world corruption purged: $world_corruption_reduced <br> <</if>> Total paid to Bailey: <<printmoney `$moneyStats.baileyRent?.spent or 0`>> <mouse class="tooltip linkBlue">(?)<span>Not tracked in versions '0.4.5.X' and older</span></mouse> <br> <<if $baileyRefusedToPayTotal>> Total in missed payments to Bailey: <<printmoney $baileyRefusedToPayTotalStat "red">> <mouse class="tooltip linkBlue">(?)<span>Not tracked in versions '0.4.5.X' and older</span></mouse> <br> <</if>> <br> <</foldout>> <<foldout false "_saveFoldout">> <span class="gold">Save Game Details</span> <<if $passageCount>> Total passages count: $passageCount <mouse class="tooltip linkBlue">(?)<span>Total number of times a new passage has been loaded (Clicking on links in most cases). Passages such as the settings are excluded. Not tracked in versions '0.3.12.X' and older</span></mouse> <br> <</if>> <<if $passageChangesCount>> Total passage changes count: $passageChangesCount <mouse class="tooltip linkBlue">(?)<span>Total number of times a new passage has changed (Clicking on links in most cases). Passages such as the settings are excluded. Not tracked in versions '0.3.12.X' and older</span></mouse> <br> <</if>> <<if $saveDetails isnot undefined>> Normal saves count: <<print $saveDetails.slot.count>> <br> Exported saves count: <<print $saveDetails.exported.count>> <br> Auto saves count: <<print $saveDetails.auto.count>> <br> Times loaded: <<print $saveDetails.loadCount || 0>> <mouse class="tooltip linkBlue">(?)<span>Total number of times a save has been loaded, does not track repeated load times of the same save. Not tracked in versions '0.3.12.X' and older</span></mouse> <br> Play time: <<print msToTime(($saveDetails.playTime ? $saveDetails.playTime : 0) + ($saveDetails.loadTime ? new Date() - $saveDetails.loadTime : 0))>> <mouse class="tooltip linkBlue">(?)<span>Formatted into 'h:mm:ss'. Be aware that leaving the game for hours alone, then saving will have its time tracked. To avoid, save the game before ending play and then load the save when you resume play. Not tracked in versions '0.3.13.X' and older</span></mouse> <br> <</if>> <<if $saveVersions isnot undefined>> Versions played on: <br> <<for _i to 0; _i lt $saveVersions.length; _i++>> <<if _i gt 0>> <<if $saveVersions[_i].split(".")[2] is $saveVersions[_i - 1].split(".")[2]>> -- <<else>> <br> <</if>> <</if>> $saveVersions[_i] <</for>> <br> <</if>> <<if $saveVersion>> Save loaded from version: $saveVersion <</if>> <</foldout>> <</widget>> <<widget "extraStatisticsWarning">> <<if $options.skipStatisticsConfirmation is undefined>><<set $options.skipStatisticsConfirmation to false>><</if>> <h3>Extra Statistics</h3> <div id="spoilerWarning"> Are you sure you want to see these? They may contain spoilers! <br> <<link "Yes">> <<replace #customOverlayContent>><<extraStatistics>><</replace>> <</link>> &nbsp;&nbsp;&nbsp;<label><<checkbox "$options.skipStatisticsConfirmation" false true autocheck>> Don't Show Again</label> <!-- ignore the nbsp's, they're just for formatting --> </div> <</widget>> <<widget "extraStatistics">> <div id="spoilerWarningConfirmed"> <<foldout false "_stateFoldout">> <span class="gold">State</span> Pain: <<print Math.trunc($pain)>> <br> Arousal: <<print Math.trunc($arousal)>> <br> Fatigue: <<print Math.trunc($tiredness)>> <br> Stress: <<print Math.trunc($stress)>> <br> Trauma: <<print Math.trunc($trauma)>> <br> Control: <<print Math.trunc($control)>> <br> Allure: <<print Math.trunc($allure)>> <br> Alcohol: <<print Math.trunc($drunk)>> <br> Drugs: <<print Math.trunc($drugged)>> <br> Hallucinogens: <<print Math.trunc($hallucinogen)>> <br><br> <</foldout>> <<foldout false "_charFoldout">> <span class="gold">Characteristics</span> Purity: <<print Math.trunc($purity)>> <br> Beauty: <<print Math.trunc($beauty)>> <br> Physique: <<print Math.trunc($physique)>> <br> Willpower: <<print Math.trunc($willpower)>> <br> Awareness: <<print Math.trunc($awareness)>> <br> Promiscuity: <<print Math.trunc($promiscuity)>> <br> Exhibitionism: <<print Math.trunc($exhibitionism)>> <br> Deviancy: <<print Math.trunc($deviancy)>> <br> Corruption: <<print Math.trunc($earSlime.corruption)>> <br> <<if $earSlime.growth>> Growth: <<print Math.trunc($earSlime.growth)>> <br> <</if>> <<if $temple_rank is "initiate" or $temple_rank is "monk" or $temple_rank is "priest">> Grace: <<print Math.trunc($grace)>> <br> <</if>> Submissiveness: <<print Math.trunc($submissive)>> <br> Masochism: <<print Math.trunc($masochism)>> <br> Sadism: <<print Math.trunc($sadism)>> <br> Crossdresser progression: <<if $crossdressingTrait isnot undefined>> <<print Math.trunc($crossdressingTrait)>> % <<else>> 0 <</if>> <br><br> Sensitivities: <mouse class="tooltip linkBlue">(?)<span>These are arousal multipliers applied when that part of the body is stimulated.</span></mouse> <ul style="margin-top:0px;margin-left:-5px;"> <li>Mouth: <<print $mouthsensitivity.toFixed(2)>></li> <li>Breast: <<print $breastsensitivity.toFixed(2)>></li> <li>Genital: <<print $genitalsensitivity.toFixed(2)>></li> <li>Bottom: <<print $bottomsensitivity.toFixed(2)>></li> </ul> Breast growth: <<print Math.trunc(100 - ($breastgrowthtimer / 10))>>% <mouse class="tooltip linkBlue">(?)<span>Reach 100% or above to grow, 0% or below to shrink.</span></mouse> <br> Breasts can grow: <<print $player.breastsize lt $breastsizemax>> <<if $player.breastsize is $breastsizemax>> <mouse class="tooltip linkBlue">(?)<span>At max size.</span></mouse> <</if>> <br> Breasts can shrink: <<print $player.breastsize gt $breastsizemin>> <<if $player.breastsize is $breastsizemin>> <mouse class="tooltip linkBlue">(?)<span>At min size.</span></mouse> <</if>> <br> Lactating: <<print ($lactating is 1 ? "True" : "False")>> <br> <<if $lactating is 1>> Milk amount: <<print Math.trunc($milk_amount)>> <br> Milk volume: <<print Math.trunc($milk_volume)>> <br> <</if>> <<if $player.penisExist>> <<if $player.penissize gte -1>> <<set $_penisGrowthMin to 0>> <<else>> <<set $_penisGrowthMin to -400>> <</if>> <<if $player.penissize gt 0>> <<set $_penisGrowthMax to 1000>> <<elseif $player.penissize is 0>> <<set $_penisGrowthMax to 1200>> <<else>> <<set $_penisGrowthMax to 1500>> <</if>> <<set $_penisgrowthtimer to $penisgrowthtimer>> <<if $_penisGrowthMin lt 0>> <<set $_penisGrowthMax -= $_penisGrowthMin>> <<set $_penisgrowthtimer -= $_penisGrowthMin>> <</if>> <br> Penis growth: <<print Math.trunc(100 - ($_penisgrowthtimer / $_penisGrowthMax * 100))>>% <mouse class="tooltip linkBlue">(?)<span>Reach 100% or above to grow, 0% or below to shrink.</span></mouse> <br> <<if $sexStats && $sexStats.pills>> Penis can grow: <<print $player.penissize lt $penissizemax and ($player.penissize gte -1 or $sexStats.pills["pills"]["penis growth"].overdose - $sexStats.pills["pills"]["penis reduction"].overdose - ($worn.genitals.type.includes("shrinking") ? 20 : 0) gte 20)>> <<if $player.penissize is -2 and $sexStats.pills["pills"]["penis growth"].overdose - $sexStats.pills["pills"]["penis reduction"].overdose - ($worn.genitals.type.includes("shrinking") ? 20 : 0) lt 20>> <mouse class="tooltip linkBlue">(?)<span>Need to overdose on growing pills or use an urchin penis parasite.</span></mouse> <<elseif $player.penissize is $penissizemax>> <mouse class="tooltip linkBlue">(?)<span>At max size.</span></mouse> <</if>> <br> Penis can shrink: <<print $player.penissize gt $penissizemin and ($player.sex isnot "f" or $player.penissize gt 0) and ($player.penissize gte 0 or $sexStats.pills["pills"]["penis growth"].overdose - $sexStats.pills["pills"]["penis reduction"].overdose - ($worn.genitals.type.includes("shrinking") ? 20 : 0) lte -20)>> <<if $player.sex is "f" && $player.penissize is 0>> <mouse class="tooltip linkBlue">(?)<span>At min size for the parasite penis.</span></mouse> <<elseif $player.penissize is -1 and $sexStats.pills["pills"]["penis growth"].overdose - $sexStats.pills["pills"]["penis reduction"].overdose - ($worn.genitals.type.includes("shrinking") ? 20 : 0) gt -20>> <mouse class="tooltip linkBlue">(?)<span>Need to overdose on shrinking pills or use a slime penis parasite.</span></mouse> <<elseif $player.penissize is $penissizemin>> <mouse class="tooltip linkBlue">(?)<span>At min size.</span></mouse> <</if>> <br> <</if>> Semen amount: <<print Math.trunc($semen_amount)>> <br> Semen volume: <<print Math.trunc($semen_volume)>> <br> <</if>> <br> Bottom growth: <<print Math.trunc(100 - ($bottomgrowthtimer / 10))>>% <mouse class="tooltip linkBlue">(?)<span>Reach 100% or above to grow, 0% or below to shrink.</span></mouse> <br> Bottom can grow: <<print $player.bottomsize lt $bottomsizemax>> <<if $player.bottomsize is $bottomsizemax>> <mouse class="tooltip linkBlue">(?)<span>At max size.</span></mouse> <</if>> <br> Bottom can shrink: <<print $player.bottomsize gt $bottomsizemin>> <<if $player.bottomsize is $bottomsizemin>> <mouse class="tooltip linkBlue">(?)<span>At min size.</span></mouse> <</if>> <br><br> <</foldout>> <<foldout false "_clothesFoldout">> <span class="gold">Clothes</span> <<if $worn.upper.name isnot "naked">> Upper wetness: <<print Math.trunc($upperwet)>> <br> Upper integrity: <<print Math.trunc($worn.upper.integrity)>> <br> <</if>> <<if $worn.lower.name isnot "naked">> Lower wetness: <<print Math.trunc($lowerwet)>> <br> Lower integrity: <<print Math.trunc($worn.lower.integrity)>> <br> <</if>> <<if $worn.under_upper.name isnot "naked">> Under Upper wetness: <<print Math.trunc($underupperwet)>> <br> Under Upper integrity: <<print Math.trunc($worn.under_upper.integrity)>> <br> <</if>> <<if $worn.under_lower.name isnot "naked">> Under Lower wetness: <<print Math.trunc($underlowerwet)>> <br> Under Lower integrity: <<print Math.trunc($worn.under_lower.integrity)>> <br> <</if>> <<if $worn.genitals.name isnot "naked">> <<print setup.clothes.genitals[clothesIndex('genitals',$worn.genitals)].name_cap>> integrity: <<print Math.trunc($worn.genitals.integrity)>> <br> <</if>> <br> <</foldout>> <<foldout false "_socialFoldout">> <span class="gold">Social</span> School status: <<print Math.trunc($cool)>> <br> Delinquency: <<print Math.trunc($delinquency)>> <br> Detention: <<print Math.trunc($detention)>> <br> Crime: <<print Math.trunc(crimeSumCurrent())>> <br> Orphanage hope: <<print Math.trunc($orphan_hope)>> <br> Orphanage rebelliousness: <<print Math.trunc($orphan_reb)>> <br> <<if $dockwork is 2>> Docks status: <<print Math.trunc($dockstatus)>> <br> <</if>> <<if $pound and $pound.progress gte 1>> Stray dog contentment: <<print Math.trunc($stray_happiness)>> <br> <</if>> Sex fame: <<print Math.trunc($fame.sex)>> <br> Prostitution fame: <<print Math.trunc($fame.prostitution)>> <br> Rape fame: <<print Math.trunc($fame.rape)>> <br> Bestiality fame: <<print Math.trunc($fame.bestiality)>> <br> Exhibitionism fame: <<print Math.trunc($fame.exhibitionism)>> <br> Pregnancy fame: <<print Math.trunc($fame.pregnancy)>> <br> Impregnation fame: <<print Math.trunc($fame.impreg)>> <br> Combat fame: <<print Math.trunc($fame.scrap)>> <br> Kindness fame: <<print Math.trunc($fame.good)>> <br> Business fame: <<print Math.trunc($fame.business)>> <br> <<if $debug is 1>> Pimp fame: <<print Math.trunc($fame.pimp)>> <br> <</if>> Socialite fame: <<print Math.trunc($fame.social)>> <br> Model fame: <<print Math.trunc($fame.model)>> <br> Islander language: <<if $islander_language is undefined>>0<<else>><<print Math.trunc($islander_language)>><</if>> <br><br> <</foldout>> <<foldout false "_crimeFoldout">> <span class="gold">Crime</span> <<for $_cr range Object.keys(setup.crimeNames)>> <<foldout false $_cr>> <span class="gold"><<print toTitleCase(setup.crimeNames[$_cr])>></span> <<print "Current: " + Math.trunc($crime[$_cr].current)>> <br> <<print "History: " + Math.trunc($crime[$_cr].history)>> <br> <<print "Daily: " + Math.trunc($crime[$_cr].daily)>> <br> <<print "Count: " + Math.trunc($crime[$_cr].count)>> <br> <<print "Count History: " + Math.trunc($crime[$_cr].countHistory)>> <br> <</foldout>> <</for>> <<foldout false "_crimeTotalsFoldout">> <span class="gold">Totals:</span> <<print "Current: " + crimeSumCurrent()>> <br> <<print "History: " + crimeSumHistory()>> <br> <<print "Daily: " + crimeSumDaily()>> <br> <<print "Count: " + crimeSumCount()>> <br> <<print "Count History: " + crimeSumCountHistory()>> <br> <</foldout>> <<foldout false "_crimeEventsFoldout">> <span class="gold">Crime Events:</span> <span id="statscrimeevents"><<listCrimeCheats>></span> <</foldout>> <br> <</foldout>> <<foldout false "_transformationFoldout">> <span class="gold">Transformations</span> Wolfiness: <<print Math.trunc($wolfbuild)>> (30+ for full transformation) <br> Wolf manifestation: <<print Math.trunc($wolfgirl)>> <br> Cattiness: <<print Math.trunc($catbuild)>> (50+ for full transformation) <br> Cat manifestation: <<print Math.trunc($cat)>> <br> Bovinity: <<print Math.trunc($cowbuild)>> (30+ for full transformation) <br> Cow manifestation: <<print Math.trunc($cow)>> <br> <<if $hallucinations gte 2 or !$settings.bestialityEnabled>>Harpyness<<else>>Birdieness<</if>>: <<print Math.trunc($birdbuild)>> (30+ for full transformation) <br> <<if $hallucinations gte 2 or !$settings.bestialityEnabled>>Harpy<<else>>Bird<</if>> manifestation: <<print Math.trunc($harpy)>> <br> Foxiness: <<print Math.trunc($foxbuild)>> (30+ for full transformation) <br> Fox manifestation: <<print Math.trunc($fox)>> <br> Angelicness: <<print Math.trunc($angelbuild)>> (50+ for full transformation) <br> Angel manifestation: <<print Math.trunc($angel)>> <br> Demonicness: <<print Math.trunc($demonbuild)>> (30+ for full transformation) <br> Demonic manifestation: <<print Math.trunc($demon)>> <br> Fallen manifestation: <<print ($fallenangel is undefined ? 0 : Math.trunc($fallenangel))>> <br> Fallen forgiveness: <<print Math.trunc($fallenbuild)>> (30+ to be forgiven) <br><br> <</foldout>> <<foldout false "_parasitePregnancyFoldout">> <span class="gold">Parasite Pregnancy</span> <<set $_aPregnancy to $sexStats.anus.pregnancy>> <<if $_aPregnancy.type is "parasite" or $_aPregnancy.type is null>> <<for _i to 0; _i lt maxParasites("anus"); _i++>> <<if $_aPregnancy.fetus[_i] isnot undefined>> <<if $_aPregnancy.fetus[_i].fertilised>> Anal slot <<=_i+1>> is pregnant with a $_aPregnancy.fetus[_i].stats.gender $_aPregnancy.fetus[_i].creature. <<if $_aPregnancy.fetus[_i].stats.gender is "Hermaphrodite">> <<if $pregnancyStats.parasiteDoctorEvents gte 4 and $_aPregnancy.fetus[_i].daysLeft is 0>> Dr Harper will be able to help you to deliver at any time. <<elseif $pregnancyStats.parasiteDoctorEvents gte 4>> Dr Harper will be able to help you to deliver in <<=$_aPregnancy.fetus[_i].daysLeft>> days. <<else>> You will need to see Dr Harper to deliver. <</if>> <<else>> <<if $_aPregnancy.fetus[_i].daysLeft is 0>> It will be ready to deliver at any time soon. <<else>> It will be ready to deliver in less than <<=$_aPregnancy.fetus[_i].daysLeft>> days. <</if>> <</if>> <br> <<else>> Anal slot <<=_i+1>> has a $_aPregnancy.fetus[_i].stats.gender $_aPregnancy.fetus[_i].creature egg ready to be fertilised.<br> <</if>> <<else>> Anal slot <<=_i+1>> is empty.<br> <</if>> <</for>> <<else>> <<if getPregnancyObject().awareOf>> Unable to host parasites due to other type of anal pregnancy. <<else>> <<for _i to 0; _i lt maxParasites("anus"); _i++>> Anal slot <<=_i+1>> is empty.<br> <</for>> <</if>> <</if>> <<set $_vPregnancy to $sexStats.vagina.pregnancy>> <<if $player.vaginaExist>> <<if $_vPregnancy.type is "parasite" or $_vPregnancy.type is null>> <<for _i to 0; _i lt maxParasites("vagina"); _i++>> <<if $_vPregnancy.fetus[_i] isnot undefined>> <<if $_vPregnancy.fetus[_i].fertilised>> Vaginal slot <<=_i+1>> is pregnant with a $_vPregnancy.fetus[_i].stats.gender $_vPregnancy.fetus[_i].creature. <<if $_vPregnancy.fetus[_i].stats.gender is "Hermaphrodite">> <<if $pregnancyStats.parasiteDoctorEvents gte 4 and $_vPregnancy.fetus[_i].daysLeft is 0>> Dr Harper will be able to help you to deliver at any time. <<elseif $pregnancyStats.parasiteDoctorEvents gte 4>> Dr Harper will be able to help you to deliver in <<=$_vPregnancy.fetus[_i].daysLeft + 1>> days. <<else>> You will need to see Dr Harper to deliver. <</if>> <<else>> <<if $_vPregnancy.fetus[_i].daysLeft is 0>> It will be ready to deliver at any time soon. <<else>> It will be ready to deliver in less than <<=$_vPregnancy.fetus[_i].daysLeft>> days. <</if>> <</if>> <br> <<else>> Vaginal slot <<=_i+1>> has a $_vPregnancy.fetus[_i].stats.gender $_vPregnancy.fetus[_i].creature egg ready to be fertilised.<br> <</if>> <<else>> Vaginal slot <<=_i+1>> is empty.<br> <</if>> <</for>> <<else>> <<if getPregnancyObject().awareOf>> Unable to host parasites due to other type of vaginal pregnancy. <<else>> <<for _i to 0; _i lt maxParasites("vagina"); _i++>> Vaginal slot <<=_i+1>> is empty.<br> <</for>> <</if>> <</if>> <</if>> <br> <</foldout>> <<set $_menstruation to $sexStats.vagina.menstruation>> <<if $settings.fertilityCycleEnabled>> <<foldout false "_menstruationFoldout">> <span class="gold">Menstruation cycle</span> Running: <<print $_menstruation.running ? "true" : "false">> <<if $_menstruation.running>> <br> Current day in cycle: <<print $_menstruation.currentDay>> <br> Last day in cycle: <<print $_menstruation.currentDaysMax>> <br> Most risky day: <<print $_menstruation.stages[2]>> <br> <</if>> <br> <</foldout>> <</if>> <<foldout false "_extraPregnancyFoldout">> <span class="gold">Pregnancy</span> /* Previously commented out for being a major spoil, but caused players to think a bug had occurred */ Total days being pregnant: <<print Math.floor($pregnancyStats.totalDaysPregnant)>> <br> Total days knowingly being pregnant: <<print Math.floor($pregnancyStats.totalDaysPregnancyKnown)>> <br> <<if !canBeMPregnant() and ($_aPregnancy.type is null or $_aPregnancy.type is "parasite")>> <<if $_vPregnancy.type is "parasite">> Parasites in the womb are preventing normal pregnancy from occurring. <<elseif $_vPregnancy.type isnot null>> Currently pregnant with: <<print $_vPregnancy.fetus.length>> <<extraStatisticsPregnancyType $_vPregnancy.type>> <br> <<set $_days to pregnancyDaysEta($_vPregnancy)>> <<if $_days lt 1>> ETA: Anytime. <<elseif $_days>> ETA: <<print $_days>> <<pluralise $_days "day">>. <</if>> <br> <<elseif !$player.vaginaExist or !$_menstruation.running>> You cannot currently get pregnant. <<elseif $_menstruation.currentState is "recovering">> You are not quite ready to get pregnant so soon after your last one. <<else>> Not currently pregnant. <br> <<if $harpy gte 4>> <<if $harpyEggs>> You are carrying $harpyEggs.count eggs. <<elseif $harpyEggsPrevent>> You cannot currently produce eggs. <<else>> You are able to produce eggs. <</if>> <br> <</if>> <<if $settings.pregnancyType is "realistic">> <<set [_trackedNPCs, _spermArray] to spermObjectToArray($sexStats.vagina.sperm, true, true)>> Number of sources of sperm that can get you pregnant: <<print _spermArray.length>> <br> <<if _trackedNPCs.length>> Those whose sperm you have inside you currently: <ul> <<for _name range _trackedNPCs>> <<set $_count to _spermArray.filter(s => s.source === T.name.source).length>> <li> <<print pregnancyNameCorrection(_name.source)>> <<if $_count gt 1>> (x<<print $_count>>) <</if>> </li> <</for>> </ul> <<else>> <br> /* For formating the break after the foldout if realistic but no list*/ <</if>> <<else>> <br> /* For formating the break after the foldout if not realistic */ <</if>> <</if>> <<else>> <<if $_aPregnancy.type is "parasite">> Parasites in the womb are preventing normal pregnancy from occurring. <<elseif $_aPregnancy.type isnot null>> Currently pregnant with: <<print $_aPregnancy.fetus.length>> <<extraStatisticsPregnancyType $_aPregnancy.type>> <br> <<set $_days to pregnancyDaysEta($_aPregnancy)>> <<if $_days lt 1>> ETA: Anytime. <<elseif $_days>> ETA: <<print $_days>> <<pluralise $_days "day">>. <</if>> <br> <<elseif !$_menstruation.running>> You cannot currently get pregnant. <<elseif $_menstruation.currentState is "recovering">> You are not quite ready to get pregnant so soon after your last one. <<else>> Not currently pregnant. <br> <<if $harpy gte 4>> <<if $harpyEggs>> You are carrying $harpyEggs.count eggs. <<elseif $harpyEggsPrevent>> You cannot currently produce eggs. <<else>> You are able to produce eggs. <</if>> <br> <</if>> <<if $settings.pregnancyType is "realistic">> <<set [_trackedNPCs, _spermArray] to spermObjectToArray($sexStats.anus.sperm, true, true)>> Number of sources of sperm that can get you pregnant: <<print _spermArray.length>> <br> <<if _trackedNPCs.length>> Those whose sperm you have inside you currently: <ul> <<for _name range _trackedNPCs>> <<set $_count to _spermArray.filter(s => s.source === T.name.source).length>> <li> <<print pregnancyNameCorrection(_name.source)>> <<if $_count gt 1>> (x<<print $_count>>) <</if>> </li> <</for>> </ul> <<else>> <br> /* For formating the break after the foldout if realistic but no list*/ <</if>> <<else>> <br> /* For formating the break after the foldout if not realistic */ <</if>> <</if>> <</if>> <</foldout>> <<if $NPCName.find(npc => npc.pregnancy and npc.pregnancy.enabled isnot undefined)>> <<foldout false "_npcPregnancyFoldout">> <span class="gold">NPC Pregnancy</span> <<for $_npc range $NPCName.filter(npc => npc.pregnancy and npc.pregnancy.enabled isnot undefined)>> <div> <<print $_npc.nam>>: <<if !$_npc.pregnancy.enabled and !$_npc.pregnancy.fetus.length>> Pregnancy for NPC disabled by the player. <<elseif !$_npc.pregnancy.fetus.length>> Not pregnant. <<elseif $_npc.pregnancy.fetus.length>> Pregnant with <<print $_npc.pregnancy.fetus.length>> <<extraStatisticsPregnancyType $_npc.pregnancy.type>> <<set $_days to pregnancyDaysEta($_npc.pregnancy)>> <<if $_days lt 1>> ETA: Anytime. <<elseif $_days>> ETA: <<print $_days>> <<pluralise $_days "day">>. <</if>> <</if>> </div> <</for>> <</foldout>> <</if>> </div> <</widget>> <<widget "extraStatisticsPregnancyType">> <<switch _args[0]>> <<case "human">>normal babies. <<case "wolf">>wolf puppies. <<case "hawk">>hawk eggs. <</switch>> <</widget>> <<widget "statisticsTimeCompare">><<silently>> <<if $statFreeze is true>> <<set $_text_output to "Not available when stats are being frozen">> <<elseif _args[0]>> <<set _difference to new DateTime(_args[0]).compareWith(_args[1] or Time.date)>> <<set $_text_output to "">> <<if _difference.years>> <<set $_text_output += `${_difference.years} year${_difference.years gt 1 ? "s" : ""}`>> <</if>> <<if _difference.months>> <<if $_text_output>><<set $_text_output += ", ">><</if>> <<set $_text_output += `${_difference.months} month${_difference.months gt 1 ? "s" : ""}`>> <</if>> <<if _difference.days>> <<if $_text_output>><<set $_text_output += ", ">><</if>> <<set $_text_output += `${_difference.days} day${_difference.days gt 1 ? "s" : ""}`>> <</if>> <<if _difference.hours>> <<if $_text_output>><<set $_text_output += ", ">><</if>> <<set $_text_output += `${_difference.hours} hour${_difference.hours gt 1 ? "s" : ""}`>> <</if>> <<if _difference.minutes>> <<if $_text_output>><<set $_text_output += ", ">><</if>> <<set $_text_output += `${_difference.minutes} minute${_difference.minutes gt 1 ? "s" : ""}`>> <</if>> <<if _args[1] and !$_text_output>> <<set $_text_output += "no difference">> <<elseif !$_text_output>> <<set $_text_output += "recently">> <<elseif !_args[1]>> <<set $_text_output += " ago">> <</if>> <<else>> <<set $_text_output to "never">> <</if>> <</silently>><<if $_text_output>><<print $_text_output>><</if>> <</widget>> <<widget "statisticsDetailedTables">> <<switch _openedTable>> <<case "money">> Money notes <mouse class="tooltip linkBlue">(?)<span>Adding too many extra columns may make it harder to read on some devices. Many of these were not tracked at all before version '0.5.2.x' and so will be inaccurate.<<if Object.keys($timeStats).length>> Hour rates cannot be easily used to track every state and so most will just be "N/A".<</if>></span></mouse> <br> <<set [_moneyKeys, _moneyStats, _moneyStatsTotal] to moneyStatsProcess(clone($moneyStats))>> <<if $moneyStatsSnapshot?.money>> <<set [_moneySnapshotKeys, _moneyStatsSnapshot, _moneyStatsSnapshotTotal] to moneyStatsProcess(clone($moneyStatsSnapshot.money))>> <</if>> <div id="moneyStatsDiv"> <<moneyStats>> </div> <<if $debug is 1>> <<link "Reset Stats (Debug)">> <<set $moneyStats to {}>> <<set $timeStats to {}>> <<unset $moneyStatsSnapshot>> <<unset _showSnapshot>> <<set [_moneyKeys, _moneyStats, _moneyStatsTotal] to moneyStatsProcess(clone($moneyStats))>> <<replace "#moneyStatsDiv">><<moneyStats>><</replace>> <</link>> <</if>> <<case "produce">> Produce notes: <mouse class="tooltip linkBlue">(?)<span>Adding too many extra columns may make it harder to read on some devices. These were not tracked at all before version '0.5.3.x' and so will be inaccurate.</span></mouse> <br> <div id="produceStatsDiv"> <<produceStats>> </div> <<case "badEnd">> Bad end notes <mouse class="tooltip linkBlue">(?)<span>Adding too many extra columns may make it harder to read on some devices. These were not tracked at all before version '0.5.2.x' and so will be inaccurate. If a bad end stays in progress but you have clearly ended the bad end, please report it as a bug with your save.</span></mouse> <br> <div id="badEndStatsDiv"> <<badEndStats>> </div> <</switch>> <</widget>> <<widget "moneyStats">> <<set $_moneyStats to (_showSnapshot is "show" ? clone(_moneyStatsSnapshot) : clone(_moneyStats))>> <<set $_moneyKeys to (_showSnapshot is "show" ? clone(_moneySnapshotKeys) : clone(_moneyKeys))>> <<set $_moneyTotal to (_showSnapshot is "show" ? clone(_moneyStatsSnapshotTotal) : clone(_moneyStatsTotal))>> <<link `$moneyStatsSnapshot ? "Re-create Snapshot" : "Create Snapshot"`>> <<set $moneyStatsSnapshot to { date: Time.date.timeStamp, money: clone(V.moneyStats), time: clone(V.timeStats), }>> <<set [_moneySnapshotKeys, _moneyStatsSnapshot, _moneyStatsSnapshotTotal] to moneyStatsProcess(clone($moneyStatsSnapshot.money))>> <<replace "#moneyStatsDiv">><<moneyStats>><</replace>> <</link>> <<if $moneyStatsSnapshot>> | <<link "Clear Snapshot">> <<unset $moneyStatsSnapshot>> <<unset _showSnapshot>> <<replace "#moneyStatsDiv">><<moneyStats>><</replace>> <</link>> <</if>> <br><br> <<link `_moneyStatsDetailed ? "Reduce details" : "Expand details"`>> <<set _moneyStatsDetailed to !_moneyStatsDetailed>> <<set [_moneyKeys, _moneyStats, _moneyStatsTotal] to moneyStatsProcess(clone($moneyStats))>> <<if $moneyStatsSnapshot?.money>> <<set [_moneySnapshotKeys, _moneyStatsSnapshot, _moneyStatsSnapshotTotal] to moneyStatsProcess(clone($moneyStatsSnapshot.money))>> <</if>> <<replace "#moneyStatsDiv">><<moneyStats>><</replace>> <</link>> | <span @class="_moneyStatsCount ? 'goldLink' : ''"> <<link `_moneyStatsCount ? "Hide Counts" : "Show Counts"`>> <<set _moneyStatsCount to !_moneyStatsCount>> <<if !_moneyStatsCount and _moneyStatsSorting?.includes("Count")>><<unset _moneyStatsSorting>><</if>> <<replace "#moneyStatsDiv">><<moneyStats>><</replace>> <</link>> </span> | <span @class="_moneyStatsAverages ? 'goldLink' : ''"> <<link `_moneyStatsAverages ? "Hide Averages" : "Show Averages"`>> <<set _moneyStatsAverages to !_moneyStatsAverages>> <<if !_moneyStatsAverages and _moneyStatsSorting?.includes("Average")>><<unset _moneyStatsSorting>><</if>> <<replace "#moneyStatsDiv">><<moneyStats>><</replace>> <</link>> </span> | <span @class="_moneyStatsDate ? 'goldLink' : ''"> <<link `_moneyStatsDate ? "Hide Dates" : "Show Dates"`>> <<set _moneyStatsDate to !_moneyStatsDate>> <<if !_moneyStatsDate and _moneyStatsSorting?.includes("Date")>><<unset _moneyStatsSorting>><</if>> <<replace "#moneyStatsDiv">><<moneyStats>><</replace>> <</link>> </span> | <<if Object.keys($timeStats).length>> <span @class="_moneyStatsHourRates ? 'goldLink' : ''"> <<link `_moneyStatsHourRates ? "Hide Hour Rates" : "Show Hour Rates"`>> <<set _moneyStatsHourRates to !_moneyStatsHourRates>> <<if !_moneyStatsHourRates and _moneyStatsSorting?.includes("Hour Rates")>><<unset _moneyStatsSorting>><</if>> <<replace "#moneyStatsDiv">><<moneyStats>><</replace>> <</link>> </span> <</if>> <<if $moneyStatsSnapshot>> || <span @class="_showSnapshot is 'show' ? 'goldLink' : ''"> <<link `_showSnapshot is "show" ? "Hide Snapshot" : "Show Snapshot"`>> <<if _showSnapshot is "show">> <<unset _showSnapshot>> <<else>> <<set _showSnapshot to "show">> <</if>> <<replace "#moneyStatsDiv">><<moneyStats>><</replace>> <</link>> </span> | <span @class="_showSnapshot is 'compare' ? 'goldLink' : ''"> <<link `_showSnapshot is "compare" ? "Hide Snapshot" : "Compare Snapshot"`>> <<if _showSnapshot is "compare">> <<unset _showSnapshot>> <<else>> <<set _showSnapshot to "compare">> <</if>> <<replace "#moneyStatsDiv">><<moneyStats>><</replace>> <</link>> </span> <</if>> <<if _moneyStatsSorting>> | <<link "Reset Sorting">> <<unset _moneyStatsSorting>> <<replace "#moneyStatsDiv">><<moneyStats>><</replace>> <</link>> <<run $_moneyKeys.sort((a, b) => { if (_moneyStatsSorting.includes("Desc")) { const tempSwap = clone(a); a = clone(b); b = tempSwap; } switch(_moneyStatsSorting.replace("Desc","")) { case "Source": if (a.toUpperCase() < b.toUpperCase()) return -1; return 1; break; case "Earned": return ($_moneyStats[b].earned || 0) - ($_moneyStats[a].earned || 0); case "Spent": return ($_moneyStats[b].spent || 0) - ($_moneyStats[a].spent || 0); case "Earned Count": return ($_moneyStats[b].earnedCount || 0) - ($_moneyStats[a].earnedCount || 0); case "Earned Average": return ($_moneyStats[b].earned / $_moneyStats[b].earnedCount || 0) - ($_moneyStats[a].earned / $_moneyStats[a].earnedCount || 0); case "Hour Rates": return (statChange.timeTrackingTotal(b) ? $_moneyStats[b].earned / statChange.timeTrackingTotal(b) : 0) - (statChange.timeTrackingTotal(a) ? $_moneyStats[a].earned / statChange.timeTrackingTotal(a) : 0); case "Spent Count": return ($_moneyStats[b].spentCount || 0) - ($_moneyStats[a].spentCount || 0); case "Spent Average": return ($_moneyStats[b].spent / $_moneyStats[b].spentCount || 0) - ($_moneyStats[a].spent / $_moneyStats[a].spentCount || 0); case "Date": return (Math.max($_moneyStats[b].earnedTimeStamp || 0, $_moneyStats[b].spentTimeStamp || 0)) - (Math.max($_moneyStats[a].earnedTimeStamp || 0, $_moneyStats[a].spentTimeStamp || 0)); } })>> <</if>> <table class="statsTable"> <thead> <tr> <th scope="col"><<moneyStatsTitle "Source">></th> <th scope="col"><<moneyStatsTitle "Spent">></th> <<if _moneyStatsAverages>> <th scope="col"><<moneyStatsTitle "Spent Average">></th> <</if>> <<if _moneyStatsCount>> <th scope="col"><<moneyStatsTitle "Spent Count">></th> <</if>> <th scope="col"><<moneyStatsTitle "Earned">></th> <<if _moneyStatsAverages>> <th scope="col"><<moneyStatsTitle "Earned Average">></th> <</if>> <<if _moneyStatsCount>> <th scope="col"><<moneyStatsTitle "Earned Count">></th> <</if>> <<if _moneyStatsHourRates>> <th scope="col"><<moneyStatsTitle "Hour Rates">></th> <</if>> <<if _moneyStatsDate>> <th scope="col"><<moneyStatsTitle "Date">></th> <</if>> </tr> </thead> <<if _showSnapshot is "show">><<set _timeTrackingSnapshotOveride to true>><</if>> <<for $_key range $_moneyKeys>> <<if $_moneyStats[$_key].earned or $_moneyStats[$_key].spent>> <tbody class="stat"> <td data-label="Source"><<moneyStatsNames $_key>></td> <td data-label="Spent" @class="$_moneyStats[$_key].spent ? '' : 'mobileHidden'"> <<if $_moneyStats[$_key].spent>> <<printmoney `$_moneyStats[$_key].spent or 0` "red">> <<moneyStatsCompare $_key "spent">> <<else>> <span class="dash">-</span> <</if>> </td> <<if _moneyStatsAverages>> <td data-label="Spent Average" @class="$_moneyStats[$_key].spent ? '' : 'mobileHidden'"> <<if $_moneyStats[$_key].spent>> <<printmoney `$_moneyStats[$_key].spent / $_moneyStats[$_key].spentCount or 0` "red">> <<else>> <span class="dash">-</span> <</if>> </td> <</if>> <<if _moneyStatsCount>> <td data-label="Spent Count" @class="$_moneyStats[$_key].spent ? '' : 'mobileHidden'"> <<if $_moneyStats[$_key].spentCount>> <<print $_moneyStats[$_key].spentCount>> <<else>> <span class="dash">-</span> <</if>> </td> <</if>> <td data-label="Earned" @class="$_moneyStats[$_key].earned ? '' : 'mobileHidden'"> <<if $_moneyStats[$_key].earned>> <<printmoney `$_moneyStats[$_key].earned or 0`>> <<moneyStatsCompare $_key "earned">> <<else>> <span class="dash">-</span> <</if>> </td> <<if _moneyStatsAverages>> <td data-label="Earned Average" @class="$_moneyStats[$_key].earned ? '' : 'mobileHidden'"> <<if $_moneyStats[$_key].earned>> <<printmoney `$_moneyStats[$_key].earned / $_moneyStats[$_key].earnedCount or 0`>> <<else>> <span class="dash">-</span> <</if>> </td> <</if>> <<if _moneyStatsCount>> <td data-label="Earned Count" @class="$_moneyStats[$_key].earned ? '' : 'mobileHidden'"> <<if $_moneyStats[$_key].earnedCount>> <<print $_moneyStats[$_key].earnedCount>> <<else>> <span class="dash">-</span> <</if>> </td> <</if>> <<if _moneyStatsHourRates>> <td data-label="Hour Rates"> <<if statChange.timeTrackingTotal($_key)>> <<printmoney `$_moneyStats[$_key].earned / statChange.timeTrackingTotal($_key)`>> <<moneyStatsCompareHourly $_key>> <<else>> <span class="dash">-</span> <</if>> </td> <</if>> <<if _moneyStatsDate>> <td data-label="Date"><<moneyStatsDate $_moneyStats[$_key].spentTimeStamp $_moneyStats[$_key].earnedTimeStamp>></td> <</if>> </tbody> <</if>> <</for>> <<unset _timeTrackingSnapshotOveride>> <tbody class="total"> <td data-label="Source">Total</td> <td data-label="Spent"> <<printmoney $_moneyTotal.spent "red">> <<if _showSnapshot is "compare">> <<print "+<<printmoney `(_moneyStatsTotal.spent or 0) - (_moneyStatsSnapshotTotal.spent or 0)` 'white'>>">> <<else>> <<moneyStatsCompare "total" "spent">> <</if>> </td> <<if _moneyStatsAverages>> <td data-label="Spent Average"><<printmoney `$_moneyTotal.spent / $_moneyTotal.spentCount or 0` "red">></td> <</if>> <<if _moneyStatsCount>> <td data-label="Spent Count"><<print $_moneyTotal.spentCount>></td> <</if>> <td data-label="Earned"> <<printmoney $_moneyTotal.earned>> <<if _showSnapshot is "compare">> <<print "+<<printmoney `(_moneyStatsTotal.earned or 0) - (_moneyStatsSnapshotTotal.earned or 0)` 'white'>>">> <<else>> <<moneyStatsCompare "total" "earned">> <</if>> </td> <<if _moneyStatsAverages>> <td data-label="Earned Average"><<printmoney `$_moneyTotal.earned / $_moneyTotal.earnedCount or 0`>></td> <</if>> <<if _moneyStatsCount>> <td data-label="Earned Count"><<print $_moneyTotal.earnedCount>></td> <</if>> <<if _moneyStatsHourRates>> <td data-label="Hour Rates">-</td> <</if>> <<if _moneyStatsDate>> <td data-label="Date"><<moneyStatsDate $_moneyTotal.spentTimeStamp $_moneyTotal.earnedTimeStamp>></td> <</if>> </tbody> <<if _showSnapshot>> <tfoot> <tr> <td colspan="3"> <<set _snapShotDate to new DateTime($moneyStatsSnapshot.date)>> Snapshot from: <<switch $options.dateFormat>> <<case "en-US">> <<print _snapShotDate.month>>/<<print _snapShotDate.day>>/<<print _snapShotDate.year>> <<case "zh-CN">> <<print _snapShotDate.year>>/<<print _snapShotDate.month>>/<<print _snapShotDate.day>> <<default>> <<print _snapShotDate.day>>/<<print _snapShotDate.month>>/<<print _snapShotDate.year>> <</switch>> - <<ampm _snapShotDate.hour _snapShotDate.minute>> <br> Snapshot age: <<statisticsTimeCompare $moneyStatsSnapshot.date>> </td> </tr> </tfoot> <</if>> </table> <</widget>> <<widget "moneyStatsNames">><<silently>> <<switch _args[0]>> <<case "cafeWaiter">><<set $_text_output to $player.gender_appearance is "m" ? "Cafe Waiter" : "Cafe Waitress">> <<case "partyDanceTips">><<set $_text_output to "Party Dance Job Tips">> <<case "danubeDanceTips">><<set $_text_output to "Danube Dance Job Tips">> <<default>><<set $_text_output to camelCaseToTitle(_args[0])>> <</switch>> <</silently>><<if $_text_output>><<print $_text_output>><</if>> <</widget>> <<widget "moneyStatsTitle">><<silently>> <<if _moneyStatsSorting is _args[0]>> <<set $_text_output to ` <<link "${_args[0]}&#x25B2;">><<set _moneyStatsSorting to "${_args[0]}Desc">><<replace "#moneyStatsDiv">><<moneyStats>><</replace>><</link>>`>> <<elseif _moneyStatsSorting is _args[0] + "Desc">> <<set $_text_output to ` <<link "${_args[0]}&#x25BC;">><<unset _moneyStatsSorting>><<replace "#moneyStatsDiv">><<moneyStats>><</replace>><</link>>`>> <<else>> <<set $_text_output to ` <<link "${_args[0]}">><<set _moneyStatsSorting to "${_args[0]}">><<replace "#moneyStatsDiv">><<moneyStats>><</replace>><</link>>`>> <</if>> <</silently>><<if $_text_output>><<print $_text_output>><</if>> <</widget>> <<widget "moneyStatsCompare">><<silently>> <<if _args[0] and _args[1] and _showSnapshot is "compare">> <<set $_amount to (_moneyStats[_args[0]][_args[1]] or 0) - (_moneyStatsSnapshot[_args[0]] ? _moneyStatsSnapshot[_args[0]][_args[1]] || 0 : 0)>> <<set $_text_output to `+<<printmoney ${$_amount} "white">>`>> <</if>> <</silently>><<if $_text_output>><<print $_text_output>><</if>> <</widget>> <<widget "moneyStatsCompareHourly">><<silently>> <<if _args[0] and _showSnapshot is "compare">> <<if statChange.timeTrackingTotal(_args[0]) and _moneyStats[_args[0]]?.earned and _moneyStatsSnapshot[_args[0]]?.earned>> <<set $_current to _moneyStats[_args[0]].earned / statChange.timeTrackingTotal(_args[0])>> <<set _timeTrackingSnapshotOveride to true>> <<if statChange.timeTrackingTotal(_args[0])>> <<set $_previous to _moneyStatsSnapshot[_args[0]].earned / statChange.timeTrackingTotal(_args[0])>> <<set $_amount to $_current - $_previous>> <<set $_text_output to `${$_amount gt 0 ? "+" : ""}<<printmoney ${$_amount} ${$_amount lt 0 ? "red" : "white"}>>`>> <</if>> <<unset _timeTrackingSnapshotOveride>> <</if>> <</if>> <</silently>><<if $_text_output>><<print $_text_output>><</if>> <</widget>> <<widget "moneyStatsDate">><<silently>> <<if _args[0] or _args[1]>> <<set $_time to new DateTime(Math.max(_args[0] or 0, _args[1] or 0))>> <<switch $options.dateFormat>> <<case "en-US">> <<set $_text_output to `<<print $_time.month>>/<<print $_time.day>>/<<print $_time.year>>`>> <<case "zh-CN">> <<set $_text_output to `<<print $_time.year>>/<<print $_time.month>>/<<print $_time.day>>`>> <<default>> <<set $_text_output to `<<print $_time.day>>/<<print $_time.month>>/<<print $_time.year>>`>> <</switch>> <<set $_text_output += ` - <<ampm $_time.hour $_time.minute>>`>> <<else>> <<set $_text_output to `<span class="dash">-</span>`>> <</if>> <</silently>><<if $_text_output>><<print $_text_output>><</if>> <</widget>> <<widget "virginityToolTip">><<silently>> <<if _args[0]?.timestamp and _args[1] isnot true>> <<set $_time to new DateTime(_args[0].timestamp)>> <<switch $options.dateFormat>> <<case "en-US">> <<set $_text_output to `Taken on: ${$_time.month}/${$_time.day}/${$_time.year}`>> <<case "zh-CN">> <<set $_text_output to `Taken on: ${$_time.year}/${$_time.month}/${$_time.day}`>> <<default>> <<set $_text_output to `Taken on: ${$_time.day}/${$_time.month}/${$_time.year}`>> <</switch>> <<set $_text_output += ` - ${ampm($_time.hour, $_time.minute)}<br>How recent: <<c>><<statisticsTimeCompare _args[0].timestamp>><</c>>`>> <<set $_linkColour to "linkBlue">> <<if _args[0].consensual isnot undefined>> <<set $_text_output += `<br>Consensual: ${_args[0].consensual ? "True" : "False"}`>> <<set $_linkColour to _args[0].consensual ? "green" : "red">> <</if>> <<if _args[0].position>> <<set $_text_output += `<br>Sex Position: ${_args[0].position.toUpperFirst()}`>> <</if>> <<if _args[0].playerPenisSize>> <<set $_penisSize to ["Micro", "Mini", "Tiny", "Small", "Normal", "Large", "Enormous"]>> <<set $_text_output += `<br>Penis size: ${$_penisSize[_args[0].playerPenisSize + 2]}`>> <<elseif _args[0].npcPenisSize>> <<set $_penisSize to ["Tiny", "Average", "Thick", "Huge", "Colossal"]>> <<if !_args[0].npcPenisdesc or !["knotted", "spiked", "strange","equine","avian","bovine","arachnid"].includes(_args[0].npcPenisdesc)>> <<set $_text_output += `<br>Penis size${_args[0].npcPenisSize2 ? "s" : ""}: ${$_penisSize[_args[0].npcPenisSize - 1]}`>> <<if _args[0].npcPenisSize2>> <<set $_text_output += ` and ${$_penisSize[_args[0].npcPenisSize2 - 1]}`>> <</if>> <<else>> <<set $_text_output += `<br>Penis${_args[0].npcPenisSize2 ? "es" : ""}: ${$_penisSize[_args[0].npcPenisSize - 1]} ${_args[0].npcPenisdesc}`>> <<if _args[0].npcPenisSize2>> <<set $_text_output += ` and ${$_penisSize[_args[0].npcPenisSize2 - 1]} ${_args[0].npcPenisdesc2}`>> <</if>> <</if>> <</if>> <<switch _args[0].passage>> <<case "Tutorial">><<set $_special to "Didn't know how to scream">> <<case "Brothel Show Virginity Sex">><<set $_special to "Sold to the highest bidder">> <<case "Brothel Show Virginity Rape">><<set $_special to "Stolen from the highest bidder">> <<case "Sydney Temple Pure Sex">> <<if _args[2] is 'npc' and setup.loveInterestNpc.includes(_args[1])>> <<set $_special to "Given to <<nnpc_his _args[1]>> promised">> <<else>> <<set $_special to "Given to your promised">> <</if>> <<case "Sydney Temple Corrupt Sex">><<set $_special to "Defiled in the temple">> <<case "Estate Cards Sex">><<set $_special to "Gambled away">> <<case "Underground Robin Kiss Intro">> <<set $_special to "Taken when collared together">> <<case "Underground Robin Kiss Molestation">> /* This expected this detail to be only visible for the player's virginity */ <<if _args[2] is "pc">> <<set $_sameTime to "">> <<set $_asRobins to "">> <<set $_eachOther to "Robin">> <<set $_otherVirginity to C.npc.Robin?.virginityDetails?.[_args[3]]?.passage is "Underground Robin Kiss Molestation" ? _args[3] : undefined>> <<if !$_otherVirginity>> <<set $_otherVirginity to C.npc.Robin?.virginityDetails?.vaginal?.passage is "Underground Robin Kiss Molestation" ? "vaginal" : (C.npc.Robin?.virginityDetails?.anal?.passage is "Underground Robin Kiss Molestation" ? "anal" : undefined)>> <</if>> <<if $_otherVirginity>> <<if Math.abs(_args[0]?.timestamp - C.npc.Robin.virginityDetails[$_otherVirginity].timestamp) lte 1000>> <<set $_sameTime to "at the same time ">> <<else>> <<set $_sameTime to "in a similar situation ">> <</if>> <<set $_asRobins to `as Robin's ${$_otherVirginity is _args[3] ? "" : ($_otherVirginity + " virginity ")}`>> <<set $_eachOther to "each other">> <</if>> <<set $_special to `Taken ${$_sameTime}${$_asRobins}while kissing ${$_eachOther}`>> <</if>> <<case "Moor Phallus Plant Masturbation">> <<set $_special to "Driven mad with pleasure">> <<case "Forest Shop Caught Distract">> <<set $_special to "Helped Gwylan get out of a mouthful">> <<default>> <<if _args[0].passage.includes("Gwylan Ritual Sex")>> <<if ["vaginal", "penile"].includes(_args[3]) and $gwylanSeen?.includes("fallen_angel")>> <<set $_special to "Fell to a witch to cleanse the forest">> <<elseif _args[3] is "kiss">> <<set $_special to "Broke Gwylan's first rule in the heat of passion">> <<else>> <<set $_special to "Given away willingly to cleanse the forest">> <</if>> <<elseif _args[0].npcPenisSize gte 5>> <<set $_special to `${_args[3] is "vaginal" ? "Broken" : "Taken"} in the most brutal of ways`>> <<elseif _args[0].npcPenisSize2 isnot undefined>> <<set $_special to "Two for the price of one">> <</if>> <</switch>> <<if $_special>><<set $_text_output += `<div class="lewd">Special: ${$_special}</div>`>><</if>> <<if isPossibleLoveInterest(_args[1]) and $_linkColour isnot "red">> <<set $_linkColour to "lewd">> <</if>> <</if>> <</silently>><<if $_text_output>> <mouse @class="'tooltip ' + $_linkColour">(?)<span><<print $_text_output>></span></mouse><</if>> <</widget>> <<widget "badEndStats">> <<set $_badEndStats to clone($badEndStats)>> <<run $_badEndStats.forEach(badEnd => { if (badEnd.reasonStart and setup.badEndReasonText[badEnd.reasonStart]) badEnd.reasonStart = setup.badEndReasonText[badEnd.reasonStart]; if (badEnd.reasonEnd and setup.badEndReasonText[badEnd.reasonEnd]) badEnd.reasonEnd = setup.badEndReasonText[badEnd.reasonEnd]; })>> <span @class="_badEndStatsHowLongAgo ? 'goldLink' : ''"> <<link `_badEndStatsHowLongAgo ? "Hide How Long Ago" : "Show How Long Ago"`>> <<set _badEndStatsHowLongAgo to !_badEndStatsHowLongAgo>> <<if !_badEndStatsHowLongAgo>><<unset _badEndStatsHowLongAgo>><</if>> <<replace "#badEndStatsDiv">><<badEndStats>><</replace>> <</link>> </span> | <span @class="_badEndStatsReasonStart ? 'goldLink' : ''"> <<link `_badEndStatsReasonStart ? "Hide Start Reason" : "Show Start Reason"`>> <<set _badEndStatsReasonStart to !_badEndStatsReasonStart>> <<if !_badEndStatsReasonStart>><<unset _badEndStatsReasonStart>><</if>> <<replace "#badEndStatsDiv">><<badEndStats>><</replace>> <</link>> </span> | <span @class="_badEndStatsReasonEnd ? 'goldLink' : ''"> <<link `_badEndStatsReasonEnd ? "Hide End Reason" : "Show End Reason"`>> <<set _badEndStatsReasonEnd to !_badEndStatsReasonEnd>> <<if !_badEndStatsReasonEnd>><<unset _badEndStatsReasonEnd>><</if>> <<replace "#badEndStatsDiv">><<badEndStats>><</replace>> <</link>> </span> <<if _badEndStatsSorting>> | <<link "Reset Sorting">> <<unset _badEndStatsSorting>> <<replace "#badEndStatsDiv">><<badEndStats>><</replace>> <</link>> <<run $_badEndStats.sort((a, b) => { if (_badEndStatsSorting.includes("Desc")) { const tempSwap = clone(a); a = clone(b); b = tempSwap; } switch(_badEndStatsSorting.replace("Desc","")) { case "Bad End": if (a.source.toUpperCase() < b.source.toUpperCase()) return -1; return 1; case "Started": return (b.trackedStart || 0) - (a.trackedStart || 0); case "Ended": case "Time since it ended": return (b.trackedEnd || 0) - (a.trackedEnd || 0); case "Duration": return ((b.trackedEnd || 0) - b.trackedStart) - ((a.trackedEnd || 0) - a.trackedStart); case "Start Reason": if ((a.reasonStart || "").toUpperCase() < (b.reasonStart || "").toUpperCase()) return -1; return 1; case "End Reason": if ((a.reasonEnd || "").toUpperCase() < (b.reasonEnd || "").toUpperCase()) return -1; return 1; } })>> <</if>> <table class="statsTable"> <thead> <tr> <th scope="col"><<badEndStatsTitle "Bad End">></th> <th scope="col"><<badEndStatsTitle "Started">></th> <th scope="col"><<badEndStatsTitle "Ended">></th> <th scope="col"><<badEndStatsTitle "Duration">></th> <<if _badEndStatsHowLongAgo>> <th scope="col"><<badEndStatsTitle "How Long Ago">></th> <</if>> <<if _badEndStatsReasonStart>> <th scope="col"><<badEndStatsTitle "Start Reason">></th> <</if>> <<if _badEndStatsReasonEnd>> <th scope="col"><<badEndStatsTitle "End Reason">></th> <</if>> </tr> </thead> <<for $_badEnd range $_badEndStats>> <tbody class="stat"> <td data-label="Bad End"> <<print $_badEnd.source>> <<if $_badEnd.notesStart or $_badEnd.notesEnd>> <<set $_includesError to $_badEnd?.notesStart?.includes("Not correctly tracked") or $_badEnd?.notesEnd?.includes("Not correctly tracked")>> <mouse @class="'tooltip ' + ($_includesError ? 'red' : 'linkBlue')">(?)<span> <<if $_badEnd.notesStart>><<print $_badEnd.notesStart>><</if>> <<if $_badEnd.notesEnd>> <<if $_badEnd.notesStart>><hr><</if>> <<print $_badEnd.notesEnd>> <</if>> </span></mouse> <</if>> </td> <td data-label="Started"> <<set $_time to new DateTime($_badEnd.trackedStart)>> <<switch $options.dateFormat>> <<case "en-US">> Started: $_time.month/$_time.day/$_time.year <<case "zh-CN">> Started: $_time.year/$_time.month/$_time.day <<default>> Started: $_time.day/$_time.month/$_time.year <</switch>> </td> <td data-label="Ended"> <<if $_badEnd.trackedEnd>> <<set $_time2 to new DateTime($_badEnd.trackedEnd)>> <<switch $options.dateFormat>> <<case "en-US">> Ended: $_time2.month/$_time2.day/$_time2.year <<case "zh-CN">> Ended: $_time2.year/$_time2.month/$_time2.day <<default>> Ended: $_time2.day/$_time2.month/$_time2.year <</switch>> <<else>> <span class="dash"></span> <</if>> </td> <td data-label="Duration"> <<if $_badEnd.trackedEnd>> <<statisticsTimeCompare $_time $_time2>> <<else>> In progress <</if>> </td> <<if _badEndStatsHowLongAgo>> <td data-label="How Long Ago"> <<if $_badEnd.trackedEnd>> <<statisticsTimeCompare $_time2>> <<else>> <span class="dash">-</span> <</if>> </td> <</if>> <<if _badEndStatsReasonStart>> <td data-label="Start Reason"> <<if setup.badEndReasonText[$_badEnd.reasonStart] isnot undefined>> <<print setup.badEndReasonText[$_badEnd.reasonStart] or '<span class="dash">-</span>'>> <<elseif $_badEnd.reasonStart>> <<print $_badEnd.reasonStart>> <<else>> <span class="dash">-</span> <</if>> </td> <</if>> <<if _badEndStatsReasonEnd>> <td data-label="End Reason"> <<if setup.badEndReasonText[$_badEnd.reasonEnd] isnot undefined>> <<print setup.badEndReasonText[$_badEnd.reasonEnd] or '<span class="dash">-</span>'>> <<elseif $_badEnd.reasonEnd>> <<print $_badEnd.reasonEnd>> <<else>> <span class="dash">-</span> <</if>> </td> <</if>> </tbody> <</for>> </table> <</widget>> <<widget "badEndStatsTitle">><<silently>> <<if _badEndStatsSorting is _args[0]>> <<set $_text_output to ` <<link "${_args[0]}&#x25B2;">><<set _badEndStatsSorting to "${_args[0]}Desc">><<replace "#badEndStatsDiv">><<badEndStats>><</replace>><</link>>`>> <<elseif _badEndStatsSorting is _args[0] + "Desc">> <<set $_text_output to ` <<link "${_args[0]}&#x25BC;">><<unset _badEndStatsSorting>><<replace "#badEndStatsDiv">><<badEndStats>><</replace>><</link>>`>> <<else>> <<set $_text_output to ` <<link "${_args[0]}">><<set _badEndStatsSorting to "${_args[0]}">><<replace "#badEndStatsDiv">><<badEndStats>><</replace>><</link>>`>> <</if>> <</silently>><<if $_text_output>><<print $_text_output>><</if>> <</widget>> <<widget "produceStats">> <<set $_produceKeys to Object.keys(clone(setup.plants))>> <span @class="_produceStatsCurrent ? '' : 'goldLink'"> /* Inverted in how it works */ <<link `_produceStatsCurrent ? "Show player stats" : "Hide player stats"`>> <<set _produceStatsCurrent to !_produceStatsCurrent>> <<replace "#produceStatsDiv">><<produceStats>><</replace>> <</link>> </span> | <<if $stall_stats>> <<if $daily.stallRented>> <span @class="_produceStatsMarket ? 'goldLink' : ''"> <<link `_produceStatsMarket ? "Hide market daily stats" : "Show market daily stats"`>> <<set _produceStatsMarket to !_produceStatsMarket>> <<replace "#produceStatsDiv">><<produceStats>><</replace>> <</link>> </span> | <</if>> <span @class="_produceStatsMarketOverall ? 'goldLink' : ''"> <<link `_produceStatsMarketOverall ? "Hide market overall stats" : "Show market overall stats"`>> <<set _produceStatsMarketOverall to !_produceStatsMarketOverall>> <<replace "#produceStatsDiv">><<produceStats>><</replace>> <</link>> </span> | <</if>> <<if $farmersProduce?.soldData>> <span @class="_produceStatsFactory ? 'goldLink' : ''"> <<link `_produceStatsFactory ? "Hide factory stats" : "Show factory stats"`>> <<set _produceStatsFactory to !_produceStatsFactory>> <<replace "#produceStatsDiv">><<produceStats>><</replace>> <</link>> </span> | <</if>> <<if _produceStatsSorting>> <<link "Reset Sorting">> <<unset _produceStatsSorting>> <<replace "#produceStatsDiv">><<produceStats>><</replace>> <</link>> <<run $_produceKeys.sort((a, b) => { if (_produceStatsSorting.includes("Desc")) { const tempSwap = clone(a); a = clone(b); b = tempSwap; } switch(_produceStatsSorting.replace("Desc","")) { case "Produce": if (a.toUpperCase() < b.toUpperCase()) return -1; return 1; case "Value": return (setup.plants[b]?.plant_cost || 0) - (setup.plants[a]?.plant_cost || 0); case "Amount": return ($plants[b].amount || 0) - ($plants[a].amount || 0); case "Total": return ((setup.plants[b]?.plant_cost * $plants[b].amount) || 0) - ((setup.plants[a]?.plant_cost * $plants[a].amount) || 0); case "Market: Allowed to be sold": return $plants[b]?.marketStall ? 1 : -1; case "Market: Sold Today": return ($stall_stats[b]?.sold.amount || 0) - ($stall_stats[a]?.sold.amount || 0); case "Market: Average Today": return (($stall_stats[b].sold.total || 0) / ($stall_stats[b]?.sold.amount || 1)) - (($stall_stats[a].sold.total || 0) / ($stall_stats[a]?.sold.amount || 1)); case "Market: Todays Total": return ($stall_stats[b]?.sold.total || 0) - ($stall_stats[a]?.sold.total || 0); case "Market: Sold": return ($stall_stats[b]?.sold.amountHistory || 0) - ($stall_stats[a]?.sold.amountHistory || 0); case "Market: Average": return (($stall_stats[b].sold.totalHistory || 0) / ($stall_stats[b]?.sold.amountHistory || 1)) - (($stall_stats[a].sold.totalHistory || 0) / ($stall_stats[a]?.sold.amountHistory || 1)); case "Market: Total": return ($stall_stats[b]?.sold.totalHistory || 0) - ($stall_stats[a]?.sold.totalHistory || 0); case "Factory: Sold": return ($farmersProduce.soldData[b]?.amount || 0) - ($farmersProduce.soldData[a]?.amount || 0); case "Factory: Average": return (($farmersProduce.soldData[b]?.total || 0) / ($farmersProduce.soldData[b]?.amount || 1)) - (($farmersProduce.soldData[a]?.total || 0) / ($farmersProduce.soldData[a]?.amount || 1)); case "Factory: Total": return ($farmersProduce.soldData[b]?.total || 0) - ($farmersProduce.soldData[a]?.total || 0); } })>> <</if>> <table class="statsTable"> <thead> <tr> <th scope="col"><<produceStatsTitle "Produce">></th> <th scope="col"><<produceStatsTitle "Value">></th> <<if !_produceStatsCurrent>> <th scope="col"><<produceStatsTitle "Amount">></th> <th scope="col"><<produceStatsTitle "Total">></th> <</if>> <<if _produceStatsMarket or _produceStatsMarketOverall>> <th scope="col"><<produceStatsTitle "Market: Allowed to be sold">></th> <</if>> <<if _produceStatsMarket>> <th scope="col"><<produceStatsTitle "Market: Sold Today">></th> <th scope="col"><<produceStatsTitle "Market: Average Today">></th> <th scope="col"><<produceStatsTitle "Market: Todays Total">></th> <</if>> <<if _produceStatsMarketOverall>> <th scope="col"><<produceStatsTitle "Market: Sold">></th> <th scope="col"><<produceStatsTitle "Market: Average">></th> <th scope="col"><<produceStatsTitle "Market: Total">></th> <</if>> <<if _produceStatsFactory>> <th scope="col"><<produceStatsTitle "Factory: Sold">></th> <th scope="col"><<produceStatsTitle "Factory: Average">></th> <th scope="col"><<produceStatsTitle "Factory: Total">></th> <</if>> </tr> </thead> <<for $_key range $_produceKeys>> <<set $_produce to clone(setup.plants[$_key])>> <<set $_playerProduce to clone($plants[$_key])>> <<if $_playerProduce.amount lte 0 and !$stall_stats?.[$_key]?.sold.amount and !$stall_stats?.[$_key]?.sold.amountHistory and !$farmersProduce?.selling[$_key] and !$farmersProduce?.soldData?.[$_key]>> <<continue>> <</if>> <tbody class="stat"> <td data-label="Produce"> <<recipe_name $_key>> </td> <td data-label="Value"> <<printmoney `$_produce.plant_cost or 0`>> </td> <<if !_produceStatsCurrent>> <td data-label="Amount"> <<if $_playerProduce.amount gt 0>> <<print $_playerProduce.amount>> <<else>> <span class="dash">-</span> <</if>> </td> <td data-label="Total"> <<if $_playerProduce.amount gt 0>> <<printmoney `($_produce.plant_cost or 0) * $_playerProduce.amount`>> <<else>> <span class="dash">-</span> <</if>> </td> <</if>> <<if _produceStatsMarket or _produceStatsMarketOverall>> <td data-label="Market: Allowed to be sold"> <<if $plants[$_key]?.marketStall isnot undefined>> <<print $plants[$_key].marketStall>> <<else>> <span class="dash">-</span> <</if>> </td> <</if>> <<if _produceStatsMarket>> <td data-label="Market: Sold Today"> <<if $stall_stats[$_key]?.sold.amount gt 0>> <<print $stall_stats[$_key].sold.amount>> <<else>> <span class="dash">-</span> <</if>> </td> <td data-label="Market: Average Today"> <<if $stall_stats[$_key]?.sold.amount gt 0>> <<printmoney `$stall_stats[$_key].sold.total / $stall_stats[$_key].sold.amount`>> <<else>> <span class="dash">-</span> <</if>> </td> <td data-label="Market: Todays Total"> <<if $stall_stats[$_key]?.sold.total gt 0>> <<printmoney $stall_stats[$_key].sold.total>> <<else>> <span class="dash">-</span> <</if>> </td> <</if>> <<if _produceStatsMarketOverall>> <td data-label="Market: Sold"> <<if $stall_stats[$_key]?.sold.amountHistory gt 0>> <<print $stall_stats[$_key].sold.amountHistory>> <<else>> <span class="dash">-</span> <</if>> </td> <td data-label="Market: Average"> <<if $stall_stats[$_key]?.sold.amountHistory gt 0>> <<printmoney `$stall_stats[$_key].sold.totalHistory / $stall_stats[$_key].sold.amountHistory`>> <<else>> <span class="dash">-</span> <</if>> </td> <td data-label="Market: Total"> <<if $stall_stats[$_key]?.sold.totalHistory gt 0>> <<printmoney $stall_stats[$_key].sold.totalHistory>> <<else>> <span class="dash">-</span> <</if>> </td> <</if>> <<if _produceStatsFactory>> <td data-label="Factory: Sold"> <<if $farmersProduce.soldData[$_key]?.amount gt 0>> <<print $farmersProduce.soldData[$_key].amount>> <<else>> <span class="dash">-</span> <</if>> </td> <td data-label="Factory: Average"> <<if $farmersProduce.soldData[$_key]?.amount gt 0>> <<printmoney `$farmersProduce.soldData[$_key].total / $farmersProduce.soldData[$_key].amount`>> <<else>> <span class="dash">-</span> <</if>> </td> <td data-label="Factory: Total"> <<if $farmersProduce.soldData[$_key]?.total gt 0>> <<printmoney $farmersProduce.soldData[$_key].total>> <<else>> <span class="dash">-</span> <</if>> </td> <</if>> </tbody> <</for>> </table> <</widget>> <<widget "produceStatsTitle">><<silently>> <<if _produceStatsSorting is _args[0]>> <<set $_text_output to ` <<link "${_args[0]}&#x25B2;">><<set _produceStatsSorting to "${_args[0]}Desc">><<replace "#produceStatsDiv">><<produceStats>><</replace>><</link>>`>> <<elseif _produceStatsSorting is _args[0] + "Desc">> <<set $_text_output to ` <<link "${_args[0]}&#x25BC;">><<unset _produceStatsSorting>><<replace "#produceStatsDiv">><<produceStats>><</replace>><</link>>`>> <<else>> <<set $_text_output to ` <<link "${_args[0]}">><<set _produceStatsSorting to "${_args[0]}">><<replace "#produceStatsDiv">><<produceStats>><</replace>><</link>>`>> <</if>> <</silently>><<if $_text_output>><<print $_text_output>><</if>> <</widget>><<widget "traits">> <<if $sexStats and $sexStats.pills>> <<set _pills to $sexStats.pills.pills>> <</if>> <<set _traitLists to [ { title: "General Traits", traits: [ { name: "Virgin", colour: "green", has: $player.virginity.vaginal is true and $player.virginity.penile is true, text: "Your purity recovers faster. Your virginity might be worth something.", }, { name: "Chastity Vow", colour: "blue", has: $player.virginity.temple is true, text: "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.", }, { name: "Broken Vow", colour: "red", has: $player.virginity.temple isnot true and $temple_rank isnot "prospective" and $temple_rank isnot undefined, text: "The temple will know.", }, { name: "Rite of Promise: $templePromised", colour: "blue", has: $templePromised isnot "" and $player.virginity.temple is true, text: "You've been bound to another member of the temple. Sex with this person will not break your vows.", }, { name: "Broken Promise: $templePromised", colour: "red", has: $templePromised isnot "" and $player.virginity.temple isnot true, text: "The temple will know.", }, { name: "Temple Burden: $temple_burden%", colour: "blue", has: $temple_burden gte 1, text: "You are carrying part of the world's corruption within yourself. Physique, willpower, athletics, dancing, skulduggery, swimming, tending, housekeeping, and English skill checks have a $temple_burden% chance to automatically fail.", }, { name: "Purity Boost", colour: "green", has: $featsPurityBoost gt 0, text: () => { let dailyPurity = 1; if (V.fallenangel >= 2) dailyPurity -= 10; if (V.player.virginity.vaginal === true && V.player.virginity.penile === true) dailyPurity += 2; if (dailyPurity + V.featsPurityBoost > 0) return "You are gaining purity daily."; if (dailyPurity + V.featsPurityBoost === 0) return "You are not losing purity daily."; return "You are losing less purity daily."; }, }, { name: "Impurity Boost", colour: "red", has: $featsPurityBoost lt 0, text: () => { let dailyPurity = 1; if (V.fallenangel >= 2) dailyPurity -= 10; if (V.player.virginity.vaginal === true && V.player.virginity.penile === true) dailyPurity += 2; if (dailyPurity + V.featsPurityBoost > 0) return "You are gaining less purity daily."; if (dailyPurity + V.featsPurityBoost === 0) return "You are not gaining purity daily."; return "You are losing purity daily."; }, }, { name: $player.sex isnot $player.gender ? `\"Crossdresser\"` : "Crossdresser", colour: $player.sex is "f" ? "lblue" : "pink", has: $backgroundTraits.includes("crossdresser"), text: `Stress decays faster when you look like a ${$player.sex is "f" ? "boy" : "girl"}, but slower when dressed as a <<pcSex>>.`, }, { name: "Lustful", colour: "lewd", has: $backgroundTraits.includes("lustful"), text: "Arousal increases over time and needs to be managed.", }, { name: "Green Thumb", colour: "green", has: $backgroundTraits.includes("greenthumb"), text: "More bountiful crops and no decay when using fertiliser.", }, { name: () => V.submissive <= 850 ? "Dendrophile" : "Plant Lover", colour: "lewd", has: $backgroundTraits.includes("plantlover"), text: "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.", }, { name: "Nectar Addict", colour: "red", has: $backgroundTraits.includes("plantlover"), text: "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>><span class='lewd'>Dendrophile</span><<else>><span class='lewd'>Plant Lover</span><</if>> trait to disappear.<span class='hidden'></span>", }, { name: () => { return "Ear slime focus: " + $earSlime.focus; }, colour: "lewd", has: $earSlime.focus and $earSlime.focus isnot "none", text: () => { let result; switch ($earSlime.focus) { case "pregnancy": result = "You chose the path of pregnancy, causing the ear slime to amplify traits related to becoming pregnant, while weakening other traits."; break; case "mixed": result = "You chose to walk the path between pregnancy and impregnation, causing the ear slime to amplify traits related to both, to a lesser degree."; break; case "impregnation": result = "You chose the path of impregnation, causing the ear slime to amplify traits related to impregnating others, while weakening other traits."; break; } let parasites = []; if ($parasite.breasts and $parasite.breasts.name is "parasite") { if ($player.breastsize gte 1) { parasites.push("breasts"); } else { parasites.push("chest"); } } if (($parasite.clit and $parasite.clit.name is "parasite") or ($parasite.penis and $parasite.penis.name is "parasite")) parasites.push("genitals"); if (parasites.length) result += ` Its parasites cover your ${formatList(parasites, "and", true)} like clothing.`; return result; } }, { name: "Pregnant", colour: "lewd", has: playerIsPregnant() and playerAwareTheyArePregnant(), text: () => playerBellySize() lt 10 or playerNormalPregnancyTotal() gte 50 ? "You are with child." : "You are with child. Some skills will suffer as your belly grows.", }, { name: "First Time Mother", colour: "lewd", has: playerNormalPregnancyTotal() is 1, text: "You have given birth to your first child. Reduces the physical penalties for being pregnant.", }, { name: "Second Time Mother", colour: "lewd", has: playerNormalPregnancyTotal() is 2, text: "You have given birth to children two times now. Reduces the physical penalties for being pregnant.", }, { name: "Mother", colour: "lewd", has: between(playerNormalPregnancyTotal(), 3, 7), text: "You have some good experiences of being a mother. Moderately reduces the physical penalties for being pregnant.", }, { name: "Broodmother", colour: "lewd", has: between(playerNormalPregnancyTotal(), 8, 49), text: "You have given birth to many, many children. Greatly reduces the physical penalties for being pregnant.", }, { name: "Gaia", colour: "gold", has: playerNormalPregnancyTotal() gte 50, text: "You have given birth to a veritable dynasty of children. No physical penalties for being pregnant.", }, { name: "Parasite Broodmother", colour: "lewd", has: $sexStats.anus.pregnancy.motherStatus is 2 or $sexStats.vagina.pregnancy.motherStatus is 2, text: "You've become host to an endless number of little critters<<if $sexStats.anus.pregnancy.motherStatus is 2 and $sexStats.vagina.pregnancy.motherStatus is 2>> <span class='lewd'>in multiple places in your body</span><</if>><span class='hidden'></span>.", }, { name: "Parasite Mother", colour: "lewd", has: ($sexStats.anus.pregnancy.motherStatus is 1 or $sexStats.vagina.pregnancy.motherStatus is 1) and !($sexStats.anus.pregnancy.motherStatus is 2 or $sexStats.vagina.pregnancy.motherStatus is 2), text: "You have given birth to little critters<<if $sexStats.anus.pregnancy.motherStatus is 1 and $sexStats.vagina.pregnancy.motherStatus is 1>> <span class='lewd'>in multiple places in your body</span><</if>><span class='hidden'></span>.", }, { name: "Lactating", colour: "blue", has: $lactating gte 1 and $settings.breastFeedingEnabled, text: "Your breasts are ready to be milked.", }, { name: "Milk Factory", colour: "blue", has: $lactating gte 1 and $settings.breastFeedingEnabled and $milk_volume gte 1000, text: "Your breasts are able to hold a tremendous amount of milk.", }, { name: "Sperm Bank", colour: "blue", has: $semen_volume gte 1000 and $player.penisExist, text: "You carry a tremendous amount of semen.", }, { name: "Possessed", colour: "wraith", has: $possessed, text: "Your body is not your own.", }, { name: () => V.player.gender is "n" ? "Wolf" : "Wolf <<pcGender>>", colour: "grey", has: $wolfgirl gte 6, text: 'The spirit of the wild lives within you. Defiant options and the "Demand" action are always available, reducing stress. When too submissive, acting defiant is traumatic and lowers control. Your ears and tail make you more conspicuous.', }, { name: () => V.player.gender is "n" ? "Cat" : "Cat <<pcGender>>", colour: "grey", has: $cat gte 6, text: '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.', }, { name: () => { if (V.player.gender_appearance is "m") { if (V.player.gender is "n") { return "Bull"; } return "Bull <<pcGender>>"; } else { if (V.player.gender is "n") { return "Cow"; } return "Cow <<pcGender>>"; } }, colour: "brat", has: $cow gte 6, text: "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.", }, { name: () => V.hallucinations gte 2 || !V.settings.bestialityEnabled ? "Harpy" : V.player.gender is "n" ? "Bird" : "Bird <<pcGender>>", colour: "grey", has: $harpy gte 6, text: "The skies call.", }, { name: () => { if (V.player.gender_appearance is "m") { if (V.player.gender is "n") { return "Fox"; } return "Fox <<pcGender>>"; } else { return "Vixen"; } }, colour: "", style: `background: linear-gradient(to right,#fe9000 0%, #ffffff 100%);-webkit-background-clip: text;-webkit-text-fill-color: transparent;`, has: $fox gte 6, text: "You have the urge to keep what's not yours. Improves skulduggery. Your ears and tail make you more alluring and attractive.", }, { name: "Fangs", colour: "def", has: $transformationParts.traits.fangs isnot "disabled", text: "Biting is three times as effective.", }, { name: "Sharp Eyes", colour: "def", has: $transformationParts.traits.sharpEyes isnot "disabled", text: "Little escapes your notice. +5% skulduggery.", }, { name: "Heterochromia", colour: "", style: `background: linear-gradient(to right,${setup.colours.eyes_map[$rightEyeColour].canvasfilter.blend} 0%, ${setup.colours.eyes_map[$leftEyeColour].canvasfilter.blend} 100%);-webkit-background-clip: text;-webkit-text-fill-color: transparent;`, has: $heterochromia is 1, text: "Your eyes are two different colours.", }, { name: "Sturdy Horns", colour: "def", has: $cow gte 2 and $demon lt 2, text: "Headbutts no longer hurt you.", }, { name: "Mate For Life", colour: "", style: `background: linear-gradient(to right,#e646c6 0%, #ffffff 100%);-webkit-background-clip: text;-webkit-text-fill-color: transparent;`, has: $transformationParts.traits.mateForLife isnot "disabled", text: "Gain bonuses when sleeping or copulating with your Love Interest. Changing Love Interests causes stress and trauma.", }, { name: "Thrill of the Chase", colour: "teal", has: $transformationParts.traits.chase isnot "disabled", text: 'Gain a bonus to athletics and unlocks the "ambush" action in stalking encounters. Escaping your pursuers reduces stress.', }, { name: "Fallen Angel", colour: "black", has: $fallenangel gte 3, text: 'The world is so cruel. Though you feel less pure by the day, you will not relinquish yourself. Unlocks the "disparage" action.', }, { name: "Fallen Angel", colour: "black", has: $fallenangel is 2, text: "The world is so cruel. You feel less pure by the day.", }, { name: "Angel", colour: "gold", has: $angel gte 6, text: '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.', }, { name: () => { if(V.player.gender_appearance is "m"){ if(V.player.sex is "f" and isCrossdressing()){ return "Incubus (female)"; } return "Incubus"; }else{ if(V.player.sex is "m" and isCrossdressing()){ return "Succubus (male)"; } return "Succubus"; } }, colour: "red", has: $demon gte 6, text: "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.", }, { name: "Radiant", colour: "gold", has: $angel gte 4, text: '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)', }, { name: "Dark Horns", colour: "def", has: $cow lt 2 and $demon gte 2, text: "Headbutts deal twice as much damage.", }, { name: "Compound Horns", colour: "def", has: $cow gte 2 and $demon gte 2, text: "Your headbutts are vicious. Headbutts are four times as powerful and no longer hurt you.", }, { name: () => V.plucked ? "Thoroughly Preened Wings" : "Strong Wings", colour: () => V.plucked ? "grey" : "gold", has: $harpy gte 6 and $birdFly gte 1, text: () => V.plucked ? "You're missing some feathers, but your wings feel sleek. Can glide, but flight is temporarily disabled." : "Can glide from high locations. Can fly where the wind is willing.", meter: { has: V.plucked, value: V.plucked, min: 0, max: 14, colour: "bluebar", }, }, { name: "Wings", colour: "grey", has: !($harpy gte 6 and $birdFly gte 1) and ($angel gte 6 or $fallenangel gte 2 or $demon gte 6 or $harpy gte 6), text: "Can glide from high locations.", }, { name: "Meek", colour: "meek", has: $submissive gte 1150 and $submissive lt 1500, text: 'Unlocks the "Moan" action.', }, { name: "Submissive", colour: "sub", has: $submissive gte 1500, text: 'Unlocks the "Moan" action.', }, { name: "Bratty", colour: "brat", has: $submissive lte 850 and $submissive gt 500, text: 'Unlocks the "Demand" action.', }, { name: "Defiant", colour: "def", has: $submissive lte 500, text: 'Unlocks the "Demand" action.', }, { name: "Innocent", colour: "blue", has: $innocencestate is 1, text: "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.", }, { name: "Guilty Masochist", colour: "blue", has: $masochism_level is 1, text: "Provides a small resistance to most sources of pain. Those sources increase arousal instead.", }, { name: "Masochist", colour: "purple", has: $masochism_level is 2, text: "Provides resistance to most sources of pain. Those sources increase arousal instead.", }, { name: "Hardened Masochist", colour: "pink", has: $masochism_level is 3, text: "Provides strong resistance to most sources of pain. Those sources increase arousal instead.", }, { name: "Drooling Masochist", colour: "red", has: $masochism_level is 4, text: "Provides incredible resistance to most sources of pain. Those sources increase arousal instead.", }, { name: "Guilty Sadist", colour: "blue", has: $sadism_level is 1, text: "Your defiant acts inflict a little more pain. Inflicting pain increases arousal.", }, { name: "Sadist", colour: "purple", has: $sadism_level is 2, text: "Your defiant acts inflict more pain. Inflicting pain increases arousal.", }, { name: "Hardened Sadist", colour: "pink", has: $sadism_level is 3, text: "Your defiant acts inflict much more pain. Inflicting pain increases arousal.", }, { name: "Vengeful Sadist", colour: "red", has: $sadism_level is 4, text: "Your defiant acts are far more dangerous. Inflicting pain increases arousal.", }, { name: "Farmer", colour: "green", has: $farm_stage gte 6, text: "You know your way around a barn. Your physique is easier to maintain.", }, { name: "Knowledge: Islander language", colour: "", has: $islander_language gte 100, text: "You can understand and speak the tongue of the islanders.", }, { name: "Knowledge: Quicksand", colour: "", has: $quicksand gte 5, text: "You know how to react when stuck in the stuff.", }, { name: "Ancient Arts", colour: "wraith", has: $hc?.wraith, text: "You've learned techniques lost to the past. An extension of your body, your arm and whip move as one.", }, ], }, { title: "Medicinal Traits", traits: [ { name: "Hair Growth Formula", colour: "green", has: _pills and _pills["Hair Growth Formula"] and _pills["Hair Growth Formula"].doseTaken, text: () => { return `A hair growth formula has been applied, to encourage faster hair growth. ${_pills["Hair Growth Formula"].doseTaken} day${_pills["Hair Growth Formula"].doseTaken is 1 ? "" : "s"} remaining.`; } }, { name: "Anti-Parasite Cream", colour: "green", has: _pills and _pills["Anti-Parasite Cream"] and _pills["Anti-Parasite Cream"].doseTaken, text: () => { return `A parasite-repelling cream, preventing further internal parasite impregnation. ${_pills["Anti-Parasite Cream"].doseTaken} day${_pills["Anti-Parasite Cream"].doseTaken is 1 ? "" : "s"} remaining.`; } }, { name: "Fertility booster", colour: "lewd", has: _pills and _pills["fertility booster"] and _pills["fertility booster"].doseTaken, text: () => { let result = `You have ${_pills["fertility booster"].doseTaken gte 2 ? "overdosed on pills" : "taken a pill"} that `; let multiple = false; let hasEffect = false; if ((!playerIsPregnant() or !playerAwareTheyArePregnant()) and playerAwareTheyCanBePregnant()) { multiple = true; hasEffect = true; result += "makes it easier for you to get pregnant with more children"; } if ($player.penisExist and $player.penissize gte -1) { hasEffect = true; if (multiple) result += " and "; result += "makes your sperm more virile"; } if (!hasEffect) { result += "currently has no effect on you"; } result += `. ${_pills["fertility booster"].doseTaken} day${_pills["fertility booster"].doseTaken is 1 ? "" : "s"} remaining.`; return result; } }, { name: "Contraceptive", colour: "lblue", has: _pills and _pills["contraceptive"] and _pills["contraceptive"].doseTaken, text: () => { let result = `You have ${_pills["contraceptive"].doseTaken gte 2 ? "overdosed on pills" : "taken a pill"} that `; let multiple = false; let hasEffect = false; if (!playerAwareTheyCanBePregnant() or !playerAwareTheyArePregnant()) { multiple = true; hasEffect = true; result += "makes it harder for you to get pregnant"; } if ($player.penisExist and $player.penissize gte -1) { hasEffect = true; if (multiple) result += " and "; result += "makes your sperm less virile"; } if (!hasEffect) { result += "currently has no effect on you"; } result += `. ${_pills["contraceptive"].doseTaken} day${_pills["contraceptive"].doseTaken is 1 ? "" : "s"} remaining.`; return result; } }, { name: "Penis blocker pills", colour: "green", has: _pills and _pills["penis blocker"] and _pills["penis blocker"].doseTaken, text: () => { let result = `You have taken a pill that`; if ($player.penisExist) { result += " prevents the re-sizing of your penis."; } else { result += " has no effect on you."; } return result; } }, { name: "Penis growth pills", colour: "green", has: _pills and _pills["penis growth"] and _pills["penis growth"].doseTaken, text: () => { let result = `You have ${_pills["penis growth"].doseTaken gte 2 ? "overdosed on" : "taken"} pills that `; if ($player.penisExist) { result += " encourages the growth of your penis."; } else { result += " that has no effect on you."; } return result; } }, { name: "Penis reduction pills", colour: "green", has: _pills and _pills["penis reduction"] and _pills["penis reduction"].doseTaken, text: () => { let result = `You have ${_pills["penis reduction"].doseTaken gte 2 ? "overdosed on" : "taken"} pills that `; if ($player.penisExist) { result += " encourages the shrinking of your penis."; } else { result += " that has no effect on you."; } return result; } }, { name: "Breast blocker pills", colour: "green", has: _pills and _pills["breast blocker"] and _pills["breast blocker"].doseTaken, text: "You have taken a pill that prevents the re-sizing of your breasts.", }, { name: "Breast growth pills", colour: "green", has: _pills and _pills["breast growth"] and _pills["breast growth"].doseTaken, text: `You have ${_pills and _pills["breast growth"].doseTaken gte 2 ? "overdosed on" : "taken"} a pill that encourages the growth of your breasts.`, }, { name: "Breast reduction pills", colour: "green", has: _pills and _pills["breast reduction"] and _pills["breast reduction"].doseTaken, text: `You have ${_pills and _pills["breast reduction"].doseTaken gte 2 ? "overdosed on" : "taken"} a pill that encourages the shrinking of your breasts.`, }, { name: "Bottom blocker pills", colour: "green", has: _pills and _pills["bottom blocker"] and _pills["bottom blocker"].doseTaken, text: "You have taken a pill that prevents the re-sizing of your bottom.", }, { name: "Bottom growth pills", colour: "green", has: _pills and _pills["bottom growth"] and _pills["bottom growth"].doseTaken, text: `You have ${_pills and _pills["bottom growth"].doseTaken gte 2 ? "overdosed on" : "taken"} a pill that encourages the growth of your bottom.`, }, { name: "Bottom reduction pills", colour: "green", has: _pills and _pills["bottom reduction"] and _pills["bottom reduction"].doseTaken, text: `You have ${_pills and _pills["bottom reduction"].doseTaken gte 2 ? "overdosed on" : "taken"} a pill that encourages the shrinking of your bottom.`, }, ] }, { title: "Special Traits", traits: [ { name: () => V.submissive <= 850 ? "Hedonist" : "Orgasm Addict", colour: "lewd", has: $orgasmtrait gte 1, text: "The number of orgasms you have had has left a lasting physiological effect. Climaxing is more difficult but pleasurable orgasms relieve more stress and painful orgasms no longer increase stress.", }, { name: "Asphyxiophilia", colour: "lewd", has: $choketrait gte 1, text: "You've come to love the feeling of lack of oxygen. Getting choked makes sex more pleasurable.", }, { name: () => V.submissive <= 850 ? "Cumoisseur" : "Cum Dump", colour: "lewd", has: $ejactrait gte 1, text: "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.", }, { name: () => V.submissive <= 850 ? "Graceful" : "Plaything", colour: "lewd", has: $molesttrait gte 1, text: "You've learned to better cope with psychological trauma. Being molested no longer removes your sense of control (rape still does).", }, { name: () => V.submissive <= 850 ? "Survivor" : "Fucktoy", colour: "lewd", has: $rapetrait gte 1, text: "You've been raped so much that you've learned how to cope. Trauma increases more slowly.", }, { name: () => V.submissive <= 850 ? "Tamer" : "Bitch", colour: "lewd", has: $bestialitytrait gte 1, text: "Animals have tried to <<if $settings.pregnancySpeechEnabled>>breed<<else>>mate<</if>> with you so often that you're used to it. Trauma increases more slowly when attacked by animals.", }, { name: () => V.submissive <= 850 ? "Witch" : "Prey", colour: "lewd", has: $tentacletrait gte 1, text: "Many tentacles have had their way with your body. Trauma increases more slowly when attacked by tentacles.", }, { name: () => V.submissive <= 850 ? "Daredevil" : "Tasty", colour: "lewd", has: $voretrait gte 1, text: "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.", }, { name: () => V.submissive <= 850 ? "Milk Enthusiast" : "Milk Addict", colour: "lewd", has: $milkdranktrait gte 1, text: "You take full advantage of the nutrition in fresh breast milk. Drinking it invigorates your body, improving physique.", }, ], }, { title: "School Traits", traits: [ { name: "Passable Science", colour: "blue", has: $sciencetrait is 1, text: "Pain is slightly easier to cope with.", }, { name: "Decent Science", colour: "lblue", has: $sciencetrait is 2, text: "Pain is moderately easier to cope with.", }, { name: "Good Science", colour: "teal", has: $sciencetrait is 3, text: "Pain is easier to cope with.", }, { name: "Excellent Science", colour: "green", has: $sciencetrait is 4, text: "Pain is much easier to cope with.", }, { name: "Passable Maths", colour: "blue", has: $mathstrait is 1, text: "You make 25% more from tips and negotiated fees.", }, { name: "Decent Maths", colour: "lblue", has: $mathstrait is 2, text: "You make 50% more from tips and negotiated fees.", }, { name: "Good Maths", colour: "teal", has: $mathstrait is 3, text: "You make 75% more from tips and negotiated fees.", }, { name: "Excellent Maths", colour: "green", has: $mathstrait is 4, text: "You make 100% more from tips and negotiated fees.", }, { name: "Passable English", colour: "blue", has: $englishtrait is 1, text: "Speech actions (plead, moan, demand, apologise, mock, tease, ask to be more rough) are twice as effective.", }, { name: "Decent English", colour: "lblue", has: $englishtrait is 2, text: "Speech actions (plead, moan, demand, apologise, mock, tease, ask to be more rough) are three times as effective.", }, { name: "Good English", colour: "teal", has: $englishtrait is 3, text: "Speech actions (plead, moan, demand, apologise, mock, tease, ask to be more rough) are four times as effective.", }, { name: "Excellent English", colour: "green", has: $englishtrait is 4, text: "Speech actions (plead, moan, demand, apologise, mock, tease, ask to be more rough) are five times as effective.", }, { name: "Passable History", colour: "blue", has: $historytrait is 1, text: "You know there are secret paths around town.", }, { name: "Decent History", colour: "lblue", has: $historytrait is 2, text: "You know of a few secret paths around town.", }, { name: "Good History", colour: "teal", has: $historytrait is 3, text: "You know of several secret paths around town.", }, { name: "Excellent History", colour: "green", has: $historytrait is 4, text: "You know of many secret paths around town.", }, { name: "Okay at school", colour: "blue", has: $schooltrait is 1, text: "Your performance at school has improved your self-esteem, slightly increasing your daily trauma decay.", }, { name: "Decent at school", colour: "lblue", has: $schooltrait is 2, text: "Your performance at school has improved your self-esteem, moderately increasing your daily trauma decay.", }, { name: "Good at school", colour: "teal", has: $schooltrait is 3, text: "Your performance at school has improved your self-esteem, increasing your daily trauma decay.", }, { name: "Excellent at school", colour: "green", has: $schooltrait is 4, text: "Your performance at school has improved your self-esteem, greatly increasing your daily trauma decay.", }, { name: "Science Fair Winner", colour: "green", has: $scienceprojectwon is 1, text: "You have been publicly recognised for your detailed and informative science project.", }, { name: "Maths Competition Winner", colour: "green", has: $mathsprojectwon is 1, text: "You have been publicly recognised for your insightful solution to such a challenging mathematics problem.", }, { name: "Stage Play Performer", colour: "green", has: $englishPlayWell is 1, text: "Your star performance during the student stage play elevated the production to great heights and much acclaim.", }, ], }, { title: "Trauma Traits", traits: [ { name: () => V.hypnosis_traits.slumber ? "Suppressed Insomnia" : V.controlled === 0 ? "Insomnia" : "Controlled Insomnia", colour: () => V.hypnosis_traits.slumber ? "black" : V.controlled === 0 ? "red" : "blue", has: $sleeptrouble gte 1, text: "Sleep less effective.", textColour: () => V.controlled === 0 && !V.hypnosis_traits.slumber ? "red" : "black", }, { name: () => V.controlled === 0 ? "Nightmares" : "Controlled Nightmares", colour: () => V.controlled === 0 ? "red" : "blue", has: $nightmares gte 1, text: "Sleep is stressful.", textColour: () => V.controlled === 0 ? "red" : "black", }, { name: () => V.controlled === 0 ? "Anxiety Disorder" : "Controlled Anxiety Disorder", colour: () => V.controlled === 0 ? "red" : "blue", has: $anxiety gte 1, text: "Stress won't automatically decrease over time.", textColour: () => V.controlled === 0 ? "red" : "black", }, { name: () => V.controlled === 0 ? "Severe Anxiety Disorder" : "Controlled Severe Anxiety Disorder", colour: () => V.controlled === 0 ? "red" : "blue", has: $anxiety gte 2, text: "Stress increases over time.", textColour: () => V.controlled === 0 ? "red" : "black", }, { name: () => V.controlled === 0 ? "Flashbacks" : "Controlled Flashbacks", colour: () => V.controlled === 0 ? "red" : "blue", has: $flashbacks gte 1, text: "May relive nasty experiences.", textColour: () => V.controlled === 0 ? "red" : "black", }, { name: () => V.controlled === 0 ? "Panic Attacks" : "Controlled Panic Attacks", colour: () => V.controlled === 0 ? "red" : "blue", has: $panicattacks gte 1, text: "Chance of paralysis.", textColour: () => V.controlled === 0 ? "red" : "black", }, { name: () => V.controlled === 0 ? "Severe Panic Attacks" : "Controlled Severe Panic Attacks", colour: () => V.controlled === 0 ? "red" : "blue", has: $panicattacks gte 2, text: "Chance of uncontrollable violent outbursts.", textColour: () => V.controlled === 0 ? "red" : "black", }, { name: () => V.controlled === 0 ? "Hallucinations" : "Controlled Hallucinations", colour: () => V.controlled === 0 ? "red" : "blue", has: $hallucinations gte 1, text: "More dangers during encounters.", textColour: () => V.controlled === 0 ? "red" : "black", }, { name: () => V.controlled === 0 ? "Severe Hallucinations" : "Controlled Severe Hallucinations", colour: () => V.controlled === 0 ? "red" : "blue", has: $hallucinations gte 2, text: "More dangerous world.", textColour: () => V.controlled === 0 ? "red" : "black", }, { name: "Visibly Disturbed", colour: "red", has: $dissociation gte 1, text: "There's something wrong with you, and people can tell.", textColour: "red", }, { name: () => V.controlled === 0 ? "Dissociation" : "Controlled Dissociation", colour: () => V.controlled === 0 ? "red" : "blue", has: $dissociation gte 2, text: "Nothing feels real.", textColour: () => V.controlled === 0 ? "red" : "black", }, ], }, { title: "NPC Traits", traits: [ { name: "Robin's Protector", colour: "lblue", has: $robinpaid gte 1, text: "Robin is dependent on you. You need to be strong. Increases daily trauma decay.", }, { name: "Stockholm Syndrome: Eden", colour: "white", has: $syndromeeden gte 1, text: "It must be lonely living on your own in the woods.", textColour: "red", }, { name: "Stockholm Syndrome: Kylar", colour: "white", has: $syndromekylar gte 1 and (C.npc.Kylar.state isnot "prison" or $location is "prison"), text: "Everyone deserves a friend.", textColour: "red", }, { name: () => V.settings.bestialityEnabled ? "Stockholm Syndrome: Wolves" : "Stockholm Syndrome: Wolf People", colour: "white", has: $syndromewolves gte 1, text: () => V.settings.bestialityEnabled ? "They're just cute animals." : "They're just cute monsters.", textColour: "red", }, { name: "Stockholm Syndrome: Great Hawk", colour: "white", has: $syndromebird gte 1, text: () => V.greathawkmonster === 2 || !V.settings.bestialityEnabled ? "<<nnpc_He 'Great Hawk'>> only wants a mate." : "It only wants a mate.", textColour: "red", }, { name: "Avery's Saviour", colour: "lblue", has: $avery_fate is "saved", text: "You saved Avery's life. Rage decreases daily.", }, ], }, { title: "Hypnosis Traits", traits: [ { name: "Hypnotic Suggestion", colour: "lblue", has: $hypnosis_traits.suggestion is 1, text: "Doctor Harper told you to do something, but it's a bit hazy.", }, { name: "Bewitched Suggestion", colour: "blue", has: $hypnosis_traits.suggestion is 2, text: "Doctor Harper told you to do something, but you have trouble remembering what.", }, { name: "Beguiled Suggestion", colour: "purple", has: $hypnosis_traits.suggestion is 3, text: "Doctor Harper told you to do something, but you can't remember what.", }, { name: "Mesmeric Suggestion", colour: "pink", has: $hypnosis_traits.suggestion is 4, text: "Doctor Harper told you to do something, but your mind is blank.", }, { name: "Sublime Suggestion", colour: "red", has: $hypnosis_traits.suggestion is 5, text: "Doctor Harper told you to do something, but you can't remember anything at all.", }, { name: "Hypnotic Yearning", colour: "lblue", has: $hypnosis_traits.scream is 1, text: "May beg for rougher treatment instead of screaming.", }, { name: "Bewitched Yearning", colour: "blue", has: $hypnosis_traits.scream is 2, text: "Will sometimes beg for rougher treatment instead of screaming.", }, { name: "Beguiled Yearning", colour: "purple", has: $hypnosis_traits.scream is 3, text: "Will usually beg for rougher treatment instead of screaming.", }, { name: "Mesmeric Yearning", colour: "pink", has: $hypnosis_traits.scream is 4, text: "Will often beg for rougher treatment instead of screaming.", }, { name: "Sublime Yearning", colour: "red", has: $hypnosis_traits.scream is 5, text: "Will beg for rougher treatment instead of screaming.", }, { name: "Hypnotic Flaunting", colour: "lblue", has: $hypnosis_traits.cover is 1, text: "May flaunt your body parts instead of covering them.", }, { name: "Bewitched Flaunting", colour: "blue", has: $hypnosis_traits.cover is 2, text: "Will sometimes flaunt your body parts instead of covering them.", }, { name: "Beguiled Flaunting", colour: "purple", has: $hypnosis_traits.cover is 3, text: "Will usually flaunt your body parts instead of covering them.", }, { name: "Mesmeric Flaunting", colour: "pink", has: $hypnosis_traits.cover is 4, text: "Will often flaunt your body parts instead of covering them.", }, { name: "Sublime Flaunting", colour: "red", has: $hypnosis_traits.cover is 5, text: "Will flaunt your body parts instead of covering them.", }, { name: "Hypnotic Deviancy", colour: "lblue", has: $hypnosis_traits.deviancy is 1, text: "May provoke beasts at the start of encounters.", }, { name: "Bewitched Deviancy", colour: "blue", has: $hypnosis_traits.deviancy is 2, text: "Will sometimes provoke beasts at the start of encounters.", }, { name: "Beguiled Deviancy", colour: "purple", has: $hypnosis_traits.deviancy is 3, text: "Will usually provoke beasts at the start of encounters.", }, { name: "Mesmeric Deviancy", colour: "pink", has: $hypnosis_traits.deviancy is 4, text: "Will often provoke beasts at the start of encounters.", }, { name: "Sublime Deviancy", colour: "red", has: $hypnosis_traits.deviancy is 5, text: "Will provoke beasts at the start of encounters.", }, { name: "Bewitched", colour: basicHypnoCss(), has: $hc?.bewitched, text: "Your Angel.", textColour: "red", }, { name: () => V.worn.neck.name === "familiar collar" && V.worn.neck.cursed === 1 ? "Hypnotic Devotion" : "Hypnotic Curiosity", colour: "lblue", has: V.hypnosis_traits.devotion === 1, text: "You find your mind wandering to the forest every now and then. Gwylan's requests feel strangely compelling.", meter: { has: V.hypnosisTimers.devotion, value: V.hypnosisTimers.devotion?.time, min: 0, max: 15, colour: "lbluebar glowbar", }, }, { name: () => V.worn.neck.name === "familiar collar" && V.worn.neck.cursed === 1 ? "Bewitched Devotion" : "Bewitched Curiosity", colour: "blue", has: V.hypnosis_traits.devotion === 2, text: "Gwylan's presence makes you feel safe. <<nnpc_His 'Gwylan'>> requests are hard to resist. Beneficial hypnosis traits last longer.", meter: { has: V.hypnosisTimers.devotion, value: V.hypnosisTimers.devotion?.time, min: 15, max: 35, colour: "bluebar glowbar", }, }, { name: () => V.worn.neck.name === "familiar collar" && V.worn.neck.cursed === 1 ? "Beguiled Devotion" : "Beguiled Curiosity", colour: "purple", has: V.hypnosis_traits.devotion === 3, text: "Gwylan's presence is comforting. <<nnpc_His 'Gwylan'>> requests are harder to resist. Beneficial hypnosis traits last longer. School grades do not decay.", meter: { has: V.hypnosisTimers.devotion, value: V.hypnosisTimers.devotion?.time, min: 35, max: 55, colour: "purplebar glowbar", }, }, { name: () => V.worn.neck.name === "familiar collar" && V.worn.neck.cursed === 1 ? "Mesmeric Devotion" : "Mesmeric Curiosity", colour: "pink", has: V.hypnosis_traits.devotion === 4, text: "Gwylan's presence makes you feel warm. <<nnpc_His 'Gwylan'>> requests are even harder to resist. Anyone else's attempts to hypnotise you might fail. Beneficial hypnosis traits last longer. School grades do not decay.", meter: { has: V.hypnosisTimers.devotion, value: V.hypnosisTimers.devotion?.time, min: 55, max: 75, colour: "pinkbar glowbar", }, }, { name: () => V.worn.neck.name === "familiar collar" && V.worn.neck.cursed === 1 ? "Sublime Devotion" : "Sublime Curiosity", colour: "red", has: V.hypnosis_traits.devotion === 5, text: "Gwylan makes you feel whole. <<nnpc_His 'Gwylan'>> requests are <span class='red'>impossible</span> to resist. Anyone else's attempts to hypnotise you will fail, and may harm them. <span class='gold'>Beneficial hypnosis traits and school grades do not decay.</span>", meter: { has: V.hypnosisTimers.devotion, hide: V.worn.neck.name === "familiar collar" && V.worn.neck.cursed === 1 && V.hypnosisTimers.devotion?.time >= gwylanHypnoMax("value"), value: V.hypnosisTimers.devotion?.time, min: 75, max: 95, colour: "redbar glowbar", }, }, { name: () => V.worn.neck.name === "familiar collar" && V.worn.neck.cursed === 1 ? "Frenzied Devotion" : "Frenzied Curiosity", colour: basicHypnoCss(), has: V.hypnosis_traits.devotion >= 6, text: "???", meter: { has: V.hypnosisTimers.devotion, hide: V.worn.neck.name === "familiar collar" && V.worn.neck.cursed === 1 && V.hypnosisTimers.devotion?.time >= gwylanHypnoMax("value"), value: V.hypnosisTimers.devotion?.time, min: 95, max: 100, colour: "redbar glowbar", }, }, { name: "Hypnotic Peace", colour: "forest-green", has: V.hypnosis_traits.peace gte 1, text: "You are at peace with your inner self. Hiding transformation parts no longer inflicts trauma.", meter: { has: V.hypnosisTimers.peace, hide: V.hypnosis_traits.devotion >= 5, value: V.hypnosisTimers.peace?.time, max: V.hypnosisTimers.peace?.max, colour: "greenbar glowbar", }, }, { name: "Hypnotic Silence", colour: "purple", has: V.hypnosis_traits.silence gte 1, text: "Your thoughts are solitary and tranquil. Ear slimes are temporarily silenced.", meter: { has: V.hypnosisTimers.silence, hide: V.hypnosis_traits.devotion >= 5, value: V.hypnosisTimers.silence?.time, max: V.hypnosisTimers.silence?.max, colour: "purplebar glowbar", }, }, { name: "Hypnotic Slumber", colour: "", style: `background: linear-gradient(to right,rgb(31, 121, 196) 0%,rgb(77, 74, 247) 100%);-webkit-background-clip: text;-webkit-text-fill-color: transparent;`, has: V.hypnosis_traits.slumber gte 1, text: "Sleep is more restful when traumatised, and the 'insomnia' trait is suppressed, if present.", meter: { has: V.hypnosisTimers.slumber, hide: V.hypnosis_traits.devotion >= 5, value: V.hypnosisTimers.slumber?.time, max: V.hypnosisTimers.slumber?.max, colour: "darkbluebar glowbar", }, }, { name: () => V.awareness >= 300 ? "Hypnotic Ignorance" : "Hypnotic Insight", colour: "", style: `background: linear-gradient(to right,rgb(187, 214, 221) 0%,rgb(255, 252, 217) 100%);-webkit-background-clip: text;-webkit-text-fill-color: transparent;`, has: V.hypnosis_traits.insight gte 1, text: "High awareness no longer causes hallucinations. Low awareness causes hallucinations instead.", meter: { has: V.hypnosisTimers.insight, hide: V.hypnosis_traits.devotion >= 5, value: V.hypnosisTimers.insight?.time, max: V.hypnosisTimers.insight?.max, colour: "bluebar glowbar", }, }, ], }, { title: "Acceptance Traits", traits: [ { name: () => { const penisSize = setup.penisSizes[$player.penissize + 2].toUpperFirst(); return `Acceptance: ${penisSize} Penis`; }, colour: "green", has: $acceptance_penis_small gte 1000 and $player.penissize lte 1, text: "You're proud of your small penis.", }, { name: "Acceptance: Tomgirl", colour: "green", has: $acceptance_tomgirl gte 100 and $acceptance_penis_small gte 1000 and $player.penissize lte 0, text: "You're proud of becoming a tomgirl.", }, { name: () => { const penisSize = setup.penisSizes[$player.penissize + 2].toUpperFirst(); return `Acceptance: ${penisSize} Penis`; }, colour: "green", has: $acceptance_penis_big gte 1000 and $player.penissize gte 4, text: "You're proud of your enormous penis.", }, { name: "Acceptance: Flat Chest", colour: "green", has: $acceptance_breasts_tiny gte 1000 and $player.breastsize lte 0 and $player.sex is "f", text: "You're proud of your flat chest.", }, { name: () => { const breastSize = setup.breastsizes[$player.breastsize].toUpperFirst(); return `Acceptance: ${$player.breastsize ? breastSize + " Breasts" : "Flat Chest"}`; }, colour: "green", has: $acceptance_breasts_small gte 1000 and between($player.breastsize, 0, 4), text: "You're proud of your small breasts.", }, { name: () => { const breastSize = setup.breastsizes[$player.breastsize].toUpperFirst(); return `Acceptance: ${breastSize} Breasts`; }, colour: "green", has: $acceptance_breasts_big gte 1000 and $player.breastsize gte 8, text: "You're proud of your huge breasts.", }, { name: () => playerAwareTheyArePregnant() ? "Acceptance: Pregnant Belly" : "Acceptance: Pregnant Looking Belly", colour: "green", has: $acceptance_pregnancy gte 1000 and playerBellySize() gte 8, text: () => playerAwareTheyArePregnant() ? "You're proud of your lifebearing belly." : "You're proud of your large belly.", }, ], }, { title: "???", traits: [ { name: "Elk-scarred", colour: "red", has: $auriga_scar is 1, text: "An invisible wound hangs over your heart. Trauma and awareness increase over time. Purity decreases over time.", textColour: "red", }, { name: "Elk-marked", colour: "red", has: $auriga_scar is 2, text: "A crackling wound surrounds your heart. You're harder to notice, and to recognise as human.", textColour: "red", }, { name: "Elk-bitten", colour: "red", has: $auriga_scar is 3, text: "A hole threatens to swallow your black heart. Something seeks to escape.", textColour: "red", }, { name: "Elk-ruptured", colour: "red", has: $auriga_scar is 4, text: "A rupture severs your black, unbeating heart. Damnation is imminent.", textColour: "red", }, { name: "Elk-spawned", colour: "red", has: $auriga_scar gte 5, text: "Damnation.", textColour: "red", }, ], }, ]>> <div id="traitListsSearch"> <<traitListsSearch>> </div> <br> <div id="traitLists"> <<traitLists>> </div> <</widget>> <<widget "traitListsSearch">> <<if $options.traitOverlayFormat is undefined>><<set $options.traitOverlayFormat to "table">><</if>> <<set _traitSearch to "">> <<foldout false "_traitFilterFoldout">> <span>Filter</span> <label>Search: <<textbox "_traitSearch" _traitSearch>></label> <br><br> <label> Display Format: <<listbox "$options.traitOverlayFormat" autoselect>> <<option "Table" "table">> <<option "Reduced Table" "reducedTable">> <<option "List" "list">> <</listbox>> </label> <br><br> <<link Update>> <<replace "#traitLists">><<traitLists>><</replace>> <</link>> | <<link Clear>> <<set _traitSearch to "">> <<replace "#traitListsSearch">><<traitListsSearch>><</replace>> <<replace "#traitLists">><<traitLists>><</replace>> <</link>> | <</foldout>> <</widget>> <<widget "traitLists">> <<set _traitSearch2 to _traitSearch.toLowerCase()>> <<for $_traitList range _traitLists>> <<if !$_traitList.traits.find(trait => trait.has && (T.traitSearch2 === "" || (typeof trait.name === "function" && trait.name().toLowerCase().includes(T.traitSearch2)) || (typeof trait.name !== "function" && trait.name.toLowerCase().includes(T.traitSearch2)) || (trait.text && typeof trait.text === "function" && trait.text().toLowerCase().includes(T.traitSearch2)) || (trait.text && typeof trait.text !== "function" && trait.text.toLowerCase().includes(T.traitSearch2))) )>> <<continue>> <</if>> <<if ["table","reducedTable"].includes($options.traitOverlayFormat)>> <div @class="$options.traitOverlayFormat is 'table' ? 'traitList' : 'traitListReducedText'"> <div class="traitHeading"> <<print $_traitList.title>> </div> <div class="traits"> <<for $_trait range $_traitList.traits.filter(trait => trait.has && (T.traitSearch2 === "" || (typeof trait.name === "function" && trait.name().toLowerCase().includes(T.traitSearch2)) || (typeof trait.name !== "function" && trait.name.toLowerCase().includes(T.traitSearch2)) || (trait.text && typeof trait.text === "function" && trait.text().toLowerCase().includes(T.traitSearch2)) || (trait.text && typeof trait.text !== "function" && trait.text.toLowerCase().includes(T.traitSearch2))) )>> <div class="trait"> <<set $_name to typeof $_trait.name is "function" ? $_trait.name() : $_trait.name>> <<set $_colour to typeof $_trait.colour is "function" ? $_trait.colour() : $_trait.colour>> <<set $_style to typeof $_trait.style is "function" ? $_trait.style() : $_trait.style>> <<set $_text to typeof $_trait.text is "function" ? $_trait.text() : $_trait.text>> <<set $_textColour to typeof $_trait.textColour is "function" ? $_trait.textColour() : $_trait.textColour>> <<set $_meter to $_trait.meter>> <span @class="$_colour" @style="$_style"> <<print $_name>> </span> <<if !$_text>> <<elseif $options.traitOverlayFormat is "table">> - <small @class="$_textColour"><<print $_text>></small> <<if $_meter?.has and !$_meter.hide>> <<set $_floor to $_meter.min || 0>> <<set $_timeTotal to ($_meter.max - $_floor)>> <<set $_percent to Math.floor(($_meter.value - $_floor) / $_timeTotal * 100)>> <div class="meter"> <<print '<div @class="$_meter.colour" style="width:' + $_percent + '%"></div>'>> </div> <</if>> <<else>> <mouse class="tooltip linkBlue">Info (?)<span @class="$_textColour"><<print $_text>></span></mouse> <<if $_meter?.has and !$_meter.hide>> <<set $_floor to $_meter.min || 0>> <<set $_timeTotal to ($_meter.max - $_floor)>> <<set $_percent to Math.floor($_meter.value / $_timeTotal * 100)>> <div class="meter"> <<print '<div @class="$_meter.colour" style="width:' + $_percent + '%"></div>'>> </div> <</if>> <</if>> </div> <</for>> </div> </div> <br> <</if>> <<if $options.traitOverlayFormat is "list">> <div> <h4> <<print $_traitList.title>> </h4> <<for $_trait range $_traitList.traits.filter(trait => trait.has && (T.traitSearch2 === "" || (typeof trait.name === "function" && trait.name().toLowerCase().includes(T.traitSearch2)) || (typeof trait.name !== "function" && trait.name.toLowerCase().includes(T.traitSearch2)) || (trait.text && typeof trait.text === "function" && trait.text().toLowerCase().includes(T.traitSearch2)) || (trait.text && typeof trait.text !== "function" && trait.text.toLowerCase().includes(T.traitSearch2))) )>> <div class="trait"> <<set $_name to typeof $_trait.name is "function" ? $_trait.name() : $_trait.name>> <<set $_colour to typeof $_trait.colour is "function" ? $_trait.colour() : $_trait.colour>> <<set $_style to typeof $_trait.style is "function" ? $_trait.style() : $_trait.style>> <<set $_text to typeof $_trait.text is "function" ? $_trait.text() : $_trait.text>> <<set $_textColour to typeof $_trait.textColour is "function" ? $_trait.textColour() : $_trait.textColour>> <<set $_meter to $_trait.meter>> <span @class="$_colour" @style="$_style"> <<print $_name>> </span> <<if $_text>> - <span @class="$_textColour"><<print $_text>></span> <<if $_meter?.has and !$_meter.hide>> <<set $_floor to $_meter.min || 0>> <<set $_timeTotal to ($_meter.max - $_floor)>> <<set $_percent to Math.floor($_meter.value / $_timeTotal * 100)>> <div class="meter"> <<print '<div @class="$_meter.colour" style="width:' + $_percent + '%"></div>'>> </div> <</if>> <</if>> </div> <</for>> </div> <br> <</if>> <</for>> <</widget>><<widget "parasiteinit">> <<set $parasite to {}>> <<set $parasite.bodyparts to [ "nipples", "bottom", "breasts", "penis", "balls", "clit", "anus", "vagina", "labia", "left_thigh", "right_thigh", "left_foot", "right_foot", "left_arm", "right_arm", "left_hand", "right_hand", "tummy", "back", "face", "mouth", "left_ear", "right_ear", "hair"]>> <<set $parasite.types to [ "urchin", "slime", "maggot", "parasite",]>> <<for _part range $parasite.bodyparts>> <<set $parasite[_part] to {}>> /*<<set $parasite[_part].bodypart to _part.replace(/_/g, " ")>>*/ <</for>> <<for _type range $parasite.types>> <<set $parasite[_type] to []>> /*This seems a bit redundant but not having to iterate through every body part every time StoryCaption updates seems worth it*/ <</for>> <</widget>> <<widget "parasite">> /*First argument is the body part you want to attach a parasite to, second argument is the type of parasite*/ <<if _args[0] and _args[1]>> <<set _temp0 to _args[0]>> <<set _temp1 to _args[1]>> <<set $parasite[_temp0].name to _temp1>> <<set $parasitestat += 1>> <<if _temp0 is "clit" and _temp1 is "parasite" and $player.sex is "f" and ["mixed", "impregnation"].includes($earSlime.focus)>> <<set $player.penisExist to true>> <<if $penisuse is "none">> <<set $penisuse to 0>> <<set $penisstate to 0>> <</if>> <<set $player.ballsExist to true>> <<if $earSlime.focus is "impregnation">> <<set $player.size to Math.clamp(2, 0, Math.max(0, $penissizemax))>> <<set $semen_amount to 300>> <<set $semen_volume to 300>> <<else>> <<set $player.size to 0>> <<set $semen_amount to 90>> <<set $semen_volume to 90>> <</if>> <</if>> <<if _temp0 is "left_ear" or _temp0 is "right_ear" or _args[2] is "noSuck">> /*Keeps ears from 'sucking and massaging' in the StoryCaption*/ <<else>> <<set _temp0 to _temp0.replace(/_/g, " ")>>/*Replaces underscores with spaces to make sidebar description more presentable.*/ <<set $parasite[_temp1].push(_temp0)>> <</if>> <</if>> <</widget>> <<widget "removeparasite">> /*Argument is the body part you want to free from parasites*/ <<if _args[0]>> <<set _temp0 to _args[0]>> <<if _temp0 is "clit" and $parasite.clit.name is "parasite" and $player.sex is "f" and $player.penisExist>> <<bodyliquid penis "all" -5>> <<set $player.penisExist to false>> <<set $penisuse to "none">> <<set $penisstate to "none">> <<if $worn.genitals.name is "chastity parasite">> <<set $worn.genitals.type.push("broken")>> <<genitalsruined>> <<elseif playerChastity("penis") and !playerChastity("vagina") and !$player.penisExist and _args[0]>> With nothing to hold it in place, you <<print $worn.genitals.name>> falls to the ground. <<set $worn.genitals.type.push("broken")>> <<genitalsruined>> <</if>> <</if>> <<if _temp0 is "penis" and $parasite.penis.name is "parasite" and $worn.genitals.name is "chastity parasite">> <<set $worn.genitals.type.push("broken")>> <<genitalsruined>> <</if>> <<run delete $parasite[_temp0].name>> <<run delete $parasite[_temp0].origin>> <<set _temp0 to _temp0.replace(/_/g, " ")>>/*Removes underscores from argument to match with the change made in the <<parasite>> widget.*/ <<for _type range $parasite.types>> <<set $parasite[_type].delete(_temp0)>> <</for>> <<if $parasite.left_ear.name isnot "slime" and $parasite.right_ear.name isnot "slime" and $earSlime and ($earSlime.days or $earSlime.corruption or $earSlime.growth)>> <<resetEarSlime true>> <</if>> <</if>> <</widget>> <<widget "resetEarSlime">> <<set $earSlime to { days: 0, corruption: 0, growth: 0, focus: "none", event: "", eventTimer: 0, eventLength: 0, defyCooldown: 0, dreamRejected: 0, vibration: 0, lastVibration: 0, alwaysSleepNaked: false, noSleep: false, promiscuity: 0, deviancy: 0, exhibitionism: 0, }>> <<if $daily and $daily.corruptionSlimeClothes>> <<run delete $daily.corruptionSlimeClothes>> <</if>> <<if $parasite.breasts and $parasite.breasts.name is "parasite">> <<removeparasite "breasts">> <</if>> <<if $parasite.penis.name is "parasite" or ($parasite.clit.name is "parasite" and $player.sex is "f")>> <<removeparasite "penis">> <</if>> <<if $parasite.clit.name is "parasite">> <<removeparasite "clit">> <</if>> <<if $earSlimeDaysStat is undefined>> <<set $earSlimeDaysStat to 0>> <<set $earSlimePassiveDaysStat to 0>> <</if>> <</widget>> <<widget "earSlimeSeenActions">> <<if numberOfEarSlime() and ["promiscuity", "deviancy", "exhibitionism"].includes(_args[0]) and !$desperateaction>> <<if _args[1] gt $earSlime[_args[0]] and $earSlime.corruption gte random(0, 50 * _args[1] * (_args[2] or 1)) and V[_args[0]] gte [0,0,15,35,55,75,95][_args[1]]>> <<set $earSlime[_args[0]] to _args[1]>> <br><br> <span class="red">The slime in your ear takes notice of your lewd action.</span> <</if>> <</if>> <</widget>>/*For saving generic NPC data so they can be loaded later*/ <<widget "saveNPC">> /*First argument is the NPClist index of the NPC to be saved. Second argument is the string you want to save it under.*/ <<if _args[0] gte 0 and _args[1]>> <<set $_name to _args[1]>> <<set $_slot to _args[0]>> <<if EventSystem.isSlotTaken($_slot)>> <<set $per_npc[$_name] to clone($NPCList[$_slot])>> /*ToDo: Pregnancy, Condoms not yet compatible with NPC saving and loading */ <<set $per_npc[$_name].condom to false>> <<run delete $per_npc[$_name].condomAsk>> <<run delete $per_npc[$_name].condomCanGive>> /*Clears name from name pool */ <<if $NPCList[$_slot].pronoun is "f">> <<set $NPC_names_f.delete($NPCList[$_slot].name)>> <<else>> <<set $NPC_names_m.delete($NPCList[$_slot].name)>> <</if>> <<else>> <<run Errors.report(`saveNPC called with invalid or empty NPCList slot (${$_slot})`, { Stacktrace : Utils.GetStack(), Name : $_name, Slot : $_slot, })>> <</if>> <</if>> <</widget>> <<widget "loadNPC">> <!-- Checks if endevent was properly used after the last event --> <<checkEventNPC _args[0]>> /*First argument is the NPClist you want the NPC to fill. Second argument is the string you want to load, as saved with saveNPC.*/ <<if _args[0] gte 0 and _args[1]>> <<set $_name to _args[1]>> <<set $_slot to _args[0]>> <<if $per_npc[$_name] neq null>> <<set $NPCList[$_slot] to clone($per_npc[$_name])>> <<if $enemyno lt 6>><<set $enemyno += 1>><</if>><<set $enemynomax to $enemyno>> <<set $monster to ($NPCList[$_slot].monster is "monster" ? 1 : 0)>> <<run EventSystem.push($passage, $_slot, $timeStamp)>> <<else>> <<run Errors.report(`loadNPC called with an undefined NPC name (${$_name})`, { Stacktrace : Utils.GetStack(), Name : $_name, Slot : $_slot, })>> <<set $_genslot to $_slot + 1>> <<set $_parts to $_name.split("_")>> <<if $_name is "black_dog">> <<generateBEAST $_genslot dog>> <<set $enemytype to "beast">> <<set $monster to ($NPCList[$_slot].monster is "monster" ? 1 : 0)>> <<elseif ["guard", "inmate"].includes($_parts[1])>> <!-- _guard or _inmate --> <<generateRole $_slot $_parts[0] $_parts[1]>> <!-- uses 0-5 not 1-6 --> <<else>> <<generateNPC $_genslot>> <</if>> <<saveNPC $_slot $_name>> <</if>> <<set $NPCList[$_slot].per to $_name>> <</if>> <</widget>> <<widget "updateNPC">> /* updates NPC data, like virginity, that would normally be wiped by endevent */ <<set $per_npc[_args[0].per].virginity to _args[0].virginity>> <</widget>> <<widget "clearNPC">> /*Clears persistent NPC data for a single NPC. Argument is the string the NPC was saved under.*/ <<if _args[0]>> <<set $_name to _args[0]>> /*Adds name back into name pool */ <<if $per_npc[$_name] and $per_npc[$_name].name>> <<if $per_npc[$_name].pronoun is "f">> <<set $NPC_names_f.pushUnique($per_npc[$_name].name)>> <<else>> <<set $NPC_names_m.pushUnique($per_npc[$_name].name)>> <</if>> <</if>> <<run delete $per_npc[$_name]>> <</if>> <</widget>> <<widget "storeNPC">> /*First argument is the NPClist index of the NPC to be saved. Second argument is the string you want to save it under.*/ <<if _args[0] gte 0 and _args[1]>> <<set $_name to _args[1]>> <<set $_nameInt to 0>> <<for $_key range Object.keys($storedNPCs).filter(key => key.includes($_name))>> <<if $_key is ($_name + "_" + $_nameInt)>> <<set $_nameInt++>> <<else>> <<break>> <</if>> <</for>> <<set $_name to $_name + "_" + $_nameInt>> <<set $_slot to _args[0]>> <<if EventSystem.isSlotTaken($_slot)>> <<set $storedNPCs[$_name] to { npc: { adult: $NPCList[$_slot].adult, breastsize: $NPCList[$_slot].breastsize, breastdesc: $NPCList[$_slot].breastdesc, breastsdesc: $NPCList[$_slot].breastsdesc, description: $NPCList[$_slot].description, fullDescription: $NPCList[$_slot].fullDescription, gender: $NPCList[$_slot].gender, insecurity: $NPCList[$_slot].insecurity, name: $NPCList[$_slot].name, monster: $NPCList[$_slot].monster, penis: $NPCList[$_slot].penis, penisdesc: $NPCList[$_slot].penisdesc, penissize: $NPCList[$_slot].penissize, pregnancy: $NPCList[$_slot].pregnancy, pregnancyAvoidance: $NPCList[$_slot].pregnancyAvoidance, pronoun: $NPCList[$_slot].pronoun, skincolour: $NPCList[$_slot].skincolour, teen: $NPCList[$_slot].teen, type: $NPCList[$_slot].type, vagina: $NPCList[$_slot].vagina, }, }>> <<set _lastStoredName to $_name>> <<else>> <<run Errors.report(`saveNPCPreg called with invalid or empty NPCList slot (${$_slot})`, { Stacktrace : Utils.GetStack(), Name : $_name, Slot : $_slot, })>> <</if>> <</if>> <</widget>> <<widget "updatePersistentNPCs">> <<if $passage isnot "start" and $per_npc and Object.keys($per_npc).length gt 0>> <<for $_i, $_value range $per_npc>> <!-- Set Pronoun --> <<if $per_npc[$_i].pronoun is "none" or _args[0] is "genders">> <<if maleChance() lt random(1, 100)>> <<set $per_npc[$_i].pronoun to "f">> <<else>> <<set $per_npc[$_i].pronoun to "m">> <</if>> <</if>> <!-- Set Gender --> <<if $per_npc[$_i].gender is "none" or _args[0] is "genders">> <<if $per_npc[$_i].pronoun is "m">> <<if random(0, 99) gte $settings.maleNPCVaginaChance>> <<set $per_npc[$_i].gender to "m">> <<else>> <<set $per_npc[$_i].gender to "f">> <</if>> <<elseif $per_npc[$_i].pronoun is "f">> <<if random(0, 99) gte $settings.femaleNPCPenisChance>> <<set $per_npc[$_i].gender to "f">> <<else>> <<set $per_npc[$_i].gender to "m">> <</if>> <</if>> <</if>> <!-- Set Genital Existence --> <<if $per_npc[$_i].type isnot "human">> <<set $per_npc[$_i].penis to ($per_npc[$_i].gender !== "f" ? 0 : "none")>> <<set $per_npc[$_i].vagina to ($per_npc[$_i].gender !== "m" ? 0 : "none")>> <<else>> <<set $per_npc[$_i].penis to ($per_npc[$_i].gender !== "f" ? "clothed" : "none")>> <<set $per_npc[$_i].vagina to ($per_npc[$_i].gender !== "m" ? "clothed" : "none")>> <</if>> <!-- Set breast defaults--> <<set _b_mod_lower to Math.clamp($settings.breastModifier, 0, 12)>> <<set _b_mod_upper to Math.clamp($settings.breastModifier + 12, 0, 12)>> <!-- can't use breastsize, since that would either break the numberslider or make one of the sizes always be randomised, but can use breastdesc not being changed from 0 as a substitute --> <<if $per_npc[$_i].breastdesc is 0 or _args[0] is "breasts">> <<if $per_npc[$_i].pronoun is "m">> <<set $per_npc[$_i].breastsize to 0>> <<else>> <<set $per_npc[$_i].breastsize to random(_b_mod_lower, _b_mod_upper)>> <</if>> <</if>> <<if $per_npc[$_i].breastsize gt 0>> <<set _brdes to ["nipple","budding","tiny","small","pert","modest","full","large","ample","massive","huge","gigantic","enormous"]>> <<set $per_npc[$_i].breastdesc to _brdes[$per_npc[$_i].breastsize]+" breast">> <<else>> <<set $per_npc[$_i].breastdesc to "nipple">> <</if>> <<set $per_npc[$_i].breastsdesc to $per_npc[$_i].breastdesc + "s">> <!-- Set pp to defaults--> /* New way to set upper and lower bounds. * This method makes use of all other slider positions, but does nothing when slider is between -1 and 1, * for a total of 15 unique positions vs the current method's 9. (max would be 17) * Changing the penis_mod slider to range from -7 to 7 would work to make every slider position unique here, but potentially affects unnamed npc generation. */ /* <<set _p_mod_upper to 8>><<set _p_mod_lower to 1>> <<if $settings.penisModifier gt 0>> <<set _p_mod_lower += $settings.penisModifier - 1>> <<elseif $settings.penisModifier lt 0>> <<set _p_mod_upper += $settings.penisModifier + 1>> <</if>> alternative way to write that: <<set _p_mod_lower to ($settings.penisModifier > 0 ? $settings.penisModifier : 1)>> <<set _p_mod_upper to ($settings.penisModifier < 0 ? 9 + $settings.penisModifier : 8)>> */ <<if $settings.penisModifier is 8>> <<set _p_mod_upper to 8>><<set _p_mod_lower to 8>> <<elseif $settings.penisModifier gte 6>> <<set _p_mod_upper to 8>><<set _p_mod_lower to 7>> <<elseif $settings.penisModifier gte 4>> <<set _p_mod_upper to 8>><<set _p_mod_lower to 5>> <<elseif $settings.penisModifier gte 2>> <<set _p_mod_upper to 8>><<set _p_mod_lower to 3>> <<elseif $settings.penisModifier gte 0>> <<set _p_mod_upper to 8>><<set _p_mod_lower to 1>> <<elseif $settings.penisModifier gte -2>> <<set _p_mod_upper to 7>><<set _p_mod_lower to 1>> <<elseif $settings.penisModifier gte -4>> <<set _p_mod_upper to 5>><<set _p_mod_lower to 1>> <<elseif $settings.penisModifier gte -6>> <<set _p_mod_upper to 3>><<set _p_mod_lower to 1>> <<else>> <<set _p_mod_upper to 1>><<set _p_mod_lower to 1>> <</if>> <<if $per_npc[$_i].penissize is 0 or _args[0] is "penis">> <<if $per_npc[$_i].gender is "f">> <<set $per_npc[$_i].penissize to 0>> <<set $per_npc[$_i].penisdesc to "none">> <<else>> <<switch random(_p_mod_lower, _p_mod_upper)>> <<case 8>> <<set $per_npc[$_i].penisdesc to either("massive cock","huge cock","humongous cock","immense cock","gigantic cock","enormous cock")>> <<set $per_npc[$_i].penissize to 4>> <<case 5 6 7>> <<set $per_npc[$_i].penisdesc to either("thick cock","hefty cock","big cock","large cock","veiny cock","meaty cock")>> <<set $per_npc[$_i].penissize to 3>> <<case 2 3 4>> <<set $per_npc[$_i].penisdesc to "penis">> <<set $per_npc[$_i].penissize to 2>> <<default>> <<set $per_npc[$_i].penisdesc to either("tiny penis","pathetic cock","little penis","small penis","mini penis","micro penis")>> <<set $per_npc[$_i].penissize to 1>> <</switch>> <</if>> <</if>> <!-- Set pp to size in case PC selected it--> <<if $per_npc[$_i].penissize isnot 0>> <<switch $per_npc[$_i].penissize>> <<case 4>> <<set $per_npc[$_i].penisdesc to either("massive cock","huge cock","humongous cock","immense cock","gigantic cock","enormous cock")>> <<case 3>> <<set $per_npc[$_i].penisdesc to either("thick cock","hefty cock","big cock","large cock","veiny cock","meaty cock")>> <<case 1>> <<set $per_npc[$_i].penisdesc to either("tiny penis","pathetic cock","little penis","small penis","mini penis","micro penis")>> <<default>> <<set $per_npc[$_i].penisdesc to "penis">> <</switch>> <</if>> <<generatePronouns $per_npc[$_i]>> <</for>> <</if>> <</widget>> <<widget "updateNPCsFirst">> /*Adds new variables to saved NPCs.*/ <<for $_per_keys range Object.keys($per_npc)>> <<set $per_npc[$_per_keys][_args[0]] to _args[1]>> <</for>> <</widget>> <<widget "updateNPCsSecond">> <<for $_per_keys range Object.keys($per_npc)>> <<set $per_npc[$_per_keys][_args[0]][_args[1]] to _args[2]>> <</for>> <</widget>><<widget "physicalAdjustmentsInit">> <<if $sexStats is undefined>> <<set $sexStats to { "breasts": { "playedWith": 0 }, "creampie": { "self": { "anus":0, "mouth":0, "vagina":0 }, "npc":{ "anus":0, "mouth":0, "vagina":0 /* , "tentacle":0 */ } }, "pills":{ "pills":{ 'bottom reduction':{autoTake: false, doseTaken: 0, owned: 0, overdose: 0}, 'bottom growth':{autoTake: false, doseTaken: 0, owned: 0, overdose: 0}, 'bottom blocker':{autoTake: false, doseTaken: 0, owned: 0, overdose: 0}, 'breast reduction':{autoTake: false, doseTaken: 0, owned: 0, overdose: 0}, 'breast growth':{autoTake: false, doseTaken: 0, owned: 0, overdose: 0}, 'breast blocker':{autoTake: false, doseTaken: 0, owned: 0, overdose: 0}, 'penis reduction':{autoTake: false, doseTaken: 0, owned: 0, overdose: 0}, 'penis growth':{autoTake: false, doseTaken: 0, owned: 0, overdose: 0}, 'penis blocker':{autoTake: false, doseTaken: 0, owned: 0, overdose: 0}, 'fertility booster':{autoTake: false, doseTaken: 0, owned: 0, overdose: 0}, 'contraceptive':{autoTake: false, doseTaken: 0, owned: 0, overdose: 0}, 'asylum\'s prescription':{autoTake: false, doseTaken: 0, owned: 0, overdose: 0}, 'Dr Harper\'s prescription':{autoTake: false, doseTaken: 0, owned: 0, overdose: 0}, 'Anti-Parasite Cream': { autoTake: false, doseTaken: 0, owned: 0, overdose: 0 }, }, "boughtOnce": false, "lastTaken":{"bottom":'', "breast":'', "penis":'', "pregnancy":''}, "mostTaken":{"bottom":'', "breast":'', "penis":'', "pregnancy":''} } }>> <</if>> <<if $sexStats.pills.pills && $sexStats.pills.pills["Anti-Parasite Cream"] is undefined>> <<set $sexStats.pills.pills["Anti-Parasite Cream"] to { autoTake: false, doseTaken: 0, owned: 0, overdose: 0 }>> <</if>> <<if $sexStats.pills.pills && $sexStats.pills.pills["Hair Growth Formula"] is undefined>> <<set $sexStats.pills.pills["Hair Growth Formula"] to { autoTake: false, doseTaken: 0, owned: 0, overdose: 0 }>> <</if>> <<if $sexStats.anus is undefined>> <<set $sexStats.anus to { "pregnancy": { /*//0: null,old variables, kept for debugging //1: null, //2: null, //3: null, //"count": 0, //"maxCount": 1, //"fertile": false, //"fertilised": false, //"lowestDaysLeft": null, //"lowestTimeLeft": null, //"givenBirth": 0, //seenDoctor: 0, replaced with $pregnancyStats.parasiteDoctorEvents //namesChildren: false, replaced with $pregnancyStats.namesParasitesChild*/ fetus: [], givenBirth: 0, parasiteBirthEvents: 0, motherStatus: 0, type: null, awareOf: null, timer: null, timerEnd: null, type: null, potentialFathers: [], totalBirthEvents: 0, }, "sperm":[], }>> <</if>> <<if $sexStats.anus.pregnancy.fetus is undefined>> <<set $sexStats.anus.pregnancy.fetus to []>> <<for $_i to 0; $_i lt 4; $_i++>> <<if $sexStats.anus.pregnancy[$_i] isnot null>> <<run $sexStats.anus.pregnancy.fetus.push(clone($sexStats.anus.pregnancy[$_i]))>> <<if $sexStats.anus.pregnancy.fetus.last().stats.gender is "Futa">> <<set $sexStats.anus.pregnancy.fetus.last().stats.gender to "Hermaphrodite">> <</if>> <<set $sexStats.anus.pregnancy.type to "parasite">> <</if>> <<run delete $sexStats.anus.pregnancy[$_i]>> <</for>> <<if !$sexStats.anus.pregnancy.parasiteBirthEvents>> <<set $sexStats.anus.pregnancy.parasiteBirthEvents to clone($sexStats.anus.pregnancy.givenBirth)>> <<set $sexStats.anus.pregnancy.parasiteFeltMovement to clone($sexStats.anus.pregnancy.feltMovement)>> <<set $sexStats.anus.pregnancy.givenBirth to 0>> <</if>> <<pregnancyVar>><!--In case it's not been ran before --> <<if $sexStats.anus.pregnancy.seenDoctor>> <<set $pregnancyStats.parasiteDoctorEvents to clone($sexStats.anus.pregnancy.seenDoctor)>> <</if>> <<if $sexStats.anus.pregnancy.book>> <<set $pregnancyStats.parasiteBook to clone($sexStats.anus.pregnancy.book)>> <</if>> <<if $sexStats.anus.pregnancy.typesSeen>> <<set $pregnancyStats.parasiteTypesSeen to clone($sexStats.anus.pregnancy.typesSeen)>> <</if>> <<if $sexStats.anus.pregnancy.variantsSeen>> <<set $pregnancyStats.parasiteVariantsSeen to clone($sexStats.anus.pregnancy.variantsSeen)>> <</if>> /*Vagina Parity Variables*/ <<set $sexStats.anus.pregnancy.awareOf to null>> <<set $sexStats.anus.pregnancy.timer to null>> <<set $sexStats.anus.pregnancy.timerEnd to null>> <<set $sexStats.anus.pregnancy.timerEnd to null>> <<set $sexStats.anus.pregnancy.waterBreaking to false>> <<set $sexStats.anus.pregnancy.potentialFathers to []>> <<set $sexStats.anus.pregnancy.totalBirthEvents to 0>> <<set $sexStats.anus.sperm to []>> <<run delete $sexStats.anus.pregnancy.maxCount>> <<run delete $sexStats.anus.pregnancy.count>> <<run delete $sexStats.anus.pregnancy.lowestDaysLeft>> <<run delete $sexStats.anus.pregnancy.lowestTimeLeft>> <<run delete $sexStats.anus.pregnancy.feltMovement>> <<run delete $sexStats.anus.pregnancy.fertile>> <<run delete $sexStats.anus.pregnancy.fertilised>> <<run delete $sexStats.anus.pregnancy.namesChildren>> <<run delete $sexStats.anus.pregnancy.seenDoctor>> <<run delete $sexStats.anus.pregnancy.book>> <<run delete $sexStats.anus.pregnancy.typesSeen>> <<run delete $sexStats.anus.pregnancy.variantsSeen>> <<run delete $sexStats.anus.pregnancy.autoRepairDone>> <</if>> <<if $sexStats.anus.pregnancy.type is undefined>> <<if $sexStats.anus.pregnancy.fetus.length is 0>> <<set $sexStats.anus.pregnancy.type to null>> <</if>> <</if>> <<if $sexStats.anus.pregnancy.totalBirthEvents is undefined>> <<set $sexStats.anus.pregnancy.totalBirthEvents to 0>> <</if>> <<if $sexStats.anus.pregnancy.potentialFathers is undefined>> <<set $sexStats.anus.pregnancy.potentialFathers to []>> <</if>> <<if !Array.isArray($sexStats.anus.sperm)>> <<set $sexStats.anus.sperm to []>> <<if Array.isArray($sexStats.anus.pregnancy.potentialFathers) and $sexStats.anus.pregnancy.potentialFathers.length>> <<for $_i to 0; $_i lt $sexStats.anus.pregnancy.potentialFathers.length; $_i++>> <<set $sexStats.anus.pregnancy.potentialFathers[$_i] to { type: $sexStats.anus.pregnancy.potentialFathers[$_i][0], source: $sexStats.anus.pregnancy.potentialFathers[$_i][1], }>> <</for>> <</if>> <</if>> <<if $sexStats.vagina is undefined>> <<set _baseDays to random(24,38)>> <<if _baseDays lt 26>> <<set _baseDaysRng to random(0,4)>> <<elseif _baseDays gte 30>> <<set _baseDaysRng to random(-4,0)>> <<else>> <<set _baseDaysRng to random(-2,2)>> <</if>> /*To change after every cycle*/ <<set _currentDaysMax to _baseDays + random(0, _baseDaysRng)>> /* - pregnancy has multiple slots, but pregnancy should only occur when none are taken - "baseDays", "baseDaysRng", "lastDaysMax", "currentDaysMax" values should not be changed by multipliers, but by percent if you want a faster/slower cycle during calculations only, do not modifier the values themselves - Sperm Template - "sperm":{ "Robin":{"type":"npc", "count":[[daysTillRemoval,cummed inside],[4,3],[3,2]]}, "Avery":{"type":"npc", "count":[[daysTillRemoval,cummed inside],[5,1]]}, "slender man":{"type":"npc", "count":[[daysTillRemoval,cummed inside],[5,1]]}, "Beast":{"type":"dog", "count":[[daysTillRemoval,cummed inside],[5,1]]}, } - Sperm data should be deleted after 3-5 days worth of the base, the entire named object after it is cleared. - "CurrentDay" should never be above "lastDaysMax" or "currentDaysMax", "lastDaysMax" should be set to "currentDaysMax" on releasing the egg - "recoveryTime" and "recoveryTimeStart" are to track how long the player needs to recover before they can get pregnant again. "recoveryTime" is reduced faster by taking fertility pills and when "totalBirthEvents" is more than 2. - "recoveryStage" ranges from 0 to 4, to help with any story text regarding how the player is feeling after giving birth - "periodEnabled" is only to prevent the first period based events after recovering from giving birth */ <<set $sexStats.vagina to { "pregnancy": { "fetus": [], "givenBirth": 0, "parasiteBirthEvents": 0, "totalBirthEvents": 0, "motherStatus": 0, "waterBreaking": false, "type": null, "timer": null, "timerEnd": null, "awareOf": null, "potentialFathers": [], }, "menstruation":{ "baseDays": _baseDays, "baseDaysRng": _baseDaysRng, "currentDay": random(0, _baseDays + random(0,_baseDaysRng)), "lastDaysMax": _currentDaysMax, "currentDaysMax": _currentDaysMax, "currentState": "normal", "recoveryTime": null, "recoveryTimeStart": null, "recoveryStage": null, "periodEnabled": true, "running": false, "stages": [0, 0, 0, 0], }, "sperm":[] }>> <<set _menstruation to $sexStats.vagina.menstruation>> <<set _stage2 to Math.round(_menstruation.currentDaysMax * 0.17)>> <<if _stage2 gte 4>> <<set _stage2-->> <</if>> <<set _stage3 to Math.round(_menstruation.currentDaysMax * 0.5)>> <<if _stage3 lt 13>> <<set _stage3++>> <<elseif _stage3 gte 18>> <<set _stage3-->> <</if>> <<set _menstruation.stages to [0, _stage2, _stage3, _stage3 + random(1,2) * 0.5]>> <<if $player.vaginaExist>> <<set $sexStats.vagina.menstruation.running = true>> <</if>> <</if>> <<if $sexStats.vagina.pregnancy.fetus is undefined>> <<set $sexStats.vagina.pregnancy.fetus = []>> <<run delete $sexStats.vagina.pregnancy.currentCount>> <<run delete $sexStats.vagina.pregnancy[0]>> <<run delete $sexStats.vagina.pregnancy[1]>> <<run delete $sexStats.vagina.pregnancy[2]>> <<run delete $sexStats.vagina.pregnancy[3]>> <<run delete $sexStats.vagina.pregnancy[4]>> <<run delete $sexStats.vagina.pregnancy[5]>> <<run delete $sexStats.vagina.pregnancy[6]>> <<run delete $sexStats.vagina.pregnancy[7]>> <</if>> <<if $sexStats.vagina.pregnancy.parasiteBirthEvents is undefined>> <<set $sexStats.vagina.pregnancy.parasiteBirthEvents to 0>> <<set $sexStats.vagina.pregnancy.parasiteFeltMovement to false>> <<set $sexStats.vagina.pregnancy.timerEnd to null>> <<run delete $sexStats.vagina.pregnancy.beastMotherStatus>> <<run delete $sexStats.vagina.pregnancy.ultrasoundDone>> <<run delete $sexStats.vagina.pregnancy.morningSicknessWaking>> <<run delete $sexStats.vagina.pregnancy.morningSicknessGeneral>> <<run delete $sexStats.vagina.pregnancy.bellySize>> <<run delete $sexStats.vagina.pregnancy.timerStart>> <</if>> <<if $sexStats.vagina.menstruation.nonCycleRng is undefined>> <<set $sexStats.vagina.menstruation.nonCycleRng to [random(0,6),random(0,6),random(0,6)]>> <</if>> <<if !Array.isArray($sexStats.vagina.sperm)>> <<set $sexStats.vagina.sperm to []>> <<if Array.isArray($sexStats.vagina.pregnancy.potentialFathers) and $sexStats.vagina.pregnancy.potentialFathers.length>> <<for $_i to 0; $_i lt $sexStats.vagina.pregnancy.potentialFathers.length; $_i++>> <<set $sexStats.vagina.pregnancy.potentialFathers[$_i] to { type: $sexStats.vagina.pregnancy.potentialFathers[$_i][0], source: $sexStats.vagina.pregnancy.potentialFathers[$_i][1], }>> <</for>> <</if>> <</if>> <<menstruationCycleState>> <<if $parentList is undefined>> <<set $parentList to parentFunction.parentList>> <</if>> <<if !$objectVersion.pregnancyFix>> <<run $sexStats.vagina.sperm.forEach(s => {if(s.source.toLowerCase().includes("wolf") && s.type === "human") s.type = "wolf"})>> <<run $sexStats.vagina.pregnancy.potentialFathers.forEach(s => {if(s.source.toLowerCase().includes("wolf") && s.type === "human") s.type = "wolf"})>> <<run $sexStats.anus.sperm.forEach(s => {if(s.source.toLowerCase().includes("wolf") && s.type === "human") s.type = "wolf"})>> <<run $sexStats.anus.pregnancy.potentialFathers.forEach(s => {if(s.source.toLowerCase().includes("wolf") && s.type === "human") s.type = "wolf"})>> <<if $sexStats.vagina.pregnancy.type is "human" and $sexStats.vagina.pregnancy.fetus[0]?.father.toLowerCase().includes("wolf")>> <<set $sexStats.vagina.pregnancy.type to "wolf">> <<run $sexStats.vagina.pregnancy.fetus.forEach(child => { child.type = "wolf"; const furColour = ["grey", "brown", "tan", "white"]; if (child.father === "Black Wolf") { furColour.concat(["black", "black", "black"]); } child.features.hairColour = furColour[random(0, furColour.length - 1)]; child.features.monster = 0; delete child.features.skinColor; delete child.features.beastTransform; delete child.features.divineTransform; delete child.features.clothes; })>> <</if>> <<set $objectVersion.pregnancyFix to 1>> <</if>> <</widget>><<widget "physicalAdjustments">> /*Breasts*/ <<switch $sexStats.pills.mostTaken["breast"]>> <<case "growth">> <<set _breastMulti to 1 + (2.25 * $sexStats.pills["pills"]["breast growth"].doseTaken)>> <<case "reduction">> <<set _breastMulti to -1 + (-2.25 * $sexStats.pills["pills"]["breast reduction"].doseTaken)>> <<case "blocker">> <<set _breastMulti to 0>> <<default>> <<set _breastMulti to 1>> <</switch>> <<if _breastMulti isnot 0>> <<switch $player.sex>> <<case "m">> <<set _breastMulti -= 1>> <<case "f" "h">> <<set _breastMulti += (Math.clamp($sexStats.creampie.self.vagina * 2, 0, 50) / 100)>> <</switch>> <<if $earSlime.focus is "pregnancy" and $earSlime.growth gte 75>> <<set _breastMulti += 3>> <<elseif $earSlime.focus is "impregnation" and $earSlime.growth gte 75>> <<set _breastMulti -= 3>> <</if>> <<set _breastMulti += (Math.clamp($sexStats.breasts.playedWith, 0, 500) / 250)>> <<set _breastMulti += Math.clamp($sexStats.anus.pregnancy.fetus.length / 10,0,0.5)>> <<set _breastMulti += Math.clamp($sexStats.vagina.pregnancy.fetus.length / 10,0,0.5)>> <<if $purity gte 990>> <<set _breastMulti -= 1>> <</if>> <<if $cow gte 1>> <<set _breastMulti += 1>> <</if>> <<set _purityBoost to (_breastMulti lt 0 ? 1 + ($purity / 1000) : 1 + ((1000 - $purity) / 1000))>> <<set $breastgrowthtimer -= _breastMulti * 25 * _purityBoost>> <<if $parasite.nipples.name is "urchin">> <<set $breastgrowthtimer -= 300>> <</if>> <<if $parasite.nipples.name is "slime">> <<set $breastgrowthtimer += 300>> <</if>> <<if $breastgrowthtimer lte 0 and $player.breastsize lt $breastsizemax>> <<set $player.breastsize += 1>> <<set $breastgrowthtimer += 700>> <<set $breastgrowthmessage to $player.breastsize>><<set $effectsmessage to 1>> <<elseif $breastgrowthtimer gte 1000 and $player.breastsize gt $breastsizemin>> <<set $player.breastsize -= 1>> <<set $breastgrowthtimer -= 700>> <<set $breastshrinkmessage to $player.breastsize>><<set $effectsmessage to 1>> <</if>> <<set $breastgrowthtimer to Math.clamp($breastgrowthtimer, 0, 1000)>> <</if>> <<set $player.breastsize to Math.clamp($player.breastsize, 0, 12)>> /*Penis*/ <<if $sexStats.pills["pills"]["penis growth"].overdose gt 0>> <<set $sexStats.pills["pills"]["penis growth"].overdose to Math.clamp($sexStats.pills["pills"]["penis growth"].overdose - 1, 0, 100)>> <</if>> <<if $sexStats.pills["pills"]["penis reduction"].overdose gt 0>> <<set $sexStats.pills["pills"]["penis reduction"].overdose to Math.clamp($sexStats.pills["pills"]["penis reduction"].overdose - 1, 0, 100)>> <</if>> <<switch $sexStats.pills.mostTaken["penis"]>> <<case "growth">> <<set _penisMulti to 1 + (2.25 * $sexStats.pills["pills"]["penis growth"].doseTaken)>> <<set $sexStats.pills["pills"]["penis growth"].overdose += $sexStats.pills["pills"]["penis growth"].doseTaken>> <<case "reduction">> <<set _penisMulti to -1 + (-2.25 * $sexStats.pills["pills"]["penis reduction"].doseTaken)>> <<set $sexStats.pills["pills"]["penis reduction"].overdose += $sexStats.pills["pills"]["penis reduction"].doseTaken>> <<case "blocker">> <<set _penisMulti to 0>> <<default>> <<set _penisMulti to 1>> <</switch>> <<if $player.penisExist and _penisMulti isnot 0>> <<set _totalReduction to ($sexStats.creampie.self.anus + $sexStats.creampie.self.mouth) * 2>> <<set _totalIncrease to ($sexStats.creampie.npc.anus + $sexStats.creampie.npc.mouth + $sexStats.creampie.npc.vagina) * 2>> <<if $cow gte 6>> <<set _penisMulti += 1>> <</if>> <<if $earSlime.focus is "pregnancy" and $earSlime.growth gte 100>> <<set _penisMulti -= 3>> <<elseif $earSlime.focus is "impregnation" and $earSlime.growth gte 100>> <<set _penisMulti += 3>> <</if>> <<if _penisMulti gt 1>> <<set _totalIncrease += 10>> <<set _totalIncrease *= _penisMulti>> <<elseif _penisMulti lt 0>> <<set _totalReduction += 10>> <<set _totalReduction *= _penisMulti * -1>> <</if>> <<set _totalChange to _totalIncrease - _totalReduction>> <<set _purityBoost to (_totalChange lt 0 ? 2 + ($purity / 500) : 2 + ((1000 - $purity) / 500))>> <<set $penisgrowthtimer -= _purityBoost * _totalChange>> <<set $penisgrowthtimer -= $sexStats.pills["pills"]["penis growth"].overdose>> <<set $penisgrowthtimer += $sexStats.pills["pills"]["penis reduction"].overdose>> <<if $player.penissize lt 0>> <<set $penisgrowthtimer -= 50>> <</if>> <<if $parasite.penis.name is "urchin">> <<set $penisgrowthtimer -= 250>> <<set $sexStats.pills["pills"]["penis growth"].overdose += random(1,2)>> <</if>> <<if $parasite.penis.name is "slime">> <<set $penisgrowthtimer += 250>> <<set $sexStats.pills["pills"]["penis reduction"].overdose += random(1,2)>> <</if>> <<set _overdose to $sexStats.pills["pills"]["penis growth"].overdose - $sexStats.pills["pills"]["penis reduction"].overdose>> <<if $earSlime.focus is "impregnation" and $earSlime.growth gte 100 and _overdose lt 20>> <<set _overdose to 20>> <<elseif $worn.genitals.type.includes("shrinking")>> <<set _overdose to -20>> <<if $penisgrowthtimer lte 100>> <<set $penisgrowthtimer to 100>> <</if>> <<set $penisgrowthtimer += 100>> <</if>> /* The $player.sex isnot "f" is to specifically block the parasite penis from shrinking below tiny */ <<if $penisgrowthtimer lte 0 and $player.penissize lt $penissizemax and $player.penissize gte -1>> <<set $player.penissize += 1>> <<set $penisgrowthtimer += 700>> <<set $penisgrowthmessage to $player.penissize>><<set $effectsmessage to 1>> <<elseif $penisgrowthtimer lte -400 and $player.penissize lt $penissizemax and $player.penissize is -2 and _overdose gte 20>> <<set $player.penissize += 1>> <<set $penisgrowthtimer += 1100>> <<set $penisgrowthmessage to $player.penissize>><<set $effectsmessage to 1>> <<elseif $penisgrowthtimer gte 1000 and $player.penissize gt 0>> <<set $player.penissize -= 1>> <<set $penisgrowthtimer -= 700>> <<set $penisshrinkmessage to $player.penissize>><<set $effectsmessage to 1>> <<elseif $penisgrowthtimer gte 1200 and $player.penissize is 0 and $player.penissize gt $penissizemin and $player.sex isnot "f">> <<set $player.penissize -= 1>> <<set $penisgrowthtimer -= 1000>> <<set $penisshrinkmessage to $player.penissize>><<set $effectsmessage to 1>> <<elseif $penisgrowthtimer gte 1500 and $player.penissize is -1 and $player.penissize gt $penissizemin and _overdose lte -20 and $player.sex isnot "f">> <<set $player.penissize -= 1>> <<set $penisgrowthtimer -= 1300>> <<set $penisshrinkmessage to $player.penissize>><<set $effectsmessage to 1>> <</if>> <<set $penisgrowthtimer to Math.clamp($penisgrowthtimer, 0, 1000)>> <</if>> <<set $player.penissize to Math.clamp($player.penissize, -2, 4)>> /*Bottom*/ <<switch $sexStats.pills.mostTaken["bottom"]>> <<case "growth">> <<set _bottomMulti to 1 + (2.25 * $sexStats.pills["pills"]["bottom growth"].doseTaken)>> <<case "reduction">> <<set _bottomMulti to -1 + (-2.25 * $sexStats.pills["pills"]["bottom reduction"].doseTaken)>> <<case "blocker">> <<set _bottomMulti to 0>> <<default>> <<set _bottomMulti to 1>> <</switch>> <<if _bottomMulti isnot 0>> <<set _totalReduction to $workouts /4>> <<set _totalIncrease to $sexStats.creampie.self.anus * 2>> <<set _bottomMulti += (500 - $purity) / 500>> <<if $cow gte 6>> <<set _bottomMulti += 1>> <</if>> <<if _bottomMulti gt 1>> <<set _totalIncrease += 10>> <<set _totalIncrease *= _bottomMulti>> <<elseif _bottomMulti lt 0>> <<set _totalReduction += 10>> <<set _totalReduction *= _bottomMulti * -1>> <</if>> <<set _totalChange to _totalIncrease - _totalReduction>> <<set _purityBoost to (_totalChange lt 0 ? 2 + ($purity / 500) : 2 + ((1000 - $purity) / 500))>> <<set $bottomgrowthtimer -= _purityBoost * _totalChange>> <<if $parasite.bottom.name is "urchin">> <<set $bottomgrowthtimer -= 300>> <</if>> <<if $parasite.bottom.name is "slime">> <<set $bottomgrowthtimer += 300>> <</if>> <<if $bottomgrowthtimer lte 0 and $player.bottomsize lt $bottomsizemax>> <<set $player.bottomsize += 1>> <<set $bottomgrowthtimer += 700>> <<set $bottomgrowthmessage to $player.bottomsize>><<set $effectsmessage to 1>> <<elseif $bottomgrowthtimer gte 1000 and $player.bottomsize gt $bottomsizemin>> <<set $player.bottomsize -= 1>> <<set $bottomgrowthtimer -= 700>> <<set $bottomshrinkmessage to $player.bottomsize>><<set $effectsmessage to 1>> <</if>> <<set $bottomgrowthtimer to Math.clamp($bottomgrowthtimer, 0, 1000)>> <</if>> <<set $player.bottomsize to Math.clamp($player.bottomsize, 0, 8)>> /*Resetting of values*/ <<set $sexStats.creampie.npc.anus to 0>> <<set $sexStats.creampie.npc.mouth to 0>> <<set $sexStats.creampie.npc.vagina to 0>> <!-- <<set $sexStats.creampie.npc.tentacle to 0>> --> <!-- <<set $sexStats.creampie.npc.penis to 0>> --> <!-- IMPORTANT NOTE: If you uncomment the above sections, find a section in backComp widget labeled: v0.3.11.4 creampie.npc.penis and tentacle fix And REMOVE it or comment it out --> <<set $sexStats.creampie.self.anus to 0>> <<set $sexStats.creampie.self.mouth to 0>> <<set $sexStats.creampie.self.vagina to 0>> <<set $sexStats.breasts.playedWith to 0>> <<set $workouts to 0>> /* pills related */ <<run resetAllDoseTaken()>> <<autoTakePillCheck>> /************************************/ <</widget>> <<widget "autoTakePillCheck">> <<if $statFreeze>> <<exit>> <</if>> <<if $sexStats?.pills && $pillsTakenOn != (Time.monthDay.toString() + Time.month + Time.year.toString())>> <<set _pills to $sexStats.pills>> <<if $molestationstart isnot 1 and $combat is 0 and (["home", "alex_cottage", "asylum", "prison", "avery_mansion"].includes($location) or ($location is "cabin" and $syndromeeden gte 1) or ($location is "temple" and V.wardrobes.temple.unlocked) or ($location is "pirate_ship" and V.wardrobes.pirate.unlocked))>> <!-- Eden Syndrome is 0 or 1, but could be higher in the future. --> <<set _keys to Object.keys(_pills.lastTaken)>> /* "lastTaken" will induce you in error here, it's only to retrieve the pills type list*/ <<for _i, _key range _keys>> <<run determineAutoTakePill(_key)>> <<if _autoTakeDetermined != null and _pills.pills[_autoTakeDetermined].owned > 0>> /*Prevent pills from being taken if the player has already taken a dose, aloowing them to either take more than intended, or to bypass the overdose effects*/ <<if !_pills.pills[_autoTakeDetermined].doseTaken>> <<set _pills.pills[_autoTakeDetermined].owned-->> <<if _autoTakeDetermined is "Hair Growth Formula">> <<set _pills.pills[_autoTakeDetermined].doseTaken += 3>> <<set $hairGrowthApplied to true>> <<if _pills.pills[_autoTakeDetermined].owned == 0>> <<set _pills.pills[_autoTakeDetermined].autoTake to false>> <<set $hairGrowthAppliedLast to true>> <</if>> <<else>> <<set $pillsconsumed++>> /* to keep track of overall pill consumption (stats) */ <<set _pills.pills[_autoTakeDetermined].doseTaken += 1>> <<run redetermineMostTaken(0, 0, _autoTakeDetermined)>> <<run setLastTaken(null, null, _autoTakeDetermined)>> <<set $pillsTaken to true>> <<set $pillsTakenOn to (Time.monthDay.toString() + Time.month + Time.year.toString())>> <<if _pills.pills[_autoTakeDetermined].owned == 0>> <<set _pills.pills[_autoTakeDetermined].autoTake to false>> <<set $pillsTakenLast to true>> <</if>> <</if>> <<set $effectsmessage to 1>> <</if>> <<elseif _autoTakeDetermined != null>> <<set _pills.pills[_autoTakeDetermined].autoTake to false>> <<set _pills.pills[_autoTakeDetermined].doseTaken to 0>> <<set _pills.lastTaken[_key] to ''>> <<set _pills.mostTaken[_key] to ''>> <</if>> <</for>> <</if>> <</if>> <<if Skin.Sunscreen.autoApply and Skin.Sunscreen.timeLeft is 0 and Skin.Sunscreen.usesLeft gt 0 and !pcAreArmsBound("any")>> <<run Skin.Sunscreen.apply()>> <<set $sunscreenAutoApplied to true>> <<set $effectsmessage to 1>> <</if>> <</widget>> /*<<playWithBreasts>>*/<<widget "playWithBreasts">> <<if _args[0]>> <<set $sexStats.breasts.playedWith += _args[0]>> <<else>> <<set $sexStats.breasts.playedWith++>> <</if>> <</widget>> /*<<creampie "npc" "anus">> -- <<set $sexStats.creampie.npc.anus++>>*/ /*<<creampie "self" "mouth">> -- <<set $sexStats.creampie.self.mouth++>>*/<<widget "creampie">> <<if _args[0] and _args[1]>> <<set $sexStats.creampie[_args[0]][_args[1]]++>> <</if>> <<set $internalejac to 1>> <</widget>> <<widget "fillOther">> <<set $otherFilled to $otherFilled or 0>> <<set $otherFilled += $semen_amount gt ($semen_volume / 24) * 18 ? 2 : 1>> <<set $otherFilled to Math.clamp($otherFilled, 0, 5)>> <</widget>>/*args[0] - location, args[1] - passageExit*/ <<widget "childrenEvents">> <<if _args[0]>> <<if _args[0] is "tower">> <<getChildrenIds `{location: _args[0], eggTimer: undefined}` "both">> <<else>> <<getChildrenIds `{location: _args[0]}`>> <</if>> <<if _childrenIds.length gt 0>> <<set _singleEvents to true>> <</if>> <!-- Rework these later, they make no sense. Why can't children of different birth IDs interact? --> <<if _args[0] is "tower">> <<getSameBirthChildrenIds _args[0] 2 undefined "both">> <<else>> <<getSameBirthChildrenIds _args[0] 2>> <</if>> <<if Object.keys(_birthChildrenIds).length gt 0>> <<set _multipleEvents to true>> <</if>> <<set _keys to Object.keys(_birthChildrenIds)>> <<set $childPassageExit to _args[1]>> <<switch _args[0]>> <<case "home">> <<if _singleEvents is true and (_multipleEvents is false or random(0,100) gt 40)>> <<addevent `"homeSingles " + _childrenIds[random(0,_childrenIds.length - 1)]`>> <<elseif _multipleEvents is true>> <<set $childrenIds to _birthChildrenIds[_keys.random()]>> <<addevent `"homeMultiples " + _args`>> <</if>> <<case "wolf_cave">> <<if _singleEvents is true and (_multipleEvents is false or random(0,100) gt 40)>> <<addevent `"wolfCaveSingles " + _childrenIds[random(0,_childrenIds.length - 1)]`>> <<elseif _multipleEvents is true>> <<set $childrenIds to _birthChildrenIds[_keys.random()]>> /*<<addevent "wolfCaveMultiple _args">>*/ <</if>> <<case "tower">> <<if _singleEvents is true and (_multipleEvents is false or random(0,100) gt 40)>> <<addevent `"hawkSingles " + _childrenIds[random(0,_childrenIds.length - 1)]`>> <<elseif _multipleEvents is true>> <<set $childrenIds to _birthChildrenIds[_keys[random(0,_keys.length - 1)]]>> <<addevent `"hawkMultiples " + _args`>> <</if>> <</switch>> <</if>> <</widget>> <<widget "homeSingles">> <<if _args[0]>> <<childSelect _args[0]>> <<switch random(0,0)>> <<case 0>> You spot your child <<childname>> on <<childhis>> back, looking at you with <<childhis>> <<childhands>> stretched towards you. <br><br> Picking <<childhim>> up, <<childhe>> <<childgiggles>> while rubbing your face. <br><br> <<if $lactating is 1 and $settings.breastFeedingEnabled and $milk_amount gte 1>> <<link [[Breast feed (0:30)|childBreastFeed]]>><<pass 30>><</link>> <br> <</if>> <<link [[Cuddle (0:30)|childCuddle]]>><<pass 30>><</link>> <br> <<link [[Talk (0:15)|childTalk]]>><<pass 15>><</link>> <br> <<link [[Play (0:30)|childPlay]]>><<pass 30>><</link>> <br> <<link [[Bathe (0:30)|childBathe]]>><<pass 30>><</link>> <</switch>> <</if>> <br> <</widget>> <<widget "homeMultiples">> <<if $childrenIds>> <<switch random(0,0)>> <<case 0>> You spot your children <<childrenNames $childrenIds>> sleeping together in their cot with a peaceful look on their faces. <br><br> <<link [[Watch (0:30)|childCotWatch]]>><<stress -2>><<trauma -2>><<pass 30>><<set $phase to 1>><</link>><<lstress>><<ltrauma>> <br> <<link [[Have a nap (0:30)|childCotWatch]]>><<stress -2>><<tiredness -2>><<pass 30>><<set $phase to 2>><</link>><<lstress>><<ltiredness>> <</switch>> <</if>> <</widget>> <<widget "wolfCaveSingles">> <<if _args[0]>> <<childSelect _args[0]>> <<switch random(0,0)>> <<case 0>> You spot your <<childtype>> <<childname>> lying on a sleeping <<wolf_cave_singular>>, looking at you with <<childhis>> <<childhands>> stretched towards you. <br><br> Picking <<childhim>> up, <<childhe>> <<childgiggles>> while rubbing your face. <br><br> <<if $lactating is 1 and $settings.breastFeedingEnabled and $milk_amount gte 1>> <<link [[Breast feed (0:30)|childBreastFeed]]>><<pass 30>><</link>> <br> <</if>> <<link [[Cuddle (0:30)|childCuddle]]>><<pass 30>><</link>> <br> <<link [[Talk (0:15)|childTalk]]>><<pass 15>><</link>> <br> <<link [[Play (0:30)|childPlay]]>><<pass 30>><</link>> <</switch>> <</if>> <br> <</widget>> <<widget "hawkSingles">> <<if _args[0]>> <<childSelect _args[0]>> <<switch random(0,2)>> <<case 0 1>> You spot your <<childtype>> <<childname>> lying in the nest, looking at you with <<childhis>> <<childhands>> stretched towards you. <br><br> Picking <<childhim>> up, <<childhe>> <<childgiggles>> and flails about. <br><br> <<if $cmonster is 1 and $lactating is 1 and $settings.breastFeedingEnabled and $milk_amount gte 1>> <<link [[Breast feed (0:30)|childBreastFeed]]>><<pass 30>><</link>> <br> <</if>> <<link [[Cuddle (0:30)|childCuddle]]>><<pass 30>><</link>> <br> <<link [[Talk (0:30)|childTalk]]>><<pass 30>><</link>> <br> <<link [[Play (0:30)|childPlay]]>><<pass 30>><</link>> <<case 2>> You see <<childname>> rolling around in the nest. As soon as <<childhe>> spots you, <<childhe>> rights <<childhimself>> and <<childgiggles>>. <<childHe>> seems happy to see you! <<stress -12>><<llstress>> <br><br> <<link [[Next|$childPassageExit]]>><<unset $childPassageExit>><<endevent>><</link>> <br> <</switch>> <</if>> <br> <</widget>> <<widget "hawkMultiples">> <<if $childrenIds>> <<switch random(0,0)>> <<case 0>> You spot <<childrenNames $childrenIds>> tumbling over one another. <<set _child1 to _childrenIds.pluck()>> <<set _child2 to _childrenIds.pluck()>> Every now and again they stop to stare at each other. After a moment, <<childname _child1>> moves behind <<childSelect _child2>><<childname>> and starts to groom <<childhim>>. <br><br> <<link [[Next|$childPassageExit]]>><<unset $childrenIds>><<unset $childPassageExit>><<endevent>><</link>> <br> <</switch>> <</if>> <</widget>><<set $pregnancyStats.childBreastfedInteractions++>> <<if $worn.over_upper.name isnot "naked" or $worn.upper.name isnot "naked" or $worn.upper.name isnot "naked">> You adjust your clothes to give <<childhim>> access to your <<breasts>>. <<else>> You guide your baby's lips to your breast. <</if>> <br><br> <<set _rng to random(1, 4)>> <<switch _rng>> <<case 1>> <<childHe>> seems to realise your intent and suckles your <<print ["left","right"].pluck()>> breast with closed eyes.<<breastfeed 25>> <<case 2>> It takes <<childhim>> a few moments to find your nipple. <<childHe>> latches on and starts sucking. You watch your baby drink and enjoy the calm moment.<<lstress>><<stress -6>><<breastfeed 20>> <<case 3>> <<childHe>> latches onto your nipple and starts sucking with surprising eagerness. The strength of <<childhis>> suction soon causes you discomfort. Your nipple soon feels sore.<<gpain>><<pain 4>><<breastfeed 30>> <<default>> <<childHe>> refuses to take your nipple into <<childhis>> mouth, moving <<childhis>> head away and crying even louder than before.<<gstress>><<stress 6>> <</switch>> <br><br> <<link [[Next|$childPassageExit]]>><<unset $childPassageExit>><<endevent>><</link>><<set _rng to random(1, 5)>> <<switch $children[$childSelected.childId].type>> <<case "human">> <<switch _rng>> <<case 1>> <<childHe>> seems to realise your intent and wraps <<childhis>> <<childhands>> around your neck while leaning on your shoulder. <<case 2>> You hum a melodic lullaby, rubbing <<childname>>'s back as you gently sway to the tune. The familiarity of your voice seems to soothe <<childhis>> mood. <<childHe>> coos at you.<<ltrauma>><<lstress>><<trauma -6>><<stress -6>> <<case 3>> You place a soft kiss on <<childhis>> forehead and give <<childhim>> as much skin-to-skin contact as you can. The action encourages <<childhim>> to lift <<childhis>> head and reward you with a smile.<<ltrauma>><<lstress>><<trauma -6>><<stress -6>> <<case 4>> You give <<childname>> a few different objects to look at. You explain the colours, shapes, and textures of things that you see around you. <<childHe>> reaches out to touch, curious to explore <<childhis>> environment. You make sure <<childhe>> doesn't try to grasp anything too heavy or awkward.<<gstress>><<stress 6>> <<default>> <<childHe>> revolts against being carried, and <<childhe>> kicks <<childhis>> legs. The longer you hold <<childhim>>, the more intense <<childhis>> cries become. Some of <<childhis>> kicks connect.<<gpain>><<gstress>><<pain 4>><<stress 6>> <</switch>> <<case "wolf" "wolfboy" "wolfgirl">> <<switch _rng>> <<case 1>> <<if $cmonster is 1>> <<childHe>> seems to realise your intent and wraps <<childhis>> <<childhands>> around your neck while leaning on your shoulder. <<else>> <<childHe>> seems to realise your intent and settles into the crook of your neck. <</if>> <<case 2>> You hum a melodic lullaby, rubbing <<childname>>'s back as you gently sway to the tune. The familiarity of your voice seems to soothe <<childhis>> mood. <<childHe>> coos at you.<<ltrauma>><<lstress>><<trauma -6>><<stress -6>> <<case 3>> <<if $cmonster is 1>> You place a soft kiss on <<childhis>> forehead and give <<childhim>> as much skin-to-skin contact as you can. The action encourages <<childhim>> to lift <<childhis>> head and reward you with a smile.<<ltrauma>><<lstress>><<trauma -6>><<stress -6>> <<else>> You place a soft kiss on <<childhis>> forehead and give <<childhim>> as much skin-to-fur contact as you can. The action encourages <<childhim>> to lift <<childhis>> head and stick <<childhis>> tongue out at you.<<ltrauma>><<lstress>><<trauma -6>><<stress -6>> <</if>> <<case 4>> You give <<childname>> a few different objects to look at. You explain the colours, shapes, and textures of things that you see around you. <<childHe>> picks a stick up in <<childhis>> mouth and starts to shake it around. You make sure <<childhe>> doesn't try to grasp anything else too heavy or awkward.<<gstress>><<stress 6>> <<default>> <<childHe>> revolts against being carried, and <<childhe>> kicks <<childhis>> legs. The longer you hold <<childhim>>, the more intense <<childhis>> cries become. Some of <<childhis>> kicks connect.<<gpain>><<gstress>><<pain 4>><<stress 6>> <</switch>> <<case "hawk">> <<switch _rng>> <<case 1>> <<if $cmonster is 1>> <<childHe>> seems to realise your intent and wraps <<childhis>> <<childhands>> around your neck while leaning on your shoulder. <<else>> <<childHe>> seems to realise your intent and settles into the crook of your neck. <</if>> <<case 2>> You hum a melodic lullaby, rubbing <<childname>>'s back as you gently sway to the tune. The familiarity of your voice seems to soothe <<childhis>> mood. <<childHe>> coos at you.<<ltrauma>><<lstress>><<trauma -6>><<stress -6>> <<case 3>> <<if $cmonster is 1>> You place a soft kiss on <<childhis>> forehead and give <<childhim>> as much skin-to-skin contact as you can. The action encourages <<childhim>> to lift <<childhis>> head and reward you with a smile.<<ltrauma>><<lstress>><<trauma -6>><<stress -6>> <<else>> You place a soft kiss on <<childhis>> forehead and give <<childhim>> as much skin-to-feather contact as you can. The action encourages <<childhim>> to lift <<childhis>> head and chirp at you.<<ltrauma>><<lstress>><<trauma -6>><<stress -6>> <</if>> <<case 4>> You give <<childname>> a few different materials to look at. You explain the colours, shapes, and textures of things that you see around you. <<if $cmonster is 1>> <<childHe>> reaches out to touch, curious to explore <<childhis>> environment. <<childHe>> grabs onto a piece of cloth <<else>> <<childHe>> reaches out to peck at a piece of cloth that you're showing <<childhim>>. <<childHe>> manages to get it away from you, <</if>> and starts to shake it about. <<childHe>> <<childgiggles>>, but you make sure <<childhe>> doesn't try to grab anything else. <<gstress>><<stress 6>> <<default>> <<if $cmonster is 1>> <<childHe>> revolts against being carried, and <<childhe>> kicks <<childhis>> legs. The longer you hold <<childhim>>, the more intense <<childhis>> cries become. Some of <<childhis>> kicks connect.<<gpain>><<gstress>><<pain 4>><<stress 6>> <<else>> <<childHe>> revolts against being carried and manages to slip your grasp. <<childHe>> falls harmlessly into the nest, but the act gives you quite the start. <<ggstress>><<stress 12>> <</if>> <</switch>> <<default>> <span class="red">Childtype $children[$childSelected.childId].type not found. This is a bug.</span> <</switch>> <br><br> <<link [[Next|$childPassageExit]]>><<unset $childPassageExit>><<endevent>><</link>><<childSelect `$childrenIds[random(0,$childrenIds.length - 1)]`>> <<if $phase is 1>> You stand over <<childrenNames $childrenIds>> and watch them sleep. <<set _rng to random(1, 4)>> <<switch _rng>> <<case 1>> You're transfixed by <<childname>>'s chest, rising and fallen with gentle breaths. <<case 2>> You find yourself stroking each of their heads. <<case 3>> <<childname>> opens <<childhis>> mouth in a big yawn and stretches.<<lstress>><<stress -6>> <<default>> <<childname>> murmurs and scrunches <<childhis>> features, as if having a bad dream.<<gstress>><<stress 6>> <</switch>> <br><br> <<elseif $phase is 2>> You decide to have a nap and lie in the bed next to your children. <br><br> You wake up sometime later with something wrapped round your finger. While still asleep, it seems that <<childname>>'s <<childhand>> was able to reach you. <br><br> <</if>> <<link [[Next|$childPassageExit]]>><<unset $childrenIds>><<unset $childPassageExit>><<endevent>><</link>><<set _rng to random(1, 4)>> <<switch $children[$childSelected.childId].type>> <<case "human">> <<switch _rng>> <<case 1>> You recite a few nursery rhymes you remember from long ago. <<childHe>> looks alert as <<childhe>> listens to your voice. You make a few different tones and wait for <<childhis>> reaction. It seems to you like <<childhe>> recognises certain sounds and changes <<childhis>> expression accordingly. After a few more moments, <<childhe>> breaks eye contact and sucks on <<childhis>> thumb. <<case 2>> You gently cup <<childname>>'s right foot and count <<childhis>> toes, wriggling them before moving on to <<childhis>> next foot. <<childHe>> quiets, watching you with wide eyes as you move your finger from one toe to the next. <<case 3>> You chat to <<childname>>, sharing your thoughts and waiting for a response. <<childHe>> doesn't seem to be paying much attention however.<<gstress>><<stress 6>> <<default>> You speak to <<childname>>, but <<childhis>> cries drown your words. <<childHis>> face turns a deeper shade of red with every minute you spend trying to talk to <<childhim>>.<<gstress>><<stress 6>> <</switch>> <<case "wolf" "wolfboy" "wolfgirl">> <<switch _rng>> <<case 1>> You recite a few nursery rhymes you remember from long ago. <<childHe>> looks alert as <<childhe>> listens to your voice. You make a few different tones and wait for <<childhis>> reaction. It seems to you like <<childhe>> recognises certain sounds and changes <<childhis>> expression accordingly. After a few more moments, tilts <<childhis>> head at you. <<case 2>> You gently cup <<childname>>'s <<if $cmonster is 1>> right foot and count <<childhis>> toes, wriggling them before moving on to <<childhis>> next foot. <<childHe>> quiets, watching you with wide eyes as you move your finger from one toe to the next. <<else>> front right paw and count <<childhis>> toes, wriggling them before moving on to <<childhis>> next paw. <<childHe>> quiets, watching you with wide eyes as you move your finger from one toe to the next. <</if>> <<case 3>> You chat to <<childname>>, sharing your thoughts and waiting for a response. <<childHe>> doesn't seem to be paying much attention however.<<gstress>><<stress 6>> <<default>> You speak to <<childname>>, but <<childhe>> softly barks at you every time you open your mouth. <<childHe>> headbutts your leg, then turns away. <</switch>> <<case "hawk">> <<switch _rng>> <<case 1>> You recite a few nursery rhymes you remember from long ago. <<childHe>> looks alert as <<childhe>> listens to your voice. You make a few different tones and wait for <<childhis>> reaction. It seems to you like <<childhe>> recognises certain sounds. After a few more moments, tilts <<childhis>> head at you. <<case 2>> You gently cup <<childname>>'s <<if $cmonster is 1>> right foot and count <<childhis>> toes, wriggling them before moving on to <<childhis>> next foot. <<childHe>> quiets, watching you with wide eyes as you move your finger from one toe to the next. <<else>> right leg and count <<childhis>> talons, wriggling them before moving on to <<childhis>> next leg. <<childHe>> quiets, watching you as you move your finger from one talon to the next. <</if>> <<case 3>> You chat to <<childname>>, sharing your thoughts and waiting for a response. <<childHe>> doesn't seem to be paying much attention however.<<gstress>><<stress 6>> <<default>> You speak to <<childname>>, but <<childhe>> softly chirps at you every time you open your mouth. <<childHe>> headbutts your leg, then turns away. <</switch>> <<default>> <span class="red">Childtype $children[$childSelected.childId].type not found. This is a bug.</span> <</switch>> <br><br> <<link [[Next|$childPassageExit]]>><<unset $childPassageExit>><<endevent>><</link>><<set _rng to random(1, 6)>> <<switch _rng>> <<case 1>> You smile down at <<childname>>. You wave your hands and stick your tongue out, making several different faces in an attempt to catch <<childhis>> attention. <<childHe>> studies your expressions with curiosity. <<childHe>> is trying to imitate you, but you're unsure if it's just a reflex. <<case 2>> You bring <<childname>>'s <<childfeet>> to <<childhis>> <<childhands>>, moving them around and occasionally clapping them together. You give <<childhis>> body a gentle massage, from <<childhis>> <<childtoes>>, to <<childhis>> back, then all the way to <<childhis>> <<childfinger>>tips. You shower <<childhis>> frame in affectionate touches. <<childHe>> smiles in response to your broad grin. <<case 3>> You cover your face with both hands, then uncover it a few seconds later. <<childname>> peers up at you. <<childHe>> smiles when your eyes meet.<<lstress>><<stress -6>> <<case 4>> You tickle <<childname>> and blow raspberries on <<childhis>> stomach. <<childHe>> responds by interrupting <<childhis>> cries and <<childgiggles>> instead, flapping <<childhis>> arms and legs in joy.<<lstress>><<stress -6>> <<case 5>> You tickle <<childname>> and blow raspberries on <<childhis>> stomach. <<childHis>> cries become louder as <<childhe>> turns <<childhis>> head from side to side and squirms away. <<childHe>> seems upset over the treatment.<<gstress>><<stress 6>> <<default>> You get closer to <<childname>>, so <<childhe>> can study your face and its features. <<childHe>> stops crying for a moment, only to grab your hair and pull it.<<gpain>><<pain 4>> <</switch>> <br><br> <<link [[Next|$childPassageExit]]>><<unset $childPassageExit>><<endevent>><</link>><<wearProp "soap">> You fill a small tub with warm water and prepare the towels and a new nappy beforehand. You take <<childname>> in your arms gently and carry <<childhim>> to the bathtub, making sure to put <<childhim>> in a safe position. <<set _rng to random(1, 5)>> <<switch _rng>> <<case 1>> You rub <<childname>> gently with the warm water, making sure to clean between the folds of skin and holding <<childhis>> little body with one hand. The softness of <<childhis>> skin as you rub makes you feel extremely at ease. The baby seems to be tickled by your touches and swings <<childhis>> legs in the water, making some of it splash on your clothes and face. You can't help but smile at the situation.<<ltrauma>><<trauma -6>> <<case 2>> You gently rub <<childname>>'s head in circular motions with a handful of baby shampoo. The sweet aroma of strawberry fills the ambient, and bubbles begin to appear in the water. Your child seems curious and periodically takes one of <<childhis>> fingers to the bubbles, popping them. <<childHis>> mellow laughter echoes through the room as <<childhe>> is distracted by the foam in the bathtub.<<ltrauma>><<lstress>><<trauma -6>><<stress -6>> <<case 3>> You start the bath by trying to soap your baby's body. <<childHe>> doesn't seem to like the feel of water on <<childhis>> skin, let alone seems to be enjoying your attempts to cleanse <<childhim>>. <<childname>> threatens to cry as you continue the bath, but you manage to calm <<childhim>> down after a little effort. <<childHe>> pouts in distaste until the end of the cleaning session. When you're finished, <<childhe>> doesn't seem to want to let you carry <<childhim>> back and makes uncontent sounds when you pick <<childhim>> up.<<gstress>><<stress 6>> <<default>> Just by touching the water, <<childname>> lets out a high-pitched, incessant cry. <<childHe>> flails <<childhis>> legs and arms into the water trying to get free as you struggle to rub <<childhim>> properly. Water splashes quickly soak your clothes. <<childHe>> continues throwing a tantrum until the end of the bath, leaving you with a headache.<<gstress>><<stress 6>> <</switch>> <br><br> When you're done bathing <<childhim>>, you lay <<childhim>> on a towel and gently dry <<childhis>> body with a softer fabric. You carefully finish the moment by changing the baby's nappies and putting <<childhim>> back in <<childhis>> crib. <br><br> <<link [[Next|$childPassageExit]]>><<unset $childPassageExit>><<endevent>><</link>><<effects>> <<getChildrenIds `{location: $location}`>> <<switch $location>> <<case "home">> You are in the orphanage nursery. There are a few cradles and cots scattered around. <<case "wolf_cave">> <<switch Time.dayState>> <<case "dawn">> Many of the pups are still asleep. <<case "day">> The yips, growls, and tiny howls of young pups playing echo off the rocky walls. <<case "dusk">> Most of the pups have already settled down for the night. <<case "night">> The pups are all asleep, and the den is silent. <</switch>> <<case "alex_cottage">> You are in the cottage nursery. <<switch Time.dayState>> <<case "dawn">> The sound of birds singing early in the morning soothes the room. <<case "day">> Sounds from the farm can be heard through the cottage. <<case "dusk">> A calm breeze flows through the curtain. <<case "night">> Silence fills the room. <</switch>> <<case "tower">> <<getChildrenIds `{location: $location, eggTimer: undefined}` "both">> You are in the tower. You look around for your <<pluralise _childrenIds.length "child" "children">>. <</switch>> <<if Time.dayState isnot "night" and (!$daily.childrenHomeEvent or !$daily.childrenHomeEvent.includes($location)) and random(1) is 1>> <<if !$daily.childrenHomeEvent>> <<set $daily.childrenHomeEvent to [$location]>> <<else>> <<run $daily.childrenHomeEvent.push($location)>> <</if>> <<cleareventpool>> <<childrenEvents $location $passage>> <<if _eventpool.length>> <<runeventpool>> <<exit>> <</if>> <</if>> <br><br> <<childViewerDisplay _childrenIds>> <br> <<if $location isnot "tower">> <<if $location is "wolf_cave">> <<childicon "rope">> <<else>> <<childicon "teddy bear">> <</if>> <<if $player.inventory.childrenToys>> <<if !$storedChildrenToys[$location]>><<set $storedChildrenToys[$location] to []>><</if>> <<link [[Store children's toys|Childrens Home Toys]]>><</link>> <br> <<else>> You have not bought any toys for your children here. You should take a trip to <<= $location is "wolf_cave" ? "the pet store" : "the toy shop">>. <br> <</if>> <</if>> <<if $location is "home">> <<tendingicon "babybottle">> <<if V.plants['baby_bottle_of_breast_milk'] and V.plants['baby_bottle_of_breast_milk'].amount gt 0>> <<link [[Donate breast milk|Childrens Donate Milk]]>><</link>> <<if $pregnancyStats.orphanageMilkBottles gt 0>> (<span class="green"><<print $pregnancyStats.orphanageMilkBottles>></span> bottles remaining) <<else>> (<span class="red"><<print $pregnancyStats.orphanageMilkBottles>></span> bottles remaining) <</if>> <<else>> You have no bottled breast milk to donate. <<if $pregnancyStats.orphanageMilkBottles gt 0>> (<span class="green"><<print $pregnancyStats.orphanageMilkBottles>></span> bottles remaining) <<else>> (<span class="red"><<print $pregnancyStats.orphanageMilkBottles>></span> bottles remaining) <</if>> <</if>> <br> <</if>> <<getouticon>><<link [[Back|$exitPassage]]>><<unset $exitPassage>><</link>><<effects>> <label>Number of milk bottles to donate: <<numberslider "$donatedMilk" 1 1 `$plants["baby_bottle_of_breast_milk"].amount` 1>></label> <<link [[Donate|Childrens Donate Milk 2]]>><</link>> <br> <<link [[Back|Childrens Home]]>><<unset $childActivityEvent>><<endevent>><</link>><<effects>><<wearProp "milk bottle" 0 "baby">> <<set $pregnancyStats.orphanageMilkBottles += $donatedMilk>> <<set $pregnancyStats.orphanageMilkBottlesTotal += $donatedMilk>> <<set $plants["baby_bottle_of_breast_milk"].amount -= $donatedMilk>> You leave behind $donatedMilk bottles of milk for your children with one of Bailey's thugs. <br><br> <<link [[Back|Childrens Home]]>><<unset $donatedMilk>><<unset $childActivityEvent>><<endevent>><</link>><<effects>> <<set _selectedCurrentToy to 0>> <<set _selectedLocationToy to 0>> <div id="childrenToysUI"> <<childrenToysUI>> </div> <br> <<getouticon>><<link [[Back|Childrens Home]]>><<unset $childActivityEvent>><<endevent>><</link>><<widget "childrenToysUI">> <div class="settingsGrid"> <div> <div class="itemInventoryHeader settingsHeader">Inventory</div> <div class="itemInventory itemDetails"> <<for _i to 0; _i lt 10; _i++>> <<set _toy to $player.inventory.childrenToys[_i]>> <<if _toy and _i lt 5>> <<set _name to _toy.name>> <<set _icon to _name.toLowerCase().replace(".","")>> <<set _index to _i - 1>> <div @class="_selectedCurrentToy is _i ? 'item selected' : 'item'" @tooltip="_name" onclick="$(this).siblings().removeClass('selected'); $(this).addClass('selected')"> <label> <<if $options.images is 1>> <<childicon _icon>> <<else>> <span @class="_toy.colour"><<print _toy.name>></span> <</if>> <<radiobutton "_selectedCurrentToy" _i autocheck>> </label> </div> <<else>> <<if _i lt 5>> <div class="item unknown"><<ind>></div> <<else>> <div class="item empty"><<ind>></div> <</if>> <</if>> <</for>> </div> <div class="containerFooter"> <<if $player.inventory.childrenToys.length gt 0>> <div class="tab inventory"> <<button "<span class='fa-icon fa-trash'></span> Discard">> <<run $player.inventory.childrenToys.deleteAt(_selectedCurrentToy)>> <<set _selectedCurrentToy to 0>> <<childrenToysUIReplace>> <</button>> </div> <br> <<if $storedChildrenToys[$location].length lt 10>> <div class="tab inventory"> <<button "<span class='fa-icon fa-import'></span> Store">> <<run $storedChildrenToys[$location].push($player.inventory.childrenToys[_selectedCurrentToy])>> <<run $player.inventory.childrenToys.deleteAt(_selectedCurrentToy)>> <<set _selectedCurrentToy to 0>> <<childrenToysUIReplace>> <</button>> </div> <</if>> <<else>> <div class="tab inventory"> <button class="link-internal macro-button buttonDisabled" disabled><<="<span class='fa-icon fa-trash'></span> Discard">></button> </div> <div class="tab inventory"> <button class="link-internal macro-button buttonDisabled" disabled><<="<span class='fa-icon fa-import'></span> Store">></button> </div> <</if>> </div> </div> <div> <div class="itemInventoryHeader settingsHeader"> <<switch $location>> <<case "wolf_cave">>Wolf Cave <<case "tower">>Tower <<default>>Nursery <</switch>> </div> <div class="itemInventory itemDetails"> <<for _i to 0; _i lt 10; _i++>> <<set _toy to $storedChildrenToys[$location][_i]>> <<if _toy>> <<set _name to _toy.name>> <<set _icon to _name.toLowerCase().replace(".","")>> <div @class="_selectedLocationToy is _i ? 'item selected' : 'item'" @tooltip="_name" onclick="$(this).siblings().removeClass('selected'); $(this).addClass('selected')"> <label> <<if $options.images is 1>> <<childicon _icon>> <<else>> <span @class="_toy.colour"><<print _toy.name>></span> <</if>> <<radiobutton "_selectedLocationToy" _i autocheck>> </label> </div> <<else>> <div class="item unknown"><<ind>></div> <</if>> <</for>> </div> <div class="containerFooter"> <<if $storedChildrenToys[$location].length gt 0>> <div class="tab inventory"> <<button "<span class='fa-icon fa-trash'></span> Discard">> <<run $storedChildrenToys[$location].deleteAt(_selectedLocationToy)>> <<set _selectedLocationToy to 0>> <<childrenToysUIReplace>> <</button>> </div> <<if $player.inventory.childrenToys.length lt 5>> <div class="tab inventory"> <<button "<span class='fa-icon fa-export'></span> Carry">> <<run $player.inventory.childrenToys.push($storedChildrenToys[$location][_selectedLocationToy])>> <<run $storedChildrenToys[$location].deleteAt(_selectedLocationToy)>> <<set _selectedLocationToy to 0>> <<childrenToysUIReplace>> <</button>> </div> <<else>> <div class="tab inventory"> <button class="link-internal macro-button no-numberify buttonDisabled" disabled><span class='fa-icon fa-export'></span>Carry</button> </div> <</if>> <<else>> <div class="tab inventory"> <button class="link-internal macro-button buttonDisabled" disabled><<="<span class='fa-icon fa-trash'></span> Discard">></button> </div> <div class="tab inventory"> <button class="link-internal macro-button buttonDisabled" disabled><<="<span class='fa-icon fa-export'></span> Carry">></button> </div> <</if>> </div> </div> </div> <</widget>> <<widget "childrenToysUIReplace">> <<replace "#childrenToysUI">> <<childrenToysUI>> <</replace>> <</widget>><<effects>> <<childSelect $childActivityEvent.childid>> <<childAge $childActivityEvent.childid>> <<childInteratedWith>> <<set $children[$childActivityEvent.childid].localVariables.event to false>> <<switch $childActivityEvent.event>> /*Human Specific*/ <<case "transfixed">> You stand over <<childname>> and watch <<childhim>> sleep. You're transfixed by <<childhis>> chest, rising and fallen with gentle breaths. <<case "stroke">> You stand over <<childname>> and watch <<childhim>> sleep. You find yourself stroking <<childhis>> head. <<case "yawn">> You stand over <<childname>> and watch <<childhim>> sleep. <<childHe>> opens <<childhis>> mouth in a big yawn and stretches.<<lstress>><<stress -6>> <<case "murmur">> You stand over <<childname>> and watch <<childhim>> sleep. <<childHe>> murmurs and scrunches <<childhis>> features, as if having a bad dream.<<gstress>><<stress 6>> <<case "cotNap">> You decide to have a nap and lie in the bed beside <<childname>>. <br><br> You wake up sometime later with something wrapped around your finger. While still asleep, it seems that <<childname>>'s <<childhand>> was able to reach you.<<ltiredness>><<tiredness -3>> <<case "shiverInCot">> <<childname>> sleeps by <<childherself>>, shivering with every unconscious breath. You tuck <<childhim>> in with a nearby baby blanket. <<childHe>>'s soon sleeping peacefully.<<lstress>><<stress -6>> <<case "restlessSleep">> <<childname>> is restless in <<childhis>> sleep. You lie down beside <<childhim>> and pull <<childhim>> against your chest. You hold <<childhim>> until <<childhe>> calms down. As you move to stand, <<childhe>> grasps your finger tight in <<childhis>> small hands. You snuggle for a while longer, before easing <<childhis>> hold on you and getting back to your feet.<<ltiredness>><<tiredness -6>><<llstress>><<stress -10>> <<set $children[$childActivityEvent.childid].localVariables.activity to "sleeping">> <<case "waveTongue">> You smile down at <<childname>>. You wave your hands and stick your tongue out, making several different faces in an attempt to catch <<childhis>> attention. <<childHe>> studies your expressions with curiosity. <<childHe>> is trying to imitate you, but you're unsure if it's just a reflex. <<case "handsClap">> You bring <<childname>>'s feet to <<childhis>> hands, moving them around and occasionally clapping them together. You give <<childhis>> body a gentle massage, from <<childhis>> toes, to <<childhis>> back, then all the way to <<childhis>> fingertips. You shower <<childhis>> frame in affectionate touches. <<childHe>> smiles in response to your broad grin. <<case "peekaboo">> You cover your face with both hands, then uncover it a few seconds later. <<childname>> peers up at you. <<childHe>> smiles when your eyes meet.<<lstress>><<stress -6>> <<case "blowRaspberriesHappy">> You tickle <<childname>> and blow raspberries on <<childhis>> stomach. <<childHe>> responds by interrupting <<childhis>> cries and laughs instead, flapping <<childhis>> arms and legs in joy.<<lstress>><<stress -6>> <<case "blowRaspberriesUpset">> You tickle <<childname>> and blow raspberries on <<childhis>> stomach. <<childHis>> cries become louder as <<childhe>> turns <<childhis>> head from side to side and squirms away. <<childHe>> seems upset over the treatment.<<gstress>><<stress 6>> <<case "faceStudy">> You get closer to <<childname>>, so <<childhe>> can study your face and its features. <<childHe>> stops crying for a moment, only to grab your hair and pull it.<<gpain>><<pain 4>> <<case "rockToSleep">> You scoop the <<childtype>> up in your arms and walk while gently rocking <<childhim>> side to side and humming softly. Soon <<childhe>> calms down and falls fast asleep in your arms. You gingerly lay <<childhim>> down in the cot to rest. <<lstress>><<stress -5>> <<set $children[$childActivityEvent.childid].localVariables.activity to "sleeping">> <<case "holdToShoulder">> You lift the <<childtype>>. <<childHe>> seems to realise your intent and wraps <<childhis>> <<childhands>> around your neck while leaning on your shoulder. You bob <<childhim>> up to down, until <<childhe>> falls asleep in your arms.<<lstress>><<stress -5>> <<set $children[$childActivityEvent.childid].localVariables.activity to "sleeping">> <<case "melodicLullaby">> You scoop up the <<childtype>>. You hum a melodic lullaby, rubbing <<childname>>'s back as you gently sway to the tune. The familiarity of your voice seems to soothe <<childhis>> mood. <<childHe>> coos at you.<<ltrauma>><<lstress>><<trauma -6>><<stress -6>> <<case "foreheadKiss">> You scoop up the <<childtype>>. You place a soft kiss on <<childhis>> forehead and give <<childhim>> as much skin-to-skin contact as you can. The action encourages <<childhim>> to lift <<childhis>> head and reward you with a smile.<<ltrauma>><<lstress>><<trauma -6>><<stress -6>> <<case "objectShow">> You scoop up the <<childtype>>. You give <<childname>> a few different objects to look at. You explain the colours, shapes, and textures of things that you see around you. <<childHe>> reaches out to touch, curious to explore <<childhis>> environment. You make sure <<childhe>> doesn't try to grasp anything too heavy or awkward.<<gstress>><<stress 6>> <<case "carryRevolt">> You scoop up the <<childtype>>. <<childHe>> revolts against being carried, and <<childhe>> kicks <<childhis>> legs. The longer you hold <<childhim>>, the more intense <<childhis>> cries become. Some of <<childhis>> kicks connect.<<gpain>><<gstress>><<pain 4>><<stress 6>> <<case "nurseryRhymes">> You recite a few nursery rhymes you remember from long ago. <<childHe>> looks alert as <<childhe>> listens to your voice. You make a few different tones and wait for <<childhis>> reaction. It seems to you like <<childhe>> recognises certain sounds and changes <<childhis>> expression accordingly. After a few more moments, <<childhe>> breaks eye contact and sucks on <<childhis>> thumb. <<case "FeetCup">> You gently cup <<childname>>'s right foot and count <<childhis>> toes, wriggling them before moving on to <<childhis>> next foot. <<childHe>> quiets, watching you with wide eyes as you move your finger from one toe to the next. <<case "shareThoughts">> You chat to <<childname>>, sharing your thoughts and waiting for a response. <<childHe>> doesn't seem to be paying much attention however.<<gstress>><<stress 6>> <<case "speakCry">> You speak to your baby, but <<childhis>> cries drown your words. <<childHis>> face turns a deeper shade of red with every minute you spend trying to talk to <<childhim>>.<<gstress>><<stress 6>> <<case "smilesAndLaughs">> You take <<childname>> in your arms, hoisting <<childhim>> to eye-level. The <<childtype>> is wide-eyed at the change at first, but then smiles and laughs. You repeat this several times, and soon have <<childhim>> laughing so hard that you can't help but smile yourself.<<llstress>><<stress -12>> <<case "talking">> You side beside <<childname>> and begin to converse with <<childhim>>. <<childHe>> gives no indication of understanding you, but smiles at your presence and seems excited by your voice. Soon enough however, <<childhe>> becomes distracted by <<childhis>> own hands and falls silent. You get back on your feet.<<lstress>><<stress -6>> <<set $children[$childActivityEvent.childid].localVariables.activity to "thumbSucking">> <<set $children[$childActivityEvent.childid].localVariables.talking++>> <<case "talking2">> You sit beside <<childname>> and begin to converse with <<childhim>>. <<childHe>> gives no indication of understanding you, but smiles at your presence and tries to mimic your sounds. <<childHe>> soon becomes distracted by <<childhis>> hands however and falls silent. You get back on your feet.<<llstress>><<stress -12>> <<set $children[$childActivityEvent.childid].localVariables.activity to "thumbSucking">> <<case "batheGentle">> <<wearProp "rag" "white">> You fill a small tub with warm water and prepare the towels and a new nappy beforehand. You take <<childname>> in your arms gently and carry <<childhim>> to the bathtub, making sure to put <<childhim>> in a safe position. <br><br> Next, you rub <<childname>> gently with the warm water, making sure to clean between the folds of skin, and holding <<childhis>> little body with one hand. The softness of <<childhis>> skin as you rub makes you feel extremely at ease. The baby seems to be tickled by your touches and swings <<childhis>> legs in the water, making some of it splash on your clothes and face. You can't help but smile at the situation.<<ltrauma>><<trauma -6>> <br><br> You finish bathing <<childhim>>, lay <<childhim>> on a towel, and dry <<childhis>> body with softer fabric. You finish by changing <<childhis>> nappy and putting <<childhim>> back in <<childhis>> crib. <<set $children[$childActivityEvent.childid].localVariables.activity to "sleeping">> <<case "batheShampoo">> <<wearProp "soap">> You fill a small tub with warm water and prepare the towels and a new nappy beforehand. You take <<childname>> in your arms gently and carry <<childhim>> to the bathtub, making sure to put <<childhim>> in a safe position. <br><br> Next, you gently rub <<childname>>'s head in circular motions with a handful of baby shampoo. The sweet aroma of strawberry fills the ambient, and bubbles begin to appear in the water. Your child seems curious and periodically takes one of <<childhis>> fingers to the bubbles, popping them. <<childHis>> mellow laughter echoes through the room as <<childhe>> is distracted by the foam in the bathtub.<<ltrauma>><<lstress>><<trauma -6>><<stress -6>> <br><br> You finish bathing <<childhim>>, lay <<childhim>> on a towel, and dry <<childhis>> body with softer fabric. You finish by changing <<childhis>> nappy and putting <<childhim>> back in <<childhis>> crib. <<set $children[$childActivityEvent.childid].localVariables.activity to "sleeping">> <<case "BatheCalm">> <<wearProp "soap">> You fill a small tub with warm water and prepare the towels and a new nappy beforehand. You take <<childname>> in your arms gently and carry <<childhim>> to the bathtub, making sure to put <<childhim>> in a safe position. <br><br> Next, you start the bath by trying to soap your baby's body. <<childHe>> doesn't seem to like the feel of water on <<childhis>> skin, let alone seems to be enjoying your attempts to cleanse <<childhim>>. <<childname>> threatens to cry as you continue the bath, but you manage to calm <<childhim>> down after a little effort. <<childHe>> pouts in distaste until the end of the cleaning session. When you're finished, <<childhe>> doesn't seem to want to let you carry <<childhim>> back and makes uncontent sounds when you pick <<childhim>> up.<<gstress>><<stress 6>> <br><br> You finish bathing <<childhim>>, lay <<childhim>> on a towel and dry <<childhis>> body with softer fabric. You finish by changing <<childhis>> nappy and putting <<childhim>> back in <<childhis>> crib. <<set $children[$childActivityEvent.childid].localVariables.activity to "sleeping">> <<case "batheTantrum">> <<wearProp "rag" "white">> You fill a small tub with warm water and prepare the towels and a new nappy beforehand. You take <<childname>> in your arms gently and carry <<childhim>> to the bathtub, making sure to put <<childhim>> in a safe position. <br><br> Just touching the water makes <<childname>> let out a high-pitched, incessant cry. <<childHe>> flails <<childhis>> legs and arms into the water trying to get free as you struggle to rub <<childhim>> properly. Water splashes quickly soak your clothes. <<childHe>> continues throwing a tantrum until the end of the bath, leaving you with a headache.<<gstress>><<stress 6>> <br><br> You finish bathing <<childhim>>, lay <<childhim>> on a towel and dry <<childhis>> body with softer fabric. You finish by changing <<childhis>> nappy and putting <<childhim>> back in <<childhis>> crib. <<set $children[$childActivityEvent.childid].localVariables.activity to "sleeping">> <<case "nappyChange">> <<wearProp "rag" "white">> <<childname>> looks uncomfortable. You notice a telling stink, so you fetch a nappy and lay <<childhim>> flat. You remove the old nappy and clean the <<childtype>>'s bottom diligently before giving <<childhim>> a fresh one. Clean and changed, <<childname>> looks up at you and smiles.<<lstress>><<stress -3>> <<set $children[$childActivityEvent.childid].localVariables.activity to "sleeping">> <<case "crawlingAttempt">> You approach <<childname>>. <<childHe>> lies on <<childhis>> belly, trying to move <<childherself>>. You side beside <<childhim>>, take <<childhis>> hands in your own, and hold them to the ground to give <<childhim>> leverage. With your help, <<childhe>> manages to pull <<childhimself>> across the floor, bewildered and amused by <<childhis>> mobility. <<childHe>> gets the hang of it after a while, and you leave <<childhim>> to clumsily crawl on <<childhis>> own.<<lstress>><<stress -6>> <<set $children[$childActivityEvent.childid].localVariables.activity to "sleeping">> <<set $children[$childActivityEvent.childid].localVariables.crawling++>> <<case "crawlingAttempt2">> You take the <<childtype>>'s hands in your own and hoist <<childhim>> up, leaving only <<childhis>> feet on the ground. <<childHe>>'s confused at first, flailing <<childhis>> legs until <<childhe>> snags the ground with a kick and propels <<childherself>> forwards. <<childHis>> eyes widen at the revelation, and soon enough, with some effort and failed attempts, you have <<childhim>> moving with <<childhis>> own legs. With your help keeping <<childhim>> upright, of course. <<childHe>> grows tired after a while, and you let <<childhim>> down again.<<llstress>><<stress -10>> <<set $children[$childActivityEvent.childid].localVariables.activity to "sleeping">> <<case "grumpyChild">> <<childname>> sits alone, wearing a scowl on <<childhis>> infant face. You sit beside <<childhim>>, but <<childhe>> ignores you. Unable to help but smile at the grumpy child's expression, you begin to tickle <<childhim>>. <<childHe>>'s not ticklish, but is amused by your teasing fingers and the silly noises you make as you playfully attack <<childhis>> sides. The scowl is soon gone, and <<childhe>> giggles and smiles instead. Mission accomplished.<<lstress>><<stress -6>> <<set $children[$childActivityEvent.childid].localVariables.activity to "thumbSucking">> <<case "readingAttempt">> <<wearProp "open book" 0 "storybook">> You sit beside <<childname>> and pull <<childhim>> and the inverted book into your lap. You flip it open and begin to read the simple words to <<childhim>>. <<childHe>> follows along both your voice and the colourful pictures for a while, until <<childhe>> becomes distracted and rolls off your lap.<<lstress>><<stress -6>> <<set $children[$childActivityEvent.childid].localVariables.activity to "readingCorrected">> <<case "babyRattle">> <<wearProp "rattle">> You sit beside <<childname>>. <<childHe>>'s looking down at a <<childtoy $location $childActivityEvent.toyid "lowercase">>. You take it in hand and give it a shake, causing a cacophany of rattles. The <<childtype>> looks bewildered and intrigued and reaches for this strange object. You give the <<childtoy $location $childActivityEvent.toyid "lowercase">> one last shake before handing it over for the <<childtype>> to experiment with. <<if _childTotalDays lte 40>> <<childHe>> simply drops it to the floor. <<elseif _childTotalDays lte 95 + random(0,20)>> <<childHe>> attempts to put the rattle into <<childhis>> mouth, but drops it to the floor after being unable to. <<else>> <<childHe>> starts give it a rattle while giggling. <</if>> <<lstress>><<stress -5>><<ltrauma>><<trauma -2>> <<case "teddyBear">> You tuck the <<childtoy $location $childActivityEvent.toyid "lowercase">> into <<childname>>'s arms. <<childHe>> grasps it tight and nuzzles against it. <<childHe>> is soon asleep again. You spend a few calming moments watching <<childhim>>.<<ltrauma>><<trauma -6>><<lstress>><<stress -6>> <<if _toyid>> <<set $children[$childActivityEvent.childid].localVariables.activity to "teddyBear2">> <<set $children[$childActivityEvent.childid].localVariables.toy to clone(_toyName)>> <<switch _toyName>> <<case "red robot">><<wearProp "robot" "red">> <<case "green robot">><<wearProp "robot" "green">> <<case "baby doll">><<wearProp "baby doll">> <<case "clown">><<wearProp "clown toy">> <<case "Mr Teddy">><<wearProp "bear" 0 "mr teddy">> <<case "Mrs Teddy">><<wearProp "bear" 0 "mrs teddy">> <<default>><<wearProp "bear" 0 "teddy">> <</switch>> <</if>> <<case "toyCar">> <<wearProp "car">> You sit beside <<childname>> and take the <<childtoy $location $childActivityEvent.toyid "lowercase">> from <<childhis>> flailing hands. You place it on the floor and roll it back and forth. "Vroom! Vroom!" you say, rolling it back and forth as <<childname>> watches, enraptured. You hand <<childhim>> the toy. <br><br> <<if _childTotalDays lte 120 + random(0,20)>> <<childHe>> drops it on the floor before looking back at you. You can't help but smile as you climb to your feet again. <<else>> <<childHe>> looks at it with curiosity before mimicking your actions, making excited attempts to copy your sounds. You can't help but smile as you climb to your feet again. <</if>> <<lstress>><<stress -5>><<ltrauma>><<trauma -2>> <<case "dummy">> <<wearProp "dummy">> <<set _rng to random(1,100)>> You rush over to <<childname>> and notice that <<childhis>> <<childtoy $location $childActivityEvent.toyid "lowercase">> lies on the floor beside <<childhim>>. <br><br> <<if $children[$childActivityEvent.childid].localVariables.acceptsDummy isnot false>> You pick up the dummy, clean it off with the hem of your <<top>>, lift the <<childtype>> into your arms and attempt to pacify <<childhim>>. <br><br> <</if>> <<if $childActivityEvent.childCry lt 4 and (_rng lte 75 or $children[$childActivityEvent.childid].localVariables.acceptsDummy is true)>> <<childname>> takes a few moments to latch onto the <<childtoy $location $childActivityEvent.toyid "lowercase">>, but sucks loudly once <<childhe>> does. <<childHe>> is soon pacified once again. You deposit <<childhim>> on the floor.<<lstress>><<stress -6>> <<set $children[$childActivityEvent.childid].localVariables.activity to "dummySucking">> <<set $children[$childActivityEvent.childid].localVariables.acceptsDummy to true>> <<elseif $childActivityEvent.childCry is 4 and $children[$childActivityEvent.childid].localVariables.acceptsDummy isnot false>> Despite your attempts, the <<childcry $childActivityEvent.childCry>> <<childname>> is crying and wiggling around too much to take the <<childtoy $location $childActivityEvent.toyid "lowercase">>. You abandon the attempt and instead begin to rock and soothe the <<childtype>> with soft coos and gentle humming. It's exhausting, but <<childhe>> soon calms down and nuzzles into your chest, the emotional distress and your tender parental attentions get the better of <<childhim>> and <<childhe>> falls asleep. <<gstress>><<stress 10>><<gtiredness>><<tiredness 5>> <br><br> You lay <<childname>> down to take <<childhis>> nap in peace. <<set $children[$childActivityEvent.childid].localVariables.activity to "sleeping">> <<elseif $childActivityEvent.childCry lt 4 and $children[$childActivityEvent.childid].localVariables.acceptsDummy isnot false>> Despite your attempts, the <<childcry $childActivityEvent.childCry>> <<childname>> refuses to take the <<childtoy $location $childActivityEvent.toyid "lowercase">>. You abandon the attempt and instead begin to rock and soothe the <<childtype>> with soft coos and gentle humming. It's exhausting, but <<childhe>> soon calms down and nuzzles into your chest, the emotional distress and your tender parental attentions get the better of <<childhim>> and <<childhe>> falls asleep. <<gstress>><<stress 10>><<gtiredness>><<tiredness 5>> <br><br> You lay <<childname>> down to take <<childhis>> nap in peace. <<set $children[$childActivityEvent.childid].localVariables.acceptsDummy to false>> <<set $children[$childActivityEvent.childid].localVariables.activity to "sleeping">> <<else>> Knowing that <<childname>> will refuse the dummy, you begin to rock and soothe the <<childtype>> with soft coos and gentle humming. It's exhausting, but eventually <<childhe>> calms down and nuzzles into your chest, the emotional distress and your tender parental attentions get the better of <<childhim>> and <<childhe>> falls asleep. <<gtiredness>><<tiredness 5>> <br><br> You lay <<childname>> down to take <<childhis>> nap in peace. <<set $children[$childActivityEvent.childid].localVariables.activity to "sleeping">> <</if>> <<case "clown">> <<set _rng to random(0,2)>> <<set _output to ["happy","quiet","terrifying"]>> You sit beside <<childname>>, pick up the toy <<childtoy $location $childActivityEvent.toyid "lowercase">>, and show it to <<childhim>>. <<childHe>> stares at the <<childtoy $location $childActivityEvent.toyid "lowercase">>, unsure what to make of it. You pull on the string, and the clown lets out a <<print _output[_rng]>> chuckle. <br><br> <<if _childTotalDays lte 105 + random(0,20)>> <<childHe>> looks at the toy briefly before looking back up to you. You place it on the floor, stand up, and leave the <<childtype>> to play. <<lstress>><<stress -3>><<ltrauma>><<trauma -3>> <<elseif random(0,100) lt 80>> The <<childtype>> bursts into a giggling fit and reaches for the <<childtoy $location $childActivityEvent.toyid "lowercase">>. You hand it over, stand up, and leave the <<childtype>> to play. <<lstress>><<stress -3>><<ltrauma>><<trauma -3>> <<set $children[$childActivityEvent.childid].localVariables.activity to "clownHappy">> <<else>> The <<childtype>> bursts into tears and begins <<childcry 4>>. You can't blame <<childhim>>. <<gstress>><<stress 6>><<gtrauma>><<trauma 3>> <<set $children[$childActivityEvent.childid].localVariables.activity to "crying">> <</if>> /*NPCs*/ <<case "Robin">> <<npc "Robin">><<person1>> You approach Robin. <<childname>> snuggles up to <<him>>. They both giggle. <<if $childSelected.mother is "pc">> <<set _playerRole to "mummy">> <<elseif $childSelected.father is "pc">> <<set _playerRole to "daddy">> <<elseif $player.gender_appearance is "m">> <<set _playerRole to "daddy">> <<else>> <<set _playerRole to "mummy">> <</if>> <<switch random(1, 5)>> <<case 1>> "I think someone missed you," Robin says, passing you the <<childtype>>. <<case 2>> "So cute!" Robin says, passing you the <<childtype>>. <<case 3>> "Look," Robin says. "It's _playerRole." <<He>> passes you the <<childtype>>. <<case 4>> "Can you say, '_playerRole'?" Robin asks, watching the <<childtype>>. <<childHe>> responds with an inarticulate gurgle. Robin passes <<childhim>> to you. <<default>> "Can you point at _playerRole?" Robin asks the <<childtype>>. <<childHe>> doesn't point, but does look at you. Robin passes <<childhim>> over. <</switch>> <br><br> You hold <<childname>> in your arms while Robin leans in to talk. The <<childtype>> smiles alternatively at you and Robin. <<case "Wraith">> You watch in confusion as <<childname>> waves <<childhis>> hands around in happiness, cooing at thin air and reaching for nothing. <<if C.npc["Ivory Wraith"].love lte 5>> You scoop <<childhim>> up, expecting <<childhim>> to quiet down, but <<childhe>> continues to flap <<childhis>> little arms around. <br><br> You shiver as a chill runs down your spine. You fear you might not be alone, a familiar ringing in your ears making you tense up. <<stress 12>><<ggstress>> <br><br> <<childname>>'s laughter breaks the silence, forcing your thoughts to cease their racing. You look down at <<childhim>> and sigh. You manage a small smile, simply relieved that <<childhe>> seems happy. <<else>> Something starts to take shape above <<childhim>>. Something a terrible, familiar pale. You slowly and quietly approach <<childname>>'s crib, your eyes locked on the intruder. Your heart begins to pound. It's already picked <<childname>> up, slowly turning to you. You take a breath and brace yourself. <<ggstress>> <br><br> However, the pale figure's expression is calm. Serene, even. It holds <<childname>> tenderly and hums a soothing melody. It floats over to you, pressing its forehead to yours. A hand caresses your cheek. You look down at <<childname>>. <<childHe>> happily coos, reaching for you and smiling. <br><br> "<span class="wraith">Beautiful... So, so beautiful,</span>" it whispers, stroking <<childname>>'s hair. <<if $wraith.state is "haunt">> "<span class="wraith">An omen.</span>" <<lobsession 1>> <<elseif $wraith.state is "despair">> "<span class="wraith">A beacon of salvation amidst drowning despair.</span>" <<npcincr "Ivory Wraith" love 1>><<glove>><<gobsession 1>> <<else>> "<span class="wraith">A blessing.</span>" <<npcincr "Ivory Wraith" love 1>><<glove>> <</if>> <br><br> You can feel its palpable love for <<childname>>. Your heart almost skips a beat as the baby yawns and clings to the pale figure as <<childhe>> would to you. You're filled with relief. <<llstress>><<stress -12>> <br><br> The pale figure leans down, gingerly pressing a kiss to each of <<childhis>> cheeks. You can hear <<childhim>> giggle as <<childhe>> toys with a strand of the pale figure's silver hair. It cradles <<childhim>> close for just a moment longer, reluctant to let go. It then places <<childhim>> in your arms and floats to your other side, smiling. <br><br> You feel a pair of arms wrap around your shoulders, and a loving gaze on both you and <<childname>>. It continues to hum as its body flickers. The melody fades. You turn to look at it, but it has already disappeared. You look at <<childname>>. <<childHe>>'s fallen asleep. <<set $children[$childActivityEvent.childid].localVariables.activity to "sleeping">> <</if>> /*Wolf Specific*/ <<case "sleepingStroke">> You sit beside the slumbering <<childtype>> and stroke <<childhis>> fur. <<childHe>> snorts and pushes into your caressing hand. You spend a few moments together before rising to your feet. <<lstress>><<stress -5>> <<case "cuddleAndNap">> The <<wolf_cave_singular>> looks at you as you lie down beside it and <<childname>>. The sleepy pair adjust to make room for you, and you're soon snuggled close together. You enjoy this comfortable moment for a while, before rising to your feet. <<ltiredness>><<tiredness -6>><<lstress>><<stress -5>> <<case "cryingWolf">> You sit by the <<childcry>> <<childtype>> and pull <<childhim>> into your lap. You hum, soothe, and stroke the <<childtype>>'s fur, giving the occasional soft scratch to <<childhis>> ears. <<childname>> calms and begins to doze under your gentle attention. You gingerly place the sleeping <<childtype>> down and stand again. <<set $children[$childActivityEvent.childid].localVariables.activity to "sleeping">> <<case "playing">> You drop to all fours and join <<childname>> and the playing pups with enthusiasm. You encourage excitement and activity in your <<childtype>>, as well as the others, and try to keep the play friendly and safe. Exhausted, the pups take a moment to rest. You kiss <<childname>> on the head before climbing to your feet. <<lstress>><<stress -6>> <<set $children[$childActivityEvent.childid].localVariables.activity to "sleeping">> <<case "curiousGaze">> You follow <<childname>>'s gaze to your legs. You walk in a circle. <<childHis>> eyes never leave your feet. Amused, you take a quick walk around the cave and the <<childtype>> follows you as best it can, transfixed by your movement. Eventually, <<childname>> grows bored and lies down to rest, <<childhis>> curiosity sated. <<llstress>><<stress -10>> <<set $children[$childActivityEvent.childid].localVariables.activity to "sleeping">> <<case"longingGaze">> Noticing your <<childtype>>'s longing gaze, you reach between <<childhis>> ears and give <<childhim>> a gentle scratch. <<childname>>'s tongue lolls from <<childhis>> mouth, and <<childhe>> pants happily as you scritch <<childhis>> ears. <<childHe>> gives you a sad look when you finish. <<case"playFighting">> You keep a close eye on the two as they tussle playfully. Slowly, they grow tired of each other and playful nips and yips turn into snaps and growls. You separate <<childname>> from <<childhis>> playmate before it can escalate further, ensuring each has a break from the other. They are soon playing in an amiable fashion once again. <<set $children[$childActivityEvent.childid].localVariables.activity to "playing">> <<case "fieldTrip">> You see <<childname>> looking outside the cave with curiosity. <<childHis>> fascination with the outside world isn't even broken when you bend down and pick <<childhim>> up. You walk outside and take a quick tour of the surrounding area. The <<childtype>>'s eyes widen, scanning over anything and everything with great interest. You finish sating <<childname>>'s curiosity and deposit <<childhim>> back in the cave. <<llstress>><<stress -10>> <<set $children[$childActivityEvent.childid].localVariables.activity to "sleeping">> <<case "grumpyWolf">> <<childname>> growls at your approach. You flip the grumpy <<childtype>> on <<childhis>> back and rub <<childhis>> belly. The <<childtype>> resists at first, but soon gives in, panting and yipping happily. You leave <<childname>> more cheerful than you found <<childhim>>.<<lstress>><<stress -6>> <<set $children[$childActivityEvent.childid].localVariables.activity to "playing">> <<case "hungryWolf">> You approach <<childname>>. <<childHe>>'s trying to find a way through the other pups, trying to reach the female <<wolf_cave_singular "f">>'s nipples to feed. <br><br> You pick <<childhim>> up and pet <<childhim>>, keeping the <<childcry>> <<childtype>>'s attention off <<childhis>> hunger. Soon enough, several feeding pups finish, making room. The <<childtype>> latches on, eager and greedy.<<lstress>><<stress -6>> <<set $children[$childActivityEvent.childid].localVariables.activity to "sleeping">> <<case "gnawing">> You sit next to <<childname>> and grab ahold of the $pupToy. <<childHe>> growls as you gently pull on the makeshift toy and tugs it back. You continue tugging the $pupToy back and forth before finally letting <<childhim>> win. <<childname>> yips joyfully as <<childhe>> claims <<childhis>> prize and resumes playing with it, tail wagging with excitement. <br><br> Another pup, noticing your game, approaches <<childname>> and attempts to grab the $pupToy. You keep a close eye on the two of them, but thankfully, <<childname>>'s playmate doesn't seem interested in actually stealing the toy from <<childhim>>. You smile as the pups play tug-of-war together before standing up and leaving them to their own devices. <<set $children[$childActivityEvent.childid].localVariables.activity to "playing">> <<case "squeakyToy">> <<switch $phase>> <<case "squeaky sheep">><<wearProp "chew toy" 0 "sheep">><<set _squeakyToy to "squeaky sheep">> <<default>><<wearProp "chew toy" 0 "chicken">><<set _squeakyToy to "squeaky chicken">> <</switch>> You pick up the _squeakyToy and sit next to <<childname>>. <<childHe>> immediately sinks <<childhis>> fangs into it. The toy lets out a loud squeak in protest. You startle at the sudden sound, and <<childname>> yelps in surprise. <<gstress>><<stress 6>> <br><br> <<childHe>> drops the toy and looks at it with distrust. You spend the next several moments trying to reassure <<childhim>>. <<childHe>> calms down, but doesn't want to play with the _squeakyToy anymore. You decide to leave it be for now. <<set $children[$childActivityEvent.childid].localVariables.activity to "playing">> <<case "squeakyToy2">> <<if $leftarm is "bound" and $rightarm is "bound">> You struggle to pick up the <<= $phase>> with your bound hands, let alone make it squeak. By the time you manage to grasp it, <<childname>> has already left. <<elseif random(1, 3) is 1>> You pick up the <<= $phase>> and give it a squeeze. <<childname>>'s ears perk up as it squeaks. After squeezing it again, the <<childtype>> jumps for the <<= $phase>>. <<childHe>> repeatedly bites the toy, delighted with the sounds it makes. <<stress -6>><<trauma -6>><<lstress>><<ltrauma>><<gferocity>> <<elseif random(1, 3) is 2>> You give the <<= $phase>> a squeeze. The <<childtype>> takes a step back. You give the toy another squeeze, and <<childhe>> bolts away from you. <<trauma 6>><<gtrauma>><<lferocity>> <<else>> <<getChildrenIds `{location:"wolf_cave"}`>> <<set _childrenTotal to _childrenIds.length>> You hold the <<= $phase>> out. When <<childname>> sniffs it, you give it a squeeze. <<childHe>> throws <<childhis>> head back and howls. <br><br> <<if random(1, 3) is 1 and _childrenTotal gte 2>> <<set _child1 to $childActivityEvent.childid>> <<set _childrenIds to _childrenIds.filter(childid => childid !== _child1)>> <<set _child2 to _childrenIds.pluck()>> You squeak the toy again. This time <<childhis>> <<childsibling _child2>> rushes over and howls too. <br><br> <<if random(1, 2) is 1 and _childrenTotal gte 3>> <<set _child3 to _childrenIds.pluck()>> You keep squeaking the toy, drawing the attention of another <<childSelect _child3>><<childtype>>. Soon you have a choir of pups howling together in unison with the <<= $phase>>. <<stress -6>><<trauma -6>><<lstress>><<ltrauma>><<gharmony>> <<else>> You keep squeaking the toy, and they howl every time. Eventually one of them grabs the <<= $phase>> and runs off. It squeaks with every step. <<stress -6>><<trauma -6>><<lstress>><<ltrauma>><<gharmony>> <</if>> <<elseif random(1, 3) is 2>> You squeak the toy again. Instead of howling this time, the <<childtype>> watches the <<= $phase>> with wary intensity. At a third squeak, <<childhe>> snarls. You put the <<= $phase>> down. <<stress 6>><<gstress>><<gferocity>> <<else>> You squeak the <<= $phase>> again, and the <<childtype>> lets out another howl with a wag of <<childhis>> tail. For the next few minutes, <<childhe>> howls in harmony every time you squeak the toy for <<childhim>>. <<stress -6>><<trauma -6>><<lstress>><<ltrauma>><<gharmony>> <</if>> <</if>> <<case "chewBone">> <<wearProp "chew toy" 0 "bone">> You sit next to <<childname>> and start digging alongside <<childhim>>. The dirt is hard, but you manage to make a shallow hole. <<childname>> picks up a toy bone and drops it in the hole. You sit back and watch as <<childhe>> buries it. After pushing the unearthed dirt back into the hole, <<childhe>> sits on the mound. <br><br> <<switch random(1, 2)>> <<case 1>> You move to scritch <<childhis>> ears, but <<childhe>> gives a warning growl. <<childHe>>'s clearly preoccupied with protecting <<childhis>> bone. You back away, and <<childhe>> settles down. <<gstress>><<stress 6>> <<default>> You scritch <<childhis>> ears before standing up, and <<childhe>> gives a happy bark. <<lstress>><<stress -6>> <</switch>> <<case "chewBone2">> <<switch random(1, 3)>> <<case 1>> You nudge the bone closer to <<childname>>. <<childHe>> stops and stares at it. You nudge it closer, and <<childhe>> chomps down on it before pulling it away. The <<childtype>> continues to gnaw on it for several minutes. <<stress -6>><<lstress>> <<case 2>> You nudge the bone closer to <<childname>>. <<childHe>> jumps with a startled yelp, then chomps down on the bone and aggressively shakes it. <<gferocity>> <<default>> You nudge the bone closer to <<childname>>. <<childHe>> chomps down on the bone and runs off with <<childhis>> tail wagging. <br><br> <<link [[Let <<childhim>> go|Wolf Children Chew Bone]]>><<set $phase to 0>><</link>> <br> <<if $leftleg isnot "bound" and $rightleg isnot "bound">> <<link [[Chase|Wolf Children Chew Bone]]>><<set $phase to 1>><</link>> <br> <</if>> <<exit>> <</switch>> <<case "chewRope">> <<wearProp "chew toy" 0 "rope">> You sit next to <<childname>> and grab ahold of the rope. <<childHe>> growls as you gently pull on the toy and tugs it back. You continue tugging the rope back and forth before finally letting <<childhim>> win. <<childname>> yips joyfully as <<childhe>> claims <<childhis>> prize, tail wagging with excitement. <br><br> <<childHe>> rolls onto <<childhis>> back and holds the rope with <<childhis>> <<childhands>>, chewing on it with renewed gusto. You smile as you stand back up. <<lstress>><<stress -6>> <<set $children[$childActivityEvent.childid].localVariables.activity to "playing">> <<case "chewRope2">> <<getChildrenIds `{location:"wolf_cave"}`>> <<set _childrenTotal to _childrenIds.length>> <<if $leftarm is "bound" and $rightarm is "bound">> You struggle to grasp the rope with your bound hands. <<childname>> watches curiously for a moment, but soon bores of watching and runs off to play elsewhere. <<elseif random(1, 3) is 1 and _childrenTotal gte 2 and !$worn.face.type.includes("gag")>> <<set _child1 to $childActivityEvent.childid>> <<set _childrenIds to _childrenIds.filter(childid => childid !== _child1)>> <<set $childActivityEvent.childid2 to _childrenIds.pluck()>> <<set _child2 to $childActivityEvent.childid2>> You pull the rope away from <<childname>>. <<childHe>> goes to jump for it, but <<childhis>> <<childsibling _child2>> jumps in and beats <<childhim>> to it. <br><br> <<link [[Play with first <<childtype>>|Wolf Children Chew Rope]]>><<set $phase to 0>><</link>> <br> <<link [[Play with second <<childSelect _child2>><<childtype>>|Wolf Children Chew Rope]]>><<set $phase to 1>><</link>> <br> <<link [[Play with both|Wolf Children Chew Rope]]>><<set $phase to 2>><</link>> <<exit>> <<elseif random(1,3) is 2>> You pull the rope away from <<childname>>. <<childHe>> turns away, uninterested. <<else>> You pull the rope away from <<childname>>. <<childHe>> instantly jumps at it and bites down. You continue to pull, and the <<childtype>> tugs back in return. <<childHe>> gives a little growl as you tow <<childhim>> along. Soon <<childhe>> wears out and drops the rope. <<lstress>><<ltrauma>><<gferocity>><<stress -6>><<trauma -6>> <</if>> <<case "rollBall">> <<wearProp "chew toy" 0 "ball">> <<childname>> gives an enthusiastic bark as you pick up the ball. You gently roll it towards <<childhim>>. <<childHe>> <<= either("manages to catch it", "fumbles around with the ball", "stares at it")>> before rolling it back towards you <<if $children[$childSelected.childId].type is "wolf">>with <<childhis>> snout<<else>>with <<childhis>> tiny <<childhands>><</if>>. <br><br> You pass the ball back and forth for a bit, until <<childhe>>'s tuckered out. <<childHe>> curls up around the ball and falls asleep. You pet <<childhis>> head and stand up. <<lstress>><<stress -6>> <<set $children[$childActivityEvent.childid].localVariables.activity to "sleeping">> <<case "rollBall2">> <<if $leftarm is "bound" and $rightarm is "bound">> You struggle to grasp the ball with your hands bound, but eventually manage to pick it up. When you attempt to throw it, it just falls to the ground. <<childname>> sniffs it, then loses interest and leaves. <<else>> <<switch random(1, 3)>> <<case 1>> <<childname>> becomes overly excited when you pick up the ball. <<childHe>> jumps up and nips your hand in an attempt to reach the toy. <br><br> You cry out in pain and drop the ball. The outburst frightens the <<childtype>>, who runs for cover. <<pain 2>><<trauma 6>><<gpain>><<gtrauma>> <<case 2>> <<childname>> jumps and tries to get the ball back, but misses. <<childHe>> watches closely as you wave the ball in front of <<childhim>>. Right as you wind up to release, <<childhe>> pounces and intercepts the ball. <<childHe>> is delighted with the little game and sinks <<childhis>> teeth into <<childhis>> prize. <<stress -6>><<trauma -6>><<lstress>><<ltrauma>><<gferocity>> <<default>> Picking up the ball instantly grabs <<childname>>'s attention. <<childHe>> watches closely as you wave the ball in front of <<childhim>>. <br><br> <<link [[Toss gently|Wolf Children Roll Ball]]>><<set $phase to 0>><</link>> <br> <<link [[Throw hard|Wolf Children Roll Ball]]>><<set $phase to 1>><</link>> <<exit>> <</switch>> <</if>> /*Hawk Specific*/ <<case "sleepingStrokeHawk">> You climb into the nest with the slumbering <<childtype>> and stroke <<childhis>> <<if _childTotalDays lt 14>> tiny, pinkish feathers. <<else>> feathers. <</if>> <<childHe>> trills and pushes into your caressing hand. You spend a few moments together before rising to your feet. <<lstress>><<stress -5>> <<case "cuddleAndNapHawk">> <<npc "Great Hawk">> <<if $childActivityEvent.otherChildrenIds.length>> <<for _otherChildId range $childActivityEvent.otherChildrenIds>> <<childInteratedWith _otherChildId>> <<set $children[_otherChildId].localVariables.event to false>> <</for>> <<set _otherChildren to $childActivityEvent.otherChildrenIds.length>> <</if>> <<your_bird_text "cap">> nuzzles you as you lie down beside <<if _otherChildren gte 2>> <<bhim>>, <<childname>>, <<childrenNames $childActivityEvent.otherChildrenIds>>. <<elseif _otherChildren>> <<bhim>>, <<childname>> and <<childname $childActivityEvent.otherChildrenIds[0]>>. <<else>> <<bhim>> and <<childname>>. <</if>> <<if _otherChildren gte 2>> You're somehow able to fit within the large number of small bodies, and you're soon snuggled close together. <<elseif _otherChildren>> The trio adjust to make room for you, and you're soon snuggled close together. <<else>> The pair adjust to make room for you, and you're soon snuggled close together. <</if>> <br><br> You enjoy this comfortable moment for a while, before rising to your feet. <<ltiredness>><<tiredness -6>><<lstress>><<stress -5>> <<case "cryingHawk">> You sit by the <<childcry>> <<childtype>> and pull <<childhim>> into your lap. You hum, soothe, and stroke the <<childtype>>'s <<if _childTotalDays lt 14>> tiny, pinkish feathers. <<else>> feathers. <</if>> <<childname>> calms and begins to doze under your gentle attention. You gingerly place the sleeping <<childtype>> down and stand again. <<set $children[$childActivityEvent.childid].localVariables.activity to "sleeping">> <<case "pickUpHawk">> You scoop up the <<childtype>> and hold <<childhim>> close to your chest. The corners of your lips curve up into a dopey smile when you hear <<childhis>> <<if $children[$childActivityEvent.childid].features.monster is "monster">>giggles<<else>>tiny peeps and chirps<</if>>. <<if _childTotalDays lt 14>> <<childname>>'s sweet sounds make your heart flutter as you hold <<childhim>> close. <<else>> <<childname>>'s feathers tickle you as you hold <<childhim>> close. <</if>> <<set $children[$childActivityEvent.childid].localVariables.activity to "sleeping">> <<case "pretendFly">> You hold <<childname>> with both hands and gleefully hoist <<childhim>> up high above your head. <<childname>> looks down at you with sparkling eyes, letting <<childhis>> tiny wings take <<childhim>> on what might as well be a journey and a half in your secure grasp. You smile happily as the <<childtype>> flaps <<childhis>> wings<<if $children[$childActivityEvent.childid].features.monster is "monster">> and arms<</if>>. <br><br> One day, you recall, <<childhe>> will leave your nest and fly free. The thought makes you feel giddy and bittersweet. You hold <<childname>> close and stroke <<childhis>> small body. <<trauma -6>><<ltrauma>> <<set $children[$childActivityEvent.childid].localVariables.activity to "sleeping">> <<case "preen">> <<childname>> seems to be unable to reach feathers that have yet to separate. You take notice and scoop the <<childtype>> up. <<childname>> lets out a small chirp as you run your fingers through <<childhis>> feathers. You begin to tidy up <<childhis>> plumage, twisting interlocked tufts in your fingers to reveal soft, newly grown feathers. <<childname>> looks up at you happily, moving to poke at an idle strand of your hair with <<childhis>> <<childhand>>. You reckon this is <<childhis>> idea of grooming you. <<stress -6>><<lstress>> <<set $children[$childActivityEvent.childid].localVariables.activity to "sleeping">> <<case "perch">> You approach <<childname>>, noticing a discontented expression on <<childhis>> face. <<childHis>> eyes are locked on the tower's ledge. You're able to put two and two together, realising <<childname>> wants to go outside and hear you sing. <br><br> You pick <<childname>> up and make your way over to look down at the <<if Weather.isSnow>>moor, blanketed by snow.<<else>>green moor.<</if>> <<if $bird.state is "home" and ["sing","groom"].includes($bird.activity)>> <<npc "Great Hawk">> You take a seat next to <<your_bird_text>>, who looks to you and <<childname>> with surprise. A grin crosses your face as <<childname>> snuggles into your embrace. <br><br> You take a deep breath and begin to sing. A note leaves your mouth, and then another. You sing a lullaby, which your spouse joins in on. You hold <<childname>> close as you sing, each note growing more and more quiet when you see <<childhis>> eyes growing heavy. As you reach the end of your song, you hear a small <<if $children[$childActivityEvent.childid].features.monster is "monster">>"Wah!"<<else>>peep.<</if>> <br><br> <<childname>> <<if $children[$childActivityEvent.childid].features.monster is "monster">>sings<<else>>trills<</if>> a quiet mimic of your lullaby, nuzzling into your chest. The song doesn't last long before <<childhe>> has fallen asleep. You yearn for the day you'll be able to hear your child's true voice. <<if $monster is 1>> <br><br> "<<childname>> takes after us quickly," <<your_bird_text>> says with a hint of pride. <</if>> <<else>> You take a seat right next to the most scenic overlook of the meadow below, a grin crossing your face as <<childname>> snuggles into your embrace. <br><br> You take a deep breath and begin to sing. A note leaves your mouth, and then another. You sing a lullaby of longing, the melody carried by the breeze to the world below. You hold <<childname>> close as you sing, each note growing more and more quiet when you see <<childhis>> eyes growing heavy. As you reach the end of your song, you hear a small <<if $children[$childActivityEvent.childid].features.monster is "monster">>"Wah!"<<else>>peep<</if>>. <br><br> <<childname>> <<if $children[$childActivityEvent.childid].features.monster is "monster">>sings<<else>>trills<</if>> a quiet mimic of your lullaby, nuzzling into your chest. The song doesn't last long before <<childhe>> has fallen asleep. You yearn for the day you'll be able to hear your child's true voice. <</if>> <<set $children[$childActivityEvent.childid].localVariables.activity to "sleeping">> <<case "bathe">> <<wearProp "rag">> You notice with your sharp eyes that <<childname>> is in need of bathing. You scoop the <<childtype>> into your arms despite <<childhis>> chirps of protest, walking in the direction of the rainwater pool. <br><br> <<if $bird.upgrades.pot is 3 and getBirdBurnTime() gt 0>> You set <<childname>> down gently and playfully splash some water onto <<childhis>> body. <<childHe>> fusses for a moment, but the warm water quickly calms <<childhim>> down. <br><br> <<childHe>> cooperates surprisingly well, letting you scrub the day's dirt and grime from <<childhis>> <<if _childTotalDays lt 14>> tiny pink feathers. Many of them are still stuck together. You take a piece of scrap fabric and dry <<childhim>>. <<else>> feathers. You take a piece of scrap fabric and dry <<childhim>>. <<childHis>> feathers immediately poof out. You can't help but giggle. <<stress -3>><<lstress>> <</if>> <<else>> You set <<childname>> down gently and playfully splash some water onto <<childhis>> body. <<childHe>> shoots you a glare and begins to thrash around in the bath. Rivulets of water splatter over you. <<stress 3>><<gstress>> <br><br> You sigh and begin to stroke <<childhis>> plumage with one hand while you shake your other free of water. <<childname>> looks up at you, having calmed down with the gentle motion of your hand against <<childhis>> small feathers. You smile and wash <<childhim>> clean of the day's dirt and grime. <br><br> When you're done, <<childname>> is squeaky clean, albeit wet and cold. You take some scrap fabric and wrap <<childname>> into a swaddle. You hold <<childhim>> gently in your arms. <<childHe>> seems content, happy to be done with such a hectic bath. Mission accomplished. <</if>> <<set $children[$childActivityEvent.childid].localVariables.activity to "sleeping">> <<case "batheHelp">> You spot <<childname>> dipping <<childhis>> legs into the rainwater pool. You walk over and lift <<childhim>> up, gently placing <<childhim>> all the way into the water. <<childHe>> happily lets you scrub <<childhis>> feathers. <br><br> <<childHe>> starts to splash at the water's surface with <<childhis>> <<childhands>> and <<childgiggles>>. You can't help but crack a smile. <<stress -3>><<lstress>> <br><br> You pull <<childhim>> from the pool. <<if $bird.upgrades.pot is 3 and getBirdBurnTime() gt 0>> <<childHe>> <<if $children[$childActivityEvent.childid].features.monster is "monster">>hugs<<else>>nuzzles<</if>> you, happy with <<childhis>> warm bath. <<else>> <<childHe>> shivers, so you waste no time drying <<childhim>> off. <</if>> <<set $children[$childActivityEvent.childid].localVariables.activity to "sleeping">> <<case "swingToy">> /* currently unreachable. credit writer as Anonymous when properly added */ You come up behind <<childname>> and lift <<childhim>> beneath the <<= $cmonster ? "arms," : "wings,">> setting <<childhim>> on the swing and giving it a little push. <<childHe>> <<= $cmonster ? "giggles" : "chirps">> and flaps <<childhis>> wings in excitement as <<childhe>> tries to swing higher. <<if _childTotalDays lt 14>> The wind rushes right through <<childhis>> undeveloped feathers, and you're easily able to keep control of <<childhis>> swings. <<else>> A couple times, <<childhe>> manages to catch the air with <<childhis>> wings and swing out of your reach. You worry briefly that <<childhe>> might fall, but <<childhe>> keeps <<childhis>> balance and seems all the more excited for how close <<childhe>> gets to taking flight. <</if>> <br><br> <<childHe>> soon grows tired, chirping softly as you pick <<childhim>> up and gently return <<childhim>> to the nest. <<ltrauma>><<trauma -6>> <<set $children[$childActivityEvent.childid].localVariables.activity to "sleeping">> <<case "preeningToy">> /* currently unreachable. credit writer as mochamante when properly added */ You dangle the preening toy in front of <<childname>>, tugging gently at the fibres. Curious, the <<childtype>> hops closer, tilting <<childhis>> head to inspect it. After a few moments, you hook the toy onto the perch and step away, letting <<childhim>> engage with it at <<childhis>> own pace. <br><br> <<if _childTotalDays lte 40>> <<switch random(1,3)>> <<case 1>> Eventually, <<childname>> <<if $cmonster is 1>>tugs<<else>>pecks<</if>> at the toy in short bursts. <<childHe>> tentatively nibbles on the toy's soft fibres, pulling lightly at the strands before trying to preen it. <<childHis>> tiny <<= $cmonster is 1 ? "hands" : "beak">> are working diligently. You watch with pride as <<childhe>> seems to get the hang of it. <<stress -6>><<lstress>> <<case 2>> A moment later, <<childname>> hops closer and gives the toy a hesitant <<= $cmonster is 1 ? "tug." : "peck.">> <<childHe>> eventually starts preening the toy, practicing <<childhis>> grooming instincts. <<childHe>> seems content, chirping softly as <<childhe>> tugs at the toy. <<trauma -6>><<ltrauma>> <<default>> <<childname>> gives a hesitant <<= $cmonster is 1 ? "tug" : "peck">> at the toy before, then pulls on one of the dangling strands. The toy swings back, and <<childhe>> flinches, letting out a soft chirp of distress. <<childHe>> flutters away, wary of the toy. <<stress 3>><<gstress>> <</switch>> <<else>> <<switch random(1,4)>> <<case 1>> <<childname>> <<= either("ignores the toy completely and tries", "nibbles at it briefly before losing interest and attempting")>> to preen you instead. It tickles. <<lstress>><<ltrauma>><<stress -3>><<trauma -3>> <<case 2>> <<childname>> begins tugging at the loose fibres with <<childhis>> <<= $cmonster is 1 ? "hands," : "beak,">> mimicking preening motions. You watch as <<childhe>> grows more confident, fluffing <<childhis>> tiny feathers. <<ltrauma>><<trauma -6>> <<case 3>> <<childHe>> immediately preens the toy, chirping happily as <<childhe>> hops around it. <<childHis>> feathers puff up with contentment. <<lstress>><<stress -6>> <<default>> <<childHe>> watches intently, chirping with interest. <<childHe>> hops closer and <<= $cmonster is 1 ? "tugs" : "pecks">> at it. As <<childhe>> pulls at the threads, <<childhe>> occasionally looks to you for encouragement. <<ltrauma>><<trauma -6>> <</switch>> <</if>> <<default>> The event could not be found.<br> Event: $childActivityEvent.event Child: $childActivityEvent.childid <</switch>> <br><br> <<link [[Next|Childrens Home]]>><<unset $childActivityEvent>><<endevent>><</link>><<widget "alex_baby_interactions">> <<npc "Alex">> <<childSelectRandom "alex_cottage">> <<switch random(1,5)>> <<case 1>> You see Alex holding <<childname>> out in the fields, trying to explain the different plants and crops to <<childhim>>. <<childname>> curiously looks at them. <<lstress>><<stress -6>> <br><br> <<link [[Next|Farm Work]]>><<endevent>><<set $daily.farmBabyInteraction to 1>><</link>> <<case 2>> You see Alex trying to play with <<childname>>, but <<childhe>> seems to be distracted by a butterfly that flies around Alex. <br><br> <<link [[Next|Farm Work]]>><<endevent>><<set $daily.farmBabyInteraction to 1>><</link>> <<case 3>> You see Alex lying in a field with <<childname>> peacefully snoozing on <<his>> chest. <br><br> <<link [[Next|Farm Work]]>><<endevent>><<set $daily.farmBabyInteraction to 1>><</link>> <<case 4>> You see Alex holding <<childname>> near the chicken coop, trying to show them to <<childhim>>. One of the chickens squawks loudly, causing <<childname>> to burst into tears. <br><br> <<link [[Comfort (0:01)|Alex Children Interactions Chicken]]>><<set $phase to 1>><<pass 1>><</link>> <br> <<link [[Let Alex handle it (0:01)|Alex Children Interactions Chicken]]>><<set $phase to 2>><<pass 1>><</link>> <<case 5>> <<if C.npc.Alex.gender is "f">> You see Alex sitting under a tree with <<childname>> in <<his>> arms. <<His>> chest is exposed; <<hes>> probably breastfeeding <<childhim>>. <br><br> <<link [[Watch (0:10)|Alex Children Interactions Breastfeed]]>><</link>> <br> <<link [[Leave Alex to finish (0:01)|Farm Work]]>><<endevent>><<set $daily.farmBabyInteraction to 1>><</link>> <<else>> You see Alex trying to play with <<childname>>, but <<childhe>> seems to be distracted by a butterfly that flies around Alex. <br><br> <<link [[Next|Farm Work]]>><<endevent>><<set $daily.farmBabyInteraction to 1>><</link>> <</if>> <</switch>> <</widget>><<effects>> <<if $phase is 1>> You approach Alex, take <<childname>> into your arms, and start humming. <br><br> <<childHe>> soon starts to calm down and yawns. <br><br> Alex kisses your cheek. "Thanks," <<he>> says with a laugh. "I'm still not used to this." <br><br> "I'll take <<childhim>> back to the nursery," <<he>> says as you hand <<childname>> back to <<him>>. <<else>> Unsure what to do, Alex nervously starts to hum to distract <<childname>>. <<Hes>> off-key, but <<childname>> soon starts to calm down and laughs. <br><br> Alex sighs and takes <<childhim>> back to the nursery. <</if>> <br><br> <<link [[Next|Farm Work]]>><<endevent>><<set $daily.farmBabyInteraction to 1>><</link>><<effects>> <<switch random(1,2)>> <<case 1>> "I dunno how such a little thing can drink so much!" <<He>> laughs. <<case 2>> "Never thought this would be so tiring," <<he>> sighs. <</switch>> You follow <<him>> as <<he>> takes <<childname>> back to the nursery and places <<childhim>> in the cradle, where <<childhe>> falls asleep. <br><br> <<if hasSexStat("promiscuity", 3)>> <span class="lewd">A lewd idea strikes you.</span> <br> <<link [[Ask for a turn (0:15)|Alex Children Interactions Breastfeed 2]]>><<set $phase to 1>><</link>><<promiscuous3>> <br> <<link [[Let Alex be (0:01)|Alex Children Interactions Breastfeed 2]]>><<set $phase to 2>><</link>> <<else>> <<link [[Next|Farm Cottage]]>><<endevent>><</link>> <</if>><<effects>> <<set $alexBreasts to C.npc.Alex.breastsdesc>> <<if $phase is 1>> <<if $speech_attitude is "meek">> "D-do you think I could have some too?" <<elseif $speech_attitude is "bratty">> "Is there any left for me?" <<else>> "Can I have some too?" <</if>> you ask Alex as <<he>> fixes <<his>> bra. <<His>> face goes red as <<he>> processes your words. <br><br> "You, uh, what?" <<he>> says, embarrassed by your request. <br><br> You only give <<him>> a smile in response. "You're serious? I mean, I've been feeling kind of full these days, so I guess it wouldn't hurt to," <<he>> says. <br><br> <<He>> sits on the ground and gestures to you to get closer. Alex lays your head on <<his>> lap and brings your face closer to <<his>> $alexBreasts. You quickly envelop <<his>> nipple with your mouth and start to suck.<<ggarousal>><<arousal 600>> <br><br> <<He>> brushes your hair with <<his>> hand as <span class="lewd">sweet and creamy milk flows through your mouth.</span> You move to <<his>> other breast, making Alex moan.<<gglust>><<npcincr Alex lust 5>> <br><br> <<link [[Next|Alex Children Interactions Breastfeed 3]]>><<pass 15>><</link>> <<else>> Alex fixes <<his>> bra, pulls <<his>> shirt down, and leaves <<childname>> to sleep. <br><br> "Try not to wake <<childhim>>. It was a pain to get <<childhim>> to sleep," <<he>> says before leaving the nursery. <br><br> <<link [[Next|Farm Cottage]]>><<unset $alexBreasts>><<endevent>><<pass 1>><</link>> <</if>><<effects>> After a few minutes, the milk stops flowing and you move your mouth away from <<his>> $alexBreasts, leaving Alex panting. <br><br> "I think you're taking the term 'cow<<girl>>' too serious, pal," <<he>> laughs. <<He>> stands up and fixes <<his>> clothes before leaving the nursery. <br><br> <<link [[Next|Farm Cottage]]>><<unset $alexBreasts>><<endevent>><</link>><<effects>> <<if $phase is 1>> <<childSelectRandom "alex_cottage">> You enter the hallway and head upstairs to the nursery. The door is slightly open, and you can see Alex standing by <<childname>>'s cot. <br><br> "Hey partner, sorry if I woke ya," Alex says, not looking away from the cot. "Thought I heard our little fella crying." <br><br> <<link [[Next|Farm Cottage Nighttime Nursery 2]]>><</link>> <<else>> You ignore the sound, assuming Alex has just gone to check up on the baby. <br><br> <<if $bus is "farm_alex_room">> <<link [[Next|Farm Alex Bed]]>><<endevent>><</link>> <<else>> <<link [[Next|Farm Bed]]>><<endevent>><</link>> <</if>> <</if>><<effects>> You step closer, and Alex immediately wraps <<his>> arm around your shoulder before bumping <<his>> head against yours. <<His>> gaze is fixated on <<childname>>'s sleeping form. <<if !npcIsPregnant("Alex")>> Being this close lets you get a good smell of alcohol, more so than normal. <</if>> <br><br> "Never thought I would settle down with a kid, with the farm and all. Still feels surreal," Alex says while brushing <<his>> finger against the baby's cheek. <br><br> You mimic the action on the other cheek. <<childname>> stirs but soon settles down into both your touches. Alex softly chuckles. <<He>> pulls <<his>> hand away before turning to face you. <br><Br> "Come on now, let's get you back to bed," <<he>> says, gently pushing you along. <br><br> <<link [[Ask if <<he>> is okay|Farm Cottage Nighttime Nursery 3]]>><<npcincr Alex love 2>><</link>><<gglove>> <br> <<link [[Stay silent|Farm Cottage Nighttime Nursery 4]]>><<set $phase to 3>><</link>><<effects>> Alex looks slightly taken aback by the question. <<He>> freezes up before sighing. <<He>> turns away. <br><br> "I'm just nervous. Remy's breathing down our necks, and I got you, the little <<if childrenCountBetweenParents("Alex","pc") is 1 or childrenCountBetweenParents("pc","Alex") is 1>>fella<<else>>fellas<</if>>, and the farm to watch after." <br><br> <<link [[Supportive|Farm Cottage Nighttime Nursery 4]]>><<set $phase to 1>><<npcincr Alex dom -1>><<npcincr Alex love 1>><</link>><<glove>><<ldom>> <br> <<link [[Praise|Farm Cottage Nighttime Nursery 4]]>><<set $phase to 2>><<npcincr Alex dom 1>><<npcincr Alex love 1>><</link>><<glove>><<gdom>><<effects>> <<if $phase is 1>> "You got me as your support, you know. We are in this together." You pat <<his>> back which brings a smile to <<his>> face. <br><br> Alex looks back up at you and places a kiss on your lips. "What did I do to deserve a <<if $player.gender_appearance is "f">>woman<<else>>man<</if>> like you?" <br><br> <<elseif $phase is 2>> "And you do a damn good job taking care of everything." You lean down to place a kiss on <<his>> cheek, causing <<him>> to perk back up. <br><br> "Thanks, partner. Good to know I got your approval of my work." <<He>> locks arms with you before kissing your forehead. <br><br> <</if>> Alex guides you back to bed, giving you one last goodnight kiss before going back to sleep. <br><br> <<if $bus is "farm_alex_room">> <<link [[Next|Farm Alex Bed]]>><<endevent>><</link>> <<else>> <<link [[Next|Farm Bed]]>><<endevent>><</link>> <</if>><<effects>> <<if $phase is 0>> /* Let child go */ You smile as you watch the <<childtype>> run off to play. <<stress -6>><<trauma -6>><<lstress>><<ltrauma>> <<else>> /* Chase */ After allowing the <<childtype>> a head start, you pursue. <br><br> <<switch random(1, 3)>> <<case 1>> <<childHe>> does not notice you until you catch <<childhim>>. <<childHe>> yelps and drops the bone before running for cover. It takes several minutes before <<childhe>> comes out of hiding, <<childhis>> tail between <<childhis>> legs. <<trauma 6>><<gtrauma>><<lharmony>><<lferocity>> <<case 2>> <<childHe>> notices your pursuit and quickens <<childhis>> pace. You soon catch <<childhim>> and scoop <<childhim>> up. <<childHis>> tail keeps wagging, but <<childhe>> maintains <<childhis>> grip on the bone. <<stress -6>><<trauma -6>><<lstress>><<ltrauma>> <<default>> <<childHe>> notice your pursuit and quickens <<childhis>> pace. Just as you are about to catch <<childhim>>, you allow <<childhim>> to escape. <<childHe>> continues to evade you in <<childhis>> game of keep away. <<stress -6>><<trauma -6>><<lstress>><<ltrauma>><<gharmony>> <</switch>> <</if>> <br><br> <<link [[Next|Childrens Home]]>><<unset $childActivityEvent>><<endevent>><</link>> <br><<effects>> <<set _child1 to $childActivityEvent.childid>> <<set _child2 to $childActivityEvent.childid2>> <<if $phase is 0>> /* Play with first wolf child*/ "Hey now," you chide <<childSelect _child2>><<childname>>. "You'll have to wait your turn." <br><br> You pull the rope away from the <<childtype>> and toss it back to <<childSelect _child1>><<childname>>. <<childHe>> grabs it right away and begins tugging. <br><br> <<childSelect _child2>> <<switch random(1, 2)>> <<case 1>> <<childname>> wags <<childhis>> tail before running off to play elsewhere. <<stress -6>><<trauma -6>><<lstress>><<ltrauma>> <<default>> <<childname>> drops <<childhis>> head and sulks away. <<stress 6>><<trauma 6>><<gstress>><<gtrauma>> <</switch>> <<elseif $phase is 1>> /* Play with second wolf child */ "You'll need to be quicker next time," you tell <<childSelect _child1>><<childname>>. <br><br> You pull the rope as the <<childSelect _child2>><<childtype>> tugs back, giving a happy growl. <br><br> <<childSelect _child1>> <<switch random(1, 2)>> <<case 1>> <<childname>> sits and watches, wagging <<childhis>> tail. <<stress -6>><<trauma -6>><<lstress>><<ltrauma>> <<default>> <<childname>> whines as <<childhe>> watches you play with <<childhis>> <<childsibling _child2>>. <<stress 6>><<trauma 6>><<gstress>><<gtrauma>> <</switch>> <<else>> /* Play with both */ You quickly pull the rope away from <<childSelect _child2>><<childname>>, who promptly whines at the loss of the toy. <br><br> "Oh, settle down, I can play with both of you," you say. You toss the rope between them. <br><br> <<switch random(1, 3)>> <<case 1>> They both latch onto either end of the rope tightly. You grab the centre and begin tugging them both. Their tails wag eagerly as you tow them around. They eventually tire and drop the rope. <<stress -6>><<trauma -6>><<lstress>><<ltrauma>><<gharmony>> <<case 2>> They both latch onto either end of the rope. You attempt to grab the centre, but are not prepared for how energetic they are. The rope slips from your grasp but, you are content to watch the two tug it back and forth. They growl and wag their tails for a while until they wear themselves out. <<stress -6>><<trauma -6>><<lstress>><<ltrauma>><<gharmony>><<gferocity>> <<default>> They both latch onto either end of the rope tightly. You grab the centre and begin tugging. However, the two are not willing to share. <<childname>> drops <<childhis>> end of the rope and begins tussling with <<childhis>> <<childsibling _child1>>. <br><br> <<childSelect _child1>><<childname>> yelps in pain as <<childSelect _child2>><<childname>> bites <<childSelect _child1>><<childhim>>. Acting quickly, you intervene. One of them bites your hand. <<pain 2>><<gpain>> <br><br> "No fighting!" you tell them as you drag them apart. <br><br> They growl at each other before leaving in opposite directions. You shake out your hand. <<stress 6>><<gstress>><<lharmony>><<gferocity>> <</switch>> <</if>> <br><br> <<link [[Next|Childrens Home]]>><<unset $childActivityEvent>><<endevent>><</link>> <br><<effects>> <<if $phase is 0>> /* Toss gently */ <<switch random(1, 2)>> <<case 1>> With a quick flick of the wrist, you toss the ball a short distance. The <<childtype>> bounds over to it and begins happily gnawing on the ball. <<stress -6>><<trauma -6>><<lstress>><<ltrauma>><<gharmony>> <<default>> With a quick flick of the wrist, you toss the ball a short distance. The <<childtype>> walks over and sniffs the ball, then loses interest and leaves. <</switch>> <<else>> /* Thow hard */ <<getChildrenIds `{location:"wolf_cave"}`>> <<set _childrenTotal to _childrenIds.length>> <<if random(1, 3) is 1 and _childrenTotal gte 2>> <<set _child1 to $childActivityEvent.childid>> <<set _childrenIds to _childrenIds.filter(childid => childid !== _child1)>> <<set _child2 to _childrenIds.pluck()>> You hurl the ball. <<childname>> sprints after it, but one of <<childhis>> siblings beats <<childhim>> to it. <br><br> <<childSelect _child2>> <<switch random(1, 3)>> <<case 1>> <<childname>> retrieves the ball and runs off with it, with <<childSelect _child1>><<childname>> in close pursuit. After an improv game of tag, <<childname>> catches <<childhis>> <<childsibling _child2>>. They playfully tussle over the ball. <<stress -6>><<trauma -6>><<lstress>><<ltrauma>><<gferocity>> <<case 2>> <<childname>> sniffs the ball until <<childhis>> <<childsibling _child1>> arrives. <<childSelect _child1>><<childname>> picks it up and runs off with it. <<childHis>> <<childsibling _child2>> follows, wagging <<childSelect _child2>><<childhis>> tail. <<stress -6>><<trauma -6>><<lstress>><<ltrauma>><<gharmony>> <<default>> <<childname>> retrieves the ball and runs off as <<childSelect _child1>><<childname>> gives chase. When <<childhe>> catches up to <<childhis>> <<childsibling _child2>>, a fight breaks out. <br><br> You rush to intervene, but it ends before you arrive. <<childname>> retrieves <<childhis>> ball while <<childSelect _child2>><<childtype>> whimpers in pain. You spend some time consoling the other <<childtype>>. <<stress 6>><<trauma 6>><<gstress>><<gtrauma>><<lharmony>><<gferocity>> <</switch>> <<elseif random(1, 3) is 2>> You hurl the ball. <<childname>> sprints after it. <br><br> <<switch random(1, 2)>> <<case 1>> <<if Weather.isSnow>> The snow conceals the ball, but the <<childtype>> is determined. After digging up several spots, <<childhe>> finally finds it. <<childHe>> carries it around for a while, looking quite pleased with <<childhimself>>. <<else>> <<childHe>> quickly finds <<childhis>> ball. The <<childtype>> carries it around for a while, looking quite pleased with <<childhimself>>. <</if>> <<stress -6>><<trauma -6>><<lstress>><<ltrauma>> <<default>> <<if Weather.isSnow>> The snow conceals the ball, much to the <<childtype>>'s dismay. After digging around in the snow for a while, <<childhe>> begins to whine. By the time you dig it out for <<childhim>>, your fingers are numb from the cold and <<childhe>>'s no longer interested in playing. <<else>> <<childHe>> quickly finds <<childhis>> ball, but <<childhe>> cannot reach it. It seems to have gotten stuck in the briar. <<childHe>> whines at the loss of <<childhis>> toy. You get scratched up trying to fetch it for <<childhim>>, but <<childhe>>'s no longer interested in playing. <</if>> <<pain 2>><<stress 6>><<gpain>><<gstress>> <</switch>> <<else>> You hurl the ball. <<childname>> turns <<childhis>> head and watches the ball land off in the distance. <<childHe>> stares at it for a moment before walking off, uninterested in pursuing. <</if>> <</if>> <br><br> <<link [[Next|Childrens Home]]>><<unset $childActivityEvent>><<endevent>><</link>> <br><<widget "childrenSetup">> <<if $children is undefined>> <<set $children to {}>> <</if>> <</widget>> <<widget "getUsedChildrenNames">> <<set _usedChildrenNames to []>> <<for $_label, $_value range $children>> <<run _usedChildrenNames.pushUnique($_value.name)>> <</for>> <</widget>> /*args[0] - filter in the form of an object, args[1] - "both" to include unrelated children or "only" to exclude the player children*/ <<widget "getChildrenIds">> <<set _childrenIds to []>> <<run Object.values($children).forEach(child => { if ((child.mother === "pc" || child.father === "pc") && _args[1] === "only") { return; } else if ((child.mother !== "pc" && child.father !== "pc") and !_args[1]) { return; } if (T.args[0] && !Object.entries(T.args[0]).every(([key, value]) => child[key] === value)) { return; } if (child.childId) T.childrenIds.push(child.childId); })>> <</widget>> /*args[0] - location, args[1] - min length requirement, args[2] - max length requirement, args[3] - "both" to include unrelated children or "only" to exclude the player children*/ <<widget "getSameBirthChildrenIds">> <<set _birthChildrenIds to {}>> <<for $_label, $_value range $children>> <<if $_value.mother isnot "pc" and $_value.father isnot "pc">> <<if _args[3] isnot "both" and _args[3] isnot "only">> <<continue>> <</if>> <<elseif _args[3] is "only">> <<continue>> <</if>> <<if !$_value.eggTimer and (_args[0] is undefined or $_value.location is _args[0])>> <<if _birthChildrenIds[$_value.birthId] is undefined>> <<set _birthChildrenIds[$_value.birthId] to []>> <</if>> <<run _birthChildrenIds[$_value.birthId].push($_value.childId)>> <</if>> <</for>> <<if _args[1]>> <<for $_label, $_value range _birthChildrenIds>> <<if $_value.length lt _args[1] or $_value.length gt _args[2]>> <<run delete _birthChildrenIds[$_label]>> <</if>> <</for>> <</if>> <</widget>> /*args[0] - location, args[1] - birthId, args[2] - new location*/ <<widget "moveChildren">> <<if _args[0] and _args[1]>> <<getSameBirthChildrenIds _args[0]>> <<if _birthChildrenIds[_args[1]] isnot undefined>> <<for $_i to 0; $_i lt _birthChildrenIds[_args[1]].length; $_i++>> <<set $children[_birthChildrenIds[_args[1]][$_i]].location to _args[2]>> <<if _args[2] is "home">> <<run setKnowsAboutPregnancy($children[_birthChildrenIds[_args[1]][$_i]].mother, "Bailey", $children[_birthChildrenIds[_args[1]][$_i]].mother + $children[_birthChildrenIds[_args[1]][$_i]].birthId)>> <</if>> <</for>> <</if>> <</if>> <</widget>> /*args[0] - childId, args[1] - new name*/ <<widget "childRename">> <<if _args[0]>> <<set $children[_args[0]].name to generateBabyName(_args[1], $children[_args[0]].gender, _args[0])>> <</if>> <</widget>> /*args[0] - childId, args[1] - set to display specific text output*/ <<widget "childAge">><<silently>> <<if _args[0]>> <<set _date1 to $children[_args[0]].born.day + " " + $children[_args[0]].born.month + " " + $children[_args[0]].born.year>> <<set _date2 to Time.monthDay + " " + Time.monthName + " " + Time.year>> <<set $_calc to Math.abs(Date.parse(_date2) - Date.parse(_date1))>> <<switch $children[_args[0]].type>> <<case "human" "wolf" "hawk">><<set _childTotalDaysCap to 200>> <<default>><<set _childTotalDaysCap to 0>> <</switch>> <<set _childTotalDays to Math.clamp(Math.ceil($_calc / (1000 * 60 * 60 * 24)), 0, _childTotalDaysCap)>> <<set _childYears to Math.floor(_childTotalDays / 360)>> <<set _childDays to Math.floor(_childTotalDays % 360)>> <<switch _args[1]>> <<case "full">> <<set $_text_output to _childYears + " year" + (_childYears isnot 1 ? "s, " : ", ") + _childDays + " day" + (_childDays isnot 1 ? "s " : " ") + "old">> <<case "year">> <<set $_text_output to _childYears + " year" + (_childYears isnot 1 ? "s" : "")>> <<case "day">> <<set $_text_output to _childDays + " day" + (_childDays isnot 1 ? "s" : " ")>> <<case "totalDays">> <<set $_text_output to _childTotalDays>> <</switch>> <</if>> <</silently>><<if $_text_output>><<print $_text_output>><<if _childTotalDaysCap is _childTotalDays>> <mouse class="tooltip linkBlue">(Capped)<span>Reached end of current child activity content</span></mouse><</if>><</if>><</widget>> /*:: Widgets children2 [widget]*/ /*args[0] - childId*/ <<widget "childSelect">> <<if _args[0] isnot undefined>> <<set $childSelected to $children[_args[0]]>> <<if $children[_args[0]].type isnot "human" and $children[_args[0]].features.monster is "monster">> <<set $cmonster to 1>> <<else>> <<set $cmonster to 0>> <</if>> <</if>> <</widget>> /*args[0] - childId*/ <<widget "childname">><<silently>> <<if _args[0] isnot undefined>> <<set $_id to _args[0]>> <<elseif $childSelected isnot undefined>> <<set $_id to $childSelected.childId>> <</if>> <<if $_id isnot undefined>> <<set $_text_output to $children[$_id].name>> <</if>> <</silently>><<if $_text_output>><<print $_text_output>><</if>><</widget>> /*args[0] - childId in an array*/ <<widget "childrenNames">><<silently>> <<if _args[0] isnot undefined>> <<set $_text_output to "">> <<for $_i to 0; $_i lt _args[0].length; $_i++>> <<set $_text_output += $children[_args[0][$_i]].name>> <<if $_i is _args[0].length - 1>> <<elseif $_i is _args[0].length - 2>> <<set $_text_output += " and ">> <<else>> <<set $_text_output += ", ">> <</if>> <</for>> <</if>> <</silently>><<if $_text_output>><<print $_text_output>><</if>><</widget>> /*args[0] - childId in an array*/ <<widget "childInteratedWith">><<silently>> <<if _args[0] isnot undefined>> <<set $_id to _args[0]>> <<elseif $childSelected isnot undefined>> <<set $_id to $childSelected.childId>> <</if>> <<if $_id>> <<set $_localVariables to $children[$_id].localVariables>> <<if $_localVariables.interactionsTotal is undefined>> <<set $_localVariables.interactionsTotal to 0>> <<set $_localVariables.interactions to 0>> <</if>> <<set $_localVariables.interactionsTotal++>> <<if $daily.childInteractions is undefined>><<set $daily.childInteractions to []>><</if>> <<if !$daily.childInteractions.includes($_id)>> <<set $_localVariables.interactions++>> <<run $daily.childInteractions.push($_id)>> <</if>> <<set $pregnancyStats.childInteractions++>> <<if $location is "home">><<set $pregnancyStats.orphanageInteractions++>><</if>> <</if>> <</silently>><</widget>> /*args[0] - childId*/ <<widget "childHe">><<silently>> <<if _args[0] isnot undefined>> <<set $_id to _args[0]>> <<elseif $childSelected isnot undefined>> <<set $_id to $childSelected.childId>> <</if>> <<if $_id isnot undefined>> <<switch $children[$_id].gender>> <<case "m">><<set $_text_output to "He">> <<case "f" "h">><<set $_text_output to "She">> <<case "h">><<set $_text_output to "They">> <</switch>> <</if>> <</silently>><<if $_text_output>><<print $_text_output>><</if>><</widget>> /*args[0] - childId*/ <<widget "childhe">><<silently>> <<if _args[0] isnot undefined>> <<set $_id to _args[0]>> <<elseif $childSelected isnot undefined>> <<set $_id to $childSelected.childId>> <</if>> <<if $_id isnot undefined>> <<switch $children[$_id].gender>> <<case "m">><<set $_text_output to "he">> <<case "f" "h">><<set $_text_output to "she">> <<case "h">><<set $_text_output to "they">> <</switch>> <</if>> <</silently>><<if $_text_output>><<print $_text_output>><</if>><</widget>> /*args[0] - childId*/ <<widget "childHis">><<silently>> <<if _args[0] isnot undefined>> <<set $_id to _args[0]>> <<elseif $childSelected isnot undefined>> <<set $_id to $childSelected.childId>> <</if>> <<if $_id isnot undefined>> <<switch $children[$_id].gender>> <<case "m">><<set $_text_output to "His">> <<case "f" "h">><<set $_text_output to "Her">> <<case "h">><<set $_text_output to "Their">> <</switch>> <</if>> <</silently>><<if $_text_output>><<print $_text_output>><</if>><</widget>> /*args[0] - childId*/ <<widget "childhis">><<silently>> <<if _args[0] isnot undefined>> <<set $_id to _args[0]>> <<elseif $childSelected isnot undefined>> <<set $_id to $childSelected.childId>> <</if>> <<if $_id isnot undefined>> <<switch $children[$_id].gender>> <<case "m">><<set $_text_output to "his">> <<case "f" "h">><<set $_text_output to "her">> <<case "h">><<set $_text_output to "their">> <</switch>> <</if>> <</silently>><<if $_text_output>><<print $_text_output>><</if>><</widget>> /*args[0] - childId*/ <<widget "childHim">><<silently>> <<if _args[0] isnot undefined>> <<set $_id to _args[0]>> <<elseif $childSelected isnot undefined>> <<set $_id to $childSelected.childId>> <</if>> <<if $_id isnot undefined>> <<switch $children[$_id].gender>> <<case "m">><<set $_text_output to "Him">> <<case "f" "h">><<set $_text_output to "Her">> <<case "h">><<set $_text_output to "Them">> <</switch>> <</if>> <</silently>><<if $_text_output>><<print $_text_output>><</if>><</widget>> /*args[0] - childId*/ <<widget "childhim">><<silently>> <<if _args[0] isnot undefined>> <<set $_id to _args[0]>> <<elseif $childSelected isnot undefined>> <<set $_id to $childSelected.childId>> <</if>> <<if $_id isnot undefined>> <<switch $children[$_id].gender>> <<case "m">><<set $_text_output to "him">> <<case "f" "h">><<set $_text_output to "her">> <<case "h">><<set $_text_output to "them">> <</switch>> <</if>> <</silently>><<if $_text_output>><<print $_text_output>><</if>><</widget>> <<widget "childhimself">><<silently>> <<if _args[0] isnot undefined>> <<set $_id to _args[0]>> <<elseif $childSelected isnot undefined>> <<set $_id to $childSelected.childId>> <</if>> <<if $_id isnot undefined>> <<switch $children[$_id].gender>> <<case "m">><<set $_text_output to "himself">> <<case "f" "h">><<set $_text_output to "herself">> <<case "h">><<set $_text_output to "themselves">> <</switch>> <</if>> <</silently>><<if $_text_output>><<print $_text_output>><</if>><</widget>> /*args[0] - childId*/ <<widget "childHers">><<silently>> <<if _args[0] isnot undefined>> <<set $_id to _args[0]>> <<elseif $childSelected isnot undefined>> <<set $_id to $childSelected.childId>> <</if>> <<if $_id isnot undefined>> <<switch $children[$_id].gender>> <<case "m">><<set $_text_output to "His">> <<case "f" "h">><<set $_text_output to "Hers">> <<case "h">><<set $_text_output to "Theirs">> <</switch>> <</if>> <</silently>><<if $_text_output>><<print $_text_output>><</if>><</widget>> /*args[0] - childId*/ <<widget "childhers">><<silently>> <<if _args[0] isnot undefined>> <<set $_id to _args[0]>> <<elseif $childSelected isnot undefined>> <<set $_id to $childSelected.childId>> <</if>> <<if $_id isnot undefined>> <<switch $children[$_id].gender>> <<case "m">><<set $_text_output to "his">> <<case "f" "h">><<set $_text_output to "hers">> <<case "h">><<set $_text_output to "theirs">> <</switch>> <</if>> <</silently>><<if $_text_output>><<print $_text_output>><</if>><</widget>> /*args[0] - childId*/ <<widget "childherself">><<silently>> <<if _args[0] isnot undefined>> <<set $_id to _args[0]>> <<elseif $childSelected isnot undefined>> <<set $_id to $childSelected.childId>> <</if>> <<if $_id isnot undefined>> <<switch $children[$_id].gender>> <<case "m">><<set $_text_output to "himself">> <<case "f" "h">><<set $_text_output to "herself">> <<case "h">><<set $_text_output to "themself">> <</switch>> <</if>> <</silently>><<if $_text_output>><<print $_text_output>><</if>><</widget>> /*args[0] - childId*/ <<widget "childsibling">><<silently>> <<if _args[0] isnot undefined>> <<set $_id to _args[0]>> <<elseif $childSelected isnot undefined>> <<set $_id to $childSelected.childId>> <</if>> <<if $_id isnot undefined>> <<switch $children[$_id].gender>> <<case "m">><<set $_text_output to "brother">> <<case "f">><<set $_text_output to "sister">> <<case "h">><<set $_text_output to "sibling">> <</switch>> <</if>> <</silently>><<if $_text_output>><<print $_text_output>><</if>><</widget>> /*args - childId for each argument, OR one array argument with childIds */ <<widget "childsiblings">><<silently>> <<if _args[0] isnot undefined>> <<set $_brothers to 0>><<set $_sisters to 0>> <<if typeof _args[0] is "object">> <<for $_i to 0; $_i lt _args[0].length; $_i++>> <<switch $children[_args[0][$_i]].gender>> <<case "m">><<set $_brothers++>> <<case "f" "h">><<set $_sisters++>> <</switch>> <</for>> <<else>> <<for $_i to 0; $_i lt _args.length; $_i++>> <<switch $children[_args[$_i]].gender>> <<case "m">><<set $_brothers++>> <<case "f" "h">><<set $_sisters++>> <</switch>> <</for>> <</if>> <<set $_text_output to "">> <<if $_brothers gte 1>> <<set $_text_output += "brother">> <<if $_brothers gte 2>> <<set $_text_output += "s">> <</if>> <</if>> <<if $_brothers gte 1 and $_sisters gte 1>> <<set $_text_output += " and ">> <</if>> <<if $_sisters gte 1>> <<set $_text_output += "sister">> <<if $_sisters gte 2>> <<set $_text_output += "s">> <</if>> <</if>> <</if>> <</silently>><<if $_text_output>><<print $_text_output>><</if>><</widget>> /*args[0] - childId*/ <<widget "childson">><<silently>> <<if _args[0] isnot undefined>> <<set $_id to _args[0]>> <<elseif $childSelected isnot undefined>> <<set $_id to $childSelected.childId>> <</if>> <<if $_id isnot undefined>> <<switch $children[$_id].gender>> <<case "m">><<set $_text_output to "son">> <<case "f">><<set $_text_output to "daughter">> <<case "h">><<set $_text_output to "child">> <</switch>> <</if>> <</silently>><<if $_text_output>><<print $_text_output>><</if>><</widget>> /*args - childId for each argument, OR one array argument with childIds */ <<widget "childsons">><<silently>> <<if _args[0] isnot undefined>> <<set $_sons to 0>><<set $_daughters to 0>> <<if typeof _args[0] is "object">> <<for $_i to 0; $_i lt _args[0].length; $_i++>> <<switch $children[_args[0][$_i]].gender>> <<case "m">><<set $_sons++>> <<case "f" "h">><<set $_daughters++>> <</switch>> <</for>> <<else>> <<for $_i to 0; $_i lt _args.length; $_i++>> <<switch $children[_args[$_i]].gender>> <<case "m">><<set $_sons++>> <<case "f" "h">><<set $_daughters++>> <</switch>> <</for>> <</if>> <<set $_text_output to "">> <<if $_sons gte 1>> <<set $_text_output += "son">> <<if $_sons gte 2>> <<set $_text_output += "s">> <</if>> <</if>> <<if $_sons gte 1 and $_daughters gte 1>> <<set $_text_output += " and ">> <</if>> <<if $_daughters gte 1>> <<set $_text_output += "daughter">> <<if $_daughters gte 2>> <<set $_text_output += "s">> <</if>> <</if>> <</if>> <</silently>><<if $_text_output>><<print $_text_output>><</if>><</widget>> /*args[0] - childId*/ <<widget "childhand">><<silently>> <<if _args[0] isnot undefined>> <<set $_id to _args[0]>> <<elseif $childSelected isnot undefined>> <<set $_id to $childSelected.childId>> <</if>> <<if $_id isnot undefined>> <<switch $children[$_id].type>> <<case "human">><<set $_text_output to "hand">> <<case "wolf" "wolfboy" "wolfgirl">><<set $_text_output to "paw">> <<case "hawk">><<set $_text_output to ($children[$_id].features.monster is "monster" ? "hand" : "wing")>> <</switch>> <</if>> <</silently>><<if $_text_output>><<print $_text_output>><</if>><</widget>> /*args[0] - childId*/ <<widget "childhands">><<silently>> <<if _args[0] isnot undefined>> <<set $_id to _args[0]>> <<elseif $childSelected isnot undefined>> <<set $_id to $childSelected.childId>> <</if>> <<if $_id isnot undefined>> <<switch $children[$childSelected.childId].type>> <<case "human">><<set $_text_output to "hands">> <<case "wolf" "wolfboy" "wolfgirl">><<set $_text_output to "paws">> <<case "hawk">><<set $_text_output to ($children[$_id].features.monster is "monster" ? "hands" : "wings")>> <</switch>> <</if>> <</silently>><<if $_text_output>><<print $_text_output>><</if>><</widget>> <<widget "childfeet">><<silently>> <<if _args[0] isnot undefined>> <<set $_id to _args[0]>> <<elseif $childSelected isnot undefined>> <<set $_id to $childSelected.childId>> <</if>> <<if $_id isnot undefined>> <<switch $children[$_id].type>> <<case "human">><<set $_text_output to "feet">> <<case "wolf" "wolfboy" "wolfgirl">><<set $_text_output to "paws">> <<case "hawk">><<set $_text_output to ($children[$_id].features.monster is "monster" ? "feet" : "legs")>> <</switch>> <</if>> <</silently>><<if $_text_output>><<print $_text_output>><</if>><</widget>> <<widget "childtoes">><<silently>> <<if _args[0] isnot undefined>> <<set $_id to _args[0]>> <<elseif $childSelected isnot undefined>> <<set $_id to $childSelected.childId>> <</if>> <<if $_id isnot undefined>> <<switch $children[$_id].type>> <<case "human">><<set $_text_output to "toes">> <<case "wolf" "wolfboy" "wolfgirl">><<set $_text_output to "pads">> <<case "hawk">><<set $_text_output to ($children[$_id].features.monster is "monster" ? "toes" : "talons")>> <</switch>> <</if>> <</silently>><<if $_text_output>><<print $_text_output>><</if>><</widget>> <<widget "childfinger">><<silently>> <<if _args[0] isnot undefined>> <<set $_id to _args[0]>> <<elseif $childSelected isnot undefined>> <<set $_id to $childSelected.childId>> <</if>> <<if $_id isnot undefined>> <<switch $children[$_id].type>> <<case "human">><<set $_text_output to "finger">> <<case "wolf" "wolfboy" "wolfgirl">><<set $_text_output to "claw">> <<case "hawk">><<set $_text_output to ($children[$_id].features.monster is "monster" ? "finger" : "wing")>> <</switch>> <</if>> <</silently>><<if $_text_output>><<print $_text_output>><</if>><</widget>> /*args[0] - childId*/ <<widget "childgiggles">><<silently>> <<if _args[0] isnot undefined>> <<set _id to _args[0]>> <<elseif $childSelected isnot undefined>> <<set _id to $childSelected.childId>> <</if>> <<if _id isnot undefined>> <<switch $children[_id].type>> <<case "human">><<set $_text_output to "giggles">> <<case "wolf" "wolfboy" "wolfgirl">><<set $_text_output to "wags <<childhis _id>> tail">> <<case "hawk">><<set $_text_output to ($children[_id].features.monster is "monster" ? "giggles" : "ruffles <<childhis _id>> feathers")>> <</switch>> <</if>> <</silently>><<if $_text_output>><<print $_text_output>><</if>><</widget>> /*args[0] - childId*/ <<widget "childhair">><<silently>> <<if _args[0] isnot undefined>> <<set $_id to _args[0]>> <<elseif $childSelected isnot undefined>> <<set $_id to $childSelected.childId>> <</if>> <<if $_id isnot undefined>> <<switch $children[$_id].type>> <<case "human">><<set $_text_output to "hair">> <<case "wolf" "wolfboy" "wolfgirl">><<set $_text_output to "fur">> <<case "hawk">><<set $_text_output to "feathers">> <</switch>> <</if>> <</silently>><<if $_text_output>><<print $_text_output>><</if>><</widget>> /*args[0] - cry type, args[1] - childId */ <<widget "childcry">><<silently>> <<if _args[1] isnot undefined>> <<set $_id to _args[1]>> <<elseif $childSelected isnot undefined>> <<set $_id to $childSelected.childId>> <</if>> <<if $_id isnot undefined>> <<if between(_args[0], 1, 4)>> <<set $_cry to _args[0]>> <<else>> <<set $_cry to 1>> <</if>> <<switch $children[$_id].type>> <<case "human">> <<switch $_cry>> <<case 1>><<set $_text_output to "sniffling">> <<case 2>><<set $_text_output to "weeping">> <<case 3>><<set $_text_output to "sobbing">> <<case 4>><<set $_text_output to "wailing">> <</switch>> <<case "wolf" "wolfboy" "wolfgirl">> <<switch $_cry>> <<case 1>><<set $_text_output to "whining">> <<case 2>><<set $_text_output to "whimpering">> <<case 3>><<set $_text_output to "crying">> <<case 4>><<set $_text_output to "howling">> <</switch>> <<case "hawk">> <<switch $_cry>> <<case 1>><<set $_text_output to "chirping">> <<case 2>><<set $_text_output to "warbling">> <<case 3>><<set $_text_output to "trilling">> <<case 4>><<set $_text_output to "lilting">> <</switch>> <</switch>> <</if>> <</silently>><<if $_text_output>><<print $_text_output>><</if>><</widget>> /*args[0] - childId*/ <<widget "childtype">><<silently>> <<if _args[0] isnot undefined>> <<set $_id to _args[0]>> <<elseif $childSelected isnot undefined>> <<set $_id to $childSelected.childId>> <</if>> <<if $_id isnot undefined>> <<switch $children[$_id].type>> <<case "human">><<set $_text_output to "child">> <<case "wolf" "wolfboy" "wolfgirl">><<set $_text_output to "pup">> <<case "hawk">><<set $_text_output to ($children[$_id].features.monster is "monster" ? "nestling" : "chick")>> <</switch>> <</if>> <</silently>><<if $_text_output>><<print $_text_output>><</if>><</widget>> /*args[0] - child object*/ <<widget "childTypeDisplay">><<silently>> <<if _args[0] and _args[0].childId>> <<if !(_args[0].type is "wolf" && _args[0].features.monster && _args[0].gender isnot "h")>> <<switch _args[0].gender>> <<case "m">><<set $_text_output to "Male ">> <<case "f">><<set $_text_output to "Female ">> <<case "h">><<set $_text_output to "Hermaphrodite ">> <</switch>> <<else>> <<set $_text_output to "">> <</if>> <<if _args[0].type isnot "human">> <<if _args[0].features.monster>> <<switch _args[0].type>> <<case "wolf">> <<set $_text_output += "Wolf">> <<switch _args[0].gender>> <<case "m">><<set $_text_output += "boy">> <<case "f">><<set $_text_output += "girl">> <<default>><<set $_text_output += "kid">> <</switch>> <<case "hawk">> <<set $_text_output += "Harpy">> <</switch>> <<else>> <<set $_text_output += _args[0].type.toUpperFirst()>> <</if>> <<else>> <<set $_text_output += "Human<<if _args[0].features.beastTransform or _args[0].features.divineTransform>> (<<childTransform _args[0]>>)<</if>>">> <</if>> <</if>> <</silently>><<if $_text_output>><span class="gold">Type:</span> <<print $_text_output>><</if>> <</widget>> <<widget "childTransform">><<silently>> <<if _args[0] and _args[0].childId>> <<set $_child to _args[0]>> <<elseif _args[0] isnot undefined>> <<set $_id to _args[0]>> <<set $_child to $children[$_id]>> <<elseif $childSelected isnot undefined>> <<set $_id to $childSelected.childId>> <<set $_child to $children[$_id]>> <</if>> <<if $_child isnot undefined>> <<set $_text_output to "">> <<switch $_child.features.divineTransform>> <<case "angel">><<set $_text_output += "Angelic">> <<case "demon">><<set $_text_output += "Demonic">> <<case "fallen">><<set $_text_output += "Fallen">> <</switch>> <<if $_child.features.divineTransform and $_child.features.beastTransform>><<set $_text_output += " ">><</if>> <<switch $_child.features.beastTransform>> <<case "cat">><<set $_text_output += "Cat" + ($_child.gender === "m" ? "boy" : "girl")>> <<case "cow">><<set $_text_output += "Cow" + ($_child.gender === "m" ? "boy" : "girl")>> <<case "wolf">><<set $_text_output += "Wolf" + ($_child.gender === "m" ? "boy" : "girl")>> <<case "bird">><<set $_text_output += "Bird" + ($_child.gender === "m" ? "boy" : "girl")>> <<case "fox">><<set $_text_output += "Fox" + ($_child.gender === "m" ? "boy" : "girl")>> <</switch>> <</if>> <</silently>><<if $_text_output>><<print $_text_output>><</if>><</widget>> /*args[0] - childId, args[1] - word*/ <<widget "childFirstWord">><<silently>> <<if _args[0] isnot undefined>> <<set $_id to _args[0]>> <<elseif $childSelected isnot undefined>> <<set $_id to $childSelected.childId>> <</if>> <<if $_id isnot undefined and !$children[$_id].localVariables.firstWord>> <<set $_text_output to $children[$_id].localVariables.firstWord.word>> <</if>> <</silently>><<if $_text_output>><<print $_text_output>><</if>><</widget>> /*args[0] - location, args[1] - toyid, toy set or toy name, args[2] - option of either "notext" or "lowercase"*/ <<widget "childtoy">><<silently>> <<set _toys to $storedChildrenToys[_args[0]]>> <<if _toys>> <<if between(_args[1], 0, _toys.length - 1)>> <<set _toy to _toys[_args[1]]>> <<elseif _args[1]>> <<set _toySelect to []>> <<for $_i to 0; $_i lt _toys.length; $_i++>> <<if _toys[$_i].set is _args[1] or _toys[$_i].name is _args[1]>> <<run _toySelect.push($_i)>> <</if>> <</for>> <<if _toySelect.length gt 0>> <<set _toyid to _toySelect[random(0,_toySelect.length - 1)]>> <<set _toy to _toys[_toyid]>> <</if>> <<else>> <<set _toyid to random(0,_toys.length - 1)>> <<set _toy to _toys[_toyid]>> <</if>> <<if _toy>> <<switch _args[2]>> <<case "notext">> <<case "lowercase">> <<set $_text_output to clone(_toy.name_lower)>> <<set _toyName to clone(_toy.name_lower)>> <<default>> <<set $_text_output to clone(_toy.name)>> <<set _toyName to clone(_toy.name)>> <</switch>> <</if>> <</if>> <</silently>><<if $_text_output>><<print $_text_output>><</if>><</widget>> /*args[0] - location*/ <<widget "childSelectRandom">> <<set $childSelected to Object.values($children).filter(child => !_args[0] or child.location === _args[0]).random()>> <</widget>> <<widget "childViewerDisplay">> <<set _idList to _args[0]>> <<set _listMaxItems to 10>> <<set _listPage to 1>> <<set _listPageMax to Math.ceil(_idList.length / _listMaxItems)>> <<set _childStart to 0>> <<set _childEnd to (_childStart + _listMaxItems gt _idList.length ? _idList.length : _childStart + _listMaxItems)>> <div id="childViewer"> <<childViewerDisplayElements>> </div> <</widget>> <<widget "childViewerPageUpdate">> <<set _childStart to _listMaxItems * (_listPage - 1)>> <<set _childEnd to (_childStart + _listMaxItems lte _idList.length ? _childStart + _listMaxItems : _idList.length)>> <<replace '#childViewer'>> <<childViewerDisplayElements>> <</replace>> <</widget>> <<widget "childViewerDisplayElements">> <div class="settingsGrid m-0 childContainer"> <<for $_i to _childStart; $_i lt _childEnd; $_i++>> <<set _childId to _childrenIds[$_i]>> <<capture _childId>> <div @id="'child-' + _childId"> <<childViewerElement `_childId`>> </div> <</capture>> <</for>> </div> <br> <div class="childrenUiControls"> <<set _disabled = _listPage > 1 ? "" : "disabled">> <div @class="'div-link btn-pagination prev ' + _disabled"> <<link "Previous">> <<if _listPage > 1>> <<set _listPage -= 1>> <<childViewerPageUpdate>> <</if>> <</link>> <div class="btn-pagination-arrow">&lt;</div> </div> <div> <<print (_listPage) + " out of " + _listPageMax>> </div> <<set _disabled = _listPage < _listPageMax ? "" : "disabled">> <div @class="'div-link btn-pagination next ' + _disabled"> <<link "Next">> <<if _listPage < _listPageMax>> <<set _listPage += 1>> <<childViewerPageUpdate>> <</if>> <</link>> <div class="btn-pagination-arrow">&gt;</div> </div> </div> <<run linkifyDivs('#childViewer')>> <</widget>> <<widget "childViewerElement">> <<if _children is undefined>> <<set _children to {}>> <</if>> <<capture _args>> <div class="childItem m-0 childName"> <div> <label><div><<childrenicon _args[0]>></div><div>Name:</div> <div><<textbox "$children[_args[0]].name" `$children[_args[0]].name`>></div></label> </div> </div> <div class="childItem m-0 childDetails"> <<childTypeDisplay $children[_args[0]]>> <span class="no-numberify"> | <<link "Extra Details">><<childViewerHiddenElementsUnhide _args[0]>><</link>> </span> <<childViewerHiddenElements _args[0] _args[1]>> <<childActivity _args[0]>> </div> <</capture>> <</widget>> <<widget "childViewerHiddenElements">> <<if _args[0]>> <div @id="'childViewerHidden-'+_args[0]" @class="'childViewerHidden' + (_args[1] ? '' : ' hidden')"> <span class="gold">Mother:</span> <<if $children[_args[0]].motherKnown>> <<print pregnancyNameCorrection($children[_args[0]].mother, true)>> <<else>> ???? <</if>> | <span class="gold">Father:</span> <<if $children[_args[0]].fatherKnown>> <<print pregnancyNameCorrection($children[_args[0]].father, true)>> <<else>> ???? <</if>> <br> <<if $children[_args[0]].laid>> <span class="gold">Laid:</span> <<print $children[_args[0]].laid.day + " " + $children[_args[0]].laid.month + " " + $children[_args[0]].laid.year>> <span class="gold">Hatched:</span> <<print $children[_args[0]].born.day + " " + $children[_args[0]].born.month + " " + $children[_args[0]].born.year>> <<else>> <span class="gold">Born:</span> <<print $children[_args[0]].born.day + " " + $children[_args[0]].born.month + " " + $children[_args[0]].born.year>> <</if>> <<if $children[_args[0]].adopted>> <span class="gold">Adopted:</span> <<print $children[_args[0]].adopted.day + " " + $children[_args[0]].adopted.month + " " + $children[_args[0]].adopted.year>> <</if>> <br> <span class="gold">Age:</span> <<childAge _args[0] "full">> <br> <span class="gold">Size:</span> <<print $children[_args[0]].features.size>> | <span class="gold">Hair:</span> <<hairmapcolourtext $children[_args[0]].features.hairColour>> <<if $children[_args[0]].features.skinColour>> | <span class="gold">Skin:</span> <<skinColourName $children[_args[0]].features.skinColour>> <</if>> <br> <<if $children[_args[0]].features.identical>> <span class="gold">Identical:</span> <<print $children[_args[0]].features.identical>> <br> <</if>> <<if $children[_args[0]].localVariables.interactionsTotal>> <span class="gold">Total Interactions:</span> <<print $children[_args[0]].localVariables.interactionsTotal>> <br> <</if>> <span class="no-numberify"> <span class="gold">Rename:</span> <<link "Random Name">> <<set $children[_args[0]].name to generateBabyName(undefined, $children[_args[0]].gender, _args[0])>> <<replace `"#child-" + _args[0]`>><<childViewerElement _args[0] true>><</replace>> <</link>> </span> <br> <small> ChildId: <<print $children[_args[0]].childId>>. saveId: <<print $saveId>>. <<if $saveName isnot "">> | name: <<print $saveName>>. <</if>> </small> </div> <</if>> <</widget>> <<widget "childViewerHiddenElementsUnhide">> <<capture _args>> <<if _args[0]>> <<toggleclass `'#childViewerHidden-' + _args[0]` "hidden">> <</if>> <</capture>> <</widget>> <<widget "childActivity">> <<if _args[0]>> <<childAge _args[0]>> <<childSelect _args[0]>> /*'updateChildActivity' Changes the current event if enough time has passed*/ <<updateChildActivity _args[0]>> <hr> <<switch $children[_args[0]].type>> <<case "human">><<humanChildActivity _args[0]>> <<case "wolf" "wolfboy" "wolfgirl">><<wolfChildActivity _args[0]>> <<case "hawk">><<hawkChildActivity _args[0]>> <</switch>> <</if>> <</widget>> /*ToDo: Pregnancy Story Content: Lacking events. Human children events which the place accesses by going to the childrens UI*/ <<widget "humanChildActivity">> <<set _activityColour to !$daily.childInteractions or !$daily.childInteractions.includes(_args[0]) ? " childrensActivityGold" : "">> <span @class="'no-numberify' + _activityColour"> <<switch $children[_args[0]].localVariables.activity>> <<case "noEvent">> <<childHe>>'s sleeping soundly. <<case "sleeping">> <<childHe>>'s sleeping soundly. <<if $children[_args[0]].localVariables.event>> <br> <<set _rng to random(1, 6)>> <<switch _rng>> <<case 1>> <<link [[Watch <<childhim>> (0:05)|Children Activity Events]]>><<pass 5>><<set $childActivityEvent to {event:"transfixed", childid:_args[0]}>><</link>> <<case 2>> <<link [[Watch <<childhim>> (0:05)|Children Activity Events]]>><<pass 5>><<set $childActivityEvent to {event:"stroke", childid:_args[0]}>><</link>> <<case 3>> <<link [[Watch <<childhim>> (0:05)|Children Activity Events]]>><<pass 5>><<set $childActivityEvent to {event:"yawn", childid:_args[0]}>><</link>> <<case 4>> <<link [[Watch <<childhim>> (0:05)|Children Activity Events]]>><<pass 5>><<set $childActivityEvent to {event:"murmur", childid:_args[0]}>><</link>> <<case 5>> <<link [[Nap (0:30)|Children Activity Events]]>><<pass 30>><<set $childActivityEvent to {event:"cotNap", childid:_args[0]}>><</link>> <<default>> <<link [[Watch <<childhim>> (0:05)|Children Activity Events]]>><<pass 5>><<set $childActivityEvent to {event:"shiverInCot", childid:_args[0]}>><</link>> <</switch>> <</if>> <<case "restlessSleep">> <<childHe>>'s moving restlessly in <<childhis>> sleep. <<if $children[_args[0]].localVariables.event>> <br> <<link [[Calm <<childhim>> down (0:30)|Children Activity Events]]>><<pass 30>><<set $childActivityEvent to {event:"restlessSleep", childid:_args[0]}>><</link>> <</if>> <<case "crying">> <<childHe>>'s distressed and crying. <<if $children[_args[0]].localVariables.event>> <br> <<set _rng to random(1, 6)>> <<switch _rng>> <<case 1>> <<link [[Comfort (0:20)|Children Activity Events]]>><<pass 20>><<set $childActivityEvent to {event:"holdToShoulder", childid:_args[0]}>><</link>> <<case 2>> <<link [[Comfort (0:20)|Children Activity Events]]>><<pass 20>><<set $childActivityEvent to {event:"melodicLullaby", childid:_args[0]}>><</link>> <<case 3>> <<link [[Comfort (0:20)|Children Activity Events]]>><<pass 20>><<set $childActivityEvent to {event:"foreheadKiss", childid:_args[0]}>><</link>> <<case 4>> <<link [[Comfort (0:20)|Children Activity Events]]>><<pass 20>><<set $childActivityEvent to {event:"objectShow", childid:_args[0]}>><</link>> <<case 5>> <<link [[Comfort (0:20)|Children Activity Events]]>><<pass 20>><<set $childActivityEvent to {event:"carryRevolt", childid:_args[0]}>><</link>> <<default>> <<link [[Comfort (0:20)|Children Activity Events]]>><<pass 20>><<set $childActivityEvent to {event:"rockToSleep", childid:_args[0]}>><</link>> <</switch>> <</if>> <<case "lonely">> <<childHe>>'s looking lonely. <<if $children[_args[0]].localVariables.event>> <br> <<set _rng to random(1, 10)>> <<switch _rng>> <<case 1>> <<link [[Soothe (0:20)|Children Activity Events]]>><<pass 20>><<set $childActivityEvent to {event:"nurseryRhymes", childid:_args[0]}>><</link>> <<case 2>> <<link [[Soothe (0:20)|Children Activity Events]]>><<pass 20>><<set $childActivityEvent to {event:"FeetCup", childid:_args[0]}>><</link>> <<case 3>> <<link [[Soothe (0:20)|Children Activity Events]]>><<pass 20>><<set $childActivityEvent to {event:"shareThoughts", childid:_args[0]}>><</link>> <<case 4>> <<link [[Soothe (0:20)|Children Activity Events]]>><<pass 20>><<set $childActivityEvent to {event:"speakCry", childid:_args[0]}>><</link>> <<case 5>> <<link [[Soothe (0:20)|Children Activity Events]]>><<pass 20>><<set $childActivityEvent to {event:"waveTongue", childid:_args[0]}>><</link>> <<case 6>> <<link [[Soothe (0:20)|Children Activity Events]]>><<pass 20>><<set $childActivityEvent to {event:"handsClap", childid:_args[0]}>><</link>> <<case 7>> <<link [[Soothe (0:20)|Children Activity Events]]>><<pass 20>><<set $childActivityEvent to {event:"peekaboo", childid:_args[0]}>><</link>> <<case 8>> <<link [[Soothe (0:20)|Children Activity Events]]>><<pass 20>><<set $childActivityEvent to {event:"blowRaspberriesHappy", childid:_args[0]}>><</link>> <<case 9>> <<link [[Soothe (0:20)|Children Activity Events]]>><<pass 20>><<set $childActivityEvent to {event:"blowRaspberriesUpset", childid:_args[0]}>><</link>> <<default>> <<link [[Soothe (0:20)|Children Activity Events]]>><<pass 20>><<set $childActivityEvent to {event:"faceStudy", childid:_args[0]}>><</link>> <</switch>> <</if>> <<case "happy">> <<childHe>>'s smiling and happily cooing. <<if $children[_args[0]].localVariables.event>> <br> <<link [[Smile and laugh (0:20)|Children Activity Events]]>><<pass 20>><<set $childActivityEvent to {event:"smilesAndLaughs", childid:_args[0]}>><</link>> <</if>> <<case "talking">> <<childHe>>'s gurgling and babbling to <<childherself>>. <<if $children[_args[0]].localVariables.event>> <br> <<link [[Join in the babbling (0:10)|Children Activity Events]]>><<pass 10>><<set $childActivityEvent to {event:"talking", childid:_args[0]}>><</link>> <</if>> <<case "talking2">> <<childHe>>'s gurgling and attempting to make sounds to <<childherself>>. <<if $children[_args[0]].localVariables.event>> <br> <<link [[Join in the talking (0:10)|Children Activity Events]]>><<pass 10>><<set $childActivityEvent to {event:"talking2", childid:_args[0]}>><</link>> <</if>> <<case "nappyChange">> <<childHe>>'s looking uncomfortable and smells. <<if $children[_args[0]].localVariables.event>> <br> <<link [[Clean up (0:10)|Children Activity Events]]>><<pass 10>><<set $childActivityEvent to {event:"nappyChange", childid:_args[0]}>><</link>> <</if>> <<case "bathe">> <<childHe>> is looking ready for a bath. <<if $children[_args[0]].localVariables.event>> <<switch random(1, 4)>> <<case 1>> <<link [[Bathe (0:10)|Children Activity Events]]>><<pass 10>><<set $childActivityEvent to {event:"batheGentle", childid:_args[0]}>><</link>> <<case 2>> <<link [[Bathe (0:20)|Children Activity Events]]>><<pass 20>><<set $childActivityEvent to {event:"batheShampoo", childid:_args[0]}>><</link>> <<case 3>> <<link [[Bathe (0:20)|Children Activity Events]]>><<pass 20>><<set $childActivityEvent to {event:"BatheCalm", childid:_args[0]}>><</link>> <<case 4>> <<link [[Bathe (0:20)|Children Activity Events]]>><<pass 20>><<set $childActivityEvent to {event:"batheTantrum", childid:_args[0]}>><</link>> <<default>> <</switch>> <</if>> <<case "thumbSucking">> <<childHe>>'s happily sucking on <<childhis>> thumb. <<case "grumpyChild">> <<childHe>>'s being irritable. <<if $children[_args[0]].localVariables.event>> <br> <<link [[Tickle (0:10)|Children Activity Events]]>><<pass 10>><<set $childActivityEvent to {event:"grumpyChild", childid:_args[0]}>><</link>> <</if>> <<case "crawlingAttempt">> <<childHe>>'s lying on <<childhis>> belly and flailing about. <<if $children[_args[0]].localVariables.event>> <br> <<link [[Help <<childhim>> out (0:05)|Children Activity Events]]>><<pass 5>><<set $childActivityEvent to {event:"crawlingAttempt", childid:_args[0]}>><</link>> <</if>> <<case "crawlingAttempt2">> <<childHe>>'s slowly crawling about the room. <<if $children[_args[0]].localVariables.event>> <br> <<link [[Help <<childhim>> out (0:05)|Children Activity Events]]>><<pass 5>><<set $childActivityEvent to {event:"crawlingAttempt2", childid:_args[0]}>><</link>> <</if>> <<case "readingAttempt">> <<childHe>>'s looking at a children's book upside down. <<if $children[_args[0]].localVariables.event>> <br> <<link [[Flip the book (0:10)|Children Activity Events]]>><<pass 10>><<set $childActivityEvent to {event:"readingAttempt", childid:_args[0]}>><</link>> <</if>> <<case "readingCorrected">> <<childHe>>'s looking at a children's book. <<case "babyRattle">> <<childtoy $location "baby rattles" "notext">> <<if _toyid>> <<childHe>>'s staring at a <<childtoy $location _toyid "lowercase">>. <<if $children[_args[0]].localVariables.event>> <br> <<capture _toyid>><<link [[Shake it (0:05)|Children Activity Events]]>><<pass 5>><<set $childActivityEvent to {event:"babyRattle", childid:_args[0], toyid:_toyid}>><</link>><</capture>> | <</if>> <<else>> <<humanChildActivityNoToy _args[0]>> <</if>> <<case "teddyBear">> <<childtoy $location "teddy bears" "notext">> <<if _toyid>> <<childHe>>'s turning and tossing in <<childhis>> sleep by a <<childtoy $location _toyid "lowercase">>. <<if $children[_args[0]].localVariables.event>> <br> <<capture _toyid>><<link [["Give " + _toyName + " (0:05)"|Children Activity Events]]>><<pass 5>><<set $childActivityEvent to {event:"teddyBear", childid:_args[0], toyid:_toyid}>><</link>><</capture>> | <</if>> <<else>> <<humanChildActivityNoToy _args[0]>> <</if>> <<case "teddyBear2">> <<childHe>>'s sleeping soundly by <<childhis>> <<print $children[_args[0]].localVariables.toy>>. <<case "toyCar">> <<childtoy $location "toy cars" "notext">> <<if _toyid>> <<childHe>>'s waving a <<childtoy $location _toyid "lowercase">> in the air. <<if $children[_args[0]].localVariables.event>> <br> <<capture _toyid>><<link [[Play with <<childhim>> (0:05)|Children Activity Events]]>><<pass 5>><<set $childActivityEvent to {event:"toyCar", childid:_args[0], toyid:_toyid}>><</link>><</capture>> | <</if>> <<else>> <<humanChildActivityNoToy _args[0]>> <</if>> <<case "dummy">> <<childtoy $location "dummies" "notext">> <<if _toyid>> <<set _rng to random(1,4)>> <<childHe>>'s <<childcry _rng>>. There's a <<childtoy $location _toyid "lowercase">> on the floor nearby. <<if $children[_args[0]].localVariables.event>> <br> <<capture _toyid _rng>><<link [[Pacify (0:15)|Children Activity Events]]>><<pass 15>><<set $childActivityEvent to {event:"dummy", childid:_args[0], toyid:_toyid, childCry:_rng}>><</link>><</capture>> | <</if>> <<else>> <<humanChildActivityNoToy _args[0]>> <</if>> <<case "dummySucking">> <<childHe>>'s suckling loudly on <<childhis>> dummy. <<case "clown">> <<childtoy $location "clown" "notext">> <<if _toyid>> <<childHe>>'s looking at a <<childtoy $location _toyid "lowercase">> with an unsure expression. <<if $children[_args[0]].localVariables.event>> <br> <<capture _toyid>><<link [[Play with <<childhim>> (0:05)|Children Activity Events]]>><<pass 5>><<set $childActivityEvent to {event:"clown", childid:_args[0], toyid:_toyid}>><</link>><</capture>> | <</if>> <<else>> <<humanChildActivityNoToy _args[0]>> <</if>> <<case "clownHappy">> <<if _childTotalDays lt 199>> <<childHe>>'s playing happily looking between the clown and you. <<else>> <<childHe>>'s playing happily with the clown, pulling its cord and making it chuckle every now and then. <</if>> <<case "Robin">> <<if getRobinLocation() isnot "orphanage" or $location is "alex_cottage">> <<childHe>>'s happily sucking on <<childhis>> thumb. <<else>> Robin cradles <<childhim>>. <<if $children[_args[0]].localVariables.event>> <br> <<link [[Hold (0:05)|Children Activity Events]]>><<pass 5>><<set $childActivityEvent to {event:"Robin", childid:_args[0]}>><</link>> <</if>> <</if>> <<case "Wraith">> <<childHe>>'s laughing and reaching for something unseen. <br> <<link [[Watch <<childhim>> (0:05)|Children Activity Events]]>><<pass 5>><<set $childActivityEvent to {event:"Wraith", childid:_args[0]}>><</link>> <<default>> <<childHe>>'s has figured out that they're in a video game (This is an error, please report). <<print $children[_args[0]].localVariables.activity>> <</switch>> </span> <</widget>> <<widget "humanChildActivityNoToy">> <<childHe>>'s sleeping soundly. <<if $children[_args[0]].localVariables.event>> <br> <<link [[Watch <<childhim>> (0:05)|Children Activity Events]]>><<pass 5>><<set $childActivityEvent to {event:"shiverInCot", childid:_args[0]}>><<set $child_played.pushUnique(_args[0])>><</link>> <</if>> <</widget>> /*ToDo: Pregnancy Story Content: Lacking events. Wolf pups events which the place accesses by going to the childrens UI*/ <<widget "wolfChildActivity">> <span class="no-numberify"> <<switch $children[_args[0]].localVariables.activity>> <<case "noEvent">> <<childHe>>'s sleeping soundly. <<case "sleeping">> <<childHe>>'s sleeping on <<childhis>> own. <<if $children[_args[0]].localVariables.event>> <br> <<link [[Stroke head (0:10)|Children Activity Events]]>><<pass 10>><<set $childActivityEvent to {event:"sleepingStroke", childid:_args[0]}>><</link>> <</if>> <<case "sleepingWithWolf">> <<childHe>>'s sound asleep while cuddled up against another <<if $monster is 1>>wolfgirl<<else>>female wolf<</if>>. <<if $children[_args[0]].localVariables.event>> <br> <<link [[Cuddle up to (0:30)|Children Activity Events]]>><<pass 30>><<set $childActivityEvent to {event:"cuddleAndNap", childid:_args[0]}>><</link>> <</if>> <<case "crying">> <<childHe>>'s distressed and <<childcry>>. <<if $children[_args[0]].localVariables.event>> <br> <<link [[Comfort <<childhim>> (0:15)|Children Activity Events]]>><<pass 15>><<set $childActivityEvent to {event:"cryingWolf", childid:_args[0]}>><</link>> <</if>> <<case "playing">> <<childHe>>'s playing with some other pups. <<if $children[_args[0]].localVariables.event>> <br> <<link [[Join in (0:15)|Children Activity Events]]>><<pass 15>><<set $childActivityEvent to {event:"playing", childid:_args[0]}>><</link>> <</if>> <<case "watchingCurious">> <<childHe>>'s watching you with a curious expression. <<if $children[_args[0]].localVariables.event>> <br> <<link [[Sate curiosity (0:30)|Children Activity Events]]>><<pass 30>><<set $childActivityEvent to {event:"curiousGaze", childid:_args[0]}>><</link>> <</if>> <<case "watchingLonging">> <<childHe>>'s watching you with a longing expression. <<if $children[_args[0]].localVariables.event>> <br> <<link [[Scratch ears (0:30)|Children Activity Events]]>><<pass 30>><<set $childActivityEvent to {event:"longingGaze", childid:_args[0]}>><</link>> <</if>> <<case "playFighting">> <<childHe>>'s play fighting with another pup. <<if $children[_args[0]].localVariables.event>> <br> <<link [[Calm <<childhim>> (0:10)|Children Activity Events]]>><<pass 10>><<set $childActivityEvent to {event:"playFighting", childid:_args[0]}>><</link>> <</if>> <<case "staringOutside">> <<childHe>>'s staring out of the cave. <<if $children[_args[0]].localVariables.event>> <br> <<link [[Go for a walk (0:30)|Children Activity Events]]>><<pass 30>><<set $childActivityEvent to {event:"fieldTrip", childid:_args[0]}>><</link>> <</if>> <<case "grumpyWolf">> <<childHe>>'s sitting alone and snapping at any who come near. <<if $children[_args[0]].localVariables.event>> <br> <<link [[Cheer up (0:15)|Children Activity Events]]>><<pass 15>><<set $childActivityEvent to {event:"grumpyWolf", childid:_args[0]}>><</link>> <</if>> <<case "hungryWolf">> <<childHe>>'s <<childcry>> in front of an overcrowded female <<wolf_cave_singular "f">>. <<if $children[_args[0]].localVariables.event>> <br> <<link [[Help finding a nipple (0:15)|Children Activity Events]]>><<pass 15>><<set $childActivityEvent to {event:"hungryWolf", childid:_args[0]}>><</link>> <</if>> <<case "gnawing">> <<childHe>>'s gnawing on <<switch random(1,4)>> <<case 1>>a shed antler. <<set $pupToy to "antler">> <<case 2>>a deer bone. <<set $pupToy to "bone">> <<case 3>>an old rubber boot. <<set $pupToy to "boot">> <<case 4>>a dead branch. <<set $pupToy to "stick">> <</switch>> <<if $children[_args[0]].localVariables.event>> <br> <<link [[Play tug of war (0:10)|Children Activity Events]]>><<pass 10>><<set $childActivityEvent to {event:"gnawing", childid:_args[0]}>><</link>> <</if>> <<case "squeakyToy">> <<silently>><<childtoy $location "chew toys" "lowercase">><</silently>> <<if _toyName?.includes("squeaky")>> <<childHe>>'s looking at a _toyName with curiosity. <<if $children[_args[0]].localVariables.event>> <br> <<capture _toyName>><<link [[Give squeaky toy (0:05)|Children Activity Events]]>><<pass 5>><<set $childActivityEvent to {event:"squeakyToy", childid:_args[0]}>><<set $phase to _toyName>><</link>><</capture>> <</if>> <<else>> <<set $children[_args[0]].localVariables.activity to "sleeping">> <<wolfChildActivity _args[0]>> <</if>> <<case "squeakyToy2">> <<silently>><<childtoy $location "chew toys" "lowercase">><</silently>> <<if _toyName?.includes("squeaky")>> <<childHe>> sniffs the _toyName and bats it experimentally. <<if $children[_args[0]].localVariables.event>> <br> <<capture _toyName>><<link [[Squeak the _toyName (0:05)|Children Activity Events]]>><<pass 5>><<set $childActivityEvent to {event:"squeakyToy2", childid:_args[0]}>><<set $phase to _toyName>><</link>><</capture>> <</if>> <<else>> <<set $children[_args[0]].localVariables.activity to "sleeping">> <<wolfChildActivity _args[0]>> <</if>> <<case "chewRope">> <<silently>><<childtoy $location "chew toys" "lowercase">><</silently>> <<if _toyName?.includes("rope")>> <<childHe>>'s chewing on a colourful rope toy. <<if $children[_args[0]].localVariables.event>> <br> <<link [[Play tug of war (0:10)|Children Activity Events]]>><<pass 10>><<set $childActivityEvent to {event:"chewRope", childid:_args[0]}>><</link>> <</if>> <<else>> <<set $children[_args[0]].localVariables.activity to "sleeping">> <<wolfChildActivity _args[0]>> <</if>> <<case "chewRope2">> <<silently>><<childtoy $location "chew toys" "lowercase">><</silently>> <<if _toyName?.includes("rope")>> <<childHe>> sniffs the rope, then gives it an experimental nip. <<if $children[_args[0]].localVariables.event>> <br> <<link [[Pull the rope (0:05)|Children Activity Events]]>><<pass 5>><<set $childActivityEvent to {event:"chewRope2", childid:_args[0]}>><</link>> <</if>> <<else>> <<set $children[_args[0]].localVariables.activity to "sleeping">> <<wolfChildActivity _args[0]>> <</if>> <<case "chewBone">> <<silently>><<childtoy $location "chew toys" "lowercase">><</silently>> <<if _toyName?.includes("bone")>> <<if $children[_args[0]].localVariables.event>> <<childHe>>'s trying to dig a hole. <br> <<link [[Help dig (0:20)|Children Activity Events]]>><<pass 20>><<set $childActivityEvent to {event:"chewBone", childid:_args[0]}>><</link>> <<else>> <<childHe>>'s guarding <<childhis>> buried bone. <</if>> <<else>> <<set $children[_args[0]].localVariables.activity to "sleeping">> <<wolfChildActivity _args[0]>> <</if>> <<case "chewBone2">> <<silently>><<childtoy $location "chew toys" "lowercase">><</silently>> <<if _toyName?.includes("bone")>> <<childHe>> sniffs the bone, then begins licking it. <<if $children[_args[0]].localVariables.event>> <br> <<link [[Nudge bone (0:05)|Children Activity Events]]>><<pass 5>><<set $childActivityEvent to {event:"chewBone2", childid:_args[0]}>><</link>> <</if>> <<else>> <<set $children[_args[0]].localVariables.activity to "sleeping">> <<wolfChildActivity _args[0]>> <</if>> <<case "rollBall">> <<silently>><<childtoy $location "chew toys" "lowercase">><</silently>> <<if _toyName?.includes("ball")>> <<childHe>>'s nudging a ball closer to you. <<if $children[_args[0]].localVariables.event>> <br> <<link [[Roll ball (0:15)|Children Activity Events]]>><<pass 15>><<set $childActivityEvent to {event:"rollBall", childid:_args[0]}>><</link>> <</if>> <<else>> <<set $children[_args[0]].localVariables.activity to "sleeping">> <<wolfChildActivity _args[0]>> <</if>> <<case "rollBall2">> <<silently>><<childtoy $location "chew toys" "lowercase">><</silently>> <<if _toyName?.includes("ball")>> <<childHe>> nuzzles the ball and rolls it along the ground. <<if $children[_args[0]].localVariables.event>> <br> <<link [[Throw ball (0:05)|Children Activity Events]]>><<pass 5>><<set $childActivityEvent to {event:"rollBall2", childid:_args[0]}>><</link>> <</if>> <<else>> <<set $children[_args[0]].localVariables.activity to "sleeping">> <<wolfChildActivity _args[0]>> <</if>> <<default>> <<childHe>>'s has figured out that they're in a video game (This is an error, please report). <<print $children[_args[0]].localVariables.activity>> <</switch>> </span> <</widget>> <<widget "wolfChildActivityNoToy">> <<childHe>>'s sleeping on <<childhis>> own. <<if $children[_args[0]].localVariables.event>> <br> <<link [[Stroke head (0:10)|Children Activity Events]]>><<pass 10>><<set $childActivityEvent to {event:"sleepingStroke", childid:_args[0]}>><</link>> <</if>> <</widget>> <<widget "hawkChildActivity">> <span class="no-numberify"> <<switch $children[_args[0]].localVariables.activity>> <<case "noEvent">> <<childHe>>'s sleeping soundly. <<case "sleeping">> <<childHe>>'s sleeping on <<childhis>> own. <<if $children[_args[0]].localVariables.event>> <br> <<link [[Stroke head (0:10)|Children Activity Events]]>><<pass 10>><<set $childActivityEvent to {event:"sleepingStrokeHawk", childid:_args[0]}>><</link>> <</if>> <<case "sleepingWithGreatHawk">> <<npc "Great Hawk">> <<childHe>>'s sound asleep while cuddled up against <<your_bird_text>>. <<if $children[_args[0]].localVariables.event>> <br> <<link [[Cuddle up to (0:30)|Children Activity Events]]>> <<set _otherChildrenIds to []>> <<run Object.values($children).forEach(child => { if (child.location is $location and child.localVariables.activity is "sleepingWithGreatHawk" and child.childId isnot T.args[0]) { T.otherChildrenIds.push(child.childId); } })>> <<pass 30>><<set $childActivityEvent to {event:"cuddleAndNapHawk", childid:_args[0], otherChildrenIds:_otherChildrenIds}>> <</link>> <</if>> <<endevent>> <<case "crying">> <<childHe>>'s distressed and <<childcry>>. <<if $children[_args[0]].localVariables.event>> <br> <<link "Comfort <<childhim>> (0:15)" "Children Activity Events">><<pass 15>><<set $childActivityEvent to {event:"cryingHawk", childid:_args[0]}>><</link>> <</if>> <<case "reaching">> <<childHe>>'s reaching for you. <br> <<link "Pick <<childhim>> up (0:15)" "Children Activity Events">><<pass 15>><<set $childActivityEvent to {event:"pickUpHawk", childid:_args[0]}>><</link>> <<case "flap">> <<childHe>>'s flapping <<childhis>> little wings in short bursts. <br> <<link "Help <<childhim>> pretend to fly (0:15)" "Children Activity Events">><<pass 15>><<set $childActivityEvent to {event:"pretendFly", childid:_args[0]}>><</link>> <<case "preen">> <<childHe>> seems agitated and pecks at <<childhis>> wings. <br> <<link "Help <<childhim>> preen (0:15)" "Children Activity Events">><<pass 15>><<set $childActivityEvent to {event:"preen", childid:_args[0]}>><</link>> <<case "perch">> <<childHe>> stares out at the perch. <br> <<link "Take <<childhim>> to the perch (0:15)" "Children Activity Events">><<pass 15>><<set $childActivityEvent to {event:"perch", childid:_args[0]}>><</link>> <<case "bathe">> <<childHe>> looks like <<childhe>> needs a bath. <br> <<link "Bathe <<childhim>> (0:15)" "Children Activity Events">><<pass 15>><<set $childActivityEvent to {event:"bathe", childid:_args[0]}>><</link>> <<case "batheSelf">> <<childHe>>'s dipping <<childhis>> legs in the rainwater pool. <br> <<link "Help <<childhim>> bathe (0:15)" "Children Activity Events">><<pass 15>><<set $childActivityEvent to {event:"batheHelp", childid:_args[0]}>><</link>> <<case "lurkerEat">> <<childHe>>'s <<if _childDays lte 180>> <<if $cmonster>> gumming on a piece of lurker meat. <<else>> pecking at a piece of lurker meat. <</if>> <<else>> <<if $cmonster>> chewing on a lurker. <<else>> pecking at a lurker. <</if>> <</if>> <<case "swingToy">> /* currently unreachable. credit writer as Anonymous when properly added */ <<silently>><<childtoy $location "hawk toys" "lowercase">><</silently>> <<if _toyName?.includes("swing")>> <<childHe>>'s trying to climb onto the swing. <<if $children[_args[0]].localVariables.event>> <br> <<link [[Help <<childhim>> up (0:05)|Children Activity Events]]>><<pass 5>><<set $childActivityEvent to {event:"swingToy", childid:_args[0]}>><</link>> <</if>> <<else>> <<set $children[_args[0]].localVariables.activity to "sleeping">> <<hawkChildActivity _args[0]>> <</if>> <<case "preeningToy">> /* currently unreachable. credit writer as mochamante when properly added */ <<silently>><<childtoy $location "hawk toys" "lowercase">><</silently>> <<if _toyName?.includes("preening")>> <<if _childTotalDays lte 40>> <<childHe>>'s awkwardly trying to preen <<childhimself>>. <<else>> <<childHe>>'s looking at the preening toy. <</if>> <<if $children[_args[0]].localVariables.event>> <br> <<link [[Give preening toy (0:05)|Children Activity Events]]>><<pass 5>><<set $childActivityEvent to {event:"preeningToy", childid:_args[0]}>><</link>> <</if>> <<else>> <<set $children[_args[0]].localVariables.activity to "sleeping">> <<hawkChildActivity _args[0]>> <</if>> <<default>> <<childHe>>'s has figured out that they're in a video game (This is an error, please report). <<print $children[_args[0]].localVariables.activity>> <</switch>> </span> <</widget>> <<widget "skinColourName">><<silently>> <<switch _args[0]>> <<case "rlight" "ylight" "glight" "blight">><<set $_text_output to "light">> <<case "rmedium" "ymedium" "gmedium" "bmedium">><<set $_text_output to "medium">> <<case "rdark" "ydark" "gdark" "bdark">><<set $_text_output to "dark">> <<case "ghostlyPale" "ghost">><<set $_text_output to "ghostly pale">> <<case "gyaru" "ygyaru" "rgyaru" "ggyaru" "bgyaru">><<set $_text_output to "medium">> <<default>><<set $_text_output to _args[0]>> <</switch>> <</silently>><<print $_text_output>> <</widget>><<widget "creatureActivity">> <!-- Activity is determined by parasite's speed stat --> <<if _args[0]>> <<if _args[0] lt 60>> <span class="gold">Perfect activity</span> <<earnFeat "Top Broodmother Host">> <<elseif _args[0] lte 70>> <span class="green">Amazing activity</span> <<elseif _args[0] lte 100>> <span class="teal">Good activity</span> <<elseif _args[0] lte 150>> <span class="lblue">Decent activity</span> <<elseif _args[0] lte 200>> <span class="blue">Okay activity</span> <<elseif _args[0] lte 250>> <span class="purple">Poor activity</span> <<elseif _args[0] lte 300>> <span class="pink">Rare activity</span> <<else>> <span class="red">Very rare activity</span> <</if>> <</if>> <</widget>> <<widget "creatureContainersProgressDay">> <!-- Runs once per day --> <<set _list to $container.list>> <<for _i to 0; _i lt _list.length; _i++>> <<set _container to $container[_list[_i]]>> <<if _container.count is 0>> <<set _container.daysSinceFed to 0>> <<continue>> <</if>> <<if _list[_i] is "home">> <!-- Kylar will help feed your home parasites at high love. This is told to the player with a note signed "K" --> <<if C.npc.Kylar.love gte 75 and C.npc.Kylar.state is "active">> <<set _container.kylarHelp to true>> <<else>> <<set _container.kylarHelp to false>> <</if>> <<if _container.kylarHelp is true and _container.kylarDelay is 0 and _container.daysSinceFed is _container.maxDaysWithoutFood>> <<npcincr Kylar love -1>> <<set _container.daysSinceFed -= 1>> <<set _container.kylarFed to true>> <<elseif _container.kylarHelp is true and _container.kylarDelay gt 0 and _container.daysSinceFed is 0>> <<set _container.kylarDelay-->> <<set _container.kylarFed to false>> <</if>> <</if>> <<set _container.daysSinceFed += 1>> <<if _container.daysSinceFed gt _container.maxDaysWithoutFood>> <!-- Parasites die if they don't get fed enough. The max time you can leave them is determined by tank size/parasite barn quality --> <<set _container.deadCreatures to _container.count>> <<for _i to 0; _i lt _container.maxCount; _i++>> <<if _container.creatures[_i] is undefined or _container.creatures[_i] is null>> <<continue>> <</if>> <<if _container.creatures[_i].creature.includes("Pale") and $wraith.state>> <!-- If a pale parasite dies, the Ivory Wraith becomes angry, and encounters become more dangerous --> <<set $wraith.offspring to "dead">> <<set $wraithAngerCooldown to 30>> <<set $wraithShow to true>> <<if !$wraithAngerCount>> <<set $wraithAngerCount to 0>> <</if>> <<set $wraithAngerCount ++>> <</if>> <</for>> <<set _container.count to 0>> <<set _container.creatures to {}>> <</if>> <<set _container.visited to false>> <</for>> <</widget>> <<widget "creatureVisit">> <!-- You can visit each location to get stat reductions once per day --> <<set _container.visited to true>> <<set _container.daysSinceFed to 0>> <<if _args[0] is false>> <<set $_notVisited to false>> <<else>> <<set $_notVisited to true>> <</if>> <<set $_creature to []>><<set _creatureTip to []>><<set _luxuryTip to []>> /*stress, trauma, fatigue, purity, hallucinogens*/ <<set _boosts to {stress: 0, trauma: 0, tiredness: 0, purity: 0, hallucinogen: 0}>> <<set _tenticles to 0>><<set _paleChance to 0>> <<for _i to 0; _i lt _container.maxCount; _i++>> <<if _container.creatures[_i] is undefined or _container.creatures[_i] is null>> <<continue>> <</if>> <<set $_creature[_i] to {tiredness: 0, purity: 0, hallucinogen: 0, tenticles: 0}>> <<set _creatureTip[_i] to []>> <!-- Higher tending increases stress and fatigue losses --> <<set _tendingMulti to 1 + (currentSkillValue('tending') / 1000)>> <<set _pregValue = Math.floor(5000 / _container.creatures[_i].stats.speed)>> <<if _container.upgrades.luxury gt 0>> <!-- Decorations/barn quality increase value --> <<set _pregValue to Math.floor(_pregValue * (1 + (0.25 * _container.upgrades.luxury)))>> <</if>> <<if _pregValue gt 0>> <!-- The decorations get a tooltip noting that stress is reduced --> <<set _boosts.stress += Math.floor(_pregValue * _tendingMulti)>> <<set _luxuryTip.pushUnique("- Stress")>> <</if>> <<if Math.floor(_pregValue / 8) gt 0>> <!-- With high enough value, trauma is also reduced --> <<set _boosts.trauma += Math.floor(_pregValue / 8)>> <<set _luxuryTip.pushUnique("- Trauma")>> <</if>> <<if _container.creatures[_i].creature is "Slime">> <!-- Slimes innately raise purity --> <<set _boosts.purity += 0.5>> <<set $_creature[_i].purity += 0.5>> <</if>> <<if _container.creatures[_i].creature is "Pale Slime">> <!-- Pale slimes raise purity more and also raise hallucinogens --> <<set _boosts.purity += 1.5>> <<set _boosts.hallucinogen += 20>> <<set $_creature[_i].purity += 1.5>> <<set $_creature[_i].hallucinogen to 1>> <<set _paleChance++>> <</if>> <<if _container.creatures[_i].creature is "Worm">> <!-- Worms innately lower purity --> <<set _boosts.purity -= 0.5>> <<set $_creature[_i].purity -= 0.5>> <</if>> <<if _container.creatures[_i].creature is "Pale Tentacle">> <!-- Pale tentacles lower fatigue and impact purity based on other parasites --> <<if Math.floor(_pregValue / 3) gt 0>> <<set _boosts.tiredness += Math.floor((_pregValue / 3) * _tendingMulti)>> <<set _boosts.hallucinogen += 30>> <<set $_creature[_i].tiredness to 1>> <<set $_creature[_i].hallucinogen to 1>> <<set _paleChance++>> <</if>> <<set _tenticles += 1.5>><<set $_creature[_i].tenticles += 1.5>> <<elseif _container.creatures[_i].creature.includes("Tentacle") or _container.creatures[_i].creature.includes("Vine")>> <!-- Other tentacles and vines also impact fatigue and purity, but less than pale tentacles --> <<if Math.floor(_pregValue / 4) gt 0>> <<set _boosts.tiredness += Math.floor((_pregValue / 4) * _tendingMulti)>> <<set $_creature[_i].tiredness to 1>> <</if>> <<set _tenticles += 0.5>><<set $_creature[_i].tenticles += 0.5>> <</if>> <<if Object.keys($_creature[_i]).length gte 1>> <!-- Adding the tooltips --> <<if $_creature[_i].tiredness is 1>> <<set _creatureTip[_i].pushUnique("- Fatigue")>> <</if>> <<if $_creature[_i].purity gt 0>> <<set _creatureTip[_i].pushUnique("+ Purity (natural)")>> <<elseif $_creature[_i].purity lt 0>> <<set _creatureTip[_i].pushUnique("- Purity (natural)")>> <</if>> <<if $_creature[_i].hallucinogen is 1>> <<set _creatureTip[_i].pushUnique("+ Hallucinations")>> <</if>> <</if>> <</for>> <!-- Tentacle purity calculation and tooltips --> <<if _boosts.purity gt 0>> <<set _boosts.purity += _tenticles>> <<elseif _boosts.purity lt 0>> <<set _boosts.purity -= _tenticles>> <</if>> <<set _boosts.purity to Math.ceil(_boosts.purity)>> <<for _i to 0; _i lt _creatureTip.length; _i++>> <<if _container.creatures[_i] is undefined or _container.creatures[_i] is null>> <<continue>> <</if>> <<if $_creature[_i].tenticles isnot 0>> <<if _boosts.purity gte 1>> <<set _creatureTip[_i].pushUnique("+ Purity (inherited)")>> <<elseif _boosts.purity lte -1>> <<set _creatureTip[_i].pushUnique("- Purity (inherited)")>> <</if>> <</if>> <</for>> <<if $_notVisited>> <!-- Stat changes only happen once per day --> <<if _boosts.stress isnot 0>> <<set $stress -= _boosts.stress>><<lstress>> <</if>> <<if _boosts.trauma isnot 0>> <<set $trauma -= _boosts.trauma>><<traumaclamp>><<ltrauma>> <</if>> <<if _boosts.tiredness isnot 0>> <<set $tiredness -= _boosts.tiredness>><<ltiredness>> <</if>> <<if _boosts.purity isnot 0>> <<purity _boosts.purity>> <<if _boosts.purity gt 0>><<gpurity>><<else>><<lpurity>><</if>> <</if>> <<if _boosts.hallucinogen isnot 0>> <<hallucinogen _boosts.hallucinogen>><<ghallucinogens>> <</if>> <<if $wraith.state and (_paleChance gte random(1, 10) or _paleChance gte 1 and !$wraith.offspringWarning) and !$possessed>> <!-- When you have pale parasites, the Ivory Wraith has a chance of appearing and warning you to keep them alive --> <!-- It's guaranteed to appear if you're viewing pale parasites for the first time --> <br><br> You catch a glimpse of a pale figure standing right next to you. You jump back in shock. It slowly turns to you. <br><br> "<span class="wraith">Beautiful. Keep <<pluralise _container.count "it" "them">> safe.</span>" It disappears with a bright flash. <<stress 6>><<gstress>> <<if !["dead","sold"].includes($wraith.offspring)>> <<set $wraith.offspring to "alive">> <</if>> <<if !$wraith.offspringWarning>> <br> You try to imagine what would happen if you let the pale creature die. <span class="purple">A spike of dread shoots through you.</span> <<set $wraith.offspringWarning to true>> <</if>> <</if>> <</if>> <</widget>> <<widget "creatureTooltip">> <<if _creatureTip[_i].length gte 1 and $pregnancyStats.parasiteBook is 3 and !$settings.blindStatsEnabled>> <mouse class="tooltip"><<print _container.creatures[_i].creature>><span class="gold"><<print _creatureTip[_i].join("<br>")>></span></mouse> <<else>> <<print _container.creatures[_i].creature>> <</if>> <</widget>> <<widget "luxuryTooltip">> <span class="gold"> <<if $phase is "farm" and $farm.parasitebarn gte 2>> <<if _luxuryTip.length gte 1 and $pregnancyStats.parasiteBook is 3 and !$settings.blindStatsEnabled>> <mouse class="tooltip">as advanced as can be<span><<print _luxuryTip.join("<br>")>></span></mouse> <<else>> as advanced as can be <</if>> <<else>> <<if _luxuryTip.length gte 1 and $pregnancyStats.parasiteBook is 3 and !$settings.blindStatsEnabled>> <mouse class="tooltip"><<print _container.decorations.toLowerCase()>><span><<print _luxuryTip.join("<br>")>></span></mouse> <<else>> <<print _container.decorations.toLowerCase()>> <</if>> <</if>> </span> <</widget>> <<widget "containersLink">> <!-- Printing the initial link to the containers --> <<if $location is "alex_farm">> <<set $phase to "farm">> <<else>> <<set $phase to $location>> <</if>> <<switch $phase>> <<case "farm">><<farmicon "parasitebarn">> <<case "home">><<fishtankicon>> <<default>><<investigateicon>> <</switch>> <<set $container.lastLocation to $location>> <<if $nextPassageCheck is "Containers">> <span class="nextLink"><<link [["Check the " + $container[$phase].name.toLowerCase() + " (0:05)"|Containers]]>><<pass 5>><</link>></span> <<elseif $container[$phase].kylarFed is true>> <<link [["Check the " + $container[$phase].name.toLowerCase() + " (0:05)"|Kylar Parasites Feed]]>><<pass 5>><</link>> <<else>> <<link [["Check the " + $container[$phase].name.toLowerCase() + " (0:05)"|Containers]]>><<pass 5>><</link>> <</if>> <br> <</widget>> <<widget "containerInfo">> <<assignmenticon>><<wearProp "notebook">><<updatesidebarimg>> <<link "Close notebook">><<handheldon>><<updatesidebarimg>><<replace "#info">><<assignmenticon>><<link "Open notebook">><<replace "#info">><<containerInfo>><</replace>><</link>><</replace>><</link>> <br> <<set _locCount to 0>> <<for _locs range $container.list>> <<if $container[_locs].count gte 1>> <<set _locCount++>> <</if>> <</for>> <<if _locCount gte 2>> Checking on your parasites will impact your stats once per day, per location. <<else>> Checking on your parasites will impact your stats once per day. <</if>> <<if $location is "alex_farm">> The quality of the parasite barn, as well as the activity of the parasites present, <<elseif $location is "home">> The quality of the decorations you have, as well as the activity of the parasites present, <<else>> The activity of the parasites present <</if>> determines how much stress and trauma is reduced when checking on your parasites. Activity goes from <span class="red">very rare</span> to <span class="gold">perfect</span>. <br><br> <<if $pregnancyStats.parasiteTypesSeen.includes("Slime")>> <li><b>Slimes</b> of any kind raise purity by a small amount when checking on them.</li> <</if>> <<if $pregnancyStats.parasiteTypesSeen.includes("Worm")>> <li><b>Worms</b> lower purity by a small amount when checking on them.</li> <</if>> <<if $pregnancyStats.parasiteTypesSeen.includes("Tentacle")>> <li><b>Tentacles</b> of any kind lower fatigue when checking on them. They can also raise or lower purity, depending on what other parasites are present. <<if _boosts and _boosts.purity gt 0>> Currently, they're raising purity. <<elseif _boosts and _boosts.purity lt 0>> Currently, they're lowering purity. <<else>> Currently, they're doing neither. <</if>> They are more likely to have better activity than other parasites.</li> <<if $pregnancyStats.parasiteTypesSeen.includes("Vine")>> <li><b>Vines</b> have the same effect as tentacles.</li> <</if>> <<elseif $pregnancyStats.parasiteTypesSeen.includes("Vine")>> <li><b>Vines</b> lower fatigue when checking on them. They can also raise or lower purity, depending on what other parasites are present. <<if _boosts and _boosts.purity gt 0>> Currently, they're raising purity. <<elseif _boosts and _boosts.purity lt 0>> Currently, they're lowering purity. <<else>> Currently, they're doing neither. <</if>> They are more likely to have better activity than other parasites.</li> <</if>> <<if $pregnancyStats.parasiteTypesSeen.includes("Lurker")>> <li><b>Lurkers</b> are more likely to have better activity, but take longer to birth and sell for less. They do not have any other notable traits.</li> <</if>> <!-- Printing info for all remaining types seen, that don't have any special traits --> <<set $_typesRemainder to clone($pregnancyStats.parasiteTypesSeen).filter(types => !["Lurker","Vine","Tentacle","Slime","Worm"].includes(types))>> <<if $_typesRemainder.length gte 1>> <<for _r to 0; _r lt $_typesRemainder.length; _r++>> <<set $_typesRemainder[_r] to "<b>" + $_typesRemainder[_r]>> <<if $_typesRemainder[_r].endsWith("s") or $_typesRemainder[_r].endsWith("sh")>> <!-- Avoiding "Fishs". Most parasites have the s stripped off the end anyway, but best to be sure --> <<set $_typesRemainder[_r] += "</b>">> <<else>> <<set $_typesRemainder[_r] += "s</b>">> <</if>> <</for>> <li><<print formatList($_typesRemainder)>> do not have any notable traits.</li> <</if>> <!-- Pale parasites are down here because they're variants. It looks kinda awkward because there are very few parasite variants --> <<if $pregnancyStats.parasiteVariantsSeen.includes("Pale")>> <li><b><span class="wraith">Pale</span></b> parasites have larger bonuses than other parasites and also afflict you with hallucinogens.</li> <</if>> <!-- Printing info for all remaining variants seen, that don't have any special traits --> <<set $_variantsRemainder to clone($pregnancyStats.parasiteVariantsSeen).filter(types => !["Pale"].includes(types))>> <<if $_variantsRemainder.length gte 1>> <<for _r to 0; _r lt $_variantsRemainder.length; _r++>> <<set $_variantsRemainder[_r] to "<b>" + $_variantsRemainder[_r] + "</b>">> <</for>> <li><<print formatList($_variantsRemainder)>> parasites do not have any notable differences compared to ordinary parasites.</li> <</if>> <</widget>><<set $outside to 0>><<set $location to $container.lastLocation>><<effects>> <<set $phase to $phase || $location>> <<set _container to $container[$phase]>> <<set _aPregnancy to $sexStats.anus.pregnancy>> <<set _vPregnancy to $sexStats.vagina.pregnancy>> <<set $checkboxResult to {}>> <<if _container.count is 0>> <<if _container.deadCreatures is 0>> You currently have no <<if $pregnancyStats.namesParasitesChild is true>>children<<else>>parasites<</if>> inside the <span class="gold"><<print _container.name.toLowerCase()>></span>. <<else>> After not checking and feeding <<if $pregnancyStats.namesParasitesChild is true>>your <<pluralise _container.count "child" "children">><<else>>the <<pluralise _container.count "parasite">><</if>>, it looks like <span class="red"><<pluralise _container.count "it has" "some have">> died</span>. You take your time in burying <<pluralise _container.count "it" "them">>. <<ggtrauma>> <br><br> <<if $pregnancyStats.namesParasitesChild is true>> <<set _traumaMulti to 2>> <<else>> <<set _traumaMulti to 1>> <</if>> <<trauma `30 * _traumaMulti * _container.deadCreatures`>> <<if $wraith.state and $wraithShow>> <<if !$wraithAngerCount>> <<set $wraithAngerCount to 1>> <</if>> <<set _wraithRage to ($wraithAngerCount * 2)>> <<unset $wraithShow>> <<unset $wraithAngerCount>> You feel something gingerly grab your neck from behind. <br><br> "<span class="wraith">Unforgivable. You'll join <<pluralise _container.count "it" "them">> soon.</span>" <<stress 12>><<trauma 12>><<ggstress>><<ggtrauma>> <br><br> You turn around, but nothing's there. <<gobsession _wraithRage>> <br><br> <</if>> <<link [[Next (1:00)|$passage]]>><<set _container.deadCreatures to 0>><<pass 60>><</link>> <</if>> <<else>> <<if _container.visited is false>> You check on <<if $pregnancyStats.namesParasitesChild is true>>your <<pluralise _container.count "child" "children">><<else>>the <<pluralise _container.count "parasite">><</if>> and make sure <<pluralise _container.count "it has" "they have">> everything <<pluralise _container.count "it needs" "they need">> inside the <span class="gold"><<print _container.name.toLowerCase()>></span>. <<creatureVisit>> <<else>> <<creatureVisit false>> You watch your <<if $pregnancyStats.namesParasitesChild is true>><<pluralise _container.count "child" "children">><<else>><<pluralise _container.count "parasite">><</if>> inside the <span class="gold"><<print _container.name.toLowerCase()>></span>. <</if>> <br><br> It has a max capacity of <<number _container.maxCount>> and <<if $pregnancyStats.namesParasitesChild is true>>your <<pluralise _container.count "child" "children">><<else>>the <<pluralise _container.count "parasite">><</if>> can survive <<number _container.maxDaysWithoutFood>> <<pluralise _container.maxDaysWithoutFood "day">> without your attention<<if _container.feederName>>, thanks to your <span class="gold"><<print _container.feederName.toLowerCase()>></span><</if>>. <<if _container.decorations>>You have <<luxuryTooltip>> set up within the tank.<</if>> <<if $phase is "farm" and $farm.parasitebarn gte 2>>The equipment set up is <<luxuryTooltip>> in the barn.<</if>> <!-- For players who had multiple parasite children before the tooltip update --> <<if $pregnancyStats.parasiteTypesSeen.length gte 4 and (!$pregnancyStats.parasiteBook or $pregnancyStats.parasiteBook is 1)>> <<set $pregnancyStats.parasiteBook to 1>> <br><br> <span class="gold">Doctor Harper might be able to help you learn more about your <<if $pregnancyStats.namesParasitesChild is true>><<pluralise _container.count "child" "children">><<else>><<pluralise _container.count "parasite">><</if>>.</span> <<elseif $pregnancyStats.parasiteTypesSeen.length gte 4 and $pregnancyStats.parasiteBook is 2>> <br><br> <span class="gold">You can purchase a notebook to keep track of your <<if $pregnancyStats.namesParasitesChild is true>><<pluralise _container.count "child" "children">><<else>><<pluralise _container.count "parasite">><</if>> at the pet shop on High Street.</span> <</if>> <</if>> <br><br> <<if $pregnancyStats.parasiteBook is 3>> <div id="info" class="no-numberify"><<assignmenticon>><<link "Open notebook">><<replace "#info">><<containerInfo>><</replace>><</link>></div> <</if>> <<if _container.count gt 0>> <ul> <<for _i to 0; _i lt _container.maxCount; _i++>> <<if _container.creatures[_i] is undefined>> <<continue>> <</if>> <<if _container.creatures[_i] isnot null>> <li><label><<print '<<checkbox "$checkboxResult[' + clone(_i) + ']" false true>>'>> - <<creatureTooltip>> - <<print _container.creatures[_i].stats.gender>> - <<creatureActivity _container.creatures[_i].stats.speed>></label></li> <</if>> <</for>> </ul> <</if>> <<if _container.deadCreatures is 0>> <<if _aPregnancy.type !== "parasite">> <<elseif _aPregnancy.parasiteFeltMovement>> <<if playerChastity("anus")>> You're unable to deliver <<if $pregnancyStats.namesParasitesChild is true>>your parasite children<<else>>the parasites<</if>> while you have an anal shield. <<else>> <<if $pregnancyStats.namesParasitesChild is true>> <<link [[Attempt to deliver your anus parasite children (1:00)|GiveBirth]]>><<pass 60>><<set $giveBirthLocation to "anus">><</link>> <<else>> <<link [[Attempt to deliver the anus parasite (1:00)|GiveBirth]]>><<pass 60>><<set $giveBirthLocation to "anus">><</link>> <</if>> <</if>> <br><br> <<elseif _aPregnancy.fetus.length - (_aPregnancy.motherStatus is 2 ? 1 : 0) gt 0>> You don't think <<print ($pregnancyStats.namesParasitesChild is true ? "your parasite children" : "the parasites")>> in your anus are ready for delivery. <br><br> <</if>> <<if _vPregnancy.type !== "parasite">> <<elseif _vPregnancy.parasiteFeltMovement>> <<if playerChastity("hidden")>> You're unable to deliver <<if $pregnancyStats.namesParasitesChild is true>>your parasite children<<else>>the parasites<</if>> while you have a chastity belt. <<else>> <<if $pregnancyStats.namesParasitesChild is true>> <<link [[Attempt to deliver your vagina parasite children (1:00)|GiveBirth]]>><<pass 60>><<set $giveBirthLocation to "vagina">><</link>> <<else>> <<link [[Attempt to deliver the vagina parasite (1:00)|GiveBirth]]>><<pass 60>><<set $giveBirthLocation to "vagina">><</link>> <</if>> <</if>> <br><br> <<elseif _vPregnancy.fetus.length - (_aPregnancy.motherStatus is 2 ? 1 : 0) gt 0>> You don't think <<print ($pregnancyStats.namesParasitesChild is true ? "your parasite children" : "the parasites")>> in your vagina are ready for delivery. <br><br> <</if>> <<if _container.count gt 0>> <<ind>><<link [[Transfer selected for selling|$passage]]>> <<for _i to 0; _i lt _container.maxCount;_i++>> <<if _container.creatures[_i] is undefined>> <<continue>> <</if>> <<if _container[_i] isnot null>> <<if $checkboxResult[_i] is true>> <<set $number to clone(_i)>> /* unused */ <<moveCreature $phase "portable" _i>> <</if>> <</if>> <</for>> <</link>> <br> <</if>> <<getouticon>><<link [[Leave|_container.leaveLink]]>><<handheldon>><</link>> <</if>><<set $outside to 0>><<set $location to "town">><<effects>> <<set $pregnancyStats.parasiteDoctorEvents to 2>> <<harper_intro>> "You're experiencing strange sensations in your abdomen?" <<he>> asks. You nod. <<He>> wheels <<his>> chair closer and places <<his>> stethoscope to your tummy. <br><br> <<He>> listens for a moment, then wheels away and types something into <<his>> computer. "You have a parasite problem," <<he>> says. "They're using you as part of their reproductive cycle." <<He>> notices the look on your face and smiles. "Don't be concerned. They won't harm you. They'll remove themselves when they're ready." <br><br> <<He>> spends several minutes explaining how to "birth" the creatures. What to do, and what not to do. It sounds simple. Drop to all fours and squeeze. <br><br> <<He>> turns back to <<his>> computer. "Species like this are of scientific interest," <<he>> continues. "If you're interested in making a bit of money, I'm able to pay you for them on behalf of a local company." <<He>> rises to <<his>> feet. "Is there anything else?" <br><br> You shake your head. <<He>> holds open the door for you, and you leave the office. "Be well," <<he>> says as you pass. <br><br> <<link [[Return to foyer|Hospital Foyer]]>><<endevent>><</link>><<set $outside to 0>><<set $location to "town">><<effects>> <<if $hospitalintro is 0 or $hospitalintro is "livestock" or $hospitalintro is "party">> <<harper_intro>> <<else>> <<if $firstOption is undefined>><<set $firstOption to true>><</if>> <</if>> <<if $firstOption is true>> <<npc Harper>><<person1>>You don't have to wait long. Doctor Harper emerges from <<his>> office and beckons you over. You enter <<his>> office and take a seat. <br><br> "How can I help you?" <<he>> asks. <br><br> <<elseif $firstOption is false>> You are in Doctor Harper's office. "Is there anything else I can help you with?" <<he>> asks. <br><br> <</if>> <<if $pregnancyStats.parasiteDoctorEvents gte 2 and $container.portable.value gt 0>> <<if $pregnancyStats.namesParasitesChild is true>> <<link [[Sell the children you are carrying (0:05)|Sell Children]]>><<pass 5>><<set $firstOption to false>><</link>> <br> <<else>> <<link [[Sell the parasites you are carrying (0:05)|Sell Children]]>><<pass 5>><<set $firstOption to false>><</link>> <br> <</if>> <</if>> <<if $pregnancyStats.parasiteDoctorEvents is 3>> <<link [[Enquire about feeling something large in your stomach (0:10)|Pregnancy Futa Introduction]]>><<pass 10>><<set $firstOption to false>><</link>> <br> <</if>> <<if $pregnancyStats.parasiteDoctorEvents gte 4 and ($sexStats.anus.pregnancy.motherStatus is 2 or ($sexStats.vagina.pregnancy.motherStatus is 2 and !$worn.genitals.type.includes("hidden")))>> <<link [[Enquire about parasite hermaphrodite removal (0:30)|Remove Futa Pregnancy]]>><<pass 30>><<set $futaCheck to true>><<set $firstOption to false>><</link>> <br> <</if>> <<if $pregnancyStats.parasiteTypesSeen.length gte 4 and $pregnancyStats.parasiteBook is 1>> <<link [[Enquire about information on parasites (0:05)|Harper Parasite Book]]>><<pass 5>><<set $firstOption to false>><</link>> <br> <</if>> <<link [[Return to foyer|Hospital Foyer]]>><<endevent>><<unset $firstOption>><</link>><<set $outside to 0>><<set $location to "town">><<effects>> Doctor Harper walks over to <<his>> office door and locks it. <<He>> sits back down. "What have you brought me today?" <<he>> asks. <br><br> /* the 100 multiplier is intentional, used to use the moneyGain widget */ You pull out the small container <<he>> gave you. <<He>> looks inside. Seeming satisfied, <<he>> produces another, larger container from beneath <<his>> desk. <<He>> transfers the contents and hands the empty container to you. <<He>> opens a drawer and counts out <<money `$container.portable.value * 100` "hospitalParasitesSold">><<printmoney `$container.portable.value * 100`>>. <<He>> hands it to you. <br><br> "The community thanks you," <<he>> says. <br><br> <<set _paleAmount to 0>> <<for _i to 0; _i lt $container.portable.creatures.length; _i++>> <<if $container.portable.creatures[_i].creature.includes("Pale")>> <<set _wraithMessage to true>> <<set _paleAmount++>> <</if>> <</for>> <<if $wraith.state and _wraithMessage is true>> <<set $wraith.offspring to "sold">> <<set $wraithCompoundChance to ($wraithCompoundChance ? $wraithCompoundChance += 10 : 10)>> <<if $wraithAngerCooldown>> <<set $wraithAngerCooldown += (15 * _paleAmount)>> <<else>> <<set $wraithAngerCooldown to (15 * _paleAmount)>> <</if>> You feel a sudden sense of dread and regret as you watch your pale <<pluralise _paleAmount "child" "children">> slip out of your reach. <<gobsession _paleAmount>> <br><br> <</if>> <<set $container.portable.value to 0>> <<set $container.portable.creatures to []>> <<link [[Next|Pregnancy Discussion]]>><</link>><<set $outside to 0>><<set $location to "town">><<effects>><<earnFeat "Broodmother Host">> <<set $pregnancyStats.parasiteDoctorEvents to 4>> "Strange," <<he>> says. "N-not that there's anything to be alarmed about." <<He>> pulls <<his>> chair back to <<his>> computer and types something in. <br><br> You wait as <<he>> reads the screen, occasionally tapping on the keyboard. <<He>> pulls a large book from a drawer, blows off dust, and flips through the pages. At last, <<he>> puts the book away and turns to face you. <br><br> "You have a parasite," <<he>> says. "An unusual one. It has both sex organs and is able to mate with itself. We'll need to perform a procedure here in order to remove it. Until then, you'll continue to birth its offspring." <br><br> <<link [[Next|Pregnancy Discussion]]>><</link>><br><br> <<link [[Next|Pregnancy Discussion]]>><</link>><<set $outside to 0>><<set $location to "town">><<effects>> <<set _aPregnancy to $sexStats.anus.pregnancy>> <<if _aPregnancy.type is "parasite">> <<for _i to 0; _i lt _aPregnancy.fetus.length; _i++>> <<if _aPregnancy.fetus[_i] isnot undefined>> <<if _aPregnancy.fetus[_i].stats.gender is "Hermaphrodite">> <<set _analFuta to true>> <<moveCreature _i "destroy" undefined "anus">> <<set _aPregnancy.motherStatus to 1>> <<break>> <</if>> <</if>> <</for>> <<clearToDeleteParasiteFetus>> <<for _i to 0; _i lt _aPregnancy.fetus.length; _i++>> <<if _aPregnancy.fetus[_i] isnot undefined and _i >= maxParasites("anus")>> <<set _analFutaOther to true>> <<moveCreature _i "destroy" undefined "anus">> <</if>> <</for>> <<clearToDeleteParasiteFetus>> <</if>> <<set _vPregnancy to $sexStats.vagina.pregnancy>> <<if _vPregnancy.type is "parasite" and !playerChastity("hidden")>> <<for _i to 0; _i lt _vPregnancy.fetus.length; _i++>> <<if _vPregnancy.fetus[_i] isnot undefined>> <<if _vPregnancy.fetus[_i].stats.gender is "Hermaphrodite">> <<set _vaginaFuta to true>> <<moveCreature _i "destroy" undefined "vagina">> <<set _vPregnancy.motherStatus to 1>> <<break>> <</if>> <</if>> <</for>> <<clearToDeleteParasiteFetus>> <<for _i to 0; _i lt _vPregnancy.fetus.length; _i++>> <<if _vPregnancy.fetus[_i] isnot undefined and _i >= maxParasites("vagina")>> <<set _vaginaFutaOther to true>> <<moveCreature _i "destroy" undefined "vagina">> <</if>> <</for>> <<clearToDeleteParasiteFetus>> <</if>> "Please undress and lie on the table," <<he>> says while pulling on a latex glove. "No need to be shy." <<He>> turns and rummages through a drawer. <br><br> You <<nervously>> remove your clothing while <<his>> back is turned. You lie down on the table, conscious of your <<lewdness>>. <<His>> face neutral, the doctor grasps your legs and pushes them against your shoulders, before tying them down with straps. <br><br> "It will be easier if you're still," <<he>> affirms as <<he>> ties down your wrists. You can barely move. <br><br> <<if _anusFuta && playerChastity("anus")>> <<He>> examines your $worn.under_lower.name, then produces a strange metal device from <<his>> coat. <<He>> taps the metal, and your anal shield falls loose. "I'll return it when I'm done," <<he>> says. <br><br> <</if>> <<He>> opens another drawer and pulls out a smooth white rod with a round ball on one end. <<He>> pushes the thin end against your <<bottom>>. "Just relax,<<if playerBellyVisible() and !_vaginaFuta>> this won't hurt the baby,<</if>>" <<he>> says. It slides in without pain, as if lubricated. Harper twists the other side, and you feel it pulse within you. <<garousal>><<arousal 1200 "bottom">> <br><br> Harper stares unblinking at your <<bottom>> as the pulsing increases in intensity. Just when you feel like you can't take any more, <<he>> eases it out. The <<if $pregnancyStats.namesParasitesChild is true>>baby <</if>>parasite is wrapped around the end<<if _analFutaOther or _vaginaFutaOther>> alongside a smaller one<</if>>. <<He>> puts it in an opaque container and seals it shut. <<if _vaginaFuta and _anusFuta>> <<He>> repeats the procedure on the other sets of parasites inside you and more are wrapped and sealed. <</if>> <br><br> "All done," <<he>> says as <<he>> unties the straps. <<He>> turns away as you dress. <br><br> <<link [[Next|Pregnancy Discussion]]>><<unset $futaCheck>><</link>><<set $outside to 0>><<set $location to $container.lastLocation>><<effects>> <<set _pregnancy to $sexStats[$giveBirthLocation or "anus"].pregnancy>> <<set _pregnancy.parasiteFeltMovement to false>> <<set _container to $container[$phase]>> <<set $pregResult to "notReady">> <<set _stressMulti to 2 - _pregnancy.motherStatus>> <<set $checkboxResult to {}>> <<set $checkboxReplace to {}>> <<set $parasiteSelectionCount to 0>> <<set _newlyBirthed to {}>> <<set _allSeen to $pregnancyStats.parasiteTypesSeen.length + $pregnancyStats.parasiteVariantsSeen.length>> Following the directions from Doctor Harper, you get into position and attempt to deliver <<if $pregnancyStats.namesParasitesChild is true>>your baby<<else>>the parasites<</if>>. <<if _stressMulti gt 0>><<gstress>><</if>><<set $stress += 250 * _stressMulti>> <br><br> <<for _i to 0; _i lt _pregnancy.fetus.length; _i++>> <<if _pregnancy.fetus[_i].stats.gender isnot "Hermaphrodite" and _pregnancy.fetus[_i].fertilised>> <<set _rand to random(0,100)>> <<if (_rand lte 80 and _pregnancy.fetus[_i].daysLeft is 0) or (_rand lte 50 and _pregnancy.fetus[_i].daysLeft lte 1) or (_rand lte 30 and _pregnancy.fetus[_i].daysLeft lte 2) or (_rand lte 10 and _pregnancy.fetus[_i].daysLeft lte 3) or $parasiteBirthDebug>> <<if $pregResult is "notReady">> <<set $pregResult to [clone(_i)]>> <<else>> <<set $pregResult.push(clone(_i))>> <</if>> <</if>> <</if>> <</for>> <<if $pregResult is "notReady">> Despite your efforts, none of <<if $pregnancyStats.namesParasitesChild is true>>your children<<else>>the parasites<</if>> are ready to leave you. <br><br> <<link [[Next|Containers]]>><<unset $pregResult>><<unset $giveBirthLocation>><</link>> <<else>> Your body shudders, and to the floor falls <<if $pregnancyStats.namesParasitesChild is true>><<number $pregResult.length>> <<print $pregResult.length gt 1 ? 'babies' : 'baby'>><<else>><<number $pregResult.length>> <<print $pregResult.length gt 1 ? 'parasites' : 'parasite'>><</if>>. <ul> <<for _i to 0; _i lt $pregResult.length; _i++>> <<set _result to _pregnancy.fetus[$pregResult[_i]]>> <!-- Printing the checkbox --> <li><label><<print '<<checkbox "$checkboxResult[' + clone($pregResult[_i]) + ']" false true checked>>'>> - <<print _result.creature>> - <<creatureActivity _result.stats.speed>></label></li> <<if _result.creature.includes(" ")>> <!-- If the creature has a variant, like Pale. Currently does not account for creatures with more than one variant, because those don't yet exist --> <!-- Possible task for the future: turn parasite variants into variables, so there can be multiple --> <<set _split to _result.creature.split(" ")>> <<if !$pregnancyStats.parasiteVariantsSeen.includes(_split[0]) and _split[0] isnot _split[1]>> <<set $pregnancyStats.parasiteVariantsSeen.pushUnique(_split[0])>> <!-- For Pale Tentacle, this will set _newlyBirthed.Pale to "tentacle" --> <<set _newlyBirthed[_split[0]] to _split[1].toLowerCase()>> <</if>> <<if !$pregnancyStats.parasiteTypesSeen.includes(_split[1])>> <<set $pregnancyStats.parasiteTypesSeen.pushUnique(_split[1])>> <<set _newlyBirthed[_split[1]] to true>> <</if>> <<else>> <!-- Creatures without variants --> <<if !$pregnancyStats.parasiteTypesSeen.includes(_result.creature)>> <<set $pregnancyStats.parasiteTypesSeen.pushUnique(_result.creature)>> <<set _newlyBirthed[_result.creature] to true>> <</if>> <</if>> <</for>> </ul> <<for _n to 0; _n lt Object.values(_newlyBirthed).length; _n++>> <<switch Object.keys(_newlyBirthed)[_n]>> <<case "Tentacle">> You watch the tentacle in fascination. It writhes around blindly and coils around itself, almost like a snake. It's so energetic, just looking at it makes you feel less tired. <<case "Slime">> The slime doesn't move for a while. You poke at it, a little worried, and it jiggles. It has an indescribable consistency. It looks almost without flaw, and you feel <<if $pregnancyStats.namesParasitesChild is true>>proud to have birthed<<else>>almost proud to have hosted<</if>> such a creature. <<case "Worm">> Almost immediately, the worm tries to find somewhere to dig. It has little success and squirms in agitation until you place it in the <<print _container.name.toLowerCase()>>. You feel odd, having <<if $pregnancyStats.namesParasitesChild is true>>birthed<<else>>hosted<</if>> such a creature. <<case "Lurker">> The lurker moves mainly by crawling, but sometimes hops surprising distances. You quickly place it in the <<print _container.name.toLowerCase()>> before you can lose it. <<case "Vine">> You worry that the vine won't be able to survive without being planted in a better environment, but it seems to be fine in the <<print _container.name.toLowerCase()>>, writhing around. You suspect it's not strictly plant life. <<case "Metal">> Upon closer inspection, the metal <<print _newlyBirthed.Metal>> isn't truly metal. It has a metallic colour and pattern, but it bends and writhes in ways that steel wouldn't be able to. You hope it doesn't need anything in particular to eat. <<case "Eel">> The eel immediately starts squirming around wildly. You try to grab it, but it resists you with surprising strength. Despite its struggling, you move it to the <<print _container.name.toLowerCase()>>. It calms down as soon as it touches the water. <<case "Snake">> The snake tries to slither away and hide from you. You gently grab it by the neck, avoiding its attempts to bite your hand, and place it in the <<print _container.name.toLowerCase()>>. <<case "Fish">> The fish flops around on the ground, gasping for air. You quickly scoop it up and put it in the <<print _container.name.toLowerCase()>>. You watch it swim around. Hopefully the water is safe for <<= $pregnancyStats.namesParasitesChild ? "your child" : "the parasite">>. <<case "Spider">> You watch as the spider tries to upright itself, legs wiggling. It succeeds and crawls in your general direction. You hold out your hand, and it climbs up, allowing you to safely put it in the <<print _container.name.toLowerCase()>>. <<case "Bee">> The bee uses its front legs to clean itself off. It tilts its head as it looks at you and lets you pick up its fuzzy body without much resistance. You place it in the <<print _container.name.toLowerCase()>>. <<case "Wasp">> You try to pick up the wasp, but it points its stinger toward you, abdomen pulsating. You slowly reach out, trying not to startle it, and it eventually lets you place it in the <<print _container.name.toLowerCase()>>. <<case "Slug">> The slug's eyestalks emerge from its head as it slowly slides around the floor, leaving traces of slime. You hold it gently, trying not to squish it, and put it in the <<print _container.name.toLowerCase()>>. <<case "Squid">> You touch the squid to move it, and it squirts some ink on your hand. You wipe it off and put the squid in the <<print _container.name.toLowerCase()>>. The squid swims around. It almost looks proud of itself. <<case "Maggot">> The maggot crawls around the floor, its fat white body pulsating. As you move it to the <<print _container.name.toLowerCase()>>, you wonder what it will grow into, if anything. <<case "Pale">> Your hands seem to move on their own, and you find yourself holding the pale <<print _newlyBirthed.Pale>>. It's so pale that it's almost translucent. You feel a twinge of dread, but it's quickly replaced by an odd contentment. <span class="blue">You should be careful deciding whether to keep it.</span> <<default>> <!-- This way, species like Wasp that don't have a unique line don't print <br>s for no reason --> <<continue>> <</switch>> <br><br> <</for>> <<if $pregnancyStats.parasiteBook is 3 and $pregnancyStats.parasiteTypesSeen.length + $pregnancyStats.parasiteVariantsSeen.length gt _allSeen>> You write about <<if $pregnancyStats.namesParasitesChild is true>>your new children<<else>>the new parasites<</if>> in your notebook. <br><br> <<elseif $pregnancyStats.parasiteTypesSeen.length gte 4 and (!$pregnancyStats.parasiteBook or $pregnancyStats.parasiteBook is 1)>> <<set $pregnancyStats.parasiteBook to 1>> <br><br> You find yourself wondering at the sheer number of different types of creatures you've birthed and wonder if there's any way to know more. <span class="gold">Doctor Harper might be able to help you.</span> <</if>> <<if $pregResult.length gt (_container.maxCount - _container.count)>> Please select any required to replace, it will replace from top to bottom: <br> <ul> <<for _i to 0; _i lt _container.maxCount; _i++>> <<if _container.creatures[_i] is undefined>> <<set $checkboxReplace[_i] to true>> <<continue>> <</if>> <<if _container.creatures[_i] isnot null>> <li><label><<print '<<checkbox "$checkboxReplace[' + clone(_i) + ']" false true `($checkboxReplace[' + clone(_i) + '] ? "checked" : "")`>>'>> - <<print _container.creatures[_i].creature>> - <<creatureActivity _container.creatures[_i].stats.speed>></label></li> <</if>> <</for>> </ul> <</if>> <div id="pregResult"><<PregEventsResult>></div> <</if>><<widget "PregEventsResult">> <<set $outside to 0>><<set $location to $container.lastLocation>><<effects>> <<set _pregnancy to $sexStats[$giveBirthLocation or "anus"].pregnancy>> <<set _container to $container[$phase]>> <<set $parasiteSelectionCount to 0>> <<set $parasiteReplaceArray to []>> <<set _availableStorage to (_container.maxCount - _container.count)>> <<for _i to 0; _i lt $pregResult.length; _i++>> <<if $checkboxResult[$pregResult[_i]] is true>> <<set $parasiteSelectionCount += 1>> <</if>> <</for>> <<for _i to 0; _i lt _container.count; _i++>> <<if $checkboxReplace[_i] is true>> <<set $parasiteReplaceArray.push(clone(_i))>> <</if>> <</for>> <<if $debug is 1>> Debug - Keep selected babies result (ID - Checkbox - Result) <br> <<for _i to 0; _i lt $pregResult.length;_i++>> <<if $checkboxResult[$pregResult[_i]] is true>> <<print $pregResult[_i]>> - <<print $checkboxResult[$pregResult[_i]]>> - Keep <br> <<elseif $checkboxResult[$pregResult[_i]] is false>> <<print $pregResult[_i]>> - <<print $checkboxResult[$pregResult[_i]]>> - Sell <br> <</if>> <</for>> <br> <</if>> <<if $parasiteSelectionCount lte _availableStorage>> <<if $parasiteSelectionCount gt 0>> <<if $pregnancyStats.namesParasitesChild is true>> <<link [[Keep selected babies|PregEventsResult2]]>> <<set $pregChoice to "KeepSelected">> <</link>> <<else>> <<link [[Keep selected parasites|PregEventsResult2]]>> <<set $pregChoice to "KeepSelected">> <</link>> <</if>> <</if>> <<elseif $parasiteSelectionCount gt 0>> Not enough storage for selected amount. Please replace <<number $parasiteSelectionCount-_availableStorage>> <<if $pregnancyStats.namesParasitesChild is true>><<print $parasiteSelectionCount - _availableStorage gt 1 ? 'babies' : 'baby'>><<else>><<print $parasiteSelectionCount - _availableStorage gt 1 ? 'parasites' : 'parasite'>><</if>>. <br> <<if ($parasiteSelectionCount - $parasiteReplaceArray.length) lte _availableStorage>> <<if $pregnancyStats.namesParasitesChild is true>> <<link [[Replace selected babies|PregEventsResult2]]>> <<set $pregChoice to "ReplaceSelected">> <</link>> <<else>> <<link [[Replace selected parasites|PregEventsResult2]]>> <<set $pregChoice to "ReplaceSelected">> <</link>> <</if>> <</if>> <</if>> <<if $pregResult.length lte _availableStorage>> <br> <<if $pregnancyStats.namesParasitesChild is true>> <<link [[Keep all babies|PregEventsResult2]]>> <<set $pregChoice to "keepAll">> <</link>> <<else>> <<link [[Keep all parasites|PregEventsResult2]]>> <<set $pregChoice to "keepAll">> <</link>> <</if>> <</if>> <br><br> <<if $pregnancyStats.namesParasitesChild is true>> <<link [[Sell all babies|PregEventsResult2]]>> <<set $pregChoice to "sellAll">> <</link>> <<else>> <<link [[Sell all parasites|PregEventsResult2]]>> <<set $pregChoice to "sellAll">> <</link>> <</if>> <</widget>> <<widget "resetPregButtons">> <<replace #pregResult>> <<PregEventsResult>> <</replace>> <</widget>><<set $outside to 0>><<set $location to $container.lastLocation>><<effects>> <<set _pregnancy to $sexStats[$giveBirthLocation or "anus"].pregnancy>> <<switch $pregChoice>> <<case "ReplaceSelected">> <<set _parasiteReplaceCount to $parasiteReplaceArray.length>> <<for _i to 0; _i lt $pregResult.length;_i++>> <<if $checkboxResult[$pregResult[_i]] is true>> <<if $parasiteReplaceArray.length gt 0>> <<moveCreature $pregResult[_i] "replace" $parasiteReplaceArray[0] $giveBirthLocation>> <<run $parasiteReplaceArray.deleteAt(0)>> <<else>> <<moveCreature $pregResult[_i] "container" undefined $giveBirthLocation>> <</if>> <<elseif $checkboxResult[$pregResult[_i]] is false>> <<moveCreature $pregResult[_i] "portable" undefined $giveBirthLocation>> <</if>> <</for>> You decide to keep <<number $parasiteSelectionCount>> of <<if $pregnancyStats.namesParasitesChild is true>>your children<<else>>the parasites<</if>> and place <<pluralise $parasiteSelectionCount "it" "them">> in your <<print $container[$phase].name.toLowerCase()>> in place of <<number _parasiteReplaceCount>> <<if _parasiteReplaceCount gt 1>>others<<else>>other<</if>>, while preparing the rest for Doctor Harper. <br><br> <<case "KeepSelected">> <<for _i to 0; _i lt $pregResult.length;_i++>> <<if $checkboxResult[$pregResult[_i]] is true>> <<moveCreature $pregResult[_i] "container" undefined $giveBirthLocation>> <<elseif $checkboxResult[$pregResult[_i]] is false>> <<moveCreature $pregResult[_i] "portable" undefined $giveBirthLocation>> <</if>> <</for>> You decide to keep <<number $parasiteSelectionCount>> of <<if $pregnancyStats.namesParasitesChild is true>>your children<<else>>the parasites<</if>> and place <<pluralise $parasiteSelectionCount "it" "them">> in your <<print $container[$phase].name.toLowerCase()>> while preparing the rest for Doctor Harper. <br><br> <<case "keepAll">> <<for _i to 0; _i lt $pregResult.length;_i++>> <<moveCreature $pregResult[_i] "container" undefined $giveBirthLocation>> <</for>> You decide to keep all of <<if $pregnancyStats.namesParasitesChild is true>>your children<<else>>the parasites<</if>> and place them in your <<print $container[$phase].name.toLowerCase()>>. <br><br> <<case "sellAll">> <<for _i to 0; _i lt $pregResult.length;_i++>> <<moveCreature $pregResult[_i] "portable" undefined $giveBirthLocation>> <</for>> You decide to sell all <<if $pregnancyStats.namesParasitesChild is true>>your children<<else>>the parasites<</if>> and prepare to take them to Doctor Harper. <br><br> <</switch>> <<clearToDeleteParasiteFetus>> <<link [[Next|Containers]]>> <<unset $pregChoice>><<unset $pregResult>> <<unset $checkboxResult>><<unset $checkboxReplace>> <<unset $parasiteSelectionCount>><<unset $parasiteReplaceArray>> <<unset $giveBirthLocation>> <</link>><<effects>> <<set $pregnancyStats.parasiteBook to 2>> Harper nods approvingly. "It's good that you want to know more." <<He>> brings out a rather thick book and shows it to you. "This is a popular reference guide among scientists. It has a lot of information on this subject, but it's property of the hospital. I'm not authorised to lend it out." <br><br> <<He>> thinks for a few seconds. "<span class="gold">The pet shop on High Street may have something.</span> If nothing else, you could pick up a notebook and fill out info you gather yourself." <br><br> <<link [[Next|Pregnancy Discussion]]>><</link>> /*Passing out without rescue*/<<set $outside to 0>><<effects>> You collapse on the spot. The last thing you hear is a rush of footsteps. <br><br> <<switch $location>> <<case "moor" "forest">><<set _time to 60>> <<case "town">><<set _time to 15>> <<default>><<set _time to 30>> <</switch>> <<set _hours to Math.floor(_time / 60)>> <<set _minutes to _time % 60>> <<link [["Next ("+_hours+":"+(_minutes lt 10 ? "0": "")+_minutes+")"| Pregnancy Birth Hospital]]>><<pass _time>><<set $phase to 1>><</link>> /*Rescued by someone*/<<set $outside to 0>><<effects>> You feel yourself being lifted. You hear a voice, but the words don't make sense. <br><br> <<switch $location>> <<case "moor" "forest">><<set _time to 60>> <<case "bog">><<set _time to 90>> <<case "town">><<set _time to 15>> <<default>><<set _time to 30>> <</switch>> <<set _hours to Math.floor(_time / 60)>> <<set _minutes to _time % 60>> <<link [["Next ("+_hours+":"+(_minutes lt 10 ? "0": "")+_minutes+")"| Pregnancy Birth Hospital]]>><<pass _time>><<set $phase to 1>><</link>><<set $outside to 0>><<set $location to "hospital">><<effects>> <<set $first_birth to !$pregnancyStats.humanToysUnlocked>> <<npc "Harper">><<person1>> <<setKnowsAboutPregnancy "pc" "Harper">> <<if $hospitalintro isnot 1>> <<if $phase is 1>> You awaken in a hospital bed. Several blurry figures move around. One leans closer, <<his>> features coalescing into those of a young <<personsimple>>. <<if $hospitalintro is 0>> "I'm Doctor Harper," <<he>> says, brushing <<his>> blond fringe away from <<his>> eyes. "Please don't be alarmed, but your waters have broken. You're in the hospital." <<Hes>> young for a doctor, can't be older than 25. <<else>> It's the doctor from the farm. The one who experimented on you. "I'm Doctor Harper," <<he>> says. There's no recognition on <<his>> face. "Please don't be alarmed, but your waters have broken. You're in the hospital." <</if>> <<else>> The receptionist nods. "Please take a seat, the doctor will be right with you." <br><br> You don't need to wait long. A young <<personsimple>> dressed like a doctor arrives. <<if $hospitalintro is 0>> "I'm Doctor Harper," <<he>> says, brushing <<his>> blond fringe away from <<his>> eyes. "We've prepared a bed for you. This way." <<Hes>> young for a doctor, can't be older than 25. <<else>> It's the doctor from the farm. The one who experimented on you. "I'm Doctor Harper," <<he>> says. There's no recognition on <<his>> face. "We've prepared a bed for you. This way." <</if>> <br><br> <<He>> leads you through the hospital, to a room in the labour ward. A midwife adjusts a machine by the bed. <</if>> <<set $hospitalintro to 1>> <<else>> <<if $phase is 1>> You awaken in a hospital bed. Several blurry figures move around. One leans closer, <<his>> features coalescing into those of Doctor Harper. "Please don't be alarmed, but your waters have broken. You're in the hospital." <<else>> The receptionist nods. "Please take a seat, the doctor will be right with you." <br><br> Doctor Harper soon arrives. "We've prepared a bed for you. This way." <br><br> <<He>> leads you through the hospital, to a room in the labour ward. A midwife adjusts a machine by the bed. <</if>> <</if>> <br><br> <<if $exposed lt 2 and $phase isnot 1>> "Please undress," the doctor says. <<else>> "Please take a deep breath," the doctor says. <</if>> <<if playerChastity("hidden")>> <<He>> notices your <<print $worn.genitals.name>> and opens a chest-high cupboard. <<He>> retrieves a tool shaped like a pair of prongs, but bulkier. "We need to remove that device. <<if $phase isnot 1>>Please lie down.<</if>> This won't hurt." <br><br> <<if $phase isnot 1>>You lie down. The ceiling is plain white. There's a fan right above you. <</if>><<He>> grasps your <<print $worn.genitals.name>> with the prongs and presses a button on the handle. You hear a whirring noise within the tool, <span class="pink">and they snap the metal.</span> <<set $worn.genitals.type.push("broken")>> <<elseif $phase isnot 1>> "Then lie down." You do so. The ceiling is plain white. There's a fan right above you. <</if>> <br><br> <<wash>><<undress "hospital_birth">><<upperwear 87 "teal">> <<link [[Next|Pregnancy Birth Hospital 2]]>><</link>> <br><<effects>> The midwife places a mask over your face. You feel your consciousness fade. Several other figures appear around you, their forms ablur. <br><br> <<set $litter_potention_fathers to getPregnancyObject().potentialFathers.length>> /*Alex variables*/ <<if (getPregnancyObject().potentialFathers.length is 1 or getPregnancyObject().potentialFathers.length is undefined) and getPregnancyObject().fetus[0].father is "Alex">> <<set $alex_pregnancy to {}>> <<set $alex_pregnancy.knows to knowsAboutPregnancy("pc","Alex")>> <<set $alex_pregnancy.talked to talkedAboutPregnancy("pc","Alex")>> <<set $alex_pregnancy.source to getPregnancyObject().fetus[0].father>> <</if>> <<set _pregnancy to getPregnancyObject()>> <<if _pregnancy.totalBirthEvents gte 5>> <<set _min to 15>> <<set _max to 60>> <<elseif _pregnancy.totalBirthEvents gte 3>> <<set _min to 30>> <<set _max to 120>> <<else>> <<set _min to 60>> <<set _max to 180>> <</if>> <<set _max to Math.floor(_max * (1 + Math.floor(_pregnancy.fetus.length * 0.2)))>> <<set _min to Math.floor(_min * (1 + Math.floor(_pregnancy.fetus.length * 0.2)))>> <<set _timeCalc to random(_min, _max)>> <<set _hours to Math.floor(_timeCalc / 60)>> <<set _minutes to _timeCalc % 60>> /* Note: Pregnancy species */ <<switch playerNormalPregnancyType()>> <<case "human">> <<setKnowsAboutPregnancy "pc" "Bailey">> Harper's voice floats through the fog. "Normal human<<if !$player.vaginaExist>>, abnormal delivery<</if>>, but keep the others on the line, just in case..." <br><br> The pain grows as time seems to rapidly speed up and slow down. You hear the words "breathe" and "push" many times, and you do your best to comply. <br><br> <<if $dissociation gte 1>> Everything slowly fades away once again. You stand in a black abyss. Your whole body feels fuzzy, and the pain is gone. You stand there, alone in the dark. In the distance, a bright white light hovers. It must be several kilometres away. You begin walking towards it, when you suddenly realise that you're stepping in shallow water. You step forward again to the sound of sloshing. Another step. Another. You need to get to the light. You aren't sure why, but you know you must. Something's waiting for you there, you can feel it. <br><br> You start to run. As you get closer, the darkness around you dissipates until only the light surrounds you. You continue running until you come to a wooden door with a golden handle. You grasp it and open it slowly. The light drowns you. <br><br> <</if>> <<link [["Next ("+_hours+":"+(_minutes lt 10 ? "0": "")+_minutes+")"| Pregnancy Birth Hospital 3]]>><<endevent>><<pass _timeCalc>><<playerPrebirth>><</link>> <<case "wolf">> Harper's voice floats through the fog. "Not human. This will be an abnormal delivery. Follow my instructions to the letter..." <br><br> <<link [["Next ("+_hours+":"+(_minutes lt 10 ? "0": "")+_minutes+")"| Pregnancy Birth Hospital Wolf]]>><<endevent>><<pass _timeCalc>><</link>> <</switch>><<set $outside to 0>><<set $location to "hospital">><<effects>> <<endevent>> <<generate1>><<person1>> <<set $litter_size to getPregnancyObject().fetus.length>> <<set _baby to $litter_size is 1 ? "baby" : "babies">> <<if $dissociation gte 1>> You awaken in another room. Your eyes open slowly. You're in a hospital bed. A smiling midwife stands beside you, holding <<= $litter_size is 3 ? "a trio of" : $litter_size is 2 ? "two" : "a">> bundled _baby in <<his>> arms. <br><br> "Looks like mummy's awake," <<he>> says, passing you the _baby. <<switch $litter_size>> <<case 3>> As you cradle one in each arm, the midwife places the third directly on your chest. <<case 2>> You cradle one in each arm. <<default>> You cradle your baby in your arms. <</switch>> You feel a rush of pure glee and maternal bliss. Your parental instinct kicks in, washing away your worries and trauma in a flood of joy. The precious gift in front of you is now your whole world, and at last, something feels real to you again. Their eyes are shut, <<= _baby is "babies" ? "chests" : "chest">> rising and falling with gentle breaths. <<trauma -100>><<llltrauma>> <<else>> You awaken in another room. A smiling midwife stands beside your bed, holding <<= $litter_size is 3 ? "a trio of" : $litter_size is 2 ? "two" : "a">> bundled _baby in <<his>> arms. <br><br> "Looks like mummy's awake," <<he>> says, passing you the _baby. <<switch $litter_size>> <<case 3>> As you cradle one in each arm, the midwife places the third directly on your chest. <<case 2>> You cradle one in each arm. <<default>> You cradle your baby in your arms. <</switch>> Their eyes are shut, <<= _baby is "babies" ? "chests" : "chest">> rising and falling with gentle breaths. <</if>> <br><br> "We've run all the tests," the midwife says. "There's not a single health problem. Have you thought of <<= _baby is "babies" ? "their names" : "a name">>?" <br><br> <<set $bornChildrenIds to []>> <<run getPregnancyObject().fetus.forEach(child => $bornChildrenIds.push(child.childId))>> <<birthUi "pc" "hospital" "home" "Pregnancy Birth Hospital 4" _time>><<set $outside to 0>><<set $location to "hospital">><<effects>> <<getChildrenIds>><<childSelect _childrenIds.last()>> <<set _pregFame to ($litter_size * 5)>> <<famepregnancy _pregFame>> <<if $litter_size is 1>> You cradle your baby for a while longer, enjoying <<childhis>> tiny breaths and movements. <<childHe>> spends most of the time sleeping, but opens <<childhis>> eyes occasionally and gazes into yours. <br><br> The midwife returns. <<if $first_birth>> <<He>> teaches you how to change <<childname>>'s nappy and how to bathe <<childhim>>. <<else>> <<He>> assists you with changing <<childname>>'s nappy and bathing <<childhim>>. <</if>> "Let me know when you're feeling sleepy," <<he>> says. "You need your rest as well, and we can take care of your baby in the meantime." <br><br> You want nothing more than to hold <<childname>>, but you find yourself dozing all the same. <br><br> <<elseif $litter_size is 2>> You cradle your babies for a while longer, enjoying their tiny breaths and movements. They spend most of the time sleeping, but open their eyes occasionally and gaze into yours. <br><br> The midwife returns. <<if $first_birth>> <<He>> teaches you how to change their nappies and how to bathe them. <<else>> <<He>> assists you with changing their nappies and with bathing them. <</if>> "Let me know when you're feeling sleepy," <<he>> says. "You need your rest as well, and we can take care of your babies in the meantime." <br><br> You want nothing more than to hold the twins, but you find yourself dozing all the same. <br><br> <<elseif $litter_size is 3>> You cradle your babies for a while longer, enjoying their tiny breaths and movements. They spend most of the time sleeping, but open their eyes occasionally and gaze into yours. <br><br> The midwife returns. <<if $first_birth>> <<He>> teaches you how to change their nappies and how to bathe them. <<else>> <<He>> assists you with changing their nappies and with bathing them. <</if>> "Let me know when you're feeling sleepy," <<he>> says. "You need your rest as well, and we can take care of your babies in the meantime." <br><br> You want nothing more than to hold the triplets, but you find yourself dozing all the same. <br><br> <</if>> <<link [[Next|Pregnancy Birth Hospital 5]]>><<storeon "hospital_birth">><<pass 24 hour>><<stress -40>><</link>> <br><br><<effects>> <<if $litter_size gte 2>><<childrenNames $bornChildrenIds>> lie<<else>><<childname>> lies<</if>> in a cradle while the midwife helps you stand. <<if $first_birth or playerNormalPregnancyTotal() is 0>> You feel your insides drop as you stand, but <<he>> assures you that's normal. <br><br> Despite the pain, you feel a lot more comfortable walking than you did before the birth. You'd forgotten how easy it is to move without people inside you. <br><br> The midwife helps you to dress. "You should be good to go," <<he>> says. <<elseif between(playerNormalPregnancyTotal(), 1, 2)>> You feel your insides drop as you stand. You remember this feeling from your last birth and know it's normal. <br><br> Despite the pain, you feel a lot more comfortable walking than you did before the birth. You'd forgotten how easy it is to move without people inside you. <br><br> The midwife helps you to dress. "You should be good to go," <<he>> says. <<elseif between(playerNormalPregnancyTotal(), 3, 7)>> You feel your insides drop as you stand. You're still not used to the feeling. <br><br> You get walking again quite easily. It's a little awkward, but the transition isn't as bad as it used to be. It's still easier to move around when there isn't another human inside you. <br><br> The midwife still insists on helping you dress. "You should be good to go," <<he>> says. <<elseif between(playerNormalPregnancyTotal(), 8, 49)>> You stand up without a hitch. There's hardly any difference in feeling anymore, although you do feel much more nimble. <br><br> <<He>> looks impressed at your mobility, only keeping an arm around you for stability. "I don't see many people get back up that quickly. You must be hardy!" <br><br> The midwife still insists on helping you dress. "You should be good to go," <<he>> says. <<elseif playerNormalPregnancyTotal() gte 50>> You stand up without assistance, feeling empty inside. You already miss the feeling of being pregnant. <br><br> <<He>> stares at you, mouth agape, as you walk without any assistance. You throw your clothes back on quickly. <br><br> "Y-you should be good to go," <<he>> says. <</if>> "Someone's waiting for you. <<if $alex_pregnancy isnot undefined and $litter_potention_fathers is 1 and $alex_pregnancy.source is "Alex">> <<if C.npc.Alex.pregnancy.nursery is true>> Your <<if C.npc.Alex.pronoun is "f">>girlfriend<<else>>boyfriend<</if>> I think." <br><br> <<link [[Next|Pregnancy Birth Hospital Alex]]>><</link>> <<else>> <<set C.npc.Alex.pregnancy.hospitalBirth to true>> Your <<if C.npc.Bailey.pronoun is "f">>mum<<else>>dad<</if>> I think." <br><br> <<link [[Next|Pregnancy Birth Hospital 6]]>><<endevent>><</link>> <</if>> <<else>> Your <<if C.npc.Bailey.pronoun is "f">>mum<<else>>dad<</if>> I think." <br><br> <<link [[Next|Pregnancy Birth Hospital 6]]>><<endevent>><</link>> <</if>><<set $location to "town">><<effects>> <<npc "Bailey">><<person1>> <<getChildrenIds>><<childSelect _childrenIds.last()>> Bailey waits for you in the hospital foyer. <<He>> smiles when <<he>> sees you. It almost looks real. "We've a place prepared," <<he>> says. <<if $litter_size is 1>> <<elseif $litter_size is 2>> "For both of them." <<else>> "For all three of them." <</if>> <<He>> leads you outside, where <<his>> car waits. <<He>> holds open the passenger door for you, before climbing in the other side. <br><br> The engine comes to life. <!-- Bailey may not know about all your pregnancies --> <<set _knownPregnancyCount to knowsAboutPregnancyTotal("pc","Bailey","home")>> <<if _knownPregnancyCount is 1>> "You're responsible for your offspring's care," <<he>> says. "If I have to intervene, it'll cost you an extra <span class="red">£100</span> a week.<<if $litter_size gte 2>> Each.<</if>>" <br><br> "They don't leave the nursery," <<he>> adds as <<he>> drives from the hospital car park. "Ever." <<elseif _knownPregnancyCount lte 4>> "Remember that you're responsible for your offspring's care," <<he>> says. "If I have to intervene, it'll cost you an extra <span class="red">£100</span> a week.<<if $litter_size gte 2>> Each.<</if>>" <<else>> "You're an irresponsible slut," <<he>> says. "Remember that if I have to intervene in the care of your offspring, it'll cost you an extra <span class="red">£100</span> a week.<<if $litter_size gte 2>> Each.<</if>>" <</if>> <<if $baileydefeatedchain gte 3>> You see <<him>> sneer, but only for a brief instant. "I'd rather not make someone else take care of your twerps, but if you keep being a difficult little shit, don't think you'll be allowed to see them again." <</if>> <br><br> <<if $litter_size is 1>> <<link [[Tell Bailey your baby's name|Pregnancy Birth Hospital 7]]>><<set $phase to 1>><</link>> <br> <<link [[Just hold the baby tight|Pregnancy Birth Hospital 7]]>><</link>> <br> <<else>> <<link [[Tell Bailey your babies' names|Pregnancy Birth Hospital 7]]>><<set $phase to 1>><</link>> <br> <<link [[Just hold your babies tight|Pregnancy Birth Hospital 7]]>><</link>> <br> <</if>><<set $location to "town">><<effects>> Bailey drives past the temple, onto Danube Street. <<if $phase is 1>> <<if $litter_size is 1>> "This is <<childname>>," you begin, holding <<childhim>> closer to Bailey's arm. <<else>> "These are <<childrenNames $bornChildrenIds>>," you begin, holding them closer to Bailey's arms one by one. <</if>> You tell Bailey everything that happened from when you arrived at the hospital. <<He>> doesn't interrupt, but doesn't respond either. <<else>> <<if $litter_size gte 2>> You hold your babies to your chest. <<childname>> yawns. <<else>> You hold your baby to your chest. <<childHe>> yawns. <</if>> <</if>> <br><br> <<pass 5>> You arrive at Domus Street. Bailey holds open the car door for you. <<if $first_birth>> "I'll escort you inside," <<he>> says. <<His>> eyes dart to <<if $litter_size gte 2>>the babies in your arms<<else>><<childname>><</if>>. "For safety." <br><br> You walk through the orphanage, towards the youth ward. <br><br> <<else>> "I'll escort you to the youth ward," <<he>> says. <<His>> eyes dart to <<if $litter_size gte 2>>the babies in your arms<<else>><<childname>><</if>>. "For safety." <br><br> <<He>> leads you through the orphanage, towards the youth ward. <br><br> <</if>> <<link [[Next|Pregnancy Birth Hospital 8]]>><</link>> <br><<set $location to "home">><<effects>> <<generate2>><<person2>> <<if $litter_size is 1>> One of Bailey's goons, a <<person>> exits the youth ward, pushing a cradle. You place <<childname>> within. "My staff keep an eye on things here," Bailey says. "They'll make sure your brat doesn't starve or anything, <span class="gold">but make sure you spend some time with them every day.</span> Or I'll charge." <br><br> <<person1>> "Later though," <<he>> adds. "You need to freshen up, and your brat is asleep anyway." The <<person2>><<person>> pushes <<childname>> through the ward doors. <<person1>>Bailey keeps <<his>> gaze fixed on <<childname>> until <<childhe>>'s safely within. <br><br> <<elseif $litter_size is 2>> One of Bailey's goons, a <<person>> exits the youth ward, pushing a pair of cradles. You place the twins within. "My staff keep an eye on things here," Bailey says. "They'll make sure your brats don't starve or anything, <span class="gold">but make sure you spend some time with them every day.</span> Or I'll charge." <br><br> <<person1>> "Later though," <<he>> adds. "You need to freshen up, and your brats are asleep anyway." The <<person2>><<person>> pushes the twins through the ward doors. <<person1>>Bailey keeps <<his>> gaze fixed on <<childrenNames $bornChildrenIds>> until they're safely within. <br><br> <<else>> One of Bailey's goons, a <<person>> exits the youth ward, pushing a trio of cradles. You place the triplets within. "My staff keep an eye on things here," Bailey says. "They'll make sure your brats don't starve or anything, <span class="gold">but make sure you spend some time with them every day.</span> Or I'll charge." <br><br> <<person1>> "Later though," <<he>> adds. "You need to freshen up, and your brats are asleep anyway." The <<person2>><<person>> pushes the triplets through the ward doors. <<person1>>Bailey keeps <<his>> gaze fixed on <<childrenNames $bornChildrenIds>> until they're safely within. <br><br> <</if>> <<if $first_birth>> <span class="gold">You can now access the youth ward, and the nursery.</span> <br><br> <</if>> <<link [[Next|Orphanage]]>><<unset $litter_size>><<unset $first_birth>><<endevent>><<set $ward_unlocked to true>><<unset $bornChildrenIds>><</link>><<set $outside to 0>><<set $location to "hospital">><<effects>> You feel a rumbling all around you. Then a pain in your abdomen. You're tied down, lying in the back of what looks like an ambulance. <<if playerChastity("hidden")>> There's a figure beside you, holding a blurry tool to your <<print $worn.genitals.name>>. You feel the metal snap as you lose consciousness once more. <<set $worn.genitals.type.push("broken")>> <<genitalsruined>> <br><br> <<else>> A figure beside you presses a mask to your face, and you lose consciousness once more. <br><br> <</if>> <<link [[Next (0:15)|Pregnancy Birth Hospital Wolf 2]]>><<pass 15>><<endevent>><</link>><<location "forest">><<effects>> You awaken again. You hang limp between two figures. The branches of the forest hang overhead. You're being carried, but you're too weak to move. Your consciousness slips once more. <br><br> <<link [[Next (0:15)|Pregnancy Birth Hospital Wolf 3]]>><<pass 15>><<endevent>><</link>> /* From the hospital or dropped by non-wolf rescuers */<<location "forest">><<effects>> You hit the ground. A pair of footsteps rush away from you. <br><br> <<if $syndromewolves is 1>> You remember this smell. You're outside the wolf cave. <<else>> You're outside a cave. It's shelter, at least. You stumble inside. <</if>> <br><br> <<link [[Next (0:15)|Pregnancy Birth Wolf Cave 1]]>><<pass 15>><<endevent>><<set $phase to 3>><</link>> /* Rescued by wolves */<<location "forest">><<effects>> The movement stops. You feel yourself being lowered onto something soft. <br><br> <<if $syndromewolves is 1>> You remember this smell. You're in the wolf cave. <<else>> You're in a cave. It's shelter, at least. <</if>> <br><br> <<link [[Next (0:15)|Pregnancy Birth Wolf Cave 1]]>><<pass 15>><<endevent>><<set $phase to 3>><</link>><<set $outside to 0>><<set $location to "forest_shop_garden">><<effects>><<run statusCheck("Gwylan")>> <<npc Gwylan>><<person1>> <<if $gwylanSeen.includes("garden")>> You awaken in Gwylan's garden. <<He>> scrambles around, gathering things and placing them nearby. <<else>> You awaken to the smell of roses. <br><br> A large expanse of square stone tiles stretch along the ground, connecting patches of grass and raised sections filled with dirt, flowers and herbs. Surrounding it all is an impressive weaving of crossed wooden stakes well over two metres high, with gaps just large enough to allow vines to grab and climb through, shielding the whole area from prying outside eyes. <br><br> You're inside a different raised section, covered by a wooden roof, <<if Weather.precipitation is "rain" or Weather.precipitation is "snow">> untouched by the <<print Weather.precipitation>>, <</if>> and the inside is padded with various cushions and quilts. <br><br> You hear a familiar voice humming. It's Gwylan. <<He>> scrambles around, gathering things and placing them nearby. <</if>> <br><br> Upon noticing that you're awake, <<he>> smiles at you, and kneels down. "Stay here, don't forget to breathe. You're going to be alright. I promise." <<He>> takes your hand and squeezes it before running off again. <<takeHandholdingVirginity "Gwylan" "consensual">> <br><br> <<link [[Next|Pregnancy Birth Forest Shop]]>><<endevent>><</link>><<set $outside to 0>><<set $location to "forest_shop_garden">><<effects>><<run statusCheck("Gwylan")>> <<set $first_birth to !$pregnancyStats.humanToysUnlocked>> <<npc Gwylan>><<person1>> <<setKnowsAboutPregnancy "pc" "Gwylan">> You do your best to stay calm, but panic starts to set in. <<if $gwylanSeen.includes("beast_ritual")>> You know Gwylan can be clumsy, but <<he>> always seems to know what <<hes>> doing. <<else>> Does Gwylan really know anything about this? <</if>> Your panic is snuffed as <<he>> returns with a heap of pillows, towels, and a basket full of herbs. "Here, scoot forward onto this." <<He>> quickly makes a nest of pillows and towels for you. You're sure it's comfortable, but you can only think of how much pain you're in. <br><br> "Say aah." <<He>> sticks an herb in your mouth. "That will make your contractions more..." <<he>> rolls <<his>> wrist. "Smooth. Your child will- hey! Breathe! Your child will come out easier. Oh! Let me find you something for the pain!" You can't help but notice that Gwylan almost sounds excited about this. <br><br> <<He>> digs through <<his>> basket, inspecting herbs one by one until <<he>> lets out a satisfied huff and nods to <<himself>>. "This will do. Here, spit out that other one." <<He>> holds <<his>> hand out. <br><br> <<link [[Spit it out|Pregnancy Birth Forest Shop 2]]>><<set $phase to 1>><<stress 24>><</link>><<ggstress>> <br> <<link [[Swallow it|Pregnancy Birth Forest Shop 2]]>><<set $phase to 2>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<if $phase is 1>> You spit it out into Gwylan's hand. <<He>> doesn't seem bothered at all, and simply sticks the next one in your mouth. <<else>> You swallow it. Gwylan winces. "Bad move. That's not gonna feel good coming out the other end." <<He>> sticks the next one in your mouth. <</if>> "Chew. Back teeth." <br><br> You start chewing. It tastes warm. You feel your body start to relax. <<pain -8>><<llpain>> <br><br> "Alright, I'm going to need you to cooperate with me here for a moment." <<He>> gets very close to you, and grabs your hips. <<outfitChecks>> <<if !_fullyNaked>> <<He>> starts to strip your clothes, each article yielding as if it were liquid. <</if>> <<if playerChastity()>> <<He>> notices your <<print $worn.genitals.name>>, and <<his>> face sours. "I can handle that." <<He>> once again darts off, shortly returning with a whole array of tools and glass phials. <br><br> It takes some time and lots of chipping away with what you assume is an actual chisel, but eventually, it snaps. <<set $worn.genitals.type.push("broken")>><<genitalsruined>> <</if>> <br><br> <<He>> dons a pair of gloves and a medical mask, and slides over a bucket full of water. <<He>> dips a few towels in, placing one on your forehead, and using another to start cleaning you. You're astounded by how fast <<hes>> working. <<wash>><<undress "forest_shop_birth">> <br><br> <<link [[Ask Gwylan to take you to the hospital|Pregnancy Birth Forest Shop 3]]>><<set $phase to 1>><</link>> <br> <<link [[Ask Gwylan if <<he>> knows what <<hes>> doing|Pregnancy Birth Forest Shop 3]]>><<set $phase to 2>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<if $phase is 1>> <<switch $speech_attitude>> <<case "meek">>"Shouldn't I be seeing a doctor?!" You ask. <<case "bratty">>"Gwylan, please call an ambulance. Or the police. Anyone that will get me to the hospital." <<default>>"Gwylan, why aren't you taking me to the hospital?" <</switch>> <br><br> <<He>> doesn't stop. "Not a chance. You don't need the hospital." <<He>> looks up at you, <<his>> gaze intense. "This isn't my first delivery, dear. Trust me." <<His>> tone is suddenly much different. <<else>> <<switch $speech_attitude>> <<case "meek">>"You look like you know what you're doing," you say between strained breaths. <<case "bratty">>"You seem excited. Should I be worried? Have you done this before?" you ask between strained breaths. <<default>>"This doesn't look like your first time doing this," you say between strained breaths. <</switch>> <br><br> <<He>> looks up at you, <<his>> gaze intense. "This isn't my first delivery, dear. Trust me." <<His>> tone is suddenly much different. <</if>> <br><br> <<He>> grabs a long lighter and ignites an incense burner hanging nearby. <<He>> starts to hum <<if $seabird_lullaby gte 2>> <span class="teal">Seabird's Lullaby</span>. <<else>> some <span class="teal">faintly familiar</span> tune. <</if>> <br><br> You suddenly feel tired. More tired than you've ever felt before. As the pain fades, you find yourself sinking into the pillows and quilts around you. You feel your consciousness fade. <br><br> <<set _pregnancy to getPregnancyObject()>> <<if _pregnancy.totalBirthEvents gte 5>> <<set _min to 15>> <<set _max to 60>> <<elseif _pregnancy.totalBirthEvents gte 3>> <<set _min to 30>> <<set _max to 120>> <<else>> <<set _min to 60>> <<set _max to 180>> <</if>> <<set _max to Math.floor(_max * (1 + Math.floor(_pregnancy.fetus.length * 0.2)))>> <<set _min to Math.floor(_min * (1 + Math.floor(_pregnancy.fetus.length * 0.2)))>> <<set _timeCalc to random(_min, _max)>> <<set _hours to Math.floor(_timeCalc / 60)>> <<set _minutes to _timeCalc % 60>> /* Note: Pregnancy species */ <<switch playerNormalPregnancyType()>> <<case "human">> <<setKnowsAboutPregnancy "pc" "Bailey">> Gwylan's voice floats in your dreamless slumber. "Child of the forest, please don't cry.<<if !$player.vaginaExist>> Your birth may be strange, but it makes no difference to I.<</if>>" <<case "wolf">> Gwylan's voice floats in your dreamless slumber. "Ah, a wild heart, born of our forest! How wonderful. How long has it been..." <</switch>> <br><br> You hear a deep breath. You think it's yours. "Good. Breathe," Gwylan's voice is melodic, almost like singing. "...and push." <<His>> voice drops an entire octave. "Breathe... and push. Breathe... and push." <br><br> <<if $dissociation gte 1>> Everything slowly fades away once again. You stand in a black abyss. Your whole body feels fuzzy, and the pain is gone. You stand there, alone in the dark. In the distance, a bright white light hovers. It must be several kilometres away. You begin walking towards it, when you suddenly realise that you're stepping in shallow water. You step forward again to the sound of sloshing. Another step. Another. You need to get to the light. You aren't sure why, but you know you must. Something's waiting for you there, you can feel it. <br><br> You start to run. As you get closer, the darkness around you dissipates until only the light surrounds you. You continue running until you come to a wooden door with a golden handle. You grasp it and open it slowly. The light drowns you. <br><br> <</if>> <<switch playerNormalPregnancyType()>> <<case "human">> <<link [["Next ("+_hours+":"+(_minutes lt 10 ? "0": "")+_minutes+")"|Pregnancy Birth Forest Shop 4]]>><<endevent>><<pass _timeCalc>><<playerPrebirth>><</link>> <<case "wolf">> <<link [["Next ("+_hours+":"+(_minutes lt 10 ? "0": "")+_minutes+")"|Pregnancy Birth Forest Shop Wolf]]>><<endevent>><<pass _timeCalc>><<playerPrebirth>><</link>> <</switch>><<set $outside to 0>><<set $location to "forest_shop_garden">><<effects>> <<endevent>> <<npc Gwylan>><<person1>> <<set $litter_size to getPregnancyObject().fetus.length>> <<set _baby to $litter_size is 1 ? "baby" : "babies">> You hear that familiar humming again. <<if $dissociation gte 1>> You awaken wrapped up tightly in blankets. Your eyes open slowly. Gwylan stands beside you, holding <<= $litter_size is 3 ? "a trio of" : $litter_size is 2 ? "two" : "a">> bundled _baby in <<his>> arms. <br><br> "Rise and shine, mummy," <<he>> says, passing you the _baby. <<switch $litter_size>> <<case 3>> As you cradle one in each arm, <<he>> places the third directly on your chest. <<case 2>> You cradle one in each arm. <<default>> You cradle your baby in your arms. <</switch>> You feel a rush of pure glee and maternal bliss. Your parental instinct kicks in, washing away your worries and trauma in a flood of joy. The precious gift in front of you is now your whole world, and at last, something feels real to you again. Their eyes are shut, <<= _baby is "babies" ? "chests" : "chest">> rising and falling with gentle breaths. <<trauma -100>><<llltrauma>> <<else>> You awaken wrapped up tightly in blankets. Gwylan stands beside you, holding <<= $litter_size is 3 ? "a trio of" : $litter_size is 2 ? "two" : "a">> bundled _baby in <<his>> arms. <br><br> "Rise and shine, mummy," <<he>> says, passing you the _baby. <<switch $litter_size>> <<case 3>> As you cradle one in each arm, <<he>> places the third directly on your chest. <<case 2>> You cradle one in each arm. <<default>> You cradle your baby in your arms. <</switch>> Their eyes are shut, <<= _baby is "babies" ? "chests" : "chest">> rising and falling with gentle breaths. <</if>> <br><br> "It was a smooth process," <<he>> says. <<He>> looks wistful for a moment, but shakes it off and almost looks giddy seeing you and your <<= _baby is "babies" ? "children" : "child">> together. "Every child needs a name. Have you thought of <<= _baby is "babies" ? "any" : "one">>?" <br><br> <<set $bornChildrenIds to []>> <<run getPregnancyObject().fetus.forEach(child => $bornChildrenIds.push(child.childId))>> <<birthUi "pc" "forest_shop" "home" "Pregnancy Birth Forest Shop 5" _time>><<effects>><<run statusCheck("Gwylan")>> <<getChildrenIds>><<childSelect _childrenIds.last()>> <<if $litter_size is 1>> You cradle your baby for a while longer, enjoying <<childhis>> tiny breaths and movements. <<childHe>> spends most of the time sleeping, but opens <<childhis>> eyes occasionally and gazes into yours. <br><br> Gwylan rubs your shoulders. <<if $first_birth>> <<He>> teaches you how to change <<childname>>'s nappy and how to bathe <<childhim>>. <<else>> <<He>> assists you with changing <<childname>>'s nappy and bathing <<childhim>>. <</if>> "If you want to rest," <<he>> starts. "I can take care of <<childhim>> in the meantime. We'll be right here next to you, dear. I can go put on some tea, too." <br><br> You want nothing more than to hold <<childname>>, but you find yourself dozing all the same. <br><br> <<elseif $litter_size is 2>> You cradle your babies for a while longer, enjoying their tiny breaths and movements. They spend most of the time sleeping, but open their eyes occasionally and gaze into yours. <br><br> Gwylan rubs your shoulders. <<if $first_birth>> <<He>> teaches you how to change their nappies and how to bathe them. <<else>> <<He>> assists you with changing their nappies and with bathing them. <</if>> "If you want to rest," <<he>> starts. "I can take care of them in the meantime. We'll be right here next to you, dear. I can go put on some tea, too." <br><br> You want nothing more than to hold the twins, but you find yourself dozing all the same. <br><br> <<elseif $litter_size is 3>> You cradle your babies for a while longer, enjoying their tiny breaths and movements. They spend most of the time sleeping, but open their eyes occasionally and gaze into yours. <br><br> Gwylan rubs your shoulders. <<if $first_birth>> <<He>> teaches you how to change their nappies and how to bathe them. <<else>> <<He>> assists you with changing their nappies and with bathing them. <</if>> "If you want to rest," <<he>> starts. "I can take care of them in the meantime. We'll be right here next to you, dear. I can go put on some tea, too." <br><br> You want nothing more than to hold the triplets, but you find yourself dozing all the same. <br><br> <</if>> <<link [[Next|Pregnancy Birth Forest Shop 6]]>><<storeon "forest_shop_birth">><<pass 4 hour>><<stress -40>><</link>> <br><br><<effects>> <<if $litter_size gte 2>><<childrenNames $bornChildrenIds>> lie<<else>><<childname>> lies<</if>> in a hammock as Gwylan helps you stand. <<if $first_birth or playerNormalPregnancyTotal() is 0>> You feel your insides drop as you stand, but <<he>> assures you that's normal. <br><br> Despite the pain, you feel a lot more comfortable walking than you did before the birth. You'd forgotten how easy it is to move without people inside you. <br><br> Gwylan helps you dress. "Thank you for trusting me," <<he>> says. <<elseif between(playerNormalPregnancyTotal(), 1, 2)>> You feel your insides drop as you stand. You remember this feeling from your last birth and know it's normal. <br><br> Despite the pain, you feel a lot more comfortable walking than you did before the birth. You'd forgotten how easy it is to move without people inside you. <br><br> Gwylan helps you dress. "Thank you for trusting me," <<he>> says. <<elseif between(playerNormalPregnancyTotal(), 3, 7)>> You feel your insides drop as you stand. You're still not used to the feeling. <br><br> You get walking again quite easily. It's a little awkward, but the transition isn't as bad as it used to be. It's still easier to move around when there isn't another human inside you. <br><br> Gwylan helps you dress. "Thank you for trusting me," <<he>> says. <<elseif between(playerNormalPregnancyTotal(), 8, 49)>> You stand up without a hitch. There's hardly any difference in feeling anymore, although you do feel much more nimble. <br><br> <<He>> looks impressed at your mobility, only keeping an arm around you for stability. "Wow, look at you! You're a natural." <br><br> Gwylan helps you dress. "Thank you for trusting me," <<he>> says. <<elseif playerNormalPregnancyTotal() gte 50>> You stand up without assistance, feeling empty inside. You already miss the feeling of being pregnant. <br><br> <<He>> giggles. "I have a feeling you're not going to be unladen for long." You throw your clothes back on quickly. <br><br> "Thank you for trusting me," <<he>> says. <</if>> <br><br> Gwylan shares some tea with you, and the two of you spend some time chatting. <<He>> has a lot to say about the joy of raising children. <<stress -6>><<llstress>> <br><br> "I hope you don't mind, but..." <<he>> suddenly falters. "I've already contacted the orphanage caretaker. <<nnpc_He "Bailey">> should be here soon. I know the orphanage isn't the best place, but for newborns... there are far worse places." <br><br> <<He>> puts a hand on your shoulder. <br><br> <<link [[Next|Pregnancy Birth Forest Shop 7]]>><<endevent>><</link>><<set $location to "town">><<effects>> <<npc "Bailey" 1>><<npc "Gwylan" 2>><<person2>> <<getChildrenIds>><<childSelect _childrenIds.last()>> Gwylan walks with you to the forest shop entrance, just in time for a knock at the door. Gwylan opens it with a smile. Bailey frowns down at <<him>>. <br><br> "Why didn't you take <<phim>> to the hospital?" <<person1>><<he>> asks flatly. <br><br> Gwylan puts <<person2>><<his>> hands on <<his>> hips and smiles. "I'm better." <br><br> "It's not about skill, it's about risk," Bailey says. "You don't have specialised medical equipment here. What if my ward got an infection?" <br><br> Gwylan's cheery expression falls. "Your <i>ward</i> is just fine, and so <<if $litter_size gte 2>>are <<pher>> lovely children<<else>>is <<pher>> lovely child<</if>>. I don't know why I expected so much as a 'thank you' from you of all people, why am I surprised?" <br><br> Bailey nods behind <<person1>><<him>>. The two of you walk towards the town as Gwylan waves you off. "We've a place prepared," <<he>> says. <<if $litter_size is 1>> <<elseif $litter_size is 2>> "For both of them." <<else>> "For all three of them." <</if>> <<He>> leads you to Nightingale Street, where <<his>> car waits. <<He>> holds open the passenger door for you, before climbing in the other side. <br><br> The engine comes to life. <!-- Bailey may not know about all your pregnancies --> <<set _knownPregnancyCount to knowsAboutPregnancyTotal("pc","Bailey","home")>> <<if _knownPregnancyCount is 1>> "You're responsible for your offspring's care," <<he>> says. "If I have to intervene, it'll cost you an extra <span class="red">£100</span> a week.<<if $litter_size gte 2>> Each.<</if>>" <br><br> "They don't leave the nursery," <<he>> adds as <<he>> drives from the hospital car park. "Ever." <<elseif _knownPregnancyCount lte 4>> "Remember that you're responsible for your offspring's care," <<he>> says. "If I have to intervene, it'll cost you an extra <span class="red">£100</span> a week.<<if $litter_size gte 2>> Each.<</if>>" <<else>> "You're an irresponsible slut," <<he>> says. "Remember that if I have to intervene in the care of your offspring, it'll cost you an extra <span class="red">£100</span> a week.<<if $litter_size gte 2>> Each.<</if>>" <</if>> <<if $baileydefeatedchain gte 3>> You see <<him>> sneer, but only for a brief instant. "I'd rather not make someone else take care of your twerps, but if you keep being a difficult little shit, don't think you'll be allowed to see them again." <</if>> <br><br> <<if $litter_size is 1>> <<link [[Tell Bailey your baby's name|Pregnancy Birth Forest Shop 8]]>><<endevent>><<set $phase to 1>><</link>> <br> <<link [[Just hold the baby tight|Pregnancy Birth Forest Shop 8]]>><<endevent>><</link>> <br> <<else>> <<link [[Tell Bailey your babies' names|Pregnancy Birth Forest Shop 8]]>><<endevent>><<set $phase to 1>><</link>> <br> <<link [[Just hold your babies tight|Pregnancy Birth Forest Shop 8]]>><<endevent>><</link>> <br> <</if>><<set $location to "town">><<effects>> <<npc "Bailey" 1>><<person1>> <<getChildrenIds>><<childSelect _childrenIds.last()>> Bailey drives past the temple, onto Danube Street. <<if $phase is 1>> <<if $litter_size is 1>> "This is <<childname>>," you begin, holding <<childhim>> closer to Bailey's arm. <<else>> "These are <<childrenNames $bornChildrenIds>>," you begin, holding them closer to Bailey's arms one by one. <</if>> You tell Bailey everything that happened from when you arrived at Gwylan's shop. <<He>> frowns. "I won't deny that the shopkeep is capable. The hospital still would have been safer." <<else>> <<if $litter_size gte 2>> You hold your babies to your chest. <<childname>> yawns. <<else>> You hold your baby to your chest. <<childHe>> yawns. <</if>> <</if>> <br><br> <<pass 5>> You arrive at Domus Street. Bailey holds open the car door for you. <<if $first_birth>> "I'll escort you inside," <<he>> says. <<His>> eyes dart to <<if $litter_size gte 2>>the babies in your arms<<else>><<childname>><</if>>. "For safety." <br><br> You walk through the orphanage, towards the youth ward. <br><br> <<else>> "I'll escort you to the youth ward," <<he>> says. <<His>> eyes dart to <<if $litter_size gte 2>>the babies in your arms<<else>><<childname>><</if>>. "For safety." <br><br> <<He>> leads you through the orphanage, towards the youth ward. <br><br> <</if>> <<link [[Next|Pregnancy Birth Hospital 8]]>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<endevent>> <<npc Gwylan>><<person1>> You hear that familiar humming again, alongside some whimpering. <br><br> You awaken wrapped up tightly in blankets. Your eyes open slowly. Gwylan stands beside you, holding your pups in a bundle in <<his>> arms <br><br> "Rise and shine, mummy," <<he>> says, passing you your pups one by one. Their eyes are shut, bellies rising and falling with gentle breaths. <br><br> "It was a smooth process," <<he>> says. <<He>> looks wistful for a moment, but shakes it off and almost looks giddy seeing you and your pups together. "Every child of the forest needs a name. Have you thought of any?" <br><br> <<set $bornChildrenIds to []>> <<run getPregnancyObject().fetus.forEach(child => $bornChildrenIds.push(child.childId))>> <<birthUi "pc" "forest_shop" "wolf_cave" "Pregnancy Birth Forest Shop Wolf 2" _time>><<effects>><<run statusCheck("Gwylan")>> You cradle your pups for a while longer, enjoying their tiny breaths and movements. Gwylan rubs your shoulders. "If you want to rest," <<he>> starts. "I can take them to the cave. They'll be taken care of until you're able to go visit them, I promise." <br><br> You want nothing more than to hold them, but you find yourself dozing all the same. <br><br> <<link [[Next|Pregnancy Birth Forest Shop Wolf 3]]>><<storeon "forest_shop_birth">><<pass 4 hour>><<stress -40>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> Gwylan shares some tea with you, and the two of you spend some time chatting. <<He>> has a lot to say about the joy of raising children. <<stress -6>><<llstress>> <br><br> Once <<hes>> sure you're ready, <<he>> leads you back into the shop. <br><br> <<link [[Next|Forest Shop Entrance]]>><<endevent>><<set $forest to 0>><</link>> <br> /* Note: Pregnancy - Unused passages */<<set $outside to 0>><<set $location to "wolf_cave">><<effects>> Player reaches the wolf cave, is guided to the inside of the cave to give birth. <br><br> <<strip>> <<if playerChastity("vagina")>> Chastity Belt is broken if equipped. "The pack feels your distress" later "Most of the pack has injured mouths after chewing the belt so fiercely to free you"? <<set $worn.genitals.type.push("broken")>> <<genitalsruined>> <br><br> <</if>> <<link [[Next (0:15)|Pregnancy Birth Wolf Cave 1]]>><<pass 15>><<endevent>><<set $phase to 3>><</link>><<set $outside to 0>><<set $location to "wolf_cave">><<effects>> The others wolves leave the player alone for them to give birth, sequence should follow similar to the normal birth, though alone this time. <br><br> <<link [[Next (0:15)|Pregnancy Birth Hospital Wolf 6]]>><<pass 15>><<endevent>><</link>><<set $outside to 0>><<set $location to "wolf_cave">><<effects>> Player is finished with giving birth and spends some time to recover and start to have special time with their newborns. Option to name occurs here. <br><br> <<birthUi "pc" "wolf_cave" "wolf_cave" "Pregnancy Birth Hospital Wolf 7" 60>><<set $outside to 0>><<set $location to "wolf_cave">><<effects>> Player spends time looking after and feeding their children. <br><br> Player re-equips clothes. <<clotheson>> <br><br> <<if $syndromewolves isnot 1>> <<if $settings.bestialityEnabled>> <span class="red"><i>After giving birth to pups of your own, you see they're just cute animals.</i> You've gained the "Stockholm Syndrome: Wolves" trait.</span> <br><br> <<else>> <span class="red"><i>After giving birth to pups of your own, you see they're just cute monsters.</i> You've gained the "Stockholm Syndrome: Wolf People" trait.</span> <br><br> <</if>> <<set $syndromewolves to 1>> <<set $wolfevent to 0>> <<set $wolfstate to "cave">> <<set $wolfpackferocity to 10>> <<set $wolfpackharmony to 10>> <</if>> <<link [[Next (24:00)|Wolf Cave]]>><<pass 15>><<endevent>><<set $wolfevent to 0>><</link>> /*Player giving birth ends here*/ /*ToDo: Pregnancy Story Content: add in additional location*/<<effects>><<wearProp "pregnancy test">> <<set $pregnancyTest-->> <<switch $lastPassage>> <<case "Bedroom">> You take the pregnancy test, before returning to the bedroom. The test sits on your bed, as you pace back and forth waiting for it to finish. <<case "Eden Cabin">> You take the pregnancy test in Eden's bathroom, before returning to the main room. You stare at the test in your hand, not daring to look away, waiting for it to finish. <<case "Wolf Cave Clearing">> You take the pregnancy test out of view from the wolves. You stare at the test in your hand, not daring to look away, waiting for it to finish. <<case "Farm Shed">> You take the pregnancy test. You stare at the test in your hand, not daring to look away, waiting for it to finish. <<default>> You take the pregnancy test. You stare at the test in your hand, not daring to look away, waiting for it to finish. <</switch>> The packaging said to wait 3 minutes, but it feels like an eternity passes. <<gstress>><<stress 3>> <br><br> <<set $pregnancyStats.pregnancyTestsTaken++>> <<if !$player.vaginaExist>> <<set _pregnancyTest to $sexStats.anus.pregnancy>> <<if _pregnancyTest.type is null or _pregnancyTest.type is "parasite" or _pregnancyTest.timer is 0 or (between(_pregnancyTest.timer, 0, 3) and random(0,100) gte 10) or (between(_pregnancyTest.timer, 3, 6) and random(0,100) gte 15)>> <span class="green">It's negative.</span> You wonder how it could ever be positive. <<elseif _pregnancyTest.givenBirth >= 1>> <span class="lewd">It's positive.</span> Many thoughts rush through your head, and you sit to collect yourself. <<gstress>><<stress 3>><<garousal>><<arousal 100>> <br><br> <<if _pregnancyTest.potentialFathers.length is 1>> <<set _fatherName to pregnancyNameCorrection(_pregnancyTest.potentialFathers[0].source)>> <span class="lewd">It's clear that <<print _fatherName === "yourself" ? "you are" : _fatherName + " is">> the father.</span> <<else>> <span class="red">You wonder who the father is.</span> <</if>> <<set _pregnancyTest.awareOf to "pregnancyTest">> <<else>> <span class="lewd">It's positive.</span> You briefly wonder if you're seeing things or have gone crazy. Many thoughts rush through your head, and you sit to collect yourself. <<ggstress>><<stress 10>><<ggarousal>><<arousal 200>> <br><br> <<if _pregnancyTest.potentialFathers.length is 1>> <<set _fatherName to pregnancyNameCorrection(_pregnancyTest.potentialFathers[0].source)>> <span class="lewd">It's clear that <<print _fatherName === "yourself" ? "you are" : _fatherName + " is">> the father.</span> <<else>> <span class="red">You wonder who the father is.</span> <</if>> <<set _pregnancyTest.awareOf to "pregnancyTest">> <</if>> <<else>> <<set _pregnancyTest to $sexStats.vagina.pregnancy>> <<if _pregnancyTest.type is null or _pregnancyTest.type is "parasite" or _pregnancyTest.timer is 0 or (between(_pregnancyTest.timer, 0, 3) and random(0,100) gte 10) or (between(_pregnancyTest.timer, 3, 6) and random(0,100) gte 15)>> <span class="green">It's negative.</span> <<else>> <span class="lewd">It's positive.</span> Many thoughts rush through your head, and you sit to collect yourself. <<gstress>><<stress 3>><<garousal>><<arousal 100>> <br><br> <<if _pregnancyTest.potentialFathers.length is 1>> <<set _fatherName to pregnancyNameCorrection(_pregnancyTest.potentialFathers[0].source)>> <span class="lewd">It's clear that <<print _fatherName === "yourself" ? "you are" : _fatherName + " is">> the father.</span> <<else>> <span class="red">You wonder who the father is.</span> <</if>> <<set _pregnancyTest.awareOf to "pregnancyTest">> <</if>> <</if>> <br><br> <<link [[Next|$lastPassage]]>><<endevent>><<unset $lastPassage>><<set $eventskip to 1>><</link>><<widget "pregnancyTest">> <<if _args[0]>> <<if $pregnancyTest gt 0>> <<if !getPregnancyObject().awareOf>> <<pregnancytesticon>><<link [[Take a pregnancy test (0:05)|pregnancyTest]]>><<pass 5>><<set $lastPassage to _args[0]>><</link>> <br> <<elseif getPregnancyObject().awareOf>> <<pregnancytesticon>><span class="lewd"> You have a pregnancy test, but you already know you're pregnant.</span> <br> <</if>> <</if>> <</if>> <</widget>> /*Note: Pregnancy *//* Ultrasounds not performed before 12 weeks in normal circumstances, or before 8 in high-risk. Prior to 12 weeks, ultrasounds are usually performed transvaginally. Future commit will address this.*/ <<set $outside to 0>><<set $location to "hospital">><<effects>> <<harper_intro>> <<setKnowsAboutPregnancy "pc" "Harper">> <<if $ultrasoundIntro isnot 1>> <<set $ultrasoundIntro to 1>> /* player is introduced to what ultrasounds are, how it occurs and the reasons why they are done. */ "First of all," the doctor says. "Congratulations. An ultrasound is a wise request. Please follow me to radiology." <<He>> continues talking as you walk. <br><br> "If you're far enough along, we start by applying a gel to prevent air pockets, which could disrupt the sound waves we'll be pushing through your body. There's no risk. The gel is water-based and easy to remove, and the sound is harmless." <<else>> "An ultrasound is a wise request. Please follow me to radiology." <</if>> <br><br> <<He>> leads you to a room in the hospital basement. Several machines blink and make a soft pinging sound. There's a bed in one corner of the room, with a monitor next to it. A technician waits to assist. <br><br> "Please undress down to your underwear," the doctor says. <br><br> <<link [[Next|Pregnancy ultrasound 2]]>><<overupperstrip>><<upperstrip>><<underupperstrip>><</link>><<set $outside to 0>><<set $location to "hospital">><<effects>> /*Alex variables*/ <<if getPregnancyObject().fetus[0].father is "Alex">> <<set C.npc.Alex.pregnancy.ultraSoundPics to true>> <</if>> You strip and lie down. <<set [_pregnancy, _pregnancyGenital] to getPregnancyObject("pc", true)>> <<if _pregnancy.timer lte _pregnancy.timerEnd * 0.3>> <<set _pregnancy.awareOfMultiple to true>> "I'm afraid you're not far enough along for an abdominal ultrasound," Doctor Harper remarks. "But we can use the doppler to listen for cardiac activity." <br><br> <<He>> picks up a small handheld instrument, twists a dial, and presses a small circular wand against your lower abdomen. <<He>> moves it across your body. The instrument makes static-sounding hisses, punctuated by occasional thrums. <<He>> slows, and the thrums become a rhythmic staccato dance. <br><br> "There! Listen. A healthy child." A little more than two beats a second. The thrumming soothes you.<<lstress>> <br><br> <<stress -10>> <<if _pregnancy.fetus.length gt 1>> <<He>> moves the wand a little more and fails to conceal surprise. "There's another one." You hear a second pulsing, slightly different in tempo.<<gstress>><<stress 6>> <br><br> <</if>> <<if C.npc.Alex.pregnancy.ultraSound is "requested">> <<set C.npc.Alex.pregnancy.ultraSound to "collected2">> You ask <<him>> for a doctor's note affirming that you're pregnant. <<He>> taps away at <<his>> computer for a moment before printing out an official-looking letter. <<He>> signs it with a flourish and hands it to you. <br><br> <</if>> <<else>> <<if C.npc.Alex.pregnancy.ultraSound is "requested">><<set C.npc.Alex.pregnancy.ultraSound to "collected">><</if>> /* Player has pictures of the babies */ <<set _pregnancy.ultrasoundDone to true>> <<bodyliquid "vaginaoutside" "goo" 2>> Doctor Harper prepares the gel and wand for the procedure. You find the gel to be comfortably warm as <<he>> slathers it on your abdomen. <br><br> <<if $cowbuild gte 20>> You suppress the urge to moo. Your teats tingle with anticipation.<<garousal>> <<arousal 3>> <br><br> <<elseif $wolfbuild gte 20>> /* Your wolf fur gets slightly matted by the gel.<br><br> */ <<elseif $catbuild gte 20>> /* Your cat fur gets slightly matted by the gel. <br><br> */ <</if>> <<He>> runs the wand left and right over your lower abdomen as the screen changes and flashes different shades of grey over <<his>> face. <br> <<if _pregnancy.type isnot "human">> Harper is quiet for a while as <<he>> pores over the equipment, and the technician gives a look of concern. It's making you nervous. There's a lot of clicking and typing on the computer as the technician measures different parts. Femur, head, humerus, and amniotic fluid levels. <<else>> There's a lot of clicking and typing on the computer as the technician measures different parts. <</if>> <br><br> <<if _pregnancy.fetus.length gt 1>> <<set _multiple to true>> <<else>> <<set _multiple to false>> <<switch _pregnancy.fetus[0].gender>> <<case "m">> <<set _he to "he">> <<set _He to "He">> <<set _his to "his">> <<set _His to "His">> <<set _him to "him">> <<set _gender to "male">> <<case "f">> <<set _he to "she">> <<set _He to "She">> <<set _his to "her">> <<set _His to "Her">> <<set _him to "her">> <<set _gender to "female">> <<case "h">> <<set _he to "she">> <<set _He to "She">> <<set _his to "her">> <<set _His to "Her">> <<set _him to "her">> <<set _gender to "hermaphrodite">> <</switch>> <</if>> <<if _pregnancy.type isnot "human" and _pregnancy.fetus[0].features.monster>> <<if _pregnancy.type is "hawk">> <<set _type to "harpy">> <<else>> <<set _type to _pregnancy.fetus[0].type + "person">> <</if>> <<else>> <<set _type to _pregnancy.fetus[0].type>> <</if>> <<switch _pregnancy.type>> <<case "human">> <<He>> at last turns to you. "Would you like to see?" <<He>> swings the monitor to face you. <<if !_pregnancy.awareOfMultiple and _pregnancy.fetus.length gt 1>> You're surprised by what you see. <</if>> <br><br> You see <<if _multiple>><<if _pregnancy.fetus.length is 3>>three<<else>>two<</if>> sets<<else>>a pair<</if>> of eyes, arms, hands, legs, and feet as the doctor moves the wand across your belly. <<stress -5>><<lstress>> <br><br> "Perfect," the doctor says. "I'll print them out for you to take home." <br><br> <<if !_pregnancy.genderKnown>> <<set _pregnancy.genderKnown to true>> "It's time," the doctor announces. <<if _multiple>> "I hope you're excited to know your children's sex." <br><br> <<He>> glides the wand over your gently bulging belly. The pressure is uncomfortable. <<pregnancyGendersText>> <br><br> <<else>> "Are you excited for the gender reveal?" <<he>> asks. <br><br> <<He>> glides the wand over your rounded abdomen. The pressure is uncomfortable. <<if _pregnancy.fetus[0].gender is "m">> "It's a boy," <<he>> says. "Congratulations." You can't make out anything on the screen that would indicate this, but Harper seems confident. <br><br> <<elseif _pregnancy.fetus[0].gender is "f">> "It's a girl," <<he>> says. "Congratulations." You can't make out anything on the screen that would indicate this, but Harper seems confident. <br><br> <<else>> "I'm afraid I can't tell if it's a boy or a girl," <<he>> says. "<span class="blue">It almost looks like both.</span> Regardless, they're healthy. Congratulations." <br><br> <</if>> <</if>> <</if>> <<if _pregnancy.timer gte _pregnancy.timerEnd * 0.9>> /* 36-40 weeks, full term */ <<if ! _multiple>> "Good news," <<he>> continues. "Your baby has dropped and is head-down. This should ease some of the pressure you feel." <</if>> It'll be time to deliver soon. The doctor hands you some literature about labour and what to do when it begins. "Please come see us when your waters break. We will take good care of you." <br><br> <<elseif _pregnancy.timer gte _pregnancy.timerEnd * 0.8>> /*32-36 weeks, preterm */ You feel several fluttery kicks as the doctor continues to probe. "Based on these measurements," the technician says, "you'll be full term in a few weeks. Have you made birth plans yet? Make sure you're getting rest and nutrition." <br><br> You know you'll need rest, and money.<<gstress>><<stress 6>> <br><br> <<elseif _pregnancy.timer gte _pregnancy.timerEnd * 0.7>> /*28-32 weeks */ <<if !_multiple>> "Look, <<print _he>> is moving around," the doctor says. "Can you see the fingers?" It almost appears <<print _his>> hand is waving at the screen. You feel movements inside at the same time.<<llstress>><<stress -7>> <br><br> "Your child looks healthy," Harper continues. "<<print _He>> just needs to keep growing, putting on weight and maturing <<print _his>> lungs. It's very important that you make healthy choices right now, as your children depend on your body for everything." <<else>> "Look, they're moving around," the doctor says. "Can you see the fingers?" It almost appears one of their hands is waving at the screen. You feel movements inside at the same time.<<llstress>><<stress -7>> <br><br> Harper continues. "Your children look healthy. They just need to keep growing, putting on weight and maturing their lungs. It's very important that you make healthy choices right now, as your children depend on your body for everything." <</if>> <br><br> <<elseif _pregnancy.timer gte _pregnancy.timerEnd * 0.6>> /* 24-28 weeks */ <<if _multiple>> The doctor continues to probe your belly. As <<he>> does, you feel like there's a swarm of butterflies inside as your children turn back and forth in response to the prodding. <br><br> "Everything seems in order," Harper says. "Your babies are measuring <<print _pregnancy.fetus[0].features.size>> and are perfectly healthy. Please come see us in a few months, when you're almost ready to give birth." <br><br> <<else>> The doctor continues to probe your belly. As <<he>> does, you feel like there's a swarm of butterflies inside as your child turns back and forth in response to the prodding. <br><br> "Everything seems in order," Harper says. "Your baby is measuring <<print _pregnancy.fetus[0].features.size>> and is perfectly healthy. Please come see us in a few months, when you're almost ready to give birth." <br><br> <</if>> <<elseif _pregnancy.timer gte _pregnancy.timerEnd * 0.4>> /* 16-24 weeks */ <<if _multiple>> "Your babies are doing fine," the doctor says. "They're a little smaller than if you just had the one, but they are responsive and moving well. There's ample fluid as well, so it should be a normal pregnancy." <<llstress>> <<stress -8>> <br><br> On the screen you can see them moving around, legs and arms switching places. One jerks. "Hiccups," Harper assures you. <br><br> <<else>> "Your baby is doing great. <<print _He>> is responsive and moving well," the doctor says. "There's ample fluid as well, so it should be a normal pregnancy." <<llstress>> <<stress -8>> <br><br> On the screen you can see <<print _him>> moving around, legs and arms switching places. <<print _He>> jerks. "Hiccups," Harper assures you. <br><br> <</if>> <<elseif _pregnancy.timer gte _pregnancy.timerEnd * 0.3>> /* 12-16 weeks */ <<if _multiple>> "Your babies are healthy," the doctor says. "They are responsive and moving well. There's ample fluid, so it should be a normal pregnancy."<<llstress>><<stress -8>> <br><br> You can see them moving around on the screen, legs and arms switching places. One jerks. "Hiccups," Harper assures you. <<else>> "Your baby is healthy," the doctor says. "<<print _He>> is responsive and moving well. There's ample fluid, so it should be a normal pregnancy."<<llstress>><<stress -8>> <br><br> You can see <<print _him>> moving around on the screen, legs and arms switching places. <<print _He>> jerks. "Hiccups," Harper assures you. <</if>> <br><br> <<else>> /* Shouldn't get here. */ <</if>> <<case "wolf">> <<if !_pregnancy.awareOfDetails>> "I'd like to congratulate you," <<he>> starts as <<he>> turns to you. "You're lucky to carry a very unusual pregnancy. Instead of a human child, <span class="lewd">you're pregnant with <<if _multiple>> a litter of _type pups. <<else>> a _type pup. <</if>> </span>Remarkable." <br><br> Harper smiles at you. "There's nothing to worry about, your <<if _multiple>>children are<<else>>child is<</if>> in perfectly good health. Would you like to see?" <<else>> <<He>> at last turns to you. "Would you like to see?" <</if>> <<He>> swings the monitor to face you. <br><br> You see <<if _multiple>><<number _pregnancy.fetus.length>> sets<<else>>a pair<</if>> of eyes, legs, and paws as the doctor moves the wand across your full belly. <<stress -5>><<lstress>> <br><br> "Perfect," the doctor says. "I'll print them out for you to take home." <br><br> <<if !_pregnancy.genderKnown>> <<set _pregnancy.genderKnown to true>> "It's time," the doctor announces. <<if _multiple>> "I hope you're excited to know your children's sex." <br><br> <<He>> glides the wand over your gently bulging belly. The pressure is uncomfortable. <<pregnancyGendersText>> <br><br> <<else>> "Are you excited for the gender reveal?" <<he>> asks. <br><br> <<He>> glides the wand over your rounded abdomen. The pressure is uncomfortable. <<if _pregnancy.fetus[0].gender is "m">> "It's a boy," <<he>> says. "Congratulations." You can't make out anything on the screen that would indicate this, but Harper seems confident. <br><br> <<elseif _pregnancy.fetus[0].gender is "f">> "It's a girl," <<he>> says. "Congratulations." You can't make out anything on the screen that would indicate this, but Harper seems confident. <br><br> <<else>> "I'm afraid I can't tell if it's a boy or a girl," <<he>> says. "<span class="blue">It almost looks like both.</span> Regardless, they're healthy. Congratulations." <br><br> <</if>> <</if>> <</if>> <<if _pregnancy.timer gte _pregnancy.timerEnd * 0.9>> /* 36-40 weeks, full term */ <<if ! _multiple>> "Good news," <<he>> continues. "Your pup has dropped and is head-down. This should ease some of the pressure you feel." <</if>> It'll be time to deliver soon. The doctor hands you some literature about labour and what to do when it begins. There's nothing in it about wolves, though. "Please come see us when your waters break. We will take good care of you." <br><br> <<elseif _pregnancy.timer gte _pregnancy.timerEnd * 0.8>> /*32-36 weeks, preterm */ You feel several fluttery kicks as the doctor continues to probe. "Based on these measurements," the technician says, "you'll be full term very soon. We think. It's very hard to tell with a... non-human pregnancy. Have you made birth plans yet? Make sure you're getting rest and nutrition." <br><br> You know you'll need rest and money. You wonder where you'll keep them.<<gstress>><<stress 6>> <br><br> <<elseif _pregnancy.timer gte _pregnancy.timerEnd * 0.7>> /*28-32 weeks */ <<if !_multiple>> "Look, <<print _he>> is moving around," the doctor says. "Can you see the toes?" It almost appears <<print _his>> paw is waving at the screen. You feel movements inside at the same time.<<llstress>><<stress -7>> <br><br> "Your pup looks healthy," Harper continues. "<<print _He>> just need to keep growing, putting on weight and maturing <<print _his>> lungs. It's very important that you make healthy choices right now, as your children depend on your body for everything." <<else>> "Look, they're moving around," the doctor says. "Can you see the toes?" It almost appears one of their paws is waving at the screen. You feel movements inside at the same time.<<llstress>><<stress -7>> <br><br> Harper continues. "Your children look healthy. They just need to keep growing, putting on weight and maturing their lungs. It's very important that you make healthy choices right now, as your children depend on your body for everything. It's especially important that you take care with such an unusual pregnancy." <</if>> <br><br> <<elseif _pregnancy.timer gte _pregnancy.timerEnd * 0.6>> /* 24-28 weeks */ <<if _multiple>> The doctor continues to probe your belly. As <<he>> does, you feel like there's a swarm of butterflies inside as your litter turns back and forth in response to the prodding. <br><br> "Everything seems in order," Harper says. "Your pups are measuring <<print _pregnancy.fetus[0].features.size>> and are perfectly healthy. Please come see us in a few weeks, when you're almost ready to give birth." <br><br> <<else>> The doctor continues to probe your belly. As <<he>> does, you feel like there's a swarm of butterflies inside as your pup turns back and forth in response to the prodding. <br><br> "Everything seems in order," Harper says. "Your pup is measuring <<print _pregnancy.fetus[0].features.size>> and is perfectly healthy. Please come see us in a few weeks, when you're almost ready to give birth." <br><br> <</if>> <<elseif _pregnancy.timer gte _pregnancy.timerEnd * 0.4>> /* 16-24 weeks */ <<if _multiple>> "Your ba... litter, is doing fine," the doctor says. "They're a little smaller than if you just had the one, but they are responsive and moving well. There's ample fluid as well, so it should be a normal pregnancy. As normal as a pregnancy like this can be." <<llstress>> <<stress -8>> <br><br> On the screen you can see them moving around, legs switching places. One jerks. "Hiccups," Harper assures you. <br><br> <<else>> "Your pup is doing great. <<print _He>> is responsive and moving well," the doctor says. "There's ample fluid as well, so it should be a normal pregnancy. As normal as a pregnancy like this can be." <<llstress>> <<stress -8>> <br><br> On the screen you can see <<print _him>> moving around, legs switching places. <<print _He>> jerks. "Hiccups," Harper assures you. <br><br> <</if>> <<elseif _pregnancy.timer gte _pregnancy.timerEnd * 0.3>> /* 12-16 weeks */ <<if _multiple>> "Your pups are healthy," the doctor says. "They are responsive and moving well. There's ample fluid, so it should be a normal pregnancy. As normal as a pregnancy like this can be."<<llstress>><<stress -8>> <br><br> You can see them moving around on the screen, legs switching places. One jerks. "Hiccups," Harper assures you. <<else>> "Your pup is healthy," the doctor says. "<<print _He>> is responsive and moving well. There's ample fluid, so it should be a normal pregnancy. As normal as a pregnancy like this can be."<<llstress>><<stress -8>> <br><br> You can see <<print _him>> moving around on the screen, legs switching places. <<print _He>> jerks. "Hiccups," Harper assures you. <</if>> <br><br> <<else>> /* Shouldn't get here. */ <</if>> <<case "hawk">> <<if !_pregnancy.awareOfDetails>> "I'd like to congratulate you," <<he>> starts as <<he>> turns to you. "You're lucky to carry a very unusual pregnancy. Instead of a human child, <span class="lewd">you're pregnant with <<if _multiple>> a... clutch of bird eggs. <<else>> a... bird egg. <</if>> </span>Remarkable." <br><br> <<if _pregnancyGenital is "vagina">> <<He>> clears <<his>> throat. "It appears that, rather than releasing an egg cell, a runaway reaction within your ovaries has caused a cluster of cells to gel into a sort of membrane, becoming larger eggs. They've already passed through your oviduct and sit within your uterus." <br><br> <</if>> Harper smiles at you. "There's nothing to worry about, your <<if _multiple>>children are<<else>>child is<</if>> in perfectly good health. Would you like to see?" <<else>> <<He>> at last turns to you. "Would you like to see?" <</if>> <<He>> swings the monitor to face you. <br><br> You see <<if _multiple>><<number _pregnancy.fetus.length>> hard outlines, each containing a pair of eyes, legs,<<if _type is "harpy">> arms,<</if>> and tiny wings.<<else>>a hard outline, containing a pair of eyes, legs,<<if _type is "harpy">> arms,<</if>> and tiny wings.<</if>> It's a little hard to make out because of the egg shell, but you manage to see more as the doctor moves the wand across your full belly. <<stress -5>><<lstress>> <br><br> <<if !_pregnancy.genderKnown>> "Unfortunately, the hardening shell is making it nearly impossible to tell the gender. I suspect you won't have to wait too long to find out for yourself, though." <<He>> continues moving the wand, trying to get a better angle, but the picture is too small and distorted. <br><br> <</if>> <<if _pregnancy.timer gte _pregnancy.timerEnd * 0.8>> <<if ! _multiple>> "Good news," <<he>> continues. "Your <<if _pregnancyGenital is "vagina">>oviduct is expanding, in preparation for the egg<<if _multiple>>s<</if>> to pass through.<<else>>egg<<if _multiple>>s are<<else>> is<</if>> starting to move in preparation for laying.<</if>>" <</if>> It'll be time to deliver soon. The doctor hands you some literature about labour and what to do when it begins. There's nothing in it about birds or eggs, though. "The laying process should be something you can do at home. However, don't hesitate to come see us if you have further questions." <br><br> <<elseif _pregnancy.timer gte _pregnancy.timerEnd * 0.6>> You feel a low rumble from within yourself. "Based on these measurements," the technician says, "you'll be full term very soon. We think. It's very hard to tell with a... non-human pregnancy. Have you made birth plans yet? Make sure you're getting rest and nutrition." <br><br> You know you'll need rest. You think about where to keep them. A nest? <<if _pregnancy.fetus[0].father is "Great Hawk">>The castle's tower comes to mind.<</if>> <br><br> <<elseif _pregnancy.timer gte _pregnancy.timerEnd * 0.4>> /* 16-24 weeks */ <<if _multiple>> "Your ba... eggs, are doing fine," the doctor says. "They are responsive and moving well. There's ample fluid, so it should be a normal pregnancy. As normal as a pregnancy like this can be." <<llstress>> <<stress -8>> <br><br> <<else>> "Your egg is doing great. The baby inside is responsive and moving well," the doctor says. "There's ample fluid, so it should be a normal pregnancy. As normal as a pregnancy like this can be." <<llstress>> <<stress -8>> <br><br> <</if>> <<elseif _pregnancy.timer gte _pregnancy.timerEnd * 0.3>> <<if _multiple>> "Your eggs are healthy," the doctor says. "They are responsive and moving well. There's ample fluid, so it should be a normal pregnancy. As normal as a pregnancy like this can be."<<llstress>><<stress -8>> <br><br> <<else>> "Your egg is healthy," the doctor says. "It is responsive and moving well. There's ample fluid, so it should be a normal pregnancy. As normal as a pregnancy like this can be."<<llstress>><<stress -8>> <br><br> <</if>> <br><br> <<else>> /* Shouldn't get here. */ <</if>> <<default>> <</switch>> <<makeAwareOfDetails>> <<set _pregnancy.awareOfMultiple to true>> <</if>> <<link [[Next|Pregnancy ultrasound 3]]>><</link>><<set $outside to 0>><<set $location to "hospital">><<effects>><<wearProp "rag">> You thank Doctor Harper for the scan as <<he>> hands you a warm towel. You wipe off the gel, but some still sticks. <br><br> <<bodyliquid "vaginaoutside" "goo" -1>> <<clotheson>> <<link [[Return to foyer|Hospital Foyer]]>><<endevent>><</link>><<effects>> <<npc "Alex">> <<getChildrenIds>><<childSelect _childrenIds.last()>> <<if $alexRescued>> Alex taps <<his>> foot as <<he>> waits for you in the hospital foyer. <<He>> runs over to you, very nearly knocking you over. "Partner! I'm so glad you're alright. You know how to scare a <<= C.npc.Alex.pronoun is "m" ? "farmboy" : "farmgirl">>." <<unset $alexRescued>> <<else>> Alex waits for you in the hospital foyer. <<He>> smiles when <<he>> sees you. "Hey, I got a call from the hospital saying that you were in labour. I got here as fast as I could." <</if>> <br><br> <<He>> looks at <<if $litter_size is 1>><<childname>><<else>><<childrenNames $bornChildrenIds>><</if>> and smiles. "So <<print $litter_size > 1 ? "these are our little fellas" : "this is our little fella">>." <br><br> <<if $litter_size is 1>> <<link [[Let Alex hold <<childhim>>|Pregnancy Birth Hospital Alex 2]]>><<set $phase to 1>><</link>> <br> <<link [[Keep holding your baby|Pregnancy Birth Hospital Alex 2]]>><<set $phase to 2>><</link>> <<else>> <<link [[Let Alex hold them|Pregnancy Birth Hospital Alex 2]]>><<set $phase to 1>><</link>> <br> <<link [[Keep holding your babies|Pregnancy Birth Hospital Alex 2]]>><<set $phase to 2>><</link>> <</if>><<effects>> <<if $phase is 1>> "Here, you should hold <<if $litter_size is 1>><<childhim>><<else>>them<</if>> too," you say, passing <<if $litter_size is 1>><<childname>><<else>><<childrenNames $bornChildrenIds>><</if>> to Alex. <br><br> <<He>> doesn't have a problem holding <<if $litter_size is 1>><<childhim>><<else>>them<</if>>. Actually, it looks like <<hes>> used to it. "So cute," <<he>> says with a giggle as <<he>> hands <<if $litter_size is 1>><<childname>><<else>>them<</if>> back to you. <br><br> <<else>> <<if $litter_size gte 2>> You hold your babies to your chest. <<childname>> yawns. <<else>> You hold your baby to your chest. <<childHe>> yawns. <</if>> <br><br> <</if>> "Did you already give <<if $litter_size is 1>><<childhim>> a name<<else>>them names<</if>>?" <br> You nod and tell Alex <<if $litter_size is 1>><<childhis>> name<<else>>their names<</if>>. <br> "<<if $litter_size is 1>><<childname>><<else>><<childrenNames $bornChildrenIds>><</if>>, huh? Let's get you home, shall we?" <<he>> says. <br><br> A confused expression crosses your face. "You know that we can't take <<if $litter_size is 1>><<childhim>><<else>>them<</if>> to the farm by horse, right?" <br><br> Alex laughs. "I know, dummy. You didn't really think I would do that, do you?" <<he>> asks. <br> "Okay," <<he>> concedes, "maybe I thought about it, but hey, guess what? Someone agreed to give us a ride. Come on, I'll show you," <<he>> says, guiding you to where the vehicle is parked. <br><br> <<if pregnancyCountBetweenParents("pc","Alex") gte 2 or pregnancyCountBetweenParents("Alex","pc") gte 2>> <<link [[Next|Pregnancy Birth Hospital Alex 5]]>><<endevent>><</link>> <<else>> <<link [[Next|Pregnancy Birth Hospital Alex 3]]>><</link>> <</if>>/*This part may only happen if the player first birth was at the hospital*/ <<effects>> <<set _alex to statusCheck("Alex")>> "Hold on just a sec," a voice says from behind. <span class="red">It's Bailey.</span> <br> "Just where do you think you're going with my property?" <<nnpc_he "Bailey">> says. <br><br> Alex frowns. "Your 'property'? Just what are you trying to say, pal?" <br><br> Bailey ignores Alex's question and glares at you. "We've a place prepared at the orphanage. Now make my job easier and hand me the <<print $litter_size > 1 ? "brats" : "brat">>." <br><br> "What makes you think that we'll just give our <<print $litter_size > 1 ? "children" : "child">> to you?" Alex protests. <br><br> Bailey turns <<nnpc_his "Bailey">> gaze to Alex. "Look, 'cow<<if _alex.pronoun is "f">>girl<<else>>boy<</if>>', you could've fucked any whore and I wouldn't care, but you hitched yourself to MY ward." <br> Alex clenches <<his>> fists. "And who exactly said <<pshe>> is yours? <<pShes>> MY <<if $player.gender_appearance is "f">>woman<<else>>man<</if>>." <br> Bailey fixes Alex with a piercing gaze. "And how exactly do you plan on taking care of a kid on that shithole you call a farm?" <br><br> <<link [[Next|Pregnancy Birth Hospital Alex 4]]>><</link>><<effects>> "We have our own nursery at the cottage; we don't need your help," Alex responds. <br><br> A long and deafening silence fills the environment. Bailey keeps staring at you and Alex. <br><br> "Tch." Bailey is the first to break the silence. "Do whatever you want; it's one less problem for me to deal with anyway." Shooting you one last glare, <<nnpc_he "Bailey">> turns and leaves the hospital. <br><br> "I'm glad that's over," Alex says. "Let's just get to where the vehicle is parked." <br><br> <<link [[Next|Pregnancy Birth Hospital Alex 5]]>><<endevent>><</link>><<effects>> <<set _alex to statusCheck("Alex")>> <<generate1>><<person1>> <<if $pronoun is "f">> <<set $alex_parent to "mother">> <<else>> <<set $alex_parent to "father">> <</if>> <<npc "Alex" 2>><<person2>> <<run Object.values(V.children).filter(child => { if (child.location === "home" && (child.father === "Alex" || child.mother === "Alex")) child.location = "alex_cottage"; })>> Alex's $alex_parent waves at you two. <br><br> Alex opens the door for you. <<person2>><<He>> helps you in before settling into the seat next to you. <br><br> <<if pregnancyCountBetweenParents("pc", "Alex") gte 2>> "Again?" <<nnpc_His "Alex">> $alex_parent laughs. "My <<if _alex.pronoun is "f">>daughter<<else>>son<</if>> is sure keeping you busy, ain't <<nnpc_he "Alex">>?" <br><br> Alex blushes and looks away. <br><br> <<else>> "My little <<nnpc_gendery "Alex">> is finally settling down," <<nnpc_his "Alex">> $alex_parent says with a laugh. <br> Alex blushes and looks away. <br><br> "And with such a <<if $player.gender_appearance is "f">>beautiful woman<<else>>handsome man<</if>>!" <<person1>><<he>> adds. <br> "<<if $alex_parent is "mother">>Mum<<else>>Pa<</if>>!" Alex protests. <br> "What? I'm telling the truth," <<he>> says. You don't think Alex's face can get any redder. <br><br> <</if>> <<link [[Next|Pregnancy Birth Hospital Alex 6]]>><</link>><<effects>> <<He>> drives to the farm, occasionally looking at <<his>> <<print $litter_size > 1 ? "grandchildren" : "grandchild">> and smiling. <br><br> It's not a long trip, and you soon arrive at the farm. <br><br> Alex helps you leave the vehicle and take your <<print $litter_size > 1 ? "children" : "child">> to the cottage's nursery. <br><br> <<if pregnancyCountBetweenParents("pc", "Alex") gte 2>> Alex's $alex_parent turns to Alex. "Look, I'm happy you're settling down, but try using some protection, would you? Unless you want your kids to have more siblings than you do." <<He>> laughs before driving away. <br><br> <<else>> Alex's $alex_parent turns to Alex. "I need to get back to work now, but listen, I'm proud of you. You're finally making this place look like a home," <<he>> says before driving away. <br><br> <</if>> <<link [[Next|Farm Work]]>><<endevent>><<unset $litter_size>><<unset $alex_pregnancy>><<unset $alex_parent>><</link>><<widget "moveCreature">> /*0 -> _pregnancy.fetus[_i] or location (any but portable)*/ /*1 -> Type*/ /*2 -> locationId*/ <<if _args[0] isnot null and _args[1]>> <<set _portable to $container.portable>> <<set _container to $container[$phase]>> <<set $_pregnancy to $sexStats[_args[3] or "anus"].pregnancy>> <<set _result to _args[1]>> <<switch _args[0]>> <<case 0 1 2 3>> <!-- With a number as argument 0, it takes the parasite of that argument in your current pregnancy item --> <<set _creature to clone($_pregnancy.fetus[_args[0]])>> <<default>> <!-- With a string as argument 0, it takes a parasite from the container matching the argument. Which parasite it takes corresponds to argument 2 --> <!-- Currently only used when transferring parasites for selling in :: Containers, inside a for loop --> <<if _args[2] isnot null>> <<set _creature to clone($container[_args[0]].creatures[_args[2]])>> <</if>> <</switch>> <<if _creature>> <<if _result is "destroy">> <!-- Simply gets rid of the parasite --> <<set _creature to null>> <<removeCreature _args[0] _args[2] _args[3]>> <<elseif _result is "portable">> <!-- Transfers the parasites for selling. The value of the parasite depends on its growth stat --> <<set _portable.creatures.push(clone(_creature))>> <<set _value to Math.floor(1000 / _creature.stats.growth)>> <<set _portable.value += _value>> <<removeCreature _args[0] _args[2] _args[3]>> <<elseif _result is "replace" and _args[2] isnot null and _args[0] gte 0 and _args[0] lte 3>> <!-- Replaces an existing parasite, for when you birth more than you can currently store --> <!-- The replaced parasite gets transferred for selling --> <<if _container.creatures[_i] isnot undefined>> <<if _container.creatures[_i] isnot null>> <<set _portable.creatures.push(clone(_container.creatures[_args[2]]))>> <<set _value to Math.floor(1000 / _container.creatures[_args[2]].stats.growth)>> <<set _portable.value += _value>> <<set _container.creatures[_args[2]] to clone(_creature)>> <<set _replaced to true>> <</if>> <</if>> <<if _replaced isnot true>> <<set _container.creatures[_args[2]] to clone(_creature)>> <<set _container.count += 1>> <</if>> <<removeCreature _args[0] undefined _args[3]>> <<elseif _result is "container">> <!-- Keeps the parasite and moves it to the current container --> <<set _moveTo to false>> <<for _containerSlot to 0; _containerSlot lt _container.maxCount; _containerSlot++>> <<if _container.creatures[_containerSlot] is undefined>> <<set _moveTo to true>> <<elseif _container.creatures[_containerSlot] is null>> <<set _moveTo to true>> <</if>> <<if _moveTo is true>> <<set $container[$phase].creatures[_containerSlot] to clone(_creature)>> <<set $container[$phase].count += 1>> <<removeCreature _args[0] _args[2] _args[3]>> <<break>> <</if>> <</for>> <</if>> <</if>> <</if>> <</widget>> <<widget "removeCreature">> <<if _args[0] isnot null>> <<set $_pregnancy to $sexStats[_args[2] or "anus"].pregnancy>> <<switch _args[0]>> <<case 0 1 2 3>> <!-- With a number as argument 0, it removes the parasite of that argument in your current pregnancy item --> <<set $_pregnancy.fetus[_args[0]].toDelete to true>> <<set $_pregnancy.parasiteBirthEvents += 1>> <<if $_pregnancy.motherStatus is 0 and $_pregnancy.parasiteBirthEvents gte 3>> <<set $_pregnancy.motherStatus to 1>> <</if>> <<default>> <!-- With a string as argument 0, it removes a parasite from the container matching the argument. Which parasite it takes corresponds to argument 1 --> <<if _args[1] isnot null>> <<set $container[_args[0]].creatures[_args[1]] to null>> <<set $container[_args[0]].count -= 1>> <</if>> <</switch>> <</if>> <</widget>> <<widget "clearToDeleteParasiteFetus">> <<if $sexStats.anus.pregnancy.type is "parasite">> <<run $sexStats.anus.pregnancy.fetus to $sexStats.anus.pregnancy.fetus.filter(child => child && !child.toDelete)>> <<if $sexStats.anus.pregnancy.fetus.length is 0>> <<set $sexStats.anus.pregnancy.type to null>> <</if>> <</if>> <<if $sexStats.vagina.pregnancy.type is "parasite">> <<run $sexStats.vagina.pregnancy.fetus to $sexStats.vagina.pregnancy.fetus.filter(child => child && !child.toDelete)>> <<if $sexStats.vagina.pregnancy.fetus.length is 0>> <<set $sexStats.vagina.pregnancy.type to null>> <</if>> <</if>> <</widget>> <<widget "menstruationCycleState">> <<set $sexStats.vagina.menstruation.running to $player.vaginaExist or (!$player.vaginaExist and $skin and $skin.pubic.pen is "magic" and $skin.pubic.special is "pregnancy") or ($earSlime and $earSlime.growth gte 100 and ["pregnancy", "mixed"].includes($earSlime.focus))>> <</widget>> <<widget "menstruationCycle">> <<set _menstruation to $sexStats.vagina.menstruation>> <<if _args[0] is "daily">>/*Daily cycle*/ <<set _menstruation.nonCycleRng.push(random(0,6))>> <<set _menstruation.nonCycleRng.deleteAt(0)>> <<elseif _args[0] is "overdose">>/*Daily cycle*/ <<set _menstruation.nonCycleRng[0] to 0>> <</if>> <<menstruationCycleState>> <<if _menstruation.running is true>> <<set [$_pregnancy, $_pregLocation] to getPregnancyObject("pc", true)>> <<set _pills to $sexStats.pills>> <<switch _menstruation.currentState>> <<case "normal">> <<if $harpy gte 4 and $harpyEggs and $sexStats[$_pregLocation].sperm.find(source => source.type is "hawk")>> <<playerPregnancyHawkAttempt $_pregLocation>> <<if $_pregnancy.type is "hawk">><<exit>><</if>> <</if>> <<if !$settings.fertilityCycleEnabled>> <<if _menstruation.nonCycleRng[0] is 0>><<giveHarpyEggs>><</if>> <<playerPregnancyAttempt `Math.pow(4,_menstruation.nonCycleRng[0])` $_pregLocation>> <<elseif _menstruation.currentDay lt _menstruation.currentDaysMax>> /*Continue the cycle again*/ <<if _menstruation.currentDay gte _menstruation.currentDaysMax / 2 and _menstruation.lastDaysMax isnot _menstruation.currentDaysMax>> <</if>> <<if _menstruation.currentDay lt _menstruation.stages[1]>> /*Menstrual phase - period occurs right at the start of this part*/ <<if _pills.pills["fertility booster"].doseTaken gte 2>> <<set _menstruation.currentDay += 0.5>> <</if>> <<if $skin.pubic.pen is "magic" and $skin.pubic.special is "pregnancy">> <<set _menstruation.currentDay += 0.5>> <</if>> <<if (_pills.pills["contraceptive"].doseTaken gte 1 and random(0,100) gte 50) or _pills.pills["contraceptive"].doseTaken gte 2>> <<else>> <<set _menstruation.currentDay += 0.5>> <</if>> <<elseif _menstruation.currentDay lt _menstruation.stages[2]>> /*Follicular phase*/ <<if _pills.pills["fertility booster"].doseTaken gte 2 and _menstruation.currentDay lt _menstruation.stages[2]>> <<set _menstruation.currentDay += 0.5>> <</if>> <<if $skin.pubic.pen is "magic" and $skin.pubic.special is "pregnancy" and _menstruation.currentDay lt _menstruation.stages[2]>> <<set _menstruation.currentDay += 0.5>> <</if>> <<if _menstruation.currentDay lt _menstruation.stages[2]>> <<set _menstruation.currentDay += 0.5>> <</if>> /*Check for pregnancy at a reduced chance for a few days before*/ <<if _menstruation.currentDay gte _menstruation.stages[3] - 4>> <<set $_multi = Math.clamp(Math.ceil(6 * (1 + _menstruation.stages[3] - _menstruation.currentDay)),6,30)>> <<playerPregnancyAttempt $_multi $_pregLocation>> <</if>> <<elseif _menstruation.currentDay lt _menstruation.stages[3]>> /*Ovulation phase*/ <<set _menstruation.currentDay += 0.5>> <<set _menstruation.lastDaysMax to _menstruation.currentDaysMax>> <<giveHarpyEggs>> /*Check for pregnancy*/ <<playerPregnancyAttempt 3 $_pregLocation>> <<else>> /*Luteal phase*/ /*Check for pregnancy at a reduced chance for a few days after*/ <<if _menstruation.currentDay lte _menstruation.stages[3] + 4>> <<set $_multi = Math.clamp(Math.ceil(6 * (1 + _menstruation.currentDay - _menstruation.stages[3])),6,30)>> <<playerPregnancyAttempt $_multi $_pregLocation>> <</if>> <<if _pills.pills["fertility booster"].doseTaken gte 2>> <<set _menstruation.currentDay += 0.5>> <</if>> <<if $skin.pubic.pen is "magic" and $skin.pubic.special is "pregnancy">> <<set _menstruation.currentDay += 0.5>> <</if>> <<if (_pills.pills["contraceptive"].doseTaken gte 1 and random(0,100) gte 50) or _pills.pills["contraceptive"].doseTaken gte 2>> <<else>> <<set _menstruation.currentDay += 0.5>> <</if>> <</if>> <<else>> /*Start the cycle again*/ <<restartMenstruationCycle>> <<set _menstruation.periodEnabled to true>> <</if>> <<case "pregnant">> /*To progress as normal so that the heat cycle and pregnancy risk still works as normal, will be reset in the recovering stage*/ <<if _menstruation.currentDay lt _menstruation.currentDaysMax>> <<if (_pills.pills["contraceptive"].doseTaken gte 1 and random(0,100) gte 50) or _pills.pills["contraceptive"].doseTaken gte 2>> <<else>> <<set _menstruation.currentDay += 0.5>> <</if>> <<if _menstruation.currentDay lt _menstruation.currentDaysMax>> <<if $skin.pubic.pen is "magic" and $skin.pubic.special is "pregnancy">> <<set _menstruation.currentDay += 0.5>> <</if>> <<if _pills.pills["fertility booster"].doseTaken gte 2>> <<set _menstruation.currentDay += 0.5>> <</if>> <<if _menstruation.currentDay gt _menstruation.currentDaysMax>> <<set _menstruation.currentDay to _menstruation.currentDaysMax>> <</if>> <</if>> <</if>> /*To deal with an issues that occurred when players cheated with the bugged 'Clear current pregnancy'*/ <<if !getPregnancyObject().type is null or getPregnancyObject().type is "parasite">> <<restartMenstruationCycle>> <<set _menstruation.currentState to "normal">> <<set _menstruation.recoveryTime to null>> <<set _menstruation.recoveryTimeStart to null>> <<set _menstruation.recoveryStage to null>> <</if>> <<case "recovering">> <<set _menstruation.recoveryTime -= 0.5>> <<switch _pills.pills["fertility booster"].doseTaken>> <<case 1>><<set _menstruation.recoveryTime -= 0.5>> <<case 2 3 4>><<set _menstruation.recoveryTime -= 1>> <</switch>> <<if $skin.pubic.pen is "magic" and $skin.pubic.special is "pregnancy">> <<set _menstruation.recoveryTime -= 0.5>> <</if>> <<if $_pregnancy.totalBirthEvents gt 2>> <<set _menstruation.recoveryTime -= 0.5>> <</if>> <<set _menstruation.recoveryStage to Math.floor((1 - (_menstruation.recoveryTime / _menstruation.recoveryTimeStart))*5)>> <<if _menstruation.recoveryTime lte 0>> <<set $effectsmessage to 1>> <<set $recovered_from_pregnancy to 1>> /*Ready to give birth again*/ <<restartMenstruationCycle>> <<set _menstruation.currentState to "normal">> <<set _menstruation.recoveryTime to null>> <<set _menstruation.recoveryTimeStart to null>> <<set _menstruation.recoveryStage to null>> <</if>> <</switch>> <</if>> <<updateRecordedSperm "vagina" "pc" 0.5>> <<updateRecordedSperm "anus" "pc" 0.5>> <</widget>> <<widget "rutCycle">> <<if $player.penisExist and ($wolfgirl gte 2 or $cat gte 2 or $cow gte 2 or $fox gte 2)>> <<if !$player.beastRut>> <<set $player.beastRut to 0>> <</if>> <<set $_pills = $sexStats.pills.pills>> <<if $wolfgirl gte 2>> <<set $_changeReduction to $wolfbuild>> <<elseif $cat gte 2>> <<set $_changeReduction to $catbuild>> <<elseif $cow gte 2>> <<set $_changeReduction to $cowbuild>> <<elseif $fox gte 2>> <<set $_changeReduction to $foxbuild>> <</if>> <<set $player.beastRut += 1 + $_pills["fertility booster"].doseTaken>> <<if $player.beastRut gte random(30 - Math.ceil($_changeReduction / 5), 120 - Math.clamp($_changeReduction, 0, 100)) or _args[0] or $_pills["fertility booster"].doseTaken gt 2>> <<set $player.beastRut to 0>> <</if>> <<else>> <<run delete $player.beastRut>> <</if>> <</widget>><<widget "bodyPregCalc">> <<switch $bodysize>> <<case 0>><<set _bodySize to ["tiny","tiny","tiny","small","small","normal","large"]>> <<case 1>><<set _bodySize to ["tiny","tiny","small","small","small","normal","normal","large"]>> <<case 2>><<set _bodySize to ["tiny","small","small","normal","normal","normal","large","large"]>> <<case 3>><<set _bodySize to ["tiny","small","normal","normal","large","large","large"]>> <<default>> <</switch>> <<set _hairColour to [$naturalhaircolour, $naturalhaircolour, $naturalhaircolour, $naturalhaircolour,"red","jetblack","black","brown","burntorange","platinumblond","strawberryblond","ginger","ashyblond","blond"]>> <</widget>> /*Don't call outside of the menstruationCycle widget*/ <<widget "restartMenstruationCycle">> <<set $_menstruation to $sexStats.vagina.menstruation>> <<set $_menstruation.currentDay to 0.5>> <<set $_menstruation.currentDaysMax to $_menstruation.baseDays + random(0, $_menstruation.baseDaysRng)>> <<set _stage2 to Math.round($_menstruation.currentDaysMax * 0.17)>> <<if _stage2 gte 4>> <<set _stage2-->> <</if>> <<set _stage3 to Math.round($_menstruation.currentDaysMax * 0.5)>> <<if _stage3 lt 13>> <<set _stage3++>> <<elseif _stage3 gte 18>> <<set _stage3-->> <</if>> <<set $_menstruation.stages to [0, _stage2, _stage3, _stage3 + random(1,2) * 0.5]>> <</widget>> /* Used for the passage where the player has given birth in */ <<widget "playerPrebirth">> <<set getPregnancyObject().gaveBirth to true>> <</widget>> /*args[0] - mother, args[1] - birth location, args[2] - location of where the clildren should go to, _args[3] - next passage, _args[4] - time passage*/ <<widget "birthUi">> <<if _args[0] is "pc">> <<makeAwareOfDetails>> <<set _pregnancyBirth to getPregnancyObject()>> <<elseif C.npc[_args[0]]>> <<set _pregnancyBirth to getPregnancyObject(_args[0])>> <</if>> <<if _pregnancyBirth and _pregnancyBirth.fetus>> <<pregnancyFeats _args[0]>> <div> <div class="settingsGrid m-0 childContainer"> <<for _i to 0; _i lt _pregnancyBirth.fetus.length; _i++>> <<capture _i>> <div @id="'child-' + _pregnancyBirth.fetus[_i].childId"> <<birthChildElement _pregnancyBirth.fetus[_i]>> </div> <</capture>> <</for>> </div> </div> <br> <<if _args[4]>> <<set _hours to Math.floor(_args[4] / 60)>> <<set _minutes to _args[4] % 60>> <<set _timeString to " (" + (_hours lt 10 ? "0": "") +_hours+":"+(_minutes lt 10 ? "0": "")+_minutes+")">> <</if>> <<link [["Next" + (_args[4] ? _timeString : "")|_args[3]]]>> <<if _args[0] is "pc">> <<run delete _pregnancyBirth.gaveBirth>> <<endPlayerPregnancy _args[1] _args[2]>> <<elseif $NPCNameList.includes(_args[0])>> <<endNpcPregnancy _args[0] _args[1] _args[2]>> <</if>> <<pass _args[4]>> <</link>> <<else>> Error Pregnancy Object not found in the passage '<<print $passage>>'. Please report the error with your save. <</if>> <</widget>> /*args[0] - hatch location, _args[1] - next passage, _args[2] - time passage*/ <<widget "hatchUi">> <<if Object.values($children).find(child => child.location is _args[0] and Time.date.timeStamp gte child.eggTimer)>> <<set _childrenId to Object.keys($children).filter(id => $children[id].location is _args[0] and Time.date.timeStamp gte $children[id].eggTimer)>> <<set $_date to { day: Time.monthDay, month: Time.monthName, year: Time.year }>> <div class="settingsGrid m-0 childContainer"> <<for _childId range _childrenId>> <<set $children[_childId].born to clone($_date)>> <<set $children[_childId].birthLocation to $location>> <<capture _childId>> <div @id="'child-' + _childId" class="childUi"> <<birthChildElement $children[_childId]>> </div> <</capture>> <</for>> </div> <br> <<if _args[2]>> <<set _hours to Math.floor(_args[2] / 60)>> <<set _minutes to _args[2] % 60>> <<set _timeString to " (" + (_hours lt 10 ? "0": "") +_hours+":"+(_minutes lt 10 ? "0": "")+_minutes+")">> <</if>> <<link [["Next" + (_args[2] ? _timeString : "")|_args[1]]]>> <<run Object.values($children).forEach(child => { if (child.location is _args[0] and Time.date.timeStamp gte child.eggTimer) { if (!child.name) child.name = generateBabyName(undefined, child.gender); delete child.eggTimer; } })>> <<pass _args[2]>> <</link>> <<else>> Error Children Objects not found in the passage '<<print $passage>>'. Please report the error with your save. <</if>> <</widget>> <<widget "birthChildElement">> <<if _args[0]?.childId>> <<capture _args>> <div class="childItem m-0 childName"> <div> <label><div>Name:</div><div><<print '<<textbox "_args[0].name" `_args[0].name or ""`>>'>></div></label> </div> </div> <div class="childItem m-0 childDetails"> <<if _args[0].type isnot "human">> <<childTypeDisplay _args[0]>> <<else>> <span class="gold">Gender:</span> <<switch _args[0].gender>> <<case "m">>Male <<case "f">>Female <<case "h">>Hermaphrodite <</switch>> <</if>> <span class="no-numberify"> | <<link "Random Name">> <<set _args[0].name to generateBabyName(undefined, _args[0].gender)>> <<replace `"#child-" + _args[0].childId`>><<birthChildElement _args[0]>><</replace>> <</link>> </span> <hr> <span class="gold">Mother:</span> <<if _args[0].motherKnown>> <<print pregnancyNameCorrection(_args[0].mother, true)>> <<else>> ???? <</if>> | <span class="gold">Father:</span> <<if _args[0].fatherKnown>> <<print pregnancyNameCorrection(_args[0].father, true)>> <<else>> ???? <</if>> <br> <span class="gold">Size:</span> <<print _args[0].features.size>> | <span class="gold">Hair Colour:</span> <<hairmapcolourtext _args[0].features.hairColour>> <<if _args[0].features.skinColour>> | <span class="gold">Skin Colour:</span> <<skinColourName _args[0].features.skinColour>> <</if>> <br> <<if _args[0].features.identical>> <span class="gold">Identical:</span> <<print _args[0].features.identical>> <br> <</if>> <br> <small class="right"> saveId: <<print $saveId>> <<if $saveName isnot "">> | name: <<print $saveName>> <</if>> </small> </div> <</capture>> <<else>> Error Children Object not found in the passage '<<print $passage>>'. Please report the error with your save. <</if>> <</widget>> <<widget "pregnancyFeats">> <<if _args[0] is "pc">> <<set $_pregnancy to getPregnancyObject()>> <<earnFeat "Miracle of Life">> <<if $_pregnancy.potentialFathers.filter(npc => npc.type === $_pregnancy.type).length gte 5>> <<earnFeat "Bicycle Mother">> <</if>> <<if $_pregnancy.type is "human" and $_pregnancy.fetus.length is 3>> <<earnFeat "Life Comes in Threes">> <</if>> <<if ($player.virginity.anal is true && !$player.vaginaExist) || ($player.virginity.vaginal is true && $player.vaginaExist)>> <<earnFeat "Hail Mary">> <</if>> <<if !$player.vaginaExist>> <<earnFeat "Life begins when you least expect">> <</if>> <</if>> <<if _args[0] isnot "pc">> <<set $_pregnancy to getPregnancyObject(_args[0])>> <<if $_pregnancy.fetus[0].mother isnot "pc" && $_pregnancy.fetus[0].father is "pc">> <<earnFeat "First Fatherhood">> <</if>> <</if>> <</widget>> <<widget "wakingEffects">><<silently>> <<if !$sexStats.vagina.menstruation.running>> <<elseif _args[0] and $sexStats.vagina.menstruation.currentState is "pregnant" or ($sexStats.vagina.menstruation.currentState is "normal" and ($settings.playerPregnancyHumanEnabled or $settings.playerPregnancyBeastEnabled))>> <<set $_pregnancy to getPregnancyObject()>> <<set _wakingEffect to wakingPregnancyEvent()>> <<if Array.isArray(_wakingEffect)>> <<set _wakingEffect to _wakingEffect[random(0,_wakingEffect.length - 1)]>> <</if>> <<switch _wakingEffect>> <<case "tired">> <<set $_text_output to "You wake up feeling more tired than rested.<<tiredness 10>><<ggtiredness>>">> <<case "crying">> <<set $_text_output to "You wake up in tears. You aren't even sure why you're crying, but the emotion quickly passes.">> <<case "angry">> <<set $_text_output to "You wake up feeling angry. The mood takes you by surprise, but soon passes.">> <<case "meatCraving">> <<set $_text_output to `You awaken to a strange craving ${V.wolfgirl >= 2 ? "for digging your fangs into" : "for"} something meaty.`>> <<case "foodCraving">> <<set $_text_output to `You awaken to a strange craving for something ${["sweet","spicy","sour","savoury","bitter"][random(0,4)]}.`>> <<case "headache">> <<set $_text_output to "You wake up to your head throbbing. You're not sure what brought on this headache, but it eventually passes.">> <<case "sensitiveBreasts">> <<set $_text_output to "You wake to your <<breasts>> feeling more tender than normal. Thankfully, it passes.">> <<case "bloated">> <<set $_text_output to "You wake feeling a little bloated.">> <<set $daily.bloated to random(1,2)>> <<case "lightHeaded">> <<set $_text_output to "You wake feeling a little lightheaded for a moment.">> <<case "dizzy">> <<set $_text_output to "You wake feeling a little dizzy, but it passes quickly.">> <<case "mildNausea">> <<set $_text_output to "You wake feeling a little nauseous, but it passes quickly.">> <<case "nausea">> <<set $_text_output to "You wake feeling nauseous, but it passes after some time.">> <<case "dryheaving">> <<if $location is "wolf_cave">> <<set $_text_output to "You wake up feeling nauseous, causing you to scramble out of bed to the edge of the cave. You're forced to do a dry heave by it.<<stress 10>><<gstress>><<pain 1>><<gpain>>">> <<elseif $location is "farm">> <<set $_text_output to "You wake up feeling nauseous, causing you to scramble out of bed to the edge of the barn. You're forced to do a dry heave by it.<<stress 10>><<gstress>><<pain 1>><<gpain>>">> <<elseif $location is "tower">> <<set $_text_output to "You wake up feeling nauseous, causing you to scramble out of bed to the edge of the tower. You're forced to do a dry heave over it.<<stress 10>><<gstress>><<pain 1>><<gpain>>">> <<else>> <<set $_text_output to "You wake up feeling nauseous, causing you to scramble out of bed to a nearby bin. You're forced to do a dry heave into it.<<stress 10>><<gstress>><<pain 1>><<gpain>>">> <</if>> <<if $awareness gte 200 and $sciencetrait gte 4 and playerNormalPregnancyTotal() gte 1 and !$_pregnancy.awareOf>> <<set $_text_output += " <span class='red'>Maybe you should get tested</span>.">> <</if>> <<case "lightBabyKick">> <<set $_text_output to "You wake up feeling a light kick coming from your <<pregnancyBabyText 'pc'>>.<<stress -10>><<lstress>>">> <<case "babyKick">> <<set $_text_output to "You wake up feeling a kick coming from your <<pregnancyBabyText 'pc'>>.<<stress -10>><<lstress>><<pain 1>><<gpain>>">> <<case "babyMovement">> <<set $_text_output to "You wake up feeling your <<pregnancyBabyText 'pc'>> moving around.<<stress -10>><<lstress>>">> <<case "babyHiccup">> <<set $_text_output to "You wake up feeling some baby hiccups.<<stress -10>><<lstress>>">> <<case "earlyContractions">> <<set $_text_output to "You wake up to a brief and sporadic contraction.<<stress 5>><<gstress>><<pain 1>><<gpain>>">> <<case "bellySize">> <<set $_text_output to "You wake and take a look at your growing belly. It finally hits you: you're pregnant.">> <<if $_pregnancy.potentialFathers.length is 1>> <<set $_fatherName to pregnancyNameCorrection($_pregnancy.potentialFathers[0].source)>> <<set $_text_output += " <span class='lewd'>It's clear that "+ ($_fatherName === "yourself" ? "you are" : $_fatherName + " is") +" the father.</span>">> <<else>> <<set $_text_output += " <span class='red'>You wonder who the father is.</span>">> <</if>> <<set $_pregnancy.awareOf to "wakingUp">> <<case "missedPeriod">> <<set $_text_output to "You wake and come to a realisation. Your current cycle is late.">> <<if $awareness gte 200 and $sciencetrait gte 4 and playerNormalPregnancyTotal() gte 1 and !$_pregnancy.awareOf>> <<set $_text_output += "You wonder if you're pregnant again. <span class='red'>Maybe you should get tested</span>.">> <</if>> <<set $sexStats.vagina.awareOfPeriodDelay to true>> <<case "clothesRemoval">> <<set $_text_output to `<span class="red">You wake up to a heavy pressure on your body.</span> `>> <<set $_slots to ["genitals","under_upper","upper","under_lower","lower"]>> <<set $_broken to []>> <<set $_removed to []>> <<for $_slot range $_slots>> <<if $worn[$_slot].type.includes("constricting")>> <<if $worn[$_slot].cursed>> <<if $worn[$_slot].name is "gold chastity belt" and $worn[$_slot].integrity gt 0>> <<set $_goldenCB to true>> <<set $antiquemoney += Math.floor(2000 / ($worn.genitals.integrity / clothingData('genitals',$worn.genitals,'integrity_max')))>> <<else>> <<set $_broken.pushUnique($worn[$_slot].name)>> <</if>> <<set $worn[$_slot].type.push("broken")>> <<generalRuined $_slot>> <<else>> <<set $_removed.pushUnique($worn[$_slot].name)>> <<generalUndress "wardrobe" $_slot>> <</if>> <</if>> <</for>> <<if $_removed.length gte 1>> <<set $_text_output += "You scramble to remove your " + formatList($_removed, "and", true) + ". ">> <</if>> <<if $_broken.length gte 1>> <<set $_text_output += "You look down to see your " + formatList($_broken, "and", true) + " broken. ">> <</if>> <<if $_goldenCB>> <<set $_text_output += `Loosened by your growing belly, your gold chastity belt clatters to the ground once you apply some pressure. <span class="blue">A collector might be interested by it.</span> `>> <</if>> <<set $_text_output += `<br><span class="red">Your pregnant body no longer supports such clothing.</span> <<pain 2>><<gpain>>`>> <<if $vaginalchastityparasite isnot 0>> <<set $_text_output += `<br><span class="pink">With the chastity belt gone, the ${$vaginalchastityparasite} fall out of your vagina.</span> `>> <<set $vaginalchastityparasite to 0>> <</if>> <<if $penilechastityparasite isnot 0>> <<set $_text_output += `<br><span class="pink">With the chastity belt gone, the ${$penilechastityparasite} fall off of your penis.</span> `>> <<set $penilechastityparasite to 0>> <</if>> <<if $analchastityparasite isnot 0>> <<set $_text_output += `<br><span class="pink">With the chastity belt gone, the ${$analchastityparasite} fall out of your anus.</span> `>> <<set $analchastityparasite to 0>> <</if>> <<case "eggLaying">> <<set $_text_output to `<<playerEggLayEvent>>`>> <<case "nothing">> <<unset _wakingEffect>> <<default>> <<unset _wakingEffect>> <!-- Error Case --> <</switch>> <</if>> <</silently>><<if $_text_output>><<print $_text_output>><br><</if>> <</widget>> <<widget "pregnancyDailyEvent">><<silently>> <<if !["Asylum Sleep","Cabin Sleep","Wolf Cave Sleep","Bird Tower Sleep","Livestock Sleep","Farm Abduction wake 4","Sleep","Avery Hotel Morning","Avery Hotel Trauma Drink 2","Prison Sleep","Robin Trauma Visit Sleep","Pound Sleep","Robin Sleep"].includes($passage)>> <<set _pregnancyDailyEvent to dailyPregnancyEvent(_rng)>> <<if Array.isArray(_pregnancyDailyEvent)>> <<set _pregnancyDailyEvent to _pregnancyDailyEvent[random(0,_pregnancyDailyEvent.length - 1)]>> <</if>> <<switch _pregnancyDailyEvent>> <<case "tired">> <<set $_text_output to "You yawn. Everything seems to take more effort than usual.<<tiredness 2>><<gtiredness>>">> <<case "crying">> <<set $_text_output to "You suddenly burst into tears. You aren't even sure why you're crying, but the sadness passes as quickly as it came.<<stress 5>><<gstress>>">> <<case "angry">> <<set $_text_output to "You feel angry out of nowhere. The change in mood takes you by surprise, but it soon passes.<<stress 5>><<gstress>>">> <<case "meatCraving">> <<set $_text_output to `You have a sudden, strange craving ${V.wolfgirl >= 2 ? "of digging your fangs into" : "for"} something meaty.`>> <<case "foodCraving">> <<set $_text_output to `You have a sudden, strange craving for something ${["sweet","spicy","sour","savoury","bitter"][random(0,4)]}.`>> <<case "cramping">> <<set $_text_output to `You feel some cramping around the lower part of your stomach.<<stress 5>><<gstress>><<pain 5>><<gpain>>`>> <<case "bloated">> <<set $_text_output to "You feel a little bloated.<<stress 3>><<gstress>>">> <<set $daily.bloated to random(1,2)>> <<case "lightHeaded">> <<set $_text_output to "You feel a little lightheaded for a moment.">> <<case "dizzy">> <<set $_text_output to "You start feeling a little dizzy, but it passes quickly.">> <<case "mildNausea">> <<set $_text_output to "You start feeling a little nauseous, but it passes quickly.">> <<case "nausea">> <<set $_text_output to "You start feeling nauseous, but it passes after some time.">> <<case "lightBabyKick">> <<set $_text_output to "You feel a light kick coming from your <<pregnancyBabyText 'pc'>>.<<stress -10>><<lstress>>">> <<case "babyKick">> <<set $_text_output to "You feel a kick coming from your <<pregnancyBabyText 'pc'>>.<<stress -10>><<lstress>><<pain 1>><<gpain>>">> <<case "babyMovement">> <<set $_text_output to "You feel your <<pregnancyBabyText 'pc'>> moving around.<<stress -10>><<lstress>>">> <<case "babyHiccup">> <<set $_text_output to "You feel some baby hiccups.<<stress -10>><<lstress>>">> <<case "earlyContractions">> <<set $_text_output to "You feel a brief and sporadic contraction.<<stress 5>><<gstress>>">> <</switch>> <<if _pregnancyDailyEvent>> <<run delete $daily.pregnancyEvent>> <<else>> <<if !$daily.pregnancyEvent>> <<set $daily.pregnancyEvent to 0>> <</if>> <<set $daily.pregnancyEvent += 15>> <</if>> <</if>> <</silently>><<if $_text_output>><<print $_text_output>><br><</if>> <</widget>> /*ToDo: Pregnancy Story Content: Lacks content, small unique events for when the player's stress passes out due to their pregnancy*/ <<widget "pregnancyPassout">> <<set $_pregnancy to getPregnancyObject()>> <<if $_pregnancy.fetus>> <<set $_pregnancy.waterBreaking to false>> /*ToDo: Pregnancy - fill out for specific pregnancy passout events*/ /*Area specific passout text for alternative pregnancy birth events*/ <<switch _args[0]>> <<case "asylum">> <<if $asylumstate is "sleep">> <<endevent>> <<generate1>><<person1>> Locked in for the night, you sit down on your bed. When you sit, it feels wet. Your thighs seem to be covered in a clear liquid. You're going into labour. <br><br> Clearing your throat, you waddle over to the door. Through the hole in the door you call out. Guards patrol the halls, it shouldn't take long. <br><br> Your calls are ignored long enough for a dull pain to begin to pang in your pelvis. "I said quiet after lights out!" The guard doesn't believe you. <br><br> Refusing to give up, you bang on the door until your hands hurt. This gets the guard to come over and look in. <br><br> "Lie down on your bed, I'll fetch Doctor Harper," <<he>> instructs you with a flat tone. You do as <<he>> says. You wince and shiver from the ache in your body as you try to stay awake. <br><br> Consciousness falls away from you. <<else>> You sit down on your bed, trying to stay stable. When you sit, it feels wet. Your thighs seem to be covered in a clear liquid. You're going into labour. <br><br> You waddle over to the door, stumbling as you exit. A nurse quickly rushes to your side. "Easy there, hon. I've got you. We're going to go down slowly, okay?" <br><br> The nurse helps you sit and calls out for assistance. Your consciousness fades. <</if>> <<case "asylumOutside">> <<endevent>> <<generate1>><<person1>> "You should have really gone to the toilet," a fellow patient sneers at you as <<he>> passes. Confused, <<if $worn.lower.type.includes("naked")>>you look down to see wetness drip down your thigh<<else>>you look down to find a wet patch forming on your $worn.lower.name<</if>>. <br><br> "The <<babyIs>> coming," you gasp. The sharp pain is unexpected as you clutch your stomach. <br><br> The passing patient halts, <<his>> eyes growing wide as <<he>> turns back. "Wait here, I'll find someone!" <br><br> Out of the corner of your eye you see the patient running up to some orderlies. You choose to focus on breathing through the pain. <br><br> You blink. People are surrounding you, a stretcher laid out on the ground. A gentle hand guides you forwards. <br><br> The same hand supports you as you pass out. <<case "asylumCafe">> <<endevent>> <<generate1>><<person1>> You groan as you hunch over, a hand pressed to your belly. It feels like pressure releases inside of you. Clear liquid drips down your thighs. <br><br> Patients turn to look at you, some coming close, some backing away. The commotion causes the guards to come closer. <br><br> "<<pShes>> 'avin a baby!" a <<person>> calls out. The guards scramble towards you now, pushing patients out of the way. <br><br> They help you to walk, keeping people out of the way as you are led somewhere. You quickly lose track of where you are, and your vision fades. <<case "asylumLibrary">> <<endevent>> <<generate1>><<person1>> The chair you sit on begins to feel wet. Reaching down, you find that the wetness is coming from you. You're going into labour. <br><br> A <<person>> notices your wet fingers. <<He>> jumps forward, pulling the book away from you. "Don't damage the books!"<br> "I wasn't. My- my <<babyIs>> coming," you stutter, taking a deep breath to calm down. <br><br> The <<person>> doesn't seem to believe you. <<He>> continues to berate you until an orderly approaches to settle the dispute. <br><br> The orderly takes in your hunched over body before swearing. <<He>> calls over more to help. Some have to hold the <<person>> back as you are picked up and led away from the library. <br><br> Your consciousness fades. <<case "asylumHarper">> <<endevent>><<npc "Harper">><<person1>> You feel uneasy as you step into the doctor's office. Harper takes notice, coming around <<his>> desk to feel your forehead. <<He>> examines you, looking over your body before taking notice of the gradual wetness between your legs. <br><br> "Oh dear. We'll have to delay today's session. It seems your bun is ready to leave the oven." <br><br> Harper calls in orderlies to assist you as you begin to breathe heavily. Pain gradually builds in your abdomen. <br><br> You can hear Harper speaking but words become jumbled as your mind focuses on the pain. <br><br> Someone moves you, supporting you by the arms as you are led... somewhere. Everything fades. <<case "forest" "lake">> You stumble, barely managing to stabilise yourself against a large tree trunk. You look down to see a clear liquid dripping down your leg. You're going into labour. <br><br> You involuntarily whimper. Even the effort of staying standing is causing a burning pain. A branch cracks to your left. <<case "bog">> <<pass 1 hour>> <<if $bogwater is 1>> You stumble, barely managing to make it back to the path. A horrible pressure shoots through you. You're going into labour. <br><br> You involuntarily whimper. You don't have the strength to pull yourself out of the water. Just staying above the surface takes everything you have. <<else>> You stumble, barely managing to stabilise yourself against a large tree trunk. You look down to see a clear liquid dripping down your leg. You're going into labour. <br><br> You involuntarily whimper. Even the effort of staying standing is causing a burning pain. You collapse onto the wooden walkway. <</if>> <br><br> Time passes. You start to scream in pain. Adrenaline and fear shoot through you. You're so far away from anyone that can help. The thought of no one hearing you redoubles your fear. You've never felt so alone. <br><br> Shapes start to move amidst the trees. The sound of footsteps on wood. You can't look, but they're getting closer. You come face to face with a featureless white mask. A black hood sprouts antlers. The image sears itself into your mind as you black out. <<case "tentacleworld" "tentacleforest">> You hunch over in pain. All of the tentacles retreat away from you. You fall to your knees, gripping the ground as hard as you can. <br><br> The sky flickers. As you let out a pained scream, it fades away. <<case "farmroad">> Your body feels tired, and your legs give out underneath you. The road is only a few centimetres away from you. You attempt to stand, but your body won't move. Fluid drips down your leg. You're going into labour. <br><br> Managing to roll yourself over, you wave your hands in the air, hoping to flag down a car passing by. No one spares you a look, asides from an occasional honk. One comes so close that you have to roll back over to avoid getting hit. <br><br> Tears prick at your eyes. You fear having to deliver your baby in such a horrible place, and as time ticks by, that fear becomes more and more real. <br><br> <<if $location is "farm" and $_pregnancy.potentialFathers.find(father => father.source === "Alex") and talkedAboutPregnancy("pc","Alex")>> <<npc Alex>><<person1>> Your body starts to give into fatigue. You barely realise that someone has picked you up. They're yelling at you, but you can't make out the words. Your head spins. <br><br> It takes a moment for you to focus long enough to realise who it is. <span class="green">It's Alex</span>. Despite your blurry vision, you're able to make out the fear on <<his>> face. With you and your baby in good hands, you let go and fall unconscious. <<else>> <<generate1>><<person1>> Your body borders on unconsciousness, but you hear the sounds of a car rolling up beside you and its door opening. A set of hands grabs at your face. <br><br> The stranger yells to <<his>> companion in the passenger's seat. <<His>> face is kind and soft, and your body finally gives way. Your vision fades, and you pass out. <</if>> <<case "remy">> <<if $outside is 1>> A <<if ($settings.monsterChance gte 1 and ($hallucinations gte 1 or !$settings.monsterHallucinationsOnly))>> <<set $monster to 1>> <<if $settings.maleVictimChance lt random(1, 100)>>cowgirl<<else>>bullboy<</if>> <<else>> cow <</if>> nudges at your thigh and moos. You look down to find a clear liquid dripping down your leg before a brief pain spreads in your lower abdomen. You're going into labour. <br><br> Gasping, you slowly sit down. More <<livestock_cows>> gather, curious to the commotion. <<if $monster is 1>> One yells. "Baby! <<pHer>> <<babyIs>> coming!" <<else>> "What the hell are they doing?" a farmhand calls out from the other side of the field. <</if>> <br><br> A couple of farmhands notice the odd behaviour and make their way over. They find you breathing slowly as you cradle your stomach. "Ah shit, this one's ready to pop! Go get Remy!" The pain increases and you slowly lie down as the farmhand crouches beside you. <br><br> You faintly hear boots crushing grass and more yelling as your vision fades. <<else>> <<endevent>> <<generate1>><<person1>> The hay you're sitting on feels uncomfortably wet. Looking down you find that more wetness is coming from you. You're going into labour. <br><br> You try to remain calm, breathing deeply and slowly, but soon the first contraction hits and you yell out. <br><br> "What's that?"<br> "Ignore it, just a dumb cow looking for attention." The farmhands continue to ignore you. <br><br> Another contraction hits, you yell out once more. This time someone comes to check. "You're meant to be quiet—" <<he>> grunts before <<his>> eyes widen. "Get Remy! Now! This one's ready to pop!" You hear a commotion begin as the world slowly fades to black. <</if>> <<case "remyAbduction">> <<generate1>> <<generate2>> You groan in pain, slumping down against the dirt as your contractions strengthen. Shortly after, you hear the tent flaps shift as a <<person1>><<person>> ducks <<his>> head in, clearly annoyed. <br><br> "Oi, what's the matter with you?" <<he>> says with a scowl. <<He>> takes in your crumpled form and swollen belly before swearing and ducking out the tent. You hear a clamour as the others are woken. <br><br> After a few long, painful minutes, the <<person1>><<person>> ducks back into the tent, closely followed by a <<person2>><<person>>. Together, they heft you up, carrying you out to an awaiting pickup truck. They heave you into the bed, the <<person1>><<person>> climbing in after you. As the pickup peels out of the encampment, you lose consciousness. <<case "remyHarperExam">> <<npc Harper>><<person1>> As you move to sit on the table, your vision blurs, and you just barely manage to catch yourself on the edge. Doctor Harper lurches forward with an alarmed noise, grasping at your arms and helping you sit down. <br><br> With a serious face, Harper briefly examines your stomach before calling for Remy. You can barely make out the words "labour" and "hospital" and Remy's disgruntled face before everything goes black. <<case "remyNiki">> <<case "moor">> <<generate1>><<generate2>> Your thighs feel wet. A strong pain lurches in your stomach, making your legs weak. You're going into labour. <br><br> With a gasp, you sink to your knees, the heather cushioning your fall. You have no choice but to lie down on the ground. "Help!" you cry out. Your voice echoes across the plains. <br><br> Your surroundings become a blur as the pain overwhelms you. You hear vague voices and footsteps approach. <br><br> "It's gotta be that damned quicksand, getting someone again," a <<person1>><<person>> says. <br><br> "No, it's not. Look! <<pHer>> water's broken. <<pShes>> going to give birth out here if we don't do something!" the other <<person2>><<person>> points out, sounding somewhat panicked. <br><br> You feel hands lift you from the ground as the world fades to black. <<case "castle">> <<npc "Great Hawk">> You double over in pain and see a clear liquid dripping down your leg. You're going into labour. You look around in desperation and let out a pained yell, before stumbling to your side. <br><br> Your eyes close. When they open again, you're met with the face of the <<beasttype>>. <<if $monster is 1>> <<bHe>> says something to you, but the words sound like gibberish. <<else>> <<bHe>> eyes you with curiosity and concern. <</if>> <<bHis>> wings start to beat. You feel yourself being lifted onto something feathery. The next time you open your eyes, you're high in the air. You immediately black out from the shock. <br><br> You feel a rise in your stomach. You open your eyes again to see the hospital below you and feathers in the corner of your vision. You blink, and you're suddenly being lowered. Your feet meet the sidewalk. A rush of air follows, and the <<beasttype>> is gone. <<case "wraith">> You double over in pain and see a clear liquid dripping down your leg. You're going into labour. You look around in desperation and let out a pained yell, before stumbling to your side. You feel hopelessly trapped. Your heart pounds in your ears. <br><br> Your eyes close. When they open again, a pair of <<wraithEyes>> eyes stare into yours. "<span class="wraith">Suffering. Life. Beautiful.</span>" <br><br> You're unable to resist as it enters your body. Your pain ceases at once. You let out a long sigh of relief and stand up. Your consciousness slowly fades as your body trudges forwards. <br><br> You feel cold. Then warm again. Then there's nothing. Until you open your eyes and see the hospital before you. The pain returns. A pale face meets yours. "<span class="wraith">Beautiful. Keep them safe.</span>" <<case "dungeon">> <<endevent>> <<generate1>><<npc Robin 2>> <<badEndTrackingEnd "Underground Dungeon" { reason: "labour" }>> <<dungeonescape>> Shifting on the floor, you wince when you feel a wetness gather below you. It seems to be coming from you. You're going into labour. <br><br> Panicked, you look around the barren room for an escape. <<if $undergroundbrothel.robin>> A particularly strong contraction hits, and you groan in pain as you crouch down on the cold floor. <br><br> You hear Robin's voice from the other side of the wall. "Are you okay? What's happening?" <<person2>><<he>> asks nervously. <br><br> <<if $speech_attitude is "meek">> "I-I'm going into labour. What should I do?" you cry out. <<elseif $speech_attitude is "bratty">> "It's happening," you reply through gritted teeth. "I'm having my <<pregnancyBabyText "pc">>." <<else>> "Help me! My <<babyIs>> coming!" you cry out. <</if>> <br><br> There's a moment's silence as Robin processes this, then <<he>> yelps, "You're in labour?! I-it's okay, stay calm, I'll get help!" You hear <<him>> stumble to <<his>> feet and rush to the door. <<He>> pounds on it, shouting for somebody to help. <br><br> You stagger toward the wall separating the two of you, faintly calling Robin's name. You stick your finger through the hole connecting your cells, reaching for <<him>> as best you can. <br><br> You hear footsteps and grumbling from the corridor outside. The last thing you feel before your consciousness slips away is Robin's finger desperately pressing against yours. <<else>> With no other option, you bang on the door. "H-help, please! My <<babyIs>> coming!" you yell out as you pound on the door. You aren't sure if anyone will hear you. <br><br> You keep calling out. You're not sure how long it takes before you hear the lock turn. A disgruntled <<person1>><<person>> walks through, ready to yell before <<he>> sees your predicament. <br><br> "Wait," <<he>> snarls, leaving you alone once more. The pain gets to be too much, and you crawl to the dirty mattress to lie down. <</if>> <br><br> Your vision fades as the door screeches open <<= $undergroundbrothel.robin ? "at last" : "once more">>. <<specialClothesUnlock "set" "underground_brothel">> <<case "alley">> <<generate1>><<person1>> <<if $bus is "residential" and $town_projects.thicket gte 4 and random(1,2) is 1>> You fall to your knees onto the grass, clutching your stomach. <<elseif random(1,2) is 1>> You stumble into the alleyway, stabilising yourself with a nearby ladder. <<else>> You collapse on the concrete of the alleyway, cradling your stomach. <</if>> A small puddle begins forming between your legs. You're going into labour. <br><br> <<if random(1,2) is 1>> <<if $bus is "residential">> <<if $town_projects.thicket gte 4>> A <<personsimple>> eating on a bench near the thicket stumbles to <<his>> feet, rushing over to you and dropping <<his>> sandwich in the process. <br><br> You can hear <<him>> dial something into a phone before you go unconscious. <<else>> Blurry figures walk past the alleyway, but some are drawn by your pained screams and rush down the alley to you. <br><br> The last thing you see are faces crowding above you as you fall into unconsciousness. <</if>> <<elseif $bus is "industrial">> "Oi, ya can't be back here!" a <<person>> yells, quickly stomping towards you. <br><br> The <<personsimple>> gasps upon reaching your crumpled body. <<He>> swears for a minute before dialling something into a phone. <br><br> You can't make out <<his>> words, but you feel somewhat safe as you fall into unconsciousness. <<else>> "H-Help! Anyone?!" you cry out as you fall to your knees in pain. <br><br> Drawn by your cries, a few people rush over to help, looking shocked and panicked at your current state. <br><br> The last thing you see are hands reaching towards you as everything fades to black. <</if>> <<else>> <<if $bus is "residential">> "Aren't you a cute thing?" a voice whistles. "Don't mind if I- oh shit." <br><br> You can hear shouting, followed by more footsteps rushing towards you. They crowd over your body, pointing and looking frantic. <br><br> The last thing you feel are hands wrapping around your waist and legs as you go unconscious. <<elseif $bus is "industrial">> You scream out in pain, but the loud thrum of machinery overpowers your cries. Panicking, you begin to fear that no one will hear you in this alleyway. <br><br> Eventually your screaming pays off. Two people approach your crumpled body and quickly attend to you. <br><br> The last thing you feel is a hand grasping yours before you drift off into unconsciousness. <<else>> From behind you hear a door crash open, and a <<person>> yells, "Hey, you can't loiter back here, this isn't a—" <br><br> The <<personsimple>> gasps and rushes over to your crumpled body. <<He>> quickly dials something into a phone before turning back to you. <br><br> You can't make out <<his>> words, but you feel some comfort as everything fades to black. <</if>> <</if>> <<case "arcade">> You collapse on the dirty arcade floor, grabbing your stomach in pain. A small puddle begins seeping into the carpet. You're going into labour. <br><br> <<if Time.dayState is "night" or Time.dayState is "dawn">> <<generateRole 0 0 "repairman/repairwoman">><<person1>> "Hey!" someone shouts. "You're not supposed to be in here." You glance up at a <<person>>, apparently here to fix the machines before the arcade opens in the morning. <<else>> <<generateRole 0 0 "employee">><<person1>> "Excuse me, are you alright?" A <<person>> approaches you, looking concerned. <</if>> <br><br> You groan, feeling a sharp pain in your stomach, "M-My <<babyIs>> coming." <br><br> The <<personsimple>> looks horrified by your words and <<= Time.dayState is "night" or Time.dayState is "dawn" ? "quickly pulls out <<his>> phone" : "yells to someone at the counter">>. <br><br> You feel <<him>> grab your hands, but <<his>> words grow hazy as your vision slowly fades to black. <<case "beach">> <<generate1>><<person1>> You stumble, suddenly feeling unsteady on the sand. You feel a strong pain in your stomach that makes it difficult to stand. You're going into labour. You look around for anybody to help you, but a contraction makes you cry out. <br><br> Just as you're about to fall over, a pair of hands grab you under your arms. Looking up, you can just barely make out the face of a <<person>>. "What's wrong, <<girl>>?" <<he>> asks. <br><br> "My b-baby," you manage to gasp. <br><br> The <<personsimple>>'s brow furrows with worry. "I'm gonna lay you down and call you an ambulance," <<he>> promises. <<He>> drags you to a beach towel, shaded by an umbrella. As soon as <<he>> puts you down, your consciousness fades. <<case "bus">> <<case "docksSneak">> <<case "docks">> <<case "home">> You stumble to the ground as a contraction seizes you. <<if ["Bedroom", "Bathroom"].includes($passage)>> <<npc Bailey>><<person1>> You hear the <<= $passage.toLowerCase()>> door slam open, followed by swearing and heavy footsteps. A rough hand turns you over on your back, and you clutch at the hand. It's Bailey. <br><br> "Goddammit. Couldn't have gone to the hospital, could you?" <<He>> clicks <<his>> tongue in annoyance as <<he>> dials a number on <<his>> phone. You just barely catch the words "ambulance" and "emergency" before your vision fades to black. <<else>> <<generatey1>><<person1>> You clutch your belly and moan for help. Finally, you hear a gasp and a rush of footsteps. Moments later, a pair of faces appear in front of you. You can't understand them, but you can tell words are being exchanged. One of the orphans runs to get help while the other <<personsimple>> crouches down to your level. <<He>> tries to ask you questions, but you don't have the wherewithal to answer. <</if>> <br><br> You don't know how much time passes, but you eventually hear sirens. The paramedics push you onto a gurney and usher you into an awaiting ambulance. As it lurches into motion, everything goes black. <<case "hospital">> You collapse before you can reach the receptionist, unable to take another step further. You hear an alarmed shout and a rush of footsteps. Multiple hands reach out, taking your pulse and checking your temperature. <br><br> "Don't worry," a faceless voice reassures you. "We're going to take good care of you." Unable to hold on any longer, you faint. <<case "trash">> You stumble in the trash, your legs suddenly too weak to carry on. You lean against a pile of rubbish and sink to the ground. Something warm and wet trickles down your leg. You're going into labour! <br><br> You look around the area, trying to keep your breathing even. The smell makes it hard. You can't give birth <i>here</i>! <br><br> <<if $speech_attitude is "meek">> "H-help..." you whimper. There's no response. You take a shaky breath and raise your voice. "Help!!" <<elseif $speech_attitude is "bratty">> "Can... can anybody hear me!?" You curse and grit your teeth, trying and failing to keep your voice steady. "I need some help!" <<else>> "Hello...?" Your voice is faint, and there's no response. You take a deep breath and try again. "Hello!?" <</if>> <br><br> You groan and curl up as <<if $rng gte 86 and $hallucinations gte 2>> the pile you were leaning against gives a shudder. You raise your head only to see a single eye staring at you. <<ghallucinogens>><<set $hallucinogen += 90>> <br><br> It looks your body over, and its dangerous look seems to soften some. The eye looks you in the face once more, and your mind feels numb and fuzzy at the sharpness of its gaze. Your worries melt away, and somehow you feel certain that you'll make it to safety as you black out amongst the rubbish. <<elseif $rng gte 71 and Time.dayState is "night">> <<if $tower_creature_intro gte 1>> <<loadNPC 0 tower_creature>> <<else>> <<set $tower_creature_intro to 1>> <<set _tower_creature to true>> <<beastNEWinit 1 creature>> <<if $NPCList[0].monster is "monster">> <<set $NPCList[0].fullDescription to "horned " + ($NPCList[0].gender is "m" ? "boy" : "girl")>> <<set $NPCList[0].type to "horned " + ($NPCList[0].gender is "m" ? "boy" : "girl")>> <</if>> <<saveNPC 0 tower_creature>> <</if>> the ground shakes from something heavy landing nearby. You shield your belly instinctively. <<gstress>><<stress 6>> <br><br> You feel and hear the massive thing sniffing your face, then your belly. You clutch your stomach tighter. When it pulls away, you glance up and are greeted by a great, scaly head topped with a pair of horns. <<if $NPCList[0].monster is "monster">> "With child," the <<tower_creature_text>> growls softly. "This place... bad for child." <</if>> Eyeing your pregnant belly, <<bhe>> <<= $NPCList[0].monster is "monster" ? "wraps" : "growls softly before wrapping">> a foreleg around you with surprising care. <br><br> <<bHe>> lifts you up, and you feel sick and dizzy as <<bhe>> leaps through the landfill towards Nightingale Street. You open your eyes as <<bhe>> gingerly places you down in front of the hospital. The <<tower_creature_text>> <<if $beauty gte 6000 or $tower_creature_intro gte 2>> places a large, clawed hand on your <<= $NPCList[0].monster is "monster" ? "belly. \"Next time, mine.\"" : "belly and rumbles softly.">> You shudder and back away from <<bhim>> towards the hospital, and <<bhe>> <</if>> watches you waddle inside. You barely make it through the front door before you feel your consciousness slip, and you stumble to the floor. The last thing you see is a pair of glowing yellow eyes staring at you from the shadows. <<else>> <<generatey1>><<generatey2>><<generatey3>><<generatey4>><<generatey5>><<generatey6>> a group of <<group>> approaches you.<<if $trauma gte ($traumamax / 5) * 2>> You hope they're not here to take advantage of you.<</if>> <br><br> "I told you I heard someone over here!" a <<person1>><<person>> says. "Hey, <<girl>>! Are you alright!?" <br> <<if $settings.watersportsEnabled>> One of <<his>> friends, a <<person2>><<person>>, laughs. "Did <<pshe>> fuckin' piss <<pherself>>?" <<else>> "Why's <<pshe>> all wet?" a <<person2>><<person>> asks. <</if>> <br> <<if $speech_attitude is "bratty">> "I'm going into labour, you idiot!" you snap. "So can you <i>please</i> help me out of here!?" <br> "Oh." The <<person2>><<person>> blinks. "Oh! Yeah, of course!" <<He>> turns to <<his>> friends. "I'll grab <<pher>> shoulders, you get <<pher>> feet." A <<person3>><<person>> and <<person4>><<person>> nod and move into place. <<else>> A <<person3>><<person>> rolls <<his>> eyes. "<<pShes>> pregnant, you moron!" <br> "Oh." The <<person2>><<person>> blinks. "Oh! We've gotta do something! Let's get <<phim>> out of here!" <</if>> <br><br> You try and groan out a thanks to your helpers, but their group effort to lift you sends pain shooting through your body. You vaguely hear them coordinating an effort to the closest exit as you pass out. <<famepregnancy 3>> <</if>> <<case "sea">> As you're swimming, a contraction seizes you. You thrash around in the water, shouting for help. The pain worsens, and you struggle to stay afloat. <<if $rng gte 71>> <<generatedolphin1>> You're on the verge of losing consciousness when something bumps into you, and you quickly glance down. <br><br> Your vision blurs, but you can make out the figure of a <<beasttype>>. <<bHes>> steadily pushing you to shore. You desperately clutch <<bhis>> fin. <br><br> The <<beasttype>> tows you to the shallows, depositing you on the sand. <<bHe>> clicks worriedly. You dimly hear shouts from a nearby beachgoer, and the <<beasttype>> quickly dives back into the water. You murmur your thanks as someone splashes into the surf after you. Your vision grows dark, and you pass out. <<else>> You hear the horn of a boat, and you spot a trawler edging closer. There's a commotion of voices on the dock, and a fishing net envelops you, hoisting you onto the deck. "You looked like you needed help," a <<generate1>><<person1>><<person>> says. "No one rides free, but- oh. <i>Oh!</i> You're pregnant!" <br><br> <<if $speech_attitude is "meek">> "I'm in labour," you whimper, curling up and cradling your stomach. "P-please help me..." <<elseif $speech_attitude is "bratty">> "Not just pregnant. I'm—" A particularly strong contraction hits, and you grimace. "I'm in labour. Are you going to help me or what?" <<else>> "I'm in labour," you manage, curling up on the dock. "Help me, please!" <</if>> <br><br> "We'll get you to shore, we promise," the <<person>> says, glancing worriedly at <<his>> crewmates. "Hold on, okay?" One of the fishers holds your hand as your vision grows dark, and you pass out. <</if>> <<case "shop">> <<generate1>><<person1>> You fall to your knees in the middle of the shopping centre, clutching your stomach. Liquid begins to run down your thighs. You're going into labour. <br><br> <<if Time.dayState isnot "night">> People skirt around you, keeping their heads down and shooting you odd looks. The pain soon becomes unbearable, and you begin to scream. <<else>> No one is around at this time of night, but you scream desperately, hoping to attract the attention of a security guard. <</if>> "P-Please help! I need an ambulance!" you cry. <br><br> <<if Time.dayState is "night">> "Hey!" someone shouts. "You're not supposed to be- oh. Oh, shit!" <<He>> kneels down next to you and grabs your hand. <<else>> An employee from one of the nearby stores rushes over to you and kneels down, grabbing your hand. <</if>> <br><br> <<He>> pulls out a <<= Time.dayState is "night" ? "two-way radio" : "phone">> and speaks into it, but the pain is too much. You can't make out what <<hes>> saying. <br><br> <<He>> squeezes your hand, and you feel safe as you fade into unconsciousness. <<case "roof">> <<generate1>><<person1>> You collapse on the rooftop. Warm liquid runs down your legs. You're going into labour. <br><br> You scream loudly, hoping to attract someone's attention. The door to the roof is shut, and you fear no one will hear you. <br><br> Painful contractions wrack your body, and you shriek even louder. Finally, the door bursts open, and a disgruntled <<personsimple>> in a uniform emerges. "What the fuck are you- oh <i>shit</i>." <<He>> quickly rushes over to you. <br><br> You watch as <<he>> takes out a phone and starts calling someone. You feel some relief as everything fades to black. <<case "monsterTower">> <<case "street">> <<case "compound">> <<case "temple">> You stumble, barely catching yourself on a pew. Your legs tremble. You're going into labour. <br><br> A pair of strong arms hoist you up, before gently laying you down on a pew. <<if C.npc.Jordan.init is 1>> Jordan's face hovers over you. <<else>> A robed figure hovers over you, their youthful face tinged with concern. Locks of hair protrude from the sides of their cowl, betraying a golden shade. <</if>> You hear words being spoken to you, but they don't make any sense. Other robed figures start to surround you. <<if _sydney_location is "temple" and C.npc.Sydney.init is 1>> Sydney breaks through the crowd, but stops short of you. <</if>> <br><br> You feel yourself being lifted. <<case "cave">> <<if $cave lt 50>> You're wading through the water when a sudden contraction hits you, and you pitch forward into the cold embrace of the current. The weight of your belly, combined with the pain of contractions, makes it impossible to stand or swim. <br><br> The rushing water pushes against you as you struggle, your hands slipping helplessly on the wet ground. Each effort to resist only worsens the labour pains. Powerless, you surrender to the current. <br><br> You let the water carry you away as you sink into unconsciousness. <<else>> A sudden contraction grips you. Warm liquid trickles down your legs, and your knees buckle. Waves of intense pain follow, one after another, forcing heavy breaths from your lips. Clutching your swollen and heavy belly, you collapse weakly against the cold, damp wall. <br><br> <<if $pursuit gte 2>> Faint sounds reach your ears. Your pursuer might be dangerous, but you need medical assistance. You call out for them. <<else>> The cave is silent, save for the sounds of dripping water. There's no one around to hear you scream, but you try anyway. <</if>> <<if $speech_attitude is "meek">> "H-help... is anyone there? Please help me..." you groan. You tremble helplessly, tears welling in your eyes. <<elseif $speech_attitude is "bratty">> "<<= $pursuit gte 2 ? "Wh-who's there?" : "I-is anyone there?">> Help me! Hurry!" you shout. Your voice is high and loud, but it breaks as you grunt in pain. <<else>> "Help! I need some help! P-please?" You try to stay calm, but your trembling voice betrays you. <</if>> <br><br> <<if ($pursuit gte 2 and $rng gte 61) or $pursuit lt 2>> <<npc Wren>><<person1>> <<if $pursuit gte 2>> After you call for help, the sounds vanish. The cave is silent, save for the occasional drip of water, as if everything you just heard was an illusion. <<else>> There's no response, and the silence is stifling. <</if>> Bracing your hands against the wall, you force yourself to take a step, but the labour pains are too intense. You collapse to the cave floor. <br><br> The silence is broken by the sound of light footsteps. Someone scoops you up, lifting you into the air. <<if $wrenSeen?.length>> A <<nnpc_gender "Wren">> sighs. "Next time, you won't be so lucky, little thief," <<he>> says. <<His>> voice sounds familiar. <<else>> "Why did Bailey send a pregnant one here?" a <<nnpc_gender "Wren">> says, sounding amused. <br><br> <</if>> <br><br> You squint at the person through a haze of tears. <<if $wrenSeen?.length>> <span class="gold">It's Wren.</span> <<else>> It's a young <<if $pronoun is "m">>man with short<<else>>woman with shoulder-length<</if>> hair. <</if>> <<He>> covers your eyes with <<his>> palm, plunging you into darkness, and breaks into a run. <<He>> cradles you in <<his>> arms, and the slight lurching is vaguely comforting as you slip into unconsciousness. <<set $wrenSeen.pushUnique("pregnancy")>> <<set $wrenSeenLast to "pregnancy">> <<else>> <<generatey1>><<generatey2>> Your cries for help soon turn into moans of pain. You hear footsteps approaching, then laughter. "Sounds like someone's having fun!" a <<person1>><<person>> says. <br><br> "<<pShes>> got a good set of pipes on <<phim>>," a <<person2>><<person>> adds. "I reckon we can make <<phim>> moan even more." <<He>> stops short when <<he>> sees your pregnant belly. "Oh, shit! Is <<pshe>> in labour?" <br><br> "There's no doctor down here!" The <<person1>><<person>> sounds panicked. "Here, help me carry <<phim>>." <br><br> You feel yourself being lifted, then darkness engulfs you. <</if>> <</if>> <<case "photo">> <<npc Niki>><<person1>> You stumble, groping for a chair to stabilise yourself. A stream of liquid runs down your legs. You're going into labour. <br><br> Niki doesn't bat an eye. You shout for help as you stumble to your knees, and <<he>> finally glances up from the computer. <<His>> eyes widen slightly, and <<he>> quickly rushes to your side. <<He>> guides you to your feet and sits you down in the chair. <br><br> "Don't worry, you're going to be alright," <<he>> reassures you, already taking a phone from <<his>> pocket. <br><br> The last thing you can make out is Niki asking for an ambulance before everything fades to black. <<case "park">> You exhale heavily and <<= either ("collapse onto a bench", "sag against a nearby tree", "stumble to the ground")>>. Something wet drips down your thighs. You're going into labour. <br><br> "Somebody! Help!" you try to shout. Your voice weakens as the pain overtakes you. "Anyone? Please..." <br><br> <<if between(Time.hour, 18, 24) and C.npc.Doren.init is 1>> <<npc Doren>><<person1>> A <<= either ("jogger", "runner")>> immediately runs to you. It's Doren. <<He>> helps you stand upright, letting you lean against <<him>>. <br><br> <<He>> wraps an arm around you. "<<Lass>>, I'm calling"—your hearing cuts out, and you can only catch snatches of <<his>> words—"will be here soon." <br><br> The last thing you hear before your vision goes black is "I'll be here with you." <<else>> <<generate1>><<person1>> A <<personsimple>> rushes over to you. "Hello, there's someone in labour"—you can only hear bits of what they're saying as the pain threatens to overwhelm you—"yes, we're at the park." <br><br> <<He>> wraps an arm around you. "Don't worry, <<girl>>, an ambulance is on the way. Hang in there." <br><br> As your vision goes black, you hear <<him>> muttering to <<himself>>. "Poor <<girl>>. You'll be alright." <</if>> <<case "prison">> You stumble to your knees. There's no mistaking it; you're going into labour. You scream as the first contraction hits. <br><br> <<if $prison.schedule is "lockdown">> You spot a pair of boots approaching. They stop right in front of you. You look up. <br><br> <<generate_anxious_guard 0>><<person1>> It's <<anxious_guard 0>>. <<He>> frowns down at you. <br><br> "You're not supposed to be out of your cell." <<He>> looks around nervously. "Let's just get you back with no fuss, alright?" <br><br> <<He>> waits for you to get up, but the pain is far too much. <<anxious_guard 0>> takes a moment to realise that you're in pain. Your panic spreads to <<him>>. <br><br> "Oh no. Not here." <<He>> looks around again, as if praying for someone to swoop in and save <<him>>. "Look... D-Don't move! Stay right there!" <br><br> <<He>> hurries off, leaving you behind. You struggle to pull yourself upright, your vision swimming from the amount of pain coursing through your abdomen. The world fades away just as you hear someone yell. <<else>> Your heart pounds in your eardrums. Your vision starts to fade as pain rip through you over and over. You look up, to see yourself surrounded. <br><br> "Give <<phim>> some space, now!" a voice yells, just loud enough for it to cut through your haze. The world fades away as you feel yourself being lifted. <</if>> <<case "prisonCell">> <<if $prison.schedule is "lockdown">> You sit down on your bed in the dark cell. It feels wet. It takes you a moment to realise your legs are also wet. You're going into labour. <br><br> Panic grips you. <br><br> You stumble towards your cell door and start banging on it. "H-Help me!" You try to get a guard to notice you. It takes a few seconds of your banging for prisoners to start waking up. Some shout at you to shut up, others ignore you. One calls out to ask if you're okay. <br><br> <<generate_veteran_guard 0>><<person1>> <<veteran_guard 0 cap>> appears after a moment, banging on each cell door as <<he>> makes <<his>> way down. "Lights out! That means shut it!" <br><br> <<He>> eventually stops in front of your cell and scowls at you. "Do you know the punishment for being unruly—" <<He>> cuts <<himself>> off as <<he>> notices the mess between your legs. <br><br> "P-Please help me." You whisper, your vision already becoming blurry. <<veteran_guard 0 cap>> immediately gets <<his>> keys out and unlocks your door. Strong arms catch you as your knees buckle, pain shooting through your stomach. The world fades away as you are carried out of your cell. <<else>> The sound of something wet splattering against the stone floor of your cell catches your attention. Your legs are wet. You're going into labour. <br><br> You start to panic and try to make your way out of the cell to get help. A sharp pain in your stomach has you hunching over and hanging onto the bars. <br><br> <<generate1>><<person1>> "Please help me!" You call down the hallway. A prisoner comes over, smirking, but stops at the sight of you. "Shit." <<He>> backs up and runs back down the way <<he>> came, hopefully to get help. <br><br> The other prisoners walk past, ignoring you or stopping to watch for entertainment. Only a few try to help you. One is about to lean down to help you to your feet when <<he>> sees someone approaching and steps away again. <<endevent>> <<generate_methodical_guard 0>><<person1>> <<methodical_guard 0 cap>> arrives with the prisoner in tow. The crowd thins out immediately as <<he>> frowns down at you. <<He>> crouches down and inspects you to see for <<himself>>. <br><br> "Incredibly inconvenient timing," <<he>> remarks. "We aren't equipped with a delivery room, so we'll have to make do." <br><br> <<methodical_guard 0 cap>> stands back up and orders two of the prisoners to help you walk. You are half carried, half dragged down the stairs. The guard begins to talk into <<his>> walkie talkie. Your vision starts to blur as you're carried down another floor. You are not able to make out the shouts around you as you pass out. <</if>> <<case "prisonLaundry">> <<if $prison.schedule is "work">> <<generate1>><<person1>> You can hear a prisoner snicker behind you. "Good thing we're in the laundry room, huh?" <<He>> smirks at you. "Just need a helping hand to clean you up." <br><br> You tremble, and a sudden pain shoots through you. You're going into labour. The prisoner steps closer, leering at you. <br><br> "Hey, back up. Now," a voice orders. <<generate_relaxed_guard 1>><<person2>> <<relaxed_guard 1 cap>> comes up behind you, and the prisoner scowls but leaves to do <<person1>><<his>> work. <<person2>><<He>> looks down at your legs but doesn't get to ask anything. Pain shoots through your stomach again, and you hunch over. <br><br> "H-Help... My baby..." you whimper out. <br><br> <<relaxed_guard 1 cap>> takes your elbow, propping you up. <br><br> "The kid's a bit too young to start doing time, eh? C'mon. Specs will have my head if you pop the little squirt out in here." You can barely hear <<his>> voice. Pain makes your head throb and you struggle to keep upright. Everything fades away. <<else>> <<generate_relaxed_guard 0>><<person1>> You look down. There's clear liquid running down your thighs. Pain lurches in your stomach. You're in labour. <br><br> "Someone?" you call out as you struggle to get to the door. "I n-need help!" You lean against the door frame. <br><br> "Work hours are over." <<relaxed_guard 0 cap>> walks over, still playing with <<his>> dice. "Not gonna turn on the machines unless you're prepared to entertain me—" <br><br> <<His>> eyes drop down to your legs. <<His>> grin starts to fade as <<he>> realises what's going on. <br><br> "Shit." <<relaxed_guard 0 cap>> looks around before putting an arm around your waist. "C'mon, we're not popping out Prisoner 144 junior out here." <br><br> You struggle not to black out, the pain in your stomach getting worse. <<relaxed_guard 0 cap>> says something to you but you're in too much pain to process it. The world fades away, and the last thing you hear is a panicked shout. <</if>> <<case "prisonCanteen">> <<if ["wake", "lunch", "dinner"].includes($prison.schedule)>> <<generate1>><<generate_methodical_guard 1>> You stumble over to one of the tables, barely making it to an open seat. A couple prisoners leer at you. A small puddle begins to form between your legs and drips down the bench. You're going into labour. <br><br> A prisoner laughs as you hunch over, clutching your belly. "Someone must be starving." <<He>> grabs <<his>> crotch, grinning lasciviously. "I've got a meal right here for—" <br><br> You scream loudly in pain, and <<he>> flinches away from you. <br><br> Your screams alert <<person2>><<methodical_guard 1>>, who marches over. <<His>> face turns serious when <<he>> sees the liquid between your legs. <br><br> <<methodical_guard 1 cap>> helps you stand. You can hear <<him>> speak, but are unable to make out <<his>> words as everything fades to black. <<elseif $prison.schedule is "lockdown">> <<generate_anxious_guard 0>><<person1>> You stumble over to one of the tables, collapsing onto a bench. "H-help me!" you cry out, your voice echoing through the empty canteen. There's no response. You hunch over and clutch your belly, screaming until you finally hear a pair of footsteps. Someone shines a torch on you, and you look up. <br><br> It's <<anxious_guard 0>>. <<He>> frowns down at you. <br><br> "You're not supposed to be out of your cell." <<He>> looks around nervously. "Let's just get you back with no fuss, alright?" <<He>> waits for you to get up, but the pain is far too much. It takes a moment for <<him>> to realise. "Oh no. Not here. Ah, right, you were shouting for help..." <<He>> looks around again, as if praying for someone to swoop in and save <<him>>. "Look... D-Don't move! Stay right there!" <br><br> <<He>> hurries off, leaving you alone in the dark and empty canteen. You struggle to pull yourself upright, your vision swimming from the amount of pain coursing through your abdomen. The world fades away just as you hear someone else yell. <<else>> <<generate1>><<person1>> You stumble over to one of the tables, collapsing onto a bench. Liquid begins to drip down your legs. You're going into labour. <br><br> You scream, attracting the attention of a prisoner outside the canteen. <<He>> laughs as you hunch over and clutch your belly. "Didn't get enough to eat, eh?" <<He>> grabs <<his>> crotch, grinning lasciviously. "I'll give you something to—" <br><br> You scream even louder, and <<he>> flinches away from you. You slip off the bench and curl up on the ground. Others filter into the canteen, voices echoing around you. Everything grows dark and quiet as you fade into unconsciousness. <</if>> <<case "prisonMedical">> <<generate_methodical_guard 0>><<person1>> Pain begins to shoot through your stomach, and you grunt in pain. You're going into labour. It alerts <<methodical_guard 0>>, and <<he>> rushes over. <br><br> <<He>> wastes no time. <<methodical_guard 0 cap>> grips your bicep tightly and steers you towards one of the beds. "You're in labour," <<he>> tells you. You barely get to sit down on the bed before another surge of pain has you hunching over. <br><br> You're thankful for the bed under you as you fall back, struggling to breathe in properly. While the prison was not where you wanted to have your baby, at least you're in the medical room. <br><br> You start feeling dizzy from the pain. You're gently lowered back into a laying position as your consciousness slips. <<case "prisonYard">> <<if $prison.schedule is "yard">> <<generate_veteran_guard 0>><<person1>> You collapse in the middle of the yard, clutching your stomach. Laughter echoes all around you as prisoners point and jeer. Liquid runs down your legs and onto the ground. You're going into labour. <br><br> "Quit causing a scene," <<veteran_guard 0>> yells, approaching you. <<He>> halts in <<his>> tracks when you scream out in pain. A few prisoners try to get closer to the two of you. <br><br> Another wave of pain hits you, and you can barely make out <<veteran_guard 0>> shouting before the world goes dark. <<elseif $prison.schedule is "lockdown">> <<generate_anxious_guard 0>><<person1>> You collapse in the middle of the yard. "H-help me!" you cry out, not caring who hears. There's no response. You hunch over and clutch your belly, screaming until you finally hear a pair of footsteps. Someone shines a torch on you, and you look up. <br><br> It's <<anxious_guard 0>>. <<He>> frowns down at you. <br><br> "You're not supposed to be out of your cell." <<He>> looks around nervously. "Let's just get you back with no fuss, alright?" <<He>> waits for you to get up, but the pain is far too much. It takes a moment for <<him>> to realise. "Oh no. Not here. Ah, right, you were shouting for help..." <<He>> looks around again, as if praying for someone to swoop in and save <<him>>. "Look... D-Don't move! Stay right there!" <br><br> <<He>> hurries off, leaving you alone in the yard. You struggle to pull yourself upright, your vision swimming from the amount of pain coursing through your abdomen. The world fades away just as you hear someone else yell. <<else>> <<generate1>><<person1>> You collapse in the middle of the yard, attracting the attention of some lingering prisoners. Liquid runs down your legs and onto the ground. You're going into labour. <br><br> "Did someone fall down?" a prisoner coos mockingly. "Looks like this <<bitch>> needs—" <br><br> You shriek and clutch your stomach, and the prisoner backs away. <<His>> friend points out the puddle forming beneath you, and <<his>> face grows pale. <<He>> almost sounds guilty as <<he>> says, "Someone pick <<phim>> up. We gotta get <<phim>> to the guards." <br><br> Their voices grow faint as darkness clouds the edges of your vision. The last thing you feel is your body being lifted into the air, then you slip into unconsciousness. <</if>> <<case "prisonBeach">> You stumble and collapse onto the beach. Liquid runs down your legs, dampening the sand below. You're going into labour. <br><br> <<if (Time.hour is 12 or Time.hour is 14) and !$prison_wren_intro and Time.weekDay is 6>> <<npc Wren>><<person1>> Wren calls out to you from <<his>> boat. "Not very graceful, are we?" <<He>> laughs. "I didn't think the sand was that—oh, no." <br><br> You hear something heavy fall, then Wren crouches above you. <<He>> grabs your wrist and says something, but you're unable to make out <<his>> words. <br><br> You feel yourself being lifted up before everything goes dark. <<else>> You wonder if anyone will find you out here and if it will be too late. Pain wracks your body as you bite back a scream. <br><br> The pain soon becomes unbearable, and you begin screaming loudly. Tears roll down your eyes and sink into the sand. <br><br> Faint shapes move in the water, and you try to focus on them instead of your pain. The shapes become blurry with time as your vision starts to go dark. <br><br> You shut your eyes and let yourself succumb to nothingness. <</if>> <<case "prisonShowers">> <<if $prison.schedule is "wake">> <<generate_veteran_guard 0>><<person1>> You stumble past the other prisoners and lean against a wall for support. A distinct, warm fluid begins to run down your legs. You're going into labour. <br><br> "Oi, watch out, you dumb <<bitch>>!" a prisoner barks, shoving you to your knees. <br><br> You scream in pain, clutching your stomach as your contractions begin. The prisoner scoffs. "Stop being so dramatic over a little fall. Whiny little shit." <br><br> "Enough," <<veteran_guard 0>> says, approaching the two of you. "And you, get off the damn—" <<He>> pauses, then says something else. You can't process <<his>> words through the pain that overwhelms you. <br><br> You start to feel nauseated and disoriented as water pelts your skin. A hand grasps your shoulder and hauls you up just as you fade into unconsciousness. <<else>> <<generate_veteran_guard 0>><<person1>> You stumble and collapse onto the tiled floor. Warm fluid runs down your thighs. You're going into labour. You scream loudly as your contractions begin, clutching your stomach in pain. <br><br> "Showers are over," <<veteran_guard 0>> says, stepping into the room "Go do something productive before—" Heavy footsteps march over to your crumpled body, and you look up to see <<veteran_guard 0>> looking down at you. <<His>> mouth moves, but you're in too much pain to make out the words. <br><br> A firm hand grabs your shoulder as your vision begins to blur, and you fade into unconsciousness. <</if>> <<case "pound">> <<run delete $pound.door>> <<endevent>> Staring out from between the bars, you shift uncomfortably. Greater levels of wetness pool beneath you onto the concrete. You're going into labour. <br><br> You hear whines from the kennels next to yours. The other <<pound_text>> can smell what is happening. <br><br> "Hello?" you call out, clutching the bars of the kennel. You can't give birth here. <br><br> Minutes pass with no one coming to help. Your calls get more insistent as pain gradually spreads throughout your lower body. The <<pound_text>> around you whine louder and louder until they begin to bark and growl in response to your pained gasps. The commotion is enough to make someone come and check. <br><br> <<generate1>><<person1>> A <<person>> makes <<his>> way down the kennels. <<He>> yells and hits the bars while shining a torch inside. <<He>> pauses when <<he>> reaches you. <br><br> "Oh, fuck!" <<he>> shouts before dashing out of the kennels. You aren't sure if help is coming, and the pain is getting too much to stay lucid. <br><br> It all becomes too much. Your eyes flutter shut, commotion ringing in your ears. <<case "edencabin">> <!-- <<if $_pregnancy.potentialFathers.find(father => father.source === "Eden")>> Eden thinks it's his child? <<else>> <</if>> --> <<endevent>> Your thighs feel wet, and you start to feel a sharp pain. You're going into labour. <<if $edenbed is 1>> Eden is still sleeping soundly. <<elseif Time.hour gte 11 and Time.hour lte 14>> Eden is out hunting, <<nnpc_he "Eden">> can't help you right now. <<else>> Eden is busy with <<nnpc_his "Eden">> own chores and hasn't noticed your panic. <</if>> <<if $worn.neck.collared is 1 and $worn.neck.type.includes("leash")>> <<detach_leash>> You desperately tug at your leash, hoping it will break. A few last stubborn threads hold on. Panicked, you begin to gnaw at the threads. Relief floods you when it breaks. <</if>> <br><br> You stumble into the forest as the pain of your contractions begins. You're not even sure where you're going. <<if $syndromeeden is 1>> You're about to turn back to the cabin, when a branch cracks to your left. <<else>> You walk an unknown distance before you pause, too exhausted to continue, the adrenaline fading from your body. A branch cracks to your left. <</if>> <<case "drain">> <<case "school">> <<if !["early", "late", "earlynoschool", "latenoschool", "daynoschool"].includes($schoolstate)>> <<switch $bus>> <<case "schoolfrontcourtyard" "schoolrearcourtyard">> <<generatey1>><<person1>> You stumble, tripping over your feet and landing hard in the dirt. You roll over to your side but find yourself struggling to get up as another wave of contractions wash over you. <br><br> Your collapse draws the attention of others in the schoolyard. You faintly hear awkward laughter, as if they think you're playing some elaborate prank. Moments pass as you continue to lie on the ground clutching your stomach before a pair of sneakers enter your field of vision. The <<personsimple>> approaching you takes one look at your belly before swearing and yelling for help. <br><br> You hear a stampede of feet and what sounds like the concerned voice of a teacher before everything fades away. <<case "schoollibrary">> The world tilts as you stumble, landing hard against a bookshelf. Unable to hold up your own weight, you slide down to the ground, back pressed against the shelf. You think you make some sort of noise, because you hear footsteps approaching before a gasp fills your ears. Somebody rushes forward, kneeling at your side. Their words wash over you, but you can't make heads or tails of them as your vision fades to black. <<default>> <<pregnancyPassout "schoolJanitor">> <</switch>> <<else>> <<pregnancyPassout "schoolJanitor">> <</if>> <<case "schoolCanteen">> <<if Time.schoolDay and !["early", "late", "earlynoschool", "latenoschool", "daynoschool"].includes($schoolstate)>> Your vision blurs and you stumble, catching yourself against the edge of a lunch table. <<= $schoolstate is "lunch" ? "Despite how busy the canteen is, you" : "You">> capture the attention of the nearby students. As your knees give out, you hear a rush of footsteps. One of the students shouts for a teacher, and it's not long before a faculty member hustles to your side. <<if $schoolstate is "lunch" and C.npc.Robin.init is 1 and $daily.school.lunchEaten isnot 1>> <br><br> Robin's eyes are wide, and <<nnpc_he "Robin">> tries to reach you through the crowd. <</if>> The last thing you hear before passing out is the teacher yelling for an ambulance. <<else>> <<pregnancyPassout "schoolJanitor">> <</if>> <<case "schoolJanitor">> <<generate1>><<person1>> You stumble to the ground as your contractions overwhelm you. You cry out in pain, but no one's around to hear you. You curl up into a ball and grip your stomach, whimpering for help. After what feels like an eternity, you see a janitor <<= ["schoolfrontcourtyard", "schoolrearcourtyard"].includes($bus) ? "exit the school, wheeling a trashbin" : "enter, mopping the floor">> as <<he>> sings along to the music blaring through <<his>> headphones. <br><br> <<His>> eyes land on you, and <<he>> freezes. "Holy..." <<He>> rips off <<his>> headphones and fumbles for <<his>> cellphone to call for help. The last thing you hear is <<his>> panicked voice, swearing at the phone operator, before the world fades to black. <<case "schoolPool">> <<npc Mason>><<person1>> You gasp as a contraction hits you, stealing the strength from your limbs. You briefly go under, and chlorinated water fills your mouth. You flail in a panic, struggling to keep your head above water. Suddenly, a pair of strong arms wrap around you, towing you out of the water and onto the slippery tile. Firm, unyielding hands turn you on your side as you hack up water. <br><br> "Whoa, what happened?" Mason asks, looking concerned as <<he>> leans over you. "You need to be more careful, what if..." <<His>> voice trails off as <<he>> notices the way you carefully hold your abdomen. "Are you going into labour? Now?" Panicked, <<he>> turns and yells at a nearby student to run to Leighton's office for help. <br><br> You watch the student dash out of the room with glazed eyes as Mason turns <<his>> attention back to you. "You're going to be alright. Just breathe with me, okay?" Mason tries to guide you through some breathing exercises, but you're unable to focus. As the world fades to black, you hear the sirens of an ambulance. <<case "schoolHallways">> <<if Time.schoolDay and !["early", "late"].includes($schoolstate)>> As your vision swims, you stagger, stumbling straight into the lockers with a bang. The noise attracts the attention of the students around you. Knees weak, you slide to the ground, clutching your abdomen. One student bolts from the scene, yelling for a teacher. You hear a flurry of footsteps and several panicked voices before everything fades away. <<else>> <<pregnancyPassout "schoolJanitor">> <</if>> <<case "schoolLibrarian">> You whimper as you clutch your stomach. "Whoa, whoa," the librarian says, giving your belly an alarmed look. "Just hang on, okay? I've got you. We'll get you to the hospital immediately." You give a weak, grateful smile and let your eyes drift shut. You pass out in the safety of the librarian's arms. <<case "schoolScience">> <<npc Sirris>><<person1>> A powerful contraction grips you, and you cry out. The pain causes you to blackout for the briefest of seconds. When you open your eyes, you find yourself lying on the classroom floor, Sirris hovering over you. "You're going into labour," <<he>> says, holding your hand as <<he>> fishes a cellphone out of <<his>> pocket. "You're going to be okay, I promise." <<He>> presses the phone to <<his>> ear and calls for an ambulance. <br><br> As you wait for the ambulance, Sirris lectures on the miracle of childbirth. Some of your classmates look ill, while others can't tear their eyes away from you. The last thing you hear before passing out is <<his>> enthusiastic gushing about your ripened cervix. <<case "schoolToilets">> All of a sudden, your vision blurs, and you collapse onto the tile floor. You try to call out, but you're unsure if anybody can hear you. <br><br> You lay like that, carefully cradling your swollen belly, until <<if Time.schoolDay and !["early", "late"].includes($schoolstate)>> a group of students saunter out, chatting amongst themselves. One catches sight of you and freezes. They stare down at you, until you whimper out a plea for help. Snapping out of it, one student rushes to get help while the others crowd around you on the floor. <br><br> You catch sight of a teacher approaching before finally passing out. <<else>> <<generate1>><<person1>> a janitor enters, trundling a mop bucket. <<He>> scowls at the puddle of fluid caused by your waters breaking. "You clean up one mess, then another one pops up. Kids these...days..." <<His>> eyes widen as they land on you. "Holy shit. Uh, hang on, um—" <<He>> fumbles for <<his>> cellphone and calls for an ambulance. <br><br> You croak out a 'thank you' before the last vestiges of consciousness slip away. <</if>> <<case "sewers">> <<beastNEWinit 1 lizard>> An awful pain shoots through your body, and liquid runs down your legs. You're going into labour. As you collapse, you see a shadow in the water move towards you. A giant <<beasttype>> emerges, bearing down on you. It looks like <<bhes>> about to strike, when all of a sudden, <<bhe>> pauses. <br><br> <<if $monster is 1>> "You... have eggs?" <<bhe>> asks. <br><br> <<bHe>> stares at your stomach, watching as you curl up and whimper in pain. The <<beasttype>> looks conflicted, but <<bhe>> slowly approaches and places a hand on your stomach. <<bHis>> face scrunches up, then <<bhe>> suddenly bends down and lifts you up with relative ease. <br><br> "Not normal eggs," <<bhe>> hisses. "Other humans go to big building. I hear them talk in the bright-place below." The <<beasttype>> carries you to a ladder and hauls you up it. Once at the surface, <<bhe>> slithers out. <<else>> <<bHe>> eyes you curiously, staring at your stomach before slowly approaching and wrapping <<bhis>> tail around you. <<bHe>> drags you to the nearest ladder and, with some struggling, pulls you up it. When <<bhe>> reaches the top, <<bhe>> headbutts the manhole cover until it opens enough for <<bhim>> to wriggle out. <</if>> <<bHe>> dumps you next to the manhole before letting out a shrill, screeching hiss. <br><br> Somebody nearby yelps at the sound, and you hear footsteps coming your way. The <<beasttype>> retreats into the <<= $monster is 1 ? "sewers, glancing back at you briefly before pulling the manhole cover back into place" : "sewers">>. <br><br> Everything fades to black as someone crouches by you. <<case "sewersMorgan">> <<npc Morgan>><<person1>> A violent pain shoots through your body. You stumble to the ground as another contraction starts. You panic. This is no place to be while in labour. <br><br> <<if $morganChased>> "Oh, <<charles>>," Morgan says as <<he>> catches you. "I'm so glad I found you. I was so worried about my grandchild. This is wonderful!" <<unset $morganChased>> <<else>> "Oh, <<charles>>," Morgan says, racing to your side. "You're having your baby! I'm going to be a <<= $pronoun is "m" ? "grandpa" : "grandma">>! This is wonderful!" <</if>> <br><br> You shudder at the thought but can do nothing as <<he>> leads you into another alcove within the sewer. Light filters down from a drain above. You can see <<= Time.dayState is "night" ? "a street light" : "sunlight">>. It has a little cradle made of broken pieces of wood and moldy blankets. There's a makeshift bed and broken, dirty toys and stuffed animals. It is disturbing.<<trauma 12>><<ggtrauma>> <br><br> "I've prepared a room just for you and my grandchild. Do you like it?" <br><br> You grimace as another contraction hits. <br><br> "Now don't you worry, I'll take care of you. Just wait here. I'll be back shortly." <<He>> pats you on the head before departing. <br><br> You look around the horrible place, then up to the light. There is a ladder right below the drain. Despite the pain, you force yourself to climb. There is no way you'll have your baby here.<<willpower 1>><<gwillpower>> <br><br> You make it to the top and collapse on the street above. A quick look around reveals you are on Nightingale in front of the hospital. Someone has already spotted you and is rushing over to help. You hear a scream from the sewer below just as they reach you.<<stress 6>><<gstress>> <<case "adultShop">> You stumble, barely catching yourself on a shelf laden with dildos. You cradle your belly as you slide to the ground, groaning with pain. <<if $adultshopstate is "closed">> <<generate1>><<person1>> Using what little strength you have, you try to crawl to the door. You weakly reach for the handle, but can't reach it from the floor. You whimper. <br><br> The door swings open, and a guard scowls down at you. "What do we have here? A little rat thief, trying to make off with some fuck toys?" <<he>> says. <<He>> shines a torch on you, and <<his>> eyes widen when <<he>> notices your state. <br><br> "Shit," <<he>> mutters as <<he>> takes out <<his>> phone. "I'll give you a pass this time, but next time you won't be so lucky." The last thing you hear is <<him>> calling for an ambulance, then the world fades to black. <<else>> You hear Sirris calling for you from the back room. After a few moments, you hear Sirris enter the shop proper, followed by a shout of surprise as <<nnpc_his "Sirris">> eyes land on you. <br><br> Within moments, Sirris is kneeling at your side, phone to <<nnpc_his "Sirris">> ear as <<nnpc_he "Sirris">> tries to hold your attention. <<if $adultshopstate is "sydney">> Behind <<nnpc_him "Sirris">>, you can see Sydney hovering in worry. You try to give <<nnpc_him "Sydney">> a reassuring smile, but you can't hold on any longer. You pass out. <</if>> <</if>> <<case "office" "avery_skyscraper">> <<case "island">> <<endevent>> A spasm of pain wracks your body, and you cry out. You're going into labour. <br><br> Figures emerge from the trees, weapons held ready. They lower them when they see your state, and their motions become panicked. <br><br> <<if $islander_language gte 100>> "I think <<pshe>> going into labour," one of the islanders says. <br> "Fuck! You're right!" <br> "Get the druids, now!" <<elseif $islander_language gte 50>> They call for help. It's strange, but in your pain you can almost determine the meaning behind their words. It floats at the edge of awareness.<<gggcomprehension>><<islander_language 30>> <<else>> They shout something in their incomprehensible language. It's strange, but in your pain you feel the meaning behind them. They're calling for help.<<gggcomprehension>><<islander_language 30>> <</if>> <br><br> The figures fade into fog as you pass out. <<default>> With your waters broken, you're too weak to continue. <</switch>> /*Links for alternative pregnancy birth events*/ <<if _args[0] isnot "schoolJanitor">> <br><br> <<switch _args[0]>> <<case "asylum" "asylumOutside" "asylumCafe" "asylumLibrary" "asylumHarper">> <<link [[Next|Pregnancy Birth Asylum]]>><<set $stress -= 5000>><<endevent>><</link>> <<case "prison" "prisonCell" "prisonLaundry" "prisonSpire" "prisonCanteen" "prisonMedical" "prisonYard" "prisonBeach" "prisonShowers">> <<link [[Next|Pregnancy Birth Prison]]>><<set $stress -= 5000>><<endevent>><</link>> <<case "tentacleworld">> <<if $tentacleEntrance is "mirror">> You find yourself lying in front of your bedroom mirror. Everything fades to black. <br><br> <<link [[Next|Pregnancy Birth Hospital Passout]]>><<set $stress -= 5000>><<endevent>><</link>> <<else>> You scream. You're met with your own echoing voice. Again and again, you scream until your throat is hoarse. <span class="red">No one comes for you.</span> <<trauma 50>><<gggtrauma>> <br><br> Overwhelmed by pain and fear, you black out. <br><br> <<link [[Next|Pregnancy Birth Asylum]]>><<set $stress -= 5000>><<endevent>><</link>> <</if>> <<case "tentacleforest" "hookah">> <<if _noWake>> You're caught off guard by a sudden pain. A contraction. You've gone into labour. You stumble to the floor. <br><br> Your vision quickly fades, and when it returns, you feel as though time has passed. <br><br> <<else>> You snap awake in the parlour. <</if>> <<if $hookah_state is 1>> <<loadNPC 0 "hookah">><<person1>> The hookah <<hookah_master>>'s face is right above you, looking concerned. <<He>> barks orders around. <br><br> "...and open that window. Air it out in here for <<phim>>. Jiggle the lock. It's supposed to be hard to open! Yes, yes, you'll get a full refund..." <br><br> <<His>> voice becomes distant, and darkness creeps into the corners of your vision as the pain of a contraction hits you. Your own scream is the last thing you hear. <<else>> Someone is pounding on the door. Your vision starts to fade again to the sound of sirens. <</if>> <br><br> <<link [[Next|Pregnancy Birth Hospital Rescue]]>><<set $stress -= 5000>><<endevent>><</link>> <<case "forest">> <<if $_pregnancy.type is "wolf">> <<beastNEWinit 1 wolf>> <<if $monster is 1>> A <<beasttype>> approaches you, rushing to your side and putting <<bhis>> arms behind you for support. <<if $syndromewolves is 1>> You've seen <<bhim>> at the cave before. "<<pPackbrother>>'s pups are coming," <<bhe>> says. "Hurry." <<bHe>> lets you lean against <<bhim>> as you waddle your way home. <<else>> You don't know why, but you feel safe going with <<bhim>>. "Your pups are coming," <<bhe>> says. "You'll be safe with my pack." <<bHe>> lets you lean against <<bhim>> as you waddle your way towards what you hope is safety. <</if>> <<else>> A <<beasttype>> approaches you, nuzzling your hand. <<if $syndromewolves is 1>> You've seen <<bhim>> at the cave before. You lean against <<bhis>> back as you limp home together. <<else>> You don't know why, but you feel safe going with <<bhim>>. You lean against <<bhis>> back as you limp towards what you hope is safety. <</if>> <</if>> It's difficult to keep moving through the pain. Eventually your legs give out, your vision following soon after, <<if $monster is 1>>but strong arms holding you keep you from harm.<<else>>but you fall gently onto soft fur.<</if>> <br><br> <<link [[Next|Pregnancy Birth Wolf Rescue]]>><<set $stress -= 5000>><<endevent>><</link>> <<elseif $hallucinations gte 2 and $forest_shop_intro>> You hear faint singing. <br><br> A brown blur crests along your peripheral vision. By the time you muster the strength to turn and look where it went, it's gone. <br><br> You turn back, and see three glowing green eyes staring at you from within the treeline. The head they belong to tilts, and some branches in the treeline tilt with it. It steps out from the shadows cautiously, revealing that those branches are actually a rack of antlers. You expect a deer or elk, but instead you see a colossal brown fox with long legs, and an even longer body. You take a step back, unnerved by its three-eyed gaze. A strangely shaped tail drags along the ground behind it. It vaguely reminds you of a whale's fluke, if it were split into three instead of two. <br><br> This creature is extremely hard to look at. The air around it blurs as it moves. Its silhouette is certainly much more like an elk, especially with the antlers that seem to briefly grow every time you blink. <<awareness 12>><<ggawareness>> <br><br> Your mind screams for your body to move, to run, to do anything, but you're rooted to the spot. It trots over, slowing just before reaching you. It slowly lowers its head, and presses it against your <<bellyDescription>>. <span class="blue">Your weakness fades, but the pain doesn't.</span> It looks up at you, all three of its eyes blinking before rotating in position around its face. It stands up straight. <<switch $bodysize>> <<case 0>>Even on all fours, it completely dwarfs you in height. <<case 1 2 3>>Even on all fours, it's taller than you are. <</switch>> <br><br> It opens its mouth and grabs you by the nape of your neck, swinging you over its back. You instinctively hold on to its brown fur. There's two streaks of bare skin along its back, which you thought were stripes at first. It sticks its head up, alert, as if searching for something. A moment later, it starts to bound through the forest with you. <br><br> It gets faster the longer it runs. The wind rushes by. It's oddly peaceful. You bury your face in giant fox's fur. It smells of fresh rain. <br><br> Your journey leaves no tracks in the forest. You find your eyes closing by themselves, despite your pain. The singing stops. <br><br> <<link [[Next|Pregnancy Birth Forest Shop Rescue]]>><<endevent>><</link>> <<else>> <<endevent>> <<generate1>><<person1>> You hear a <<personsimple>>'s voice. "Are you okay, there?" <<he>> asks as <<he>> approaches. <<He>> looks vaguely familiar. There's an axe along <<his>> back. You think you stopped and talked to <<him>> as <<he>> was chopping wood once. <br><br> You're barely able to talk as another contraction hits, more painful than the previous ones. The woods<<personsimple>> takes off <<his>> coat and gently puts it over your shoulders. <br><br> "Come on, lean on me. I'll take you to the hospital." Your vision fades before you can take the next step. <br><br> <<link [[Next|Pregnancy Birth Hospital Rescue]]>><<set $stress -= 5000>><<endevent>><</link>> <</if>> <<case "edencabin">> <<if $_pregnancy.type is "wolf">> <<beastNEWinit 1 wolf>> <<if $monster is 1>> A <<beasttype>> approaches you, rushing to your side and putting <<bhis>> arms behind you for support. <<if $syndromewolves is 1>> You've seen <<bhim>> at the cave before. "<<pPackbrother>>'s pups are coming," <<bhe>> says. "Hurry." <<bHe>> lets you lean against <<bhim>> as you waddle your way home. <<else>> You don't know why, but you feel safe going with <<bhim>>. "Your pups are coming," <<bhe>> says. "You'll be safe with my pack." <<bHe>> lets you lean against <<bhim>> as you waddle your way towards what you hope is safety. <</if>> <<else>> A <<beasttype>> approaches you, nuzzling your hand. <<if $syndromewolves is 1>> You've seen <<bhim>> at the cave before. You lean against <<bhis>> back as you limp home together. <<else>> You don't know why, but you feel safe going with <<bhim>>. You lean against <<bhis>> back as you limp towards what you hope is safety. <</if>> <</if>> It's difficult to keep moving through the pain. Eventually your legs give out, your vision following soon after, <<if $monster is 1>>but strong arms holding you keep you from harm.<<else>>but you fall gently onto soft fur.<</if>> <br><br> <<link [[Next|Pregnancy Birth Wolf Rescue]]>><<set $stress -= 5000>><<endevent>><</link>> <<else>> <<endevent>> <<generate1>><<person1>> You hear a <<personsimple>>'s voice. "Are you okay, there?" <<he>> asks as <<he>> approaches. <<He>> looks vaguely familiar. There's an axe along <<his>> back. You think you stopped and talked to <<him>> as <<he>> was chopping wood once. <br><br> You're barely able to talk as another contraction hits, more painful than the previous ones. The woods<<personsimple>> takes off <<his>> coat and gently puts it over your shoulders. <br><br> "Come on, lean on me. I'll take you to the hospital." Your vision fades before you can take the next step. <br><br> <<link [[Next|Pregnancy Birth Hospital Rescue]]>><<set $stress -= 5000>><<endevent>><</link>> <</if>> <!-- <<if $_pregnancy.potentialFathers.find(father => father.source === "Eden")>> Alternative place to give birth? <<link [[Next|Pregnancy Birth Hospital Passout]]>><<set $stress -= 5000>><<endevent>><</link>> <<else>> <<link [[Next|Pregnancy Birth Hospital Passout]]>><<set $stress -= 5000>><<endevent>><</link>> <</if>> --> <<case "forestShop" "forestShopGarden">> <<endevent>><<npc Gwylan>><<person1>> <<if isGwylanAbsent()>> You hear rapid footsteps. Nobody is here. <br><br> You scream in pain and fear. Nobody tells you everything will be okay. <br><br> Nobody can help you. <br><br> Nobody helps you stand. <br><br> Nobody apologises for not being able to be here with you. <br><br> Nobody leads you out of the forest shop. <br><br> Nobody holds you up as your consciousness slips. <br><br> <<link [[Next|Pregnancy Birth Hospital Rescue]]>><<set $stress -= 5000>><<endevent>><</link>> <<else>> <<if $location is "forest_shop">> You hear rapid footsteps. "Oh. Oh!" Gwylan stares at you. "I knew I smelled something strange. Here, come here, quickly! You'll need fresh air, come on!" <br><br> <<if $gwylanSeen.includes("garden_seen")>> <<if C.npc.Gwylan.dom gte 20>> <<He>> takes your hand and leads you to the garden, towards the quilted room. <<takeHandholdingVirginity "Gwylan" "consensual">> <<else>> <<He>> leads you to the garden, towards the quilted room. <</if>> <<else>> <<He>> places a black blindfold over your eyes. "Sorry, but my garden is usually off-limits. I can't have anyone knowing how to get in, even in extreme circumstances like this." <br><br> <<if $gwylanSeen.includes("garden")>> <<He>> steadily walks you to the garden before removing it, and leads you to the quilted room. <<else>> <<set $gwylanSeen.pushUnique("garden")>> <<He>> steadily walks you somewhere. You hear doors open and shut. Eventually, you smell roses and feel the fresh air on your skin. <<He>> removes your blindfold. A large expanse of square stone tiles stretch along the ground, connecting patches of grass and raised sections filled with dirt, flowers and herbs. Surrounding it all is an impressive weaving of crossed wooden stakes well over two metres high, with gaps just large enough to allow vines to grab and climb through, shielding the whole area from prying outside eyes. <br><br> There's another raised section, but this one is different. It's covered by a wooden roof, <<if Weather.precipitation is "rain" or Weather.precipitation is "snow">> untouched by the <<print Weather.precipitation>>, <</if>> and the inside is padded with various cushions and quilts. <<He>> leads you over to it. <</if>> <</if>> <<else>> You hear rapid footsteps. "Oh. Oh!" Gwylan stares at you. "I knew I smelled something strange. Here, come here, quickly!" <</if>> <br><br> <<He>> guides you into sitting down with your legs spread. "Stay here, don't forget to breathe. You're going to be alright. I promise." <<He>> takes your hand and squeezes it before running off again. <<takeHandholdingVirginity "Gwylan" "consensual">> <br><br> <<link [[Next|Pregnancy Birth Forest Shop]]>><<endevent>><</link>> <</if>> <<case "remy" "remyAbduction" "remyHarperExam" "remyNiki">> <<link [[Next|Pregnancy Birth Livestock]]>><<set $stress -= 5000>><<endevent>><</link>> <<case "farmroad">> <<if $location is "farm" and $_pregnancy.potentialFathers.find(father => father.source === "Alex") and talkedAboutPregnancy("pc","Alex")>> <<link [[Next|Pregnancy Birth Hospital Rescue]]>><<set $stress -= 5000>><<endevent>><<set $alexRescued to 1>><</link>> <<else>> <<link [[Next|Pregnancy Birth Hospital Rescue]]>><<set $stress -= 5000>><<endevent>><</link>> <</if>> <<case "adultShop" "alley" "arcade" "bog" "dungeon" "photo" "pound" "roof" "sea" "shop" "sewers" "schoolJanitor" "school" "schoolCanteen" "schoolHallways" "schoolLibrarian" "schoolPool" "schoolScience" "schoolToilets" "temple">> <<link [[Next|Pregnancy Birth Hospital Rescue]]>><<set $stress -= 5000>><<endevent>><</link>> <<case "cave" "home" "hospital">> <<link [[Next|Pregnancy Birth Hospital]]>><<set $stress -= 5000>><<endevent>><<set $phase to 1>><</link>> <<case "trash">> <<link [[Next|Pregnancy Birth Hospital]]>><<set $stress -= 5000>><<endevent>><</link>> <<case "island">> <<link [[Next|Pregnancy Island]]>><<set $stress -= 5000>><<endevent>><</link>> <<default>> <<link [[Next|Pregnancy Birth Hospital Passout]]>><<set $stress -= 5000>><<endevent>><</link>> <</switch>> <</if>> <<else>> Error Pregnancy Object not found in the passage '<<print $passage>>'. <</if>> <</widget>> <<widget "pregnancyMorningAfterPill">> <<set $_menstruation to $sexStats.vagina.menstruation>> <<set $_pregnancy to getPregnancyObject()>> <<set _morningAfterPillResult to "no pregnant">> /* This variable returns the result of taking the pill */ <<if $_menstruation.currentState is "pregnant">> <<if $_pregnancy.type is "human">> <<set _currentDay to $_pregnancy.timer / (1 / ((1 / 9) * $settings.humanPregnancyMonths))>> <<elseif $_pregnancy.type is "wolf">> <<set _currentDay to $_pregnancy.timer / (1 / ((1 / 12) * $settings.wolfPregnancyWeeks))>> <<else>> <<set _currentDay to 1000>> <<set _morningAfterPillResult to "unknown type">> <</if>> <<if _currentDay lte 2>> /* the first 2 days the pill clears the pregnancy and restarts the menstrual cycle */ <<set $_pregnancy.type to null>> <<set $_pregnancy.fetus to []>> <<set $_pregnancy.waterBreaking to false>> <<set $_pregnancy.waterBreakingTimer to null>> <<set $_pregnancy.timer to null>> <<set $_pregnancy.timerEnd to null>> <<set $_pregnancy.awareOf to null>> <<set $_pregnancy.awareOfMultiple to null>> <<set $_pregnancy.awareOfDetails to null>> <<set $_pregnancy.potentialFathers to []>> <<set $sexStats[($player.vaginaExist ? "vagina" : "anus")].sperm to []>> <<restartMenstruationCycle>> <<set $_menstruation.currentState to "normal">> <<set _morningAfterPillResult to "successful">> <<elseif _currentDay lte 3>> <<set $_pregnancy.type to null>> <<set $_pregnancy.fetus to []>> <<set $_pregnancy.waterBreaking to false>> <<set $_pregnancy.waterBreakingTimer to null>> <<set $_pregnancy.timer to null>> <<set $_pregnancy.timerEnd to null>> <<set $_pregnancy.awareOf to null>> <<set $_pregnancy.awareOfMultiple to null>> <<set $_pregnancy.awareOfDetails to null>> <<set $_pregnancy.potentialFathers to []>> <<set $sexStats[($player.vaginaExist ? "vagina" : "anus")].sperm to []>> <<set $_menstruation.currentDay to .5>> <<restartMenstruationCycle>> <<set $_menstruation.currentState to "normal">> <<set _morningAfterPillResult to "a little late">> <<elseif _currentDay lte 4>> <<set $_pregnancy.type to null>> <<set $_pregnancy.fetus to []>> <<set $_pregnancy.waterBreaking to false>> <<set $_pregnancy.waterBreakingTimer to null>> <<set $_pregnancy.timer to null>> <<set $_pregnancy.timerEnd to null>> <<set $_pregnancy.awareOf to null>> <<set $_pregnancy.awareOfMultiple to null>> <<set $_pregnancy.awareOfDetails to null>> <<set $_pregnancy.potentialFathers to []>> <<set $sexStats[($player.vaginaExist ? "vagina" : "anus")].sperm to []>> <<set $_menstruation.currentDay to .5>> <<set $_menstruation.currentState to "recovering">> <<set $_menstruation.recoveryTime to ($_pregnancy.type === "human" ? random(2, 3) * $settings.humanPregnancyMonths : random(1, 2) * $settings.wolfPregnancyWeeks)>> <<set $_menstruation.recoveryTimeStart to $_menstruation.recoveryTime>> <<set $_menstruation.recoveryStage to 0>> <<set $_menstruation.periodEnabled to false>> <<menstruationCycle>> <<set _morningAfterPillResult to "late">> <<else>> <<set _morningAfterPillResult to "too late">> /* It's too late, the pill does nothing to the pregnancy */ <</if>> <<else>> <<set $sexStats[($player.vaginaExist ? "vagina" : "anus")].sperm to []>> <<set $_menstruation.currentDay to .5>> /* If the player isn't pregnant the pill only restarts the menstrual cycle and clears sperm*/ <</if>> <</widget>> <<widget "pregnancyGendersText">><<silently>> <<set $_pregnancy to getPregnancyObject()>> <<set $_pregnancy.genderKnown to true>> <<set $_genders to {m:0,f:0,h:0}>> <<run $_pregnancy.fetus.forEach(b => $_genders[b.gender]++)>> <<if $_pregnancy.fetus[0].features.identical is true>> <<set $_text_output to `"I believe they are <<if $_pregnancy.fetus.length is 3>>all identical triplets<<else>>both identical twins<</if>>. They're the same gender and their facial features are similar."`>> <<elseif ($_genders.m is $_pregnancy.fetus.length or $_genders.f is $_pregnancy.fetus.length or $_genders.h is $_pregnancy.fetus.length) and $_pregnancy.fetus.length gt 1>> <<set $_text_output to `"Despite being the same gender, I believe they are not identical. They appear to have slightly different facial features."`>> <<else>> <<set $_text_output to "You have">> <<if $_genders.m gt 0>> <<switch $_genders.m>> <<case 1>><<set $_text_output += " a">> <<default>><<set $_text_output += " " + $_genders.m>> <</switch>> <<set $_text_output += " baby boy">><<if $_genders.m gt 1>><<set $_text_output += "s">><</if>> <<if $_genders.f gt 0 and $_genders.h gt 0>> <<set $_text_output += ",">> <<elseif $_genders.f gt 0 or $_genders.h gt 0>> <<set $_text_output += " and">> <</if>> <</if>> <<if $_genders.f gt 0>> <<switch $_genders.f>> <<case 1>><<set $_text_output += " a">> <<default>><<set $_text_output += " " + $_genders.f>> <</switch>> <<set $_text_output += " baby girl">> <<if $_genders.f gt 1>><<set $_text_output += "s">><</if>> <<if $_genders.h gt 0>><<set $_text_output += " and">><</if>> <</if>> <<if $_genders.h gt 0>> <<switch $_genders.h>> <<case 1>><<set $_text_output += " a">> <<default>><<set $_text_output += " " + $_genders.h>> <</switch>> <<set $_text_output += " baby hermaphrodite">> <<if $_genders.h gt 1>><<set $_text_output += "s">><</if>> <</if>> <<set $_text_output += ".">> <</if>> <</silently>><<if $_text_output>><<print $_text_output>><</if>> <</widget>> <<widget "babyType">><<silently>> <<if $_pregnancy.awareOfDetails || ((!_args[0] || _args[0] is "pc") and $_pregnancy.potentialFathers.every((father, index, array) => father.type === array[0].type))>> <<switch $_pregnancy.type>> <<case "human">> <<if $_pregnancy.fetus.length gt 1>> <<set $_text_output to "babies">> <<else>> <<set $_text_output to "baby">> <</if>> <<case "wolf">> <<if $_pregnancy.fetus.length gt 1>> <<set $_text_output to "puppies">> <<else>> <<set $_text_output to "puppy">> <</if>> <</switch>> <<elseif $_pregnancy.awareOfMultiple and $_pregnancy.fetus.length gt 1>> <<set $_text_output to "babies">> <<else>> <<set $_text_output to "baby">> <</if>> <</silently>><<print $_text_output>> <</widget>> <<widget "pregnancyBabyText">><<silently>> <<if _args[0] isnot "pc" and C.npc[_args[0]] and C.npc[_args[0]].pregnancy.enabled isnot undefined>> <<set $_pregnancy to C.npc[_args[0]].pregnancy>> <<else>> <<set $_pregnancy to getPregnancyObject()>> <</if>> <<if $_pregnancy.awareOfDetails || ((!_args[0] || _args[0] is "pc") and $_pregnancy.potentialFathers.every((father, index, array) => father.type === array[0].type))>> <<set $_num to ($_pregnancy.awareOfDetails || $_pregnancy.awareOfMultiple ? $_pregnancy.fetus.length : 1)>> <<if $_pregnancy.awareOfDetails>> <<switch $_pregnancy.type>> <<case "human">> <<if $_num gt 1>> <<set $_text_output to ($_num is 3 ? "triplets" : "twins")>> <<else>> <<set $_text_output to "baby">> <</if>> <<case "wolf">> <<if $_num lte 3>> <<set $_text_output to ($_num is 1 ? "pup" : "pups")>> <<else>> <<set $_text_output to "litter">> <</if>> <<default>> <<set $_text_output to ($_num gt 1 ? "babies" : "baby")>> <</switch>> <<else>> <<set $_text_output to ($_pregnancy.awareOfMultiple && $_pregnancy.fetus.length gt 1 ? "babies" : "baby")>> <</if>> <<else>> <<set $_text_output to ($_pregnancy.awareOfMultiple && $_pregnancy.fetus.length gt 1 ? "babies" : "baby")>> <</if>> <</silently>><<print $_text_output>><</widget>> <<widget "babyIs">> <<silently>> <<set $_spawn to `<<pregnancyBabyText ${_args[0] || "pc"}>>`>> <<switch $_spawn>> <<case "triplets" "twins" "pups" "babies" "chicks">><<set $_spawn += " are">> <<default>><<set $_spawn += " is">> <</switch>> <</silently>> <<print $_spawn>> <</widget>> <<widget "npcPregnancyUpdater">> <<for $_i to 0; $_i lt $NPCNameList.length; $_i++>> <<set $_name to $NPCNameList[$_i]>> <<if C.npc[$_name].pregnancy is undefined>> <<set C.npc[$_name].pregnancy to {}>> <</if>> <<set $_pregnancy to C.npc[$_name].pregnancy>> <<if !setup.pregnancy.infertile.includes($_name) and setup.pregnancy.typesEnabled.includes(C.npc[$_name].type) and (($settings.incompletePregnancyEnabled and C.npc[$_name].pregnancy.enabled is undefined and !setup.pregnancy.ignoresIncompleteCheck.includes($_name)) or (setup.pregnancy.canBePregnant.includes($_name) and C.npc[$_name].pregnancy.enabled is undefined))>> <<set $_pregnancy.fetus to []>> <<set $_pregnancy.givenBirth to 0>> <<set $_pregnancy.totalBirthEvents to 0>> <<set $_pregnancy.timer to null>> <<set $_pregnancy.timerEnd to null>> <<set $_pregnancy.waterBreaking to null>> <<set $_pregnancy.npcAwareOf to null>> <<set $_pregnancy.pcAwareOf to null>> <<set $_pregnancy.type to null>> <<set $_pregnancy.enabled to true>> <<set $_pregnancy.cycleDaysTotal to random(24,32)>> <<set $_pregnancy.cycleDay to random(1,$_pregnancy.cycleDaysTotal)>> <<set $_pregnancy.cycleDangerousDay to 10>> <<set $_pregnancy.sperm to []>> <<set $_pregnancy.potentialFathers to []>> <<set $_pregnancy.nonCycleRng to [random(0,3),random(0,3)]>> <<switch $_name>> <<case "Kylar">><<set $_pregnancy.pills to "fertility">> <<case "Alex" "Wren">><<set $_pregnancy.pills to "contraceptive">> <<case "Great Hawk">> /* Has a much shorter cycle, when cycleDay is 1, assume the hawk should lay eggs that have not been fertilised*/ <<set $_pregnancy.cycleDaysTotal to random(12,16)>> <<set $_pregnancy.cycleDay to random(1,$_pregnancy.cycleDaysTotal)>> <<set $_pregnancy.cycleDangerousDay to $_pregnancy.cycleDaysTotal - 4>> <<set $_pregnancy.pills to null>> <<default>><<set $_pregnancy.pills to null>> <</switch>> <<elseif setup.pregnancy.infertile.includes($_name) or (!setup.pregnancy.canBePregnant.includes($_name) and !$settings.incompletePregnancyEnabled)>> /*For saves that have the variables set, but have no need to be there*/ <<set C.npc[$_name].pregnancy to {}>> <</if>> /* 0 = never uses a condom, Kylar has a special exception * 50 = Will use a condom, but will refrain if asked * 100 = Always uses a condom, will not remove it */ <<if !C.npc[$_name].pregnancyAvoidance or $objectVersion.pregnancyAvoidance is undefined>> <<switch $_name>> <<case "Kylar" "Black Wolf" "Great Hawk" "Eden" "Ivory Wraith" "Gwylan">><<set C.npc[$_name].pregnancyAvoidance to 0>> <<case "Robin" "Whitney" "Alex" "Wren" "Avery">><<set C.npc[$_name].pregnancyAvoidance to 50>> <<default>><<set C.npc[$_name].pregnancyAvoidance to 100>> <</switch>> <</if>> <</for>> <<set $objectVersion.pregnancyAvoidance to 1>> <</widget>> /*ToDo: Pregnancy Story Content: Not used in events at the moment, add to appropriate story passages, when the player gives birth to their children*/ <<widget "earSlimePregnancy">> <<if _args[0] and $earSlime.corruption gte 80>> <<switch _args[0]>> <<case "human">><<set $_type to _args[1]? 'babies' : 'baby'>> <<case "wolf">><<set $_type to _args[1] ? 'wolf puppies' : 'wolf pup'>> <<default>><<set $_type to _args[1] ? 'babies' : 'baby'>> <</switch>> <<set $_babiesText to _args[1] ? `to some beautiful ${$_type}` : `to a beautiful ${$_type}`>> <<if numberOfEarSlime() gte 2>> <span class="green">A fulfilled warmth fills you.</span> You almost forget the strife of the world. You can tell it's the slimes in your ears, rewarding you for giving birth <<print $_babiesText>>. <<lllcorruption true>><<lltrauma>><<llstress>><<trauma -24>><<stress -24>><<corruption `Math.floor($earSlime.corruption * -0.4)`>> <br><br> <<elseif numberOfEarSlime()>> <span class="green">A fulfilled warmth fills you.</span> You almost forget the strife of the world. You can tell it's the slime in your ear, rewarding you for giving birth <<print $_babiesText>>. <<llcorruption true>><<ltrauma>><<lstress>><<trauma -12>><<stress -12>><<corruption `Math.floor($earSlime.corruption * -0.2)`>> <br><br> <</if>> <</if>> <</widget>> <<widget "fetishPregnancyImg">> <<if _playerIsNowPregnant or _npcIsNowPregnant>> <div class="impregnatedGrid"> <<if _playerIsNowPregnant>> <div @class="$options.images is 1 ? 'impregnated' : ''"> <div> <<if _playerIsNowPregnant is "pc">> <span class="lewd">You just got yourself pregnant.</span> <<else>> <span class="lewd"><<print pregnancyNameCorrection(_playerIsNowPregnant, true)>> just impregnated you.</span> <</if>> </div> <<if $options.images is 1>> <<if $player.vaginaExist>> <<set $_fCum to Math.clamp(setup.bodyliquid.combined("vagina"),1,5)>> <<else>> <<set $_fCum to Math.clamp(setup.bodyliquid.combined("anus"),1,5)>> <</if>> <img class="fertilization" @src="'img/sex/fertilization/fert' + $_fCum + '.gif'"> <</if>> </div> <<unset _playerIsNowPregnant>> <</if>> <<if _npcIsNowPregnant>> <div @class="$options.images is 1 ? 'impregnated' : ''"> <div><span class="lewd">You just impregnated <<print pregnancyNameCorrection(_npcIsNowPregnant)>>.</span></div> <<if $options.images is 1>><img class="fertilization" src="img/sex/fertilization/fert6.gif"><</if>> </div> <<earnFeat "First Fatherhood">> <<unset _npcIsNowPregnant>> <</if>> </div> <</if>> <</widget>> <<widget "giveHarpyEggs">> <<if !playerIsPregnant() and $harpy gte 4 and !$harpyEggs and !$harpyEggsPrevent>> /* daysTillLaying only applies to unfertilised eggs */ <<set $harpyEggs to { count: weightedRandom([1, 1], [2, 4], [3, 4], [4, 1]), daysTillLaying: random(2, 3), }>> /* Minimum time to prevents eggs from being set */ <<set $harpyEggsPrevent to 14>> <</if>> <</widget>><<widget "promiscuity1">> <<promiscuityN 1>> <</widget>> <<widget "promiscuity2">> <<promiscuityN 2>> <</widget>> <<widget "promiscuity3">> <<promiscuityN 3>> <</widget>> <<widget "promiscuity4">> <<promiscuityN 4>> <</widget>> <<widget "promiscuity5">> <<promiscuityN 5>> <</widget>> <<widget "promiscuity6">> <<promiscuityN 6>> <</widget>> <<widget "promiscuityN">> <<set $_n to _args[0]>> <<set $_scaledPromiscuityMax to 20 * $_n>> <<if $desperateaction is 1>> You feel disgusting, but it's better than what Bailey has in store for you. <<elseif $desperateaction is 2>> You feel disgusting, but it's better than the alternative. <<elseif typeof $desperateaction is "string">> You feel disgusting, but <<print $desperateaction>>. <<else>> <<if $control lt $controlmax>> <<if $_n is 6>> Performing such an act of manic depravity <span class="green">fully restores your sense of control</span>, <span class="red">but inflicts damage to your mental state</span>. <<elseif $promiscuity lt $_scaledPromiscuityMax>> Performing such a lewd act excites you and <span class="green">restores your sense of control and self-worth</span>, for now. <<else>> Performing such a lewd act excites you, but does nothing to lift the cloud hanging over you. <span class="pink">You need to do something more extreme.</span> <</if>> <<else>> <<if $_n is 6>> You already feel in control, <span class="red">leaving you unfulfilled as your act of manic depravity seems wasted</span>. <<elseif $promiscuity lt $_scaledPromiscuityMax>> You already feel in control, but performing such a lewd act <span class="green">soothes</span> and excites you. <<else>> You already feel in control and the act is <span class="pink">too tame to soothe</span>, but it does excite you. <</if>> <</if>> <<if !hasSexStat("promiscuity", $_n, false) and $drunk gte 1>> <<if $_n is 6>> <span @class="'red ' + basicDrunkCss()">Your head feels fuzzy and light. You hope you don't remember this later.</span> <<else>> <span @class="'blue ' + basicDrunkCss()">You feel weightless as the alcohol dulls your inhibitions.</span> <</if>> <</if>> <<if !hasSexStat("promiscuity", $_n, false) and (playerHeatMinArousal() + playerRutMinArousal()) gte 1>> <<if $_n is 6>> <span @class="'red ' + basicJitterCss()">You know you shouldn't want this, but you find it hard to care.</span> <<else>> <span @class="'pink ' + basicJitterCss()">You feel a primal urge pushing you to go further.</span> <</if>> <</if>> <</if>> <!-- separating the code from the written text --> <<if $desperateaction is 1 or $desperateaction is 2 or typeof $desperateaction is "string">> <<control `$_n * -10`>> <<switch $_n>> <<case 1>><<lcontrol>> <<case 2>><<llcontrol>> <<case 3>><<llcontrol>> <<case 4>><<llcontrol>> <<case 5>><<lllcontrol>> <</switch>> <<gtrauma>><<trauma $_n>> <<else>> <<if $_n is 6>> <<set $promiscuity += ($control lt $controlmax ? 2 : 1)>> <<if $control lt $controlmax>> <<control $controlmax>> <<gggcontrol>> <</if>> <<trauma 40>> <<ggtrauma>> <<elseif $promiscuity lt $_scaledPromiscuityMax>> <<set $promiscuity += ($control lt $controlmax ? 2 : 1)>> <<if $control lt $controlmax>> <<ggcontrol>> <</if>> <<control 25>><<stress $_n -300>><<combattrauma `$_n * -30`>><<ltrauma>><<lstress>> <<else>> <<if V.daily["promiscuityStress" + $_n] isnot 1 and $statFreeze isnot true>> <<set V.daily["promiscuityStress" + $_n] to 1>><<lstress>><<stress $_n -100>> <</if>> <</if>> <<arousal `$_n * 100`>><<garousal>> <</if>> <<set $promiscuity to Math.clamp($promiscuity, 0, 100)>> <<earSlimeSeenActions "promiscuity" $_n>> <br><br> <<unset $desperateaction>> <</widget>> <<widget "combatpromiscuity1">> <<combatpromiscuityN 1>> <</widget>> <<widget "combatpromiscuity2">> <<combatpromiscuityN 2>> <</widget>> <<widget "combatpromiscuity3">> <<combatpromiscuityN 3>> <</widget>> <<widget "combatpromiscuity4">> <<combatpromiscuityN 4>> <</widget>> <<widget "combatpromiscuity5">> <<combatpromiscuityN 5>> <</widget>> <<widget "combatpromiscuity6">> <<combatpromiscuityN 6>> <</widget>> <<widget "combatpromiscuityN">> <<if !$promiscuityIgnore>> <<set $_n to _args[0]>> <<if $enemytype isnot "man">> <<combatdeviancyN $_n>> <<elseif $consensual is 1 or $_n is 6>> <<set $_scaledPromiscuityMax to 20 * $_n>> <<if $promiscuity lt $_scaledPromiscuityMax>> <<set $promiscuity += ($control lt $controlmax ? 2 : 1)>> <<if $control lt $controlmax>> <<set _combat_promiscuity_success to (_combat_promiscuity_success gte $_n ? _combat_promiscuity_success : $_n)>> <<if $_n is 6>> <<control $controlmax>> <<else>> <<control 25>> <</if>> <<else>> <<set _combat_promiscuity_max_control to $_n>> <</if>> <<if $_n is 6>> <<combattrauma 40>> <<else>> <<stress $_n -300>> <<combattrauma `$_n * -30`>> <</if>> <<else>> <<set _combat_promiscuity_failure to $_n>> <<if V.daily["promiscuityStress" + $_n] isnot 1 and $statFreeze isnot true>> <<set V.daily["promiscuityStress" + $_n] to 1>><<stress $_n -100>> <</if>> <</if>> <<arousal `$_n * 100`>> <</if>> <</if>> <<set $promiscuity to Math.clamp($promiscuity, 0, 100)>> <<earSlimeSeenActions "promiscuity" $_n 5>> <</widget>> <<widget "combat_promiscuity_text">> <<if _combat_promiscuity_success>> <br> <<if _combat_promiscuity_success is 6>> Your crazed act of promiscuity <span class="green">fully restores your sense of control</span>, <span class="red">but inflicts damage to your mental state</span>.<<gggcontrol>><<ggtrauma>><<ggarousal>> <<else>> Your promiscuous behaviour <span class="green">restores your sense of control.</span><<ggcontrol>><<ltrauma>><<lstress>><<garousal>> <</if>> <<elseif _combat_promiscuity_max_control>> <br> <<if _combat_promiscuity_max_control is 6>> You already feel in control, <span class="red">leaving you unfulfilled as your act of manic depravity seems wasted</span>.<<ggtrauma>><<ggarousal>> <<else>> Your promiscuous behaviour <span class="green">soothes and excites you.</span><<ltrauma>><<lstress>><<garousal>> <</if>> <<elseif _combat_promiscuity_failure>> <br> Your behaviour is promiscuous, <span class="pink">though it's too tame to soothe.</span><<lstress>><<garousal>> <</if>> <</widget>><<widget "pbhairinit">> <!--PBHair extension START--> <<if $pblevel lt 1 or !$pblevel>> <<set $pblevel to 1>> <</if>> <<if $pbgrowth lt 1 or !$pbgrowth>> <<set $pbgrowth to 1>> <</if>> <<if $pblevelballs lt 1 or !$pblevelballs>> <<set $pblevelballs to 1>> <</if>> <<if $pbgrowthballs lt 1 or !$pbgrowthballs>> <<set $pbgrowthballs to 1>> <</if>> <<if $pbstrip lt 0 or !$pbstrip>> <<set $pbstrip to 0>> <</if>> <</widget>><<widget "initsettings">> <<set $player.gender to "f">> <<set $player.sex to "f">> <<set $player.gender_body to "a">> <<set $player.bodyshape to "classic">> <<set $player.ballsExist to false>> <<set $player.freckles to false>> <<set $player.breastsize to 0>> <<set $player.penissize to 1>> <<set $bodysize to 2>> <<set $mouthsensitivity to 1>> <<set $breastsensitivity to 1>> <<set $bottomsensitivity to 1>> <<set $genitalsensitivity to 1>> <<set $facestyle to "default">> <<set $facevariant to "default">> <<set $eyeselect to "purple">> <<set $hairselect to "red">> <<set $hairlength to 200>> <<set $awareselect to "innocent">> <<set $background to "waif">> <<set $startingseason to "autumn">> <<set $gamemode to "normal">> <<set $settings.darkSkinChance to 10>> <<set $settings.swarmsEnabled to true>> <<set $settings.spidersEnabled to true>> <<set $settings.slugsEnabled to true>> <<set $settings.waspsEnabled to true>> <<set $settings.beesEnabled to true>> <<set $settings.lurkersEnabled to true>> <<set $settings.horsesEnabled to true>> <<set $settings.bodyWritingLevel to 3>> <<set $settings.parasitesEnabled to true>> <<set $settings.ruinedOrgasmEnabled to true>> <<set $settings.bestialityEnabled to true>> <<set $settings.slimesEnabled to true>> <<set $settings.voreEnabled to true>> <<set $settings.tentaclesEnabled to true>> <<set $settings.plantsEnabled to true>> <<set $settings.analEnabled to true>> <<set $settings.analDoubleEnabled to true>> <<set $settings.analingusGivingEnabled to true>> <<set $settings.analingusReceivingEnabled to true>> <<set $settings.vaginalDoubleEnabled to true>> <<set $settings.transformAnimalEnabled to true>> <<set $settings.transformDivineEnabled to true>> /*<<set $hirsutedisable to "t">>*/ <<set $settings.pubicHairEnabled to false>> <<set $settings.breastFeedingEnabled to true>> <<set $settings.parasitePregnancyEnabled to true>> <<set $settings.asphyxiaLevel to 3>> <<set $settings.nudeGenderPerception to 1>> <<set $settings.npcVirginChanceStudent to 50>> <<set $settings.npcVirginChanceAdult to 10>> <<set $settings.footFetishEnabled to true>> <<set $settings.toyWhipEnabled to true>> <<set $settings.toyDildoEnabled to true>> <<set $settings.toyMultiplePenetrationEnabled to true>> <<set $settings.pregnancySpeechEnabled to true>> <<set $settings.hypnosisEnabled to true>> <<set $settings.blindStatsEnabled to false>> <<set $cheatsEnabled to false>> <<set $settings.watersportsEnabled to false>> <<set $settings.facesitEnabled to true>> <<set $ruffledisable to "f">> <<set $settings.forcedCrossdressingEnabled to true>> <<set $saveName to "">> <<set $settings.skillCheckStyle to "words">> <<set $blackwolfmonster to 1>> <<set $greathawkmonster to 1>> <<set $reducedLineHeight to false>> <<set $settings.clothingCostModifier to 1>> <<set $settings.underwearCostModifier to 1>> <<set $settings.schoolClothingCostModifier to 1>> <<set $settings.lewdClothingCostModifier to 1>> <<set $settings.furnitureCostModifier to 1>> <<set $settings.basePlayerPregnancyChance to 80>> <<set $settings.baseNpcPregnancyChance to 8>> <<set $settings.humanPregnancyMonths to 3>> <<set $settings.wolfPregnancyWeeks to 4>> <<set $settings.playerPregnancyHumanEnabled to true>> <<set $settings.playerPregnancyBeastEnabled to true>> <<set $settings.playerPregnancyEggLayingEnabled to true>> <<set $settings.npcPregnancyEnabled to true>> <<set $settings.incompletePregnancyEnabled to false>> <<set $settings.fertilityCycleEnabled to true>> <<set $settings.pregnancyType to "realistic">> <<set $settings.rentCostModifier to 1>> <<set $settings.condomLevel to 3>> <<set $settings.condomChance to 60>> <<set $settings.condomUseChanceRape to 33>> <<set $settings.condomUseChanceConsensual to 83>> <<set $settings.multipleWardrobes to "isolated">> <<set $settings.tendingYieldModifier to 5>> <<set $notifyUpdate = true>> <<set _tan to 0>> <<startingPlayerImageReset>> <</widget>> <<widget "displaySettings">> <<if _args[0]>> <<set $currentSettings to _args[0]>> <</if>> <<if $passage isnot "Start" and ["characterSettings", "featSettings"].includes($currentSettings)>> <<set $currentSettings to "gameSettings">> <</if>> <<switch $currentSettings>> <<case "quickStart" "tweak">><<replace #settingsDiv>><<quickStart>><</replace>> <<case "presetConfirmDetails">><<replace #settingsDiv>><<presetConfirmDetails>><</replace>> <<case "characterSettings" "character">> <<replace #settingsDiv>><<characterSettings>><</replace>> <<if StartConfig.enableImages and $passage is "Start">><<startingPlayerImageUpdate>><<removeclass #startingPlayerImage "hidden">><</if>> <<case "featSettings" "feat">><<replace #settingsDiv>><<featSettings>><</replace>> <<case "gameSettings" "game">><<replace #settingsDiv>><<gameSettings>><</replace>> <<case "sizeLimitsSettings" "size">><<replace #settingsDiv>><<sizeLimitsSettings>><</replace>> <<case "npcSettings" "npc">><<replace #settingsDiv>><<npcSettings>><</replace>> <<case "exportsettings" "export">><<replace #settingsDiv>><<exportsettings>><</replace>> <<case "gallerySettings" "gallery">><<replace #settingsDiv>><<gallerySettings>><</replace>> <<case "importConfirmDetails">><<replace #settingsDiv>><<importConfirmDetails>><</replace>> <<case "startDescriptions">><<startDescriptions>> <<default>><<replace #settingsDiv>><<gameSettings>><</replace>> <</switch>> <<run settingsDisableElement()>> <</widget>> <<widget "displaySubsection">> <<if _args[0]>> <<set $currentSubsection to _args[0]>> <</if>> <<switch $currentSubsection>> <<case "humanSettings">><<set _subsection to "human">><<replace #subsectionDiv>><<humanSettings>><</replace>> <<case "npcSettings">><<set _subsection to "npc">><<replace #subsectionDiv>><<npcSettings>><</replace>> <<case "beastSettings">><<set _subsection to "beast">><<replace #subsectionDiv>><<beastSettings>><</replace>> <<case "fetishSettings">><<set _subsection to "fetish">><<replace #subsectionDiv>><<fetishSettings>><</replace>> <<case "priceSettings">><<set _subsection to "price">><<replace #subsectionDiv>><<priceSettings>><</replace>> <<case "pregnancySettings">><<set _subsection to "pregnancy">><<replace #subsectionDiv>><<pregnancySettings>><</replace>> <<case "sizeLimitsSettings">><<set _subsection to "sizeLimits">><<replace #subsectionDiv>><div class="solidBorderContainer settings-container"><<sizeLimitsSettings>></div><</replace>> <<default>><<set _subsection to "human">><<replace #subsectionDiv>><<humanSettings>><</replace>> <</switch>> <<run settingsDisableElement()>> <</widget>> <<widget "startOptionsComplexityButton">> <div @class="_selectedStart is _args[1] ? 'gold buttonStartSelected' : 'buttonStart'" > <<button _args[0]>> <<set _selectedStart to _args[1]>> <<set _settingsTab to "startDescriptions">> <<replace #startOptions>><<startOptions>><</replace>> <<replace #settingsExit>><<settingsExit>><</replace>> <</button>> </div> <</widget>> <<widget "settingsTabButton">> <div @class="_settingsTab is _args[1] ? 'gold buttonSettingsSelected' : 'buttonSettings'" > <<button _args[0]>> <<set _settingsTab to _settingsTab is _args[1] ? "startDescriptions" : _args[1]>> <<if _args[1] is "game">><<set _subsection to "human">><</if>> <<replace #startOptions>><<startOptions>><</replace>> <<displaySettings _settingsTab>> <</button>> </div> <</widget>> <<widget "startOptions">> <div class="containerStart"> <div id="startSelectionDefault" class="buttonSettings"> <<startOptionsComplexityButton "Basic" "default">> </div> <div id="startSelectionCustom" class="buttonSettings"> <<startOptionsComplexityButton "Custom" "custom">> </div> <div id="startSelectionRandom" class="buttonSettings"> <<startOptionsComplexityButton "Random" "random">> </div> </div> <hr> <<set _featTabName to "Feat Boosts<span class='red'> *</span>"+ ($options.images is 1 ? " <img class='imgButton' src='img/ui/GoldCoin.gif'/>" : "")>> <<switch _selectedStart>> /*Basic Start is selected */ <<case "default">> <div class="containerStart"> /*Character Creation*/ <<settingsTabButton "Character Creation<span class='red'> *</span>" "character">> /*Feat Boosts */ <<settingsTabButton _featTabName "feat">> /*Gallery*/ <<settingsTabButton "Gallery" "gallery">> /*Export/Import Settings*/ <<settingsTabButton "Export/Import Settings" "export">> </div> /*Custom Start is Selected */ <<case "custom">> <div class="containerStart"> /*Character Creation*/ <<settingsTabButton "Character Creation<span class='red'> *</span>" "character">> /*Game Settings*/ <<settingsTabButton "Game Settings" "game">> /*Feat Boosts*/ <<settingsTabButton _featTabName "feat">> /*Gallery*/ <<settingsTabButton "Gallery" "gallery">> /*Export/Import Settings*/ <<settingsTabButton "Export/Import Settings" "export">> </div> /*Random Start is Selected */ <<case "random">> <div class="containerStart"> /*Feat Boosts*/ <<settingsTabButton _featTabName "feat">> /*Gallery*/ <<settingsTabButton "Gallery" "gallery">> </div> <</switch>> /*Container for different tabs*/ <div id="settingsDiv"> <<switch $currentSettings>> <<case "featSettings" "feat">><<featSettings>> <<default>><<startDescriptions _selectedStart>> <</switch>> </div> <</widget>> <<widget "settingsStart">> <<updatehistorycontrols>><!-- hides controls on going back in history after enabling that option --> <<set $settings.cheatsEnabledToggle to $cheatsEnabled>> <<if _selectedStart is undefined>> <<set _selectedStart to "default">> <</if>> Select your settings: <br> <div id="startOptions" class="no-numberify"> <<startOptions>> </div> <br> <div id="settingsExit"> <<settingsExit>> </div> <</widget>> <<widget "settingsOptions">> <<if _selectedSettings is undefined>><<set _selectedSettings to "quick">><</if>> <div class="containerStart"> <div @class="_selectedSettings is 'quick' ? 'gold buttonStartSelected' : 'buttonStart'" > <<button "Quick Edit">> <<set _selectedSettings to "quick">> <<replace #settingsOptions>><<settingsOptions>><</replace>> <<replace #settingsExit>><<settingsExit>><</replace>> <<displaySettings "quickStart">> <</button>> </div> <div @class="_selectedSettings is 'game' ? 'gold buttonStartSelected' : 'buttonStart'" > <<button "Game Settings">> <<set _selectedSettings to "game">> <<set _subsection to "human">> <<replace #settingsOptions>><<settingsOptions>><</replace>> <<replace #settingsExit>><<settingsExit>><</replace>> <<displaySettings "gameSettings">> /* Resets Quick edit temporary values, to make them reflect current settings as closely as they can */ <<unset _pregnancytype>> <<unset _incompletePregnancyDisable>> <</button>> </div> <div @class="_selectedSettings is 'gallery' ? 'gold buttonStartSelected' : 'buttonStart'" > <<button "Gallery">> <<set _selectedSettings to "gallery">> <<replace #settingsOptions>><<settingsOptions>><</replace>> <<replace #settingsExit>><<settingsExit>><</replace>> <<displaySettings "gallerySettings">> <</button>> </div> <div @class="_selectedSettings is 'export' ? 'gold buttonStartSelected' : 'buttonStart'" > <<button "Export/Import Settings">> <<set _selectedSettings to "export">> <<replace #settingsOptions>><<settingsOptions>><</replace>> <<replace #settingsExit>><<settingsExit>><</replace>> <<displaySettings "exportsettings">> <</button>> </div> </div> <</widget>> <<widget "settings">> <<updatehistorycontrols>><!-- hides controls on going back in history after enabling that option --> <<set $settings.cheatsEnabledToggle to $cheatsEnabled>> <div id="settingsOptions" class="no-numberify"> <<settingsOptions>> </div> <div id="settingsDiv" class="no-numberify"> <<quickStart>><<set $currentSettings to "quickStart">> </div> <br> <div id="settingsExit"> <<settingsExit>> </div> <</widget>> <<widget "settingsExit">> <<saveNameSection>> <div style="margin-top:15px"> <<if $passage is "Start">> <<switch _selectedStart>> <<case "default">> <div class="my-1"><span class="gold bold">Current Settings:</span> <i>Adjustable</i></div> /* Reset these settings if going back to this tab */ <<set $settings.maleChanceSplit to false>> <<set $settings.maleChance to 50>> <<set $settings.maleChanceMale to 50>> <<set $settings.maleChanceFemale to 50>> <<set $settings.beastMaleChanceSplit to false>> <<set $settings.beastMaleChance to 50>> <<set $settings.beastMaleChanceMale to 50>> <<set $settings.beastMaleChanceFemale to 50>> <<button "Start Game!">> <<presets _kinkPreset "save">> <<presets _namedNpcPreset "save">> <<presets _monstersPreset "save">> <<if _pregnancytype is "disabled">> <<set $settings.playerPregnancyHumanEnabled to false>> <<set $settings.playerPregnancyBeastEnabled to false>> <<set $settings.playerPregnancyEggLayingEnabled to false>> <<set $settings.npcPregnancyEnabled to false>> <<else>> <<set $settings.pregnancyType to _pregnancytype or "realistic">> <<set $settings.playerPregnancyHumanEnabled to true>> <<set $settings.playerPregnancyBeastEnabled to true>> <<set $settings.playerPregnancyEggLayingEnabled to true>> <<set $settings.npcPregnancyEnabled to true>> <</if>> <<if _incompletePregnancyDisable is false or (_incompletePregnancyDisable is true and !_foundPregnancy)>> <<set $settings.incompletePregnancyEnabled to _incompletePregnancyDisable>> <<npcPregnancyUpdater>> <</if>> <<if ($feats.locked or ($settings.cheatsEnabledToggle is false and $settings.rentCostModifier gte 1)) and ($feats.soft or ($gamemode isnot "soft" and $settings.allureModifier gte 1)) and ($feats.pregnancyLocked or ($settings.humanPregnancyMonths gte 3 and $settings.wolfPregnancyWeeks gte 4)) and ($feats.pregnancySillyLocked or $settings.pregnancyType isnot "silly")>> <<settingsExitFunction>> <<else>><!-- confirm cheats --> <<replace #settingsExit>><<settingsExitConfirm>><</replace>> <</if>> <</button>> <<case "custom">> <div class="my-1"><span class="gold bold">Current Settings:</span> <i>Customisable</i></div> <<button "Start Game!">> <<if ($feats.locked or ($settings.cheatsEnabledToggle is false and $settings.rentCostModifier gte 1)) and ($feats.soft or ($gamemode isnot "soft" and $settings.allureModifier gte 1)) and ($feats.pregnancyLocked or ($settings.humanPregnancyMonths gte 3 and $settings.wolfPregnancyWeeks gte 4)) and ($feats.pregnancySillyLocked or $settings.pregnancyType isnot "silly")>> <<settingsExitFunction>> <<else>><!-- confirm cheats --> <<replace #settingsExit>><<settingsExitConfirm>><</replace>> <</if>> <</button>> <<case "random">> <div class="my-1"><span class="gold bold">Current Settings:</span> <i>Randomised</i></div> <<button "Start Game!">> /*Rerolls all settings*/ <<presets "randomize" "characterSettings" `randomizeSettings()`>> <<if ($feats.locked or ($settings.cheatsEnabledToggle is false and $settings.rentCostModifier gte 1)) and ($feats.soft or ($gamemode isnot "soft" and $settings.allureModifier gte 1)) and ($feats.pregnancyLocked or ($settings.humanPregnancyMonths gte 3 and $settings.wolfPregnancyWeeks gte 4)) and ($feats.pregnancySillyLocked or $settings.pregnancyType isnot "silly")>> <<settingsExitFunction>> <<else>><!-- confirm cheats --> <<replace #startOptions>><<startOptions>><</replace>> <<replace #settingsExit>><<settingsExitConfirm>><</replace>> <</if>> <</button>> <</switch>> <div class="small-description my-2"> Most settings, including NPC genders and beast appearance, can be changed later by using the <span class="gold">Gameplay Settings</span> link in your bedroom. <span class="red">You will not be able to change your character's genitalia or feat boosts after starting the game.</span> Additional settings can be found in the <span class="gold">Options</span> tab on the sidebar. </div> <<else>> <<button "Save changes">> <<if ($feats.locked or ($settings.cheatsEnabledToggle is false and $settings.rentCostModifier gte 1)) and ($feats.soft or ($gamemode isnot "soft" and $settings.allureModifier gte 1)) and ($feats.pregnancyLocked or ($settings.humanPregnancyMonths gte 3 and $settings.wolfPregnancyWeeks gte 4)) and ($feats.pregnancySillyLocked or $settings.pregnancyType isnot "silly")>> <<settingsExitFunction>> <<else>><!-- confirm cheats --> <<replace #settingsExit>><<settingsExitConfirm>><</replace>> <</if>> <</button>> <</if>> </div> <</widget>> <<widget "settingsExitConfirm">> <<if _selectedStart is "random">> <span class="red">Certain feats have been disabled due to randomly generated settings.</span> <ul> <<if $settings.cheatsEnabledToggle is true>><li>Enabled cheats: disables all feats.</li><</if>> <<if $settings.rentCostModifier lt 1>><li>Lowered rent: disables all feats.</li><</if>> <<if !$feats.soft and $gamemode is "soft">><li>Soft mode: disables some feats.</li><</if>> <<if !$feats.soft and $settings.allureModifier lt 1>><li>Lowered allure: disables some feats.</li><</if>> <<if !$feats.pregnancyLocked and $settings.humanPregnancyMonths lt 3>><li>Human pregnancy set to under 3 months: disables some pregnancy feats.</li><</if>> <<if !$feats.pregnancyLocked and $settings.wolfPregnancyWeeks lt 4>><li>Wolf pregnancy set to under 4 weeks: disables some pregnancy feats.</li><</if>> <<if !$feats.pregnancySillyLocked and $settings.pregnancyType is "silly">><li>Pregnancy mode set to "silly": disables some pregnancy feats.</li><</if>> </ul> Do you want to keep these changes? <br> <<button "No">> <<set $settings.cheatsEnabledToggle to false>> <<if $gamemode is "soft">> <<set $gamemode to "normal">> <</if>> <<if $settings.allureModifier lt 1>> <<set $settings.allureModifier to 1>> <</if>> <<if $settings.rentCostModifier lt 1>> <<set $settings.rentCostModifier to 1>> <</if>> <<if !$feats.pregnancyLocked and $settings.humanPregnancyMonths lt 3>> <<set $settings.humanPregnancyMonths to 3>> <</if>> <<if !$feats.pregnancyLocked and $settings.wolfPregnancyWeeks lt 4>> <<set $settings.wolfPregnancyWeeks to 4>> <</if>> <<if !$feats.pregnancySillyLocked and $settings.pregnancyType is "silly">> <<set $settings.pregnancyType to "realistic">> <</if>> <<displaySettings "startDescriptions">> <<replace #settingsExit>><<settingsExit>><</replace>> <</button>> <br> <span class="gold small-description">(Undo these changes, allowing you to reroll your settings.)</span> <br><br> <<button "Yes">> <<settingsExitFunction>> <</button>> <br> <span class="red small-description">(Feats will be disabled for the duration of this save.)</span> <<else>> <span class="red">You will not be able to obtain feats due to the settings you've selected.</span> <ul> <<if $settings.cheatsEnabledToggle is true>><li>Enabled cheats: disables all feats.</li><</if>> <<if $settings.rentCostModifier lt 1>><li>Lowered rent: disables all feats.</li><</if>> <<if !$feats.soft and $gamemode is "soft">><li>Soft mode: disables some feats.</li><</if>> <<if !$feats.soft and $settings.allureModifier lt 1>><li>Lowered allure: disables some feats</li><</if>> <<if !$feats.pregnancyLocked and $settings.humanPregnancyMonths lt 3>><li>Human pregnancy set to under 3 months: disables some pregnancy feats.</li><</if>> <<if !$feats.pregnancyLocked and $settings.wolfPregnancyWeeks lt 4>><li>Wolf pregnancy set to under 4 weeks: disables some pregnancy feats.</li><</if>> <<if !$feats.pregnancySillyLocked and $settings.pregnancyType is "silly">><li>Pregnancy mode set to "silly": disables some pregnancy feats.</li><</if>> </ul> Do you want to keep these changes? <br> <<button "No">> <<set $settings.cheatsEnabledToggle to false>> <<if $gamemode is "soft">> <<set $gamemode to "normal">> <</if>> <<if $settings.allureModifier lt 1>> <<set $settings.allureModifier to 1>> <</if>> <<if $settings.rentCostModifier lt 1>> <<set $settings.rentCostModifier to 1>> <</if>> <<if !$feats.pregnancyLocked and $settings.humanPregnancyMonths lt 3>> <<set $settings.humanPregnancyMonths to 3>> <</if>> <<if !$feats.pregnancyLocked and $settings.wolfPregnancyWeeks lt 4>> <<set $settings.wolfPregnancyWeeks to 4>> <</if>> <<if !$feats.pregnancySillyLocked and $settings.pregnancyType is "silly">> <<set $settings.pregnancyType to "realistic">> <</if>> <<if _settingsTab is 'tweak'>> <<replace #gameModeQuick>><<gameMode>><</replace>> <<elseif _settingsTab is 'game'>> <<replace #gameMode>><<gameMode>><</replace>> <</if>> <<replace #settingsExit>><<settingsExit>><</replace>> <</button>> <br> <span class="gold small-description">(Undo these changes, allowing feats to be obtained.)</span> <br><br> <<button "Yes">> <<settingsExitFunction>> <</button>> <br> <span class="red small-description">(Feats will be disabled for the duration of this save.)</span> <</if>> <</widget>> <<widget "settingsExitConfirmHistory">> <span class="red"><b>WARNING! Your history depth setting is too high!</b><br> Values above 5 can lead to errors when creating new saves! Make sure you know what you're doing before proceeding, or turn it down! </span> <br> <<link "Disable the feature">> <<set $options.maxStates to 1>> <<replace #settingsExit>><<settingsExit>><</replace>> <<displaySettings>> <</link>> <br> <<link "Lower the values to safer levels">> <<set $options.maxStates to 5>> <<replace #settingsExit>><<settingsExit>><</replace>> <<displaySettings>> <</link>> <br><br><br> <<link "I love shooting myself in the foot">> <<settingsExitFunction>> <</link>> <</widget>> <<widget "settingsExitFunction">> <<if !$ironmanmode>> <<set $cheatsEnabled to $settings.cheatsEnabledToggle>> <</if>> <<if $cheatsEnabled is true or $settings.rentCostModifier lt 1>> <<set $feats.locked to true>> <</if>> <<unset $settings.cheatsEnabledToggle>> <<if $gamemode is "soft" or $settings.allureModifier lt 1>> <<set $feats.soft to true>> <</if>> <<if $settings.humanPregnancyMonths lt 3 or $settings.wolfPregnancyWeeks lt 4>> <<set $feats.pregnancyLocked to true>> <</if>> <<if $settings.pregnancyType is "silly">> <<set $feats.pregnancySillyLocked to true>> <</if>> <<updatehistorycontrols>> <<presets _namedNpcPreset "save">> <<initnpcgender>> <<updatePersistentNPCs>> <<hirsuteHideCheck>> <<generateTipsList>> <<if $player.freckles is "random">> <<set $player.freckles to (random(1, 5) is 1)>> <</if>> /* Updates the npc's in case $incompletePregnancyDisable has been changed by the player */ <<npcPregnancyUpdater>> <!-- Init shop mannequin gender --> <<if $mannequinHasPenis is undefined>> <<set $mannequinHasPenis to $player.penisExist>> <<set $mannequinBreastsSize to ($mannequinHasPenis ? 0 : 3)>> <</if>> <<if $settings.lewdClothingCostModifier lt Math.ceil(10 / $settings.clothingCostModifier) * 0.1>> <<set $settings.lewdClothingCostModifier to parseFloat((Math.ceil(10 / $settings.clothingCostModifier) * 0.1).toFixed(1))>> <</if>> <<set _settingsExitPassage to clone($settingsExitPassage)>> <<unset $settingsExitPassage>> <<run State.display(_settingsExitPassage)>> <<set $saveName to $saveName.replace(/[^a-zA-Z\u4e00-\u9fa5 0-9]+/g,"")>> <<unset $importString>> /* Updates the penis max size for females so its never below 1 */ <<if $player.sex is "f" && $penissizemax < 0>> <<set $penissizemax to 0>> <</if>> <</widget>> /*complete:{"Vrelnir (Default)":"vrelDefault","Lollipop Scythe":"lollipopScythe","PurityGuy":"purityGuy","Fangi":"fangi"},*/ <<widget "quickStartOptions">> <<if _quickStartOptions is undefined>> <<set _quickStartOptions to { player:{"Female Waif":"femaleWaif","Male Waif":"maleWaif", "Hermaphrodite Waif":"hermaphroditeWaif", "Vrelnir PC":"vrel", "Crossdresser":"crossdresser","Tough Guy":"toughGuy"}, genericNpc:{ "Default Genders":"genericNpcDefaultGender", "All Male":"genericNpcAllMaleGender", "75% Male":"genericNpc75MaleGender", "All Female":"genericNpcAllFemaleGender", "75% Female":"genericNpc75FemaleGender", "All Opposite Gender":"genericNpcAllOppositeGenders", "90% Opposite Gender":"genericNpc90OppositeGenders", "75% Opposite Gender":"genericNpc75OppositeGenders", "All Same Gender":"genericNpcAllSameGenders", "90% Same Gender":"genericNpc90SameGenders", "75% Same Gender":"genericNpc75SameGenders", }, namedNpc:{"Default Genders":"namedNpcDefaultGender", "All Male":"namedNpcAllMaleGender", "All Female":"namedNpcAllFemaleGender"}, beasts:{ "Default Genders":"beastDefaultGenders", "All Male":"beastMaleGenders", "75% Male":"beast75MaleGenders", "All Female":"beastFemaleGenders", "75% Female":"beast75FemaleGenders", "All Opposite Gender":"beastOppositeGenders", "90% Opposite Gender":"beast90OppositeGenders", "75% Opposite Gender":"beast75OppositeGenders", "All Same Gender":"beastSameGenders", "90% Same Gender":"beast90SameGenders", "75% Same Gender":"beast75SameGenders", }, monsters:{"When Hallucinating":"monstersDefault", "No Monsters":"monstersNone", "All Monsters":"monstersAll"}, kink:{"Reasonably Debauched":"kinkDefault", "Vanilla":"kinkVanilla", "No Beasts":"kinkNoBeasts", "Everything Goes":"kinkEverything"}, game:{ "Normal ":"gameNormal","Soft (No Feats)":"gameSoft","Hard":"gameHard","Hard (Ironman)":"gameHardIronman","Masochist":"gameMasochist","Soft with Cheats (No Feats)":"gameSoftCheats","Normal with Cheats (No Feats)":"gameNormalCheats","Hard with Cheats (No Feats)":"gameHardCheats","Masochist with Cheats (No Feats)":"gameMasochistCheats" }, images:{"Default":"imagesdefault","High Quality":"imagesHigh","Low Quality":"imagesLow","Performance Mode":"imagesPerformance","Disable images":"imagesDisable"}, settings:{"PC, Tips":"settingPCTip","PC, no Tips":"settingPCNoTip","Mobile, Tips":"settingMobileTips","Mobile, no Tips":"settingMobileNoTips"} }>> <</if>> <</widget>> <<widget "quickStart">> <div @class="$passage is 'Start' ? '' : 'solidBorderContainer settings-container'"> <div class="settingsGrid"> <<quickStartOptions>> <<if $passage is "Start">> <div class="settingsHeader"> Basic Settings </div> <div class="settingsToggleItemWide"> <span class="gold">Starting Season:</span> <br> <label><mouse class="tooltip tangerine">Autumn <<radiobutton "$startingseason" "autumn" autocheck>><span class="green"><i>Recommended for beginners.</i></span></mouse></label> | <label><span class="teal">Winter</span> <<radiobutton "$startingseason" "winter" autocheck>></label> | <label><span class="lime-green">Spring</span> <<radiobutton "$startingseason" "spring" autocheck>></label> | <label><span class="red">Summer</span> <<radiobutton "$startingseason" "summer" autocheck>></label> | <label>Random <<radiobutton "$startingseason" "random" autocheck>></label> </div> <<else>> <div class="settingsToggleIndent p-0"> <i>Quickly change game settings. To fine-tune settings further, visit the <span class="gold">Game Settings</span> tab.</i> </div> <</if>> <div id="gameModeQuick" class="settingsToggleItem"> <<gameMode>> </div> <div class="settingsToggleItem"> <<set _foundPregnancy to !!Object.values($NPCName).find(npc => npc.pregnancy && npc.pregnancy.enabled && npc.pregnancy.type && !setup.pregnancy.canBePregnant.includes(npc.fullDescription))>> <label> <span class="gold">Pregnancy Mode:</span> <br> <<if $passage is "Start">> <label><<radiobutton "_pregnancytype" "realistic" `_pregnancytype ? "autocheck" : ($settings.pregnancyType is "realistic" ? "checked": "")`>> <mouse class="tooltip green">Realistic<span>Pregnancy will not happen immediately, and you won't know right away when it happens. You may need to use a pregnancy test, and the father may not be known to you initially. Cum on the outside of your vagina may get you pregnant as well, unless washed off within the next several hours.</span></mouse></label> | <label><<radiobutton "_pregnancytype" "fetish" `_pregnancytype ? "autocheck" : ($settings.pregnancyType is "fetish" ? "checked": "")`>> <mouse class="tooltip pink">Fetishised<span>Pregnancy may happen as soon as semen gets inside you. You will know as soon as it happens, and will immediately know the father.</span></mouse></label> | <label><<radiobutton "_pregnancytype" "silly" `_pregnancytype ? "autocheck" : ($settings.pregnancyType is "silly" ? "checked": "")`>> <mouse class="tooltip gold">Silly<span>Pregnancy may happen as soon as you hold hands or kiss, especially with those you love. <i class="red none">There may be story content related issues with this mode. Some feats will be disabled with this mode.</i></span></mouse></label> | <label><<radiobutton "_pregnancytype" "disabled" autocheck>> <mouse class="tooltip red">Disabled<span>Pregnancy will be disabled.<<if $passage isnot "Start">>Will not prevent existing pregnancies or prevent the player from interacting with their children.<</if>></span></mouse></label> <<else>> <<pregnancyType>> <</if>> </label> <br> <label> <<fertilityCycles>> </label> <br> <label data-disabledif="T.foundPregnancy&&V.settings.incompletePregnancyEnabled===true"> <<incompletePregnancy>> </label> </div> <<if _selectedStart isnot "custom">> <div class="settingsToggleItem"> <<if $passage is "Start">> <span class="gold">Generic NPC Genders:</span> <<numberslider "$settings.maleChance" $settings.maleChance 0 100 25 { onInputChange: v => { if (V.settings.maleChanceSplit === true && v === 50) { V.settings.maleChanceMale = random (1, 99); V.settings.maleChanceFemale = random (1, 99); return; } if (V.settings.maleChanceSplit === true) { V.settings.maleChanceMale = 100 - v; V.settings.maleChanceFemale = v; return; } }, value: v => { if (V.settings.maleChanceSplit === true) { switch (v) { case 100: return `<span class="small-description"><span class='gold inline-colour'>All</span> NPCs will prefer the <span class='gold inline-colour'>opposite sex</span>.</span>`; case 75: return `<span class="small-description"><span class='gold inline-colour'>75%</span> of NPCs will prefer the <span class='gold inline-colour'>opposite sex</span>.</span>`; case 50: return `<span class="small-description">NPC sexual preferences will be <span class='gold inline-colour'>randomly</span> split.</span>`; case 25: return `<span class="small-description"><span class='gold inline-colour'>75%</span> of NPCs will prefer the <span class='gold inline-colour'>same sex</span>.</span>`; case 0: return `<span class="small-description"><span class='gold inline-colour'>All</span> NPCs will prefer the <span class='gold inline-colour'>same sex</span>.</span>`; default: return `<span class="small-description"><span class='gold inline-colour'>${v}%</span> of NPCs will prefer the <span class='gold inline-colour'>opposite sex</span>.</span>`; } } else { switch (v) { case 100: return `<span class="small-description"><span class='gold inline-colour'>All</span> NPCs will be <span class='blue inline-colour'>male</span>.</span>`; case 75: return `<span class="small-description"><span class='gold inline-colour'>75%</span> of NPCs will be <span class='blue inline-colour'>male</span>.</span>`; case 50: return `<span class="small-description">NPCs will be <span class='gold inline-colour'>evenly</span> split between <span class='blue inline-colour'>male</span> and <span class='pink inline-colour'>female</span> genders.</span>`; case 25: return `<span class="small-description"><span class='gold inline-colour'>75%</span> of NPCs will be <span class='pink inline-colour'>female</span>.</span>`; case 0: return `<span class="small-description"><span class='gold inline-colour'>All</span> NPCs will be <span class='pink inline-colour'>female</span>.</span>`; default: return `<span class="small-description"><span class='gold inline-colour'>${v}%</span> of NPCs will be <span class='blue inline-colour'>male</span>.</span>`; } } }, }>> <span id="humanSplitBy"><<humanSplitBy>></span> <<else>> <<npcAttractionSettings>> <</if>> </div> <div class="settingsToggleItem"> <span class="gold">Named NPC Genders:</span> <br> <<if _namedNpcPreset is undefined>><<set _namedNpcPreset to "namedNpcDefaultGender">><</if>> <label>All Male <<radiobutton "_namedNpcPreset" "namedNpcAllMaleGender" autocheck>></label> | <label><<print $passage is "Start" ? "Random Genders" : "Current Genders">> <<radiobutton "_namedNpcPreset" "namedNpcDefaultGender" autocheck>></label> | <label>All Female <<radiobutton "_namedNpcPreset" "namedNpcAllFemaleGender" autocheck>></label> </div> <div class="settingsToggleItem"> <<if $passage is "Start">> <span class="gold"><<= $settings.monsterChance is 100 ? "Monster People" : "Beast">> Genders:</span> <<numberslider "$settings.beastMaleChance" $settings.beastMaleChance 0 100 25 { onInputChange: v => { if (V.settings.beastMaleChanceSplit === true && v === 50) { V.settings.beastMaleChanceMale = random (1, 99); V.settings.beastMaleChanceFemale = random (1, 99); return; } if (V.settings.beastMaleChanceSplit === true) { V.settings.beastMaleChanceMale = 100 - v; V.settings.beastMaleChanceFemale = v; return; } }, value: v => { const beasts = V.settings.monsterChance === 100 ? "monster people" : "beasts"; const Beasts = beasts.charAt(0).toUpperCase() + beasts.slice(1); if (V.settings.beastMaleChanceSplit === true) { switch (v) { case 100: return `<span class="small-description"><span class='gold inline-colour'>All</span> ${beasts} will prefer the <span class='gold inline-colour'>opposite sex</span>.</span>`; case 75: return `<span class="small-description"><span class='gold inline-colour'>75%</span> of ${beasts} will prefer the <span class='gold inline-colour'>opposite sex</span>.</span>`; case 50: return `<span class="small-description">${Beasts} sexual preferences will be <span class='gold inline-colour'>randomly</span> split.</span>`; case 25: return `<span class="small-description"><span class='gold inline-colour'>75%</span> of ${beasts} will prefer the <span class='gold inline-colour'>same sex</span>.</span>`; case 0: return `<span class="small-description"><span class='gold inline-colour'>All</span> ${beasts} will prefer the <span class='gold inline-colour'>same sex</span>.</span>`; default: return `<span class="small-description"><span class='gold inline-colour'>${v}%</span> of ${beasts} will prefer the <span class='gold inline-colour'>opposite sex</span>.</span>`; } } else { switch (v) { case 100: return `<span class="small-description"><span class='gold inline-colour'>All</span> ${beasts} will be <span class='blue inline-colour'>male</span>.</span>`; case 75: return `<span class="small-description"><span class='gold inline-colour'>75%</span> of ${beasts} will be <span class='blue inline-colour'>male</span>.</span>`; case 50: return `<span class="small-description">${Beasts} will be <span class='gold inline-colour'>evenly</span> split between <span class='blue inline-colour'>male</span> and <span class='pink inline-colour'>female</span> genders.</span>`; case 25: return `<span class="small-description"><span class='gold inline-colour'>75%</span> of ${beasts} will be <span class='pink inline-colour'>female</span>.</span>`; case 0: return `<span class="small-description"><span class='gold inline-colour'>All</span> ${beasts} will be <span class='pink inline-colour'>female</span>.</span>`; default: return `<span class="small-description"><span class='gold inline-colour'>" + ${v} + "%</span> of ${beasts} will be <span class='blue inline-colour'>male</span>.</span>`; } } }, }>> <span id="beastSplitBy"><<beastSplitBy>></span> <<else>> <<beastAttractionSettings>> <</if>> </div> <div class="settingsToggleItem"> <<if $passage is "Start">> <<if _monstersPreset is undefined>><<set _monstersPreset to "monstersDefault">><</if>> <span class="gold">Replace Beasts with Monster People:</span> <br> <label>All the time <<radiobutton "_monstersPreset" "monstersAll" autocheck>></label> | <label>Only when hallucinating <<radiobutton "_monstersPreset" "monstersDefault" autocheck>></label> | <label>Never <<radiobutton "_monstersPreset" "monstersNone" autocheck>></label> <<else>> <<monsterSettings>> <</if>> </div> <<if $passage is "Start">> <div class="settingsToggleItem"> <span class="gold">Fetish Settings:</span> <br> <<if _kinkPreset is undefined>><<set _kinkPreset to "kinkDefault">><</if>> <label><mouse class="tooltip" style="border-bottom: 2px dotted var(--link)">Vanilla<span>All beast-related toggles are disabled, as well as plant people, tentacles, slimes, lactation, facesitting, double penetration, and hypnosis.</span></mouse> <<radiobutton "_kinkPreset" "kinkVanilla" autocheck>></label> | <label><mouse class="tooltip" style="border-bottom: 2px dotted var(--link)">Reasonably Debauched<span>Default settings. All kinks are enabled, except for watersports.</span></mouse> <<radiobutton "_kinkPreset" "kinkDefault" autocheck>></label> | <label><mouse class="tooltip" style="border-bottom: 2px dotted var(--link)">No Beasts<span>All beast-related settings are disabled, including bestiality, swarms, vore, parasites, spiders, slugs, wasps, lurkers, bees, and horses.</span></mouse> <<radiobutton "_kinkPreset" "kinkNoBeasts" autocheck>></label> | <label><mouse class="tooltip" style="border-bottom: 2px dotted var(--link)">Anything Goes<span>All kinks are enabled, including watersports.</span></mouse> <<radiobutton "_kinkPreset" "kinkEverything" autocheck>></label> </div> <div class="settingsToggleItem"> <i><<= _selectedStart is "custom" ? "To change" : "For more control over">> fetish and gameplay settings, visit the <span class="teal"><<= _selectedStart is "default" ? "Custom Start" : "Game Settings">></span> tab. Gameplay settings can still be changed after you start the game.</i> </div> <</if>> <</if>> </div> </div> <</widget>> <<widget "humanSplitByFull">> <<link `$settings.maleChanceSplit is true ? "Ignore sexual orientation" : "Set sexual orientation"`>> <<set $settings.maleChanceSplit to $settings.maleChanceSplit is true ? false : true>> <<toggleclass "#simpleGenders" "hidden">> <<replace "#splitGenders">><<maleChanceSplitControls>><</replace>> <<toggleclass "#splitGenders" "hidden">> <<replace "#humanSplitByFull">><<humanSplitByFull>><</replace>> <</link>> <</widget>> <<widget "beastSplitByFull">> <<link `$settings.beastMaleChanceSplit is true ? "Ignore sexual orientation" : "Set sexual orientation"`>> <<set $settings.beastMaleChanceSplit to $settings.beastMaleChanceSplit is true ? false : true>> <<toggleclass "#simpleBeastGenders" "hidden">> <<replace "#splitBeastGenders">><<beastMaleChanceSplitControls>><</replace>> <<toggleclass "#splitBeastGenders" "hidden">> <<replace "#beastSplitByFull">><<beastSplitByFull>><</replace>> <</link>> <</widget>> <<widget "humanSplitBy">> <<link `$settings.maleChanceSplit is true ? "Ignore sexual orientation" : "Set sexual orientation"`>> <<set $settings.maleChanceSplit to $settings.maleChanceSplit is true ? false : true>> <<replace "#humanSplitBy">><<humanSplitBy>><</replace>> <<run $("#numberslider-input-settingsmalechance").trigger("input");>> <</link>> <</widget>> <<widget "beastSplitBy">> <<link `$settings.beastMaleChanceSplit is true ? "Ignore sexual orientation" : "Set sexual orientation"`>> <<set $settings.beastMaleChanceSplit to $settings.beastMaleChanceSplit is true ? false : true>> <<replace "#beastSplitBy">><<beastSplitBy>><</replace>> <<run $("#numberslider-input-settingsbeastmalechance").trigger("input");>> <</link>> <</widget>> <<widget "characterSettings">> <div class="solidBorderContainer settings-container"> <div class="settingsGrid"> <div class="settingsToggleItem"> <span class="gold">Randomise:</span><br> <<link "Character appearance">><<presets "randomize" "characterSettings" `randomizeSettings('characterAppearance')`>><</link>> <mouse class="tooltip linkBlue">(?)<span>Randomises the player character's appearance, including hair, eyes, skin colour, gender, and body part sizes. Body size, gender appearance, genitalia, and base skin colour cannot be changed after starting the game.</span></mouse> <br> </div> <div class="settingsToggleItem"> <<if StartConfig.enableImages is true>> <span class="gold">Sidebar Preview:</span><br> <label>Hide clothes <<checkbox "_showClothes" true false autocheck>></label> | <label>Hide underwear <<checkbox "_showUnderwear" true false autocheck>></label> <br> <</if>> </div> </div> <hr> <div class="settingsGrid"> <div class="settingsHeader"> Body </div> <div class="settingsToggleItem" id="genitals"> <span class="gold">Genitals:</span><br> <label>Penis <<radiobutton "$player.sex" "m" autocheck>></label> | <label>Vagina <<radiobutton "$player.sex" "f" autocheck>></label> | <label>Both <<radiobutton "$player.sex" "h" autocheck>></label> <<if $player.sex is "h">> <br> <label>Testes: <<checkbox "$player.ballsExist" false true autocheck>></label> <</if>> </div> <<run $(() => { $('#genitals input[type="radio"]').on('change', () => { if (V.player.sex === "h" && V.background === "crossdresser") V.background = "waif"; Wikifier.wikifyEval('<<replace #settingsDiv>><<characterSettings>><</replace>>'); Wikifier.wikifyEval('<<updatesidebarimg>>'); }); }) >> <div class="settingsToggleItem" id="gender"> <span class="gold">Gender:</span><br> <label class="blue">Male <<radiobutton "$player.gender" "m" autocheck>></label> | <label class="pink">Female <<radiobutton "$player.gender" "f" autocheck>></label> | <label class="purple">Neither <<radiobutton "$player.gender" "n" autocheck>></label> <br> <span class="small-description">How you see yourself. Does not affect how other people perceive you. You may change this later in the mirror menu.</span> </div> <<run $(() => { $('#gender input[type="radio"]').on('change', () => { Wikifier.wikifyEval('<<replace #settingsDiv>><<characterSettings>><</replace>>'); Wikifier.wikifyEval('<<updatesidebarimg>>'); }); }) >> <div class="settingsToggleItem"> <span class="gold">Body Size:</span><br> <label>Tiny <<radiobutton "$bodysize" 0 autocheck>></label> | <label>Small <<radiobutton "$bodysize" 1 autocheck>></label> | <label>Normal <<radiobutton "$bodysize" 2 autocheck>></label> | <label>Large <<radiobutton "$bodysize" 3 autocheck>></label><br> <span class="small-description">Larger sizes have higher max physique and damage output.</span> </div> <div class="settingsToggleItem"> <span class="gold">Body Shape:</span><br> <<capture _i>> <<for _i = 0; _i < setup.bodyShapes.length; _i++>> <label><<= setup.bodyShapes[_i].toUpperFirst()>> <<radiobutton "$player.bodyshape" setup.bodyShapes[_i] autocheck>></label> <<= _i lt setup.bodyShapes.length - 1 ? "|" : "">> <</for>> <</capture>> <br> <span class="small-description">Purely cosmetic. You may change this later in the mirror menu.</span> </div> <div class="settingsToggleItem"> <span class="gold">Breast Size:</span><br> <label>Flat <<radiobutton "$player.breastsize" 0 autocheck>></label> | <label>Budding <<radiobutton "$player.breastsize" 1 autocheck>></label> | <label>Tiny <<radiobutton "$player.breastsize" 2 autocheck>></label> | <label>Small <<radiobutton "$player.breastsize" 3 autocheck>></label> | <label>Pert <<radiobutton "$player.breastsize" 4 autocheck>></label> </div> <div class="settingsToggleItem"> <span class="gold">Ass Size:</span><br> <label>Slender <<radiobutton "$player.bottomsize" 0 autocheck>></label> | <label>Slim <<radiobutton "$player.bottomsize" 1 autocheck>></label> | <label>Modest <<radiobutton "$player.bottomsize" 2 autocheck>></label> | <label>Cushioned <<radiobutton "$player.bottomsize" 3 autocheck>></label> </div> <<if $player.sex isnot "f">> <div class="settingsToggleItem"> <span data-target="player.sex" data-disabledif="V.player.sex==='f'"> <span class="gold">Penis Size:</span><br> <label>Tiny <<radiobutton "$player.penissize" 0 autocheck>></label> | <label>Small <<radiobutton "$player.penissize" 1 autocheck>></label> | <label>Normal <<radiobutton "$player.penissize" 2 autocheck>></label> </span> </div> <</if>> </div> <hr> <div class="settingsGrid"> <div class="settingsHeader"> Head </div> <<if setup.faceStyleOptions.length gt 1>> <div id="settingsFaceStyle" class="settingsToggleItem"> <span class="gold">Face style:</span><br> <<for _styleName, _styleValue range setup.faceStyleOptions>> <<capture _styleName, _styleValue>> <span @id="'link-'+_styleValue.replace(/ /g,'-')" @class="(_styleValue is $facestyle ? 'selected' : '')"> <<silently>><<set _text_output to _styleName>><<capitalise>><</silently>> <<link _text_output>> <<removeclass `'#link-'+$facestyle.replace(/ /g,'-')` "selected">> <<set $facestyle to _styleValue>> <<set $facevariant to "default">> <<addclass `'#link-'+$facestyle.replace(/ /g,'-')` "selected">> <<replace "#settingsFaceVariantRadios">><<faceVariantSettings>><</replace>> <<updatesidebarimg true>> <</link>> | </span> <</capture>> <</for>> </div> <</if>> <div id="settingsFaceVariants" @class="setup.faceStyleOptions.length gt 1 ? 'settingsToggleItem' : 'settingsToggleItemWide'"> <span class="gold">Demeanour:</span> <br> <div id="settingsFaceVariantRadios"> <<faceVariantSettings>> <br> <span class="small-description">Purely cosmetic. You may change this later in the mirror menu.</span> </div> </div> <div class="settingsToggleItemWide"> <span class="gold">Natural Eye Colour:</span><br> <label><span class="purple">Purple</span> <<radiobutton "$eyeselect" "purple" autocheck>></label> | <label><span class="blue">Dark blue</span> <<radiobutton "$eyeselect" "dark blue" autocheck>></label> | <label><span class="lblue">Light blue</span> <<radiobutton "$eyeselect" "light blue" autocheck>></label> | <label><span class="tangerine">Amber</span> <<radiobutton "$eyeselect" "amber" autocheck>></label> | <label><span class="brown">Hazel</span> <<radiobutton "$eyeselect" "hazel" autocheck>></label> | <label><span class="green">Green</span> <<radiobutton "$eyeselect" "green" autocheck>></label> | <label><span class="lime-green">Lime green</span> <<radiobutton "$eyeselect" "lime green" autocheck>></label> | <label><span class="red">Red</span> <<radiobutton "$eyeselect" "red" autocheck>></label> | <label><span class="pink">Pink</span> <<radiobutton "$eyeselect" "pink" autocheck>></label> | <label><span class="grey">Grey</span> <<radiobutton "$eyeselect" "grey" autocheck>></label> | <label><span class="light-grey">Light grey</span> <<radiobutton "$eyeselect" "light grey" autocheck>></label> | <label><span>Random</span> <<radiobutton "$eyeselect" "random" autocheck>></label> </div> <div class="settingsToggleItemWide"> <span class="gold">Natural Hair Colour:</span><br> <label><span class="red">Red</span> <<radiobutton "$hairselect" "red" autocheck>></label> | <label><span class="black">Jet black</span> <<radiobutton "$hairselect" "jetblack" autocheck>></label> | <label><span class="black">Black</span> <<radiobutton "$hairselect" "black" autocheck>></label> | <label><span class="brown">Brown</span> <<radiobutton "$hairselect" "brown" autocheck>></label> | <label><span class="softbrown">Soft brown</span> <<radiobutton "$hairselect" "softbrown" autocheck>></label> | <label><span class="lightbrown">Light brown</span> <<radiobutton "$hairselect" "lightbrown" autocheck>></label> | <label><span class="burntorange">Burnt orange</span> <<radiobutton "$hairselect" "burntorange" autocheck>></label> | <label><span class="strawberry">Strawberry blond</span> <<radiobutton "$hairselect" "strawberryblond" autocheck>></label> | <label><span class="tangerine">Ginger</span> <<radiobutton "$hairselect" "ginger" autocheck>></label> | <label><span class="gold">Blond</span> <<radiobutton "$hairselect" "blond" autocheck>></label> | <label><span class="softblond">Soft blond</span> <<radiobutton "$hairselect" "softblond" autocheck>></label> | <label><span class="platinum">Platinum blond</span> <<radiobutton "$hairselect" "platinumblond" autocheck>></label> | <label><span class="ashy">Ashy blond</span> <<radiobutton "$hairselect" "ashyblond" autocheck>></label> | <label><span class="white">White</span> <<radiobutton "$hairselect" "white" autocheck>></label> | <label><span class="snowwhite">Snow white</span> <<radiobutton "$hairselect" "snowwhite" autocheck>></label> | <label><span>Random</span> <<radiobutton "$hairselect" "random" autocheck>></label> </div> <div class="settingsToggleItem"> <span class="gold">Hair Length:</span><br> <label>Ear <<radiobutton "$hairlength" 0 autocheck>></label> | <label>Neck <<radiobutton "$hairlength" 200 autocheck>></label> | <label>Chest <<radiobutton "$hairlength" 400 autocheck>></label> </div> <div class="settingsToggleItem"> <span class="gold">Freckles:</span><br> <label>Yes <<radiobutton "$player.freckles" true autocheck>></label> | <label>No <<radiobutton "$player.freckles" false autocheck>></label> | <label>Random <<radiobutton "$player.freckles" "random" autocheck>></label> </div> </div> <hr> <div class="settingsGrid"> <<set _skinTone to "">> <<set _skinShade to "light">> <div class="settingsHeader"> Skin Colour </div> <div class="settingsToggleItem"> <span class="gold">Skin Tone:</span><br> <label>Neutral <<radiovar "_skinTone" "">><<skinColourVariableCombine>><</radiovar>></label> | <label>Warm <<radiovar "_skinTone" "r">><<skinColourVariableCombine>><</radiovar>></label> | <label>Golden <<radiovar "_skinTone" "g">><<skinColourVariableCombine>><</radiovar>></label> | <label>Olive <<radiovar "_skinTone" "y">><<skinColourVariableCombine>><</radiovar>></label> | <label>Cool <<radiovar "_skinTone" "b">><<skinColourVariableCombine>><</radiovar>></label> <br> <span class="gold">Skin Shade:</span><br> <label>Light <<radiovar "_skinShade" "light">><<skinColourVariableCombine>><</radiovar>></label> | <label>Medium <<radiovar "_skinShade" "medium">><<skinColourVariableCombine>><</radiovar>></label> | <label>Dark <<radiovar "_skinShade" "dark">><<skinColourVariableCombine>><</radiovar>></label> | <label>Gyaru <<radiovar "_skinShade" "gyaru">><<skinColourVariableCombine>><</radiovar>></label> </div> <div class="settingsToggleItem"> <div class="numberslider-inline"> <label><span class="gold">Initial Tan:</span> <<numberslider "_tan" _tan 0 100 1 { onInputChange: value => { Skin.color.setTan(value); Wikifier.wikifyEval("<<startingPlayerImageUpdate>>"); }, value: v => `${v}%` }>> </label> </div> </div> </div> <hr> <<sizeLimitsSettings>> <hr> <div class="settingsGrid"> <div class="settingsHeader"> Sensitivity </div> <div class="settingsToggleItem"> <span class="gold">Mouth:</span><br> <label>Normal <<radiobutton "$mouthsensitivity" 1 autocheck>></label> | <label><span class="pink">Sensitive</span> <<radiobutton "$mouthsensitivity" 2 autocheck>></label> | <label><span class="red">Very sensitive</span> <<radiobutton "$mouthsensitivity" 3 autocheck>></label> </div> <div class="settingsToggleItem"> <span class="gold">Chest:</span><br> <label>Normal <<radiobutton "$breastsensitivity" 1 autocheck>></label> | <label><span class="pink">Sensitive</span> <<radiobutton "$breastsensitivity" 2 autocheck>></label> | <label><span class="red">Very sensitive</span> <<radiobutton "$breastsensitivity" 3 autocheck>></label> </div> <div class="settingsToggleItem"> <span class="gold">Ass:</span><br> <label>Normal <<radiobutton "$bottomsensitivity" 1 autocheck>></label> | <label><span class="pink">Sensitive</span> <<radiobutton "$bottomsensitivity" 2 autocheck>></label> | <label><span class="red">Very sensitive</span> <<radiobutton "$bottomsensitivity" 3 autocheck>></label> </div> <div class="settingsToggleItem"> <span class="gold">Genitals:</span><br> <label>Normal <<radiobutton "$genitalsensitivity" 1 autocheck>></label> | <label><span class="pink">Sensitive</span> <<radiobutton "$genitalsensitivity" 2 autocheck>></label> | <label><span class="red">Very sensitive</span> <<radiobutton "$genitalsensitivity" 3 autocheck>></label> </div> </div> <hr> <div class="settingsGrid"> <div class="settingsHeader"> Personality </div> <div class="settingsToggleItemWide"> <span class="gold">Randomise:</span> <br> <<link "Character traits">><<presets "randomize" "characterSettings" `randomizeSettings('characterTrait')`>><</link>> <mouse class="tooltip linkBlue">(?)<span>Randomises the player character's traits, including background, awareness, and general sensitivity. <i class="red">These traits cannot be changed after starting the game.</i></span></mouse> <br> </div> <div class="settingsToggleItemWide"> <span class="gold">Awareness:</span> <mouse class="tooltip linkBlue">(?)<span>Whether your character knows a thing or two about sex despite their lack of experience.</span></mouse> <br> <label>Innocent <<radiobutton "$awareselect" "innocent" autocheck>></label> | <label>Knowledgeable <<radiobutton "$awareselect" "knowledgeable" autocheck>></label> </div> <div class="settingsToggleItemWide"> <span class="gold">Background:</span><br> <label><span class="green">Waif</span> <<radiobutton "$background" "waif" autocheck>> - No special advantages or disadvantages. <i>Recommended for beginners.</i></label> <br> <label><span class="teal">Nerd</span> <<radiobutton "$background" "nerd" autocheck>> - Good at school. Picked on. <span class="red">(This will prevent the 'Unsocial Moth' feat from being earned)</span></label> <br> <label><span class="teal">Athlete</span> <<radiobutton "$background" "athlete" autocheck>> - Physically capable. Grades have suffered.</label> <br> <label><span class="teal">Delinquent</span> <<radiobutton "$background" "delinquent" autocheck>> - Your antics have made you popular with other students. Less so with the teachers.</label> <br> <label><span class="blue">Promiscuous</span> <<radiobutton "$background" "promiscuous" autocheck>> - You've experimented sexually.</label> <br> <label><span class="blue">Exhibitionist</span> <<radiobutton "$background" "exhibitionist" autocheck>> - You have an affinity for exposing yourself in public places.</label> <br> <label><span class="blue">Deviant</span> <<radiobutton "$background" "deviant" autocheck>> - You <i>really</i> like animals.</label> <br> <label><span class="lewd">Beautiful</span> <<radiobutton "$background" "beautiful" autocheck>> - You turn heads. <i>Not recommended for beginners.</i></label> <br> <<if $player.sex isnot "h">> <label><span class="lewd"><<= $player.gender isnot $player.sex ? `\"Crossdresser\"` : "Crossdresser">></span> <<radiobutton "$background" "crossdresser" autocheck>> - You've taken a liking to the clothing of the opposite sex. Stress decays faster when you look like a <<= $player.sex is "f" ? "boy" : "girl">>, but slower when you look like a <<pcSex>>.</label> <br> <</if>> <label><span class="lewd">Lustful</span> <<radiobutton "$background" "lustful" autocheck>> - Arousal increases over time and needs to be managed.</label> <br> <label><mouse class="tooltip"><span class="lewd">Dendrophile</span> <<radiobutton "$background" "plantlover" autocheck>> - Plants are everything to you.<span class="green">You're addicted to nectar. You're more vulnerable to aphrodisiacs and alcohol. Plantpeople and plant-based tentacles no longer require hallucinations to encounter. You get a bonus to Tending as your Trauma increases.</span></mouse> </label> </div> </div> <hr> <<quickStart>> </div> <br> <<link "<span class='fa-icon fa-up-arrow'></span>Top of Page">> <<script>> document.body.scrollTop = 0; document.documentElement.scrollTop = 0; <</script>> <</link>> <</widget>> <<widget "featExplanation">> <<link "Hide explanation...">> <<replace #featExplanation>><</replace>> <<toggleclass '#explain' 'hidden'>> <</link>><br> If you choose not to import all feats earned across multiple save files, only the feats marked as unlocked in your <span class="gold">most recently loaded save</span> will carry over to your next playthrough. Keep this in mind if you are aiming for 100% completion! <br><br> <span class="green">Spending coins on feat boosters does not permanently use up your coins, and coins earned from a feat cannot be earned a second time.</span> Any spent coins will remain in your personal bank of coins and will be available the next time you start a new game. <br><br> <span class="red">Changing settings in specific ways may prevent you from earning some feats, and coins, in your current game.</span> Enabling cheats at any point will prevent you from earning feats for the remainder of your current playthrough. You will be warned if you are about to change any setting that does this. <br><br> Some feats display as earned as soon as you meet the requirements, while others won't trigger until the next in-game hour. Happy hunting! <</widget>> <<widget "featSettings">> <div class="solidBorderContainer settings-container"> <div class="settingsToggleIndent"> As you play through Degrees of Lewdity, you will obtain <span class="gold">feats</span> by completing different tasks. The more feats you earn, the more <span class="gold">VrelCoins</span> you will earn. When you start a new game, the coins associated with your most recently loaded save can be used to purchase <span class="gold">feat boosters</span>. These boosters grant you bonuses in your next game. <br><br> Feats are earned linearly over the course of a single playthrough. If you load an earlier save or switch to a different playthrough, <span class="red">you will lose the feat and its VrelCoins, unless you import all of your feats using the link below.</span> This will reset all feat boosters. <span id="explain"> <<link "Read more...">> <<replace #featExplanation>><<featExplanation>><</replace>> <<toggleclass '#explain' 'hidden'>> <</link>> </span> <span id="featExplanation"></span> </div> <div class="settingsToggleIndent"> <<link "Import all feats:">> <<replace #settingsStart>> <<loadAllFeats>> <</replace>> <</link>> <span class="green"> Checks for all feats earned across your local save files, combining your earned Vrelcoins and unlocked feat boosters.</span> </div> <<if $feats.allSaves.points isnot undefined or $feats.allSaves.points isnot 0>> <div class="settingsToggleIndent"> <<link "Reset All Feats:">> <<set $feats to { "locked":false, "soft":false, "allSaves":{}, "currentSave":{}, "filter":"All" }>> <<script>> localStorage.removeItem("dolFeats"); <</script>> <<setupFeats true>> <<displaySettings "featSettings">> <</link>> <span class="red"> This will remove all feats that have been earned so far, meaning you will have to collect them again.</span> </div> <</if>> <hr> <<set _upgradeNames to Object.keys($featsBoosts.upgrades)>> <<set _visibleUpgradeNames to []>> <<set _visibleUpgradeIDs to []>> <<for _i to 0; _i lt _upgradeNames.length; _i++>> <<if $featsBoosts.upgradeDetails[_upgradeNames[_i]].max>> <<set _visibleUpgradeNames.push($featsBoosts.name[_upgradeNames[_i]])>> <<set _visibleUpgradeIDs.push(clone(_i))>> <<else>> <<set _visibleUpgradeNames.push("?????")>> <<set _visibleUpgradeIDs.push(clone(_i))>> <</if>> <</for>> <div id="featsPointsMenu"> <<featsPointsMenu>> </div> <<featsPointsMenuReset>> </div> <</widget>> <<widget "gameMode">> <span class="gold">Game Mode:</span> <br> <label><mouse class="tooltip green">Normal mode<span>Survive in a dangerous world.</span></mouse> <<if ($ironmanmode is true and $gamemode is "hard") and $passage != "Start">> <input id="radiobutton-gamemode-8" name="radiobutton-gamemode" type="radio" tabindex="0" class="macro-radiobutton" disabled> <<else>> <<radiobutton "$gamemode" "normal" autocheck>> <</if>> </label> <<ind>> <label><mouse class = "tooltip blue">Soft mode<span>For those who prefer a light-hearted lewd adventure, though the game is still dark in places.<br><i class="red normal">This is an experimental feature and contains gamebreaking bugs. It will be changed or removed in the future. Leaving the settings with soft mode will prevent you from earning feats until it is set to normal mode. Doing this will permanently prevent some feats from being earned in this save.</i></span></mouse> <<if ($ironmanmode is true and ["hard","normal"].includes($gamemode) is true) and $passage != "Start">> <input id="radiobutton-gamemode-8" name="radiobutton-gamemode" type="radio" tabindex="0" class="macro-radiobutton" disabled> <<else>> <<radiobutton "$gamemode" "soft" autocheck>> <</if>> </label> <<ind>> <<if $intro is 1 or $gamemode is "hard">> <label><mouse class = "tooltip purple">Hard mode<span>Removes lewd stat decay (promiscuity, exhibitionism, deviancy), making trauma and control increasingly difficult to manage. Can only be chosen at the game's start, and being incarcerated in the asylum will put you in normal mode. <br><i class="red normal">This is an experimental feature and will be changed or removed in the future.</i></span></mouse> <<if $ironmanmode is true and $passage != "Start">> <input id="radiobutton-gamemode-8" name="radiobutton-gamemode" type="radio" tabindex="0" class="macro-radiobutton" disabled> <<else>> <<radiobutton "$gamemode" "hard" autocheck>> <</if>> </label> <</if>> <br> <<if $ironmanmode and $passage isnot "Start">> <span class="red">Cheats cannot be enabled during Ironman mode.</span> <<else>> <<if $passage is "Start">> <label data-target="settingscheatsenabledtoggle" data-disabledif="V.settings.cheatsEnabledToggle===true"> <input id="checkbox-ironmanmode" onclick="IronMan.UI.checkBox()" name="checkbox-ironmanmode" type="checkbox" tabindex="0" class="macro-checkbox"> <mouse class="tooltip white">Ironman mode<span>To prevent save-scumming and other practices in that spirit<br><br>You can save, you will then be led to Start Menu. You can then load that save, but then it will delete itself.<br><br>There will also be an additional save every 4-8 in-game days just in case you lose the other save.</span></mouse>&nbsp;<i class="ironman-clarify">(Cannot be unset after game start)</i> <<run IronMan.UI.checkBox(`init`)>> </label> <br> <</if>> <label data-target="ironmanmode" data-disabledif="V.ironmanmode===true"> <<checkbox "$settings.cheatsEnabledToggle" false true autocheck>> <mouse class="tooltip red">Cheat mode<span>Leaving the settings with cheats enabled will prevent you from earning feats in a save.</span></mouse>&nbsp;<i class="ironman-clarify">(Button for cheats shows in sidebar)</i> </label> <</if>> <</widget>> <<widget "gameSettings">> <div class="solidBorderContainer settings-container"> <div class="settingsGrid"> <div class="settingsToggleItem"> <span class="gold">Randomise:</span><br> <<link "Gameplay">><<presets "randomize" "gameSettings" `randomizeSettings('gameplay')`>><</link>> <mouse class="tooltip linkBlue">(?)<span>Randomises all settings related to general gameplay, including encounter rate, clothing prices, crop yield, and Bailey's rent.</span></mouse> | <<link "Encounters">><<presets "randomize" "gameSettings" `randomizeSettings('encounter')`>><</link>> <mouse class="tooltip linkBlue">(?)<span>Randomises all settings related to generic NPCs.</span></mouse> <br> </div> <div class="settingsToggleItem"> <span class="gold">Multiple Wardrobes:</span> <mouse class="tooltip linkBlue">(?)<span class="red">This is an experimental feature and will be changed or removed in the future. While you may change this during gameplay, it's not recommended as disabling will remove access to clothing and enabling it may leave you stuck with your only option wearing a towel.</span></mouse> <br> <label><<radiobutton "$settings.multipleWardrobes" false autocheck>> Single shared wardrobe only</label> | <label><<radiobutton "$settings.multipleWardrobes" "isolated" autocheck>> Isolated areas will have their own wardrobe</label> <br> <<if $debug is 1>> <!--This setting will not be ready on initial release--> <label><<radiobutton "$settings.multipleWardrobes" "all" autocheck>> Enable for all wardrobes</label> <br> <</if>> </div> <div class="settingsToggleItem"> <span class="gold">Skill Check Display:</span> <mouse class = "tooltip linkBlue">(?)<span>As you interact with the game, some actions will only succeed if a skill is above a certain threshold. You may opt to see what skill is required before taking an action, as well as your chance of succeeding at that action.</span></mouse> <br> <label>Show exact chance of success <<radiobutton "$settings.skillCheckStyle" "percentage" autocheck>></label> | <label>Show general chance of success <<radiobutton "$settings.skillCheckStyle" "words" autocheck>></label> | <label>Show only skill name <<radiobutton "$settings.skillCheckStyle" "skillname" autocheck>></label> <br> <label> <<checkbox "$settings.blindStatsEnabled" false true autocheck>> <mouse class = "tooltip linkBlue">Enable blind stats<span>Playing with blind stats enabled means that you'll receive no indication when your stats change, what skills are required to succeed in certain events, or be alerted to situational dangers. Survive on your intuition. <i class="red normal"><br>Not recommended for beginners. This is an experimental feature and may be changed or removed in the future.</i></span></mouse> </label> <br> </div> <div class="settingsToggleItem"> <span class="gold">Encounter Rate:</span> <div class="small-description">Default is 1.0. Multiplies the effect of allure on encounter chance.</div> <div class="small-description"><span class="red">Setting this below 1 will permanently prevent you from earning some feats in this save and prevent you from earning others until it is increased to at least 1.</span></div> <div id="sliderAllureMode"> <<numberslider "$settings.allureModifier" $settings.allureModifier 0.2 2 0.1 $ironmanmode>> </div> </div> </div> </div> <hr> <div id="startTabSettings"> <<allSettings>> </div> <div id="subsectionDiv"> <<humanSettings>> </div> <br> <<link "<span class='fa-icon fa-up-arrow'></span>Top of Page">> <<script>> document.body.scrollTop = 0; document.documentElement.scrollTop = 0; <</script>> <</link>> <</widget>> <<widget "subsectionSettingsTabButton">> <div @class="_subsection is _args[1] ? 'gold buttonSettingsSelected' : 'buttonSettings'" > <<button _args[0]>> <<if _subsection isnot _args[1]>> <<set _subsection to _args[1]>> <<displaySubsection `_args[1] + "Settings"`>> <<replace #startTabSettings>><<allSettings>><</replace>> <</if>> <</button>> </div> <</widget>> <<widget "allSettings">> <<if _subsection is undefined>><<set _subsection to "human">><</if>> <div id="containerStart" class="containerWrap"> <div id="settingsHuman"> <<subsectionSettingsTabButton "General NPC Settings" "human">> </div> <div id="settingsNPC"> <<subsectionSettingsTabButton "Named NPC Settings" "npc">> </div> <div id="settingsBeast"> <<subsectionSettingsTabButton "Beast Settings" "beast">> </div> <div id="settingsFetish"> <<subsectionSettingsTabButton "Fetish Settings" "fetish">> </div> <div id="settingsPrice"> <<subsectionSettingsTabButton "Cost and Gain Settings" "price">> </div> <div id="settingsPregnancy"> <<subsectionSettingsTabButton "Pregnancy Settings" "pregnancy">> </div> <<if $passage isnot "Start">> <div id="settingsSizeLimits"> <<subsectionSettingsTabButton "Body Part Size Limits" "sizeLimits">> </div> <</if>> </div> <</widget>> <<widget "genericGenders">> <div class="numberslider-inline maleChance"> <<numberslider "$settings.maleChance" $settings.maleChance 0 100 1 { value: v => { switch (v) { case 0: return `<span class="small-description"><span class='gold inline-colour'>All</span> NPCs will be <span class='pink inline-colour'>female</span>.</span>`; case 50: return `<span class="small-description">NPCs will be <span class='gold inline-colour'>evenly</span> split between <span class='blue inline-colour'>male</span> and <span class='pink inline-colour'>female</span> genders.</span>`; case 100: return `<span class="small-description"><span class='gold inline-colour'>All</span> NPCs will be <span class='blue inline-colour'>male</span>.</span>`; default: return v > 50 ? `<span class="small-description"><span class='gold inline-colour'>${v}%</span> of NPCs will be <span class='blue inline-colour'>male</span>.</span>` : `<span class="small-description"><span class='gold inline-colour'>${100 - v}%</span> of NPCs will be <span class='pink inline-colour'>female</span>.</span>` } }, }>> </div> <</widget>> <<widget "beastGenders">> <<set _beasts to $settings.monsterChance is 100 ? "monster people" : "beasts">> <div class="numberslider-inline beastmalechance"> <<numberslider "$settings.beastMaleChance" $settings.beastMaleChance 0 100 1 { value: v => { const beasts = V.settings.monsterChance === 100 ? "monster people" : "beasts"; const Beasts = beasts.charAt(0).toUpperCase() + beasts.slice(1); switch (v) { case 0: return `<span class="small-description"><span class='gold inline-colour'>All</span> ${beasts} will be <span class='pink inline-colour'>female</span>.</span>`; case 50: return `<span class="small-description">${Beasts} will be <span class='gold inline-colour'>evenly</span> split between <span class='blue inline-colour'>male</span> and <span class='pink inline-colour'>female</span> genders.</span>`; case 100: return `<span class="small-description"><span class='gold inline-colour'>All</span> ${beasts} will be <span class='blue inline-colour'>male</span>.</span>`; default: return v > 50 ? `<span class="small-description"><span class='gold inline-colour'>${v}%</span> of ${beasts} will be <span class='blue inline-colour'>male</span>.</span>` : `<span class="small-description"><span class='gold inline-colour'>${100 - v}%</span> of ${beasts} will be <span class='pink inline-colour'>female</span>.</span>` } }, }>> </div> <</widget>> <<widget "monsterSettings">> <div class="numberslider-inline"> <span class="gold">Monster People Chance:</span> <<numberslider "$settings.monsterChance" $settings.monsterChance 0 100 1 { value: v => { switch (v) { case 0: return `<span class="small-description">Beasts will <span class='gold inline-colour'>never</span> appear as monster people, unless allowed while hallucinating.</span>`; case 50: return `<span class="small-description"><span class='gold inline-colour'>Half</span> of all beasts will be replaced by monster people.</span>`; case 100: return `<span class="small-description">Beasts will <span class='gold inline-colour'>always</span> be monster people.</span>`; default: return `<span class="small-description"><span class='gold inline-colour'>${v}%</span> of beasts will be replaced by monster people.</span>` } }, }>> </div> <label> <<checkbox "$settings.monsterHallucinationsOnly" false true autocheck>> Monster people can only appear during hallucinations </label> <</widget>> <<widget "npcAttractionSettings">> <div id="simpleGenders" @class="(V.settings.maleChanceSplit === true ? ' hidden' : '')"> <span class="gold">Generic NPC Genders:</span> <<genericGenders>> </div> <div id="splitGenders" @class="(V.settings.maleChanceSplit === false ? ' hidden' : '')"> <<maleChanceSplitControls>> </div> <span id="humanSplitByFull"><<humanSplitByFull>></span> <</widget>> <<widget "beastAttractionSettings">> <div id="simpleBeastGenders" @class="(V.settings.beastMaleChanceSplit === true ? ' hidden' : '')"> <span class="gold"><<= $settings.monsterChance is 100 ? "Monster People" : "Beast">> Genders:</span> <<beastGenders>> </div> <div id="splitBeastGenders" @class="(V.settings.beastMaleChanceSplit === false ? ' hidden' : '')"> <<beastMaleChanceSplitControls>> </div> <span id="beastSplitByFull"><<beastSplitByFull>></span> <</widget>> <<widget "humanSettings">> <div class="solidBorderContainer settings-container"> <div class="settingsGrid"> <div class="settingsHeader"> NPC Genders </div> <div class="settingsToggleItem"> <<npcAttractionSettings>> </div> <div class="settingsToggleItem"> <div class="numberslider-inline malevictimchance"> <span class="gold">Other Victims: <mouse class="tooltip linkBlue">(?)<span>Adjust the genders of NPCs you encounter who have been forced into compromising or abusive situations.</span></mouse> </span> <<numberslider "$settings.maleVictimChance" $settings.maleVictimChance 0 100 1 { value: v => { switch (v) { case 0: return `<span class="small-description"><span class='gold inline-colour'>All</span> other victims you encounter will be <span class='pink inline-colour'>female</span>.</span>`; case 50: return `<span class="small-description">Other victims you encounter will be <span class='gold inline-colour'>evenly</span> split between <span class='blue inline-colour'>male</span> and <span class='pink inline-colour'>female</span> genders.</span>`; case 100: return `<span class="small-description"><span class='gold inline-colour'>All</span> other victims you encounter will be <span class='blue inline-colour'>male</span>.</span>`; default: return v > 50 ? `<span class="small-description"><span class='gold inline-colour'>${v}%</span> of other victims you encounter will be <span class='blue inline-colour'>male</span>.</span>` : `<span class="small-description"><span class='gold inline-colour'>${100 - v}%</span> of other victims you encounter will be <span class='pink inline-colour'>female</span>.</span>` } }, }>> </div> </div> </div> <hr> <div class="settingsGrid"> <div class="settingsHeader"> NPC Body Parts </div> <div class="settingsToggleItem numberslider-inline"> <span class="gold">Average Female NPC Breast Size: <mouse class="tooltip linkBlue">(?)<span>A bigger number means bigger breasts in the world. At 12 everyone will have enormous breasts. At -12 everyone will have flat chests. Defaults to 0, which will result in a broad range of sizes.</span></mouse> </span> <<numberslider "$settings.breastModifier" $settings.breastModifier -12 12 1>> </div> <div class="settingsToggleItem numberslider-inline"> <span class="gold">Average NPC Penis Size: <mouse class="tooltip linkBlue">(?)<span>A bigger number means bigger penises in the world. At 8 everyone will have enormous penises. At -8 everyone will have tiny penises. Defaults to 0, which will result in a broad range of sizes.</span></mouse> </span> <<numberslider "$settings.penisModifier" $settings.penisModifier -8 8 1>> </div> <div class="settingsToggleItem numberslider-inline"> <span class="gold">Percentage of Women with Penises:</span> <<numberslider "$settings.femaleNPCPenisChance" $settings.femaleNPCPenisChance 0 100 1>> </div> <div class="settingsToggleItem numberslider-inline"> <span class="gold">Percentage of Men with Vaginas:</span> <<numberslider "$settings.maleNPCVaginaChance" $settings.maleNPCVaginaChance 0 100 1>> </div> <div class="settingsToggleItemWide numberslider-inline"> <span class="gold">Percentage of Women with Strap-ons:</span> <<numberslider "$settings.straponChance" $settings.straponChance 0 100 1>> </div> </div> <hr> <div class="settingsGrid"> <div class="settingsHeader"> NPC Characteristics </div> <div class="settingsToggleItem numberslider-inline"> <span class="gold">Likelihood of Virginity in Young Adult NPCs: <mouse class="tooltip linkBlue">(?)<span>Does not affect named NPCs. Each virginity is generated separately, meaning that many combinations are possible.</span></mouse> </span> <<numberslider "$settings.npcVirginChanceStudent" $settings.npcVirginChanceStudent 0 100 1>> </div> <div class="settingsToggleItem numberslider-inline"> <span class="gold">Likelihood of Virginity in Adult NPCs: <mouse class="tooltip linkBlue">(?)<span>Does not affect named NPCs. Each virginity is generated separately, meaning that many combinations are possible.</span></mouse> </span> <<numberslider "$settings.npcVirginChanceAdult" $settings.npcVirginChanceAdult 0 100 1>> </div> <div class="settingsToggleItemWide numberslider-inline"> <span class="gold">Likelihood of NPCs with Dark Skin:</span> <<numberslider "$settings.darkSkinChance" $settings.darkSkinChance 0 100 1>> </div> </div> </div> <</widget>> <<widget "maleChanceSplitControls">> <div class="numberslider-inline maleChanceMale"> <span class="gold">Generic NPCs Attracted to Men <mouse class="tooltip linkBlue">(?)<span>Affects the number of male/male NPC couples seen around town. <i class="blue none">If you appear to be male, the NPCs who are attracted to you will follow this pattern.</i></span></mouse></span> <div class="numberSliderCompare"> <<numberslider "$settings.maleChanceMale" $settings.maleChanceMale 0 100 1 { value: v => { switch (v) { case 0: return `<span class="small-description"><span class='gold inline-colour'>All</span> <span class='pink inline-colour'>women</span> and <span class='gold inline-colour'>no</span> <span class='blue inline-colour'>men</span> will be <span class='blue inline-colour'>attracted to men</span>.</span>`; case 100: return `<span class="small-description"><span class='gold inline-colour'>No</span> <span class='pink inline-colour'>women</span> and <span class='gold inline-colour'>all</span> <span class='blue inline-colour'>men</span> will be <span class='blue inline-colour'>attracted to men</span>.</span>`; default: return `<span class="small-description"><span class='gold inline-colour'>${100 - v}%</span> of <span class='pink inline-colour'>women</span> and <span class='gold inline-colour'>${v}%</span> of <span class='blue inline-colour'>men</span> will be <span class='blue inline-colour'>attracted to men</span>.</span>`; } }, }>> </div> </div> <div class="numberslider-inline maleChanceFemale"> <span class="gold">Generic NPCs Attracted to Women: <mouse class="tooltip linkBlue">(?)<span>Affects the number of female/female couples seen around town. <i class="pink none">If you appear to be female, the NPCs who are attracted to you will follow this pattern.</i></span></mouse></span> <div class="numberSliderCompare"> <<numberslider "$settings.maleChanceFemale" $settings.maleChanceFemale 0 100 1 { value: v => { switch (v) { case 0: return `<span class="small-description"><span class='gold inline-colour'>All</span> <span class='pink inline-colour'>women</span> and <span class='gold inline-colour'>no</span> <span class='blue inline-colour'>men</span> will be <span class='pink inline-colour'>attracted to women</span>.</span>`; case 100: return `<span class="small-description"><span class='gold inline-colour'>No</span> <span class='pink inline-colour'>women</span> and <span class='gold inline-colour'>all</span> <span class='blue inline-colour'>men</span> will be <span class='pink inline-colour'>attracted to women</span>.</span>`; default: return `<span class="small-description"><span class='gold inline-colour'>${100 - v}%</span> of <span class='pink inline-colour'>women</span> and <span class='gold inline-colour'>${v}%</span> of <span class='blue inline-colour'>men</span> will be <span class='pink inline-colour'>attracted to women</span>.</span>`; } }, }>> </div> </div> <</widget>> <<widget "beastSettings">> <div class="solidBorderContainer settings-container"> <div class="settingsGrid"> <div class="settingsHeader"> <<= $settings.monsterChance is 100 ? "Monster People" : "Beast">> Preferences </div> <div class="settingsToggleItem"> <<beastAttractionSettings>> </div> <div class="settingsToggleItem"> <<monsterSettings>> </div> </div> <hr> <div class="settingsToggleIndent"> <span class="red">Disabling bestiality will still allow lewd events with monster girls and boys.</span> </div> <div class="settingsGrid"> <div class="settingsHeader"> Beast Toggles </div> <div class="settingsToggleButton" class="link-internal macro-button"> <<run beastTogglesCheck()>> <<button `(_anyBeastOn ? "Disable" : "Enable") + " all beast toggles"`>> <<script>> let val = T.anyBeastOn ? false : true; T.beastVars.forEach(x => V.settings[x] = val); <</script>> <<displaySubsection "beastSettings">> <</button>> </div> <div class="settingsToggleItem"> <label> <<checkbox "$settings.bestialityEnabled" false true autocheck>> Enable bestiality </label> </div> <div class="settingsToggleItem"> <label> <<checkbox "$settings.swarmsEnabled" false true autocheck>> Enable swarms (Eels, etc) </label> </div> <div class="settingsToggleItem"> <label> <<checkbox "$settings.parasitesEnabled" false true autocheck>> Enable parasites </label> </div> <div class="settingsToggleItem"> <label> <<checkbox "$settings.tentaclesEnabled" false true autocheck>> Enable tentacles </label> </div> <div class="settingsToggleItem"> <label> <<checkbox "$settings.slimesEnabled" false true autocheck>> Enable slimes </label> </div> <div class="settingsToggleItem"> <label> <<checkbox "$settings.voreEnabled" false true autocheck>> Enable soft monster vore </label> </div> <div class="settingsToggleItem"> <label> <<checkbox "$settings.spidersEnabled" false true autocheck>> Enable spiders </label> </div> <div class="settingsToggleItem"> <label> <<checkbox "$settings.slugsEnabled" false true autocheck>> Enable slugs </label> </div> <div class="settingsToggleItem"> <label> <<checkbox "$settings.waspsEnabled" false true autocheck>> Enable wasps </label> </div> <div class="settingsToggleItem"> <label> <<checkbox "$settings.beesEnabled" false true autocheck>> Enable bees </label> </div> <div class="settingsToggleItem"> <label> <<checkbox "$settings.lurkersEnabled" false true autocheck>> Enable lurkers </label> </div> <div class="settingsToggleItem"> <label> <<checkbox "$settings.horsesEnabled" false true autocheck>> Enable <<= $settings.monsterChance is 100 ? "centaurs" : $settings.monsterChance is 0 ? "horses" : "horses and centaurs">> </label> </div> <div class="settingsToggleItem"> <label> <<checkbox "$settings.plantsEnabled" false true autocheck>> Enable plantpeople </label> </div> </div> </div> <</widget>> <<widget "beastMaleChanceSplitControls">> <div class="numberslider-inline beastMaleChanceMale"> <span class="gold">Beasts Attracted to Men <mouse class="tooltip linkBlue">(?)<span>Affects the number of male/male beast pairings seen. <i class="blue none">If you appear to be male, the NPCs who are attracted to you will follow this pattern.</i></span></mouse></span> <div class="numberSliderCompare"> <<numberslider "$settings.beastMaleChanceMale" $settings.beastMaleChanceMale 0 100 1 { value: v => { switch (v) { case 0: return `<span class="small-description"><span class='gold inline-colour'>All</span> <span class='pink inline-colour'>female beasts</span> and <span class='gold inline-colour'>no</span> <span class='blue inline-colour'>male beasts</span> will be <span class='blue inline-colour'>attracted to men</span>.</span>`; case 100: return `<span class="small-description"><span class='gold inline-colour'>No</span> <span class='pink inline-colour'>female beasts</span> and <span class='gold inline-colour'>all</span> <span class='blue inline-colour'>male beasts</span> will be <span class='blue inline-colour'>attracted to men</span>.</span>`; default: return `<span class="small-description"><span class='gold inline-colour'>${100 - v}%</span> of <span class='pink inline-colour'>female beasts</span> and <span class='gold inline-colour'>${v}%</span> of <span class='blue inline-colour'>male beasts</span> will be <span class='blue inline-colour'>attracted to men</span>.</span>`; } }, }>> </div> </div> <div class="numberslider-inline beastMaleChanceFemale"> <span class="gold">Beasts Attracted to Women <mouse class="tooltip linkBlue">(?)<span>Affects the number of female/female beast pairings seen. <i class="pink none">If you appear to be female, the NPCs who are attracted to you will follow this pattern.</i></span></mouse></span> <div class="numberSliderCompare"> <<numberslider "$settings.beastMaleChanceFemale" $settings.beastMaleChanceFemale 0 100 1 { value: v => { switch (v) { case 0: return `<span class="small-description"><span class='gold inline-colour'>All</span> <span class='pink inline-colour'>female beasts</span> and <span class='gold inline-colour'>no</span> <span class='blue inline-colour'>male beasts</span> will be <span class='pink inline-colour'>attracted to women</span>.</span>`; case 100: return `<span class="small-description"><span class='gold inline-colour'>No</span> <span class='pink inline-colour'>female beasts</span> and <span class='gold inline-colour'>all</span> <span class='blue inline-colour'>male beasts</span> will be <span class='pink inline-colour'>attracted to women</span>.</span>`; default: return `<span class="small-description"><span class='gold inline-colour'>${100 - v}%</span> of <span class='pink inline-colour'>female beasts</span> and <span class='gold inline-colour'>${v}%</span> of <span class='blue inline-colour'>male beasts</span> will be <span class='pink inline-colour'>attracted to women</span>.</span>`; } }, }>> </div> </div> <</widget>> <<widget "fetishSettings">> <div class="solidBorderContainer settings-container"> <div class="settingsGrid"> <div class="settingsToggleItem"> <label> <<checkbox "$settings.analEnabled" false true autocheck>> Enable anal </label> </div> <div class="settingsToggleItem" role="group" aria-labelledby="settingsAnalingusHead"> <span id="settingsAnalingusHead">Analingus:</span> <label> <<checkbox "$settings.analingusGivingEnabled" false true autocheck>> Giving </label> <label> <<checkbox "$settings.analingusReceivingEnabled" false true autocheck>> Receiving </label> </div> <div class="settingsToggleItem" role="group" aria-labelledby="settingsDoubleHead"> <span id="settingsAnalingusHead">Double penetration:</span> <label> <<checkbox "$settings.vaginalDoubleEnabled" false true autocheck>> Vaginal </label> <label data-target="settingsanalEnabled" data-disabledif="V.settings.analEnabled===false"> <<checkbox "$settings.analDoubleEnabled" false true autocheck>> Anal </label> <mouse class="tooltip linkBlue">(?)<span>Note that double anal requires anal to be enabled. <br>"Double penetration" here means two phalluses in the same orifice of the player.</span></mouse> </div> <div class="settingsToggleItem"> <label> <<checkbox "$settings.pubicHairEnabled" false true autocheck>> Enable pubic hair growth </label> </div> <div class="settingsToggleItem" role="group"> Transformations: <label><<checkbox "$settings.transformAnimalEnabled" false true autocheck>> Animal</label> <label><<checkbox "$settings.transformDivineEnabled" false true autocheck>> Divine</label> <mouse class="tooltip linkBlue">(?)<span>You may have both one divine and one animal transformation at the same time.</span></mouse> </div> <div class="settingsToggleItem"> <label> <<checkbox "$settings.breastFeedingEnabled" false true autocheck>> Enable lactation </label> </div> <div class="settingsToggleItem"> <label> <<checkbox "$settings.watersportsEnabled" false true autocheck>> Enable watersports <mouse class="tooltip linkBlue">(?)<span>Watersports refer to sexual activities involving urinating.</span></mouse> </label> </div> <div class="settingsToggleItem"> <label> <<checkbox "$settings.footFetishEnabled" false true autocheck>> Enable feet <mouse class="tooltip linkBlue">(?)<span>Does not remove the player's feet.</span></mouse> </label> </div> <div class="settingsToggleItem"> <label> <<checkbox "$settings.facesitEnabled" false true autocheck>> Enable facesitting <mouse class="tooltip linkBlue">(?)<span>Does not prevent cunnilingus.</span></mouse> </label> </div> <div class="settingsToggleItem"> <label> <<checkbox "$settings.hypnosisEnabled" false true autocheck>> Enable hypnosis </label> </div> <div class="settingsToggleItem"> <label> <<checkbox "$settings.forcedCrossdressingEnabled" false true autocheck>> Enable forced crossdressing </label> </div> <div class="settingsToggleItem"> <label> <<checkbox "$settings.ruinedOrgasmEnabled" false true autocheck>> Enable ruined orgasms <mouse class="tooltip linkBlue">(?)<span>Ear slimes only.</span></mouse> </label> </div> <div class="settingsToggleItem" role="group" aria-labelledby="settingsToysHead"> <span id="settingsSexToysHead">Sex toys:</span> <br> <label> <<checkbox "$settings.toyDildoEnabled" false true autocheck>> Dildos </label> <label> <<checkbox "$settings.toyWhipEnabled" false true autocheck>> Whips </label> <label> <<checkbox "$settings.toyMultiplePenetrationEnabled" false true autocheck>> Multiple Penetration </label> /*<label> <<checkbox "$toyvirginitydisable" "t" "f" autocheck>> Take virginity </label>*/ <mouse class="tooltip linkBlue">(?)<span>"Dildos" are insertables such as dildos, anal beads, and the like. Does not disable strap-ons.<br>"Whips" include riding crops and flogs. Does not remove them from spanking scenes.<br>"Multiple Penetration" allows toys to penetrate during other forms of intercourse, e.g. penis and dildo in the vagina at the same time.</span></mouse> </div> <div class="settingsToggleItem"> Bodywriting: <<numberslider "$settings.bodyWritingLevel" $settings.bodyWritingLevel 0 3 1 { value: v => { switch (v) { case 0: return `<span class="small-description">NPCs may <span class='green inline-colour'>not</span> write on you.</span>`; case 1: return `<span class="small-description">NPCs may <span class='blue inline-colour'>ask</span> to write on you.</span>`; case 2: return `<span class="small-description">NPCs may <span class='purple inline-colour'>forcibly</span> write on you.</span>`; case 3: return `<span class="small-description">NPCs may <span class='red inline-colour'>forcibly</span> write on and <span class='red inline-colour'>tattoo</span> you.</span>`; default: return `<span class="small-description">Error: bad value: " + ${v}`; } } }>> </div> <div class="settingsToggleItem"> Asphyxiation: <<numberslider "$settings.asphyxiaLevel" $settings.asphyxiaLevel 0 4 1 { value: v => { switch (v) { case 0: return `<span class="small-description">Don't touch my neck!</span>`; case 1: return `<span class="small-description">NPCs may <span class='blue inline-colour'>grab</span> you by the neck. Doesn't impede breathing.</span>`; case 2: return `<span class="small-description">NPCs may try to <span class='purple inline-colour'>choke</span> you during consensual intercourse.</span>`; case 3: return `<span class="small-description">NPCs may try to <span class='red inline-colour'>strangle</span> you during non-consensual intercourse.</span>`; case 4: return `<span class="small-description">NPCs will <span class='red inline-colour'>often</span> try to <span class='red inline-colour'>strangle</span> you during non-consensual intercourse.</span>`; default: return `<span class="small-description">Error: bad value: " + ${v}`; } } }>> </div> <div class="settingsToggleItem"> <<if !$femininityModifier>><<set $femininityModifier to {}>><</if>> Nude Gender Appearance: <<numberslider "$settings.nudeGenderPerception" $settings.nudeGenderPerception 0 2 1 { value: v => { switch (v) { case 0: return `<span class="small-description">NPCs will <span class='blue inline-colour'>ignore</span> your genitals when perceiving your gender.</span>`; case 1: return `<span class="small-description">NPCs will <span class='purple inline-colour'>consider</span> your genitals when perceiving your gender.</span>`; case 2: return `<span class="small-description">NPCs will <span class='red inline-colour'>judge</span> your gender based on your genitals.</span>`; default: return `<span class="small-description">Error: bad value: " + ${v}`; } } }>> </div> </div> </div> <</widget>> <<widget "priceSettings">> <div class="solidBorderContainer clothes-price-container"> <div class="settingsGrid"> <div class="settingsHeader"> Bailey's Rent </div> <div class="settingsToggleItemWide"> <div class="small-description"> Modifies the amount of money Bailey demands weekly. 100% is default. <br> <span class="red">Setting this below 100% will prevent feats being earned in that save.</span> </div> <div class="ironman-slider" id="sliderRentMode"> <<numberslider "$settings.rentCostModifier" $settings.rentCostModifier 0.1 3 0.1 $ironmanmode>> </div> </div> </div> <hr> <div class="settingsGrid"> <div class="settingsHeader"> Shop Prices </div> <div class="settingsToggleItem"> <div> <span class="gold">Clothing Price:</span> <div class="small-description">Modifies the costs for clothing items. This includes the cost for buying, the automatic re-buy and repairing. Towels are always free.</div> </div> <hr style="border-top:1px solid var(--700)"> <div> <span class="gold">Cost of All Clothing:</span> <div class="small-description">For hard mode 200% is recommended.</div> <<numberslider "$settings.clothingCostModifier" $settings.clothingCostModifier 1 10 0.5>> </div> </div> <div class="settingsToggleItem"> <div> <span class="gold">Cost of Underwear:</span> <<numberslider "$settings.underwearCostModifier" $settings.underwearCostModifier 1 2 0.1>> </div> <hr style="border-top:1px solid var(--700)"> <div> <span class="gold">Cost of School Clothes:</span> <<numberslider "$settings.schoolClothingCostModifier" $settings.schoolClothingCostModifier 1 2 0.1>> </div> <hr style="border-top:1px solid var(--700)"> <div> <span class="gold">Cost of Lewd Clothes:</span> <<numberslider "$settings.lewdClothingCostModifier" $settings.lewdClothingCostModifier 0.1 2 0.1>> </div> </div> <div class="settingsToggleItemWide"> <span class="gold">Furniture Price:</span> <div class="small-description">Modifies the cost of furniture.</div> <div class="ironman-slider" id="slider-furniture-price-factor"> <<numberslider "$settings.furnitureCostModifier" $settings.furnitureCostModifier 0.6 5 0.2 $ironmanmode>> </div> </div> </div> <hr> <div class="settingsGrid"> <div class="settingsHeader"> Crop Yield </div> <div class="settingsToggleItemWide"> <div class="small-description">Modifies the amount of harvested crops. 500% is default. 100% is (legacy) hard mode.</div> <div class="ironman-slider" id="sliderTendingYieldFactor"> <<numberslider "$settings.tendingYieldModifier" $settings.tendingYieldModifier 1 10 1 $ironmanmode>> </div> </div> </div> </div> <!-- Make it show % instead of fractions and add some colour --> <<run $(() => { $('.clothes-price-container input').on('input change', e => { let valSpan = $(e.currentTarget).siblings().first(); let value = valSpan.text(); valSpan.text((i, value) => Math.round(value * 100) + '%'); if (value > 1) valSpan.css('color', 'gold'); else if (value < 1) valSpan.css('color', 'green'); else valSpan.css('color', 'unset'); }).trigger('change') })>> <!-- Set the initial minimum --> <<run $(() => { let newmin = parseFloat((Math.ceil(10 / $('#numberslider-input-settingsclothingcostmodifier').val()) * 0.1).toFixed(1)); let oldval = V.settings.lewdClothingCostModifier; $('#numberslider-input-settingslewdclothingcostmodifier').attr('min', newmin).val(oldval).trigger('change'); })>> <!-- Limit lewd slider so that all coef * lewd coef >= 100% --> <<run $(() => { $('#numberslider-input-settingsclothingcostmodifier').on('input change', e => { let newmin = parseFloat((Math.ceil(10 / $(e.currentTarget).val()) * 0.1).toFixed(1)); let oldval = V.settings.lewdClothingCostModifier; $('#numberslider-input-settingslewdclothingcostmodifier').attr('min', newmin).val(oldval).trigger('change'); }) })>> <</widget>> <<widget "incompletePregnancy">> <<checkbox "$settings.incompletePregnancyEnabled" false true autocheck>> Enable incomplete pregnancy content <<if _foundPregnancy>> <mouse class="tooltip linkBlue">(!!!)<span>Cannot be disabled while a named NPC is pregnant.</span></mouse> <<else>> <mouse class="tooltip linkBlue">(?)<span> <div>When enabled, the player will be able to impregnate and be impregnated by all fertile named NPCs. This includes NPCs that have no pregnancy interactions.</div> <div class="red">WARNING: This will lead to situations where the named NPC will not react to the player's pregnancy or their own pregnancy, and existing saves may end up skipping future content.</div> </span></mouse> <</if>> <</widget>> <<widget "fertilityCycles">> <<checkbox "$settings.fertilityCycleEnabled" false true autocheck>> Enable fertility cycles <mouse class="tooltip linkBlue">(?)<span> <div>When enabled, the player's menstruation cycle will determine when they can get pregnant.</div> <div>When disabled, each day's pregnancy chance will be randomised. In addition, sperm inside the player will not last as long when the pregnancy type is set to "realistic".</div> </span></mouse> <</widget>> <<widget "pregnancyType">> <label><<radiobutton "$settings.pregnancyType" "realistic" autocheck>> <mouse class="tooltip green">Realistic<span>Pregnancy will not happen immediately, and you won't know right away when it happens. You may need to use a pregnancy test, and the father may not be known to you initially. Cum on the outside of your vagina may get you pregnant as well, unless washed off within the next several hours.</span></mouse></label> | <label><<radiobutton "$settings.pregnancyType" "fetish" autocheck>> <mouse class="tooltip pink">Fetishised<span>Pregnancy may happen as soon as semen gets inside you. You will know as soon as it happens, and will immediately know the father.</span></mouse></label> | <label><<radiobutton "$settings.pregnancyType" "silly" autocheck>> <mouse class="tooltip gold">Silly<span>Pregnancy may happen as soon as you hold hands or kiss, especially with those you love. <i class="red none">There may be story content related issues with this mode. Some feats will be disabled with this mode.</i></span></mouse></label> <</widget>> <<widget "pregnancySettings">> <div class="solidBorderContainer settings-container"> <div class="settingsGrid"> <div class="settingsHeader"> Pregnancy Chances </div> <div class="settingsToggleItemWide"> <div class="numberslider-inline basePlayerPregnancyChance-container"> <span class="gold">Base Player Pregnancy Chance:</span> <<numberslider "$settings.basePlayerPregnancyChance" $settings.basePlayerPregnancyChance 0 96 4>> <div class="small-description">Chance of conceiving when inseminated at the right time. Some events may leave you with more than one helping of cum. Other effects may modify the base chance, to both increase and decrease the chance of pregnancy.</div> </div> </div> <<run $(() => { $('.basePlayerPregnancyChance-container input').on('input change', e => { let valSpan = $(e.currentTarget).siblings().first(); let value = valSpan.text(); valSpan.text((i, value) => "1 in " + (100 - value)); }).trigger('change') })>> <div class="settingsToggleItemWide numberslider-inline basenpcpregnancychance-container"> <span class="gold">Base NPC Pregnancy Chance:</span> <<numberslider "$settings.baseNpcPregnancyChance" $settings.baseNpcPregnancyChance 0 16 4>> <div class="small-description">Chance of an NPC conceiving when inseminated at the right time.</div> </div> <<run $(() => { $('.basenpcpregnancychance-container input').on('input change', e => { let valSpan = $(e.currentTarget).siblings().first(); let value = valSpan.text(); valSpan.text((i, value) => "1 in " + (20 - value)); }).trigger('change') })>> </div> <hr> <div class="settingsGrid"> <div class="settingsHeader"> Pregnancy Length </div> <<if playerPregnancyProgress() gte 0.9>> <span class="red">You cannot currently change pregnancy length settings, as you are close to the end of your current pregnancy.</span> <</if>> <div class="settingsToggleItem numberslider-inline humanPregnancyMonths-container" data-target="humanPregnancyMonths" @data-disabledif="playerPregnancyProgress() gte 0.9"> <span class="gold">Human Pregnancy Length:</span> <<numberslider "$settings.humanPregnancyMonths" $settings.humanPregnancyMonths 1 9 1 { value: (v) => v + pluralise(v, " month") }>> </div> <div class="settingsToggleItem numberslider-inline wolfPregnancyWeeks-container" data-target="wolfPregnancyWeeks" @data-disabledif="playerPregnancyProgress() gte 0.9"> <span class="gold">Wolf Pregnancy Length:</span> <<numberslider "$settings.wolfPregnancyWeeks" $settings.wolfPregnancyWeeks 2 12 1 { value: (v) => v + pluralise(v, " week") }>> </div> <<run $(() => { $('.humanPregnancyMonths-container input, .wolfPregnancyWeeks-container input').on('input change', e => { if(V.feats.pregnancyLocked){ $('#pregnancyFeatsDisabled').text("Some Pregnancy Feats are disabled."); $('#pregnancyFeatsDisabled').css('display', 'block'); } else if(V.settings.humanPregnancyMonths < 3 || V.settings.wolfPregnancyWeeks < 4){ $('#pregnancyFeatsDisabled').text("Some Pregnancy Feats will be disabled."); $('#pregnancyFeatsDisabled').css('display', 'block'); } else{ $('#pregnancyFeatsDisabled').text(""); $('#pregnancyFeatsDisabled').css('display', 'none'); } }).trigger('change') })>> <div id="pregnancyFeatsDisabled" class="red"></div> </div> <hr> <div class="settingsGrid"> <div class="settingsHeader"> Pregnancy Toggles </div> <div class="settingsToggleItem"> <span class="red">Changing these toggles will not stop existing pregnancy or prevent the player from interacting with their children.</span> </div> <div class="settingsToggleItem"> Condoms <<numberslider "$settings.condomLevel" $settings.condomLevel 0 3 1 { value: v => { switch (v) { case 0: return `<span class="small-description"><span class='red inline-colour'>Everyone is allergic to latex and safe sex.</span></span>`; case 1: return `<span class="small-description">Only <span class='green inline-colour'>you</span> may use condoms. You may still give condoms to NPCs.</span>`; case 2: return `<span class="small-description">NPCs will only have condoms if <span class='blue inline-colour'>pregnancy</span> between them and the player is possible.</span>`; case 3: return `<span class="small-description">NPCs may have and use condoms <span class='pink inline-colour'>whenever they please</span>.</span>`; default: return `<span class="small-description">Error: bad value: " + ${v}`; } } }>> </div> <div class="settingsToggleItem"> <label> <<checkbox "$settings.playerPregnancyHumanEnabled" false true autocheck>> Enable player human pregnancy </label> </div> <div class="settingsToggleItem"> <label> <<checkbox "$settings.playerPregnancyBeastEnabled" false true autocheck>> Enable player beast pregnancy </label> </div> <div class="settingsToggleItem"> <label> <<checkbox "$settings.npcPregnancyEnabled" false true autocheck>> Enable NPC pregnancy </label> </div> <<set _foundPregnancy to !!Object.values($NPCName).find(npc => npc.pregnancy && npc.pregnancy.enabled && npc.pregnancy.type && !setup.pregnancy.canBePregnant.includes(npc.fullDescription))>> <span data-target="settingsincompletepregnancyenabled" data-disabledif="T.foundPregnancy&&V.settings.incompletePregnancyEnabled===true"> <div class="settingsToggleItem humanPregnancyMonths-container"> <label> <<incompletePregnancy>> </label> </div> </span> <div class="settingsToggleItem"> <label> <<checkbox "$settings.parasitePregnancyEnabled" false true autocheck>> Enable parasitic pregnancy </label> </div> <div class="settingsToggleItem"> <label> <<fertilityCycles>> </label> </div> <div class="settingsToggleItem"> <label> <<checkbox "$settings.playerPregnancyEggLayingEnabled" false true autocheck>> Enable egg laying <mouse class="tooltip linkBlue">(?)<span>Required for Hawk and Harpy pregnancy.</span></mouse> </label> </div> <div class="settingsToggleItem"> <label> Pregnancy type: <<pregnancyType>> </label> </div> <div class="settingsToggleItem"> <label> <<checkbox "$settings.pregnancySpeechEnabled" false true autocheck>> Enable fertility references <mouse class="tooltip linkBlue">(?)<span>Allow references to the PC being impregnated, or impregnating others. Disabling does not prevent all references to pregnancy, especially if other pregnancy settings are enabled.</span></mouse> </label> </div> <<if $debug is 1>> DEBUG: <br> <span class="gold">Chance of NPCs having condoms</span> <br> <<numberslider "$settings.condomChance" $settings.condomChance 0 100 1>> <br><br> <span class="gold">Likelihood of NPCs using a condom without being asked...</span> <br> ...during rape <<numberslider "$settings.condomUseChanceRape" $settings.condomUseChanceRape 0 100 1>> <br> ...during consensual sex <<numberslider "$settings.condomUseChanceConsensual" $settings.condomUseChanceConsensual 0 100 1>> <br> <</if>> </div> </div> <</widget>> <<widget "skinColourVariableCombine">> <<set $player.skin.color to _skinTone + _skinShade>> <</widget>> <<widget "sizeLimitsSettings">> <div class="settingsGrid"> <div class="settingsHeader"> Body Part Size Limits <span class="tooltip-anchor linkBlue" tooltip="As you partake in lewd acts and experiences, your body parts may grow or shrink. Surgery, pills, and parasites can influence growth, among other conditions.">(?)</span> </div> <div class="settingsToggleItemWide"> <span class="gold">Breast Size Limits:</span> <span class="tooltip-anchor linkBlue" tooltip="Breasts already below the minimum size won't automatically grow.">(?)</span> <br> <<rangeslider "$breastsizemin" "$breastsizemax" $breastsizemin $breastsizemax 0 12 1 { minClamp: 5, minClampMessage: `<span class="red">Cannot increase minimum size further.</span>` } { value: (v1, v2) => { const color1 = ColourUtils.interpolateMultiple(["--teal", "--pink"], normalise(v1, 12, 0)); const color2 = ColourUtils.interpolateMultiple(["--teal", "--pink"], normalise(v2, 12, 0)); var name = ["Flat", "Budding", "Tiny", "Small", "Pert", "Modest", "Full", "Large", "Ample", "Massive", "Huge", "Gigantic", "Enormous"]; return `<span style="color: ${color1}">${name[v1]}</span> - <span style="color: ${color2}">${name[v2]}</span>`; }, } >> </div> <div class="settingsToggleItemWide"> <span class="gold">Ass Size Limits:</span> <span class="tooltip-anchor linkBlue" tooltip="Bottoms already below the minimum size won't automatically grow.">(?)</span> <br> <<rangeslider "$bottomsizemin" "$bottomsizemax" $bottomsizemin $bottomsizemax 0 8 1 { minClamp: 3, minClampMessage: `<span class="red">Cannot increase minimum size further.</span>` } { value: (v1, v2) => { const color1 = ColourUtils.interpolateMultiple(["--teal", "--pink"], normalise(v1, 8, 0)); const color2 = ColourUtils.interpolateMultiple(["--teal", "--pink"], normalise(v2, 8, 0)); var name = ["Slender", "Slim", "Modest", "Cushioned", "Soft", "Round", "Plump", "Large", "Huge"]; return `<span style="color: ${color1}">${name[v1]}</span> - <span style="color: ${color2}">${name[v2]}</span>`; }, } >> </div> <<if ($passage is "Start" and $player.sex isnot "f") or $player.penisExist>> <div class="settingsToggleItemWide"> <span class="gold">Penis Size Limits:</span> <span class="tooltip-anchor linkBlue" tooltip="Penises already below the minimum size won't automatically grow.">(?)</span> <<rangeslider "$penissizemin" "$penissizemax" $penissizemin $penissizemax -2 4 1 { minClamp: 0, minClampMessage: `<span class="red">Cannot increase minimum size further.</span>` } { value: (v1, v2) => { const color1 = ColourUtils.interpolateMultiple(["--teal", "--pink"], normalise(v1, 4, -2)); const color2 = ColourUtils.interpolateMultiple(["--teal", "--pink"], normalise(v2, 4, -2)); var name = ["Micro","Mini", "Tiny", "Small", "Normal", "Large", "Enormous"]; return `<span style="color: ${color1}">${name[v1+2]}</span> - <span style="color: ${color2}">${name[v2+2]}</span>`; }, } >> </div> <</if>> </div> <</widget>> <<widget "gallerySettings">> <div class="solidBorderContainer settings-container"> <div class="settings-intro"> Gallery options will not affect your save in any way. <hr> <<if version.major gt 2 or version.minor gt 29>> <span class="bold"> <<link [[Character Viewer|Clothes Testing]]>> <<set $lastPassage to $passage>> <</link>> </span> - This will allow you to have a play with the character sprites. <br> <</if>> <br> <<if $passage isnot "Start">> <span class="bold"> <<link [[Scene Viewer|Scene Viewer]]>> <<set $lastPassage to $passage>> <<seenPassageChecks>> <</link>> </span> - This will allow you to replay scenes that you have unlocked. <br> <<else>> <span class=" red bold">Scene Viewer</span> - Not accessible on the Start page. As you play through the game, you will unlock special scenes. These scenes can replayed in the Gallery's Scene Viewer when accessed through the <span class="gold">Gameplay Settings</span> link in your bedroom. <br> <</if>> /*<br> <span class="bold"> <<link [[Test Renderer|Renderer Test Page]]>> <<set $lastPassage to $passage>> <</link>> </span> - This will check your browser's capabilities required for new renderer. <br>*/ <br> <span class="bold"> <<link [[Tip Gallery|Tips]]>> <<set $lastPassage to $passage>> <</link>> </span> - View the complete list of hints and tips available for Degrees of Lewdity. As you play through the game, these tips will appear at random in the sidebar, unless disabled via the <span class="gold">Options</span> button. </div> </div> <</widget>> <<widget "faceVariantSettings">> <<set _variants = Object.entries(setup.faceVariantOptions[$facestyle])>> <<for _i, _variant range _variants>> <label><<= _variant[0]>> <<radiobutton "$facevariant" _variant[1] autocheck>></label> <<= _i < _variants.length - 1 ? "|" : "">> <</for>> <</widget>> <<widget "npcSettings">> <div class="solidBorderContainer settings-container"> <div class="settingsToggleIndent"> <span class="gold">Randomly assign to Named NPCs:</span> <mouse class="tooltip linkBlue">(?)<span>Settings are generated based on General NPC Settings.</span></mouse> <br> <<link "Genders">> <<initnpcgender "genders">> <<updatePersistentNPCs "genders">> <<replace #npcSettingsMenu>><<npcSettingsMenu>><</replace>> <</link>> | <<link "Penis sizes">> <<initnpcgender "penis">> <<updatePersistentNPCs "penis">> <<replace #npcSettingsMenu>><<npcSettingsMenu>><</replace>> <</link>> | <<link "Breast sizes">> <<initnpcgender "breasts">> <<updatePersistentNPCs "breasts">> <<replace #npcSettingsMenu>><<npcSettingsMenu>><</replace>> <</link>> | <<link "Skin colours">> <<initnpcskin "skincolour">> <<updatePersistentNPCs "skincolour">> <<replace #npcSettingsMenu>><<npcSettingsMenu>><</replace>> <</link>> <<if $debug is 1>> | <<link "Reset hair and eye colours (Will only effect NPC's with a default colour)">> <<generateNPCNameHairAndEyeColors "default">> <<displaySettings>> <</link>> <</if>> </div> <hr> <<if _npcId is undefined>> <<set _npcId to 25>> /* Should be set to the index of the NPC that is at the top of the list when sorted alphabetically by name */ <<set _breastDescription to ["Flat","Small","Pert","Modest","Full","Large"]>> <<set _breastDescriptionNPC to ["nipple","small breast","pert breast","modest breast","full breast","large breast"]>> <<set _breastsDescriptionNPC to ["nipples","small breast","pert breast","modest breast","full breast","large breast"]>> <<set _hairColorNPC to ["Red","Black","Brown","Light Brown","Blond","Platinum blond","Strawberry blond","Ginger", "Mousy"]>> <<set _hairColorNPCData to ["red","black","brown","lightbrown","blond","platinumblond","strawberryblond","ginger", "mousy"]>> <<set _hairColorNPCText to ["red","black","brown","lightbrown","gold","platinum","strawberry","tangerine", "mousy"]>> <<set _eyeColorNPC to ["Purple","Dark Blue","Light Blue","Amber","Hazel","Green","Lime Green","Red","Pink","Grey","Light Grey"]>> <<set _eyeColorNPCData to ["purple","dark blue","light blue","amber","hazel","green", "lime green","red","pink","grey", "light grey"]>> <<set _eyeColorNPCText to ["purple","blue","lblue","tangerine","brown","green","lime-green","red","pink","grey", "light-grey"]>> <</if>> <<if _npcList is undefined>> <<set _npcList to {}>> <<set _sortedNPCList to clone($NPCNameList)>> <<run _sortedNPCList.sort()>> <<for $_i to 0; $_i lt _sortedNPCList.length; $_i++>> <<set _npcList[_sortedNPCList[$_i]] to clone($NPCNameList.indexOf(_sortedNPCList[$_i]))>> <</for>> <<if $passage is "Start" or !$wraithIntro>> <<run delete _npcList["Ivory Wraith"]>> <</if>> <</if>> /* Updates the npc's in case $incompletePregnancyDisable has been changed by the player */ <<npcPregnancyUpdater>> <div id="npcSettingsMenu"> <<npcSettingsMenu>> </div> <<if $passage isnot "start" and $per_npc and Object.keys($per_npc).length gt 0>> <<run if (!T.perNPCLock) { $(".passage").on('change', '#perNPCSettingsMenu .macro-listbox', function (e) { new Wikifier(null, '<<replace #perNPCSettingsMenu>><<perNPCSettingsMenu>><</replace>>'); }); T.npcKeys = {}; T.npcKeyNames = []; const allowed_npcs = ["steed", "guard", "inmate", "panty_thief", "school_nurse", "tower_creature", "pinch", "black_dog", "hacker", "bishop", "bishop_right_hand", "bishop_left_hand", "manager"]; Object.keys(V.per_npc).forEach(k => { for (const j of allowed_npcs){ if (k.includes(j)){ T.npcKeyNames.push(k); T.npcKeys[k.toUpperFirst().replace(/_/g, ' ')] = k; break } } }); T.perNPCLock = true; } >> <<if T.npcKeyNames and T.npcKeyNames.length>> <hr> <div id="perNPCSettingsMenu"> <<perNPCSettingsMenu>> </div> <</if>> <</if>> <<if _listActive isnot true>> <<NPCSettingsReset>> <<set _listActive to true>> <</if>> </div> <</widget>> <<widget "exportsettings">> <div class="solidBorderContainer settings-container"> <div class="settings-intro"> <span class="yellow">Will also import/export settings found in the "SAVE/OPTIONS" overlay.</span> <hr> <h4 class="gold">Settings File Import/Export</h4> <<if SugarCube.Browser.isMobile.any() is true>> Note that saving and loading from file does not work on Android currently. <<else>> Load from file: <input id="saveImport" type="file" value="Load from file" onchange="importSettings(this.files, 'file')"> <br><br> <<if $ironmanmode is true>> <input type="button" value="Save to file" disabled> <<else>> <input type="button" value="Save to file" onclick="exportSettings(null,'file')"> <</if>> <</if>> <hr> <h4 class="gold">Settings Text Import/Export</h4> <ul> <li>To save your current settings, click on "Get Settings Data", then copy and paste the save data where required.</li> <li>To load your current settings, paste in the settings data then click "Load Settings Data".</li> <li>To transfer to and from Android, it is recommended to use email or a service such as pastebin. Please ensure that the start and the end of the save is exact to prevent issues.</li> <li>Click on "Copy Text Area" to copy the current contents for you. The button name will change to "Copying Error" if your device or browser does not support it.</li> </ul> <textarea id="settingsDataInput" rows="4" cols="40" onClick="if(V.disableAutoSelect == false)this.select();" onfocus="V.tempDisable = true;" onblur="V.tempDisable = false;"></textarea> <br> <input type="button" value="Clear Text Box" onclick="clearTextBox('settingsDataInput')"/> <input type="button" value="Top of Text Box" onclick="topTextArea('settingsDataInput')"/> <input type="button" value="Bottom of Text Box" onclick="bottomTextArea('settingsDataInput')"/> <input type="button" value="Get Settings Data" onclick="exportSettings(null,'text')"/> <input type="button" value="Load Settings Data" onclick="importSettings(null,'text')"/> <input id="CopyTextArea" type="button" value="Copy Text Area" onclick="copySavedata('settingsDataInput')"> <input id="LoadExternalExportFile" type="button" value="Load External Export File" onclick="loadExternalExportFile()"> <br><br> <label> <<checkbox "$disableAutoSelect" false true autocheck>> Disables auto select. </label> </div> </div> <</widget>> <<widget "startDescriptions">> <div class="solidBorderContainer settings-container"> <div class="settings-intro"> <<switch _args[0]>> <<case "default">><span class="gold bold">Basic Start:</span> You can make <span class="teal">broad changes</span> to difficulty settings, preset kinks, and NPC genders. All NPCs will be <span class="teal">randomly</span> generated according to these settings. <i class="teal">Recommended for beginners.</i> <<case "custom">><span class="gold bold">Custom Start:</span> You can adjust <span class="teal">all settings</span>, including fetish toggles, difficulty settings, and NPC genders, to create a playthrough tailored to your desires. <<case "random">><span class="gold bold">Randomised Start:</span> Starts the game with <span class="teal">all settings</span> randomised, including character appearance, character traits, and difficulty settings. Both your character and all NPCs will be <span class="teal">randomly</span> generated for a completely blind playthrough. <i><span class="teal">To randomise specific settings prior to starting the game, select</span> <span class="gold">Custom Start</span><span class="teal"> instead.</span></i> <</switch>> </div> </div> <</widget>> <<widget "npcSettingsMenu">> <div class="settingsToggleIndent"> <span class="gold">Jump to a specific NPC: </span> <<listbox "_npcId" autoselect>> <<optionsfrom _npcList>> <</listbox>> </div> <div class="settingsGrid"> <div class="settingsHeader"> $NPCName[_npcId].nam the <span style="text-transform: capitalize;">$NPCName[_npcId].title</span> <span style="font-size:80%"> <br> <<link "Previous">> <<if _npcId is 0>> <<set _npcId to $NPCNameList.length - 1>> <<else>> <<set _npcId-->> <</if>> <<if _npcList[$NPCName[_npcId].nam] is undefined>> <<set _npcId-->> <</if>> <<replace #npcSettingsMenu>><<npcSettingsMenu>><</replace>> <</link>> <span style="color:white">|</span> <<link "Next">> <<if _npcId is $NPCNameList.length - 1>> <<set _npcId to 0>> <<else>> <<set _npcId++>> <</if>> <<if _npcList[$NPCName[_npcId].nam] is undefined>> <<set _npcId++>> <</if>> <<replace #npcSettingsMenu>><<npcSettingsMenu>><</replace>> <</link>> </span> </div> <<if V.NPCName[T.npcId].pregnancy.type>> <div class="settingsToggleItemWide"> This NPC is currently pregnant. You will not be able to change some settings for the duration of their pregnancy. </div> <</if>> <div class="settingsToggleItem"> <span class="gold">Gender:</span> <br> <span data-target="npcname-npcidpronoun" data-disabledif="V.NPCName[T.npcId].pronoun==='i'"> <label><<radiobutton "$NPCName[_npcId].pronoun" "f" autocheck>> Female</label> | <label><<radiobutton "$NPCName[_npcId].pronoun" "m" autocheck>> Male</label> </span> </div> <div class="settingsToggleItem"> <span class="gold">Genitals:</span> <br> <span data-target="npcname-pregnancy" data-disabledif="V.NPCName[T.npcId].pregnancy.type"> <label><<radiobutton "$NPCName[_npcId].gender" "f" autocheck>> Vagina</label> | <label><<radiobutton "$NPCName[_npcId].gender" "m" autocheck>> Penis</label> <<if $debug is 1>>| <label><<radiobutton "$NPCName[_npcId].gender" "h" autocheck>> Both</label><</if>> </span> </div> <div class="settingsToggleItem"> <<set _penisNames to ["", "Tiny", "Average", "Thick", "Huge"]>> /* the empty first element is necessary because _j starts at 1 */ <span data-target="npcname-npcidgender" data-disabledif="V.NPCName[T.npcId].gender==='f'"> <span class="gold">Penis Size:</span> <br> <<for _j to 1; _j lt _penisNames.length; _j++>> <label> <<radiobutton "$NPCName[_npcId].penissize" _j autocheck>> <<print _penisNames[_j]>> </label> <<if _j isnot _penisNames.length -1>>|<</if>> <</for>> </span> </div> <div class="settingsToggleItem"> <span data-target="npcname-pregnancy" data-disabledif="setup.pregnancy.infertile.includes(V.NPCName[T.npcId].nam)||V.NPCName[T.npcId].pregnancy.enabled===undefined||V.NPCName[T.npcId].pregnancy.type||!setup.pregnancy.typesEnabled.includes(V.NPCName[T.npcId].type)"> <span class="gold">Enable Pregnancy for NPC:</span> <mouse class="tooltip linkBlue">(?)<span>Requires 'NPC Pregnancy' toggle to be enabled. May also require the "incomplete pregnancy content" toggle to be enabled. Will not stop an existing pregnancy.</span></mouse> <br> <label><<radiobutton "$NPCName[_npcId].pregnancy.enabled" true autocheck>> True</label> | <label><<radiobutton "$NPCName[_npcId].pregnancy.enabled" false autocheck>> False</label> </span> </div> <div class="settingsToggleItem"> <span class="gold">Breast Size:</span> <br> <<numberslider "$NPCName[_npcId].breastsize" $NPCName[_npcId].breastsize 0 12 1 { onInputChange: v => { V.NPCName[_npcId].breastdesc = (v > 0) ? setup.breastsizes[v] + " breast" : "nipple"; V.NPCName[_npcId].breastsdesc = (v > 0) ? setup.breastsizes[v] + " breasts" : "nipples"; }, value: v => { return (v > 0) ? setup.breastsizes[v] + " breasts" : "nipples"; } }>> </div> <div class="settingsToggleItem"> <span class="gold">Skin Colour:</span> <br> <<if $NPCName[_npcId].nam is "Black Wolf">>/*disable skin colour toggle when player has BW set to 'always a beast'*/ <span data-target="blackwolfmonster" data-disabledif="V.blackwolfmonster===0"> <label><<radiobutton "$NPCName[_npcId].skincolour" "white" autocheck>> Pale</label> | <label><<radiobutton "$NPCName[_npcId].skincolour" "black" autocheck>> Dark</label> </span> <<elseif $NPCName[_npcId].nam is "Great Hawk">>/*disable skin colour toggle when player has BW set to 'always a beast'*/ <span data-target="greathawkmonster" data-disabledif="V.greathawkmonster===0"> <label><<radiobutton "$NPCName[_npcId].skincolour" "white" autocheck>> Pale</label> | <label><<radiobutton "$NPCName[_npcId].skincolour" "black" autocheck>> Dark</label> </span> <<else>> <span data-target="npcname-npcidskincolour" data-disabledif="V.NPCName[T.npcId].skincolour==='ghost'"> <label><<radiobutton "$NPCName[_npcId].skincolour" "white" autocheck>> Pale</label> | <label><<radiobutton "$NPCName[_npcId].skincolour" "black" autocheck>> Dark</label> </span> <</if>> </div> <<if $NPCName[_npcId].nam is "Black Wolf">> <div class="settingsToggleItemWide"> <span class="gold">Beast Type:</span> <br> <label><<radiobutton "$blackwolfmonster" 0 autocheck>> Always a beast</label> | <label><<radiobutton "$blackwolfmonster" 1 autocheck>> Monster girl or boy when requirements met</label> | <label><<radiobutton "$blackwolfmonster" 2 autocheck>> Always a monster girl or boy</label> </div> <<elseif $NPCName[_npcId].nam is "Great Hawk">> <div class="settingsToggleItemWide"> <span class="gold">Beast Type:</span> <br> <label><<radiobutton "$greathawkmonster" 0 autocheck>> Always a beast</label> | <label><<radiobutton "$greathawkmonster" 1 autocheck>> Monster girl or boy when requirements met</label> | <label><<radiobutton "$greathawkmonster" 2 autocheck>> Always a monster girl or boy</label> </div> <</if>> </div> <div style="clear:both;"></div> <<if $debug is 1>> DEBUG: <br> <div class="settingsToggleItemWide"> <span class="gold">Hair Colour:</span> <br> <<for _j to 0; _j lt _hairColorNPC.length; _j++>> <label> <<print '<<radiobutton "$NPCName['+_npcId+'].hairColour" "'+_hairColorNPCData[_j]+'" ' + ($NPCName[_npcId].hairColour is _hairColorNPCData[_j] ? "checked" : "") + '>>'>> <span @class="_hairColorNPCText[_j]">_hairColorNPC[_j]</span> </label> | <</for>> </div> <div class="settingsToggleItemWide"> <span class="gold">Eye Colour:</span> <br> <<for _j to 0; _j lt _eyeColorNPC.length; _j++>> <label> <<print '<<radiobutton "$NPCName['+_npcId+'].eyeColour" "'+_eyeColorNPCData[_j]+'" ' + ($NPCName[_npcId].eyeColour is _eyeColorNPCData[_j] ? "checked" : "") + '>>'>> <span @class="_eyeColorNPCText[_j]">_eyeColorNPC[_j]</span> </label> | <</for>> </div> <div style="clear:both;"></div> <</if>> <<run settingsDisableElement()>> <</widget>> <<widget "perNPCSettingsMenu">> <div class="settingsToggleIndent"> <span class="gold">Jump to a specific persistent NPC: </span> <<listbox "_pNPCId" autoselect>> <<optionsfrom _npcKeys>> <</listbox>> </div> <<switch _pNPCId>> <<case "scarred_inmate">> <<if $per_npc[_pNPCId].description isnot "scarred">> <<generate_scarred_inmate 0>> <<clearsinglenpc 0>> <</if>> <<case "veteran_guard">> <<if $per_npc[_pNPCId].description isnot "veteran">> <<generate_veteran_guard 0>> <<clearsinglenpc 0>> <</if>> <</switch>> <<set _npcIndex to _npcKeyNames.indexOf(_pNPCId)>> <div class="settingsGrid"> <<if $per_npc[_pNPCId] eq null>> <<error { message : `The given ID for pNPCs failed to match any available pNPC: ${_pNPCId}.`, source : _pNPCId }>> <<else>> <div class="settingsHeader"> <<if $per_npc[_pNPCId].name_known or _pNPCId is "farm_tower_guard">> $per_npc[_pNPCId].name the <<= toTitleCase(_pNPCId.toUpperFirst().replace(/_/g, ' '))>> <<elseif _pNPCId is "tower_creature">> The Night Monster <<elseif _pNPCId is "hacker">> 'Mickey' the Hacker <<elseif _pNPCId is "bishop">> The Bishop <<elseif _pNPCId is "bishop_right_hand">> The Bishop's Right Hand <<elseif _pNPCId is "bishop_left_hand">> The Bishop's Left Hand <<else>> <<= toTitleCase(_pNPCId.toUpperFirst().replace(/_/g, ' '))>> <</if>> <span style="font-size:80%"> <br> <<if $per_npc[_pNPCId].name_known and $debug is 1>> <<link "Rename">> <<if $per_npc[_pNPCId].pronoun is "f">> <<set $per_npc[_pNPCId].name to $NPC_names_f.random()>> <<else>> <<set $per_npc[_pNPCId].name to $NPC_names_m.random()>> <</if>> <<replace #perNPCSettingsMenu>><<perNPCSettingsMenu>><</replace>> <</link>> | <</if>> <<link "Previous">> <<set _npcIndex to (_npcIndex is 0 ? _npcKeyNames.length - 1 : --_npcIndex)>> <<set _pNPCId to _npcKeyNames[_npcIndex]>> <<replace #perNPCSettingsMenu>><<perNPCSettingsMenu>><</replace>> <</link>> | <<link "Next">> <<set _npcIndex++>> <<set _pNPCId to _npcKeyNames[_npcIndex]>> <<replace #perNPCSettingsMenu>><<perNPCSettingsMenu>><</replace>> <</link>> </span> </div> <div class="settingsToggleItem"> <span data-target="pernpc-npcidpronoun" data-disabledif="V.per_npc[T.pNPCId].pronoun==='i'||V.per_npc[T.pNPCId].pronoun==='t'"> <span class="gold">Gender:</span> <br> <label><<radiobutton "$per_npc[_pNPCId].pronoun" "f" autocheck>> Female</label> | <label><<radiobutton "$per_npc[_pNPCId].pronoun" "m" autocheck>> Male</label> </span> </div> <div class="settingsToggleItem"> <span class="gold">Genitals:</span> <br> <label><<radiobutton "$per_npc[_pNPCId].gender" "f" autocheck>> Vagina</label> | <label><<radiobutton "$per_npc[_pNPCId].gender" "m" autocheck>> Penis</label> </div> <div class="settingsToggleItem"> <<set _penisNames to ["", "Tiny", "Average", "Thick", "Huge"]>> /* the empty first element is necessary because _j starts at 1 */ <span data-target="pernpc-npcidgender" data-disabledif="V.per_npc[T.pNPCId].gender==='f'"> <span class="gold">Penis Size:</span> <br> <<for _j to 1; _j lt _penisNames.length; _j++>> <label> <<radiobutton "$per_npc[_pNPCId].penissize" _j autocheck>> <<print _penisNames[_j]>> </label> <<if _j isnot _penisNames.length -1>>|<</if>> <</for>> </span> </div> <div class="settingsToggleItem"> <span class="gold">Breast Size:</span> <br> <<numberslider "$per_npc[_pNPCId].breastsize" $per_npc[_pNPCId].breastsize 0 12 1 { onInputChange: v => { V.per_npc[_pNPCId].breastdesc = (v > 0) ? setup.breastsizes[v] + " breast" : "nipple";; V.per_npc[_pNPCId].breastsdesc = (v > 0) ? setup.breastsizes[v] + " breasts" : "nipples"; }, value: v => { return (v > 0) ? setup.breastsizes[v] + " breasts" : "nipples"; } }>> </div> <div class="settingsToggleItem"> <span class="gold">Skin Colour:</span> <br> <label><<radiobutton "$per_npc[_pNPCId].skincolour" "white" autocheck>> Pale</label> | <label><<radiobutton "$per_npc[_pNPCId].skincolour" "black" autocheck>> Dark</label> </div> <</if>> </div> <<run settingsDisableElement()>> <</widget>> <<widget "saveNameSection">> <div class="my-1"> <span class="gold bold">Save Name:</span> <i>(optional)</i> </div> <<textbox "$saveName" $saveName>> <div class="small-description"> Save files are stored in your browser's cache. Export your saves frequently to avoid losing them. </div> <</widget>> <<widget "loadAllFeats">> <div id="featsBeginLoadingText"> Running some basic checks... <br> </div> <div id="featsBeginButton" class="hidden"> <span id="featsBeginText"></span> Once you click "begin", please avoid refreshing the game, you will have to run the process again. <br><br> Exported saves are excluded from this process, unless you first import and make a local save of them. <br> <<link "Begin">> <<replace "#startCaption">><</replace>> <<replace "#settingsStart">><<loadingAllFeats>><</replace>> <</link>> </div> <<run $(() => {wikifier("featsMergePre")})>> <br><br> <<link "Cancel">> <<replace "#settingsStart">><<settingsStart>><</replace>> <</link>> <</widget>> <<widget "loadingAllFeats">> <div id="featsLoadingMeter" class="meter"> <div class="greenbar" style="width:0%"></div> <span id="featsLoadingText">0 out of _saveDataImportCount saves checked.</span> </div> <br><br> <div id="featsFinishButton" class="hidden"> <<link "Next">> <<setupFeats true>> <<replace "#startCaption">><<startCaption>><</replace>> <<replace "#settingsStart">><<settingsStart>><</replace>> <</link>> </div> <<run $(() => {wikifier("featsMerge")})>> <</widget>><<settings>><<attitudes>> <<set $attitudesControl.showGoldLink to "false">> <div class="settingsGrid"> <<button [[Confirm|$attitudesExitPassage]]>> <<unset $attitudesExitPassage>> <<run DefaultActions.save(T.defaultActions)>> <<if $LIChanged>> <<unset $LIChanged>> <<set $stress += 2000>><<set $trauma += 600>> <</if>> <</button>> </div> <br><<widget "chestdifficulty">> <<if $settings.skillCheckStyle is "skillname" or $settings.blindStatsEnabled>> <<elseif (990 - ($enemytrust * 10) - currentSkillValue("chestskill") + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>> <span class="green">(Very Easy)</span> <<elseif (800 - ($enemytrust * 10) - currentSkillValue("chestskill") + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>> <span class="teal">(Easy)</span> <<elseif (600 - ($enemytrust * 10) - currentSkillValue("chestskill") + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>> <span class="lblue">(Medium)</span> <<elseif (400 - ($enemytrust * 10) - currentSkillValue("chestskill") + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>> <span class="blue">(Challenging)</span> <<elseif (200 - ($enemytrust * 10) - currentSkillValue("chestskill") + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>> <span class="purple">(Hard)</span> <<elseif (1 - ($enemytrust * 10) - currentSkillValue("chestskill") + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>> <span class="pink">(Very Hard)</span> <<else>> <span class="red">(Impossible)</span> <</if>> <</widget>> <<widget "seductiondifficulty">><<silently>> <<if $settings.blindStatsEnabled>> <<set _text_output to "">> <<elseif $combat is 1>> <<if $settings.skillCheckStyle is "skillname">> <<set _text_output to "">> <<elseif _args[0] is true>> <<if (990 - ($enemytrust * 10) - currentSkillValue("seductionskill") + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>> <<set _text_output to '(Very Easy)'>> <<elseif (800 - ($enemytrust * 10) - currentSkillValue("seductionskill") + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>> <<set _text_output to '(Easy)'>> <<elseif (600 - ($enemytrust * 10) - currentSkillValue("seductionskill") + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>> <<set _text_output to '(Medium)'>> <<elseif (400 - ($enemytrust * 10) - currentSkillValue("seductionskill") + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>> <<set _text_output to '(Challenging)'>> <<elseif (200 - ($enemytrust * 10) - currentSkillValue("seductionskill") + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>> <<set _text_output to '(Hard)'>> <<elseif (1 - ($enemytrust * 10) - currentSkillValue("seductionskill") + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>> <<set _text_output to '(Very Hard)'>> <<else>> <<set _text_output to '(Impossible)'>> <</if>> <<else>> <<if (990 - ($enemytrust * 10) - currentSkillValue("seductionskill") + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>> <<set _text_output to '<span class="green">(Very Easy)</span>'>> <<elseif (800 - ($enemytrust * 10) - currentSkillValue("seductionskill") + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>> <<set _text_output to '<span class="teal">(Easy)</span>'>> <<elseif (600 - ($enemytrust * 10) - currentSkillValue("seductionskill") + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>> <<set _text_output to '<span class="lblue">(Medium)</span>'>> <<elseif (400 - ($enemytrust * 10) - currentSkillValue("seductionskill") + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>> <<set _text_output to '<span class="blue">(Challenging)</span>'>> <<elseif (200 - ($enemytrust * 10) - currentSkillValue("seductionskill") + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>> <<set _text_output to '<span class="purple">(Hard)</span>'>> <<elseif (1 - ($enemytrust * 10) - currentSkillValue("seductionskill") + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>> <<set _text_output to '<span class="pink">(Very Hard)</span>'>> <<else>> <<set _text_output to '<span class="red">(Impossible)</span>'>> <</if>> <</if>> <<else>> <<if $settings.skillCheckStyle is "skillname">> <<set _text_output to ` | <span class="lewd">Seduction</span>`>> <<else>> <<set _text_output to ` | <span class="lewd">Seduction</span>: `>> <<if 990 - currentSkillValue("seductionskill") - ($attractiveness / 10) lte -100>> <<set _text_output += '<span class="green">(Very Easy)</span>'>> <<elseif 800 - currentSkillValue("seductionskill") - ($attractiveness / 10) lte -100>> <<set _text_output += '<span class="teal">(Easy)</span>'>> <<elseif 600 - currentSkillValue("seductionskill") - ($attractiveness / 10) lte -100>> <<set _text_output += '<span class="lblue">(Medium)</span>'>> <<elseif 400 - currentSkillValue("seductionskill") - ($attractiveness / 10) lte -100>> <<set _text_output += '<span class="blue">(Challenging)</span>'>> <<elseif 200 - currentSkillValue("seductionskill") - ($attractiveness / 10) lte -100>> <<set _text_output += '<span class="purple">(Hard)</span>'>> <<elseif 1 - currentSkillValue("seductionskill") - ($attractiveness / 10) lte -100>> <<set _text_output += '<span class="pink">(Very Hard)</span>'>> <<else>> <<set _text_output += '<span class="red">(Impossible)</span>'>> <</if>> <</if>> <</if>> <</silently>><<if _text_output and _args[0] isnot true>><<print _text_output>><</if>> <</widget>> <<widget "oraldifficulty">> <<if $settings.skillCheckStyle is "skillname" or $settings.blindStatsEnabled>> <<elseif (990 - ($enemytrust * 10) - currentSkillValue("oralskill") + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>> <span class="green">(Very Easy)</span> <<elseif (800 - ($enemytrust * 10) - currentSkillValue("oralskill") + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>> <span class="teal">(Easy)</span> <<elseif (600 - ($enemytrust * 10) - currentSkillValue("oralskill") + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>> <span class="lblue">(Medium)</span> <<elseif (400 - ($enemytrust * 10) - currentSkillValue("oralskill") + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>> <span class="blue">(Challenging)</span> <<elseif (200 - ($enemytrust * 10) - currentSkillValue("oralskill") + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>> <span class="purple">(Hard)</span> <<elseif (1 - ($enemytrust * 10) - currentSkillValue("oralskill") + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>> <span class="pink">(Very Hard)</span> <<else>> <span class="red">(Impossible)</span> <</if>> <</widget>> <<widget "vaginaldifficulty">> <<if $settings.skillCheckStyle is "skillname" or $settings.blindStatsEnabled>> <<elseif (990 - ($enemytrust * 10) - currentSkillValue("vaginalskill") + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>> <span class="green">(Very Easy)</span> <<elseif (800 - ($enemytrust * 10) - currentSkillValue("vaginalskill") + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>> <span class="teal">(Easy)</span> <<elseif (600 - ($enemytrust * 10) - currentSkillValue("vaginalskill") + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>> <span class="lblue">(Medium)</span> <<elseif (400 - ($enemytrust * 10) - currentSkillValue("vaginalskill") + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>> <span class="blue">(Challenging)</span> <<elseif (200 - ($enemytrust * 10) - currentSkillValue("vaginalskill") + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>> <span class="purple">(Hard)</span> <<elseif (1 - ($enemytrust * 10) - currentSkillValue("vaginalskill") + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>> <span class="pink">(Very Hard)</span> <<else>> <span class="red">(Impossible)</span> <</if>> <</widget>> <<widget "analdifficulty">> <<if $settings.skillCheckStyle is "skillname" or $settings.blindStatsEnabled>> <<elseif (990 - ($enemytrust * 10) - currentSkillValue("analskill") + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>> <span class="green">(Very Easy)</span> <<elseif (800 - ($enemytrust * 10) - currentSkillValue("analskill") + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>> <span class="teal">(Easy)</span> <<elseif (600 - ($enemytrust * 10) - currentSkillValue("analskill") + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>> <span class="lblue">(Medium)</span> <<elseif (400 - ($enemytrust * 10) - currentSkillValue("analskill") + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>> <span class="blue">(Challenging)</span> <<elseif (200 - ($enemytrust * 10) - currentSkillValue("analskill") + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>> <span class="purple">(Hard)</span> <<elseif (1 - ($enemytrust * 10) - currentSkillValue("analskill") + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>> <span class="pink">(Very Hard)</span> <<else>> <span class="red">(Impossible)</span> <</if>> <</widget>> <<widget "handdifficulty">> <<if $settings.skillCheckStyle is "skillname" or $settings.blindStatsEnabled>> <<elseif (990 - ($enemytrust * 10) - currentSkillValue("handskill") + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>> <span class="green">(Very Easy)</span> <<elseif (800 - ($enemytrust * 10) - currentSkillValue("handskill") + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>> <span class="teal">(Easy)</span> <<elseif (600 - ($enemytrust * 10) - currentSkillValue("handskill") + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>> <span class="lblue">(Medium)</span> <<elseif (400 - ($enemytrust * 10) - currentSkillValue("handskill") + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>> <span class="blue">(Challenging)</span> <<elseif (200 - ($enemytrust * 10) - currentSkillValue("handskill") + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>> <span class="purple">(Hard)</span> <<elseif (1 - ($enemytrust * 10) - currentSkillValue("handskill") + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>> <span class="pink">(Very Hard)</span> <<else>> <span class="red">(Impossible)</span> <</if>> <</widget>> <<widget "feetdifficulty">> <<if $settings.skillCheckStyle is "skillname" or $settings.blindStatsEnabled>> <<elseif (990 - ($enemytrust * 10) - currentSkillValue("feetskill") + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>> <span class="green">(Very Easy)</span> <<elseif (800 - ($enemytrust * 10) - currentSkillValue("feetskill") + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>> <span class="teal">(Easy)</span> <<elseif (600 - ($enemytrust * 10) - currentSkillValue("feetskill") + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>> <span class="lblue">(Medium)</span> <<elseif (400 - ($enemytrust * 10) - currentSkillValue("feetskill") + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>> <span class="blue">(Challenging)</span> <<elseif (200 - ($enemytrust * 10) - currentSkillValue("feetskill") + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>> <span class="purple">(Hard)</span> <<elseif (1 - ($enemytrust * 10) - currentSkillValue("feetskill") + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>> <span class="pink">(Very Hard)</span> <<else>> <span class="red">(Impossible)</span> <</if>> <</widget>> <<widget "bottomdifficulty">> <<if $settings.skillCheckStyle is "skillname" or $settings.blindStatsEnabled>> <<elseif (990 - ($enemytrust * 10) - currentSkillValue("bottomskill") + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>> <span class="green">(Very Easy)</span> <<elseif (800 - ($enemytrust * 10) - currentSkillValue("bottomskill") + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>> <span class="teal">(Easy)</span> <<elseif (600 - ($enemytrust * 10) - currentSkillValue("bottomskill") + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>> <span class="lblue">(Medium)</span> <<elseif (400 - ($enemytrust * 10) - currentSkillValue("bottomskill") + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>> <span class="blue">(Challenging)</span> <<elseif (200 - ($enemytrust * 10) - currentSkillValue("bottomskill") + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>> <span class="purple">(Hard)</span> <<elseif (1 - ($enemytrust * 10) - currentSkillValue("bottomskill") + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>> <span class="pink">(Very Hard)</span> <<else>> <span class="red">(Impossible)</span> <</if>> <</widget>> <<widget "thighdifficulty">> <<if $settings.skillCheckStyle is "skillname" or $settings.blindStatsEnabled>> <<elseif (990 - ($enemytrust * 10) - currentSkillValue("thighskill") + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>> <span class="green">(Very Easy)</span> <<elseif (800 - ($enemytrust * 10) - currentSkillValue("thighskill") + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>> <span class="teal">(Easy)</span> <<elseif (600 - ($enemytrust * 10) - currentSkillValue("thighskill") + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>> <span class="lblue">(Medium)</span> <<elseif (400 - ($enemytrust * 10) - currentSkillValue("thighskill") + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>> <span class="blue">(Challenging)</span> <<elseif (200 - ($enemytrust * 10) - currentSkillValue("thighskill") + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>> <span class="purple">(Hard)</span> <<elseif (1 - ($enemytrust * 10) - currentSkillValue("thighskill") + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>> <span class="pink">(Very Hard)</span> <<else>> <span class="red">(Impossible)</span> <</if>> <</widget>> <<widget "peniledifficulty">> <<if $settings.skillCheckStyle is "skillname" or $settings.blindStatsEnabled>> <<elseif (990 - ($enemytrust * 10) - currentSkillValue("penileskill") + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>> <span class="green">(Very Easy)</span> <<elseif (800 - ($enemytrust * 10) - currentSkillValue("penileskill") + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>> <span class="teal">(Easy)</span> <<elseif (600 - ($enemytrust * 10) - currentSkillValue("penileskill") + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>> <span class="lblue">(Medium)</span> <<elseif (400 - ($enemytrust * 10) - currentSkillValue("penileskill") + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>> <span class="blue">(Challenging)</span> <<elseif (200 - ($enemytrust * 10) - currentSkillValue("penileskill") + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>> <span class="purple">(Hard)</span> <<elseif (1 - ($enemytrust * 10) - currentSkillValue("penileskill") + $enemyanger) lte (($enemyarousalmax / ($enemyarousal + 1)) * 100)>> <span class="pink">(Very Hard)</span> <<else>> <span class="red">(Impossible)</span> <</if>> <</widget>> <<widget "skulduggerycheck">> <<set $skulduggeryroll to random(1, 1000)>> <<set _skulduggery to currentSkillValue('skulduggery')>> <<set $skulduggerysuccess to 0>> <<if _skulduggery gte $skulduggerydifficulty>> <<set $skulduggerysuccess to 1>> <<elseif (_skulduggery + 100) gte $skulduggerydifficulty and $skulduggeryroll gte 100>> <<set $skulduggerysuccess to 1>> <<elseif (_skulduggery + 200) gte $skulduggerydifficulty and $skulduggeryroll gte 300>> <<set $skulduggerysuccess to 1>> <<elseif (_skulduggery + 300) gte $skulduggerydifficulty and $skulduggeryroll gte 500>> <<set $skulduggerysuccess to 1>> <<elseif (_skulduggery + 400) gte $skulduggerydifficulty and $skulduggeryroll gte 700>> <<set $skulduggerysuccess to 1>> <<elseif (_skulduggery + 500) gte $skulduggerydifficulty and $skulduggeryroll gte 900>> <<set $skulduggerysuccess to 1>> <</if>> <<if $temple_burden gte random(1, 100)>> <<set $skulduggerysuccess to 0>> <</if>> <<if _args[0] isnot "silent">> <<if $skulduggerysuccess is 1>> <span class="green">You succeed in your skulduggery.</span> <<else>> <span class="red">You fail in your skulduggery.</span> <</if>> <</if>> <</widget>> <<widget "skulduggerydifficulty">> <<if !$settings.blindStatsEnabled>> <<if $settings.skillCheckStyle is "skillname">> | <span class="orange">Skulduggery</span> <<else>> <<set _skulduggery to currentSkillValue('skulduggery')>> | <span class="orange">Skulduggery</span>: <<if _skulduggery gte $skulduggerydifficulty>> <span class="green">Very Easy</span> <<elseif (_skulduggery + 100) gte $skulduggerydifficulty>> <span class="teal">Easy</span> <<elseif (_skulduggery + 200) gte $skulduggerydifficulty>> <span class="lblue">Medium</span> <<elseif (_skulduggery + 300) gte $skulduggerydifficulty>> <span class="blue">Challenging</span> <<elseif (_skulduggery + 400) gte $skulduggerydifficulty>> <span class="purple">Hard</span> <<elseif (_skulduggery + 500) gte $skulduggerydifficulty>> <span class="pink">Very Hard</span> <<else>> <span class="red">Impossible</span> <</if>> <</if>> <</if>> <</widget>> <<widget "skulduggeryrequired">> /* this widget is only called after a failed attempt at picking a lock. if a player has their skulduggery at 198 (F+) and the lock level is 199 (also F+), it would be weird to show a requirement of skulduggery level that pc clearly already achieved according to stats. to combat that, the levels here are purposefully shown higher than they actually are */ <<if !$settings.blindStatsEnabled>> Skulduggery required: <<if $lock lt 0>> <span class="red">None</span> <<elseif $lock is 0>> <span class="pink">F</span> <<elseif $lock lte 100>> <span class="pink">F+</span> <<elseif $lock lte 200>> <span class="purple">D</span> <<elseif $lock lte 300>> <span class="purple">D+</span> <<elseif $lock lte 400>> <span class="blue">C</span> <<elseif $lock lte 500>> <span class="blue">C+</span> <<elseif $lock lte 600>> <span class="lblue">B</span> <<elseif $lock lte 700>> <span class="lblue">B+</span> <<elseif $lock lte 800>> <span class="teal">A</span> <<elseif $lock lte 900>> <span class="teal">A+</span> <<else>> <span class="green">S</span> <</if>> <</if>> <</widget>> <<widget "seductioncheck">> <<if !$settings.blindStatsEnabled>> Attractiveness rating: <<if $attractiveness gte 5000>> <span class="green">S</span> <<elseif $attractiveness gte 4000>> <span class="teal">A</span> <<elseif $attractiveness gte 3000>> <span class="lblue">B</span> <<elseif $attractiveness gte 2000>> <span class="blue">C</span> <<elseif $attractiveness gte 1000>> <span class="purple">D</span> <<else>> <span class="pink">F</span> <</if>> <br> Seduction Skill: <<if currentSkillValue("seductionskill") lte 0>> <span class="red">None</span> <<elseif currentSkillValue("seductionskill") gte 1 and currentSkillValue("seductionskill") lt 200>> <span class="pink">F</span> <<elseif currentSkillValue("seductionskill") gte 200 and currentSkillValue("seductionskill") lt 400>> <span class="purple">D</span> <<elseif currentSkillValue("seductionskill") gte 400 and currentSkillValue("seductionskill") lt 600>> <span class="blue">C</span> <<elseif currentSkillValue("seductionskill") gte 600 and currentSkillValue("seductionskill") lt 800>> <span class="lblue">B</span> <<elseif currentSkillValue("seductionskill") gte 800 and currentSkillValue("seductionskill") lt 1000>> <span class="teal">A</span> <<elseif currentSkillValue("seductionskill") gte 1000>> <span class="green">S</span> <</if>> <br> Overall rating: <<if $attractiveness + (currentSkillValue("seductionskill") * 5) gte 10000>> <span class="green">S</span> <<set $seductionrating to 6>> <<elseif $attractiveness + (currentSkillValue("seductionskill") * 5) gte 8000>> <span class="teal">A</span> <<set $seductionrating to 5>> <<elseif $attractiveness + (currentSkillValue("seductionskill") * 5) gte 6000>> <span class="lblue">B</span> <<set $seductionrating to 4>> <<elseif $attractiveness + (currentSkillValue("seductionskill") * 5) gte 4000>> <span class="blue">C</span> <<set $seductionrating to 3>> <<elseif $attractiveness + (currentSkillValue("seductionskill") * 5) gte 2000>> <span class="purple">D</span> <<set $seductionrating to 2>> <<else>> <span class="pink">F</span> <<set $seductionrating to 1>> <</if>> <br> Required rating: <<if $seductiondifficulty gte 10000>> <span class="green">S</span> <<set $seductionrequired to 6>> <<elseif $seductiondifficulty gte 8000>> <span class="teal">A</span> <<set $seductionrequired to 5>> <<elseif $seductiondifficulty gte 6000>> <span class="lblue">B</span> <<set $seductionrequired to 4>> <<elseif $seductiondifficulty gte 4000>> <span class="blue">C</span> <<set $seductionrequired to 3>> <<elseif $seductiondifficulty gte 2000>> <span class="purple">D</span> <<set $seductionrequired to 2>> <<else>> <span class="pink">F</span> <<set $seductionrequired to 1>> <</if>> <br><br> <<else>> <!-- Hidden stat checks --> <<if $attractiveness + (currentSkillValue("seductionskill") * 5) gte 10000>> <<set $seductionrating to 6>> <<elseif $attractiveness + (currentSkillValue("seductionskill") * 5) gte 8000>> <<set $seductionrating to 5>> <<elseif $attractiveness + (currentSkillValue("seductionskill") * 5) gte 6000>> <<set $seductionrating to 4>> <<elseif $attractiveness + (currentSkillValue("seductionskill") * 5) gte 4000>> <<set $seductionrating to 3>> <<elseif $attractiveness + (currentSkillValue("seductionskill") * 5) gte 2000>> <<set $seductionrating to 2>> <<else>> <<set $seductionrating to 1>> <</if>> <<if $seductiondifficulty gte 10000>> <<set $seductionrequired to 6>> <<elseif $seductiondifficulty gte 8000>> <<set $seductionrequired to 5>> <<elseif $seductiondifficulty gte 6000>> <<set $seductionrequired to 4>> <<elseif $seductiondifficulty gte 4000>> <<set $seductionrequired to 3>> <<elseif $seductiondifficulty gte 2000>> <<set $seductionrequired to 2>> <<else>> <<set $seductionrequired to 1>> <</if>> <</if>> <</widget>> <<widget "physiquedifficulty">> <<set _physiquedifficultymin to (_args[0] ? _args[0] : 1)>> <<set _physiquedifficultymax to (_args[1] ? _args[1] : $physiquemax)>> <<if _physiquedifficultymin gte _physiquedifficultymax>> <<set _physiquedifficultymax to _physiquedifficultymin + 1>> <</if>> <<set _physique to currentSkillValue('physique')>> <<if _args[2] is undefined and !$settings.blindStatsEnabled>> <<if $settings.skillCheckStyle is "skillname">> | <span class="orange">Physique</span> <<else>> | <span class="orange">Physique</span>: <<set _difficulty to Math.round(Math.clamp(_physique - _physiquedifficultymin, 0, _physiquedifficultymax) / (_physiquedifficultymax - _physiquedifficultymin) * 100)>> <<if _difficulty gt 100>> <<set _difficulty to 100>> <</if>> <<skillDifficultyText _difficulty>> <</if>> <</if>> <<if $temple_burden gte random(1, 100)>> <<set _physique to 0>> <</if>> <<if _physique gte random(_physiquedifficultymin, _physiquedifficultymax)>> <<set $physiqueSuccess to 1>> <<else>> <<set $physiqueSuccess to 0>> <</if>> <</widget>> <<widget "dancedifficulty">> <<set _dancedifficultymin to (_args[0] ? _args[0] : 1)>> <<set _dancedifficultymax to (_args[1] ? _args[1] : 1000)>> <<if _dancedifficultymin gte _dancedifficultymax>> <<set _dancedifficultymax to _dancedifficultymin + 1>> <</if>> <<set _danceskill to currentSkillValue('danceskill')>> <<if _args[2] is undefined and !$settings.blindStatsEnabled>> <<if $settings.skillCheckStyle is "skillname">> | <span class="orange">Dance</span> <<else>> | <span class="orange">Dance</span>: <<set _difficulty to Math.round(Math.clamp(_danceskill - _dancedifficultymin, 0, _dancedifficultymax) / (_dancedifficultymax - _dancedifficultymin) * 100)>> <<if _difficulty gt 100>> <<set _difficulty to 100>> <</if>> <<skillDifficultyText _difficulty>> <</if>> <</if>> <<if $temple_burden gte random(1, 100)>> <<set _danceskill to 0>> <</if>> <<if _danceskill gte random(_dancedifficultymin, _dancedifficultymax)>> <<set $danceSuccess to 1>> <<else>> <<set $danceSuccess to 0>> <</if>> <</widget>> <<widget "swimmingdifficulty">> <<set _swimmingdifficultymin to (_args[0] ? _args[0] : 1)>> <<set _swimmingdifficultymax to (_args[1] ? _args[1] : 1000)>> <<if _swimmingdifficultymin gte _swimmingdifficultymax>> <<set _swimmingdifficultymax to _swimmingdifficultymin + 1>> <</if>> <<set _swimmingskill to currentSkillValue('swimmingskill')>> <<if _args[2] is undefined and !$settings.blindStatsEnabled>> <<if $settings.skillCheckStyle is "skillname">> | <span class="orange">Swimming</span> <<else>> | <span class="orange">Swimming</span>: <<set _difficulty to Math.round(Math.clamp(_swimmingskill - _swimmingdifficultymin, 0, _swimmingdifficultymax) / (_swimmingdifficultymax - _swimmingdifficultymin) * 100)>> <<if _difficulty gt 100>> <<set _difficulty to 100>> <</if>> <<skillDifficultyText _difficulty>> <</if>> <</if>> <<if $temple_burden gte random(1, 100)>> <<set _swimmingskill to 0>> <</if>> <<if _swimmingskill gte random(_swimmingdifficultymin, _swimmingdifficultymax)>> <<set $swimmingSuccess to 1>> <<else>> <<set $swimmingSuccess to 0>> <</if>> <</widget>> <<widget "athleticsdifficulty">> <<set _athleticsdifficultymin to (_args[0] ? _args[0] : 1)>> <<set _athleticsdifficultymax to (_args[1] ? _args[1] : 1000)>> <<if _athleticsdifficultymin gte _athleticsdifficultymax>> <<set _athleticsdifficultymax to _athleticsdifficultymin + 1>> <</if>> <<set _athletics to currentSkillValue('athletics')>> <<if _args[2] is undefined and !$settings.blindStatsEnabled>> <<if $settings.skillCheckStyle is "skillname">> | <span class="orange">Athletics</span> <<else>> | <span class="orange">Athletics</span>: <<set _difficulty to Math.round(Math.clamp(_athletics - _athleticsdifficultymin, 0, _athleticsdifficultymax) / (_athleticsdifficultymax - _athleticsdifficultymin) * 100)>> <<if _difficulty gt 100>> <<set _difficulty to 100>> <</if>> <<skillDifficultyText _difficulty>> <</if>> <</if>> <<if $temple_burden gte random(1, 100)>> <<set _athletics to 0>> <</if>> <<if _athletics gte random(_athleticsdifficultymin, _athleticsdifficultymax)>> <<set $athleticsSuccess to 1>> <<else>> <<set $athleticsSuccess to 0>> <</if>> <</widget>> <<widget "willpowerdifficulty">> <<set _willpowerdifficultymin to (_args[0] ? _args[0] : 1)>> <<set _willpowerdifficultymax to (_args[1] ? _args[1] : $willpowermax)>> <<if _willpowerdifficultymin gte _willpowerdifficultymax>> <<set _willpowerdifficultymax to _willpowerdifficultymin + 1>> <</if>> <<set _willpower to currentSkillValue('willpower')>> <<if !$settings.blindStatsEnabled>> <<if _args[2] is undefined>> <<if $settings.skillCheckStyle is "skillname">> | <span class="orange">Willpower</span> <<else>> | <span class="orange">Willpower</span>: <<set _difficulty to Math.round(Math.clamp(_willpower - _willpowerdifficultymin, 0, _willpowerdifficultymax) / (_willpowerdifficultymax - _willpowerdifficultymin) * 100)>> <<if _difficulty gt 100>> <<set _difficulty to 100>> <</if>> <<skillDifficultyText _difficulty>> <</if>> <<elseif _args[2] is "combat">> <<if $settings.skillCheckStyle is "skillname">> <<elseif _difficulty gte 100>> <span class="green">(Very Easy)</span> <<elseif _difficulty gte 80>> <span class="teal">(Easy)</span> <<elseif _difficulty gte 60>> <span class="lblue">(Medium)</span> <<elseif _difficulty gte 40>> <span class="blue">(Challenging)</span> <<elseif _difficulty gte 20>> <span class="purple">(Hard)</span> <<elseif _difficulty gte 1>> <span class="pink">(Very Hard)</span> <<else>> <span class="red">(Impossible)</span> <</if>> <</if>> <</if>> <<if $temple_burden gte random(1, 100)>> <<set _willpower to 0>> <</if>> <<if _willpower gte random(_willpowerdifficultymin, _willpowerdifficultymax)>> <<set $willpowerSuccess to 1>> <<else>> <<set $willpowerSuccess to 0>> <</if>> <</widget>> <<widget "tendingdifficulty">> <<set _tendingdifficultymin to (_args[0] ? _args[0] : 1)>> <<set _tendingdifficultymax to (_args[1] ? _args[1] : 1000)>> <<if _tendingdifficultymin gte _tendingdifficultymax>> <<set _tendingdifficultymax to _tendingdifficultymin + 1>> <</if>> <<set _tending to currentSkillValue('tending')>> <<if _args[2] is undefined and !$settings.blindStatsEnabled>> <<if $settings.skillCheckStyle is "skillname">> | <span class="orange">Tending</span> <<else>> | <span class="orange">Tending</span>: <<set _difficulty to Math.round(Math.clamp(_tending - _tendingdifficultymin, 0, _tendingdifficultymax) / (_tendingdifficultymax - _tendingdifficultymin) * 100)>> <<if _difficulty gt 100>> <<set _difficulty to 100>> <</if>> <<skillDifficultyText _difficulty>> <</if>> <</if>> <<if $temple_burden gte random(1, 100)>> <<set _tending to 0>> <</if>> <<if _tending gte random(_tendingdifficultymin, _tendingdifficultymax)>> <<set $tendingSuccess to 1>> <<else>> <<set $tendingSuccess to 0>> <</if>> <</widget>> <<widget "housekeepingdifficulty">> <<set _housekeepingdifficultymin to (_args[0] ? _args[0] : 1)>> <<set _housekeepingdifficultymax to (_args[1] ? _args[1] : 1000)>> <<if _housekeepingdifficultymin gte _housekeepingdifficultymax>> <<set _housekeepingdifficultymax to _housekeepingdifficultymin + 1>> <</if>> <<set _housekeeping to currentSkillValue('housekeeping')>> <<if _args[2] is undefined and !$settings.blindStatsEnabled>> <<if $settings.skillCheckStyle is "skillname">> | <span class="orange">Housekeeping</span> <<else>> | <span class="orange">Housekeeping</span>: <<set _difficulty to Math.round(Math.clamp(_housekeeping - _housekeepingdifficultymin, 0, _housekeepingdifficultymax) / (_housekeepingdifficultymax - _housekeepingdifficultymin) * 100)>> <<if _difficulty gt 100>> <<set _difficulty to 100>> <</if>> <<skillDifficultyText _difficulty>> <</if>> <</if>> <<if $temple_burden gte random(1, 100)>> <<set _housekeeping to 0>> <</if>> <<if _housekeeping gte random(_housekeepingdifficultymin, _housekeepingdifficultymax)>> <<set $housekeepingSuccess to 1>> <<else>> <<set $housekeepingSuccess to 0>> <</if>> <</widget>> <<widget "difficulty">> <<if _args[0] and !$settings.blindStatsEnabled>> | Success Chance: <<if _args[0] gte 100>> <span class="green"><<print _args[0]>>%</span> <<elseif _args[0] gte 80>> <span class="teal"><<print _args[0]>>%</span> <<elseif _args[0] gte 60>> <span class="lblue"><<print _args[0]>>%</span> <<elseif _args[0] gte 40>> <span class="blue"><<print _args[0]>>%</span> <<elseif _args[0] gte 20>> <span class="purple"><<print _args[0]>>%</span> <<elseif _args[0] gte 1>> <span class="pink"><<print _args[0]>>%</span> <<else>> <span class="red"><<print _args[0]>>%</span> <</if>> <</if>> <</widget>> <<widget "englishdifficulty">> <<set _englishdifficultymin to (_args[0] ? _args[0] : 1)>> <<set _englishdifficultymax to (_args[1] ? _args[1] : 1000)>> <<if _englishdifficultymin gte _englishdifficultymax>> <<set _englishdifficultymax to _englishdifficultymin + 1>> <</if>> <<set _english to currentSkillValue('english')>> <<if _args[2] is undefined and !$settings.blindStatsEnabled>> <<if $settings.skillCheckStyle is "skillname">> | <span class="orange">English</span> <<else>> | <span class="orange">English</span>: <<set _difficulty to Math.round(Math.clamp(_english - _englishdifficultymin, 0, _englishdifficultymax) / (_englishdifficultymax - _englishdifficultymin) * 100)>> <<if _difficulty gt 100>> <<set _difficulty to 100>> <</if>> <<skillDifficultyText _difficulty>> <</if>> <</if>> <<if $temple_burden gte random(1, 100)>> <<set _english to 0>> <</if>> <<if _english gte random(_englishdifficultymin, _englishdifficultymax)>> <<set $englishSuccess to 1>> <<else>> <<set $englishSuccess to 0>> <</if>> <</widget>> <!-- args[0]: skill to be checked. args[1]: skill name to display. args[2]: skill required to have a chance. args[3]: skill required for 100% success rate args[4]: hide the skill text. --> <<widget "skill_difficulty">> <<set $_skill to _args[0]>> <<if typeof $_skill is "number">> <!-- Now we know $_skill is a valid number, we can perform our calculations safely. --> <<set _skilldifficultymin to (_args[2] ? _args[2] : 1)>> <<set _skilldifficultymax to (_args[3] ? _args[3] : 1000)>> <<if _skilldifficultymin gte _skilldifficultymax>> <<set _skilldifficultymax to _skilldifficultymin + 1>> <</if>> /* Note: willpower uses a different default value for skilldifficultymax */ <<if _args[4] is undefined and !$settings.blindStatsEnabled>> <<if $settings.skillCheckStyle is "skillname">> | <span class="orange"><<print _args[1]>></span> <<else>> | <span class="orange"><<print _args[1]>></span>: <<set _difficulty to Math.round(Math.clamp($_skill - _skilldifficultymin, 0, _skilldifficultymax) / (_skilldifficultymax - _skilldifficultymin) * 100)>> <<if _difficulty gt 100>> <<set _difficulty to 100>> <</if>> <<skillDifficultyText _difficulty>> <</if>> <</if>> <<else>> <<error { message: '<<skill_difficulty>> widget was given an invalid skill name: Not a number.', source: `Skill value: ${_args[0]}, skill display: ${_args[1]}, minimum: ${_args[2]}, max: ${_args[3]}, hide: ${_args[4]}` }>> <</if>> <</widget>> <<widget "historyrequired">> /* args[0] = historyTrait required */ <<if !$settings.blindStatsEnabled>> History Grade required: <<if _args[0] gte 1 and _args[0] lt 2>> <span class="blue">C</span> <<elseif _args[0] gte 2 and _args[0] lt 3>> <span class="lblue">B</span> <<elseif _args[0] gte 3 and _args[0] lt 4>> <span class="teal">A</span> <<elseif _args[0] gte 4>> <span class="green">A*</span> <</if>> <</if>> <</widget>> <<widget "skillDifficultyText">> <<set $_difficulty to _args[0]>> <<if !$settings.blindStatsEnabled>> <<if $_difficulty gte 100>> <span class="green">Simple <<if $settings.skillCheckStyle is "percentage">>$_difficulty%<</if>></span> <<elseif $_difficulty gte 80>> <span class="teal">Easy <<if $settings.skillCheckStyle is "percentage">>$_difficulty%<</if>></span> <<elseif $_difficulty gte 60>> <span class="lblue">Reasonable <<if $settings.skillCheckStyle is "percentage">>$_difficulty%<</if>></span> <<elseif $_difficulty gte 40>> <span class="blue">Challenging <<if $settings.skillCheckStyle is "percentage">>$_difficulty%<</if>></span> <<elseif $_difficulty gte 20>> <span class="purple">Hard <<if $settings.skillCheckStyle is "percentage">>$_difficulty%<</if>></span> <<elseif $_difficulty gte 1>> <span class="pink">Very Hard <<if $settings.skillCheckStyle is "percentage">>$_difficulty%<</if>></span> <<else>> <span class="red">Impossible <<if $settings.skillCheckStyle is "percentage">>$_difficulty%<</if>></span> <</if>> <</if>> <</widget>><<widget "sleep">> <<if numberOfEarSlime() gte 2 and $earSlime.corruption is 100 and $earSlime.growth gte 50 and $earSlime.focus is "none" and !$statFreeze and !_args[0]>> /* Doing events this way, means that npc's may still be loaded, so endevent or loading new npc's should not be done */ <<earSlimeFocusChoice>> <</if>> <<sleephour>> <<if _wakeEvent and !_args[0]>> <<sleep_clamp>> <<switch _wakeEvent>> <<case "slimeWakeAlleyway">><<slimeWakeAlleyway>> <<case "slimeWakeMasturbation">><<slimeWakeMasturbation>> <</switch>> <<exitAll>> <</if>> <<ruffleHairFromSleep>> <</widget>> <<widget "sleephour">> <<if random(1, 2500) is 1>> <<set _toast to true>> <</if>> <<set $sleepHoursTotal to 0>> <<set $_bonusFatigueLoss to 10>> <!-- sleeping with others --> <<if $bedGuest or $wolfbed is 1>> <<set $_bonusFatigueLoss += 5>> <</if>> <!-- bonus for sleeping with Love Interests with the Mate For Life trait --> <<if $bedGuest and $transformationParts.traits.mateForLife isnot "disabled" and isLoveInterest($bedGuest) and !$sleepWraith>> <<set $_bonusFatigueLoss += 3>><<set $stress -= 10>><<set $trauma -= 1>><<set $arousal += 10>> <</if>> <<set $_bonusFatigueLossClothing to 3>> <<for _slot range Object.keys($worn)>> /* Wearing any non-sleep clothing disables the sleep bonus under_upper and under_lower and anything else listed here are exempt from disabling the bonus Non-sleep clothing is defined as anything not tagged with "sleep" or "eerie" */ <<if !["under_upper", "under_lower", "genitals"].includes(_slot)>> <<if !["naked", "sleep", "eerie"].find((element) => $worn[_slot].type.includes(element))>> <<set $_bonusFatigueLoss to 0>> <<break>> <</if>> <</if>> <!-- wearing sleep clothes --> <<if $worn[_slot].type.includes("sleep")>> <<set $_bonusFatigueLoss += $_bonusFatigueLossClothing>> <<set $_bonusFatigueLossClothing to Math.clamp($_bonusFatigueLossClothing - 1, 1, 3)>> <</if>> <</for>> <!-- sleeping in a poor/regular/comfy bed at home provides a -10/0/+10 bonus regardless of clothing --> <<if $location is "home">> <<set $_bed to Furniture.get('bed')>> <<if $_bed.type.includes('comfy')>> <<set $_bonusFatigueLoss += 10>> <<elseif $_bed.type.includes('starter')>> <<set $_bonusFatigueLoss -= 10>> <</if>> <</if>> <!-- hopeless cycle "poor beds" challenge modifier --> <<if $hc and $hcChallenge and $hcChallenge.timeSleep>> <<set $_bonusFatigueLoss -= 40>> <</if>> <!-- note: every hour of sleep gives a standard 250 fatigue reduction, so this bonus may not be all that much. --> <!-- sleephour repeats this until you have slept for the selected number of hours --> <!-- if you select "just sleep", then you wake up when tiredness hits 0, or after 10 hours. --> <<for $sleephour gte 1 or $sleephour lte -1>> <<set $sleephour -= 1>> <<if $avery_mansion and $bus is "avery_bedroom">> <<avery_mansion>> <</if>> <<switch $location>> <<case "home">> <<set _robin to statusCheck("Robin")>> <<set _kylar to statusCheck("Kylar")>> <<if $sleepWraith>> <!-- Do nothing. Wraith mimicking Robin guarantees an uninterrupted sleep --> <<elseif $kylarenglish gte 1 and _kylarStatus.includes("Love") and _kylarStatus.includes("Lust") and Time.dayState is "night" and $kylarbed is undefined and $robinbed is undefined and $rng gte 96 and C.npc.Kylar.state is "active">> <<set _sleepinterrupt to 1>> <<set _kylarWake to 1>> <<set $kylarSleepEvent to 1>> <<elseif ($kylarenglish isnot 1 or $syndromekylar isnot 1) and !playerIsPregnant() and C.npc.Kylar.love lte 49 and C.npc.Kylar.rage gte 70 and Time.dayState is "night" and $kylarbed is undefined and $robinbed is undefined and $weekly.kylarCreep isnot 1 and C.npc.Kylar.state is "active">> <<set $weekly.kylarCreep to 1>> <<set _sleepinterrupt to 1>> <<set _kylarWake to 2>> <<elseif (($robinromance is 1 and _robin.lust gte 20) or (_robin.trauma gte 50 and $rng gte 51)) and !$robinbed and $robinwakeday isnot 1 and $kylarbed isnot 1 and $robinmissing is 0 and $robin.timer.hurt is 0 /*and !$robin_kicked_out*/>> <!-- Robin climbs into bed with you --> <<if (Time.hour gte 18 and $robin.stayup isnot 1) or (Time.hour lte 6 and $robin.stayup isnot 2)>> <<set _sleepinterrupt to 1>> <<set _robin.lovewake to 1>> <<set $robinwakeday to 1>> <</if>> <<elseif _robin.love gte 100 and $robinbed is undefined and $robindebtknown isnot 1 and $kylarbed isnot 1 and $robinmissing is 0>> <<if Time.hour gte 18 or Time.hour lte 6>> <<set _sleepinterrupt to 1>> <<set $robindebtwake to 1>> <</if>> <<elseif wraithSleepEventCheck()>> <<wraithEvent>> <<elseif $baileydefeatedchain gte 1 and dangerEvent(0.2) and !($avery_mansion and !["fallen", "hidden"].includes($avery_fate) and !($avery_mansion.rage.assess gte 9 or $avery_mansion.days_absent gte 2))>> <<set _sleepinterrupt to 1>> <<set $baileyrapewake to 1>> <<elseif $christmas is 1 and Time.monthDay is 25 and Time.hour lte 6 and $christmas_kylar is undefined and C.npc.Kylar.state is "active">> <<set _sleepinterrupt to 1>> <<set $christmas_kylar to 1>> <<elseif Time.schoolDay and Time.hour is 7 and !$daily.baileyWake>> <<set _sleepinterrupt to 1>> <<set $daily.baileyWake to true>> <<elseif $earSlime.growth gte 25 and $earSlime.growth gte (currentSkillValue('willpower') / 20) and random(0,100) lt 4 and Time.dayState is "night" and $earSlime.eventTimer lte 0 and $kylarbed isnot 1 and !$bedGuest>> <<set _wakeEvent to "slimeWakeAlleyway">> <<break>> <<elseif !$bedGuest and $exposed is 2 and $sleepHoursTotal gte 3 and !$weekly.slimeWakeMasturbation and $earSlime.growth gte (currentSkillValue('willpower') / 7) and random(0,100) lt 4 and !pcAreArmsBound("any")>> <<set _wakeEvent to "slimeWakeMasturbation">> <<break>> <</if>> <<case "temple">> <<if $earSlime.growth gte 25 and $earSlime.growth gte (currentSkillValue('willpower') / 20) and random(0,100) lt 4 and Time.dayState is "night" and $earSlime.eventTimer lte 0 and $kylarbed isnot 1 and !$bedGuest>> <<set _wakeEvent to "slimeWakeAlleyway">> <<break>> <<elseif !$bedGuest and $exposed is 2 and $sleepHoursTotal gte 3 and !$weekly.slimeWakeMasturbation and $earSlime.growth gte (currentSkillValue('willpower') / 7) and random(0,100) lt 4 and !pcAreArmsBound("any")>> <<set _wakeEvent to "slimeWakeMasturbation">> <<break>> <</if>> <<case "old_temple">> /* Hopeless Cycle event */ <<if $statFreeze and $hc>> <<if _hcEvent is "blood" or Time.isBloodMoon()>> <<set _sleepinterrupt to 1>> <<set $hc.bloodWake to true>> <<elseif Time.dayState is "night" and $hc.nightBreakIn is "tonight" and $prisoner.love gte 30 and !$hc.daily.nightmare>> <<set _sleepinterrupt to 1>> <<set $hc.daily.nightmare to true>> <<elseif Time.hour gte 7 and ["dawn", "day"].includes(Time.dayState)>> <<set _sleepinterrupt to 1>> <<set $hc.daily.wake to true>> <</if>> <</if>> <<case "asylum">> <<asylumeffects>> <<if Time.hour is 6 or ($asylumstate is "firsttreatment" and $daily.asylumTreatment1 isnot 1) or ($asylumstate is "secondtreatment" and $daily.asylumTreatment2 isnot 1) or ($asylumstate is "assessment" and $daily.asylumAssessment isnot 1)>> <<set _sleepinterrupt to 1>> <<elseif Time.hour is 6 and $location is "asylum" or $asylumstate is "firsttreatment" and $daily.asylumTreatment1 isnot 1 and $location is "asylum" or $asylumstate is "secondtreatment" and $daily.asylumTreatment2 isnot 1 and $location is "asylum" or $asylumstate is "assessment" and $daily.asylumAssessment isnot 1 and $location is "asylum">> <<set _sleepinterrupt to 1>> <<elseif $suspicion gte 80 and random(1, 10) gte 10>> <<set _sleepinterrupt to 1>> <<set $rapewake to 1>> <<elseif !$bedGuest and $exposed is 2 and $sleepHoursTotal gte 3 and !$weekly.slimeWakeMasturbation and $earSlime.growth gte (currentSkillValue('willpower') / 7) and random(0,100) lt 4 and !pcAreArmsBound("any")>> <<set _wakeEvent to "slimeWakeMasturbation">> <<break>> <</if>> <<case "prison">> <<if Time.hour is 6 and !$daily.prison.wake>> <<set _sleepinterrupt to 1>> <<set $daily.prison.wake to true>> <<elseif !$bedGuest and $exposed is 2 and $sleepHoursTotal gte 3 and !$weekly.slimeWakeMasturbation and $earSlime.growth gte (currentSkillValue('willpower') / 7) and random(0,100) lt 4 and !pcAreArmsBound("any")>> <<set _wakeEvent to "slimeWakeMasturbation">> <<break>> <</if>> <<case "alex_cottage">> <<if wraithSleepEventCheck()>> <<wraithEvent>> <<elseif (Time.hour gte 21 or Time.hour lte 5) and C.npc.Alex.lust gte 10 and $alexwake isnot 1>> <<set $alexwake to 1>> <<set _sleepinterrupt to 1>> <<elseif $farm_attack_timer is 0 and Time.hour gte 21>> <<set $remywake to 1>> <<set _sleepinterrupt to 1>> <<elseif !$bedGuest and $exposed is 2 and $sleepHoursTotal gte 3 and !$weekly.slimeWakeMasturbation and $earSlime.growth gte (currentSkillValue('willpower') / 7) and random(0,100) lt 4 and !pcAreArmsBound("any")>> <<set _wakeEvent to "slimeWakeMasturbation">> <<break>> <<elseif (Object.values($children).find(child => child.mother === "Alex" && child.location === "alex_cottage") or Object.values($children).find(child => child.father === "Alex" && child.location === "alex_cottage")) and Time.dayState is "night" and !$weekly.alexNightTimeNursery and $rng gte 56>> <<set _sleepinterrupt to 1>> <<set $weekly.alexNightTimeNursery to 1>> <<set _alexWake to 1>> <</if>> <<case "cabin">> <<if wraithSleepEventCheck()>> <<wraithEvent>> <<elseif Time.hour lte 6 and $edenwake isnot 1>> <<if C.npc.Eden.lust gte 26>> <<set $edenwake to 1>> <<set _sleepinterrupt to 1>> <<elseif $rng gte 91>> <<set $edenwake to 1>> <<set $edenNightmareWake to true>> <<set _sleepinterrupt to 1>> <</if>> <</if>> <<case "forest">> <<if $location is "forest" and $wolfpackferocity gte 10 and $wolfwake isnot 1>> <<set _sleepinterrupt to 1>> <<set $wolfwake to 1>> <<elseif !$bedGuest and !$wolfbed and $exposed is 2 and $sleepHoursTotal gte 3 and !$weekly.slimeWakeMasturbation and $earSlime.growth gte (currentSkillValue('willpower') / 7) and random(0,100) lt 4 and !pcAreArmsBound("any")>> <<set _wakeEvent to "slimeWakeMasturbation">> <<break>> <</if>> <<case "tower">> <<if wraithSleepEventCheck() and $bird and $bird.upgrades and $bird.upgrades.mirror is 1>> <<wraithEvent>> <<elseif $bird.state is "hunting" and $bird.timer lte 0>> <<set _sleepinterrupt to 1>> <<elseif $bird.state is "home" and !$bird.satisfied and random(1, 10) is 10>> <<set _sleepinterrupt to 1>> <<elseif $bird.state is "hunting" and $exposed is 2 and $sleepHoursTotal gte 3 and !$weekly.slimeWakeMasturbation and $earSlime.growth gte (currentSkillValue('willpower') / 7) and random(0,100) lt 4 and !pcAreArmsBound("any")>> <<set _wakeEvent to "slimeWakeMasturbation">> <<break>> <</if>> <<case "wolf_cave">> <<if wraithSleepEventCheck()>> <<wraithEvent>> <<elseif $wolfpackferocity gte 10 and $wolfwake isnot 1 and random(1,10) is 10 and $bedGuest isnot "Black Wolf">> <<set _sleepinterrupt to 1>> <<set $wolfwake to 1>> <<elseif !$bedGuest and !$wolfbed and $exposed is 2 and $sleepHoursTotal gte 3 and !$weekly.slimeWakeMasturbation and $earSlime.growth gte (currentSkillValue('willpower') / 7) and random(0,100) lt 4 and !pcAreArmsBound("any")>> <<set _wakeEvent to "slimeWakeMasturbation">> <<break>> <</if>> <<case "pound">> <<if Time.hour is 6 or Time.hour is 12 or Time.hour is 18>> <<set _sleepinterrupt to 1>> <<elseif !$bedGuest and !$wolfbed and $exposed is 2 and $sleepHoursTotal gte 3 and !$weekly.slimeWakeMasturbation and $earSlime.growth gte (currentSkillValue('willpower') / 7) and random(0,100) lt 4 and !pcAreArmsBound("any")>> <<set _wakeEvent to "slimeWakeMasturbation">> <<break>> <</if>> <<case "pirate_ship">> <<if wraithSleepEventCheck()>> <<wraithEvent>> <<elseif !$bedGuest and $exposed is 2 and $sleepHoursTotal gte 3 and !$weekly.slimeWakeMasturbation and $earSlime.growth gte (currentSkillValue('willpower') / 7) and random(0,100) lt 4 and !pcAreArmsBound("any")>> <<set _wakeEvent to "slimeWakeMasturbation">> <<break>> <</if>> <<case "island">> <<if $island[$island.home].camouflage is "advanced">> <<set _rng to random(1, 160)>> <<elseif $island[$island.home].camouflage is "basic">> <<set _rng to random(1, 140)>> <<elseif $island[$island.home].camouflage is "simple">> <<set _rng to random(1, 120)>> <<else>> <<set _rng to random(1, 100)>> <</if>> <<if $island.home is "rocky_hillock">> <<if _rng lte 5 and _sleepinterrupt isnot 1>> <<set $island_wake_1 to 1>> <<set _sleepinterrupt to 1>> <<elseif $exposed is 2 and $sleepHoursTotal gte 3 and !$weekly.slimeWakeMasturbation and $earSlime.growth gte (currentSkillValue('willpower') / 7) and random(0,100) lt 4 and !pcAreArmsBound("any")>> <<set _wakeEvent to "slimeWakeMasturbation">> <<break>> <</if>> <<elseif $island.home is "waterfall">> <<if _rng lte 5 and _sleepinterrupt isnot 1>> <<set $island_wake_1 to 1>> <<set _sleepinterrupt to 1>> <<elseif _rng lte 10 and _sleepinterrupt isnot 1>> <<set $island_wake_2 to 1>> <<set _sleepinterrupt to 1>> <<elseif $exposed is 2 and $sleepHoursTotal gte 3 and !$weekly.slimeWakeMasturbation and $earSlime.growth gte (currentSkillValue('willpower') / 7) and random(0,100) lt 4 and !pcAreArmsBound("any")>> <<set _wakeEvent to "slimeWakeMasturbation">> <<break>> <</if>> <<elseif $island.home is "gulch">> <<if _rng lte 5 and _sleepinterrupt isnot 1>> <<set $island_wake_1 to 1>> <<set _sleepinterrupt to 1>> <<elseif _rng lte 10 and _sleepinterrupt isnot 1>> <<set $island_wake_2 to 1>> <<set _sleepinterrupt to 1>> <<elseif _rng lte 15 and _sleepinterrupt isnot 1>> <<set $island_wake_3 to 1>> <<set _sleepinterrupt to 1>> <<elseif $exposed is 2 and $sleepHoursTotal gte 3 and !$weekly.slimeWakeMasturbation and $earSlime.growth gte (currentSkillValue('willpower') / 7) and random(0,100) lt 4 and !pcAreArmsBound("any")>> <<set _wakeEvent to "slimeWakeMasturbation">> <<break>> <</if>> <</if>> <<case "avery_mansion">> <<avery_mansion_interrupt>> <<if ["injury", "work", "party_missed", "date_ready", "party_prepare", "party", "skyscraper_ready", "fox"].includes(_avery_interrupt)>> <<set _sleepinterrupt to 1>> <<elseif Time.hour gte 0 and Time.hour lte 4 and $avery_mansion.schedule isnot "away" and $avery_mansion.sleep_interrupt isnot 1>> <<set _sleepinterrupt to 1>> <<set $avery_mansion.sleep_interrupt to 1>> <<elseif wraithSleepEventCheck()>> <<wraithEvent>> <</if>> <<case "forest_shop">> <<if ["walking_to_cafe", "cafe"].includes(gwylanSchedule()) and !$gwylanCafeWake and $exposed is 0>> <!-- Gwylan wakes player to walk to cafe --> <<set _sleepinterrupt to 1>> <<set $gwylanCafeWake to true>> <<set _gwylanCafeWake to true>> <<elseif C.npc.Gwylan.dom >= 120 and random(100, 175) lte C.npc.Gwylan.dom and ["sleep"].includes(gwylanSchedule()) and !$gwylanWake and $bedGuest isnot "Gwylan">> <!-- Gwylan climbs into doggy bed with you --> <<set _sleepinterrupt to 1>> <<set $gwylanWake to true>> <<set _gwylanWake to true>> <</if>> /* ToDo: Gwylan */ <</switch>> <!-- this will stop sleep from happening, meaning no fatigue reduction or time passing --> <<if _sleepinterrupt>> <<break>> <</if>> <<if _wraithinterrupt is 1>> <<set _sleepinterrupt to 1>> <<break>> <</if>> <!-- Keep events above this comment --> <<set $sleepHoursTotal += 1>><<set $sleepStat++>> <!-- for "just sleep" option, if sleep is no longer required OR the player has slept for 10 hours, interrupt it. --> <<if $sleephour lte -1 and ($tiredness lte 0 or $sleephour lte -11)>> <<break>> <</if>> <!-- fatigue is lowered by 200 for every hour slept and another 50 more if the player has no trauma. --> <<set $tiredness -= 200>> <<if !($sleeptrouble is 1 and $controlled is 0 and !$hypnosis_traits.slumber)>> <<set $tiredness -= 50>> <</if>> <<if $hypnosis_traits.slumber>> <<set _traumaToSleep to Math.floor($trauma / 100)>> <<set $tiredness -= _traumaToSleep>> <</if>> <<if $location is "island">> <<if $island[$island.home].curtains is "simple">> <<set $tiredness -= 15>> <<elseif $island[$island.home].curtains is "basic">> <<set $tiredness -= 30>> <<elseif $island[$island.home].curtains is "advanced">> <<set $tiredness -= 45>> <</if>> <<elseif $location is "tower" and $bedGuest isnot "alone">> <<switch $bird.upgrades.nest>> <<case 0>> <<case 1>><<set $tiredness -= 15>> <<case 2>><<set $tiredness -= 30>> <<case 3>><<set $tiredness -= 45>> <</switch>> <</if>> <<set $tiredness -= $_bonusFatigueLoss>> <<set Weather.BodyTemperature.addActivity("sleep")>> <<if $location is "tower">> <<bird_pass 60>> <<else>> <<pass 1 hour>> <</if>> <<if $nightmares gte 1 and $controlled is 0>> <<stress 6>> <</if>> <<sleep_clamp>>/*Prevents bugged out values affecting events in anyway, -2000 fatigue and -360 stress arnt helpful*/ <</for>> <</widget>> <<widget "sleepeffects">> <<if $stress gte $stressmax>> <<set $stress -= 2000>> <<trauma 10>> <span class="red">Your stress level reached a peak while you slept and has since subsided, but at cost to your mental health.</span> <<lstress>><<gtrauma>> <<ruffleHair>> <<saveTempHairStyle>> <br><br> <</if>> <<if !$sleepWraith and $bedGuest and $transformationParts.traits.mateForLife isnot "disabled" and isLoveInterest($bedGuest)>> <span class="green">Sleeping with your chosen partner fulfils an instinctual desire.</span> <<lstress>><<ltrauma>><<garousal>> <br><br> <</if>> <<if $scienceproject is "ongoing" and $sciencephallusknown isnot 1 and hasSexStat("promiscuity", 3)>> <<set $sciencephallusknown to 1>> A lewd thought comes to you as you wake up. <span class="gold">You've conceived the "local phalli" science project.</span> Check your journal for details. <br><br> <</if>> <<unset $bedGuest>> <</widget>> <<widget "wetDream">> <<if $specialClothesEffects.bimbo.total gte 100 and $specialClothesEffects.pimp.total gte 100>> <<set _lustful to $player.gender_appearance is "f" ? $specialClothesEffects.bimbo : $specialClothesEffects.pimp>> <<else>> <<set _lustful to $specialClothesEffects.bimbo.total gte 100 ? $specialClothesEffects.bimbo : $specialClothesEffects.pimp>> <</if>> Your sleep <<if _wakingEffect>>was<<else>>is<</if>> plagued by dirty dreams. <<arousal `_lustful.total / 10 * $sleepHoursTotal`>> <<arousal `100 * $sleepHoursTotal`>> <<if $arousal gte $arousalmax>> They push you over the edge. <<orgasm>> <<else>> <br><br> <</if>> <</widget>> <<widget "bedclotheson">> <<switch _args[0]>> <<case "bed" "Bed">> <<set $_storeLocation to "bed">> <<set $wardrobe_location to "wardrobe">> <<case "Farm Bed">> <<set $_storeLocation to "Farm Bed">> <<set $wardrobe_location to "alexFarm">> <<case "prison bed">> <<set $_storeLocation to "prison bed">> <<set $wardrobe_location to "prison">> <<case "Temple Bunk Bed">> <<set $_storeLocation to "Temple Bunk Bed">> <<set $wardrobe_location to "temple">> <<case "Pirate Bed Lie">> <<set $_storeLocation to "Pirate Bed Lie">> <<set $wardrobe_location to "pirate">> <<case "Mansion Bed">> <<set $_storeLocation to "Mansion Bed">> <<set $wardrobe_location to "avery_mansion">> <<default>> Something went wrong with the "bedclotheson" widget, please report <<run console.log('Something went wrong with the "bedclotheson" widget, please report')>> <</switch>> <<wardrobeSelection true>> <<updateWornClothingLocation $wardrobe_location>> <<if $wear_outfit is "clotheson">> /*Was causing some wierdness when getting out of bed*/ /*<<undress $wardrobe_location>>*/ <<loadTempHairStyle>> <<storeon $_storeLocation>> <<elseif $wear_outfit isnot "none">> <<storeon $_storeLocation>> <<undress $wardrobe_location>> <<wearoutfit>> <</if>> <<updateWornClothingLocation $wardrobe_location>> <<set $wear_outfit to "none">> <</widget>> <<widget "setSlimeSleepEvents">> <<if $earSlime.eventTimer lt 0>> <<set $earSlime.eventTimer to 0>> <</if>> <<set _eventsList to []>> <<if $earSlime.forcedCommando is undefined and $earSlime.exhibitionism gte 1>> <<set _eventsList.push("go commando")>> <</if>> <<if $earSlime.defyCooldown is 0 and Time.dayState is "night">> <<set _eventsList.push("masturbate to orgasm")>> <</if>> <<if $earSlime.promiscuity gte 2 and $earSlime.deviancy gte 2>> <<run _eventsList.push("have sex with someone or something")>> <<elseif $earSlime.promiscuity gte 2>> <<run _eventsList.push("have sex with someone")>> <</if>> <<if !$earSlime.alwaysSleepNaked and $earSlime.corruption gte 80 and $earSlime.exhibitionism gte 2>> <<run _eventsList.push("only sleep naked from now on")>> <</if>> <<if ["home", "temple"].includes($location) and Time.dayState is "night" and between(Time.hour, 20, 24)>> <<run _eventsList.push("go running or swimming for an hour")>> <<if currentSkillValue("skulduggery") gt 200>> <<set _eventsList.push("steal something")>> <</if>> <<if $earSlime.exhibitionism gte 3 and hasSexStat("exhibitionism", 3)>> <<set _eventsList.push("go running or swimming naked for an hour")>> <<set _eventsList.push("go running or swimming naked for two hours")>> <</if>> <<if $earSlime.exhibitionism gte 4 and hasSexStat("exhibitionism", 4)>> <<set _eventsList.push("study at the school library while naked for an hour")>> <<set _eventsList.push("study at the school library while naked for two hours")>> <</if>> <</if>> <<if ["home", "temple", "alex_cottage"].includes($location) and $earSlime.knowsAboutPhotoShoot and $earSlime.exhibitionism gte 2 and $photo.shoot is 0 and random(0,100) gte 50>> <<set _eventsList.push("fully expose yourself while working as a model in town")>> <</if>> <<if ["alex_cottage"].includes($location) and Time.dayState is "night" and between(Time.hour, 20, 24)>> <<if $earSlime.deviancy gte 2 and $settings.breastFeedingEnabled and $lactating and $milk_amount gte 1000 and $earSlime.focus isnot "impregnation">> <<set _eventsList.push("use the farm equipment to empty your breasts of milk")>> <</if>> <<if $earSlime.deviancy gte 2 and $player.penisExist and $player.penissize gte 0 and !playerChastity("penis") and $semen_amount gte 1000 and $earSlime.focus isnot "pregnancy" and $earSlime.defyCooldown is 0>> <<set _eventsList.push("use the farm equipment to empty your penis of semen")>> <</if>> <</if>> <<if $earSlime.growth gt 50>> <<if $earSlime.focus is "pregnancy" and $settings.forcedCrossdressingEnabled and !$earSlime.forcedDressing>> <<set _eventsList.push("only wear feminine clothes for a while")>> <<if playerIsPregnant() and playerBellySize(true) gte 5>> <<set _eventsList.push("only wear feminine clothes for a while")>> <<set _eventsList.push("only wear feminine clothes for a while")>> <</if>> <</if>> <<if $earSlime.focus is "impregnation" and $settings.forcedCrossdressingEnabled and !$earSlime.forcedDressing>> <<set _eventsList.push("only wear masculine clothes for a while")>> <<if !playerIsPregnant()>> <<set _eventsList.push("only wear masculine clothes for a while")>> <<set _eventsList.push("only wear masculine clothes for a while")>> <</if>> <</if>> <<if ["pregnancy", "mixed"].includes($earSlime.focus) and ($player.vaginaExist or $settings.analEnabled) and !playerIsPregnant()>> <<if maleChance() gt 0 or beastMaleChance() gt 0 or $settings.femaleNPCPenisChance gt 0>> <<set _task to `get sperm into your ${$player.vaginaExist ? "vagina" : "anus"}`>> <<run _eventsList.push(_task)>> <<run _eventsList.push(_task)>> <<if random(0,100) gte 50>> <<run _eventsList.push(_task)>> <<run _eventsList.push(_task)>> <<run _eventsList.push(_task)>> <</if>> <</if>> <<if $player.penisExist and $player.penissize gte 0 and $semen_volume gte 300 and !$earSlime.defyCooldown and $awareness gte 200>> <<set _task to `get your own sperm into your ${$player.vaginaExist ? "vagina" : "anus"}`>> <<run _eventsList.push(_task)>> <<run _eventsList.push(_task)>> <<if random(0,100) gte 50>> <<run _eventsList.push(_task)>> <<run _eventsList.push(_task)>> <<run _eventsList.push(_task)>> <</if>> <</if>> <</if>> <<if $player.penisExist and ["impregnation", "mixed"].includes($earSlime.focus)>> <<if maleChance() lt 100 or beastMaleChance() lt 100 or $settings.maleNPCVaginaChance gt 0>> <<run _eventsList.push("ejaculate into someone's vagina")>> <<run _eventsList.push("ejaculate into someone's vagina")>> <<if random(0,100) gte 50>> <<run _eventsList.push("ejaculate into someone's vagina")>> <<run _eventsList.push("ejaculate into someone's vagina")>> <<run _eventsList.push("ejaculate into someone's vagina")>> <</if>> <</if>> <</if>> <</if>> <<if $earSlime.growth gte 100 and $earSlime.defyCooldown gte Math.clamp(30 - Math.floor($earSlime.growth / 9), 2, 20) + 4 and $settings.ruinedOrgasmEnabled>> <<set $earSlimeEvent to "masturbate and orgasm at least ten times">> <<elseif $earSlime.growth gte 100 and $earSlime.defyCooldown gte Math.clamp(30 - Math.floor($earSlime.growth / 9), 2, 20) - 4 and $settings.ruinedOrgasmEnabled>> <<set $earSlimeEvent to "masturbate and orgasm at least five times">> <<elseif _eventsList.length>> <<set _maxEvents to _eventsList.length - 1>> <<set $earSlimeEvent to _eventsList[random(0,_maxEvents)]>> <</if>> <</widget>> <<widget "slimeSleepEvents">> <<if $earSlimeEvent is "masturbate to orgasm" and ["pregnancy", "mixed"].includes($earSlime.focus) and ($player.vaginaExist or $settings.analEnabled) and !playerIsPregnant() and $player.penisExist and $player.penissize gte 0 and $semen_volume gte 300 and !$earSlime.defyCooldown and $awareness gte 200>> <<set $earSlimeEvent to `get your own sperm into your ${$player.vaginaExist ? "vagina" : "anus"}`>> <</if>> <<set _tempEventHide to true>> <<set _noSleep to $earSlimeEvent.includes("go running or swimming") or $earSlimeEvent.includes("study at the school") or $earSlimeEvent.includes("masturbate")>> <span @class="$earSlime.startedThreats ? 'lewd' : 'lblue'">The slime in your head commands you to <<print $earSlimeEvent>><<if _noSleep>> before sleeping<</if>>.</span> It promises rewards if you comply<<if $earSlime.startedThreats>> and threatens consequences if you do not<</if>>. <br><br> <<link [[Obey|SleepSlimeEventObey]]>><<corruption 1>><<pain -4>><<stress -6>><<trauma -12>><<sub 1>><</link>><<gcorruption>><<lpain>><<lltrauma>><<lstress>> <br> <<if $earSlime.startedThreats>> <<link [[Defy|SleepSlimeEventDefy]]>><<corruption -1>><<pain 8>><<stress 6>><<trauma 6>><<sub 1>><</link>><<lcorruption>><<ggpain>><<ggtrauma>><<ggstress>> <<else>> <<link [[Ignore|SleepSlimeEventDefy]]>><<set $phase to 1>><<unset $earSlimeEvent>><</link>> <</if>> <br> <<exitAll>> <</widget>> <<widget "slimeEventResult">> <<set $earSlime.event to $earSlimeEvent>> <<unset $earSlimeEvent>> <<set $earSlime.eventTimer to 4>> <<if !$slimeBedExit>> <<set $slimeBedExit to "Bed">> <<set $slimeBedroomExit to "Bedroom">> <</if>> <<switch $earSlime.event>> <<case "go running or swimming naked for an hour">><<set $earSlime.eventLength to 2>> <<case "go running or swimming naked for two hours">><<set $earSlime.eventLength to 4>> <<case "study at the school library while naked for an hour">><<set $earSlime.eventLength to 3>> <<case "study at the school library while naked for two hours">><<set $earSlime.eventLength to 6>> <</switch>> <<if $earSlime.event.includes("masturbate and orgasm at least")>> /* Gets set to 0 on it being completed */ <<set $earSlime.defyCooldown += 82>> <</if>> <<if $earSlime.event.includes("go running or swimming") or $earSlime.event.includes("study at the school") or $earSlime.event.includes("masturbate") or $earSlime.event.includes("use the farm equipment to empty")>> <<set $earSlime.noSleep to true>> <<else>> <<set $earSlime.noSleep to false>> <</if>> <<set $_multiplier to $earSlime.growth lt 150 ? 1 : 2>> <<if $earSlime.event is "only wear feminine clothes for a while">> <<set $earSlime.event to "">> <<if playerIsPregnant() and playerBellySize(true) gte 5>> <<set $earSlime.forcedDressing to {type: "f", days: random(14 * $_multiplier, 31 * $_multiplier)}>> <<else>> <<set $earSlime.forcedDressing to {type: "f", days: random(3 * $_multiplier, 14 * $_multiplier)}>> <</if>> <<elseif $earSlime.event is "only wear masculine clothes for a while">> <<set $earSlime.event to "">> <<set $earSlime.forcedDressing to {type: "m", days: random(3 * $_multiplier, 14 * $_multiplier)}>> <</if>> <<if $earSlime.event is "only sleep naked from now on">> <<strip>> <<set $earSlime.alwaysSleepNaked to true>> <<set $earSlime.event to "">> You strip before getting into bed. <br><br> <<link [[Next|$slimeBedExit]]>><<unset $slimeBedExit>><<unset $slimeBedroomExit>><</link>> <<elseif $earSlime.event is "go commando">> <<set $earSlime.event to "">> <<if $earSlime.corruption lt 50 and $earSlime.growth is 0>> <<set $earSlime.forcedCommando to random(2, 4)>> <<elseif $earSlime.growth is 0>> <<set $earSlime.forcedCommando to random(7, 21)>> <<else>> <<set $earSlime.forcedCommando to random(14, 31)>> <</if>> <<if !playerHasStrapon() and !$worn.under_lower.outfitSecondary and $worn.under_lower.name isnot "naked">> You strip your $worn.under_lower.name before getting into bed. <<generalUndress "wardrobe" "under_lower">> <<else>> You lie back down into bed. <</if>> <br><br> <<link [[Next|$slimeBedExit]]>><<unset $slimeBedExit>><<unset $slimeBedroomExit>><</link>> <<elseif !$earSlime.noSleep>> You lie back down into bed. <br><br> <<link [[Next|$slimeBedExit]]>><<unset $slimeBedExit>><<unset $slimeBedroomExit>><</link>> <<else>> You move away from your bed to do the task given to you. <<switch $slimeBedExit>> <<case "Bed">><<storeon "bed" "return">> <<case "Farm Bed">><<storeon "farm bed" "return">> <<case "Farm Alex Bed">><<storeon "farm alex bed" "return">> <<case "Temple Bunk Bed">><<storeon "Temple Bunk Bed" "return">> <</switch>> <br><br> <<link [[Next|$slimeBedroomExit]]>><<unset $slimeBedExit>><<unset $slimeBedroomExit>><</link>> <</if>> <</widget>> <<widget "slimeEventEnd">> <<if _args[0]>> <<if $earSlime.event.includes(_args[0]) and (!$earSlime.event.includes("naked") or $exposed is 2)>> <<set $earSlime.eventLength -= 1>> <<if $earSlime.eventLength lte 0>> <<set $earSlime.event to "">> <<set $earSlime.eventLength to 0>> <<set $earSlime.noSleep to false>> <</if>> <</if>> <</if>> <</widget>> <<widget "wraithEvent">> <!-- this is because this event wakes the player up AFTER they have slept for an hour. --> <<unset _sleepinterrupt>> <<set _wraithinterrupt to 1>> <<set $wraith.nightmare to 2>> <<set $wraith.hunt to 0>> <<set $foresthunt to 0>> <</widget>> <<widget "ruffleHairFromSleep">> <!-- Roll a chance to wake up with ruffled hair --> <!-- Chance is based on number of hours slept, with Trauma and Stress adding "calculated" hours --> <!-- Trauma adds max 4.5, Stress 2 --> <!-- Chances are ~5% at 8 hours, ~13% at 10 hours, 99% at 16.5 calculated hours --> <!-- Math below uses rng of 1000 and calculates 75 instead of 750 for more granular probability --> <!-- Use the below graph to calculate and demo --> <!-- New Graph: https://www.desmos.com/calculator/xd73rdkx1v --> <<if $ruffledisable is "f">> <<set $_calcTrauma to ($trauma - $traumamax / 10) / 1000>> <<if $_calcTrauma gte 0>> <<set $_calcStress to $stress / 5000>> <<set $_calcTotal to $_calcTrauma + $_calcStress + $sleepHoursTotal>> <<set $_chance to $_calcTotal ** 4 / 75>> <<rng 1000>> <<if $_chance gt $rng>> <span class="yellow">Your hair is tousled.</span> <<ruffleHair>> <<saveTempHairStyle>> <</if>> <</if>> <</if>> <</widget>> <<widget "ruffleHair">> <!-- Find a style group of current hair (loose, braid, etc.) and pick a random one from a list of corresponding 'ruffled' styles. If none found then keep current hair --> <<if $ruffledisable is "f">> <<set $_hair to setup.hair.hairtype.find(x => x.list.includes($hairtype))>> <<set $_fringe to setup.hair.fringetype.find(x => x.list.includes($fringetype))>> <<if $_hair>> <<set $_rndhair to $_hair.devolve.random()>> <</if>> <<if $_fringe>> <<set $_rndfringe to $_fringe.devolve.random()>> <</if>> <<set $hairtype to $_rndhair || $hairtype>> <<set $fringetype to $_rndfringe || $fringetype>> <</if>> <</widget>> <<widget "earSlimeFocusChoice">> /* This event cannot run endevent or make changes to loaded npc's in anyway */ <<set _prevLocation to $location>> <<set $location to "tentworld">><<set $outside to 0>> <<set _pregnancyEnabled to $settings.playerPregnancyHumanEnabled or $settings.playerPregnancyBeastEnabled>> <<if $earSlime.dreamRejected>> You awake to a familiar feeling of paralysis. The pressure on your body isn't as intense as last time, but still brings you a sense of unease. <<if $earSlime.dreamRejected gte 5>> <span class="green">Despite this, you know by now that the sensation isn't harmful.</span> <</if>> <<else>> You wake with a start. An oppressive darkness surrounds you. The surface you lie on seems to shift and crawl under your back. You're pinned to it by an invisible pressure. <span class="red">You can't move!</span><<gstress>><<stress 6>> <</if>> <br><br> Even your eyes are frozen in place. You can faintly discern that there's two figures in the room, one on either side of you. The darkness and odd, squirming movements make it impossible to make out any details. Before you can process what's happening, they start to speak. The figures tell you that you have a choice to make, one <span class="sub">that cannot be ignored or easily taken back</span>.<<if $earSlime.dreamRejected gte 10>> The volume of their combined voices makes it sound like a demand rather than an offer.<</if>> <br><br> The voice from the left whispers in your ear. Its words overlap themselves, promising you many things at once. It claims it will bring you fulfilment by granting you <<if _pregnancyEnabled>> <span class="lewd">a womb filled with life<<if $settings.breastFeedingEnabled>> and breasts filled with milk<</if>></span>. <<if !$player.vaginaExist and !(playerIsPregnant() and playerAwareTheyArePregnant()) and Object.values($children).find(child => child.mother === "pc")>> It also promises that the limits of your current body will not hold you back. <</if>> <<else>> <span class="lewd">pure femininity</span>. <</if>> <br> The first voice is interrupted by the one on your right, grabbing your attention. Your mind is assaulted with more promises. It tells you that it will help you fulfil yourself through <<if $settings.npcPregnancyEnabled>> <span class="lewd">filling others with your seed</span>, <<else>> <span class="lewd">filling the holes of others</span>, <</if>> <<if $player.penisExist>> by giving you the size and virility to do so. <<else>> by giving you the penis that you lack. <</if>> The voices invading your mind start to subside. The peace is short-lived as they start to talk over one another. Your own thoughts are drowned out as they argue about what your fate should be. <<gstress>><<stress 6>> <br><br> <<link [[Agree with the voice on the left|$passage]]>><<set $location to _prevLocation>><<set $earSlime.focus to "pregnancy">><<set $earSlime.growth++>><</link>><<if $player.sex is "m" and !$settings.analEnabled and _pregnancyEnabled>><<note "With anal being disabled, pregnancy cannot occur for you" "italic">><</if>> <br> <<link [[Agree with the voice on the right|$passage]]>><<set $location to _prevLocation>><<set $earSlime.focus to "impregnation">><<set $earSlime.growth++>><</link>><<if $whitneypantiescheck is 2>><<note "Not recommended without disabling 'forced crossdressing'">><</if>> <br> <<link [[Agree with both voices|$passage]]>><<set $location to _prevLocation>><<set $earSlime.focus to "mixed">><<set $earSlime.growth++>><</link>> <br> <<link [[Refuse both voices |$passage]]>><<set $location to _prevLocation>><<set $earSlime.growth -= 5 + Math.clamp($earSlime.dreamRejected, 0, 20)>><<set $earSlime.dreamRejected++>><</link>> <br> <<exitAll>> <</widget>> <<widget "nightmareWake">> You <<if _wakingEffect>>dreamt of<<else>>dream you are<</if>> being hunted by something <<if ["haunt", "despair"].includes($wraith.state) and $rng lte 25>>pale<<else>>dark<</if>> and terrible. <br><br> <</widget>><<effects>> You obey the slime's demand. <<slimeEventResult>><<effects>> <<if !$slimeBedExit>> <<set $slimeBedExit to "Bed">> <<set $slimeBedroomExit to "Bedroom">> <</if>> <<if $phase is 1>> You ignore the slime's demand and get into bed without listening any further. <<set $earSlime.event to "">> <br><br> <<link [[Next|$slimeBedExit]]>><<unset $slimeBedExit>><<unset $slimeBedroomExit>><<endevent>><</link>> <<elseif $earSlime.defyCooldown>> <<if $earSlime.growth gte 100>> <<set $earSlime.defyCooldown += 2>> You defy the slime's demand and get into bed without listening any further. However, <span class="red">it doesn't stop you, knowing that it can punish you in other ways.</span> <<else>> You try to defy the slime's demand and get into bed without listening any further. However, <span class="teal">it's still worn out from overpowering you earlier.</span> It tries <span class="green">but fails</span> to force your steps in the opposite direction. <</if>> <<set $earSlime.event to "">> <br><br> <<link [[Next|$slimeBedExit]]>><<unset $slimeBedExit>><<unset $slimeBedroomExit>><</link>> <<elseif $earSlime.corruption gte (currentSkillValue('willpower') / 10)>> The slime is able to force you to comply with its demand. <<slimeEventResult>> <<else>> You are able to defy the slime's demand and get into bed without listening any further. <<set $earSlime.event to "">><<set $earSlime.defyCooldown += 4>> <br><br> <<link [[Next|$slimeBedExit]]>><<unset $slimeBedExit>><<unset $slimeBedroomExit>><</link>> <</if>><<widget "plots_init">> /* * First argument: location. * Second argument: number of plots. * Third argument: ground type (earth, water). * Fourth argument: plot quality * Fifth argument: plot size */ /* Note: if you plan to add a new plot size, make sure to update all the places where plot size is hardcoded. */ <<set $_plotsInLocation to []>> <<for _i to 0; _i lt _args[1]; _i++>> <<set $_plotsInLocation[_i] to clone(setup.tending.plot_base)>> <<set $_plotsInLocation[_i].bed to _args[2]>> <<set $_plotsInLocation[_i].quality to _args[3]>> <<set $_plotsInLocation[_i].size to _args[4]>> <</for>> <<set $plots[_args[0]] to $_plotsInLocation>> <</widget>> <<widget "add_plot">> /*Adds a plot to an existing location. Arguments are as in the plots_init widget, but the second argument and beyond are shifted down one.*/ <<set $_plotsInLocation to $plots[_args[0]]>> <<set $_last to $_plotsInLocation.length>> <<set $_plotsInLocation.push(clone(setup.tending.plot_base))>> <<set $_plotsInLocation[$_last].bed to _args[1]>> <<set $_plotsInLocation[$_last].quality to _args[2]>> <<set $_plotsInLocation[$_last].size to _args[3]>> <</widget>> <<widget "clear_plot">> /*Returns a plot to its default state. First argument: location. Second argument: index of plot to be reset. OR First argument: the plot to operate on. */ <<if _args[1] isnot undefined>> <<set $_plot to $plots[_args[0]][_args[1]]>> <<else>> <<set $_plot to _args[0]>> <</if>> <<if $_plot.baseQuality isnot undefined and !$backgroundTraits.includes("greenthumb")>> <<if $_plot.fertiliserDecay gt 0>> <<set $_plot.fertiliserDecay-->> <</if>> <<if $_plot.fertiliserDecay is 0 and $_plot.quality gt $_plot.baseQuality>> <<set $_plot.quality-->> <<set $tendingvars.plotDecay to 2>> <<if $_plot.quality gt $_plot.baseQuality>> <<set $_plot.fertiliserDecay to 2>> <<if $_plot.size isnot "large">> <<set $_plot.fertiliserDecay to 3>> <</if>> <<set $tendingvars.plotDecay to 1>> <</if>> <</if>> <</if>> <<set $_plot.water to 0>> <<set $_plot.days to 0>> <<set $_plot.plant to "none">> <<set $_plot.till to 0>> <<set $_plot.stage to 0>> <</widget>> <<widget "display_quality">><<silently>> <<set $_plot to _args[0]>> <<switch $_plot.bed>> <<case "water">><<set _bedType to "water">> <<case "earth">><<set _bedType to "soil">> <<default>><<set _bedType to clone($_plot.bed)>> <</switch>> <<switch Math.clamp($_plot.quality, 0, 4)>> <<case 1>> <<set $_result to `<span class="blue">poor `+_bedType+`</span>`>> <<case 2>> <<set $_result to `<span class="lblue">decent `+_bedType+`</span>`>> <<case 3>> <<set $_result to `<span class="teal">good `+_bedType+`</span>`>> <<case 4>> <<set $_result to `<span class="green">excellent `+_bedType+`</span>`>> <<default>> <<set $_result to `<span class="red">ERROR</span>`>> <</switch>> <</silently>><<print $_result>><</widget>> <<widget "display_plot">>/*Argument is the plot location you want to display.*/ <<set _location to _args[0]>> <<set $_plotsHere to $plots[_location]>> <<set _water_needed to 0>> There <<print $_plotsHere.length is 1 ? "is" : "are">> <<number $_plotsHere.length>> tillable <<switch $_plotsHere[0].size>> <<case "small">> <span class="lblue"><<print $_plotsHere.length is 1 ? "bed" : "beds">></span> <<case "medium">> <span class="teal"><<print $_plotsHere.length is 1 ? "plot" : "plots">></span> <<default>> <span class="green"><<print $_plotsHere.length is 1 ? "field" : "fields">></span> <</switch>> here. <<if $fertiliser.current + $fertiliser.used gt 0>> You have <<number $fertiliser.current>> fertiliser. <</if>> Tilling time is reduced by tending skill. <br><br> <<set $_i to 0>> <<for _plantbed range $_plotsHere>> <<capture _plantbed>> <span class="gold"><<wordify_i $_i true>> plot (<<display_quality _plantbed>>):</span> <<if _plantbed.stage gte 1>> <<set $_plantedPlant to setup.plants[_plantbed.plant]>> <<if $_plantedPlant is undefined>> <<error { message : `Could not access property from modded save. (${_plantbed.plant})`, }>> <<exitAll>> <</if>> <<if Weather.precipitation is "rain">> <<set _plantbed.water to 1>> <</if>> <</if>> <<if _plantbed.stage gte 5>> <span class="green">The <<print $_plantedPlant.seed_name ? `$_plantedPlant.seed_name is` : `$_plantedPlant.plural are`>> flowering and ready for picking.</span> <br> <<switch _plantbed.size>> <<case "small">> <<set $_timeStr to "0:05">><<set _pass to 5>> <<case "medium">> <<set $_timeStr to "0:15">><<set _pass to 15>> <<default>> <<set $_timeStr to "1:00">><<set _pass to 60>> <</switch>> <<if pcAreArmsBound("both")>> <span class="red">Can't pick when your arms are bound.</span> <<else>> <<if $options.images is 1 and $_plantedPlant.icon>> <img class="tending_icon" @src="`img/misc/icon/tending/` + $_plantedPlant.icon"> <</if>> <<link "Pick ($_timeStr)" $passage>><<pass _pass>><<tending_harvest _plantbed>><<clear_plot _plantbed>><</link>> <</if>> <br> <<elseif _plantbed.stage is 4>> <span class="teal">The <<print $_plantedPlant.seed_name ? `$_plantedPlant.seed_name is` : `$_plantedPlant.plural are`>> budding.</span> <<elseif _plantbed.stage is 3>> <span class="lblue">The <<print $_plantedPlant.seed_name ? `$_plantedPlant.seed_name has` : `$_plantedPlant.plural have`>> grown into seedlings.</span> <<elseif _plantbed.stage is 2>> <span class="blue"><<print $_plantedPlant.seed_name ? `${$_plantedPlant.seed_name.toUpperFirst()} sprouts` : `Thin $_plantedPlant.plural sprout`>> from the soil.</span> <<elseif _plantbed.stage is 1>> <span class="blue">You planted <<print $_plantedPlant.name.replace(/_/g," ")>> seeds here.</span> <<else>> <<if _plantbed.till gte 1>> The soil is ready for planting. <<tendingPlantSeedsOptions _location _plantbed>> <<else>> The soil is ready for tilling. <br> <<tendingTillOptions _plantbed>> <</if>> <</if>> <<if _plantbed.stage gte 1 and _plantbed.stage lt 5>> <<if _plantbed.bed is "water">> <br> <<elseif _plantbed.water is 1>> <span class="green">The <<print (_plantbed.bed is "large" ? "field" : "plot")>> is watered.</span> <br> <<else>> <span class="purple">The <<print (_plantbed.bed is "large" ? "field" : "plot")>> is dry.</span> <br> <<tendingWaterPlot _plantbed>> <br> <</if>> <</if>> <br> <</capture>> <<set $_i++>> <</for>> <<if _water_needed gte 1>> <<set _plotsToWater to $_plotsHere.filter(plot => plot.stage >= 1 && plot.stage < 5 && plot.bed !== "water" && plot.water === 0)>> <<set _totalTimeToWater to 0>> <<run _plotsToWater.forEach(plot => _totalTimeToWater += setup.tending.wateringTimes[plot.size])>> <<set $_time to getTimeString(_totalTimeToWater)>> <<if $farm_attack_timer is 0>> <<set $_hoursUntilAttack to (24 - Time.hour)>> <</if>> <<if $location is "alex_farm" and _plotsToWater.length gte $_hoursUntilAttack>> <span class="pink">You won't have enough time to water all your fields before Remy's arrival.</span> <<else>> <<if !pcAreArmsBound("both")>> <<gardenicon "water">> <<link "Water all dry beds ($_time)" $passage>> <<tendingWaterAllDryBeds _plotsToWater>><<tiredness _water_needed>><<physique _water_needed>><<tending _water_needed>> <</link>><<gtiredness>><<gtending>> <</if>> <</if>> <br> <</if>> <<if $debug is 1 and $_plotsHere.filter(plot => plot.stage > 0 && plot.stage < 5).length gte 1>> <br> <<link "DEBUG: Instagrow all plants here" $passage>><<run tendingInstaGrow(_location)>><</link>> <br> <</if>> <</widget>> <<widget "tendingWaterPlot">> <<set _plantbed to _args[0]>> <<set _water_needed += 1>> <<switch _plantbed.size>> <<case "small">><<set _tStatup to 1>><<set _tPass to 5>> <<case "medium">><<set _tStatup to 2>><<set _tPass to 15>> <<default>><<set _tStatup to 6>><<set _tPass to 60>> <</switch>> <<set $_time to getTimeString(_tPass)>> <<if pcAreArmsBound("both")>> <span class="red">Can't water when your arms are bound.</span> <<else>> <<wearProp "watering can">> <<gardenicon "water">> <<link "Water ($_time)" $passage>> <<tending _tStatup>><<pass _tPass>><<set _plantbed.water to 1>><<set $tendingvars.plot_watered to true>> <<tiredness _tStatup>><<physique _tStatup>><<set $phase to Number(dangerEvent())>><<set $phase2 to "watered">> <</link>><<gtiredness>><<gtending>> <</if>> <</widget>> <<widget "tendingWaterAllDryBeds">> <<wearProp "watering can">> <<set $_plotsToWater to _args[0]>> <<for $_plot range $_plotsToWater>> <<set $_plot.water to 1>> <<set _waterTime to setup.tending.wateringTimes[$_plot.size]>> <<pass _waterTime>><<set $phase to Number(dangerEvent())>><<set $phase2 to "watered">> <</for>> <<set $tendingvars.all_plots_watered to true>> <</widget>> <<widget "tendingPlantSeedsOptions">> <<set _location to _args[0]>> <<set _plantbed to _args[1]>> <<if $plants_known.length is 0>> Search wild areas for seeds to plant. <</if>> <<switch _location>> <<case "farm">> <<set _irrigation to ($farm.irrigation ? $farm.irrigation : 0)>> <<default>> <<set _irrigation to 0>> <</switch>> <<for _plantType range $plants_known>> <br> <<set $_plant to setup.plants[_plantType]>> <<if !$_plant>> <span class="red">Plant type '<<print _plantType>>' not found.</span> <br><br> Please report this. <<elseif $_plant.season.includes(Time.season) or (_location is "garden" and $alex_greenhouse gte 3)>> <<set $_name to $_plant.seed_name ? $_plant.seed_name : $_plant.plural>> /* comparing soil types; check if target bed is compatible with the seed's soil type */ <<if $_plant.bed is _plantbed.bed>> <<switch _plantbed.size>> <<case "small">><<set _passTime to 30>> <<case "medium">><<set _passTime to 90>> <<default>><<set _passTime to 180>> <</switch>> <<set $_timeString to getTimeString(_passTime)>> <<capture _passTime _plantbed _plantType>> <<if $options.images is 1 and $_plant.icon>> <img class="tending_icon" @src="`img/misc/icon/tending/` + $_plant.icon"> <</if>> <<link "Plant $_name ($_timeString)" $passage>><<pass _passTime>><<run plantSeedsInPlot(_plantbed, _plantType)>><</link>> <</capture>> <<if !$settings.blindStatsEnabled>> <span class="orange">(<<print $_plant.days>> days)</span> <</if>> <<else>> <span class="blue"><<print $_name.toLocaleUpperFirst()>> only grow in <<print $_plant.bed>>.</span> <</if>> <<else>> <<tending_season_notice $_plant>> <</if>> <</for>> <br> <</widget>> <<widget "tendingTillOptions">> <<set _plantbed to _args[0]>> <<if currentSkillValue('tending') gte 1500>> <<set _baseTime to 3>> <<set _baseTiredness to 1>> <<else>> <<set $_ti to Math.clamp(Math.floor(currentSkillValue('tending') / 200), 0, 6)>> <<set _baseTime to [30,25,20,15,10,5,4][$_ti]>> <<set _baseTiredness to [6,5,4,3,2,1,1][$_ti]>> <</if>> <<if _plantbed.size is "medium">> <<set _baseTime *= 3>> <<set _baseTiredness *= 2>> <<elseif _plantbed.size is "large">> <<set _baseTime *= 12>> <<set _baseTiredness *= 6>> <</if>> <<set _timeString to getTimeString(_baseTime)>> <<if $farm_attack_timer is 0>> <<set $_timeUntilAttack to ((23 - Time.hour) * 60) + (60 - Time.minute)>> <</if>> <<if pcAreArmsBound("both")>> <span class="red">Can't till when your arms are bound.</span> <br> <<else>> <<if $location is "alex_farm" and _baseTime gte $_timeUntilAttack>> <span class="pink">Not enough time to till the field before Remy's arrival.</span> <<else>> <<capture _baseTiredness _baseTime _plantbed>> <<gardenicon "till">> <<link "Till (_timeString)" $passage>> <<set $tendingvars.plot_tilled to true>> <<tiredness _baseTiredness>><<physique _baseTiredness>> <<if $location is "alex_farm">> <<farm_count _baseTime>> <</if>> <<pass _baseTime>> <<set _plantbed.till to 1>> <</link>><<gtiredness>> <</capture>> <</if>> <br> <<if $fertiliser.current gte 1 and _plantbed.quality lt 4 and currentSkillValue('tending') gte 400>> <<set _baseTimeFert to Math.floor(_baseTime * 1.5)>> <<set _timeString to getTimeString(_baseTimeFert)>> <<set _fertTiredness to Math.floor(_baseTiredness * 1.5)>> <<capture _baseTimeFert _fertTiredness _plantbed>> <<gardenicon "fertiliser">> <<link "Till and apply fertiliser (_timeString)" $passage>> /* Till */ <<set $tendingvars.plot_tilled_fertiliser to true>> <<tiredness _fertTiredness>><<physique _fertTiredness>> <<if $location is "alex_farm">> <<farm_count _baseTimeFert>> <</if>> <<pass _baseTimeFert>> <<set _plantbed.till to 1>> /* Fertilise */ <<set $fertiliser.current-->><<set $fertiliser.used++>> <<set _plantbed.quality++>> <<if !$backgroundTraits.includes("greenthumb")>> <<if _plantbed.baseQuality is undefined>> <<set _plantbed.baseQuality to clone(_plantbed.quality - 1)>> <</if>> <<set _plantbed.fertiliserDecay to 2>> <<if _plantbed.size isnot "large">> <<set _plantbed.fertiliserDecay++>> <</if>> <</if>> <</link>><<gtiredness>> <</capture>> <br> <</if>> <</if>> <</widget>> <<widget "plot_effects">> <<if $tendingvars.plot_watered>> You water the plot. <span class="gold">You get a good workout.</span> <br> <<elseif $tendingvars.all_plots_watered>> You water the plots. <span class="gold">You get a good workout.</span> <br> <</if>> <<if $tendingvars.harvest>> You harvest <<number $tendingvars.harvest_amount>> <<print $tendingvars.harvest_name>>. <<if $tendingvars.plotDecay>> The fertiliser effect has decayed<<if $tendingvars.plotDecay is 2>> completely<</if>>. <</if>> <br> <</if>> <<if $tendingvars.plot_tilled>> <<wearProp "hoe">> You get to work removing weeds and tilling the soil. It's hard going, but when you're done the soil is ready for planting. <span class="gold">You get a good workout.</span> <br> <</if>> <<if $tendingvars.plot_tilled_fertiliser>> <<wearProp "hoe">> You get to work removing weeds and tilling the soil while mixing in some fertiliser. It's hard going, but when you're done the soil is ready for planting. <span class="gold">You get a good workout.</span> <</if>> <<if $tendingvars.plot_planted>> You plant the seeds in the cool earth. <br> <</if>> <<if Weather.precipitation is "rain">> <span class="green">The rain soaks the ground.</span> <br> <</if>> <<run unsetTendingVars()>> <</widget>> <<widget "tending_harvest">> /* Argument is the plot you want to harvest */ <<set $_plot to _args[0]>> <<set $_type to $_plot.plant>> <<if $plants[$_type] is undefined>> <<set $plants[$_type] to {"name": setup.plants[$_type].name, "plural": setup.plants[$_type].plural, "amount": 0}>> <<elseif $plants[$_type].name is undefined>> <<set $plants[$_type] to {"name": setup.plants[$_type].name, "plural": setup.plants[$_type].plural, "amount": $plants[$_type].amount}>> <</if>> <<switch $_plot.size>> <<case "small">> <<set _tending_amount to random(10, (currentSkillValue('tending') / 20) + 10)>> <<case "medium">> <<set _tending_amount to random(10, (currentSkillValue('tending') / 10) + 20)>> <<default>> <<set _tending_amount to random(10, (currentSkillValue('tending') / 2) + 50)>> <</switch>> <<set _tending_amount *= setup.plants[$_type].multiplier>> <<switch Math.clamp($_plot.quality, 1, 4)>> <<case 4>> <<set _tending_amount *= 1.6>> <<case 3>> <<set _tending_amount *= 1.4>> <<case 2>> <<set _tending_amount *= 1.2>> <</switch>> <<if !$backgroundTraits.includes("greenthumb") and $tending is 1000 and $plants_known.length gte 16 and ($fertiliser.used gte 40 or ($fertiliser.used gte 25 and $farm_stage gte 6))>> <<run $backgroundTraits.pushUnique("greenthumb")>> <span class="gold">Spending a large amount of time in the dirt has given you a green thumb.</span> <br> <</if>> <<if $backgroundTraits.includes("greenthumb")>> <<set _tending_amount *= 1.2>> <</if>> <<set _tending_amount *= $settings.tendingYieldModifier>> <<set _tending_amount to Math.trunc(_tending_amount)>> <<set $plants[$_type].amount += _tending_amount>> <<set $tendingvars.harvest to true>> <<set $tendingvars.harvest_amount to _tending_amount>> <<set $tendingvars.harvest_name to (_tending_amount is 1 ? setup.plants[$_type].name.replace(/_/g," ") : setup.plants[$_type].plural)>> <</widget>> <<widget "tending_pick">> /* * First argument: plant type. * Second argument: minimum number picked. * Third argument: maximum number picked. */ <<set $_type to _args[0]>> <<if $plants[$_type] is undefined>> <<set $plants[$_type] to {"name": setup.plants[$_type].name, "plural": setup.plants[$_type].plural, "amount": 0}>> <<elseif $plants[$_type].name is undefined>> <<set $plants[$_type] to {"name": setup.plants[$_type].name, "plural": setup.plants[$_type].plural, "amount": $plants[$_type].amount}>> <</if>> <<if _args[2] gte 1>> <<set _tending_amount to random(_args[1], _args[2])>> <<else>> <<set _tending_amount to random(1, 5)>> <</if>> <<if !setup.plants[$_type].special.includes("large") and setup.plants[$_type].bed isnot "bird_nest">> <<set _tending_amount *= (1 + (currentSkillValue('tending') / 1000))>> <</if>> <<if $backgroundTraits.includes("greenthumb")>> <<set _tending_amount *= 1.2>> <</if>> <<set _tending_amount to Math.trunc(_tending_amount)>> <<set $plants[$_type].amount += _tending_amount>> <<set $wild_plant_stat += _tending_amount>> You pick <<if $_type is "bird_egg">> up <</if>> <<if _tending_amount is 1>> <<if (["a","e","i","o","u","A","E","I","O","U"].some(letter => $_type.startsWith(letter)))>> an <<else>> a <</if>> <<if $options.images is 1 and setup.plants[$_type].icon>> <img class="tending_icon" @src="`img/misc/icon/tending/` + setup.plants[$_type].icon"> <</if>> <<print setup.plants[$_type].name.replace(/_/g," ")>>. <<else>> <<if $options.images is 1 and setup.plants[$_type].icon>> <img class="tending_icon" @src="`img/misc/icon/tending/` + setup.plants[$_type].icon"> <</if>> <<number _tending_amount>> <<print setup.plants[$_type].plural>>. <</if>> <</widget>> <<widget "tending_give">> <<if _args[0]>> <<set $_type to _args[0]>> <<if $plants[$_type] is undefined>> <<set $plants[$_type] to {"name": setup.plants[$_type].name, "plural": setup.plants[$_type].plural, "amount": 0}>> <<elseif $plants[$_type].name is undefined>> <<set $plants[$_type] to {"name": setup.plants[$_type].name, "plural": setup.plants[$_type].plural, "amount": $plants[$_type].amount}>> <</if>> <<set $plants[$_type].amount += (_args[1] ? _args[1] : 1)>> <</if>> <</widget>> <<widget "tending_season_notice">> <<set $_plant to _args[0]>> <span class="blue"> <<set $_seasons to formatList($_plant.season)>> <<print $_plant.plural.toLocaleUpperFirst()>> can only be planted in $_seasons. </span> <</widget>> <<widget "updatePlants">> <<set $_food_keys to Object.keys(setup.plants)>> <<for _i to 0; _i lt $_food_keys.length; _i++>> <<set $_type to $_food_keys[_i]>> <<if $plants[$_type] is undefined>> <<set $plants[$_type] to {"name": setup.plants[$_type].name, "plural": setup.plants[$_type].plural, "amount": 0}>> <<elseif $plants[$_type].name is undefined>> <<set $plants[$_type] to {"name": setup.plants[$_type].name, "plural": setup.plants[$_type].plural, "amount": $plants[$_type].amount}>> <</if>> <</for>> <</widget>><<widget "setLocalPronouns">> <<run App.Utils.setLocalPronouns(_args[0], _args[1])>> <</widget>> <<widget "capitalise">><<silently>> <<set _text_output to _text_output?.toLocaleUpperFirst()>> <</silently>>_text_output<</widget>> <<widget "catcall">> "<<print either( "Hey beautiful.", "Hey gorgeous.", "Looking good.", "Looking fine.", "Looking pretty today, <<girl>>.", "Hey there, sexy <<lady>>.", "Wow, you're really pretty.", "You have beautiful eyes, <<girl>>.", "I like your hair, cutie.", "You look sumptuous, <<girl>>.", "You look ravishing, <<girl>>.", "You look stunning, <<girl>>.", "You look superb, <<girl>>.", "Nice <<bottomsimple>>.", "Ass and legs.", "Nice legs.", "I'd love a taste of you.", "I'd love to run my tongue over that body sometime.", "I'm gonna fuck the shit out of you someday.", "You're way too sexy to be walking alone, <<girl>>.", "Hey cutie, bring that ass over here.", "Hey <<girl>>, want to hang out?", "Hey <<girl>>, want some of this?", "Hey sexy, give me your number.", "Where do you live, <<girl>>? Maybe I'll come give you a visit.", "Hey sexy, come here and let's have some fun.", "Come here and let me see your pretty face.", "Why don't you come over here and we can talk, sexy?", "Hey, do you have a <<partnerfriend>>?", "I bet your <<partnerfriend>> doesn't appreciate you like I would.", "Hey cutie, want to be my <<girlfriend>>?", "Your <<partnerfriend>> is a lucky <<print $player.gender_appearance is 'm'? 'lady' : 'man'>>.")>>" <</widget>> <<widget "catcalllewd">> "<<print either( "Looks like someone wants to be raped.", "I bet you're hoping someone will rape you, right <<girl>>?", "Do you want to be raped that badly, <<girl>>?", "You can't complain if someone hurts you while walking around like that.", "Don't bother pretending to be a victim after this. You'll get what's coming to you, slut.", "Damn, are you trying to get yourself raped?", "Why don't you bring those nice lips over here, <<girl>>?", "Bend over for us, let us get a good look at you.", "Looking good, <<girl>>! I wonder what sounds you'd make in bed!", "What a slut!", "What a whore!", "What a pervert!", "Filthy slut!", "Filthy whore!", "Filthy pervert!", "Damn you're a sexy <<bitch>>.", "Why would you dress like that?", "Do you think that's an appropriate way to dress?", "Jesus, <<girl>>, have some modesty.", "Hey! What makes you think we want to see that? Fucking slut.", "Well aren't you a pervert.", "I bet you like showing off like this, pervert.", "Does it turn you on to expose yourself like this, slut?", "That's one way to get attention.", "You want attention that badly, <<girl>>?", "If a show like this is free, then how much for going all the way?", "L-lewd!", "P-pervert!")>>" <</widget>> /* Note: Has a low number of variaitons. Consider expanding */ <<widget "catcallschool">> "<<print either( "Hey sexy.", "Hey <<girl>>.", "Looking good.", "Looking fine.", "You look cute, <<girl>>.", "You look ravishing, <<girl>>.", "You look stunning, <<girl>>.", "You look superb, <<girl>>.", "Hey <<girl>>, want some of this?", "Nice <<bottomsimple>>.", "You look tasty.")>>" <</widget>> <<widget "anticatcall">> "<<print either( "Do you talk to your family that way?", "Would you say something like that to a family member?", "If your family heard you say that, what do you think they'd say?", "What is your problem?", "Really? At least try a little harder.", "Is that the best you can do?", "At least one of us looks good.", "Leave me alone, you creep.", "You're being a creep, just go away.", "Get away from me, you creep.", "You're a creep, you know that?", "I don't even know you. Leave me alone.", "I don't know you, go away.", "Get off my case, I don't even know you.", "Shut up, you don't even know me.", "Who even are you? Just leave me in peace.", "Does perving on strangers make you feel happy?", "Do you think that's appropriate behaviour for this situation?", "Why do you think it's okay to say things like that?", "Do you think I'd like hearing things like that?", "You're an idiot if you think that's an okay thing to say to a stranger.", "Idiot. Never speak to me like that again.", "Do you think that's funny? Idiot.", "Has that line ever worked for you?", "Is that your sad attempt at flirting?", "Do you even know how to flirt? Pathetic.", "If you think that's flirting, I pity you.", "You're pitiful.", "You're pathetic.", "Go away.", "Leave me alone.", "No. Just, no.", "Oh please.", "Ex-fucking-scuse me?", "Excuse me?", "Seriously?", "Did you seriously just say that?")>>" <</widget>> <<widget "catcallbreasts">> "<<print either( "Nice cow tits.", "Cow!", "Moo moo!", "Look at those milkers.", "Let me get a taste of those milkers.", "Those are some real milky tits you got there.", "How big are your tits?", "What size are your boobs?", "What cup size are those?", "What's the cup size on those honkers?", "Damn, how big are your boobs?", "Tell us your cup size.", "Are those natural?", "Look at the size of those.", "Look at those tits.", "Jesus, those jugs must be heavy.", "Those are some big honkers.", "Boing boing!", "That bounce!", "Bounce those tits for us.", "Jump for us! I want to see those puppies bounce.", "Melon tits!", "That rack.", "Nice rack, <<girl>>.", "Nice tits.", "Your tits are lovely.", "Your boobs are beautiful.", "Your tits are really nice.", "I love your tits.", "Your boobs are amazing.", "You have some seriously lovely tits, <<girl>>.", "Your breasts are so pretty, even through your <<top>>.", "You have some of the sexiest breasts I've ever seen.", "I bet all the other girls are jealous of those.", "You should be proud of those breasts, <<girl>>.", "Those tits are a town treasure.", "God damn, I think you have the best tits I've seen outside of porn.", "I think those are the best tits I've seen all week.", "Now that's a rack to die for.", "Damn, back problems are so sexy.", "Do you ever get back problems from those?", "Wow, those knockers are bigger than my sister's.", "Wow, those knockers are bigger than my mother's.", "Nice tits, keep up the good work.", "Bloody hell, <<girl>>, I could fit my whole book collection on that rack.", "Does being that top heavy ever make it hard to balance?", "Damn, can your <<top>> even handle those melons?", "Jesus <<girl>>, I can see your <<top>> straining from here.", "Damn, talk about marshmallow tits.", "Damn <<girl>>, I'd put my lactose intolerance on the line for those.", "I want to just put them in my mouth.", "Hey, those tits look heavy. Need help holding them?", "Taking the puppies out for a walk, are we?", "Oh, wow. Do those have their own gravitational pull?", "Your boobs are so big I feel their gravity pulling me in from here.", "Those airbags could stop a car crash.", "Holy hell, I have to go cross-eyed to look at both of those.")>>" <</widget>> <<widget "hairmapcolourtext">> <<if _args[0] in setup.colours.hair_map>> <<print setup.colours.hair_map[_args[0]].name>> <<elseif _args[0] and !_colour>> <<print _args[0]>> <<else>> <<print _colour>> <</if>> <</widget>> <<widget "haircolourtext">> <<if $hairColourStyle == "gradient">> <<print "two-toned">> <<else>> <<hairmapcolourtext $haircolour>> <</if>> <</widget>> <<widget "hairfringecolourtext">> <<if $hairFringeColourStyle == "gradient">> <<print "two-toned">> <<else>> <<hairmapcolourtext $hairfringecolour>> <</if>> <</widget>> <<widget "charles">><<silently>> <<if $wraith.mimic is "Morgan" and $wraith.state is "haunt" and random(1,3) is 1>> <<set _text_output to "graverobber">> <<else>> <<set _text_output to ($player.gender_appearance is "m" ? "Charles" : "Charlene")>> <</if>> <</silently>><<print _text_output>><</widget>> <<widget "npcexposetext">><<silently>> <<person>><<set _person to _text_output>> <<his>><<set _his to _text_output>> <<if $pronoun is "m">> <<set _text_output to "The " + _person + " unzips " + _his + " fly, ">> <<else>> <<set _text_output to "The " + _person + " lifts up " + _his + " skirt, ">> <</if>> <<if $NPCList[0].penis isnot "none">> <<set _text_output to _text_output + "revealing " + _his + " erect penis.">> <<else>> <<set _text_output to _text_output + "revealing " + _his + " moist pussy.">> <</if>> <</silently>>_text_output<</widget>> <!-- Commented out for deprecation. Use: ?bodypart See 03-JavaScript/Templates/.. <<widget "bodyparts">> <<print either("hands", "feet", "thighs", "legs", "tummy", "cheek", "bottom", "chest", "face", "arms", "shoulder", "back")>> <</widget>> --> <!-- Commented out for deprecation. Use: ?lowerbodypart See 03-JavaScript/Templates/.. <<widget "lowerbodyparts">> <<print either("hands", "feet", "thighs", "bottom")>> <</widget>> --> <<widget "word">><<silently>> /* usage example: <<word "upper">> */ <<set _text_output to "">> <<if _args[0]>> <<set $_result to setup.clothes[_args[0]][clothesIndex(_args[0],$worn[_args[0]])].word>> <<set _text_output to ($_result isnot "n" ? $_result : "")>> <</if>> <</silently>>_text_output<</widget>> <<widget "genitalsword">><<word "genitals">><</widget>> <<widget "plural">><<silently>> <<if setup.clothes[_args[0]][clothesIndex(_args[0],$worn[_args[0]])].plural is 1>> <<set _text_output to "are">> <<else>> <<set _text_output to "is">> <</if>> <</silently>>_text_output<</widget>> <<widget "is">><<silently>> <<outfitChecks>> <<if _args[0].plural is 1>> <<set _text_output to "are">> <<else>> <<set _text_output to "is">> <</if>> <</silently>>_text_output <</widget>> <<widget "overupperplural">> <<plural "over_upper">> <</widget>> <<widget "overlowerplural">> <<plural "over_lower">> <</widget>> <<widget "upperplural">> <<plural "upper">> <</widget>> <<widget "lowerplural">> <<plural "lower">> <</widget>> <<widget "underupperplural">> <<plural "under_upper">> <</widget>> <<widget "underlowerplural">> <<plural "under_lower">> <</widget>> <<widget "genitalsplural">> <<plural "genitals">> <</widget>> <<widget "itis">><<silently>> <<if setup.clothes[_args[0]][clothesIndex(_args[0],$worn[_args[0]])].plural is 1>> <<set _text_output to "they are">> <<else>> <<set _text_output to "it is">> <</if>> <</silently>>_text_output<</widget>> <<widget "overupperitis">> <<itis "over_upper">> <</widget>> <<widget "overloweritis">> <<itis "over_lower">> <</widget>> <<widget "upperitis">> <<itis "upper">> <</widget>> <<widget "loweritis">> <<itis "lower">> <</widget>> <<widget "underupperitis">> <<itis "under_upper">> <</widget>> <<widget "underloweritis">> <<itis "under_lower">> <</widget>> <<widget "it">><<silently>> <<if setup.clothes[_args[0]][clothesIndex(_args[0],$worn[_args[0]])].plural is 1>> <<set _text_output to "them">> <<else>> <<set _text_output to "it">> <</if>> <</silently>>_text_output<</widget>> <<widget "overupperit">> <<it "over_upper">> <</widget>> <<widget "overlowerit">> <<it "over_lower">> <</widget>> <<widget "upperit">> <<if $worn.upper.name is "naked" and $worn.under_upper.type.includes("covered")>><<it "under_upper">><<else>><<it "upper">><</if>> <</widget>> <<widget "lowerit">> <<if $worn.lower.name is "naked" and $worn.under_lower.type.includes("covered")>><<it "under_lower">><<else>><<it "lower">><</if>> <</widget>> <<widget "underupperit">> <<it "under_upper">> <</widget>> <<widget "underlowerit">> <<it "under_lower">> <</widget>> <<widget "feetit">> <<it "feet">> <</widget>> <<widget "legsit">> <<it "legs">> <</widget>> <<widget "handsit">> <<it "hands">> <</widget>> <<widget "has">><<silently>> <<if setup.clothes[_args[0]][clothesIndex(_args[0],$worn[_args[0]])].plural is 1>> <<set _text_output to "have">> <<else>> <<set _text_output to "has">> <</if>> <</silently>>_text_output<</widget>> <<widget "overupperhas">> <<has "over_upper">> <</widget>> <<widget "overlowerhas">> <<has "over_lower">> <</widget>> <<widget "upperhas">> <<if $worn.upper.name is "naked" and $worn.under_upper.type.includes("covered")>> <<has "under_upper">> <<else>> <<has "upper">> <</if>><</widget>> <<widget "lowerhas">> <<if $worn.lower.name is "naked" and $worn.under_lower.type.includes("covered")>> <<has "under_lower">> <<else>> <<has "lower">> <</if>> <</widget>> <<widget "underupperhas">> <<has "under_upper">> <</widget>> <<widget "underlowerhas">> <<has "under_lower">> <</widget>> <<widget "that">><<silently>> <<if setup.clothes[_args[0]][clothesIndex(_args[0],$worn[_args[0]])].plural is 1>> <<set _text_output to "those">> <<else>> <<set _text_output to "that">> <</if>> <</silently>>_text_output<</widget>> <<widget "overupperthat">> <<that "over_upper">> <</widget>> <<widget "overlowerthat">> <<that "over_lower">> <</widget>> <<widget "upperthat">> <<that "upper">> <</widget>> <<widget "lowerthat">> <<that "lower">> <</widget>> <<widget "underupperthat">> <<that "under_upper">> <</widget>> <<widget "underlowerthat">> <<that "under_lower">> <</widget>> <<widget "genitalsthat">> <<that "genitals">> <</widget>> <<widget "feetthat">> <<that "feet">> <</widget>> <<widget "legsthat">> <<that "legs">> <</widget>> <<widget "handsthat">> <<that "hands">> <</widget>> <<widget "generatePronouns">> <<if _args[0]>> <<set _args[0].pronouns to {}>> <<switch _args[0].pronoun>> <<case "m">> <<set _args[0].pronouns.he = "he">> <<set _args[0].pronouns.his = "his">> <<set _args[0].pronouns.hers = "his">> <<set _args[0].pronouns.him = "him">> <<set _args[0].pronouns.himself = "himself">> <<set _args[0].pronouns.man = "man">> <<set _args[0].pronouns.boy = "boy">> <<set _args[0].pronouns.men = "men">> <<case "f">> <<set _args[0].pronouns.he = "she">> <<set _args[0].pronouns.his = "her">> <<set _args[0].pronouns.hers = "hers">> <<set _args[0].pronouns.him = "her">> <<set _args[0].pronouns.himself = "herself">> <<set _args[0].pronouns.man = "woman">> <<set _args[0].pronouns.boy = "girl">> <<set _args[0].pronouns.men = "women">> <<case "i">> <<set _args[0].pronouns.he = "it">> <<set _args[0].pronouns.his = "its">> <<set _args[0].pronouns.hers = "its">> <<set _args[0].pronouns.him = "it">> <<set _args[0].pronouns.himself = "itself">> <<set _args[0].pronouns.man = "man">> <<set _args[0].pronouns.boy = "boy">> <<set _args[0].pronouns.men = "men">> <<case "n">> <<set _args[0].pronouns.he = "one">> <<set _args[0].pronouns.his = "the">> <<set _args[0].pronouns.hers = "its">> <<set _args[0].pronouns.him = "them">> <<set _args[0].pronouns.himself = "themselves">> <<set _args[0].pronouns.man = "man">> <<set _args[0].pronouns.boy = "k">> <<set _args[0].pronouns.men = "men">> <<case "t">> <<set _args[0].pronouns.he = "they">> <<set _args[0].pronouns.his = "their">> <<set _args[0].pronouns.hers = "they">> <<set _args[0].pronouns.him = "them">> <<set _args[0].pronouns.himself = "themselves">> <<set _args[0].pronouns.man = "man">> <<set _args[0].pronouns.boy = "boy">> <<set _args[0].pronouns.men = "men">> <</switch>> <</if>> <</widget>> <!-- [0] - string prints string [0] prepended with an indefinite article based on the [0]'s first character --> <<widget "a">><<silently>> <<if ["a","e","i","o","u","A","E","I","O","U"].includes(_args[0][0])>> <<set _text_output to "an " + _args[0]>> <<else>> <<set _text_output to "a " + _args[0]>> <</if>> <</silently>>_text_output<</widget>> <<widget "A">><<silently>> <<a _args[0]>><<capitalise>> <</silently>>_text_output<</widget>> <<widget "theowner">><<silently>> <<if $enemyno gte 2 and $enemytype is "man">> <<set _text_output to "the owner">> <<else>> <<he>> <</if>> <</silently>>_text_output<</widget>> <<widget "someones">> <<if _args[0] is "two">> their <<elseif _args[0] isnot undefined>> <<set $_target to _args[0]>> <<hisselect $_target>> <<else>> <<his>> <</if>> <</widget>> <<widget "someone">><<silently>> <<if _args[0] isnot undefined>> <<set $_target to _args[0]>> <<personselect $_target>><<him>> <<else>> <<him>> <</if>> <</silently>>_text_output<</widget>> <<widget "their">> <<if _args[0] isnot undefined>> <<set $_target to _args[0]>> <<hisselect $_target>> <<elseif $enemyno gte 2 and $enemytype is "man">> their <<else>> <<his>> <</if>> <</widget>> <<widget "ohe">><<silently>> <<if $enemytype is "beast">> <<bhe>> <<else>> <<he>> <</if>> <</silently>>_text_output<</widget>> <<widget "he">><<silently>> <!-- Add the option to call for named NPCs individually --> <<if _args[0]>> <<set $pronoun to C.npc[_args[0]].pronoun>> <</if>> <<if $pronoun is "m">> <<set _text_output to "he">> <<elseif $pronoun is "f">> <<set _text_output to "she">> <<elseif $pronoun is "i">> <<set _text_output to "it">> <<elseif $pronoun is "n">> <<set _text_output to "one">> <<elseif $pronoun is "t">> <<set _text_output to "they">> <<elseif $pronoun>> <<set _text_output to `<span class="red">[ERROR: unrecognized pronoun value $pronoun in "he"]</span>`>> <<else>> <<set _text_output to `<span class="red">[ERROR: undefined pronoun in "he"]</span>`>> <</if>> <</silently>>_text_output<</widget>> <<widget "bHe">><<silently>> <<if typeof _args[0] is "number">> <<set _na to _args[0]>> <<elseif $enemyno gte 0>> <<set _na to $enemyno-1>> <<else>> <<set _na to 0>> <</if>> <<if $NPCList[_na].monster is "monster">> <<set _text_output to ($NPCList[_na].pronoun is "m" ? "He" : "She")>> <<else>> <<set _text_output to "It">> <</if>> <</silently>>_text_output<</widget>> <<widget "bhe">><<silently>> <<if typeof _args[0] is "number">> <<set _na to _args[0]>> <<elseif $enemyno gte 0>> <<set _na to $enemyno-1>> <<else>> <<set _na to 0>> <</if>> <<if $NPCList[_na].monster is "monster">> <<set _text_output to ($NPCList[_na].pronoun is "m" ? "he" : "she")>> <<else>> <<set _text_output to "it">> <</if>> <</silently>>_text_output<</widget>> <<widget "bHis">><<silently>> <<if typeof _args[0] is "number">> <<set _na to _args[0]>> <<elseif $enemyno gte 0>> <<set _na to $enemyno-1>> <<else>> <<set _na to 0>> <</if>> <<if $NPCList[_na].monster is "monster">> <<set _text_output to ($NPCList[_na].pronoun is "m" ? "His" : "Her")>> <<else>> <<set _text_output to "Its">> <</if>> <</silently>>_text_output<</widget>> <<widget "bhis">><<silently>> <<if typeof _args[0] is "number">> <<set _na to _args[0]>> <<elseif $enemyno gte 0>> <<set _na to $enemyno-1>> <<else>> <<set _na to 0>> <</if>> <<if $NPCList[_na].monster is "monster">> <<set _text_output to ($NPCList[_na].pronoun is "m" ? "his" : "her")>> <<else>> <<set _text_output to "its">> <</if>> <</silently>>_text_output<</widget>> <<widget "bhers">><<silently>> <<if typeof _args[0] is "number">> <<set _na to _args[0]>> <<elseif $enemyno gte 0>> <<set _na to $enemyno-1>> <<else>> <<set _na to 0>> <</if>> <<if $NPCList[_na].monster is "monster">> <<set _text_output to ($NPCList[_na].pronoun is "m" ? "his" : "hers")>> <<else>> <<set _text_output to "its">> <</if>> <</silently>>_text_output<</widget>> <<widget "bHim">><<silently>> <<if typeof _args[0] is "number">> <<set _na to _args[0]>> <<elseif $enemyno gte 0>> <<set _na to $enemyno-1>> <<else>> <<set _na to 0>> <</if>> <<if $NPCList[_na].monster is "monster">> <<set _text_output to ($NPCList[_na].pronoun is "m" ? "Him" : "Her")>> <<else>> <<set _text_output to "It">> <</if>> <</silently>>_text_output<</widget>> <<widget "bhim">><<silently>> <<if typeof _args[0] is "number">> <<set _na to _args[0]>> <<elseif $enemyno gte 0>> <<set _na to $enemyno-1>> <<else>> <<set _na to 0>> <</if>> <<if $NPCList[_na].monster is "monster">> <<set _text_output to ($NPCList[_na].pronoun is "m" ? "him" : "her")>> <<else>> <<set _text_output to "it">> <</if>> <</silently>>_text_output<</widget>> <<widget "bhimself">><<silently>> <<if typeof _args[0] is "number">> <<set _na to _args[0]>> <<elseif $enemyno gte 0>> <<set _na to $enemyno-1>> <<else>> <<set _na to 0>> <</if>> <<if $NPCList[_na].monster is "monster">> <<set _text_output to ($NPCList[_na].pronoun is "m" ? "himself" : "herself")>> <<else>> <<set _text_output to "itself">> <</if>> <</silently>><<print _text_output>><</widget>> <<widget "bHimself">><<silently>> <<if typeof _args[0] is "number">> <<bhimself _args[0]>> <<else>> <<bhimself>> <</if>> <<capitalise>> <</silently>><<print _text_output>><</widget>> <<widget "bhes">><<silently>> <<if typeof _args[0] is "number">> <<set _na to _args[0]>> <<elseif $enemyno gte 0>> <<set _na to $enemyno-1>> <<else>> <<set _na to 0>> <</if>> <<if $NPCList[_na].monster is "monster">> <<set _text_output to ($NPCList[_na].pronoun is "m" ? "he's" : "she's")>> <<else>> <<set _text_output to "it's">> <</if>> <</silently>>_text_output<</widget>> <<widget "bHes">><<silently>> <<if typeof _args[0] is "number">> <<bhes _args[0]>> <<else>> <<bhes>> <</if>> <<capitalise>> <</silently>><<print _text_output>><</widget>> <<widget "hes">><<silently>> <!-- Add the option to call for named NPCs individually --> <<if _args[0]>> <<set $pronoun to C.npc[_args[0]].pronoun>> <</if>> <<if $pronoun is "m">> <<set _text_output to "he's">> <<elseif $pronoun is "f">> <<set _text_output to "she's">> <<elseif $pronoun is "i">> <<set _text_output to "it's">> <<elseif $pronoun is "n">> <<set _text_output to "one is">> <<elseif $pronoun is "t">> <<set _text_output to "they're">> <<elseif $pronoun>> <<set _text_output to `<span class="red">[ERROR: unrecognized pronoun value $pronoun in "hes"]</span>`>> <<else>> <<set _text_output to `<span class="red">[ERROR: undefined pronoun in "hes"]</span>`>> <</if>> <</silently>>_text_output<</widget>> <<widget "his">><<silently>> <!-- Add the option to call for named NPCs individually --> <<if _args[0]>> <<set $pronoun to C.npc[_args[0]].pronoun>> <</if>> <<if $pronoun is "m">> <<set _text_output to "his">> <<elseif $pronoun is "f">> <<set _text_output to "her">> <<elseif $pronoun is "i">> <<set _text_output to "its">> <<elseif $pronoun is "n">> <<set _text_output to "the">> <<elseif $pronoun is "t">> <<set _text_output to "their">> <<elseif $pronoun>> <<set _text_output to `<span class="red">[ERROR: unrecognized pronoun value $pronoun in "his"]</span>`>> <<else>> <<set _text_output to `<span class="red">[ERROR: undefined pronoun in "his"]</span>`>> <</if>> <</silently>>_text_output<</widget>> <<widget "hers">><<silently>> <!-- Add the option to call for named NPCs individually --> <<if _args[0]>> <<set $pronoun to C.npc[_args[0]].pronoun>> <</if>> <<if $pronoun is "m">> <<set _text_output to "his">> <<elseif $pronoun is "f">> <<set _text_output to "hers">> <<elseif $pronoun is "i">> <<set _text_output to "its">> <<elseif $pronoun is "n">> <<set _text_output to "theirs">> <<elseif $pronoun is "t">> <<set _text_output to "theirs">> <<elseif $pronoun>> <<set _text_output to `<span class="red">[ERROR: unrecognized pronoun value $pronoun in "hers"]</span>`>> <<else>> <<set _text_output to `<span class="red">[ERROR: undefined pronoun in "hers"]</span>`>> <</if>> <</silently>><<print _text_output>><</widget>> <<widget "He">><<silently>> <<if _args[0]>> <!-- Add the option to call for a named NPC's name --> <<if $NPCNameList.includes(_args[0])>> <<set $pronoun to C.npc[_args[0]].pronoun>> <<else>> <<if Number.isInteger(_args[0]) and between(_args[0],0,5)>> <<personselect _args[0]>> <</if>> <</if>> <</if>> <<if $NPCList[$index].intro is 1>> <<set $NPCList[$index].intro to 0>> <<if $npcrow.includes($index)>> <<if $npc.includes("Black Wolf") or $npc.includes("Great Hawk")>> <<set _text_output to "The " + $npc[$npcrow.indexOf($index)]>> <<elseif $npc.includes("Ivory Wraith")>> <<set _text_output to "The pale figure">> <<elseif $NPCList[$index].name_known is 0>> <<set _text_output to "The " + $NPCList[$index].description>> <<else>> <<set _text_output to $npc[$npcrow.indexOf($index)]>> <</if>> <<else>> <<if $enemytype is "beast">> <<beasttype>><<set _text_output to "The " + _text_output>> <<elseif $NPCList[$index].name_known is 1>> <<set _text_output to $NPCList[$index].name>> <<elseif $NPCList[$index].role is "normal">> <<person>><<set _text_output to "The " + _text_output>> <<else>> <<set _text_output to "The " + $NPCList[$index].description + " " + $NPCList[$index].role>> <</if>> <</if>> <<else>> <<if $pronoun>> <<he>><<capitalise>> <<else>> <<set _text_output to `<span class="red">[ERROR: undefined pronoun in "He"]</span>`>> <</if>> <</if>> <</silently>>_text_output<</widget>> <!-- Use when you want to force just the pronoun "He" and skip the .intro nonsense.--> <<widget "He_Short">><<silently>> <<if $pronoun>> <<he>><<capitalise>> <<else>> <<set _text_output to `<span class="red">[ERROR: undefined pronoun in "He_Short"]</span>`>> <</if>> <</silently>>_text_output<</widget>> <<widget "His">><<silently>> <!-- Add the option to call for named NPCs individually --> <<if _args[0]>> <<set $pronoun to C.npc[_args[0]].pronoun>> <</if>> <<if $pronoun is "m">> <<set _text_output to "His">> <<elseif $pronoun is "f">> <<set _text_output to "Her">> <<elseif $pronoun is "i">> <<set _text_output to "Its">> <<elseif $pronoun is "n">> <<set _text_output to "The">> <<elseif $pronoun is "t">> <<set _text_output to "Their">> <<elseif $pronoun>> <<set _text_output to `<span class="red">[ERROR: unrecognized pronoun value $pronoun in "His"]</span>`>> <<else>> <<set _text_output to `<span class="red">[ERROR: undefined pronoun in "His"]</span>`>> <</if>> <</silently>>_text_output<</widget>> <<widget "Hers">><<silently>> <!-- Add the option to call for named NPCs individually --> <<if _args[0]>> <<set $pronoun to C.npc[_args[0]].pronoun>> <</if>> <<if $pronoun is "m">> <<set _text_output to "His">> <<elseif $pronoun is "f">> <<set _text_output to "Hers">> <<elseif $pronoun is "i">> <<set _text_output to "Its">> <<elseif $pronoun is "n">> <<set _text_output to "Theirs">> <<elseif $pronoun is "t">> <<set _text_output to "Theirs">> <<elseif $pronoun>> <<set _text_output to `<span class="red">[ERROR: unrecognized pronoun value $pronoun in "Hers"]</span>`>> <<else>> <<set _text_output to `<span class="red">[ERROR: undefined pronoun in "Hers"]</span>`>> <</if>> <</silently>>_text_output<</widget>> <<widget "Hes">><<silently>> <!-- Add the option to call for named NPCs individually --> <<if _args[0]>> <<set $pronoun to C.npc[_args[0]].pronoun>> <</if>> <<if $pronoun is "m">> <<set _text_output to "He's">> <<elseif $pronoun is "f">> <<set _text_output to "She's">> <<elseif $pronoun is "i">> <<set _text_output to "It's">> <<elseif $pronoun is "n">> <<set _text_output to "One is">> <<elseif $pronoun is "t">> <<set _text_output to "They're">> <<elseif $pronoun>> <<set _text_output to `<span class="red">[ERROR: unrecognized pronoun value $pronoun in "Hes"]</span>`>> <<else>> <<set _text_output to `<span class="red">[ERROR: undefined pronoun in "Hes"]</span>`>> <</if>> <</silently>><<print _text_output>><</widget>> <<widget "him">><<silently>> <!-- Add the option to call for named NPCs individually --> <<if _args[0]>> <<set $pronoun to C.npc[_args[0]].pronoun>> <</if>> <<if $pronoun is "m">> <<set _text_output to "him">> <<elseif $pronoun is "f">> <<set _text_output to "her">> <<elseif $pronoun is "i">> <<set _text_output to "it">> <<elseif $pronoun is "n">> <<set _text_output to "them">> <<elseif $pronoun is "t">> <<set _text_output to "them">> <<elseif $pronoun>> <<set _text_output to `<span class="red">[ERROR: unrecognized pronoun value $pronoun in "him"]</span>`>> <<else>> <<set _text_output to `<span class="red">[ERROR: undefined pronoun in "him"]</span>`>> <</if>> <</silently>><<print _text_output>><</widget>> <<widget "Him">><<silently>> <!-- Add the option to call for named NPCs individually --> <<if _args[0]>> <<set $pronoun to C.npc[_args[0]].pronoun>> <</if>> <<if $pronoun is "m">> <<set _text_output to "Him">> <<elseif $pronoun is "f">> <<set _text_output to "Her">> <<elseif $pronoun is "i">> <<set _text_output to "It">> <<elseif $pronoun is "n">> <<set _text_output to "Them">> <<elseif $pronoun is "t">> <<set _text_output to "Them">> <<elseif $pronoun>> <<set _text_output to `<span class="red">[ERROR: unrecognized pronoun value $pronoun in "Him"]</span>`>> <<else>> <<set _text_output to `<span class="red">[ERROR: undefined pronoun in "Him"]</span>`>> <</if>> <</silently>><<print _text_output>><</widget>> <<widget "hisselect">> <!-- Note calls range from 0-5 corresponding to NPCs 1-6. This was done to simplify FOR loops --> <<set _n to _args[0]>> <<if $enemytype is "man" and $enemyno gte 2>> <<personselect _n>> <!-- NPC's name will only appear if they are selected --> <<if $NPCList[_n].intro is 1>> <<if $npcrow.includes(_n) and $NPCList[_n].name_known is 1>> <<print $npc[$npcrow.indexOf(_n)]>>'s <<else>> the <<persons>> <</if>> <<set $NPCList[_n].intro to 0>> <<else>> <<his>> <</if>> <<elseif $enemytype is "beast">> <<bhis>> <<else>> <<his>> <</if>> <</widget>> <!-- Keeping his1-6 for legacy support as of v2.3 --> <<widget "his1">> <<person1>><<his>> <</widget>> <<widget "his2">> <<person2>><<his>> <</widget>> <<widget "his3">> <<person3>><<his>> <</widget>> <<widget "his4">> <<person4>><<his>> <</widget>> <<widget "his5">> <<person5>><<his>> <</widget>> <<widget "his6">> <<person6>><<his>> <</widget>> <<widget "himself">><<silently>> <!-- Add the option to call for named NPCs individually --> <<if _args[0]>> <<set $pronoun to C.npc[_args[0]].pronoun>> <</if>> <<if $pronoun is "m">> <<set _text_output to "himself">> <<elseif $pronoun is "f">> <<set _text_output to "herself">> <<elseif $pronoun is "i">> <<set _text_output to "itself">> <<elseif $pronoun is "n">> <<set _text_output to "themself">> <<elseif $pronoun is "t">> <<set _text_output to "themselves">> <<elseif $pronoun>> <<set _text_output to `<span class="red">[ERROR: unrecognized pronoun value $pronoun in "himself"]</span>`>> <<else>> <<set _text_output to `<span class="red">[ERROR: undefined pronoun in "himself"]</span>`>> <</if>> <</silently>><<print _text_output>><</widget>> <<widget "people">><<silently>> <<if maleChance() is 100>> <<set _text_output to "men">> <<elseif maleChance() is 0>> <<set _text_output to "women">> <<else>> <<set _text_output to "men and women">> <</if>> <</silently>><<print _text_output>><</widget>> <<widget "peopley">><<silently>> <<if maleChance() is 100>> <<set _text_output to "boys">> <<elseif maleChance() is 0>> <<set _text_output to "girls">> <<else>> <<set _text_output to "boys and girls">> <</if>> <</silently>><<print _text_output>><</widget>> <<widget "peopleyv">><<silently>> <<if $settings.maleVictimChance is 100>> <<set _text_output to "boys">> <<elseif $settings.maleVictimChance is 0>> <<set _text_output to "girls">> <<else>> <<set _text_output to "boys and girls">> <</if>> <</silently>><<print _text_output>><</widget>> <<widget "persony">><<silently>> <<rng>> <<set _text_output to ($rng lte maleChance()? "boy" : "girl")>> <</silently>><<print _text_output>><</widget>> <<widget "group">><<silently>> <<if $enemyno gte 3 or ($combat is 1 and $enemynomax gte 3)>> <<for _g to 0; _g lt $NPCList.length; _g++>> <<if $NPCList[_g].pronoun is "m">> <<set $_group_man to true>> <<elseif $NPCList[_g].pronoun is "f">> <<set $_group_woman to true>> <</if>> <</for>> <<if $_group_man and $_group_woman>> <<set _text_output to ($NPCList[0].teen is 1? "girls and boys" : "men and women")>> <<elseif $_group_man and !$_group_woman>> <<set _text_output to ($NPCList[0].teen is 1? "boys" : "men")>> <<elseif !$_group_man and $_group_woman>> <<set _text_output to ($NPCList[0].teen is 1? "girls" : "women")>> <</if>> <<elseif $enemyno is 2 or ($combat is 1 and $enemynomax is 2)>> <<if $NPCList[0].pronoun isnot $NPCList[1].pronoun>> <<set _text_output to ($NPCList[0].teen is 1? "girl and boy" : "man and woman")>> <<elseif $NPCList[0].pronoun is "m">> <<set _text_output to ($NPCList[0].teen is 1? "boys" : "men")>> <<elseif $NPCList[0].pronoun is "f">> <<set _text_output to ($NPCList[0].teen is 1? "girls" : "women")>> <</if>> <<else>> <<person>> <</if>> <</silently>><<print _text_output>><</widget>> <<widget "fullGroup">><<silently>> <<set $_person to []>> <<for _fg to 0; _fg lt $enemyno; _fg++>> <<personselect _fg>><<person>> <<set $_person.push(_text_output)>> <</for>> <<set _text_output to formatList($_person, "and", true)>> <<if _args[0] is "cap">><<set _text_output to _text_output.toLocaleUpperFirst()>><</if>> <</silently>><<print _text_output>><</widget>> <<widget "enumeratedGroup">><<silently>> <<set $_menCount to $NPCList.countWith(npc => npc.pronoun is "m")>> <<set $_womenCount to $NPCList.countWith(npc => npc.pronoun is "f")>> <<silently>> <<number $_menCount>><<set $_men to _text_output + " " + ($_menCount is 1 ? "man" : "men")>> <<number $_womenCount>><<set $_women to _text_output + " " + ($_womenCount is 1 ? "woman" : "women")>> <</silently>> <<set [$_first, $_second, $_secondCount] to ($_menCount gte $_womenCount ? [$_men, $_women, $_womenCount] : [$_women, $_men, $_menCount])>> <<set _text_output to $_first>> <<if $_secondCount gt 0>> <<set _text_output += " and " + $_second>> <</if>> <</silently>><<print _text_output>><</widget>> <<widget "EnumeratedGroup">><<silently>> <<enumeratedGroup>><<capitalise>> <</silently>><<print _text_output>><</widget>> <<widget "gendercheck">> <<if !["m", "f"].includes($player.gender_appearance)>><<set _text_output to "<span class=\"red\">ERROR: Unexpected $$player.gender_appearance: [$player.gender_appearance]</span>">><</if>> <</widget>> <<widget "pshe">><<silently>> <<set _text_output to ($player.gender_appearance is "m"? "he" : "she")>><<gendercheck>> <</silently>>_text_output<</widget>> <<widget "pShe">><<silently>> <<pshe>><<capitalise>> <</silently>>_text_output<</widget>> <<widget "pshes">><<silently>> <<set _text_output to ($player.gender_appearance is "m"? "he's" : "she's")>><<gendercheck>> <</silently>>_text_output<</widget>> <<widget "pShes">><<silently>> <<pshes>><<capitalise>> <</silently>>_text_output<</widget>> <<widget "pher">><<silently>> <<set _text_output to ($player.gender_appearance is "m"? "his" : "her")>><<gendercheck>> <</silently>>_text_output<</widget>> <<widget "phers">><<silently>> <<set _text_output to ($player.gender_appearance is "m"? "his" : "hers")>><<gendercheck>> <</silently>>_text_output<</widget>> <<widget "pHer">><<silently>> <<pher>><<capitalise>> <</silently>>_text_output<</widget>> <<widget "phim">><<silently>> <<set _text_output to ($player.gender_appearance is "m"? "him" : "her")>><<gendercheck>> <</silently>>_text_output<</widget>> <<widget "pHim">><<silently>> <<phim>><<capitalise>> <</silently>>_text_output<</widget>> <<widget "pherself">><<silently>> <<set _text_output to ($player.gender_appearance is "m"? "himself" : "herself")>><<gendercheck>> <</silently>>_text_output<</widget>> <<widget "pHerself">><<silently>> <<pherself>><<capitalise>> <</silently>>_text_output<</widget>> <<widget "psir">><<silently>> <<set _text_output to ($player.gender_appearance is "m"? "sir" : "ma'am")>><<gendercheck>> <</silently>>_text_output<</widget>> <<widget "pSir">><<silently>> <<psir>><<capitalise>> <</silently>>_text_output<</widget>> <<widget "pmother">><<silently>> <<set _text_output to ($player.gender_appearance is "m"? "father" : "mother")>><<gendercheck>> <</silently>>_text_output<</widget>> <<widget "pMother">><<silently>> <<set _text_output to ($player.gender_appearance is "m"? "Father" : "Mother")>><<gendercheck>> <</silently>>_text_output<</widget>> <!-- Commented out for deprecation. Use: ?animals See 03-JavaScript/Templates/.. <<widget "animals">> <<print either("bees", "elephants", "bunnies", "octopi", "chimps", "squid", "molluscs", "monkeys", "wasps", "baboons", "wolves", "bears", "elk", "seals", "dolphins", "whales", "jellyfish", "cats", "lions", "tigers", "cheetahs", "wild dogs", "panthers", "moles", "badgers", "honey badgers", "ducks", "geese", "sparrows", "robins", "perch", "pike", "salmon", "sturgeon", "frogs", "newts", "crocodiles", "toads", "hawks", "eagles", "cuttlefish", "pythons", "anacondas", "adders", "cobras", "sturgeon", "trout", "salmon", "tuna", "deer", "robins")>> <</widget>> --> <!-- Commented out for deprecation. Use: ?garden See 03-JavaScript/Templates/.. <<widget "garden">> <<print either("prune flowers", "prune trees", "prune bushes", "water flowers", "remove weeds")>> <</widget>> --> <!--_args[0] - uses "pc", the named npc's name, or a number--> <!--_args[1] - forces the pregnancy description--> <<widget "bellyDescription">><<silently>> <<if !isNaN(_args[0])>> <<set $_size to _args[0]>> <<elseif _args[0] is "pc">> <<set $_size to $bellySizeDebug || playerBellySize()>> <<set $_pregnant to ($bellySizeDebug isnot undefined) || playerIsPregnant()>> <<elseif C.npc[_args[0]]>> <<set $_size to npcBellySize(_args[0])>> <<set $_pregnant to npcIsPregnant(_args[0])>> <</if>> <<if $_pregnant or _args[1]>> <<switch $_size>> <<case 7 8 9 10 11>><<set $_text_output to "baby bump">> <<case 12 13 14>><<set $_text_output to "growing baby bump">> <<case 15 16 17 18>><<set $_text_output to "pregnant belly">> <<case 19 20 21 22 23 24>><<set $_text_output to "heavily pregnant belly">> <<default>><<set $_text_output to "belly">> <</switch>> <<else>> <<switch $_size>> <<case 7 8 9 10 11>><<set $_text_output to "belly bump">> <<case 12 13 14>><<set $_text_output to "swollen belly">> <<case 15 16 17 18>><<set $_text_output to "large belly">> <<case 19 20 21 22 23 24>><<set $_text_output to "bulging belly">> <<default>><<set $_text_output to "belly">> <</switch>> <</if>> <</silently>><<if $_text_output>>$_text_output<</if>><</widget>> <<widget "semen">><<silently>> <<if $player.penisExist>> <<set _text_output to "semen">> <<else>> <<set _text_output to "lewd fluid">> <</if>> <</silently>><<print _text_output>><</widget>> <<widget "mouthsensitivity">><<silently>> <<if $mouthsensitivity > 3.5>> <<set _text_output2 to "sensitive ">> <<elseif $mouthsensitivity >= 2.5>> <<set _text_output2 to "tender ">> <<elseif $mouthsensitivity >= 1.5>> <<set _text_output2 to "receptive ">> <<else>> <<set _text_output2 to "">> <</if>> <<set _mouthSensitivityDescribed to true>> <</silently>><<print _text_output2>><</widget>> <<widget "breastsensitivity">><<silently>> <<if $breastsensitivity > 3.5>> <<set _text_output2 to "sensitive ">> <<elseif $breastsensitivity >= 2.5>> <<set _text_output2 to "tender ">> <<elseif $breastsensitivity >= 1.5>> <<set _text_output2 to "receptive ">> <<else>> <<set _text_output2 to "">> <</if>> <<set _breastSensitivityDescribed to true>> <</silently>><<print _text_output2>><</widget>> <<widget "bottomsensitivity">><<silently>> <<if $bottomsensitivity > 3.5>> <<set _text_output2 to "sensitive ">> <<elseif $bottomsensitivity >= 2.5>> <<set _text_output2 to "tender ">> <<elseif $bottomsensitivity >= 1.5>> <<set _text_output2 to "receptive ">> <<else>> <<set _text_output2 to "">> <</if>> <<set _bottomSensitivityDescribed to true>> <</silently>><<print _text_output2>><</widget>> <<widget "nipple">> <<if !_breastSensitivityDescribed>><<breastsensitivity>><</if>><<print "nipple">> <</widget>> <<widget "nipples">> <<nipple>>s <</widget>> <<widget "breastsizedesc">><<silently>> <<set $_breastsize to (_args[0] isnot undefined ? _args[0] : $player.breastsize)>> <<if Number.isInteger($_breastsize)>> <<set _text_output to setup.breastsizes[$_breastsize]>> <<elseif $options.debugdisable is "f">> <<set _text_output to "<span class='red'>ERROR - breastsizedesc is not a number: _args[0]</span>">> <</if>> <</silently>>_text_output<</widget>> <<widget "breasts">><<silently>> <<if Number.isInteger($player.breastsize)>> <<if $player.breastsize lte 0>> <<set _text_output to "nipples">> <<else>> <<set _text_output to setup.breastsizes[$player.breastsize] + " breasts">> <</if>> <<elseif $options.debugdisable is "f">> <<set _text_output to "ERROR - $$player.breastsize is not a number: $player.breastsize">> <</if>> <</silently>><<if !_breastSensitivityDescribed or _args[0]>><<breastsensitivity>><</if>><<print _text_output>><</widget>> <<widget "breastssimple">><<silently>> <<if Number.isInteger($player.breastsize)>> <<if $player.breastsize lte 0>> <<set _text_output to "nipples">> <<else>> <<set _text_output to "breasts">> <</if>> <<elseif $options.debugdisable is "f">> <<set _text_output to "ERROR - $$player.breastsize is not a number: $player.breastsize">> <</if>> <</silently>><<print _text_output>><</widget>> <<widget "chest">><<silently>> <<if Number.isInteger($player.breastsize)>> <<if $player.breastsize lte 0>> <<set _text_output to "chest">> <<else>> <<set _text_output to setup.breastsizes[$player.breastsize] + " breasts">> <</if>> <<elseif $options.debugdisable is "f">> <<set _text_output to "ERROR - $$player.breastsize is not a number: $player.breastsize">> <</if>> <</silently>><<print _text_output>><</widget>> <<widget "chestsimple">><<silently>> <<if Number.isInteger($player.breastsize)>> <<if $player.breastsize lte 0>> <<set _text_output to "chest">> <<else>> <<set _text_output to "breasts">> <</if>> <<elseif $options.debugdisable is "f">> <<set _text_output to "ERROR - $$player.breastsize is not a number: $player.breastsize">> <</if>> <</silently>><<print _text_output>><</widget>> <<widget "mouth">><<silently>> <<set _text_output to "lips">> <</silently>><<if !_mouthSensitivityDescribed>><<mouthsensitivity>><</if>><<print _text_output>><</widget>> <<widget "undertop">><<silently>> <<if $worn.under_upper.exposed lte 0>> <<set _text_output to $worn.under_upper.name>> <<else>> <<breasts>> <</if>> <</silently>><<print _text_output>><</widget>> <<widget "underoutfit">><<silently>> <<outfitChecks>> <<undies>><<set $_secondhalf to _text_output>> <<undertop>> <!-- _text_output now has top (either worn under_upper name, or breasts desc) --> <<if !_underOutfit>> <!-- Two separate items, not an outfit --> <<set _text_output += " and " + $_secondhalf>> <</if>> <</silently>><<print _text_output>><</widget>> <<widget "genitalstate">><<silently>> <<set _text_output to "">> <<if _args[0] is "penis" and $player.sex is "f" and $parasite.clit.name is "parasite">> <<set _text_output to "parasitic ">> <<elseif _args[0] is "penis" and $earSlime.focus is "impregnation" and $earSlime.growth gte 100>> <<set _text_output to "dripping ">> <<elseif _args[0] is "pussy" and $earSlime.focus is "pregnancy" and $earSlime.growth gte 100>> <<set _text_output to "dripping ">> <<elseif $orgasmcount gte 23>> <<if $orgasmdown gte 1>> <<set _text_output to "tortured ">> <<else>> <<set _text_output to "spent ">> <</if>> <<elseif $orgasmcount gte 9>> <<if $orgasmdown gte 1>> <<set _text_output to "twitching ">> <<else>> <<set _text_output to "tired ">> <</if>> <<else>> <<if $orgasmdown gte 1>> <<set _text_output to "twitching ">> <<else>> <<if $arousal gte ($arousalmax / 5) * 4>> <<set _text_output to "tingling ">> <<elseif $arousal gte ($arousalmax / 5) * 3>> <<set _text_output to "">> <<elseif $arousal gte ($arousalmax / 5) * 2>> <<set _text_output to "">> <<elseif $arousal gte $arousalmax / 5>> <<set _text_output to "">> <<else>> <<set _text_output to "">> <</if>> /* ^^^ placeholders for later if people want to fill them out */ <</if>> <</if>> <<if _args[0] is "penis">> <<set _penisStateDescribed to true>> <<elseif _args[0] is "pussy">> <<set _pussyStateDescribed to true>> <</if>> <</silently>><<print _text_output>><</widget>> <<widget "bottom">><<silently>> <<set _text_output to ["slender", "slim", "modest", "cushioned", "soft", "round", "plump", "large", "huge"][Math.clamp(0, 8, $player.bottomsize)]>> /* _args[0] is a flag to prevent .pluck() from altering state random when calling from overlays */ <<set _text_output to _text_output + [" ass", " bum", " butt"].pluck(_args[0])>> <</silently>><<if !_bottomSensitivityDescribed>><<bottomsensitivity>><</if>><<print _text_output>><</widget>> <<widget "bottomsimple">><<silently>> <<set _text_output to either("ass", "bum", "butt")>> <</silently>><<print _text_output>><</widget>> <!-- Too small and too big outputs are intended as error messages so that it's more obvious what's wrong when people report bugs --> <<widget "penissize">><<silently>> <<set $_size to $combat or $playerHasStraponOverride ? playerPenisSize() : $player.penissize>> <<switch $_size>> <<case -2>><<set _text_output to "micro">> <<case -1>><<set _text_output to "mini">> <<case 0>><<set _text_output to "tiny">> <<case 1>><<set _text_output to "small">> <<case 2>><<set _text_output to "">> <<case 3>><<set _text_output to "large">> <<case 4>><<set _text_output to "enormous">> <<default>><<set _text_output to "[Widget 'penissize' - Invalid Penis Value of - " + $_size + ($playerHasStraponOverride ? " - $playerHasStraponOverride is set" : "") + "]">> <</switch>> <<set _penisSizeDescribed to true>> <</silently>><<print _text_output>><</widget>> <!-- [0] - if truthy, genital sensitivity is omitted --> <<widget "pussy">><<silently>> <<set _genital_state_text to "">> <<if !_pussyStateDescribed>> <<genitalstate "pussy">><<set _genital_state_text to _text_output>> <</if>> <<set _text_output to "">> <<if !_args[0] and !_genitalSensitivityDescribed>> <<genitalsensitivity>> <</if>> /* _args[1] is a flag to prevent .pluck() from altering state random when calling from overlays */ <<set _text_output += _genital_state_text + pussyNames().pluck(_args[1])>> <</silently>><<print _text_output>><</widget>> <!-- [0] - if truthy, genital sensitivity is omitted --> <<widget "clit">><<silently>> <<if $player.penisExist>> <<penis>> <<else>> <<set _text_output to "">> <<if !_args[0] and !_genitalSensitivityDescribed>> <<genitalsensitivity>> <</if>> <<set _text_output += "clit">> <</if>> <</silently>><<print _text_output>><</widget>> <!-- [0] - if truthy, genital sensitivity is omitted --> <<widget "penis">><<silently>> <!-- Size, skip if mentioned this passage already --> <<if _penisSizeDescribed>> <<set _penissize_text to "">> <<else>> <<penissize>><<set _penissize_text to _text_output>> <<if _penissize_text isnot "">> <<set _penissize_text to _penissize_text + " ">> <</if>> <</if>> <!-- State, skip if mentioned this passage already --> <<if _penisStateDescribed>> <<set _genital_state_text to "">> <<else>> <<genitalstate "penis">><<set _genital_state_text to _text_output>> <</if>> <<set _text_output to "">> <!-- Sensitivity, skip if mentioned this passage already --> <<if !_args[0] and !_genitalSensitivityDescribed>> <<genitalsensitivity>> <</if>> /* _args[1] is a flag to prevent .pluck() from altering state random when calling from overlays */ <<set _text_output += _penissize_text + _genital_state_text + penisNames().pluck(_args[1])>> <<if playerHasStrapon()>> <<if _args[0] isnot undefined and _args[0] is "strap-on" and $player.penisExist>> <!-- Do nothing. This is an override for wacky cases such as player masturbation --> <<else>> <<set _text_output to _penissize_text + "strap-on">> <</if>> <</if>> <</silently>><<print _text_output>><</widget>> <<widget "reveal">> <<if _args[0]>> <<if _args[0] gte 900>> <span class="red">lewd</span> <<elseif _args[0] gte 700>> <span class="pink">risqué</span> <<elseif _args[0] gte 500>> <span class="purple">seductive</span> <<elseif _args[0] gte 300>> <span class="blue">comfy</span> <<elseif _args[0] gte 200>> <span class="lblue">tasteful</span> <<elseif _args[0] gte 100>> <span class="teal">smart</span> <<else>> <span class="green">unassuming</span> <</if>> <</if>> <</widget>> <<widget "integrity">> <<if _args[0]>> <<if _args[1] is "cap">> <<if _args[0] gte 900>> <span class="green">Tough</span> <<elseif _args[0] gte 500>> <span class="teal">Sturdy</span> <<elseif _args[0] gte 200>> <span class="lblue">Firm</span> <<elseif _args[0] gte 100>> <span class="blue">Fine</span> <<elseif _args[0] gte 50>> <span class="purple">Delicate</span> <<elseif _args[0] gte 20>> <span class="pink">Fragile</span> <<else>> <span class="red">Flimsy</span> <</if>> <<else>> <<if _args[0] gte 900>> <span class="green">tough</span> <<elseif _args[0] gte 500>> <span class="teal">sturdy</span> <<elseif _args[0] gte 200>> <span class="lblue">firm</span> <<elseif _args[0] gte 100>> <span class="blue">fine</span> <<elseif _args[0] gte 50>> <span class="purple">delicate</span> <<elseif _args[0] gte 20>> <span class="pink">fragile</span> <<else>> <span class="red">flimsy</span> <</if>> <</if>> <</if>> <</widget>> <<widget "strokes">> <<if $enemyanger gte ($enemyangermax / 5) * 4>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> savagely toys with <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> viciously toys with <<else>> brutally rubs <</if>> <<elseif $enemyanger gte ($enemyangermax / 5) * 2>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 4>> roughly rubs <<elseif $enemyarousal gte ($enemyarousalmax / 5) * 2>> firmly strokes <<else>> passionately strokes <</if>> <<else>> <<if $enemyarousal gte ($enemyarousalmax / 5) * 2>> vigorously strokes <<else>> gently caresses <</if>> <</if>> <</widget>> <<widget "male">><<silently>> <<if $pronoun is "m">> <<set _text_output to "male">> <<elseif $pronoun is "f">> <<set _text_output to "female">> <<elseif $pronoun>> <<set _text_output to "androgynous">> <<else>> <<set _text_output to `<span class="red">[ERROR: undefined pronoun in "male"]</span>`>> <</if>> <</silently>><<print _text_output>><</widget>> <<widget "personsimple">><<silently>> <<if $NPCList[$index].type and $NPCList[$index].type isnot "human" and _args[0] isnot "normal">> <<set _text_output to $NPCList[$index].type>> <<else>> <<set _text_output to "">> <</if>> <<if $role and $role isnot "normal">> <<set _text_output += $role>> <<elseif $pronoun is "m">> <<set _text_output += ($npcadult is 1 ? "man" : "boy")>> <<elseif $pronoun is "f">> <<set _text_output += ($npcadult is 1 ? "woman" : "girl")>> <<elseif $pronoun>> <<set _text_output += "person">> <<else>> <<set _text_output += `<span class="red">[ERROR: undefined pronoun in "personsimple"]</span>`>> <</if>> <</silently>><<print _text_output>><</widget>> <<widget "personname">><<silently>> <<if $NPCList[$index].name>> <<set _text_output to $NPCList[$index].name>> <<else>> <<set _text_output to `<span class="red">[ERROR: undefined name in "personname"]</span>`>> <</if>> <</silently>><<print _text_output>><</widget>> <<widget "person">><<silently>> <<set _text_output to $description + " ">> <<if $NPCList[$index].type and $NPCList[$index].type isnot "human" and _args[0] isnot "normal">> <<set _text_output += $NPCList[$index].type>> <</if>> <<if $npc_named is 1>> <<set _text_output to $description>> <<elseif $role and $role isnot "normal">> <<set _text_output += $role>> <<elseif $pronoun is "m">> <<set _text_output += ($npcadult is 1 ? "man" : "boy")>> <<elseif $pronoun is "f">> <<set _text_output += ($npcadult is 1 ? "woman" : "girl")>> <<elseif $pronoun>> <<set _text_output += "person">> <<else>> <<set _text_output += `<span class="red">[ERROR: undefined pronoun in "person"]</span>`>> <</if>> <</silently>><<print _text_output>><</widget>> <<widget "persons">><<silently>> <<person _args[0]>> <<set _text_output to _text_output + "'s">> <</silently>><<print _text_output>><</widget>> <<widget "combatperson">><<silently>> <<if $npc_named is 1>> <<if $NPCList[$index].name_known is 1 and $description isnot "pale figure">> <<set _text_output to $NPCList[$index].fullDescription>> <<else>> <<set _text_output to "the " + $description>> <</if>> <<elseif $NPCList[$index].name_known is 1>> <<set _text_output to $NPCList[$index].name>> <<elseif $enemytype is "beast">> <<set _text_output to "the " + $NPCList[$index].type>> <<elseif $role and $role isnot "normal">> <<set _text_output to "the " + $description + " " + $role>> <<elseif $npcadult is 1>> <<if $pronoun is "m">> <<set _text_output to "the " + $description + " man">> <<elseif $pronoun is "f">> <<set _text_output to "the " + $description + " woman">> <<else>> <<set _text_output to "the " + $description>> <</if>> <<else>> <<set _text_output to "the " + $NPCList[$index].fullDescription>> <</if>> <</silently>><<print _text_output>><</widget>> <<widget "combatpersons">><<silently>> <<combatperson>> <<if (_text_output?.endsWith("s") or _text_output?.endsWith("sh")) and $NPCList[$index].name_known isnot 1>> <<set _text_output to _text_output + "'">> <<else>> <<set _text_output to _text_output + "'s">> <</if>> <</silently>><<print _text_output>><</widget>> <<widget "combatPerson">><<silently>> <<combatperson>><<capitalise>> <</silently>><<print _text_output>><</widget>> <<widget "combatPersons">><<silently>> <<combatpersons>><<capitalise>> <</silently>><<print _text_output>><</widget>> <<widget "genderswapPlayer">> <!-- Note: You'll want to call this again when you're done, because its effects are visible on the sidebar caption if you leave it swapped, and we don't want that. --> <!-- Note 2: gender_appearance is recalculated at the start of each passage, so don't expect the effects to stick around. --> <<set $player.gender_appearance to ($player.gender_appearance is "f" ? "m" : "f")>> <</widget>> <<widget "genderswap">> <!-- Changes the current pronoun, without modifying the NPC it's referencing. Useful for crossdressing NPC dialogue. --> <!-- Usage: <<person1>><<genderswap>><<he>> --> <!-- Cannot use genderswap when pronoun is anything other than "m" or "f". --> <<switch $pronoun>> <<case "m">> <<set $pronoun to "f">> <<case "f">> <<set $pronoun to "m">> <<default>> <<print `<span class="red">[ERROR: invalid pronoun in genderswap, `+ $pronoun +`]</span>`>> <</switch>> <</widget>> <<widget "personselect">> <!-- This replaces calls person1 person2 etc. Used for NPC object calls --> <!-- Note calls are 0-5 corresponding to NPCs 1-6 --> <<set _n to _args[0]>> <<set $index to _n>> <<if !$NPCList[_n] or !$NPCList[_n].pronoun>> <<error { message: "Undefined NPC in personselect " + _n + ".", source: Utils.GetStack(), depth: 0, exportable: false, }>> <!-- <<print `<span class="red">[ERROR: undefined NPC in personselect `+ _n +`]</span>`>> --> <<else>> <<set $npcadult to $NPCList[_n].adult>> <<set $pronoun to $NPCList[_n].pronoun>> <<if $npcrow.includes(_n)>> <<set $description to $NPCName[$npcnum[$npcrow.indexOf(_n)]].title>> <<set $role to "normal">> <<set $npc_named to 1>> <<if $NPCName[$npcnum[$npcrow.indexOf(_n)]].nam is "Ivory Wraith">> <<set $description to "pale figure">> <</if>> <<else>> <<set $description to $NPCList[_n].description>> <<set $role to $NPCList[_n].role>> <<set $npc_named to 0>> <</if>> <</if>> <</widget>> <!-- Leaving person1-6 in place for legacy support as of v2.3--> <<widget "person1">> <<personselect 0>> <</widget>> <<widget "person2">> <<personselect 1>> <</widget>> <<widget "person3">> <<personselect 2>> <</widget>> <<widget "person4">> <<personselect 3>> <</widget>> <<widget "person5">> <<personselect 4>> <</widget>> <<widget "person6">> <<personselect 5>> <</widget>> <<widget "personpenis">><<silently>> <<if $NPCList[$index].penis isnot "none">> <<set _text_output to "penis">> <<else>> <<set _text_output to "clit">> <</if>> <</silently>><<print _text_output>><</widget>> <<widget "spouse">><<silently>> <<if maleChance($pronoun) gte random(1,100)>> <<set _text_output to ($pronoun is "m" ? "husband" : "wife")>> <<else>> <<set _text_output to ($pronoun is "m" ? "wife" : "husband")>> <</if>> <</silently>><<print _text_output>><</widget>> <<widget "father">><<silently>> <<set _text_output to ($pronoun is "m" ? "father" : "mother")>> <</silently>><<print _text_output>><</widget>> <<widget "Father">><<silently>> <<father>><<capitalise>> <</silently>><<print _text_output>><</widget>> <<widget "mummy">><<silently>> <<set _text_output to ($pronoun is "m" ? "daddy" : "mummy")>> <</silently>><<print _text_output>><</widget>> <<widget "Mummy">><<silently>> <<mummy>><<capitalise>> <</silently>><<print _text_output>><</widget>> <<widget "actor">><<silently>> <<set _text_output to ($pronoun is "m" ? "actor" : "actress")>> <</silently>><<print _text_output>><</widget>> <<widget "actorAroused">><<silently>> <<set $_npcGen to (_args[0] ? _args[0] : $index)>> <<if $NPCList[$_npcGen].penis isnot "none">> <<set _text_output to "flaunting a very obvious erection.">> <<else>> <<set _text_output to "being very obviously aroused.">> <</if>> <</silently>><<print _text_output>><</widget>> <<widget "girl">><<silently>> <<set _text_output to ($player.gender_appearance is "m"? "boy" : "girl")>> <</silently>><<print _text_output>><</widget>> <<widget "lady">><<silently>> <<set _text_output to ($player.gender_appearance is "m"? "man" : "lady")>> <</silently>><<print _text_output>><</widget>> <<widget "gentleman">><<silently>> <<set _text_output to ($player.gender_appearance is "m"? "gentleman" : "lady")>> <</silently>><<print _text_output>><</widget>> <<widget "girlfriend">><<silently>> <<girl>><<set _text_output to _text_output + "friend">> <</silently>><<print _text_output>><</widget>> <<widget "partnerfriend">><<silently>> /* Prints the gender of the player's assumed hetero partner */ <<set _text_output to ($player.gender_appearance is "m"? "girlfriend" : "boyfriend")>> <</silently>><<print _text_output>><</widget>> <<widget "friend">><<silently>> <<if $robinromance is 1>> <<girl>><<set _text_output to _text_output + "friend">> <<elseif _args[0] is "bff">> <<set _text_output to "best friend">> <<else>> <<set _text_output to "friend">> <</if>> <</silently>><<print _text_output>><</widget>> <<widget "girls">><<silently>> <<girl>><<set _text_output to _text_output + "s">> <</silently>><<print _text_output>><</widget>> <<widget "wife">><<silently>> <<set _text_output to ($player.gender_appearance is "m"? "husband" : "wife")>> <</silently>><<print _text_output>><</widget>> <<widget "Wife">><<silently>> <<wife>><<capitalise>> <</silently>><<print _text_output>><</widget>> <<widget "sister">><<silently>> <<set _text_output to ($player.gender_appearance is "m" ? "brother" : "sister")>> <</silently>><<print _text_output>><</widget>> <<widget "Sister">><<silently>> <<sister>><<capitalise>> <</silently>><<print _text_output>><</widget>> <<widget "sister_npc">><<silently>> <<set _text_output to ($pronoun is "m" ? "brother" : "sister")>> <</silently>><<print _text_output>><</widget>> <<widget "Sister_npc">><<silently>> <<sister_npc>><<capitalise>> <</silently>><<print _text_output>><</widget>> <<widget "victimgirl">> <<if $settings.maleVictimChance is 0>> <<set _text_output to "girl">> <<elseif $settings.maleVictimChance is 100>> <<set _text_output to "boy">> <<elseif $player.gender_appearance is "m">> <<set _text_output to "boy">> <<else>> <<set _text_output to "girl">> <</if>> <<print _text_output>> <</widget>> <<widget "victimgirls">> <<if $settings.maleVictimChance is 0>> <<set _text_output to "girls">> <<elseif $settings.maleVictimChance is 100>> <<set _text_output to "boys">> <<elseif $player.gender_appearance is "m">> <<set _text_output to "boys">> <<else>> <<set _text_output to "girls">> <</if>> <<print _text_output>> <</widget>> <<widget "lass">><<silently>> <<set _text_output to ($player.gender_appearance is "m"? "lad" : "lass")>> <</silently>><<print _text_output>><</widget>> <<widget "Lass">><<silently>> <<lass>><<capitalise>> <</silently>><<print _text_output>><</widget>> <<widget "pcSex">><<silently>> <<switch $player.sex>> <<case "f">><<set _text_output to "girl">> <<case "m">><<set _text_output to "boy">> <<case "h">><<set _text_output to "hermaphrodite">> <</switch>> <</silently>><<print _text_output>><</widget>> <<widget "pcGender">><<silently>> <<switch $player.gender>> <<case "f">><<set _text_output to "girl">> <<case "m">><<set _text_output to "boy">> <<default>><<set _text_output to "orphan">> <</switch>> <</silently>><<print _text_output>><</widget>> <<widget "pcGenderher">><<silently>> <<switch $player.gender>> <<case "f">> <<set _text_output to "her">> <<case "m">> <<set _text_output to "his">> <<default>> <<set _text_output to "their">> <</switch>> <</silently>><<print _text_output>><</widget>> <<widget "genitals_are">><<silently>> <<if _args[0] is undefined>> <<genitals>> <<else>> <<genitals 1>> <</if>> <<if $player.penisExist and $player.vaginaExist and (!playerChastity() or _args[0] isnot undefined)>> <<set _text_output += " are">> <<else>> <<set _text_output += " is">> <</if>> <</silently>><<print _text_output>><</widget>> <<widget "genitalsensitivity">><<silently>> <<if $genitalsensitivity > 3.5>> <<set _text_output to "sensitive ">> <<elseif $genitalsensitivity >= 2.5>> <<set _text_output to "tender ">> <<elseif $genitalsensitivity >= 1.5>> <<set _text_output to "receptive ">> <<else>> <<set _text_output to "">> <</if>> <<set _genitalSensitivityDescribed to true>> <</silently>><<print _text_output>><</widget>> <!-- Optional parameter [0] possible values: 0 or omitted or null - display chastity, virginity, arousal, and pubes 1 - omit chastity, display virginity, arousal, and pubes 2 - omit chastity, virginity, arousal, sensitivity, and pubes --> <<widget "genitals">><<silently>> <<if playerChastity("hidden") and !_args[0] and _chastityBreak isnot 1>> <<set _text_output to $worn.genitals.name>> <<else>> <<if _args[0] is 2>> <<set _text_output to "">> <<else>> <<genitalsensitivity>> <</if>> <<if $player.penisExist>> <<if _args[0] isnot 1 and _args[0] isnot 2>> <<if $worn.genitals.name is "chastity parasite">> <<set _text_output += "sealed ">> <<elseif playerChastity("cage")>> <<set _text_output += "caged ">> <</if>> <</if>> <<if $player.virginity.penile is true and _args[0] isnot 2>> <<set _text_output += "virgin ">> <</if>> <<if $player.sex is "f" and $parasite.clit.name is "parasite" and _args[0] isnot 2>> <<set _text_output += "parasitic ">> <</if>> /* _args[0] is a flag to prevent .pluck() from altering state random when calling from overlays */ <<set _text_output += penisNames().pluck(_args[0])>> <</if>> <<if $player.vaginaExist>> <<if $player.penisExist>> <<set _text_output += " and ">> <</if>> <<if _args[0] isnot 2>> <<if $player.virginity.vaginal is true>> <<set _text_output += "virgin ">> <</if>> <<if $vaginaWetness gte 75 and $settings.pubicHairEnabled and $pblevel gte 8>> <<set _text_output += $player.penisExist ? "visibly aroused, bushy " : "visibly aroused and bushy ">> <<elseif $vaginaWetness gte 75>> <<set _text_output += "visibly aroused ">> <<elseif $settings.pubicHairEnabled and $pblevel gte 8>> <<set _text_output += "bushy ">> <</if>> <</if>> /* _args[0] is a flag to prevent .pluck() from altering state random when calling from overlays */ <<set _text_output += pussyNames().pluck(_args[0])>> <</if>> <</if>> <</silently>><<print _text_output>><</widget>> <!-- optionally takes 2 parameters: what to add after the text for singular/plural --> <<widget "genitalsandbreasts">> <<genitals>> <<if $player.breastsize gte 1>>and <<breasts>><</if>> <<if _args[0] isnot undefined and _args[1] isnot undefined>> <<if ($player.penisExist and $player.vaginaExist) or $player.breastsize gte 1>> _args[1] <<else>> _args[0] <</if>> <</if>> <</widget>> <<widget "sydneyWarning">> <<if !$settings.blindStatsEnabled>> <<if _args[0] is "corrupt" and $corruptionEvent is 1 and C.npc.Sydney.corruption is 0 and (C.npc.Sydney.purity - 10) lt 0>> | <span class="purple">This action might corrupt Sydney</span> <<elseif _args[0] is "purify" and $purityEvent is 1 and C.npc.Sydney.purity is 0 and (C.npc.Sydney.corruption - 10) lt 0>> | <span class="teal">This action might purify Sydney</span> <<else>> <<switch _warnstate>> <<case 1>> <<if $purityEvent is 1 and C.npc.Sydney.purity is 0 and (C.npc.Sydney.corruption - 2) lt 0>> | <span class="teal">This action will purify Sydney</span> <</if>> <<case 2>> <<if $purityEvent is 1 and C.npc.Sydney.purity is 0 and (C.npc.Sydney.corruption - 5) lt 0>> | <span class="teal">This action will purify Sydney</span> <</if>> <<case 3>> <<if $purityEvent is 1 and C.npc.Sydney.purity is 0 and (C.npc.Sydney.corruption - 10) lt 0>> | <span class="teal">This action will purify Sydney</span> <</if>> <<case -1>> <<if $corruptionEvent is 1 and C.npc.Sydney.corruption is 0 and (C.npc.Sydney.purity - 2) lt 0>> | <span class="purple">This action will corrupt Sydney</span> <</if>> <<case -2>> <<if $corruptionEvent is 1 and C.npc.Sydney.corruption is 0 and (C.npc.Sydney.purity - 5) lt 0>> | <span class="purple">This action will corrupt Sydney</span> <</if>> <<case -3>> <<if $corruptionEvent is 1 and C.npc.Sydney.corruption is 0 and (C.npc.Sydney.purity - 10) lt 0>> | <span class="purple">This action will corrupt Sydney</span> <</if>> <</switch>> <</if>> <</if>> <</widget>> <<widget "gsydneytoy">> <<if $sydney_toy is undefined>> | <span class="purple">Sydney will keep the _args[0] for future use</span> <<elseif $sydney_toy isnot _args[0]>> | <span class="purple">Sydney will keep the _args[0] for future use, replacing their $sydney_toy</span> <</if>> <</widget>> <<widget "flight_text">> <<if !$settings.blindStatsEnabled>> | <<if $harpy gte 6 and $birdFly gte 1>> <<if $plucked>> <span class="grey">Preened wings</span> <<else>> <span class="gold">Strong wings</span> <</if>> <<elseif $angel gte 6 or $demon gte 6 or $fallenangel gte 2 or $harpy gte 6>> <span class="gold">Wings</span> <</if>> <</if>> <</widget>> <!-- Awareness --> <<widget "combataware">> <<if !$settings.blindStatsEnabled>> <<set _color to ["","teal","lblue","blue","purple","pink"][_args[0]]>> <span @class="_color">Awareness _args[0]</span> <</if>> <</widget>> <!-- Exhibitionism --> <<widget "exhibitionist">> <<if !$settings.blindStatsEnabled>> | <<set _classList to ["","teal","lblue","blue","purple","pink","red"][_args[0]]>> <<set _classList += " " + getLargestSexStatModifierCssClasses("exhibitionism", _args[0])>> <<if _args[0] is 6>> <span @class="_classList">!Exhibitionism 6!</span> <<else>> <span @class="_classList">Exhibitionism _args[0]</span> <</if>> <</if>> <</widget>> <<widget "exhibitionist1">> <<exhibitionist 1>> <</widget>> <<widget "exhibitionist2">> <<exhibitionist 2>> <</widget>> <<widget "exhibitionist3">> <<exhibitionist 3>> <</widget>> <<widget "exhibitionist4">> <<exhibitionist 4>> <</widget>> <<widget "exhibitionist5">> <<exhibitionist 5>> <</widget>> <<widget "exhibitionist6">> <<exhibitionist 6>> <</widget>> <<widget "combatexhibitionist">> <<if !$settings.blindStatsEnabled>> <<set _classList to ["","teal","lblue","blue","purple","pink","red"][_args[0]]>> <<set _classList += " " + getLargestSexStatModifierCssClasses("exhibitionism", _args[0])>> <<if _args[0] is 6>> <span @class="_classList">!Exhibitionism 6!</span> <<else>> <span @class="_classList">Exhibitionism _args[0]</span> <</if>> <</if>> <</widget>> <<widget "combatexhibitionist1">> <<combatexhibitionist 1>> <</widget>> <<widget "combatexhibitionist2">> <<combatexhibitionist 2>> <</widget>> <<widget "combatexhibitionist3">> <<combatexhibitionist 3>> <</widget>> <<widget "combatexhibitionist4">> <<combatexhibitionist 4>> <</widget>> <<widget "combatexhibitionist5">> <<combatexhibitionist 5>> <</widget>> <<widget "combatexhibitionist6">> <<combatexhibitionist 6>> <</widget>> <!-- Promiscuity --> <<widget "promiscuous">> <<if !$settings.blindStatsEnabled>> | <<set _classList to ["","teal","lblue","blue","purple","pink","red"][_args[0]]>> <<set _classList += " " + getLargestSexStatModifierCssClasses("promiscuity", _args[0])>> <<if _args[0] is 6>> <span @class="_classList">!Promiscuity 6!</span> <<else>> <span @class="_classList">Promiscuity _args[0]</span> <</if>> <</if>> <</widget>> <<widget "promiscuous1">> <<promiscuous 1>> <</widget>> <<widget "promiscuous2">> <<promiscuous 2>> <</widget>> <<widget "promiscuous3">> <<promiscuous 3>> <</widget>> <<widget "promiscuous4">> <<promiscuous 4>> <</widget>> <<widget "promiscuous5">> <<promiscuous 5>> <</widget>> <<widget "promiscuous6">> <<promiscuous 6>> <</widget>> <<widget "combatpromiscuous">> <<if ($consensual is 1 or _args[0] is 6) and !$promiscuityIgnore and !$settings.blindStatsEnabled>> <<set _classList to ["","teal","lblue","blue","purple","pink","red"][_args[0]]>> <<set $_stat to $enemytype is "man" ? "promiscuity" : "deviancy">> <<set _classList += " " + getLargestSexStatModifierCssClasses($_stat, _args[0])>> <<if _args[0] is 6>> <span @class="_classList"><<print ($enemytype is "man" ? "- !Promiscuity 6!" : "- !Deviancy 6!")>></span> <<else>> <span @class="_classList"><<print ($enemytype is "man" ? "- Promiscuity" : "- Deviancy")>> _args[0]</span> <</if>> <</if>> <</widget>> <<widget "combatpromiscuous1">> <<combatpromiscuous 1>> <</widget>> <<widget "combatpromiscuous2">> <<combatpromiscuous 2>> <</widget>> <<widget "combatpromiscuous3">> <<combatpromiscuous 3>> <</widget>> <<widget "combatpromiscuous4">> <<combatpromiscuous 4>> <</widget>> <<widget "combatpromiscuous5">> <<combatpromiscuous 5>> <</widget>> <<widget "combatpromiscuous6">> <<combatpromiscuous 6>> <</widget>> <!-- Deviancy --> <<widget "deviant">> <<if !$settings.blindStatsEnabled>> | <<set _classList to ["","teal","lblue","blue","purple","pink","red"][_args[0]]>> <<set _classList += " " + getLargestSexStatModifierCssClasses("deviancy", _args[0])>> <<if _args[0] is 6>> <span @class="_classList">!Deviancy 6!</span> <<else>> <span @class="_classList">Deviancy _args[0]</span> <</if>> <</if>> <</widget>> <<widget "deviant1">> <<deviant 1>> <</widget>> <<widget "deviant2">> <<deviant 2>> <</widget>> <<widget "deviant3">> <<deviant 3>> <</widget>> <<widget "deviant4">> <<deviant 4>> <</widget>> <<widget "deviant5">> <<deviant 5>> <</widget>> <<widget "deviant6">> <<deviant 6>> <</widget>> <<widget "crime">> <<if !$settings.blindStatsEnabled>> | <span class="red">Crime</span> <<if _args[0]>> <<crimeType _args[0]>> <</if>> <</if>> <</widget>> <<widget "crimes">> <<if !$settings.blindStatsEnabled>> | <span class="red">Crime</span> <<if _args[0]>> <<set $_crimeTypes to _args>> <<set $_crimeDisplay to []>> <<for $_crimeKey range $_crimeTypes>> <<if !setup.crimeNames[$_crimeKey]>> <<run Errors.report("Extra-Illegal crimes displayed; " + $_crimeKey)>> <<else>> <<set $_crimeDisplay.push(toTitleCase(setup.crimeNames[$_crimeKey]))>> <</if>> <</for>> <span class="red">(<<print formatList($_crimeDisplay)>>)</span> <</if>> <</if>> <</widget>> <<widget "combatcrime">> <<if !$settings.blindStatsEnabled>> <span class="red">Crime</span> <<if _args[0]>> <<crimeType _args[0]>> <</if>> <</if>> <</widget>> <<widget "gcrime">> <<if !$settings.blindStatsEnabled>> | <span class="red">+ Crime</span> <<if _args[0]>> <<crimeType _args[0]>> <</if>> <</if>> <</widget>> <<widget "ggcrime">> <<if !$settings.blindStatsEnabled>> | <span class="red">+ + Crime</span> <<if _args[0]>> <<crimeType _args[0]>> <</if>> <</if>> <</widget>> <<widget "gggcrime">> <<if !$settings.blindStatsEnabled>> | <span class="red">+ + + Crime</span> <<if _args[0]>> <<crimeType _args[0]>> <</if>> <</if>> <</widget>> <<widget "crimeType">> <<if _args[0]>> <<set $_crimeType to _args[0]>> <<if !setup.crimeNames[$_crimeType] and $_crimeType isnot "???">> <<run Errors.report("Extra-Illegal crime displayed; " + $_crimeType)>> <<else>> <<if $_crimeType isnot "???">> <<set $_crimeType to setup.crimeNames[$_crimeType].toUpperFirst()>> <</if>> <span class="red">($_crimeType)</span> <</if>> <</if>> <</widget>> <<widget "gspray">> <<if !$settings.blindStatsEnabled>> | <span class="green">+ 1 pepper spray</span> <</if>> <</widget>> <<widget "gspraymax">> <<if !$settings.blindStatsEnabled>> | <span class="gold">+ 1 pepper spray capacity</span> <</if>> <</widget>> <<widget "gcondoms">> <<set $_condomGain to (_args[0] ? _args[0] : 1)>> <<if $condoms eq undefined>><<set $condoms to 0>><</if>> <<set $condoms += $_condomGain>> <<if !$settings.blindStatsEnabled>> | <span class="pink">+ $_condomGain <<pluralise $_condomGain "Condom">></span> <</if>> <</widget>> <<widget "defianttext">> <<if !$settings.blindStatsEnabled>> | <<if _args[0]>> <<if $wolfgirl gte 6 and $submissive gt _args[0]>> <span @class="'def ' + basicJitterCss()">Defiant</span> <<else>> <span class="def">Defiant</span> <</if>> <<else>> <span class="def">Defiant</span> <</if>> <</if>> <</widget>> <<widget "submissivetext">> <<if !$settings.blindStatsEnabled>> | <span class="sub">Submissive</span> <</if>> <</widget>> <<widget "gdef">> <<if !$settings.blindStatsEnabled>> | <span class="def">+ Defiance</span> <</if>> <</widget>> <<widget "ggdef">> <<if !$settings.blindStatsEnabled>> | <span class="def">+ + Defiance</span> <</if>> <</widget>> <<widget "gggdef">> <<if !$settings.blindStatsEnabled>> | <span class="def">+ + + Defiance</span> <</if>> <</widget>> <<widget "ldef">> <<if !$settings.blindStatsEnabled>> | <span class="sub">- Defiance</span> <</if>> <</widget>> <<widget "lldef">> <<if !$settings.blindStatsEnabled>> | <span class="sub">- - Defiance</span> <</if>> <</widget>> <<widget "llldef">> <<if !$settings.blindStatsEnabled>> | <span class="sub">- - Defiance</span> <</if>> <</widget>> <<widget "heat">> | <span class="pink">Heat</span> <</widget>> <<widget "rut">> | <span class="blue">Rut</span> <</widget>> <<widget "openinghours">> A sign reads: "Opening hours: <<ampm `_args[0] ? _args[0] : 7` 00>> - <<ampm `_args[1] ? _args[1] : 21` 00>>" <</widget>> <<widget "exposedupper">><<silently>> <<if $worn.over_upper.exposed is 0>> <<set _text_output to $worn.over_upper.name>> <<elseif $worn.upper.exposed is 0>> <<set _text_output to $worn.upper.name>> <<elseif $worn.under_upper.exposed is 0>> <<set _text_output to $worn.under_upper.name>> <<else>> <<breasts>> <</if>> <</silently>>_text_output<</widget>> <<widget "exposedlower">><<silently>> <<if $worn.over_lower.exposed is 0>> <<set _text_output to $worn.over_lower.name>> <<elseif $worn.lower.exposed is 0>> <<set _text_output to $worn.lower.name>> <<elseif $worn.under_lower.exposed is 0>> <<set _text_output to $worn.under_lower.name>> <<else>> <<genitals>> <</if>> <</silently>>_text_output<</widget>> <<widget "groin">><<silently>> <<genitals>> <<outfitChecks>> <<if !_bottomIsSkirt and _bottom>> <<set _text_output to _text_output + " through your " + _bottom.name>> <<else>> <<set _text_output to _text_output>> <</if>> <</silently>>_text_output<</widget>> <<widget "crotch">><<silently>> <<outfitChecks>> <<if _bottom>> <<set _text_output to _bottom.name>> <<else>> <<genitals>> <</if>> <</silently>>_text_output<</widget>> <<widget "privates">><<silently>> <<outfitChecks>> <<if !_bottomExposed>> <<set _text_output to either("genitals", "groin", "crotch", "privates")>> <<else>> <<genitals>> <</if>> <</silently>>_text_output<</widget>> <!-- Optional parameter [0] possible values: 0 or omitted or null - display full name of undies or full genital description 1 - display simple name of undies or full genital description 2 - display simple name of undies or simple genital description --> <<widget "undies">><<silently>> <<outfitChecks>> <<if !$worn.under_lower.type.includes("naked")>> <<if _args[0] and _args[0] gte 1>> <<set _text_output to $worn.under_lower.name_simple>> <<else>> <<set _text_output to $worn.under_lower.name>> <</if>> <<elseif !$worn.genitals.type.includes("naked")>> <<set _text_output to $worn.genitals.name>> <<else>> <<genitals _args[0]>> <</if>> <</silently>><<print _text_output>><</widget>> <<widget "bottoms">><<silently>> <<outfitChecks>> <<set _text_output to _bottom.name>> <</silently>>_text_output<</widget>> <<widget "underbottoms">><<silently>> <<outfitChecks>> <<set _text_output to (_underOutfit ? $worn.under_upper.name : $worn.under_lower.name)>> <</silently>>_text_output<</widget>> <<widget "allTops">> <<if $worn.over_upper.name isnot "naked">> $worn.over_upper.name\ <</if>> <<if $worn.upper.name isnot "naked">> <<if $worn.over_upper.name isnot "naked">> and <</if>> $worn.upper.name\ <<elseif $worn.under_upper.type.includes("covered")>> <<if $worn.over_upper.name isnot "naked">> and <</if>> $worn.under_upper.name\ <</if>> <</widget>> <<widget "allBottoms">> <<if $worn.over_lower.name isnot "naked" and $worn.over_lower.set isnot $worn.over_upper.set>> $worn.over_lower.name\ <</if>> <<if $worn.lower.name isnot "naked">> <<if $worn.over_lower.name isnot "naked">> and <</if>> $worn.lower.name\ <<elseif $worn.under_lower.type.includes("covered")>> <<if $worn.over_lower.name isnot "naked">> and <</if>> $worn.under_lower.name\ <</if>> <</widget>> <<widget "allTopsUnderwear">><<silently>> <<outfitChecks>> <<set _tops to []>> <<if $worn.over_upper.name isnot "naked">> <<set _tops.push($worn.over_upper.name)>> <</if>> <<if $worn.upper.name isnot "naked">> <<set _tops.push($worn.upper.name)>> <</if>> <<if $worn.under_upper.name isnot "naked">> <<set _tops.push($worn.under_upper.name)>> <</if>> <<if _tops.length is 0 and _top>><<set _tops.push(_top.name)>><</if>> <<if _tops.length is 1>><<set _text_output to _tops[0]>><</if>> <<if _tops.length is 2>><<set _text_output to _tops[0] + " and " + _tops[1]>><</if>> <<if _tops.length is 3>><<set _text_output to _tops[0] + ", " + _tops[1] + " and " + _tops[2]>><</if>> <</silently>>_text_output<</widget>> <<widget "allBottomsUnderwear">><<silently>> <<outfitChecks>> <<set _bottoms to []>> <<if $worn.over_lower.name isnot "naked">> <<set _bottoms.push($worn.over_lower.name)>> <</if>> <<if $worn.lower.name isnot "naked">> <<set _bottoms.push($worn.lower.name)>> <</if>> <<if $worn.under_lower.name isnot "naked">> <<set _bottoms.push($worn.under_lower.name)>> <</if>> <<if _bottoms.length is 0 and _bottom>><<set _bottoms.push(_bottom.name)>><</if>> <<if _bottoms.length is 1>><<set _text_output to _bottoms[0]>><</if>> <<if _bottoms.length is 2>><<set _text_output to _bottoms[0] + " and " + _bottoms[1]>><</if>> <<if _bottoms.length is 3>><<set _text_output to _bottoms[0] + ", " + _bottoms[1] + " and " + _bottoms[2]>><</if>> <</silently>>_text_output<</widget>> <<widget "top">><<silently>> <<if !$worn.over_upper.type.includes("naked")>> <<set _text_output to $worn.over_upper.name>> <<elseif !$worn.upper.type.includes("naked")>> <<set _text_output to $worn.upper.name>> <<elseif !$worn.under_upper.type.includes("naked")>> <<set _text_output to $worn.under_upper.name>> <<else>> <<set _text_output to "top">> <</if>> <</silently>>_text_output<</widget>> <<widget "topaside">><<silently>> <<if $worn.over_upper.exposed lte 1>> <<set _text_output to $worn.over_upper.name>> <<elseif $worn.upper.exposed lte 1>> <<set _text_output to $worn.upper.name>> <<elseif $worn.under_upper.exposed is 0>> <<set _text_output to $worn.under_upper.name>> <<else>> <<set _text_output to "top">> <</if>> <</silently>>_text_output<</widget>> <<widget "breastsaside">><<silently>> <<outfitChecks>> <<set _text_output to _topUnder?.name || "<<breasts>>">> <</silently>>_text_output<</widget>> <<widget "bottomaside">><<silently>> <<if $worn.over_lower.exposed lte 1>> <<set _text_output to $worn.over_lower.name>> <<elseif $worn.lower.exposed lte 1>> <<set _text_output to $worn.lower.name>> <<elseif $worn.under_lower.exposed is 0>> <<set _text_output to $worn.under_lower.name>> <<else>> <<set _text_output to "bottom">> <</if>> <</silently>>_text_output<</widget>> <<widget "outfit">><<silently>> <<outfitChecks>> <<if _middleOutfit>> <<set _text_output to $worn.upper.name>> <<set $stripset to 1>> <<else>> <<set $_clothes to [$worn.upper.name, $worn.lower.name].filter(a => a !== "naked")>> <<set _text_output to $_clothes.formatList()>> <<set $stripset to 0>> <</if>> <</silently>>_text_output<</widget>> <<widget "nudity">><<silently>><<exposure>> <<genitals>> <<set _genitals to _text_output>> <<breasts>> <<outfitChecks>> <<set _breasts to _text_output>> <<if $worn.under_lower.type.includes("naked") and $worn.lower.type.includes("naked")>> <<if !$worn.upper.type.includes("naked")>> <<set _text_output to "<span class=\"lewd\">exposed " + _genitals + "</span>. Your covered chest makes your bare lower half feel more conspicuous">> <<elseif !$worn.under_upper.type.includes("naked")>> <<undertop>> <<set _undertop to _text_output>> <<set _text_output to `<span class=\"lewd\">exposed ${_genitals}${!$worn.under_upper.type.includes("covered") ? " and " + _undertop : ""}</span>. Your somewhat covered chest makes your bare lower half feel more conspicuous`>> <<else>> <<set _text_output to "<span class=\"lewd\">exposed</span> ">> <<if $player.breastsize gte 3>> <<if $player.sex is "m">> <<set _text_output to _text_output + "<span class=\"lewd\">" + _genitals + " and " + _breasts + "</span>">> <<else>> <<set _text_output to _text_output + "<span class=\"lewd\">" + _genitals + " and " + _breasts + "</span>">> <</if>> <<else>> <<if $player.sex is "m">> <<if $player.gender_appearance is "f">> <<set _text_output to _text_output + "<span class=\"lewd\">" + _genitals + " and " + _breasts + ", made salacious by your feminine demeanour</span>">> <<else>> <<set _text_output to _text_output + "<span class=\"lewd\">" + _genitals + "</span>">> <</if>> <<else>> <<set _text_output to _text_output + "<span class=\"lewd\">" + _genitals + " and " + _breasts + "</span>">> <</if>> <</if>> <</if>> <<elseif _shirtless>> <<if $worn.under_upper.type.includes("naked") and $player.gender_appearance is "f">> <<set _text_output to "<span class=\"lewd\">exposed " + _breasts + "</span>">> <<if $worn.lower.type.includes("naked") and _underOutfit is false>> <<set $_give to ($worn.under_lower.plural is 0 ? "gives" : "give")>> <<set _text_output to _text_output + ". Only your " + $worn.under_lower.name + " " + $_give + " you a shred of decency">> <</if>> <<else>> <<undertop>> <<set _undertop to _text_output>> <<if $worn.lower.type.includes("naked") and _underOutfit is false>> <<undies>> <<set _undies to _text_output>> <<set _text_output to "<span class=\"lewd\">exposed " + _undies + " and " + _undertop + "</span>">> <<else>> <<set _text_output to "<span class=\"lewd\">exposed " + _undertop + "</span>">> <</if>> <</if>> <<elseif $worn.lower.type.includes("naked")>> <<set _text_output to "<span class=\"lewd\">exposed " + $worn.under_lower.name + "</span>">> <<else>> <<set _text_output to "<span class=\"lewd\">lewd outfit</span>">> <<if $worn.lower.type.includes("naked") and _underOutfit is false>> <<set $_give to ($worn.under_lower.plural is 0 ? "gives" : "give")>> <<set _text_output to _text_output + ". Only your " + $worn.under_lower.name + " " + $_give + " you a shred of decency">> <</if>> <</if>> <<if pcAreArmsBound("both") and $position isnot "wall">> <<set _text_output to _text_output + ". With your arms bound, you can't even cover yourself, leaving you feeling utterly helpless">> <</if>> <</silently>>_text_output<</widget>> <<widget "boundBodyParts">><<silently>> <<set _boundparts to (pcAreArmsBound("any") ? "arm" : "")>> <<set _boundparts += (pcAreArmsBound("both") ? "s" : "")>> <<set _boundparts += ($feetuse is "bound" ? (_boundparts isnot "" ? " and legs" : "legs") : "")>> <<set _text_output to _boundparts>> <</silently>>_text_output<</widget>> <<widget "stripobject">> <<outfitChecks>> <<set $_torn = []>> <<set $_topIntegrity = _top ? _top.integrity -= $stripintegrity : 1>> <<set $_bottomIntegrity = _bottom ? _bottom.integrity -= $stripintegrity : 1>> <<set $_bottomUnderIntegrity = _bottomUnder && _skirtExposed ? _bottomUnder.integrity -= $stripintegrity : 1>> <<if $_topIntegrity lte 0>> <<run $_torn.push(_top.name)>> <<set $_plural = _top.plural || 0>> <</if>> <<if $_bottomIntegrity lte 0>> <<if !_outfit>><<run $_torn.push(_bottom.name)>><</if>> <<set $_plural = $_plural || _bottom.plural || 0>> <</if>> <<if $_bottomUnderIntegrity lte 0>> <<run $_torn.push(_bottomUnder?.name)>> <<set $_plural = $_plural || _bottomUnder.plural || 0>> <</if>> <<set $_plural = $_torn.length gt 1 ? 1 : $_plural || 0>> <<if $_torn.length gte 1>> <span class="lewd">Your <<= $_torn.length gte 3 ? "clothing" : $_torn.join(" and ")>> <<= $_plural gte 1 ? "snag" : "snags">> on <<= (["a","e","i","o","u"].some(letter => $stripobject.startsWith(letter))) ? "an" : "a">> $stripobject and <<= $_plural gte 1 ? "are" : "is">> torn from your body.</span> <<integritycheck no_text>> <<exposure>> <<if $exposed gte 1>> You can't help but be conscious of your <<nudity>>. <</if>> <</if>> <</widget>> <<widget "seductiontext">><<silently>> <<set $_skillText to currentSkillValue("seductionskill")>> <<if $_skillText lt 200>><<set _text_output to '<span class="pink">awkwardly</span>'>> <<elseif $_skillText lt 400>><<set _text_output to '<span class="purple">cautiously</span>'>> <<elseif $_skillText lt 600>><<set _text_output to '<span class="blue">rhythmically</span>'>> <<elseif $_skillText lt 800>><<set _text_output to '<span class="lblue">smoothly</span>'>> <<elseif $_skillText lt 1000>><<set _text_output to '<span class="teal">skilfully</span>'>> <<elseif $_skillText lt 1200>><<set _text_output to '<span class="green">expertly</span>'>> <<else>><<set _text_output to '<span class="gold">effortlessly</span>'>> <</if>> <</silently>>_text_output<</widget>> <<widget "oraltext">><<silently>> <<set $_skillText to currentSkillValue("oralskill")>> <<if $_skillText lt 200>><<set _text_output to '<span class="pink">awkwardly</span>'>> <<elseif $_skillText lt 400>><<set _text_output to '<span class="purple">cautiously</span>'>> <<elseif $_skillText lt 600>><<set _text_output to '<span class="blue">rhythmically</span>'>> <<elseif $_skillText lt 800>><<set _text_output to '<span class="lblue">smoothly</span>'>> <<elseif $_skillText lt 1000>><<set _text_output to '<span class="teal">skilfully</span>'>> <<elseif $_skillText lt 1200>><<set _text_output to '<span class="green">expertly</span>'>> <<else>><<set _text_output to '<span class="gold">effortlessly</span>'>> <</if>> <</silently>>_text_output<</widget>> <<widget "vaginaltext">><<silently>> <<set $_skillText to currentSkillValue("vaginalskill")>> <<if $_skillText lt 200>><<set _text_output to '<span class="pink">awkwardly</span>'>> <<elseif $_skillText lt 400>><<set _text_output to '<span class="purple">cautiously</span>'>> <<elseif $_skillText lt 600>><<set _text_output to '<span class="blue">rhythmically</span>'>> <<elseif $_skillText lt 800>><<set _text_output to '<span class="lblue">smoothly</span>'>> <<elseif $_skillText lt 1000>><<set _text_output to '<span class="teal">skilfully</span>'>> <<elseif $_skillText lt 1200>><<set _text_output to '<span class="green">expertly</span>'>> <<else>><<set _text_output to '<span class="gold">effortlessly</span>'>> <</if>> <</silently>>_text_output<</widget>> <<widget "peniletext">><<silently>> <<set $_skillText to currentSkillValue("penileskill")>> <<if $_skillText lt 200>><<set _text_output to '<span class="pink">awkwardly</span>'>> <<elseif $_skillText lt 400>><<set _text_output to '<span class="purple">cautiously</span>'>> <<elseif $_skillText lt 600>><<set _text_output to '<span class="blue">rhythmically</span>'>> <<elseif $_skillText lt 800>><<set _text_output to '<span class="lblue">smoothly</span>'>> <<elseif $_skillText lt 1000>><<set _text_output to '<span class="teal">skilfully</span>'>> <<elseif $_skillText lt 1200>><<set _text_output to '<span class="green">expertly</span>'>> <<else>><<set _text_output to '<span class="gold">effortlessly</span>'>> <</if>> <</silently>>_text_output<</widget>> <<widget "analtext">><<silently>> <<set $_skillText to currentSkillValue("analskill")>> <<if $_skillText lt 200>><<set _text_output to '<span class="pink">awkwardly</span>'>> <<elseif $_skillText lt 400>><<set _text_output to '<span class="purple">cautiously</span>'>> <<elseif $_skillText lt 600>><<set _text_output to '<span class="blue">rhythmically</span>'>> <<elseif $_skillText lt 800>><<set _text_output to '<span class="lblue">smoothly</span>'>> <<elseif $_skillText lt 1000>><<set _text_output to '<span class="teal">skilfully</span>'>> <<elseif $_skillText lt 1200>><<set _text_output to '<span class="green">expertly</span>'>> <<else>><<set _text_output to '<span class="gold">effortlessly</span>'>> <</if>> <</silently>>_text_output<</widget>> <<widget "handtext">><<silently>> <<set $_skillText to currentSkillValue("handskill")>> <<if $_skillText lt 200>><<set _text_output to '<span class="pink">awkwardly</span>'>> <<elseif $_skillText lt 400>><<set _text_output to '<span class="purple">cautiously</span>'>> <<elseif $_skillText lt 600>><<set _text_output to '<span class="blue">rhythmically</span>'>> <<elseif $_skillText lt 800>><<set _text_output to '<span class="lblue">smoothly</span>'>> <<elseif $_skillText lt 1000>><<set _text_output to '<span class="teal">skilfully</span>'>> <<elseif $_skillText lt 1200>><<set _text_output to '<span class="green">expertly</span>'>> <<else>><<set _text_output to '<span class="gold">effortlessly</span>'>> <</if>> <</silently>>_text_output<</widget>> <<widget "feettext">><<silently>> <<set $_skillText to currentSkillValue("feetskill")>> <<if $_skillText lt 200>><<set _text_output to '<span class="pink">awkwardly</span>'>> <<elseif $_skillText lt 400>><<set _text_output to '<span class="purple">cautiously</span>'>> <<elseif $_skillText lt 600>><<set _text_output to '<span class="blue">rhythmically</span>'>> <<elseif $_skillText lt 800>><<set _text_output to '<span class="lblue">smoothly</span>'>> <<elseif $_skillText lt 1000>><<set _text_output to '<span class="teal">skilfully</span>'>> <<elseif $_skillText lt 1200>><<set _text_output to '<span class="green">expertly</span>'>> <<else>><<set _text_output to '<span class="gold">effortlessly</span>'>> <</if>> <</silently>>_text_output<</widget>> <<widget "bottomtext">><<silently>> <<set $_skillText to currentSkillValue("bottomskill")>> <<if $_skillText lt 200>><<set _text_output to '<span class="pink">awkwardly</span>'>> <<elseif $_skillText lt 400>><<set _text_output to '<span class="purple">cautiously</span>'>> <<elseif $_skillText lt 600>><<set _text_output to '<span class="blue">rhythmically</span>'>> <<elseif $_skillText lt 800>><<set _text_output to '<span class="lblue">smoothly</span>'>> <<elseif $_skillText lt 1000>><<set _text_output to '<span class="teal">skilfully</span>'>> <<elseif $_skillText lt 1200>><<set _text_output to '<span class="green">expertly</span>'>> <<else>><<set _text_output to '<span class="gold">effortlessly</span>'>> <</if>> <</silently>>_text_output<</widget>> <<widget "thightext">><<silently>> <<set $_skillText to currentSkillValue("thighskill")>> <<if $_skillText lt 200>><<set _text_output to '<span class="pink">awkwardly</span>'>> <<elseif $_skillText lt 400>><<set _text_output to '<span class="purple">cautiously</span>'>> <<elseif $_skillText lt 600>><<set _text_output to '<span class="blue">rhythmically</span>'>> <<elseif $_skillText lt 800>><<set _text_output to '<span class="lblue">smoothly</span>'>> <<elseif $_skillText lt 1000>><<set _text_output to '<span class="teal">skilfully</span>'>> <<elseif $_skillText lt 1200>><<set _text_output to '<span class="green">expertly</span>'>> <<else>><<set _text_output to '<span class="gold">effortlessly</span>'>> <</if>> <</silently>>_text_output<</widget>> <<widget "chesttext">><<silently>> <<set $_skillText to currentSkillValue("chestskill")>> <<if $_skillText lt 200>><<set _text_output to '<span class="pink">awkwardly</span>'>> <<elseif $_skillText lt 400>><<set _text_output to '<span class="purple">cautiously</span>'>> <<elseif $_skillText lt 600>><<set _text_output to '<span class="blue">rhythmically</span>'>> <<elseif $_skillText lt 800>><<set _text_output to '<span class="lblue">smoothly</span>'>> <<elseif $_skillText lt 1000>><<set _text_output to '<span class="teal">skilfully</span>'>> <<elseif $_skillText lt 1200>><<set _text_output to '<span class="green">expertly</span>'>> <<else>><<set _text_output to '<span class="gold">effortlessly</span>'>> <</if>> <</silently>>_text_output<</widget>> <<widget "swimmingtext">> <<set $_swimmingskillText to currentSkillValue('swimmingskill')>> <<if $_swimmingskillText lt 200>><span class="pink">haphazardly</span> <<elseif $_swimmingskillText lt 400>><span class="purple">awkwardly</span> <<elseif $_swimmingskillText lt 600>><span class="blue">adequately</span> <<elseif $_swimmingskillText lt 800>><span class="lblue">smoothly</span> <<elseif $_swimmingskillText lt 1000>><span class="teal">skilfully</span> <<elseif $_swimmingskillText lt 1200>><span class="green">expertly</span> <<else>><span class="gold">effortlessly</span> <</if>> <</widget>> <<widget "tendingtext">> <<set $_tendingText to currentSkillValue('tending')>> <<if $_tendingText lt 200>><span class="pink">awkwardly</span> <<elseif $_tendingText lt 400>><span class="purple">cautiously</span> <<elseif $_tendingText lt 600>><span class="blue">rhythmically</span> <<elseif $_tendingText lt 800>><span class="lblue">smoothly</span> <<elseif $_tendingText lt 1000>><span class="teal">skilfully</span> <<elseif $_tendingText lt 1200>><span class="green">expertly</span> <<else>><span class="gold">effortlessly</span><</if>> <</widget>> <<widget "dancetext">> <<set $_danceskillText to currentSkillValue('danceskill')>> <<if $_danceskillText lt 200>><span class="pink">awkwardly</span> <<elseif $_danceskillText lt 400>><span class="purple">cautiously</span> <<elseif $_danceskillText lt 600>><span class="blue">rhythmically</span> <<elseif $_danceskillText lt 800>><span class="lblue">smoothly</span> <<elseif $_danceskillText lt 1000>><span class="teal">skilfully</span> <<elseif $_danceskillText lt 1200>><span class="green">expertly</span> <<else>><span class="gold">effortlessly</span><</if>> <</widget>> <<widget "housekeepingtext">> <<set $_housekeepingText to currentSkillValue('housekeeping')>> <<if $_housekeepingText lt 200>><span class="pink">awkwardly</span> <<elseif $_housekeepingText lt 400>><span class="purple">cautiously</span> <<elseif $_housekeepingText lt 600>><span class="blue">rhythmically</span> <<elseif $_housekeepingText lt 800>><span class="lblue">smoothly</span> <<elseif $_housekeepingText lt 1000>><span class="teal">skilfully</span> <<elseif $_housekeepingText lt 1200>><span class="green">expertly</span> <<else>><span class="gold">effortlessly</span><</if>> <</widget>> <<widget "nervously">><<silently>> <<if $exhibitionism lte 15>> <<set _text_output to "nervously">> <<elseif $exhibitionism lte 35>> <<set _text_output to "timidly">> <<elseif $exhibitionism lte 55>> <<set _text_output to "shyly">> <<elseif $exhibitionism lte 75>> <<set _text_output to "confidently">> <<elseif $exhibitionism lte 95>> <<set _text_output to "eagerly">> <<else>> <<set _text_output to "breathlessly">> <</if>> <</silently>>_text_output<</widget>> <<widget "schoolday">> <<if $location isnot "prison" and $location isnot "asylum" and !$statFreeze>> <<if !Time.schoolDay && Time.isSchoolDay(Time.tomorrow)>> You have school tomorrow. <<elseif Time.schoolDay>> It's a school day. <<else>> There's no school tomorrow. <</if>> <br> <</if>> <</widget>> <<widget "sir">><<silently>> <<if $pronoun is "m">> <<set _text_output to "sir">> <<else>> <<set _text_output to "miss">> <</if>> <</silently>>_text_output<</widget>> <<widget "Sir">><<silently>> <<if $pronoun is "m">> <<set _text_output to "Sir">> <<else>> <<set _text_output to "Miss">> <</if>> <</silently>>_text_output<</widget>> <<widget "lewdness">> <<silently>> <<exposure>> <<if $exposedRaw gt 0>> <<genitals>><<set _genitals_text to _text_output>> <<breasts>><<set _breasts_text to _text_output>> <<set _text_output to "">> <<set _exposed to false>> <<set _wet to false>> <<if ($worn.upper.exposed gte 1 or $upperwetstage gte 3) and (!$worn.under_upper.type.includes("covered") or ($worn.under_upper.exposed gte 1 or $underupperwetstage gte 3)) and (!$worn.lower.type.includes("covered") or ($worn.lower.exposed gte 1 or $lowerwetstage gte 3))>> <<if $upperwetstage gte 3 or $underupperwetstage gte 3>> <<set _text_output += "visible ">> <<set _wet to true>> <<else>> <<set _text_output += "exposed ">> <<set _exposed to true>> <</if>> <<if $player.gender_appearance is "m" and $player.sex is "m" and $worn.lower.exposed lte 0 and $lowerwetstage lt 3>> <<set _text_output += "chest">> <<elseif $worn.under_upper.exposed gte 1 or $underupperwetstage gte 3>> <<set _text_output += _breasts_text>> <<else>> <<set _text_output += $worn.under_upper.name>> <</if>> <</if>> <<if ($worn.lower.exposed gte 1 or $lowerwetstage gte 3) and (!$worn.under_lower.type.includes("covered") or ($worn.under_lower.exposed gte 1 or $underlowerwetstage gte 3))>> <<if _text_output isnot "">> <<set _text_output += " and ">> <</if>> <<if _wet is false and ($lowerwetstage gte 3 or $underlowerwetstage gte 3)>> <<if _text_output isnot "">> <<set _text_output += "your ">> <</if>> <<set _text_output += "visible ">> <<elseif !_exposed and $lowerwetstage lt 3 and $underlowerwetstage lt 3>> <<if _text_output isnot "">> <<set _text_output += "your ">> <</if>> <<set _text_output += "exposed ">> <</if>> <<if $worn.under_lower.exposed gte 1 or $underlowerwetstage gte 3>> <<set _text_output += _genitals_text>> <<else>> <<set _text_output += $worn.under_lower.name>> <</if>> <</if>> <<else>> <<set _text_output to "lewdness">> <</if>> <</silently>> <span class="lewd">_text_output</span> <</widget>> <<widget "flaunting">> <<exposure>>/*Makes sure your clothing state is up to date*/ <<if $uncomfortable.nude is false>> <<if $trauma gte (($traumamax / 5) * 4)>> <<if $stress gte (($stressmax / 5) * 4)>> <<if $arousal gte (($arousalmax / 5) * 4)>> Dark tendrils threaten to peak your exposed body as <<elseif $arousal gte (($arousalmax / 5) * 1)>> Dark tendrils caress your exposed body as <<else>> Feeling watched by countless eyes, <</if>> <<elseif $stress gte (($stressmax / 5) * 1)>> <<if $arousal gte (($arousalmax / 5) * 4)>> Afraid you'll climax on the spot, <<elseif $arousal gte (($arousalmax / 5) * 1)>> Feeling watched by countless eyes, <<else>> Feeling threatened yet excited, <</if>> <<else>> <<if $arousal gte (($arousalmax / 5) * 4)>> A sick part of you hopes your audience help themselves to your body as <<elseif $arousal gte (($arousalmax / 5) * 1)>> Feeling vulnerable and surrounded, <<else>> Hoping people like what they see, <</if>> <</if>> <<elseif $trauma gte (($traumamax / 5) * 1)>> <<if $stress gte (($stressmax / 5) * 4)>> <<if $arousal gte (($arousalmax / 5) * 4)>> Feeling like a piece of meat, <<elseif $arousal gte (($arousalmax / 5) * 1)>> Exposed and vulnerable, <<else>> You hope exposing yourself will save you from hurt as <</if>> <<elseif $stress gte (($stressmax / 5) * 1)>> <<if $arousal gte (($arousalmax / 5) * 4)>> Your body trembles as <<elseif $arousal gte (($arousalmax / 5) * 1)>> Excited yet afraid, <<else>> Yearning for attention, <</if>> <<else>> <<if $arousal gte (($arousalmax / 5) * 4)>> Shivering with arousal, <<elseif $arousal gte (($arousalmax / 5) * 1)>> Heart throbbing, <<else>> You hope people like what they see as <</if>> <</if>> <<else>> <<if $stress gte (($stressmax / 5) * 4)>> <<if $arousal gte (($arousalmax / 5) * 4)>> Tense and aroused, <<elseif $arousal gte (($arousalmax / 5) * 1)>> Tense but exhilarated, <<else>> Enjoying the moment, <</if>> <<elseif $stress gte (($stressmax / 5) * 1)>> <<if $arousal gte (($arousalmax / 5) * 4)>> Feeling naughty, <<elseif $arousal gte (($arousalmax / 5) * 1)>> You enjoy the eyes on you as <<else>> You enjoy the adrenaline rush as <</if>> <<else>> <<if $arousal gte (($arousalmax / 5) * 4)>> Thrilled to be so exposed, <<elseif $arousal gte (($arousalmax / 5) * 1)>> Shivering in delight, <<else>> Proud and free, <</if>> <</if>> <</if>> <<else>> <<if $trauma gte (($traumamax / 5) * 4)>> <<if $stress gte (($stressmax / 5) * 4)>> <<if $arousal gte (($arousalmax / 5) * 4)>> Dark tendrils threaten to peak your exposed body as <<elseif $arousal gte (($arousalmax / 5) * 1)>> Dark tendrils caress your exposed body as <<else>> Feeling watched by countless eyes, <</if>> <<elseif $stress gte (($stressmax / 5) * 1)>> <<if $arousal gte (($arousalmax / 5) * 4)>> Afraid you'll climax on the spot, <<elseif $arousal gte (($arousalmax / 5) * 1)>> Feeling watched by countless eyes, <<else>> Feeling threatened and embarrassed, <</if>> <<else>> <<if $arousal gte (($arousalmax / 5) * 4)>> A sick part of you hopes your audience help themselves to your body as <<elseif $arousal gte (($arousalmax / 5) * 1)>> Feeling vulnerable and surrounded, <<else>> Hoping people like what they see, <</if>> <</if>> <<elseif $trauma gte (($traumamax / 5) * 1)>> <<if $stress gte (($stressmax / 5) * 4)>> <<if $arousal gte (($arousalmax / 5) * 4)>> Feeling like a piece of meat, <<elseif $arousal gte (($arousalmax / 5) * 1)>> Exposed and vulnerable, <<else>> You hope exposing yourself will save you from hurt as <</if>> <<elseif $stress gte (($stressmax / 5) * 1)>> <<if $arousal gte (($arousalmax / 5) * 4)>> Your body trembles as <<elseif $arousal gte (($arousalmax / 5) * 1)>> Embarrassed and afraid, <<else>> Yearning for attention, <</if>> <<else>> <<if $arousal gte (($arousalmax / 5) * 4)>> Shivering with arousal, <<elseif $arousal gte (($arousalmax / 5) * 1)>> Heart throbbing, <<else>> You hope people like what they see as <</if>> <</if>> <<else>> <<if $stress gte (($stressmax / 5) * 4)>> <<if $arousal gte (($arousalmax / 5) * 4)>> Tense and aroused, <<elseif $arousal gte (($arousalmax / 5) * 1)>> Tense but exhilarated, <<else>> Enjoying the moment, <</if>> <<elseif $stress gte (($stressmax / 5) * 1)>> <<if $arousal gte (($arousalmax / 5) * 4)>> Feeling naughty, <<elseif $arousal gte (($arousalmax / 5) * 1)>> You enjoy the eyes on you as <<else>> You enjoy the adrenaline rush as <</if>> <<else>> <<if $arousal gte (($arousalmax / 5) * 4)>> Thrilled to be so exposed, <<elseif $arousal gte (($arousalmax / 5) * 1)>> Shivering in delight, <<else>> Blushing, <</if>> <</if>> <</if>> <</if>> <</widget>> <<widget "embarrassment">> <<if $arousal gte (($arousalmax / 10) * 9)>> Embarrassment dominates your mind and threatens to send you over the edge. <<elseif $arousal gte (($arousalmax / 10) * 8)>> Lewd shivers ripple through your body despite your embarrassment. <<elseif $arousal gte (($arousalmax / 10) * 7)>> The embarrassment leaves you lightheaded. <<elseif $arousal gte (($arousalmax / 10) * 6)>> You're so embarrassed. Your breath catches in your throat. <<elseif $arousal gte (($arousalmax / 10) * 5)>> You're so embarrassed. Your heart beats faster. <<elseif $arousal gte (($arousalmax / 10) * 4)>> You feel a warmth build despite the embarrassment. <<elseif $arousal gte (($arousalmax / 10) * 3)>> You're so embarrassed. Your heart skips a beat. <<elseif $arousal gte (($arousalmax / 10) * 2)>> You shiver with embarrassment. <<elseif $arousal gte (($arousalmax / 10) * 1)>> You're so embarrassed. Blood rushes to your face. <<else>> Your face reddens with embarrassment. <</if>> <</widget>> <<widget "covered">> <<exposure>> <<if $exposed gt 0>> <<if pcAreArmsBound("both") and $exposed gte 1>> With your arms bound, there's little you can do to shield your <<lewdness>> from prying eyes. <<if !$uncomfortable.nude and $exposed gte 2 and hasSexStat("exhibitionism", 6)>> You quiver with excitement. <<elseif !$uncomfortable.nude and $exposed is 1 and hasSexStat("exhibitionism", 4)>> You quiver with excitement. <</if>> <<elseif ($exposed gte 2 and (!hasSexStat("exhibitionism", 6) or $uncomfortable.nude)) or ($exposed is 1 and (!hasSexStat("exhibitionism", 4) or $uncomfortable.underwear))>> You cover your <<lewdness>> with your hands. <<else>> You quiver with excitement from your <<lewdness>>. <</if>> <<embarrassment>> <</if>> <</widget>> <<widget "passagestrip">> <<if $worn.upper.exposed gte 2 and $worn.lower.exposed gte 2 and $worn.under_upper.exposed gte 1 and $worn.under_lower.exposed gte 1>> <<else>> <<outfitChecks>> <<set _clothing_strip_sequence to 0>> <<if !_overNaked>> <<flaunting>> you take off your <<= $worn.over_lower.name isnot "naked" and !_overOutfit ? "_top.name and _bottom.name" : "_top.name">>, exposing your <<= _topUnder?.name || "<<breasts>>">>. <<overupperstrip>><<overlowerstrip>> <<set _clothing_strip_sequence += 1>><<upperstrip>><<exposure>> <</if>> <<if $worn.upper.exposed lte 1>> <<= _clothing_strip_sequence is 0 ? "<<flaunting>>" : "Next">> <<if _middleOutfit is true>> you shuffle out of your $worn.upper.name, exposing your <<undertop>> and <<undies>>. <<else>> you tug off your $worn.upper.name, exposing your <<undertop>>. <</if>> <<set _clothing_strip_sequence += 1>><<upperstrip>><<exposure>> <</if>> <<if $worn.lower.exposed lte 1 and _args[0] isnot "topless">> <<if _clothing_strip_sequence is 0>> <<flaunting>> you tug off your $worn.lower.name, exposing your <<undies>>. <<else>> Your $worn.lower.name <<= $worn.lower.plural is 1 ? "come" : "comes">> next, exposing your <<undies>>. <</if>> <<set _clothing_strip_sequence += 1>><<lowerstrip>><<exposure>> <</if>> <<if $worn.under_upper.exposed lte 0 and _args[0] isnot "undies">> <<if _underOutfit is true>> <<if _clothing_strip_sequence is 0>> <<flaunting>> you shuffle out of your $worn.under_upper.name, revealing your <<breasts>> and <<genitals>>. <<elseif _clothing_strip_sequence is 1>> Your $worn.under_upper.name <<= $worn.under_upper.plural is 1 ? "come" : "comes">> next, revealing your <<breasts>> and <<genitals>>. <<else>> Finally, you peel off your $worn.under_upper.name, revealing your <<breasts>> and <<genitals>>. <</if>> <<else>> <<if _clothing_strip_sequence is 0>> <<flaunting>> you tug off your $worn.under_upper.name, revealing your <<breasts>>. <<elseif _clothing_strip_sequence is 1>> Your $worn.under_upper.name <<= $worn.under_upper.plural is 1 ? "come" : "comes">> next, revealing your <<breasts>>. <<else>> <<if $worn.under_lower.exposed lte 0>> Your $worn.under_upper.name <<= $worn.under_upper.plural is 1 ? "follow" : "follows">>, revealing your <<breasts>>. <<else>> Finally, you peel off your $worn.under_upper.name, revealing your <<breasts>>. <</if>> <</if>> <</if>> <<set _clothing_strip_sequence += 1>><<underupperstrip>><<exposure>> <</if>> <<if $worn.under_lower.exposed lte 0 and _args[0] isnot "undies" and _args[0] isnot "topless">> <<if _clothing_strip_sequence is 0>> <<flaunting>> you pull down your $worn.under_lower.name, displaying your <<genitals>>. <<elseif _clothing_strip_sequence is 1>> Your $worn.under_lower.name <<= $worn.under_lower.plural is 1 ? "come" : "comes">> next, displaying your <<genitals>>. <<else>> Finally, you peel off your $worn.under_lower.name, displaying your <<genitals>>. <</if>> <<set _clothing_strip_sequence += 1>><<underlowerstrip>><<exposure>> <</if>> <</if>> <<if !$worn.legs.type.includes("naked") and _args[0] isnot "topless">> You're still wearing your $worn.legs.name, but this somehow makes you feel even more exposed. <<else>> <</if>> <</widget>> <<widget "strippedtext">> <!-- Unused widget --> <<if $control gte (($controlmax / 5) * 4)>> <<if $trauma gte (($traumamax / 5) * 4)>> <<if $stress gte (($stressmax / 5) * 4)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<else>> <</if>> <<elseif $trauma gte (($traumamax / 5) * 3)>> <<if $stress gte (($stressmax / 5) * 4)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<else>> <</if>> <<elseif $trauma gte (($traumamax / 5) * 2)>> <<if $stress gte (($stressmax / 5) * 4)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<else>> <</if>> <<elseif $trauma gte (($traumamax / 5) * 1)>> <<if $stress gte (($stressmax / 5) * 4)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<else>> <</if>> <<else>> <<if $stress gte (($stressmax / 5) * 4)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<else>> <</if>> <</if>> <<elseif $control gte (($controlmax / 5) * 3)>> <<if $trauma gte (($traumamax / 5) * 4)>> <<if $stress gte (($stressmax / 5) * 4)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<else>> <</if>> <<elseif $trauma gte (($traumamax / 5) * 3)>> <<if $stress gte (($stressmax / 5) * 4)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<else>> <</if>> <<elseif $trauma gte (($traumamax / 5) * 2)>> <<if $stress gte (($stressmax / 5) * 4)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<else>> <</if>> <<elseif $trauma gte (($traumamax / 5) * 1)>> <<if $stress gte (($stressmax / 5) * 4)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<else>> <</if>> <<else>> <<if $stress gte (($stressmax / 5) * 4)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<else>> <</if>> <</if>> <<elseif $control gte (($controlmax / 5) * 2)>> <<if $trauma gte (($traumamax / 5) * 4)>> <<if $stress gte (($stressmax / 5) * 4)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<else>> <</if>> <<elseif $trauma gte (($traumamax / 5) * 3)>> <<if $stress gte (($stressmax / 5) * 4)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<else>> <</if>> <<elseif $trauma gte (($traumamax / 5) * 2)>> <<if $stress gte (($stressmax / 5) * 4)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<else>> <</if>> <<elseif $trauma gte (($traumamax / 5) * 1)>> <<if $stress gte (($stressmax / 5) * 4)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<else>> <</if>> <<else>> <<if $stress gte (($stressmax / 5) * 4)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<else>> <</if>> <</if>> <<elseif $control gte (($controlmax / 5) * 1)>> <<if $trauma gte (($traumamax / 5) * 4)>> <<if $stress gte (($stressmax / 5) * 4)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<else>> <</if>> <<elseif $trauma gte (($traumamax / 5) * 3)>> <<if $stress gte (($stressmax / 5) * 4)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<else>> <</if>> <<elseif $trauma gte (($traumamax / 5) * 2)>> <<if $stress gte (($stressmax / 5) * 4)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<else>> <</if>> <<elseif $trauma gte (($traumamax / 5) * 1)>> <<if $stress gte (($stressmax / 5) * 4)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<else>> <</if>> <<else>> <<if $stress gte (($stressmax / 5) * 4)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<else>> <</if>> <</if>> <<else>> <<if $trauma gte (($traumamax / 5) * 4)>> <<if $stress gte (($stressmax / 5) * 4)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<else>> <</if>> <<elseif $trauma gte (($traumamax / 5) * 3)>> <<if $stress gte (($stressmax / 5) * 4)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<else>> <</if>> <<elseif $trauma gte (($traumamax / 5) * 2)>> <<if $stress gte (($stressmax / 5) * 4)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<else>> <</if>> <<elseif $trauma gte (($traumamax / 5) * 1)>> <<if $stress gte (($stressmax / 5) * 4)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<else>> <</if>> <<else>> <<if $stress gte (($stressmax / 5) * 4)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<elseif $stress gte (($stressmax / 5) * 3)>> <<else>> <</if>> <</if>> <</if>> <</widget>> <<widget "prostate">><<silently>> <<if $player.vaginaExist>> <<set _text_output to "womb">> <<else>> <<set _text_output to "prostate">> <</if>> <</silently>>_text_output<</widget>> <<widget "bitch">><<silently>> <<if $player.gender_appearance is "m">> <<set _text_output to "bitch">> <<else>> <<set _text_output to "bitch">> <</if>> <</silently>>_text_output<</widget>> <<widget "bitch_pirate">><<silently>> <<if $player.gender_appearance is "m">> <<set _text_output to "dog">> <<else>> <<set _text_output to "bitch">> <</if>> <</silently>>_text_output<</widget>> <<widget "bastard">><<silently>> <<if $player.gender_appearance is "m">> <<set _text_output to "bastard">> <<else>> <<set _text_output to "whore">> <</if>> <</silently>>_text_output<</widget>> <<widget "cunt">><<silently>> <<if $player.gender_appearance is "m">> <<set _text_output to "dick">> <<else>> <<set _text_output to "cunt">> <</if>> <</silently>>_text_output<</widget>> <<widget "Ladies_gentlemen">><<silently>> <<if maleChance() gte 100>> <<set _text_output to "Gentlemen">> <<elseif maleChance() lte 0>> <<set _text_output to "Ladies">> <<else>> <<set _text_output to "Ladies and gentlemen">> <</if>> <</silently>>_text_output<</widget>> <<widget "teaful">> You pour yourself a cup of tea as <</widget>> <<widget "tearful">> <<if $trauma gte $traumamax>> Eyes glazed and empty, <<elseif $trauma gte ($traumamax / 5) * 4>> <<if $stress gte ($stressmax / 5) * 4>> <<if $arousal gte ($arousalmax /5) * 4>> <<if $pain gte 100>> Tendrils of darkness whip and writhe against your skin as <<elseif $pain gte 40>> Tendrils of darkness writhe against your skin as <<else>> A strange mist closes around you and probes your most sensitive spots as <</if>> <<elseif $arousal gte $arousalmax / 5>> <<if $pain gte 100>> A mass of darkness follows you, prodding and spanking your behind as <<elseif $pain gte 40>> You hear phantom voices mocking you as <<else>> The shadows seem to close in on you as <</if>> <<else>> <<if $pain gte 100>> Tendrils of darkness whip and cut at your skin as <<elseif $pain gte 40>> Tendrils of darkness poke you as <<else>> You think you see eyes watching from the shadows as <</if>> <</if>> <<elseif $stress gte $stressmax / 5>> <<if $arousal gte ($arousalmax / 5) * 4>> <<if $pain gte 100>> Your tortured body and mind yearn for more punishment as <<elseif $pain gte 40>> Fantasies of violent sex intrude as <<else>> Your tortured mind yearns for more punishment as <</if>> <<elseif $arousal gte $arousalmax / 5>> <<if $pain gte 100>> Surprised that nothing is trying to hurt you, <<elseif $pain gte 40>> Surprised that nothing is trying to rape you, <<else>> Surprised that nothing is trying to fuck you, <</if>> <<else>> <<if $pain gte 100>> Feeling deserving of the pain you're in, <<elseif $pain gte 40>> You imagine figures stalking you as <<else>> You feel like you're being watched as <</if>> <</if>> <<else>> <<if $arousal gte ($arousalmax / 5) * 4>> <<if $pain gte 100>> Thoughts about being sexually tortured intrude as <<elseif $pain gte 40>> Thoughts about being restrained and whipped intrude as <<else>> Thoughts about being a sex slave intrude as <</if>> <<elseif $arousal gte $arousalmax / 5>> <<if $pain gte 100>> Thoughts about being violently raped intrude as <<elseif $pain gte 40>> Thoughts about being brutally raped intrude as <<else>> Thoughts about being raped intrude as <</if>> <<else>> <<if $pain gte 100>> Feeling entirely deserving of the pain you're in, <<elseif $pain gte 40>> Though mentally and physically tormented, <<else>> You feel utterly worthless as <</if>> <</if>> <</if>> <<elseif $trauma gte ($traumamax / 5) * 2>> <<if $stress gte ($stressmax / 5) * 4>> <<if $arousal gte ($arousalmax / 5) * 4>> <<if $pain gte 100>> A part of you savours the pain you're in as <<elseif $pain gte 40>> Tearful and worried that you're losing your mind, <<else>> Though worried that you're losing your mind, <</if>> <<elseif $arousal gte $arousalmax / 5>> <<if $pain gte 100>> Though afraid something will attack you, <<elseif $pain gte 40>> Though afraid something will jump you, <<else>> Feeling on the verge of panic, <</if>> <<else>> <<if $pain gte 100>> Though hurt and vulnerable, <<elseif $pain gte 40>> You feel self-conscious about the tears on your face as <<else>> You jump at every unexpected movement as <</if>> <</if>> <<elseif $stress gte $stressmax / 5>> <<if $arousal gte ($arousalmax / 5) * 4>> <<if $pain gte 100>> Hurt and ashamed, <<elseif $pain gte 40>> Despite your pain, a primal yearning swells within as <<else>> Shameful thoughts intrude as <</if>> <<elseif $arousal gte $arousalmax / 5>> <<if $pain gte 100>> You hope no one tries to assault you as <<elseif $pain gte 40>> Though afraid you're being followed, <<else>> You fear that someone is stalking you as <</if>> <<else>> <<if $pain gte 100>> You feel fragile and vulnerable as <<elseif $pain gte 40>> You sob as <<else>> You try to keep it together as <</if>> <</if>> <<else>> <<if $arousal gte ($arousalmax / 5) * 4>> <<if $pain gte 100>> Feeling ashamed and in pain, <<elseif $pain gte 40>> Tears cover your ashamed face as <<else>> Ashamed of the feelings rising within you, <</if>> <<elseif $arousal gte $arousalmax / 5>> <<if $pain gte 100>> Your body hurts yet tingles shamefully as <<elseif $pain gte 40>> You sob at the injustice of it all as <<else>> Your <<genitals 1>> involuntarily twitches as <</if>> <<else>> <<if $pain gte 100>> Feeling lost and in pain, <<elseif $pain gte 40>> You try and fail to hold back your tears as <<else>> Shaken, <</if>> <</if>> <</if>> <<else>> <<if $stress gte ($stressmax / 5) * 4>> <<if $arousal gte ($arousalmax / 5) * 4>> <<if $pain gte 100>> You're an emotional wreck as <<elseif $pain gte 40>> Feeling emotionally and physically tender, <<else>> Though afraid your body will betray you, <</if>> <<elseif $arousal gte $arousalmax / 5>> <<if $pain gte 100>> Hurt and afraid, <<elseif $pain gte 40>> You struggle to cope with the myriad feelings assailing you as <<else>> You feel faint as <</if>> <<else>> <<if $pain gte 100>> You know you must look like a complete mess as <<elseif $pain gte 40>> You wonder what you did to deserve this as <<else>> Though at your wits' end, <</if>> <</if>> <<elseif $stress gte $stressmax / 5>> <<if $arousal gte ($arousalmax / 5) * 4>> <<if $pain gte 100>> You feel a primal yearning beneath your pain as <<elseif $pain gte 40>> Though humiliated by your body's signs of arousal, <<else>> Though embarrassed by your body's signs of arousal, <</if>> <<elseif $arousal gte $arousalmax / 5>> <<if $pain gte 100>> Shaken and hurt, <<elseif $pain gte 40>> Your body tingles painfully as <<else>> You feel self-conscious about the lewd warmth within you as <</if>> <<else>> <<if $pain gte 100>> <<if $water is 1>> Tears streaking away into the water, <<else>> Face covered in tears, <</if>> <<elseif $pain gte 40>> Feeling battered, but still determined to make the best of things, <<else>> Still determined to make the best of things, <</if>> <</if>> <<else>> <<if $arousal gte ($arousalmax / 5) * 4>> <<if $pain gte 100>> Your tortured body trembles with arousal as <<elseif $pain gte 40>> Tears run down your flushed cheeks as <<else>> Your body trembles with arousal as <</if>> <<elseif $arousal gte $arousalmax / 5>> <<if $pain gte 100>> Your body hurts and tingles as <<elseif $pain gte 40>> Your body feels sensitive as <<else>> You feel horny as <</if>> <<else>> <<if $pain gte 100>> Your whole body hurts as <<elseif $pain gte 40>> You wipe away your tears as <<elseif $worn.neck.name is "ivory necklace" and !pcAreArmsBound("both") and !_rubbedNecklace>> <<set _rubbedNecklace to true>> You hold your necklace as <<elseif $worn.neck.name is "familiar collar" and $worn.neck.cursed is 1 and !pcAreArmsBound("both") and !_rubbedNecklace>> <<set _rubbedNecklace to true>> You rub the heart on your collar as <<else>> You waste no time as <</if>> <</if>> <</if>> <</if>> <</widget>> <<widget "slithers">> <<rng>> <<if $rng gte 96>> slithers <<elseif $rng gte 91>> writhes <<elseif $rng gte 86>> wriggles <<elseif $rng gte 81>> wiggles <<elseif $rng gte 76>> crawls <<elseif $rng gte 71>> slides <<elseif $rng gte 66>> slinks <<elseif $rng gte 61>> glides <<elseif $rng gte 56>> slips <<elseif $rng gte 51>> squirms <<elseif $rng gte 46>> worms <<elseif $rng gte 41>> twists <<elseif $rng gte 36>> twitches <<elseif $rng gte 31>> shivers <<elseif $rng gte 26>> trembles <<elseif $rng gte 21>> jerks <<elseif $rng gte 16>> crawls <<elseif $rng gte 11>> flutters <<elseif $rng gte 6>> meanders <<elseif $rng gte 1>> slips <</if>> <</widget>> <<widget "slithering">> <<rng>> <<if $rng gte 96>> slithering <<elseif $rng gte 91>> writhing <<elseif $rng gte 86>> wriggling <<elseif $rng gte 81>> wiggling <<elseif $rng gte 76>> crawling <<elseif $rng gte 71>> sliding <<elseif $rng gte 66>> slinking <<elseif $rng gte 61>> gliding <<elseif $rng gte 56>> slipping <<elseif $rng gte 51>> squirming <<elseif $rng gte 46>> worming <<elseif $rng gte 41>> twisting <<elseif $rng gte 36>> twitching <<elseif $rng gte 31>> shivering <<elseif $rng gte 26>> trembling <<elseif $rng gte 21>> jerking <<elseif $rng gte 16>> crawling <<elseif $rng gte 11>> fluttering <<elseif $rng gte 6>> meandering <<elseif $rng gte 1>> slipping <</if>> <</widget>> <<widget "wallet">><<silently>> <<if !isNaN(_args[0]) and $NPCList[_args[0]] and $NPCList[_args[0]].clothes and $NPCList[_args[0]].clothes.set>> <<set $_clothesSet to $NPCList[_args[0]].clothes.set>> <</if>> <<if $location is "island">> <<set _text_output to "clothes">> <<elseif ["maleSchoolSwim", "maleSchoolSwimShirt", "femaleSchoolSwim", "maleSwim1", "maleSwim2", "femaleSwim1", "femaleSwim2", "neutralSwim", "divingSuit"].includes($_clothesSet)>> <<set _text_output to "swimsuit">> <<set $_clothesType to setup.npcClothesSets.find(set => set.name is $_clothesSet)>> <<if $_clothesType>> <<set _stealType to $_clothesType.type>> <</if>> <<else>> <<set _text_output to ($pronoun is "m" ? "wallet" : "purse")>> <</if>> <</silently>><<print _text_output>><</widget>> <<widget "pullupall">> <<outfitChecks>> <<set _pull to $worn.over_upper.name isnot "naked" ? "open your" + $worn.over_upper.name + "and pull" : "pull">> <<if _middleOutfit>> <<if _underOutfit>> You _pull down your $worn.upper.name and $worn.under_upper.name, <span class="lewd">baring your <<breasts>>.</span> <<elseif !$worn.under_upper.type.includes("naked")>> You _pull down your $worn.upper.name and pull up your $worn.under_upper.name, <span class="lewd">baring your <<breasts>>.</span> <<else>> You _pull down your $worn.upper.name, <span class="lewd">baring your <<breasts>>.</span> <</if>> <<elseif !$worn.upper.type.includes("naked")>> <<if _underOutfit>> You pull up your $worn.upper.name and pull down your $worn.under_upper.name, <span class="lewd">baring your <<breasts>>.</span> <<elseif !$worn.under_upper.type.includes("naked")>> You pull up your $worn.upper.name and $worn.under_upper.name, <span class="lewd">baring your <<breasts>>.</span> <<else>> You pull up your $worn.upper.name, <span class="lewd">baring your <<breasts>>.</span> <</if>> <<else>> <<if _underOutfit>> You pull down your $worn.under_upper.name, <span class="lewd">baring your <<breasts>>.</span> <<elseif !$worn.under_upper.type.includes("naked")>> You pull up your $worn.under_upper.name, <span class="lewd">baring your <<breasts>>.</span> <<else>> <span class="lewd">You bare your <<breasts>>.</span> <</if>> <</if>> <</widget>> <<widget "pulldownall">> <<outfitChecks>> <<if setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1>> <<if setup.clothes.under_lower[clothesIndex('under_lower', $worn.under_lower)].skirt is 1>> You lift the hem of your $worn.lower.name and $worn.under_lower.name, <span class="lewd">baring your <<genitals>>.</span> <<elseif _underOutfit>> You lift the hem of your $worn.lower.name and pull aside your $worn.under_lower.name, <span class="lewd">baring your <<genitals>>.</span> <<elseif !$worn.under_lower.type.includes("naked")>> You lift the hem of your $worn.lower.name and pull down your $worn.under_lower.name, <span class="lewd">baring your <<genitals>>.</span> <<else>> You lift the hem of your $worn.lower.name, <span class="lewd">baring your <<genitals>>.</span> <</if>> <<elseif _middleOutfit>> <<if setup.clothes.under_lower[clothesIndex('under_lower', $worn.under_lower)].skirt is 1>> You pull aside your $worn.lower.name and lift the hem of your $worn.under_lower.name, <span class="lewd">baring your <<genitals>>.</span> <<elseif _underOutfit>> You pull aside your $worn.lower.name and $worn.under_lower.name, <span class="lewd">baring your <<genitals>>.</span> <<elseif !$worn.under_lower.type.includes("naked")>> You pull aside your $worn.lower.name and pull down your $worn.under_lower.name, <span class="lewd">baring your <<genitals>>.</span> <<else>> You pull aside your $worn.lower.name, <span class="lewd">baring your <<genitals>>.</span> <</if>> <<elseif !$worn.lower.type.includes("naked")>> <<if setup.clothes.under_lower[clothesIndex('under_lower', $worn.under_lower)].skirt is 1>> You tug down your $worn.lower.name and lift the hem of your $worn.under_lower.name, <span class="lewd">baring your <<genitals>>.</span> <<elseif _middleOutfit>> You tug down your $worn.lower.name and pull aside your $worn.under_lower.name, <span class="lewd">baring your <<genitals>>.</span> <<elseif !$worn.under_lower.type.includes("naked")>> You tug down your $worn.lower.name and $worn.under_lower.name, <span class="lewd">baring your <<genitals>>.</span> <<else>> You tug down your $worn.lower.name, <span class="lewd">baring your <<genitals>>.</span> <</if>> <<else>> <<if setup.clothes.under_lower[clothesIndex('under_lower', $worn.under_lower)].skirt is 1>> You lift the hem of your $worn.under_lower.name, <span class="lewd">baring your <<genitals>>.</span> <<elseif _underOutfit>> You pull aside your $worn.under_lower.name, <span class="lewd">baring your <<genitals>>.</span> <<elseif !$worn.under_lower.type.includes("naked")>> You tug down your $worn.under_lower.name, <span class="lewd">baring your <<genitals>>.</span> <<else>> <span class="lewd">You bare your <<genitals>>.</span> <</if>> <</if>> <</widget>> <<widget "pullup">> <<outfitChecks>> <<if _middleOutfit>> pull down <<elseif !_top.type.includes("naked")>> pull up <<else>> remove <</if>> <</widget>> <<widget "pulldown">> <<outfitChecks>> <<if setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1>> lift up <<elseif _middleOutfit is false>> pull down <<else>> remove <</if>> <</widget>> <<widget "pullsup">> <<outfitChecks>> <<if _middleOutfit>> pulls down <<elseif !_top.type.includes("naked")>> pulls up <<else>> removes <</if>> <</widget>> <<widget "pullsdown">> <<outfitChecks>> <<if setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1>> lifts up <<elseif _middleOutfit is false>> pulls down <<else>> removes <</if>> <</widget>> <<widget "overpullup">> <<outfitChecks>> <<if _overOutfit>> pull down <<elseif !$worn.over_upper.type.includes("naked")>> pull up <<else>> remove <</if>> <</widget>> <<widget "overpulldown">> <<outfitChecks>> <<if setup.clothes.over_lower[clothesIndex('over_lower', $worn.over_lower)].skirt is 1>> lift up <<elseif _overOutfit is false>> pull down <<else>> remove <</if>> <</widget>> <<widget "overpullsup">> <<outfitChecks>> <<if _overOutfit>> pulls down <<elseif !$worn.over_upper.type.includes("naked")>> pulls up <<else>> removes <</if>> <</widget>> <<widget "overpullsdown">> <<outfitChecks>> <<if setup.clothes.over_lower[clothesIndex('over_lower', $worn.over_lower)].skirt is 1>> lifts up <<elseif _overOutfit is false>> pulls down <<else>> removes <</if>> <</widget>> <<widget "glans">><<silently>> <<if $penisuse is 0>> <<set _text_output to "glans">> <<else>> <<set _text_output to "shaft">> <</if>> <<if playerHasStrapon()>> <<set _text_output to "strap-on">> <</if>> <</silently>><<print _text_output>><</widget>> <<widget "testicle">><<silently>> <<if _args[0] is "clinical">> <<set $_pool to ["testicle"]>> <<else>> <<set $_pool to ["ball", "nut", "testicle"]>> <</if>> <<set _text_output to $_pool.pluck()>> <</silently>><<print _text_output>><</widget>> <<widget "testicles">><<silently>> <<if _args[0] is "clinical">> <<set $_pool to ["testes", "testicles"]>> <<else>> <<set $_pool to ["balls", "nuts", "testicles", "testes"]>> <</if>> <<set _text_output to $_pool.pluck()>> <</silently>><<print _text_output>><</widget>> <<widget "ballsize">><<silently>> <<switch $ballssize>> <<case -2>><<set _text_output to ["invisible"].pluck()>> <<case -1>><<set _text_output to ["tiny", "mediocre", "pea-sized"].pluck()>> <<case 0>> <<set _text_output to ["tiny", "mediocre"].pluck()>> <<case 1>> <<set _text_output to ["small"].pluck()>> <<case 2>> <<set _text_output to [""].pluck()>> <<case 3>> <<set _text_output to ["large", "heavy", "thick", "dense"].pluck()>> <<case 4>> <<set _text_output to ["huge", "heavy", "thick", "massive", "hefty"].pluck()>> <<default>><<set _text_output to "Error: $ballssize is [" + $ballssize + "]">> <</switch>> <</silently>><<print _text_output>><</widget>> <<widget "swimmingdifficultytext0">> <<if !$settings.blindStatsEnabled>> | <span class="green">These waters look safe</span> <</if>> <</widget>> <<widget "nexttext">> <!-- Unused widget, sort of --> <</widget>> <<widget "monk">><<silently>> <<if _args[0] is "desc">> <<set _text_output to $description + " ">> <<set _text_output += ($pronoun is "m" ? "monk" : "nun")>> <<else>> <<set _text_output to ($pronoun is "m" ? "monk" : "nun")>> <</if>> <</silently>><<print _text_output>><</widget>> <<widget "monks">><<silently>> <<set _text_output to ($pronoun is "m" ? "monks" : "nuns")>> <</silently>><<print _text_output>><</widget>> <<widget "monks_and_nuns">><<silently>> <<if maleChance() is 100>> <<set _text_output to "monks">> <<elseif maleChance() is 0>> <<set _text_output to "nuns">> <<else>> <<set _text_output to "monks and nuns">> <</if>> <</silently>><<print _text_output>><</widget>> <<widget "Monks_and_Nuns">><<silently>> <<if maleChance() is 100>> <<set _text_output to "monks">> <<elseif maleChance() is 0>> <<set _text_output to "nuns">> <<else>> <<set _text_output to "monks and nuns">> <</if>><<capitalise>> <</silently>><<print _text_output>><</widget>> <<widget "brothers_and_sisters">><<silently>> <<if maleChance() is 100>> <<set _text_output to "brothers">> <<elseif maleChance() is 0>> <<set _text_output to "sisters">> <<else>> <<set _text_output to "brothers and sisters">> <</if>> <</silently>><<print _text_output>><</widget>> <<widget "monkapo">><<silently>> <<set _text_output to ($pronoun is "m" ? "monk's" : "nun's")>> <</silently>><<print _text_output>><</widget>> <<widget "priest">><<silently>> <<set _text_output to ($pronoun is "m" ? "priest" : "priestess")>> <</silently>><<print _text_output>><</widget>> <<widget "priests">><<silently>> <<set _text_output to ($pronoun is "m" ? "priests" : "priestesses")>> <</silently>><<print _text_output>><</widget>> <<widget "priestapo">><<silently>> <<set _text_output to ($pronoun is "m" ? "priest's" : "priestess'")>> <</silently>><<print _text_output>><</widget>> <<widget "bishop">><<silently>> <<if $temple_confessor_intro>> <<set _text_output to "bishop">> <<else>> <<set _text_output to ($pronoun is "m" ? "priest" : "priestess")>> <</if>> <</silently>><<print _text_output>><</widget>> <<widget "bishop_hands">><<silently>> <<if $temple_confessor_intro and _args[0] isnot "long">> <<set _text_output to "bishop's hands">> <<elseif $per_npc.bishop_right_hand>> <<if $per_npc.bishop_right_hand.pronoun is "m" and $per_npc.bishop_left_hand.pronoun is "m">> <<set _text_output to "priests">> <<elseif $per_npc.bishop_right_hand.pronoun is "f" and $per_npc.bishop_left_hand.pronoun is "f">> <<set _text_output to "priestesses">> <<else>> <<set _text_output to "priest and priestess">> <</if>> <<else>> <<set _text_output to "dark-robed pair">> <</if>> <</silently>><<print _text_output>><</widget>> <<widget "vaginalvirginitywarning">> <<if $player.virginity.vaginal is true and !$settings.blindStatsEnabled>> <<if !$combat>> | <</if>> <span class="red"><<if $combat>>(<</if>>This action will deflower you<<if $combat>>)<</if>></span> <<elseif $player.virginity.temple is true and $templePromised isnot _args[0]>> <<if !$combat>> | <</if>> <span class="red"><<if $combat>>(<</if>>This action will break your chastity vow<<if $combat>>)<</if>></span> <</if>> <</widget>> <<widget "penilevirginitywarning">> <<if playerHasStrapon()>> <!-- do nothing --> <<elseif $player.virginity.penile is true and !$settings.blindStatsEnabled>> <<if !$combat>> | <</if>> <span class="red"><<if $combat>>(<</if>>This action will deflower you<<if $combat>>)<</if>></span> <<elseif $player.virginity.temple is true and $templePromised isnot _args[0]>> <<if !$combat>> | <</if>> <span class="red"><<if $combat>>(<</if>>This action will break your chastity vow<<if $combat>>)<</if>></span> <</if>> <</widget>> <<widget "analvirginitywarning">> <<if $player.virginity.anal is true and !$settings.blindStatsEnabled>> <<if !$combat>> | <</if>> <span class="red"><<if $combat>>(<</if>>This action will take your anal virginity<<if $combat>>)<</if>></span> <</if>> <</widget>> <<widget "oralvirginitywarning">> <<if $player.virginity.oral is true and !$settings.blindStatsEnabled>> <<if !$combat>> | <</if>> <span class="red"><<if $combat>>(<</if>>This action will take your oral virginity<<if $combat>>)<</if>></span> <</if>> <</widget>> <<widget "handholdingvirginitywarning">> <<if $player.virginity.handholding is true and !$settings.blindStatsEnabled>> <<if !$combat>> | <</if>> <span class="red"><<if $combat>>(<</if>>This action will take your handholding virginity<<if $combat>>)<</if>></span> <</if>> <</widget>> <<widget "kissvirginitywarning">> <<if $player.virginity.kiss is true and !$settings.blindStatsEnabled>> <<if !$combat>> | <</if>> <span class="red"><<if $combat>>(<</if>>This action will take your first kiss<<if $combat>>)<</if>></span> <</if>> <</widget>> /* Argument 0 is the npc, argument 1 is their virginity. */ <<widget "NPCvirginitywarning">> <<if $NPCNameList.indexOf(_args[0]) >= 0 and C.npc[_args[0]].virginity[_args[1]] is true and !$settings.blindStatsEnabled>> <<if $options.combatControls.includes("ists")>> <br> <</if>> <<if !$combat>> | <</if>> <<switch _args[1]>> <<case "vaginal">> <span class="red"><<if $combat>>(<</if>>This action will deflower <<him>><<if $combat>>)<</if>></span> <<case "penile">> <<if !npcHasStrapon(V.NPCList.findIndex(npc => npc.fullDescription === _args[0]))>> <span class="red"><<if $combat>>(<</if>>This action will deflower <<him>><<if $combat>>)<</if>></span> <</if>> <<case "anal">> <span class="red"><<if $combat>>(<</if>>This action will take <<his>> anal virginity<<if $combat>>)<</if>></span> <<case "oral">> <span class="red"><<if $combat>>(<</if>>This action will take <<his>> oral virginity<<if $combat>>)<</if>></span> <<case "kiss">> <span class="red"><<if $combat>>(<</if>>This action will take <<his>> first kiss<<if $combat>>)<</if>></span> <<case "handholding">> <span class="red"><<if $combat>>(<</if>>This action will take <<his>> handholding virginity<<if $combat>>)<</if>></span> <<default>> <</switch>> <</if>> <</widget>> <<widget "wolfgirl">> <<if !$settings.blindStatsEnabled>> | <span class="blue"><<print ($player.gender_appearance is "m" ? "Wolfboy" : "Wolfgirl")>></span> <</if>> <</widget>> <<widget "cat">> <<if !$settings.blindStatsEnabled>> | <span class="blue">Cat</span> <</if>> <</widget>> <<widget "cow">> <<if !$settings.blindStatsEnabled>> | <span class="blue">Cow</span> <</if>> <</widget>> <<widget "harpy">> <<if !$settings.blindStatsEnabled>> | <<if $hallucinations gte 2 or !$settings.bestialityEnabled>> <span class="gold">Harpy</span> <<else>> <span class="gold">Bird</span> <</if>> <</if>> <</widget>> <<widget "fox">> <<if !$settings.blindStatsEnabled>> | <span class="orange"><<print ($player.gender_appearance is "m" ? "Foxboy" : "Vixen")>></span> <</if>> <</widget>> <<widget "angel">> <<if !$settings.blindStatsEnabled>> | <span class="gold">Angel</span> <</if>> <</widget>> <<widget "angelBanishNote">> <<if !$settings.blindStatsEnabled>> | <span class="def">Banish ($angelBanish / $angelBanishMax)</span> <</if>> <</widget>> <<widget "fallenangel">> <<if !$settings.blindStatsEnabled>> | <span class="black">Fallen Angel</span> <</if>> <</widget>> <<widget "demon">> <<if !$settings.blindStatsEnabled>> | <span class="red">Demon</span> <</if>> <</widget>> <<widget "sharp_eyes">> <<if !$settings.blindStatsEnabled>> | <span class="gold">Sharp eyes</span> <</if>> <</widget>> <<widget "laughs">><<silently>> <<rng>> <<if $npcadult isnot 1>> <<set _text_output to either("giggles", "laughs")>> <<elseif $pronoun is "f">> <!-- female adult --> <<set _text_output to either("giggles", "chuckles", "laughs")>> <<else>> <!-- male adult --> <<set _text_output to either("chuckles", "laughs")>> <</if>> <</silently>><<print _text_output>><</widget>> <<widget "cursedtext">> <<if _args[0] is "collar" or _args[0] is "collar with leash">> <span class="blue">Perhaps the police can help.</span> <<elseif (_args[0] or _args[1]) is "chastity belt">> <span class="blue">Perhaps the temple can help.</span> <</if>> <</widget>> <<widget "generateRandomTeacher">><<silently>> <<set _position to _args[0] ? _args[0] : 1>> <<set _teacherNames to []>> <<if C.npc.Sirris.init is 1 and $schoolstate isnot "first">> <<run _teacherNames.push("Sirris")>> <</if>> <<if C.npc.River.init is 1 and $schoolstate isnot "second">> <<run _teacherNames.push("River")>> <</if>> <<if C.npc.Doren.init is 1 and $schoolstate isnot "third">> <<run _teacherNames.push("Doren")>> <</if>> <<if C.npc.Winter.init is 1 and $schoolstate isnot "fourth">> <<run _teacherNames.push("Winter")>> <</if>> <<if C.npc.Mason.init is 1 and $schoolstate isnot "fifth">> <<run _teacherNames.push("Mason")>> <</if>> <<if _teacherNames.length gte 1>> <<set _teacher to _teacherNames.random()>> <<set _text_output to _teacher>> <<switch _teacher>> <<case "Sirris">><<npc Sirris _position>> <<case "River">><<npc River _position>> <<case "Doren">><<npc Doren _position>> <<case "Winter">><<npc Winter _position>> <<case "Mason">><<npc Mason _position>> <</switch>> <<else>> <<set _teacher to "The teacher">> <<set _text_output to "a teacher">> <<generateNPC _position>> <</if>> <</silently>><<print _text_output>><</widget>> <<widget "skincolourtext">> <<switch Skin.color.natural>> <<case "light" "rlight" "ylight" "glight" "blight">> light <<case "medium" "rmedium" "ymedium" "gmedium" "bmedium">> medium <<case "dark" "rdark" "ydark" "gdark" "bdark">> dark <<case "gyaru" "rgyaru" "ygyaru" "ggyaru" "bgyaru">> <<set _textOverride to true>> <</switch>> <<if _textOverride is true>> <<if Skin.color.tan gte 66>> dark <<elseif Skin.color.tan gte 33>> medium <<else>> light <</if>> skin colour. <<elseif Skin.color.tan gte 80>> skin colour with a dark tan. <<elseif Skin.color.tan gte 60>> skin colour with a medium tan. <<elseif Skin.color.tan gte 30>> skin colour with a tan. <<elseif Skin.color.tan gte 10>> skin colour with a light tan. <<else>> skin colour. <</if>> <</widget>> <<widget "beasttype">><<silently>> <<if typeof _args[0] is "number">> <<set _na to _args[0]>> <<else>> <<set _na to 0>> <</if>> <<set _text_output to $NPCList[_na].type>> <</silently>><<print _text_output>><</widget>> <<widget "beasttypes">> <<beasttype>>'s<</widget>> <<widget "beastsplural">><<silently>> <<if typeof _args[0] is "number">> <<set _na to _args[0]>> <<else>> <<set _na to 0>> <</if>> <<if $NPCList[_na].type is "wolf" and $monster isnot 1>> <<set _text_output to "wolves">> <<elseif $NPCList[_na].type is "fox" and $monster isnot 1>> <<set _text_output to "foxes">> <<elseif $NPCList[_na].type is "harpy">> <<set _text_output to "harpies">> <<elseif $monster isnot 1 or $NPCList[_na].type is "centaur">> <<set _text_output to "<<beasttype _na>>s">> <<else>> <<for _i = 0; _i < $NPCList.length; _i++>> <<if $NPCList[_i].pronoun is "m">> <<set _malespresent to true>> <</if>> <<if $NPCList[_i].pronoun is "f">> <<set _femalespresent to true>> <</if>> <</for>> <<if (_malespresent isnot true or _femalespresent isnot true)>> <<set _text_output to "<<beasttype>>s">> <<elseif !$NPCList[2].pronoun>> <<set _text_output to "$NPCList[0].type and $NPCList[1].type">> <<else>> <<switch $NPCList[_na].type>> <<case "lizardgirl" "lizardboy">><<set _text_output to "lizardgirls and lizardboys">> <<case "wolfgirl" "wolfboy">><<set _text_output to "wolfgirls and wolfboys">> <<case "doggirl" "dogboy">><<set _text_output to "doggirls and dogboys">> <<case "dolphingirl" "dolphinboy">><<set _text_output to "dolphingirls and dolphinboys">> <<case "beargirl" "bearboy">><<set _text_output to "beargirls and bearboys">> <<case "catgirl" "catboy">><<set _text_output to "catgirls and catboys">> <<case "piggirl" "pigboy">><<set _text_output to "piggirls and pigboys">> <<case "boargirl" "boarboy">><<set _text_output to "boargirls and boarboys">> <<case "cowgirl" "bullboy">><<set _text_output to "cowgirls and bullboys">> <<case "foxgirl" "foxboy">><<set _text_output to "foxgirls and foxboys">> <<case "spidergirl" "spiderboy">><<set _text_output to "spidergirls and spiderboys">> <<default>><<set _text_output to "creatures">> <</switch>> <</if>> <</if>> <</silently>><<print _text_output>><</widget>> <<widget "beastgender">><<silently>> <<if typeof _args[0] is "number">> <<set _na to _args[0]>> <<elseif $enemyno gte 0>> <<set _na to $enemyno-1>> <<else>> <<set _na to 0>> <</if>> <<set _text_output to ($NPCList[_na].pronoun is "m" ? "boy" : "girl")>> <</silently>>_text_output<</widget>> <<widget "beastSimple">> <<if typeof _args[0] is "string">> <<set $_type to _args[0]>> <<elseif typeof _args[0] is "number">> <<set $_type to $NPCList[_args[0]].type>> <<else>> <<set $_type to $NPCList[0].type>> <</if>> <<set $_plural to _args[1]>> <<switch $_type>> <<case "wolf" "wolfboy" "wolfgirl">> <<if $_plural>> <<set $_plural to false>> <<set _text_output to "wolves">> <<else>> <<set _text_output to "wolf">> <</if>> <<case "fox" "foxboy" "foxgirl">> <<if $_plural>> <<set $_plural to false>> <<set _text_output to "foxes">> <<else>> <<set _text_output to "fox">> <</if>> <<case "harpy">> <<set _text_output to "bird">> <<default>> /* Centaurs still get called centaurs because they're unique compared to other beasts */ <<set _text_output to $_type.replace("boy","").replace("girl","")>> <</switch>> <<if $_plural>> <<set _text_output += "s">> <</if>> <<exit _text_output>> <</widget>> <<widget "slut">><<silently>> <<set _text_output to ($player.gender_appearance is "m" ? "pervert" : "slut")>> <</silently>><<print _text_output>><</widget>> <<widget "tending_text">> <<set $_tendingText to currentSkillValue('tending')>> <<if $_tendingText gte 1200>> <span class="gold">You're incredible at this.</span> <<elseif $_tendingText gte 800>> <span class="green">You're great at this.</span> <<elseif $_tendingText gte 600>> <span class="teal">You're good at this.</span> <<elseif $_tendingText gte 400>> <span class="lblue">You're okay at this.</span> <<elseif $_tendingText gte 200>> <span class="blue">You're getting the hang of this.</span> <<else>> <span class="purple">You muddle through.</span> <</if>> <</widget>> <<widget "housekeeping_text">> <<set $_housekeepingText to currentSkillValue('housekeeping')>> <<if $_housekeepingText gte 1200>> <span class="gold">You're incredible at this.</span> <<elseif $_housekeepingText gte 800>> <span class="green">You're great at this.</span> <<elseif $_housekeepingText gte 600>> <span class="teal">You're good at this.</span> <<elseif $_housekeepingText gte 400>> <span class="lblue">You're okay at this.</span> <<elseif $_housekeepingText gte 200>> <span class="blue">You're getting the hang of this.</span> <<else>> <span class="purple">You muddle through.</span> <</if>> <</widget>> <<widget "wordify_i">> <<switch _args[0]>> <<case 0>> <<set _text_output to "first">> <<case 1>> <<set _text_output to "second">> <<case 2>> <<set _text_output to "third">> <<case 3>> <<set _text_output to "fourth">> <<case 4>> <<set _text_output to "fifth">> <<case 5>> <<set _text_output to "sixth">> <<case 6>> <<set _text_output to "seventh">> <<case 7>> <<set _text_output to "eighth">> <<case 8>> <<set _text_output to "ninth">> <<case 9>> <<set _text_output to "tenth">> <</switch>> <<if _text_output is undefined>> <<set _text_output to "eleventh">> <</if>> <<if _args[1]>> <<capitalise>> <<else>> <<print _text_output>> <</if>> <</widget>> <<widget "threaten">> <<rng>> <<if $NPCList[_n].pronoun is "m">> <<if $NPCList[_n].penis isnot "none">> <<if $player.gender_appearance is "m">> <<if $rng gte 81>> "I'm gonna fuck your ass until you squeal." <<elseif $rng gte 61>> "I'm gonna make you my <<bitch>>." <<elseif $rng gte 41>> "You'll be worshipping my cock when I'm done with you." <<elseif $rng gte 21>> "I'm gonna make you my new cock sleeve." <<else>> "I'm gonna fill that ass of yours." <</if>> <<else>> <<if $rng gte 81>> "I'm gonna fuck your pussy until you squeal." <<elseif $rng gte 61>> "I'm gonna make you my <<bitch>>." <<elseif $rng gte 41>> "You'll be worshipping my cock when I'm done with you." <<elseif $rng gte 21>> "I'm gonna fuck every one of your holes." <<else>> "I'm gonna make you my new cock sleeve." <</if>> <</if>> <<else>> <<if $player.gender_appearance is "m">> <<if $rng gte 81>> "I'm gonna ride you until you pass out." <<elseif $rng gte 61>> "I'm gonna bully your cock into submission." <<elseif $rng gte 41>> "I'm gonna drain you empty." <<elseif $rng gte 21>> "Your cock will be sore when I'm through with you." <<else>> "You're gonna service my pussy in and every way I require." <</if>> <<else>> <<if $rng gte 81>> "I'm gonna fuck you until you squeal." <<elseif $rng gte 61>> "I'm gonna bully your pussy into submission." <<elseif $rng gte 41>> "You're gonna service my pussy in any and every way I require." <<elseif $rng gte 21>> "You're gonna get me off any way you can." <<else>> "I'm gonna dominate every part of you." <</if>> <</if>> <</if>> <<else>> <<if $NPCList[_n].penis isnot "none">> <<if $player.gender_appearance is "m">> <<if $rng gte 81>> "I'm gonna fuck your ass until you squeal." <<elseif $rng gte 61>> "I'm gonna make you my <<bitch>>." <<elseif $rng gte 41>> "You'll be worshipping my cock when I'm done with you." <<elseif $rng gte 21>> "I'm gonna make you my new cock sleeve." <<else>> "I'm gonna fill that ass of yours." <</if>> <<else>> <<if $rng gte 81>> "I'm gonna fuck your pussy until you squeal." <<elseif $rng gte 61>> "I'm gonna make you my <<bitch>>." <<elseif $rng gte 41>> "You'll be worshipping my cock when I'm done with you." <<elseif $rng gte 21>> "I'm gonna fuck every one of your holes." <<else>> "I'm gonna make you my new cock sleeve." <</if>> <</if>> <<else>> <<if $player.gender_appearance is "m">> <<if $rng gte 81>> "I'm gonna ride you until you pass out." <<elseif $rng gte 61>> "I'm gonna bully your cock into submission." <<elseif $rng gte 41>> "I'm gonna drain you empty." <<elseif $rng gte 21>> "Your cock will be sore when I'm through with you." <<else>> "I need your cum. All of it." <</if>> <<else>> <<if $rng gte 81>> "I'm gonna fuck you until you squeal." <<elseif $rng gte 61>> "I'm gonna bully your pussy into submission." <<elseif $rng gte 41>> "You're gonna service my pussy in any and every way I require." <<elseif $rng gte 21>> "You're gonna get me off any way you can." <<else>> "I'm gonna dominate every part of you." <</if>> <</if>> <</if>> <</if>> <</widget>> <<widget "voice">> <<switch _args[0]>> <<case "plead">> <<if $pain lte 60>> <<if $rng lte 33>> <<set _text_output to "plead">> <<elseif $rng lte 66>> <<set _text_output to "beg">> <<elseif $wolfgirl gte 4>> <<set _text_output to "whimper">> <<elseif $cat gte 4>> <<set _text_output to "mewl">> <<elseif $cow gte 4>> <<set _text_output to "moo">> <<elseif $harpy gte 4>> <<set _text_output to "chirp">> <<elseif $fox gte 4>> <<set _text_output to "whimper">> <<else>> <<set _text_output to "plead">> <</if>> <<else>> <<if $rng lte 50>> <<set _text_output to "cry and plead">> <<else>> <<set _text_output to "weep and plead">> <</if>> <</if>> <<case "moan">> <<if $rng lte 25>> <<if $arousal lte ($arousalmax / 5) * 3>> <<set _text_output to "moan">> <<else>> <<set _text_output to "gasp and moan">> <</if>> <<elseif $rng lte 50>> <<set _text_output to "murmur">> <<elseif $rng lte 75>> <<if $arousal lte ($arousalmax / 5) * 3>> <<set _text_output to "giggle">> <<else>> <<set _text_output to "gasp and giggle">> <</if>> <<elseif $wolfgirl gte 4>> <<set _text_output to "pant">> <<elseif $cat gte 4>> <<set _text_output to "purr">> <<elseif $cow gte 4>> <<set _text_output to "moo">> <<elseif $harpy gte 4>> <<set _text_output to "chirp">> <<elseif $fox gte 4>> <<set _text_output to "yip">> <<else>> <<set _text_output to "moan">> <</if>> <<case "demand">> <<if $arousal lte ($arousalmax / 5) * 3>> <<if $rng lte 33>> <<set _text_output to "speak">> <<elseif $rng lte 66>> <<set _text_output to "yell">> <<elseif $wolfgirl gte 4>> <<set _text_output to "bark">> <<elseif $cat gte 4>> <<set _text_output to "hiss">> <<elseif $cow gte 4>> <<set _text_output to "exhale through your nostrils threateningly">> <<elseif $harpy gte 4>> <<set _text_output to "screech">> <<elseif $fox gte 4>> <<set _text_output to "scream">> <<else>> <<set _text_output to "spit">> <</if>> <<elseif $rng lte 50>> <<set _text_output to "gasp">> <<else>> <<set _text_output to "growl">> <</if>> <<default>> <<set _text_output to "try to speak, but hiccup instead. This is a bug, please report to Vrelnir" + (_args[0] isnot undefined ? _args[0] : "undefined")>> <</switch>> <<print _text_output>> <</widget>> <<widget "vagina_lube_amount">> <<if _vagina_lube_amount gte 12>> <span class="red">copious</span> amounts <<elseif _vagina_lube_amount gte 8>> <span class="pink">ample</span> amounts <<elseif _vagina_lube_amount gte 5>> <span class="pink">large amount</span> <<elseif _vagina_lube_amount gte 3>> <span class="purple">fair</span> amount <<elseif _vagina_lube_amount gte 2>> <span class="purple">meagre</span> amount <<else>> <span class="purple">paltry</span> amount <</if>> <</widget>> <<widget "anus_lube_amount">> <<if _anus_lube_amount gte 12>> <span class="red">copious</span> amounts <<elseif _anus_lube_amount gte 8>> <span class="pink">ample</span> amounts <<elseif _anus_lube_amount gte 5>> <span class="pink">large amount</span> <<elseif _anus_lube_amount gte 3>> <span class="purple">fair</span> amount <<elseif _anus_lube_amount gte 2>> <span class="purple">meagre</span> amount <<else>> <span class="purple">paltry</span> amount <</if>> <</widget>> <<widget "penis_lube_amount">> <<if _penis_lube_amount gte 10>> <span class="red">copious</span> amounts <<elseif _penis_lube_amount gte 6>> <span class="pink">ample</span> amounts <<elseif _penis_lube_amount gte 4>> <span class="pink">large amount</span> <<elseif _penis_lube_amount gte 3>> <span class="purple">fair</span> amount <<elseif _penis_lube_amount gte 2>> <span class="purple">meagre</span> amount <<else>> <span class="purple">paltry</span> amount <</if>> <</widget>> <<widget "vagina_lube_text">> <<set _vagina_lube_amount to setup.bodyliquid.combined("vagina") + setup.bodyliquid.combined("vaginaoutside") + Math.max(0, $vaginaArousalWetness - 60) / 5>> <<if _vagina_lube_amount lte 0>> Despite how dry you are, <<else>> Aided by the <<vagina_lube_amount>> of lubricating fluid, <</if>> <</widget>> <<widget "anus_lube_text">> <<set _anus_lube_amount to setup.bodyliquid.combined("anus") + setup.bodyliquid.combined("bottom")>> <<if _anus_lube_amount lte 0>> Despite the lack of lubrication, <<else>> Aided by the <<anus_lube_amount>> of lubricating fluid, <</if>> <</widget>> <<widget "penis_lube_text">> <<set _penis_lube_amount to setup.bodyliquid.combined("penis")>> <<if _penis_lube_amount lte 0>> Despite the lack of lubrication, <<else>> Aided by the <<penis_lube_amount>> of lubricating fluid, <</if>> <</widget>> <<widget "small_text">> <<if !$settings.blindStatsEnabled>> | <<if $physiquesize lte 6000>> <span class="teal">Tiny Body</span> <<elseif $physiquesize lte 10000>> <span class="teal">Small Body</span> <<elseif $physiquesize lte 12000>> <span class="teal">Not too big</span> <<else>> <span class="teal">Not too big</span> <</if>> <</if>> <</widget>> <<widget "large_text">> <<if !$settings.blindStatsEnabled>> | <<if $physiquesize gte 16000>> <span class="teal">Large Body</span> <<elseif $physiquesize gte 12000>> <span class="teal">Normal Body</span> <<elseif $physiquesize gte 10000>> <span class="teal">Not too small</span> <<else>> <span class="teal">Not too small</span> <</if>> <</if>> <</widget>> <<widget "body_size_text">> <<switch $physiquesize>> <<case lte 6000>> <<set _text_output to either("tiny", "dainty", "petite", "minuscule", "delicate") + " ">> <<case lte 10000>> <<set _text_output to either("short", "small", "little", "smallish") + " ">> <<case lte 12000>> <<set _text_output to either("average", "normal", "regular") + " ">> <<case lte 16000>> <<set _text_output to either("tall", "strong", "powerful", "large") + " ">> <<default>> <</switch>> <<set _text_output to _text_output + either("body","frame","anatomy", "torso")>> <<print _text_output>> <</widget>> <<widget "monster_passage">> <!-- Unused widget --> <<if _monster_passage is undefined>> <<if ($settings.monsterChance gte 1 and $hallucinations gte 1) or ($settings.monsterChance gte 1 and !$settings.monsterHallucinationsOnly)>> <<if maleChance() gte 100>> <<set _monster_passage to "m">> <<elseif maleChance() lte 0>> <<set _monster_passage to "f">> <<else>> <<set _monster_passage to "b">> <</if>> <<else>> <<set _monster_passage to "n">> <</if>> <</if>> <</widget>> <<widget "farm_text_many">> <<set $_bgender to $farm_work[_args[0]].gender_plural>> <<set $_bperson to ($farm_work[_args[0]].monster_roll is true and ($hallucinations gte 1 or !$settings.monsterHallucinationsOnly))>> <<if _args[0] is "horse">> <<if $_bperson>> <<set _text_output to "centaurs">> <<else>> <<set _text_output to "horses">> <</if>> <<elseif _args[0] is "pig">> <<if $_bperson>> <<if $_bgender is "m">> <<set _text_output to "pigboys">> <<elseif $_bgender is "f">> <<set _text_output to "piggirls">> <<else>> <<set _text_output to "pigpeople">> <</if>> <<else>> <<set _text_output to "pigs">> <</if>> <<elseif _args[0] is "dog">> <<if $_bperson>> <<if $_bgender is "m">> <<set _text_output to "dogboys">> <<elseif $_bgender is "f">> <<set _text_output to "doggirls">> <<else>> <<set _text_output to "dogpeople">> <</if>> <<else>> <<set _text_output to "dogs">> <</if>> <<else>> <<if $_bperson>> <<if $_bgender is "m">> <<set _text_output to "bullboys">> <<elseif $_bgender is "f">> <<set _text_output to "cowgirls">> <<else>> <<set _text_output to "cattle">> <</if>> <<else>> <<if $_bgender is "m">> <<set _text_output to "bulls">> <<elseif $_bgender is "f">> <<set _text_output to "cows">> <<else>> <<set _text_output to "cattle">> <</if>> <</if>> <</if>> <<print _text_output>> <</widget>> <<widget "farm_text">> <<set $_bgender to $farm_work[_args[0]].gender>> <<set $_bperson to ($farm_work[_args[0]].monster_roll is true and ($hallucinations gte 1 or !$settings.monsterHallucinationsOnly))>> <<if _args[0] is "horse">> <<if $_bperson>> <<set _text_output to "centaur">> <<else>> <<set _text_output to "horse">> <</if>> <<elseif _args[0] is "pig">> <<if $_bperson>> <<set _text_output to ($_bgender is "m" ? "pigboy" : "piggirl")>> <<else>> <<set _text_output to "pig">> <</if>> <<elseif _args[0] is "dog">> <<if $_bperson>> <<set _text_output to ($_bgender is "m" ? "dogboy" : "doggirl")>> <<else>> <<set _text_output to "dog">> <</if>> <<else>> <<if $_bperson>> <<set _text_output to ($_bgender is "m" ? "bullboy" : "cowgirl")>> <<else>> <<set _text_output to ($_bgender is "m" ? "bull" : "cow")>> <</if>> <</if>> <<print _text_output>> <</widget>> <<widget "farm_he">> <<if $farm_work[_args[0]].monster>> <<if $farm_work[_args[0]].gender is "m">> <<set _text_output to "he">> <<else>> <<set _text_output to "she">> <</if>> <<else>> <<set _text_output to "it">> <</if>> <<print _text_output>> <</widget>> <<widget "farm_He">> <<if $farm_work[_args[0]].monster>> <<if $farm_work[_args[0]].gender is "m">> <<set _text_output to "He">> <<else>> <<set _text_output to "She">> <</if>> <<else>> <<set _text_output to "It">> <</if>> <<print _text_output>> <</widget>> <<widget "farm_him">> <<if $farm_work[_args[0]].monster>> <<if $farm_work[_args[0]].gender is "m">> <<set _text_output to "him">> <<else>> <<set _text_output to "her">> <</if>> <<else>> <<set _text_output to "it">> <</if>> <<print _text_output>> <</widget>> <<widget "farm_his">> <<if $farm_work[_args[0]].monster>> <<if $farm_work[_args[0]].gender is "m">> <<set _text_output to "his">> <<else>> <<set _text_output to "her">> <</if>> <<else>> <<set _text_output to "its">> <</if>> <<print _text_output>> <</widget>> <<widget "farm_His">> <<if $farm_work[_args[0]].monster>> <<if $farm_work[_args[0]].gender is "m">> <<set _text_output to "His">> <<else>> <<set _text_output to "Her">> <</if>> <<else>> <<set _text_output to "Its">> <</if>> <<print _text_output>> <</widget>> <<widget "master">><<silently>> <<set _text_output to ($pronoun is "m" ? "master" : "mistress")>> <</silently>>_text_output<</widget>> <<widget "Master">><<silently>> <<master>><<capitalise>> <</silently>>_text_output<</widget>> <<widget "daughter">><<silently>> <<set _text_output to ($pronoun is "m" ? "son" : "daughter")>> <</silently>>_text_output<</widget>> <!-- Proper usage example: <<nnpc_he "Robin">> would return "he" or "she" based on Robin's pronoun. --> <!-- Useful for needing to call a named NPC's pronoun in a scene that doesn't directly include them, or for more efficient usage in scenes with multiple named NPCs. --> <<widget "nnpc_he">><<silently>> <<set _npcPronoun to C.npc[_args[0]].pronoun>> <<set _text_output to (_npcPronoun is "m" ? "he" : "she")>> <</silently>><<print _text_output>><</widget>> <<widget "nnpc_He">><<silently>> <<nnpc_he _args[0]>><<capitalise>> <</silently>><<print _text_output>><</widget>> <<widget "nnpc_him">><<silently>> <<set _npcPronoun to C.npc[_args[0]].pronoun>> <<set _text_output to (_npcPronoun is "m" ? "him" : "her")>> <</silently>><<print _text_output>><</widget>> <<widget "nnpc_Him">><<silently>> <<nnpc_him _args[0]>><<capitalise>> <</silently>><<print _text_output>><</widget>> <<widget "nnpc_his">><<silently>> <<set _npcPronoun to C.npc[_args[0]].pronoun>> <<set _text_output to (_npcPronoun is "m" ? "his" : "her")>> <</silently>><<print _text_output>><</widget>> <<widget "nnpc_His">><<silently>> <<nnpc_his _args[0]>><<capitalise>> <</silently>><<print _text_output>><</widget>> <<widget "nnpc_hers">><<silently>> <<set _npcPronoun to C.npc[_args[0]].pronoun>> <<set _text_output to (_npcPronoun is "m" ? "his" : "hers")>> <</silently>><<print _text_output>><</widget>> <<widget "nnpc_hes">><<silently>> <<set _npcPronoun to C.npc[_args[0]].pronoun>> <<set _text_output to (_npcPronoun is "m" ? "he's" : "she's")>> <</silently>><<print _text_output>><</widget>> <<widget "nnpc_Hes">><<silently>> <<nnpc_hes _args[0]>><<capitalise>> <</silently>><<print _text_output>><</widget>> <<widget "nnpc_himself">><<silently>> <<set _npcPronoun to C.npc[_args[0]].pronoun>> <<set _text_output to (_npcPronoun is "m" ? "himself" : "herself")>> <</silently>><<print _text_output>><</widget>> <<widget "nnpc_wife">><<silently>> <<set _npcPronoun to C.npc[_args[0]].pronoun>> <<set _text_output to (_npcPronoun is "m" ? "husband" : "wife")>> <</silently>><<print _text_output>><</widget>> <<widget "nnpc_lass">><<silently>> <<set _npcPronoun to C.npc[_args[0]].pronoun>> <<set _text_output to (_npcPronoun is "m" ? "lad" : "lass")>> <</silently>><<print _text_output>><</widget>> <<widget "nnpc_gender">><<silently>> <<set _npcPronoun to C.npc[_args[0]].pronoun>> <<set _text_output to (_npcPronoun is "m" ? "man" : "woman")>> <</silently>><<print _text_output>><</widget>> <<widget "nnpc_gendery">><<silently>> <<set _npcPronoun to C.npc[_args[0]].pronoun>> <<set _text_output to (_npcPronoun is "m" ? "boy" : "girl")>> <</silently>><<print _text_output>><</widget>> <<widget "nnpc_genitals">><<silently>> <<set _npcGender to C.npc[_args[0]].gender>> <<set _text_output to (_npcGender is "m" ? "penis" : "vagina")>> <</silently>><<print _text_output>><</widget>> <<widget "nnpc_girlfriend">><<silently>> <<set _npcPronoun to C.npc[_args[0]].pronoun>> <<set _text_output to (_npcPronoun is "m" ? "boyfriend" : "girlfriend")>> <</silently>><<print _text_output>><</widget>> <<widget "nnpc_brother">><<silently>> <<set _npcPronoun to C.npc[_args[0]].pronoun>> <<set _text_output to (_npcPronoun is "m" ? "brother" : "sister")>> <</silently>><<print _text_output>><</widget>> <<widget "nnpc_Brother">><<silently>> <<nnpc_brother _args[0]>><<capitalise>> <</silently>><<print _text_output>><</widget>> <<widget "nnpc_daughter">><<silently>> <<set _npcPronoun to C.npc[_args[0]].pronoun>> <<set _text_output to (_npcPronoun is "m" ? "son" : "daughter")>> <</silently>><<print _text_output>><</widget>> <<widget "nnpc_title">><<silently>> <<set _text_output to C.npc[_args[0]].title>> <</silently>><<print _text_output>><</widget>> <<widget "nnpc_Title">><<silently>> <<nnpc_title _args[0]>><<capitalise>> <</silently>><<print _text_output>><</widget>> <<widget "nnpc_master">><<silently>> <<set _npcPronoun to C.npc[_args[0]].pronoun>> <<set _text_output to (_npcPronoun is "m" ? "master" : "mistress")>> <</silently>>_text_output<</widget>> <<widget "daylight">> <<if Weather.dayState is "day">> <<set _text_output to "daylight">> <<elseif Weather.dayState is "dawn">> <<set _text_output to "dawn's light">> <<elseif Weather.dayState is "dusk">> <<set _text_output to "fading light">> <<else>> <<if Time.hour is 9 or Time.season is "summer">> <<set _text_output to "twilight">> <<else>> <<set _text_output to "night breeze">> <</if>> <</if>> <<print _text_output>> <</widget>> <<widget "printTo">> to <</widget>> <<widget "printAnd">> and <</widget>> <<widget "printChastity">> $worn.genitals.name <</widget>> <<widget "beast_jaws_text">> <<if $NPCList[_n].type is "hawk">> <<set _text_output to "beak">> <<else>> <<set _text_output to "jaws">> <</if>> <<print _text_output>> <</widget>> <<widget "beast_Jaws_text">> <<if $NPCList[_n].type is "hawk">> <<set _text_output to "Beak">> <<else>> <<set _text_output to "Jaws">> <</if>> <<print _text_output>> <</widget>> <<widget "beast_teeth_text">> <<if $NPCList[_n].type is "hawk">> <<set _text_output to "beak">> <<else>> <<set _text_output to "teeth">> <</if>> <<print _text_output>> <</widget>> <<widget "beast_claws_text">> <<if $NPCList[_n].type is "hawk">> <<set _text_output to "talons">> <<else>> <<set _text_output to $NPCList[_n].claws>> <!-- <<set _text_output to "claws">> --> <</if>> <<print _text_output>> <</widget>> <<widget "beast_growls_text">> <<set $_type to _args[0] ? _args[0] : $NPCList[_n].type>> <<if ["hawk","harpy"].includes($_type)>> <<set _text_output to "squawks">> <<elseif $_type.includes("pig")>> <<set _text_output to "oinks">> <<elseif $_type.includes("dolphin")>> <<set _text_output to "clicks">> <<elseif $_type.includes("spider")>> <<set _text_output to "chitters">> <<elseif $_type.includes("lizard")>> <<set _text_output to "hisses">> <<elseif ["boar","horse","centaur"].includes($_type)>> <<set _text_output to "huffs">> <<else>> <<set _text_output to "growls">> <</if>> <<print _text_output>> <</widget>> <<widget "beast_growling_text">> <<set $_type to _args[0] ? _args[0] : $NPCList[_n].type>> <<if ["hawk","harpy"].includes($_type)>> <<set _text_output to "squawking">> <<elseif $_type.includes("pig")>> <<set _text_output to "oinking">> <<elseif $_type.includes("dolphin")>> <<set _text_output to "clicking">> <<elseif $_type.includes("spider")>> <<set _text_output to "chittering">> <<elseif $_type.includes("lizard")>> <<set _text_output to "hissing">> <<elseif ["boar","horse","centaur"].includes($_type)>> <<set _text_output to "huffing">> <<else>> <<set _text_output to "growling">> <</if>> <<print _text_output>> <</widget>> <<widget "dress">> <<if $worn.upper.set is $worn.lower.set>> <<if setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1>> <<set _text_output to "dress">> <<else>> <<set _text_output to "clothes">> <</if>> <<else>> <<set _text_output to "top">> <</if>> <<print _text_output>> <</widget>> <<widget "skirt">> <<if $worn.upper.set is $worn.lower.set>> <<if setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1>> <<set _text_output to "dress">> <<else>> <<set _text_output to "clothes">> <</if>> <<else>> <<if setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1>> <<set _text_output to "skirt">> <<else>> <<set _text_output to "bottoms">> <</if>> <</if>> <<print _text_output>> <</widget>> <<widget "panties">> <<if $worn.under_upper.set is $worn.under_lower.set>> <<set _text_output to "underclothes">> <<else>> <<if setup.clothes.under_lower[clothesIndex('under_lower', $worn.under_lower)].skirt is 1>> <<set _text_output to "skirt">> <<else>> <<if $worn.under_lower.gender is "f">> <<if random(1, 2) is 2>> <<set _text_output to "panties">> <<else>> <<set _text_output to "knickers">> <</if>> <<else>> <<set _text_output to "undies">> <</if>> <</if>> <</if>> <<print _text_output>> <</widget>> <<widget "bra">> <<if $worn.under_upper.set is $worn.under_lower.set>> <<set _text_output to "underclothes">> <<else>> <<if $worn.under_upper.gender is "f" and setup.clothes.under_upper[clothesIndex('under_upper', $worn.under_upper)].state_base is "midriff">> <<set _text_output to "bra">> <<else>> <<set _text_output to "top">> <</if>> <</if>> <<print _text_output>> <</widget>> <<widget "npcPenis">><<silently>> <<set $_npcGen to (_args[0] ?? $index)>> <<if !$NPCList[$_npcGen]>> <<set _text_output to `<span class="red">error-npcPenis-${$_npcGen}</span>`>> <<elseif $NPCList[$_npcGen].chastity.penis is "chastity cage">> <<set _text_output to "caged penis">> <<elseif $NPCList[$_npcGen].chastity.penis.includes("chastity")>> <<set _text_output to $NPCList[$_npcGen].chastity.penis>> <<elseif npcHasStrapon($_npcGen)>> <<set _text_output to either("strap-on","strap-on cock")>> <<else>> <<set _text_output to $NPCList[$_npcGen].penisdesc>> <</if>> <</silently>><<print _text_output>><</widget>> <<widget "npcPenisSimple">><<silently>> <<if $enemynomax is 1>> <<set _args[0] to 0>> <</if>> <<set $_npcGen to (_args[0] ?? $index)>> <<if !$NPCList[$_npcGen]>> <<set _text_output to `<span class="red">error-npcPenisSimple-${$_npcGen}</span>`>> <<elseif $NPCList[$_npcGen].chastity.penis is "chastity cage">> <<set _text_output to "caged penis">> <<elseif $NPCList[$_npcGen].chastity.penis.includes("chastity")>> <<set _text_output to $NPCList[$_npcGen].chastity.penis>> <<elseif npcHasStrapon($_npcGen)>> <<set _text_output to either("strap-on","strap-on cock")>> <<else>> <<set _text_output to either("penis","penis","cock","shaft")>> <</if>> <</silently>><<print _text_output>><</widget>> <<widget "npcPenisColored">> <<set $_npcGen to (_args[0] ?? $index)>> <<set $_ppcolor to "tan">> <<if !$NPCList[$_npcGen]>> <<set _text_output to `<span class="red">error-npcPenisColored-${$_npcGen}</span>`>> <<elseif $NPCList[$_npcGen].chastity.penis.includes("chastity")>> <<set $_ppcolor to "grey">> <<set _text_output to $NPCList[$_npcGen].chastity.penis>> <<elseif npcHasStrapon($_npcGen)>> /*<<set $_straponcolor to $NPCList[$_npcGen].penisdesc.split(" ")>> <<set $_ppcolor to $_straponcolor[1]>>*/ <<set $_ppcolor to $NPCList[$_npcGen].strapon.color>> <<if $_ppcolor is "fleshy">><<set $_ppcolor to "tan">><</if>> <<set _text_output to $NPCList[$_npcGen].penisdesc>> <<else>> <<set _text_output to $NPCList[$_npcGen].penisdesc>> <</if>> <span @class=$_ppcolor><b><<print _text_output>></b></span> <</widget>> <<widget "npcVagina">><<silently>> <<set $_npcGen to (_args[0] ?? $index)>> <<if !$NPCList[$_npcGen]>> <<set _text_output to `<span class="red">error-npcVagina-${$_npcGen}</span>`>> <<elseif $NPCList[$_npcGen].chastity.vagina.includes("chastity")>> <<set _text_output to $NPCList[$_npcGen].chastity.vagina>> <<else>> <<set _text_output to either("vagina","vagina","quim","pussy")>> <</if>> <</silently>><<print _text_output>><</widget>> <<widget "npcAnus">> <<set $_npcGen to (_args[0] ?? $index)>> <<if !$NPCList[$_npcGen]>> <<set _text_output to `<span class="red">error-npcAnus-${$_npcGen}</span>`>> <<elseif $NPCList[$_npcGen].chastity.anus.includes("shield")>> <<set _text_output to $NPCList[$_npcGen].chastity.anus>> <<else>> <<set _text_output to "ass">> <</if>> <<print _text_output>> <</widget>> <<widget "npcGenitals">><<silently>> <<set $_npcGen to (_args[0] ?? $index)>> <<if !$NPCList[$_npcGen]>> <<set _text_output to `<span class="red">error-npcGenitals-${$_npcGen}</span>`>> <<elseif $NPCList[$_npcGen].penis isnot "none" and $NPCList[$_npcGen].vagina isnot "none">> <<if _args[1] is "simple">> <<set $_text_output to "<<npcPenisSimple $_npcGen>> and <<npcVagina $_npcGen>>">> <<else>> <<set $_text_output to "<<npcPenis $_npcGen>> and <<npcVagina $_npcGen>>">> <</if>> <<elseif $NPCList[$_npcGen].penis isnot "none">> <<if _args[1] is "simple">> <<set $_text_output to "<<npcPenisSimple $_npcGen>>">> <<else>> <<set $_text_output to "<<npcPenis $_npcGen>>">> <</if>> <<else>> <<set $_text_output to "<<npcVagina $_npcGen>>">> <</if>> <</silently>><<print $_text_output>><</widget>> <<widget "npcChest">><<silently>> <<set $_npcGen to (_args[0] ?? $index)>> <<if !$NPCList[$_npcGen]>> <<set _text_output to `<span class="red">error-npcChest-${$_npcGen}</span>`>> <<elseif $NPCList[$_npcGen].pronoun is "m" or $NPCList[$_npcGen].breastsize is 0>> <<set _text_output to "chest">> <<else>> <<set _text_output to $NPCList[$_npcGen].breastsdesc>> <</if>> <</silently>><<print _text_output>><</widget>> <<widget "npcHairColour">><<silently>> <<if _args[0]>> <<switch C.npc[_args[0]].hairColour>> <<case "strawberryblond">> <<set _text_output to "strawberry blond">> <<case "platinumblond">> <<set _text_output to "platinum blond">> <<case "lightbrown">> <<set _text_output to "light brown">> <<default>> <<set _text_output to C.npc[_args[0]].hairColour>> <</switch>> <<else>> <<set _text_output to "phantasmal ghost colour because someone forgot to define an NPC for the npcHairColour widget, please inform Vrelnir">> <</if>> <</silently>><<print _text_output>><</widget>> <!-- Argument 0 is the appropriate NPCName or NPCList object. Argument 1 should be "upper", "lower", or "both" Argument 2, where appropriate, determines whether it's the player undressing the NPC or the NPC undressing themselves--> <<widget "npcClothesText">><<silently>> <<if _args[0]>> <<set $_npc to _args[0]>> <<set $_part to (_args[1] ? _args[1] : "both")>> <<switch $_part>> <<case "both">> <<set _text_output to setup.npcClothesSets.find(item => item.name === $_npc.clothes.set).desc>> <<case "upper">> <<set _text_output to $_npc.clothes.upper.name>> <<case "lower">> <<set _text_output to $_npc.clothes.lower.name>> <<default>> <<set _text_output to '<span class="red">ERROR: Invalid NPC clothing case. (NPC: $_npc.fullDescription, part called: $_part) Please inform PurityGuy</span>'>> <</switch>> <</if>> <</silently>><<print _text_output>><</widget>> <<widget "npcUndressText">><<silently>> <<if _args[0]>> <<set $_npc to _args[0]>> <<set $_part to (_args[1] ? _args[1] : "both")>> <<set $_self to (_args[2] ? true : false)>> <<set $_his to ($combat is 1 ? "<<hisselect $index>>" : "<<his>>")>> <<set _text_output to "">> <<if !$_npc.clothes>> <<set _text_output += '<span class="red">ERROR: NPC ($_npc.fullDescription) clothes are undefined! Please inform PurityGuy</span>'>> <<elseif $_part is "both">> <<set _text_output += ($_self ? "removes" : "remove")>> <<set _text_output += " $_his setup.npcClothesSets.find(item => item.name === $_npc.clothes.set).desc">> <<else>> <<set $_clothesAction to setup.npcClothesSets.find(item => item.name === $_npc.clothes.set).clothes[$_part].action>> <<switch $_clothesAction>> <<case "lift">><<set _actionText to ($_self ? "lifts" : "lift")>> <<case "pull">><<set _actionText to ($_self ? "pulls down" : "pull down")>> <<case "unbutton">><<set _actionText to ($_self ? "unbuttons" : "unbutton")>> <<case "unzip">><<set _actionText to ($_self ? "unzips" : "unzip")>> <<case "aside">><<set _actionText to ($_self ? "pushes aside" : "push aside")>> <<case "open">><<set _actionText to ($_self ? "opens" : "open")>> <<case "undo">><<set _actionText to ($_self ? "undoes" : "undo")>> <<case "unwrap">><<set _actionText to ($_self ? "unwraps" : "unwrap")>> <<default>><<set _actionText to '<span class="red">ERROR: Invalid NPC clothing action. (NPC: $_npc.fullDescription, part called: $_part, action: $_clothesAction) Please inform PurityGuy</span>'>> <</switch>> <<set _text_output += _actionText + " $_his $_npc.clothes[$_part].name">> <</if>> <</if>> <</silently>><<print _text_output>><</widget>> <<widget "npcRevealText">><<silently>> <<set $_npc to _args[0]>> <<set $_part to _args[1]>> /* can be "upper" or "lower" */ <<set $_mod to _args[2]>> <<set _text_output to "revealing ">> <<if $_mod is "name">> <<if $NPCNameList.includes($_npc.fullDescription)>> <<set _text_output += "$_npc.fullDescription's ">> <<elseif $_npc.name_known is 1>> <<set _text_output += "$_npc.name's ">> <<else>> <<set _text_output += "the $_npc.fullDescription's ">> <</if>> <<elseif $_mod is "desc">> <<if $NPCNameList.includes($_npc.fullDescription)>> <<set _text_output += "the $_npc.description's ">> <<else>> <<set _text_output += "the $_npc.fullDescription's ">> <</if>> <<else>> <<set _text_output += "<<his>> ">> <</if>> <<if $_part is "both">> <<set $_chest to ($_npc.pronoun is "m" || $_npc.breastsize is 0 ? "chest" : $_npc.breastsdesc)>> <<set _text_output += "$_chest and ">> <</if>> <<if ["both","lower"].includes($_part)>> <<if $_npc.penis isnot "none" and $_npc.vagina isnot "none">> <<set _text_output += "$_npc.penisdesc and <<his>> ">> <<set _text_output += $enemyarousal gte 40 ? "moistened pussy" : "pussy">> <<if $_npc.chastity.penis.includes("chastity")>> <<set _text_output += ", inside of a $_npc.chastity.penis">> <</if>> <<elseif $_npc.penis isnot "none">> <<set _text_output += $_npc.penisdesc>> <<if $_npc.penisdesc.includes("strap-on")>> <!-- placeholder --> <<else>> <<if $_npc.chastity.penis.includes("chastity")>> <<set _text_output += ", inside of a $_npc.chastity.penis">> <<else>> <<set _text_output += ", fully erect">> <</if>> <</if>> <<elseif $_npc.vagina isnot "none">> <<set _text_output += $enemyarousal gte 40 ? "moistened pussy" : "pussy">> <<if $_npc.chastity.vagina.includes("chastity")>> <<set _text_output += " behind a $_npc.chastity.vagina">> <</if>> <</if>> <<else>> <<set $_chest to ($_npc.pronoun is "m" || $_npc.breastsize is 0 ? "chest" : $_npc.breastsdesc)>> <<set _text_output += "$_chest">> <</if>> <!-- intentionally omitting a period, for flexibility; do not forget to add one after you use this widget --> <</silently>>_text_output<</widget>> <<widget "npcGenitalReaction">> <<set $_npc to _args[0]>> <<if !$worn.face.type.includes("blindfold")>> <<if $_npc.penis isnot "none">> <<switch $_npc.penissize>> <<case 4>> <span class="red"> <<print setup.npcPenisRemarks["big"].random()>></span> <<case 1>> <span class="green"> <<print setup.npcPenisRemarks["small"].random()>></span> <<default>> <</switch>> <</if>> <<if $_npc.vagina isnot "none">> <!-- Placeholder --> <</if>> <</if>> <</widget>> <<widget "npcHurt">> <<switch _args[0]>> <<case "Robin">> <<set _text_output to "upset about "+$robin.hurtReason>> <<default>> <<set _text_output to either("hurt","upset")>> <</switch>> <<print _text_output>> <</widget>> <<widget "gbeauty">> <<if !$settings.blindStatsEnabled>> | <span class="green">+ Beauty</span> <</if>> <</widget>> <<widget "ggbeauty">> <<if !$settings.blindStatsEnabled>> | <span class="green">+ + Beauty</span> <</if>> <</widget>> <<widget "gggbeauty">> <<if !$settings.blindStatsEnabled>> | <span class="green">+ + + Beauty</span> <</if>> <</widget>> <<widget "gseduction">> <<if !$settings.blindStatsEnabled>> | <span class="green">+ Seduction</span> <</if>> <</widget>> <<widget "ggseduction">> <<if !$settings.blindStatsEnabled>> | <span class="green">+ + Seduction</span> <</if>> <</widget>> <<widget "gggseduction">> <<if !$settings.blindStatsEnabled>> | <span class="green">+ + + Seduction</span> <</if>> <</widget>> <<widget "gskulduggery">> <<if !$settings.blindStatsEnabled>> | <span class="green">+ Skulduggery</span> <</if>> <</widget>> <<widget "ggskulduggery">> <<if !$settings.blindStatsEnabled>> | <span class="green">+ + Skulduggery</span> <</if>> <</widget>> <<widget "gggskulduggery">> <<if !$settings.blindStatsEnabled>> | <span class="green">+ + + Skulduggery</span> <</if>> <</widget>> <!-- usage <<number -69>> -> "negative sixty-nine" <<number 69 silent>> -> _text_output = "sixty-nine" --> <<widget "number">><<silently>> <<set $_x to _args[0]>> <<if $_x lte -100 or $_x gte 100 or Math.floor($_x) isnot $_x>> <<set _text_output to ""+$_x>> <<else>> <<if $_x lt 0>> <<set _text_output to "negative ">> <<set $_x to -$_x>> <<else>> <<set _text_output to "">> <</if>> <<if $_x is 0>> <<set _text_output to "zero">> <<elseif $_x gte 10 and $_x lte 20>> <<set _text_output to ["ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen", "twenty"][$_x-10]>> <<else>> <<set $_ones to ($_x % 10)>> <<set $_tens to ($_x - $_ones)/10>> <<set $_tenword to ["", "", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety"][$_tens]>> <<set $_oneword to ["", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"][$_ones]>> <<if $_tenword and $_oneword>> <<set _text_output to $_tenword + "-" + $_oneword>> <<else>> <<set _text_output to $_tenword + "" + $_oneword>> <</if>> <</if>> <</if>> <</silently>><<if _args[1] isnot "silent">><<print _text_output>><</if>><</widget>> <<widget "Number">><<number _args[0] silent>><<capitalise>><</widget>> <<widget "location_text">> <<switch $location>> <<case alley>> <<set _text_output to "alley">> <<case forest lake>> <<set _text_output to "forest">> <<case moor>> <<set _text_output to "moor">> <<default>> <<set _text_output to "street">> <</switch>> <<print _text_output>> <</widget>> <<widget "nude_text">> <<if $worn.under_upper.exposed gte 1 and $worn.upper.exposed gte 2 and $worn.over_upper.exposed gte 2>> <<if $worn.under_lower.exposed gte 1 and $worn.lower.exposed gte 2 and $worn.over_lower.exposed gte 2>> <<set _text_output to "naked">> <<else>> <<set _text_output to "topless">> <</if>> <<else>> <<if $worn.under_lower.exposed gte 1 and $worn.lower.exposed gte 2 and $worn.over_lower.exposed gte 2>> <<set _text_output to "bottomless">> <<else>> <<set _text_output to "underwear">> <</if>> <</if>> <<print _text_output>> <</widget>> <<widget "cast_aside_clothes">> <<if $combatgoal is "strip">> <span class="purple"><<He>> bundles the fabric under <<his>> arm.</span> <<else>> <span class="purple"><<He>> casts aside the fabric.</span> <</if>> <</widget>> <<widget "plant_details">><<silently>> <<if ($location is "moor" and _args[0] isnot "forest" and _args[0] isnot "bog") or _args[0] is "moor">> <<switch Time.season>> <<case "spring">> <<set _text_output to "yellow willow leaves">> <<case "summer">> <<set _text_output to "small purple flowers">> <<case "autumn">> <<set _text_output to "large amber flowers">> <<case "winter">> <<set _text_output to "straw-coloured reeds">> <</switch>> <<elseif ($location is "bog" and _args[0] isnot "forest" and _args[0] isnot "moor") or _args[0] is "bog">> <<switch Time.season>> <<case "spring">> <<set _text_output to "budding twigs">> <<case "summer" "autimn">> <<set _text_output to "braided bundles of wet leaves">> <<case "winter">> <<set _text_output to "briars and thorns">> <</switch>> <<else>> <<switch Time.season>> <<case "spring">> <<set _text_output to "pink blossoms">> <<case "summer">> <<set _text_output to "leaves and flowers">> <<case "autumn">> <<set _text_output to "orange and red leaves">> <<case "winter">> <<set _text_output to "small red berries">> <</switch>> <</if>> <</silently>><<print _text_output>><</widget>> <<widget "Plant_details">><<silently>> <<plant_details _args[0]>><<capitalise>> <</silently>><<print _text_output>><</widget>> <<widget "seasonal_beverage">><<silently>> <<switch Time.season>> <<case "spring">> <<set _text_output to "strawberry lemonade">> <<case "summer">> <<set _text_output to "lemonade">> <<case "autumn">> <<set _text_output to "mulled apple cider">> <<case "winter">> <<set _text_output to "hot chocolate">> <</switch>> <</silently>><<print _text_output>><</widget>> <<widget "tower_creature_text">> <<silently>> <<if $NPCList[0].monster is "monster">> <<set _text_output to "horned " + ($NPCList[0].gender is "m" ? "boy" : "girl")>> <<else>> <<set _text_output to either("creature","monster","beast")>> <</if>> <</silently>> <<print _text_output>> <</widget>> <<widget "getTransformParts">> <<set _tfs to ["wolf", "cat", "fox", "bird", "cow", "demon", "fallenAngel", "angel"]>> <<set _tfParts to []>> <<for _i = 0 ; _i lt _tfs.length ; _i++>> <<if (_args[0] is true or !_args[0]) and $transformationParts[_tfs[_i]].ears isnot undefined and $transformationParts[_tfs[_i]].ears isnot "hidden" and $transformationParts[_tfs[_i]].ears isnot "disabled">> <<set _tfParts.push("ears")>> <</if>> <<if (_args[1] is true or !_args[0]) and $transformationParts[_tfs[_i]].wings isnot undefined and $transformationParts[_tfs[_i]].wings isnot "hidden" and $transformationParts[_tfs[_i]].wings isnot "disabled">> <<set _tfParts.push("wings")>> <</if>> <<if (_args[2] is true or !_args[0]) and $transformationParts[_tfs[_i]].tail isnot undefined and $transformationParts[_tfs[_i]].tail isnot "hidden" and $transformationParts[_tfs[_i]].tail isnot "disabled">> <<set _tfParts.push("tail")>> <</if>> <<if (_args[3] is true or !_args[0]) and $transformationParts[_tfs[_i]].halo isnot undefined and $transformationParts[_tfs[_i]].halo isnot "hidden" and $transformationParts[_tfs[_i]].halo isnot "disabled">> <<set _tfParts.push("halo")>> <</if>> <<if (_args[4] is true or !_args[0]) and $transformationParts[_tfs[_i]].horns isnot undefined and $transformationParts[_tfs[_i]].horns isnot "hidden" and $transformationParts[_tfs[_i]].horns isnot "disabled">> <<set _tfParts.push("horns")>> <</if>> <<if (_args[5] is true or !_args[0]) and $transformationParts[_tfs[_i]].plumage isnot undefined and $transformationParts[_tfs[_i]].plumage isnot "hidden" and $transformationParts[_tfs[_i]].plumage isnot "disabled">> <<set _tfParts.push("plumage")>> <</if>> <<if (_args[6] is true or !_args[0]) and $transformationParts[_tfs[_i]].malar isnot undefined and $transformationParts[_tfs[_i]].malar isnot "hidden" and $transformationParts[_tfs[_i]].malar isnot "disabled">> <<set _tfParts.push("malar")>> <</if>> <<if (_args[7] is true or !_args[0]) and $transformationParts[_tfs[_i]].cheeks isnot undefined and $transformationParts[_tfs[_i]].cheeks isnot "hidden" and $transformationParts[_tfs[_i]].cheeks isnot "disabled">> <<set _tfParts.push("cheeks")>> <</if>> <<if (_args[8] is true or !_args[0]) and $transformationParts[_tfs[_i]].eyes isnot undefined and $transformationParts[_tfs[_i]].eyes isnot "hidden" and $transformationParts[_tfs[_i]].eyes isnot "disabled">> <<set _tfParts.push("eyes")>> <</if>> <<if (_args[9] is true or !_args[0]) and $transformationParts[_tfs[_i]].heterochromia isnot undefined and $transformationParts[_tfs[_i]].heterochromia isnot "hidden" and $transformationParts[_tfs[_i]].heterochromia isnot "disabled">> <<set _tfParts.push("heterochromia")>> <</if>> <<if (_args[10] is true or !_args[0]) and $transformationParts[_tfs[_i]].pubes isnot undefined and $transformationParts[_tfs[_i]].pubes isnot "hidden" and $transformationParts[_tfs[_i]].pubes isnot "disabled">> <<set _tfParts.push("pubes")>> <</if>> <<if (_args[11] is true or !_args[0]) and $transformationParts[_tfs[_i]].pits isnot undefined and $transformationParts[_tfs[_i]].pits isnot "hidden" and $transformationParts[_tfs[_i]].pits isnot "disabled">> <<set _tfParts.push("pits")>> <</if>> <</for>> <</widget>> <!-- Jimmy: Commented out for deprecation. Use: ?vulva See 03-JavaScript/Templates/.. <<widget "vulva">> <<print either("vulva","vulva","quim","flange","pussy")>> <</widget>> --> <<widget "penisSimple">><<silently>> <<set _text_output to (playerHasStrapon() ? "strap-on": "penis")>> <</silently>><<print _text_output>><</widget>> <<widget "gfabric">> <<if !$settings.blindStatsEnabled>> | <span class="green">+ Fabric</span> <</if>> <</widget>> <<widget "passPercent">> <<if !$settings.blindStatsEnabled>> | <<if _args[0] gt 0>> <span class="green">+ _args[0]% pass chance</span> <<else>> <span class="red">- <<= Math.abs(_args[0])>>% pass chance</span> <</if>> <</if>> <</widget>> <<widget "galcohol">> <<if !$settings.blindStatsEnabled>> | <span class="purple">+ Alcohol</span> <</if>> <</widget>> <<widget "ggalcohol">> <<if !$settings.blindStatsEnabled>> | <span class="purple">+ + Alcohol</span> <</if>> <</widget>> <<widget "gggalcohol">> <<if !$settings.blindStatsEnabled>> | <span class="purple">+ + + Alcohol</span> <</if>> <</widget>> <<widget "gdrugged">> <<if !$settings.blindStatsEnabled>> | <span class="pink">+ Drugged</span> <</if>> <</widget>> <<widget "ggdrugged">> <<if !$settings.blindStatsEnabled>> | <span class="pink">+ + Drugged</span> <</if>> <</widget>> <<widget "gggdrugged">> <<if !$settings.blindStatsEnabled>> | <span class="pink">+ + + Drugged</span> <</if>> <</widget>> <<widget "cute">><<silently>> <<if $player.gender_appearance is "f">> <<set _text_output to (random(1) is 0 ? "cute" : "pretty")>> <<else>> <<set _text_output to (random(1) is 0 ? "cute" : "handsome")>> <</if>> <</silently>>_text_output<</widget>> <<widget "a_role">><<silently>> <<if $role and $role isnot "normal">> <<if ["A","E","I","O","U"].some(role => $role.startsWith(role))>> <<set _text_output to "an " + $role>> <<else>> <<set _text_output to "a " + $role>> <</if>> <<else>> <<personsimple "normal">> <<set _text_output to "a " + _text_output>> <</if>> <</silently>><<print _text_output>><</widget>> <<widget "A_role">><<silently>> <<a_role>><<capitalise>> <</silently>><<print _text_output>><</widget>> <<widget "bred">> <<if $settings.pregnancySpeechEnabled>> <<if random(1, 10000) is 10000>> <<set _text_output to "bread">> <<else>> <<set _text_output to "bred">> <</if>> <<else>> <<set _text_output to "fucked">> <</if>> <<print _text_output>> <</widget>> <<widget "dangerousText">> <<if !$settings.blindStatsEnabled>> | <span class="red">Dangerous</span> <</if>> <</widget>> <<widget "orgasmTrait">> <<if !$settings.blindStatsEnabled>> | <<if $submissive lte 850>> <span class="lewd">Hedonist</span> <<else>> <span class="lewd">Orgasm Addict</span> <</if>> <</if>> <</widget>> <<widget "chokeTrait">> <<if !$settings.blindStatsEnabled>> | <span class="lewd">Asphyxiophilia</span> <</if>> <</widget>> <<widget "ejacTrait">> <<if !$settings.blindStatsEnabled>> | <<if $submissive lte 850>> <span class="lewd">Cumoisseur</span> <<else>> <span class="lewd">Cum Dump</span> <</if>> <</if>> <</widget>> <<widget "molestTrait">> <<if !$settings.blindStatsEnabled>> | <<if $submissive lte 850>> <span class="lewd">Graceful</span> <<else>> <span class="lewd">Plaything</span> <</if>> <</if>> <</widget>> <<widget "rapeTrait">> <<if !$settings.blindStatsEnabled>> | <<if $submissive lte 850>> <span class="lewd">Survivor</span> <<else>> <span class="lewd">Fucktoy</span> <</if>> <</if>> <</widget>> <<widget "bestialityTrait">> <<if !$settings.blindStatsEnabled>> | <<if $submissive lte 850>> <span class="lewd">Tamer</span> <<else>> <span class="lewd">Bitch</span> <</if>> <</if>> <</widget>> <<widget "tentacleTrait">> <<if !$settings.blindStatsEnabled>> | <<if $submissive lte 850>> <span class="lewd">Witch</span> <<else>> <span class="lewd">Prey</span> <</if>> <</if>> <</widget>> <<widget "voreTrait">> <<if !$settings.blindStatsEnabled>> | <<if $submissive lte 850>> <span class="lewd">Daredevil</span> <<else>> <span class="lewd">Tasty</span> <</if>> <</if>> <</widget>> <<widget "milkTrait">> <<if !$settings.blindStatsEnabled>> | <<if $submissive lte 850>> <span class="lewd">Milk Enthusiast</span> <<else>> <span class="lewd">Milk Addict</span> <</if>> <</if>> <</widget>> <<widget "stockholmTrait">> <<if !$settings.blindStatsEnabled>> | <span class="gold">Stockholm Syndrome<<if _args[0]>>: <<print _args[0]>><</if>></span> <</if>> <</widget>> <<widget "note">> <<if !$settings.blindStatsEnabled and _args[0]>> | <span @class="_args[1]"><<print _args[0]>></span> <</if>> <</widget>> <<widget "furnitureWarning">> <<switch _args[0]>> <<case "decoration">> <<set $_furniture to Furniture.get('decoration')>> <<case "windowsill">> <<set $_furniture to Furniture.get('windowsill')>> <<case "wallpaper">> <<set $_furniture to $furniture.bedroom.wallpaper>> <<case "poster">> <<set $_furniture to $furniture.bedroom.poster>> <</switch>> <<if !$settings.blindStatsEnabled and $_furniture>> | <span class="blue">This will replace your <<if _args[0] is "wallpaper" or _args[0] is "poster">>current <<print _args[0]>><<else>><<print $_furniture.name>><</if>></span> <</if>> <</widget>> <<widget "horsegenitalsdesc">><<silently>> <<if $NPCList[0].penis isnot "none">> <<if _args[0]>> /* Size */ <<set _text_output to either("enormous","huge","massive")>> <<else>> <<set _text_output to either("engorged","throbbing","swollen")>> <</if>> <<else>> <<if _args[0]>> <<set _text_output to either("plump", "puffy", "pillowy")>> <<else>> <<set _text_output to either("glistening","dripping","soaked","quivering")>> <</if>> <</if>> <</silently>><<print _text_output>><</widget>> <<widget "fadeText">> <span class="originalText fade-out">_args[0]</span> <span class="changedText" hidden="">_args[1]</span> <<set _delay to (_delay ? _delay : []).concat(_args[2] ? _args[2] : 1)>> <<script>> T.currentPassage = State.passage; $(document).one(':passageend', function(ev) { const originalTargets = [...document.getElementsByClassName('originalText')]; const changedTargets = [...document.getElementsByClassName('changedText')]; originalTargets.forEach((ele, index) => { if (ele instanceof HTMLElement) { setTimeout(() => { if (State.passage === T.currentPassage) { ele.remove(); changedTargets[index].hidden = false; changedTargets[index].classList.add('fade-in') } }, T.delay[index] * 1000); ele.addEventListener('animationend', function() { ele.style.opacity = '0'; }); } }); }); <</script>> <</widget>> <<widget "badEndProse">><<silently>> <<switch _args[0]>> <<case "Underground Farm">><<set _text_output to "Remy's farm">><<if _args[1] is "at">><<set _text_output to "at " + _text_output>><</if>> <<case "Eden">><<set _text_output to "Eden's cabin">><<if _args[1] is "at">><<set _text_output to "at " + _text_output>><</if>> <<case "Kylar Abduction">><<set _text_output to "Kylar's manor">><<if _args[1] is "at">><<set _text_output to "at " + _text_output>><</if>> <<case "Underground Dungeon">><<set _text_output to "the underground brothel">><<if _args[1] is "at">><<set _text_output to "in " + _text_output>><</if>> <<case "Mines">><<set _text_output to "the caves below the flats">><<if _args[1] is "at">><<set _text_output to "in " + _text_output>><</if>> <<case "Asylum">><<set _text_output to "the asylum in the forest">><<if _args[1] is "at">><<set _text_output to "at " + _text_output>><</if>> <<case "Prison">><<set _text_output to "prison">><<if _args[1] is "at">><<set _text_output to "in " + _text_output>><</if>> <<case "Pound">><<set _text_output to "the dog pound">><<if _args[1] is "at">><<set _text_output to "in " + _text_output>><</if>> <<case "Island">><<set _text_output to "the nearby island">><<if _args[1] is "at">><<set _text_output to "on " + _text_output>><</if>> <<case "Pirate Ship">><<set _text_output to "the pirate ship">><<if _args[1] is "at">><<set _text_output to "on " + _text_output>><</if>> <<case "Wolf Cave">><<set _text_output to "the cave of wolves">><<if _args[1] is "at">><<set _text_output to "in " + _text_output>><</if>> <<default>><<set _text_output to "the " + _args[0].toLowerCase()>><<if _args[1] is "at">><<set _text_output to "at " + _text_output>><</if>> <</switch>> <<if _args[2] is "cap">><<capitalise>><</if>> <</silently>><<print _text_output>><</widget>> <<widget "insufficientStat">><<silently>> /* Args 0-3 are Stat, Task, Color (optional), and Custom Stat (optional, only use when Stat arg is 'custom')*/ /* Example: <<insufficientStat "promiscuity" "to accept such an offer">> ----------------------> would print (in blue): 'You are not promiscuous enough to accept such an offer'*/ /* Example: <<insufficientStat "deviancy" "to do as you were told" "red">> ------------------> would print (in red): 'You are not deviant enough to do as you were told' */ /* Example: <<insufficientStat "housekeeping" "to make arrangements" "purple">> --------------> would print (in purple):'You are not a skilled enough housekeeper to make arrangements' */ /* Example: <<insufficientStat "custom" "to be worthy" "pink" "pious or graceful">> ----------> would print (in pink): 'You are not pious or graceful enough to be worthy' */ /* Example: <<insufficientStat "custom" "to be noticed" "green" "beautiful, alluring, or skilled">> would print (in green): 'You are not beautiful, alluring, or skilled enough to be noticed' */ <<set $_color to _args[2] ? _args[2] : "blue">> <<set $_text_output to "You are not ">> <<switch _args[0]>> <<case "promiscuity">> <<set $_text_output += "promiscuous enough">> <<case "exhibitionism">> <<set $_text_output += "exhibitionistic enough">> <<case "deviancy">> <<set $_text_output += "deviant enough">> <<case "purity">> <<set $_text_output += "pure enough">> <<case "beauty">> <<set $_text_output += "beautiful enough">> <<case "physique">> <<set $_text_output += "strong enough">> <<case "willpower">> <<set $_text_output += "strong willed enough">> <<case "awareness">> <<set $_text_output += "knowledgeable enough">> <<case "skulduggery">> <<set $_text_output += "a skilled enough thief">> <<case "dancing">> <<set $_text_output += "a skilled enough dancer">> <<case "swimming">> <<set $_text_output += "a strong enough swimmer">> <<case "athletics">> <<set $_text_output += "athletic enough">> <<case "tending">> <<set $_text_output += "a skilled enough farmer">> <<case "housekeeping">> <<set $_text_output += "a skilled enough housekeeper">> <<case "science">> <<set $_text_output += "educated enough about science">> <<case "maths">> <<set $_text_output += "educated enough about maths">> <<case "english">> <<set $_text_output += "educated enough about English">> <<case "history">> <<set $_text_output += "educated enough about history">> <<case "submissive">> <<set $_text_output += "defiant enough">> <<case "trust">> <<set $_text_output += "trusted enough">> <<case "custom">> /* Only use this for explicitly non-standard cases, like those that need multiple stats printed */ <<set $_text_output +="_args[3] enough">> <<default>> <<set $_text_output += "lewd enough">> <</switch>> <<set $_text_output += " _args[1].">> /* Throws an error if 'custom' stat input is being used incorrectly */ <<if _args[3] and _args[0] isnot "custom">> <<set $_color to "red">> <<set $_text_output to "Syntax Error: Inputted custom stat '_args[3]' without using the 'custom' stat argument in the \"insufficientStat\" widget. Please report this.">> <<elseif _args[0] is "custom" and !_args[3]>> <<set $_color to "red">> <<set $_text_output to "Syntax Error: Used 'custom' stat argument without inputting a custom stat in the \"insufficientStat\" widget. Please report this.">> <</if>> <</silently>><<if $_text_output>><span @class="$_color"><<print $_text_output>></span><</if>><</widget>> <<widget "anxiety_disorder_text">><<if !$settings.blindStatsEnabled>> | <span class="red">Anxiety Disorder</span> <</if>><</widget>> <<widget "severe_anxiety_disorder_text">><<if !$settings.blindStatsEnabled>> | <span class="red">Severe Anxiety Disorder</span> <</if>><</widget>> <<widget "ordinalList">><<silently>> <<if _args[1] is "cap">> <<set $_and to _args[2] or "and">> <<set $_comma to _args[3] isnot undefined ? _args[3] : true>> <<else>> <<set $_and to _args[1] or "and">> <<set $_comma to _args[2] isnot undefined ? _args[2] : true>> <</if>> <<if typeof _args[0] isnot "object">> <<set _text_output to '<span class="red">Syntax Error: args0 "' + _args[0] + '" is not array.</span>'>> <<elseif !_args[0].length>> <<set _text_output to '<span class="red">Syntax Error: args0 "' + _args[0] + '" is either an object or an empty array.</span>'>> <<else>> <<set $_list to []>> <<for _i range _args[0]>> <<set $_list.push(ordinalWritten(_i))>> <</for>> <<set _text_output to formatList($_list, $_and, $_comma)>> <<if _args[1] is "cap">><<capitalise>><</if>> <</if>> <</silently>><<print _text_output>><</widget>> <<widget "hypnosisText">> <<if V.options.textAnimsAll && V.options.textAnimsHypno>><<exit '<span @class="basicHypnoCss()">' + _args[0] + '</span>'>><</if>> <span @class="basicHypnoCss()"><<hypnosisicon "inline">><<= _args[0]>><<hypnosisicon "inline">></span> <</widget>> <<widget "ampm_text">><<silently>> <<if Time.hour is 0>> <<if Time.minute lte 7>> <<set _text_output to "midnight">> <<elseif Time.minute lte 22>> <<set _text_output to "quarter past twelve in the morning">> <<elseif Time.minute lte 37>> <<set _text_output to "half past twelve in the morning">> <<elseif Time.minute lte 52>> <<set _text_output to "quarter to one in the morning">> <<else>> <<set _text_output to "one in the morning">> <</if>> <<elseif Time.hour is 1>> <<if Time.minute lte 7>> <<set _text_output to "one in the morning">> <<elseif Time.minute lte 22>> <<set _text_output to "quarter past one in the morning">> <<elseif Time.minute lte 37>> <<set _text_output to "half past one in the morning">> <<elseif Time.minute lte 52>> <<set _text_output to "quarter to two in the morning">> <<else>> <<set _text_output to "two in the morning">> <</if>> <<elseif Time.hour is 2>> <<if Time.minute lte 7>> <<set _text_output to "two in the morning">> <<elseif Time.minute lte 22>> <<set _text_output to "quarter past two in the morning">> <<elseif Time.minute lte 37>> <<set _text_output to "half past two in the morning">> <<elseif Time.minute lte 52>> <<set _text_output to "quarter to three in the morning">> <<else>> <<set _text_output to "three in the morning">> <</if>> <<elseif Time.hour is 3>> <<if Time.minute lte 7>> <<set _text_output to "three in the morning">> <<elseif Time.minute lte 22>> <<set _text_output to "quarter past three in the morning">> <<elseif Time.minute lte 37>> <<set _text_output to "half past three in the morning">> <<elseif Time.minute lte 52>> <<set _text_output to "quarter to four in the morning">> <<else>> <<set _text_output to "four in the morning">> <</if>> <<elseif Time.hour is 4>> <<if Time.minute lte 7>> <<set _text_output to "four in the morning">> <<elseif Time.minute lte 22>> <<set _text_output to "quarter past four in the morning">> <<elseif Time.minute lte 37>> <<set _text_output to "half past four in the morning">> <<elseif Time.minute lte 52>> <<set _text_output to "quarter to five in the morning">> <<else>> <<set _text_output to "five in the morning">> <</if>> <<elseif Time.hour is 5>> <<if Time.minute lte 7>> <<set _text_output to "five in the morning">> <<elseif Time.minute lte 22>> <<set _text_output to "quarter past five in the morning">> <<elseif Time.minute lte 37>> <<set _text_output to "half past five in the morning">> <<elseif Time.minute lte 52>> <<set _text_output to "quarter to six in the morning">> <<else>> <<set _text_output to "six in the morning">> <</if>> <<elseif Time.hour is 6>> <<if Time.minute lte 7>> <<set _text_output to "six in the morning">> <<elseif Time.minute lte 22>> <<set _text_output to "quarter past six in the morning">> <<elseif Time.minute lte 37>> <<set _text_output to "half past six in the morning">> <<elseif Time.minute lte 52>> <<set _text_output to "quarter to seven in the morning">> <<else>> <<set _text_output to "seven in the morning">> <</if>> <<elseif Time.hour is 7>> <<if Time.minute lte 7>> <<set _text_output to "seven in the morning">> <<elseif Time.minute lte 22>> <<set _text_output to "quarter past seven in the morning">> <<elseif Time.minute lte 37>> <<set _text_output to "half past seven in the morning">> <<elseif Time.minute lte 52>> <<set _text_output to "quarter to eight in the morning">> <<else>> <<set _text_output to "eight in the morning">> <</if>> <<elseif Time.hour is 8>> <<if Time.minute lte 7>> <<set _text_output to "eight in the morning">> <<elseif Time.minute lte 22>> <<set _text_output to "quarter past eight in the morning">> <<elseif Time.minute lte 37>> <<set _text_output to "half past eight in the morning">> <<elseif Time.minute lte 52>> <<set _text_output to "quarter to nine in the morning">> <<else>> <<set _text_output to "nine in the morning">> <</if>> <<elseif Time.hour is 9>> <<if Time.minute lte 7>> <<set _text_output to "nine in the morning">> <<elseif Time.minute lte 22>> <<set _text_output to "quarter past nine in the morning">> <<elseif Time.minute lte 37>> <<set _text_output to "half past nine in the morning">> <<elseif Time.minute lte 52>> <<set _text_output to "quarter to ten in the morning">> <<else>> <<set _text_output to "ten in the morning">> <</if>> <<elseif Time.hour is 10>> <<if Time.minute lte 7>> <<set _text_output to "ten in the morning">> <<elseif Time.minute lte 22>> <<set _text_output to "quarter past ten in the morning">> <<elseif Time.minute lte 37>> <<set _text_output to "half past ten in the morning">> <<elseif Time.minute lte 52>> <<set _text_output to "quarter to eleven in the morning">> <<else>> <<set _text_output to "eleven in the morning">> <</if>> <<elseif Time.hour is 11>> <<if Time.minute lte 7>> <<set _text_output to "eleven in the morning">> <<elseif Time.minute lte 22>> <<set _text_output to "quarter past eleven in the morning">> <<elseif Time.minute lte 37>> <<set _text_output to "half past eleven in the morning">> <<elseif Time.minute lte 52>> <<set _text_output to "quarter to twelve in the morning">> <<else>> <<set _text_output to "noon">> <</if>> <<elseif Time.hour is 12>> <<if Time.minute lte 7>> <<set _text_output to "noon">> <<elseif Time.minute lte 22>> <<set _text_output to "quarter past twelve in the afternoon">> <<elseif Time.minute lte 37>> <<set _text_output to "half past twelve in the afternoon">> <<elseif Time.minute lte 52>> <<set _text_output to "quarter to one in the afternoon">> <<else>> <<set _text_output to "one in the afternoon">> <</if>> <<elseif Time.hour is 13>> <<if Time.minute lte 7>> <<set _text_output to "one in the afternoon">> <<elseif Time.minute lte 22>> <<set _text_output to "quarter past one in the afternoon">> <<elseif Time.minute lte 37>> <<set _text_output to "half past one in the afternoon">> <<elseif Time.minute lte 52>> <<set _text_output to "quarter to two in the afternoon">> <<else>> <<set _text_output to "two in the afternoon">> <</if>> <<elseif Time.hour is 14>> <<if Time.minute lte 7>> <<set _text_output to "two in the afternoon">> <<elseif Time.minute lte 22>> <<set _text_output to "quarter past two in the afternoon">> <<elseif Time.minute lte 37>> <<set _text_output to "half past two in the afternoon">> <<elseif Time.minute lte 52>> <<set _text_output to "quarter to three in the afternoon">> <<else>> <<set _text_output to "three in the afternoon">> <</if>> <<elseif Time.hour is 15>> <<if Time.minute lte 7>> <<set _text_output to "three in the afternoon">> <<elseif Time.minute lte 22>> <<set _text_output to "quarter past three in the afternoon">> <<elseif Time.minute lte 37>> <<set _text_output to "half past three in the afternoon">> <<elseif Time.minute lte 52>> <<set _text_output to "quarter to four in the afternoon">> <<else>> <<set _text_output to "four in the afternoon">> <</if>> <<elseif Time.hour is 16>> <<if Time.minute lte 7>> <<set _text_output to "four in the afternoon">> <<elseif Time.minute lte 22>> <<set _text_output to "quarter past four in the afternoon">> <<elseif Time.minute lte 37>> <<set _text_output to "half past four in the afternoon">> <<elseif Time.minute lte 52>> <<set _text_output to "quarter to five in the afternoon">> <<else>> <<set _text_output to "five in the afternoon">> <</if>> <<elseif Time.hour is 17>> <<if Time.minute lte 7>> <<set _text_output to "five in the afternoon">> <<elseif Time.minute lte 22>> <<set _text_output to "quarter past five in the afternoon">> <<elseif Time.minute lte 37>> <<set _text_output to "half past five in the afternoon">> <<elseif Time.minute lte 52>> <<set _text_output to "quarter to six in the afternoon">> <<else>> <<set _text_output to "six in the afternoon">> <</if>> <<elseif Time.hour is 18>> <<if Time.minute lte 7>> <<set _text_output to "six in the evening">> <<elseif Time.minute lte 22>> <<set _text_output to "quarter past six in the evening">> <<elseif Time.minute lte 37>> <<set _text_output to "half past six in the evening">> <<elseif Time.minute lte 52>> <<set _text_output to "quarter to seven in the evening">> <<else>> <<set _text_output to "seven in the evening">> <</if>> <<elseif Time.hour is 19>> <<if Time.minute lte 7>> <<set _text_output to "seven in the evening">> <<elseif Time.minute lte 22>> <<set _text_output to "quarter past seven in the evening">> <<elseif Time.minute lte 37>> <<set _text_output to "half past seven in the evening">> <<elseif Time.minute lte 52>> <<set _text_output to "quarter to eight in the evening">> <<else>> <<set _text_output to "eight in the evening">> <</if>> <<elseif Time.hour is 20>> <<if Time.minute lte 7>> <<set _text_output to "eight in the evening">> <<elseif Time.minute lte 22>> <<set _text_output to "quarter past eight in the evening">> <<elseif Time.minute lte 37>> <<set _text_output to "half past eight in the evening">> <<elseif Time.minute lte 52>> <<set _text_output to "quarter to nine in the evening">> <<else>> <<set _text_output to "nine in the evening">> <</if>> <<elseif Time.hour is 21>> <<if Time.minute lte 7>> <<set _text_output to "nine in the evening">> <<elseif Time.minute lte 22>> <<set _text_output to "quarter past nine in the evening">> <<elseif Time.minute lte 37>> <<set _text_output to "half past nine in the evening">> <<elseif Time.minute lte 52>> <<set _text_output to "quarter to ten in the evening">> <<else>> <<set _text_output to "ten in the evening">> <</if>> <<elseif Time.hour is 22>> <<if Time.minute lte 7>> <<set _text_output to "ten in the evening">> <<elseif Time.minute lte 22>> <<set _text_output to "quarter past ten in the evening">> <<elseif Time.minute lte 37>> <<set _text_output to "half past ten in the evening">> <<elseif Time.minute lte 52>> <<set _text_output to "quarter to eleven in the evening">> <<else>> <<set _text_output to "eleven in the evening">> <</if>> <<elseif Time.hour is 23>> <<if Time.minute lte 7>> <<set _text_output to "eleven in the evening">> <<elseif Time.minute lte 22>> <<set _text_output to "quarter past eleven in the evening">> <<elseif Time.minute lte 37>> <<set _text_output to "half past eleven in the evening">> <<elseif Time.minute lte 52>> <<set _text_output to "quarter to twelve in the evening">> <<else>> <<set _text_output to "midnight">> <</if>> <</if>> <</silently>><<print _text_output>><</widget>><<widget "init_tips">> <<if !setup.tips>> <<set setup.tips to {}>> <!-- General tips --> <<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.", "Feelings of 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 school library.", "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 <span class=\"def\">defiant</span> acts cause more pain if you have a good physique.", "Tactical use of <span class=\"brat\">bratty</span> 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.", "<span class=\"sub\">Submissive</span> and <span class=\"meek\">meek</span> acts will make someone trust you more, making them easier to influence.", "You can escape from most encounters by inflicting enough pain through <span class=\"def\">defiant</span> 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 <span class=\"sub\">submissive</span> or <span class=\"def\">defiant</span> 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.", "<span class=\"def\">Defiant</span> acts reduce stress and trauma.", "<span class=\"brat\">Bratty</span> acts reduce trauma but increase stress.", "<span class=\"sub\">Submissive</span> acts reduce trauma but increase stress.", "<span class=\"meek\">Meek</span> 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 !$settings.bestialityEnabled>>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.", "Being drunk can help reduce incoming pain.", "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.", "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 <span class=\"lewd\">lust</span> increases.", "Sleeping while naked or only wearing underwear, pyjamas 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 school library offers school appropriate clothing at a hefty markup.", "Blood moons are said to cause strange behaviour and hallucinations. They happen on the last day of every month.", "Sleeping through a blood moon can be dangerous.", "A slippery stage is a dangerous stage.", "If you're too famous for your liking, someone at the pub may be able to help get eyes off you.", "Committing the same crime too much in a short time will lead the police to you faster.", "Smaller crimes might go entirely unnoticed if you have enough skill.", "Turning yourself in to the police will make your punishment less severe.", ]>> <!-- Weather tips --> <<set setup.tips.weather to [ "Wearing too much clothing in warm temperatures may cause you to pass out.", "Be careful not to wear too little clothing when it's freezing outside, or there is a risk of hypothermia.", "Being wet will cause your body to dissipate heat faster.", "Physical activity, like running, will temporarily increase your body heat.", "Being too hot increases your fatigue and stress gain.", "Being too cold increases the amount of pain you receive, while also reducing your arousal gains.", ]>> <!-- Tentacle tips --> <<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.", ]>> <!-- Animal TF tips --> <<set setup.tips.animalTFs to [ "Ingesting wolf<<if !$settings.bestialityEnabled>>person<</if>> or fox<<if !$settings.bestialityEnabled>>person<</if>> cum can have strange effects on the body.", "Never try to out-scream a fox<<if !$settings.bestialityEnabled>>person<</if>>.", ]>> <!-- Lactation tips --> <<set setup.tips.lactation to [ "Drinking breast milk lowers purity.", "Having your nipples licked, sucked or played with will encourage milk production.", ]>> <!-- Bodywriting tips --> <<set setup.tips.bodywriting to [ "Permanent marker won't wash off, but will fade with time.", ]>> <!-- Parasite tips --> <<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.", "The hospital on Nightingale Street sells a product that can ward off parasites.", ]>> <!-- Slime tips --> <<set setup.tips.slime to [ "Strange slimes are said to live in the abandoned sewers beneath the drains.", ]>> <!-- Plantpeople tips --> <<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." ]>> <!-- Struggle tips --> <<set setup.tips.struggle to [ "Planting your feet with skill can help increase grip strength.", "Strengthening your grip on a creature will increase the chance of pulling it off.", "A powerful body does not need to rely on skill or stance to grip creatures." ]>> <!-- Hair tips --> <<set setup.tips.hairRuffle to [ "You may wake up with bad hair after a prolonged sleep. Aim to have 7-8 hours of sleep to minimise the chance and get enough rest.", "You can assign a hair style along with a clothing set to quickly dress up and do your hair in one go.", ]>> <!-- Pregnancy tips --> <<set setup.tips.pregnancy to [ "Use protection or take contraceptives if you don't want to end up pregnant.", "You can buy pregnancy tests, as well as fertility boosters or dampeners, at the hospital's pharmacy.", ]>> <!-- Accessibility tips --> <<set setup.tips.accessibility to [ "If some animated text effects (such as hypnosis) are too overwhelming, you can disable them in the options menu." ]>> <!-- Unique tips for Hopeless Cycle --> <<set setup.tips.hopelessCycle to [ "You can clean used bandages in water, but fresh bandages are healthier.", "The prison gruel is bland and not particularly nutritious. However, it at least fills the stomach.", "Water can be used twice before it must be emptied.", "Buckets are wonderful inventions. You can carry three items in a single bucket.", "The disposal channel is dangerous in the dark.", "At the six-armed statue, you can embrace the world's corruption into yourself. This makes aspects of daily life harder, but it's a very nice thing to do.", "Never underestimate the value of sharing a meal.", "Speaking to prisoners is forbidden.", "A little light goes a long way.", "Sleeping nude is both blasphemous and unhealthy.", "Items on the ground may become dirty over time. Some will become dirty right away.", "The Bishop's Hand spends much time in the prayer room.", "Burning tainted items will endear you to your siblings.", "Washing used dishes before returning them is common courtesy.", "Sparring builds bonds with your siblings.", "The Trial of Purity can be attempted every day. Success will reassure your siblings that you remain pure.", "Torches can be used to light other torches anywhere.", "Hatred breeds hatred.", "Paranoia spurs paranoia.", "Stagnation self-perpetuates.", "Punishment for punishment.", "Desperation is a spiral.", "Never be coerced by love.", "This, too, is a trial.", "Stay pure.", "Suffering brings salvation.", "Don't believe her lies." ]>> <<set setup.tips.hopelessCycleSus to [ "Your siblings are eager to punish the wicked.", "Fruit grows in the garden and can be picked during work. The Bishop's Hand will notice missing fruit, however.", "Spare bedsheets can be found in the quarters while you clean. The Bishop's Hand will notice missing sheets, however.", "Kicking over buckets of water will incur suspicion. You can empty water in the disposal channel or at the forest's edge.", "Placing a bedsheet in a bucket will prevent your peers from growing suspicious of its content when entering or leaving the dungeon." ]>> <<set setup.tips.hopelessCycleNoSus to [ "Fruit grows in the garden and can be picked during work.", "Spare bedsheets can be found in the quarters while you clean.", "Kicking over buckets of water is unbecoming of brothers of the faith. You can empty water in the disposal channel or at the forest's edge." ]>> <<set setup.tips.hopelessCycleEnding to [ "Not all stories have happy endings.", "A sad ending is not a failure, just an exploration.", "You can only find the truth by sorting through the lies.", "Some say comedy is tragedy, plus time.", "Hold fast. You can rest soon." ]>> <</if>> <</widget>> <<widget "tips">> <<if $hc>> <<if $tags.includes("ending")>> <<set $_tips to setup.tips.hopelessCycleEnding>> <<else>> <<set $_tips to setup.tips.hopelessCycle>> <<if $hc.suspicionRevealed>> <<set $_tips to $_tips.concat(setup.tips.hopelessCycleSus)>> <<else>> <<set $_tips to $_tips.concat(setup.tips.hopelessCycleNoSus)>> <</if>> <</if>> <<else>> <<set $_tips to setup.tipsList>> <</if>> <<print $_tips.random(true)>> <</widget>> <<widget "generateTipsList">> <<set setup.tipsList to setup.tips.general>> <<set setup.tipsList to setup.tipsList.concat(setup.tips.weather)>> <<if $settings.tentaclesEnabled>> <<set setup.tipsList to setup.tipsList.concat(setup.tips.tentacles)>> <</if>> <<if $settings.transformAnimalEnabled>> <<set setup.tipsList to setup.tipsList.concat(setup.tips.animalTFs)>> <</if>> <<if $settings.breastFeedingEnabled>> <<set setup.tipsList to setup.tipsList.concat(setup.tips.lactation)>> <</if>> <<if $settings?.bodyWritingLevel gte 1>> <<set setup.tipsList to setup.tipsList.concat(setup.tips.bodywriting)>> <</if>> <<if $settings.parasitesEnabled>> <<set setup.tipsList to setup.tipsList.concat(setup.tips.parasite)>> <</if>> <<if $settings.slimesEnabled>> <<set setup.tipsList to setup.tipsList.concat(setup.tips.slime)>> <</if>> <<if $settings.plantsEnabled>> <<set setup.tipsList to setup.tipsList.concat(setup.tips.plantpeople)>> <</if>> <<if [$settings.bestialityEnabled, $settings.plantsEnabled, $settings.slimesEnabled, $settings.lurkersEnabled, $settings.beesEnabled, $settings.waspsEnabled, $settings.slugsEnabled].includes(true)>> <<set setup.tipsList to setup.tipsList.concat(setup.tips.struggle)>> <</if>> <<if $ruffledisable is "f">> <<set setup.tipsList to setup.tipsList.concat(setup.tips.hairRuffle)>> <</if>> <<if ($settings.playerPregnancyHumanEnabled or $settings.playerPregnancyBeastEnabled) and ($player.vaginaExist or canBeMPregnant())>> <<set setup.tipsList to setup.tipsList.concat(setup.tips.pregnancy)>> <</if>> <<if $options.textAnimsAll>> <<set setup.tipsList to setup.tipsList.concat(setup.tips.accessibility)>> <</if>> <</widget>> <<widget "printTipsList">> <<set _tipListOutput to "">> <<run setup.tipsList.forEach((tip, index) => { T.tipListOutput += `${(index+1)}. ${tip} <br>` })>> <<print _tipListOutput>> <</widget>><!-- the return link is placed at both the top and bottom of page for player convenience. --> <<link [[Return|$lastPassage]]>><<unset $lastPassage>><</link>> <br><br> <h3>All Tips</h3> <<generateTipsList>> <<printTipsList>> <br> <<link [[Return|$lastPassage]]>><<unset $lastPassage>><</link>> <<unset _maxTipCount>>/** * 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>><<widget "setupTransformationPiecesObject">> <<if $transformationParts is undefined>> <<set $transformationParts to { traits: {fangs:"disabled", sharpEyes:"disabled", mateForLife:"disabled", chase:"disabled", flaunting:"disabled"}, angel: {halo:"disabled", wings:"disabled"}, fallenAngel: {halo:"disabled", wings:"disabled"}, demon: {horns:"disabled", wings:"disabled", tail: "disabled"}, cat: {ears:"disabled", tail:"disabled", heterochromia:"disabled"}, cow: {horns:"disabled", ears:"disabled", tail:"disabled"}, wolf: {ears:"disabled", tail:"disabled", pubes:"disabled", pits:"disabled"}, bird: {tail:"disabled", wings:"disabled", eyes:"disabled", malar:"disabled", plumage:"disabled", pubes:"disabled"}, fox: {ears:"disabled", tail:"disabled", cheeks:"disabled"}, }>> <<if $specialTransform is 1>> <<if $angel gte 4>> <<set $transformationParts.angel.halo to "default">> <</if>> <<if $angel gte 6>> <<set $transformationParts.angel.wings to "default">> <</if>> <<if $fallenangel gte 2>> <<set $transformationParts.fallenAngel.halo to "default">> <<set $transformationParts.fallenAngel.wings to "default">> <</if>> <<if $demon gte 2>> <<set $transformationParts.demon.horns to "default">> <</if>> <<if $demon gte 4>> <<set $transformationParts.demon.tail to "default">> <</if>> <<if $demon gte 6>> <<set $transformationParts.demon.wings to "default">> <</if>> <</if>> <<if $physicalTransform is 1>> <<if $wolfgirl gte 2>> <<set $transformationParts.traits.fangs to "default">> <</if>> <<if $wolfgirl gte 4>> <<set $transformationParts.wolf.ears to "default">> <<set $transformationParts.wolf.pubes to "default">> <<set $transformationParts.wolf.pits to "default">> <</if>> <<if $wolfgirl gte 6>> <<set $transformationParts.wolf.tail to "default">> <</if>> <<if $cat gte 2>> <<set $transformationParts.traits.fangs to "default">> <</if>> <<if $cat gte 4>> <<set $transformationParts.cat.ears to "default">> <</if>> <<if $cat gte 6>> <<set $transformationParts.cat.tail to "default">> <</if>> <<if $cat gte 7>> <<set $transformationParts.cat.heterochromia to "default">> <</if>> <<if $cow gte 2>> <<set $transformationParts.cow.horns to "default">> <</if>> <<if $cow gte 4>> <<set $transformationParts.cow.ears to "default">> <</if>> <<if $cow gte 6>> <<set $transformationParts.cow.tail to "default">> <</if>> <</if>> <</if>> <<if $transformationParts.fallenAngel.halo is 1>> <<set $transformationParts.fallenAngel.halo to "default">> <<set $transformationParts.fallenAngel.wings to "default">> <</if>> <<if $transformationParts.demon.horns is 1>> <<set $transformationParts.demon.horns to "default">> <<set $transformationParts.demon.tail to "default">> <<set $transformationParts.demon.wings to "default">> <</if>> <<if $angel lt 4>> <<set $transformationParts.angel.halo to "disabled">> <</if>> <<if $angel lt 6>> <<set $transformationParts.angel.wings to "disabled">> <</if>> <<if $fallenangel is 1>> <<set $transformationParts.fallenAngel.halo to "disabled">> <<set $transformationParts.fallenAngel.wings to "disabled">> <</if>> <<if $transformationParts.wolf.cheeks is undefined>> <<if $wolfgirl gte 5>> <<set $transformationParts.wolf.cheeks to "feral">> <<else>> <<set $transformationParts.wolf.cheeks to "disabled">> <</if>> <</if>> <<if $transformationParts.bird is undefined>> <<set $transformationParts.bird to {tail:"disabled", wings:"disabled", eyes:"disabled", malar:"disabled", plumage:"disabled"}>> <</if>> <<if $transformationParts.bird.pubes is undefined>> <<if $harpy gte 6>> <<set $transformationParts.bird.pubes to "hidden">> <<else>> <<set $transformationParts.bird.pubes to "disabled">> <</if>> <</if>> <<if $transformationParts.fox is undefined>> <<set $transformationParts.fox to {ears:"disabled", tail:"disabled", cheeks:"disabled"}>> <</if>> <<if $transformationParts.traits is undefined>> <<set $transformationParts.traits to {fangs:"disabled", sharpEyes:"disabled", mateForLife:"disabled", chase:"disabled", flaunting:"disabled"}>> <<if $wolfgirl gte 2 or $cat gte 2 or $fox gte 2>> <<set $transformationParts.traits.fangs to "default">> <</if>> <<if $cat gte 2 or $harpy gte 2 or $fox gte 2>> <<set $transformationParts.traits.sharpEyes to "default">> <</if>> <</if>> /* Setup chimera's config */ <<set _defaultChimeraConfig to { demoncat: { tail: true }, demoncow: { tail: true, horns: true, }, demonwolf: { tail: true }, demonfox: { tail: true, ears: true }, demonharpy: { wings: true }, angelharpy: { wings: true }, fallenharpy: { wings: true }, }>> /* Convert chimera obj back to an object if it was something else. Necessary for object.assign next. */ <<if typeof $chimera !== 'object'>> <<set $chimera to {}>> <</if>> /* Takes default object and transposes chimera config ontop of it, assigning the result to chimera config. */ <<set $chimera = Object.keys(_defaultChimeraConfig).reduce((acc, key) => { acc[key] = Object.assign({}, _defaultChimeraConfig[key], $chimera[key] || {}); return acc; }, {})>> <</widget>> <<widget "transform">>/*First arg is transformation, second is the intensity of change.*/ <<if _args[1]>> <<switch _args[0]>> <<case "wolf">> <<set $wolfbuild = Math.clamp($wolfbuild + _args[1], 0, 100)>> <<case "cat">> <<set $catbuild = Math.clamp($catbuild + _args[1], 0, 100)>> <<case "cow">> <<set $cowbuild = Math.clamp($cowbuild + _args[1], 0, 100)>> <<case "bird">> <<set $birdbuild = Math.clamp($birdbuild + _args[1], 0, 100)>> <<case "fox">> <<set $foxbuild = Math.clamp($foxbuild + _args[1], 0, 100)>> <<case "angel">> <<set $angelbuild = Math.clamp($angelbuild + _args[1], 0, 100)>> <<case "fallen">> <<set $fallenbuild = Math.clamp($fallenbuild + _args[1], 0, 100)>> <<case "demon">> <<set $demonbuild = Math.clamp($demonbuild + _args[1], 0, 100)>> <</switch>> <</if>> <<if !["angel", "fallen", "demon"].includes(_args[0]) and _args[1] gte 1 and !($worn.neck.name is "familiar collar" and $worn.neck.cursed is 1)>> <<if _args[0] isnot "wolf" and $worn.neck.name isnot "spiked collar" and $worn.neck.name isnot "spiked collar with leash">> <<set $wolfbuild = Math.clamp($wolfbuild - _args[1], 0, 100)>> <</if>> <<if _args[0] isnot "cat" and $worn.neck.name isnot "cat bell collar">> <<set $catbuild = Math.clamp($catbuild - _args[1], 0, 100)>> <</if>> <<if _args[0] isnot "cow" and $worn.neck.name isnot "cow bell">> <<set $cowbuild = Math.clamp($cowbuild - _args[1], 0, 100)>> <</if>> <<if _args[0] isnot "bird" and $worn.head.name isnot "feathered hair clip" and $worn.neck.name isnot "feather necklace">> <<set $birdbuild = Math.clamp($birdbuild - _args[1], 0, 100)>> <</if>> <<if _args[0] isnot "fox" and $worn.head.name isnot "spirit mask" and $worn.neck.name isnot "jasper pendant">> <<set $foxbuild = Math.clamp($foxbuild - _args[1], 0, 100)>> <</if>> <</if>> <</widget>> <<widget "transformationStateUpdate">> <<if !($worn.neck.name is "familiar collar" and $worn.neck.cursed is 1)>> <<if $wolfbuild gte 1 and $worn.neck.name isnot "spiked collar" and $worn.neck.name isnot "spiked collar with leash" and playerNormalPregnancyType() isnot "wolf">> <<transform wolf -1>> <</if>> <<if $catbuild gte 1 and $worn.neck.name isnot "cat bell collar" and playerNormalPregnancyType() isnot "cat">> <<transform cat -1>> <</if>> <<if $cowbuild gte 1 and $worn.neck.name isnot "cow bell" and playerNormalPregnancyType() isnot "cow">> <<transform cow -1>> <</if>> <<if $birdbuild gte 1 and $worn.head.name isnot "feathered hair clip" and $worn.neck.name isnot "feather necklace" and playerNormalPregnancyType() isnot "hawk">> <<transform bird -1>> <</if>> <<if $foxbuild gte 1 and $worn.head.name isnot "spirit mask" and $worn.neck.name isnot "jasper pendant" and playerNormalPregnancyType() isnot "fox">> <<transform fox -1>> <</if>> <</if>> <<transformationAlteration>> <<if $cat gt 0 or $wolfgirl gt 0 or $cow gt 0 or $harpy gt 0 or $fox gt 0>> <<set $physicalTransform to 1>> <<else>> <<set $physicalTransform to 0>> <</if>> <<if ($physicalTransform is 1 or $specialTransform is 1) and !($hypnosis_traits.peace and $settings.hypnosisEnabled)>> <<if $harpy gte 6 and ($angel gte 6 or $fallenangel gte 2 or $demon gte 6)>> <<if $transformationParts.bird.wings is "hidden" and ($transformationParts.demon.wings is "hidden" or $transformationParts.angel.wings is "hidden" or $transformationParts.fallenAngel.wings is "hidden")>> <<else>> <<set _excludeWings to true>> <</if>> <</if>> <<set _keys to Object.keys($transformationParts)>> <<for _i to 0; _i lt _keys.length; _i++>> <<set _key to _keys[_i]>> <<for _label, _value range $transformationParts[_key]>> <<if _value is "hidden" and _key isnot "traits" and !["pubes", "pits"].includes(_label) and !(_label is "wings" and _excludeWings is true)>> <<if $panicattacks gte 2>> <<set $transformationParts[clone(_key)][clone(_label)] to "default">> <<set _hidingFailed to true>> <<set $effectsmessage to 1>> <<set $hiddenTransformMessage to 1>> <<else>> <<trauma 15>> <<set $effectsmessage to 1>> <<set $hiddenTransformMessage to 2>> <</if>> <</if>> <</for>> <</for>> <</if>> <<set _tfs to ["angel", "fallenangel", "demon", "dryad", "wolfgirl", "cat", "cow", "harpy", "fox"]>> <<for _i to 0; _i lt _tfs.length; _i++>> <<set _tf to _tfs[_i]>> <<if V[_tf] gte _tf is "fallenangel" ? 2 : 6>> <<set $transformationHistory.pushUnique(_tf)>> <</if>> <</for>> <</widget>> <<widget "transformationAlteration">> <<if $settings.transformDivineEnabled>> <<if ($demonbuild gte 5 and $specialTransform isnot 1) or ($demon gte 1 and $specialTransform is 1)>> <<demonTransform $demon>> <<elseif ($angelbuild gte 5 and $specialTransform isnot 1) or ($angel gte 1 and $specialTransform is 1)>> <<angelTransform $angel>> <<elseif $fallenangel gte 2>> <<fallenButNotOut $fallenangel>> <</if>> <</if>> <<if $settings.transformAnimalEnabled>> <<script>> let manifestArray = [V.wolfgirl, V.cat, V.cow, V.harpy, V.fox]; var highestManifestIndex = manifestArray.indexOf(Math.max(...manifestArray)); if (manifestArray[highestManifestIndex] > 0) { T.activeTransformIndex = highestManifestIndex; } else { let buildArray = [V.wolfbuild, V.catbuild, V.cowbuild, V.birdbuild, V.foxbuild]; let buildMax = Math.max(...buildArray); let highestBuildIndex = buildArray.indexOf(buildMax); if (buildArray.count(buildMax) === 1 && buildArray[highestBuildIndex] >= 5) { T.activeTransformIndex = highestBuildIndex; } } <</script>> <<switch _activeTransformIndex>> <<case 0>> <<wolfTransform $wolfgirl>> <<case 1>> <<catTransform $cat>> <<case 2>> <<cowTransform $cow>> <<case 3>> <<harpyTransform $harpy>> <<case 4>> <<foxTransform $fox>> <</switch>> <</if>> <</widget>> <<widget "hirsuteHideCheck">> <<if !$settings.pubicHairEnabled and !["hidden", "disabled"].includes($transformationParts.wolf.pubes)>> <<set $transformationParts.wolf.pubes to "hidden">> <</if>> <<if !$settings.pubicHairEnabled and !["hidden", "disabled"].includes($transformationParts.wolf.pits)>> <<set $transformationParts.wolf.pits to "hidden">> <</if>> <<if !$settings.pubicHairEnabled and !["hidden", "disabled"].includes($transformationParts.bird.pubes)>> <<set $transformationParts.bird.pubes to "hidden">> <</if>> <</widget>> /* Used to temporarily hide all transformation parts, such as when needing to turn the player into Janet. showTransformations will bring back all parts this widget hid. */ <<widget "hideTransformations">> <<set $saveTransformations to clone($transformationParts)>> <<for _transformation, _parts range $transformationParts>> <<for _part, _value range _parts>> <<if _value isnot "disabled" and _value isnot "hidden">> <<set $transformationParts[_transformation][_part] to "hidden">> <</if>> <</for>> <</for>> <</widget>> <<widget "showTransformations">> <<if $saveTransformations isnot undefined>> <<set $transformationParts to clone($saveTransformations)>> <<unset $saveTransformations>> <</if>> <</widget>> <<widget "fallenTransform">> <<if $angel gte 6>> <span class="red">Your halo shatters and your wings blacken. An overwhelming sense of loss overcomes you.</span> <<set $trauma to $traumamax>> <<set $fallenangel to 2>> <<set $transformationParts.fallenAngel.halo to ($transformationParts.angel.halo is "hidden" ? "default" : $transformationParts.angel.halo)>> <<set $transformationParts.fallenAngel.wings to ($transformationParts.angel.wings is "classic" ? "classic" : "default")>> <<set _freshFallen to true>> <<earnFeat "Fallen Angel">> <<elseif $angel gte 4>> <span class="red">Your halo shatters and fades.</span> <</if>> <<if $angel gt 0>> <<angelTransform 99>> <</if>> <<if $fallenangel is 2>> <<set $specialTransform to 1>> <</if>> <</widget>> <<widget "fallenButNotOut">> <<if _args[0] gte 0>> <<switch _args[0]>> <<case 2>> <<if $fallenbuild gte 20>> <<set $fallenangel to 3>> <<run $timeMessages.pushUnique("fallenAngelFeathers")>> <</if>> <<case 3>> <<if $fallenbuild gte 30>> <<set $fallenangel to 4>> <<run $timeMessages.pushUnique("fallenAngelWings")>> <<set $transformationParts.fallenAngel.wings to ($transformationParts.fallenAngel.wings is "classic" ? "classicfallenplus" : "fallenplus")>> <</if>> <<case 99>> <<set $specialTransform to 0>> <<set $fallenangel to 0>> <<set $transformationParts.fallenAngel.halo to "disabled">> <<set $transformationParts.fallenAngel.wings to "disabled">> <</switch>> <</if>> <</widget>> <<widget "fallenDescend">> <<set $demonbuild to 30>> <<set $demon to 6>> <<set $fallenangel to 1>> <<set $specialTransform to 1>> <<run $timeMessages.pushUnique("fallenAngelDescend")>> <<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">> <<arousal 600>> <</widget>> /* <<angelTransform step>> If neither is provided, force full transformation */ <<widget "angelTransform">> <<if _args[0] gte 0>> <<switch _args[0]>> <<case 0>> <<if $angelbuild gte 25>> <<set $angel to 1>> <<set $specialTransform to 1>> <<run $timeMessages.pushUnique("angelUp1")>> <</if>> <<case 1>> <<if $angelbuild gte 30>> <<set $angel to 2>> <<run $timeMessages.pushUnique("angelUp2")>> <<elseif $angelbuild lt 25>> <<set $angel to 0>><<set $specialTransform to 0>> <<run $timeMessages.pushUnique("angelDown0")>> <</if>> <<case 2>> <<if $angelbuild gte 35>> <<set $angel to 3>> <<run $timeMessages.pushUnique("angelUp3")>> <<elseif $angelbuild lt 30>> <<set $angel to 1>> <<run $timeMessages.pushUnique("angelDown1")>> <</if>> <<case 3>> <<if $angelbuild gte 40>> <<set $angel to 4>> <<run $timeMessages.pushUnique("angelUp4")>> <<set $transformationParts.angel.halo to "default">> <<elseif $angelbuild lt 35>> <<set $angel to 2>> <<run $timeMessages.pushUnique("angelDown2")>> <</if>> <<case 4>> <<if $angelbuild gte 45 and $settings.transformDivineEnabled>> <<set $angel to 5>> <<run $timeMessages.pushUnique("angelUp5")>> <<elseif $angelbuild lt 40>> <<set $angel to 3>> <<run $timeMessages.pushUnique("angelDown3")>> <<set $transformationParts.angel.halo to "disabled">> <</if>> <<case 5>> <<if $angelbuild gte 50 and $settings.transformDivineEnabled>> <<set $angel to 6>> <<run $timeMessages.pushUnique("angelUp5")>> <<set $transformationParts.angel.wings to "default">> <<elseif $angelbuild lt 45>> <<set $angel to 4>> <<run $timeMessages.pushUnique("angelDown4")>> <</if>> <<case 6>> <<if $angelbuild lt 50>> <<set $angel to 5>> <<run $timeMessages.pushUnique("angelDown5")>> <<set $transformationParts.angel.wings to "disabled">> <</if>> <<case 99>> <<set $specialTransform to 0>> <<set $angel to 0>> <<set $angelbuild to 0>> <<set $transformationParts.angel.halo to "disabled">> <<set $transformationParts.angel.wings to "disabled">> <</switch>> <<else>> <<clearDivineTransformations>> <<set $specialTransform to 1>> <<set $angel to 6>> <<set $angelbuild to 50>> <<set $transformationParts.angel.halo to "default">> <<set $transformationParts.angel.wings to "default">> <</if>> <</widget>> /* <<demonTransform step>> If neither is provided, force full transformation */ <<widget "demonTransform">> <<if _args[0] gte 0>> <<switch _args[0]>> <<case 0>> <<if $demonbuild gte 5 and $settings.transformDivineEnabled and $specialTransform isnot 1>> <<set $demon to 1>><<set $specialTransform to 1>> <<run $timeMessages.pushUnique("demonUp1")>> <<arousal 600>> <</if>> <<case 1>> <<if $demonbuild gte 10 and $settings.transformDivineEnabled>> <<set $demon to 2>> <<run $timeMessages.pushUnique("demonUp2")>> <<arousal 600>> <<set $transformationParts.demon.horns to "default">> <<elseif $demonbuild lt 5>> <<set $demon to 0>><<set $specialTransform to 0>> <<run $timeMessages.pushUnique("demonDown0")>> <</if>> <<case 2>> <<if $demonbuild gte 15 and $settings.transformDivineEnabled>> <<set $demon to 3>> <<run $timeMessages.pushUnique("demonUp3")>> <<arousal 600>> <<elseif $demonbuild lt 10>> <<set $demon to 1>> <<run $timeMessages.pushUnique("demonDown1")>> <<set $transformationParts.demon.horns to "disabled">> <</if>> <<case 3>> <<if $demonbuild gte 20 and $settings.transformDivineEnabled>> <<set $demon to 4>> <<run $timeMessages.pushUnique("demonUp4")>> <<set $transformationParts.demon.tail to "default">> <<arousal 600>> <<elseif $demonbuild lt 15>> <<set $demon to 2>> <<run $timeMessages.pushUnique("demonDown2")>> <</if>> <<case 4>> <<if $demonbuild gte 25 and $settings.transformDivineEnabled>> <<set $demon to 5>> <<run $timeMessages.pushUnique("demonUp5")>> <<arousal 600>> <<elseif $demonbuild lt 20>> <<set $demon to 3>> <<run $timeMessages.pushUnique("demonDown3")>> <<set $transformationParts.demon.tail to "disabled">> <<set $transformationParts.traits.flaunting to "disabled">> <</if>> <<case 5>> <<if $demonbuild gte 30 and $settings.transformDivineEnabled>> <<set $demon to 6>><<set $demonFeat to true>> <<run $timeMessages.pushUnique("demonUp6")>> <<arousal 600>> <<set $transformationParts.demon.wings to "default">> <<elseif $demonbuild lt 25>> <<set $demon to 4>> <<run $timeMessages.pushUnique("demonDown4")>> <</if>> <<case 6>> <<if $demonbuild lt 30>> <<set $demon to 5>> <<run $timeMessages.pushUnique("demonDown5")>> <<set $transformationParts.demon.wings to "disabled">> <<else>> <<set $demonFeat to true>> <</if>> <<case 99>> <<set $specialTransform to 0>> <<set $demon to 0>> <<set $demonbuild to 0>> <<set $transformationParts.demon.horns to "disabled">> <<set $transformationParts.demon.tail to "disabled">> <<set $transformationParts.demon.wings to "disabled">> <<set $transformationParts.traits.flaunting to "disabled">> <</switch>> <<else>> <<clearDivineTransformations>> <<set $specialTransform to 1>> <<set $demon to 6>> <<set $demonbuild to 30>> <<set $transformationParts.demon.horns to "default">> <<set $transformationParts.demon.tail to "default">> <<set $transformationParts.demon.wings to "default">> <</if>> <</widget>> /* <<wolfTransform step>> If neither is provided, force full transformation */ <<widget "wolfTransform">> <<if _args[0] gte 0>> <<switch _args[0]>> <<case 0>> <<if $wolfbuild gte 5>> <<set $wolfgirl to 1>> <<set $physicalTransform to 1>> <<run $timeMessages.pushUnique("wolfUp1")>> <</if>> <<case 1>> <<if $wolfbuild gte 10>> <<set $wolfgirl to 2>> <<run $timeMessages.pushUnique("wolfUp2")>> <<set $transformationParts.traits.fangs to "default">> <<elseif $wolfbuild lt 5>> <<set $wolfgirl to 0>> <<run $timeMessages.pushUnique("wolfDown0")>> <<set $physicalTransform to 0>> <</if>> <<case 2>> <<if $wolfbuild gte 15>> <<set $wolfgirl to 3>> <<run $timeMessages.pushUnique("wolfUp3")>> <<elseif $wolfbuild lt 10>> <<set $wolfgirl to 1>> <<run $timeMessages.pushUnique("wolfDown1")>> <<set $transformationParts.traits.fangs to "disabled">> <</if>> <<case 3>> <<if $wolfbuild gte 20>> <<set $wolfgirl to 4>> <<run $timeMessages.pushUnique("wolfUp4")>> <<set $transformationParts.wolf.ears to "default">> <<set $transformationParts.wolf.pubes to ($settings.pubicHairEnabled? "default" : "hidden")>> <<set $transformationParts.wolf.pits to ($settings.pubicHairEnabled? "default" : "hidden")>> <<elseif $wolfbuild lt 15>> <<set $wolfgirl to 2>> <<run $timeMessages.pushUnique("wolfDown2")>> <</if>> <<case 4>> <<if $wolfbuild gte 25>> <<set $wolfgirl to 5>> <<run $timeMessages.pushUnique("wolfUp5")>> <<set $transformationParts.wolf.cheeks to "feral">> <<elseif $wolfbuild lt 20>> <<set $wolfgirl to 3>> <<run $timeMessages.pushUnique("wolfDown3")>> <<set $transformationParts.wolf.ears to "disabled">> <<set $transformationParts.wolf.pubes to "disabled">> <<set $transformationParts.wolf.pits to "disabled">> <</if>> <<case 5>> <<if $wolfbuild gte 30>> <<set $wolfgirl to 6>> <<run $timeMessages.pushUnique("wolfUp6")>> <<set $transformationParts.wolf.tail to "default">> <<elseif $wolfbuild lt 25>> <<set $wolfgirl to 4>> <<run $timeMessages.pushUnique("wolfDown4")>> <<set $transformationParts.wolf.cheeks to "disabled">> <</if>> <<case 6>> <<if $wolfbuild lt 30>> <<set $wolfgirl to 5>> <<run $timeMessages.pushUnique("wolfDown5")>> <<set $transformationParts.wolf.tail to "disabled">> <</if>> <<case 99>> <<set $physicalTransform to 0>> <<set $wolfgirl to 0>> <<set $wolfbuild to 0>> <<set $transformationParts.traits.fangs to "disabled">> <<set $transformationParts.wolf.cheeks to "disabled">> <<set $transformationParts.wolf.ears to "disabled">> <<set $transformationParts.wolf.pubes to "disabled">> <<set $transformationParts.wolf.pits to "disabled">> <<set $transformationParts.wolf.tail to "disabled">> <</switch>> <<else>> <<clearAnimalTransformations>> <<set $physicalTransform to 1>> <<set $wolfgirl to 6>> <<set $wolfbuild to 100>> <<set $transformationParts.traits.fangs to "default">> <<set $transformationParts.wolf.cheeks to "feral">> <<set $transformationParts.wolf.ears to "default">> <<set $transformationParts.wolf.pubes to ($settings.pubicHairEnabled? "default" : "hidden")>> <<set $transformationParts.wolf.pits to ($settings.pubicHairEnabled? "default" : "hidden")>> <<set $transformationParts.wolf.tail to "default">> <</if>> <</widget>> /* <<catTransform step>> If neither is provided, force full transformation */ <<widget "catTransform">> <<if _args[0] gte 0>> <<switch _args[0]>> <<case 0>> <<if $catbuild gte 25>> <<set $cat to 1>> <<run $timeMessages.pushUnique("catUp1")>> <<set $physicalTransform to 1>> <</if>> <<case 1>> <<if $catbuild gte 30 and $settings.transformAnimalEnabled>> <<set $cat to 2>> <<run $timeMessages.pushUnique("catUp2")>> <<set $transformationParts.traits.fangs to "default">> <<set $transformationParts.traits.sharpEyes to "default">> <<elseif $catbuild lt 25>> <<set $cat to 0>><<set $physicalTransform to 0>> <<run $timeMessages.pushUnique("catDown0")>> <</if>> <<case 2>> <<if $catbuild gte 35 and $settings.transformAnimalEnabled>> <<set $cat to 3>> <<run $timeMessages.pushUnique("catUp3")>> <<elseif $catbuild lt 30>> <<set $cat to 1>> <<run $timeMessages.pushUnique("catDown1")>> <<set $transformationParts.traits.fangs to "disabled">> <<set $transformationParts.traits.sharpEyes to "disabled">> <</if>> <<case 3>> <<if $catbuild gte 40 and $settings.transformAnimalEnabled>> <<set $cat to 4>> <<run $timeMessages.pushUnique("catUp4")>> <<set $transformationParts.cat.ears to "default">> <<elseif $catbuild lt 35>> <<set $cat to 2>> <<run $timeMessages.pushUnique("catDown2")>> <</if>> <<case 4>> <<if $catbuild gte 45 and $settings.transformAnimalEnabled>> <<set $cat to 5>> <<run $timeMessages.pushUnique("catUp5")>> <<elseif $catbuild lt 40>> <<set $cat to 3>> <<run $timeMessages.pushUnique("catDown3")>> <<set $transformationParts.cat.ears to "disabled">> <</if>> <<case 5>> <<if $catbuild gte 50 and $settings.transformAnimalEnabled>> <<set $cat to 6>> <<run $timeMessages.pushUnique("catUp6")>> <<set $transformationParts.cat.tail to "default">> <<elseif $catbuild lt 45>> <<set $cat to 4>> <<run $timeMessages.pushUnique("catDown4")>> <</if>> <<case 6>> <<if $catbuild gte 55>> <<set $cat to 7>> <<run $timeMessages.pushUnique("catUp7")>> <<run window.determineCatEyeStages()>> <<set $original_colour = [$leftEyeColour, $rightEyeColour]>> <<set $transformationParts.cat.heterochromia to "default">> <<catHeterochromiaTF 0>> <<elseif $catbuild lt 50>> <<set $cat to 5>> <<run $timeMessages.pushUnique("catDown5")>> <<set $transformationParts.cat.tail to "disabled">> <<set $transformationParts.cat.heterochromia to "disabled">> <</if>> <<case 7>> <<if $catbuild gte 60>> <<set $cat to 8>> <<run $timeMessages.pushUnique("catUp8")>> <<catHeterochromiaTF 1>> <<elseif $catbuild lt 55>> <<set $leftEyeColour to $original_colour[0]>> <<set $rightEyeColour to $original_colour[1]>> <<set $cat to 6>> <<run $timeMessages.pushUnique("catDown6")>> <</if>> <<case 8>> <<if $catbuild gte 65>> <<set $cat to 9>> <<run $timeMessages.pushUnique("catUp9")>> <<catHeterochromiaTF 2>> <<elseif $catbuild lt 60>> <<catHeterochromiaTF 0>> <<set $cat to 7>> <<run $timeMessages.pushUnique("catDown7")>> <</if>> <<case 9>> <<if $catbuild gte 70>> <<set $cat to 10>> <<run $timeMessages.pushUnique("catUp10")>> <<catHeterochromiaTF 3>> <<elseif $catbuild lt 65>> <<catHeterochromiaTF 1>> <<set $cat to 8>> /* No message for catDown8 */ <</if>> <<case 10>> <<if $catbuild lt 70>> <<catHeterochromiaTF 2>> <<set $cat to 9>> <<run $timeMessages.pushUnique("catDown9")>> <</if>> <<case 99>> <<set $physicalTransform to 0>> <<set $cat to 0>> <<set $catbuild to 0>> <<set $transformationParts.traits.fangs to "disabled">> <<set $transformationParts.traits.sharpEyes to "disabled">> <<set $transformationParts.cat.ears to "disabled">> <<set $transformationParts.cat.tail to "disabled">> <</switch>> <<else>> <<clearAnimalTransformations>> <<set $physicalTransform to 1>> <<set $cat to 6>> <<set $catbuild to 100>> <<set $transformationParts.traits.fangs to "default">> <<set $transformationParts.traits.sharpEyes to "default">> <<set $transformationParts.cat.ears to "default">> <<set $transformationParts.cat.tail to "default">> <</if>> <</widget>> <<widget "catHeterochromiaTF">> <<if _args[0] gte 0 or _args[0] == "hide">> <<if $transformationParts.cat.heterochromia isnot "hidden" and _args[0] isnot "hide">> <<set $leftEyeColour to "cat_tf_stage_" + _args[0] + "_left">> <<set $rightEyeColour to "cat_tf_stage_" + _args[0] + "_right">> <<if _args[0] >= 3>> <<set $heterochromia to 1>> <<else>> <<set $heterochromia to 0>> <</if>> <<else>> <<if V.original_colour isnot undefined>> <<set $leftEyeColour to $original_colour[0]>> <<set $rightEyeColour to $original_colour[1]>> <</if>> <<set $heterochromia to 0>> <</if>> <</if>> <</widget>> <<widget "cowTransform">> <<if _args[0] gte 0>> <<switch _args[0]>> <<case 0>> <<if $cowbuild gte 5>> <<set $cow to 1>> <<run $timeMessages.pushUnique("cowUp1")>> <<set $physicalTransform to 1>> <</if>> <<case 1>> <<if $cowbuild gte 10>> <<set $cow to 2>> <<run $timeMessages.pushUnique("cowUp2")>> <<set $transformationParts.cow.horns to "default">> <<elseif $cowbuild lt 5>> <<set $cow to 0>><<set $physicalTransform to 0>> <<run $timeMessages.pushUnique("cowDown0")>> <</if>> <<case 2>> <<if $cowbuild gte 15>> <<set $cow to 3>> <<run $timeMessages.pushUnique("cowUp3")>> <<elseif $cowbuild lt 10>> <<set $cow to 1>> <<run $timeMessages.pushUnique("cowDown1")>> <<set $transformationParts.cow.horns to "disabled">> <</if>> <<case 3>> <<if $cowbuild gte 20>> <<set $cow to 4>> <<run $timeMessages.pushUnique("cowUp4")>> <<set $transformationParts.cow.ears to "default">> <<elseif $cowbuild lt 15>> <<set $cow to 2>> <<run $timeMessages.pushUnique("cowDown2")>> <</if>> <<case 4>> <<if $cowbuild gte 25>> <<set $cow to 5>> <<run $timeMessages.pushUnique("cowUp5")>> <<elseif $cowbuild lt 20>> <<set $cow to 3>> <<run $timeMessages.pushUnique("cowDown3")>> <<set $transformationParts.cow.ears to "disabled">> <</if>> <<case 5>> <<if $cowbuild gte 30>> <<set $cow to 6>> <<run $timeMessages.pushUnique("cowUp6")>> <<set $semen_max to 6000>> <<set $milk_max to 6000>> <<set $transformationParts.cow.tail to "default">> <<elseif $cowbuild lt 25>> <<set $cow to 4>> <<run $timeMessages.pushUnique("cowDown4")>> <</if>> <<case 6>> <<if $cowbuild lt 30>> <<set $semen_max to 3000>> <<set $milk_max to 3000>> <<set $cow to 5>> <<run $timeMessages.pushUnique("cowDown5")>> <<set $transformationParts.cow.tail to "disabled">> <</if>> <<case 99>> <<set $physicalTransform to 0>> <<set $cow to 0>> <<set $cowbuild to 0>> <<set $semen_max to 3000>> <<set $milk_max to 3000>> <<set $transformationParts.cow.tail to "disabled">> <<set $transformationParts.cow.ears to "disabled">> <<set $transformationParts.cow.horns to "disabled">> <</switch>> <<else>> <<clearAnimalTransformations>> <<set $physicalTransform to 1>> <<set $cow to 6>> <<set $cowbuild to 100>> <<set $semen_max to 6000>> <<set $milk_max to 6000>> <<set $transformationParts.cow.horns to "default">> <<set $transformationParts.cow.ears to "default">> <<set $transformationParts.cow.tail to "default">> <</if>> <<semenvolume 0>> <<milkvolume 0>> <</widget>> /* <<harpyTransform step>> If neither is provided, force full transformation */ <<widget "harpyTransform">> <<if _args[0] gte 0>> <<switch _args[0]>> <<case 0>> <<if $birdbuild gte 5 and $physicalTransform isnot 1>> <<set $harpy to 1>> <<run $timeMessages.pushUnique("harpyUp1")>> <<set $physicalTransform to 1>> <</if>> <<case 1>> <<if $birdbuild gte 10>> <<set $harpy to 2>> <<run $timeMessages.pushUnique("harpyUp2")>> <<set $transformationParts.bird.eyes to "default">> <<set $transformationParts.bird.malar to "default">> <<set $transformationParts.traits.sharpEyes to "default">> <<elseif $birdbuild lt 5>> <<set $harpy to 0>><<set $physicalTransform to 0>> <<run $timeMessages.pushUnique("harpyDown0")>> <</if>> <<case 2>> <<if $birdbuild gte 15>> <<set $harpy to 3>> <<run $timeMessages.pushUnique("harpyUp3")>> <<set $transformationParts.traits.mateForLife to "default">> <<elseif $birdbuild lt 10>> <<set $harpy to 1>> <<run $timeMessages.pushUnique("harpyDown1")>> <<set $transformationParts.bird.eyes to "disabled">> <<set $transformationParts.bird.malar to "disabled">> <<set $transformationParts.traits.sharpEyes to "disabled">> <</if>> <<case 3>> <<if $birdbuild gte 20>> <<set $harpy to 4>> <<run $timeMessages.pushUnique("harpyUp4")>> <<set $transformationParts.bird.tail to "default">> <<set $transformationParts.bird.plumage to "default">> <<elseif $birdbuild lt 15>> <<set $harpy to 2>> <<run $timeMessages.pushUnique("harpyDown2")>> <<set $transformationParts.traits.mateForLife to "disabled">> <</if>> <<case 4>> <<if $birdbuild gte 25>> <<set $harpy to 5>> <<run $timeMessages.pushUnique("harpyUp5")>> <<elseif $birdbuild lt 20>> <<set $harpy to 3>> <<run $timeMessages.pushUnique("harpyDown3")>> <<set $transformationParts.bird.tail to "disabled">> <<set $transformationParts.bird.plumage to "disabled">> <</if>> <<case 5>> <<if $birdbuild gte 30>> <<set $harpy to 6>> <<run $timeMessages.pushUnique("harpyUp6")>> <<set $transformationParts.bird.wings to "default">> <<if $settings.pubicHairEnabled>> <<set $transformationParts.bird.pubes to "default">> <<else>> <<set $transformationParts.bird.pubes to "hidden">> <</if>> <<elseif $birdbuild lt 25>> <<set $harpy to 4>> <<run $timeMessages.pushUnique("harpyDown4")>> <</if>> <<case 6>> <<if $birdbuild lt 30>> <<set $harpy to 5>> <<run $timeMessages.pushUnique("harpyDown5")>> <<set $transformationParts.bird.wings to "disabled">> <<set $transformationParts.bird.pubes to "disabled">> <<if $angel gte 6>> <<set $transformationParts.angel.wings to "default">> <</if>> <<if $demon gte 6>> <<set $transformationParts.demon.wings to "default">> <</if>> <<if $fallenangel gte 2>> <<set $transformationParts.fallenAngel.wings to "default">> <</if>> <</if>> <<case 99>> <<set $physicalTransform to 0>> <<set $harpy to 0>> <<set $birdbuild to 0>> <<set $transformationParts.bird.eyes to "disabled">> <<set $transformationParts.bird.malar to "disabled">> <<set $transformationParts.bird.tail to "disabled">> <<set $transformationParts.bird.plumage to "disabled">> <<set $transformationParts.bird.pubes to "disabled">> <<set $transformationParts.traits.sharpEyes to "disabled">> <<set $transformationParts.traits.mateForLife to "disabled">> <<set $transformationParts.bird.wings to "disabled">> <<if !["hidden", "disabled"].includes($transformationParts.bird.wings)>> <<if $angel gte 6>> <<set $transformationParts.angel.wings to "default">> <</if>> <<if $demon gte 6>> <<set $transformationParts.demon.wings to "default">> <</if>> <<if $fallenangel gte 2>> <<set $transformationParts.fallenAngel.wings to "default">> <</if>> <</if>> <</switch>> <<else>> <<set $physicalTransform to 1>> <<set $harpy to 6>> <<set $birdbuild to 100>> <<set $transformationParts.bird.eyes to "default">> <<set $transformationParts.bird.malar to "default">> <<set $transformationParts.bird.tail to "default">> <<set $transformationParts.bird.plumage to "default">> <<set $transformationParts.bird.wings to "default">> <<set $transformationParts.traits.sharpEyes to "default">> <<set $transformationParts.traits.mateForLife to "default">> <<if $settings.pubicHairEnabled>> <<set $transformationParts.bird.pubes to "default">> <<else>> <<set $transformationParts.bird.pubes to "hidden">> <</if>> <</if>> <</widget>> /* <<foxTransform step>> If neither is provided, force full transformation */ <<widget "foxTransform">> <<if _args[0] gte 0>> <<switch _args[0]>> <<case 0>> <<if $foxbuild gte 5>> <<set $fox to 1>> <<run $timeMessages.pushUnique("foxUp1")>> <<set $physicalTransform to 1>> <</if>> <<case 1>> <<if $foxbuild gte 10>> <<set $fox to 2>> <<run $timeMessages.pushUnique("foxUp2")>> <<set $transformationParts.traits.fangs to "default">> <<set $transformationParts.traits.sharpEyes to "default">> <<elseif $foxbuild lt 5>> <<set $fox to 0>> <<run $timeMessages.pushUnique("foxDown0")>> <<set $physicalTransform to 0>> <</if>> <<case 2>> <<if $foxbuild gte 15>> <<set $fox to 3>> <<run $timeMessages.pushUnique("foxUp3")>> <<set $transformationParts.traits.mateForLife to "default">> <<elseif $foxbuild lt 10>> <<set $fox to 1>> <<run $timeMessages.pushUnique("foxDown1")>> <<set $transformationParts.traits.fangs to "disabled">> <<set $transformationParts.traits.sharpEyes to "disabled">> <</if>> <<case 3>> <<if $foxbuild gte 20>> <<set $fox to 4>> <<run $timeMessages.pushUnique("foxUp4")>> <<set $transformationParts.fox.ears to "default">> <<set $transformationParts.traits.chase to "default">> <<elseif $foxbuild lt 15>> <<set $fox to 2>> <<run $timeMessages.pushUnique("foxDown2")>> <<set $transformationParts.traits.mateForLife to "disabled">> <</if>> <<case 4>> <<if $foxbuild gte 25>> <<set $fox to 5>> <<run $timeMessages.pushUnique("foxUp5")>> <<set $transformationParts.fox.cheeks to "default">> <<elseif $foxbuild lt 20>> <<set $fox to 3>> <<run $timeMessages.pushUnique("foxDown3")>> <<set $transformationParts.fox.ears to "disabled">> <<set $transformationParts.traits.chase to "disabled">> <</if>> <<case 5>> <<if $foxbuild gte 30>> <<set $fox to 6>> <<run $timeMessages.pushUnique("foxUp6")>> <<set $transformationParts.fox.tail to "default">> <<elseif $foxbuild lt 25>> <<set $fox to 4>> <<run $timeMessages.pushUnique("foxDown4")>> <<set $transformationParts.fox.cheeks to "disabled">> <</if>> <<case 6>> <<if $foxbuild lt 30>> <<set $fox to 5>> <<run $timeMessages.pushUnique("foxDown5")>> <<set $transformationParts.fox.tail to "disabled">> <</if>> <<case 99>> <<set $physicalTransform to 0>> <<set $fox to 0>> <<set $foxbuild to 0>> <<set $transformationParts.traits.fangs to "disabled">> <<set $transformationParts.traits.sharpEyes to "disabled">> <<set $transformationParts.traits.mateForLife to "disabled">> <<set $transformationParts.traits.chase to "disabled">> <<set $transformationParts.fox.cheeks to "disabled">> <<set $transformationParts.fox.ears to "disabled">> <<set $transformationParts.fox.tail to "disabled">> <</switch>> <<else>> <<clearAnimalTransformations>> <<set $physicalTransform to 1>> <<set $fox to 6>> <<set $foxbuild to 100>> <<set $transformationParts.traits.fangs to "default">> <<set $transformationParts.traits.sharpEyes to "default">> <<set $transformationParts.traits.mateForLife to "default">> <<set $transformationParts.traits.chase to "default">> <<set $transformationParts.fox.cheeks to "default">> <<set $transformationParts.fox.ears to "default">> <<set $transformationParts.fox.tail to "default">> <</if>> <</widget>> <<widget "clearAnimalTransformations">> <<harpyTransform 99>> <<cowTransform 99>> <<catTransform 99>> <<wolfTransform 99>> <<foxTransform 99>> <</widget>> <<widget "clearDivineTransformations">> <<demonTransform 99>> <<angelTransform 99>> <<fallenButNotOut 99>> <</widget>> <<widget "revealTransformations">> /* DO NOT USE without calling rehideTransformations before scene end */ <<set $tfPartsHidden to clone($transformationParts)>> <<if $harpy gte 6 and ($angel gte 6 or $fallenangel gte 2 or $demon gte 6)>> <<if $transformationParts.bird.wings is "hidden" and ($transformationParts.demon.wings is "hidden" or $transformationParts.angel.wings is "hidden" or $transformationParts.fallenAngel.wings is "hidden")>> <<else>> <<set $_excludeWings to true>> <</if>> <</if>> <<set $_keys to Object.keys($transformationParts)>> <<for $_i to 0; $_i lt $_keys.length; $_i++>> <<set $_key to $_keys[$_i]>> <<for $_label, $_value range $transformationParts[$_key]>> <<if $_value is "hidden" and $_key isnot "traits" and !["pubes", "pits", "cheeks"].includes($_label) and !($_label is "wings" and $_excludeWings is true)>> <<set $transformationParts[clone($_key)][clone($_label)] to "default">> <<set $tfPartsHidden[clone($_key)][clone($_label)] to "hideLater">> <<set _unhidden to true>> <</if>> <</for>> <</for>> <</widget>> <<widget "rehideTransformations">> <<if $tfPartsHidden>> <<set $_keys to Object.keys($tfPartsHidden)>> <<for $_i to 0; $_i lt $_keys.length; $_i++>> <<set $_key to $_keys[$_i]>> <<for $_label, $_value range $tfPartsHidden[$_key]>> <<if $_value is "hideLater">> <<set $transformationParts[clone($_key)][clone($_label)] to "hidden">> <</if>> <</for>> <</for>> <<unset $tfPartsHidden>> <</if>> <</widget>>/* This widget is run on its own after passout */ <<widget "passouttemperature">> <<cleareventpool>> <<outfitChecks>> <<set $passoutstat += 1>> <<set $passoutTimeStat to Time.date.timeStamp>> <<set $stress to Math.clamp($stress, 0, 8000)>> <<pass 60>> /* FROSTBITE */ <<if _passout is "cold">> <<set Weather.bodyTemperature to Weather.tempSettings.minTemperature + 1.5>> <<if !["beach", "estate", "forest", "lake", "moor", "park", "sea", "tower", "wolf_cave"].includes($location)>> You pass out from the cold. <br><br> <</if>> <<switch $location>> <<case "asylum">> <<addinlineevent "default" 1>> <<link [[Everything fades to black...|Passout Asylum]]>><</link>> <</addinlineevent>> <<case "beach">> You collapse on the <<= Weather.precipitation is "rain" ? "damp sand. Rain pelts your back as you" : Weather.precipitation is "snow" ? "cold sand. Snow falls on your body as you" : "sand. You">> curl into a ball to preserve what little body heat you have left. <br><br> <<if ["rain", "snow"].includes(Weather.precipitation)>> You do your best to <<= $worn.handheld.type.includes("rainproof") ? "cover yourself with your umbrella" : "shield yourself from the " + Weather.precipitation>>, but your fingers are numb with cold, and your arm falls to your side. <<silently>><<water>><</silently>> <br><br> <</if>> You pass out from the cold. <br><br> <<if getRobinLocation() is "beach">> <<addinlineevent "beach" 1.25>> <<link [[Everything fades to black...|Passout Beach Hypothermia Robin]]>><</link>> <</addinlineevent>> <</if>> <<addinlineevent "beach" 1>> <<link [[Everything fades to black...|Passout Beach Hypothermia]]>><</link>> <</addinlineevent>> <<if $fame.good gte 400 or $fame.social gte 400>> <<addinlineevent "fame" 0.2>> <<link [[Everything fades to black...|Passout Hypothermia Fame]]>><</link>> <</addinlineevent>> <</if>> <<if dangerEvent() and !_fullyNaked>> <<addinlineevent "beach" 1>> <<link [[Everything fades to black...|Passout Beach Hypothermia Molest]]>><<set $molestationstart to 1>><</link>> <</addinlineevent>> <</if>> <<case "estate">> <<if !$estate>><<estate_init>><</if>> /* It's possible to trigger the $estate location passout on the link that unsets $estate */ Your breath mists in the winter air. The <<= Weather.precipitation is "snow" ? "pristine snow looks soft and inviting" : "ground looks inviting">>. You take a few faltering steps. You sink down next to a car and close your eyes. <br><br> Just before you pass out, you <<if $farm.aggro gte 60>> <<addinlineevent "remy" 1>> <span class="red">hear the sound of spurs approaching.</span> <br><br> <<link [[Everything fades to black...|Passout Estate Remy Hot Cold]]>><</link>> <</addinlineevent>> <<elseif $wren_intro isnot undefined>> <<addinlineevent "wren" 1>> <span class="green">hear the sound of boots approaching.</span> <br><br> <<link [[Everything fades to black...|Passout Estate Wren Hot Cold]]>><<set $passoutReason to "hypothermia">><</link>> <</addinlineevent>> <<else>> <<addinlineevent "generic" 1>> hear the sound of someone approaching. <br><br> <<link [[Everything fades to black...|Passout Hypothermia Rescue]]>><</link>> <</addinlineevent>> <</if>> <<case "farm">> <<if $bus.includes("farm")>>/* If not the Underground Farm */ <<addinlineevent "molest" 1>> <<link [[Everything fades to black...|Passout Hypothermia Molest]]>><<set $molestationstart to 1>><</link>> <</addinlineevent>> <<else>> <<addinlineevent "livestock" 1>> <<link [[Everything fades to black...|Passout Livestock Hot Cold]]>><<set $passoutReason to "hypothermia">><</link>> <</addinlineevent>> <</if>> <<case "forest">> You trek through the dense forest, shivering as the relentless cold seeps into your bones with each step. Your body trembles, <<if Weather.isFreezing>>your breath fogs in the frigid air, <</if>>and your heart races as you struggle to push on. <<if Weather.isSnow>>The snow crunches underfoot.<</if>> <br><br> The weight of exhaustion bears down on you, the world blurring as darkness creeps into your vision. Overwhelmed by the cold and fatigue, you collapse onto the forest floor. The ground rushes up to meet you as your consciousness slips away. <br><br> You pass out from the cold. <br><br> <<if $forest lte 25 and !isGwylanAbsent() and C.npc.Gwylan.state isnot "scorned">> <<addinlineevent "gwylan" .6>> <<link [[Everything fades to black...|Passout Gwylan Hot Cold]]>><<set $passoutReason to "hypothermia">><</link>> <</addinlineevent>> <</if>> <<addinlineevent "wolf" 1>> <<link [[Everything fades to black...|Passout Wolves Hot Cold]]>><<set $passoutReason to "hypothermia">><</link>> <</addinlineevent>> <<addinlineevent "rescue" 1>> <<link [[Everything fades to black...|Passout Hypothermia Rescue]]>><</link>> <</addinlineevent>> <<case "wolf_cave">> You try your best to stay warm, but the cold is too much. The ground rushes up to meet you as your consciousness slips away. <br><br> <<addinlineevent "rescue" 1>> <<link [[Everything fades to black...|Passout Wolf Cave Hypothermia]]>><</link>> <</addinlineevent>> <<case "cabin">> <<addinlineevent "Eden" 2>> <<link [[Everything fades to black...|Passout Eden Hot Cold]]>><<pass 60>><<set $passoutReason to "hypothermia">><</link>> <</addinlineevent>> <<case "tower">> <<addinlineevent "birdRescue" 1>> You pass out from the cold. <br><br> <<link [[Everything fades to black...|Passout Bird Hypothermia]]>><</link>> <</addinlineevent>> <<case "moor">> <<if $moormove is "horse">> <<addinlineevent "moorHorse" 2>> You pass out from the cold. <br><br> <<link [[Everything fades to black...|Passout Moor Horse]]>><</link>> <</addinlineevent>> <<else>> <<addinlineevent "birdRescue" 1.5>> <<if $syndromebird gte 1>> You trudge through the moor, shivering uncontrollably<<if Weather.temperature lte 4>> as the biting cold seeps into your bones<</if>>. Each step feels like a struggle. Your body grows weaker, your movements more sluggish, with every passing moment. <br><br> As you collapse to the <<= Weather.isSnow ? "snowy" : "cold">> ground, your limbs feel heavy and unresponsive. The world around you swirls into darkness, the chill of the air enveloping you completely. <br><br> You pass out from the cold. <br><br> <<link [[Everything fades to black...|Passout Bird Hypothermia]]>><</link>> <<else>> <<npc "Great Hawk">><<person1>> You stumble to the <<= Weather.isSnow ? "snowy ground" : "ground">>, too weak to go on. Your lips are cracked from <<= Weather.temperature lte 4 ? "the frigid air" : "your laboured breathing">>, but you manage to croak out a desperate plea for help. <br><br> Your cry is answered. A <<hawkScreechDesc>> pierces the air. <<hawkRescueApproachSentence>> <br><br> You tip your head back, and your mouth grows even drier as you gape at the enormous shadow flying towards you. <br><br> <<link [[Next|Bird Rescue No Syndrome]]>><</link>> <</if>> <</addinlineevent>> <<addinlineevent "rescue" 1>> You pass out from the cold. <br><br> <<link [[Everything fades to black...|Passout Hypothermia Rescue]]>><</link>> <</addinlineevent>> <</if>> <<case "prison">> <<addinlineevent "default" 1>> <<link [[Everything fades to black...|Passout Prison 2]]>><</link>> <</addinlineevent>> <<case "lake">> Your vision blurs. You hold yourself tight to keep warm, but it's no use. <br><br> <<if $town_projects.diving gte 4 and (Time.schoolDay and Time.hour gte 16 and Time.hour lte 20 or !Time.schoolDay and Time.hour gte 6 and Time.hour lte 20)>> <<addinlineevent "winter" 0.75>> <<link [[Everything fades to black...|Passout Hot Cold Lake Office]]>><<set $passoutReason to "hypothermia">><</link>> <</addinlineevent>> <</if>> <<if !Time.schoolDay and ["snow", "rain"].includes(Weather.precipitation) and Time.dayState is "day">> <<addinlineevent "mason" 0.25>> <<link [[Everything fades to black...|Passout Mason Hypothermia]]>><<set $phase to ["lakeunderwater", "lake_ruin", "lake_ruin_deep"].includes($bus) ? "underwater" : 1>><</link>> <</addinlineevent>> <</if>> <<addinlineevent "danger" 1.25>> <<link [[Everything fades to black...|Passout Hypothermia Lake Gangbang]]>><</link>> <</addinlineevent>> <<case "school">> <<addinlineevent "default" 1>> <<link [[Everything fades to black...|School Passout]]>><<set $passoutReason to "hypothermia">><</link>> <</addinlineevent>> <<case "sea">> The cold water robs you of the last of your body heat. Your limbs become too heavy to keep swimming, and you pass out as your body starts to sink. <br><br> <<addinlineevent "pirates" 1>> <<link [[Everything fades to black...|Passout Pirates Hot Cold]]>><<set $passoutReason to "hypothermia">><</link>> <</addinlineevent>> <<case "tentworld">> <<addinlineevent "default" 1>> <<link [[Everything fades to black...|Passout Tentacle World]]>><</link>> <</addinlineevent>> <<case "park">> You stumble forward and slump to the cold ground, too battered to keep going. <br><br> /* Park events needed - adding default ones now to prevent empty passages */ <<if getRobinLocation() is "park" and !$daily.robin.passout>> <<addinlineevent "park" 1.25>> <<link [[Everything fades to black...|Passout Robin Hypothermia Park]]>><</link>> <</addinlineevent>> <</if>> <<addinlineevent "rescue" 1>> <<link [[Everything fades to black...|Passout Hypothermia Rescue]]>><</link>> <</addinlineevent>> <<case "island">> <<addinlineevent "default" 1>> <<link [[Everything fades to black...|Island Passout]]>><</link>> <</addinlineevent>> <<default>> /* Generic events */ <<addinlineevent "ambulance" 0.1>> <<link [[Everything fades to black...|Ambulance rescue]]>><<set $passoutReason to "hypothermia">><</link>> <</addinlineevent>> <<addinlineevent "molest" 1>> <<link [[Everything fades to black...|Passout Hypothermia Molest]]>><<set $molestationstart to 1>><</link>> <</addinlineevent>> <<addinlineevent "rescue" 1.1>> <<link [[Everything fades to black...|Passout Hypothermia Rescue]]>><</link>> <</addinlineevent>> <<if $fame.good gte 400 or $fame.social gte 400>> <<addinlineevent "fame" 0.2>> <<link [[Everything fades to black...|Passout Hypothermia Fame]]>><</link>> <</addinlineevent>> <</if>> <<if $location is "town" and $bus is "danube">> <<addinlineevent "danube" 1.5>> <<link [[Everything fades to black...|Passout Danube Street]]>><<set $phase2 to _passout>><</link>> <</addinlineevent>> <</if>> <<if (($location is "town" and $bus is "high") or $location is "office" or $location is "avery_skyscraper") and $officejobintro is 1 and Time.hour gte 6 and Time.hour lte 21>> <<addinlineevent "office" 2>> <<link [[Everything fades to black...|Passout Office]]>><<set $phase2 to _passout>><</link>> <</addinlineevent>> <</if>> <</switch>> /* HEATSTROKE */ <<elseif _passout is "heat">> <<set Weather.bodyTemperature to Weather.tempSettings.maxTemperature - 1>> <<if !["beach", "estate", "forest", "lake", "moor", "sea", "wolf_cave"].includes($location)>> You pass out from the heat. <br><br> <</if>> <<switch $location>> <<case "alley">> <<if Weather.temperature gte 27 and _top and !Time.schoolDay and $bullytimer gte $rng and C.npc.Whitney.init is 1 and !["dungeon", "pillory"].includes(C.npc.Whitney.state) and $daily.whitney.park is undefined>> <<addinlineevent "default" 1>> <<link [[Everything fades to black...|Passout Alley Heatstroke Whitney]]>><</link>> <</addinlineevent>> <</if>> <<if _underwear>> <<addinlineevent "icecube" 1>> <<link [[Everything fades to black...|Passout Heatstroke Ice Cube]]>><</link>> <</addinlineevent>> <</if>> <<if !_fullyNaked>> <<addinlineevent "strip" .5>> <<link [[Everything fades to black...|Passout Heatstroke Strip]]>><<set $molestationstart to 1>><</link>> <</addinlineevent>> <</if>> <<addinlineevent "rescue" .5>> <<link [[Everything fades to black...|Passout Heatstroke Rescue]]>><</link>> <</addinlineevent>> <<addinlineevent "kiss" 1>> <<link [[Everything fades to black...|Passout Heatstroke Kiss]]>><</link>> <</addinlineevent>> <<case "asylum">> <<addinlineevent "default" 1>> <<link [[Everything fades to black...|Passout Asylum]]>><</link>> <</addinlineevent>> <<case "beach" "seabeach">> <<if $location is "seabeach">> Even in the cold water, the heat has still caught up with you. You feel dizzy, and you collapse, falling to your knees in the shallow water. Your body feels tired. You close your eyes. <<else>> You collapse on the hot sand, chest heaving. The heat is too much, and your vision grows dark. <</if>> <br><br> <<addinlineevent "waves" 1>> <<link [[Everything fades to black...|Passout Beach Heatstroke]]>><</link>> <</addinlineevent>> <<if getRobinLocation() is "beach" and $location isnot "seabeach" and !$daily.robin.passout and $robin.timer.hurt lt 1>> <<addinlineevent "lemonade" 1.25>> <<link [[Everything fades to black...|Passout Beach Heatstroke Lemonade]]>><</link>> <</addinlineevent>> <</if>> <<if dangerEvent() and !Weather.overcast>> <<addinlineevent "students" 1>> <<link [[Everything fades to black...|Passout Beach Heatstroke Students]]>><</link>> <</addinlineevent>> <<if !_fullyNaked and Weather.precipitation is "none">> <<addinlineevent "wetShirt" 1>> <<link [[Everything fades to black...|Passout Beach Heatstroke Wet Shirt]]>><</link>> <</addinlineevent>> <</if>> <<else>> <<addinlineevent "rescue" 1>> <<link [[Everything fades to black...|Passout Beach Heatstroke Rescue]]>><</link>> <</addinlineevent>> <</if>> <<case "estate">> You can see heat radiating off the tops of the cars. Sweat pours down your forehead, stinging your eyes. You stagger to a patch of shade and collapse in a heap. <br><br> Just before you pass out, you <<if $farm.aggro gte 60>> <<addinlineevent "remy" 1>> <span class="red">hear the sound of spurs approaching.</span> <br><br> <<link [[Everything fades to black...|Passout Estate Remy Hot Cold]]>><<estate_end>><</link>> <</addinlineevent>> <<elseif $wren_intro isnot undefined>> <<addinlineevent "wren" 1>> <span class="green">hear the sound of boots approaching.</span> <br><br> <<link [[Everything fades to black...|Passout Estate Wren Hot Cold]]>><<set $passoutReason to "hyperthermia">><</link>> <</addinlineevent>> <<else>> <<addinlineevent "generic" 1>> hear the sound of someone approaching. <br><br> <<link [[Everything fades to black...|Passout Heatstroke Rescue]]>><</link>> <</addinlineevent>> <</if>> <<case "farm">> <<if $bus.includes("farm")>>/* If not the Underground Farm */ <<addinlineevent "generic" 1>> <<link [[Everything fades to black...|Passout Heatstroke Rescue]]>><</link>> <</addinlineevent>> <<if !_fullyNaked>> <<addinlineevent "strip" 1>> <<link [[Everything fades to black...|Passout Heatstroke Strip]]>><<set $molestationstart to 1>><</link>> <</addinlineevent>> <</if>> <<else>> <<addinlineevent "livestock" 1>> <<link [[Everything fades to black...|Passout Livestock Hot Cold]]>><<set $passoutReason to "hyperthermia">><</link>> <</addinlineevent>> <</if>> <<case "forest">> You trek through the dense forest, a throbbing headache piercing your skull with each step. <<if !Weather.overcast>>The relentless sunlight filters through the canopy above.<</if>> Sweat drips from your brow, and your heart races as you struggle to push forward through the thick underbrush. <br><br> The weight of exhaustion bears down on you, the world blurring as darkness creeps into your vision. Overwhelmed by the heat and fatigue, you collapse onto the forest floor. The ground rushes up to meet you as your consciousness slips away. <br><br> You pass out from the heat. <br><br> <<if $forest lte 25 and !isGwylanAbsent() and C.npc.Gwylan.state isnot "scorned">> <<addinlineevent "gwylan" .6>> <<link [[Everything fades to black...|Passout Gwylan Hot Cold]]>><<set $passoutReason to "hyperthermia">><</link>> <</addinlineevent>> <</if>> <<addinlineevent "mud" 1>> <<link [[Everything fades to black...|Passout Heatstroke Mud]]>><</link>> <</addinlineevent>> <<addinlineevent "wolf" 1>> <<link [[Everything fades to black...|Passout Wolves Hot Cold]]>><<set $passoutReason to "hyperthermia">><</link>> <</addinlineevent>> <<addinlineevent "rescue" 1>> <<link [[Everything fades to black...|Passout Heatstroke Rescue]]>><</link>> <</addinlineevent>> <<case "wolf_cave">> Sweat pours down your forehead. It stings your eyes, but you're too fatigued to wipe it away. The heat is too much. You stagger to a patch of shade near the cave and collapse in a heap. <br><br> <<addinlineevent "rescue" 1>> <<link [[Everything fades to black...|Passout Wolf Cave Heatstroke]]>><</link>> <</addinlineevent>> <<case "lake">> Waves of heat engulf you. Your head spins and your vision blurs. <br><br> <<if $town_projects.diving gte 4 and (Time.schoolDay and Time.hour gte 16 and Time.hour lte 20 or !Time.schoolDay and Time.hour gte 6 and Time.hour lte 20)>> <<addinlineevent "winter" 0.75>> <<link [[Everything fades to black...|Passout Hot Cold Lake Office]]>><<set $passoutReason to "hyperthermia">><</link>> <</addinlineevent>> <</if>> <<if !Time.schoolDay and ["snow", "rain"].includes(Weather.precipitation) and Time.dayState is "day">> <<addinlineevent "mason" 0.25>> <<link [[Everything fades to black...|Passout Mason Hyperthermia]]>><<set $phase to ["lakeunderwater", "lake_ruin", "lake_ruin_deep"].includes($bus) ? "underwater" : 1>><</link>> <</addinlineevent>> <</if>> <<addinlineevent "mud" 1>> <<link [[Everything fades to black...|Passout Heatstroke Mud]]>><</link>> <</addinlineevent>> <<case "cabin">> <<addinlineevent "Eden" 2>> <<link [[Everything fades to black...|Passout Eden Hot Cold]]>><<pass 60>><<set $passoutReason to "hyperthermia">><</link>> <</addinlineevent>> <<case "tower">> <<addinlineevent "birdRescue" 1.5>> You pass out from the heat. <br><br> <<link [[Everything fades to black...|Passout Bird Heatstroke]]>><</link>> <</addinlineevent>> <<case "moor">> <<if $moormove is "horse">> <<addinlineevent "moorHorse" 2>> You pass out from the heat. <br><br> <<link [[Everything fades to black...|Passout Moor Horse]]>><</link>> <</addinlineevent>> <<else>> <<addinlineevent "birdRescue" 1.5>> <<if $syndromebird gte 1>> <<npc "Great Hawk">><<person1>> The relentless sun beats down on you as you trudge through the moor, a throbbing headache pounding in your skull. Waves of nausea churn in your stomach, your pulse racing uncontrollably as you succumb to the heat. <br><br> In a desperate attempt to find relief, you sink to your knees, clutching at the parched earth. The ground feels distant, the world spinning as darkness closes in. <br><br> You pass out from the heat. <br><br> <<link [[Everything fades to black...|Passout Bird Heatstroke]]>><</link>> <<else>> <<npc "Great Hawk">><<person1>> You stumble to the ground, too weak to go on. Your lips are parched from the heat, but you manage to croak out a desperate plea for help. <br><br> Your cry is answered. A <<hawkScreechDesc>> pierces the air. <<hawkRescueApproachSentence>> <br><br> You tip your head back, and your mouth grows even drier as you gape at the enormous shadow flying towards you. <br><br> <<link [[Next|Bird Rescue No Syndrome]]>><</link>> <</if>> <</addinlineevent>> <<addinlineevent "rescue" 1>> You pass out from the heat. <br><br> <<link [[Everything fades to black...|Passout Heatstroke Rescue]]>><</link>> <</addinlineevent>> <</if>> <<case "prison">> <<addinlineevent "default" 1>> <<link [[Everything fades to black...|Passout Prison 2]]>><</link>> <</addinlineevent>> <<case "sea">> Despite the water around you, the heat is too much. Your limbs become too heavy to keep swimming, and you pass out as your body starts to sink. <br><br> <<addinlineevent "pirates" 1>> <<link [[Everything fades to black...|Passout Pirates Hot Cold]]>><<set $passoutReason to "hyperthermia">><</link>> <</addinlineevent>> <<case "school">> <<addinlineevent "default" 1>> <<link [[Everything fades to black...|School Passout]]>><<set $passoutReason to "hyperthermia">><</link>> <</addinlineevent>> <<case "tentworld">> <<addinlineevent "default" 1>> <<link [[Everything fades to black...|Passout Tentacle World]]>><</link>> <</addinlineevent>> <<case "park">> <<if isInPark("whitney")>> <<addinlineevent "default" 2>> <<link [[Everything fades to black...|Passout Park Heatstroke Whitney]]>><</link>> <</addinlineevent>> <</if>> <<if $wolfgirl gte 6 or $cat gte 6>> <<addinlineevent "animals" 1>> <<link [[Everything fades to black...|Passout Heatstroke Animals]]>><</link>> <</addinlineevent>> <</if>> <<addinlineevent "delinquents" 1>> <<link [[Everything fades to black...|Passout Heatstroke Delinquents]]>><</link>> <</addinlineevent>> <<addinlineevent "flash" 1>> <<link [[Everything fades to black...|Passout Heatstroke Flash]]>><</link>> <</addinlineevent>> <<case "island">> <<addinlineevent "default" 1>> <<link [[Everything fades to black...|Island Passout]]>><</link>> <</addinlineevent>> <<default>> /* Generic events */ <<addinlineevent "ambulance" 0.1>> <<link [[Everything fades to black...|Ambulance rescue]]>><<set $passoutReason to "hyperthermia">><</link>> <</addinlineevent>> <<if !_fullyNaked>> <<addinlineevent "strip" 1>> <<link [[Everything fades to black...|Passout Heatstroke Strip]]>><<set $molestationstart to 1>><</link>> <</addinlineevent>> <</if>> <<addinlineevent "kiss" 1>> <<link [[Everything fades to black...|Passout Heatstroke Kiss]]>><</link>> <</addinlineevent>> <<addinlineevent "rescue" 1.1>> <<link [[Everything fades to black...|Passout Heatstroke Rescue]]>><</link>> <</addinlineevent>> <<if $location is "town" and $bus is "danube">> <<addinlineevent "danube" 1.5>> <<link [[Everything fades to black...|Passout Danube Street]]>><<set $phase2 to _passout>><</link>> <</addinlineevent>> <</if>> <<if (($location is "town" and $bus is "high") or $location is "office" or $location is "avery_skyscraper") and $officejobintro is 1 and Time.hour gte 6 and Time.hour lte 21>> <<addinlineevent "office" 2>> <<link [[Everything fades to black...|Passout Office]]>><<set $phase2 to _passout>><</link>> <</addinlineevent>> <</if>> <</switch>> <</if>> <<runeventpool>> <</widget>> /* Determines clothes player may be given after passing out of cold */ <<widget "hypothermiaClothes">> <<outfitChecks>><<set _wet to $upperwetstage gte 3 or $lowerwetstage gte 3 or $underupperwetstage gte 3 or $underlowerwetstage gte 3>> <<set _gender to $player.gender_appearance>> <<set _clothes to []>> <<set _warmClothes to []>> <<if _fullyNaked>> <<set _warmClothes to "clothes">> <<elseif _wet>> <<dry_full>><<upperstrip>><<lowerstrip>> <<set _warmClothes to "dry clothes">> <<elseif !_bottom>> <<set _warmClothes to "bottoms">> <<elseif $debug is 1 and $worn.over_upper.name is "naked" and $rng gte 46>> <<set _warmClothes to "a jacket">> <<elseif $worn.upper.warmth lt 6>> <<set _warmClothes to _shirtless ? "a shirt" : "something warmer">> <<elseif !$worn.neck.cursed>> <<set _warmClothes to "a scarf">> <<elseif $worn.head.warmth lt 3>> <<set _warmClothes to "a hat">> <</if>> <<if $debug is 1 and $worn.over_upper.name is "naked" and $rng gt 100>> /* outerwearToDo: Give players a jacket that's suitably warm. Not the froggy coat. Rng to allow for the possibility that they'll get another article of clothing instead -- rng should normally be gte 45, I just wanted to make this impossible to get. */ <<set _slot to "over_upper">> <<set _index to 1>> <<overupperwear _index>> <<elseif $worn.upper.warmth lt 6>> /* neutral: puffer jacket, winter jacket, turtleneck jumper, cable-knit turtleneck, ghost jumper */ <<set _slot to "upper">> <<set _upper to [71, 103, 45, 43, 133]>> <<if $player.gender_appearance is "m" or $settings.forcedCrossdressingEnabled>> /* masc: punk leather, leather, letterman jackets, skull jumper */ <<set _upper.push(40, 41, 62, 135)>> <</if>> <<if $player.gender_appearance is "f" or $settings.forcedCrossdressingEnabled>> /* femme: heart jumper, girl's sweater */ <<set _upper.push(134, 28)>> <</if>> <<set _index to _upper.random()>> <<upperstrip>> <<switch _index>> <<case 133>><<upperwear _index "white" "neon blue">> <<case 134>><<upperwear _index "lilac" "pink">> <<case 135>><<upperwear _index "black" "red">> <<default>><<upperwear _index>> <</switch>> <<set _crossdress to ($worn.upper.gender is "f" and $player.gender_appearance is "m") or ($worn.upper.gender is "m" and $player.gender_appearance is "f")>> <<elseif !$worn.neck.cursed>> <<set _slot to "neck">> <<set _index to 16>> <<neckwear _index>> <<elseif $worn.head.warmth lt 3>> <<set _costume to $christmas is 1 or $halloween is 1>> <<set _slot to "head">> <<set _index to $christmas is 1 ? 8 : $halloween is 1 ? 53 : 2>> <<headwear _index>> <</if>> <<set _text_output to setup.clothes[_slot][_index].word is "n" ? `a pair of ${$worn[_slot].name}` : setup.clothes[_slot][_index].word + " " + $worn[_slot].name >> <<set _clothes.push(_text_output)>> <<outfitChecks>> <<if _bottomExposed>> <<set _slot to "lower">> <<set _index to either(22, 23, 39, 67)>> <<lowerwear _index>> <<set _text_output to setup.clothes[_slot][_index].word is "n" ? `a pair of ${$worn[_slot].name}` : setup.clothes[_slot][_index].word + " " + $worn[_slot].name >> <<set _clothes.push(_text_output)>> <</if>> <</widget>> /* To get the previous major area passage, use: $safePassage (for links in the last passage, unless we want to link the player elsewhere) */ /* Generic passouts */<<if $molestationstart is 1>> You awaken to find a <<generate1>><<person1>><<person>> on top of you. "Hey there, baby," <<he>> croons. "You were shivering something awful, so I figured I'd help you warm up. I know a good way to generate some body heat..." <<He>> leers down at you, rubbing lewdly against your body. <br><br> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<maninit>> <<set $enemyanger to 0>> <<set $encounterDialogue to "cold">> <</if>> <<effects>> <<effectsman>><<man>> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Passout Hypothermia Molest Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Passout Hypothermia Molest]]>><</link>></span><<nexttext>> <</if>><<effects>> <<set Weather.bodyTemperature++>> <<if $enemyarousal gte $enemyarousalmax>> <<ejaculation>> The <<person>> pushes <<himself>> off you with a satisfied groan, grinning at you. "There, all warmed up. You're lucky a good Samaritan like me was here to help." <<He>> gives your cheek a condescending pat before walking off with a chuckle. <<tearful>> you stand up and rub your hands together, teeth chattering. <<endcombat>> <<clotheson>> <<elseif $enemyhealth lte 0>> The <<person>> grunts as you manage to push <<him>> off of you with one last <<= $submissive lte 850 ? "vicious" : "desperate">> shove. "You fuckin' <<bitch>>!" <<he>> shouts after you as you scramble away. "If you didn't want someone to help you warm up, you shouldn't've been walking around like that!" <<tearful>> you sprint away from <<him>>. The exercise gets your blood pumping and distracts you from the cold, at least. <<athletics 1>> <br><br> <<clotheson>> <<endcombat>> <</if>> <<link [[Next|$safePassage]]>><<endevent>><<set $eventskip to 1>><</link>> /* Generic heatstroke passout: dangerous */<<if $molestationstart is 1>> You awaken to find a <<generate1>><<person1>><<person>> on top of you. "Hey there, hot stuff," <<he>> purrs. "Heatstroke got to you, huh? Let me give you a hand with that." <<He>> starts tugging at your clothes. <br><br> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<molested>> <<set $enemyno to 1>><<set $enemynomax to 1>> <<maninit>> <<npcstripall>> <<npcidlegenitals>> <<set $encounterDialogue to "hotStrip">> <</if>> <<effects>> <<effectsman>><<man>> <br><br> <<stateman>> <<actionsman>> <<outfitChecks>> <<if _fullyNaked or $enemyarousal gte $enemyarousalmax or $enemyhealth lte 0>> <span id="next"><<link [[Next|Passout Heatstroke Strip Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Passout Heatstroke Strip]]>><</link>></span><<nexttext>> <</if>><<effects>> <<outfitChecks>> <<set Weather.bodyTemperature-->> <<if _fullyNaked>> With one last tug, the <<person>> rips the last of your clothes off. <<He>> rakes <<his>> eyes down your nude body. "Nice," <<he>> says appreciatively. <<He>> climbs to <<his>> feet, tucking your clothes under <<his>> arm. "There, you should be plenty cool now." <br><br> <<tearful>> you struggle to sit up, still weak and overheated. You give <<him>> a <<= $submissive lte 850 ? "dirty" : "pleading">> look. <br><br> "What, no thank you?" The <<person>> clicks <<his>> tongue and shakes <<his>> head. "Well, I guess I'll just have to keep these as compensation for my good deed. Stay cool, <<girl>>." <<if $beauty gte ($beautymax / 7) * 4>> <<He>> pauses. "If you can, anyway. That might be hard to do, you <i>are</i> pretty hot." <<He>> leaves, chuckling at <<his>> own pun. <<else>> <<He>> winks at you. "Cute <<girls>> like you shouldn't be walking around with clothes on, anyway." <</if>> <<set $stealtextskip to 1>> <<stealclothes "strip">> <<elseif $enemyarousal gte $enemyarousalmax>> <<ejaculation>> The <<person>> falters as <<he>> convulses in orgasmic bliss, and you take advantage of the opportunity to tug free from <<his>> grasp. "Fine, alright, keep your clothes," <<he>> pants. "But don't go crying if the next person to help your overheated arse isn't as kind as me." <<elseif $enemyhealth lte 0>> The <<person>> grunts as you manage to push <<him>> off of you with one last <<= $submissive lte 850 ? "vicious" : "desperate">> shove. "You fuckin' <<bitch>>!" <<he>> shouts after you as you scramble away. "I was just trying to help you cool down!" <</if>> <<clotheson>> <<endcombat>> <<link [[Next|$safePassage]]>><<endevent>><<set $eventskip to 1>><</link>> /* Generic frostbite passout: safe */<<effects>><<generate1>><<person1>><<outfitChecks>><<rng>> <<hypothermiaClothes>><<set $outside to 0>> You wake up, feeling a little better than you remember. <<if _clothes.length gte 1>>You're wearing <<= _clothes.join(" and ")>><</if>>. <<if _wet>>Your wet clothes are folded neatly beside you.<</if>> You sit up and get a look at your surroundings. It looks like you're in <<if $location is "forest">> a camping tent. <<else>> <<switch $bus>> <<case "domus" "danube" "barb" "residential" "wolf">>a living room. <<case "high" "commercial">>some sort of breakroom. <<case "farm">>a barn. <<default>> <<if $bus.includes("lake")>> near the lake. <<else>> the backseat of a stranger's car. <</if>> <</switch>> <</if>> <br><br> "Oh, thank god you're awake!" a <<person>> says with a sigh of relief. "Your body was so cold, you had me worried. <<if _warmClothes>> You know, you really shouldn't be walking around without _warmClothes." <<He>> gestures to your clothes. "All yours, by the way." <</if>> <<if _wet>> <<He>> gives you an apologetic smile. "I hope you don't mind that I took your clothes off to dry. I had a change of clothes on me and figured you could use it." <</if>> <<if _crossdress or _costume>> <<He>> looks sheepish. "Sorry, it's all I had. <<if _crossdress and ($worn.upper.gender is "m" and $pronoun is "f") or ($worn.upper.gender is "f" and $pronoun is "m")>> It belonged to my ex, so I'm happy to be rid of it.<</if>><<if _costume>> T'is the season, am I right?<</if>>" <</if>> <br><br> <<if $speech_attitude is "meek">> "T-thank you," you stammer, still trembling from the cold. <<elseif $speech_attitude is "bratty">> "Thanks," you say. "I'd say I owe you one, but I'll probably never see you again." <<else>> "Thank you so much," you say, hugging your arms close to your body. <</if>> <br><br> The <<person>> smiles at you. "It's the least I can do. You go careful now, love." <<= _wet ? "You gather up your clothes" : "You bid <<him>> farewell">> and continue on your way. <br><br> <<link [[Next|$safePassage]]>><<endevent>><<set $eventskip to 1>><</link>> /* Generic heatstroke passout: safe */<<set $outside to 0>><<effects>> <<generate1>><<person1>> <<set _exposed to $exposed gte 2>> <<returnCarried>> <<strip>> <<upperwear 157 "white">> You wake up, feeling a little better than you remember. A thin sheet covers your body, keeping you modest but cool. You <<if $player.perceived_breastsize gte 2 or $player.gender_appearance is "f">>hold it to your chest as you <</if>>sit up and get a look at your surroundings. It looks like you're in <<switch $bus>> <<case "domus" "danube" "barb" "residential" "wolf">>a living room. <<case "high" "commercial">>some sort of breakroom. <<case "farm">>a barn. <<case "forest">>an unfamiliar cabin. <<default>> <<if $bus.includes("lake")>> a shady area near the lake. <<else>> the backseat of a stranger's car. <</if>> <</switch>> <br><br> "You're awake! I'm so glad, I was about to call an ambulance!" a <<person>> cries, rushing to your side. <<He>> offers you a bottle of water, which you take <<if $trauma gte ($traumamax / 5) * 2>>with some hesitation <</if>>and pop open to drink. You find it gone much faster than you expected. <br><br> <<if $speech_attitude is "meek">> "Did you...save me? Thank you..." <<elseif $speech_attitude is "bratty">> "<<if !_exposed>>Where are my clothes? <</if>>What did you do to me?" <<else>> "Thank you! I don't even remember what happened..." <</if>> <br><br> <<He>> takes the empty bottle and <<= _exposed ? "smiles at you" : "fetches your clothes">>. <<if _exposed>> "It seems like you collapsed from the heat. An impressive feat, given your state of undress. <<switch Time.season>> <<case "summer">> I don't blame you for stripping down this time of the year though. Just be careful, it's not safe for <<girls>> like you to be so exposed around here."<<if $molesttrait gte 1 or $rapetrait gte 1>> <<He>> doesn't even know the half of it.<</if>> <<case "autumn">> The weather's getting cooler, but that's no excuse to overexert yourself. Even with no clothes on." <<case "winter">> I don't think that should even be possible in the winter. <span class="red">Maybe you should report this to the developers</span>?" <<default>> It feels like every year gets hotter sooner, doesn't it? But you should probably be more careful walking around like that." <</switch>> <<else>> "Sorry about stripping you. It seemed like you collapsed from the heat, so I thought it'd be a good idea to take everything off to help you out." <<He>> offers the bundle of clothing to you. "You may want to choose what you put on a little more carefully. <<switch Time.season>> <<case "summer">> The heat is killer this time of year." <<He>> grimaces sympathetically. <<case "autumn">> The weather's cooling down, but you don't need to bundle up quite so much yet!" <<He>> chuckles lightly. <<case "winter">> I'm not sure how you managed to get heatstroke in the winter, but a few less layers may do you some good." <<He>> gives you a wry smile. <<default>> The weather's warming up, after all." <<He>> smiles. <</switch>> <</if>> <br><br> The <<person>> backs away. "I'll give you some <<= _exposed ? "space" : "privacy">>." <br><br> <<if hasSexStat("promiscuity", 3)>> <<link [[Offer to thank <<him>> with your body|Passout Heatstroke Rescue Thank]]>><</link>><<promiscuous3>> <br> <</if>> <<if !_exposed>> <<link [[Get dressed|Passout Heatstroke Rescue Dress]]>><<set $phase to 1>><</link>> <<else>> <<link [[Wear the bedsheet|Passout Heatstroke Rescue End]]>><</link>> <</if>><<effects>> You put a hand on the <<persons>> thigh. <<if $speech_attitude is "meek">> "Th-that was really...<i>really</i> sweet of you to help me... Is there s-some way I can return the favour...?" <<elseif $speech_attitude is "bratty">> "You really got me out of a bad situation. I don't wanna owe you anything, so how about you let me thank you properly?" <<else>> "You really saved <<if $cow gte 6>>my hide<<else>>me<</if>>. There must be some way I could thank you." <</if>> <br><br> <<set $seductiondifficulty to 6000>> <<seductioncheck>> <<seductionskilluptext>> <<seductionskilluse>> <<if $seductionrating gte $seductionrequired>> The <<person>> is caught off-guard for a moment, but soon laughs and returns to your side. "Well, someone's got <<pher>> energy back! I wouldn't say no to a little appreciation..." <br><br> <<link [[Next|Passout Heatstroke Rescue Thank Sex]]>><<set $sexstart to 1>><</link>> <<else>> The <<person>> gives an awkward laugh. "I, uh, appreciate your offer. But I don't think that would be a good idea, especially while you're still recovering." <br><br> <<He>> smiles and walks out of sight, giving you space to <<= _exposed ? "collect yourself" : "get dressed">>. <br><br> <<if !_exposed>> <<link [[Get dressed|Passout Heatstroke Rescue Dress]]>><<set $phase to 1>><</link>> <<else>> <<link [[Wear the bedsheet|Passout Heatstroke Rescue End]]>><</link>> <</if>> <</if>><<if $sexstart is 1>> <<set $sexstart to 0>> <<consensual>> <<set $consensual to 1>> <<neutral 1>> <<maninit>> <<set $enemytrust += 100>> <<set $encounterDialogue to "hot">> <</if>> <<effects>> <<effectsman>> <<man>> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Passout Heatstroke Rescue Thank Sex Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Passout Heatstroke Rescue Thank Sex]]>><</link>></span><<nexttext>> <</if>><<set $outside to 1>><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<ejaculation>> <<He>> laughs again as <<he>> fans <<himself>>, face flushed. "Now <i>I'm</i> feeling a little hot! Glad to see you've healed so much, <<girl>>. Take as much time as you need, alright?" <br><br> The <<person>> pulls away from you, giving you some space. <br><br> <<elseif $enemyhealth lte ($enemyhealthmax / 2)>> The <<person>> pulls away from you, hands up. "Woah, woah, take it easy! If you didn't want it you shouldn't've offered in the first place! Hurry up and get yourself together." <br><br> <<tearful>> you pull yourself together. <<He>> gives you some space. <br><br> <<else>> The <<person>> pulls away from you, hands up. "Alright. Take as much time as you need." <br><br> <</if>> <<endcombat>> <<if !_exposed>> <<link [[Get dressed|Passout Heatstroke Rescue Dress]]>><<set $phase to 1>><</link>> <<else>> <<link [[Wear the bedsheet|Passout Heatstroke Rescue End]]>><</link>> <</if>><<effects>> It occurs to you that it might be best to put on fewer clothes for right now. Anything else can be sent to your wardrobe. <br> <<getDressedList>> <<link [[Just wear the bedsheet|Passout Heatstroke Rescue End]]>><<strip>><<returnCarried>><<if $worn.upper.name isnot "bedsheet">><<upperwear 157 "white">><</if>><</link>> <br> <<link [[Finish dressing|Passout Heatstroke Rescue End]]>><</link>><<effects>> You thank your rescuer, and <<he>> nods. "Try and be more mindful of the heat from now on," <<he>> replies with a wave. You wave back and resume your journey. <br><br> <<link [[Next|$safePassage]]>><<endevent>><<set $eventskip to 1>><</link>> /* Location passouts */<<set $outside to 0>><<set $location to "farm">><<effects>> <<npc Remy>><<generate2>><<generate3>> <<set _cow to $player.gender_appearance is "m" ? "bull" : "cow">> You awaken in a dingy windowless room, the stone walls lit only by a flaming torch held by a <<person2>><<person>>. <<He>> and a <<person3>><<person>> stand, looking down at you. You're lying on a bed of straw. <br><br> <<person1>>"Awake I see," says a voice. It's Remy. <<He>> walks down a set of stone steps leading into the room and kneels beside you. <br><br> <<if $passoutReason is "hyperthermia">> "We found you passed out. You caused quite the worry, but my examination found no problems. You simply overheated." <<He>> strokes your hair. "<<= $farmGateCD is 0 ? "One of my men said you were acting up tonight. Maybe next time you'll be a good _cow and behave, hmm?" : "I'm proud you're being such a hard worker, but we can't have such a valuable member of our herd fainting, now can we?">> All that exercise must have gotten to you. Here, <<girl>>." <br><br> Remy holds up a bowl of water, and you realise just how parched you are. <<He>> lifts the bowl to your lips, and you gulp down the cool water greedily. Your desperation to slake your thirst causes some to spill on your <<chest>> and <<he>> chuckles. When the last drop of water is gone, you sigh with relief. <br><br> Remy sets down the bowl and <<= $cow gte 2 and $transformationParts.cow.horns isnot "hidden" ? "rubs the base of your horns" : "pets your head">>. "That's a good <<girl>>. You'll take care next time, won't you?" <br><br> <<set Weather.bodyTemperature-->> <<link [[Listen|Livestock Passout 2]]>><<set $phase to 0>><<livestock_obey 1>><<transform cow 1>><</link>><<gobey>> <br> <<link [[Push away|Livestock Passout 2]]>><<set $phase to 1>><<livestock_obey -1>><<trauma -6>><</link>><<lobey>><<ltrauma>> <<else>> "We found you passed out and shivering. You caused quite the worry, but my examination found no problems. You simply got too cold." <<He>> strokes your hair. <br><br> <<set Weather.bodyTemperature++>> <<if $speech_attitude is "meek">> "Um... maybe if I had some clothes, that would help?" you whisper. <<elseif $speech_attitude is "bratty">> "Yeah, well, maybe I wouldn't freeze to death if you'd give me some clothes," you say. <<else>> "Can I get some clothes?" you ask. "It's too cold to go around naked like this." <</if>> <br><br> Remy purses <<his>> lips. "Now, now, <<girl>>, don't be silly. Cattle don't wear clothes." <<He>> strokes your hair. "You just need to get your blood pumping, that's all. I'm sure we can find a job that'll keep you plenty active. You'll warm right up, you'll see." <</if>> <br><br> <<link [[Listen|Livestock Passout 2]]>><<set $phase to 0>><<livestock_obey 1>><<transform cow 1>><</link>><<gobey>> <br> <<link [[Push away|Livestock Passout 2]]>><<set $phase to 1>><<livestock_obey -1>><<trauma -6>><</link>><<lobey>><<ltrauma>><<set $location to "pirate_ship">><<effects>> <<outfitChecks>> <<if $pirate_rank gte 1>> <<if $passoutReason is "hyperthermia">> <<set Weather.bodyTemperature-->> You wake up <<= _fullyNaked ? "cool and dry" : "naked and cool, but dry">>, save the water being poured on you. You <<= $speech_attitude is "meek" ? "whimper" : $speech_attitude is "bratty" ? "groan" : "gasp">> and wipe at your face to clear your airways, much to the <<= $pirate_status gte 70 ? "cheers" : $pirate_status gte 50 ? "pleased chatter" : "amusement">> of your mates. <<else>> <<set Weather.bodyTemperature++>> You wake up dry and bundled in blankets, nestled between two large bodies. You <<= $speech_attitude is "meek" ? "whimper" : $speech_attitude is "bratty" ? "groan" : "gasp">> as a shiver runs through you, shaking off the last of your frostbite. The pirates on either side of you <<= $pirate_status gte 50 ? "rub your back and sides" : "roughly pat you on the back">> with a laugh at your recovery. <</if>> <br><br> Another pirate fetches Captain Zephyr when you awake. "Welcome back from the brink, mate. Tis good fortune we found ye. <<print either ("Nature is no kinder mistress out at sea", "Raw nor cooked makes no difference to the mer. You're asking' for trouble swimming alone like that")>>." <br><br> <<= !_fullyNaked ? "<<dry_full>>Your dry clothes are returned to you and a towel" : "A towel">> is dropped onto your head.<<if $pirate_status gte 50>> A pirate ruffles your hair dry<<ruffleHair>>.<</if>> <br><br> Once you're dry and on your feet again, Captain Zephyr commands <<nnpc_his "Zephyr">> crew. "Alright, ye dogs! Back to work!" <br><br> <<link [[Next|Pirate Cabin]]>><<endevent>><</link>> <<else>> <<ruined>> <<if $passoutReason is "hyperthermia">> You wake up naked and bound, wind whipping at you and sea mist spraying you. You've cooled down a lot, but that doesn't protect you much from the realisation that you're suspended off the ground! <<gstress>><<stress 6>> <<set Weather.bodyTemperature-->> <<else>> <<upperwear 157>> You wake up bound, bare of anything but what feels like a cocoon of sheets. The wind <<if ["rain", "snow"].includes(Weather.precipitation)>>and <<= Weather.precipitation>> whip<<else>>whips<</if>> at your face, and the sea mist sprays you. You feel a lot warmer, but that doesn't provide much relief from the realisation that you're suspended off the ground! <<gstress>><<stress 6>> <<set Weather.bodyTemperature++>> <</if>> <br><br> "Captain! The <<lass>> is awake!" you hear someone call from below you. The bindings holding you upright loosen, sending you sliding down the mast. You <<= $feetskill gte 600 ? "manage to keep upright when your feet hit the ground, before the motion of the boat sends you to the floor" : "crumple to the ground on wobbly legs">>. <<gpain>><<pain 4>> <br><br> The pirates surrounding you part as <<= $pirate_intro is 1 ? "Captain Zephyr" : "someone you presume to be the captain">> approaches. <br><br> <<link [[Next|Pirate Intro]]>><</link>> <</if>><<effects>><<outfitChecks>> <<silently>><<water>><</silently>> You sit straight up, coughing water out of your lungs as the ocean waves surge over your prone body. It looks like the tide has come in. <<if !_fullyNaked and !_swimwear>> <span class="red">Your clothes are soaked.</span> <<= hasSexStat("exhibitionism", 5) ? "You shiver with excitement, your <<lewdness>> on full display" : "You quickly cover up and look for the nearest changing room">>. <<gstress>><<stress 6>> <br><br> <<link [[Changing room|Changing Room]]>><<endevent>><</link>> <<else>> <br><br> You remain seated in the surf, letting the water rush over your legs until you feel cool enough to stand up. <r><br> <<link [[Next|$safePassage]]>><<endevent>><<set $eventskip to 1>><</link>> <</if>><<effects>><<npc Robin>><<person1>> <<set Weather.bodyTemperature-->> You feel a pair of hands on your body, trying to shake you awake. "Wake up!" a familiar voice says. There's a splash of cold water on your face, and you blink, looking around. Your vision is fuzzy, but you can make out most of the features of the person standing in front of you. It's Robin. <br><br> You give <<him>> a smile and manage to mumble a thank you. <<He>> sighs, shaking <<his>> head. "You could've been seriously hurt. Why didn't you just go in the water?" <<he>> asks. You don't have a good response for <<him>>. <br><br> <<He>> stands up, then runs back to <<his>> lemonade stand, where <<he>> fiddles with the pitcher of lemonade. "Here. You should drink some. It'll help you cool down." <<He>> holds out a cup of lemonade. <br><br> <<link [[Take the lemonade|Passout Beach Heatstroke Lemonade Take]]>><</link>> <br> <<link [[Ask for help|Passout Beach Heatstroke Lemonade Help]]>><</link>><<effects>><<wearProp "lemonade" 0 "default">> You grab the lemonade from Robin's hands and bring it to your lips. It tastes slightly salty, and your nose wrinkles at the unfamiliar taste. <br><br> "Sorry, I know it tastes kinda gross. But you need electrolytes," <<he>> says, sitting next to you. You down the lemonade as quickly as you can. "The ice, too," Robin adds. <br><br> You take a few small cubes into your mouth and let them sit on your tongue. It feels nice, and it takes your attention away from the rest of your body. <br><br> <<if C.npc.Robin.trauma gte 40>> <<He>> sighs. You can tell <<he>> was worried for you. You wrap an arm around <<his>> shoulder and lean your head against <<him>>. <<elseif C.npc.Robin.dom gte 50>> <<He>> sighs and leans <<his>> head against your shoulder. "You should be more careful. Next time,<<= Weather.temperature gte 20 ? "take some layers off or" : $bus isnot "seabeach" ? "go in the water or" : "">> go inside. Don't neglect yourself," <<he>> says, brushing <<his>> hand against your knee. <<else>> <<He>> sighs. "You're lucky. You should be more careful. Next time, I might not be here to help you... And we both know what this town can be like. Take care of yourself," <<he>> tells you, resting a hand on your knee. <</if>> <br><br> <<if $speech_attitude is "meek">> "I'm sorry I made you nervous. I'll be safer, I promise," you tell <<him>>. <<elseif $speech_attitude is "bratty">> "Well, I ended up okay, right? That's what really matters," you say, patting <<his>> shoulder. <<else>> "I'll be more careful. Don't worry about me," you reassure <<him>>. <</if>> <br><br> <<He>> takes the cup from your hands and smiles at you, but <<he>> still looks concerned. <br><br> <<link [[Next|Passout Beach Heatstroke Lemonade End]]>><<handheldon>><</link>><<effects>> <<if $speech_attitude is "meek">> "Can you help me?" you ask, trying and failing to move your arms. <<elseif $speech_attitude is "bratty">> "My arms aren't working right now. Lend me a hand?" you ask. <<else>> "I don't think my body wants to move," you say with a weak laugh. <</if>> <<He>> looks confused for a moment, then blushes. <br><br> <<if C.npc.Robin.trauma gte 40>> <<He>> presses the cup against your lips, <<his>> hands shaking. Slowly, <<he>> tilts the cup back, and you sip from it. It tastes salty. <<He>> keeps the cup pressed to your lips, and some of it spills on you. You drink until it's gone, and Robin finally takes the cup back. You gasp, taking a moment to catch your breath. "Oh... I didn't realise you couldn't breathe well. Sorry," <<he>> mumbles. <<elseif C.npc.Robin.dom gte 50>> <<He>> pushes the cup to your lips, and you nod to signal that you're ready. <<He>> tilts the cup back, and you choke on the drink. "Oh. I added some salt for some electrolytes. Sorry that it tastes gross," <<he>> says with a small laugh. <br><br> You laugh as well before dutifully opening your mouth for more of the weird lemonade. When you finish, <<he>> pulls it away from your mouth. <<else>> <<He>> brings the cup to your lips, holding it gently. You nod, and <<he>> begins to tilt it back, letting you slowly drink the lemonade. You sputter when it first touches your tongue. "Oh, sorry. I added salt for some electrolytes. I know it tastes gross, but I know you can drink it," <<he>> says. <br><br> You take a deep breath, preparing for more of the weird lemonade. When you finish, <<he>> pulls it away from your mouth. <</if>> <br><br> <<link [[Next|Robin Lemonade Help End]]>><</link>><<effects>> Robin stands up. "I should get back to my stand now," <<he>> says, glancing over at it. <<= $balloonStand.robin.status is "helped" ? "A customer munches on popcorn while waiting patiently for Robin to return." : "No one is there. It doesn't look like <<he>> missed any customers while taking care of you.">> "Be safe. I'll see you around, okay?" <<He>> rubs your shoulder, and you watch <<him>> head back to the lemonade stand. <<set $daily.robin.passout to 1>> <br><br> <<link [[Next|$safePassage]]>><<endevent>><<set $eventskip to 1>><</link>><<effects>> <<generateRole 0 "popular" "boy/girl">> You feel a pair of arms hook under you and lift you off the sand. <<if $cool gte 240>> <<set Weather.bodyTemperature-->> Someone splashes water over your face. Some of your friends are standing over you, a concerned look on their faces. "We found you on the sand. What happened?" one of them asks. <br><br> "Hot..." you mumble, feeling ready to go back to sleep. They pull you closer to the surf, dragging you across the rough sand. The cool water laps over your feet. <br><br> "Stay in the water for a while, okay?" one of them says, patting your shoulder. You nod and allow yourself to enjoy the sensation of water on your skin. They soon leave you alone, and you occupy yourself with watching the waves. <br><br> <<link [[Next|$safePassage]]>><<endevent>><<set $eventskip to 1>><</link>> <<else>> They heave you up. You feel as if you're floating, and it's almost pleasant, until they unceremoniously throw you into the water. Your eyes snap open, and you thrash about, disoriented. <<water>> <br><br> You hear laughter and look to find a <<person1>><<person>> from school, as well as some of <<his>> friends. <<He>> smirks at you. "You should count yourself lucky that I found you. Care to pay me back for my kindness?" <<he>> asks. <<He>> makes a lewd gesture, and <<his>> friends snicker. <br><br> <<if hasSexStat("promiscuity", 4)>> <<link [[Comply|Passout Beach Heatstroke Students Sex]]>><<set $phase to 1>><<set $sexstart to 1>><</link>><<promiscuous4>> <br> <</if>> <<if !hasSexStat("promiscuity", 3) and $uncomfortable.prostituting is false>> <<link [[Reluctantly comply|Passout Beach Heatstroke Students Sex]]>><<set $desperateaction to 2>><<set $phase to 1>><<set $sexstart to 1>><</link>> <br> <</if>> <<link [[Refuse|Passout Beach Heatstroke Students Sex]]>><<set $phase to 0>><<set $molestationstart to 1>><</link>> <</if>><<location "beach">> <<if $phase is 0>> <<if $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<maninit>><<npcoral>> <</if>> <<effects>> <<effectsman>> <<man>> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Passout Beach Heatstroke Students End]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Passout Beach Heatstroke Students Sex]]>><</link>></span><<nexttext>> <</if>> <<elseif $phase is 1>> <<if $sexstart is 1>> <<set $sexstart to 0>> <<consensual>> <<set $consensual to 1>> <<neutral 1>> <<maninit>><<npcoral>> <<set $enemytrust -= 40>> <</if>> <<effects>> <<effectsman>> <<man>> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Passout Beach Heatstroke Students End]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Passout Beach Heatstroke Students Sex]]>><</link>></span><<nexttext>> <</if>> <</if>><<effects>> <<if $enemyhealth lte 0>> The <<person>> stumbles back, glaring at you. "That's how you show gratitude? What a <<bitch>>," <<he>> spits. One of <<his>> friends kicks you in the <<= playerBellyVisible() ? "shin" : "stomach">> before leaving. <<gpain>><<pain 6>> <<elseif $enemyarousal gte $enemyarousalmax>> The <<person>> leans back, letting a moan escape <<his>> lips. "Not half bad, <<girl>>. Maybe I'll rescue you more often. Thanks for the fuck," <<he>> says before leaving. <<elseif $finish is 1>> "Not even a 'thank you'? Unbelievable," the <<person>> mutters, standing up. <<He>> kicks you in the <<= playerBellyVisible() ? "shin" : "stomach">> as <<he>> leaves with <<his>> friends. <<gpain>><<pain 6>> <</if>> <br><br> <<tearful>> you collect yourself, sitting in the water until you feel comfortable enough to stand. <<clotheson>> <<endcombat>> <<link [[Next|$safePassage]]>><<endevent>><<set $eventskip to 1>><</link>><<effects>> <<generate1>><<person1>> You feel someone's hands on your skin. You want to squirm, but your body doesn't move. <br><br> You feel someone's hands on your skin. You want to squirm, but your body doesn't move. "God, your skin is blistering hot!" <<he>> gasps. <<He>> hoists you from the sand and hurries you to the water. Your entire body is dunked under, then pulled up. <<silently>><<water>><</silently>> <br><br> You cough, and your eyes flutter open to see a <<person1>><<person>> in front of you. When <<he>> makes eye contact with you, <<he>> exhales in relief. <br><br> <<He>> stands up, letting you rest in the water. "It's dangerous to be outside in this. You should be careful," <<he>> says, running a hand through <<his>> hair. <<He>> stays with you for a few more minutes before sighing. "I should head back to my kids. Stay safe," <<he>> says. You wave a goodbye, and <<he>> leaves to a more crowded section of the beach. <br><br> <<link [[Next|$safePassage]]>><<endevent>><<set $eventskip to 1>><</link>><<effects>> <<generate1>> <<person1>> <<outfitChecks>> <<set $outside to 0>><<set $location to "arcade">> <<hypothermiaClothes>> You awake to a hand on your forehead. Your senses are flooded with the flashing lights and loud noises of arcade games. You quickly shut your eyes again and concentrate on your breathing. <br><br> <<if _wet>> Hands tear at your clothes. Someone rubs a towel across your body before dressing you in something warm. Heavy blankets are piled on top of you. <<elseif _clothes.length gte 1>> Someone dresses you in something warm, and you feel heavy blankets being piled on top of you. <<else>> Someone piles heavy blankets on you. <</if>> <br><br> "Hey, <<girl>>, are you awake?" someone asks, nudging you until you open your eyes. A <<person>> stares down at you, nodding when you make eye contact. <<if _clothes.length gte 1>>You realise that you're wearing <<= _clothes.join(" and ")>><</if>>. <<if _wet>>Your wet clothes are folded neatly beside you.<</if>> <br><br> "You looked like you could use _warmClothes," the <<person>> says by way of explanation. <<He>> props you up against an arcade machine and brings a cup of what smells like hot chocolate to your lips. You automatically take a sip. It reminds you of Robin.<<if $robinmissing isnot 0>><<gtrauma>><<trauma 6>><<else>><<ltrauma>><<trauma -6>><</if>> <br><br> You stay there for a while, listening as the <<person>> talks about <<his>> life. After some time, <<he>> stands up. "You should be good for now, but make sure you warm up," <<he>> says. <<He>> stands up, waves you goodbye, and walks out of the arcade. <br><br> <<link [[Next|Arcade]]>><<endevent>><</link>><<effects>><<generate1>> <<person1>> <<set $outside to 0>><<set $location to "hospital">> The last thing you hear is a <<personsimple>>'s voice. "Wait, I know that face... people call <<phim>> `<<overworld_nickname>>`, right? We should get <<phim>> to a hospital." <<He>> scoops you up and places you in the backseat of a car. The car is warm, and you drift off. <br><br> <<link [[Wake up|Hospital Bed]]>><<set $passoutReason to "hypothermia">><</link>><<if $molestationstart is 1>> <<set $molestationstart to 0>> You wake up to someone ripping your clothes from you. You open your eyes and see your assailant, a <<generate1>><<person1>><<person>>. "Sharing body heat is important when you're cold," <<he>> says. "I'll warm you right up." <<He>> flashes you a smirk before rubbing against your body. <br><br> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<maninit>> <<enable_rescue>> <<set $enemyanger to 0>> <<set $encounterDialogue to "cold">> <</if>> <<effects>> <<effectsman>><<man>> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Passout Beach Hypothermia Molest Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Passout Beach Hypothermia Molest]]>><</link>></span><<nexttext>> <</if>><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<ejaculation>> The <<person1>><<person>> stands up and tosses a beach towel at you. "There, you've gotta be good and warm now. In fact, I don't think you need these anymore." <<stealclothes "strip">> <<He>> leaves, taking your clothes with <<him>>. <br><br> You shiver, but at least you're warm enough to move now. <<clotheson>> <<endcombat>> <<if pcAreArmsBound("both")>> Unable to cover yourself, you sprint to the safety of a changing room as fast as you can. <<garousal>><<gstress>><<gtrauma>><<stress 6>><<trauma 6>><<arousal 600>><<fameexhibitionism 30>> <br><br> <<link [[Changing room|Changing Room]]>><<endevent>><</link>> <<else>> <<if $exposed gte 2>> You cover your body with your hands and sprint to the safety of a changing room. <<fameexhibitionism 20>><<garousal>><<arousal 600>> <br><br> <<link [[Changing room|Changing Room]]>><<endevent>><</link>> <<else>> You sprint to the safety of a changing room as fast as you can. <<garousal>><<arousal 300>><<fameexhibitionism 10>> <br><br> <<link [[Changing room|Changing Room]]>><<endevent>><</link>> <</if>> <</if>> <<elseif $enemyhealth lte 0>> The <<person1>><<person>> lets out a cry of pain and releases you. <<stealclothes "strip">> <<He>> stands up, bunching your clothes under <<his>> arm, and kicks you as <<he>> leaves. <<gpain>><<pain 3>> <br><br> You shiver, but you're warm enough to move now. <<clotheson>> <<endcombat>> <<if pcAreArmsBound("both")>> Unable to cover yourself, you sprint to the safety of a changing room as fast as you can. <<garousal>><<gstress>><<gtrauma>><<stress 6>><<trauma 6>><<arousal 600>><<fameexhibitionism 30>> <br><br> <<link [[Changing room|Changing Room]]>><<endevent>><</link>> <<else>> <<if $exposed gte 2>> You cover your body with your hands and sprint to the safety of a changing room. <<fameexhibitionism 20>><<garousal>><<arousal 600>> <br><br> <<link [[Changing room|Changing Room]]>><<endevent>><</link>> <<else>> You sprint to the safety of a changing room as fast as you can. <<garousal>><<arousal 300>><<fameexhibitionism 10>> <br><br> <<link [[Changing room|Changing Room]]>><<endevent>><</link>> <</if>> <</if>> <<else>> The lifeguard shouts at the <<person1>><<person>>, and <<he>> quickly flees. Thankfully, <<he>> leaves your clothes on you. <<clotheson>> <<endcombat>> <<link [[Next|$safePassage]]>><<endevent>><<set $eventskip to 1>><</link>> <</if>> <br><br><<effects>> <<outfitChecks>> <<set $outside to 0>> <<npc Robin>><<person1>> Someone is shaking you. You open your eyes, your vision swimming. Robin kneels over you, and <<his>> voice is panicked. "I saw you just keel over, and I thought you had been drugged or something!" <<he>> says. "But you're freezing..." <br><br> You apologise, but your words come out slurred. <<He>> looks even more worried. <<He>> glances once at <<his>> lemonade stand, then sighs." I guess it'll be fine if I leave it for a few minutes. I'd rather make sure you're okay." <br><br> <<He>> helps you to your feet, then guides you to the changing rooms. <<He>> checks that it's empty before tugging you inside. <<He>> sets you down on the bench and grabs a towel from the stacks on the high shelves. <<if _fullyNaked>> "I don't know what you were thinking, running around naked like this..." <<He>> frowns as <<he>> wraps a towel around you. <<He>> grabs a few more to cover you with. <br><br> <<link [[Next|Passout Beach Hypothermia Robin End]]>><</link>> <<elseif $upperwetstage gte 3 or $lowerwetstage gte 3 or $underlowerwetstage gte 3 or $underupperwetstage gte 3>> <<He>> rubs the towel across your damp skin. You get the sense that <<hes>> working hard to keep <<his>> movements gentle despite <<his>> panic. <br><br> <<if isLoveInterest("Robin")>> "I need to get these clothes off you... I won't look if you don't want me to, okay? But this is necessary." <<He>> quickly undresses you. <<He>> averts <<his>> eyes and holds out a towel. <br><br> <<link [[Take the towel|Passout Beach Hypothermia Robin Towel]]>><<towelup>><</link>> <br> <<link [[Ask for help|Passout Beach Hypothermia Robin Help]]>><</link>><<glust>> <<else>> <<His>> fingers rest on your _top.name. "Your clothes are wet...I'll be outside. Can you put a towel on? Call for me when you're done." <<He>> puts a towel next to you and steps outside. <br><br> <<link [[Take the towel|Passout Beach Hypothermia Robin Towel]]>><<towelup>><</link>> <</if>> <<else>> "Wrap this around yourself, it should help you warm up a bit." It's tough moving your frigid fingers, so <<he>> wraps it around your shoulders before grabbing a few more to cover you with. <br><br> <<link [[Next|Passout Beach Hypothermia Robin End]]>><</link>> <</if>><<effects>><<set $outside to 0>> You take the towel with some difficulty, your fingers still stiff and numb. You wrap it around your body and call for Robin. <br><br> <<link [[Next|Passout Beach Hypothermia Robin End]]>><</link>><<effects>><<set $outside to 0>> <<towelup>> <<if $speech_attitude is "meek">> You try to reach out and grab the towel, but you don't get very far. "Robin... could you wrap it around me?" <<elseif $speech_attitude is "bratty">> You try to grab the towel, but your arms feel heavy. You try again before giving up. "A little help here, Robin?" <<else>> You reach out to grab the towel, but your arms fail to move. "I think I'm too cold to move." <</if>> <br><br> <<He>> looks at you, staring at your nude body for a moment before returning to <<his>> senses. <<He>> carefully wraps the towel around you. <<His>> fingers on your skin send shivers down your body. <<He>> takes notice and gives you a worried look, but you assure <<him>> it's okay. <br><br> <<link [[Next|Passout Beach Hypothermia Robin End]]>><</link>><<effects>><<set $outside to 0>> <<if C.npc.Robin.trauma gte 40>> <<He>> pulls you into a hug, and you can tell <<hes>> working hard to keep <<his>> breathing steady. <<elseif C.npc.Robin.dom gte 50>> "What were you thinking?" <<he>> says, shaking <<his>> head. "What if I wasn't here?" You don't have a satisfactory answer for <<him>>. <<He>> sighs and wraps one arm around you. <<else>> "You should be more careful. This kind of stuff is serious." <<He>> wraps an arm around your shoulders, rubbing your cold skin. <</if>> <br><br> You stay like this for some time, then <<he>> stands back up. <<if C.npc.Robin.trauma gte 40>> <<His>> mouth hangs open for a moment, as if <<he>> wants to say something else. <<He>> quickly wraps <<his>> arms around you, squeezing tight. "I... I need to get back to it. Stay dry and warm. I'll see you soon, right?" <<he>> asks. You give <<him>> a smile and nod. <<else>> "I need to get back to my stand now," <<he>> says, though <<he>> sounds like <<he>>'d rather stay with you. "I'm glad you're not hurt. Stay safe, okay? Go put something warm and dry on!" <</if>> <br><br> <<link [[Next|$safePassage]]>><<endevent>><<set $eventskip to 1>><</link>><<set $location to "tower">><<setTowerTemp>><<effects>> <<npc "Great Hawk">><<person1>> <<outfitChecks>> <<if !_fullyNaked>> <<if _bottom>><<set _bottom.integrity -= 5>><</if>> <<if _top>><<set _top.integrity -=5>><</if>> <br><br> You realise you're half naked, and your clothes are being pulled off by <<your_bird_text>>. <<bHe>> uses <<bhis>> <<if $monster is 0>>beak and<</if>> talons to pull at the fabric of your clothes, attempting to undress you. <br><br> <<if $monster is 1>> "<<Wife>>'s awake! Helping <<wife>> cool down." <<else>> <<your_bird_text "cap">> seems relieved when <<bhe>> notices you're awake. <</if>> Soon, <<bhe>> succeeds in taking the last garment off of your body. <<if _top.integrity lte 0 or _bottom.integrity lte 0>> <<integritycheck>><<exposure>> You're too fatigued from the heat to even be mad at <<bhim>>. <br><br> <</if>> <br><br> <<bHe>> seems proud of <<bhimself>>, despite the damage <<bhes>> caused to your clothes. <</if>> <br><br> <<if $monster is 1>> "Come." <<your_bird_text "cap">> tilts <<bhis>> head towards the rainwater pool. "Bath helps." <<else>> <<your_bird_text "cap">> tilts <<bhis>> head towards the rainwater pool, beckoning you to join <<bhim>>. <</if>> <br><br> As you both submerge in the cool water, <<if Weather.temperature gte 20>>finding relief from the warm air<<else>>and your body temperature starts to lower<</if>>, <<bhe>> dips <<bhis>> <<= $monster is 1 ? "mouth" : "beak">> into the pool, taking in refreshing sips of water. <<if $monster is 1>> "Drink water," <<bhe>> encourages, "you will feel better." <<else>> <<bHe>> pauses, glancing at you expectantly. <</if>> You're suddenly acutely aware of your dry mouth, and you cup your hands and bring the cool liquid to your lips. The refreshing taste of water soothes your parched throat, providing much-needed hydration after the ordeal of the heatstroke. <<stress -3>><<lstress>> <br><br> The Great Hawk opens <<bhis>> <<= $monster is 1 ? "mouth" : "beak">> slightly and takes quick, shallow breaths. <<if understandsBirdBehaviour()>> Understanding <<bhis>> cue, you follow suit. <<else>> You stare at <<bhim>> blankly, confused, until <<bhe>> gives a frustrated chirp, and it clicks. "Oh!" You try panting too. <</if>> You're not sure how effective panting is to cool off, but it seems to please <<bhim>>. <br><br> <<link [[Next|Passout Bird Heatstroke Fluff]]>><<pass 5>><</link>><<effects>> Following <<your_bird_text>>'s lead, you mimic <<bhis>> panting technique, taking quick, shallow breaths to cool off. The rhythm of your panting matches <<bhis>> as you both continue to soak in the refreshing water of the rainwater pool, though you feel quite silly doing so. <<bHe>> flaps <<bhis>> wings conscientiously in an attempt to blow cool air on you. <br><br> After the refreshing bath, <<bhe>> guides you out and to the perch. <<bHe>> shakes off the excess water from <<bhis>> sleek feathers, and they poof up. <<if $harpy gte 6>>Following <<bhis>> lead, you do the same.<</if>> In one fluid motion, <<bhe>> spreads <<bhis>> wings wide, catching a gentle breeze that rustles through the moor. <br><br> <<if $monster is 1>> "Feel the breeze," <<bhe>> says softly, turning to you. "Soothing after the heat." <<else>> <<bHe>> turns to you and trills softly. <</if>> <br><br> You spread your <<= $harpy gte 6 ? "wings" : "arms">> wide, feeling the cool wind against your skin. The rustling leaves and the distant sound of flowing water create a tranquil atmosphere, allowing you to relax fully in the embrace of nature. <<ltrauma>><<trauma -3>> <br><br> <<link [[Next|Passout Bird Heatstroke End]]>><<pass 5>><</link>><<effects>> <<if $harpy gte 6>> <<your_bird_text "cap">> delicately preens your feathers with precision and care. With gentle strokes, <<bhe>> runs <<bhis>> talons over your skin, smoothing down each feather and removing any debris or tangles. <<bHis>> touch is soothing as <<bhe>> tends to your plumage. <<else>> <<your_bird_text "cap">> preens you despite your lack of feathers. With gentle strokes, <<bhe>> runs <<bhis>> talons over your skin, applying just the right amount of pressure to stimulate circulation. Though unconventional, <<bhis>> gesture is soothing, even without feathers to groom. <</if>> <br><br> <<if $monster is 1>> <<bHe>> looks you over and nods. "Glad <<wife>> is well now," <<bhe>> proclaims. "Well is good! Sun can be very hot. <<Wife>> should be careful next time. Come to nest when tired." <<else>> <<bHe>> looks you over and chirps, eyes brightening with apparent relief as <<bhe>> sees you well again. <</if>> <br><br> <<bHe>> draws you closer, <<bhis>> wings tightening around you for a moment before releasing you, giving you space to recover at your own pace. <<if $monster is 1>>"Rest well, <<wife>>. I will return with a gift." <</if>><<bHe>> spreads <<bhis>> wings and launches from the tower. <br><br> <<set $bird.timer to random(30, 60)>> <<set $bird.state to "hunting">> <<link [[Next|Bird Tower Perch]]>><<endevent>><</link>><<set $location to "tower">><<setTowerTemp>> <<npc "Great Hawk">><<person1>> <<set _eggs to Object.values($children).find(child => (child.type is "hawk" and child.location is "tower" and child.eggTimer))>> <<outfitChecks>> <<if _bottom>><<set _bottom.integrity -=5>><<set _damagedClothes to _bottom.name>><</if>> <<if _top>><<set _top.integrity -= 5>><<set _damagedClothes to _top.name>><</if>> <<integritycheck "no_text">><<ruined>><<exposure>> <<if $harpy gte 6 and (($transformationParts.bird.wings isnot "hidden") or ($transformationParts.bird.plumage isnot "hidden"))>><<set _feathered to true>><</if>> <<set Weather.Temperature.override.increase.outside(5, "Feathers and fabric warm your body.")>> You awaken in the Great Hawk's nest, naked but warm. You stir, <<= _eggs ? "careful not to disturb the actual eggs in the nest" : "letting <<bhim>> know you're awake">>. <br><br> <<if $monster is 1>> "<<Wife>>'s awake!" <<your_bird_text>> says, sounding relieved. "Helping <<wife>> get warm. Stay close to me. Must keep warm," <<bhe>> says firmly, pressing <<bhis>> body against yours. <<bHe>> wraps <<bhis>> arms and wings around you, holding you securely. <<bHis>> body and soft feathers radiate warmth. <<else>> <<your_bird_text "cap">> seems relieved when <<bhe>> notices you, but <<bhe>> doesn't move, save for wrapping <<bhis>> wings around you. Perhaps <<bhe>> wants to keep you warm. <</if>> You allow your breathing to still, relaxing into the comfort of <<bhis>> warm body. <br><br> After a few minutes, <<bhe>> gets off of you. <<if $monster is 1>>"Wait here," <<bhe>> says.<</if>> <<if $bird.materials.fabric gte 1>> <<bHe>> quickly fetches some of the fabric you've collected so far and dumps it on your lap. <<else>> <<bHe>> quickly flies outside and returns with some fabric, dumping it on your lap. <</if>> <<if _damagedClothes>> <span class="purple">You're pretty sure the scraps of fabric are from your _damagedClothes.</span> You spot the remainder of your clothes in a pile. You're still too numb from the cold to even get mad about it. <<elseif !_fullyNaked>> You allow the Great Hawk to pull the fabric over your body. You spot a pile of your clothes, which are looking worse for the wear. Fortunately, it looks like they're still intact. <</if>> <<if $monster is 1>> <<if _feathered>> <<your_bird_text "cap">> gives you a once-over. "<<Wife>> seems to have summer plumage, too thin and fragile for cold weather. Perhaps I should provide a substitute." <br><br> <<if C.npc["Great Hawk"].dom gte 50>> <<bHe>> suddenly pulls you into <<bhis>> arms, offering you <<bhis>> warmth. "Maybe <<wife>> should stay beneath my wings until shivering has passed," <<bhe>> suggests lightly, <<bhis>> voice playful. <<else>> "May I hug <<wife>>? <<Wife>> should stay close to me until shivering has passed." <<bHe>> gently takes you into <<bhis>> arms, offering you <<bhis>> warmth. <</if>> <<else>> <<if C.npc["Great Hawk"].dom gte 50>> "<<= either("Featherless", "Landbound", "Wingless")>> little thing like you is bound to get cold. Come, let me help you keep warm," <<bhe>> remarks. <<else>> "<<Wife>> doesn't have feathers to keep <<pher>> warm, now does <<pshe>>?" <<bhe>> remarks with an amused smile. "I'll simply hug <<pher>> until <<pshes>> all warmed up." <<bHe>> gently takes you into <<bhis>> arms, offering you <<bhis>> warmth. <</if>> <</if>> <<else>> <<your_bird_text "cap">> hops towards you and gives you a once-over. <<bHe>> <<= _feathered ? "pecks at your plumage" : "pokes around you with <<bhis>> beak">> before <<= C.npc["Great Hawk"].dom gte 50 ? "suddenly" : "gently">> wrapping <<bhis>> wings around you and nuzzling close. <</if>> <br><br> <<bHe>> puffs out <<bhis>> plumage, allowing them to settle into a fluffier silhouette. <<if understandsBirdBehaviour()>>You realise that <<bhe>> must be trapping air in the feathers.<</if>><<if $monster is 1>> You smile when <<bhe>> confirms it by saying, "<<= _feathered ? "<<Wife>> should do the same. Keep air in feathers for warmth." : "Poor landbound <<wife>>, can't keep air in feathers for warmth.">>"<</if>> <<if _feathered>> You follow suit, fluffing up your plumage. <<elseif !understandsBirdBehaviour()>> <<gscience>><<scienceskill>> <</if>> <br><br> <<link [[Next|Passout Bird Hypothermia 2]]>><</link>><<effects>> <<set Weather.Temperature.override.increase.outside(5, "The nearby fire warms you up.")>> <<if $bird.upgrades.firepit gte 1>> As <<bhe>> holds you close, <<bhe>> guides you closer to the firepit. <<if !getBirdBurnTime()>> <<bHe>> looks apologetically at you, then casts <<bhis>> gaze on the unlit firepit. <<if $monster is 1>>"Don't know how to make wood burn. Sorry, <<wife>>."<</if>> You crouch down in front of the firepit and start a fire. It warms you up. <<else>> The fire's lit, and it warms you. <</if>> <<if $monster is 1>>"Still cold?" <<bhe>> asks, pulling you onto <<bhis>> lap.<</if>> <br><br> <<= $monster is 1 ? "You reply by touching <<bhis>> bare skin" : "You snuggle close to <<your_bird_text>> and touch <<bhis>> face">> with your cold hands. It gets a "squawk" out of <<bhim>>, and you <<if $speech_attitude is "meek">>giggle<<elseif $speech_attitude is "bratty">>laugh<<else>>chuckle<</if>>. <<if $monster is 1>> <<if C.npc["Great Hawk"].dom gte 50>> "<<Wife>> is a mischievous one." <<bHe>> chuckles, hugging you tighter. <<else>> "<<Wife>> sure likes to jest. I don't mind." <<bHe>> chuckles, hugging you tighter. <</if>> You card your fingers through <<bhis>> soft plumage to warm them up. <<else>> <<bHe>> stirs slightly and folds <<bhis>> wings around you. <</if>> <<else>> As <<bhe>> holds you close, <<bhe>> guides you back to the nest. You wish there was a firepit to warm you up. <</if>> <br><br> <<link [[Kiss|Passout Bird Hypothermia Thank]]>><<set $phase to 1>><</link>><<kissvirginitywarning>> <br> <<link [[Thank|Passout Bird Hypothermia Thank]]>><<set $phase to 0>><</link>><<effects>> <<set Weather.Temperature.override.increase.outside(2, "The nearby fire warms you up.")>> <<if $phase is 1>> You lean in close to <<your_bird_text>>. <<bHe>> turns <<bhis>> head towards you and nuzzles against your cheek. <<bHe>> <<= $monster is 1 ? "presses <<bhis>> lips to yours" : "pecks <<bhis>> beak against your lips">>. You return the <<= $monster is 1 ? "kiss, twining your arms around <<bhis>> neck" : "peck, peppering <<bhis>> face with small kisses">>. <<takeKissVirginity "Great Hawk" "loveInterest">> <<else>> <<if $speech_attitude is "meek">> "Th-thank you for saving me," you say, giving <<bhim>> a shy smile. <<elseif $speech_attitude is "bratty">> "Thanks for saving my ass, featherhead." You grin at <<bhim>>. <<else>> "Thank you," you say, smiling at <<bhim>>. <</if>> <</if>> The Great Hawk <<= $monster is 1 ? "beams" : "perks up">> at that, and <<bhe>> releases you. <<if $monster is 1>> "Glad <<wife>> is well now," <<bhe>> proclaims. "Well is good! <<Wife>> should be careful next time. Come to nest when cold." <br><br> <<bHe>> stands up, giving you space to recover at your own pace. "Rest well, <<wife>>. Will return soon with food. Food keeps belly full and warm!" <<bHe>> spreads <<bhis>> wings and launches from the tower. <<else>> <<bHe>> looks you over and chirps, eyes bright and shiny. <<bHe>> hops away, then spreads <<bhis>> wings and launches from the tower. <</if>> <br><br> <<link [[Next (0:30)|Passout Bird Hypothermia End]]>><<pass 30>><</link>><<effects>> You rest in the nest, conserving your strength while the Great Hawk hunts. By the time <<bhe>> returns, you're feeling better and significantly warmer. <<your_bird_text "cap">> carries a <<if $bird.hunts.lurkers is true>>lurker<<else>>strange, leathery and many-limbed creature<</if>> in <<bhis>> <<if $monster is 1>>talons<<else>>mouth<</if>>. <<if $monster is 1>> <<if playerIsPregnant() and getPregnancyObject().fetus[0].type is "hawk" and talkedAboutPregnancy("pc","Great Hawk") and !$daily.birdPregFeed>> <<set $daily.birdPregFeed to true>> <<bHe>> doesn't take a bite for <<bhimself>>, instead offering the whole thing to you. "<<print either( "For you and children.", "Children must be nourished too.", "Keep your strength up.", "They eat eggs, but now they nourish our children.", "Food for you, food for growing hawks in belly.", "Great Hawk hunts well.", "Fresh kill. Should go down easy." )>>" <<else>> <<bHe>> dumps it at your feet, then tears out a chunk of flesh. <<bHe>> hungrily rips into the meat with <<bhis>> teeth. "<<print either( "Common prey here. Their meat is soft.", "It won't bite. Promise.", "You can eat by yourself, yes? I don't need to feed you like baby bird?", "Nasty creatures, but nourishing.", "Keep your strength up.", "They're egg eaters, don't feel bad for them.", "Food for you.", "Great Hawk hunts well.", "Fresh kill. Should go down easy." )>>" <</if>> <<else>> <<bHe>> dumps it at your feet, then tears out a chunk of flesh. <<bHe>> holds <<bhis>> head back as <<bhe>> swallows the meat whole. <</if>> <<bHe>> looks at you, waiting for a response. <<if $bird.hunts.lurkers is true and $bird.upgrades.rack gte 1>> <span class="blue">Its hide is too damaged to use it for anything.</span> It looks the Great Hawk would rather you eat it to regain your strength, anyway. <</if>> <br><br> <<link [[Eat|Bird Tower Lurker]]>><<hunger -2000>><<bird_loot lurker 5>><<trauma -6>><<transform bird 1>><<npcincr "Great Hawk" love 1>><<bird_stockholm 1>><</link>><<gbirdstockholm>><<glove>><<ltrauma>> <br> <<link [[Scold|Bird Tower Lurker Scold]]>><<bird_loot lurker -20>><<transform bird 1>><<npcincr "Great Hawk" dom -1>><<def 1>><<bird_stockholm 1>><</link>><<gbirdstockholm>><<ldom>> <br> <<link [[Do nothing|Bird Tower Lurker Nothing]]>><<bird_loot lurker -10>><<npcincr "Great Hawk" love -1>><</link>><<llove>> <br><<effects>><<outfitChecks>> <<npc Whitney>><<generatey2>><<person1>> You wake up to cold water drenching your face. Whitney stands above you, holding an empty water bottle. <<set Weather.bodyTemperature-->> <<if $whitneyrescued>> You feel a strange sense of déjà vu. You meet Whitney's eyes and see the sentiment reflected in them for the briefest of seconds. It dissipates at the sound of hushed snickers from <<his>> friends. <<else>> The friends surrounding <<him>> snicker quietly. <</if>> <br><br> "Hey, slut." <<He>> smirks, crouching down. <<His>> fringe clings to <<his>> temple with sweat, and <<his>> loose tank top leaves nothing to the imagination. "You look like shit. Did the heat get to you, or did you just pass out on my turf for fun?" <br><br> <<if $whitneyromance is 1 or C.npc.Whitney.love gte 12>> <<if _top.warmth gte 7>> <<He>> pinches your _top.name. "What the hell are you wearing this for? Fucking idiot." <<He>> takes it off and tosses it in a pile of rubbish. <<if _top is $worn.over_upper>><<overupperstrip>><<else>><<upperstrip>><</if>> "Stick to the slut dress code and maybe this wouldn't happen." <br><br> <</if>> Whitney drags you to your feet and snatches something from <<his>> friend. It's a full bottle of water. "Hey, that's mine!" the <<person2>><<personsimple>> protests. Whitney ignores <<him>>. <br><br> <<if C.npc.Whitney.dom gte 15>> <<person1>><<He>> tips the bottle against your lips, forcing you to down the whole thing in several desperate gulps. <<else>> <<wearProp "water bottle" 0 "open">> "Here," <<person1>><<he>> says, thrusting it into your hands. "Drink it. All of it." You down it all in several desperate gulps. <</if>> Some of it dribbles down your neck and chest. It's ice cold. <br><br> Whitney looks satisfied. "If I catch you overheating like that again, I'll make you drink it out of a fucking <<if $fame.bestiality gte 100>>dog bowl<<else>>toilet<</if>>. Now fuck off and stay out of this heat." <<He>> smacks your rear before sauntering off with <<his>> friends in tow. <<else>> Whitney snatches something from <<his>> friend. It's a bright <<= either ("red","blue")>> slush drink. "Hey, that's mine!" the <<person2>><<personsimple>> protests, but Whitney ignores <<him>>. <span class="red"><<person1>><<He>> upends the entire cup over you, soaking your hair.<<if $ruffledisable is "t">> Your hairgel is no match for the sticky drink.<<set $ruffledisable to "f">><<ruffleHair>><</if>></span> It seeps down your torso, <<if waterproofCheck(_top)>> and runs off the slick surface of your _top.name<<else>>and soaks through your _top.name<</if>>. <<His>> friends whistle and jeer. <<npcincr Whitney dom 2>><<gdom>><<gstress>><<stress 3>> <br><br> <<if C.npc.Whitney.lust gte 60>> "Oops," Whitney says. "Let me help you with that." <<He>> removes your <<allTops>> and drops it on the ground. You're too dazed to stop <<him>>. <<overupperstrip>><<upperstrip>> <<else>> <<wet_upper>> <</if>> Whitney stands back to appreciate the view. "Feeling better? I know I am. Consider this your toll for passing through. Later, slut." <<He>> flicks your <<= $worn.under_upper.type.includes("naked") ? "nipple" : $worn.under_upper.name>> before sauntering off with <<his>> friends in tow. <<garousal>><<glust>><<arousal 100>><<npcincr Whitney lust 2>> <br><br> You hastily <<= C.npc.Whitney.lust gte 60 ? "put your clothes back on" : "wipe off what you can of the drink">>. Maybe you should find something better to wear. <</if>> <br><br> <<link [[Next|$safePassage]]>><<endevent>><<set $eventskip to 1>><</link>><<effects>> <<npc Whitney>><<person1>> A sharp jolt runs through you as you regain consciousness, engulfed by cold water. <span class="red">You can't breathe!</span> You cough violently and struggle until a hand pulls you up, out of the water. It's Whitney. <br><br> You realise you're sitting in the fountain, soaked, although the cool water makes you feel less hot. You look up at <<him>>.<<water>><<set Weather.bodyTemperature-->> <br> <<effects>> "Isn't this rain enough of a shower for you?" Whitney raises an eyebrow.<<= $whitneyromance is 1 ? '"Get up before your brain gets all soggy," <<he>> says.' : '"How long are you going to stay in there? Get out already," <<he>> says, giving you an annoyed look.'>> <<He>> grabs your arm and pulls you out of the fountain. <br><br> <<outfitChecks>> <<if _bottomless>> "How did you manage to pass out like this? Got yourself all hot and bothered, huh?" <<he>> taunts. <br><br> <<if $whitneyromance is 1>> "I think I deserve a reward for my good deed. But you're already giving me a good show, so..." <<He>> looks you up and down. "Hurry back to your kennel," <<he>> says, giving you a light push.<<npcincr Whitney lust 5>><<glust>> <<else>> <<He>> looks you up and down, taking in your state of undress. "I always knew you were an easy slut. You're asking for it, running around like that." <<He>> smacks your butt hard enough to hurt, pushing you a few steps forward.<<pain 8>><<npcincr Whitney lust 5>><<ggpain>><<glust>> <</if>> <br><br> <<He>> raises <<his>> umbrella and walks away, and you notice <<his>> clothes are also soaked from the rain. <<He>> lights a cigarette under <<his>> usual tree, ignoring you. <br><br> <<link [[Next|Park]]>><<endevent>><<set $eventskip to 1>><</link>> <br> <<else>> "I think I deserve a reward for my good deed," <<he>> says. "Strip and give me a show." <br><br> <<link [[Strip reluctantly|Passout Park Heatstroke Whitney 2]]>><<set $phase to 1>><<stress 6>><<trauma 6>><</link>><<gstress>><<gtrauma>> <br> <<if $whitneyromance is 1 and hasSexStat("promiscuity", 3)>> <<link [[Give Whitney a show|Passout Park Heatstroke Whitney 2]]>><<set $phase to 2>><<npcincr Whitney love 1>><</link>><<promiscuous3>><<glove>> <br> <</if>> <<link [[Refuse|Passout Park Heatstroke Whitney 2]]>><<set $phase to 0>><</link>> <br> <</if>><<effects>> <<if $whitneyromance is 1>> <<if $phase is 0>> /* Refus */ You cover your soaked clothes with your hands, refusing to comply. You stare at each other for a while. <br><br> "Fine, seems like you're not going to be grateful," Whitney says. "Wet clothes suit you, idiot." <<He>> pauses for a moment. "You owe me now, slut." <<elseif $phase is 1>> /* Strip reluctantly */ You do as <<he>> said, taking off your wet clothes. <br><br> Whitney snatches them away, looking you up and down with a smug smile. "Alright, that's enough."<<npcincr Whitney lust 5>><<glust>><<clothesstrip>> <br><br> <<He>> shoves the clothes back at your chest. "Next time you act like an idiot, you're on your own," <<he>> says. <<else>> /* Give Whitney a show */ You exaggerate your movements as you undress, slowing down and showing off your body deliberately. You strip completely naked, boldly displaying yourself to Whitney.<<clothesstrip>><<promiscuity1>> <<if $speech_attitude is "meek">> "Th-thank you for helping me," you say, looking at <<him>> coyly. "I'm much better now." <br><br> "Yeah you are," Whitney murmurs, eyeing your naked body. <<elseif $speech_attitude is "bratty">> "I guess I'm still really hot," you say with a smirk. "Do you like what you see?" <br><br> "Don't ask questions you know the answer to," Whitney says, smirking as <<he>> eyes your naked body. <<else>> "Thanks for helping me," you say, giving <<him>> a suggestive smile. <br><br> "Yeah, whatever," Whitney says, eyeing your naked body. <</if>> <<npcincr Whitney lust 10>><<gglust>> <br><br> <<if C.npc.Whitney.lust gte 60 and !playerChastity()>> <<He>> slaps your bare butt, hard enough to hurt, before grabbing it. <<gpain>><<pain 2>> <br><br> "I've changed my mind, slut. Maybe I should fuck you right here. I bet that's what you want." <<He>> gives you a lewd smile and <<he>> <<= C.npc.Whitney.dom gte 16 ? "presses <<his>> body against you" : "pulls you against <<his>> body">>. <br><br> You can feel <<his>> body heat and the smell of smoke as <<he>> rubs <<his>> crotch against your <<genitals>>. Your <<breasts>> press up against Whitney's <<= $NPCList[0].breastsize is 0 ? "chest" : "$NPCList[0].breastsdesc">>, and you feel hot as you flush with arousal.<<arousal 400 "genitals">><<arousal 400 "breasts">><<garousal>> <br><br> <<link [[Go along with it|Passout Park Heatstroke Whitney 3]]>><<set $phase to 1>><</link>> <br> <<link [[Push away|Passout Park Heatstroke Whitney 3]]>><<set $phase to 0>><</link>> <<exit>> <<elseif C.npc.Whitney.lust gte 20>> <<He>> closes the distance between you and runs <<his>> tongue over your cheek and ear before pushing you away.<<arousal 600>><<garousal>> <br><br> "Go back to your kennel and cool down." Whitney grins. "I don't want to fuck a slut who's passed out from the heat, that's just boring." <<else>> <<He>> throws your clothes back at you. "Put them on, and find somewhere cooler to do whatever you want. I'm not in the mood." <</if>> <</if>> <br><br> <<He>> raises <<his>> umbrella and walks away. You then notice <<his>> clothes are also soaked. <br><br> <<He>> lights a cigarette under <<his>> usual tree, ignoring you. <<else>> <<if $phase is 0>> /* Refuse */ "Good, that's what an ungrateful idiot like you deserves." <<He>> gives you a hard shove. You stumble over the edge of the fountain and fall back into the water.<<stress 6>><<gstress>> <br><br> <<He>> looks down at you. "Next time you act like a moron, you're on your own," <<he>> says. <br><br> <<He>> <<else>> /* Strip reluctantly */ You do as <<he>> said and take off your wet clothes. <br><br> Whitney snatches them away, looking you up and down with a wicked smile. "I think I'll keep these as a proper reward," <<he>> says. "Next time you act like an idiot, I'm taking more than just your clothes."<<clothesruined>> <br><br> <<He>> stuffs them under <<his>> arm, <</if>> raises <<his>> umbrella and walks away. <br><br> <<He>> lights a cigarette under <<his>> usual tree, ignoring you. You're left alone, wet and humiliated. <</if>> <br><br> <<link [[Next|Park]]>><<endevent>><<set $eventskip to 1>><<clotheson>><</link>> <br><<effects>> <<if $phase is 0>> /* Push away */ Whitney takes a few steps back. "Damn." <<He>> glares at you. "Fucking tease." <<He>> gives you a shove before walking back to <<his>> usual tree.<<npcincr Whitney love -1>><<llove>> <br><br> <<He>> lights a cigarette, ignoring you. <br><br> <<clotheson>> <<link [[Next|Park]]>><<endevent>><<set $eventskip to 1>><</link>> <br> <<else>> /* Go along with it */ The rising heat between you two pulls you in, and you don't move away. You let Whitney's motions slowly intensify. You can tell <span class="lewd"><<hes>> not wearing any underwear.</span> <br><br> The cool breeze on your exposed skin contrasts with the heat where you touch. You find yourself gently grinding back, and Whitney notices. <<He>> tightens <<his>> grip on your arm, pressing <<his>> body firmly against yours, while <<his>> head leans against your shoulder, hiding <<his>> expression from you. <br><br> You give in to your feelings, instinctively moving your hips in sync with <<his>> movements. Sweat trickles down your skin and into your crotch. Your hardened nipples occasionally brush against each other.<<arousal 2000 "breasts">><<arousal 3000 "genitals">><<gggarousal>> <br><br> Even through the sound of the rain, you can hear the lewd, wet sounds of your bodies connecting, intensifying your arousal further. Whitney's movements become increasingly rough, <<his>> breath quickening. <<if $arousal gte $arousalmax and $orgasmdown lte 0>> The final wave of pleasure pushes you over the edge.<<orgasm>><<set _orgasm to true>> You cling tightly against Whitney as you climax, trying to stay quiet to avoid attracting attention. <</if>> <br><br> "Fuck," you hear Whitney mutter, <<his>> grip tightening on your arm. You feel <<his>> slight shudder and realise <<he>> has climaxed<<if _orgasm>> too, leaving you even stickier<</if>>.<<npcincr Whitney lust -20>><<llust>> <br><br> You both pant, waiting for the heat to subside until the rain falling on you cools things down. The grip on your arm loosens. <<He>> pushes your shoulder, pulling away. "Great, look what you did. Now I gotta go clean up. Go back to your kennel," <<he>> says, "before someone else wants a taste too." <br><br> <<clotheson>> <<whitneyexit>> <</if>><<set $outside to 0>><<set $location to "forest_shop">><<effects>><<outfitChecks>> <<npc Gwylan>><<person1>><<run statusCheck("Gwylan")>> As you slowly come to, you realise that you're in <<= $forest_shop_intro ? "the forest shop." : "a strange shop you've seen on the outskirts of the forest.">> <<if $leftarm is "bound" and $rightarm is "bound">>Your arms are no longer bound. <<unbind>><</if>> <<if _gwylanLovePercent gte 50 and _gwylanStatus.includes("met")>> <<if $passoutReason is "hypothermia">> You feel warm. There's someone clinging to you tightly. It's Gwylan. "Oh, you're awake!" <<He>> quickly separates from you. "Sorry, I was trying to restore your body temperature. <<else>> You hear a gentle repeating whisper, like someone counting. There's a cool, damp cloth on your forehead, and a slight weight pushing down on your body. You look down. It's Gwylan, pressing <<his>> ear against your <<if !$worn.upper.type.includes("naked")>> <<set _upperStrippedHere to $worn.upper>> <span class="lewd">exposed</span> <</if>> chest and half-straddling you. <<He>> looks up at you, and <<his>> eyes widen. "Oh, you're awake!" <<He>> quickly climbs off of you. "Sorry, I was trying to check your breathing. <</if>> <<elseif _gwylanStatus.includes("met")>> Gwylan beams at you. "Phew! Are you alright? <<else>> <<set $daily.gwylan.firstMet to true>> A <<personsimple>> beams at you. <<He>> looks about your age, with mousy hair and a hint of freckles. "I'm older than I look," <<he>> says, as if reading your mind. "<span class="green">I'm Gwylan.</span>" <<He>> reaches forward, lifts your hand, and shakes it in both <<his>> own. "Pleased to meet you. I sell—" <<He>> pauses. "My grand<<father>> sells—" Another pause. "I sell clothes and knick-knacks here. <span class="blue">Things you won't find in normal shops.</span> Even I don't know what I have in stock!" <<He>> sounds proud. <br><br> "But enough of that," <<he>> continues. "More importantly, are you alright? <</if>> I found you fainted outside while I was picking berries. You had me worried sick! <<if _gwylanLastSeenDays gte 21>> I haven't seen you in ages, <<elseif $gwylanSeen.includes("partners")>> I can't do this without you anymore, <<elseif $gwylanSeen.includes("yearning")>> I know I was harsh a little while ago, I'm sorry. I still... care about you, <<elseif $forest_shop_intro is 1>> You're my best customer, <<elseif $gwylan_rescue gte 1>> We're friends, <<else>> These woods can be dangerous, <</if>> after all." <<He>> almost sounds like <<hes>> trying to scold you. <br><br> <<He>> quickly gives you a once-over. <<if $passoutReason is "hyperthermia">> <<if Weather.BodyTemperature.getWarmth() gte 20>> "You might want to take some clothing items off," <<he>> observes, "if you want to avoid hyperthermia." <<else>> "You shouldn't exert yourself so much," <<he>> says. "Hyperthermia's serious!" <</if>> <<else>> <<if Weather.BodyTemperature.getWarmth() lt 20>> "You might want to wear some more clothes," <<he>> observes, "if you want to avoid hypothermia." <<else>> "You shouldn't spend so much time out in the cold," <<he>> says. "Hypothermia's serious!" <</if>> <</if>> <<if _upperStrippedHere>> <span class="blue"><<He>> places your <<= _upperStrippedHere.name>> next to you, neatly folded.</span> <</if>> <<if $upperwetstage gte 3 or $lowerwetstage gte 3 or $underupperwetstage gte 3 or $underlowerwetstage gte 3>> <<He>> suddenly seems to remember that your clothes are wet. <<He>> insists on drying them by the fire. Thankfully, they dry quickly. <<dry_full>> <<elseif _shirtless or _bottomExposed>> <<He>> suddenly seems to realise the implications of your state of dress. "Oh, clothes! You need clothes." <<He>> quickly rummages through an antique wardrobe nearby and hands you <<if $player.gender_appearance is "f">> a sundress. <<upperwear 5 "white">> <<elseif _shirtless>> <<upperwear 4 "tangerine">> an orange shirt<<if _bottomExposed>> and blue shorts<<lowerwear 5 "blue">><</if>>. <<else>> a pair of blue shorts.<<lowerwear 5 "blue">> <</if>> It feels strangely nostalgic. You change into the provided clothes. <<if $passoutReason is "hypothermia">> "Sorry I don't have anything warmer," <<he>> says apologetically. There's a pause as you glance around the shop. "That I can give for free," <<he>> clarifies with a smile. <<if $gwylanSeen.includes("yearning")>> "You know how the shop is." <</if>> <</if>> <</if>> <br><br> <<if $passoutReason is "hyperthermia">> <<set Weather.Temperature.override.increase.inside(-5, "The fan keeps you cool.")>> Fetching a wooden chair, Gwylan guides you to sit down next to a running fan. "Rest here for a bit. I'll make you some tea. Cold tea, of course," <<he>> declares. <<He>> hesitates, then adds, "Unless you want hot tea instead." The thought of drinking something warm right now makes you queasy, so you agree to the iced beverage. <<else>> <<set Weather.Temperature.override.increase.inside(5, "The thick blanket keeps you warm.")>> Fetching a big cushion, <<he>> guides you to sit down before the fireplace. <<He>> drapes a thick blanket over your shoulders. <</if>> <br><br> Once you're settled, <<he>> disappears into the back of the shop. You can still faintly hear some loud clinking sounds coming from that direction, which you assume is <<his>> way of brewing the tea. <<if $gwylanSeen.includes("butterfly_pea_flower_tea")>> You suppress the urge to offer help. <<elseif $gwylanSeen.includes("ritual_beast")>> You know better than to question it by now. <<else>> Perhaps <<hes>> simply a tad clumsy? <</if>> <br><br> <<link [[Next|Passout Gwylan Hot Cold Tea]]>><</link>><<set $outside to 0>><<set $location to "forest_shop">><<effects>> <<set $gwylanTea to $gwylanTea || 0>> <<if $passoutReason is "hyperthermia">> <<set Weather.Temperature.override.increase.inside(-5, "The fan keeps you cool.")>> <<else>> <<set Weather.Temperature.override.increase.inside(5, "The thick blanket keeps you warm.")>> <</if>> <<He>> returns, balancing a tray laden with a variety of ingredients: several herbs, a basket of freshly washed berries and lemons, and a honey jar. Alongside them rest a knife, a ladle, a patterned tea set, and some biscuits. <<He>> carries a glass pot of hot water<<if $passoutReason is "hyperthermia">> and a container of ice cubes as well<</if>>, ready to prepare the tea. <br><br> "I realised I didn't ask what kind of tea you wanted<<if $gwylanTea gte 1>> again<</if>>." <<He>> sets the tray down in front of you with an apologetic smile. "Sorry about that. Do you want berry herbal tea or lemon honey tea? <<if $passoutReason is "hyperthermia">>With or without ice?<</if>> Honey or no honey?<<if $gwylanTea gte 2 or $gwylanSeen.includes("butterfly_pea_flower_tea")>> Or Perhaps butterfly pea flower tea?<</if>>" <<He>> tilts <<his>> head to the side with each question asked. <br><br> <<link [[Berry herbal tea|Passout Gwylan Hot Cold Order]]>><<set $phase to 0>><</link>> <br> <<link [[Lemon honey tea|Passout Gwylan Hot Cold Order]]>><<set $phase to 1>><</link>> <br> <<if $gwylanTea gte 1 or $gwylanSeen.includes("butterfly_pea_flower_tea")>> <<link [[Butterfly pea flower tea|Passout Gwylan Hot Cold Order]]>> <<set $phase to 2>> <<if $gwylanSeen.includes("butterfly_pea_flower_tea") and $gwylanTea lt 3>> <<set $gwylanTea to 3>> <<else>> <<set $gwylanTea++>> <</if>> <</link>> <</if>><<set $outside to 0>><<set $location to "forest_shop">><<effects>> <<if $passoutReason is "hyperthermia">> <<set Weather.Temperature.override.increase.inside(-5, "The fan keeps you cool.")>> <<else>> <<set Weather.Temperature.override.increase.inside(5, "The thick blanket keeps you warm.")>> <</if>> Humming cheerfully, <<he>> begins preparing the tea to your specifications. <<switch $phase>> <<case 2>><<He>> steeps the delicate butterfly pea flowers in the hot water, turning it a rich shade of blue. <<case 1>><<He>> slices the lemons, squeezing their juice into the pitcher before adding the honey. <<default>><<He>> chops the herbs and adds them to the pot of hot water. <<He>> allows them to steep before adding a handful of fresh berries. <</switch>> <<if $passoutReason is "hyperthermia">><<He>> finishes by chilling the drink.<</if>> "Here you go!" <<he>> exclaims with a smile, presenting you with your teacup and saucer. <br><br> <<if $phase is 2>> <<He>> pours <<himself>> a cup of butterfly pea flower tea as well. <<else>> <<He>> pours <<himself>> a cup of bright blue tea. <</if>> <br><br> <<link [[Take a sip|Passout Gwylan Hot Cold Sip]]>><</link>><<set $outside to 0>><<set $location to "forest_shop">><<effects>><<run statusCheck("Gwylan")>> <<if $passoutReason is "hyperthermia">> <<set Weather.Temperature.override.increase.inside(-5, "The fan keeps you cool.")>> <<else>> <<set Weather.Temperature.override.increase.inside(5, "The thick blanket keeps you warm.")>> <</if>> <<set $gwylanSeen.pushUnique("passout_hot_cold")>> You take a sip. <<if $gwylanTea is 0>> It's delicious. You ask about the flavour of <<his>> tea. "Oh, this? It's rather insipid. Honestly, it tastes like grass." <<He>> chuckles, sipping some more. "Unless I add other things to enhance it, like lemon or berries. It's called butterfly pea flower tea." <<He>> cocks <<his>> head at you. "You should try some next time!" <<set $gwylanTea to 1>> <<elseif $phase isnot 2>> It's delicious. <<elseif $gwylanTea is 2>> It's different than any other kind of tea you've had before. Gwylan asks what you think of it. <<if $speech_attitude is "meek">> "It's a bit earthy," you mumble, timidly adding some berries to try to improve the flavour. <<elseif $speech_attitude is "bratty">> "It's like drinking lawn clippings," you say bluntly. You toss in a handful of berries, hoping to salvage the flavour. <<else>> "It tastes like grass," you remark with a shrug, adding some berries to balance the taste out. <</if>> <br><br> "I'm aware it's an acquired taste," Gwylan acknowledges with a nod, sipping <<his>> tea. "I've just had enough time to get used to it, that's all. The berries should help." <br><br> You give <<him>> a quizzical look, and <<he>> responds with an inscrutable smile. You shrug and take another sip. <<Hes>> right; the berries help. <<elseif $gwylanTea is 3>> <<if $speech_attitude is "meek">> You take a tentative sip, trying to hide your distaste behind a forced smile. You quickly add some berries, hoping it will improve the taste. "Um, maybe this will help," you mumble softly, not wanting to offend. <<elseif $speech_attitude is "bratty">> "Just as bland as ever," you mutter, tossing in a handful of berries with an exaggerated sigh. <<else>> You nod knowingly as you take a sip. "Yep, just like I remembered," you say with a wry smile, adding some berries to temper the grassy flavour. <</if>> <br><br> "I told you, didn't I? It's an acquired taste!" A chuckle escapes <<his>> lips. "The berries should help." <<Hes>> right; it tastes better this time around. <br><br> "How did you learn how to make this in the first place?" you ask. <br><br> Gwylan shrugs. "Oh, it was a long time ago. My grand<<father>> taught me how to grow and dry herbs for tea when I was young." <<elseif $gwylanTea gte 4>> <<if $speech_attitude is "meek">> Even though you're well aware of its earthy flavour, you opt for the butterfly pea flower tea once again. "I-it's not exactly my favourite," you mumble. You add more berries, hoping to offset its distinct taste. <<elseif $speech_attitude is "bratty">> Despite knowing its taste well, you opt for the butterfly pea flower tea again, giving a dramatic roll of the eyes. "Ugh, I don't know how you can drink this stuff," you groan, begrudgingly adding some berries to temper the flavour. <<else>> Despite knowing its taste well, you opt for the butterfly pea flower tea again. "Yeah, it's still earthy," you say with a wry smile, adding some berries to temper the flavour. <</if>> <</if>> <<if _gwylanStatus.includes("badEndReady")>> You both enjoy the refreshing tea and biscuits, although you notice a strange aftertaste. <<else>> You both enjoy the refreshing tea and biscuits. <</if>> It's a peaceful moment, one that you find yourself pleasantly lost in. <<lstress>><<ltrauma>><<trauma -6>><<stress -6>> <br><br> "How are you feeling? Better?" <<he>> asks. <br><br> <<if $speech_attitude is "meek">> Your nod is accompanied by a shy smile. You take another sip, hiding your embarrassment behind the teacup. "Yes... Th-thank you, Gwylan." <<elseif $speech_attitude is "bratty">> "Could be better. Thanks, I guess." You're somewhat mortified at needing to be rescued, and you feign nonchalance by taking another sip of tea. <<else>> "Yes, a bit. Thank you, Gwylan." You take another sip, hiding your embarrassment behind the teacup. <</if>> <br><br> <<if _gwylanStatus.includes("badEndReady")>> <<hypnosisText "Your vision starts to blur. Gwylan stays in perfect focus, though.">> <<hallucinogen 120>><<drugs 40>><<ggghallucinogens>><<gdrugged>> <br><br> "<<pcPetname "Gwylan">>... you don't need to thank me. Of course I'd come to your rescue." <<He>> waves <<his>> hand dismissively. "I'd do it again in a heartbeat." <br><br> <<He>> leans forward, and slowly crawls toward you. "And again. And again." <<He>> pushes against your chest. <span class="red">You fall backwards with no resistance.</span> <<He>> giggles, crawling atop you and hugging you tightly. "Just think. What would I do if you didn't wake up? It hasn't been forever, yet. Your life, your promise... aren't yours to break." <br><br> <<His>> voice fades away with the rest of the room. "Let me take care of you." <br><br> <<if _gwylanStatus.includes("aurigaScarConfront")>> <<link [[Once more, everything fades to black...|Forest Shop Nowhere Passout]]>><<set $forest to 0>><<pass 30>><<endevent>><</link>> <<else>> <<link [[Once more, everything fades to black...|Forest Shop Taken Start]]>><<set $forest to 0>><<pass 30>><<endevent>><</link>> <</if>> <<else>> <<if $gwylanSeen.includes("partners")>> "<<pcPetname "Gwylan">>... you don't need to thank me. Of course I'd come to your rescue." <<He>> waves <<his>> hand dismissively. "I'd do it again in a heartbeat." <<else>> "Aw, it's no big deal!" <<He>> waves <<his>> hand dismissively. "Of course I'd help you, and I'd do it again." <</if>> <br><br> <<link [[Next|Passout Gwylan Hot Cold End]]>><</link>> <</if>><<set $outside to 0>><<set $location to "forest_shop">><<effects>> <<set $gwylan.timer.lastSeen to Time.date.timeStamp>> You finish your tea, and Gwylan looks out the window. "Hopefully you'll fare a little better out there now. You know, <<= $passoutReason>> can be fatal, so don't die on me, alright?" <<if $gwylanSeen.includes("romance")>> <<His>> smile becomes just a little sad. "I mean it. You need to keep your promise to me." <<elseif $gwylanSeen.includes("partners")>> <<His>> smile becomes just a little sad. "I mean it. I'm not ready to say goodbye yet." <</if>> <br><br> You nod and wave goodbye to Gwylan before leaving the shop. <br><br> <<link [[Next|Forest]]>><<set $forest to 0>><<unset $passoutReason>><<endevent>><<set $eventskip to 1>><</link>><<set $outside to 1>><<set $location to "forest">><<effects>> <<beastNEWinit 1 wolf>> Fur tickles your cheek as something warm and heavy settles on your chest. <<if $passoutReason is "hyperthermia">> It only takes a few moments for the heat to become unbearable, and you whimper for relief. You open your eyes. <<else>> <<set Weather.Temperature.override.increase.inside(5, "Thick fur warms your frozen body.")>> Your body tingles, every nerve ending on fire as the warmth starts to return to your frozen extremities. You open your eyes. <</if>> <br><br> A <<beasttype>> looks down at you, <<bhis>> eyes <<= Time.dayState is "night" ? "glowing bright in the dark" : "sharp and alert">>. <<if $syndromewolves is 1 and $caveHumanPregnancyDiscovered is 1>> <<if $wolfpackharmony gte 12>> <<if $monster is 1>> <<if $passoutReason is "hyperthermia">> "No fur coat, yet <<ppackbrother>> still hot? Can't return with human cub, but stream will cool you off." <<else>> "<<pPackbrother>> needs fur coat. Woods cold and dark. Should come home, but can't return with human cub..." <<bHe>> gives your belly a reproachful look. "Will stay until warmer, though." <</if>> <<else>> <<bHe>> looks at your belly and whimpers. You can't go back to the cave while carrying a human cub, but still, <<bhe>> seems sympathetic to your plight. <</if>> <<if $passoutReason is "hyperthermia">> The <<beasttype>> climbs off you and you nudges you towards the nearby river. <<bHe>> circles you with worry, padding alongside you until you finally stumble into the running water. It's cool and refreshing. <<silently>><<water>><</silently>> <<bHe>> splashes in the water beside you until <<bhes>> sure you won't pass out again, then shakes <<bhimself>> dry. <<else>> <<bHe>> stays snuggled against you, sharing <<bhis>> body heat until you can finally move again. <<bHe>> climbs off you, giving your face a parting lick. <</if>> <<= $monster is 1 ? "\"Stay safe, <<ppackbrother>>. We miss you,\" <<bhe>> says, giving your belly one last look" : "<<bHe>> sniffs you one last time">> before bounding off into the woods once more. <<else>> <<bHe>> looks at your belly and growls. <<if $monster is 1>> "Still with human cub? <<= $passoutReason is "hyperthermia" ? "Cool off in stream first" : "Will help warm up">>, then <<ppackbrother>> must leave." <<else>> You can't go back to the cave while carrying a human cub, but despite <<bhis>> clear displeasure, <<bhe>> seems sympathetic to your plight. <</if>> <<if $passoutReason is "hyperthermia">> The <<beasttype>> climbs off you and you roughly nudges you towards the nearby river, until you finally stumble into the running water. It's cool and refreshing. <<silently>><<water>><</silently>> <<else>> The <<beasttype>> bears <<bhis>> weight down on you to the point of discomfort, but <<bhe>> succeeds in warming you up. When you can finally move again, <<bhe>> climbs off you and turns tail. <</if>> <<bHe>> bounds off into the woods without looking back. <</if>> <br><br> <<link [[Next|$safePassage]]>><<endevent>><<set $eventskip to 1>><</link>> <<elseif $syndromewolves is 1 and $wolfpacktrust gte 24 and ($monster is 1 or $settings.bestialityEnabled)>> <<if $monster is 1>> <<if $passoutReason is "hyperthermia">> "No fur coat, yet <<ppackbrother>> still hot? Come home, stream will cool you off." <<else>> "<<pPackbrother>> needs fur coat. Woods cold and dark. Come home, where cave is warm." <<bHe>> stays snuggled against you, sharing <<bhis>> body heat until you can finally move again. <</if>> <<else>> <<bHe>> licks your face and whimpers with concern. <<if $passoutReason is "hyperthermia">> <<bHe>> bathes you with <<bhis>> tongue, diligently cleaning the sweat off your face. <<else>> <<bHe>> wiggles in close, enveloping you with soft fur as <<bhe>> shares <<bhis>> body heat with you. <</if>> <</if>> <br><br> <<bHe>> climbs off you and nudges you upright. Your <<= $passoutReason is "hyperthermia" ? "overheated" : "frozen">> body is weak with fatigue, and your <<= $passoutReason is "hyperthermia" ? "stomach churns with nausea" : "stiff joints ache">> as the <<beasttype>> circles you with worry. Slowly, but surely, <<bhe>> leads you through the woods to the safety of the wolf cave. <<if $passoutReason is "hyperthermia">> <<bHe>> urges you into the stream, where the water is cool and refreshing. <<bHe>> joins you in the water, splashing beside you, until you're done rinsing yourself. You collapse onto the bank. <<bHe>> shakes <<bhimself>> dry and lies down next to you. <<silently>><<wash>><<water>><</silently>> <<else>> <<bHe>> urges you into the warmth of the cave. <<bHe>> fusses over you until you sit down, and <<bhe>> shifts a pile of thatch over you in a makeshift blanket. <<bHe>> lies down next to you. <</if>> <br><br> You murmur your thanks to the <<beasttype>>, and <<bhis>> tail wags at your acknowledgement. <<if $monster is 1>>"Wolf cave always open for <<ppackbrother>>," <<bhe>> replies. "Next time, come here."<</if>> <br><br> <<if $passoutReason is "hyperthermia">> <<link [[Next|Wolf Cave Clearing]]>><<endevent>><<set $eventskip to 1>><<set $wolfevent to 0>><</link>> <<else>> <<link [[Next|Wolf Cave]]>><<endevent>><<set $eventskip to 1>><<set $wolfevent to 0>><</link>> <</if>> <<elseif $syndromewolves is 1 and ($monster is 1 or $settings.bestialityEnabled)>> <<if $monster is 1>> "Runaway, no good," <<bhe>> says. "Should have stayed in cave. <<= $passoutReason is "hyperthermia" ? "Stream is cool there, helps with heat" : "Squishy human could use fur for warmth">>." <<bHe>> begins to drag you through the woods. <<else>> <<bHe>> growls with displeasure at you, grabs you by the scruff of the neck like you're an errant puppy, and begins to drag you through the woods. <</if>> <br><br> Weak from the <<= $passoutReason is "hyperthermia" ? "heat" : "cold">>, you're helpless to resist as the <<beasttype>> carries you through the forest, all the way back to the cave. <<bHe>> dumps you at the back and gives a warning growl before turning away. <<if $monster is 1>> "Stay. You belong to pack." <</if>> <br><br> <<link [[Next|Wolf Cave]]>><<endevent>><</link>> <<elseif $monster is 1 or $settings.bestialityEnabled>> <<if $monster is 1>> "Prey is helpless," <<bhe>> says. "Alpha will be pleased." <<bHe>> begins to drag you through the woods. <<else>> <<bHe>> growls lowly, grabs you by the scruff of the neck like you're an errant puppy, and begins to drag you through the woods. <</if>> <br><br> <<link [[Next|Forest Wolf Cave Intro]]>><</link>> <<else>> <<bHe>> climbs off you and tries to grab you by the scruff of the neck. Despite your state, you manage to twist out of <<bhis>> reach at the last second. You run away from <<bhim>> as fast as you can. <<if $passoutReason is "hyperthermia">> You splash through a stream in your haste, which cools you off, at least. <<silently>><<water>><</silently>> <<else>> The physical exertion warms you slightly, at least.<<athletics 1>> <</if>> <<beastescape>> <br><br> <<link [[Next|Forest]]>><<endevent>><<set $eventskip to 1>><</link>> <br> <</if>><<effects>><<generate1>><<generate2>><<person1>> You come to when you feel someone patting your cheek to rouse you. "Hey, wake up, <<girl>>," a <<person1>><<person>> says. You can only groan weakly, eyes fluttering but unable to remain open. <br><br> "<<pShe>> looks flushed," a <<person2>><<person>> says. "Think the heat got to <<phim>>?" <br><br> <<if Weather.BodyTemperature.getWarmth() gte 25>> "Maybe. Look how much <<pshes>> wearing." <<else>> "Maybe, yeah." <</if>> The <<person1>><<person>> takes out an informational pamphlet meant for tourists and begins fanning you with it. "Should I give <<phim>> mouth to mouth?" <br><br> "You don't give mouth to mouth for heatstroke, idiot." <br><br> "So? <<pShes>> cute as fuck. Besides, when in Rome..." <<He>> leans down to kiss you. <br><br> <<link [[Stop <<him>>|Passout Heatstroke Kiss End]]>><<set $phase to 0>><</link>> <br> <<link [[Let it happen|Passout Heatstroke Kiss End]]>><<set $phase to 1>><<trauma 6>><<stress 6>><</link>><<kissvirginitywarning>><<gtrauma>><<gstress>> <br> <<if hasSexStat("promiscuity", 2)>> <<link [[Make out|Passout Heatstroke Kiss End]]>><<set $phase to 2>><</link>><<promiscuous2>><<kissvirginitywarning>> <</if>><<effects>> <<set Weather.Temperature.override.increase.inside(-3, "The impromptu fan brings some relief.")>> <<if $phase is 0>> <<if $speech_attitude is "meek">> You find the strength to scramble out from underneath the <<person>>. "H-hey, wait, I-I'm awake!" The <<personsimple>> seems defeated, but backs off. <<elseif $speech_attitude is "bratty">> You find the strength to slap the <<person>> and scramble out from under <<him>>. "Get off of me, pervert!" The <<personsimple>> rubs <<his>> cheek, scowling. <<else>> "Whoa, hang on," you say, finding the strength to scramble out from under the <<person>>. "I'm not okay with that." The <<personsimple>> seems defeated, but backs off. <</if>> <br><br> "<<= $NPCList[0].pronoun is "m" ? "Man" : "Girl">>, even in this town, you just can't catch a break, huh?" the <<person2>><<person>> laughs to <<his>> friend. <br><br> "<<= $NPCList[1].pronoun is "m" ? "Dude" : "Girl">>, shut up." <<person1>><<He>> gives you a scornful look before standing up. "Come on, let's go." They walk off together, leaving you be. <<elseif $phase is 1>> You lie still, and the <<person1>><<person>> presses <<his>> lips to yours. <<= either("<<His>> tongue tries to worm its way unpleasantly into your mouth.", "They're chapped and rough, the sensation not unlike kissing sandpaper.")>><<takeKissVirginity $NPCList[0] rape>> <br><br> <<He>> pulls away after a few moments. "Wow, the <<girls>> in this town are amazing. That was the best kiss I've ever had." <br><br> "<<pShes>> barely conscious, mate." <br><br> "I said what I said." <<He>> hesitates, but rejoins <<his>> friend. "Come on, let's go before <<pshe>> wakes up all the way." They walk off together, leaving you mostly unscathed. <<else>> You wait until you feel <<his>> weight over you to throw your arms around <<his>> neck, drawing <<him>> into a deep kiss. Your enthusiasm startles the <<person>>, but <<he>> responds in kind. You moan softly and allow your hands to roam along <<his>> body.<<takeKissVirginity $NPCList[0] "consensual">> <br><br> "Woo, get it, mate!" the <<person2>><<person>> hoots. <br><br> <<person1>><<He>> pulls away after a few moments, breathless and bewildered. "Holy shit," <<he>> says. <br><br> <<if $speech_attitude is "meek">> "Th-thank you for finding me," you say with a coy twirl of your hair. "I feel much better." <<elseif $speech_attitude is "bratty">> "Yeah? Not bad yourself, lover<<= $NPCList[0].pronoun is "m" ? "boy" : "girl">>," you tease. "I'm feeling much better now." <<else>> "That was nice," you say sweetly. "I feel a lot better. Thank you." <</if>> <br><br> Now overcome with nerves, the <<person>> stumbles over <<his>> words. "O-of course! Yeah, uh, n-no problem." <<He>> scrambles over to <<his>> friend. "Did you see that? They weren't kidding about this town," <<he>> whispers as <<he>> drags <<his>> friend off, leaving you be. <</if>> <br><br> Soaked in sweat and still somewhat weak, you climb to your feet. Maybe you should try finding a way to cool down. <br><br> <<link [[Next|$safePassage]]>><<endevent>><<set $eventskip to 1>><</link>><<effects>><<npc Robin>><<person1>><<wearProp "thermos" 0 "hot">> You wake up to the smell of hot chocolate. Robin kneels next to you, looking worried. "Are you okay?" <<He>> takes a look at what you're wearing<<if $exposed gte 1>>, or rather what you're not wearing<</if>>. <br><br> <<if C.npc.Robin.dom gte 50>> <<upperundress "Robin_upper">> <<upperwear 71>> "What in the world are you wearing? In this weather?" <<he>> tuts. <<He>> drapes <<his>> puffer jacket over your shoulders and then places a warm thermos in your hands. "Here, drink this. It'll help you warm up." <<set Weather.Temperature.override.increase.outside(-5, "Robin's puffer jacket making you warm.")>> <<else>> "Erm... A-aren't you cold, dressed like that?" <<he>> asks anxiously. <<He>> helps you sit up and places a warm thermos in your hands. "Here, this should help." <<set Weather.Temperature.override.increase.outside(-3, "Robin's hot chocolate warming you up.")>> <</if>> <br><br> The hot chocolate is warm and sweet as it goes down, and the radiant heat of the thermos eases the stiffness in your fingers. <br><br> "Th-thanks," you say, teeth chattering. Robin helps you stand to your feet <<if $exposed gte 1>>while trying to avoid looking directly at your <<lewdness>>,<</if>> but stops you when you start to walk away. <br><br> <<if C.npc.Robin.dom gte 50>> "Hey, no way," <<he>> says firmly. "I'm taking you home to change into something else." <<else>> "H-hey, erm... M-maybe you should go home and change. I can come with you?" <</if>> <br><br> <<link [[Accept|Passout Robin Hypothermia Park 2]]>><<handheldon>><<set $phase to 0>><</link>> <br> <<link [[Decline|Passout Robin Hypothermia Park 2]]>><<handheldon>><<set $phase to 1>><</link>><<effects>> <<if $phase is 0>> Robin places an away sign at <<his>> stand and walks you to the Orphanage. <<if C.npc.Robin.trauma gte 50>> <<He>> doesn't say much along the way. <<elseif C.npc.Robin.dom gte 50 and $robinromance is 1>> <<He>> holds your hand the whole way. <<else>> <<He>> doesn't seem to mind taking a break to help you. <</if>> <<He>> escorts you to your bedroom, pausing at the door. "I have to get back. Please be careful." <<storeon "Robin_upper">> <br><br> "I will," you assure <<him>>. "Thanks for walking me home." <br><br> <<if $robinromance is 1>> <<if C.npc.Robin.dom gte 50>> <<He>> places a firm smooch on your cheek. <<else>> <<He>> hesitates, but plants a small kiss on your cheek. <</if>> <</if>> You give <<him>> a placating smile and see <<him>> off. <br><br> <<link [[Next|Bedroom]]>><<endevent>><<set $daily.robin.passout to 1>><</link>> <<else>> <<if C.npc.Robin.dom gte 50>> "...Okay." <<He>> nods after a terse huff. "As long as you know what you're doing..." <br><br> You give <<his>> jacket back. <<storeon "Robin_upper">> <<if $worn.hands.name is "naked">> <<He>> removes <<his>> fingerless gloves and gives them to you. "I don't need them back, just... be safe, you know?" <<handswear 1 "purple">> <</if>> <<else>> "I... O-okay, if you know what you're doing..." <<He>> looks to <<his>> feet. "Just... promise me you'll be careful." <</if>> <br><br> "I'll be fine," you say. <br><br> <<if $robinromance is 1>> <<if C.npc.Robin.dom gte 50>> <<He>> places a firm smooch on your cheek. "You know where to find me if you need anything." <<else>> <<He>> hesitates, but plants a small kiss on your cheek. "Okay. If you say so..." <</if>> <</if>> <br><br> You give <<him>> a reassuring smile and carry on as you are. <br><br> <<link [[Next|Park]]>><<endevent>><<set $daily.robin.passout to 1>><</link>> <</if>><<set $outside to 0>><<set $location to "lake">><<effects>> <<npc Winter>><<person1>> <<outfitChecks>> <<returnCarried>> You wake up to the sound of pen scribbling on paper. You look around and see green tent walls surrounding a spacious interior. You realise you are in the archaeological office by the lake. <br><br> <<if $passoutReason is "hyperthermia">> <<set Weather.Temperature.override.increase.inside(-5, "The ice bag cools you down.")>> You find yourself wrapped solely in a towel. You sit up, and an ice bag slides down from your neck. <br><br> "Good to see you up." You turn around to find Winter mixing a spoonful of salt into a cup of water. "<<if !_fullyNaked>>I apologise, but I had to remove your clothes. <</if>>It seems like you were overheated." <<He>> hands you the cup and sits down next to you. <br><br> <<if $exposed gte 1>> <<if Time.season is "summer">> "The weather is severe around this time," <<he>> says. "You should be more cautious." <<elseif Time.season is "spring">> "The weather's getting warmer," <<he>> says. "Perhaps a bit too warm." <<elseif Time.season is "autumn">> "The weather's getting colder," <<he>> says. "But it seems like the remainder of summer is still there." <<else>> "I'm astonished you managed to pass out of heatstroke at this time of year." <<He>> examines you closely. "Especially in that state of dress." <</if>> <<else>> <<if Time.season is "summer" and _top.warmth gte 7>> <<He>> sighs. "Why would you dress like that during this time of the year?" <<He>> gives you a stern look. "I expected better from you." <<npcincr Winter love -1>><<llove>> <<elseif Time.season is "spring">> "The weather's getting warmer," <<he>> says. "You should be wiser in your choice of clothes." <<elseif Time.season is "autumn">> "The weather gets colder at this time of year," <<he>> says. "But you still need to watch how you dress." <<elseif Weather.isFreezing>> "Glacial temperatures, indeed." <<He>> looks outside the tent, then glances back at you. "But don't suffocate yourself." <</if>> <</if>> <<if !_fullyNaked>> <<strip>><<towelup>> Winter hands you a pile of neatly-folded clothing. "Here are your belongings." <br><br> <<link [[Get dressed|Passout Lake Office Dress]]>><</link>> <br> <<link [[Insist on wearing the towel|Passout Lake Office Dress End]]>><<set $phase to "towel">><<returnCarried>><</link>> <<else>> <<towelup>> Winter spends a few moments to ensure you're okay before sending you on your way. <br><br> <<link [[Next|Lake Office]]>><<endevent>><<pass 10>><</link>> <</if>> <<else>> <<set Weather.Temperature.override.increase.inside(5, "The comforter warms you up.")>> You try to sit up, and a heavy comforter slides down from your body. <br><br> "Good to see you up." You turn to find Winter holding a tray with two cups of hot tea on top of it. "I found you lying on the bank. Have some tea, you need it." <br><br> You reach for a cup, but your fingers are numb and trembling, and you struggle to wrap them around the handle. Winter notices. <<He>> sighs and sets the tray on the table, then takes a cup in <<his>> hand and sits beside you. <<He>> holds your hand and presses it to the cup, warming it up. <<wearProp "tea">> <br><br> <<if $exposed gte 1>> <<if Time.season is "summer">> "I don't blame you for dressing like that during this time of the year," <<he>> says. "But perhaps you should be more careful." <<elseif Time.season is "spring">> "The weather's getting warmer," <<he>> says. "But that's no excuse to dress inappropriately." <<elseif Time.season is "autumn">> "The weather's getting colder," <<he>> says. "You should be wiser in your choice of clothes." <<else>> <<He>> squints upon seeing your state of dress. "Dressing like that in this weather?" <<He>> rubs <<his>> temples. "I expected better from you." <<npcincr Winter love -1>><<llove>> <</if>> <br><br> <<He>> fetches a jacket from the back of the tent. "Here, take this," <<he>> says, wrapping it around your shoulders. "I have a few spares." <<upperwear 49 "grey" "blue steel">> <br><br> <<He>> stays by your side and spends a few minutes lecturing you. <<elseif _top.warmth gte 7>> <<if Time.season is "summer">> "Magnificent," <<he>> muses. "It's a wonder how you managed to get hypothermia at this time of year." <<He>> pauses, then adds, "And with your state of dress, too." <<elseif Time.season is "spring">> "The weather's getting warmer," <<he>> says. "But you shouldn't underestimate its impact." <<elseif Time.season is "autumn">> "The weather's getting colder," <<he>> says. "I can see you are well prepared. But perhaps you should be more careful." <<else>> "You are prudent in your choice of clothes," <<he>> says. "Still, when the weather's exceptionally frigid, I'd suggest staying indoors." <</if>> <br><br> <<He>> insists on keeping you around until you finish your tea, lecturing you the whole while. <</if>> You endure Winter's mild scolding and promise to take better care of yourself. <br><br> <<link [[Next|Lake Office]]>><<unset $passoutReason>><<endevent>><<pass 10>><</link>> <</if>><<effects>> It occurs to you that it might be best to put on fewer clothes for right now. Anything else can be sent to your wardrobe. <br> <<getDressedList>> <<link [[Finish dressing|Passout Lake Office Dress End]]>><</link>><<effects>> <<if $phase is "towel">> Winter frowns, but doesn't argue. "Very well then." <<He>> pauses, then concedes, "I suppose it will keep you cool." <<else>> Winter keeps <<his>> back to you, respecting your privacy as you get dressed. <</if>> <<He>> spends a few moments to ensure you're okay before sending you on your way. <br><br> <<link [[Next|Lake Office]]>><<unset $passoutReason>><<endevent>><<pass 10>><</link>><<set $outside to 1>><<set $location to "lake">><<effects>> <<npc Mason>><<person1>><<outfitChecks>> <<if $phase is "underwater">> You feel someone's arms wrap around you, dragging you to the surface. <</if>> <<if !Weather.isFreezing and Time.season isnot "winter">> <<set Weather.Temperature.override.increase.outside(-5, "The cool water causes the heat from your body to dissipate quickly.")>> You wake up in a pair of toned arms. Half of your body is immersed in the cool lake water. <br><br> "You're awake!" the person holding you cheers. <span class="green">It's Mason.</span> <<He>> sounds relieved. "You didn't wake up for quite a while, so I called an ambulance, just in case," <<he>> says. "They'll arrive soon." <br><br> <<He>> examines your state of dress. <<if _fullyNaked>> <<His>> cheeks are bright red, and <<he>> quickly looks away. "I'm not sure how you managed to get heatstroke, but you should be more careful. Too much physical exertion can cause you to overheat." <<elseif _swimwear>> "It's always nice to go swimming every now and then," <<he>> says. "But you shouldn't go overboard with it. Too much physical exertion can cause heatstroke, after all." <<else>> "Sorry for soaking your clothes," <<he>> says awkwardly. "I figured the water would be the best way to help cool you down." <</if>> <br><br> <<He>> helps you stand and escorts you to the shore. <<if !_fullyNaked and !_swimwear>><<He>> does <<his>> best to help you dry your clothes.<</if>><<dry>> <<else>> <<set Weather.Temperature.override.increase.outside(-5, "The chilly air caresses your skin.")>> You wake up beneath the shade of a tall tree near the lake. <br><br> "You're awake!" a voice exclaims. You turn and see Mason sitting beside you. "You didn't wake up for quite a while, so I called an ambulance, just in case," <<he>> says. "They'll arrive soon." <<if $exposed gte 1>> <<He>> examines you with concern. "Why would you dress so poorly at this time of year?" <<He>> rubs <<his>> head, looking confused. "And how did you manage to get heatstroke? You need to be more careful. Too much physical exertion can cause you to pass out." <<else>> <<He>> gives you a concerned glance. "It gets cold out this time of year, but you need to take care with how you dress." <</if>> <</if>> <br><br> Mason stays with you until the ambulance arrives, and the two of you chat idly. <br><br> <<link [[Next|Passout Mason Ambulance]]>><<set $passoutReason to "hyperthermia">><</link>><<set $outside to 1>><<set $location to "lake">><<effects>> <<npc Mason>><<person1>> <<set Weather.Temperature.override.increase.outside(5, "The towel and Mason's body heat warm you up.")>> <<if $phase is "underwater">> You feel someone's arms wrap around you, dragging you to the surface. <</if>> You wake up to a pair of arms and a thick towel wrapped around you. A toned chest presses against your back. You try to move. <br><br> Your rescuer squeezes you. "You're awake!" <span class="green">It's Mason.</span> <<He>> sounds relieved. "You didn't wake up for quite a while, so I called an ambulance, just in case," <<he>> says. "They'll arrive soon." <br><br> <<He>> examines your state of dress. <<if $worn.upper.type.includes("diving") and $worn.lower.type.includes("diving")>> <<if Time.season is "summer">> "How did you manage this?" <<he>> asks in disbelief. "The suit itself is already warm, not to mention, it's summer." <<elseif Time.season is "spring">> "How strange," <<he>> muses. "It's getting warmer this time of year, and you're wearing a diving suit." <<elseif Time.season is "autumn">> "It gets chilly this time of year," <<he>> says. "You should be more cautious." <<else>> "Diving in the winter?" Mason shakes <<his>> head. "You might be dressed for it," <<he>> says. "But <<= Weather.isFrozen("lake") ? "the ice is treacherous" : "you should know better">>."<<npcincr Mason love -1>><<llove>> <</if>> <<elseif $exposed gte 1>> <<if _fullyNaked>> <<His>> cheeks are bright red, and <<he>> quickly looks away. <</if>> <<if Time.season is "summer">> "I know it's tempting to wear nothing when it's summertime," <<he>> says. "But you still need to be careful." <<elseif Time.season is "spring">> "It gets warmer this time of year, but still, you need to mind how you dress." <<elseif Time.season is "autumn">> "It gets chilly this time of year," <<he>> says. "You should wear more clothes." <<else>> "You should know better than to walk around like that in the winter." <<He>> shakes <<his>> head, but doesn't take it further.<<npcincr Mason love -1>><<llove>> <</if>> <<else>> <<if Time.season is "summer">> "H-How did you?" <<he>> stammers and shakes <<his>> head. "Perhaps you should report this to the developer team." <<elseif Time.season is "spring">> "The weather's starting to warm up, but it can still get chilly out." <<He>> frowns. "You should be more careful." <<elseif Time.season is "autumn">> "The weather's getting colder," <<he>> says. "It's never bad to wear a little extra." <<else>> "It can get pretty frigid in the winter." <<He>> gives you a reassuring smile. "If it gets to be too cold, I recommend staying indoors." <</if>> <</if>> <br><br> Realising that <<hes>> still wrapped around you, Mason quickly lets go and sheepishly helps you up. <<He>> stays with you until the ambulance arrives, and the two of you chat idly. <br><br> <<link [[Next|Passout Mason Ambulance]]>><<set $passoutReason to "hypothermia">><</link>><<effects>> The paramedics insist on wheeling you onboard in a gurney, despite being alert and responsive. You give Mason an awkward wave goodbye as the ambulance doors shut. The paramedics ask questions about your health on the journey to the hospital. Thankfully, you're discharged soon after arriving, though the nurse gives you a stern lecture on the dangers of <<= $passoutReason>>. <br><br> <<if $exposed gte 1>> <<if $backgroundTraits.includes("crossdresser")>> <<set $clothingselector to $player.sex is "m" ? "f" : "m">> <<else>> <<set $clothingselector to $player.gender_appearance>> <</if>> <<if $clothingselector is "m">> <<underlowerwear 4>> <<upperwear 4>> <<lowerwear 5>> <<else>> <<upperwear 1>> <<underlowerwear 1>> <</if>> <</if>> <<link [[Next|Hospital Foyer]]>><<unset $passoutReason>><<endevent>><<pass 20>><</link>><<set $outside to 1>><<set $location to "lake">><<effects>> <<generatey1>><<generatey2>><<generatey3>><<generatey4>> You wake up to hands groping your body. <br><br> "You're awake," says a <<person1>><<person>>. <<Hes>> not alone. "You looked so cold, we just want to help you warm up." You recognise them from school. <br><br> <<if $speech_attitude is "meek">> "P-please don't," you plead. <<elseif $speech_attitude is "bratty">> "Don't you dare touch me." You scowl. Your fingers are numb, but you still manage to curl them into fists. <<else>> "Don't you dare," you say. <</if>> <br><br> Your voice falls on deaf ears as they close in. <br><br> <<link [[Next|Passout Hypothermia Lake Rape]]>><<set $molestationstart to 1>><</link>><<if $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<maninit>> <</if>> <<effects>> <<effectsman>> <<alarmstate>> <<man>> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Passout Hypothermia Lake Rape Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Passout Hypothermia Lake Rape]]>><</link>></span><<nexttext>> <</if>><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<ejaculation>> "Thanks for getting us off, slut. Bet you're nice and warmed up now, eh?" Laughter and cheers erupt from the youths as the <<person1>><<person>> sends you off with a smack on your <<bottom>>. <<elseif $enemyhealth lte 0>> The <<person1>><<person>> shoves you away with a yelp of pain, and the others swear. "Fine, be like that, <<bitch>>! See if anyone saves your ass ever again!" They collect themselves and stalk off, shooting you dirty looks. <</if>> <br><br> <<tearful>> you gather yourself. <br><br> <<clotheson>> <<endcombat>> <<set Weather.Temperature.override.increase.outside(5, "The intense exertion has warmed your body up.")>> <<link [[Next|Lake Shore]]>><<endevent>><</link>><<effects>><<generate1>><<generate2>> <<if $worn.neck.name is "familiar collar" and $worn.neck.cursed is 1>> You awaken on a wooden floor. Two figures loom over you. <br><br> "You weren't lying," a <<person1>><<person>> says. "Good stock.<<if $settings.pregnancySpeechEnabled>> Would make a fine breeder.<</if>>" <br><br> "<<= $settings.pregnancySpeechEnabled ? "Breeder?" : "Personally,">>" the <<person2>><<person>> replies, "I'm more interested in the produce. Gonna make a killing. Need to do something about that stubborn collar, though." <<He>> grasps your familiar collar, and forces you to your feet. You're in a small barn. The <<person>> recoils as you hear a small zap. "A shock collar? Maybe we can keep it after all." <<He>> pushes you along. <br><br> <<badEndTracking "Underground Farm" { reason: "tempPassout" }>> <<link [[Next|Livestock Intro Familiar Collar]]>><<endevent>><</link>> <br> <<else>> <<leash 21>> You awaken on a wooden floor, a cold heavy weight around your neck. Two figures loom over you. <br><br> "You weren't lying," a <<person1>><<person>> says. "Good stock.<<if $settings.pregnancySpeechEnabled>> Would make a fine breeder.<</if>>" <br><br> "<<= $settings.pregnancySpeechEnabled ? "Breeder?" : "Personally,">>" the <<person2>><<person>> replies, "I'm more interested in the produce. Gonna make a killing." <<He>> grasps the leash attached to your collar, and forces you to your feet. You're in a small barn. The <<person>> tugs you behind <<him>>. <br><br> <<badEndTracking "Underground Farm" { reason: "tempPassout" }>> <<link [[Next|Livestock Intro]]>><<endevent>><</link>> <br> <</if>><<set $outside to 0>><<effects>> <<outfitChecks>> <<npc Wren>><<person1>> You wake up in an unfamiliar room. <<if $passoutReason is "hypothermia">> You're wearing a stranger's jacket and jeans. <<if !_fullyNaked>> <<if _underwear>>Your underwear is conspicuously missing.<</if>> <span class="red">Your old clothes are nowhere to be found.</span> <<upperruined>><<lowerruined>><<underlowerruined>><<underupperruined>> <</if>> At least you're not freezing anymore. <br><br> "This cold weather's dangerous, you know," a voice says. "You're lucky that we had some clothes lying around, but we are going to need them back." <<upperwear 41 "tan">><<lowerwear 22 "denim">> <<else>> <<set Weather.Temperature.override.increase.outside(-5, "The fan cools you.")>> A standing fan is blowing on your face. There's a glass of water next to you. You take it and drink the entire glass in one breath. <br><br> <<if !_fullyNaked>> "I'm surprised," a voice says. "I don't think I've ever seen you wearing so many clothes. You could stand to lose a few." <<else>> "I'm not surprised that I found you wearing so little," a voice says. "But I <i>am</i> surprised you managed to get heatstroke like this." <</if>> <</if>> <br><br> You turn your head. <span class="gold">It's Wren.</span> <<outfitChecks>> <<if !_fullyNaked>> <<He>> holds up a deck of cards. "Fancy a game?" <br><br> <<link [[Accept|Passout Estate Wren Cards Accept]]>><<npcincr Wren love 1>><</link>><<glove>> <br> <<link [[Refuse|Passout Estate Wren Cards Refuse]]>><<npcincr Wren love -1>><</link>><<llove>> <<else>> <<He>> smiles. "I'd invite you to play cards while you cool down, but well... not much point." <<He>> nods at your naked body. <br><br> You blush profusely, but thank Wren for rescuing you. <<He>> gives a dismissive wave, and you turn to leave. "Come back when there's something you want," <<he>> says. "And maybe consider staying indoors, if the heat gets to you that much." <br><br> <<link [[Next|Estate]]>><<unset $passoutReason>><<endevent>><</link>> <</if>><<effects>> "If you're sure," Wren says. <<if $passoutReason is "hypothermia">> "That'll be <<printmoney 15000>>." <<He>> holds out <<his>> hand. <br><br> <<if $money gte 15000>> <<link [[Pay|Passout Estate Wren Pay]]>><<money -15000>><</link>> <<else>> <span class="blue">You can't afford it.</span> <</if>> <br> <<link [[Return clothes|Passout Estate Wren Return]]>><</link>> <<else>> "Stay cool out there," <<he>> says. "I'm not sticking my neck out for you a second time." <br><br> You leave the cottage. <br><br> <<link [[Next|Estate]]>><<unset $passoutReason>><<endevent>><</link>> <</if>><<effects>> <<generate2>><<generate3>><<generate4>><<generate5>><<generate6>> "Good," Wren says. "Through here." <br><br> <<He>> gestures for you to follow and leads you into the familiar card room, where <<his>> goons are waiting. <<He>> sits at the table and nods at the chair opposite <<him>>. <br><br> <<link [[Next|Estate Cards Intro 2]]>><</link>><<effects>> You hand Wren the money. <<He>> pockets it without looking. "So long," <<he>> says. <br><br> You leave the cottage. <br><br> <<link [[Next|Estate]]>><<unset $passoutReason>><<endevent>><</link>><<effects>><<upperruined true>><<lowerruined true>> You strip and drop the clothes at Wren's feet. <<He>> lifts <<his>> eyebrows as if surprised. You fold your arms, smirking at <<him>>. <<His>> expression soon smooths as <<he>> takes in the sight. <br><br> "If that's what you want," <<he>> says. "Just keep warm. I'm not sticking my neck out for you a second time." <br><br> You leave the cottage, well aware of <<his>> eyes following you. <br><br> <<link [[Next|Estate]]>><<unset $passoutReason>><<endevent>><</link>><<effects>><<set $location to "lake">><<set $outside to 1>><<outfitChecks>> <<set Weather.Temperature.override.increase.outside(-5, "The mud is cool against your skin.")>> <<generates1>> You wake up to a cold and wet sensation all over your body. Getting your bearings, you see that you are lying on your back next to the lake. A <<person1>><<person>> massages mud from the bank across your skin sensually while a small crowd of your classmates watch. <<if !_overNaked or !_middleNaked>>You notice immediately that you <<= _underwear ? "must have been stripped down to your underwear while you were unconscious" : "are not wearing anything beneath the mud">>!<</if>> You sit upright with a start, drawing a few gasps from the crowd. <br><br> "Sorry, you passed out, so we figured we needed to cool you down somehow," the <<personsimple>> explains, clearly feigning innocence. The other students laugh. Some film your reaction on their cell phones. <br><br> "Now that you're feeling better, you ought to wash off, you dirty, dirty, <<girl>>," <<he>> says with a mocking tone. <br><br> <<overupperruined>><<overlowerruined>><<upperruined>><<lowerruined>> <<if _bottom and _bottom is $worn.under_lower>> <<underlowerruined>> <</if>> <<if _top and _top is $worn.under_upper>> <<underupperruined>> <</if>> <<fameexhibitionism 5 "vid">> <<if hasSexStat("exhibitionism", 4) and $uncomfortable.nude is false>> <<link [[Wash|Passout Heatstroke Mud Wash]]>><<water>><<status 1>><</link>><<exhibitionist4>><<gcool>> <<else>> <<link [[Wash|Passout Heatstroke Mud Wash]]>><<set $desperateaction to "it's better than being covered in mud">><<stress 12>><<status 1>><<water>><</link>><<ggstress>><<gcool>> <</if>> <br> <<link [[Run|Passout Heatstroke Mud Run]]>><<stress 6>><</link>><<gstress>><<silently>><<effects>><</silently>> /* Yes this is intentional, because water effects are janky as hell. */ <<if hasSexStat("exhibitionism", 4)>> You confidently stride over to the lake and submerge yourself in the water. You rub as much of the mud off as possible while your audience snickers and giggles. As you emerge from the lake, the other students bolt before you have a chance to ask what happened to your clothing. <<else>> Embarrassed, you cover yourself up as best you can and move to the lake. Slipping beneath the surface, you clean the mud off the best you can while trying to keep your classmates from seeing you undressed. <br><br> When you are as clean as you can get, you walk awkwardly back to the shore. Your peers point and laugh as your face burns with shame. Before you have a chance to ask what happened to your clothing, the other students bolt. <</if>> <br><br> <<exhibitionism4>> <<fameexhibitionism 10 "vid">> <<link [[Next|Lake Shore]]>><<endevent>><<set $eventskip to 1>><</link>><<effects>><<set $location to "forest">><<set $outside to 1>> You get up and flee into the woods, hoping to get out of sight of your peers and their cameras. A few students chase you and shout lewd remarks, but you lose them relatively quickly in the trees. Once you feel you are far enough away, you finally stop to catch your breath. Using sticks and leaves, you clean off as much of the mud as possible and take a look at your surroundings. <br><br> <<link [[Next|Forest]]>><<endevent>><<set $eventskip to 1>><</link>><<effects>><<upperstrip>><<lowerstrip>><<facestrip>><<bindtemp>><<facewear 4>> <<generatey1>><<generatey2>> As you come to, you realise that you have been stripped down to your <<undies>>, gagged, and tied to a chair in the alley. Before you can get your bearings, you hear the voice of one of your classmates, a <<person1>><<person>>. "Shush! <<pShes>> waking up. Start recording." <br><br> "Ready, set, action," a <<person2>><<person>> whispers. <br><br> "Remember, folks: the best way to prevent heatstroke is to take lots of cool water with you and dress appropriately in hot weather!" the <<person1>><<person>> instructs in a cheesy tone. <<He>> addresses a small camera on a cheap tripod. <br><br> <<He>> brandishes a water bottle filled with more ice cubes than water, stretches the waistband of your <<undies>>, and pours half of its freezing contents down the front! You yelp into your gag and squirm to try and get the ice away from your <<= $player.penisExist ? "penis" : "clit">>. While you're otherwise occupied, the rest of the ice water is dumped down the back of your <<undies 1>>. The <<person>> takes an ice cube in each hand and massages your nipples with them. You yelp at the frigid sensation. <<gpain>><<pain 6>> <br><br> <<He>> grins at the camera as <<he>> signs off, "Check out our other videos for more health tips. We'll see you next time!" <br><br> "Alright, let's go," the <<person2>><<person>> says, packing up the camera. The pair remove your gag and untie your hands, leaving you to free yourself from the remainder of your binds. <<if $carried.face.name isnot "naked">>They take your <<= $carried.face.name>> as a souvenir.<</if>> By the time you remove the ice from your soaked <<undies>> and locate your clothes, they're long gone. <<gstress>><<stress 6>> <br><br> <<fameexhibitionism 10 "vid">> <<link [[Next|$safePassage]]>><<unbindtemp>><<set $worn.face.type.push("broken")>><<faceruined>><<underlowerwet 200>><<clotheson>><<endevent>><<set $eventskip to 1>><</link>><<effects>><<set $location to "beach">><<set $outside to 1>> <<upperstrip>><<lowerstrip>><<underupperstrip>><<underlowerstrip>><<upperwear 148 "white">> <<generate1>><<person1>> You wake up under a small awning on the beach. Sitting up on the beach towel, you realise your clothing is gone. You're wearing nothing but a white oversized button-down shirt. Before you can speak, a <<person>> explains, "Hey, glad to see you're awake. I saw you passed out and decided to keep an eye on you while you recovered." <br><br> When you ask where your clothes are, <<he>> responds, "Well... I'm not entirely sure. I bet I could find them though, if you were willing to do something for me. A buddy of mine is starting up a wet t-shirt contest, and we want a few new contestants. What do you say? I bet the water could do you some good in your condition." <br><br> <<link [[Agree reluctantly|Passout Beach Heatstroke Wet Shirt 2]]>><<set $phase to 0>><<stress 6>><</link>><<gstress>> <br> <<if hasSexStat("exhibitionism", 3)>> <<link [[Agree enthusiastically|Passout Beach Heatstroke Wet Shirt 2]]>><<set $phase to 1>><</link>><<exhibitionist3>> <br> <</if>> <<link [[Refuse|Passout Beach Heatstroke Wet Shirt 2]]>><<set $phase to 2>><</link>><<effects>> <<if $phase is 2>> You refuse to go along with the request, and the <<person>> shrugs. "Suit yourself," <<he>> says, walking away. You look around for your clothes but turn up empty-handed. The button-down will have to do. <br><br> <<link [[Next|Beach]]>><<upperruined>><<lowerruined>><<underupperruined>><<underlowerruined>><<upperwear 148 "white">><</link>> <<else>> <<generate2>><<generate3>><<fameexhibitionism 5>><<set $upperwetstage to 2>><<set $lowerwetstage to 2>> You agree to take part in the show, much to the pleasure of the <<person1>><<person>>. <<He>> leads you to a nearby pier where a small crowd is gathering and has you line up with a <<person2>><<person>> and <<person3>><<person>>. You stand there <<= hasSexStat("exhibitionism", 3) ? "confidently" : hasSexStat("exhibitionism", 2) ? "patiently" : "nervously">>, waiting for your turn. <br><br> The <<person2>><<person>> goes first, doing a seductive dance while members of the crowd pour pitchers of water over <<his>> chest. The sounds of whistling and catcalling follow <<him>> as <<he>> walks down the pier. The <<person3>><<person>> goes next, standing with <<his>> hands raised stiffly while <<he>> is drenched. <<He>> fakes a smile while a few people in the crowd make crude remarks, before hurrying to find a place to change. <br><br> The <<person1>><<person>> leads you to the centre of the transfixed crowd. <<if $phase is 1>> You do a sexy little dance as the water is poured down your front. Your audience cheers as the oversized button-down becomes transparent, revealing your <<chest>>. <<exhibitionism3>> You twirl on the spot and give a bow before returning to the <<person1>><<person>>. <<He>> returns your clothes to you with a big smile on <<his>> face. <<else>> You go rigid, but manage to lift your arms up like the person before you. Despite some disappointed murmurs, the audience still enjoys watching the button-down turn transparent, revealing your <<chest>>. <br><br> As soon as you are able, you return to the <<person1>><<person>>. <<He>> returns your clothes to you with a neutral expression. "A deal's a deal, I guess. Here you go." <</if>> <br><br> <<link [[Next|Beach]]>><<clotheson>><<dry_full>><<endevent>><<set $eventskip to 1>><</link>> <</if>><<effects>><<set $outside to 0>><<npc Eden>><<person1>> You wake up on the cabin bed, groggy. Turning your head to the side, you see Eden sitting beside you. <<He>> notices you stirring. <br><br> "You're up. I was worried," <<he>> says. <<His>> voice sounds relieved. <br> <<if $passoutReason is "hyperthermia">> <<set Weather.Temperature.override.increase.inside(-5, "The wet towel cools you down.")>> <<He>> takes the towel from your forehead, dips it in water, wrings it dry, then puts it back on you. <br> "You were careless," <<he>> tells you. "You're lucky that I was around." <<else>> <<set Weather.Temperature.override.increase.inside(5, "You huddle under the covers.")>> <<He>> helps you adjust the covers. <br> "What were you thinking?" <<he>> says. "If I hadn't been around, you would've frozen to death!" <</if>> <br> <<He>> frowns at you. "No more going outside today. Stay here and rest." <<His>> voice is stern, leaving no room for argument. <<stress 10>><<gstress>> <br><br> <<He>> stays by your side and watches over you for a while, before <<if Time.hour gte 0 and Time.hour lte 6>> returning to bed. <<elseif Time.hour lte 8>> getting ready for the day. <<elseif Time.hour lte 17>> heading back outside. <<else>> returning to <<his>> own tasks. <</if>> <br><br> <<link [[Next (0:15)|Eden Cabin]]>><<pass 15>><<endevent>><</link>><<effects>> <<if $wolfgirl gte 6>> <<beastNEWinit 1 dog>> <<elseif $cat gte 6>> <<beastNEWinit 1 cat>> <</if>> You feel a wet sensation on your face and blink awake. <br><br> A <<beasttype>> is licking your face. You struggle to sit up, finding your clothes torn apart. The <<beasttype>> <<= $NPCList[0].type is "dog" ? "nudges you" : "circles your arm">>, excited that you're awake. <<if $monster is 1>>"You awake! Couldn't help you up. So worried."<</if>> <br><br> Looks like <<bhe>> tried to wake you up, damaging your clothes in the process. At least it helped you escape the heat.<<overupperruined>><<upperruined>><<= either("<<underupperruined>>", "<<lowerruined>>")>> <br><br> After making sure you're okay, the <<beasttype>> gives you one last nuzzle and leaves. <br><br> <<link [[Next|Park]]>><<endevent>><<set $eventskip to 1>><</link>> <br><<effects>> <<generatey1>><<person1>> You wake up to a cold blast of water hitting you full in the face. A group of delinquents stands nearby, laughing as they spray you with a hose. <br><br> "Wake up, loser!" one of them, a <<person>>, jeers, the others joining in with mocking laughter. <br><br> You try to speak, but another blast of water hits you, cutting off your words. The water is cold, soaking through your clothes and making you shiver despite the heat. <<water>><<set Weather.bodyTemperature-->> <br> Finally, they get bored and leave, the sound of their laughter echoing in your ears as you lay there, drenched and humiliated.<<stress 6>><<trauma 6>><<gstress>><<gtrauma>> <br><br> <<link [[Next|Park]]>><<endevent>><<set $eventskip to 1>><</link>> <br><<effects>> <<generatey1>><<person1>> You struggle to wake up, unsure how many hours you've been unconscious, your head still foggy. <br><br> Your body feels heavy. If you don't cool down soon, you might pass out again. <br><br> You notice a <<person>> in front of you. <<He>> stares at you, then suddenly opens <<his>> coat quickly, exposing <<his>> <<genitals>> to you! "Hey! This is how you stay cool," <<he>> says playfully, making you feel <<= hasSexStat("promiscuity", 4) or hasSexStat("exhibitionism", 3) ? "aroused.<<arousal 200>><<garousal>>" : "disgusted.<<stress 6>><<trauma 6>><<gstress>><<gtrauma>>">> <br><br> After flashing you, <<he>> quickly runs off. <br><br> <<link [[Next|Park]]>><<endevent>><<set $eventskip to 1>><</link>> <br><<effects>><<location "office">> <<generate1>><<person1>> <<if $phase2 is "cold">> You wake up feeling much warmer than before. When you sit up, a thick blanket that must have been draped over you falls to your lap.<<set Weather.bodyTemperature++>> <<else>> /* heat */ You wake up feeling much cooler than before. When you sit up, a moist handkerchief falls from your forehead and onto your lap. You notice your clothes have been displaced to vent the heat from your body, too.<<set Weather.bodyTemperature-->> <</if>> <br><br> "Ah, you're awake," someone says. You turn your head and see a <<person>> sitting at a nearby desk. <<He>> gets up from <<his>> desk to approach you. <br><br> <<link [[Next|Passout Office Work]]>><</link>> <br><<effects>> "I saw you collapse from the <<= $phase2 is "cold" ? "cold" : "heat">> while I was on my way back to the office." <<set $phase2 to either("mild", "offended")>> <<if $phase2 is "mild">> <<He>> smiles at you and puts a hand on your shoulder. "You need to take better care of yourself. You may be young, but that doesn't mean you're invincible, you know?" <<else>> /* offended */ <<He>> scoffs and crosses <<his>> arms. "Kids these days... You aren't invincible, you know? Just because you're still young doesn't mean you don't have to take care of your health, <<girl>>." <</if>> <br><br> <<if $speech_attitude is "meek">> "Thank you for helping me..." you mumble. "And s-sorry for being a bother..." <<elseif $speech_attitude is "bratty">> "...Thanks. You didn't have to do any of that, but you did, so... thanks," you say with an awkward shrug. <<else>> "Thanks for the help. Who knows what would have happened if you hadn't helped..." <</if>> <br><br> <<if random(1,2) is 1>> <<if $phase2 is "mild">> "You're welcome," the <<person>> replies, removing <<his>> hand from your shoulder. "Though, in the spirit of reciprocity..." <<He>> gestures to <<his>> desk. "I'd appreciate a little help with my work. I'll even pay you for it." <<else>> /* offended */ "If you really want to show your gratitude..." The <<person>> gestures towards <<his>> desk. "...then you can help me with my work. I'll even pay you for it," <<he>> adds with a smile. <</if>> <br><br> <<link [[Agree (0:15)|Passout Office Work 2]]>><<set $phase to 0>><<pass 15>><</link>> <br> <<else>> <<if $phase2 is "mild">> "You're welcome," the <<person>> replies. "Though, in the spirit of reciprocity..." <<He>> puts <<his>> free hand on your other shoulder. "I'd appreciate a little bit of...company." <<He>> winks. "I'll even pay you for it." <<else>> /* offended */ "If you really want to show your gratitude..." The <<person>> puts <<his>> hands on your shoulders. "...then you can show it with your body. I'll even pay you for it," <<he>> adds with a smirk. <</if>> <br><br> <<if hasSexStat("promiscuity", 2)>> <<link [[Accept the offer|Passout Office Work Sex]]>><<set $sexstart to 1>><</link>><<promiscuous2>> <br> <<elseif $uncomfortable.prostituting is false>> <<His>> offer repulses you, but you need the money. <br><br> <<link [[Reluctantly accept the offer|Passout Office Work Sex]]>><<set $sexstart to 1>><<set $desperateaction to 1>><</link>><<promiscuous2>> <br> <<else>> <<insufficientStat "promiscuity" "to take up such an offer">> <br> <</if>> <</if>> <<if dangerEvent()>> <<link [[Refuse|Passout Office Work Sex]]>><<set $molestationstart to 1>><</link>> <<else>> <<link [[Refuse|Passout Office Work 2]]>><<set $phase to 1>><</link>> <</if>> <br><<effects>> <<if $phase is 0>> /* Agree */ The <<person>> doesn't ask for much. <<He>> just has you <<= either("sort some files", "deliver a couple messages to some associates", "pick up a document from the fax machine down the hall")>> and <<= either("tidy up <<his>> office", "water <<his>> plants", "pick up a coffee for <<him>> from the cafe on the ground floor")>>. It doesn't take very long. <br><br> Once you're finished, <<he>> thanks you and gives you the pay <<he>> promised. <<assignmenttip 5>> <br><br> Job completed, you leave <<his>> office and exit the building. <<else>> /* Refuse */ The <<person>> <<if $phase2 is "mild">> frowns. "Very well, then." <<He>> gestures to the door with a sigh. "I have a meeting soon, anyway, so I'm afraid you'll need to leave." <<else>> /* offended */ scowls. "Fine. Since you're awake, you can leave, then." <<He>> gestures to the door. <</if>> <br><br> You get up, and leave. <</if>> <br><br> <<link [[Next|High Street]]>><<endevent>><<set $eventskip to 1>><</link>> <br><<if $sexstart is 1>> <<set $sexstart to 0>> <<consensual>> <<set $consensual to 1>> <<neutral 1>> <<maninit>> "Wonderful." <<He>> seems quite pleased as <<he>> pushes you back down on the couch and climbs on top of you. <<promiscuity2>> <br><br> <<enable_rescue>> <</if>> <<if $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<maninit>> <<if $phase2 is "mild">> The <<person>> frowns. "I'd have hoped you'd pick up the hint that you don't actually have a choice here." <<He>> pushes you back down on the couch and climbs on top of you. "After all I did to nurse you back to health... Don't you owe me?" <<else>> /* offended */ "You ungrateful little..." <<He>> pushes you back down on the couch and climbs on top of you. "I wasn't asking, <<girl>>." <</if>> <br><br> <<enable_rescue>> <</if>> <<effects>> <<effectsman>> <<alarmstate>> <<man>> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Passout Office Work Sex Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Passout Office Work Sex]]>><</link>></span><<nexttext>> <</if>><<effects>> <<if $enemyhealth lte 0>> The <<person>> shoves <<himself>> away from you with a pained cry. "You'll regret this, you little <<bastard>>!" <<he>> roars. <br><br> The fury in <<his>> voice sends shivers down your spine, but you take the chance to rush for the exit. Luckily, you manage to escape all the way to the office lobby without getting caught. <br><br> <<clotheson>> <<tearful>> you exit the office building. <<elseif $enemyarousal gte $enemyarousalmax>> <<ejaculation>> Once recovered, the <<person>> gets up from the couch with a stretch and a satisfied groan. <<He>> reaches for <<his>> <<wallet>> and digs into it. "Here," <<he>> says as <<he>> holds some bills out in your direction. <<if $consensual is 1>> "For the service." <<assignmenttip 10>> <<else>> <<He>> seems reluctant to pay you at all. <<assignmenttip 5>> <</if>> <br><br> You take the money, and the <<person>> gets back to work. <br><br> <<clotheson>> <<tearful>> you leave <<his>> office and exit the building. <<elseif $alarm is 1 and $rescue is 1>> "Shut your—!" the <<person>> hisses, but <<hes>> interrupted by a knock on the door of <<his>> office. <br><br> "Is everything okay in there?" <br><br> The voice makes the <<personsimple>> hesitate. You take the opportunity to push <<him>> away. <<He>> reaches for your arm to stop you from escaping, but luckily you manage to dodge <<him>>. You shove the door open, push past your saviour, and run down the hall. <br><br> You only start to slow down when you approach the lobby<<if $athletics lte 600>>, gasping for breath<</if>>. <br><br> <<clotheson>> <<tearful>> you exit the office building. <<elseif $finish is 1>> The <<person>> frowns and scoffs, pushing you away. "Fine," <<he>> grouses as <<he>> stands up from the couch. "Leave, then. I have a meeting soon, anyway." <br><br> <<clotheson>> <<tearful>> you leave <<his>> office and exit the building. <<else>> By the time awareness returns to you, the <<person>> is pushing you off the couch. You barely catch yourself on the edge of it before you take a tumble. <br><br> "Get out," <<he>> says coldly. "I have a meeting soon." <br><br> <<tearful>> you shakily push yourself up to your feet. <br><br> <<clotheson>> You leave <<his>> office and exit the building. <</if>> <<endcombat>> <<link [[Next|High Street]]>><<set $eventskip to 1>><</link>> <br><br><<effects>> You awaken to the sight of the <<beasttype>>. It looks like <<bhe>> was taking care of you when you passed out. <br><br> After making sure you're okay, the <<beasttype>> <<= $monster is 1 ? "waves" : "looks">> at you before <<bhe>> gallops away. Leaving you alone in the moor. <br><br> <<link [[Next|Moor]]>><<endevent>><<set $eventskip to 1>><<unset $horseDifficulty>><<unset $moormove>><</link>> <br><<set $outside to 0>><<effects>> <<outfitChecks>> You wake up in a well-appointed sitting room feeling much <<if $phase2 is "cold">> <<upperstrip>><<upperruined>> <<outfitChecks>> <<if _bottomExposed>> <<lowerruined>> <</if>> <<outfitChecks>> <<hypothermiaClothes>> warmer than before. You see a lit fireplace nearby, warming you up along. A blanket is draped over you<<if _clothes.length gte 1>>, and you're dressed in <<= _clothes.join(" and ")>><</if>>. <<else>> <<set _gender to $player.gender_appearance>> <<set _clothes to []>> <<if $worn.upper.warmth gt 3>> <<set _slot to "upper">> <<set _upper to []>> <<if _gender is "m" or $settings.forcedCrossdressingEnabled>> /* masc: short sailor shirt */ <<set _upper.push(57)>> <</if>> <<if _gender is "f" or $settings.forcedCrossdressingEnabled>> /* femme: babydoll */ <<set _upper.push(17)>> <</if>> <<set _index to _upper.random()>> <<upperstrip>><<upperruined>> <<upperwear _index>> <<set _text_output to setup.clothes[_slot][_index].word is "n" ? `a pair of ${$worn[_slot].name}` : setup.clothes[_slot][_index].word + " " + $worn[_slot].name >> <<set _clothes.push(_text_output)>> <</if>> <<outfitChecks>> <<if _bottomExposed>> <<set _slot to "lower">> <<switch _index>> <<case 57>><<set _index to 52>> /* short sailor shirt match sailor shorts*/ <<case 17>><<set _index to 76>> /* babydoll match booty jorts*/ <<default>><<set _index to 21>> /* neutral: cycle shorts */ <</switch>> <<lowerruined>> <<lowerwear _index>> <<set _text_output to setup.clothes[_slot][_index].word is "n" ? `a pair of ${$worn[_slot].name}` : setup.clothes[_slot][_index].word + " " + $worn[_slot].name >> <<set _clothes.push(_text_output)>> <</if>> cooler than before. You see an open window nearby, letting in a refreshing breeze. <<if _clothes.length gte 1>>You look down to find that you're dressed in <<= _clothes.join(" and ")>>.<</if>> <</if>> <br><br> No one seems to be around at the moment.<<if _clothes.length gte 1>> You unfortunately don't see the clothes you were wearing before anywhere.<</if>> With nothing else to do, you stand up and exit the room. <br><br> <<link [[Next|Passout Danube Street 2]]>><</link>> <br><<effects>> <<generate1>><<person1>> You wander through the mansion until you find the foyer, where a well-dressed <<personsimple>> is ushering apparent party guests out the front door with a polite wave. After <<he>> shuts the door behind them, <<he>> turns and jumps a little upon seeing you. <br><br> "Well, you just saved me some time. I was about to come to check on you," the <<person>> says with a smile. "Are you feeling better?" <br><br> <<if $speech_attitude is "meek">> "Yes, I am," you reply, head bowed. "Thank you very much for helping me..." <<elseif $speech_attitude is "bratty">> "Sure am. Thanks for the clothes." <<else>> You nod. "I am. Thank you for the help." <</if>> <br><br> The <<person>> approaches you, coming to a stop a touch closer than is polite. "You're welcome. Though I can't say that I did it entirely out of goodwill." <<His>> smile turns into a smirk. "I was actually hoping that you would do me a little favour in return." <br><br> <<link [[Ask what the favour is|Passout Danube Street 3]]>><</link>> <br> <<if dangerEvent()>> <<link [[Leave|Passout Danube Street Sex]]>><<set $phase to 0>><<set $molestationstart to 1>><</link>> <<else>> <<link [[Leave|Passout Danube Street End]]>><<set $phase to 0>><</link>> <</if>> <br><<effects>> <<saveNPC 0 passout_danube_master>> <<if $speech_attitude is "meek">> "A f-favour...?" You wring your hands. <<elseif $speech_attitude is "bratty">> You cross your arms. "What kind of favour?" <<else>> "What did you have in mind?" <</if>> <br><br> <<if dangerEvent()>> The <<person>>'s smile turns <<if $rng gte 81 and $settings.bestialityEnabled>> <<generateBEAST 2 dog>> <<set $NPCList[1].name to $NPCList[1].pronoun is "f" ? $NPC_names_f.random() : $NPC_names_m.random()>> perverse, and <<he>> puts an overfamiliar hand on your arm. <<He>> whistles sharply, and within a few moments, a dog enters the room, tail wagging eagerly. <br><br> "Good <<= $NPCList[1].pronouns.boy>>," <<he>> praises the dog. Then <<he>> looks at you again and says, "My little <<= $NPCList[1].name>> has been quite lonely and pent up lately... Give the poor thing some special attention, won't you?" <br><br> You <<= $awarelevel gte 1 ? "know" : "aren't entirely positive, but you think you have an idea of">> what <<hes>> asking for: <<he>> wants you to let this dog have its way with you. <br><br> <<if hasSexStat("deviancy", 2)>> <<link [[Accept the offer|Passout Danube Street Dog]]>><</link>><<deviant2>> <<else>> <<insufficientStat "deviancy" "to take up such an offer">> <</if>> <br> <<link [[Refuse|Passout Danube Street Sex]]>> <<endevent>> <<set $phase to 1>><<set $molestationstart to 1>> <<loadNPC 0 passout_danube_master>><<person1>> <</link>> <br> <<else>> flirtatious, and <<he>> puts an overfamiliar hand on your waist. "Spend a little bit of... quality time with me. Show me just how thankful you are." <<His>> hand slides down to cup your <<bottom>>. <br><br> You <<= $awarelevel gte 1 ? "know" : "aren't entirely positive, but you think you have an idea of">> what <<hes>> asking for: <<he>> wants to have sex with you. <br><br> <<if hasSexStat("promiscuity", 2)>> <<link [[Accept the offer|Passout Danube Street Sex]]>><<set $sexstart to 1>><</link>><<promiscuous2>> <<else>> <<insufficientStat "promiscuity" "to take up such an offer">> <</if>> <br> <<link [[Refuse|Passout Danube Street Sex]]>><<set $phase to 0>><<set $molestationstart to 1>><</link>> <br> <</if>> <<else>> "I have a room in which I just hosted a party, and it could use a good cleaning. My usual cleaners are meant to stop by tomorrow, and I'd rather not pay an extra fee for them to come early if I don't have to..." The <<personsimple>> gestures down the hall. "It's not too big of a mess, and I'd give you a tip once you're finished. What do you say?" <br><br> <<link [[Accept|Passout Danube Street Housekeeping]]>><</link>> <br> <<if dangerEvent()>> <<link [[Leave|Passout Danube Street Sex]]>><<set $phase to 0>><<set $molestationstart to 1>><</link>> <<else>> <<link [[Leave|Passout Danube Street End]]>><<set $phase to 0>><</link>> <</if>> <br> <</if>><<if $sexstart is 1>> <<set $sexstart to 0>> <<consensual>> <<set $consensual to 1>> <<neutral 1>> <<maninit>> <<promiscuity2>> "Perfect. What a good <<girl>>." <<He>> takes you to a nearby room, unceremoniously pushes you down onto a settee, and climbs on top of you with an eager expression on <<his>> face. <</if>> <<if $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<maninit>> The <<person>> <<= either(`scowls`,`sneers`)>>. <<if $phase is 0>> /* PC refused to hear the person out, refused to have sex with them, or refused to clean for them. */ "<<= either(`Don't be ungrateful`,`It wasn't actually a question`)>>, <<girl>>." <<else>> /* PC refused to have sex with the dog. */ "You think you're too good for it? Gutter trash like you?" <<He>> scoffs. "Think again." <</if>> <<He>> lunges for you. <</if>> <<effects>> <<effectsman>> <<man>> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Passout Danube Street Sex Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Passout Danube Street Sex]]>><</link>></span><<nexttext>> <</if>><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<ejaculation>> <<if $arousal is $arousalmax>> <<orgasm>> <</if>> <<if $consensual is 1>> Satisfied, the <<person>> sits back and adjusts <<his>> clothes. "Very good. <<if $orgasmcurrent gte 1>> I see you enjoyed yourself as well," <<he>> remarks with a smirk. <<else>> It's a relief to see that at least some of the younger set are capable of showing gratitude," <<he>> remarks with a condescending smile. <</if>> <br><br> <<endcombat>> <<loadNPC 0 passout_danube_master>><<person1>> <<link [[Next|Passout Danube Street End]]>><<set $phase to 1>><</link>> <br> <<else>> The <<person>> moans in satisfaction, then <<= $enemyhealth lt $enemyhealthmax ? "kicks" : "shoves">> you towards the door. "Get out of here," <<he>> says with an unpleasant smirk. "You'd best think twice before <<= $enemyhealth lt $enemyhealthmax ? "acting out against" : "refusing">> your betters in the future<<if $orgasmcount gte 1>>, you little slut<</if>>." <br><br> <<tearful>> you head for the door and make your exit. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Danube Street]]>><<set $eventskip to 1>><</link>> <br> <</if>> <<elseif $enemyhealth lte 0>> The <<person>> is knocked off of the settee, stumbling into a nearby coffee table. "<<= either(`Fuck!`,`You little <<bastard>>!`,`How dare you!?`)>>" <<he>> snarls. <br><br> <<tearful>> you scramble to your feet and rush for the door, running from the mansion as fast as you can. You only stop to catch your breath <<if $athletics lt 600>>in huge panting gulps <</if>>once you're a few blocks away. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Residential Alleyways]]>><<set $eventskip to 1>><</link>> <br> <<else>> The <<person>> lets out a sigh of frustration and pulls away from you. "Fine," <<he>> says, tone reluctant. "Go ahead and leave, then." <<He>> starts muttering to <<himself>> as <<he>> straightens out <<his>> clothes; the only word you can make out is "<<= $consensual is 1 ? "tease" : "<<bastard>>">>". <br><br> <<tearful>> you climb to your feet and make your way out of the mansion. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Danube Street]]>><<set $eventskip to 1>><</link>> <br> <</if>> <<clearNPC passout_danube_master>><<effects>> <<saveNPC 1 passout_danube_dog>> <<deviancy2>> "Perfect." <<He>> takes you to a nearby side room, whistling for <<his>> dog to follow behind. <<He>> puts you on your hands and knees on the floor. Then <<he>> sits on a settee and <<= $NPCList[0].pronoun is "m" ? "undoes <<his>> trousers" : "pulls up the skirt of <<his>> dress">>, <<npcRevealText $NPCList[0] "lower">>. <br><br> The <<beasttype 1>> mounts you at <<bhis 1>> <<master>>'s command. The <<person>> begins to touch <<himself>>. <br><br> <<endevent>> <<loadNPC 0 passout_danube_dog>><<person1>> <<link [[Next|Passout Danube Street Dog Sex]]>><<set $sexstart to 1>><</link>> <br><<if $sexstart is 1>> <<set $sexstart to 0>> <<consensual>> <<set $consensual to 1>> <<neutral 1>> <<beastCombatInit>> <<set $NPCList[0].stance to "top">><<set $position to "doggy">> <</if>> <<effects>> <<effectsman>> <<beast $enemyno>> <br><br> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Passout Danube Street Dog Sex Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Passout Danube Street Dog Sex]]>><</link>></span><<nexttext>> <</if>><<effects>> <<loadNPC 1 passout_danube_master>><<person2>> <<if $enemyarousal gte $enemyarousalmax>> <<person1>><<beastejaculation>> <<if $arousal gte $arousalmax>> <<orgasm>> <</if>> Across the way, the <<person2>><<person>> moans as <<he>> cums, <<= $NPCList[1].penis isnot "none" ? "semen splattering the floor" : "juices running down <<his>> fingers">>. <br><br> "Well done," <<he>> says, pulling out a handkerchief to wipe <<his>> dirtied hand off with.<<if $orgasmcount gte 1>> "I can't believe you got off from fucking a dog."<</if>> <br><br> <<endcombat>> <<loadNPC 0 passout_danube_master>><<person1>> <<loadNPC 1 passout_danube_dog>> <<link [[Next|Passout Danube Street End]]>><<set $phase to 2>><<clotheson>><</link>> <br> <<elseif $enemyhealth lte 0>> "What the hell is wrong with you!?" the <<person>> yells as you shove <<his>> <<beasttype>> away with a final kick. <br><br> The <<beasttype>> yips and doesn't move to follow as you scramble to your feet and rush for the door. Luckily, you're out before the <<person>> can get up from <<his>> leisurely sprawl. <br><br> <<tearful>> you run away from the mansion, only stopping to catch your breath <<if $athletics lt 600>>in huge panting gulps <</if>>once you're a few blocks away. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Residential Alleyways]]>><<set $eventskip to 1>><</link>> <br> <<else>> <<tearful>> you can do nothing but lie there and take what the <<person>>'s dog gives you until it's satisfied. <br><br> <<person1>><<beastejaculation>> Once satisfied, it withdraws, panting happily. The <<person2>><<person>> gives you a <<= $enemyhealth lt $enemyhealthmax ? "kick" : "nudge with <<his>> foot">> towards the door. "I think you're done here," <<he>> says with an unpleasant smirk. "Ta-ta." <br><br> You take a couple minutes to collect yourself before getting up and leaving. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Danube Street]]>><<set $eventskip to 1>><</link>> <br> <</if>> <<clearNPC passout_danube_master>> <<clearNPC passout_danube_dog>><<effects>> <<if $phase is 0>> /* PC leaves without doing the favour. */ You <<if $speech_attitude isnot "bratty">>apologise and <</if>>tell the <<person>> that you don't have the time to spare and that you have to leave. <br><br> <<He>> <<= either(`scowls`, `sneers`, `scoffs`, `glares`)>> at you. "Fine, then. You can find your own way out." <<He>> spins on <<his>> heel and stalks off, muttering to <<himself>> about the ungratefulness of the younger set. <br><br> You leave the mansion once <<hes>> out of sight, relieved that the situation resolved itself peacefully. <<else>> <<if $phase is 1>> /* From the sex branch. */ "I'm sure you can find the way out," the <<person>> says once <<hes>> straightened <<himself>> out. "Be more careful in the future to mind the weather, hm? It'd be a shame if someone less charitable than I had been the one to find you." <<else>> /* From the dog branch. */ The <<person>> whistles to <<his>> <<beasttype 1>> as <<he>> stands, and <<he>> begins to put <<his>> clothes back into order. The <<beasttype 1>> woofs happily and trots to <<his>> side. <br><br> "It's a relief to see that at least some of the younger set are capable of showing gratitude," <<he>> says once <<hes>> straightened <<himself>> out. "I'm sure you can find the way out. Be more careful in the future to mind the weather, hm? It'd be a shame if someone less charitable than I found you." <</if>> <br><br> With that said, <<he>> departs without sparing you a second glance. <br><br> <<tearful>> you leave the mansion once <<hes>> out of sight. <</if>> <br><br> <<link [[Next|Danube Street]]>><<clotheson>><<endevent>><<set $eventskip to 1>><</link>> <br><<effects>> <<set _event to random(1,3)>> "Perfect!" The <<person>> leads you down the hall and opens a door to <<if _event is 1>> a dining room. The long table is covered in questionable fluids, staining the wood and the table runner and dripping from the edges. There's more fluids beneath the table, as well as various spatterings elsewhere on the floor. <<if $settings.condomLevel gte 2 and $rng gte 51>>It looks like there's a few used condoms on the ground.<</if>> <<elseif _event is 2>> a sitting room. You see bits of glitter on a coffee table, as well as questionable fluids spattered on the tabletop and the floor around it. <<if $settings.condomLevel gte 2 and $rng gte 51>>Used condoms litter the floor.<</if>> A speaker nearby is playing sensual dance music, and the <<person>> approaches it to turn it off before returning to you. <<else>> a sitting room. The room is covered in questionable fluids, including puddles of pink liquid. There's a curious combination of scents in the air that makes you feel little lightheaded.<<drugs 60>><<gdrugged>> <</if>> <br><br> <<= $awarelevel gte 1 ? "You" : "Even you">> have a pretty good idea of what must have gone on in here. <br><br> <<He>> definitely understated the mess. <br><br> "I would apologise for the filth if you weren't here to clean it up in the first place," the <<person>> says with a chortle. "There should be some cleaning materials in the closet over there." <<He>> points to a nearby closet door. "When you're finished, I'll be in the room just across the hall from this one. Thanks again!" <br><br> With that, <<he>> leaves you to it. <br><br> <<link [[Clean the room|Passout Danube Street Housekeeping 2]]>><<housekeepingdifficulty 1 600>><</link>> <br><<effects>> Retrieving a broom, spray cleaner, and a few rags from the closet, you get to work. <br><br> <<if $rng gte 91>> While cleaning, you find a few loose bills beneath a chair that must have fallen from someone's pockets at some point during this function. You've earned <<moneyGainDisplay 20 true true>>. <<elseif $rng lte 30 and $ejactrait gte 1>> While wiping down the table, you feel yourself salivate when you notice the lewd fluid on the table is still a bit warm. You resist the urge to rub your face against it.<<arousal 600>><<garousal>> <<else>> <<set _event to random(1,5)>> While cleaning, you <<if _event is 1>> keep getting the sense that you're being watched. But whenever you look around, you see no one in the room but yourself. A shiver goes down your spine every time.<<stress 6>><<gstress>> <<elseif _event is 2>> hum your favourite song to yourself. It makes a boring job less tedious, and a little more fun.<<stress -6>><<lstress>> <<elseif _event is 3 and $tiredness gte (C.tiredness.max / 5) * 3>> feel your eyelids drooping more than once. A part of you is tempted to just sit down and rest your eyes for a few moments, but you force yourself to focus and get the job done. You can rest later. <<elseif _event is 4>> crawl under the table to wipe up beneath it, and you end up disturbing a small cloud of pink dust from the floor. Inhaling some of it brings a bit of heat to your face.<<arousal 600>><<garousal>> <<else>> pay special focus to try and improve your overall efficiency. <<if $housekeeping lt 600>>You discover a few different methods to save time while cleaning in the future.<</if>><<housekeeping 1 600>><<ghousekeeping 600>> <</if>> <</if>> <br><br> <<if $housekeepingSuccess>> <<pass 45>><<set $phase to 0>> It takes a while, but eventually you get the room back in order. You're tired after all the hard work, but you feel satisfied with your job well done.<<housekeeping 1 600>><<tiredness 5>><<ghousekeeping 600 "silent">><<gtiredness>> <<else>> <<pass 60>><<set $phase to 1>> It takes a good long while, but eventually you get the job done, more or less. You're exhausted after all the hard work and ready to leave.<<housekeeping 1 600>><<tiredness 10>><<ghousekeeping 600 "silent">><<ggtiredness>> <</if>> <br><br> <<link [[Tell <<him>> you're finished|Passout Danube Street Housekeeping End]]>><</link>> <br><<effects>> You tell the <<person>> you're finished, and <<he>> follows you back to the room to check your work. Seemingly content, <<he>> puts a hand on your shoulder and <<if $arousal gte $arousalmax>> opens <<his>> mouth to say something, but <<hes>> interrupted when that simple touch sends you over the edge. <br><br> <<orgasm>> The <<person>> holds you up and watches as you shudder and moan with an interested gleam in <<his>> eyes. When you finally recover, <<he>> laughs. <br><br> "Got it all out?" <<he>> asks with a dirty grin. "You're pretty cute when you're cumming, you know... But I suppose you'd like to get paid and get on home, don't you?" <<else>> says, "<<= $phase is 0 ? "Very nice" : "It'll do until the professional cleaners come by">>. Now, your tip..." <</if>> <br><br> <<He>> digs into <<his>> <<wallet>> and pulls out <<= $phase is 0 ? "<<moneyGain 30>>" : "<<moneyGain 15>>">>. Once you take it, <<he>> leads you back to the foyer and bids you a good <<= Time.dayState is "night" ? "evening" : "day">>. <br><br> <<link [[Next|Danube Street]]>><<clearNPC passout_danube_master>><<endevent>><<set $eventskip to 1>><</link>> <br><<effects>> <<beastNEWinit 1 wolf>> You wake up inside the cave with two <<beasttypes>> huddled close to you. One of them perks up when <<bhe>> notices you're awake. <br><br> <<if $monster is 1>> "<<pPackbrother>> awake! Feel well?" <<bHe>> nuzzles you as the sensation returns to your stiff fingers. They seem to have dragged you to the back of the cave and watched over you. "Cold out. Careful." You reassure them that you're okay, patting them on their heads. <<else>> <<bHe>> nuzzles you as you feel your senses come back to your fingers. They seem to have dragged you to the back of the cave and watched over you. You pat the <<beasttypes>> on their heads and thank them. <</if>> They stay close to you, keeping you warm. <br><br> <<link [[Next|Wolf Cave]]>><<endevent>><<set $eventskip to 1>><</link>><<effects>> <<beastNEWinit 1 wolf>> <<clothesstrip>> You wake up inside the cave<<if Object.keys(V.carried).filter(s => V.carried[s].name !== "naked").length gte 1>><<clothesruined>> with your clothes tossed to the side. They're torn to shreds<</if>>. A <<beasttype>> perks up when <<bhe>> notices you're awake. <br><br> <<if $monster is 1>> "<<pPackbrother>> awake! Feel well?" <<bHe>> touches your forehead with <<bhis>> hand, checking your temperature. <<bHe>> must have watched over you while you were unconscious. "Hot out. Careful." You reassure <<bhim>> that you're okay, patting <<bhim>> on the head. <<else>> <<bHe>> bounds toward you, then licks your face all over. You laugh, and <<bhe>> backs off of you. <<bHis>> tongue lolls out of <<bhis>> mouth happily as <<bhe>> looks at you. <<bHe>> must have watched over you while you were unconscious. You pat the <<beasttype>> on <<bhis>> head and thank <<bhim>>. <</if>> <<bHe>> leaves the cave, allowing you to rest. <br><br> <<link [[Next|Wolf Cave]]>><<endevent>><<set $eventskip to 1>><</link>><<widget "toggledebug">> <<if $debug>> <<set $debug to 1>> <<else>> <<set $debug to 0>> <</if>> <</widget>> /* min, current, max, rightMeter */ <<widget "statbar">> <div @class="(_args[3] is true ? 'rightMeter' : 'meter')"> <<if _args[1] is 0>> <<else>> <<set _percent to Math.floor((_args[1]/_args[2])*100)>> <<set _minPercent to Math.clamp(Math.floor((_args[0]/_args[2])*100), 0, _percent)>> <<set _pin to Math.clamp(Math.floor((_args[4]/_args[2])*100), 0, _args[2])>> <<switch Math.floor(_percent/10)>> <<case 8 9>><<set _statColor to "pinkbar">> <<case 6 7>><<set _statColor to "purplebar">> <<case 4 5>><<set _statColor to "bluebar">> <<case 2 3>><<set _statColor to "lbluebar">> <<case 0 1>><<set _statColor to "tealbar">> <<default>><<set _statColor to "redbar">> <</switch>> <div @class="_statColor" @style="'width:' + _percent + '%'"></div> <<if _minPercent>> <div @class="_statColor + ' meterMin'" @style="'width:' + _minPercent + '%'"></div> <<elseif _pin>> <div class="meterPin" @style="'width:' + _pin + '%'"></div> <</if>> <</if>> </div> <</widget>> <<widget "statbarinverted">> <<set _now to _args[0]>><<set _max to _args[1]>> <div @class="(_args[2] is true ? 'rightMeter' : 'meter')"> <<if _args[0] is 0>> <<else>> <<set _percent to Math.floor((_args[0]/_args[1])*100)>> <<switch Math.floor(_percent/10)>> <<case 8 9>><<set _statColor to "tealbar">> <<case 6 7>><<set _statColor to "lbluebar">> <<case 4 5>><<set _statColor to "bluebar">> <<case 2 3>><<set _statColor to "purplebar">> <<case 0 1>><<set _statColor to "pinkbar">> <<default>><<set _statColor to "greenbar">> <</switch>> <div @class="_statColor" @style="'width:' + _percent + '%'"></div> <</if>> </div> <</widget>> <<widget "wateraction">> <<set $_swimSkill to Math.max(currentSkillValue('swimmingskill'), 0)>> <<set $_swimLevel to Math.floor($_swimSkill / 100)>> <<set _waterActionTime to [18, 15, 12, 10, 8, 8, 7, 7, 6, 6, 5, 4][$_swimLevel] || 3>> <<pass _waterActionTime sec>> <<set $oxygen -= _waterActionTime * 10>> <<if $lake_ice_broken gte 1>> <<if random(1, 120) lte _waterActionTime>> <<unset $lake_ice_broken>> <</if>> <</if>> <</widget>> <<widget "underwater">> <<water>><<set $underwater to 1>><<set $underwatercheck to 1>><<unset $oxygenRecovery>> <<if $combat isnot 1>> <<if $oxygen lt 0 and $nooxygen is 1>> <<set $stress += 1000>> <<elseif $oxygen lt 0 and $nooxygen isnot 1>> <<set $nooxygen to 1>> <<else>> <<set $nooxygen to 0>> <</if>> <span class="lblue">Air:</span> <<if $oxygen lt 0>> <span class="red">You can't breathe! Your stress will increase and you'll soon pass out if you can't find air.</span> <</if>> <<dynamicblock id=oxygen-caption>> <<oxygencaption>> <</dynamicblock>> <<if $underwaterintro isnot 1 and $combat isnot 1 and !$possessed>> <<set $underwaterintro to 1>> <i>You can't hold your breath forever. You will pass less time and use less air per action with a higher swimming skill.</i> <br><br> <</if>> <</if>> <</widget>> <<widget "oxygenrefresh">> <<set $oxygen to $oxygenmax>> <<unset $oxygenRecovery>> <</widget>> <<widget "oxygen">> <<if _args[0]>> <<set $oxygen += _args[0]>> <</if>> <<if _args[0] lt 0>> <<set _strangle to 1>> <</if>> <<set $oxygen = Math.clamp($oxygen, 0, $oxygenmax)>> <</widget>> <<widget "oxygenrecovery">> <<if $oxygenRecovery and $oxygen lt $oxygenmax>> /* 8 minutes to recover from 0 oxygen */ <<set $_oxygenFullResaturation to 480>> <<set _oxygenResaturationTimer to Math.ceil((1 - $oxygen/$oxygenmax)*$_oxygenFullResaturation/60)>> <<if ['string', 'number'].includes(typeof(_args[0]))>> <<set $phase to _args[0]>> <<elseif _args[0]>> <<set $phase to "oxygenrecovery">> <</if>> <<loitericon>><<link [[`Catch your breath (${getTimeString(_oxygenResaturationTimer)})`|$passage]]>><<pass _oxygenResaturationTimer>><</link>> <br> <</if>> <</widget>> <<widget "virginitylosttext">> <<if $templePromised is _args[0]>> <span class="lblue">yet you remain pure.</span> <<else>> <span class="red">forever robbing you of your purity.</span> <</if>> <</widget>> <<widget "neutral">> <!-- This widget's names ('neutral') is awful. Maybe 'molest' might better describe its use? --> <!-- args[1] now modifies the arousal applied to the PC --> <!-- Consult the 'arousal' widget to see how --> <<if _args[0] and (typeof _args[0]) is "number">> <<if $consensual isnot 1>> <<if $drunk gt 0>> <<set $_drunk_level to Math.clamp(Math.floor($drunk / 120), 0, 4)>> <<set $_stress_multiplier to [9,8,6,4,3][$_drunk_level]>> <<else>> <<set $_stress_multiplier to 10>> <</if>> <<stress _args[0] $_stress_multiplier>> <<combattrauma _args[0]>> <</if>> <<set _arousal to 20 * _args[0]>> <<if _args[1] and _args[2] and (typeof _args[1]) is "string" and (typeof _args[2]) is "number">> <<arousal _arousal _args[1]>> <<enemyarousal _args[0] _args[2]>> <<elseif _args[1] and (typeof _args[1]) is "string">> <<arousal _arousal _args[1]>> <<enemyarousal _args[0]>> <<elseif _args[1] and (typeof _args[1]) is "number">> <<arousal _arousal>> <<enemyarousal _args[0] _args[1]>> <</if>> <</if>> <</widget>> <<widget "neutralbreast">> <<neutral _args[0] "breasts">> <</widget>> <<widget "neutralgenitals">> <<neutral _args[0] "genitals">> <</widget>> <<widget "enemyarousal">> <<set $enemyarousal += _args[0]>> <</widget>> <<widget "sex">> <!-- args[1] - indicates target: "genitals" if penile or vaginal, "anus" if anal, "mouth" if oral --> <!-- Comment Akoz: args[2] was used at some places to show double penetration and at others --> <!-- to pass which enemy NPC is doing the fucking. I'd leave it to mean the later, but --> <!-- I didn't want to make a decision about a system I'm not working on. --> <!-- So I chose to leave args[2] unused --> <!-- Comment Purity: args[2] is now used to check which NPC is causing it. --> <!-- For double penetration, the widget is now called twice. Once for each NPC. --> <<if _args[0] and (typeof _args[0]) is "number">> <<if $consensual isnot 1>> <<if $drunk gt 0>> <<set $_drunk_level to Math.clamp(Math.floor($drunk / 120), 0, 4)>> <<set $_stress_multiplier to [9,8,6,4,3][$_drunk_level]>> <<else>> <<set $_stress_multiplier to 10>> <</if>> <<stress _args[0] $_stress_multiplier>> <<combattrauma _args[0]>> <<else>> <<stress _args[0] -10>> <</if>> <<set _arousal to 20 * _args[0]>> <<set _enemyarousal to 2 * _args[0]>> <<if _args[1] is undefined>> <<error { message : `Expected a second parameter, but none was provided.`, source : "Called from " + Utils.GetStack() }>> <<elseif _args[2] and (typeof _args[2]) is "number">> <<if wearingCondom(_args[2]) and ["genital","genitals","anal"].includes(_args[1])>> <<switch $NPCList[_args[2]].condom.type>> <<case "plain">> <<set _arousal to Math.floor(_arousal * 0.9)>> <<set _enemyarousal to Math.floor(_enemyarousal * 0.9)>> <<default>> <</switch>> <</if>> <<if wearingCondom("player") and ["genital","genitals"].includes(_args[1])>> <<switch $player.condom.type>> <<case "plain">> <<set _arousal to Math.floor(_arousal * 0.9)>> <<set _enemyarousal to Math.floor(_enemyarousal * 0.9)>> <<default>> <</switch>> <</if>> <</if>> <<arousal _arousal _args[1]>> <<enemyarousal _enemyarousal>> <</if>> <</widget>> <!--_args[0] is the base value, _args[1] is the skill--> <<widget "sexControl">> <<if _args[0] and _args[1] gte 800>> <<set _loss to _args[1] / 180 * _args[0]>> <<if _args[1] gte 1200>> <<set _loss += 1>> <</if>> <<if $enemyarousal gte $enemyarousalmax * 0.7>> <<set _loss *= 2>> <</if>> <<if $enemyarousal gte $enemyarousalmax * 0.9>> <<set _loss *= 2>> <</if>> <<set _loss *= $enemyArousalLossReduction>> <<if $enemyArousalLossReduction gt 0.2>> <<set $enemyArousalLossReduction -= (_args[1] gte 1200 ? 0.03 : 0.04)>> <</if>> <<set $enemyarousal to Math.clamp($enemyarousal - Math.round(_loss), Math.min($enemyarousal, $enemyarousalmax / 5), $enemyarousalmax)>> <</if>> <</widget>> <<widget "violence">> <!-- NG tuning v2.7 $arousal from $masochism/50 to /7. PC now orgasms at least once during spanking encounter at 50% masocism level and twice at 100% masoohism. /10 at max is required to orgasm once at 100% masochism. --> <!-- NG added stress reduction for masochists. Trauma left same --> <<if _args.length gte 1>> <<set _violence = _args[0]>> <<set _stressMod = _args[1] || 1>> <<set _traumaMod = _args[2] || 1>> <<set _painMod = _args[3] || 1>> <!-- args[4] - indicates NPC id (but is currently unused) --> <<if _violence gt 0 or _violence lt 0>> <<if $drunk gt 0>> <<set $_drunk_level to Math.clamp(Math.floor($drunk / 120), 0, 4)>> <<set _drunkMod to [9,8,6,4,3][$_drunk_level]>> <<else>> <<set _drunkMod to 10>> <</if>> <<if $possessed is true and _violence gte 0>> <<set $_controlMod to (10 * $enemyno)>> <<control `_violence / $_controlMod`>> <<set $wraith.will -= _violence>> <<set _possessMod to 3>> <<else>> <<set _possessMod to 1>> <</if>> <!-- after combat rewrite, should only reduce pain on covered bodyparts --> <<if $worn.upper.type.includes("heavy") and $worn.lower.type.includes("heavy")>> <<set _clothesMod to 1.5>> <<else>> <<set _clothesMod to 1>> <</if>> <<set $stress += (_violence * _drunkMod * _stressMod) * (1 - ($masochism / 1200))>> <<combattrauma `_violence * _traumaMod`>> <<set $pain += (_violence * _painMod * (1 - ($masochism / 1200)) * (1 - ($sciencetrait / 10)) / _possessMod / _clothesMod)>> <<set _arousal to (_violence * (0 + ($masochism / 18)))>> <<arousal _arousal/_possessMod "maso">> <<if $orgasmdown gte 1>> <<if $masochism gte 800>> <<masochism `(_violence / 20)`>> <<elseif $masochism gte 500>> <<masochism `(_violence / 10)`>> <<elseif $masochism gte 300>> <<masochism `(_violence / 6)`>> <<elseif $masochism gte 100>> <<masochism `(_violence / 2)`>> <<else>> <<masochism _violence>> <</if>> <</if>> <<if _violence gte 6>> <<set $enemyanger -= 5>> <<else>> <<set $enemyanger -= _violence>> <</if>> <<set $enemyarousal += 1>> <<painclamp>> <</if>> <</if>> <</widget>> <<widget "violence_noncombat">> <<if _args.length gte 1>> <<set _violence = _args[0]>> <<set _stressMod = _args[1] || 1>> <<set _traumaMod = _args[2] || 1>> <<set _painMod = _args[3] || 1>> <<set _arousalMod = _args[4] || 1>> <<if _violence gt 0 or _violence lt 0>> <<if $drunk gt 0>> <<set $_drunk_level to Math.clamp(Math.floor($drunk / 120), 0, 4)>> <<set _drunkMod to [9,8,6,4,3][$_drunk_level]>> <<else>> <<set _drunkMod to 10>> <</if>> <<set $stress += (_violence * _drunkMod * _stressMod) * (1 - ($masochism / 1200))>> <<trauma `_violence * _traumaMod`>> <<set $pain += (_violence * _painMod * (1 - ($masochism / 1200)) * (1 - ($sciencetrait / 10)))>> <<set _arousal to (_violence * _arousalMod * (0 + ($masochism / 18)))>> <<arousal _arousal "maso">> <<set $arousalmasochism += (_violence * (0 + ($masochism / 7)))>> <<if $orgasmdown gte 1>> <<if $masochism gte 800>> <<masochism `(_violence / 20)`>> <<elseif $masochism gte 500>> <<masochism `(_violence / 10)`>> <<elseif $masochism gte 300>> <<masochism `(_violence / 6)`>> <<elseif $masochism gte 100>> <<masochism `(_violence / 2)`>> <<else>> <<masochism _violence>> <</if>> <</if>> <<painclamp>> <</if>> <</if>> <</widget>> <<widget "submission">> <!-- Comment Akoz: this won't use sensitivities as I reckon this arousal source is --> <!-- entirely psychological. --> <!-- args[0] - the submission value --> <!-- args[1] - the NPC to whom PC is submitting (currently unused) --> <<if _args[0]>> <<if $consensual isnot 1>> <<if $drunk gt 0>> <<set $_drunk_level to Math.clamp(Math.floor($drunk / 120), 0, 4)>> <<set $_stress_multiplier to [9,8,6,4,3][$_drunk_level]>> <<else>> <<set $_stress_multiplier to 10>> <</if>> <<stress _args[0] $_stress_multiplier>> <<sub `_args[0] / 4`>> <<else>> <<set $stress -= 10 * _args[0]>> <<set $assertive += 1>> <</if>> <<set _arousal to 20 * _args[0]>> <<arousal _arousal>> <<set $enemyarousal += 3 * _args[0]>> <<set $enemytrust += 2>> <</if>> <</widget>> <<widget "defiance">> <<if _args[0]>> <<set _defiance to (_args[0] * (1 + ($sadism / 1000)))>> <<set $stress -= 10 * _defiance>> <<combattrauma `-_defiance`>> <<set $enemyanger += 5 * _defiance>> <<def `_args[0] / 4`>> <<set $enemytrust -= 4>> <<set _defiance_arousal to (_defiance * ($sadism / 40))>> <<arousal _defiance_arousal>> <<if $arousal gte ($arousalmax * 0.8)>> <<sadism _args[0]>> <</if>> <<set _thedamage to (2 * _defiance * ($physique / 4000))>> <<if $enemyno gte 2>> <<npcdamage _args[1]>> <</if>> <<set $enemyhealth -= _thedamage>> <</if>> <</widget>> <<widget "brat">> <<if _args[0]>> <<if $drunk gt 0>> <<set $_drunk_level to Math.clamp(Math.floor($drunk / 120), 0, 4)>> <<set $_stress_multiplier to [9,8,6,4,3][$_drunk_level]>> <<else>> <<set $_stress_multiplier to 10>> <</if>> <<stress _args[0] $_stress_multiplier>> <<combattrauma `-1 * _args[0]`>> <<if _args[1] is "demanding">> <<set $enemyanger += 20 * _args[0]>> <<elseif $NPCList[0].legs isnot "walk">> <<set $enemyanger += 5 * _args[0]>> <</if>> <<def `_args[0] / 4`>> <<set $enemytrust -= 2>> <<set $NPCList[0].bold to ($NPCList[0].bold gte _args[0] * 10 ? $NPCList[0].bold - _args[0] * 10 : 0)>> <</if>> <</widget>> <<widget "meek">> <!-- Comment Akoz: this won't use sensitivities as I reckon this arousal source is --> <!-- entirely psychological. --> <!-- args[0] - the meek value --> <!-- args[1] - the NPC for whom PC is acting meekly (currently unused) --> <<if _args[0]>> <<if $consensual isnot 1>> <<sub `_args[0] / 4`>> <<else>> <<set $assertive += 1>> <</if>> <<set _arousal to 20 * _args[0]>> <<arousal _arousal>> <<set $enemyarousal += _args[0]>> <<set $enemytrust += 1>> <<set $enemyanger -= _args[0]>> <</if>> <</widget>> <<widget "crimeUp">><<silently>> <<if $statFreeze isnot true>> <<if _args[0] eq null>> <<set _crimeError to `No input found for crimeUp widget!`>> <<elseif isNaN(_args[0])>> <<set _crimeError to `NaN input found for crimeUp widget: '${_args[0]}'`>> <<elseif _args[0] lt 0>> <<set _crimeError to `Negative input found for crimeUp widget: '${_args[0]}'`>> <<elseif _args[0] gt 0>> <<set _crimeType to _args[1] || "thievery">> <<if !setup.crimeNames[_crimeType]>> <<run Errors.report("Extra-Illegal crime committed of type; " + _crimeType + " defaulted to thievery")>> <<set _crimeType to "thievery">> <</if>> <<set $_crimemod to Number(_args[0])>> <<set $_crimeMult to 1>> <<if !["coercion", "resisting"].includes(_crimeType)>> <!-- ignore stealth (or concealed identity) for crimes where it is irrelevant; --> <!-- resisting arrest where the player's identity is explicitly known and coercion where the player's force of personality is needed --> /* The following commented code contains experimental factors for calculating stealth */ /* <<set $_crime1 to Math.clamp($crime, C.crime.min, C.crime.max / 10)>> <<set $_crime2 to $crime - $_crime1>> <<set $_crime2 to Math.clamp($crime - $_crime1, C.crime.min, C.crime.max / 10)>> <!-- crime1 = first 5k of crime, crime2 = next 5k of crime --> <<set $_normCrime1 to normalise($_crime1, C.crime.max / 10)>> <<set $_normCrime2 to normalise($_crime2, C.crime.max / 10)>> <!-- Both normalized to percentage of max/10 (currently 5k) --> <<set $_stealthReduce1 to expCurve($_normcrime1, 3.0)>> <!-- First 5k of crime at a curve to 5000 --> */ <<set $_stealthfactor to ( 0.15 * ( 1 - normalise($crime[_crimeType].current, C.crime.max ) ) )>> <!-- Stealth gives 15%, but reduced by existing crime stat down to 0 at C.crime.max --> <!-- At 10k crime of the current type, stealthy equipment is effectively useless - too much evidence --> <!-- Filter to all items with type "stealthy" and count them --> <<set $_stealthMult to Object.values($worn).filter(item => item.type.includes("stealthy")).length>> <<set $_crimeMult -= $_stealthfactor * $_stealthMult>> <!-- Filter to all items with type "unstealthy" and count them --> <<set $_unstealthMult to Object.values($worn).filter(item => item.type.includes("unstealthy")).length>> <<set $_crimeMult += 0.15 * $_unstealthMult>> <<if ["thievery", "petty", "trespassing"].includes(_crimeType)>> <!-- For stealthy crimes, player skulduggery skill gives further reduction up to another 15%. 1000 is max skulduggery clamp, replace as needed --> <<set $_skillMult to ( 0.15 * normalise($skulduggery, 1000) )>> <<set $_crimeMult -= $_skillMult>> <</if>> <<set $_crimemod to Math.ceil($_crimemod * $_crimeMult)>> <<if ["petty"].includes(_crimeType) and $skulduggery gte 500>> <!-- Petty thievery has extra flat reduction if skulduggery skill above 500 (C+), possibly negating the crime gain entirely --> <<set $_crimemod -= Math.floor($skulduggery / 10)>> <</if>> <</if>> <<set $_crimemod to Math.clamp($_crimemod, 0, C.crime.max)>> <<if $_crimemod gt 0>> <!-- If crime gain is still greater than 0, add to crime daily, history, count, and Avery crimetracker--> <!-- crimemod lte 0 represents a crime the player completely got away with, so nothing is recorded--> <<set C.crime[_crimeType] += $_crimemod>> <<set C.crime[_crimeType + "History"] += $_crimemod>> <<set C.crime[_crimeType + "Daily"] += $_crimemod>> <<set C.crime[_crimeType + "Count"] += 1>> <<set C.crime[_crimeType + "CountHistory"] += 1>> <<if $averyCrimeTracker neq null>> <<set $averyCrimeTracker += $_crimemod>> <</if>> <<if $exposed gte 1 and _crimeType isnot "exposure">> <<set C.crime.exposure += $_crimemod>> <<set C.crime.exposureHistory += $_crimemod>> <<set C.crime.exposureDaily += $_crimemod>> <<set C.crime.exposureCount += 1>> <<set C.crime.exposureCountHistory += 1>> <</if>> <<if ["thievery", "petty"].includes(_crimeType) and $foxbuild gte 1 and ($foxCrimeLimit is undefined or $foxCrimeLimit lt 3) and Math.max($wolfbuild, $catbuild, $cowbuild, $birdbuild, $foxbuild) is $foxbuild>> <!-- If the player steals enough, and fox is their highest beast TF (and above 0), apply fox TF pressure --> <!-- Resets daily at 6AM, in dawnCheck, time.js --> <<set $foxCrimeProgress ||= 0>> <<set $foxCrimeLimit ||= 0>> <<set $foxCrimeProgress += $_crimemod>> <<set $_foxCrimeRequired = Math.floor(25 * (1 + $foxbuild))>> <<if $foxCrimeProgress gte $_foxCrimeRequired>> <<transform fox 1>> <<set $effectsmessage to true>> <<set $foxCrimeMessage to true>> <<set $foxCrimeProgress to Math.clamp($foxCrimeProgress, 0, ($foxCrimeProgress - $_foxCrimeRequired))>> <<set $foxCrimeLimit++>> <</if>> <</if>> <<if _args[2]>> <!-- Optional argument to record more specific crimes with description. Does not work yet, unused.--> <<set _description to _args[2]>> <<if !setup.crimeDescs[_description]>> <<run Errors.report("Extra-Illegal crime committed of description; " + _description + " crime event not logged")>> <<else>> <<run C.crime.logEvent($_crimemod, _crimeType, _description)>> <</if>> <</if>> <</if>> <<if $earSlime.event is "steal something" and ["thievery", "petty"].includes(_crimeType)>> <<set $earSlime.event to "">><<set $earSlime.noSleep to false>> <</if>> <</if>> <</if>> <</silently>><<if _crimeError>><<error {message:T.crimeError}>><</if>><</widget>> <<widget "crimeUpFlat">><<silently>> <!-- stripped down widget with no extra effects, modifiers, or optional arguments, ideally used for cheats and debugging --> <<if $statFreeze isnot true>> <<if _args[0] eq null>> <<set _crimeError to `No input found for crimeUpFlat widget!`>> <<elseif isNaN(_args[0])>> <<set _crimeError to `NaN input found for crimeUpFlat widget: '${_args[0]}'`>> <<elseif _args[0] lt 0>> <<set _crimeError to `Negative input found for crimeUpFlat widget: '${_args[0]}'`>> <<elseif _args[0] gt 0>> <<set _crimeType to _args[1] || "thievery">> <<if !setup.crimeNames[_crimeType]>> <<run Errors.report("Extra-Illegal crime (flat) committed of type; " + _crimeType + " defaulted to thievery")>> <<set _crimeType to "thievery">> <</if>> <<set $_crimemod to Number(_args[0])>> <<if _args[0] gt 0>> <<set C.crime[_crimeType] += $_crimemod>> <<set C.crime[_crimeType + "History"] += $_crimemod>> <<set C.crime[_crimeType + "Daily"] += $_crimemod>> <<set C.crime[_crimeType + "Count"] += 1>> <<set C.crime[_crimeType + "CountHistory"] += 1>> <</if>> <</if>> <</if>> <</silently>><<if _crimeError>><<error {message:T.crimeError}>><</if>><</widget>> <<widget "crimeDown">><<silently>> <<if $statFreeze isnot true>> <<if _args[0] eq null>> <<set _crimeError to `No input found for crimeDown widget!`>> <<elseif isNaN(_args[0])>> <<set _crimeError to `NaN input found for crimeDown widget: '${_args[0]}'`>> <<elseif _args[0] lt 0>> <<set _crimeError to `Negative input found for crimeDown widget: '${_args[0]}'`>> <<elseif _args[0] gt 0>> <<set _crimeDown to _args[0]>> <<if _args[1] and _args[1] isnot "all">> <<set _crimeType to _args[1]>> <<if !setup.crimeNames[_crimeType]>> <<run Errors.report("Extra-Illegal crime reduced of type; " + _crimeType + " defaulted to thievery")>> <<set _crimeType to "thievery">> <</if>> <<if C.crime[_crimeType] gt 0>> <<if _crimeDown lte 1>> <!-- Reduce crime by percent --> <<set C.crime[_crimeType] to Math.ceil(C.crime[_crimeType] * _crimeDown)>> <<set C.crime[_crimeType + "Daily"] to Math.ceil(C.crime[_crimeType + "Daily"] * _crimeDown)>> <<set C.crime[_crimeType + "Count"] to Math.ceil(C.crime[_crimeType + "Count"] * _crimeDown)>> <<else>> <!-- Reduce crime by value --> <<set $_crimeDiv to normalise(C.crime[_crimeType] - _crimeDown, C.crime[_crimeType], C.crime.min)>> <<set C.crime[_crimeType] -= _crimeDown>> <<set C.crime[_crimeType + "Daily"] -= _crimeDown>> <!-- Reduce crime type count by same percentile as total crime loss--> <<set C.crime[_crimeType + "Count"] to Math.ceil(C.crime[_crimeType + "Count"] * $_crimeDiv)>> <</if>> <</if>> <<else>> <!-- If no crime type specified, apply to all --> <<for _crimeType range Object.keys(setup.crimeNames)>> <<if C.crime[_crimeType] gt 0>> <<if _crimeDown lte 1>> <!-- Reduce crime by percent --> <<set C.crime[_crimeType] to Math.ceil(C.crime[_crimeType] * _crimeDown)>> <<set C.crime[_crimeType + "Daily"] to Math.ceil(C.crime[_crimeType + "Daily"] * _crimeDown)>> <<set C.crime[_crimeType + "Count"] to Math.ceil(C.crime[_crimeType + "Count"] * _crimeDown)>> <<else>> <<set $_crimeDiv to normalise(C.crime[_crimeType] - _crimeDown, C.crime[_crimeType], C.crime.min)>> <<set C.crime[_crimeType] -= _crimeDown>> <<set C.crime[_crimeType + "Daily"] -= _crimeDown>> <<set C.crime[_crimeType + "Count"] to Math.ceil(C.crime[_crimeType + "Count"] * $_crimeDiv)>> <<run delete $_crimeDiv>> <</if>> <</if>> <</for>> <</if>> <</if>> <</if>> <</silently>><<if _crimeError>><<error {message:T.crimeError}>><</if>><</widget>> <<widget "crimeClear">> <<if $statFreeze isnot true>> <<if _args[0] and _args[0] isnot "all">> <<set _crimeClearType to _args[0]>> <<if !setup.crimeNames[_crimeClearType]>> <<run Errors.report("Extra-Illegal crime cleared of type; " + _crimeClearType)>> <<else>> <<set C.crime[_crimeClearType] = 0>> <<set C.crime[_crimeClearType + "Count"] = 0>> <<set C.crime[_crimeClearType + "Daily"] = 0>> <<run C.crime.clearEvents(_crimeClearType)>> <</if>> <<else>> <!-- If no crime type specified, zero all categories --> <<for _crimeClearType range Object.keys(setup.crimeNames)>> <<set C.crime[_crimeClearType] = 0>> <<set C.crime[_crimeClearType + "Count"] = 0>> <<set C.crime[_crimeClearType + "Daily"] = 0>> <<run C.crime.clearEvents()>> <</for>> <</if>> <</if>> <</widget>> <<widget "crimeClearEvent">> <<if $statFreeze isnot true>> <<if _args[0] and _args[0] isnot "all">> <<set _crimeClearEvent to _args[0]>> <<if !setup.crimeDescs[_crimeClearEvent]>> <<run Errors.report("Extra-Illegal crime event cleared of description; " + _crimeClearEvent)>> <<else>> <<run C.crime.clearEvents(null, _crimeClearEvent)>> <</if>> <<else>> <<run C.crime.clearEvents()>> <</if>> <</if>> <</widget>> <<widget "listCrimeCheats">> <<if Object.keys(V.crime.events).length isnot 0>> <<for $_ce range Object.keys(V.crime.events)>> <<print $_ce.toUpperFirst() + ": " + setup.crimeDescs[$_ce].toUpperFirst() + ", " + $crime.events[$_ce].length + " count(s)">> <</for>> <<else>> <span class="red">No unique crime events</span> <</if>> <</widget>> <<widget "crimeParade">> <<set _crimes_output to "">> <<for $_crimeType range Object.keys(setup.crimeNames)>> <<if C.crime[$_crimeType + "Count"] gte 1>> <<set $_crimes_output to "">> <<number `C.crime[$_crimeType + "Count"]` "silent">> <<set $_crimes_output += "- " + _text_output.toLocaleUpperFirst() + " count">> <<if C.crime[$_crimeType + "Count"] isnot 1>> <<set $_crimes_output += "s">> <</if>> <<set $_crimes_output += " of " + toTitleCase(setup.crimeNames[$_crimeType])>> <<unset _text_output>> <<set $_crimes_event_list to []>> <<for $_ce range Object.keys($crime.events)>> <<set $_crDescLen to $crime.events[$_ce].filter(e => e.type is $_crimeType).length>> <<if $_crDescLen gte 1>> <<number $_crDescLen "silent">> <<set $_crDescStr to _text_output + " count">> <<if $_crDescLen gt 1>> <<set $_crDescStr += "s">> <</if>> <<set $_crDescStr += " of " + setup.crimeDescs[$_ce]>> <<unset _text_output>> <<set $_crimes_event_list.push($_crDescStr)>> <</if>> <</for>> <<if $_crimes_event_list.length isnot 0>> <<set $_crimes_output += ", including ">> <<set $_crimes_output += formatList($_crimes_event_list, "and", true)>> <</if>> <<set $_crimes_output += ".">><span class="red"><<print $_crimes_output>></span> <<set _crimes_output += $_crimes_output + "<br>">> <br> <</if>> <</for>> <</widget>> <<widget "seductionskilluse">> <<set $enemyarousal += (currentSkillValue("seductionskill") / 100)>><<seductionskill 5>> <</widget>> <<widget "seductionskilluptext">> <<if $seductionskill lt 1000>> <span class="gold">You feel more confident in your powers of seduction.</span> <br><br> <</if>> <</widget>> <<widget "seductionskillusecombat">> <<set $enemyarousal += (currentSkillValue("seductionskill") / 100)>><<seductionskill 5>><<set $seductionskillup to 1>> <</widget>> <<widget "oralskilluse">> <<set $enemyarousal += (currentSkillValue("oralskill") / 100)>><<oralskill 5>><<set $oralskillup to 1>> <</widget>> <<widget "vaginalskilluse">> <<set $enemyarousal += (currentSkillValue("vaginalskill") / 100)>><<vaginalskill 5>><<set $vaginalskillup to 1>> <</widget>> <<widget "analskilluse">> <<set $enemyarousal += (currentSkillValue("analskill") / 100)>><<analskill 5>><<set $analskillup to 1>> <</widget>> <<widget "handskilluse">> <<set $enemyarousal += (currentSkillValue("handskill") / 100)>><<handskill 5>><<set $handskillup to 1>> <</widget>> <<widget "feetskilluse">> <<set $enemyarousal += (currentSkillValue("feetskill") / 100)>><<feetskill 5>><<set $feetskillup to 1>> <</widget>> <<widget "bottomskilluse">> <<set $enemyarousal += (currentSkillValue("bottomskill") / 100)>><<bottomskill 5>><<set $bottomskillup to 1>> <</widget>> <<widget "thighskilluse">> <<set $enemyarousal += (currentSkillValue("thighskill") / 100)>><<thighskill 5>><<set $thighskillup to 1>> <</widget>> <<widget "chestskilluse">> <<set $enemyarousal += (currentSkillValue("chestskill") / 100)>><<chestskill 5>><<set $chestskillup to 1>> <</widget>> <<widget "penileskilluse">> <<set $enemyarousal += (currentSkillValue("penileskill") / 100)>><<penileskill 5>><<set $penileskillup to 1>> <</widget>> <<widget "skulduggeryskilluse">> <<if $statFreeze isnot true and $skulduggery lt 1000>> <<combatskulduggeryskilluse>> <br><br> <</if>> <</widget>> <<widget "combatskulduggeryskilluse">> <<if $statFreeze isnot true and $skulduggery lt 1000>> <span class="gold"> You learned a thing or two about skulduggery.</span> <<set $skulduggery += 3>> <<set $skulduggery to Math.clamp($skulduggery, 0, 1000)>> <</if>> <</widget>> <<widget "swimmingskilluse">> <<if $statFreeze isnot true and $swimmingskill lt 1000>> <span class="gold"> You've become more confident at swimming.</span> <<set $swimmingskill += 9>> <<set $swimmingskill to Math.clamp($swimmingskill, 0, 1000)>> <</if>> <</widget>> <<widget "danceskilluse">> <<if $statFreeze isnot true and $danceskill lt 1000>> <span class="gold"> You feel more confident in your dancing abilities.</span> <<danceskill 1>> <</if>> <</widget>> <<widget "schoolskillgeneral">> <<if $statFreeze isnot true>> <<set $_subject to _args[0]>> <<set $_gain to _args[1] || 1>> <<set _skill_mod to [2.4, 1.2, 0.6, 0.3][Math.clamp(V[$_subject + "trait"], 0, 3)]>> <<if _args[2] isnot "no_star">> <<if V[$_subject + "_star"] lt 3>> <<set V[$_subject + "_star"] += 1>> <</if>> <<if $worn.face.type.includes("glasses")>> <<set _skill_mod *= 1.2>> <</if>> <<if $exposed gte 1>> <<set _skill_mod *= 1.2>> <</if>> <</if>> <<set V[$_subject + "_exam"] to Math.clamp(V[$_subject + "_exam"] + ($_gain * _skill_mod), -107, 200)>> <</if>> <</widget>> <<widget "scienceskill">> <<schoolskillgeneral "science" _args[0] _args[1]>> <</widget>> <<widget "mathsskill">>/* Faster in school to account for fewer lessons */ <<schoolskillgeneral "maths" `_args[0] * (V.location === "school" ? 1.2 : 1)` _args[1]>> <</widget>> <<widget "englishskill">> <<schoolskillgeneral "english" _args[0] _args[1]>> <</widget>> <<widget "historyskill">> <<schoolskillgeneral "history" _args[0] _args[1]>> <</widget>> <<widget "passiveStudy">> <<if $statFreeze isnot true>> <<switch $studyBooks.rented>> <<case "science">> <<scienceskill 6 "no_star">> <<case "maths">> <<mathsskill 6 "no_star">> <<case "English">> <<englishskill 6 "no_star">> <<case "history">> <<historyskill 6 "no_star">> <<default>> <</switch>> <<switch $studyBooks.stolen>> <<case "science">> <<scienceskill 6 "no_star">> <<case "maths">> <<mathsskill 6 "no_star">> <<case "English">> <<englishskill 6 "no_star">> <<case "history">> <<historyskill 6 "no_star">> <<default>> <</switch>> <</if>> <</widget>> <<widget "schoolskill">> <<if _args[0]>> <<historyskill _args[0]>> <<mathsskill _args[0]>> <<scienceskill _args[0]>> <<englishskill _args[0]>> <<else>> <<historyskill>> <<mathsskill>> <<scienceskill>> <<englishskill>> <</if>> <</widget>> <<widget "athletics">> <<if !_args[0] or $statFreeze is true>> <<exit>> <</if>> <<set _temp to _args[0] || 1>> <<set _temp *= ($exposed gte 2 ? 1.2 : $exposed is 1 ? 1.1 : 1)>> <<for _slot range ["upper", "lower", "feet", "legs"]>> <<if $worn[_slot].type.includes("athletic")>> <<set _temp *= 1.1>> <</if>> <</for>> <<if $worn.under_upper.type.includes("athletic") and $player.breastsize gte 6>> <<set _temp *= 1.1>> <<elseif $player.breastsize gte 6>> <<set _temp /= 1.1>> <</if>> <<set $athletics += Math.trunc(_temp * 1.3)>> <<set $athletics to Math.clamp($athletics, 0, 1000)>> <<set Weather.BodyTemperature.addActivity("athletics")>> <</widget>> <<widget "tending">> <<if _args[0] and $statFreeze isnot true>> <<set $tending += (_args[0] * 2)>> <<set $tending to Math.clamp($tending, 0, 1000)>> <</if>> <</widget>> <<widget "housekeeping">> <<if _args[1]>> <<if _args[0] and $statFreeze isnot true and $housekeeping lt _args[1]>> <<set $housekeeping += (_args[0] * 2)>> <<set $housekeeping to Math.clamp($housekeeping, 0, 1000)>> <</if>> <<else>> <<if _args[0] and $statFreeze isnot true>> <<set $housekeeping += (_args[0] * 2)>> <<set $housekeeping to Math.clamp($housekeeping, 0, 1000)>> <</if>> <</if>> <</widget>> <<widget "danceskill">> <<if _args[0] and $statFreeze isnot true>> <<set $danceskill += _args[0]>> <<set $danceskill to Math.clamp($danceskill, 0, 1000)>> <</if>> <</widget>> <<widget "physique">> <<if $statFreeze is true>> <<exit>> <</if>> <<if _args[0]>><<set _temp to _args[0]>><<set $workouts += _args[0]>><<else>><<set _temp to 1>><<set $workouts += 1>><</if>> <<if $exposed gte 2>> <<set _temp *= 1.2>> <<elseif $exposed is 1>> <<set _temp *= 1.1>> <</if>> <<set $physique += 10 * _temp>><<set $physiqueuse += _temp>> <<if _args[1]>> <<if _args[1] isnot "noMessage">> <<if ($combat is 1 and _args[1] isnot "workout") or _args[1] is "invig">> <span class="gold"> It invigorates you.</span> <<else>> <span class="gold"> You get a good workout.</span> <</if>> <</if>> <<elseif $combat is 1>> <span class="gold"> It invigorates you.</span> <<else>> <span class="gold"> You get a good workout.</span> <</if>> <<set $physique = Math.clamp($physique, 0, $physiquesize)>> <<set Weather.BodyTemperature.addActivity("physique")>> <</widget>> <<widget "physique_loss">> <<if _args[0] and $statFreeze isnot true>> <<set $physique -= 10 * _args[0]>> <</if>> <</widget>> <<widget "bruise">> <<if _args[0] and $statFreeze isnot true>> <<switch _args[0]>> <<case "face">> <<set $facebruise += 1>> <<set $facebruise to Math.clamp($facebruise, 0, 100)>> <<case "neck">> <<set $neckbruise += 1>> <<set $neckbruise to Math.clamp($neckbruise, 0, 100)>> <<case "chest">> <<set $chestbruise += 1>> <<set $chestbruise to Math.clamp($chestbruise, 0, 100)>> <<case "rightarm">> <<set $rightarmbruise += 1>> <<set $rightarmbruise to Math.clamp($rightarmbruise, 0, 100)>> <<case "leftarm">> <<set $leftarmbruise += 1>> <<set $leftarmbruise to Math.clamp($leftarmbruise, 0, 100)>> <<case "tummy">> <<set $tummybruise += 1>> <<set $tummybruise to Math.clamp($tummybruise, 0, 100)>> <<case "bottom">> <<set $bottombruise += 1>> <<set $bottombruise to Math.clamp($bottombruise, 0, 100)>> <<case "thigh">> <<set $thighbruise += 1>> <<set $thighbruise to Math.clamp($thighbruise, 0, 100)>> <<case "anus">> <<set $anusbruise += 1>> <<set $anusbruise to Math.clamp($anusbruise, 0, 100)>> <<case "vagina">> <<set $vaginabruise += 1>> <<set $vaginabruise to Math.clamp($vaginabruise, 0, 100)>> <<case "penis">> <<set $penisbruise += 1>> <<set $penisbruise to Math.clamp($penisbruise, 0, 100)>> <<case "full">> <<set $facebruise += 1>> <<set $neckbruise += 1>> <<set $chestbruise += 1>> <<set $rightarmbruise += 1>> <<set $leftarmbruise += 1>> <<set $tummybruise += 1>> <<set $bottombruise += 1>> <<set $thighbruise += 1>> <<set $facebruise to Math.clamp($facebruise, 0, 100)>> <<set $chestbruise to Math.clamp($chestbruise, 0, 100)>> <<set $tummybruise to Math.clamp($tummybruise, 0, 100)>> <<set $vaginabruise to Math.clamp($vaginabruise, 0, 100)>> <<set $penisbruise to Math.clamp($penisbruise, 0, 100)>> <<set $anusbruise to Math.clamp($anusbruise, 0, 100)>> <<set $bottombruise to Math.clamp($bottombruise, 0, 100)>> <<set $thighbruise to Math.clamp($thighbruise, 0, 100)>> <<set $leftarmbruise to Math.clamp($leftarmbruise, 0, 100)>> <<set $rightarmbruise to Math.clamp($rightarmbruise, 0, 100)>> <<set $neckbruise to Math.clamp($neckbruise, 0, 100)>> <</switch>> <</if>> <</widget>> <<widget "rapestat">><<if $statFreeze isnot true>><<set $rapestat += 1>><<set $rapeTimeStat to Time.date.timeStamp>><</if>><</widget>> <<widget "moleststat">><<if $statFreeze isnot true>><<set $moleststat += 1>><<set $molestTimeStat to Time.date.timeStamp>><</if>><</widget>> <<widget "vaginalstat">><<if $statFreeze isnot true>><<set $vaginalstat += 1>><<set $vaginalTimeStat to Time.date.timeStamp>><</if>><</widget>> <<widget "vaginalejacstat">><<if $statFreeze isnot true>><<set $vaginalejacstat += 1>><<purity -2>><<fertiliseParasites "vagina">><<creampie "self" "vagina">><<set $vaginalEjacTimeStat to Time.date.timeStamp>><</if>><</widget>> <<widget "analstat">><<if $statFreeze isnot true>><<set $analstat += 1>><<set $analTimeStat to Time.date.timeStamp>><</if>><</widget>> <<widget "analejacstat">><<if $statFreeze isnot true>><<set $analejacstat += 1>><<purity -2>><<fertiliseParasites>><<creampie "self" "anus">><<set $analEjacTimeStat to Time.date.timeStamp>><</if>><</widget>> <<widget "oralstat">><<if $statFreeze isnot true>><<set $oralstat += 1>><</if>><</widget>> <<widget "oralejacstat">><<if $statFreeze isnot true>><<set $oralejacstat += 1>><<purity -1>><<creampie "self" "mouth">><</if>><</widget>> <<widget "cunnilingusstat">><<if $statFreeze isnot true>><<set $cunnilingusstat += 1>><</if>><</widget>> <<widget "cunnilingusejacstat">><<if $statFreeze isnot true>><<set $cunnilingusejacstat += 1>><</if>><</widget>> <<widget "handstat">><<if $statFreeze isnot true>><<set $handstat += 1>><</if>><</widget>> <<widget "handejacstat">><<if $statFreeze isnot true>><<set $handejacstat += 1>><</if>><</widget>> <<widget "feetstat">><<if $statFreeze isnot true>><<set $feetstat += 1>><</if>><</widget>> <<widget "feetejacstat">><<if $statFreeze isnot true>><<set $feetejacstat += 1>><</if>><</widget>> <<widget "thighstat">><<if $statFreeze isnot true>><<set $thighstat += 1>><</if>><</widget>> <<widget "thighejacstat">><<if $statFreeze isnot true>><<set $thighejacstat += 1>><</if>><</widget>> <<widget "cheststat">><<if $statFreeze isnot true>><<set $cheststat += 1>><</if>><</widget>> <<widget "chestejacstat">><<if $statFreeze isnot true>><<set $chestejacstat += 1>><</if>><</widget>> <<widget "bottomstat">><<if $statFreeze isnot true>><<set $bottomstat += 1>><</if>><</widget>> <<widget "bottomejacstat">><<if $statFreeze isnot true>><<set $bottomejacstat += 1>><</if>><</widget>> <<widget "penilestat">><<silently>> <<if $statFreeze isnot true>> <<if $player.penisExist and !playerHasStrapon()>> <<set $penilestat += 1>> <<set $penileTimeStat to Time.date.timeStamp>> <<elseif playerHasStrapon()>> <<set $straponstat += 1>> <</if>> <</if>><</silently>><</widget>> <<widget "penileejacstat">><<if $statFreeze isnot true>><<set $penileejacstat += 1>><<purity -2>><<set $penileEjacTimeStat to Time.date.timeStamp>><</if>><</widget>> <<widget "clothesstripstat">><<if $statFreeze isnot true>><<set $clothesstripstat += 1>><</if>><</widget>> <<widget "clothesruinstat">><<if $statFreeze isnot true>><<set $clothesruinstat += 1>><</if>><</widget>> <<widget "orgasmstat">><<if $statFreeze isnot true>><<set $orgasmstat += 1>><<set $orgasmTimeStat to Time.date.timeStamp>><</if>><</widget>> <<widget "ejacstat">><<if $statFreeze isnot true>><<set $ejacstat += 1>><</if>><</widget>> <<widget "hitstat">><<if $statFreeze isnot true>><<set $hitstat += 1>><</if>><</widget>> <<widget "attackstat">><<if $statFreeze isnot true>><<set $attackstat += 1>><</if>><</widget>> <<widget "vaginalentranceejacstat">><<if $statFreeze isnot true>><<set $vaginalentranceejacstat += 1>><</if>><</widget>> <<widget "faceejacstat">><<if $statFreeze isnot true>><<set $faceejacstat += 1>><</if>><</widget>> <<widget "hairejacstat">><<if $statFreeze isnot true>><<set $hairejacstat += 1>><</if>><</widget>> <<widget "tummyejacstat">><<if $statFreeze isnot true>><<set $tummyejacstat += 1>><</if>><</widget>> <<widget "neckejacstat">><<if $statFreeze isnot true>><<set $neckejacstat += 1>><</if>><</widget>> <<widget "dancestat">><<if $statFreeze isnot true>><<set $dancestat += 1>><</if>><</widget>> <<widget "analdoublestat">><<if $statFreeze isnot true>><<set $analdoublestat += 1>><</if>><</widget>> <<widget "vaginaldoublestat">><<if $statFreeze isnot true>><<set $vaginaldoublestat += 1>><</if>><</widget>> <<widget "sextoystat">><<if $statFreeze isnot true>><<set $sextoystat += 1>><</if>><</widget>> <<widget "urinestat">><<if $statFreeze isnot true>><<if _args[0]>><<set $urinestat += _args[0]>><<else>><<set $urinestat += 1>><</if>><</if>><</widget>> <<widget "distinction_stat">> <<if $statFreeze isnot true>> <<set $distinction_stat += 1>> <<if $distinction_stat gte 15>> <<earnFeat "Distinguished">> <<elseif $distinction_stat gte 5>> <<earnFeat "Distinctive">> <<else>> <<earnFeat "Distinction">> <</if>> <</if>> <</widget>> <<widget "knot_stat">> <<if $statFreeze isnot true>> <<if $knot_stat is undefined>> <<set $knot_stat to 0>> <</if>> <<set $knot_stat += 1>> <</if>> <</widget>> <<widget "hunger">> <<if _args[0] and $statFreeze isnot true>> <<set $hunger += _args[0]>> <<set $hunger = Math.clamp($hunger, 0, 2000)>> <</if>> <</widget>> <<widget "hunger_description">> <<if $hunger gte 2000>><span class="red">You are starving!</span> <<elseif $hunger gte 1600>><span class="pink">You are famished.</span> <<elseif $hunger gte 1200>><span class="purple">You are ravenous.</span> <<elseif $hunger gte 800>><span class="blue">You are hungry.</span> <<elseif $hunger gte 400>><span class="lblue">You are peckish.</span> <<elseif $hunger gte 1>><span class="teal">You are satiated.</span> <<else>><span class="green">You are full.</span> <</if>> <</widget>> <<widget "thirst">> <<if $thirst gte 2000>><span class="red">You are dehydrated!</span> <<elseif $thirst gte 1600>><span class="pink">You are really thirsty.</span> <<elseif $thirst gte 1200>><span class="purple">You are thirsty.</span> <<elseif $thirst gte 800>><span class="blue">Your throat is dry.</span> <<elseif $thirst gte 400>><span class="lblue">You are satisfied.</span> <<elseif $thirst gte 1>><span class="teal">You are satiated.</span> <<elseif $thirst lte 0>><span class="green">You are full.</span> <</if>> <</widget>> <<widget "tirednesscaption">> <<if Number.isFinite($tiredness)>> <div id="tirednesscaption" @title="'Fatigue: ' + $tiredness.toFixed(2)"> <div @class="($options.showCaptionText is true ? '' : 'rightMeterText')"> Fatigue: <<if $options.showCaptionText is true>> <<if $tiredness gte C.tiredness.max>> <span class="red">You are exhausted.</span> <<elseif $tiredness gte (C.tiredness.max / 5) * 4>> <span class="pink">You are fatigued.</span> <<elseif $tiredness gte (C.tiredness.max / 5) * 3>> <span class="purple">You are tired.</span> <<elseif $tiredness gte (C.tiredness.max / 5) * 2>> <span class="blue">You are wearied.</span> <<elseif $tiredness gte C.tiredness.max / 5>> <span class="lblue">You are alert.</span> <<elseif $tiredness gte 1>> <span class="teal">You are wide awake.</span> <<else>> <span class="green">You are refreshed.</span> <</if>> <</if>> </div> <<if $tiredness gte C.tiredness.max>> <<set $stress += (($tiredness - C.tiredness.max) * 16)>><<set $trauma += (($tiredness - C.tiredness.max) / 3)>> <</if>> <<set $tiredness = Math.clamp($tiredness, 0, C.tiredness.max)>> <<set _showCaptionText to !$options.showCaptionText>> <<statbar 0 $tiredness `C.tiredness.max` _showCaptionText>> </div> <</if>> <</widget>> <<widget "hygiene">> <<if $hygiene gte 2000>> <span class="red">You are filthy.</span> <<elseif $hygiene gte 1600>> <span class="pink">You are soiled.</span> <<elseif $hygiene gte 1200>> <span class="purple">You are smelly.</span> <<elseif $hygiene gte 800>> <span class="blue">You are messy.</span> <<elseif $hygiene gte 400>> <span class="lblue">You are neat.</span> <<elseif $hygiene gte 1>> <span class="teal">You are clean.</span> <<elseif $hygiene lte 0>> <span class="green">You are speckless.</span> <</if>> <</widget>> <<widget "stresscaption">> <<if Number.isFinite($stress)>> <div id="stresscaption" @title="'Stress: ' + $stress.toFixed(2)"> <div @class="($options.showCaptionText is true ? '' : 'rightMeterText')"> Stress: <<if $options.showCaptionText is true>> <<if $stress gte $stressmax>> <span class="red">You are overwhelmed!</span> <<elseif $stress gte ($stressmax / 5) * 4>> <span class="pink">You are distressed.</span> <<elseif $stress gte ($stressmax / 5) * 3>> <span class="purple">You are strained.</span> <<elseif $stress gte ($stressmax / 5) * 2>> <span class="blue">You are tense.</span> <<elseif $stress gte $stressmax / 5>> <span class="lblue">You are calm.</span> <<elseif $stress gte 1>> <span class="teal">You are placid.</span> <<else>> <span class="green">You are serene.</span> <</if>> <</if>> </div> <<set $stress = Math.clamp($stress, 0, $stressmax)>> <<set _showCaptionText to !$options.showCaptionText>> <<statbar 0 $stress $stressmax _showCaptionText>> </div> <</if>> <</widget>> <<widget "traumacaption">> <<if Number.isFinite($trauma)>> <div id="traumacaption" @title="'Trauma: ' + $trauma.toFixed(2)"> <div @class="($options.showCaptionText is true ? '' : 'rightMeterText')"> Trauma: <<if $options.showCaptionText is true>> <<if $trauma gte $traumamax>> <span class="red">You feel numb.</span> <<elseif $trauma gte ($traumamax / 5) * 4>> <span class="pink">You are tormented.</span> <<elseif $trauma gte ($traumamax / 5) * 3>> <span class="purple">You are disturbed.</span> <<elseif $trauma gte ($traumamax / 5) * 2>> <span class="blue">You are troubled.</span> <<elseif $trauma gte ($traumamax / 5) * 1>> <span class="lblue">You are nervous.</span> <<elseif $trauma gte 1>> <span class="teal">You are uneasy.</span> <<else>> <span class="green">You are healthy.</span> <</if>> <</if>> </div> <<set _showCaptionText to !$options.showCaptionText>> <<statbar 0 $trauma $traumamax _showCaptionText>> </div> <</if>> <</widget>> <<widget "innocencecaption">> <div id="innocencecaption" @title="'Innocence: ' + Math.abs($awareness).toFixed(2)"> <div @class="($options.showCaptionText is true ? '' : 'rightMeterText')"> Innocence: <<if $options.showCaptionText is true>> <<if $awareness gte 0>> <span class="red">You understand.</span> <<elseif $awareness gt -40>> <span class="pink">You are uncertain.</span> <<elseif $awareness gt -80>> <span class="purple">You are perplexed.</span> <<elseif $awareness gt -120>> <span class="blue">You are curious.</span> <<elseif $awareness gt -160>> <span class="lblue">You are trusting.</span> <<elseif $awareness gt -200>> <span class="teal">You are naive.</span> <<else>> <span class="green">You are oblivious.</span> <</if>> <</if>> </div> <<set _showCaptionText to !$options.showCaptionText>> <<statbarinverted $awareness -200 _showCaptionText>> <div style="clear:both;"></div> </div> <</widget>> <<widget "controlcaption">> <<if Number.isFinite($control)>> <div id="controlcaption" @title="'Control: ' + $control.toFixed(2)"> <div @class="($options.showCaptionText is true ? '' : 'rightMeterText')"> Control: <<if $options.showCaptionText is true>> <<if $possessed>> <<if $control gte $controlmax>> <span class="green">You are in control.</span> <<elseif $control gte ($controlmax / 5) * 4>> <span class="teal">You are nearly in control.</span> <<elseif $control gte ($controlmax / 5) * 3>> <span class="lblue">You are struggling.</span> <<elseif $control gte ($controlmax / 5) * 2>> <span class="blue">Your body feels hollow.</span> <<elseif $control gte ($controlmax / 5) * 1>> <span class="purple">Your mind is numb.</span> <<elseif $control gte 1>> <span class="pink">You're being puppeteered.</span> <<else>> <span class="red">You're helpless.</span> <</if>> <<else>> <<if $control gte $controlmax>> <span class="green">You are confident.</span> <<elseif $control gte ($controlmax / 5) * 4>> <span class="teal">You are insecure.</span> <<elseif $control gte ($controlmax / 5) * 3>> <span class="lblue">You are worried.</span> <<elseif $control gte ($controlmax / 5) * 2>> <span class="blue">You are anxious.</span> <<elseif $control gte ($controlmax / 5) * 1>> <span class="purple">You are scared.</span> <<elseif $control gte 1>> <span class="pink">You are frightened.</span> <<else>> <span class="red">You are terrified.</span> <</if>> <</if>> <</if>> </div> <<set _showCaptionText to !$options.showCaptionText>> <<statbarinverted $control $controlmax _showCaptionText>> </div> <</if>> <</widget>> <<widget "arousalcaption">> <<if Number.isFinite($arousal)>> <div id="arousalcaption" @title="'Arousal: ' + $arousal.toFixed(2)"> <div @class="($options.showCaptionText is true ? '' : 'rightMeterText')"> Arousal: <<if $options.showCaptionText is true>> <<if $arousal gte $arousalmax>> <span class="red">You shake with arousal.</span> <<elseif $arousal gte ($arousalmax / 5) * 4>> <span class="pink">A heat rises within.</span> <<elseif $arousal gte ($arousalmax / 5) * 3>> <span class="purple">You feel horny.</span> <<elseif $arousal gte ($arousalmax / 5) * 2>> <span class="blue">You feel lustful.</span> <<elseif $arousal gte $arousalmax / 5>> <span class="lblue">You feel aroused.</span> <<elseif $arousal gte 1>> <span class="teal">You feel stimulated.</span> <<else>> <span class="green">You feel cold.</span> <</if>> <</if>> </div> <<set _showCaptionText to !$options.showCaptionText>> <<statbar `statChange.minArousal()` $arousal $arousalmax _showCaptionText>> </div> <</if>> <</widget>> <<widget "lewditycaption">> <<if Number.isFinite($lewdity)>> <div id="lewditycaption" @title="'lewdity: ' + $lewdity.toFixed(2)"> <div @class="($options.showCaptionText is true ? '' : 'rightMeterText')"> lewdity: <<if $options.showCaptionText is true>> <<if $lewdity gte $lewditymax>> <span class="red">You shiver with energy.</span> <<elseif $lewdity gte ($lewditymax / 5) * 4>> <span class="pink">You feel a trembling.</span> <<elseif $lewdity gte ($lewditymax / 5) * 3>> <span class="purple">You feel exhilarated.</span> <<elseif $lewdity gte ($lewditymax / 5) * 2>> <span class="blue">You feel sensual.</span> <<elseif $lewdity gte $lewditymax / 5>> <span class="lblue">You feel excited.</span> <<elseif $lewdity gte 1>> <span class="teal">You feel tingly.</span> <<else>> <span class="green">You feel steady.</span> <</if>> <</if>> </div> <<set _showCaptionText to !$options.showCaptionText>> <<statbar 0 $lewdity $lewditymax _showCaptionText `restLewdity)`>> </div> <</if>> <</widget>> <<widget "allurecaption">> <<if Number.isFinite($allure)>> <div id="allurecaption" @title="'Allure: ' + $allure.toFixed(2)"> <div @class="($options.showCaptionText is true ? '' : 'rightMeterText')"> Allure: <<if $options.showCaptionText is true>> <<if $allure gte (6000 * $settings.allureModifier)>><span class="red">You look like you need to be ravaged.</span> <<elseif $allure gte (4000 * $settings.allureModifier)>><span class="pink">You look perverted.</span> <<elseif $allure gte (3000 * $settings.allureModifier)>><span class="purple">You look lewd.</span> <<elseif $allure gte (2000 * $settings.allureModifier)>><span class="blue">You stand out.</span> <<elseif $allure gte (1500 * $settings.allureModifier)>><span class="lblue">You attract attention.</span> <<elseif $allure gte (1000 * $settings.allureModifier)>><span class="teal">You attract glances.</span> <<else>><span class="green">You look unremarkable.</span> <</if>> <</if>> </div> <div @class="($options.showCaptionText is true ? 'meter' : 'rightMeter')"> <<set _percent=Math.floor(($allure/(8000 * $settings.allureModifier))*100)>> <<if $allure gte (6000 * $settings.allureModifier)>> <<print '<div class="redbar" style="width:' + _percent + '%"></div>'>> <<elseif $allure gte (4000 * $settings.allureModifier)>> <<print '<div class="pinkbar" style="width:' + _percent + '%"></div>'>> <<elseif $allure gte (3000 * $settings.allureModifier)>> <<print '<div class="purplebar" style="width:' + _percent + '%"></div>'>> <<elseif $allure gte (2000 * $settings.allureModifier)>> <<print '<div class="bluebar" style="width:' + _percent + '%"></div>'>> <<elseif $allure gte (1500 * $settings.allureModifier)>> <<print '<div class="lbluebar" style="width:' + _percent + '%"></div>'>> <<elseif $allure gte (1000 * $settings.allureModifier)>> <<print '<div class="tealbar" style="width:' + _percent + '%"></div>'>> <<else>> <<print '<div class="greenbar" style="width:' + _percent + '%"></div>'>> <</if>> </div> <<if $allure gte 8000 * $settings.allureModifier>><<set $allure to 8000 * $settings.allureModifier>><</if>> <<if $alluretest is 1>> <<set $allure += 100000>> <<elseif $alluretest is 2>> <<set $allure -= 100000>> <</if>> </div> <</if>> <</widget>> <<widget "updateallure">> <<run new Wikifier(null, '<<calculateallure>>')>> <<run $('#allurecaption').replaceWith(new Wikifier(null, '<<allurecaption>>').output)>> <</widget>> <<widget "oxygencaption">> <div id="oxygencaption"> <<if _args[0] is true>> <div @class="($options.showCaptionText is true ? '' : 'rightMeterText')"> Air: </div> <<set _showCaptionText to !$options.showCaptionText>> <<else>> <<unset _showCaptionText>> <</if>> <<statbarinverted $oxygen $oxygenmax _showCaptionText>> <div style="clear:both;"></div> </div> <</widget>> <<widget "flashbacktown">> <span class="red">You hear a car horn blare somewhere in the distance, and you panic. Phantom tendrils probe your body and restrict your limbs as a wordless voice jeers and promises endless debasement. It lasts only a moment, but the impression of violation remains.</span> <<garousal>><<gstress>><<gtrauma>><<arousal 600>><<stress 12>><<trauma 6>> <br><br> <</widget>> <<widget "flashbackhome">> <span class="red">You hear a car drive past, and you panic. Phantom tendrils probe your body and restrict your limbs as a wordless voice jeers and promises endless debasement. It lasts only a moment, but the impression of violation remains.</span> <<garousal>><<gstress>><<gtrauma>><<arousal 600>><<stress 6>><<trauma 6>> <br><br> <</widget>> <<widget "flashbackbeach">> <span class="red">You hear a gull squawk, and you panic. Phantom tendrils probe your body and restrict your limbs as a wordless voice jeers and promises endless debasement. It lasts only a moment, but the impression of violation remains.</span> <<garousal>><<gstress>><<gtrauma>><<arousal 600>><<stress 6>><<trauma 6>> <br><br> <</widget>> <<widget "flashbackunderground">> <span class="red">You feel a tremor through the earth, and you panic. Phantom tendrils probe your body and restrict your limbs as a wordless voice jeers and promises endless debasement. It lasts only a moment, but the impression of violation remains.</span> <<garousal>><<gstress>><<gtrauma>><<arousal 600>><<stress 6>><<trauma 6>> <br><br> <</widget>> <<widget "flashbackschool">> <span class="red">You remember the last time you were molested at school, and you panic. Phantom tendrils probe your body and restrict your limbs as a wordless voice jeers and promises endless debasement. It lasts only a moment, but the impression of violation remains.</span> <<garousal>><<gstress>><<gtrauma>><<arousal 600>><<stress 6>><<trauma 6>> <br><br> <</widget>> <<widget "drunkcaption">> <<if $drunk gt 0>> <<set $_colour to getColourClassFromPercentage($drunk * (100 / 480), "drunk")>> <<set $_barColour to $_colour + "bar">> <<set $_percent to Math.floor(($drunk/1000)*100)>> <<set $_barWidth to `width:${$_percent}%`>> <div id="drunkcaption" @title="'Drunk: ' + $drunk.toFixed(2)"> <div @class="($options.showCaptionText is true ? '' : 'rightMeterText')"> <<if $options.showCaptionText is true>> <<set $_drunk_level to Math.clamp(Math.floor($drunk / 120), 0, 4) * 120>> <<switch $_drunk_level>> <<case 0>><span @class="$_colour">You are woozy.</span> <<case 120>><span @class="$_colour">You are tipsy.</span> <<case 240>><span @class="$_colour">You are drunk.</span> <<case 360>><span @class="$_colour">You are smashed.</span> <<case 480>><span @class="$_colour">You are wasted.</span> <</switch>> <<else>> Drunk: <</if>> </div> <div @class="($options.showCaptionText is true ? 'meter' : 'rightMeter')"> <div @class="$_barColour" @style="$_barWidth"></div> </div> </div> <</if>> <</widget>> <<widget "druggedcaption">> <<if $drugged gt 0>> <<set $_colour to getColourClassFromPercentage($drugged / 5, "drugged")>> <<set $_barColour to $_colour + "bar">> <<set $_percent to Math.floor(($drugged/1000)*100)>> <<set $_barWidth to `width:${$_percent}%`>> <div id="druggedcaption" @title="'Drugged: ' + $drugged.toFixed(2)"> <div @class="($options.showCaptionText is true ? '' : 'rightMeterText')"> <<if $options.showCaptionText is true>> <span class="pink">A lewd warmth fills you.</span> <<else>> Drugged: <</if>> </div> <div @class="($options.showCaptionText is true ? 'meter' : 'rightMeter')"> <div @class="$_barColour" @style="$_barWidth"></div> </div> </div> <</if>> <</widget>> <<widget "hallucinogencaption">> <<if $hallucinogen gt 0>> <<set $_colour to getColourClassFromPercentage($hallucinogen / 5, "hallucinogen")>> <<set $_barColour to $_colour + "bar">> <<set $_percent to Math.floor(($hallucinogen/1000)*100)>> <<set $_barWidth to `width:${$_percent}%`>> <div id="hallucinogencaption" @title="'Hallucinogens: ' + $hallucinogen.toFixed(2)"> <div @class="($options.showCaptionText is true ? '' : 'rightMeterText')"> <<if $options.showCaptionText is true>> <span class="purple">Your perception is altered.</span> <<else>> Hallucinogen: <</if>> </div> <div @class="($options.showCaptionText is true ? 'meter' : 'rightMeter')"> <div @class="$_barColour" @style="$_barWidth"></div> </div> </div> <</if>> <</widget>> <<widget "paincaption">> <<if Number.isFinite($pain)>> <div id="paincaption" @title="'Pain: ' + $pain.toFixed(2)"> <div @class="($options.showCaptionText is true ? '' : 'rightMeterText')"> Pain: <<if $options.showCaptionText is true>> <<if $pain gte 100 and $willpowerpain is 0>><span class="red">You sob uncontrollably.</span> <<elseif $pain gte 80>><span class="pink">You cry and whimper.</span> <<elseif $pain gte 60>><span class="purple">You are crying.</span> <<elseif $pain gte 40>><span class="blue">Tears run down your face.</span> <<elseif $pain gte 20>><span class="lblue">Tears well in your eyes.</span> <<elseif $pain gte 1>><span class="teal">You are upset.</span> <<else>><span class="green">You feel okay.</span> <</if>> <</if>> </div> <div @class="($options.showCaptionText is true ? 'meter' : 'rightMeter')"> <<set _percent to Math.floor(($pain/100)*100)>> <<set _minPercent to Math.clamp(Math.floor((statChange.minPain() / 100)*100), 0, _percent)>> <<if $pain gte 100 and $willpowerpain is 0>> <<set _statColor to "redbar">> <<elseif $pain gte 80>> <<set _statColor to "pinkbar">> <<elseif $pain gte 60>> <<set _statColor to "purplebar">> <<elseif $pain gte 40>> <<set _statColor to "bluebar">> <<elseif $pain gte 20>> <<set _statColor to "lbluebar">> <<elseif $pain gte 1>> <<set _statColor to "tealbar">> <<else>> <<set _statColor to "greenbar">> <</if>> <div @class="_statColor" @style="'width:' + _percent + '%'"></div> <<if $pain gt 100>> <div @class="$willpowerpain === 0 ? 'dangerbar' : 'redbar'" @style="'width:' + ($pain - 100) + '%'"></div> <<elseif _minPercent>> <div @class="_statColor + ' meterMin'" @style="'width:' + _minPercent + '%'"></div> <</if>> </div> </div> <</if>> <</widget>> <<widget "raped">> <<if $rapeavoid is 1 and $consensual is 0 and $gamemode isnot "soft">> <<set $rapeavoid to 0>><<rapestat>> <<if $enemytype is "man" and !($npc.length is 1 and $npc[0] is "Eden")>> <<famerape $enemynomax>> <</if>> <<if $awareness lte 200>> <<awareness 5>> <<elseif $awareness lte 400>> <<awareness 1>> <</if>> <<if $enemytype is "beast" or $enemytype is "struggle">> <<set $beastrapestat += 1>> <<if $awareness lte 300>> <<awareness 1>> <</if>> <</if>> <<if $enemytype is "tentacles" or ($abomination is 1 and [$anusstate, $mouthstate, $penisstate, $vaginastate].includes("tentacle"))>> <<set $tentaclerapestat += 1>> <</if>> <<if $enemytype is "tentacles" or $enemytype is "struggle">> <<if $awareness lte 400>> <<awareness 1>> <</if>> <</if>> <<controlloss>> <<elseif $sexavoid is 1 and $consensual is 1>> <<set $sexavoid to 0>> <<if $enemytype is "man" and !($npc.length is 1 and $npc[0] is "Eden")>> <<famesex $enemynomax>> <</if>> <<controlloss>> <</if>> <</widget>> <<widget "molested">> <<if $gamemode is "soft">> <<set $consensual to 1>> <<elseif $molestavoid is 1 and $consensual is 0>> <<set $molestavoid to 0>> <<moleststat>> <<if $flashbacks gte 1>> <<switch $location>> <<case "town">><<if $flashbacktown is 0>><<set $flashbacktown to 14>><</if>> <<case "home">><<if $flashbackhome is 0>><<set $flashbackhome to 14>><</if>> <<case "beach">><<if $flashbackbeach is 0>><<set $flashbackbeach to 14>><</if>> <<case "school">><<if $flashbackschool is 0>><<set $flashbackschool to 14>><</if>> <<case "underground">><<if $flashbackunderground is 0>><<set $flashbackunderground to 14>><</if>> <</switch>> <</if>> <<if $awareness lte 200>> <<awareness 5>> <<elseif $awareness lte 400>> <<awareness 1>> <</if>> <<if $enemytype is "beast" or $enemytype is "struggle">> <<if $awareness lte 300>> <<awareness 1>> <</if>> <</if>> <<if $enemytype is "tentacles" or $enemytype is "struggle">> <<if $awareness lte 400>> <<awareness 1>> <</if>> <</if>> <</if>> <</widget>> <<widget "consensual">> <<if $awareness lte 200>> <<awareness 5>> <<elseif $awareness lte 400>> <<awareness 1>> <</if>> <<if $enemytype is "beast" or $enemytype is "struggle">> <<if $awareness lte 300>> <<awareness 1>> <</if>> <</if>> <<if $enemytype is "tentacles">> <<if $awareness lte 400>> <<awareness 1>> <</if>> <</if>> <<set $trueconsensual to 1>> <<if _args[0]>> <<set $consensualGuaranteed to 1>> <</if>> <<if $npc.length is 1 and ($npc[0] is "Robin" and C.npc.Robin.dom lte 10 and $debug is 1) or ($npc[0] is "Sydney" and C.npc.Sydney.purity gte 50)>> <<npc_submissive>> <</if>> <</widget>> <<widget "controlloss">> <<set _controlloss to true>> /* indicate that $controlstart was saved for <<combatinit>> */ <<if $gamemode is "soft">> <<elseif $consensual is 0>> <<set $pullaway to 0>> <<set $novaginal to 0>> <<set $noanal to 0>> <<set $nopenile to 0>> <<if $control gt 1>> <<if $molesttrait gte 1 and $rapeavoid is 1>> <<else>> <<set $controlstart to $control>><<control -25>> <<if $control gte ($controlmax * 0.74)>> <span class="purple">Your sense of control wavers.</span> <<elseif $control gte ($controlmax * 0.49)>> <span class="purple">Your sense of control falters.</span> <<elseif $control gte ($controlmax * 0.24)>> <span class="pink">Your sense of control cracks.</span> <<elseif $control gte 1>> <span class="pink">Your sense of control breaks down.</span> <<else>> <span class="red">Your sense of control shatters.</span> <</if>> <</if>> <</if>> <</if>> <</widget>> <<widget "beastescape">> <<trauma 12>><<pain 6>><<stress 12>> <<set $worn.over_lower.integrity -= 20>> <<set $worn.over_upper.integrity -= 20>> <<set $worn.lower.integrity -= 20>> <<set $worn.upper.integrity -= 20>> <<set $worn.under_lower.integrity -= 20>> <<set $worn.under_upper.integrity -= 20>> <<bruise full>> <<gtrauma>><<gpain>><<gstress>> <</widget>> <<widget "weatherdisplay">> <<set _season to (Time.season == "winter" ? "_winter" : "")>> <<set _weather_display to (Time.season == "winter" ? "winter" : "normal")>> <<if $options.images is 1>> <<if Time.dayState is "night" and (Time.isBloodMoon() or $forcedBloodmoon)>> <<set _dayStateWithBloodMoon to "_bloodmoon">> <<else>> <<set _dayStateWithBloodMoon to "_"+Time.dayState>> <</if>> <<set _dayState to "_"+Time.dayState>> <<set _imgLoc to 'img/misc/'>> <<set _imgSky to 'img/misc/old/'>> /* sky (upmost part) */ <<if $location is "tentworld">> <<set _skybox to "skybox" + _dayState + "_tentacle">> <<else>> <<set _skybox to "skybox" + _dayStateWithBloodMoon>> <<if $location is "bog">><<set _skybox += "_haze">><</if>> <img id="daystate" @src="_imgSky + 'sun' + _dayState + '.png'"> <img id="daystate" @src="_imgSky + 'moon' + _dayStateWithBloodMoon + '.png'"> <</if>> <div @class="_skybox"> </div> /* weather (middle part) */ <<if $location isnot "tentworld">> <<if Weather.precipitation is "rain">> <img id="weather" @src="_imgSky + 'rain' + _dayState + '.gif'"> <<elseif Weather.precipitation is "snow">> <img id="weather" @src="_imgSky + 'snow' + _dayState + '.gif'"> <<elseif Weather.isOvercast>> <img id="weather" @src="_imgSky + 'overcast' + _dayState + _season + '.png'"> <</if>> <</if>> /* location (bottom part) */ /* For backward compatibility during transition period */ <<script>> const path = "img/misc/locations/"; const location = setup.Locations.get(); const loc = setup.LocationImages[location]; T.images = []; const imagesToCheck = loc.base ? Object.values(loc.base) : Object.entries(loc.reflective).filter(([key]) => key !== "mask").map(([key, value]) => value); imagesToCheck.forEach(item => { if (item.condition && !item.condition()) return; const imagePath = typeof item === "string" ? item : item.image; T.images.push(imagePath instanceof Image ? imagePath.src : `${path}${loc.folder}/${imagePath}`); }); <</script>> <div id="oldlocation"> <<for _img range _images>> <img id="oldlocationimg" @src="_img"> <</for>> </div> <<else>> <<switch Time.dayState>> <<case "day">> <<switch Weather.name>> <<case "clear" "lightClouds">>It's a bright and sunny day. <<case "lightPrecipitation" "heavyPrecipitation" "thunderStorm">> <<if Weather.precipitation is "rain">> It's a rainy day. <<else>> It's a snowy day. <</if>> <<case "heavyClouds">>Clouds are hiding the sun. <</switch>> <<case "night">> <<switch Weather.name>> <<case "clear" "lightClouds">>The stars are shining. <<case "lightPrecipitation" "heavyPrecipitation" "thunderStorm">> <<if Weather.precipitation is "rain">> It's a rainy night. <<else>> It's a snowy night. <</if>> <<case "heavyClouds">>All starlight is blocked by the clouds. <</switch>> <<case "dawn">> <<switch Weather.name>> <<case "clear" "lightClouds">>The sun is rising. <<case "lightPrecipitation" "heavyPrecipitation" "thunderStorm">> <<if Weather.precipitation is "rain">> It's a rainy morning. <<else>> It's a snowy morning. <</if>> <<case "heavyClouds">>It's a cloudy morning. <</switch>> <<case "dusk">> <<switch Weather.name>> <<case "clear" "lightClouds">>The sun is setting. <<case "lightPrecipitation" "heavyPrecipitation" "thunderStorm">> <<if Weather.precipitation is "rain">> It's a rainy evening. <<else>> It's a snowy evening. <</if>> <<case "heavyClouds">>It's cloudy evening. <</switch>> <</switch>> <br> <</if>> <</widget>> <<widget "wearandtear">> <<if _args[0] is "dance">> <<if !$worn.over_upper.type.includes("dance")>> <<set $worn.over_upper.integrity -= 1>> <</if>> <<if !$worn.over_lower.type.includes("dance")>> <<set $worn.over_lower.integrity -= 1>> <</if>> <<if !$worn.upper.type.includes("dance")>> <<set $worn.upper.integrity -= 1>> <</if>> <<if !$worn.lower.type.includes("dance")>> <<set $worn.lower.integrity -= 1>> <</if>> <<if !$worn.under_lower.type.includes("dance")>> <<set $worn.under_lower.integrity -= 1>> <</if>> <<if !$worn.under_upper.type.includes("dance")>> <<set $worn.under_upper.integrity -= 1>> <</if>> <<else>> <<set $worn.over_upper.integrity -= 1>><<set $worn.over_lower.integrity -= 1>><<set $worn.upper.integrity -= 1>><<set $worn.lower.integrity -= 1>><<set $worn.under_lower.integrity -= 1>><<set $worn.under_upper.integrity -= 1>> <</if>> <</widget>> <<widget "dry_towel">> <<dry_full>> <<exposure>> <<if $exposed gte 1>> <<towelup>> <</if>> <</widget>> <<widget "towelup">> <<if $exposed gte 1>> <<if $upperwetstage gte 3 and !$worn.under_upper.type.includes("covered") or $underupperwetstage gte 3 and $worn.under_upper.type.includes("covered")>> <<upperwear 3>> <</if>> <<if $lowerwetstage gte 3 and !$worn.under_lower.type.includes("covered") or $underlowerwetstage gte 3 and $worn.under_lower.type.includes("covered")>> <<lowerwear 3>> <</if>> <<if $worn.upper.exposed gte 1 and !$worn.under_upper.type.includes("covered")>> <<upperwear 14>> <<elseif $worn.lower.exposed gte 1 and !$worn.under_lower.type.includes("covered")>> <<lowerwear 3>> <</if>> <</if>> <</widget>> <<widget "towelupm">> <<if $exposed gte 1>> <<if $lowerwetstage gte 3 and !$worn.under_lower.type.includes("covered")>> <<lowerwear 3>> <</if>> <<if $worn.lower.exposed gte 1 and !$worn.under_lower.type.includes("covered")>> <<lowerwear 3>> <</if>> <</if>> <</widget>> <<widget "ragup">> <<if $worn.upper.exposed gte 2>> <<upperwear 79>> <</if>> <<if $worn.lower.exposed gte 2>> <<lowerwear 71>> <</if>> <</widget>> <<widget "plantupper">> <<if $worn.upper.exposed gte 2 and $worn.under_upper.exposed gte 1 or $worn.upper.exposed gte 2 and $underupperwetstage gte 3 or $upperwetstage gte 3 and $worn.under_upper.exposed gte 1 or $upperwetstage gte 3 and $underupperwetstage gte 3 or _args[0] is "force">> <<if _args[0] is "seaweed">> <<upperwear 163>> <<else>> <<upperwear 6>> <</if>> <</if>> <</widget>> <<widget "plantlower">> <<if $worn.lower.exposed gte 2 and $worn.under_lower.exposed gte 1 or $worn.lower.exposed gte 2 and $underlowerwetstage gte 3 or $lowerwetstage gte 3 and $worn.under_lower.exposed gte 1 or $lowerwetstage gte 3 and $underlowerwetstage gte 3 or _args[0] is "force">> <<if _args[0] is "seaweed">> <<lowerwear 150>> <<else>> <<lowerwear 8>> <</if>> <</if>> <</widget>> <<widget "plantup">> <<if $worn.upper.exposed gte 2 and $worn.under_upper.exposed gte 1 or $upperwetstage gte 3 and $underupperwetstage gte 3>> <<if _args[0] is "seaweed">> <<upperwear 163>> <<else>> <<upperwear 6>> <</if>> <</if>> <<if $worn.lower.exposed gte 2 and $worn.under_lower.exposed gte 1 or $lowerwetstage gte 3 and $underlowerwetstage gte 3 or $lowerwetstage gte 3 and $worn.under_lower.exposed gte 1>> <<if _args[0] is "seaweed">> <<lowerwear 150>> <<else>> <<lowerwear 8>> <</if>> <</if>> <</widget>> <<widget "schoolspareclothes">> <<if !$worn.upper.type.includes("school") or !$worn.lower.type.includes("school") and $worn.upper.set is $worn.lower.set>> <<upperwear 5>><<set $worn.upper.colour to either("black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow")>><<set $worn.upper.integrity /= 2>> <</if>> <<if !$worn.lower.type.includes("school")>> <<if $clothingselector is "m">> <<lowerwear 6>><<set $worn.lower.colour to either("black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow")>><<set $worn.lower.integrity /= 2>> <<else>> <<lowerwear 7>><<set $worn.lower.colour to either("black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow")>><<set $worn.lower.integrity /= 2>> <</if>> <</if>> <</widget>> <<widget "spareschoolswimsuit">> <<underupperwear 2>><<set $worn.under_upper.colour to either("black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow")>><<set $worn.under_upper.integrity /= 2>> <<set $worn.under_lower.colour to clone($worn.under_upper.colour)>><<set $worn.under_lower.integrity /= 2>> <</widget>> <<widget "spareschoolswimshorts">> <<underlowerwear 7>><<set $worn.under_lower.colour to either("black", "blue", "brown", "green", "pink", "purple", "red", "tangerine", "teal", "white", "yellow")>><<set $worn.under_lower.integrity /= 2>> <</widget>> <<widget "exposureold">> <!-- In safe locations, while alone, the player won't cover up. Love interest check is likely not hitting everywhere it should be due to NPCs generating after this check. --> <<if ["Wardrobe", "Bedroom", "Sleep", "Bird Tower", "Bird Hunt", "Spa Tan Underwear", "Spa Tan Curtains", "Spa Tan Naked", "Mirror"].some(keyword => V.passage.includes(keyword)) and !($NPCList.some(obj => Object.hasOwn(obj, "type")) and !$NPCList.find(({fullDescription:fd}) => fd && Object.values($loveInterest).includes(fd)))>> <<set $libertine to 2>> <<else>> <<set $libertine to 0>> <<if !["beach", "pool", "sea", "lake", "lake_ruin"].includes($location)>> <<set $libertine to 0>> <<else>> <<set $libertine to 1>> <</if>> <<if $location is "dance_studio" and $worn.under_lower.type.includes("dance") and $worn.under_upper.type.includes("dance")>> <<set $libertine to 1>> <</if>> <</if>> <<exposedcheck>> <<set $exposed to 0>> <<if !$possessed>> /* To be considered exposing your underwear or breasts ($exposure 1 for both) the following must be true Male appearing breasts do not count as exposed over_upper needs to be exposing/displaced upper needs to be exposing/displaced or wet under_upper needs to not have covered trait or be exposing/displaced or be wet lower needs to not have covered trait or be displaced or be wet */ <<if $player.gender_appearance isnot "m" and $worn.over_upper.exposed gte 1 and ($worn.upper.exposed gte 1 or $upperwetstage gte 3) and (!$worn.under_upper.type.includes("covered") or $worn.under_upper.exposure gte 1 or $underupperwetstage gte 3) and (!$worn.lower.type.includes("covered") or $worn.lower.exposed gte 2 or $lowerwetstage gte 3)>> <<set $exposed to 1>> <</if>> /* To be considered exposing your underwear or genitals ($exposure 1 and 2 respectively) the following must be true over_lower needs to be exposing/displaced lower needs to be exposing/displaced or wet To be considered exposing your underwear the following must be true under_lower needs to not have the covered trait and be not exposing or wet Otherwise to be considered exposing your genitals the following must be true under_lower needs to be exposing or wet */ <<if $worn.over_lower.exposed gte 1 and ($worn.lower.exposed gte 1 or $lowerwetstage gte 3)>> <<if $worn.under_lower.exposed is 0 and $underlowerwetstage lt 3 and !$worn.under_lower.type.includes("covered")>> <<set $exposed to 1>> <<elseif $worn.under_lower.exposed gte 1 or $underlowerwetstage gte 3>> <<set $exposed to 2>> <</if>> <</if>> <</if>> <<set $exposedRaw to $exposed>> <<if $libertine gte $exposed>> <<set $exposed to 0>> <</if>> <</widget>> <<widget "integritycheck">> <<outfitChecks>> <<if $worn.over_upper.name isnot "naked">> <<if $worn.over_upper.integrity lte 0>> <<set $worn.over_upper.type.push("broken")>> <<if _args[0] isnot "no_text">> <<if $worn.over_upper.name is "cream">> <span class="lewd">The cream falls off your body<<if $worn.upper.exposed gte 2>>, exposing your <<undertop>><</if>>.</span> <<else>> <span class="lewd">Your $worn.over_upper.name <<overupperplural>> ripped into scraps<<if $worn.upper.exposed gte 2>>, exposing your <<undertop>><</if>>.</span> <</if>> <br> <</if>> <<overupperruined>><<clothesruinstat>><<if $worn.upper.exposed gte 2>><<set $upperoff to 0>><</if>> <</if>> <</if>> <<if $worn.over_lower.name isnot "naked">> <<if $worn.over_lower.integrity lte 0>> <<set $worn.over_lower.type.push("broken")>> <<if _args[0] isnot "no_text">> <<if $worn.over_lower.name is "cream">> <span class="lewd">The cream falls off your body<<if $worn.lower.exposed gte 2>>, exposing your <<undies>><</if>>.</span> <<else>> <span class="lewd">Your $worn.over_lower.name <<upperplural>> ripped into scraps<<if $worn.lower.exposed gte 2>>, exposing your <<undies>><</if>>.</span> <</if>> <br> <</if>> <<overlowerruined>><<clothesruinstat>><<if $worn.lower.exposed gte 2>><<set $upperoff to 0>><</if>> <</if>> <</if>> <<if $worn.upper.name isnot "naked">> <<if $worn.upper.integrity lte 0>> <<set $worn.upper.type.push("broken")>> <<if _args[0] isnot "no_text">> <span class="lewd">Your $worn.upper.name <<upperplural>> ripped into scraps, exposing your <<undertop>>.</span> <br> <</if>> <<upperruined>><<clothesruinstat>><<set $upperoff to 0>> <</if>> <</if>> <<if $worn.lower.name isnot "naked">> <<if $worn.lower.integrity lte 0>> <<set $worn.lower.type.push("broken")>> <<if _args[0] isnot "no_text">> <span class="lewd">Your $worn.lower.name <<lowerplural>> ripped into scraps, exposing your <<undies>>.</span> <br> <</if>> <<lowerruined>><<clothesruinstat>><<set $loweroff to 0>> <</if>> <</if>> <<if $worn.under_upper.name isnot "naked">> <<if $worn.under_upper.integrity lte 0>> <<set $worn.under_upper.type.push("broken")>> <<if _args[0] isnot "no_text">> <span class="lewd">Your $worn.under_upper.name <<underupperplural>> ripped into scraps, exposing your <<breasts>>.</span> <br> <</if>> <<underupperruined>><<clothesruinstat>><<set $underupperoff to 0>> <</if>> <</if>> <<if $worn.under_lower.name isnot "naked">> <<if $worn.under_lower.integrity lte 0>> <<set $worn.under_lower.type.push("broken")>> <<if _args[0] isnot "no_text">> <span class="lewd">Your $worn.under_lower.name <<underlowerplural>> ripped into scraps, exposing your <<if $worn.genitals.name isnot "naked">>$worn.genitals.name.<<else>><<genitals>>.<</if>></span> <br> <</if>> <<underlowerruined>><<clothesruinstat>><<set $underloweroff to 0>> <</if>> <</if>> <<if $worn.genitals.name isnot "naked">> <<if $worn.genitals.integrity lte 0>> <<set _chastityBreak to 1>> <<if _args[0] isnot "no_text">> <span class="lewd">Your $worn.genitals.name breaks, exposing your <<genitals 1>>.</span> <br> <</if>> <<if playerChastity()>> <<set $worn.genitals.type.push("broken")>> <<if $vaginalchastityparasite isnot 0>> <span class="pink">With the <<print $worn.genitals.name>> gone, the $vaginalchastityparasite fall out of your vagina.</span> <br> <<set $vaginalchastityparasite to 0>> <</if>> <<if $penilechastityparasite isnot 0>> <span class="pink">With the <<print $worn.genitals.name>> gone, the $penilechastityparasite fall off of your penis.</span> <br> <<set $penilechastityparasite to 0>> <</if>> <<if $analchastityparasite isnot 0>> <span class="pink">With the <<print $worn.genitals.name>> gone, the $analchastityparasite fall out of your anus.</span> <br> <<set $analchastityparasite to 0>> <</if>> <<if playerChastity("anus")>> <<set $worn.genitals.anal_shield to 0>> <</if>> <</if>> <<genitalsruined>><<clothesruinstat>> <</if>> <</if>> <</widget>> <<widget "arm_unbind">> <<set $rightboundcarry to 0>> <<set $leftboundcarry to 0>> <<set $leftarm to 0>> <<set $rightarm to 0>> <<if $worn.upper.type.includes("binding")>> <<set _unbind_check to 1>> <<if $worn.upper.set is $worn.lower.set>> <<set $worn.lower.type.push("broken")>> <<lowerruined>> <</if>> <<set $worn.upper.type.push("broken")>> <<upperruined>> <</if>> <</widget>> <<widget "unbind">> /*<<unbind>> is only used for the player unbinding their arms after they've been tied with rope. it will destroy handheld items. do not use it for unbinding arms after they've been temporarily restrained; use <<unbindtemp>> instead*/ <<if pcAreArmsBound("right") and $worn.handheld.name isnot "naked">> <<handheldruined>> <</if>> <<set $rightboundcarry to 0>> <<set $leftboundcarry to 0>> <<set $leftarm to 0>> <<set $rightarm to 0>> <<remove_shackle>> <<leg_unbind>> <<if $head is "bound">> <<set $head to 0>> <</if>> <<if $worn.upper.type.includes("binding")>> <<set _unbind_check to 1>> <<if $worn.upper.set is $worn.lower.set>> <<set $worn.lower.type.push("broken")>> <<lowerruined>> <</if>> <<set $worn.upper.type.push("broken")>> <<upperruined>> <</if>> <</widget>> <<widget "unbindtemp">> <<set $rightboundcarry to 0>> <<set $leftboundcarry to 0>> <<set $leftarm to 0>> <<set $rightarm to 0>> <<remove_shackle>> <<leg_unbind>> <<if $head is "bound">> <<set $head to 0>> <</if>> <</widget>> <<widget "bind">> /*<<bind>> and <<unbind>> are only used for binding the player's arms with rope. they are only meant to be used for scenes where the player is left helpless and must undo their bindings elsewhere, forcing them to leave behind their handheld items. Use <<bindtemp>> and <<unbindtemp>> for temporarily binding arms.*/ <<if _args[0]>> <<set _args[0] to "bound">> <<if pcAreArmsBound("right") and $worn.handheld.name isnot "naked">> <<handheldruined>> <</if>> <<else>> <<set $leftarm to "bound">> <<set $rightarm to "bound">> <<if $worn.handheld.name isnot "naked">> <<handheldruined>> <</if>> <</if>> <</widget>> <<widget "bindtemp">> <<set $leftarm to "bound">> <<set $rightarm to "bound">> <</widget>> <<widget "legbind">> <<set $leftleg to "bound">> <<set $rightleg to "bound">> <<set $feetuse to "bound">> <</widget>> <<widget "leg_unbind">> <<set $leftleg to 0>> <<set $rightleg to 0>> <<set $feetuse to 0>> <</widget>> <<widget "remove_shackle">> <<if $worn.feet.type.includes("shackle")>> <<set $worn.feet.type.push("broken")>> <<feetruined>> <<leg_unbind>> <</if>> <</widget>> <<widget "shackle_feet">> <<switch _args[0]>> <<case "vines">><<feetwear 50>> <<default>><<feetwear 3>> <</switch>> <<legbind>> <</widget>> <<widget "headbind">> <<set $head to "bound">> <</widget>> <<widget "bindings">> <<if pcAreArmsBound("left") and $position isnot "wall">><<set $leftboundcarry to 1>><</if>> <<if !pcAreArmsBound("left") and $leftboundcarry is 1>> <<set $leftarm to "bound">> <</if>> <<if pcAreArmsBound("right") and $position isnot "wall">><<set $rightboundcarry to 1>><</if>> <<if !pcAreArmsBound("right") and $rightboundcarry is 1>> <<set $rightarm to "bound">> <</if>> <</widget>> <<widget "water">> <<set _inWater to true>> <<if !waterproofCheck($worn.over_upper) and !$worn.over_upper.type.includes("naked") and _args[0] isnot "waist">> <<upperwet 200>> <</if>> <<if !waterproofCheck($worn.upper) and !$worn.upper.type.includes("naked") and _args[0] isnot "waist">> <<upperwet 200>> <</if>> <<if !waterproofCheck($worn.lower) and !$worn.lower.type.includes("naked")>> <<lowerwet 200>> <</if>> <<if !waterproofCheck($worn.upper) and !waterproofCheck($worn.under_upper) and !$worn.under_upper.type.includes("naked") and _args[0] isnot "waist">> <<underupperwet 200>> <</if>> <<if !waterproofCheck($worn.lower) and !waterproofCheck($worn.under_lower) and !$worn.under_lower.type.includes("naked")>> <<underlowerwet 200>> <</if>> <<waterwash>> <</widget>> <<widget "wet_all">> <<wet_upper>> <<wet_lower>> <</widget>> <<widget "wet_upper">> <<for _slot range ["over_upper", "upper", "under_upper"]>> <<if waterproofCheck($worn[_slot])>> /* if the clothing is waterproof, protect it and layers below from getting wet */ <<break>> <<elseif !$worn[_slot].type.includes("naked")>> /* skin wetness system is not implemented... yet? */ <<set V[_slot + "wet"] to 200>> <<set V[_slot + "wetstage"] to 3>> <</if>> <</for>> <</widget>> <<widget "wet_lower">> <<for _slot range ["over_lower", "lower", "under_lower"]>> <<if waterproofCheck($worn[_slot])>> <<break>> <<elseif !$worn[_slot].type.includes("naked")>> <<set V[_slot + "wet"] to 200>> <<set V[_slot + "wetstage"] to 3>> <</if>> <</for>> <</widget>> <<widget "storecleanup">> <<unset $action_unclad_over_outfit>> <<unset $action_unclad_over_upper>> <<unset $action_unclad_over_lower>> <<unset $action_unclad_outfit>> <<unset $action_unclad_upper>> <<unset $action_unclad_lower>> <<unset $action_unclad_under_outfit>> <<unset $action_unclad_under_lower>> <<unset $action_unclad_under_upper>> <<unset $action_unclad_legs>> <<unset $action_unclad_feet>> <<unset $action_unclad_neck>> <<unset $action_unclad_head>> <<unset $action_unclad_face>> <<unset $action_unclad_hands>> <</widget>> <<widget "undiestrauma">> <<if !$worn.under_lower.type.includes("naked")>> <<gtrauma>><<gstress>><<trauma 1>><<stress 1>> <<else>> <<gtrauma>><<gstress>><<trauma 3>><<stress 3>> <</if>> <</widget>> <<widget "goo">> <<goocount>> <<if $liquidoutsidecount gte 1>> <!-- Variables constructed: $semenoutsidecount, $goooutsidecount, $nectaroutsidecount --> <<set _liquid to formatList( ["semen", "goo", "nectar"].filter(stuff => V[stuff + "outsidecount"] gte 1) ).replace("goo", "slime") >> <<if $liquidoutsidecount gte 100>> <span class="red">Lewd fluid drenches <<possessedWord 'you' $_textCol>> from head to toe.</span> <br> <<elseif $liquidoutsidecount gte 25>> <span class="pink"><<possessedWord 'You' $_textCol>> are drenched in _liquid.</span> <br> <<elseif $liquidoutsidecount gte 20>> <span class="purple"><<possessedWord 'You' $_textCol>> are soaked with _liquid.</span> <br> <<elseif $liquidoutsidecount gte 15>> <span class="purple"><<possessedWord 'Your' $_textCol>> skin is slick with _liquid.</span> <br> <<elseif $liquidoutsidecount gte 10>> <span class="purple"><<possessedWord 'You' $_textCol>> are wet with _liquid.</span> <br> <<elseif $liquidoutsidecount gte 5>> <span class="purple"><<possessedWord 'Your' $_textCol>> skin is moist with _liquid.</span> <br> <<elseif $liquidoutsidecount gte 1>> <span class="blue"><<possessedWord 'You' $_textCol>> feel _liquid on your skin.</span> <br> <</if>> <</if>> <<if $player.bodyliquid.vagina.goo gte 1 or $player.bodyliquid.vagina.semen gte 1 or $player.bodyliquid.vagina.nectar>> <!-- Variables constructed: $player.bodyliquid.vagina.semen, $player.bodyliquid.vagina.goo, $player.bodyliquid.vagina.nectar --> <<set _liquid to formatList( ["semen", "goo", "nectar"].filter(stuff => V.player.bodyliquid.vagina[stuff] gte 1) ).replace("goo", "slime") >> <<set _liquidUpper to _liquid.toUpperFirst()>> <<if _liquid.includes(" ")>> <<set _s to "">> <<else>> <<set _s to "s">> <</if>> <<switch Math.clamp(setup.bodyliquid.combined("vagina"), 1, 5)>> <<case 5>> <span class="red"><<possessedWord 'Your' $_textCol>> womb overflows with _liquid.</span> <br> <<case 4>> <span class="pink"><<possessedWord 'Your' $_textCol>> <<pussy>> overflows with _liquid.</span> <br> <<case 3>> <span class="pink">_liquidUpper flow_s from <<possessedWord 'your' $_textCol>> <<pussy>>.</span> <br> <<case 2>> <span class="pink">_liquidUpper stream_s from <<possessedWord 'your' $_textCol>> <<pussy>>.</span> <br> <<case 1>> <span class="pink">_liquidUpper drip_s from <<possessedWord 'your' $_textCol>> <<pussy>>.</span> <br> <</switch>> <</if>> <<if $player.bodyliquid.anus.goo gte 1 or $player.bodyliquid.anus.semen gte 1 or $player.bodyliquid.anus.nectar>> <!-- Variables constructed: $player.bodyliquid.anus.semen, $player.bodyliquid.anus.goo, $player.bodyliquid.anus.nectar --> <<set _liquid to formatList( ["semen", "goo", "nectar"].filter(stuff => V.player.bodyliquid.anus[stuff] gte 1) ).replace("goo", "slime") >> <<set _liquidUpper to _liquid.toUpperFirst()>> <<if _liquid.includes(" ")>> <<set _s to "">> <<else>> <<set _s to "s">> <</if>> <<switch Math.clamp(setup.bodyliquid.combined("anus"), 1, 5)>> <<case 5>> <span class="red"><<possessedWord 'Your' $_textCol>> bowels overflow with _liquid.</span> <br> <<case 4>> <span class="pink"><<possessedWord 'Your' $_textCol>> <<bottom>> overflows with _liquid.</span> <br> <<case 3>> <span class="pink">_liquidUpper flow_s from <<possessedWord 'your' $_textCol>> <<bottom>>.</span> <br> <<case 2>> <span class="pink">_liquidUpper stream_s from <<possessedWord 'your' $_textCol>> <<bottom>>.</span> <br> <<case 1>> <span class="pink">_liquidUpper drip_s from <<possessedWord 'your' $_textCol>> <<bottom>>.</span> <br> <</switch>> <</if>> <<if $player.bodyliquid.mouth.goo gte 1 or $player.bodyliquid.mouth.semen gte 1 or $player.bodyliquid.mouth.nectar>> <!-- Variables constructed: $player.bodyliquid.mouth.semen, $player.bodyliquid.mouth.goo, $player.bodyliquid.mouth.nectar --> <<set _liquid to formatList( ["semen", "goo", "nectar"].filter(stuff => V.player.bodyliquid.mouth[stuff] gte 1) ).replace("goo", "slime") >> <<set _liquidUpper to _liquid.toUpperFirst()>> <<if _liquid.includes(" ")>> <<set _s to "">> <<else>> <<set _s to "s">> <</if>> <<set _liquidUpper to _liquid.toUpperFirst()>> <<switch Math.clamp(setup.bodyliquid.combined("mouth"), 1, 5)>> <<case 5>> <span class="red"><<possessedWord 'You' $_textCol>> keep coughing up _liquid.</span> <br> <<case 4>> <span class="pink">_liquidUpper dribble_s down <<possessedWord 'your' $_textCol>> chin.</span> <br> <<case 3>> <span class="pink">_liquidUpper line_s the sides of <<possessedWord 'your' $_textCol>> throat.</span> <br> <<case 2>> <span class="pink">_liquidUpper layer_s the back of <<possessedWord 'your' $_textCol>> throat.</span> <br> <<case 1>> <span class="pink">The taste of _liquid permeate_s <<possessedWord 'your' $_textCol>> mouth.</span> <br> <</switch>> <</if>> <</widget>> <<widget "outergoo">> <<bodyliquid "neck" "goo">> <<bodyliquid "rightarm" "goo">> <<bodyliquid "leftarm" "goo">> <<bodyliquid "thigh" "goo">> <<bodyliquid "bottom" "goo">> <<bodyliquid "tummy" "goo">> <<bodyliquid "chest" "goo">> <<bodyliquid "face" "goo">> <<bodyliquid "hair" "goo">> <<bodyliquid "feet" "goo">> <</widget>> <<widget "waist_goo">> <<bodyliquid "feet" "goo" 5>> <<bodyliquid "bottom" "goo" 5>> <<bodyliquid "thigh" "goo" 5>> <<if $player.penisExist>> <<bodyliquid "penis" "goo" 5>> <</if>> <<if $player.vaginaExist>> <<bodyliquid "vaginaoutside" "goo" 5>> <</if>> <</widget>> <<widget "random_goo">> <<set $_part_text to [ "neck", "right arm", "left arm", "thigh", "bottom", "tummy", "chest", "face", "hair", "feet" ].random()>> <<set $_part to $_part_text.replace(" ","")>> <<set $player.bodyliquid[$_part].goo += 1>> <<switch $_part_text>> <<case "right arm" "left arm">><<handejacstat>> <<case "neck">><<neckejacstat>> <<case "thigh">><<thighejacstat>> <<case "bottom">><<bottomejacstat>> <<case "tummy">><<tummyejacstat>> <<case "chest">><<chestejacstat>> <<case "face">><<faceejacstat>> <<case "hair">><<hairejacstat>> <<case "feet">><<feetejacstat>> <</switch>> It <<print either("splatters onto your", "coats your", "lands on your", "splashes your")>> <span class="purple">$_part_text</span>. <</widget>> <<widget "random_semen">> <<set $_part_text to [ "neck", "right arm", "left arm", "thigh", "bottom", "tummy", "chest", "face", "hair", "feet" ].random()>> <<set $_part to $_part_text.replace(" ","")>> <<set $player.bodyliquid[$_part].semen += 1>> <<switch $_part_text>> <<case "right arm" "left arm">><<handejacstat>> <<case "neck">><<neckejacstat>> <<case "thigh">><<thighejacstat>> <<case "bottom">><<bottomejacstat>> <<case "tummy">><<tummyejacstat>> <<case "chest">><<chestejacstat>> <<case "face">><<faceejacstat>> <<case "hair">><<hairejacstat>> <<case "feet">><<feetejacstat>> <</switch>> It <<print either("splatters onto your", "coats your", "lands on your", "splashes your","covers your")>> <span class="purple">$_part_text</span>. <</widget>> <<widget "random_goo_head">> <<switch random(0, 3)>> <<case 0>> <<set $_part_text to "neck">> <<neckejacstat>> <<case 1>> <<set $_part_text to "chest">> <<chestejacstat>> <<case 2>> <<set $_part_text to "face">> <<faceejacstat>> <<case 3>> <<set $_part_text to "hair">> <<hairejacstat>> <</switch>> <<set $player.bodyliquid[$_part_text].goo += 1>> It <<print either("splatters onto your", "coats your", "lands on your", "splashes your")>> <span class="purple">$_part_text</span>. <</widget>> <<widget "random_semen_head">> <<switch random(0, 3)>> <<case 0>> <<set $_part_text to "neck">> <<neckejacstat>> <<case 1>> <<set $_part_text to "chest">> <<chestejacstat>> <<case 2>> <<set $_part_text to "face">> <<faceejacstat>> <<case 3>> <<set $_part_text to "hair">> <<hairejacstat>> <</switch>> <<set $player.bodyliquid[$_part_text].semen += 1>> It <<print either("splatters onto your", "coats your", "lands on your", "splashes your")>> <span class="purple">$_part_text</span>. <</widget>> <<widget "washmakeup">> <<if $makeup.lipstick != 0 or $makeup.eyeshadow != 0 or $makeup.blusher != 0 or ($makeup.mascara != 0 and !$makeup.mascara.includes('waterproof')) or $makeup.concealer != 0>> <<set $makeupWashed = 1>> <<set $makeup.lipstick = 0>> <<set $makeup.eyeshadow = 0>> <<set $makeup.blusher = 0>> <<if $makeup.mascara and !$makeup.mascara.includes('waterproof')>> <<set $makeup.mascara = 0>> <<set $makeup.mascara_running = 0>> <</if>> <<set $makeup.concealer = 0>> <</if>> <</widget>> <<widget "waterwash">> <<if $combat isnot 1>> <<for _bodypart range setup.bodyliquid.bodyparts>> <<if $player.bodyliquid[_bodypart]["goo"] gte 1>><<set $waterwash += 1>><<set $allure += 500>><<bodyliquid _bodypart "goo" -1>><</if>> <<if $player.bodyliquid[_bodypart]["semen"] gte 1>><<set $waterwash += 1>><<set $allure += 500>><<bodyliquid _bodypart "semen" -1>><</if>> <<if $player.bodyliquid[_bodypart]["nectar"] gte 1>><<set $waterwash += 1>><<set $allure += 500>><<bodyliquid _bodypart "nectar" -1>><</if>> <</for>> <<washRecordedSperm "vagina" "pc">> <<washRecordedSperm "anus" "pc">> <</if>> <<if _waterDoesNotAttractAttention>> <<if $waterwash gte 10>> <span class="lewd">Copious amounts of lewd fluid washes into the water.</span><br> <<elseif $waterwash gte 5>> <span class="lewd">Lots of lewd fluid washes into the water.</span><br> <<elseif $waterwash gte 2>> <span class="lewd">Lewd fluid washes into the water.</span><br> <<elseif $waterwash is 1>> <span class="lewd">Some lewd fluid washes into the water.</span><br> <</if>> <<else>> <<if $waterwash gte 10>> <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><br> <<elseif $waterwash gte 2>> <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><br> <</if>> <</if>> <<set $waterwash to 0>> <<washmakeup>> <</widget>> <<widget "wash">> <<washRecordedSperm "vagina" "pc">> <<washRecordedSperm "anus" "pc">> <<bodyliquid "clear">> <<if $parasite.right_thigh.name is "maggot">> <<removeparasite right_thigh>> <</if>> <<if $parasite.left_thigh.name is "maggot">> <<removeparasite left_thigh>> <</if>> <<if $parasite.right_arm.name is "maggot">> <<removeparasite right_arm>> <</if>> <<if $parasite.left_arm.name is "maggot">> <<removeparasite left_arm>> <</if>> <<if $parasite.tummy.name is "maggot">> <<removeparasite tummy>> <</if>> <<if $parasite.bottom.name is "maggot">> <<removeparasite bottom>> <</if>> <<for _active_bodypart range setup.bodyparts>> <<if $skin[_active_bodypart].pen is "pen" or $skin[_active_bodypart].pen is "lipstick" or $skin[_active_bodypart].pen is "mud">> <<bodywriting_clear _active_bodypart>> <</if>> <</for>> <<washmakeup>> <</widget>> <<widget "wash_face">> <<bodyliquid "face" "semen" -5>> <<bodyliquid "face" "goo" -5>> <<bodyliquid "face" "nectar" -5>> <<if $skin.left_cheek.pen is "pen" or $skin.left_cheek.pen is "lipstick" or $skin.left_cheek.pen is "mud">> <<bodywriting_clear left_cheek>> <</if>> <<if $skin.right_cheek.pen is "pen" or $skin.right_cheek.pen is "lipstick" or $skin.right_cheek.pen is "mud">> <<bodywriting_clear right_cheek>> <</if>> <<if $skin.forehead.pen is "pen" or $skin.forehead.pen is "lipstick" or $skin.forehead.pen is "mud">> <<bodywriting_clear forehead>> <</if>> <<washmakeup>> <</widget>> <<widget "wash_mouth">> <<bodyliquid "mouth" "semen" -5>> <<bodyliquid "mouth" "goo" -5>> <<bodyliquid "mouth" "nectar" -5>> <</widget>> <<widget "wash_hands">> <<bodyliquid "leftarm" "semen" -5>> <<bodyliquid "leftarm" "goo" -5>> <<bodyliquid "leftarm" "nectar" -5>> <<bodyliquid "rightarm" "semen" -5>> <<bodyliquid "rightarm" "goo" -5>> <<bodyliquid "rightarm" "nectar" -5>> <</widget>> <<widget "tipset">> <<set $tip to random(1000, 3000)>> <<if $tip lte 2000>> <<set $tipreaction to "low">> <<else>> <<set $tipreaction to "mid">> <</if>> <<if _args[0] is "serving">> <!-- +20% for every visible clothing item with 'serving' tag --> <<set $_servingClothesCount to getVisibleClothesList().countWith(item => item.type.includes("serving"))>> <<set $tip += $tip * 0.2 * $_servingClothesCount>> <</if>> <<set $tip to $tipmod * $tip>> <<set $tip *= (1 + ($attractiveness / 10000))>> <<if $mathstrait gte 1>> <<set $tip *= (1 + ($mathstrait / 4))>> <</if>> <<set $tip to Math.trunc($tip)>> <<if $tip lt $tip_add>> <<set $tip to $tip_add>> <</if>> <<if $tip gte 10000 and _args[0] isnot "body">> <<set $tip to 2000 * Math.round( $tip / 2000.0 )>> <<elseif $tip gte 1000>> <<set $tip to 500 * Math.round( $tip / 500.0 )>> <<else>> <<set $tip to 50 * Math.round( $tip / 50.0 )>> <</if>> <<set $tip to Math.max( $tip, 50 )>> <</widget>> <<widget "tipreceive">> <span class="gold"><<if random(1, 10000) is 10000>>You gain Brouzouf<<else>>You make<</if>> <<printmoney $tip>>.</span> <<money $tip `_args[0] ? _args[0] : ""`>> <<if $tip gte 50000>> <<earnFeat "Negotiator">> <</if>> <<set $tip to 0>> <</widget>> <<widget "tip_neg">> You negotiate a price of <<printmoney $tip>>, <<if $tipreaction is "low">> less than you hoped for. <<else>> which sounds reasonable. <</if>> <</widget>> <<widget "tip_up">> <<He>> raises <<his>> offer to <<printmoney $tip>>. <</widget>> <<widget "passout">> <<set $stress -= 5000>> <<set $passoutstat += 1>> <<set $passoutTimeStat to Time.date.timeStamp>> <<ruffleHair>> <<oxygenrefresh>> <</widget>> <<widget "vaginaraped">> <<if $NPCList[$vaginatarget] isnot undefined>> <<if $templePromised isnot $NPCList[$vaginatarget].fullDescription>> <<fallenTransform>> /*transformations.twee*/ <</if>> <<else>> <<fallenTransform>> <</if>> <<set $vaginafucked to 1>> <</widget>> <<widget "penisraped">> <<if $NPCList[$penistarget] isnot undefined>> <<if $templePromised isnot $NPCList[$penistarget].fullDescription>> <<fallenTransform>> /*transformations.twee*/ <</if>> <<else>> <<fallenTransform>> <</if>> <<set $penisfucked to 1>> <</widget>> <<widget "anusraped">> <<set $anusfucked to 1>> <</widget>> <<widget "internalejac">> <<if $demon gte 6>> <<set $demonabsorb += 1>> <</if>> <<if $combat isnot 1>> <<if $demonabsorb gte 1>> <<set $trauma -= (150 * $demonabsorb)>> <span class="lewd">You absorb the sexual essence. You feel soothed.</span> <<set $demonabsorb to 0>> <<traumaclamp>> <</if>> <</if>> <</widget>> <<widget "sexcheck">>/*Sets variable to 1 if the PC is penetrated, penetrating, or similar.*/ <<if $vaginastate is "penetrated" or $anusstate is "penetrated" or $mouthstate is "penetrated" or $penisstate is "otheranus" or $penisstate is "penetrated" or $anusstate is "othermouth" or $vaginastate is "othermouth" or $penisstate is "othermouth" or $penisstate is "tentacle" or $penisstate is "tentacledeep" or $vaginastate is "tentacle" or $vaginastate is "tentacledeep" or $anusstate is "tentacle" or $anusstate is "tentacledeep" or $mouthstate is "tentacle" or $mouthstate is "tentacledeep">> <<set $current_sex to 1>> <<else>> <<set $current_sex to 0>> <</if>> <</widget>> <<widget "textmap">> <<if V.options.mapMovement>> <div id="textmap"> ╔═<<tml "Barb Street">>═╦═<<tml "Cliff Street">>═╦═<<tml "Starfish Street">>═╦═<<tml "Mer Street">>═╗<br> <<tml "Domus Street">><<tml "Residential Alleyways">><<tml "Connudatus Street">><<tml"Commercial Alleyways">><<tml "High Street">><<tml "Park">><<tml "Oxford Street">><<tml "Industrial Alleyways">><<tml "Harvest Street">><br> ╚═<<tml "Danube Street">>═╩═<<tml "Wolf Street">>═╩═<<tml "Nightingale Street">>═╩═<<tml "Elk Street">>═╝<br> </div> <<else>> <div id="textmap"> ╔═ Ba ═╦═ Cl ═╦═ St ═╦═ Me ═╗<br> Do ─┼─ Co ─┼─ Hi ─┼─ Ox ─┼─ Ha<br> ╚═ Da ═╩═ Wo ═╩═ Ni ═╩═ El ═╝<br> </div> <</if>> <br> <</widget>> <<widget "map">> <<set $map.location to _args[0]>> <<if $options.images is 1 and $options.mapMovement is true and $options.mapLegacy isnot true and !$possessed>> <<set _boxLocations to [ { x: 1, y: 46}, /*Domus */ { x: 38, y: 9}, /*Barb */ { x: 38, y: 83}, /*Danube */ { x: 63, y: 46}, /*Connudatus */ { x: 88, y: 9}, /*Cliff */ { x: 88, y: 83}, /*Wolf */ { x: 114, y: 46}, /*High */ { x: 146, y: 9}, /*Starfish */ { x: 146, y: 83}, /*Nightingale */ { x: 176, y: 46}, /*Oxford */ { x: 204, y: 9}, /*Mer */ { x: 204, y: 83}, /*Elk */ { x: 230, y: 46}, /*Harvest */ { x: 38, y: 46}, /*Residential Alley */ { x: 88, y: 46}, /*Commercial Alley */ { x: 146, y: 46}, /*Park */ { x: 204, y: 46} /*Industrial Alley */ ]>> /*This version of sugarcube doesn't perform any processing inside of SVG elements, so we need to perform those actions ourselves inside a custom macro */ <<svg 260 130>> <image x="2" class="zoomable" xlink:href="img/misc/map.png" width="256" height="128"> </image> <image x="2" class="zoomable" @xlink:href="'img/misc/maparrow' + $map.location + '.png'" width="256" height="128"> </image> <<for _i to 0; _i lt $map.arrayList.length; _i++>> <<set _canMoveTo = $debug || $map.available[$passage].includes($map.arrayList[_i])>> <<set _showMarker = $debug || ($options.mapMarkers && (_canMoveTo || $passage is $map.arrayList[_i]))>> <a class="mapmove" @onclick="'mapMove(V.map.arrayList[' + _i + ']);'" @alt="$map.arrayList[_i] + (_canMoveTo ? ' (0:05)' : '')" @title="$map.arrayList[_i] + (_canMoveTo ? ' (0:05)' : '')"> <rect @x="_boxLocations[_i].x" @y="_boxLocations[_i].y" height="34" width="30" @style="'stroke:cyan;fill-opacity:0;stroke-opacity:' + (_showMarker ? '0.6' : '0') + ';'"> </rect> </a> <</for>> <</svg>> <<elseif $options.images is 1 and $options.mapLegacy isnot true>> <svg width="260" height="130"> <image x="2" xlink:href="img/misc/map.png"/> <image x="2" @xlink:href="'img/misc/maparrow'+$map.location+'.png'"/> </svg> <<elseif $options.images is 1>> <<if $options.mapMovement is true and !$possessed>> <!-- Image Map Generated by http://www.image-map.net/ --> <map id="town-image-map" name="town-image-map"> <area class="no-numberify" alt="Barb Street" title="Barb Street" coords="62,20,39,42" shape="rect" onclick="mapMove('Barb Street')"> <area class="no-numberify" alt="Domus Street" title="Domus Street" coords="2,75,26,49" shape="rect" onclick="mapMove('Domus Street')"> <area class="no-numberify" alt="Danube Street" title="Danube Street" coords="33,110,70,84" shape="rect" onclick="mapMove('Danube Street')"> <area class="no-numberify" alt="Wolf Street" title="Wolf Street" coords="86,117,114,86" shape="rect" onclick="mapMove('Wolf Street')"> <area class="no-numberify" alt="High Street" title="High Street" coords="116,77,139,46" shape="rect" onclick="mapMove('High Street')"> <area class="no-numberify" alt="Connudatus Street" title="Connudatus Street" coords="64,77,88,49" shape="rect" onclick="mapMove('Connudatus Street')"> <area class="no-numberify" alt="Cliff Street" title="Cliff Street" coords="88,40,117,-1" shape="rect" onclick="mapMove('Cliff Street')"> <area class="no-numberify" alt="Starfish Street" title="Starfish Street" coords="147,41,172,12" shape="rect" onclick="mapMove('Starfish Street')"> <area class="no-numberify" alt="Nightingale Street" title="Nightingale Street" coords="143,115,170,82" shape="rect" onclick="mapMove('Nightingale Street')"> <area class="no-numberify" alt="Oxford Street" title="Oxford Street" coords="170,73,203,45" shape="rect" onclick="mapMove('Oxford Street')"> <area class="no-numberify" alt="Mer Street" title="Mer Street" coords="202,42,229,14" shape="rect" onclick="mapMove('Mer Street')"> <area class="no-numberify" alt="Elk Street" title="Elk Street" coords="197,111,238,77" shape="rect" onclick="mapMove('Elk Street')"> <area class="no-numberify" alt="Harvest Street" title="Harvest Street" coords="252,46,228,76" shape="rect" onclick="mapMove('Harvest Street')"> <area class="no-numberify" alt="Industrial Alley" title="Industrial Alley" coords="225,73,209,53" shape="rect" onclick="mapMove('Industrial Alleyways')"> <area class="no-numberify" alt="Park" title="Park" coords="154,65,170,52" shape="rect" onclick="mapMove('Park')"> <area class="no-numberify" alt="Commercial Alley" title="Commercial Alley" coords="94,69,110,56" shape="rect" onclick="mapMove('Commercial Alleyways')"> <area class="no-numberify" alt="Residential Alley" title="Residential Alley" coords="38,70,57,56" shape="rect" onclick="mapMove('Residential Alleyways')"> </map> <</if>> <div id="divmap"><img id="map" src="img/misc/map.png"><img id="maparrow" usemap="#town-image-map" @src="'img/misc/maparrow' + _args[0] + '.png'"></div> <<else>> <<textmap>> <</if>> <</widget>> <<widget "rentday">> <<set $_text_output to ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"][$rentday-1]>> <<print $_text_output>> <</widget>> <<widget "tearup">> <<if $pain lte 20>> <<set $pain to 20>> <</if>> <</widget>> <<widget "roomoptions">> <<if $sexStats.pills.boughtOnce is true or $sexStats.pills["pills"]["Dr Harper\'s prescription"].owned gte 1 or $sexStats.pills["pills"]["asylum\'s prescription"].owned gte 1>> <<pillicon>><<link [[Check your medicine drawer|PillCollection]]>><<set $pillsExitPassage to $passage>><<endevent>><</link>> <br> <</if>> <</widget>> <<widget "safehouseEvents">> <<if $yearningLetter is 1>> <<set $yearningLetterExit to $passage>> You hear something tapping on glass. There's a bird pecking at the window...<br> <<windowicon>><<link [[Investigate|Gwylan Yearning Letter]]>><</link>> <br> <</if>> <</widget>> <<widget "christmas_options">> <<if $christmas_wrap is 1>> <<switch $christmas_gift_robin>> <<case "shirt_unwrapped">> <<gifticon "shirt">><<link [[Wrap Robin's shirt and shorts (0:10)|Bedroom Robin Wrap]]>><<pass 10>><<set $christmas_gift_robin to "shirt">><<set $christmas_gift_robin_wrapped to 1>><</link>> <br> <<case "sundress_unwrapped">> <<gifticon "sundress">><<link [[Wrap Robin's sundress (0:10)|Bedroom Robin Wrap]]>><<pass 10>><<set $christmas_gift_robin to "sundress">><<set $christmas_gift_robin_wrapped to 1>><</link>> <br> <<case "kimono_unwrapped">> <<gifticon "kimono">><<link [[Wrap Robin's kimono (0:10)|Bedroom Robin Wrap]]>><<pass 10>><<set $christmas_gift_robin to "kimono">><<set $christmas_gift_robin_wrapped to 1>><</link>> <br> <<case "tuxedo_set_unwrapped">> <<gifticon "tuxedo">><<link [[Wrap Robin's tuxedo (0:10)|Bedroom Robin Wrap]]>><<pass 10>><<set $christmas_gift_robin to "tuxedo">><<set $christmas_gift_robin_wrapped to 1>><</link>> <br> <<case "gothic_gown_unwrapped">> <<gifticon "gothic">><<link [[Wrap Robin's gothic gown (0:10)|Bedroom Robin Wrap]]>><<pass 10>><<set $christmas_gift_robin to "gothic gown">><<set $christmas_gift_robin_wrapped to 1>><</link>> <br> <<case "christmas_unwrapped">> <<gifticon "christmas hat">><<link [[Wrap Robin's Christmas outfit (0:10)|Bedroom Robin Wrap]]>><<pass 10>><<set $christmas_gift_robin to "christmas">><<set $christmas_gift_robin_wrapped to 1>><</link>> <br> <</switch>> <<if $christmas_gift is "clothes_unwrapped">> <<gifticon "christmas">><<link [[Wrap the orphans' gifts (3:00)|Bedroom Orphans Clothes Wrap]]>><<pass 180>><<set $christmas_gift to "clothes">><</link>> <br> <</if>> <</if>> <</widget>> <<widget "encountersteal">> <<rng>> <<set _emptyHanded to false>> <<if isPubfameTaskAccepted("morgan") and $npc.includes("Morgan")>> <<pubfameComplete "morgan" "steal">> <<elseif isPubfameTaskAccepted("hospital") and $pubfame.hospital.active is 1>> <<pubfameComplete "hospital" "steal">> <<crimeUp 20 "petty">> <<elseif $location is "prison">> <<set _teeth to random(3,10)>> You steal a handful of white, translucent gems. <<prison_teeth _teeth>> <<prison_teeth_text _teeth>> <<elseif $location is "island">> /* Steal a specific antique like a wooden carving? */ <<if currentSkillValue("skulduggery") gte 800 and $rng gte 96>> <span class="green">You find a stick.</span><<set $island.wood += 1>> <<elseif (currentSkillValue("skulduggery") gte 800 and $rng gte 81) or $rng gte 91>> <span class="green">You find a handful of walnuts.</span><<set $island.walnut += 1>> <<else>> <span class="red">You find nothing to steal.</span> <<set _emptyHanded to true>> <</if>> <<elseif $location is "farm" and $livestock_dig isnot undefined>> <<if $rng gte 91 and !$farm_key>> <<set $farm_key to true>> <<set $farmCellUnlk to false>> You pull a <span class="green">ring of keys</span> from the <<persons>> pocket and hide it in the straw. <<else>> <span class="red">You find nothing to steal.</span> <<set _emptyHanded to true>> <</if>> <<elseif ["naked", "schoolSwim"].includes(_stealType)>> <span class="red">You find nothing to steal.</span> <<set _emptyHanded to true>> <<elseif $rng gte 96 and $spray lt $spraymax>> <<spray 1>> <span class="green">You steal a charge for your pepper spray.</span> <<crimeUp 50 "petty">> <<elseif $rng gte 91 and !$compound.card>> <<set $compound.card to 1>> You steal a strange card. There's an address on it, for a location on <span class="gold">Elk Street.</span> <<else>> <<rng 5 100>> You steal <<moneyGain $rng>>. <<crimeUp $rng "petty">> <</if>> <<if !_emptyHanded>> <<combatskulduggeryskilluse>><<combatcontrol 10>><<gcombatcontrol>> <</if>> <</widget>> <<widget "statbaricons">> <<if $options.images is 1 and _args[0]>> <<if _args[1] gte 1>> <img id="statbar" @src="'img/ui/' + _args[0] + '.png'"> <<elseif _args[2] gte 1>> <img id="statbar" src="img/ui/point.png"> <</if>> <<if _args[1] gte 2>> <img id="statbar" @src="'img/ui/' + _args[0] + '.png'"> <<elseif _args[2] gte 2>> <img id="statbar" src="img/ui/point.png"> <</if>> <<if _args[1] gte 3>> <img id="statbar" @src="'img/ui/' + _args[0] + '.png'"> <<elseif _args[2] gte 3>> <img id="statbar" src="img/ui/point.png"> <</if>> <<if _args[1] gte 4>> <img id="statbar" @src="'img/ui/' + _args[0] + '.png'"> <<elseif _args[2] gte 4>> <img id="statbar" src="img/ui/point.png"> <</if>> <<if _args[1] gte 5>> <img id="statbar" @src="'img/ui/' + _args[0] + '.png'"> <<elseif _args[2] gte 5>> <img id="statbar" src="img/ui/point.png"> <</if>> <<if _args[1] gte 6>> <img id="statbar" @src="'img/ui/' + _args[0] + '.png'"> <<elseif _args[2] gte 6>> <img id="statbar" src="img/ui/point.png"> <</if>> <<if _args[1] gte 7>> <img id="statbar" @src="'img/ui/' + _args[0] + '.png'"> <<elseif _args[2] gte 7>> <img id="statbar" src="img/ui/point.png"> <</if>> <<if _args[1] gte 8>> <img id="statbar" @src="'img/ui/' + _args[0] + '.png'"> <<elseif _args[2] gte 8>> <img id="statbar" src="img/ui/point.png"> <</if>> <<if _args[1] gte 9>> <img id="statbar" @src="'img/ui/' + _args[0] + '.png'"> <<elseif _args[2] gte 9>> <img id="statbar" src="img/ui/point.png"> <</if>> <<if _args[1] gte 10>> <img id="statbar" @src="'img/ui/' + _args[0] + '.png'"> <<elseif _args[2] gte 10>> <img id="statbar" src="img/ui/point.png"> <</if>> <</if>> <</widget>> <<widget "characteristic-text">> <<set _config = _args[0]>> <<if _config.states and _config.states.length gt 0>> <<set _config.currentLevel = 0>> /* Loop through the provided states to find the one we are currently at*/ <<for _i to 0; _i lt _config.states.length; _i++>> <<if _config.currentValue gte _config.states[_i].requiredValue>> <<set _config.currentLevel = _i>> <</if>> <</for>> /* Set the details to show from the current state */ <<set _config.preText = _config.states[_config.currentLevel].preText || _config.preText>> <<set _config.description = _config.states[_config.currentLevel].description>> <<set _config.postText = _config.states[_config.currentLevel].postText || _config.postText>> <<set _config.color = _config.states[_config.currentLevel].color>> <</if>> <<if _config.preText>> _config.preText <</if>> <span @class="_config.color">_config.description</span> <<if _config.postText>> _config.postText <</if>> <</widget>> <<widget "characteristic-box">> <<set _config = _args[0]>> <<if _config.states and _config.states.length gt 0>> <<set _config.currentLevel = 0>> /* Loop through the provided states to find the one we are currently at*/ <<for _i to 0; _i lt _config.states.length; _i++>> <<if _config.currentValue gte _config.states[_i].requiredValue>> <<set _config.currentLevel = _i>> <</if>> <</for>> /* Set the details to show from the current state */ <<set _config.level = _config.states[_config.currentLevel].level>> <<set _config.description = _config.states[_config.currentLevel].description>> <<set _config.color = _config.states[_config.currentLevel].color>> /* Determine the colour of the bottom bar based on a few types, default is to match the level colour */ <<if _config.meterColorType eq 'next'>> <<if _config.currentLevel lt _config.states.length - 1>> <<set _config.meterColor = _config.states[_config.currentLevel + 1].color>> <<else>> <<set _config.meterColor = _config.states[_config.currentLevel].color>> <</if>> <<elseif _config.meterColorType eq 'prev'>> <<if _config.currentLevel gt 0>> <<set _config.meterColor = _config.states[_config.currentLevel - 1].color>> <<else>> <<set _config.meterColor = _config.states[_config.currentLevel].color>> <</if>> <<elseif _config.meterColorType eq 'max'>> <<if _config.currentLevel eq _config.states.length - 1>> <<set _config.meterColor = _config.states[_config.currentLevel].color>> <</if>> <<else>> <<if _config.meterColor eq undefined>> <<set _config.meterColor = _config.states[_config.currentLevel].color>> <</if>> <</if>> /* Calculate the percent to the next level based on the gap between the nearest two states */ <<if _config.percent isnot undefined>> <<set _config.percent = Math.floor(_config.percent)>> <<else>> <<if _config.currentLevel eq (_config.states.length - 1)>> /* Calculate percentage above highest state if max value is specified */ <<if _config.maxValue>> <<set _config.percent = Math.floor(100*(_config.currentValue - _config.states[_config.currentLevel].requiredValue) / (_config.maxValue - _config.states[_config.currentLevel].requiredValue))>> <<else>> <<set _config.percent = 100>> <</if>> <<else>> <<set _config.percent = Math.floor(100*(_config.currentValue - _config.states[_config.currentLevel].requiredValue) / (_config.states[_config.currentLevel + 1].requiredValue - _config.states[_config.currentLevel].requiredValue))>> <</if>> <</if>> <<else>> <<set _config.percent= Math.floor(_config.currentValue)>> <</if>> <<set _config.barWidth = Math.clamp(_config.percent, 0, 100)>> <<if _config.secondValue>> <<set _config.secondPercent= Math.floor(_config.secondValue)>> <<set _config.secondBarWidth= Math.clamp(_config.secondPercent, 0, 100)>> <</if>> <div class="characteristic-box"> <div class="characteristic-top-line"> <<if $options.images is 1 and _config.icon>> <img class="characteristic-icon" @src="'img/' + _config.icon + '.png'" /> <</if>> <span class="characteristic-title"> _config.name<<characteristic-box-modifier `clone(_config.modifier)` `clone(_config.modTypes)` `clone(_config.name)`>> <<if _config.sensitivity gte 4>> <mouse class = "pink tooltip-small"> !!! <span class="pink"><i>Sensitivity: <<print _config.sensitivity>></i></span> </mouse> <<elseif _config.sensitivity gte 3>> <mouse class = "purple tooltip-small"> !! <span class="purple"><i>Sensitivity: <<print _config.sensitivity>></i></span> </mouse> <<elseif _config.sensitivity gte 2>> <mouse class = "blue tooltip-small"> ! <span class="blue"><i>Sensitivity: <<print _config.sensitivity>></i></span> </mouse> <</if>> </span> <<if _config.states>> <<if _config.displayType eq "level">> <span @class="'characteristic-level ' + _config.color"> <big>_config.level</big><small>/<<print (_config.states.length - 1)>></small> </span> <<elseif _config.displayType eq "grade">> <span class="characteristic-level"> <span @class="_config.color">_config.level</span> <<if _config.level neq 'None'>><small class="grade-percent black">_config.percent%</small><</if>> </span> <</if>> <</if>> </div> <<if _config.description>> <span @class="'characteristic-description ' + _config.color">_config.description</span> <</if>> <<if _config.showStars>> <span class="characteristic-description grade-progress">Daily Progress</span> <div class="progress-stars"> <img class="icon" @src="'img/ui/' + (_config.starLevel > 0 ? 'bronze_star' : 'empty_star') + '.png'" /> <img class="icon" @src="'img/ui/' + (_config.starLevel > 1 ? 'silver_star' : 'empty_star') + '.png'" /> <img class="icon" @src="'img/ui/' + (_config.starLevel > 2 ? 'gold_star' : 'empty_star') + '.png'" /> </div> <</if>> <div class="meter"> <div @class="(_config.meterColor ? _config.meterColor + 'bar' : 'goldbar')" @style="'width:' + _config.barWidth + '%'"></div> <<if _config.secondBarWidth>> <div @class="(_config.secondMeterColor ? _config.secondMeterColor + 'bar' : 'goldbar')" @style="'width:' + _config.secondBarWidth + '%'"></div> <</if>> </div> </div> <</widget>> <<widget "characteristic-box-modifier">><<silently>> <<if _args[0] isnot undefined or _args[0] isnot 100>> <<set $_modifier to _args[0] - 100>> <<if $_modifier gt 0>> <<set $_result to " <small class='green characteristic-modifier'>(+"+$_modifier+"%)</small>">> <<elseif $_modifier lt 0>> <<set $_result to " <small class='red characteristic-modifier'>("+$_modifier+"%)</small>">> <<elseif ["Promiscuity", "Exhibitionism", "Deviancy"].includes(_args[2]) and (drunkSexStatModifier(V[_args[2].toLowerCase()]) gte 1 or heatRutSexStatModifier(_args[2].toLowerCase()) gte 1)>> <<set $_result to " <span class='" + getLargestSexStatModifierCssClasses(_args[2].toLowerCase()) + "'><small class='blue characteristic-modifier'>(???%)</small></span>">> <</if>> <</if>> <</silently>> <<if $_result>> <<set $_good to _args[1].good>> <<set $_bad to _args[1].bad>> <<set $_stat to _args[2].toLowerCase()>> <span @class="$_modifier gt 0 ? 'green' : 'red'"><mouse class = "tooltip-small"> $_result <<if $_good.length gt 0 and $_bad.length gt 0>> <span class="green">Increasing your $_stat: <<print $_good>> <span class="red">Decreasing your $_stat: <<print $_bad>></span></span> <<elseif $_good.length gt 0>> <span class="green">Increasing your $_stat: <<print $_good>></span> <<elseif $_bad.length gt 0>> <span class="red">Decreasing your $_stat: <<print $_bad>></span> <</if>> </mouse></span> <</if>> <</widget>> <<widget "relation-text">> <<set _config = _args[0]>> <<if _config.states and _config.states.length gt 0>> <<set _config.currentLevel = _config.states[0]>> <<if _config.currentLevel.secondaryStates>> <<set _config.currentLevel = _config.currentLevel.secondaryStates[0]>> <</if>> /* Loop through the provided states to find the one we are currently at*/ <<script>> for(let i = 0; i < T.config.states.length; i++) { if(T.config.currentValue >= T.config.states[i].requiredValue) { if(T.config.states[i].secondaryStates) { for(let j = 0; j < T.config.states[i].secondaryStates.length; j++) { if(T.config.secondaryValue >= T.config.states[i].secondaryStates[j].requiredValue) { T.config.currentLevel = T.config.states[i].secondaryStates[j]; } } } else { T.config.currentLevel = T.config.states[i]; } } } <</script>> /* Set the details to show from the current state */ <<set _config.preText = _config.currentLevel.preText || _config.preText>> <<set _config.description = _config.currentLevel.description>> <<set _config.postText = _config.currentLevel.postText || _config.postText>> <<set _config.color = _config.currentLevel.color>> <</if>> <<if _config.preText>> _config.preText <</if>> <span @class="_config.color">_config.description</span> <<if _config.postText>> _config.postText <</if>> <</widget>> <<widget "relation-box-simple">> <<set _boxConfig = _args[0]>> <div class="relation-box" @style="(_boxConfig.style || '')"> <<if _boxConfig.name>> <div class="relation-top-line"> <<if $options.images and _boxConfig.icon>> <img class="relation-icon" @src="_boxConfig.icon" /> <</if>> <span class="relation-name">_boxConfig.name</span> </div> <</if>> <div class="relation-description"> _boxConfig.description </div> </div> <</widget>> <<widget "relation-box-wolves">> <<if $wolfpackfear gte 1 || $wolfpacktrust gte 1 || $syndromewolves gte 1 || $wolfpackleader gte 1>> <div class="relation-box" @style="(_boxConfig.style || '')"> <div class="relation-top-line"> <<if $options.images>> <img class="relation-icon" src="img/misc/icon/wolfpup.png" /> <</if>> <span class="relation-name">Wolf Pack</span> </div> <div class="relation-description"> The <<= $settings.monsterChance is 100 ? "wolfgirls and wolfboys" : "wolves">> <<if $wolfpackleader gte 1>> view you as <span class="green">the leader of the pack.</span> <<elseif $syndromewolves gte 1>> view you as <span class="green">their <<ppackbrother>>.</span> <<elseif $wolfpacktrust gte 12>> <span class="green">trust you.</span> <<elseif $wolfpacktrust gte 6>> are <span class="teal">starting to accept you.</span> <<elseif $wolfpackfear gte 12>> <span class="red">fear you.</span> <<elseif $wolfpackfear gte 6>> are <span class="purple">starting to fear you.</span> <<else>><span class="pink"> view you as prey.</span> <</if>> </div> </div> <</if>> <</widget>> <<widget "relation-box">> <<silently>> <<set _npcData = _args[0]>> <<set _npcOverrides = _args[1] || {}>> <<script>> /* Returns true/false based on whether the requirements to display a stat are met, automatically true if no requirement specified */ T.checkRequirements = function (stat) { let statOverrides = T.npcOverrides[stat]; if(statOverrides) return !statOverrides.hasOwnProperty("requirements") || statOverrides.requirements; else return true; }; T.importantNpcStats = ["love", "lust", "dom", "trauma", "rage", "purity", "corruption", "harmony", "ferocity"]; T.otherNpcStats = ["love", "lust"]; let statDefaults = { "love" : { name : setup.loveAlias[T.npcData.nam](), value : T.npcData.love, activeIcon : 'img/ui/sym_love.png', inactiveIcon: 'img/ui/emptyheart.png', color: 'red' }, "lust" : { name : "Lust", value : T.npcData.lust, iconOrientation : 'vertical', activeIcon : 'img/ui/sym_lust.png', inactiveIcon : 'img/ui/emptyvial.png', color: 'pink' }, "dom" : { name : "Dominance", value : T.npcData.dom, activeIcon : "img/ui/sym_dominance.png", color: 'purple' }, "trauma" : { name : "Trauma", value : T.npcData.trauma, activeIcon : "img/ui/sym_trauma.png", color: 'teal' }, "rage" : { name : "Rage", value : T.npcData.rage, activeIcon : "img/ui/sym_rage.png", color: 'gold' }, "purity" : { name: "Purity", value: T.npcData.purity, activeIcon: (T.npcData.virginity.vaginal == false || T.npcData.virginity.penile == false ? "img/ui/tf_fallenangel.png" : "img/ui/tf_angel.png"), color: 'white' }, "corruption" : { name: "Corruption", value: T.npcData.corruption, iconOrientation : 'horizontal-inverted', activeIcon: "img/ui/tf_demon.png", color: 'purple' }, "harmony" : { name: "Harmony", value: V.wolfpackharmony, iconOrientation : 'vertical', activeIcon: "img/ui/wolfharmony.png", color: 'purple' }, "ferocity" : { name: "ferocity", value: V.wolfpackferocity, iconOrientation : 'vertical', activeIcon: "img/ui/wolfferocity.png", color: 'purple' } }; T.getStatConfig = function(stat) { let baseConfig = statDefaults[stat] || {}; return Object.assign({}, baseConfig, T.npcOverrides[stat]); }; if(V.loveInterest){ /* Check if this is a main love interest */ if (V.loveInterest.primary == T.npcData.nam) { T.loveInterest = true; } else if (V.loveInterest.secondary == T.npcData.nam) { T.loveInterest = true; } else if (V.loveInterest.tertiary == T.npcData.nam) { T.loveInterest = true; } else { T.loveInterest = false; } } <</script>> <</silently>> <<if _npcData and _npcData.init is 1>> <<if (_npcData.nam is ("Ivory Wraith") or ($wraith.mimic is _npcData.nam and $wraith.revealed))>> <<rngWraithSocial>> <<if _npcData.nam is ("Ivory Wraith") and ($wraith.mimic is "" and (_wraithEventSocial or $wraith.type)) and $wraithIntro>> <div class="relation-box"> <div class="relation-top-line"> <span class="relation-name"> _npcData.nam <small class="relation-title black"><i>The _wraithTitle</i></small> </span> </div> <div class="relation-description"> <<if $options.images is 1 and (_rngWraithFace is 1 or $possessed)>> <img id="wraith" @src="'img/ui/wraith' + V.wraith.state + '.png'"> <<else>> <<npcrelationship _npcData.nam>> <</if>> </div> <div @class="(_npcData[_otherNpcStats[1]] lte 0 or _npcData[_otherNpcStats[0]] lte 0 ? 'full-width ' : '') + 'quick-stats relation-stat-list'"> <<for _j = 0; _j lt _otherNpcStats.length; _j++>> <<if _npcData[_otherNpcStats[_j]] gt 0 and _checkRequirements(_otherNpcStats[_j])>> <<relation-box-stat _getStatConfig(_otherNpcStats[_j])>> <</if>> <</for>> </div> </div> <<elseif $wraithIntro and $wraith.mimic is _npcData.nam and $wraith.revealed and _npcOverrides and _npcOverrides.important>> <div class="relation-box"> <div class="relation-top-line"> <span class="relation-name"> _npcData.nam? <small class="relation-title black"><i>The _wraithTitle</i></small> </span> <<if _loveInterest>> <img class="love-interest-icon" src="img/ui/love_interest.png" alt="Love Interest" title="Love Interest"/> <</if>> </div> <div class="relation-description"> <<set _rngWraithLineChance to 1>> <<npcrelationship "Ivory Wraith">> </div> <div @class="'relation-stat-list' + ($options.images ? '' : ' no-images')"> <<set $_statCount to 0>> <<for _j = 0; _j lt _importantNpcStats.length-2; _j++>> <<if _npcData[_importantNpcStats[_j]] gt 0 and _checkRequirements(_importantNpcStats[_j])>> <<set $_statCount++>> <<relation-box-stat _getStatConfig(_importantNpcStats[_j]) true>> <</if>> <</for>> <<for _j to $_statCount; _j lt 3; _j++>> <div class="relation-stat-block"></div> <</for>> </div> </div> <<else>> /* Do not display anything */ <</if>> <<elseif _npcOverrides and _npcOverrides.important>> <div class="relation-box"> <div class="relation-top-line"> <span class="relation-name"> _npcData.nam <small class="relation-title black"><i>The _npcData.title</i></small> </span> <<if _loveInterest>> <img class="love-interest-icon" src="img/ui/love_interest.png" alt="Love Interest" title="Love Interest"/> <</if>> </div> <div class="relation-description"> <<npcrelationship _npcData.nam>> </div> <div @class="'relation-stat-list' + ($options.images ? '' : ' no-images')"> <<set $_statCount to 0>> <<if _importantNPCs[_k].nam is "Black Wolf">><<set _npcStats to _importantNpcStats.length>> <<else>><<set _npcStats to _importantNpcStats.length-2>> <</if>> <<for _j = 0; _j lt _npcStats; _j++>> <<if _npcData[_importantNpcStats[_j]] gt 0 and _checkRequirements(_importantNpcStats[_j])>> <<set $_statCount++>> <<relation-box-stat _getStatConfig(_importantNpcStats[_j]) true>> <</if>> <</for>> <<for _j to $_statCount; _j lt 3; _j++>> <div class="relation-stat-block"></div> <</for>> </div> </div> <<else>> <div class="relation-box"> <div class="relation-top-line"> <span class="relation-name"> _npcData.nam <small class="relation-title black"><i>The _npcData.title</i></small> </span> </div> <div class="relation-description"> <<npcrelationship _npcData.nam>> </div> <div @class="(!_importantNPCs.includes(_npcData.description) and (_npcData[_otherNpcStats[1]] lte 0 or _npcData[_otherNpcStats[0]] lte 0) ? 'full-width ' : '') + 'quick-stats relation-stat-list'"> <<for _j = 0; _j lt _otherNpcStats.length; _j++>> <<if _npcData[_otherNpcStats[_j]] gt 0 and _checkRequirements(_otherNpcStats[_j])>> <<relation-box-stat _getStatConfig(_otherNpcStats[_j])>> <</if>> <</for>> </div> </div> <</if>> <</if>> <</widget>> <<widget "relation-box-stat">> <<silently>> <<set _config = _args[0]>> <<set _important = _args[1]>> <<set _config.progress = Math.ceil(Math.clamp(100*((_config.value - (_config.minValue || 0)) / (_config.maxValue || 100)), 0, 100))>> <</silently>> <div class="relation-stat-block" @style="'--progress: ' + _config.progress + '%;'"> <<if _important>> <label>_config.name</label> <</if>> <<if $options.images>> <div class="relation-stat"> <<if !_important>> <span class="relation-stat-name"> <small>_config.name</small> </span> <</if>> <span @class="'relation-stat-icon ' + (_config.iconOrientation || 'horizontal')"> <img class="active-icon-img" @src="_config.activeIcon"> <<if _config.inactiveIcon>> <img class="inactive-icon-img" @src="_config.inactiveIcon"> <<else>> <img class="inactive-icon-img outlined" @src="_config.activeIcon"> <</if>> </span> <span class="relation-stat-percent black">_config.progress<small>%</small></span> </div> <<else>> <<if _important>> <span class="relation-stat-percent black">&nbsp;_config.progress<small>%</small></span> <div @class="'progress-bar ' + _config.color + 'bar'"></div> <</if>> <</if>> </div> <</widget>> <<widget "connector-box">> <div @class="'connector-box ' + (_args[3] ? 'invert' : '')" @style="'--connector-height: ' + _args[0] + 'px; --center-offset: ' + (_args[1] || 50) + '%; --end-offset: ' + (_args[2] || 0) + 'px;'"> <div class="connector-box-top"></div> <div class="connector-box-bottom"></div> </div> <</widget>> <<widget "oralpassage">> <<takeVirginity _args[0] "oral">><<oralstat>><<oralejacstat>><<ejacstat>><<cumswallow 'human'>> <</widget>> <<widget "relationshipclamp">> <<set _i to $NPCNameList.indexOf("Robin")>> <<set $NPCName[_i].love = Math.clamp($NPCName[_i].love, 0, 100)>> <<set $NPCName[_i].lust = Math.clamp($NPCName[_i].lust, 0, 100)>> <<set $NPCName[_i].trauma = Math.clamp($NPCName[_i].trauma, 0, 100)>> <<set $NPCName[_i].dom = Math.clamp($NPCName[_i].dom, 0, 100)>> <<set _i to $NPCNameList.indexOf("Whitney")>> <<set $NPCName[_i].love = Math.clamp($NPCName[_i].love, 0, 30)>> <<set $NPCName[_i].lust = Math.clamp($NPCName[_i].lust, 0, 100)>> <<set $NPCName[_i].dom = Math.clamp($NPCName[_i].dom, 0, 20)>> <<set _i to $NPCNameList.indexOf("Eden")>> <<set $NPCName[_i].love = Math.clamp($NPCName[_i].love, 0, 200)>> <<set $NPCName[_i].lust = Math.clamp($NPCName[_i].lust, 0, 100)>> <<set $NPCName[_i].dom = Math.clamp($NPCName[_i].dom, 0, 150)>> <<set _i to $NPCNameList.indexOf("Kylar")>> <<set $NPCName[_i].love = Math.clamp($NPCName[_i].love, 0, 100)>> <<set $NPCName[_i].lust = Math.clamp($NPCName[_i].lust, 0, 100)>> <<set $NPCName[_i].rage = Math.clamp($NPCName[_i].rage, 0, 100)>> <<set $NPCName[_i].dom = Math.clamp($NPCName[_i].dom, 0, 100)>> <<set _i to $NPCNameList.indexOf("Avery")>> <<set $NPCName[_i].love = Math.clamp($NPCName[_i].love, 0, 100)>> <<set $NPCName[_i].rage = Math.clamp($NPCName[_i].rage, 0, 100)>> <<set $NPCName[_i].dom = Math.clamp($NPCName[_i].dom, 0, 100)>> <<set _i to $NPCNameList.indexOf("Great Hawk")>> <<set $NPCName[_i].love = Math.clamp($NPCName[_i].love, 0, 100)>> <<set $NPCName[_i].dom = Math.clamp($NPCName[_i].dom, 0, 100)>> <<alexclamp>> <<set _i to $NPCNameList.indexOf("Sydney")>> <<set $NPCName[_i].love = Math.clamp($NPCName[_i].love, 0, 150)>> <<set $NPCName[_i].lust = Math.clamp($NPCName[_i].lust, 0, 100)>> <<set $NPCName[_i].purity = Math.clamp($NPCName[_i].purity, 0, 100)>> <<set $NPCName[_i].corruption = Math.clamp($NPCName[_i].corruption, 0, 50)>> <<set _i to $NPCNameList.indexOf("Black Wolf")>> <<set $NPCName[_i].love = Math.clamp($NPCName[_i].love, 0, 150)>> <<set $NPCName[_i].harmony = Math.clamp($wolfpackharmony || 0, 0, 100)>> <<set $NPCName[_i].ferocity = Math.clamp($wolfpackferocity || 0, 0, 100)>> <<set _i to $NPCNameList.indexOf("Gwylan")>> <<set $NPCName[_i].love = Math.clamp($NPCName[_i].love, 0, (getSpecialSets(sets => sets.shop.includes("forest")).length * 2))>> <<set $NPCName[_i].lust = Math.clamp($NPCName[_i].lust, 0, 100)>> <<set $NPCName[_i].dom = Math.clamp($NPCName[_i].dom, -50, 150)>> <<set _i to $NPCNameList.indexOf("Darryl")>> <<set $NPCName[_i].love = Math.clamp($NPCName[_i].love, -50, 50)>> <<set $NPCName[_i].dom = Math.clamp($NPCName[_i].dom, -50, 50)>> <<set _i to $NPCNameList.indexOf("River")>> <<set $NPCName[_i].love = Math.clamp($NPCName[_i].love, -50, 50)>> <<set $NPCName[_i].dom = Math.clamp($NPCName[_i].dom, -50, 50)>> <<set _i to $NPCNameList.indexOf("Mason")>> <<set $NPCName[_i].love = Math.clamp($NPCName[_i].love, -50, 50)>> <<set $NPCName[_i].lust = Math.clamp($NPCName[_i].lust, -50, 50)>> <<set $NPCName[_i].dom = Math.clamp($NPCName[_i].dom, -50, 50)>> <<set _i to $NPCNameList.indexOf("Sam")>> <<set $NPCName[_i].love = Math.clamp($NPCName[_i].love, -50, 50)>> <<set $NPCName[_i].dom = Math.clamp($NPCName[_i].dom, -50, 50)>> <<set _i to $NPCNameList.indexOf("Wren")>> <<set $NPCName[_i].love = Math.clamp($NPCName[_i].love, -50, 50)>> <<set $NPCName[_i].dom = Math.clamp($NPCName[_i].dom, -50, 50)>> <<set _i to $NPCNameList.indexOf("Charlie")>> <<set $NPCName[_i].love = Math.clamp($NPCName[_i].love, -50, 50)>> <<set $NPCName[_i].dom = Math.clamp($NPCName[_i].dom, -50, 50)>> <<set _i to $NPCNameList.indexOf("Bailey")>> <<set $NPCName[_i].love = Math.clamp($NPCName[_i].love, -100, 100)>> <<set $NPCName[_i].dom = Math.clamp($NPCName[_i].dom, -50, 50)>> <<set _i to $NPCNameList.indexOf("Briar")>> <<set $NPCName[_i].love = Math.clamp($NPCName[_i].love, -100, 100)>> <<set $NPCName[_i].dom = Math.clamp($NPCName[_i].dom, -50, 50)>> <<set _i to $NPCNameList.indexOf("Doren")>> <<set $NPCName[_i].love = Math.clamp($NPCName[_i].love, -100, 100)>> <<set $NPCName[_i].dom = Math.clamp($NPCName[_i].dom, -50, 50)>> <<set _i to $NPCNameList.indexOf("Harper")>> <<set $NPCName[_i].love = Math.clamp($NPCName[_i].love, -100, 100)>> <<set $NPCName[_i].dom = Math.clamp($NPCName[_i].dom, -50, 50)>> <<set _i to $NPCNameList.indexOf("Jordan")>> <<set $NPCName[_i].love = Math.clamp($NPCName[_i].love, -100, 100)>> <<set $NPCName[_i].dom = Math.clamp($NPCName[_i].dom, -50, 50)>> <<set _i to $NPCNameList.indexOf("Landry")>> <<set $NPCName[_i].love = Math.clamp($NPCName[_i].love, -100, 100)>> <<set $NPCName[_i].dom = Math.clamp($NPCName[_i].dom, -50, 50)>> <<set _i to $NPCNameList.indexOf("Leighton")>> <<set $NPCName[_i].love = Math.clamp($NPCName[_i].love, -100, 100)>> <<set $NPCName[_i].dom = Math.clamp($NPCName[_i].dom, -50, 50)>> <<set _i to $NPCNameList.indexOf("Morgan")>> <<set $NPCName[_i].love = Math.clamp($NPCName[_i].love, -100, 100)>> <<set $NPCName[_i].dom = Math.clamp($NPCName[_i].dom, -50, 50)>> <<set _i to $NPCNameList.indexOf("Winter")>> <<set $NPCName[_i].love = Math.clamp($NPCName[_i].love, -100, 100)>> <<set $NPCName[_i].dom = Math.clamp($NPCName[_i].dom, -50, 50)>> <<set _i to $NPCNameList.indexOf("Niki")>> <<set $NPCName[_i].love = Math.clamp($NPCName[_i].love, -100, 100)>> <<set $NPCName[_i].dom = Math.clamp($NPCName[_i].dom, -50, 50)>> <<set _i to $NPCNameList.indexOf("Quinn")>> <<set $NPCName[_i].love = Math.clamp($NPCName[_i].love, -100, 100)>> <<set $NPCName[_i].dom = Math.clamp($NPCName[_i].dom, -50, 50)>> <<set _i to $NPCNameList.indexOf("Remy")>> <<set $NPCName[_i].love = Math.clamp($NPCName[_i].love, -100, 100)>> <<set $NPCName[_i].dom = Math.clamp($NPCName[_i].dom, -50, 50)>> <<set _i to $NPCNameList.indexOf("Zephyr")>> <<set $NPCName[_i].love = Math.clamp($NPCName[_i].love, -100, 100)>> <<set $NPCName[_i].dom = Math.clamp($NPCName[_i].dom, -50, 50)>> <<set _i to $NPCNameList.indexOf("Sirris")>> <<set $NPCName[_i].love = Math.clamp($NPCName[_i].love, -100, 100)>> <<set $NPCName[_i].dom = Math.clamp($NPCName[_i].dom, -50, 50)>> <<set _i to $NPCNameList.indexOf("Ivory Wraith")>> <<if $wraith.state is "haunt">> <<set $NPCName[_i].love = Math.clamp($NPCName[_i].love, 0, 10)>> <<set $NPCName[_i].lust = Math.clamp($NPCName[_i].lust, 10, 20)>> <<else>> <<set $NPCName[_i].love = Math.clamp($NPCName[_i].love, 0, 20)>> <<set $NPCName[_i].lust = Math.clamp($NPCName[_i].lust, 0, 20)>> <</if>> <</widget>> <<widget "haircheck">> <<if $hairtype is "default">> <<set $hairtype to "messy">> <</if>> <</widget>> <<widget "fringedescription">> <<if $haircolour isnot $hairfringecolour>> <<if $hairFringeColourStyle is "gradient">> <<set _colour to "two-toned">> <<else>> <<set _colour to $hairfringecolour>> <</if>> <<set $_fringe to _colour + " fringe">> <<else>> <<set $_fringe to "fringe">> <</if>> <<if $fringelength gte 980>> and your <<print $_fringe>> is very long. <<elseif $fringelength gte 800>> and your <<print $_fringe>> is long. <<elseif $fringelength gte 600>> and your <<print $_fringe>> is somewhat long. <<elseif $fringelength gte 400>> and your <<print $_fringe>> is quite normal. <<elseif $fringelength gte 200>> and your <<print $_fringe>> is short. <<else>> and your <<print $_fringe>> is very short. <</if>> <</widget>> <<widget "willpowerpain">> <<if $pain gte 100 and $willpowerpain is undefined and _willpowerpainchecked isnot true>> <<if (currentSkillValue('willpower') / 10) gte (($pain - 100) + random(1, 100))>> <span class="green">The pain threatens to overwhelm, but you endure it.</span> <<gwillpower>><<willpower 1>> <br> <<else>> <span class="red">The pain overwhelms you.</span> <<if $position is "stalk">> You fall to your knees. <</if>> <<ggwillpower>><<willpower 5>><<set $willpowerpain to 0>> <br> <</if>> <<set _willpowerpainchecked to true>> <</if>> <</widget>> <<widget "willpowerorgasm">> <<if $orgasmdown gte 1 and _willpowerorgasmchecked isnot true>> <<if (currentSkillValue('willpower') / 10) gte (($orgasmdown * 30) + random(1, 80))>> <span class="green">You endure the orgasmic shivers running through you.</span> <<gwillpower>><<willpower 1>><<set $orgasmdown to 0>> <br> <<else>> <span class="red">You struggle against the orgasmic spasms overwhelming you.</span> <<if $position is "stalk">> You fall to your knees. <</if>> <<gwillpower>><<willpower 1>> <br> <</if>> <<set _willpowerorgasmchecked to true>> <</if>> <</widget>> <<widget "clothescolour">><<silently>> <<set _slot to _args[0]>> <<if $worn[_slot].colour isnot 0 and $worn[_slot].colour isnot undefined>> <<if $worn[_slot].colour.substring(0, 3) is "wet">> <<set _text_output to $worn[_slot].colour.substring(3)>> <<elseif $worn[_slot].colour_sidebar is 1>> <<if $worn[_slot].colour == "custom">> <<set _text_output to getCustomColourName($worn[_slot].colourCustom)>> <<else>> <<set _text_output to $worn[_slot].colour>> <</if>> <</if>> <</if>> <</silently>><<print _text_output>><</widget>> <<widget "nounderwearcheck">> /*Checks if the PC is pantiless, but otherwise decent. Results in low level exhibitionism increases.*/ /* Feature was disabled previously, has been re-enabled after meeting the below requirement Vrelnir: Exhibitionism should only rise when the player directly choses certain actions. The PC could have their underwear stolen, which would result in exhibitionism rising without a direct decision to do so. */ <<if (!$worn.over_lower.type.includes("naked") or !$worn.lower.type.includes("naked")) and $worn.under_lower.type.includes("naked") and ["notWorn", "notBought", "sold", "given"].includes($worn.under_lower.exposedType) and $exposed lte 0 and $exhibitionism lt 19 and !$daily.no_underwear>> <<set $no_underwear += 1>> <</if>> <<if $no_underwear gte 8>> <<set $daily.no_underwear to true>> <<set $no_underwear to 0>> <<set $effectsmessage to 1>> <<set $exhibitionism_message to 1>> <</if>> <</widget>> <<widget "breastfed">> <<if _args[0]>> <<set $milk_drank_stat += _args[0]>> <<set $hunger -= _args[0]>><<set $thirst -= _args[0]>> <<else>> <<set $milk_drank_stat += random(1, 5)>> <<if random(1, 100) gte 70>> <<if $NPCList[0].type and $NPCList[0].type is "wolfgirl">> <<transform wolf 1>> <<elseif $NPCList[0].type and $NPCList[0].type is "foxgirl">> <<transform fox 1>> <<else>> <<transform cat 1>> <</if>> <</if>> <<if $milkdranktrait is 1>><<physique 1>><</if>> <<purity -1>> <<set $hunger -= 200>><<set $thirst -= 200>> <</if>> <</widget>> <<widget "nectarfed">> <<set _nectarGain to 0>> <<set _nectarGain += (Math.ceil(_args[0] / 10) + random(0,2))>> <<set $nectar_drank_stat += _nectarGain>> <<set $nectar_addiction += _nectarGain>> <<if _args[0] gte 11>> <<purity -1>> <</if>> <<set $hunger -= (_args[0] * 5)>><<set $thirst -= (_args[0] * 5)>> <<drugs _args[0]>><<set $arousal += _args[0]>> <<if $ejaculating is 1>> <<alcohol `(_args[0] * 3)`>> <<bodyliquid "mouth" "nectar">> <</if>> <<if $backgroundTraits.includes("plantlover")>> <<if $nectar_timer lte 14>> <span class="green">You feel an overwhelming sense of relief.</span> <<stress -12>><<llstress>><<pain -4>><<lpain>> <<else>> <<set _nectarStress to (-1 * _nectarGain)>> <<physique 1 "invig">><<stress _nectarStress>><<lstress>> <</if>> <<set $nectar_timer to 21>> <</if>> <<set $nectar_addiction = Math.clamp($nectar_addiction, 0, 200)>> <</widget>> <<widget "setup_pillory">> <<set $pillory.tenant to {person : clone(setup.baseNPC), exists : 0, duration : 0, served : 0, startTime: 0, endTime : 0, crowd : 0, wet : 0, upperexposed : 0, lowerexposed : 0, fruit : 0, fruitstock: 0, face : 0, ass : 0, genital : 0, broken : 0, lastviewed : 0, special : {name : "", desc : ""}}>> <</widget>> <<widget "new_npc_pillory">> <<if not _args[0]>> <<if $rng gte 21>><<generate1>><<else>><<generatey1>><</if>> <<set $_already_served to random(0,2)>> <<else>> <<set $_already_served to 0>> <</if>> <<set $pillory.tenant.exists to 1>> <<set $pillory.tenant.person to clone($NPCList[0])>> <<set $pillory.tenant.duration to random(4,27)>> <<set $_duration to random(4,27)>> <<set $_endTime to new DateTime(Time.date).addHours($_duration)>> <<set $pillory.tenant.startTime to Time.date.timeStamp>> <<set $pillory.tenant.endTime to $_endTime.timeStamp>> <<set $pillory.tenant.crowd to 1>> <<set $pillory.tenant.wet to 0>> <<set $pillory.tenant.upperexposed to 0>> <<set $pillory.tenant.lowerexposed to 0>> <<set $pillory.tenant.fruit to 0>> <<set $pillory.tenant.fruitstock to 3>> <<set $pillory.tenant.spank to 0>> <<set $pillory.tenant.face to 0>> <<set $pillory.tenant.ass to 0>> <<set $pillory.tenant.genital to 0>> <<set $pillory.tenant.broken to 0>> <<set $pillory.tenant.lastViewed to Time.date.timeStamp>> <<person1>> <<if $pillory.tenant.special.name is "">> A <<person>> <<if $_already_served is 0>>is currently being locked into the pillory.<<else>>has recently been locked in the pillory.<</if>> <<endevent>> <<npc_pillory_release_schedule>> <br><br> <<else>> Rumour has it <<he>> is being sent to the pillory. <br> <<endevent>> <</if>> <</widget>> <<widget "imprison_whitney">> <<clear_pillory>> <<npc Whitney>> <<set C.npc.Whitney.state to "pillory">> <<set $pillory.tenant.special.name to "Whitney">> <<set $pillory.tenant.special.desc to C.npc.Whitney.title>> <<new_npc_pillory $NPCList[0]>> <<endevent>> <<set $framed to 0>> <</widget>> <<widget "imprison_leighton">> <<clear_pillory>> <<npc Leighton>> <<set $pillory.tenant.special.name to "Leighton">> <<set $pillory.tenant.special.desc to C.npc.Leighton.title>> <<new_npc_pillory $NPCList[0]>> <<endevent>> <<set $framed to 0>> <</widget>> <<widget "imprison_npc">> /* number as argument to select npc 0-5. Only use at end of scene. */ <<clear_pillory>> <<if not _args[0]>> <<set _id to 0>> <<else>> <<set _id to _args[0]>> <</if>> <<if _args[1]>> <<set $pillory.tenant.special.desc to _args[1]>> <</if>> <<new_npc_pillory $NPCList[_id]>> <<endevent>> <</widget>> <<widget "get_pillory_npc">> <<set $NPCList[0] to clone($pillory.tenant.person)>><<person1>> <</widget>> <<widget "A_pillory_person">> /* Can't simplify to <<pillory_person>> because: 'a thin man', but not 'a Whitney' */ <<silently>><<set _out to "">> <<get_pillory_npc>> <<if $pillory.tenant.special.name is "">> <<set _out += "A <<person>>">> <<else>> <<set _out += $pillory.tenant.special.name>> <</if>> <</silently>><<print _out>> <</widget>> <<widget "The_pillory_person">> <<silently>><<set _out to "">> <<get_pillory_npc>> <<if $pillory.tenant.special.name is "">> <<set _out += "The <<person>>">> <<else>> <<set _out += $pillory.tenant.special.name>> <</if>> <</silently>><<print _out>> <</widget>> <<widget "a_pillory_person">> <<silently>><<set _out to "">> <<get_pillory_npc>> <<if $pillory.tenant.special.name is "">> <<set _out += "a <<person>>">> <<else>> <<set _out += $pillory.tenant.special.name>> <</if>> <</silently>><<print _out>> <</widget>> <<widget "the_pillory_person">> <<silently>><<set _out to "">> <<get_pillory_npc>> <<if $pillory.tenant.special.name is "">> <<set _out += "the <<person>>">> <<else>> <<set _out += $pillory.tenant.special.name>> <</if>> <</silently>><<print _out>> <</widget>> <<widget "pillory_type">> <<silently>><<set _out to "">> <<get_pillory_npc>> <<if $pillory.tenant.special.name is "">> <<set _out += "<<person>>">> <<else>> <<set _out += $pillory.tenant.special.desc>> <</if>> <</silently>><<print _out>> <</widget>> <<widget "npc_pillory">> <<A_pillory_person>> is locked in the town pillory. <<npc_pillory_release_schedule>> <br><br> <<endevent>> <</widget>> <<widget "npc_pillory_detail">> <<get_pillory_npc>> <<A_pillory_person>> is locked in the town pillory. <<npc_pillory_appearance>> <br><br> <<npc_pillory_abuse>> <<npc_pillory_release_schedule>> <br><br> <<endevent>> <</widget>> <<widget "npc_pillory_appearance">> <<update_npc_pillory_appearance>> /*Desc*/ <<if Time.dayState is "night">> <<if $pillory.tenant.crowd gte 10>> A huge, drunken mob surrounds <<elseif $pillory.tenant.crowd gte 6>> A large, rowdy mob crowds around <<elseif $pillory.tenant.crowd gte 4>> A sinister crowd huddles around <<else>> A small but sinister group lurks around <</if>> <<else>> <<if $pillory.tenant.crowd gte 10>> An excited, jeering crowd surrounds <<elseif $pillory.tenant.crowd gte 6>> A large crowd presses around <<elseif $pillory.tenant.crowd gte 4>> A curious group hangs around <<else>> A small group watches <</if>> <</if>> the <<pillory_type>> locked prone in the pillory. <<if $pillory.tenant.broken gte 32>> <<He>> looks traumatised, perhaps permanently broken by the abuse <<hes>> already suffered. <<elseif $pillory.tenant.broken gte 16>> <<He>> is weeping from the abuse <<hes>> already suffered. <<elseif $pillory.tenant.broken gte 8>> <<He>> is sobbing from the abuse. <<elseif $pillory.tenant.broken gte 4>> <<He>> is visibly upset, but trying hard to hide it. <<else>> <<He>> is defiant, showing a brave face. <</if>> <br> /*describe exposure*/ <<if $pillory.tenant.upperexposed gte 3>> <<His>> $pillory.tenant.person.breastsdesc are fully exposed to the crowd. <<if $pillory.tenant.spank gte 8>> <<His>> nipples are red from being pinched, slapped, sucked, bitten and pulled. <<elseif $pillory.tenant.spank gte 4>> <<His>> nipples look sore from abuse. <<elseif $pillory.tenant.spank gte 1>> <<His>> nipples show signs of abuse. <</if>> <<elseif $pillory.tenant.upperexposed gte 2>> <<if $pronoun is "f">> <<His>> top has been bared, with only <<his>> bra hiding <<his>> $pillory.tenant.person.breastsdesc from the crowd. <<else>> <<His>> top has been bared, fully exposing <<his>> $pillory.tenant.person.breastsdesc to the crowd. <<if $pillory.tenant.spank gte 8>> <<His>> nipples are red from being pinched, slapped, bitten and pulled. <<elseif $pillory.tenant.spank gte 4>> <<His>> nipples look sore from abuse. <<elseif $pillory.tenant.spank gte 1>> <<His>> nipples show signs of abuse. <</if>> <</if>> <<elseif $pillory.tenant.upperexposed gte 1>> <<His>> upper clothes have been mauled, partially exposing <<his>> <<if $pronoun is "f">>bra<<else>>$pillory.tenant.person.breastsdesc<</if>> to the crowd. <</if>> <<if $pillory.tenant.lowerexposed gte 2>> <<His>> ass has <<if $pillory.tenant.upperexposed gte 1>>also <</if>>been exposed, making <<his>> <<if $pillory.tenant.person.gender is "f">>pussy<<else>>$pillory.tenant.person.penisdesc<</if>> visible to all. <<if $pillory.tenant.spank gte 5>> <<His>> ass shows signs of rough <<if $pillory.tenant.fruit gte 5>> spanking, and <<his>> <<if $pillory.tenant.face gte 1>>cum-<<if $pillory.tenant.face gte 4>>coated<<else>>stained<</if>> <</if>>face is a mess of bruises and broken fruit. <<else>> spanking. <</if>> <<elseif $pillory.tenant.fruit gte 6>> <<His>> <<if $pillory.tenant.face gte 1>>cum-<<if $pillory.tenant.face gte 4>>coated<<else>>stained<</if>> <</if>>face is a mess of bruises and broken fruit. <<elseif $pillory.tenant.fruit gte 2>> <<His>> <<if $pillory.tenant.face gte 1>>cum-<<if $pillory.tenant.face gte 4>>coated<<else>>stained<</if>> <</if>>face is marked by bruises and broken fruit. <</if>> <<if $pillory.tenant.ass gte 1>> <<His>> ass has been <<if $pillory.tenant.genital gte 1>> raped<<if $pillory.tenant.ass gte 3>> more than once<</if>>, and <<if $pillory.tenant.person.gender is "m" and $pillory.tenant.person.strapon is undefined>> slime coats <<his>> <<print either("raw","abused","sorry")>> penis. <<else>> semen <<if $pillory.tenant.genital gte 3>>pours<<else>>drips<</if>> from <<his>> <<print either("raw","reddened","abused")>> pussy. <</if>> <<else>> raped<<if $pillory.tenant.ass gte 3>> more than once<</if>>. <</if>> <<elseif $pillory.tenant.genital gte 3>> <<His>> <<if $pillory.tenant.person.gender is "m" and $pillory.tenant.person.strapon is undefined>>penis<<else>>pussy<</if>> has been raped raw. <<elseif $pillory.tenant.genital gte 1>> <<He>> has been raped. <</if>> <<elseif $pillory.tenant.lowerexposed gte 1>> <<His>> <<if $pronoun is "f">>dress has been pulled up over <<his>> waist<<else>>trousers have been pulled down<</if>>, exposing <<his>> underwear to the crowd. <<elseif $pillory.tenant.wet is 2>> <<His>> clothes are see-through from the rain. <<elseif $pillory.tenant.wet is 1>> <<His>> clothes are damp and semi-translucent, but are drying out. <</if>> <<if $pillory.tenant.upperexposed is 0 and $pillory.tenant.lowerexposed is 0 and $pillory.tenant.face is 0 and $pillory.tenant.fruit gte 1>> <<if $pillory.tenant.fruit gte 6>> <<His>> face is a mess of bruises and broken fruit. <<elseif $pillory.tenant.fruit gte 2>> <<His>> face is marked by bruises and broken fruit. <</if>> <</if>> <</widget>> <<widget "update_npc_pillory_appearance">> /* Event firing chance increases with time. last viewed is reset every visit, so a visit every 30 minutes has 50% chance to fire, while a visit every hour has 100% */ <<set $_lastViewed to new DateTime($pillory.tenant.lastViewed)>> <<set $_firechance to -Time.date.compareWith($_lastViewed, true)/TimeConstants.secondsPerHour>> <<rng>> <<if $rng lte 100*$_firechance>> /*Weather effects*/ <<if Weather.precipitation is "rain">> <<set $pillory.tenant.wet to 2>> <<elseif $pillory.tenant.wet is 2>> <<set $pillory.tenant.wet to 1>> <<else>> <<set $pillory.tenant.wet to 0>> <</if>> /*Chance of abuse based on crowd and time passed*/ <<if $pillory.tenant.crowd lte 1>><<set $pillory.tenant.crowd to 1>><</if>> <<set $_chance to Math.clamp($_firechance, 1, 24)>> /* If you do not visit for a long time, there is a higher chance for at least one event to happen */ <<if $_chance gte 1>><<set $_chance to $_chance**1.5>><</if>> <<set $_chance *= $pillory.tenant.crowd>> /*increased by spectacle*/ <<set $_factor to ($pillory.tenant.upperexposed + $pillory.tenant.lowerexposed + $pillory.tenant.ass + $pillory.tenant.genital + $pillory.tenant.face/2 + $pillory.tenant.fruit/3 + $pillory.tenant.spank/3)>> <<if $pillory.tenant.lowerexposed gte 2>> <<set $_factor = Math.floor($_factor+$pillory.tenant.spank/3)>> <</if>> <<if Time.dayState is "night">> <<set $_factor += 3>> <</if>> <<if $pillory.tenant.wet is 2>> <<set $_factor += 4>> <</if>> <<set $_prob to Math.floor($_chance + $_factor)>> /*Out of sight changes to tenant */ <<rng>> <<if $rng gte (30 - $_prob)>><<set $pillory.tenant.fruit += 1>><</if>> <<rng>> <<if $rng gte (50 - $_prob)>><<set $pillory.tenant.crowd += 1>><</if>> <<rng>> <<if $rng gte (50 - $_prob)>><<set $pillory.tenant.upperexposed += 1>><</if>> <<rng>> <<if $rng gte (70 - $_prob)>><<set $pillory.tenant.lowerexposed += 1>><</if>> <<rng>> <<if $rng gte (90 - $_prob)>><<set $pillory.tenant.crowd += 2>><</if>> <<rng>> <<if $rng gte (90 - $_prob)>><<set $pillory.tenant.upperexposed += 3>><</if>> <<rng>> <<if $rng gte (90 - $_prob)>><<set $pillory.tenant.fruit += 2>><<set $pillory.tenant.face += 1>><</if>> <<rng>> <<if $rng gte (90 - $_prob)>><<set $pillory.tenant.spank += 2>><<else>><<set $pillory.tenant.spank += 1>><</if>> <<rng>> <<if $rng gte (100 - $_prob)>><<set $pillory.tenant.lowerexposed += 2>><</if>> <<rng>> <<if ($pillory.tenant.special.name is "" or $pillory.tenant.person.virginity.vaginal isnot true or ($pillory.tenant.person.gender is "m" and $pillory.tenant.person.strapon is undefined)) and $rng gte (100 - $_prob)>> <<set $pillory.tenant.genital += 1>> <</if>> <<rng>> <<if ($pillory.tenant.special.name is "" or $pillory.tenant.person.virginity.anal isnot true) and $settings.analEnabled and $rng gte (100 - $_prob)>> <<set $pillory.tenant.ass += 1>> <</if>> /*lock down exposure and replenish fruit */ <<if $pillory.tenant.upperexposed gte 3>><<set $pillory.tenant.upperexposed to 3>><</if>> <<if $pillory.tenant.lowerexposed gt 2>><<set $pillory.tenant.lowerexposed to 2>><</if>> <<set $pillory.tenant.fruitstock to 3>> <<set $pillory.tenant.broken += Math.floor($pillory.tenant.ass + $pillory.tenant.genital + $pillory.tenant.face/2 + $pillory.tenant.fruit/3 + $pillory.tenant.spank/3)>> <</if>> <</widget>> <<widget "npc_pillory_abuse">> /* Event firing chance increases with time. last viewed is reset every visit, so a visit every 30 minutes has 50% chance to fire, while a visit every hour has 100% */ <<set $_lastViewed to new DateTime($pillory.tenant.lastViewed)>> <<set $_firechance to -Time.date.compareWith($_lastViewed, true)/TimeConstants.secondsPerHour>> <<rng>> <<if $rng lte 100*$_firechance>> <<generate2>><<person2>> <<if $NPCList[1].pronoun is "f">><<set $_female to true>><<else>><<set $_female to false>><</if>> <<set $_ly to either("violently","openly","angrily","furiously","cheekily","repeatedly","clumsily","roughly","theatrically","dutifully","merrily","gleefully","drunkenly","ineptly")>> /* need special case for strap-ons since they don't make sense in some scenes */ <<set $_haspenis to $pillory.tenant.person.gender isnot "f" and $pillory.tenant.person.strapon?.state is undefined>> <<set $_hasvagina to $pillory.tenant.person.gender isnot "m" or $pillory.tenant.person.strapon?.state isnot undefined>> /* Minor events scale slowly with crowd */ <<set $_dangerlow to Math.clamp(2*$pillory.tenant.crowd, 1, 20)>> /* Major events need enough crowd to become likely. Some are more likely than others. */ <<set $_dangerhigh1 to Math.clamp(4*($pillory.tenant.crowd-5), 1, 20)>> <<set $_dangerhigh2 to Math.clamp(8*($pillory.tenant.crowd-5), 1, 40)>> <<set $_dangerhigh3 to Math.clamp(12*($pillory.tenant.crowd-5), 1, 60)>> <<if Time.dayState isnot "night">> <<cleareventpool>> <<addinlineevent "day shouts" 35>> <<set $pillory.tenant.crowd += 1>> A number of people, led by a <<person>> jeer and shout abuse at the prisoner. <</addinlineevent>> <<if $pillory.tenant.person.breastdesc isnot "nipple">> <<addinlineevent "day fondle" $_dangerlow>> A <<person>> walks up to the pillory and $_ly fondles the <<pillory_type>>'s $pillory.tenant.person.breastdesc. <</addinlineevent>> <<addinlineevent "day breasts" $_dangerhigh3>> A <<person>> in rough farmer clothes approaches the pillory with a bucket. Setting the bucket underneath the <<pillory_type>>'s chest, <<person2>><<he>> <<if $pillory.tenant.upperexposed lte 1>>displaces the prisoner's top,<</if>> <<if $pillory.tenant.upperexposed lte 2>><<set $pillory.tenant.upperexposed to 3>> slips off <<person1>><<his>> bra,<</if>> grabs the <<pillory_type>>'s $pillory.tenant.person.breastsdesc and sets about trying to milk her into the bucket. <br><br> <<cleareventpool>> <<addinlineevent "breasts bursts">> Milk bursts from her breasts. Smiling, the farmer soon builds up a rhythm, adeptly milking both breasts. <br> "Good cow." The farmer ruffles <<the_pillory_person>>'s hair before leaving with an almost full bucket. <</addinlineevent>> <<addinlineevent "breasts dribbles">> <<set $pillory.tenant.spank += 1>> Milk dribbles from the <<pillory_type>>'s breasts. With a lot of persistent squeezing and nipple pulling the farmer is eventually able to get a fair amount of milk from the prisoner. <<person1>><<His>> $pillory.tenant.person.breastsdesc look raw and painful afterward. <br> The farmer pats the prisoner's head before leaving with <<person2>><<his>> half-filled bucket. <</addinlineevent>> <<addinlineevent "breasts squeezes">> <<set $pillory.tenant.spank += 1>> Despite increasingly rough squeezing and pulling on <<person1>><<his>> nipples, no milk is forthcoming. Finally giving up, the <<person2>><<person>> pats <<person1>><<his>> head. "Poor $pillory.tenant.person.pronouns.boy. You're all dried up." <br> <<person2>><<He>> walks behind the <<pillory_type>> and <<if $pillory.tenant.lowerexposed lte 1>>strips <<person1>><<his>> <<print either("silk panties","plain panties","tattered undies","boyshorts","underpants","briefs")>>, <<else>>holds <<his>> butt-cheeks spread apart<</if>> exposing <<person1>><<his>> <<if $_hasvagina and $_haspenis>>pussy, $pillory.tenant.person.penisdesc,<<elseif $_hasvagina>>pussy<<else>>$pillory.tenant.person.penisdesc<</if>> and ass to all. <br> <<cleareventpool>> <<if $_hasvagina and $settings.pregnancySpeechEnabled>><<addinlineevent "squeezes anal" 2>>"This cow's dry," <<person2>><<he>> calls out to the crowd. "Wants someone to put a calf in her?"<</addinlineevent>><</if>> <<if $settings.analEnabled>><<addinlineevent "squeezes vaginal">>"This cow's dry," <<person2>><<he>> calls out to the crowd. "Wants someone to fill her up?"<</addinlineevent>><</if>> <<runeventpool>> <br> <<He>> walks away with <<his>> empty bucket. <<set $pillory.tenant.lowerexposed to 2>> <</addinlineevent>> <<addinlineevent "breasts nothing" 2>> <<set $pillory.tenant.spank += 1>> Despite increasingly rough squeezing and pulling on <<person2>><<his>> nipples, no milk is forthcoming. Finally giving up, the farmer walks away with <<his>> empty bucket. <</addinlineevent>> <<runeventpool>> <</addinlineevent>> <</if>> <<if $_hasvagina>> <<addinlineevent "day vagina" $_dangerhigh2>> A <<person>> in rough farmer clothes approaches the pillory with a glass beaker. <br> Setting the beaker underneath the <<pillory_type>>'s groin, <<person2>><<he>> <<if $pillory.tenant.lowerexposed lte 0>>removes the prisoner's $pillory.tenant.person.clothes.lower.name,<</if>> <<if $pillory.tenant.lowerexposed lte 1>><<set $pillory.tenant.lowerexposed to 2>>pulls down <<person1>><<his>> <<print either("silk panties","plain panties","tattered undies","boyshorts","underpants","briefs")>>,<</if>> grabs the prisoner's pussy and starts to rub. After a moment's shock, <<the_pillory_person>> pouts and resigns <<himself>> to this debasement. That's when <<he>> feels cold metal shoved up <<his>> pussy. A moment later panic crosses <<his>> face as something is clamped to <<his>> clit, and almost instantly waves of electricity hit <<him>>. <br> The crowd are engrossed as <<the_pillory_person>> writhes in orgasm after shuddering orgasm. The farmer barely pays attention, holding the beaker close underneath to catch <<the_pillory_person>>'s fluids, while browsing <<person2>><<his>> phone. At last, the farmer turns off and extracts <<his>> machine. <<Hes>> still browsing <<his>> phone as <<he>> walks away with a full beaker of fluids. <br> <<The_pillory_person>> looks mortified, <<his>> face flitting between shock, shame and sexual exhaustion. <</addinlineevent>> <</if>> <<if $_haspenis>> <<addinlineevent "day balls" $_dangerlow>> A <<person>> walks up to the pillory and $_ly fondles the <<pillory_type>>'s balls. <</addinlineevent>> <<addinlineevent "day penis" $_dangerhigh3>> A <<person>> in rough farmer clothes approaches the pillory with a clear glass. <br> Setting the glass underneath the <<pillory_type>>'s groin, <<person2>><<he>> <<if $pillory.tenant.lowerexposed lte 0>>removes the prisoner's $pillory.tenant.person.clothes.lower.name,<</if>> <<if $pillory.tenant.lowerexposed lte 1>><<set $pillory.tenant.lowerexposed to 2>>pulls down <<person1>><<his>> <<print either("silk panties","plain panties","tattered undies","boyshorts","underpants","briefs")>>,<</if>> grabs the prisoner's $pillory.tenant.person.penisdesc and starts to rub. The prisoner looks shocked, then angry, then conflicted, and then shocked again as <<person1>><<he>> cums into a glass in front of a jeering crowd. <<person2>> <<if $rng % 3>> The farmer glances in the glass and then starts again. Seemingly an 'old hand,' <<he>> starts to browse <<his>> phone with one hand, while bringing the <<pillory_type>> to several more orgasms with the other. <br> Ten minutes later, the farmer is walking off with a glassful of ejaculate, while <<the_pillory_person>> hangs in the pillory, <<his>> face flickering between shock, shame, pain and satiation. <<else>><<set $pillory.tenant.spank += 1>> The farmer browses <<his>> phone with one hand, while trying to bring the <<pillory_type>> back to orgasm with the other. <br> After a minute or so, the farmer looks confused, then annoyed at <<the_pillory_person>>'s lack of response. The <<person2>><<person>> pulls a device from <<his>> pocket. <<He>> clips one end of the device to the base of the <<pillory_type>>'s penis, and slides the other deep into the prisoner's anus. <br> The farmer presses a button and with a loud electric crackle, <<the_pillory_person>> yelps, jerks and starts to orgasm continually. <br> After about 20 seconds of phone browsing the <<person2>><<person>> turns the device off, glances at the glass, and nods. <br> The crowd are engrossed as the farmer repeats this process several more times, until finally the farmer is walking away with a glassful of ejaculate, while <<the_pillory_person>> hangs limp in the pillory, <<his>> face twitching with pain, shame and a strange satiation. <</if>> <br> <</addinlineevent>> <</if>> <<if Time.month > 4 && Time.month < 9 and $settings.beesEnabled>> <<addinlineevent "day bug" $_dangerhigh1>> <<set _bug to either("bee","wasp","bumblebee")>> <<The_pillory_person>> shouts and helplessly wriggles and flaps as a _bug starts to circle <<him>>. <br> <<if $rng % 3 is 0>> A kindly spectator waves the _bug away. <<elseif $rng % 3 is 1>> The crowd jeer and laugh. Eventually the _bug loses interest and flies away. <<else>> <<if $pillory.tenant.lowerexposed is 2 and $rng % 2>> <<if $pronoun is "m">><<set _part to either("butt","upper leg","inner thigh","dick","balls","hip")>> <<else>><<set _part to either("ass","leg","inner thigh","pussy","hip")>> <</if>> <<elseif $pillory.tenant.upperexposed gte 3 and $pronoun is "f">> <<set _part to either("breast","nipple","armpit","ribs","midriff","back")>> <<elseif $pillory.tenant.upperexposed gte 2>> <<set _part to either("chest","armpit","ribs","belly","back")>> <<else>> <<set _part to either("arm","shoulder","cheek","leg","waist","wrist","elbow")>> <</if>> <<He>> <<print either("yells","screams","whines","cries")>> as it lands on <<his>> _part and stings <<him>>. <</if>> <</addinlineevent>> <</if>> <<addinlineevent "day monk" $_dangerhigh2>> A furious <<monk>> from the temple scolds the crowd for preying on the morally sick. Many people look ashamed and some leave. <<rng>> <<set $pillory.tenant.crowd -= (1+$rng %4)>> <<if $pillory.tenant.upperexposed + $pillory.tenant.lowerexposed gte 1>> <<set $pillory.tenant.upperexposed to 0>><<set $pillory.tenant.lowerexposed to 0>> The <<monk>> finally restores the <<pillory_type>>'s dignity by replacing <<his>> clothes. <</if>> <</addinlineevent>> <<addinlineevent "day fruit" $_dangerlow>> A <<person>> throws fruit at the <<pillory_type>>. Unable to move or defend, it hits <<him>> directly in the face. It looks painful, especially as <<he>> cannot wipe the acids out of <<his>> eyes. <<set $pillory.tenant.fruit += 1>> <</addinlineevent>> <<addinlineevent "day fruit miss" $_dangerlow>> A <<person>> throws fruit at the <<pillory_type>> but misses completely. <</addinlineevent>> <<if $pillory.tenant.upperexposed lt 3>> <<addinlineevent "day upperexposed" $_dangerlow>> A <<person>> walks up to the <<pillory_type>> and <<if $pillory.tenant.upperexposed is 2>> <<if $pillory.tenant.person.breastdesc isnot "nipple">> $_ly removes <<his>> bra, fully exposing <<his>> $pillory.tenant.person.breastsdesc to a jeering crowd. <<else>> $_ly twists <<his>> nipples. <<set $pillory.tenant.spank += 1>> <</if>> <<elseif $pillory.tenant.upperexposed is 1>> <<if $pillory.tenant.person.breastdesc isnot "nipple">> fully removes <<his>> top, leaving <<him>> with <<his>> bra exposed to the jeering crowd. <<else>> fully removes <<his>> top, exposing <<his>> naked chest to the jeering crowd. <</if>> <<else>> <<if $pillory.tenant.person.breastdesc isnot "nipple">> lifts <<his>> top, partially exposing <<his>> bra to a jeering crowd. <<else>> lifts <<his>> top, exposing much of <<his>> chest to the jeering crowd. <</if>> <</if>> <<set $pillory.tenant.upperexposed += 1>> <</addinlineevent>> <</if>> <<if $pillory.tenant.lowerexposed lt 2>> <<addinlineevent "day lowerexposed" $_dangerlow>> A <<person>> walks up to <<the_pillory_person>> and <<if $pillory.tenant.lowerexposed is 1>> removes the <<pillory_type>>'s underwear, fully exposing <<his>> ass<<if $_hasvagina and $_haspenis>>, pussy, and $pillory.tenant.person.penisdesc<<elseif $_hasvagina>> and pussy<<else>> and $pillory.tenant.person.penisdesc<</if>> to the jeering crowd. <<else>> removes the <<pillory_type>>'s $pillory.tenant.person.clothes.lower.name, exposing <<his>> underwear to a jeering crowd. <</if>> <<set $pillory.tenant.lowerexposed += 1>> <</addinlineevent>> <</if>> <<addinlineevent "day spank" $_dangerlow>> A <<person>> walks up to the <<pillory_type>> and spanks <<him>> hard on the ass. The thwack echoes across the street. <<set $pillory.tenant.spank += 1>> <</addinlineevent>> <<runeventpool>> <<else>> /*night*/ <<cleareventpool>> <<addinlineevent "night shouts" 20>> A number of people, led by a <<person>> jeer and shout at the prisoner. <<set $pillory.tenant.crowd += 1>> <</addinlineevent>> <<addinlineevent "night shouts" 10>> <<set $pillory.tenant.spank += 1>> A <<person>> walks up to the <<pillory_type>> and spanks <<him>> hard on the ass. The thwack echoes across the street. <</addinlineevent>> <<addinlineevent "night fruit" 10>> A <<person>> throws fruit at the <<pillory_type>>. Unable to move or defend <<himself>>, it hits <<the_pillory_person>> directly in the face. There is a loud cheer. It looks painful, especially as <<he>> cannot wipe the acids out of <<his>> eyes. <<set $pillory.tenant.fruit += 1>> <</addinlineevent>> <<addinlineevent "night fruit miss" 10>> A <<person>> throws fruit at the <<pillory_type>> but misses completely. <</addinlineevent>> <<if $pillory.tenant.upperexposed lt 3>> <<addinlineevent "night upperexposed" $_dangerlow>> <<set $pillory.tenant.upperexposed to 3>> A <<person>> walks up to the helpless <<pillory_type>> and displaces all <<his>> upper clothes, fully baring <<his>> <<if $pronoun is "f">>$pillory.tenant.person.breastsdesc<<else>>chest<</if>> to the crowd. <</addinlineevent>> <</if>> <<if $pillory.tenant.lowerexposed lt 2>> <<addinlineevent "night lowerexposed" $_dangerlow>> <<set $pillory.tenant.lowerexposed to 2>> A <<person>> walks up to the helpless <<pillory_type>> and displaces all <<his>> lower clothes, fully baring <<his>> <<if $_hasvagina>>pussy<<else>>$pillory.tenant.person.penisdesc<</if>> to the crowd. There is a loud cheer. <</addinlineevent>> <</if>> <<if $settings.bestialityEnabled and ($settings.monsterChance lt 100 or $settings.monsterHallucinationsOnly)>> <<addinlineevent "night no dog" 10>> A <<person>> tries to incite a nearby dog to mount the prisoner's naked backside. It <<if $rng % 2>>gives <<the_pillory_person>>'s ass a few tentative sniffs, but <</if>>is not interested. <</addinlineevent>> <</if>> <<addinlineevent "night slap" $_dangerlow>> <<set $pillory.tenant.spank += 1>> A <<person>> sneaks up behind the pillory and $_ly slaps the <<pillory_type>>'s exposed <<if $_hasvagina is "f">>cunt.<<else>>balls.<</if>> The crowd jeer and laugh as <<he>> howls in pain. <</addinlineevent>> <<addinlineevent "night teacher" $_dangerlow>> <<set $pillory.tenant.spank += 2>><br> Some teacher you've seen around the school but never had classes with, walks drunkenly toward the pillory. <<if $pillory.tenant.special.name is "Whitney">> <br><<set $pillory.tenant.spank += 1>> "Well, hello, Whitney! <<print either("Fancy seeing you here!","Look who it is!","Are you stuck there? How unfortunate!","Isn't this quite the turnaround!?","Such a nice surprise to see you here!")>>" <<he>> slurs, grinning. "<<print either("We both know that you've earned this.","We both know how richly you deserve this.","And today's lesson will be about consequences.","Do remember that mean little nickname you made up for me?","Do remember what you did in my class the other day?")>>" <<elseif $pillory.tenant.special.name is "Leighton">> <br><<set $pillory.tenant.spank += 1>> "Well, hello there. Is that you, boss?" <<he>> says, staying out of sight behind the pillory. "<<print either("I think it's time for some 'anonymous staff feedback'.","Remember what you said about 'cruel to be kind?'","So I guess it's your turn for some 'frank and honest feedback'?","So is this the 'right forum' to air staff grievances?")>>" <<else>><br> "Well, hello there," <<he>> slurs, grinning. "<<print either("Looks like you've been naughty.","Discipline. So important.","Isn't it a lovely evening? Don't you think? Look at that full moon!")>>" <</if>><br> <<He>> spanks the <<pillory_type>>'s ass until <<person2>><<his>> arm tires. The crowd jeer and laugh as the <<person1>><<person>> howls in pain. <</addinlineevent>> <<addinlineevent "night face" $_dangerhigh3>> A <<person>> walks in front of the pillory and $_ly masturbates in front of the <<pillory_type>>. <<person2>> <<if $NPCList[1].gender is "m" and $NPCList[1].strapon is undefined>> Cum soon splatters across <<the_pillory_person>>'s face. <<else>> <<He>> grinds <<his>> cunt against <<the_pillory_person>>'s<<person2>> face as <<he>> orgasms. <</if>> The crowd cheer and laugh. <</addinlineevent>> <<if $_hasvagina>> <<addinlineevent "night finger" 10>> A <<person>> walks behind the pillory and $_ly fingers the <<pillory_type>>. <<print either("The crowd cheer <<person2>><<him>> on.","The crowd take pictures and cheer <<person2>><<him>> on.","The crowd take pictures.","")>> <</addinlineevent>> <</if>> <<if $settings.analEnabled>> <<addinlineevent "night finger ass" 10>> A <<person>> walks behind the pillory and $_ly fingers the <<pillory_type>>'s asshole. <<print either("The crowd cheer <<person2>><<him>> on.","The crowd take pictures and cheer <<person2>><<him>> on.","The crowd take pictures.","")>> <</addinlineevent>> <</if>> <<if ($pillory.tenant.special.name is "" or $pillory.tenant.person.virginity.anal isnot true) and $settings.analEnabled and ($settings.straponChance gt 0 or (!$_female and $settings.maleNPCVaginaChance lt 100) or ($_female and $settings.femaleNPCPenisChance gt 0))>> <<addinlineevent "night ass" $_dangerhigh3>> <<set $pillory.tenant.ass += 1>> A <<person>> walks behind the pillory and $_ly rapes the <<pillory_type>>'s asshole<<if ($NPCList[1].gender isnot "m" or $NPCList[1].strapon isnot undefined) and $settings.straponChance gt 0>> with a strap-on<</if>>. <<print either("The crowd cheer <<person2>><<him>> on.","The crowd take pictures and cheer <<person2>><<him>> on.","The crowd take pictures.","")>> <</addinlineevent>> <</if>> <<if ($pillory.tenant.special.name is "" or $pillory.tenant.person.virginity.vaginal isnot true) and ($settings.straponChance gt 0 or (!$_female and $settings.maleNPCVaginaChance lt 100) or ($_female and $settings.femaleNPCPenisChance gt 0))>> <<addinlineevent "night vagina" $_dangerhigh3>> <<set $pillory.tenant.genital += 1>> A <<person>> walks behind the pillory and $_ly rapes <<the_pillory_person>><<if ($NPCList[1].gender isnot "m" or $NPCList[1].strapon?.state isnot undefined) and $settings.straponChance gt 0>> with a strap-on<</if>>. <<person2>> <<print either("The crowd cheer <<person2>><<him>> on.","The crowd take pictures and cheer <<person2>><<him>> on.","The crowd take pictures.","")>> <</addinlineevent>> <</if>> <<if $settings.bestialityEnabled and ($settings.monsterChance lt 100 or $settings.monsterHallucinationsOnly) and (($_hasvagina and ($pillory.tenant.special.name is "" or $pillory.tenant.person.virginity.vaginal isnot true)) or ($settings.analEnabled and ($pillory.tenant.special.name is "" or $pillory.tenant.person.virginity.anal isnot true))) and ((settings.beastMaleChance gt 0 and $settings.maleNPCVaginaChance lt 100) or (settings.beastMaleChance lt 100 and $settings.femaleNPCPenisChance gt 0))>> <<addinlineevent "night dog" $_dangerhigh1>> <<if $_hasvagina and ($pillory.tenant.special.name is "" or $pillory.tenant.person.virginity.vaginal isnot true)>><<set $pillory.tenant.genital += 1>><</if>> <<if $settings.analEnabled and ($pillory.tenant.special.name is "" or $pillory.tenant.person.virginity.anal isnot true)>><<set $pillory.tenant.ass += 1>><</if>> The crowd watch and photograph as a stray dog rapes <<the_pillory_person>>. A <<person2>><<person>> rewards the dog with a <<print either("biscuit.","pat on the head.","sweet.","cream bun.")>> <br> The crowd enjoys such a perverted spectacle. <</addinlineevent>> <</if>> <<if ($pillory.tenant.special.name is "" or ($pillory.tenant.person.virginity.anal isnot true and $pillory.tenant.person.virginity.oral isnot true)) and $settings.analEnabled and ($settings.straponChance gt 0 or (maleChance() gt 0 and $settings.maleNPCVaginaChance lt 100) or (maleChance() lt 100 and $settings.femaleNPCPenisChance gt 0))>> <<addinlineevent "night spitroast ass" $_dangerhigh2>> <<set $pillory.tenant.ass += 1>><<set $pillory.tenant.face += 1>> <<set $_malepenischance to Math.floor(maleChance()*(100-$settings.maleNPCVaginaChance)/100)>> <<set $_malestraponchance to Math.floor(maleChance()*$settings.maleNPCVaginaChance*$settings.straponChance/10000)>> <<set $_femalepenischance to Math.floor((100-maleChance())*$settings.femaleNPCPenisChance/100)>> <<set $_femalestraponchance to Math.floor((100-maleChance())*(100-$settings.femaleNPCPenisChance)*$settings.straponChance/10000)>> <<set $_malepenischance2 to 2*Math.floor(maleChance()*(100-$settings.maleNPCVaginaChance)/100)>> <<set $_malestraponchance2 to 2*Math.floor(maleChance()*$settings.maleNPCVaginaChance*$settings.straponChance/10000)>> <<set $_femalepenischance2 to 2*Math.floor((100-maleChance())*$settings.femaleNPCPenisChance/100)>> <<set $_femalestraponchance2 to 2*Math.floor((100-maleChance())*(100-$settings.femaleNPCPenisChance)*$settings.straponChance/10000)>> <<cleareventpool>> <<addinlineevent "policemen penis" $_malepenischance>> A couple of off-duty policemen approach. They make a <<person>> record as they anally-spit-roast <<the_pillory_person>>. The crowd enjoys the spectacle. <</addinlineevent>> <<addinlineevent "men penis" $_malepenischance2>> Two men approach. Together they anally-spit-roast <<the_pillory_person>>. The crowd enjoys the spectacle. <</addinlineevent>> <<addinlineevent "policemen strap-on" $_malestraponchance>> A couple of off-duty policemen approach. They make a <<person>> record as they anally-spit-roast <<the_pillory_person>> with strap-ons. The crowd enjoys the spectacle. <</addinlineevent>> <<addinlineevent "men strap-on" $_malestraponchance2>> Two men approach. Together they anally-spit-roast <<the_pillory_person>> with strap-ons. The crowd enjoys the spectacle. <</addinlineevent>> <<addinlineevent "policewomen penis" $_femalepenischance>> A couple of off-duty policewomen approach. They make a <<person>> record as they anally-spit-roast <<the_pillory_person>>. The crowd enjoys the spectacle. <</addinlineevent>> <<addinlineevent "women penis" $_femalepenischance2>> Two women approach. Together they anally-spit-roast <<the_pillory_person>>. The crowd enjoys the spectacle. <</addinlineevent>> <<addinlineevent "policewomen strap-on" $_femalestraponchance>> A couple of off-duty policewomen approach. They make a <<person>> record as they anally-spit-roast <<the_pillory_person>> with strap-ons. The crowd enjoys the spectacle. <</addinlineevent>> <<addinlineevent "women strap-on" $_femalestraponchance2>> Two policewomen approach. Together they anally-spit-roast <<the_pillory_person>> with strap-ons. The crowd enjoys the spectacle. <</addinlineevent>> <<runeventpool>> <</addinlineevent>> <</if>> <<if ($pillory.tenant.special.name is "" or ($pillory.tenant.person.virginity.vaginal isnot true and $pillory.tenant.person.virginity.oral isnot true)) and $_hasvagina and ($settings.straponChance gt 0 or (maleChance() gt 0 and $settings.maleNPCVaginaChance lt 100) or (maleChance() lt 100 and $settings.femaleNPCPenisChance gt 0))>> <<addinlineevent "night spitroast" $_dangerhigh2>> <<set $pillory.tenant.genital += 1>><<set $pillory.tenant.face += 1>> <<set $_malepenischance to Math.floor(maleChance()*(100-$settings.maleNPCVaginaChance)/100)>> <<set $_malestraponchance to Math.floor(maleChance()*$settings.maleNPCVaginaChance*$settings.straponChance/10000)>> <<set $_femalepenischance to Math.floor((100-maleChance())*$settings.femaleNPCPenisChance/100)>> <<set $_femalestraponchance to Math.floor((100-maleChance())*(100-$settings.femaleNPCPenisChance)*$settings.straponChance/10000)>> <<set $_malepenischance2 to 2*Math.floor(maleChance()*(100-$settings.maleNPCVaginaChance)/100)>> <<set $_malestraponchance2 to 2*Math.floor(maleChance()*$settings.maleNPCVaginaChance*$settings.straponChance/10000)>> <<set $_femalepenischance2 to 2*Math.floor((100-maleChance())*$settings.femaleNPCPenisChance/100)>> <<set $_femalestraponchance2 to 2*Math.floor((100-maleChance())*(100-$settings.femaleNPCPenisChance)*$settings.straponChance/10000)>> <<cleareventpool>> <<addinlineevent "policemen penis" $_malepenischance>> A couple of off-duty policemen approach. They make a <<person>> record as they $_ly spit-roast <<the_pillory_person>>. The crowd enjoys the spectacle. <</addinlineevent>> <<addinlineevent "men penis" $_malepenischance2>> Two men approach. Together they $_ly spit-roast <<the_pillory_person>>. The crowd enjoys the spectacle. <</addinlineevent>> <<addinlineevent "policemen strap-on" $_malestraponchance>> A couple of off-duty policemen approach. They make a <<person>> record as they $_ly spit-roast <<the_pillory_person>> with strap-ons. The crowd enjoys the spectacle. <</addinlineevent>> <<addinlineevent "men strap-on" $_malestraponchance2>> Two men approach. Together they $_ly spit-roast <<the_pillory_person>> with strap-ons. The crowd enjoys the spectacle. <</addinlineevent>> <<addinlineevent "policewomen penis" $_femalepenischance>> A couple of off-duty policewomen approach. They make a <<person>> record as they $_ly spit-roast <<the_pillory_person>>. The crowd enjoys the spectacle. <</addinlineevent>> <<addinlineevent "women penis" $_femalepenischance2>> Two women approach. Together they $_ly spit-roast <<the_pillory_person>>. The crowd enjoys the spectacle. <</addinlineevent>> <<addinlineevent "policewomen strap-on" $_femalestraponchance>> A couple of off-duty policewomen approach. They make a <<person>> record as they $_ly spit-roast <<the_pillory_person>> with strap-ons. The crowd enjoys the spectacle. <</addinlineevent>> <<addinlineevent "women strap-on" $_femalestraponchance2>> Two policewomen approach. Together they $_ly spit-roast <<the_pillory_person>> with strap-ons. The crowd enjoys the spectacle. <</addinlineevent>> <<runeventpool>> <</addinlineevent>> <</if>> <<runeventpool>> <</if>> <<else>>/* already abused recently - no action, don't want spamming this scene to accelerate things ridiculously */ The people around <<print either("jeer at","laugh at","point at","shout abuse at","taunt","mock","leer at")>> <<if Time.schoolDay and ([7, 8, 15].includes(Time.hour)) and $rng lte 34>> the <<pillory_type>>. A group of students from the nearby school pass by, gaping at <<if $pillory.tenant.lowerexposed gte 2 or $pillory.tenant.upperexposed gte 3>>the lewdly exposed prisoner. <<if $rng % 3 is 0>> An outraged bystander runs up to the pillory and replaces the <<pillory_type>>'s clothes. <<set $pillory.tenant.lowerexposed to 0>><<set $pillory.tenant.upperexposed to 0>><</if>> <<else>>the prisoner. <</if>> <<elseif Time.dayState isnot "night">> <<if $rng lte 80>> the <<pillory_type>> and <<print either("mutter among themselves.","take photos.","amuse themselves.")>> <<elseif $rng lte 90>> the <<pillory_type>>. Some get bored and leave. <<set $pillory.tenant.crowd -= 1>> <<else>> the <<pillory_type>>. A bus drops some people off nearby. A few join the crowd around the pillory. <<set $pillory.tenant.crowd += 1>> <</if>> <<else>> <<if $rng lte 67>> <<if $pillory.tenant.lowerexposed gte 2 and $rng % 4 is 0>>the <<pillory_type>> and take selfies posing around <<his>> exposed, naked ass. <<else>>the <<pillory_type>> and <<print either("mutter darkly.","drink.","throw empty beer cans.","make sinister threats.","take selfies with the prisoner.","tell dirty jokes.")>> <</if>> <<elseif $rng lte 85>> the <<pillory_type>>. Some get tired and leave. <<set $pillory.tenant.crowd -= 1>> <<else>> the <<pillory_type>>. A few people passing by join the crowd around the pillory. <<set $pillory.tenant.crowd += 1>> <</if>> <</if>> <</if>> <<set $pillory.tenant.lastViewed to Time.date.timeStamp>> <<if $pillory.tenant.upperexposed gte 3>><<set $pillory.tenant.upperexposed to 3>><</if>> <<if $pillory.tenant.lowerexposed gt 2>><<set $pillory.tenant.lowerexposed to 2>><</if>> <</widget>> <<widget "npc_pillory_release_schedule">> <<get_pillory_npc>> <br> <<set $_endTime to new DateTime($pillory.tenant.endTime)>> <<set $_timeLeft to Time.date.compareWith($_endTime)>> <<if $_timeLeft.days lt 1>> <<He>> will be released <<if $_timeLeft.hours gt 0>> in $_timeLeft.hours <<pluralise $_timeLeft.hours "hour">>. <<else>> imminently. <</if>> <<else>> <<He>> is scheduled for release <<if $_timeLeft.days is 1>>tomorrow<<else>>in two days<</if>> at <<switch $_endTime.hour>> <<case 0>>midnight. <<case 12>>noon. <<default>><<ampm $_endTime.hour>>. <</switch>> <</if>> <<endevent>> <</widget>> <<widget "end_npc_pillory">> <<get_pillory_npc>> <<if Time.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.precipitation is "rain">><<His>> clothes are see-through from the rain.<<elseif Weather.isFreezing>><<He>> shivers in the cold.<</if>> <<elseif Time.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.precipitation is "rain">><<His>> clothes are see-through from the rain.<</if>> <<else>> <<The_pillory_person>> was released and has left. A couple of civil servants clean the pillory. <</if>> <<set _totalSeconds to Time.date.compareWith(new DateTime($pillory.tenant.startTime), true) / TimeConstants.secondsPerHour>> <<set $_hours to _totalSeconds / TimeConstants.secondsPerHour>> <<set $rng += $_hours>> <<if $rng gte 67 or $rng gte 33 and Weather.precipitation is "rain">>A large crowd jeers and shouts.<</if>> <br><br> <<clear_pillory>> <<endevent>> <</widget>> <<widget "clear_pillory">> <<if $pillory.tenant and $pillory.tenant.special.name is "Whitney">> <<set C.npc.Whitney.state to "active">> <</if>> <<setup_pillory>> <</widget>> <<widget "drench">> <!-- Drench PC in lewd liquid(s). First arguments set filth type: semen(default), goo, nectar or multiple. Last argument sets level 1-5 (default 1). Body interiors will be ignored if "outside" is specified as any of the arguments. --> <!-- valid examples: <<drench>> <<drench goo nectar 3 outside>><<drench outside 2>> --> <!-- invalid example: <<drench 3 semen>> --> <<set $_outside to _args.includes("outside") ? "outside" : "all">> <!-- "outside" can appear as the last argument, if so - delete it so the $_amount will be properly detected --> <<run _args.delete("outside")>> <<set $_amount to Number.isInteger(_args.last()) ? Math.clamp(_args.last(), 1, 5) : 1>> <<set $_goo to _args.includesAny("goo", "slime", "liquid") ? "goo" : "">> <<set $_nectar to _args.includes("nectar") ? "nectar" : "">> <<set $_semen to (_args.includesAny("semen","cum") || ($_goo + $_nectar).length === 0) ? "semen" : "">> <<set $hygiene to 3000>> <<bodyliquid $_outside $_semen $_goo $_nectar $_amount>> <</widget>> <<widget "awarenessup">> <<set _awareness to _args[1]>> <<if $awareness gte _args[0]>> <span class="pink">It's nothing you weren't aware of.</span> <<else>> <<gawareness>><<awareness _awareness>> <</if>> <</widget>> <<widget "linkradiogroup">> <<set _receiver_name to _args[0]>> <<set _options to _args[1]>> <<set _set_value to State.getVar(_receiver_name)>> <span class="no-numberify"> <<for _label, _value range _options>> <<capture _receiver_name, _value>> <span @class="(_set_value is _value ? 'goldLink' : '')"> <<link _label>> <<run State.setVar(_receiver_name, _value)>> <<run Engine.show()>> <!-- refresh the page without leaving it --> <</link>> </span> <</capture>> <</for>> </span> <</widget>> <<widget "deskText">> <<if $studyBooks is undefined>> <<set $studyBooks to {}>> <<set $studyBooks.rented to "none">> <<set $studyBooks.stolen to "none">> <</if>> <<set _desk to Furniture.get('desk')>> <<set _chair to Furniture.get('chair')>> <<set _projectOptions to [$scienceproject, $mathsproject].includes("ongoing")>> <<set _bookOptions to ($studyBooks.stolen is 'Raul and Janet' or $studyBooks.rented is 'Raul and Janet' or $studyBooks.stolen is 'Pinch' or $studyBooks.rented is 'Pinch')>> <<set _wardrobe to Furniture.get('wardrobe')>> <<set _playOptions to ($englishPlay is 'ongoing' and $englishPlayRoles.Player isnot 'none')>> <<if _projectOptions || _playOptions || _bookOptions || ($christmas_wrap is 1 && $christmas_gift_robin_wrapped isnot 1) || ($christmas_wrap is 1 && $christmas_gift is "clothes_unwrapped")>> <<if _args[0] is "noicon">> Your _desk.name and <<if _chair.name isnot "chair">>_chair.article <</if>>_chair.nameSolo are wedged next to your wardrobe. <br> <<projectoptions>> <<homeStudyOptions>> <<christmas_options>> <br> <</if>> <<else>> <<if _args[0] is "icon">> <br> <<deskchairicon>>Your _desk.name and <<if _chair.name isnot "chair">>_chair.article <</if>>_chair.nameSolo are wedged next to your wardrobe. <</if>> <</if>> <</widget>> <<widget "tableText">> <<set _table to Furniture.get('table')>> <<set _chair to Furniture.get('chair')>> <<if $pregnancyStats.parasiteDoctorEvents gte 2>> <<if _args[0] is "noicon">> <<if _table>> <br> Your _table.name <<if _chair and _chair.name isnot "chair">>and one of your _chair.name are <<else>>is <</if>> situated next to a wall. <br> <<elseif _chair and _chair.name isnot "chair">> <br> One of your _chair.name is situated next to a wall. <br> <<else>> <br> Your fish tank sits on the floor. <br> <</if>> <<containersLink>> <</if>> <<else>> <<if _args[0] is "icon">> <<if _table>> <br> <<bedroomtablechairicon>> Your _table.name <<if _chair and _chair.name isnot "chair">>and a _chair.nameSolo are <<else>>is <</if>> situated next to a wall. <<elseif _chair and _chair.name isnot "chair">> <br> <<bedroomtablechairicon>> A second _chair.nameSolo is situated next to a wall. <</if>> <</if>> <</if>> <</widget>> <<widget "radiogroup">> <<set _receiver_name to _args[0]>> <<set _possible_values_by_label to _args[1]>> <<set _set_value to State.getVar(_receiver_name)>> <<for _label, _value range _possible_values_by_label>> <label> <<if _set_value is _value>> <<radiobutton _receiver_name _value checked>> <<else>> <<radiobutton _receiver_name _value>> <</if>> _label </label> <</for>> <</widget>> <<widget "settextcolorfromfemininity">> <<if _args[0] gt 0>> <<set _text_color to "pink">> <<elseif _args[0] lt 0>> <<set _text_color to "lblue">> <<else>> <<set _text_color to "">> <</if>> <</widget>> <<widget "settextcolorfromgender">> <<if _args[0] is "f">> <<set _text_color to "pink">> <<elseif _args[0] is "m">> <<set _text_color to "lblue">> <<else>> <<set _text_color to "">> <</if>> <</widget>> <<widget "cheatStart">> <<set $cheatsEnabled to true>><<money 500000 "debug">> <<set $rentmoney to 10000>><<rentmod>> <<set $renttime to 7>><<set $rentday to Time.weekDay>> <<set $rentstage to 1>> <</widget>> <<widget "swim_check">> <<if ($worn.lower.type.includes("swim") or $worn.under_lower.type.includes("swim")) or ($worn.lower.type.includes("naked") and $worn.upper.type.includes("naked") and $worn.under_upper.type.includes("naked") and $worn.under_lower.type.includes("naked"))>> <<set _swim_check to 1>> <</if>> <</widget>> <<widget "pantsable">> <!-- check if lowerwear allows for player to be pantsed or upskirted _pantsable: lowerwear can be pulled down; _upskirt: skirt can be flipped up --> <<if setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1 and ($worn.lower.set is $worn.upper.set)>> <<set _upskirt to 1>> <<set _pantsable to 0>> <<elseif setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1>> <<set _upskirt to 1>> <<set _pantsable to 1>> <<elseif ["shortalls"].includes($worn.lower.name) or ($worn.lower.set is $worn.upper.set)>> <<set _upskirt to 0>> <<set _pantsable to 0>> <<else>> <<set _upskirt to 0>> <<set _pantsable to 1>> <</if>> <</widget>> /* 0: difficulty, 1: "locks"/"target", 2: additional progress */ <<widget "skulduggeryuse">> <<if _args[0]>> <<set $_difficulty to _args[0]>> <<else>> <<set $_difficulty to ($skulduggerydifficulty + 100)>> <</if>> <<if currentSkillValue("skulduggery") lt $_difficulty>> <<skulduggeryskilluse>> <<if _args[2]>> <<skulduggery _args[2]>> <</if>> <<elseif $skulduggerysuccess or _args[1]>> <<if _args[1] is "locks">> <span class="blue">There's nothing more you can learn from locks this simple.</span> <<elseif _args[1] is "target">> <span class="blue">There's nothing more you can learn from such an easy target.</span> <<else>> <span class="blue">That was too easy. You didn't learn anything.</span> <</if>> <br><br> <</if>> <</widget>> /* 0: difficulty, 1: "locks"/"target", 2: additional progress */ <<widget "skulduggeryuseinline">> <<if _args[0]>> <<set $_difficulty to _args[0]>> <<else>> <<set $_difficulty to ($skulduggerydifficulty + 100)>> <</if>> <<if currentSkillValue("skulduggery") lt $_difficulty>> <<combatskulduggeryskilluse>> <<if _args[2]>> <<skulduggery _args[2]>> <</if>> <<elseif $skulduggerysuccess or _args[1]>> <<if _args[1] is "locks">> <span class="blue">There's nothing more you can learn from locks this simple.</span> <<elseif _args[1] is "target">> <span class="blue">There's nothing more you can learn from such an easy target.</span> <<else>> <span class="blue">That was too easy. You didn't learn anything.</span> <</if>> <</if>> <</widget>> <<widget "wetness_init">> <<if $objectVersion.vaginaWetness lt 3 or $objectVersion.vaginaWetness is undefined>> <<set $vaginaWetness to 0>> <<set $trackedArousal to [0]>> <<set $masturbation_vaginaFluid to 0>> <<set $vaginaArousalWetness to 0>> <<set $timeSinceArousal to 0>> <<set $objectVersion.vaginaWetness to 3>> <</if>> <</widget>> <<widget "hand_gag">>/*First arg the NPC index. Second arg the hand used.*/ <<if !$worn.face.type.includes("gag") and _args[0] isnot undefined>> <<if _args[1] is "left">> <<set $mouthuse to "lefthand">><<set $NPCList[_args[0]].lefthand to "mouth">> <<else>> <<set $mouthuse to "righthand">><<set $NPCList[_args[0]].righthand to "mouth">> <</if>> <</if>> <</widget>> <<widget "prop">> <<for _i = 0; _i < _args.length; _i++>> <<set $prop.push(_args[_i])>> <</for>> <</widget>> <<widget "schoolrep">> <<set $_rep to _args[0]>> <<set $_val to _args[1]>> <<if !["crossdress", "herm"].includes($_rep) or isNaN($_val)>> <<run Errors.report("schoolrep called with bad parameters", _args)>> <<elseif ["crossdress", "herm"].some(rep => $schoolrep[rep] gte 5)>> <!-- too famous, now engage in glorious nothing --> <!-- TODO: what happens when pc sex-swaps/grows slime parts/magic? --> <<elseif $_val lt 0 and !$daily.crossdressingFameReduction>> <<set $schoolrep[$_rep] to Math.max(0, $schoolrep[$_rep] + $_val)>> <<elseif $_val gt 0 and !$daily.school[$_rep] and !$worn.face.type.includes("mask")>> <!-- can only get rep once a day, and can't reduce it later that day --> <<set $daily.school[$_rep] to 1>> <<set $daily.crossdressingFameReduction to true>> <!-- cap max rep at 5 --> <<set $schoolrep[$_rep] to Math.min($schoolrep[$_rep] + $_val, 5)>> <!-- for herm pcs, some students can still assume you're crossdressing if they don't know any better. ensure they know better --> <<set $schoolrep.crossdress to Math.min(5 - $schoolrep.herm, $schoolrep.crossdress)>> <<if $schoolrep[$_rep] is 5>> <!-- now all of china knows you're $_rep --> <<run ["Kylar", "Whitney", "Sydney", "Sirris", "River", "Doren", "Winter", "Mason", "Leighton"].forEach(n => $genderknown.pushUnique(n))>> <</if>> <!-- finally, send the message. expands to $school_crossdress_message or $school_herm_message --> <<set V["school_" + $_rep + "_message"] to $schoolrep[$_rep]>> <</if>> <</widget>> <<widget "schoolrep_naked">> /* _args[0] is used as an overwrite to perform retroactive school reputation changes. For example, if a video of the player nude circulates. If we just call "schoolrep_naked" when the news breaks and the player is wearing a chasitiy belt right now, but NOT in the video, reputaiton will update incorrectly. Same is true vice versa. The intended use-case of _args[0] is by saving a boolean of the status of playerChasity(Hidden) *at the time the video was recorded*, and then input that boolean into _args[0] when the video circulates. Look at my implimentation of $flyover_chaste to see the intended use in action. */ <<if !playerChastity("hidden") or _args[0] is false>> <<if $player.penisExist and $player.vaginaExist>> <<schoolrep herm 1>> <<elseif isCrossdressing()>> <<schoolrep crossdress 1>> <<elseif $player.sex is $player.gender_appearance and $schoolrep.crossdress gt 0 and !$daily.crossdressingFameReduction and random(0,100) lt $schoolrep.crossdress * 3>> <<schoolrep crossdress -1>> <<set $daily.crossdressingFameReduction to true>> <</if>> <</if>> <</widget>> <<widget "combat_lewdity_text">> <<combat_promiscuity_text>> <<combat_deviancy_text>> <</widget>> <<widget "adjust_school_traits">> <<if $science gte 1000>> <<set $sciencetrait to 4>> <<elseif $science gte 700>> <<set $sciencetrait to 3>> <<elseif $science gte 400>> <<set $sciencetrait to 2>> <<elseif $science gte 200>> <<set $sciencetrait to 1>> <<else>> <<set $sciencetrait to 0>> <</if>> <<if $maths gte 1000>> <<set $mathstrait to 4>> <<elseif $maths gte 700>> <<set $mathstrait to 3>> <<elseif $maths gte 400>> <<set $mathstrait to 2>> <<elseif $maths gte 200>> <<set $mathstrait to 1>> <<else>> <<set $mathstrait to 0>> <</if>> <<if $english gte 1000>> <<set $englishtrait to 4>> <<elseif $english gte 700>> <<set $englishtrait to 3>> <<elseif $english gte 400>> <<set $englishtrait to 2>> <<elseif $english gte 200>> <<set $englishtrait to 1>> <<else>> <<set $englishtrait to 0>> <</if>> <<if $history gte 1000>> <<set $historytrait to 4>> <<elseif $history gte 700>> <<set $historytrait to 3>> <<elseif $history gte 400>> <<set $historytrait to 2>> <<elseif $history gte 200>> <<set $historytrait to 1>> <<else>> <<set $historytrait to 0>> <</if>> <<set $english to Math.clamp($english, 0, 1000)>> <<set $maths to Math.clamp($maths, 0, 1000)>> <<set $science to Math.clamp($science, 0, 1000)>> <<set $history to Math.clamp($history, 0, 1000)>> <</widget>> /* Argument 1 is base amount. You can also use decimals. Argument 2 is variation. Argument 3 is crime. Argument 4 is source. Best to use <<money x>><<printmoney x>> when args 2 and 3 are both false. <<moneyGain 1>> will give £1.00 which is not stolen. <<moneyGain 1 false false>> will give £1.00 which is not stolen. <<moneyGain 1 true>> will give between £0.80 and £1.20 which is not stolen. <<moneyGain 1 true true>> will give between £0.80 and £1.20 which is stolen and can scale further with skulduggery. <<moneyGain 1 false true>> will give £1.00 which is stolen and can scale with skulduggery. */ <<widget "moneyGain">><<silently>> <<if _args[0]>> <<set _base_amount to _args[0] * 100>> <<else>> <<set _base_amount to 100>> <</if>> <<if _args[1]>> <<set _variation to Math.floor(random(Math.floor(_base_amount / 5 * -1), Math.floor(_base_amount / 5)))>> <<else>> <<set _variation to 0>> <</if>> <<if _args[2]>> <<set _skulduggeryMulti to (1 + (currentSkillValue('skulduggery') / 2000))>> <<else>> <<set _skulduggeryMulti to 1>> <</if>> <<set _money_gain to Math.floor((_base_amount + _variation) * _skulduggeryMulti)>> <<if _args[2]>> <<crimeUp `_money_gain / 100` "thievery">> <</if>> <<money _money_gain `_args[3] ? _args[3] : (_args[2] ? "thievery" : "")`>> <</silently>><<printmoney _money_gain>><</widget>> /* Used like above, but only shows the money amount, doesn't add money or crime. Use <<crimeUp `_money_gain / 100`>> and <<money _money_gain>> where necessary in links, etc. */ <<widget "moneyGainDisplay">><<silently>> <<if _args[0]>> <<set _base_amount to _args[0] * 100>> <<else>> <<set _base_amount to 100>> <</if>> <<if _args[1]>> <<set _variation to Math.floor(random(Math.floor(_base_amount / 5 * -1), Math.floor(_base_amount / 5)))>> <<else>> <<set _variation to 0>> <</if>> <<if _args[2]>> <<set _skulduggeryMulti to (1 + (currentSkillValue('skulduggery') / 2000))>> <<else>> <<set _skulduggeryMulti to 1>> <</if>> <<set _money_gain to Math.floor((_base_amount + _variation) * _skulduggeryMulti)>> <</silently>><<printmoney _money_gain>><</widget>> <<widget "printmoney">><<silently>><!-- (amount in pennies, highlight toggle) --> <<if _args.length gt 2 or typeof(_args[0]) isnot "number">><!-- sanity checks --> <<set $_printmoney to '<span class="red">printmoney error: invalid arguments: _args</span>'>> <<else>> <<set $_printmoney to formatMoney(_args[0])>> <</if>> <<set $_text_output to `<span @class='_args[1]?_args[1]:"gold"'>` + $_printmoney + '</span>'>> <</silently>><<print $_text_output>><</widget>> <<widget "sadism">> <<if _args[0] and $sadism lt 1000>> <<set $sadism += _args[0]>> <<set $sadism to Math.clamp($sadism, 0, 1000)>> <</if>> <</widget>> <<widget "masochism">> <<if _args[0] and $masochism lt 1000>> <<set $masochism += _args[0]>> <<set $masochism to Math.clamp($masochism, 0, 1000)>> <</if>> <</widget>> <<widget "enable_rescue">> <<set $rescue to 1>> <</widget>> <<widget "hypnotised">> <<if _args[0]>> <<set $hypnotised += _args[0]>> <</if>> <</widget>> <<widget "giftSexToys">> <!-- _args[0] is the named NPC. --> <!-- Currently only works for strap-ons. Will need a refactor when other toy scenes are written. --> <<run window.handSextoysGiftToNPC(_args[0])>> <<set _strapons to checkIfNPCHasCategorySextoy(_args[0],"strap-on")>> <<if _strapons.length > 0>> <<for _i = 0; _i lt _strapons.length; _i++>> <<if _strapons[_i].shape is undefined>> <<set _strapons[_i].shape to "dildo">> <</if>> <<if _strapons[_i].prefixdescriptor is undefined>> <<set _strapons[_i].prefixdescriptor to "">> <</if>> <<generateNewStrapon _strapons[_i].size _strapons[_i].colour _strapons[_i].shape>> <<giveNNPCnewstrapon _args[0]>> <</for>> <</if>> <</widget>> <<widget "bodyliquid">><<silently>> <!-- first argument is either bodypart, all, outside, inside, or clear (required) --> <!-- second and later arguments are liquid types (semen, goo, nectar, or all; at least one required) --> <!-- last argument is optional and if numeric - specifies the amount (default: 1) --> <!-- process first argument and delete it so <<bodyliquid all all>> will work as expected --> <<set $_bodypart to _args[0]>> <<run _args.deleteAt(0)>> <<set $_clear to $_bodypart is "clear">> <<switch $_bodypart>> <<case "all" "clear">> <!-- use clone() to make sure we're not modifying setup --> <<set $_bodypart to clone(setup.bodyliquid.bodyparts)>> <<case "outside">> <<set $_bodypart to clone(setup.bodyliquid.bodyparts)>> <<run $_bodypart.delete(setup.bodyliquid.innerbodyparts)>> <<case "inside">> <<set $_bodypart to clone(setup.bodyliquid.innerbodyparts)>> <<default>> <<if setup.bodyliquid.bodyparts.includes($_bodypart)>> <<set $_bodypart to [$_bodypart]>> <<else>> <<set $_fail to true>> <</if>> <!--/case --> <</switch>> <<if !$_fail and (!$_clear or _args.last() lte -5)>> <<if !V.player.penisExist>> <<run $_bodypart.delete("penis")>> <</if>> <<if !V.player.vaginaExist>> <<run $_bodypart.delete("vagina", "vaginaoutside")>> <</if>> <<if $_bodypart.length is 0 and $options.debugdisable is "f">> <<run console.log(Utils.GetStack(), "- attempt to slap bodyliquid on nonexistent genitals failed successfully")>> <</if>> <</if>> <!-- select which liquids to modify, fail if none --> <<if $_clear or _args.includes("all")>> <<set $_liquids to clone(setup.bodyliquid.liquidtype)>> <<else>> <<set $_liquids to []>> <<if _args.includesAny("goo", "slime", "fluid")>> <!-- "slime" alternative because slime is a common descriptor --> <!-- "fluid" alternative for <<tentacleadv>> --> <<set $_liquids.push("goo")>> <</if>> <<if _args.includes("nectar")>> <<set $_liquids.push("nectar")>> <</if>> <</if>> <<if _args.includesAny("cum", "semen")>> <!-- "cum" alternative because cum is a common descriptor --> <<set $_liquids.push("semen")>> <</if>> <<if $_liquids.length is 0>> <<set $_fail to true>> <</if>> <!-- process The Final Argument, if integer - assume amount, else default to 1 --> <<if $_clear>> <<set $_amount to -10>> <<elseif Number.isInteger(_args.last())>> <<set $_amount to _args.last()>> <<else>> <<set $_amount to 1>> <</if>> <<if $_fail is true>> <<else>> <<for $_part range $_bodypart>> <<for $_type range $_liquids>> <<set $player.bodyliquid[$_part][$_type] to Math.clamp($player.bodyliquid[$_part][$_type] + $_amount, 0, 5)>> <</for>> <</for>> <</if>> <</silently>> <<if $options.debugdisable is "f" and $_fail is true>> <<error { message : `bodyliquid widget on ${Utils.GetStack()} failed, please report`, source : `Arguments: ${$_bodypart} | ${_args[0]} | ${_args[1]} | ${_args[2]} | ${_args[3]}.` }>> <</if>> <</widget>> <<widget "semenswallowedstat">> <<if $statFreeze isnot true and _args[0] isnot undefined>> <<set $semenswallowedstat += _args[0]>> <<purity -1>> <</if>> <</widget>> <<widget "animalsemenswallowedstat">> <<if $statFreeze isnot true and _args[0] isnot undefined>> <<set $animalsemenswallowedstat += _args[0]>> <<purity -1>> <</if>> <</widget>> <<widget "visionPrepMorph">> /* !!!!! Should be used after <<freezePlayerStats>> !!!!!! Resets stats to a default state in preparation to transform player into another character. */ <<if !$frozenValues>> <<error {message:"<<visionPrepMorph>> was called, but player stats are not frozen!"}>> <<exitAll>> <</if>> <<set $worn.genitals to clone(setup.clothes.genitals[0])>> <<run delete V.worn.butt_plug>> <<set $clothingrebuy to 0>> <<if $worn.neck.cursed is 1>> <<set $worn.neck.type.push("broken")>> <<neckruined>> <</if>> <<for _bodypart range $parasite.bodyparts>> <<set $parasite[_bodypart] to {}>> <</for>> <<resetEarSlime>> <<parasiteinit>> <<bodyliquid "clear">> <<bodywriting_init>> <<set $player.virginity to {anal:true,oral:true,penile:true,vaginal:true,temple:false,handholding:true,kiss:true}>> <<set $combat to 0>> <<set $pain to 0>> <<set $arousal to 0>> <<set $tiredness to 0>> <<set $stress to 0>> <<set $trauma to 0>> <<set $control to 500>> <<set $angel to 0>> <<set $angelbuild to 0>> <<set $fallenangel to 0>> <<set $fallenbuild to 0>> <<set $demon to 0>> <<set $demonbuild to 0>> <<set $wolfgirl to 0>> <<set $wolfbuild to 0>> <<set $cat to 0>> <<set $catbuild to 0>> <<set $cow to 0>> <<set $cowbuild to 0>> <<set $harpy to 0>> <<set $birdbuild to 0>> <<set $fox to 0>> <<set $foxbuild to 0>> <<run Object.keys(V.transformationParts).forEach((tf) => { Object.entries(V.transformationParts[tf]).forEach(([part, value]) => { if (value !== 'disabled' && value !== 'hidden') { V.transformationParts[tf][part] = 'hidden'; } }); })>> <<set $skulduggery to 0>> <<set $spray to 0>> <<set $auriga_scar to 0>> <<set Skin.color.natural to "light">> <<set Skin.color.tan to 0>> <<set $facevariant to "default">> <</widget>> <<widget "angelBanishAction">> <<set $angelBanish -->> /* Warning: assumes the player has at least 1 banishment charge*/ <<set _multi to $purity gte 1000 ? 2 : 1>> <<defiance `($purity / 100) * _multi`>> <</widget>>/* This is special passage to avoid false positive error in sanityCheck build script. Do not uncomment anything! $dancestudioanger $wolfpackrob $torturesurvivor $winterlakeknown $robinrescued $sleeptransform $diagnosis $passage $tags C.npc.Avery.lust $hairtest $initnpccompatibility $averydom $futureupdate *//* We have lists of remarks separated based on contextual relevance to let the user determine what's needed and offer variety without repeating ourselves. * It also allows us to separate our data depending on what would and wouldn't make sense to hear in a given situation, there's no sense in rejecting someone * for their penis size if the actual agent is about to sit on their dick. */ <<widget "bodycommentsetdata">> /* * penis size * I've grouped things into categories to make them easier to fit to specific uses, questioning and asserting that a penis is useless is inappropriate * in some cases but in other cases affection is inappropriate * * the current groupings I've chosen for what I've come up with are as follows: * affection: all comments expressing affection towards the persons size * size_remarks: plain descriptions of lack of size * surprise: all comments expressing surprise or incredulity at their size or lack of size (think comments with "how" in them) * insult: all derisive comments intended to hurt the persons feelings * question_use: all questions suggesting the penis is unfit for purpose * assert_useless: flat out assert the penis is useless */ /* * sod it, ugly messy shit with 0 regard for scope it is, because twine hates us all * this is how were going to output text, were going to modify this thing wherever we like * may god have mercy upon my soul */ <<set _output_line to "">> /* big pp */ <<set _big_penis_affection to [ "giddyup horsey,", "like a fucking horse,", "you're so big, you might break me,", "you're huge,", "I bet bigger tastes better," ]>> <<set _big_penis_size_remarks to [ "I've seen ponies smaller than that,", "that is ginormous,", "that's massive,", "it's so big," ]>> <<set _big_penis_surprise to [ "how the hell are you that hung?", "oh my god, it's ginormous,", "I've never in my life seen a dick that big,", "oh wow, that is huge,", "Jesus fucking Christ that's big,", "wow, you're hung like a horse,", "it's so big!" ]>> <<set _big_penis_question_use to [ "can that massive thing even fit inside anyone?", "how the hell do you even get something like that inside you?", "can you even get hard without passing out with a dick that big?" ]>> /* normal pp */ <<set _normal_penis_size_remarks to [ "I prefer bigger ones, myself,", "not the biggest I've ever seen,", "I'm glad it's not too small,", "it's just the right size to suck,", "such a perfect size," ]>> <<set _normal_penis_affection to [ "that cock is perfect decoration,", "I want a picture of that penis,", "that penis is adorable,", "that cock looks tasty,", "I've never seen a cock so cute," ]>> /* smol pp */ <<set _small_penis_affection to [ "what a cute little dick,", "what a cute little dicklet,", "Such a small and cute penis,", "it's so small and cute,", "what an adorable penis," ]>> <<set _small_penis_size_remarks to [ "it's tiny,", "it's smaller than my finger,", "it's so small,", "I've seen flash drives bigger than that,", "I've seen batteries bigger than that," ]>> <<set _small_penis_surprise to [ "how the hell are you that small?", "I thought <<pher>> penis would be bigger,", "oh my god, it's tiny,", "oh my god, it's smaller than my finger,", "<<pShes>> so small!" ]>> <<set _small_penis_insult to [ "what a pathetic little shrimp dick,", "nice dick, loser," ]>> <<set _small_penis_question_use to [ "well you're not much good down there, are you?", "who exactly are you planning on fucking with that tiny thing?" ]>> <<set _small_penis_assert_useless to [ "a dick that small belongs in chastity, you're not going to be using it anyway,", "oh my god, that little thing should be locked up," ]>> /* micro pp */ <<set _micropenis_size_remarks to [ "that looks more like a swollen clit than a dick,", "I've seen coins bigger than that,", "It's so cute and tiny," ]>> <<set _micropenis_surprise to [ "how the hell are you so tiny?", "<<pShes>> so tiny!", "it's so tiny!", "oh my god, it's like an acorn,", "I can't believe it's so tiny," ]>> <<set _micropenis_insult to [ "no amount of oral is making up for that,", "nice little willy you've got, try not to hurt anyone with it,", "I've never seen such a pathetic penis," ]>> <<set _micropenis_question_use to [ "can that little dick of yours even get inside a woman?" ]>> <<set _micropenis_assert_useless to [ "there's no way a dick that small could ever please anyone,", "Christ, I would be surprised if that could get past someone's lips," ]>> <<set _big_penis_all to []>> <<set _big_penis_all to _big_penis_all.concat(_big_penis_affection)>> <<set _big_penis_all to _big_penis_all.concat(_big_penis_size_remarks)>> <<set _big_penis_all to _big_penis_all.concat(_big_penis_surprise)>> <<set _big_penis_all to _big_penis_all.concat(_big_penis_question_use)>> <<set _normal_penis_all to []>> <<set _normal_penis_all to _normal_penis_all.concat(_normal_penis_size_remarks)>> <<set _normal_penis_all to _normal_penis_all.concat(_normal_penis_affection)>> <<set _small_penis_all to []>> <<set _small_penis_all to _small_penis_all.concat(_small_penis_affection)>> <<set _small_penis_all to _small_penis_all.concat(_small_penis_size_remarks)>> <<set _small_penis_all to _small_penis_all.concat(_small_penis_surprise)>> <<set _small_penis_all to _small_penis_all.concat(_small_penis_insult)>> <<set _small_penis_all to _small_penis_all.concat(_small_penis_question_use)>> <<set _small_penis_all to _small_penis_all.concat(_small_penis_assert_useless)>> <<set _micropenis_all to []>> <<set _micropenis_all to _micropenis_all.concat(_micropenis_size_remarks)>> <<set _micropenis_all to _micropenis_all.concat(_micropenis_surprise)>> <<set _micropenis_all to _micropenis_all.concat(_micropenis_insult)>> <<set _micropenis_all to _micropenis_all.concat(_micropenis_question_use)>> <<set _micropenis_all to _micropenis_all.concat(_micropenis_assert_useless)>> <</widget>> <<widget "generatepenisremark">> /* if we haven't set our data yet */ <<if !_big_penis_all or !_small_penis_all or !_micropenis_all or !_normal_penis_all>> <<bodycommentsetdata>> <</if>> <<set _output_line to "">> <<set _possibilities to []>> /* do we have anything notable downstairs */ <<if $player.penissize is 4>> /* big pp */ <<set _possibilities to _big_penis_all>> <<set _output_line to _possibilities.pluck()>> <<elseif $player.penissize <=1 and $player.penissize > -1>> /* smol pp */ <<set _possibilities to _small_penis_all>> <<set _output_line to _possibilities.pluck()>> <<if _args[0] is "capitalise">> <<set _output_line to _output_line[0].toUpperCase() + _output_line.substring(1)>> <</if>> <<elseif $player.penissize lte -1>> /* micro pp */ <<set _possibilities to _micropenis_all>> <<set _output_line to _possibilities.pluck()>> <<else>> /* normal pp */ <<set _possibilities to _normal_penis_all>> <<set _output_line to _possibilities.pluck()>> <</if>> <</widget>> /* modifier widgets because boy do i love bad practises */ <<widget "bodyremarkcapitalise">> <<set _output_line to _output_line[0].toUpperCase() + _output_line.substring(1)>> <</widget>> <<widget "bodyremarkcomma">> <<if !_output_line[_output_line.length - 1].match(/[.,:;!?]/)>> <<set _output_line to _output_line + ",">> <</if>> <</widget>> <<widget "bodyremarkstop">> <<if !_output_line[_output_line.length - 1].match(/[.,:;!?]/)>> <<set _output_line to _output_line + ".">> <</if>> <</widget>> /* hellish mess of output widget defitions */ <<widget "penisremark">> <<generatepenisremark>> <<print _output_line>> <</widget>> <<widget "Penisremark">> <<generatepenisremark>> <<bodyremarkcapitalise>> <<print _output_line>> <</widget>> <<widget "penisremarkquote">> <<generatepenisremark>> "<<print _output_line>>" <</widget>> <<widget "Penisremarkquote">> <<generatepenisremark>> <<bodyremarkcapitalise>> "<<print _output_line>>" <</widget>> <<widget "penisremarkstop">> <<generatepenisremark>> <<bodyremarkstop>> <<print _output_line>> <</widget>> <<widget "Penisremarkstop">> <<generatepenisremark>> <<bodyremarkcapitalise>> <<bodyremarkstop>> <<print _output_line>> <</widget>> <<widget "penisremarkstopquote">> <<generatepenisremark>> <<bodyremarkstop>> "<<print _output_line>>" <</widget>> <<widget "Penisremarkstopquote">> <<generatepenisremark>> <<bodyremarkcapitalise>> <<bodyremarkstop>> "<<print _output_line>>" <</widget>> <<widget "penisremarkcomma">> <<generatepenisremark>> <<bodyremarkcomma>> <<print _output_line>> <</widget>> <<widget "Penisremarkcomma">> <<generatepenisremark>> <<bodyremarkcapitalise>> <<bodyremarkcomma>> <<print _output_line>> <</widget>> <<widget "penisremarkcommaquote">> <<generatepenisremark>> <<bodyremarkcomma>> "<<print _output_line>>" <</widget>> <<widget "Penisremarkcommaquote">> <<generatepenisremark>> <<bodyremarkcapitalise>> <<bodyremarkcomma>> "<<print _output_line>>" <</widget>> <<widget "pillorypeniscomment">> <<Penisremarkquote>> a person in the crowd yells. <<trauma 5>><<gtrauma>> <<incgpenisinsecurity>> <</widget>><<widget "exhibitionismsetdata">> <<set _output_line to "">> /* big pp */ <<set _seatedflashcrotchunderskirtlines to [ "you stretch your leg, raising it up into the air and wiggling your foot a little to prolong your exposure", "you part your knees a little as you stretch, bringing your feet a little closer together to widen the gap", "you lift your feet up as you stretch, rocking yourself back a little in your seat and wiggling your feet a little as you \"accidentally\" part your legs", "you reach down a little and move your foot to one side, reaching down to scratch a non-existent itch on your leg and stabilising by moving your other leg even further apart", "you act as if you have some particularly uncomfortable debris stuck on your foot, lifting it up and bringing it close to your body in search of a non-existent pebble" ]>> <<set _exhibitionismdata_isinit to 1>> <</widget>> /* generic output modification */ <<widget "exhibitionismoutputlinecapitalise">> <<set _output_line to _output_line[0].toUpperCase() + _output_line.substring(1)>> <</widget>> <<widget "exhibitionismoutputlinecomma">> <<if !_output_line[_output_line.length - 1].match(/[.,:;!?]/)>> <<set _output_line to _output_line + ",">> <</if>> <</widget>> <<widget "exhibitionismoutputlinestop">> <<if !_output_line[_output_line.length - 1].match(/[.,:;!?]/)>> <<set _output_line to _output_line + ".">> <</if>> <</widget>> /* seated crotch flash under skirt */ <<widget "seatedflashcrotchunderskirtline">> <<if ndef _exhibitionismdata_isinit>> <<exhibitionismsetdata>> <</if>> <<set _output_line to _seatedflashcrotchunderskirtlines.pluck()>> <</widget>> <<widget "seatedflashcrotchunderskirt">> <<seatedflashcrotchunderskirtline>> <<print _output_line>> <</widget>> <<widget "Seatedflashcrotchunderskirt">> <<seatedflashcrotchunderskirtline>> <<exhibitionismoutputlinecapitalise>> <<print _output_line>> <</widget>> <<widget "seatedflashcrotchunderskirtcomma">> <<seatedflashcrotchunderskirtline>> <<exhibitionismoutputlinecomma>> <<print _output_line>> <</widget>> <<widget "Seatedflashcrotchunderskirtcomma">> <<seatedflashcrotchunderskirtline>> <<exhibitionismoutputlinecapitalise>> <<exhibitionismoutputlinecomma>> <<print _output_line>> <</widget>> <<widget "seatedflashcrotchunderskirtstop">> <<seatedflashcrotchunderskirtline>> <<exhibitionismoutputlinestop>> <<print _output_line>> <</widget>> <<widget "Seatedflashcrotchunderskirtstop">> <<seatedflashcrotchunderskirtline>> <<exhibitionismoutputlinecapitalise>> <<exhibitionismoutputlinestop>> <<print _output_line>> <</widget>><<widget "EZdisgusting">> <<set _possibilities to [ "disgusting", "foul", "repulsive", "nasty", "gross", "vile", "nauseating", "revolting", "rotten" ]>> <<print _possibilities.pluck()>> <</widget>> <<widget "EZsmall">> <<set _possibilities to [ "little", "tiny", "small", "miniature", "mini" ]>> <<print _possibilities.pluck()>> <</widget>> <<widget "EZbig">> <<set _possibilities to [ "big", "huge", "giant", "massive" ]>> <<print _possibilities.pluck()>> <</widget>> <<widget "EZpenis">> <<set _possibilities to [ "penis", "dick", "cock", "willy" ]>> <<print _possibilities.pluck()>> <</widget>>/* Bite-sized events based on the current season and weather. Made to be easily expandable and using the new event pool system. * These are all treated as their own event passages, except for the lake, where they happen in addition to any other event. Other locations can be made to follow this behaviour in the future. * Exit passage depends on location. Town uses destinationeventend, forest uses the normal forest passage, etc. Called separately from the eventAmbient widget. Further control may be needed in the future, should any of these scenes expand into player choices. * Winter events and Snow events are not mutually exclusive. Rain, however, overrides other seasonal event pools. In the future, every season and weather combination could have a unique pool. * Future-proofed for snow outside of the Winter season. * -Puri */ <<widget "eventAmbient">> <<cleareventpool>> <<set $_weatherFlag to Weather.isSnow && Time.season === "winter" || Weather.precipitation is "snow" ? "snow" : Weather.precipitation === "rain" ? "rain" : Time.season>> <<switch ($_weatherFlag)>> <<case "snow">> <<if Time.season is "winter">> <<if Weather.isFreezing>> <<addinlineevent "winter_anywhere_1">> A brutally cold wind surges. You hug yourself for warmth until it dies down. <<stress 3>><<gstress>> <</addinlineevent>> <</if>> <<addinlineevent "winter_anywhere_2" 0.5>> <<dancedifficulty 1 1000 true>> You step into some snow that was deeper than you first thought, <<if $danceSuccess>> <span class="green">but you manage to keep your footing.</span> <<else>> <span class="red">and you lose your footing.</span> <<if playerIsPregnant() and playerAwareTheyArePregnant()>> The soft, cold snow absorbs the shock of your fall as you land on your butt. You climb to your feet, grateful that the snow cushioned your <<bellyDescription "pc">> from harm. <<else>> You land on your butt in the cold snow before climbing to your feet. <</if>> <<if !$worn.lower.type.includes("swim") and !$worn.lower.type.includes("naked")>><<lowerwet 75>><<elseif $worn.lower.type.includes("naked") and !$worn.under_lower.type.includes("swim") and !$worn.under_lower.type.includes("naked") and !playerChastity()>><<underlowerwet 75>><</if>><<stress 6>><<pain 4>><<gstress>><<gpain>> <<if $exposed gt 0>> <br><br> <<covered>> <</if>> <</if>> <</addinlineevent>> <<if Time.hour gte 6 and Time.hour lt 21>> <<addinlineevent "winter_anywhere_3">> You catch a brief ray of sunshine and warmth. <<stress -3>><<lstress>> <</addinlineevent>> <</if>> <<if ["town", "park"].includes($location) and Time.hour gte 7 and Time.hour lt 21 and playerIsPregnant() and playerAwareTheyArePregnant()>> <<addinlineevent "winter_pregnant_watch">> You see a group of kids playing. They're making a fort out of snow and pelting snowballs at one another. You rub your <<bellyDescription "pc">> and wonder if your <<pregnancyBabyText "pc">> will be as boisterous as they are. <<stress -3>><<lstress>> <</addinlineevent>> <</if>> <<switch $location>> <<case "town">> <<addinlineevent "winter_anystreet_1" 0.5>> <<athleticsdifficulty 0 800 true>> A car rushes by, sending a spray of slush onto the pavement. <<if $athleticsSuccess>> <span class="green">You manage to jump out of the way just in time.</span> <<else>> <span class="red">It completely drenches you before you can react, leaving you freezing.</span> <<if !$worn.upper.type.includes("swim") and !$worn.upper.type.includes("naked")>> <<upperwet 200>> <</if>> <<if !$worn.under_upper.type.includes("swim") and !$worn.under_upper.type.includes("naked") and !$worn.under_upper.type.includes("chastity")>> <<underupperwet 200>> <</if>> <<if !$worn.lower.type.includes("swim") and !$worn.lower.type.includes("naked")>> <<lowerwet 200>> <</if>> <<if !$worn.under_lower.type.includes("swim") and !$worn.under_lower.type.includes("naked") and !playerChastity()>> <<underlowerwet 200>> <</if>> <<effectswater "slush">> <<covered>> <</if>> <</addinlineevent>> <<addinlineevent "winter_anystreet_2">> <<beastNEWinit 1 dog>> A <<beasttype>> jumps excitedly back and forth in the snow, trying to wrestle it into submission. <<stress -3>><<lstress>> <<endevent>> <</addinlineevent>> <<if Time.hour gte 6 and Time.hour lt 21>> <<addinlineevent "winter_anystreet_3">> A snowplow rumbles past and the driver honks and waves at you. <<stress -3>><<lstress>> <</addinlineevent>> <</if>> <<case "alley">> <<addinlineevent "winter_anyalley_1">> <<set Weather.Temperature.override.increase.outside(5, "The nearby fire warms you up a little.")>> You find an abandoned trash can fire, still lit. You take a moment to warm yourself. <<stress -3>><<lstress>> <</addinlineevent>> <<addinlineevent "winter_anyalley_2">> <<beastNEWinit 3 cat>> You pass by some stray <<beastsplural>> playing in the snow. <<stress -3>><<lstress>> <<endevent>> <</addinlineevent>> <<addinlineevent "winter_anyalley_3" 0.5>> <<athleticsdifficulty 0 1000 true>> As you pass through the alleyway, you hear a sharp crack from above. Some snow falls loose from a window ledge above, <<if $athleticsSuccess>> <span class="green">but you manage to jump out of the way just in time.</span> <<else>> <span class="red">crashing down on top of you.</span> <<upperwet 75>><<stress 6>><<pain 4>><<gstress>><<gpain>> <br><br> <<covered>> <</if>> <</addinlineevent>> <<case "park">> <<addinlineevent "winter_park_1">> <<if Time.hour gte 6 and Time.hour lt 21>> You pass by people making angels in the snow. They look carefree. <<stress -3>><<lstress>> <<else>> You pass by a snow angel. <<if $angel gte 6>> You rub your wings and smile. <<elseif $fallenangel gte 2>> You angrily kick snow over it, suppressing a painful memory. <<elseif $demon gte 6>> You use your foot to give it horns and a tail, giggling to yourself. <</if>> <<stress -3>><<lstress>> <</if>> <</addinlineevent>> <<if Time.hour gte 6 and Time.hour lt 21>> <<addinlineevent "winter_park_2">> You see some orphans laughing as they collaborate to build a snowman. <<stress -3>><<lstress>> <</addinlineevent>> <<addinlineevent "winter_park_3" 0.33>> You're suddenly pelted with a slushy snowball. You turn to see <<if isInPark("whitney")>> Whitney, quickly wiping snow from <<nnpc_his "Whitney">> hands. <<if isLoveInterest("Whitney")>><<stress -3>><<lstress>><<else>><<stress 12>><<ggstress>><</if>> <<else>> several delinquents laughing at you. <<stress 12>><<ggstress>> <</if>> <</addinlineevent>> <</if>> <<case "forest">> <<addinlineevent "winter_forest_1" 0.33>> You hear a thunderous crack nearby. You turn around just in time to see the remains of a tree fall to the ground, surrounded by a great circle of splinters. <<stress 12>><<ggstress>> <</addinlineevent>> <<addinlineevent "winter_forest_2">> You find wolf tracks in the snow. <<if $wolfgirl gte 3>><<garousal>><<arousal 600>><<else>><<gstress>><<stress 1>><</if>> <</addinlineevent>> <<addinlineevent "winter_forest_3">> You find a well-built snowman leaning against a tree. The pose work is impressive. Someone spent a lot of time on this. <<stress -3>><<lstress>> <</addinlineevent>> <<if $settings.plantsEnabled and $settings.tentaclesEnabled and ($hallucinations gte 2 or $backgroundTraits.includes("plantlover"))>> <<addinlineevent "winter_forest_4" 0.5>> <<generatePlant1>><<person1>> You see a <<personsimple>> walking through the snow. <<He>> turns and waves at you, before bumping into a tree <<he>> didn't notice. <<Plant_details>> get dislodged from <<his>> hair, and <<he>> pouts. <<stress -3>><<lstress>> <<endevent>> <</addinlineevent>> <</if>> <<case "bog">> <<addinlineevent "winter_bog_1">> The bog is profoundly silent. <<if $bogwater gte 1>> Your movement through the water is the only sound. <<else>> Your footsteps on the walkway are the only thing to break the silence. <</if>> It's peaceful and almost relaxing. <<stress -3>><<lstress>> <</addinlineevent>> <<addinlineevent "winter_bog_2">> Parts of the bog have frozen over in patches. What little light breaks through casts brilliant reflections. <</addinlineevent>> <<case "moor">> <<addinlineevent "winter_moor_1" 0.33>> You find a hideous snowman standing in a circle of pillars made of ice. <<if $hallucinations gte 2>>You turn away, only to hear a loud snap behind you. You look back, and it's gone. <<stress 24>><<gggstress>><<else>><<stress 6>><<gstress>><</if>> <</addinlineevent>> <<addinlineevent "winter_moor_2" 0.5>> You come across a frozen pond and look down at your reflection. <<if $hallucinations gte 2>> <span class="red">Something inhuman scrapes at the ice from below.</span> You scramble away, nearly slipping. <<stress 24>><<gggstress>> <<elseif $hallucinations gte 1>> The surface churns and warps as if it weren't frozen, and you're almost certain that the reflection isn't yours. <<stress 12>><<ggstress>> <<elseif $hallucinogen gt 0>> The surface ripples at your presence, and a vaguely familiar <<girl>> stares back through the ice. Your breath catches in your throat for a moment, before you decide to look away. <<stress 12>><<ggstress>> <<elseif $trauma gte $traumamax>> A <<girl>> with glazed eyes stares back. <<elseif $pain gte 100>> A crying <<girl>> stares back. <<elseif $pain gte 40>> A tearful <<girl>> stares back. <<elseif $pain gte 1>> A frowning <<girl>> stares back. <<else>> A cheerful <<girl>> stares back. <<stress -3>><<lstress>> <</if>> <</addinlineevent>> <<if Time.hour gte 6 and Time.hour lt 21>> <<addinlineevent "winter_moor_3">> You see some late birds flying south for the winter. <<stress -3>><<lstress>> <</addinlineevent>> <</if>> <<default>> <</switch>> <</if>> <<if Weather.precipitation is "snow">> <<addinlineevent "snow_anywhere_1">> A single snowflake lands softly on the tip of your nose. You stop to regard it with wonder for a few moments. <<stress -1>><<lstress>> <</addinlineevent>> <<addinlineevent "snow_anywhere_2">> A burst of wind sends a flurry of snow right into your face. <<stress 3>><<gstress>> <</addinlineevent>> <<addinlineevent "snow_anywhere_3">> A surge of wind sends snow swirling in a circle around you. You feel a sense of calm as you stand in the eye of the storm before the wind dies down again. <<stress -6>><<lstress>> <</addinlineevent>> <<switch $location>> <<case "town">> <<addinlineevent "snow_anystreet_1">> <<beastNEWinit 1 dog>> A <<beasttype>> barks at the falling snow. <<bHe>> sneezes as a snowflake lands on <<bhis>> nose. <<stress -3>><<lstress>> <<endevent>> <</addinlineevent>> <<addinlineevent "snow_anystreet_2">> <<generate1>><<person1>>A <<person>> with an umbrella lets you walk alongside <<him>> for a while. <<He>> chats with you as you walk together. <<stress -3>><<lstress>> <<endevent>> <</addinlineevent>> <<if ($bus is "domus" or $bus is "danube" or $bus is "barb") and Time.hour gte 6 and Time.hour lt 21>> <<addinlineevent "snow_residentialstreet_1">> You spot someone from the orphanage playing joyfully amidst the falling snow. <<stress -3>><<lstress>> <</addinlineevent>> <</if>> <<case "alley">> <<addinlineevent "snow_anyalley_1">> <<beastNEWinit 1 cat>> A stray <<beasttype>> pursues the descending flakes of snow throughout the alleyway. <<stress -3>><<lstress>> <<endevent>> <</addinlineevent>> <<addinlineevent "snow_anyalley_2">> <<beastNEWinit 1 dog>> <<generate2>><<person2>> A homeless <<personsimple>> huddles together with a mangy <<person1>><<beasttype>> inside of a cardboard box, seeking shelter from the snow. <<person2>><<He>> gives you a warm smile as you pass. <<stress -3>><<lstress>> <<endevent>> <</addinlineevent>> <<addinlineevent "snow_anyalley_3">> As you pass through the alley, the wind suddenly picks up and funnels a huge swathe of falling snow in your direction. You shield yourself as you're assailed by wet and cold snowflakes. When the wind finally dies down, you're left freezing with damp clothes. <<if !$worn.upper.type.includes("swim") and !$worn.upper.type.includes("naked")>> <<upperwet 75>> <</if>> <<if !$worn.under_upper.type.includes("swim") and !$worn.under_upper.type.includes("naked") and !$worn.under_upper.type.includes("chastity")>> <<underupperwet 75>> <</if>> <<if !$worn.lower.type.includes("swim") and !$worn.lower.type.includes("naked")>> <<lowerwet 75>> <</if>> <<if !$worn.under_lower.type.includes("swim") and !$worn.under_lower.type.includes("naked") and !playerChastity()>> <<underlowerwet 75>> <</if>> <</addinlineevent>> <<case "park">> <<addinlineevent "snow_park_1" 0.5>> <<if playerIsPregnant() and playerAwareTheyArePregnant()>> You slip on a patch of black ice. Your hands instinctively curl around your <<bellyDescription "pc">> to protect it from harm as you fall flat on your ass. You use a nearby bench to safely haul yourself to your feet, careful not to slip again. Your bottom is left damp and chilly. <<else>> You slip on a patch of black ice, tripping and falling. You slide across the ground, dampening your clothes and leaving your bottom chilly. <</if>> <<if !$worn.lower.type.includes("swim") and !$worn.lower.type.includes("naked")>><<lowerwet 75>><<elseif $worn.lower.type.includes("naked") and !$worn.under_lower.type.includes("swim") and !$worn.under_lower.type.includes("naked") and !playerChastity()>><<underlowerwet 75>><</if>><<stress 6>><<pain 4>><<gstress>><<gpain>> <</addinlineevent>> <<if Time.hour gte 6 and Time.hour lt 21>> <<addinlineevent "snow_park_2">> Youths cheer and celebrate the falling snow as they play in the park. <<stress -3>><<lstress>> <</addinlineevent>> <<addinlineevent "snow_park_3">> Some people playing nearby are cobbling what snow they can to form snowballs and lob them at one another. <<stress -3>><<lstress>> <</addinlineevent>> <</if>> <<case "forest">> <<addinlineevent "snow_forest_1">> You stop when you notice a deer huddled close to its young offspring some distance ahead, keeping it warm and sheltered from the snow. You decide to take a sight detour, as to not disturb them. <<stress -3>><<lstress>> <</addinlineevent>> <<addinlineevent "snow_forest_2">> The branches of the trees offer some protection from the falling snow. <<stress -1>><<lstress>> <</addinlineevent>> <<addinlineevent "snow_forest_wolfmeet">> <<beastNEWinit 1 wolf>> <<if $syndromewolves is 1>> You're caught off guard as a <<beasttype>> bounds out from a snow bank in front of you. You relax once you see it's a member of your pack. <<if $monster is 1>> "Always keep guard up, <<ppackbrother>>," <<bhe>> says as <<bhe>> shakes off the snow. "Home soon. Cold days are warmer with pack." <<bHe>> bounds off towards the wolf cave. <<else>> <<bHe>> approaches and nuzzles you before shaking the snow from <<bhis>> furry coat and bounding off towards the wolf cave. <</if>> <<stress -6>><<llstress>> <<else>> You freeze when you see a <<beasttype>> in front of you, peering from a snow bank. <<if $monster is 1>> <<bHe>> slowly emerges, regarding you with serious eyes. <br><br> "Cold days, not for humans. Run home," <<bhe>> says as <<bhe>> shakes off the snow. <<bHe>> bares <<bhis>> fangs at you playfully, before bounding off into the trees. <<else>> <<bHe>> stops and regards you before shaking the snow from <<bhis>> furry coat and bounding off into the trees. <</if>> <<stress -3>><<lstress>> <</if>> <<endevent>> <</addinlineevent>> <<case "bog">> <<addinlineevent "snow_bog_1">> Parts of the bog are entirely shaded by the snow blanket. The play of light is gorgeous amidst the untamed wild. <<stress -3>><<lstress>> <</addinlineevent>> <<addinlineevent "snow_bog_2">> The thick leaves above offer protection from the falling snow. <<stress -1>><<lstress>> <</addinlineevent>> <<if $bogwater is 0>> <<addinlineevent "snow_bog_3">> <<dancedifficulty 1 1000 true>> You step forward, and part of the walkway proves to be more slippery than the rest. <<if $danceSuccess>> You slide for a moment, <span class="green">but manage to keep your footing.</span> <<else>> <<set $bogwater to 1>><<water>> You try to stop yourself, <span class="red">but slip and fall right into the water.</span> <<if !$worn.lower.type.includes("swim") and !$worn.lower.type.includes("naked")>><<lowerwet 75>><<elseif $worn.lower.type.includes("naked") and !$worn.under_lower.type.includes("swim") and !$worn.under_lower.type.includes("naked") and !playerChastity()>><<underlowerwet 75>><</if>><<stress 6>><<pain 4>><<gstress>><<gpain>> <<if $exposed gt 0>> <br><br> <<covered>> <</if>> <</if>> <</addinlineevent>> <</if>> <<case "moor">> <<addinlineevent "snow_moor_1">> The falling snowflakes obscure your vision, as you hear strange sounds all about. <<stress 3>><<gstress>> <</addinlineevent>> <<addinlineevent "snow_moor_2">> <<set Weather.Temperature.override.increase.outside(2, "The sunshine warms your skin.")>> For the briefest of moments, the snow subsides and you catch a warming ray of sunshine. It doesn't last long, but you feel a little better. <<stress -3>><<lstress>> <</addinlineevent>> <<addinlineevent "snow_moor_3">> <<if Time.hour gte 6 and Time.hour lt 21>> The snow makes the normally treacherous terrain of the moor even more dangerous. You struggle to find stable footing and occasionally slip as you go. <<else>> The snowfall makes the dark night of the moor even darker. You can barely see where you're going. <<stress 6>><<gstress>> <</if>> <</addinlineevent>> <<default>> <</switch>> <</if>> <<case "rain">> <<addinlineevent "rain_anywhere_1">> Thunder rumbles in the distance. <<stress 1>><<gstress>> <</addinlineevent>> <<addinlineevent "rain_anywhere_2">> <<if $trauma gte ($traumamax / 5) * 4>> The unyielding onslaught of the rain torments and mocks you. <<stress 6>><<gstress>> <<else>> The gentle sound of the rain soothes you. <<stress -3>><<lstress>> <</if>> <</addinlineevent>> <<addinlineevent "rain_anywhere_3" 0.33>> The rain briefly gives way to hail. You're relentlessly pelted for a few moments. <<pain 4>><<stress 6>><<gpain>><<gstress>> <</addinlineevent>> <<switch $location>> <<case "town">> <<addinlineevent "rain_anystreet_1" 0.33>> <<athleticsdifficulty 0 500 true>> A vehicle races by, sending water spraying across the pavement. <<if $athleticsSuccess>> <span class="green">You manage to step out of the way just in time.</span> <<else>> <span class="red">It completely drenches you before you can react.</span> <<if !$worn.upper.type.includes("swim") and !$worn.upper.type.includes("naked")>> <<upperwet 200>> <</if>> <<if !$worn.under_upper.type.includes("swim") and !$worn.under_upper.type.includes("naked") and !$worn.under_upper.type.includes("chastity")>> <<underupperwet 200>> <</if>> <<if !$worn.lower.type.includes("swim") and !$worn.lower.type.includes("naked")>> <<lowerwet 200>> <</if>> <<if !$worn.under_lower.type.includes("swim") and !$worn.under_lower.type.includes("naked") and !playerChastity()>> <<underlowerwet 200>> <</if>> <<effectswater "water">> <<covered>> <</if>> <</addinlineevent>> <<addinlineevent "rain_anystreet_2" 0.33>> <<dancedifficulty 1 500 true>> The rain-slicked pavement causes you to slip, <<if $danceSuccess>> <span class="green">but you manage to right yourself and keep your footing.</span> <<else>> <span class="red">and you lose your footing.</span> You land on your butt, right in a large puddle. <<if !$worn.lower.type.includes("swim") and !$worn.lower.type.includes("naked")>><<lowerwet 200>><<elseif $worn.lower.type.includes("naked") and !$worn.under_lower.type.includes("swim") and !$worn.under_lower.type.includes("naked") and !playerChastity()>><<underlowerwet 200>><</if>><<stress 6>><<pain 4>><<gstress>><<gpain>> <<if $exposed gt 0>> <br><br> <<covered>> <</if>> <</if>> <</addinlineevent>> <<addinlineevent "rain_anystreet_3">> <<generate1>><<person1>>A <<person>> with an umbrella lets you walk alongside <<him>> for a while. <<He>> chats with you as you walk together. <<stress -3>><<lstress>> <<endevent>> <</addinlineevent>> <<if Time.hour gte 7 and Time.hour lt 21 and playerIsPregnant() and playerAwareTheyArePregnant() and playerBellyVisible()>> <<addinlineevent "rain_pregnant_talk" 0.8>> <<generate1>><<person1>> The rain gives way to hail, and you take shelter under a nearby awning. A <<personsimple>> with a pram is already there, murmuring reassurances to <<his>> fussy newborn. <<He>> smiles and nods at your <<bellyDescription "pc">>. "When are you due?" <<he>> asks. The two of you make idle chit-chat as you wait for the hail to let up. <br><br> As it finally dies down, the <<father>> mentions that <<he>> lives on <<print either("Domus Street", "Danube Street")>> and suggests that you have a playdate once you give birth. When <<he>> asks where you live, you confess that you're a resident of the orphanage. The <<persons>> face twists in a mixture of pity and distaste, and <<he>> mumbles a hasty goodbye before stepping out into the rain once more. You watch as the pram disappears into the distance, feeling oddly bereft. <<trauma 6>><<gtrauma>> <<endevent>> <</addinlineevent>> <</if>> <<case "alley">> <<addinlineevent "rain_anyalley_1">> <<beastNEWinit 1 dog>> A <<beasttype>> huddles by some trash cans to escape the downpour. You can sympathise. <<stress -3>><<lstress>> <<endevent>> <</addinlineevent>> <<addinlineevent "rain_anyalley_2" 0.33>> You walk beneath a gutter drain just as it comes unclogged. A torrent of rain water drenches you. <<if !$worn.upper.type.includes("swim") and !$worn.upper.type.includes("naked")>> <<upperwet 75>> <</if>> <<if !$worn.under_upper.type.includes("swim") and !$worn.under_upper.type.includes("naked") and !$worn.under_upper.type.includes("chastity")>> <<underupperwet 75>> <</if>> <<if !$worn.lower.type.includes("swim") and !$worn.lower.type.includes("naked")>> <<lowerwet 75>> <</if>> <<if !$worn.under_lower.type.includes("swim") and !$worn.under_lower.type.includes("naked") and !playerChastity()>> <<underlowerwet 75>> <</if>> <</addinlineevent>> <<addinlineevent "rain_anyalley_3">> A group of youths are playing in the alley. They jump about, splashing in puddles and giggling. <<stress -3>><<lstress>> <</addinlineevent>> <<case "park">> <<addinlineevent "rain_park_1">> <<beastNEWinit 1 dog>> <<generate2>><<person2>>A <<person>> chases an escaped <<beasttype>> across the park, cursing all the while as the rain soaks <<him>>. You hold back a giggle. <<stress -3>><<lstress>> <<endevent>> <</addinlineevent>> <<addinlineevent "rain_park_2">> You catch sight of a couple kissing in the rain. <<stress -3>><<lstress>> <</addinlineevent>> <<addinlineevent "rain_park_3" 0.5>> You slip and fall onto a patch of wet grass. <<if playerIsPregnant() and playerAwareTheyArePregnant()>> Your hands instinctively curl around your <<bellyDescription "pc">> to protect it from harm as you fall flat on your ass. You use a nearby bench to safely haul yourself to your feet, careful not to slip again. <</if>> Your bottom is left sore and damp. <<if !$worn.lower.type.includes("swim") and !$worn.lower.type.includes("naked")>><<lowerwet 75>><<elseif $worn.lower.type.includes("naked") and !$worn.under_lower.type.includes("swim") and !$worn.under_lower.type.includes("naked") and !playerChastity()>><<underlowerwet 75>><</if>><<stress 6>><<pain 4>><<gstress>><<gpain>> <</addinlineevent>> <<case "forest">> <<addinlineevent "rain_forest_1">> Rain pours down through the trees, filling the forest with calming scents and sounds. <<stress -3>><<lstress>> <</addinlineevent>> <<addinlineevent "rain_forest_2" 0.33>> Lightning strikes a tree nearby, sending splinters flying in all directions. The tree hurtles to the ground. The smouldering wood is doused quickly by the rain, but the event still leaves you on edge. <<stress 24>><<gggstress>> <</addinlineevent>> <<addinlineevent "rain_forest_3">> You spot a deer sheltering its child from the rain. <<stress -3>><<lstress>> <</addinlineevent>> <<case "bog">> <<addinlineevent "rain_bog_1">> Rain pours down in uneven waterfalls from the mass of leaves above. You briefly pass through one. <<stress -3>><<lstress>> <</addinlineevent>> <<addinlineevent "rain_bog_2" 0.33>> Lightning strikes a tree nearby, sending splinters flying in all directions. The tree hurtles to the mire. The smouldering wood is engulfed by the bog, snuffing instantly, but the event still leaves you on edge. <<stress 24>><<gggstress>> <</addinlineevent>> <<addinlineevent "rain_bog_3">> You spot a frog on a lilypad. It croaks, singing with the rain. <<stress -3>><<lstress>> <</addinlineevent>> <<if $bogwater is 0>> <<addinlineevent "rain_bog_4">> <<dancedifficulty 1 1000 true>> You step forward, and part of the walkway proves to be more slippery than the rest. <<if $danceSuccess>> You slide for a moment, <span class="green">but manage to keep your footing.</span> <<else>> <<set $bogwater to 1>><<water>> You try to stop yourself, <span class="red">but slip and fall right into the water.</span> <<if !$worn.lower.type.includes("swim") and !$worn.lower.type.includes("naked")>><<lowerwet 75>><<elseif $worn.lower.type.includes("naked") and !$worn.under_lower.type.includes("swim") and !$worn.under_lower.type.includes("naked") and !playerChastity()>><<underlowerwet 75>><</if>><<stress 6>><<pain 4>><<gstress>><<gpain>> <<if $exposed gt 0>> <br><br> <<covered>> <</if>> <</if>> <</addinlineevent>> <</if>> <<case "moor">> <<addinlineevent "rain_moor_1">> The rain obscures your vision as you hear strange sounds all about. <<stress 3>><<gstress>> <</addinlineevent>> <<addinlineevent "rain_moor_2">> A flash of lightning illuminates dark shapes moving in the distance. <<stress 3>><<gstress>> <</addinlineevent>> <<addinlineevent "rain_moor_3">> You freeze as you hear a noise in the nearby grass. You sigh in relief as a wet rabbit hops from the brush, seeking better shelter from the rain. <<stress -3>><<lstress>> <</addinlineevent>> <<if $settings.plantsEnabled and $settings.tentaclesEnabled and ($hallucinations gte 2 or $backgroundTraits.includes("plantlover"))>> <<addinlineevent "rain_moor_4" 0.5>> <<generatePlant1>><<person1>> You see a <<personsimple>> spinning in the rain, holding <<his>> arms out. <<He>> almost slips and loses <<his>> balance a few times, but <<he>> doesn't stop smiling. <<stress -3>><<lstress>> <<endevent>> <</addinlineevent>> <</if>> <<default>> <</switch>> <<case "autumn" "winter">> <<addinlineevent "autumn_anywhere_1">> A surge of wind sends leaves swirling in a circle around you. You feel a sense of calm as you stand in the eye of the storm, before the wind dies down again. <<stress -3>><<lstress>> <</addinlineevent>> <<addinlineevent "autumn_anywhere_2">> The wind kicks up some leaves in your face<<if !$worn.face.type.includes("covered")>>, leaving you sputtering<</if>>. <<stress 1>><<gstress>> <</addinlineevent>> <<addinlineevent "autumn_anywhere_3" 0.33>> <<dancedifficulty 1 500 true>> You trip up on a fallen branch, <<if $danceSuccess>> <span class="green">but you manage to keep your footing.</span> <<covered>> <<else>> <span class="red">and land in a pile of damp leaves.</span> <<if playerIsPregnant() and playerAwareTheyArePregnant()>> Your hand automatically flies to your <<bellyDescription "pc">>. You're grateful that the leaves broke your fall. You quickly stand, brushing off leaves and rubbing your now sore and wet bottom. <<else>> You quickly stand, brushing off leaves and rubbing your now sore and wet bottom. <</if>> <<if !$worn.lower.type.includes("swim") and !$worn.lower.type.includes("naked")>><<lowerwet 75>><<elseif $worn.lower.type.includes("naked") and !$worn.under_lower.type.includes("swim") and !$worn.under_lower.type.includes("naked") and !playerChastity()>><<underlowerwet 75>><</if>><<stress 6>><<pain 4>><<gstress>><<gpain>> <<if $exposed gt 0>> <br><br> <<covered>> <</if>> <</if>> <</addinlineevent>> <<if ["town", "park"].includes($location) and Time.hour gte 7 and Time.hour lt 21 and playerIsPregnant() and playerAwareTheyArePregnant()>> <<addinlineevent "autumn_pregnant_watch">> <<generatey1>><<person1>> You see a group of kids playing. A young <<personsimple>> hides in a pile of leaves before bursting out to scare <<his>> friend. The other child immediately bursts into tears. You rub your <<bellyDescription "pc">> and wonder if your <<pregnancyBabyText "pc">> will be as troublesome as they are. <<stress -3>><<lstress>> <<endevent>> <</addinlineevent>> <</if>> <<switch $location>> <<case "town">> <<addinlineevent "autumn_anystreet_1">> <<beastNEWinit 1 dog>> A <<beasttype>> snaps at leaves as the wind sweeps them this way and that. <<stress -3>><<lstress>> <<endevent>> <</addinlineevent>> <<if Time.hour gte 6 and Time.hour lte 21>> <<addinlineevent "autumn_anystreet_2">> <<generate1>><<person1>>A <<person>> rakes leaves off the pavement and into a pile. Just as <<he>> finishes, the wind scatters them across the sidewalk yet again, causing <<him>> to curse loudly. <<stress -3>><<lstress>> <<endevent>> <</addinlineevent>> <<addinlineevent "autumn_anystreet_3">> <<generate1>><<person1>>A <<person>> stands on the sidewalk using a leaf blower to clear the sidewalks. As you near <<him>>, <<he>> turns suddenly, and the powerful blast of air from the blower sends your clothes into various states of disarray, giving anyone nearby a show. <br><br> The <<person>> laughs as you walk past, wrangling your clothes back in order. <<stress 3>><<arousal 10>><<gstress>><<garousal>> <<endevent>> <</addinlineevent>> <</if>> <<case "alley">> <<addinlineevent "autumn_anyalley_1">> <<beastNEWinit 1 cat>> A stray <<beasttype>> chases a leaf across the alley. You stop to watch for a little while.<<stress -3>><<lstress>> <<endevent>> <</addinlineevent>> <<addinlineevent "autumn_anyalley_2">> As you pass through the alley, the wind picks up and funnels nearby leaves nearby in your direction. You shield yourself as best you can, and the wet and dirty leaves pass after a moment. <<stress 1>><<gstress>> <</addinlineevent>> <<if Time.hour gte 21 or Time.hour lt 6>> <<addinlineevent "autumn_anyalley_3" 0.33>> Several large piles of leaves litter the alley. Raccoons run and play between the piles. <<if currentSkillValue('science') gte 500>>You wonder why there are raccoons here, they certainly aren't native.<</if>> <<stress -3>><<lstress>> <</addinlineevent>> <</if>> <<case "park">> <<if Time.season is "autumn">> <<addinlineevent "autumn_park_1">> You look out over the park and marvel at the various colours of autumn. <<stress -3>><<lstress>> <</addinlineevent>> <</if>> <<if Time.hour gte 6 and Time.hour lt 21>> <<addinlineevent "autumn_park_2">> You watch as a couple takes turns leaping into a pile of leaves. <<stress -3>><<lstress>> <</addinlineevent>> <<addinlineevent "autumn_park_3">> <<generate1>><<person1>> You accidentally walk through a pile of leaves. A nearby <<person>> raking leaves looks over and yells at you. You hurry on. <<stress 3>><<gstress>> <<endevent>> <</addinlineevent>> <<addinlineevent "autumn_park_4">> A leaf on the wind <<if $worn.face.name is "naked">>lands on your cheek<<else>>gets stuck in your $worn.face.name<</if>>. You pluck it off. <<if currentSkillValue('science') gte 500>>It's a maple leaf. The stem is also connected to one of the distinctive <<print either("samaras", "maple keys", "helicopters", "whirlybirds", "polynoses")>> containing the seeds.<<else>>You're not sure what it was, but it was huge and almost covered your whole face.<</if>> <</addinlineevent>> <</if>> <<case "forest">> <<addinlineevent "autumn_forest_1">> A squirrel runs past, carrying nuts it intends to store for winter. <<stress -3>><<lstress>> <</addinlineevent>> <<addinlineevent "autumn_forest_2">> You walk through the forest and can't help but admire the various oranges, browns and yellows breaking through the canopy. <<stress -3>><<lstress>> <</addinlineevent>> <<addinlineevent "autumn_forest_3" 0.33>> You stop in your tracks as you hear a feral growl. Looking down, you see a badger at the foot of a nearby tree. It's surrounded by scattered dirt. You seem have interrupted it digging its winter den. You back away slowly until it returns to its digging. <<stress 3>><<gstress>> <</addinlineevent>> <<if $settings.plantsEnabled and $settings.tentaclesEnabled and ($hallucinations gte 2 or $backgroundTraits.includes("plantlover"))>> <<addinlineevent "autumn_forest_4" 0.5>> <<generatePlant1>><<person1>> A <<personsimple>> runs <<his>> fingers through <<his>> hair. <<He>> picks dead leaves out, crunching them in <<his>> hands before dropping them. <<endevent>> <</addinlineevent>> <</if>> <<case "bog">> <<addinlineevent "autumn_bog_1">> The bog is filled with a repeated thrumming sound. You spot the source. A woodpecker digs into a tree high above the water. <<stress -3>><<lstress>> <</addinlineevent>> <<addinlineevent "autumn_bog_2">> As you walk, you can't help but notice how stagnant everything seems. While the forest fills with various colours, everything here stays the same, murky green or brown. <</addinlineevent>> <<case "moor">> <<addinlineevent "autumn_moor_1">> The scent of decaying plant life fills the moor with an acrid stench. <<stress 3>><<gstress>> <</addinlineevent>> <<addinlineevent "autumn_moor_2">> You see flocks of birds pass overhead as they migrate south for the winter. <<stress -3>><<lstress>> <</addinlineevent>> <<addinlineevent "autumn_moor_3" 0.33>> You stop at a strange clearing. You notice what looks like some kind of effigy made of twigs. As you stare, you notice more and more wrong with the scene. Its eyes are filled with burnt out candles. The rock formations around it aren't natural and are clearly some kind of cairn. Dark roots stretch up from the ground to grasp the effigy. You snap out of what feels like an unnatural haze and make an effort to leave as quickly as you can. <<stress 12>><<ggstress>> <</addinlineevent>> <<default>> <</switch>> <<case "summer">> <<addinlineevent "summer_anywhere_1">> <<if Time.hour gte 6 and Time.hour lt 21>> The brutal summer heat weighs down on you. <<stress 3>><<gstress>> <<else>> The cool night air makes for a nice reprieve from the blistering days. <<stress -3>><<lstress>> <</if>> <</addinlineevent>> <<addinlineevent "summer_anywhere_2">> A cool breeze blows by and revitalises you. <<stress -1>><<lstress>> <</addinlineevent>> <<addinlineevent "summer_anywhere_3" 0.5>> A brutal wave of heat washes over you. You take a moment to wipe the sweat from your head. <<stress 1>><<gstress>> <</addinlineevent>> <<addinlineevent "summer_anywhere_4">> <<generate1>><<person1>> You overhear a <<person>> talking on <<his>> cell phone about <<his>> upcoming holiday trip. <<if $trauma lte ($traumamax / 5) * 3>> Hearing <<his>> obvious enthusiasm for the trip makes you smile. <<stress -1>><<lstress>><<else>>You resent hearing about a trip you'll never be able to take, stuck in this town like you are. <<stress 1>><<gstress>><</if>> <<endevent>> <</addinlineevent>> <<if ["town", "park"].includes($location) and Time.hour gte 7 and Time.hour lt 21 and playerIsPregnant() and playerAwareTheyArePregnant()>> <<addinlineevent "summer_pregnant_watch">> You see a group of kids playing. Most are running and squealing as they spray each other with water guns, but a few are lazing on the grass. Occasionally, their friends cool them off with a blast of water, causing them to giggle. You rub your <<bellyDescription "pc">> and wonder if your <<pregnancyBabyText "pc">> will be as easygoing as they are. <<stress -3>><<lstress>> <</addinlineevent>> <</if>> <<switch $location>> <<case "town">> <<if Time.hour gte 6 and Time.hour lt 21>> <<addinlineevent "summer_anystreet_1" 0.5>> <<generate1>><<person1>> You see a <<person>> fanning <<himself>> with <<his>> top to cope with the heat. <<He>> suddenly flashes you by lifting it up completely. <<arousal 5>><<garousal>> <<endevent>> <</addinlineevent>> <<addinlineevent "summer_anystreet_2" 0.5>> An ice cream truck drives by, with a group of orphans chasing after it. The tune it plays is upbeat and catchy. <<stress -3>><<lstress>> <</addinlineevent>> <<if ($bus is "domus" or $bus is "danube" or $bus is "barb")>> <<addinlineevent "summer_residentialstreet_1" 0.5>> <<generate1>><<person1>> As you pass by a <<person>> watering <<his>> lawn, <<he>> accidentally sprays you with the hose. The cold water is refreshing, but dampens your clothes. <<if !$worn.upper.type.includes("swim") and !$worn.upper.type.includes("naked")>> <<upperwet 75>> <</if>> <<if !$worn.under_upper.type.includes("swim") and !$worn.under_upper.type.includes("naked") and !$worn.under_upper.type.includes("chastity")>> <<underupperwet 75>> <</if>> <<if !$worn.lower.type.includes("swim") and !$worn.lower.type.includes("naked")>> <<lowerwet 75>> <</if>> <<if !$worn.under_lower.type.includes("swim") and !$worn.under_lower.type.includes("naked") and !playerChastity()>> <<underlowerwet 75>> <</if>> <<stress -6>><<arousal 5>><<lstress>><<garousal>> <<endevent>> <</addinlineevent>> <</if>> <</if>> <<case "alley">> <<if Time.hour gte 6 and Time.hour lt 21>> <<addinlineevent "summer_anyalley_1">> Two students with water guns race through the alley firing at each other. <<stress -3>><<lstress>> <</addinlineevent>> <<addinlineevent "summer_anyalley_2">> <<beastNEWinit 1 dog>> As you pass through the alley, you see a <<beasttype>> sprawled out inside a cardboard box in an attempt to escape the heat. You can't help but sympathise. <<stress -3>><<lstress>> <<endevent>> <</addinlineevent>> <<else>> <<addinlineevent "summer_anyalley_3">> <<generate1>><<person1>> A <<person>> sits on <<his>> back porch, smoking a cigarette and enjoying the coolness of the summer night air. <<He>> waves as <<he>> notices you. <<stress -3>><<lstress>> <<endevent>> <</addinlineevent>> <</if>> <<case "park">> <<addinlineevent "summer_park_1">> You notice several youths nearby tossing water balloons at one another. <<stress -3>><<lstress>> <</addinlineevent>> <<addinlineevent "summer_park_2">> Despite the heat, you notice many people playing and relaxing here. <<stress -3>><<lstress>> <</addinlineevent>> <<addinlineevent "summer_park_3">> As you walk through the park, you're narrowly missed by several water balloons. Hearing laughter, you turn to see several delinquents running away. <<stress 3>><<gstress>> <</addinlineevent>> <<if $settings.plantsEnabled and $settings.tentaclesEnabled and ($hallucinations gte 2 or $backgroundTraits.includes("plantlover"))>> <<addinlineevent "summer_park_4" 0.5>> <<generatePlant1>><<person1>> A <<personsimple "normal">> with <<plant_details "forest">> in <<his>> hair peeks out of a bush. <<He>> looks nervous. When <<he>> spots you, <<he>> dives back into the bush. <<endevent>> <</addinlineevent>> <</if>> <<case "forest">> <<addinlineevent "summer_forest_1">> The heat of the forest is sweltering, the breeze blocked by the trees. <<stress 3>><<gstress>> <</addinlineevent>> <<addinlineevent "summer_forest_2">> As you move through the forest, you notice a family unpacking camping supplies. They notice you and wave. <<stress -3>><<lstress>> <</addinlineevent>> <<if Time.hour lt 6 or Time.hour gte 21>> <<addinlineevent "summer_forest_3">> You begin to hear crickets chirping nearby, and soon enough a whole orchestra of insects fill the night air around you. <<stress -3>><<lstress>> <</addinlineevent>> <</if>> <<if $settings.plantsEnabled and $settings.tentaclesEnabled and ($hallucinations gte 2 or $backgroundTraits.includes("plantlover"))>> <<addinlineevent "summer_forest_4" 0.5>> <<generatePlant1>><<person1>> A <<personsimple>> stands completely still, holding branches. <<Hes>> pretending to be a tree, but <<he>> can't keep <<his>> balance enough to fool anyone. <<endevent>> <</addinlineevent>> <</if>> <<case "bog">> <<addinlineevent "summer_bog_1">> The humidity is oppressive. You feel a little lightheaded. <<stress 3>><<gstress>> <</addinlineevent>> <<addinlineevent "summer_bog_2">> Other than the walkway, there are few signs of human incursion here. <<stress -3>><<lstress>> <</addinlineevent>> <<if Time.hour lt 6 or Time.hour gte 21>> <<addinlineevent "summer_bog_3">> You begin to hear crickets chirping nearby, and soon enough a whole orchestra of insects fill the night air around you. <<stress -3>><<lstress>> <</addinlineevent>> <</if>> <<case "moor">> <<if Time.hour gte 6 and Time.hour lt 21>> <<addinlineevent "summer_moor_1">> The sweltering heat creates undefinable shapes on the horizon. <<stress 3>><<gstress>> <</addinlineevent>> <<else>> <<addinlineevent "summer_moor_2">> You feel something scurry across your foot. Who knows what manner of creatures wander the moor with the heat of the sun gone? You quicken your pace. <<stress 3>><<gstress>> <</addinlineevent>> <<addinlineevent "summer_moor_3" 0.33>> You stop suddenly as you see a light flicker into being ahead. An effigy constructed of twigs, candles burning in its eye sockets, stands amidst a circle of stone cairns. Disturbed, you begin to walk away. <br><br> Until you notice the effigy turns to watch you as you go past. You break into a sprint without another thought. <<stress 24>><<awareness 10>><<gggstress>><<gawareness>> <</addinlineevent>> <</if>> <<default>> <</switch>> <<case "spring">> <<addinlineevent "spring_anywhere_1">> A gentle spring breeze caresses your face. <<stress -3>><<lstress>> <</addinlineevent>> <<addinlineevent "spring_anywhere_2">> A <<if Time.dayState is "day" or Time.dayState is "dawn">>butterfly<<else>>moth<</if>> lands on your nose and pauses to rub its antennae before taking flight again. <<stress -3>><<lstress>> <</addinlineevent>> <<if Time.hour gte 6 and Time.hour lt 21>> <<addinlineevent "spring_anywhere_3">> Birds chirp overhead as they return from their winter migration. <<stress -3>><<lstress>> <</addinlineevent>> <</if>> <<if ["town", "park"].includes($location) and Time.hour gte 7 and Time.hour lt 21 and playerIsPregnant() and playerAwareTheyArePregnant()>> <<addinlineevent "spring_pregnant_watch">> <<generatey1>><<person1>> You see a group of kids playing. One <<personsimple>> is sitting apart from the others, making a chain of daisies. The other children ask <<him>> to help them make cakes out of mud, but <<he>> silently shakes <<his>> head. You rub your <<bellyDescription "pc">> and wonder if your <<pregnancyBabyText "pc">> will be as timid as <<he>> is. <<stress -3>><<lstress>> <<endevent>> <</addinlineevent>> <</if>> <<switch $location>> <<case "town">> <<addinlineevent "spring_anystreet_1">> <<wearProp "tulip">><<tending_give tulip 1>> A street peddler selling flowers hands you a free flower as you pass by. <<stress -3>><<lstress>> <</addinlineevent>> <<if ($bus is "domus" or $bus is "danube" or $bus is "barb") and Time.hour gte 6 and Time.hour lt 21>> <<addinlineevent "spring_residentialstreet_1">> <<generate1>><<person1>> You see a <<person>> on <<his>> knees tending to <<his>> garden. As you walk past, <<he>> backs into you, grinding <<his>> rear into your leg before glancing over <<his>> shoulder. "Sorry," <<he>> calls out as you walk away flustered. <<stress 1>><<arousal 5>><<gstress>><<garousal>> <<endevent>> <</addinlineevent>> <</if>> <<if ($bus is "connudatus" or $bus is "cliff" or $bus is "wolf" or $bus is "high")>> <<addinlineevent "spring_commercialstreet_1">> There's a small flower market set up here. You stop to smell the flowers before continuing. <<stress -3>><<lstress>> <</addinlineevent>> <</if>> <<case "alley">> <<addinlineevent "spring_anyalley_1">> You notice that someone has built a garden beneath one of the windows here, where flowers have begun to sprout despite the filth. <<stress -3>><<lstress>> <</addinlineevent>> <<if Time.hour lt 6 or Time.hour gte 21>> <<addinlineevent "spring_anyalley_2">> <<beastNEWinit 3 cat>> You hear <<beastsplural>> yowling and hissing as they contend for a mate. <<if $cat gte 6>><<arousal 10>><<garousal>><</if>> <<endevent>> <</addinlineevent>> <<if $hallucinogen gt 0>> <<addinlineevent "spring_anyalley_3" 0.1>> <<beastNEWinit 2 dog>> You see a pair of <<if $monster is 1>>dogpeople<<else>>dogs<</if>> eating a pile of spaghetti together next to a trash can. Romantic Italian music plays from a nearby building. You shake your head and leave. <<stress -24>><<lllstress>> <<endevent>> <</addinlineevent>> <</if>> <</if>> <<case "park">> <<addinlineevent "spring_park_1">> You notice the flowers in the park have started to bloom once more. <<stress -3>><<lstress>> <</addinlineevent>> <<if Time.hour gte 6 and Time.hour lt 21>> <<addinlineevent "spring_park_2">> A hummingbird zips by and lands on a flower to drink nectar before flying off. <<stress -3>><<lstress>> <</addinlineevent>> <<addinlineevent "spring_park_3" 0.5>> <<generate1>><<generatep2>><<person1>> You see a <<person>> snatch a freshly bloomed flower and give it to a <<person2>><<person>> before they embrace and kiss. <<stress -3>><<lstress>> <<endevent>> <</addinlineevent>> <</if>> <<case "forest">> <<addinlineevent "spring_forest_1" 0.5>> You hear a thunderous crack above. A large branch tumbles from a large tree, landing only inches away. <<stress 12>><<ggstress>> <</addinlineevent>> <<addinlineevent "spring_forest_2">> You see a pair of rabbits chasing and tumbling over each other. <<stress -3>><<lstress>> <</addinlineevent>> <<if Time.hour gte 6 and Time.hour lt 21>> <<addinlineevent "spring_forest_3">> Birds sing to one another as they build nests and seek mates. <<if $syndromebird is 1>>You find yourself longing for your own mate, back in the moor.<</if>> <<stress -6>><<lstress>> <</addinlineevent>> <</if>> <<case "bog">> <<addinlineevent "spring_bog_1">> You hear a splash nearby. Followed by another. A group of frogs jump around amidst the plantlife. <<stress -3>><<lstress>> <</addinlineevent>> <<addinlineevent "spring_bog_2">> All around you, the sounds of various small insects and critters fill the air. <<stress -3>><<lstress>> <</addinlineevent>> <<case "moor">> <<addinlineevent "spring_moor_1">> You stop to take a look around. Even the moor looks vibrant this time of year. <<stress -3>><<lstress>> <</addinlineevent>> <<addinlineevent "spring_moor_2">> You come across a pond where dark water conceals darker shapes swimming within. <<stress 6>><<gstress>> <</addinlineevent>> <<addinlineevent "spring_moor_3">> You come to a strangely clear patch of ground that contains a circle of stone and a scorch mark in its centre. You suddenly feel watched, and leave without hesitation. <<stress 12>><<ggstress>> <</addinlineevent>> <<if $settings.plantsEnabled and $settings.tentaclesEnabled and ($hallucinations gte 2 or $backgroundTraits.includes("plantlover"))>> <<addinlineevent "spring_moor_4" 0.5>> <<generatePlant1>><<person1>> A <<personsimple>> holds a vine still for a hummingbird to land on. <<if $rng gte 51>> It flits onto <<his>> vine and lands, sitting down. The <<personsimple>> lets out a happy gasp. <<stress -3>><<lstress>> <<else>> It hovers near <<his>> vine for a second, before zipping away. The <<personsimple>> sighs. <</if>> <<endevent>> <</addinlineevent>> <</if>> <<default>> <</switch>> <<default>> <span class="red">ERROR: You have somehow managed to pass beyond the concepts of time and weather. Please inform Vrelnir unless you just used a cheat.</span> <</switch>> <<runeventpool>> <br><br> <</widget>><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> You wake up strapped to a chair. The room is bare, except a window covering the length of one side. <<if $player.penisExist>> You feel something odd on your penis. <<else>> You feel something odd on your pussy. <</if>> It buzzes to life, teasing your <<genitals>> directly. <<garousal>> <br><br> On the verge of orgasm it ceases, but only for a moment. <br><br> <<set $arousal to 10000>><<orgasm>> <br><br> You strain against the binds holding you, but they're firm. You can't stop it. <br><br> <<set $arousal to 10000>><<orgasm>> <br> <<set $arousal to 10000>><<orgasm>> <br> <<set $arousal to 10000>><<orgasm>> <br><br> The buzzing ceases and the bindings snap loose, leaving you gasping for breath. <<tearful>> you struggle to your feet and make your way through the exit. <br><br> <<link [[Next|Asylum]]>><</link>> <br><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> <<if $phase is 0>> <<set $phase to 1>> You press the button. The <<person2>><<person>> squirms. You notice <<his>> arms are bound to the side of the chair. "Thank you," Doctor Harper says. <<if $NPCList[1].penis isnot "none">> "We have a device attached to <<his>> penis. <<else>> "We have a device inserted in <<his>> vagina. <</if>> To aid in <<his>> treatment." You spot wires trailing across the floor and disappearing into the <<persons>> clothes. <br><br> "Press it again," the doctor says. <br><br> <<person1>> <<link [[Press|Asylum Button Press]]>><<awareness -1>><<stress 3>><<arousal 600>><<suspicion -1>><</link>><<lsuspicion>><<lawareness>><<gstress>><<garousal>> <br> <<link [[Refuse|Asylum Button Refuse]]>><<suspicion 1>><<def 1>><</link>><<gsuspicion>> <br> <<elseif $phase is 1>> <<set $phase to 2>> <<person2>> You press the button. The <<person>> squirms more this time. <<He>> strains against the bonds. You hear buzzing through the glass. "Very good," the doctor says. "Any moment now." <br><br> Almost on cue, the <<person>> spasms, before slumping back in the chair. The buzzing ceases. "<<He>> will learn to enjoy it," the doctor says. "Press it again." <br><br> <<person1>> <<link [[Press|Asylum Button Press]]>><<awareness -10>><<stress 3>><<arousal 600>><<suspicion -1>><</link>><<lsuspicion>><<llawareness>><<gstress>><<garousal>> <br> <<link [[Refuse|Asylum Button Refuse]]>><<suspicion 1>><<def 1>><</link>><<gsuspicion>> <br> <<else>> <<person2>> The <<persons>> eyes widen as the buzzing starts up again. Louder this time. <<He>> shakes <<his>> head and rocks back and forth, as if trying to knock the chair over. It's not long before <<he>> spasms again. And again. Even the counter in front of you vibrates. <br><br> <<person1>>Doctor Harper writes on <<his>> clipboard, a small smile on <<his>> face. "Thank you," <<he>> says. "You've been very helpful." <<person2>>The <<person>> falls limp as Harper finishes speaking, and the buzzing stops. <br><br> "That's all for now. Be well," <<he>> says before you exit. <br><br> <<asylumRebind>> <<link [[Next|Asylum]]>><<asylumClothesOn>><<endevent>><</link>> <br> <</if>><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> You refuse to press the button. "This is for <<person2>><<his>> benefit,<<person1>> and yours," <<he>> says. "Press the button." <br><br> <<if $phase is 0>> <<link [[Press|Asylum Button Press]]>><</link>> <br> <<else>> <<link [[Press|Asylum Button Press]]>><<awareness -1>><<stress 3>><<arousal 600>><<suspicion -1>><</link>><<lsuspicion>><<lawareness>><<gstress>><<garousal>> <br> <</if>> <<link [[Refuse|Asylum Button Refuse 2]]>><<def 1>><<suspicion 5>><</link>><<ggsuspicion>> <br><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> Harper shakes <<his>> head. "I'm disappointed. You can go." <br><br> <<asylumRebind>> <<link [[Next|Asylum]]>><<asylumClothesOn>><<endevent>><</link>><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> <<if $phase is 0>> <<set $phase to 1>> You press the button. The long-haired girl squirms. Laid on her back, you notice her ankles and wrists are bound. Her wrists are somehow tied to the floor on either side of her face while her ankles are tied together to a metal post. She is wearing a two-piece swimsuit. <br><br> "That's right," Doctor Harper says. "Thank you. This is good for her. We have a device placed inside her vagina, another on her clitoris, and two more on her nipples. These all aid in her treatment." <br><br> You spot wires trailing across the floor and disappearing into her swimwear. <br><br> "Press the button anytime I point at you," the doctor instructs. <br><br> Harper points at you. <br><br> <<link [[Press|Asylum Button Long Hair Press]]>><<awareness -1>><<stress 3>><<arousal 600>><<suspicion -1>><</link>><<lsuspicion>><<lawareness>><<gstress>><<garousal>> <br> <<link [[Refuse|Asylum Button Long Hair Refuse]]>><<suspicion 1>><<def 1>><</link>><<gsuspicion>> <br> <<elseif $phase is 1>> <<set $phase to 2>> You press the button. The girl squirms more this time; a noise escapes her lips. She pulls against the bonds. <br><br> The doctor nods. "Good." <br><br> Harper's voice becomes lower, almost hypnotic as <<person1>><<he>> addresses the long-haired girl. <br><br> "You were dancing for them on the beach," <<he>> says. "In swimwear. You enjoyed them watching you, you liked their attention, but it wasn't enough. You wanted more." <br><br> Harper cuts away her swimwear, exposing first her breasts, then her pussy. <br><br> "They didn't remove your swimwear. You did. You stripped for them. It was thrilling to feel their eyes on your most private parts. Just like it is now." <br><br> Harper points at you. <br><br> <<link [[Press|Asylum Button Long Hair Press]]>><<awareness -2>><<stress 3>><<arousal 600>><<suspicion -1>><</link>><<lsuspicion>><<lawareness>><<gstress>><<garousal>> <br> <<link [[Refuse|Asylum Button Long Hair Refuse]]>><<suspicion 1>><<def 1>><</link>><<gsuspicion>> <br> <<elseif $phase is 2>> <<set $phase to 3>> You press the button. The girl squeals and twists. Her struggles weaken. <br><br> "You liked the hunger in their eyes," Harper says. "You wanted them to touch you. You needed it. In fact, you just kept on dancing UNTIL they touched you." <br><br> The girl weakly struggles. Harper slowly brushes <<his>> fingertips down her stomach, over her pubic hairs. <br><br> "You started it. You escalated it. You made them do it, because deep down you wanted it." <br><br> Harper points at you. <br><br> <<link [[Press|Asylum Button Long Hair Press]]>><<awareness -2>><<stress 3>><<arousal 600>><<suspicion -1>><</link>><<lsuspicion>><<lawareness>><<gstress>><<garousal>> <br> <<link [[Refuse|Asylum Button Long Hair Refuse]]>><<suspicion 1>><<def 1>><</link>><<gsuspicion>> <br> <<elseif $phase is 3>> <<set $phase to 4>> You press the button. The girl writhes and groans, close to orgasm. <br><br> "You like this," Harper says. "You wanted them inside you. All of them. Making you feel like this. It wasn't rape, you wanted it. It was your awakening. It was you finding yourself. And what upsets you is how much enjoyed it." <br><br> The girl has stopped moving completely. Harper looks momentarily confused, shrugs, then points at you. <br><br> <<link [[Press|Asylum Button Long Hair Press]]>><<awareness -2>><<stress 3>><<arousal 600>><<suspicion -1>><</link>><<lsuspicion>><<lawareness>><<gstress>><<garousal>> <br> <<link [[Refuse|Asylum Button Long Hair Refuse]]>><<suspicion 1>><<def 1>><</link>><<gsuspicion>> <br> <<elseif $phase is 4>> <<set $phase to 5>> You press the button. The girl starts to howl and fights furiously against her bindings. <br><br> "It's..." Harper says. "It's okay that you led them on. It's okay that you liked it. It doesn't make you a bad person. It's natural. Forgiving yourself is the only way to get better." <br><br> Harper points at you again. "Hold it down." <br><br> <<link [[Hold the button|Asylum Button Long Hair Press]]>><<awareness -2>><<stress 3>><<arousal 600>><<suspicion -1>><</link>><<lsuspicion>><<lawareness>><<gstress>><<garousal>> <br> <<link [[Refuse|Asylum Button Long Hair Refuse]]>><<suspicion 1>><<def 1>><</link>><<gsuspicion>> <br> <<else>> You hold the button down. The girl writhes and twists, but resists orgasm. Doctor Harper looks crestfallen. <br><br> "Okay, stop." <br><br> You let go of the button. The girl's writhing subsides. Doctor Harper writes on <<his>> clipboard, a small sad smile on <<his>> face. <br><br> "Thank you," <<he>> says. "You were helpful. Be well." <br><br> <<asylumRebind>> <<link [[Next|Asylum]]>><<asylumClothesOn>><<endevent>><</link>> <br> <</if>><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> You refuse to press the button. <br><br> "This is for her benefit,<<person1>> and yours," <<he>> says. "Press the button." <br><br> <<if $phase is 0>> <<link [[Press|Asylum Button Long Hair Press]]>><</link>> <br> <<else>> <<link [[Press|Asylum Button Long Hair Press]]>><<awareness -1>><<stress 3>><<arousal 600>><<suspicion -1>><</link>><<lsuspicion>><<lawareness>><<gstress>><<garousal>> <br> <</if>> <<link [[Refuse|Asylum Button Long Hair Refuse 2]]>><<def 1>><<suspicion 5>><</link>><<ggsuspicion>> <br><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> Harper shakes <<his>> head. "I'm disappointed. You can go." <br><br> The long-haired girl's eyes seem to follow you as you leave.<<if $o_long_and_beautiful lt 9>><<set $o_long_and_beautiful += 1>><</if>> <br><br> <<asylumRebind>> <<link [[Next|Asylum]]>><<asylumClothesOn>><<endevent>><</link>><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> <<if $awareness gte 400>> You try to describe what you saw to Harper, but words fail you. After an awkward silence, you end up stammering something about a monster and a void. <br><br> Harper nods, and writes something down on <<his>> clipboard. "I appreciate your honesty. I can assure you, there is nothing frightening about this picture." <<elseif $awareness gte 200>> <<if $speech_attitude is "meek">> "It looks like a... you know," you say, your voice fading to a whisper. "Someone's privates?" <<elseif $speech_attitude is "bratty">> "Is it meant to be a fucking <<if $NPCList[0].penis isnot "none">>dick?<<else>>pussy?<</if>>" you ask, squinting at the paper. <<else>> "I think it kind of looks like a <<if $NPCList[0].penis isnot "none">>penis,<<else>>vagina,<</if>>" you hesitantly say. <</if>> <br><br> Harper nods, and writes something down on <<his>> clipboard. "I appreciate your honesty. There's no reason to be uncomfortable. It's simply a sign that you have a healthy libido." <<else>> You tell Harper that the picture looks like a <<if $NPCList[0].penis isnot "none">>rocket.<<else>>butterfly.<</if>> <br><br> Harper smiles, and writes something down on <<his>> clipboard. "I appreciate your honesty. What this tells me is that you are very imaginative." <</if>> <<He>> glances at the clock. "That's all for today. Be well." <br><br> <<awareness -10>> <<link [[Next|Asylum]]>><<endevent>><</link>><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> You shake your head and keep your mouth shut. <<if $awareness gte 400>> You're not sure you're capable of describing what you saw, even if you wanted to. <<elseif $awareness gte 200>> There's no way you're going to tell the doctor you think it looks like something so dirty. <<else>> You don't want to play this game right now. <</if>> <br><br> Harper sighs, and writes something down on <<his>> clipboard. "You're only making it harder for me to help you by refusing to open up," <<he>> says. "But there's always another time." <<He>> glances at the clock. "That's all for today. Be well." <br><br> <<awareness -1>> <<link [[Next|Asylum]]>><<endevent>><</link>><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> You sit on the desk. Harper frowns at you. "It's rude to sit like that," <<he>> says. "There's a chair here. We can share." <br><br> <<link [[Sit on lap|Asylum Sit Lap]]>><<suspicion -1>><</link>><<promiscuous1>><<lsuspicion>><<lawareness -1>> <br> <<link [[Refuse|Asylum Sit Stand]]>><<suspicion 1>><</link>><<gsuspicion>> <br><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> You sit on the doctor's lap. <<He>> wraps an arm around your waist. <<promiscuity1>> "Today I want to talk about kissing," <<he>> says. "It's a normal and healthy activity. You should be happy kissing anyone at any time." <<He>> leans close. "Kiss me." <br><br> <<link [[Kiss cheek|Asylum Sit Kiss]]>><<suspicion -1>><<awareness -1>><</link>><<promiscuous1>><<lsuspicion>><<lawareness>> <br> <<if hasSexStat("promiscuity", 2)>> <<link [[Kiss mouth|Asylum Sit Kiss Mouth]]>><<suspicion -5>><<awareness -10>><<npcincr Harper love 1>><</link>><<promiscuous2>><<llsuspicion>><<llawareness>><<kissvirginitywarning>> <br> <<set $skulduggerydifficulty to (700 + ($suspicion * 6))>> <<if !pcAreArmsBound("both") and $asylumkeycard isnot 1>> <<link [[Steal keycard|Asylum Sit Steal]]>><</link>><<promiscuous2>><<skulduggerydifficulty>> <<note "This will be easier with low suspicion" "italic">> <br> <</if>> <</if>> <<link [[Refuse|Asylum Sit Refuse]]>><<suspicion 1>><<stress 3>><</link>><<gsuspicion>><<gstress>><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> Refusing to play along, you stand in the middle of the office. The doctor shakes <<his>> head. "We can't help you if you won't let us," <<he>> says. "You can go." <br><br> <<link [[Next|Asylum]]>><<endevent>><</link>> <br><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> The doctor shakes <<his>> head. "Disappointing, but there's always tomorrow. You may go." <br><br> <<link [[Next|Asylum]]>><<endevent>><</link>><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> You kiss <<him>>, making good use of your tongue. <<His>> eyes widen at first, but then close. <<He>> kisses back.<<promiscuity2>><<takeKissVirginity "Harper" "consensual">> <<if $arousal gte ($arousalmax / 5) * 4>> Your hands wander across <<his>> body, spurred by the heat coursing through your veins. <<He>> gasps into your mouth, grabbing your wrists and holding them away. Hesitation flashes across <<his>> face, but it's replaced by <<his>> usual tranquil smile. <br><br> "E-eager, are we?" <<He>> clears <<his>> throat and steadies <<his>> voice. "All I asked you to do was kiss me. I suppose this means you're ready for the next step." <br><br> You try to focus, but your thoughts struggle against <<his>> hand worming its way under your clothing. It settles at your chest. <<His>> fingers deftly pinch and tease your nipple, making you squirm. Squeaks and whines manage to pass your lips. You feel embarrassed, making such noises in front of the doctor.<<stress 2>><<gstress>> <br><br> <<He>> withdraws <<his>> hand. "As you can see, it's perfectly natural to touch other people. Doing so makes both parties feel good. Now, try to practise with me." <br><br> <<if hasSexStat("promiscuity", 2)>> <<link [[Comply enthusiastically|Asylum Sit Kiss Aroused]]>><<set $phase to 2>><<suspicion -1>><</link>><<promiscuous2>><<lsuspicion>> <br> <</if>> <<link [[Comply passively|Asylum Sit Kiss Aroused]]>><<set $phase to 1>><<suspicion -1>><</link>><<promiscuous1>><<lsuspicion>> <br> <<link [[Refuse|Asylum Sit Kiss Aroused]]>><<set $phase to 0>><<suspicion 1>><</link>><<gsuspicion>> <br> <<else>> "V-very good," <<he>> says, pulling away from you. "You've done well today. Be well." <br><br> You climb off <<his>> lap and walk to the door. <<lsuspicion>><<suspicion -5>> <br><br> <<endevent>> <<link [[Next|Asylum]]>><</link>> <br> <</if>><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> <<if $phase gte 1>> You nod and return your hands to <<his>> body. <<promiscuity2>> <<if currentSkillValue("handskill") gte 400>> This isn't your first time using your hands in such a way. You get to work at stroking <<his>> stomach first, then slowly moving up toward <<his>> chest. <<His>> breath catches in <<his>> throat as you <<if $NPCList[0].breastsize gt 1>>caress <<his>> $NPCList[0].breastdesc<<else>>circle <<his>> nipples<</if>>. <<else>> Though you aren't experienced, you try your best to satisfy <<him>>. You brush your hands along <<his>> sides and stomach with nervous, delicate touches. It seems to have an effect on <<him>>. Your touch leaves <<him>> shuddering ever so slightly. <</if>> <<handskilluse>> <br><br> <<if $phase is 2>> You trail your hand lower as you work, until it brushes the doctor's crotch. <<He>> inhales sharply and rests a hand on yours. "My, my. I didn't think you'd be ready for this. You're exceeding expectations." <<He>> stares at you intently, eyes glimmering with barely-restrained lust. "Sh-shall we move on to the next phase?" <br><br> <<if hasSexStat("promiscuity", 3)>> <<link [[Go further|Asylum Sit Kiss Further]]>><<set $phase to 2>><<suspicion -5>><</link>><<promiscuous3>><<llsuspicion>> <<else>> <<insufficientStat "promiscuity" "to take things any further">> <</if>> <br> <<link [[Pull away|Asylum Sit Kiss Further]]>><<set $phase to 0>><<suspicion 5>><</link>><<ggsuspicion>> <br> <<else>> "T-that's enough. You did well." <<He>> reaches into <<his>> coat and retrieves a pair of rubber gloves. <<He>> slides them on with the practised speed of a professional. "Now, I believe you have a little problem." <<He>> rests one of <<his>> gloved hands on your thigh. "May I?" <br><br> <<if hasSexStat("promiscuity", 2)>> <<link [[Allow|Asylum Sit Kiss Further]]>><<set $phase to 1>><<suspicion -1>><</link>><<promiscuous2>><<lsuspicion>> <<else>> <<insufficientStat "promiscuity" "to take things any further">> <</if>> <br> <<link [[Refuse|Asylum Sit Kiss Further]]>><<set $phase to 0>><<suspicion 1>><</link>><<gsuspicion>> <br> <</if>> <<else>> Though your body trembles with arousal, you shake your head. Doctor Harper frowns. "I suppose we can work on this later." <br><br> You fix your clothes and climb off the desk, and Harper's lap. "Be well," <<he>> calls after you. You hear <<him>> sigh as the door closes. <br><br> <<link [[Next|Asylum]]>><<endevent>><</link>> <br> <</if>><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> <<if $phase is 2>> You rub with more pressure. It's all the confirmation Harper needs. <<promiscuity3>> "Very good." <<His>> lips curl into a subdued grin. "Now, get up." <br><br> You do as instructed and climb off <<his>> lap. <<He>> takes advantage of your new position by pushing you over <<his>> desk, onto your back. <br><br> The doctor bears down on you, tracing <<his>> fingers along your arm. "I think it's time I observe your progress first-hand." <br><br> <<link [[Take <<his>> hands|Asylum Sit Kiss Sex]]>><<set $phase to 1>><<set $sexstart to 1>><</link>><<handholdingvirginitywarning>> <br> <<link [[Stay still|Asylum Sit Kiss Sex]]>><<set $phase to 0>><<set $sexstart to 1>><</link>> <br> <<elseif $phase is 1>> You nod, desperate for release. <<switch $player.sex>> <<case "f">> <<His>> hand dips beneath your clothes. <span class="lewd">You feel a finger stroke your lower lips,</span> causing you to shudder with pleasure. Your juices quickly begin to coat <<his>> questing fingers as one enters you. It's obvious that <<he>> knows exactly what to do to pleasure you as much as possible. <<He>> pushes in a second finger and starts to move them in and out, <<his>> thumb pressing against and rubbing your clit. <<arousal 10000 "genitals">> <<orgasm>> <<He>> steadies you with a hand on your hip you as your spasms subside. "Did you have fun?" <<he>> asks, panting. "You enjoy being touched like that, don't you?" <br><br> You shiver as <<he>> pulls <<his>> fingers out of you. "You've shown great improvement today." <<He>> leads you out of the office with a smile. "Be well." <<case "m">> <<He>> displaces your clothes, <span class="lewd">exposing your <<penis>></span>. The cool air provides mild relief from the heat in your body. <<He>> smiles and rubs <<his>> thumb against the very tip, causing you to shudder. <<He>> coats <<his>> glove in the leaking precum, then wraps <<his>> fingers around your shaft, stroking it in a steady up-and-down motion. <<arousal 10000 "genitals">> <<orgasm>> <<He>> tightens <<his>> grip and slows <<his>> pace, coaxing out the last few drops of cum. "Did you have fun?" <<he>> asks, panting. "You enjoy being touched like that, don't you?" <br><br> You shiver as <<he>> pulls <<his>> fingers out of you. "You've shown great improvement today." <<He>> leads you out of the office with a smile. "Be well." <<case "h">> <<He>> displaces your clothes, <span class="lewd">exposing your <<genitals>></span>. <<His>> eyebrows raise at the sight. "Your body is fascinating. I rarely see people like you." <br><br> <<He>> puts both hands to work. <<He>> holds your penis in <<his>> left hand, rubbing the tip with <<his>> thumb and using the precum as lubricant to stroke your shaft. With <<his>> right hand, <<he>> strokes your labia with clinical precision. <<He>> presses two fingers inside and rubs your inner walls. The dual sensation soon overwhelms you. <<arousal 10000 "genitals">> <<orgasm>> <<He>> pulls <<his>> hands away, then tosses <<his>> gloves into a nearby trash can. "I wonder, do you experience twice as much pleasure when both parts are stimulated?" <<He>> narrows <<his>> eyes in thought. "A test for later, I suppose." <<He>> leads you out of the office with a smile. "You've shown great improvement today. Be well." <<default>> <<His>> hand dips beneath your clothes, but <<he>> frowns when <<he>> reaches your genitals. Or lack thereof. <br><br> "That's... unusual." <<He>> withdraws <<his>> hand and makes a note on a clipboard. "I need to make some calls. We're done, for now." <<He>> hurriedly ushers you out the door. "Be well." <</switch>> <br><br> <<link [[Next|Asylum]]>><<endevent>><</link>> <br> <<else>> You shake yourself from the haze of lust and pull your hand away. Doctor Harper grimaces and clears <<his>> throat. "I suppose I misjudged your progress." <br><br> <<He>> climbs off the desk with a sigh. "You're only hurting yourself by resisting treatment," <<he>> says as <<he>> leads you out of the office. "Be well." <br><br> <<link [[Next|Asylum]]>><<endevent>><</link>> <br> <</if>><<if $sexstart is 1>> <<set $sexstart to 0>> <<consensual>> <<set $consensual to 1>> <<neutral 1>> <<maninit>> <<if $phase is 1>> You reach up and intertwine your fingers with <<hers>>. <<takeHandholdingVirginity "Harper" "consensual" null true>> <</if>> <</if>> <<effects>> <<effectsman>> <<alarmstate>> <<man>> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Asylum Sit Kiss Sex Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Asylum Sit Kiss Sex]]>><</link>></span><<nexttext>> <</if>><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<ejaculation>> Harper sighs in contentment and steps away from you. "Excellent. I'm proud of how quickly you're taking to the treatment."<<suspicion -10>><<lllsuspicion>> <br><br> <<He>> stands up and straightens <<his>> clothes. "You may go now," <<he>> says. "Be well." <<elseif $enemyhealth lte 0>> You shove Harper against the desk and scurry to a corner of the room. <<He>> reaches for a button on <<his>> desk, but thinks better of it.<<suspicion 5>><<ggsuspicion>> <br><br> "The only person you're hurting by resisting treatment is yourself." <<He>> takes a seat at <<his>> desk. "You may go now," <<he>> sighs. "Be well." <<elseif $finish is 1>> Harper shakes <<his>> head and pushes <<himself>> off the desk. "The treatment is for your own good. The sooner you understand, the sooner we can help you."<<suspicion 1>><<gsuspicion>> <br><br> <<He>> takes a seat at <<his>> desk. "You may go now," <<he>> sighs. "Be well." <<else>> You hear a voice outside. It's an orderly, investigating the commotion. Harper shoots off the desk and hastens to straighten <<his>> clothes. "W-we're fine in here," <<he>> calls out. "Nothing I can't handle." <br><br> Satisfied with the doctor's response, the orderly leaves you alone. Harper looks to you warily.<<suspicion 5>><<ggsuspicion>> <br><br> "The only person you're hurting by resisting treatment is yourself." <<He>> takes a seat at <<his>> desk. "You may go now," <<he>> sighs. "Be well." <</if>> <<tearful>> you leave the room. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Asylum]]>><<endevent>><</link>> <br><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> You plant a light kiss on the doctor's cheek. <<He>> scribbles on <<his>> clipboard. "That's satisfactory," <<he>> says. "You may go. Be well." <br><br> <<endevent>> <<link [[Next|Asylum]]>><</link>> <br><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> You kiss <<him>>, making good use of your tongue. <<His>> eyes widen at first, but then close. <<He>> kisses back.<<promiscuity2>><<takeKissVirginity "Harper" "consensual">> You run your hand against <<his>> chest, and dip into <<his>> pocket. <<skulduggerycheck>> <<if $skulduggerysuccess is 1>> <<wearProp "keycard" "silver">> <span class="green">You pull out a keycard and hide it away.</span> <<set $asylumkeycard to 1>> <br><br> <<skulduggeryuse>> "V-very good," <<he>> says, pulling away from you. "You've done well today. Be well." <br><br> You climb off <<his>> lap and walk to the door. You can't help but smirk. <<lsuspicion>><<suspicion -5>><<npcincr Harper love 1>> <br><br> <<pubfameComplete "hospital" "asylum">> <<link [[Next|Asylum]]>><<endevent>><</link>> <br> <<else>> <span class="red"><<He>> grabs your wrist.</span> <<gggsuspicion>><<suspicion 20>> <br><br> <<skulduggeryuse>> "I'm very disappointed in you," <<he>> says. <<He>> reaches beneath the desk, and the doors swing open. Several orderlies march in. <br><br> <<asylumpunish>> <</if>><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> <<if $hallucinations gte 1 and $settings.tentaclesEnabled>> You notice a faint purple light. You reach toward it, and feel the door. It's ajar. <br><br> <<link [[Open it|Tentacle World Intro]]>><<endevent>><<arousal 600>><</link>><<garousal>> <br> <<link [[Stay away|Asylum Room 2]]>><<stress 3>><<awareness -10>><</link>><<llawareness>><<gstress>> <br> <<else>> <<pass 180>> Hours pass, with nothing to distract you but your own thoughts. You're relieved when the door is opened by Doctor Harper. <br><br> <<He>> smiles at you. "I'm sorry," <<he>> says. "It was for your own good. <<if $asylumstate is "sleep">> Let's bring you to your bed. You need your sleep." <br><br> Flanked by orderlies, Doctor Harper leads you back to your room. The door locks with a click. <br><br> <<endevent>> <<link [[Next|Asylum Cell]]>><</link>> <br> <<else>> Let's bring you back to your fellow patients. They've missed you." <br><br> Flanked by orderlies, Doctor Harper leads you back to the occupied part of the asylum. <br><br> <<endevent>> <<link [[Next|Asylum]]>><</link>> <br> <</if>> <</if>><<set $outside to 0>><<set $location to "asylum">><<pass 180>><<asylumeffects>><<effects>> Hours pass, with nothing to distract you but your own thoughts. You feel relieved when the door is opened by Doctor Harper. <<llawareness>><<gstress>><<stress 3>><<awareness -10>> <br><br> <<He>> smiles at you. "I'm sorry," <<he>> says. "It was for your own good. <<if $asylumstate is "sleep">> Let's bring you back to your bed. You need your sleep." <br><br> Flanked by orderlies, Doctor Harper leads you back to your room. The door locks with a click. <br><br> <<endevent>> <<link [[Next|Asylum Cell]]>><</link>> <br> <<else>> Let's bring you back to your fellow patients. They've missed you." <br><br> Flanked by orderlies, Doctor Harper leads you back to the occupied part of the asylum. <br><br> <<endevent>> <<link [[Next|Asylum]]>><</link>> <br> <</if>><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> <<strip>> "I'll strip," you say. The orderlies step forward to help, but there's no need. You <<nervously>> remove your clothes and walk up to the window. You knock on it, and keep knocking until everyone is looking. You hear whistling through the glass. <<covered>> <<flaunting>> you twirl to give everyone a good look. <<exhibitionism5>> "Very good," Doctor Harper says with a smile. The <<person2>><<person>> gapes. "You can get dressed. I think you already understand this lesson." <br><br> Harper has the <<person2>><<person>> remain for further instruction. You fix your clothes. <br><br> <<asylumRebind>> <<link [[Next|Asylum]]>><<asylumClothesOn>><<endevent>><</link>> <br><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> <<strip>> "I'll strip," you say. You <<nervously>> undress, though not fast enough for the orderlies, who step forward to help. They almost tear your clothing off in their eagerness. The <<person>> averts <<his>> gaze. <<covered>> "Very good," Harper says. "Now, the window. Let everyone see." <br><br> You walk up to the window. One of the orderlies knocks on it, until everyone outside is watching you. <<covered>> You hear whistling through the glass. <br><br> "Isn't it exciting?" the doctor says. "All those people can't keep their eyes off you. That will do. Get dressed." <br><br> Harper has the <<person2>><<person>> remain for further instruction. You fix your clothes. <br><br> <<asylumRebind>> <<link [[Next|Asylum]]>><<asylumClothesOn>><<endevent>><</link>> <br><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> "Please," the <<person>> sobs. The orderlies pay no heed as they tear <<his>> clothing off <<his>> body and shove <<him>> to the window. One of them knocks on it, until everyone outside is watching. You hear whistling through the glass. <br><br> "<<He>> doesn't have to suffer so," the doctor whispers to you. "<<He>> chooses to. <<Hes>> in no danger. But you've done your part. You can go." <br><br> <<asylumRebind>> <<link [[Next|Asylum]]>><<asylumClothesOn>><<endevent>><</link>> <br><<if $sexstart is 1>> <<saveNPC 1 "harper_asylum_oral">> <<clearsinglenpc 0>> <<clearsinglenpc 1>> <<loadNPC 0 "harper_asylum_oral">> <<set $npcrow.splice(0)>> <<person1>> <<set $sexstart to 0>> <<if _resistedEscalation>> <span class="red">You crouch in front of the <<person>>.<<npcexposetext>></span> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<else>> You crouch in front of the <<person>>.<<npcexposetext>> <<neutral 1>> <<consensual>> <<set $consensual to 1>> <</if>> Doctor Harper leans forward for a closer look. <br><br> <<maninit>><<npcoral>> <<set $enemytrust += 100>> <</if>> <<effects>> <<effectsman>> <<man>> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Asylum Hypnosis Oral Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Asylum Hypnosis Oral]]>><</link>></span><<nexttext>> <</if>><<asylumeffects>><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<ejaculation>> "Very good," the doctor says. "Both of you. When I drop this pen, you will awaken." <<nnpc_He "Harper">> drops the pen. <br><br> The <<person>> blinks, then blushes and covers <<his>> genitals. "You can go," the doctor says. "Be well." <br><br> <<tearful>> you leave the office. <br><br> <<clotheson>> <<endcombat>> <<elseif $enemyhealth lte 0>> The <<person>> snaps out of <<his>> trance. <<He>> blushes and covers <<his>> genitals. "You have a long way to go," the doctor says. "You can go. Be well." <br><br> <<tearful>> you leave the office. <br><br> <<clotheson>> <<endcombat>> <<elseif $finish is 1>> The <<person>> snaps out of <<his>> trance. <<He>> blushes and covers <<his>> genitals. "You have a long way to go," the doctor says. "You can go. Be well." <br><br> <<tearful>> you leave the office. <br><br> <<clotheson>> <<endcombat>> <</if>> <<link [[Next|Asylum]]>><</link>><<asylumeffects>><<effects>> <<set _resisted to true>> <<if $willpowerSuccess>> <<npcincr Harper dom -5>> <span class="green">You shake yourself free of the effect.</span> The effort leaves you a bit strained. <<stress 6>><<ggstress>> <br><br> <<endevent>><<npc Harper>><<person1>> The doctor shakes <<his>> head. "That's enough for today. Remember, don't be afraid to relax. Be well." <<suspicion 5>><<ggsuspicion>> <br><br> <<asylumRebind>> <<link [[Next|Asylum]]>><<asylumClothesOn>><<endevent>><</link>> <<else>> <<include "Asylum Hypnosis Trance">> <</if>><<asylumeffects>><<effects>> <<pass 10>> <<hypnotised 1>> <<if _resisted>> <span class="red">You slip deeper into the trance.</span> <<else>> You slip deeper into the trance. <span class="green"> <<if $harper_appointments.hypnosis is 0 and $harper_appointments.dog is 0>> You don't remember ever feeling so tranquil. <<else>> You return to the familiar state of tranquillity. <</if>> </span> <</if>> You hear Harper's voice drifting toward you. <<if $hypnosis_traits.devotion gte 5>> "That's very good. Now, the next time you feel overwhelmed by it all..." <span class="purple"><<his>> voice fades away, along with the rest of the room. Someone is standing where Harper just was.</span> <br><br> <span class="forest-green">It's Gwylan. <<nnpc_He "Gwylan">> takes a step towards you, smiling, and cups your cheeks. No words leave <<nnpc_his "Gwylan">> lips, but they move regardless.</span> <br><br> <<if $phase is "Dog">> A line of green light extends from <<nnpc_his "Gwylan">> hand, gently wrapping around your neck with a click. <</if>> <<nnpc_He "Gwylan">> brings <<nnpc_his "Gwylan">> face closer to yours. Finally, you can hear <<nnpc_his "Gwylan">> voice. <br><br> <<if $phase is "Dog">> "<span class="witch">You act like a pet for me, and me alone.</span>" <<else>> "<span class="witch"><<He>> can't have you.</span>" <</if>> <br><br> You're brought back to the room as you hear something drop to the ground. Harper's hand is on <<his>> head. "I'm sorry, I seem to be getting a migraine. That's enough for today. Remember, don't be afraid to relax. Be well." <br><br> <<asylumRebind>> <<link [[Next|Asylum]]>><<asylumClothesOn>><<endevent>><</link>> <<else>> "That's very good. Now, the next time you feel overwhelmed by it all, I want you to remember this feeling, and..." <<He>> gives you instructions. "...you won't remember this." <br><br> <<if $phase is "Oral">> <<set _trait to "suggestion">> <<set _traitText to "suggestion">> <<set _TraitText to "Suggestion">> <<elseif $phase is "Exhibitionism">> <<set _trait to "cover">> <<set _traitText to "flaunting">> <<set _TraitText to "Flaunting">> <<elseif $phase is "Dog">> <<set _trait to "deviancy">> <<set _traitText to "deviancy">> <<set _TraitText to "Deviancy">> <</if>> <span class="pink">You feel something shift in your consciousness.</span> <<if $hypnosis_traits.devotion gte 4 and random(0, 1)>> Only to be put back into place a moment later. <span class="forest-green">The sting of a rose's thorn keeps you just focused enough to subtly shake it off.</span> Your thoughts remain clear, for the moment. <<elseif !$hypnosis_traits[_trait]>> <<set $hypnosis_traits[_trait] to 1>> You've gained the <span class="pink">Hypnotic _TraitText</span> trait. <<elseif $hypnosis_traits[_trait] lt 5>> <<set $hypnosis_traits[_trait] += 1>> Your hypnotic _trait has strengthened. <</if>> <<set _traitValue to $hypnosis_traits[_trait]>> <br><br> "Good," the doctor says. <<if $phase is "Oral">> <<person2>>"I want you to get on your knees and use your mouth on <<his>> genitals. <<He>> will enjoy it. Is that clear?" <br><br> "Yes," the <<person>> says. "I will enjoy it." <<elseif $phase is "Exhibitionism">> "I want you to take off your clothes. We're going for a walk." <<elseif $phase is "Dog">> <<generateBEAST 2 "dog">> <<person2>> <<if $NPCList[1].monster is 1>> "Good," the doctor says. "Bring <<bhim>> in." A group of orderlies enter. One holds a <<beasttype 1>> on a leash, who appears to be panting heavily. <<bHis>> nude body is on full display. <<bHe>> strains to reach you. Harper turns to you. "We found <<bhim>> up near those farms," <<nnpc_he "Harper">> says. "<<bHes>> been misbehaving, and could use some "personal" attention. From a <<bitch>> in heat, more specifically. You can't wait to be <<bred>>." You feel an urge to bark. <<else>> "Good," the doctor says. "Bring it in." A group of orderlies enter. One holds a <<beasttype 1>> on a leash. It strains to reach you. Harper turns to you. "You're a bitch in heat. You can't wait to be <<bred>>." You feel an urge to bark. <</if>> <</if>> <br><br> <<link "Obey" `"Asylum Hypnosis "+$phase`>><<set $sexstart to 1>><<control 25>><<trauma -6>><<stress -12>><<awareness -10>><<suspicion -5>><</link>><<ggcontrol>><<llsuspicion>><<llawareness>><<ltrauma>><<lstress>> <br> <<link [[Resist|Asylum Hypnosis Escalation Resist]]>><</link>><<willpowerdifficulty 1 `((_traitValue || 3)**0.9)*300`>> <</if>><<asylumeffects>><<effects>> <<set _resistedEscalation to true>> <<if $willpowerSuccess>> <<npcincr Harper dom -5>> <<suspicion 5>> <span class="green">You shake yourself free of the effect.</span> The effort leaves you a bit strained. <<stress 6>><<ggstress>> <br><br> <<endevent>><<npc Harper>><<person1>> The doctor shakes <<his>> head. "That's enough for today. Remember, don't be afraid to relax. Be well." <<ggsuspicion>> <br><br> <<asylumRebind>> <<link [[Next|Asylum]]>><<asylumClothesOn>><<endevent>><</link>> <<else>> <<hypnotised 1>><<npcincr Harper dom 5>> <<if $phase is "Oral" or $phase is "Dog">> <<set $sexstart to 1>> <</if>> <<include `"Asylum Hypnosis " + $phase`>> <</if>><<asylumeffects>><<effects>> <<strip>> <<fameexhibitionism 10>> <<wearProp "featherduster">> <<if _resistedEscalation>> <span class="red">You remove your clothing with robotic movements.</span> <<else>> You remove your clothing with robotic movements. <</if>> The doctor smiles. "Good," <<he>> says as <<he>> stands. "Let's go for a walk." <br><br> You leave the office, into the corridor outside. A passing nurse ogles you, and gives Harper a knowing look. "You feel excited to be exposed in a public space," the doctor says. <<Hes>> right. "You want to show everyone your body." You nod. Together you walk to the recreation room. <br><br> All heads turn when you arrive, a naked <<girl>> with Doctor Harper close behind. "Here." <<He>> hands you a feather duster. "This room is very dusty. Clean it." <br><br> You get to work. The room is very dusty. You dust the tables. You bend over to dust the chairs. You kneel to dust the floor. The doctor stays near you, and intervenes whenever someone gropes. "That's not what this is about," <<he>> says. "Look, don't touch." <br><br> <<pass 30>> You continue cleaning the room, unbothered by all the eyes on your <<lewdness>>. "That's enough," Harper announces after some time. "The room is clean." <<He>> takes the feather duster from you. The patients beg Harper to let you continue, but <<he>> doesn't relent. <br><br> "You've done very well today," the doctor says once back in <<his>> office. "Get dressed." <br><br> You fix your clothes. <br><br> "When I drop this pen, you will awaken." <<He>> drops it, and you blink free of the haze. "We've made good progress. You should be proud. Be well." You leave <<his>> office. <br><br> <<asylumRebind>> <<link [[Next|Asylum]]>><<asylumClothesOn>><<endevent>><</link>><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>><<rngWraith 2>> The compartment clangs shut. A dim light fills the interior, though you can't see the source. "Are you comfortable in there?" asks Harper's muffled voice. "I'm turning it on." The light becomes more intense. Small holes open on the top and sides of the chamber. A pink mist flows out. It smells sweet. You feel warm. <br><br> <<drugs 180>> Several dozen tendrils emerge next. They snake over your body, writhing against your skin, <<if $worn.upper.name isnot "naked">> beneath your $worn.upper.name, <</if>> and against your <<breasts>>. <<if $worn.under_lower.name isnot "naked">> Even your $worn.under_lower.name <<underlowerplural>> no protection. <</if>> They tease your <<genitals>> without mercy. <br><br> <<pass 5>> This continues for a few minutes. Puffs of pink mist continue to emerge, along with more tendrils. Your breathing becomes deeper and your pulse quickens. <br><br> <<if $wraith.state is "haunt" and _wraithEvent>> <<arousal 5000>> <<endevent>> <<generateWraith 1 true>><<rainWraith>> Suddenly, the lights go out with a snapping sound, leaving you in pitch black darkness. You hear murmurs from outside the machine, followed by frantic footsteps. It feels like something is pushing down on you. The sound becomes more and more intense, until it almost sounds like rain hitting the machine. <br><br> A faint red light begins to shine around you, <span class="red">revealing a<<if $wraith.seen gte 3>> familiar<</if>> pale face right above yours.</span> You try to scream, but something is already blocking your mouth. <<if $wraith.seen gte 1>> The <<person>> smiles. "<span class="wraith">We meet again, <<pcpetname "Wraith">>.</span>" <<else>> "<span class="wraith">Thief. Give it back.</span>" <</if>> <br><br> <<initWraith "abomination">> <<if $wraith.gen is "abomination">> Pale tendrils swarm around you, holding you down. <<else>> Several disembodied arms emerge from the walls, holding you down. <</if>> Harper's voice is just barely audible. "Something's wrong with the machine! Get <<phim>> out of there!" <br><br> <<link [[Next|Asylum Machine Wraith]]>><<set $molestationstart to 1>><</link>> <br> <<else>> <<arousal 10000>> <<orgasm>> You hear applause from outside the machine. Did you make that much noise? "Very good," Harper says. "That should do it. This should be the right button." The tendrils withdraw and the holes close. The compartment opens and several pairs of arms help you to your feet. "You've done well today," the doctor says. "I hope you found it relaxing. Be well." <br><br> You leave the room, still shaking. <br><br> <<endevent>> <<link [[Next|Asylum]]>><</link>> <br> <</if>><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> Harper looks above your shoulder, and nods. <<if currentSkillValue('athletics') gte random(1, 1000)>> <span class="green">You succeed in dodging</span> the orderlies who try to grab you from behind. Harper shakes <<his>> head. "We can't help if you won't let us," <<he>> says. "You can go." <br><br> <<endevent>> <<link [[Next|Asylum]]>><</link>> <br> <<else>> <span class="red">You fail to dodge</span> the orderlies who attack from behind. They lift you off your feet and force you into the machine. <<stress 6>><<gstress>> <br><br> <<link [[Next|Asylum Machine]]>><</link>> <br> <</if>><<if $sexstart is 1>> <<saveNPC 1 "harper_asylum_dog">> <<clearsinglenpc 0>> <<clearsinglenpc 1>> <<loadNPC 0 "harper_asylum_dog">> <<set $npcrow.splice(0)>> <<set $sexstart to 0>> <<set $NPCList[0].stance to "top">> <<set $position to "doggy">> <<if _resistedEscalation>> <span class="red">You drop to the ground and adopt a mating posture.</span> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<else>> You drop to the ground and adopt a mating posture. <<neutral 1>> <<consensual>> <<set $consensual to 1>> <</if>> Doctor Harper takes notes. <br><br> <<beastCombatInit>> <</if>> <<effects>> <<effectsman>> <<beast $enemyno>> <br> <<audience>> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Asylum Hypnosis Dog Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Asylum Hypnosis Dog]]>><</link>></span><<nexttext>> <</if>><<set $outside to 1>><<set $location to "asylum">><<asylumeffects>><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<beastejaculation>> The orderly pulls the <<beasttype>> off you. <<else>> The <<beasttype>> whimpers and hides behind the orderlies. <</if>> <br><br> <<endcombat>> <<npc Harper>><<person1>> <<if $enemyarousal gte $enemyarousalmax>> "You've done very well today," says Harper. <<else>> Harper sighs. <</if>> <<if !pcAreArmsBound("both")>> "Get dressed." <br><br> <<clotheson>> <<else>> <<if $worn.upper.name is "straightjacket" and $worn.lower.name is "naked">> <<He>> ignores the state of your ruined $worn.upper.name. <</if>> <br><br> <</if>> "When I drop this pen, you will awaken." <<He>> drops it, and you blink free of the haze. <<if $enemyarousal gte $enemyarousalmax>> "We've made good progress. You should be proud. Be well." The orderlies are smiling at their phones. <<else>> "That's it for today. Be well." <</if>> <br><br> <<asylumRebind>> <<link [[Next|Asylum]]>><<asylumClothesOn>><<endevent>><</link>><<asylumeffects>><<effects>> <<if $willpowerSuccess>> <<npcincr Harper dom -5>> <<suspicion 5>> <span class="green">You shake yourself free of the effect.</span> The effort leaves you a bit strained. <<stress 6>><<gstress>> <br><br> <<endevent>><<npc Harper>><<person1>> The doctor shakes <<his>> head. "That's enough for today. Remember, don't be afraid to relax. Be well." <<ggsuspicion>> <br><br> <<if !pcAreArmsBound("both")>> You pet the <<beasttype>> on the way out.<<lstress>><<stress -12>> <br><br> <</if>> <<asylumRebind>> <<link [[Next|Asylum]]>><<asylumClothesOn>><<endevent>><</link>> <<else>> <<set $sexstart to 1>><<hypnotised 1>><<npcincr Harper dom 5>> <<include "Asylum Hypnosis Dog">> <</if>><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> <<if $phase is 1>> The <<person>> pushes you onto the chair and binds your limbs. "There," <<he>> says. "Administer the treatment." <<else>> You sit down. Harper binds your arms and legs. "It's just a precaution," <<person1>><<he>> assures you. <</if>> <br><br> <<person1>> Harper affixes a mask around <<his>> head. The others follow <<his>> example while <<he>> opens a safe. <<He>> pulls out a canister, then holds it at arm's reach in front of you, and opens it. Purple fumes rise from within. It smells sweet. <br><br> <<pass 5>> <<if $wraith.state and $rng gte 51>> You sit for a few minutes. The light above you flickers briefly, but no one else seems to notice. <<if Weather.precipitation is "none">> You think you hear raindrops hitting the window, but when you look, the windows are all dry. <<else>> You hear a faint rumble of thunder in the distance, and your eyes flit to the windows reflexively. <</if>> The doctors watch you, taking note of where your gaze lands. <br><br> <<if ["haunt", "despair"].includes($wraith.state)>> When you look back, <<if $wraith.seen gte 1>>your blood runs cold. A familiar pale figure stares at you from the corner of the room, smiling at you behind glowing <<wraithEyes>> eyes. <<stress 24>><<gggstress>><<trauma 6>><<gtrauma>><<else>>your breath catches in your throat. You see a pale figure flickering in the corner of the room, staring directly at you with bright <<wraithEyes>> eyes. <<stress 12>><<ggstress>><</if>> <<else>> When you look back, another light flickers in the corner of the room, and something disappears. Your ears begin ringing. You definitely saw something... someone... there. It looked tall and pale, wearing an ivory necklace set with dark blue gemstones. You think it was waving at you, or maybe motioning for you to get closer. <<stress 12>><<ggstress>> <</if>> <br><br> Harper notices your discomfort. "What's wrong? Did you see something strange?" Everything snaps back to normal as <<he>> speaks. <br><br> <<link [[Tell|Asylum Pill Tell]]>><<awareness -5>><<stress -3>><</link>><<lawareness>><<lstress>> <br> <<link [[Stay quiet|Asylum Pill Quiet]]>><<suspicion 1>><<awareness 5>><<stress 3>><</link>><<gsuspicion>><<gawareness>><<stress 3>> <br> <<else>> You sit for a few minutes. The doctors watch you, as if expecting something to happen. "Well?" the <<person2>><<person>> says. "Do you see anything strange?" You shake your head. <br><br> "We'll keep an eye on <<phim>>," Harper says. "I'll send for the next patient." <<He>> undoes the straps on the chair. "Thank you for cooperating. Be well." <br><br> <<endevent>> <<link [[Next|Asylum]]>><</link>> <br> <</if>>You tell them about what you saw, but find yourself unable to recall the finer details already. <<He>> undoes the straps on the chair as the other doctors murmur something. <br><br> "Fascinating. Thank you for cooperating. You can go," <<he>> says. "Be well." <<endevent>> <br><br> <<link [[Next|Asylum]]>><</link>> <br>You shake your head. They all look sceptical, but Harper gives you a patient smile. <br><br> "We'll keep an eye on <<phim>>," Harper says. "I'll send for the next patient." <<He>> undoes the straps on the chair. "Thank you for cooperating. Be well." <br><br> <<endevent>> <<link [[Next|Asylum]]>><</link>> <br><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> "That's disappointing," Harper sighs. "But alright. Be—" <br><br> "I don't see why the mad <<girl>> should have a choice," the <<person2>><<person>> interrupts. <<He>> rises to <<his>> feet and grabs your arm. <<He>> tries to pull you to the chair. <br><br> <<if !pcAreArmsBound("both")>> <<link [[Slap|Asylum Pill Slap]]>><<suspicion 5>><<trauma -6>><<stress -6>><</link>><<ggsuspicion>><<ltrauma>><<lstress>> <br> <</if>> <<link [[Let it happen|Asylum Pill Sit]]>><<awareness -10>><<suspicion -5>><<set $phase to 1>><<hallucinogen 180>><</link>><<llsuspicion>><<llawareness>> <br><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> You slap the <<persons>> face. <<He>> recoils in shock. "The insolence," <<he>> says. Harper steps forward and grips <<his>> arm. <br><br> <<person1>>"That's enough," <<he>> says. "This is my patient. It's up to me." The <<person2>><<person>> sneers, but doesn't push it. The <<person3>><<person>> watches with an amused smile. <br><br> "You can go," Doctor Harper says. "Be well." <<endevent>> <br><br> <<link [[Next|Asylum]]>><</link>> <br><<if $fightstart is 1>> <<set $fightstart to 0>> <<neutral 1>> <<maninit>> <<set $enemytrust -= 100>> <<set $enemyanger += 200>> <<npcidlegenitals>> You leap across the desk at Harper. <<He>> presses the alarm, but no one comes. The distraction worked. <<set $asylumdistracted to 0>><<set $enemyhealth *= 0.6>><<set $enemyhealthmax *= 0.6>> <br><br> <</if>> <<effects>> <<effectsman>> <<man>> <<stateman>> <br><br> <<actionsman>> <<if _combatend or ($pain gte 100 and $willpowerpain is 0)>> <span id="next"><<link [[Next|Asylum Fight Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Asylum Fight]]>><</link>></span><<nexttext>> <</if>><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<ejaculation>> <<He>> slumps in <<his>> seat and shuts <<his>> eyes. It's easy to snatch the keycard from <<his>> pocket without being noticed. <<tearful>> you leave the office. Orderlies wait for you outside, unaware that you have the keycard tucked away. <<set $asylumkeycard to 1>> <br><br> <<clotheson>> <<endcombat>> <<pubfameComplete "hospital" "asylum">> <<asylumpunish>> <<elseif $enemyhealth lte 0>> Harper winces and tries to flee the room, but you grasp <<his>> coat. <<He>> shakes free of it and escapes. There's a keycard in the pocket. <<tearful>> you leave the office. Orderlies wait for you outside. <<set $asylumkeycard to 1>> <br><br> <<clotheson>> <<endcombat>> <<pubfameComplete "hospital" "asylum">> <<asylumpunish>> <<else>> <<tearful>> you fall to the ground. Harper pants. "This is why you're in here," <<he>> says. "You can't handle your emotions." The orderlies arrive. <br><br> <<clotheson>> <<endcombat>> <<asylumpunish>> <</if>><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> You lunge over the desk and try to grab Harper. <<He>> stands back, knocking <<his>> chair over. Several orderlies burst into the room and tackle you to the ground. <br><br> <<asylumpunish>><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> You reach across the desk and grab <<his>> coat with both hands. "You're wrong," you shout. You slip a hand into <<his>> pocket. <br><br> <<skulduggerycheck>> <<if $skulduggerysuccess is 1>> <<wearProp "keycard" "silver">> <span class="green">You pull out a keycard and hide it away.</span> <<set $asylumkeycard to 1>> <<skulduggeryuse>> <<He>> pushes you back on your chair as several orderlies march in. <br><br> <<pubfameComplete "hospital" "asylum">> <<asylumpunish>> <<else>> <span class="red"><<He>> grabs your wrist.</span> <<gggsuspicion>><<suspicion 20>> <<skulduggeryuse>> "I'm very disappointed in you," <<he>> says. <<He>> reaches beneath the desk, and the doors swing open. Several orderlies march in. <br><br> <<asylumpunish>> <</if>><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> "You're wrong," you say. "People keep forcing themselves on me." <br><br> <<He>> shakes <<his>> head and writes something on <<his>> clipboard. "That's okay," <<he>> says. "I'll be here when you're ready to admit what you've been up to." <<He>> glances at the clock. "That's all for today. Be well." <br><br> <<endevent>> <<link [[Next|Asylum]]>><</link>> <br><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> "I-It's all me?" you ask. "It's my fault?" <br><br> <<He>> shakes <<his>> head. "There's no fault," <<he>> says. "But you understand. People are responding to your provocation. The way you dress and carry yourself. Most people aren't as talented." <<He>> glances at the clock. "That's all for today. Be well." <br><br> <<endevent>> <<link [[Next|Asylum]]>><</link>> <br><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> "That's not true," you say. "People have been exposing me with force." <br><br> <<He>> shakes <<his>> head and writes something on <<his>> clipboard. "That's okay," <<he>> says. "But one day you'll need to admit your lewdity." <<He>> glances at the clock. "That's all for today. Be well." <br><br> <<endevent>> <<link [[Next|Asylum]]>><</link>> <br><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> "I-It is exciting," you say. "To be exposed in front of people." <br><br> <<He>> nods. "Very good," <<he>> says. "You should be happy so many want to look at you." <<He>> glances at the clock. "That's all for today. Be well." <br><br> <<endevent>> <<link [[Next|Asylum]]>><</link>> <br><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> "I'm not like that," you say. "I wouldn't do such things." <br><br> <<He>> shakes <<his>> head and writes something on <<his>> clipboard. "It must be hard for you," <<he>> says. "Coming to terms with such deviancy. But you need to in order to heal." <<He>> glances at the clock. "That's all for today. Be well." <br><br> <<endevent>> <<link [[Next|Asylum]]>><</link>> <br><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> "It's my fault?" you ask. "I'm the one making animals attack me?" <br><br> <<He>> shakes <<his>> head. "You're attacking them," <<he>> says. "But you're on the right track." <<He>> glances at the clock. "That's all for today. Be well." <br><br> <<endevent>> <<link [[Next|Asylum]]>><</link>> <br><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> "The tentacles are real," you say. "I felt them all over me. They left marks and goo..." <br><br> "They don't exist," <<he>> interrupts. "You're inventing fantasies to justify your promiscuous behaviour. It's no mystery where the goo really comes from." <<He>> glances at the clock. "That's all for today. Be well." <br><br> <<endevent>> <<link [[Next|Asylum]]>><</link>> <br><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> "They aren't real?" you ask. "But why did they feel good?" <br><br> "You were either sleeping with someone, or touching yourself," <<he>> says. "Likely the former." <<He>> glances at the clock. "That's all for today. Be well." <br><br> <<endevent>> <<link [[Next|Asylum]]>><</link>> <br><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> "No," you say. "I didn't do this to myself, other people did." <br><br> <<He>> shakes <<his>> head. "It's a cry for help," <<he>> says. "But you're in the right place. We won't let you hurt yourself any longer." <<He>> glances at the clock. "That's all for today. Be well." <br><br> <<endevent>> <<link [[Next|Asylum]]>><</link>> <br><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> "I did this to myself?" you ask. "But why?" <br><br> "Yes," <<he>> says. "You did this to yourself. Because you felt guilty." <<He>> glances at the clock. "That's all for today. Be well." <br><br> <<endevent>> <<link [[Next|Asylum]]>><</link>> <br><<asylumeffects>><<effects>> <<if $earSlime.corruption gte (currentSkillValue('willpower') / 10)>> <<set $earSlime.defyCooldown += 2>> The slime tries to assert control. <span class="red">It overpowers your will,</span> forcing you to <<print $asylumEarSlimeEvent[0]>> as you are. <<ggwillpower>><<willpower 1>> <br><br> <<set _nextPassage to $asylumEarSlimeEvent[1]>> <<link [[Next|_nextPassage]]>> <<if ($exposed is 1 and !hasSexStat("exhibitionism", 3)) or ($exposed is 2 and !hasSexStat("exhibitionism", 5))>> <<set $desperateaction to "the ear slime commanded you to do it">> <</if>> <<switch $asylumEarSlimeEvent[1]>> <<case "Asylum Breakfast">><<asylumstatus 1>><<awareness -10>><<trauma -3>><<stress -6>><<pass 60>> <<case "Asylum Exercise">><<tiredness 3>><<stress -6>><<pass 30>> <<case "Asylum Socialise">><<asylumstatus 1>><<trauma -3>><<stress -6>><<pass 30>> <<case "Asylum Study">><<pass 50>><<schoolskill>> <</switch>> <<unset $asylumEarSlimeEvent>> <</link>> <<else>> You try to ignore the command from the slime and continue on. You feel it try, <span class="green">but fail,</span> to force you to <<print $asylumEarSlimeEvent[0]>>. <br><br> <<link [[Next|Asylum]]>><<unset $asylumEarSlimeEvent>><</link>> <</if>><<asylumeffects>><<effects>> You act on the slime's urging and approach the <<person>>. <br> <<promiscuity4>> "Take me!" you say. <br><br> <<if $worn.over_lower.name isnot "naked" or $worn.lower.name isnot "naked">> <<if $worn.over_lower.name isnot "naked">> <<set $worn.over_lower.vagina_exposed to 1>><<set $worn.over_lower.anus_exposed to 1>><<set $worn.over_lower.exposed to 2>> <</if>> <<if $worn.lower.name isnot "naked">> <<set $worn.lower.vagina_exposed to 1>><<set $worn.lower.anus_exposed to 1>><<set $worn.lower.exposed to 2>> <</if>> <<if $worn.under_lower.name is "naked">> <<if $worn.over_lower.name isnot "naked">> <<if setup.clothes.over_lower[clothesIndex('over_lower', $worn.over_lower)].skirt is 1>><<set $worn.lower.skirt_down to 0>> You lift up your $worn.over_lower.name, <span class="lewd">exposing your <<if $worn.lower.name isnot "naked">>$worn.lower.name<<else>><<undies>><</if>>.</span> <<else>><<set $worn.lower.state to "thighs">> You pull down your $worn.over_lower.name, <span class="lewd">exposing your <<if $worn.lower.name isnot "naked">>$worn.lower.name<<else>><<undies>><</if>>.</span> <</if>> <</if>> <<if $worn.lower.name isnot "naked">> <<if setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1>><<set $worn.lower.skirt_down to 0>> You lift up your $worn.lower.name, <span class="lewd">exposing your <<undies>>.</span> <<else>><<set $worn.lower.state to "thighs">> You pull down your $worn.lower.name, <span class="lewd">exposing your <<undies>>.</span> <</if>> <</if>> <</if>> <</if>> <<if $worn.under_lower.name isnot "naked">> <<set $worn.under_lower.anus_exposed to 1>><<set $worn.under_lower.vagina_exposed to 1>> <<set $worn.under_lower.state to "thighs">><<set $worn.under_lower.exposed to 2>> <<if $worn.lower.name is "naked">> You pull down your $worn.under_lower.name, <span class="lewd">exposing your <<genitals>>.</span> <<else>> <<outfitChecks>> <<if _skirtExposed>> <<if $worn.over_lower.name isnot "naked">><<set $worn.over_lower.skirt_down to 0>><</if>> <<if $worn.lower.name isnot "naked">><<set $worn.lower.skirt_down to 0>><</if>> You lift up your <<allBottoms>> with one hand while lowering you $worn.under_lower.name with the other <span class="lewd">exposing your <<genitals>>.</span> <<else>><<set $worn.lower.state to "thighs">> You pull down your <<allBottomsUnderwear>>, <span class="lewd">exposing your <<genitals>>.</span> <</if>> <</if>> <</if>> <br><br> The <<person>> is taken aback, but recovers quickly. <<He>> glances around, then grabs your arm. <<He>> pulls you somewhere where you have a little privacy. <br><br> <<link [[Next|Asylum Slime Rape]]>><<set $sexstart to 1>><</link>> <br><<asylumeffects>><<effects>> You follow the slime's urging and approach the <<person>>. <br><br> "T-take me!" you say. <br><br> The <<person>> is taken aback, but recovers quickly. <<He>> glances around, then grabs your arm. <<He>> pulls you somewhere where you have a little privacy. <br><br> <<link [[Next|Asylum Slime Rape]]>><<set $molestationstart to 1>><</link>> <br><<asylumeffects>><<effects>> <<if $earSlime.defyCooldown>> <<if $earSlime.growth gte 100>> <<set $earSlime.defyCooldown += 2>> You turn away from the <<person>> and feel a jolt of pain as the slime punishes you for your defiance. However, <span class="red">it doesn't stop you, knowing that it can punish you in other ways.</span> <<else>> You turn away from the <<person>> and feel a jolt of pain as the slime punishes you for your defiance. However, <span class="teal">it's still worn out from overpowering you earlier.</span> You feel it try, <span class="green">but fail,</span> to force your steps in the opposite direction. <</if>> <br><br> <<endevent>> <<link [[Next|Asylum]]>><</link>> <<elseif $earSlime.corruption gte (currentSkillValue('willpower') / 10)>> <<if hasSexStat("promiscuity", 4) and $earSlime.growth lt 100>> <<set $earSlime.defyCooldown += 4>> <<else>> <<set $earSlime.defyCooldown += 8>> <</if>> You turn away from the <<person>> and feel a jolt of pain as the slime punishes you for your defiance. It tries to force you to stay still, <span class="red">and you fail</span> to resist its influence. <<ggwillpower>><<willpower 3>> <br><br> Forced by the slime's urging, you approach the <<person>>. <br><br> "T-take me!" you say. <br><br> The <<person>> is taken aback, but recovers quickly. <<He>> glances around, then grabs your arm. <<He>> pulls you somewhere where you have a little privacy. <br><br> <<link [[Next|Asylum Slime Rape]]>><<set $molestationstart to 1>><</link>> <br> <<else>> You turn away from the <<person>> and feel a jolt of pain as the slime punishes you for your defiance. You feel it try, <span class="green">but fail,</span> to force your steps in the opposite direction. <<gwillpower>><<willpower 1>> <br><br> <<endevent>> <<link [[Next|Asylum]]>><</link>> <</if>><<if $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<set $noFinish to 1>> <<maninit>> <<elseif $sexstart is 1>> <<set $sexstart to 0>> <<consensual>> <<set $consensual to 1>> <<neutral 1>> <<set $noFinish to 1>> <<maninit>> <</if>> <<effects>> <<effectsman>> <<man>> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Asylum Slime Rape Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Asylum Slime Rape]]>><</link>></span><<nexttext>> <</if>><<asylumeffects>><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<ejaculation>> "Thanks, I needed that," the <<person>> says. "See you around." <br><br> <<tearful>> you return to where you were before the slime's demand. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Asylum]]>><</link>> <<else>> You shove the <<person>> against a dumpster, where <<he>> falls to the ground. <br><br> <<tearful>> you wince as the slime punishes you for your defiance. <<corruption -1>><<pain 8>><<stress 6>><<trauma 6>><<def 1>><<lcorruption>><<ggpain>><<ggtrauma>><<ggstress>> <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Asylum]]>><</link>> <</if>><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> <<if $phase is "refuse">> <<if $worn.face.type.includes("gag")>> Unable to speak, you vehemently shake your head. <<elseif $speech_attitude is "meek">> "B-but that's not true!" you say. "I haven't hurt anyone." <<elseif $speech_attitude is "bratty">> "That's an outright lie!" you say. "They've attacked me." <<else>> "That's not true!" you say. "I've been attacked." <</if>> <br><br> Harper shakes <<his>> head before writing something on <<his>> clipboard. "You'll need to admit your behaviour before I can help you," <<he>> says. <<He>> walks to the door and opens it for you, "That's all for today. You may go." <br><br> <<asylumRebind>> <<link [[Next|Asylum]]>><<asylumClothesOn>><<endevent>><</link>> <<elseif $phase is "flaunt">> <<set _temptext to "smiles">> <<exhibitionism4>> You eagerly undress, drawing it out to allow the doctor's eyes to wander. Once naked, you carefully lie back down, thrilled at being so exposed. You only cover yourself to keep it interesting. <br><br> <<elseif $phase is "strip">> <<set _temptext to "remains professional">> You avoid eye contact with the doctor as you slowly remove your clothes. Once naked<<if $uncomfortable.nude>>, you cover your <<if $player.gender_appearance is "f">><<chest>> and <</if>><<genitals>>, and<<else>> you<</if>> carefully lie back down. <<if !$worn.face.type.includes("gag")>>You are too embarrassed to say more.<</if>> <br><br> <</if>> <<if playerChastity() and $phase isnot "refuse">> <<strip>> Doctor Harper frowns as <<he>> makes a note on <<his>> clipboard. "You can only run from your problems for so long with such a device," <<he>> says pointing to your $worn.genitals.name. "You'll have to own up to them eventually. There's nothing more we can do today. Put on your clothes, you can go." <br><br> You fix your clothes. <br><br> "Be well," <<he>> says before you exit. <br><br> <<asylumRebind>> <<link [[Next|Asylum]]>><<asylumClothesOn>><<endevent>><</link>> <<elseif $phase isnot "refuse">> <<strip>> Doctor Harper _temptext as <<he>> makes a note on <<his>> clipboard. "Now then, we'll have you start by masturbating. This is an exercise in control," <<he>> says, ignoring your reaction. "When I tell you to stop, you'll need to stop. You may begin." <br><br> <<if hasSexStat("exhibitionism", 5)>> <<link [[Masturbate|Asylum Masturbation 2]]>><<suspicion -5>><<set $phase to "masturbate">><</link>><<exhibitionist5>><<llsuspicion>> <br> <</if>> <<link [[Say you're too embarrassed|Asylum Masturbation 2]]>><<suspicion -5>><<stress 3>><<set $phase to "embarrassed">><</link>><<llsuspicion>><<gstress>> <br> <<link [[Refuse|Asylum Masturbation 2]]>><<suspicion 5>><<set $phase to "refuse">><</link>><<ggsuspicion>> <</if>><<asylumeffects>><<effects>> <<if $phase is "refuse">> <<if $worn.face.type.includes("gag")>> You don't need to say anything. Your scowl makes the message clear. <<elseif $speech_attitude is "meek">> "I-I can't do that. That's too much," you say. <<elseif $speech_attitude is "bratty">> "No way, I'm not doing that," you scoff. <<else>> "You can't possibly expect me to," you say. <</if>> <br><br> Doctor Harper shakes <<his>> head. "That's disappointing. We were making such good progress too." <<He>> makes another note on <<his>> clipboard. "That is all for today. You may get dressed." <br><br> You fix your clothes. <br><br> "Be well," <<he>> says before you exit. <br><br> <<asylumRebind>> <<link [[Next|Asylum]]>><<asylumClothesOn>><<endevent>><</link>> <<elseif $phase is "embarrassed">> <<if $worn.face.type.includes("gag")>> You squeeze your legs together nervously, blushing furiously. <<elseif $speech_attitude is "meek">> "B-but you'll see my..." you stammer. Your face flushes red. <<elseif $speech_attitude is "bratty">> "How am I supposed to do that with you watching," you say. Your cheeks feel hot. <<else>> "You're going to watch me touch myself?" you ask. Your face flushes red thinking about it. <</if>> <br><br> "There's nothing to be embarrassed about," <<he>> says. "Masturbation is perfectly natural." <<He>> sets the clipboard down and stands up. "However, it's not uncommon for people to need a little assistance." <<elseif $phase is "masturbate">> <<exhibitionism5>> The thought of pleasuring yourself in front of an audience, even just one person, gives you a thrill. You eagerly <<if $player.penisExist>>stroke your <<penis>><<elseif $player.vaginaExist>><<if $player.penisExist>> and <</if>>rub your <<pussy>><</if>>. <<arousal random(600,1800) "masturbationGenital">><<ggarousal>> <br><br> "I see you've already learned the first part of this lesson," Harper says with a smile. "Masturbation is perfectly natural." <<He>> sets the clipboard down and stands up. "However, I'll need to observe your technique." <</if>> <<if ["embarrassed", "masturbate"].includes($phase)>> <br><br> "Please spread your legs," <<he>> says, <<his>> voice remains clinical and professional. <br><br> <<link [[Next|Asylum Masturbation 3]]>><</link>> <</if>><<asylumeffects>><<effects>> <<if $phase is "embarrassed">> You fidget, hesitating for a moment. Then, tentatively, you part your legs for the doctor. <<He>> takes a seat in front of you, between your legs, and retrieves a small bottle from a pocket inside <<his>> lab coat. <<He>> pours a measured amount of liquid onto your <<genitals>>. You flinch. It's cold.<<if $player.penisExist>><<bodyliquid "penis" "goo">><</if>><<if $player.vaginaExist>><<bodyliquid "vaginaoutside" "goo">><</if>><<ggarousal>> <br><br> Before you can react, <<he>> gently touches your <<genitals>>. <<His>> movements are systematic and precise. You let out a lewd moan. <<He>> methodically <<if $player.penisExist>>fondles your <<penis>><<elseif $player.vaginaExist>><<if $player.penisExist>> and <</if>>massages your <<pussy>><</if>> for a moment.<<arousal random(600,1800) "masturbationGenital">><<ggarousal>> <br><br> <<if $arousal lt $arousalmax>> <<set $phase to "continue">> Satisfied that you are sufficiently aroused, <<he>> takes your hand and gently guides it to your <<if $player.sex is "h">> <<set _genitalselection to random(0,1)>> <<if _genitalselection is 1>> <<penis>>. <<else>> <<pussy>>. <</if>> <<else>> <<if $player.penisExist>> <<set _genitalselection to 1>> <<else>> <<set _genitalselection to 0>> <</if>> <<genitals>>. <</if>> <<if _genitalselection is 1>> Clasping your hand over your <<penis>>, <<he>> helps you stroke yourself <<else>> Cupping your hand over your <<pussy>>, <<he>> helps you rub your fingers along your slit <</if>> a few times before withdrawing, leaving you to continue on your own. <br><br> Still embarrassed but too aroused to stop, you continue where Harper left off. Your movements are tentative at first. Before long, you are moving your <<if _genitalselection is 1>>hand<<else>>fingers<</if>> faster and faster.<<arousal random(600,1800) "masturbationGenital">><<ggarousal>> <br><br> <</if>> <<elseif $phase is "masturbate">> You don't hesitate before opening your legs for the doctor. <<He>> takes a seat in front of you, settling between your legs. There is an intensity to <<his>> gaze as <<he>> watches you pleasure yourself.<<ggarousal>> <br><br> <<if $handskill gte 600>> Your hand moves with practiced confidence. Harper nods approvingly. <<arousal random(800,2400) "masturbationGenital">><<gggarousal>> <<else>> Your movements are erratic and irregular. Harper watches with an unchanging expression. <<arousal random(600,1800) "masturbationGenital">><<ggarousal>> <</if>> <br><br> <</if>> <<if ["continue", "masturbate", "embarrassed"].includes($phase)>> <<if $arousal gte $arousalmax>> <<if $phase is "embarrassed">> <<His>> touch is more than you can take. Unable to help yourself, your back arches <<else>> It feels too good. You close your eyes, your back arching <</if>> as you reach your peak. <<orgasm>> <<if $phase is "embarrassed">> <<His>> fingers linger on your <<genitals>> a moment longer before pulling away. <<if _semen_released>> Cum<<if _lube_released>> and juices<</if>>, <<elseif _lube_released>> Juices <</if>> <<if _semen_released or _lube_released>>drip from <<his>> hand.<</if>> <<He>> clears <<his>> throat and resumes <<his>> professional demeanour. <br><br> "It is worse than I feared," <<else>> "Just as I feared," <</if>> Harper says as <<he>> returns to <<his>> own chair. <<He>> picks up <<his>> clipboard and makes a note. <<if $phase is "embarrassed">> "You are putting innocent people in danger because of your uncontrolled urges. We have done all we can for today." <<else>> "You will continue to target innocent people until you can control your urges." <</if>> <br><br> "Put your clothes back on, you can go." <br><br> <<include "Asylum Masturbation End">> <<else>> Doctor Harper watches closely as you approach your peak. You're about ready to burst when <<he>> speaks. <br><br> "Stop. That's enough." <br><br> <<link [[Try to obey|Asylum Masturbation Obey]]>><</link>><<gstress>><<willpowerdifficulty `$arousal/$arousalmax*200+5` $willpowermax+25>> <br> <<link [[Ignore <<him>>|Asylum Masturbation Ignore]]>><</link>> <</if>> <</if>><<asylumeffects>><<effects>> <<if $willpowerSuccess>> It takes all your mental effort to stop touching yourself and remove your hand from your twitching <<if _genitalselection is 0>><<pussy>><<elseif _genitalselection is 1>><<penis>><<else>><<genitals>><</if>>. You close your eyes tightly, your breathing laboured after forcing yourself not to climax.<<gstress>><<stress 5>> <br><br> "Very good," <<else>> The urge to continue is overwhelming. You close your eyes and keep going, your back arching as you reach your peak. <<arousal $arousalmax-$arousal>><<ggarousal>> <br><br> You don't stop. <<orgasm>> "Just as I suspected," <</if>> Harper says as <<he>> returns to <<his>> own chair. <<He>> picks up <<his>> clipboard and makes a note. <<if $willpowerSuccess>> "You've done well today. Remember, don't be ashamed of your urges, just keep them under control." <<else>> "You lack self-control. You will be a risk to innocent people around you until you can control your urges." <</if>> <br><br> "Put your clothes back on, you can go." <br><br> <<include "Asylum Masturbation End">><<asylumeffects>><<effects>> You lock eyes with Harper and move your hand even faster. Your back arches as you reach your peak. <<arousal $arousalmax-$arousal>><<ggarousal>> <br><br> You don't stop. <<orgasm>> "Just as I suspected," says Harper as <<he>> returns to <<his>> own chair. <<He>> picks up <<his>> clipboard and makes a note. "You lack self-control. You will be a risk to innocent people around you until you can control your urges. Put your clothes back on, you can go." <br><br> <<include "Asylum Masturbation End">>You fix your clothes with shaking hands. <br><br> "Be well," <<he>> says before you exit. <br><br> <<asylumRebind>> <<link [[Next|Asylum]]>><<asylumClothesOn>><<endevent>><</link>><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> <<if $gamemode is "hard">> <<set $gamemode to "normal">> <span class="gold">You survived <<print Time.days>> days. Hard mode disabled.</span> <<set $hardmodedays to Time.days>> <br><br> <</if>> <<if $asylumescaped is 1>> <<set $asylumescaped to 0>> <<set $suspicion to 80>><<set $asylumstatus to 40>><<set $asylumbound to 3>> <<else>> <<set $suspicion to 20>><<set $asylumstatus to 0>><<set $asylumbound to 1>> <</if>> <<set $asylumkeycard to 0>> <<set $asylumdistracted to 0>> <<wash>> <<set $wardrobe_location to "asylum">> <<set $wardrobes.asylum.unlocked to true>> <<wardrobeSelection true>> <<npc Harper>><<person1>> <<asylumBind>> <<if $asylumintro is 1>> You awaken on a bed in a white room. The walls and floor are padded. Doctor Harper stands over you. "You're awake," <<he>> says. <<He>> jots something down on <<his>> clipboard. "Welcome back." Your arms are bound. "I'm sorry to admit we failed you last time. That won't happen again." <br><br> <<He>> looks back at <<his>> notes. "Do you remember the schedule? Sleep at <<ampm 22>>. Breakfast at <<ampm 6>>. You have two treatments scheduled per day, at <<ampm 10>> and <<ampm 15>>. You'll be assessed each evening at <<ampm 20>>. Don't worry if you forget—someone will remind you." <br><br> <<He>> rises to <<his>> feet and walks toward the exit. "You're free to explore the building during the day. Don't enter any doors marked for staff, and make sure to follow instructions. They're for your own good.<<if $asylumstate is "sleep">> For now, you should stay in your room until morning." The door shuts, and the lock clicks.<<else>>" <<He>> leaves the door open. <</if>> <br><br> <<endevent>> <<link [[Next|Asylum Cell]]>><</link>> <br> <<else>> <<set $asylumintro to 1>> You awaken on a bed in a white room. The walls and floor are padded. Doctor Harper stands over you. <br><br> "You're awake," <<he>> says. <<He>> jots something down on <<his>> clipboard. "There's nothing to be nervous about. You're here to get better." <<He>> crouches beside you. "We're in another hospital. In the forest." You can't move your arms. They're bound tight in front of you. "That's for your own safety. If you're good, we'll untie you in a day or two. We've stored your clothes in the cupboard for you." <br><br> <<He>> looks back at <<his>> notes. "We follow a schedule here. Sleep at <<ampm 22>>. Breakfast at <<ampm 6>>. You have two treatments scheduled per day, at <<ampm 10>> and <<ampm 15>>. You'll be assessed each evening at <<ampm 20>>. Don't worry if you forget—someone will remind you." <br><br> <<He>> rises to <<his>> feet and walks toward the exit. "You're free to explore the building during the day. Don't enter any doors marked for staff, and make sure to follow instructions. <<if $asylumstate is "sleep">> They're for your own good. For now, you should stay in your room until morning." The door shuts, and the lock clicks. <<else>> They're for your own good." <<He>> leaves the door open. <</if>> <br><br> <<endevent>> <i>You'll be released should your trauma or awareness become very low, but there are other ways to escape.</i> <br><br> <<link [[Next|Asylum Cell]]>><</link>> <br> <</if>><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> <<if isPregnancyEnding()>> <<pregnancyPassout "asylum">> <<elseif $daily.eden.distract gte 1 and Time.hour is 21 and $daily.eden.distract isnot 4>> <<npc Eden>><<person1>> An ear-splitting bang pierces the air from some distance away. It drives the patients into a panicked frenzy, and security rush to investigate the explosion. <br><br> You seize the chance, and climb up the perimeter fence. You glance over your shoulder when halfway up. <<if $daily.eden.distract is 2>> Security have vacated this part of the grounds <span class="green">and the guard tower search lights don't appear to be operational.</span> You climb over the fence and run into Eden a few seconds later. <<He>> grabs your arm and leads you back to the cabin. <br><br> <<link [[Next|Eden Asylum Rescue]]>><</link>> <<else>> Security have vacated this part of the grounds, <span class="red">but the guard tower search lights are on.</span> A beam lands on you, and you instinctively shield your face from the light. You hear a whistle, then feel a sharp pain in your shoulder. You black out before you hit the ground. <br><br> <<link [[Next|Eden Asylum Fail]]>><<pass 30>><</link>> <</if>> <<elseif $asylumstate is "sleep">> The door is locked. You're supposed to be in bed. <br><br> <<roomoptions>> <<if Time.hour isnot 6>> <<asylumicon "bed">><<link [[Bed|Asylum Bed]]>><</link>> <br><br> <<else>> You can't sleep until the alarm turns off. <br><br> <</if>> <<if $eden_asylum_window is 1 and Time.hour gte 22>> Eden should be watching. <<if pcAreArmsBound("both")>> You could throw a towel up to your window to signal your location, but you'd need to unbind your arms first. <br> <<else>> You could throw a towel up to your window to signal your location. <br> <<towelicon>><<link [[Throw towel|Eden Towel Throw]]>><</link>> <br> <</if>> <</if>> <<if pcAreArmsBound("both")>> A padded cupboard containing your clothes protrudes from the wall, but you can't reach it with your arms bound. <br> <<else>> A padded cupboard containing your clothes protrudes from the wall. <br> <<asylumicon "wardrobe">><<link [[Open|Asylum Wardrobe]]>><</link>> <br> <</if>> <<if $asylumstate isnot "sleep">> <br> <<getouticon>><<link [[Leave|Asylum]]>><</link>> <br> <</if>> <br> <<link [[Gameplay Settings|Asylum Settings]]>><</link>> <br> <<attitudesControlCheck>> <<if $attitudesControl.showGoldLink is true>> <span class="goldLink"><<link [[Attitudes]]>><<set $attitudesExitPassage to $passage>><</link>> </span><span class="red">!!</span> <<else>> <<link [[Attitudes]]>><<set $attitudesExitPassage to $passage>><</link>> <</if>> <br><br> <<elseif Time.hour is 6>> An alarm buzzes through the building. <br><br> <<roomoptions>> <<if Time.hour isnot 6>> <<asylumicon "bed">><<link [[Bed|Asylum Bed]]>><</link>> <br><br> <<else>> You can't sleep until the alarm turns off. <br><br> <</if>> <<if $eden_asylum_window is 1 and Time.hour gte 22>> Eden should be watching. <<if pcAreArmsBound("both")>> You could throw a towel up to your window to signal your location, but you'd need to unbind your arms first. <br> <<else>> You could throw a towel up to your window to signal your location. <br> <<towelicon>><<link [[Throw towel|Eden Towel Throw]]>><</link>> <br> <</if>> <</if>> <<if pcAreArmsBound("both")>> A padded cupboard containing your clothes protrudes from the wall, but you can't reach it with your arms bound. <br> <<else>> A padded cupboard containing your clothes protrudes from the wall. <br> <<asylumicon "wardrobe">><<link [[Open|Asylum Wardrobe]]>><</link>> <br> <</if>> <<if $asylumstate isnot "sleep">> <br> <<getouticon>><<link [[Leave|Asylum]]>><</link>> <br> <</if>> <br> <<link [[Gameplay Settings|Asylum Settings]]>><</link>> <br> <<attitudesControlCheck>> <<if $attitudesControl.showGoldLink is true>> <span class="goldLink"><<link [[Attitudes]]>><<set $attitudesExitPassage to $passage>><</link>> </span><span class="red">!!</span> <<else>> <<link [[Attitudes]]>><<set $attitudesExitPassage to $passage>><</link>> <</if>> <br><br> <<else>> You are in your cell in the asylum. The walls and floor are padded. There's a window far above. <br><br> <<roomoptions>> <<if Time.hour isnot 6>> <<asylumicon "bed">><<link [[Bed|Asylum Bed]]>><</link>> <br><br> <<else>> You can't sleep until the alarm turns off. <br><br> <</if>> <<if $eden_asylum_window is 1 and Time.hour gte 22>> Eden should be watching. <<if pcAreArmsBound("both")>> You could throw a towel up to your window to signal your location, but you'd need to unbind your arms first. <br> <<else>> You could throw a towel up to your window to signal your location. <br> <<towelicon>><<link [[Throw towel|Eden Towel Throw]]>><</link>> <br> <</if>> <</if>> <<if pcAreArmsBound("both")>> A padded cupboard containing your clothes protrudes from the wall, but you can't reach it with your arms bound. <br> <<else>> A padded cupboard containing your clothes protrudes from the wall. <br> <<asylumicon "wardrobe">><<link [[Open|Asylum Wardrobe]]>><</link>> <br> <</if>> <<if Time.weekDay is 1 and $daily.massAttended isnot 1>> <br> <<if $fallenangel gte 2>> <<templeicon "pray">><<link [[Pray (1:00)|Asylum Pray Fallen Angel]]>><<purity 63>><<pass 60>><<stress 10>><<set $daily.massAttended to 1>><</link>><<gggpurity>><<gstress>> <<elseif $angel gte 6>> <<templeicon "pray">><<link [[Pray (1:00)|Asylum Pray Angel]]>><<purity 10>><<pass 60>><<stress -10>><<set $daily.massAttended to 1>><</link>><<gpurity>><<lstress>> <<elseif $demon gte 6>> <<templeicon "pray">><<link [[Reflect (1:00)|Asylum Pray Demon]]>><<purity -10>><<pass 60>><<stress 10>><<set $daily.massAttended to 1>><</link>><<lpurity>><<gstress>> <<else>> <<templeicon "pray">><<link [[Pray (1:00)|Asylum Pray]]>><<purity 10>><<pass 60>><<stress -10>><<set $daily.massAttended to 1>><</link>><<gpurity>><<lstress>> <</if>> <</if>> <<if $asylumstate isnot "sleep">> <br> <<getouticon>><<link [[Leave|Asylum]]>><</link>> <br> <</if>> <br> <<link [[Gameplay Settings|Asylum Settings]]>><</link>> <br> <<attitudesControlCheck>> <<if $attitudesControl.showGoldLink is true>> <span class="goldLink"><<link [[Attitudes]]>><<set $attitudesExitPassage to $passage>><</link>> </span><span class="red">!!</span> <<else>> <<link [[Attitudes]]>><<set $attitudesExitPassage to $passage>><</link>> <</if>> <br><br> <</if>>You bow your head and reflect on the events that brought you here. The distant howls and screams of other patients frequently interrupt your prayers, but you feel your dedication hasn't gone unnoticed. <br><br> <<link [[Next|Asylum Cell]]>><</link>> <br>You bow your head and close your eyes in prayer. The distant cries of other patients seem to fade away, giving you some much needed peace. <br><br> <<link [[Next|Asylum Cell]]>><</link>> <br>You kneel and close your eyes. The silence is interrupted by distant cries of other patients. The harder you try to ignore them the more unnatural they seem to become. You can't help but imagine the trauma they are going through. <br><br> <<link [[Next|Asylum Cell]]>><</link>> <br>You bow your head and close your eyes in prayer. Distant cries frequently interrupt your meditation. <br><br> <<link [[Next|Asylum Cell]]>><</link>> <br><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> <<npc Eden>><<person1>> <<set $eden_asylum_window to 2>> You take a towel from your wardrobe and throw it up to the barred window as hard as you can. It dangles in the night air. <br><br> You wait a few minutes, then a rope flies between the bars. You tie the end around the door handle, and give it a tug. It tenses. Eden must be climbing. <br><br> A worried face appears at the bars. Eden gazes at you. <<He>> produces a saw from a bag at <<his>> side, and presses it against the metal. <br><br> <<if $daily.eden.asylumDisarm is 2>> <<unset $eden_asylum_window>> <span class="green">The alarm does not sound.</span> Eden saws through the bars, before climbing down. Untying the rope from the door, you use it to climb out of the window and jump into Eden's waiting arms. <<He>> gathers the rope and saw, and leads you back to the cabin. <br><br> <<link [[Next|Eden Asylum Rescue]]>><</link>> <<else>> <<set $eden_asylum_window to 2>> <span class="red">The room is bathed in red light,</span> and an alarm blares. Metal shutters snap in front of the bars, slicing through the rope. <br><br> <<link [[Next|Eden Towel Throw 2]]>><<endevent>><</link>> <</if>> <br><<effects>> <<npc Harper>><<generate2>><<person2>> <<asylumBind "punish">> You hear footsteps outside, and security barge through the door. A <<person>> pushes you to the bed while another examines the rope. <br><br> Doctor Harper enters. "It's okay," <<person1>><<he>> says sitting on the bed beside you. The <<person2>><<person>> continues to hold you down. <<person1>>"Someone tried to take you away. But you're safe." <<He>> looks towards the door, and nods. <br><br> More security arrive. They <<if getVisibleClothesList().some(item => item.name !== "naked")>>tear off your clothes and <</if>>wrestle you into a straightjacket. "Just to make sure you're extra safe," Harper says. The alarm stops, and the lights turn white. You hear dogs barking from the grounds below. <br><br> Harper and security leave you alone in your room. The shutters remain. <br><br> <<link [[Next|Asylum Cell]]>><<endevent>><</link>><<effects>> You snuggle under the covers. <br><br> <<generateSleepLinks "Asylum Sleep">> <<link [[Climb out of bed|Asylum Cell]]>><<loadTempHairStyle>><</link>> <br><br><<set _autosavehere to true>> <<sleep>> <<effects>> <<wakingEffects $sleepHoursTotal>> <<if ["dryheaving","nausea"].includes(_wakingEffect)>> <br><br> You slept soundly, but now feel a little rough. <br><br> <<elseif $nightmares gte 1 and $controlled is 0>> <<nightmareWake>> <<else>> <<if ($specialClothesEffects.bimbo.total gte random(100,1000) || $specialClothesEffects.pimp.total gte random(100,1000)) or $arousal gte ($arousalmax / 10) * 9>> <<wetDream>> <<elseif !_wakingEffect>> You sleep soundly. <br><br> <<else>> <br><br> <</if>> <</if>> <<sleepeffects>> <<if isPregnancyEnding()>> <<asylumeffects>> <<pregnancyPassout "asylum">> <<elseif _sleepinterrupt>> <<asylumeffects>> <<if $rapewake is 1>> <<set $rapewake to 0>> <<generate1>><<generate2>><<person1>> <<if _wakingEffect is "dryheaving">> A <<person>> rubs your back. "Feeling better now?" <<he>> says. "Me and my friend here work very hard protecting you crazies from yourselves. How about you give us a little something in return?" <<He>> gropes you. <<else>> A <<person>> shakes you awake. "Wakey wakey," <<he>> says. "Me and my friend here work very hard protecting you crazies from yourselves. How about you give us a little something in return?" <<He>> gropes you. <</if>> <br><br> <<link [[Next|Asylum Cell Rape]]>><<set $molestationstart to 1>><</link>> <br> <<elseif ($asylumstate is "firsttreatment" and $daily.asylumTreatment1 isnot 1) or ($asylumstate is "secondtreatment" and $daily.asylumTreatment2 isnot 1) or ($asylumstate is "assessment" and $daily.asylumAssessment isnot 1)>> <<generate1>><<person1>> <<if $asylumstate is "firsttreatment">> <<set $daily.asylumTreatment1 to 1>> <<set _asylumStateType to "treatment">> <<elseif $asylumstate is "secondtreatment">> <<set $daily.asylumTreatment2 to 1>> <<set _asylumStateType to "treatment">> <<elseif $asylumstate is "assessment">> <<set $daily.asylumAssessment to 1>> <<set _asylumStateType to "assessment">> <</if>> <<if _wakingEffect is "dryheaving">> A <<person>> rubs your back. <<Hes>> a nurse. <<else>> A <<person>> shakes you awake. <<Hes>> a nurse. <</if>> <br><br> <<asylumoptions>> "Doctor says it's time for your _asylumStateType," <<he>> says. "Come with me." <<He>> leads you outside your cell and down a hallway. <br><br> <<endevent>> <<if _asylumStateType is "assessment">> <<asylumassessment>> <<else>> <<asylumtreatments>> <</if>> <<else>> <<if _wakingEffect is "dryheaving">> A loud buzzing continues in the background. <<else>> A loud buzzing wakes you. <</if>> <br><br> <<getouticon>><<link [[Get out of bed|Asylum Cell]]>><</link>> <br><br> <</if>> <<else>> <<getouticon>><<link [[Get out of bed|Asylum Cell]]>><</link>> <br><br> <</if>><<set $settingsExitPassage to "Asylum Cell">> <<settings>><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> You are in the asylum, deep in the forest. The building is over a century old, and little of it has been renovated to modern standards. Security patrol the grounds between the building and surrounding fence. <<if $asylumstate is "sleep">> You're supposed to be in your cell. <br><br> <<else>> Other patients are relaxing in the recreation room or exercising outside. Most keep to themselves. <<if $o_long_and_beautiful gte 1 and $o_long_and_beautiful lte 7 and $rng % 4 == 0>> A slim girl with very long, messy hair wanders out of sight <<print either("down a corridor.","into a private room.","into the cells.","in the garden.")>> <</if>> <br><br> <<asylumstats>> <</if>> <<if $stress gte $stressmax>> <<passoutasylum>> <<elseif $daily.eden.distract gte 1 and Time.hour gte 21 and $daily.eden.distract isnot 4>> An ear-splitting bang pierces the air from some distance away. It drives the patients into a panicked frenzy, and security rush to investigate the explosion. <br><br> You seize the chance, and climb up the perimeter fence. You glance over your shoulder when halfway up. <<if $daily.eden.distract is 2>> <<npc Eden>><<person1>> <<unset $eden_asylum_fence>> Security have vacated this part of the grounds <span class="green">and the guard tower search lights don't appear to be operational.</span> You climb over the fence and run into Eden a few seconds later. <<He>> grabs your arm and leads you back to the cabin. <br><br> <<link [[Next|Eden Asylum Rescue]]>><<pass 10>><</link>> <<else>> Security have vacated this part of the grounds, <span class="red">but the guard tower search lights are on.</span> A beam lands on you, and you instinctively shield your face from the light. You hear a whistle, then feel a sharp pain in your shoulder. You black out before you hit the ground. <br><br> <<link [[Next|Eden Asylum Fail]]>><<pass 30>><</link>> <</if>> <<elseif ($asylumstate is "firsttreatment" and $daily.asylumTreatment1 isnot 1) or ($asylumstate is "secondtreatment" and $daily.asylumTreatment2 isnot 1) or ($asylumstate is "assessment" and $daily.asylumAssessment isnot 1)>> <<generateDoctor 1>><<person1>> <<if $asylumstate is "firsttreatment">> <<set $daily.asylumTreatment1 to 1>> <<set _asylumStateType to "treatment">> <<elseif $asylumstate is "secondtreatment">> <<set $daily.asylumTreatment2 to 1>> <<set _asylumStateType to "treatment">> <<elseif $asylumstate is "assessment">> <<set $daily.asylumAssessment to 1>> <<set _asylumStateType to "assessment">> <</if>> A <<person>> approaches you. <<Hes>> a nurse. <br><br> <<asylumoptions>> "Doctor says it's time for your _asylumStateType," <<he>> says. "Come with me." <<He>> leads you down a hallway. <br><br> <<endevent>> <<if _asylumStateType is "assessment">> <<asylumassessment>> <<else>> <<asylumtreatments>> <</if>> <<elseif $asylumstate is "exercise" and $daily.asylumExcercise isnot 1>> <<set $daily.asylumExcercise to 1>> <<generateDoctor 1>><<person1>>A <<person>> approaches you. <<Hes>> an orderly. <br><br> <<asylumoptions>> "Time for exercise," <<he>> says. "Doctor's waiting." <br><br> <<endevent>> <<npc Harper>><<person1>> The doctor is indeed waiting outside. The other patients line up near <<him>>. <<Hes>> holding a whistle. "Time for your daily exercise," <<he>> says. "When I blow, I want you to run in a circle around the grounds. Don't stop until you hear me blow again." <br><br> <<He>> whistles, and you run. It's not too harsh a pace, but orderlies follow after and chastise those who fall behind. <<gathletics>><<athletics 2>><<pass 30>> <br><br> <<He>> whistles again, and the group stops. A few sit on the ground. "We're not done yet," <<he>> says. <br><br> <<link [[Next|Asylum Shower]]>><</link>> <br> <<elseif Time.hour is 22>> <<generateDoctor 1>><<person1>>"Bed time," a nurse announces. "Everyone get back in your cells." <br><br> <<asylumicon "cell">><<link [[Go to cell (0:02)|Asylum Cell]]>><<pass 2>><<endevent>><</link>> <br> <<refuseicon>><<link [[Hide (1:00)|Asylum Hide]]>><<pass 60>><</link>> <br> <<elseif $asylumstate is "sleep">> <<asylumicon "door">><<link [[Staff door|Asylum Staff]]>><</link>> <br> <<asylumicon "cell">><<link [[Cell|Asylum Cell]]>><</link>> <br> <<elseif numberOfEarSlime() and !$daily.earSlimeAsylum and random(0,100) gte 92>> <<set $daily.earSlimeAsylum to true>> <<if earSlimeMakingMundaneRequests()>> <<set _asylumEvents to [ ["exercise outside","Asylum Exercise"], ["socialise","Asylum Socialise"], ["study","Asylum Study"], ]>> <<if Time.hour is 6>> <<run _asylumEvents.push(["have breakfast","Asylum Breakfast"])>> <</if>> <<set $asylumEarSlimeEvent to _asylumEvents.random()>> <span @class="$earSlime.startedThreats ? 'lewd' : 'lblue'">You feel the slime in your head command you to <<print $asylumEarSlimeEvent[0]>>.</span> It promises rewards if you comply<<if $earSlime.startedThreats>> and threatens consequences if you do not<</if>>. <br><br> <<set _nextPassage to $asylumEarSlimeEvent[1]>> <<link [[Obey|_nextPassage]]>> <<if ($exposed is 1 and !hasSexStat("exhibitionism", 3)) or ($exposed is 2 and !hasSexStat("exhibitionism", 5))>> <<set $desperateaction to "the ear slime commanded you to do it">> <</if>> <<switch $asylumEarSlimeEvent[1]>> <<case "Asylum Breakfast">><<asylumstatus 1>><<awareness -10>><<trauma -3>><<stress -6>><<pass 60>> <<case "Asylum Exercise">><<tiredness 3>><<stress -6>><<pass 30>> <<case "Asylum Socialise">><<asylumstatus 1>><<trauma -3>><<stress -6>><<pass 30>> <<case "Asylum Study">><<pass 50>><<schoolskill>> <</switch>> <<corruption 1>><<pain -4>><<stress -6>><<trauma -12>><<sub 2>> <<unset $asylumEarSlimeEvent>> <</link>><<gcorruption>><<lpain>><<lltrauma>><<llstress>> <br> <<if $earSlime.startedThreats>> <<link [[Defy|Asylum Mundane Slime Defy]]>><<corruption -1>><<pain 8>><<stress 6>><<trauma 6>><<def 1>><</link>><<lcorruption>><<ggpain>><<ggtrauma>><<ggstress>> <<else>> <<link [[Ignore|Asylum]]>><<unset $asylumEarSlimeEvent>><</link>> <</if>> <<else>> <<generate1>><<person1>>A nearby patient walks by you. <<He>> nods at you before continuing on <<his>> way. <br><br> <span class="lewd">You feel the slime in your head command you to give yourself to <<him>>.</span> It promises rewards if you comply and threatens consequences if you do not. <br><br> <<if hasSexStat("promiscuity", 4) and $submissive gte 1900>> <<link [[Submit willingly|Asylum Patient Slime Submit willingly]]>><<corruption 3>><<pain -8>><<stress -12>><<trauma -24>><<sub 2>><</link>><<promiscuous4>><<ggcorruption>><<llpain>><<llltrauma>><<llstress>> <br> <</if>> <<link [[Obey|Asylum Patient Slime Obey]]>><<corruption 1>><<pain -4>><<stress -6>><<trauma -12>><<sub 2>><</link>><<gcorruption>><<lpain>><<lltrauma>><<lstress>> <br> <<link [[Defy|Asylum Patient Slime Defy]]>><<corruption -1>><<pain 8>><<stress 6>><<trauma 6>><<def 1>><</link>><<lcorruption>><<ggpain>><<ggtrauma>><<ggstress>> <br> <</if>> <<else>> <<if $exposed gte 1>> <<dressasyouwereicon>><<link [[Ask for clothes|Asylum Towels]]>><<trauma 6>><<stress 3>><<suspicion 1>><</link>><<gsuspicion>><<gtrauma>><<gstress>> <br> <</if>> <<if $daily.eden.distract is 1>> <<investigateicon>><<link [[Search for a breaker room|Asylum Breaker]]>><</link>> <br> <</if>> <<if $daily.eden.asylumDisarm is 1>> <<investigateicon>><<link [[Search for an alarm system|Asylum Alarm]]>><</link>> <br> <</if>> <<if $exposed gte 2 and hasSexStat("exhibitionism", 5)>> <<if Time.hour is 6>> <<foodicon "pancakes">><<link [[Breakfast (1:00)|Asylum Breakfast]]>><<asylumstatus 1>><<awareness -10>><<trauma -3>><<stress -6>><<pass 60>><</link>><<exhibitionist5>><<gcool>><<llawareness>><<ltrauma>><<lstress>> <br> <</if>> <<exerciseicon>><<link [[Exercise outside (0:30)|Asylum Exercise]]>><<tiredness 3>><<stress -6>><</link>><<exhibitionist5>><<gtiredness>><<lstress>><<gathletics>> <br> <<socialiseicon>><<link [[Socialise (0:30)|Asylum Socialise]]>><<asylumstatus 1>><<trauma -3>><<stress -6>><<pass 30>><</link>><<exhibitionist5>><<gcool>><<ltrauma>><<lstress>> <br> <<schoolicon "library">><<link [[Study (0:50)|Asylum Study]]>><<pass 50>><<schoolskill>><</link>><<exhibitionist5>><<gschool>> <br> <<gardenicon>><<link [[Garden (0:02)|Asylum Garden]]>><<pass 2>><</link>> <br> <<elseif $exposed gte 1 and hasSexStat("exhibitionism", 3)>> <<if Time.hour is 6>> <<foodicon "pancakes">><<link [[Breakfast (1:00)|Asylum Breakfast]]>><<asylumstatus 1>><<awareness -10>><<trauma -3>><<stress -6>><<pass 60>><</link>><<exhibitionist3>><<gcool>><<llawareness>><<ltrauma>><<lstress>> <br> <</if>> <<exerciseicon>><<link [[Exercise outside (0:30)|Asylum Exercise]]>><<tiredness 3>><<stress -6>><</link>><<exhibitionist3>><<gtiredness>><<lstress>><<gathletics>> <br> <<socialiseicon>><<link [[Socialise (0:30)|Asylum Socialise]]>><<asylumstatus 1>><<trauma -3>><<stress -6>><<pass 30>><</link>><<exhibitionist3>><<gcool>><<ltrauma>><<lstress>> <br> <<schoolicon "library">><<link [[Study (0:50)|Asylum Study]]>><<pass 50>><<schoolskill>><</link>><<exhibitionist3>><<gschool>> <br> <<gardenicon>><<link [[Garden (0:02)|Asylum Garden]]>><<pass 2>><</link>> <br> <<elseif $exposed is 0>> <<if Time.hour is 6>> <<foodicon "pancakes">><<link [[Breakfast (1:00)|Asylum Breakfast]]>><<asylumstatus 1>><<awareness -10>><<trauma -3>><<stress -6>><<pass 60>><</link>><<gcool>><<llawareness>><<ltrauma>><<lstress>> <br> <</if>> <<exerciseicon>><<link [[Exercise outside (0:30)|Asylum Exercise]]>><<tiredness 3>><<stress -6>><</link>><<gtiredness>><<lstress>><<gathletics>> <br> <<socialiseicon>><<link [[Socialise (0:30)|Asylum Socialise]]>><<asylumstatus 1>><<trauma -3>><<stress -6>><<pass 30>><</link>><<gcool>><<ltrauma>><<lstress>> <br> <<schoolicon "library">><<link [[Study (0:50)|Asylum Study]]>><<pass 50>><<schoolskill>><</link>><<gschool>> <br> <<gardenicon>><<link [[Garden (0:02)|Asylum Garden]]>><<pass 2>><</link>> <br> <</if>> <<if $asylumstatus gte 80 and $asylumdistracted isnot 1>> <<socialiseicon "ask">><<link [[Ask the patients to distract the orderlies|Asylum Distract]]>><<set $asylumdistracted to 1>><<asylumstatus -30>><</link>><<lllcool>> <br> <</if>> <br> <<asylumicon "cell">><<link [[Cell (0:02)|Asylum Cell]]>><<pass 2>><</link>> <br> <</if>><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> You wander around the asylum, looking for a breaker room. As luck would have it, you stumble upon one tucked away in an inconspicuous location. <br><br> Using the lock pick Eden gave you, you enter the breaker room, lock the door and access the control panel. <br><br> <<link [[Try to disable power to the search lights (0:30)|Asylum Disable]]>><<pass 30>><</link>> <<note "A higher science skill will make this more likely to succeed" "italic">> <br> <<link [[Leave|Asylum]]>><</link>><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> <<if random(1, 200) lte (currentSkillValue('science') + 100)>> <<set $daily.eden.distract to 2>> You successfully disable power to the guard tower search lights. Hopefully that'll buy you some time to escape. <br><br> <<link [[Next|Asylum]]>><</link>> <<else>> You mistakenly flip a switch providing power to the recreation area. Quickly noticing your mistake, you flip it back on and sneak out before anyone catches you. Seems you'll need to try again. <br><br> <<link [[Next|Asylum]]>><</link>> <</if>><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> After wandering the asylum for a while, you find a wireless alarm mounted to the wall somewhere relatively out-of-the-way. Grabbing a butterknife from the cafeteria, you use it unscrew the main panel. There seems to be a bunch of wires connecting the system to the main power source. <br><br> <<link [[Try to disconnect the alarm (0:30)|Asylum Disconnect]]>><<pass 30>><</link>> <<note "A higher science skill will make this more likely to succeed" "italic">> <br> <<link [[Leave|Asylum]]>><</link>><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> <<if random(1, 200) lte (currentSkillValue('science') + 100)>> <<set $daily.eden.asylumDisarm to 2>> You successfully disconnect the alarm system from its power source. Hopefully no one will be alerted to your escape. <br><br> <<link [[Next|Asylum]]>><</link>> <<else>> You hear footsteps approaching from afar. You quickly re-attach the main panel and leave before you're caught. Seems you'll need to try again. <br><br> <<link [[Next|Asylum]]>><</link>> <</if>><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> You ask for help distracting the orderlies. You have trouble finding anyone who will agree to it, until a <<generate1>><<person1>><<person>>. <<He>> looks at <<his>> friends, then back at you. "Alright," <<he>> says. "We'll make sure you get some proper alone time with the good Doctor." <i>Harper will not receive aid the next time you attack <<nnpc_him "Harper">>.</i> <br><br> <<link [[Next|Asylum]]>><<endevent>><</link>> <br><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> <<generateDoctor 1>><<person1>><<set _towel to random(0,4)>> You sneak to a nurse. "Excuse me," you say. <<if $worn.upper.name is "straightjacket" or $worn.lower.name is "straightjacket bottom" or $asylumbound gt 0>> <<if $worn.upper.name is "straightjacket" or $worn.lower.name is "straightjacket bottom">> <<set _nurseJacket to "broken">> <<else>> <<set _anyclothing to getVisibleClothesList().some(item => item.name !== "naked")>> <</if>> <<He>> turns, and regards your <<if _nurseJacket is "broken">>ruined jacket<<else>>undressed state<</if>> with a <<if ($beauty gte ($beautymax / 3) * 2) and _towel lte 1>> smirk. <<covered>> "Can I have some clothes please?" <br><br> "Nah, you're hot." <<He>> pulls out a phone. "I wanna watch you go and ask someone else." <<fameexhibitionism 2 "pic">> <<else>> frown. <<covered>> "Can I have some clothes please?" <br><br> "How did you manage that? No, never mind. I don't want to know." <<He>> makes a note on a clipboard. "I'll have to inform the doctor."<<set $suspicion += 1>><<gsuspicion>> <br><br> <<if _nurseJacket is "broken">> <<He>> removes the remains of your straightjacket<<if pcAreArmsBound("both")>>, letting your arms fall at your sides<</if>>. <</if>> <<asylumBind>> <<if _anyclothing and (!_asylumBindUnderwear or _asylumBindUnderwear is "given")>> <<He>> makes you hand over all your personal items. <<elseif _asylumBindUnderwear and _asylumBindUnderwear isnot "given">> <<He>> makes you strip down to your underwear. <<if _nurseJacket is "broken">> Then <<he>> <<else>> <<He>> <</if>> slides down your _asylumBindUnderwear and makes you step out of them. <</if>> <<if _asylumBindUnderwear>> <<He>> makes you step into a fresh pair of $worn.under_lower.name_simple and pulls them up. <</if>> Your brief moment of freedom ends as <<he>> secures you into a new straightjacket. <<fameexhibitionism 1>> <</if>> <<elseif ($beauty gte ($beautymax / 3) * 2) and _towel lte 3>> /* 1 in 5 to skip beauty*/ <<if _towel is 0>> /*1 in 4 chance*/ <<He>> turns, and smiles with open lust when <<he>> sees you. <<covered>> "Can I have some clothes please?" <br><br> "Nah, you're hot." <<He>> pulls out a phone. "I wanna watch you go and ask someone else." <<fameexhibitionism 2 "pic">> <<else>> <<He>> turns, and smiles with open lust when <<he>> sees you. <<covered>> "Can I have some clothes please?" <br><br> "Seems like a shame, but sure," <<he>> says with a nod, and wraps some around you. <<unbind>><<upperwear 87>><<fameexhibitionism 1>> <</if>> <<elseif $player.penissize gte 3>> <<He>> turns, and smiles when <<he>> sees you. <<covered>> "Can I have some clothes please?" <br><br> "One moment," <<he>> says. <<He>> pulls out a phone and takes a quick photo of your <<genitals>>. <<He>> nods at the screen, and then chucks a bundle of fabric at you. "Seems like a damn shame to cover that up." <<unbind>><<upperwear 87>><<fameexhibitionism 2 "pic">> <<elseif $player.breastsize gte 7>> <<He>> turns, and smiles when <<he>> sees you. <<covered>> "Can I have some clothes please?" <br><br> "One moment," <<he>> says. <<He>> pulls out a phone and takes a quick photo of your <<breasts>>. <<He>> nods at the screen, and then chucks a bundle of fabric at you. "Seems like a damn shame to cover those up." <<unbind>><<upperwear 87>><<fameexhibitionism 2 "pic">> <<elseif _towel gte 2>> <<He>> turns, and seems completely unphased when <<he>> sees you. <<covered>> "Can I have some clothes please?" <br><br> <<He>> nods, and gives you a patient gown. <<unbind>><<upperwear 87>><<fameexhibitionism 1>> <<else>> <<He>> turns, and puts a hand to <<his>> mouth to conceal laughter when <<he>> sees you. <<covered>> "Can I have some clothes please?" <br><br> <<He>> nods, and gives you a patient gown. <<unbind>><<upperwear 87>><<fameexhibitionism 1>> <</if>><br><br><<unset _towel>> <<link [[Next|Asylum]]>><<endevent>><</link>> <br><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> <<if isPregnancyEnding()>> <<pregnancyPassout "asylumOutside">> <<elseif C.npc.Eden.love gte 100 and edenFreedomStatus() gte 1 and !$daily.eden.asylumRescue and $eden_asylum_fence isnot 1 and $trauma lte $traumamax / 2 and !pcAreArmsBound("any") >> <<set $eden_asylum_fence to 1>> <<set $daily.eden.asylumRescue to 1>> You see movement among the trees, a lurking figure. It steps closer. <span class="green">It's Eden.</span> <br><br> <<npc Eden>><<person1>> You jog up to the fence, and lean against it to catch your breath. Eden rushes into full view, emboldened by the sight of you. <br><br> <<He>> reaches through the bars and takes your hands. "I'm going to make a distraction," <<he>> says. "In a few minutes you'll hear an explosion on the other side of the building. Climb over the fence, and I'll lead you back to the cabin with me. Got it?"<<takeHandholdingVirginity "Eden" "romantic">> <br><br> <<getinicon>><<link [[Agree|Eden Distraction Plan]]>><</link>> <br> <<refuseicon>><<link [[Refuse|Eden Distraction Refuse]]>><</link>> <br> <<elseif $exposed is 2>> <<flaunting>> you run around the asylum grounds. Security keeps a close eye on you, and warn you off when you jog too close to the perimeter fence. <<athletics 2>><<pass 30>> <br><br> Your <<lewdness>> on display makes you the centre of attention. <<exhibitionism5>> <<asylumevents>> <<elseif $exposed is 1>> <<flaunting>> you run around the asylum grounds. Security keeps a close eye on you, and warn you off when you jog too close to the perimeter fence. <<athletics 2>><<pass 30>> <br><br> Your <<lewdness>> on display makes you the centre of attention. <<exhibitionism3>> <<asylumevents>> <<else>> <<if pcAreArmsBound("both") and $worn.upper.name is "straightjacket">> Despite the straightjacket, you persist in running around the asylum grounds. <<if currentSkillValue('danceskill') + currentSkillValue('athletics') gte 1600>> With your agile and athletic movement, you make it an excellent training session. <<athletics 2>><<physique 4>><<pass 30>> <<elseif currentSkillValue('danceskill') + currentSkillValue('athletics') gte 1100>> With your skilful movement, you can still get a decent training session. <<athletics 2>><<physique 3>><<pass 30>> <<elseif currentSkillValue('danceskill') + currentSkillValue('athletics') gte 650>> It's tricky, but thanks to your reasonable agility and athleticism, you can still get some kind of workout. <<athletics 2>><<physique 2>><<pass 30>> <<else>> You <<print either("almost immediately","soon")>> <<if random(0,1)>>trip over a root and end up doing a sliding face-plant along the ground. <<else>>trip on a stone and, off-balance, run face-first into a tree. Stunned, you fall back on the floor. <</if>> Several people clap.<<gpain>><<pain 6>><br> Someone eventually helps you up. It wasn't much of a workout. <<athletics 2>><<pass 30>> <</if>><br><br> Security are amused by the sight of you, but still warn you off when you jog too close to the perimeter fence. <br><br> <<asylumevents>> <<else>> You run around the asylum grounds. Security keeps a close eye on you, and warn you off when you jog too close to the perimeter fence. <<athletics 2>><<pass 30>> <br><br> <<asylumevents>> <</if>> <br><br> <</if>><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> You decide to ignore the figure and focus on your workout. <br><br> <<link [[Next|Asylum Exercise]]>><<endevent>><</link>><<effects>> You shake your head. "It's too dangerous," you say. <br><br> "I'm not letting them keep you," Eden snarls. "But I'll find a safer way if you wish." <<He>> squeezes your hand, then turns and strides into the forest. <br><br> You return to your workout. <br><br> <<link [[Next|Asylum Exercise]]>><<endevent>><</link>> <br><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> <<set $daily.eden.distract to 1>> <<npc Eden>><<person1>> You're about to agree to Eden's plan, but stop when you remember something. "The guard towers," you say. "They'll see me climb the fence." <br><br> Eden's face falls at this realisation. "I'll delay the distraction to <<ampm 21>>," <<he>> says. "They shouldn't see you then." <br><br> "How about their search lights?" you ask. <br><br> "There has to be a breaker room somewhere providing power. Before the explosion goes off, shut it down and meet me in the forest," <<he>> says, placing a lock pick in your hands and sneaking off. <br><br> <<link [[Next|Asylum Exercise]]>><<endevent>><</link>> <br><<asylumBind "punish">> <<effects>> <<set $daily.eden.distract to 4>> <<npc Harper>><<generate2>><<person2>> You awaken strapped to a bed. A light glares in your eyes. It dims to reveal an old <<person>> in a white coat. Doctor Harper stands beside <<him>>. <br><br> "No long term effects," the <<person>> says, stepping away. <br> "Good," Harper says. "You tried to climb the fence. Do you know how dangerous the forest beyond is? You're here so we can help you. For your own safety." <br><br> You try to stand, but you can't move your arms. "We've given you a jacket until you're a bit better," <<he>> continues, grabbing your shoulder. <<He>> helps you to your feet. You're in a small, dark room. <br><br> <<He>> steers you towards the door, then through it. You're pushed through another set of doors, into the patients communal area. <br><br> "Be well," Harper says, shutting the doors behind you. <br><br> <<link [[Next|Asylum]]>><<endevent>><</link>> <br><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> You chat with the other patients. <<if $exposed is 2>> Your <<lewdness>> on display makes you the centre of attention. <<exhibitionism5>> <<elseif $exposed is 1>> Your <<lewdness>> on display makes you the centre of attention. <<exhibitionism3>> <<else>> <</if>> <<if $asylumstatus gte 80>> They're happy to speak with you. <<elseif $asylumstatus gte 20>> <<else>> Most avoid you, but a few are willing to hear you out. <</if>> <br><br> <<generate1>><<person1>> <<if C.npc.Eden.love gte 100 and edenFreedomStatus() gte 1 and !$daily.eden.asylumRescue and !$eden_asylum_window and !pcAreArmsBound("any") and $trauma lte $traumamax / 2 >> <<set $daily.eden.asylumRescue to 1>> <<set $eden_asylum_window to 1>> <<set $daily.eden.asylumDisarm to 1>> <br> You look out the window, at the trees beyond the fence. You see movement, a figure lurking in the dark. <span class="green">It reminds you of Eden.</span> <br><br> <<endevent>> <<npc Eden>><<person1>> You open the window to get a clearer view. You hear a thud to your right. A bolt sticks out of the brickwork. There's paper wrapped around the shaft. <br><br> You glance behind you to make sure you're not being watched. Everyone seems preoccupied. You pull out the bolt, and unfurl the paper. The handwriting is crude, but legible. <br><br> <i>"I'm coming for you. Mark your window with a towel at <<ampm 22>>. - Eden"</i> <br><br> You look back out at the forest, but the figure is gone. <br><br> <<link [[Next|Asylum Eden Towel]]>><<endevent>><</link>> <<else>> <<cleareventpool>> <<addinlineevent "socialise_warning_suspicion">> "Best keep your nose clean," a <<person>> says. "If the staff are suspicious of you, it'll be hard to do anything sneaky." <</addinlineevent>> <<addinlineevent "socialise_warning_sides">> "Fair warning: it's us against them in here," a <<person>> tells you. "If you cosy up with those guards and nurses and doctors and all the other scum, don't expect any quarter from the rest of us." <</addinlineevent>> <<addinlineevent "socialise_warning_security">> "Security is tight," a <<person>> says. "No way you're sneaking past them. Not without a distraction." <</addinlineevent>> <<addinlineevent "socialise_warning_straightjacket">> "Sometimes they put me in a straightjacket," a <<person>> says. "I'm so powerless. They can do whatever they want to me." <<He>> smiles. <</addinlineevent>> <<addinlineevent "socialise_warning_bindings">> "They bind our arms so tight," a <<person>> says. <<if random(1,2) is 1>> "Can't do much like that. Not even open our own cupboards." <<else>> "Can't even masturbate. Sometimes I have to call to the guards to scratch that itch." <</if>> <</addinlineevent>> <<addinlineevent "socialise_warning_door">> <<generate2>><<generate3>> "Be wary, friend!" a <<person>> fixes your eye. "Beware the door that's ajar!" <br><br> "You what, mate?" a <<person2>><<person>> nearby turns to <<person1>><<him>>. "You daft? 'ow can a door be a jar?" <br><br> "How can..? It just is. They don't close it properly. Almost like they want the unwary to—" <br><br> "Totally, man!" a <<person3>><<person>> interrupts. "A door can totally be a jar. Like a giant jar. I mean, like, I never thought of it that way, but the building is like, the cupboard. Full of jars. Which are doors. The door is the jar, literally. And we're the... the jam trying to get out to the town, which is obviously the toast in this... this... ...analogy? I mean, yeah - the door is the jar - I see it. I totally see it." <<He>> sounds quite sure of <<himself>>. <</addinlineevent>> <<addinlineevent "socialise_warning_vanishing">> "Stay out of the empty parts of the building," a <<person>> says. "Someone went there once, and vanished." <</addinlineevent>> <<addinlineevent "socialise_warning_suggestion">> "They pump gas into our rooms at night, I swear," a <<person>> says. "Makes us suggestible." <<if random(1,2) is 1>> <br><br> "<<print either( "Don't need gas to make YOU suggestible!", "You're a fine one to talk about making gas!" )>>" a voice mutters snidely. The <<person>> turns and starts swearing at them. <</if>> <</addinlineevent>> <<addinlineevent "socialise_warning_asylum">> "You're not sick," a <<person>> whispers to you. "None of us are. They're sick. Them. <<if random(1,2) is 1>> They tell us we're sick so they can test their drugs on us. And no one will stop them. It's big pharma. It goes all the way to the top." <<else>> They lock people like us up because we're sane. We're a challenge to their power." <</if>> <</addinlineevent>> <<addinlineevent "socialise_warning_truth">> "It's bad in here," a <<person>> says. "But it's worse out there." <</addinlineevent>> <<addinlineevent "socialise_warning_insane">> <<if random(1,2) is 1>> "Some of the crazies in here will tell you the staff are all lizard-people bent on world domination." The <<person>> shakes <<his>> head. "What rubbish. They're obviously aliens." <<else>> "Some of the nutcases around here will tell you the staff are all aliens preparing us to join a Galactic federation." The <<person>> rolls <<his>> eyes. "Nonsense: they're clearly lizard-people." <</if>> <</addinlineevent>> <<addinlineevent "socialise_warning_illusion">> <<if random(1,2) is 1>> "Hello there," a <<person>> says. "Listen: if you see a patient around here who sounds like they swallowed a dictionary and keeps warning you about how everything is an illusion, I need you to punch them for me. I was in a terrible rush this morning and just didn't have the time." <<else>> "None of this <<print either("matters,","is real,","makes any difference,")>>" a <<person>> says. "We're all just <<print either( "living in some future supercomputer's artificial reality", "NPCs in someone else's game", "characters in a book", "ghosts who don't realise we've died", "katra passing through the infinite cycle of death and rebirth" )>> - but no one recognises the truth." <</if>> <</addinlineevent>> <<addinlineevent "socialise_warning_school">> "I used to work at the school," a <<person>> says. <<if random(1,2) is 1>> "I heard some disgusting rumours about that headteacher. <<print either( "They can't be true. It's probably just students trying to make trouble.", "No smoke without fire, I say.", "Someone should look into that." )>>" <<else>> "You should see the disgusting things that history teacher keeps in <<nnpc_his "Winter">> cupboard. One time a student was left in a- well, let's just say that if people knew the truth, <<nnpc_he "Winter">> would probably be sitting here with us." <</if>> <</addinlineevent>> <<addinlineevent "socialise_warning_police_soft">> "Sometimes," a <<person>> mutters as much to <<himself>> as you. "I just don't think the police in this town are really looking out for our best interests." <</addinlineevent>> <<addinlineevent "socialise_warning_police_hard">> "I know everyone says this here," a <<person>> says. "But I'm actually not crazy. I'm <<print either("a Detective","a Detective Inspector","a Chief Inspector", "an Officer")>> with the police. Back in the Met I was a big deal. Cracked a few big cases. Newspapers and everything. Was transferred here to clean things up." <br><br> <<He>> laughs bitterly. "Can you believe that? It's true. We heard rumours about this place. Nasty things. So I was sent here to be the big shining white knight, come to put away the bad guys. Instead they put me away. I have 'PTSD,' apparently." <br><br> <<He>> falls silent. <br><br> "Hey!" <<he>> says as you move to leave. "Do me a favour. If you get back out there: never trust the police in this town. There are some good apples, but most are in with the criminals - by the time you know for sure it'll be too late. Like it was for me. Some of the doctors are in on it too. People disappearing." <</addinlineevent>> <<addinlineevent "socialise_warning_harper_farm">> "That young doctor smelled like cow manure the other afternoon," a <<person>> whispers. "Does <<nnpc_he "Harper">> live on a farm or something!?" <</addinlineevent>> <<addinlineevent "socialise_warning_harper_pretty">> "The doctor never calls on me anymore," a <<person>> grumbles. "I haven't had a session in weeks. <<if $beauty gte ($beautymax / 3) * 2>> I'll never get better because the doctors are always busy with pretty little things like you." <<gstress>><<stress 1>> <<else>> We should complain! The doctors should help all of us, not just the attractive ones." <</if>> <</addinlineevent>> <<addinlineevent "socialise_warning_harper_pervert">> "The doctor makes me do such lewd things," a <<person>> says. "I used to hate it, but now I can't wait for the next treatment." <</addinlineevent>> <<addinlineevent "socialise_harper_sold" 2>> There is a buzz of excitement in the room today. A popular patient has been cured and is being released. Patients crowd by the window waving at a smiling <<person>>, as <<he>> stands with Dr Harper by the driveway. <br><br> Moments later, the gates open and a vehicle drives through. It circles round the driveway and stops by the grinning former-patient. <<if random(1,2) is 1>> Oddly, the vehicle isn't a taxi or mini-bus. It looks more like an animal-hauler. The driver emerges to greet them. <<if $fluid_forced_stat gte 100>>You recognise the driver from somewhere.<</if>> With a final flurry of waves, the <<person>> is led into the back of the vehicle. A look of confusion finally crosses <<his>> face a moment before <<he>> is hidden behind the closing door. <br><br> The driver bars and padlocks the door. <<if $fluid_forced_stat gte 100>> As the driver talks with Dr Harper, you suddenly remember <<him>> <span class="purple">as one of Remy's farmhands</span>. Before you can say anything, <<else>> After a brief exchange with Dr Harper, <</if>> the driver clambers into the vehicle and drives away. <<else>> The <<person>> climbs into the waiting taxi, and waves back through the window. The engine sound rises and the car pulls away taking the <<person>> back to the town. <</if>> <br><br> "Be well," you hear Dr Harper call after the departing vehicle. The watching crowd disperses. <</addinlineevent>> <<addinlineevent "socialise_harper_expose" 2>> Everyone is busy with their own activities right now. <br><br> As you stand by a window, Dr Harper leads a naked <<personsimple>> into the recreation area. Completely nude, <<if random(1,3) is 1>> the <<person>> seems to believe <<he>> is a doctor. Methodically, Harper leads <<him>> between different patients in the room asking for a medical opinion. <br><br> The <<person>> refers to an imaginary clipboard as <<he>> pronounces <<if currentSkillValue('science') gte 500>> earnest but meaningless pseudo-medical 'diagnoses' for these patients. <<else>> a medical diagnosis for each patient. <</if>> Whatever <<he>> says, Harper nods gravely. "I see. Thank you, Doctor," <<nnpc_he "Harper">> says, and leads <<him>> to another patient. After the seventh or eighth patient, they leave together. <<else>> except for a collar connected to the lead in Harper's hand, the <<person1>><<person>> crawls on <<his>> hands and knees, seemingly believing <<hes>> a dog. As Harper leads <<him>> through the room <<he>> tries to crawl under tables and sniff patients' legs. <br><br> In the middle of the room, Harper unclips the lead from the <<persons>> collar, allowing <<him>> to roam while Harper stops to talk with one of the orderlies. As the doctor chats, the <<person>> crawls between patients, getting them to stroke <<his>> head, sniffing their groins, or rolling over so they can rub <<his>> tummy. <br><br> When <<he>> suddenly <<if $NPCList[0].penis isnot "none">>raises <<his>> leg to pee against<<else>>squats to pee by<</if>> a table, Harper lunges across and grabs <<his>> collar. "That's enough now." Harper quickly leads <<him>> from the room. <</if>> <br><br> Many watch with amusement. Some with lust. A few with embarrassment. Absolutely no one seems surprised. <</addinlineevent>> <<addinlineevent "socialise_warning_harper_doctor">> "That Harper isn't a Doctor," a <<person>> mutters. "Not really. When I first came here Harper was a patient like the rest of us. But now suddenly Harper's our Doctor. THEY all play along, and everyone who might remember has conveniently forgotten." <br><br> <<He>> looks around sharply. "Or, disappeared." <</addinlineevent>> <<addinlineevent "socialise_captured_doctor">> "I'm not a patient here, y'know? I'm a doctor," a <<person>> says. "I'm telling you I did— I did study in— in— I studied lots of things. So many things. But no one believes me anymore. I came here as a doctor, but now..." <br><br> <<He>> takes a deep breath. "Now even the other doctors they— they act like I'm a patient. They don't listen. No one listens. I..." <<He>> grips your arm. "I Am Not Crazy." <</addinlineevent>> <<addinlineevent "socialise_captured_townie">> "I don't know why I'm here," a <<person>> says. "I remember I got a coach into town. I arrived at the bus station. And I remember I didn't have change for a taxi or bus home. I live near the Temple on Danube Street, so it's not far. Quite a nice walk by the Park, but... I didn't get that far." <br><br> <<He>> shakes <<his>> head. "I remember going out from the station and onto Elk Street... and then... <<print either( "", "There was a sound and then...", "Something... came over a fence and then...", "There were guards in uniform, chasing something, and then..." )>> I woke up here. They say I did terrible things." <</addinlineevent>> <<addinlineevent "socialise_captured_willingly">> "Don't tell anyone," a <<person>> confides. "But I'm not ill. Not really. I pretend to be because I like it here. It's nice. Crazy would be going back out there." <</addinlineevent>> <<if $o_long_and_beautiful gte 1 and $o_long_and_beautiful lte 7>> <<addinlineevent "socialise_long_and_beautiful" 2>> <<set $o_long_and_beautiful += 1>> A thin girl with extremely long, messy, tangled hair stands by a window staring at the trees across the garden. <br><br> You stand next to her and try to strike up a conversation, but she doesn't respond at all. With her face mostly hidden in a mass of long, tangled hair, it's hard to tell if she even hears you. <br><br> Through the window you notice a small plane passing low over the forest, or maybe the town beyond. <br><br> When you glance to the side again, the long-haired girl has vanished. <</addinlineevent>> <<elseif $o_long_and_beautiful gte 8 and $o_long_and_beautiful lte 9 and $hy_sibling and $hy_parent>> <<addinlineevent "socialise_long_and_beautiful_sib" 10>> /* Approximately 1/3 chance of triggering, once conditionals are true */ <<generate2>><<set $NPCList[0] to clone($hy_sibling)>><<set $NPCList[1] to clone($hy_parent)>><<person1>> Everyone seems phased out today. No one is talking. As you slump into a chair trying to figure out what to do next, a voice behind you starts singing an upbeat pop song from a year or so ago. <span class="teal">It sounds familiar.</span> You turn around to find a <<person>> smiling at you. <br><br> "I thought that was you," <<he>> says. <<if $hairlength gte 500>> "I knew I recognised that long, beautiful hair." <<else>> "Your hair was so long and beautiful. Why did you cut it?" <</if>> After a moment, you place <<him>> as the shy <<person>> who braided your hair on Domus Street a while ago. You hear raised voices from somewhere nearby. <br><br> "So this is where you've been hiding away?" <<he>> says. <<if $chef_state gte 7 and ($chef_rework is undefined or $chef_rework is 0)>> <<if C.npc.Sam.gender === "m">>"That man,<<else>>"That lady,<</if>> Sam, the owner at Ocean Breeze, was offering the orphans money to find you. The customers are furious about the lack of cream buns. <<elseif $orphan_hope gte 25>> "Those orphans were looking for you. Making search parties along the beach. <<elseif $orphan_hope lte -10>> "I don't blame you. The orphans seem miserable these days. <<elseif C.npc.Kylar.love gte 30 and C.npc.Kylar.state is "active">> "That shy <<nnpc_gendery "Kylar">> you hang out with was skulking around the street looking for you. <<elseif $fame.exhibitionism gte 500>> "I think the town's pervs have missed you. Some creep in a car offered me money to strip! <<else>> "I thought I hadn't seen you around lately. <</if>> So have you met my sister? She's here. Very slim, long hair. I told you about her. Attacked at that beach party. She's been here forever now. Her long hair used to be so beautiful but now no one—" <br><br> The voices behind raise sharply. A <<person2>><<person>> is arguing with one of the orderlies. <br><br> "That's <<if $NPCList[0].pronoun is "m">>Dad. He's<<else>>Mum. She's<</if>> telling them to take better care of my sister. She seems to be getting worse again. She blames herself now and thinks she was 'asking for it'. One of the doctors keeps telling her that too. Really upsets her. She doesn't talk to anyone now. Won't even see us anymore. And her hair is nasty now. They don't even brush it. I'd do it, but she won't see me. It's so—" <br><br> "We're leaving," a hand grabs the <<person1>><<persons>> shoulder. "These useless—" The <<person2>><<person>> trails off as <<he>> looks at you. "You? I remember you. With the long hair. You came knocking on our door looking for work. Helped out that time. So you're in here now?! I hope you're okay. And I hope these... people are treating you well. We have to leave now. Good day." <br><br> <<He>> drags the waving <<person1>><<person>> toward the exit. <br><br> As you watch them leave, you notice a slim girl with long, messy hair watching from the door of one of the therapy rooms. With a loud buzz, the <<fullGroup>> are let out through a security door. When you look back to the therapy room, the long-haired girl is nowhere to be seen. <br><br> <span class="teal">Is that the sister?</span><<set $o_long_and_beautiful to 10>> <</addinlineevent>> <</if>> <<addinlineevent "socialise_masturbator">> A <<person>> is smiling at you. As you sit near <<him>> you notice one of <<his>> hands is under <<his>> clothes, rhythmically rubbing <<his>> <<if $NPCList[0].penis isnot "none">>dick<<else>>pussy<</if>>. <br><br> "Stay right there," <<he>> breathes. <<cleareventpool>> <<if $beauty gte ($beautymax / 7) * 4>> <<addinlineevent "" 0.3>>"Looking at you is helping a lot."<</addinlineevent>> <<elseif $beauty lte ($beautymax / 7) * 2>> <<addinlineevent>>"Your ugly face'll help me last longer."<</addinlineevent>><</if>> <<if $player.perceived_breastsize gte 6>> <<addinlineevent>><<He>> stares at your <<breasts>> as <<his>> hand moves faster.<</addinlineevent>><</if>> <<if $physique gte ($physiquesize / 7) * 6>> <<addinlineevent>>"With those muscles you'd dominate me like the little <<if $NPCList[0].penis isnot "none">>bitch<<else>>whore<</if>> I am."<</addinlineevent>><</if>> <<if $purity lte 400 or $awareness gte 500>> <<addinlineevent>>"Talk dirty to me. You look like you've seen it all."<</addinlineevent>><</if>> <<addinlineevent>>The movement gets faster.<</addinlineevent>> <<runeventpool>> <</addinlineevent>> <<addinlineevent "socialise_voyeur">> A <<person>> looks you up and down. "If anyone attacks you, just let me know." <<He>> smiles. "I like to watch." <</addinlineevent>> <<addinlineevent "socialise_cream_buns">> <<if $chef_state gte 3>> <<if $chef_state gte 7 and random(1,2) is 1>> A <<person>> stares at you open mouthed. "You're Sam's new chef from Ocean Breeze, aren't you?" <<he>> asks. "Oh my god, I can't believe you're here. I miss those buns! I don't suppose you could make some in here? Could you?!" <<lstress>><<stress -2>><<asylumstatus 2>><<gcool>> <<else>> "It's funny the things you miss in a place like this," a <<person>> tells you. "I miss the Ocean Breeze Cafe over on Cliff Street. Sam had just hired some new chef who was making the most incredible cream buns." <</if>> <<else>> "The one thing I miss," a <<person>> tells you, "is sitting by the beach watching the swimmers. There's this cafe called the Ocean Breeze there. If you ever get the chance, go. They have delicious cream buns. Ask for Sam." <</if>> <</addinlineevent>> <<addinlineevent "socialise_video_game">> "Last year the patients were campaigning for a video game system here," a <<person>> says. "<<print either( "What's the point of that? Thankfully the doctors said no.", "The doctors said it might be disruptive. But it's not like we've got anything better to do here." )>>" <</addinlineevent>> <<addinlineevent "socialise_planes">> A <<person>> stands by a window overlooking the garden and the forest beyond. <<He>> points at a plane. "So many planes fly over there," <<he>> says. "Every day." <br><br> Sure enough, out the window you notice a small plane passing quite low over the tree line. "What do you reckon? Is that going over the forest or the town?" <br><br> <<if currentSkillValue('science') gte 400 and currentSkillValue('maths') gte 600>> You take a couple of steps left and right, then make a rough calculation in your head. "Judging by the parallax, probably the town," you say. <<else>> You shrug. <</if>> <</addinlineevent>> <<addinlineevent "socialise_escape_plan">> <<generate2>><<generate3>> A <<person1>><<person>>, a <<person2>><<person>> and a <<person3>><<person>> plot their escape. <br><br> "How though?" the <<person>> asks. "How are you getting out?" <br> The <<person1>><<person>> looks wildly around the room. "With that thing!" <<He>> points at <<print either("the coffee vendor.","a mysterious machine.","the water fountain.","a heavy wooden desk.")>> "I'm gonna put that through the fuckin' window, that's how!" <br> "You're going to try to pick that up and throw it through the window?" <br> "Fuckin' right, I am!" the <<person>> says. <br> "By yourself?" the <<person2>><<person>> asks. "That?" <br> "Didn't I just say I would?" <br> "Bollocks," the <<person3>><<person>> says. "I'll bet an oral fuck you can't do it!" <br> "What?" <br> "Simple. If you do it I'll <<person1>><<if $NPCList[0].penis isnot "none">>suck you off<<else>>eat you out<</if>> right here," the <<person3>><<person>> says. "No questions. If not, you do the <<if $NPCList[0].pronoun is $NPCList[2].pronoun>>same<<else>>equivalent<</if>> for me." <br> "Okay," the <<person1>><<person>> says. "You're on." <br> "Me too," the <<person2>><<person>> says. "I want in on this!" <br> "More the fuckin' merrier," the <<person1>><<person>> says. "I hope you <<bitch>>es are ready for a big hairy <<if $NPCList[0].penis isnot "none">>cock<<else>>cunt<</if>> in your face!" <br><br> A couple of nearby guards watch on with amusement. <</addinlineevent>> <<runeventpool>> <br><br> <<endevent>> <<asylumevents>> <</if>><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> You think about the window above your room. Although the bars look unassuming, they're undoubtedly connected to an alarm system. <br><br> It seems that for this plan to work, you'll have to find and disable it. <br><br> <<link [[Next|Asylum]]>><</link>><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> <<if !pcAreArmsBound("any")>> <<set _prop to either("English", "history", "science", "maths")>> <<set _colour to _prop is "science" ? "blue" : _prop is "history" ? "yellow" : _prop is "maths" ? "red" : "green">> <<wearProp "open textbook" _colour _prop>> <</if>> You read old textbooks in the dusty library. Most of this should still apply. <<if pcAreArmsBound("both")>> Your arms are bound, so <<if $asylumstatus gte 60>> a nearby patient helps you with turning pages. <<else>> you resort to flipping the pages with your nose. <</if>> <<elseif $asylumstatus gte 80>> Other patients greet you and make space for you at their table. <<elseif $asylumstatus gte 60>> Several nearby patients smile or nod in greeting. <</if>> <br><br> <<if isPregnancyEnding()>> <<pregnancyPassout "asylumLibrary">> <<else>> <<if $exposed is 2>> Your <<lewdness>> on display makes you the centre of attention. <<exhibitionism5>> <<elseif $exposed is 1>> Your <<lewdness>> on display makes you the centre of attention. <<exhibitionism3>> <</if>> <<if $rng gte 81>> <<generateDoctor 1>><<person1>>A <<person>> dressed as an orderly stops beside you. "Would you like some assistance?" <<he>> asks. <br><br> <<link [[Accept|Asylum Study Help]]>><<schoolskill>><</link>><<gschool>> <br> <<link [[Refuse|Asylum]]>><<endevent>><</link>> <br> <<else>> <<asylumevents>> <</if>> <</if>><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> You nod. The orderly pulls a chair close and sits down. <br><br> <<He>> helps you with the material. <<Hes>> quite knowledgeable. <br><br> <<link [[Thank|Asylum Study Thank]]>><<set $suspicion -= 1>><</link>><<lsuspicion>> <br> <<if !pcAreArmsBound("any")>> <<link [[Rest a hand on <<his>> thigh|Asylum Study Thigh]]>><<handheldon>><</link>><<promiscuous1>> <</if>> <br><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> <<if $speech_attitude is "meek">> "Thank you for the help," you say. "I couldn't have understood it without you." <<elseif $speech_attitude is "bratty">> "Thanks for the help," you say. <<else>> "Thanks," you say. "It's kind of you to help." <</if>> <br><br> The <<person>> smiles. "Anytime," <<he>> says. "I need to get back to work. You look after yourself." <br><br> <<link [[Next|Asylum]]>><<endevent>><</link>> <br><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> You rest a hand on <<his>> thigh as <<he>> explains something to you. <<His>> voice wavers. You ignore <<his>> glance in your direction. You keep your focus on the book in front of you, as if nothing were amiss. <<promiscuity1>> <<link [[Thank|Asylum Study Thank]]>><</link>> <br> <<if hasSexStat("promiscuity", 3)>> <<if $pronoun is "m">> <<link [[Open <<his>> fly|Asylum Study Hand]]>><<set $phase to 0>><</link>><<promiscuous3>> <br> <<else>> <<link [[Lift <<his>> skirt|Asylum Study Hand]]>><<set $phase to 1>><</link>><<promiscuous3>> <br> <</if>> <</if>><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> <<famesex 1>> <<if $phase is 0>> You unzip <<his>> fly. <<else>> You lift <<his>> skirt. <</if>> <<if $NPCList[0].penis isnot "none">> <<if random(0,1) is 1>><<bodyliquid "rightarm" "semen">><<else>><<bodyliquid "leftarm" "semen">><</if>> <<Hes>> already hard beneath. You run your fingers along <<his>> shaft, and feel <<him>> tremble under your touch. <<He>> shoots furtive glances around the library, but none of the patients or staff have noticed. <br><br> Your fingers reach <<his>> glans, and a moan escapes <<his>> lips. <<He>> presses a hand to <<his>> mouth. <<He>> doesn't last much longer before a wave of pleasure spasms through <<him>> and <<he>> erupts on your hand. <br><br> <<else>> <<if random(0,1) is 1>><<bodyliquid "rightarm" "goo">><<else>><<bodyliquid "leftarm" "goo">><</if>> <<Hes>> already wet beneath. You run your fingers along <<his>> slit, and feel <<him>> tremble under your touch. <<He>> shoots furtive glances around the library, but none of the patients or staff have noticed. <br><br> Your fingers reach <<his>> clit, and a moan escapes <<his>> lips. <<He>> presses a hand to <<his>> mouth. <<He>> doesn't last much longer before a wave of pleasure spasms through <<him>> and <<he>> cums on your hand. <br><br> <</if>> <<if $phase is 0>> You zip up <<his>> trousers and withdraw your hand. <<else>> You tug down <<his>> skirt and withdraw your hand. <</if>> <<if $speech_attitude is "meek">> "You've been kind to me," you whisper. "It's only fair I'm kind too." <<elseif $speech_attitude is "bratty">> "Thanks for the help," you whisper. <<else>> "You helped me," you whisper. "I hope that's thanks enough." <</if>> <br><br> <<He>> nods, still blushing. "I-I need to get back to work," <<he>> says, stumbling out of the room. <br><br> <<link [[Next|Asylum]]>><<endevent>><</link>> <br><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> You sit down and enjoy breakfast with the other patients. <<if pcAreArmsBound("both")>> Your arms are bound, so <<if $asylumstatus gte 66>> a nearby patient helps you eat. <br> "We've got to look out for each other in here." <br> <<elseif $asylumstatus gte 33>> you find yourself pressing your face against your plate. <<else>> you find yourself pressing your face against your plate. A person nearby <<print either("grabs your head and pushes your face into your food.","mimics how you're eating while pulling dumb faces.","points at you and laughs.","makes a lewd comment about the way you're eating a sausage.")>> Many others laugh. <</if>> <</if>> The food is good, and leaves you feeling warm and happy. It's not just you. The other patients seem more social. <br><br> <<if isPregnancyEnding()>> <<pregnancyPassout "asylumCafe">> <<elseif $exposed is 2>> Your <<lewdness>> on display makes you the centre of attention. <<exhibitionism5>> <<elseif $exposed is 1>> Your <<lewdness>> on display makes you the centre of attention. <<exhibitionism3>> <<elseif $asylumstatus gte 80>> Other patients seem eager to chat with you. <<elseif $asylumstatus gte 60>> Several nearby patients talk with you over breakfast. <<elseif $asylumstatus gte 40>> The nearest patients begrudgingly talk with you. <<else>> However, anything you say is met with stony silence. <</if>> <br><br> <<asylumevents>><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> You approach the staff door with a keycard lock. <<if $asylumkeycard is 1>> <<if pcAreArmsBound("both")>> You have the keycard, but you can't use it with your arms bound. <<else>> <<wearProp "keycard" "silver">> You could open it with the keycard if you wanted. <</if>> <<else>> <<if pcAreArmsBound("both")>> With your arms bound, you couldn't reach it even if you had the keycard. <<else>> If you had the keycard you could open it. <</if>> <</if>> <br><br> <<if $asylumkeycard is 1>> <<if !pcAreArmsBound("both")>> <<icon "access_card.png">><<link [[Open|Asylum Open]]>><<handheldon>><</link>> <br> <</if>> <</if>> <<getouticon>><<link [[Back|Asylum]]>><<handheldon>><</link>> <br><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> You open the door and peek through. <<if $asylumstate is "sleep">> The hallway beyond is dark and empty. You tiptoe through. <br><br> You explore the staff area of the asylum, dodging the occasional patrol. You come to a room filled with screens; they show the inside of each cell. A couple of patients are masturbating. <br><br> One screen reads "<span class="red">Aphrodisiac ministration active: 3%</span>". There are many unmarked buttons and dials beneath it. <br><br> <<link [[Try to turn it up (1:00)|Asylum Cameras]]>><<pass 60>><</link>> <<note "A higher science skill will make this more likely to succeed. Will trigger an escape sequence if successful." "italic">> <br> <<link [[Leave|Asylum]]>><</link>> <br> <<else>> The hallway beyond is busy with staff performing their duties. You'll be seen if you stay here. Perhaps it'll be deserted at night. <br><br> <<link [[Next|Asylum]]>><</link>> <</if>><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> <<if random(1, 1000) lte (currentSkillValue('science') + 100)>> <<if currentSkillValue('science') gte 400>> You try to work out how to operate the machine. There's a logic to it, and through trial and error you discover how to turn up the aphrodisiac. Without warning, an alarm blares. The screen now reads "<span class="red">WARNING Aphrodisiac ministration active: 2000%</span>". You hear shouting. <br><br> <<else>> You try to work out how to operate the machine. You resort to pushing buttons and turning dials at random. Without warning, an alarm blares. The screen now reads "<span class="red">WARNING Aphrodisiac ministration active: 2000%</span>". You hear shouting. <br><br> <</if>> <<link [[Next|Asylum Escape]]>><</link>> <br> <<else>> You try to work out how to operate the machine, but it doesn't respond to anything. <br><br> <<if $asylumstate is "sleep">> <<link [[Try again (1:00)|Asylum Cameras]]>><<pass 60>><</link>> <br> <<link [[Stop|Asylum]]>><</link>> <br> <<else>> You hear voices outside the room. They pass by, but you'll be discovered soon if you stay. You sneak out. <br><br> <<link [[Next|Asylum]]>><</link>> <br> <</if>> <</if>><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> You return to the patient area, taking cover in alcoves whenever frantic security run by. You arrive, and behold a scene of chaos. Cell doors stand open, their occupants loose. Some members of security have already fallen, their uniforms stripped. Several patients assault each one. Their colleagues try to rescue them, but their batons are no match for the patients' numbers and lust. Many of the patients satisfy themselves with the fallen security personnel, but others fuck each other on tables, chairs or just the floor. <br><br> You look out the window. The towers are unmanned and the patrols missing as all hands arrive to contain the threat. Doctor Harper enters from a door opposite, surrounded by security. Now's your chance. <br><br> You run through the front door unobstructed, and across the grounds. You climb the fence and escape into the forest. <br><br> <<endevent>> <<asylumescape>> <<badEndTrackingEnd "Asylum" { reason: "asylumSabotage" }>> <<link [[Next|Forest]]>><<set $forest to 100>><</link>> <br><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> You squeeze beneath a chair in the recreation room and wait. The lights turn off, leaving you alone in the dark. <br><br> <<endevent>> <<link [[Next|Asylum]]>><</link>><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> <<if $rng gte 71>> Harper leads you and the other patients indoors, to the showers. "The water should be on," <<he>> says. "Hygiene is important. I want to see everyone wash." <br><br> <<He>> rests a hand on your shoulder as the other patients strip. "As I said, hygiene is important. You wouldn't mind if I take care to personally ensure yours is up to standard?" <br><br> <<link [[Accept|Asylum Shower Accept]]>><<strip>><<wash>><<stress 6>><<arousal 1800>><<set $suspicion -= 1>><<npcincr Harper love 1>><</link>><<exhibitionist1>><<gstress>><<garousal>><<lsuspicion>> <br> <<link [[Refuse|Asylum Shower Refuse]]>><<set $suspicion += 1>><<npcincr Harper love -1>><</link>><<gsuspicion>> <br> <<else>> Harper leads you and the other patients indoors, to the showers. "The water should be on," <<he>> says. "Hygiene is important. I want to see everyone wash." <br><br> Most of the patients are used to this, and strip without a problem. Some hesitate. Harper sends the orderlies to help them out of their clothes. <br><br> <<link [[Strip and find somewhere secluded|Asylum Shower Secluded]]>><<strip>><<wash>><</link>><<exhibitionist1>> <br> <<if hasSexStat("exhibitionism", 2)>> <<link [[Strip and wash around others|Asylum Shower Wash]]>><<strip>><<wash>><</link>><<exhibitionist2>> <br> <</if>> <<link [[Sneak away|Asylum]]>><<endevent>><<suspicion 5>><</link>><<ggsuspicion>> <br> <</if>><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> You shake your head. Harper frowns, but doesn't pressure you. <<He>> notices some of the other patients hesitate to undress. <<He>> sends the orderlies to help them out of their clothes. <br><br> <<link [[Strip and find somewhere secluded|Asylum Shower Secluded]]>><<strip>><<wash>><</link>><<exhibitionist1>> <br> <<if hasSexStat("exhibitionism", 2)>> <<link [[Strip and wash around others|Asylum Shower Wash]]>><<strip>><<wash>><</link>><<exhibitionist2>> <br> <</if>> <<link [[Sneak away|Asylum]]>><<endevent>><<suspicion 5>><</link>><<ggsuspicion>> <br><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> You nod. Harper smiles and begins to disrobe you. <<His>> movements are clinical. <<covered>> <<He>> folds your clothes in a neat pile and picks up a sponge as you step under the shower. <<exhibitionism1>> You stand still as <<he>> scrubs your body from top to bottom, focusing first on your neck, arms, torso, stomach, back, legs, then up to your butt. <<He>> scrubs more softly. You try to breathe normally. <br><br> <<He>> presses the sponge against your <<genitals>>. You stifle a yelp. <<He>> stands right behind you, making sure no one else can see what is happening. Using the sponge <<he>> strokes and massages you, sending waves of pleasure up your spine. <br><br> In a moment of weakness you release a sensual sigh. <<He>> places two fingers over your mouth, signalling that you need to keep quiet. <br><br> <<if $arousal gte $arousalmax>> <<orgasm>> You arch your back in <<his>> grip, stifling a moan as <<he>> continues to gently massage you mid-orgasm. <br><br> <</if>> By the time <<he>> stops, your legs feel weak. <<He>> pecks you on the cheek as the bathing session comes to a close. <br><br> <<link [[Next|Asylum]]>><<clotheson>><<endevent>><</link>> <br><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> You strip slowly, just fast enough to keep the orderlies at bay. By the time your <<lewdness>> is exposed the other patients are already in the showers proper. You follow after them, but find somewhere secluded where you won't be watched. You wash quickly, and get dressed before the other patients finish. <<exhibitionism1>> <<endevent>> <<link [[Next|Asylum]]>><<clotheson>><</link>> <br><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> <<generate2>><<generate3>> <<if $o_long_and_beautiful gte 1 and $o_long_and_beautiful lte 7 and $rng % 3 == 0>><<set $o_long_and_beautiful += 1>> As you strip, two orderlies, a <<person2>><<person>> and a <<person3>><<person>> march toward a slender girl with long, messy, matted hair sat near you. <br> "Strip," the <<person>> barks. "Now." <br> She doesn't move. The <<person2>><<person>> grabs her shoulder and yanks at her top, at which the girl abruptly screeches and claws at the <<persons>> face. The <<person3>><<person>> quickly grabs the girl's hair, firmly yanks back her head and drags her back to the floor. The long-haired girl goes down hard, but then flails frantically on the ground, screeching and clawing in every direction as they struggle to pin her down. <br> You glance at Doctor Harper who is looking anywhere but here right now. <br> With the girl pinned, the orderlies start to remove her clothes. Just as abruptly the girl falls silent. Looking down at her, her body has gone limp, tears stream from her eyes as they strip her. <br> Dr Harper is still studiously looking elsewhere. <br> "Why do you make us do this every time," the <<person2>><<person>> spits as <<he>> removes the last of the girl's underwear. "You think we get off on this?" <br> "And wash your damn hair," the <<person3>><<person>> adds. They shake their heads. <br> The girl lies completely nude and completely unmoving, tears streaming from empty, vacant eyes. <br><br> "What are you looking at?" the <<person2>><<person>> glares at you. "Do YOU need our help as well?" <br> <<if $speech_attitude is "meek">> "Sorry," you say, quickly stripping. You run to Harper. "Doctor, is- is it okay if I stay to help that girl. I- I think I know her." <br> Harper looks confused at you for a moment. "Yes. Yes, okay. Just make sure you don't miss your wash. Hygiene is important." <<elseif $speech_attitude is "bratty">> "DOCTOR Harper," you shout. Harper turns. "I think your two geniuses here <<if currentSkillValue('science') gte 600>> can't recognise a post-traumatic trigger reaction. <<else>> are just making things worse. <</if>> Can I stay here and look after my friend?" <br> Harper looks confused at you for a moment. "Yes. Yes, okay. Just make sure neither of you miss your wash. Hygiene is important." <<else>> You quickly finish stripping and jog across to Harper. <br> "Doctor, please. Look at that girl. <<if currentSkillValue('science') gte 600>>That looks like a post-traumatic trigger reaction and <</if>>I think those two are just making things worse. Is it okay if I stay back to help her. I- I think I kind of know her." <br> Harper looks curious for a moment. "Yes. Yes, okay. Just make sure you don't miss your wash. Hygiene is important." <</if>> <br> Harper signals for the orderlies to leave you alone. <<exhibitionism2>> <<endevent>> <<link [[Next|Asylum Shower Wash Hair]]>><</link>> <<else>> You strip and enter the showers proper. You stand in the middle of a large room and wash alongside the other patients. You notice a <<person2>><<person>> and <<person3>><<person>> checking you out, but most don't pay you any attention. You head back to your clothes, dry yourself and get dressed. <<exhibitionism2>> <<endevent>> <<link [[Next|Asylum]]>><<clotheson>><</link>> <br> <</if>><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> <<pass 25>> Completely naked, you sit for a time with the slim, long-haired girl. You don't touch her, you just keep quietly talking to her. <<if currentSkillValue('english') gte 500>> After a time, you notice her looking at you. Your eloquence seems to be getting through. <<if $o_long_and_beautiful lt 9>> <<set $o_long_and_beautiful += 1>> <</if>> <<else>> After a time, she seems to come round. <</if>> <br><br> Finally, she whispers: "Okay." Together you head to the shower and wash. It is just you two, everyone else finished some time ago. The long-haired girl <<if $o_long_and_beautiful gte 6>> talks to you a little about her life in the asylum as she washes. <<elseif $o_long_and_beautiful gte 4>> washes properly. A few times you think she might be smiling at you. <<else>> no longer seems to notice you as she quickly washes. <</if>> You head back to your clothes, dry yourself and get dressed. <br><br> <<link [[Next|Asylum]]>><<clotheson>><</link>> <br><<if $sexstart is 1>> <<set $sexstart to 0>> <<consensual>> <<set $consensual to 1>> <<neutral 1>> <<maninit>> <<promiscuity1>> <<elseif $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<maninit>> <</if>> <<effects>> <<effectsman>><<man>> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Asylum Harper Sex Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Asylum Harper Sex]]>><</link>></span><<nexttext>> <</if>><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> <<if $enemyhealth lte 0>> You push <<him>> away from you. <<He>> looks angry, but soon regains <<his>> composure. "You still have some issues with anger management," <<he>> says. "But that's not why you were here. I'd like to keep seeing you on Fridays, at the hospital. There's a vehicle waiting to take you back to town. Be well." <br><br> <<elseif $enemyarousal gte $enemyarousalmax>> <<ejaculation>> <<He>> lies on top of you for a moment, breathing deeply. <<He>> steps away and fixes <<his>> clothing. "T-there's a vehicle waiting to take you back to town. I'd like to keep seeing you on Fridays, at the hospital. Be well." <<else>> <<He>> looks angry, but soon regains <<his>> composure. "If only I could keep you until I finished the treatment," <<he>> sighs. "There's a vehicle waiting to take you back to town. I'd like to keep seeing you on Fridays, at the hospital. Be well." <</if>> <br><br> <<clothesontowel>> <<endcombat>> <<if $suspicion gte 80>> A group of orderlies lead you away from Harper's office, through the main area of the asylum. <<elseif $suspicion gte 20>> A pair of orderlies lead you away from Harper's office, through the main area of the asylum. <<else>> A nurse leads you away from Harper's office, through the main area of the asylum. <</if>> <<if $asylumstatus gte 80>> The other patients wave you goodbye. <<elseif $asylumstatus gte 20>> The other patients ignore you. <<else>> The other patients sneer at you. <</if>> You go through a staff door, then through a larger double door and into a waiting car. <br><br> The car starts, and drives through the iron gates into the forest. It's a dark, overgrown road. You don't move very fast. The driver says nothing. <br><br> <<pass 60>> You emerge from the wood far from town, but the road curves north through moor and farmland. You soon arrive back at civilisation. The bustle of Harvest Street greets you. You continue until the orphanage comes into view. <br><br> <<asylumend>> <<endevent>> <<link [[Next|Asylum Return]]>><</link>><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> You shove the doctor away from you. <<He>> looks angry, but soon regains <<his>> composure. "You still have some issues with anger management," <<he>> says. "But that's not why you were here. I'd like to keep seeing you on Fridays, at the hospital. There's a vehicle waiting to take you back to town. Be well." <br><br> <<if $suspicion gte 80>> A group of orderlies lead you away from Harper's office, through the main area of the asylum. <<elseif $suspicion gte 20>> A pair of orderlies lead you away from Harper's office, through the main area of the asylum. <<else>> A nurse leads you away from Harper's office, through the main area of the asylum. <</if>> <<if $asylumstatus gte 80>> The other patients wave you goodbye. <<elseif $asylumstatus gte 20>> The other patients ignore you. <<else>> The other patients sneer at you. <</if>> You go through a double door and into a waiting car. <br><br> The car starts, and drives through the iron gates into the forest. It's a dark, overgrown road. You don't move very fast. The driver says nothing. <br><br> <<pass 60>> You emerge from the wood far from town, but the road curves north through moor and farmland. You soon arrive at civilisation. The bustle of Harvest Street greets you. You continue until the orphanage comes into view. <br><br> <<asylumend>> <<endevent>> <<link [[Next|Asylum Return]]>><</link>><<set $outside to 0>><<set $location to "home">><<effects>> <<if C.npc.Robin.init is 1 and $robinmissing is 0>> <<if C.npc.Robin.trauma gte 80>> You enter the orphanage and head to your room. You don't meet anyone. There's a small cake sat on the windowsill with a note attached. <br><br> "Welcome home! <br> - Robin" <br><br> <<elseif C.npc.Robin.trauma gte 20>> You enter the orphanage and head to your room. You find <<npc Robin>><<person1>>Robin waiting. <<He>> jumps to <<his>> feet and hugs you. "Bailey said the hospital phoned," <<he>> says. "They told us you were coming back." <<He>> pulls away and smiles. "They wouldn't let me visit. I got you something." <<He>> drops to <<his>> knees and pulls something out from under your bed. It's a small cake. <br><br> "I had to hide it." <<He>> hugs you again. "Welcome home. I missed you." <br><br> You chat with <<him>> awhile. <<He>> asks about where you stayed. What your room was like, if the food was good, if the people were nice. You're not sure how much to tell <<him>>. "I need to go," <<he>> says after a while. "Bailey gave me chores." <<He>> waves goodbye as <<he>> leaves. <<ltrauma>><<lstress>><<trauma -12>><<stress -12>> <br><br> <<else>> A face appears in a window as you approach the orphanage. It's Robin. <<npc Robin>><<person1>><<He>> runs at you once you're inside, and almost knocks you over with <<his>> hug. "Bailey said the hospital phoned," <<he>> says. "They told us you were coming back." <<He>> pulls away and smiles. "They wouldn't let me visit. I got you something. Come with me." <<He>> takes your hand and tugs you after <<him>>. <br><br> <<He>> drops to <<his>> knees once in your room, and pulls something out from under your bed. It's a small cake. "I had to hide it." <<He>> hugs you again. "Welcome home. I missed you." <br><br> You chat with <<him>> awhile. <<He>> asks about where you stayed. What your room was like, if the food was good, if the people were nice. You're not sure how much to tell <<him>>. "I need to go," <<he>> says after a while. "Bailey gave me chores." <<He>> waves goodbye as <<he>> leaves. <<ltrauma>><<lstress>><<trauma -12>><<stress -12>> <br><br> <</if>> <<else>> You enter the orphanage and head to your room. You don't meet anyone. <br><br> <</if>> <<asylumend>> <<badEndTrackingEnd "Asylum" { reason: "asylumDischarged" }>> <<endevent>> <<link [[Next|Bedroom]]>><</link>> <br><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> You point at the <<persons>> hiding place. The <<person2>><<person>> crouches beside it and reaches in, pulling the struggling <<person1>><<person>> out by the arm. "Doctor Harper said you need to stay," <<person2>><<he>> says as <<he>> drags <<person1>><<him>> away. "It's for your own good." <br><br> <<endevent>> <<link [[Next|Asylum]]>><</link>> <br><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> The <<person2>><<person>> frowns at you, but doesn't push the matter. Once gone, the <<person1>><<person>> emerges and gives you a thankful bow. <br><br> <<endevent>> <<link [[Next|Asylum]]>><</link>> <br><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> You pull the <<person1>><<persons>> arm away from the <<person2>><<person>>. They both look shocked. "Don't touch me," the <<person1>><<person>> says. "Just who do you think you are?" The <<person2>><<person>> gives you a grateful smile. <br><br> <<endevent>> <<link [[Next|Asylum]]>><</link>> <br><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> You smile back at the <<person>>. <<He>> walks over and you have a pleasant chat. <<promiscuity1>> <<link [[Say goodbye|Asylum]]>><<endevent>><</link>> <br> <<if hasSexStat("promiscuity", 2)>> <<link [[Seduce|Asylum Seduce]]>><</link>><<promiscuous2>> <br> <</if>><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> <<set $seductiondifficulty to 6000>> <<seductioncheck>> <<seductionskilluptext>> <<seductionskilluse>> You lean closer to the <<person>>. "There are a lot of quiet places here," you whisper. "Who knows what one could get up to." <<promiscuity2>> <<if $seductionrating gte $seductionrequired>> <<He>> glances around, and takes you by the hand. <<He>> leads you to an empty room, then turns and embraces you. <br><br> <<link [[Next|Asylum Sex]]>><<set $sexstart to 1>><</link>> <br> <<else>> "I-It was nice meeting you," <<he>> says. <<He>> walks away. <br><br> <<endevent>> <<link [[Next|Asylum]]>><</link>> <br> <</if>><<if $sexstart is 1>> <<set $sexstart to 0>> <<consensual>> <<set $consensual to 1>> <<neutral 1>> <<maninit>> <<set $enemytrust += 50>> <</if>> <<effects>> <<effectsman>> <<man>> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Asylum Sex Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Asylum Sex]]>><</link>></span><<nexttext>> <</if>><<set $outside to 1>><<set $location to "asylum">><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<ejaculation>> "The doctor told me to be more accepting of advances," <<he>> says. "I've been missing out." <br><br> <<He>> kisses your cheek and departs. <br><br> <<clotheson>> <<endcombat>> <<elseif $enemyhealth lte 0>> You shove the <<person>> away from you and escape into the hallway. <br><br> <<clotheson>> <<endcombat>> <<elseif $finish is 1>> "The doctor told me to be more accepting of advances," <<he>> says. "I've been missing out." <br><br> <<He>> kisses your cheek and departs. <br><br> <<clotheson>> <<endcombat>> <</if>> <<link [[Next|Asylum]]>><</link>><<if $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<maninit>> <</if>> <<effects>> <<effectsman>> <<man>> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Asylum Cell Rape Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Asylum Cell Rape]]>><</link>></span><<nexttext>> <</if>><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<ejaculation>> "Don't go whining to no one," the <<person1>><<person>> says. "Not that they'll believe you." The pair laugh as the cell door locks with a click. <<tearful>> you lie back on the bed. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Asylum Cell]]>><</link>> <<else>> The <<group>> recoil in pain. "Come on," the <<person2>><<person>> says. "There are easier <<girls>> than this." The cell door locks with a click. <<tearful>> you lie back on the bed. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Asylum Cell]]>><</link>> <</if>><<effects>> <<if $speech_attitude is "meek">> "O-Okay," you say. "You can show me." <<elseif $speech_attitude is "bratty">> "Sure," you say. "I'll take a look." <<else>> "Okay," you say. "You can show me." <</if>> <br><br> The <<person>> hesitates, then unfolds <<his>> gown, revealing <<his>> <<if $pronoun is "m">> <<if $NPCList[0].penis isnot "none">> <<print $NPCList[0].penisdesc>>. <<else>> pussy. <</if>> <<else>> <<if $NPCList[0].penis isnot "none">> <<print $NPCList[0].breastsdesc>> and <<print $NPCList[0].penisdesc>>. <<else>> <<print $NPCList[0].breastsdesc>>. <</if>> <</if>> <<He>> shuts <<his>> eyes and stands there, hands clutching <<his>> sides. <<He>> counts under <<his>> breath. <br><br> With a sigh, <<he>> bends over and retrieves <<his>> gown, wrapping it around <<him>> with haste. "Th-thank you," <<he>> says before hurrying away. <br><br> <<endevent>> <<link [[Next|Asylum]]>><</link>> <br><<effects>> You shake your head. The <<person>> looks relieved for a moment, but <<his>> ordeal isn't over. <<He>> leaves to find someone else to offer <<himself>> to. <br><br> <<endevent>> <<link [[Next|Asylum]]>><</link>> <br><<effects>> <<if $speech_attitude is "meek">> "O-Okay," you say, loud enough for the staff to hear. "You can show me." <<elseif $speech_attitude is "bratty">> "Sure," you say, loud enough for the staff to hear. "I'll take a look." <<else>> "Okay," you say, loud enough for the staff to hear. "You can show me." <</if>> You close your eyes. <br><br> You hear the shuffle of the <<persons>> gown fall to the floor. <<He>> starts counting under <<his>> breath. <<He>> reaches ten, then you hear another shuffle. <br><br> "Thank you!" <<he>> says. You open your eyes. The <<person>> smiles, looking relieved. "Thank you." <<He>> hurries away. <br><br> <<endevent>> <<link [[Next|Asylum]]>><</link>> <br><<effects>> <<if $speech_attitude is "meek">> "O-Okay," you say. "You can show me." <<elseif $speech_attitude is "bratty">> "Sure," you say. "I'll take a look." <<else>> "Okay," you say. "You can show me." <</if>> You pretend to close your eyes, though you really keep them a little open. Enough to see. <br><br> The <<person>> hesitates, then unfolds <<his>> gown, revealing <<his>> <<if $pronoun is "m">> <<if $NPCList[0].penis isnot "none">> <<print $NPCList[0].penisdesc>>. <<else>> pussy. <</if>> <<else>> <<if $NPCList[0].penis isnot "none">> <<print $NPCList[0].breastsdesc>> and <<print $NPCList[0].penisdesc>>. <<else>> <<print $NPCList[0].breastsdesc>>. <</if>> <</if>> <<He>> shuts <<his>> eyes and stands there, hands clutching <<his>> sides. <<He>> counts under <<his>> breath. <br><br> With a sigh, <<he>> bends over and retrieves <<his>> gown, wrapping it around <<him>> with haste. "Thank you!" <<he>> says. You pretend to open your eyes. The <<person>> smiles, looking relieved. "Thank you." <<He>> hurries away. <br><br> <<link [[Next|Asylum]]>><<endevent>><</link>> <br><<set $outside to 1>> <<effects>> Each patient is given a bed of soil to work as they please. Many are untended, but some hold small, beautiful displays. <br><br> <<plot_effects>> <<if $asylum_plot_intro is 1>><<unset $asylum_plot_intro>> <<plots_init asylum 1 earth 3 small>> <</if>> <<display_plot asylum>> <<if !$plants_known.includes("poppy")>> <<icon "tending/poppy.png">> <<link [[Search for seeds (0:30)|Asylum Garden Seeds]]>><<set $plants_known.push("poppy")>><<pass 30>><</link>> <br> <<elseif $rng % 4 == 0 and $o_long_and_beautiful gte 1 and $o_long_and_beautiful lte 7>>/*1 in 4 chance if in right stage*/ <<if $o_long_and_beautiful lt 9>><<set $o_long_and_beautiful += 1>><</if>> <br> A girl with long, messy, matted hair seems to be watching from a plot nearby. <<if currentSkillValue('tending') gte 600>>She might be impressed by your tending skills. It's hard to tell.<<if $o_long_and_beautiful lt 9>><<set $o_long_and_beautiful += 1>><</if>><</if>> <</if>> <br> <<getouticon>><<link [[Leave|Asylum]]>><<handheldon>><<endevent>><</link>> <br><<effects>> Much of the grounds are untended, with wild poppies growing from the exterior fence all the way up to the building. You gather some seeds. <br><br> <span class="gold">You can now grow <<icon "tending/poppy.png">> poppies.</span> <br><br> <<link [[Next|Asylum Garden]]>><</link>> <br><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> <<set $phase to 0>> You agree to go with them. The pair lead you to a door marked 'staff only,' where more orderlies are waiting. <br> They open the door, leading you into a bright but empty cell. A large mirror covers one wall. <br><br> <<link [[Next|Asylum Fake Treatment]]>><</link>><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> <<set $phase to 1>> You refuse to go with them, and start to walk away. <<if $physiqueSuccess>> The <<person2>><<person>> tries to grab you, <span class="green">but you shove <<him>> away and escape into the midst of a group of patients.</span> <br><br> The orderlies don't seem ready to make a scene in front of the other <<if $asylumstatus gte 20>> <<if $asylumstatus gte 75>> patients, and the other patients gather around you to form a protective shield.<<suspicion 2>> The orderlies <<else>> patients. They <<suspicion 1>> <</if>> scowl and walk away.<<gsuspicion>> <br><br> <<link [[Next|Asylum]]>><<endevent>><</link>> <<else>> patients, but then <span class="red">all the other patients move away from you.</span> <<if $speech_attitude is "bratty">> As you try to move with the crowd, another patient trips you and leaves you sprawled on the floor. <</if>> The <<person2>><<person>> and the <<person1>><<person>> grab you and together lead you to a door marked 'staff only' where more orderlies wait. <br> They open the door, leading you into a bright but empty cell. A large mirror covers one wall. <br><br> <<link [[Next|Asylum Fake Treatment]]>><</link>> <</if>> <br> <<elseif $asylumstatus gte 75>> <span class="red">The <<person2>><<person>> grabs you and tackles you to the floor.</span> The <<person>> is grappling you into an armlock, when, <span class="green">with a yell, <<he>> is lifted into the air and hurled across the room.</span> You see the <<person1>><<person>> also backing away as a number of patients gather around you. <br> After a moment, the <<person>> scowls at you and walks away. <<suspicion 2>><<gsuspicion>> <br><br> The other patients nod, smile and pat you on the shoulder as they go back to what they were doing. <br><br> <<link [[Next|Asylum]]>><<endevent>><</link>> <br> <<else>> <span class="red">The <<person2>><<person>> grabs you and tackles you to the floor.</span> Before you can recover <<he>> has you painfully armlocked, and together they lead you to a door marked 'staff only' where more orderlies are waiting.<<gpain>><<pain 2>> <br> They open the door, leading you into a bright but empty cell. A large mirror covers one wall. <br><br> <<link [[Next|Asylum Fake Treatment]]>><</link>> <br> <</if>><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> "Doctor Harper's behind that one-way mirror," the <<person1>><<person>> says, pointing at the mirror. "Observing and taking complete notes of everything that happens here. Doctor Harper stressed that this is an important part of your assessment so you need to be on your best behaviour. <<if $phase is 1>>Especially after the way you behaved just now.<</if>> Understood?" <br> <<if $speech_attitude is "meek">> "Yes, <<sir>>," you say. "I understand." <<elseif $speech_attitude is "bratty">> You glare at them, saying nothing. <<else>> You nod. <</if>> <br><br> <<set $ft_count to 5>> The <<person2>><<person>> <<if $worn.upper.name isnot "straightjacket">> <<asylumBind "fake">> strips you and then puts a straightjacket on you, binding your arms. <<else>> checks your straightjacket. <</if>> <<if $rng gte 66 and $lactating gte 1 and $settings.breastFeedingEnabled and $milk_amount gte 500>> <<set $ft_event to "milk">><<person2>> <br><br> You are led to the wall opposite the mirror. You notice a number of steel chain-links embedded in the wall at different heights. The <<person1>><<person>> turns you around so you are facing into the room. A large number of orderlies have gathered near the door. The <<person>> pushes you back against the wall, while the <<person2>><<person>> clips the back of your straightjacket to the links on the wall - once at the waist and once at the neck - locking you standing in place. The <<person>> unfastens something at the side of your straightjacket, and the <<person1>><<person>> pulls at the front. A section comes away, leaving your arms bound but your <<if !$worn.under_upper.type.includes("naked")>> <<undertop>> exposed. The <<person>> grabs your $worn.under_upper.name and pulls it up, fully exposing your <<breasts>>. <<else>> <<breasts>> fully exposed. <</if>> <<He>> gives one of your breasts a squeeze and a jet of milk squirts out. <br><br> "A number of our patients suffer from eating disorders," the <<person>> says. "As part of their treatment, and yours, in a few moments, they will be led into this room and will drink from you. Doctor Harper says it's very important for you to relax and think about how you are helping to nourish and sustain others. This hood will hide your face to protect your dignity." <br><br> The hood is placed over your head, plunging you into darkness. <br> Almost immediately, lips clamp around your <<nipples>>. <br><br> <<link [[Next|Asylum Fake Treatment Milked]]>><<set $ft_count to 8>><</link>> <<elseif $rng gte 33 and !playerChastity()>> <<set $ft_event to "masturbation">> <<He>> <<if !$worn.under_lower.type.includes("naked")>> removes your $worn.under_lower.name, and<<underlowerstrip>> <</if>> leads you in front of the mirror. A chair is placed behind you. <br> "Have a seat," the <<person1>><<person>> says as hands pull you down. The <<person2>><<person>> attaches your straightjacket to the chair as the <<person1>><<person>> ties your calves and ankles to the chair legs, forcing your knees apart. <br><br> <<generate3>><<generate4>><<generate5>> <<if $o_long_and_beautiful gte 1 and $o_long_and_beautiful lte 7>><<set $o_long_and_beautiful += 1>> /*Modifies person 4 enough */ <<set $NPCList[3].description to "long-haired">><<set $NPCList[3].adult to 0>><<set $NPCList[3].gender = "f">><<set $NPCList[3].pronoun = "f">> <</if>> A moment later a <<person4>><<person>> is led in and set up similarly beside you. Finally, a <<person5>><<person>> is set up similarly beside <<person4>><<him>>. <br><br> <<person1>>"This is a trust exercise. Despite your obvious vulnerability, you need to learn that the world doesn't want to hurt you. Mostly it just wants to make you feel good. All of you believe you are victims. Instead you need to learn to accept approaches as... opportunities." <br> The <<person4>><<person>> next to you struggles against <<his>> bindings. <br> A <<person3>><<person>> walks behind the chair-bound <<person5>><<person>>. The <<person2>><<person>> moves behind the chair-bound <<person4>><<person>> next to you. Finally, the <<person1>><<person>> moves behind you. <br><br> "Begin." <br><br> <<link [[Next|Asylum Fake Treatment Masturbation]]>><<set $ft_count to 20>><<set $ft_five to random(11,15)>><<set $ft_four to random(5,10)>><</link>> <<else>> <<set $ft_event to "bukkake">> You are led to the wall opposite the mirror. You notice a number of steel chain-links embedded in the wall at different heights. The <<person>> turns you around so you are facing into the room. A large number of orderlies have gathered near the door. The <<person>> pushes you down to a kneeling position, backed against the wall, while the <<person2>><<person>> clips the back of your straightjacket to the links on the wall and binds your feet, fixing you in place. <br><br> "The doctors believe an irrational phobia of sexual fluids is driving your condition," the <<person1>><<person>> tells you. "Our staff have kindly agreed to help with an exposure therapy approach." <br> <<if maleChance() gte 1 and $settings.maleNPCVaginaChance lt 100 or maleChance() lt 100 and $settings.femaleNPCPenisChance gte 1>> Glancing back you see a number of the orderlies already have their dicks out. <</if>> <br><br> The <<person>> <<if $NPCList[0].penis isnot "none">>unzips and pulls out <<his>> erect cock,<<else>>pulls down <<his>> orderly uniform, exposing <<his>> already wet pussy,<</if>> "Let's begin." <br><br> <<link [[Next|Asylum Fake Treatment Bukkake]]>><</link>> <</if>><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> <<pass 5>> <<set _they_drink to either("Anonymous mouths continue to hungrily suck milk from you.","Hungry mouths lap at your nipples.","Mouths suck and massage milk from your teats.","Mouths clamp to your breasts as unseen people drink from you.","They suck milk from you insatiably.")>> <<if $ft_count is 8>> They drink thirstily from your breasts. After a time, the mouth on the <<print either("left","right")>> finishes and leaves. Another mouth quickly replaces them. A minute or so later, this happens on the other side. <<garousal>><<arousal 200 "breasts">> <<if $arousal gte $arousalmax>> <<orgasm>> <</if>> <br><br> <<milk_amount -200>> <<link [[Next|Asylum Fake Treatment Milked]]>><<set $ft_count -= 1>><</link>> <<elseif $ft_count gte 1>> <<if $milk_amount gte 300>> _they_drink <<garousal>><<arousal 250 "breasts">> <<set _rand to random(1,10)>> <br> <<if _rand is 1>> An anonymous hand <<print either("gently","roughly","rhythmically","persistently","sensuously")>> <<print either("fondles","rubs","teases")>> your <<genitals>>. <<garousal>><<arousal 200 "genitals">> <<elseif _rand is 2>> One of them bites your <<nipple>>. <<ggpain>><<pain 8>> <<elseif _rand is 3>> A tongue playfully circles and teases your <<nipple>> between sucks. <<ggarousal>><<arousal 400 "breasts">> <<elseif _rand is 4>> Someone flicks your <<nipple>>. <<gpain>><<pain 3>> <<elseif _rand is 5>> The people to your left and right seem to be working together as their mouths suck and squeeze your <<nipples>> in perfect rhythm. <<ggarousal>><<arousal 400 "breasts">> <<elseif _rand is 6>> One mouth barely drinks, preferring to blow and then lick at your <<nipple>>. <<ggarousal>><<arousal 500 "breasts">> <<elseif _rand is 7>> A hand painfully slaps your breast. <<ggpain>><<pain 8>> <br> "Hey! Take it easy," a voice says. <br> "Sorry." <br> <<elseif _rand is 8>> <<set _random_milk to random(50, 100)>> As one sucks, they squeeze your <<breasts>> with their hands to force out more milk.<<milk_amount `-_random_milk`>> <</if>> <br> <<if $arousal gte $arousalmax>> <<orgasm>> Mouths clamp to your <<nipples>>, sucking hard as you cum. <</if>> <br> <<set _random_milk to random(200,300)>> <<link [[Next|Asylum Fake Treatment Milked]]>><<milk_amount `-_random_milk`>><<set $ft_count -= 1>><</link>> <<elseif $milk_amount gte 50>> As yet another greedy mouth tries to <<print either("suck","suck and squeeze")>> the milk from your breasts you start to run dry. Soon you are getting close to dry on both sides. Hands and mouths work harder to squeeze and suck milk from you. <<ggarousal>><<arousal 400 "breasts">><<gpain>><<pain 3>> <br> <<if $arousal gte $arousalmax>> <<orgasm>> <</if>> <br><br> <<set _random_milk to random(200,300)>> <<link [[Next|Asylum Fake Treatment Milked]]>><<milk_amount `-_random_milk`>><<set $ft_count -= 1>><</link>> <<else>> Even though you are nearly dry, thirsty mouths insistently <<print either("suck at","pull at","try to suck milk from")>> your <<breasts>>. Your nipples feel sore and tender as they suck the last of the milk from you. <<ggarousal>><<arousal 500 "breasts">><<gpain>><<pain 8>> <br> <<if $arousal gte $arousalmax>> <<orgasm>> <</if>> <br><br> <<link [[Next|Asylum Fake Treatment Milked]]>><<set $milk_amount to 0>><<set $ft_count to 0>><</link>> <</if>> <<else>> <<if $milk_amount gt 0>>Finally, one mouth leaves and none replace it. The mouth on the other side drinks for another minute or so, before also leaving. <<ggarousal>><<arousal 400 "breasts">> <<else>> No more come to you. <</if>> <br> <<if $arousal gte $arousalmax>> <<orgasm>> <<elseif $arousal gte ($arousalmax / 5) * 4>> Your bare nipples tingle in the air. <br> <<if $speech_attitude is "meek">> "More," you whimper. "Please, more." <br> <</if>> <</if>> Your breasts feel a lot lighter. <<gtrauma>><<trauma 6>><<llstress>><<stress -18>> <br><br> "Uhm... okay," the <<person>> says loudly. "Get these patients out." <br> The door opens and <<if currentSkillValue('science') gte 600 or currentSkillValue('skulduggery') gte 600>>closes suspiciously quickly.<<else>>closes.<</if>> <br><br> The hood lifts off your head and the straightjacket is closed to cover your <<breasts>>. As the <<person2>><<person>> releases you from the wall, the <<person1>><<person>> talks to you. <br><br> <<link [[Next|Asylum Fake Treatment Finish]]>><<unset $ft_count>><</link>> <</if>><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> <<pass 5>> <<set _respond to either("grunt","gasp","groan","inhale sharply","pant","moan")>> <<set _ly to either("busily","energetically","frantically","resolutely","fanatically","quickly","furiously","relentlessly")>> <<set _ly2 to either("busily","energetically","frantically","resolutely","fanatically","quickly","furiously","relentlessly")>> <<set _stimulates_him to either("milks <<his>> cock","rubs <<his>> cock","fondles <<his>> cock","plays with <<his>> dick","milks <<his>> dick")>> <<set _stimulates_her to either("fingers <<his>> pussy","rubs <<his>> quim","fondles <<his>> quim","fingers <<his>> cunt","fingers <<his>> quim")>> <<set _is_done to either("whimpers gently.","continues to pant.","is still breathing heavily.","sofly whimpers.")>> <<if $ft_count lte ($ft_four - 2)>><<set _crowd = "Some orderlies are still watching. Others are openly exchanging money. A few have left.">> <<elseif $ft_count lt $ft_four>><<set _crowd="Some orderlies are cheering. They are again exchanging money. Do they gamble on this?">> <<elseif $ft_count is $ft_four>><<set _crowd="A number of orderlies shout at the <<person4>><<person>> in disbelief. Others cheer.">> <<elseif $ft_count lt ($ft_five - 2)>><<set _crowd="Some of the orderlies shout encouragement to you. Others shout to the <<person4>><<person>>.">> <<elseif $ft_count lt $ft_five>><<set _crowd="Some orderlies seem disappointed, others seems amused. You think you see money exchanging hands.">> <<elseif $ft_count is $ft_five>><<set _crowd="Several orderlies groan or shout in disappointment. More cheer and laugh.">> <<elseif $ft_count gt 18>><<set _crowd="The crowd of orderlies shout encouragement at you, the <<person4>><<person>> and the <<person5>><<person>>.<br>'Hang in there!'<br>'You can do it.'<br>">> <<elseif $ft_count is 0>> There is an air of disappointment as the <<person1>><<person>> leaves you. <<elseif $ft_count%2>><<set _crowd = either("The crowd of orderlies watch.","The crowd jostle to get a better view.","The crowd shouts encouragement.")>> <<else>><<set _crowd = "">> <</if>> <br> <<if $ft_count is 20>> The <<person1>><<person>> grabs you, one hand rubbing your chest, the other reaching for your <<genitals>>. <<arousal 100 "breasts">><<arousal 100 "genitals">> <<if $arousal gte $arousalmax>> <<orgasm>> <<set $ft_count to -10>> <</if>> <br> _crowd <br><br> <<link [[Let yourself enjoy it|Asylum Fake Treatment Masturbation]]>><<arousal 200>><<set $ft_count -=1>><</link>><<garousal>> <br> <<link [[Resist|Asylum Fake Treatment Masturbation]]>><<arousal -100>><<set $ft_count -=1>><</link>> <br> <<elseif $ft_count gte 1>> <<if $ft_count is 19>> The <<person1>><<person>> slips a hand under the straightjacket to tease your <<nipple>>, while the other grabs your <<genitals>>. <<arousal 200 "breasts">><<arousal 100 "genitals">> <<elseif $ft_count gt $ft_five>> <<if $rng>> You hear the <<person4>><<person>> _respond as the <<person2>><<person>> <<person4>><<if $NPCList[0].penis isnot "none">>_stimulates_him.<<else>>_stimulates_her.<</if>> <<else>> You hear the <<person5>><<person>> _respond as the <<person3>><<person>> <<person5>><<if $NPCList[0].penis isnot "none">>_stimulates_him.<<else>>_stimulates_her.<</if>> <</if>> The <<person1>><<persons>> hands continue to work your <<genitals>> and your <<breasts>>.<<arousal 200 "breasts">><<arousal 200 "genitals">> <<elseif $ft_count is $ft_five>> You hear the <<person5>><<person>> moan loudly and see <<if $NPCList[0].penis isnot "none">>a spurt of cum fly toward the mirror before splattering<<else>>squirts of ejaculate splatter<</if>> on the floor. <br> Some of the orderlies cheer. You see them excitedly passing money between each other. <br> The <<person2>><<person>> moves both hands to focus on your <<genitals>> and continues with renewed intensity. <<arousal 600 "genitals">> <<elseif $ft_count gt $ft_four>> <<if $rng>> You hear the <<person4>><<person>> _respond as the <<person2>><<person>> <<person4>>_ly <<if $NPCList[0].penis isnot "none">>_stimulates_him.<<else>>_stimulates_her.<</if>> <</if>> The <<person1>><<persons>> hands continue to _ly2 work your <<genitals>>. <<arousal 600 "genitals">> <<elseif $ft_count is $ft_four>> The <<person4>><<person>> beside you starts to shudder as, silently, <<he>> cums, <<if $NPCList[0].penis isnot "none">>sending a large spurt of cum toward the mirror <<else>>squirting hard <</if>>and making a mess of the floor in front of <<him>>. <br> More orderlies cheer. You see them excitedly passing money between each other. <br> With a sigh, the <<person1>><<person>> eases up on your <<genitals>>. <<arousal 300 "genitals">> <<else>>/*last one standing*/ The <<person1>><<person>> continues working your <<genitals>> with both hands. <<set $ft_count to -20>> <<if $arousal gte $arousalmax>><<set $arousal to 9900>><</if>> <</if>> <<if $arousal gte $arousalmax>> <<orgasm>> <<set $ft_count to -10>> <</if>> <br> _crowd <br><br> <<if $ft_count gte 0 or $ft_count is -20>> <<link [[Let yourself enjoy it|Asylum Fake Treatment Masturbation]]>><<arousal 200>><<set $ft_count -=1>><</link>><<garousal>> <br> <<link [[Resist|Asylum Fake Treatment Masturbation]]>><<arousal -100>><<set $ft_count -=1>><</link>> <br> <<else>> <<link [[Cool off|Asylum Fake Treatment Masturbation]]>><</link>> <br> <</if>> <<else>> <<if $ft_count is 0>> The <<person1>><<person>> finally gives up. <br> "I can't do it," <<he>> says. "<<pShe>> won't cum." <<elseif $ft_count lte -20>> /* you won */ The <<person1>><<person>> finally gives up. <br> "I can't do it," <<he>> says. "<<pShe>> won't cum." <<elseif $ft_count lte -10>> /*someone else won*/ As your orgasm subsides, you hear cheering. You notice the orderlies seem to be exchanging something. <br> The <<person1>><<person>> wanders into the crowd of orderlies, where they hand <<him>> something. <<He>> smiles back at you. A few moments later, the <<person4>><<person>> beside you starts to shudder as, silently, <<he>> cums, <<if $NPCList[0].penis isnot "none">>sending a large spurt of cum toward the mirror <<else>>squirting hard<</if>> and making a mess of the floor in front of <<him>>. <br> More orderlies cheer. You see them excitedly passing things between each other. <</if>> <br><br> Finally, you are released from the chair. The <<person1>><<person>> starts to speak. <br><br> <<link [[Listen|Asylum Fake Treatment Finish]]>><<unset $ft_count>><<unset $ft_five>><<unset $ft_four>><</link>> <</if>><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> <<pass 5>> <<if $ft_count is 5>> The <<fullGroup>> rub themselves off in front of you. Soon the <<person>> cums, squirting <<if $NPCList[0].penis isnot "none">><<bodyliquid "face" "semen">>semen across<<else>><<bodyliquid "face" "goo">>suddenly in<</if>> your face. Another orderly takes <<his>> place as the <<person1>><<person>> reaches climax. The <<person>> stares into your eyes as <<he>> cums, <<his>> fluids splattering against your cheek and running down the collar of your straightjacket. <br> Two more orderlies take <<his>> place.<<if $NPCList[0].penis isnot "none">><<bodyliquid "neck" "semen">><<else>><<bodyliquid "neck" "goo">><</if>> <<if $arousal gte $arousalmax>> <br><br> <<orgasm>> <</if>> <br><br> <<link [[Next|Asylum Fake Treatment Bukkake]]>><<set $ft_count -= 1>><</link>> <<elseif $ft_count gte 1>> <<if $NPCList[0].penis isnot "none">> <<print either("They keep coming and cumming.","You try to keep your mouth shut, but breathing through your nose means you have to smell it.","You're surrounded by grunts and throbbing genitals.","You keep your eyes shut to avoid getting cum in them.")>> <<set _goo to "semen">> <<else>> <<print either("They keep coming and cumming.","You try to keep your mouth shut, but it seeps through your lips regardless.","You're surrounded by grunts and slick genitals.","You keep your eyes shut to avoid getting squirt in them.")>> <<set _goo to "goo">> <</if>> <br> <<set _rand to random(1,9)>> <<if _rand lte 6>> <<if _rand is 1>> Two orderlies manage to simultaneously cum on your face. <<faceejacstat>><<ejacstat>><<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" _goo>> <<elseif _rand is 2>> One orderly shoves a hand between your legs and roughly gropes your <<genitals>>. <<arousal 200 "genitals">><<pain 5>> <<elseif _rand is 3>> <<if $NPCList[0].penis isnot "none">> One orderly shoves your head against the wall and grinds <<his>> cock against your face until <<he>> ejaculates over you. <<else>> One orderly shoves your head against the wall and grinds <<his>> cunt against your face until <<his>> fluids run over you. <</if>> <<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" _goo>> <<elseif _rand is 4>> Two orderlies masturbate to orgasm on either side of you. <<hairejacstat>><<ejacstat>><<bodyliquid "hair" _goo>><<neckejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "neck" _goo>> <<elseif _rand is 5>> One orderly pulls your head up by your hair and <<if $NPCList[0].penis isnot "none">>ejaculates<<else>>squirts<</if>> down the front of your straightjacket. <<pain 5>><<chestejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "chest" _goo>> <<else>> One orderly deliberately <<if $NPCList[0].penis isnot "none">>shoots <<his>> load<<else>>squirts <<his>> juices<</if>> in your eye. <<pain 5>><<faceejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "face" _goo>> <</if>> <<if _rand % 3 ==2>> As you try to breathe, you end up taking a mouthful of juices from another. <<oralejacstat>><<ejacstat>><<if $NPCList[0].penis isnot "none">><<cumswallow "human">><</if>> <<elseif _rand % 3 == 1>> You hear a grunt as juices squirt down your neck. <<neckejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "neck" _goo>> <<else>> A moment later you feel hot juices soak your hair. <<hairejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "hair" _goo>> <</if>> <br><br> <<elseif _rand is 7 and (maleChance() gte 1 and $settings.maleNPCVaginaChance lt 100 or maleChance() lt 100 and $settings.femaleNPCPenisChance gte 1)>> One orderly tries to shove their cock in your mouth. They're jerked away by another. <br><br> "May I remind everyone that any attempt at any kind of penetration will result in removal." <<lstress>><<stress -2>> <br><br> <</if>><<unset _rand>> <<if $speech_attitude is "meek">> <span class="sub">Being degraded like this makes you feel horny.</span><<ggarousal>><<arousal 666>> <<elseif $speech_attitude is "bratty">> <span class="brat">You find this 'treatment' humiliating.</span><<garousal>><<arousal 200>><<gstress>><<stress 2>> <<else>> <<garousal>><<arousal 200>> <</if>> <<if $arousal gte $arousalmax>> <br><br> <<orgasm>> <</if>> <br><br> <<link [[Next|Asylum Fake Treatment Bukkake]]>><<set $ft_count -= 1>><</link>> <<else>> Finally, there are no more. <br> <<if $arousal gte $arousalmax>> <<orgasm>> <<elseif $arousal gte ($arousalmax / 4) * 3 and $submissive gte 1150>> "More," you whimper. <br> <</if>> You feel soaked as fluids ooze down you. <br><br> <<link [[Next|Asylum Fake Treatment Finish]]>><<unset $ft_count>><</link>> <</if>><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> "Excellent. Doctor Harper's very pleased with your progress. The doctor asked me to tell you not to mention this treatment to anyone. It's very important for your treatment. If you mention it to anyone, even to Doctor Harper <<nnpc_himself "Harper">>, <<nnpc_he "Harper">> will be very angry and it will set back your progress. This should be kept secret. Understood?" <br><br> <<if $speech_attitude is "meek">> You meekly nod. <<elseif $speech_attitude is "bratty">> You wait for <<him>> to get to the point. <<else>> You nod once. <</if>> <br><br> <<if $phase is 1 and ($ft_event is "bukkake" or $ft_event is "milk" or $ft_event is "masturbation")>> "Should I take this off?" the <<person2>><<person>> asks, tugging on the straightjacket. <br> <<if $ft_event is "bukkake">> "After the fuss <<pshe>> made about coming here?" <<person1>><<He>> shakes <<his>> head. "Let <<phim>> learn <<pher>> place walking around looking like that for a while." <br> The <<person2>><<person>> laughs. <<else>> "After the fuss <<pshe>> made about coming here?" <<person1>><<He>> shakes <<his>> head. "This one needs to learn some obedience." <</if>> <<ruined false true "carried">> <<elseif $asylumbound lte 0>> The <<person2>><<person>> removes the straightjacket. <<unbind>><<exposure>><<upperwear 87>> <<else>> <<returnCarried>> <</if>> <br><br> <<if $NPCList[3].description is "long-haired">> <<person4>>The <<person>> is led past you - it feels like you make eye-contact, but it is hard to tell with her face hidden behind her long, matted, messy hair. <</if>> <<if $ft_event is "milk">> As you leave, you notice many of the orderlies have something white around their lips or chin. <br><br> <<elseif $ft_event is "masturbation">> As you leave, you notice many orderlies grouped together passing money between them. Some seem happy, others less so. <<print either("One looks","Several look","One glances")>> <<print either("accusingly","crossly","cheerfully","lustfully","hungrily")>> at you. <br><br> <</if>> <<endevent>><<unset $ft_event>> <<link [[Leave|Asylum]]>><</link>><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> <<set $first_birth to !$pregnancyStats.humanToysUnlocked>> <<npc "Harper">><<person1>> <<setKnowsAboutPregnancy "pc" "Harper">> You awaken in a hospital bed. Several blurry figures move around. One leans closer, <<his>> features coalescing into those of Doctor Harper. "Please don't be alarmed, but your waters have broken. You're still in the asylum." <br><br> <<if $exposed lt 2>> "Please undress," the doctor says. <<else>> "Please take a deep breath," the doctor says. <</if>> <<if playerChastity("hidden")>> <<He>> notices your <<print $worn.genitals.name>>, and opens a chest-high cupboard. <<He>> retrieves a tool shaped like a pair of prongs, but bulkier. "We need to remove that device. This won't hurt." <br><br> <<He>> grasps your <<print $worn.genitals.name>> with the prongs, and presses a button on the handle. You hear a whirring noise within the tool, <span class="pink">and they snap the metal.</span> <<set $worn.genitals.type.push("broken")>> <</if>> <br><br> <<wash>><<undress "asylum_birth">><<upperwear 87 "pink">> <<link [[Next|Pregnancy Birth Asylum 2]]>><</link>> <br><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> The midwife places a mask over your face. You feel your consciousness fade. Several other figures appear around you, their forms ablur. <br><br> <<set _pregnancy to getPregnancyObject()>> <<if _pregnancy.totalBirthEvents gte 5>> <<set _min to 15>> <<set _max to 60>> <<elseif _pregnancy.totalBirthEvents gte 3>> <<set _min to 30>> <<set _max to 120>> <<else>> <<set _min to 60>> <<set _max to 180>> <</if>> <<set _max to Math.floor(_max * (1 + Math.floor(_pregnancy.fetus.length * 0.2)))>> <<set _min to Math.floor(_min * (1 + Math.floor(_pregnancy.fetus.length * 0.2)))>> <<set _timeCalc to random(_min, _max)>> <<set _hours to Math.floor(_timeCalc / 60)>> <<set _minutes to _timeCalc % 60>> <<switch playerNormalPregnancyType()>> <<case "human">> Harper's voice floats through the fog. "Normal human<<if !$player.vaginaExist>>, abnormal delivery<</if>>, but keep the others on the line, just in case..." <br><br> The pain grows as time seems to rapidly speed up and slow down. You hear the words "breathe" and "push" many times, and you do your best to comply. <br><br> <<link [["Next ("+_hours+":"+(_minutes lt 10 ? "0": "")+_minutes+")"| Pregnancy Birth Asylum 3]]>><<endevent>><<pass _timeCalc>><<playerPrebirth>><</link>> <<case "wolf">> Harper's voice floats through the fog. "Not human. This will be an abnormal delivery. Follow my instructions to the letter..." <br><br> The pain grows as time seems to rapidly speed up and slow down. You hear the words "breathe" and "push" many times, and you do your best to comply. <br><br> <<link [["Next ("+_hours+":"+(_minutes lt 10 ? "0": "")+_minutes+")"| Pregnancy Birth Asylum Wolf]]>><<endevent>><<pass _timeCalc>><<playerPrebirth>><</link>> <</switch>><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> <<endevent>> <<generate1>><<person1>> <<set $litter_size to getPregnancyObject().fetus.length>> You awaken in another room. A smiling midwife stands beside your bed, <<if $litter_size is 1>> holding a bundled baby in <<his>> arms. <br><br> "Looks like mummy's awake," <<he>> says, passing you the baby. They sit in your arms, eyes shut, chest rising and falling with gentle breaths. <br><br> "We've run all the tests," the midwife says. "There's not a single health problem. Have you thought of a name?" <br><br> <<elseif $litter_size is 2>> holding two bundled babies in <<his>> arms. <br><br> "Looks like mummy's awake," <<he>> says, passing you one, and then the other. One sits in each of your arms, eyes shut, chests rising and falling with gentle breaths. <br><br> "We've run all the tests," the midwife says. "There's not a single health problem. Have you thought of their names?" the midwife asks. <br><br> <<else>> holding a trio of bundled babies in <<his>> arms. <br><br> "Looks like mummy's awake," <<he>> says, passing you one, and then another. One sits in each of your arms. The midwife holds the third right in front of your chest. Their eyes are shut, their chests rising and falling with gentle breaths. <br><br> "We've run all the tests," the midwife says. "There's not a single health problem. Have you thought of their names?" the midwife asks. <br><br> <</if>> <<set $bornChildrenIds to []>> <<run getPregnancyObject().fetus.forEach(child => $bornChildrenIds.push(child.childId))>> <<set $recentBirthId to getPregnancyObject().fetus[0].birthId>> <<birthUi "pc" "asylum" "home" "Pregnancy Birth Asylum 4" 120>><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> <<getChildrenIds>><<childSelect _childrenIds.last()>> <<set _pregFame to ($litter_size * 5)>> <<famepregnancy _pregFame>> <<if $litter_size is 1>> You cradle your baby for a while longer, enjoying <<childhis>> tiny breaths and movements. <<childHe>> spends most of the time sleeping, but opens <<childhis>> eyes occasionally, and gazes into yours. <br><br> The midwife returns. <<if $first_birth>> <<He>> teaches you how to change <<childname>>'s nappy, and how to bathe <<childhim>>. <<else>> <<He>> assists you with changing <<childname>>'s nappy, and bathing <<childhim>>. <</if>> "Let me know when you're feeling sleepy," <<he>> says. "You need your rest as well, and we can take care of your baby in the meantime." <br><br> You want nothing more than to hold <<childname>>, but you find yourself dozing all the same. <br><br> <<elseif $litter_size is 2>> You cradle your babies for a while longer, enjoying their tiny breaths and movements. They spend most of the time sleeping, but open their eyes occasionally, and gaze into yours. <br><br> The midwife returns. <<if $first_birth>> <<He>> teaches you how to change their nappies and how to bathe them. <<else>> <<He>> assists you with changing their nappies, and with bathing them. <</if>> "Let me know when you're feeling sleepy," <<he>> says. "You need your rest as well, and we can take care of your babies in the meantime." <br><br> You want nothing more than to hold the twins, but you find yourself dozing all the same. <br><br> <<elseif $litter_size is 3>> You cradle your babies for a while longer, enjoying their tiny breaths and movements. They spend most of the time sleeping, but open their eyes occasionally, and gaze into yours. <br><br> The midwife returns. <<if $first_birth>> <<He>> teaches you how to change their nappies, and how to bathe them. <<else>> <<He>> assists you with changing their nappies, and with bathing them. <</if>> "Let me know when you're feeling sleepy," <<he>> says. "You need your rest as well, and we can take care of your babies in the meantime." <br><br> You want nothing more than to hold the triplets, but you find yourself dozing all the same. <br><br> <</if>> <<link [[Next|Pregnancy Birth Asylum 5]]>><<storeon "asylum_birth">><<pass 24 hour>><<stress -40>><</link>> <br><br><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> <<if $litter_size gte 2>><<childrenNames $bornChildrenIds>> lie<<else>><<childname>> lies<</if>> in a cradle while the midwife helps you stand. <<if $first_birth or playerNormalPregnancyTotal() is 0>> You feel your insides drop as you stand, but <<he>> assures you that's normal. <br><br> Despite the pain, you feel a lot more comfortable walking than you did before the birth. You'd forgotten how easy it is to move without people inside you. <br><br> The midwife helps you to dress. <<elseif between(playerNormalPregnancyTotal(), 1, 2)>> You feel your insides drop as you stand. You remember this feeling from your last birth, and know it's normal. <br><br> Despite the pain, you feel a lot more comfortable walking than you did before the birth. You'd forgotten how easy it is to move without people inside you. <br><br> The midwife helps you to dress. <<elseif between(playerNormalPregnancyTotal(), 3, 7)>> You feel your insides drop as you stand. You're still not used to the feeling. <br><br> You get walking again quite easily. It's a little awkward, but the transition isn't as bad as it used to be. It's still easier to move around when there isn't another human inside you. <br><br> The midwife still insists on helping you dress. <<elseif between(playerNormalPregnancyTotal(), 8, 49)>> You stand up without a hitch. There's hardly any difference in feeling anymore, although you do feel much more nimble. <br><br> <<He>> looks impressed at your mobility, only keeping an arm around you for stability. "I don't see many people get back up that quickly. You must be hardy!" <br><br> The midwife still insists on helping you dress. <<elseif playerNormalPregnancyTotal() gte 50>> You stand up without assistance, feeling empty inside. You already miss the feeling of being pregnant. <br><br> <<He>> stares at you, mouth agape, as you walk without any assistance. You throw your clothes back on quickly. <br><br> "Y-you should be good to go," <<he>> says. <</if>> <<if $innocencestate is 1 or $trauma lte $traumamax / 10>> "Doctor Harper has completed your discharge papers, and you're being released. Someone's waiting for you outside. Your <<if C.npc.Bailey.pronoun is "f">>mum<<else>>dad<</if>> I think." <br><br> <<removeBabyIntro "pc" "Bailey" $recentBirthId>> <<link [[Next|Pregnancy Birth Asylum End]]>><<endevent>><<unset $recentBirthId>><</link>> <<else>> "Your children will be sent to the orphanage for temporary care until your release, at which point they will be returned to your custody, once you're deemed mentally fit." <br><br> <<setBabyIntro "pc" "Bailey" $recentBirthId>> <<link [[Next|Pregnancy Birth Asylum 6]]>><<endevent>><<unset $recentBirthId>><</link>> <</if>><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> You're returned to your cell. You already miss the embrace of <<childrenNames $bornChildrenIds>>. You feel a renewed sense of determination to leave this place. <<stress -10>><<llstress>><<trauma -10>><<lltrauma>> <br><br> <<link [[Next|Asylum Cell]]>><<unset $litter_size>><<unset $first_birth>><<endevent>><<unset $bornChildrenIds>><</link>> <br><<set $outside to 0>><<set $location to "asylum">><<effects>> <<asylumend>> <<badEndTrackingEnd "Asylum" { reason: "asylumDischargedLabour" }>> <<npc "Bailey">><<person1>> <<getChildrenIds>><<childSelect _childrenIds.last()>> Bailey waits for you in front of the asylum. <<He>> smiles when <<he>> sees you. It almost looks real. "We've a place prepared," <<he>> says. <<if $litter_size is 1>> <<elseif $litter_size is 2>> "For both of them." <<else>> "For all three of them." <</if>> <<He>> leads you outside, where <<his>> car waits. <<He>> holds open the passenger door for you, before climbing in the other side. <br><br> The engine comes to life. <!-- Bailey may not know about all your pregnancies --> <<set _knownPregnancyCount to knowsAboutPregnancyTotal("pc","Bailey","home")>> <<if _knownPregnancyCount is 1>> "You're responsible for your offspring's care," <<he>> says. "If I have to intervene, it'll cost you an extra <span class="red">£100</span> a week.<<if $litter_size gte 2>> Each.<</if>>" <br><br> "They don't leave the nursery," <<he>> adds as <<he>> drives from the asylum car park into the forest. "Ever." <<elseif _knownPregnancyCount lte 4>> "Remember that you're responsible for your offspring's care," <<he>> says. "If I have to intervene, it'll cost you an extra <span class="red">£100</span> a week.<<if $litter_size gte 2>> Each.<</if>>" <<else>> "You're an irresponsible slut," <<he>> says. "Remember that if I have to intervene in the care of your offspring, it'll cost you an extra <span class="red">£100</span> a week.<<if $litter_size gte 2>> Each.<</if>>" <</if>> <<if $baileydefeatedchain gte 3>> You see <<him>> sneer, but only for a brief instant. "I'd rather not make someone else take care of your twerps, but if you keep being a difficult little shit, don't think you'll be allowed to see them again." <</if>> <br><br> <<if $litter_size is 1>> <<link [[Tell Bailey your baby's name|Pregnancy Birth Hospital 7]]>><<set $phase to 1>><</link>> <br> <<link [[Just hold the baby tight|Pregnancy Birth Hospital 7]]>><</link>> <br> <<else>> <<link [[Tell Bailey your babies' names|Pregnancy Birth Hospital 7]]>><<set $phase to 1>><</link>> <br> <<link [[Just hold your babies tight|Pregnancy Birth Hospital 7]]>><</link>> <br> <</if>><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> <<endevent>> <<generate1>><<person1>> <<set $litter_size to getPregnancyObject().fetus.length>> <<set _baby_type to getPregnancyObject().fetus[0].type>> You awaken in another room. You hear faint whimpering. A smiling midwife stands beside your bed, <<if $litter_size is 1>> holding a bundled _baby_type pup in <<his>> arms. <br><br> "Looks like mummy's awake," <<he>> says, passing you the pup. They sit in your arms, eyes shut, chest rising and falling with gentle breaths. <br><br> "We've run all the tests," the midwife says. "There's not a single health problem. Have you thought of a name?" <br><br> <<else>> pushing a cot with <<number $litter_size>> _baby_type pups inside. <br><br> "Looks like mummy's awake," <<he>> says, pushing the cot into your reach. You hold them one by one, their eyes shut, chests rising and falling with gentle breaths. <br><br> "We've run all the tests," the midwife says. "There's not a single health problem. Have you thought of their names?" the midwife asks. <br><br> <</if>> <<set $bornChildrenIds to []>> <<run getPregnancyObject().fetus.forEach(child => $bornChildrenIds.push(child.childId))>> <<birthUi "pc" "asylum" "wolf_cave" "Pregnancy Birth Asylum Wolf 2" 180>><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> <<getChildrenIds>><<childSelect _childrenIds.last()>> <<famebestiality $litter_size>> <<if $litter_size is 1>> You cradle your <<childtype>> for a while longer, enjoying <<childhis>> tiny breaths and movements. <<childHe>> spends most of the time sleeping, but opens <<childhis>> eyes occasionally, and gazes into yours. <br><br> The midwife returns. "Let me know when you're feeling sleepy," <<he>> says. "You need your rest as well, and we can take care of your pup in the meantime." <br><br> You want nothing more than to hold <<childname>>, but you find yourself dozing all the same. <br><br> <<else>> You cradle your pups for a while longer, enjoying their tiny breaths and movements. They spend most of the time sleeping, but open their eyes occasionally, and gaze into yours. <br><br> The midwife returns. "Let me know when you're feeling sleepy," <<he>> says. "You need your rest as well, and we can take care of your pups in the meantime." <br><br> You want nothing more than to hold them, but you find yourself dozing all the same. <br><br> <</if>> <<link [[Next|Pregnancy Birth Asylum Wolf 3]]>><<storeon "asylum_birth">><<pass 24 hour>><<stress -40>><</link>> <br><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> <<if $litter_size gte 2>><<childrenNames $bornChildrenIds>> lie<<else>><<childname>> lies<</if>> in a cradle while the midwife helps you stand. <<if $first_birth or playerNormalPregnancyTotal() is 0>> You feel your insides drop as you stand, but <<he>> assures you that's normal. <br><br> Despite the pain, you feel a lot more comfortable walking than you did before the birth. You'd forgotten how easy it is to move without wolves inside you. <br><br> The midwife helps you to dress. <<elseif between(playerNormalPregnancyTotal(), 1, 2)>> You feel your insides drop as you stand. You remember this feeling from your last birth, and know it's normal. <br><br> Despite the pain, you feel a lot more comfortable walking than you did before the birth. You'd forgotten how easy it is to move without wolves inside you. <br><br> The midwife helps you to dress. <<elseif between(playerNormalPregnancyTotal(), 3, 7)>> You feel your insides drop as you stand. You're still not used to the feeling. <br><br> You get walking again quite easily. It's a little awkward, but the transition isn't as bad as it used to be. It's still easier to move around when there isn't a litter of wolves inside you. <br><br> The midwife still insists on helping you dress. <<elseif between(playerNormalPregnancyTotal(), 8, 49)>> You stand up without a hitch. There's hardly any difference in feeling anymore, although you do feel much more nimble. <br><br> <<He>> looks impressed at your mobility, only keeping an arm around you for stability. "I don't see many people get back up that quickly. You must be hardy!" <br><br> The midwife still insists on helping you dress. <<elseif playerNormalPregnancyTotal() gte 50>> You stand up without assistance, feeling empty inside. You already miss the feeling of being pregnant. <br><br> <<He>> stares at you, mouth agape, as you walk without any assistance. You throw your clothes back on quickly. <br><br> "Y-you should be good to go," <<he>> says. <</if>> "The pups will be released into the forest once they can fend for themselves." <br><br> <<link [[Next|Pregnancy Birth Asylum 6]]>><<endevent>><</link>> <br><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> You sit in the flower patch. They look nice enough to make something out of. You begin picking them and weaving the stems into a little crown. <br><br> <<if $tendingSuccess>> Your flower crown is nice and sturdy. You put it on your head and smile.<<stress -12>><<llstress>> <br><br> You savour the moment for a while, then take the crown off and leave it in the flower patch so the orderlies don't confiscate it. <<else>> Your flower crown is a little too fragile, and falls apart before you can put it on. At least you learned something.<<tending 1>><<gtending>> <</if>> <br><br> <<if $robinSeen?.includes("flowerCrown") and isLoveInterest("Robin")>> You remember doing this with Robin in the orphanage garden. It brings you a little comfort to do something <<nnpc_he "Robin">> taught you. <<trauma -4>><<ltrauma>> <br><br> <</if>> <<link [[Next|Asylum]]>><<handheldon>><</link>> <br><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> You decide to just take a seat and relax. <<if $robinSeen?.includes("flowerCrown") and isLoveInterest("Robin")>> Sitting here reminds you of the orphanage garden. You think of Robin and the time you've spent together tending the plants there. You hope <<nnpc_he "Robin">>'s doing well. <<trauma -4>><<ltrauma>> <<else>> You lie back and watch the clouds go by. A sense of peace settles over you, if only for a bit. <</if>> <br><br> After a while, you get up and head back to the main area. <br><br> <<link [[Next|Asylum]]>><<handheldon>><</link>> <br><<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> <<if $asylumPuzzleProgress is undefined>> <<set $asylumPuzzleProgress to 1>> <<saveNPC 0 "asylum_puzzle_group">> <</if>> <<if $asylumPuzzleProgress gte 2 and random(1,10) is 1>> You approach the group at the puzzle table, ready to resume progress. However, some of the pieces have been disrupted since the last time you all were here. <br><br> "Assholes," the <<person>> mutters, uselessly looking around for a culprit. The group is forced to spend most of today's session undoing the damage, and you don't make any real progress. <br><br> <<link [[Next|Asylum]]>><<handheldon>><<endevent>><</link>> <br> <<else>> <<switch $asylumPuzzleProgress>> <<case 1>> You walk over and sit down with the group, pouring over the pieces. Not much has been completed yet, but you help them work on the puzzle's border. <<case 2>> You walk over and sit down with the group, ready to continue. You all sort the inner pieces and begin to put together some of the border details. <<case 3>> You walk over and sit down with the group, chatting quietly with them. You manage to get some of the more recognisable parts of the image solved. <<case 4>> You happily walk over, ready to keep going. All of your focus is on the most difficult pieces, trying to figure out where they should be. <<case 5>> You walk over to the group, filled with determination. Eventually, the final pieces are slotted in and the puzzle is complete. You all take a moment to celebrate the small achievement, and the <<person>> thanks you for your contributions.<<stress -6>><<asylumstatus 1>><<lstress>><<gcool>> <<default>> <span class="red">Something went wrong with the puzzle. Please inform Vrelnir. Asylum puzzle value: <<print $asylumPuzzleProgress>></span> <</switch>> <br><br> <<if $asylumPuzzleProgress is 5>> <<generate2>><<person2>> The commotion draws the attention of an orderly, who comes by and strikes up a friendly conversation. <<He>> notes that you're positively affecting the other patients' morale.<<suspicion -5>><<llsuspicion>> <br><br> <<link [[Next|Asylum]]>><<endevent>><<set $eventskip to 1>><<unset $asylumPuzzleProgress>><<clearNPC "asylum_puzzle_group">><</link>> <br> <<else>> After a while, the group is broken up by the orderlies, and you move on to other activities. <br><br> <<link [[Next|Asylum]]>><<endevent>><<set $asylumPuzzleProgress to 1 + ($asylumPuzzleProgress % 5)>><</link>> <br> <</if>> <</if>><<widget "asylumeffects">> <<if Time.hour lte 5>> <<set $asylumstate to "sleep">> <<elseif Time.hour lte 8>> <<set $asylumstate to "free">> <<elseif Time.hour is 9>> <<set $asylumstate to "exercise">> <<elseif Time.hour is 10>> <<set $asylumstate to "firsttreatment">> <<elseif Time.hour lte 14>> <<set $asylumstate to "free">> <<elseif Time.hour is 15>> <<set $asylumstate to "secondtreatment">> <<elseif Time.hour lte 19>> <<set $asylumstate to "free">> <<elseif Time.hour is 20>> <<set $asylumstate to "assessment">> <<elseif Time.hour is 21>> <<set $asylumstate to "free">> <<else>> <<set $asylumstate to "sleep">> <</if>> <<set $suspicion = Math.clamp($suspicion, 0, 100)>> <<set $asylumstatus = Math.clamp($asylumstatus, 0, 100)>> <</widget>> <<widget "asylumstats">> <<if $suspicion gte 80>> <span class="red">Security actively watches you. Even the nurses glance your way warily.</span> <<elseif $suspicion gte 20>> <span class="blue">You catch the occasional member of security watching you.</span> <<else>> <span class="green">The staff ignore you.</span> <</if>> <br> <<if $asylumstatus gte 80>> <span class="green">The other patients smile when they see you.</span> <<elseif $asylumstatus gte 20>> <span class="blue">The other patients ignore you.</span> <<else>> <span class="red">The other patients shun you.</span> <</if>> <br><br> <</widget>> <<widget "asylumtreatments">> <<if isPregnancyEnding()>> <<pregnancyPassout "asylumHarper">> <<else>> <<cleareventpool>> <<addinlineevent "asylum_treatment_1" 1>> <<asylumUnbindGown>> <<if $o_long_and_beautiful gte 1 and $o_long_and_beautiful lte 7 and $rng % 2 and maleChance() lt 100>> <<set $phase to 0>><<set $o_long_and_beautiful += 1>> <<npc Harper>><<person1>> You enter a thin room. Curtains line one side. <br><br> "Hello," Doctor Harper says. "I'm glad you could make it. Please stand just there." <<He>> pushes a button on the wall by the door and the curtain pulls back, revealing the other half of the room. A patient lies on the floor. The long, matted hair covering most of her face hides any visible reaction. <br><br> <<person1>>"This treatment isn't for you," the doctor says. "It's for your fellow patient. I just need an assistant." <<He>> gestures at a button on a table beside you. "You'll need to press that button when I say. I'll be busy helping this patient. Press it now." <br><br> <<link [[Press|Asylum Button Long Hair Press]]>><</link>> <br> <<link [[Refuse|Asylum Button Long Hair Refuse]]>><<suspicion 1>><<def 1>><</link>><<gsuspicion>> <<else>> <<set $phase to 0>> <<npc Harper>><<person1>><<generate2>> You enter a thin room. Shutters line one side. <br><br> "Hello," Doctor Harper says. "I'm glad you could make it. Please take a seat." <<He>> pushes a button on the counter beside <<him>>. The shutters open, revealing a glass window. Another patient sits in the room beyond. <<person2>><<He>> looks nervous, but doesn't react to the reveal. <br><br> <<person1>>"This treatment isn't for you," the doctor says. "It's for your fellow patient. I just need an assistant." <<He>> gestures at a button in front of you. "You'll need to press this button when I say. I'll be busy taking notes. Press it now." <br><br> <<link [[Press|Asylum Button Press]]>><</link>> <br> <<link [[Refuse|Asylum Button Refuse]]>><<suspicion 1>><<def 1>><</link>><<gsuspicion>> <</if>> <</addinlineevent>> <<addinlineevent "asylum_treatment_2" 1>> <<npc Harper>><<person1>> You enter Doctor Harper's office. <<He>> waits for you behind <<his>> desk. <br><br> "Please take a seat," <<he>> says. There are no other chairs. <br><br> <<link [[Sit on desk|Asylum Sit Desk]]>><</link>> <br> <<link [[Sit on lap|Asylum Sit Lap]]>><</link>><<promiscuous1>><<lsuspicion>><<lawareness -1>> <br> <<link [[Stay stood|Asylum Sit Stand]]>><<suspicion 1>><</link>><<gsuspicion>> <</addinlineevent>> <<addinlineevent "asylum_treatment_3" 1>> <<asylumUnbindGown>> <<npc Harper>><<person1>><<generate2>> You enter a room with a large window facing the grounds, and the forest beyond. Doctor Harper waits for you, stood beside a <<person2>><<person>>. Another patient. Several orderlies wait by the wall. <br><br> "Thank you both for coming," the doctor says. "Today I want to talk about modesty. It shouldn't feel bad to be exposed. It should feel good. I want one of you to strip." The <<person>> looks horrified at the thought. "And stand in front of the window there." <br><br> You can see many patients exercising outside, as well as staff watching over them. The <<persons>> horror becomes panic. "P-please," <<he>> says. "Don't make me." <br><br> <<person1>>Harper looks at you. "You get to decide which of you strips," <<he>> says. The <<person2>><<person>> looks at you, near tears. <br><br> <<if hasSexStat("exhibitionism", 5)>> <<link [[Strip and flaunt|Asylum You Flaunt]]>><<suspicion -5>><<asylumstatus 5>><<awareness -10>><<fameexhibitionism 10>><</link>><<exhibitionist5>><<llawareness>><<llsuspicion>><<ggcool>> <<else>> <<link [[Strip reluctantly|Asylum You Strip]]>><<suspicion -5>><<asylumstatus 5>><<awareness -10>><<stress 3>><<fameexhibitionism 10>><</link>><<llawareness>><<llsuspicion>><<ggcool>><<gstress>> <</if>> <br> <<link [[Make <<him>> strip|Asylum They Strip]]>><<suspicion 5>><<asylumstatus -5>><</link>><<ggsuspicion>><<llcool>> <</addinlineevent>> <<if $settings.hypnosisEnabled>> <<addinlineevent "asylum_treatment_4" 1>> <<AsylumHypnosisCommon "Oral" $hypnosis_traits.suggestion>> <</addinlineevent>> <<addinlineevent "asylum_treatment_5" 2>> <<asylumUnbindGown>> <<AsylumHypnosisCommon "Exhibitionism" $hypnosis_traits.cover>> <</addinlineevent>> <<if isBeastSceneAllowed()>> <<addinlineevent "asylum_treatment_6" 1.5>> <<AsylumHypnosisCommon "Dog" $hypnosis_traits.deviancy>> <</addinlineevent>> <</if>> <</if>> <<addinlineevent "asylum_treatment_7" 1.5>> <<npc Harper>><<person1>> You enter a windowless room. Doctor Harper waits beside a large machine. "Thank you for coming," <<he>> says. <<He>> presses a button. A compartment opens, large enough for you to fit. "Please lie down inside." <br><br> <<getinicon>><<link [[Get in|Asylum Machine]]>><<awareness -10>><<suspicion -5>><</link>><<llsuspicion>><<llawareness>> <br> <<refuseicon>><<link [[Refuse|Asylum Machine Refuse]]>><<suspicion 5>><</link>><<athleticsdifficulty 1 1000>><<ggsuspicion>><<ggstress>> <</addinlineevent>> <<addinlineevent "asylum_treatment_8" 1>> <<npc Harper>><<generate2>><<generate3>> You enter Harper's office. <<person1>><<He>> sits behind <<his>> desk. A <<person2>><<person>> and <<person3>><<person>> sit in front of <<him>>, both in white coats. They turn to regard you. <br><br> "Thank you for coming," Harper says. "I have something special for you today. A new drug. My colleagues here would like to observe its effects. Here." <<person1>><<He>> stands and removes a sheet from a nearby chair. There are straps on the arms and legs. "Please sit." <<person3>> <br><br> <<link [[Sit|Asylum Pill Sit]]>><<awareness -10>><<suspicion -5>><<hallucinogen 80>><</link>><<llsuspicion>><<llawareness>> <br> <<link [[Refuse|Asylum Pill Refuse]]>><<suspicion 5>><</link>><<ggsuspicion>><<ggstress>> <</addinlineevent>> <<addinlineevent "asylum_treatment_9" 1>> <<npc Harper>><<person1>> You enter Harper's office. <<He>> waits for you inside, sat at <<his>> desk. "Thank you for coming," <<he>> says. "Please, take a seat." <br><br> You sit down in a chair in front of <<his>> desk. Harper pulls something out from a drawer. It's a folded piece of paper. Dark splotches bleed through it from within. <br><br> "This is something called an inkblot test," <<he>> explains. "I want you to tell me what this shape reminds you of." <br><br> <<He>> unfolds the paper. The two sides stick together, but come undone with a crackle. A symmetrical black blob is painted on the inside. <<if $awareness gte 400>> The strokes twist together across the page, tangling over one another. They converge into total darkness, like a hole punched through the paper, or the mouth of a terrible creature. You stare at it, unable to tear your eyes away. <<gstress>><<stress 6>><<gtrauma>><<trauma 6>> <<elseif $awareness gte 200>> You stare at the paper, trying to discern the shape. The blob looks suspiciously <<if $NPCList[0].penis isnot "none">>phallic.<<else>>yonic.<</if>> <<if $purity gte 1000 or $angel gte 6>> You wonder if you're just being dirty-minded.<<gstress>><<stress 1>> <<else>> The longer you stare at it, the more certain you are that it looks like a <<if $NPCList[0].penis isnot "none">>penis.<<else>>pussy.<</if>> <</if>> <<else>> You tilt your head, looking at the paper. The shape looks like a <<if $NPCList[0].penis isnot "none">>rocket taking off.<<else>>beautiful butterfly.<</if>> <</if>> <br><br> <<link [[Answer honestly|Asylum Inkblot Answer Honestly]]>><<trauma -6>><<suspicion -5>><</link>><<llsuspicion>><<llawareness>><<lltrauma>> <br> <<link [[Refuse to answer|Asylum Inkblot Answer Evasively]]>><<stress 3>><</link>><<lawareness>><<gstress>> <</addinlineevent>> <<addinlineevent "asylum_treatment_10" 1.5>> <<asylumUnbindGown>> <<npc Harper>><<person1>> You enter a room with pastel-coloured wallpaper and warm lighting. You immediately feel at ease. Doctor Harper sits on a chair opposite a cushioned lounge chair. <br><br> "Thank you for coming," <<he>> says. "Please, take a seat." <br><br> Once you're situated on the lounge chair, <<he>> looks up from <<his>> clipboard. "You've been seducing innocent people and calling it rape out of shame. This comes from your poor inhibitions," <<he>> says. "We're going to work on controlling that indecent behaviour. Please, take off your clothes." <br><br> <<if hasSexStat("exhibitionism", 4)>> <<link [[Strip and flaunt|Asylum Masturbation]]>><<suspicion -2>><<set $phase to "flaunt">><</link>><<exhibitionist4>><<lsuspicion>> <br> <</if>> <<link [[Strip reluctantly|Asylum Masturbation]]>><<suspicion -2>><<stress 2>><<set $phase to "strip">><</link>><<lsuspicion>><<gstress>> <br> <<link [[Refuse|Asylum Masturbation]]>><<suspicion 5>><<set $phase to "refuse">><</link>><<ggsuspicion>> <</addinlineevent>> <<runeventpool>> <</if>> <</widget>> <<widget "asylumassessment">> <<npc Harper>><<person1>> You enter Harper's office. <<if isPregnancyEnding()>> <<pregnancyPassout "asylumHarper">> <<elseif $innocencestate is 1 and $asylumbound lte 0>> <<npcincr Harper love 5>><<npcincr Harper dom 5>><<set $asyluminnocence to 1>> <<He>> puts down <<his>> clipboard and smiles. "Your treatment is finished," <<he>> says. "You're ready to be a functioning member of society. I'll have special pills sent to your home." <<set $sexStats.pills["pills"]["asylum\'s prescription"].owned to 14>><<set $asylummedicated to 0>> <<He>> rises to <<his>> feet and pulls the curtains at the window closed. "Stand up." <br><br> Once stood, <<he>> pushes you back over the desk. <<if $NPCList[0].penis isnot "none">> <<He>> steps between your legs and leans forward, <<else>> <<He>> climbs atop and straddles you, <</if>> groping at your clothes with shaking fingers, trying to take them off. The professional air <<he>> carried is gone. <<He>> laughs, giggles really. "I-I should be the first to experience my handiwork. It's only fair." <br><br> <<link [[Next|Asylum Harper Sex]]>><<set $molestationstart to 1>><</link>> <br> <<elseif $trauma lte $traumamax / 10 and $asylumbound lte 0>> <<set $asylumtrauma to 1>> /* unused */ <<He>> puts down <<his>> clipboard and frowns. "Your treatment isn't finished," <<he>> says. "But you seem to have recovered regardless. I can't justify keeping you here." <<He>> rises to <<his>> feet and pulls the curtains at the window closed. <br><br> "Now that you're better..." <<He>> steps around the desk. "This might be the last time we see each other." <<He>> gropes your clothing. The professional air <<he>> carried is gone. <<He>> laughs as <<he>> tries to kiss you. <br><br> <<link [[Let it happen|Asylum Harper Sex]]>><<npcincr Harper love 5>><<set $sexstart to 1>><</link>><<promiscuous1>> <br> <<link [[Shove away|Asylum Harper Shove]]>><<npcincr Harper love -1>><</link>> <br> <<elseif $asylumassessmentprogress lte 0>> <<set $asylumassessmentprogress += 1>> Harper stares at you across the desk. "Let's talk about your exposure fetish," <<he>> says. "You've been displaying your body in inappropriate ways, then claiming others stripped you. You're ashamed of your feelings." <br><br> <<if $asylumdistracted is 1 and !pcAreArmsBound("any")>> <<link [[Attack|Asylum Fight]]>><<suspicion 15>><<trauma -6>><<stress -6>><<set $fightstart to 1>><</link>><<gggsuspicion>><<ltrauma>><<lstress>> <br> <<elseif !pcAreArmsBound("any")>> <<link [[Attack|Asylum Punish]]>><<suspicion 15>><<trauma -6>><<stress -6>><</link>><<gggsuspicion>><<ltrauma>><<lstress>> <br> <</if>> <<if $asylumkeycard isnot 1 and !pcAreArmsBound("any")>> <<set $skulduggerydifficulty to 900 + (20 * $suspicion)>> <<link [[Steal keycard|Asylum Keycard]]>><</link>><<skulduggerydifficulty>> <<note "This will be easier with low suspicion" "italic">> <br> <</if>> <<link [[Insist that isn't true|Asylum Exhibit Meek]]>><<awareness -1>><<stress 3>><</link>><<lawareness>><<gstress>> <br> <<link [[Say you aren't sure|Asylum Exhibit Sub]]>><<trauma -6>><<suspicion -5>><<awareness -10>><</link>><<llsuspicion>><<llawareness>><<ltrauma>> <br> <<elseif $asylumassessmentprogress lte 1 and $tentaclerapestat gte 1>> <<set $asylumassessmentprogress += 1>> Harper stares at you across the desk. "In your sleep you talk about being attacked by monsters with tentacles," <<he>> says. "Creatures like that don't exist. If someone claimed to have been molested by a creature no one else can see, would you believe them?" <br><br> <<if $asylumdistracted is 1 and !pcAreArmsBound("any")>> <<link [[Attack|Asylum Fight]]>><<suspicion 15>><<trauma -6>><<stress -6>><<set $fightstart to 1>><</link>><<gggsuspicion>><<ltrauma>><<lstress>> <br> <<elseif !pcAreArmsBound("any")>> <<link [[Attack|Asylum Punish]]>><<suspicion 15>><<trauma -6>><<stress -6>><</link>><<gggsuspicion>><<ltrauma>><<lstress>> <br> <</if>> <<if $asylumkeycard isnot 1 and !pcAreArmsBound("any")>> <<set $skulduggerydifficulty to 900 + (20 * $suspicion)>> <<link [[Steal keycard|Asylum Keycard]]>><</link>><<skulduggerydifficulty>> <<note "This will be easier with low suspicion" "italic">> <br> <</if>> <<link [[Insist they are real|Asylum Tentacles Meek]]>><<awareness 1>><<stress 3>><</link>><<gawareness>><<gstress>> <br> <<link [[Say you aren't sure|Asylum Tentacles Sub]]>><<trauma -6>><<suspicion -5>><<awareness -10>><</link>><<llsuspicion>><<llawareness>><<ltrauma>> <br> <<elseif $asylumassessmentprogress lte 2 and $beastrapestat gte 1>> <<set $asylumassessmentprogress += 1>> <!-- Modified for monster people --> Harper stares at you across the desk. <<if $settings.bestialityEnabled>> "In your sleep you talk about being attacked by animals," <<he>> says. "Sexually attacked. Animals don't behave like that. You've been abusing innocent creatures, haven't you?" <<else>> "In your sleep you talk about being attacked by monster-people," <<he>> says. "Sexually attacked. These types of beings do not exist. You made yourself believe they possess human-like features. In reality, you've been abusing innocent animals for your own pleasure. Am I wrong?" <</if>> <br><br> <<if $asylumdistracted is 1 and !pcAreArmsBound("any")>> <<link [[Attack|Asylum Fight]]>><<suspicion 15>><<trauma -6>><<stress -6>><<set $fightstart to 1>><</link>><<gggsuspicion>><<ltrauma>><<lstress>> <br> <<elseif !pcAreArmsBound("any")>> <<link [[Attack|Asylum Punish]]>><<suspicion 15>><<trauma -6>><<stress -6>><</link>><<gggsuspicion>><<ltrauma>><<lstress>> <br> <</if>> <<if $asylumkeycard isnot 1 and !pcAreArmsBound("any")>> <<set $skulduggerydifficulty to 900 + (20 * $suspicion)>> <<link [[Steal keycard|Asylum Keycard]]>><</link>><<skulduggerydifficulty>> <<note "This will be easier with low suspicion" "italic">> <br> <</if>> <<link [[Insist that isn't true|Asylum Beast Meek]]>><<awareness -1>><<stress 3>><</link>><<lawareness>><<gstress>> <br> <<link [[Say you aren't sure|Asylum Beast Sub]]>><<trauma -6>><<suspicion -5>><<awareness -10>><</link>><<llsuspicion>><<llawareness>><<ltrauma>> <br> <<elseif $asylumassessmentprogress lte 3>> <<set $asylumassessmentprogress += 1>> Harper stares at you across the desk. "There are marks on your body," <<he>> says. "You did this to yourself, didn't you." <br><br> <<if $asylumdistracted is 1 and !pcAreArmsBound("any")>> <<link [[Attack|Asylum Fight]]>><<suspicion 15>><<trauma -6>><<stress -6>><<set $fightstart to 1>><</link>><<gggsuspicion>><<ltrauma>><<lstress>> <br> <<elseif !pcAreArmsBound("any")>> <<link [[Attack|Asylum Punish]]>><<suspicion 15>><<trauma -6>><<stress -6>><</link>><<gggsuspicion>><<ltrauma>><<lstress>> <br> <</if>> <<if $asylumkeycard isnot 1 and !pcAreArmsBound("any")>> <<set $skulduggerydifficulty to 900 + (20 * $suspicion)>> <<link [[Steal keycard|Asylum Keycard]]>><</link>><<skulduggerydifficulty>> <<note "This will be easier with low suspicion" "italic">> <br> <</if>> <<link [[Insist that isn't true|Asylum Hurt Meek]]>><<awareness -1>><<stress 3>><</link>><<lawareness>><<gstress>> <br> <<link [[Say you aren't sure|Asylum Hurt Sub]]>><<trauma -6>><<suspicion -5>><<awareness -10>><</link>><<llsuspicion>><<llawareness>><<ltrauma>> <br> <<else>> <<set $asylumassessmentprogress to 0>> Harper stares at you across the desk. "In your sleep you talk about being raped and molested. But that isn't what happens, is it?" <<he>> says. "You approach and seduce people willingly. You call it rape because you're ashamed." <br><br> <<if $asylumdistracted is 1 and !pcAreArmsBound("any")>> <<link [[Attack|Asylum Fight]]>><<suspicion 15>><<trauma -6>><<stress -6>><<set $fightstart to 1>><</link>><<gggsuspicion>><<ltrauma>><<lstress>> <br> <<elseif !pcAreArmsBound("any")>> <<link [[Attack|Asylum Punish]]>><<suspicion 15>><<trauma -6>><<stress -6>><</link>><<gggsuspicion>><<ltrauma>><<lstress>> <br> <</if>> <<if $asylumkeycard isnot 1 and !pcAreArmsBound("any")>> <<set $skulduggerydifficulty to 900 + (20 * $suspicion)>> <<link [[Steal keycard|Asylum Keycard]]>><</link>><<skulduggerydifficulty>><<note "This will be easier with low suspicion" "italic">> <br> <</if>> <<link [[Insist that isn't true|Asylum Rape Meek]]>><<awareness -1>><<stress 3>><</link>><<lawareness>><<gstress>> <br> <<link [[Say you aren't sure|Asylum Rape Sub]]>><<trauma -6>><<suspicion -5>><<awareness -10>><</link>><<llsuspicion>><<llawareness>><<ltrauma>> <br> <</if>> <</widget>> <<widget "AsylumHypnosisCommon">> <<set $phase to _args[0]>> <<set _traitValue to _args[1]>> <<set $outside to 0>><<set $location to "asylum">><<asylumeffects>><<effects>> <<npc Harper>><<person1>> You enter Harper's office. <<He>> waits for you inside, sat at <<his>> desk. <<if $phase is "Oral">> <<generate2>> There's a <<person2>><<person>> sat opposite. Another patient. "Thank you for joining us," the doctor <<else>> "Thank you for coming," <<person1>><<he>> <</if>> says. "Please, take a seat." <br><br> <<if $phase is "Oral">> You sit beside the <<person2>><<person>>. <<else>> Once sat, <</if>> Harper picks up a pen on <<person1>><<his>> desk. "I want <<if $phase is "Oral">>both of <</if>>you to focus on this pen, and breathe deeply. There's nothing in the universe except this pen, my voice, and your own breath." <br><br> <<pass 5>> This continues for several minutes. Harper somehow picks up on whenever your mind starts to wander and brings you back to focus. You start to feel something shift in your consciousness, as if you're entering a trance. <br><br> <<link [[This feels nice (0:10)|Asylum Hypnosis Trance]]>><<npcincr Harper dom 5>><<control 25>><<trauma -6>><<stress -12>><<awareness -10>><</link>><<ggcontrol>><<llawareness>><<ltrauma>><<lstress>> <br> <<link [[Resist|Asylum Hypnosis Trance Resist]]>><</link>><<willpowerdifficulty 1 `300 * (_traitValue || 3)`>> <</widget>> <<widget "asylumend">> <<set $asylum to 0>> <<if $badEndStats.some(badEnd => ["asylumTentacle", "asylumBlackWolf", "asylumTentacleAngel", "asylumEden", "asylumSabotage"].includes(badEnd.reasonEnd))>> <<specialClothesUnlock "set" "asylum">> <</if>> <</widget>> <<widget "asylumpunish">> <<endevent>><<npc Harper>><<person1>><<set $asylumbound to 2>> "Take <<phim>> to the room," Harper says. "Make sure <<pher>> arms are bound tight." <br><br> <<if !pcAreArmsBound("both")>> <<asylumBind "punish">> They tear off your clothes and wrestle you into a straightjacket. <</if>> They push you to an empty wing of the asylum, through one of the doors marked "Staff Only." Most of the lights here don't work, and those that do flicker to a strange rhythm. <br><br> You come to a tall metal door. They open it, revealing a pitch black room beyond. They shove you in, and slam the door behind you. <br><br> The room is tiny. There's just enough space to sit. You wait in total silence. <br><br> <<link [[Wait (1:00)|Asylum Room]]>><<pass 60>><</link>> <br> <</widget>> <<widget "asylumoptions">> <<if pcAreArmsBound("any") and $asylumbound lte 0>> <<He>> looks at your bindings. "I think you've earned a release," <<he>> says as <<he>> crouches and unties them, before removing it completely.<<unbind>><<exposure>> <<He>> covers you with a gown. <<unbind>><<upperwear 87>><<exposure>> <br><br> <<elseif $asylumbound gt 0 and ($worn.upper.name isnot "straightjacket" or $worn.lower.name isnot "straightjacket bottom")>> <<if $worn.upper.name is "straightjacket">> <<set _nurseJacket to "broken">> <<He>> regards your ruined jacket with a frown. "Let's get you into something proper," <<he>> says. <<else>> <<set _anyclothing to getVisibleClothesList().some(item => item.name !== "naked")>> "You're not supposed to be out of the jacket yet," <<he>> remarks flatly. <</if>> <<if _nurseJacket is "broken">> <<He>> removes the remains of your straightjacket<<if pcAreArmsBound("both")>>, letting your arms fall at your sides<</if>>. <</if>> <<asylumBind>> <<if _anyclothing and (!_asylumBindUnderwear or _asylumBindUnderwear is "given")>> <<He>> makes you hand over all your personal items. <<elseif _asylumBindUnderwear and _asylumBindUnderwear isnot "given">> <<He>> makes you strip down to your underwear. <<if _nurseJacket is "broken">> Then <<he>> <<else>> <<He>> <</if>> slides down your _asylumBindUnderwear and makes you step out of them. <</if>> <<if _asylumBindUnderwear>> <<He>> makes you step into a fresh pair of $worn.under_lower.name_simple and pulls them up. <</if>> Your brief moment of freedom ends as <<he>> secures you into a new straightjacket. <<fameexhibitionism 1>> <br><br> <<elseif $exposed gte 1>> <<He>> steps back to regard you. <<covered>> "You can't see the doctor dressed like that," <<he>> says. <<He>> covers you with a gown. <<unbind>><<upperwear 87>><<exposure>> <br><br> <</if>> <</widget>> /* _args[0] should be punish, fake, or session */ <<widget "asylumBind">> <<unbind>><<exposure>><<strip>> <<if _args[0] is "punish">> <<ruined false true "carried">> <<elseif _args[0] is "fake">> <<else>> <<if $player.gender_appearance is "f">> <<set _underwearIndex to 1>> <<else>> <<set _underwearIndex to 4>> <</if>> <<if $carried.under_lower.index isnot _underwearIndex or $carried.under_lower.colour isnot "pale white">> <<if $carried.under_lower.name is "naked">> <<set _asylumBindUnderwear to "given">> <<else>> <<set _asylumBindUnderwear to $carried.under_lower.name>> <</if>> <<underlowerwear _underwearIndex "pale white">> <<else>> <<underloweron>> <</if>> <</if>> <<if _args[0] is "session">> <<generalRuined "upper" true "carried">> <<else>> <<returnCarried>> <</if>> <<bind>><<upperwear 35>><<exposure>> <</widget>> <<widget "asylumUnbind">> <<if pcAreArmsBound("any")>> <<endevent>> <<generate1>><<person1>> Just before a doorway, another nurse stops you. "Doctor says you need your hands free for this session," <<he>> says. <<He>> undoes your bindings. <<if $worn.upper.name is "straightjacket" or $worn.lower.name is "straightjacket bottom">> <<He>> then helps you out of<<if $worn.lower.name isnot "straightjacket bottom" or $worn.upper.name isnot "straightjacket">> the remains of<</if>> your straightjacket<<if _args[0]>>, and covers you with a gown.<<unbind>><<exposure>><<upperwear 87>><<else>>.<</if>> <<else>> <<unbind>><<exposure>> <</if>> <<He>> opens the nearby door and leads you inside. <br><br> <<endevent>> <</if>> <</widget>> <<widget "asylumUnbindGown">> <<asylumUnbind true>> <</widget>> <<widget "asylumRebind">> <<if $asylumbound gt 0 and ($worn.upper.name isnot "straightjacket" or $worn.lower.name isnot "straightjacket bottom")>> <<generate1>><<person1>> <<if V.carried.upper.name is "patient gown" or V.worn.upper.name is "patient gown">> <<set _gown to true>> <</if>> <<if $worn.upper.name is "straightjacket" and $worn.lower.name isnot "straightjacket bottom">> <<set _ruined to true>> <</if>> <<asylumBind "session">> A nurse is waiting for you outside the room. <<if _gown>> <<He>> makes you return the gown you're wearing. Then <<he>> <<elseif _ruined>> <<He>> helps you out of the ruined straightjacket. Then <<he>> <<else>> <<He>> <</if>> <<if _asylumBindUnderwear>> helps you into a pair of $worn.under_lower.name_simple before restraining <<else>> restrains <</if>> you with a <<if _ruined>>new <</if>>straightjacket once more. <br><br> <</if>> <</widget>> <<widget "asylumClothesOn">> <<clotheson>> <<if $asylumbound gt 0>> <<asylumBind>> <</if>> <</widget>> <<widget "asylumevents">> <<if dangerEvent()>> <<cleareventpool>> <<addinlineevent "asylum_exposure" 1>> <<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 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]]>><<handheldon>><<arousal 600>><</link>><<garousal>> <br> <<link [[Accept but keep your eyes shut|Asylum Exposure Shut]]>><<famegood 1>><<handheldon>><</link>> <br> <<link [[Accept and pretend to keep your eyes shut|Asylum Exposure Peek]]>><<arousal 600>><<famegood 1>><<handheldon>><</link>><<garousal>> <br> <<link [[Refuse|Asylum Exposure Refuse]]>><<handheldon>><</link>> <br> <</addinlineevent>> <<if random(1,100) lte $suspicion>> <<addinlineevent "asylum_fake_treatment" 1>> <<generateDoctor 1>><<generate2>><<person1>> A <<person>> dressed as an orderly approaches you. "Hello. The doctor has extra time today and wants you in for an extra treatment," <<he>> says. "Come with me please." <br><br> A <<person2>><<person>> stands behind you. <br><br> <<link [[Go with them|Asylum Fake Treatment Accept]]>><<handheldon>><</link>> <br> <<link [[Refuse to go|Asylum Fake Treatment Refuse]]>><<handheldon>><</link>><<physiquedifficulty 1 $physiquemax>> <br> <</addinlineevent>> <</if>> <<addinlineevent "asylum_flirt" 2>> <<generate1>><<person1>><<npcClothesType $NPCList[0] "patient">>You catch one of the other patients, a <<person>>, looking at you. <<He>> smiles. <br><br> <<link [[Flirt (0:02)|Asylum Flirt]]>><<handheldon>><<asylumstatus 1>><<pass 2>><</link>><<promiscuous1>><<gcool>> <br> <<link [[Ignore|Asylum]]>><<endevent>><</link>> <br> <</addinlineevent>> <<addinlineevent "asylum_nurse_grope" 4>> <<generate1>><<generatev2>><<person1>>One of the patients, a <<person>>, gropes one of the nurses, a <<person2>><<person>>. The nurse doesn't resist. <<He>> looks resigned. <br><br> <<link [[Intervene (0:02)|Asylum Intervene]]>><<handheldon>><<pass 2>><<suspicion -5>><<asylumstatus -5>><</link>><<llsuspicion>><<llcool>> <br> <<link [[Ignore|Asylum]]>><<endevent>><</link>> <br> <</addinlineevent>> <<addinlineevent "asylum_answer" 2>> <<generate1>><<person1>><<generate2>>A <<person>>, a patient, runs past you and hides from view, just as a <<person2>><<person>> rounds the corner. <<Hes>> a nurse. <<He>> looks around, then at you. "Have you seen a <<person1>><<person>> by chance?" <br><br> <<link [[Truth|Asylum Truth]]>><<handheldon>><<suspicion -5>><<asylumstatus -5>><</link>><<llsuspicion>><<llcool>> <br> <<link [[Lie|Asylum Lie]]>><<handheldon>><<suspicion 5>><<asylumstatus 5>><</link>><<ggsuspicion>><<ggcool>> <br> <</addinlineevent>> <<addinlineevent "asylum_flower_patch" 1>> Eventually, you grow tired of the other patients, and wander out to the asylum yard for some fresh air. You take a walk, strolling through the grounds and finding what enjoyment you can. <br><br> While on your walk, you stumble across a patch of wildflowers. <br><br> <<if !pcAreArmsBound("any")>> <<link [[Make a flower crown|Asylum Flower Patch Crown]]>><</link>><<tendingdifficulty 1 200>> <br> <<else>> <span class="blue">You cannot do anything with the flowers while your arms are bound.</span> <br> <</if>> <<link [[Sit and observe|Asylum Flower Patch Observe]]>><<stress -6>><</link>><<lstress>> <br> <<link [[Ignore|Asylum]]>><<endevent>><</link>> <br> <</addinlineevent>> <<if $daily.asylumPuzzle isnot 1>> <<addinlineevent "asylum_puzzle" 1>> <<set $daily.asylumPuzzle to 1>> You notice a group of patients sitting around a table, off to the side. <<if $asylumPuzzleProgress gte 1>> <<loadNPC 0 "asylum_puzzle_group">> <span class="blue"> It's the same group you helped last time,</span> back to poring over their puzzle. <<else>> <<generate1>> They're working on what appears to be a large puzzle laid out in front of them. <</if>> <br><br> <<= $asylumPuzzleProgress >= 1 ? "The" : "A">> <<person1>><<person>> looks over and makes eye contact, <<if pcAreArmsBound("both")>> then laughs and turns away.<<asylumstatus -1>><<lcool>> <br><br> <span class="blue"> You can't participate with your arms bound.</span> <br><br> <<link [[Next|Asylum]]>><<handheldon>><<endevent>><</link>> <br> <<elseif $asylumstatus gte 60>> then waves you over. <br><br> <<link [[Join them|Asylum Puzzle]]>><<asylumstatus 1>><</link>><<gcool>> <br> <<link [[Turn away|Asylum]]>><<handheldon>><<endevent>><</link>> <br> <<else>> then glares at you in contempt. You hasten to turn away and find something else to do. <br><br> <<link [[Next|Asylum]]>><<handheldon>><<endevent>><</link>> <br> <</if>> <</addinlineevent>> <</if>> <<runeventpool>> <<else>> <<link [[Next|Asylum]]>><<handheldon>><</link>> <br> <</if>> <</widget>> <<widget "passoutasylum">> <<if isPregnancyEnding()>> <<pregnancyPassout "asylum">> <<else>> <<passout>> <<link [[Everything fades to black...|Passout Asylum]]>><</link>> <</if>> <</widget>> <<widget "asylumescape">> <<set $asylumescaped to 1>> <<specialClothesUnlock "set" "asylum">> <<if $location is "tentworld">> <<set $asylumtentacleescape to 1>> /* unused */ <</if>> <<if C.npc.Robin.init is 1>> <<set $robinReunionScene to "asylum">> <</if>> <</widget>><<set $location to "bog">><<set $outside to 1>><<effects>> <<if !$bogProgress>> <<set $bogProgress to 1>> You follow the brook downstream until you come to the edge of a rocky outcrop. A wall of drenched leaves obscures the horizon ahead. <br><br> You carefully peer over the edge. You see a rickety wooden walkway at the bottom off to the right, worn by the trickle of water from the end of the brook. The water beyond is stagnant, but looks deep enough to jump into. <br><br> <span class="gold">You've discovered the bog.</span> <<else>> You follow the brook downstream, to the edge of the bog. <</if>> <br><br> <<if $harpy gte 6 or $angel gte 6 or $demon gte 6 or $fallenangel gte 2>> <<link [[Glide down (0:01)|Bog Intro Glide]]>><<pass 1>><</link>><<flight_text>> <br> <</if>> <<link [[Climb down (0:05)|Bog Intro Climb]]>><<pass 5>><</link>><<athleticsdifficulty 200 800>> <br> <<link [[Jump into the water (0:01)|Bog Intro Jump]]>><<pass 1>><</link>> <br><<effects>> You jump, falling several feet before the stagnant air catches your wings. You land hard, but unharmed, on the wooden walkway. <br><br> <<link [[Next|Bog]]>><<set $bogdepth to 4>><<set $bogwater to 0>><</link>> <br><<effects>> You clamber over the ledge and find purchase against the rock wall. <<if $athleticsSuccess>> <<unset $athleticsSuccess>> You take your time, slowly working your way down until <span class="green">your feet touch the wooden walkway.</span> <br><br> <<if $worn.lower.name isnot "naked">> You dust off your hands on your $worn.lower.name. <<elseif $worn.upper.name isnot "naked">> You dust off your hands on your $worn.upper.name. <<else>> You dust off your hands. <</if>> <br><br> <<link [[Next|Bog]]>><<set $bogdepth to 4>><<set $bogwater to 0>><</link>> <br> <<else>> You take your time, slowly working your way down until <span class="red">you slip about halfway</span>. You fall, plunging into the mire. <<pain 4>><<stress 12>><<trauma 6>><<gpain>><<gstress>><<gtrauma>> <br><br> <<water>> <<if Time.season is "winter">> The frigid water steals the breath from your lungs. You nearly gasp for breath on instinct, but manage to surface before doing so. <<else>> The water is murky and unpleasant. You surface, covered in stray plant matter. <</if>> <br><br> <<link [[Next|Bog]]>><<set $bogdepth to 4>><<set $bogwater to 1>><</link>> <br> <</if>><<effects>> You take a deep breath, a step back, and a moment to collect yourself. <br><br> With a running start, you leap over the precipice, clearing the walkway and plunging into the murky water. <br><br> <<water>> <<if Time.season is "winter">> The frigid mire steals the breath from your lungs. You nearly gasp for breath on instinct, but manage to surface before doing so. <<else>> You surface, covered in stray plant matter. <</if>> <br><br> <<link [[Next|Bog]]>><<set $bogdepth to 4>><<set $bogwater to 1>><</link>> <br><<set $location to "bog">><<set $outside to 1>><<effects>> You're in the bog between the forest and moor. <<if $bogwater gte 1>> <<water>><<set _bogmod to 1.5>> The water here is just shallow enough to stand in. <<else>> <<set _bogmod to 1>> A wooden pathway spares you from traversing the mire. <</if>> <<switch Weather.precipitation>> <<case "none">> <<switch Time.dayState>> <<case "dawn">> The low morning sun casts an enchanting light through the trees. <<case "day">> The sun's rays fight to pierce the canopy. <<case "dusk">> Strange shapes of light dance against the walkway and reflect from the water. <<case "night">> <<if Weather.bloodMoon>> The stagnant water reflects red light back into the canopy. <<else>> The stagnant water reflects just enough moonlight to allow you to see. <</if>> <</switch>> A stone tower is visible far in the distance, to the east. <<case "rain">> Rain drips in patches through the thick canopy, creating a percussive rhythm as it assails the path. <<case "snow">> The canopy catches most of the snow, creating a surreal <<if Weather.bloodMoon>>red<<else>>white<</if>> blanket above. <</switch>> <<if $bogdepth is 4>> A rocky cliff face blocks the way back to the forest. <span class="red">There's no way up.</span> <<elseif $bogdepth is 1>> The treeline is thin, and you can see the moor from here. <</if>> <br><br> <<if $arousal gte $arousalmax>> <<orgasmbog>> <</if>> <<if $stress gte $stressmax and !$possessed>> <<passoutbog>> <<else>> <<if $eventskip is 0>> <<rng>> <<if dangerEvent(_bogmod)>> <<eventbog>> <<else>> <<eventbogsafe>> <</if>> <<else>> <<if $bogwater gte 1>> <<link [[Pull yourself back onto the walkway|Bog]]>><<set $bogwater to 0>><<set $eventskip to 1>><</link>> <br> <<else>> Follow the walkway <br> <<if $bogdepth lte 3>> <<foresticon>><<link [[West, towards the forest (0:10)|Bog]]>><<set $bogdepth += 1>><<pass 10>><</link>> <br> <</if>> <<if $bogdepth gte 2>> <<mooricon>><<link [[East, towards the moor (0:10)|Bog]]>><<set $bogdepth -= 1>><<pass 10>><</link>> <br> <<elseif $bogdepth lte 1>> <<mooricon>><<link [[East, into the moor (0:05)|Moor]]>><<set $bogdepth to 0>><<set $bogwater to 0>><<set $moor to 85>><<set $eventskip to 1>><<pass 5>><</link>> <br> <</if>> <</if>> <</if>> <</if>> <<set $eventskip to 0>><<effects>> You widen your posture and shoot a glare at the <<beasttype>>. <<if $physiqueSuccess>> <<bHe>> hisses and takes a few steps forward, <<bhis>> footfalls shaking the wooden slats. <span class="green"><<bHe>> stops short, seemingly deciding that you're more trouble than you're worth.</span> <br><br> <<link [[Next|Bog]]>><<set $eventskip to 1>><<endevent>><</link>> <br> <<else>> <span class="red"><<bHe>> charges you.</span> You turn to run, but <<bhe>> catches you almost immediately, dragging you into the water.<<silently>><<water>><</silently>> <br><br> <<link [[Next|Bog Lizard Rape]]>><<set $molestationstart to 1>><</link>> <br> <</if>><<effects>> You sprint away from the <<beasttype>>. <<bHis>> claws dig into the wood, and <<bhe>> charges. <<if $athleticsSuccess>> <span class="green">You run fast enough that the <<beasttype>> gives up.</span> You turn and see <<bhim>> slinking back into the mire. <br><br> <<link [[Next|Bog]]>><<set $eventskip to 1>><<endevent>><</link>> <br> <<else>> <<water>> <span class="red">You're not fast enough.</span> The <<beasttype>> easily knocks you down, dragging you into the water.<<silently>><<water>><</silently>> <br><br> <<link [[Next|Bog Lizard Rape]]>><<set $molestationstart to 1>><<set $bogwater to 1>><</link>> <br> <</if>><<if $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<beastCombatInit>> <<set $water to 1>> <</if>> <<effects>> <<effectsman>> <br> <<beast $enemyno>> <br><br> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Bog Lizard Rape Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Bog Lizard Rape]]>><</link>></span><<nexttext>> <</if>><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<beastejaculation>> The <<beasttype>> hisses <<bhis>> satisfaction, and dives back into the stagnant water. <<elseif $enemyhealth lte 0>> The <<beasttype>> hisses in pain and dives back into the stagnant water. <</if>> <br><br> <<tearful>> you gather yourself. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Bog]]>><<set $eventskip to 1>><</link>> <br><<if $molestationstart is 1>> <<set $molestationstart to 0>> <<set $combat to 1>> <<set $enemytype to "tentacles">> <<molested>> <<controlloss>> <<tentaclestart 10 15 "root" "vine" true>> <<elseif $molestationstart is 2>> <<set $molestationstart to 0>> <<set $combat to 1>> <<set $enemytype to "tentacles">> <<consensual>> <<set $consensual to 1>> You draw them closer through the water. <<deviancy5>> <<set _randomtentacles to (6 + random(1, 10))>> <<tentaclestart _randomtentacles 15 "root" "vine" true>> <</if>> <<statetentacles>> <<effects>> <<effectstentacles>> <<tentacles>> <<actionstentacles>> <<if $tentacles.active lte ($tentacles.max / 2)>> <span id="next"><<link [[Next|Bog Tentacles Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Bog Tentacles]]>><</link>></span><<nexttext>> <</if>><<effects>> The vines lose interest in you, and retreat back into the canopy. <<tearful>> you untangle yourself from the plants and vines surrounding you. <<clotheson>> <<endcombat>> <<link [[Next|Bog]]>><<set $eventskip to 1>><</link>> <br><<effects>> You travel along the <<switch $phase>> <<case 0>>last <<case 1>>first <<case 2>>second <<case 3>>third <<case 4>>fourth <<case 5>>fifth <<case 6>>sixth <<case 7>>seventh <<case 8>>eighth <<case 9>>ninth <</switch>> path. <<rng>> <<if $boglost gte 5>> <<pass 1 hour>><<pain 2>> You run. And run. More and more pathways sprout from the one you're on, almost like branches or the prongs of an impossibly large set of antlers. <br><br> <<link [[Stay the course (?:??)|Bog Lost Follow]]>><</link>><<willpowerdifficulty 600 1000>> <br> <<link [[Block everything out|Bog Lost Block]]>><<trauma 30>><</link>><<gggtrauma>> <br> <<elseif $rng lte 15>> The path begins to look familiar, even as the one behind you looks entirely different. You think you've found the correct way. <br><br> <<link [[Next|Bog]]>><<set $eventskip to 1>><</link>> <br> <<else>> <<switch $boglost>> <<case 0>>You see no sign of your original route. <<case 1>>You don't recognise any landmarks. <<stress 6>><<gstress>> <<case 2>>Your heart begins to race. <<stress 12>><<ggstress>> <<case 3>>The trees themselves seem to change behind you as you walk. You double back, trying to find anything that will guide you. <<stress 12>><<ggstress>> <<case 4>>You run, directionless and lost. Nothing seems real. <<stress 12>><<ggstress>><<trauma 12>><<ggtrauma>> <</switch>> <<set $boglost++>> <br><br> More paths branch off ahead. <br><br> <<link [[Try to backtrack (0:10)|Bog Lost]]>><<pass 10>><<set $phase to 0>><</link>> <br> <<link [[Follow the first path (0:10)|Bog Lost]]>><<pass 10>><<set $phase to 1>><</link>> <br> <<link [[Follow the second path (0:10)|Bog Lost]]>><<pass 10>><<set $phase to 2>><</link>> <br> <<link [[Follow the third path (0:10)|Bog Lost]]>><<pass 10>><<set $phase to 3>><</link>> <br> <<link [[Follow the fourth path (0:10)|Bog Lost]]>><<pass 10>><<set $phase to 4>><</link>> <br> <<link [[Follow the fifth path (0:10)|Bog Lost]]>><<pass 10>><<set $phase to 5>><</link>> <br> <<if $boglost gte 2>> <<link [[Follow the sixth path (0:10)|Bog Lost]]>><<pass 10>><<set $phase to 6>><</link>> <br> <<if $boglost gte 3>> <<link [[Follow the seventh path (0:10)|Bog Lost]]>><<pass 10>><<set $phase to 7>><</link>> <br> <<if $boglost gte 4>> <<link [[Follow the eighth path (0:10)|Bog Lost]]>><<pass 10>><<set $phase to 8>><</link>> <br> <<link [[Follow the ninth path (0:10)|Bog Lost]]>><<pass 10>><<set $phase to 9>><</link>> <br> <</if>> <</if>> <</if>> <</if>><<effects>> <<set _lost to random(80, 240)>> <<pass _lost>> <<if $willpowerSuccess>> You stay the course, and decide to follow this path to its end no matter what. You'll find a way out eventually, so long as you continue straight ahead. <br><br> Each side path splits into two more, and each of those into four. <span class="green">You ignore them.</span> Each one spirals into the unknown depths of the bog, tempting you. Each one looks more like salvation. <span class="green">You ignore them.</span> <br><br> The path ends ahead. You don't care. You continue to walk forward. <span class="green">Planks rise from the depths of the mire to meet your determined stride.</span> There is only one path, and it's ahead of you. <br><br> The trees begin to part. The bog spreads out before you. The path behind you is normal and unbroken. You won't fall prey to it again. <br><br> <<link [[Next|Bog]]>><<endevent>><<set $bogdepth to 1>><<set $eventskip to 1>><<set $boglost to 10>><</link>> <br> <<else>> You keep moving forward. Each side path splits into three more, and each of those into six. Each one spirals into the unknown depths of the bog, tempting you. Each one looks more like salvation. <span class="red">It's too much.</span> <br><br> Your mind tries to map each path, to make some rational sense of what's happening to you. It can't. Each pathway fights for your attention, forcing its way into your mind. There are too many. A lifetime isn't long enough to tread them all. One mind can't map their destinations. <br><br> You collapse in a heap, clutching your head. The path doesn't catch you. <br><br> <<water>> The water brings you back to your senses. You surface and gasp for breath, clinging to the side desperately. You pant, looking around. There is only one path. <br><br> You hoist yourself back up. <br><br> <<link [[Next|Bog]]>><<endevent>><<set $eventskip to 1>><<unset $boglost>><</link>> <br> <</if>><<effects>> Hundreds of pathways extend in every direction, twisting into utter darkness. Your ears ring. You cover them. <br><br> You collapse to your knees. The pathway isn't just below you anymore. Pathways extend in a spiral up thick tree trunks, down below the surface of the water, and upside-down above you in the canopy. <br><br> All at once, they begin to collapse. Planks of wood rain down, splashing into the water. Trees reclaim the treated wood into their bark, crushing them. The water swallows what remains, spreading rot and algae across their surfaces until they are nothing. <br><br> Your eyes lie. You shut them. <br><br> You steady your breathing. You don't know how long you kneel for. When you open your eyes, all that remains is the path ahead of you. <br><br> <<link [[Next|Bog]]>><<endevent>><<set $eventskip to 1>><<unset $boglost>><</link>> <br><<effects>> You know the bog's tricks. You step into the water ahead. The path reveals itself to you. You stay the course. <br><br> <<link [[Next|Bog]]>><<endevent>><<set $eventskip to 1>><</link>> <br><<effects>> You grab the vine with both hands and take a step back, ready to make a running jump. <<if $rng gte 71 and $settings.plantsEnabled and $settings.tentaclesEnabled and ($hallucinations gte 2 or $backgroundTraits.includes("plantlover"))>> <<generatePlant1>><<person1>> <span class="green">You clear the distance and make it to the other side</span>, <span class="red">but your hands stick to the vine.</span> You swing back, unable to let go. <br><br> You gradually lose speed until you're hanging over the broken section. <span class="red">The vine begins to pull itself upwards into the canopy.</span> <br><br> "I've caught such a pretty little flower this time," you hear from above you. You look to the source. A <<person>> hangs upside-down from the canopy, with <<plant_details>> braided into <<his>> hair. "You're such a rare treat. Let me enjoy you for a while. Or I could drop you. Your choice." Countless vines shoot down and encircle you! <br><br> <<link [[Next|Bog Plant Suspended Sex]]>><<set $molestationstart to 1>><</link>> <br> <<elseif $athleticsSuccess>> You clear the distance and make it to the other side, <span class="green">landing without issue.</span> <br><br> <<link [[Next|Bog]]>><<set $eventskip to 1>><</link>> <br> <<else>> You can't hold on and <span class="red">slip from it.</span> You plunge into the mire. <br><br> <<water>> <<link [[Next|Bog]]>><<set $bogwater to 1>><</link>> <br> <</if>><<effects>><<set $location to "bog">> <<generatePlant1>><<person1>> You wake up with a lurch forward and feel like you're falling. You move to arrest your fall, but find yourself completely entangled by vines. You're suspended in the air. You look down and see no solid ground below. It's a long drop into the water. <br><br> "Never thought I'd find such a pretty flower out here of all places," you hear from above you. You struggle against your bindings and manage to look to the source. A <<person>> hangs upside-down from the canopy, with <<plant_details>> braided into <<his>> hair. <<if $exposed lte 1>> Your $worn.lower.name <<lowerhas>> been <<if setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1>>lifted up<<else>>pulled down<</if>>, <<if !$worn.under_lower.type.includes("naked")>> and your $worn.under_lower.name <<underlowerhas>> been pulled aside,<</if>> <span class="pink">revealing your <<genitals>>.</span> <</if>> <<if $bogwater is 1>> "You exhausted yourself to the point of collapse, right in the middle of the bog. If not for me, you could have drowned! <<else>> "You exhausted yourself to the point of collapse. If not for me, you could have rolled right into the water and drowned! <</if>> <<set $bogwater to 0>> Naturally, I had to secure you to make sure you were safe." The vines around you tighten, as if by command. <<He>> moves through the canopy with ease, encircling you. It's hard to tell where <<he>> ends and the trees begin. <<if setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1>><<set $worn.lower.skirt_down to 0>><<else>><<set $worn.lower.state to "thighs">><</if>> <<set $worn.lower.vagina_exposed to 1>><<set $worn.lower.anus_exposed to 1>><<set $worn.lower.exposed to 2>> <<set $worn.under_lower.vagina_exposed to 1>><<set $worn.under_lower.anus_exposed to 1>><<set $worn.under_lower.exposed to 1>><<set $worn.under_lower.state to "thighs">> <br><br> "You're such a rare treat. Let me enjoy you for a while. Or I could drop you. Your choice." <br><br> <<link [[Next|Bog Plant Suspended Sex]]>><<set $molestationstart to 1>><</link>> <br><<if $sexstart is 1 or $molestationstart is 1>> <<if $sexstart is 1>> <<set $sexstart to 0>> <<consensual>><<set $consensual to 1>> <<neutral 1>> <<elseif $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <</if>> <<maninit "plant">><<npcexpose>> <<set $enemyarousalmax to 800>> <<set _randomtentacles to random(10, 12)>> <<makeAbomination _randomtentacles 8 "vine" "vine" true>> <<set $tentacles[0].shaft to "tummy">> <<if $player.breastsize gte 2 and $chestuse is 0>> <<set $tentacles[1].shaft to "breasts">><<set $chestuse to "squeezed">> <<else>> <<set $tentacles[1].shaft to "chest">> <</if>> <<set $tentacles[2].shaft to "waist">> <<set $tentacles[3].shaft to "neck">><<set $head to "grappled">> <<set $tentacles[4].shaft to "leftleg">><<set $leftleg to "grappled">> <<set $tentacles[5].shaft to "rightleg">><<set $rightleg to "grappled">><<set $feettarget to "tentacles">> <</if>> <<effects>> <<effectsabomination>> <<abomination>> <<stateabomination>> <br><br> <<actionsabomination>> <<if _combatend or $tentacles.active lte 3>> <span id="next"><<link [[Next|Bog Plant Suspended Sex Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Bog Plant Suspended Sex]]>><</link>></span><<nexttext>> <</if>><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<ejaculation>> <<if $tentacles.active lte 4>> The remaining tentacles aren't strong enough to hold you through <<his>> orgasmic spasms, and you drop into the water. <<water>> <br><br> "Oh dear, I've lost my catch!" A few more vines slither down and lift you from the water, gingerly placing you on the nearby walkway. "So sorry, little flower, I got carried away! I'll be more careful next time, come back soon!" <<else>> The <<if $tentacles.active lte $tentacles.max>>remaining <</if>>vines loosen, gently lowering you down and around the tree, onto the walkway. "Thanks for indulging me, little flower," the <<person>> chirps. "Come back soon!" <</if>> <br><br> <<He>> vanishes into the canopy, <<his>> vines following. <br><br> <<elseif $enemyhealth lte 0>> As you fight back, the <<persons>> tentacles all suddenly retract, letting you drop into the water. <<stress 12>><<pain 6>><<ggstress>><<gpain>> <<water>> <br><br> "This little flower is covered in thorns." <<He>> disappears into the canopy, nursing some new bruises. You pull yourself back up onto the walkway. <<elseif $tentacles.active lte 3>> The remaining tentacles can't hold up your weight, and you're dropped into the water. <<stress 12>><<pain 6>><<ggstress>><<gpain>> <<water>> <br><br> "Oh dear, I've lost my catch!" A few more vines slither down and lift you from the water, gingerly placing you on the nearby walkway. "So sorry, little flower, I got carried away! I'll be more careful next time, come back soon!" <br><br> <<He>> vanishes into the canopy, <<his>> vines following. <br><br> <<else>> The <<if $tentacles.active lte $tentacles.max>>remaining <</if>>vines loosen, gently lowering you down onto the walkway. "Thanks for indulging me, little flower," the <<person>> chirps. "Come back soon!" <br><br> <<He>> vanishes into the canopy, <<his>> vines following. <br><br> <</if>> <<tearful>> you gather yourself. <<clotheson>> <<endcombat>> <<link [[Next|Bog]]>><<set $eventskip to 1>><</link>><<effects>><<hallucinogen 40>> You awaken to the sound of wet sloshing. You shoot up straight, looking around. <<if Time.dayState is "night">> It's too dark to see anything. <<else>> You don't see the source. <</if>> <br><br> A shiver runs up your spine. You're not sure why, but you feel like you need to move. <<if $bogwater gte 1>> You wade through the water, pulling yourself up onto the walkway. <<else>> You scramble to your feet, trusting your instincts. <</if>> <br><br> You take a step back. Just in time. A muddy black appendage shoots up from the murky water, grasping at where your leg just was. <<stress 12>><<ggstress>> <br><br> From the darkness between the trees, dim pairs of yellow light flicker into existence. Dozens. Hundreds of limbs shoot up, grasping the walkway as if to make it one with the swamp. The wood creaks and groans. Masses of mud rise from the depths. A chorus of howling shrieks fills the dead air. <<trauma 30>><<gggtrauma>> <br><br> Adrenaline finally unfreezes your paralysed muscles, and you run. <br><br> <<link [[Next|Bog Passout 2]]>><</link>> <br><<effects>> You keep running. You don't know which way you're going. More shapes appear from the water ahead. More eyes peer from every direction. Your lungs burn. <br><br> You push onwards. The sounds are almost unbearable. Stars creep into your vision. The walkway pushes back against your feet, seemingly trying to wear you down. <br><br> You run until you throw yourself off the end of the walkway, tumbling into the moor. You look back into the bog, but see nothing pursuing you. <br><br> You collapse onto your back, exhaustion finally overtaking you. It takes some time to catch your breath and steady your nerves. <<gtiredness>><<tiredness 8>> <br><br> <<link [[Next|Moor]]>><<set $bogdepth to 0>><<set $bogwater to 0>><<set $moor to 85>><<set $eventskip to 1>><</link>> <br><<widget "passoutbog">> <<if isPregnancyEnding()>> <<set $bogdepth to 0>><<set $bogwater to 0>> <<pregnancyPassout "bog">> <<else>> You've pushed yourself too much. <<if $bogwater gte 1>> You barely manage to slump against a tree, saving yourself from sinking. <</if>> <br><br> <<passout>> <<if dangerEvent()>> <<if $rng gte 71 and $settings.plantsEnabled and $settings.tentaclesEnabled and ($hallucinations gte 2 or $backgroundTraits.includes("plantlover"))>> <<link [[Everything fades to black...|Bog Plant Tentacle Passout]]>><</link>> <<else>> <<link [[Everything fades to black...|Bog Passout]]>><</link>> <</if>> <<else>> <<ambulance>> <</if>> <</if>> <<pass 1 hour>> <<trauma 6>><<set $stress -= 2000>> <</widget>> <<widget "eventbog">> <<cleareventpool>> <<if $bogwater gte 1>> <<addinlineevent "bog_water_lizard">> The water bubbles. You're suddenly splashed as something big emerges right in front of you! <<beastNEWinit 1 lizard>> <<if $monster is 1 or $settings.bestialityEnabled>> The scaled face of a <<beasttype>> eyes you hungrily. <<bHe>> leaps at you, dragging you under the surface. <br><br> <<link [[Next|Bog Lizard Rape]]>><<set $molestationstart to 1>><</link>> <br> <<else>> A large lizard grabs you in its maw. You manage to struggle free, but not unscathed. <<beastescape>> <br><br> you pull yourself back onto the walkway. <br><br> <<link [[Next|Bog]]>><<set $bogwater to 0>><<set $eventskip to 1>><</link>> <br> <</if>> <</addinlineevent>> <<addinlineevent "bog_water_tentacles">> <<if $settings.tentaclesEnabled and ($hallucinations gte 2 or $backgroundTraits.includes("plantlover"))>> Something grabs your ankle from under the water. Vines slither down from trees and across the surface. <br><br> <<link [[Struggle|Bog Tentacles]]>><<set $molestationstart to 1>><</link>> <br> <<if hasSexStat("deviancy", 5)>> <<link [[Draw them closer|Bog Tentacles]]>><<set $molestationstart to 2>><</link>><<deviant5>> <</if>> <<else>> Something grabs your ankle from under the water. You try to push it off, but are quickly dragged under. <br><br> You continue to struggle, and eventually break free of whatever it is. You wade through the water to get away. <<stress 12>><<ggstress>><<trauma 6>><<ggtrauma>> <br><br> <<link [[Next|Bog]]>><<set $eventskip to 1>><</link>> <br> <</if>> <</addinlineevent>> <<addinlineevent "bog_water_noise">> As you wade through the water, you hear a light splashing in the distance. You try to look, but there's nothing. You walk into a tangle of hanging vines in your distraction and panic for a brief moment. <<stress 12>><<ggstress>> <br><br> <<link [[Next|Bog]]>><<set $eventskip to 1>><</link>> <br> <</addinlineevent>> <<addinlineevent "bog_water_tangle">> As you wade through the water, something snags on your foot. You pull, but it does not yield. Your other foot becomes tangled as you try to break free. <<stress 6>><<gstress>> <br><br> It takes some time, but you eventually manage to free yourself. <<pass 10>> <br><br> <<link [[Next|Bog]]>><<set $eventskip to 1>><</link>> <br> <</addinlineevent>> <<if $settings.parasitesEnabled and ($parasite.tummy.name is undefined or $parasite.bottom.name is undefined)>> <<addinlineevent "bog_water_parasite" 0.33>> <<if $parasite.tummy.name is undefined>> <<parasite tummy urchin>> You feel something stick to your stomach. <<else>> <<parasite bottom urchin>> You feel something stick to your bottom. <</if>> <span class="lewd">It starts to feel warm.</span> You try to pull it off, but it won't budge. <br><br> <<link [[Next|Bog]]>><<set $eventskip to 1>><</link>> <br> <</addinlineevent>> <</if>> <<else>> <<addinlineevent "bog_lizard">> The water bubbles. You hear a loud splash as something big jumps onto the walkway. <<beastNEWinit 1 lizard>> <<if $monster is 1 or $settings.bestialityEnabled>> The scaled face of a <<beasttype>> eyes you hungrily. <br><br> <<link [[Make yourself look bigger|Bog Lizard Stand]]>><</link>><<physiquedifficulty 6000 16000>> <br> <<link [[Run|Bog Lizard Run]]>><</link>><<athleticsdifficulty 0 700>> <br> <<else>> You flee, but not unscathed. <<beastescape>> <br><br> <<link [[Next|Bog]]>><<endevent>><<set $eventskip to 1>><</link>> <br> <</if>> <</addinlineevent>> <<addinlineevent "bog_noise">> As you walk, you hear a light splashing some distance behind you. You try to look, but there's nothing. You walk into a tangle of hanging vines in your distraction and panic for a brief moment. <<stress 12>><<ggstress>> <br><br> <<link [[Next|Bog]]>><<set $eventskip to 1>><</link>> <br> <</addinlineevent>> <<addinlineevent "bog_gap">> You come to a broken section of the walkway. It's too far to jump, but there's a thick vine hanging down over the gap. <br><br> <<link [[Swing across|Bog Swing]]>><</link>><<athleticsdifficulty 100 600>> <br> <<link [[Swim|Bog]]>><<set $bogwater to 1>><</link>> <br> <</addinlineevent>> <<if $hallucinations gte 1>> <<addinlineevent "bog_lost">> Something's wrong with the path ahead. As you get closer, you notice that the wooden walkway abruptly ends. It doesn't look broken. It's as if this was the natural endpoint, with nothing but water beyond. <br><br> You turn around. <span class="red">The walkway branches off in several directions.</span> You can't even tell which way you came from. <br><br> <<if $boglost gte 10>> <<link [[Stay the course (0:05)|Bog Lost Stay]]>><<pass 5>><</link>> <br> <</if>> <<link [[Follow the first path (0:10)|Bog Lost]]>><<set $boglost to 0>><<pass 10>><<set $phase to 1>><</link>> <br> <<link [[Follow the second path (0:10)|Bog Lost]]>><<set $boglost to 0>><<pass 10>><<set $phase to 2>><</link>> <br> <<link [[Follow the third path (0:10)|Bog Lost]]>><<set $boglost to 0>><<pass 10>><<set $phase to 3>><</link>> <br> <<link [[Follow the fourth path (0:10)|Bog Lost]]>><<set $boglost to 0>><<pass 10>><<set $phase to 4>><</link>> <br> <</addinlineevent>> <</if>> <</if>> <<runeventpool>> <</widget>> <<widget "eventbogsafe">> <<cleareventpool>> <<addinlineevent "event_ambient">> <<eventAmbient>> <<link [[Next|Bog]]>><<set $eventskip to 1>><</link>> <br> <</addinlineevent>> <<if $bogwater gte 1>> <<addinlineevent "safebog_water_1">> Something brushes against your leg under the surface before darting away. <<stress 6>><<gstress>> <br><br> <<link [[Next|Bog]]>><<set $eventskip to 1>><</link>> <br> <</addinlineevent>> <<addinlineevent "safebog_water_2">> A frog sits on a lilypad in front of you. It eyes you curiously before croaking. <br><br> <<link [[Next|Bog]]>><<set $eventskip to 1>><</link>> <br> <</addinlineevent>> <<else>> <<addinlineevent "safebog_spores">> A cluster of strange fungal pods cover a tree ahead. As you pass by, one of them releases a faint pink mist. You feel strange. <<hallucinogen 60>><<ghallucinogens>> <br><br> <<link [[Next|Bog]]>><<set $eventskip to 1>><</link>> <br> <</addinlineevent>> <<addinlineevent "safebog_splash">> A loud splashing comes from your left. You look, but only see ripples in the water. <<stress 6>><<gstress>> <br><br> <<link [[Next|Bog]]>><<set $eventskip to 1>><</link>> <br> <</addinlineevent>> <<addinlineevent "safebog_walk">> The wooden path makes the journey easy. <br><br> <<link [[Next|Bog]]>><<set $eventskip to 1>><</link>> <br> <</addinlineevent>> <</if>> <<runeventpool>> <</widget>><<set $outside to 0>><<set $location to "cabin">><<effects>> <<if Weather.isSnow>>Snow covers the ground around the cabin, painting the scenery a pure white. <</if>> A distinctive winter chill settles in you, causing you to shiver. When you find Eden, <<hes>> as busy as always. You call <<him>> over and hand <<him>> the hunting jacket. "Merry Christmas," you say. <br><br> Eden looks taken aback. "Is it Christmas already?" <<he>> asks. Taking the hunting jacket, <<he>> turns it over and inspects it, then goes to the cabin mirror and tries it on. Looks like you bought the right size. <br><br> "Thanks," <<he>> says. "I wasn't expecting anything." <br> <<if $speech_attitude is "meek">> "Well, y-you did say you didn't know it was Christmas today," you say. <<elseif $speech_attitude is "bratty">> "Makes sense, since you didn't know it was Christmas and all," you say. <<else>> "Well, you said you didn't realise it was Christmas," you say. <</if>> <br><br> Eden shoots you a look, but can't argue with your point. "I didn't prepare anything for you," <<he>> says. You're about to tell <<him>> that <<he>> didn't need to do anything, but <<he>> stops you. "Hang on." <br><br> <<if Time.hour lte 17>> "I've got an idea. <span class="green">Be here at six for dinner tonight.</span> I'll have something ready by then." <br><br> <<link [[Next|Eden Cabin]]>><<set $edenmeal to 1>><<endevent>><</link>> <<else>> "I've got an idea." <<He>> walks to the oven. <br><br> <<link [[Next|Eden Christmas Meal]]>><<endevent>><</link>> <</if>><<effects>> <<npc Eden>><<person1>>Eden busies <<himself>> with gathering ingredients, preparing something. You roam around the cabin, trying to peek over <<his>> shoulder or at least help <<him>> out. Your efforts are for naught though, as <<he>> insists that you let <<him>> handle everything tonight. As <<he>> starts cooking, a mouth-watering scent fills the cabin, adding to the anticipation of the moment. <br><br> <<He>> calls you to the table after a long wait. A beautiful meal for two is laid out. It looks as good as it smells. You look to Eden and <<he>> seems a bit worn out, but proud of <<himself>>. You think it's the most effort Eden's ever put into cooking before. <br><br> <<link [[Next|Eden Christmas Meal 2]]>><<pass 20>><</link>><<effects>><<set $eden_christmas_dinner to 1>><<set $daily.eden.dinner to 1>> You and Eden take a seat, and you try a bite of the food. It's delicious and bursting with flavour. You're about to take another bite, but stop when you notice that Eden isn't eating. In fact, <<he>> looks tense as <<he>> glances between you and the food. <br><br> It's not usual for <<him>> to be nervous. In an attempt to reassure <<him>>, you smile and compliment <<his>> work. <<He>> looks relieved by your words, and starts eating. <<He>> still seems doubtful. <br><br> You chat with Eden over the meal, attempting to lighten the mood. <<Hes>> as quiet as always, but seems more attentive than usual today. Halfway through, <<he>> looks up, as if just remembering something. Going to a nearby cabinet, <<he>> pulls out a fancy looking bottle of bourbon. You wonder how you've never seen it in the cabin before. <br><br> <<He>> goes back to the table and prepares two glasses. "Want some?" <<he>> asks. <br><br> <<if playerIsPregnant() and playerAwareTheyArePregnant()>> <span class="blue">You can't bring yourself to drink while you know you're with child.</span> <<else>> <<link [[Accept|Eden Christmas Meal 3]]>><<set $phase to 1>><</link>><<ggalcohol>> <</if>> <br> <<link [[Decline|Eden Christmas Meal 3]]>><<set $phase to 2>><</link>><<effects>> <<if $phase is 1>> You accept, and <<he>> pours a glass for you. The smooth taste of the drink compliments your meal perfectly. <<alcohol 120>> <<elseif $phase is 2>> You decline, and <<he>> shrugs. "More for me," <<he>> says, as <<he>> fills <<his>> glass. <</if>> <br><br> After you're done, <<he>> clears the table and invites you over to the fireplace. In the frosty cold of the winter season, the flames seem twice as warm. <<if $phase is 1>> Or maybe it's the alcohol causing the heat. <</if>> You turn to Eden, and <<he>> smiles at you, trailing <<his>> hand down your side. <<He>> rests your chin on <<his>> fingers, and moves <<his>> face closer to yours. <br><br> <<link [[Kiss Eden|Eden Christmas Sex]]>><<npcincr Eden love 1>><<npcincr Eden dom 1>><<set $sexstart to 1>><</link>> <br> <<link [[Turn away|Eden Christmas Turn]]>><</link>><<if $sexstart is 1>> <<set $sexstart to 0>> <<consensual>> <<set $consensual to 1>> <<neutral 1>> <<maninit>> <<set $enemytrust += 100>><<set $enemyhealth to 600>><<set $enemyhealthmax to 600>> <<promiscuity1>> <<elseif $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<maninit>><<set $enemyhealth to 600>><<set $enemyhealthmax to 600>><<set $enemyanger += 50>> <</if>> <<effects>> <<effectsman>> <<man>> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Eden Christmas Sex Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Eden Christmas Sex]]>><</link>></span><<nexttext>> <</if>><<effects>> You turn your face away from <<him>>. <<He>> looks surprised for a moment, but doesn't push it and goes back to holding you. <br><br> <<link [[Next|Eden Christmas Meal 4]]>><</link>> <br><<set $outside to 0>><<set $location to "cabin">><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<ejaculation>><<npcincr Eden lust -20>> Eden embraces you and pulls you into <<his>> chest. <br><br> <<clotheson>> <<endcombat>> <<elseif $enemyhealth lte 0>> "Really? Today, of all days?" <<he>> asks, exasperated. <<He>> winces and holds <<his>> side. "I need to get something for this." <br><br> <<He>> leaves you by the fireplace. <br><br> <<clotheson>> <<endcombat>> <<elseif $finish is 1>> "Okay," <<he>> says. <<He>> doesn't push it and goes back to holding you. <br><br> <<clotheson>> <<endcombat>> <</if>> <br><br> <<link [[Next|Eden Christmas Meal 4]]>><</link>><<effects>> <<npc Eden>><<person1>> The two of you bask in the peaceful stillness of the night. In the glow of the flames, Eden looks almost ethereal. You look at <<him>>, entranced, until <<he>> breaks the silence. "I'd always spend my Christmas alone," <<he>> says, "but I'm glad you're here." You smile in response, and <<he>> gently weaves <<his>> hand through your hair, returning your gaze with <<his>> own. <br><br> "You're the best thing that's ever happened to me," <<he>> whispers, as <<he>> kisses your forehead. <<if Weather.isSnow>>Snow covers the ground around the cabin, but you no longer feel the biting chill. <<else>>You no longer feel the biting chill.<</if>> Instead, the warmth of Eden's love surrounds you as you lie pressed against <<his>> chest. <br><br> <<link [[Next|Eden Cabin]]>><<endevent>><</link>><<set $outside to 0>><<set $location to "cabin">><<effects>> <<if C.npc.Eden.lust gte 26 and $daily.eden.breakfastLust isnot 1 and $phase lte 2>><<set $daily.eden.breakfastLust to 1>> <<if $phase isnot 2>> <<if C.npc.Eden.dom gte 75>> While gathering ingredients in the kitchen, you feel a hand slide down to your <<genitals>>. Eden lays wet kisses along your neck, bringing <<his>> lips to your ear. "I've changed my mind," <<he>> says. "I want you instead." <<else>> While gathering ingredients in the kitchen, you feel a pair of hands slide up your waist. Eden brings <<his>> lips to your ear. "I've changed my mind," <<he>> says. "I want you instead." <</if>> <<else>> <<if C.npc.Eden.dom gte 75>> "You don't want to make me breakfast? Fine." <<He>> pushes you against the table. "I'll have you instead." <<else>> <<He>> steps closer to you. You feel <<his>> hands on your hips. "Maybe you can do something else for me," <<he>> says, kissing your neck. <</if>> <</if>> <br><br> <<link [[Embrace Eden|Eden Breakfast Sex]]>><<handheldon>><<set $sexstart to 1>><<npcincr Eden love 1>><<npcincr Eden dom 1>><</link>><<glove>><<gdom>> <br> <<link [[Push Eden away|Eden Breakfast Push]]>><<handheldon>><<npcincr Eden love -3>><<npcincr Eden dom -1>><</link>><<lllove>><<ldom>> <br> <<elseif $phase is 0>> <<wearProp "spatula">> You make Eden eggs the way you know <<he>> likes them. <<He>> sits at the table and you place the food in front of <<him>>. <<if Time.monthName is "November" and !$edenprepare>> <<set $edenprepare to 1>> <<set $edenwall to 0>> <<set $edenchimney to 0>> <<set $edenroof to 0>> As <<he>> reaches for the plate, <<he>> turns to you. "I'll start preparing the cabin for winter soon." Maybe you could help.<<glove>><<npcincr Eden love 1>> <<else>> <<if $housekeepingSuccess>> <span class="green"><<He>> eats without a word.</span><<glove>><<npcincr Eden love 1>> <<else>> <<He>> <span class="red">grimaces</span> at the first bite, but eats without a word.<<ghousekeeping 100>><<housekeeping 1 100>> <</if>> <</if>> <br><br> <<if $valentines is 1 and !$valentines_eden>><<set $valentines_eden to 1>> As you sit with Eden, you remember that Valentine's day is coming soon. Maybe you could buy something for Eden to celebrate. <br><br> <<elseif $halloween is 1 and !$halloween_eden>><<set $halloween_eden to 1>> You look out of the cabin window and stare at the autumn scenery. Seems Halloween is coming soon. Maybe you could buy some candy for Eden to celebrate. <br><br> <</if>> <<link [[Ask for a thank you|Eden Breakfast 2]]>><<handheldon>><<npcincr Eden dom -1>><<def 1>><<set $phase to 1>><</link>><<ldom>> <br> <<link [[Chat|Eden Breakfast 2]]>><<handheldon>><<trauma -6>><<stress -12>><<set $phase to 2>><</link>><<ltrauma>><<lstress>> <br> <<link [[Sit quietly|Eden Breakfast 2]]>><<handheldon>><<sub 1>><<set $phase to 3>><</link>> <br> <<if hasSexStat("promiscuity", 4)>> <<link [[Slip under the table|Eden Table Seduction]]>><<handheldon>><</link>><<promiscuous4>> <br> <</if>> <<elseif $phase is 1>> <<if $rng gte 81>> <<wearProp "spatula">> You cook the eggs a little differently to how <<he>> likes them, hoping the variety will spice things up a bit. <<elseif $rng gte 61>> <<wearProp "bacon">> You find some dried meat, which you think will be nice with some berries for desert. <<elseif $rng gte 41>> <<wearProp "carrot">> You boil some hearty root vegetables. <<elseif $rng gte 21>> <<wearProp "omelette">> You find some mushrooms and decide to make an omelette. <<else>> <<wearProp "blackberry">> You think some berries would make a tasty meal. <</if>> <<He>> sits at the table and you place the food in front of <<him>>. <<if Time.monthName is "November" and !$edenprepare>> <<set $edenprepare to 1>> <<set $edenwall to 0>> <<set $edenchimney to 0>> <<set $edenroof to 0>> As <<he>> reaches for the plate, <<he>> turns to you. "I'm planning to start preparing the cabin for winter." Maybe you could help. <<else>> "I prefer having the same every day," <<he>> says, but <<he>> eats regardless. <</if>> <br><br> <<if $valentines is 1 and !$valentines_eden>><<set $valentines_eden to 1>> As you sit with Eden, you remember that Valentine's day is coming soon. Maybe you could buy something for Eden to celebrate. <br><br> <<elseif $halloween is 1 and !$halloween_eden>><<set $halloween_eden to 1>> You look out of the cabin window and stare at the autumn scenery. Seems Halloween is coming soon. Maybe you could buy some candy for Eden to celebrate. <br><br> <</if>> <<link [[Ask for a thank you|Eden Breakfast 2]]>><<handheldon>><<npcincr Eden dom -1>><<def 1>><<set $phase to 1>><</link>><<ldom>> <br> <<link [[Chat|Eden Breakfast 2]]>><<handheldon>><<trauma -6>><<stress -12>><<set $phase to 2>><</link>><<ltrauma>><<lstress>> <br> <<link [[Sit quietly|Eden Breakfast 2]]>><<handheldon>><<sub 1>><<set $phase to 3>><</link>> <br> <<if hasSexStat("promiscuity", 4)>> <<link [[Slip under the table|Eden Table Seduction]]>><<handheldon>><</link>><<promiscuous4>> <br> <</if>> <<elseif $phase is 2>> <<if C.npc.Eden.love gte 1>> "Fine," <<he>> says. "I'll go hungry. It'll be your fault if I starve." <<if Time.monthName is "November" and !$edenprepare>> <<set $edenprepare to 1>> <<set $edenwall to 0>> <<set $edenchimney to 0>> <<set $edenroof to 0>> <<He>> turns to you. "By the way, I'm planning to start preparing the cabin for winter." Maybe you could help. <<else>> <<He>> continues grumbling awhile. <</if>> <br><br> <<if $valentines is 1 and !$valentines_eden>><<set $valentines_eden to 1>> You suddenly remember that Valentine's day is coming soon. Maybe you could buy something for Eden to celebrate. <br><br> <<elseif $halloween is 1 and !$halloween_eden>><<set $halloween_eden to 1>> You look out of the cabin window and stare at the autumn scenery. Seems Halloween is coming soon. Maybe you could buy some candy for Eden to celebrate. <br><br> <</if>> <<link [[Next|Eden Cabin]]>><<endevent>><</link>> <br> <<else>> "That wasn't a request," <<he>> says, standing and walking over to you. "I think you need a reminder of your place." <<He>> grabs you and bends you over <<his>> knee. <br><br> <<link [[Next|Eden Cabin Punishment]]>><<set $molestationstart to 1>><</link>> <br> <</if>> <<elseif $phase is 3>> With the garden clear of weeds, you're able to harvest some delicious-looking vegetables. <<He>> sits at the table and you put the food in front of <<him>>. <<if Time.monthName is "November" and !$edenprepare>> <<set $edenprepare to 1>> <<set $edenwall to 0>> <<set $edenchimney to 0>> <<set $edenroof to 0>> As <<he>> reaches for the plate, <<he>> turns to you. "I'm planning to start preparing the cabin for winter." Maybe you could help. <<else>> <<He>> takes a bite, and <<his>> eyes widen. "This is good!" <<he>> says. "Are these from the garden? I didn't think that weedy patch of land had it in it." <</if>> <br><br> <<if $valentines is 1 and !$valentines_eden>><<set $valentines_eden to 1>> As you sit with Eden, you remember that Valentine's day is coming soon. Maybe you could buy something for Eden to celebrate. <br><br> <<elseif $halloween is 1 and !$halloween_eden>><<set $halloween_eden to 1>> You look out of the cabin window and stare at the autumn scenery. Seems Halloween is coming soon. Maybe you could buy some candy for Eden to celebrate. <br><br> <</if>> <<link [[Ask for a thank you|Eden Breakfast 2]]>><<npcincr Eden dom -1>><<def 1>><<set $phase to 1>><</link>><<ldom>> <br> <<link [[Chat|Eden Breakfast 2]]>><<trauma -6>><<stress -12>><<set $phase to 2>><</link>><<ltrauma>><<lstress>> <br> <<link [[Sit quietly|Eden Breakfast 2]]>><<sub 1>><<set $phase to 3>><</link>> <br> <<if hasSexStat("promiscuity", 4)>> <<link [[Slip under the table|Eden Table Seduction]]>><</link>><<promiscuous4>> <br> <</if>> <<elseif $phase is 4>> <<wearProp "omelette">> With so many mushrooms stored, you think it'd be fine to have some for breakfast. You cook them in an omelette. <<He>> sits at the table and you put the food in front of <<him>>. <<if Time.monthName is "November" and !$edenprepare>> <<set $edenprepare to 1>> <<set $edenwall to 0>> <<set $edenchimney to 0>> <<set $edenroof to 0>> As <<he>> reaches for the plate, <<he>> turns to you. "I'm planning to start preparing the cabin for winter." Maybe you could help. <<else>> "I prefer having the same every day," <<he>> says, but <<he>> eats regardless. <</if>> <br><br> After a short while, <span class="lewd"><<his>> face starts to flush.</span> "You need to be careful with the sort of mushrooms you cook with," <<he>> says. "Some of them have interesting effects. Not that you've done wrong, it tastes fine." <br><br> <<if $valentines is 1 and !$valentines_eden>><<set $valentines_eden to 1>> As you sit with Eden, you remember that Valentine's day is coming soon. Maybe you could buy something for Eden to celebrate. <br><br> <<elseif $halloween is 1 and !$halloween_eden>><<set $halloween_eden to 1>> You look out of the cabin window and stare at the autumn scenery. Seems Halloween is coming soon. Maybe you could buy some candy for Eden to celebrate. <br><br> <</if>> <<link [[Ask for a thank you|Eden Breakfast 2]]>><<handheldon>><<npcincr Eden dom -1>><<def 1>><<set $phase to 1>><</link>><<ldom>> <br> <<link [[Chat|Eden Breakfast 2]]>><<handheldon>><<trauma -6>><<stress -12>><<set $phase to 2>><</link>><<ltrauma>><<lstress>> <br> <<link [[Sit quietly|Eden Breakfast 2]]>><<handheldon>><<sub 1>><<set $phase to 3>><</link>> <br> <<if hasSexStat("promiscuity", 4)>> <<link [[Slip under the table|Eden Table Seduction]]>><<handheldon>><</link>><<promiscuous4>> <br> <</if>> <</if>><<set $outside to 0>><<set $location to "cabin">><<effects>> <<if $phase is 1>> You mock cough. <<He>> looks at you, bewildered for a moment before realising what you're after. "Oh. Thanks." <<He>> goes back to eating. <br><br> <<link [[Request headpats|Eden Breakfast 2]]>><<npcincr Eden love 1>><<set $phase to 4>><<trauma -6>><<stress -12>><</link>><<glove>><<ltrauma>><<lstress>> <br> <<link [[Chat|Eden Breakfast 2]]>><<trauma -6>><<stress -12>><<set $phase to 2>><</link>><<ltrauma>><<lstress>> <br> <<link [[Sit quietly|Eden Breakfast 2]]>><<sub 1>><<set $phase to 3>><</link>> <br> <<if hasSexStat("promiscuity", 4)>> <<link [[Slip under the table|Eden Table Seduction]]>><</link>><<promiscuous4>> <br> <</if>> <<elseif $phase is 2>> You try to chat with Eden, but <<he>> seems more interested in the food. You can tell <<hes>> listening though. "You can have the leftovers," <<he>> says, pushing the plate towards you. "I need to get ready." <br><br> <<link [[Next|Eden Cabin]]>><<endevent>><</link>> <br> <<elseif $phase is 3>> You sit still as Eden eats. <<He>> seems engrossed, until <<he>> glances at you. "You can have the leftovers," <<he>> says, pushing the plate towards you. "I need to get ready." <br><br> <<link [[Next|Eden Cabin]]>><<endevent>><</link>> <br> <<else>> You rest your head on <<his>> shoulder. <<He>> takes the hint and starts stroking your hair. <<if $wolfgirl gte 4 and $transformationParts.wolf.ears isnot "hidden">> <<His>> fingers brush against your wolf ears and a small yelp escapes your lips. Drawn to your weak spot, <<he>> scratches behind your ear. Waves of pleasure jolt through your scalp, down your neck and through your spine. Your leg jerks. "You like it there, don't you." <<garousal>><<lstress>><<arousal 600>><<stress -12>><<arousal 1000>> <br><br> <<if $arousal gte $arousalmax>> <<orgasm>> The spasms subside, but leave you tired and as weak as a puppy. "My fault," <<he>> says, bemused. "I went too hard on you." <<He>> kisses your forehead and holds you close. <br><br> <<else>> Just when you feel like it's too much for you, <<he>> stops. <<He>> wraps <<his>> arm around you and just holds you for a few minutes. <</if>> <</if>> "I need to get ready," <<he>> says after a while. "You can finish the food." <br><br> <<link [[Next|Eden Cabin]]>><<endevent>><</link>> <br> <</if>><<effects>> <<if C.npc.Eden.love - (C.npc.Eden.lust * 2) gte 1>> You push Eden away from you. <<He>> frowns, but sighs and leaves you be. <br><br> <<link [[Next|Eden Breakfast]]>><</link>> <<else>> You push Eden away from you. <<He>> grabs your arm and pulls you closer. <br><br> <<link [[Next|Eden Breakfast Sex]]>><<set $molestationstart to 1>><</link>> <</if>><<if $sexstart is 1>> <<set $sexstart to 0>> <<consensual>> <<set $consensual to 1>> <<neutral 1>> <<maninit>> <<set $enemytrust += 100>><<set $enemyhealth to 600>><<set $enemyhealthmax to 600>> <<promiscuity1>> <<elseif $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<maninit>><<set $enemyhealth to 600>><<set $enemyhealthmax to 600>><<set $enemyanger += 50>> <</if>> <<effects>> <<effectsman>> <<man>> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Eden Breakfast Sex Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Eden Breakfast Sex]]>><</link>></span><<nexttext>> <</if>><<set $outside to 0>><<set $location to "cabin">><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<ejaculation>><<npcincr Eden lust -20>> Eden runs <<his>> hands through your hair, smiling faintly in thanks.<<lllust>> <<elseif $enemyhealth lte 0>> "You ungrateful slut," <<he>> says. "Maybe I should throw you out and leave you to the wolves!" <<He>> winces and holds <<his>> side. "I need to get something for this." <br><br> <<He>> leaves you alone by the stove. <<elseif $finish is 1>> <<He>> frowns, but sighs and leaves you be. <</if>> <br><br> <<clotheson>> <<endcombat>> <<npc Eden>><<person1>> <<foodicon "pancakes">><<link [[Make the usual breakfast (0:20)|Eden Breakfast]]>><<npcincr Eden love 1>><<npcincr Eden dom 1>><<pass 20>><<set $phase to 0>><<housekeeping 1 100>><</link>><<housekeepingdifficulty 1 100>><<gdom>> <br> <<if $housekeeping gte 100>> <<foodicon "eat">><<link [[Make something new (0:20)|Eden Breakfast]]>><<pass 20>><<set $phase to 1>><</link>> <br> <<if $edengarden gte 3>> <<tendingicon "carrot">><<link [[Use vegetables from the plot (0:20)|Eden Breakfast]]>><<wearProp "carrot">><<pass 20>><<set $phase to 3>><<npcincr Eden love 3>><</link>><<gglove>> <br> <</if>> <<if $edenshrooms gte 3>> <<tendingicon "mushroom">><<link [[Use mushrooms from the barrel (0:20)|Eden Breakfast]]>><<pass 20>><<wearProp "mushroom">><<set $phase to 4>><<npcincr Eden lust 30>><</link>><<ggglust>> <br> <</if>> <<else>> <<insufficientStat "housekeeping" "to make something more imaginative">> <br> <</if>> <<refuseicon>><<link [[Refuse|Eden Breakfast]]>><<npcincr Eden love -1>><<npcincr Eden dom -1>><<set $phase to 2>><</link>><<ldom>><<llove>><<effects>> <<set $seductiondifficulty to (10000 - (C.npc.Eden.lust * 200))>> <<seductioncheck>> <<seductionskilluptext>> <<seductionskilluse>> You rest your arms on <<his>> knees and <<if $pronoun is "f">>lift up <<his>> skirt<<else>>open <<his>> fly<</if>>, giving you a peek of <<his>> genitals. <<promiscuity4>> <<if $seductionrating gte $seductionrequired>> "I like the way you think," <<he>> says, pressing a hand against the back of your head and pushing you closer. <br><br> <<link [[Next|Eden Table Oral]]>><<set $sexstart to 1>><</link>> <br> <<else>> "What are you doing under there?" <<he>> asks. "Now's not the time you dirty <<girl>>, I need to get ready." You climb back on your seat. "You can finish the rest. I need to get ready." <<He>> pushes the plate towards you. <br><br> <i><<He>> will be more lusty, and easier to seduce, the longer <<hes>> gone without sex.</i> <br><br> <<link [[Next|Eden Cabin]]>><<endevent>><</link>> <br> <</if>><<if $sexstart is 1>> <<set $sexstart to 0>> <<consensual>> <<set $consensual to 1>> <<neutral 1>> <<maninit>><<npcoral>> <<set $enemytrust += 100>><<set $enemyhealth to 600>><<set $enemyhealthmax to 600>> <</if>> <<effects>> <<effectsman>> <<man>> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Eden Table Oral Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Eden Table Oral]]>><</link>></span><<nexttext>> <</if>><<set $outside to 0>><<set $location to "cabin">><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<ejaculation>><<npcincr Eden lust -20>><<npcincr Eden love 1>> "I knew I kept you around for a reason," <<he>> gasps.<<glove>><<lllust>> <<elseif $enemyhealth lte 0>> "You ungrateful slut," <<he>> says. "Maybe I should throw you out and leave you to the wolves!" <<He>> winces and holds <<his>> side. "I need to get something for this." <br><br> <<tearful>> you climb out from under the table. <<elseif $finish is 1>> "You little tease," <<he>> says. "Don't get me worked up if you don't intend to go all the way." <</if>> <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Eden Cabin]]>><</link>><<set $outside to 0>><<set $location to "cabin">><<effects>> /* eden is already generated on passages that lead here <<npc Eden>><<person1>>*/ Deciding to make some lunch for Eden, you whip up <<if $rng gte 81>> a fruit salad topped with berries. <<elseif $rng gte 61>> an egg frittata. <<elseif $rng gte 41>> some braised rabbit with a side of berries. <<elseif $rng gte 21>> a venison steak. <<else>> some roasted carrots. <</if>> <br><br> You walk outside to see Eden skinning <<his>> catch. <<He>> seems engrossed in <<his>> work, until you tap <<him>> on the shoulder and pass <<him>> the food. <br><br> <<He>> looks surprised when you do, but smiles at you in gratitude and kisses your forehead. <br><br> <<link [[Next|Eden Cabin]]>><<endevent>><</link>> <br><<set $outside to 1>><<set $location to "cabin">><<effects>> <<if $speech_attitude is "meek">> "C-Could I join in?" you ask. <<elseif $speech_attitude is "bratty">> "Mind if I join?" you ask. <<else>> "Could I join?" you ask. <</if>> Eden raises <<his>> eyebrows at your change of heart, but moves over to give you some space anyway. <br><br> <<link [[Next|Eden Bath]]>><<set $phase to 0>><<strip>><<set $edenClothes to true>><</link>><<set $outside to 1>><<set $location to "cabin">><<effects>> <<if $phase is 0>><<water>> <<if $edenClothes>> <<if $edenjoin is 1>> You remove your clothing as Eden eases <<himself>> into the bath. <<else>> You remove your clothing and climb in. <</if>> <<unset $edenClothes>> <</if>> <<if hasSexStat("exhibitionism", 4)>> Feeling comfortable with your nudity, you climb in with <<him>>. <<else>> <<covered>> You climb in with <<him>>. Unable to hold the sides, you almost slip. <</if>> <br><br> <<He>> reclines opposite you, enjoying the warmth and examining your body. <<wash>> <br><br> <<link [[Examine Eden in return|Eden Bath 2]]>><<set $phase to 0>><</link>> <br> <<link [[Wash Eden|Eden Bath 2]]>><<set $phase to 1>><<npcincr Eden love 1>><</link>><<glove>> <br> <<link [[Relax|Eden Bath 2]]>><<set $phase to 2>><<stress -12>><</link>><<lstress>> <br> <<if hasSexStat("promiscuity", 2)>> <<link [[Seduce|Eden Bath Seduction]]>><</link>><<promiscuous2>> <br> <</if>> <<elseif $phase is 1>> <<if C.npc.Eden.love gte 1>> "Suit yourself," <<he>> says, easing <<himself>> into the water. <br><br> <<link [[Next|Eden Cabin]]>><<endevent>><</link>> <br> <<else>> "I said get in," <<he>> says, marching over to you. "I think you need another lesson." <<He>> bends you over <<his>> knee. <br><br> <<link [[Next|Eden Cabin Punishment]]>><<set $molestationstart to 1>><</link>> <br> <</if>> <</if>><<water>><<effects>> <<if $phase is 0>> You check out Eden's body. <<His>> muscles look very defined. <<He>> notices your gaze. "You can't avoid a body like this if you live like I do." <<He>> sounds almost ashamed. <br><br> <<link [[Reassure|Eden Bath 2]]>><<set $phase to 3>><<npcincr Eden love 1>><<npcincr Eden dom -1>><</link>><<ldom>><<glove>> <br> <<link [[Look away and pick up the sponge|Eden Bath 2]]>><<set $phase to 1>><<npcincr Eden love 1>><</link>><<glove>> <br> <<link [[Look away and relax|Eden Bath 2]]>><<set $phase to 2>><<stress -12>><</link>><<lstress>> <br> <<elseif $phase is 1>> <<wearProp "sponge">> <<if $soap gte 1>> <<set $soap -= 1>> You pick up the sponge and soap, waving it. Eden turns <<his>> back to you and you get to scrubbing. <<else>> You pick up the sponge and wave it. Eden turns <<his>> back to you and you get to scrubbing. <</if>> <<if !hasSexStat("exhibitionism", 4)>> You feel more comfortable about your nudity with <<his>> back turned. <</if>> <br><br> <<if C.npc.Eden.love gte 150>> <<if $soap gte 1>> Just as you're about to place the sponge and soap aside, Eden grabs your wrist in a secure but gentle grip. <<else>> Just as you're about to place the sponge aside, Eden grabs your wrist in a secure but gentle grip. <</if>> "Do you want me to wash you too?" <<he>> asks. <br><br> <<if !$edenbathintro>> <<link [[Say yes|Eden Bath Wash Intro]]>><<handheldon>><<set $edenbathintro to 1>><</link>> <<else>> <<link [[Say yes|Eden Bath Wash]]>><<handheldon>><</link>> <</if>> <br> <<link [[Say no|Eden Bath Wash No]]>><</link>> <<else>> The water starts to get cold after a while. "You can get out now, I'd like to stretch out anyway." You see no reason to complain. <br><br> <<link [[Next|Eden Cabin]]>><<clotheson>><<unset $edenjoin>><<endevent>><</link>> <</if>> <<elseif $phase is 2>> You lean back and relax, letting the warmth seep into your muscles. <br><br> The water starts to get cold after a while. "You can get out now, I'd like to stretch out anyway." You see no reason to complain. <br><br> <<link [[Next|Eden Cabin]]>><<clotheson>><<unset $edenjoin>><<endevent>><</link>> <<elseif $phase is 3>> <<if $speech_attitude is "meek">> "You look amazing," you say. <<elseif $speech_attitude is "bratty">> "Don't be silly," you say. "People would kill for a body like yours." <<else>> "You look good," you say. <</if>> <br><br> <<He>> smiles, "Thanks." <br><br> <<link [[Wash Eden|Eden Bath 2]]>><<set $phase to 1>><<npcincr Eden love 1>><</link>><<glove>> <br> <<link [[Relax|Eden Bath 2]]>><<set $phase to 2>><<stress -12>><</link>><<lstress>> <br> <</if>><<water>><<effects>> You blink in slight surprise at Eden's sudden offer, but nod and hand the sponge<<if $soap gte 1>> and soap<</if>> to <<him>>. <br><br> Turning around, you release a sigh as <<he>> scrubs it over your skin. The sensation of <<his>> firm hands sliding over your muscles is surprisingly relaxing, and you find your eyes closing as you sink into <<his>> arms. <br><br> Leaning back against <<him>>, you feel yourself drift off as Eden trails the sponge over your body. <<His>> hands roam from your back, to your chest, and down to your legs. <br><br> With each stroke, you feel the stress of the day melt away from <<his>> touch, and you let out an involuntary moan in response. Eden chuckles softly at the sound, <<his>> gaze tender as <<he>> traces <<his>> eyes over your form. <<stress -1>><<lstress>> <br><br> <<link [[Next|Eden Bath Wash Intro 2]]>><<pass 30>><</link>><<water>><<effects>> You wake up some time later, head resting on Eden's chest. The water feels much colder now, and you can't help but wonder why <<he>> hasn't left the tub yet. Then again, with the warmth of <<his>> arms wrapped around you, you don't really mind. <br><br> Feeling you shift, Eden glances down at you, slowly stroking your thigh. "I thought I'd let you sleep," <<he>> says. It's almost like <<he>> read your mind. <br><br> Even as the sky darkens, you can't help but sink into <<his>> embrace, the both of you not wanting to leave each other just yet. Pressed against <<him>>, the thumping of Eden's heart is only accompanied by the occasional sound of the water sloshing about. <br><br> "Thanks," you say, shifting yourself even closer to Eden. Your voice rings clear through the peaceful serenity of the cabin. <<Hes>> silent, but you feel <<his>> hand slide up from your thigh, until <<he>> intertwines <<his>> fingers with yours. <<takeHandholdingVirginity "Eden" "romantic">> It takes a second, but <<he>> gives your hand a gentle squeeze. With your ear pressed against <<his>> chest, you swear you can hear <<his>> heart beat faster, and you smile. In the midst of the silence, <<hes>> just told you a thousand words. <br><br> <<link [[Next|Eden Bath Wash Intro 3]]>><</link>><<water>><<effects>> As content as the both of you are to remain in the moment, the day's not over yet. Pulling away, Eden assists you in climbing out of the water, and you take a moment to stabilise yourself as your unsteady feet hit the floor. After grabbing a towel, <<he>> helps dry you off, giving your forehead a quick peck before walking to the kitchen. <br><br> <span class = "gold">Eden will now offer to wash you at high love.</span> <br><br> <<link [[Next|Eden Cabin]]>><<clotheson>><<unset $edenjoin>><<endevent>><</link>><<water>><<effects>> You turn your back to Eden, handing <<him>> <<if $soap gte 1>> the sponge and soap. <<else>> the sponge. <</if>> <<if $rng gte 81>> You let out a sigh as Eden glides <<his>> firm hands over your body. <<elseif $rng gte 61>> You suppress a giggle as <<he>> brushes <<his>> hands over a ticklish area. You're not sure, but you think <<hes>> smiling. <<elseif $rng gte 41>> The rest of the world fades away as you lose yourself to the feeling of <<his>> touch. <<elseif $rng gte 21>> Your eyes shut briefly as you focus on the sensation of <<his>> scrubbing. <<else>> The warmth of the water and the feel of Eden's hands almost make you doze off. <</if>> <<stress -1>><<lstress>> <br><br> The water starts to get cold after a while. "You can get out now, I'd like to stretch out anyway." You see no reason to complain. <br><br> <<link [[Next|Eden Cabin]]>><<clotheson>><<unset $edenjoin>><<endevent>><</link>><<water>><<effects>> You shake your head, and Eden releases <<his>> grip. <br><br> The water starts to get cold after a while. "You can get out now, I'd like to stretch out anyway." You see no reason to complain. <br><br> <<link [[Next|Eden Cabin]]>><<clotheson>><<unset $edenjoin>><<endevent>><</link>><<water>><<effects>> <<set $seductiondifficulty to (10000 - (C.npc.Eden.lust * 200))>> <<seductioncheck>> <<seductionskilluptext>> <<seductionskilluse>> You kick some water at <<him>>, and almost flash your <<genitals>>. <<promiscuity2>> <<if $seductionrating gte $seductionrequired>> <<He>> takes the hint, grabbing your legs and pulling you closer. <br><br> <<link [[Next|Eden Bath Sex]]>><<set $sexstart to 1>><</link>> <br> <<else>> "Not right now," <<he>> says. "I just want to rest." <br><br> <i><<He>> will be more lusty, and easier to seduce, the longer <<hes>> gone without sex.</i> <br><br> <<link [[Wash Eden|Eden Bath 2]]>><<set $phase to 1>><<npcincr Eden love 1>><</link>><<glove>> <br> <<link [[Relax|Eden Bath 2]]>><<set $phase to 2>><<stress -12>><</link>><<lstress>> <br> <</if>><<water>> <<if $sexstart is 1>> <<set $sexstart to 0>> <<consensual>> <<set $consensual to 1>> <<neutral 1>> <<maninit>> <<npcexpose>> <<set $enemytrust += 100>><<set $enemyhealth to 600>><<set $enemyhealthmax to 600>> <<if $NPCList[0].penis is "clothed">> <<set $NPCList[0].penis to 0>> <</if>> <<if $NPCList[0].vagina is "clothed">> <<set $NPCList[0].vagina to 0>> <</if>> <</if>> <<effects>> <<effectsman>> <<man>> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Eden Bath Sex Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Eden Bath Sex]]>><</link>></span><<nexttext>> <</if>><<water>><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<ejaculation>><<npcincr Eden lust -20>><<npcincr Eden love 1>> "You're such a dirty <<girl>>, I love it," <<he>> says.<<glove>><<lllust>> <<elseif $enemyhealth lte 0>> "You ungrateful slut," <<he>> says. "Maybe I should throw you out and leave you to the wolves!" <<He>> winces and holds <<his>> side. "Maybe the warm water will help." <br><br> <<tearful>> you recline in the bath. Eden doesn't bother you again, nor does <<he>> speak much. <<elseif $finish is 1>> "You little tease," <<he>> says. "Don't get me worked up if you don't intend to go all the way." <</if>> <br><br> <<wash>> The water starts to get cold after a while. "You can get out now, I'd like to stretch out anyway." You see no reason to complain. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Eden Cabin]]>><<unset $edenjoin>><</link>><<set $outside to 0>><<set $location to "cabin">><<effects>> <<if $phase is 1>> You walk over to the dining table. It looks like you're having <<if $rng gte 81>> a venison filet with chestnuts <<elseif $rng gte 61>> rabbit pie <<elseif $rng gte 41>> roasted root vegetables <<elseif $rng gte 21>> sautéed mushrooms with garlic <<else>> rabbit stew <</if>> tonight. <br><br> You take a seat next to Eden and smile at <<him>> in thanks. <br><br> <<He>> faintly smiles back. It seems <<he>> appreciates the company. <br><br> <<link [[Next|Eden Cabin]]>><<endevent>><</link>> <br> <<elseif $phase is 2>> You tell Eden that you'll eat later. <<He>> seems disappointed, but doesn't push it and goes back to eating alone. <br><br> <<link [[Next|Eden Cabin]]>><<endevent>><</link>> <br> <</if>><<set $outside to 0>><<set $location to "cabin">><<effects>> /* eden is already generated on passages that lead here <<npc Eden>><<person1>> */ <<if $trauma gte 4500 and $edentraumaintro isnot 1>> <<set $edentraumaintro to 1>> Embers crackle in the fireplace, casting an orange glow on Eden. The wooden floor creaks as you approach <<him>>, and <<he>> holds an arm to you in anticipation. As you snuggle into <<his>> hold, <<he>> turns <<his>> head to you and tenses. <<He>> briefly looks away, seemingly trying to find the words for something. After a few seconds, <<he>> faces you. <br><br> "Are you okay?" <<he>> asks. <br><br> <<link [[Nod|Eden Cuddle Trauma Nod]]>><</link>> <br> <<link [[Be honest|Eden Cuddle Trauma Honest]]>><<set $edentraumaagree to 1>><<npcincr Eden dom 3>><</link>><<ggdom>> <<else>> <<if $edencushions is 2 and $edenloveseat is 9>> Snuggling together on the loveseat, you and Eden watch the fire. <<trauma -5>><<stress -6>><<lltrauma>><<llstress>> <<elseif $edenpillow is 2>> Snuggling together against the pillows, you and Eden watch the fire. <<trauma -3>><<stress -3>><<ltrauma>><<lstress>> <<else>> You snuggle up to Eden and <<he>> holds you close. Together you watch the fire. <</if>> <br><br> <<if Time.hour isnot 0>> <<if $trauma gte 500 and $edentraumaagree is 1>> <<socialiseicon>><<link [[Talk about your trauma (0:30)|Eden Cuddle Trauma Talk]]>><<trauma -6>><<stress -6>><<pass 30>><<npcincr Eden dom 1>><</link>><<ltrauma>><<lstress>><<gdom>> <br> <</if>> <<socialiseicon>><<link [[Talk to Eden|Eden Cuddle Talk]]>><<npcincr Eden love 1>><</link>> <br> <<couchicon>><<link [[Keep cuddling (0:30)|Eden Cuddle]]>><<trauma -3>><<stress -6>><<pass 30>><<npcincr Eden love 1>><</link>><<glove>><<ltrauma>><<lstress>> <br> <<if Time.days % 2 is 0>> <<if $eden_shoot gte 1>> <<edenicon "target">><<link [[Practise shooting (0:30)|Eden Shoot]]>><<pass 30>><<stress -3>><</link>><<lstress>> <br> <<else>> <<edenicon "target">><<link [[Say you want to learn how to shoot (0:05)|Eden Shoot Ask]]>><<pass 5>><</link>> <br> <</if>> <<else>> <<schoolicon "library">><<link [[Ask Eden to read to you (0:30)|Eden Read]]>><<pass 30>><<trauma -3>><<npcincr Eden love 1>><</link>><<glove>><<ltrauma>> <br> <</if>> <<getouticon>><<link [[Stand up|Cabin Eden Actions]]>><</link>> <br> <<else>> <<link [[Next|Eden Cabin]]>><<endevent>><</link>> <br> <</if>> <</if>><<set $outside to 0>><<set $location to "cabin">><<effects>> /* eden is already generated on passages that lead here <<npc Eden>><<person1>>*/ You tell Eden about the traumatic events you've faced. <<He>> holds you in <<his>> arms the entire time. <br><br> <<if Time.hour isnot 0>> <<if $trauma gte 500 and $edentraumaagree is 1>> <<ind>><<link [[Keep talking about your trauma (0:30)|Eden Cuddle Trauma Talk]]>><<trauma -6>><<stress -6>><<pass 30>><<npcincr Eden dom 1>><</link>><<ltrauma>><<lstress>> <br> <</if>> <<ind>><<link [[Talk to Eden|Eden Cuddle Talk]]>><<npcincr Eden love 1>><</link>> <br> <<ind>><<link [[Cuddle (0:30)|Eden Cuddle]]>><<trauma -3>><<stress -6>><<pass 30>><<npcincr Eden love 1>><</link>><<glove>><<ltrauma>><<lstress>> <br> <<if Time.days % 2 is 0>> <<if $eden_shoot gte 1>> <<edenicon "target">><<link [[Practise shooting (0:30)|Eden Shoot]]>><<pass 30>><<stress -3>><</link>><<lstress>> <br> <<else>> <<edenicon "target">><<link [[Say you want to learn how to shoot (0:05)|Eden Shoot Ask]]>><<pass 5>><</link>> <br> <</if>> <<else>> <<schoolicon "library">><<link [[Ask Eden to read to you (0:30)|Eden Read]]>><<pass 30>><<trauma -3>><<npcincr Eden love 1>><</link>><<glove>><<ltrauma>> <br> <</if>> <<getouticon>><<link [[Stand up|Cabin Eden Actions]]>><</link>> <br> <<else>> <<link [[Next|Eden Cabin]]>><<endevent>><</link>> <br> <</if>><<set $outside to 0>><<set $location to "cabin">><<effects>> You nod slightly. Eden looks worried, but doesn't push you. <<His>> hold seems slightly tighter than usual. <br><br> <<link [[Keep cuddling (0:30)|Eden Cuddle]]>><<trauma -3>><<stress -6>><<pass 30>><<npcincr Eden love 1>><</link>><<glove>><<ltrauma>><<lstress>> <br><<set $outside to 0>><<set $location to "cabin">><<effects>> You tell Eden about your grievances. It starts out small at first. You begin by describing how you've been continuously approached. Somehow, in the minutes that pass, the conversation spirals into you detailing about the suffering you've gone through. About how you're so overwhelmed by everything. You're vaguely aware that you've started crying. <br><br> Eden's touch brings you back to reality. <<He>> gently swipes <<his>> thumb over your cheeks in an attempt to dry them. You look up at <<him>> through your sobs. Though blurred by tears, <<his>> face is still visible. A storm of emotions swirl in <<his>> eyes. <<He>> pulls you into <<his>> chest as your crying subsides. You breathe in <<his>> scent. It's comforting. <br><br> <<link [[Next|Eden Cuddle Trauma Honest 2]]>><<npcincr Eden dom 1>><</link>><<gdom>><<set $outside to 0>><<set $location to "cabin">><<effects>> You and Eden stay curled up by the fire for some time. The silence is only broken by the crackling of embers and your sniffling. Eventually, Eden tries to speak. <<He>> stutters through <<his>> words, starting and breaking off sentences. After a few attempts, <<he>> manages to get something out. <br><br> "I don't know what to say." <<His>> voice sounds disbelieving, sad, and angry. You're not sure if <<his>> anger is directed at your attackers, or at <<himself>>. "I should have been there," <<he>> says, holding you tighter. "I should have protected you." Tighter. "I should have shot anyone who even tried to touch you." <<His>> hold is almost painful now. "I should have—" You wince at the strength of <<his>> embrace. Eden immediately loosens <<his>> hold on you and goes quiet again. <br><br> It takes a bit, but you eventually summon the energy to speak. In a whisper, you tell <<him>> that it's okay. That <<he>> doesn't need to blame <<himself>> for anything you went through. Eden pulls a conflicted expression at your words. "I don't know how to help you," <<he>> says. "I wish I could have done something. Anything." <<He>> starts to squeeze you again, but stops <<himself>>. You could be imagining it, but it feels like <<his>> arms are trembling. <br><br> <<if $speech_attitude is "meek">> "Y-you're talking to me now," you say. "That counts." <<elseif $speech_attitude is "bratty">> "You're talking to me now," you say. "That's something." <<else>> "At least you're talking to me now," you say. <</if>> <br><br> Eden laughs. <<He>> sounds defeated. <br><br> <<link [[Next|Eden Cuddle Trauma Honest 3]]>><<npcincr Eden dom 1>><</link>><<gdom>><<set $outside to 0>><<set $location to "cabin">><<effects>> "I don't want you leaving again," <<he>> says. You look up at <<him>>. "It's too dangerous." You frown at <<his>> words. <br><br> <<if $speech_attitude is "meek">> "I-I can't do that," you say. <<elseif $speech_attitude is "bratty">> "You know I can't do that," you say. <<else>> "I can't do that," you say. <</if>> <br> "Why not?" <<he>> asks. "You have everything you need here." <br> <<if $speech_attitude is "meek">> "I-I have obligations." You avoid <<his>> gaze. "You're being selfish." <<elseif $speech_attitude is "bratty">> "I have obligations in town. Making me stay here is selfish." <<else>> "I have obligations. It's selfish to make me stay." <</if>> <br> "I'm being selfish?" <<He>> sounds exasperated. "I'm trying to protect you!" <br> <<if $speech_attitude is "meek">> "I-I know," you whisper. "But, I'll have to go back eventually." <<elseif $speech_attitude is "bratty">> "I know, but that doesn't change anything. I'll still have to go back eventually." <<else>> "I know, but I'll still have to go back eventually." <</if>> <br><br> Eden tries to retort, but looks away and sighs. "Fine," <<he>> says. "I won't stop you." You smile weakly at <<him>> and bury your face in <<his>> chest. <<He>> strokes your hair in response. For a moment, the both of you stay silent, content to remain tangled in each other's arms. The peace is momentarily broken by the sound of Eden's voice. "I'm here if you need me," <<he>> says. You nod. The two of you watch the embers crackle into the night. <br><br> <i>You can now talk to Eden if your trauma is too high.</i> <br><br> <<link [[Next|Eden Cuddle]]>><<npcincr Eden dom 1>><</link>><<gdom>> <br><<set $outside to 0>><<set $location to "cabin">><<effects>> /* eden is already generated on passages that lead here <<npc Eden>><<person1>>*/ <<if $rng gte 96>> You ask Eden about the town. <<He>> tenses. "That place is dangerous. I mean it." <<He>> pulls you closer. "Stay away." <<elseif $rng gte 91>> You ask Eden about the forest. "It's nice here," <<he>> says, "but it gets lonely." You tell Eden that you're here with <<him>> now. <<He>> smiles. <<elseif $rng gte 86>> You talk to Eden about the fire. <<He>> stokes the embers as you speak. "Nights in the forest can be cold," <<he>> says. "So enough firewood is a must." <<elseif $rng gte 81>> You ask Eden about <<his>> family. "Nothing to say." <<He>> avoids your gaze. <<elseif $rng gte 76>> You ask Eden where <<he>> got <<his>> old fishing magazine. "An old friend," <<he>> says. <br><br> <<if $speech_attitude is "meek">> "W-who was it?" you ask. <<elseif $speech_attitude is "bratty">> "Who was your friend?" you ask. <<else>> "Who was it?" you ask. <</if>> <br><br> Eden says nothing, but chuckles and pulls you closer. <<elseif $rng gte 71>> You ask Eden about <<his>> name. "It means paradise," <<he>> says, holding you closer. <span class="green">You feel a sense of safety and peace in <<his>> arms.</span><<trauma -1>><<stress -1>><<lstress>><<ltrauma>> <<elseif $rng gte 66>> You ask Eden about <<his>> cabin. "It's a little bare, but it's home," <<he>> says. <<elseif $rng gte 61>> You ask Eden about <<his>> crops. "It can be hard," <<he>> admits, "but it's rewarding in its own way." <<elseif $rng gte 56>> You ask Eden about mushrooms. "It's nice to not have to wander too far for them," <<he>> says. <<elseif $rng gte 51>> You tell Eden that the scent of <<him>> skinning prey makes you queasy. <<He>> chuckles. "You'll get used to it after a while." <<elseif $rng gte 46>> You ask Eden about the forest animals. "Wild animals are dangerous." <<He>> pulls you closer. "Stay near the cabin." <<elseif $rng gte 41>> You ask Eden about reading. "It helps pass the time," <<he>> says. <<elseif $rng gte 36>> You ask Eden about how long <<hes>> lived in the forest. "Some time," <<he>> says. <<He>> doesn't elaborate. <<elseif $rng gte 31>> You ask Eden about school. <<He>> shrugs. "I've always been more of a hands-on learner." <<elseif $rng gte 26>> You ask Eden about <<his>> gun. "I've had it for a while," <<he>> says. <<elseif $rng gte 21>> You ask Eden about hunting. "It's a necessity out here," <<he>> says. <<elseif $rng gte 16>> <<if $edenradiointro is 2>> You ask Eden about the radio. "Never thought of myself as a dancer before that," <<he>> chuckles. <<else>> You ask Eden about dancing. <<He>> raises <<his>> eyebrows at your question. "Don't have much experience," <<he>> says. <</if>> <<elseif $rng gte 11>> You ask Eden about <<his>> extra gardening plot. "Never needed it," <<he>> says. "You're free to use it if you want." <<elseif $rng gte 6>> You ask Eden about the spring. "It gets hard to maintain, so I never bothered," <<he>> says. <<else>> You ask Eden about supply shopping. <<He>> sighs. "Wouldn't do it if I could." <</if>> <br><br> <<if Time.hour isnot 0>> <<couchicon>><<link [[Keep cuddling (0:30)|Eden Cuddle]]>><<trauma -3>><<stress -6>><<pass 30>><<npcincr Eden love 1>><</link>><<glove>><<ltrauma>><<lstress>> <br> <<if Time.days % 2 is 0>> <<if $eden_shoot gte 1>> <<edenicon "target">><<link [[Practise shooting (0:30)|Eden Shoot]]>><<pass 30>><<stress -3>><</link>><<lstress>> <br> <<else>> <<edenicon "target">><<link [[Say you want to learn how to shoot (0:05)|Eden Shoot Ask]]>><<pass 5>><</link>> <br> <</if>> <<else>> <<schoolicon "library">><<link [[Ask Eden to read to you (0:30)|Eden Read]]>><<pass 30>><<trauma -3>><<npcincr Eden love 1>><</link>><<glove>><<ltrauma>> <br> <</if>> <<getouticon>><<link [[Stand up|Cabin Eden Actions]]>><</link>> <br> <<else>> <<link [[Next|Eden Cabin]]>><<endevent>><</link>> <br> <</if>><<set $outside to 0>><<set $location to "cabin">><<effects>> <<set $edenBook to 1>> /* eden is already generated on passages that lead here <<npc Eden>><<person1>>*/ <<if $phase is 0>> You snuggle up to Eden, and <<he>> holds you close. <<He>> reads to you in the firelight, <<else>> Eden reads to you in the firelight, <</if>> <<if $rng gte 81>> from a worn book about the forest. It describes rites still conducted at ancient ruins.<<ghistory>><<historyskill>><<genglish>><<englishskill>> <<elseif $rng gte 61>> <<set _eden_romance_novel to true>> from a romance novel. You notice <<he>> skips over the lewder passages. Is <<he>> blushing?<<genglish>><<englishskill>><<glust>><<npcincr Eden lust 1>> <<elseif $rng gte 41>> from a book about wilderness survival. <<He>> keeps interrupting <<himself>> with tangents about <<his>> own experiences. Some of it is interesting.<<genglish>><<englishskill>><<gscience>><<scienceskill>> <<elseif $rng gte 21>> from an old fishing magazine. You wonder where <<he>> got it. <<else>> from a Victorian novel. It drags on a bit, but Eden seems to like it. You might have dozed off.<<genglish>><<englishskill>><<ltiredness>><<tiredness -3>> <</if>> <br><br> <<if Time.hour isnot 0>> <<if _eden_romance_novel is true>> <<link [[Tease|Eden Read Tease]]>><<npcincr Eden lust 1>><<npcincr Eden love 1>><</link>><<glust>><<glove>> <br> <<link [[Insist Eden read it all (0:30)|Eden Read Insist]]>><<pass 30>><<def 1>><<npcincr Eden lust 5>><</link>><<gglust>> <br> <<link [[Just keep listening (0:30)|Eden Read]]>><<pass 30>><<trauma -3>><<npcincr Eden love 1>><<set $phase to 1>><</link>><<glove>><<ltrauma>> <br> <<else>> <<link [[Keep listening (0:30)|Eden Read]]>><<pass 30>><<trauma -3>><<npcincr Eden love 1>><<set $phase to 1>><</link>><<glove>><<ltrauma>> <br> <</if>> <<link [[Stand up|Cabin Eden Actions]]>><</link>> <<else>> <<link [[Next|Eden Cabin]]>><<endevent>><</link>> <br> <</if>> <br><<effects>> You tease Eden, and call <<his>> bashfulness cute. <br><br> "I just didn't realise how dirty some of these books were," <<he>> protests. <br><br> <<if Time.hour isnot 0>> <<link [[Keep listening (0:30)|Eden Read]]>><<pass 30>><<set $phase to 1>><</link>><<glove>><<ltrauma>> <br> <<link [[Stand up|Cabin Eden Actions]]>><</link>> <<else>> <<link [[Next|Eden Cabin]]>><<endevent>><</link>> <br> <</if>><<effects>> <<if $awareness gte 1>> <<if $speech_attitude is "meek">> "You don't need to be bashful for my sake," you say. "You can read it all." <<elseif $speech_attitude is "bratty">> "You keep skipping the good bits," you say. "Let's hear it all." <<else>> "You don't need to skip bits," you say. "I want to hear it." <</if>> <<else>> "Why are you leaving bits out?" you ask. "They can't be that boring. Let me hear them." <</if>> <br><br> Eden assents, but hesitates before each lewd passage, as if making sure they aren't too licentious. Or maybe <<hes>> building up the courage. <<His>> blush deepens as <<he>> reads. <br><br> <<if Time.hour isnot 0>> <<link [[Keep listening (0:30)|Eden Read]]>><<pass 30>><<trauma -3>><<npcincr Eden love 1>><<set $phase to 1>><</link>><<glove>><<ltrauma>> <br> <<link [[Stand up|Cabin Eden Actions]]>><</link>> <<else>> <<link [[Next|Eden Cabin]]>><<endevent>><</link>> <br> <</if>><<effects>> <<set $outside to 0>><<set $location to "cabin">><<effects>> /* eden is already generated on passages that lead here <<npc Eden>><<person1>>*/ <<if $phase is 0>> You go to the radio and turn the dials, searching for a signal. When music starts playing, you pull Eden towards you and dance with <<him>>. <<else>> Time seems to fly by as you gaze into each other's eyes. <</if>> <<if $rng gte 81>> <<He>> lifts you by your waist and spins you in the air, before lowering you to the ground. <<elseif $rng gte 61>> You lean into Eden's chest, and <<he>> pulls you closer. <span class="green">In <<his>> unyielding and secure embrace, you feel safe.</span><<stress -1>><<trauma -1>><<lstress>><<ltrauma>> <<elseif $rng gte 41>> <<He>> almost steps on your feet a few times, and curses to <<himself>>. You smile at <<him>> in encouragement, and <<he>> smiles back. <<elseif $rng gte 21>> In a daring move, <<he>> pulls you into a dip. You stare at <<him>> in shock for a moment, before <<he>> pulls you back up and continues dancing like nothing happened. <<else>> You giggle as <<he>> twirls you around. <<Hes>> a bit clumsy, but <<he>> smiles. <</if>> <br><br> <<if Time.hour isnot 0>> <<techicon "radio">><<link [[Keep dancing (0:30)|Eden Dance]]>><<trauma -3>><<stress -3>><<danceskill 5>><<pass 30>><<npcincr Eden love 1>><<npcincr Eden lust 1>><<set $phase to 1>><</link>><<glove>><<glust>><<ltrauma>><<lstress>><<gdanceskill>> <br> <<ind>><<link [[Seduce Eden|Eden Dance Seduce]]>><<npcincr Eden lust 5>><<arousal 600>><</link>><<glust>><<garousal>> <br> <<if Time.days % 2 is 0>> <<if $eden_shoot gte 1>> <<edenicon "target">><<link [[Practise shooting (0:30)|Eden Shoot]]>><<pass 30>><<stress -3>><</link>><<lstress>> <br> <<else>> <<edenicon "target">><<link [[Say you want to learn how to shoot (0:05)|Eden Shoot Ask]]>><<pass 5>><</link>> <br> <</if>> <<else>> <<schoolicon "library">><<link [[Ask Eden to read to you (0:30)|Eden Read]]>><<trauma -3>><<pass 30>><<npcincr Eden love 1>><</link>><<glove>><<ltrauma>> <br> <</if>> <<getouticon>><<link [[Stop dancing|Cabin Eden Actions]]>><</link>> <br> <<else>> <<link [[Next|Eden Cabin]]>><<endevent>><</link>> <br> <</if>><<effects>> You press your body closer to Eden, and slide your hand down <<his>> stomach. <br><br> <<if C.npc.Eden.lust gte 20>> <<His>> eyes darken, grabbing your hand and guiding you to the floor. <br><br> <<link [[Next|Eden Dance Sex]]>><<set $sexstart to 1>><</link>> <br> <<else>> "Not now," <<he>> chuckles, grabbing your arm and winding it around <<his>> neck. <br><br> <i><<He>> will be more lusty, and easier to seduce, the longer <<hes>> gone without sex.</i> <br><br> <<link [[Next|Eden Dance]]>><<trauma -3>><<stress -3>><<danceskill 5>><<pass 30>><<npcincr Eden love 1>><<npcincr Eden lust 1>><<set $phase to 1>><</link>><<glove>><<glust>><<ltrauma>><<lstress>><<gdanceskill>> <br> <</if>><<if $sexstart is 1>> <<set $sexstart to 0>> <<consensual>> <<set $consensual to 1>> <<neutral 1>> <<maninit>> <<set $enemytrust += 100>><<set $enemyhealth to 600>><<set $enemyhealthmax to 600>> <<promiscuity1>> <<elseif $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<maninit>><<set $enemyhealth to 600>><<set $enemyhealthmax to 600>><<set $enemyanger += 50>> <</if>> <<effects>> <<effectsman>> <<man>> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Eden Dance Sex Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Eden Dance Sex]]>><</link>></span><<nexttext>> <</if>><<set $outside to 0>><<set $location to "cabin">><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<ejaculation>><<npcincr Eden lust -20>><<npcincr Eden love 1>> Eden kisses your forehead before helping you back to your feet.<<glove>><<lllust>> <<elseif $enemyhealth lte 0>> "You ungrateful slut," <<he>> says. "Maybe I should throw you out and leave you to the wolves!" <<He>> winces and holds <<his>> side. "I need to get something for this." <br><br> <<He>> walks away, leaving you by the radio. <<elseif $finish is 1>> <<His>> eyebrows furrow in frustration, but <<he>> pulls away from you, helping you stand. <</if>> <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Eden Cabin]]>><<endevent>><</link>> <br><<effects>> <<set $outside to 0>><<set $location to "cabin">><<effects>> <<wearProp "salve">> /* eden is already generated on passages that lead here <<npc Eden>><<person1>>*/ <<if !$daily.eden.salveUse and $salve gte 1 and Time.hour isnot 0>> <<set $daily.eden.salveUse to 1>> <<set $salve -= 1>> You bring a jar of salve to the fireplace and rub some onto your hands. <</if>> <<switch $daily.eden.massage>> <<case 0>> You focus your attention on Eden's calves. They're taut with strain, and you work firmly to release the tension there. <<case 1>> Eden's shoulders are scrunched with tension, you decide to focus your attention there. <<case 2>> Working your way lower, you note that <<his>> shoulder blades are just as tightened with tension as <<his>> shoulders. You carefully work to undo the knots and kinks along them. <<case 3>> You roll your hands across the taut muscles of Eden's large arms. As you tend to the strains of <<his>> daily chores, you feel them slacken in relief. <<case 4>> Moving back along Eden's strong arms, you arrive at <<his>> upper back. Here you work diligently and firmly along the rough muscles with your knuckles. <<case 5>> Finally, you arrive at the core of Eden's lower back. Much of <<his>> lifting strength comes from here, and as quick and gentle exploration reveals, many of <<his>> muscles are strained and knotted with tension. The muscular kinks below <<his>> skin are as stubborn as <<he>> is, and you find yourself in a fierce battle to free them. Your fingers dig deep and rub until you hear <<his>> muscles lightly pop in release, and Eden lets loose a low dusky moan of satisfaction and utter relief. <<default>> /* something went wrong, probably the var got unset in the middle of event, happens at midnight */ Before you can get anything done, <<if currentSkillValue("handskill") gte 800>>even with your amazing skills,<</if>> you feel your hands getting tired. <<tiredness 12>><<ggtiredness>> <<set $daily.eden.massage to 5>> <</switch>> <br><br> <<if Time.hour isnot 0>> <<if $daily.eden.massage isnot 5>> <<edenicon "salve">><<link [[Keep massaging (0:30)|Eden Massage]]>><<pass 30>><<npcincr Eden love 1>><<npcincr Eden lust 3>><<set $daily.eden.massage += 1>><</link>><<glove>><<gglust>> <</if>> <br> <<if Time.days % 2 is 0>> <<if $eden_shoot gte 1>> <<edenicon "target">><<link [[Practise shooting (0:30)|Eden Shoot]]>><<handheldon>><<pass 30>><<stress -3>><</link>><<lstress>> <br> <<else>> <<edenicon "target">><<link [[Say you want to learn how to shoot (0:05)|Eden Shoot Ask]]>><<handheldon>><<pass 5>><</link>> <br> <</if>> <<else>> <<schoolicon "library">><<link [[Ask Eden to read to you (0:30)|Eden Read]]>><<handheldon>><<trauma -3>><<pass 30>><<npcincr Eden love 1>><</link>><<glove>><<ltrauma>> <br> <</if>> <<getouticon>><<link [[Stop massaging|Cabin Eden Actions]]>><<handheldon>><</link>> <br> <<else>> <<link [[Next|Eden Cabin]]>><<endevent>><</link>> <br> <</if>><<if $sexstart is 1>> <<set $sexstart to 0>> <<consensual>> <<set $consensual to 1>> <<neutral 1>> <<maninit>> <<set $enemytrust += 100>><<set $enemyhealth to 600>><<set $enemyhealthmax to 600>> <<promiscuity1>> <<elseif $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<maninit>><<set $enemyhealth to 600>><<set $enemyhealthmax to 600>><<set $enemyanger += 50>> <</if>> <<effects>> <<effectsman>> <<man>> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Eden Firewood Sex Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Eden Firewood Sex]]>><</link>></span><<nexttext>> <</if>><<set $outside to 1>><<set $location to "cabin">><<effects>> <<if C.npc.Eden.love - (C.npc.Eden.lust * 2) gte 1>> You turn away from <<him>>, making your disapproval of <<his>> actions clear. "I'm working hard out here," <<he>> says. "You could be more considerate." <br><br> <<link [[Next|Eden Clearing]]>><<endevent>><</link>> <br> <<else>> You turn away from <<him>>, making your disapproval of <<his>> actions clear. <<He>> grabs your neck and turns your head to face <<him>>. "I'm working hard out here," <<he>> says. "The least you could is show some appreciation." <br><br> <<link [[Next|Eden Firewood Sex]]>><<set $molestationstart to 1>><</link>> <br> <</if>><<npc Eden>><<person1>> <<effects>> <<if Time.hour gte 0 and Time.hour lte 6>> You take a seat by the dining table, watching as Eden snores under the covers. The dying embers of the fire cast a distant glow on <<his>> form. <br><br> <<link [[Next|Cabin House Actions]]>><<endevent>><</link>> <<elseif Time.hour lte 8>> You take a seat by the dining table, watching Eden prepare for the day. <<He>> spends some time washing up by the sink. <br><br> <<link [[Next|Cabin House Actions]]>><<endevent>><</link>> <<elseif Time.hour lte 16>> You take a seat by the dining table, staring out the window. The trees of the forest sway gently in the clearing. <br><br> <<link [[Next|Cabin House Actions]]>><<endevent>><</link>> <<elseif Time.hour lte 17>> <<if $daily.eden.bath isnot 1>> You take a seat by the dining table, watching Eden enter through the front door. <<He>> walks to the bathroom, preparing to run a bath. <br><br> <<link [[Next|Eden Cabin]]>><<endevent>><</link>> <<else>> You take a seat by the dining table, looking in the direction of the bathroom. Eden stretches out in the tub, relaxing in the water. <br><br> <<link [[Next|Cabin House Actions]]>><<endevent>><</link>> <</if>> <<elseif Time.hour lte 18 and $daily.eden.dinner isnot 1 and C.npc.Eden.love gte 100>> You relax by the window, watching as Eden prepares dinner. When <<hes>> done, <<he>> brings the food to the dining table. <br><br> <<link [[Next|Eden Cabin]]>><<endevent>><</link>> <<else>> <<if Time.days % 2 is 0>> You take a seat by the dining table, watching as Eden cleans <<his>> gun by the fire. The scene is oddly calming.<<stress -1>><<lstress>> <<else>> You take a seat by the dining table, watching as Eden reads by the fire. The scene is oddly calming.<<stress -1>><<lstress>> <</if>> <br><br> <<link [[Next|Cabin House Actions]]>><<endevent>><</link>> <</if>><<effects>> <<if Time.hour gte 9 and Time.hour lte 10>> You relax under the porch, watching as Eden tends to the crops. Every once in a while, you catch <<him>> brushing a few strands of stray hair from <<his>> face. <<elseif Time.hour is 15>> You settle down next to Eden as <<he>> skins <<his>> prey. The smell is much stronger now that you're up close, and you shift your attention to Eden to distract yourself. <<elseif Time.hour is 16>> You relax under the porch, watching as Eden chops firewood. Beads of sweat drip down <<his>> toned body as <<he>> works. <<else>> You relax under the porch, listening to the gentle sounds of the forest. It's calming.<<stress -1>><<lstress>> <</if>> <br><br> <<link [[Next|Eden Clearing]]>><<endevent>><</link>><<set $outside to 0>><<set $location to "cabin">><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<ejaculation>><<npcincr Eden lust -20>> "I'm glad I have you around," <<he>> says. <<He>> picks up <<his>> axe and returns to <<his>> chopping.<<lllust>> <<elseif $enemyhealth lte 0>> "You ungrateful slut," <<he>> says. "Maybe I should throw you out and leave you to the wolves!" <<He>> winces and holds <<his>> side. "I need to get something for this." <br><br> <<tearful>> you hide behind a tree. <<elseif $finish is 1>> "I guess I do need to get back to work," <<he>> says. <</if>> <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Eden Clearing]]>><</link>><<set $outside to 1>><<set $location to "cabin">><<effects>> You get on your hands and knees and start tugging up weeds at their roots. Some are rooted deep. <<physique 6>><<set $edengarden += 1>> <<pass 3 hours>> <br><br> <<if dangerEvent()>> <<if $rng gte 51 and $settings.tentaclesEnabled and ($hallucinations gte 2 or $backgroundTraits.includes("plantlover"))>> The vines around you animate into life. You try to stand but they wrap around your wrists, forcing you to remain on your knees. <br><br> <<link [[Struggle|Clearing Weeding Tentacles]]>><<set $molestationstart to 1>><</link>> <br> <<link [[Soothe|Clearing Weeding Soothe]]>><</link>><<tendingdifficulty 1 1200>> <br> <<elseif (Time.hour gt 6 and Time.hour lt 11) or Time.hour gt 14>> <!-- eden is already generated on passages that lead here <<npc Eden>><<person1>> -->Eden creeps up behind you, making you jump in fright. <<He>> leans on your back, preventing you from standing up. "Why don't you stay right there," <<he>> says, reaching around you and fondling your <<groin>>. <br><br> <<link [[Let Eden continue|Clearing Fondle]]>><<npcincr Eden love 1>><<sub 1>><<npcincr Eden dom 1>><</link>><<glove>><<gdom>><<garousal>> <br> <<link [[Shove Eden off|Clearing Shove]]>><<npcincr Eden love -3>><<def 1>><<npcincr Eden dom -1>><</link>><<lllove>><<ldom>> <br> <<else>> You work for a few hours. You stand back to admire the result. It looks much better than when you started. <br><br> <<link [[Next|Eden Clearing]]>><<endevent>><</link>> <br> <</if>> <<else>> You work for a few hours. You stand back to admire the result. It looks much better than when you started. <br><br> <<link [[Next|Eden Clearing]]>><<endevent>><</link>> <br> <</if>><<effects>> You hum a gentle tune. <<if $tendingSuccess>> <span class="green">The tendrils loosen,</span> releasing your limbs. They disappear into the soil. <br><br> <<link [[Next|Eden Clearing]]>><<endevent>><</link>> <br> <<else>> <span class="red">It's no use.</span> The tendrils tighten around you. <br><br> <<link [[Next|Clearing Weeding Tentacles]]>><<set $molestationstart to 1>><</link>> <br> <</if>><<set $outside to 1>><<set $location to "cabin">> <<if $molestationstart is 1>> <<set $molestationstart to 0>> <<set $combat to 1>> <<set $enemytype to "tentacles">> <<molested>> <<controlloss>> <<tentaclestart 4 15 "vine" "vine" true>> <<set $tentacles[0].shaft to "leftarm">><<set $leftarm to "tentgrappled">><<set $lefttarget to "tentacles">> <<set $tentacles[1].shaft to "rightarm">><<set $rightarm to "tentgrappled">><<set $righttarget to "tentacles">> <<set $timer to 50>> <</if>> <<statetentacles>> <<effects>> <<effectstentacles>> <<tentacles>> <<actionstentacles>> <<if $tentacles.active lte ($tentacles.max / 2)>> <span id="next"><<link [[Next|Clearing Weeding Tentacles Finish]]>><</link>></span><<nexttext>> <<elseif $timer lte 0>> <span id="next"><<link [[Next|Clearing Weeding Tentacles Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Clearing Weeding Tentacles]]>><</link>></span><<nexttext>> <</if>><<effects>> The roots lose interest in you, and disappear into the soil. <<tearful>> you untangle yourself from the plants and vines surrounding you. <<clotheson>> <<endcombat>> You step back and look at the result. The plot is in a much better state, at least. <br><br> <<link [[Next|Eden Clearing]]>><</link>> <br><<set $outside to 1>><<set $location to "cabin">><<effects>> <<if !$worn.lower.type.includes("naked")>> <<if setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1>> <<if playerChastity()>> <<He>> reaches beneath your $worn.lower.name and starts probing your $worn.genitals.name. "You're such a little slut, I bet I can make you cum even with this thing on." <<else>> <<He>> reaches beneath your $worn.lower.name and starts touching you directly. <</if>> <<else>> <<if playerChastity()>> <<He>> reaches beneath your $worn.lower.name and starts probing your $worn.genitals.name. "You're such a little slut, I bet I can make you cum even with this thing on." <<else>> <<He>> reaches into your $worn.lower.name and starts touching you directly. <</if>> <</if>> <<elseif !$worn.under_lower.type.includes("naked") and !playerChastity()>> <<He>> reaches into your $worn.under_lower.name and starts touching you directly. <<elseif playerChastity()>> <<He>> starts probing your $worn.genitals.name. "You're such a little slut, I bet I can make you cum even with this thing on." <<else>> <<He>> continues to stroke and fondle your <<genitals>>. <</if>> <br><br> "I've heard that sexual fluids are good for plants," <<he>> says. "I like the idea, anyway. Let's test it. <<if $arousal gte ($arousalmax / 5) * 4>> You're wet already, so this won't take long." <<else>> Just relax and let me work." <</if>> <br><br> <<set _genitalsLockedAway to (!$player.penisExist or playerChastity("penis")) and (!$player.vaginaExist or playerChastity("vagina"))>> <<if _genitalsLockedAway and $settings.analEnabled and !playerChastity("anus")>> You feel <<his>> finger circle your anus. The rough calluses against your <<bottom>> make you shiver. The tip of <<his>> finger presses into you. You flinch on instinct. <<He>> grabs your hip to hold you still. <<if C.npc.Eden.lust lte 30>><<His>> thumb rubs soothing circles on your hip bone<<else>><<His>> thumb digs into you hard enough to bruise<</if>>. "Stay still," <<he>> <<if C.npc.Eden.lust lte 30>>says<<else>>warns<</if>>. <br><br> You quiver as <<he>> pushes <<his>> finger deeper. You can feel <<his>> every twitch as <<he>> <<if $player.sex isnot "f">> probes your prostate<<else>> rubs your walls<</if>>. Heat coils in your <<genitals 1>>, and you reach for your $worn.genitals.name. <br><br> Eden chuckles. Without warning, <<he>> pushes in a second finger. You grit your teeth against the wave of pleasure that hits you. It sends you over the edge. <<elseif _genitalsLockedAway>> <<He>> <<if C.npc.Eden.lust lte 30>>sensually<<else>>roughly<</if>> strokes <<his>> hands along the outside of your hips. You shiver at the feel of <<his>> strong, calloused hands on your smooth skin. <br><br> <<if playerChastity("anus") and $settings.analEnabled>> "You really must be a slut if they have to keep you locked up like this," <<he>> says. <<His>> finger strokes over your anal shield. <<if C.npc.Eden.lust lte 30>>"Tell me if you want it off."<<else>>"I might just have to rip it off you." <<gstress>><<stress 5>><</if>> <br><br> <</if>> <<He>> moves <<his>> hands to your <<breasts>>. <<He>> <<if C.npc.Eden.lust lte 30>>gives a gentle squeeze<<else>>squeezes roughly<</if>>. Your face burns with embarrassed arousal. <<garousal>><<arousal 600 "breasts">> <br><br> <<if $arousal gte ($arousalmax / 5) * 4>> "Like that?" <<he>> asks, <<else>> "Not enough?" <<he>> asks, <</if>> giving another squeeze. "I'm just getting started." <<He>> rubs circles around your nipples until they harden. <<He>> pinches them, and you gasp. You can feel <<his>> <<if C.npc.Eden.penis isnot "none">>erection<<else>>wetness<</if>> against your back. A reciprocal bolt of arousal strikes you. <<arousal 600 "breasts">> <<if $arousal lte ($arousalmax / 5) * 4>> <br><br> Despite <<his>> best efforts, it's not quite enough to bring you to orgasm, and you whimper when <<he>> moves <<his>> hands away. "Maybe you're just not in the mood," <<he>> says. <br><br> <<if $speech_attitude is "meek">> "N-no, please don't stop," you beg. <<elseif $speech_attitude is "bratty">> "Hey, you started this," you say. "You better finish it." <<else>> "Please don't stop now," you say. "I'm so close." <</if>> <br><br> "You little whore," <<he>> says, smacking your hip in frustration. "Maybe I should just break this off and give you a proper seeing to." <<gstress>><<stress 5>> <br><br> <<He>> stomps away, leaving you alone amid the weeds. <<set _givesUp to true>> <</if>> <<else>> <<if $player.penisExist and !playerChastity("penis")>> <<He>> holds your <<penis>> in <<his>> palm while running <<his>> thumb up and down your length. <<He>> occasionally pauses to rub the head with a fast, circular motion. <<if $player.virginity.penile is true>> "I'm saving your penis virginity for a special occasion." <<He>> plays with your prepuce too. "But knowing me, I'll take it before then. It's not my fault you look so tasty." <</if>> <</if>> <<if $player.vaginaExist and !playerChastity("vagina")>> <<He>> pushes a finger into your <<pussy>>, but doesn't go very deep. <<His>> thumb rubs your <<clit>> with a fast, circular motion. <<if $player.virginity.vaginal is true>> "I'm saving your pussy virginity for a special occasion." <<if $sexStats.vagina.pregnancy.totalBirthEvents gt 0>> <<He>> prods where your hymen should be and gives you an odd look. <<else>> <<He>> prods your hymen. "But knowing me, I'll take it before then. It's not my fault you look so tasty." <</if>> <</if>> <</if>> <</if>> <br><br> <<if !_givesUp>> <<arousal 10000>> <<orgasm>> <<if settings.watersportsEnabled>><span class="lewd">The stimulation makes you lose control of your bladder.</span> You 'water' the plants with more than just your lewd fluids.<</if>> "<<if settings.watersportsEnabled>>Not what I expected, but... <</if>>Good <<girl>>, give these plants a nice drink," <<he>> says as your body convulses. <<He>> holds you firm in place, making sure your fluids land on the soil. <<He>> kisses you on the cheek as your <<if !settings.watersportsEnabled>>orgasm subsides<<else>>pee stops<</if>>. "That wasn't so bad, was it?" <<tearful>> you struggle to your feet. Eden is gone. <br><br> The plot looks tidier at least. <br><br> <</if>> <<link [[Next|Eden Clearing]]>><<endevent>><</link>> <br><<set $outside to 1>><<set $location to "cabin">><<effects>> You shove Eden away from you and stand up. "What's the matter?" <<He>> smiles. "I was just rewarding you for the work you've done out here." <<He>> pats your head. <br><br> <<link [[Next|Eden Clearing]]>><<endevent>><</link>> <br><<set $outside to 1>><<set $location to "cabin">><<effects>> <<switch $edenwall>> <<case 0>> You seal up a few of the cracks, but the walls are far from fixed. <<case 1>> Another crack sealing session leaves the walls sturdier, but you still have a ways to go. <<case 2>> You work on the cracks a bit more, and the walls look mostly fixed, but some cracks still remain. <<case 3>> You continue working on the cracks. The walls are almost fully repaired. <<default>> You seal up the last few cracks. You knock on the walls a few times to test its sturdiness. <</switch>> <<physique 3>> <<pass 3 hours>> <br><br> <<set $edenwall += 1>> <<if dangerEvent() and C.npc.Eden.lust gte 26 and ((Time.hour gt 6 and Time.hour lt 11) or Time.hour gt 14)>> As you step back to look at your work, you feel a pair of hands grab your shoulders, before you're turned around and pressed against the wall. Eden presses <<himself>> between your thighs, trailing kisses down your neck. <br><br> <<link [[Kiss Eden|Eden Wall Sex]]>><<set $sexstart to 1>><<npcincr Eden love 1>><<npcincr Eden dom 1>><</link>><<gdom>><<glove>> <br> <<link [[Push Eden away|Eden Wall Push]]>><<npcincr Eden love -3>><<npcincr Eden dom -1>><</link>><<ldom>><<lllove>> <<else>> <<link [[Next|Eden Clearing]]>><<endevent>><</link>> <</if>> <br><<effects>> You push Eden away from you. <<His>> eyes harden in frustration, but <<he>> leaves you alone. <br><br> <<link [[Next|Eden Clearing]]>><<endevent>><</link>><<if $sexstart is 1>> <<set $sexstart to 0>> <<consensual>> <<set $consensual to 1>> <<neutral 1>> <<maninit>> <<set $enemytrust += 100>><<set $enemyhealth to 600>><<set $enemyhealthmax to 600>> <<promiscuity1>> <<elseif $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<maninit>><<set $enemyhealth to 600>><<set $enemyhealthmax to 600>><<set $enemyanger += 50>> <</if>> <<effects>> <<effectsman>> <<man>> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Eden Wall Sex Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Eden Wall Sex]]>><</link>></span><<nexttext>> <</if>><<set $outside to 0>><<set $location to "cabin">><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<ejaculation>><<npcincr Eden lust -20>> Eden buries <<his>> head in your neck, giving it a quick kiss. "Thanks," <<he>> says, walking away. <<elseif $enemyhealth lte 0>> "You ungrateful slut," <<he>> says. "Maybe I should throw you out and leave you to the wolves!" <<He>> winces and holds <<his>> side. "I need to get something for this." <br><br> <<He>> walks away, leaving you by the cabin walls. <<elseif $finish is 1>> <<He>> pulls away from you, helping you back to your feet. "Call me if you need help," <<he>> says, walking away. <</if>> <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Eden Clearing]]>><<endevent>><</link>> <br><<set $outside to 1>><<set $location to "cabin">><<effects>> <<wearProp "sponge">> <<switch $edenchimney>> <<case 0>> You scrub away at the chimney, soot sloughing off in waves. You work until you are too tired to continue, then examine your efforts. The chimney is still filthy, but looks better than before. <<case 1>> You scrub the bricks of the chimney, washing away months of soot. You give yourself breaks for fresh air every few minutes. When you are done, the chimney is still dirty. <<case 2>> You continue to scrub away at the chimney. While it's demanding work, you're at least making visible progress. <<case 3>> You keep scrubbing at the chimney. It looks mostly clean, but a bit of soot still remains. <<default>> You scrub a bit longer until the chimney is fully cleaned. <</switch>> <<physique 4>> <<pass 3 hours>> <br><br> <<set $edenchimney += 1>> <<if dangerEvent() and C.npc.Eden.lust gte 26 and ((Time.hour gt 6 and Time.hour lt 11) or Time.hour gt 14)>> Attempting to squeeze out of the chimney, your arms get caught at your sides, leaving you stuck. In a panic, you cry out to Eden for help. You hear footsteps approach, before a strong pair of hands grab your waist and pull. In the struggle, you inadvertently grind up against Eden multiple times, <<if $NPCList[0].penis isnot "none">> feeling <<his>> <<print $NPCList[0].penisdesc>> harden. <<else>> hearing <<his>> breath pick up. <</if>> When you come loose, the both of you topple onto the floor, and Eden wastes no time in pinning you down. <br><br> <<link [[Kiss Eden|Eden Chimney Sex]]>><<handheldon>><<set $sexstart to 1>><<npcincr Eden love 1>><<npcincr Eden dom 1>><</link>><<gdom>><<glove>> <br> <<link [[Push Eden away|Eden Chimney Push]]>><<handheldon>><<npcincr Eden love -3>><<npcincr Eden dom -1>><</link>><<ldom>><<lllove>> <<else>> <<link [[Next|Eden Cabin]]>><<endevent>><</link>> <</if>> <br><<effects>> You push Eden away from you. <<His>> eyes harden in frustration, but <<he>> leaves you alone. <br><br> <<link [[Next|Eden Cabin]]>><<endevent>><</link>><<if $sexstart is 1>> <<set $sexstart to 0>> <<consensual>> <<set $consensual to 1>> <<neutral 1>> <<maninit>> <<set $enemytrust += 100>><<set $enemyhealth to 600>><<set $enemyhealthmax to 600>> <<promiscuity1>> <<elseif $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<maninit>><<set $enemyhealth to 600>><<set $enemyhealthmax to 600>><<set $enemyanger += 50>> <</if>> <<effects>> <<effectsman>> <<man>> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Eden Chimney Sex Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Eden Chimney Sex]]>><</link>></span><<nexttext>> <</if>><<set $outside to 0>><<set $location to "cabin">><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<ejaculation>><<npcincr Eden lust -20>> Eden buries <<his>> head in your neck, giving it a quick kiss. "Thanks," <<he>> says, walking away. <<elseif $enemyhealth lte 0>> "You ungrateful slut," <<he>> says. "Maybe I should throw you out and leave you to the wolves!" <<He>> winces and holds <<his>> side. "I need to get something for this." <br><br> <<He>> walks away, leaving you alone by the chimney. <<elseif $finish is 1>> <<He>> pulls away from you, helping you back to your feet. "Call me if you need help," <<he>> says, walking away. <</if>> <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Eden Cabin]]>><<endevent>><</link>> <br><<set $outside to 1>><<set $location to "cabin">><<effects>> <<wearProp "hammer" 0 "basic">> <<switch $edenroof>> <<case 0>> The roof of the cabin is unkept, with quite a few rotted or damaged shingles that need total replacement. You look over to the ladder Eden brought, and prepare to climb. Once on top, you pull out some loose shingles and toss them to the ground. <<case 1>> You pull out more loose shingles and replace them with new ones. They stick out, but they'll at least keep out the rain and snow. There's still more to do. <<case 2>> You pick up a claw hammer. There's a patch of shingles damaged from a large fallen tree branch. You dig the hammer in, and pull. Eventually, you pull out the last of the caved in shingles, and look proudly on your work. <<case 3>> You get to work patching the hole in the roof left by the caved in shingles. It's easy work, but time consuming. <<default>> You lay out new shingles over the patched roof, and in time, your work is done. You look across the roof, amazed that you finished it all by yourself. <</switch>> <<physique 4>> <<pass 3 hours>> <br><br> <<set $edenroof += 1>> <<if dangerEvent() and C.npc.Eden.lust gte 26 and ((Time.hour gt 6 and Time.hour lt 11) or Time.hour gt 14)>> As you start to climb down, you feel the ladder shift slightly. Looking down, you notice Eden holding onto it, helping stabilise it. <<He>> nods to you, watching you make your descent. When you step off, Eden wraps <<his>> arms around your waist, pulling you into <<his>> chest. "How about taking a break?" <<he>> asks. <br><br> <<link [[Kiss Eden|Eden Roof Sex]]>><<handheldon>><<set $sexstart to 1>><<npcincr Eden love 1>><<npcincr Eden dom 1>><</link>><<gdom>><<glove>> <br> <<link [[Push Eden away|Eden Roof Push]]>><<handheldon>><<npcincr Eden love -3>><<npcincr Eden dom -1>><</link>><<ldom>><<lllove>> <<else>> <<link [[Next|Eden Clearing]]>><<endevent>><</link>> <</if>> <br><<effects>> You push Eden away from you. <<His>> eyes harden in frustration, but <<he>> leaves you alone. <br><br> <<link [[Next|Eden Clearing]]>><<endevent>><</link>><<if $sexstart is 1>> <<set $sexstart to 0>> <<consensual>> <<set $consensual to 1>> <<neutral 1>> <<maninit>> <<set $enemytrust += 100>><<set $enemyhealth to 600>><<set $enemyhealthmax to 600>> <<promiscuity1>> <<elseif $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<maninit>><<set $enemyhealth to 600>><<set $enemyhealthmax to 600>><<set $enemyanger += 50>> <</if>> <<effects>> <<effectsman>> <<man>> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Eden Roof Sex Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Eden Roof Sex]]>><</link>></span><<nexttext>> <</if>><<set $outside to 0>><<set $location to "cabin">><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<ejaculation>><<npcincr Eden lust -20>> Eden buries <<his>> head in your neck, giving it a quick kiss. "Thanks," <<he>> says, walking away. <<elseif $enemyhealth lte 0>> "You ungrateful slut," <<he>> says. "Maybe I should throw you out and leave you to the wolves!" <<He>> winces and holds <<his>> side. "I need to get something for this." <br><br> <<He>> walks away, leaving you alone by the ladder. <<elseif $finish is 1>> <<He>> pulls away from you, helping you back to your feet. "Call me if you need help," <<he>> says, walking away. <</if>> <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Eden Clearing]]>><<endevent>><</link>> <br><<set $outside to 1>><<set $location to "cabin">><<effects>> <<wearProp "mushroom">> Though you've no doubt you'd have more luck finding mushrooms in the forest proper, there's still room for fungi to grow in the clearing. You search at the base of tree stumps and the large trees growing at the outskirts of the clearing. <br><br> <<set $edenshrooms += 1>> <<if dangerEvent()>> <<if $rng gte 81>> <<transform wolf 3>> After an hour you realise you've gathered quite a haul. Eden should be happy, but you feel angry for no discernible reason. You hope all the mushrooms you gathered are safe. <br><br> <<link [[Next|Eden Clearing]]>><<endevent>><</link>> <br> <<elseif $rng gte 41>> <<drugs 120>> After an hour you realise you've gathered quite a haul. Eden should be happy, but you feel light-headed. You hope all the mushrooms you gathered are safe. <br><br> <<link [[Next|Eden Clearing]]>><<endevent>><</link>> <br> <<else>> <<alcohol 120>> After an hour you've gathered quite a haul. Eden should be happy, but you feel a strange warmth. You hope all the mushrooms you gathered are safe. <br><br> <<link [[Next|Eden Clearing]]>><<endevent>><</link>> <br> <</if>> <<else>> After an hour you realise you've gathered quite a haul. Eden should be happy. <br><br> <<link [[Next|Eden Clearing]]>><<endevent>><</link>> <br> <</if>><<set $outside to 1>><<set $location to "cabin">><<effects>> <<if $edenspring is 0>> <<wearProp "handheld net">> You pick up the net you assume is meant for this purpose and start fishing the debris from the spring. It's so messy you don't know where to start, but you leave the spring a little clearer than you found it. <<elseif $edenspring is 1>> You haul out the larger branches that have sunk to the bottom of the spring. <<elseif $edenspring is 2>> <<wearProp "handheld net">> You use the net to guide the floating branches to the edge, where you can remove them with ease. <<else>> <<wearProp "handheld net">> You scoop up the twigs with the net. When you're done, the spring is crystal clear. <</if>> <<physique 2>> <<pass 30>> <br><br> <<set $edenspring += 1>> <<link [[Next|Eden Clearing]]>><<endevent>><</link>> <br><span id = "clearingHeaterExamine"> <<clearingHeaterExamine>> </span> <br><br> <<getouticon>><<link [[Back|Eden Clearing]]>><<endevent>><</link>><<set $outside to 1>><<set $location to "cabin">><<effects>> <<strip>> <<water>> <<if Weather.waterTemperature lte 5>> <<set _edenSpringTempDesc to "absolutely freezing">> <<set _edenSpringStress to 6>> <<elseif Weather.waterTemperature lte 15>> <<set _edenSpringTempDesc to "uncomfortably cold">> <<set _edenSpringStress to 4>> <<elseif Weather.waterTemperature lte 25>> <<set _edenSpringTempDesc to "cool and refreshing">> <<set _edenSpringStress to -6>> <<elseif Weather.waterTemperature lte 35>> <<set _edenSpringTempDesc to "comfortably warm">> <<set _edenSpringStress to -6>> <<else>> <<set _edenSpringTempDesc to "nice and hot, steam rising from the water">> <<set _edenSpringStress to -8>> <</if>> <<if $phase lte 0>> The cliff face curves around the spring, hiding you from the rest of the clearing. You undress and slip into the water. It's <<print _edenSpringTempDesc>>. <<stress _edenSpringStress>> <<else>> The springwater is <<print _edenSpringTempDesc>>. <<if Weather.waterTemperature lte 15>> It's too cold for you to relax. <<else>> You lie back, close your eyes, and relax. <</if>> <</if>> <<wash>> <br><br> <<if dangerEvent() and C.npc.Eden.lust gte 26 and ((Time.hour gt 6 and Time.hour lt 11) or Time.hour gt 14)>> <<npc Eden>><<person1>> You're disturbed by a whistling. You open your eyes in alarm. Eden stands at the edge of the spring. <<covered>> "I don't bother keeping this place clear any more," <<he>> says as <<he>> undresses. "It's so much work. I'm glad you feel different." <<He>> jumps in, splashing you. <<npcexpose>> <br><br> <<if C.npc.Eden.dom gte 75>> <<He>> emerges behind you and pulls you into <<his>> chest. "There's something else you can do for me." <<He>> trails a hand downwards, toying with your <<genitals>>. <<else>> <<He>> emerges behind you and wraps <<his>> arms around your waist. "There's something else you can do for me." <<He>> licks your cheek. <</if>> <br><br> <<set $edenFluidsCheck to "clean">> <<link [[Push away|Clearing Spring Push]]>><<npcincr Eden love -3>><<npcincr Eden dom -1>><</link>><<lllove>><<ldom>> <br> <<link [[Let Eden have you|Clearing Spring Sex]]>><<set $sexstart to 1>><<npcincr Eden love 1>><<npcincr Eden dom 1>><</link>><<promiscuous1>><<gdom>><<glove>> <br> <<else>> <<ind>><<link [[Stay in the spring (0:30)|Clearing Spring]]>><<pass 30>><<stress _edenSpringStress>><<set $phase to 1>><</link>> <<if Weather.waterTemperature lte 5>> <<ggstress>> <<elseif Weather.waterTemperature lte 15>> <<gstress>> <<elseif Weather.waterTemperature lte 35>> <<lstress>> <<else>> <<llstress>> <</if>> <br> <<skinicon "masturbate">><<link [[Masturbate|Clearing Spring Masturbation]]>><<handheldruined true true>><<set $masturbationstart to 1>><</link>> <br> <<getouticon>><<link [[Get out|Eden Clearing]]>><<endevent>><<clotheson>><</link>> <</if>><<set $outside to 1>><<set $location to "cabin">><<water>><<effects>> You press your hand against <<his>> face and push <<him>> away. <<if C.npc.Eden.love - (C.npc.Eden.lust * 2) gte 1>> "You wanna be like that?" <<he>> says. "Fine. Don't forget who looks after you though. You should show more respect." <<He>> swims to the shore and climbs out. <<He>> doesn't bother dressing before walking back to the cabin. <br><br> <<endevent>> <<ind>><<link [[Stay in the spring (0:30)|Clearing Spring]]>><<pass 30>><<stress -6>><<set $phase to 1>><</link>><<lstress>> <br> <<getouticon>><<link [[Get out|Eden Clearing]]>><<endevent>><<clotheson>><</link>> <<else>> <<He>> swats your arm away and pulls you into <<him>>. <br><br> <<link [[Next|Clearing Spring Sex]]>><<set $molestationstart to 1>><</link>> <br> <</if>><<water>> <<if $sexstart is 1>> <<set $sexstart to 0>> <<consensual>> <<set $consensual to 1>> <<neutral 1>> <<maninit>> <<set $enemytrust += 100>><<set $enemyhealth to 600>><<set $enemyhealthmax to 600>> <<promiscuity1>> <<if $NPCList[0].penis is "clothed">> <<set $NPCList[0].penis to 0>> <</if>> <<if $NPCList[0].vagina is "clothed">> <<set $NPCList[0].vagina to 0>> <</if>> <<elseif $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<maninit>><<set $enemyhealth to 600>><<set $enemyhealthmax to 600>><<set $enemyanger += 50>> <</if>> <<effects>> <<effectsman>> <<man>> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Clearing Spring Sex Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Clearing Spring Sex]]>><</link>></span><<nexttext>> <</if>><<set $outside to 0>><<set $location to "cabin">><<water>><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<ejaculation>><<npcincr Eden lust -20>> "You're extra wet now," <<he>> laughs. <<He>> swims to the shore and climbs out. <<He>> doesn't bother dressing before walking back to the cabin.<<lllust>> <<elseif $enemyhealth lte 0>> "You ungrateful slut," <<he>> says. "Maybe I should just fucking drown you!" <<He>> winces and holds <<his>> side. "I need to get something for this." <br><br> <<He>> swims to the shore and climbs out. <<He>> doesn't bother dressing before stumbling back to the cabin. <<elseif $finish is 1>> "Did I interrupt your bath?" <<he>> says. "You're so cute." <<He>> swims to the shore and climbs out. <<He>> doesn't bother dressing before walking back to the cabin. <</if>> <br><br> <<endcombat>> <<wash>> <<ind>><<link [[Stay in the spring (0:30)|Clearing Spring]]>><<endevent>><<pass 30>><<stress -6>><<set $phase to 1>><</link>><<lstress>> <br> <<getouticon>><<link [[Get out|Eden Clearing]]>><<endevent>><<clotheson>><</link>><<water>> <<if $sexstart is 1>> <<set $sexstart to 0>> <<consensual>> <<set $consensual to 1>> <<neutral 1>> <<maninit>> <<set $enemytrust += 100>><<set $enemyhealth to 600>><<set $enemyhealthmax to 600>> <<elseif $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<maninit>><<set $enemyhealth to 600>><<set $enemyhealthmax to 600>><<set $enemyanger += 50>> <</if>> <<effects>> <<effectsman>> <<man>> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Clearing Spring Masturbation Sex Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Clearing Spring Masturbation Sex]]>><</link>></span><<nexttext>> <</if>><<set $outside to 0>><<set $location to "cabin">><<water>><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<ejaculation>><<npcincr Eden lust -20>> "Hope that was better than doing it yourself," Eden mumbles as <<he>> nuzzles your neck. <<elseif $enemyhealth lte 0>> "You ungrateful slut," <<he>> says. "Maybe I should just fucking drown you!" <<He>> winces and holds <<his>> side. "I need to get something for this." <br><br> <<He>> leaves you alone in the spring and stumbles back to the cabin. <<elseif $finish is 1>> Eden pulls away from you, before raising <<his>> eyebrows and shooting you an incredulous look. <<He>> leaves you alone in the spring and walks back to the cabin. <</if>> <br><br> <<endcombat>> <<ind>><<link [[Stay in the spring (0:30)|Clearing Spring]]>><<pass 30>><<stress -6>><<set $phase to 1>><</link>><<lstress>> <br> <<getouticon>><<link [[Get out|Eden Clearing]]>><<endevent>><<clotheson>><</link>><<set $outside to 1>><<set $location to "cabin">><<effects>> <<strip>> Sunlight shimmers on the water as leaves float down, resting gently on the surface. Reaching the edge of the spring, you undress and store your clothes away, ready to slip into the cool water. <br><br> A sound from behind catches your attention. Turning around, your eyes are drawn to Eden. <<Hes>> <<if Time.hour gte 9 and Time.hour lte 10>> tending to the crops, <<elseif Time.hour is 15>> skinning <<his>> prey, <<elseif Time.hour is 16>> chopping firewood, <</if>> a sheen of sweat lining <<his>> neck. Though <<he>> looks quite focused, you can't help but notice that <<he>> seems a little tired today. Maybe a short break would help? <br><br> <<link [[Ask Eden to join you|Eden Spring Intro 2]]>><<set $edenspringintro to 1>><<set $edenFluidsCheck to "clean">><</link>> <br> <<link [[Let <<him>> work|Clearing Spring]]>><<endevent>><<set $phase to 1>><</link>><<effects>> <<wash>> You wave your hand in the air, calling for Eden. <<He>> turns <<his>> head to you, a questioning look in <<his>> eyes. Over the distance, you ask if <<he>>'d like to join you in the spring. For a second, <<his>> eyes dart down to <<if Time.hour gte 9 and Time.hour lte 10>> the crops, <<elseif Time.hour is 15>> <<his>> prey, <<elseif Time.hour is 16>> <<his>> axe, <</if>> but <<his>> exhaustion gets the better of <<him>>, and <<he>> walks over. <br><br> After <<he>> strips, the both of you sink into the spring. The cool water feels absolutely refreshing against your skin, and you let out a sigh of relief. Eden does the same, lying back against the edge with <<his>> eyes closed. <br><br> <<link [[Cuddle|Eden Spring Intro Cuddle]]>><<npcincr Eden love 1>><</link>><<glove>> <br> <<link [[Splash some water at Eden|Eden Spring Splash]]>><</link>><<water>><<effects>> Swimming over, you snuggle up to Eden, lying against <<his>> chest. Taking the hint, <<he>> wraps <<his>> arms around you, allowing you to settle onto <<his>> lap. Together, the both of you bask in the stillness of the forest, surrounded by nothing but birdsong and the gentle wind. <br><br> <<link [[Seduce Eden|Eden Spring Intro Seduce]]>><</link>> <br> <<link [[Just cuddle|Eden Spring Intro Cuddle 2]]>><</link>><<water>><<effects>> The both of you spend some time in the water, curled up in each other's embrace. After a while, Eden pulls away, looking much less exhausted than before. Although it's clear that <<he>>'d like to stay with you, <<he>> glances back to the clearing. "I should get back to work," <<he>> says, eyes landing on <<if Time.hour gte 9 and Time.hour lte 10>> the crops. <<elseif Time.hour is 15>> <<his>> prey. <<elseif Time.hour is 16>> <<his>> axe. <</if>> <<He>> gives your forehead a quick kiss, and climbs out of the water. <br><br> <span class = "gold">You can now invite Eden to join you in the spring.</span> <br><br> <<link [[Next|Clearing Spring]]>><<pass 30>><<set $daily.eden.springJoin to 1>><<endevent>><<set $phase to 1>><</link>><<water>><<effects>> Slowly, you trail your hands down Eden's chest. At the sudden sensation, <<he>> opens <<his>> eyes, chuckling and pulling you in for a kiss. <br><br> <<link [[Next|Eden Spring Intro Sex]]>><<set $sexstart to 1>><</link>><<water>><<effects>> While <<hes>> not looking, you splash some water at Eden, laughing as the stream hits <<him>> right in the face. Startled, <<he>> sits up, a playfully dangerous look in <<his>> eyes. Before you can swim away, <<he>> grabs your arm and pulls you into <<him>>, pinning you by the edge of the spring. <br><br> <<link [[Next|Eden Spring Intro Sex]]>><<set $sexstart to 1>><</link>><<if $sexstart is 1>> <<set $sexstart to 0>> <<consensual>> <<set $consensual to 1>> <<neutral 1>> <<maninit>> <<set $enemytrust += 100>><<set $enemyhealth to 600>><<set $enemyhealthmax to 600>> <<promiscuity1>> <<if $NPCList[0].penis is "clothed">> <<set $NPCList[0].penis to 0>> <</if>> <<if $NPCList[0].vagina is "clothed">> <<set $NPCList[0].vagina to 0>> <</if>> <<elseif $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<maninit>><<set $enemyhealth to 600>><<set $enemyhealthmax to 600>><<set $enemyanger += 50>> <</if>> <<water>> <<effects>> <<effectsman>> <<man>> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Eden Spring Intro Sex Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Eden Spring Intro Sex]]>><</link>></span><<nexttext>> <</if>><<set $outside to 0>><<set $location to "cabin">><<water>><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<ejaculation>><<npcincr Eden lust -20>> Eden holds you close, running <<his>> fingers through your damp hair.<<lllust>> <br><br> <<endcombat>> <<link [[Next|Eden Spring Intro 3]]>><</link>> <<elseif $enemyhealth lte 0>> "You ungrateful slut," <<he>> says. "Maybe I should just fucking drown you!" <<He>> winces and holds <<his>> side. "I need to get something for this." <br><br> <<He>> swims to the shore and climbs out. <<He>> doesn't bother dressing before stumbling back to the cabin. <br><br> <<endcombat>> <<link [[Next|Clearing Spring]]>><<set $phase to 1>><</link>> <<elseif $finish is 1>> Eden pulls away from you, holding you close as <<he>> relaxes by the edge of the spring. <br><br> <<endcombat>> <<npc Eden>><<person1>> <<link [[Just cuddle (0:30)|Eden Spring Intro Cuddle 2]]>><<pass 30>><</link>> <</if>> <br><br><<water>> <<effects>> <<npc Eden>><<person1>> <<wash>> The both of you take a minute to catch your breath, the sound of your pants echoing through the air. After a bit, Eden pulls away, looking much less exhausted than before. Although it's clear that <<he>>'d like to stay with you, <<he>> glances back to the clearing. "I should get back to work," <<he>> says, eyes landing on <<if Time.hour gte 9 and Time.hour lte 10>> the crops. <<elseif Time.hour is 15>> <<his>> prey. <<elseif Time.hour is 16>> <<his>> axe. <</if>> <<He>> gives your forehead a quick kiss, and climbs out of the water. <br><br> <span class = "gold">You can now invite Eden to join you in the spring.</span> <br><br> <<link [[Next|Clearing Spring]]>><<pass 30>><<endevent>><<set $daily.eden.springJoin to 1>><<set $phase to 1>><</link>><<set $outside to 1>><<set $location to "cabin">><<effects>> <<strip>> <<water>> <<wash>> You and Eden walk to the spring, undressing and slipping into the water. <<He>> holds you close as the both of you lie back and relax. Around you, <<if $rng gte 61>> the leaves dance in the wind, resting gently by the water's edge. <<elseif $rng gte 31>> the sound of bird calls echo through the clearing. <<else>> sunlight peeks through the trees, shimmering on the water's surface. <</if>> <br><br> <<link [[Seduce Eden|Eden Spring Seduce]]>><</link>> <br> <<link [[Just cuddle (0:30)|Eden Spring 2]]>><<pass 30>><</link>><<water>> <<effects>> <<set $seductiondifficulty to (10000 - (C.npc.Eden.lust * 200))>> <<seductioncheck>> <<seductionskilluptext>> <<seductionskilluse>> You trail your hand down Eden's stomach, bringing your lips to <<his>> neck. <<if $seductionrating gte $seductionrequired>> Resting a hand on your cheek, <<he>> pulls you in for a kiss. <br><br> <<link [[Next|Eden Spring Sex]]>><<set $sexstart to 1>><</link>> <<else>> Gently, <<he>> pulls your head away, wrapping an arm around your waist. <br><br> <i><<He>> will be more lusty, and easier to seduce, the longer <<hes>> gone without sex.</i> <br><br> <<link [[Next|Eden Spring 2]]>><</link>> <</if>><<water>> <<if $sexstart is 1>> <<set $sexstart to 0>> <<consensual>> <<set $consensual to 1>> <<neutral 1>> <<maninit>> <<set $enemytrust += 100>><<set $enemyhealth to 600>><<set $enemyhealthmax to 600>> <<promiscuity1>> <<if $NPCList[0].penis is "clothed">> <<set $NPCList[0].penis to 0>> <</if>> <<if $NPCList[0].vagina is "clothed">> <<set $NPCList[0].vagina to 0>> <</if>> <<elseif $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<maninit>><<set $enemyhealth to 600>><<set $enemyhealthmax to 600>><<set $enemyanger += 50>> <</if>> <<effects>> <<effectsman>> <<man>> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Eden Spring Sex Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Eden Spring Sex]]>><</link>></span><<nexttext>> <</if>><<set $outside to 0>><<set $location to "cabin">><<water>><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<ejaculation>><<npcincr Eden lust -20>> Eden holds you close, running <<his>> fingers through your damp hair.<<lllust>> <br><br> <<endcombat>> <<link [[Next|Eden Spring 2]]>><</link>> <<elseif $enemyhealth lte 0>> "You ungrateful slut," <<he>> says. "Maybe I should just fucking drown you!" <<He>> winces and holds <<his>> side. "I need to get something for this." <br><br> <<He>> swims to the shore and climbs out. <<He>> doesn't bother dressing before stumbling back to the cabin. <br><br> <<endcombat>> <<link [[Next|Clearing Spring]]>><<set $phase to 1>><</link>> <<elseif $finish is 1>> Eden pulls away from you, holding you close as <<he>> relaxes by the edge of the spring. <br><br> <<endcombat>> <<link [[Just cuddle (0:30)|Eden Spring 2]]>><<pass 30>><</link>> <</if>><<water>><<effects>> After a while, Eden pulls away, giving your forehead a quick kiss before climbing out of the water. <br><br> <<link [[Next|Clearing Spring]]>><<set $phase to 1>><</link>><<set $outside to 1>><<set $location to "cabin">><<effects>> You wash Eden's clothes in the spring, making sure to get every bit of dirt and grime off. <br><br> <<if dangerEvent() and C.npc.Eden.lust gte 26 and ((Time.hour gt 6 and Time.hour lt 11) or Time.hour gt 14)>> /* eden is already generated on passages that lead here <<npc Eden>><<person1>>*/You feel a pair of arms wrap around you from behind. Eden buries <<his>> head in your neck and kisses your collarbone. <br><br> <<if C.npc.Eden.dom gte 75>> "You're such a good <<wife>>, doing this for me," <<he>> says. "Let me return the favour." You feel <<his>> hand slide to your <<genitals>> as <<he>> presses <<himself>> against you. <<else>> "You're such a good <<wife>>, doing this for me," <<he>> says. "Maybe there's a way I can return the favour." You feel <<his>> hand slide onto your thigh. <</if>> <br><br> <<link [[Push away|Wash Spring Push]]>><<npcincr Eden love -1>><<npcincr Eden dom -1>><</link>> <br> <<link [[Embrace Eden|Wash Spring Sex]]>><<set $sexstart to 1>><<npcincr Eden love 1>><<npcincr Eden dom 1>><</link>><<promiscuous1>> <br> <<else>> It takes some time, but the clothes look much better off when you're done. <br><br> <<link [[Next|Eden Clearing]]>><<endevent>><</link>> <</if>> <br><<set $outside to 1>><<set $location to "cabin">><<effects>> You push Eden off you. "Alright," <<he>> says, raising <<his>> hands in surrender. "Call me if you need anything else." <<He>> kisses your forehead in thanks before walking off. <br><br> <<link [[Next|Eden Clearing]]>><<endevent>><</link>> <br><<if $sexstart is 1>> <<set $sexstart to 0>> <<consensual>> <<set $consensual to 1>> <<neutral 1>> <<maninit>> <<set $enemytrust += 100>><<set $enemyhealth to 600>><<set $enemyhealthmax to 600>> <<promiscuity1>> <<elseif $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<maninit>><<set $enemyhealth to 600>><<set $enemyhealthmax to 600>><<set $enemyanger += 50>> <</if>> <<effects>> <<effectsman>> <<man>> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Wash Spring Sex Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Wash Spring Sex]]>><</link>></span><<nexttext>> <</if>><<set $outside to 0>><<set $location to "cabin">><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<ejaculation>><<npcincr Eden lust -20>> Eden holds you close for a moment and kisses your forehead. "Thanks," <<he>> says, before dressing and walking away. <<elseif $enemyhealth lte 0>> "You ungrateful slut," <<he>> says. "Maybe I should just fucking drown you!" <<He>> winces and holds <<his>> side. "I need to get something for this." <br><br> <<He>> walks away and leaves you alone by the spring. <<elseif $finish is 1>> "Alright," <<he>> says, raising <<his>> hands in surrender. "Call me if you need anything else." <<He>> kisses your forehead in thanks before walking off. <</if>> <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Eden Clearing]]>><<endevent>><</link>> <br><<npc Eden>><<person1>> <<if $bus is "edencabin">> The cold makes your teeth chatter, waking you from your <<if $nightmares gte 1>> restless <</if>> sleep. You rub your eyes as you sit up. The first thing you notice is that Eden's side of the bed is empty. There's no sign of <<him>> in the cabin. <br><br> You hear the sound of a shovel hitting dirt outside. Curiosity fills you. You pull on your clothing and head outside into the clearing. <<else>> You walk into the clearing. You can hear the sound of a shovel hitting dirt. Curiosity fills you, and you look for the source. <</if>> <br><br> <<set $outside to 1>> <<set $location to "cabin">> <<set $bus to "edenclearing">> There is a pile of dirt near the spring. As you walk over to investigate, you see Eden throw the shovel out and pull <<himself>> from the hole. <<He>> is covered in dirt and sweat. <<He>> notices you and nods. <br><br> <<if $speech_attitude is "meek">> "Um," you say. "Wh-what are you doing?" <<elseif $speech_attitude is "bratty">> "What are you doing down there?" you ask. "Lose something?" <<else>> "Why are you digging a hole?" you ask. <</if>> <br><br> "Come here, <<girl>>," <<he>> says, motioning you over. "I want to show you something." <br><br> <<He>> seems excited. <br><br> <<link [[Next|Eden Hot Spring Creation 2]]>><</link>>You walk over to <<his>> side. <<He>> points down into the hole. There is a system of pipes connected to each other. <br><br> <<if $science gte 700>> You recognise it as a thermosiphon heater. <<else>> You have no idea what it is. <</if>> <br><br> "We can heat the spring with this," <<he>> says. "All you need is firewood. Let me show you." <br><br> <<He>> takes you by the arm and guides you into the pit. You watch as <<he>> lights a fire in the middle of the coil of pipes. <<He>> explains how it works. <<if $science gte 700>> You knew this already, but listen politely. <<else>> You nod along, your eyes glazing over. <</if>> <br><br> "If you keep the spring clear, we can relax during the day without getting too cold," <<he>> says. <br><br> You look at the complicated set-up. It's clear that <<hes>> worked hard on this. <br><br> <<link [[Thank with a kiss|Eden Hot Spring Creation Response]]>><<set $phase to "kiss">><</link>><<glove>><<ldom>> <br> <<link [[Thank|Eden Hot Spring Creation Response]]>><<set $phase to "thank">><</link>><<glove>><<gdom>> <br> <<link [[Walk away|Eden Hot Spring Creation Response]]>><<set $phase to "leave">><</link>><<lllove>><<if $phase is "leave">> You walk away without a word. Behind you, you hear Eden grumble. <br><br> "Ungrateful brat," <<he>> says, just loud enough for you to hear. <<He>> stomps away. <<npcincr Eden love -3>> <<else>> <<if $phase is "kiss">> You stand on your toes and kiss <<his>> cheek. <<He>> coughs and turns away, but you can see <<him>> blushing. <<npcincr Eden love 1>> <<npcincr Eden dom -1>> <<else>> You give <<him>> a hug. <<npcincr Eden love 1>> <<npcincr Eden dom 1>> <</if>> <br><br> "Thank you for working so hard," you say. <br><br> <<He>> nods, avoiding looking at you. "Let's go back inside while this heats up," <<he>> says. "It can take a while." <</if>> <br><br> <span class='gold'>You can now use the heater to make a hot spring!</span> <br><br> <<set $edenHotSpring to true>> <<set $edenHeater to Cooker.create({maxBurnTime: TimeConstants.secondsPerHour * 6})>> <<link [[Next|Eden Clearing]]>><<endevent>><</link>><<effects>> /* eden is already generated on passages that lead here <<npc Eden>><<person1>>*/ <<if $eden_shoot is 1>> <<set $eden_shoot to 2>> Eden takes you outside, lighting an oil lamp before <<he>> does. <<He>> gestures for you to wait beneath the porch, then disappears behind the cabin. <<He>> reappears a few moments later, carrying a target shaped like a deer. <<He>> sets it up on a patch of unused earth a couple of dozen steps away. <br><br> <<He>> talks you through how to operate the gun before letting you touch it. You think you get the gist. <<He>> passes it to you, and you point it at the target. "Not like that," <<he>> says, sidling close behind you. <<His>> arms wrap around your shoulders, and <<he>> takes your hands in <<his>> own to better demonstrate. "Hold it like this." <br><br> <<edenicon "target">><<link [[Focus|Eden Shoot First Focus]]>><</link>> <br> <<ind>><<link [[Rub your ass against Eden's crotch|Eden Shoot Rub]]>><<npcincr Eden lust 5>><<arousal 600 "bottom">><</link>><<glust>><<garousal>> <br> <<elseif dangerEvent() and $eventskip is 0>> You practise shooting outside under Eden's instruction. <<He>> takes a hands-on approach. "Not like that," <<he>> says, sidling close behind you. <<His>> arms wrap around your shoulders, and <<he>> takes your hands in <<his>> own to better demonstrate. "Hold it like this." <br><br> <<edenicon "target">><<link [[Focus|Eden Shoot Focus]]>><</link>> <br> <<ind>><<link [[Rub your ass against Eden's crotch|Eden Shoot Rub]]>><<npcincr Eden lust 5>><<arousal 600 "bottom">><</link>><<glust>><<garousal>> <br> <<else>> <<set $stat_shoot += random(20, 40)>> You practise shooting outside under Eden's instruction. The deer-shaped target gains some new holes before you're done. <br><br> <<if Time.hour isnot 0>> <<edenicon "target">><<link [[Keep practising (0:30)|Eden Shoot]]>><<pass 30>><<stress -6>><</link>><<lstress>> <br> <</if>> <<getouticon>><<link [[Go inside|Eden Cabin]]>><<endevent>><</link>> <</if>><<effects>> <<set $stat_shoot += random(15, 25)>> You focus on making the shot. You fire, and the bullet thuds into the target. "Good," Eden says, giving your arms more freedom. "Again." You fire again, but this time the bullet whizzes into the dark. <br><br> You keep practising, listening to Eden's pointers. You learn a lot, and soon find yourself hitting more often than not. <br><br> <<if Time.hour isnot 0>> <<edenicon "target">><<link [[Keep practising (0:30)|Eden Shoot]]>><<pass 30>><<stress -6>><</link>><<lstress>> <br> <</if>> <<getouticon>><<link [[Go inside|Eden Cabin]]>><<endevent>><</link>><<effects>> <<set $stat_shoot += random(20, 40)>> You focus on making the shot. You fire, and the bullet thuds into the target. "Good," Eden says, giving your arms more freedom. "Again." You fire again, and once more make the shot. <br><br> You keep practising as Eden watches. You think <<he>> approves. <br><br> <<if Time.hour isnot 0>> <<edenicon "target">><<link [[Keep practising (0:30)|Eden Shoot]]>><<pass 30>><<stress -6>><</link>><<lstress>> <br> <</if>> <<getouticon>><<link [[Go inside|Eden Cabin]]>><<endevent>><</link>><<effects>> <<set $stat_shoot += random(5, 15)>> You rub your <<bottom>> against Eden. <<He>> stutters as you do, but tries to maintain composure. You look back at <<him>> and feign an innocent expression. <<if $NPCList[0].penis isnot "none">> You feel <<his>> <<print $NPCList[0].penisdesc>> harden beneath <<his>> clothes. <<else>> <</if>> <br><br> <<if C.npc.Eden.lust gte 20>> <<He>> pulls the gun away from your hands and casts it onto the grass before tackling you to the ground. <br><br> <<if hasSexStat("promiscuity", 2)>> <<ind>><<link [[Go along with it|Eden Shoot Sex]]>><<set $sexstart to 1>><<npcincr Eden love 1>><</link>><<promiscuous2>><<glove>> <br> <</if>> <<refuseicon>><<link [[Refuse|Eden Shoot Sex Refuse]]>><<npcincr Eden love -3>><</link>><<lllove>> <br> <<else>> <<He>> does nothing to stop you, but continues the lesson as if nothing were amiss. <<Hes>> distracted, though <<he>> pretends otherwise. <br><br> <<if Time.hour isnot 0>> <<edenicon "target">><<link [[Keep practising (0:30)|Eden Shoot]]>><<pass 30>><<stress -6>><</link>><<lstress>> <br> <</if>> <<getouticon>><<link [[Go inside|Eden Cabin]]>><<endevent>><</link>> <</if>><<effects>> You shove Eden away from you. <<He>> doesn't give up at first, and continues to paw at you, but your persistence wards <<him>> off before long. <br><br> <<He>> stomps back into the cabin. <br><br> <<link [[Next|Eden Cabin]]>><<endevent>><</link>> <br><<if $sexstart is 1>> <<set $sexstart to 0>> <<consensual>> <<set $consensual to 1>> <<neutral 1>> <<maninit>> Eden's pawing becomes more aggressive. <<promiscuity2>> <</if>> <<effects>> <<effectsman>> <<man>> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Eden Shoot Sex Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Eden Shoot Sex]]>><</link>></span><<nexttext>> <</if>><<set $outside to 0>><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<ejaculation>> Eden climbs to <<his>> feet and retrieves <<his>> gun. <<He>> enters the cabin. <<npcincr Eden lust -20>><<lllust>> <br><br> <<tearful>> you follow <<him>> inside. <<elseif $enemyhealth lte 0>> Eden backs away from you, giving you some space. <<He>> shoots you an angry look as <<he>> retrieves <<his>> gun. <<He>> enters the cabin. <br><br> <<tearful>> you follow suit. <<else>> Eden backs away from you, giving you some space. <<He>> shoots you an angry look as <<he>> retrieves <<his>> gun. <<He>> enters the cabin. <br><br> <<tearful>> you follow suit. <</if>> <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Eden Cabin]]>><</link>>/* eden is already generated on passages that lead here <<npc Eden>><<person1>>*/ <<effects>> <<if $speech_attitude is "meek">> "C-can I learn to shoot?" you ask. <<elseif $speech_attitude is "bratty">> "I want to shoot that thing," you say. <<else>> "Can you teach me how to shoot?" you ask. <</if>> <br><br> <<if C.npc.Eden.love gte 60>> <<set $eden_shoot to 1>> <<He>> begins to shake <<his>> head, but something in your eyes makes <<him>> stop. "If it'll make you happy," <<he>> says, "I can teach you." <br><br> <<link [[Next|Eden Cabin]]>><<endevent>><</link>> <br> <<else>> <<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> <<link [[Next|Eden Cabin]]>><<endevent>><</link>> <br> <</if>><<location "forest">><<effects>> /* eden is already generated on passages that lead here <<npc Eden>><<person1>>*/ You and Eden walk through the forest, searching for anything of value. <br><br> <<rng>> <<if $rng gte 71>> <<wearProp "wolfshroom">> You both find a cluster of edible mushrooms growing at the base of a decaying tree. <br><br> "Wolfshrooms," Eden says. "I wouldn't come all this way just for those, but since we're here." <br><br> <span class="green">Eden helps you pick some <<icon "tending/wolfshroom.png">> wolfshrooms.</span> <<tending_pick wolfshroom>> <br><br> <<link [[Next|Eden Clearing]]>><<endevent>><</link>> <<elseif $rng gte 51>> You walk into a clearing. Eden holds out <<his>> arm. A deer bursts from the trees a moment later. <br><br> Eden unslings <<his>> rifle, but the beast is already gone. <br><br> <<link [[Next|Eden Clearing]]>><<endevent>><</link>> <<elseif $rng gte 31>> <<wearProp "honeycomb">> You both hear a gentle buzz up ahead. A large beehive hangs from a tree. Workers fly in and out in a quest for pollen. The honey would be valuable. <br><br> You reach out to harvest some honeycomb, but Eden stops you before you can. <br><br> "No," <<he>> says. "Let me handle this one." <br><br> Eden climbs the tree and snaps a large chunk off the <<icon "tending/wild_honeycomb.png">> honeycomb. <span class="green">Thanks to <<his>> experienced hands, the bees don't react.</span> <<He>> climbs down. <<silently>><<tending_pick wild_honeycomb 1 2>><</silently>> <br><br> <<link [[Next|Eden Clearing]]>><<endevent>><</link>> <<else>> You both come to a clearing. A gentle breeze blows against your face, and small, soft plants press beneath your feet. <br><br> Lemons grow from a cluster of small trees. <br><br> <<if Time.isBloodMoon()>> <<wearProp "blood lemon">> Eden searches the short trees for <<icon "tending/blood_lemon.gif">> lemons. <span class="green"><<He>> finds a bunch, their yellow skin criss-crossed by red veins.</span> <<tending_pick blood_lemon 6 18>> <br><br> <<if $edenbloodmoon isnot 1>> <<link [[Next|Eden Blood Moon]]>><<handheldon>><<set $edenbloodmoon to 1>><</link>> <<else>> <<link [[Next|Eden Clearing]]>><<endevent>><</link>> <</if>> <<else>> <<wearProp "lemon">> Eden searches the short trees for <<icon "tending/lemon.png">> lemons. <span class="green"><<He>> finds a bunch, nice and yellow.</span> <<tending_pick lemon 6 18>> <br><br> <<link [[Next|Eden Clearing]]>><<endevent>><</link>> <</if>> <</if>><<location "forest">><<effects>><<wearProp "blood lemon">> <<if $speech_attitude is "meek">> "R-red lemons?" you ask, as <<he>> hands them to you. <<elseif $speech_attitude is "bratty">> "Strange looking lemons," you say, as <<he>> hands them to you. <<else>> "These lemons look strange," you say, as <<he>> hands them to you. <</if>> "Blood lemons," <<he>> answers, pointing up to the sky. A blood red moon hangs ominously above. <br><br> <<if $speech_attitude is "meek">> "W-why is the moon red?" you ask. <<elseif $speech_attitude is "bratty">> "What's up with the moon?" you ask. <<else>> "Why's the moon red?" you ask. <</if>> <br> "A natural phenomenon," <<he>> says, as you both start walking back to the cabin. <br> <<if $speech_attitude is "meek">> "W-what do you mean?" <<elseif $speech_attitude is "bratty">> "Care to elaborate?" <<else>> "That's it?" <</if>> <br> "It seems to make people act out. The wolves too," <<he>> says. "They're overreacting, though. Just using it as an excuse to indulge their base impulses." <br><br> A few minutes pass in silence, until Eden speaks. <br><br> "I've seen some people enter the forest on nights like these. Always in groups." <<He>> takes your arm and pulls you closer as <<he>> walks. "But they're easy enough to avoid." <br><br> Eden falls silent as the cabin comes into view. <br><br> <<link [[Next|Eden Clearing]]>><<endevent>><</link>><<set $outside to 1>><<set $location to "lake">><<effects>> After reaching the lake, the two of you spend a few minutes on shore pumping some air into the raft. Once it's inflated, you both lower the raft onto the water and settle in, sitting across from each other. Placing the air pump on the raft, Eden grabs the oars and starts rowing. <br><br> <<link [[Next|Eden Raft Intro 2]]>><</link>><<set $outside to 1>><<effects>> <<if Time.season is "autumn">> As the boat floats over the lake, you take some time to appreciate the scenery. The sounds of the gently flowing water put you at ease, and you're mesmerised as the falling autumn leaves surround you. Glancing around, one of the leaves fall in your hair. Giggling, you brush it off. <<elseif Time.hour gte 6 and Time.hour lte 8>> As the boat floats over the lake, you take some time to appreciate the scenery. The sounds of the gently flowing water put you at ease, and the glow of the orange sun is mesmerising. Glancing around, you see some swans swimming nearby. Looking closer, you notice that a pair of them has faced each other, forming a heart. You smile at the sight. <<else>> As the boat floats over the lake, you take some time to appreciate the scenery. The sounds of the gently flowing water put you at ease, and the view of the sky is enchanting. Glancing around, a butterfly flits over and lands on your nose. You giggle at the ticklish sensation and brush it off. <</if>> <br><br> <<link [[Next|Eden Raft Intro 3]]>><</link>><<set $outside to 1>><<effects>> Suddenly, you notice that the once distant sound of chatter has disappeared. Looking around, you see nothing but trees and deduce that Eden must have brought the two of you into a relatively private section of the lake. You turn your attention to <<him>>, realising that, in this moment, there is nothing but you, Eden and the beautiful <<if Time.season is "autumn">>falling leaves<<elseif Time.hour gte 6 and Time.hour lte 8>>sunset<<else>>sky<</if>>. <br><br> <<link [[Kiss Eden|Eden Raft Intro Kiss]]>><<npcincr Eden love 1>><</link>><<glove>> <br> <<link [[Just admire the scenery|Eden Raft Intro Admire]]>><</link>><<set $outside to 1>><<effects>> Slowly, you shuffle closer to Eden. <<He>> looks confused, until you take <<him>> by surprise and capture <<his>> lips in a sweet kiss. For a second, <<he>> turns stiff, shocked at your bold actions, before <<he>> kisses you back with just as much force. When the two of you break apart, <<he>> chuckles, shaking <<his>> head and turning to look at the <<if Time.season is "autumn">>falling autumn leaves<<elseif Time.hour gte 6 and Time.hour lte 8>>sunset<<else>>sky<</if>>. It really is a gorgeous sight, and you think Eden agrees. <br><br> <<link [[Next|Eden Raft Intro 4]]>><</link>><<set $outside to 1>><<effects>> Turning your gaze back to the <<if Time.season is "autumn">>falling autumn leaves<<elseif Time.hour gte 6 and Time.hour lte 8>>sunset<<else>>sky<</if>>, you stare in wonder at its beauty. Stealing a glance at Eden, you think <<he>> agrees. <br><br> <<link [[Next|Eden Raft Intro 4]]>><</link>><<set $outside to 1>><<set $location to "cabin">><<effects>><<set $bus to "edenclearing">><<set $edenraftintro to 2>> After spending some time over the water, you and Eden row back to the shore, deflating the raft and walking back to the cabin. As you help <<him>> hang the raft to dry, you smile to yourself, feeling happy that the both of you were able to share that moment together. <br><br> <i>You can now use the inflatable raft when visiting the lake with Eden.</i> <br><br> <<link [[Next|Eden Clearing]]>><<endevent>><</link>><<set $outside to 1>><<set $location to "lake">><<effects>> The two of you walk to the lake, enjoying the calming scenery and sounds of the forest. <br><br> You look to Eden's hand. It's close enough to touch. <br><br> <<link [[Grab Eden's hand|Eden Forest Lake 2]]>><<set $phase to 1>><<npcincr Eden love 1>><</link>><<glove>><<handholdingvirginitywarning>><<NPCvirginitywarning "Eden" "handholding">> <br> <<link [[Just keep walking|Eden Forest Lake 2]]>><</link>> <br><<set $outside to 1>><<effects>> <<if $phase is 1>> You clasp Eden's hand and hook your fingers through <<his>> own. You catch a quick blush on <<his>> face, before <<he>> brushes it off and pulls you closer. <<takeHandholdingVirginity "Eden" "romantic">> <br><br> <</if>> Soon enough, you both reach the lake. The <<if Weather.dayState is "night">>moonlight<<else>>sunlight<</if>> shimmers over the <<if Weather.isFrozen("lake")>>ice<<else>>water<</if>>. <br><br> <<link [[Walk around the lake|Eden Lake Walk]]>><</link>> <br> <<link [[Just admire the view|Eden View]]>><</link>> <br> <<if $edenraftintro is 2 and Time.season isnot "winter">> <<link [[Use the raft|Eden Lake Raft]]>><</link>> <</if>><<set $outside to 1>><<effects>><<rngWraith 1>> You and Eden inflate the raft and push it onto the water. You spend the time basking in the peaceful scenery of the lake. <<stress -6>><<lstress>> <br><br> <<if _wraithEvent>> You see someone standing out in the middle of the lake. Silver hair blows in the wind behind it,<<if ["haunt", "despair"].includes($wraith.state)>> and a pair of red eyes stare through you<<else>> and an ornate necklace of ivory hangs around its neck<</if>>. Your ears begin to ring as it slowly turns to you. <br><br> You turn to Eden, but <<nnpc_he "Eden">> doesn't react. You look back, and the figure is gone. <<stress 12>><<ggstress>><<trauma 4>><<gtrauma>> <br><br> <</if>> <<link [[Go back to the cabin|Eden Clearing]]>><<endevent>><</link>><<set $outside to 1>><<effects>> You and Eden sit together by the lake. <<He>> holds you close as you admire the view. It's calming, even more so that <<hes>> here with you right now. <<ltrauma>><<lstress>><<trauma -6>><<stress -6>> <br><br> After a while, <<he>> stands and offers <<his>> hand to you. "I think that's enough downtime for today," <<he>> says. <br><br> <<link [[Take Eden's hand|Eden Take Hand]]>><<npcincr Eden love 1>><<npcincr Eden dom 1>><</link>><<glove>><<handholdingvirginitywarning>><<NPCvirginitywarning "Eden" "handholding">> <br> <<link [[Just stand|Eden Stand]]>><<npcincr Eden love -1>><<npcincr Eden dom -1>><</link>><br> <br><<set $outside to 1>><<effects>> You take Eden's hand and <<he>> helps you stand. You walk back to the cabin together.<<takeHandholdingVirginity "Eden" "romantic">> <br><br> <<link [[Go back to the cabin|Eden Clearing]]>><<endevent>><</link>><<set $outside to 1>><<effects>> You ignore Eden's hand and stand up. <<He>> looks a bit hurt, but doesn't press on it. You walk back to the cabin together. <br><br> <<link [[Go back to the cabin|Eden Clearing]]>><<endevent>><</link>><<set $outside to 1>><<effects>> <<if C.npc.Eden.dom gte 75>> You and Eden walk a few times around the lake, until <<he>> pulls you out of sight and pins you up against a tree. "We're all alone now," <<he>> whispers, grinding into you. <<His>> breath is teasingly close to your lips. <<else>> You and Eden walk a few times around the lake, until <<he>> pulls you into the trees and slides <<his>> hand over your waist. "We're all alone now," <<he>> whispers, as <<he>> nips your ear. <</if>> <br><br> <<link [[Kiss Eden|Eden Lake Sex]]>><<set $sexstart to 1>><<npcincr Eden love 1>><<npcincr Eden dom 1>><</link>><<promiscuous1>><<glove>><<gdom>> <br> <<link [[Push Eden away|Eden Lake Push]]>><<npcincr Eden love -1>><<npcincr Eden dom -1>><</link>><<llove>><<ldom>> <br><<if $sexstart is 1>> <<set $sexstart to 0>> <<consensual>> <<set $consensual to 1>> <<neutral 1>> <<maninit>> <<set $enemytrust += 100>><<set $enemyhealth to 600>><<set $enemyhealthmax to 600>> <<promiscuity1>> <<elseif $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<maninit>><<set $enemyhealth to 600>><<set $enemyhealthmax to 600>><<set $enemyanger += 50>> <</if>> <<effects>> <<effectsman>> <<man>> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Eden Lake Sex Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Eden Lake Sex]]>><</link>></span><<nexttext>> <</if>><<set $outside to 0>><<set $location to "lake">><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<ejaculation>><<npcincr Eden lust -20>> "We should come here more often," <<he>> laughs. <<He>> pulls you close and you head back to the cabin together. <<elseif $enemyhealth lte 0>> "You ungrateful slut," <<he>> says. "Maybe I should just drown you in the lake!" <<He>> winces and holds <<his>> side. "I need to get something for this." <br><br> <<He>> yanks your arm and pulls you back to the cabin with <<him>>. <<elseif $finish is 1>> "Afraid someone will catch us?" <<He>> smirks as <<he>> pulls away. <<He>> holds you close and you both head back to the cabin. <</if>> <br><br> <<clotheson>> <<endcombat>> <<link [[Go back to the cabin|Eden Clearing]]>><</link>><<set $outside to 1>><<effects>> You put your hands to <<his>> chest and push <<him>> off you. <<if C.npc.Eden.love - C.npc.Eden.lust gte 1>> Eden sighs in disappointment, but relents. <br><br> After a while, you head back to the cabin together. <br><br> <<link [[Go back to the cabin|Eden Clearing]]>><<endevent>><</link>> <<else>> <<He>> pushes your arm down and pulls you closer. <br><br> <<link [[Next|Eden Lake Sex]]>><<set $molestationstart to 1>><</link>> <br> <</if>><<effects>> You nod, watching as <<he>> enters the cabin. <br><br> <<link [[Next|Eden Clearing]]>><<endevent>><</link>><<set $outside to 0>><<set $location to "cabin">><<effects>> <<if $speech_attitude is "meek">> "Please let me help. You've already been through enough today," you plead. <<elseif $speech_attitude is "bratty">> "I'll take care of your wounds. Just get inside." <<else>> "I could help you take care of your wounds, if you want." <</if>> <br> Eden's face softens at your words. <<He>> spares a quick glance into the forest, then follows you into the cabin. <br><br> <<if $speech_attitude is "meek">> You walk to the dining table and pull out a chair, motioning for <<him>> to take a seat. <<elseif $speech_attitude is "bratty">> Grabbing <<his>> arm carefully, you lead Eden to the dining table and pull out a chair, motioning for <<him>> to take a seat. <<else>> You walk to the dining table and pull out a chair, waiting for <<him>> to take a seat. <</if>> <br> <<He>> settles down with an exhausted groan, clearly worn out from the work <<he>> did, and <<his>> tussle with the wolves. You scurry around the cabin, grabbing a washcloth and a roll of bandages. <br><br> Carefully, you lift Eden's shirt over <<his>> head, peeling off the damp fabric. <<His>> body is caked with dirt and sweat. Using the damp washcloth, you gently wipe down <<his>> skin. Upon closer inspection, <<his>> wounds are thankfully rather shallow. Despite this, your hands shake with nervousness as you work. Setting the washcloth aside, you reach for the bandages sitting on the table. Just as your hand hovers over them, Eden stops you, grabbing your arm. <<His>> grip is firm, but gentle. <br><br> "I can do that myself." <br><br> <<link [[Insist|Eden Wounds Insist]]>><<npcincr Eden love 1>><<npcincr Eden dom 1>><</link>><<glove>><<gdom>> <br> <<link [[Relent|Eden Wounds Relent]]>><</link>><<effects>> <<if $speech_attitude is "meek">> "Oh, alright," you say, hanging your head. "As long as you're going to be okay." <<elseif $speech_attitude is "bratty">> "Fine," you say, pulling your hand back. "But let me know if you need anything." <<else>> "Okay," you say, pulling your hand back. <</if>> <br><br> Eden gives you a gentle smile, and makes quick work of wrapping up <<his>> wounds. <br><br> <<link [[Next|Eden Cabin]]>><<endevent>><</link>><<effects>> <<if $speech_attitude is "meek">> "Please, let me take care of you," you plead, looking into <<his>> eyes. <<elseif $speech_attitude is "bratty">> "No." You pull your wrist out of <<his>> grasp. "You're hurt, and clearly exhausted. I'm going to take care of you." <<else>> "Please, let me help." <</if>> <br><br> Eden seems amused by your stubbornness, letting out a breathy chuckle. "If you insist." <<He>> leans back and lets you continue. <br><br> <<if $salve gte 1>> <<link [[Use salve|Eden Wounds Salve]]>><<npcincr Eden love 1>><<npcincr Eden dom 1>><</link>><<glove>><<gdom>> <br> <</if>> <<link [[Finish up|Eden Wounds Finish]]>><</link>><<effects>> <<if currentSkillValue('tending') gte 150>> You skilfully wrap up <<his>> wounds. Eden looks impressed by your handiwork. <<else>> You carefully wrap up <<his>> wounds, but the bandages end up loose in some places and too tight in others. Eden seems to appreciate your efforts regardless. <</if>> <br><br> <<link [[Next|Eden Cabin]]>><<endevent>><</link>><<effects>> <<set $salve -= 1>> In the process of wrapping <<his>> wounds, your mind drifts back to the salves you made. You quickly undo the bandages, and Eden shoots you a confused look. <br><br> <<if $speech_attitude is "meek">> "I-I just remembered. I made salves." <<elseif $speech_attitude is "bratty">> "Hang on, I just remembered the salve I made." <<else>> "I just remembered that I made some salves." <</if>> <br><br> Rushing to a nearby cabinet, you grab one of the jars and return to Eden. Gathering some on your fingers, you carefully apply the salve to <<his>> deeper wounds. Eden releases a small hiss at the pain, but otherwise doesn't stop you. Taking the hint, you continue, making sure to apply the salve as gently as possible. Over time, Eden starts to relax at your soft touch. In fact, by the time you're done, <<hes>> almost dozing off. <br><br> <<link [[Kiss Eden's wounds|Eden Wounds Kiss]]>><<npcincr Eden love 1>><<npcincr Eden dom 1>><</link>><<glove>><<gdom>> <br> <<link [[Don't kiss|Eden Wounds No Kiss]]>><</link>><<effects>> With Eden barely conscious, you lean over and press a quick kiss to the bandages on <<his>> chest. Eden opens <<his>> eyes to look at you. <br><br> "Was that necessary?" <<he>> asks. <br> "Yes." You smile. <br> Seeing your happy expression, <<he>> returns a faint smile to you. <<He>> leans back in <<his>> chair and shuts <<his>> eyes again. <<He>> must be exhausted. <br><br> <<link [[Next|Eden Wounds No Kiss]]>><</link>><<effects>><<wearProp "solo cup">> Grabbing a cup of water from the kitchen, you walk over to Eden and gently shake <<him>> awake. <<He>> jerks slightly in surprise, but relaxes once <<he>> sees you. You hand <<him>> the cup, watching as <<he>> takes a drink. <br><br> <<if $speech_attitude is "meek">> "I-I think you should rest more today," you say, watching as <<he>> sets the cup on the table. <<elseif $speech_attitude is "bratty">> "You should take it easy today," you say, watching as <<he>> sets the cup on the table. <<else>> "I don't think you should push yourself today," you say, watching as <<he>> sets the cup on the table. <</if>> <br> "No promises," <<he>> replies, standing up. As <<he>> walks past you, <<he>> pulls you close and lays a quick kiss on your forehead. "Thanks," <<he>> says, walking off and leaving you by the dining table. <br><br> <<link [[Next|Eden Cabin]]>><<endevent>><</link>><<effects>> Eden takes notice. "Storm making you jumpy?" <<he>> asks with a belittling grin. <br><br> <<if $speech_attitude is "meek">> "Um, well, maybe a bit actually." You twist your hands together. "There's nothing to worry about out here, r-right?" <<elseif $speech_attitude is "bratty">> "Of course not, I was just startled, that's all," you scoff. "Wait, has nothing ever scared you out here?" <<else>> "The forest is scary enough without a storm blowing through," you reply. "Doesn't anything ever bother you out here, Eden?" <</if>> <br><br> <<He>> grunts in acknowledgement, though <<he>> still takes <<his>> time to answer. "Well, I'm not afraid of much," Eden says. "Especially not storms." <<He>> pauses to regard your disappointed pout before wiping <<his>> hands on a clean rag. "But since you're curious," <<he>> says again. "There is something that comes to mind." <br><br> <<link [[Ask to hear the story|Eden Story Begins]]>><<pass 10>><</link>> <br> <<link [[Decline|Eden Story Decline]]>><</link>><<effects>> Your eyes light up with piqued interest. "Alright, let's hear it." <br><br> Eden offers you a smile, then begins. "I tried a new trail one day to look for firewood. Eventually I came into a clearing that overlooked the lake. Once I started working, I got hit by a real odd feeling that just lingered." <br><br> <<if $speech_attitude is "meek">> A shiver rolls down your spine. "A f-feeling? Wh-what kind of feeling?" <<elseif $speech_attitude is "bratty">> "A feeling?" You roll your eyes. "You got spooked by some random thing you couldn't even see?" <<else>> "What sort of feeling?" you ask, inching closer. <</if>> <br><br> "It wasn't just any feeling." <<His>> voice is low. "It was foreboding, like... like I had entered the home of something filled with hate. Hate for me, and others like me." <br> "<<if C.npc["Black Wolf"].init is 1>>Like the Black Wolf<<else>>Could it be another <<nnpc_title "Eden">><</if>>?" you ask. <br> "No. Something much, much more dangerous." <br><br> You sink into your chair. <br><br> "Just as I was about to shrug it off, out the corner of my eye, I caught a shadow scurrying across the clearing." <br><br> You stare at Eden with wide eyes.<<stress 10>><<gstress>> <br><br> "I never could focus on it long enough to take a good look, but it was tall, person-sized. At least it was, before it dropped to all fours and started crawling." <br><br> <<if $speech_attitude is "meek">> You cover your ears with your hands. "No more! You're gonna give me bad dreams!" <<else>> "What happened next?" You try to hide your fear. "What did you do?" <</if>> <br><br> Thunder rips through the cabin, causing you to wince. <br><br> <<link [[Next|Eden Story Continues]]>><</link>><<effects>> Eden smirks at your obvious discomfort. "I left immediately. It wasn't very long before I realised it was following me. That thing breathed down my neck the entire time. Sometimes I heard a voice that almost sounded familiar in the distance. Other times, it whispered in my ear." <br><br> "It wanted a reaction. Every fibre of my being told me to ignore it, don't look at it, so I didn't. That continued until I got far enough from the clearing, maybe a few kilometres. All at once, the odd feeling stopped, and that thing was gone." <br> "Have you been back since?" you ask. <br> "Nope," Eden says, settling back into <<his>> work. "Don't reckon I will be, either." <br><br> You listen to the storm outside, mind racing. "Did that really happen, or did you just make it up to scare me?" <br><br> Eden walks over to the fireplace to hang <<his>> gun above the mantel. In two long strides <<he>> stands before you. You step back, but <<he>> catches you around your waist. <<if $worn.neck.collared is 1>> Your cheeks burn as Eden roughly grabs your collar between <<his>> fingers. <<else>> Your cheeks burn as Eden roughly captures your chin between two fingers. <</if>> <br><br> <<He>> slowly rubs your bottom lip with <<his>> calloused thumb. The cabin is dark save for the embers in the fire and the occasional flashes of distant lightning. You can't see <<his>> eyes, even this close, but you can still feel the weight of <<his>> gaze. "Best to stay close to me while we're out there together, little <<girl>>. Remember that there are worse things than me in this world." <br><br> <<link [[Next|Eden Cabin]]>><<endevent>><</link>><<effects>> You continue watching the storm through the window. "Maybe some other time." <br><br> "Suit yourself." Eden returns to <<his>> work without another word. <br><br> <<link [[Next|Eden Cabin]]>><<endevent>><</link>><<set $outside to 0>><<set $location to "cabin">><<effects>><<wearProp "halloween">> Orange autumn leaves decorate the trees of the forest, covering the ground and crunching under your feet as you approach Eden, the hamper of sweets in your hands. <<He>> momentarily looks up from <<his>> work to regard you, but stops when <<he>> notices what you're holding. <br><br> <<if $speech_attitude is "meek">> "H-Happy Halloween," you say, holding the hamper out to <<him>>. <<elseif $speech_attitude is "bratty">> "Happy Halloween," you say, pushing the hamper into <<his>> hands. <<else>> "Happy Halloween," you say, passing the hamper to <<him>>. <</if>> <br><br> "Sweets?" <<he>> asks, looking your gift over. "This is unexpected." <br> <<if $speech_attitude is "meek">> "Well, s-since you don't trick-or-treat, I thought I could bring the sweets to you," you say. <<elseif $speech_attitude is "bratty">> "Even if you don't go trick-or-treating, there's no reason not to have sweets," you say. <<else>> "I just thought you'd appreciate it since you don't go trick or treating," you say. <</if>> <br><br> Eden glances at the hamper again, an unsure but grateful look in <<his>> eyes. "Thanks," <<he>> says. "It's nice, not that I eat a lot of sweets anyway." As <<he>> walks to the kitchen to store the hamper away, you notice a knife and a few pumpkins on the dining table, their stark orange hue reminding you of the seasonal foliage. <br><br> Eden notices your gaze and stops, placing the hamper down. "I was planning on making pumpkin pie," <<he>> says, eyeing the spread on the table. <br><br> <<link [[Ask to carve pumpkins|Eden Carve]]>><</link>> <br> <<link [[Nod|Eden Nod]]>><</link>><<effects>> You nod your head in response. Eden opens a nearby cabinet to store the sweets away, but suddenly changes <<his>> mind and looks to you. <br><br> "Why don't you share these with me," <<he>> asks. <br><br> <<link [[Accept|Eden Sweets]]>><</link>> <br> <<link [[Refuse|Eden Sweets Refuse]]>><</link>><<effects>> You shake your head. <<if $speech_attitude is "meek">> "I-I bought these sweets for you." <<elseif $speech_attitude is "bratty">> "I got these sweets for you. It's yours." <<else>> "I bought the sweets for you." <</if>> <br><br> Eden shrugs and stores the hamper in the cabinet. <<He>> goes over to you and kisses your forehead. <br> "Thanks again," <<he>> says, before walking away. <br><br> <<link [[Next|Eden Cabin]]>><<endevent>><</link>><<effects>> "Can we carve pumpkins?" you ask. <br><br> "What?" <<he>> questions, pulling an incredulous expression. "I was saving these for pie, not carving." <br> <<if $speech_attitude is "meek">> "Please?" you say. <<elseif $speech_attitude is "bratty">> "Oh, come on, it's Halloween!" you say. <<else>> "But it's Halloween," you say. <</if>> <br><br> Eden sighs and looks away, considering for a moment, before looking back to you. "Fine," <<he>> says. "But we're only using two of them." <br><br> You smile at <<him>> in thanks and walk over. <br><br> <<link [[Next|Eden Carve 2]]>><<pass 20>><</link>><<effects>> Grabbing a knife, you and Eden sit at opposite ends of the dining table. You decide to carve <br><br> <<link [[Something scary|Eden Carve 3]]>><<set $phase to 0>><</link>> <br> <<link [[Something cute|Eden Carve 3]]>><<set $phase to 1>><</link>> <br> <<link [[Eden|Eden Carve 3]]>><<set $phase to 2>><</link>><<effects>> Using your knife, you whittle away at the surface of the pumpkin. <<if currentSkillValue('tending') gte 150>> <<if $phase is 0>> It takes a while, but the finishing result looks rather scary. <<elseif $phase is 1>> It takes a while, but the finishing result looks rather cute. <<elseif $phase is 2>> It takes a while, but the finishing result looks relatively similar to Eden. <</if>> <<else>> <<if $phase is 0>> You try your best, but the carving doesn't look very scary. <<elseif $phase is 1>> You try your best, but the carving doesn't look very cute. <<elseif $phase is 2>> You try your best, but the carving doesn't look very similar to Eden. <</if>> <</if>> <br><br> Stepping back from your work, you walk over to Eden to look at <<his>> creation. It seems <<hes>> carved the image of a deer into the pumpkin. It looks quite skilfully done, no doubt from how experienced <<he>> is with <<his>> hands. <br><br> <<if $speech_attitude is "meek">> "Y-your pumpkin looks cute," you say. <<elseif $speech_attitude is "bratty">> "That's a cute pumpkin," you say. <<else>> "That pumpkin looks cute," you say. <</if>> <br><br> Eden turns <<his>> head to face you. "If pumpkins are cute, maybe I should start calling you pumpkin too," <<he>> laughs, playfully smacking your ass. <br><br> <<link [[Next|Eden Carve 4]]>><</link>><<effects>> After a while, Eden drops <<his>> knife and walks over to you, evaluating your carving. <br><br> <<if currentSkillValue('tending') gte 150>> <<if $phase is 0>> "Wow, that's scary," <<he>> says. <<He>> looks impressed. <<elseif $phase is 1>> "Wow, that's cute," <<he>> says. <<He>> looks impressed. <<elseif $phase is 2>> <<He>> drinks in your work with a look of slight surprise on <<his>> face, almost unbelieving of what <<he>> sees. "Is that me?" <<he>> asks, turning <<his>> head to you. <br> <<if $speech_attitude is "meek">> You nod your head. <<elseif $speech_attitude is "bratty">> "Yeah," you say. <<else>> "Yes," you say. <</if>> <br><br> "That's good," <<he>> says, nodding slightly. <</if>> <<else>> <<He>> stares at it for a bit, trying to discern what it's supposed to be. <br> <<if $phase is 0>> "It's supposed to be scary," you say. <<elseif $phase is 1>> "It's supposed to be cute," you say. <<elseif $phase is 2>> "It's supposed to be you," you say. <</if>> <br><br> Eden shoots you a smirk. "It's a good effort," <<he>> says, patting you on the head. <</if>> <br><br> <<link [[Next|Eden Carve 5]]>><</link>><<effects>> After a short deliberation, the both of you decide to decorate the cabin with your work. Eden opens the wooden door and you feel the cool autumn air hit your face. <br><br> <<He>> places the pumpkins near the entrance. They add a slight festive touch, contrasting the austere nature of the cabin. <br><br> When you're done admiring your work, you and Eden walk back inside. Looking to the table again, your eyes are drawn to the hamper of sweets. <br><br> <<if $speech_attitude is "meek">> "Y-you haven't eaten the sweets yet," you say. <<elseif $speech_attitude is "bratty">> "Hey, you still haven't tried the sweets yet," you say. <<else>> "You haven't tried the sweets yet," you say. <</if>> <br><br> Eden looks to the table, seemingly contemplating something. "Why don't you share them with me?" <<he>> asks. <br><br> <<link [[Accept|Eden Sweets]]>><</link>> <br> <<link [[Refuse|Eden Sweets Refuse]]>><</link>><<effects>> You accept Eden's offer and walk to the table. Grabbing one of the knives, <<he>> cuts open the hamper's protective plastic and reaches for a small box tucked within its centre. <br><br> Upon opening, you both find that it's filled with creamy chocolate. Its delectable scent wafts up your nose and your mouth waters in response. <br><br> Taking a piece, Eden brings it to <<his>> mouth. <br><br> <<link [[Snatch it from Eden|Eden Sweets 2]]>><<set $phase2 to 1>><</link>> <br> <<link [[Let Eden eat it|Eden Sweets 2]]>><</link>><<effects>> <<if $phase2 is 1>> Just before the chocolate enters <<his>> mouth, you snatch it from Eden and gobble it up. <br><br> "Hey!" Eden exclaims, turning to you. <br> <<if $speech_attitude is "meek">> "Y-you told me we were sharing," you tease. <<elseif $speech_attitude is "bratty">> "What? You did tell me we were sharing," you tease. <<else>> "You told me we were sharing," you tease. <</if>> <br><br> Eden opens <<his>> mouth to retort, but stops. <<His>> eyes glint and a mischievous smirk spreads across <<his>> face. "Okay. We're sharing," <<he>> says, slowly and tantalisingly swiping <<his>> finger over one of the chocolates. <br><br> <<He>> brings <<his>> chocolate-coated finger up to your mouth, looking at you with heated eyes. <br><br> "Come on," <<he>> says. "I know you want to." <<else>> You watch Eden eat the piece of chocolate. <<He>> seems to enjoy its sweetness. <br><br> "Haven't eaten chocolate in a while," <<he>> says. Turning to you, <<he>> offers you the box. "Want one?" <br><br> You're about to reply, before Eden perks up. <<His>> eyes glint and a mischievous smirk spreads across <<his>> face. "I think I can make this more interesting," <<he>> says, slowly and tantalisingly swiping <<his>> finger over one of the chocolates. <br><br> <<He>> brings <<his>> chocolate-coated finger up to your mouth, looking at you with heated eyes. <br><br> "Come on," <<he>> says. "I know you want to." <</if>> <br><br> <<link [[Lick Eden's finger|Eden Sweets Lick]]>><</link>> <br> <<link [[Refuse|Eden Sweets Lick Refuse]]>><</link>><<effects>> You turn your face away. Eden chuckles at you, before licking the chocolate off <<his>> finger and kissing you on the forehead. <br><br> "Thanks for the sweets," <<he>> says. Grabbing the hamper, <<he>> stores it in a nearby cabinet and walks away. <br><br> <<link [[Next|Eden Cabin]]>><<endevent>><</link>><<effects>> You slowly encase your mouth around <<his>> finger. Using your tongue, you lick and suck the chocolate off. Eden stares at you hungrily, holding your gaze the entire time. <br><br> "Good <<girl>>," <<he>> says, sliding <<his>> finger down your tongue and popping it out of your mouth. <<He>> reaches into the box. <br><br> "Since you did so well with that," <<he>> says, picking up a piece and placing it between <<his>> teeth. <<He>> pulls you closer. <br><br> <<link [[Kiss Eden|Eden Sweets Sex]]>><<set $sexstart to 1>><</link>> <br> <<link [[Pull away|Eden Sweets Pull Away]]>><</link>><<effects>> You pull away from Eden's hold. <<He>> chuckles at you, before finishing the chocolate <<himself>> and kissing you on the forehead. <br><br> "Thanks for the sweets," <<he>> says. Grabbing the hamper, <<he>> stores it in a nearby cabinet and walks away. <br><br> <<link [[Next|Eden Cabin]]>><<endevent>><</link>><<if $sexstart is 1>> <<set $sexstart to 0>> <<consensual>> <<set $consensual to 1>> <<neutral 1>> <<maninit>> <<set $enemytrust += 100>> <<set $enemyhealth to 600>> <<set $enemyhealthmax to 600>> <<takeKissVirginity "Eden" "romantic">> You kiss Eden back. The taste of chocolate permeates your mouth as <<his>> tongue meets yours. <<He>> separates from you, breathing heavily while lowering you onto the cabin floor. <</if>> <<effects>> <<effectsman>> <<man>> <<stateman>> <br><br> <<actionsman>> <span id="next"> <<if _combatend>> <<link [[Next|Eden Sweets Sex Finish]]>><</link>> <<else>> <<link [[Next|Eden Sweets Sex]]>><</link>> <</if>> </span><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<ejaculation>> <<npcincr Eden lust -20>><<npcincr Eden love 1>> "You're so much sweeter than chocolate," Eden whispers, holding you close to <<his>> chest and stroking your hair.<<glove>><<llust>> <<elseif $enemyhealth lte 0>> "You could've just said no," Eden says, pulling away from you. <<llove>><<npcincr Eden love -1>> <<elseif $finish is 1 or $phase is 1>> Eden pulls away. A look of frustration adorns <<his>> face, but <<he>> doesn't push you. <</if>> <br><br> <<clotheson>> <<endcombat>> <<npc Eden>><<person1>> <<link [[Next|Eden Sweets 6]]>><</link>><<effects>> The cabin is silent, save for the sound of Eden shuffling off the floor. <<He>> extends <<his>> hand towards you and helps pull you up. Sitting you on a nearby chair, <<he>> gently lifts your chin and plants a soft kiss on your lips. <br><br> "Thanks for the sweets," <<he>> says. <<He>> grabs the hamper off the table. "And for celebrating Halloween with me." <br><br> <<He>> stores the sweets in a nearby cabinet and walks away, leaving you with the lingering feeling of <<his>> touch and the faint taste of chocolate on your tongue. <br><br> <<link [[Next|Eden Cabin]]>><<endevent>><</link>><<set $outside to 1>><<set $location to "cabin">><<effects>> <<if $phase is 0 and $exposed gte 1 and !$daily.eden.exposed>> <<His>> gaze lingers on your <<lewdness>>. "I don't want you alone like that." <br><br> <<link [[Go inside|Eden Cabin]]>><<endevent>><</link>> <br> <<link [[Stay outside|Eden Clearing]]>><<endevent>><<set $daily.eden.exposed to 1>><</link>> <<elseif $phase is 0>> <<He>> disappears between the trees. <br><br> <<link [[Next|Eden Clearing]]>><<endevent>><</link>> <br> <<else>> "Don't be ridiculous," <<he>> says. "Predators have learned to stay away from the cabin. You'll be safe here." <br><br> <<if $speech_attitude is "meek">> "I only feel safe with you," you say. <<elseif $speech_attitude is "bratty">> "Maybe if you left your gun here I would be," you say. <<else>> "Are you sure I'll be safe here alone?" you say. <</if>> <br><br> <<if C.npc.Eden.love gte 50>> "Fine," <<he>> says. "But be quiet and stay close to me. Bring a basket too, you can keep an eye out for berries." <br><br> <<if $exposed gte 1>> As you walk up join <<him>>, Eden sweeps <<his>> eyes over your body, drinking in your exposed form. "You should put on some clothes next time," <<he>> says, tugging you closer. <br><br> <</if>> <<link [[Next|Eden Hunt]]>><</link>> <<else>> "I can't hunt and keep watch over you at the same time," <<he>> says. "That's final." <br><br> <i>If <<he>> liked you more <<he>> might be more amenable to your request.</i> <br><br> <<link [[Next|Eden Hunting]]>><<set $phase to 0>><</link>> <br> <</if>> <</if>><<location "forest">><<effects>><<wearProp "basket" 0 "empty">> You walk into the forest, keeping close behind Eden. <<if $worn.neck.name is "familiar collar" and $worn.neck.cursed is 1>> <<He>> looks at your neck, then away. "Just stay close." <<elseif $worn.neck.collared is 1 and $worn.neck.type.includes("leash")>> <<He>> grips your leash, pulling you along. <<if $speech_attitude is "meek">> "You're hurting my neck," you whisper. "I promise to be good." <<elseif $speech_attitude is "bratty">> "I won't find any berries if you drag me like this," you whisper. <<else>> "You can drop my leash. I promise I'll stay close," you whisper. <</if>> <<He>> looks at you, considers for a moment, then drops the leash. <</if>> <br><br> <<He>> seems to know where <<hes>> going, but you soon lose your sense of direction. <<pass 1 hour>> <<He>> stops to check small traps. Most are empty but one contains a dead rabbit, which <<he>> ties to <<his>> belt. <br><br> <<pass 1 hour>>More time passes, until <<he>> comes to an abrupt stop. "I've got you now," <<he>> whispers, <<his>> pace lowering to a creep. <<He>> glances at you. "Wait here. Don't move an inch." <<He>> disappears between the trees. You look around, but don't see any sign of whatever has <<him>> excited. You do, however, see a bush full of ripe berries. Eden hasn't noticed them. <br><br> <<icon "tending/blackberry.png">><<link [[Get the berries|Eden Hunt 2]]>><<set $phase to 0>><<endevent>><</link>> <br> <<refuseicon>><<link [[Stay close to Eden|Eden Hunt 2]]>><<set $phase to 1>><</link>> <br><<location "forest">><<effects>> <<if $phase is 0>> <<wearProp "basket" 0 "berries">> You sneak over to the bush, careful not to disturb a single twig. Once there you pick the fruit and fill the basket. Satisfied, you start sneaking back to Eden. <br><br> <<if dangerEvent()>> <<set $daily.eden.huntCaught to 1>> <<if $rng gte 81 and $settings.bestialityEnabled and $settings.voreEnabled>> You round a tree and come face to face with a pair of eyes, hovering just inches from your face. All strength drains from your muscles, and you collapse to the ground. The snake slithers onto the forest floor. <<set $trance to 1>> <br><br> <<link [[Next|Eden Hunt Snake]]>><<set $molestationstart to 1>><</link>> <br> <!-- Modified for monster people --> <<elseif $rng gte 41>> <<beastNEWinit 1 wolf>> <<if $monster is 1 or $settings.bestialityEnabled>> A <<beasttype>> emerges from between the trees, teeth bared. <<if $monster is 1>> <<bHis>> gaze meets yours. "Hush hush, prey. <<nnpc_Title "Eden">> won't save you." <</if>> Eden would hear your screams from here, but won't be happy with you. <br><br> <<link [[Next|Eden Hunt Wolf]]>><<set $molestationstart to 1>><</link>> <br> <<else>> <<endevent>> <<generate1>><<generate2>>Something presses against your back. "What have we here?" the <<person1>><<person>> says. <<Hes>> holding a gun to your back. <br><br> A <<person2>><<person>> puts a hand on your shoulder, "Turn around, <<girl>>. Now, what's a little thing like you doing all alone in the forest?" <br><br> <<person1>>"It's dangerous out here," the <<person>> interjects. "But it's okay, we can keep you safe." <<He>> grabs your <<bottom>> and pulls you closer. <br><br> Eden would hear your screams from here, but won't be happy with you. <br><br> <<link [[Next|Eden Hunt Molestation]]>><<set $molestationstart to 1>><</link>> <br> <</if>> <<else>> <<generate1>><<generate2>>Something presses against your back. "What have we here?" the <<person1>><<person>> says. <<Hes>> holding a gun to your back. <br><br> A <<person2>><<person>> puts a hand on your shoulder, "Turn around, <<girl>>. Now, what's a little thing like you doing all alone in the forest?" <br><br> <<person1>>"It's dangerous out here," the <<person>> interjects. "But it's okay, we can keep you safe." <<He>> grabs your <<bottom>> and pulls you closer. <br><br> Eden would hear your screams from here, but won't be happy with you. <br><br> <<link [[Next|Eden Hunt Molestation]]>><<set $molestationstart to 1>><</link>> <br> <</if>> <<else>> <<npc Eden>><<person1>> <<link [[Next|Eden Hunt 3]]>><<set $phase to 0>><</link>> <br> <</if>> <<elseif $phase is 1>> You were told to stay still, so that's what you do. You wait a couple of minutes before a gunshot sounds through forest. <br><br> <<link [[Next|Eden Hunt 3]]>><<set $phase to 2>><</link>> <br> <</if>><<location "forest">><<effects>> <<if $molestationstart is 1>> <<set $molestationstart to 0>> <<set $combat to 1>> <<molested>> <<controlloss>> <<set $enemytype to "vore">> <<set $vorestage to 1>> <<set $vorecreature to "snake">> <<set $vorestrength to 1>><<set $position to "doggy">> <<set $timer to 15>> <<resetLastOptions>> <<getCombatDefaultsType>> <</if>> <<if $timer is 12>> <<set $trance to 0>> You break free from the trance, and realise the snake is trying to eat you! <</if>> <<voreeffects>> <<vore>> <<voreactions>> <<if $timer lte 0 or $vorestomach gte 5>> <span id="next"><<link [[Next|Eden Hunt Snake Finish]]>><</link>></span><<nexttext>> <<elseif $vorestage lte 0>> <span id="next"><<link [[Next|Eden Hunt Snake Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Eden Hunt Snake]]>><</link>></span><<nexttext>> <</if>><<effects>> <<set $trance to 0>> <<if $timer lte 0 or $vorestomach gte 5>> <<if $vorestage gte 5>> The walls of the snake's innards tear open. Eden stands there, knife in hand, carving open the beast until you're freed. <<else>> The snake hisses and spits you out. It flees into the undergrowth, trailing blood. <</if>> <br><br> <<clotheson>> <<endcombat>> <<npc Eden>><<person1>>Eden plants <<his>> knife into the ground and grasps your arm. <<if C.npc.Eden.love gte 80>> <<He>> pins you up against a tree. "Fucking snake touching what's mine." <<else>> <<He>> bends you over <<his>> knee. "I was so close to catching that deer," <<he>> says. "And you fucking ruined it."<<llove>><<npcincr Eden love -1>> <</if>> <br><br> <<link [[Next|Eden Hunt Punishment]]>><<set $molestationstart to 1>><</link>> <<else>> <<tearful>> you haul yourself out of the $vorecreature's maw. Deciding you aren't an appropriate meal, it disappears into the undergrowth. <br><br> <<clotheson>> <<endcombat>> <<npc Eden>><<person1>> <<link [[Next|Eden Hunt 3]]>><<set $phase to 0>><</link>> <br> <</if>><<if $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<maninit>><<npcspank>><<set $enemyhealth to 600>><<set $enemyhealthmax to 600>><<set $enemyanger += 200>> <</if>> <<effects>> <<effectsman>> <<man>> <<stateman>> <br><br> <<actionsman>> <<if _combatend or $enemyanger lte 0>> <span id="next"><<link [[Next|Eden Hunt Punishment Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Eden Hunt Punishment]]>><</link>></span><<nexttext>> <</if>><<location "forest">><<effects>> <<if $phase is 0>> <<wearProp "basket" 0 "berries">> <<if $rng gte 91>> You find Eden slinging a deer over <<his>> shoulder. <<He>> sees the basket full of fruit in your hands and smiles. "We've done very well today," <<he>> says. "Maybe you're good luck."<<gglove>> <<else>> You find Eden crouched and frowning. "I let it get away," <<he>> says. <<He>> sees the basket of fruit in your hands and smiles. "At least we have something."<<gglove>> <</if>> <<npcincr Eden love 5>> <<elseif $phase is 1>> <<wearProp "basket" 0 "berries">> You pick up the basket of fruit. "At least we got something," Eden says. <<elseif $phase is 2>> <<wearProp "basket" 0 "empty">> <<if $rng gte 91>> Eden appears between the trees, deer slung over <<his>> shoulder. "Knew I'd get it. Maybe you're a good luck charm." <br><br> <<if $speech_attitude is "meek">> "I found some berries, but I lost sight of them," you say. "I'm sorry." <<elseif $speech_attitude is "bratty">> "There's a bush full of berries around here somewhere," you say. <<else>> "I saw a bush full of berries," you say. "But I can't see it now." <</if>> <br><br> <<He>> shrugs. "I'm no good at hunting fruit. Besides, we're good for today." <<else>> <<wearProp "basket" 0 "empty">> Eden appears between the trees, frowning. "I let it get away," <<he>> says. <br><br> <<if $speech_attitude is "meek">> "I found some berries, but I lost sight of them," you say. "I'm sorry." <<elseif $speech_attitude is "bratty">> "There's a bush full of berries around here somewhere," you say. <<else>> "I saw a bush full of berries," you say. "But I can't see it now." <</if>> <br><br> <<He>> shrugs. "I'm no good at hunting fruit. We have something at least." <<He>> pats the rabbit on <<his>> belt. <</if>> <</if>> <br><br> <<pass 2 hours>>You follow Eden through the forest, back to the safety of <<his>> cabin. <br><br> <<if $rng gte 51>> <<link [[Next|Eden Hex Signs]]>><</link>> <<else>> <<link [[Next|Eden Clearing]]>><<endevent>><</link>> <</if>> <br><<location "forest">><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<ejaculation>><<npcincr Eden lust -20>> <<He>> pants from the exertion. "I hope you've learnt your lesson." <br><br> <<tearful>> you avoid <<his>> gaze. <<elseif $enemyhealth lte 0>> "You ungrateful slut," <<he>> says. "Maybe I should throw you out and leave you to the wolves!" <<He>> winces and holds <<his>> side. "I need to get something for this." <br><br> <<tearful>> you gather yourself. <<else>> <<He>> looks mollified, and releases you. "I hope you've learnt your lesson." <br><br> <<tearful>> you avoid <<his>> gaze. <</if>> <br><br> <<clotheson>> <<endcombat>> <<npc Eden>><<person1>> <<link [[Next|Eden Hunt 3]]>><<set $phase to 1>><</link>><<if $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<beastCombatInit>> <<set $enemytrust -= 40>> <<enable_rescue>> <</if>> <<effects>> <<effectsman>> <<alarmstate>> <<beast $enemyno>> <br><br> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Eden Hunt Wolf Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Eden Hunt Wolf]]>><</link>></span><<nexttext>> <</if>><<location "forest">><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<beastejaculation>> The <<beasttype>> grunts in satisfaction, and leaves you lying between the trees. <br><br> <<tearful>> you continue back to Eden. <br><br> <<clotheson>> <<endcombat>> <<npc Eden>><<person1>> <<link [[Next|Eden Hunt 3]]>><<set $phase to 0>><</link>> <<elseif $enemyhealth lte 0>> The <<beasttype>> yelps and flees into the forest. <br><br> <<tearful>> you continue back to Eden. <br><br> <<clotheson>> <<endcombat>> <<npc Eden>><<person1>> <<link [[Next|Eden Hunt 3]]>><<set $phase to 0>><</link>> <<else>> A gun fires nearby, startling the <<beasttype>> into fleeing. Eden marches towards you. <<clotheson>> <<endcombat>> <<npc Eden>><<person1>> <<if C.npc.Eden.love gte 80>> <<He>> grabs your arms and pins you up against a tree. "Fucking animal laying its paws on what's mine." <<else>> <<He>> grasps your arm and bends you over <<his>> knee. "Stupid <<bitch>>, I was so close to catching that deer." <</if>> <br><br> <<link [[Next|Eden Hunt Punishment]]>><<set $molestationstart to 1>><</link>> <</if>><<if $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<maninit>> <<enable_rescue>> <</if>> <<effects>> <<effectsman>> <<alarmstate>> <<man>> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Eden Hunt Molestation Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Eden Hunt Molestation]]>><</link>></span><<nexttext>> <</if>><<location "forest">><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<ejaculation>> Finished with you, they shove you to the ground. "See ya around, slut." <br><br> <<tearful>> you struggle to your feet and continue back to Eden. <br><br> <<clotheson>> <<endcombat>> <<npc Eden>><<person1>> <<link [[Next|Eden Hunt 3]]>><<set $phase to 0>><</link>> <br> <<elseif $enemyhealth lte 0>> "This <<bitch>> is crazy," says the <<person1>><<person>>, clutching <<his>> arm. "I think I need to get this looked at." <br><br> The other nods in agreement, "<<pShe>> ain't worth it." They stagger into the forest. <br><br> <<tearful>> you continue back to Eden. <br><br> <<clotheson>> <<endcombat>> <<npc Eden>><<person1>> <<link [[Next|Eden Hunt 3]]>><<set $phase to 0>><</link>> <br> <<else>> A gunshot sounds and a bullet smashes into a nearby tree, startling the pair and making them dash for their own guns. They stare into the trees. "Who's there?" shouts the <<person1>><<person>>. <<Hes>> responded to by another gunshot, the bullet landing closer this time. Their eyes dart around, but they can't see the shooter. Another gunshot, this time the bullet thuds into the ground at the <<person2>><<persons>> feet. "Shit! Fuck," <<he>> says, backing away, eyes wild. "Let's get the fuck away from here. This <<girl>> ain't worth it." <br><br> They disappear between the trees as Eden emerges, marching towards you. <br><br> <<clotheson>> <<endcombat>> <<npc Eden>><<person1>> <<if C.npc.Eden.love gte 80>> <<He>> grabs your arms and pins you up against a tree. "Fucking idiots laying their hands on what's mine." <<else>> <<He>> grasps your arm and bends you over <<his>> knee. "Stupid <<bitch>>, I was so close to catching that deer." <</if>> <br><br> <<link [[Next|Eden Hunt Punishment]]>><<set $molestationstart to 1>><</link>> <br> <</if>><<set $outside to 1>><<set $location to "cabin">><<effects>> <<if $edenPrey is undefined>> You agree to Eden's proposal, despite the lack of details. <br><br> <</if>> "Good," <<he>> says before <<if $phase is 0>>pushing you out the door<<else>>guiding you along<</if>>. <<if $edenPrey gte 1>> <<He>> leads you to the edge of the clearing. <br><br> "You know the drill," <<else>> You glance back and see Eden reaching for <<his>> gun. Dread fills your body, causing you to resist <<his>> shoving. <br> "Relax," Eden reassures you. "I'm not gonna hurt you." You warily allow <<him>> to lead you to the edge of the clearing. <br><br> "You're prey," <</if>> <<he>> begins. "When I fire my gun, I want you to run like your life depends on it. If you're caught..." <<He>> pauses, chuckling. "I'll have my fun with you." You glance back at <<him>>. <<Hes>> hiding something behind <<his>> back. <br> "Turn around," <<he>> orders. <br><br> You turn around, as instructed. A loud crack erupts behind you, shattering the tranquillity of the forest and signalling you to start running. <br><br> <<if !$edenPrey>><<set $edenPrey to 1>><</if>> <<link [[Run!|Eden Prey Chase]]>><<set $phase to 0>><</link>><<athleticsdifficulty 200 1200>> <br> <<link [[Get caught on purpose|Eden Prey Chase]]>><<set $phase to 1>><<control 25>><<npcincr Eden lust 1>><<npcincr Eden dom 5>><</link>><<ggcontrol>><<glust>><<ggdom>> <br><<set $outside to 1>><<set $location to "cabin">><<effects>> <<if $speech_attitude is "meek">> "I-I don't know..." you mutter, looking away from Eden. "Maybe another time...?" <<elseif $speech_attitude is "bratty">> "No way," you tell <<him>>, crossing your arms. "I'm not a sex toy." <<else>> "I don't want to do that right now," you say. <</if>> <br><br> <<if (C.npc.Eden.lust + C.npc.Eden.dom) gte random(70, 170)>> <<set $edenPreyForced to true>> Eden clenches <<his>> fist and shakes <<his>> head. "Nonsense. You'll enjoy it." You're shoved <<if $phase is 0>>out the door<<else>>away from the cabin<</if>>, with Eden's hand placed on your back, forcing you along. You glance back and see Eden reaching for <<his>> gun. Dread fills your body, and you try to pry yourself away from Eden. <br> Eden sighs in frustration and plants <<his>> boot against your <<bottom>>, giving you a swift kick that sends you stumbling <<if $phase is 0>>out the door<<else>>onto your knees<</if>>. "Move," <<he>> commands, the barrel of <<his>> gun pressed against your back. You do as told, coming to a stop at the edge of the clearing. <br><br> "<<if !$edenPrey>>You're prey<<else>>You know the drill<</if>>," <<he>> begins. "When I fire my gun, I want you to run like your life depends on it. If you're caught..." <<He>> pauses, chuckling. "I'll have my fun with you." You glance back at <<him>>. <<Hes>> hiding something behind <<his>> back. <br> "Turn around," <<he>> orders. <br><br> You turn around, as instructed. A loud crack erupts behind you, shattering the tranquillity of the forest and signalling you to start running. <br><br> <<if !$edenPrey>><<set $edenPrey to 1>><</if>> <<link [[Run!|Eden Prey Chase]]>><<set $phase to 0>><</link>><<athleticsdifficulty 200 1200>> <br> <<link [[Get caught on purpose|Eden Prey Chase]]>><<set $phase to 1>><<control 25>><<npcincr Eden lust 1>><<npcincr Eden dom 5>><</link>><<ggcontrol>><<glust>><<ggdom>> <br> <<else>> Eden clenches <<his>> fist, but relents. "Fine," <<he>> says. "I'll <<if $player.virginity.penile is true and $player.virginity.vaginal is true>>take what's mine<<else>>put you to use<</if>> one way or another. Remember who takes care of you around here." <br> <<He>> steps away from you, <<if $phase is 1>>stomping off into the woods with a huff<<else>>storming outside and slamming the door shut behind <<him>><</if>>. <br><br> <<if $phase is 0>> <<link [[Next|Eden Cabin]]>><<endevent>><</link>> <<else>> <<link [[Next|Eden Clearing]]>><<endevent>><</link>> <</if>> <br> <</if>><<set $outside to 1>><<set $location to "forest">><<effects>> <<if $phase is 1>> You sprint into the brush as Eden gives chase. Your curiosity gets the better of you, causing you to look for a plausible excuse for the hunt to end. An idea pops into your mind when you spot a root. You jam your foot into the tree and fall onto the forest floor. Eden takes advantage in an instant. <br><br> You feel your wrists forced behind you as rope coils over them, restricting them to your back. Your eyes dart around, <span class="meek">until a shiny, red ball-gag is forced into your mouth.</span> A <<if $speech_attitude is "meek">>whimper<<elseif $speech_attitude is "bratty">>growl<<else>>sigh<</if>> escapes from you in response. A cloth is wrapped around your eyes and tied around your head, blinding you. You can do nothing but squirm helplessly, as Eden keeps you pinned down. <<bind>><<facewear 6>> <br><br> "Well, well, it seems I've found myself helpless prey," Eden taunts you. "Leaving you here just won't do." <<He>> hoists you up and carries you over <<his>> shoulder. <br> Tied up and deprived of your senses, you can only wait and anticipate what Eden has in store for you. <br><br> <<link [[Next|Eden Prey Caught]]>><</link>> <br> <<else>> <<if $athleticsSuccess>> You sprint into the brush as Eden gives chase. The twists and turns in the forest allow you the freedom to evade <<him>>. Despite the tremendous tracking skills the <<nnpc_title "Eden">> possesses, <span class="green">your speedy feet and persistence keeps <<him>> on <<his>> toes.</span> You can feel Eden trying to reach out to you as <<he>> barely brushes against your skin with <<his>> fingers.<<stress 2>><<gstress>> <br><br> After what seems like an eternity, you've left <<him>> in the dust. Your muscles burn from your efforts.<<physique 2>><<tiredness 12>><<npcincr Eden dom -5>><<gtiredness>><<lldom>> <br><br> <<set $forest to random(50, 100)>> <<set $edenPreyEscaped to true>> <<unset $edenPreyForced>> <<link [[Next|Forest]]>><<endevent>><</link>> <<else>> You sprint into the brush as Eden gives chase. The twists and turns in the forest allow you the freedom to evade <<him>>. However, <span class="red">you're unable to shake off the <<nnpc_title "Eden">>.</span> Despite your best efforts, you can hear <<his>> heavy breathing right behind you. As the last of your energy runs out, you're tackled to the ground.<<pain 1>><<tiredness 12>><<npcincr Eden dom 5>><<gpain>><<ggtiredness>><<ggdom>> <br><br> You feel your wrists forced behind you as rope coils over them, restricting them to your back. Your eyes dart around, <span class="meek">until a shiny, red ball-gag is forced into your mouth.</span> A <<if $speech_attitude is "meek">>whimper<<elseif $speech_attitude is "bratty">>growl<<else>>sigh<</if>> escapes from you in response. A cloth is wrapped around your eyes and tied around your head, blinding you. You can do nothing but squirm helplessly, as Eden keeps you pinned down. <<bind>><<facewear 6>> <br><br> "Well, well, it seems I've found myself some helpless prey," Eden taunts you. "Leaving you here just won't do." <<He>> hoists you up and carries you over <<his>> shoulder. <br> Tied up and deprived of your senses, you can only wait and anticipate what Eden has in store for you. <br><br> <<link [[Next|Eden Prey Caught]]>><</link>> <br> <</if>> <</if>> <<pass 10>><<set $outside to 0>><<set $location to "cabin">><<effects>> <<pass 10>> You're rushed through the forest, unable to move in Eden's grasp. Soon, you hear the sound of a door opening. The cabin, you assume. <br> Without warning, you're dropped onto a bed. Strong arms pin you down, preventing movement. You feel Eden's hot breath against your cheek. <br><br> "Caught you," <<he>> whispers in a sultry tone. One hand caresses your hair as the other slides to your <<breasts>>, drumming <<his>> fingers on your chest. "Now then, what's a <<nnpc_title "Eden">> to do with <<his>> helpless quarry...?" <br><br> <<His>> hand dips lower, down to your <<genitals>>. <br><br> <<link [[Next|Eden Prey Sex]]>><<if $edenPreyForced>><<set $molestationstart to 1>><<else>><<set $sexstart to 1>><</if>><</link>><<if $sexstart is 1>> <<set $sexstart to 0>> <<consensual>> <<set $consensual to 1>> <<neutral 1>> <<maninit>> <<set $enemytrust += 100>><<set $enemyhealth to 600>><<set $enemyhealthmax to 600>> <<elseif $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<maninit>><<set $enemyhealth to 600>><<set $enemyhealthmax to 600>><<set $enemyanger += 50>> <</if>> <<effects>> <<effectsman>> <<man>> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Eden Prey Sex Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Eden Prey Sex]]>><</link>></span><<nexttext>> <</if>><<set $outside to 0>><<set $location to "cabin">><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<ejaculation>><<npcincr Eden lust -20>> <<if ($player.penisExist and $player.virginity.penile is true and ($NPCList[0].vagina isnot "none" or $settings.analEnabled)) and ($player.vaginaExist and $player.virginity.vaginal is true and $NPCList[0].penis isnot "none")>> You feel a gentle slap across your face. <br> "We're going to fuck properly next time we do this," Eden says, <<if C.npc.Eden.lust gte 70>>licking<<else>>kissing<</if>> your cheek. <br><br> <</if>> <<if $orgasmcurrent is 0>> You pant heavily into your gag, feeling a frustrated yearning in your <<genitals>>. Eden seems to have taken pity on you, however, and you soon feel <<his>> hands slipping down towards your crotch. <br><br> <<if $player.penisExist and $player.vaginaExist and !playerChastity()>> <<He>> thoughtfully runs <<his>> fingers down the length of your <<penis>> while <<his>> thumb gently rubs your <<pussy>>. "Now, which do I play with?" <<set _edenHermChoice to random(0, 1)>> <br> <</if>> <<if $worn.genitals.name is "chastity parasite">> <<His>> rough hand squeezes your chastity parasite. <br> "Hold still," <<he>> whispers as <<he>> struggles to keep your hips in place. "It'll be over soon." <br> The waves of sensation bring you over the edge. You scream into your gag. <<set $arousal to 10000>> <<orgasm>> You hear a satisfied chuckle as your orgasm subsides. <<elseif playerChastity()>> <<He>> slides <<his>> finger over your $worn.genitals.name. <br><br> "I'll get this off you one day," <<he>> whispers. "Don't you worry." <<elseif _edenHermChoice is 1 or !$player.vaginaExist>> <<His>> rough hand lightly grips your cock and begins stroking up and down. Your glans is teased, causing your hips to buckle. Eden pins you down as you do so. <br> "Hold still," <<he>> whispers. "It'll be over soon." <br> The incredible sensation brings you over the edge. You scream into your gag. <<set $arousal to 10000>> <<orgasm>> You hear a satisfied chuckle as your orgasm subsides. <<else>> <<His>> rough hand traces around your outer walls, until Eden suddenly jams <<his>> fingers inside your <<pussy>>. Your breathing gets a bit heavier. Emboldened by your signs of arousal, <<he>> begins to knead your clit. The sensation causes your legs to twitch. You can't help but begin to struggle. Eden pins you down as you do so. <br> "Hold still," <<he>> whispers. "It'll be over soon." <br> The incredible sensation brings you over the edge. You scream into your gag. <<set $arousal to 10000>> <<orgasm>> You hear a satisfied chuckle as your orgasm subsides. <</if>> <br><br> <</if>> You feel Eden's lips press against your forehead, then hear the bed creak as <<he>> rolls off, leaving you alone in your bound state. <br><br> <<link [[Next|Eden Prey End]]>><<set $phase to 0>><</link>> <br> <<elseif $enemyhealth lte 0>> <<npcincr Eden love -1>><<npcincr Eden dom -1>> Despite your vulnerable state, you kick Eden off of you. You hear <<him>> tumble from the bed. <br> "Piece of shit," Eden shouts. "This better not bruise."<<llove>><<ldom>> <br><br> In a fit of rage, <<he>> walks off. You're left alone, bound, blind and gagged. <br><br> <<link [[Next|Eden Prey End]]>><<set $phase to 1>><</link>> <br> <</if>><<set $outside to 0>><<set $location to "cabin">><<effects>> You feel exhausted, struggling to move. You're not left there for long. Eden sits you up and undoes your gag. A cup is pressed to your lips. <br> "It's water," Eden states. <<He>> holds it closer to your mouth. "Drink." <br><br> You have no qualms about drinking as you gulp down a few sips. It's refreshing. Eden allows you a moment to catch your breath before pressing the cup against your lips again. <br> <<He>> pulls the cup away, then turns your body around. Your blindfold is removed, and your bindings follow. <<set $worn.face.type.push("broken")>> <<faceruined>> <<unbind>> <br><br> <<if $phase is 0>> "You've been such a good <<girl>>," Eden says, kissing your forehead again. "Make sure to get some rest." <<else>> "Feisty today, aren't we?" Eden chuckles. <<He>> seems to have calmed down. "Make sure to get some rest." <</if>> <br><br> <<He>> leaves you lying on the bed. <<tearful>> you rise to your feet, <<if $edenPreyForced>><<unset $edenPreyForced>> feeling uneasy about what just happened. <<else>> still feeling more than a little winded. <</if>> <br><br> <<endcombat>> <<clotheson>> <<link [[Next|Eden Cabin]]>><</link>> <br><<set $outside to 0>><<set $location to "cabin">><<effects>> You follow Eden back to the clearing. <<switch random (0, 2)>> <<case 0>> Before you can even enter, <<he>> stops short. You follow <<his>> gaze to a symbol carved into the tree. <<if $hypnosis_traits.devotion gte 4>><span class="purple">You recognise it as one of Gwylan's.</span><<else>>You don't recognise it.<</if>> <br><br> <<He>> takes out a knife from <<his>> pack and gouges the symbol with harsh, brutal cuts. The tree oozes sap. <<case 1>> <<He>> sets about gathering firewood for the night when <<he>> stops short. You follow <<his>> gaze to a small skull hidden in between the logs. Its empty eye sockets are staring straight at the cabin door. <br><br> <<He>> grabs the skull and drops it to the ground. You flinch as <<his>> heavy boot crushes it. <<He>> kicks dirt over the fragments until they're hidden from view. <<case 2>> You're about to enter the cabin when your feet crunch on something brittle. You look down and see a small pile of bones. You take a step back. <br><br> "What is it?" Eden asks, coming up beside you. <br><br> <<He>> stops when <<he>> sees the bones. <<His>> jaw sets. In one smooth motion, <<he>> grabs the bones and then throws them in the direction of the spring. You hear them splash. <</switch>> <br><br> <<He>> grabs your wrist and drags you behind <<him>>. <<His>> grip doesn't relax until <<hes>> back inside the cabin. <br><br> <<link [[Next|Eden Cabin]]>><<endevent>><</link>> <br><<set $outside to 0>><<set $location to "cabin">><<effects>> <<He>> smiles. "Good. I can't take your leash off just yet, not until you're trained." <<He>> ties <<his>> end of the leash around a wooden beam. "There should be enough slack for you to roam the entire cabin though." <br><br> <<link [[Next|Forest Cabin]]>><<set $forestleashed to 1>><<set $eventskip to 1>><<endevent>><</link>> <br><<set $outside to 0>><<set $location to "cabin">><<effects>> "You don't mean that," <<he>> says. "This benefits you far more than me." <<He>> grabs you and bends you over <<his>> lap. "But I can't let you get away with being so insolent." <br><br> <<link [[Next|Forest Hunter Punishment]]>><<set $molestationstart to 1>><</link>> <br><<if $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<maninit>><<npcspank>><<set $enemyhealth to 600>><<set $enemyhealthmax to 600>><<set $enemyanger += 200>> <<if $phase is 1>> <<npcoral>> <</if>> <</if>> <<effects>> <<effectsman>> <<man>> <<stateman>> <br><br> <<actionsman>> <<if _combatend or $enemyanger lte 0>> <span id="next"><<link [[Next|Forest Hunter Punishment Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Forest Hunter Punishment]]>><</link>></span><<nexttext>> <</if>><<set $outside to 1>><<set $location to "cabin">><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<ejaculation>> <<He>> pants from the exertion. "I hope you've learnt your lesson." <br><br> <<tearful>> you avoid <<his>> gaze. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Forest Cabin]]>><<set $eventskip to 1>><</link>> <br> <<elseif $enemyhealth lte 0>> "You ungrateful slut," <<he>> says. "Maybe I should throw you out and leave you to the wolves!" <<He>> winces and holds <<his>> side. "I need to get something for this." <br><br> <<tearful>> you gather yourself. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Forest Cabin]]>><<set $eventskip to 1>><</link>> <br> <<elseif $enemyanger lte 0>> <<He>> looks mollified, and releases you. "I hope you've learnt your lesson." <br><br> <<tearful>> you avoid <<his>> gaze. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Forest Cabin]]>><<set $eventskip to 1>><</link>> <br> <</if>><<set $outside to 0>><<set $location to "cabin">><<effects>> <<npc Eden>><<person1>> <<if $exposed gte 1>> <<towelup>> <</if>> <<if $forestleashed is 1>> <<if C.npc.Eden.trust gte 200>> <span class="green">Eden unties the leash from the wooden beam.</span> "You've been a good <<girl>>, so I'm going to give you a bit more freedom. Don't you dare run out on me though. Stick to the cabin and the clearing just outside." <<set $forestleashed to 0>> <<else>> You are leashed tight to a wooden beam, preventing escape. <</if>> <br><br> <<else>> <<if C.npc.Eden.trust lt 100>> <span class="red">Eden ties your leash to a wooden beam.</span> "You've been a bad <<girl>>, so I'm going to make sure you don't go anywhere." <br><br> <<set $forestleashed to 1>> <</if>> <</if>> <<if $forestleashed isnot 1>> <<if $syndromeeden is undefined>> <<badEndTrackingEnd "Eden" { reason: "edenAccepted" }>> <<set $syndromeeden to 1>><<set C.npc.Eden.lust to 0>><<set $edenshrooms to 0>><<set $edengarden to 0>><<set $edenspring to 0>><<set $wardrobes.edensCabin.unlocked to true>> <span class="red"><i>Eden isn't so bad, <<hes>> just lonely. It must be hard living here in the woods on your own.</i> <br> You've gained the "Stockholm Syndrome: Eden" trait.</span> <br><br> <<specialClothesUnlock "item" "loincloth">> <<loveInterestAdd "Eden">> <br><br> <</if>> <<link [[Next|Eden Cabin]]>><<endevent>><</link>> <br> <<else>> <<if Time.hour lte 6>> Eden carries you to the bed. <<if $forestleashed is 1>> <<He>> wraps your leash around the bars of the headboard, pinning you in place. <</if>> <<He>> leers at you, a ravenous look in <<his>> eyes. "You're so hot. I'm gonna enjoy this." <br><br> <<link [[Next|Cabin Night Rape]]>><<set $molestationstart to 1>><</link>> <br> <<elseif Time.hour lte 8>> Eden gives you instructions on how to prepare <<his>> breakfast. <br><br> <<link [[Prepare the food as instructed (2:00)|Forest Cabin Food]]>><<npcincr Eden trust 10>><<sub 1>><<pass 2 hours>><</link>><<gtrust>><<gstockholm>> <br> <<link [[Spit in the eggs (2:00)|Forest Cabin Spit]]>><<npcincr Eden trust -10>><<def 1>><<pass 2 hours>><</link>><<ltrust>><<lstockholm>> <br> <<elseif Time.hour lte 16>> Eden leads you outside, and goes about <<his>> daily business. <<if $forestleashed is 1>> <<He>> keeps you close at all times, tying your leash around a tree when <<he>> needs to use both hands. <<else>> <<He>> keeps you close at all times. <</if>> <br><br> <<link [[Be good|Forest Cabin Good]]>><<sub 1>><</link>> <br> <<if $forestleashed is 1>> <<link [[Weaken the leash|Forest Cabin Weaken]]>><<def 1>><</link>> <br> <</if>> <<elseif Time.hour lte 18>> Eden runs a bath. <<He>> eases <<his>> body into the water, and looks at you. "What are you waiting for? Strip, get in, and wash me." <br><br> <<link [[Wash (2:00)|Cabin Bath]]>><<pass 2 hours>><<npcincr Eden trust 10>><<sub 1>><</link>><<gtrust>><<gstockholm>> <br> <<link [[Refuse (2:00)|Cabin Bath Refuse]]>><<pass 2 hours>><<npcincr Eden trust -10>><<def 1>><</link>><<ltrust>><<lstockholm>> <br> <<elseif Time.hour lte 22>> Eden settles down to read a book, and stokes the fireplace. <br><br> <<link [[Cuddle (4:00)|Cabin Cuddle]]>><<sub 1>><<npcincr Eden trust 20>><<npcincr Eden love 1>><<pass 4 hours>><</link>><<glove>><<gtrust>><<ggstockholm>> <br> <<link [[Catch some sleep (4:00)|Forest Cabin]]>><<def 1>><<tiredness -12>><<tiredness -12>><<pass 4 hours>><<endevent>><</link>><<ltiredness>> <br> <<else>> Eden carries you to the bed. <<if $forestleashed is 1>> <<He>> wraps your leash around the bars of the headboard, pinning you in place. <</if>> <<He>> leers at you, a ravenous look in <<his>> eyes. "You're so hot. I'm gonna enjoy this." <br><br> <<link [[Next|Cabin Night Rape]]>><<set $molestationstart to 1>><</link>> <br> <</if>> <</if>><<if $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<maninit>><<set $enemyhealth to 600>><<set $enemyhealthmax to 600>> <</if>> <<effects>> <<effectsman>> <<man>> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Cabin Night Rape Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Cabin Night Rape]]>><</link>></span><<nexttext>> <</if>><<set $outside to 1>><<set $location to "cabin">><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<ejaculation>> Eden sighs and rolls onto <<his>> back. You soon hear <<his>> snoring. <<elseif $enemyhealth lte 0>> Eden takes the hint, and rolls onto <<his>> side, facing away from you. You soon hear <<his>> snoring. <</if>> <br><br> <<tearful>> you wonder what to do. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Cabin Night]]>><</link>><<set $outside to 0>><<set $location to "cabin">><<effects>> <<if $forestleashed is 1>> Eden is asleep, but with your neck leashed tight to the bed, you can't move very far. <br><br> <<link [[Sleep|Cabin Night Sleep]]>><<cabintime>><</link>><<ltiredness>> <br> <<link [[Weaken the leash|Cabin Night Leash]]>><<cabintime true>><</link>> <br> <<else>> Eden is asleep. You could escape if you wanted. <br><br> <<link [[Sleep|Cabin Night Sleep]]>><<cabintime>><</link>><<ltiredness>> <br> <<link [[Escape|Cabin Night Escape]]>><<set $stress -= 2000>><</link>> <br> <</if>><<set $outside to 0>><<set $location to "cabin">><<effects>> <<npc Eden>><<person1>> You settle down and try to sleep. <br><br> You are awoken a while later by Eden kissing you on the cheek. "Good morning." <<He>> yawns and stretches. "Time for breakfast." <br><br> <<link [[Next|Forest Cabin]]>><<endevent>><</link>> <br><<set $outside to 0>><<set $location to "cabin">><<effects>> <<if $forestleashedwear gte 1>> <<set $forestleashedwear += 1>> <<else>> <<set $forestleashedwear to 1>> <</if>> You rub the leash against the headboard, hoping to wear it through. You think you feel it becoming thinner. <br><br> <<if $forestleashedwear gte 3>> Sunlight caresses your face when the leash snaps, freeing you. Eden still slumbers, there's nothing preventing your escape. <<detach_leash>> <<set $forestleashed to 0>><<set $forestleashedwear to 0>> <br><br> <<link [[Stay put|Cabin Leash Broken]]>><</link>><<gtrust>><<gggstockholm>> <br> <<link [[Escape|Cabin Night Escape]]>><<set $stress -= 2000>><</link>><<lllstockholm>> <br> <<else>> <<npc Eden>><<person1>> A while later you hear Eden stir. <<He>> rolls over and kisses you on the cheek. "Good morning." <<He>> yawns and stretches. "Time for breakfast." <br><br> <<link [[Next|Forest Cabin]]>><<endevent>><</link>> <br> <</if>><<set $outside to 0>><<set $location to "cabin">><<effects>> You sneak towards the cabin entrance and try the door handle. It opens, and you escape into the forest. <br><br> <<link [[Next|Forest]]>><<npcincr Eden trust -200>><<set $forest to 80>><<if !$syndromeeden>><<badEndTrackingEnd "Eden" { reason: "edenEscapeNight" }>><</if>><</link>> <br><<set $outside to 0>><<set $location to "cabin">><<effects>> <<npc Eden>><<person1>> A while later you hear Eden stir. <<He>> rolls over and kisses you on the cheek. "Good morning." <<He>> yawns and stretches. "Time for breakfast." <<He>> notices your broken leash. "Oh dear, I thought these things were sturdier. You're such a good <<girl>> for not running off." <<He>> leans over and kisses you on the forehead, then looks thoughtfully at the broken remains of the leash. <<npcincr Eden trust 200>> <br><br> <<if C.npc.Eden.trust gte 100>> "I don't think keeping you tied is necessary any more. Just don't run off on me. Stick to the cabin and the clearing just outside, where it's safe." <<if $syndromeeden is undefined>> <<badEndTrackingEnd "Eden" { reason: "edenAccepted" }>> <<set $syndromeeden to 1>><<set C.npc.Eden.lust to 0>><<set $edenshrooms to 0>><<set $edengarden to 0>><<set $edenspring to 0>><<set $wardrobes.edensCabin.unlocked to true>> <br><br> <span class="red"><i>Eden isn't so bad, <<hes>> just lonely. It must be hard living here in the woods on your own.</i> <br> You've gained the "Stockholm Syndrome: Eden" trait.</span> <br><br> <<loveInterestAdd "Eden">> <</if>> <</if>> <br><br> <<if C.npc.Eden.trust gte 100>> <<link [[Next|Eden Cabin]]>><<endevent>><</link>> <br> <<else>> <<link [[Next|Forest Cabin]]>><<endevent>><</link>> <br> <</if>><<set $outside to 0>><<set $location to "cabin">><<effects>> You prepare the food and place it on the table in front of <<him>>. <<He>> takes a bite, then smiles and pats your head. <<He>> shares some with you and you eat together. Eden talks a lot about the minutiae of life here, pausing to allow you a response. You nod each time, which seems enough to satisfy <<him>>. <br><br> <<His>> plate empty, <<he>> stands and looks out the window. <<if Weather.precipitation is "none">> "It's a lovely day! We'll be able to get lots of work done." <<elseif Weather.precipitation is "rain">> "We've got lots of work to do today. A little rain won't stop us." <<elseif Weather.is("heavyClouds")>> "The clouds are grumbling. Hope they don't burst before we're done for the day." <<elseif Weather.isFreezing>> "It's cold today. Best keep active." <</if>> <br><br> <<link [[Next|Forest Cabin]]>><<endevent>><</link>> <br><<set $outside to 0>><<set $location to "cabin">><<effects>> You prepare the food and place it on the table in front of <<him>>. <<He>> takes a bite. "You did something to this, didn't you?" You try to suppress a defiant smile, but the twitching at the corner of your lips gives it away. <<He>> grabs you and bends you over <<his>> lap. <br><br> <<link [[Next|Forest Hunter Punishment]]>><<set $molestationstart to 1>><</link>> <br><<set $outside to 0>><<set $location to "cabin">><<effects>> You snuggle up to Eden. <<He>> is taken aback, but <<his>> face soon softens and <<he>> wraps an arm around you. <br><br> <<link [[Next|Forest Cabin]]>><<endevent>><</link>> <br><<set $outside to 0>><<set $location to "cabin">><<effects>><<wearProp "sponge">> You remove your clothing and get in the bath. Using a sponge, you wash <<his>> back. <<He>> turns to you. "You're such a gentle thing. Now clean my chest." You continue washing, though it's more embarrassing when you can see <<his>> face. <<wash>><<garousal>><<arousal 1000>> <br><br> <<link [[Next|Forest Cabin]]>><<endevent>><</link>><<set $outside to 0>><<set $location to "cabin">><<effects>> <<He>> yanks your leash, dragging you into the bath, and pulling you over <<his>> lap. <br><br> <<link [[Next|Forest Hunter Punishment]]>><<set $molestationstart to 1>><<npcexpose>><<set $phase to 1>><</link>> <br><<set $outside to 0>><<set $location to "cabin">><<effects>> You grind the leash against the tree, careful not to be noticed. You think you feel the leash become thinner. <br><br> Some time later, Eden pants and stretches while looking at the setting sun. "I need a bath. Come on, let's go home." <<if $forestleashedwear gte 1>> <<set $forestleashedwear += 1>> <<else>> <<set $forestleashedwear to 1>> <</if>> <br><br> <<link [[Next|Forest Cabin]]>><<pass 8 hours>><<endevent>><</link>> <br><<set $outside to 0>><<set $location to "cabin">><<effects>> Some time later, Eden pants and stretches while looking at the setting sun. "I need a bath. Come on, let's go home." <br><br> <<link [[Next|Forest Cabin]]>><<pass 8 hours>><<endevent>><</link>> <br><<set $outside to 0>><<set $location to "cabin">><<effects>><<set $bus to "edencabin">><<getTarget true>><<edenFluidsCheck>> /* make sure that all links that lead here have <<endevent>> */ <<npc Eden>><<person1>> You are in Eden's cabin. <<if $edenpillow is 2>> A rug and some pillows sit by the fireplace. <</if>> <<if $edencushions is 2 and $edenloveseat is 9>> A loveseat rests nearby. <</if>> <<if $edencurtains is 2>> Soft curtains hang from the windows. <</if>> <<if $edencoat is 2>> A coat stand is placed in the corner. <<if $edencoatjacket is 1 and $edenscarf is 1 and !(Time.hour gte 11 and Time.hour lte 14 and $daily.eden.hunting is 1)>> A hunting coat and a scarf hang from it. <<elseif ($edenscarf is 1 and !(Time.hour gte 11 and Time.hour lte 14 and Time.season is "winter" and $daily.eden.hunting is 1))>> A scarf hangs from it. <<elseif $edencoatjacket is 1 and !(Time.hour gte 11 and Time.hour lte 14 and $daily.eden.hunting is 1)>> A hunting coat hangs from it. <</if>> <</if>> There is a thermometer outside the window. It reads <span class="teal"><<print Weather.toSelectedString(Weather.temperature, 0)>></span>. <<print setup.WeatherDescriptions.extremeTemperature()>> <br><br> <<if isPregnancyEnding() and !$possessed>> <<pregnancyPassout "edencabin">> <<elseif $stress gte $stressmax and !$possessed>> <br><br> <<link [[Everything fades to black...|Eden Cabin Passout]]>><</link>> <<elseif $edenCagedEscape and Time.hour gte 0 and Time.hour lte 6 and !$possessed>> You step through the door of the cabin, holding your breath in anticipation. Eden immediately stirs from <<his>> bed, throwing off the covers in a fit of rage. "So now you've come crawling back, have you? About fucking time." <br><br> <<He>> grabs you before you can get a word out. It's then that you see the cage in the corner. <br><br> <<link [[Next|Eden Caged Intro]]>><<set $phase to 2>><</link>> <br> <<elseif edenFreedomStatus() gte 1 and Time.hour gte 0 and Time.hour lte 6 and !$possessed>> <<edenTrackers>> <<npcincr Eden love -2>> You enter to find Eden sleeping. Woken by the sound of the door opening, <<he>> quickly rises from the bed, but relaxes slightly when <<he>> sees you. Throwing off the covers, <<he>> rushes over to you. <<if $edenPreyEscaped>><<unset $edenPreyEscaped>> "Don't think I forgot about our game. You weren't supposed to escape me," <<he>> grumbles. "You shouldn't have been gone so long, either. Where the hell have you been?" <<else>> "Where have you been?" <<he>> asks, grabbing you by the shoulders. "I was so worried about you." <</if>> <br><br> <<link [[Apologise|Eden Return Apologise]]>><<npcincr Eden love 1>><<set $phase to 0>><</link>> <br> <<link [[Explain|Eden Return Apologise]]>><<set $phase to 1>><</link>> <<elseif $edenPreyEscaped and Time.hour gte 0 and Time.hour lte 6 and !$possessed>><<unset $edenPreyEscaped>> You enter to find Eden sleeping. Woken by the sound of the door opening, <<he>> quickly rises from the bed, rubbing <<his>> eyes groggily. When <<he>> sees you, <<his>> expression turns to a glare. <br><br> "You weren't supposed to escape me," <<he>> says, looking you up and down. "I'll fuck you raw if I have to. Next time, you're mine." <br> <<if $worn.neck.collared isnot 1 and $edenaskcollar isnot 1>> <<He>> yawns and starts to drift back to sleep, but <<his>> eyes pop open, as if <<he>> just realised something. <br> "Where's your collar?" <<he>> asks, <<his>> voice growing concerned. <<He>> throws the covers off and stomps towards you. <br><br> <<if $edencollarremove is 1>> <<link [[Lie and ask for another one|Eden Collar Ask]]>><<npcincr Eden love 5>><<npcincr Eden lust 5>><<npcincr Eden dom 5>><</link>><<gglove>><<gglust>><<ggdom>> <<else>> <<link [[Explain and ask for another one|Eden Collar Ask]]>><<npcincr Eden love 5>><<npcincr Eden lust 5>><<npcincr Eden dom 5>><</link>><<gglove>><<gglust>><<ggdom>> <</if>> <br> <<link [[Just say you removed it|Eden Collar Remove]]>><</link>> <br> <<else>> <<He>> trails off and yawns, then rolls back onto <<his>> side. The sound of <<his>> snoring soon fills the cabin. <br><br> <<link [[Next|Eden Cabin]]>><<endevent>><</link>> <br> <</if>> <<elseif $worn.neck.collared isnot 1 and $edenaskcollar isnot 1 and Time.hour gte 0 and Time.hour lte 6 and !$possessed>> You enter to find Eden sleeping. Woken by the sound of the door opening, <<he>> quickly rises from the bed, but relaxes slightly when <<he>> sees you. <<He>> turns to lie back down, but stops as <<his>> eyes zero in on your neck. <br><br> "Where's your collar?" <<he>> asks, getting out of bed and walking towards you. <br><br> <<if $edencollarremove is 1>> <<link [[Lie and ask for another one|Eden Collar Ask]]>><<npcincr Eden love 5>><<npcincr Eden lust 5>><<npcincr Eden dom 5>><</link>><<gglove>><<gglust>><<ggdom>> <<else>> <<link [[Explain and ask for another one|Eden Collar Ask]]>><<npcincr Eden love 5>><<npcincr Eden lust 5>><<npcincr Eden dom 5>><</link>><<gglove>><<gglust>><<ggdom>> <</if>> <br> <<link [[Just say you removed it|Eden Collar Remove]]>><</link>> <br> <<elseif ($exposed gte 2 and !hasSexStat("exhibitionism", 5) or $exposed gte 1 and !hasSexStat("exhibitionism", 4)) and !isLoveInterest("Eden")>> You don't want to be seen like this! You rush to your clothes. <br><br> <<link [[Next|Eden Wardrobe]]>><<endevent>><</link>> <br><br> <<else>> <<if $exposed is 1 and hasSexStat("exhibitionism", 4) or $exposed is 2 and hasSexStat("exhibitionism", 5)>> <span class="lewd">You feel a primal thrill from your displayed <<lewdness>>.</span> <<elseif $exposed is 1 or $exposed is 2>> <span class="lewd">Your <<lewdness>> embarrasses you, though no one but Eden can see you here.</span> <</if>> <<if Time.dayState is "night">> Embers burn in the hearth. <</if>> <<if Weather.precipitation is "rain">> <<if $edenroof gte 5>> Rain pours down on the cabin's roof with a soothing sound. <<else>> Droplets of rainwater seep through the wooden ceiling and patter on the ground. <</if>> <br><br> <<elseif Weather.precipitation is "snow">> Snow settles on the windowsills. <br><br> <</if>> <<if edenFreedomStatus() is 0>> <<edenTrackers>> <</if>> <<if $possessed>> <<if $nextPassageCheck is "Eden Clearing" and $worn.neck.collared is 1 and $worn.neck.type.includes("leash")>> You're stopped by your collar's leash going taut. You stare at Eden's sleeping form and sneer. <br><br> You grip the collar, and pull. You can't feel your arms or hands, but you know you're pulling with impossible force. <br><br> Several more hands grab the collar, and pull from all directions. After a moment, it gives way. The hands catch every falling scrap of metal before they can hit the ground, laying them in a pile at Eden's side. You smirk. <<set $forestleashed to 0>><<set $forestleashedwear to 0>><<set $worn.neck.cursed to 0>><<neckruined>> <<else>> Eden is fast asleep. <</if>> <br><br> <<if Time.monthName is "November" and $edenprepare is 1>> <<choreicon "fix">><<link [[Fix the cabin|Cabin Eden Prepare]]>><</link>> <br><br> <</if>> <<investigateicon>><<link [[Look around the cabin|Cabin House Actions]]>><</link>> <br><br> <<if $nextPassageCheck is "Cabin Actions">> <<bedicon "eden">><span class="nextLink"><<link [[Examine the sleeping area|Cabin Actions]]>><</link>></span> <<else>> <<bedicon "eden">><<link [[Examine the sleeping area|Cabin Actions]]>><</link>> <</if>> <br><br> <<cabinothers>> <<elseif Time.hour gte 0 and Time.hour lte 6>> <<if $edenbed isnot 1 and Time.hour lte 2>><<set $edenbed to 1>> Eden moves away from you, stretching as <<he>> does so. "It's getting late," <<he>> says, walking to bed. <<He>> looks at you expectantly. <br><br> <<bedicon "eden">><<link [[Go with Eden|Eden Cabin Bed]]>><<npcincr Eden love 1>><<npcincr Eden dom 1>><</link>><<glove>><<gdom>> <br> <<wardrobeicon>><<link [[Change into night clothes|Eden Night Wardrobe]]>><<npcincr Eden love 1>><<npcincr Eden dom 1>><</link>><<glove>><<gdom>> <br> <<refuseicon>><<link [[Stay|Eden Cabin]]>><<endevent>><</link>> <br> <<else>> <<set $edenbed to 1>> Eden is fast asleep. <br><br> <<if Time.monthName is "November" and $edenprepare is 1>> <<choreicon "fix">><<link [[Fix the cabin|Cabin Eden Prepare]]>><</link>> <br><br> <</if>> <<investigateicon>><<link [[Look around the cabin|Cabin House Actions]]>><</link>> <br><br> <<bedicon "eden">><<link [[Examine the sleeping area|Cabin Actions]]>><</link>> <br><br> <<cabinothers>> <</if>> <<elseif Time.hour lte 8>> <<if $valentines is 1 and Time.monthDay is 14 and $daily.eden.breakfast isnot 1>> <<if $daily.eden.breakfast isnot 1>> <<set $daily.eden.breakfast to 1>> <</if>> <<set $valentines_eden_breakfast to 1>> The sound of kitchenware rattles throughout the cabin, ripping you from your slumber. Blinking your eyes open, you see small beams of morning sunlight peek through the windows. Momentarily distracted, you stare at the scenery for a bit before the smell of food breaks your focus. Puzzled, you turn over to ask Eden about it, but realise that <<hes>> not in bed. You sit up just in time to see <<him>> setting the table for breakfast. Hearing you stir, <<he>> turns <<his>> head to look at you. <br><br> "Morning," <<he>> greets. <<Hes>> holding two plates of eggs. <br> You toss the covers off and shamble over, throwing <<him>> a questioning glance. Eden chuckles at your dishevelled state. <br> "It's Valentine's day," <<he>> explains, "so I thought I'd help out." <br><br> You shift your gaze to the food. It's odd not to be making breakfast for <<him>>, and it's even stranger to not be sharing, but you find the gesture sweet nonetheless. You smile at <<him>> in gratitude and join <<him>> at the table. As the two of you eat, you attempt to chat with <<him>>. <<Hes>> quiet for the most part, but tries to respond when <<he>> can. <br><br> <<if $valentines_eden_bought isnot 1>> You wonder if there's a way you could repay <<him>>. <<elseif $valentines_eden_bought is 1>> You think about the gifts you bought for Eden at the mall. Maybe you'll be able to repay <<him>> for this later. <</if>> <br><br> <<link [[Next|Eden Cabin]]>><<endevent>><</link>> <<elseif $daily.eden.breakfast isnot 1>> <<if $daily.eden.breakfast isnot 1>> <<set $daily.eden.breakfast to 1>> <</if>> Eden lies on the bed. "Make me breakfast," <<he>> says. <br><br> <<if pcAreArmsBound("any") or $feetuse is "bound">> <<He>> beckons you over. Once you're close enough, Eden grabs your shoulder and spins you around. With your back to <<him>>, Eden begins to fiddle with your bindings. You tense up, anxious that you're unable to see what <<hes>> up to. <br><br> Suddenly, your arms and legs are free of all restraints. You breathe a sigh of relief. <br><br> <<unbind>> <</if>> <<foodicon "pancakes">><<link [[Make the usual breakfast (0:20)|Eden Breakfast]]>><<npcincr Eden love 1>><<npcincr Eden dom 1>><<pass 20>><<set $phase to 0>><<housekeeping 1 100>><</link>><<housekeepingdifficulty 1 100>><<gdom>> <br> <<if $housekeeping gte 100>> <<foodicon "eat">><<link [[Make something new (0:20)|Eden Breakfast]]>><<pass 20>><<set $phase to 1>><</link>> <br> <<if $edengarden gte 3>> <<tendingicon "carrot">><<link [[Use vegetables from the plot (0:20)|Eden Breakfast]]>><<pass 20>><<set $phase to 3>><<npcincr Eden love 3>><</link>><<gglove>> <br> <</if>> <<if $edenshrooms gte 3>> <<tendingicon "mushroom">><<link [[Use mushrooms from the barrel (0:20)|Eden Breakfast]]>><<pass 20>><<set $phase to 4>><<npcincr Eden lust 30>><</link>><<ggglust>> <br> <</if>> <<else>> <<insufficientStat "housekeeping" "to make something more imaginative">> <br> <</if>> <<refuseicon>><<link [[Refuse|Eden Breakfast]]>><<npcincr Eden love -1>><<npcincr Eden dom -1>><<set $phase to 2>><</link>><<ldom>><<llove>> <<elseif $edenNightmareWake is true>> <<unset $edenNightmareWake>> You catch <<him>> eyeing your <<= $settings.asphyxiaLevel gte 3 ? "neck" : "wrists">>, but <<he>> quickly looks away when <<he>> sees you've noticed. <br><br> <<link [[Ask about last night|Eden Nightmare Morning]]>><<set $phase to 0>><</link>> <br> <<link [[Pretend nothing happened|Eden Nightmare Morning]]>><<set $phase to 1>><</link>> <br> <<else>> Eden is getting ready for the day. <br><br> <<edenlust>> <<if Time.monthName is "November" and $edenprepare is 1>> <<choreicon "fix">><<link [[Fix the cabin|Cabin Eden Prepare]]>><</link>> <br><br> <</if>> <<getinicon>><<link [[Approach Eden|Cabin Eden Actions]]>><</link>> <br><br> <<investigateicon>><<link [[Look around the cabin|Cabin House Actions]]>><</link>> <br><br> <<bedicon "eden">><<link [[Examine the sleeping area|Cabin Actions]]>><</link>> <br><br> <<cabinothers>> <</if>> <<elseif Time.hour lte 16>> Eden is working hard outside. <br><br> <<if Time.hour is 15 and $daily.eden.lunch isnot 1>> <<if $housekeeping gte 100>> Eden must be hungry after all that hunting. Maybe <<he>>'d appreciate some lunch. <br> <<foodicon "eat">><<link [[Make lunch for Eden (0:30)|Eden Lunch]]>><<pass 30>><<npcincr Eden love 1>><<npcincr Eden dom 1>><<set $daily.eden.lunch to 1>><</link>> <<else>> Eden must be hungry after all that hunting. You think about making <<him>> lunch, <span class="blue">but lack the housekeeping confidence to whip anything up.</span> <</if>> <br><br> <</if>> <<if Time.monthName is "November" and $edenprepare is 1>> <<choreicon "fix">><<link [[Fix the cabin|Cabin Eden Prepare]]>><</link>> <br><br> <</if>> <<investigateicon>><<link [[Look around the cabin|Cabin House Actions]]>><</link>> <br><br> <<bedicon "eden">><<link [[Examine the sleeping area|Cabin Actions]]>><</link>> <br><br> <<cabinothers>> <<elseif Time.hour lte 17>> <<if $valentines is 1 and Time.monthDay is 14 and $valentines_eden_bought is 1 and $daily.eden.bath isnot 1 and $valentines_eden_bath isnot 1>> Eden's still busy outside. Now's your chance to prepare a bath for <<him>>. <br><br> <<link [[Run the bath|Eden Valentines Bath]]>><</link>> <br> <<link [[Don't run a bath|Eden Cabin]]>><<endevent>><<set $valentines_eden_bath to 1>><</link>> <<elseif ($valentines isnot 1 and $daily.eden.bath isnot 1) or ($valentines is 1 and Time.monthDay isnot 14 and $daily.eden.bath isnot 1) or ($valentines is 1 and Time.monthDay is 14 and !$valentines_eden_bought and $daily.eden.bath isnot 1) or ($valentines is 1 and Time.monthDay is 14 and $valentines_eden_bath is 1 and $daily.eden.bath isnot 1)>> <<if $daily.eden.bath isnot 1>> <<set $daily.eden.bath to 1>> <</if>> Eden finishes running <<his>> bath and starts to strip. "Bath time," <<he>> says. "Come on, get in while the water's hot." <br><br> <<noClothingCheck>> <<if _nude is false>> <<link [[Strip and get in (0:30)|Eden Bath]]>><<pass 30>><<npcincr Eden dom 1>><<npcincr Eden love 1>><<set $phase to 0>><<strip>><<set $edenClothes to true>><<set $edenFluidsCheck to "clean">><</link>><<gdom>><<glove>> <<else>> <<link [[Get in (0:30)|Eden Bath]]>><<pass 30>><<npcincr Eden dom 1>><<npcincr Eden love 1>><<set $phase to 0>><<strip>><</link>><<gdom>><<glove>> <</if>> <br> <<link [[Refuse|Eden Bath]]>><<npcincr Eden dom -1>><<npcincr Eden love -1>><<set $phase to 1>><<set $edenjoin to 1>><</link>><<llove>><<ldom>> <br> <<else>> Eden is relaxing in the bath. <br><br> <<edenlust>> <<if Time.monthName is "November" and $edenprepare is 1>> <<choreicon "fix">><<link [[Fix the cabin|Cabin Eden Prepare]]>><</link>> <br><br> <</if>> <<getinicon>><<link [[Approach Eden|Cabin Eden Actions]]>><</link>> <br><br> <<investigateicon>><<link [[Look around the cabin|Cabin House Actions]]>><</link>> <br><br> <<bedicon "eden">><<link [[Examine the sleeping area|Cabin Actions]]>><</link>> <br><br> <<cabinothers>> <</if>> <<elseif Time.hour lte 18 and Time.monthDay is 25 and $christmas_gift_eden_given is 1 and $eden_christmas_dinner isnot 1>> Eden busies <<himself>> with gathering ingredients, preparing something. You roam around the cabin, trying to peek over <<his>> shoulder or at least help <<him>> out. Your efforts are for naught though, as <<he>> insists that you let <<him>> handle everything tonight. As <<he>> starts cooking, a mouth-watering scent fills the cabin, adding to the anticipation of the moment. <br><br> <<He>> calls you over to the table after a long wait. A beautiful meal for two is laid out, looking as good as it smells. You look to Eden and <<he>> seems a bit worn out, but proud of <<himself>>. You think it's the most effort Eden's ever put into cooking before. <br><br> <<link [[Next|Eden Christmas Meal 2]]>><<pass 20>><</link>> <<elseif Time.hour lte 18 and $daily.eden.dinner isnot 1 and C.npc.Eden.love gte 100>> <<set $daily.eden.dinner to 1>> Eden finishes cooking and sets the table for dinner. "I ask you to make breakfast every day," <<he>> says. "It's fair that I help with dinner." <br><br> <<link [[Join Eden for dinner (0:20)|Eden Dinner]]>><<npcincr Eden love 1>><<npcincr Eden dom 1>><<pass 20>><<set $phase to 1>><</link>><<glove>><<gdom>> <br> <<link [[Don't join Eden|Eden Dinner]]>><<npcincr Eden love -1>><<npcincr Eden dom -1>><<set $phase to 2>><</link>><<llove>><<ldom>> <br> <<else>> <<if $rng gte 11 and $syndromeeden is 1 and C.npc.Eden.love gte 100 and C.npc.Eden.dom gte 75 and Weather.dayState is "night" and (Weather.precipitation is "rain" or Weather.name is "thunderStorm") and !$weekly.edenStory>> <<set $weekly.edenStory to true>> The weather's getting harsher, beating down against the roof. Bolts of lightning periodically illuminate the cabin. You find Eden at the kitchen table, cleaning <<his>> gun. <br><br> A clap of thunder rings out, causing you to flinch involuntarily. <br><br> <<link [[Next|Eden Story]]>><</link>> <<elseif Time.days % 2 is 0>> Eden is cleaning <<his>> gun beside the fire. <span class="blue"><<He>> looks a bit lonely.</span> <br><br> <<edenlust>> <<if Time.monthName is "November" and $edenprepare is 1>> <<choreicon "fix">><<link [[Fix the cabin|Cabin Eden Prepare]]>><</link>> <br><br> <</if>> <<getinicon>><<link [[Approach Eden|Cabin Eden Actions]]>><</link>> <br><br> <<if checkSextoysGift("Eden") and C.npc.Eden.penis is "none" and checkIfNPCHasCategorySextoy("Eden","strap-on").length <= 5>> <<sextoysicon "strap-on">><<link [[Gift Eden a strap-on|Eden Gift Strap-on]]>><</link>> <br><br> <</if>> <<investigateicon>><<link [[Look around the cabin|Cabin House Actions]]>><</link>> <br><br> <<bedicon "eden">><<link [[Examine the sleeping area|Cabin Actions]]>><</link>> <br><br> <<cabinothers>> <<else>> Eden is reading beside the fire. <span class="blue"><<He>> looks a bit lonely.</span> <br><br> <<edenlust>> <<if Time.monthName is "November" and $edenprepare is 1>> <<choreicon "fix">><<link [[Fix the cabin|Cabin Eden Prepare]]>><</link>> <br><br> <</if>> <<getinicon>><<link [[Approach Eden|Cabin Eden Actions]]>><</link>> <br><br> <<if checkSextoysGift("Eden") and C.npc.Eden.penis is "none" and checkIfNPCHasCategorySextoy("Eden","strap-on").length <= 5>> <<sextoysicon "strap-on">><<link [[Gift Eden a strap-on|Eden Gift Strap-on]]>><</link>> <br><br> <</if>> <<investigateicon>><<link [[Look around the cabin|Cabin House Actions]]>><</link>> <br><br> <<bedicon "eden">><<link [[Examine the sleeping area|Cabin Actions]]>><</link>> <br><br> <<cabinothers>> <</if>> <</if>> <</if>><<effects>> <<if Time.hour lte 20>>/* if hour >= 21 and it's the last day of october, passing 3h will make it november, which unsets the variables, making nans */ <<if $edenwall lt 5>> <<choreicon "fix">><<link [[Fix the cracks in the walls (3:00)|Eden Wall]]>><<npcincr Eden love 1>><<npcincr Eden dom 1>><<housekeeping 1 1000>><</link>><<glove>><<gdom "Eden">><<ghousekeeping 1000>> <<else>> <span class="green">The walls are fully repaired.</span> <</if>> <br> <<if $edenchimney lt 5>> <<choreicon "sweep">><<link [[Clean the chimney (3:00)|Eden Chimney]]>><<npcincr Eden love 1>><<npcincr Eden dom 1>><<housekeeping 1 1000>><</link>><<glove>><<gdom "Eden">><<ghousekeeping 1000>> <<else>> <span class="green">The chimney is clean.</span> <</if>> <br> <<if $edenroof lt 5>> <<choreicon "fix">><<link [[Fix the roof (3:00)|Eden Roof]]>><<npcincr Eden love 1>><<npcincr Eden dom 1>><<housekeeping 1 1000>><</link>><<glove>><<gdom "Eden">><<ghousekeeping 1000>> <<else>> <span class="green">The roof is fixed.</span> <</if>> <br> <<else>> It's getting too late for repairs. <br> <</if>> <br> <<if $outside is 0>> <<getouticon>><<link [[Go back|Eden Cabin]]>><<endevent>><</link>> <<else>> <<getouticon>><<link [[Go back|Eden Clearing]]>><<endevent>><</link>> <</if>> <br><<effects>> Eden glances at you. <br><br> <<edenFluidsCheck>> <<if Time.hour gte 18 and Time.hour lte 23>> <<if $edencushions is 2 and $edenloveseat is 9>> <<couchicon>><<link [[Cuddle on the loveseat (0:30)|Eden Cuddle]]>><<trauma -3>><<stress -3>><<pass 30>><<npcincr Eden love 1>><<npcincr Eden lust 1>><</link>><<glove>><<glust>><<ltrauma>><<lstress>> <br> <<else>> <<couchicon>><<link [[Cuddle (0:30)|Eden Cuddle]]>><<trauma -3>><<stress -3>><<pass 30>><<npcincr Eden love 1>><<npcincr Eden lust 1>><</link>><<glove>><<glust>><<ltrauma>><<lstress>> <br> <</if>> <<if Time.days % 2 is 0>> <<if $eden_shoot gte 1>> <<edenicon "target">><<link [[Practise shooting (0:30)|Eden Shoot]]>><<pass 30>><<stress -3>><</link>><<lstress>> <br> <<else>> <<edenicon "target">><<link [[Say you want to learn how to shoot (0:05)|Eden Shoot Ask]]>><<pass 5>><</link>> <br> <</if>> <<else>> <<schoolicon "library">><<link [[Ask Eden to read to you (0:30)|Eden Read]]>><<trauma -3>><<pass 30>><<npcincr Eden love 1>><<set $phase to 0>><</link>><<glove>><<ltrauma>> <br> <</if>> <<if $edenradiointro is 2>> <<techicon "radio">><<link [[Ask Eden to dance (0:30)|Eden Dance]]>><<trauma -3>><<stress -3>><<danceskill 5>><<pass 30>><<npcincr Eden love 1>><<npcincr Eden lust 1>><<set $phase to 0>><</link>><<glove>><<glust>><<ltrauma>><<lstress>><<gdanceskill>> <br> <</if>> <<if $edenpillow is 2 and !$daily.eden.massage>> <<edenicon "salve">><<link [[Give Eden a massage (0:30)|Eden Massage]]>><<pass 30>><<npcincr Eden love 1>><<npcincr Eden lust 3>><<set $daily.eden.massage to 1>><</link>><<glove>><<gglust>><<ltrauma>><<lstress>> <br> <</if>> <<if $edenpillow is 2 and $daily.eden.massage is 1>> <<edenicon "salve">><<link [[Give Eden a massage (0:30)|Eden Massage]]>><<pass 30>><<npcincr Eden love 1>><<npcincr Eden lust 3>><<set $daily.eden.massage to 2>><</link>><<glove>><<gglust>><<ltrauma>><<lstress>> <br> <</if>> <<if $edenpillow is 2 and $daily.eden.massage is 2>> <<edenicon "salve">><<link [[Give Eden a massage (0:30)|Eden Massage]]>><<pass 30>><<npcincr Eden love 1>><<npcincr Eden lust 3>><<set $daily.eden.massage to 3>><</link>><<glove>><<gglust>><<ltrauma>><<lstress>> <br> <</if>> <<if $edenpillow is 2 and $daily.eden.massage is 3>> <<edenicon "salve">><<link [[Give Eden a massage (0:30)|Eden Massage]]>><<pass 30>><<npcincr Eden love 1>><<npcincr Eden lust 3>><<set $daily.eden.massage to 4>><</link>><<glove>><<gglust>><<ltrauma>><<lstress>> <br> <</if>> <<if $edenpillow is 2 and $daily.eden.massage is 4>> <<edenicon "salve">><<link [[Give Eden a massage (0:30)|Eden Massage]]>><<pass 30>><<npcincr Eden love 1>><<npcincr Eden lust 3>><<set $daily.eden.massage to 5>><</link>><<glove>><<gglust>><<ltrauma>><<lstress>> <br> <</if>> <br> <</if>> <<if !$edenfurniture>> <<edenicon "rug">><<link [[Ask Eden if you can buy a rug and pillows|Eden Pillows]]>><</link>> <br> <<elseif $edenfurniture is 1 and $edenpillow is 2>> <<edenicon "curtains">><<link [[Ask if you can get curtains and a coat stand|Eden Curtains]]>><</link>> <br> <<elseif $edenfurniture gte 2 and !$edencoat and $edencurtains is 2>> <<edenicon "coat stand">><<link [[Ask to make the coat stand (3:00)|Eden Coat Stand]]>><<set $edencoat to 1>><<pass 3 hours>><</link>> <br> <<elseif $edenfurniture is 2 and $edencurtains is 2 and $edencoat>> <<couchicon>><<link [[Ask for a loveseat|Eden Loveseat]]>><</link>> <br> <<elseif $edenfurniture is 3 and $edenloveseat lt 7>> <<couchicon>><<link [[Work on the loveseat (3:00)|Eden Loveseat Work]]>><<pass 3 hours>><</link>> <br> <</if>> <<if Time.hour is 17 and $edenjoin is 1>> <<bathroomicon>><<link [[Ask to join Eden in the bath (0:30)|Eden Bath Join]]>><<npcincr Eden love 1>><<pass 30>><</link>><<glove>> <br> <</if>> <<if $worn.neck.collared isnot 1 and C.npc.Eden.dom gte 100>> <<symbol "dominance">><<link [[Ask Eden for a collar|Eden Collar]]>><<npcincr Eden love 5>><<npcincr Eden lust 5>><<npcincr Eden dom 5>><</link>><<gglove>><<gglust>><<ggdom>> <br> <</if>> <<if $daily.eden.walk isnot 1>> <<lakeicon>><<link [[Ask Eden to accompany you to the lake|Eden Lake]]>><</link>> <br> <</if>> <<if $daily.eden.search is undefined or $daily.eden.search lt (C.npc.Eden.love / 40)>> <<foresticon>><<link [[Ask Eden to help search the forest (0:30)|Eden Search]]>><<if $daily.eden.search is undefined>><<set $daily.eden.search to 1>><<else>><<set $daily.eden.search += 1>><</if>><</link>> <br> <</if>> <<if Time.monthDay is 31 and $halloween_eden is 1 and $halloween_eden_bought is 1 and !$halloween_eden_candy_given>> <<foodicon "sweets">><<link [[Give Eden the hamper|Eden Halloween]]>><<npcincr Eden love 5>><<npcincr Eden dom 1>><<set $halloween_eden_candy_given to 1>><</link>> <br> <</if>> <<if Time.monthDay is 25 and $christmas_gift_eden is 1 and $christmas_gift_eden_given isnot 1>> <<gifticon "hunting">><<link [[Give Eden the hunting jacket|Eden Jacket]]>><<npcincr Eden love 5>><<npcincr Eden dom 1>><<set $christmas_gift_eden_given to 1>><<set $edencoatjacket to 1>><</link>> <br> <</if>> <<if pcAreArmsBound("any") or $feetuse is "bound" or $worn.feet.name is "ankle cuffs">> <<undobindingsicon>><<link [[Ask Eden to undo your bindings (0:01)|Eden Bindings]]>><<pass 1>><<unbind>><</link>> <br> <</if>> <<if $edenfreedom is undefined>> <<socialiseicon "ask">><<link [[Ask for freedom to return to town|Eden Freedom]]>><</link>> <br> <</if>> <<if $edenfreedom is 1>> <<socialiseicon "ask">><<link [[Ask for freedom to remain in town|Eden Freedom 3]]>><</link>> <br> <</if>> <<if $edenshopping is 1>> <<edenicon "supplies">><<link [[Give Eden the supplies|Eden Supplied]]>><</link>> <br> <</if>> <<if $edenradiointro is 1>> <<techicon "radio">><<link [[Give Eden the radio|Eden Radio Intro]]>><</link>> <br> <</if>> <<if canGiftFood("Eden")>> <<skinicon "give">><<link [[Give Eden food|Eden Gifts List]]>><</link>> <br> <</if>> <br> <<getouticon>><<link [[Go back|Eden Cabin]]>><<endevent>><</link>><<effects>> You take a moment to look around the cabin. <<if $daily.eden.salve is 1 and $daily.eden.soap is 1>> Jars of salve and soap bars rest on the countertop. <<elseif $daily.eden.salve is 1>> Jars of salve rest on the countertop. <<elseif $daily.eden.soap is 1>> Soap bars rest on the countertop. <</if>> <<if $daily.eden.sweep is 1>> The floor is clean. <</if>> <br><br> <<if $edenpillow is 1>> <<edenicon "rug">><<link [[Set up the rug and pillows|Eden Pillow Set]]>><<set $edenpillow to 2>><<npcincr Eden love 1>><<npcincr Eden dom 1>><</link>><<glove>><<gdom "Eden">> <br><br> <</if>> <<if $edencurtains is 1>> <<edenicon "curtains">><<link [[Set up the curtains|Eden Curtains Set]]>><<set $edencurtains to 2>><<npcincr Eden love 1>><<npcincr Eden dom 1>><</link>><<glove>><<gdom "Eden">> <br><br> <</if>> <<if $daily.eden.sew isnot 1 or $edencushions is 1 or $edendesign lt 9 or (Time.season is "winter" and !$edenscarf and $edencoat is 2)>> A sewing kit sits atop a cupboard. <br> <</if>> <<if $daily.eden.sew isnot 1>> <<shopicon "tailor">><<link [[Fix Eden's clothes (0:30)|Eden Fix]]>><<pass 30>><<npcincr Eden love 1>><<set $daily.eden.sew to 1>><<endevent>><</link>><<glove>> <br> <</if>> <<if $edencushions is 1>> <<shopicon "tailor">><<link [[Make the cushions (3:00)|Eden Loveseat Work]]>><<pass 3 hours>><<set $edencushions to 2>><</link>> <br> <<elseif $edenloveseat is 7>> <i>You could visit the shopping centre to buy cushion materials for your loveseat.</i> <br> <</if>> <<if $edencushions is 2 and $edenloveseat is 9 and !$edenblanket>> <<shopicon "tailor">><<link [[Sew a fur blanket (0:30)|Eden Blanket One]]>><<pass 30>><<npcincr Eden love 1>><<npcincr Eden dom 1>><<set $edenblanket to 1>><</link>><<glove>><<gdom "Eden">> <br> <</if>> <<if $edencushions is 2 and $edenloveseat is 9 and $edenblanket is 1>> <<shopicon "tailor">><<link [[Sew a fur blanket (0:30)|Eden Blanket Two]]>><<pass 30>><<npcincr Eden love 1>><<npcincr Eden dom 1>><<set $edenblanket to 2>><</link>><<glove>><<gdom "Eden">> <br> <</if>> <<if $edencushions is 2 and $edenloveseat is 9 and $edenblanket is 2>> <<shopicon "tailor">><<link [[Sew a fur blanket (0:30)|Eden Blanket Three]]>><<pass 30>><<npcincr Eden love 1>><<npcincr Eden dom 1>><<set $edenblanket to 3>><</link>><<glove>><<gdom "Eden">> <br> <</if>> <<if $edenpillow is 2 and ($edendesign lt 9 or !$edendesign)>> <<if !$edendesign>><<set $edendesign to 0>><</if>> <<shopicon "tailor">><<link [[Sew designs in the pillows (0:30)|Eden Design]]>><<pass 30>><<npcincr Eden love 1>><<npcincr Eden dom 1>><<set $edendesign += 1>><</link>><<glove>><<gdom "Eden">> <br> <</if>> <<if Time.season is "winter" and !$edenscarf and $edencoat is 2>> <<edenicon "scarf">><<link [[Make a scarf for Eden (0:30)|Eden Scarf]]>><<pass 30>><<npcincr Eden love 1>><<npcincr Eden dom 1>><<set $edenscarf to 1>><</link>><<glove>><<gdom "Eden">> <br> <</if>> <<if $daily.eden.supplies isnot 1>> <br> Eden's supplies are kept in a cabinet. <br> <<edenicon "supplies">><<link [[Take stock of Eden's supplies (0:30)|Eden Stock]]>><<pass 30>><<npcincr Eden love 1>><<set $daily.eden.supplies to 1>><</link>><<glove>> <br> <</if>> <<if $daily.eden.sweep isnot 1>> <br> A broom and dustpan lie in the corner. <br> <<choreicon "sweep">><<link [[Sweep the floor (0:30)|Eden Sweep]]>><<pass 30>><<npcincr Eden love 1>><<set $daily.eden.sweep to 1>><</link>><<glove>> <br> <</if>> <<if $daily.eden.salve isnot 1 or $daily.eden.soap isnot 1>> <br> A stove sits in the kitchen. <br> <</if>> <<if $daily.eden.salve isnot 1>> <<edenicon "salve">><<link [[Make salves (0:30)|Eden Salve]]>><<pass 30>><<if !$salve>><<set $salve to 1>><<else>><<set $salve += 1>><</if>><<npcincr Eden love 1>><<set $daily.eden.salve to 1>><</link>><<glove>> <br> <</if>> <<if $daily.eden.soap isnot 1>> <<edenicon "soap">><<link [[Make soap (0:30)|Eden Soap]]>><<pass 30>><<if !$soap>><<set $soap to 1>><<else>><<set $soap += 1>><</if>><<npcincr Eden love 1>><<set $daily.eden.soap to 1>><</link>><<glove>> <br> <</if>> <<kitchenicon "stove_old">><<link [[Kitchen|Eden Kitchen]]>><</link>> <br> <br> <<furnitureicon "chair">><<link [[Relax (0:15)|Eden Table]]>><<stress -2>><<endevent>><<pass 15>><</link>><<lstress>> <br><br> <<getouticon>><<link [[Go back|Eden Cabin]]>><<endevent>><</link>> <br><br><<effects>><<getTarget true>> There's a large mattress with animal skin covers. <<if Time.hour gte 0 and Time.hour lte 6>> Eden slumbers between the sheets. <</if>> <br> <<if $nextPassageCheck is "Eden Cabin Bed">> <span class="nextLink"><<bedicon "eden">><<link [[Eden.|Eden Cabin Bed]]>><<endevent>><</link>></span> <<else>> <<bedicon "eden">><<link [[Sleep|Eden Cabin Bed]]>><<endevent>><</link>> <</if>> <br> <<roomoptions>> <<if $syndromeeden gte 1>> <<safehouseEvents>> <</if>> <<bathroomicon "toothbrush">><<link [[Brush teeth (0:05)|Bathroom Brush]]>><<pass 5>><<set $bathroomExit to "Cabin Actions">><</link>> <br> <<pregnancyTest "Eden Cabin">> <br> Your clothes are kept in the corner. <br> <<wardrobeicon>><<link [[Wardrobe|Eden Wardrobe]]>><<endevent>><</link>> <br> <<if playerHasSexToys()>> <<sextoysicon>><<link [[Sex toys|Sextoys Inventory]]>><<set $sextoyInvReturnLink to $passage>><</link>> <br> <</if>> <<if $nextPassageCheck is "Eden Mirror">> <span class="nextLink"><<mirroricon>><<link [[Mirror|Eden Mirror]]>><<preMirror>><<endevent>><</link>></span> <<else>> <<mirroricon>><<link [[Mirror|Eden Mirror]]>><<preMirror>><<endevent>><</link>> <</if>> <br><br> <<if $nextPassageCheck is "Eden Cabin">> <<getouticon>><span class="nextLink"><<link [[Go back|Eden Cabin]]>><<endevent>><</link>></span> <<else>> <<getouticon>><<link [[Go back|Eden Cabin]]>><<endevent>><</link>> <</if>><<if $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<maninit>><<npcspank>><<set $enemyhealth to 600>><<set $enemyhealthmax to 600>><<set $enemyanger += 200>> <</if>> <<effects>> <<effectsman>> <<man>> <<stateman>> <br><br> <<actionsman>> <<if _combatend or $enemyanger lte 0>> <span id="next"><<link [[Next|Eden Cabin Punishment Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Eden Cabin Punishment]]>><</link>></span><<nexttext>> <</if>><<set $outside to 0>><<set $location to "cabin">><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<ejaculation>><<npcincr Eden lust -20>> <<He>> pants from the exertion. "I hope you've learnt your lesson."<<lllust>> <br><br> <<tearful>> you avoid <<his>> gaze. <<elseif $enemyhealth lte 0>> "You ungrateful slut," <<he>> says. "Maybe I should throw you out and leave you to the wolves!" <<He>> winces and holds <<his>> side. "I need to get something for this." <br><br> <<tearful>> you gather yourself. <<elseif $enemyanger lte 0>> <<He>> looks mollified, and releases you. "I hope you've learnt your lesson." <br><br> <<tearful>> you avoid <<his>> gaze. <</if>> <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Eden Cabin]]>><</link>><<endevent>> <<effects>> <<if Time.hour gte 0 and Time.hour lte 6>> You snuggle in beside Eden. <<set $bedGuest to "Eden">> <<else>> You snuggle under the covers. <</if>> <<if $wraith.state and $wraithPrison and ($moonstate is "evening" or $moonstate is _nightstate)>> You feel anxious, and your eyes dart over to the mirror. <</if>> <br><br> <<nightmareCheck "Cabin Sleep">> <<generateSleepLinks "Cabin Sleep">> <<link [[Climb out of bed|Eden Cabin]]>><<unset $bedGuest>><<endevent>><<loadTempHairStyle>><</link>> <br><br><<set _autosavehere to true>> <<sleep>> <<effects>> <<if $wraith.nightmare is 2 and Time.isBloodMoon()>> <<sleepeffects>> You dream of a beautiful figure, cloaked in white, standing under the red moon. It has its arms spread out to you in a welcoming gesture. You can feel its gaze boring into your mind as you step closer. <br><br> It's surrounded by trees, all bending inwards, and floating above a lake. Everything moves around you, and you find yourself hanging above a large ruin. You can't breathe. <br><br> You slowly open your eyes, and sluggishly stand from the bed. You make sure not to wake Eden. Your ears are ringing. <br><br> <<wraithPossess "cabin">> <span class="nextLink"><<link [[Walk.|Eden Cabin]]>><<rainWraith>><</link>></span> <br> <<else>> <<wakingEffects $sleepHoursTotal>> <<if ["dryheaving","nausea"].includes(_wakingEffect)>> <br><br> You slept soundly, but now feel a little rough. <br><br> <<elseif $nightmares gte 1 and $controlled is 0>> <<nightmareWake>> <<else>> <<if ($specialClothesEffects.bimbo.total gte random(100,1000) || $specialClothesEffects.pimp.total gte random(100,1000)) or $arousal gte ($arousalmax / 10) * 9>> <<wetDream>> <<elseif !_wakingEffect>> You sleep soundly. <br><br> <<else>> <br><br> <</if>> <</if>> <<sleepeffects>> <<if _dryheaving is true>> "Hope you're not coming down with something. You should stay in bed," Eden says, watching with a worried expression. "I'll handle breakfast." <<set $daily.eden.breakfast to 1>> <br><br> <<getouticon>><<link [[Get out of bed|Eden Cabin]]>><</link>> <<elseif _sleepinterrupt>> <<npc Eden>><<person1>> <<if $edenNightmareWake>> You wake up to Eden mumbling. <<Hes>> still asleep, but <<he>> looks agitated. <br><br> <<link [[Try to wake <<him>> up|Eden Nightmare]]>><<set $phase to 0>><</link>> <br> <<link [[Ignore <<him>>|Eden Nightmare]]>><<set $phase to 1>><<unset $edenNightmareWake>><</link>> <br> <<else>> <<if _orgasm is true>> Eden starts groping. <<He>> feels the moistness around your crotch. "I've been neglectful," <<he>> says, rubbing up against you. <<else>> You wake up to Eden's groping. <<He>> starts rubbing up against you. <</if>> <br><br> <<link [[Let it happen|Eden Sleep Sex]]>><<set $sexstart to 1>><</link>><<promiscuous1>> <br> <<link [[Push away|Eden Sleep Push]]>><<npcincr Eden love -3>><<npcincr Eden dom -1>><</link>><<lllove>><<ldom>> <br> <</if>> <<elseif !$edenHotSpring and Weather.isFreezing>> <<include "Eden Hot Spring Creation 1">> <<else>> <br><br> <<getouticon>><<link [[Get out of bed|Eden Cabin]]>><<endevent>><</link>> <br><br> <</if>> <</if>> <<set $phase to 0>><<if $sexstart is 1>> <<set $sexstart to 0>> <<consensual>> <<set $consensual to 1>> <<neutral 1>> <<maninit>> <<set $enemytrust += 100>><<set $enemyhealth to 600>><<set $enemyhealthmax to 600>> <<promiscuity1>> <<elseif $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<maninit>><<set $enemyhealth to 600>><<set $enemyhealthmax to 600>><<set $enemyanger += 50>> <</if>> <<effects>> <<effectsman>> <<man>> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Eden Sleep Sex Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Eden Sleep Sex]]>><</link>></span><<nexttext>> <</if>><<set $outside to 0>><<set $location to "cabin">><<effects>> You shove <<him>> away from you. <<if C.npc.Eden.love - (C.npc.Eden.lust * 2) gte 1>> <<He>> grumbles something and rolls over. <<Hes>> asleep within moments. <br><br> <<link [[Back to sleep|Eden Cabin Bed]]>><</link>> <br> <<link [[Get up|Eden Cabin]]>><<endevent>><</link>> <br> <<else>> <<He>> gropes with more force. <br><br> <<link [[Next|Eden Sleep Sex]]>><<set $molestationstart to 1>><</link>> <br> <</if>><<set $outside to 0>><<set $location to "cabin">><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<ejaculation>><<npcincr Eden lust -20>> <<He>> kisses you on the neck, rolls over, and goes to sleep.<<lllust>> <<elseif $enemyhealth lte 0>> "You ungrateful slut," <<he>> says. "Maybe I should throw you out and leave you to the wolves!" <<He>> winces and holds <<his>> side. "I need to get something for this." <br><br> <<tearful>> you hide beneath the covers. <<elseif $finish is 1>> <<He>> rolls over. You hear <<him>> snore moments later. <</if>> <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Eden Cabin Bed]]>><</link>><<set $outside to 0>><<set $location to "cabin">><<effects>> <<if $phase is 0>> /* Try to wake up */ You go to wake <<him>>, your hand brushing against <<his>> shoulder. <br><br> Eden wakes up with a start and grabs you by the <<= $settings.asphyxiaLevel gte 3 ? "neck" : "wrists">>, pinning you to the bed. <<His>> hands squeeze <<= $settings.asphyxiaLevel gte 3 ? "around your throat. <span class='red'>You can't breathe!</span>" : "you, preventing you from moving.">> <br><br> <<He>> doesn't seem to recognise you. You <<= $settings.asphyxiaLevel gte 3 ? "choke out a gasp" : "cry out in pain">>, which brings <<him>> back to <<his>> senses.<<pain 4>><<gpain>> <br><br> <<He>> lets you go and glares at you. "Don't startle me.<<if C.npc.Eden.love gte 150>> You should know better by now.<</if>>" <br><br> <<He>> rolls over and goes back to sleep. You wonder if you'll have bruises tomorrow.<<= $settings.asphyxiaLevel gte 3 ? "<<bruise neck>>" : "<<bruise leftarm>><<bruise rightarm>>">> <br><br> You manage to fall back into an uneasy sleep. <<else>> /* Ignore */ You do your best to go back to sleep. <</if>> <br><br> <<link [[Next|Eden Cabin Bed]]>><</link>> <br><<set $outside to 0>><<set $location to "cabin">><<effects>> <<if $phase is 0>> /* Ask about last night */ <<if $speech_attitude is "meek">> You look down at the floor. "W-were you having a bad dream last night?" <<elseif $speech_attitude is "bratty">> You cross your arms and stare at <<him>>. "What was last night all about?" <<else>> "Did you have a nightmare last night?" you ask. <</if>> <br><br> <<He>> looks at you and your bruises. <<He>> scowls. <<if C.npc.Eden.love gte 150>> "Bad hunt," <<he>> says, and storms off before you can say anything else. <<else>> <<He>> grunts and turns away from you. <</if>> <br><br> You rub your aching <<= $settings.asphyxiaLevel gte 3 ? "neck" : "wrists">>. <<else>> /* Pretend nothing happened */ You think better of asking <<him>>. <</if>> <br><br> <<link [[Next|Eden Cabin]]>><<endevent>><</link>> <br><<effects>> You look through Eden's wardrobe. <br><br> <<set $wardrobe_location to "edensCabin">> <<wardrobeSelection>> <<wardrobewear>> <div id="wardrobeExits"><<wardrobeExits>></div> <<wardrobe>><<effects>> You reach for the door, but Eden's voice stops you in your tracks. <br><br> "Wait," <<nnpc_he "Eden">> says. "You shouldn't go out like that." <br><br> <<getinicon>><<link [[Stay inside|Eden Cabin]]>><<endevent>><</link>> <br> <<getouticon>><<link [[Leave|Eden Clearing]]>><<set $daily.eden.exposed to 1>><</link>><<effects>> <<if $speech_attitude is "meek">> "I-If it's no trouble, could you untie me please?" you ask. <<elseif $speech_attitude is "bratty">> "It may have escaped your notice, but I'm tied up. Could you help?" you ask. <<else>> "Can you untie me?" you ask. <</if>> Without a word, Eden picks up a knife and slashes your bindings. <br><br> <<if $bus is "edenclearing">> <<link [[Next|Eden Clearing]]>><<endevent>><</link>> <br> <<else>> <<link [[Next|Eden Cabin]]>><<endevent>><</link>> <br> <</if>><<effects>> You set the new rug by the fireplace and arrange the pillows around it. When you're done, you step back and take a look at your work. The setup looks quite cosy, and you feel a sense of accomplishment. You're sure that Eden would be satisfied with your choice. <br><br> <<link [[Next|Eden Cabin]]>><<endevent>><</link>><<effects>> You spend some time taking down the current worn out curtains and replacing them with the new ones. After finishing, you step back and look over the result of your efforts. They certainly add a touch of charm to the cabin, and you smile at the achievement. <br><br> The only thing left to do is to work with Eden to make the coat stand. <br><br> <<link [[Next|Eden Cabin]]>><<endevent>><</link>><<effects>> <<if $bus is "edenclearing">> Eden brings over some wooden rods of varying sizes. <<else>> Eden leads you outside and brings over some wooden rods of varying sizes. <</if>> "We'll need to sand these," <<he>> says, handing you some sand paper. You take a seat by the porch and pick up one of the rods, taking note of its coarse wooden texture. <br><br> It takes some elbow grease, but you both eventually file all the rods down smoothly. With that done, you help Eden construct the rest of the coat stand, starting from creating its base, to drilling holes in its top to set the coat arms. <br><br> As the final touch, Eden lacquers the stand and leaves it to dry overnight. <br><br> <<link [[Next|Eden Clearing]]>><<endevent>><</link>><<set $outside to 0>><<set $location to "cabin">><<effects>> /* eden is already generated <<npc Eden>><<person1>>*/ <<if $speech_attitude is "meek">> "Could you follow me to the lake please?" you ask. <<elseif $speech_attitude is "bratty">> "I feel like walking to the lake. Wanna come?" you ask. <<else>> "Want to join me for a walk to the lake?" you ask. <</if>> <<if $exposed gte 1>> Eden's eyes scan over your exposed form. "I'm not letting you leave like that. Put some clothes on." <br><br> <<if $bus is "edenclearing">> <<link [[Next|Eden Clearing]]>><<endevent>><</link>> <br> <<else>> <<link [[Next|Eden Cabin]]>><<endevent>><</link>> <br> <</if>> <<else>> <<set $daily.eden.walk to 1>> Eden considers for a moment, then shrugs. "Not like I had anything better planned anyway." <br><br> <<if $edenraftintro is 1>> <<if $speech_attitude is "meek">> "O-oh, wait. I just remembered," you say. <<elseif $speech_attitude is "bratty">> "Oh, almost forgot," you say. <<else>> "Wait, I just remembered something," you say. <</if>> <br> You hand Eden the inflatable raft you bought at the shopping centre. <br> <<He>> looks at it, reading over the box cover. "An inflatable raft?" <<he>> asks. <br><br> <<if $speech_attitude is "meek">> "Y-Yes. We could use it at the lake. The <<if Time.season is "autumn">>falling autumn leaves<<elseif Time.hour gte 6 and Time.hour lte 8>>sunset<<else>>sky<</if>> would look beautiful over the water." <<elseif $speech_attitude is "bratty">> "Yup. I was thinking we could use it at the lake. Besides, we could see the <<if Time.season is "autumn">>falling autumn leaves<<elseif Time.hour gte 6 and Time.hour lte 8>>sunset<<else>>sky<</if>> over the water." <<else>> "Yes. I was thinking we could use it at the lake. Besides, we could see <<if Time.season is "autumn">>falling autumn leaves<<elseif Time.hour gte 6 and Time.hour lte 8>>sunset<<else>>sky<</if>> over the water." <</if>> <<He>> peeks inside the box for a few seconds before nodding in response. You smile at <<him>> in gratitude and start walking to the lake. <br><br> <</if>> <<if $edenraftintro is 1>> <<link [[Forest lake (0:30)|Eden Raft Intro]]>><<pass 30>><<set $edenlake to 1>><</link>> <<else>> <<link [[Forest lake (0:30)|Eden Forest Lake]]>><<pass 30>><<set $edenlake to 1>><</link>> <</if>> <</if>><<set $outside to 0>><<set $location to "cabin">><<effects>> /* eden is already generated <<npc Eden>><<person1>>*/ <<if $speech_attitude is "meek">> "Could you help me search the forest please?" you ask. <<elseif $speech_attitude is "bratty">> "I wanna search the forest. Feel like joining?" you ask. <<else>> "Want to help me search the forest?" you ask. <</if>> <br><br> Eden thinks for a second, then nods. "If you must, I'll accompany you." <br><br> <<link [[Search the forest (0:30)|Eden Forest Search]]>><<pass 30>><</link>> <br><br><<set $outside to 1>><<set $location to "cabin">><<effects>><<set $bus to "edenclearing">> <<npc Eden>><<person1>> You are in the clearing outside Eden's cabin. The surrounding trees are so huge that you have to crane your neck to see the sky. There's a small farm plot where Eden grows vegetables. Behind the cabin is a spring at the base of a cliff. <br><br> <<if $foresthunt gte 1>> <span class="lblue">You're safe at Eden's cabin. Whatever was hunting you will have given up.</span> <br><br> <<set $foresthunt to 0>> <</if>> <<if Time.hour gte 7>> <<edenFluidsCheck>> <</if>> <<if $edenCagedEscape and Time.hour gte 7>> Eden looks up as you approach the cabin. <<He>> does a double take when <<he>> sees you. "There you are!" <<he>> shouts, quickly making <<his>> way over to you. "You're in so much trouble, you disobedient whore." <br><br> Eden marches you inside before you can protest. A cage sits ominously in the corner. <br><br> <<link [[Next|Eden Caged Intro]]>><<set $phase to 2>><</link>> <br> <<elseif edenFreedomStatus() gte 1 and Time.hour gte 6>> <<edenTrackers>> <<npcincr Eden love -1>> Eden looks up as you approach the cabin. <<He>> stops what <<hes>> doing and rushes over to you. <<if $edenPreyEscaped>><<unset $edenPreyEscaped>> "Don't think I forgot about our game. You weren't supposed to escape me," <<he>> grumbles. "You shouldn't have been gone so long, either. Where the hell have you been?" <<else>> "Where have you been?" <<he>> asks, grabbing your shoulders. "I was so worried about you." <</if>> <br><br> <<link [[Apologise|Eden Return Apologise]]>><<npcincr Eden love 1>><<set $phase to 0>><</link>> <br> <<link [[Explain|Eden Return Apologise]]>><<set $phase to 1>><</link>> <<elseif $edenPreyEscaped and Time.hour gte 6>><<unset $edenPreyEscaped>> You see Eden polishing <<his>> gun. Your arrival prompts a glare from <<him>>. <br> "You weren't supposed to escape me," <<he>> says, looking you up and down. "I'll fuck you raw if I have to. Next time, you're mine." <br> <<if $worn.neck.collared isnot 1 and $edenaskcollar isnot 1>> <<He>> mutters something under <<his>> breath and starts back on <<his>> work, but <<his>> brow furrows, as if <<he>> just realised something. <br> "Where's your collar?" <<he>> asks, <<his>> voice growing concerned. <<He>> sets <<his>> gun down and walks towards you. <br><br> <<if $edencollarremove is 1>> <<link [[Lie and ask for another one|Eden Collar Ask]]>><<npcincr Eden love 5>><<npcincr Eden lust 5>><<npcincr Eden dom 5>><</link>><<gglove>><<gglust>><<ggdom>> <<else>> <<link [[Explain and ask for another one|Eden Collar Ask]]>><<npcincr Eden love 5>><<npcincr Eden lust 5>><<npcincr Eden dom 5>><</link>><<gglove>><<gglust>><<ggdom>> <</if>> <br> <<link [[Just say you removed it|Eden Collar Remove]]>><</link>> <br> <<else>> <<He>> stares at you for a moment longer, before returning to <<his>> business. <br><br> <<link [[Next|Eden Clearing]]>><<endevent>><</link>> <br> <</if>> <<elseif $worn.neck.collared isnot 1 and $edenaskcollar isnot 1 and Time.hour gte 6>> As you walk past Eden, <<he>> momentarily stops <<his>> work, turning to look at you. <<His>> eyes zero in on your neck. <br><br> "Where's your collar?" <<he>> asks. <br><br> <<if $edencollarremove is 1>> <<link [[Lie and ask for another one|Eden Collar Ask]]>><<npcincr Eden love 5>><<npcincr Eden lust 5>><<npcincr Eden dom 5>><</link>><<gglove>><<gglust>><<ggdom>> <<else>> <<link [[Explain and ask for another one|Eden Collar Ask]]>><<npcincr Eden love 5>><<npcincr Eden lust 5>><<npcincr Eden dom 5>><</link>><<gglove>><<gglust>><<ggdom>> <</if>> <br> <<link [[Just say you removed it|Eden Collar Remove]]>><</link>> <<elseif $stress gte $stressmax>> <<if isPregnancyEnding()>> <<pregnancyPassout "edencabin">> <<else>> <<link [[Everything fades to black...|Eden Cabin Passout]]>><</link>> <</if>> <<elseif Time.hour is 17 and $exposed gte 1 and !$daily.eden.exposed>> Eden walks up to the cabin door, turning back to you just before <<he>> enters. <<He>> eyes your <<lewdness>> for a moment. "You should head inside." <br><br> <<link [[Follow Eden|Eden Cabin]]>><<endevent>><</link>> <br> <<link [[Stay outside|Eden Clearing]]>><<set $daily.eden.exposed to 1>><<endevent>><</link>> <<elseif ($exposed gte 2 and !hasSexStat("exhibitionism", 5) or $exposed gte 1 and !hasSexStat("exhibitionism", 4)) and isLoveInterest("Eden") and (Time.hour lte 8 or $daily.eden.hunting is 1 or Time.hour gte 17)>> You don't want to be seen like this when Eden's not around! You rush to your clothes. <br><br> <<link [[Next|Eden Wardrobe]]>><<endevent>><</link>> <<else>> <<if $exposed is 1 and hasSexStat("exhibitionism", 4) or $exposed is 2 and hasSexStat("exhibitionism", 5)>> <span class="lewd">With your <<lewdness>> on display, you can't help but feel a primal thrill.</span> <br><br> <<elseif $exposed gte 1>> <span class="lewd">Your <<lewdness>> embarrasses you, but it's alright if <<if Time.hour lte 10 or (Time.hour gte 11 and Time.hour lte 14 and $daily.eden.hunting isnot 1) or Time.hour gte 15>> Eden's here. <<else>> you're alone. <</if>> </span> <br><br> <</if>> <<if Weather.precipitation is "rain">> Rainwater drips from the branches above. <br><br> <<elseif Weather.precipitation is "snow">> Snow weighs down the branches above. <br><br> <</if>> <<if edenFreedomStatus() is 0>> <<edenTrackers>> <</if>> <<if Time.hour gte 9 and Time.hour lte 10>> Eden is tending the crops. <br><br> <<edenlust>> <<if Time.monthName is "November" and $edenprepare is 1>> <<choreicon "fix">><<link [[Fix the cabin|Cabin Eden Prepare]]>><</link>> <br><br> <</if>> <<getinicon>><<link [[Approach Eden|Clearing Eden Actions]]>><</link>> <br><br> <<clearingactions>> <<elseif Time.hour gte 11 and Time.hour lte 14>> <<if $daily.eden.hunting isnot 1>><<set $daily.eden.hunting to 1>> <<edenpreystart>> <<if _edenPreyEvent>> Eden approaches you. <<if $edenPrey gte 1>> "Come on," <<he>> says. "We're going on another 'hunting' trip." <<His>> suggestive tone tells you exactly what <<he>> has in mind. <<if _virginityPresent>> <br><br> To drive the point home, Eden snakes <<his>> free hand down your waist, grabbing your crotch. "This time," <<he>> says in a husky whisper, "I'm going to devour you."<<arousal 100>><<garousal>> <</if>> <<else>> <<He>> eyes you up and down<<if _virginityPresent>>, focusing on your crotch<</if>>. The silence coupled with <<his>> lecherous gaze makes you uneasy. <br> <<if _virginityPresent>> "I think it's time we did something about that virginity of yours," <<he>> says. "I've got something special planned. How about it?" <<else>> "I think it's time we did some unwinding," <<he>> says. "I have a nifty idea for the two of us. How about it?" <</if>> <</if>> <br> <<He>> doesn't wait for your response as <<he>> rests a hand on the small of your back. <<He>> tries pushing you away from the cabin. <br><br> <<link [[Go along with it|Eden Prey Yes]]>><<set $phase to 1>><<npcincr Eden love 1>><</link>><<glove>> <br> <<link [[Resist|Eden Prey No]]>><<set $phase to 1>><<npcincr Eden love -1>><<npcincr Eden dom -1>><</link>><<llove>><<ldom>> <br> <<else>> Eden exits the cabin,<<if Time.season is "winter" and $edenscarf is 1>> scarf around <<his>> neck and<</if>> gun in hand. "I'm going hunting. Stay near the cabin while I'm gone." <br><br> <<link [[Nod|Eden Hunting]]>><<set $phase to 0>><</link>> <br> <<link [[Ask to go along|Eden Hunting]]>><<set $phase to 1>><</link>> <br> <</if>> <<else>> Eden is out hunting. <br><br> <<if Time.monthName is "November" and $edenprepare is 1>> <<choreicon "fix">><<link [[Fix the cabin|Cabin Eden Prepare]]>><</link>> <br><br> <</if>> <<clearingactions>> <</if>> <<elseif Time.hour is 15>> <<if $rng gte 91 and !$edenhurt>> <<set $edenhurt to 1>> <<person1>> The sudden snapping of a twig draws your attention to the treeline. Eden emerges from the forest, <<his>> clothes looking ragged and torn in various places. <<His>> rifle, usually slung over <<his>> shoulder, is grasped tightly in <<his>> hand. You gasp when you see the state <<hes>> in, and flinch when you notice the claw shaped marks covering <<his>> arms and chest. <br><br> <<if $speech_attitude is "meek">> "You're hurt! W-what happened?" You rush over to examine <<his>> wounds, tears brimming in your eyes. <<elseif $speech_attitude is "bratty">> "You're hurt! How could you be so reckless?" You stomp over to examine <<his>> wounds. <<else>> "You're hurt!" you cry, and rush over to examine <<his>> wounds. <</if>> <br><br> Eden brushes your concern off with a wave of <<his>> hand. "I'm fine," <<he>> says. "Ran into some wolves, but I scared them off." <<He>> wipes some sweat from <<his>> face and brushes a few clumps of dirt off <<his>> pants. "I'm going to fix myself up." Making <<his>> way to the cabin door, <<he>> pauses just as <<he>> reaches for the handle. Turning to face you, <<he>> gives you a wary look. "Better get in. Don't want you getting hurt too." <br><br> <<link [[Offer to patch wounds (0:20)|Eden Wounds]]>><<pass 20>><<npcincr Eden love 1>><<npcincr Eden dom 1>><</link>><<glove>><<gdom>> <br> <<link [[Nod|Eden Wounds Nod]]>><</link>> <<else>> Eden is skinning prey. The smell makes you queasy. <br><br> <<edenlust>> <<if Time.hour is 15 and $daily.eden.lunch isnot 1>> <<if $housekeeping gte 100>> Eden must be hungry after all that hunting. Maybe <<he>>'d appreciate some lunch. <br> <<foodicon "eat">><<link [[Make lunch for Eden (0:30)|Eden Lunch]]>><<pass 30>><<npcincr Eden love 1>><<npcincr Eden dom 1>><<set $daily.eden.lunch to 1>><</link>><<glove>><<gdom>> <br><br> <<else>> Eden must be hungry after all that hunting. You think about making <<him>> lunch, <span class="blue">but lack the housekeeping confidence to whip anything up.</span> <br><br> <</if>> <</if>> <<if Time.monthName is "November" and $edenprepare is 1>> <<choreicon "fix">><<link [[Fix the cabin|Cabin Eden Prepare]]>><</link>> <br><br> <</if>> <<getinicon>><<link [[Approach Eden|Clearing Eden Actions]]>><</link>> <br><br> <<clearingactions>> <</if>> <<elseif Time.hour is 16>> <<if C.npc.Eden.lust gte 26 and $daily.eden.chopLust isnot 1>><<set $daily.eden.chopLust to 1>> <!-- <<npc Eden>><<person1>> -->Eden is chopping firewood. <<He>> stretches <<his>> back and spots you watching <<him>>. "I could use a break," <<he>> says. <<He>> marches towards you, covered in sweat and axe still in hand. <<He>> can't realise how menacing <<he>> looks. <<if C.npc.Eden.dom gte 75>> <<He>> drops the axe and pulls you into a deep kiss. <<takeKissVirginity "Eden" `($syndromeeden gte 1?"loveInterest":"romantic")`>> <<else>> <<He>> drops the axe and tries to pull you close to <<him>>. <</if>> <br><br> <<link [[Allow it|Eden Firewood Sex]]>><<set $sexstart to 1>><<npcincr Eden love 1>><<npcincr Eden dom 1>><</link>><<promiscuous1>> <br> <<link [[Refuse|Eden Firewood Refuse]]>><<npcincr Eden love -3>><<npcincr Eden dom -1>><</link>><<lllove>><<ldom>> <br> <<else>> Eden is chopping firewood. <br><br> <<edenlust>> <<if Time.monthName is "November" and $edenprepare is 1>> <<choreicon "fix">><<link [[Fix the cabin|Cabin Eden Prepare]]>><</link>> <br><br> <</if>> <<getinicon>><<link [[Approach Eden|Clearing Eden Actions]]>><</link>> <br><br> <<clearingactions>> <</if>> <<else>> Eden is indoors. <br><br> <<if Time.monthName is "November" and $edenprepare is 1>> <<choreicon "fix">><<link [[Fix the cabin|Cabin Eden Prepare]]>><</link>> <br><br> <</if>> <<clearingactions>> <</if>> <</if>><<effects>> <<clearingedenactions>><<effects>> <<if $phase is 0>> <<if $speech_attitude is "meek">> "I-I'm sorry," you say. "I was a little busy." <<elseif $speech_attitude is "bratty">> "I was busy," you say. "I didn't mean for you to worry." <<else>> "Sorry," you say. "I was busy." <</if>> <<elseif $phase is 1>> <<if $speech_attitude is "meek">> "I-I was a little busy," you say. <<elseif $speech_attitude is "bratty">> "Stop freaking out," you say. "I was just a little busy." <<else>> "I was busy," you say. <</if>> <</if>> <br><br> Eden sighs and pulls you into a hug. <<He>> holds you for a moment, before releasing you. "I need you here," <<he>> says, "so don't be late next time." <br><br> You nod, and <<he>> gives you one last look before walking off. <br><br> <<if $bus is "edencabin">> <<link [[Next|Eden Cabin]]>><<endevent>><</link>> <<elseif $bus is "edenclearing">> <<link [[Next|Eden Clearing]]>><<endevent>><</link>> <</if>><<effects>> <!-- <<npc Eden>><<person1>> --> "Why would you want to leave?" <<he>> asks. "You have everything you need here." <br><br> <<if $speech_attitude is "meek">> "B-but if I'm gone from town too long," you say, "people will come looking for me here." <<elseif $speech_attitude is "bratty">> "Do you think my absence isn't noticed?" you say. "They'll come looking for me here." <<else>> "If I keep missing school," you say, "people will start looking for me." <</if>> <br><br> <<if C.npc.Eden.love gte 20>> <<set $edenfreedom to 1>><<set $edenshopping to 0>><<edenTrackers>> <<He>> seems conflicted. "I suppose it was too much to hope you'd be content stuck here. Fine, you can go back to town. Make sure you get your little bottom back here though. <span class="gold">If you're gone longer than a day you'll worry me sick.</span> I'd have to come find you." <br><br> <<link [[Hug|Eden Freedom 2]]>><<set $phase to 0>><<npcincr Eden love 1>><</link>><<glove>> <br> <<link [[Nod|Eden Freedom 2]]>><<set $phase to 1>><</link>> <br> <<else>> <<He>> shakes <<his>> head. "They won't find us. I know these woods, and will protect what's mine if necessary." <br><br> <i>If <<he>> liked you more <<he>> might be more amenable to your request.</i> <br><br> <<if $bus is "edenclearing">> <<link [[Next|Eden Clearing]]>><<endevent>><</link>> <br> <<else>> <<link [[Next|Eden Cabin]]>><<endevent>><</link>> <br> <</if>> <</if>><<effects>> <<if $phase is 0>> You hug Eden, taking <<him>> by surprise and almost knocking <<him>> over. <br><br> <<if $speech_attitude is "meek">> "Thank you," you say, pressing your face against <<him>>. <<elseif $speech_attitude is "bratty">> "It's not that I need your permission or anything," you say. "It's just easier this way." <<else>> "Thank you," you say. <</if>> <br><br> <<He>> squeezes you back. "One more thing. I make weekly supply runs into town to pick up essentials. You might as well do it for me. I hate that place. Alright, you can let go now." <<elseif $phase is 1>> "One more thing," <<he>> says. "I make weekly supply runs into town to pick up essentials. You may as well do it for me if you're going anyway. I hate that place." <<else>> You hug Eden. <<He>> expects it and catches you. <<if $speech_attitude is "meek">> "Thank you," you say, pressing your face against <<him>>. <<elseif $speech_attitude is "bratty">> "It's not that I need your permission or anything," you say. "It's just easier this way." <<else>> "Thank you," you say. <</if>> <<He>> squeezes you back. <</if>> <br><br> <<if $bus is "edenclearing">> <<link [[Next|Eden Clearing]]>><<endevent>><</link>> <<else>> <<link [[Next|Eden Cabin]]>><<endevent>><</link>> <</if>><<location "forest">><<effects>> You walk to the edge of the clearing and gaze into the darkness of the forest. Are you sure you want to escape? <br><br> <<link [[Yes|Forest]]>><<endevent>><<if $edenFluidsCheck is "clean">><<set $edenFluidsCheck to "cleanLeave">><<set $edenescape to true>><</if>><</link>> <br> <<link [[No|Eden Clearing]]>><<endevent>><</link>> <br><<effects>> <!-- <<npc Eden>><<person1>> -->"You already get a whole day," <<he>> says. "You want to sleep in someone else's bed, is that it?" <br><br> <<if $speech_attitude is "meek">> "N-no," you say. "You know I'm yours alone." <<elseif $speech_attitude is "bratty">> "I'm not a slut," you say. "But sometimes I need to be away for longer." <<else>> "No!" you say. "It's just that braving the woods every day for school is dangerous." <</if>> <br><br> <<if C.npc.Eden.love gte 100>> <<set $edenfreedom to 2>><<edenTrackers>> <<He>> looks about to argue, but sighs in resignation. "Fine. I'm used to being alone. <span class="gold">You can leave for up to a week.</span> If you're gone longer, I'll hunt you down." <br><br> <<link [[Hug|Eden Freedom 2]]>><<set $phase to 2>><<npcincr Eden love 1>><</link>><<glove>> <br> <<if $bus is "edenclearing">> <<link [[Nod|Eden Clearing]]>><<endevent>><</link>> <<else>> <<link [[Nod|Eden Cabin]]>><<endevent>><</link>> <</if>> <<else>> <<He>> shakes <<his>> head. "That town is dangerous. The less time you spend there the better." <br><br> <i>If <<he>> liked you more <<he>> might be more amenable to your request.</i> <br><br> <<if $bus is "edenclearing">> <<link [[Next|Eden Clearing]]>><<endevent>><</link>> <<else>> <<link [[Next|Eden Cabin]]>><<endevent>><</link>> <</if>> <</if>><<set $outside to 1>><<set $location to "cabin">><<effects>> <<npc Eden>><<person1>> Eden leads you back to the safety of <<his>> cabin. <br><br> <<link [[Next|Eden Cabin]]>><<endevent>><</link>> <br><<effects>> <<if $speech_attitude is "meek">> "I-I was wondering if we could get a rug. And maybe some pillows," you ask. <<elseif $speech_attitude is "bratty">> "The place is a little bare. How about getting a rug and some pillows?" you ask. <<else>> "Could we get a rug and some pillows for the cabin?" you ask. <</if>> <br><br> <<if C.npc.Eden.love gte 60>><<set $edenfurniture to 1>> /* eden is already generated <<npc Eden>><<person1>> */ Eden furrows <<his>> eyebrows at your question. "I'm not going to town," <<he>> says, turning away from you. <br> "But you don't have to go. I'll do it," you say. <br><br> <<He>> sighs at your words, looking away in consideration. "Fine," <<he>> says, "but don't go overboard." <br> You smile at <<him>> in thanks, leaving <<him>> be. <br><br> <<else>> /* eden is already generated <<npc Eden>><<person1>>*/ Eden narrows <<his>> eyes, looking annoyed. "There's nothing wrong with my cabin." <br><br> <<He>> turns away from you, signalling that the conversation is over. <br><br> <i>If <<he>> liked you more <<he>> might be more amenable to your request.</i> <br><br> <</if>> <<if $bus is "edenclearing">> <<link [[Next|Eden Clearing]]>><<endevent>><</link>> <<else>> <<link [[Next|Eden Cabin]]>><<endevent>><</link>> <</if>><<effects>> <<if $speech_attitude is "meek">> "I-I was wondering if we could get new curtains. And a coat stand," you ask. <<elseif $speech_attitude is "bratty">> "The cabin still looks bare. How about some new curtains and a coat stand?" you ask. <<else>> "Could we get some new curtains and a coat stand?" you ask. <</if>> <br><br> <<if C.npc.Eden.love gte 120>><<set $edenfurniture to 2>> /* eden is already generated <<npc Eden>><<person1>>*/ Eden sighs. "You already went shopping." <br> "But it's just for two more things," you say. <br><br> For a few seconds, Eden shifts <<his>> gaze to the worn out curtains hanging from the cabin windows, before <<his>> eyes land back on you. "Fine," <<he>> says, albeit more reluctantly than last time. "But we're making the coat stand." <br> You smile at <<him>> in thanks, leaving <<him>> be. <br><br> <<else>> <!-- <<npc Eden>><<person1>> --> Eden shakes <<his>> head, turning away from you. "We have enough furniture." <br><br> Seems the conversation is over. <br><br> <i>If <<he>> liked you more <<he>> might be more amenable to your request.</i> <br><br> <</if>> <<if $bus is "edenclearing">> <<link [[Next|Eden Clearing]]>><<endevent>><</link>> <<else>> <<link [[Next|Eden Cabin]]>><<endevent>><</link>> <</if>><<effects>> <<if $speech_attitude is "meek">> "I-I was wondering if we could make a loveseat," you ask. <<elseif $speech_attitude is "bratty">> "This place needs a final touch. How about making a loveseat?" you ask. <<else>> "Could we make a loveseat for the cabin?" you ask. <</if>> <br><br> <<if C.npc.Eden.love gte 180>><<set $edenfurniture to 3>><<set $edenloveseat to 1>> /* eden is already generated <<npc Eden>><<person1>>*/ Eden goes silent for a moment. "It's a lot of work," <<he>> warns. <br> <<if $speech_attitude is "meek">> "I-I don't mind," you say. <<elseif $speech_attitude is "bratty">> "So?" you ask. <<else>> "That's fine," you say. <</if>> <br><br> "Fine," <<he>> says. "Tell me when you want to start." <br> You smile at <<him>> in gratitude. <br><br> <i>The loveseat will take some time to complete.</i> <br><br> <<else>> /* eden is already generated <<npc Eden>><<person1>>*/ Eden shakes <<his>> head, turning away from you. "We have enough furniture." <br><br> Seems the conversation is over. <br><br> <i>If <<he>> liked you more <<he>> might be more amenable to your request.</i> <br><br> <</if>> <<if $bus is "edenclearing">> <<link [[Next|Eden Clearing]]>><<endevent>><</link>> <<else>> <<link [[Next|Eden Cabin]]>><<endevent>><</link>> <</if>><<effects>> <<switch $edenloveseat>> <<case 1>> Grabbing some leftover wood, you and Eden start cutting out the side arm rests, drilling in some holes and attaching them together with screws. Next, you cut out the base stretcher for the arm rests, then work on cutting out the front and back boards. <br> With that done, you attach the arm rest to the stretcher, completing the first part of your project. <<case 2>> This time, the two of you cut out the seat base, creating notches in the inner support. Next, you cut out the seat slats, and start assembling them together by placing the slats in the notches. <br> To finish it up, you join the outer frame with some superglue and a few screws. <<case 3>> Now, you and Eden place your inner support planks and screw them in, aligning the cleats and attaching them with screws. <br> You do the same with attaching the slats in the notches. The loveseat's foundation is halfway done. <<case 4>> You and Eden turn your attention to creating the upright back of the loveseat. <br> It's thankfully a similar process of cutting out notches and placing the supporting slats inside. <<case 5>> With most of the loveseat's foundation complete, you and Eden spend your time sanding the wood down in the clearing. <br> Though it's not the easiest process in the world, you know that sanding before the foundation is assembled would save you a lot of time in the long run. <<case 6>> Now that the foundation's been sanded, you and Eden start putting it all together. You position the seats, securing them by drilling in some screws in the corner. <br> Next, you join the upright back, once again securing them in with screws. You and Eden step back and take a look at your work. The only thing missing now are some cushions. <br><br> <i>You can buy materials in the shopping centre.</i> <<case 7>> Using the foam cushions as a template, you cut the batting and attach them to the cushions with superglue. Next, you cut out the cloth and start sewing together some cushion covers. <br> With that done, you place the covers around your foam base, completing your cushions. <<case 8>> As the last step, you place your cushions on top of the frame, completing your loveseat. Knowing that this wasn't an easy project to tackle, looking at your work fills you with a sense of pride. <br> You glance around the cabin one more time. With all your new additions, the cabin's looking better than ever, and you smile to yourself in satisfaction for a job well done. <</switch>> <br><br> <<if $edenloveseat isnot 7>> <<link [[Next|Eden Cabin]]>><<endevent>><<set $edenloveseat += 1>><</link>> <<else>> <<link [[Finish the loveseat|Eden Loveseat Work]]>><<set $edenloveseat += 1>><</link>> <</if>><<effects>> You grab a few animal pelts and start sewing. It's slow work, but you get some of the blanket done. <br><br> <<link [[Next|Cabin House Actions]]>><</link>><<effects>> You grab more pelts and sew them together. The blanket's getting bigger now. <br><br> <<link [[Next|Cabin House Actions]]>><</link>><<effects>> /* eden is already generated <<npc Eden>><<person1>>*/ You sew on the remaining pelts and look over your work. Running your hands over the soft fur, you think about where to place it. Looking around the cabin, your eyes are drawn to the loveseat. You drape it over, stepping back and nodding in satisfaction at your work. Eden will be happy when <<nnpc_he "Eden">> sees this. <br><br> <<link [[Next|Cabin House Actions]]>><</link>><<effects>> <<endevent>><<npc "Eden">><<person1>> <<switch $edendesign>> <<case 1>> You grab one of the pillows and start sewing a pattern into its fabric. Wanting your ultimate design to be a sunset on the lake, you start by sewing in the image of an orange sun. <<case 2>> Grabbing the pillows, this time you focus on the water, giving it a glowing orange hue. You also add some swans in for more detail. <<case 3>> Taking the pillows again, you turn your attention to the sky. You alternate between yellow and orange threads, until your project is complete. Eden would be happy when <<he>> sees this. <<case 4>> You grab another pillow, thinking about what design you'd work on this time. Eventually, you settle on sewing in the trees of the forest. Grabbing some brown thread, you start working on the tree trunks, making sure to pack them tightly together. <<case 5>> You grab the pillow again and, using some green thread, start sewing in the leaves. You make sure to alternate between different shades for extra detail in your design. <<case 6>> Grabbing the pillow, you finish the landscape by sewing in the ground. When you're done, you place it next to the other pillow you previously worked on. The sight of a job well done makes you satisfied, and Eden would be happy when <<he>> sees this. <<case 7>> You grab another pillow and spend some time wondering what your next design will be. Looking around, inspiration strikes. You decide on sewing the cabin clearing. Taking some thread, you spend some time sewing in the cabin, working your way through all the small details. <<case 8>> Grabbing the pillow again, you start working on sewing in the garden plots and spring. You find yourself peering out the window at times for reference. <<case 9>> Taking the pillow, you finish the scene by focusing on the sky. It takes a bit, but when you're done, you place it with all the other pillows you worked on. Seeing them fills you with a sense of accomplishment, and you're sure Eden would be happy too. <</switch>> <br><br> <<link [[Next|Cabin House Actions]]>><<endevent>><</link>><<effects>> You grab some fleece and, folding it in half, start sewing it together. It's slow work, but you make steady progress until you're done. Once you're finished, you hang the scarf on the coat stand, where you know Eden will see it. <br><br> <<link [[Next|Cabin House Actions]]>><<endevent>><</link>><<set $outside to 0>><<set $location to "cabin">><<effects>> <<edenTrackers>> Eden grabs your arm and pushes you in front of <<him>>. <<He>> pushes you through the forest and back to <<his>> cabin. Once inside, <<he>> shoves you to the floor. <br><br> "I trust you," <<he>> says. "So when you don't do as I say, it hurts." <br><br> <<link [[Seduce|Eden Recaptured Seduction]]>><</link>><<promiscuous1>> <br> <<link [[Apologise|Eden Recaptured Apologise]]>><<npcincr Eden love 1>><<npcincr Eden dom 1>><</link>><<gdom>><<glove>> <br> <<link [[Do nothing|Eden Recaptured Spank]]>><<set $molestationstart to 1>><</link>> <br><<effects>> <<set $seductiondifficulty to (10000 - (C.npc.Eden.lust * 50))>> <<seductioncheck>> <<seductionskilluptext>> <<seductionskilluse>> You climb to your knees. <<if $speech_attitude is "meek">> "I can make it up to you!" you say. <<elseif $speech_attitude is "bratty">> "I think I know what you need," you say. <<else>> "Let me make it up to you," you say. <</if>> You <<npcUndressText `C.npc.Eden` "lower">>. <<if $seductionrating gte $seductionrequired>> "This is a good way to start making it up to me," <<he>> says, pressing a hand against the back of your head and pushing you closer. <br><br> <<link [[Next|Eden Recaptured Oral]]>><<set $sexstart to 1>><</link>> <br> <<else>> <<He>> shoves you back to the ground. "Oh no, you're not getting off that easy." <br><br> <<link [[Next|Eden Recaptured Spank]]>><<set $molestationstart to 1>><</link>> <br> <</if>><<set $outside to 0>><<set $location to "cabin">><<effects>> You climb to your knees and look up at <<him>>. <<if $speech_attitude is "meek">> "I'm very sorry," you say. "I know I've been bad." You bow your head. <<elseif $speech_attitude is "bratty">> "I didn't mean to worry you," you say. <<else>> "I'm sorry, I know I've been bad," you say. <</if>> <br><br> "I still need to punish you," Eden says. "Or you'll forget the lesson." <br><br> <<link [[Next|Eden Recaptured Spank]]>><<set $phase to 1>><<set $molestationstart to 1>><</link>> <br><<if $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<maninit>><<npcspank>><<npcidlegenitals>><<set $enemyhealth to 600>><<set $enemyhealthmax to 600>><<set $enemyanger += 200>> <<if $phase is 1>> <<set $enemyanger -= 75>> <</if>> <<He>> bends you over <<his>> knee. <br><br> <</if>> <<effects>> <<effectsman>> <<man>> <<stateman>> <br><br> <<actionsman>> <<if _combatend or $enemyanger lte 0>> <span id="next"><<link [[Next|Eden Recaptured Spank Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Eden Recaptured Spank]]>><</link>></span><<nexttext>> <</if>><<set $outside to 0>><<set $location to "cabin">><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<ejaculation>><<npcincr Eden lust -20>> <<He>> pants from the exertion. "I hope you've learnt your lesson. Don't disobey me again."<<lllust>> <br><br> <<tearful>> you avoid <<his>> gaze. <<elseif $enemyhealth lte 0>> "You ungrateful slut," <<he>> says. "Maybe I should throw you out and leave you to the wolves!" <<He>> winces and holds <<his>> side. "I need to get something for this." <br><br> <<tearful>> you gather yourself. <<elseif $enemyanger lte 0>> <<He>> looks mollified, and releases you. "I hope you've learnt your lesson. Don't disobey me again." <br><br> <<tearful>> you avoid <<his>> gaze. <</if>> <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Eden Cabin]]>><</link>> <br><<if $sexstart is 1>> <<set $sexstart to 0>> <<consensual>> <<set $consensual to 1>> <<neutral 1>> <<maninit>><<npcoral>> <<set $enemytrust -= 100>><<set $enemyhealth to 600>><<set $enemyhealthmax to 600>><<set $enemyanger += 80>> <</if>> <<effects>> <<effectsman>> <<man>> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Eden Recaptured Oral Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Eden Recaptured Oral]]>><</link>></span><<nexttext>> <</if>><<set $outside to 0>><<set $location to "cabin">><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<ejaculation>><<npcincr Eden lust -20>><<npcincr Eden love 1>> "I can't stay mad at you," <<he>> gasps. "But don't you dare run off again."<<lllust>><<glove>> <<elseif $enemyhealth lte 0>> "You ungrateful slut," <<he>> says. "Maybe I should throw you out and leave you to the wolves!" <<He>> winces and holds <<his>> side. "I need to get something for this." <br><br> <<tearful>> you climb out from under the table. <<elseif $finish is 1>> "Remember," <<he>> says. "I'm keeping an eye on you." <</if>> <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Eden Cabin]]>><</link>><<set $outside to 0>><<set $location to "cabin">><<effects>> <<edenTrackers>><<asylumescape>> <<badEndTrackingEnd "Asylum" { reason: "asylumEden" }>> After you enter the cabin, Eden shuts the door behind you and wraps you up in a big hug. Is <<he>> trembling? <br><br> "I was so, so worried," <<he>> says. You think you feel tears land on your shoulder, but Eden gathers <<himself>> before you can address it. <br><br> <<if $pain gte 10>> The tightness of Eden's hold irritates your wounds, and you tap on <<his>> shoulder to notify <<him>>. <br> "You're hurt," <<he>> notes, pulling away and scanning you up and down. <br><br> Eden leads you to the dining table and treats you as best <<he>> can with a first aid kit. You notice a look of guilt on <<his>> face as <<he>> tends to you, almost as if <<hes>> blaming <<himself>> for your injuries. After <<hes>> done, <<he>> brings you a glass of water and some painkillers, which you down in one shot. <<He>> then pulls up a chair in front of you. <<lllpain>><<lltrauma>><<llstress>><<trauma -20>><<pain -200>><<stress -20>> <br><br> <</if>> "What happened?" <<he>> asks. More so demands. You tell <<him>> about the trauma that you suffered, and how you had been forced into the asylum for "treatment," and weren't allowed to leave. You also detail what Harper, the asylum staff and other patients subjected you to while you were there. <br><br> Eden's face twists in rage, guilt and horror through your story. When you're done, <<he>> slams <<his>> fist onto the table. <br><br> "Damn bastards," <<he>> says. "Wish I could just shoot them all right now!" <br> You place your hand on <<his>> shoulder to calm <<him>> down. "I'm safe now," you say. "That's all that matters." <br> <<He>> grabs your hand in <<his>> own and pulls you into a much gentler embrace. "You're right," <<he>> says. "You're safe now." <br><br> After a while, you try to pull away from <<him>>, but <<he>> holds you down a second longer. "Please be more careful next time. I don't want you in danger again," <<he>> pleads. <br><br> You tell <<him>> that you can't promise anything, but that you'll try to be safer in the future. Eden nods and throws you a wary, but gentle look as <<he>> stands. <br><br> <<link [[Next|Eden Cabin]]>><<endevent>><</link>><<set $outside to 0>><<set $location to "cabin">><<effects>> <<edenTrackers>> You feel safe once beneath the canopy, but don't stop until you reach the cabin. Eden hugs you as soon as you're inside. <br><br> "I looked all over town," <<he>> says. "Couldn't find you. I was so worried." <br><br> <<if $worn.face.type.includes("gag")>> <<He>> reaches behind your head and helps untie your $worn.face.name. <<set $worn.face.type.push("broken")>> <<faceruined>> <</if>> <<if $pain gte 10 or $edenwhip is 1>> You flinch as Eden touches a wound. "You're hurt," <<he>> notes, pulling away and looking over you. <br><br> <<if $edenwhip is 1>> <<He>> looks alarmed by the whip marks. <</if>> <<if $skin.left_bottom.special is "cattle">> <<His>> eyebrows furrow when <<he>> sees your cattle brand. <</if>> <<He>> leads you to the dining table, and asks that you lie down. <<He>> looks guilty as <<he>> tends to you. <<He>> might blame <<himself>> for your injuries. <<if $skin.left_bottom.special is "cattle">> <<He>> applies a strange liquid to the cattle brand. The ink runs from your skin. <<bodywriting_clear left_bottom>> <</if>> After <<hes>> done, <<he>> brings you a glass of water and some painkillers, which you down in one shot. <<He>> pulls up a chair in front of you. <<lllpain>><<lltrauma>><<llstress>><<trauma -20>><<pain -200>><<stress -20>> <br><br> <</if>> <<if $skin.left_bottom.special is "cattle">> <<His>> eyebrows furrow when <<he>> sees your cattle brand. Eden sits you at the dining table and applies a strange liquid. The ink runs from your skin. <<bodywriting_clear left_bottom>> <</if>> <<if ($edenwhip is 1 or $skin.left_bottom.special is "cattle")>> "Who did this to you?" Eden asks. <br> "Remy," you say. <<if $edenshoutrescue is 1>> "The one you punched in the face." <br> "That one?" <<he>> asks. "Should have done more than punch." <</if>> <<else>> "What happened?" <<he>> asks. <</if>> <br><br> You tell <<him>> about how you were brought to Remy's farm, and talk about the humiliations you were forced to endure. <<if ($edenwhip is 1)>> You also detail the torture Remy inflicted on you should you have refused any demands. <</if>> Eden's face twists in rage, guilt and horror through your story. When you're done, <<he>> slams <<his>> fist onto the table. <br><br> "Bastards," <<he>> shouts. "I need more bullets." <br> You place your hand on <<his>> shoulder to calm <<him>> down. "I'm safe now," you say. "That's all that matters." <br> <<He>> grabs your hand in <<his>> own and pulls you into a gentler embrace. "You're right," <<he>> says. "You're safe now." <br><br> You try to pull away from <<him>>, but <<he>> holds you tight. "Please be more careful next time. I don't want you in danger again." <br><br> You tell <<him>> that you can't promise anything, but that you'll try to be safer in the future. Eden nods and stands, looking weary. <br><br> <<if $edenshoutrescue is 1>> "Wait," you say. You bring out the hat you managed to swipe before leaving the barn and give it to Eden. <<He>> looks shocked for a moment, then chuckles. <br> "Seems like I don't give you enough credit. You saved me a shopping trip!" <<He>> kisses your cheek in thanks and walks away from the table. <</if>> <<set $edenshoutrescue to 0>> <<set $edenwhip to 0>> <br><br> <<link [[Next|Eden Cabin]]>><<endevent>><</link>><<effects>> <<set $edenshopping to 1>><<wearProp "first aid">> You shop for the things Eden can't make or do without. Tools and medical supplies mostly. <br><br> <<if !$edenradio and $money gte 2500>> As you're shopping, your eyes land on a simple tabletop radio. It makes you think of Eden. There's not a lot to do at the cabin, so maybe <<nnpc_he "Eden">>'d appreciate it. <br><br> <<techicon "radio">><<link [[Buy it (£25)|Eden Radio Buy]]>><<handheldon>><<money -2500>><</link>> <br> <<refuseicon>><<link [[Don't buy it|Eden Radio Don't Buy]]>><</link>> <<elseif $edenradio isnot 0 and !$edenraft and $money gte 4000>> As you're shopping, your eyes land on an inflatable raft. It makes you think of Eden. Maybe you could use it at the lake together. <br><br> <<ind>><<link [[Buy it (£40)|Eden Raft Buy]]>><<handheldon>><<money -4000>><</link>> <br> <<refuseicon>><<link [[Don't buy it|Eden Raft Don't Buy]]>><<handheldon>><</link>> <<else>> <<link [[Next|Shopping Centre]]>><<handheldon>><</link>> <</if>> <br><<effects>> <<set $edenraft to 1>> <<set $edenraftintro to 1>> You decide to buy the raft. <br><br> <<link [[Next|Shopping Centre]]>><</link>> <br><<effects>> You decide against buying the raft. Maybe next time. <br><br> <<link [[Next|Shopping Centre]]>><</link>> <br><<effects>> <<set $edenradio to 1>> <<set $edenradiointro to 1>> You decide to take a chance and buy the radio. Who knows? Maybe Eden will enjoy it. <br><br> <<link [[Next|Shopping Centre]]>><</link>> <br><<effects>> You decide against buying the radio. Maybe next time. <br><br> <<link [[Next|Shopping Centre]]>><</link>> <br><<effects>> <!-- <<npc Eden>><<person1>> --> <<set $edenradiointro to 2>><<npcincr Eden love 10>> You place the radio on the table before calling Eden over to see it. <br><br> "A radio?" <<he>> asks, scratching <<his>> head. "Not that I don't appreciate the gesture, but why the sudden purchase?" <br><br> <<if $speech_attitude is "meek">> "I-I just thought you'd enjoy it," you say. <<elseif $speech_attitude is "bratty">> "Oh come on, live a little," you say. "Haven't you ever made an impulse buy before?" <<else>> "I thought you'd like a little background noise," you say. <</if>> <br><br> You turn the dials on the radio, trying to find a signal. A few tries later, you hear music. It seems to be a love song. <br><br> <<link [[Look at Eden|Eden Radio Intro 2]]>><</link>> <br><<effects>> When you turn to Eden, <<he>> blushes and avoids your gaze. You're surprised that someone as tough as <<him>> would act so bashful, but you're aware of a tension building in the cabin. <br><br> The love song continues playing, the both of you unsure of what to do. Eden glances at your waist, trying to build up the courage for something. <<He>> looks frustrated with <<himself>>. <br><br> Taking the initiative, you grasp Eden's hands and lead them to your waist. <<He>> hesitates, then wraps <<his>> arm around you. You wind yours around <<his>> neck in turn. <br><br> <<link [[Next|Eden Radio Intro 3]]>><<npcincr Eden love 1>><</link>> <br><<effects>> The song leads you two into a slow waltz. You stare into Eden's eyes and feel a calming warmth settle in you. <br><br> Eden seems to have trouble maintaining your gaze, but holds you tight nonetheless. You can feel the nervousness settle in <<his>> shoulders, causing them to feel stiff at your touch. In fact, the vulnerability of the moment seems to have exposed <<him>>, somehow. It lets you see the part of <<him>> that <<he>> tries so hard to hide from the world. <br><br> You feel glad that <<hes>> showing this to you now, even if it's through uncertain and awkward movements. Maybe, that's what makes it special. <br><br> <<Hes>> no expert at dancing and stumbles more than a few times, but it's nice. You're struck with the realisation that even if life with Eden isn't perfect, <<he>> is trying for you. <br><br> Like <<hes>> trying right now. <br><br> <<link [[Next|Eden Radio Intro 4]]>><<npcincr Eden love 1>><</link>> <br><<effects>> Far too soon, the song comes to an end. Eden seems disappointed, but doesn't move. You wait to see if <<he>> does something, but <<he>> just looks away from you, making a conflicted expression. Disappointed, you pull away from <<him>>, but <<he>> stops you before you can. <br><br> "Wait," <<he>> says. You turn back to ask <<him>> what was wrong, but are interrupted by a kiss. This one seems different. It's full of everything that Eden feels for you. It's raw, and genuine. <br><br> "Thanks for the radio," <<he>> says, pulling you into a hug. <br><br> <span class = "gold">You can now use the radio to dance with Eden in the cabin at night!</span> <br><br> <<link [[Next|Eden Cabin]]>><<npcincr Eden love 1>><<endevent>><</link>> <br><<effects>> <<set $edenshopping to 2>><<npcincr Eden love 5>> <<if $speech_attitude is "meek">> "I got these for you," you say, putting the supplies on the table. <<elseif $speech_attitude is "bratty">> "I did your chore for you," you say, putting the supplies on the table. <<else>> "I got your supplies from town," you say, putting the supplies on the table. <</if>> <br><br> "Good job," Eden says. "How much were they? I'll give you the money." <br><br> <<link [[I don't need money|Eden Supplied 2]]>><<set $phase to 0>><<npcincr Eden love 1>><<npcincr Eden dom 1>><</link>><<gdom>><<glove>> <br> <<link [[£50|Eden Supplied 2]]>><<set $phase to 1>><</link>> <br> <<set $skulduggerydifficulty to 200>> <<link [[£200|Eden Supplied 2]]>><<set $phase to 2>><</link>><<skulduggerydifficulty>> <br><<effects>> <!-- <<npc Eden>><<person1>> --> <<if $phase is 0>> "What's yours is mine anyway," Eden says. "Thanks though." <br><br> <<if $bus is "edenclearing">> <<link [[Next|Eden Clearing]]>><<endevent>><</link>> <<else>> <<link [[Next|Eden Cabin]]>><<endevent>><</link>> <</if>> <<elseif $phase is 1>> "Sounds about right." <<He>> reaches into <<his>> pouch. "Here you go." <br><br> You've gained <<moneyGain 50>>. <br><br> <<if $bus is "edenclearing">> <<link [[Next|Eden Clearing]]>><<endevent>><</link>> <<else>> <<link [[Next|Eden Cabin]]>><<endevent>><</link>> <</if>> <<else>> <<skulduggerycheck>> <<if $skulduggerysuccess is 1>> "Two hundred?" Eden looks annoyed. "You got ripped off." <<He>> reaches into <<his>> pouch. "Still, worth me not doing it. Here you go." <br><br> You've gained <<moneyGain 200>>. <br><br> <<skulduggeryuse>> <<if $bus is "edenclearing">> <<link [[Next|Eden Clearing]]>><<endevent>><</link>> <<else>> <<link [[Next|Eden Cabin]]>><<endevent>><</link>> <</if>> <<else>> "I'm not gonna fall for that," Eden says. "You can pay out of your own pocket." <br><br> <<skulduggeryuse>> <<if $bus is "edenclearing">> <<link [[Next|Eden Clearing]]>><<endevent>><</link>> <<else>> <<link [[Next|Eden Cabin]]>><<endevent>><</link>> <</if>> <</if>> <</if>><<set $settingsExitPassage to "Eden Cabin">> <<settings>><<effects>> <<npc Eden>><<person1>> You fix Eden's clothes, which are full of rips and tears from <<his>> hunting trips. <<if Time.hour lte 6>> You decide to leave them on the table as to not disturb <<his>> rest. <<elseif Time.hour gte 11 and Time.hour lte 14 and $daily.eden.hunting is 1>> You decide to leave them on the table until <<he>> comes back. <<else>> <<He>> seems grateful when you give them back to <<him>>. <</if>> <br><br> <<link [[Next|Cabin House Actions]]>><<endevent>><</link>><<effects>><<wearProp "broom">> <!-- <<npc Eden>><<person1>> --> Using the broom and dustpan, you sweep the cabin floor until it's clean. <br><br> <<link [[Next|Cabin House Actions]]>><<endevent>><</link>><<effects>><<wearProp "salve">> <!-- <<npc Eden>><<person1>> --> You gather the ingredients for your salve and melt the mixture on the stove. When you're done, you leave your salve on the table to cool and dry. <br><br> You have $salve <<pluralise $salve "jar">> of salve. <br><br> <<link [[Next|Cabin House Actions]]>><<endevent>><</link>><<effects>><<wearProp "soap">> <!-- <<npc Eden>><<person1>> --> You gather the ingredients for your soap and melt the mixture on the stove. When you're done, you leave your soap on the table to cool and set. <br><br> You have $soap <<pluralise $soap "bar">> of soap. <br><br> <<link [[Next|Cabin House Actions]]>><<endevent>><</link>><<effects>> <!-- <<npc Eden>><<person1>> --> You take stock of Eden's supplies, noting what needs to be replenished and how much it would cost.<<gmaths>><<mathsskill>> <br><br> <<link [[Next|Cabin House Actions]]>><<endevent>><</link>><<effects>> <<edenicon>><<link [[Step away|Eden Cabin]]>><<handheldon>><<unset $mirrorMenu>><<unset $bodywritingSet>><<postMirror>><</link>> <br> <<mirror>> <br><br><<effects>> <<plot_effects>> <<if $eden_plot_intro is 1>><<unset $eden_plot_intro>> <<plots_init eden 3 earth 2 medium>> <</if>> <<display_plot eden>> <<if !$plants_known.includes("poppy")>> <<icon "tending/poppy.png">> <<link [[Search for seeds (0:30)|Eden Plots Seeds]]>><<set $plants_known.push("poppy")>><<pass 30>><<handheldon>><</link>> <br> <</if>> <br> <<getouticon>><<link [[Leave|Eden Clearing]]>><<endevent>><</link>> <br><<effects>> You search the clearing for wild flowers, and find a number of poppies growing among the grass. You gather some seeds. <br><br> <span class="gold">You can now grow <<icon "tending/poppy.png">> poppies.</span> <br><br> <<link [[Next|Eden Clearing]]>><<endevent>><</link>> <br><<effects>> <<if $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<maninit>> <<set $enemytrust -= 100>> <<set $enemyhealth to 600>> <<set $enemyhealthmax to 600>> <<set $enemyanger += 200>> <<forestRescueSetup>> <</if>> <<effects>> <<effectsman>> <<forestRescueCheck "Eden">> <<man>> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Eden Recaptured Resist Normal Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Eden Recaptured Resist Normal]]>><</link>></span><<nexttext>> <</if>><<effects>> <<if $enemyarousal gte $enemyarousalmax>><<if $foresthunt gte 1>><<set $foresthunt to 0>><</if>> <<ejaculation "short">> Eden collapses against a nearby tree. <br><br> <<tearful>> you seize the chance, and escape into the woods. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Forest]]>><<endevent>><<set $eventskip to 1>><</link>> <<elseif $rescue is 1>> <<forestRescue>> <<else>> <<if $foresthunt gte 1>><<set $foresthunt to 0>><</if>> Eden falls against a nearby tree. <br><br> <<tearful>> you seize the chance, and escape into the woods. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Forest]]>><<endevent>><<set $eventskip to 1>><</link>> <</if>><<effects>> <<if $fightstart is 1>> <<set $fightstart to 0>> <<neutral 1>> <<maninit>> <<set $enemytrust -= 100>> <<set $enemyanger += 200>> <<npcidlegenitals>> <<if $worn.neck.name is "familiar collar" and $worn.neck.cursed is 1>> <<set $nochoke to 1>><<defiance 2 0>> "I don't want to do this," Eden says as <<he>> shifts <<his>> hands over your throat, <span class="green">but immediately recoils as the golden heart on your collar shocks <<him>>.</span> <br><br> "That witch got <<nnpc_his "Gwylan">> hands on you? You'll never see <<nnpc_him "Gwylan">> again if I have anything to say about it." <<else>> <<set $NPCList[0].righthand to "throat">><<set $NPCList[0].lefthand to "throat">><<set $neckuse to "hand">> "I don't want to do this," Eden says as <<he>> shifts <<his>> hands over your throat. <span class="red">You're being strangled!</span> <</if>> <br><br> <<forestRescueSetup>> <</if>> <<effects>> <<effectsman>> <<forestRescueCheck "Eden">> <<man>> <<stateman>> <br><br> <<actionsman>> <<if _combatend or ($pain gte 100 and $willpowerpain is 0)>> <span id="next"><<link [[Next|Eden Recaptured Resist Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Eden Recaptured Resist]]>><</link>></span><<nexttext>> <</if>><<effects>> <<if $enemyarousal gte $enemyarousalmax>><<if $foresthunt gte 1>><<set $foresthunt to 0>><</if>> <<ejaculation "short">> Eden collapses against a nearby tree. <br><br> <<tearful>> you seize the chance, and escape into the woods. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Forest]]>><<endevent>><<set $eventskip to 1>><</link>> <br> <<elseif $enemyhealth lte 0>><<if $foresthunt gte 1>><<set $foresthunt to 0>><</if>> Eden falls against a nearby tree. <br><br> <<tearful>> you seize the chance, and escape into the woods. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Forest]]>><<endevent>><<set $eventskip to 1>><</link>> <br> <<elseif $rescue is 1>> <<forestRescue>> <<else>> Eden chokes you until your consciousness fades. <br><br> <<endcombat>> <<link [[Next|Eden Recaptured 2]]>><<clotheson>><</link>> <br> <</if>><<effects>> <<npc Eden>><<person1>> <<edenTrackers>> <<if $rng gte 51>> You awaken, and find yourself slumped over Eden's shoulder. You're in the clearing outside <<his>> cabin. <<He>> tosses you to the floor once inside. <br><br> "I trust you," <<he>> says. "So when you don't do as I say, it hurts." <br><br> <<else>> You're jolted awake by Eden nudging you with <<his>> boot. You're on the cabin floor. <br><br> "I trust you," <<he>> says. "So when you don't do as I say, it really hurts." <br><br> <</if>> <<link [[Seduce|Eden Recaptured Seduction]]>><</link>><<promiscuous1>> <br> <<link [[Apologise|Eden Recaptured Apologise]]>><<npcincr Eden love 1>><<npcincr Eden dom 1>><</link>><<gdom>><<glove>> <br> <<link [[Do nothing|Eden Recaptured Spank]]>><<set $molestationstart to 1>><</link>> <br><<set $outside to 0>><<set $location to "cabin">><<effects>> /* eden is not actually generated on passages that lead here */ <<edenTrackers>> <<npc Eden>><<person1>> You slip in and out of consciousness. You feel something carry you, and hear the sounds of the forest. <br><br> You wake up some time later on a bed. It feels familiar. You look around, and realise that you are in the cabin in the forest. Eden sits beside you, drinking from a mug. <<He>> glances at you, and puts down <<his>> drink. <br><br> "You're awake. I was worried," <<he>> says, looking relieved as <<he>> reaches for you, and folds you in a firm hug. <<if isLoveInterest("Eden")>> You hug <<him>> back, though you're still weak. <br><br> <<if $speech_attitude is "meek">> "Thank you!" you say. "I don't know what would've happened to me if you didn't rescue me." <<elseif $speech_attitude is "bratty">> "Thanks for the help," you say. "I owe you one." <<else>> "Thank you!" you say. "I appreciate you bringing me back." <</if>> <br><br> <<else>> <br><br> <</if>> "You're safe here now. You're home. It's alright." Eden holds you for a few more moments, before releasing you and looking you over. "No harm done. I think you'll live." <<He>> smiles as <<he>> stands up and stretches. <br><br> <<link [[Next|Eden Cabin]]>><<endevent>><</link>><<set $outside to 0>><<set $location to "cabin">><<effects>> <<set $stress -= 2000>> /* eden is already generated on passages that lead here <<npc Eden>><<person1>> */ You awaken on the cabin bed. Turning your head to the side, you see Eden sitting next to you. <<He>> notices you stirring. <br><br> "You're up. I was worried," <<he>> says. <<His>> voice sounds relieved. <br><br> <<if $pain gte 10>> It seems <<hes>> fixed your injuries while you were out. <<He>> helps you to your feet and gives you one last look before walking off. <<lllpain>><<pain -200>> <<else>> "I couldn't find any injuries. You must have passed out from stress." <<He>> helps you to your feet and gives you one last look before walking off. <</if>> <br><br> <<link [[Next|Eden Cabin]]>><<endevent>><</link>><<effects>> You feel yourself being lifted into the air and someone wrapping an arm around your waist. <br><br> <<if isLoveInterest("Eden")>> You bury your face into your rescuer's chest. They smell familiar and comforting. <br><br> <</if>> You pass out again. <br><br> <<link [[Next|Eden Cabin Rescued]]>><<pass 30>><</link>><<set $outside to 1>><<set $location to "cabin">><<effects>><<set $edenaskcollar to 1>> /* eden is already generated on passages that lead here <<npc Eden>><<person1>> */ <<if $speech_attitude is "meek">> "I-I removed it," you say. <<elseif $speech_attitude is "bratty">> "I took it off," you say. <<else>> "I removed it," you say. <</if>> <br><br> "What? Why?" <<he>> asks, frustrated. <br> <<if $speech_attitude is "meek">> "People could have used it to take advantage of me if you're not there." <<elseif $speech_attitude is "bratty">> "It put me in a risky spot," you say. "People could have used it to take advantage of me." <<else>> "It's risky," you say. "People could have taken advantage of me with it." <</if>> <br><br> <<He>> looks away and considers your words, before ultimately sighing in defeat. "Fine," <<he>> says, turning away. <<He>> doesn't press the topic further. <br><br> <<if $bus is "edencabin">> <<link [[Next|Eden Cabin]]>><<endevent>><</link>> <<elseif $bus is "edenclearing">> <<link [[Next|Eden Clearing]]>><<endevent>><</link>> <</if>><<set $outside to 1>><<set $location to "cabin">><<effects>> <<if $speech_attitude is "meek">> "C-Could you give me another collar?" You blush and turn your face away. <<elseif $speech_attitude is "bratty">> "Could I have another collar?" You try to maintain eye contact while speaking, but feel a blush rising onto your cheeks all the same. <<else>> "Could you give me another collar?" You feel your face heat up at your words. <</if>> <br><br> <<if $bus is "edenclearing">> Eden's eyebrows rise at your question. "Changed your mind?" <<He>> smirks, eyeing your flushed visage. You feel your heart pick up in response. "Come here," <<he>> says, taking your hand and leading you into the cabin. <br><br> <<else>> Eden's eyebrows rise at your question. "Changed your mind?" <<He>> smirks, eyeing your flushed visage. You feel your heart pick up in response. "Come here," <<he>> says, taking your hand. <br><br> <</if>> <<link [[Next|Eden Collar Ask 2]]>><</link>><<set $outside to 1>><<set $location to "cabin">><<effects>> /* eden is already generated on passages that lead here <<npc Eden>><<person1>> */ <<if $speech_attitude is "meek">> "S-Someone took it from me," you say. <<elseif $speech_attitude is "bratty">> "Someone took it off," you say. <<else>> "Someone took it from me," you say. <</if>> <br> "What?" <<He>> sounds mad. <br> <<if $speech_attitude is "meek">> "I-I'm sorry," you say. "But you being mad doesn't help." <<elseif $speech_attitude is "bratty">> "I said someone took it. You being mad isn't going to change anything." <<else>> "I said someone took it. Your anger doesn't change anything." <</if>> <br><br> <<He>> opens <<his>> mouth to respond, but sighs and looks away. "Fine," <<he>> says, turning away. <br><br> <<if $speech_attitude is "meek">> You look to the ground and fiddle with your hands, not moving from your spot. After a minute, Eden looks up at you. <<elseif $speech_attitude is "bratty">> "Wait," you say. Eden looks up at you. <<else>> You stand around for a minute, building up your courage, before walking up to Eden and tapping <<him>> on the shoulder. <<He>> looks up at you. <</if>> <br> <<if $speech_attitude is "meek">> "C-Could you give me another one?" You blush and turn your face away. <<elseif $speech_attitude is "bratty">> "Could I have another one?" You try to maintain eye contact while speaking, but feel a blush rising onto your cheeks all the same. <<else>> "Could you give me another one?" You feel your face heat up at your words. <</if>> <br><br> <<if $bus is "edenclearing">> Eden's eyebrows rise at your question. <<He>> scans your face, eyeing your flushed visage, and smirks. "Come here," <<he>> says, taking your hand and leading you into the cabin. <<else>> Eden's eyebrows rise at your question. <<He>> scans your face, eyeing your flushed visage, and smirks. "Come here," <<he>> says, taking your hand. <</if>> <br><br> <<link [[Next|Eden Collar Ask 2]]>><</link>><<leash 21>><<attach_leash>> <<set $outside to 1>><<set $location to "cabin">><<effects>> <<He>> guides you to a nearby drawer. Pulling it open, <<he>> reaches for a collar. A long metal chain dangles, gleaming in the light. <<He>> tilts <<his>> head, motioning for you to approach. <br><br> You take a stuttering breath and walk over, stopping in front of <<him>>. <<if $hairlength gte 200>> "Lift up your hair," <<he>> says. You comply, reaching behind your head and moving your hair out of the way. <</if>> <br><br> <<if $speech_attitude is "meek">> You keep your face to the ground, cheeks still burning strongly under the intensity of <<his>> gaze. <<elseif $speech_attitude is "bratty">> Try as you might, you can't bring yourself to look <<him>> in the eyes. Your cheeks burn embarrassingly red under the intensity of <<his>> gaze. <<else>> Your eyes are locked on the ground, cheeks still burning under the intensity of <<his>> gaze. <</if>> <br><br> Slowly, <<he>> raises the collar to your neck, brushing <<his>> hands against your skin. Your breath involuntarily hitches in response, and Eden chuckles. A distinctive click echoes through the cabin as it clamps shut behind you. <br><br> Eden steps back, scanning you up and down. You brave a look at <<his>> face. <<His>> eyes are dark and hungry. <<npcincr Eden lust 5>><<gglust>> <br><br> <<link [[Next|Eden Collar Ask 3]]>><</link>><<set $outside to 1>><<set $location to "cabin">><<effects>> Grabbing your leash, Eden guides you to the cabin mirror and tilts your head up. The collar sits around your neck, encasing it snugly. <<He>> stands behind you and places <<his>> hands on your shoulders, lowering <<his>> face to level with your ear. <br><br> "What do you think?" <<he>> whispers. The feeling of <<his>> hot breath is maddening. <br><br> <<if $speech_attitude is "meek">> "I-I," you stutter through your words before giving up and hiding your flushed face in your hands. Eden smirks. <<elseif $speech_attitude is "bratty">> "It's... okay," you say, blushing while trying to look at your reflection. Eden smirks. <<else>> "It's... nice," you say, blushing and avoiding your reflection in the mirror. Eden smirks. <</if>> <br><br> <<He>> pulls you into <<his>> chest and runs <<his>> fingers over your new collar. "You look good," <<he>> says, grabbing your chin and pecking you on the lips. Releasing your leash, <<he>> walks away, leaving you staring at the mirror. Your knees feel weak. <<takeKissVirginity "Eden" "romantic">> <br><br> <<link [[Next|Eden Cabin]]>><<endevent>><</link>><<set $outside to 0>><<set $location to "cabin">><<effects>> You are in Eden's kitchen. A grill sits over a fire, and looks more hygienic than the rest of the cabin. A narrow set of stairs leads to a root cellar. <br><br> <<ingredientsSupplied "beef" "bird_egg">> <<allowLewdIngredients>> <br><br> <<kitchenDisplay>> <<link [[Leave|Eden Cabin]]>><<endevent>><</link>> <br><<if $molestationstart is 1>> <<set $molestationstart to 0>> <<violence 1>> <<neutral 1>> <<maninit>> <<stalk_init>> <<set $combatgoal to "confront">> <<set $NPCList[0].bold to 10000>> <</if>> <<effects>> <<effectsman>><<man>> <<stateman>> <<actionsman>> <<if $stalk_end>> <span id="next"><<link [[Next|Street Stalk Eden Finish]]>><<if $feetaction is "confront">><<set $phase to 1>><<else>><<set $phase to 0>><</if>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Street Stalk Eden]]>><</link>></span><<nexttext>> <</if>><<set $outside to 1>><<set $location to "town">><<effects>> <<person1>> <<if $stalk_end is "confront">> <<if $phase is 1>> Eden grabs you by the arm, <<his>> grip painful. <<He>> looks mad. <<else>> <<if $stalk_assess>> Eden's grip on your arm remains painfully tight as <<he>> turns you around to face <<him>>. <<He>> looks mad. <<else>> You're spun around, and come face-to-face with a large figure. It's Eden. <<He>> looks mad. <</if>> <</if>> <br><br> <<endcombat>> <<npc Eden>><<person1>> <<if $edenCagedEscape>> "Told you I'd find you again, didn't I?" <<he>> snarls, pulling you close. "Looks like you still haven't learnt your place. Come on." <<else>> "Where the fuck have you been?" <<he>> snarls, pulling you close. <<if $allure gte (3000 * $settings.allureModifier)>> "I've been worried sick and you've been prancing around town like a slut!" <<else>> "I've been worried sick, and you're just prancing around town!" <</if>> <<if C.npc.Eden.love gte 70>> <<set C.npc.Eden.love to 70>> <<llllove>> <</if>> <br><br> Before you can speak, Eden begins to drag you away. "I don't want to hear your excuses, either." <<He>> looks uncomfortable, eyes shifting as <<he>> walks. The corner of <<his>> lip curls in disgust. "And you made me come out here to get you. Things aren't going to be pretty when we get home." <</if>> <br><br> <<link [[Fight|Eden Caged Caught Resist]]>><<set $fightstart to 1>><<def 1>><</link>> <br> <<link [[Try to pull away|Eden Caged Caught Pull]]>><<def 1>><<npcincr Eden dom -1>><</link>><<physiquedifficulty 2000 18000>><<ldom>> <br> <<link [[Submit (0:30)|Eden Caged Caught]]>><<set $phase to 1>><<pass 30>><<sub 1>><<npcincr Eden dom 1>><</link>><<gdom>> <br> <<elseif $stalk_end is "hide">> You emerge from your hiding place. <<if $stalk_assess>>Eden<<else>>Whoever was following you<</if>> is nowhere to be found. <<tearful>> you continue on your way. <br><br> <<clotheson>> <<endcombat>> <<destinationeventend>> <<elseif $stalk_end is "ambush">> <<if $stalk_asses>> You're surprised you were able to overcome <<him>> like this, and <<hes>> no less surprised. <<else>> You awkwardly lie on top of Eden's chest as your mind races to figure out what to do next. <</if>> <<His>> eyes open. <br><br> <<silently>><<endcombat>><</silently>> <<npc Eden>><<person1>> <<link [[Fight|Eden Caged Caught Resist]]>><<set $fightstart to 1>><<def 1>><<npcincr Eden dom -1>><</link>><<ldom>> <br> <<link [[Run|Eden Stalk Ambush]]>><<def 1>><<npcincr Eden dom -1>><</link>><<ldom>> <br> <<if $syndromeeden is 1>> <<link [[Kiss Eden, and then run|Eden Stalk Ambush]]>><<set $phase to 1>><<npcincr Eden love 1>><<npcincr Eden dom -1>><</link>><<glove>><<ldom>><<kissvirginitywarning>> <br> <</if>> <<else>> <<if $stalk_assess>>Eden's<<else>>A familiar<</if>> voice shouts after you as you escape into the <<if Time.dayState is "night">>darkness<<else>>crowds<</if>>, but you keep running. Finally, it fades into the distance. <<tearful>> you slow to a walk, and continue on your way. <br><br> <<clotheson>> <<endcombat>> <<destinationeventend>> <</if>><<effects>> <<if $phase is 1>> You give Eden a kiss right on the lips before <<he>> can get <<his>> bearings. <<takeKissVirginity "Eden" "romantic">> <</if>> <br><br> You push yourself off of <<him>> and dash away. <<His>> voice shouts after you as you escape into the <<if Time.dayState is "night">>darkness<<else>>crowds<</if>>, but you keep running. Finally, it fades into the distance. <<tearful>> you slow to a walk, and continue on your way. <br><br> <<clotheson>> <<endcombat>> <<destinationeventend>><<effects>> Fearing whatever Eden has in store for you, you pull hard. <<if $physiqueSuccess>><<set $edenCagedEscape to true>> <<He>> resists, turning to you with a warning glare. After some back and forth, <span class="green"><<his>> grasp loosens enough for you to slip out and begin a full-sprint away.</span> Your arm stings, but you push past the feeling.<<pain 2>><<gpain>> <br><br> Eden gives chase, narrowly on your heels for a few minutes. <<He>> calls after you as you pull ahead, <<his>> anger palpable. <br><br> After a few minutes, the sounds of <<his>> voice fades away, until it disappears completely. <br><br> <<if $location is "forest">> You're in the clear, but you know Eden's already on your trail. <span class="red">Something is hunting you.</span> <<set $foresthunt to 1>> <<set $forestHunter to "Eden">> <br><br> <<link [[Next|Forest]]>><<endevent>><<set $eventskip to 1>><</link>> <br> <<else>> <<endevent>> <<destinationeventend>> <</if>> <<else>> <<His>> grip remains almost bone-crunching. <span class="red">You can't tear away.</span> Eden silently glares as <<he>> tightens <<his>> hold on you.<<pain 4>><<gpain>> <br><br> <<link [[Fight|Eden Caged Caught Resist]]>><<set $fightstart to 1>><<def 1>><</link>> <br> <<link [[Submit (0:30)|Eden Caged Caught]]>><<set $phase to 0>><<pass 30>><<stress 6>><<sub 1>><<npcincr Eden dom 1>><</link>><<gstress>><<gdom>> <br> <</if>><<set $outside to 1>><<set $location to "forest">><<effects>> <<if $phase is 1>> Eden's right. You've been away for far too long. You probably couldn't break free, anyway. <br><br> <<He>> doesn't loosen <<his>> grip, but <<he>> eases up on <<his>> handling of you as you march through the forest. <<else>> Fearing whatever Eden has in store for you, you pull hard. <<if $physiqueSuccess>> <<He>> resists, turning to you with a warning glare. After some back and forth, <span class="green"><<his>> grasp loosens enough for you to slip out and begin a full-sprint away.</span> Your arm stings, but you push past the feeling.<<pain 2>><<gpain>> <br><br> Eden gives chase, narrowly on your heels for a few minutes. <<He>> calls after you as you pull ahead, <<his>> anger palpable. <br><br> After a few minutes, the sounds of <<his>> voice fades away, until it disappears completely. <br> You're in the clear, but you know Eden's already on your trail. <span class="red">Something is hunting you.</span> <<set $foresthunt to 1>> <<set $forestHunter to "Eden">> <<set $edenCagedEscape to true>> <<else>> <<His>> grip remains almost bone-crunching. <span class="red">You can't tear away.</span> Eden silently glares as <<he>> pulls you closer. <br><br> <<He>> drags you towards the cabin. You cry for help. Nobody answers.<<trauma 3>><<gtrauma>> <<set $phase to 1>> <</if>> <</if>> <br><br> <<if $phase is 1>> <<set $outside to 0>><<set $location to "cabin">> You're pulled into the cabin. Eden slams the door shut behind you. Everything is as you left it. Apart from the cage near the sleeping area. <br><br> <<link [[Struggle|Eden Caged Intro]]>><<set $phase to 0>><<def 1>><<npcincr Eden dom -1>><</link>><<physiquedifficulty 2000 18000>><<ldom>> <br> <<link [[Submit|Eden Caged Intro]]>><<set $phase to 1>><<sub 1>><<stress 6>><<npcincr Eden dom 1>><</link>><<gstress>><<gdom>> <br> <<else>> <<link [[Next|Forest]]>><<endevent>><<set $eventskip to 1>><</link>> <br> <</if>><<if $fightstart is 1>> <<set $fightstart to 0>> <<neutral 1>> <<maninit>> <<npcidlegenitals>> <<set $enemytrust -= 100>> <<set $enemyhealth to 600>> <<set $enemyhealthmax to 600>> <<if $stalk_end is "ambush">> <<set $enemyhealth -= 150>> <</if>> <<set $enemyanger += 200>> <<if $settings.asphyxiaLevel gte 3>> <<if $worn.neck.name is "familiar collar" and $worn.neck.cursed is 1>> <<set $enemyanger += 50>><<set $enemyhealth -= 20>> Eden lifts <<his>> hands to strangle you. <span class="blue">The collar around your neck thrums with power.</span> <<He>> snatches <<his>> hands away with a curse. <span class="red"><<He>> slaps you across the face instead.</span> <br><br> "I'm going to remind you of your place," <<he>> says. <<violence 3>> <<else>> <<set $NPCList[0].righthand to "throat">><<set $NPCList[0].lefthand to "throat">><<set $neckuse to "hand">> "I don't want to do this," Eden says as <<he>> shifts <<his>> hands over your throat. <span class="red">You're being strangled!</span> <</if>> <<else>> <span class="red">Eden slaps you across the face.</span> "You're only making things harder on yourself," <<he>> snarls. <<violence 6>> <</if>> <<forestRescueSetup>> <br><br> <</if>> <<effects>> <<effectsman>> <<if $location is "forest">> <<forestRescueCheck "Eden">> <</if>> <<man>> <<stateman>> <br><br> <<actionsman>> <<if _combatend or $pain gte 100 and $willpowerpain is 0>> <span id="next"><<link [[Next|Eden Caged Caught Resist Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Eden Caged Caught Resist]]>><</link>></span><<nexttext>> <</if>><<set $outside to 1>><<effects>> <<if $enemyarousal gte $enemyarousalmax>><<if $foresthunt gte 1>><<set $foresthunt to 0>><</if>> <<ejaculation "short">> Eden collapses against a nearby <<if $location is "forest">>tree<<else>>streetlamp<</if>>. <br><br> <<tearful>> you seize the chance, and escape into the <<if $location is "forest">>woods<<else>>streets<</if>>. <br><br> <<clotheson>> <<endcombat>> <<set $edenCagedEscape to true>> <<if $location is "forest">> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <br> <<else>> <<destinationeventend>> <</if>> <<elseif $enemyhealth lte 0>><<if $foresthunt gte 1>><<set $foresthunt to 0>><</if>> Eden falls against a nearby <<if $location is "forest">>tree<<else>>streetlamp<</if>>. <br><br> <<tearful>> you seize the chance, and escape into the <<if $location is "forest">>woods<<else>>streets<</if>>. <br><br> <<clotheson>> <<endcombat>> <<set $edenCagedEscape to true>> <<if $location is "forest">> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <br> <<else>> <<destinationeventend>> <</if>> <<elseif $rescue is 1 and $location is "forest">> <<forestRescue>> <<else>> You fall to the ground, too hurt to continue. <br><br> <<clotheson>> <<endcombat>> <<npc Eden>><<person1>> <<link [[Next|Eden Caged Caught]]>><<set $phase to 0>><<pass 30>><</link>> <</if>><<set $outside to 1>><<effects>> <<if $phase is 1>> Eden's right. You've been away for far too long. You probably couldn't break free, anyway. <br><br> <<if $location is "forest">> <<He>> doesn't loosen <<his>> grip, but <<he>> eases up on <<his>> handling of you as you march through the forest. <<else>> <<He>> guides you towards the forest. Most people ignore you. It's a struggle to keep up with <<his>> quick steps. <</if>> <br><br> You're pulled into the cabin. Eden slams the door shut behind you. Everything is as you left it. Apart from the cage near the sleeping area. <br><br> <<else>> <<if $location is "forest">> Eden roughly pulls you by your wrist, forcing you to stumble after <<him>> as <<he>> makes <<his>> way home. <<else>> Eden's grip remains almost bone-crunching as <<he>> guides you towards the forest. People look on as you pass, but none intervene, despite your cries for help.<<trauma 3>><<gtrauma>> <br><br> Eden doesn't relax as <<he>> drags you through the woods, even once you're past the outskirts of town. The sounds of civilisation gradually give way to nature's deathly silence. <</if>> <br><br> The usual familiarity and comfort of the cabin is disrupted by a foreboding feeling in your stomach. Your dread is reinforced when you see the cage in the corner. <</if>> <<set $outside to 0>><<set $location to "cabin">> <br><br> <<link [[Struggle|Eden Caged Intro]]>><<set $phase to 0>><<def 1>><<npcincr Eden dom -1>><</link>><<physiquedifficulty 2000 18000>><<ldom>> <br> <<link [[Submit|Eden Caged Intro]]>><<set $phase to 1>><<sub 1>><<stress 6>><<npcincr Eden dom 1>><</link>><<gstress>><<gdom>> <br><<set $outside to 0>><<set $location to "cabin">><<effects>> <<npc Eden>><<person1>> As <<he>> carries you through the forest, <<he>> doesn't loosen <<his>> grip. <<He>> doesn't even ease up on <<his>> handling of you as you're pulled into the cabin. <<He>> drops you in a heap on the floor. <br><br> Eden slams the door shut behind <<him>>. The usual familiarity and comfort of the cabin is disrupted by a foreboding feeling in your stomach. Your dread is reinforced when you see the cage in the corner. <br><br> <<link [[Next|Eden Caged Intro]]>><<set $phase to 2>><</link>> <br><<set $outside to 0>><<set $location to "cabin">><<effects>> <<if $phase is 1>> Even if it's obvious that what happens next won't be pleasant, you give in. <br><br> "Oh, so now you're behaving?" Eden spits. "Fucking great timing, isn't it? Being good when you know you can't get away with shit." <br><br> <<elseif $phase is 0>> <<if $physiqueSuccess>> Knowing the punishment that is about to unfurl, you dig your heels into the floor and pull. Eden, more confident now that you're home, had loosened <<his>> grip, allowing you to pull free. <br><br> Before <<he>> can turn and lunge, you dart to the door, practically ripping it off of its hinges and sprinting back into the forest. Eden is right behind you, heavy footfalls pounding into the ground as <<he>> gives chase. <br><br> Darting between the trees, you're able to break the line of sight that Eden has on you, and after a few minutes lose <<him>> completely.<<pass 10>> <br><br> "I'll fucking catch you again! I always do!" Eden yells from behind. You pay it no mind, running until your lungs burn. Eventually, you come to a stop, unable to go on.<<stress 6>><<tiredness 3>><<gstress>><<gtiredness>> <br> Even though you're alone, a familiar chill runs up your spine. <span class="red">Something is hunting you.</span> <<set $edenCagedEscape to true>> <<set $forestHunter to "Eden">> <<set $foresthunt to 1>> <br><br> <<else>> Knowing the punishment that is about to unfurl, you dig your heels into the floor and pull. Tired of your defiance, Eden turns and backhands you. <<pain 4>><<gpain>> <br><br> "I'm sick of you acting like a brat. It's obvious you need reminding of your duties," <<he>> snarls. <<set $phase to 1>> <br><br> <</if>> <</if>> <<if $phase gte 1>> Held by the scruff of your neck, the <<nnpc_title "Eden">> strips your clothes before forcing you into the cage. A heavy padlock secures the gate. <<ruined>> <br><br> "I'll let you out when you can behave," Eden warns. <<He>> leaves you alone and <<if Time.hour lte 6>>/* bedtime */ lumbers to the bed. <<Hes>> soon out like a light. <<elseif Time.hour lte 8>>/* breakfast */ stomps over to the kitchen to prepare breakfast. <<elseif Time.hour lte 16>>/* out hunting */ storms outside. <<elseif Time.hour lte 18>>/* bathtime */ leaves to run a bath. <<elseif Time.hour lte 22>>/* dinnertime */ stomps over to the kitchen to prepare dinner. <<else>>/* bedtime */ lumbers to the bed. <<Hes>> soon out like a light. <</if>> <<unset $edenCagedEscape>> <<unset $edenescape>> <<set C.npc.Eden.trust to 0>> <<set $edenCaged to {}>> <<set $edenCaged.escape to 0>> <<set $edenCaged.days to 0>> <br><br> <<link [[Next|Eden Caged]]>><<set $phase to 0>><</link>> <br> <<else>> <<set $forest to random(50, 75)>> <<link [[Next|Forest]]>><<endevent>><<set $eventskip to 1>><</link>> <br> <</if>><<set $outside to 0>><<set $location to "cabin">><<effects>> You are locked in a cage in Eden's cabin. It's small and cramped, impossible to stand upright in. Furred blankets cover the ground. <br><br> <<if Time.hour lte 6>>/* bedtime */ <<if $phase is 2>> Despite the uncomfortable position, you curl up on the layers of blankets and close your eyes. Soon enough, you drift off to sleep. <<elseif $phase is 1>> With Eden snoring peacefully, you get in position to kick again. <<if $edenCaged.escape gte 9>> The whole cage rattles around you. <span class="green">You feel the gate giving out against your repeated assaults.</span> Eden jolts in <<his>> sleep, and for a moment you fear <<he>>'ll wake. You breathe a sigh of relief when you hear <<his>> snoring.<<stress 2>><<gstress>> <br><br> <span class="blue">The gate is loose enough that one more good kick will set you free. However, you'll need to wait until Eden's distracted.</span> <br><br> Having done all you can, you lie on your side and try your best to sleep. <<else>> However, after one strike, you freeze. It was much louder than you remembered. Over on the furred mattress, the <<nnpc_title "Eden">> stirs briefly, before resting once again. <br><br> It's too risky. You should try again when Eden is distracted with something else. <br><br> Sighing in defeat, you lie on your side and try your best to sleep.<<stress 6>><<gstress>> <</if>> <<else>> Alone with only Eden's snores to keep you company, you wonder what to do. <</if>> <br><br> <<if $phase gte 1>> <<link [[Sleep|Eden Caged]]>><<set $phase to 1>><<cabintime>><<set $edenCaged.days += 1>><</link>><<ltiredness>> <br> <<else>> <<if $edenCaged.escape gte 9>> <span class="purple">The gate is loose, but you won't get far with Eden so close.</span> You'll have to wait until <<hes>> distracted. <br> <<else>> <<link [[Try to escape|Eden Caged]]>><<set $phase to 1>><<set $edenCaged.escape += 1>><</link>> <</if>> <br> <<link [[Sleep for the night|Eden Caged]]>><<set $phase to 2>><</link>> <br> <</if>> <<elseif Time.hour lte 8>>/* breakfast */ <<if C.npc.Eden.trust gte 100 or $edenCaged.days gte 5>> The sound of the cage creaking open rouses you from your slumber. Eden is crouched in the opening. "Come on. Punishment's over." <br><br> <<He>> moves to the side as you clamber out, watching you stand and stretch. Before you can get far, the <<nnpc_title "Eden">> grabs your chin, angling it so that you're looking <<him>> in the eye. <br><br> "You'd best behave from now on. This was me being kind." <<His>> face is stern as <<he>> drops <<his>> hand, leaving you standing alone to contemplate the words of warning. <br> <i><span class="gold">Eden has forgiven you, for now.</span> <<if $edenfreedom gte 1>> <<unset $edenfreedom>> You may need to regain <<his>> trust before <<hes>> willing to let you out of the cabin again. <</if>> </i> <br><br> <<link [[Next|Eden Cabin]]>><<unset $edenCaged>><<endevent>><</link>> <br> <<else>> <<if $phase gte 1>> The smell of breakfast wakes you. You sit up and rub your bleary eyes, the cage rattling around you. You're greeted by Eden sat right in front of your cage, a plate of eggs on <<his>> lap. <br> "Morning. Honestly, I wish you were cooking this. But I don't trust you enough yet." <<else>> Eden returns from the kitchen carrying a plate of eggs, and a chair. <<He>> takes a seat right in front of the cage. <br> "Honestly, I wish you were cooking this. But I don't trust you enough yet." <</if>> <br><br> <<He>> ignores you as <<he>> eats, chewing with slow, exaggerated motions. You stare at the eggs, done the way <<he>> always has them, and your stomach rumbles. <br><br> A little bit of food is left when Eden puts down the utensils, and that's when <<he>> finally regards you. "You hungry?" <br><br> <<He>> sets the plate down and opens the cage. You reach for the food, but <<he>> tightly grips your wrist. "No hands. Use your mouth only." <br><br> <<link [[Do as you're told|Eden Caged Breakfast]]>><<set $phase to 1>><<sub 1>><<npcincr Eden trust 5>><<npcincr Eden dom 1>><</link>><<gtrust>><<gdom>> <br> <<link [[Refuse to eat|Eden Caged Breakfast]]>><<set $phase to 0>><<def 1>><<npcincr Eden trust -5>><<npcincr Eden dom -1>><</link>><<ltrust>><<ldom>> <br> <</if>> <<elseif Time.hour lte 16>>/* out hunting */ With Eden outside, you're left alone in your cage. From your claustrophobic position, you can't tell how far <<he>> is, or if <<hes>> even at the cabin. <br><br> <<switch Time.hour>> <<case 9>> <<set _edenCagedPass to 8>> <<case 10>> <<set _edenCagedPass to 7>> <<case 11>> <<set _edenCagedPass to 6>> <<case 12>> <<set _edenCagedPass to 5>> <<case 13>> <<set _edenCagedPass to 4>> <<case 14>> <<set _edenCagedPass to 3>> <<case 15>> <<set _edenCagedPass to 2>> <<default>> <<set _edenCagedPass to 1>> <</switch>> <<capture _edenCagedPass>> <<if $edenCaged.escape gte 9>> <span class="purple">The gate is loose, but you wouldn't get far with Eden so close.</span> You'll have to wait until <<hes>> distracted. <br> <<else>> <<link [[Try to escape|Eden Caged]]>><<set $phase to 1>><<set $edenCaged.escape += 1>><<pass _edenCagedPass hours>><</link>> <</if>> <br> <<link [[Rest|Eden Caged]]>><<set $phase to 2>><<pass _edenCagedPass hours>><</link>> <br> <</capture>> <<elseif Time.hour lte 18>>/* bathtime */ <<if $phase is 2>> <<if random(1)>> Left with only your own thoughts as company and entertainment, you lie back and daydream as the hours pass. <<else>> Tired from the stress of the day, you curl up as comfortably as you can and close your eyes. After a few minutes, you fall into an uneasy sleep. <</if>> <<elseif $phase is 1>> Using your alone time to your advantage, you focus on the hinges with your kicks. Eden doesn't come in after the first few. <<He>> can't hear you, for now. <br><br> <<if $edenCaged.escape gte 9>> The whole cage rattles around you. <span class="green">You feel the gate giving out against your repeated assaults.</span> The sound of Eden chopping wood outside comes to an abrupt stop, and for a moment you fear <<he>>'ll come to investigate. You breathe a sigh of relief at the sound of <<his>> axe swinging down.<<stress 2>><<gstress>> <br><br> <span class="blue">The gate is loose enough that one more good kick will set you free. However, you'll need to wait until Eden's distracted.</span> <<else>> After many strikes, <<if $edenCaged.escape gte 5>> the door loosens, but stays steady enough under your assault. <<else>> you notice it bending a little. <</if>> You hesitate to go any further at the sound of Eden working outside. <</if>> <<else>> You're not given much time alone. Just as soon as <<he>> left, Eden returns from the bathroom, half undressed. <</if>> <br><br> <<if $edenCaged.days gte 1>> Eden comes back in, dabbing at the sweat on <<his>> forehead with <<his>> sleeve. <<He>> makes a bee-line for your cage. "Time for your duties again." <<else>> <<if $phase is 2>> Some time later, Eden wakes you with the sound of the lock coming off and the gate opening. <<elseif $phase is 1>> The door to the cabin swings open. Eden stomps over to the cage and unlocks it. <</if>> "You have duties to fulfil." <<He>> <<npcUndressText `C.npc.Eden` "lower" "self">>. <</if>> <br><br> <<link [[Resist|Eden Caged Sex]]>><<set $molestationstart to 1>><<def 1>><<npcincr Eden trust -10>><<npcincr Eden dom -1>><</link>><<ltrust>><<ldom>> <br> <<link [[Be good|Eden Caged Sex]]>><<set $sexstart to 1>><<sub 1>><<npcincr Eden trust 10>><<npcincr Eden dom 1>><</link>><<gtrust>><<gdom>> <br> <<elseif Time.hour lte 22>>/* dinnertime */ <<if $phase is 2>> Resigned to your cage with nothing else to do, you decide to catch some sleep. When you wake up, your side hurts from the uncomfortable angle you're at. <br><br> The sound of Eden making dinner wakes you up. <<He>> gives you none, and ignores you in favour of reading afterwards. <<elseif $phase is 1>> Using the sound of running water to disguise your struggle, you lie on your back and kick at the cage door. <br><br> <<if $edenCaged.escape gte 9>> The whole cage rattles around you. <span class="green">You feel the gate giving out against your repeated assaults.</span> Wet footsteps approach as Eden stomps out of the bath to investigate, not bothering to cover <<himself>> with a towel. <br> "What was that noise?" <<he>> demands. You shrug innocently. <<He>> scrutinises you, then returns to <<his>> bath. You breathe a sigh of relief.<<stress 2>><<gstress>> <br><br> <span class="blue">The gate is loose enough that one more good kick will set you free. However, you'll need to wait until Eden's distracted.</span> <<elseif $edenCaged.escape gte 5>> More damage forms, but not enough to get free. You hope Eden doesn't notice. <<else>> You barely make a dent. Your sore legs force you to stop before you can cause any real damage. <</if>> <br><br> After <<his>> bath, Eden sits in <<his>> usual spot to read, ignoring you completely and not feeding you when <<he>> eats. <<else>> Eden eats <<his>> dinner in silence. <<He>> doesn't offer you anything, and ignores you in favour of reading afterwards. <</if>> <br><br> <<link [[Ask to go outside|Eden Caged Evening]]>><<set $phase to 1>><</link>> <br> <<link [[Stay silent|Eden Caged Evening]]>><<npcincr Eden trust 5>><<set $phase to 0>><</link>><<gtrust>> <br> <<else>>/* bedtime */ <<if $phase is 2>> Despite the uncomfortable position, you curl up on the layers of blankets and close your eyes. Soon enough, you drift off to sleep. <<elseif $phase is 1>> With Eden snoring peacefully, you get in position and kick with all your might. <<if $edenCaged.escape gte 9>> The whole cage rattles around you. <span class="green">You feel the gate giving out against your repeated assaults.</span> Eden jolts in <<his>> sleep, and for a moment you fear <<he>>'ll wake. You breathe a sigh of relief when you hear <<his>> snoring.<<stress 2>><<gstress>> <br><br> <span class="blue">The gate is loose enough that one more good kick will set you free. However, you'll need to wait until Eden's distracted.</span> <br><br> Having done all you can, you lie on your side and try your best to sleep. <<else>> However, after one strike, you freeze. It was much louder than you were expecting. Over on the furred mattress, the <<nnpc_title "Eden">> stirs briefly, before resting once again. <br><br> It's too risky. You should try again when Eden is distracted with something else. <br><br> Sighing in defeat, you lie on your side and try your best to sleep.<<stress 6>><<gstress>> <</if>> <<else>> Alone with only Eden's snores to keep you company, you wonder what to do. <</if>> <br><br> <<if $phase gte 1>> <<link [[Sleep|Eden Caged]]>><<set $phase to 1>><<cabintime>><<set $edenCaged.days += 1>><</link>> <br> <<else>> <<if $edenCaged.escape gte 9>> <span class="purple">The gate is loose, but you won't get far with Eden so close.</span> You'll have to wait until <<hes>> distracted. <br> <<else>> <<link [[Try to escape|Eden Caged]]>><<set $phase to 1>><<set $edenCaged.escape += 1>><</link>> <</if>> <br> <<link [[Sleep for the night|Eden Caged]]>><<set $phase to 2>><</link>> <br> <</if>> <</if>><<if $molestationstart is 1>> <<set $molestationstart to 0>> <<violence 1>> <<neutral 1>> <<molested>> <<maninit>> <<set $enemyhealth to 600>><<set $enemyhealthmax to 600>><<set $enemyanger += 50>><<set $enemytrust to -200>> Eden's face twists into a snarl as you pull away. <<He>> grabs you by the hair and pulls you forwards. "Do as you're told," <<he>> growls. <<controlloss>> <br><br> <<elseif $sexstart is 1>> <<set $sexstart to 0>> <<consensual>> <<set $consensual to 1>> <<neutral 1>> <<maninit>> <<set $enemyhealth to 600>><<set $enemyhealthmax to 600>><<set $enemyanger += 50>><<set $enemytrust to -200>> Eden presents <<himself>>, pleased when you don't pull away. "Good <<girl>>," <<he>> coos. "See, it's not that difficult, is it?" <br><br> <</if>> <<effects>> <<effectsman>> <<man>> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Eden Caged Sex Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Eden Caged Sex]]>><</link>></span><<nexttext>> <</if>><<set $outside to 0>><<set $location to "cabin">><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<ejaculation>> Satisfied, Eden pulls back and pats your head. "I need you to do this for me. It's why I hate when you're away for so long."<<npcincr Eden trust 10>><<gtrust>> <br><br> <<He>> urges you back into the cage, locking it up, but gives you a smile before <<he>> leaves to run <<his>> bath. <br><br> <<clotheson>> <<endcombat>> <<npc Eden>><<person1>> <<tearful>> you sit in your cage and wonder what to do. <br><br> <<if $edenCaged.escape gte 9>> <span class="teal">The gate is loose. One more good kick will set you free.</span> <br> <<link [[Escape|Eden Caged Escape]]>><</link>> <<else>> <<link [[Try to escape (2:00)|Eden Caged]]>><<set $phase to 1>><<set $edenCaged.escape += 1>><<pass 2 hours>><</link>> <</if>> <br> <<link [[Rest (2:00)|Eden Caged]]>><<set $phase to 2>><<pass 2 hours>><</link>> <br> <<elseif $enemyhealth lte 0>> "You little fucking whore!" Eden yells out, rubbing at <<his>> side. <<He>> kicks you back into the cage, quickly locking it up again.<<pain 10>><<npcincr Eden trust -10>><<ggpain>><<ltrust>> <br><br> "It's a wonder I don't tie you to a tree and leave you for anyone to use," <<he>> threatens, before leaving you alone once more. <br><br> <<clotheson>> <<endcombat>> <<npc Eden>><<person1>> <<tearful>> you sit in your cage and wonder what to do. <br><br> <<if $edenCaged.escape gte 9>> <span class="teal">The gate is loose. One more good kick will set you free.</span> <br> <<link [[Escape|Eden Caged Escape]]>><</link>> <<else>> <<link [[Try to escape (2:00)|Eden Caged]]>><<set $phase to 1>><<set $edenCaged.escape += 1>><<pass 2 hours>><</link>> <</if>> <br> <<link [[Rest (2:00)|Eden Caged]]>><<set $phase to 2>><<pass 2 hours>><</link>> <br> <<else>> Eden leads you to the cage, but stops abruptly. <<He>> pulls you back with a sneer. <br><br> "No," <<he>> snarls. "I decide when we're done." <<set $consensual to 0>><<molested>><<controlloss>> <<trauma 3>><<npcincr Eden trust -5>><<gtrauma>><<ltrust>> <br><br> <<link [[Next|Eden Caged Sex]]>><</link>> <br> <</if>><<set $outside to 0>><<set $location to "cabin">><<effects>> <<if $phase is 1>> <<if $speech_attitude is "meek">> "E-Eden?" you mumble. "My legs hurt. C-can I walk around for a little bit, please?" <<elseif $speech_attitude is "bratty">> "Hey, I'm in pain over here," you call out. "Let me out for a few minutes, will you?" <<else>> "Hey, my legs are aching," you say. "Any chance I can stretch?" <</if>> <br><br> Eden cocks an eyebrow at your request, putting <<his>> book down before walking over to the cage. Squatting down to make eye contact, <<he>> smirks. "What do I get in return?" <br><br> <<link [[Offer to get <<him>> off|Eden Caged Evening 2]]>><<set $phase to 0>><<npcincr Eden trust 5>><<npcincr Eden dom 1>><</link>><<gtrust>><<gdom>> <br> <<link [[Never mind|Eden Caged Evening 2]]>><<set $phase to 1>><<npcincr Eden trust -5>><<npcincr Eden dom -1>><</link>><<ltrust>><<ldom>> <br> <<else>> The rest of the night is silent, the crackling of the fire and pages in Eden's book turning all you can hear. A few hours pass before the <<nnpc_title "Eden">> gets up and gets ready for bed. <br><br> "Behave and I might let you back in the bed one day," <<he>> says before climbing onto the furred mattress and falling asleep. <br><br> Alone with only Eden's snores to keep you company, you wonder what to do. <br><br> <<if $edenCaged.escape gte 9>> <span class="purple">The gate is loose, but you wouldn't get far with Eden so close.</span> You'll have to wait until <<hes>> distracted. <br> <<else>> <<link [[Try to escape (5:00)|Eden Caged]]>><<set $phase to 1>><<set $edenCaged.escape += 1>><<pass 5 hours>><</link>> <</if>> <br> <<link [[Sleep for the night (5:00)|Eden Caged]]>><<set $phase to 2>><<pass 5 hours>><</link>> <br> <</if>><<set $outside to 0>><<set $location to "cabin">><<effects>> <<if $phase is 1>> "Actually, I'm okay," you insist. <br><br> Eden's face drops and <<he>> grinds <<his>> jaw. Undoing the lock, <<he>> reaches in and grabs you by the hair. <<He>> drags you out of the cage and starts pulling your legs apart. <br><br> "Teasing me like that isn't fair, you know? You should know better." <br><br> <<link [[Next|Eden Caged Evening Sex]]>><<set $molestationstart to 1>><</link>> <br> <<else>> <<if $speech_attitude is "meek">> "I-I can do my 'spousal duties', if you want me to?" You bat your eyelashes a few times for extra measure. <<elseif $speech_attitude is "bratty">> "Why don't you let me out and find out for yourself." You wink up at <<him>>. <<else>> "Yeah, I'll do it." You smile up at <<him>>, hoping <<hes>> satisfied. <</if>> <br><br> Eden seems eager as <<he>> fiddles with the lock, reaching in to pull you out even as you move forwards yourself. <br><br> "You're being good for me," <<he>> chuckles. "Maybe I'll help you get off, too?" <br><br> <<link [[Next|Eden Caged Evening Sex]]>><<set $sexstart to 1>><</link>> <br> <</if>><<if $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<maninit>> <<set $enemyhealth to 600>><<set $enemyhealthmax to 600>><<set $enemyanger += 50>><<set $enemytrust to -200>> <<elseif $sexstart is 1>> <<set $sexstart to 0>> <<consensual>> <<set $consensual to 1>> <<neutral 1>> <<maninit>> <<set $enemyhealth to 600>><<set $enemyhealthmax to 600>><<set $enemyanger += 50>><<set $enemytrust to -200>> <</if>> <<effects>> <<effectsman>> <<man>> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Eden Caged Evening Sex Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Eden Caged Evening Sex]]>><</link>></span><<nexttext>> <</if>><<set $outside to 0>><<set $location to "cabin">><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<ejaculation>> <<if $consensual is 1>> For a brief moment, Eden seems kind again as <<he>> caresses your cheek.<<npcincr Eden trust 10>><<gtrust>> <br> Kissing your forehead, <<he>> draws back. "Come on. You can have five minutes outside." <br><br> <<clotheson>> <<endcombat>> <<npc Eden>><<person1>> <<link [[Next|Eden Caged Evening Stretch]]>><</link>> <br> <<else>> The anger recedes from Eden's face, brows relaxing as <<he>> lets you go.<<npcincr Eden trust 10>><<gtrust>> <br> "Good pet. Shame that you changed your mind on the exchange, though. I might have let you walk around on your leash a little before bed." <br><br> Getting up from you, Eden fixes <<his>> clothes, then puts you back in the cage, locking it tight once more. <<He>> returns to <<his>> spot by the fire. <br><br> <<clotheson>> <<endcombat>> <<npc Eden>><<person1>> <<link [[Next|Eden Caged Evening]]>><<set $phase to 0>><</link>> <br> <</if>> <<elseif $enemyhealth lte 0>> Growling in frustration, the <<nnpc_title "Eden">> shoves you back into the cage. It's locked tight before you can regain your balance. <br> "You're really testing my fucking patience," <<he>> grunts. "I'm being gentle right now, you'll see."<<npcincr Eden trust -10>><<ltrust>> <br><br> Getting up from the floor, Eden fixes <<his>> clothes. Then, <<he>> returns to <<his>> spot by the fire, with a slight limp in <<his>> step. <br><br> <<clotheson>> <<endcombat>> <<npc Eden>><<person1>> <<link [[Next|Eden Caged Evening]]>><<set $phase to 0>><</link>> <br> <<else>> Eden leads you to the cage, but stops abruptly. <<He>> pulls you back with a sneer. <br><br> "No," <<he>> snarls. "I decide when we're done." <<set $consensual to 0>><<molested>><<controlloss>> <<trauma 3>><<npcincr Eden trust -5>><<gtrauma>><<ltrust>> <br><br> <<link [[Next|Eden Caged Evening Sex]]>><</link>> <br> <</if>><<set $outside to 0>><<set $location to "cabin">><<effects>> <<tearful>> you crawl out of the cage. The stiffness slowly leaves your body as you rise to your feet. <br><br> <<if $worn.neck.name is "familiar collar" and $worn.neck.cursed is 1>> <<He>> looks at your neck and presses <<his>> lips into a thin line. <<npcincr Eden trust -5>><<ltrust>> <br><br> "If you even think of running, it won't end well for you," <<he>> threatens <<elseif $worn.neck.collared isnot 1>> While you're standing and stretching, you feel something cold wrap around your neck, with a familiar clicking sound. It's a new collar. <<leash 21>> <<elseif $worn.neck.collared is 1 and !$worn.neck.type.includes("leash")>> While you're standing and stretching, you feel something click to your collar. It's a leash. <<attach_leash>> <</if>> "Come on." Eden tugs on your <<if $worn.neck.name is "familiar collar" and $worn.neck.cursed is 1>>wrist<<else>>leash<</if>> as <<he>> heads towards the door. You follow <<him>> outside, breathing in the fresh air. The <<nnpc_title "Eden">> keeps <<if $worn.neck.name is "familiar collar" and $worn.neck.cursed is 1>>close to you<<else>>your leash in <<his>> hand<</if>> as you walk around the clearing. <<He>> watches your every move.<<stress -6>><<lstress>> <br><br> After a few minutes, <<he>> calls out for you again. "That's enough. Come on, time for bed now." <br><br> You're taken back inside and returned to the confines of the metal prison you currently call home. Eden climbs into bed. <br> "Keep being good like that and I'll let you back on the bed soon." <br><br> Alone with only Eden's snores to keep you company, you wonder what to do. <br><br> <<if $edenCaged.escape gte 9>> <span class="purple">The gate is loose, but you wouldn't get far with Eden so close.</span> You'll have to wait until <<hes>> distracted. <br> <<else>> <<link [[Try to escape (5:00)|Eden Caged]]>><<set $phase to 1>><<set $edenCaged.escape += 1>><<pass 5 hours>><</link>> <</if>> <br> <<link [[Sleep for the night (5:00)|Eden Caged]]>><<set $phase to 2>><<pass 5 hours>><</link>> <br><<set $outside to 0>><<set $location to "cabin">><<effects>> <<if $phase is 1>> <<if $speech_attitude is "meek">> Spurred by your hunger, you eagerly lap at the plate. Eden lets out a small chuckle at the sight. You blush, but pay <<him>> no mind. <<elseif $speech_attitude is "bratty">> Even as the shame makes your cheeks flush, your hunger gnaws at your gut. You swallow your pride and peck at Eden's leftovers. <<else>> It's humiliating, but you're too hungry to care. Lowering your head, you eat what's left of Eden's breakfast. <</if>> <br><br> It's messy, and you get food all over your face. Eden gently pats your head in encouragement. When you're done, <<he>> takes the plate away and returns with a towel to clean your face with. There's a heated look in <<his>> eyes as <<he>> urges you back into confinement. "I'll come get you in a bit for some exercise. Rest." <br><br> Eden leaves to get dressed, then heads outside, leaving you alone in the cabin. You sit in your cage and wonder what to do. <br><br> <<if $edenCaged.escape gte 9>> <span class="purple">The gate is loose, but from your claustrophobic position, you can't tell how far Eden's gone.</span> You can't risk escaping yet. <br> <<else>> <<link [[Try to escape (10:00)|Eden Caged]]>><<set $phase to 1>><<set $edenCaged.escape += 1>><<pass 10 hours>><</link>> <</if>> <br> <<link [[Rest (10:00)|Eden Caged]]>><<set $phase to 2>><<pass 10 hours>><</link>> <br> <<else>> <<if $speech_attitude is "meek">> "I-I'm not that hungry, it's okay," you stammer out while looking at the floor. <<elseif $speech_attitude is "bratty">> "I'm fine, actually," you say through grit teeth. "I'll eat later." <<else>> "It's okay," you say, shaking your head. "I'm not hungry." <</if>> <br><br> Eden picks up the plate and places it next to the sink, giving you a brief glimpse of the unguarded door, but <<he>> returns before you can bolt. And <<he>> looks angry. <br><br> "What, is my cooking not good enough for you? Fine. You can have something else." <br><br> <<link [[Next|Eden Caged Breakfast Oral]]>><<set $molestationstart to 1>><</link>> <br> <</if>><<if $molestationstart is 1>> <<set $molestationstart to 0>> <<violence 1>> <<neutral 1>> <<molested>> <<maninit>> <<He>> pulls your face against <<his>> crotch. <<controlloss>> <br><br> <<npcoral>><<set $NPCList[0].lefthand to "hair">> <<set $enemyhealth to 600>><<set $enemyhealthmax to 600>><<set $enemyanger += 50>><<set $enemytrust to -200>> <</if>> <<effects>> <<effectsman>> <<man>> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Eden Caged Breakfast Oral Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Eden Caged Breakfast Oral]]>><</link>></span><<nexttext>> <</if>><<set $outside to 0>><<set $location to "cabin">><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<ejaculation>> The <<nnpc_title "Eden">> pants as <<he>> lets you go. "Taste good? I sure felt good," <<he>> laughs.<<npcincr Eden trust 10>><<gtrust>> <br><br> <<He>> pushes you backwards, not with much force, but it's unexpected enough that you tumble back into the cage. You're shut in once more. "I'll come get you later." <<He>> smirks. "Don't go far." <<else>> Furious, Eden backhands you before booting you back into confinement. "You can fucking stay in there and think over why you're being such a brat. I hope you change your mind this time."<<npcincr Eden trust -10>><<ltrust>> <br><br> <<He>> storms over to the partition to get ready before heading outside. <</if>> <br><br> <<clotheson>> <<endcombat>> <<npc Eden>><<person1>> <<tearful>> you sit in your cage and wonder what to do. <br><br> <<if $edenCaged.escape gte 9>> <span class="purple">The gate is loose, but from your claustrophobic position, you can't tell how far Eden's gone.</span> You can't risk escaping yet. <br> <<else>> <<link [[Try to escape (10:00)|Eden Caged]]>><<set $phase to 1>><<set $edenCaged.escape += 1>><<pass 10 hours>><</link>> <</if>> <br> <<link [[Rest (10:00)|Eden Caged]]>><<set $phase to 2>><<pass 10 hours>><</link>> <br><<set $outside to 0>><<set $location to "cabin">><<effects>> The sound of running water is enough cover to kick at the gate again. Using all of your strength, you lash out - once, twice, three times before the hinges pop loose. <br><br> The adrenaline surges through your veins. If you want to escape, now's your chance. <br><br> <<link [[Run for it|Eden Caged Freedom]]>><<set $phase to 1>><<set $stress -= 1000>><<npcincr Eden dom -1>><</link>><<llltrust>><<ldom>> <br> <<link [[Stay|Eden Caged Freedom]]>><<set $phase to 0>><<npcincr Eden trust 200>><<npcincr Eden dom 1>><</link>><<gggtrust>><<gdom>> <br><<set $outside to 0>><<set $location to "cabin">><<effects>> <<if $phase is 1>> Determined to be free, you crawl out of the metal prison, knees popping as you stand. You're able to snatch a towel and wrap it around yourself before creeping to the door, your heart pounding with each step. But Eden doesn't notice. <<towelup>> <br><br> Sliding through the slight crack you make in the door, your feet move before your brain registers the feeling. At a full sprint, you make your way into the forest, the cabin fading behind the trees the further you get. <br><br> You know that Eden will be mad when <<he>> finds you again. <br><br> <<link [[Next|Forest]]>><<unset $edenCaged>><<set $edenCagedEscape to true>><<endevent>><<set $eventskip to 1>><<set $forest to 80>><</link>> <br> <<else>> The cage door pops open off its hinges, and for a fleeting moment hope blooms in your chest at the prospect of escape. However, the hope is soon replaced by guilt when you remember how hurt Eden was bringing you home. <br><br> Swallowing, you sit back down and hug your legs to your chest. Soon, Eden emerges from the bathroom, drying <<his>> hair off with a towel. <<He>> pauses when <<he>> sees the state of the cage. <br><br> "You're that sick of being cooped up, huh?" <<he>> says. "Well, I can't blame you for that. Come on, you've earned your place. Just don't piss me off again." Eden juts <<his>> finger in your face as you crawl out. <br><br> You watch as <<he>> folds the cage up and puts it away. You hope you never see it again. <br> <i><span class="gold">Eden has forgiven you, for now.</span> <<if $edenfreedom gte 1>> <<unset $edenfreedom>> You may need to regain <<his>> trust before <<hes>> willing to let you out of the cabin again. <</if>> </i> <br><br> <<link [[Next|Eden Cabin]]>><<unset $edenCaged>><<endevent>><</link>> <br> <</if>><<set $outside to 1>><<set $location to "cabin">><<effects>><<set $bus to "edenclearing">> <<npc Eden>><<person1>> <<if $edenFluidsCheck is "run">> /* after run, return to the cabin */ Nervous, you walk into the clearing. Eden may still be mad. <br><br> You don't see <<him>> at first, not until you hear a twig snap behind you. <<if $goocount gt 0 or $semencount gt 0>> /* with fluids on you */ "You're still covered in all of that. It's disgusting."<<npcincr Eden love -20>><<llllove>> <br><br> You see Eden reaching for you in the corner of your eye. <<else>> /* clean */ "Just because you washed, doesn't mean I forgot." <br><br> You see Eden reaching for you from the corner of your eye. <<set $edenFluidsCheck to "clean">> <</if>> <<else>> <<for _bodyPart, _fluids range $player.bodyliquid>> <<if _fluids.goo gte 1 or _fluids.semen gte 1>> <<set _bodyFluids to _bodyPart>> <<break>> <</if>> <</for>> You burst through the trees into the clearing. Eden pauses <<his>> task to look at you. <<He>> does a double take, and <<his>> face screws up when <<he>> sees the fluids on your <<bodypart _bodyFluids>>. <<stress 6>><<gstress>> <br><br> Eden marches towards you, snarling. "Who touched you?"<<npcincr Eden love -30>><<llllove>> <</if>> <br><br> <<link [[Run|Eden Fluids Punishment 2]]>><<set $phase to 1>><<def 1>><<npcincr Eden love -10>><<npcincr Eden dom -1>><</link>><<lllove>><<ldom>><<athleticsdifficulty 650 900>> <br> <<link [[Stay still|Eden Fluids Punishment 2]]>><<set $phase to 0>><<sub 1>><<npcincr Eden dom 1>><</link>><<gdom>><<set $outside to 1>><<set $location to "cabin">><<effects>><<set $bus to "edenclearing">> <<if $phase is 0>> /* Stay still */ <<if $edenFluidsCheck is "run" or $edenFluidsCheck is "clean">> Eden's hand is rough as <<he>> grabs your arm, the <<nnpc_title "Eden">> grasping so hard <<his>> nails dig into your skin. <<pain 2>><<gpain>> <<else>> You shiver as Eden comes closer, jumping when <<his>> hand grabs your arm. <<He>> examines you closer, <<his>> lip curling in disgust. <br><br> "I've been too gentle with you." <</if>> <br><br> <<link [[Next|Eden Fluids Punishment 3]]>><</link>> <<else>> /* Run */ <<if $edenFluidsCheck is "run">> Not wanting to be hurt again, you turn and begin sprinting into the forest. <<else>> Scared of what Eden may do, you turn and begin sprinting into the forest. <</if>> <<He>> yells after you, insisting that you come back. You can hear <<him>> running after you. <<stress 6>><<gstress>> <br><br> <<if $athleticsSuccess>> You run for a while, getting scratched as you push past branches. <<gpain>><<pain 2>> <br><br> Eventually, Eden's yelling gets quieter until it stops completely. <span class="green">You've lost <<him>>.</span> <br><br> It takes a while to catch your breath as the adrenaline runs through you. <span class="red">Returning to the cabin may be dangerous.</span> <br><br> <<link [[Next|Forest]]>><<set $edenFluidsCheck to "run">><<endevent>><<set $eventskip to 1>><<set $forest to random(50, 75)>><</link>> <<else>> You push yourself as hard as you can, <span class="red">but Eden catches up.</span> <<He>> tackles you to the ground and the air leaves your lungs as you crash into the dirt. <<pain 4>><<gpain>> <br><br> <<if $edenFluidsCheck is "clean">> "You're such an ungrateful brat," <<he>> growls as <<he>> punches you in the back of the head. <<pain 4>><<gpain>> <<else>> "<<if $edenFluidsCheck is "run">>I never thought that you'd be a cheat,<<else>>After all I've done, this is the thanks I get?<</if>>" Eden growls as <<he>> punches you. <<pain 8>><<ggpain>> <</if>> <br><br> Dizzy from the punch, you can't fight <<him>> as <<he>> hauls you onto <<his>> shoulder. When you come back to your senses, Eden spanks you every time you attempt to struggle. Soon enough you return to the cabin. <br><br> <<link [[Next|Eden Fluids Punishment 3]]>><</link>> <</if>> <</if>><<set $outside to 0>><<set $location to "cabin">><<effects>><<set $bus to "edencabin">> <<if $edenFluidsCheck is "clean">> <<if $phase is 0>> /* Stay still */ Eden grasps your hand and pulls you back into the cabin. <<He>> flings you to the floor as <<he>> reaches behind a wardrobe to get something. It's the cage. <<stress 6>><<gstress>> <<else>> /* Run */ You're led inside and dropped onto the hardwood floor as Eden reaches behind a wardrobe. <<He>> brings out the cage. <<stress 6>><<pain 4>><<gstress>><<gpain>> <</if>> <<else>> <<if $phase is 0>> /* Stay still */ Eden pulls you towards the spring behind the cabin, <<his>> grip never loosening. When you get to the edge, <<he>> pushes you in before you can ask <<him>> what <<he>> is doing. <br><br> <<else>> /* Run */ Eden doesn't stop as <<he>> walks up to the cabin, instead walking past to the spring behind. "<<if $edenFluidsCheck is "run">>I hate how you smell right now.<<else>>You're not coming inside until you're clean.<</if>>" <br><br> There is no warning when Eden throws you into the spring. <</if>> <<if $edenspring gte 4>> /* spring is clean */ The water is a shock, and panic sets in as Eden grabs your hair and keeps you under for a few seconds. <<else>> The water is a shock, and the debris hurts as a hand grasps the back of your neck, keeping you down for a few seconds. <<pain 2>><<gpain>> <</if>> <br><br> Eden pulls you back up, letting you gasp for air as <<he>> begins to strip you of your clothes. <<wash>><<ruined>> <br><br> <<Hes>> quiet as <<he>> roughly washes you with a rag from <<his>> belt. It smells like <<him>>, you think it's the towel <<he>> used to wipe sweat away after working. <<npcincr Eden lust 5>><<glust>> <br><br> "I'm hurt," <<he>> finally says. <<His>> tone is still angry. <br><br> When you're clean, Eden grasps your hand and pulls you back into the cabin. <<He>> flings you to the floor as <<he>> reaches behind a wardrobe to get something. It's the cage. <<stress 6>><<gstress>> <br><br> "You obviously need more time to think about what you've done." <</if>> <<set $edenFluidsCheck to "Eden">> <br><br> <<link [[Run|Eden Fluids Punishment 4]]>><<set $phase to 1>><<def 1>><<npcincr Eden love -10>><<npcincr Eden dom -1>><</link>><<lllove>><<ldom>><<athleticsdifficulty 650 900>> <br> <<link [[Accept your punishment|Eden Fluids Punishment 4]]>><<set $phase to 0>><<sub 1>><<npcincr Eden dom 1>><</link>><<gdom>><<effects>> <<if $phase is 0>> /* Accept your punishment */ Eden is right. You betrayed <<his>> trust. You should accept your punishment. <br><br> You crawl into the cage as Eden holds the gate open, flinching as <<he>> slams it shut. <br><br> "Don't go thinking that I'll be kinder just because you're behaving now." <<ruined>> <<unset $edenCagedEscape>> <<unset $edenescape>> <<set $NPCName[$NPCNameList.indexOf("Eden")].trust to 0>> <<set $edenCaged to {}>> <<set $edenCaged.escape to 0>> <<set $edenCaged.days to 0>> <br><br> <<link [[Next|Eden Caged]]>><<set $phase to 0>><</link>> <<else>> /* Run */ <<if $athleticsSuccess>> Not wanting to be locked away, you bolt out of the door. Eden curses before giving chase. You keep going into the forest, not looking back. <br><br> You run for a while, getting scratched as you push past branches. <<gpain>><<pain 2>> <br><br> Eventually, Eden's yelling gets quieter until it stops completely. <span class="green">You've lost <<him>>.</span> <br><br> It takes a while to catch your breath as the adrenaline runs through you. <span class="red">Returning to the cabin may be dangerous.</span> <br><br> <<link [[Next|Forest]]>><<set $edenCagedEscape to true>><<endevent>><<set $eventskip to 1>><<set $forest to random(50, 75)>><</link>> <<else>> Not wanting to be locked away, you try to bolt for the door. <span class="red">Eden is quicker than you are.</span> <<He>> grips your hair, pulling you back towards the cage. <br><br> "You better learn well from this." <br><br> Eden throws you into the cage, locking it with a padlock. <<ruined>> <<unset $edenCagedEscape>> <<unset $edenescape>> <<set $NPCName[$NPCNameList.indexOf("Eden")].trust to 0>> <<set $edenCaged to {}>> <<set $edenCaged.escape to 0>> <<set $edenCaged.days to 0>> <br><br> <<link [[Next|Eden Caged]]>><<set $phase to 0>><</link>> <</if>> <</if>><<if $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<maninit>><<set $enemyhealth to 600>><<set $enemyhealthmax to 600>><<set $enemyanger += 50>> <</if>> <<effects>> <<effectsman>> <<man>> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Eden Rape Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Eden Rape]]>><</link>></span><<nexttext>> <</if>><<set $outside to 0>><<set $location to "cabin">><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<ejaculation>><<npcincr Eden lust -20>> Eden hovers over you for a few seconds to catch <<his>> breath before <<he>> moves away.<<lllust>> <br><br> "You're lucky I'm not tying you up again for being a brat," <<he>> mutters as <<he>> leaves you on the floor.<<stress 20>><<gstress>> <br><br> <<tearful>> you avoid <<his>> gaze. <<else>> <<npcincr Eden love -10>> Hissing, Eden backs away from you. <br><br> "This was your idea in the first place," <<he>> spits. "Maybe I shouldn't let you stay away for so long if you're going to be like this." <br><br> <<He>> storms off, leaving you alone on the floor.<<lllove>> <br><br> <<tearful>> you gather yourself. <</if>> <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Eden Cabin]]>><</link>><<set $outside to 0>><<set $location to "cabin">><<effects>><<seenPassage>> <<noClothingCheck>> <<if _nude is false>> <<strip>><<set $edenClothes to true>> <<else>> <<strip>> <</if>> <<if $edenradiointro is 2>> You search around for a suitable place to hide the romance book and settle on a nearby cabinet. On your way to the bathroom, inspiration strikes, and you turn on the radio to set the atmosphere. <<else>> On your way to the bathroom, you search around for a suitable place to hide the romance book and settle on a nearby cabinet. <</if>> Inside, you run the bath, adding the bath oil to the water as the tub fills; the pleasant aroma that ensues permeates the air throughout the cabin. You strip bare and sink into the soothing hot water as you hear Eden enter. <br><br> <<link [[Next|Eden Valentines Bath 2]]>><<npcincr Eden love 1>><<pass 30>><<wash>><</link>><<effects>> Eden's footsteps momentarily pause by the door before you hear them tentatively approach the bathroom. Surprise adorns <<his>> face as <<he>> enters and takes in the sight of you, waiting for <<him>> naked and splayed out in <<his>> tub. Seeing <<his>> expression, you throw <<him>> a coy smile and beckon <<him>> over. The shock on <<his>> face quickly melts into love as <<he>> chuckles and strips, walking over to you. <br><br> "This is unexpected," <<he>> says, climbing in the tub. <br> <<if $valentines_eden_breakfast is 1>> <<if $speech_attitude is "meek">> "I-I wanted to thank you for breakfast," you answer, <<elseif $speech_attitude is "bratty">> "Thought I could repay you for breakfast," you answer, <<else>> "I thought I could repay you for breakfast," you answer, <</if>> <<else>> You giggle, <</if>> folding your legs to give <<him>> some room. <br><br> <<if $valentines_eden_breakfast is 1>> Eden faintly smiles at your words and reclines in the water. <<else>> Eden faintly smiles at your laughter and reclines in the water. <</if>> <<if $edenradiointro is 2>> The music, warmth and scent of the oils lull the both of you into relaxation. <<else>> The warmth and scent of the oils lull the both of you into relaxation. <</if>> <br><br> <<link [[Wash Eden (0:30)|Eden Valentines Wash]]>><<npcincr Eden love 1>><<pass 30>><</link>><<glove>> <br> <<link [[Just relax (0:30)|Eden Valentines Relax]]>><<stress -12>><<pass 30>><</link>><<lstress>><<effects>> You and Eden relax in the tub. You feel <<his>> gaze slide up your body, until <<he>> meets your eyes. You smile at <<him>> and <<he>> faintly smiles back. <br><br> You both continue staring at one another with tender desire, <<his>> expression unusually soft as <<he>> regards you. <br><br> <<link [[Next|Eden Valentines Bath 3]]>><<clotheson>><</link>><<effects>><<wearProp "sponge">> You grab the sponge and hold it up. Eden turns <<his>> back to you and you start scrubbing. After finishing, you try to place the sponge down, but Eden stops you. <br><br> "Do you want me to wash you too?" <<he>> asks. <br><br> <<link [[Nod|Eden Valentines Wash Nod]]>><<handheldon>><<npcincr Eden dom 1>><</link>><<gdom>> <br> <<link [[Refuse|Eden Valentines Bath 3]]>><<clotheson>><</link>><<effects>> You turn your back to Eden, and <<he>> starts scrubbing you all over. Part way through, <<he>> hits a particularly ticklish spot. You bring your hands up to your mouth and barely stifle a giggle, but Eden notices all the same. <br><br> <<He>> smiles at your laughter and lays a gentle kiss on your neck before continuing. <br><br> <<link [[Next|Eden Valentines Bath 3]]>><<clotheson>><</link>><<effects>> After a while, the water starts to get cold. Eden slowly begins to sit up. <br><br> "I think we should get up now," <<he>> says, rising out of the water. <br> <<if $speech_attitude is "meek">> "I-I thought you usually stay in longer," you say, watching as <<he>> steps out of the tub. <<elseif $speech_attitude is "bratty">> "Don't you usually stay in longer?" you ask, throwing <<him>> a questioning glance as <<he>> steps out of the tub. <<else>> "I thought you usually stay in for a bit longer," you say, watching as <<he>> steps out of the tub. <</if>> <br> Eden looks away from you, sporting a slight blush. "I thought we could spend more time together." You can't help but smile at <<his>> rare display of bashfulness. <br><br> <<He>> helps you out of the tub and the both of you dry off before leaving the bathroom together, hand in hand. <<takeHandholdingVirginity "Eden" "romantic">> <br><br> <<if $edenradiointro is 2>> <<link [[Next|Eden Valentines Dance]]>><</link>> <<else>> <<link [[Next|Eden Valentines Book]]>><</link>> <</if>><<effects>> As you step into the cabin's living area, the melody playing from the radio catches your attention. Something about it sounds strangely familiar. Then it hits you. It's the song. The first song that you and Eden danced to. <br><br> You glance at Eden. By the look on <<his>> face, it seems <<hes>> had the same realisation as you. A look of determination flashes in <<his>> eyes and <<he>> turns to you. There's no hesitation this time. Being the first to act, <<he>> wraps <<his>> hands around your waist and pulls you towards <<him>>. You wind yours around <<his>> neck in turn and, once again, begin your slow waltz around the cabin. <br><br> <<link [[Next|Eden Valentines Dance 2]]>><<npcincr Eden love 1>><</link>><<effects>> As Eden holds you in <<his>> arms, the rest of the world seems to fade away. Even though you've danced before, this moment seems different. It's a familiar mix of tenderness and nostalgic vulnerability. Eden seems to feel it too, and although <<hes>> improved, a recognisable but no less endearing clumsiness leaks into <<his>> movements. As a matter of fact, <<his>> light blush and awkward missteps bring you back to the way <<he>> bared <<his>> heart to you in the first dance you shared. <br><br> You look back at the memory and realise that this is what makes Eden who <<he>> is. Through <<his>> outer brashness to the softness <<he>> hides deep down, you see how much Eden has tried for you, and as a result, how far you've come together. It makes you realise that even if <<he>> may not know how to say it, it's through moments like these, moments of bumbling laughter and static-filled love songs, moments that belong to the both of you, that truly show the genuine depths of <<his>> love. <br><br> <<link [[Next|Eden Valentines Dance 3]]>><<npcincr Eden love 1>><</link>><<effects>> The song comes to an end, and for a moment, you and Eden stay still. Time stops and you share a private slice of forever in that moment together. It passes in mere seconds but to the two of you it is an eternity, one that ends far too soon. As the world comes rushing back, Eden captures your lips in a sweet kiss. It's as genuine as you remember, but it warms your heart all the same. <br><br> <<link [[Next|Eden Valentines Book]]>><</link>><<effects>> Stepping away from Eden, you walk to the cabinet where you hid the romance book and pull it out. <<He>> raises <<his>> eyebrows as you hand it to <<him>>. "Wow," <<he>> chuckles, turning the book over in <<his>> hands. "You're full of surprises today." <<He>> pauses for a second, seemingly contemplating something. <br><br> "We have some time before dinner. Feel like reading this now?" <<he>> asks, glancing to you. <br><br> <<link [[Read it to Eden instead (0:20)|Eden Valentines Read]]>><<pass 20>><</link>> <br> <<link [[Nod (0:20)|Eden Valentines Book 2]]>><<pass 20>><</link>> <br> <<link [[Refuse|Eden Valentines Book Refuse]]>><</link>><<effects>> You shake your head. Eden shrugs, before walking over to you and kissing your forehead. "Thanks for today," <<he>> says, putting the book away and walking to the kitchen to start dinner. <br><br> <<link [[Next|Eden Cabin]]>><</link>><<effects>> <<if $speech_attitude is "meek">> "C-Could I read it this time?" you ask. <<elseif $speech_attitude is "bratty">> "How about I read this time?" you ask. <<else>> "Could I read it to you this time?" you ask. <</if>> Eden looks at you quizzically, but shrugs. "Sure," <<he>> says, handing you the book. You accompany Eden to the fireplace where <<he>> sets the book down and begins to get the fire going. Once the flames burn high, <<he>> sits and takes hold of the literature, motioning for you to join <<him>> on the floor. <br><br> Once comfortably snuggled into <<his>> chest, you open the book and start reading. <br><br> Halfway through the first chapter, you feel Eden kiss your neck. You pause and try to face <<him>>, but <<he>> doesn't stop. Eden brings <<his>> lips to your ear. "Keep going," <<he>> whispers, as <<he>> slides <<his>> hand over your stomach. <br><br> It's getting hard to read while Eden's distracting you. <br><br> <<link [[Embrace Eden|Eden Valentines Sex]]>><<set $sexstart to 1>><</link>> <br> <<link [[Push Eden away|Eden Valentines Push]]>><</link>> <br><<effects>> You accompany Eden to the fireplace where <<he>> sets the book down and begins to get the fire going. Once the flames burn high, <<he>> sits and takes hold of the literature, motioning for you to join <<him>> on the floor. <br><br> You snuggle into <<his>> chest and breathe deeply, taking in <<his>> unique scent as you watch <<him>> open to the first page and begin to read. <br><br> <<link [[Distract Eden|Eden Valentines Distract]]>><</link>> <br> <<link [[Just listen|Eden Valentines Listen]]>><</link>><<effects>> Eden reads to you for some time, until <<he>> stops, looking out at the window. You shift your gaze to the scenery outside and see that it's getting dark out. "I need to start dinner," <<he>> notes. <br><br> Before pulling away from you, Eden presses a gentle kiss to your forehead. "Thanks for today," <<he>> says, "and Happy Valentine's." <br><br> The both of you share one last smile as <<he>> stores the book away and walks to the kitchen. <br><br> <<link [[Next|Eden Cabin]]>><<endevent>><</link>><<effects>> Midway through the first chapter, you turn to Eden and lay a soft kiss on <<his>> neck. <<He>> abruptly stops reading and glances toward you. Deciding to take it a step further, you pepper <<his>> neck with kisses and slide your hands under <<his>> shirt, running it teasingly over <<his>> stomach. Eden's breath starts to pick up. <br><br> Shifting <<his>> attention to you, <<he>> places the book aside and gently guides you onto the cabin floor. <br><br> <<link [[Embrace Eden|Eden Valentines Sex]]>><<set $sexstart to 1>><</link>> <br> <<link [[Push Eden away|Eden Valentines Distract Push]]>><</link>><<effects>> You push Eden away from you. <<He>> looks frustrated and paws at you a little harder, but eventually relents and gets off, walking to the kitchen to start dinner. <br><br> <<link [[Next|Eden Cabin]]>><<endevent>><</link>><<effects>> You push Eden away from you. <<He>> chuckles and buries <<his>> head in your neck, laying down one final kiss. You read to Eden for a bit longer before <<he>> gets up to make dinner. <br><br> <<link [[Next|Eden Cabin]]>><<endevent>><</link>><<if $sexstart is 1>> <<set $sexstart to 0>> <<consensual>> <<set $consensual to 1>> <<neutral 1>> <<maninit>> <<set $enemytrust += 100>> <<set $enemyhealth to 600>> <<set $enemyhealthmax to 600>> <</if>> <<effects>> <<effectsman>> <<man>> <<stateman>> <br><br> <<actionsman>> <span id="next"> <<if _combatend>> <<link [[Next|Eden Valentines Sex Finish]]>><</link>> <<else>> <<link [[Next|Eden Valentines Sex]]>><</link>> <</if>> </span><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<ejaculation>> <<npcincr Eden lust -20>><<npcincr Eden love 1>> Eden holds you close to <<his>> chest and strokes your hair.<<glove>><<llust>> <<elseif $enemyhealth lte 0>> "On Valentine's Day?" Eden asks, exasperated. <<He>> winces and holds <<his>> side. "I need to get something for this." <<llove>><<npcincr Eden love -1>> <br><br> <<He>> leaves you by the fireplace. <<elseif $finish is 1 or $phase is 1>> "Okay," <<he>> says, pulling away from you. <</if>> <br><br> <<clotheson>> <<endcombat>> <<npc Eden>><<person1>> <<link [[Next|Eden Valentines Book 3]]>><</link>><<effects>> The two of you lie on the cabin floor, the romance story long forgotten. After a bit, Eden lifts <<himself>> off you and helps you sit up. You both stay curled by the fireplace for a bit longer. Staring into the flames, part of you feels disheartened, wishing that moments like these could last forever. Seeing Eden shift <<his>> gaze to the slowly darkening sky, you can tell <<he>> feels the same way. <br><br> <<if $edenradiointro is 2>> A short while later, Eden breaks the silence. "Thanks for today," <<he>> says, "and Happy Valentine's." As <<he>> presses a gentle kiss to your forehead, you come to another realisation. Moments like these are special because of Eden's love. Since it's something that <<he>> carries for you always, it means that every moment with <<him>> is special, from <<his>> clumsy attempts at dancing to the way <<hes>> holding you now. And as Eden whispers three special words to you so softly that you can barely hear it, you smile, because you know that as long as you're together, moments like these never truly have to end. <<else>> A short while later, Eden breaks the silence. "Thanks for today," <<he>> says, "and Happy Valentine's." As <<he>> presses a gentle kiss to your forehead, you come to a realisation. Moments like these are special because of Eden's love. Since it's something that <<he>> carries for you always, it means that every moment with <<him>> is special, from sharing a bath together to the way <<hes>> holding you now. And as Eden whispers three special words to you so softly that you can barely hear it, you smile, because you know that as long as you're together, moments like these never truly have to end. <</if>> <br><br> <<link [[Next|Eden Cabin]]>><<endevent>><</link>><<widget "cabinothers">> <<if $nextPassageCheck is "Eden Clearing">> <<getouticon>><span class="nextLink"><<link [[Go outside|Eden Clearing]]>><</link>></span> <<elseif ($exposed gte 1 and !$daily.eden.exposed and Time.hour is 7) or ($exposed gte 1 and !$daily.eden.exposed and Time.hour is 8)>> <<getouticon>><<link [[Go outside|Eden Exposed]]>><<endevent>><</link>> <<elseif $exposed gte 1 and !$daily.eden.exposed and Time.hour gte 17>> <<getouticon>><<link [[Go outside|Eden Exposed]]>><<endevent>><</link>> <<else>> <<getouticon>><<link [[Go outside|Eden Clearing]]>><<endevent>><</link>> <</if>> <br><br> <<link [[Gameplay Settings|Cabin Settings]]>><<endevent>><</link>> <br> <<attitudesControlCheck>> <<if $attitudesControl.showGoldLink is true>> <span class="goldLink"><<link [[Attitudes]]>><<endevent>><<set $attitudesExitPassage to $passage>><</link>> </span><span class="red">!!</span> <<else>> <<link [[Attitudes]]>><<endevent>><<set $attitudesExitPassage to $passage>><</link>> <</if>> <br> <</widget>> <<widget "edenlust">> <<if $exposed gte 1>> <span class="lewd">Eden keeps stealing glances at you.</span><<glust>> <<npcincr Eden lust 1>> <br><br> <</if>> <</widget>> <<widget "clearingactions">> <<edenicon>><<link [[Enter the cabin|Eden Cabin]]>><<endevent>><</link>> <br><br> <<furnitureicon "chair">><<link [[Relax under the porch (0:15)|Eden Porch]]>><<stress -2>><<pass 15>><</link>><<lstress>> <br><br> <<if $edengarden is 0>> <span class="purple">Eden's crops are strangled by weeds.</span> <br> <<gardenicon "strangled">><<link [[Remove the weeds (3:00)|Clearing Weeding]]>><<tending 1>><<tiredness 12>><<npcincr Eden love 1>><</link>><<gtiredness>><<glove>><<gtending>> <br><br> <<elseif $edengarden is 1>> <span class="blue">Eden's crops are tangled with weeds.</span> <br> <<gardenicon "tangled">><<link [[Remove the weeds (3:00)|Clearing Weeding]]>><<tending 1>><<tiredness 12>><<npcincr Eden love 1>><</link>><<gtiredness>><<glove>><<gtending>> <br><br> <<elseif $edengarden is 2>> <span class="lblue">There are as many weeds growing in Eden's plot as there are vegetables.</span> <br> <<gardenicon "tangled">><<link [[Remove the weeds (3:00)|Clearing Weeding]]>><<tending 1>><<tiredness 12>><<npcincr Eden love 1>><</link>><<gtiredness>><<glove>><<gtending>> <br><br> <<elseif $edengarden is 3>> <span class="teal">Eden's crops are almost free of weeds, but more could be done.</span> <br> <<gardenicon "weeds">><<link [[Remove the weeds (3:00)|Clearing Weeding]]>><<tending 1>><<tiredness 12>><<npcincr Eden love 1>><</link>><<gtiredness>><<glove>><<gtending>> <br><br> <<elseif $edengarden is 4>> <span class="green">Eden's crops are free of weeds.</span> <br><br> <</if>> There are other bare plots of soil that Eden isn't using. <br> <<gardenicon "plot">><<link [[Examine|Eden Plots]]>><</link>> <br><br> <<if $edenshrooms is 0>> <span class="purple">Eden's mushroom barrel is almost empty.</span> <br> <<tendingicon "mushroom">><<link [[Look for mushrooms (1:00)|Clearing Mushrooms]]>><<pass 1 hour>><<npcincr Eden love 1>><</link>><<glove>> <br><br> <<elseif $edenshrooms is 1>> <span class="blue">Eden's mushroom barrel is almost empty.</span> <br> <<tendingicon "mushroom">><<link [[Look for mushrooms (1:00)|Clearing Mushrooms]]>><<pass 1 hour>><<npcincr Eden love 1>><</link>><<glove>> <br><br> <<elseif $edenshrooms is 2>> <span class="lblue">Eden's mushroom barrel is half full.</span> <br> <<tendingicon "mushroom">><<link [[Look for mushrooms (1:00)|Clearing Mushrooms]]>><<pass 1 hour>><<npcincr Eden love 1>><</link>><<glove>> <br><br> <<elseif $edenshrooms is 3>> <span class="teal">Eden's mushroom barrel is almost full.</span> <br> <<tendingicon "mushroom">><<link [[Look for mushrooms (1:00)|Clearing Mushrooms]]>><<pass 1 hour>><<npcincr Eden love 1>><</link>><<glove>> <br><br> <<elseif $edenshrooms is 4>> <span class="green">Eden's mushroom barrel is brimming with fungi.</span> <br><br> <</if>> <<if $edenspring is 0>> <span class="purple">The spring is full of broken branches and twigs.</span> <br> <<lakeicon "pond twigs">><<link [[Clear the debris (0:30)|Clearing Debris]]>><<tiredness 6>><<npcincr Eden love 1>><</link>><<gtiredness>><<glove>> <br><br> <<elseif $edenspring is 1>> <span class="blue">The bottom of the spring is littered with branches.</span> <br> <<lakeicon "pond twigs">><<link [[Clear the debris (0:30)|Clearing Debris]]>><<tiredness 6>><<npcincr Eden love 1>><</link>><<gtiredness>><<glove>> <br><br> <<elseif $edenspring is 2>> <span class="lblue">You can see the bottom of the spring through the twigs and branches floating on its surface.</span> <br> <<lakeicon "pond twigs">><<link [[Clear the debris (0:30)|Clearing Debris]]>><<tiredness 6>><<npcincr Eden love 1>><</link>><<gtiredness>><<glove>> <br><br> <<elseif $edenspring is 3>> <span class="teal">Twigs float on the surface of the spring.</span> <br> <<lakeicon "pond twigs">><<link [[Clear the debris (0:30)|Clearing Debris]]>><<tiredness 6>><<npcincr Eden love 1>><</link>><<gtiredness>><<glove>> <br><br> <<elseif $edenspring is 4>> <<if Weather.waterTemperature gt 15>> <span class="green">The spring is clean and clear.</span> <<else>> <span class="purple">The spring is clean and clear, but the water is cold.</span> <</if>> <br> <<if Weather.waterTemperature lte 5>> <<set _edenSpringStress to 6>> <<elseif Weather.waterTemperature lte 15>> <<set _edenSpringStress to 4>> <<elseif Weather.waterTemperature lte 35>> <<set _edenSpringStress to -6>> <<else>> <<set _edenSpringStress to -8>> <</if>> <<if !$edenspringintro and ((Time.hour gte 9 and Time.hour lte 10) or (Time.hour is 15) or (Time.hour is 16)) and Weather.waterTemperature gt 15 and Weather.waterTemperature lte 25>> <<lakeicon "pond">><<link [[Relax in the spring (0:30)|Eden Spring Intro]]>><<stress _edenSpringStress>><</link>> <<else>> <<lakeicon "pond">><<link [[Relax in the spring (0:30)|Clearing Spring]]>><<endevent>><<pass 30>><<stress _edenSpringStress>><</link>> <</if>> <<if Weather.waterTemperature lte 5>> <<ggstress>> <<elseif Weather.waterTemperature lte 15>> <<gstress>> <<elseif Weather.waterTemperature lte 35>> <<lstress>> <<else>> <<llstress>> <</if>> <br> <<if $daily.eden.wash is undefined>> <<lakeicon "pond">><<link [["Wash Eden's clothes in the spring (0:30)"|Wash Spring]]>><<pass 30>><<npcincr Eden love 1>><<npcincr Eden dom 1>><<set $daily.eden.wash to 1>><</link>><<glove>><<gdom>> <br> <</if>> <br> <</if>> <<if $edenHotSpring>> <<lakeicon "firepit">><<link [[Examine the heater|Clearing Heater]]>><</link>> <br><br> <</if>> <<if $edenfreedom gte 1>> <<foresticon>><<link [[Enter the forest (0:10)|Forest]]>><<endevent>><<pass 10>><<set $forest to 60>><<if $edenFluidsCheck is "clean">><<set $edenFluidsCheck to "cleanLeave">><</if>><</link>> <br> <<else>> <<foresticon>><<link [[Escape|Eden Cabin Escape]]>><<set $forest to 80>><</link>> <br> <</if>> <br> <</widget>> <<widget "clearingHeaterExamine">> <<set _edenHeaterBurnTime to Cooker.getBurnTime($edenHeater)>> You examine the thermosiphon heater. Spring heating time remaining: <<print getTimeString(_edenHeaterBurnTime / 60)>> <br><br> <<set _maxTime to Math.floor($edenHeater.maxBurnTime)>> <<lakeicon "firepit">>The spring can remain heated for up to <<print Math.floor(_maxTime / (60 * 60))>> hours. <br> <<lakeicon "pond">> <<set _burnTimeRatio to Cooker.getBurnTime($edenHeater) / $edenHeater.maxBurnTime>> <<set _startingBurnTimeRatio = Math.max(($edenHeaterStartingLastsUntil ?? $edenHeater.lastsUntil) - $timeStamp, 0) / $edenHeater.maxBurnTime>> <<if _edenHeaterBurnTime gt 0>> <<if _startingBurnTimeRatio gte 0.8>> The spring will take some time to heat up. <<elseif _burnTimeRatio lte 0.2>> The spring is beginning to cool down. <</if>> <</if>> Currently, the spring is <<if Weather.waterTemperature lte 5>> freezing cold. <<elseif Weather.waterTemperature lte 15>> cold. <<elseif Weather.waterTemperature lte 25>> cool. <<elseif Weather.waterTemperature lte 35>> warm. <<else>> nice and hot. <</if>> <br><br> <<set _maxTimeAllowed to Math.clamp(_maxTime - _edenHeaterBurnTime, 0, _maxTime)>> <<set _timeLteMax to _fireWoodTime lte _maxTimeAllowed>> <<if $edenspring is 4>> <<birdicon "wood">> <<if _edenHeaterBurnTime is 0>> <<link "Light the heater with firewood">> <<run Cooker.addBurnTime($edenHeater, _maxTimeAllowed)>> <<set $edenHeaterStartingLastsUntil to $edenHeater.lastsUntil>> <<replace #clearingHeaterExamine>> <<clearingHeaterExamine>> <</replace>> <</link>> <<elseif _maxTimeAllowed gt 0>> <<link "Add more firewood to the heater">> <<run Cooker.addBurnTime($edenHeater, _maxTimeAllowed)>> <<replace #clearingHeaterExamine>> <<clearingHeaterExamine>> <</replace>> <</link>> <<else>> The fire's already strong enough. <</if>> <<else>> <<if _edenHeaterBurnTime is 0>> You should clear the spring before lighting the heater. <<else>> You should clear the spring before adding more wood to the heater. <</if>> <</if>> <</widget>> <<widget "clearingedenactions">> Eden glances at you. <br><br> <<if !$edenfurniture>> <<edenicon "rug">><<link [[Ask Eden if you can buy a rug and pillows|Eden Pillows]]>><</link>> <br> <<elseif $edenfurniture is 1 and $edenpillow is 2>> <<edenicon "curtains">><<link [[Ask if you can get curtains and a coat stand|Eden Curtains]]>><</link>> <br> <<elseif $edenfurniture gte 2 and !$edencoat and $edencurtains is 2>> <<edenicon "coat stand">><<link [[Ask to make the coat stand (3:00)|Eden Coat Stand]]>><<set $edencoat to 1>><<pass 3 hours>><</link>> <br> <<elseif $edenfurniture is 2 and $edencurtains is 2 and $edencoat>> <<couchicon>><<link [[Ask for a loveseat|Eden Loveseat]]>><</link>> <br> <<elseif $edenfurniture is 3 and $edenloveseat lt 7>> <<couchicon>><<link [[Work on the loveseat (3:00)|Eden Loveseat Work]]>><<pass 3 hours>><</link>> <br> <</if>> <<if $worn.neck.collared isnot 1 and C.npc.Eden.dom gte 100>> <<symbol "dominance">><<link [[Ask Eden for a collar|Eden Collar]]>><<npcincr Eden love 5>><<npcincr Eden lust 5>><<npcincr Eden dom 5>><</link>><<gglove>><<gglust>><<ggdom>> <br> <</if>> <<if $edenspringintro is 1 and $daily.eden.springJoin isnot 1 and $edenspring is 4>> <<lakeicon "pond">><<link [[Ask Eden to join you in the spring|Eden Spring]]>><<set $daily.eden.springJoin to 1>><<stress -6>><<npcincr Eden love 1>><</link>><<lstress>><<glove>> <br> <</if>> <<if $daily.eden.walk isnot 1>> <<lakeicon>><<link [[Ask Eden to accompany you to the lake|Eden Lake]]>><</link>> <br> <</if>> <<if !$daily.eden.search or $daily.eden.search lt C.npc.Eden.love / 40>> <<foresticon>><<link [[Ask Eden to help search the forest (0:30)|Eden Search]]>><<set $daily.eden.search to ($daily.eden.search || 0) + 1>><</link>> <br> <</if>> <br> <<if Time.monthDay is 31 and $halloween_eden is 1 and $halloween_eden_bought is 1 and !$halloween_eden_candy_given>> <<foodicon "sweets">><<link [[Give Eden the hamper|Eden Halloween]]>><<npcincr Eden love 5>><<npcincr Eden dom 1>><<set $halloween_eden_candy_given to 1>><</link>> <br> <</if>> <<if Time.monthDay is 25 and $christmas_gift_eden is 1 and $christmas_gift_eden_given isnot 1>> <<gifticon "christmas">><<link [[Give Eden the hunting jacket|Eden Jacket]]>><<npcincr Eden love 5>><<npcincr Eden dom 1>><<set $christmas_gift_eden_given to 1>><<set $edencoatjacket to 1>><</link>> <br><br> <</if>> <<if pcAreArmsBound("any") or $feetuse is "bound" or $worn.feet.name is "ankle cuffs">> <<undobindingsicon>><<link [[Ask Eden to undo your bindings (0:01)|Eden Bindings]]>><<pass 1>><<unbind>><</link>> <br><br> <</if>> <<if $edenfreedom is undefined>> <<socialiseicon "ask">><<link [[Ask for freedom to return to town|Eden Freedom]]>><</link>> <br> <</if>> <<if $edenfreedom is 1>> <<socialiseicon "ask">><<link [[Ask for freedom to remain in town|Eden Freedom 3]]>><</link>> <br> <</if>> <<if $edenshopping is 1>> <<edenicon "supplies">><<link [[Give Eden the supplies|Eden Supplied]]>><</link>> <br> <</if>> <<if $edenradiointro is 1>> <<ind>><<link [[Give Eden the radio|Eden Radio Intro]]>><</link>> <br> <</if>> <<getouticon>><<link [[Go back|Eden Clearing]]>><<endevent>><</link>> <br><br> <</widget>> <<widget "edenpreystart">> <<if $weekly.edenPrey or random(1, 3) gte 2>> /* do nothing */ <<else>> /* Checks to see if the player has one of the main virginities intact, and if Eden can take it */ <<if ($player.penisExist and $player.virginity.penile is true and ($NPCList[0].vagina isnot "none" or $settings.analEnabled)) or ($player.vaginaExist and $player.virginity.vaginal is true and $NPCList[0].penis isnot "none")>> <<set _virginityPresent to true>> <</if>> /* Lowers amount of love and lust required if player is not a virgin or hasn't seen the event before */ <<if $edenPrey gte 1 and _virginityPresent>> <<set _edenPreyPhase to 3>> <<elseif $edenPrey gte 1>> <<set _edenPreyPhase to 2>> <<elseif _virginityPresent>> <<set _edenPreyPhase to 1>> <<else>> <<set _edenPreyPhase to 0>> <</if>> <<switch _edenPreyPhase>> <<case 0>> /* no virginity, first time */ <<if C.npc.Eden.love gte 85 and C.npc.Eden.lust gte 50>> <<set _edenPreyEvent to true>> <</if>> <<case 1>> /* virginity intact, first time */ <<if C.npc.Eden.love gte 75 and C.npc.Eden.lust gte 40>> <<set _edenPreyEvent to true>> <</if>> <<case 2>> /* non-virgin, repeat event */ <<if C.npc.Eden.love gte 125 and C.npc.Eden.lust gte 70>> <<set _edenPreyEvent to true>> <</if>> <<case 3>> /* virgin, repeat event */ <<if C.npc.Eden.love gte 100 and C.npc.Eden.lust gte 60>> <<set _edenPreyEvent to true>> <</if>> <</switch>> <<if _edenPreyEvent>> <<set $weekly.edenPrey to true>> <</if>> <</if>> <</widget>> <<widget "edenFluidsCheck">> <<if $edenFluidsCheck is undefined>> <<set $edenFluidsCheck to "Eden">> <<elseif $edenFluidsCheck is "clean" and ($goocount + $semencount gt 0)>> <<set $edenFluidsCheck to "Eden">> <<elseif $edenFluidsCheck is "cleanLeave">> <<set $edenFluidsCheck to "clean">> <</if>> <</widget>> <<widget "edenTrackers">> <<set $edendays to 0>> <<set $edenragerespite to 0>> <</widget>> <<widget "edenRageRespite">> <<if $edenfreedom is 1 or $edenCagedEscape>> /* If we ever decide to lower the respite time when Eden and the PC are expecting a child, we should do it here */ <<set $edenragerespite to 7>> <<elseif $edenfreedom is 2>> <<set $edenragerespite to 21>> <<else>> <br><span class="red"><<print "Error: Invalid '$edenfreedom' value in widget 'edenRageRespite'. Please report this.">></span><br> <</if>> <</widget>><<location "catacombs">><<set $bus to "catacombs">><<set $outside to 0>><<effects>> You are in the catacombs beneath the forest. A staircase leads upwards, to the churchyard. A statue of a six-armed angel smiles down at you, cradling a lit brazier in its lowest hands. <br><br> <<if $museumAntiques.antiques.antiqueivorystatuette isnot "found" and $museumAntiques.antiques.antiqueivorystatuette isnot "talk" and $museumAntiques.antiques.antiqueivorystatuette isnot "museum">> A small statuette sits on the statue's shoulder. You could reach it. <br><br> <</if>> <<if $worn.face.type.includes("blindfold")>> A warm breeze brushes against your face, <span class="green">and your blindfold falls free,</span> leaving only a tattered strip of cloth. It's hard to imagine it was sturdy just a moment ago. <<set $worn.face.type.push("broken")>> <<faceruined>> <br><br> <</if>> <<if $worn.upper.name is "cocoon" or $worn.lower.name is "cocoon bottom">> The statue's eyes flicker. The web covering you slacks, loosens, <span class="green">and falls apart.</span> <br><br> <<if $worn.upper.name is "cocoon">> <<upperruined>><<handheldruined>> <</if>> <<if $worn.lower.name is "cocoon bottom">> <<lowerruined>> <</if>> <</if>> <<catacombs_torch_text>><<wearProp "torch">><br><br> <i>Avoiding traps and other nastiness will become more difficult as your torch dies.</i> <br><br> <<set $eventskip to 1>> <<if $stress gte $stressmax>> <<passoutcatacombs>> <<elseif $eventskip isnot 1>> <<events_catacombs normal>> <<else>> <<if $museumAntiques.antiques.antiqueivorystatuette isnot "found" and $museumAntiques.antiques.antiqueivorystatuette isnot "talk" and $museumAntiques.antiques.antiqueivorystatuette isnot "museum">> <<antiqueicon "ivory_statuette">><<link [[Take statuette|Catacombs Statuette]]>><</link>><<crime "thievery">> <br> <</if>> <<if pcAreArmsBound("any")>> <<undobindingsicon>><<link [[Burn through your bindings|Catacombs Unbind]]>><<pain 1>><</link>><<gpain>> <br> <</if>> <<if $catacombs_torch lt 100>> <<caveicon "torch">><<link [[Light torch|Catacombs Light]]>><</link>><<gtorch>> <br> <</if>> <<caveicon "east">><<link [[Walk east (0:10)|Catacombs Sarcophagi]]>><<pass 10>><<catacombs_torch -5>><</link>><<ltorch>> <br> <<caveicon "west">><<link [[Walk west (0:10)|Catacombs Prison]]>><<pass 10>><<catacombs_torch -5>><</link>><<ltorch>> <br><br> <<getouticon>><<link [[Exit|Churchyard]]>><<catacombs_end>><</link>> <br> <</if>> <<set $eventskip to 0>><<effects>> You turn your back to the statue, holding your bindings over the flame. The heat builds, and you feel a sting. You're about to pull away when the bindings burn loose. You tear yourself free. <<unbind>> <br><br> <<link [[Next|Catacombs]]>><<set $eventskip to 1>><</link>> <br><<effects>> <<catacombs_torch 100>> You hold your torch over the brazier. It blazes into new life. For a moment the statue's eyes burn with reflected fire. <br><br> <<link [[Next|Catacombs]]>><<set $eventskip to 1>><</link>> <br><<effects>><<wearProp "ivory statuette">> You climb the six-armed statue, standing on its arms and using the wings for support. It proves sturdy, and you come face-to-face with the statuette. It's a miniature version of the larger angel, except the arms and head are raised in supplication, and the smile beams. <br><br> You take the smaller angel from the larger angel's hand and climb back down. It belongs in a museum. <br><br> <<set $antiquemoney += 500>><<museumAntiqueStatus "antiqueivorystatuette" "found">><<crimeUp 500 "thievery">> <<link [[Next|Catacombs]]>><<set $eventskip to 1>><<handheldon>><</link>> <br><<effects>><<set $bus to "sarcophagi">> You are in the catacombs beneath the forest. Sarcophagi jut from the walls at violent angles, as if shunted from their proper positions by a tremendous force. <br><br> <<catacombs_torch_text>><<wearProp "torch">><br><br> <<if $stress gte $stressmax>> <<passoutcatacombs>> <<elseif $eventskip isnot 1>> <<events_catacombs normal>> <<else>> <<catacombs_plunder "normal">> <<caveicon "east">><<link [[Walk east (0:10)|Catacombs Chasm]]>><<pass 10>><<catacombs_torch -5>><</link>><<ltorch>> <br> <<caveicon "west">><<link [[Walk west (0:10)|Catacombs]]>><<pass 10>><<catacombs_torch -5>><</link>><<ltorch>><<catacombs_exit_indicator>> <br> <</if>> <<set $eventskip to 0>><<effects>><<set $bus to "prison">> You are in the catacombs beneath the forest. The walls and floor are riddled with holes, themselves barred with iron. <br><br> <<catacombs_torch_text>><<wearProp "torch">><br><br> <<if $stress gte $stressmax>> <<passoutcatacombs>> <<elseif $eventskip isnot 1>> <<events_catacombs normal>> <<else>> <<catacombs_plunder "normal">> <<caveicon "east">><<link [[Walk east (0:10)|Catacombs]]>><<pass 10>><<catacombs_torch -5>><</link>><<ltorch>><<catacombs_exit_indicator>> <br> <<caveicon "west">><<link [[Walk west (0:10)|Catacombs Ridge]]>><<pass 10>><<catacombs_torch -5>><</link>><<ltorch>> <br> <</if>> <<set $eventskip to 0>><<effects>><<set $bus to "chasm">> You are in the catacombs beneath the forest. One wall has been torn away, as if by the movement of some great beast, revealing a black, yawning chasm. Great stalactites hang from the ceiling. <<if $settings.spidersEnabled>> <span class="blue">You see movement in the dark between them.</span> There's something up there. Watching. <<else>> <span class="blue">You see a faint glimmering between them.</span> There's something up there. <</if>> <br><br> <<catacombs_torch_text>><<wearProp "torch">><br><br> <<if $stress gte $stressmax>> <<passoutcatacombs>> <<elseif $eventskip isnot 1>> <<events_catacombs normal>> <<else>> <<catacombs_plunder "normal">> <<if $tending gte 500>> <<mysteryicon>><<link [[Coax|Catacombs Chasm Coax]]>><</link>><<note "Tending" "green">> <br> <<else>> <<mysteryicon>><span class="blue">You lack the tending skill to coax out whatever's up there.</span> <br> <</if>> <<caveicon "west">><<link [[Walk west (0:10)|Catacombs Sarcophagi]]>><<pass 10>><<catacombs_torch -5>><</link>><<ltorch>><<catacombs_exit_indicator>> <br> <</if>> <<set $eventskip to 0>><<effects>> You coo up at the stalactites, your voice soft. Only a faint echo answers at first, <<beastNEWinit 1 spider>> <<if !$settings.spidersEnabled>> but then an orb of light descends. It hovers for a moment in front of you, before floating along the edge of the chasm. <br><br> It arrives at the wall, illuminating a thin passage, and hovers there a moment, as if beckoning. Then it floats inside. It looks like a hidden passage around the chasm. <<elseif $monster is 1>> but then a head pokes into view, followed by eight limbs. It's a <<beasttype>>, but there's no menace in <<bhis>> demeanour. <<bHe>> crawls down the stalactite, dropping the rest of the way on a silken thread, and lands in front of you. <br><br> "Dangerous place for you," <<bhe>> says. "I can carry you across the chasm if you like. I'm stronger than I look. Much stronger." <<else>> but then eight legs crawl into view. It's a giant <<beasttype>>, but there's no menace in <<bhis>> demeanour. <<bHe>> crawls down a stalactite, dropping the rest of the way on a silken thread, and lands in front of you. <br><br> <<bHe>> turns and steps towards the chasm, lowering <<bhis>> abdomen. <<bHe>> wants to carry you over. <</if>> <br><br> <<link [[Travel across the chasm (0:10)|Catacombs Chasm Coax 2]]>><<pass 10>><</link>> <br> <<link [[Stay|Catacombs Chasm]]>><<endevent>><<set $eventskip to 1>><</link>> <br><<effects>> <<if !$settings.spidersEnabled>> You follow the light. It leads you through a maze of tight corridors in the stone, until you emerge in another part of the catacombs, on the other side of the chasm. Strange holes are bored in the walls and floor. The passage behind you has vanished in the dark. <br><br> With a playful sparkle, the light shoots towards the ceiling, and takes cover in a borehole. <<elseif $monster is 1>> The <<beasttype>> rushes in circles around you. Before you can react, <<bhes>> wrapped several strands of thread around your waist. <<bHe>> climbs the thread <<bhe>> descended on, pulling you off your feet and into the air. "Best way to carry you," <<bhe>> says with an apologetic smile. <br><br> <<bHe>> crawls right up to the ceiling, and dashes over the chasm. You dangle beneath <<bhim>>, aware of the abyss beneath, until you reach the other side. <<bHe>> lowers you, gently, then descends <<bhimself>> and tears off the strands around your waist. <br><br> "See?" <<bHe>> grins. "Strong!" With a leap, <<bhe>> climbs the wall and vanishes into the dark once more. You're in another part of the catacombs. Strange boreholes fill the walls and floor. <<else>> You climb onto the <<beasttype>>'s abdomen, and wrap your arms around <<bhis>> pedicel as <<bhe>> lurches into motion. <<bHe>> skitters up the strand of silk, and onto a horizontal web you could not see from below. <<bHe>> runs across a near-invisible network hung across the chasm. You cling tight, aware of the abyss beneath you. <br><br> <<bHe>> reaches the other side, and skitters down another strand. You climb down, and at once the spider launches itself onto the hanging strand, and vanishes into the dark. You're in another part of the catacombs. Strange boreholes fill the walls and floor. <</if>> <br><br> <<link [[Next|Catacombs Bores]]>><<endevent>><<set $eventskip to 1>><</link>> <br><<effects>><<set $bus to "ridge">> You are in the catacombs beneath the forest. One wall has been torn away, as if by the movement of some great beast, revealing a dark chasm. The drop is steep, but not sheer. You could clamber down if you were careful. <br><br> <<catacombs_torch_text>><<wearProp "torch">><br><br> <<if $stress gte $stressmax>> <<passoutcatacombs>> <<elseif $eventskip isnot 1>> <<events_catacombs normal>> <<else>> <<catacombs_plunder "normal">> <<caveicon "east">><<link [[Walk east (0:10)|Catacombs Prison]]>><<pass 10>><<catacombs_torch -5>><</link>><<ltorch>><<catacombs_exit_indicator>> <br> <<caveicon "south">><<link [[Climb down (0:01)|Catacombs Mud Climb]]>><<pass 1>><</link>> <br> <</if>> <<set $eventskip to 0>><<effects>> Foot by foot, you lower yourself into the chasm, testing each step before committing. The shattered masonry and natural stone proves sturdy, and reaching the bottom isn't difficult. <br><br> Darkness surrounds you. You hear the rush of water, some distance away. <br><br> <<link [[Next|Catacombs Mud]]>><</link>> <br><<effects>><<set $bus to "mud">> You are in the catacombs beneath the forest. Great furrows have been carved through the stone, leading to an expanse of mud that stretches into the dark. <br><br> <<catacombs_torch_text>><<wearProp "torch">><br><br> <<if $stress gte $stressmax>> <<passoutcatacombs>> <<elseif $eventskip isnot 1>> <<events_catacombs barrow>> <<else>> <<catacombs_plunder "barrow">> <<caveicon "north">><<link [[Climb up (0:01)|Catacombs Ridge Climb]]>><<pass 1>><</link>><<catacombs_exit_indicator>> <br> <<caveicon "east">><<link [[Walk east (0:10)|Catacombs Masonry]]>><<pass 10>><<catacombs_torch -5>><</link>><<ltorch>> <br> <</if>> <<set $eventskip to 0>><<effects>> You traverse the slope, more crawling than climbing, feeling for solid rock that will bear your weight as you go. You reach the top, and the catacombs proper. <br><br> <<link [[Next|Catacombs Ridge]]>><</link>> <br><<effects>><<set $bus to "masonry">> You are in the catacombs beneath the forest. Great furrows have been carved through the stone, many blocked by huge chunks of fallen masonry. <br><br> <<catacombs_torch_text>><<wearProp "torch">><br><br> <<if $stress gte $stressmax>> <<passoutcatacombs>> <<elseif $eventskip isnot 1>> <<events_catacombs barrow>> <<else>> <<catacombs_plunder "barrow">> <<caveicon "east">><<link [[Walk east (0:10)|Catacombs Barrow]]>><<pass 10>><<catacombs_torch -5>><</link>><<ltorch>> <br> <<caveicon "west">><<link [[Walk west (0:10)|Catacombs Mud]]>><<pass 10>><<catacombs_torch -5>><</link>><<ltorch>><<catacombs_exit_indicator>> <br> <</if>> <<set $eventskip to 0>><<effects>><<set $bus to "barrow">> You are in the catacombs beneath the forest. Great furrows have been carved through the stone. A great mound towers over them. <br><br> <<if $museumAntiques.antiques.antiquesilvercrown isnot "found" and $museumAntiques.antiques.antiquesilvercrown isnot "talk" and $museumAntiques.antiques.antiquesilvercrown isnot "museum">> There's a small tunnel, leading into the mound. <br><br> <</if>> <<catacombs_torch_text>><<wearProp "torch">><br><br> <<if $stress gte $stressmax>> <<passoutcatacombs>> <<elseif $eventskip isnot 1>> <<events_catacombs barrow>> <<else>> <<catacombs_plunder "barrow">> <<caveicon "east">><<link [[Walk east (0:10)|Catacombs Stream]]>><<pass 10>><<catacombs_torch -5>><</link>><<ltorch>> <br> <<caveicon "west">><<link [[Walk west (0:10)|Catacombs Masonry]]>><<pass 10>><<catacombs_torch -5>><</link>><<ltorch>><<catacombs_exit_indicator>> <br> <<if $museumAntiques.antiques.antiquesilvercrown isnot "found" and $museumAntiques.antiques.antiquesilvercrown isnot "talk" and $museumAntiques.antiques.antiquesilvercrown isnot "museum">> <<getouticon "hole">><<link [[Enter the mound|Catacombs Crown]]>><</link>> <br> <</if>> <</if>> <<set $eventskip to 0>><<effects>> You enter the tunnel. The ceiling is so low you need to crouch, but you soon emerge in a round room. A cairn sits in the middle, on a raised patch of ground. A stone slab rises from the earth in front, and on top of it rests a silver crown. <br><br> <<antiqueicon "silver_crown">><<link [[Take|Catacombs Crown 2]]>><</link>><<crime "thievery">> <br> <<getouticon>><<link [[Leave|Catacombs Barrow]]>><<set $eventskip to 1>><</link>> <br><<effects>><<wearProp "silver crown">> You take the crown. The earth tremors, almost knocking you off your feet. Clumps of dirt fall from the ceiling. You rush for the tunnel, and manage to escape before being buried in the avalanche. <br><br> You examine the crown. There are sockets on the front that were once filled, and the metal is corroded by time, but it's otherwise intact. It belongs in a museum. <br><br> <<set $antiquemoney += 1200>><<museumAntiqueStatus "antiquesilvercrown" "found">><<crimeUp 1200 "thievery">> <<link [[Next|Catacombs Barrow]]>><<handheldon>><<set $eventskip to 1>><</link>> <br><<effects>><<set $bus to "stream">> You are in the catacombs beneath the forest. Streams run along great furrows in the stone. <br><br> <<catacombs_torch_text>><<wearProp "torch">><br><br> <<if $stress gte $stressmax>> <<passoutcatacombs>> <<elseif $eventskip isnot 1>> <<events_catacombs barrow>> <<else>> <<catacombs_plunder "barrow">> <<caveicon "east">><<link [[Walk east (0:10)|Catacombs Stalagmites]]>><<pass 10>><<catacombs_torch -5>><</link>><<ltorch>> <br> <<caveicon "west">><<link [[Walk west (0:10)|Catacombs Barrow]]>><<pass 10>><<catacombs_torch -5>><</link>><<ltorch>><<catacombs_exit_indicator>> <br> <</if>> <<set $eventskip to 0>><<effects>><<set $bus to "stalagmites">> You are in the catacombs beneath the forest. A sea of rocky teeth blocks passage east, but a steep slope rises to the north. You might be able to clamber up. <br><br> <<catacombs_torch_text>><<wearProp "torch">><br><br> <<if $stress gte $stressmax>> <<passoutcatacombs>> <<elseif $eventskip isnot 1>> <<events_catacombs barrow>> <<else>> <<catacombs_plunder "barrow">> <<caveicon "north">><<link [[Climb up (0:01)|Catacombs Bores Climb]]>><<pass 1>><</link>> <br> <<caveicon "west">><<link [[Walk west (0:10)|Catacombs Stream]]>><<pass 10>><<catacombs_torch -5>><</link>><<ltorch>><<catacombs_exit_indicator>> <br> <</if>> <<set $eventskip to 0>><<effects>> You climb the stone slope. Strange boreholes provide good places to grasp, particularly near the top. <br><br> You emerge in the ruins of an ornate hall. Shattered stoneware and crockery litter the ground, crunching underfoot. <br><br> <<link [[Next|Catacombs Bores]]>><</link>> <br><<effects>><<set $bus to "bores">> You are in the catacombs beneath the forest. Pipes and cables crisscross overhead, running through strange boreholes. <<if $settings.spidersEnabled>> <span class="blue">You see movement in the dark between them.</span> There's something up there. Watching. <<else>> <span class="blue">You see a faint glimmering between them.</span> There's something up there. <</if>> <br><br> <<catacombs_torch_text>><<wearProp "torch">><br><br> <<if $stress gte $stressmax>> <<passoutcatacombs>> <<elseif $eventskip isnot 1>> <<events_catacombs compound>> <<else>> <<catacombs_plunder "compound">> <<if $tending gte 500>> <<mysteryicon>><<link [[Coax|Catacombs Bores Coax]]>><</link>><<note "Tending" "green">> <br> <<else>> <<mysteryicon>><span class="blue">You lack the tending skill to coax out whatever's up there.</span> <br> <</if>> <<caveicon "north">><<link [[Walk north (0:10)|Catacombs Engravings]]>><<pass 10>><<catacombs_torch -5>><</link>><<ltorch>> <br> <<caveicon "south">><<link [[Climb down (0:01)|Catacombs Stalagmites Climb]]>><<pass 1>><</link>><<catacombs_exit_indicator>> <br> <</if>> <<set $eventskip to 0>><<effects>> You coo up at the holes, your voice soft. Only a faint echo answers at first, <<beastNEWinit 1 spider>> <<if !$settings.spidersEnabled>> but then an orb of light emerges from the hole. It hovers for a moment in front of you, before floating along the edge of the chasm. <br><br> It arrives at the wall, illuminating a thin passage, and hovers there a moment, as if beckoning. Then it floats inside. It looks like a hidden passage around the chasm. <<elseif $monster is 1>> but then a head pokes into view, followed by eight limbs. It's a <<beasttype>>, but there's no menace in <<bhis>> demeanour. <<bHe>> crawls from the hole and down the wall, aided by a silken thread and lands in front of you. <br><br> "Not friends with other humans," <<bhe>> asks. "I can carry you across the chasm if you like. Nearer exit. I'm stronger than I look. Much stronger." <<else>> but then eight legs crawl into view. It's a giant <<beasttype>>, but there's no menace in <<bhis>> demeanour. <<bHe>> crawls from the hole and down the wall, aided by a silken thread and lands in front of you. <br><br> <<bHe>> turns and steps towards the chasm, lowering <<bhis>> abdomen. <<bHe>> wants to carry you over. <</if>> <br><br> <<link [[Travel across the chasm (0:10)|Catacombs Bores Coax 2]]>><<pass 10>><</link>> <br> <<link [[Stay|Catacombs Bores]]>><<endevent>><<set $eventskip to 1>><</link>> <br><<effects>> <<if !$settings.spidersEnabled>> You follow the light. It leads you through a maze of tight corridors in the stone, until you emerge in another part of the catacombs, on the other side of the chasm. Stalactites hang from the dark. The passage behind you has vanished in the shadows. <br><br> With a playful sparkle, the light shoots towards the ceiling, and takes cover among the stalactites. <<elseif $monster is 1>> The <<beasttype>> rushes in circles around you. Before you can react, <<bhes>> wrapped several strands of thread around your waist. <<bHe>> climbs the thread <<bhe>> descended on, pulling you off your feet and into the air. "Best way to carry you," <<bhe>> says with an apologetic smile. <br><br> <<bHe>> crawls right up to the ceiling, and dashes over the chasm. You dangle beneath <<bhim>>, aware of the abyss beneath, until you reach the other side. <<bHe>> lowers you, gently, then descends <<bhimself>> and tears off the strands around your waist. <br><br> "See?" <<bHe>> grins. "Strong!" With a leap, <<bhe>> climbs the wall and vanishes into the dark once more. You're in another part of the catacombs. Stalactites hang from the dark. <<else>> You climb onto the <<beasttype>>'s abdomen, and wrap your arms around <<bhis>> pedicel as <<bhe>> lurches into motion. <<bHe>> skitters up the strand of silk, and onto a horizontal web you could not see from below. <<bHe>> runs across a near-invisible network hung across the chasm. You cling tight, aware of the abyss beneath you. <br><br> <<bHe>> reaches the other side, and skitters down another strand. You climb down, and at once the spider launches itself onto the hanging strand, and vanishes into the dark. You're in another part of the catacombs. Stalactites hang from the dark. <</if>> <br><br> <<link [[Next|Catacombs Chasm]]>><<endevent>><<set $eventskip to 1>><</link>> <br><<effects>> You lower yourself into the chasm. Boreholes provide good places to grasp, and reaching the bottom isn't difficult. <br><br> Darkness surrounds you. Water rushes by your feet. <br><br> <<link [[Next|Catacombs Stalagmites]]>><</link>> <br><<effects>><<set $bus to "engravings">> You are in the catacombs beneath the forest. Pipes and cables crisscross overhead. The walls are decorated with skeletal engravings. <br><br> <<catacombs_torch_text>><<wearProp "torch">><br><br> <<if $stress gte $stressmax>> <<passoutcatacombs>> <<elseif $eventskip isnot 1>> <<events_catacombs compound>> <<else>> <<catacombs_plunder "compound">> <<caveicon "north">><<link [[Walk north (0:10)|Catacombs Museum]]>><<pass 10>><<catacombs_torch -5>><</link>><<ltorch>> <br> <<caveicon "south">><<link [[Walk south (0:10)|Catacombs Bores]]>><<pass 10>><<catacombs_torch -5>><</link>><<ltorch>><<catacombs_exit_indicator>> <br> <</if>> <<set $eventskip to 0>><<effects>><<set $bus to "museum">> You are in the catacombs beneath the forest. Pipes and cables crisscross overhead. Shattered glass litters the ground. <br><br> <<catacombs_torch_text>><<wearProp "torch">><br><br> <<if $stress gte $stressmax>> <<passoutcatacombs>> <<elseif $eventskip isnot 1>> <<events_catacombs compound>> <<else>> <<catacombs_plunder "compound">> <<caveicon "north">><<link [[Walk north (0:10)|Catacombs Statues]]>><<pass 10>><<catacombs_torch -5>><</link>><<ltorch>> <br> <<caveicon "south">><<link [[Walk south (0:10)|Catacombs Engravings]]>><<pass 10>><<catacombs_torch -5>><</link>><<ltorch>><<catacombs_exit_indicator>> <br> <</if>> <<set $eventskip to 0>><<effects>><<set $bus to "statues">> You are in the catacombs beneath the forest. Pipes and cables crisscross overhead. Time-worn statues guard ruined portals. <br><br> <<catacombs_torch_text>><<wearProp "torch">><br><br> <<if $stress gte $stressmax>> <<passoutcatacombs>> <<elseif $eventskip isnot 1>> <<events_catacombs compound>> <<else>> <<catacombs_plunder "compound">> <<caveicon "north">><<link [[Walk north (0:10)|Catacombs Compound]]>><<pass 10>><<catacombs_torch -5>><</link>><<ltorch>> <br> <<caveicon "south">><<link [[Walk south (0:10)|Catacombs Museum]]>><<pass 10>><<catacombs_torch -5>><</link>><<ltorch>><<catacombs_exit_indicator>> <br> <</if>> <<set $eventskip to 0>><<effects>><<set $bus to "compound">> You are in the catacombs beneath the forest. Pipes and cables vibrate overhead, snaking around half-ruined pillars. <<if $museumAntiques.antiques.antiquewhitecrystal isnot "found" and $museumAntiques.antiques.antiquewhitecrystal isnot "talk" and $museumAntiques.antiques.antiquewhitecrystal isnot "museum">> They all run in the same direction, towards a humming machine. Suspended in its centre is a glowing white crystal. The dim light casts long shadows. <</if>> <br><br> <<catacombs_torch_text>><<wearProp "torch">><br><br> <<if $stress gte $stressmax>> <<passoutcatacombs>> <<elseif $eventskip isnot 1>> <<events_catacombs compound>> <<else>> <<if $museumAntiques.antiques.antiquewhitecrystal isnot "found" and $museumAntiques.antiques.antiquewhitecrystal isnot "talk" and $museumAntiques.antiques.antiquewhitecrystal isnot "museum">> <<antiqueicon "crystal">><<link [[Approach the crystal|Catacombs Crystal]]>><</link>> <br><br> <</if>> <<catacombs_plunder "compound">> <<caveicon "south">><<link [[Walk south (0:10)|Catacombs Statues]]>><<pass 10>><<catacombs_torch -5>><</link>><<ltorch>><<catacombs_exit_indicator>> <br> <</if>> <<set $eventskip to 0>><<effects>> You approach the machine. You feel the ground vibrate as you draw closer, and see the metal prongs holding the crystal in place. Whatever it is, it's important, and might be worth a pretty penny. <br><br> <<antiqueicon "crystal">><<link [[Take it|Catacombs Crystal 2]]>><</link>><<gcrime "thievery">> <br> <<getouticon>><<link [[Step away|Catacombs Compound]]>><<set $eventskip to 1>><</link>> <br><<effects>><<wearProp "crystal">> <<earnFeat "Dark Delvings">> You remove the crystal. The prongs release it without resistance. You think you see an engraving, somehow carved into the interior. <br><br> Before you can examine further, <span class="red">an alarm blares.</span> You turn and run, past the pillars and down one of the passages snaking away. You hear footsteps behind, but soon lose them in the maze. <br><br> <<set $antiquemoney += 2000>><<museumAntiqueStatus "antiquewhitecrystal" "found">><<crimeUp 1000 "destruction">><<crimeUp 1000 "thievery">> <<link [[Next|Catacombs Compound]]>><<handheldon>><<set $eventskip to 1>><</link>> <br><<effects>> You push your arms through a gap, feeling around until you find something you can grasp, then pull yourself in. <br><br> <<if $physiquesize lte random(6000, 16000)>> It takes a bit of wriggling, <span class="green">but you manage to pull yourself clear,</span> clambering down the other side of the rubble. <<else>> <span class="red">The gap isn't as wide as you thought.</span> You make it through to the other side, <<if $worn.upper.name isnot "naked">> <<set $worn.upper.integrity -= 20>> <<set _clothes_torn to true>> <</if>> <<if $worn.lower.name isnot "naked">> <<set $worn.lower.integrity -= 20>> <<set _clothes_torn to true>> <</if>> <<if $worn.under_upper.name isnot "naked">> <<set $worn.under_upper.integrity -= 20>> <<set _clothes_torn to true>> <</if>> <<if $worn.under_lower.name isnot "naked">> <<set $worn.under_lower.integrity -= 20>> <<set _clothes_torn to true>> <</if>> <<if _clothes_torn is true>> but hear your clothing tear. <<integritycheck>> <<exposure>> <<else>> but suffer a few scrapes.<<gpain>><<pain 6>><<gstress>><<stress 6>> <</if>> <</if>> <br><br> <<destination_catacombs skip>><<effects>> You walk back the way you came, and try a branching path. The tunnel twists and turns, until you emerge on the other side of the pile of rubble. <br><br> <<destination_catacombs skip>><<effects>> <<if $physiqueSuccess>> <span class="green">You rip and tear the cobweb off your body.</span> A few strands stick to you, but they'll be no problem. <<else>> You try to rip the spiderweb off your body, but the more you struggle, <span class="red">the tighter it sticks,</span> until you can't move your arms at all. You won't be able to remove it here. At least your legs are free. <<bind>> <</if>> <br><br> <<destination_catacombs skip>><<effects>> You steady your breath. You won't be getting this web off here, but you're not in immediate danger. <br><br> <<bind>> <<destination_catacombs skip>><<effects>> You search the catacombs for plunder, looking in nooks and crannies, kicking open strongboxes and rummaging through dusty interiors. <<if $rng gte 81>> You have no luck, though you do find some old scraps of rag. <<if $worn.face.type.includes("blindfold")>> They'd be useful for fuelling a torch, <span class="pink">but you can't see anyway.</span> <<else>> You feed your torch.<<gtorch>><<catacombs_torch 10>> <</if>> <<elseif $rng gte 61>> You have no luck, until you come across a strongbox, its lock still intact. You make short work of the primitive design. Inside is a blade of tarnished silver. Whatever hilt or handle it was attached to has long since decayed away. It might be worth something. <<wearProp "silver blade">> <<set $antiquemoney += 60>><<museumAntiqueStatus "antiquesilverblade" "found">><<crimeUp 60 "thievery">> <<else>> <<wearProp "copper coin">> You find a copper coin, the metal corroded and any text long-faded. Still, it might be valuable to a collector. <<set $antiquemoney += 10>><<museumAntiqueStatus "antiquecoppercoin" "found">><<crimeUp 10 "thievery">> <</if>> <br><br> <<skulduggeryuse 600>> <<destination_catacombs>><<effects>> You search among the debris for anything of value, kneeling while rummaging through the detritus left by shattered coffers. <<if $rng gte 81>> You have no luck, though you do find some old scraps of rag. <<if $worn.face.type.includes("blindfold")>> They'd be useful for fuelling a torch, <span class="pink">but you can't see anyway.</span> <<else>> You feed your torch.<<gtorch>><<catacombs_torch 10>> <</if>> <<elseif $rng gte 61>> <<wearProp "silver goblet">> Your fingers find something cold, and hard. You tug it free from the earth. A goblet of corroded silver. Lines cover the surface, all that remains of an intricate engraving. It might be worth something to a collector. <<set $antiquemoney += 60>><<museumAntiqueStatus "antiquesilvergoblet" "found">><<crimeUp 60 "thievery">> <<else>> <<wearProp "fetish">> You feel a rubbery texture, and pull a strange fetish from the mud. Inhuman arms dangle from a decrepit frame. Still, it might be worth something to a collector. <<set $antiquemoney += 15>><<museumAntiqueStatus "antiquestrangefetish" "found">><<crimeUp 15 "thievery">> <</if>> <br><br> <<skulduggeryuse 600>> <<destination_catacombs>><<effects>> You crack open old coffers, and avoid the resulting clouds of dust. <<if $rng gte 81>> <<if $worn.face.type.includes("blindfold")>> They'd be useful for fuelling a torch, <span class="pink">but you can't see anyway</span>. <<else>> You have no luck however, though you do find some old scraps of rag. You feed your torch.<<gtorch>><<catacombs_torch 10>> <</if>> <<elseif $rng gte 61>> <<wearProp "gold coin">> Coffer after coffer yields nothing, until you see a glint of yellow metal. A gold coin, corroded by time, but still valuable no doubt. The face of a long-dead monarch stares at you. <<set $antiquemoney += 100>><<museumAntiqueStatus "antiquegoldcoin" "found">><<crimeUp 100 "thievery">> <<else>> <<wearProp "silver coin">> You find a silver coin, buried under ruined scrap. <<set $antiquemoney += 20>><<museumAntiqueStatus "antiquesilvercoin" "found">><<crimeUp 20 "thievery">> <</if>> <br><br> <<skulduggeryuse 600>> <<destination_catacombs>><<effects>> You scour the dark, your torch lighting the way, and find nothing sinister. It was all in your head, but your pulse hasn't slowed. <br><br> <<destination_catacombs skip>><<effects>> You ignore rising terror and keep walking, reminding yourself that you're imagining things. The sounds aren't real. <br><br> <<if $willpowerSuccess>> <span class="green">Your anxiety ebbs,</span> and you breathe a sigh of relief. <<else>> You hear a snap, right behind you, <span class="red">and find your legs carrying you at full flight.</span> You sense something, something monstrous, right behind you, matching your pace. <br><br> You trip in the dark, falling to the ground. Still driven by instinct, you curl up as much as you can. But nothing happens. Whatever was chasing you is gone.<<gpain>><<gtrauma>><<gstress>><<ltorch>><<pain 4>><<trauma 6>><<stress 6>><<catacombs_torch -5>> <</if>> <br><br> <<destination_catacombs skip>><<effects>> You close your eyes and bumble down the tunnel, until you collide with a wall and almost fall on your <<bottom>>. The sarcophagus is far behind you, at least. <br><br> <<destination_catacombs skip>><<effects>> You double back, and find a longer route that doesn't involve scary sarcophagi. <<if $catacombs_torch gte 1>> Your torch flickers. <<else>> The dark bears down on you. <</if>> <br><br> <<destination_catacombs skip>><<effects>> <<if $struggle_start is 1>> <<struggle_init>> <<set $struggle.creature to "lurker">> <<struggle_creatures 3 2>> <<set $combat to 1>> <<controlloss>> <<violence 1>> <<molested>> <<unset $struggle_start>> <</if>> <<struggle>> <<if $struggle.done gte $struggle.number>> <span id="next"><<link [[Next|Catacombs Struggle End]]>><</link>></span> <<else>> <span id="next"><<link [[Next|Catacombs Struggle]]>><</link>></span> <</if>><<effects>> The creatures flee into dark recesses. <br><br> <<clotheson>> <<endcombat>> <<destination_catacombs skip>><<effects>> You turn back the way you came, and search for another passage through. You find one, eventually. The shadows press in. <br><br> <<destination_catacombs skip>><<effects>> You put a foot into the white slime. It's opaque, thick, clingy, and warmer than the surrounding air. The floor dips deep, and you descend lower until the surface reaches your waist. <br><br> You wade across the pool, and emerge on the other side. Sticky strands cling to you, and you leave a trail in your wake. <<waist_goo>> <br><br> <<destination_catacombs skip>><<effects>> <<if $athleticsSuccess>> You run into the dark, turning left, then right, then right again. <span class="green">You soon lose them in the dark tunnels.</span> <br><br> <<endevent>> <<destination_catacombs skip>> <<else>> You run into the dark, turning left, then right, then right again, <span class="red">right into the <<persons>> arms.</span> <br><br> "Thought you'd give us the slip?" <<he>> tuts. "Best be good now." <br><br> <<link [[Fight|Catacombs Caught Fight]]>><<set $fightstart to 1>><</link>> <br> <<link [[Hold still|Catacombs Caught Still]]>><</link>> <</if>><<if $fightstart is 1>> <<set $fightstart to 0>> <<neutral 1>> <<maninit>> <<set $enemytrust -= 100>> <<set $enemyanger += 200>> <<npcidlegenitals>> <</if>> <<effects>> <<effectsman>> <<man>> <<stateman>> <br><br> <<actionsman>> <<if _combatend or ($pain gte 100 and $willpowerpain is 0)>> <span id="next"><<link [[Next|Catacombs Caught Fight Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Catacombs Caught Fight]]>><</link>></span><<nexttext>> <</if>><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<ejaculation>> The pair lie on the ground, exhausted by their orgasms. You seize the opportunity. <<tearful>> you flee into the dark. They won't be able to track you through this gloomy maze. <br><br> <<clotheson>> <<endcombat>> <<destination_catacombs skip>> <<elseif $enemyhealth lte 0>> The pair fall to the ground, nursing injuries. You seize the opportunity. <<tearful>> you flee into the dark. They won't be able to track you through this gloomy maze. <br><br> <<clotheson>> <<endcombat>> <<destination_catacombs skip>> <<else>> <<tearful>> you fall to the ground. You're too hurt to continue. <br><br> <<link [[Next|Catacombs Caught Still]]>><</link>> <</if>><<effects>> <<if $worn.face.type.includes("blindfold")>> "Running around with this blindfold on," the <<person2>><<person>> mutters. "Not the sharpest tool, are ya?" <br><br> "We could turn <<phim>> in to—" <br><br> "Nah. Can you imagine the paperwork—" <br><br> That's the last thing you hear. You feel a rag smother your face, and everything fades to black. <br><br> <<endevent>> <<passoutcatacombs>> <br> <<else>> "Hold <<phim>> still," the <<person>> says, pulling a length of fabric from a pocket. <<He>> ties it around your head, blocking your vision. <br><br> "Won't be much threat now," the <<person1>><<person>> laughs. "Will ya?" A pair of arms spins you in several circles, then shoves you forward. You almost stumble in your dizziness. <br><br> Their laughter follows as you walk in a random direction. <br><br> <<facewear 5>> <<clotheson>><<endcombat>> <<destination_catacombs skip>> <</if>><<effects>> <<if $molestationstart is 1>> <<set $molestationstart to 0>> <<set $combat to 1>> <<set $enemytype to "tentacles">> <<molested>> <<controlloss>> <<tentaclestart 5 12 "tendril" "metal">> <</if>> <<statetentacles>> <<effects>> <<effectstentacles>> <<tentacles>> <<actionstentacles>> <<if $tentacles.active lte ($tentacles.max / 2)>> <span id="next"><<link [[Next|Catacombs Tentacles Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Catacombs Tentacles]]>><</link>></span><<nexttext>> <</if>><<effects>> The metal tendrils fall inert, and the red light flickers off. <br><br> <<tearful>> you continue through the maze. <br><br> <<clotheson>> <<endcombat>> <<destination_catacombs skip>><<effects>> <<beastNEWinit 1 spider>> <<if $settings.spidersEnabled>> You awaken upside down, suspended from the ceiling by a thick string of silk. You squirm and struggle. <<if $monster is 1 or $settings.bestialityEnabled>> <<if $monster is 1>> "Well well," croons a voice from the dark. <span class="red">A <<beasttype>> scuttles into view, examining your body with thirsty eyes.</span> <br><br> "I don't get many visitors," <<bhe>> says. <<bHe>> follows with a chittering laugh. "I get so hungry." <<bHe>> climbs the web with a practised ease, until <<bhe>> perches above you. <<bHe>> leans forward and traces <<bhis>> tongue across your cheek.<<ggstress>><<stress 12>> <br><br> "Don't look so scared," <<bhe>> says. "I have a different meal in mind. But first, let's make sure you don't struggle." <<else>> <span class="red">You hear a chittering from the dark, and see eight eyes.</span> A giant spider crawls across the stone, up the wall, and onto the web with a delicate ease.<<ggstress>><<stress 12>> <</if>> <br><br> <<link [[Next|Catacombs Passout 2]]>><</link>> <br> <<else>> <<bind>> <<upperwear 104>> <<facewear 5>> <span class="red">You hear a chittering from the dark.</span> <br><br> <<endevent>> You flail in a mad panic. The web spins around and around, until it covers you from head to toe, and at last the string snaps. You flee into the dark.<<beastescape>> <br><br> <<set $specialClothesEvents.pushUnique("cocoon")>> <<specialClothesUnlock "set" "mummy">> <<link [[Next|Catacombs Ridge]]>><<endevent>><</link>> <br> <</if>> <<else>> <<bind>> <<upperwear 104>> <<facewear 5>> You awaken upside down, suspended from the ceiling by a thick rope around your ankles. You squirm and struggle, loosening the web until you at last drop free.<<pass 20>><<beastescape>> <br><br> <<set $specialClothesEvents.pushUnique("cocoon")>> <<specialClothesUnlock "set" "mummy">> <<endevent>> <<destination_catacombs skip>> <</if>><<effects>> <<bind>> <<upperwear 104>> <<facewear 5>> The <<beasttype>> spins you around and around, coating your legs with web. <<bHe>> works up your body, spinning the silk over your pelvis, waist, all the way up to your shoulders. It leaves you dizzy. <br><br> <<if $monster is 1>> "One more thing," <<bhe>> says, spurting a final string of silk over your eyes. "There. You should keep. But first—" <<bHe>> tears through a patch of web, exposing your <<genitals>>. <br><br> <<if playerChastity()>> <<set $worn.genitals.integrity -= 100>> <<if $worn.genitals.integrity lte 0>> <<bHe>> grasps the metal, twists it, <span class="pink">and tears it apart.</span> "Now to feast." <<bHe>> licks <<bhis>> lips. <<genitalsruined>> <br><br> <<link [[Next|Catacombs Passout 3]]>><</link>> <br> <<else>> <<bHe>> claws at the metal. "Too tough," <<bhe>> admits. "For now." <br><br> <<link [[Next|Catacombs Passout End]]>><</link>> <br> <</if>> <<else>> <<link [[Next|Catacombs Passout 3]]>><</link>> <br> <</if>> <<else>> <<bHe>> spurts a final string of silk over your eyes. <br><br> <<link [[Next|Catacombs Passout End]]>><</link>> <br> <</if>> <br><br><<effects>> You feel the <<beasttype>>'s breath on your <<genitals>>, followed by a long, warm tongue. <<if $player.penisExist>> It encircles your length and gently pumps it while the tip flicks your glans. <<else>> It encircles your clit and gently pressures it while the tip eases between your lips. <</if>> <br><br> <<bHis>> breathing becomes more rapid as <<bhe>> torments you, <<bhe>> sounds almost breathless in anticipation. The sensations make your hair stand on end, until it becomes too much to bear. <br><br> <<orgasm>> "Delicious." <<bHe>> laughs. The echo chitters around you. "I'll save the main course for later." <br><br> <<link [[Next|Catacombs Passout End]]>><</link>> <br><<effects>> You hear <<bhim>> scuttle away and then silence. <br><br> You use your weight to pull down on the string suspending you, loosened by the <<beasttype>>'s weaving. It gives a little, then snaps, dropping you to the floor. <br><br> <<set $specialClothesEvents.pushUnique("cocoon")>> <<specialClothesUnlock "set" "mummy">> <<link [[Next|Catacombs Ridge]]>><<endevent>><</link>> <br><<effects>> <<if $rng gte 71>> You twist and turn in the web, <span class="green">and manage to pull yourself free,</span> falling to the ground in a heap. Sticky string still sticks to you, but you're able to tug yourself off the floor. <br><br> <<destination_catacombs skip>> <<else>> <<if $stress gte $stressmax>> <<passoutcatacombs>> <<else>> You twist and turn in the web, <span class="red">but it's no use.</span> The dark presses in. <br><br> <<link [[Struggle|Catacombs Struggle Web]]>><<pass 5>><<tiredness 1>><<stress 20>><<catacombs_torch -5>><</link>><<difficulty 30>><<gtiredness>><<gggstress>><<ltorch>> <br> <</if>> <</if>><<effects>> <<if $willpowerSuccess>> You turn and see a large spider sat on your shoulder. It's about as big as your fist. <span class="green">Remaining calm,</span> you grab it between thumb and forefinger, and throw it away. <<else>> You turn. <span class="red">Your body spasms in panic</span> before you're consciously aware of the eight-legged creature sat there. You jump in the air, shake and whack your shoulder, almost falling over in the effort.<<lcontrol>><<control -10>><<ggstress>><<stress 12>> <br><br> When you dare to look again, the creature is gone. <</if>> <br><br> <<destination_catacombs skip>><<effects>> You brush your shoulder and feel a sickening weight. It thuds onto the ground some distance away. You hear a scuttling as its own legs carry it further. <br><br> <<destination_catacombs skip>><<location "churchyard">><<set $outside to 1>><<effects>><<handheldon>> You are in the old churchyard. A decrepit manor looms from a hill, surrounded by stone ruins and sepulchres. <<if Time.dayState is "night">> <<if Weather.bloodMoon>> The graves cast disturbing shadows in the red moonlight. <<else>> <<if Weather.precipitation is "none">> The moonlight-cast shadows seem to move. <<elseif Weather.precipitation is "rain">> The patter of rain on stone drowns out all else. <<elseif Weather.precipitation is "snow">> Snow rests on the headstones. <<else>> You're careful not to trip in the dark. <</if>> <</if>> <<elseif Time.dayState is "day">> Birds nest on statues and within archways above the sepulchres' entrances. <<elseif Time.dayState is "dawn">> The morning sun peers over the trees. <<else>> The shadows lengthen in the setting sun. <</if>> <br><br> <<foresticon "churchyard">><<link [[Sepulchre|Churchyard Catacombs Lock]]>><</link>> <br> <<foresticon>><<link [[Enter the forest|Forest]]>><<endevent>><<set $forest to 10>><</link>> <br><<location "sepulchre">><<set $outside to 0>><<effects>> You approach the sepulchre. Gargoyles sit on either side, watching. The doors are locked by a modern device, at odds with the old stone. <br><br> <<set $lock to 500>> <<if currentSkillValue('skulduggery') gte $lock>> <<if pcAreArmsBound("both")>> You think you'd be able to pick the lock, <span class="blue">if your arms weren't bound.</span> <br> <<else>> <<wearProp "lockpick">> <span class="green">The lock looks easy to pick.</span> <br><br> <<lockicon "pick">><<link [[Pick it (0:10)|Churchyard Catacombs Sneak]]>><<handheldon>><<pass 10>><<crimeUp 1 "trespassing">><</link>><<crime "trespassing">> <br> <</if>> <<else>> <span class="red">The lock looks beyond your ability to pick.</span><<skulduggeryrequired>> <br><br> <</if>> <<getouticon>><<link [[Leave|Churchyard]]>><<handheldon>><</link>> <br><<effects>> <<if $crypt_intro is 1>> You enter the sepulchre. Another torch blazes in the sconce. You take it and descend into the catacombs. <br><br> <<link [[Next|Catacombs]]>><<catacombs_init>><<set $eventskip to 1>><</link>> <br> <<else>> Even with the lock gone, one of the stone doors is stuck tight, but you're able to push the other far enough to slip inside. <br><br> The interior is lit by a single flaming torch. The light doesn't reach the far side of the room. <br><br> You remove the torch from its sconce, using it to light your way. The room is empty, save an open sarcophagus. <br><br> <<link [[Peer inside slowly|Churchyard Catacombs Peer Slow]]>><<set $crypt_intro to 1>><</link>> <br> <<link [[Peer inside quickly|Churchyard Catacombs Peer Quick]]>><<set $crypt_intro to 1>><</link>> <br> <<link [[Leave|Churchyard Catacombs Leave]]>><<stress 6>><</link>><<gstress>> <br> <</if>><<effects>> You move the torch forward, illuminating the sarcophagus interior inch by inch, ready to pull back at a moment should you find something you don't want to see. Instead you find steps, leading down. <br><br> <<link [[Descend|Churchyard Catacombs Intro]]>><</link>> <br><<effects>> You thrust the torch forward, illuminating the sarcophagus interior all at once. You find a set of steps, leading down. <br><br> <<link [[Descend|Churchyard Catacombs Intro]]>><</link>> <br><<effects>> The steps lead you through a tight passage, until your torch lights up the visage of a six-armed angel. A statue set into a wall, surrounded by stone skulls. <br><br> A path leads further in. Your torchlight carries a little further here, revealing two branching paths up ahead. <br><br> <<specialClothesUnlock "set" "skeleton">> <<link [[Next|Catacombs]]>><<catacombs_init>><<set $eventskip to 1>><</link>> <br><<effects>> You turn and walk towards the entrance, stopping only to return the torch to the sconce. Your feet quicken before you reach the door. <br><br> <<link [[Next|Churchyard]]>><</link>> <br><<widget "catacombs_init">> <<set $catacombs_torch to 100>> <</widget>> <<widget "catacombs_end">> <<unset $catacombs_torch>> <</widget>> <<widget "catacombs_torch_text">> <<if $catacombs_torch gte 100>> Your torch is <span class="green">radiant.</span> <<set Weather.Temperature.override.increase.inside(5, "The burning torch is hot.")>> <<elseif $catacombs_torch gte 80>> Your torch <span class="teal">blazes.</span> <<set Weather.Temperature.override.increase.inside(5, "The burning torch is hot.")>> <<elseif $catacombs_torch gte 60>> The flame on your torch has <span class="lblue">lost some of its vigour.</span> <<set Weather.Temperature.override.increase.inside(3, "The waning fire of your torch is warm.")>> <<elseif $catacombs_torch gte 40>> Your torch is <span class="blue">burning lower.</span><<set Weather.Temperature.override.increase.inside(1, "The dim fire of your torch is slightly warm.")>> <<elseif $catacombs_torch gte 20>> Your torch <span class="purple">won't last much longer.</span> <<elseif $catacombs_torch gte 1>> Barely a <span class="pink">flicker</span> of fire remains on your torch. <<else>> Your torch is <span class="black">extinguished.</span> <</if>> <</widget>> <<widget "gtorch">> <<if !$settings.blindStatsEnabled>> | <span class="green">+ Torchlight</span> <</if>> <</widget>> <<widget "ltorch">> <<if $catacombs_torch gte 1 and !$settings.blindStatsEnabled>> | <span class="red">- Torchlight</span> <</if>> <</widget>> <<widget "catacombs_torch">> <<if _args[0]>> <<set $catacombs_torch += _args[0]>> <</if>> <<set $catacombs_torch to Math.clamp($catacombs_torch, 0, 100)>> <</widget>> <<widget "events_catacombs">> <<cleareventpool>> <<if _args[0] is "normal">> <<addinlineevent "catacombs_normal_1" 1>> <<if $catacombs_torch gte random(1, 100)>> A rope hangs at knee height up ahead. <span class="green">You step over it.</span> <br><br> <<destination_catacombs skip>> <<else>> You feel something brush against your knee. A hatch thuds open, and a dart flies from the dark. <span class="red">It catches your arm.</span> You remove it at once, <span class="lewd">but a warmth spreads from the point of impact.</span><<drugs 40>><<gdrugged>> <br><br> You examine the dart. <<if currentSkillValue("history") gte 1000 and !pcAreArmsBound("both")>> It seems medieval, until you examine the top more closely. It's made of steel. You give it a shake. There's fluid inside. There's not much here, but it might be worth a little to someone with criminal connections.<<set $blackmoney += 10>> <<else>> It seems old. <</if>> <br><br> <<destination_catacombs skip>> <</if>> <</addinlineevent>> <<addinlineevent "catacombs_normal_2" 1>> <<if $catacombs_torch gte random(1, 100)>> A stone slab up ahead is raised higher than the others. <span class="green">You step over it.</span> <br><br> <<destination_catacombs skip>> <<else>> <<if random(1, 4) is 4 and !$worn.feet.type.includes("shackle")>> You feel a stone slab give way underfoot. The ground trembles, <span class="red">and a set of iron cuffs clamp around your ankles.</span> They're connected to the ground by a chain, but the metal is so rusty that it crumbles at a little force. The chain connecting them proves sturdier. <<shackle_feet>> <br><br> <<destination_catacombs skip>> <<else>> You feel a stone slab give way underfoot. Dust showers you, and a paddle swings down from a recess in the ceiling, <span class="red">smacking your <<bottom>>.</span><<gpain>><<pain 4>><<gtrauma>><<trauma 6>><<gstress>><<stress 6>> <br><br> <<destination_catacombs skip>> <</if>> <</if>> <</addinlineevent>> <</if>> <<if _args[0] is "barrow">> <<addinlineevent "catacombs_barrow_1" 1>> You hear movement in the dark. There's something ahead, drawing closer. There's something behind you as well. And to the side. All drawing closer. <br><br> <<if $catacombs_torch gte random(1, 100)>> You whirl around, waving your torch at the creatures. <span class="green">Its light and heat keeps them at bay.</span> They flee into deep recesses. <br><br> <<destination_catacombs skip>> <<else>> <<if $settings.lurkersEnabled>> <<link [[Next|Catacombs Struggle]]>><<set $struggle_start to 1>><</link>> <br> <<else>> You run through the dark, stumbling more than once, until you leave the creatures far behind. You got away, but not unscathed.<<beastescape>> <br><br> <<destination_catacombs skip>> <</if>> <</if>> <</addinlineevent>> <<addinlineevent "catacombs_barrow_2" 1>> You come to a pool of white fluid. It blocks the passage, and finding another way around might be arduous. <br><br> <<if $catacombs_torch gte random(1, 100)>> You hold out your torch, <span class="green">and spot a few chunks of masonry jutting from the fluid.</span> You climb the closest and use them to traverse the pool, careful not to fall. <br><br> <<destination_catacombs skip>> <<else>> You peer across, <span class="red">but can see nothing that would help you.</span> <br><br> <<link [[Find another path|Catacombs Goop Find]]>><<catacombs_torch -5>><<pass 10>><</link>><<ltorch>> <br> <<link [[Wade across|Catacombs Goop Wade]]>><</link>><<note "Goopy" "pink">> <br> <</if>> <</addinlineevent>> <<addinlineevent "catacombs_barrow_3" 1>> <<if $catacombs_torch gte random(1, 100)>> Gems glitter in the cavern ceiling, far above. They help orient you.<<lstress>><<stress -6>> <<else>> The walls around you stretch into the cavern above. <</if>> <br><br> <<destination_catacombs skip>> <</addinlineevent>> <</if>> <<if _args[0] is "compound">> <<addinlineevent "catacombs_compound_1" 1>> <<generate1>><<generate2>> <<person1>> You hear a pair of voices up ahead. <br><br> <<rng 5>> <<if $rng is 5>> "I've requested a transfer," says a <<person>>. <br> "Too spooky for you down here, aye?" laughs the <<person2>><<person>>. <br> "Oi! It's the spiders. Never liked em." <<elseif $rng is 4>> "Behind you!" shouts a <<person>>. <br> "Fuck!" cries a <<person2>><<person>> in shock, turning with a start. <br> "Made you look." <<person1>><<Hes>> rewarded with a thump. <<elseif $rng is 3>> "What they need all these cables for anyway?" asks a <<person>> <br> "Don't know, and don't care to," replies a <<person2>><<person>>. <br> "Less we know the better, I suppose." <<elseif $rng is 2>> "Think there's anything valuable down here?" asks a <<person>>. <br> "Nah," replies a <<person2>><<person>>. "Other than the stuff we put in. And we wouldn't get away with pinching that." <br> "Probably looted a long time ago anyway." <<else>> "Don't go wandering," says a <<person>>. <br> "Why not?" asks a <<person2>><<person>>. "The dark don't scare me." <br> "It's not the dark. It's what's in it." <</if>> <br><br> <<if $catacombs_torch gte 1>> They're wearing uniforms, but you can't make out the detail in the gloom. <</if>> <<if $catacombs_torch gte random(1, 100)>> They haven't noticed you. <span class="green">You sneak away.</span> <br><br> <<endevent>> <<destination_catacombs skip>> <<else>> They haven't noticed you, but with your very next step <span class="red">you crunch broken crockery underfoot.</span> Their heads swivel your way. <br><br> "Got ourselves a live one," the <<person1>><<person>> says. They march closer. "Hold still, <<girl>>." <br><br> <<link [[Run|Catacombs Caught Run]]>><</link>><<athleticsdifficulty 1 800>> <br> <<link [[Fight|Catacombs Caught Fight]]>><<set $fightstart to 1>><</link>> <br> <<link [[Hold still|Catacombs Caught Still]]>><</link>> <br> <</if>> <</addinlineevent>> <<addinlineevent "catacombs_compound_2" 0.5>> <<if $catacombs_torch gte random(1, 100)>> <span class="green">You spot a camera up ahead,</span> barely visible in the gloom. You would have walked right into its path. You're not sure what it's for, but you avoid its line of sight. <br><br> <<destination_catacombs skip>> <<else>> A red light blinks into life. It's part of a camera, <span class="red">pointed right at you.</span> <<if $settings.tentaclesEnabled>> Metal tendrils rise from the dark, coiling around you. <br><br> <<link [[Next|Catacombs Tentacles]]>><<set $molestationstart to 1>><</link>> <br> <<else>> The light intensifies, and a whirring roar fills the tunnel. You manage to escape, but stumble a few times in your haste.<<beastescape>> <br><br> <<destination_catacombs skip>> <</if>> <</if>> <</addinlineevent>> <</if>> <<addinlineevent "catacombs_1" 1>> <<if $worn.face.type.includes("blindfold")>> You walk, each step deliberate, careful not to trip or collide with anything in your blindness. You still brush against the odd hard corner. Shattered crockery shatters further beneath your feet.<<gpain>><<pain 4>><<gstress>><<stress 6>> <br><br> <<destination_catacombs skip>> <<else>> You find an upright, open sarcophagus in the middle of your path. The interior is shrouded by the dark, but you think you see a figure inside. <br><br> <<if $catacombs_torch gte random(1, 100)>> You inhale, and light up the interior with your torch. <span class="green">There's no body in there.</span> <<if random(1, 4) is 4>> However, you do find some tattered scraps of cloth. You feed your torch.<<gtorch>><<catacombs_torch 15>> <</if>> <br><br> <<destination_catacombs skip>> <<else>> <<link [[Walk by with your eyes shut|Catacombs Sarcophagus Close]]>><<trauma 6>><<pain 4>><</link>><<gpain>><<gtrauma>> <br> <<link [[Find another way around|Catacombs Sarcophagus Find]]>><<pass 5>><<catacombs_torch -5>><</link>><<ltorch>> <br> <</if>> <</if>> <</addinlineevent>> <<addinlineevent "catacombs_2" 1>> You hear whispers in the dark. Calling you. You feel your breath quicken. <br><br> <<if $catacombs_torch gte 1>> You could investigate, and prove there's nothing to be afraid of. <br><br> <<link [[Investigate|Catacombs Whispers Investigate]]>><<trauma -6>><<catacombs_torch -5>><</link>><<ltorch>><<gtrauma>> <br> <</if>> <<link [[Ignore|Catacombs Whispers Ignore]]>><</link>><<willpowerdifficulty 1 1000>> <br> <</addinlineevent>> <<addinlineevent "catacombs_3" 1>> <<if $catacombs_torch gte random(1, 100)>> You see a large spiderweb, completely covering the passage. You hold out your torch, <span class="green">and burn it away.</span> <br><br> <<destination_catacombs skip>> <<elseif pcAreArmsBound("both")>> You walk right into a spiderweb. It sticks to your already-bound arms. You try to pull free in the only way you can, by pulling against the web with your whole body. The web gets tighter and tighter, until it snaps back violently. The elasticity pulls you up and into the web, <span class="red">leaving you suspended and helpless.</span> <br><br> <<link [[Struggle|Catacombs Struggle Web]]>><<pass 5>><<tiredness 1>><<stress 20>><<catacombs_torch -5>><</link>><<difficulty 30>><<gtiredness>><<gggstress>><<ltorch>> <br> <<else>> <span class="red">You walk right into a cobweb.</span> You tear it away from your face, but now it's stuck to your hand, then your other hand, then you notice your legs are covered as well. It must have been a large spider. <br><br> <<link [[Tear free|Catacombs Tear]]>><</link>><<physiquedifficulty 1 20000>> <br> <<link [[Save your strength|Catacombs Save]]>><<stress -6>><</link>><<lstress>> <</if>> <</addinlineevent>> <<addinlineevent "catacombs_4" 1>> You come to a pile of rubble, stone masonry and not a little soil. The tunnel has collapsed here, but there are gaps. <br><br> <<if $catacombs_torch gte random(1, 100)>> You poke your torch through the holes, and determine the widest. <span class="green">You're confident you'll fit.</span> <br><br> It takes a bit of wriggling, <span class="green">but you manage to pull yourself clear,</span> and clamber down the other side of the rubble. <br><br> <<destination_catacombs skip>> <<else>> You feel around for a gap wide enough to let you through. You think you've found the widest, <span class="red">but you can't tell for sure.</span> <br><br> <<link [[Squeeze through a gap|Catacombs Squeeze]]>><</link>><<small_text>> <br> <<link [[Take a detour (0:10)|Catacombs Detour]]>><<pass 10>><<catacombs_torch -5>><</link>><<ltorch>> <br> <</if>> <</addinlineevent>> <<if $settings.spidersEnabled>> <<addinlineevent "catacombs_5" 1>> <<if $catacombs_torch gte random(1, 100)>> Something moves in the shadows overhead. You raise your torch. Whatever it is, <span class="green">it's afraid of the light.</span> <br><br> <<destination_catacombs skip>> <<else>> Something <span class="red">lands on your shoulder.</span> <br><br> <<link [[Look|Catacombs Spider Look]]>><</link>><<willpowerdifficulty 1 1000>> <br> <<link [[Brush it off|Catacombs Spider Brush]]>><<stress 12>><</link>><<ggstress>> <br> <</if>> <</addinlineevent>> <</if>> <<addinlineevent "catacombs_6" 1>> <<if $catacombs_torch gte random(1, 100)>> <span class="green">Your torch lights up a fallen column.</span> You step up and over it. <<else>> Your knee collides with hard stone, concealed in the gloom. A fallen column lies in your way. You step up and over it.<<gpain>><<pain 4>> <</if>> <br><br> <<destination_catacombs skip>> <</addinlineevent>> <<addinlineevent "catacombs_7" 1>> <<if $worn.feet.type.includes("naked") or $worn.feet.type.includes("shackle")>> <<if $catacombs_torch gte random(1, 100)>> <span class="green">Your torch illuminates</span> shards of broken pottery up ahead. You step around them. <<else>> You step on shards of broken pottery, <span class="red">invisible in the gloom.</span><<gpain>><<gstress>><<pain 4>><<stress 6>> <</if>> <<else>> Broken pottery <span class="green">crunches</span> underfoot. <</if>> <br><br> <<destination_catacombs skip>> <</addinlineevent>> <<runeventpool>> <</widget>> <<widget "catacombs_skip">> <<if _args[0] is "skip">> <<set $eventskip to 1>> <</if>> <</widget>> <<widget "destination_catacombs">> <<switch $bus>> <<case "sarcophagi">> <<link [[Next|Catacombs Sarcophagi]]>><<catacombs_skip _args[0]>><</link>> <<case "chasm">> <<link [[Next|Catacombs Chasm]]>><<catacombs_skip _args[0]>><</link>> <<case "prison">> <<link [[Next|Catacombs Prison]]>><<catacombs_skip _args[0]>><</link>> <<case "ridge">> <<link [[Next|Catacombs Ridge]]>><<catacombs_skip _args[0]>><</link>> <<case "mud">> <<link [[Next|Catacombs Mud]]>><<catacombs_skip _args[0]>><</link>> <<case "masonry">> <<link [[Next|Catacombs Masonry]]>><<catacombs_skip _args[0]>><</link>> <<case "barrow">> <<link [[Next|Catacombs Barrow]]>><<catacombs_skip _args[0]>><</link>> <<case "stream">> <<link [[Next|Catacombs Stream]]>><<catacombs_skip _args[0]>><</link>> <<case "stalagmites">> <<link [[Next|Catacombs Stalagmites]]>><<catacombs_skip _args[0]>><</link>> <<case "bores">> <<link [[Next|Catacombs Bores]]>><<catacombs_skip _args[0]>><</link>> <<case "engravings">> <<link [[Next|Catacombs Engravings]]>><<catacombs_skip _args[0]>><</link>> <<case "museum">> <<link [[Next|Catacombs Museum]]>><<catacombs_skip _args[0]>><</link>> <<case "statues">> <<link [[Next|Catacombs Statues]]>><<catacombs_skip _args[0]>><</link>> <<case "compound">> <<link [[Next|Catacombs Compound]]>><<catacombs_skip _args[0]>><</link>> <<default>> <<link [[Next|Catacombs]]>><<catacombs_skip _args[0]>><</link>> <</switch>> <</widget>> <<widget "catacombs_exit_indicator">> <<if !$settings.blindStatsEnabled>> | <span class="teal">Closer to exit</span> <</if>> <</widget>> <<widget "passoutcatacombs">> <<if isPregnancyEnding()>> <<pregnancyPassout "catacombs">> <<if $worn.face.type.includes("blindfold")>> <<set $worn.face.type.push("broken")>> <<faceruined>> <</if>> <<if $worn.upper.name is "cocoon">> <<upperruined>><<handheldruined>> <</if>> <<if $worn.lower.name is "cocoon bottom">> <<lowerruined>> <</if>> <<catacombs_end>> <<elseif $worn.upper.name is "cocoon" or $worn.lower.name is "cocoon bottom">> <<if $worn.face.type.includes("blindfold")>> <<set $worn.face.type.push("broken")>> <<faceruined>> <</if>> <<if $worn.upper.name is "cocoon">> <<upperruined>><<handheldruined>> <</if>> <<if $worn.lower.name is "cocoon bottom">> <<lowerruined>> <</if>> <<catacombs_end>> <<ambulance>> <<else>> <<passout>> <<pass 60>> You've pushed yourself too much. <br><br> <<link [[Next|Catacombs Passout]]>><</link>> <br> <</if>> <</widget>> <<widget "catacombs_plunder">> <<if !pcAreArmsBound("any")>> <<set $lock to _args[1] ? _args[1] : 500>> <<if currentSkillValue('skulduggery') gte $lock>> <span class="green">There are riches entombed here.</span> <br> <<crimeicon "plunder">> <<if _args[0] is "normal">> <<link [[Plunder (0:30)|Catacombs Normal Plunder]]>><<pass 30>><<catacombs_torch -5>><</link>><<crime "thievery">><<ltorch>> <<elseif _args[0] is "barrow">> <<link [[Plunder (0:30)|Catacombs Barrow Plunder]]>><<pass 30>><<catacombs_torch -5>><</link>><<crime "thievery">><<ltorch>> <<elseif _args[0] is "compound">> <<link [[Plunder (0:30)|Catacombs Compound Plunder]]>><<pass 30>><<catacombs_torch -5>><</link>><<crime "thievery">><<ltorch>> <<else>> <span class='red'>Invalid plunder location '<<print _args[0]>>', please report.</span> <</if>> <br> <<else>> <span class="red">You lack the skill to sniff out the riches here.</span><<skulduggeryrequired>> <br><br> <</if>> <</if>> <</widget>><<location "forest">><<effects>> <!-- Make sure $phase is non-zero when you write a link here --> <<if $foresthunt gte 1>> <<set $foresthunt += 1>> <</if>> You search for plants long and sturdy enough to build an improvised garment. You find some suitable specimens and tie them together around your <<if $phase is 1>> chest. <<plantupper>> <<elseif $phase is 2>> waist. <<plantlower>> <</if>> It's fragile and revealing, and you don't think you could take it off without breaking it, but it's better than nothing. <br><br> <<set $phase to 0>> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <br><<location "forest">><<effects>><<wearProp "mushroom">><<canvas-model-override "mouth" "chew">> You eat one of the mushrooms. It tastes bitter, but somehow refreshing. <br><br> <<link [[Next|Forest]]>><<canvas-model-override "clear">><<handheldon>><<set $eventskip to 1>><</link>><<location "forest">><<effects>><<wearProp "wolfshroom">><<canvas-model-override "mouth" "chew">> You eat one of the mushrooms, it's quite sweet. You feel more relaxed, and strangely heated. <br><br> <<link [[Next|Forest]]>><<canvas-model-override "clear">><<handheldon>><<set $eventskip to 1>><</link>> <br><<effects>> You drop to your knees, and search beneath the decaying roots. <<if $tendingSuccess>> <<wearProp "mushroom">> <span class="green">You find some tasty <<icon "tending/mushroom.png">> mushrooms that should fetch a price at market.</span> <<tending_pick mushroom>> <<else>> <span class="red">None of the mushrooms look any good.</span><<gtending>><<tending 2>> <</if>> <br><br> <<link [[Next|Forest]]>><<handheldon>><<set $eventskip to 1>><</link>> <br><<effects>> You drop to your knees, and search beneath the decaying roots. <<if $tendingSuccess>> <<wearProp "wolfshroom">> <span class="green">You find some fat <<icon "tending/wolfshroom.png">> mushrooms that should fetch a good price.</span> <<tending_pick wolfshroom>> <<else>> <span class="red">None of the mushrooms look any good.</span><<gtending>><<tending 2>> <</if>> <br><br> <<link [[Next|Forest]]>><<handheldon>><<set $eventskip to 1>><</link>> <br><<effects>> You drop to your knees, and search beneath the decaying roots. <<wearProp "wolfshroom">> <span class="green">You find some of the <<icon "tending/wolfshroom.png">> mushrooms that Gwylan wanted.</span><<gtending>><<tending 2>> <<set $gwylanTutorialShrooms++>> <br><br> <<link [[Next|Forest]]>><<handheldon>><<set $eventskip to 1>><</link>> <br><<if $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<beastCombatInit>> <<set $enemyhealth to 600>><<set $enemyhealthmax to 600>><<set $enemytrust -= 40>> <<forestRescueSetup>> <</if>> <<effects>> <<effectsman>> <<forestRescueCheck "Black Wolf">> <br> <<beast $enemyno>> <br><br> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Forest Wolf Molestation Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Forest Wolf Molestation]]>><</link>></span><<nexttext>> <</if>><<location "forest">><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<beastejaculation>> <<if $syndromewolves gte 1>> <<if $monster is 1>> <<bHe>> grabs you by the scruff of your neck with little effort, before hauling you over one shoulder. You feel like a helpless puppy as you're being carried away. <<else>> <<bHe>> grabs you by the scruff of your neck like you're an errant puppy. <</if>> <br><br> <<link [[Let it happen|Wolf Cave Returned]]>><<endcombat>><</link>> <br> <<link [[Struggle|Forest Wolf Molestation Resist]]>><<endcombat>><<set $molestationstart to 1>><</link>> <br> <<else>> The Black Wolf seems satisfied, but it isn't over. <<if $monster is 1>> "You. With me," <<bhe>> barks. You're not sure if you have any choice. With a display of force, <<bhe>> hauls you over one shoulder. <<else>> <<bHe>> grabs you by the scruff of your neck. <</if>> <<bHe>> wants to take you somewhere. <br><br> <<link [[Let it happen|Forest Wolf Cave Intro]]>><<endcombat>><</link>> <br> <<link [[Struggle|Forest Wolf Molestation Resist]]>><<endcombat>><<set $molestationstart to 1>><</link>> <br> <</if>> <<elseif $enemyhealth lte 0>><<set $foresthunt to 0>> <<if $monster is 1>> Despite <<bhis>> show of force, you manage to overcome it. You wrestle free from the Black Wolf's grasp. "Trouble," <<bhe>> growls. "Weren't easy prey." <<bHe>> flees into the forest, tail between <<bhis>> legs. You feel proud, realising it was no easy feat defeating something nearly twice your size. <<else>> Despite <<bhis>> power, you manage to defeat the Black Wolf. <<bHe>> flees into the forest, tail between <<bhis>> legs. <</if>> <br><br> <<clotheson>> <<endcombat>> <<tearful>> you gather yourself. <br><br> <<link [[Next|Forest]]>><<set $stress -= 1000>><<set $eventskip to 1>><<set $eventskip to 1>><</link>> <br> <<elseif $rescue is 1>> <<forestRescue>> <</if>><<set $outside to 0>><<set $location to "wolf_cave">><<effects>> <<badEndTracking "Wolf Cave" { reason: "wolfCaveCaptured" }>> <<if $passoutReason>> <<npc "Black Wolf" 2>> In the throes of <<= $passoutReason>>, you're helpless to resist as the <<beasttype 0>> drags you through the forest to a cave. <<bHe 0>> presents you to the alpha, a monstrous black <<beasttype 1>>. <<if $monster is 1>> Tufts of thick black hair cover a nude, towering body from head to toe. <<bHe 1>> growls as <<bhe 1>> addresses you. "My home. Your home, if pack accepts." <<bHe 1>> deposits you on a pile of thatch, before stepping back. <<else>> <<bHe 1>> sniffs around your body, still <<= $passoutReason is "hypothermia" ? "frozen from the cold" : "drenched with sweat from the heat">>, before stepping back. <</if>> <<elseif $monster is 1>> <<npc "Black Wolf">> <<bHe>> effortlessly sprints through the forest, and before long arrives at a cave. "My home. Your home, if pack accepts." <<bHe>> enters the cave and lays you down on a pile of thatch, before stepping back. <<else>> <<npc "Black Wolf">> The wolf effortlessly bounds through the forest, and before long arrives at a cave, which <<bhe>> enters without slowing. <<bHe>> dumps you on the cold stone. <</if>> Six pairs of eyes stare at you through the dim light. The pack advances on you. <br><br> <<endevent>> <<beastNEWinit 6 wolf>> <<link [[Next|Forest Wolf Cave Rape]]>><<set $molestationstart to 1>><</link>> <br><<if $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<maninit>><<set $enemyhealth to 600>><<set $enemyhealthmax to 600>> <<forestRescueSetup>> <</if>> <<effects>> <<effectsman>> <<forestRescueCheck "Eden">> <<man>> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Forest Hunter Molestation Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Forest Hunter Molestation]]>><</link>></span><<nexttext>> <</if>><<location "forest">><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<ejaculation>> <<if $hunterintro is 1>> Eden <<if $enemyanger gte ($enemyangermax / 5) * 2>>glares at you and growls,<<else>>smirks at you and says,<</if>> "I knew I'd be able to catch you again. Come on, I'm taking you home." <<else>> <<if $enemyanger gte 20>> The <<person>> smirks. "You're a feisty one. I like that." <<else>> The <<person>> smiles. "You're a gentle creature, aren't you? I'd best take you with me, it wouldn't do to leave you alone out here." <</if>> <</if>> <<He>> produces a length of rope from <<his>> bag. You're going to be tied up! <br><br> <<link [[Don't struggle|Forest Hunter Intro]]>> <<if !$syndromeeden>><<badEndTracking "Eden" { reason: "edenHuntedSubmitted" }>><</if>><<clotheson>><<endcombat>> <</link>> <br> <<link [[Resist|Forest Hunter Resist Molestation]]>><<set $enemyanger += 200>><<set $molestationstart to 1>><</link>> <br> <<elseif $enemyhealth lte 0>><<set $foresthunt to 0>> Despite <<his>> strength, you manage to send the <<person>> reeling, giving you the chance you need. <<tearful>> you escape into the forest. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Forest]]>><<set $stress -= 1000>><<set $eventskip to 1>><</link>> <br> <<elseif $rescue is 1>> <<forestRescue>> <</if>><<leash 21>> <<location "cabin">><<effects>> <<clothesruined>> <<npc Eden>><<initnpc Eden>><<person1>> <<if $hunterintro is 1>>Eden<<else>>The <<person>><</if>> deftly ties your arms and legs together, then hoists you over <<his>> shoulder, before carrying you into the forest. <br><br> <<if $hunterintro is 1>> You soon arrive at the cabin, and Eden carries you inside. <<else>> You soon arrive at a log cabin. Inside is a single, spartan room. <</if>> <<He>> drops you on the hard floor and places a collar around your neck. It shuts with a click. <<He>> stands over you, and attaches a leash to your collar. <<He>> then unties the rope, freeing your arms and legs. <br><br> <<if $hunterintro isnot 1>> <<set $hunterintro to 1>> <<set C.npc.Eden.name_known to 1>> <<set $NPCList[0].name_known to 1>> "You're lucky I found you," <<he>> says. "The woods are dangerous, you'd have gotten hurt. My name is Eden." <<He>> pauses, as if unsure about something. <<He>> seems different to when <<he>> captured you, softer, despite you now being bound and collared at <<his>> feet. <br><br> <<He>> continues. "I've become self-sufficient out here. But it's lonely, sometimes. If I protect and provide for you, will you give me comfort and company?" You don't know if you really have a choice. <br><br> <<link [[Nod|Forest Hunter Nod]]>><</link>> <br> <<link [[Refuse|Forest Hunter Refuse]]>><</link>> <br> <<else>> "Welcome home. Now, time for your punishment." <<He>> bends you over <<his>> lap. <br><br> <<link [[Next|Forest Hunter Punishment]]>><<set $molestationstart to 1>><</link>> <br> <</if>><<if $molestationstart is 1>> <<set $molestationstart to 0>> <<set $enemyarousal to 0>> <<forestRescueSetup>> <</if>> <<effects>> <<effectsman>> <<forestRescueCheck "Eden">> <<man>> <<stateman>> <br><br> <<actionsman>> <<if _combatend or ($pain gte 100 and $willpowerpain is 0)>> <span id="next"><<link [[Next|Forest Hunter Resist Molestation Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Forest Hunter Resist Molestation]]>><</link>></span><<nexttext>> <</if>><<location "forest">><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<ejaculation "short">> The <<person>> gasps, clearly not expecting to cum again so soon. It seems to be more than <<he>> can handle, giving you the chance you need. <<tearful>> you escape into the forest. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Forest]]>><<set $stress -= 1000>><<set $eventskip to 1>><<set $eventskip to 1>><</link>> <br> <<elseif $enemyhealth lte 0>><<set $foresthunt to 0>> Despite <<his>> strength, you manage to send the <<person>> reeling, giving you the chance you need. <<tearful>> you escape into the forest. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Forest]]>><<set $stress -= 1000>><<set $eventskip to 1>><<set $eventskip to 1>><</link>> <br> <<elseif $rescue is 1 and $alarm is 1>> <<forestRescue>> <<else>> Battered and bruised by <<his>> assault, you are helpless as <<he>> retrieves <<his>> rope from the ground. <br><br> <<link [[Next|Forest Hunter Intro]]>><<if !$syndromeeden>><<badEndTracking "Eden" { reason: "edenHuntedSubmitted" }>><</if>><<clotheson>><<endcombat>><</link>> <br> <</if>><<if $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<npc "Black Wolf">> <<beastCombatInit>> /*<<beastNNPCinit>>*/<<set $enemyhealth to 600>><<set $enemyhealthmax to 600>><<set $enemytrust -= 40>><<set $enemyanger += 200>> <<forestRescueSetup>> <</if>> <<effects>> <<effectsman>> <<forestRescueCheck "Black Wolf">> <br> <<beast $enemyno>> <br><br> <<stateman>> <br><br> <<actionsman>> <<if _combatend or ($pain gte 100 and $willpowerpain is 0)>> <span id="next"><<link [[Next|Forest Wolf Molestation Resist Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Forest Wolf Molestation Resist]]>><</link>></span><<nexttext>> <</if>><<location "forest">><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<beastejaculation>> The second time is too much for <<bhim>>, and <<bhe>> collapses into a slumber. <br><br> <<tearful>> you gather yourself. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Forest]]>><<set $stress -= 1000>><<set $eventskip to 1>><<set $eventskip to 1>><</link>> <br> <<elseif $enemyhealth lte 0>> <<set $foresthunt to 0>> Despite <<bhis>> power, you manage to defeat the Black Wolf. <<bHe>> flees into the forest. <<if $monster is 1>> "Trouble," <<bhe>> growls. "Weren't easy prey." <</if>> <br><br> <<tearful>> you gather yourself. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Forest]]>><<set $stress -= 1000>><<set $eventskip to 1>><<set $eventskip to 1>><</link>> <br> <<elseif $rescue is 1 and $alarm is 1>> <<forestRescue>> <<else>> Battered and bruised by the Black Wolf's assault, you can do nothing but whimper as <<bhe>> <<if $monster is 1>> throws you over <<bhis>> shoulder and runs deeper into the forest with you. <<else>> grabs you by the neck and bounds into the forest. <</if>> <br><br> <<if $upperoff isnot 0>> <<upperruined>> <</if>> <<if $loweroff isnot 0>> <<lowerruined>> <</if>> <<if $underloweroff isnot 0>> <<underlowerruined>> <</if>> <<if $underupperoff isnot 0>> <<underupperruined>> <</if>> <<if $syndromewolves gte 1>> <<link [[Next|Wolf Cave Returned]]>><<endcombat>><</link>> <br> <<else>> <<link [[Next|Forest Wolf Cave Intro]]>><<endcombat>><</link>> <br> <</if>> <</if>><<location "forest">><<effects>> <<if $phase is 0>> You leave the trail and walk into the dense forest. You avoid the pair, but your journey is slowed some. <br><br> <<elseif $phase is 1>> <<generate1>><<generate2>>A <<fullGroup>> come into view. They eye you up as they walk past. <<gstress>><<stress 1>> <br><br> <<endevent>> <<elseif $phase is 2>> <<generate1>><<generate2>>A <<fullGroup>> come into view. They eye you up as they walk past, clearly enjoying the view. <<exhibitionism3>> <<endevent>> <<elseif $phase is 3>> <<generate1>><<generate2>>A <<fullGroup>> come into view. They eye you up as they walk past, clearly shocked at seeing a naked <<girl>> in the middle of the forest, but not complaining. <<flaunting>> you wink as you pass. <<exhibitionism5>> <<endevent>> <</if>> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <br><<if $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<generate1>><<generate2>><<maninit>> A <<fullGroup>> walk into view. <<person1>>As they walk by, they reach out and grab you! <br><br> <<forestRescueSetup>> <</if>> <<effects>> <<effectsman>> <<forestRescueCheck>> <<man>> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Forest Molestation Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Forest Molestation]]>><</link>></span><<nexttext>> <</if>><<location "forest">><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<ejaculation>> Finished with you, they dump you unceremoniously into a ditch. <br><br> <<tearful>> you struggle to your feet. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <br> <<elseif $enemyhealth lte 0>> <<tearful>> you manage to free yourself from their clutches, and escape into the forest. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <br> <<elseif $rescue is 1>> <<forestRescue>> <</if>><<if $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<beastCombatInit>> <<forestRescueSetup>> <<set $enemytrust -= 40>> <</if>> <<effects>> <<effectsman>> <<forestRescueCheck>> <br> <<beast $enemyno>> <br><br> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Forest Wolf Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Forest Wolf]]>><</link>></span><<nexttext>> <</if>><<if $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<beastCombatInit>> <<beastTrainGenerate>><<set $enemytrust -= 40>> <<forestRescueSetup>> <</if>> <<effects>> <<effectsman>> <<forestRescueCheck>> <br> <<beast $enemyno>> <br><br> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Forest Wolf2 Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Forest Wolf2]]>><</link>></span><<nexttext>> <</if>><<location "forest">><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<beastejaculation>> The <<beasttype>> grunts in satisfaction, and leaves you lying between the trees. <br><br> <<tearful>> you rise to your feet. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <br> <<elseif $enemyhealth lte 0>> The <<beasttype>> yelps and flees into the forest. <br><br> <<tearful>> you gather yourself. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <br> <<elseif $rescue is 1>> <<forestRescue>> <<else>> The <<beasttype>> yelps and flees into the forest. <br><br> <<tearful>> you gather yourself. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <br> <</if>><<effects>> <<if $enemyhealth lte 0>> <<beastwound>> <<if $combatTrain.length gt 0>> The <<beasttype>> recoils in pain and fear, but the other is eager for a go. <<combatTrainAdvance>> <br><br> <<link [[Next|Forest Wolf2]]>><</link>> <<else>> The <<beasttype>> recoils in pain and fear. <<combatTrainAdvance>> <br><br> <<link [[Next|Forest Wolf2 Finish]]>><<set $finish to 1>><</link>> <</if>> <<elseif $enemyarousal gte $enemyarousalmax>> <<beastejaculation>> <<if $combatTrain.length gt 0>> Satisfied, the <<beasttype>> moves and another <<print $combatTrain.beastTypes[1]>> takes its turn. <<wolfpacktrust>> <<combatTrainAdvance>> <br><br> <<link [[Next|Forest Wolf2]]>><</link>> <<else>> Satisfied, the <<beasttype>> moves away from you. <<wolfpacktrust>> <<combatTrainAdvance>> <br><br> <<link [[Next|Forest Wolf2 Finish]]>><<set $finish to 1>><</link>> <</if>> <<elseif $rescue is 1 and $alarm is 1>> <<forestRescue>> <<elseif $finish is 1>> <<if $enemywounded is 1 and $enemyejaculated is 0>> The <<beasttype>> whimpers and flees into the darkness between the trees. <<elseif $enemywounded is 0 and $enemyejaculated is 1>> The <<beasttype>> leaves you lying on the grass. <<elseif $enemywounded gte 2 and $enemyejaculated is 0>> Feeling that you're more trouble than you're worth, the <<beastsplural>> flee between the trees. <<elseif $enemywounded is 0 and $enemyejaculated gte 2>> The <<beastsplural>> leave you spent and shivering on the grass. <<elseif $enemywounded gte 1 and $enemyejaculated gte 1>> The <<beastsplural>> leave you spent and shivering on the grass. <</if>> <br><br> <<tearful>> you gather yourself. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <br> <</if>><<location "forest">><<water>><<effects>> <<if dangerEvent($forestmod) and $eventskip is 0>> <!-- Modified for monster people --> <<beastNEWinit 1 lizard>> <<if $monster is 1 or $settings.bestialityEnabled>> A large <<beasttype>> rears out of the water! <br><br> <<link [[Next|Forest Swim Molestation]]>><<set $molestationstart to 1>><</link>> <<else>> A large lizard rears out of the water and grabs you in its maw! You manage to struggle free, but not unscathed.<<beastescape>> <br><br> <<link [[Next|Forest Swim]]>><<endevent>><<set $eventskip to 1>><</link>> <br> <</if>> <<else>> <<swimmingdifficulty 1 600 true>> <<if $swimmingSuccess>> The rushing water tears at you. <<set $stripintegrity to 20>><<set $stripobject to "jutting rock">><<stripobject>> Despite this, you <span class="green">successfully</span> swim across. <br><br> <<rng>> <<if $wraith.hunt and Time.isBloodMoon() and dangerEvent($forestmod, 7900)>> As you climb up the bank you feel your foot catch on something. <<if $settings.slimesEnabled>> You look down to see a pale white slime stuck to you, and many more emerging from the river. <<rainWraith true>> <br><br> Far down the river, you see a pale robed figure walking closer. It raises its hand, and the slimes leap at you! <br><br> <<link [[Next|Forest Pale Slime Struggle]]>><<set $struggle_start to 1>><<set $phase to 1>><</link>> <<else>> It violently tugs on your leg, attempting to pull you back into the river! You barely manage to pull away. You look back to see a pale figure disappear behind a tree. <<trauma 12>><<pain 6>><<stress 12>><<gtrauma>><<gpain>><<gstress>> <br><br> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <</if>> <<else>> <<if $rng gte 71 and $settings.parasitesEnabled and !$parasite.bottom.name>> <<if $worn.lower.type.includes("naked") or setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1>> As you climb up the bank you feel a pinching sensation on your <<bottom>>. You feel behind you, and find a strange, soft creature stuck there. It sucks on your skin, making it feel warm. <<garousal>><<arousal 600 "bottom">> <br><br> You tug, but it won't budge. You'll need help to remove it. <<parasite bottom urchin>> <br><br> <</if>> <</if>> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <</if>> <br> <<else>> The rushing water tears at you. <<set $stripintegrity to 20>><<set $stripobject to "jutting rock">><<stripobject>> The water is too violent, and you <span class="red">fail</span> to swim across the river, instead being swept downstream and deeper into the forest. <br><br> <<rng>> <<if $forest gte 40 and !$brookIntro>> <<set $brookIntro to 1>> As you climb up the bank, you notice that the waters are much calmer here. It looks like an offshoot brook. You should be able to follow it back upstream without much risk. <br><br> <span class="gold">You've discovered the brook.</span> <br><br> <<link [[Next|Forest Brook]]>><<endevent>><<set $forest to 80>><</link>> <<elseif $wraith.hunt and Time.isBloodMoon()>> As you climb up the bank you feel your foot catch on something. <<if $settings.slimesEnabled>> You look down to see a pale white slime stuck to you, and many more emerging from the river. <<rainWraith true>> <br><br> Far down the river, you see a pale robed figure walking closer. It raises its hand, and the slimes leap at you! <br><br> <<link [[Next|Forest Pale Slime Struggle]]>><<set $forest += 20>><<set $struggle_start to 1>><<set $phase to 2>><</link>> <<else>> It violently tugs on your leg, attempting to pull you back into the river! You barely manage to pull away. You look back to see a pale figure disappear behind a tree. <<trauma 12>><<pain 6>><<stress 12>><<gtrauma>><<gpain>><<gstress>> <br><br> <<link [[Next|Forest]]>><<set $forest += 20>><</link>> <</if>> <<else>> <<if $rng gte 71 and $settings.parasitesEnabled and !$parasite.bottom.name>> <<if $worn.lower.type.includes("naked") or setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1>> As you climb up the bank you feel a pinching sensation on your <<bottom>>. You feel behind you, and find a strange, soft creature stuck there. It sucks on your skin, making it feel warm. <<garousal>><<arousal 600 "bottom">> <br><br> You tug, but it won't budge. You'll need help to remove it. <<parasite bottom urchin>> <br><br> <</if>> <</if>> <<link [[Next|Forest]]>><<set $forest += 20>><</link>> <</if>> <br> <</if>> <</if>> <<set $eventskip to 0>><<if $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<beastCombatInit>> <<forestRescueSetup>> <</if>> <<effects>> <<effectsman>> <<forestRescueCheck>> <br> <<beast $enemyno>> <br><br> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Forest Swim Molestation Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Forest Swim Molestation]]>><</link>></span><<nexttext>> <</if>><<location "forest">><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<beastejaculation>> The <<beasttype>> hisses <<bhis>> satisfaction and dives back into the churning water. <br><br> <<tearful>> you gather yourself. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Forest Swim]]>><<set $eventskip to 1>><</link>> <br> <<elseif $enemyhealth lte 0>> The <<beasttype>> hisses in pain and dives back into the churning water. <br><br> <<tearful>> you gather yourself. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Forest Swim]]>><<set $eventskip to 1>><</link>> <br> <<elseif $rescue is 1>> <<forestRescue "river">> <</if>><<location "forest">> <<if $molestationstart is 1>> <<set $molestationstart to 0>> <<set $combat to 1>> <<set $enemytype to "tentacles">> <<molested>> <<controlloss>> <<tentaclestart 10 15 "root" "vine" true>> <<elseif $molestationstart is 2>> <<set $molestationstart to 0>> <<set $combat to 1>> <<set $enemytype to "tentacles">> <<consensual>> <<set $consensual to 1>> You give a small wiggle, inviting them closer. <<deviancy5>> <<set _randomtentacles to 6+random(1, 10)>> <<tentaclestart _randomtentacles 15 "root" "vine" true>> <</if>> <<statetentacles>> <<effects>> <<effectstentacles>> <<tentacles>> <<actionstentacles>> <<if $tentacles.active lte ($tentacles.max / 2)>> <span id="next"><<link [[Next|Forest Tentacles Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Forest Tentacles]]>><</link>></span><<nexttext>> <</if>><<effects>> The roots lose interest in you, and disappear into the soil. <<tearful>> you untangle yourself from the plants and vines surrounding you. <<clotheson>> <<endcombat>> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <br><<location "forest">><<effects>> <<if $molestationstart is 1>> <<set $molestationstart to 0>> <<set $combat to 1>> <<molested>> <<controlloss>> <<set $enemytype to "vore">> <<set $vorestage to 1>> <<set $vorecreature to "snake">> <<set $vorestrength to 1>><<set $position to "doggy">> <<set $timer to 4>> <<resetLastOptions>> <<getCombatDefaultsType>> <</if>> <<if $timer is 1>> <<set $trance to 0>> You break free from the trance, and realise the snake is trying to eat you! <</if>> <<voreeffects>> <<vore>> <<voreactions>> <<if $vorestage gte 7>> <span id="next"><<link [[Next|Forest Snake Finish]]>><</link>></span><<nexttext>> <<elseif $vorestage lte 0>> <span id="next"><<link [[Next|Forest Snake Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Forest Snake]]>><</link>></span><<nexttext>> <</if>><<effects>><<run statusCheck("Gwylan")>> <<set $trance to 0>> <<if $vorestage gte 7>> <<if $gwylan?.hunting gte 2 and npcCanHunt("Gwylan") and isGwylanAbsent() isnot "nobody" and !_gwylanStatus.includes("aurigaScarConfront")>> <<tearful>> you struggle as the snake starts to move. It journeys for several minutes. <br><br> <<endcombat>> <<link [[Next|Forest Gwylan Ritual Forced]]>><<pass 10>><<endevent>><<set $forest to 0>><<set $phase to "vored">><</link>> <<else>> <<tearful>> you struggle as the snake starts to move. It journeys for several minutes until with a great heave the snake pushes you up and through its gullet once more, expelling you from its body. <br><br> <<endcombat>> <<if $settings.swarmsEnabled>> You land in a pit of thousands of tiny snakes. <br><br> <<link [[Next|Forest Snake Swarm]]>><<pass 10>><<set $molestationstart to 1>><</link>> <<else>> The snake slithers away. It took you deeper into the forest. <br><br> <<clotheson>> <<link [[Next|Forest]]>><<pass 10>><<set $eventskip to 1>><<set $forest += 20>><</link>> <br> <</if>> <</if>> <<else>> <<tearful>> you escape from the snake's maw. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <br> <</if>><<location "forest">><<effects>> <<if $molestationstart is 1>> <<set $molestationstart to 0>> <<molested>> <<controlloss>> <<set $combat to 1>> <<set $enemytype to "swarm">> <<swarminit "snakes" "swarm" "slithering" "slither" "keep back" 10 0>> <<set $timer to 20>> <</if>> <<swarmeffects>> <<swarm>> <<swarmactions>> <<if $timer lte 0>> <span id="next"><<link [[Next|Forest Snake Swarm Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Forest Snake Swarm]]>><</link>></span><<nexttext>> <</if>><<location "forest">><<effects>> The snakes slither off of you, escaping through nooks and crannies all around the pit. <br><br> <<endcombat>> <<clotheson>> <<link [[Next|Forest]]>><<set $stress -= 500>><<set $eventskip to 1>><</link>> <br><<if $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<beastCombatInit>><<set $enemytrust -= 40>><<set $enemyanger += 40>><<set $enemyhealthmax to 400>><<set $enemyhealth to 400>><<set $enemyarousalmax to 1000>> You continue on your path. You don't get far before hearing a roar behind you. <<if $monster is 1>> "Tiny, squishy little morsel!" <</if>> <br><br> <<forestRescueSetup>> <</if>> <<effects>> <<effectsman>> <<forestRescueCheck "bear">> <br> <<beast $enemyno>> <br><br> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Forest Bear Molestation Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Forest Bear Molestation]]>><</link>></span><<nexttext>> <</if>><<location "forest">><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<beastejaculation>> Satisfied, the <<beasttype>> returns to its abode. <<if $monster is 1>> "Next time I might take you with me, squishy," <<bhe>> coos. <</if>> <br><br> <<tearful>> you continue on your way. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <br> <<elseif $enemyhealth lte 0>> You scare the mighty <<beasttype>>. <<bHe>> flees deeper into the forest. <<if $monster is 1>> "Not so tiny! Not so squishy!" <<bhe>> yells as <<bhe>> runs. <</if>> <br><br> <<tearful>> you continue on your way. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <br> <<elseif $rescue is 1>> <<forestRescue>> <</if>><<location "forest">><<effects>> You drop to the ground and adopt a mating posture. <<deviancy2>> The <<beasttype>> paces towards you and sniffs. <<if $monster is 1>> "Curious. Good smell." <</if>> <<bHe>> takes advantage of your position and mounts you. <br><br> <<link [[Next|Forest Wolf Sex]]>><<set $sexstart to 1>><</link>> <br><<location "forest">><<effects>> You drop to the ground and adopt a mating posture. <<deviancy3>> The <<beastsplural>> pace towards you and sniff. <<if $monster is 1>> <br><br> "Smells fresh. Me first!"<br> "No! Me first!"<br> "I saw first!"<br> "I smelled first!"<br><br> <</if>> They growl at each other. After a brief tussle, with many scratches and bites, the victor takes advantage of your position and mounts you. <br><br> <<link [[Next|Forest Wolf Sex2]]>><<set $sexstart to 1>><</link>> <br><<location "forest">><<effects>> <<if $syndromewolves gte 1>> You throw your head back and howl into the canopy. The <<if $phase is 1>><<beastNEWinit 2 wolf>><<beastsplural>> join<<else>><<beastNEWinit 1 wolf>><<beasttype>> joins<</if>> in, and you're answered by others in the distance. After a couple of minutes the howling dies down, and the <<if $phase is 1>><<beastsplural>> step<<else>><<beasttype>> steps<</if>> into view. <br><br> <<if $monster is 1>> "<<pPackbrother>>. Good to see." <br><br> <</if>> <<if $monster is 1 or $settings.bestialityEnabled>> <<if $phase is 1>> <<if hasSexStat("deviancy", 3)>> <<link [[Mate|Forest Wolf Sex2]]>><<set $phase to 2>><<set $sexstart to 1>><</link>><<deviant3>> <br> <</if>> <<else>> <<if hasSexStat("deviancy", 2)>> <<link [[Mate|Forest Wolf Sex]]>><<set $phase to 2>><<set $sexstart to 1>><</link>><<deviant2>> <br> <</if>> <</if>> <</if>> <<link [[Pat and depart|Forest Pat]]>><<trauma -6>><<stress -12>><</link>><<ltrauma>><<lstress>> <br> <<else>> You throw your head back and howl into the canopy. The <<if $phase is 1>><<beastNEWinit 2 wolf>><<beastsplural>> join<<else>><<beastNEWinit 1 wolf>><<beasttype>> joins<</if>> in, and you're answered by others in the distance. After a couple of minutes the howling dies down. The <<if $phase is 1>><<beastsplural>> depart.<<else>><<beasttype>> departs.<</if>> <br><br> <<link [[Next|Forest]]>><<endevent>><<set $eventskip to 1>><</link>> <br> <</if>><<if $sexstart is 1>> <<set $sexstart to 0>> <<consensual>> <<set $consensual to 1>> <<neutral 1>> <<beastCombatInit>> <<beastTrainGenerate>> <<if $monster is 1 and $phase is 2>> "<<pPackbrother>> in <<pheat>>? Will help!" <</if>> <<set $NPCList[0].stance to "top">><<set $enemytrust -= 20>><<deviancy3>> <<forestRescueSetup>> <</if>> <<effects>> <<effectsman>> <<forestRescueCheck>> <br> <<beast $enemyno>> <br><br> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Forest Wolf Sex2 Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Forest Wolf Sex2]]>><</link>></span><<nexttext>> <</if>><<if $sexstart is 1>> <<set $sexstart to 0>> <<consensual>> <<set $consensual to 1>> <<neutral 1>> <<beastCombatInit>> <<forestRescueSetup>> <<if $monster is 1 and $phase is 2>> "<<pPackbrother>> in <<pheat>>? Will help!" <</if>> <<set $NPCList[0].stance to "top">><<set $enemytrust -= 20>><<deviancy2>> <</if>> <<effects>> <<effectsman>> <<forestRescueCheck>> <<beast $enemyno>> <br><br> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Forest Wolf Sex Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Forest Wolf Sex]]>><</link>></span><<nexttext>> <</if>><<location "forest">><<effects>> <<if $phase is 1>> You pat and stroke the <<beastsplural>>' heads. They rub against your hand, but don't stay long. <br><br> <<if $monster is 1>> "Stay safe, <<ppackbrother>>." <br><br> <</if>> <<link [[Next|Forest]]>><<endevent>><<set $eventskip to 1>><</link>> <br> <<else>> You pat and stroke the <<beasttype>>'s head. <<bHe>> rubs against your hand, but doesn't stay long. <br><br> <<if $monster is 1>> "Stay safe, <<ppackbrother>>." <br><br> <</if>> <<link [[Next|Forest]]>><<endevent>><<set $eventskip to 1>><</link>> <br> <</if>><<location "forest">><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<beastejaculation>> The <<beasttype>> licks your <<undies>> then slinks away between the trees. <<if $monster is 1>> "Tasty." <</if>> <<wolfpacktrust>> <br><br> <<tearful>> you rise to your feet. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <br> <<elseif $enemyhealth lte 0>> The <<beasttype>> whines and flees between the trees. <<if $monster is 1>> "Too strong!" <</if>> <br><br> <<tearful>> you gather yourself. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <br> <<elseif $finish is 1>> The <<beasttype>> turns away from you and slinks between the trees. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <br> <<elseif $rescue is 1>> <<forestRescue>> <</if>><<effects>> <<if $enemyhealth lte 0>> <<beastwound>> <<if $combatTrain.length gt 0>> The <<beasttype>> recoils in pain and fear, but the other is eager for a go. <<combatTrainAdvance>> <br><br> <<link [[Next|Forest Wolf Sex2]]>><</link>> <<else>> The <<beasttype>> recoils in pain and fear. <<combatTrainAdvance>> <br><br> <<link [[Next|Forest Wolf Sex2 Finish]]>><<set $finish to 1>><</link>> <</if>> <<elseif $enemyarousal gte $enemyarousalmax>> <<beastejaculation>> <<if $combatTrain.length gt 0>> Satisfied, the <<beasttype>> moves and another <<print $combatTrain.beastTypes[1]>> takes its turn. <<wolfpacktrust>> <<combatTrainAdvance>> <br><br> <<link [[Next|Forest Wolf Sex2]]>><</link>> <<else>> Satisfied, the <<beasttype>> moves away from you. <<wolfpacktrust>> <<combatTrainAdvance>> <br><br> <<link [[Next|Forest Wolf Sex2 Finish]]>><<set $finish to 1>><</link>> <</if>> <<elseif $rescue is 1 and $alarm is 1>> <<forestRescue>> <<elseif $finish is 1>> <<if $consensual is 1>> The <<beastsplural>> slink away between the trees. <<else>> <<if $enemywounded is 1 and $enemyejaculated is 0>> The <<beasttype>> whimpers and flees into the darkness between the trees. <<elseif $enemywounded is 0 and $enemyejaculated is 1>> The <<beasttype>> leaves you lying on the grass. <<elseif $enemywounded gte 2 and $enemyejaculated is 0>> Feeling that you're more trouble than you're worth, the <<beastsplural>> flee between the trees. <<elseif $enemywounded is 0 and $enemyejaculated gte 2>> The <<beastsplural>> leave you spent and shivering on the grass. <<elseif $enemywounded gte 1 and $enemyejaculated gte 1>> The <<beastsplural>> leave you spent and shivering on the grass. <</if>> <</if>> <br><br> <<tearful>> you gather yourself. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <br> <</if>><<location "forest">><<effects>> <<flaunting>> you leave your hiding place and walk towards the <<person>>, your <<lewdness>> proudly displayed. <<He>> drops <<his>> axe and jaw when <<he>> sees you, then rubs <<his>> eyes. "I've been hitting those shrooms too hard," <<he>> mutters. <<if $exposed gte 2>> <<exhibitionism5>> <<else>> <<exhibitionism3>> <</if>> <<link [[Flaunt|Forest Cutter Flaunt]]>><<arousal 600>><<trauma -6>><<stress -12>><</link>><<garousal>><<ltrauma>><<lstress>> <br> <<if hasSexStat("promiscuity", 2)>> <<link [[Seduce|Forest Cutter Seduce]]>><</link>><<promiscuous2>> <br> <</if>><<location "forest">><<effects>> The <<person>> embeds <<his>> axe in the tree and leans against it. "What brings you out here?" <<he>> asks. <br><br> <<link [[Chat (0:30)|Forest Cutter Chat]]>><<stress -6>><<trauma -3>><<pass 30>><</link>><<ltrauma>><<lstress>> <br> <<if hasSexStat("promiscuity", 2)>> <<link [[Seduce|Forest Cutter Seduce]]>><</link>><<promiscuous2>> <br> <</if>><<location "forest">><<effects>> You stay and chat with the <<person>>. <<He>> seems happy for the company. <br><br> <<if $pain gte 40>> <<He>> doesn't mention your tears, but <<he>> offers you a tissue. You blow your nose. <<lpain>><<pain -5>> <br><br> <</if>> <<if $rng gte 81>> "If you see any strange fellows," <<he>> says at one point, "stay away. Criminals sometimes traffic through these woods. Getting stuff into town that they shouldn't." <<elseif $rng gte 61>> "Folks from the temple sometimes come out here for ceremonies," <<he>> says at one point. "I avoid them. Creepy buggers." <<elseif $rng gte 41>> "Some of the animals here will hunt humans," <<he>> says at one point. "I always manage to scare them off. You might have more trouble though. Be careful." <<elseif $rng gte 21>> "They say the snakes here can put you in a trance," <<he>> says at one point. "Seems far-fetched. Don't know why anyone would want to risk going so deep anyway." <<else>> "There's a maniac living deep in these woods," <<he>> says at one point. "Probably the most dangerous thing in here, and that's saying something. Lives deeper than anyone with sense ever ventures." <</if>> <br><br> After a while <<he>> looks at the sky. "I need to get back to work," <<he>> says, lifting <<his>> axe. "It was nice meeting you. Go careful now." <br><br> <<endevent>> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <br><<location "forest">><<effects>> <<set $seductiondifficulty to 6000>> <<seductioncheck>> <<seductionskilluptext>> <<seductionskilluse>> You sit on the grass and look up at <<him>>. "I'm just looking for some company," you say, patting the grass next to you. <<promiscuity2>> <<if $seductionrating gte $seductionrequired>> <<He>> hesitates. You reach up, take <<his>> arm and gently pull <<him>> on top of you. <br><br> <<link [[Next|Forest Cutter Sex]]>><<set $sexstart to 1>><</link>> <br> <<else>> <<He>> hesitates. You reach up and tug <<his>> arm but <<he>> pulls away from you. "No, I really need to get back to work," <<he>> says. "Stay safe." <br><br> <<endevent>> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <br> <</if>><<location "forest">><<effects>> You give <<him>> a slow twirl while walking towards <<him>>, making sure <<he>> gets to see you from other angles. <<He>> looks away, <<his>> face turning red. "Don't be shy," you purr. "You can look all you want." You're close to <<him>> now, so close <<he>> has to look up to avoid seeing you. <<He>> turns around. "Y-you should take these to cover with," <<he>> says, pulling some towels from a bag sat on a tree stump. "You might attract some bad types dressed like that." <<He>> looks through the trees, still facing away from you. "Please leave me to work. If we're seen people will get the wrong idea." <br><br> <<endevent>> <<link [[Take the towels|Forest]]>><<set $eventskip to 1>><<towelup>><</link>> <br> <<link [[Just leave|Forest]]>><<set $eventskip to 1>><</link>> <br><<if $sexstart is 1>> <<set $sexstart to 0>> <<consensual>> <<set $consensual to 1>> <<neutral 1>> <<forestRescueSetup>> <<maninit>> <<set $enemytrust += 50>> <br><br> <</if>> <<effects>> <<effectsman>> <<forestRescueCheck>> <<man>> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Forest Cutter Sex Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Forest Cutter Sex]]>><</link>></span><<nexttext>> <</if>><<location "forest">><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<ejaculation>> <<He>> falls asleep on the grass. <<tearful>> you climb to your feet. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <<elseif $enemyhealth lte 0>> You knock the <<person>> back. <<He>> trips over a stump. <<tearful>> you escape into the forest. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <<elseif $rescue is 1 and $alarm is 1>> <<forestRescue "cutter">> <<else>> <<He>> climbs to <<his>> feet. "I should get back to work," <<he>> says. "People would get the wrong idea if they saw us." <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <</if>><<location "forest">><<effects>> <<if $rng gte 51>> You creep forward. The deer remains still. You step within arm's reach, and hold out your hand. It sniffs you, then goes back to grazing. <<ltrauma>><<lstress>><<trauma -6>><<stress -6>> <br><br> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <br> <<else>> You creep forward. Unfortunately, the deer turns and runs in the other direction. It disappears into the trees. <br><br> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <br> <</if>><<location "forest">><<effects>> <<generate1>><<generate2>> You stop in the middle of the trail, and wait. A <<fullGroup>> walk into view. They slow down when they see the strange <<girl>> stood still, staring at them. <br><br> "You lost?" the <<person1>><<person>> asks. <br><br> "I need you to have me," you say. <<if $worn.lower.name isnot "naked">> <<set $worn.lower.vagina_exposed to 1>><<set $worn.lower.anus_exposed to 1>><<set $worn.lower.exposed to 2>> <<if $worn.under_lower.name is "naked">> <<if setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1>><<set $worn.lower.skirt_down to 0>> You lift up your $worn.lower.name, <span class="lewd">exposing your <<undies>>.</span> <<else>><<set $worn.lower.state to "thighs">> You pull down your $worn.lower.name, <span class="lewd">exposing your <<undies>>.</span> <</if>> <</if>> <</if>> <<if $worn.under_lower.name isnot "naked">> <<set $worn.under_lower.anus_exposed to 1>><<set $worn.under_lower.vagina_exposed to 1>> <<set $worn.under_lower.state to "thighs">><<set $worn.under_lower.exposed to 2>> <<if $worn.lower.name is "naked">> You pull down your $worn.under_lower.name, <span class="lewd">exposing your <<genitals>>.</span> <<else>> <<if setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1>><<set $worn.lower.skirt_down to 0>> You lift up your $worn.lower.name with one hand while lowering you $worn.under_lower.name with the other <span class="lewd">exposing your <<genitals>>.</span> <<else>><<set $worn.lower.state to "thighs">> You pull down your $worn.lower.name and $worn.under_lower.name, <span class="lewd">exposing your <<genitals>>.</span> <</if>> <</if>> <</if>> <<promiscuity4>> The pair share a grin. "We'll be happy to oblige," <<he>> says, stepping closer. <br><br> <<link [[Next|Forest Slime Rape]]>><<set $sexstart to 1>><</link>> <br><<location "forest">><<effects>> <<generate1>><<generate2>> You stop in the middle of the trail, and wait. A <<fullGroup>> walk into view. They slow down when they see the strange <<girl>> stood still, staring at them. <br><br> "You lost?" the <<person1>><<person>> asks. <br><br> "I-I need," you say. "I need you to have me." <br><br> The pair share a grin. "We'll be happy to oblige," <<he>> says, stepping closer. <br><br> <<link [[Next|Forest Slime Rape]]>><<set $molestationstart to 1>><</link>> <br><<location "forest">><<effects>> <<if $earSlime.defyCooldown>> <<if $earSlime.growth gte 100>> <<set $earSlime.defyCooldown += 2>> You turn and run into the forest, making sure you get far away from the pair and whatever the slime wants you to do, and feel a jolt of pain as the slime punishes you for defiance. However, <span class="red">it doesn't stop you, knowing that it can punish you in other ways.</span> <<else>> You turn and run into the forest, making sure you get far away from the pair and whatever the slime wants you to do, and feel a jolt of pain as the slime punishes you for defiance. However, <span class="teal">it's still worn out from overpowering you earlier.</span> You feel it try, <span class="green">but fail,</span> to force your steps in the opposite direction. <</if>> <br><br> <<endevent>> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <br> <<elseif $earSlime.corruption gte (currentSkillValue('willpower') / 10)>> <<if hasSexStat("promiscuity", 4) and $earSlime.growth lt 100>> <<set $earSlime.defyCooldown += 4>> <<else>> <<set $earSlime.defyCooldown += 8>> <</if>> <<generate1>><<generate2>> You turn and run into the forest, making sure you get far away from the pair and whatever the slime wants you to do. You feel a jolt of pain as the slime punishes you for defiance. It tries to force your legs in the other direction, <span class="red">and overpowers your will.</span> <<ggwillpower>><<willpower 3>> <br><br> You stop in the middle of the trail, and wait. A <<fullGroup>> walk into view. They slow down when they see the strange <<girl>> stood still, staring at them. <br><br> "You lost?" the <<person1>><<person>> asks. <br><br> "I-I need," you say. "I need you to have me." <br><br> The pair share a grin. "We'll be happy to oblige," <<he>> says, stepping closer. <br><br> <<link [[Next|Forest Slime Rape]]>><<set $molestationstart to 1>><</link>> <br> <<else>> You turn and run into the forest, making sure you get far away from the pair and whatever the slime wants you to do. You feel a jolt of pain as the slime punishes you for defiance. It tries to force your legs in the other direction, <span class="green">but fails.</span> <<gwillpower>><<willpower 1>> <br><br> <<endevent>> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <br> <</if>><<if $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<set $noFinish to 1>> <<maninit>> <<forestRescueSetup>> <<elseif $sexstart is 1>> <<set $sexstart to 0>> <<consensual>> <<set $consensual to 1>> <<neutral 1>> <<set $noFinish to 1>> <<maninit>> <<forestRescueSetup>> <</if>> <<effects>> <<effectsman>> <<forestRescueCheck>> <<man>> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Forest Slime Rape Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Forest Slime Rape]]>><</link>></span><<nexttext>> <</if>><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<ejaculation>> They step away from you, smiling. "They said there were fairies living in this forest," the <<person1>><<person>> says. "Didn't expect them to be sluts though." Laughing, they continue on their journey. <br><br> Your knees buckle as the slime's influence fades. <<tearful>> you steady yourself. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <<elseif $enemyhealth lte 0>> The pair stagger back, swearing, and flee into the forest. <br><br> Your knees buckle as the slime's influence fades. <<tearful>> you steady yourself. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <br> <<elseif $rescue is 1>> <<forestRescue "slime">> <<else>> You shove the pair away from you. <<tearful>> you run. <br><br> You feel a jolt of pain as the slime punishes you for defiance. It tries to steal control of your legs, but fails. <<corruption -1>><<pain 8>><<stress 6>><<trauma 6>><<def 1>><<lcorruption>><<ggpain>><<ggtrauma>><<ggstress>> <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <</if>><<location "forest">><<effects>> In one motion, you turn and drop to your hands and knees. You wiggle provocatively, and growl. <<deviancy4>> A <<beasttype>> steps out from the forest, sniffs you, then mounts. <br><br> <<link [[Next|Forest Slime Wolf Rape]]>><<set $sexstart to 1>><</link>> <br><<location "forest">><<effects>> In one motion, you turn and drop to your hands and knees. You wiggle provocatively, and growl. <br><br> A <<beasttype>> steps out from the forest, sniffs you, then mounts. <br><br> <<link [[Next|Forest Slime Wolf Rape]]>><<set $molestationstart to 1>><</link>> <br><<location "forest">><<effects>> <<if $earSlime.defyCooldown>> <<if $earSlime.growth gte 100>> <<set $earSlime.defyCooldown += 2>> You turn and run into the forest and feel a jolt of pain as the slime punishes you for defiance. However, <span class="red">it doesn't stop you, knowing that it can punish you in other ways.</span> <<else>> You turn and run into the forest. The slime tries to overpower your will, and feel a jolt of pain as the slime punishes you for defiance. However, <span class="teal">it's still worn out from overpowering you earlier.</span> You feel it try, <span class="green">but fail,</span> to force your steps in the opposite direction. <</if>> <br><br> <<endevent>> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <br> <<elseif $earSlime.corruption gte (currentSkillValue('willpower') / 10)>> <<if hasSexStat("deviancy", 4) and $earSlime.growth lt 100>> <<set $earSlime.defyCooldown += 4>> <<else>> <<set $earSlime.defyCooldown += 8>> <</if>> You try to run into the forest, <span class="red">but the slime overpowers your will.</span> It forces you to turn and drop to your hands and knees. You wiggle provocatively, and growl. <<ggwillpower>><<willpower 3>> <br><br> A <<beasttype>> steps out from the forest, sniffs you, then mounts. <br><br> <<link [[Next|Forest Slime Wolf Rape]]>><<set $molestationstart to 1>><</link>> <br> <<else>> You turn and run into the forest. The slime tries to overpower your will, <span class="green">but you resist its influence.</span> The beast doesn't give chase. <<gwillpower>><<willpower 1>> <br><br> The slime retaliates with a jolt of pain. <br><br> <<endevent>> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <br> <</if>><<if $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<beastCombatInit>> <<set $noFinish to 1>> <<forestRescueSetup>> <<set $NPCList[0].stance to "top">> <<elseif $sexstart is 1>> <<set $sexstart to 0>> <<consensual>> <<set $consensual to 1>> <<neutral 1>> <<beastCombatInit>> <<set $noFinish to 1>> <<forestRescueSetup>> <<set $NPCList[0].stance to "top">> <</if>> <<effects>> <<effectsman>> <<forestRescueCheck>> <br><br> <<beast $enemyno>> <br><br> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Forest Slime Wolf Rape Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Forest Slime Wolf Rape]]>><</link>></span><<nexttext>> <</if>><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<beastejaculation>> The <<beasttype>> climbs off of you, and disappears into the forest. <br><br> Your knees buckle as the slime's influence fades. <<tearful>> you steady yourself. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <<elseif $enemyhealth lte 0>> The <<beasttype>> yelps and flees into the forest. <br><br> Your knees buckle as the slime's influence fades. <<tearful>> you steady yourself. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <br> <<elseif $rescue is 1>> <<forestRescue "slime">> <<else>> The <<beasttype>> runs into the forest, whimpering. <br><br> <<tearful>> you try to stand, but a jolt of pain sends you sprawling. The slime punishes you for defiance. <<corruption -1>><<pain 8>><<stress 6>><<trauma 6>><<def 1>><<lcorruption>><<ggpain>><<ggtrauma>><<ggstress>> <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <</if>><<effects>> You search among the trees at the edge of the clearing, looking for seeding orchids. You find several hiding beneath a bough. <br><br> <span class="gold">You can now grow <<icon "tending/orchid.png">> orchids.</span> <br><br> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <br><<effects>> You search around the base of ancient trees, looking for <<icon "tending/orchid.png">> orchids in bloom. <<if $tendingSuccess>> <<wearProp "orchid">> <span class="green">You find some around the base of a great oak.</span> <<tending_pick orchid>> <br><br> <<link [[Next|Forest]]>><<handheldon>><<set $eventskip to 1>><</link>> <br> <<else>> <span class="red">You find none that would sell at market.</span><<gtending>><<tending 2>> <br><br> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <br> <</if>><<effects>><<wearProp "rose" "red">> You reach into the rose bushes, searching for seeding flowers. You avoid the thorns as best you can, but a few tear at you regardless. <br><br> <span class="gold">You can now grow <<icon "tending/red_rose.png">> red roses.</span> <br><br> <<link [[Next|Forest]]>><<handheldon>><<set $eventskip to 1>><</link>> <br><<effects>> You search the rose bushes for blooming flowers, careful to avoid the thorns. <<if $tendingSuccess>> <<wearProp "rose" "red">> <span class="green">One bush blooms with <<icon "tending/red_rose.png">> red roses.</span> <<tending_pick red_rose>> <<else>> <span class="red">None of the flowers look suitable for market.</span><<gtending>><<tending 2>> <</if>> <br><br> <<link [[Next|Forest]]>><<handheldon>><<set $eventskip to 1>><</link>><<effects>> You drop to your knees and crawl through the grass, searching for seeding lilies in the shadow of larger plants. <br><br> <span class="gold">You can now grow <<icon "tending/lily.png">> lilies.</span> <br><br> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <br><<effects>> You drop to your knees and crawl through the grass, searching for blooming <<icon "tending/lily.png">> lilies. <<if $tendingSuccess>> <<wearProp "lily">> <span class="green">You find some saleable specimens hiding beneath a fern.</span><<tending_pick lily>> <<else>> <span class="red">You find none that would sell at market.</span><<gtending>><<tending 2>> <</if>> <br><br> <<link [[Next|Forest]]>><<handheldon>><<set $eventskip to 1>><</link>><<effects>> You lean against the tree, until the breeze changes direction and the haze lifts. You begin to feel more sure-footed, and are soon confident that you can continue. <br><br> <<if $foresthunt gte 1>><<set $foresthunt += 1.5>><</if>> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <br><<effects>> <<if $willpowerSuccess>> You continue walking. You're nagged by the fear that you're going the wrong way. It's hard to tell with the sky obscured by the canopy. <span class="green">You remain focused on your path,</span> and soon find the haze thinning. The dizziness subsides.<<willpower 1>><<gwillpower>> <br><br> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <br> <<else>> You continue walking, but the dizziness does not subside. You're nagged by the fear that you're going the wrong way. It's hard to tell with the sky obscured by the canopy. <span class="red">You change direction,</span> hoping to escape the haze, but it doesn't help. You turn again, and again. The dizziness becomes more intense, and you find it harder to think. You're lost.<<ggwillpower>><<willpower 3>> <br><br> You keep walking, the haze becomes sweeter, so much that you can taste it in the air. <br><br> You come across a large plant, taller and thicker than you. It's surrounded by vines and flowers. Clouds of white dust emerge from an aperture on top. <br><br> <<link [[Next|Forest Pitcher]]>><</link>> <br> <</if>><<effects>> You give in to the pull of the white haze, paying no mind to where you are going. The farther you walk, the thicker the pollen becomes, and the dizzier you feel. The scent grows sweeter with every step, so much so that you can taste it in the air. <br><br> Eventually you come across a large plant, taller and thicker than you. It's surrounded by vines and flowers. Clouds of white dust emerge from an aperture on top. <br><br> <<link [[Next|Forest Pitcher]]>><</link>> <br><<location "forest">><<effects>> <<if $earSlime.defyCooldown>> <<if $earSlime.growth gte 100>> <<set $earSlime.defyCooldown++>> You continue walking, but defy the slime's instructions, and feel a jolt of pain as the slime punishes you for defiance. However, <span class="red">it doesn't stop you, knowing that it can punish you in other ways.</span> <<else>> You continue walking, but defy the slime's instructions, and feel a jolt of pain as the slime punishes you for defiance. However, <span class="teal">it's still worn out from overpowering you earlier.</span> You're nagged by the fear that you're going the wrong way. It's hard to tell with the sky obscured by the canopy. <span class="green">You remain focused on your path,</span> and soon find the haze thinning. The dizziness subsides.<<willpower 1>><<gwillpower>> <</if>> <br><br> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <br> <<elseif $earSlime.corruption gte (currentSkillValue('willpower') / 11)>><<set $earSlime.defyCooldown += 4>> You try to walk against the slime's instruction, <span class = "red">but it overpowers your will</span> and the dizziness does not subside. You're nagged by the fear that you're going the wrong way. It's hard to tell with the sky obscured by the canopy. The dizziness becomes more intense, and you find it harder to think.<<willpower 3>><<gwillpower>> <br><br> You keep walking, the haze becomes sweeter, so much that you can taste it in the air. <br><br> You come across a large plant, taller and thicker than you. It's surrounded by vines and flowers. Clouds of white dust emerge from an aperture on top. <br><br> <<link [[Next|Forest Pitcher]]>><</link>> <<else>> You continue walking, but defy the slime's instructions. You're nagged by the fear that you're going the wrong way. It's hard to tell with the sky obscured by the canopy. <span class="green">You remain focused on your path,</span> and soon find the haze thinning. The dizziness subsides.<<willpower 1>><<gwillpower>> <br><br> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <br> <</if>><<location "forest">><<effects>> While you follow the slimes instructions, the dizziness does not subside. It's hard to tell where the slime is taking you with the sky obscured by the canopy. The dizziness becomes more intense, and you find it harder to think. <br><br> You keep walking, the haze becomes sweeter, so much that you can taste it in the air. <br><br> You come across a large plant, taller and thicker than you. It's surrounded by vines and flowers. Clouds of white dust emerge from an aperture on top. <br><br> <<link [[Next|Forest Pitcher]]>><</link>> <br><<effects>> The dizziness becomes too intense. The world spins, and you fall. The vines spring to life as you land on them, wrapping around your limbs and pulling you into the air<<if $worn.handheld.name isnot "naked">>, forcing you to drop your $worn.handheld.name.<<handheldruined>><<else>>.<</if>> You dangle, limp, as they lift you over the maw of the plant, and then inside.<<if $slimeObey isnot true>><<gtrauma>><<ggstress>><<trauma 6>><<stress 12>><</if>> <br><br> The fall jolts you to your senses. You land in a thick mucus that sticks to your skin, making it tingle. <<bodyliquid "feet" "nectar">> <<bodyliquid "thigh" "nectar">> <<bodyliquid "bottom" "nectar">> <br><br> <<if $parasite.left_ear.name isnot "slime" and $parasite.right_ear.name isnot "slime">> <<link [[Try to escape|Forest Pitcher Struggle Start]]>><</link>><<willpowerdifficulty 1 700>> <br> <</if>> <<link [[Endure|Forest Pitcher Endure]]>><</link>><<gggarousal>> <br><<effects>> <<if $willpowerSuccess>> You feel the strange dizziness descend once more, but <span class="green">you shake yourself free of its influence.</span> You're in trouble, and need to act.<<gwillpower>><<willpower 1>> <br><br> You pull yourself free of the sticky mucus, rising to your feet. It still comes up to your knees, but you think you'll be able to pull yourself free. You look around. The plant walls don't look too thick. You might also be able to reach the aperture above. <br><br> <<link [[Tear through|Forest Pitcher Break]]>><</link>><<physiquedifficulty 1 $physiquemax>> <br> <<link [[Climb out|Forest Pitcher Climb]]>><</link>><<athleticsdifficulty 1 1000>> <br> <<else>> You feel the strange dizziness descend once more and <span class="red">sneeze as the thought of trouble passes.</span> You slide back into the warm, relaxing fluid.<<gggarousal>><<ggwillpower>><<willpower 3>> <br><br> <<link [[Next|Forest Pitcher Endure]]>><</link>> <br> <</if>><<effects>> <<bodyliquid "thigh" "nectar">> <<bodyliquid "feet" "nectar">> <<bodyliquid "chest" "nectar">> <<bodyliquid "bottom" "nectar">> <<bodyliquid "tummy" "nectar">> <<if $physiqueSuccess>> You feel around for a solid footing, then punch the wall of the plant. <span class="green">You feel it yield.</span> You punch again, and again. More mucus drips from above, but you continue your assault. <br><br> <<if !$worn.over_upper.type.includes("naked") or !$worn.over_lower.type.includes("naked") or!$worn.upper.type.includes("naked") or !$worn.lower.type.includes("naked") or !$worn.under_lower.type.includes("naked") or !$worn.under_upper.type.includes("naked")>> <span class="pink">Your clothing feels looser as the mucus dissolves it.</span> <<set $worn.over_upper.integrity -= 50>> <<set $worn.over_lower.integrity -= 50>> <<set $worn.upper.integrity -= 50>> <<set $worn.lower.integrity -= 50>> <<set $worn.under_upper.integrity -= 50>> <<set $worn.under_lower.integrity -= 50>> <<integritycheck>><<exposure>> <br><br> <</if>> Something wraps around your ankle just as your fist breaks through. You shake yourself free and tear open a gap wide enough for your body. More vines spring to life, but they're too slow. You escape into the trees. <br><br> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <br> <<else>> You punch the wall of the plant, <span class="red">but it doesn't yield at all.</span> You try again, hoping to find some weak spot, but a thick vine rises from the mucus and snatches your waist, pulling you back into the fluid. <br><br> <<link [[Next|Forest Pitcher Resist]]>><</link>> <br> <</if>><<effects>> <<bodyliquid "thigh" "nectar">> <<bodyliquid "feet" "nectar">> <<if $athleticsSuccess>> You jump <span class="green">and your hands gain purchase on the lip of the plant.</span> You haul yourself out, dropping to the vine-covered ground and escaping through the trees before the dust can influence you once more.<<lstress>><<stress -6>> <br><br> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <<else>> You jump for the lip of the plant, <span class="red">but your fingers slide off</span>. You try a few more times, until you feel something snake up and around your leg. It tugs, and you fall back into the slime. <br><br> <<link [[Next|Forest Pitcher Resist]]>><</link>> <</if>><<effects>> <<drench "nectar" 2 "outside">><<drugs 180>> Multiple tentacles wrap around your wrists and ankles as you lie, lightheaded, in the goo. You struggle, but can't put up much of a fight as you are lifted into the air. <br><br> <<if !$worn.upper.type.includes("naked") or !$worn.lower.type.includes("naked") or !$worn.under_lower.type.includes("naked") or !$worn.under_upper.type.includes("naked")>> More mucus drips from above, <span class="pink">coating and dissolving your clothing.</span> <<upperruined>><<lowerruined>><<underruined>><<underupperruined>> <<exposure>> <br><br> <</if>> More vines emerge, their tips dripping with more of the sweet fluid. They squirm over your bare skin, over your <<breasts>> and <<genitals>>.<<ggtrauma>><<gggstress>><<trauma 12>><<stress 48>><<gggarousal>><<arousal 10000>> <br><br> The tingling in your skin becomes too much to bear. <<orgasm>> You hang limp, but the vines don't cease their assault. <<if $player.breastsize gte 3>> Two wrap around your <<breasts>>, squeezing them, while the tips of two of the thinner tendrils open. They latch onto your nipples, and suck. <<else>> The tips of two of the thinner tendrils open. They latch onto your <<nipples>>, and suck. <</if>> <<if $milk_amount gte 1 and $settings.breastFeedingEnabled and $lactating gte 1>> You feel your chest respond to the sensation, and milk flows from your buds. You remain suspended, helpless, as the plant suckles. <<breastfeed 5>> <<elseif $settings.breastFeedingEnabled>> <<milkvolume 5>> <</if>> <<arousal 10000>> <<orgasm>> <<link [[Next|Forest Pitcher Resist 2]]>><</link>> <br><<effects>> The walls close in, squeezing you. You're pushed upwards by the pressure. You slide from the plant and land on the bed of vines with a squelch. <br><br> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>><<effects>> <<drench "nectar" 2 "outside">><<drugs 180>> Any thought of danger passes as the warm slime envelops you. <<if !$worn.upper.type.includes("naked") or !$worn.lower.type.includes("naked") or !$worn.under_lower.type.includes("naked") or !$worn.under_upper.type.includes("naked")>> <span class="pink">You barely notice as it dissolves your clothing.</span> <<upperruined>><<lowerruined>><<underruined>><<underupperruined>> <<exposure>> <</if>> <br><br> You feel slimy vines wrap around your limbs and waist, lifting your limp body into the air. More vines emerge, hot liquid dripping from their tips. They squirm over your bare skin, over your <<breasts>> and <<genitals>>. <<if $slimeObey is true>> The slime rewards you for doing as you were told. <<ltrauma>><<lstress>><<trauma -6>><<stress -24>><<unset $slimeObey>> <<else>> <<ggtrauma>><<gggstress>><<trauma 12>><<stress 48>> <</if>> <<gggarousal>><<arousal 10000>> <br><br> The tingling in your skin becomes too much to bear. <<orgasm>> You hang limp, but the vines don't cease their assault. <<if $player.breastsize gte 3>> Two wrap around your <<breasts>>, squeezing them, while the tips of two of the thinner tendrils open. They latch onto your nipples, and suck. <<else>> The tips of two of the thinner tendrils open. They latch onto your <<nipples>>, and suck. <</if>> <<if $milk_amount gte 1 and $settings.breastFeedingEnabled and $lactating gte 1>> You feel your chest respond to the sensation, and milk flows from your buds. You remain suspended, helpless, as the plant suckles. <<breastfeed 5>> <<elseif $settings.breastFeedingEnabled>> <<milkvolume 5>> <</if>> <<arousal 10000>> <<orgasm>> <<link [[Next|Forest Pitcher Endure 2]]>><</link>><<effects>> The walls close in, squeezing you. You're pushed upwards by the pressure. You slide from the plant and land on the bed of vines with a squelch. <br><br> You lie naked on the ground, sticky with slime and twitching with arousal. <br><br> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <br><<effects>> <<clothesstrip>> The wasps<<if $settings.analEnabled>>, including the one that latched onto your bottom,<</if>> circle you as you strip, seeming to enjoy the show. <<deviancy4>> The instant you're finished, they approach you with a more relaxed pace. <br><br> <<link [[Next|Forest Wasps]]>><<set $struggle_start to 2>><</link>><<effects>> <<if $struggle_start is 1>> <<struggle_init>> <<set $struggle.creature to "wasp">> <<struggle_creatures 2 2>> <<set $combat to 1>> <<controlloss>> <<violence 1>> <<molested>> <<if $settings.analEnabled>> <<set $struggle.anus.creature to "wasp">><<set $anususe to "struggle">><<set $anusstate to "struggle">><<set $struggle.enemy[0].location to "anus">> <</if>> <<unset $struggle_start>> <<elseif $struggle_start is 2>> <<struggle_init>> <<set $struggle.creature to "wasp">> <<struggle_creatures 2 2>> <<set $combat to 1>> <<neutral 1>> <<consensual>> <<set $consensual to 1>> <<if $settings.analEnabled>> <<set $struggle.anus.creature to "wasp">><<set $anususe to "struggle">><<set $anusstate to "struggle">><<set $struggle.enemy[0].location to "anus">> <</if>> <<unset $struggle_start>> <</if>> <<struggle>> <<if $struggle.done gte $struggle.number>> <span id="next"><<link [[Next|Forest Wasps End]]>><</link>></span> <br> <<else>> <span id="next"><<link [[Next|Forest Wasps]]>><</link>></span> <br> <</if>><<effects>> The buzzing fades into the trees. <<tearful>> you continue through the forest. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <br><<effects>> You shake the <<icon "tending/apple.png">> apple trees, hoping to dislodge some of the fruit. <<if $tendingSuccess>> <<wearProp "apple">> <span class="green">You catch some shiny ones.</span> <<tending_pick apple 6 18>> <<else>> <span class="red">None fall.</span> Those on the ground are too bruised.<<gtending>><<tending 2>> <</if>> <br><br> <<link [[Next|Forest]]>><<handheldon>><<set $eventskip to 1>><</link>><<effects>> You stand on tiptoe, and test the <<icon "tending/pear.png">> pears. <<if $tendingSuccess>> <<wearProp "pear">> <span class="green">You find some ripe ones.</span> <<tending_pick pear 6 18>> <<else>> <span class="red">All the ones you can reach are too squishy.</span><<gtending>><<tending 2>> <</if>> <br><br> <<link [[Next|Forest]]>><<handheldon>><<set $eventskip to 1>><</link>><<effects>> You search the short trees for saleable <<icon "tending/lemon.png">> lemons. <<if $tendingSuccess>> <<wearProp "lemon">> <span class="green">You find a bunch, nice and yellow.</span> <<tending_pick lemon 6 18>> <<else>> <span class="red">They're all too green.</span><<gtending>><<tending 2>> <</if>> <br><br> <<link [[Next|Forest]]>><<handheldon>><<set $eventskip to 1>><</link>><<effects>> You search the short trees for saleable <<icon "tending/blood_lemon.gif">> lemons. <<if $tendingSuccess>> <<wearProp "blood lemon">> <span class="green">You find a bunch,</span> their yellow skin criss-crossed by red veins. <<tending_pick blood_lemon 6 18>> <<earnFeat "In Red Light">> <br><br> You feel strangely heated.<<drugs 60>><<arousal 600>><<garousal>> <<else>> <span class="red">They're all too green.</span><<gtending>><<tending 2>> <</if>> <br><br> <<link [[Next|Forest]]>><<handheldon>><<set $eventskip to 1>><</link>><<effects>><<wearProp "honeycomb">> You climb the tree until you're level with the hive. You reach for the <<icon "tending/wild_honeycomb.png">> honeycomb, and snap off a large chunk. <<silently>><<tending_pick wild_honeycomb 1 2>><</silently>> <<earnFeat "Oh Bother">> <<if $tendingSuccess>> <span class="green">The bees don't react.</span> <br><br> Not wanting to tempt fate, you climb back down the tree, prize in hand. <br><br> <<link [[Next|Forest]]>><<handheldon>><<set $eventskip to 1>><</link>> <br> <<else>> <span class="red">The buzzing intensifies.</span> <br><br> You clamber down the tree, prize in hand. Four immense bees emerge from the hive, and shoot after you. <br><br> <<link [[Next|Forest Honey Struggle]]>><<handheldon>><<set $struggle_start to 1>><</link>> <br> <</if>><<effects>> <<if $struggle_start is 1>> <<struggle_init>> <<set $struggle.creature to "bee">>/*Creature species*/ <<struggle_creatures 4 2>>/*How many creatures will be involved, and their health.*/ <<set $combat to 1>> <<controlloss>> <<violence 1>> <<molested>> <<unset $struggle_start>> <</if>> <<struggle>> <<if $struggle.done gte $struggle.number>> <span id="next"><<link [[Next|Forest Honey Struggle End]]>><</link>></span> <br> <<else>> <span id="next"><<link [[Next|Forest Honey Struggle]]>><</link>></span> <br> <</if>><<effects>> You escape into the forest. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <br><<effects>> <<if $struggle_start is 1>> <<struggle_init>> <<set $struggle.creature to "pale slime">> <<if $wraith.state is "haunt">> <<struggle_creatures 3 2>> <<else>> <<struggle_creatures 2 1>> <</if>> <<set $combat to 1>> <<controlloss>> <<violence 1>> <<molested>> <<unset $struggle_start>> <</if>> <<struggle>> <<if $struggle.done gte $struggle.number>> <span id="next"><<link [[Next|Forest Pale Slime Struggle End]]>><</link>></span> <br> <<else>> <span id="next"><<link [[Next|Forest Pale Slime Struggle]]>><</link>></span> <br> <</if>><<effects>> The slimes disappear into the river. <<tearful>> you look around frantically. <<if $phase is 1>> The pale figure is nowhere to be found. You breathe a sigh of relief, but waste no time getting back on the move. <<endRainWraith true>> <<set $wraith.hunt -= 3>> <<if $wraith.hunt lte 0>> You think you've lost it, but you stay on your guard. <<set $wraith.hunt to 0>><<set $wraith.timer += 5>><<set $foresthunt to 0>> <<else>> It's likely still coming for you, but you've put valuable distance between you and it. <</if>> <<else>> The pale figure is nowhere to be found. You're about to breathe a sigh of relief, but hear a laugh from the treeline. You break out into a run. <<endRainWraith>> <</if>> <<clotheson>> <<endcombat>> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <br><<if $sexstart is 1 or $molestationstart is 1>> <<if $sexstart is 1>> <<set $sexstart to 0>> <<consensual>><<set $consensual to 1>> <<neutral 1>> <<elseif $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <</if>> <<forestRescueSetup>> <<maninit "plant">><<npcexpose>> <<set $enemyarousalmax to 800>> <<if $phase is 2>> <<set _randomtentacles to random(10, 12)>> <<else>> <<set _randomtentacles to random(6, 10)>> <</if>> <<makeAbomination _randomtentacles 8 "vine" "vine" true>> <<if $phase is 1>> <<if $player.penisExist>> <<set $NPCList[0].mouth to "penisentrance">><<set $penisuse to "othermouth">><<set $penisstate to "othermouthentrance">><<set $penistarget to 0>> <<else>> <<set $NPCList[0].mouth to "vaginaentrance">><<set $vaginause to "othermouth">><<set $vaginastate to "othermouthentrance">><<set $vaginatarget to 0>> <</if>> <<set $NPCList[0].location.head to "genitals">> <<set $tentacles[0].shaft to "leftarm">><<set $leftarm to "tentgrappled">><<set $leftarmstate to 0>><<set $lefttarget to "tentacles">> <<set $tentacles[1].shaft to "rightarm">><<set $rightarm to "tentgrappled">><<set $leftarmstate to 0>><<set $righttarget to "tentacles">> <<elseif $phase is 0 and !$consensual>> <<npckiss>> <</if>> <</if>> <<effects>> <<effectsabomination>> <<forestRescueCheck>> <<abomination>> <<stateabomination>> <br><br> <<actionsabomination>> <<if _combatend>> <span id="next"><<link [[Next|Forest Plant Sex Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Forest Plant Sex]]>><</link>></span><<nexttext>> <</if>><<location "forest">><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<if $phase is 1>> <<ejaculation "short">> <<else>> <<ejaculation>> <</if>> "That was fun!" the <<person>> chirps. "I wish more humans were like you." <br><br> <<He>> picks <<himself>> up off the ground and dusts off one of <<his>> vines. "If you're ever in the area, hit me up! I'd love to do this again!" <<He>> walks off, <<his>> vines shambling behind <<him>>. <br><br> <<tearful>> you gather yourself. <<clotheson>> <<endcombat>> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <<elseif $enemyhealth lte 0>> The <<person>> backpedals from you, looking at you warily. "Yeesh, a bit uncalled for, wouldn't you say? I just wanted us to feel good." <<His>> vines all retract away from you. <br><br> <<He>> rubs one of <<his>> vines, frowning. "Well, if you're ever in the area, hit me up. Maybe we can pick up where we left off, if you're in a better mood!" <<He>> walks off, <<his>> vines trailing weakly behind <<him>>. <br><br> <<tearful>> you gather yourself. <<clotheson>> <<endcombat>> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <<elseif $alarm is 1 and $rescue is 1>> <<forestRescue>> <</if>><<location "forest">><<effects>> <<if $backgroundTraits.includes("plantlover") and $nectar_timer lte 14>> You practically lurch forward and capture the <<persons>> lips with your own. <<He>> gasps into your own, and you thrust your tongue into <<his>> mouth, abandoning all self-control. <span class="green">Sweet nectar fills your mouth.</span> <<nectarfed 10>> <br><br> <<takeKissVirginity $NPCList[0] "addiction">> <<promiscuity1>> The <<person>> comes back to <<his>> senses, and wraps <<his>> vines around you. With a gentle, almost teasing push, <<he>> sends you to the forest floor and lowers <<himself>> to lie on top of you. "If I'd know you loved it so much," <<he>> whispers, "I'd have offered more than a kiss. Way more." <br><br> <<link [[Next|Forest Plant Sex]]>><<set $molestationstart to 1>><<set $phase to 0>><</link>> <<else>> You lean forward and kiss the <<person "normal">>, and <<he>> smiles against your mouth. <span class="lewd"><<His>> lips are sticky, and taste very sweet.</span> <<takeKissVirginity $NPCList[0] "consensual">><<promiscuity1>> <<if $rng gte 81>> <<He>> suddenly thrusts <<his>> tongue into your mouth. Something drips into your mouth, and your taste buds are assaulted by a dizzyingly sweet flavour. <<nectarfed 10>> <br><br> Your mind gets foggy, and you barely notice <<him>> pushing you to the ground. <span class="purple">The vines behind <<him>> writhe to life, slithering behind <<him>>.</span> <br><br> "Thanks for that," the <<person>> whispers, lowering <<himself>> to lie on top of you. "Now I think I'll take a bit more than a kiss." <br><br> <<link [[Next|Forest Plant Sex]]>><<set $molestationstart to 1>><<set $phase to 0>><</link>> <<else>> <<He>> holds the kiss for a few seconds, before nipping your upper lip and pulling away. You lick your lips. Syrupy nectar lingers around your mouth. <br><br> Behind <<him>>, <span class="purple">the vines writhe to life</span>, wriggling in contentment. "What did you think?" the <<person>> asks, winking. "Pretty great kiss, huh? Well, I thought so." <br><br> <<He>> turns to walk away. "Well, hope that brings you good luck! See you around, <<girl>>!" <br><br> <<if hasSexStat("deviancy", 3) or $backgroundTraits.includes("plantlover")>> <<link [[Seduce|Forest Plant Seduce]]>><</link>><<deviant3>> <br> <<link [[Say goodbye|Forest]]>><<endevent>><<set $eventskip to 1>><</link>> <<else>> <<link [[Next|Forest]]>><<endevent>><<set $eventskip to 1>><</link>> <</if>> <</if>> <</if>><<location "forest">><<effects>> "Leaving so soon?" you ask, batting your eyes. The <<person>> turns back. "I could give you so much more than just a kiss. <<if $settings.tentaclesEnabled>>Show me what those vines can do<<else>>Come and get me<</if>>." <br><br> <<set $seductiondifficulty to 0>> <<seductioncheck>> <<His>> eyes light up. "Oh, hell yeah!" <<He>> lunges for you and throws <<his>> arms around you, tackling you to the forest floor. <<His>> vines come to <<his>> side, writhing around you. "I love meeting humans who love nature." <br><br> <<if $seductionskill lt 1000>><span class="gold">You feel more confident in your powers of seduction... though you suspect <<he>> would've said yes no matter what.</span><br><br><</if>><<seductionskilluse>> <<link [[Next|Forest Plant Sex]]>><<set $sexstart to 1>><<set $phase to 0>><</link>><<location "forest">><<effects>> "Huh?" The <<persons "normal">> face scrunches up. "But why not?" <br><br> <<He>> thinks for a few seconds, <<if $rng gte 51>> before gasping. "Oh, I get it! You just want to skip the foreplay! I like your style." <<stress 6>><<gstress>> <br><br> <span class="purple">The vines behind <<him>> writhe to life, slithering behind <<him>>.</span> The <<person>> licks <<his>> lips. "Don't worry. I won't keep you waiting." <br><br> <<link [[Next|Forest Plant Sex]]>><<set $molestationstart to 1>><<set $phase to 1>><</link>> <<else>> before shrugging. "Well, whatever. I'm sure someone in this forest is willing to smooch a cute <<personsimple>>." <span class="purple">The vines behind <<him>> writhe to life, slithering behind <<him>>.</span> "Later!" <br><br> <<link [[Next|Forest]]>><<endevent>><<set $eventskip to 1>><</link>> <</if>><<effects>><<location "forest">> <<set $forest += random(-3,3)*5>><<set $forest = Math.clamp($forest, 21, 100)>> <<generatePlant1>><<person1>> <<orgasm>> You wake up to a sudden rush of pleasure, and a wet sensation on your <<genitals 1>>. You try to sit up, only to find <span class="red">vines binding your arms to the ground</span>. You struggle for a moment, but they coil tighter. <br><br> "Oh, hi there!" You crane your neck, and see a <<person>> sitting between your legs, with <<plant_details>> braided into <<his>> hair. <<if $exposed lte 1>> Your $worn.lower.name <<lowerhas>> been <<if setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1>>lifted up<<else>>pulled down<</if>>, <<if !$worn.under_lower.type.includes("naked")>> and your $worn.under_lower.name <<underlowerhas>> been pulled aside,<</if>> <span class="pink">revealing your <<genitals>>.</span> <</if>> <<He>> licks <<his>> lips. "I found you conked out in the forest, so I dragged you somewhere safe and helped myself." <<if playerChastity()>> <<He>> pokes your $worn.genitals.name. "At least, as best I could through this thing. Who put this on you? How cruel. <<else>> <<He>> grins. "It was just a taste, I wanted to wait until you woke up before really going at it. <</if>> Am I squeezing your arms too tight? Sorry if I am." <<if setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1>><<set $worn.lower.skirt_down to 0>><<else>><<set $worn.lower.state to "thighs">><</if>> <<set $worn.lower.vagina_exposed to 1>><<set $worn.lower.anus_exposed to 1>><<set $worn.lower.exposed to 2>> <<set $worn.under_lower.vagina_exposed to 1>><<set $worn.under_lower.anus_exposed to 1>><<set $worn.under_lower.exposed to 1>><<set $worn.under_lower.state to "thighs">> <br><br> You try to sit up again, but the vines pull you back down. "Ah bup bup," the <<person>> chides. "Just let me take care of you. Now, where was I...?" <<He>> moves <<his>> mouth back down to your <<genitals>>. <br><br> <<link [[Next|Forest Plant Sex]]>><<set $molestationstart to 1>><<set $phase to 1>><</link>><<effects>> <<if $phase is 0>> You ignore it and continue on your way. You hear a <<personsimple>> in the bush whining as you walk away. <br><br> <<link [[Next|Forest]]>><<endevent>><<set $eventskip to 1>><</link>> <<else>> Taking a deep breath, you purposefully step into the snare trap. It immediately tightens, pulling your legs together and sending you to the forest floor. The snare splits off to pull your legs apart. <br><br> A <<person "normal">> with <<plant_details>> in <<his>> hair and <span class="purple">writhing vines trailing behind <<him>></span> runs up to you from out of the bush. "Got one!" the <<person>> crows. "And I only waited six hours. I'm pretty much a trapping pro." <<He>> licks <<his>> lips and moves toward you, wiggling <<his>> fingers lewdly. <br><br> <<link [[Next|Forest Plant Sex]]>><<set $molestationstart to 1>><<set $leftleg to "bound">><<set $rightleg to "bound">><<set $phase to 1>><</link>> <</if>><<effects>> You plant your feet and brace for impact. The <<beasttype>> veers at the last moment, surprised, then turns to face you. <br><br> <<link [[Next|Forest Boar Rape]]>><<set $molestationstart to 1>><</link>> <br><<effects>> You leap aside at the last moment, out of the <<beasttype>>'s path, <<if $danceSuccess>> <span class="green">and land with a graceful poise.</span> <<if $monster is 1>> "A warning!" <<bhe>> shouts, disappearing between the trees. "Next time, I hit." <<else>> The <<beasttype>> doesn't slow, and disappears into the trees with another snort. <</if>> <br><br> <<link [[Next|Forest]]>><<set $eventskip to 1>><<endevent>><</link>> <br> <<else>> <span class="red">but stumble and fall as you land.</span> The <<beasttype>> swerves and turns to face you once more, slowing as <<bhe>> approaches. <<if $monster is 1>> "Show you what happen," <<bhe>> snorts. "To trespassers." <<else>> <<bHe>> snorts. <</if>> <<gpain>><<pain 4>> <br><br> <<link [[Next|Forest Boar Rape]]>><<set $molestationstart to 1>><</link>> <br> <</if>><<if $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<beastCombatInit>> <<forestRescueSetup>> <</if>> <<effects>> <<effectsman>> <<forestRescueCheck>> <br><br> <<beast $enemyno>> <br><br> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Forest Boar Rape Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Forest Boar Rape]]>><</link>></span><<nexttext>> <</if>><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<beastejaculation>> The <<beasttype>> stomps into the forest. <br><br> <<tearful>> you rise to your feet. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <br> <<elseif $enemyhealth lte 0>> The <<beasttype>> turns and runs, almost smacking into a tree in <<bhis>> haste to escape. <br><br> <<tearful>> you gather yourself. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <br> <<elseif $rescue is 1>> <<forestRescue>> <</if>><<effects>> You start to climb the tree towards the nest. You make it up halfway, before nearly slipping. <<if $athleticsSuccess>> <<unset $athleticsSuccess>> <span class="green">You manage to steady yourself, though.</span> <br><br> You continue the climb up to the nest, balancing yourself on the large branch it sits on. <<if currentSkillValue('tending') gte 150>> By your quick count, you see <span class="blue"><<number $forest_nest.eggs>></span> viable bird <<pluralise $forest_nest.eggs "egg">>, but you'd need to count them individually to be sure. <br><br> <<link [[Climb down and pick out eggs|Forest Nest Search Eggs]]>><</link>><<tendingdifficulty 100 500>> <br> <<link [[Climb down and try to lure out a fox (0:05)|Forest Nest Bait]]>><<set $forest_nest.eggs -= 3>><<pass 5>><</link>><<note "Fewer eggs" "red">> <br> <<else>> <span class="blue">You need a higher tending skill to identify which eggs are viable for sale. Until then, you could try to lure a fox to do it for you, if you think you can get the eggs back afterwards...</span> <br><br> <<link [[Climb down and try to lure out a fox (0:05)|Forest Nest Bait]]>><<set $forest_nest.eggs -= 3>><<pass 5>><</link>><<note "Fewer eggs" "red">> <br> <</if>> <<link [[Climb down and leave|Forest]]>><<endevent>><<unset $forest_nest>><</link>> <br> <<else>> <<if $rng gte 51>> <<set $forest_nest.eggs -= 4>> You manage to steady yourself, but cause a lot of disturbance while doing so. The tree shakes, <span class="red">and the nest falls</span>. Egg white spills through the twigs. <br><br> You climb back down and inspect the nest. <<if $forest_nest.eggs lte 0>> <span class="red">You're met with a puddle of goop.</span> It seems you weren't careful enough. <br><br> <<if $forest_nest.fox isnot 3>> The smell is sure to attract a fox now. <br><br> <</if>> <<if $forest_nest.fox is 2 and !$NPCList[0].traits.includesAny("cowardly","clumsy")>> <<link [[Wait for a fox|Forest Nest Ambushed]]>><</link>> <br> <<else>> <<link [[Wait for a fox|Forest Nest Hide]]>><<set $phase to 1>><</link>> <br> <</if>> <<elseif currentSkillValue('tending') gte 150>> By your quick count, you see <span class="blue"><<number $forest_nest.eggs>></span> viable bird <<pluralise $forest_nest.eggs "egg">>, but you'd need to count them individually to be sure. <br><br> <<link [[Pick up eggs|Forest Nest Search Eggs]]>><</link>><<tendingdifficulty 100 500>> <br> <<link [[Try to lure out a fox (0:05)|Forest Nest Bait]]>><<set $forest_nest.eggs -= 3>><<pass 5>><</link>><<note "Fewer eggs" "red">> <br> <<else>> <span class="blue">You need a higher tending skill to identify which eggs are viable for sale. Until then, you could try to lure a fox to do it for you, if you think you can get the eggs back afterwards...</span> <br><br> <<link [[Try to lure out a fox (0:05)|Forest Nest Bait]]>><<set $forest_nest.eggs -= 3>><<pass 5>><</link>><<note "Fewer eggs" "red">> <br> <</if>> <<link [[Leave|Forest]]>><<endevent>><<unset $forest_nest>><<set $eventskip to 1>><</link>> <br> <<else>> A branch cracks under your weight, and <span class="red">you fall</span>. <<if $forest_nest.fox is 2 and $NPCList[0].traits.includes("friendly")>> <<if $monster is 1>> You brace for impact with the ground, but your landing is much softer than you expect. You open your eyes. <br><br> You're in the arms of a <<beasttype>>. <<bHe>> caught you, and <<bhe>> smiles. <br><br> "That was pretty dangerous. Here, this is how you do it." <<bHe>> gently puts you down, before scampering up the tree effortlessly. <<bHe>> grabs the whole nest and jumps back down. <br><br> "There! Wanna share?" <<bHis>> tail is wagging. <<else>> The ground is not kind. <<gstress>><<stress 6>><<gpain>><<pain 8>> <br><br> As you slowly open your eyes, you feel a warm breath on your face. There's a <<beasttype>> sitting over you. <<bHe>> tilts <<bhis>> head curiously. <br><br> After a moment, <<bhe>> bounds up the tree, picks an egg up in <<bhis>> mouth, and runs back down, placing it next to you. <<if $forest_nest.eggs gt 1>> <<bHe>> repeats this a few more times, making a pile. <</if>> <br><br> <<bHe>> headbutts you, looking at you expectantly as <<bhe>> sits next to the egg pile. <</if>> <br><br> <<if $fox gte 6>> <<link [[Eat one|Forest Nest Share]]>><<transform fox 1>><<stress -4>><</link>><<lstress>> <br> <<else>> <<link [[Eat one|Forest Nest Share]]>><<transform fox 1>><<stress 2>><</link>><<gstress>> <br> <</if>> <<link [[Leave|Forest]]>><<endevent>><<unset $forest_nest>><<set $eventskip to 1>><</link>> <br> <<else>> You hit a few branches on the way down, and ground is not kind. <<gstress>><<stress 6>><<gpain>><<pain 8>> <br><br> You won't be able to attempt another climb with so many of the branches broken. <br><br> <<link [[Knock the nest down|Forest Nest Throw]]>><<set $forest_nest.eggs -= 4>><<set $forest_nest.type to 3>><</link>><<note "Fewer eggs" "red">> <br> <<if $forest_nest.fox is 3>> <<link [[Hide and wait (0:05)|Forest Nest Hide]]>><<unset $athleticsSuccess>><<set $forest_nest.eggs -= 2>><<pass 5>><</link>><<note "Fewer eggs" "red">> <br> <</if>> <<link [[Leave|Forest]]>><<endevent>><<unset $forest_nest>><<set $eventskip to 1>><</link>> <br> <</if>> <</if>> <</if>><<effects>> You grab a rock and toss it at the nest. It gets knocked loose, falling down in a messy heap. You see goo and yolk leaking through the twigs. <<if $harpy gte 6>><<stress 6>><<ggstress>><</if>> <br><br> <<if $forest_nest.fox isnot 3>> They're sure to attract a fox if you wait around too long. <br><br> <</if>> <<link [[Search the nest|Forest Nest Search]]>><</link>> <br> <<if $forest_nest.fox is 2 and !$NPCList[0].traits.includesAny("cowardly","clumsy")>> <<link [[Wait for a fox (0:20)|Forest Nest Ambushed]]>><</link>><<note "Fewer eggs" "red">> <<else>> <<link [[Wait for a fox (0:20)|Forest Nest Hide]]>><<set $phase to 1>><<set $forest_nest.eggs -= 2>><<pass 20>><</link>><<note "Fewer eggs" "red">> <</if>> <br><<effects>> You approach the nest and look inside. <<if $forest_nest.eggs lte 0>> <span class="red">You're met with a puddle of goop.</span> It seems you weren't careful enough. <br><br> <<if $forest_nest.fox is 2 and !$NPCList[0].traits.includesAny("cowardly","clumsy")>> <<link [[Wait for a fox|Forest Nest Ambushed]]>><</link>> <br> <<else>> <<link [[Wait for a fox|Forest Nest Hide]]>><<set $phase to 1>><</link>> <br> <</if>> <<elseif currentSkillValue('tending') gte 150>> By your quick count, you see <span class="blue"><<number $forest_nest.eggs>></span> viable bird <<pluralise $forest_nest.eggs "egg">>, but you'd need to count them individually to be sure. <br><br> <<link [[Pick up eggs|Forest Nest Search Eggs]]>><</link>><<tendingdifficulty 100 500>> <br> <<link [[Try to lure out a fox (0:05)|Forest Nest Bait]]>><<set $forest_nest.eggs -= 3>><<pass 5>><</link>><<note "Fewer eggs" "red">> <br> <<else>> <span class="blue">You need a higher tending skill to identify which eggs are viable for sale. Until then, you could try to lure a fox to do it for you, if you think you can get the eggs back afterwards...</span> <br><br> <<link [[Try to lure out a fox (0:05)|Forest Nest Bait]]>><<set $forest_nest.eggs -= 3>><<pass 5>><</link>><<note "Fewer eggs" "red">> <br> <</if>> <<link [[Leave|Forest]]>><<endevent>><<unset $forest_nest>><<set $eventskip to 1>><</link>> <br><<effects>> <<if $tendingSuccess>> <span class="green">You find some viable eggs.</span> <<tending_bird_eggs $forest_nest.eggs>> <br><br> <<if $forest.fox gte 2 and $NPCList[0].traits.includesAny("territorial","clever","clumsy")>> As you look up, you hear a rustling behind you. A <<beasttype>> emerges from the treeline. <<if $monster is 1>> <<if $NPCList[0].traits.includes("territorial")>> "This is my territory. You'll pay for this trespass." <<else>> "I saw those first!" <</if>> <<bHe>> wants to challenge you for the eggs! <</if>> <br><br> <<link [[Next|Forest Fox Nest Rape]]>><<set $phase2 to 1>><<set $molestationstart to 1>><</link>> <br> <<elseif $forest.fox gte 2>> As you look up, you hear a rustling behind you. A <<beasttype>> peeks out from the treeline. <<bHe>> looks meek, and doesn't seem to want to challenge you for the eggs. <br><br> <<link [[Offer an egg|Forest Nest Search Offer]]>><<set $plants.bird_egg.amount -= 1>><</link>><<note "- Egg" "red">> <br> <<link [[Leave|Forest]]>><<endevent>><<unset $forest_nest>><<set $eventskip to 1>><</link>> <br> <<else>> <<link [[Bury one|Forest Nest Bury]]>><<trauma -3>><<transform fox 1>><<set $plants.bird_egg.amount -= 1>><</link>><<ltrauma>><<note "- Egg" "red">> <br> <<link [[Leave|Forest]]>><<endevent>><<unset $forest_nest>><<set $eventskip to 1>><</link>> <br> <</if>> <<else>> <span class="red">None of the eggs look suitable for market.</span><<gtending>><<tending 2>> <br><br> <<link [[Leave|Forest]]>><<endevent>><<unset $forest_nest>><<set $eventskip to 1>><</link>> <br> <</if>><<effects>> You hold out one of the eggs for the <<beasttype>>. <<bHe>> hesitantly approaches, and <<if $monster is 1>> takes it in <<bhis>> hand. <<bHe>> quickly pops it into is mouth. <<else>> grabs it with <<bhis>> mouth. <</if>> <<bHe>> quickly takes a few steps back, but doesn't flee. <br><br> <<link [[Pet|Forest Fox Nest Pet]]>><<set $tendingSuccess to true>><<set $phase2 to 1>><</link>><<llstress>> <br> <<link [[Leave|Forest]]>><<endevent>><<unset $forest_nest>><<set $eventskip to 1>><</link>> <br><<effects>> <<if $fox gte 2>> You put an egg in your mouth and start to dig a hole. You feel strangely excited. <br><br> Once it's deep enough, you drop the egg from your mouth into the hole. You hastily bury it, and give the dirt some extra patting down. You feel a primal sense of satisfaction. <<else>> You start to dig a hole with your hands. You're not sure why you're doing this. <br><br> Once it's deep enough, you gently place the egg in. You move the small dirt mound back over it, and pat it down. You feel strangely satisfied. <</if>> <br><br> <<link [[Leave|Forest]]>><<endevent>><<unset $forest_nest>><<set $eventskip to 1>><</link>> <br><<effects>> You quickly approach the nest. You find an egg that's already cracked, and use your thumb to break it open. <br><br> It's sure to attract a fox if you wait around. <br><br> <<if $forest_nest.fox is 2 and !$NPCList[0].traits.includesAny("cowardly","clumsy")>> <<link [[Wait for a fox|Forest Nest Ambushed]]>><</link>><<note "Fewer eggs" "red">> <<else>> <<link [[Wait for a fox|Forest Nest Hide]]>><</link>><<note "Fewer eggs" "red">> <</if>><<effects>> You wait around for what seems like a long time, with no sign of anything approaching. <br><br> That is, until you hear rapid footsteps behind you. You turn just in time to be <<if $monster is 1>> pounced on by a naked <<beasttype>>. <<else>> knocked clean over by a ball of orange fur. <</if>> <span class="red">There must have already been a <<beasttype>> nearby</span>, and your antics revealed your position! <br><br> <<if $NPCList[0].traits.includesAny("territorial","clever")>> <<if $monster is 1 or $settings.bestialityEnabled>> <<if $monster is 1>> <<bHe>> smugly straddles you, arms crossed. "That was clumsy. You gave yourself away so easily, <<foxnickname>>." <br><br> <<bHe>> stretches, leaving nothing to the imagination. "You need a lesson in subtlety." <<else>> <<bHe>> yips at you, keeping you pinned. <</if>> <br><br> <<link [[Next|Forest Fox Nest Rape]]>><<set $molestationstart to 1>><<set $position to "missionary">><<set $NPCList[0].stance to "top">><</link>> <br> <<else>> You push yourself out from under <<bhim>> and escape.<<beastescape>> <br><br> <<link [[Next|Forest]]>><<endevent>><<unset $forest_nest>><</link>> <br> <</if>> <<else>> <<if $monster is 1>> <<bHe>> sniffs you for a moment, and giggles before <span class="green">petting your head.</span> "What were you trying to do? You're a funny one." <br><br> <<bHe>> rolls off of you, walking up to the nest. <<bHe>> inspects it closely. <<if $forest_nest.eggs lte 0>> "They're all broken. No saving any for later. Wanna share?" <<bHe>> pats the ground next to <<bhim>>. <<else>> "There's still some left. Wanna share?" <<bHe>> pops one into <<bhis>> mouth and pats the ground next to <<bhim>>. <</if>> <<else>> <<bHe>> sniffs you for a moment and <span class="green">gives your face a lick.</span> <<bHis>> tongue tickles. <br><br> <<bHe>> rolls off of you, sauntering up to the nest. <<bHe>> inspects it closely, and <<if $forest_nest.eggs lte 0>> peeks back up with some yolk on <<bhis>> snout. <<else>> peeks back up with an egg in <<bhis>> mouth. <</if>> <<bHe>> seems to want to share with you. <</if>> <br><br> <<if $fox gte 6>> <<link [[Eat one|Forest Nest Share]]>><<transform fox 1>><<stress -4>><</link>><<lstress>> <br> <<else>> <<link [[Eat one|Forest Nest Share]]>><<transform fox 1>><<stress 2>><</link>><<gstress>> <br> <</if>> <<link [[Leave|Forest]]>><<endevent>><<unset $forest_nest>><<set $eventskip to 1>><</link>> <br> <</if>><<effects>><<wearProp "egg" 0 "bird">> <<if $forest_nest.eggs lte 0>> You pick up a broken egg and <<if $fox gte 6>>eagerly lap up its yolk<<else>>hesitantly pour the white and yolk into your mouth. It's not as bad as you thought it'd be<</if>>. <<else>> You pick up an egg and <<if $fox gte 6>>eagerly break it open into your mouth<<else>>hesitantly break it open into your mouth. It's not as bad as you thought it'd be<</if>>. <</if>> <br><br> <<if $monster is 1>> You spend some time talking with the <<beasttype>>, who seems glad to finally have someone friendly to talk to. <<else>> You spend some time petting the <<beasttype>>, who seems to adore the attention. <</if>> <br><br> You eventually say goodbye. <<if $forest_nest.eggs gte 2>> <<set $forest_nest.eggs to Math.floor($forest_nest.eggs / 2)>> <<bHe>> lets you take half of the remaining eggs. <<tending_bird_eggs $forest_nest.eggs>> <<else>> There's no eggs left to take. <</if>> <br><br> <<link [[Leave|Forest]]>><<endevent>><<unset $forest_nest>><<set $eventskip to 1>><</link>> <br><<effects>> You hide and wait, watching the nest intently. <<if $forest_nest.fox is 3>> <<if $fox gte 6>> The smell is getting closer. Before long, you hear rustling. <<else>> Before long, the rustling continues. <</if>> <<else>> <<if $forest_nest.fox is 1>> <<beastNEWinit 1 fox>> <</if>> Soon enough, you start to hear a rustling nearby. <</if>> <<if $forest_nest.type lte 3>> <<if $forest_nest.type lte 2>> A bright flash of orange and white shoots up the stump of the tree. A <<beasttype>>. <br><br> <<bHe>> clings to the treetop for a moment before approaching the nest. <<bHe>> closes the distance, and starts to dig through. Before long, <<bhe>> peeks up with <<if $monster is 1>> eggs in <<bhis>> hands. <<bHe>> deftly leaps back down from the tree. <<else>> an egg in <<bhis>> mouth. <<bHe>> leaps down from the tree, and starts to make a pile. <</if>> <<else>> A <<beasttype>> peeks into view, staring intently at the nest. <br><br> <<bHe>> hesitantly takes a step forward, looking around. <<bHe>> then darts forward and starts to dig through it. <<if $phase is 1>> <<set $phase to 0>> <<if $monster is 1>> <<bHe>> greedily licks the remains of the eggs from <<bhis>> fingers, <<else>> <<bHe>> starts to greedily lick up the remains of the eggs, <</if>> before moving on to the intact ones. <<if $forest_nest.eggs lte 0>><span class="purple">There don't seem to be many left</span>.<</if>> <<else>> <<if $monster is 1>> <<bHe>> grabs a handful, puts one in <<bhis>> mouth, and bounds a few metres away to make a pile. <<else>> <<bHe>> grabs one in <<bhis>> mouth and bounds a few metres away to start making a pile. <</if>> <</if>> <</if>> <<if $forest_nest.eggs gt 0>> <<if $NPCList[0].type.includes("clever")>> <<set $forest_nest.eggs += 2>><span class="green"><<bHe>> seems to have found quite a few, for the size of the nest.</span> <<elseif $NPCList[0].type.includes("clumsy")>> <<set $forest_nest.eggs -= 1>><span class="purple"><<bHe>> clumsily drops one of them and steps on it,</span> tumbling over <<bhimself>> right after. <</if>> <</if>> <<set $_athlDiffMin to ($NPCList[0].traits.includesAny("territorial","cowardly") ? 200 : 1)>> <<set $skulduggerydifficulty to $NPCList[0].skills.security>> <br><br> <<link [[Just watch (0:05)|Forest Fox Nest Watch]]>><<pass 5>><<stress -3>><</link>><<lstress>> <br> <<if $harpy gte 6>> <<link [[Challenge|Forest Fox Nest Challenge]]>><</link>><<harpy>> <br> <<else>> <<link [[Challenge|Forest Fox Nest Challenge]]>><</link>><<physiquedifficulty 1 $physiquemax>> <br> <</if>> <<link [[Sneak up|Forest Fox Nest Sneak]]>><</link>><<skulduggerydifficulty>> <br> <<if $fox gte 6>> <<link [[Chase!|Forest Fox Nest Chase]]>><<set $phase2 to 1>><<stress -6>><<transform fox 1>><</link>><<llstress>><<fox>><<note "No eggs" "red">> <br> <<else>> <<link [[Chase|Forest Fox Nest Chase]]>><<set $phase2 to 1>><<tiredness 6>><</link>><<gtiredness>><<athleticsdifficulty $_athlDiffMin $NPCList[0].skills.athletics>><<note "No eggs" "red">> <br> <</if>> <<else>> A <<beasttype>> peeks into view, staring intently at the nest. <br><br> <<bHe>> hesitantly takes a step forward, looking around. <<bHe>> then darts forward and starts to dig through it. <br><br> You hear a slither and a hiss. <<bHe>> hears it too. <<if currentSkillValue('tending') lt 800>><span class="red">This isn't a bird's nest.</span><</if>> <br><br> A massive snake slithers out from the underbrush, staring directly at the <<beasttype>>. <<if $NPCList[0].traits.includesAny("cowardly","clever")>> <<bHe>> doubles back, darting out of the area without missing a beat. <br><br> You leave too, not wanting to earn the ire of the snake. <br><br> <<link [[Next|Forest]]>><<endevent>><<set $eventskip to 1>><<unset $forest_nest>><</link>> <br> <<else>> <<if $NPCList[0].traits.includes("territorial")>> <<bHis>> tail puffs out and <<bhis>> back arches as <<bhe>> takes an aggressive stance. The snake lunges. The <<beasttype>> sidesteps and counters, but is caught by the snake's tail and knocked over. <<bHe>> quickly recovers, rolling over and <<if $monster is 1>> grabbing the tail with both hands. <<else>> biting down on the snake's tail. <</if>> <br><br> <<bHes>> not strong enough. <<bHes>> putting up a good fight, but the snake quickly wraps around <<bhim>>. <<else>> <<bHe>> looks completely entranced and frozen. <<bHe>> only manages to weakly bat at the snake as it lunges, and is quickly restrained. <</if>> <<if $settings.voreEnabled>> <span class="red">The snake's jaw unhinges.</span> <</if>> <br><br> <<link [[Keep watching|Forest Nest Snake Watch]]>><<trauma 12>><<if $voretrait gte 1>><<arousal 20>><</if>><</link>><<ggtrauma>><<if $voretrait gte 1>><<garousal>><</if>> <br> <<link [[Intervene!|Forest Nest Snake Intervene]]>><<stress 12>><</link>><<ggstress>><<physiquedifficulty 1 $physiquemax>> <br> <</if>> <</if>><<effects>> The <<beasttype>> dives behind a bush and starts to dig a hole, before dropping the eggs in and burying them. <<if $monster is 1>> "For later," <<bhe>> says to <<bhimself>> before letting out a satisfied huff and giving the dirt a few pats for good measure. <<else>> <<bHe>> huffs in satisfaction, giving the dirt a few more pats for good measure. <</if>> <<bHe>> bounds away right after. <br><br> <<link [[Next|Forest]]>><<endevent>><<set $eventskip to 1>><<unset $forest_nest>><</link>> <br><<effects>> The <<beasttype>> dives behind a bush and starts to dig a hole. You slowly step out, and start to approach <<bhim>> from behind. <br><br> <<skulduggerycheck>> <<if $skulduggerysuccess is 1>> <<if $NPCList[0].traits.includes("friendly")>> <<set _tendingMin to 1>><<set _tendingMax to 300>> <<elseif $NPCList[0].traits.includes("territorial")>> <<set _tendingMin to 200>><<set _tendingMax to 700>> <<else>> <<set _tendingMin to 100>><<set _tendingMax to 600>> <</if>> You carefully avoid any stray stones or twigs and <span class="green">make it right behind <<bhim>> without a sound.</span> <br><br> <<skulduggeryuse>> <<link [[Pet|Forest Fox Nest Pet]]>><</link>><<tendingdifficulty _tendingMin _tendingMax>><<llstress>> <br> <<link [[Scare|Forest Fox Nest Scare]]>><<trauma -10>><</link>><<lltrauma>> <br> <<else>> You make it about halfway, <span class="red">before stepping on a twig. It snaps loudly.</span> <br><br> <<if $NPCList[0].traits.includes("cowardly")>> The <<beasttypes>> tail stands on end and puffs out as <<bhe>> quickly turns to you, dropping the egg in the process. <<if $monster is 1>> <<bHe>> stumbles backwards, before righting <<bhimself>> and darting away. "Won't catch me!" <<bhe>> yells at you from the increasing distance. <<else>> <<bHe>> lets out a few high-pitched barks as <<bhe>> stumbles backwards, before righting <<bhimself>> and darting away. <</if>> <br><br> A few of the eggs were broken. <<set $forest_nest.eggs -= 2>><<tending_bird_eggs $forest_nest.eggs>> <br><br> <<if $forest_nest.eggs gte 1>> <<link [[Bury one|Forest Nest Bury]]>><<trauma -3>><<transform fox 1>><<set $plants.bird_egg.amount -= 1>><</link>><<ltrauma>><<note "- Egg" "red">> <br> <</if>> <<link [[Leave|Forest]]>><<endevent>><<set $eventskip to 1>><<unset $forest_nest>><</link>> <br> <<elseif $NPCList[0].traits.includes("territorial")>> The <<beasttypes>> ear twitches. <<bHe>> stays completely still for a moment. Then, in one swift movement, <<bhe>> bounds around and pounces! <br><br> <<bHe>> knocks you over easily despite <<bhis>> relatively small size. <<if $monster is 1 or $settings.bestialityEnabled>> <<if $monster is 1>> <<bHe>> holds both of your arms down. <<if $fox gte 6>> "What's this? Hoping to catch an easy mate, kit?" <<elseif $cat gte 6>> <<if $NPCList[0].pronoun is "f" and $NPCList[0].breastsize gte 4 and $NPCList[0].lactation is 1>> "Hoping to get some milk, stray?" <<bHe>> presses <<bhis>> $NPCList[0].breastsdesc against you, <<bhis>> face only inches from yours. <<else>> "Aren't you a bit far from home, cat?" <</if>> <<elseif $wolfgirl gte 6>> "Looking for easy prey, pup? You're not the predator here." <<else>> "Thought you could sneak up on me, meat?" <</if>> <<bHe>> stretches low, <<bhis>> posterior in the air. "Lucky you. I'm in quite the mood right now." <<else>> <<bHe>> yips at you, pinning you to the ground. <</if>> <br><br> <<link [[Next|Forest Fox Nest Rape]]>><<set $molestationstart to 1>><<set $position to "missionary">><<set $NPCList[0].stance to "top">><</link>> <br> <<else>> You push yourself backwards and flee.<<beastescape>> <br><br> <<link [[Next|Forest]]>><<endevent>><<unset $forest_nest>><</link>> <br> <</if>> <<elseif $NPCList[0].traits.includes("clever")>> The <<beasttypes>> ear twitches. <<bHe>> stays completely still for a moment. <<if $monster is 1>> Then, in one swift movement, <<bhe>> turns around and throws the egg at you! <br><br> It gets you right in the face, splattering yolk all over. <<bHe>> laughs at you, rolling over <<bhimself>> a few times before scampering away. <<bodyliquid "face" "goo">><<stress 6>><<pain 2>><<gstress>><<gpain>> <<else>> Then, in one swift movement, <<bhe>> bounds around and pounces! <br><br> <<bHe>> knocks you over easily despite <<bhis>> relatively small size. <<bHe>> then chomps on the egg right above your face, splattering yolk all over you. <<bHe>> lets out a series of high-pitched barks that sound a bit like laughter, rolling over <<bhimself>> a few times before scampering away. <<bodyliquid "face" "goo">><<stress 6>><<pain 2>><<gstress>><<gpain>> <</if>> <br><br> <<set $forest_nest.eggs -= 3>><<tending_bird_eggs $forest_nest.eggs>> <br><br> <<if $forest_nest.eggs gte 1>> <<link [[Bury one|Forest Nest Bury]]>><<trauma -3>><<transform fox 1>><<set $plants.bird_egg.amount -= 1>><</link>><<ltrauma>><<note "- Egg" "red">> <br> <</if>> <<link [[Leave|Forest]]>><<endevent>><<set $eventskip to 1>><<unset $forest_nest>><</link>> <br> <<elseif $NPCList[0].traits.includes("clumsy")>> The <<beasttypes>> tail stands on end and puffs out as <<bhe>> quickly turns to you. <<if $monster is 1>> <<bHe>> stumbles backwards, <span class="red">landing right on the eggs</span>. <<bHe>> quickly rights <<bhimself>> into a pouncing position. "You scared me! Don't do that!" <<bhe>> yells. <<bHe>> looks annoyed, but quickly starts trying to lick the destroyed eggs off <<bhis>> tail. <<bHe>> seems to immediately forget that you're there. <<else>> <<bHe>> rolls over <<bhimself>>, <span class="red">crushing the eggs</span>. <<bHe>> ends up in a pouncing position, staring you down. After a moment, <<bhe>> relaxes, and starts trying to lick the destroyed eggs off <<bhis>> fur. <<bHe>> seems to immediately forget that you're there. <</if>> <<set $forest_nest.eggs to 0>> <br><br> <<link [[Pet|Forest Fox Nest Pet]]>><<set $phase2 to 1>><</link>><<tendingdifficulty 1 200>><<llstress>> <br> <<if $fox gte 6 and $monster is 1>> <<link [[Lick <<bhim>> clean|Forest Fox Nest Lick]]>><<set $phase2 to 1>><</link>><<deviant1>><<fox>> <br> <</if>> <<link [[Leave|Forest]]>><<endevent>><<set $eventskip to 1>><<unset $forest_nest>><</link>> <br> <<else>> The <<beasttypes>> tail stands on end and puffs out. <<bHe>> dashes away without hesitation, crushing an egg in the process. <<bHe>> stops to look at you after <<bhe>> gets far enough away, before continuing to scamper off. <<set $forest_nest.eggs -= 2>><<tending_bird_eggs $forest_nest.eggs>> <br><br> <<if $forest_nest.eggs gte 1>> <<link [[Bury one|Forest Nest Bury]]>><<trauma -3>><<transform fox 1>><<set $plants.bird_egg.amount -= 1>><</link>><<ltrauma>><<note "- Egg" "red">> <br> <</if>> <<link [[Leave|Forest]]>><<endevent>><<set $eventskip to 1>><<unset $forest_nest>><</link>> <br> <</if>> <</if>><<effects>> The <<beasttype>> dives behind a bush and starts to dig a hole. You take the chance to charge forward. <br><br> <<bHe>> doesn't notice you until you're close. <<bHe>> starts to run. <<if $fox gte 6 or $athleticsSuccess>> <<if $athleticsSuccess>> <span class="green">But you're too fast.</span> You dive, catching <<bhim>> and rolling until <<bhes>> pinned under you. <<else>> You scamper along behind <<bhim>>, dashing in between trees. <<bHe>> almost seems to be enjoying it. Eventually you manage to close the distance, pouncing on <<bhim>> and pinning <<bhim>> under you. <</if>> <br><br> <<if $NPCList[0].traits.includes("cowardly")>> <<set _tendingMin to 1>> <<set _tendingMax to 500>> <<if $monster is 1>> <<bHe>> breathes heavily under you. "Wh...what do you want?" <<else>> <<bHe>> pants under you. <<bHe>> looks scared. <</if>> <<elseif $NPCList[0].traits.includes("territorial")>> <<set _tendingMin to 100>> <<set _tendingMax to 600>> <<if $monster is 1>> <<bHe>> pouts at you, letting out a low growl. "H...hurry up and do what you will, already." <<else>> <<bHe>> lets out a low growl. <</if>> <<elseif $NPCList[0].traits.includes("friendly")>> <<set _tendingMin to 1>> <<set _tendingMax to 2>> <<if $monster is 1>> <<bHes>> laughing under you. "That was fun! Thanks for the exercise." <<else>> <<bHe>> lets out many high-pitched barks that almost sound like laughter. <</if>> <<else>> <<set _tendingMin to 1>> <<set _tendingMax to 300>> <<if $monster is 1>> <<bHe>> breathes heavily under you. "You're quick." <<else>> <<bHe>> pants under you. <</if>> <</if>> <br><br> <<link [[Pet|Forest Fox Chase Pet]]>><</link>><<tendingdifficulty _tendingMin _tendingMax>><<llstress>> <br> <<if $settings.bestialityEnabled or $monster is 1>> <<if hasSexStat("deviancy", 2)>> <<link [[Adopt mating posture|Forest Fox Nest Mate]]>><<set $phase to 1>><</link>><<deviant2>> <br> <<else>> <<insufficientStat "deviancy" "to take things further">> <br> <</if>> <</if>> <<link [[Let <<bhim>> go|Forest Fox Let Go]]>><</link>> <br> <<else>> You manage to close the distance between you, <span class="red">but <<bhes>> too nimble.</span> <br><br> <<if $NPCList[0].traits.includes("territorial")>> You lose sight of <<bhim>> in a large patch of shrubbery. As you look around, you hear rapid footsteps approaching. You turn just in time to see a flash of orange before you're knocked over. <br><br> The same <<beasttype>> is now on top of you. <<if $monster is 1 or $settings.bestialityEnabled>> <<if $monster is 1>> <<bHe>> holds both of your arms down. <<if $fox gte 6>> "What's this? Hoping to catch an easy mate, kit?" <<elseif $cat gte 6>> <<if $NPCList[0].pronoun is "f" and $NPCList[0].breastsize gte 4 and $NPCList[0].lactation is 1>> "Hoping to get some milk, stray?" <<bHe>> presses <<bhis>> $NPCList[0].breastsdesc against you, <<bhis>> face only inches from yours. <<else>> "Aren't you a bit far from home, cat?" <</if>> <<elseif $wolfgirl gte 6>> "Looking for easy prey, pup? You're not the predator here." <<else>> "Thought you could catch me, meat?" <</if>> <<bHe>> stretches low, <<bhis>> posterior in the air. "Lucky you. I'm in quite the mood right now." <<else>> <<bHe>> yips at you, pinning you to the ground. <</if>> <br><br> <<link [[Next|Forest Fox Nest Rape]]>><<set $molestationstart to 1>><<set $position to "missionary">><<set $NPCList[0].stance to "top">><</link>> <br> <<else>> You push yourself out from under <<bhim>> and flee.<<beastescape>> <br><br> <<link [[Next|Forest]]>><<endevent>><<unset $forest_nest>><</link>> <br> <</if>> <<elseif $NPCList[0].traits.includes("clever")>> You briefly lose sight of <<bhim>>, but find <<bhim>> sitting between some shrubs after making a few turns. You start to approach, and <<bhe>> slowly steps back. <br><br> You keep walking forward, until you step on a branch. You're caught off guard as a rope snares around your right leg, hoisting you high into the air. It flips you upside down, leaving you dangling from a nearby tree.<<gstress>><<stress 6>> <br><br> <<if $monster is 1>> The <<beasttype>> laughs at you, rolling around over <<bhimself>>. "Enjoy your time with the <<nnpc_title "Eden">>!" <<bHe>> bounds away. <<else>> The <<beasttype>> makes some mocking barks at you. <<bHe>> bounds away. <</if>> <<endevent>> <br><br> <<link [[Next|Forest Fox Chase Eden]]>><<unset $forest_nest>><</link>> <br> <<else>> <<set $forest += 15>><<set $forest = Math.clamp($forest, 21, 100)>> You lose sight of <<bhim>> in a large patch of shrubbery. There's no sign of <<bhim>>, and you're now deeper in the forest than you remember. <br><br> <<link [[Next|Forest]]>><<endevent>><<set $eventskip to 1>><<unset $forest_nest>><</link>> <br> <</if>> <</if>><<effects>> <<npc Eden>><<person1>> You're left hanging there for some time. Any attempts to untie yourself are met with varying levels of failure. Soon, you hear someone approaching. <br><br> Without warning, the rope releases, dropping you back on the ground. You shakily stand. <<if $edenCagedEscape>> A hand grabs you by the back of the neck. "Told you I'd find you again, didn't I?" It's Eden. <br><br> <<He>> pins you against a tree, rage flashing in <<his>> eyes. <br><br> <<link [[Fight|Eden Caged Caught Resist]]>><<set $fightstart to 1>><</link>> <br> <<link [[Try to pull away|Eden Caged Caught Pull]]>><<def 1>><<npcincr Eden dom -1>><</link>><<physiquedifficulty 2000 18000>><<ldom>> <br> <<link [[Submit (0:30)|Eden Caged Caught]]>><<set $phase to 1>><<pass 30>><<npcincr Eden dom 1>><</link>><<gdom>> <br> <<elseif edenFreedomStatus() gte 2>> A hand grabs you by the back of the neck. "Where the fuck have you been?" snarls a <<personsimple>>. It's Eden. "I've been worried sick!" <br><br> Before you can speak, Eden begins to drag you away. "I don't want to hear your excuses, either." <<He>> glances scornfully in the direction of the town. "I could figure what you've been up to, anyway. Things aren't going to be pretty when we get home." <br><br> <<link [[Fight|Eden Caged Caught Resist]]>><<set $fightstart to 1>><</link>> <br> <<link [[Try to pull away|Eden Caged Caught Pull]]>><<def 1>><<npcincr Eden dom -1>><</link>><<physiquedifficulty 2000 18000>><<ldom>> <br> <<link [[Submit (0:30)|Eden Caged Caught]]>><<set $phase to 1>><<pass 30>><<sub 1>><<npcincr Eden dom 1>><</link>><<gdom>> <br> <<elseif edenFreedomStatus() is 1>> An arm wraps around your neck from behind, while a hand presses against the back of your head. You hear a <<personsimple>>'s voice. "I've been looking for you all over." It's Eden. "Come on, let's go home." <br><br> <<if $edenfreedom is 1 or ($edenfreedom gte 2 and $settings.asphyxiaLevel gte 3)>> <<link [[Resist|Eden Recaptured Resist]]>><<set $fightstart to 1>><</link>> <<else>> <<link [[Resist|Eden Recaptured Resist Normal]]>><<set $molestationstart to 1>><</link>> <</if>> <br> <<link [[Go to the cabin (0:30)|Eden Recaptured]]>><<edenTrackers>><<pass 30>><</link>> <br> <<elseif edenFreedomStatus() is 0>> <<rng>> <<if Time.dayState isnot "night">> "Those traps are meant for animals," you hear a voice say. It's Eden. "I thought you were that damned fox. You should watch where you're going." <<else>> <<if $rng gte 51>> A light blazes into your eyes, obscuring your vision. You raise your arm in front of your face. "Can't see a damn thing out here," says a voice. It's Eden. <<He>> points the torch right at you. "What are you doing out at this time?" <<else>> An arm wraps around your neck from behind, while a hand presses against the back of your head. You struggle, and the perpetrator releases you. "Sorry," says a voice. It's Eden. "I thought a fox tripped that trap, and someone was stealing it." <</if>> <</if>> <br><br> <<forestCabinReturnLinks>> <<else>> A bullet whizzes past and hits a tree in front of you. You shield your face with your arms and stagger backwards. You hear a <<personsimple>>'s voice. "I've got you now, you damned fox—" <<He>> pauses upon seeing you. <br><br> "Looks like I caught something better. Don't move." A cold hard object presses against your back. <br><br> <<link [[Next|Forest Hunter Molestation]]>><<set $molestationstart to 1>><</link>> <br> <</if>><<effects>> <<if $harpy gte 6>> You let out a piercing shriek, flaring out your wings. <<else>> You make your presence known, yelling at the <<beasttype>> to get <<bhis>> attention. <</if>> <br><br> <<if $NPCList[0].traits.includes("clumsy")>> Before you can follow through, however, <<bhe>> clumsily stumbles back in shock, <span class="red">crushing the remaining eggs.</span> This particular <<beasttype>> seems too clumsy to challenge effectively. <br><br> <<if $monster is 1>> <<bHe>> quickly rights <<bhimself>> into a pouncing position. "You scared me! Don't do that!" <<bhe>> yells. <<bHe>> looks annoyed, but quickly starts trying to lick the destroyed eggs off <<bhis>> tail. <<bHe>> seems to immediately forget that you're there. <<else>> <<bHe>> ends up in a pouncing position, staring you down. After a moment, <<bhe>> relaxes, and starts trying to lick the destroyed eggs off <<bhis>> fur. <<bHe>> seems to immediately forget that you're there. <</if>> <<set $forest_nest.eggs to 0>> <br><br> <<link [[Pet|Forest Fox Nest Pet]]>><<set $phase2 to 1>><</link>><<tendingdifficulty 1 200>><<llstress>> <br> <<if $fox gte 6 and $monster is 1>> <<link [[Lick <<bhim>> clean|Forest Fox Nest Lick]]>><<set $phase2 to 1>><</link>><<deviant1>><<fox>> <br> <</if>> <<link [[Leave|Forest]]>><<endevent>><<set $eventskip to 1>><<unset $forest_nest>><</link>> <br> <<elseif $NPCList[0].traits.includes("cowardly")>> Before you can follow through, however, <<bhis>> tail puffs up and <<bhe>> flees. <<bHe>> took some of the eggs with <<bhim>>. This particular <<beasttype>> seemed especially cowardly. <<set $forest_nest.eggs -= 2>> <br><br> <<tending_bird_eggs $forest_nest.eggs>> <br><br> <<if $forest_nest.eggs gte 1>> <<link [[Bury one|Forest Nest Bury]]>><<trauma -3>><<transform fox 1>><<set $plants.bird_egg.amount -= 1>><</link>><<ltrauma>><<note "- Egg" "red">> <br> <</if>> <<link [[Leave|Forest]]>><<endevent>><<set $eventskip to 1>><<unset $forest_nest>><</link>> <br> <<else>> You make yourself appear as large as possible, <<if $physiqueSuccess or $harpy gte 6>> <span class="green">and <<bhis>> tail puffs out.</span> <<if $NPCList[0].traits.includes("territorial")>> <<if $monster is 1>> "Damn it! Fine, take the eggs!" <<bHe>> hastily backs off. <<else>> <<bHe>> growls in frustration, but hastily backs off. <</if>> <<else>> <<bHe>> yelps and flees without looking back. <</if>> <br><br> <<tending_bird_eggs $forest_nest.eggs>> <br><br> <<if $forest_nest.eggs gte 1>> <<link [[Bury one|Forest Nest Bury]]>><<trauma -3>><<transform fox 1>><<set $plants.bird_egg.amount -= 1>><</link>><<ltrauma>><<note "- Egg" "red">> <br> <</if>> <<link [[Leave|Forest]]>><<endevent>><<set $eventskip to 1>><<unset $forest_nest>><</link>> <br> <<else>> <<if $NPCList[0].traits.includes("territorial")>> but <<bhe>> <span class="red">merely looks at you</span>. <<if $monster is 1>> "Challenging me in my own territory?" <<bHe>> scoffs. "You need to be taught a lesson." <</if>> The <<beasttype>> charges at you! <<if $monster is 1 or $settings.bestialityEnabled>> <br><br> <<link [[Next|Forest Fox Nest Rape]]>><<set $molestationstart to 1>><<set $position to "missionary">><<set $NPCList[0].stance to "top">><</link>> <br> <<else>> You scramble away from <<bhim>> and flee.<<beastescape>> <br><br> <<link [[Next|Forest]]>><<endevent>><<unset $forest_nest>><</link>> <br> <</if>> <<elseif $NPCList[0].traits.includes("clever")>> but <<bhis>> ear <span class="red">merely twitches</span>. <<if $monster is 1>> Then, in one swift movement, <<bhe>> picks up and throws an egg at you! <br><br> It gets you right in the face, splattering yolk all over. <<bHe>> laughs at you, rolling over <<bhimself>> a few times before scampering away. <<bodyliquid "face" "goo">><<stress 6>><<pain 2>><<gstress>><<gpain>> <<else>> Then, in one swift movement, <<bhe>> bounds around and pounces! <br><br> <<bHe>> knocks you over easily despite <<bhis>> relatively small size. <<bHe>> then chomps on the egg right above your face, splattering yolk all over you. <<bHe>> lets out a series of high-pitched barks that sound a bit like laughter, rolling over <<bhimself>> a few times before scampering away. <<bodyliquid "face" "goo">><<stress 6>><<pain 2>><<gstress>><<gpain>> <</if>> <br><br> <<set $forest_nest.eggs -= 3>><<tending_bird_eggs $forest_nest.eggs>> <br><br> <<if $forest_nest.eggs gte 1>> <<link [[Bury one|Forest Nest Bury]]>><<trauma -3>><<transform fox 1>><<set $plants.bird_egg.amount -= 1>><</link>><<ltrauma>><<note "- Egg" "red">> <br> <</if>> <<link [[Leave|Forest]]>><<endevent>><<set $eventskip to 1>><<unset $forest_nest>><</link>> <br> <<elseif $NPCList[0].traits.includes("friendly")>> but <<bhe>> <span class="red">merely tilts <<bhis>> head at you.</span> Unwavering, <<bhe>> approaches you and sniffs you. <<if $monster is 1>> <<bHe>> giggles before <span class="green">petting your head.</span> "Were you trying to scare me? You're too cute for that." <br><br> <<bHe>> returns to the egg pile and sits. <<if $forest_nest.eggs lte 0>> "They're all broken. No saving any for later. Wanna share?" <<bHe>> pats the ground next to <<bhim>>. <<else>> "There's still some left. Wanna share?" <<bHe>> pops one into <<bhis>> mouth and pats the ground next to <<bhim>>. <</if>> <<else>> After a moment, <span class="green">gives your leg a lick.</span> <<bHis>> tongue tickles. <br><br> <<bHe>> returns to the egg pile and sits, putting <<bhis>> face into it and <<if $forest_nest.eggs lte 0>> peeking back up with some yolk on <<bhis>> snout. <<else>> peeking back up with an egg in <<bhis>> mouth. <</if>> <<bHe>> seems to want to share with you. <</if>> <br><br> <<if $fox gte 6>> <<link [[Eat one|Forest Nest Share]]>><<transform fox 1>><<stress -4>><</link>><<lstress>> <br> <<else>> <<link [[Eat one|Forest Nest Share]]>><<transform fox 1>><<stress 2>><</link>><<gstress>> <br> <</if>> <<link [[Leave|Forest]]>><<endevent>><<unset $forest_nest>><<set $eventskip to 1>><</link>> <br> <</if>> <</if>> <</if>><<effects>> You gently touch the <<beasttypes>> tail. It is incredibly soft. You start to pet it. <<stress -8>><<llstress>> <br><br> <<if $tendingSuccess>> <<if $NPCList[0].traits.includes("territorial")>> <<set $phase to 2>> <<bHe>> freezes up for a moment, <span class="green">before helplessly falling over, belly up</span>. <<if $monster is 1>> "Wh-what are you doing? Stop that this instant! Ahh—" <<bHe>> seems annoyed, but <<bhis>> signs of arousal betray <<bhim>> as you move on to rubbing <<bhis>> belly. <<else>> <<bHe>> tries to growl, but it quickly changes to a low purr as you rub <<bhis>> belly. <</if>> <br><br> <<bHis>> leg kicks in contentment. <<if $monster is 1>> "Damn you... don't... you... dare... stop..." <</if>> <<elseif $NPCList[0].traits.includes("friendly")>> <span class="green"><<bHe>> immediately rolls over</span>, exposing <<bhis>> belly to you. <<if $monster is 1>> <<bHe>> pauses for a moment, staring at you. "S-sorry. Couldn't help it. Please keep going." <<else>> <<bHe>> lets out a low squeak, as if asking you to continue. <</if>> You give <<bhis>> belly a rub, and <<bhis>> tail wags in happiness. <<elseif $NPCList[0].traits.includes("clumsy")>> <<set $phase to 2>> <<bHe>> flinches, turning towards you in a defensive posture. <<bHe>> attempts to pounce, <span class="green">but ends up stumbling and rolling over instead</span>. <br><br> <<if $monster is 1>> "N-no! Don't!" <<else>> <<bHe>> yips in despair. <</if>> You take the opportunity to rub <<bhis>> belly. <<bHe>> immediately relaxes, and <<bhis>> leg starts to kick. <<else>> <<bHe>> flinches, <span class="green">but quickly relaxes at your touch</span>. <<if $monster is 1>> <<bHe>> blushes. "What are you doing?" <<else>> <<bHe>> turns to you with curiosity in <<bhis>> eyes. <</if>> You give <<bhis>> tail more attention, gently petting it and smoothing it out. <<bHe>> rolls over onto <<bhis>> belly. <<if $monster is 1>> "H-hey, quit it!" <<bHe>> tries to look upset, but <<bhes>> smiling. <<else>> Your attention is making <<bhim>> purr. <</if>> <</if>> <br><br> <<if $phase isnot 1 and $phase2 isnot 1>> You move to take the eggs from the hole while <<bhes>> distracted. <<tending_bird_eggs $forest_nest.eggs>><<set $phase2 to 1>> <br><br> <</if>> <<if $settings.bestialityEnabled or $monster is 1>> <<if hasSexStat("deviancy", 2)>> <<link [[Adopt mating posture|Forest Fox Nest Mate]]>><<set $phase to 2>><</link>><<deviant2>> <br> <<else>> <<insufficientStat "deviancy" "to take things further">> <br> <</if>> <</if>> <<link [[Let <<bhim>> go|Forest Fox Let Go]]>><</link>> <br> <<else>> <<if $NPCList[0].traits.includes("territorial")>> <<bHe>> freezes up for a moment, <span class="red">before turning around and growling</span>. <<bHe>> immediately pounces on you, pinning you down. <br><br> <<if $monster is 1 or $settings.bestialityEnabled>> <<if $monster is 1>> <<bHe>> smugly straddles you, arms crossed over <<bhis>> bare <<print $NPCList[0].breastsdesc>>. <<if $fox gte 6>> "This is my territory, kit. I will not share." <<bHe>> lowers <<bhimself>> down until your faces are nearly touching. "Of course... if you were my mate, things would be different." <<elseif $cat gte 6>> "Haughty little stray. I should teach you a lesson." <<elseif $wolfgirl gte 6>> "This is my territory, insolent pup. Let this be a warning to your pack." <<else>> "This is my territory. But... you're cute." <</if>> <<bHe>> stretches low, <<bhis>> posterior in the air. "I'm feeling generous." <br><br> <</if>> <<link [[Next|Forest Fox Nest Rape]]>><<set $molestationstart to 1>><<set $position to "missionary">><<set $NPCList[0].stance to "top">><</link>> <br> <<else>> You push yourself out from under <<bhim>> and flee.<<beastescape>> <br><br> <<link [[Next|Forest]]>><<endevent>><<unset $forest_nest>><</link>> <br> <</if>> <<elseif $NPCList[0].traits.includes("friendly")>> <<bHe>> immediately tumbles over, <span class="red">taking a defensive stance</span>. <<if $monster is 1>> <<bHe>> pauses for a moment, staring at you. "You scared me. Go away please. Any other fox would not be so kind." <<else>> <<bHe>> lets out a growl, although it's not very intimidating. <</if>> <<bHe>> continues kicking dirt over the bird eggs, but doesn't break eye contact with you. <br><br> You decide not to push your luck. <br><br> <<link [[Next|Forest]]>><<endevent>><<set $eventskip to 1>><<unset $forest_nest>><</link>> <br> <<elseif $NPCList[0].traits.includes("clumsy")>> <<bHe>> flinches, <span class="red">turning towards you in a defensive posture</span>. <br><br> <<if $monster is 1>> "Don't touch!" <<bHe>> barks threateningly. <<else>> <<bHe>> barks threateningly. <</if>> <<if $phase2 is 1>> However, <<bhe>> seems to, once again, forget you're there. <<bHe>> continues to lick <<bhis>> yolk-stained tail. <</if>> <br><br> You decide not to push your luck. <br><br> <<link [[Next|Forest]]>><<endevent>><<set $eventskip to 1>><<unset $forest_nest>><</link>> <br> <<else>> <span class="red">The <<beasttypes>> tail stands on end and puffs out</span>. <<bHe>> takes a defensive stance and growls at you. <br><br> <<if $monster is 1>> "These are mine. This is your only warning. Back off." <<else>> <<bHe>> slowly approaches, letting out threatening barks. <</if>> You slowly back away. It's clear <<bhe>> just wants to be left alone, and you oblige, returning to the trail. <br><br> <<link [[Next|Forest]]>><<endevent>><<set $eventskip to 1>><<unset $forest_nest>><</link>> <br> <</if>> <</if>><<effects>> You gently touch the <<beasttypes>> <<if $monster is 1>>hair<<else>>fur<</if>>. It is incredibly soft. You start to pet <<bhim>>. <<stress -8>><<llstress>> <br><br> <<if $tendingSuccess>> <<if $NPCList[0].traits.includes("territorial")>> <<set $phase to 2>> <<bHe>> freezes up, but after a moment, <span class="green"><<bhis>> leg starts to kick</span>. <<if $monster is 1>> <<bHe>> starts to whine. "Th...this is so humiliating... please..." <<bHis>> tail is wagging rapidly. You start to pet that instead. <<bHe>> moans in pleasure, unable to stifle it any longer. <<else>> <<bHe>> starts to whine, but <<bhis>> tail starts to wag, too. <</if>> <<if $monster is 1>> <br><br> "Damn you... don't... you... dare... stop..." <</if>> <<elseif $NPCList[0].traits.includes("friendly")>> <<set $phase to 2>> <span class="green"><<bHe>> immediately starts to purr</span>. <<if $monster is 1>> <<bHe>> pauses for a moment, staring at you. "You're nice. I like you." <<else>> <<bHe>> lets out a low squeak, as if asking you to continue. <</if>> You give <<bhis>> belly a rub, and <<bhis>> tail wags in happiness. <<elseif $NPCList[0].traits.includes("clumsy")>> <<set $phase to 2>> <<bHe>> flinches, <span class="green">but also starts to purr</span>. <br><br> <<if $monster is 1>> "Did you... really just want to pet me?" <<else>> <<bHe>> yips in contentment. <</if>> You take the opportunity to rub <<bhis>> belly. <<bHe>> immediately relaxes, and <<bhis>> leg starts to kick. <<else>> <<bHe>> flinches, <span class="green">but quickly relaxes at your touch</span>. <<if $monster is 1>> <<bHe>> blushes. "Is this all you wanted? I... don't mind..." <<else>> <<bHe>> looks at you with curiosity in <<bhis>> eyes. <</if>> You give <<bhis>> tail more attention, gently petting it and smoothing it out. <<if $monster is 1>> "H-hey, quit it!" <<bHe>> tries to look upset, but <<bhes>> smiling. <<else>> Your attention is making <<bhim>> purr. <</if>> <</if>> <br><br> <<if $settings.bestialityEnabled or $monster is 1>> <<if hasSexStat("deviancy", 2)>> <<link [[Adopt mating posture|Forest Fox Nest Mate]]>><<set $phase to 3>><</link>><<deviant2>> <br> <<else>> <<insufficientStat "deviancy" "to take things further">> <br> <</if>> <</if>> <<link [[Let <<bhim>> go|Forest Fox Let Go]]>><</link>> <br> <<else>> <<if $NPCList[0].traits.includes("territorial")>> <<bHe>> freezes up for a moment, <span class="red">before biting your arm</span>. You pull away. <<stress 8>><<pain 8>><<ggstress>><<ggpain>> <br><br> <<bHe>> frees <<bhimself>> from your grasp as you recoil, and <<bhe>> darts away. <<if $monster is 1>> "I was expecting more. You're so boring," <<bhe>> mocks as <<bhe>> runs. <</if>> <<else>> <span class="red">The <<beasttypes>> tail puffs out</span>. <<bHe>> growls. <<stress 4>><<gstress>> <br><br> You release <<bhim>>, not wanting to be bitten. <<bHe>> wastes no time rolling over and darting away. <</if>> <br><br> <<link [[Next|Forest]]>><<endevent>><<set $eventskip to 1>><<unset $forest_nest>><</link>> <br> <</if>><<effects>> You crawl up to the <<beasttype>>, and give <<bhim>> a gentle lick. <<bHe>> pauses to stare at you. <br><br> You run your tongue up <<bhis>> arm, savouring the taste of <<bhis>> skin. <<bHe>> lets out a soft moan once you reach <<bhis>> neck. You don't stop. You gently grab <<bhis>> cheeks, and lick <<bhis>> face and the very edge of <<bhis>> lips. <<deviancy1>> By the time you're done, <<bhes>> already panting. <br><br> <<if hasSexStat("deviancy", 2)>> <<link [[Adopt mating posture|Forest Fox Nest Mate]]>><<set $phase to 1>><</link>><<deviant2>> <br> <<else>> <<insufficientStat "deviancy" "to take it further">> You leave <<bhim>> panting in the clearing. <br> <</if>> <<link [[Let <<bhim>> go|Forest Fox Let Go]]>><</link>> <br><<effects>> You let the <<beasttype>> go. <<if $NPCList[0].traits.includes("territorial")>> <<if $phase is 2>> <<if $monster is 1>> <<bHe>> stays completely still. <<bHes>> staring at you... longingly? <br><br> Before you can react, <<bhe>> lunges at you. You both tumble, until <<bhes>> on top of you, straddling you. "You think you can just... work me up like that..." <<bHe>> pushes <<bhis>> hands down into your chest, and starts to grind against you. <br><br> "...and not follow through?" <br><br> <<link [[Next|Forest Fox Nest Rape]]>><<set $molestationstart to 1>><<set $position to "missionary">><<set $NPCList[0].stance to "top">><</link>> <br> <<elseif $settings.bestialityEnabled>> <span class="red"><<bHe>> takes the opportunity to lunge back at you</span>. It seems you've worked <<bhim>> up. <<bHe>> topples you, pinning you down. <br><br> <<link [[Next|Forest Fox Nest Rape]]>><<set $molestationstart to 1>><<set $position to "missionary">><<set $NPCList[0].stance to "top">><</link>> <br> <<else>> <span class="red"><<bHe>> takes the opportunity to lunge back at you</span>. It seems you've worked <<bhim>> up. You narrowly avoid <<bhis>> snapping jaws and make your escape.<<beastescape>> <br><br> <<link [[Next|Forest]]>><<endevent>><<set $eventskip to 1>><<unset $forest_nest>><</link>> <br> <</if>> <<else>> <<if $monster is 1>> <<bHe>> stares at you in confusion for a moment, before hastily fleeing from you. "I was hoping for more," <<bhe>> yells at you. <<else>> <<bHe>> flees from you without looking back. <</if>> <br><br> <<link [[Next|Forest]]>><<endevent>><<set $eventskip to 1>><<unset $forest_nest>><</link>> <br> <</if>> <<elseif $NPCList[0].traits.includes("friendly")>> <<bHis>> ears wiggle happily. <<if $monster is 1>> "Thanks for<<if $phase is 2>> playing with me and<</if>> petting me," <<bhe>> says. "I wish all people were like you." <</if>> <<bHe>> nuzzles against you, before scampering off into the forest. <<stress -3>><<lstress>> <br><br> <<link [[Next|Forest]]>><<endevent>><<set $eventskip to 1>><<unset $forest_nest>><</link>> <br> <<elseif $NPCList[0].traits.includes("clumsy")>> <<bHe>> clumsily gets to <<bhis>> feet. <br><br> <<if $monster is 1>> "You're... <<if $phase is 2>>nice<<else>>strange<</if>>." <</if>> <<if $phase is 2>> <<bHe>> nuzzles against you, before scampering off into the forest. <<stress -3>><<lstress>> <<else>> <<bHe>> scampers off into the forest. <</if>> <br><br> <<link [[Next|Forest]]>><<endevent>><<set $eventskip to 1>><<unset $forest_nest>><</link>> <br> <<else>> <<bHe>> hesitantly gets to <<bhis>> feet, before quickly fleeing from you. <<bHe>> stops some distance away, looking back at you, before continuing to run. <br><br> <<link [[Next|Forest]]>><<endevent>><<set $eventskip to 1>><<unset $forest_nest>><</link>> <br> <</if>><<effects>> You put your head right next to the <<beasttype>>. <br><br> <<if $fox gte 6>> You let out a high-pitched scream, and <<bhe>> jumps and lets a similar one out in response. You both stare each other down, screaming, before <<bhe>> scrambles away. <<elseif $harpy gte 6>> You let out a piercing screech, and <<bhe>> jumps and screams in response. You both stare each other down, screaming, before <<bhe>> scrambles away. <<elseif $wolfgirl gte 6>> "Woof." <<bHe>> jumps, tail puffed out, and lets out a high-pitched scream before scrambling away. <<elseif $cat gte 6>> "Meow." <<bHe>> jumps, tail puffed out, and lets out a high-pitched scream before scrambling away. <<elseif $cow gte 6>> "Moo." <<bHe>> jumps, tail puffed out, and lets out a high-pitched scream before scrambling away. <<else>> "Caught you." <<bHe>> jumps, tail puffed out, and lets out a high-pitched scream before scrambling away. <</if>> <<if $NPCList[0].traits.includes("clumsy")>> <<bHe>> stumbles, crushing some of the eggs underfoot.<<set $forest_nest.eggs -= 2>> <</if>> <br><br> <<if $NPCList[0].traits.includesAny("territorial", "clever")>> <<bHe>> stops a distance away from you, before turning around and sitting down. <<bHe>> looks profoundly annoyed. <<if $foresthunt gte 1>> <<set $foresthunt += 3>> <<bHe>> puffs <<bhis>> chest out, before letting an even louder scream into the air. <br><br> <span class="red">You feel whatever's hunting you draw closer.</span> <<if $monster is 1>> <<bHe>> smugly smiles at you before darting away. <<else>> <<bHe>> yips at you a few times before darting away. <</if>> <<else>> <<saveNPC 0 "fox_grudge">> <<set $fox_grudge to 1>> <<if $monster is 1>> "Dick," <<bhe>> barks. <span class="red">"I'll remember this."</span> <<else>> <span class="red">And angry</span>. <</if>> <</if>> <br><br> You decide not to linger. <<tending_bird_eggs $forest_nest.eggs>> <br><br> <<link [[Next|Forest]]>><<endevent>><<set $eventskip to 1>><<unset $forest_nest>><</link>> <br> <<else>> <<bHe>> stops to look back at you once, before continuing to run away. <<tending_bird_eggs $forest_nest.eggs>> <br><br> <<if $forest_nest.eggs gte 1>> <<link [[Bury one|Forest Nest Bury]]>><<trauma -3>><<transform fox 1>><<set $plants.bird_egg.amount -= 1>><</link>><<ltrauma>><<note "- Egg" "red">> <br> <</if>> <<link [[Leave|Forest]]>><<endevent>><<set $eventskip to 1>><<unset $forest_nest>><</link>> <br> <</if>><<location "forest">><<effects>> <<if $phase is 1>> You rub up against the <<beasttype>>. <<bHe>> couldn't get out from under you if <<bhe>> wanted to, but you don't think <<bhe>> wants to anymore. <<elseif $phase is 2>> You start to pet lower. The <<beasttype>> leans into you. <<elseif $phase is 3>> You start to pet lower, leaning into the <<beasttype>>. <<bHe>> suddenly seems very eager. <<else>> You show your appreciation, getting on all fours. <</if>> <<if $monster is 1>> <<if $NPCList[0].traits.includes("territorial")>> <<if $phase is 3>> <<bHe>> clings to you, already panting. You must have really worked <<bhim>> up. <<else>> Despite <<bhis>> previous comments, it seems like <<bhe>> wanted this too. <</if>> <<else>> "I don't have a mate, so... this should be okay..." <</if>> <<else>> Most foxes mate for life. <<bHe>> must not have one. <</if>> <<deviancy2>> <<link [[Next|Forest Fox Nest Sex]]>><<set $sexstart to 1>><</link>> <br><<if $sexstart is 1>> <<set $sexstart to 0>> <<consensual>> <<set $consensual to 1>> <<neutral 1>> <<beastCombatInit>> <<set $NPCList[0].stance to "top">> <</if>> <<effects>> <<effectsman>> <<alarmstate '<span class="red"><<bHe>> screams right back in your face, drowning out your own screams.</span>'>> <<beast $enemyno>> <br><br> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Forest Fox Nest Sex Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Forest Fox Nest Sex]]>><</link>></span><<nexttext>> <</if>><<location "forest">><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<beastejaculation>> <<if $NPCList[0].traits.includes("territorial")>> <<if $monster is 1>> <<if $phase is 3>> <<bHe>> pants, clinging to you. <<bHe>> lets out a long breath, and nuzzles into you, eyes closed. After a moment, <<bhe>> seems to realise what <<bhes>> doing, and quickly gets to <<bhis>> feet. "Th...thanks." <<else>> <<bHe>> gets to <<bhis>> feet, and looks at you smugly. "Consider that a gift." <</if>> <<else>> <<bHe>> huffs in triumph. <</if>> <<elseif $NPCList[0].traits.includes("friendly")>> <<if $monster is 1>> <<bHe>> nuzzles you. "That was fun!" <<else>> <<bHe>> nuzzles your face. <</if>> <<stress -3>><<lstress>><br> <<else>> <<if $monster is 1>> <<bHe>> gets to <<bhis>> feet. "Thank you. Maybe I can find a real partner, now." <<else>> <<bHe>> licks your face. <</if>> <</if>> <<bHe>> slinks away between the trees. <br><br> <<tearful>> you rise to your feet. <<if $phase2 isnot 1>><<tending_bird_eggs $forest_nest.eggs>><</if>> <<clotheson>> <<endcombat>> <<link [[Next|Forest]]>><<unset $forest_nest>><<set $eventskip to 1>><</link>> <br> <<elseif $enemyhealth lte 0>> <<if $NPCList[0].traits.includes("territorial")>> <<if $monster is 1>> <<if $phase is 3>> <<bHe>> stumbles away from you, trembling. "You... you'll regret this." <<else>> <<bHe>> recoils, baring <<bhis>> teeth at you. "You'll regret this." <</if>> <<else>> <<bHe>> rolls away from you, and huffs in frustration. <</if>> <<elseif $NPCList[0].traits.includes("friendly")>> <<if $monster is 1>> "Ow! Ow! Stop that!" <<else>> <<bHe>> rolls away from you. <</if>> <<else>> <<if $monster is 1>> <<bHe>> recoils from you. "Maybe I'm not good enough for a mate after all..." <<else>> <<bHe>> rolls away from you. <</if>> <</if>> The <<beasttype>> whines and flees between the trees. <br><br> <<tearful>> you gather yourself. <<if $phase2 isnot 1>><<tending_bird_eggs $forest_nest.eggs>><</if>> <<clotheson>> <<endcombat>> <<link [[Next|Forest]]>><<unset $forest_nest>><<set $eventskip to 1>><</link>> <br> <<else>> The <<beasttype>> turns away from you and slinks between the trees. <<if $phase2 isnot 1>><<tending_bird_eggs $forest_nest.eggs>><</if>> <<clotheson>> <<endcombat>> <<link [[Next|Forest]]>><<unset $forest_nest>><<set $eventskip to 1>><</link>> <br> <</if>><<if $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<beastCombatInit>> <<set $NPCList[0].stance to "top">><<set $enemytrust -= 40>> <</if>> <<effects>> <<effectsman>> <<alarmstate '<span class="red"><<bHe>> screams right back in your face, drowning out your own screams.</span>'>> <<beast $enemyno>> <br><br> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Forest Fox Nest Rape Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Forest Fox Nest Rape]]>><</link>></span><<nexttext>> <</if>><<location "forest">><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<beastejaculation>> <<if $NPCList[0].traits.includes("territorial")>> <<if $monster is 1>> <<if $phase is 3>> <<bHe>> pants, clinging to you. <<bHe>> lets out a long breath, and nuzzles into you, eyes closed. After a moment, <<bhe>> seems to realise what <<bhes>> doing, and quickly gets to <<bhis>> feet. "T-take that as a lesson!" <<else>> <<bHe>> gets to <<bhis>> feet, and looks at you smugly. "Remember your place." <</if>> <<else>> <<bHe>> huffs in triumph. <</if>> <<else>> <<if $monster is 1>> <<bHe>> gets to <<bhis>> feet. "Thank you. Maybe I can find a real partner, now." <<else>> <<bHe>> licks your face. <</if>> <</if>> <<bHe>> slinks away between the trees, looking satisfied. <br><br> <<tearful>> you rise to your feet. <<if $phase2 isnot 1>><<tending_bird_eggs $forest_nest.eggs>><</if>> <<clotheson>> <<endcombat>> <<link [[Next|Forest]]>><<unset $forest_nest>><<set $eventskip to 1>><</link>> <br> <<elseif $enemyhealth lte 0>> <<if $NPCList[0].traits.includes("territorial")>> <<if $monster is 1>> <<if $phase is 3>> <<bHe>> stumbles away from you, trembling. "You... you'll regret this, <<foxnickname>>." <<else>> <<bHe>> recoils, baring <<bhis>> teeth at you. "Not bad, <<foxnickname>>." <</if>> <<else>> <<bHe>> rolls away from you, and huffs in frustration. <</if>> <<elseif $NPCList[0].traits.includes("friendly")>> <<if $monster is 1>> "Ow! Ow! Stop that!" <<else>> <<bHe>> rolls away from you. <</if>> <<else>> <<if $monster is 1>> <<bHe>> recoils from you. "No eggs. Have to find another nest." <<else>> <<bHe>> rolls away from you. <</if>> <</if>> The <<beasttype>> flees between the trees. <br><br> <<tearful>> you gather yourself. <<if $phase2 isnot 1>><<tending_bird_eggs $forest_nest.eggs>><</if>> <<clotheson>> <<endcombat>> <<link [[Next|Forest]]>><<unset $forest_nest>><<set $eventskip to 1>><</link>> <br> <<else>> The <<beasttype>> turns away from you and slinks between the trees. <<if $phase2 isnot 1>><<tending_bird_eggs $forest_nest.eggs>><</if>> <<clotheson>> <<endcombat>> <<link [[Next|Forest]]>><<unset $forest_nest>><<set $eventskip to 1>><</link>> <br> <</if>><<effects>> <<if $forest_nest.fox gte 2 and $NPCList[0].traits.includes("friendly")>> You start to approach the nest, <<if $monster is 1>> but you're suddenly stopped as something grabs your arm. You jump in surprise, but are pulled back before you can retaliate. <br><br> You end up on the ground, back in the underbrush. A naked <<beasttype>> sits over of you, panting. <br><br> "What are you doing?! That's a <span class="red">snake nest</span>! Looks similar to a bird nest, used as bait!" <<bHe>> starts to fuss over you, seemingly unbothered by <<bhis>> own nudity. "Reckless <<foxnickname>>..." <br><br> You let <<bhim>> help you to your feet. "Be more careful.<<if $settings.voreEnabled>> The snakes here will gobble you up whole.<</if>>" <br><br> You ask <<bhim>> why <<bhe>> helped you. <<bHe>> blinks at you. "Why wouldn't I?" <br><br> <<if hasSexStat("deviancy", 2)>> <<link [[Show your appreciation|Forest Fox Nest Sex]]>><<set $sexstart to 1>><<set $phase2 to 1>><</link>><<deviant2>> <br> <<else>> <<insufficientStat "deviancy" "to show your appreciation">> <br> <</if>> <<link [[Thank and leave|Forest]]>><<endevent>><<unset $forest_nest>><<set $eventskip to 1>><<stress -3>><</link>><<lstress>> <br> <<else>> but you suddenly feel a tug on your <<if $worn.lower.type.includes("naked")>>leg<<else>>$worn.lower.name<</if>>. You look down to see a <<beasttype>> grabbing you with <<bhis>> mouth, trying to pull you back. <br><br> You suspect it wants the eggs, but you see a primal desperation in <<bhis>> eyes. <<bHe>> lets out a few muffled barks. You let <<bhim>> pull you away. <br><br> Once you're back in the underbrush, you hear a faint hiss. Looking back to the nest, you see a <span class="red">massive snake</span> investigating the area. That wasn't a bird's nest at all, and this <<beasttype>> just saved you. <<bHe>> yips at you once before turning to leave. <br><br> <<if $settings.bestialityEnabled and hasSexStat("deviancy", 2)>> <<link [[Show your appreciation|Forest Fox Nest Sex]]>><<set $sexstart to 1>><<set $phase2 to 1>><</link>><<deviant2>> <br> <<else>> <<insufficientStat "deviancy" "to show your appreciation">> <br> <</if>> <<link [[Leave|Forest]]>><<endevent>><<unset $forest_nest>><<set $eventskip to 1>><<stress -3>><</link>><<lstress>> <br> <</if>> <<else>> You approach the nest, and look around for eggs. The ones you find look nothing like the bird eggs you're used to. <br><br> You hear a slither and a hiss. Your hair stands on end. <span class="red">This isn't a bird's nest</span>. <br><br> You feel a breath on your legs. <br><br> <<if $settings.voreEnabled>> <<link [[Next|Forest Nest Snake Vore 2]]>><<endevent>><<unset $forest_nest>><<set $molestationstart to 1>><</link>> <<else>> You get to your feet and run as fast as you can.<<beastescape>> <br><br> <<link [[Next|Forest]]>><<endevent>><<unset $forest_nest>><<set $eventskip to 1>><</link>> <br> <</if>> <br> <</if>><<effects>> You lie down in the nest, completely still. You don't have to wait long. You hear the slithering first, and soon feel breath on your legs. <<deviancy4>> <<link [[Next|Forest Nest Snake Vore 2]]>><<endevent>><<unset $forest_nest>><<set $molestationstart to 2>><</link>> <br><<effects>> You decide it's too dangerous to intervene. <br><br> <<if $settings.voreEnabled>> <<if $monster is 1>> <<if $NPCList[0].traits.includes("territorial")>> The <<beasttype>> looks up in terror. <<bHe>> tries to hold the snake's jaws open, but it's no use. You watch as the snake lunges once more, and the <<beasttype>> is swallowed whole. <<else>> The <<beasttype>> looks up in terror. <<bHe>> covers <<bhis>> face with <<bhis>> arms and cowers. You watch as the snake lunges once more, and the <<beasttype>> is swallowed whole. <</if>> <br><br> ...and then immediately and violently regurgitated. The <<beasttype>> lays stunned for a moment, before standing and limping off into the forest, looking traumatised. The snake returns to its nest. <<else>> The <<beasttype>> flinches and curls up on <<bhimself>>. You watch as the snake lunges once more, and the <<beasttype>> is swallowed whole. <br><br> ...and then immediately and violently regurgitated. The <<beasttype>> lays stunned for a moment, before limping off into the forest. The snake returns to its nest. <</if>> <<else>> The <<beasttype>> flinches and tries to curl up defensively. The snake looks like it's about to lunge one last time. <br><br> Instead, however, it slowly curls up around <<bhim>>. <<bHe>> doesn't dare move, but after some time, it almost seems like the snake... falls sleep? <br><br> The <<beasttype>> very slowly and carefully pulls <<bhimself>> out from the snake's grasp, and slinks away into the trees, looking quite confused all the while. <</if>> <br><br> It's a good time to leave. <br><br> <<link [[Next|Forest]]>><<endevent>><<unset $forest_nest>><<set $eventskip to 1>><</link>> <br><<effects>> You waste no time. You dash out from the brush. The snake turns to you, the much more appealing target, and lunges. <br><br> <<if $physiqueSuccess>> <span class="green">You catch its jaws with your hands, keeping it from closing them around you.</span> You manage to take a step forward, pushing it back as it starts to fold back on itself. <br><br> You feel it trying to get away from you. You move with it, tossing it far off course. It quickly recognises that you're more trouble than you're worth, and retreats back into the underbrush. <br><br> <<if $monster is 1 or $settings.bestialityEnabled>> <<if $monster is 1>> You feel something grab onto your arm. It's the <<beasttype>>, and <<bhe>> nuzzles against you, blushing. <<if $NPCList[0].traits.includes("territorial")>> "Th...thanks. You, uhm..." <<bHe>> shifts in place for a moment. "Alright, I'll cut to the chase. <span class="lewd">That was hot. Please fuck me senseless. Right now.</span>" <<else>> "You saved me!" <<bHe>> pulls you closer. "You're brave. And nice. You'd make a good mate." <</if>> <<else>> You feel something brush up against you and nuzzle you. It's the <<beasttype>>. It seems to be very thankful. So thankful, that <<bhe>> takes on a mating posture. <</if>> <br><br> <<link [[Accept|Forest Nest Snake Fox Sex]]>><<unset $forest_nest>><<set $sexstart to 1>><</link>><<deviant1>> <br> <<link [[Refuse|Forest]]>><<endevent>><<unset $forest_nest>><<set $eventskip to 1>><</link>> <br> <<else>> There's no sign of the <<beasttype>>. <<bHe>> wisely fled during the commotion. <br><br> <<link [[Next|Forest]]>><<endevent>><<unset $forest_nest>><<set $eventskip to 1>><</link>> <br> <</if>> <<else>> You try to hold its jaws open, <span class="red">but you're not strong enough.</span> They close violently, and you're just quick enough to avoid being swallowed, instead being knocked to the ground. <<gpain>><<pain 4>> <br><br> <<if $NPCList[0].traits.includes("territorial")>> It slowly slithers up to you, hissing. It moves to lunge at you, but stops just short. You look behind it, to see the <<beasttype>> <<if $monster is 1>> holding the snake's tail with both arms and pulling with all <<bhis>> might. <<else>> biting down on the snake's tail and pulling with all <<bhis>> might. <</if>> <<bHe>> tosses the snake to the side with one final, mighty pull. It retreats back into the underbrush. <br><br> <<if $monster is 1>> The <<beasttype>> stares you down, arms crossed. "That was stupid. That thing could have swallowed you whole." <<bHis>> stance softens. "But... thanks." <<bHe>> <<else>> The <<beasttype>> <</if>> gives you an appreciative glance, before leaving the way <<bhe>> came. <br><br> <<link [[Next|Forest]]>><<endevent>><<unset $forest_nest>><<set $eventskip to 1>><</link>> <br> <<else>> You see the <<beasttype>> darting off into the forest. You bought <<bhim>> enough time to escape, at least. <<if $settings.voreEnabled>> The snake seems irritated at losing its meal and slithers up to you, mouth agape once more. <br><br> <<link [[Next|Forest Nest Snake Vore 2]]>><<endevent>><<unset $forest_nest>><<set $molestationstart to 1>><</link>> <br> <<else>> You get to your feet and run as fast as you can.<<beastescape>> <br><br> <<link [[Next|Forest]]>><<endevent>><<unset $forest_nest>><<set $eventskip to 1>><</link>> <br> <</if>> <</if>> <</if>><<location "forest">><<effects>> <<if $molestationstart is 1>> <<set $molestationstart to 0>> <<set $combat to 1>> <<molested>> <<controlloss>> <<set $enemytype to "vore">> <<set $vorestage to 1>> <<set $vorecreature to "snake">> <<set $vorestrength to 1>><<set $position to "doggy">> <<resetLastOptions>> <<getCombatDefaultsType>> <<elseif $molestationstart is 2>> <<set $molestationstart to 0>> <<set $combat to 1>> <<consensual>> <<set $consensual to 1>> <<set $enemytype to "vore">> <<set $vorestage to 1>> <<set $vorecreature to "snake">> <<set $vorestrength to 1>><<set $position to "doggy">> <<resetLastOptions>> <<getCombatDefaultsType>> <</if>> <<voreeffects>> <<vore>> <<voreactions>> <<if $vorestage gte 7>> <span id="next"><<link [[Next|Forest Nest Snake Vore Finish]]>><</link>></span><<nexttext>> <<elseif $vorestage lte 0>> <span id="next"><<link [[Next|Forest Nest Snake Vore Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Forest Nest Snake Vore 2]]>><</link>></span><<nexttext>> <</if>><<effects>> <<if $vorestage gte 7>> <<tearful>> you struggle as the snake starts to move. It journeys for several minutes until with a great heave, the snake pushes you up and through its gullet once more, expelling you from its body. <br><br> <<endcombat>> The snake slithers away. It took you deeper into the forest. <br><br> <<clotheson>> <<link [[Next|Forest]]>><<pass 10>><<set $eventskip to 1>><<set $forest += 20>><<set $forest = Math.clamp($forest, 21, 100)>><</link>> <br> <<else>> <<tearful>> you escape from the snake's maw. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <br> <</if>><<if $sexstart is 1>> <<set $sexstart to 0>> <<consensual>> <<set $consensual to 1>> <<neutral 1>> <<beastCombatInit>> <<set $NPCList[0].stance to "top">> <</if>> <<effects>> <<effectsman>> <<alarmstate '<span class="red"><<bHe>> screams right back in your face, drowning out your own screams.</span>'>> <<beast $enemyno>> <br><br> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Forest Nest Snake Fox Sex Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Forest Nest Snake Fox Sex]]>><</link>></span><<nexttext>> <</if>><<location "forest">><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<beastejaculation>> <<if $NPCList[0].traits.includes("territorial")>> <<if $monster is 1>> <<bHe>> pants, clinging to you. <<bHe>> lets out a long breath, and nuzzles into you, eyes closed. After a moment, <<bhe>> seems to realise what <<bhes>> doing, and quickly gets to <<bhis>> feet. "Th...thanks." <<else>> <<bHe>> huffs in triumph. <</if>> <<elseif $NPCList[0].traits.includes("friendly")>> <<if $monster is 1>> <<bHe>> nuzzles you. "That was fun!" <<else>> <<bHe>> nuzzles your face. <</if>> <<stress -3>><<lstress>><br> <<else>> <<if $monster is 1>> <<bHe>> gets to <<bhis>> feet. "Thank you. Maybe I can find a real partner, now." <<else>> <<bHe>> licks your face. <</if>> <</if>> <<bHe>> slinks away between the trees. <br><br> <<tearful>> you rise to your feet. <<clotheson>> <<endcombat>> <<link [[Next|Forest]]>><<unset $forest_nest>><<set $eventskip to 1>><</link>> <br> <<elseif $enemyhealth lte 0>> <<if $NPCList[0].traits.includes("territorial")>> <<if $monster is 1>> <<bHe>> recoils, baring <<bhis>> teeth at you. "You'll regret this." <<else>> <<bHe>> rolls away from you, and huffs in frustration. <</if>> <<elseif $NPCList[0].traits.includes("friendly")>> <<if $monster is 1>> "Ow! Ow! Stop that!" <<else>> <<bHe>> rolls away from you. <</if>> <<else>> <<if $monster is 1>> <<bHe>> recoils from you. "Maybe I'm not good enough for a mate after all..." <<else>> <<bHe>> rolls away from you. <</if>> <</if>> The <<beasttype>> whines and flees between the trees. <br><br> <<tearful>> you gather yourself. <<clotheson>> <<endcombat>> <<link [[Next|Forest]]>><<unset $forest_nest>><<set $eventskip to 1>><</link>> <br> <<else>> The <<beasttype>> turns away from you and slinks between the trees. <<clotheson>> <<endcombat>> <<link [[Next|Forest]]>><<unset $forest_nest>><<set $eventskip to 1>><</link>> <br> <</if>><<if $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<beastCombatInit>> <<beastTrainGenerate>><<set $enemytrust -= 40>> <</if>> <<effects>> <<effectsman>> <<alarmstate '<span class="red"><<bHe>> screams right back in your face, drowning out your own screams.</span>'>> <<beast $enemyno>> <br><br> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Forest Fox Revenge Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Forest Fox Revenge]]>><</link>></span><<nexttext>> <</if>><<effects>> <<if $enemyhealth lte 0>> <<beastwound>> <<if $combatTrain.length gt 0>> The <<beasttype>> recoils in pain and fear, but the other is eager for a go. <<combatTrainAdvance>> <br><br> <<link [[Next|Forest Fox Revenge]]>><</link>> <<else>> The <<beasttype>> recoils in pain and fear. <<combatTrainAdvance>> <br><br> <<link [[Next|Forest Fox Revenge Finish]]>><<set $finish to 1>><</link>> <</if>> <<elseif $enemyarousal gte $enemyarousalmax>> <<beastejaculation>> <<if $combatTrain.length gt 0>> Satisfied, the <<beasttype>> moves and another <<print $combatTrain.beastTypes[1]>> takes its turn. <<combatTrainAdvance>> <br><br> <<link [[Next|Forest Fox Revenge]]>><</link>> <<else>> Satisfied, the <<beasttype>> moves away from you. <<combatTrainAdvance>> <br><br> <<link [[Next|Forest Fox Revenge Finish]]>><<set $finish to 1>><</link>> <</if>> <<elseif $finish is 1>> <<if $enemywounded gte 1 and $enemyejaculated is 0>> The <<beastsplural>> flee between the trees in defeat. They won't be bothering you again. <<elseif $enemywounded is 0 and $enemyejaculated gte 1>> You're left lying on the grass. <<if $monster is 1>> The lead <<beasttype>> cradles up to you, and whispers into your ear. "Don't forget this." <<bHe>> holds you for some time, before seemingly growing bored and leaving with <<bhis>> companions. <</if>> <<else>> The <<beastsplural>> surround you, panting. <<if $monster is 1>> The lead one steps forward. "You put up a good fight. Consider us... even," <<bhe>> says between breaths. <</if>> They leave one by one, feeling that you're more trouble than you're worth. <</if>> <br><br> <<tearful>> you gather yourself. <<clotheson>> <<endcombat>> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <br> <</if>><<generatey1>><<person1>> <<if $cool gte 240>> As you walk by, the other teens notice you and excitedly emerge to chat. After a few moments, they go back to their place off the path and let you go about your day. <<stress -5>><<trauma -2>> <br><br> <<link [[Next|Forest]]>><<set $eventskip to 1>><<endevent>><</link>> <<else>> You try to ignore them as you walk along the trail. The leader, a <<person>>, moves to block you. "What's the hurry? You should hang around a while!" <<he>> says through a menacing grin. <br><br> <<if $worn.under_lower.integrity gte 1>> Several students move behind you and force you to the ground while the other teens grab your arms. You expect them to try stripping you, or worse, but instead you feel two pairs of hands <<if setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1>>reach up your skirt <<else>>dive down your waistband<</if>> and clamp something metallic to the sides of your $worn.under_lower.name before letting go of you. <br><br> You stand back up, but before you have time to react, some of the students begin pulling on ropes that loop over branches above you and connect to your $worn.under_lower.name. <<if $worn.under_lower.plural isnot 1>>It starts<<else>>They start<</if>> to tear slightly as your classmates hoist you a metre off the ground, pulling the fabric tightly between your ass cheeks and against your <<genitals>>. It hurts but is slightly arousing as well. <<ggstress>><<stress 12>><<garousal>><<arousal 100>><<gpain>><<pain 10>> <br><br> <<if $worn.lower.name isnot 'naked'>> The teens gather in a circle around you to admire their handiwork. "I think something is missing," the <<person>> says and approaches you. <br><br> <<if $submissive lte 850>> <<link [[Kick|Forest Bully Kick]]>><</link>><<physiquedifficulty 1 16650>> <br> <<elseif $submissive gte 1150>> <<link [[Beg|Forest Bully Beg]]>><</link>><<englishdifficulty 1 1055>> <br> <</if>> <<link [[Stay still|Forest Bully Still]]>><</link>> <<else>> <<link [[Next|Forest Bully Skip Lower]]>><</link>> <</if>> <<else>> Several students move behind you and force you to the ground while the other teens grab your arms. You expect them to try stripping you, or worse, but instead you feel two pairs of hands <<if setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1>>reach up your skirt <<else>>dive down your waistband<</if>> before pausing. "Uh, <<pshe>> isn't wearing underwear," one of them states. <br><br> "Seriously?" the <<person>> asks in disbelief, then commands, "Fine, let <<phim>> go. We'll grab the next loser who walks by." <br><br> Turning to you, <<he>> says, "You got lucky this time. Now get out of here before I change my mind." <br><br> You waste no time continuing on your way. <br><br> <<link [[Next|Forest]]>><<set $eventskip to 1>><<endevent>><</link>> <</if>> <</if>><<He>> steps back and admire <<his>> handiwork triumphantly, while the other students giggle and take pictures.<<fameexhibitionism 50>> <br><br> "Have fun up there, loser!" the <<person>> shouts as the group walks away. <<ggstress>><<stress 25>> <<forestBullyLeaves>><<if $physiqueSuccess>> You wait for the opportune moment and deliver a solid kick to the bully approaching you. <<He>> lands flat on <<his>> ass, much to the delight of the crowd. "Shut the fuck up!" <<he>> growls. <<He>> gets up and motions the group to leave. "Have fun up there, loser!" <<else>> You wait for the opportune moment and kick out with all your strength. The <<person>> staggers back for a moment before scowling in rage. "Oh, that's how you want to play, <<bitch>>? You two, come here and hold <<phim>>. I'm going to have fun with you." <br><br> Held in place, you are powerless to resist as the <<person>> systematically tears and cuts off your clothing, leaving only the $worn.under_lower.name that suspend<<if $worn.under_lower.plural isnot 1>>s<</if>> you in the air. <<He>> steps back and admires <<his>> handiwork triumphantly, while the other students giggle and take pictures.<<fameexhibitionism 50 "pic">> <br><br> "Have fun up there, loser!" the <<person>> shouts as the group walks away. <<overheadruined>> <<overupperruined>> <<overlowerruined>> <<upperruined>> <<lowerruined>> <<underupperruined>> <<headruined>> <<faceruined>> <<legsruined>> <<feetruined>> <<handsruined>><<handheldruined>><<ggstress>><<stress 50>> <</if>> <<forestBullyLeaves>>"P-p-please stop. Haven't you done enough?" you beg. <br><br> <<if $englishSuccess>> <<He>> continues towards you before being interrupted by another student, "C'mon, I think we had our fun, right?" Some of the more empathetic students nod in agreement and start walking away. <br><br> "Have fun up there, loser!" the <<person>> grunts, visibly frustrated as <<he>> jogs to catch up with the others. <<else>> <<He>> continues towards you with renewed dominance. "Aw, are we making your day hard? Are you not having fun up there?" <<he>> mocks. "Shut up, you dumb slut, I'm going to have my fun!" <br><br> The <<person>> then begins to systematically tear and cut off your clothing, leaving only the $worn.under_lower.name that suspend<<if $worn.under_lower.plural isnot 1>>s<</if>> you in the air. <<He>> steps back and admires <<his>> handiwork triumphantly, while the other students giggle and take pictures.<<fameexhibitionism 50>> <br><br> "Have fun up there, loser!" the <<person>> shouts as they walk away. <<overheadruined>> <<overupperruined>> <<overlowerruined>> <<upperruined>> <<lowerruined>> <<underupperruined>> <<headruined>> <<faceruined>> <<legsruined>> <<feetruined>> <<handsruined>> <<handheldruined>><<ggstress>><<stress 50>> <</if>> <<forestBullyLeaves>>You remain still as the <<person>> removes your $worn.lower.name, further exposing you. <<He>> steps back and admires <<his>> handiwork triumphantly, while the other students giggle and take pictures.<<fameexhibitionism 50>> <br><br> "Have fun up there, loser!" the <<person>> shouts as they walk away. <<lowerruined>> <<ggstress>><<stress 25>> <<forestBullyLeaves>>You grip two of the ropes the best you can and start pulling yourself up towards the branches above. There is an instant feeling of relief as the pressure of your body weight is removed from your crotch. <br><br> <<if $athleticsSuccess>> Your arm muscles are sore by the time you pull yourself up to the canopy, but your grip holds. With your bodyweight now being supported by the branches, you are able to free yourself from the trap your classmates put you in. You waste no time climbing back down to the trail. <br><br> <<link [[Next|Forest]]>><<set $eventskip to 1>><<endevent>><</link>> <<elseif $worn.under_lower.integrity gte 21>> You start climbing, but only make it about halfway up before your arms start to shake and your grip fails. You fall a short distance before being caught by your $worn.under_lower.name. The material from your $worn.under_lower.name pulls even tighter <<print ($player.ballsExist ? " against your testes" : "in between your labia")>> than before, causing a new wave of agony. <<gpain>><<ggstress>><<pain 25>><<stress 50>> <br><br> You hear threads snap and pop as the jerking motion comes to a stop, leaving your underwear worse for wear. <<set $worn.under_lower.integrity -= 20>> <br><br> Still stuck in the air, you will need to either try again or call out for help. <br><br> <<link [[Climb|Forest Bully Climb]]>><</link>> <br> <<link [[Call for help|Forest Bully Help]]>><</link>> <<else>> You start climbing, but only make it about halfway up before your arms start to shake and your grip fails. You fall a short distance before being caught by your $worn.under_lower.name. The material from your $worn.under_lower.name pulls even tighter <<print ($player.ballsExist ? " against your testes" : "in between your labia")>> than before, causing a new wave of agony. <<gpain>><<ggstress>><<pain 25>><<stress 50>> <br><br> You hear threads snap and pop before finally yielding and sending you falling the remaining distance to the trail below. After taking a moment, you stand up and keep moving, leaving the tattered remains of your $worn.under_lower.name tied to the ropes behind. <<underlowerruined>> <br><br> <<link [[Next|Forest]]>><<set $eventskip to 1>><<endevent>><</link>> <</if>>You shout for help out the top of your lungs, hoping for the best. Besides some startled birds, the forest seems still.<br><br> <<rng>> <<if $rng lte 20>> <<generatey2>><<person2>> After a few minutes of waiting, you see one of the students from earlier quietly sneak back to you. <<person2>><<He>> moves over to where the ropes are secured and gently lowers you back to the ground before running back into the woods to catch up with <<person2>><<his>> friends. You breathe a sigh of relief when your feet finally reach the ground, taking the pressure off your crotch. <br><br> <<link [[Next|Forest]]>><<set $eventskip to 1>><<endevent>><</link>> <<elseif $rng lte 40>> <<generate2>><<person2>> After a few minutes of waiting, you see a <<person>> jogging up the path, attracted by the noise. Seeing your state, <<he>> quickly gets to work, freeing you from your predicament. You breathe a sigh of relief when your feet finally reach the ground, taking the pressure off your crotch. <<He>> takes a moment to make sure you are ok, before moving along. <br><br> <<link [[Next|Forest]]>><<set $eventskip to 1>><<endevent>><</link>> <<elseif $rng lte 60>> <<generate2>><<person2>> After a few minutes of waiting, you see a <<person>> jogging up the path, attracted by the noise. Seeing your state, an evil smile spreads across <<his>> face. <<He>> grabs onto your ankles and pulls down with all <<his>> strength. The extra force pulls your $worn.under_lower.name painfully <<print ($player.ballsExist ? " against your testes" : "between your labia")>> until your underwear finally tears off your body. <<gpain>><<ggstress>><<pain 25>><<stress 50>><<set $worn.under_lower.integrity to 0>> <br><br> You fall to the ground, clutching your crotch in agony, as <<he>> walks away laughing. <br><br> <<link [[Next|Forest]]>><<set $eventskip to 1>><<endevent>><</link>> <<elseif $rng lte 80>> <<beastNEWinit 1 wolf>> After a few minutes of waiting, you see a lone <<beasttype>> emerge from the trees, attracted by the noise. <<bHe>> snarls before biting onto your ankle! The extra weight pulls your $worn.under_lower.name painfully <<print ($player.ballsExist ? " against your testes" : "between your labia")>> until your underwear finally tears off your body. <<gpain>><<ggstress>><<pain 25>><<stress 50>><<set $worn.under_lower.integrity to 0>>. <br><br> <<if $monster is 1 or $settings.bestialityEnabled>> You fall to the ground, clutching your crotch in agony. The <<beasttype>>, seeing your vulnerability, leaps on top of you! <br><br> <<link [[Next|Forest Wolf]]>><<set $molestationstart to 1>><</link>> <br> <<else>> You fall to the ground, clutching your crotch in agony. You barely manage to stand as the wolf lunges at you and begins chasing you through the woods. You run until you can no longer hear it behind you. You're not sure if you outran it or it grew bored.<<beastescape>><<gtiredness>><<tiredness 4>><<gathletics>><<athletics 2>><<silently>><<physique 1>><</silently>> <br><br> <<link [[Next (0:20)|Forest]]>><<endevent>><<pass 20>><<set $eventskip to 1>><</link>> <br> <</if>> <<else>> You wait for a few minutes, but no one comes. You gently swing back and forth due to the breeze, which forces you to occasionally shift your weight, adding to your discomfort. <br><br> <<if $worn.under_lower.integrity gte 11>> The silence is only broken by the occasional tearing sounds coming from your $worn.under_lower.name, which <<underlowerplural>> starting to look worse for wear. <<set $worn.under_lower.integrity -= 10>> <br><br> Still stuck in the air, you will need to either try again or call out for help. <br><br> <<link [[Climb|Forest Bully Climb]]>><</link>> <br> <<link [[Call for help|Forest Bully Help]]>><</link>> <<else>> The silence is only broken by the occasional tearing sounds coming from your $worn.under_lower.name. Finally, the material gives way, dropping you to the ground! <br><br> After taking a moment, you stand up and keep moving, leaving the tattered remains of your $worn.under_lower.name tied to the ropes behind. <<set $worn.under_lower.integrity -= 10>> <br><br> <<link [[Next|Forest]]>><<set $eventskip to 1>><<endevent>><</link>> <</if>> <</if>><<if $phase is 0>> /* Help Eden pull pants down */ <<set $edenFluidsCheck to "Eden">> <<if $NPCList[0].penis isnot "none">> Eden releases <<his>> <<print $NPCList[0].penisdesc>> from <<his>> torn pants. It's already hard. <br><br> "You know what I want from you," <<he>> mutters as <<he>> cradles your head. <br><br> You take <<his>> penis into your mouth, licking and sucking while the <<nnpc_title "Eden">> grunts in approval.<<if $player.virginity.oral is true>><<takeVirginity "Eden" "oral">><</if>> <br><br> <<He>> gets bored after a while and grabs you by the back of the head. It gets harder to breathe as <<he>> uses your throat to get off.<<stress 6>><<gstress>> <br><br> After a while Eden finishes, filling your mouth with <<his>> semen until it spills down your face.<<bodyliquid "mouth" "semen">><<bodyliquid "face" "semen">> <<else>> Eden pulls <<his>> pants down as to <<his>> ankles, revealing <<his>> wet pussy. <br><br> "I need this," <<he>> says as <<he>> cradles your head. <br><br> You strain your neck to lick at <<his>> pussy, tasting the wetness as you do. Eden sighs in approval. <br><br> You begin to suckle <<his>> clit, but Eden seems to get impatient and presses your face closer. It's hard to breathe with <<him>> smothering you like this.<<stress 6>><<gstress>> <br><br> After a while, Eden finishes. <<His>> juices cover your mouth as <<he>> pulls away.<<bodyliquid "mouth" "goo">> <</if>> You're dizzy now from the blood rushing to your head and the lack of air. "Good <<girl>>." <br><br> Eden takes a moment to fix <<himself>> up before returning to you. This time, <<he>> lets you down from the snare. <<else>> /* Push Eden away */ "I don't want to," you say as you push at Eden's thighs. <br><br> <<if C.npc.Eden.love gte 150>> <<He>> considers your words for a moment before fixing <<his>> pants. A scowl remains on <<his>> face. <br><br> "You better make it up to me later," Eden huffs as <<he>> undoes the bindings. <<He>> isn't gentle as <<he>> helps you down.<<pain 4>><<gpain>> <<else>> <<set $edenFluidsCheck to "Eden">> "Of course you do; you don't need to lie to me." Your protests don't seem to matter. The <<nnpc_title "Eden">> continues to reveal <<himself>> to you. <br><br> Eden tries to force <<= $NPCList[0].penis isnot "none" ? "<<his>> cock into your mouth" : " your mouth onto <<his>> pussy">> even as you try to writhe away. <<He>> gets fed up after one too many times and slaps your face.<<pain 4>><<gpain>> <br><br> You cry out before realising your mistake. Eden forces <<his>> <<= $NPCList[0].penis isnot "none" ? "cock" : "wet cunt">> into your mouth. <<He>> is not gentle, <<= $NPCList[0].penis isnot "none" ? "making" : "smushing your face as close as can be. It makes">> it hard to keep breathing.<<stress 6>><<gstress>><<if $NPCList[0].penis isnot "none" and $player.virginity.oral is true>><<takeVirginity "Eden" "oral">><</if>> <br><br> It takes a while for Eden to finish. By then, you've almost passed out. Luckily, <<he>> cums before you can. <<= $NPCList[0].penis isnot "none" ? "The semen drips out of the corners of your mouth and onto" : "<<His>> juices cover">> your face.<<if $NPCList[0].penis isnot "none">><<bodyliquid "mouth" "semen">><<bodyliquid "face" "semen">><<else>><<bodyliquid "mouth" "goo">><</if>> <br><br> Eden takes a moment to fix <<himself>> up. When <<he>> does return, <<he>> isn't gentle when <<he>> releases you.<<pain 2>><<gpain>> <</if>> <</if>> <br><br> <<forestCabinReturnLinks>><<effects>> You try to tear your gaze from the tree, but a visage catches your eye, formed by twisting branches. You don't want to move. <br><br> <<if $willpowerSuccess>> You shift your attention away from the face, onto the sky behind it, <span class="green">and regain control of your limbs.</span> You run. <br><br> You keep running until the sound of thrashing branches fades beneath the sound of your heartbeat. <br><br> <<link [[Next|Forest]]>><<endevent>><<set $eventskip to 1>><</link>> <br> <<else>> There are many faces, each wearing a different expression. You're still counting them when the branches unfurl, <span class="red">and snatch you from the ground.</span><<gwillpower>><<willpower 1>> <br><br> <<link [[Next|Forest Trunks Caught]]>><</link>> <br> <</if>><<effects>><<effects>><<effects>> <<if random(0, 4) lte $bodysize or $worn.feet.type.includes("rugged")>> You push on, and <span class="green">find solid ground again</span>. <br><br> <<link [[Next|Forest]]>><<endevent>><</link>> <<else>> You try to keep going, but your next step <span class="red">plunges you into a snowbank</span>. <br><br> <<link [[Call for help|Forest Snow Call]]>><</link>> <br> <<link [[Try to escape|Forest Snow Escape]]>><</link>> <</if>><<effects>> /* Todo: Gwylan */ <<if $forestHunter is "Eden" and $foresthunt gte 7>> <<npc Eden>><<person1>> <<if $edenCagedEscape>> Your scream echoes throughout the woods. Silence answers it. <br><br> Then, a single crunch of snow pierces the silence. Your hairs stand on end. You immediately scan your surroundings, trying to determine the source. Someone—or something—is here. <br><br> <span class="red">"Found you."</span> <br><br> You freeze in place, having recognised the voice. As you turn to face it, a figure emerges from the treeline. <span class="red">It's Eden.</span> <br><br> <<Hes>> on you in an instant, and pulls you out from the snow with a rough jerk. You try to scramble away, but <<he>> pins you against a tree, rage flashing in <<his>> eyes. <br><br> <<link [[Fight|Eden Caged Caught Resist]]>><<set $fightstart to 1>><</link>> <br> <<link [[Try to pull away|Eden Caged Caught Pull]]>><<def 1>><<npcincr Eden dom -1>><</link>><<physiquedifficulty 2000 18000>><<ldom>> <br> <<link [[Submit (0:30)|Eden Caged Caught]]>><<set $phase to 1>><<pass 30>><<npcincr Eden dom 1>><</link>><<gdom>> <br> <<elseif edenFreedomStatus() gte 2>> A figure soon emerges through the thick snowfall. Your relief turns into fear when the figure reveals itself to be Eden, <span class="red">stomping towards you with an infuriated expression</span>. <br><br> Before you can even react, <<hes>> already dragged you out of the snow, and onto the hard ground.<<gpain>><<pain 5>> <br><br> "Where the fuck have you been?" <<he>> snarls. "I was starting to think you had frozen to death out here!" <br><br> Before you can speak, <<he>> starts dragging you towards the direction of the cabin. "I'm taking you home. Things won't be pretty when we get there." <br><br> <<link [[Fight|Eden Caged Caught Resist]]>><<set $fightstart to 1>><</link>> <br> <<link [[Try to pull away|Eden Caged Caught Pull]]>><<def 1>><<npcincr Eden dom -1>><</link>><<physiquedifficulty 2000 18000>><<ldom>> <br> <<link [[Submit (0:30)|Eden Caged Caught]]>><<set $phase to 1>><<pass 30>><<sub 1>><<npcincr Eden dom 1>><</link>><<gdom>> <br> <<elseif edenFreedomStatus() is 1>> A figure soon emerges through the thick snowfall. It's Eden. <br><br> <<He>> doesn't say much at first, instead pulling you out of the snow with a firm grip. <br><br> <<He>> sets you down, and sighs deep. "You had me worried when you didn't return. Getting lost in the snow is not an excuse. You shouldn't be wandering off if you aren't sure you can find your way back." <br><br> <<He>> slings <<his>> rifle over <<his>> shoulder. "We'll be going home now." <br><br> <<if $edenfreedom is 1 or ($edenfreedom gte 2 and $settings.asphyxiaLevel gte 3)>> <<link [[Resist|Eden Recaptured Resist]]>><<set $fightstart to 1>><</link>> <<else>> <<link [[Resist|Eden Recaptured Resist Normal]]>><<set $molestationstart to 1>><</link>> <</if>> <br> <<link [[Go to the cabin (0:30)|Eden Recaptured]]>><<edenTrackers>><<pass 30>><</link>> <br> <<elseif edenFreedomStatus() is 0>> <<rng>><<set $foresthunt to 0>> A figure soon emerges through the thick snowfall. <span class="green">It's Eden.</span> <br><br> "You really ought to wear some suitable boots if you're going to wander around outside the cabin," <<he>> says. <br><br> <<He>> pulls you out of the snowbank with ease, giving you a <<if C.npc.Eden.lust gte 50>><span class="lewd">slap on the <<bottomsimple>> once you're free</span>.<<garousal>><<arousal 1200>><<else>>firm pat on the shoulder once you're free.<</if>> <br><br> <<forestCabinReturnLinks>> <<else>> The forest goes eerily quiet once your echoing calls fade away. You stand there listening for an answer, and are just about to call out a second time when you're startled by a voice. <br><br> "Well now," <<he>> says. "Looks like my prey caught itself in nature's own trap." <br><br> You turn and see a <<personsimple>> <span class="red">carrying a hunting rifle</span>. <<He>> walks right up to you, <<his>> towering stature parting the snow effortlessly. <br><br> "Don't resist," <<he>> says, lifting you from the snow before tossing you down onto your back. "There's no use trying." <br><br> <<link [[Next|Forest Hunter Molestation]]>><<set $molestationstart to 1>><</link>> <br> <</if>> <<elseif dangerEvent($forestmod, 9900, $allure, true)>> <<beastNEWinit 1 bear>><<person1>> You wait for an answer, but receive only a low growling noise that reverberates in your ears. It seems your calls for help attracted a <<beasttype>>.<<gstress>><<stress 8>> <br><br> <<bHe>> prowls the area near you, breathing loudly through <<bhis>> nose. <<if $monster is 1>>You hear <<bhim>> mutter between breaths. "Who," <<bhe>> growls. "Who was it that disturbed my slumber? I will find you..." <</if>>You try to make yourself small in the snow. <br><br> <<switch $bodysize + random(0, 1)>> <<case 0>> Thankfully <<bhe>> cannot see you with your head under the snow. You don't move as muscle as you wait for <<bhim>> to leave. <<pass 8>><<upperwet 150>><<underupperwet 100>><<lowerwet 150>><<underlowerwet 100>><<effectswater "snow">> <br><br> After what feels like hours you finally free yourself. <<if $worn.upper.type.includes("naked") and $worn.under_upper.type.includes("naked") or $worn.lower.type.includes("naked") and $worn.under_lower.type.includes("naked")>> Your whole body is red and sensitive from the cold. Still, you're <<elseif $upperwet + $lowerwet + $underupperwet + $underlowerwet gte 300>> You're freezing cold and soaked but <<elseif $upperwet + $lowerwet + $underupperwet + $underlowerwet gt 0>> Your clothes are damp, but you're <<else>> Thankfully your clothes kept you warm, and you're <</if>> filled with relief that the <<beasttype>> didn't find you.<<lstress>><<stress -8>> <br><br> <<link [[Next|Forest]]>><<endevent>><<set $eventskip to 1>><</link>> <<case 1>> The <<beasttype>> bounds closer to you. You hear <<bhim>> stop right by you in the snow, sniffing the ground.<<if $monster is 1>> "I know you're here... Show yourself."<</if>> You hold your breath. <<pass 3>><<upperwet 100>><<underupperwet 50>><<lowerwet 100>><<underlowerwet 50>><<effectswater "snow">> <br><br> After a frightful few moments, <<bhe>> turns <<bhis>> attention elsewhere, having not noticed you. Once you're sure the coast is clear you struggle out of the snow. You feel uneasy after having such a close encounter with the creature.<<gstress>><<stress 6>> <br><br> <<link [[Next|Forest]]>><<endevent>><<set $eventskip to 1>><</link>> <<default>> It doesn't take long for the <<beasttype>> to lock eyes with you. <<if $monster is 1>> <<bHe>> turns in your direction. "You. You make that awful noise. <<if $fox gte 6>>Foolish little fox,<<else>>Your kind always being so loud.<</if>> I will show you what happens now," <<bhe>> says before pouncing. <<else>> <<bHe>> snarls as <<bhe>> turns in your direction. Then, <<bhe>> pounces. <</if>> <br><br> <<if $monster is 1 or $settings.bestialityEnabled is true>> <<link [[Next|Forest Snow Bear Molestation]]>><<set $molestationstart to 1>><</link>> <<else>> You dodge out of the way just in time, and get a faceful of snow. You quickly recover and push yourself forward. The <<beasttype>> swipes at you with <<bhis>> claws as you make your escape, <<if $worn.over_upper.name is "naked" and $worn.upper.name is "naked" and $worn.under_upper.name is "naked">> leaving scratches along your back.<<gpain>><<pain 6>> <<else>> <<if $worn.upper.name is "naked" and $worn.over_upper.name is "naked">> <<set $worn.under_upper.integrity -= 50>> <<elseif !$worn.over_upper.name is "naked">> <<set $worn.over_upper.integrity -= 50>> <<else>> <<set $worn.upper.integrity -= 50>> <</if>> snagging on your <<exposedupper>>. <<integritycheck>><<exposure>> <</if>> <br><br> Free of the snow, you run as fast as your legs can take you, and only stop when you're certain you're not being chased. <br><br> <<link [[Next|Forest]]>><<endevent>><<set $eventskip to 1>><</link>> <</if>> <</switch>> <<elseif Weather.dayState is "night" or $rng lte 40>> Despite your insistent calls for help, no one comes. You have no choice but to attempt to escape by yourself.<<gstress>><<stress 4>> <br><br> <<link [[Try to escape|Forest Snow Escape]]>><</link>> <<else>> <<generate1>><<person1>> A <<person>> hears you and runs over. <br><br> "I knew I heard somebody," <<he>> says. "Let me help you out of there." <br><br> <<switch $bodysize>> <<case 0>> You're trapped deep in the snow, but thankfully the <<personsimple>> is able to dig you out. <<He>> lifts you out of the snow, <<his>> warm hands lingering a bit around your body before <<he>> puts you down.<<gstress>><<stress 6>> <br><br> "Someone as small as you has to be more careful," <<he>> says. "Who knows what would've happened if I wasn't here." <br><br> You thank <<him>> before you keep going. <br><br> <<link [[Next|Forest]]>><<endevent>><<set $eventskip to 1>><</link>> <<case 1>> The <<personsimple>> lifts you by your armpits out of the snow. <<His>> arms linger a bit around your body before <<he>> puts you down. <br><br> "You have to be more careful," <<he>> says. "The snow gets really deep around here." <br><br> You thank <<him>> before you keep going. <br><br> <<link [[Next|Forest]]>><<endevent>><<set $eventskip to 1>><</link>> <<case 2>> With a pull, you are able to get free. The <<personsimple>> keeps <<his>> hands around you, groping your <<chest>>. "Just taking my reward for helping you out."<<gstress>><<garousal>><<stress 6>><<arousal 800>> <br><br> <<if $arousal gte $arousalmax>> <<orgasm>> The <<person>> pauses, looking at you incredulously, before smiling wide. <br><br> "Wow, all that from just a light squeeze? You must be really pent up, <<girl>>," <<he>> says. "Let me take care of that." <<He>> moves <<his>> hands toward your <<crotch>>. <br><br> <<link [[Next|Forest Snow Call Molestation]]>><<set $molestationstart to 1>><</link>> <<else>> After <<he>> frees you, you hasten away. <br><br> <<link [[Next|Forest]]>><<endevent>><<set $eventskip to 1>><</link>> <</if>> <<default>> The stranger gropes you insistently. It seems <<he>> has no desire to help you free.<<ggstress>><<garousal>><<stress 10>><<arousal 1400>> <br><br> <<if $arousal gte $arousalmax>> <<orgasm>> The <<person>> pauses, looking at you incredulously, before smiling wide. <br><br> "I knew it," <<he>> whispers. "You really were just a big <<slut>> in need of relief, huh? I can give you so much more than that, you know." <<He>> moves <<his>> hands toward your <<crotch>>. <br><br> <<link [[Next|Forest Snow Call Molestation]]>><<set $molestationstart to 1>><</link>> <<elseif dangerEvent($forestmod, 9900, $allure)>> "A large <<girl>> like you getting stuck in a little pile of snow?" <<he>> says. "I know an invitation when I see one. Here, let me warm you up." <<He>> grabs you. <br><br> <<link [[Next|Forest Snow Call Molestation]]>><<set $molestationstart to 1>><</link>> <<else>> "A large <<girl>> like you getting stuck in a little pile of snow?" <<he>> says. "I bet you're just asking for it." <br><br> You're able to struggle free. <<tearful>> you hasten away from the snowbank and the pervert. <br><br> <<link [[Next|Forest]]>><<endevent>><<set $eventskip to 1>><</link>> <</if>> <</switch>> <</if>><<if $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<beastCombatInit>><<if $fox gte 6>><<set $enemytrust -= 50>><<else>><<set $enemytrust -= 25>><</if>><<set $enemyanger += 40>><<set $enemyhealthmax to 400>><<set $enemyhealth to 400>><<set $enemyarousalmax to 1000>> <<forestRescueSetup>> <</if>> <<effects>> <<effectsman>> <<forestRescueCheck "bear">> <br> <<beast $enemyno>> <br><br> <<upperwet 15>><<underupperwet 5>><<lowerwet 15>><<underlowerwet 5>><<effectswater "snow">> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Forest Snow Bear Molestation Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Forest Snow Bear Molestation]]>><</link>></span><<nexttext>> <</if>><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<beastejaculation>> <<bHe>> groggily wanders off, having had <<bhis>> enjoyment from your situation. At the very least in the struggle you managed to get free from the snow. <br><br> <<tearful>> you rise to your feet. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <<elseif $enemyhealth lte 0>> You push and manage to fight off the <<beasttype>>. Thankfully you managed to get out of the snow as well. You hurry off to safety before <<bhe>> can resume pursuit. <br><br> <<tearful>> you catch your breath against the nearby tree. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <<elseif $rescue is 1 and $alarm is 1>> <<forestRescue "snow">> <</if>><<if $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<maninit>> <<forestRescueSetup>> <</if>> <<effects>> <<effectsman>> <<forestRescueCheck>> <<man>> <<upperwet 15>><<underupperwet 5>><<lowerwet 15>><<underlowerwet 5>><<effectswater "snow">> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Forest Snow Call Molestation Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Forest Snow Call Molestation]]>><</link>></span><<nexttext>> <</if>><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<ejaculation>> "Phew, good show..." <<he>> pants, basking in the afterglow. <<He>> lies <<himself>> down on the ground, seemingly satisfied. <br><br> <<clotheson>> Thankfully, the struggle has caused most of the snow in the area to clear. <<tearful>> you take the opportunity to escape. <br><br> <<endcombat>> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <<elseif $enemyhealth lte 0>> You wrestle <<him>> down into a patch of deeper snow, then use <<him>> as a springboard to jump onto solid ground. <br><br> <<clotheson>> Once <<he>> recovers, <<he>> starts cursing at you about ingratitude, but you're already far gone by that point. <br><br> <<endcombat>> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <<elseif $rescue is 1>> <<forestRescue "snow">> <</if>><<effects>> <<switch Math.clamp($bodysize - random(0, 1, 2), 0, 3)>> <<case 0>> The snow reaches past your head, trapping you within. You struggle for freedom for what feels like hours. <<pass 8>><<upperwet 150>><<underupperwet 100>><<lowerwet 150>><<underlowerwet 100>><<effectswater "snow">> <<if $worn.upper.type.includes("naked") and $worn.under_upper.type.includes("naked") or $worn.lower.type.includes("naked") and $worn.under_lower.type.includes("naked")>> You're freezing cold when you finally break free. Your teeth chatter and you feel numb.<<gggstress>><<stress 48>> <<elseif $upperwet + $lowerwet + $underupperwet + $underlowerwet gte 300>> Your skin and clothing are both soaked and cool to the touch, but you finally free yourself. <<tearful>> you carry on.<<ggstress>><<stress 24>> <<elseif $upperwet + $lowerwet + $underupperwet + $underlowerwet gt 0>> <<tearful>> you finally free yourself. Thankfully your clothes stayed relatively dry through the ordeal.<<gstress>><<stress 12>> <<else>> <<tearful>> you finally free yourself. Thankfully your clothes stayed dry through the ordeal.<<gstress>><<stress 8>> <</if>> <br><br> <<link [[Next|Forest]]>><<endevent>><</link>> <<case 1>> The snow reaches your shoulders, hindering your movement. <<pass 3>><<upperwet 100>><<underupperwet 50>><<lowerwet 100>><<underlowerwet 50>><<effectswater "snow">> <<if $worn.upper.type.includes("naked") and $worn.under_upper.type.includes("naked") or $worn.lower.type.includes("naked") and $worn.under_lower.type.includes("naked")>> You're shivering cold when you manage to free yourself. You can't even feel your toes anymore.<<gggstress>><<stress 24>> <<elseif $upperwet + $lowerwet + $underupperwet + $underlowerwet gte 300>> It takes a few minutes and your clothes are soaked, but you are at least able to get free.<<ggstress>><<stress 12>> <<elseif $upperwet + $lowerwet + $underupperwet + $underlowerwet gt 0>> After a few minutes, you make it out relatively unscathed.<<gstress>><<stress 8>> <<else>> After a few minutes, you manage to wrestle your way out. Your clothes stayed dry, at least.<<gstress>><<stress 6>> <</if>> <br><br> <<link [[Next|Forest]]>><<endevent>><<set $eventskip to 1>><</link>> <<case 2>> The snow reaches your waist. <<pass 1>><<lowerwet 100>><<underlowerwet 50>><<effectswater "snow">> <<if $worn.lower.type.includes("naked") and $worn.under_lower.type.includes("naked")>> You successfully wade your way out, but your legs feel very sensitive afterwards.<<ggstress>><<stress 18>> <<elseif $lowerwet + $underlowerwet gt 0>> With some pulling you are able to slowly make it out safely. Your legs shake from the cold.<<gstress>><<stress 6>> <<else>> With some pulling you are able to get out safely. <</if>> <br><br> <<link [[Next|Forest]]>><<endevent>><<set $eventskip to 1>><</link>> <<default>> With a bit of moving, you easily step out of the snow and continue on your way.<<lstress>><<stress -4>> <br><br> <<link [[Next|Forest]]>><<endevent>><<set $eventskip to 1>><</link>> <</switch>><<run statusCheck("Gwylan")>> <<if $molestationstart is 1>> <<set $molestationstart to 0>> <<violence 1>> <<neutral 1>> <<maninit>> <<stalk_init>> <<gwylanStalkInit>> <<set $NPCList[0].distance to hasSharpSenses("instincts") ? 3 : 2>> <<if $gwylanSeen.includes("ritual_sex") and _gwylanStatus.includes("heat") and hasSharpSenses("instincts")>> <span class="lewd">Thanks to your <<= hasSharpSenses("instincts")>>, you can smell that your pursuer is in <<if C.npc.Gwylan.vagina isnot "none">>heat<<else>>rut<</if>>.</span> <span class="forest-green">It smells like Gwylan.</span> <<set $stalk_assess to true>> <br><br> <</if>> <</if>> <<effects>> <<effectsman>><<man>> <<stateman>> <<actionsman>> <<if $stalk_end>> <span id="next"><<link [[Next|Forest Gwylan Stalk Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Forest Gwylan Stalk]]>><</link>></span><<nexttext>> <</if>><<set $outside to 1>><<set $location to "forest">><<effects>><<run statusCheck("Gwylan")>> <<person1>> <<if $stalk_end is "confront">> <<set $daily.gwylan.noHunt to true>> <<set $gwylan.timer.lastSeen to Time.date.timeStamp>> <<if _gwylanStatus.includes("reunion")>> <<if $gwylanSeen.includes("partners")>> Gwylan pins your arms down to your sides. "<<pcPetname "Gwylan">>! Where have you been?! Do you have any idea how worried I was?" <<if _gwylanTF.revealed>><<His>> tail beats on the ground.<</if>> <<else>> Gwylan sits atop you, smiling. "I'm glad I found you. I haven't seen you in ages, I thought you were gone for good. What happened to you?" <</if>> <br><br> <<gwylanReunion>> <br><br> <<if _gwylanStatus.includes("badEndReady")>> <<set _noOptions to true>> <<He>> hugs you tightly, and doesn't let go. <br><br> "Please, just let me hold you for a little longer. I really though this would be the end. I thought I'd be alone again." <br><br> You feel the slightest pinprick in your arm. <<pain 2>><<gpain>> <br><br> <span class="purple">The forest starts to shift and distort.</span> Gwylan's face remains in perfect clarity at the center of your vision. <<He>> smiles sweetly, holding up a pink rose. Its stem drips red. <<hallucinogen 160>><<ggghallucinogens>> <br><br> Your body feels heavy, like it's sinking into the earth. Gwylan sinks with you. "Shhh... just... a little longer." <br><br> <<hypnosisText "<<His>> sweet voice silences your thoughts, and you're no longer where you once were.">> <<His>> voice fades away with the rest of the forest. <br><br> <<silently>><<clotheson>><<endcombat>><</silently>> <<if _gwylanStatus.includes("aurigaScarConfront")>> <<link [[Everything fades to black...|Forest Shop Nowhere Passout]]>><<set $forest to 0>><<pass 1 hour>><<endevent>><</link>> <<else>> <<link [[Everything fades to black...|Forest Shop Taken Start]]>><<set $forest to 0>><<pass 1 hour>><<endevent>><</link>> <</if>> <<else>> <<He>> helps you stand. "Sorry for the surprise attack, I couldn't help it. I got... excited, seeing you again. Would you like to walk back to the shop with me?" <br><br> <<link [[Yes|Forest Gwylan Walk Shop]]>><<set $phase to 1>><<npcincr Gwylan dom 1>><</link>><<handholdingvirginitywarning>><<gyearning>> <br> <<link [[No|Forest Gwylan Walk Shop]]>><<set $phase to 2>><</link>> <br> <</if>> <<elseif $gwylan.hunting is 3>> Gwylan huffs, crossing <<his>> arms as <<he>> sits on top of you. "You've kept me waiting a long time, <<pcpetname "Gwylan">>." <<He>> leans down, and licks your cheek. "The beasts can't love like you do. I need your touch for the ritual." <<if _gwylanTF.revealed>><<His>> tail beats on the ground.<</if>> <<npcincr Gwylan lust 1>><<glust>> <br><br> <<He>> caresses your cheek, and pulls you into a kiss. <<gwylanKiss>> <br><br> <<He>> withdraws, and tucks <<his>> head into the crook of your neck. "<<gwylanCommand "Come home with me.">>" <br><br> <<link [[Go with Gwylan|Forest Gwylan Stalk Submit]]>><<npcincr Gwylan dom 1>><</link>><<gyearning>> <br> <<link [[Refuse|Forest Gwylan Stalk Resist]]>><<npcincr Gwylan dom -5>><</link>><<gwylanWillpowerDifficulty>><<llyearning>> <br> <<elseif $gwylan.hunting is 2>> Gwylan lays atop you, kicking <<his>> legs behind <<him>>. <<if _gwylanTF.revealed>><<His>> tail sways in the air.<</if>> "Hello, <<pcpetname "Gwylan">>! We haven't done our ritual in ages. Why not come back to the shop with me?" <<if _gwylanStatus.includes("heat")>> <span class="pink"><<He>> paws at your chest, breathing heavily.</span> "Apologies, our little chase got me all worked up. I could really..." <<he>> leans close to your face, <<his>> face flushed and <<his>> eyes warm. "...<i>really</i> use your help." <<elseif $gwylanSeen.includes("partners")>> <<He>> presses a hand against your chest. "It's more fun together. You... well, you know how to make it more enjoyable." <<else>> <<He>> presses a hand against your chest. "It's more fun togeth—" <<he>> pauses. "It's easier on me, I mean." <</if>> <<npcincr Gwylan lust 1>><<glust>> <br><br> <<link [[Go with Gwylan|Forest Gwylan Stalk Submit]]>><<npcincr Gwylan dom 1>><</link>><<gyearning>> <br> <<link [[Refuse|Forest Gwylan Stalk Resist]]>><<npcincr Gwylan dom -3>><</link>><<gwylanWillpowerDifficulty>><<lyearning>> <br> <<elseif $gwylan.hunting is 1>> Your head spins from the impact. Gwylan holds your arms down. "Hold still, <<pcpetname "Gwylan">>, this will be quick. Shhh, just look here for a moment." <<He>> reaches into the neck of <<his>> shirt, and pulls a small pendant free. It's tipped with a reddish gem. <br><br> <<hypnosisText "It glows, and sways back and forth.">> <br> <<gwylanHypnosis "devotion" 3>> <br><br> <<He>> tucks the pendant away before pulling you to your feet and brushing you off. <br><br> "There we are. Now, <<gwylanCommand "I'll see you at the shop later,">> won't I? We still need to sate that curiosity of yours." <<He>> giggles, and walks back into the forest. <<clotheson>> <<endcombat>> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <br> <<elseif _gwylanStatus.includes("heat")>> <<outfitChecks>> Gwylan lays atop you, breathing heavily. <<His>> face is bright red. "<<pcPetname "Gwylan" "simple">>..." <br><br> <<if !_bottomless>> <<set _bottom.integrity -= 30>> <<He>> moves back, <span class="lewd">grabbing your _bottom.name in <<his>> mouth and pulling.</span> <<if _bottom.integrity lte 0>> <span class="red">You hear a rip.</span> <<He>> spits the ruined fabric aside. <<integritycheck>> <<else>> <<generalStrip _bottom.slot>> <</if>> <<else>> <span class="lewd"><<He>> looks down, eyeing your <<genitals>> with hunger.</span> <</if>> <br><br> "<<pcPetname "Gwylan">>, I need you." <<He>> trembles. "Just... just lay still. I'll be fast." <<He>> shakes <<his>> head. "No. No, don't lay still. I need you to want it, too." <br><br> <<link [[Go along with it|Forest Gwylan Stalk Sex]]>><<set $sexstart to 1>><<npcincr Gwylan dom 1>><</link>><<gyearning>> <br> <<link [[Resist|Forest Gwylan Stalk Sex]]>><<set $molestationstart to 1>><</link>> <br> <<elseif $exposed gte 2>> Gwylan lays atop you, kicking <<his>> legs behind <<him>>. "I just wanted to ask if you needed some clothes," <<he>> says with a smile. "You shouldn't be running around the forest so... openly. <<if $settings.bestialityEnabled and $rng gte 51>> You'll agitate the wolves. <<else>> You'll catch a cold. <</if>> I can walk you back to the shop, if you'd like." <br><br> <<link [[Go with Gwylan|Forest Gwylan Walk Shop]]>><<set $phase to 1>><<npcincr Gwylan dom 1>><</link>><<handholdingvirginitywarning>><<gyearning>> <br> <<link [[Stay here|Forest Gwylan Walk Shop]]>><<set $phase to 2>><</link>> <br> <<else>> <<if V.NPCList[0].legs is "run">> Gwylan lays atop you, kicking <<his>> legs behind <<him>>. <<if _gwylanTF.revealed>><<His>> tail sways in the air.<</if>> "Thanks for the chase, <<pcpetname "Gwylan">>. That was fun." <<if $gwylanSeen.includes("partners")>> <<He>> gives you a peck on the lips. <<gwylanKiss>> <<else>> <<npcincr Gwylan lust 1>><<glust>> <</if>> <br><br> <<He>> rolls off of you, and continues running into the forest. <<else>> Gwylan lays atop you, looking disappointed. "You could have at least tried to run, <<pcpetname "Gwylan" "simple">>. What if I was something more dangerous?" <<He>> giggles. "Lead me a merry chase next time, hmm?" <br><br> <<He>> rolls off of you, and disappears into the forest. <</if>> <<clotheson>> <<endcombat>> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <br> <</if>> <<elseif $stalk_end is "ambush">> <<set $daily.gwylan.noHunt to true>> <<set $gwylan.timer.lastSeen to Time.date.timeStamp>> You keep Gwylan pinned to the ground. <<npcincr Gwylan lust 5>><<gglust>> <br><br> <<if _gwylanStatus.includes("reunion")>> <<if $gwylanSeen.includes("partners")>> <<He>> grabs you and pulls you down into a kiss. <<gwylanKiss>> <br><br> "<<pcPetname "Gwylan">>! Where have you been?! Do you have any idea how worried I was?" <<if _gwylanTF.revealed>><<His>> tail beats on the ground.<</if>> <<else>> <<He>> smiles up at you, seeming to not mind. "I'm glad I found you. I haven't seen you in ages, I thought you were gone for good. What happened to you?" <</if>> <br><br> <<gwylanReunion>> <br><br> <<if _gwylanStatus.includes("badEndReady")>> <<set _noOptions to true>> <<He>> reaches up, hugging you tightly. <br><br> "Please, just let me hold you for a little while. I really though this would be the end. I thought I'd be alone again." <br><br> You feel the slightest pinprick in your arm. <<pain 2>><<gpain>> <br><br> <span class="purple">The forest starts to shift and distort.</span> Gwylan's face remains in perfect clarity at the center of your vision. <<He>> smiles sweetly, holding up a pink rose. Its stem drips red. <<hallucinogen 160>><<ggghallucinogens>> <br><br> Your body feels heavy, and you collapse on top of <<him>>. Gwylan holds you tighter. "Shhh... just... a little longer." <br><br> <<hypnosisText "<<His>> sweet voice silences your thoughts, and you're no longer where you once were.">> <<His>> voice fades away with the rest of the forest. <br><br> <<silently>><<clotheson>><<endcombat>><</silently>> <<if _gwylanStatus.includes("aurigaScarConfront")>> <<link [[Everything fades to black...|Forest Shop Nowhere Passout]]>><<pass 1 hour>><<endevent>><</link>> <<else>> <<link [[Everything fades to black...|Forest Shop Taken Start]]>><<pass 1 hour>><<endevent>><</link>> <</if>> <<else>> You help <<him>> stand. "Sorry for the surprise chase, I couldn't help it. I got... excited, seeing you again. Would you like to walk back to the shop with me?" <br><br> <<link [[Yes|Forest Gwylan Walk Shop]]>><<set $phase to 1>><<npcincr Gwylan dom 1>><</link>><<handholdingvirginitywarning>><<gyearning>> <br> <<link [[No|Forest Gwylan Walk Shop]]>><<set $phase to 2>><</link>> <br> <</if>> <<elseif $gwylan.hunting is 3>> <<He>> huffs as <<he>> lays beneath you. "You've kept me waiting a long time, <<pcpetname "Gwylan">>. The beasts can't love like you do. I need your touch for the ritual." <<if _gwylanTF.revealed>><<His>> tail beats on the ground.<</if>> <br><br> <<He>> caresses your cheek, and pulls you down into a kiss. <<gwylanKiss>> <br><br> <<He>> withdraws, and looks into your eyes with a mixture of pleading and scolding. "<<gwylanCommand "Come home with me.">>" <br><br> <<link [[Go with Gwylan|Forest Gwylan Stalk Submit]]>><<npcincr Gwylan dom 1>><</link>><<gyearning>> <br> <<link [[Refuse|Forest Gwylan Stalk Resist]]>><<npcincr Gwylan dom -5>><</link>><<gwylanWillpowerDifficulty>><<llyearning>> <br> <<elseif $gwylan.hunting is 2>> <<He>> smiles up at you, seeming to not mind this arrangement. <<if _gwylanTF.revealed>><<His>> tail sways behind <<him>>.<</if>> "Nice pounce, <<pcpetname "Gwylan">>." <<He>> giggles. "We haven't done our ritual in ages. Why not come back to the shop with me?" <<if _gwylanStatus.includes("heat")>> <span class="pink"><<He>> paws at your chest, breathing heavily.</span> "Apologies, our little chase got me all worked up. I could really..." <<he>> leans close to your face, <<his>> face flushed and <<his>> eyes warm. "...<i>really</i> use your help." <<elseif $gwylanSeen.includes("partners")>> <<He>> presses a hand against your chest. "It's more fun together. You... well, you know how to make it more enjoyable." <<else>> <<He>> presses a hand against your chest. "It's more fun togeth—" <<he>> pauses. "It's easier on me, I mean." <</if>> <br><br> <<link [[Go with Gwylan|Forest Gwylan Stalk Submit]]>><<npcincr Gwylan dom 1>><</link>><<gyearning>> <br> <<link [[Refuse|Forest Gwylan Stalk Resist]]>><<npcincr Gwylan dom -3>><</link>><<gwylanWillpowerDifficulty>><<lyearning>> <br> <<elseif $gwylan.hunting is 1>> Gwylan lets out a squeak of surprise as <<he>> lands flat on <<his>> back with you on top. <br><br> "Wow, you caught me." <<He>> sounds impressed. "Just one problem, dear." <<He>> reaches into the neck of <<his>> shirt. <span class="red">"I also caught you."</span> <br><br> <<He>> pulls out a pendant tipped with a reddish gem. <<hypnosisText "It glows.">> <br> <<gwylanHypnosis "devotion" 3>> <br><br> <<He>> tucks the pendant away and rolls out from under you as your vision clears. <br><br> "There we are. Now, <<gwylanCommand "I'll see you at the shop later,">> won't I? We still need to sate that curiosity of yours." <<He>> giggles, and walks back into the forest. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <br> <<elseif _gwylanStatus.includes("heat")>> Gwylan lays under you, breathing heavily. <<His>> face is bright red. "<<pcPetname "Gwylan" "simple">>... I need you." <<He>> trembles, letting <<his>> arms lay flat on the ground above <<him>> in submission. <<if $player.penisExist and C.npc.Gwylan.vagina isnot "none" and $settings.pregnancySpeechEnabled>> "Breed me." <<else>> "Mate with me." <</if>> <br><br> <<link [[Mount <<him>>|Forest Gwylan Stalk Sex]]>><<set $sexstart to 1>><<npcincr Gwylan dom 1>><</link>><<gyearning>> <br> <<link [[Hold <<him>> until <<he>> calms down|Forest Gwylan Stalk Sex No]]>><<def 1>><<npcincr Gwylan lust 1>><</link>><<glust>> <br> <<elseif $exposed gte 2>> Gwylan lays under you, not seeming to mind this arrangement. "I just wanted to ask if you needed some clothes," <<he>> says with a smile. "You shouldn't be running around the forest so... openly. <<if $settings.bestialityEnabled and $rng gte 51>> You'll agitate the wolves. <<else>> You'll catch a cold. <</if>> I can walk you back to the shop, if you'd like." <br><br> <<link [[Go with Gwylan|Forest Gwylan Walk Shop]]>><<set $phase to 1>><<npcincr Gwylan dom 1>><</link>><<handholdingvirginitywarning>><<gyearning>> <br> <<link [[Stay here|Forest Gwylan Walk Shop]]>><<set $phase to 2>><</link>> <br> <<else>> Gwylan lays under you, not seeming to mind this arrangement. "Thanks for the chase, <<pcpetname "Gwylan">>. That was fun." <<if $gwylanSeen.includes("partners")>> <<He>> gives you a peck on the lips. <<gwylanKiss>> <<else>> <<npcincr Gwylan lust 1>><<glust>> <</if>> <br><br> <<He>> rolls out from under you, and continues running into the forest. <<clotheson>> <<endcombat>> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <br> <</if>> <<elseif $stalk_end is "hide">> You emerge from your hiding place. <<if $stalk_assess>>Gwylan<<else>>Whoever was following you<</if>> is nowhere to be found. <<tearful>> you continue on your way. <br><br> <<endcombat>> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <br> <<elseif $stalk_end is "passed">> <<set $daily.gwylan.noHunt to true>> <<set $gwylan.timer.lastSeen to Time.date.timeStamp>> <<He>> vanishes behind the treeline, leaving you utterly confused. <<endcombat>> <br><br> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <br> <<else>> The forest is silent as you escape, but you keep running for some time. <<tearful>> you slow to a walk, and continue on your way. <br><br> <<endcombat>> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <br> <</if>><<effects>><<run statusCheck("Gwylan")>> <<set $gwylan.timer.lastSeen to Time.date.timeStamp>> <<if $phase is 1>> <<He>> smiles, and takes your hand. <<takeHandholdingVirginity "Gwylan" "consensual">> <br><br> The two of you walk back to the forest shop without incident. <<if $phase2 isnot "combatEnded">> <<clotheson>> <<endcombat>> <<else>> <br><br> <</if>> <<link [[Next|Forest Shop Entrance]]>><<set $enteringForestShopTogether to true>><<pass $forest>><<set $forest to 0>><<endevent>><</link>> <br> <<elseif $phase is 2>> <<He>> looks away. "Don't be a stranger, alright? Come see me soon." <br><br> <<He>> waves goodbye, and disappears back into the forest. <<if $phase2 isnot "combatEnded">> <<clotheson>> <<endcombat>> <<else>> <br><br> <</if>> <<link [[Next|Forest]]>><<endevent>><<set $eventskip to 1>><</link>> <br> <<elseif $phase is 3>> <<He>> smiles briefly, and clasps <<his>> hands in front of <<him>>. <br><br> The two of you walk back to the forest shop in silence. <<if $phase2 isnot "combatEnded">> <<clotheson>> <<endcombat>> <<else>> <br><br> <</if>> <<link [[Next|Forest Shop Entrance]]>><<pass $forest>><<set $forest to 0>><<endevent>><</link>> <br> <<else>> <<set _rubbedNecklace to true>> You clench your fists and continue walking, leaving Gwylan behind. <<if $phase2 isnot "combatEnded">> <<clotheson>> <<endcombat>> <<else>> <br><br> <</if>> <<link [[Next|Forest]]>><<endevent>><<set $eventskip to 1>><</link>> <br> <</if>><<effects>><<run statusCheck("Gwylan")>> <<if $stalk_end is "ambush">> You help Gwylan stand. <<else>> Gwylan helps you stand. <</if>> <<if $gwylan.hunting is 3 or _gwylanStatus.includes("heat")>> <<He>> grips your hand tightly, and smiles. "I can hardly wait. Let's go!" <<He>> runs with you back to the forest shop. <<else>> "<<pcPetname "Gwylan" "good">>," <<he>> says, petting you on the head. <<He>> takes your hand and walks with you back to the forest shop. <</if>> <<clotheson>> <<endcombat>> <<npc Gwylan>><<person1>> <<if playerChastity()>> <<link [[Tell Gwylan about your chastity device|Gwylan Chastity Removal]]>><<pass $forest>><<set $phase to "forced">><</link>> <<else>> <<link [[Next|Gwylan Ritual Start Garden]]>><<pass $forest>><<endevent>><</link>> <</if>> <br><<effects>><<run statusCheck("Gwylan")>> <<if $hypnosis_traits.devotion gte 5>> <<hypnosisText "You couldn't hope to resist such an offer to be close with <<him>> again. Your mind submits.">> <br><br> "Of course, I'll do anything for you," you say, the ghost of lust washing over you in anticipation. <<arousal 1500>><<ggarousal>> <br><br> <<if $stalk_end is "ambush">> You help Gwylan stand. <<else>> Gwylan helps you stand. <</if>> <<if $gwylan.hunting is 3 or _gwylanStatus.includes("heat")>> <<He>> grips your hand tightly and smiles. "I can hardly wait. Let's go!" <<He>> runs with you back to the forest shop. <<else>> "<<pcPetname "Gwylan" "good">>," <<he>> says, petting you on the head. <<He>> takes your hand and walks with you back to the forest shop. <</if>> <<clotheson>> <<endcombat>> <<npc Gwylan>><<person1>> <<if playerChastity()>> <<link [[Tell Gwylan about your chastity device|Gwylan Chastity Removal]]>><<pass $forest>><<set $phase to "forced">><</link>> <<else>> <<link [[Next|Gwylan Ritual Start Garden]]>><<pass $forest>><<endevent>><</link>> <</if>> <<elseif $willpowerSuccess>> <<if $hypnosis_traits.devotion>><span class="green">You push away the compulsion to submit.</span><</if>> "I'm sorry, but I can't." <br><br> <<if $gwylan.hunting is 3 or $gwylan.hunting is 2 and !_gwylanStatus.includes("heat")>> <<He>> frowns. "I'm afraid it wasn't a request, <<pcpetname "Gwylan" "simple">>. You've come too far to back out now." <<His>> hands caress your neck. <br><br> <<link [[Next|Forest Gwylan Stalk Sex]]>><<set $molestationstart to 1>><</link>> <br> <<elseif _gwylanStatus.includes("heat")>> <<His>> eyes dilate. "Then... then at least help me out of this, <<pcpetname "Gwylan" "simple">>. I need you." <<if $stalk_end is "ambush">> <<He>> trembles, displacing <<his>> clothes and giving you a seductive, pleading look. <<if $player.penisExist and C.npc.Gwylan.vagina isnot "none" and $settings.pregnancySpeechEnabled>> "Breed me. Please." <<else>> "Mate with me. Please." <</if>> <br><br> <<link [[Mount <<him>>|Forest Gwylan Stalk Sex]]>><<set $sexstart to 1>><<npcincr Gwylan dom 1>><</link>><<gyearning>> <br> <<link [[Hold <<him>> until <<he>> calms down|Forest Gwylan Stalk Sex No]]>><<def 1>><<npcincr Gwylan lust 1>><</link>><<glust>> <br> <<else>> <<outfitChecks>> <<He>> half-strips <<his>> clothes, <<if !_bottomless>> <<set _bottom.integrity -= 30>> before moving back and <span class="lewd">grabbing your _bottom.name in <<his>> mouth.</span> <<He>> pulls. <<if _bottom.integrity lte 0>> <span class="red">You hear a rip.</span> <<He>> spits the ruined fabric aside. <<integritycheck>> <<else>> <<generalStrip _bottom.slot>> <</if>> <<else>> <span class="lewd">looking down and eyeing your <<genitals>> with hunger.</span> <</if>> <br><br> "Just... just lay still. I'll be fast." <<He>> shakes <<his>> head. "No. No, don't lay still. I need you to want it, too." <br><br> <<link [[Go along with it|Forest Gwylan Stalk Sex]]>><<set $sexstart to 1>><<npcincr Gwylan dom 1>><</link>><<gyearning>> <br> <<link [[Get up|Forest Gwylan Stalk Sex]]>><<set $molestationstart to 1>><</link>> <br> <</if>> <<else>> <<He>> frowns. "Very well. I suppose the beasts will have to do." <<npcincr Gwylan dom -3>><<llyearning>> <br><br> <<if $stalk_end is "ambush">> You help Gwylan stand. <<else>> Gwylan helps you stand. <</if>> "Would you at least like to walk back to the shop with me?" <br><br> <<link [[Yes|Forest Gwylan Walk Shop]]>><<set $phase to 1>><<npcincr Gwylan dom 1>><</link>><<handholdingvirginitywarning>><<gyearning>> <br> <<link [[No|Forest Gwylan Walk Shop]]>><<set $phase to 2>><<npcincr Gwylan dom -1>><</link>><<lyearning>> <br> <</if>> <<else>> You open your mouth to protest, <<hypnosisText "but a heavy guilt washes over you">>. Words that aren't your own leave your lips. <br><br> <<if $gwylan.hunting is 3 or _gwylanStatus.includes("heat")>> <<He>> frowns. "Oh my, I hope you weren't thinking of saying no to me." It turns into a smile as <<he>> grips your hand tightly. <<else>> "<<pcPetname "Gwylan" "good">>," <<he>> says, petting you on the head. <</if>> <br><br> <<silently>><<clotheson>><</silently>> <<endcombat>> <<npc Gwylan>><<person1>> You suddenly feel like you're sinking. You look down, <span class="red">and see vines starting to constrict your arms and legs</span>. Gwylan grins. "Shhh. We'll be there in a heartbeat." <br><br> <<hypnosisText "<<He>> snaps <<his>> fingers, and you're no longer where you once were.">> <br><br> <<link [[Next|Gwylan Ritual Start Forced]]>><<pass $forest>><<set $forest to 0>><<endevent>><</link>> <br> <</if>><<effects>><<run statusCheck("Gwylan")>> You hold Gwylan down, completely submitting <<him>>. <<He>> struggles, but isn't strong enough to push you off. <br><br> <<He>> whines in frustration. After a few minutes, <span class="green"><<he>> goes limp in your grasp</span>. <<He>> looks up at you with pure desire, but the aggression is gone. <br><br> You cautiously release <<him>> and help <<him>> stand. <<He>> fixes <<his>> clothes. <<if _gwylanTF.known>><<His>> tail is puffed out.<</if>> "You're so cruel, <<pcpetname "Gwylan" "simple">>. Making me quench these urges with the beasts after making my body crave you." <br><br> <<He>> turns away, and vanishes back into the forest. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Forest]]>><<endevent>><<set $eventskip to 1>><</link>> <br><<run statusCheck("Gwylan")>> /* maninit skipped since this comes from an active stalking encounter */ <<if $sexstart is 1>> <<set $sexstart to 0>> <<consensual>> <<set $consensual to 1>> <<neutral 1>> <<set $enemytrust += 100>> <<set $enemyanger to 0>> <<set $NPCList[0].state to "attack">> <<if $NPCList[0].penis is "none">> <<if random(1, 100) gte 80>> <<set $position to "doggy">> <<else>> <<set $position to "missionary">> <</if>> <<else>> <<if random(1, 100) gte 50>> <<set $position to "doggy">> <<else>> <<set $position to "missionary">> <</if>> <</if>> <<set $feetuse to 0>><<set $feetaction to 0>> <<unset $stalk_end>><<unset $stalk>> <<gwylanCombatInit>> <<npc_attempt_sex>> <<if $stalk_end is "ambush">> You oblige, mounting Gwylan. <<else>> You stop resisting and let Gwylan work. <<He>> smiles. "Thank you. G-<<pcpetname "Gwylan" "good">>." <</if>> <br><br> <<elseif $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<molested>> <<set $enemytrust += 100>> <<set $enemyanger to 0>> <<set $NPCList[0].state to "attack">> <<if $NPCList[0].penis is "none">> <<if random(1, 100) gte 80>> <<set $position to "doggy">> <<else>> <<set $position to "missionary">> <</if>> <<else>> <<if random(1, 100) gte 50>> <<set $position to "doggy">> <<else>> <<set $position to "missionary">> <</if>> <</if>> <<set $feetuse to 0>><<set $feetaction to 0>> <<unset $stalk_end>><<unset $stalk>> <<gwylanCombatInit>> <<npc_attempt_sex>> <<if $hypnosis_traits.devotion gte 3>> <<set $timer to $hypnosis_traits.devotion or 2>><<set $trance to 1>> <<He>> gently grabs your cheeks, forcing you to keep eye contact with <<him>>. <span class="red">Your limbs go limp at your sides. You are entranced.</span> <br><br> "<<pcPetname "Gwylan" "naughty">>. Just let me take care of this." <<else>> <<He>> holds you down, still smiling. "Alright. A little struggle might make it even more exciting." <</if>> <<if $gwylan.hunting is 3 and $combat_player_orgasm_target gte 3>> <<set $combat_player_orgasm_target -= 2>> <</if>> <br><br> <</if>> <<if $timer lte 0 and $trance is 1>> <<set $trance to 0>> <span class="teal">You snap out of Gwylan's trance.</span> <</if>> <<effects>> <<effectsman>> <<man>> <<stateman>> <br><br> <<actionsman>> <<if $orgasmcurrent gte $combat_player_orgasm_target and $gwylan.hunting gte 2 and $consensual is 0>> <span id="next"><<link [[Next|Forest Gwylan Stalk Sex Finish]]>><</link>></span><<nexttext>> <<elseif _combatend or ($pain gte 100 and $willpowerpain is 0)>> <span id="next"><<link [[Next|Forest Gwylan Stalk Sex Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Forest Gwylan Stalk Sex]]>><</link>></span><<nexttext>> <</if>><<effects>><<run statusCheck("Gwylan")>> <<if $orgasmcurrent gte $combat_player_orgasm_target and $gwylan.hunting gte 2 and $consensual is 0>> As you shudder, Gwylan reaches for a vial on <<his>> belt. A fine blue powder is blown into your face, <span class="red">and you stiffen</span>. <<arousal -3000>><<lllarousal>><<hallucinogen 180>><<ggghallucinogens>> <br><br> The forest fades away. Only Gwylan remains in focus. <<if $gwylanSeen.includes("partners")>> <<He>> smiles, and wipes away the powder from your lips before leaning in for a kiss. <<gwylanKiss>> <br><br> <<He>> withdraws. <</if>> "Good. Now, let's go home. We have work to do." <br><br> <<silently>><<clotheson>><</silently>> <<endcombat>> <<npc Gwylan>><<person1>> You suddenly feel like you're sinking. You look down, <span class="red">and see vines starting to constrict your arms and legs</span>. Gwylan grins. "Shhh. We'll be there in a heartbeat." <br><br> <<hypnosisText "<<He>> snaps <<his>> fingers, and you're no longer where you once were.">> <br><br> <<link [[Next|Gwylan Ritual Start Forced]]>><<pass $forest>><<set $forest to 0>><<endevent>><<set $phase to "forced">><</link>> <br> <<elseif $enemyarousal gte $enemyarousalmax>> <<if $consensual is 0 and $gwylan.hunting gte 2>> <<set $forest += random(-3,3)*5>><<set $forest = Math.clamp($forest, 21, 100)>> <<ejaculation "short">> <<if $orgasmcurrent is 0 and $hypnosis_traits.devotion>> <<gwylanHypnosis "devotion" -2>> <</if>> <<npcincr Gwylan lust -25>><<llllust>> <br><br> With your own focus still sharp, you manage to push away from <<him>> while <<his>> guard is down. <<He>> looks surprised, but is too sluggish to give chase. You hear <<him>> faintly giggle behind you. "Impressive, <<pcpetname "Gwylan" "name">>. Until next time, then." <<stress 6>><<npcincr Gwylan dom 1>><<gstress>><<gyearning>> <br><br> You keep running. You lose your way, the trees themselves seeming to move to block your way, but you keep running. <br><br> Finally, you pause to catch your breath. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Forest]]>><<endevent>><<set $eventskip to 1>><</link>> <br> <<else>> <<ejaculation>> <<He>> relishes in your warmth for some time. <<His>> touch makes your skin tingle. <<pain -3>><<lpain>><<npcincr Gwylan lust -25>><<llllust>> <br><br> <<if $consensual is 0>> "You put up a fine struggle. It was thrilling. I'm sorry if I took it too far." <<He>> licks you, before helping you stand and dusting you off. "I'll see you at the shop." <<else>> "I couldn't help it. My body craved yours. I had to chase you." <<He>> holds you even tighter. "Thank you for indulging me." <<He>> helps you up, but fails to keep eye contact with you. "I'll see you at the shop." <</if>> <br><br> <<He>> pauses. "Unless you'd like to walk back together?" <br><br> <<link [[Go with Gwylan|Forest Gwylan Walk Shop]]>><<set $phase to 1>><<npcincr Gwylan dom 1>><</link>><<handholdingvirginitywarning>><<gyearning>> <br> <<link [[Stay here|Forest Gwylan Walk Shop]]>><<set $phase to 2>><</link>> <br> <</if>> <<elseif $enemyhealth lte 0>> <<set $forest += random(-3,3)*5>><<set $forest = Math.clamp($forest, 21, 100)>> Gwylan cries out in pain and rolls away from you. You take the chance to run. You hear <<him>> faintly giggle behind you. "Impressive, <<pcpetname "Gwylan" "name">>. Until next time, then." <<stress 6>><<npcincr Gwylan dom -2>><<gstress>><<lyearning>> <br><br> You keep running. You lose your way, the trees themselves seeming to move to block your way, but you keep running. <br><br> Finally, you pause to catch your breath. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Forest]]>><<endevent>><<set $eventskip to 1>><</link>> <br> <<elseif $pain gte 90 and $willpowerpain is 0>> <<set _rubbedNecklace to true>> <<set $weekly.gwylanNoHunt to true>><<set $weekly.gwylanNoHeat to true>> The fervant lust in <<his>> eyes fades, and <<he>> looks down at you in horror and realisation. <br><br> <<He>> then looks at <<his>> hands. "I'm... hurting you." <span class="green"><<He>> withdraws from you,</span> as if afraid of <<himself>>. <<npcincr Gwylan lust -40>><<lllust>> <br><br> <<He>> digs around in a satchel, pulling out some simple medical supplies. "I'm sorry. Just hold still. I'll make the pain go away. I'm so sorry, <<pcpetname "Gwylan" "simple">>." <br><br> You're too hurt to move anyways. <br><br> <<His>> hands tremble, but become more steady as <<he>> cleans your bruises and scratches. "Please, forgive me." <<His>> voice is full of guilt and shame. <<His>> focus seems to be the only thing stopping <<him>> from crying. <<pain -50>><<lllpain>> <br><br> <<link [[Run|Forest Gwylan Stalk Pain]]>><<set $phase to 1>><</link>> <br> <<link [[Sit still|Forest Gwylan Stalk Pain]]>><<set $phase to 2>><</link>> <br> <<link [[Hug Gwylan|Forest Gwylan Stalk Pain]]>><<set $phase to 3>><<npcincr Gwylan dom 1>><</link>><<gyearning>> <br> <<if displayDefiantOption(500)>> <<link [[Get revenge|Forest Gwylan Stalk Pain]]>><<set $phase to 4>><<stress -16>><<wolfDefiant 500>><</link>><<defianttext 500>><<lllstress>> <br> <</if>> <<if $angel gte 6>> <<link [[Forgive|Forest Gwylan Stalk Pain]]>><<set $phase to 5>><<trauma -12>><<npcincr Gwylan dom 3>><</link>><<ggyearning>><<lltrauma>><<angel>> <br> <</if>> <<else>> <<He>> whines, and rolls off of you. <br><br> <<if $consensual is 0>> "You put up a fine struggle. It was thrilling. I'm sorry if I took it too far." <<He>> licks you, before helping you stand and dusting you off. "I'll see you at the shop." <<else>> "I couldn't help it. My body craved yours. I had to chase you." <<He>> helps you up, but fails to keep eye contact with you. "I'll see you at the shop." <</if>> <br><br> <<He>> pauses. "Unless you'd like to walk back together?" <br><br> <<link [[Go with Gwylan|Forest Gwylan Walk Shop]]>><<set $phase to 1>><<npcincr Gwylan dom 1>><</link>><<handholdingvirginitywarning>><<gyearning>> <br> <<link [[Stay here|Forest Gwylan Walk Shop]]>><<set $phase to 2>><</link>> <br> <</if>><<effects>><<run statusCheck("Gwylan")>> <<if $phase is 1>> <<set $forest += random(-3,3)*5>><<set $forest = Math.clamp($forest, 21, 100)>> You don't take a chance. As soon as the pain is no longer overwhelming, you scramble away from <<him>> and refuse to look back. <br><br> You keep running. You lose your way, but you keep running. <br><br> Finally, you pause to catch your breath. You weren't followed. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Forest]]>><<endevent>><<set $eventskip to 1>><</link>> <br> <<elseif $phase is 2>> You sit still, not saying anything. <<He>> continues to tend to you, until <<he>> starts gently petting your head. <<pain -10>><<llpain>> <br><br> "I won't insult you with excuses. I'll only ask for forgiveness, and if words alone aren't enough, I'll... I'll find some way to make amends. Or I'll simply leave, if that's what you prefer." <br><br> <<He>> looks like <<hes>> about to pull you into a hug, but hesitates. <<He>> gathers <<his>> supplies. You stay silent. <br><br> <<He>> stands, and helps you do the same. "Let me guide you out of the forest, at least." <br><br> <<link [[Go with Gwylan|Forest Gwylan Walk Shop]]>><<set $phase to 1>><<npcincr Gwylan dom 1>><</link>><<handholdingvirginitywarning>><<gyearning>> <br> <<link [[Stay here|Forest Gwylan Walk Shop]]>><<set $phase to 2>><</link>> <br> <<elseif $phase is 3>> You wrap <<him>> in a tight hug. <<He>> freezes for only a moment, before eagerly returning it. <<pain -10>><<llpain>> <br><br> "<<pcPetname "Gwylan" "name">>..." <br><br> <<switch $speech_attitude>> <<case "meek">>"It's okay. Just be more careful next time, please," you say. <<case "bratty">>"Just don't do that again," you say. "You're better than this." <<default>>"It's okay. It doesn't hurt as much anymore. Just don't do that to me again." <</switch>> <br><br> <<He>> pulls away, smiling, and helps you stand. "Let me guide you out of the forest, at least." <br><br> <<link [[Go with Gwylan|Forest Gwylan Walk Shop]]>><<set $phase to 1>><<npcincr Gwylan dom 1>><</link>><<handholdingvirginitywarning>><<gyearning>> <br> <<link [[Stay here|Forest Gwylan Walk Shop]]>><<set $phase to 2>><</link>> <br> <<elseif $phase is 4>> <<His>> guard is down. As <<he>> turns back to you, you land a solid punch right across <<his>> face. <<He>> falls back on the ground, looking up at you with shock. <br><br> <<He>> rubs <<his>> cheek. <<He>> opens <<his>> mouth to say something, but stops <<himself>>. <br><br> <<link [[Help <<him>> up|Forest Gwylan Stalk Revenge]]>><<set $phase to 1>><</link>> <br> <<link [[Leave <<him>> in the dirt|Forest Gwylan Stalk Revenge]]>><<set $phase to 2>><</link>> <br> <<else>> You wrap <<him>> in a tight hug, and let your warmth flow over <<him>>. <<He>> freezes for only a moment, before eagerly returning it. <<pain -10>><<llpain>> <br><br> "<<pcPetname "Gwylan" "name">>..." <br><br> "I forgive you," you say. "I think you just need to forgive yourself." <br><br> <<He>> holds you tighter. "You're too good for this world." <br><br> You separate. "Let me guide you out of the forest, at least." <br><br> <<link [[Go with Gwylan|Forest Gwylan Walk Shop]]>><<set $phase to 1>><<npcincr Gwylan dom 1>><</link>><<handholdingvirginitywarning>><<gyearning>> <br> <<link [[Stay here|Forest Gwylan Walk Shop]]>><<set $phase to 2>><</link>> <br> <</if>><<effects>><<run statusCheck("Gwylan")>> <<if $phase is 1>> "There, now we're even," you say. You stand and reach your hand out. "Don't ever fucking do that again." <br><br> <<He>> stares at you a moment, before giggling and taking your hand. You help <<him>> stand up, and pull <<him>> into a hug. <<He>> returns the embrace. "Thank you, <<pcpetname "Gwylan" "name">>." <br><br> You separate. "Let me guide you out of the forest, at least." <br><br> <<link [[Go with Gwylan|Forest Gwylan Walk Shop]]>><<set $phase to 1>><<npcincr Gwylan dom 1>><</link>><<handholdingvirginitywarning>><<gyearning>> <br> <<link [[Stay here|Forest Gwylan Walk Shop]]>><<set $phase to 2>><</link>> <br> <<else>> You turn and walk away from Gwylan. <br><br> "Wait," <<he>> says. <<His>> voice almost sounds desperate. "Let me walk you back to the shop, at least. Please. It's dangerous." <br><br> <<link [[Go with Gwylan|Forest Gwylan Walk Shop]]>><<set $phase to 3>><</link>> <br> <<link [[Leave|Forest Gwylan Walk Shop]]>><<set $phase to 4>><<npcincr Gwylan dom -2>><</link>><<lyearning>> <br> <</if>><<effects>><<run statusCheck("Gwylan")>> <<set $gwylan.lureDistance -= 5>> <<if $phase is "willing">> <span class="lewd">You willingly follow the beautiful voice as it sings to you.</span> <<else>> <<if $willpowerSuccess>> <<set $gwylan.lureWill++>> <span class="teal">You dig your heels in, and try to resist following the song.</span> <<if $gwylan.lureWill lt 4>>Your legs still carry you forward, but you're gaining control.<</if>> <<else>> <span class="red">You can't resist the beautiful song.</span> <<if $willpower lte 500>><<willpower 1>><<gwillpower>><</if>> <</if>> <</if>> <br><br> <<if $gwylan.lureSong is 1 and $islander_language gte 100>> You recognise the language. <span class="blue">It's the islander tongue.</span> <br><br> <</if>> <<gwylanSong>> <br><br> <<if $gwylan.lureWill gte 4>> <span class="green">You stop.</span> <br><br> You shake your head, pushing away the song's influence, and start running in the opposite direction. <br><br> <<set $forest to $gwylan.lureDistance + 5>> <<run delete $gwylan.lureWill>><<run delete $gwylan.lureDistance>> <<foresthuntstart "Gwylan">> <<elseif $gwylan.lureDistance lte 0>> You see a small hole in the ground, just big enough to crawl through. It yawns open wider before your eyes. <br><br> <span class="red">You crawl in.</span> <br><br> <<if $islander_language gte 100>> <<for $_s to $gwylan.lureSong; $_s lt 6; $_s++>> <<gwylanSong>> <br><br> <</for>> <</if>> <<gwylanSong "end">> <br><br> <<if _gwylanStatus.includes("aurigaScarConfront")>> Something is wrong. It's empty. Dark. This tunnel has no walls. No ceiling. <br><br> You continue crawling forward, and realise far too late that there's <span class="red">no air, either</span>. Your vision goes hazy in an instant, stars creeping into the edges as your muscles seize. <br><br> No hope. No safety. No life. <br><br> A pain overtakes your chest, spreading out from your heart. You look down, and see a <span class="tentacle">crackling scar</span> erupting from your skin in the same spot. <<pain 4>><<trauma 50>> <br><br> No glory. No pleasure. Damnation. <br><br> Something appears in the emptiness ahead. A pair of antlers, made of the same writhing nothingness as your scar. You collapse. There's no ground. You fall. <br><br> Nowhere. <br><br> <<link [[Next|Forest Shop Nowhere Passout]]>><<set $forest to 0>><<endevent>><<pass 15>><<run delete $gwylan.lureSong>><<run delete $gwylan.lureDistance>><<run delete $gwylan.lureWill>><</link>> <br> <<else>> <<link [[Next|Forest Gwylan Ritual Forced]]>><<set $forest to 0>><<endevent phaseless>><<run delete $gwylan.lureSong>><<run delete $gwylan.lureDistance>><</link>> <br> <</if>> <<else>> <<link [[Walk towards the singing|Forest Gwylan Lure]]>><<set $phase to "willing">><<stress -1>><<trauma -1>><<arousal 500>><<pass 5>><</link>><<lstress>><<ltrauma>><<garousal>> <br> <<link [[Resist|Forest Gwylan Lure]]>><<set $phase to "resist">><<pass 5>><</link>><<gwylanWillpowerDifficulty>> <br> <</if>><<set $location to "forest_shop_garden">><<set $outside to 0>><<effects>><<run statusCheck("Gwylan")>> <<npc Gwylan>><<person1>> <<if $phase is "vored">> With a great heave, the snake pushes you up and through its gullet once more, expelling you from its body. You land on a hard stone surface and gasp for breath. Your vision is blurry. <br><br> You hear a hiss, followed by a disturbing crackling sound. You look around. You appear to be in Gwylan's garden, and there's no sign of the snake. <<else>> You emerge in Gwylan's garden. A trapdoor closes behind you. <</if>> <br><br> <<if isPregnancyEnding()>> <<pregnancyPassout "forestShopGarden">> <<elseif _gwylanStatus.includes("reunion")>> Before you can fully get your bearings, a pair of arms wrap around you. It's Gwylan. <<if $phase is "vored">> <<He>> doesn't seem to mind how slimy you are. <</if>> <<if $gwylanSeen.includes("partners")>> "<<pcPetname "Gwylan">>! Where have you been?! Do you have any idea how worried I was?" <<if _gwylanTF.revealed>><<His>> tail beats on the ground.<</if>> <<else>> "I'm glad I found you. I haven't seen you in ages, I thought you were gone for good. What happened to you?" <</if>> <br><br> <<gwylanReunion>> <br><br> <<He>> pets your head. "Since you're here, let's make up for some lost time." <br><br> <span class="red">You don't know when <<he>> started swinging a small red pendant in front of you. It's hard to focus. Your eyelids feel heavy.</span> <br><br> <<if playerChastity()>> <<link [[Tell Gwylan you can't because of your chastity device|Gwylan Chastity Removal]]>><<set $phase to "forced">><</link>> <<else>> <<link [[Agree to do the ritual|Gwylan Ritual Start Garden]]>><<clotheson>><<endevent>><<set $phase to "lured">><</link>> <</if>> <br> <<if $gwylan.lureWill gte 2 or $phase is "resist" or $phase is "vored">> <<link [[Resist|Forest Gwylan Ritual Resist]]>><</link>><<gwylanWillpowerDifficulty>> <br> <<else>> <<hypnosisText "You can't bring yourself to resist after giving in to the song.">> <br> <</if>> <<elseif $gwylan.hunting gte 2>> "There you are, <<pcpetname "Gwylan" "name">>." Gwylan crouches down before you, wearing nothing but <<his>> hat and a seductive smile. <<if $phase is "vored">> "You're all slimy. Let's get you washed, then we can conduct our ritual." <<elseif $gwylan.lureWill gte 2 or $phase is "resist">> "You're a <<pcpetname "Gwylan" "naughty">>, trying to resist my call like that." <<else>> "You're such a <<pcpetname "Gwylan" "good">>, coming right to me when I call you." <</if>> <<He>> pets your head. <<trauma -1>><<ltrauma>> <br><br> "You've kept me waiting. It's okay, though. You're here now. Let's make up for that lost time." <br><br> <span class="red">You don't know when <<he>> started swinging a small red pendant in front of you. It's hard to focus. Your eyelids feel heavy.</span> <br><br> <<if playerChastity()>> <<link [[Tell Gwylan you can't because of your chastity device|Gwylan Chastity Removal]]>><<set $phase to "forced">><</link>> <<else>> <<link [[Agree to do the ritual|Gwylan Ritual Start Garden]]>><<clotheson>><<endevent>><<set $phase to "lured">><</link>> <</if>> <br> <<if $gwylan.lureWill gte 2 or $phase is "resist" or $phase is "vored">> <<link [[Resist|Forest Gwylan Ritual Resist]]>><</link>><<gwylanWillpowerDifficulty>> <br> <<else>> <<hypnosisText "You can't bring yourself to resist after giving in to the song.">> <br> <</if>> <<else>> "<<pcPetname "Gwylan" "name">>! What a pleasant surprise!" Gwylan's smiling face greets you as <<he>> crouches down to your level. "I was calling out to the forest for the ritual. It seems my song works on you now, too!" <<He>> pets your head. <<trauma -1>><<ltrauma>> <br><br> "Since you're here... you're not busy, are you?" <<He>> smiles seductively. <span class="lewd">"I prefer your company for the ritual."</span> <br><br> <<if playerChastity()>> <<link [[Tell Gwylan you can't because of your chastity device|Gwylan Chastity Removal]]>><<set $phase to "forced">><</link>> <<else>> <<link [[Agree to do the ritual|Gwylan Ritual Start Garden]]>><<clotheson>><<endevent>><<set $phase to "lured">><</link>> <</if>> <br> <<link [[Say no|Forest Gwylan Ritual No]]>><<npcincr Gwylan dom -4>><</link>><<llyearning>> <br> <</if>> <<run delete $gwylan.lureWill>><<effects>><<run statusCheck("Gwylan")>> <<His>> smile fades, but only for a moment. <<He>> clasps the pendant. "Ah. Well, that's alright, I can just... lure a beast instead." <<He>> waves <<his>> hand dismissively, but <<his>> disappointment is palpable. <<if $hypnosis_traits.devotion>> <<hypnosisText "It fills you with guilt.">> <<stress 12>><<trauma 6>><<ggstress>><<gtrauma>> <</if>> <br><br> <<He>> leads you through the shop, and back out into the forest. <br><br> <<clotheson>> <<link [[Next|Forest]]>><<endevent>><<set $eventskip to 1>><<set $forest to 0>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<if $willpowerSuccess>> <<if $hypnosis_traits.devotion>> <span class="green">You resist the compulsion to submit.</span> <</if>> You shake your head, finding it hard to form any words. <br><br> <<if _gwylanStatus.includes("badEndReady") or $gwylan.hunting is 3>> Gwylan's smile doesn't fade, but <<his>> head tilts slightly. "Oh, forgive me. <span class="red">That wasn't a request. You're staying here.</span>" <<He>> giggles. "It'll be fun, don't worry." <br><br> <<He>> stands, and walks out of sight. <span class="red">You feel something bind your arms and legs.</span> You look down. Some long vines have constricted you. <br><br> "Don't worry, I already plucked all the thorns out. They should be comfortable. I also coated them in a sedative, so you'll relax quickly." <br><br> <<Hes>> right. Your vision blurs again. <<tiredness 6>><<stress -30>><<pain -4>><<ggtiredness>><<lllstress>><<lpain>> <br><br> <<hypnosisText "<<He>> snaps <<his>> fingers, and your consciousness slips.">> <br><br> <<link [[Next|Gwylan Ritual Start Forced]]>><<clotheson>><<endevent>><</link>> <br> <<elseif _gwylanStatus.includes("heat")>> Gwylan's smile widens slightly. "I'll be blunt, dear. My body craves yours, and your ability to resist me has only aroused me further. You're strong, and I <i>need</i> your touch." <<npcincr Gwylan lust 1>><<glust>> <br><br> <<He>> stands, and walks out of sight. <span class="red">You feel something bind your arms and legs.</span> You look down. Some long vines have constricted you. <br><br> "Don't worry, I already plucked all the thorns out. They should be comfortable. I also coated them in a sedative, so you'll relax quickly." <br><br> <<Hes>> right. Your vision blurs again. <<tiredness 6>><<stress -30>><<pain -4>><<ggtiredness>><<lllstress>><<lpain>> <br><br> <<hypnosisText "<<He>> snaps <<his>> fingers, and your consciousness slips.">> <br><br> <<link [[Next|Gwylan Ritual Start Forced]]>><<clotheson>><<endevent>><</link>> <br> <<else>> Gwylan's smile doesn't fade. "Wow, I'm impressed you were able to do that. You're strong, <<pcpetname "Gwylan">>." <<He>> giggles, <span class="green">and lowers the pendant</span>. "You're adorable when you say no, do you know that?" <<npcincr Gwylan dom 1>><<gyearning>> <br><br> <<He>> leads you through the shop, and back out into the forest. <br><br> <<clotheson>> <<He>> hugs you from behind and whispers into your ear. "The chase isn't over, dear. I'll get you one of these times." <br><br> You turn around, but <<hes>> already gone. <<stress 3>><<gstress>> <br><br> <<link [[Next|Forest]]>><<endevent>><<set $eventskip to 1>><<set $forest to 0>><</link>> <br> <</if>> <<else>> <<hypnosisText "You're unable to bring yourself to deny <<gwylanHypnoName>>.">> <br><br> <<His>> head tilts, but <<his>> smile doesn't fade. "Oh my. Did you just try saying no to me?" <<He>> leans in closer, filling your vision with the faintest green glow of <<his>> eyes. "Be honest." <br><br> <<link [[Yes|Forest Gwylan Ritual Resist Answer]]>><<set $phase to 1>><</link>> <br> <<link [[No|Forest Gwylan Ritual Resist Answer]]>><<set $phase to 2>><</link>> <br> <<link [[Say nothing|Forest Gwylan Ritual Resist Answer]]>><<set $phase to 3>><</link>> <br> <</if>><<effects>><<run statusCheck("Gwylan")>> <<if $phase is 1>> <<He>> pets your head again. "<<pcPetname "Gwylan" "good">>, being honest with me. <<if _gwylanStatus.includes("badEndReady") or $gwylan.hunting is 3>> Unfortunately, <span class="red">that wasn't a request. You're staying here.</span>" <<He>> giggles. "It'll be fun, don't worry." <br><br> <<He>> stands, and walks out of sight. <span class="red">You feel something bind your arms and legs.</span> You look down. Some long vines have constricted you. <br><br> "Don't worry, I already plucked all the thorns out. They should be comfortable. I also coated them in a sedative, so you'll relax quickly." <br><br> <<Hes>> right. Your vision blurs again. <<tiredness 6>><<stress -30>><<pain -4>><<ggtiredness>><<lllstress>><<lpain>> <br><br> <<hypnosisText "<<He>> snaps <<his>> fingers, and your consciousness slips.">> <br><br> <<link [[Next|Gwylan Ritual Start Forced]]>><<clotheson>><<endevent>><<set $phase to "forced">><</link>> <br> <<elseif _gwylanStatus.includes("heat") or $gwylan.hunting is 2>> I'll be blunt, dear. My body craves yours, and your ability to resist me has only aroused me further. You're strong, and I <i>need</i> your touch." <<npcincr Gwylan lust 1>><<glust>> <br><br> <<He>> stands, and walks out of sight. <span class="red">You feel something bind your arms and legs.</span> You look down. Some long vines have constricted you. <br><br> "Don't worry, I already plucked all the thorns out. They should be comfortable. I also coated them in a sedative, so you'll relax quickly." <br><br> <<Hes>> right. Your vision blurs again. <<tiredness 6>><<stress -30>><<pain -4>><<ggtiredness>><<lllstress>><<lpain>> <br><br> <<hypnosisText "<<He>> snaps <<his>> fingers, and your consciousness slips.">> <br><br> <<link [[Next|Gwylan Ritual Start Forced]]>><<clotheson>><<endevent>><<set $phase to "forced">><</link>> <br> <<else>> You're adorable when you say no, do you know that? <span class="green">I won't force you.</span>" <br><br> <<He>> helps you stand and leads you through the shop, back out into the forest. <br><br> <<clotheson>> <<He>> hugs you from behind and whispers into your ear. "The chase is more exciting anyways. See you soon, dear." <br><br> You turn around, but <<hes>> already gone. <<stress 3>><<gstress>> <br><br> <<link [[Next|Forest]]>><<endevent>><<set $eventskip to 1>><<set $forest to 0>><</link>> <br> <</if>> <<else>> <<if $phase is 2>> <<He>> giggles. "<<pcPetname "Gwylan" "naughty">>. You may resist me, but you do <b><<gwylanCommand "not">></b> lie to me." <<hypnosisText "A sudden shame overtakes you.">> <<trauma 12>><<ggtrauma>> <<else>> <<He>> giggles. "<<pcPetname "Gwylan" "naughty">>. You answer me when I ask you a question." <<hypnosisText "A sudden shame overtakes you.">> <<trauma 12>><<ggtrauma>> <</if>> <br><br> <<if _gwylanStatus.includes("badEndReady") or $gwylan.hunting is 3>> "Unfortunately, <span class="red">that wasn't a request. You're staying here.</span> It'll be fun, don't worry." <<elseif _gwylanStatus.includes("heat")>> "I'll be blunt, dear. My body craves yours, and your defiance has only aroused me further. I <i>need</i> your touch." <<else>> "It's alright." <<He>> caresses your cheek. "I forgive you... but you'll be making it up to me by helping me." <</if>> <br><br> <<He>> stands, and walks out of sight. <span class="red">You feel something bind your arms and legs.</span> You look down. Some long vines have constricted you. <br><br> "Don't worry, I already plucked all the thorns out. They should be comfortable. I also coated them in a sedative, so you'll relax quickly." <br><br> <<Hes>> right. Your vision blurs again. <<tiredness 6>><<stress -30>><<pain -4>><<ggtiredness>><<lllstress>><<lpain>> <br><br> <<hypnosisText "<<He>> snaps <<his>> fingers, and your consciousness slips.">> <br><br> <<link [[Next|Gwylan Ritual Start Forced]]>><<clotheson>><<endevent>><<set $phase to "forced">><</link>> <br> <</if>><<effects>><<run statusCheck("Gwylan")>> <<if $phase is "Gwylan">> "Oh, good!" Gwylan says, clapping <<person2>><<his>> hands. "Let's go, <<pcpetname "Gwylan">>. I have a pot of tea waiting for you back at the shop." <br><br> Gwylan turns and heads into the bushes. You start to follow, then look back. Eden hasn't moved. <<person1>><<His>> sights are trained on you now. <<His>> finger tightens around the trigger. <br><br> At the last moment, <<he>> turns and fires. The bullet whizzes past you and embeds in a tree. Splinters shoot outward. <<stress 24>><<ggstress>> <br><br> You decide not to stick around. You rush off after Gwylan, and <<person2>><<he>> takes your arm when you catch up. <br><br> <<link [[Next|Forest Gwylan Eden Shop]]>><<pass 15>><<set $phase to "willing">><</link>> <br> <<else>> <<if $worn.neck.name is "familiar collar" and $worn.neck.cursed is 1>> You open your mouth— <br><br> "Of course <<pshe>> wants to go with me," Gwylan interrupts, placing a gentle hand on the back of your neck. <<person2>><<His>> fingers brush your collar. "<span class="witch">Isn't that right? Go on, tell <<person1>><<him>>.</span>" <br><br> <<hypnosisText "The words in your throat are replaced.">> "That's right," you say, staring at Eden. "I want to go with Gwylan." <br><br> Eden's face doesn't change. "Okay. Now say it without being prompted." <br><br> Gwylan tuts. "You need to learn to take a hint, Eden. Come on, <<pcpetname "Gwylan">>. <span class="witch">We're going home.</span>" Gwylan takes your arm and heads into the bushes. <<hypnosisText "You follow.">> <br><br> <<link [[Next|Forest Gwylan Eden Shop]]>><<pass 15>><<set $phase to "kidnap">><</link>> <br> <<else>> "I want to go with Eden," you say. <<person1>>"<<Hes>> right. I've been away for too long. I don't want you to get hurt, either." <br><br> <<He>> holds out a hand, never looking away from Gwylan. You hurry to the relative safety of <<his>> side. <<He>> stays stiff up until <<his>> arm is around you. Then you feel <<him>> relax. <<His>> hand shakes on your waist. <br><br> <<person2>>Gwylan watches the two of you, <<his>> head tilting. "Of course," <<he>> says. "I have no intention of keeping you locked away." <<He>> flicks <<his>> glance to Eden. "But, Eden?" <br><br> "What?" Eden snaps. <br><br> "The forest has eyes." <<He>> looks between the two of you. For a moment, you think <<hes>> seeing something else, or someone else. "May you find your way home safely." <br><br> <<He>> turns and heads into the bushes. You watch <<him>> go. It isn't until <<hes>> gone that Eden lets out an explosive breath. <<person1>><<He>> turns to you, and <<his>> expression hardens. "Don't think you're off the hook." <br><br> <<endevent>><<npc Eden>><<person1>> <<link [[Next (0:30)|Eden Caged Caught]]>><<pass 30>><</link>> <br> <</if>> <</if>><<effects>><<run statusCheck("Gwylan")>> <<if $phase is "Gwylan">> You take Gwylan's hand. <<He>> smiles warmly. <<takeHandholdingVirginity "Gwylan" "romantic">> <br><br> Eden's face turns dark as <<person1>><<he>> tries to unjam <<his>> rifle. Gwylan turns and leads you into the bushes. You don't look back. <br><br> <<link [[Next (0:15)|Forest Gwylan Eden Shop]]>><<pass 15>><<set $phase to "rescue">><</link>> <br> <<else>> <<if $worn.neck.name is "familiar collar" and $worn.neck.cursed is 1>> Your leash appears in Gwylan's hand. <<hypnosisText "All thoughts of going with Eden quickly fade away.">> <<He>> gently pulls it. "Come." <br><br> Eden's face turns dark as <<person1>><<he>> tries to unjam <<his>> rifle. "You're forcing <<phim>>," <<he>> growls. "You're no different." <br><br> Gwylan doesn't answer, pulling you along into the bushes. <br><br> <<link [[Next (0:15)|Forest Gwylan Eden Shop]]>><<pass 15>><<set $phase to "kidnap">><</link>> <br> <<elseif $willpowerSuccess>> <<if $hypnosis_traits.devotion>> <span class="green">You manage to resist the urge to take Gwylan's hand.</span> <br><br> <</if>> Gwylan frowns, retracting <<person2>><<his>> hand. "Very well, I have no intention of keeping you locked away." <br><br> You hurry back to Eden's side just as <<person1>><<he>> unjams <<his>> rifle. <<He>> raises it at Gwylan again, put you put your hand on the barrel, looking directly into <<his>> eyes. <<His>> expression briefy hardens, but <<he>> relaxes. <<His>> arm wraps around you. <br><br> Gwylan looks between the two of you. For a moment, you think <<person2>><<hes>> seeing something else, or someone else. "Eden?" <br><br> "What?" Eden snaps. <br><br> "Do not harm <<phim>>. The forest has eyes." <<His>> expression becomes cheery again. "May you find your way home safely." <br><br> <<He>> turns and heads into the bushes. You watch <<him>> go. It isn't until <<hes>> gone that Eden lets out an explosive breath. <<person1>><<He>> turns to you. "Don't think you're off the hook." <br><br> <<endevent>><<npc Eden>><<person1>> <<link [[Next (0:30)|Eden Caged Caught]]>><<pass 30>><</link>> <br> <<else>> Gwylan's smile falters ever so slightly. <<hypnosisText "It's enough to fill you with guilt.">> You take <<his>> hand. <<takeHandholdingVirginity "Gwylan" "rape">> <br><br> Eden's face turns dark as <<person1>><<he>> tries to unjam <<his>> rifle. Gwylan turns and leads you into the bushes. You don't look back. <br><br> <<link [[Next (0:15)|Forest Gwylan Eden Shop]]>><<pass 15>><<set $phase to "rescue">><</link>> <br> <</if>> <</if>><<effects>><<run statusCheck("Gwylan")>> <<if $phase is "rescue">> A moment later, a bullet whizzes past you and embeds in a tree. Splinters shoot outward. <span class="red">You don't think that was aimed at Gwylan.</span> <<stress 24>><<trauma 24>><<ggstress>><<ggtrauma>> <br><br> Gwylan's eyes widen as Eden runs towards you again. <<person2>><<He>> grabs a pouch from <<his>> belt and throws some kind of green dust at Eden. You breathe some in. Your vision twists. <br><br> <<if $hallucinations gte 2>> Standing before you is a massive fox with bristling fur. It screams at Eden, who turns pale white and falls backwards. <<else>> When the dust settles, you see that Eden has fallen backwards on <<person1>><<his>> ass. <<He>> stares at something you can't see, <<his>> face pale white. <</if>> <br><br> Gwylan tugs on your wrist. "This isn't going to hold <<person1>><<him>> for long," <<person2>><<he>> shouts. "Come on!" <br><br> <<He>> starts to run towards <<his>> shop again, pulling you along behind <<him>> until you're inside. You can hear Eden's heavy footsteps following behind you again. The door slams shut in <<person1>><<his>> face. <<elseif $phase is "willing">> <<set $phase to "rescue">> Before the two of you get very far, a bullet whizzes past your heads. It embeds in a tree just beyond you. You look back. Eden's running towards you. <br><br> Gwylan turns on <<person2>><<his>> heel and throws some kind of green dust. You breathe some in. Your vision twists. <br><br> <<if $hallucinations gte 2>> Standing before you is a massive fox with bristling fur. It screams at Eden, who turns pale white and falls backwards. <<else>> When the dust settles, you see that Eden has fallen backwards on <<person1>><<his>> ass. <<He>> stares at something you can't see, <<his>> face pale white. <</if>> <br><br> Gwylan tugs on your wrist. "This isn't going to hold <<person1>><<him>> forever," <<person2>><<he>> shouts. "Come on!" <br><br> <<He>> starts to run towards <<his>> shop again, pulling you along behind <<him>> until you're inside. You can hear Eden's heavy footsteps following behind you again. The door slams shut in <<person1>><<his>> face. <<else>> You soon hear footsteps in the forest behind you. "You're not going anywhere with <<phim>>," Eden yells. <br><br> <<person1>><<He>> grabs your arm. Gwylan turns on <<person2>><<his>> heel and throws some kind of green dust. You breathe some in. Your vision twists. <br><br> <<if $hallucinations gte 2>> Standing before you is a massive fox with bristling fur. It screams at Eden, who turns pale white and falls backwards. <<else>> When the dust settles, you see that Eden has fallen backwards on <<person1>><<his>> ass. <<He>> stares at something you can't see, <<his>> face pale white. <</if>> <br><br> Gwylan tugs on your wrist. "Let's go." <<He>> starts to run towards <<his>> shop again, pulling you along behind <<him>> until you're inside. <</if>> <br><br> <<link [[Next|Forest Shop Hunt Intro]]>><<endevent "phaseless">><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<if $phase is "run">> You run into the forest without looking back. You don't hear another gunshot. <<clotheson>> <<endcombat>> <<link [[Next|Forest]]>><<endevent>><</link>> <br> <<elseif $phase is "stand">> <<if $speech_attitude is "meek">> "Please don't fight," you say. "I don't want anyone hurt." <<elseif $speech_attitude is "bratty">> "You idiots need to chill out," you say. "You both came to help me. Seems like a good reason to be friends." <<else>> "Please don't hurt each other," you say. "You both came to help me." <</if>> <br><br> The two stare at each other. Then Eden lowers <<nnpc_his "Eden">> rifle. <br><br> "I'll step away," Gwylan says. "If you do." <br><br> Eden hesitates, then nods. They back away from you, keeping their eyes locked on one another, until you're stood alone in the forest. <br><br> <<clotheson>> <<endcombat>> <<link [[Continue on|Forest]]>><<endevent>><</link>> <br> <<link [[Follow Eden|Forest Trio Confrontation Eden]]>><<endevent>><<npcincr Eden love 1>><</link>><<glove "Eden">> <br> <<link [[Follow Gwylan|Forest Trio Confrontation Escape]]>><<endevent>><<npc Gwylan>><<person1>><<npcincr Gwylan dom 1>><</link>><<gyearning>> <br> <<else>> <<switch $speech_attitude>> <<case "meek">>You tremble as you step in front of the gun. <<case "bratty">>You step in front of the gun, planting your feet firm. <<default>>You step in front of the gun. <</switch>> Eden lowers <<nnpc_his "Eden">> rifle in shock. <br><br> "No!" Gwylan gasps. <<nnpc_He "Gwylan">> wraps both arms around you, and tries to pull you aside. Then realisation dawns on <<nnpc_his "Gwylan">> face, and <<nnpc_he "Gwylan">> takes off towards the nearest trees. <br><br> Eden raises <<nnpc_his "Eden">> rifle again, but Gwylan is too quick. Eden runs after <<nnpc_him "Gwylan">>, leaving you alone in the forest. <br><br> <<link [[Next|Forest]]>><<endevent>><</link>> <br> <</if>><<effects>> <<npc Eden>><<person1>> You find Eden sat on a tree stump nearby, rifle on <<his>> knee. <<Hes>> already looking your way when you arrive. <br><br> <<if $edenCagedEscape>> "I'm glad you came," <<he>> says, standing. "But don't think I've forgotten what you've put me through." <<He>> marches closer. "You're coming with me, one way or another. <br><br> <<link [[Fight|Eden Caged Caught Resist]]>><<set $fightstart to 1>><</link>> <br> <<link [[Try to pull away|Eden Caged Caught Pull]]>><<def 1>><<npcincr Eden dom -1>><</link>><<physiquedifficulty 2000 18000>><<ldom>> <br> <<link [[Submit (0:30)|Eden Caged Caught]]>><<set $phase to 1>><<pass 30>><<npcincr Eden dom 1>><</link>><<gdom>> <br> <<elseif edenFreedomStatus() gte 1>> "I'm glad you came," <<he>> says, standing. "The cabin's waiting." <br><br> <<link [[Next (0:30)|Eden Recaptured]]>><<edenTrackers>><<pass 30>><</link>> <br> <<else>> "I'm glad you're okay," <<he>> says. "With the wolves so active, it might be best you return to the cabin." <br><br> <<forestCabinReturnLinks>> <br><br> <</if>><<effects>><<run statusCheck("Gwylan")>> You find Gwylan in another small clearing. <<He>> looks at you, then the trees, then gives gives you a scolding look. "You're putting yourself in danger following me." <<He>> dons a smile. "I'm happy that you stuck by me, but it's dangerous." <br><br> <<if _gwylanStatus.includes("reunion")>> <<if $gwylanSeen.includes("partners")>> "Honestly, you're such trouble. First you disappear on me for weeks, and now this. Do you have any idea how worried I was? Where were you?" <<if _gwylanTF.revealed>><<His>> tail wags behind <<him>>.<</if>> <<else>> "Honestly, you're such trouble. I'm glad I found you. I haven't seen you in ages, I thought you were gone for good. What happened to you?" <</if>> <br><br> <<gwylanReunion>> <br><br> <<if _gwylanStatus.includes("badEndReady")>> "Please, just let me hold you for a little while. I really though this would be the end. I thought I'd be alone again." <br><br> You feel the slightest pinprick in your arm. <<pain 2>><<gpain>> <br><br> <span class="purple">The forest starts to shift and distort.</span> Gwylan's face remains in perfect clarity at the center of your vision. <<He>> smiles sweetly, holding up a pink rose. Its stem drips red. <<hallucinogen 160>><<ggghallucinogens>> <br><br> The ground attacks you from below, but Gwylan guides you down slowly. "Shhh... just... a little longer." <br><br> <<hypnosisText "<<His>> sweet voice silences your thoughts, and you're no longer where you once were.">> <<His>> voice fades away with the rest of the forest. <br><br> <<silently>><<clotheson>><<endcombat>><</silently>> <<if _gwylanStatus.includes("aurigaScarConfront")>> <<link [[Everything fades to black...|Forest Shop Nowhere Passout]]>><<pass 1 hour>><<endevent>><</link>> <<else>> <<link [[Everything fades to black...|Forest Shop Taken Start]]>><<pass 1 hour>><<endevent>><</link>> <</if>> <<else>> <<He>> looks back into the treeline one last time. "Would you like to walk back to the shop with me? It would be safer together." <br><br> <<link [[Yes|Forest Gwylan Walk Shop]]>><<set $phase to 1>><<npcincr Gwylan dom 1>><</link>><<handholdingvirginitywarning>><<gyearning>> <br> <<link [[No|Forest Gwylan Walk Shop]]>><<set $phase to 2>><</link>> <br> <</if>> <<else>> <<He>> looks back into the treeline one last time. "Would you like to walk back to the shop with me? It would be safer together." <br><br> <<link [[Yes|Forest Gwylan Walk Shop]]>><<set $phase to 1>><<npcincr Gwylan dom 1>><</link>><<handholdingvirginitywarning>><<gyearning>> <br> <<link [[No|Forest Gwylan Walk Shop]]>><<set $phase to 2>><</link>> <br> <</if>><<location "forest">><<effects>><<wPersist "forest">><<getTarget true>> <<if $foresthunt gte 1>> <<if $forestHunter is "Eden" and (hasSharpSenses() or $foresthunt gte 7)>> <<print either( `<span class="red">You are being hunted. You see spent bullet casings lying on the ground.</span>`, `<span class="red">You are being hunted. You see boot prints on the ground.</span>`, `<span class="red">You are being hunted. You hear a gun firing from afar.</span>` )>> <<elseif $forestHunter is "Black Wolf" and (hasSharpSenses() or $foresthunt gte 7)>> <<print either( `<span class="red">You are being hunted. You see wolf fur tangled in the trees.</span>`, `<span class="red">You are being hunted. You see wolf prints on the ground.</span>`, `<span class="red">You are being hunted. You hear a growl in the distance.</span>` )>> <<elseif $forestHunter is "Gwylan" and (hasSharpSenses() or $foresthunt gte 7 or $gwylan?.lureSong)>> <<if isGwylanAbsent() is "nobody">> <<set $eventskip to 1>> <<print either( `<span class="red">You are being hunted. You hear nothing.</span>`, `<span class="red">You are being hunted. The forest is empty.</span>`, `<span class="red">You are being hunted. You see nobody.</span>`, `<span class="red">Nobody is hunting you.</span>` )>> <<else>> <<if $gwylan?.lureSong>> <span class="red">You are being hunted. <<if $gwylan.lureSong is 1>>You hear singing in the distance.<</if>></span> <<if $gwylan.lureSong is 1 and $islander_language gte 100>> You recognise the language. <span class="blue">It's the islander tongue.</span> <br><br> <<elseif $islander_language gte 100>> <br><br> <</if>> <<gwylanSong>> <<else>> <<print either( `<span class="red">You are being hunted. You hear a soothing voice singing in the distance.</span>`, `<span class="red">You are being hunted. The forest is unusually silent.</span>`, `<span class="red">You are being hunted. You feel curious eyes on you.</span>` )>> <</if>> <</if>> <<elseif $wraith.hunt and $forestHunter is "Wraith">> <<if $moonstate is "morning" and Time.hour gte 6>> With the rising of the sun, you feel a sense of relief. The dread passes. <span class="blue"><i>You're safe until the next blood moon.</i></span> <<clearWraith>> <<else>> <<print either( `<span class="red">You are being hunted. Red moonlight casts dire shadows all around you.</span><<stress 6>><<gstress>>`, `<span class="red">You are being hunted. You hear distant laughter.</span> <<trauma 6>><<gtrauma>>`, `<span class="red">You are being hunted. It's becoming harder to breathe.</span> <<stress 6>><<gstress>><<trauma 6>><<gtrauma>>` )>> <</if>> <<else>> <!-- generic text for when a hunt is happening but we haven't written a more specific version of the text, or the player's senses aren't sharp enough to know who's hunting them. --> <span class="red">You are being hunted.</span> <</if>> <br><br> <</if>> <<if $arousal gte $arousalmax>> <<orgasmforest>> <</if>> <<set $forest to Math.clamp($forest, 0, 100)>> <<forestmove>> <<if $stress gte $stressmax and !$possessed>> <<passoutforest>> <<elseif $foresthunt gte 10 and !$possessed>> <<foresthunt>> <<elseif $forest lte 0>> <<if $eventskip is 0>> <<rng>> <<if $rng gte 81 or ($forest_search is true and $rng gte 61)>> <<eventforestitem>> <<elseif dangerEvent($forestmod)>> <<eventforestoutskirts>> <<else>> <<eventforestsafe>> <</if>> <<elseif $town_projects.road is 1>> <<set $town_projects.road to 2>> You are in the forest outskirts. You can make out the town between the trees. <br><br> You almost trip over a worn brick. It draws your attention to others like it. There used to be a road here, connecting the town to the lake. <span class="teal">An idea strikes you.</span> If the road were restored, the journey would be safer, for both you and other students. <br><br> <i>You could enquire about the road at the town hall.</i> <br><br> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <br> <<elseif $town_projects.road is 3>> <<set $town_projects.road to 4>> You are in the forest outskirts. You can make out the town between the trees. <br><br> The mayor's office acted fast. A road stretches into the forest, swerving out of sight. <span class="green">Getting to and from the lake will be much easier.</span> <br><br> <<earnFeat "Safe Trail">> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <br> <<elseif $eventskip gte 1>> You are in the forest outskirts. You can make out the town between the trees. <br><br> <<if $exposed lte 1 or $gwylanSeen?.includes("lights")>> <<if $forest_shop_intro is 1>> <<if $hypnosis_traits.devotion gte 5 and ($gwylanSeen?.includes("romance") or $gwylan?.timer?.petBed)>> <<set _forestShopText to "Your home is here, cradled in the treeline.">> <<set _forestShopLinkText to "Home">> <<elseif $gwylanSeen?.includes("yearning") and isGwylanAbsent() isnot "nobody">> <<set _forestShopText to "Gwylan's shop is here, cradled in the treeline.">> <<set _forestShopLinkText to "Gwylan's shop">> <<else>> <<set _forestShopText to "The forest shop is here, cradled in the treeline.">> <<set _forestShopLinkText to "Forest shop">> <</if>> <<= _forestShopText>><br> <<if $daily.gwylan.locked or Time.isBloodMoon() or C.npc.Gwylan.state is "scorned">> <<shopicon "forest">><<link [[_forestShopLinkText|Forest Shop Locked]]>><<endevent>><</link>> <<else>> <<shopicon "forest">><<link [[_forestShopLinkText|Forest Shop Entrance]]>><<endevent>><<set $enteringForestShop to true>><</link>> <</if>> <<else>> A strange, castle-like shop is cradled in the treeline.<br> <<if Time.isBloodMoon() or isGwylanAbsent() and C.npc.Gwylan.init isnot 0>> <<shopicon "forest">><<link [[Strange shop|Forest Shop Locked]]>><<endevent>><</link>> <<else>> <<shopicon "forest">><<link [[Strange shop|Forest Shop Entrance]]>><<endevent>><<set $enteringForestShop to true>><</link>> <</if>> <</if>> <br><br> <</if>> <<forestdeeper>> <br><br> <<forestsearch>> <br><br> Leave the forest <br> <<danubeicon>><<link [[Danube Street (0:10)|Danube Street]]>><<pass 10>><<set $foresthunt to 0>><</link>> <br> <<wolficon>><<link [[Wolf Street (0:10)|Wolf Street]]>><<pass 10>><<set $foresthunt to 0>><</link>> <br> <<nightingaleicon>><<link [[Nightingale Street (0:10)|Nightingale Street]]>><<pass 10>><<set $foresthunt to 0>><</link>> <br> <<if $temple_rank isnot undefined and $temple_rank isnot "prospective">> <<templeicon "garden">><<link [[Temple garden (0:10)|Temple Garden]]>><<pass 10>><<set $foresthunt to 0>><</link>> <br> <</if>> <br><br> <<if $historytrait gte 2 and $thicket_tunnel_intro is 1>> <<foresticon "bush">><<link [[Take the secret tunnel to the Residential alleyways (0:05)|Residential Thicket]]>><<pass 5>><<set $foresthunt to 0>><</link>> <br> <</if>> <<if $historytrait gte 3>> <<forestroadicon "secret">> <<link [[Take secret path deeper into the woods (0:10)|Forest]]>> <<set $forestmod to 1.5>><<set $forest += 50>><<set $forestmove to "secretin">><<pass 10>> <<if $foresthunt gte 1>><<set $foresthunt += 1>><</if>> <<if $forestHunter is "Gwylan" and $foresthunt gte 1>><<set $foresthunt += 5>><</if>> <</link>> <br> <</if>> <</if>> <<elseif $forest lte 20>> <<if $eventskip is 0>> <<rng>> <<if $rng gte 81 or ($forest_search is true and $rng gte 61)>> <<eventforestitem>> <<elseif dangerEvent($forestmod)>> <<eventforestoutskirts>> <<else>> <<eventforestsafe>> <</if>> <<elseif $eventskip gte 1>> You are in the forest. The trees are quite sparse, you can't be too far from town. <br><br> <<if $forest gte 10 and $forest lte 14>> <<foresticon "churchyard">><<link [[Old churchyard|Churchyard]]>><</link>> <br><br> <</if>> <<if $smuggler_location is "forest" and $smuggler_timer is 0 and Time.dayState is "night" and Time.hour gte 18>> <span class="gold">You see a flickering through the trees. Like a flame.</span> <br><br> <</if>> <<if $smuggler_location is "forest" and $smuggler_timer is 0 and Time.dayState is "night" and Time.hour gte 18>> <<link [[Approach flame|Smuggler Forest]]>><</link>> <br><br> <</if>> <<forestdeeper>> <br><br> <<forestsearch>> <br><br> <<forestlessdeep>> <</if>> <<elseif $forest lte 50>> <<if $eventskip is 0>> <<rng>> <<if $rng gte 81 or ($forest_search is true and $rng gte 61)>> <<eventforestitem>> <<elseif dangerEvent($forestmod)>> <<eventforest>> <<else>> <<eventforestsafe>> <</if>> <<elseif $eventskip gte 1>> You are in the forest, surrounded by nature. <br><br> <<if $forest lte 30>> <<if $nextPassageCheck is "Lake Shore">> <span class="nextLink"><<lakeicon>><<link [[The lake.|Lake Shore]]>><<pass 10>><</link>></span> <<else>> <<lakeicon>><<link [[Lake (0:10)|Lake Shore]]>><<pass 10>><</link>> <</if>> <<elseif $forest lte 40>> <<lakeicon>><<link [[Lake (0:10)|Lake Waterfall]]>><<pass 10>><</link>> <<else>> <<if $nextPassageCheck is "Lake Fishing Rock">> <span class="nextLink"><<lakeicon>><<link [[The lake.|Lake Fishing Rock]]>><<pass 10>><</link>></span> <<else>> <<lakeicon>><<link [[Lake (0:10)|Lake Fishing Rock]]>><<pass 10>><</link>> <</if>> <</if>> <br><br> <<forestdeeper>> <br><br> <<forestsearch>> <br><br> <<forestlessdeep>> <br><br> <<if $historytrait gte 3>> <<forestroadicon "secret">> <<link [[Take secret path out of the woods (0:10)|Forest]]>> <<set $forestmod to 1.5>><<set $forest -= 50>><<set $forestmove to "secretout">><<pass 10>> <<if $foresthunt gte 1>><<set $foresthunt += 1>><</if>> <<if $forestHunter is "Gwylan" and $foresthunt gte 1>><<set $foresthunt += 5>><</if>> <</link>> <br> <</if>> <</if>> <<elseif $forest lte 99>> <<if $eventskip is 0>> <<rng>> <<if $rng gte 81 or ($forest_search is true and $rng gte 61)>> <<eventforestitem>> <<elseif dangerEvent($forestmod)>> <<eventforestdeep>> <<else>> <<eventforestsafe>> <</if>> <<elseif $eventskip gte 1>> You are deep in the forest. The trees are tall and dark, their branches twisting together to form the canopy. <br><br> <<if $edenfreedom gte 1 or $syndromeeden gte 1>> <<if $edenFluidsCheck is "cleanLeave" and ($goocount + $semencount gte 10) and Time.hour gte 7 or $edenFluidsCheck is "run">> <<edenicon>><<link [[Eden's cabin (0:10)|Eden Fluids Punishment]]>><<pass 10>><</link>> <<elseif !$edenHotSpring and Weather.isFreezing>> <<edenicon>><<link [[Eden's cabin (0:10)|Eden Hot Spring Creation 1]]>><</link>> <<else>> <<edenicon>><<link [[Eden's cabin (0:10)|Eden Clearing]]>><<pass 10>><</link>> <</if>> <br> <</if>> <<if $syndromewolves gte 1>> <<if $caveHumanPregnancyDiscovered isnot 1 or !playerIsPregnant()>> <<wolfcaveicon "entrance">><<link [[Wolf cave (0:10)|Wolf Cave Clearing]]>><<pass 10>><</link>> <br> <<else>> <span class="blue">You don't think the wolves would allow you to come back until your pregnancy is over.</span> <br> <</if>> <</if>> <<if $pubtask is "forest" and $pubtask2 isnot 1>> <<rng>> <!-- Modified for Monster People --> <<if $pubtasksetting is "bear">> <<crimeicon "black box">><<link [[Search for Landry's black box|Forest Bear Box]]>><</link>> <<elseif $pubtasksetting is "pair">> <<crimeicon "black box">><<link [[Search for Landry's black box|Forest Box]]>><</link>> <<elseif $rng gte 51>> <<crimeicon "black box">><<link [[Search for Landry's black box|Forest Bear Box]]>><</link>> <<else>> <<crimeicon "black box">><<link [[Search for Landry's black box|Forest Box]]>><</link>> <</if>> <br> <</if>> <<if $forest gte 80 and $forest lte 90 and $brookIntro gte 1>> <<if $worn.feet.type.includes("heels")>> <span class="red">Traversing the brook in heels would be impossible.</span> <<else>> <<foresticon "river">><<link [[Follow the brook (0:20)|Forest Brook]]>><<pass 20>><</link>> <</if>> <br> <</if>> <br> <<forestdeeper>> <br><br> <<forestsearch>> <br><br> <<forestlessdeep>> <</if>> <<elseif $forest gte 100>> <<if $eventskip is 0>> <<rng>> <<if $rng gte 81 or ($forest_search is true and $rng gte 61)>> <<eventforestitem>> <<elseif dangerEvent($forestmod)>> <<eventforestdeep>> <<else>> <<eventforestsafe>> <</if>> <<elseif $eventskip gte 1>> You are deep in the forest. You can make out the asylum through the trees. <br><br> <<forestsearch>> <br><br> <<forestlessdeep>> <</if>> <</if>> <<unset $forest_search>> <<set $eventskip to 0>><<location "forest">><<effects>> <<beastNEWinit 1 bear>> <<if $pubtasksetting is "bear">> You return to the cave, where Landry's black box can be found. You hear something large breathing within. <<else>> <<set $pubtasksetting to "bear">> You come to a cave, the location Landry said the black box would be found. It must be inside. <br><br> You've barely taken two steps further when you hear a deep growl. There's something big in there. <</if>> <br><br> <<if $monster is 1 or $settings.bestialityEnabled>> <<getinicon>><<link [[Enter|Forest Bear Box Molestation]]>><<set $molestationstart to 1>><</link>> <br> <<else>> <<getinicon>><<link [[Enter|Forest Bear Box Molestation Finish]]>><<set $phase to 1>><</link>> <br> <</if>> <<getouticon>><<link [[Leave|Forest]]>><<endevent>><</link>><<location "forest">><<effects>> <<if $pubtasksetting is "pair">> <<generate1>><<generate2>> You return to the clearing with the dilapidated cabin. The <<fullGroup>> are still there. "Changed your mind?" says the <<person1>><<person>>. "Let us have our way with you and we'll give you the black box." <<else>> <<set $pubtasksetting to "pair">> <<generate1>><<generate2>> You come to the clearing where the black box supposedly resides. There's a dilapidated wood cabin in the middle. A <<fullGroup>> sit outside beside a fire. They look up as you approach. "This is unexpected," says the <<person1>><<person>>. "What brings you all the way out here?" <br><br> You tell them you're looking for a small black box. "Oh," <<he>> says. "You mean this?" <<He>> stands and produces a black box from <<his>> pocket. "We could be persuaded to part with it. We'd want something in return though." <<He>> walks closer to you. "You're a cute little thing, Landry sure knows how to pick em. We'll give you the box if you let us fuck you." The <<person2>><<person>> grins. <</if>> <br><br> <<if hasSexStat("promiscuity", 2)>> <<link [[Accept|Forest Box Molestation]]>><<set $sexstart to 1>><</link>><<promiscuous2>> <br> <</if>> <<if displayDefiantOption(500)>> <<link [[Attack them|Forest Box Molestation]]>><<set $molestationstart to 1>><<set $phase to 2>><<wolfDefiant 500>><</link>><<defianttext 500>> <br> <</if>> <<link [[Refuse|Forest Box Refuse]]>><</link>> <br><<if $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<beastCombatInit>><<set $enemytrust -= 40>><<set $enemyanger += 40>><<set $enemyhealthmax to 400>><<set $enemyhealth to 400>> You creep into the cave. After some fumbling through the dark you see the light catch on something. It's the black box. The box in hand, you turn to leave the cave, but something emerges from the darkness. As you turn back around, <<bhe>> descends down onto you. <<set $pubtask2 to 1>> <br><br> <</if>> <<effects>> <<effectsman>> <br> <<beast $enemyno>> <br><br> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Forest Bear Box Molestation Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Forest Bear Box Molestation]]>><</link>></span><<nexttext>> <</if>><<location "forest">><<effects>> <<if $phase is 1>> /* Autoresolve when bestiality disabled */ <<unset $phase>> <<set $pubtask2 to 1>> You creep into the cave. After some fumbling through the dark you see the light catch on something. It's the black box. The box in hand, you turn to leave the cave, but something emerges from the darkness. You turn around to see a mighty bear swiping its claw at you!<<gstress>> <br><br> You narrowly dodge aside, dropping the black box in the process. Irritated, the bear lets out a rumbling growl and tries to strike you again. Fortunately, it's too groggy to aim at you properly. You duck below and pick up the black box again, scrambling out of the cave. <<gstress>><<ggtrauma>><<ggpain>> <br><br> <<tearful>> you lean against a tree to catch your breath.<<silently>><<beastescape>><<beastescape>><</silently>> <br><br> <<else>> <<if $enemyarousal gte $enemyarousalmax>> <<beastejaculation>> Satisfied, the <<beasttype>> retreats into <<bhis>> abode. <<if $monster is 1>> <<bHe>> yawns, giving <<bhis>> hairy chest one last scratch before returning to <<bhis>> slumber. <</if>> <<elseif $enemyhealth lte 0>> <<if $monster is 1>> The <<beasttype>> recoils in pain, turning away from you. <<bHe>> covers <<bhis>> wrist with <<bhis>> hand, before fleeing deeper into <<bhis>> abode. <<else>> The <<beasttype>> turns away from you and flees deeper into its abode. <</if>> <</if>> <br><br> <<tearful>> you pick up the box again and leave the cave. <br><br> <<clotheson>> <<endcombat>> <</if>> <<wearProp "black box">> <<link [[Next|Forest]]>><<set $eventskip to 1>><<handheldon>><</link>><<if $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<maninit>> <<if $phase is 1>> <<set $enemytrust -= 40>> <<elseif $phase is 2>> <<set $enemyanger += 40>><<set $enemytrust -= 100>><<set $enemyhealth -= 100>> You stand still, waiting until they draw close. With their guard down, you stomp on the <<person2>><<persons>> foot and smack <<his>> face, sending <<him>> reeling. <<person1>>The <<person>> is not amused. "Stupid slut. You'll pay for that." <br><br> <</if>> <<elseif $sexstart is 1>> <<set $sexstart to 0>> <<set $consensual to 1>> <<neutral 1>> <<maninit>> <<set $enemytrust += 40>> <<promiscuity2>> <</if>> <<effects>> <<effectsman>> <<man>> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Forest Box Molestation Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Forest Box Molestation]]>><</link>></span><<nexttext>> <</if>><<location "forest">><<effects>> "I don't think you quite understand the situation you're in," the <<person1>><<person>> says, now very close. "We're getting what we want." <br><br> <<link [[Next|Forest Box Molestation]]>><<set $phase to 1>><<set $molestationstart to 1>><</link>> <br><<effects>> <<if $finish is 1>> "You're not getting away that easily," the <<person1>><<person>> says. <br><br> <<set $consensual to 0>><<set $finish to 0>> <<link [[Next|Forest Box Molestation]]>><<set $molestationstart to 1>><</link>> <<elseif $enemyarousal gte $enemyarousalmax>> <<ejaculation>> "Here you go," says the <<person1>><<person>>, dropping the box in front of you. "Give Landry our regards." <<tearful>> you collect the box and leave the clearing. <<set $pubtask2 to 1>> <br><br> <<clotheson>> <<endcombat>> <<wearProp "black box">> <<link [[Next|Forest]]>><<set $eventskip to 1>><<handheldon>><</link>> <<elseif $enemyhealth lte 0>> The pair recoil in pain and drop the box on the grass. <<tearful>> you seize it and flee the clearing, chased by their angry shouts. <<set $pubtask2 to 1>> <br><br> <<clotheson>> <<endcombat>> <<wearProp "black box">> <<link [[Next|Forest]]>><<set $eventskip to 1>><<handheldon>><</link>> <</if>><<location "forest">><<effects>> <<if $scienceshroomknown isnot 1>> <<set $scienceshroomknown to 1>> <span class="gold">You have discovered a new science project.</span> <</if>> <<if $phase is 0>> <<wearProp "mushroom">> <<set $scienceshroomheart += 1>> You kneel and gather the mushrooms. They smell refreshing. <<ltiredness>><<tiredness -6>> <br><br> <span class="gold">You can add the mushrooms you found to your project in your room or the school library.</span> <br><br> <<else>> <<wearProp "wolfshroom">> <<set $scienceshroomwolf += 1>> You kneel and gather the mushrooms. They smell sweet. <<garousal>><<arousal 600>> <br><br> <span class="gold">You can add the mushrooms you found to your project in your room or the school library.</span> <br><br> <</if>> <<link [[Next|Forest]]>><<handheldon>><<set $eventskip to 1>><</link>> <br><<location "forest">><<effects>> You follow the lake's offshoot brook carefully. The shoreline is choked with dense foliage, forcing you to shimmy along the steep bank. <br><br> There's sharp declines and sharper rocks pointing downstream. Any further will make for a one-way trip. <br><br> <<lakeicon "waterfall">><<link [[Go upstream towards the lake (0:30)|Lake Waterfall]]>><<pass 30>><<tiredness 6>><</link>><<gtiredness>> <br> <<if $earSlime.forcedCommando isnot undefined and !$worn.under_lower.type.includes("naked") and hasSexStat("exhibitionism", 3)>> <span class="red">The slime in your ear refuses to allow you to leave with <<underwearTypeText>> on.</span> <<else>> <<if $bogProgress gte 1>> <<foresticon "bog">><<link [[Go downstream towards the bog (0:20)|Bog Intro]]>><<set $foresthunt to 0>><<pass 20>><<tiredness 6>><<set $forest to 0>><</link>><<note "One-way" "red">><<gtiredness>> <<else>> <<mysteryicon>><<link [[Explore downstream (0:20)|Bog Intro]]>><<set $foresthunt to 0>><<pass 20>><<tiredness 6>><<set $forest to 0>><</link>><<note "One-way" "red">><<gtiredness>> <</if>> <</if>> <br><br> <<foresticon>><<link [[Forest (0:10)|Forest]]>><<pass 10>><<set $forest to 80>><</link>> <br><<widget "forestmove">> <<if $possessed>> You shamble through the forest. You know where you're going. <<elseif $forestmove is "quickly">> You move as quick as the rough and wooded terrain will allow. Twigs and fallen branches bend and snap beneath your feet. <<elseif $forestmove is "normally">> You walk through the trees. The gentle sounds and scents make for a pleasant journey. <<elseif $forestmove is "carefully">> You sneak through the undergrowth, causing as little disturbance as possible. <<elseif $forestmove is "hobble">> You hobble through the undergrowth, careful not to trip. <<elseif $forestmove is "secretin">> The path you take would be invisible if you didn't know where to look. The trees close in around you. You're much deeper in the forest. <<elseif $forestmove is "secretout">> The path you take would be invisible if you didn't know where to look. You soon hear the sounds of town up ahead. You're near the edge of the forest. <<elseif $forestmove is "quick_search">> You search as quick as the rough and wooded terrain will allow, tearing fallen branches off the ground to observe beneath. <<elseif $forestmove is "normal_search">> You search for anything of value hidden between the trees. <<elseif $forestmove is "careful_search">> <<if $forest gte 50>> You sneak through the undergrowth, searching among dense ferns for anything of value. <<else>> You sneak through the undergrowth, scanning the ground for anything of value. <</if>> <<elseif $forestmove is "road">> You walk along the smooth road, safe from the dangers of the wild. <</if>> <<if Weather.precipitation is "rain">> Thick drops of rain fall around you, gathered by the canopy. <</if>> <<if $forestmove or $possessed>> <br><br> <</if>> <<set $forestmove to 0>> <</widget>> <<widget "forestdeeper">> Go deeper into the forest <br> <<if $worn.feet.type.includes("heels") and !$possessed>> <<heelsicon "hobble">><<link [[Hobble in heels (0:30)|Forest]]>><<set $forestmod to 3>><<set $forest += 5>><<pass 30>><<set $forestmove to "hobble">><<if $foresthunt gte 1>><<set $foresthunt += 2>><</if>><</link>><<gharass>> <<if $town_projects.road gte 4 and $forest lte 24>> <br> <<forestroadicon "deep">><<link [[Follow road (0:10)|Forest]]>><<set $forestmod to 1>><<set $forest += 5>><<set $forestmove to "road">><<pass 10>><<if $foresthunt gte 1>><<set $foresthunt += 1>><</if>><<set $eventskip to 1>><</link>><<noharass>> <</if>> <<else>> <<if !$worn.feet.type.includes("shackle")>> <<runicon>><<link [[Quickly (0:05)|Forest]]>><<set $forestmod to 3>><<set $forest += 5>><<pass 5>><<set $forestmove to "quickly">><<if $foresthunt gte 1>><<set $foresthunt += 0.5>><</if>><</link>><<gharass>> <br> <</if>> <<if $nextPassageCheck is "Forest Blood Deeper">> <span class="nextLink"><<walkicon>><<link [[The lake.|Forest Blood Deeper]]>><<set $forestmod to 1.5>><<set $forest += 5>><<set $forestmove to "normally">><</link>></span> <<else>> <<walkicon>><<link [[Normally (0:10)|Forest]]>><<set $forestmod to 1.5>><<set $forest += 5>><<set $forestmove to "normally">><<pass 10>><<if $foresthunt gte 1>><<set $foresthunt += 1>><</if>><</link>> <</if>> <br> <<sneakicon>><<link [[Carefully (0:30)|Forest]]>><<set $forestmod to 1>><<set $forest += 5>><<pass 30>><<set $forestmove to "carefully">><<if $foresthunt gte 1>><<set $foresthunt += 2>><</if>><</link>><<lharass>> <<if $town_projects.road gte 4 and $forest lte 24>> <br> <<forestroadicon "deep">><<link [[Follow road (0:05)|Forest]]>><<set $forestmod to 1>><<set $forest += 5>><<set $forestmove to "road">><<pass 5>><<if $foresthunt gte 1>><<set $foresthunt += 1>><</if>><<set $eventskip to 1>><</link>><<noharass>> <</if>> <</if>> <</widget>> <<widget "forestsearch">> Search this area <<gtreasure>> <br> <<if !$worn.feet.type.includes("shackle")>> <<runicon>><<link [[Quickly (0:05)|Forest]]>><<set $forest_search to true>><<set $forestmod to 3>><<pass 5>><<set $forestmove to "quick_search">><<if $foresthunt gte 1>><<set $foresthunt += 0.5>><</if>><</link>><<gharass>> <br> <</if>> <<walkicon>><<link [[Normally (0:10)|Forest]]>><<set $forest_search to true>><<set $forestmod to 1.5>><<set $forestmove to "normal_search">><<pass 10>><<if $foresthunt gte 1>><<set $foresthunt += 1>><</if>><</link>> <br> <<sneakicon>><<link [[Carefully (0:30)|Forest]]>><<set $forest_search to true>><<set $forestmod to 1>><<pass 30>><<set $forestmove to "careful_search">><<if $foresthunt gte 1>><<set $foresthunt += 2>><</if>><</link>><<lharass>> <</widget>> <<widget "forestlessdeep">> Go towards town <br> <<if $worn.feet.type.includes("heels") and !$possessed>> <<heelsicon "hobble">><<link [[Hobble in heels (0:30)|Forest]]>><<set $forestmod to 3>><<set $forest -= 5>><<pass 30>><<set $forestmove to "hobble">><<if $foresthunt gte 1>><<set $foresthunt += 2>><</if>><</link>><<gharass>> <<if $town_projects.road gte 4 and $forest lte 25 and $forest gte 1>> <br> <<forestroadicon "town">><<link [[Follow road (0:10)|Forest]]>><<set $forestmod to 1>><<set $forest -= 5>><<set $forestmove to "road">><<pass 10>><<if $foresthunt gte 1>><<set $foresthunt += 1>><</if>><<set $eventskip to 1>><</link>><<noharass>> <</if>> <<else>> <<if !$worn.feet.type.includes("shackle")>> <<runicon>><<link [[Quickly (0:05)|Forest]]>><<set $forestmod to 3>><<set $forest -= 5>><<pass 5>><<set $forestmove to "quickly">><<if $foresthunt gte 1>><<set $foresthunt += 0.5>><</if>><</link>><<gharass>> <br> <</if>> <<if $nextPassageCheck is "Forest Blood Less Deep">> <span class="nextLink"><<walkicon>><<link [[The lake.|Forest Blood Less Deep]]>><<set $forestmod to 1.5>><<set $forest -= 5>><<set $forestmove to "normally">><</link>></span> <<else>> <<walkicon>><<link [[Normally (0:10)|Forest]]>><<set $forestmod to 1.5>><<set $forest -= 5>><<set $forestmove to "normally">><<pass 10>><<if $foresthunt gte 1>><<set $foresthunt += 1>><</if>><</link>> <</if>> <br> <<sneakicon>><<link [[Carefully (0:30)|Forest]]>><<set $forestmod to 1>><<set $forest -= 5>><<pass 30>><<set $forestmove to "carefully">><<if $foresthunt gte 1>><<set $foresthunt += 2>><</if>><</link>><<lharass>> <<if $town_projects.road gte 4 and $forest lte 25 and $forest gte 1>> <br> <<forestroadicon "town">><<link [[Follow road (0:05)|Forest]]>><<set $forestmod to 1>><<set $forest -= 5>><<set $forestmove to "road">><<pass 5>><<if $foresthunt gte 1>><<set $foresthunt += 1>><</if>><<set $eventskip to 1>><</link>><<noharass>> <</if>> <</if>> <</widget>> <<widget "eventforestoutskirts">> <<if $foresthunt lte 0 and npcCanHunt("Ivory Wraith") and $wraith.state and ($wraith.hunt or $wraith.timer gte random(0, 40))>> <<wHunt "forest">> <<else>> <<cleareventpool>> <<addinlineevent "forestoutskirts_hikers">> <<if numberOfEarSlime() and $earSlime.growth gte 80 - ($earSlime.promiscuity * 10)>> You hear a pair up ahead, on the same trail as you. <br><br> <span class="lewd">You feel the slime in your head command you to give yourself to the pair.</span> It promises rewards if you comply and threatens consequences if you do not. <br><br> <<if hasSexStat("promiscuity", 4) and $submissive gte 1900>> <<link [[Submit willingly|Forest Slime Pair Submit willingly]]>><<corruption 3>><<pain -8>><<stress -12>><<trauma -24>><<sub 2>><</link>><<promiscuous4>><<ggcorruption>><<llpain>><<llltrauma>><<llstress>> <br> <</if>> <<link [[Obey|Forest Slime Pair Obey]]>><<corruption 1>><<pain -4>><<stress -6>><<trauma -12>><<sub 2>><</link>><<gcorruption>><<lpain>><<lltrauma>><<lstress>> <br> <<link [[Defy|Forest Slime Pair Defy]]>><<corruption -1>><<pain 8>><<stress 6>><<trauma 6>><<def 1>><</link>><<lcorruption>><<ggpain>><<ggtrauma>><<ggstress>> <br> <<else>> <<if $exposed is 1>> You hear a pair up ahead, on the same trail as you. <<if hasSexStat("exhibitionism", 3)>> You look down at your <<lewdness>> and feel a lewd thrill rush through you. Maybe it wouldn't be so bad if they saw you. <br><br> <<rng>> <<if $rng gte 61>> <<link [[Stick to the trail|Forest Molestation]]>><<set $molestationstart to 1>><</link>><<exhibitionist3>> <br> <<else>> <<link [[Stick to the trail|Forest Avoid]]>><<set $phase to 2>><</link>><<exhibitionist3>> <br> <</if>> <<link [[Avoid them (0:20)|Forest Avoid]]>><<set $phase to 0>><<set $eventskip to 1>><<pass 20>><<if $foresthunt gte 1>><<set $foresthunt += 2>><</if>><</link>> <<else>> You look down at your <<lewdness>> and feel anxious. You'll have to leave the trail or you'll be seen. <br><br> <<link [[Avoid them (0:20)|Forest Avoid]]>><<set $phase to 0>><<set $eventskip to 1>><<pass 20>><<if $foresthunt gte 1>><<set $foresthunt += 2>><</if>><</link>> <</if>> <<elseif $exposed gte 2>> You hear a pair up ahead, on the same trail as you. <<rng>> <<if hasSexStat("exhibitionism", 5)>> You look down at your <<lewdness>> and feel a lewd thrill rush through you. Maybe it wouldn't be so bad if they saw you. <br><br> <<if $rng gte 41>> <<link [[Stick to the trail|Forest Molestation]]>><<set $molestationstart to 1>><</link>><<exhibitionist5>> <br> <<else>> <<link [[Stick to the trail|Forest Avoid]]>><<set $phase to 3>><</link>><<exhibitionist5>> <br> <</if>> <<link [[Avoid them (0:20)|Forest Avoid]]>><<set $phase to 0>><<set $eventskip to 1>><<pass 20>><<if $foresthunt gte 1>><<set $foresthunt += 2>><</if>><</link>> <<else>> You look down at your <<lewdness>> and feel anxious. You'll have to leave the trail or you'll be seen. <br><br> <<link [[Avoid them (0:20)|Forest Avoid]]>><<set $phase to 0>><<set $eventskip to 1>><<pass 20>><<if $foresthunt gte 1>><<set $foresthunt += 2>><</if>><</link>> <</if>> <<else>> You hear a pair up ahead, on the same trail as you. Something about them makes you nervous. <br><br> <<link [[Avoid them (0:20)|Forest Avoid]]>><<set $phase to 0>><<pass 20>><<if $foresthunt gte 1>><<set $foresthunt += 2>><</if>><</link>> <br> <<rng>> <<if $rng gte 81>> <<link [[Stick to the trail|Forest Molestation]]>><<set $molestationstart to 1>><</link>> <br> <<else>> <<link [[Stick to the trail|Forest Avoid]]>><<set $phase to 1>><</link>> <br> <</if>> <</if>> <</if>> <</addinlineevent>> <<addevent "forestwolfspy">> <<addevent "forestwolf" 0.33>> <<addinlineevent "forestoutskirts_safeperson">> <<if Time.dayState is "night">> <<generate1>><<person1>> You see a <<person>> through the trees, leaning against a tree and smoking a cigarette. <<if $exposed gte 1>> You follow a different path, not wanting your <<lewdness>> seen. <<gstress>><<stress 6>> <<else>> <<He>> glances at you as you pass, but doesn't say anything. <</if>> <br><br> <<endevent>> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <<else>> <<generate1>><<person1>> You see a <<person>> through the trees, reaching into a bramble patch. <<He>> holds a basket full of berries in <<his>> other hand. <<if $exposed gte 1>> You follow a deeper path, not wanting your <<lewdness>> seen. <<gstress>><<stress 6>> <<else>> <<He>> waves when <<he>> sees you, and you wave back. <<ltrauma>><<trauma -6>> <</if>> <br><br> <<endevent>> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <br> <</if>> <</addinlineevent>> <<addevent "forestrock" 0.33>> <<addinlineevent "forestoutskirts_treebranch">> You squeeze through a thicket. <<set $stripintegrity to 10>><<set $stripobject to "tree branch">><<stripobject>> <br><br> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <</addinlineevent>> <<if $hypnosis_traits.devotion>> <<addevent "forestcurious" 0.33>> <<addevent "forestcharms" 0.15>> <</if>> <<if $foresthunt lte 0 and npcCanHunt("Gwylan")>> <<set $_gwylanHuntChance to $gwylan?.hunting || 1>> <<addinlineevent "forestgwylanhunt" $_gwylanHuntChance>> /* Gwylan uses unique hunt start chance in shallow forest. */ <<foresthuntstart "Gwylan">> <</addinlineevent>> <</if>> <<if $foresthunt lte 0 and ($hypnosis_traits.devotion gte 2 or $fox gte 6 or $wolfgirl gte 6 or $dryad gte 6) and $gwylan?.ritualMissed and !$weekly.gwylanNoLure>> <<if npcCanHunt("Gwylan") and ["garden", "shop"].includes(gwylanSchedule()) and !Time.isBloodMoon()>> <<set _lureChance to ($hypnosis_traits.devotion / 2) || 0.5>> <<addevent "forestgwylanlure" _lureChance>> <</if>> <<elseif $foresthunt lte 0 and !$weekly.forestLullaby and ["garden", "shop"].includes(gwylanSchedule()) and (!$gwylanSeen?.includes("ritual_beast") or $gwylan?.ritualMissed)>> <<addinlineevent "forestlullaby" 0.2>> <<set $weekly.forestLullaby to true>> You hear singing in the distance. It's faint, <<if $islander_language gte 100>> but you think it sounds similar to the islander tongue. You only make out a few words, such as 'dear kin,' and 'slumber.' <<else>> but you think it's in a different language. <</if>> <br><br> <<if $gwylanSeen?.includes("ritual_beast")>> After a moment of listening, you realise that it sounds like Gwylan. <<else>> The tune is mesmerising, and <span class="teal">faintly familiar</span>. <</if>> You find your body and mind relaxing. <<stress -3>><<trauma -3>><<lstress>><<ltrauma>> <br><br> <<link [[Next|Forest]]>><<endevent>><<set $eventskip to 1>><</link>> <br> <</addinlineevent>> <</if>> <<if !$daily.gwylan.spy and ["garden", "shop"].includes(gwylanSchedule())>> <<addinlineevent "forestgwylanspy" 0.2>> <<set $daily.gwylan.spy to true>> <<run statusCheck("Gwylan")>> You feel sharp eyes on you. You look up, expecting <<if $syndromeeden gte 1 and $syndromewolves gte 1>> either Eden or the Black Wolf, <<elseif $syndromeeden gte 1>> Eden, <<elseif $syndromewolves gte 1>> the Black Wolf, <<else>> an animal, <</if>> <<if !$gwylanSeen or $hallucinations gte 2 and random(1, 4) is 1 or isGwylanAbsent()>> and instead see three green eyes staring at you through the foliage. The moment you make eye contact with them, the creature behind them darts away. <<stress 12>><<ggstress>> <<else>> <<npc Gwylan>><<person1>> but you see Gwylan instead. <<set _gwylanBeingWeirdChance to 1 + $gwylanSeen.count("ritual_sex") + $gwylanSeen.count("yearning") + $gwylanSeen.count("partners") + $gwylanSeen.count("romance")>> <<if _gwylanBeingWeirdChance gte random(1, 7) or $forestHunter is "Gwylan">> <<He>> is watching you, <<his>> expression mostly blank. <<His>> head tilts in curiosity, before <<he>> takes a single step backwards, vanishing into the trees as if <<he>> were a part of them. <<stress 3>><<gstress>> <<else>> <<Hes>> holding a basket full of berries and herbs. <<He>> smiles and waves at you, before vanishing behind the treeline. <<stress -1>><<lstress>> <<if $hypnosis_traits.devotion gte 3>> <<arousal 500>><<garousal>> <</if>> <</if>> <</if>> <br><br> <<link [[Next|Forest]]>><<endevent>><<set $eventskip to 1>><</link>> <br> <</addinlineevent>> <</if>> <<runeventpool>> <</if>> <</widget>> <<widget "eventforest">> <<if $foresthunt lte 0 and npcCanHunt("Ivory Wraith") and $wraith.state and ($wraith.hunt or $wraith.timer gte random(0, 40))>> <<wHunt "forest">> <<elseif $foresthunt lte 0 and random(1, 12) is 1 and npcCanHunt("forest trio")>> /* 1 in 12 gives a 5% trigger rate when searching at max allure (given the 60% chance of calling eventforest). * Not part of the eventpool, as having a fixed percent chance simplifies game balancing. * This way, adding new encounters to this event pool won't reduce the risk of being hunted. * Also, players don't get punished with an increased hunt rate if they disable some encounter types. */ <<foresthuntstart>> <<else>> <<cleareventpool>> <<outfitChecks>> <<addevent "forestwolfspy" 0.25>> <<addevent "forestboar" 0.20>> <<if _bottomless is false>> <<addevent "ForestBullies" 0.20>> <</if>> <<addevent "forestwolf" 0.33>> <<addevent "forestbear" 0.15>> <<addevent "forestrock" 0.25>> <<addinlineevent "forest_clothingdamage">> You squeeze through a thicket. <<set $stripintegrity to 10>><<set $stripobject to "tree branch">><<stripobject>> <br><br> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <</addinlineevent>> <<addevent "forestcutter" 0.15>> <<set _forestNestUnsafe to true>> <<addevent "forest_nest" 0.15>> <<if $fox_grudge>> <<addevent "fox_grudge" 0.33>> <</if>> <<if $hypnosis_traits.devotion>> <<addevent "forestcurious" 0.15>> <</if>> <<if Weather.isSnow>> <<addevent "forestsnow" 0.33>> <</if>> <<if $foresthunt lte 0 and ($hypnosis_traits.devotion gte 2 or $fox gte 6 or $wolfgirl gte 6 or $dryad gte 6) and $gwylan?.ritualMissed and !$weekly.gwylanNoLure>> <<if npcCanHunt("Gwylan") and ["garden", "shop"].includes(gwylanSchedule()) and !Time.isBloodMoon()>> <<set _lureChance to ($hypnosis_traits.devotion / 3) || 0.3>> <<addevent "forestgwylanlure" _lureChance>> <</if>> <</if>> <<runeventpool>> <</if>> <</widget>> <<widget "eventforestdeep">> <<if $foresthunt lte 0 and npcCanHunt("Ivory Wraith") and $wraith.state and ($wraith.hunt or $wraith.timer gte random(0, 20))>> <<wHunt "forest">> <<elseif $foresthunt lte 0 and random(1, 6) is 1 and npcCanHunt("forest trio")>> /* 1 in 6 gives a 10% trigger rate when searching at max allure (given a 60% chance of calling eventforestdeep). * Not in eventpool: see eventforest. */ <<foresthuntstart>> <<else>> <<cleareventpool>> <<addevent "forestwolfspy2">> <<addinlineevent "deepforest_wolf2">> <<beastNEWinit 2 wolf>> A pair of <<if ($monster isnot 1) or ($NPCList[0].pronoun is "m" and $NPCList[1].pronoun is "m") or ($NPCList[0].pronoun is "f" and $NPCList[1].pronoun is "f")>> <<beastsplural>> <<else>> wolf people - one male, and one female - <</if>> emerge from between the trees, teeth bared. <<if $monster is 1>> "Found you," one barks. "Outnumbered. You're ours now." <</if>> <br><br> <!-- Modified for monster people --> <<if $monster is 1 or $settings.bestialityEnabled>> <<link [[Next|Forest Wolf2]]>><<set $molestationstart to 1>><</link>> <br> <<else>> They chase you through the woods. You run until you can no longer hear them behind you. You're not sure if you outran them or they grew bored. <<physique 2>><<beastescape>><<gtiredness>><<tiredness 8>><<gathletics>><<athletics 4>> <br><br> <<link [[Next (0:20)|Forest]]>><<pass 20>><<endevent>><<set $eventskip to 1>><</link>> <</if>> <</addinlineevent>> <<if $settings.voreEnabled and $settings.bestialityEnabled>> <<addevent "forestsnake" 0.33>> <</if>> <<addevent "forestbear">> <<if $settings.tentaclesEnabled and $settings.voreEnabled and ($hallucinations gte 2 or $backgroundTraits.includes("plantlover"))>> <<addinlineevent "deepforest_slimecontrol">> You walk through a dense thicket. The air is thick with pollen, but you don't see any flowers. You begin to feel lightheaded, and steady yourself against a trunk. A white haze lingers in the air. <br><br> <<if numberOfEarSlime() and $earSlime.growth gte 50>> <span class="lewd">You feel the slime in your head command you to continue moving in a specific direction.</span> It promises rewards if you comply and threatens consequences if you do not. <br><br> <<link [[Obey|Forest Pitcher Slime Obey]]>><<corruption 1>><<pain -4>><<stress -6>><<trauma -12>><<sub 1>><<set $slimeObey to true>><</link>><<gcorruption>><<lpain>><<lltrauma>><<lstress>> <br> <<link [[Defy|Forest Pitcher Slime Defy]]>><<corruption -1>><<pain 8>><<stress 6>><<trauma 6>><<def 1>><</link>><<lcorruption>><<ggpain>><<ggtrauma>><<ggstress>> <br> <<else>> <<link [[Steady yourself until the feeling subsides (0:30)|Forest Pitcher Wait]]>><<pass 30>><<arousal 1200>><<drugs 30>><</link>><<ggarousal>> <br> <<link [[Continue|Forest Pitcher Ignore]]>><</link>><<willpowerdifficulty 1 $willpowermax>> <br> <<link [[Give in|Forest Pitcher Give In]]>><<arousal 500>><<drugs 20>><</link>><<garousal>> <br> <</if>> <</addinlineevent>> <</if>> <<if $settings.plantsEnabled and $settings.tentaclesEnabled and ($hallucinations gte 2 or $backgroundTraits.includes("plantlover"))>> <<addevent "forestplant_kiss">> <<addevent "forestplant_snare">> <<addinlineevent "deepforest_roots">> Something grabs your ankle, causing you to trip and fall. You look back, and see a tree root coiling round you. Several others snake through the undergrowth. <br><br> <<link [[Struggle|Forest Tentacles]]>><<set $molestationstart to 1>><</link>> <br> <<if hasSexStat("deviancy", 5)>> <<link [[Allow them to surround you|Forest Tentacles]]>><<set $molestationstart to 2>><</link>><<deviant5>> <</if>> <</addinlineevent>> <</if>> <<addevent "forestrock">> <<if $settings.bestialityEnabled and $settings.waspsEnabled>> <<addevent "forestwasps">> <</if>> <<addinlineevent "deepforest_clothingdamage">> You squeeze through a thicket. <<set $stripintegrity to 10>><<set $stripobject to "tree branch">><<stripobject>> <br><br> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <</addinlineevent>> <<set _forestNestUnsafe to true>> <<addevent "forest_nest">> <<if $fox_grudge>> <<addevent "fox_grudge" 0.33>> <</if>> <<if Weather.isSnow>> <<addevent "forestsnow" 0.5>> <</if>> <<runeventpool>> <</if>> <</widget>> <<widget "eventforestsafe">> <<cleareventpool>> <<if playerRutMinArousal()>> <<addinlineevent "safeforest_wolfhowl_rut">> You hear a wolf howl in the distance. The sound is deep and rumbling. <<if $wolfgirl gte 3>> It stirs something primal in your body. You're desperate to answer this call. <<garousal>><<arousal 1000>> <<elseif $sciencetrait gte 3 and $awareness gte 100>> You remember learning about the local species' rut and oestrus period with Sirris. Best not to linger. <<gstress>><<stress 10>> <<else>> You don't know why but you think the wolves sound different. <<gstress>><<stress 1>> <</if>> <br><br> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <br> <</addinlineevent>> <<else>> <<addinlineevent "safeforest_wolfhowl">> You hear a wolf howl in the distance. <<if $wolfgirl gte 3>> <<garousal>><<arousal 600>> <<else>> <<gstress>><<stress 1>> <</if>> <br><br> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <br> <</addinlineevent>> <</if>> <<addinlineevent "safeforest_easytrail" 0.33>> You find a trail which makes the going a little easier. <<lstress>><<stress -2>> <br><br> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <br> <</addinlineevent>> <<addinlineevent "event_ambient">> <<eventAmbient>> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <br> <</addinlineevent>> <<if $forest lte 60>> <<addevent "forestriver" 0.33>> <<else>> <<addinlineevent "safeforest_deer" 0.33>> A breeze caresses your face as you enter a clearing. Stood in the middle is a deer. It stops feeding when it notices you, but doesn't move. <br><br> <<link [[Approach|Forest Deer]]>><</link>> <br> <<link [[Ignore|Forest]]>><<set $eventskip to 1>><</link>> <br> <</addinlineevent>> <</if>> <<if $halloween is 1 and Time.monthDay is 31 and !$halloween_lake>> <<addevent "halloween_lake_invite" 1000>> <</if>> <<runeventpool>> <</widget>> <<widget "eventforestitem">> <<rng>> <<if $rng lte 25>> /* Not part of the eventpool, as having a fixed percent chance simplifies game balancing. * This way, adding new encounters and items to the event pool won't change the difficulty of * mushroom-hunting between game versions. * Similarly, players modifying their toggles (eg the bees toggle, here) won't affect the mushroom drop rate. * * Note that other items in the pool will still be affected: so within the event pool, * the forest gem drop chance is 1:11 because of the bees event, while * the dagger and arrow are 1:7 as the bee event is not in their eventpool. * Multiplying that by 0.75 (not a mushroom) and 0.4 (searching), the overall chance * of getting a museum item each time you search is 2.7% in the deep forest, 4.3% elsewhere. */ <<mushroompick>> <<exit>> <</if>> <<cleareventpool>> /* To calculate the overall odds of getting these when searching or walking, multiply by: * 0.75% (not a mushroom) * (0.2 for walking or 0.4 for searching) * odds within the event pool*/ <<addevent "forestgather" 4>> <<addevent "forest_nest" 1>> <<if $forest lte 20>> <<addevent "forestarrow" 2>> <<elseif $forest lte 50>> <<addevent "forestdagger" 2>> <<else>> <<addevent "forestgem" 2>> <<addinlineevent "eventforestitem_bees" 4>> <<if $settings.bestialityEnabled and $settings.beesEnabled>> You hear a gentle buzz up ahead. A large beehive hangs from a tree. Workers fly in and out in a quest for pollen. The honey would be valuable. <br><br> <<if currentSkillValue('tending') gte 800>> <<if pcAreArmsBound("both")>> <span class="red">Both of your arms are bound</span>, so you are unable to harvest honeycomb. <<else>> <<tendingicon "wild_honeycomb">><<link [[Harvest honeycomb (0:20)|Forest Honey Pick]]>><<pass 20>><</link>><<tendingdifficulty 800 1100>> <</if>> <br> <<else>> <span class="blue">You need a higher tending skill to harvest wild honeycomb.</span> <br> <</if>> <<getouticon>><<link [[Leave|Forest]]>><<set $eventskip to 1>><</link>> <br> <<else>> /* This event must exist whether or not $beedisable, so changing toggles won't affect drop rates. */ You take a moment to scramble over a fallen tree, and continue uneventfully. <br><br> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <</if>> <</addinlineevent>> <</if>> <<runeventpool>> <</widget>> <<widget "forestwolfspy">> A pair of eyes stares out from the darkness beneath a fern. <<gstress>><<stress 6>> <br><br> <<beastNEWinit 1 wolf>> <!-- Modified for monster people --> <<if numberOfEarSlime() and ($settings.bestialityEnabled or $monster is 1) and ($earSlime.growth gte 80 - ($earSlime.deviancy * 10))>> <span class="lewd">You feel the slime in your head command you to drop to all fours.</span> It promises rewards if you comply, and threatens consequences if you do not. <br><br> <<if hasSexStat("deviancy", 4) and $submissive gte 1900>> <<link [[Submit willingly|Forest Slime Wolf Submit willingly]]>><<corruption 3>><<pain -8>><<stress -12>><<trauma -24>><<sub 2>><</link>><<deviant4>><<ggcorruption>><<llpain>><<llltrauma>><<llstress>> <br> <</if>> <<link [[Obey|Forest Slime Wolf Obey]]>><<corruption 1>><<pain -4>><<stress -6>><<trauma -12>><<sub 1>><</link>><<gcorruption>><<lpain>><<lltrauma>><<lstress>> <br> <<link [[Defy|Forest Slime Wolf Defy]]>><<corruption -1>><<pain 8>><<stress 6>><<trauma 6>><<def 1>><</link>><<lcorruption>><<ggpain>><<ggtrauma>><<ggstress>> <br> <<else>> <<if hasSexStat("deviancy", 2) and ($settings.bestialityEnabled or $monster is 1)>> <<link [[Adopt mating posture|Forest Wolf Mate]]>><</link>><<deviant2>> <br> <</if>> <<if $wolfgirl gte 6>> <<link [[Howl|Forest Howl]]>><<endevent>><<stress -12>><<trauma -6>><<set $phase to 0>><</link>><<ltrauma>><<lstress>><<wolfgirl>> <br> <</if>> <<link [[Continue|Forest]]>><<endevent>><<if $foresthunt gte 1>><<set $foresthunt += 1>><</if>><<set $eventskip to 1>><</link>> <br> <</if>> <</widget>> <<widget "forestwolfspy2">> Two pairs of eyes stare out from the darkness between the trees. <<gstress>><<stress 6>> <br><br> <<beastNEWinit 2 wolf>> <<if hasSexStat("deviancy", 3) and ($settings.bestialityEnabled or $monster is 1)>> <<link [[Adopt mating posture|Forest Wolf Mate2]]>><</link>><<deviant3>> <br> <</if>> <<if $wolfgirl gte 6>> <<link [[Howl|Forest Howl]]>><<endevent>><<stress -12>><<trauma -6>><<set $phase to 1>><</link>><<ltrauma>><<lstress>><<wolfgirl>> <br> <</if>> <<link [[Continue|Forest]]>><<endevent>><<if $foresthunt gte 1>><<set $foresthunt += 1>><</if>><<set $eventskip to 1>><</link>> <br> <</widget>> <<widget "forestcutter">> <<generate1>><<person1>> You hear a steady noise up ahead. As you get closer, you see a <<person>> chopping a tree. <<if $exposed gte 1>> You crouch behind a bush to conceal your <<nudity>>. <br><br> <<if $exposed gte 2>> <<if hasSexStat("exhibitionism", 5)>> <<link [[Let <<him>> see you|Forest Cutter Exhibitionism]]>><<set $phase to 2>><</link>><<exhibitionist5>> <br> <</if>> <<else>> <<if hasSexStat("exhibitionism", 3)>> <<link [[Let <<him>> see you|Forest Cutter Exhibitionism]]>><<set $phase to 1>><</link>><<exhibitionist3>> <br> <</if>> <</if>> <<link [[Sneak around|Forest]]>><<endevent>><<set $eventskip to 1>><</link>> <br> <<else>> <<He>> waves at you. <br><br> <<link [[Approach|Forest Cutter]]>><</link>> <br> <<link [[Wave back and continue on|Forest]]>><<stress -12>><<set $eventskip to 1>><<endevent>><</link>><<lstress>> <br> <</if>> <</widget>> <<widget "forestsnake">> You round a tree and come face to face with a pair of eyes, hovering just inches from your face. All strength drains from your muscles, and you collapse to the ground. The snake slithers onto the forest floor. <<set $trance to 1>> <br><br> <<link [[Next|Forest Snake]]>><<set $molestationstart to 1>><</link>> <br> <</widget>> <<widget "ForestBullies">> On the path ahead you spot a group of your classmates lurking off the trail slightly. They look like they are up to no good. <br><br> <<link [[Go around (0:20)|Forest]]>><<pass 20>><<set $eventskip to 1>><</link>> <br> <<link [[Walk by them|Forest Bully Walk]]>><</link>> <br> <</widget>> <<widget "forestboar">> <<beastNEWinit 1 boar>><<person1>> You hear the crunch of branches, then the rustle of leaves, and a snort. A <<beasttype>> fast approaches. <br><br> <<if $monster is 1>> <<bHe>> bursts through a fern, and doesn't slow down. "My territory," <<bhe>> grunts, changing trajectory and speeding up. "Trespasser!" <<bHe>> charges right at you! <<else>> <<bHe>> bursts through a fern, and doesn't slow down. <<bHe>> changes trajectory and speeds up, charging right at you! <</if>> <br><br> <<if $settings.bestialityEnabled or $monster is 1>> <<link [[Brace|Forest Boar Brace]]>><</link>> <br> <<link [[Dodge|Forest Boar Dodge]]>><</link>><<dancedifficulty 1 600>> <br> <<else>> You leap from the creature's path, dodging it but landing in a thorny bush. The creature rushes into the forest, unconcerned with you.<<beastescape>> <br><br> <<link [[Next|Forest]]>><<set $eventskip to 1>><<endevent>><</link>> <br> <</if>> <</widget>> <<widget "forestbear">> You see fresh bear prints in the dirt. <br><br> <<beastNEWinit 1 bear>> <<if $foresthunt gte 1>> You feel whatever's hunting you draw closer. <br><br> <</if>> <<link [[Take a detour (0:30)|Forest]]>><<endevent>><<pass 30>><<if $foresthunt gte 1>><<set $foresthunt += 2>><</if>><<set $eventskip to 1>><</link>> <br> <!-- Modified for Monster People --> <<if random(1, 5) is 5 and ($settings.bestialityEnabled or $monster is 1)>> <<link [[Ignore them|Forest Bear Molestation]]>><<set $molestationstart to 1>><</link>> <br> <<else>> <<link [[Ignore them|Forest]]>><<endevent>><<set $eventskip to 1>><</link>> <br> <</if>> <</widget>> <<widget "forestwolf">> <<beastNEWinit 1 wolf>> <!-- Modified for monster people --> A lone <<beasttype>> emerges from between the trees, teeth bared. <<if $monster is 1>> <<if $forest lt 50>> "Found you," <<bhe>> barks. "Mine." <<else>> "Prey. No struggle." <</if>> <</if>> <br><br> <<if $monster is 1 or $settings.bestialityEnabled>> <<link [[Next|Forest Wolf]]>><<set $molestationstart to 1>><</link>> <br> <<else>> It chases you through the woods. You run until you can no longer hear it behind you. You're not sure if you outran it or it grew bored. <<beastescape>><<gtiredness>><<tiredness 4>><<gathletics>><<athletics 2>><<silently>><<physique 1>><</silently>> <br><br> <<link [[Next (0:20)|Forest]]>><<pass 20>><<set $eventskip to 1>><<endevent>><</link>> <</if>> <</widget>> <<widget "forestspider">> You're walking across the top of a dell when the ground gives way. Your stomach lurches as you tumble down the slope. <<if $rng gte 71 and $settings.spidersEnabled>> You come to a sudden stop. It takes a moment to get your bearings, as it feels like you're suspended in the air. You try to move, but cannot. You glance around, and realise you're <span class="red">stuck to a giant web.</span> <<gtrauma>><<gstress>><<trauma 6>><<stress 6>> <br><br> You feel movement elsewhere on the web. Above you. You look up. Many eyes look back. The giant spider creeps closer. <br><br> <<else>> You come to a rest at the bottom, unhurt. That could have been fun, if it wasn't so scary. <<gstress>> <br><br> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <br> <</if>> <</widget>> <<widget "forestrock">> <<if $worn.feet.type.includes("naked") or $worn.feet.type.includes("shackle")>> Your bare foot steps on a hard and jagged rock. It doesn't hurt much, but the shock makes you lose your footing and you tumble into a fern. <<gstress>><<gpain>><<stress 6>><<pain 6>> <br><br> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <br> <<else>> The ground here is covered by hard and jagged rocks. They're hard to spot within the grass, but your $worn.feet.name hold up. <br><br> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <br> <</if>> <</widget>> <<widget "forestwasps">> You hear a buzzing in the surrounding trees. <<if $settings.analEnabled>> It's loudest behind you, but before you can turn, a dark shape shoots from the canopy and lands on your <<bottom>>. <<else>> Two shapes drop from the canopy, and fly towards you. <</if>> <br><br> <<if hasSexStat("deviancy", 4) and $exposed lt 2>> <<link [[Strip clothes|Forest Wasps Strip]]>><</link>><<deviant4>> <br> <</if>> <<link [[Freeze|Forest Wasps]]>><<set $struggle_start to 1>><</link>> <br> <</widget>> <<widget "forestplant_kiss">> <<generatePlant1>><<person1>> "Hi there!" You hear a voice beside you. A <<person "normal">> stands by a bush of tangled vines, waving at you cheerfully. <<He>> has <<plant_details>> scattered throughout <<his>> hair, and <<hes>> completely naked. <<arousal 600>><<garousal>> <br><br> "Cuties like you don't usually come this far into the forest," <<he>> says. "It's dangerous this deep. <<if $liquidoutsidecount gte 25>> I'd ask if you made it through alright, but..." <<He>> eyes up the lewd fluids covering your body. "Yeah, you've had some fun." <<else>> Hope you didn't run into any trouble. That'd be awful." <</if>> <br><br> The <<person "normal">> thinks for a moment, before smiling. "Hey, before you go, how about a kiss? Y'know, for good luck." <<He>> closes <<his>> eyes and leans forward, tapping <<his>> finger to <<his>> lips. <br><br> <<if $backgroundTraits.includes("plantlover") and $nectar_timer lte 14>> <span class="pink">You know <<hes>> a <<personsimple>>. You can smell the nectar on <<his>> lips from here.</span> Your heart races, and you can barely think. You need <<his>> nectar. You need more of the sweet, intoxicating nectar. <br><br> <<link [[Kiss <<him>>|Forest Plant Kiss]]>><</link>><<promiscuous1>><<kissvirginitywarning>> <br> <<link [[Refuse|Forest Plant Kiss Refuse]]>><<stress 12>><</link>><<ggstress>> <<else>> <<link [[Kiss <<him>>|Forest Plant Kiss]]>><</link>><<promiscuous1>><<kissvirginitywarning>> <br> <<link [[Refuse|Forest Plant Kiss Refuse]]>><</link>> <</if>> <</widget>> <<widget "forestplant_snare">> <<generatePlant1>><<person1>> <<if currentSkillValue('skulduggery') gte random(200,700)>> You <span class="green">notice something out of the corner of your eye</span>, and look down. A snare trap made of vines is hidden in the ground. A vine leads across the ground into a nearby bush. <br><br> <<link [[Step over it|Forest Plant Snare]]>><<set $phase to 0>><</link>> <br> <<link [[Purposefully step in it|Forest Plant Snare]]>><<set $phase to 1>><<control 35>><</link>><<gcontrol>> <<else>> You're walking through the forest when <span class="red">a snare trap circles around your legs</span>. It tightens and pulls you to the ground, splitting off to pull your legs apart. It looks like it's made out of vines. <br><br> A <<person "normal">> with <<plant_details>> in <<his>> hair and <span class="purple">writhing vines trailing behind <<him>></span> runs up to you from out of a bush. "Got one!" the <<person>> crows. "And I only waited six hours. I'm pretty much a trapping pro." <<He>> licks <<his>> lips and moves toward you, wiggling <<his>> fingers lewdly. <br><br> <<link [[Next|Forest Plant Sex]]>><<set $molestationstart to 1>><<set $leftleg to "bound">><<set $rightleg to "bound">><</link>> <</if>> <</widget>> <<widget "forestdagger">> <<wearProp "dagger">> You tread on something hard. You kneel and pull it from the forest detritus. It's an ancient dagger, worn beyond use. A collector might pay for this. <br><br> <<set $antiquemoney += 40>><<museumAntiqueStatus "antiqueforestdagger" "found">> <<link [[Next|Forest]]>><<handheldon>><<set $eventskip to 1>><</link>> <br> <</widget>> <<widget "forestgem">> <<wearProp "forest gem">> Something glints at the base of a tree stump. You tug it free. A calmness falls over you. <<lstress>><<stress -3>> <br><br> It's a translucent green gemstone. A collector might pay for it. <br><br> <<set $antiquemoney += 100>><<museumAntiqueStatus "antiqueforestgem" "found">> <<link [[Next|Forest]]>><<handheldon>><<set $eventskip to 1>><</link>> <br> <</widget>> <<widget "forestarrow">> <<wearProp "arrow">> You spot a decaying metal shard amongst the fallen bark at your feet. It's an arrowhead. A collector might pay for it. <br><br> <<set $antiquemoney += 20>><<museumAntiqueStatus "antiqueforestarrow" "found">> <<link [[Next|Forest]]>><<handheldon>><<set $eventskip to 1>><</link>> <br> <</widget>> <<widget "foresthuntstart">> <<if _args[0] && npcCanHunt(_args[0])>> /* Override argument, only use if you're certain the NPC can hunt the player */ <<set $_hunters to [_args[0]]>> <<else>> <<set $_hunters to []>> <<if npcCanHunt("Eden")>> <<set $_hunters.push("Eden")>> <</if>> <<if npcCanHunt("Black Wolf")>> <<set $_hunters.push("Black Wolf")>> <</if>> <<if npcCanHunt("Ivory Wraith")>> <<set $_hunters.push("Ivory Wraith")>> <</if>> <<if npcCanHunt("Gwylan")>> <<set $_hunters.push("Gwylan")>> <</if>> <</if>> <<if $_hunters.length is 0>> /* No hunters, meaning the outside case to call foresthuntstart is faulty or npcCanHunt broke. */ A chill runs up your spine, a warning from some primal instinct. <span class="red">Something is hunting you.</span> <br><br> ...and that feeling then immediately fades, as there's no one around to hunt you. <span class='red'>This is a bug. Please post a bug report.</span> <br><br> <<link [[Next|Forest]]>><<endevent>><<set $eventskip to 1>><</link>> <br> <<else>> /* Pick an available hunter. */ <<set $forestHunter to $_hunters.pluck()>> <<if $forestHunter is "Ivory Wraith">> /* Wraith has its own handler for hunt starting. */ <<wHunt "forest">> <<else>> /* If the player doesn't have special senses, the hunt will be shorter as it took them longer to realise they were being hunted. */ <<if !hasSharpSenses()>> A chill runs up your spine, a warning from some primal instinct. <span class="red">Something is hunting you.</span> <<else>> <<if hasSharpSenses("instincts")>> A chill runs up your spine, a warning from your <span class="green"><<= hasSharpSenses("instincts")>></span>. <span class="red">Something is hunting you.</span> <<else>> A chill runs up your spine, a warning from some primal instinct. Your <span class="green"><<= hasSharpSenses()>></span> catch the signs easily. <span class="red">Something is hunting you.</span> <</if>> <</if>> <br><br> <<set $foresthunt to 1>> <<if !hasSharpSenses()>> <<set $foresthunt += 2>> <</if>> <<if $forestHunter is "Gwylan">> <<run statusCheck("Gwylan")>> <<if $gwylan and isGwylanAbsent() isnot "nobody" and $gwylan?.hunting gte 2 and ($islander_language gte 100 or hasSharpSenses())>> <<set $gwylan.lureSong to 1>> <<elseif $gwylan>> <<set $gwylan.lureSong to 0>> <</if>> <<if $forest lte 25>> /* If hunt starts in forest outskirts, Gwylan starts much closer to the player */ <<set $foresthunt += 3>> <<else>> <<set $foresthunt += 1>> <</if>> <<if _gwylanStatus?.includes("heat")>> <<set $foresthunt += 1>> <</if>> <</if>> <<link [[Next|Forest]]>><<endevent>><<set $eventskip to 1>><</link>> <br> <</if>> <</if>> <</widget>> <<widget "foresthunt">> <<set $foresthunt to 0>> <<if $wraith.hunt>> <<set $wraith.hunt to 0>> <<if $location is "forest">> <<set $wraith.exit to "forest">> <<elseif $location is "lake_ruin">> <<set $wraith.exit to "lake_ruin">> <<else>> <<set $wraith.exit to "lake">> <</if>> <<wraithCaught>> <<elseif $forestHunter is "Black Wolf">> <!-- Modified for monster people --> <<npc "Black Wolf">>/*<<beastNNPCinit>>*/ <<if playerNormalPregnancyType() isnot "wolf" and isPregnancyEnding()>> The Black Wolf bounds towards you! <<bHe>> observes you for a moment, then howls. <<if $monster is 1>> "Not good place for human birth," <<bhe>> says, <<bhis>> voice tinged with fear. "Come. Hold my fur. I'll take you." <<else>> <<bHe>> turns to face away from the forest, but keeps <<bhis>> gaze fixed on you. <</if>> <br><br> <<link [[Next|Pregnancy Birth Black Wolf Hospital 1]]>><</link>> <br> <<elseif $syndromewolves is 1>> <<if $caveHumanPregnancyDiscovered is 1>> The Black Wolf bounds towards you! <<if $wolfpackharmony gte 12>> <<bHis>> excitement knocks you over as <<bhe>> leaps on top of you and licks your face, then turns and walks several paces away.<<stress -1>><<lstress>> <br><br> <<bHe>> looks back over <<bhis>> shoulder, in the direction of the wolf cave. <<if $monster is 1>> "Good to see you," <<bhe>> says. <<bHe>> looks at your belly, "But <<ppackbrother>> can't return with human cub," <<bhe>> says, disappointed. "We miss you." <<else>> <<bHe>> looks at your belly and whimpers. You can't go back to the cave while carrying a human cub. <</if>> <<else>> <<if $monster is 1>> "<<pPackbrother>> still with human cub!" <<bhe>> barks. "Leave, now!" <<else>> <<bHe>> growls at you. You think <<bhe>> wants you to leave <<bhis>> territory. <</if>> <<stress 1>><<gstress>> <</if>> <br><br> <<link [[Continue|Forest]]>><<endevent>><<set $eventskip to 1>><</link>> <<elseif $wolfpacktrust gte 24>> The Black Wolf bounds towards you! <<bHis>> excitement knocks you over as <<bhe>> leaps on top of you and licks your face, then turns and walks several paces away.<<stress -1>><<lstress>> <br><br> <<bHe>> looks back over <<bhis>> shoulder, in the direction of the wolf cave. <<if $monster is 1>> "Good to see you," <<bhe>> says. "Not safe here. Cold, dark. Come home." <</if>> <br><br> <<link [[Return to wolf cave (0:30)|Wolf Cave Clearing]]>><<endevent>><<pass 30>><</link>> <br> <<link [[Continue|Forest]]>><<endevent>><<set $eventskip to 1>><</link>> <br> <<else>> <<if $monster is 1 or $settings.bestialityEnabled>> The Black Wolf bounds towards you! <<if $monster is 1>> "Runaway, no good," <<bhe>> says. <</if>> <br><br> <<link [[Next|Forest Wolf Molestation]]>><<set $molestationstart to 1>><</link>> <<else>> You hear rustling nearby. A pair of glowing yellow eyes watch you from the canopy. The Black Wolf bounds towards you! You flee in terror, and somehow manage to escape.<<beastescape>> <br><br> <<link [[Next|Forest]]>><<endevent>><<set $eventskip to 1>><</link>> <</if>> <</if>> <<elseif $monster is 1 or $settings.bestialityEnabled>> You hear rustling nearby. A pair of glowing yellow eyes watch you from the canopy. <<if $monster is 1>> Tufts of thick black hair cover a nude, towering body from head to toe. With a primal growl, <<bhe>> leaps towards you! <<else>> A monstrous black wolf bounds towards you! <</if>> <br><br> <<link [[Next|Forest Wolf Molestation]]>><<set $molestationstart to 1>><</link>> <<else>> You hear rustling nearby. A pair of glowing yellow eyes watch you from the canopy. A monstrous black wolf bounds towards you! You flee in terror, and somehow manage to escape.<<beastescape>> <br><br> <<link [[Next|Forest]]>><<endevent>><<set $eventskip to 1>><</link>> <br> <</if>> <<elseif $forestHunter is "Gwylan">> <<set $daily.gwylan.noHunt to true>> <<run statusCheck("Gwylan")>> <<if !_gwylanStatus?.includes("met")>> <<npc Gwylan>><<person1>> <<set $gwylan_hunt_intro to true>><<set $daily.gwylan.firstMet to true>> You hear a rustle from the bushes behind you. A pair of sharp green eyes watches you from the shadows. <br><br> You instinctively back away, and end up tripping. You land on your <<bottom>>. <<pain 2>><<gpain>> <br><br> A mousy-haired <<personsimple>> steps out of the gloom, holding a basket full of herbs. An expression of concern is plastered on <<his>> face. "Are you alright? You've been darting around the forest for ages. Are you lost?" <<His>> voice is gentle and cautious. <<Hes>> wearing a green <<if $pronoun is "m">>robe<<else>>dress<</if>>, and a matching pointy hat that reminds you of a <<witch>>'s. <br><br> <<He>> looks about your age, with mousy hair and freckles. "I'm older than I look," <<he>> says, as if reading your mind. <<He>> crouches down, offering <<his>> hand. "<span class="green">I'm Gwylan.</span> Nice to meet you." As <<he>> helps you stand, <<he>> takes your hand in both of <<hers>> and shakes it.<<takeHandholdingVirginity "Gwylan">> <br><br> <<if ($worn.upper.exposed gte 2 or $upperwetstage gte 3) and ($worn.under_upper.exposed gte 1 or $underupperwetstage gte 3)>> <<set _plantUpper to true>> <</if>> <<if ($worn.lower.exposed gte 2 or $lowerwetstage gte 3) and ($worn.under_lower.exposed gte 1 or $underlowerwetstage gte 3)>> <<set _plantLower to true>> <</if>> <<if _plantUpper or _plantLower>> <<He>> notably avoids looking down at your <<lewdness>>. "Hold still a moment, I have just the thing." <<He>> ambles over to the treeline, and digs through the foliage. After a few moments of fiddling around, <<he>> throws something at you. It's a small tangle of plants, shaped into a simple garment. "There! That'll fall apart fast, but it should get you back to town." <<He>> smiles. <<if _plantUpper>><<plantupper>><</if>><<if _plantLower>><<plantlower>><</if>> <br><br> <</if>> <<if _plantUpper or _plantLower>> "If you find yourself needing more clothes, <<if $forest is 0>> I have a shop, right over there." <<He>> points to a strange, castle-like building cradled between the trees. <<else>> I have a shop right by the outskirts of the forest, near the town," <<he>> says. <</if>> <<else>> <<if $forest is 0>> "I have a shop, right over there." <<He>> points to a strange, castle-like building cradled between the trees. <<else>> "I have a shop right by the outskirts of the forest, near the town," <<he>> says. <</if>> <</if>> "I <<if _plantUpper or _plantLower>>also<</if>> sell—" <<He>> pauses. "My grand<<father>> sells—" Another pause. "I sell clothes and knick-knacks there. <span class="blue">Things you won't find in normal shops.</span> Even I don't know what I have in stock!" <<He>> sounds proud. <br><br> <<He>> picks up <<his>> basket and starts to walk towards <<if $forest is 0>>the strange building<<else>>town<</if>>. "Be careful out here. The forest doesn't take kindly to outsiders." <br><br> <<link [[Next|Forest]]>><<endevent>><<set $eventskip to 1>><<set $gwylan.timer.lastSeen to Time.date.timeStamp>><</link>> <br> <<elseif isGwylanAbsent() is "nobody">> <<set $weekly.gwylanNoHunt to true>> <span class="red">Nobody has found you.</span> <br><br> Nobody chases you. <br><br> Nobody catches you. <br><br> Nobody caresses your cheek with a distended, blackened claw. <br><br> Nobody whispers sweet words in your ear. <br><br> Nobody leaves. <<awareness -10>><<lawareness>> <br><br> <<link [[Next|Forest]]>><<endevent>><<set $eventskip to 1>><</link>> <br> <<elseif _gwylanStatus?.includes("aurigaScarConfront")>> <span class="purple">A sharp, crackling pain sears through your chest. The forest changes. The trees are all stripped bare, every branch an antler. A terrible shadow with a false name approaches you.</span> <br><br> A sharp green eye stares through you. You collapse. <br><br> <<link [[Everything fades to black...|Forest Shop Nowhere Passout]]>><<set $forest to 0>><<pass 30>><<endevent>><</link>> <br> <<else>> <<npc Gwylan>><<person1>> <<if $gwylan?.lureSong>> <<if $islander_language gte 100>> <<for $_s to $gwylan.lureSong; $_s lt 6; $_s++>> <<gwylanSong>> <br><br> <</for>> <</if>> <<gwylanSong "end">> <br><br> <</if>> <<run delete $gwylan.lureSong>> <<if hasSharpSenses("instincts")>> You sense something nearby. Movement without noise. Your <span class="green"><<= hasSharpSenses("instincts")>></span> scream. The forest itself is making way for something, and that something is headed right for you. <<else>> You sense something nearby. It's getting closer. <</if>> <br><br> <span class="red">You've been found.</span> <br><br> <<link [[Next|Forest Gwylan Stalk]]>><<set $molestationstart to 1>><</link>> <br> <</if>> <<else>> <<rngWraith 2 "night">> <<if _wraithEvent and (["haunt", "despair"].includes($wraith.state) or $wraith.offspring is "dead") and $syndromeeden is 1>> <<set $wraith.mimic to "Eden">><<npc Eden>><<person1>>Something whizzes past and hits a tree in front of you. You shield your face with your arms and stagger backwards. Something presses against your back, and you hear a <<personsimple>>'s voice. "I've got you now. Don't resist." <br><br> <<link [[Next|Wraith Mimic Fight]]>><<set $wraith.exit to "forest">><<set $molestationstart to 1>><</link>> <br> <<elseif $edenCagedEscape>> <<npc Eden>><<person1>> A hand grabs you by the back of the neck as you look off into the forest. "Told you I'd find you again, didn't I?" It's Eden. <br><br> <<He>> pins you against a tree, rage flashing in <<his>> eyes. <br><br> <<link [[Fight|Eden Caged Caught Resist]]>><<set $fightstart to 1>><</link>> <br> <<link [[Try to pull away|Eden Caged Caught Pull]]>><<def 1>><<npcincr Eden dom -1>><</link>><<physiquedifficulty 2000 18000>><<ldom>> <br> <<link [[Submit (0:30)|Eden Caged Caught]]>><<set $phase to 1>><<pass 30>><<npcincr Eden dom 1>><</link>><<gdom>> <br> <<elseif edenFreedomStatus() gte 2>> <<npc Eden>><<person1>> A hand grabs you by the back of the neck as you look off into the forest. "Where the fuck have you been?" snarls a <<personsimple>>. It's Eden. "I've been worried sick!" <br><br> Before you can speak, Eden begins to drag you away. "I don't want to hear your excuses, either." <<He>> glances scornfully in the direction of the town. "I could figure what you've been up to, anyway. Things aren't going to be pretty when we get home." <br><br> <<link [[Fight|Eden Caged Caught Resist]]>><<set $fightstart to 1>><</link>> <br> <<link [[Try to pull away|Eden Caged Caught Pull]]>><<def 1>><<npcincr Eden dom -1>><</link>><<physiquedifficulty 2000 18000>><<ldom>> <br> <<link [[Submit (0:30)|Eden Caged Caught]]>><<set $phase to 1>><<pass 30>><<sub 1>><<npcincr Eden dom 1>><</link>><<gdom>> <br> <<elseif edenFreedomStatus() is 1>> <<npc Eden>><<person1>> An arm wraps around your neck from behind, while a hand presses against the back of your head. You hear a <<personsimple>>'s voice. "I've been looking for you all over." It's Eden. "Come on, let's go home." <br><br> <<if $edenfreedom is 1 or ($edenfreedom gte 2 and $settings.asphyxiaLevel gte 3)>> <<link [[Resist|Eden Recaptured Resist]]>><<set $fightstart to 1>><</link>> <<else>> <<link [[Resist|Eden Recaptured Resist Normal]]>><<set $molestationstart to 1>><</link>> <</if>> <br> <<link [[Go to the cabin (0:30)|Eden Recaptured]]>><<edenTrackers>><<pass 30>><</link>> <br> <<elseif edenFreedomStatus() is 0>> <<rng>> <<if Time.dayState isnot "night">> <<if $rng gte 51>> <<if currentSkillValue("feetskill") gte 800>> <<npc Eden>><<person1>> You step on a branch. You're almost caught off guard as a rope starts to coil around your legs. <span class="green">You jump out of the way.</span> A half-second later and you'd be left dangling from a tree. <br><br> "Too close," a voice calls out. It's Eden. "Those traps are meant for animals. You should watch where you're going." <<else>> <<npc Eden>><<person1>> You step on a branch. You're caught off guard as a rope snares around your right leg, hoisting you high into the air. It flips you upside down, leaving you dangling from a nearby tree.<<gstress>><<stress 6>> <br><br> You reach up to untie yourself, and spot someone watching. It's Eden. <br><br> "Those traps are meant for animals," <<he>> says. "You should watch where you're going." <<He>> takes your weight in <<his>> arms while <<he>> <<if C.npc.Eden.lust gte 60>> begins to untie you. <<He>> pauses before <<he>> does. <br><br> "We should have some fun first, though, don't you agree?" <<He>> smiles down at you as <<he>> unzips <<his>> pants. <br><br> <<link [[Help Eden pull <<his>> pants down|Forest Eden Snare Oral]]>><<set $phase to 0>><<npcincr Eden love 1>><<npcincr Eden dom 1>><<sub 1>><</link>><<glove>><<gdom>> <br> <<link [[Push Eden away|Forest Eden Snare Oral]]>><<set $phase to 1>><<npcincr Eden love -1>><<npcincr Eden dom -1>><<def 1>><</link>><<llove>><<ldom>> <<exit>> <<else>> unties you, then eases you to the ground. <</if>> <</if>> <<else>> <<npc Eden>><<person1>> You hear leaves rustling. A deer leaps from a nearby bush, with Eden close behind. The latter stops in <<his>> tracks when <<he>> spots you. <br><br> "I almost didn't see you," <<he>> says. "You should get back to the cabin. Where it's safe." <</if>> <<else>> <<if $rng gte 51>> <<npc Eden>><<person1>> A light blazes into your eyes, obscuring your vision. You raise your arm in front of your face. "Can't see a damn thing out here," says a voice. It's Eden. <<He>> points the torch right at you. "What are you doing out at this time?" <<else>> <<npc Eden>><<person1>> An arm wraps around your neck from behind, while a hand presses against the back of your head. You struggle, and the perpetrator releases you. "Sorry," says a voice. It's Eden. "I just wanted to check on you. Why do you look scared?" <</if>> <</if>> <br><br> <<forestCabinReturnLinks>> <<elseif $worn.neck.name is "familiar collar" and $worn.neck.cursed is 1>> A mist billows around you all of a sudden, concealing the forest from view. It thickens, until even the closest trees are hidden, yet you feel safe in its embrace. You hear a distant thunder, almost like a gunshot. It sounds dull, and distant, as if reverberating through the earth. <br><br> A wind blows the mist away as quick as it arrived. Your surroundings are unfamiliar. <span class="green">You no longer feel hunted.</span> <br><br> <<link [[Next|Forest]]>><<endevent>><</link>> <br> <<else>> <<npc Eden>><<person1>> A bullet whizzes past and hits a tree in front of you. You shield your face with your arms and stagger backwards. A cold hard object presses against your back, and you hear a <<personsimple>>'s voice. "I've got you now. Don't resist." <br><br> <<link [[Next|Forest Hunter Molestation]]>><<set $molestationstart to 1>><</link>> <</if>> <</if>> <</widget>> <<widget "eventwolfcave">> <<if $wolfpacktrust gte 12>> <<npc "Black Wolf">>/*<<beastNNPCinit>>*/ The Black Wolf walks up to you and <<if $monster is 1>>kneels<<else>>turns<</if>> until <<bhis>> <<if C.npc["Black Wolf"].gender is "m">>erect $NPCList[0].penisdesc<<else>>wet pussy<</if>> hovers inches away from you. <<bHe>> waits. The other <<wolf_cave_plural>> watch. <<if $monster is 1>>"Accept, and become <<ppackbrother>>.<<print ((playerHeatMinArousal() and (V.player.vaginaExist or canBeMPregnant()) and V.NPCList[0].penis !== "none") ? ' You ready.' : '')>><<print ((playerRutMinArousal() and $NPCList[0].vagina isnot "none") ? " You ready." : '')>>"<</if>> <br><br> <<link [[Take it in hand|Wolf Cave Accept]]>><<set $sexstart to 1>><</link>><<deviant1>> <br> <<if hasSexStat("deviancy", 4)>> <<link [[Take it in mouth|Wolf Cave Accept]]>><<set $phase to 1>><<set $sexstart to 1>><</link>><<deviant4>> <br> <</if>> <<if $wolfgirl gte 6 and hasSexStat("deviancy", 5)>> <<if playerAwareTheyAreInHeat() and $NPCList[0].penis isnot "none" and (($player.vaginaExist and !playerChastity("vagina")) or (canBeMPregnant() and !playerChastity("anus")))>> <<link [[Present your behind|Wolf Cave Accept]]>><<set $phase to 2>><<set $sexstart to 1>><</link>><<deviant5>><<wolfgirl>><<heat>> <br> <</if>> <<if playerRutMinArousal() and $NPCList[0].vagina isnot "none" and !playerChastity("penis")>> <<link [[Playful bite|Wolf Cave Accept]]>><<set $phase to 3>><<set $sexstart to 1>><</link>><<deviant5>><<wolfgirl>><<rut>> <br> <</if>> <</if>> <<link [[Refuse|Wolf Cave Refuse]]>><</link>> <br> <<else>> <<if $rng gte 81>> Most of the pack leave to hunt, only a pair remain to guard you. Now could be your chance to escape. <br><br> <<link [[Try to escape|Forest Wolf Cave Pair]]>><</link>> <br> <<link [[Stay put (0:30)|Forest Wolf Cave Hunt]]>><<pass 30>><</link>><<gstockholm>> <br> <<else>> <<beastNEWinit 1 wolf>> One of the <<beastsplural>> approaches you. <br><br> <<link [[Next|Forest Wolf Cave Molestation]]>><<set $molestationstart to 1>><</link>> <br> <</if>> <</if>> <</widget>> <<widget "cabintime">> <<switch Time.hour>> <<case 6>> <<set _night_length to 1>> <<case 5>> <<set _night_length to 2>> <<case 4>> <<set _night_length to 3>> <<case 3>> <<set _night_length to 4>> <<case 2>> <<set _night_length to 5>> <<case 1>> <<set _night_length to 6>> <<case 0>> <<set _night_length to 7>> <<case 23>> <<set _night_length to 8>> <</switch>> <<pass _night_length hours>> <<if not _args[0]>> /* passing time but not sleeping */ <<tiredness _night_length*(-12)>> <</if>> <</widget>> <<widget "passoutforest">> <<if isPregnancyEnding()>> <<pregnancyPassout "forest">> <<else>> You've pushed yourself too much. <br><br> <<passout>> <<if dangerEvent()>> <<if $rng gte 71 and $forest gte 21 and $settings.plantsEnabled and $settings.tentaclesEnabled and ($hallucinations gte 2 or $backgroundTraits.includes("plantlover"))>> <<link [[Everything fades to black...|Forest Plant Passout]]>><</link>> <<else>> <<foresthunt>> <</if>> <<else>> <<set $foresthunt to 0>> <<ambulance>> <</if>> <</if>> <<pass 1 hour>> <<trauma 6>><<set $stress -= 2000>> <</widget>> <<widget "forestriver">> You come to a fast-flowing river. <<if $foresthunt gte 1>> You might be able to use it to disrupt your trail and escape your pursuer, but it looks dangerous. <</if>> <br><br> <<link [[Swim across|Forest Swim]]>><<set $foresthunt to 0>><</link>><<swimmingdifficulty 1 600>> <br> <<link [[Ignore it|Forest]]>><<set $eventskip to 1>><</link>> <br> <</widget>> <<widget "foresttrunks">> You feel uneasy, as if you're being watched. You scan the forest, but see nothing strange. <br><br> You take another step, and a rumble almost knocks you off your feet. A tree in front of you creaks and groans as a shiver travels up its trunk. The branches curl upwards, as if pulled by an unseen giant. They entwine with one another, forming a cage. <br><br> With a crack, the trunk bends in your direction, and the cage of branches lunges for you. <br><br> <<link [[Run|Forest Trunks Run]]>><</link>><<willpowerdifficulty 1 1000>> <br> <<link [[Cower|Forest Trunks Cower]]>><</link>> <br> <<if $wolfgirl gte 6>> <<link [[Howl|Forest Trunks Howl]]>><</link>><<wolfgirl>> <br> <</if>> <</widget>> <<widget "mushroompick">> <<if $forest lte 50>> <<set _forest_shrooms to 1>> <<else>> <<set _forest_shrooms to 2>> <</if>> You find a cluster of edible mushrooms growing at the base of a <<if _forest_shrooms is 2>>decaying <</if>> tree. <br><br> <<if _forest_shrooms is 2>> <<if currentSkillValue('science') gte 200>> You remember from school that they're called <<tendingicon "wolfshroom">> wolfshrooms, and were prized by warriors in ancient times. <br><br> <</if>> <</if>> <<if _forest_shrooms is 1>> <<if $scienceshroomheart lt 5>> <<tendingicon "mushroom">><<link [[Take for science project (0:02)|Forest Science Shroom]]>><<pass 2>><<set $phase to 0>><</link>> <br> <</if>> <<tendingicon "mushroom">><<link [[Search for saleable specimens (0:20)|Forest Mushrooms Pick]]>><<pass 20>><</link>><<tendingdifficulty 1 300>> <br> <<tendingicon "mushroom">><<link [[Eat one (0:01)|Forest Mushrooms]]>><<stress 3>><<pass 1>><<tiredness -6>><</link>><<gstress>><<ltiredness>> <<else>> <<if $scienceshroomwolf lt 5>> <<tendingicon "wolfshroom">><<link [[Take for science project (0:02)|Forest Science Shroom]]>><<pass 2>><<set $phase to 1>><</link>> <br> <</if>> <<if currentSkillValue('tending') lt 300 and $gwylan?.request.special is "tutorial" and $gwylanTutorialShrooms lt 3>> <<tendingicon "wolfshroom">><<link [[Pick for Gwylan (0:20)|Forest Mushrooms Gwylan Pick]]>><<pass 20>><</link>> <br> <</if>> <<if currentSkillValue('tending') gte 300>> <<tendingicon "wolfshroom">><<link [[Search for saleable specimens (0:20)|Forest Mushrooms2 Pick]]>><<pass 20>><</link>><<tendingdifficulty 300 600>> <br> <<else>> <span class="blue">You need a higher tending skill to pick saleable mushrooms.</span> <br> <</if>> <<tendingicon "wolfshroom">><<link [[Eat one (0:01)|Forest Mushrooms2]]>><<pass 1>><<alcohol 60>><<arousal 3000>><<trauma -3>><<transform wolf 3>><</link>><<garousal>><<ltrauma>> <br> <</if>> <br> <<getouticon>><<link [[Best leave them alone|Forest]]>><<set $eventskip to 1>><</link>> <br> <</widget>> <<widget "forest_nest">> <<if !$forest_nest_intro>> <<set $forest_nest_intro to true>> <<set $forest_nest to {type: 2, fox: 3, eggs: 7}>> <<beastNEWinit 1 fox>> You hear some rustling from a tree up ahead. <<if $anxiety gte 1>>You instinctively hide behind the nearest tree.<<else>>You cautiously approach to take a look.<</if>> <br><br> You spot a fluffy orange tail peeking out from a cluster of branches in the canopy. The soft face of a <<beasttype>> suddenly looks up. There's an egg in <<bhis>> mouth. <br><br> <<bHe>> briefly looks around, before noisily chomping down on the egg. Some of the yolk dribbles down <<bhis>> chin. <<bHe>> reaches into the nest for more, <<if $monster is 1>> grabbing a handful before deftly leaping down from the tree. <<bHe>> puts them in a pile on the ground. <<else>> putting one in <<bhis>> mouth before leaping down from the tree. <<bHe>> begins making a pile of them on the ground. <</if>> <br><br> <i><span class="blue">If you could raid a nest like that, you might be able to sell any unfertilised <<icon "tending/bird_egg.png">> bird eggs you find.</span></i> <br><br> <<link [[Just watch (0:05)|Forest Fox Nest Watch]]>><<pass 5>><<stress -3>><</link>><<lstress>> <br> <<if $harpy gte 6>> <<link [[Challenge|Forest Fox Nest Challenge]]>><</link>><<harpy>> <br> <<else>> <<link [[Challenge|Forest Fox Nest Challenge]]>><</link>><<physiquedifficulty 1 $physiquemax>> <br> <</if>> <<set $skulduggerydifficulty to 300>> <<link [[Sneak up|Forest Fox Nest Sneak]]>><</link>><<skulduggerydifficulty>> <br> <<if $fox gte 6>> <<link [[Chase!|Forest Fox Nest Chase]]>><<set $phase2 to 1>><<stress -6>><<transform fox 1>><</link>><<llstress>><<fox>><<note "No eggs" "red">> <br> <<else>> <<link [[Chase|Forest Fox Nest Chase]]>><<set $phase2 to 1>><<tiredness 6>><</link>><<gtiredness>><<athleticsdifficulty 1 300>><<note "No eggs" "red">> <br> <</if>> <<else>> <<set $forest_nest to {type: 0, fox: 0, bird: 0, eggs: 0}>> <!-- 1 = abandoned nest, 2 = active nest, 3 = fallen nest, 4 = snake nest --> <<rng 4>><<set $forest_nest.type to ($forest lte 50 ? Math.clamp($rng, 1, 3) : Math.clamp($rng, 2, 4))>> <!-- 1 = no fox, 2 = fox, 3 = player aware of fox --> <<if _forestNestUnsafe>> <<set $forest_nest.fox to 2>> <<else>> <<rng 2>><<set $forest_nest.fox to $rng>> <</if>> <<rng>> <<switch $forest_nest.type>> <<case 1>> <<set $forest_nest.eggs to random(1, 3)>> You spot an <span class="purple">abandoned</span> bird's nest in a nearby tree. <<case 2>> <<set $forest_nest.eggs to ($forest gte 50 ? random(7, 14) : random(5, 10))>> You spot a <span class="teal">well-maintained</span> bird's nest in a nearby tree. <<if $forest gt 50>>It sticks out against the decaying branches.<</if>> <<case 3>> <<set $forest_nest.eggs to random(3, 8)>> You spot a large cluster of <<if $forest gt 50>>mud<<else>>twigs<</if>> and foliage on the ground. It looks like a <span class="teal">fallen bird's nest</span>. <<case 4>> <<set $forest_nest.eggs to 0>> You spot a large cluster of <<if $forest gt 50>>mud<<else>>twigs<</if>> and foliage on the ground. It looks like a <span class="teal">fallen bird's nest</span>. <<if currentSkillValue('tending') gte 800>> <<set _snakeKnown to true>> However, thanks to your tending skill, you spot nearby tracks and holes in the ground. You realise <span class="red">it's a snake's nest</span>. <</if>> <</switch>> <br><br> <<if $forest_nest.fox is 2>> <<beastNEWinit 1 fox>> <<if $fox gte 6 or $cat gte 6 or $wolfgirl gte 6>> <<set $forest_nest.fox to 3>> <span class="orange">You smell a <<beasttype>> nearby</span>. You can tell <<bhes>> <<if $NPCList[0].traits.includes("cowardly")>><span class="teal">cowardly</span>. <<elseif $NPCList[0].traits.includes("territorial")>><span class="red">territorial</span>. <<elseif $NPCList[0].traits.includes("clever")>><span class="purple">clever</span>. <<elseif $NPCList[0].traits.includes("friendly")>><span class="green">friendly</span>. <<elseif $NPCList[0].traits.includes("clumsy")>><span class="blue">clumsy</span>. <</if>> <br><br> <<elseif currentSkillValue('skulduggery') gte $NPCList[0].skills.security>> <<set $forest_nest.fox to 3>> <span class="blue">You hear a rustle nearby.</span> Something else is eyeing up the nest, too. <br><br> <</if>> <</if>> <<if $forest_nest.type lte 2>> <<if pcAreArmsBound("both")>> <span class="red">Both of your arms are bound</span>, so you are unable to climb the tree or knock the nest down. <<else>> <<link [[Climb up to the nest|Forest Nest Climb]]>><</link>><<athleticsdifficulty 0 800>> <br> <<link [[Knock the nest down|Forest Nest Throw]]>><<set $forest_nest.eggs -= 4>><<set $forest_nest.type to 3>><</link>><<note "Fewer eggs" "red">> <</if>> <br> <<elseif $forest_nest.type is 3>> <<link [[Search the nest|Forest Nest Search]]>><</link>> <br> <<elseif !_snakeKnown>> <<link [[Search the nest|Forest Nest Snake]]>><</link>> <br> <<elseif _snakeKnown and hasSexStat("deviancy", 4) and $settings.voreEnabled>> <<link [[Present yourself as food|Forest Nest Snake Vore 1]]>><</link>><<deviant4>> <br> <</if>> <<if $forest_nest.fox is 3>> <<link [[Hide and wait (0:05)|Forest Nest Hide]]>><<unset $athleticsSuccess>><<set $forest_nest.eggs -= 2>><<pass 5>><</link>><<note "Fewer eggs" "red">> <br> <</if>> <</if>> <<link [[Leave|Forest]]>><<endevent>><<unset $forest_nest>><<set $eventskip to 1>><</link>> <br> <</widget>> <<widget "fox_grudge">> <<loadNPC 0 "fox_grudge">> <<loadNPC 1 "fox_grudge">> <<loadNPC 2 "fox_grudge">> <<clearNPC "fox_grudge">> <<unset $fox_grudge>> A <<beasttype>> emerges from between the trees. Another one emerges behind you, and a final, larger one appears right in front of you. <span class="red">You recognise <<bhim>></span>. <<bHes>> the one you scared off from a nest. <<if $monster is 1>> "Hold still, <<foxnickname>>. We're going to enjoy this." <</if>> <br><br> <<if $monster is 1 or $settings.bestialityEnabled>> <<link [[Next|Forest Fox Revenge]]>><<set $molestationstart to 1>><</link>> <br> <<else>> They chase you through the woods. You run until you can no longer hear them behind you. You're not sure if you outran them or they grew bored. <<physique 1>><<beastescape>><<gtiredness>><<tiredness 4>><<gathletics>><<athletics 2>> <br><br> <<link [[Next (0:20)|Forest]]>><<endevent>><<pass 20>><<set $eventskip to 1>><</link>> <</if>> <</widget>> <<widget "forestcurious">> <<hypnosisText "For a moment, the forest looks just a little more green.">> The foliage grows with purpose, but isn't tamed. You blink, and it looks normal again. <<hallucinogen 20>><<ghallucinogens>> <br><br> <<link [[Next|Forest]]>><<endevent>><<set $eventskip to 1>><</link>> <br> <</widget>> <<widget "forestcharms">> You come to a small clearing, and spot some strange shapes hanging from the tree branches above. They look like some kind of charms. <br><br> <<if $forestHunter is "Gwylan" and $foresthunt gte 1>> <<set $foresthunt += 1>> <span class="red">You feel whatever's hunting you draw closer.</span> <<elseif $foresthunt gte 2>> <<set $foresthunt -= 1>> <span class="blue">You feel whatever's hunting you slow down.</span> <<else>> You feel safe here, and take a moment to relax. <<stress -1>><<lstress>> <</if>> <br><br> <<link [[Next|Forest]]>><<endevent>><<set $eventskip to 1>><</link>> <br> <</widget>> <<widget "forestgwylanlure">> <<set $weekly.gwylanNoLure to true>> You hear singing <<if $forest lte 15>>close by<<else>>in the distance<</if>>. <br><br> There's something strange, yet familiar, about it. <br><br> <<set $gwylan.lureDistance to Math.clamp($forest, 15, 100)>> <<set $gwylan.lureWill to 0>> <<set $gwylan.lureSong to 1>> <<hypnosisText "The song worms its way into your head,">> making you feel warm. <<if hasSharpSenses("instincts")>> <span class='red'>Your <<= hasSharpSenses("instincts")>> submit and shut down immediately.</span> <<else>> <<set $gwylan.lureWill++>> <</if>> <<drugs 50>><<arousal 600>><<gdrugged>><<garousal>> <br><br> Your turn towards the source. Towards the town. <br><br> The rest of the forest blurs away as the trees part, making a clear path for you to follow. Something comforting and inviting awaits at the end. <br><br> <<link [[Walk towards the singing|Forest Gwylan Lure]]>><<set $phase to "willing">><<stress -1>><<trauma -1>><<arousal 500>><<pass 5>><</link>><<lstress>><<ltrauma>><<garousal>> <br> <<link [[Resist|Forest Gwylan Lure]]>><<set $phase to "resist">><<pass 5>><</link>><<gwylanWillpowerDifficulty>> <br> <</widget>> <<widget "forestgather">> <<set _forest_item to random(1, 2)>> You come to a clearing. A gentle breeze blows against your face, and small, soft plants press beneath your feet. <<if $forest lte 20>> <<if _forest_item is 1>> Lilies grow among the grass and in the shadow of taller plants. <<else>> Ripe apples hang from the branches. <</if>> <<elseif $forest lte 50>> <<if _forest_item is 1>> Wild red rose bushes dot the area. <<else>> Wild pears grow from the trees. <</if>> <<else>> <<if _forest_item is 1>> You spot orchids near the edge, at the base of ancient trees. <<else>> <<if Time.isBloodMoon()>> <span class="red">Red-veined</span> lemons grow from a cluster of small trees. <<else>> Lemons grow from a cluster of small trees. <</if>> <</if>> <</if>> <<lstress>><<stress -2>> <br><br> <<if $worn.upper.exposed gte 2 and $worn.under_upper.exposed gte 1 or $worn.upper.exposed gte 2 and $underupperwetstage gte 3 or $upperwetstage gte 3 and $worn.under_upper.exposed gte 1 or $upperwetstage gte 3 and $underupperwetstage gte 3>> <<foresticon "bush">><<link [[Make a top out of plants and twigs (0:20)|Forest Clearing]]>><<set $phase to 1>><<pass 20>><</link>> <br> <</if>> <<if $worn.lower.exposed gte 2 and $worn.under_lower.exposed gte 1 or $worn.lower.exposed gte 2 and $underlowerwetstage gte 3 or $lowerwetstage gte 3 and $worn.under_lower.exposed gte 1 or $lowerwetstage gte 3 and $underlowerwetstage gte 3>> <<foresticon "bush">><<link [[Make a skirt out of plants and twigs (0:20)|Forest Clearing]]>><<set $phase to 2>><<pass 20>><</link>> <br> <</if>> <<if $forest lte 20>> <<if _forest_item is 1>> <<if !$plants_known.includes("lily")>> <<if $sciencetrait gte 1>> <<icon "tending/lily.png">> <<link [[Search for seeds (0:30)|Forest Lily]]>><<pass 30>><<tending 6>><<set $plants_known.push("lily")>><</link>><<gtending>> <br> <<else>> <span class="blue">A higher science skill would let you harvest lily seeds.</span> <br> <</if>> <</if>> <<if currentSkillValue('tending') gte 100>> <<if pcAreArmsBound("both")>> <span class="red">Both of your arms are bound</span>, so you are unable to pick lilies. <<else>> <<icon "tending/lily.png">> <<link [[Pick lilies (0:20)|Forest Lily Pick]]>><<pass 20>><</link>><<tendingdifficulty 100 400>> <</if>> <br> <<else>> <span class="blue">You need a higher tending skill to pick saleable specimens.</span> <br> <</if>> <<else>> <<if pcAreArmsBound("both")>> <span class="red">Both of your arms are bound</span>, so you are unable to pick apples. <<else>> <<icon "tending/apple.png">> <<link [[Pick apples (0:20)|Forest Apple Pick]]>><<pass 20>><</link>><<tendingdifficulty 1 300>> <</if>> <br> <</if>> <<elseif $forest lte 50>> <<if _forest_item is 1>> <<if !$plants_known.includes("red_rose")>> <<if $sciencetrait gte 2>> <<icon "tending/red_rose.png">> <<link [[Search for seeds (0:30)|Forest Red Rose]]>><<pass 30>><<tending 6>><<set $plants_known.push("red_rose")>><<pain 6>><</link>><<gpain>><<gtending>> <br> <<else>> <span class="blue">A higher science skill would let you harvest red rose seeds.</span> <br> <</if>> <</if>> <<if currentSkillValue('tending') gte 200>> <<if pcAreArmsBound("both")>> <span class="red">Both of your arms are bound</span>, so you are unable to pick roses. <<else>> <<icon "tending/red_rose.png">> <<link [[Pick red roses (0:20)|Forest Red Rose Pick]]>><<pass 20>><</link>><<tendingdifficulty 200 500>> <</if>> <br> <<else>> <span class="blue">You need a higher tending skill to pick saleable specimens.</span> <br> <</if>> <br> <<else>> <<if currentSkillValue('tending') gte 100>> <<if pcAreArmsBound("both")>> <span class="red">Both of your arms are bound</span>, so you are unable to pick pears. <<else>> <<icon "tending/pear.png">> <<link [[Pick pears (0:20)|Forest Pear Pick]]>><<pass 20>><</link>><<tendingdifficulty 100 400>> <</if>> <br> <<else>> <span class="blue">You need a higher tending skill to pick saleable specimens.</span> <br> <</if>> <</if>> <<else>> <<if _forest_item is 1>> <<if !$plants_known.includes("orchid")>> <<if $sciencetrait gte 3>> <<icon "tending/orchid.png">> <<link [[Search for seeds (0:30)|Forest Orchid]]>><<pass 30>><<tending 6>><<set $plants_known.push("orchid")>><</link>><<gtending>> <br> <<else>> <span class="blue">A higher science skill would let you harvest orchid seeds.</span> <br> <</if>> <</if>> <<if currentSkillValue('tending') gte 300>> <<if pcAreArmsBound("both")>> <span class="red">Both of your arms are bound</span>, so you are unable to pick orchids. <<else>> <<icon "tending/orchid.png">> <<link [[Pick orchids (0:20)|Forest Orchid Pick]]>><<pass 20>><</link>><<tendingdifficulty 300 600>> <</if>> <br> <<else>> <span class="blue">You need a higher tending skill to pick saleable specimens.</span> <br> <</if>> <<else>> <<if currentSkillValue('tending') gte 200>> <<if pcAreArmsBound("both")>> <span class="red">Both of your arms are bound</span>, so you are unable to pick lemons. <<else>> <<if Time.isBloodMoon()>> <<icon "tending/blood_lemon.gif">> <<link [[Pick lemons (0:20)|Forest Blood Lemon Pick]]>><<pass 20>><</link>><<tendingdifficulty 200 500>> <<else>> <<icon "tending/lemon.png">> <<link [[Pick lemons (0:20)|Forest Lemon Pick]]>><<pass 20>><</link>><<tendingdifficulty 200 500>> <</if>> <</if>> <br> <<else>> <span class="blue">You need a higher tending skill to pick saleable specimens.</span> <br> <</if>> <</if>> <</if>> <<foresticon>><<link [[Continue|Forest]]>><<set $eventskip to 1>><</link>> <br> <</widget>> <<widget "gwylanitem">> <<print either("trophy","baseball","baseball bat","snow globe","magic 8-ball","ping-pong paddle","chess set","piggy bank","mug","cookie tin","frying pan","backscratcher","pencil case","lunch box","lava lamp","torch","cuckoo clock","Rubix cube","globe","water gun","dictionary","hand mirror","novelty camera","ziplock bag filled with seashells","miniature stepladder","knick-knack of unknown purpose")>> <</widget>> <<widget "slimePunishmentForest">> You feel a jolt of pain as the slime punishes you for defiance. <<corruption -1>><<pain 8>><<stress 6>><<trauma 6>><<def 1>><<lcorruption>><<ggpain>><<ggtrauma>><<ggstress>> <</widget>> <<widget "forestRescueSetup">> /* Eden is available if they're a love interest 50% of the time or if they've never rescued the player before Gwylan is available based on how deep in the forest the player is, with conditions changing how deep they can rescue from If Gwylan is Nobody, they're available as Nobody regardless of where in the forest the player is */ <<set $canRescue to []>> <<run statusCheck("Gwylan")>> <<if isGwylanAbsent() is "nobody">> <<set $canRescue.push("Nobody")>> <<elseif $forest lte gwylanForestRescueRange() and (!C.npc.Gwylan.init or C.npc.Gwylan.state is "active") and !_gwylanStatus?.includes("wounded") and !$npc.includes("Gwylan") and ["shop","garden","sleep"].includes(gwylanSchedule())>> <<set $canRescue.push("Gwylan")>> <</if>> <<if (isLoveInterest("Eden") and (random(1, 2) is 2 or $eden_rescue isnot 1)) and !$npc.includes("Eden")>> <<if !$npc.includes("Black Wolf")>> <<set $canRescue.push("Eden")>> <<elseif $npc.includes("Black Wolf") and $canRescue.includes("Gwylan")>> /* Eden only rescues against the Black Wolf if Gwylan also can, for balance purposes */ <<set $canRescue.push("Eden")>> <</if>> <</if>> <<set $rescue to $canRescue.length gte 1 ? 1 : 0>> <</widget>> <<widget "forestRescueCheck">> <<if $alarm is 1>> <<if $rescue is 1>> <<if $canRescue.length gt 1>> <<set $_noText to true>> <<elseif $canRescue.includes("Gwylan") and ["Eden","Black Wolf","bear"].includes(_args[0]) and !(isGwylanAbsent() is "nobody")>> <<if $gwylanSeen?.includes("ritual_sex")>> <span class="forest-green">You hear rustling in the trees nearby.</span> <<else>> <<gwylanRescueStats false _args[0]>><<set $rescue to 0>> <<if _args[0] is "Eden">> <<if C.npc.Eden.name_known>> <<set $_assailant to "Eden">> <<else>> <<set $_assailant to "the <<= C.npc.Eden.title>>">> <</if>> <<elseif _args[0] is "Black Wolf">> <<set $_assailant to "the Black Wolf">> <<else>> <!-- Currently only applies to bears --> <<set $_assailant to "the <<beasttype>>">> <</if>> You see <<gwylanDesc>> burst through the treeline, alarmed by your shout. <<nnpc_He "Gwylan">> takes one look at $_assailant, <span class="red">then turns and runs away.</span> <</if>> <<else>> <<set $_noText to true>> <</if>> <<else>> <<if $gwylan_rescue is 1>> <span class="red">Gwylan does not come to help you<<if _args[0] isnot "Eden" and $syndromeeden is 1>>, and Eden must not be in the area<</if>>.</span> <<else>> <span class="red">You're too far from town for anyone to hear you<<if _args[0] isnot "hunter" and $syndromeeden is 1>>, and Eden must not be in the area<</if>>.</span> <</if>> <</if>> <<else>> <<set $_noText to true>> <</if>> <<if $alarm is 1 and $rescue is 0>> <<set $alarm to 0>> <</if>> <<if !$_noText>> <br><br> <</if>> <</widget>> <<widget "forestRescue">> <<set $rescued++>> <<if $NPCList[0].fullDescription is "Black Wolf">> <<set $_type to "Black Wolf">> <<elseif $NPCList[0].fullDescription is "Eden">> <<set $_type to "Eden">> <<elseif $monster is 1>> <<silently>><<beastSimple>><</silently>> <<set $_type to _text_output>> <<else>> <<set $_type to $NPCList[0].type>> <</if>> <<set $_lands to _args.includes("river") ? "splashes" : "lands">> <<set $_forest to _args.includes("river") ? "water" : "forest">> <<set $_backsOffAnd to _args.includes("snow") ? "kicks up fistfuls of snow as <<bhe>>" : "backs off in fear and">> <<if $canRescue.includesAll("Eden","Gwylan")>> <!-- co-op rescue --> <<gwylanRescueStats true $_type "Eden">><<run statusCheck("Gwylan")>> <<if $_type is "plant">> You hear a gun fire close by, and a bullet pierces the ground at the <<person1>><<persons>> feet. At the same time, a ?gwylanItem crashes into the <<persons>> face. <<He>> yelps and retracts <<his>> vines, burrowing into the earth. <<elseif $_type is "human">> <<if $enemynomax is 1>> You hear a gun fire close by, and a bullet pierces the ground at the <<person1>><<persons>> feet. At the same time, a ?gwylanItem crashes into the <<persons>> face. <<if _args.includes("cutter")>> <<He>> staggers back, but seems more worried about the gunshot. "The maniac," <<he>> whispers. <</if>> <<He>> backs off in fear and flees into the forest. <<else>> You hear a gun fire close by, and a bullet pierces the ground at the <<= $enemynomax is 2 ? "pair" : "group">>'s feet. At the same time, a ?gwylanItem crashes into the <<person1>><<persons>> face. They back off in fear and flee into the forest. <</if>> <<elseif $_type is "bear">> <<set $_close to true>><<hallucinogen 120>> The <<beasttype>> growls, but is hit in the face by a flying pouch. Powder erupts from it, and you're caught in the cloud. It smells funny. <br><br> <<bHe>> growls again, swiping <<bhis>> nose, before freezing in fear. <<bHis>> eyes are locked on something behind you. You look over your shoulder. <br><br> <<if $edenCagedEscape or edenFreedomStatus() gte 2 or !$gwylanRescue.eden>> <span @class="_gwylanFirstRescue is 'bear'?'red':''">A massive, inhuman monster stalks towards you. It's twice your size, with two long necks holding up a pointed, faceless head.</span> <<if _gwylanFirstRescue is "bear">> <span class="red">Even the trees around it seem to stretch taller.</span> <<stress 12>><<trauma 6>><<ggstress>><<gtrauma>> <<else>> You've seen this before. <span class="forest-green">It's Gwylan.</span> <</if>> <br><br> <<if $monster is 1>> "Too big," the <<beasttype>> whispers, backing up. <<bHe>> <<else>> The <<beasttype>> pounds <<bhis>> paws against the ground nervously, before <<bhe>> <</if>> $_backsOffAnd flees into the forest. <br><br> "Hey, relax. You're alright." <<if _gwylanFirstRescue is "bear">> <span class="red">The giant steps towards you, its necks unnaturally pulling its pointy head into its torso. It produces what looks like a cloth and presses it to your nose. Everything...</span> <br><br> ...clears up. You blink. The trees no longer stand quite so tall. The creature is gone too. In its place is a mousy <<nnpc_gendery "Gwylan">> wearing a witch hat and an amused smile. <span class="green">It's Gwylan.</span> <<else>> Gwylan steps towards you, what you now recognize as <<nnpc_his "Gwylan">> arms pulling <<nnpc_his "Gwylan">> hat back down. <<He>> dabs something from a small bottle into a cloth and presses it to your nose. Everything returns to normal size. <</if>> "Breathe. It's always a trip, I know." <br><br> <<if _gwylanFirstRescue is "bear">> <<nnpc_He "Gwylan">> bends down to pick up the now-empty pouch, showing it to you. "Surprised? Some spores have halluinogenic properties. That one warps your perception, making everything look larger than it really is. And making yourself look bigger is the best way of scaring off bears." <<nnpc_He "Gwylan">> takes off <<nnpc_his "Gwylan">> hat and holds it over <<nnpc_his "Gwylan">> head for emphasis, before putting it back on. <br><br> <</if>> A gunshot rings out, interrupting <<nnpc_him "Gwylan">>. It pierces the ground near the still-retreating bear. You turn and see a figure emerge from the bushes. <<if $edenCagedEscape or edenFreedomStatus() gte 2>> <span class="red">It's Eden</span>. <<nnpc_He "Eden">> marches over to you, and doesn't look happy to see you. <<else>> It's Eden. <</if>> <<else>> Two shapes emerge from the bushes. <span @class="_gwylanFirstRescue is 'bear'?'red':''">One is a massive, inhuman monster twice your size with two long necks holding up a pointed, faceless head. The other is a mouthless creature with its spine jutting out at an angle to its neck.</span> <<if _gwylanFirstRescue is "bear">> <span class="red">Even the trees around them seem to stretch taller.</span> <<stress 12>><<trauma 6>><<ggstress>><<gtrauma>> <<else>> You've seen this before. <span class="forest-green">It's Gwylan,</span> but there's somebody else, too. <</if>> <br><br> The second creature's spine dislodges, pointing at the bear and letting out a deafening pop. Something pierces the ground by its feet. <br><br> <<if $monster is 1>> "Too big," the <<beasttype>> whispers, backing up. <<bHe>> <<else>> The <<beasttype>> pounds <<bhis>> paws against the ground nervously, before <<bhe>> <</if>> $_backsOffAnd flees into the forest. <br><br> "Hey, relax. You're alright." <<if _gwylanFirstRescue is "bear">> <span class="red">The giant steps towards you, its necks unnaturally pulling its pointy head into its torso. It produces what looks like a cloth and presses it to your nose. Everything...</span> <br><br> ...clears up. You blink. The trees no longer stand quite so tall. The creatures are gone too. In their places are a mousy <<nnpc_gendery "Gwylan">> wearing a witch hat and an amused smile, and a muscular <<nnpc_gender "Eden">> with a rifle in <<nnpc_his "Eden">> arms. <span class="green">It's Gwylan and Eden.</span> <<else>> Gwylan steps towards you, what you now recognize as <<nnpc_his "Gwylan">> arms pulling <<nnpc_his "Gwylan">> hat back down. <<nnpc_He "Gwylan">> dabs something from a small bottle into a cloth and presses it to your nose. Everything returns to normal size. <</if>> "Breathe. It's always a trip, I know." <<if _gwylanFirstRescue is "bear">> <br><br> <<nnpc_He "Gwylan">> bends down to pick up the now-empty pouch, showing it to you. "Surprised? Some spores have halluinogenic properties. That one warps your perception, making everything look larger than it really is. And making yourself look bigger is the best way of scaring off bears." <<nnpc_He "Gwylan">> takes off <<nnpc_his "Gwylan">> hat and holds it over <<nnpc_his "Gwylan">> head for emphasis, before putting it back on. <br><br> <</if>> <</if>> <<elseif $_type is "Black Wolf">> /* exit case, does not continue to rest of widget */ You hear a sound like glass breaking nearby. A green light briefly blinds you. The Black Wolf backs away from you, becoming sluggish. You hear singing. Your head feels fuzzy. <<hallucinogen 120>><<gghallucinogens>> <br><br> <span class="forest-green">Gwylan</span> emerges from the treeline as the light slowly fades from the Black Wolf's eyes. <<bHe>> backs away and growls, still half-lucid. "Shhhh." Gwylan kneels down, producing a small vial full of blue powder and smiling at you. "You should go, <<pcpetname "Gwylan" "name">>. I'll handle..." <<nnpc_His "Gwylan">> eyes widen. <br><br> The black wolf sniffs the air, then drops low, <span class="red">just as a bullet whizzes by.</span> The impact showers the wolf with splinters of bark, and the sound snaps <<bhim>> out of <<bhis>> shallow trance. <<bHe>> looks between you, Gwylan, and the culprit emerging from the treeline. <span class="green">It's Eden.</span> <br><br> Eden quickly shoulders <<nnpc_his "Eden">> rifle again, taking aim. The Black Wolf darts off into the forest. The shot impacts another tree. "Almost." <br><br> Eden takes aim at Gwylan next, rage painted on <<nnpc_his "Eden">> face. "Get away from <<phim>>. Now." <br><br> Gwylan doesn't move. "And leave <<phim>> with you?" <<nnpc_He "Gwylan">> stares down the barrel of Eden's rifle. <br><br> <<link [[Run|Forest Trio Confrontation]]>><<set $phase to "run">><<stress 12>><</link>><<ggstress>> <br> <<link [[Try to calm them down|Forest Trio Confrontation]]>><<stress 12>><<set $phase to "stand">><</link>><<ggstress>> <br> <<if $hypnosis_traits.devotion gte 5>> <<link [[Step in front of the gun|Forest Trio Confrontation]]>><<set $phase to "front">><<stress 50>><<trauma 25>><<npcincr Gwylan dom 5>><</link>><<gggstress>><<gggtrauma>><<ggyearning>> <</if>> <br> <<exit>> <<else>> <<set $_gwylanThrow to "capsule">> A small capsule lands nearby, and starts to let out a series of sparks and loud pops. At the same time, you hear gunfire close by, and a bullet $_lands near the <<beasttype>>. Overwhelmed, <<bhe>> $_backsOffAnd flees into the $_forest. <<if $combatTrain.total_length isnot undefined>> The <<= $combatTrain.total_length is 1 ? "others follow" : "other follows">> after <<bhim>>. <</if>> <</if>> <br><br> <<clotheson>> <<endcombat>> <<npc Eden 1>><<person1>> <<if ($edenCagedEscape or edenFreedomStatus() gte 2) and $gwylanSeen.includes("partners")>> <<npc Gwylan 2>><<person1>> <<if !$_close>> <<gwylanDesc "cap">> emerges from the treeline and rushes to your side. <<if $gwylanSeen?.includes("ritual_beast")>> "Are you alright, <<pcpetname "Gwylan" "name">>?" <<else>> "Are you alright, dear?" <</if>> <br><br> You hear more rustling. <span class="red">Eden</span> emerges next and marches towards you. <<He>> doesn't look happy to see you. <</if>> <<if $gwylanRescue.eden gte 4>> <<He>> grabs Gwylan by the arm and pulls <<person2>><<him>> aside, but <<person1>><<his>> gaze remains fixed on you. <br> "You've got some nerve," Eden growls. "Abandoning me, acting like a fucking brat, then expecting me to save your helpless ass." <br><br> Gwylan rests a hand on Eden's shoulder. "Calm down. Let's just—" <br><br> Eden turns and punches Gwylan square in the jaw. You blink. There's no mark on Gwylan's cheek. In fact, <<person2>><<he>> didn't even move. Eden is off balance, as if <<person1>><<he>> simply hit the air. <<elseif $gwylanRescue.eden gte 1>> <<He>> shoves Gwylan aside, eyes full of rage. Gwylan yelps as <<nnpc_he "Gwylan">> falls to the dirt. <br> "You've got some nerve," Eden growls. "Abandoning me, acting like a fucking brat, then expecting me to save your helpless ass." <br><br> Gwylan watches, mouth agape. Eden glares at <<person2>><<him>>. "Go. This is between me and <<phim>>." <br> "I think if we all just calm down," Gwylan starts to say. <br> Eden whirls around, fury all over <<person1>><<his>> face. "I said—" <br> But Gwylan isn't there. <<person2>><<Hes>> crouching next to you again. "Come on, get up, dear." <<else>> "Leave us, <<witch>>. This doesn't concern you." <<He>> grabs Gwylan by the arm and hurls <<person2>><<him>> into a nearby shrub. <br> "I told you I'd find you again," <<person1>><<he>> growls. "And no one's getting in my way." <br><br> "I beg to differ." <br><br> Gwylan is standing in Eden's path. Eden looks back at the <span class="blue">intact</span> bush, then at Gwylan. <<person2>><<He>> holds Eden's gaze without blinking. <</if>> <br><br> Eden takes a step back. <<person1>><<He>> unslings <<his>> rifle and points it at Gwylan's chest. You cry out in alarm, but Eden ignores you. <<stress 24>><<ggstress>> <br><br> Gwylan's head tilts, and <<person2>><<he>> smiles. "Eden, I could press my forehead right to that barrel, and we both know you would still miss." <br><br> Eden tightens <<person1>><<his>> grip. "This is different from then." <br><br> Gwylan giggles. "Is it? I'm glad you think so. Nevertheless, you're not taking <<phim>>." <<if $worn.neck.name is "familiar collar" and $worn.neck.cursed is 1>> <<person2>><<He>> smiles at you now, and snaps <<his>> fingers. "<<gwylanCommand "Heel.">>" <<hypnosisText "Your leash appears in Gwylan's hand, and you sit at <<his>> side instinctively.">> <<else>> <<person2>><<He>> smiles at you now. "Come along, <<pcpetname "Gwylan">>." You stand up next to <<him>>. <</if>> Eden's eyes remain trained on Gwylan. <<person1>><<His>> grip is unsteady, and <<his>> pupil is a pinprick in between the rifle's sights. <<He>> lowers <<his>> gun. <br><br> "Is that what you want, <<girl>>? To go with <<person2>><<him>>?" <br><br> <<link [[Nod|Forest Gwylan Eden Confrontation]]>><<set $phase to "Gwylan">><<npcincr Gwylan dom 3>><<npcincr Eden love -10>><</link>><<ggyearning>><<llllove "Eden">> <br> <<link [[Say you want to go with Eden|Forest Gwylan Eden Confrontation]]>><<sub 1>><<set $phase to "Eden">><<npcincr Gwylan dom -10>><<npcincr Eden dom 3>><</link>><<lllyearning>><<ggdom "Eden">> <br> <<elseif $edenCagedEscape or edenFreedomStatus() gte 2>> <<set $gwylanRescue.seen.pushUnique("EdenFailed")>><<set $daily.gwylan.edenRescueFailed to true>> /* Gwylan not generated here as it leads to combat or the cabin */ <<if !$_close>> <<gwylanDesc "cap">> emerges from the treeline and rushes to your side. <<if $gwylanSeen?.includes("ritual_beast")>> "Are you alright, <<pcpetname "Gwylan" "name">>?" <<else>> "Are you alright, dear?" <</if>> <br><br> You hear more rustling. <span class="red">Eden</span> emerges next and marches towards you. <<He>> doesn't look happy to see you. <</if>> <<if $gwylanRescue.eden gte 4>> <<set $gwylanRescue.failed to "EdenAttack">> <<He>> grabs Gwylan by the arm and pulls <<nnpc_him "Gwylan">> aside, but <<his>> gaze remains fixed on you. <br> "You've got some nerve," Eden growls. "Abandoning me, acting like a fucking brat, then expecting me to save your helpless ass." <br><br> Gwylan rests a hand on Eden's shoulder. "Calm down. Let's just—" <br><br> Eden turns and punches Gwylan square in the jaw. <<nnpc_He "Gwylan">> cries out in pain, staggering backwards into the dirt. <<trauma 12>><<ggtrauma>> <br> "Don't touch me," Eden spits. "I don't need your help, <<witch>>. And neither does <<pshe>>." <<He>> turns to you with a glare. "All <<pshe>> needs is to learn <<pher>> place." <br><br> <<He>> grabs you by the wrist and begins dragging you into the woods, leaving Gwylan behind. <<elseif $gwylanRescue.eden gte 1>> <<set $gwylanRescue.failed to "Eden">> <<He>> shoves Gwylan aside, eyes full of rage. Gwylan yelps as <<nnpc_he "Gwylan">> falls to the dirt. <br> "You've got some nerve," Eden growls. "Abandoning me, acting like a fucking brat, then expecting me to save your helpless ass." <br><br> Gwylan watches, mouth agape. Eden glares at <<nnpc_him "Gwylan">>. "Go. This is between me and <<phim>>." <br> Gwylan glances between the two of you, <<nnpc_his "Gwylan">> expression a mix of worry and fear, before rising to <<nnpc_his "Gwylan">> feet. <<nnpc_He "Gwylan">> opens <<nnpc_his "Gwylan">> mouth to speak, but <<nnpc_his "Gwylan">> eyes fix on Eden's rifle. <<nnpc_He "Gwylan">> looks to you apologetically and shuffles back into the forest. <<trauma 6>><<gtrauma>> <br><br> Eden turns to you. "I told you I'd find you again," <<he>> spits. "And no one's getting in my way." <<He>> begins dragging you into the woods. <<else>> <<set $gwylanRescue.failed to "EdenAttack">> <<He>> presses <<his>> rifle against the back of <<gwylanDesc "the">>'s head. <<nnpc_He "Gwylan">> freezes, slowly raising <<nnpc_his 'Gwylan'>> hands. <<stress 12>><<ggstress>> <br><br> "Leave us, <<witch>>. This doesn't concern you." <br><br> <<gwylanDesc "the" "cap">> gives you a sad smile, and stands. "Right. Careful where you point that thing, Eden. You wouldn't want that nasty luck coming back." <<nnpc_He "Gwylan">> quickly runs back into the forest. <br><br> Eden watches <<nnpc_him "Gwylan">> leave, and turns back to you. "I told you I'd find you again," <<he>> growls. "And no one's getting in my way." <</if>> <br><br> <<link [[Fight|Eden Caged Caught Resist]]>><<set $fightstart to 1>><<def 1>><</link>> <br> <<link [[Try to pull away|Eden Caged Caught Pull]]>><<def 1>><<npcincr Eden dom -1>><</link>><<physiquedifficulty 2000 18000>><<ldom>> <br> <<link [[Submit (0:30)|Eden Caged Caught]]>><<set $phase to 1>><<pass 30>><<sub 1>><<npcincr Eden dom 1>><</link>><<gdom>> <br> <<elseif $gwylanRescue.eden gte 3>> "Nice aim," Eden says as <<nnpc_he "Eden">> <<if $_close>> approaches, putting <<nnpc_his "Eden">> rifle back over <<nnpc_his "Eden">> shoulder. <br><br> "If only I could say the same," Gwylan replies. <<else>> emerges from the forest. <br><br> "If only I could say the same," Gwylan replies, stepping through the treeline on the opposite side. <</if>> <<if $_gwylanThrow is "capsule">> "Unlike you, I was actually aiming for the <<= _args.includes("river") ? "water" : "dirt">>." Eden snorts, and almost smiles. <<else>> "Unless you were aiming for the <<= _args.includes("river") ? "water" : "dirt">>." Eden snorts, and almost smiles. <</if>> <<if $_type is "bear">> <<nnpc_He "Eden">> paces the perimeter. "We shouldn't stay here. That bear could come back." <</if>> <br><br> <<if $gwylanRescue.eden gte 4 and !$gwylanSeen?.includes("eden_frenemies")>> <<set $gwylanSeen.pushUnique("eden_frenemies")>> You smile. They used to be so suspicious of each other. It's nice to see them getting along. <<trauma -6>><<ltrauma>> <br><br> <<elseif !$gwylanSeen?.includes("edenBulletNecklace") and $gwylanSeen?.includes("ritual_beast")>> <<set $gwylanSeen.pushUnique("edenBulletNecklace")>> Gwylan kneels down, digging Eden's bullet out of the dirt. <<nnpc_He "Gwylan">> sighs and opens a satchel on <<nnpc_his "Gwylan">> belt. "Eden." <<nnpc_He "Gwylan">> tosses something. <br><br> Eden clumsily catches it. <span class="blue">It's a necklace made of spent bullet casings.</span> "Clean up after yourself. If you won't make peace with the forest, the least you can do is limit your collateral damage." Gwylan stands and crosses <<nnpc_his "Gwylan">> arms, giving Eden a scolding look. <br><br> Eden grips the necklace tightly. "I'll keep it in mind." <br><br> <</if>> <!-- Not done through the normal apology widget, as Eden's presence changes things too much --> <<gwylanRescueApologyEden>> Gwylan<<if !_args.includes("river") and $_gwylanThrow isnot "capsule">> gathers <<nnpc_his "Gwylan">> items and<</if>> fusses over you. Eden considers for a moment. "If you're not coming home," <<nnpc_he "Eden">> says, "You're safer with <<nnpc_him "Gwylan">> than alone." <<nnpc_He "Eden">> shoots Gwylan a sharp glare. "Don't get any ideas." Gwylan dons an innocent smile. <<if _args.includes("slime")>> <br> <<slimePunishmentForest>> <</if>> <br><br> <<clotheson>> <<endcombat>> <<if $forest_shop_intro>> <<link [[Go back to the forest shop (0:30)|Forest Shop Entrance]]>><<pass 30>><<endevent>><</link>> <br> <</if>> <<forestCabinReturnLinks>> <<elseif $gwylanRescue.eden gte 1>> <<if $_close>> Eden cautiously walks beside Gwylan, but seems more concerned with you, not deeming <<nnpc_him "Gwylan">> a threat. <<else>> Eden and Gwylan both emerge from opposite sides of the forest path. Eden eyes Gwylan suspiciously, but <<nnpc_he "Eden">> doesn't deem <<nnpc_him "Gwylan">> a threat. <</if>> <br><br> "Good thing we were both in the area," Gwylan says. Eden doesn't respond. <<gwylanRescueApologyEden>> Gwylan fusses over you for a moment, but a sharp glare from Eden makes <<nnpc_him "Gwylan">> stop. Gwylan<<if !_args.includes("river") and $_gwylanThrow isnot "capsule">> gathers <<nnpc_his "Gwylan">> items, then<</if>> turns and walks away in the direction of <<nnpc_his "Gwylan">> shop without another word. Eden stays, checking to make sure you're alright. <<if _args.includes("slime")>> <br> <<slimePunishmentForest>> <</if>> <br><br> <<clotheson>> <<endcombat>> <<forestCabinReturnLinks>> <<else>> <<set $gwylanRescue.failed to "">> Eden emerges from the treeline. "You okay?" <<nnpc_he "Eden">> asks. "Good thing I was here to—" <br><br> <<if $_close>> <<nnpc_Hes "Eden">> stops upon seeing <<gwylanDesc>>. Eden unslings <<nnpc_his "Eden">> rifle and points at <<nnpc_him "Gwylan">>. <<else>> <<nnpc_Hes "Eden">> cut off by <<gwylanDesc>> bursting through the treeline. Eden unslings <<nnpc_his "Eden">> rifle and points at <<nnpc_him "Gwylan">>. <</if>> <br><br> "Wait," <<gwylanDesc "the" "cap">> raises <<nnpc_his "Gwylan">> arms, dropping a ?gwylanItem <<nnpc_he "Gwylan">> was carrying. "I'm here for the same reason you are, Eden." <br><br> Eden doesn't lower <<nnpc_his "Eden">> gun. "Why should I believe you?" <<nnpc_He "Eden">> rests <<nnpc_his "Eden">> finger on the trigger. <<stress 3>><<gstress>> <br><br> "It's true, really!" <<gwylanDesc "the" "cap">> glances in your direction, then back to Eden. "I was at the shop taking stock when I heard <<phim>> scream. <<if $gwylan_rescue is 1>>I've saved <<phim>> before, <<pshes>> my friend.<<else>><<if $forest_shop_intro is 1>><<pShes>> one of my customers.<</if>> I wanted to save <<phim>>.<</if>>" <br><br> <<if hasSharpSenses("instincts")>> <<set $gwylanSeen.pushUnique("edenFearFake")>> <<gwylanDesc "the" "cap">> looks like <<hes>> putting on a brave front to mask <<his>> fear. But as you pay closer attention, you notice it's the exact opposite. <<Hes>> pretending to be nervous, to hide the fact that <span class="blue"><<nnpc_hes "Gwylan">> not scared at all.</span> <br><br> <</if>> <<if _gwylanStatus?.includes("met")>> Eden looks at you for confirmation. You nod, and <span class="green"><<nnpc_he "Eden">> lowers <<nnpc_his "Eden">> gun</span>. "Fine. But don't try anything, <<witch>>." <br><br> "I won't," Gwylan says. "The shop awaits my return, and I must away now that I know <<pshes>> safe." <<nnpc_He "Gwylan">> pauses. "You should be careful about where you point your weapon, though. You know a bit of rotten luck." <<else>> <<set $daily.gwylan.firstMet to true>> Eden frowns, then <span class="green">lowers <<nnpc_his "Eden">> gun</span>. "Fine. But don't try anything, <<witch>>." <br><br> <<gwylanDesc "the" "cap">> sighs in relief, and lowers <<nnpc_his "Gwylan">> arms as well. <<nnpc_He "Gwylan">> turns to you. <<nnpc_He "Gwylan">> looks about your age, with mousy hair and freckles. "I'm older than I look," <<nnpc_he "Gwylan">> says, as if reading your mind. "<span class="green">I'm Gwylan.</span>. Nice to meet you!" I have a shop right by the outskirts of the forest," <<nnpc_he "Gwylan">> says. "You can't miss it. I sell—" <<nnpc_He "Gwylan">> pauses. "My grand<<father>> sells—" another pause. "I sell clothes and knick-knacks there. <span class="blue">Things you won't find in normal shops.</span> Even I don't know what I have in stock!" <<nnpc_He "Gwylan">> sounds proud. Eden snorts. <</if>> <br><br> <<gwylanRescueNotice>> <<if $eden_rescue isnot 1>> <<set $eden_rescue to 1>> <<if _gwylanRescueNotice>> "As for me," Eden says, "I happened to be in the area. <span class="gold">I might not always be around, but I should be able to save you anywhere in the forest.</span> Give me a shout if you're in danger. No matter how deep in you are." <<else>> As Gwylan turns to set out, Eden pats you on the shoulder. "I was able to hear you because I happened to be in the area," <<nnpc_he "Eden">> says. "<span class="gold">I might not always be around, but I should be able to save you anywhere in the forest.</span> Give me a shout if you're in trouble." <</if>> <br><br> <</if>> With that said, Gwylan turns back in the direction of <<nnpc_his "Gwylan">> shop, <<= _args.includes("river") and $_gwylanThrow isnot "capsule" ? "walking away" : "quickly remembers <<nnpc_his 'Gwylan'>> thrown merchandise and picks it up, and walks away">>. Eden stays, and checks to make sure you're alright. <<if _args.includes("slime")>> <br> <<slimePunishmentForest>> <</if>> <br><br> <<clotheson>> <<endcombat>> <<forestCabinReturnLinks>> <</if>> <<elseif $canRescue.includes("Gwylan")>> <<gwylanRescueStats true $_type>><<run statusCheck("Gwylan")>> <<if $_type is "plant">> <<set $_gwylanThrow to "item">> The <<person1>><<person>> leans in, but is interrupted when a flying ?gwylanItem smacks <<him>> in the face. <<He>> yelps, retracting <<his>> vines to raise them defensively. <br><br> "Hey!" <<gwylanDesc>> shouts, emerging from the treeline. "Leave <<phim>> alone. Don't let me catch you doing this again." <<nnpc_He "Gwylan">> holds a ?gwylanItem, but doesn't throw it, instead gesturing at the <<person>> with it. <br><br> The <<person>> bows <<his>> head, chastened. "I... okay. Sorry." <<He>> glances one last time at <<gwylanDesc>>, before meekly burrowing into the ground. <br><br> "Don't be too upset with <<him>>," <<gwylanDesc>> says, shaking <<nnpc_his "Gwylan">> head. "The dryads aren't malicious. They just... don't think like we do. Are you alright?" <<elseif $_type is "human">> <<set $_gwylanThrow to "item">> <<if $enemynomax is 1>> The <<person1>><<person>> charges you, but is interrupted when a flying ?gwylanItem smacks <<him>> in the face. <<else>> The <<person1>><<person>> charges you, but is interrupted when a flying ?gwylanItem smacks <<him>> in the face. The <<person2>><<person>> looks over, only for a ?gwylanItem to fly into <<his>> face as well. <</if>> <br><br> "Hey!" <<gwylanDesc>> shouts, emerging from the treeline. "Get away from <<phim>>. I have more." As if to demonstrate, <<nnpc_he "Gwylan">> throws a ?gwylanItem, hitting the <<person1>><<person>> in the face again. <<if $enemynomax is 1>> <<He>> turns and runs away. <br><br> "I hope <<he>> wasn't a customer," <<gwylanDesc>> mutters. "Well, I wouldn't want <<his>> money anyway. Are you alright?" <<else>> The <<= $enemynomax is 2 ? "pair" : "group">> glance at each other, then turn and run. <br><br> "I hope they weren't customers," <<gwylanDesc>> mutters. "Well, I wouldn't want their money anyway. Are you alright?" <</if>> <<elseif $_type is "bear">> <!-- Don't need to account for not knowing who Gwylan is, Gwylan can't save players from bears unless close --> <<hallucinogen 120>> The <<beasttype>> growls, but is hit in the face by a flying pouch. Powder erupts from the pouch, and you're caught in the cloud. It smells funny. <br><br> <<bHe>> growls again, swiping <<bhis>> nose, before freezing in fear. <<bHis>> eyes are locked on something behind you. You look over your shoulder. <br><br> <span @class="_gwylanFirstRescue is 'bear'?'red':''">A massive, inhuman monster stalks towards you. It's twice your size, with two long necks holding up a pointed, faceless head.</span> <<if _gwylanFirstRescue is "bear">> <span class="red">Even the trees around it seem to stretch taller.</span> <<stress 12>><<trauma 6>><<ggstress>><<gtrauma>> <<else>> You've seen this before. <span class="forest-green">It's Gwylan.</span> <</if>> <br><br> <<if $monster is 1>> "Too big," the <<beasttype>> whispers, backing up. <<bHe>> <<else>> The <<beasttype>> pounds <<bhis>> paws against the ground nervously, before <<bhe>> <</if>> $_backsOffAnd flees into the forest. <br><br> "Hey, relax. You're alright." <<if _gwylanFirstRescue is "bear">> <span class="red">The giant steps towards you, its necks unnaturally pulling its pointy head into its torso. It produces what looks like a cloth and presses it to your nose. Everything...</span> <br><br> ...clears up. You blink. The trees no longer stand quite so tall. The creature is gone too. In its place is a mousy <<nnpc_gendery "Gwylan">> wearing a witch hat and an amused smile. <span class="green">It's Gwylan.</span> <<else>> Gwylan steps towards you, what you now recognize as <<nnpc_his "Gwylan">> arms pulling <<nnpc_his "Gwylan">> hat back down. <<He>> dabs something from a small bottle into a cloth and presses it to your nose. Everything returns to normal size. <</if>> "Breathe. It's always a trip, I know." <<elseif $_type is "Black Wolf">> /* exit case, does not continue to rest of widget. Improve later? */ You hear a sound like glass breaking nearby. A green light briefly blinds you. The Black Wolf becomes sluggish. You hear singing. Your head feels fuzzy. <<hallucinogen 120>><<gghallucinogens>> <br><br> <span class="forest-green">Gwylan</span> emerges from the treeline as the light slowly fades from the Black Wolf's eyes. <<bHe>> backs away and growls, still half-lucid. "Shhhh." Gwylan kneels down, producing a small vial full of blue powder and smiling at you. <<if _gwylanStatus?.includes("reunion")>> "We'll be having words later, <<pcpetname "Gwylan" "name">>. You've had me worried sick. But for now, you should go. I'll sort the alpha out." <<else>> "You should go, <<pcpetname "Gwylan" "name">>. I'll sort the alpha out." <</if>> <<nnpc_He "Gwylan">> takes a deep breath. "Alright, big <<if C.npc["Black Wolf"].pronoun is "m">>boy<<else>>girl<</if>>, come here." <br><br> The Black Wolf growls and tries to shake off the trance. You decide not to stick around. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <br> <<exit>> <<elseif $_type is "Eden">> <<set $_edenName to C.npc.Eden.name_known ? "Eden" : "the <<nnpc_title 'Eden'>>">> "Eden! Unhand <<phim>> at once!" A sharp command echoes through the forest. <br><br> <<= $_edenName.toUpperFirst()>> freezes for a moment, before quickly pulling away from you, unslinging <<his>> rifle and pointing it towards the source. <br><br> <<clotheson>> <<endcombat>> <<set $_combatEnded to true>> <<npc Eden 1>><<npc Gwylan 2>><<person2>> <span class="forest-green">Gwylan</span> slowly emerges from the opposite direction. <<= $_edenName.toUpperFirst()>> snaps around, firing a shot into a tree right next to Gwylan. <<He>> barely reacts, <<his>> head only slightly tilting away from the impact. <<stress 24>><<ggstress>> <br><br> <<if $daily.gwylan.edenRescueFailed>> "You again?" <<= $_edenName>> spits. "For the last time, this doesn't concern you." <<else>> "Leave us, <<witch>>. This doesn't concern you," <<= $_edenName>> spits. <</if>> <br><br> Gwylan smiles, though it doesn't reach <<his>> eyes. "I beg to differ," <<he>> says. "When you're disturbing our forest, of course it concerns me. Especially when you're intimidating a poor, innocent creature like <<phim>>." <<He>> gestures at you. "You just can't help yourself, can you? You hate to hear the forest sing, but love to hear <<phim>> scream." <br><br> <<person1>><<= $_edenName.toUpperFirst()>> snaps <<his>> glance to you, then back to Gwylan. <<His>> grip tightens on <<his>> rifle. <<if $hunterintro isnot 1 or !$syndromeeden>> /* Eden backs down due to not being attached enough to PC, continue to normal rescue text */ <<He>> sighs, <span class="green">and lowers it.</span> "Fine. This isn't over. There are gaps in your vision, <<witch>>." <<He>> slings <<his>> rifle over <<his>> shoulder and walks into the forest. <br><br> Gwylan watches <<him>> leave, and rushes to your side once <<hes>> gone. "Are you alright? That brute didn't hurt you, did <<he>>?" <<else>> /* exit case, does not continue to rest of widget */ "<<pShes>> going home. Even if I have to drag <<phim>> there." <br><br> <<person2>>Gwylan continues approaching. <<if $gwylanSeen.includes("partners") and $worn.neck.name is "familiar collar" and $worn.neck.cursed is 1 or $gwylanSeen.includes("romance")>> "That's right, <<pshe>> is going home. But it's not the home you think. <<gwylanCommand "Come along, <<pcpetname 'Gwylan'>>.">>" Gwylan holds out <<his>> hand to you. <br><br> "Touch <<phim>> and I'll blow your fucking hand off," <<person1>><<he>> yells. <span class="blue">You hear a dull click.</span> Eden looks down at <<his>> rifle with annoyance. <br><br> Gwylan's hand remains reaching out to you. "You'll miss," <<person2>><<he>> says flatly. "Just like you always do." <br><br> <<link [[Take Gwylan's hand|Forest Gwylan Eden Rescue]]>><<set $phase to "Gwylan">><<npcincr Gwylan dom 3>><<npcincr Eden love -10>><</link>><<handholdingvirginitywarning>><<ggyearning>><<llllove "Eden">> <br> <<link [[Stay with Eden|Forest Gwylan Eden Rescue]]>><<sub 1>><<set $phase to "Eden">><<npcincr Gwylan dom -10>><<npcincr Eden dom 3>><</link>><<gwylanWillpowerDifficulty>><<lllyearning>><<ggdom "Eden">> <br> <<else>> "That cabin isn't a home, Eden. No matter how much you play pretend." Gwylan lifts <<his>> hat, looking Eden directly in the eyes now. "Have you ever once asked <<phim>> what <<pshe>> wants?" <br><br> Eden winces. "Shut it. I know what's best for <<phim>>." <<person1>><<His>> grip trembles. <span class="blue">You hear a dull click.</span> Eden looks down at <<his>> rifle with annoyance. <br><br> "You don't even know what's best for yourself," Gwylan says, shaking <<person2>><<his>> head. <<He>> turns to you. "Do you want me to take you back to the shop?" <br><br> <<link [[Nod|Forest Gwylan Eden Confrontation]]>><<set $phase to "Gwylan">><<npcincr Gwylan dom 3>><<npcincr Eden love -10>><</link>><<ggyearning>><<llllove "Eden">> <br> <<link [[Say you want to go with Eden|Forest Gwylan Eden Confrontation]]>><<sub 1>><<set $phase to "Eden">><<npcincr Gwylan dom -10>><<npcincr Eden dom 3>><</link>><<lllyearning>><<ggdom "Eden">> <br> <</if>> <<exit>> <</if>> <<else>> /* beast */ <<if $gwylanSeen?.includes("ritual_beast") and $rng gte 51>> The <<beasttype>> <<beast_growls_text $_type>>, but it quiets down as you hear something else. Singing. <<if $_type.includes("boar")>> <<bHe>> grunts, looking around, before slowly bowing <<bhis>> head. <<if $monster is 1>> "Can't think..." <</if>> <<elseif $_type.includes("lizard")>> <<bHe>> looks around, alarmed, but slowly calms. <<else>> <<bHe>> yelps and looks around, alarmed, but <<bhis>> posture relaxes. <<if $monster is 1>> "Human song! Where... human..." <</if>> <</if>> <br><br> <<gwylanDesc "cap">> slowly emerges from the treeline, singing a gentle melody. <<nnpc_He "Gwylan">> approaches and kneels down, petting the <<beasttype>>. <<nnpc_He "Gwylan">> leans in and whispers. "Go home." <br><br> <<if $_type.includes("boar")>> <<bHe>> huffs a few times, but starts to walk away. <<elseif $_type.includes("lizard")>> <<bHe>> lets out a low hiss, and vanishes beneath the water. <<else>> <<bHe>> scurries away, <<bhis>> tail between <<bhis>> legs. <</if>> <<if $combatTrain.total_length isnot undefined>> The <<= $combatTrain.total_length is 1 ? "others follow" : "other follows">> <<bhim>>. <</if>> <br><br> <<gwylanDesc>> lets out a sigh. <<else>> The <<beasttype>> <<beast_growls_text $_type>>, but is silenced as a small capsule lands next to you. The capsule starts to spark and pop loudly. <<if $_type.includes("boar")>> <<bHe>> grunts, looking around. <<if $monster is 1>> "Tricks and traps. I hate." <</if>> <<elseif $_type.includes("lizard")>> <<bHe>> looks around, alarmed. <<else>> <<bHe>> yelps and looks around, alarmed. <<if $monster is 1>> "Human attack! Where human?!" <</if>> <</if>> <br><br> Another one lands nearby, and starts to pop. Overwhelmed by the noise, <<if $_type.includes("boar")>> <<bhe>> runs away. <<elseif $_type.includes("lizard")>> <<bhe>> dives back into the churning water. <<else>> <<bhe>> scurries away, <<bhis>> tail between <<bhis>> legs. <</if>> <<if $combatTrain.total_length isnot undefined>> The <<= $combatTrain.total_length is 1 ? "others follow" : "other follows">> <<bhim>>. <</if>> <br><br> <<gwylanDesc "cap">> emerges from the treeline. <</if>> "Are you alright? I swear they get more aggressive every day," <<nnpc_he "Gwylan">> mutters. <</if>> <<if _args.includesAny("river","snow")>> <<nnpc_He "Gwylan">> grasps your arm and pulls you out of the <<= _args.includes("river") ? "water" : "snow">>. <</if>> /* Prevents towelup when the player has clothes */ <<silently>><<clotheson>><</silently>> <<if $exposed gte 1>> <<nnpc_He "Gwylan">> offers you some old towels to <<if _args.includesAny("river","snow")>>dry yourself and <</if>>cover up.<<dry_towel>> <</if>> <<if $pain gte 50>> <<if $gwylanSeen?.includes("partners")>> <<nnpc_He "Gwylan">> kisses you on the cheek before tending to some of your bruises. <<else>> <<nnpc_He "Gwylan">> spends some time soothing your bruises. <</if>> <<pain -15>> <</if>> <<if _gwylanFirstRescue is "bear">> <br><br> <<nnpc_He "Gwylan">> bends down to pick up the now-empty pouch, showing it to you. "Surprised? Some spores have halluinogenic properties. That one warps your perception, making everything look larger than it really is. And making yourself look bigger is the best way of scaring off bears." <<nnpc_He "Gwylan">> takes off <<nnpc_his "Gwylan">> hat and holds it over <<nnpc_his "Gwylan">> head for emphasis, before putting it back on. <</if>> <<if $_combatEnded>> <<endevent>> <br><br> <<else>> <<clotheson>> <<endcombat>> <</if>> <<npc Gwylan>><<person1>> <<if _gwylanStatus?.includes("reunion")>> <<He>> pulls you into a tight hug. <<if $gwylanSeen.includes("partners")>> "Now, where have you been? Do you have any idea how worried I was?" <<if _gwylanTF.revealed>><<His>> tail beats on the ground.<</if>> <<else>> "I'm glad I found you. I haven't seen you in ages, I thought you were gone for good. What happened to you?" <</if>> <br><br> <<gwylanReunion>> <br><br> <<if _gwylanStatus?.includes("badEndReady")>> <<He>> doesn't let go. "Please, just let me hold you for a little while. I really though this would be the end. I thought I'd be alone again." <br><br> You feel the slightest pinprick in your arm. <<pain 2>><<gpain>> <br><br> <span class="purple">The forest starts to shift and distort.</span> Gwylan's face remains in perfect clarity at the center of your vision. <<He>> smiles sweetly, holding up a pink rose. Its stem drips red. <<hallucinogen 160>><<ggghallucinogens>> <br><br> The ground attacks you from below, but Gwylan guides you down slowly. "Shhh... just... a little longer." <br><br> <<hypnosisText "<<His>> sweet voice silences your thoughts, and you're no longer where you once were.">> <<His>> voice fades away with the rest of the forest. <br><br> <<if _gwylanStatus?.includes("aurigaScarConfront")>> <<link [[Everything fades to black...|Forest Shop Nowhere Passout]]>><<pass 1 hour>><<endevent>><</link>> <<else>> <<link [[Everything fades to black...|Forest Shop Taken Start]]>><<pass 1 hour>><<endevent>><</link>> <</if>> <br> <<exit>> <<else>> <<He>> withdraws. <</if>> <<elseif !_gwylanStatus?.includes("met")>> <<set $daily.gwylan.firstMet to true>> <<He>> looks about your age, with mousy hair and freckles. "I'm older than I look," <<he>> says, as if reading your mind. "<span class="green">I'm Gwylan.</span> Nice to meet you." <br><br> "I have a shop right by the outskirts of the forest," <<he>> says. "You can't miss it. I sell—" <<He>> pauses. "My grand<<father>> sells—" Another pause. "I sell clothes and knick-knacks there. <span class="blue">Things you won't find in normal shops.</span> Even I don't know what I have in stock!" <<He>> sounds proud. <br><br> <<elseif $gwylanRescue.failed>> <<gwylanRescueApology>> <br><br> <</if>> <<if $gwylanRescue.eden gte 1 and !$gwylanRescue.failed and $_type isnot "Eden">> <<He>> looks around for a moment, as if waiting for something. "Strange," <<he>> says to <<himself>>. "I thought the <<nnpc_title "Eden">> would be here, too." <br><br> <</if>> <<gwylanRescueNotice>> <<if _gwylanStatus?.includes("reunion") or Time.dayState is "night">> <<He>> looks back into the treeline one last time. "Would you like to walk back to the shop with me? It would be safer together." <br><br> <<link [[Yes|Forest Gwylan Walk Shop]]>><<set $phase to 1>><<set $phase2 to "combatEnded">><<npcincr Gwylan dom 1>><</link>><<handholdingvirginitywarning>><<gyearning>> <br> <<link [[No|Forest Gwylan Walk Shop]]>><<set $phase to 2>><<set $phase2 to "combatEnded">><</link>> <br> <<else>> <<if $_gwylanThrow is "item">> <<He>> gathers <<his>> items, then walks off in the direction of <<his>> shop. <<else>> <<He>> walks off in the direction of the shop. <</if>> <br><br> <<if _args.includes("slime")>> <<slimePunishmentForest>> <br><br> <</if>> <<link [[Next|Forest]]>><<endevent>><<set $eventskip to 1>><</link>> <br> <</if>> <<elseif $canRescue.includes("Nobody")>> Nobody comes to rescue you. <br><br> <<if $_type is "plant">> Nobody stands between you and the <<person>>. <br><br> The <<person>> flinches back at nobody. <<He>> looks at you, face ashen, and withdraws <<his>> vines. <br><br> "I'm sorry," <<he>> whispers, before turning and running through the forest. "I'm sorry! I'm sorry! I'm sorry! I didn't mean to! I didn't mean to! I..." <<His>> voice becomes inaudible. <<tearful>> you gather yourself. <<elseif $_type is "human">> <<if $enemynomax gt 1>> Nobody stands between you and the <<group>>. <<else>> Nobody stands between you and the <<person>>. <</if>> <br><br> Nobody saves you. <br><br> <<if $enemynomax gt 1>> The <<group>> are gone. <<else>> The <<person>> is gone. <</if>> <<tearful>> you gather yourself. <<elseif $_type is "Eden">> <<set $_edenName to C.npc.Eden.name_known ? "Eden" : "the <<nnpc_title 'Eden'>>">> Nobody stands between you and <<= $_edenName>>. <br><br> <<= $_edenName.toUpperFirst()>> scowls, but <<his>> face turns pale. <br><br> Nobody gets shot at. <br><br> Nobody seems to mind. <br><br> Nobody approaches. <br><br> <<= $_edenName.toUpperFirst()>> flees. <<tearful>> you gather yourself. <<elseif $_type is "Black Wolf">> The Black Wolf suddenly withdraws from you, staring off into the treeline. <br><br> <<bHis>> tail puffs up, and <<bhe>> growls. <<bHe>> looks to you, then back to the trees. <br><br> <<bHe>> flees. <br><br> You look around, worried about what could have possibly frightened <<bhim>>. You quickly understand. <br><br> Nobody is here. <br><br> <<tearful>> you gather yourself. <<else>> /* beast */ <<if $combatTrain.total_length isnot undefined>> Nobody stands between you and the <<beastsplural>>. <<else>> Nobody stands between you and the <<beasttype>>. <</if>> <br><br> Nobody saves you. <br><br> <<if $combatTrain.total_length isnot undefined>> The <<beastsplural>> are gone. <<else>> The <<beasttype>> is gone. <</if>> <<tearful>> you gather yourself. <</if>> <br><br> <<clotheson>><<set $gwylanRescue.failed to "">> <<endcombat>> <<if _args.includes("slime")>> You feel the slime in your ear's displeasure at your defiance. <br><br> Nobody whispers in your ear. You hear nothing, but <span class="lblue">the slime falls silent</span>. <br><br> <</if>> You're alone. <br><br> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <br> <<elseif $canRescue.includes("Eden")>> You hear a gun fire close by, and a bullet $_lands <<if $_type is "plant">> <<set $_hikers to "hikers">> at the <<persons>> feet. "Fuck," <<he>> hisses. "It's the <<nnpc_title "Eden">>. Fuck. Fuck shit fuck. Um." <<He>> grabs your face and gives you a syrupy kiss on each cheek, before pulling away from you. "See ya! I'm out!" <<if $edenCagedEscape>> The <<person>> retracts <<his>> vines and retreats into the forest. <</if>> <<bodyliquid "face" "nectar">> <<elseif $_type is "human">> at the <<person1>><<persons>> feet. <<if _args.includes("cutter")>> "The maniac," <<he>> whispers. <</if>> <<if $enemynomax gt 1>> <<set $_hikers to "hikers">> The <<= $enemynomax is 2 ? "pair" : "group">> back off in fear and flee into the forest. <<else>> <<set $_hikers to "bastard">> <<He>> backs off in fear and flees into the forest. <</if>> <<else>> /* beast */ <<set $_hikers to $_type>> near the <<beasttype>>. <<bHe>> $_backsOffAnd flees into the <<if $combatTrain.total_length isnot undefined>> $_forest, the <<= $combatTrain.total_length is 1 ? "other" : "others">> following close behind. <<else>> $_forest. <</if>> <</if>> <br><br> <<if $edenCagedEscape>> <<clotheson>> <<endcombat>> <<npc Eden>><<person1>> Before you have a chance to recollect, you feel a hand on your shoulder. You're spun around, and come face-to-face with Eden, <<his>> eyes full of rage. <br><br> "You've got some nerve," <<he>> growls. "Abandoning me, acting like a fucking brat, then expecting me to save your helpless ass." <br><br> <<He>> grabs your wrist tight and begins marching you into the woods. "Come on. You're overdue for your punishment." <br><br> <<link [[Resist|Forest Eden Rage]]>><<set $phase to 0>><<def 1>><<npcincr Eden dom -1>><</link>><<physiquedifficulty 2000 18000>><<ldom>> <br> <<link [[Submit (0:30)|Forest Eden Rage]]>><<set $phase to 1>><<pass 30>><<sub 1>><<npcincr Eden dom 1>><</link>><<gdom>> <br> <<else>> <<if $_type is "plant">> The <<person>> retracts <<his>> vines and retreats into the forest right as Eden emerges. <<nnpc_He "Eden">> <<else>> Eden emerges and <</if>> helps you collect yourself. "Damn <<= ["hikers","bastard"].includes($_hikers) ? $_hikers : "<<beastSimple $_hikers true>>">>," <<nnpc_he "Eden">> mutters. "Are you okay?" <br><br> <<clotheson>> <<endcombat>> <<if $gwylanRescue?.eden gte 1>> <<if $worn.neck.name is "familiar collar">> Eden glances at your collar, frowning in thought. Whatever <<nnpc_hes "Eden">> thinking, <<nnpc_he "Eden">> doesn't voice it. <<else>> Eden glances around for a moment. "We must be in too deep for that shopkeep," <<nnpc_he "Eden">> says. <</if>> <br><br> <</if>> <<if $eden_rescue isnot 1>> <<set $eden_rescue to 1>> Eden pats you on the shoulder. "I was able to hear you because I happened to be in the area," <<nnpc_he "Eden">> says. "<span class="gold">I might not always be around, but I should be able to save you anywhere in the forest.</span> Give me a shout if you're in trouble." <br><br> <</if>> <<forestCabinReturnLinks>> <</if>> <<else>> <span class="red">Invalid rescue in $passage: <<print $canRescue>>!</span> Please report this. <br><br> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <</if>> <</widget>> <<widget "gwylanRescueApology">> <<if $gwylanRescue.failed is "WraithFight">> Gwylan quickly hugs you as you walk in. "I'm so sorry. <<elseif $gwylanRescue.failed is "Wraith">> <<set $_noFollowUp to true>> <<if _args.includes("shop") and !_args.includes("intro")>> <<nnpc_He "Gwylan">> looks you over with concern. <<else>> "Hey," Gwylan says as you walk in. <<nnpc_He "Gwylan">> looks concerned. <</if>> "Are you feeling okay? You look a little pale, and I thought I heard you screaming the other night..." <<else>> <<if _args.includes("shop")>> <<if _args.includes("intro")>> <<nnpc_He "Gwylan">> rubs the back of <<nnpc_his "Gwylan">> neck. "By the way, sorry <<else>> "Hey," Gwylan says as you walk in. "Sorry <</if>> <<else>> <<nnpc_He "Gwylan">> can't meet your gaze. "Sorry <</if>> <</if>> <<if $_noFollowUp>> /* Nothing */ <<else>> <<if $gwylanRescue.failed is "WraithFight">> I'm glad you were able to get away from the Ivory one." <<He>> steps away and rubs <<his>> neck. "It sure knows how to hold a grudge." <<elseif $gwylanRescue.failed is "EdenAttack">> for not being able to save you from <<= $gwylanRescue.eden gte 1 ? "Eden" : "the <<nnpc_title 'Eden'>>">>. I wasn't expecting <<nnpc_him "Eden">> to be such a brute." <<elseif $gwylanRescue.failed is "EdenShop">> for not being able to keep <<= $gwylanRescue.eden gte 1 ? "Eden" : "the <<nnpc_title 'Eden'>>">> from taking you. I had a plan... but I suppose <<nnpc_he "Eden">> made <<nnpc_his "Eden">> move too quickly for it to take effect." <<else>> for not saving you before, but I can't contest <<if $gwylanRescue.failed is "Eden" and $gwylanRescue.eden gte 1>> Eden. Nobody's bulletproof." <<elseif $gwylanRescue.failed is "Eden">> the <<nnpc_title "Eden">>. <<nnpc_Hes "Eden">> the second scariest thing in the forest." <<elseif $gwylanRescue.failed is "Black Wolf">> the alpha. I don't want the entire pack breaking my door down." <<elseif $gwylanRescue.failed is "bear">> a bear. We are but tasty, squishy morsels compared to them." <<else>> ...uh... the $gwylanRescue.failed? Wait, what were you fighting again? Who?" Gwylan rubs the back of <<nnpc_his "Gwylan">> neck. "<span class="red">Bweh. I think there's a bug here.</span>" <<nnpc_He "Gwylan">> shakes <<nnpc_his "Gwylan">> head. "<<gwylanCommand "Report this to PurityGuy">> when you have the time, okay, dear?" <</if>> <</if>> <</if>> <<if _args.includes("Robin")>> /* Todo: Gwylan, Robin gets different reactions when closer to Gwylan? */ Robin blinks, but doesn't question it. <</if>> <<set $gwylanRescue.failed to "">> <</widget>> <<widget "gwylanRescueApologyEden">> <<if $gwylanRescue.failed is "WraithFight">> Gwylan hugs you. "I'm so sorry that I couldn't free you from the Ivory one." <<nnpc_He "Gwylan">> rubs <<nnpc_his "Gwylan">> neck. "It sure knows how to hold a grudge." <br><br> Eden looks bemused. "The Ivory one? Save your ghost stories." <<elseif $gwylanRescue.failed is "Wraith">> Gwylan eyes you with concern. "I'm glad we found you this time. I thought I heard you scream the other night, but I couldn't find you." <br><br> Eden eyes you with suspicion. <<elseif $gwylanRescue.failed is "Eden" or $gwylanRescue.failed is "EdenAttack" or $gwylanRescue.failed is "EdenShop">> Gwylan frowns for a moment. <<if $gwylanRescue.failed is "EdenAttack">> "No hard feelings, but you best keep your hands to yourself this time. Play nice." <<else>> "I better see you playing nice this time." <</if>> <br><br> Eden sighs, crossing <<nnpc_his "Eden">> arms. "<<pShe>> needs to learn to obey me." <<if $gwylanSeen.includes("petplay") and $gwylanRescue.eden gte 4>> <br> Gwylan giggles. "<<pShe>> obeys me just fine. Maybe you need lessons." <br> "Don't push your luck, <<witch>>." <br> "Oh? Would you prefer a collar, then?" <br> "I have plenty." <<else>> Gwylan doesn't seem happy with that reply, but doesn't push it. <</if>> <br><br> <<elseif $gwylanRescue.failed is "Black Wolf">> <<nnpc_He "Gwylan">> can't meet your gaze. "Sorry for not saving you before, but I can't contest the alpha. I don't want the entire pack breaking my door down." <br><br> "You were attacked by the alpha? The black one?" Eden growls. "If that thing lays a single mangy paw on you, I'll hunt myself a nice black rug." <br><br> <<if $gwylanRescue.eden gte 4>> "Yes, surely you'll best it next time," Gwylan says with a laugh. "Just like the last nine times." <br><br> <</if>> <<elseif $gwylanRescue.failed is "bear">> <<nnpc_He "Gwylan">> can't meet your gaze. "Sorry for not saving you before, but I couldn't contest a bear alone. We are but tasty, squishy morsels compared to them." <br><br> Eden nods. <br><br> <</if>> <<set $gwylanRescue.failed to "">> <</widget>> <<widget "forestCabinReturnLinks">> <<link [[Go back to the cabin (0:30)|Forest Cabin Return]]>><<pass 30>><<endevent>><</link>> <br> <<link [[Say goodbye|Forest]]>><<endevent>><<set $eventskip to 1>><</link>> <br> <</widget>> <!-- Argument one is minimum --> <<widget "tending_bird_eggs">> <<if _args[0] gt 0>> <<set $_min to _args[0]>> <<if _args[1]>> <<set $_max to _args[0]>> <<else>> <<if $forest_nest and $forest_nest.type>> <<switch $forest_nest.type>> <<case 1>><<set $_max to (_args[0] + 2)>> <<case 2>><<set $_max to (_args[0] + 7)>> <<case 3>><<set $_max to (_args[0] + 4)>> <</switch>> <<else>> <<set $_max to (_args[0] + 4)>> <</if>> <</if>> <<wearProp "egg" 0 "bird">> <span class="green"><<tending_pick bird_egg $_min $_max>></span> <<else>> <span class="red">There's no intact eggs left.</span> <</if>> <</widget>> <<widget "forestBullyLeaves">> <br><br> After they leave, you try looking for a way to escape. You could try climbing the ropes to the branches, but the canopy is a long way up. It doesn't seem like there is any other way out without help, but drawing attention to yourself might make the situation worse. <br><br> <<link [[Climb|Forest Bully Climb]]>><</link>><<athleticsdifficulty 0 1055>> <br> <<link [[Call for help|Forest Bully Help]]>><</link>> <</widget>> <<widget "forestsnow">> The snow here has not been cleared in a long time. It's reaching up to your knees, and becomes deeper the further you continue. <br><br> <<link [[Turn back (0:15)|Forest]]>><<pass 15>><<if $foresthunt gte 1>><<set $foresthunt += 1>><</if>><</link>> <br> <<link [[Keep going|Forest Snow]]>><</link>> <</widget>> <<widget "gwylanRescueNotice">> <<if $gwylan_rescue isnot 1 or $gwylanSeen?.includes("ritual_sex") and ($worn.neck.name is "familiar collar" and !$gwylanRescue.seen.includes("collarScream") or $fox gte 6 and !$gwylanRescue.seen.includes("foxScream"))>> <<set _gwylanRescueNotice to true>> <<nnpc_He "Gwylan">> starts to walk off, but stops and turns around. "By the way," <<nnpc_he "Gwylan">> says. <<if $gwylan_rescue isnot 1>> <<set $gwylan_rescue to 1>> "I was able to hear you because you were close enough to my shop. <<if $gwylanSeen?.includes("ritual_sex")>> <<if $worn.neck.name is "familiar collar">> <<set $gwylanRescue.seen.pushUnique("collarScream")>> While you're wearing this..." <<nnpc_He "Gwylan">> brushes <<nnpc_his "Gwylan">> fingers against your collar affectionately. "<span class="forest-green">I'll be able to hear you throughout the entire forest.</span> Otherwise... <</if>> <<if $fox gte 6>> <<set $gwylanRescue.seen.pushUnique("foxScream")>> I'll be able to hear you up to the border of the deepest parts of the forest, but that's only as long as you have that <span class="orange">foxiness</span> to you. If you lose it... <</if>> <</if>> <span class="gold">If you go any further than the start of the lake, I won't be able to hear you.</span> Keep it in mind." <<elseif !$gwylanSeen?.includes("ritual_sex")>> <!-- Do nothing --> <<elseif $worn.neck.name is "familiar collar" and $fox gte 6 and !$gwylanRescue.seen.includesAny("collarScream","foxScream")>> <<set $gwylanRescue.seen.pushUnique("collarScream","foxScream")>> <<nnpc_He "Gwylan">> brushes <<nnpc_his "Gwylan">> fingers against your collar affectionately. "As long as you're wearing this, <span class="forest-green">I'll be able to hear you throughout the entire forest.</span> And even if you're not, as long as you have that <span class="orange">foxiness</span> to you that you do now, I'll be able to hear you up to the border of the deepest parts of the forest. Keep it in mind." <<elseif $worn.neck.name is "familiar collar" and !$gwylanRescue.seen.includes("collarScream")>> <<set $gwylanRescue.seen.pushUnique("collarScream")>> <<nnpc_He "Gwylan">> brushes <<nnpc_his "Gwylan">> fingers against your collar affectionately. "As long as you're wearing this, <span class="forest-green">I'll be able to hear you throughout the entire forest.</span> Keep it in mind." <<elseif $fox gte 6 and !$gwylanRescue.seen.includes("foxScream")>> <<set $gwylanRescue.seen.pushUnique("foxScream")>> "As long as you have that <span class="orange">foxiness</span> to you that you do now, I'll be able to hear you up to the border of the deepest parts of the forest. Keep it in mind." <</if>> <br><br> <</if>> <</widget>><<effects>> What gift would you like to give Gwylan? <br><br> <<food_gift_list>> <<if _food_gift_found is true>> <<skinicon "give">><<link [[Give gift (0:05)|Gwylan Gifts]]>><<pass 5>><<give_gift Gwylan>><</link>> <br> <</if>> <<refuseicon>><<link [[Reconsider|Gwylan Gifts List Reconsider]]>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<if $location is "forest_shop">> Gwylan continues rummaging around for something, not noticing your reconsideration at all. <<else>> Gwylan continues staring out at the sea, not noticing your reconsideration at all. <</if>> <br><br> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>> <<set _gift to $gift.handheld_gift || $gift.handheld>> <<wearProp _gift>> <<if $phase is 1>> "I've brought you something," you say. <<elseif $phase is 2>> "I made something," you say. "Just for you." <<else>> "I've made you a gift," you say. "I hope you like it." <</if>> <br><br> <<if $gift.name is "plum_pudding">> You hold out the plum pudding. <<if _gwylanTF.known and $location is "forest_shop">> Gwylan's eyes light up, and <<his>> fox ears stand up straight. <<else>> Gwylan's eyes light up. <</if>> "Oh my. You certainly know the fastest way to a <<personsimple>>'s heart." <<npcincr Gwylan dom 1>><<gyearning>> <br><br> <<He>> takes a large bite of it. "Made with real plums, too! Perfection." <<He>> closes <<his>> eyes and places a hand on <<his>> cheek as <<he>> chews. "I adore plums. The perfect texture and balance of sweetness and tartness. You could even taste it without a tongue." <br><br> <<saveFavoriteFood "Gwylan" $gift.name>> <<earnFeat "Coven Comforts">> <<He>> opens <<his>> eyes and blushes, realising <<hes>> already eaten half of it. "Oh dear, how rude of me. This would taste much better shared." <<if $location is "forest_shop">> <<He>> nods to a small table tucked away in the corner of the shop. <</if>> <br><br> <<link [[Let Gwylan have all of it|Gwylan Gifts Plum]]>><<handheldon>><</link>> <br> <<link [[Share it|Gwylan Gifts Plum Share]]>><<handheldon>><<npcincr Gwylan lust 1>><</link>><<glust>> <br> <<elseif $gift.special.includes("spicy")>> You hold out the <<recipe_name $gift.name>>. Gwylan tilts <<his>> head. <<if $location is "cafe" and !(between($chef_state, 7, 8) and $chef_rework lte 30)>> "How did you sneak that past Sammy? Never mind, I'm sure I can squeeze that in alongside breakfast." <</if>> <<He>> smells it. "A spicy dish? I have trouble tasting those. I'm willing to try, though." <br><br> <<He>> takes a bite, and chews. <<His>> expression remains neutral. "Sorry, dear. I'm afraid I can't taste it at all." <<He>> smiles. "I won't let it go to waste, though. It might taste better shared." <<if $location is "forest_shop">> <<He>> nods to a small table tucked away in the corner of the shop. <</if>> <br><br> <<link [[Let Gwylan have all of it|Gwylan Gifts Spicy]]>><<handheldon>><</link>> <br> <<link [[Share it|Gwylan Gifts Spicy Share]]>><<handheldon>><<npcincr Gwylan lust 1>><</link>><<glust>> <br> <<elseif $gift.special.includes("drink")>> You hold out the <<recipe_name $gift.name>>. <<He>> tilts <<his>> head. "A brew of your own? I'm intrigued." <<He>> gently takes it in both hands and smells it. "Interesting." <<He>> swirls it, before taking a small sip. The small sip quickly turns into <<him>> chugging it. <br><br> <<link [[Next|Gwylan Gifts Drink End]]>><<handheldon>><</link>> <<else>> You hold out the <<recipe_name $gift.name>>. <<if $location is "cafe" and !(between($chef_state, 7, 8) and $chef_rework lte 30)>> "How did you sneak that past Sammy? Never mind, I'm sure I can squeeze that in alongside breakfast." <</if>> <<He>> inspects it for a moment, before taking it in <<his>> hands. "It smells wonderful," <<he>> says. "I'm sure it tastes just as good. It would taste better shared, though." <<if $location is "forest_shop">> <<He>> nods to a small table tucked away in the corner of the shop. <</if>> <br><br> <<link [[Let Gwylan have all of it|Gwylan Gifts Food]]>><<handheldon>><</link>> <br> <<link [[Share it|Gwylan Gifts Food Share]]>><<handheldon>><<npcincr Gwylan lust 1>><</link>><<glust>> <br> <</if>><<effects>><<run statusCheck("Gwylan")>> You shake your head, and insist on <<him>> eating it all. <br><br> <<if $location is "forest_shop">> The whole shop seems to brighten up for a little while after <<he>> finishes it. <<else>> <<He>> continues watching the sea as <<he>> finishes it. <<Hes>> practically glowing. <</if>> <br><br> <<if C.npc.Gwylan.dom gte 50>> "You deserve a treat too, <<pcpetname "Gwylan">>." <<if $location is "cafe" and !(between($chef_state, 7, 8) and $chef_rework lte 30)>> <<He>> leans over the table and gives you a quick peck on the cheek. <<else>> <<He>> leans over the counter and gives you a quick peck on the cheek. <</if>> <<if !$gwylanSeen.includes("partners")>> "Don't think about that too much," <<he>> says with a blush. <</if>> <<else>> "That was very thoughtful of you, dear. Thank you." <</if>> <br><br> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>> <<if $location is "forest_shop">> <<He>> leads you over to the small table, before disappearing through a dark doorway. <<if $gwylanSeen.includes("dog_bowl")>> <<if _gwylanStatus.includesAny("dom", "lust") or $gwylanSeen.includes("dog_bowl_name")>> <<if !$gwylanSeen.includes("dog_bowl_name")>> <<set $gwylanSeen.pushUnique("dog_bowl_name")>> <<He>> returns with a <span class="pink">clean dog bowl</span>, which <<he>> puts in front of you. It's different from last time. Small gems are embedded around it, and <span class="pink">your name is engraved on the side</span>. <br><br> Gwylan sways back and forth, blushing. "You've been such a <<pcpetname "Gwylan" "good">> for me, so I thought I'd make something to show you just how much I appreciate you, too. I hope you like it." <<npcincr Gwylan dom 5>><<ggyearning>> <br><br> <<else>> <<He>> returns with <span class="pink">your dog bowl</span>. <</if>> <<else>> <<He>> returns with a <span class="pink">clean dog bowl</span>, which <<he>> puts in front of you. <</if>> <<He>> places the remaining pudding in it. <<else>> <<set $gwylanSeen.pushUnique("dog_bowl")>> "Oh no. I'm all out of clean dishes. Unless..." You hear some dishes clanking around. <br><br> <<He>> re-emerges, and places a <span class="pink">clean dog bowl</span> in front of you. <<He>> blushes as <<he>> puts the rest of the pudding in it. "I'm sorry about this, dear. I promise it's sanitary." <<if $worn.neck.collared is 1>> <<He>> looks at your collar. "I have a feeling you don't mind." <</if>> <</if>> <br><br> <<link [[Eat normally|Gwylan Gifts Food Pet Normal]]>><<set $phase to "plum">><<stress -2>><</link>><<lstress>> <br> <<if hasSexStat("deviancy", 2)>> <<link [[Eat like a pet|Gwylan Gifts Food Petplay]]>><<set $phase to "plum">><<npcincr Gwylan lust 4>><</link>><<deviant2>><<gglust>> <<else>> <<insufficientStat "deviancy" "to eat like a pet">> <</if>> <br> <<else>> <<He>> places half of what remains of the pudding on your plate. You did a good job. It's quite tasty. <br><br> <<if C.npc.Gwylan.dom gte 50>> "You deserve a treat too, <<pcpetname "Gwylan">>." <<if $location is "cafe" and !(between($chef_state, 7, 8) and $chef_rework lte 30)>> <<He>> leans over the table and gives you a quick peck on the cheek. <<else>> <<He>> leans over the counter and gives you a quick peck on the cheek. <</if>> <<if !$gwylanSeen.includes("partners")>> "Don't think about that too much," <<he>> says with a blush. <</if>> <<else>> "That was very thoughtful of you, dear. Thank you." <</if>> <br><br> <<gwylanOptions>> <</if>><<effects>><<run statusCheck("Gwylan")>> Gwylan eats in silence. It really doesn't seem like <<hes>> able to taste it at all. "I'm sure it's delicious," <<he>> says. "I appreciate the thought." <br><br> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>> <<if $location is "forest_shop">> <<He>> leads you over to the small table, before disappearing through a dark doorway. <<if $gwylanSeen.includes("dog_bowl")>> <<if _gwylanStatus.includesAny("dom", "lust") or $gwylanSeen.includes("dog_bowl_name")>> <<if !$gwylanSeen.includes("dog_bowl_name")>> <<set $gwylanSeen.pushUnique("dog_bowl_name")>> <<He>> returns with a <span class="pink">clean dog bowl</span>, which <<he>> puts in front of you. It's different from last time. Small gems are embedded around it, and <span class="pink">your name is engraved on the side</span>. <br><br> Gwylan sways back and forth, blushing. "You've been such a <<pcpetname "Gwylan" "good">> for me, so I thought I'd make something to show you just how much I appreciate you, too. I hope you like it." <<npcincr Gwylan dom 5>><<ggyearning>> <br><br> <<else>> <<He>> returns with <span class="pink">your dog bowl</span>. <</if>> <<else>> <<He>> returns with a <span class="pink">clean dog bowl</span>, which <<he>> puts in front of you. <</if>> <<He>> places half of the meal in it. <<else>> <<set $gwylanSeen.pushUnique("dog_bowl")>> "Oh no. I'm all out of clean dishes. Unless..." You hear some dishes clanking around. <br><br> <<He>> re-emerges, and places a <span class="pink">clean dog bowl</span> in front of you. <<He>> blushes as <<he>> puts half of the meal in it. "I'm sorry about this, dear. I promise it's sanitary." <<if $worn.neck.collared is 1>> <<He>> looks at your collar. "I have a feeling you don't mind." <</if>> <</if>> <br><br> <<link [[Eat normally|Gwylan Gifts Food Pet Normal]]>><<set $phase to "spicy">><<stress -2>><</link>><<lstress>> <br> <<if hasSexStat("deviancy", 2)>> <<link [[Eat like a pet|Gwylan Gifts Food Petplay]]>><<set $phase to "spicy">><<npcincr Gwylan lust 4>><</link>><<deviant2>><<gglust>> <<else>> <<insufficientStat "deviancy" "to eat like a pet">> <</if>> <br> <<else>> <<He>> places half of the portion on your plate. You did a good job. It's quite tasty. "Even if I can't taste it, I can enjoy eating it with you," <<he>> says. "It adds just the slightest hint of sweetness." <br><br> <<gwylanOptions>> <</if>><<effects>><<run statusCheck("Gwylan")>> You shake your head, and insist on <<him>> eating it all. <br><br> <<if $location is "forest_shop">> <<He>> eats it rather quickly. <<else>> <<He>> slowly enjoys it as <<he>> continues to watch the sea. <</if>> "Thank you for the meal, dear." <br><br> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>> <<if $location is "forest_shop">> <<He>> leads you over to the small table, before disappearing through a dark doorway. <<if $gwylanSeen.includes("dog_bowl")>> <<if _gwylanStatus.includesAny("dom", "lust") or $gwylanSeen.includes("dog_bowl_name")>> <<if !$gwylanSeen.includes("dog_bowl_name")>> <<set $gwylanSeen.pushUnique("dog_bowl_name")>> <<He>> returns with a <span class="pink">clean dog bowl</span>, which <<he>> puts in front of you. It's different from last time. Small gems are embedded around it, and <span class="pink">your name is engraved on the side</span>. <br><br> Gwylan sways back and forth, blushing. "You've been such a <<pcpetname "Gwylan" "good">> for me, so I thought I'd make something to show you just how much I appreciate you, too. I hope you like it." <<npcincr Gwylan dom 5>><<ggyearning>> <br><br> <<else>> <<He>> returns with <span class="pink">your dog bowl</span>. <</if>> <<else>> <<He>> returns with a <span class="pink">clean dog bowl</span>, which <<he>> puts in front of you. <</if>> <<He>> places half of the food in it. <<else>> <<set $gwylanSeen.pushUnique("dog_bowl")>> "Oh no. I'm all out of clean dishes. Unless..." You hear some dishes clanking around. <br><br> <<He>> re-emerges, and places a <span class="pink">clean dog bowl</span> in front of you. <<He>> blushes as <<he>> puts half of the food in it. "I'm sorry about this, dear. I promise it's sanitary." <<if $worn.neck.collared is 1>> <<He>> looks at your collar. "I have a feeling you don't mind." <</if>> <</if>> <br><br> <<link [[Eat normally|Gwylan Gifts Food Pet Normal]]>><<stress -2>><</link>><<lstress>> <br> <<if hasSexStat("deviancy", 2)>> <<link [[Eat like a pet|Gwylan Gifts Food Petplay]]>><<npcincr Gwylan lust 4>><</link>><<deviant2>><<gglust>> <<else>> <<insufficientStat "deviancy" "to eat like a pet">> <</if>> <br> <<else>> <<He>> places half of it on your plate. You did a good job. It's quite tasty. <br><br> "Thank you for the meal, dear." <br><br> <<gwylanOptions>> <</if>><<effects>><<run statusCheck("Gwylan")>> You eat from the bowl with utensils, like a normal person. <br><br> <<if $gwylanSeen.includes("romance") or _gwylanStatus.includes("lust")>> Gwylan stares at you, elbows on the table and head in <<his>> hands, as if you were the most interesting thing in the world. <<if _gwylanTF.known>> <<His>> tail flits back and forth behind <<him>>. <</if>> <br><br> When you've finished, <<he>> walks around the table and pets your head. <<if $phase is "plum">> "You're so thoughtful, <<pcpetname "Gwylan">>." <<if $gwylanSeen.includes("partners") or _gwylanStatus.includes("lust")>> <<He>> wraps <<his>> arms around you and kisses you on the cheek. <</if>> <<else>> "<<pcPetname "Gwylan" "good">>." <</if>> <<else>> Gwylan keeps looking up at you. <<if $phase is "plum">> "This was very thoughtful of you, dear. Thank you." <<elseif $phase is "spicy">> "Even if I can't taste it, I can enjoy eating it with you," <<he>> says. "It adds just the slightest hint of sweetness." <<else>> "Thank you for the meal, dear." <</if>> <</if>> <br><br> Gwylan takes care of the dishes, before returning to the counter. <br><br> <<set $phase to 0>> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>> <<set $gwylanSeen.pushUnique("petplay")>> You lean your head down, eating and licking your food <<if $hypnosis_traits.devotion gte 3>> like a good little pet. <<hypnosisText "You're such a good pet for <<gwylanHypnoName>>. The thought fills you with joy and bliss. <<trauma -2>><<ltrauma>>">> <<else>> as if you were Gwylan's pet. <</if>> <<deviancy2>> <<He>> giggles, and walks around the table. <<He>> pets the back of your head, and you lean into it. <<if $phase is "plum">> "You're so thoughtful, <<pcpetname "Gwylan">>." <<if $gwylanSeen.includes("partners") or _gwylanStatus.includes("lust")>> <<He>> wraps <<his>> arms around you and kisses you on the cheek. <</if>> <<else>> "<<pcPetname "Gwylan" "good">>." <</if>> <br><br> You lick your bowl clean. Gwylan takes care of the dishes, before returning to the counter. <br><br> <<set $phase to 0>> <<gwylanOptions>><<effects>> <<He>> lets out a refreshed sigh. "That was delicious. Thank you, dear. May I keep the container? I could fill it with small seashells, or some such." You nod, which prompts <<him>> to smile. <br><br> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>> <<set $gwylanSeen.pushUnique("clothes_intro")>> <<if $location is "forest_shop">> <<switch $speech_attitude>> <<case "meek">> "This shop is cosy, but a little strange," you say. "It's like a big maze." <<case "bratty">> "What's with this place?" you ask. "It's cute, but I can't keep track of anything here." <<default>> "Why is your shop like this?" you ask. "It's homely, but it's so hard to keep track of anything." <</switch>> <<else>> <<switch $speech_attitude>> <<case "meek">> "Your shop is cosy, but strange," you say. "It's like a big maze." <<case "bratty">> "What's with your shop?" you ask. "It's cute, but I can't keep track of anything there." <<default>> "Why is your shop so strange?" you ask. "It's homely, but it's so hard to keep track of anything there." <</switch>> <</if>> <br><br> <<if _gwylanStatus.includes("cautious")>> <<His>> head tilts as <<he>> looks you up and down. <<His>> eyes linger on the left side of your chest for just a moment, before looking back up and smiling at you. <<else>> <<He>> smiles at you. <</if>> "If you come around enough, you'll get used to it. If you think about what you're looking for hard enough, you might get an idea of how you can find it." <<He>> pauses to look you over<<if $auriga_scar gte 1>> again<</if>>. <br><br> "For everything you do find, there must be a story to match, so when you find something interesting..." <<He>> leans forward. "<span class="teal">Come tell me about it!</span> Even if it's unpleasant. <i>Especially</i> if it's unpleasant. You shouldn't keep such things to yourself." <br><br> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>><<set _clothesTalk to $clothesBeingTalkedAbout>><<unset $clothesBeingTalkedAbout>> You go to show Gwylan the <<print setup.specialClothesSets[_clothesTalk].text>>, but there's nothing there. <br><br> Something's gone wrong. There's a hole in the world in the shape of the clothes you were just holding. <span class="red">You have a feeling that you should tell some higher power about this clear bug in reality.</span> You should tell them that the '<<print setup.specialClothesSets[_clothesTalk]>>' set was not found in the forest shop. <br><br> Gwylan gives you a look of concern. "Are you feeling alright? You look a little dizzy." <span class="red">Your sense of control shatters</span>, but only for a moment. <<lcontrol>><<gcontrol>> <br><br> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>><<set _clothesTalk to $clothesBeingTalkedAbout>><<unset $clothesBeingTalkedAbout>> <<set $gwylanSeen.pushUnique("clothes_talk_cheated")>> You show Gwylan the <<print setup.specialClothesSets[_clothesTalk].text>>, and try to make up a story to go along with it. <br><br> <<He>> rests <<his>> head in <<his>> hand and looks bored. "You don't need to lie to me. <span class="pink">I'm only interested in stories that actually happened.</span> Come back and show me again when you've got some real experiences to share." <br><br> <span class="pink">It seems there's no use in showing off anything that you didn't earn.</span> <br><br> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>><<set _clothesTalk to $clothesBeingTalkedAbout>><<unset $clothesBeingTalkedAbout>> <<set $gwylanSeen.pushUnique("clothes_talk_bypassed")>> You show Gwylan the <<print setup.specialClothesSets[_clothesTalk].text>>, and try to remember how you found it. You pause. The memory is foggy. <br><br> You think harder. The memory feels alien, as if it was something you experienced... <br><br> "...in another life?" Gwylan finishes your thought before you can speak it. <<Hes>> looking at you intently. "Like a memory you know you never lived through, but you can just barely remember regardless? A memory with no name to match?" <br><br> You nod. <<He>> looks fascinated. "I've had such moments myself. Like when I..." <<He>> stops <<himself>> as <<he>> looks you over. "Never mind, it's likely just déjà vu. <span class="blue">Maybe if you try to re-enact those memories, it'll clear up.</span> Come tell me all about it when you do!" <br><br> <span class="blue">It seems there's no use in showing off anything that you don't have your own stories for.</span> <br><br> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>><<set _clothesTalk to $clothesBeingTalkedAbout>><<unset $clothesBeingTalkedAbout>> <<set $gwylanSeen.pushUnique("clothes_talk_savescum")>><<run localStorage.setItem("gwylanTalk", "seen")>> You show Gwylan the— <br><br> "Stop," <<he>> says, holding a hand up. <<His>> smile is bittersweet. "<<pcPetname "Gwylan" "simple">>... <<if $gwylanSeen.includes("yearning")>> are you so desperate to spend time with me?" <<else>> does your thirst for knowledge know no bounds?" <</if>> <br><br> You frown. "What are you talking about? I just want to ask about the <<print setup.specialClothesSets[_clothesTalk].text>>." <br><br> "And many others, I'm sure." Gwylan closes <<his>> eyes. "Indulgence is a danger you must always be wary of. Those who would devour anything put in front of them, without giving time to recover, will find themselves in a barren home with barren crops... and they too will, inevitably, starve." <br><br> <<His>> eyes open again, and lock on yours. "You need not gorge yourself on your curiosity. This is not a choice I can make for you, but <span class="lblue">please, pace yourself. Take time to stop and smell the roses.</span> I'll still be here tomorrow, I promise." <br><br> <<gwylanOptions>> <!-- Holidays --><<effects>><<run statusCheck("Gwylan")>> You browse all the Halloween costumes around the shop, finding each one easily. <br><br> <<if $worn.upper.name.includes("witch dress") and $worn.lower.name.includes("witch skirt")>> <<He>> points at the witch costume you're wearing. "I think there's something wrong with the fit on yours. Would you mind posing for me?" <br><br> <<link [[Pose for Gwylan (0:20)|Gwylan Talk Clothes Halloween 2]]>><<pass 20>><<set $phase to 1>><</link>> <br> <<else>> "Hey, could you bring that dress here for a moment?" <<he>> asks, pointing to one of the witch costumes. You oblige, and <<he>> holds the dress and hat up in front of you. <br><br> "I think there's something wrong with the fit. Would you mind trying it on for me?" <br><br> <<link [[Try it on for Gwylan (0:20)|Gwylan Talk Clothes Halloween 2]]>><<pass 20>><<set $phase to 0>><</link>> <br> <</if>> <<link [[Do not|Gwylan Talk Clothes Halloween No]]>><</link>> <br><<effects>><<run statusCheck("Gwylan")>><<set $daily.gwylan.clothesTalk++>> <<set $gwylanTalked.pushUnique("halloween")>> <<if $phase is 1>> <<handheldundress "gwylan_clothes_halloween">><<handheldwear 106>> You hunch over and palm your hands to your nose as if you're plotting something. <<if !$worn.head.name.includes("witch hat")>> <<set $hatGiven to true>> <<headundress "gwylan_clothes_halloween">> <<if $worn.upper.name is "gothic witch dress">> <<headwear 76 "black" "green">> <<else>> <<headwear 7 "black" "green">> <</if>> A witch hat is dropped on your head to complete the look, briefly obscuring your vision. You lift it to see Gwylan inspecting you, <<his>> hand to <<his>> chin. <<else>> Gwylan inspects you, <<his>> hand to <<his>> chin. <</if>> <<else>> <<undress "gwylan_clothes_halloween">><<upperwear 25 "black" "green">><<headwear 7 "black" "green">><<handheldwear 106>><<feetwear 7 "black">> You nod your head. "Great!" Gwylan exclaims, grabbing you by the wrist and pulling you closer. <br><br> <<He>> twirls you around, <span class="lewd">dextrously stripping your clothes with ease</span>. It almost feels like they're floating away. <<His>> hands intrude on your more sensitive spots as <<he>> lifts one of your legs, then the other. Before you know it, you're entirely naked. <<arousal 800>><<garousal>> <br><br> Finally, <<he>> pulls the dress down over you. A witch hat is dropped on your head to complete the look, briefly obscuring your vision. You lift it to see Gwylan inspecting you, <<his>> hand to <<his>> chin. <</if>> <br><br> "One moment." <<He>> disappears behind a shelf, and returns with a broom. <<He>> puts it in your hands, before vanishing once again, this time through a dark doorway. You hear something scraping against wood. A moment later, <<he>> drags a cauldron into the room. "Here, use this." <br><br> You spin the broom around and stick the end into the cauldron, doing your best to look mischievous. Gwylan smiles. "Perfect, you look ready to put a hex on me. Next, the coat." <<He>> grips your wrist again, grabbing the jacket of the vampire costume with <<his>> other hand. <br><br> <<switch $speech_attitude>> <<case "meek">> "W-wait, I thought you were just checking the fit!" you say. <<case "bratty">> "Hey, you said you were just checking the fit," you say. <<default>> "Wait," you start, "I thought you said you were just checking the fit." <</switch>> <br><br> "Might as well check them all while we're here!" <<he>> says with a laugh. <br><br> <<link [[Next|Gwylan Talk Clothes Halloween 3]]>><</link>> <br><<effects>><<set _tf to checkTFparts()>><<run statusCheck("Gwylan")>> <<if $phase isnot 1>> <<headruined true>><<upperruined true>><<lowerruined true>><<feetruined true>> <</if>> <<if $hatGiven>> <<unset $hatGiven>><<headruined true>> <</if>> <<handheldruined true>><<storeon "gwylan_clothes_halloween">><<undress "gwylan_clothes_halloween">> <<upperwear 106 undefined "red">><<lowerwear 47>> <span class="lewd">Your clothes are gone,</span> a vampire costume in their place. Gwylan looks you up and down. "Pose like you're going to attack me." <br><br> You put your arms up towards Gwylan, like you're going to grab <<him>>. <br><br> "No, really get into it. Like you're going to lunge and bite me!" <br><br> <<if _tf.angelWings or _tf.fallenAngelWings or _tf.demonWings or _tf.birdWings>> <<link [[Flap your wings like a bat|Gwylan Talk Clothes Halloween 4]]>><<set $phase to 1>><</link>> <<else>> <<link [[Put your arms out and flap them like a bat|Gwylan Talk Clothes Halloween 4]]>><<set $phase to 1>><</link>> <</if>> <br> <<link [[Bare your teeth|Gwylan Talk Clothes Halloween 4]]>><<set $phase to 2>><</link>> <br> <<link [[Lunge and bite Gwylan|Gwylan Talk Clothes Halloween 4]]>><<set $phase to 3>><<npcincr Gwylan lust 2>><</link>><<glust>> <br><<effects>><<set _tf to checkTFparts()>><<run statusCheck("Gwylan")>> <<if $phase is 1>> <<if _tf.fallenAngelWings or _tf.demonWings>> You oustretch your arms and flap your wings, doing your best impression of a terror of the night. Gwylan claps. "Very scary, you're a natural!" <<elseif _tf.angelWings or _tf.birdWings>> You oustretch your arms and flap your wings, doing your best impression of a terror of the night. It's a little off because of your feathers, but Gwylan claps. "Very scary, you're a natural!" <<else>> You stretch your arms to your sides and start flapping them as if you were a bat. Gwylan giggles. "Good enough, I suppose." <</if>> <<elseif $phase is 2>> You bend your fingers into a more intense grabbing gesture, and bare your <<if _tf.traitsFangs>> sharp fangs at Gwylan. "Yeah, just like..." <<He>> pauses, and leans in, getting a closer look at them. "Wow, those are pointy." <<He>> cups your cheek, and for a moment, you think <<hes>> going to try and feel them. <<He>> blushes and pulls <<his>> hand away. "Y-yeah, good job, very scary!" <<npcincr Gwylan lust 1>><<glust>> <<else>> teeth at Gwylan. "Yeah, just like that! Very scary." <</if>> <<else>> You lick your <<if _tf.traitsFangs>>fangs<<else>>teeth<</if>> and lunge for Gwylan. <<He>> expects you to stop short. You don't. <br><br> You grab <<him>>, and <<if _tf.traitsFangs>> <<set $gwylanSeen.pushUnique("neck_bite")>> <span class="red">sink your fangs right into <<his>> neck</span>. <<He>> cries out and gasps. <br><br> <<if C.npc.Gwylan.lust gte 25>> <<He>> squirms, managing to shake you off before quickly getting low to the ground, as if <<he>> were about to pounce. <<He>> lunges and <<if _gwylanTF.fangs is "revealed">> <span class="red">bites you back with <<his>> own sharp fangs.</span> <<pain 7>><<ggpain>> <br><br> <<He>> withdraws and covers <<his>> mouth, blushing. <<elseif $hallucinations gte 2>> <<set $gwylanSeen.pushUnique("gwylan_fangs")>> <span class="lewd">bites you back</span>. <span class="red">Hard. You think you feel skin break.</span> <<pain 7>><<ggpain>> <br><br> <<He>> withdraws. <span class="lewd">For a moment, <<his>> teeth appear sharp, much like yours.</span> <<He>> blushes, covering <<his>> mouth. <<else>> <span class="lewd">bites you back</span>. It's not nearly as hard as you did, but it still hurts. <<pain 3>><<ggpain>> <br><br> <<He>> withdraws, covering <<his>> mouth and blushing. <</if>> <<if _gwylanTF.known>> "Sorry. Instincts." <<else>> "S-sorry, I don't know what came over me!" <</if>> <br><br> The two of you stand in silence for a moment, before <<he>> retreats behind a counter. <<He>> ducks down, re-emerging with some damp alcohol wipes. <<He>> gingerly cleans the bite marks <<he>> left on you, before doing the same to the ones you left on <<him>>. <<npcincr Gwylan lust 6>><<gglust>> <<else>> After a moment's hesitation, <<he>> lightly smacks you on the top of your head. "Could you please let go?" <br><br> You pull away, licking <<his>> blood off of your fangs suggestively. <<His>> face is bright red. <<He>> quickly bends behind a counter and produces a small hand mirror, inspecting the wound you just left. <<He>> runs <<his>> fingers over the red pinpricks and exhales. <<npcincr Gwylan lust 3>><<glust>> <</if>> <<else>> <span class="lewd">bite <<him>> on the neck</span>. <<He>> yips in surprise, but doesn't push you away. <br><br> After a moment's hesitation, <<he>> lightly smacks you on the top of your head. "Could you please let go?" <br><br> You pull away. <<He>> quickly bends behind a counter and produces a small hand mirror, inspecting <<his>> neck. You left a mark. <<He>> runs <<his>> fingers over it. <</if>> <br><br> <<He>> reaches up for a shelf, and pulls down a dark green scarf, wrapping it around <<his>> neck. "I suppose I asked for that." <<He>> fails to make eye contact with you initially, but shakes it off. <<His>> face is no less red, though. "L-let's just move on." <</if>> <br><br> Before you can protest, <<he>> twirls you again, stripping you naked once more. <br><br> <<link [[Next|Gwylan Talk Clothes Halloween 5]]>><</link>> <br><<effects>><<run statusCheck("Gwylan")>><<storeon "gwylan_clothes_halloween">> It all passes by in a blur. One moment, you're a mummy defending your tomb. The next, a silent scarecrow standing in eternal vigil. You're a skeleton playing its ribs like a xylophone, then a pumpkin in a patch. <br><br> With a final twirl, Gwylan redresses you in your original clothes. You're both panting from all the movement. You can't deny that you had a lot of fun, though. <<stress -6>><<trauma -20>><<lstress>><<lltrauma>> <br><br> <<switch $speech_attitude>> <<case "meek">> "D-did you enjoy that?" you ask. "Was there anything wrong with the costumes?" <<case "bratty">> "Done playing dressup with me?" you ask. "Were the costumes all to your liking?" <<default>> "Did you inspect me enough?" you ask. "Did the costumes all measure up?" <</switch>> <br><br> "R-right. Costumes," <<he>> stammers, before giving you a big smile. "Anything can be a costume. I think what someone defines as a costume says a lot about them. It's an opportunity for raw self-expression. Even if you're unrecognisable, you're showing off an intimate part of yourself. Like being inside-out." <<He>> giggles. "Maybe that's why it's so scary to some people." <br><br> <<He>> pats you on the head. "Thanks for indulging me." <<gyearning>> <br><br> <<endevent>><<npc Gwylan>><<person1>> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>> <<unset $gwylanPassTime>> You shake your head. <br><br> "Shy? That's alright, I can try it myself." There's a hint of disappointment in <<his>> voice, but you might have imagined it. <br><br> <<endevent>><<npc Gwylan>><<person1>> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>> You ask Gwylan about the witch costumes around the shop. <br><br> "These are some of my favourites," <<he>> says. "They're very comforting. Easy to make, too. When did you start finding them around?" <br><br> <<if setup.specialClothesSets.halloween.requirements()>> <<link [[Say they appeared around Halloween|Gwylan Talk Clothes Witch 2]]>><<set $phase to 1>><</link>> <br> <</if>> <<if setup.specialClothesSets.witch.requirements()>> <<link [[Say they appeared after you became accustomed to tentacle rape|Gwylan Talk Clothes Witch 2]]>><<set $phase to 2>><<npcincr Gwylan dom 1>><<set $gwylan.progress++>><<set $daily.gwylan.clothesTalk++>><</link>><<gyearning>> <<else>> <span class="blue">There might be an alternative story to tell about this outfit...</span> <</if>> <br> <<link [[Say you don't remember|Gwylan Talk Clothes Forgot]]>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<set $gwylanTalked.pushUnique("witch")>> <<if $phase is 1>> You tell Gwylan that they started appearing alongside the rest of the Halloween costumes. <<He>> nods, as if expecting that answer. <<else>> <<set $gwylanSeen.pushUnique("likes_tentacles")>> You tell Gwylan that they started appearing after you were violated by many, many tentacles. You recount tales of being lost in writhing pleasure as you were enwreathed in them, until you became accustomed to their blissful touch. <br><br> Gwylan is fiercely blushing by the end, but looks fascinated. "There are scary things out there," <<he>> says. "Better to acclimate yourself to them, once you start seeing them. It's hard to close your eyes after they've been opened." <</if>> <br><br> <<endevent>><<npc Gwylan>><<person1>> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>> You ask Gwylan about the vampire jackets. <br><br> "A classic," <<he>> says. "I always found the different interpretations of vampires from different cultures fascinating. The real deal is always scarier, though." <br><br> You wait for <<him>> to explain, but <<he>> doesn't. <br><br> "So, when did you start seeing these?" <br><br> <<if setup.specialClothesSets.halloween.requirements()>> <<link [[Say they appeared around Halloween|Gwylan Talk Clothes Vampire 2]]>><<set $phase to 1>><</link>> <br> <</if>> <<if setup.specialClothesSets.vampire.requirements()>> <<link [[Say they appeared after you met Kylar's parents|Gwylan Talk Clothes Vampire 2]]>><<set $phase to 2>><<set $gwylan.progress++>><<set $daily.gwylan.clothesTalk++>><</link>> <<else>> <span class="blue">There might be an alternative story to tell about this outfit...</span> <</if>> <br> <<link [[Say you don't remember|Gwylan Talk Clothes Forgot]]>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<set $gwylanTalked.pushUnique("vampire")>> <<if $phase is 1>> You tell Gwylan that they started appearing alongside the rest of the Halloween costumes. <<He>> nods, as if expecting that answer. <<else>> <<set $gwylanSeen.pushUnique("kylar_parents")>> You tell Gwylan that you might have seen the real deal after all. You tell <<him>> all about your time with Kylar, and the grotesque monsters <<nnpc_his "Kylar">> parents became. <br><br> Gwylan listens intently with <<his>> arms crossed. <<He>> doesn't seem surprised by anything you're saying, until you mention that Kylar still lives inside the manor. <br><br> <<He>> sighs sadly when you're finished telling your story. "I've seen them, too. They wander the forest frequently, preying upon small animals. Two of the many 'monsters' that haunt it. You're either quite brave or quite foolish to get so close to them." <<He>> motions for you to come closer, looking very serious. There's an exhausted wisdom to <<his>> gaze. "Listen to me. There are people in this world who lack a shred of human empathy. People blinded by dogma. People who will..." <<He>> pauses for a moment to regain <<his>> composure. "People much scarier than the monsters they make. Mutilation is their fetish and judgement." <br><br> <<He>> steps back. "If you're going to swim with sharks, you'll need to grow thick skin and sharp teeth. Most that do simply become sharks themselves." <br><br> <<He>> tries to lighten up, but there's still something peculiar behind <<his>> eyes that you can't place. <<if $gwylanSeen.includes("kylar_kidnapped")>> "This is the same person who tried to kidnap you, isn't it? You seem to care about <<nnpc_him "Kylar">> a lot despite that." <<His>> smile looks a little less forced. "You're generous, being there for <<nnpc_him "Kylar">>." <<else>> "Your friend, Kylar, was it? Be kind to <<nnpc_him "Kylar">>. To live through such things must be unimaginable torment." <</if>> <</if>> <br><br> <<endevent>><<npc Gwylan>><<person1>> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>> You ask Gwylan about the mummy costume. <br><br> "I'm still trying to improve on this design," <<he>> says. "It's far too flimsy. Maybe I could try to sew in some straps. Or make it out of a textured linen instead." <br><br> <<He>> continues rattling off ideas for some time, before remembering you're there. "Sorry. When did you start seeing this around?" <br><br> <<if setup.specialClothesSets.halloween.requirements()>> <<link [[Say it appeared around Halloween|Gwylan Talk Clothes Mummy 2]]>><<set $phase to 1>><</link>> <br> <</if>> <<if setup.specialClothesSets.mummy.requirements()>> <<link [[Say it appeared after you were trapped in a cocoon|Gwylan Talk Clothes Mummy 2]]>><<set $phase to 2>><<set $daily.gwylan.clothesTalk++>><</link>> <<else>> <span class="blue">There might be an alternative story to tell about this outfit...</span> <</if>> <br> <<link [[Say you don't remember|Gwylan Talk Clothes Forgot]]>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<set $gwylanTalked.pushUnique("mummy")>> <<if $phase is 1>> You tell Gwylan that it started appearing alongside the rest of the Halloween costumes. <<He>> nods, as if expecting that answer. <<else>> You tell Gwylan that it appeared in the shop some time after you were wrapped up in a cocoon in the catacombs<<if $settings.spidersEnabled and $settings.bestialityEnabled>>, and tell <<him>> about the gigantic spiders<</if>>. <br><br> <<He>> nods along, and suddenly snaps <<his>> fingers. "Spider silk! That would make it look even better. Tough to cut if I can get it thick enough. Although, that would require me to harvest it myself, and last time I did that... so many eggs..." <<He>> shivers. <br><br> <<He>> rattles off yet more ideas. <</if>> <br><br> <<endevent>><<npc Gwylan>><<person1>> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>> You ask Gwylan about the scarecrow costume. <br><br> "I prefer stuffing it with real hay. The synthetic stuff is too itchy, and doesn't smell as nice. Although, it does have the benefit of never rotting. When did the shop start letting you see it?" <br><br> <<if setup.specialClothesSets.halloween.requirements()>> <<link [[Say it appeared around Halloween|Gwylan Talk Clothes Scarecrow 2]]>><<set $phase to 1>><</link>> <br> <</if>> <<if setup.specialClothesSets.scarecrow.requirements()>> <<link [[Say it appeared after you heroically defended the farm|Gwylan Talk Clothes Scarecrow 2]]>><<set $phase to 2>><<set $gwylan.progress++>><<set $daily.gwylan.clothesTalk++>><</link>> <<else>> <span class="blue">There might be an alternative story to tell about this outfit...</span> <</if>> <br> <<link [[Say you don't remember|Gwylan Talk Clothes Forgot]]>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<set $gwylanTalked.pushUnique("scarecrow")>> <<if $phase is 1>> You tell Gwylan that it started appearing alongside the rest of the Halloween costumes. <<He>> nods, as if expecting that answer. <<else>> <<set $gwylanSeen.pushUnique("farm_defended")>> You tell Gwylan that you started seeing it after you thoroughly thrashed Remy's attempts to burn down your farm. You tell <<him>> the whole story in great detail, about how each team was defeated through might and guile, and how the farm came out unscathed. <<if $wraith?.seenFarm>> You even mention the pale stranger that joined in. <</if>> <br><br> Gwylan listens with bated breath. <<He>> seems very invested, brightening up when you mention your triumphs, looking sullen when things seem grim, and <<if $wraith?.seenFarm>> becoming quite confused when you mention the pale figure. <<else>> gasping at every twist. <</if>> However, when you mention Remy by name, <<his>> face becomes hard to read. <br><br> "You punch far above your weight class," <<he>> finally says. "It makes sense. You were like a scarecrow, warding against the people trying to take something important from you. I bet the mere sight of you will make them think twice from now on." <</if>> <br><br> <<endevent>><<npc Gwylan>><<person1>> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>> You ask Gwylan about the skeleton costume. <br><br> "I didn't make this one," <<he>> says. "I don't remember stocking it. That's hardly unusual, though." <<He>> holds out <<his>> hands for the mask, and you give it to <<him>>. <br><br> <<He>> holds it up to <<his>> ear and gives it a few solid knocks. "Wow, I expected it to be plastic, but it feels solid. Quality. When did you find this?" <br><br> <<if setup.specialClothesSets.halloween.requirements()>> <<link [[Say it appeared around Halloween|Gwylan Talk Clothes Skeleton 2]]>><<set $phase to 1>><</link>> <br> <</if>> <<if setup.specialClothesSets.skeleton.requirements()>> <<link [[Say it appeared after you discovered the catacombs|Gwylan Talk Clothes Skeleton 2]]>><<set $phase to 2>><<set $daily.gwylan.clothesTalk++>><</link>> <<else>> <span class="blue">There might be an alternative story to tell about this outfit...</span> <</if>> <br> <<link [[Say you don't remember|Gwylan Talk Clothes Forgot]]>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<set $gwylanTalked.pushUnique("skeleton")>> <<if $phase is 1>> You tell Gwylan that it started appearing alongside the rest of the Halloween costumes. <<He>> nods, as if expecting that answer. <<else>> You tell Gwylan that it started appearing after you discovered the crypt below the old churchyard. <<He>> puts <<his>> hand to <<his>> chin and nods along as you explain. <br><br> "That makes sense. There's a lot of skeletons around there, although it's rarely used these days. The temple mostly cremates their dead, but even so, they used to bury the ashes, and there were some who preferred to be buried whole. Now, that whole area has been left to rot. Although, when I have free time, I like to visit and keep the dearly departed company." <<He>> starts to pace back and forth as <<he>> continues. <br><br> /* ToDo: Gwylan - Gwylan spends time at the churchyard once or twice a week */ "It's possible that the underground portion used to be more directly connected to the temple itself, or somewhere else. Perhaps a collapse cut it off. Or perhaps the cloister is simply too busy to tend to their dead." <<He>> looks up. "They certainly have their hands full these days. The world has changed." <</if>> <br><br> <<endevent>><<npc Gwylan>><<person1>> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>> You ask Gwylan about the futuristic bodysuit costume. <br><br> "Interesting design," <<he>> says. "Retro-future. Where did you find it?" <br><br> <<if setup.specialClothesSets.halloween.requirements()>> <<link [[Say it appeared around Halloween|Gwylan Talk Clothes Future Suit 2]]>><<set $phase to 1>><</link>> <br> <</if>> <<if setup.specialClothesSets.future_suit.requirements()>> <<link [[Say it appeared after you played a strange arcade cabinet too much|Gwylan Talk Clothes Future Suit 2]]>><<set $phase to 2>><<set $gwylan.progress++>><<set $daily.gwylan.clothesTalk++>><</link>> <<else>> <span class="blue">There might be an alternative story to tell about this outfit...</span> <</if>> <br> <<link [[Say you don't remember|Gwylan Talk Clothes Forgot]]>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<set $gwylanTalked.pushUnique("future_suit")>> <<if $phase is 1>> You tell Gwylan that it started appearing alongside the rest of the Halloween costumes. <<He>> nods, as if expecting that answer. <<else>> <<set $gwylanSeen.pushUnique("tenyclus")>> You tell Gwylan that it appeared after some strange occurrences involving an unusual arcade cabinet. About how the cabinet wasn't always there, and each time you played it, something strange followed. You finish the story with how you were nearly kidnapped by some strange people, but woke up back in your own room. You tell Gwylan that the machine simply vanished after that. <br><br> <<He>> blinks at you. "How much do you remember of the kidnapping?" <<he>> asks bluntly. <br><br> You explain that you remember seeing a factory, maybe the one on Elk street, and the smell of the colour pink. You don't remember much else. <br><br> Gwylan sighs. "Those memories probably aren't coming back, but that might be for the better. For your sake." <<He>> brightens up a bit. "Don't feel bad. My own curiosity has gotten the better of me plenty, and I've paid the price a fair few times." <</if>> <br><br> <<endevent>><<npc Gwylan>><<person1>> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>> You ask Gwylan about the pumpkin outfit. <br><br> "Oh, this is lush!" <<he>> says. "Vibrant, eye-catching. Gourd-geous. I'm not sure how this little pumpkin is supposed to stay on your head though." <<He>> moves it back and forth. "It even looks like the eyes are following you! When did you find these?" <br><br> <<if setup.specialClothesSets.halloween.requirements()>> <<link [[Say it appeared around Halloween|Gwylan Talk Clothes Pumpkin 2]]>><<set $phase to 1>><</link>> <br> <</if>> <<if setup.specialClothesSets.pumpkin.requirements()>> <<link [[Say it appeared after you learned how to cook many different foods|Gwylan Talk Clothes Pumpkin 2]]>><<set $phase to 2>><<set $daily.gwylan.clothesTalk++>><</link>> <<else>> <span class="blue">There might be an alternative story to tell about this outfit...</span> <</if>> <br> <<link [[Say you don't remember|Gwylan Talk Clothes Forgot]]>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<set $gwylanTalked.pushUnique("pumpkin")>> <<if $phase is 1>> You tell Gwylan that you found it around Halloween. <br><br> <<He>> nods. "I'm not sure what else I was expecting." <<else>> "This showed up after I learned how to cook. I think. That's the only correlation I can think of." <br><br> <<if _gwylanTF.known>> <<His>> fox ears perk up. <</if>> "Ooh, what can you make?" <br><br> You pause and think. <<set _foodsMentionedList to Object.values(setup.plants).filter(food => V.plants[food.name]?.recipe)>> "Let's see... <<recipe_name _foodsMentionedList.pluck().name "article">>, <<recipe_name _foodsMentionedList.pluck().name "article">>, <<recipe_name _foodsMentionedList.pluck().name "article">>, <<recipe_name _foodsMentionedList.pluck().name "article">>, <<recipe_name _foodsMentionedList.pluck().name "article">>..." You recount all the recipes you know to the best of your ability. Gwylan looks impressed. <br><br> "I know how to cook up a few things myself, although I specialise a bit. I prefer function over form. What about you?" <br><br> <<if $avery_mansion and $avery_mansion.food?.name isnot "none">> <<if $brownFoxRevealed>> <<if $avery_fate isnot "fallen" and $avery_fate isnot "kicked">> You shift side to side. "Avery is very particular about what <<nnpc_he "Avery">> wants to eat every night." <br><br> <<He>> gives you an understanding smile. <<if $avery_fate>> "Well, you had a chance to be free from that. If you ever need a place to hide from that big baby, you're always welcome here." <<elseif $fake_artefact is "Avery">> "You'll be free from <<nnpc_him "Avery">> soon." <<else>> "If that kind of life isn't agreeing with you, then we need to redouble our efforts to find the bones. I can't have my best customer getting thrashed around for letting the roast sit for thirty seconds too long." <</if>> <<else>> You shift side to side. "Avery was very particular about what <<nnpc_he "Avery">> wanted to eat every night." <br><br> <<He>> frowns. "I'm sorry to hear that, but I'm glad you're free from <<nnpc_him "Avery">>." <</if>> <<else>> <<if $avery_fate isnot "fallen" and $avery_fate isnot "kicked">> Your mind turns to Avery. "Yes. There's someone I know who's particular about what <<nnpc_he "Avery">> wants to eat every night." <br><br> <<He>> gives you an understanding smile. "Picky partners, I know all about that. Food is a wonderful way to see the best and worst of someone." <<else>> Your mind turns to Avery. "I was with someone who was very particular about what <<nnpc_he "Avery">> wanted for dinner every night. That relationship didn't work out, though." You pause. "For <<nnpc_him "Avery">>, at least." <br><br> <<He>> frowns. "I'm sorry to hear that, but it sounds like you were too good for <<nnpc_him "Avery">>." <</if>> <</if>> <<else>> You recount some of your kitchen mishaps. Gwylan lends a patient ear and a warm smile all the while. <</if>> <br><br> <<He>> leans back. "Maybe I'll spirit you away to my kitchen some time<<if $worn.upper.name is "pumpkin dress">>, little pumpkin<</if>>. I could certainly use the help." <</if>> <br><br> <<endevent>><<npc Gwylan>><<person1>> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>> You ask Gwylan about the Christmas costumes. <br><br> "Red and white are a great combination any time of the year," <<he>> starts, "but I have mixed feelings about stocking these." <<He>> stares at you for a moment, seemingly waiting for you to respond. "Get it? Stocking?" <br><br> <<He>> runs <<his>> hands along the Christmas hat, seeming to take comfort in the soft material. "Every season, someone tries to strike up a conversation with me about how it's actually a pagan holiday, as if it's not common knowledge." <br><br> <<if Time.hasDatePassed(12, 18)>> <<link [[Say it appeared around Christmas|Gwylan Talk Clothes Christmas 2]]>><<set $phase to 1>><</link>> <br> <</if>> <<if V.specialClothesEvents?.includes("skulduggery_gift")>> <<link [[Say it appeared after you left money in a house you broke into|Gwylan Talk Clothes Christmas 2]]>><<set $phase to 2>><<set $gwylan.progress++>><<set $daily.gwylan.clothesTalk++>><</link>> <<else>> <span class="blue">There might be an alternative story to tell about these outfits...</span> <</if>> <br> <<link [[Say you don't remember|Gwylan Talk Clothes Forgot]]>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<set $gwylanTalked.pushUnique("christmas")>> <<if $phase is 1>> You tell Gwylan that they appeared around Christmas. <<He>> nods, as if expecting that answer. <<else>> <<set $gwylanSeen.pushUnique("christmas_generosity")>> <<switch $speech_attitude>> <<case "meek">> "I... found these here after I left some money for a family in need," you say. "W-well, it was more than some. It was a lot. I think they needed it more than I did. They barely even had beds, I couldn't steal from them." <<case "bratty">> "I found these after I committed a reverse-robbery," you say. "I went in expecting to steal something, but I just... couldn't. They had nothing. They needed the money more than I did." <<default>> "I found these after I left money for a house I intended to steal from," you say. "They definitely needed it more than me." <</switch>> <br><br> Gwylan snickers. "What are you, Robin Hood? That's very noble of you. <<if $gwylanSeen.includesAny("caught", "caught_no_lewd")>> Why didn't you leave anything for me when you snuck in here?" <<He>> gives you a playful smile. "Only joking. If you did, I probably wouldn't ever find it." <<else>> Feel free to leave something behind for me too, if you ever break into the shop." <<He>> gives you a playful smile. "Only joking. If I caught you breaking in... well, never mind that." <</if>> <</if>> <br><br> <<endevent>><<npc Gwylan>><<person1>> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>> <<set $gwylanTalked.pushUnique("valentines")>> You walk around the shop with Gwylan, pointing out the various romantic clothing. Although, calling some of this 'clothing' is being generous. <br><br> You recount some of your intimate experiences as you walk. <<if isLoveInterest("Robin")>><<set _hasLI to true>>About Robin, and how you want to protect <<nnpc_him "Robin">>.<</if>> <<if isLoveInterest("Kylar")>><<set _hasLI to true>> <<if $syndromekylar>> About Kylar, and how you're the only one <<nnpc_he "Kylar">> has. <<else>> About Kylar, and your affection for <<nnpc_him "Kylar">> despite <<his>> odd mannerisms. <</if>> <</if>> <<if isLoveInterest("Whitney")>><<set _hasLI to true>>About Whitney, and the push and pull of torment and tenderness between you.<</if>> <<if isLoveInterest("Sydney")>><<set _hasLI to true>><<run statusCheck("Sydney")>> <<if _sydneyStatus.includes("corrupt")>> About Sydney, and how much <<nnpc_hes "Sydney">> changed for you. <<else>> About Sydney, and the weight of balancing your relationship with <<nnpc_his "Sydney">> obligations. <</if>> <</if>> <<if isLoveInterest("Avery")>><<set _hasLI to true>> <<if $averyragerevealed>> About Avery, and the dances of anger and endearment you go through. <<else>> About Avery, and how being paraded around like a trophy makes you feel. <</if>> <</if>> <<if isLoveInterest("Eden")>><<set _hasLI to true>>About Eden, and the way you try to banish <<nnpc_his "Eden">> loneliness.<</if>> <<if isLoveInterest("Alex")>><<set _hasLI to true>>About Alex, and all you've built together.<</if>> <<if isLoveInterest("Black Wolf")>><<set _hasLI to true>>About the pack, and the thrill of releasing your wild side.<</if>> <<if isLoveInterest("Great Hawk")>><<set _hasLI to true>>About your spouse, and the liberation of feeling the moor's winds between your fingers.<</if>> <<if !_hasLI>>About your isolation, and how you feel as though you're standing against the world alone.<</if>> About your own unique difficulties with romance, or what passes for romance to the average person of the town. <br><br> <<if isLoveInterest("Gwylan")>> About <<him>>, and how you're still going to keep your promise. <<His>> smile brightens. <br><br> <</if>> <<if $gwylanSeen.includes("romance")>> Gwylan lends a patient ear through it all, before speaking up <<himself>>. "I'll confess, Valentine's was my least favourite time of the year. You know how hesitant I was to be romantic with you. Once it starts, it all comes out like a flood." <br><br> <<He>> stops walking, and picks up one of the roses. A pink one. "It's not enough to be close. It's the gnawing, all-consuming yearning to be with the one you love. It's the dread of losing them. It's the fear of the future, tempered by the joy of the present. It's stopping to smell the roses, even when love hurts, and true love truly hurts." <<He>> tucks <<his>> head into the crook of your neck. <br><br> <<if isLoveInterest("Gwylan")>> "It was too much for me. I'm sorry I pushed you away, but I'm happy you're here with me now." <<else>> "You best remember your promise, dearest." <</if>> <<He>> continues thumbing the petals of the rose off to the side. <<elseif $gwylanSeen.includes("yearning") or $gwylanSeen.includesAll("ritual_sex", "pink_rose")>> Gwylan lends a patient ear through it all, before speaking up <<himself>>. "I'll confess, Valentine's is my least favourite time of the year. I'm not terribly romantic." <<He>> pauses. "I try not to be, at least. Too many... complicated emotions." <<His>> eyes seem to sharpen towards you at the word 'complicated'. "It's not all terrible, but in the long term, it's going to hurt. Infatuation is doomed to end in tragedy. Love hurts, and true love truly hurts." <br><br> <<He>> stops walking, and picks up one of the roses. A pink one. "Especially in a town like this. It looks so pretty from the outside, despite the thorns. But a careless grasp will leave your hands bloody all the same." <<His>> hand tenses up. <<He>> looks as though <<hes>> about to crush the head of the rose, but stops <<himself>>. <br><br> "Someone will always end up hurt, and carry that pain with them forever." <<He>> closes <<his>> eyes and places the rose back. "Is the joy worth the pain? Can one bear those memories for a lifetime?" <<else>> Gwylan lends a patient ear through it all, before speaking up <<himself>>. "I'll confess, Valentine's is my least favourite time of the year. I'm not terribly romantic." <<He>> stops walking, and picks up one of the roses. A pink one. <br><br> "It looks so pretty from the outside. The petals of infatuation appear comforting. Like you could wrap yourself in them and take shelter, alongside someone who can keep you... warm." <<His>> expression is hollow, <<his>> eyes unfocused. With two fingers, <<he>> snaps the head of the rose clean off. <br><br> "It's doomed to end in tragedy, in a town like this. Those feelings, that person, will fade away, and leave something ugly behind. Love hurts, and true love truly hurts." <<He>> crushes the head of the rose in <<his>> hand, and blows the ruined petals away. They're caught by a phantom breeze. After a moment of dancing through the air, they escape through a nearby window with unsettling precision. <</if>> <br><br> <<link [[Say nothing|Gwylan Talk Clothes Valentines Silent]]>><</link>> <br> <<if !$gwylanSeen.includes("romance")>> <<if !_hasLI>> <<link [[Agree with <<him>>|Gwylan Talk Clothes Valentines Agree]]>><</link>> <br> <</if>> <<if $gwylanSeen.includesAny("yearning", "pink_rose") and _hasLI>> <<link [[Tell <<him>> that <<hes>> wrong|Gwylan Talk Clothes Valentines Wrong]]>><<npcincr Gwylan dom 5>><</link>><<ggyearning>> <<else>> <<link [[Ask <<him>> where that came from|Gwylan Talk Clothes Valentines Ask]]>><</link>> <</if>> <br> <</if>> <<link [[Hug <<him>>|Gwylan Talk Clothes Valentines Hug]]>><<npcincr Gwylan dom 2>><</link>><<gyearning>> <br> <<if $gwylanSeen.includes("partners")>> <<link [[Tell <<him>> that you love <<him>>|Gwylan Talk Clothes Valentines Love]]>><<npcincr Gwylan dom 5>><</link>><<ggyearning>> <br> <</if>><<effects>><<run statusCheck("Gwylan")>> You don't know how to respond, so you don't. <br><br> After a few moments, <<he>> stops staring at <<if $gwylanSeen.includes("yearning")>> the rose <<else>> the broken stem of the rose <</if>> and shakes <<his>> head. <<if !$gwylanSeen.includes("romance")>> "Sorry, that was uncalled for. You didn't need to hear all that." <</if>> <<He>> returns to the counter without another word. <br><br> <<endevent>><<npc Gwylan>><<person1>> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>> <<switch $speech_attitude>> <<case "meek">> "There's more to live for," you say. "Love doesn't have to be romantic. Romance isn't all that important." <<case "bratty">> "It's a waste of time," you say. "I don't know how anyone can get caught up in romance in a life like this." <<default>> "There's more important things to worry about," you say. "Like not being sold off into slavery. Romance isn't important." <</switch>> <br><br> Gwylan winces, but smiles. "I'm sorry. Others shouldn't think like I do. Still, there's comfort in knowing I'm not alone." <<He>> returns to the counter without another word, tossing the <<if $gwylanSeen.includes("yearning")>> the rose <<else>> the broken stem of the rose <</if>> aside. <br><br> <<endevent>><<npc Gwylan>><<person1>> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>> <<switch $speech_attitude>> <<case "meek">> "Y-you're wrong," you say. "Life isn't that miserable." <<case "bratty">> "You're not the only one that life has chewed up and spat out. You need to learn to see the good in the bad." <<default>> "No, you're wrong. Life's not that miserable," you say. <</switch>> <br><br> <<He>> looks to you with surprise. <<He>> opens <<his>> mouth to speak, but you cut <<him>> off. <<switch $speech_attitude>> <<case "meek">> "If it wasn't for the people I love, I would have given up a long time ago. S-sure, this town takes its toll, but... <<case "bratty">> "If it wasn't for the people that love me, I wouldn't still be here. Sure, this hellhole is pure misery, but... <<default>> "If it wasn't for the relationships I've formed, I wouldn't still be kicking. Sure, this town is a horrible place, but... <</switch>> it could be worse. We could be suffering in it alone." <br><br> A long moment of silence passes. Gwylan's fists clench, but <<he>> chuckles under <<his>> breath. "Misery loves company," <<he>> whispers. <br><br> <<He>> slowly turns to you. "I don't expect anyone else to understand, but my troubles are mine alone. I shouldn't have shared them. It was inappropriate, and a moment of weakness." <<He>> gives you a half-forced smile. "Just forget about this, please." <<He>> returns to the counter. <br><br> <<endevent>><<npc Gwylan>><<person1>> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>> <<switch $speech_attitude>> <<case "meek">> "Uh... w-where did that come from?" you ask. "You're usually so cheery, what happened?" <<case "bratty">> "That was pretty heavy," you say. "What happened to cheery Gwylan?" <<default>> "I thought you were always cheery," you say. "What brought this on?" <</switch>> <br><br> <<He>> smiles sadly. "You're right, that was inappropriate. Sorry." <<He>> returns to the counter without another word. <br><br> <<endevent>><<npc Gwylan>><<person1>> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>> <<if $gwylanSeen.includes("partners")>> You wrap your arms around Gwylan and pull <<him>> close. <<His>> arms slowly wrap around you in turn. <<if $gwylanSeen.includes("romance")>> <<His>> embrace is tight. Desperate. Afraid to let go. <<else>> You feel a pinprick on your arm as <<he>> pokes you with the rose's thorns. "Hug a rose and get bloody, dear." <<He>> holds you a little tighter. <</if>> <<else>> You wrap your arms around Gwylan from behind. <<He>> yelps in surprise and blushes, grabbing your wrists. <<if _gwylanTF.tail is "revealed">> <<His>> tail puffs up against you. <<elseif _gwylanTF.tail is "visible">> <<set $gwylanSeen.pushUnique("gwylan_tail")>> Something fluffy pushes against you in response. You look down and see the briefest flash of a <span class="lewd">puffed-up tail. Coming from Gwylan.</span> It was so fast that you might have imagined it, though. <</if>> <br><br> You hold on tighter, even as <<he>> tries to pull your hands away. Eventually, <<he>> gives up and relaxes into it. <</if>> <br><br> You hold <<him>> until you decide <<hes>> had enough. <<switch $speech_attitude>> <<case "meek">> "Y-you sounded like you needed that," you say. "It's usually what makes me feel better." <<case "bratty">> "Sorry for getting handsy, but I didn't know what else to do, and you sounded like you needed one," you say. <<default>> "You sounded like you needed a hug," you say. <</switch>> <br><br> <<His>> shoulders slump, but <<he>> smiles. "I think I did. Thank you." <<gyearning>> <br><br> <<endevent>><<npc Gwylan>><<person1>> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>> <<if $gwylanSeen.includes("romance")>> <<switch $speech_attitude>> <<case "meek">> "I... I love you." <<case "bratty">> "You're not changing my mind. I'm still going to love you." <<default>> "I love you, even if you're just as prickly as that rose." <</switch>> <br><br> <<He>> huffs, but smiles. "I... I love you too, dear." <<He>> puts a hand over <<his>> chest. "I'm not sure I'll ever be used to saying that." <br><br> You pull <<him>> into a tight embrace. "It's okay. You have forever to get used to it." <<He>> eagerly returns your hug, <<if $bodysize gte 2>> pushing <<his>> head into the crook of your neck. <<else>> rubbing the top of your head with <<his>> other hand. <</if>> <br><br> You feel as though you could hold each other forever, too, but this reminds you that you have forever to enjoy it. For right now, you must part. <<He>> doesn't let you leave without a tender kiss, though. <<gwylanKiss>> <br><br> You return to the counter. <<else>> <<switch $speech_attitude>> <<case "meek">> "I... I love you, though." <<case "bratty">> "Quit being so dramatic. You've got someone who loves you standing right here." <<default>> "I love you, even if you're just as prickly as that rose." <</switch>> <br><br> <<He>> winces. "Stop using that word. It's not something I can return, and it's wasted on me." <<He>> looks down, refusing to look at you. <br><br> You grab <<him>> by the wrists, and force <<him>> to. <<switch $speech_attitude>> <<case "meek">> "Then, I cherish you," you say. "I-I mean it." <<case "bratty">> "I feel how I feel, and I won't hold back just because it's inconvenient for you to hear," you say. "I'm serious, you angsty little bitch." <<default>> "I love you," you repeat. "You won't push me away." <</switch>> <<His>> teeth clench, but you don't stop. "It won't last forever, so we just have to enjoy the time we do have, remember?" <br><br> "You can't understand," <<he>> says, <<his>> gaze turning dark. "I'm sorry that I've inflicted these feelings upon you." <<He>> slips <<his>> wrists free from your grip, and returns to the counter. "Put this out of your mind, dear." <</if>> <br><br> <<endevent>><<npc Gwylan>><<person1>> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>> You ask Gwylan about the rose wedding gown and suits. <<He>> almost looks nostalgic. <br><br> "I stocked these ages ago. I completely forgot about them. People rarely come all the way out here for wedding attire. It's a shame the roses are fake." <<He>> eyes you curiously. "Speaking of which, when did you start seeing these? Are you expecting to stand at the altar soon?" <br><br> <<if setup.specialClothesSets.valentines.requirements()>> <<link [[Say they appeared around Valentine's Day|Gwylan Talk Clothes Rose Wedding 2]]>><<set $phase to 1>><</link>> <br> <</if>> <<if setup.specialClothesSets.rose_wedding.requirements()>> <<link [[Say they appeared after Kylar tried to forcibly marry you|Gwylan Talk Clothes Rose Wedding 2]]>><<set $phase to 2>><<set $gwylan.progress++>><<set $daily.gwylan.clothesTalk++>><</link>> <br> <</if>> <<if !(setup.specialClothesSets.valentines.requirements() and setup.specialClothesSets.rose_wedding.requirements())>> <span class="blue">There might be an alternative story to tell about these outfits...</span> <br> <</if>> <<link [[Say you don't remember|Gwylan Talk Clothes Forgot]]>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<set $gwylanTalked.pushUnique("rose_wedding")>> <<if $phase is 1>> You tell Gwylan that they appeared around Valentine's Day. <<He>> nods, as if expecting that answer. <<if $gwylanSeen.includes("yearning")>> You think you see the slightest hint of relief on <<his>> face. <</if>> <<else>> <<set $gwylanSeen.pushUnique("kylar_kidnapped")>> You tell Gwylan all about Kylar's kidnapping, and how <<nnpc_he "Kylar">> tried to hold a wedding with you under the school. Gwylan looks surprised throughout it all, but you catch the faintest hint of a chuckle when you mention the drunk pastor. <br><br> "Most people in this town aren't so... romantic," <<he>> says. "At least <<nnpc_he "Kylar">> tried to treat you, first." <br><br> <<if C.npc.Kylar.state is "prison">> "Well, <<nnpc_hes "Kylar">> in prison now," you say flatly. Gwylan frowns when <<he>> realises that you're not joking. <br><br> <<elseif $gwylanSeen.includes("kylar_parents")>> <<He>> pauses. "Isn't this the same <<nnpc_gendery "Kylar">> with the vampire parents?" You nod, and <<he>> smiles. "You must care about <<nnpc_him "Kylar">> a lot, to be able to forgive <<nnpc_him "Kylar">> for kidnapping you." <<He>> scratches the back of <<his>> head. <<elseif $syndromekylar gte 1 and isLoveInterest("Kylar")>> You strangely find yourself agreeing. You continue, telling Gwylan more about Kylar, and how <<nnpc_his "Kylar">> antics became endearing to you. <br><br> <</if>> "It sounds to me like <<nnpc_hes "Kylar">> a fan of some of the local fairy tales. The gaoler and the heart-stealing witch. Or cake-stealing in this case." <<He>> puts <<his>> hand to <<his>> chin. "Actually, who's who?" <</if>> <br><br> <<endevent>><<npc Gwylan>><<person1>> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>> You ask Gwylan about the gift wrappings. <br><br> "Those... aren't clothes," <<he>> says with a chuckle. "Those are actually just gift wraps." There's a pause. "I suppose you <i>could</i> wear it as such regardless. But, what in the world made the shop start showing you these?" <br><br> <<if setup.specialClothesSets.valentines.requirements()>> <<link [[Say they appeared around Valentine's Day|Gwylan Talk Clothes Wrap 2]]>><<set $phase to 1>><</link>> <br> <</if>> <<if setup.specialClothesSets.wrap.requirements()>> <<if $robinSeen?.includes("unwrap")>> <<link [[Say they appeared after Robin wrapped <<nnpc_himself "Robin">> in ribbons|Gwylan Talk Clothes Wrap 2]]>><<set $phase to 2>><<set $daily.gwylan.clothesTalk++>><</link>> <br> <</if>> <<if $gwylanSeen.includes("steal_wrap")>> <<link [[Say the shop wrapped you in them|Gwylan Talk Clothes Wrap 2]]>><<set $phase to 3>><<set $daily.gwylan.clothesTalk++>><</link>> <br> <</if>> <<if !($robinSeen?.includes("unwrap") and $gwylanSeen.includes("steal_wrap"))>> <span class="blue">There might be an alternative story to tell about this outfit...</span> <br> <</if>> <<else>> <span class="blue">There might be an alternative story to tell about this outfit...</span> <br> <</if>> <<link [[Say you don't remember|Gwylan Talk Clothes Forgot]]>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<set $gwylanTalked.pushUnique("wrap")>> <<if $phase is 1>> You tell Gwylan that they appeared around Valentine's Day. "Really? I'd have thought it'd have been around Christmas." <<He>> shrugs. <<elseif $phase is 2>> You tell Gwylan about Robin's 'gift' to you during Christmas, which you eagerly unwrapped. <br><br> <<if $gwylan.robin gte 10 or $gwylanSeen.includesAny("robin_cafe", "robin_cafe_trauma")>> "Robin is such a little sweetheart. You should bring <<nnpc_him "Robin">> around <<if $gwylan.robinShop>>more often<<else>>some time<</if>>!<<if $gwylan.robin gte 50>> I wouldn't mind seeing a demonstration of those wrapping techniques.<</if>>" <<elseif $gwylanSeen.includes("robin_halloween")>> <<gwylanRobin>> "Robin, the same Robin you came here with around Halloween?" You nod, prompting Gwylan to smile. "<<nnpc_He "Robin">> really likes dressing up. You should bring <<nnpc_him "Robin">> around more often!" <<else>> "It sounds like you had a white Christmas," <<he>> says with a laugh. <</if>> <<else>> <<switch $speech_attitude>> <<case "meek">> "Y-your shop," you say shyly. "I... got wrapped up in it when I was sneaking around." <<case "bratty">> "Your stupid shop attacked me," you say. "It took my clothes and wrapped me up in... this!" You thrust a tangled ball of gift wrap at Gwylan. <<default>> "I was sneaking around, and your shop didn't like it," you say. "It kicked me out and left me wearing nothing but that." <</switch>> <br><br> Gwylan gives you a wry smile. "Well, if you're going to steal, you'd better be sure not to get caught." <</if>> <br><br> <<endevent>><<npc Gwylan>><<person1>> <<gwylanOptions>> <!-- Bad Ends --><<effects>><<run statusCheck("Gwylan")>> <<set $gwylanTalked.pushUnique("bad_end")>><<set $gwylan.progress += 5>> You browse the shop, pointing out all the clothes that appeared after you were whisked away to parts unknown and locked away from the world. <br><br> You recount each tale to Gwylan. The asylum and the prison. Remy's farm. The underground brothel. The castle in the moor. Being hunted and caught in this forest. <<He>> stays silent until the end. <br><br> "You're strong," <<he>> says. "Strong beyond words. I can't think of anyone else that could return from all those places, never mind tell someone else about it all." <<He>> pulls you into a hug. <<stress -6>><<lstress>> <br><br> "Thank you for telling me your story. I'll remember it all. Even if a day comes when you don't return, I'll make sure your memory never fades away." <<He>> pulls away from you. "Let's hope that day never comes to pass." <<trauma -50>><<llltrauma>> <br><br> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>><<set $daily.gwylan.clothesTalk++>> <<set $gwylanTalked.pushUnique("underground_brothel")>><<set $gwylan.progress += 2>> <<set _uBrothelStats to V.badEndStats.find(stat => stat.source === "Underground Dungeon")>> You show Gwylan the slut shirt. <br><br> "That's rather overt," <<he>> says. "I won't judge. How did that come about?" <br><br> <<if _uBrothelStats?.reasonStart is "soldBriar">> "I crossed the owner of the brothel on Harvest street," you explain. "<<nnpc_He "Briar">> locked me in a significantly worse brothel to teach me a lesson. <<elseif _uBrothelStats?.reasonStart is "uDungeonPolice">> "The police smuggled me to an underground brothel," you explain. "They tried to arrest me while I was in the hospital. I tried to get away, but they caught me and tossed me in there. <<elseif _uBrothelStats?.reasonStart is "soldBaileyRobin">> "I didn't pay up," you say, as if that's somehow supposed to explain everything. <span class="purple">Gwylan's hands clench.</span> "My friend Robin and I were sold off into sex slavery. <<else>> "I didn't pay up," you say, as if that's somehow supposed to explain everything. <span class="purple">Gwylan's hands clench.</span> "I was sold off into sex slavery. <</if>> This showed up after I escaped." <br><br> <<if _uBrothelStats?.reasonStart is "soldBaileyRobin" or _uBrothelStats?.reasonStart is "soldBailey">> <<His>> head lowers. "Hearing that makes me feel ill, in a way words can't do justice. Most don't return from such places. How did you escape?" <<else>> <<He>> puts <<his>> hands over <<his>> mouth. "That's not what I expected. Most don't return from such places. How did you escape?" <</if>> <br><br> <<if _uBrothelStats?.reasonEnd is "labour">> "I... gave birth," you say. "I think they panicked. I woke up in the hospital." <br><br> An agonising moment of silence passes over you. <br><br> Gwylan's face is pale. <<He>> looks horrified. "You... I'm so sorry. <<elseif _uBrothelStats?.reasonEnd is "uDungeonPresented">> "They tried presenting me like a prize," you continue. "Their guard was down, and there weren't as many on watch. I fought my way out." <br><br> Gwylan slowly nods. "Clever. <<elseif _uBrothelStats?.reasonEnd is "uDungeonOutran">> "They let us outside, for some kind of chase. It was a game to them, but I managed to get away." <br><br> Gwylan smiles. "Overconfidence leads to mistakes. <<elseif _uBrothelStats?.reasonEnd is "uDungeonOutranRobin">> "They let us outside, for some kind of chase. It was a game to them, but I managed to get away with Robin." <br><br> Gwylan smiles. "Overconfidence leads to mistakes. <<elseif _uBrothelStats?.reasonEnd is "uDungeonSaved">> "Some strange person made of plants helped me get away." <br><br> Gwylan's eyebrows raise in surprise. "The dryads of the forest are capricious things, getting one to help you in such a serious circumstance is impressive. <<elseif _uBrothelStats?.reasonEnd is "uDungeonDumped">> "They just... got sick if me," you say. "When I stopped responding to the torment, they dumped me out. Into the ocean." <br><br> Gwylan frowns. "But you made it back to the shore. Despite being abused to the point of unresponsiveness, you had the will to live. <<elseif _uBrothelStats?.reasonEnd is "uDungeonLake">> "I dug my way out. The cells were poorly maintained, and there was a crack under my mattress." <br><br> Gwylan nods. "It's likely someone else used that same method of escape before you, and they were unable to fully repair it. There are many such tunnels underneath this forest. <<elseif _uBrothelStats?.reasonEnd is "uDungeonLakeRobin">> "We dug our way out. The cells were poorly maintained, and there was a crack under Robin's mattress." <br><br> Gwylan nods. "It's likely someone else used that same method of escape before you, and they were unable to fully repair it. There are many such tunnels underneath this forest. <<elseif _uBrothelStats?.reasonEnd is "uDungeonSneak">> "The lock on my cell couldn't hold me," you say. "I snuck out." <br><br> Gwylan nods. "That's impressive. <<else>> "I just hit the right person really hard," you say. "Then I ran for my life." <br><br> Gwylan nods. "You're lucky. <</if>> I hope you weren't stuck there for long." <<He>> wraps you up in a big hug. <<stress -6>><<lstress>> <br><br> "I think I know the place. They conduct a sick mockery of a hunt on their victims here in the forest. For fun." <<He>> winces, as if remembering something painful. "Hounds and foxes. I'm glad you got away.<<if $fox gte 6 and _gwylanTF.known or $brownFoxRevealed>> Us foxes need to look out for one another.<</if>>" <br><br> <<gwylanOptions>><<effects>><<set _tf to checkTFparts()>><<run statusCheck("Gwylan")>><<set $daily.gwylan.clothesTalk++>> <<set $gwylanTalked.pushUnique("underground_farm")>><<set $gwylan.progress += 2>> <<set _uFarmStats to V.badEndStats.find(stat => stat.source === "Underground Farm")>> You show Gwylan the cow print set and cow bell. <br><br> "Cute!" <<he>> says, placing <<his>> hands together in delight. "How did you find these?" <br><br> <<if $brownFoxRevealed>> "Remy <<else>> "Someone named Remy <</if>> <<if $cow gte 6 or $transformationHistory.includes("cow")>>turned me<<else>>tried to turn me<</if>> into human cattle," you explain. Gwylan's nose scrunches, <<his>> delighted look wiped away immediately, but you continue. <<if _uFarmStats?.reasonStart is "arrested">> <<set $gwylanSeen.pushUnique("cafe_chef_truth")>> "I got caught adding fluids to the cream buns at the cafe. They shipped me off to the farm right after." <br><br> <<He>> stares at you blankly for a moment. "I was wondering why the taste seemed different." <<He>> shakes <<his>> head. "I won't tell anyone, I promise. Anyways, how did you escape?" <<else>> <<if _uFarmStats?.reasonStart is "cardCheating">> "I tried to cheat someone in a card game, and that was my punishment. It was a big estate out in the moor." <<elseif _uFarmStats?.reasonStart is "soldBailey">> "I was sold off to a large estate, somewhere in the moor." <<else>> "I was kidnapped and taken to a large estate, somewhere in the moor." <</if>> <br><br> <<He>> nods. "I've heard of such rotten business. How did you escape?" <</if>> <br><br> <<if ["uFarmEscapedCentaurThank", "uFarmEscapedCentaurKiss"].includes(_uFarmStats?.reasonEnd)>> "I befriended the centaurs, and one helped me get away." <br><br> <<His>> eyebrows raise. "Centaurs? Really? Not horses?" You nod in response, and Gwylan looks deep in thought. "Interesting. Thank you for telling me this. You must have a gentle touch to make them help you against their master's orders." <<elseif _uFarmStats?.reasonEnd is "uFarmEscapedHorse">> "I befriended the horses, and one helped me get away." <br><br> <<He>> smiles. "A little kindness goes a long way. Many domesticated animals hate seeing each other suffer, and they probably started thinking you were one of them. You must have a gentle touch to make them help you against their master's orders." <<elseif _uFarmStats?.reasonEnd is "uFarmEscapedNightRiver">> "I took my chances with a river, and let the current carry me away." <br><br> <<He>> frowns. "That's a desperate act. I hope you didn't suffer so much that you were planning something drastic. They may have treated you like an animal, but that doesn't mean you should chew your leg off for freedom. We're better than that. Right?" <<else>> "I broke out of my cell and dug under the fence. They never thought one of their cattle would try to dig instead of jump." <br><br> <<He>> nods along. "They treated you like an animal, and didn't think you'd still be as clever as a human. You didn't lose yourself. That's impressive." <</if>> <br><br> <<if $cow gte 6>> <<He>> gently reaches towards you, and caresses one of your cow ears. <<if !_tf.cowEars>> <span class="pink">You were sure that they were hidden.</span> <</if>> <<His>> touch makes you feel warm, and you find yourself leaning towards <<him>> instinctively. There's a purity to the gesture. It's a touch of care and affection, not like what you experienced at the farm. Not like a master lauding over a trophy. <<trauma -3>><<ltrauma>> <br><br> <<if $gwylanSeen.includes("hypnosis_peace")>> "I hope I was able to help you come to peace with these." <<elseif !$gwylanSeen.includes("player_tf")>> <<set $gwylanSeen.pushUnique("player_tf")>> "You still carry a burden. <<if !_tf.cowEars>>You were trying to hide it. <</if>>If it bothers you... <span class="blue">I can help you come to peace with this expression of your inner self</span>." <<else>> "Don't forget my offer. I can help you come to peace with this expression of your inner self." <</if>> <br><br> <</if>> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>> You show Gwylan the loincloth. <br><br> <<He>> snickers. "It doesn't leave much to the imagination. Still, there must be some primal satisfaction in wearing nothing but a loincloth. How did you find it?" <br><br> <<if $syndromeeden gte 1>> <<link [[Say it appeared after you got close with Eden|Gwylan Talk Clothes Eden]]>><</link>> <br> <</if>> <<if $syndromewolves gte 1>> <<link [[Say it appeared after you became a member of the wolf pack|Gwylan Talk Clothes Wolves]]>><</link>> <br> <</if>> <<if !($syndromeeden gte 1 and $syndromewolves gte 1)>> <span class="blue">There might be an alternative story to tell about this item...</span> <br> <</if>> <<link [[Say you don't remember|Gwylan Talk Clothes Forgot]]>><</link>> <br><<effects>><<run statusCheck("Gwylan")>><<set $daily.gwylan.clothesTalk++>> <<set $gwylanTalked.pushUnique("loincloth")>><<set $gwylanSeen.pushUnique("eden_known")>><<set $gwylan.progress++>> You tell Gwylan about your time with Eden, and how <<nnpc_he "Eden">> must have been so lonely. <br><br> <<He>> looks surprised. "The <<= C.npc.Eden.title>>. You've gotten close with <i><<nnpc_him "Eden">></i>. <<nnpc_He "Eden">> stops by for supplies sometimes. Scrap fabric, burn ointment, the like." There's a peculiarity in <<his>> voice. <br><br> "That likely sounded rude, but I... hope you know who you've made bedfellows with. <<nnpc_He "Eden">>'s ravaged this forest's ecosystem. <<nnpc_Hes "Eden">> well-built, but there's no way one <<nnpc_gender "Eden">> can eat as much as <<nnpc_he "Eden">> kills. It's wasteful and careless." Gwylan walks around you, towards one of the forest shop's windows. <<He>> gazes out wistfully, as if looking for something that should be there. <br><br> "The children of the animals <<nnpc_hes "Eden">> killed, the ones that were never conceived, should be running free in our forest today. There's a generational gap in the population because of people like <<nnpc_him "Eden">>. One <<nnpc_gender "Eden">>'s empty hatred reverberating its consequences forever. Perhaps <<nnpc_he "Eden">> feels the forest wronged <<nnpc_him "Eden">> for..." <br><br> Gwylan shakes <<his>> head. "No. Those aren't my burdens to share. I'm certain you already know. If <<nnpc_his "Eden">> feelings for you are true, surely <<nnpc_hes "Eden">> told you." Gwylan's gaze is provocative, as if <<he>> knows that Eden hasn't told you anything of the sort. <br><br> <<link [[Defend Eden calmly|Gwylan Talk Clothes Eden 2]]>><<set $phase to 1>><</link>> <br> <<link [[Defend Eden angrily|Gwylan Talk Clothes Eden 2]]>><<set $phase to 2>><</link>> <br> <<link [[Agree|Gwylan Talk Clothes Eden 2]]>><<set $phase to 3>><</link>> <br> <<link [[Stay silent|Gwylan Talk Clothes Eden 2]]>><<set $phase to 4>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<if $phase is 1>> <<switch $speech_attitude>> <<case "meek">> "I-I'm sure <<nnpc_he "Eden">> isn't doing it to be a bad person," you say. "I know it. <<nnpc_hes "Eden">> a good person deep down." <<case "bratty">> "Try walking a mile in <<nnpc_his "Eden">> shoes. Not everyone has the luxury of thinking about it as deeply as you do. Some people need to survive, regardless of morals." <<default>> "Fighting to survive doesn't make someone evil. <<nnpc_Hes "Eden">> doing what <<nnpc_he "Eden">> has to." <</switch>> <br><br> Gwylan scoffs. "There's survival, and there's <<nnpc_him "Eden">>. Morality has no stake in it, it's a simple fact of numbers. <<nnpc_He "Eden">> kills too much, and too often." <<elseif $phase is 2>> <<switch $speech_attitude>> <<case "meek">> "Y-you're wrong!" you shout, catching Gwylan off guard. "You don't know what <<nnpc_hes "Eden">> been through either! B-but you can't fake the kind of pain and loneliness <<nnpc_hes "Eden">> in. I see it in <<nnpc_his "Eden">> eyes every night. What could you possibly know about <<nnpc_him "Eden">>?" <<case "bratty">> "What the hell do you know?" you shout, catching Gwylan off guard. "Cooped up in this stuffy shop all day, you're not much different. How do you even know <<nnpc_him "Eden">>?" <<default>> "You're wrong!" you shout, catching Gwylan off guard. "You don't really know anything about <<nnpc_him "Eden">>, do you? How could you possibly understand <<nnpc_him "Eden">>?" <</switch>> <br><br> Gwylan says nothing at first, merely taking a deep breath. <<His>> gaze on you doesn't change. <br><br> "I know enough. If you kill a mother fox, her kits will starve. You may forget the simple act, but the forest remembers. Forever. <<nnpc_His "Eden">> crimes are etched on every tree, with every bullet <<nnpc_he "Eden">> leaves carelessly strewn in the dirt for something to choke on." <<elseif $phase is 3>> <<switch $speech_attitude>> <<case "meek">> "<<nnpc_Hes "Eden">>... scary," you say. "So scary that I've become afraid of being away from <<nnpc_him "Eden">>." <<case "bratty">> "<<nnpc_Hes "Eden">> a pain," you agree. "<<nnpc_He "Eden">> thinks <<nnpc_he "Eden">> can take whatever <<nnpc_he "Eden">> wants, no matter how much it tries to run." <<default>> "<<nnpc_Hes "Eden">> difficult," you agree. "Selfish, even. No matter how much I try to get away, <<nnpc_he "Eden">> always chases me." <</switch>> <br><br> Gwylan smiles at you. "If a <<= C.npc.Eden.title>> can aim, <<nnpc_he "Eden">> will shoot. It's best to scurry away. I'm glad you understand that. If you ever need a place to hide, you're always welcome here." <<else>> You stay silent. Gwylan frowns. "You're fond of <<nnpc_him "Eden">>. Perhaps you can change <<nnpc_him "Eden">> for the better, some day. But I have my doubts." <</if>> <br><br> <<He>> looks away from you again, and sighs. "<<nnpc_Hes "Eden">> a victim, too, though. The forest has started to reflect <<nnpc_his "Eden">> hatred. Responding to a threat from within. Becoming something ugly to survive. Becoming more dangerous. Does it sound familiar? <<nnpc_Hes "Eden">> part of a hopeless cycle, refusing to compromise. A self-fulfilling prophecy. Perhaps we deserve each other." <br><br> <<He>> returns to the counter. "I won't hold it against you." <br><br> <<endevent>><<npc Gwylan>><<person1>> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>><<set _tf to checkTFparts()>><<set $daily.gwylan.clothesTalk++>> <<set $gwylanTalked.pushUnique("loincloth")>><<set $gwylan.progress += 2>> You tell Gwylan about your time with the wolf pack, from when the Black Wolf stole you away to becoming a member. <br><br> <<if _tf.wolfEars>> <<His>> eyes lock on your wolf ears. <</if>> <<if $gwylanSeen.includes("likes_wolves")>> "You've told me all about how much you like the wolves," <<he>> says with a giggle. "It's cute. I think you fit in with the forest pretty well." <<else>> <<He>> looks fascinated by what you're saying. "So you like acting like a wolf?" <<he>> asks with a wide smile. <<if $gwylanSeen.includes("caught")>> "Glad to know, I was worried you were still judging me after you spied on me. I think you fit in with the forest pretty well." <<else>> "That's cute. I think you fit in with the forest pretty well." <</if>> <<npcincr Gwylan lust 1>><<glust>> <</if>> <br><br> <<set $gwylanSeen.pushUnique("likes_wolves")>><<set $gwylanSeen.pushUnique("wolves_known")>> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>><<set _tf to checkTFparts()>><<set $daily.gwylan.clothesTalk++>> <<set $gwylanTalked.pushUnique("bird")>><<set $gwylan.progress++>> <<if ($settings.monsterChance gte random(1, 100) and ($hallucinations gte 1 or !$settings.monsterHallucinationsOnly)) or $greathawkmonster is 2>><<set _hawkmonster to 1>><</if>> You show Gwylan the feathery accessories. <br><br> <<His>> eyes go wide. "Oh, wow! Those are pristine! Let me see, let me see!" <<He>> grabs for them, and you hand them over. <br><br> "Such a waste to wear them like this," <<he>> says, thumbing the feathers. "These would be great in..." <<He>> looks up to you. "I must know how you got the shop to show these to you. If I found them first, they wouldn't be for sale." <br><br> You explain your time in the castle, and with the Great Hawk. You realise that you're probably making <<if _hawkmonster is 1>><<nnpc_him "Great Hawk">><<else>>it<</if>> sound a lot more terrifying than <<if _hawkmonster is 1>><<nnpc_he "Great Hawk">><<else>>it<</if>> actually is, but you also realise that that's probably how <<if _hawkmonster is 1>><<nnpc_he "Great Hawk">><<else>>it<</if>> would want to be described. <br><br> "So, they're finally returning after all," Gwylan muses. "I thought the sightings were falsified. Wonderful. Wonderful!" <<Hes>> practically jumping up and down with excitement. "I'll have to plan a trip out to the moor. I'll need to make sure I can get close enough, and..." <br><br> <<He>> suddenly stops, and looks at you. "Hmm. In fact, I could use your help. You said you're already close with the <<if _hawkmonster is 1>>harpy<<else>>hawk<</if>> that controls the tower. <span class="blue">I may request that you bring me some of <<if _hawkmonster is 1>><<nnpc_his "Great Hawk">><<else>>its<</if>> feathers, next time I need a favour.</span>" <<if $harpy gte 6>> <<set $gwylanSeen.pushUnique("preen")>> <<if _tf.birdWings>> <<He>> takes a moment to look at your wings. <<He>> walks around you, and runs <<his>> hands along them. <<else>> <<He>> walks around you, and you <span class="pink">feel <<him>> run <<his>> hands along your wings.</span> You were sure that they were hidden. <</if>> <<if $birdFly>> "Fascinating hybridisation. I could make use of these, too. If you don't mind, I would really like to... preen you." <<He>> blushes. <<else>> "Fascinating hybridisation, but the feathers are virgin. Untested. You haven't flown with these yet. If they ever become strong enough for flight, and if you don't mind, I would really like to... preen you." <<He>> blushes. <</if>> <<if $gwylanSeen.includes("hypnosis_peace")>> "I hope I was able to help you come to peace with these." <<elseif !$gwylanSeen.includes("player_tf")>> <<set $gwylanSeen.pushUnique("player_tf")>> "If you <span class="blue">begin to doubt or resent these expressions of your inner self</span>, I know how to help." <<else>> "Don't forget my offer. I can help if you begin to doubt these expressions of your inner self." <</if>> <<else>> <<He>> stands on the tips of <<his>> toes, as if looking for something behind you. <</if>> <br><br> <<He>> continues beaming at the feathers for some time. <br><br> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>><<set _tf to checkTFparts()>><<set $daily.gwylan.clothesTalk++>> <<set $gwylanTalked.pushUnique("prison")>><<set $gwylan.progress += 2>> <<set _prisonStats to V.badEndStats.find(stat => stat.source === "Prison")>> You show Gwylan the prison clothes. <br><br> "You've been to the prison island," <<he>> says before you can explain. "It's obvious. You have that look in your eyes. How did you escape?" <br><br> <<He>> notices your hesitation. "Don't worry, I won't tell a soul," <<he>> says with a wink and a smile. <br><br> <<if ["prisonWren", "prisonWrenKylar"].includes(_prisonStats?.reasonEnd)>> "A friend smuggled me off the island," you explain. "It took a lot of favours." <br><br> <<He>> nods. "In a place like that, favours are worth more than gold, I'm sure." <<elseif _prisonStats?.reasonEnd is "prisonSwimming">> "I had to make some friends and cause some distractions," you explain. "Until I was able to swim away without notice. I swam all the way back to the mainland." <br><br> <<He>> looks surprised. "That's incredibly dangerous. You're lucky, the ocean must have been favouring you. Such a distance... you could have been swept away!" <<He>> suddenly hugs you. "Don't be so reckless! I am glad you came back, though." <<elseif _prisonStats?.reasonEnd is "escapedSoaring">> "I befriended the giant birds that watched over the prison, and flew," you explain. <br><br> <<if _tf.birdWings>> <<He>> takes a moment to look at your wings. "You flew. Of course. I can't think of a better way myself." <<else>> <<He>> blinks at you. "You... flew. You're a fascinating one, you know? I don't think you're lying to me, despite such a strange claim." <</if>> <<elseif _prisonStats?.reasonEnd is "prisonRut">> "I don't remember all of it," you explain. "There was a punishment, something about damnation. They threw me into the rut. I don't know how long I was down there, but I saw things. Insects feasting on something." <br><br> Gwylan listens intently, waiting for you to continue, but you have nothing more to say. <<else>> "I simply served my time," you say. <br><br> Gwylan nods. "Did the punishment match your crimes? I suppose it doesn't matter. I'm glad you're back." <</if>> <br><br> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>><<set $daily.gwylan.clothesTalk++>> <<set $gwylanTalked.pushUnique("asylum")>><<set $gwylan.progress += 3>> <<set _asylumStats to V.badEndStats.find(stat => stat.source === "Asylum")>> <<tearup>><<hallucinogen 120>> You show Gwylan the straightjacket. <br><br> <<He>> freezes up, but only for a moment. "That's not something I would ever stock," <<he>> says. "Even if it's a replica." <br><br> You tell <<him>> about your time at the asylum. <<He>> looks more and more upset as you explain everything you can remember. Much of it you wouldn't share willingly, but for some reason, you find it hard to stop. <br><br> Gwylan holds up a hand to stop you, and wipes a tear from your eye. You're not sure when that started. Why are you crying? <br><br> Suddenly, you're being hugged tightly. "Thank you for telling me," <<he>> says. "I know it's not easy to do, when you've been told that none of it is real, or that it was all your fault." <<His>> embrace tightens. "I believe you. I promise. Even if no one else does, I do." <br><br> <<if $gwylanSeen.includes("hypnosis_removal_suggestion")>> <<He>> pulls away, and holds a finger to your forehead. "Remember. If <<nnpc_he "Harper">> still lingers in your mind, or if you're overcome with urges that you know are not your own, tell me. I can help you." <<else>> <<He>> pulls away, and holds a finger to your forehead. "If <<nnpc_he "Harper">> still lingers in your mind, or if you're <span class="blue">overcome with urges that you know are not your own</span>, tell me. I can help you." <</if>> <br><br> <<He>> gives you a warm smile. "These burdens are meant to be shared, not suppressed. If everyone kept it all to themselves, there'd be no more stories to tell." <br><br> <<gwylanOptions>> <!-- Temple --><<effects>><<run statusCheck("Gwylan")>> <<set $gwylanTalked.pushUnique("temple")>> You walk around the shop with Gwylan, browsing all the religious attire. <br><br> <<switch $speech_attitude>> <<case "meek">> "Wh-why do you have all of these, anyways?" you ask. <<case "bratty">> "So, why do you stock all these?" you ask. <<default>> "Why do you stock so many of the temple's clothes?" you ask. <</switch>> <br><br> Gwylan ponders for a moment. "Good business." <<He>> shrugs. "They burn through a lot of clothing. Must be a..." <<He>> pauses for a moment. "Physical job." <br><br> You decide not to ask any more questions. <br><br> <<He>> looks around at all of the different outfits. A shadow passes over <<his>> face. <<He>> turns to you with <<= V.gwylanSeen.includes("yearning") ? "distress" : _gwylanLovePercent gte 75 ? "concern" : "a troubled frown">>, and clasps your hands in <<his>> own. "You are a pure, shining soul, dear. Don't let anyone swallow your light and claim it as their own." <br><br> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>><<set $daily.gwylan.clothesTalk++>> <<set $gwylanTalked.pushUnique("temple_initiate")>> You show Gwylan the initiate's robe. <br><br> "Pretty design," <<he>> says. "I take it you've joined them? I hope they've welcomed you into the flock. There's a comfort in belonging. Just be wary. Some wolves wear the fleece of lambs." <br><br> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>><<set $daily.gwylan.clothesTalk++>> <<set $gwylanTalked.pushUnique("temple_monk_and_nun")>> You show Gwylan the monk and nun robes. <br><br> "These aren't official, but the cloister doesn't seem to mind. They make adjustments on these rather than making their own from scratch." <<He>> smiles at you. "It's fascinating how they pick and choose what is allowed and what isn't." <br><br> <<He>> pauses for a moment. "So, you're moving up in rank with them. What exactly did you do to earn it?" <br><br> "I'm not sure I'm supposed to share," you start. "There was a trial. It was tough, and I saw something at the end." You shiver as the memory resurfaces. <br><br> <<He>> places a hand on your shoulder. "It's hard to unsee, isn't it? Once you see the cracks, the holes, you start to see them everywhere." <br><br> <<He>> stops, seeming unsure how to follow up that comment. "Is Jordan doing well?" <br><br> You nod, which prompts Gwylan to smile a little wider. <br><br> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>><<set $daily.gwylan.clothesTalk++>> <<set $gwylanTalked.pushUnique("temple_evangelist")>> You show Gwylan the evangelist's uniform. <br><br> "It's a lot more comfortable than it looks," <<he>> says. "It needs to be. It's meant to be worn for proselytising. So, how did you end up finding it?" <br><br> <<switch $speech_attitude>> <<case "meek">> "I... I made an initiate do something lewd in order to... get someone to donate to the temple," you say. <<case "bratty">> "I upskirted an initiate to get a perv to donate to us," you say. <<default>> "I made an initiate do something lewd, in order to solicit a donation," you explain. <</switch>> <br><br> <<He>> chuckles. "You fit right in with them." <br><br> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>><<set $daily.gwylan.clothesTalk++>> <<set $gwylanTalked.pushUnique("temple_confessor")>><<set $gwylan.progress += 2>> You show Gwylan the confessor's robes and habit. <br><br> <<He>> tilts <<his>> head. <<if $gwylanSeen.includes("ritual_beast")>> "The confessors do something similar to what we do. Their methods are... different, though. Often cruel." <<else>> "The confessors do ugly work, and it's often cruel. Stitching up holes in the world, even when it leads to terrible suffering." <</if>> <<He>> looks right in your eyes. "You've gotten involved with them, haven't you?" <br><br> You explain how you met the Bishop. Gwylan listens intently to all of it, but you can't shake the feeling that you're not telling <<him>> anything <<he>> doesn't already know. <br><br> "Don't overextend yourself," <<he>> cautions. <<if $gwylanSeen.includes("ritual_beast")>>"Healing the world can leave holes in yourself."<<else>>"Wings that shield may smother just as easily."<</if>> <br><br> You promise to take care. It seems to mollify <<him>> as much as any empty words can. <br><br> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>><<set $daily.gwylan.clothesTalk++>> <<set $gwylanTalked.pushUnique("temple_exorcist")>><<set $gwylan.progress++>> You ask Gwylan about the exorcist's uniform. <<He>> shakes <<his>> head. "It's not a real one. Look." <<He>> takes it from you, and points at the collar. <br><br> "The temple takes these things very seriously, so each ordained exorcist's uniform is numbered. It would be right here." <<He>> opens the collar, and <<his>> face turns pale at what <<he>> sees. <<He>> quickly hands it back to you. "How did you find this?" <br><br> You explain everything. The dance job, the missing member of Jordan's flock, and the ritual you interrupted. Gwylan becomes more and more solemn as your story progresses. <br><br> "You did a very good thing," <<he>> says. "I can see why this one has a number now. The shop thinks you've earned it." <br><br> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>><<set $daily.gwylan.clothesTalk++>> <<set $gwylanTalked.pushUnique("temple_sparring")>> You show Gwylan the sparring sets. <br><br> <<His>> eyes go wide at them. "I haven't seen these before. That's a lot of skin to show for a religious institution." <br><br> You explain how they appeared after countless sparring sessions. <br><br> "In darker days, they didn't have such virtuous restrictions on the usage of their weapons," <<he>> says with a hint of sarcasm. "Baton and whip alike scarred the skin of many." <br><br> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>><<set $daily.gwylan.clothesTalk++>> <<set $gwylanTalked.pushUnique("temple_sexy")>><<set $gwylan.progress++>> You show Gwylan the lewd priest and nun sets. <br><br> "I don't think that's sanctioned," <<he>> says with a giggle. "Though, I would like to see their reaction to one of their own wearing that. What ever did you do to find such a blasphemous outfit?" <br><br> <<if $gwylanSeen.includes("ritual_sex")>> <<if $temple_confessor_intro>> You explain that it appeared to you after you spent much time purging the poison from the world, both with <<him>> and while working the confessional. <<else>> You explain that it appeared to you after you spent much time purging the poison from the world with <<him>>. <br><br> <</if>> <br><br> <<He>> twirls <<his>> hair in one finger. "You're doing a good thing, you know. Thank you for helping me. Burdens are better shared." <<elseif $temple_confessor_intro>> You explain that it appeared to you after you spent much time purging the poison from the world while working the confessional. <br><br> <<He>> nods along. "You're doing a good thing. I hope you're pacing yourself." <<else>> You explain that you don't actually know why it appeared to you. <br><br> <<His>> head tilts. "Interesting. Perhaps you're doing something without realising it." <<He>> smiles. "Oh, to be so rapturously innocent." <</if>> <br><br> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>><<set $daily.gwylan.clothesTalk++>> <<set $gwylanTalked.pushUnique("holy_stole")>> You show Gwylan the holy stole. <br><br> <<He>> snickers. "You're definitely not supposed to have that. How did you find it?" <br><br> You explain that you found it after being very vigilant in your obligations to the temple, prompting Gwylan to briefly frown. <br><br> "I hope you're not losing yourself in them." <br><br> <<gwylanOptions>> <!-- Pendant trio --><<effects>><<run statusCheck("Gwylan")>><<set $daily.gwylan.clothesTalk++>> <<set $gwylanTalked.pushUnique("pendant")>> You show Gwylan the three pendants. <br><br> "The trio is complete," <<he>> says. "It's always three. Urges, chastity, and purges. Conception, birth, and motherhood. Everyone, you, and the world under your feet." <<He>> hangs all three together, letting them overlap. "The Children, the Cloister, and nobody." <<He>> frowns. <br><br> "It's a shame how much has been lost with time. Burned by those who seek to erase history so we'll be doomed to repeat it." <br><br> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>><<set $daily.gwylan.clothesTalk++>> <<set $gwylanTalked.pushUnique("holy_pendant")>> You show Gwylan the holy pendant. <br><br> "I believe it's made of brass," <<he>> says, weighing it in <<his>> hands. "Not just plated, either. It's heavier than it looks. It's a common ornament for the religious types, but I'm curious as to why you found it here." <br><br> You explain that you found it after finding the soup kitchen, which makes Gwylan smile. <br><br> "That's the kind of work the cloister should be doing more of." <<He>> starts to whirl the pendant by the cord, making the air whip around it. "You could really hurt someone with this if you threw it." <br><br> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>><<set $daily.gwylan.clothesTalk++>> <<set $gwylanTalked.pushUnique("stone_pendant")>> You show Gwylan the stone pendant. <<His>> eyes go wide, and <<he>> snatches it from your grasp. <br><br> <<He>> stares at it as if it would vanish when <<he>> next blinks. "Where did you find this?" <<he>> asks intently. <br><br> <<switch $speech_attitude>> <<case "meek">> "I-it was lost in a crack at the temple," you say. "Is it really that impressive?" <<case "bratty">> "It was just jammed in a crack, somewhere in the temple," you say. "What's with the staring? It's just a shaped rock." <<default>> "I found it in the temple, lost in a crack," you say. "Is it really all that special?" <</switch>> <br><br> <<He>> huffs. "It's history. History that was erased. I didn't think there were any left." <<He>> hesitantly hands it back to you. "If you found this, it belongs with you." <br><br> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>><<set $daily.gwylan.clothesTalk++>> <<set $gwylanTalked.pushUnique("dark_pendant")>> You show Gwylan the dark pendant. <br><br> <<He>> shivers as <<he>> cautiously reaches for it. "How did you come across this?" <<He>> seems lost in it. <br><br> <<switch $speech_attitude>> <<case "meek">> "I-it was in the loft in my home," you say. "At the orphanage. S-some of the orphans got bold enough to go somewhere Bailey forbade us from. Then it showed up here." <<case "bratty">> "It was in the loft at the orphanage," you say. "We got bold enough to go somewhere our 'guardian' wouldn't dare. Now it's here, for whatever reason." <<default>> "It was in the loft of the orphanage," you say. "A place our guardian wouldn't normally let us go. Then it showed up here." <</switch>> <br><br> <<His>> hand clenches, prompting <<him>> to take a deep breath. "<<nnpc_Hes "Bailey">> haunted." <<He>> shakes <<his>> head. "Obsessed. Only ruin lies at the end of this road. Blood can't pay for blood, and the snake's hunger will lead it to devour its own tail." <br><br> Gwylan becomes unresponsive for a few minutes, looking down in shame. <<He>> refuses to comment any further. <br><br> <<gwylanOptions>> <!-- Museum --><<effects>><<run statusCheck("Gwylan")>><<set $daily.gwylan.clothesTalk++>> <<set $gwylanTalked.pushUnique("historic")>><<set $gwylan.progress++>> You walk through the shop with Gwylan, browsing the collection of historic clothing and armour. <br><br> <<switch $speech_attitude>> <<case "meek">> "Th-this place is kind of like the museum," you say. "I'm sure Winter would like to have some of these." <<case "bratty">> "Do you think you're stepping on Winter's toes, keeping all this here?" you ask. <<default>> "I think Winter would want some of these items," you say. "At the museum." <</switch>> <br><br> Gwylan smiles at you. "<<nnpc_Hes "Winter">> made some offers, but I'm afraid I'm a bit too selfish to donate any of this. The shop wouldn't like it either." <<He>> thinks for a moment. "You should accompany me to the museum some time, though." <br><br> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>><<set $daily.gwylan.clothesTalk++>> <<set $gwylanTalked.pushUnique("museum_rags")>> You show Gwylan the rags. <br><br> "Those are just ripped scraps of cloth," <<he>> says. "They shouldn't be out in the shop. I keep trying to get rid of them, but they always show up again." <br><br> <<switch $speech_attitude>> <<case "meek">> "A-actually, these showed up after I helped Winter at the museum," you explain. "I demonstrated some... torture methods with <<nnpc_him "Winter">>." <<case "bratty">> "Actually, these showed up after I helped Winter demonstrate <<nnpc_his "Winter">> torture obsession over at the museum," you explain. <<default>> "No, actually, these showed up after I helped Winter with some demonstrations over at the museum," you explain. <</switch>> <br><br> <<if _gwylanTF.known>> <<His>> fox ears twitch at the mention of Winter. <<elseif ["revealed", "visible"].includes(_gwylanTF.ears) and $gwylanSeen.includes("hat_found")>> <span class="pink">You swear you see the fox ears on <<his>> hat twitch at the mention of Winter.</span> <<set $gwylanSeen.pushUnique("gwylan_ears")>> <</if>> <<He>> immediately perks up. "We're acquainted, Winter and I. <<nnpc_He "Winter">> visits the shop every now and then. <<nnpc_He "Winter">>'s bought these useless rags from me, too. I don't know why. <<nnpc_He "Winter">> could use any old scraps of cloth, but <<nnpc_he "Winter">> insists on using these." <br><br> You think you see the briefest hint of resentment in Gwylan's face as <<he>> looks down at the rags, but you might have imagined it. <br><br> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>><<set $daily.gwylan.clothesTalk++>> <<set $gwylanTalked.pushUnique("vintage")>> You show Gwylan the vintage suits. <br><br> <<He>> stares for a moment. "That looks like something my grand<<father>> would wear." <<He>> dusts off the shoulders of one of them. "They could really use a good dry-cleaning. How did you come across these?" <br><br> <<switch $speech_attitude>> <<case "meek">> "M-my history teacher told me a story from <<nnpc_his "Winter">> childhood. About the blitz. This showed up here after that," you explain. <<case "bratty">> "My history teacher droned on about a story from <<nnpc_his "Winter">> childhood, and how <<nnpc_he "Winter">> saw the blitz first-hand. This showed up here after that," you explain. <<default>> "My history teacher told me a story about the blitz. <<nnpc_He "Winter">> was a child affected by it. These suits showed up here after that," you explain. <</switch>> <br><br> Gwylan nods along. "That sounds like the correct time period these would have been worn in." <<He>> stares down at the suits again before hanging them back up. "The Blitz left many broken families behind. Everybody was scared. Lost. Loved ones were dying. Children were getting traded, sometimes for food. Sometimes in the desperate hope they'd have a safer life elsewhere." <br><br> <<He>> tenses up, staring out one of the shop's windows. "I've heard about it second-hand, too. Winter teaches that war is diplomacy by other means. That it's how nations get what they want when words fail. That never felt right to me. All the people who get hurt, and hurt others because they're hurting, it's just a perpetual cycle of violence. When is enough finally enough? Why do people have to be chips in another's game? I can't stand the thought of it. Especially when it's children being held ransom." <<He>> looks back to you. "We don't purchase death, so why do we spend life? How did something so sacred become so easy to throw away?" <br><br> <<He>> returns to the counter, and blushes after a moment of silence. "Sorry about that. I don't know when to shut my mouth sometimes." <br><br> <<if $gwylanSeen.includes("cafe_opening")>> <<switch $speech_attitude>> <<case "meek">> "H-hold on," you start, remembering something. "Didn't I see you wearing this at the grand opening of the cafe?" <<case "bratty">> "Hey, wait a minute," you start, remembering something. "Why were you wearing this at the cafe's grand opening?" <<default>> "Wait a minute," you start, remembering something. "I saw you wearing this at the grand opening of the cafe." <</switch>> <br><br> <<His>> blush deepens. "I couldn't find anything else in the shop to wear that day." <br><br> <</if>> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>><<set $daily.gwylan.clothesTalk++>> <<set $gwylanTalked.pushUnique("chain_tunic")>><<set $gwylan.progress++>> You show Gwylan the chain tunic. <br><br> Before you can say anything, <span class="red"><<he>> rips it out of your hands</span>. "That's not for sale!" <<he>> says anxiously, hugging it close to <<his>> chest. <br><br> <<His>> eyes dart around the tunic, inspecting it for damage. You notice a large rip in the skirt, but it doesn't look new. The whole set looks meticulously cared for, each chain polished to keep rust from forming. Gwylan slowly becomes less frantic, until <<he>> lets out a sigh of relief. "I'm sorry. This is my most prized item. The shop has replicas, and this shouldn't have been out with them." <br><br> <<He>> smiles wistfully at it. "It's the oldest thing in my collection. Armour like this was worn by monks and nuns in darker times." <<He>> points you to the replicas. You can't tell the difference between them and the original, other than the colours and lack of damage. <br><br> You look back to Gwylan. <<His>> face is buried in the tunic, and <<his>> eyes are closed. <br><br> You decide to give <<him>> a moment before returning to the counter. <br><br> <<gwylanOptions>> <!-- Special Events --><<effects>><<run statusCheck("Gwylan")>><<set $daily.gwylan.clothesTalk++>> <<set $gwylanTalked.pushUnique("foreign_school")>> You show Gwylan the serafuku, and the other foreign school clothes. <br><br> "Those are cute," <<he>> says. "The style of a sailor became popular as school attire overseas at some point. How did you find them?" <br><br> <<switch $speech_attitude>> <<case "meek">> "I found them on my headteacher's desk," you start. "Along with a lot of... awful pictures of students." <<case "bratty">> "They were on the headteacher's desk," you say. "Along with some disgusting pictures of the other students." <<default>> "I found them on the headteacher's desk," you say. "Along with a lot of incriminating evidence involving pictures of students." <</switch>> <br><br> <<His>> nose scrunches. "Someone using their position to exert control over their peers. A tale as old as time. Have you told anyone about it?" <br><br> <<if $headblackmailed is 1 and $headpolice isnot 1>> You shake your head. "I got something I wanted out of it, though." <br><br> Gwylan smiles. "Good. I hope you made them feel what it's like to be helpless and pressured. Sometimes, we need to make our own justice." <<elseif $headpolice is 1>> You nod. "I gave it to the police." <br><br> Gwylan smiles. "Good. I doubt they'll do anything about it without a little push, though. If, hypothetically, they just so happened to have some other crimes to look into, the evidence you gave them might just get expedited." <<He>> winks at you. <<else>> You shake your head. "I don't know what to do with it." <br><br> Gwylan puts <<his>> hand to <<his>> chin. "If you want to take justice into your own hands, you could use it as leverage." <</if>> <br><br> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>><<set $daily.gwylan.clothesTalk++>> <<set $gwylanTalked.pushUnique("brothel")>> You show Gwylan the belly dancer's set and harem set. <br><br> "How unusual," <<he>> says. "What in the world have you been up to?" <br><br> <<if $speech_attitude is "meek">> "I had to make a deal with the brothel owner," you say. You shuffle your feet. "I need money.<<if $robinpaid gte 1>> Someone is depending on me for it.<</if>>" <<elseif $speech_attitude is "bratty">> "I need money," you say bluntly. "So I made a deal with the <<nnpc_gender "Briar">> who runs the brothel.<<if $robinpaid gte 1>> It isn't just about me anymore.<</if>>" <<else>> "I need money<<if $robinpaid gte 1>> to help a friend<</if>>, so I made a deal with the <<nnpc_gender "Briar">> who owns the brothel," you explain. <</if>> <br><br> Gwylan takes the clothing from you. <<He>> rubs the thin fabric between <<his>> thumb and forefinger. "Disguises can be armour against the world," <<he>> says. "Perhaps the shop wants to protect you.<<if V.gwylanSeen.includes("yearning")>> I know I do.<</if>>" <br><br> <<He>> folds the sets. "If you ever need a place of comfort, my door is open, dear." <br><br> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>><<set $daily.gwylan.clothesTalk++>> <<set $gwylanTalked.pushUnique("chef")>> You show Gwylan the chef jacket and hat. <br><br> "That looks easy to clean." <<He>> frisks the jacket, getting a feel for the material. "I have a few similar articles. In material, I mean. I'm quite prone to spills in the kitchen. How did you come across this?" <br><br> You explain your time working as a chef at the cafe, and how the jacket showed up in the shop after the grand re-opening. <br><br> Gwylan smiles. <<if $gwylanSeen.includesAny("cafe", "cafe_chef") or $chef_speech is "truth">> "The cafe is better than ever thanks to you." <<else>> "So I have you to thank for the disruption in my routine?" <<He>> pinches your cheek. "It's alright. The cafe is better than ever thanks to you. <span class="blue">I'm there every morning, if you ever want to say hello.</span>" <</if>> <br><br> <<if $gwylanSeen.includes("cafe_chef_truth") or $chef_speech is "truth">> <<He>> looks down and fidgets with <<his>> hands. <<if $chef_speech is "truth">> <<if !$gwylanSeen.includes("cafe_chef_truth")>> "I still can't believe you went and told the whole town about your secret ingredient. <span class="pink">I may ask you for a sample some time.</span>" <<else>> "I still can't believe you went and told the whole town about your secret ingredient." <</if>> <<if !$gwylanSeen.includes("cafe_opening")>> <<He>> turns back, noticing your look of surprise. "You didn't see me, but I was there at the opening." <</if>> <<else>> "The buns are very good," <<he>> says quietly. "Your secret is still safe with me." <</if>> <<set $gwylanSeen.pushUnique("cafe_chef_truth")>> <br><br> <<gwylanOptions>> <<else>> <<set $weekly.gwylanCafeConfront to true>> <<He>> leans forward. <br><br> <<if !$gwylanSeen.includes("cafe_chef")>> <<set $gwylanSeen.pushUnique("cafe_chef")>> "The Ocean Breeze cafe has been part of my routine for a very long time," <<he>> says. "Yet, the buns have never been as good as they are now." <<He>> leans further in. <br><br> "Things don't suddenly improve like this. Not this much, and not in such a short span of time. <<if !$gwylan_cafe_intro>> <<set $gwylan_cafe_intro to true>> Everywhere I looked, it came back to you. <</if>> You've got a secret." <<He>> leans even more, your faces nearly touching. <br><br> "<<gwylanCommand "Won't you tell me?">> I won't say a word to anyone else. I promise." <<if $hypnosis_traits.devotion gte 1>> <span class="witchbloom"><<His>> request reverberates in your mind. Your lips feel loose. The gloom of the shop becomes oppressive, and your peripheral vision becomes dark, leaving only Gwylan's freckled, smiling face.</span> <</if>> <<else>> "So, have you changed your mind yet? I'm awfully curious as to how you make those buns so well." <<He>> leans further in. <br><br> <<if C.npc.Gwylan.dom gte 15>> "Come on. <<gwylanCommand "Be a <<pcpetname 'Gwylan' 'good'>> and tell me.">>" <<if $hypnosis_traits.devotion gte 1>> <span class="witchbloom"><<His>> gentle demand reverberates in your mind. The gloom of the shop becomes oppressive, and your peripheral vision becomes dark, leaving only Gwylan's freckled, smiling face.</span> <<else>> <<He>> pokes at your cheek. <</if>> <<else>> "<<gwylanCommand "Won't you tell me?">> I won't say a word to anyone else. I promise." <<if $hypnosis_traits.devotion gte 1>> <span class="witchbloom"><<His>> request reverberates in your mind. Your lips feel loose. The gloom of the shop becomes oppressive, and your peripheral vision becomes dark, leaving only Gwylan's freckled, smiling face.</span> <<else>> <<He>> pokes at your cheek. <</if>> <</if>> <</if>> <br><br> <<link [[Tell Gwylan how the buns are made|Gwylan Talk Clothes Chef Cream]]>><<set $phase to 1>><<npcincr Gwylan lust 5>><<npcincr Gwylan dom 2>><</link>><<gglust>><<gyearning>> <br> <<link [[Do not|Gwylan Talk Clothes Chef Cream]]>><<set $phase to 2>><</link>><<gwylanWillpowerDifficulty>> <br> <</if>><<effects>><<run statusCheck("Gwylan")>> <<if $phase is 1 or $phase is 2 and $hypnosis_traits.devotion gte 1 and !$willpowerSuccess>> <<set $gwylanSeen.pushUnique("cafe_chef_truth")>> <<if $phase is 2 and $hypnosis_traits.devotion gte 1 and !$willpowerSuccess>> You try to keep yourself quiet. <span class="red">You feel scolding disappointment wash over you, despite Gwylan's continued smile.</span> You can't help it. <span class="red">You tell <<him>> everything.</span> <<stress 6>><<gstress>> <<else>> You tell Gwylan that the key is in the cream, and exactly how you make it. <</if>> <br><br> <<if $gwylanSeen.includes("player_fluids_taste") and !$gwylanSeen.includes("player_fluids_realisation")>> <<set $gwylanSeen.pushUnique("player_fluids_realisation")>> <<He>> listens closely, <<his>> smile gradually fading into a look of realisation. "So that's why you taste so familiar," <<he>> says. <<else>> <<He>> listens closely, <<his>> smile gradually fading into an expression of pondering. <</if>> "Fascinating. Using your own bodily fluids." <<He>> starts to grill you for more details, such as your diet and any medications you take. <br><br> <<He>> gives you a satisfied smile when <<hes>> done. <<if C.npc.Gwylan.dom gte 15>> "<<pcPetname "Gwylan" "good">>, being so honest with me," <<he>> says, patting you on the head. <<if $hypnosis_traits.devotion gte 1>> <span class="witchbloom">It fills you with bliss.</span> <<stress -6>><<trauma -6>><<lstress>><<ltrauma>> <br><br> <</if>> <<else>> "Thank you. Your secret is safe with me." <<He>> pats you on the head. <</if>> <span class="pink">"I may ask you for a sample in the future."</span> <<arousal 500>><<garousal>> <<else>> <<if $hypnosis_traits.devotion gte 1>> <span class="green">You block out the compulsion.</span> <</if>> <<switch $speech_attitude>> <<case "meek">> "I-I can't tell," you say. "It's a secret recipe." <<case "bratty">> "I'm not giving my secret recipe away for anyone," you say, crossing your arms. "It's nothing personal." <<default>> "You're right, it's a secret. I can't reveal it," you say. <</switch>> <br><br> Gwylan pouts. "Very well. I'll squeeze it out of you one day." <<His>> choice of words makes you wonder if <<he>> already knows, and just wanted to hear you say it. <</if>> <br><br> <<endevent>><<npc Gwylan>><<person1>> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>><<set $daily.gwylan.clothesTalk++>> <<set $gwylanTalked.pushUnique("hookah")>><<set $gwylan.progress++>> You show Gwylan the esoteric spectacles. <br><br> <<if _gwylanTF.known>> <<His>> fox ears twitch. <<elseif _gwylanTF.ears is "revealed">> The fox ears on <<his>> hat twitch. <</if>> "May I hold those for a moment?" <br><br> You oblige, handing them over. <<He>> digs around the shop, until <<he>> finds a strangely shaped magnifying glass. <<He>> examines the spectacles with it. "Unusual prescription in these. Not quite for vision impairment. Like it's meant to correct something the human eye can't normally see." <<He>> holds them up to <<his>> eye, looking through them. <br><br> "Fascinating. Where did you find this?" <br><br> "There's this parlour," you explain. "A hookah parlour. I frequented it for a while, and saw some... interesting things when using it. I think I saw something I wasn't supposed to. I heard someone break in and smash the hookah, but I didn't see it. When I opened my eyes, the old owner was gone. Those were <<if $per_npc.hookah.pronoun is "f">>her<<else>>his<</if>> glasses." <br><br> Gwylan listens intently to your story. <<He>> asks what kinds of things you saw while using the hookah, and you do your best to explain it all. <br><br> /* ToDo: Gwylan - Gwylan visits the parlour */ "So, you own it now?" <<he>> asks, and you nod. "<span class="green">I might just come visit you there sometime.</span> You've piqued my interest." <br><br> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>><<set $daily.gwylan.clothesTalk++>> <<set $gwylanTalked.pushUnique("islander")>><<set $gwylan.progress++>> You show Gwylan the islander mask. <br><br> <<He>> runs <<his>> hand along the trim, up to the antlers. "This is good craftsmanship. Carved by hand. Not something done idly. How did you find this?" <br><br> <<switch $speech_attitude>> <<case "meek">> "I... I made it, actually," you say shyly. <<case "bratty">> "Damn right it's good craftsmanship, because I made it," you say proudly. <<default>> "I'm glad you like it, because I carved it myself," you say. <</switch>> <br><br> <<His>> eyes widen. "You've got talent. Do you know what these symbols you've carved into it mean?" <br><br> <span class="purple">You don't remember carving any symbols into it.</span> Gwylan frowns. "That's alright, it's easy to become lost in your own work and do things without realising it." <<He>> holds it up in the dim light. "It looks familiar. Like a design that was once common across the channel, a long time ago. What inspired you to make this?" <br><br> You tell <<him>> the long story of your time on the island. <<He>> listens intently through it all. <<He>> asks many questions about the islanders. <br><br> "So, part of that old culture is still alive," <<he>> says with a bright smile. "Thank you for telling me all of this. The residents are the descendants of a group that split off from the mainland centuries ago. The head of a once-powerful noble family fled in exile with many trusted disciples, bringing with them a sacred artifact." <br><br> <<He>> stops, putting a finger to <<his>> chin. "What was it? A walking stick? A spear?" <br><br> /* ToDo: Gwylan - option to tell Gwylan about the spear? */ <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>><<set $daily.gwylan.clothesTalk++>> <<set $gwylanTalked.pushUnique("fox_mask")>><<set $gwylan.progress++>> You show Gwylan the fox mask. <br><br> <<if _gwylanTF.known>> <<His>> fox ears twitch. <<elseif _gwylanTF.ears is "revealed">> The fox ears on <<his>> hat twitch. <</if>> <<if $brownFoxRevealed>> "Masquerade style. Often used in ritualistic celebrations. The mark of a sacrifice-to-be," <<he>> says grimly. <<else>> "Masquerade style. Often used in ritualistic celebrations. Why do you have this?" <<he>> asks grimly. <</if>> <br><br> <<switch $speech_attitude>> <<case "meek">> "I... went to a party with someone," you say. "It did seem ritualistic. There was a dance, and people with dog and elk masks, and—" <<case "bratty">> "I went to a weird party with someone," you say. "It seemed off. There was this dance, and people wearing different animal masks, and—" <<default>> "I went to a party with someone," you say. "It was ritualistic, I think. There was a dance, and everyone was wearing animal masks, and—" <</switch>> <br><br> Gwylan's nails scrape the counter as <<his>> hands clench, leaving scratch marks in the old wood. <<if $brownFoxRevealed>> <<He>> stares through you for a moment. "You saw what happened, didn't you? You know that could have been you?" <<elseif $worn.face.name is "fox mask">> "You were a part of it?" <<else>> "You wore this?" <</if>> <br><br> You nod. <br><br> <<if $brownFoxRevealed>> <<if $avery_fate is "ascended">> <<set $daily.gwylan.locked to true>> There's something else behind <<his>> eyes now. "Yet you still gave them everything they wanted, despite knowing what they do to vulnerable people like you." <<npcincr Gwylan lust -20>><<npcincr Gwylan dom -2>><<llllust>><<lyearning>> <br><br> <<He>> breathes out slowly. "You're better than this, even if you don't think you are. I hope you don't make the same mistake again." <<elseif $avery_fate is "saved">> <<He>> breathes out slowly. "And you still had it in your heart to save <<nnpc_him "Avery">>. Yours is a kind soul, indeed." <<He>> smiles at you. <<else>> <<He>> breathes out slowly. "It's okay. It's over now. Avery will never hurt anyone again." <</if>> <<elseif $gwylanSeen.includes("ritual_sex")>> Gwylan marches around the counter, and hugs you. "Whoever you went with, never speak with them again," <<he>> commands. <<His>> hand holds the back of your head. <<He>> embraces you as if you'd vanish the moment <<he>> lets go. <br><br> Eventually, though, <<he>> does. "You're lucky to still be here," <<he>> says as <<he>> returns behind the counter. "You've been marked as a target by some very dangerous people. It goes so much deeper than you know." <<else>> <<He>> takes a deep breath. "I would recommend you cut ties with whoever brought you there, for your own safety. You've been marked as a target by some very dangerous people." <<He>> leans in. "It goes so much deeper than you know. Please, dear, be careful." <</if>> <br><br> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>><<set $daily.gwylan.clothesTalk++>> <<set $gwylanTalked.pushUnique("fedora")>> You show Gwylan the fedora. <br><br> <<He>> takes it and turns it over. "The name fedora actually comes from a play. It used to be worn by women, but times change so quickly. It's a very fetching style." <<He>> puts it on your head, covering your eyes with a playful wink. "Wherever did you find it?" <br><br> "I was bartending," you say. You push the brim up to look at <<him>>. "I overheard some smugglers talking about their next job." <br><br> Gwylan runs a finger over a nearby shelf. "The shop has a strange sense of humour," <<he>> says. "Of course, fedoras have been associated with crime and alcohol for decades. I don't think it's worked to their benefit this time." <br><br> You hand the fedora back to <<him>>. <<He>> places it on a mannequin bust. <<if $hallucinations gte 2>>You think you see the mannequin wink at you, despite not having eyes.<</if>> <br><br> "Promise me you'll be careful," Gwylan adds. "Life is an adventure, and stories have power, but the criminals in this town are like spiders. They are waiting for you to step into their parlour." <br><br> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>><<set $daily.gwylan.clothesTalk++>> <<set $gwylanTalked.pushUnique("catsuit")>> You show Gwylan the catsuit. <br><br> "Sleek," <<he>> says. "What mischief did you partake in to find this?" <br><br> <<switch $speech_attitude>> <<case "meek">> "I was sneaking around at the docks, and I found it tucked away in one of the shipping containers," you say. <<case "bratty">> "I was getting into trouble at the docks and found it stashed in the back of a shipping container," you say. <<default>> "I was sneaking around at the docks and found it hidden in the back of a shipping container," you say. <</switch>> <br><br> "Sticky fingers, huh?" Gwylan says. "I understand. When you find that perfect treasure hidden away somewhere, it's hard to pass it by. It's a slippery slope, though. One acquisition turns into another, then another, then the next thing you know, well..." <<He>> gestures at the items around you. "If you're not careful, you'll end up with quite a collection." <br><br> <<if $blackmoney gte 1000>> "Well," you say, "I <i>do</i> have quite the collection of stolen goods on me. Nothing special," you add when Gwylan gives you an inquisitive look, "just some valuables for selling on the black market." <br><br> <<else>> "Would that be such a bad thing?" you ask. <br><br> "Of course not!" Gwylan gives you a wide smile. "But I'd hope you'd still find the time to stop by and see <i>this</i> collection." <</if>> <<He>> takes a seat. You blink. You don't recall seeing two chairs here before, but it's not the first time you've lost track of things in the shop. <br><br> As you take the seat opposite <<him>>, Gwylan leans forward and props <<his>> chin in the palm of <<his>> hand. "I'm curious, though," <<he>> says. "Sneaking around the docks like that... surely there were far more valuable treasures to steal. Monetarily, at least. But I think you can appreciate how the right piece of clothing is worth more than gold." <br><br> <<if $gwylanTalked.includes("chain_tunic")>> You think about Gwylan, hugging a cherished tunic to <<his>> chest. <<else>> You glance at Gwylan's hat, and <<= ["fake", "revealed"].includes(_gwylanTF.ears) ? "the ears on it" : "the flowers adorning it">>. <</if>> It's a personal subject for <<him>>. <br><br> "I can't say I know of many people who would pick up some clothes they found shoved into a corner, let alone wear it. So, why did this one speak to you?" <br><br> <<link [[Say you met someone interesting there|Gwylan Talk Clothes Catsuit 2]]>><<set $phase to "wren">><</link>> <br> <<link [[Say you were intrigued by the symbols nearby|Gwylan Talk Clothes Catsuit Symbol]]>><<set $phase to "symbol">><</link>> <br> <<link [[Say you wanted to show off your figure|Gwylan Talk Clothes Catsuit Figure]]>><<set $phase to "figure">><</link>> <br> <<link [[Say you thought it would come in handy|Gwylan Talk Clothes Catsuit Useful]]>><<set $phase to "useful">><</link>> <br> <<link [[Say you just like free clothes|Gwylan Talk Clothes Catsuit 2]]>><<set $phase to "free">><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<set $gwylanTalked.pushUnique("symbol")>> <<set _seenLocations to []>> <<if $compound.symbol.includes("wraith")>> <<run _seenLocations.push("crates filled with pale creatures")>> <</if>> You do your best to describe it: the nested semi-circles, the branching tendrils, the three-cornered knot at the centre. <<if $compound.symbol.length gt 1 or $gwylanSeen.includes("tattoos_intro")>> "I've seen that symbol before," you say.<<if $worn.neck.name is "stone pendant" and $compound.symbol.length gt 1>>"The full thing, not just the middle part, which looked like this." You hold up your stone pendant.<</if>> <<if $compound.symbol.includes("wraith")>> "I found it in the compound on Elk Street, on <<= _seenLocations.join(" and ")>>." <br><br> "Pale creatures?" Gwylan repeats. "Interesting." <<He>> absorbs this, then motions for you to continue. <br><br> <</if>> <<if $compound.symbol.includes("docks")>> "I've broken into other containers that had crates with this stamp on it. They had lots of complicated machinery parts in them," you say. <</if>> <<if $gwylanSeen.includes("tattoos_intro") and $compound.symbol.length gt 1>> <<if $worn.neck.name is "stone pendant">> "And... that knot at the centre? It doesn't just match my pendant. I've seen it on your stomach before too." <<else>> "And... I've seen part of the symbol on you before. The middle bit looked like your tattoo." <</if>> <<elseif $gwylanSeen.includes("tattoos_intro")>> "On your stomach. The knot at the centre looked exactly like your tattoo<<if $worn.neck.name is "stone pendant">>, same as my pendant<</if>>." <<else>> "That's about it. It just felt like something noteworthy," you say. <</if>> <<elseif $worn.neck.name is "stone pendant">> You hold up your stone pendant. "I haven't come across the whole symbol again, but the middle bit looked like this. It felt like something noteworthy." <<else>> "I haven't come across it again, but it just felt like something noteworthy," you say. <</if>> <br><br> Gwylan nods. "You said it was pink? I'd hazard a guess that those crates were intended for, or exported by, the Elk Street compound. It's not a symbol you see often these days," <<he>> says. "The ribcage of a fallen god. An infinite pair of antlers, fracturing again, and again, and again. At its core, the seed of life. A knot with no beginning or end that can never be untied." <<He>> looks directly at you. "It's an old song. Some consider it part of the sacred geometry of the universe. I'm sure the compound has their own reasons for using it," <<he>> says.<<if $gwylanSeen.includes("tattoos_intro")>> <<He>> places <<his>> hands over <<his>> stomach and looks directly at you. "And I have my reasons for using this piece of it. Don't mistake the part for the whole."<</if>> <<run $gwylanTalked.pushUnique("symbol")>> <br><br> A silence stretches between you. Gwylan breaks it first, suddenly chipper. "Well! I see why it left an impression on you." <br><br> You nod. "I didn't really think anything of it until now," you confess. "But yeah, I guess it did."<<effects>><<run statusCheck("Gwylan")>> You explain how you found the catsuit stashed among crates marked with a pink symbol. <<if $compound.symbol.includes("catsuit")>> <<include "Gwylan Talk Symbol">> <<else>> Gwylan looks intrigued, and asks you to describe it. "I didn't get a great look at it at the time," you admit. "I was a bit distracted. But I suppose it left an impression on me." <br><br> <<He>> nods thoughtfully. "Understandable. It could have been anything. A manufacturer's mark, a stamp from its sender, a company logo... although pink is an interesting colour of choice. Perhaps it was intended for, or sent by, one of the factories at the outskirts of town. Or the compound on Elk Street." <<He>> gives a small frown, then a slight shake of <<his>> head. When <<he>> speaks again, <<his>> voice is bright. "But there's no use speculating! I see why it piqued your curiosity." <</if>> <br><br> <<link [[Next|Gwylan Talk Clothes Catsuit 2]]>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<switch $speech_attitude>> <<case "meek">> "I think it looks nice on me. Don't you?" You give Gwylan a demure smile. <<case "bratty">> "Because latex is hot and shows off my goods. Next question." You grin and stick your tongue out at Gwylan. <<default>> "It's skintight and highlights my figure. What's not to like?" You wink at Gwylan. <</switch>> You illustrate the point by running your hands down your body and <<if $player.perceived_breastsize gte 4>> cupping your <<breasts>>. <<elseif calculatePenisBulge() gte 4>> grabbing your bulge. <<elseif $player.perceived_bottomsize gte 4>> squeezing your <<bottom>>. <<else>> emphasising your form. <</if>> <br><br> Gwylan snickers. <<He>> straightens up and surveys you with a studious look, tapping <<his>> chin in mock contemplation. <<if $worn.upper.name is "catsuit" and $worn.lower.name is "catsuit bottoms">> "Yes, yes, I can see how it accentuates your assets. A worthy investment indeed." <<else>> "Yes, of course, I can only imagine how it accentuates your assets. You must give me a visual demonstration sometime." <</if>> <<He>> drops the overly-formal tone and gives you a playful smile. <br><br> <<link [[Next|Gwylan Talk Clothes Catsuit 2]]>><</link>> <br><<effects>><<run statusCheck("Gwylan")>><<set _tf to checkTFparts()>> "I just thought it would come in handy," you say. <br><br> "Fair enough," Gwylan says with a nod. "It's easier to skulk around at night if you blend in the darkness. If nothing else, dressing like the person you want to be can boost the confidence. I'm sure it's proved useful." <<if _tf.foxTail or _tf.foxEars>> <<He>> looks at your <<= _tf.foxEars ? "fox ears" : "fox tail">>. "Very useful, I imagine." <<if _gwylanTF.known>> <<He>> gives you a knowing smile, tail swishing gently. <<else>> <<His>> smile is genuine. <</if>> <</if>> <br><br> <<link [[Next|Gwylan Talk Clothes Catsuit 2]]>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<if $phase is "free">> "No special reason," you say. "I just like getting free clothes." <br><br> Gwylan giggles. "As valid a reason as any. Though I'll admit I'd hoped for a bit more to the story." <br><br> You try to think of a more interesting detail to share. "Oh, there is one other thing," you add, <<elseif $phase isnot "wren">> "Plus," you add, <</if>> "I bumped into another person there. <<switch $speech_attitude>> <<case "meek">> When I opened the container... there was someone else inside. With a gun." <<case "bratty">> When I broke into the container, I found myself staring down the barrel of a gun." <<default>> When I broke into the container, someone pointed a gun at me." <</switch>> <br><br> Gwylan's eyes widen. "I assume it wasn't law enforcement, since you're here and not in prison." <br><br> You shake your head. "A smuggler. I'm not sure what <<nnpc_he "Wren">> was doing in there, or how <<nnpc_he "Wren">> intended to get out. I hadn't really thought about it before, but <<nnpc_he "Wren">> was locked inside." <br><br> <<if $phase is "symbol">> Gwylan frowns. "Given the contents of the container <<nnpc_he "Wren">> was in, I'd say that's someone to be cautious around." <<He>> gives a light shrug. "But maybe I'm just being presumptuous." <<else>> Gwylan smiles. "An unexpected surprise for the both of you, then." <<He>> giggles. "Do you think <<he>> locked <<himself>> in by mistake, then tried to play it cool when you gallantly rescued <<him>>?" <</if>> <br><br> "<<nnpc_He "Wren">> was secretive, for sure. <<nnpc_He "Wren">> said that catsuit looked like it would fit me, so I decided to take it." <br><br> "I'm sure the intended recipient didn't miss it," Gwylan says with a mischievous smile. "Thanks for sharing. <<= $gwylanTalked.length gte 5 ? "You always have the most interesting adventures" : "That was quite the adventure">>. You'll have to tell me if you go on any other daring exploits of larceny and espionage, now that you have the right getup." <br><br> <<if $bird?.hunts?.estate is "complete" and !$gwylanTalked.includes("heist_silver")>> <<link [[Tell Gwylan about the silver bar you stole|Gwylan Talk Clothes Catsuit 3]]>><<set $phase2 to "silver">><</link>> <br> <</if>> <<if $lakestealgold is 1 and !$gwylanTalked.includes("heist_gold")>> <<link [[Tell Gwylan about the gold bar you stole|Gwylan Talk Clothes Catsuit 3]]>><<set $phase2 to "gold">><</link>> <br> <</if>> <<if $wrenHeist or $wrenSeen?.includes("heist") and !$gwylanTalked.includes("heist_wren")>> <<link [[Tell Gwylan about the heist with Wren|Gwylan Talk Clothes Catsuit 3]]>><<set $phase2 to "heist">><</link>> <br> <</if>> <<link [[Thank Gwylan for listening|Gwylan Talk Clothes Catsuit 3]]>><<set $phase2 to "thank">><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<if $phase2 is "silver">> "Outfit aside, I have been on an adventure of larceny and espionage..." <<include "Gwylan Talk Heist Silver">> <<elseif $phase2 is "gold">> /* Kirsty: Yes this is unreachable. Yes, it makes me laugh. Missing quote in "bratty" and default cases is intentional, as the sentence continues in :: Gwylan Talk Heist Gold */ <<switch $speech_attitude>> <<case "meek">> "It's not my most interesting experience stealing," you say. <<case "bratty">> "If you thought that was interesting, you ain't seen nothing yet. <<default>> "That wasn't even my most interesting experience stealing. <</switch>> <<include "Gwylan Talk Heist Gold">> <<elseif $phase2 is "heist">> "Wait, it gets even better," you say. <<include "Gwylan Talk Heist Wren">> <<else>> Gwylan looks surprised. "You don't need to thank me. I'm always happy to listen." <</if>> <br><br> <<He>> stands up. "In any case, I appreciate you sharing all this. And it's good to know that you're in the business of sneaking around. I'll make sure to change my locks." <<He>> smiles. <br><br> <<endevent>><<npc Gwylan>><<person1>> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>> <<set $gwylanTalked.pushUnique("heist_silver")>> You recount the tale of your grandest hunt, reliving all the narrow brushes with guards and close calls with lurkers. You talk about the pulse of adrenaline as you crept closer to the mysterious light, of weaponising caged lurkers, of the satisfaction felt when your hand finally closed around the Lure. You tell Gwylan about the giant lurker, your daring escape, and the intricate seal carved into its base. <<He>> listens intently, gasping at all the right moments. When you finally finish talking, you're breathless. <br><br> Gwylan claps. "Wow! I felt like I was there with you. Very well told!" <<His>> smile dims, as <<he>> suddenly grows serious. "That silver bar, and the pattern etched in it, could have had devastating consequences if left with those people. Some say that silver's a sacred metal, capable of keeping evil at bay. Pure. Holy. Binding. But it can also be used to commit atrocities in the name of belief. It's all in who wields it. I'm glad you were able to take it. Wield it well, or better yet: not at all. It sounds like you've found a safe home for it."<<effects>><<run statusCheck("Gwylan")>> <<set $gwylanTalked.pushUnique("heist_gold")>> <<switch $speech_attitude>> <<case "meek">> "I found a gold bar once. And I took it by, um, well..." Gwylan has to lean in to hear you whisper, "...putting it up my..." You're unable to finish the sentence, and simply point to your unmentionables. <<case "bratty">> One time I stole a gold bar by shoving it up my <<= $player.vaginaExist ? "cunt" : "ass">>," you say plainly. <<if !$player.vaginaExist>>"Gotta say, I get why buttplugs have flared bases now."<</if>> <<default>> I once stole a gold bar by storing it in nature's pocket," you say. <</switch>> <br><br> Gwylan opens <<his>> mouth, then closes it again. "Well," <<he>> finally says. "To each <<pher>> own methods!" <<His>> face is bright red.<<effects>><<run statusCheck("Gwylan")>> <<set $gwylanTalked.pushUnique("heist_wren")>> <<if $wrenHeist and Time.hour gt 20 and !$wrenHeistDance.attended>> "I have a... heist... planned for tonight. With that person." You trail off at the realisation that <span class="red">you've stood Wren up</span>. "Or I did, at least." <br><br> Gwylan's eyebrows raise. "Lost track of time? I assume a lot has changed between you two. Hopefully <<nnpc_hes "Wren">> the understanding sort." <<He>> pats you on the head. <<else>> "I <<= $wrenHeist and !$wrenHeistDance.attended ? "have a heist planned for tonight" : "went on a heist">> with the same person who pointed that gun at me." <<if $wrenHeist and !$wrenHeistDance.attended>> <<if Time.hour gte 19>> You check the time and jump to your feet. "Right now, in fact." <</if>> <br><br> Gwylan's eyebrows raise. "You're either very brave, or a lot has changed between then and now. I hope you're staying safe." <<elseif $wrenSeen.includes("heist")>> You tell Gwylan how you initially served as a distraction while Wren picked pockets, then joined <<nnpc_him "Wren">> to crack the safe. <<if $wrenHeistCricketBall isnot undefined>><<He>> stifles a laugh when you tell <<him>> how you double-crossed your partner-in-crime.<</if>> <!-- note: this is THE (second) stupidest way to check for if PC stole the cricket ball, but currently it's how it works. we may want to use wrenSeen instead --> <br><br> When you describe the painting to <<him>>, <<his>> gaze sharpens, and <<he>> leans closer. "I've heard of that painting before. It belonged to Winter, didn't it?" <br><br> <<if $museumAntiques.paintings.paintingward is "found">> "It did. I still need to give it to <<nnpc_him "Winter">>," you say. <br><br> Gwylan nods. "I'm sure <<nnpc_he "Winter">> will be grateful." <<else>> "Yes. I gave it to <<nnpc_him "Winter">> already. It sounds like it meant a lot to <<nnpc_him "Winter">>." <br><br> Gwylan nods. "From what I've heard, it did. I'm glad it's back with its rightful owner." <</if>> <</if>> <</if>><<effects>><<run statusCheck("Gwylan")>> You show Gwylan the catsuit. "When I showed this to you, you told me to share any other skulduggerous adventures I had," you say. "Well, I do have another story to tell you." <br><br> Gwylan perks up at that. "Oh?" <<he>> says. "I'm all ears." <<if _gwylanTF.known>> <<His>> fox ears twitch. <<elseif _gwylanTF.ears is "revealed">> You glance at the fox ears on <<his>> hat. They seem like they're standing straighter than usual. <<else>> <<He>> gives you <<his>> undivided attention. <</if>> <br><br> <<if $bird?.hunt?.estate is "complete" and !$gwylanTalked.includes("heist_silver")>> <<link [[Tell Gwylan about the silver bar you stole|Gwylan Talk Heists Share]]>><<set $phase to "silver">><</link>> <br> <</if>> <<if $lakestealgold is 1 and !$gwylanTalked.includes("heist_gold")>> <<link [[Tell Gwylan about the gold bar you stole|Gwylan Talk Heists Share]]>><<set $phase to "gold">><</link>> <br> <</if>> <<if ($wrenHeist or $wrenSeen?.includes("heist")) and !$gwylanTalked.includes("heist_wren")>> <<link [[Tell Gwylan about the heist with Wren|Gwylan Talk Heists Share]]>><<set $phase to "heist">><</link>> <br> <</if>> <<if $compound.symbol.includes("docks") and $gwylanTalked.includes("catsuit") and !$gwylanTalked.includes("symbol")>> <<link [[Tell Gwylan about uncovering a mysterious symbol|Gwylan Talk Heists Share]]>><<set $phase to "docks">><</link>> <br> <</if>> <<link [[Tell <<him>> you'll share later|Gwylan Talk Heists Later]]>><</link>><<effects>><<run statusCheck("Gwylan")>> <<switch $phase>> <<case "gold">> /* Kirsty: Yes this is unreachable. Yes, it makes me laugh. Missing quote in "bratty" and default cases is intentional, as the sentence continues in :: Gwylan Talk Heist Gold */ <<switch $speech_attitude>> <<case "meek">> "This is a bit embarrassing to admit, but I... I trust you," you begin. You can feel the heat rising to your cheeks. <<case "bratty">> You lean in conspiratorially. "You'll get a kick out of this one, I'm sure. <<default>> "It's kind of a funny story, really. <</switch>> <<include "Gwylan Talk Heist Gold">> <<case "silver">> <<include "Gwylan Talk Heist Silver">> <<default>> You hold up the catsuit. "Do you remember me telling you about how I discovered this?" <br><br> "Of course I do," Gwylan says. <<if $gwylanTalked.length gte 10>> "How could I forget? You always tell the most interesting stories." <<else>> "You tell a good story, after all." <</if>> <br><br> <<if $phase is "heist">> <<include "Gwylan Talk Heist Wren">> <<else>> "The container that I found it in was full of crates with a weird pink symbol on it." <<include "Gwylan Talk Symbol">> <</if>> <</switch>> <br><br> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>> "Sorry, I don't have the time to share right now," you tell <<him>>. "I just wanted you to know." <br><br> <<if !$daily.heistReminder>> <<set $daily.heistReminder to true>> Gwylan nods. "Another time, then. I look forward to it!" <<else>> "You don't have the time to tell me your story, but you <i>do</i> have the time to remind me of it? Silly <<pcpetname "Gwylan" "simple">>." <<He>> giggles and pats your head. "Whenever you're ready, dear." <</if>> <br><br> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>><<set $daily.gwylan.clothesTalk++>> <<set $gwylanTalked.pushUnique("janet")>> You show Gwylan the janet dress. <br><br> "Dignified," <<he>> says. "How did you find this?" <br><br> <<switch $speech_attitude>> <<case "meek">> "I... I got lost in a story," you say. "It felt like the book pulled me in, and I felt everything like it was really happening to me. Then I found this dress here." <<case "bratty">> "I got lost in a book," you say. "An old romance tragedy. It felt as I was really in it. Then this dress showed up here." <<default>> "There's this scarlet book from the school library," you explain. "I think I got a little too into it. It physically felt like I was involved in it. After I finished, this dress showed up here." <</switch>> <br><br> Gwylan nods along. "Some stories and legends have that curious property to them. If you immerse yourself in it, it's as though you're present in body and soul as well as mind." <br><br> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>><<set $daily.gwylan.clothesTalk++>> <<set $gwylanTalked.pushUnique("dance_studio")>> You show Gwylan the swan lake tutu and accessories. <br><br> "Very pretty," Gwylan says, tracing a finger over one of the feathers. "It reminds me of a ballet I saw once, a long time ago. A tragic story." <<He>> pauses and cocks <<his>> head. "Or a romantic one? The ending changes, depending on the production." <<He>> glances at you. "When did these appear?" <br><br> <<switch $speech_attitude>> <<case "meek">> "Well, I've been taking dancing lessons at a studio in town... I suppose I must have made a good impression, because the instructor asked me to perform at some parties. That's when the dress showed up." <<case "bratty">> "I've been making waves at the dance studio in town. This stuff showed up after the instructor pulled me aside and asked me to entertain at some parties." <<default>> "I've been taking dancing lessons at the studio in town, and I've gotten quite good at it. The instructor's asked me to work at a few parties around town. I found these in the shop shortly after." <</switch>> <br><br> Gwylan smiles. "That's fitting." <<He>> taps the swan lake tiara. "This story's been told countless times, but most adaptations agree that it begins with a party." <<He>> leans in closer to you. "So, how does your story end?" <br><br> <<set _danubeStats to V.moneyStats.find(stat => stat === "danubeDanceJob")>> <<set _partyStats to V.moneyStats.find(stat => stat === "partyDanceJob")>> You hesitate. <<if $gwylanTalked.includes("temple_exorcist")>> "Happily," you finally say, giving a decisive nod. "I was able to rescue that member of Jordan's flock, after all. That was worth any bumps along the way." <br><br> "You freed a caged bird," Gwylan says, giving you a gentle smile. "I'd say it's worth it." <<elseif _danubeStats?.earned gte 20000>> "Maybe a bit tragically," you say. You tell Gwylan about the lengths you had to go to to earn your pay, from handsy partygoers to the contraption they wheeled out for your debasement. Gwylan listens intently, brow furrowed. <<elseif _danubeStats?.earnedCount gt 0 or _partyStats?.earnedCount gt 0>> "Well enough," you say. "I've made some decent money, so I can't really complain." <<elseif getUnlockedSpecialSets().includes("temple_exorcist")>> "It... did not end the way I'd expected," you say. "It's a long story." <br><br> <<He>> tilts <<his>> head. "That so? I would love to hear more about it later." <<else>> You admit that you've yet to follow through on a dance job. Gwylan looks disappointed, but doesn't press the matter. <</if>> <br><br> As Gwylan goes to hang up the tutu once more, you speak. "Gwylan?" <<He>> gives an inquisitive hum and glances over <<his>> shoulder at you. "You said you saw the ballet once. How did it end for you?" <br><br> Gwylan taps <<his>> chin. "Well, it's been some time, but as I recall... <<switch random(1,7)>> <<case 7>>The swan queen sacrificed herself. In their grief, her maidens destroyed the sorcerer, tearing him limb from limb." <<case 6>>The maiden remained a swan eternal. The curtain closed on her lover, alone in his grief." <<case 5>>The swan queen died in the prince's arms. He carried her to the lake, where they were reunited in death." <<case 4>>The prince clipped the sorcerer's wing, breaking the curse and liberating the swan maidens of the lake. For once, everyone lived." <<case 3>>The prince tore the crown from the swan queen's head. She died, and the waters of the lake rose to drown him." <<case 2>>The swan queen and her lover drowned at the hands of a witch." <<default>>The lovers chose to leap into the lake, where they drowned as one. Their sacrifice broke the enchantment, and they ascended to the heavens in apotheosis." <</switch>> <<He>> studies your face as you digest this. "But, of course, it's just a fairytale," <<he>> says. <br><br> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>> <<set $gwylanTalked.pushUnique("sage_witch_hat")>> You ask Gwylan about <<his>> hat. <br><br> "It's a design I settled into a long, long time ago. It's my favourite colour, and the shade it provides is perfect. The one you have is an older one. I knew the shop was hiding some of them around still." You can't tell any difference between it and the one Gwylan wears. <br><br> Gwylan opens <<his>> mouth to ask <<his>> usual question, but you answer before <<he>> can. <<switch $speech_attitude>> <<case "meek">> "It showed up right after we... did that ritual," you say. <<case "bratty">> "It showed up right after we fooled around during that ritual," you say. <<default>> "It showed up after we did that ritual together," you say. <</switch>> <br><br> Gwylan nods. "You've earned it. You're almost like my apprentice now," <<he>> giggles. <br><br> <<gwylanOptions>> <!-- Misc --><<effects>><<run statusCheck("Gwylan")>><<set _tf to checkTFparts()>> You show Gwylan the spirit mask and shrine maiden's robes. <br><br> <<if _gwylanTF.known>> <<His>> fox ears twitch. <<elseif _gwylanTF.ears is "revealed">> The fox ears on <<his>> hat twitch. <</if>> "Looks like a foreign style," <<he>> says, running <<his>> hands along the silk. "Ceremonial. I have a similar set of robes, although green is more my colour. Where did you find these?" <br><br> <<if _tf.foxTail>> <<His>> eyes keep flicking to your tail. <br><br> <</if>> <<if $fox gte 6 or $transformationHistory.includes("fox")>> <<link [[Say it appeared after you became a fox|Gwylan Talk Clothes Shrine 2]]>><<set $phase to 1>><</link>> <br> <</if>> <<if $moorLuck isnot undefined>> <<link [[Say it appeared after you prayed at a shrine in the moor|Gwylan Talk Clothes Shrine 2]]>><<set $phase to 2>><</link>> <br> <</if>> <<if !(($fox gte 6 or $transformationHistory.includes("fox")) and $moorLuck isnot undefined)>> <span class="blue">There might be an alternative story to tell about this outfit...</span> <br> <</if>> <<link [[Say you don't remember|Gwylan Talk Clothes Forgot]]>><</link>> <br><<effects>><<run statusCheck("Gwylan")>><<set _tf to checkTFparts()>><<set $daily.gwylan.clothesTalk++>> <<set $gwylanTalked.pushUnique("shrine")>> <<if $phase is 1>> <<if $fox gte 6>> <<set $gwylan.progress += 2>> <<if _tf.foxTail>> You swish your tail. "It showed up around the same time this did," you explain. <br><br> Gwylan walks behind you, and lifts it. The contact sends a jolt up your spine. <<arousal 800>><<garousal>> <br><br> <<else>> "It showed up after I started feeling like a fox," you explain. "That sounds strange, but—" <br><br> Gwylan walks behind you. You suddenly feel a jolt as <<he>> lifts your fox tail. You were certain that you were hiding it. <<arousal 800>><<garousal>> <br><br> "It's a shame to hide something so beautiful, isn't it?" <</if>> <<if _gwylanTF.known>> <<He>> gently fluffs the fur, knowing exactly where to press to make it feel good. "I haven't been able to talk with someone like myself in a long time, you know. I hope you stay like this," <<he>> says. <<else>> <<He>> gently pets the fur. "Very soft," <<he>> says. <</if>> <<if $gwylanSeen.includes("hypnosis_peace")>> "Are you at peace with it now?" <<elseif !$gwylanSeen.includes("player_tf")>> <<set $gwylanSeen.pushUnique("player_tf")>> <<if _tf.foxTail>> "I can show you how to take care of it properly, if you would like. If you find that you're <span class="blue">doubting or resenting these expressions of your inner self</span>, come talk to me." <<else>> "It must be difficult. If you need help coming to terms with your inner self, <span class="blue">come talk to me about it.</span> I know how to help." <</if>> <<else>> "You take good care of it." <</if>> <<npcincr Gwylan dom 2>><<gyearning>> <br><br> <<if !_tf.foxTail>> <<He>> releases it, and it disappears the next time you blink. "Don't worry, your secret is safe with me." <<He>> giggles. <br><br> <</if>> <<else>> "It first showed up during a time I felt like a fox," you explain. "That sounds strange, but it's the easiest way for me to describe it." <br><br> <<He>> pauses, and leans to the side, as if expecting to find something behind you. "So you don't feel that way anymore?" <br><br> You nod. <<if _gwylanTF.known>> "That's a shame, I haven't known someone like myself in a long time. <<else>> There's a hint of what looks like disappointment in <<his>> eyes. "I see. <</if>> Well, as long as that was a decision you reached on your own, not one forced upon you by others. <<if $gwylanSeen.includes("hypnosis_peace")>> Feeling at peace with yourself is important." <<elseif !$gwylanSeen.includes("player_tf")>> <<set $gwylanSeen.pushUnique("player_tf")>> If you ever have doubts or resentments over these expressions of your inner self, <span class="blue">come talk to me about it.</span> I know how to help." <<else>> In any case, I think you'd look cute as a fox!" <</if>> <br><br> <</if>> <<else>> "I found them folded at a shrine in the moor," you say. "After I prayed there." <br><br> Gwylan looks intrigued. "Perhaps someone was watching you, or perhaps it was already there, waiting for you to believe it was." <br><br> <</if>> <<endevent>><<npc Gwylan>><<person1>> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>><<set _tf to checkTFparts()>> You show Gwylan the jasper pendant. <br><br> <<if _gwylanTF.known>> <<His>> fox ears twitch. <<elseif _gwylanTF.ears is "revealed">> The fox ears on <<his>> hat twitch. <</if>> "I carved that myself." <<He>> reaches into the neck of <<his>> shirt, untucking a nearly-identical one. "Variants of quartz like this are pretty common on beaches up north. They're sometimes called scotch pebbles." <<He>> holds it up to the light. "When did you find this?" <br><br> <<if $gwylanSeen.includes("request_gold_accessories")>> <<link [[Say it appeared after you gave <<him>> the gold accessories|Gwylan Talk Clothes Jasper 2]]>><<set $phase to 1>><</link>> <br> <</if>> <<if $gwylanSeen.includes("chastity_gold")>> <<link [[Say it appeared after <<he>> broke your gold chastity belt|Gwylan Talk Clothes Jasper 2]]>><<set $phase to 2>><</link>> <br> <</if>> <<if !($gwylanSeen.includesAll("request_gold_accessories", "chastity_gold"))>> <span class="blue">There might be an alternative story to tell about this pendant...</span> <br> <</if>> <<link [[Say you don't remember|Gwylan Talk Clothes Forgot]]>><</link>> <br><<effects>><<run statusCheck("Gwylan")>><<set $daily.gwylan.clothesTalk++>> <<set $gwylanTalked.pushUnique("jasper")>> <<if $phase is 1>> <<if $daily.gwylan.jasper>> "It showed up just now, when I gave you those gold accessories from the adult shop," you say. <<else>> "I found it after I gave you those gold accessories from the adult shop," you say. <</if>> <<else>> <<if $daily.gwylan.jasper>> "It showed up just now, right after you melted that golden chastity belt off of me," you say. <<else>> "I found it after you melted that golden chastity belt off of me," you say. <</if>> <</if>> <br><br> <<He>> smiles. "That means you were paying attention." <<He>> holds it by the pendant, letting it dangle between you. "Tell me, what do you see in the shape of the stone? What does it look like to you?" <br><br> You look it over for a moment. There are flowing details on the upper curve. To you, it looks most like...<br> <<link [[A fox's tail|Gwylan Talk Clothes Jasper 3]]>><<set $phase to 1>><</link>><br> <<link [[A rooster|Gwylan Talk Clothes Jasper 3]]>><<set $phase to 2>><</link>><br> <<link [[A flame|Gwylan Talk Clothes Jasper 3]]>><<set $phase to 3>><</link>><br> <<if $awarelevel gte 2>> <<link [[A red crescent moon|Gwylan Talk Clothes Jasper 3]]>><<set $phase to 4>><</link>><br> <</if>> <<if $awarelevel gte 3>> <<link [[A drop of blood|Gwylan Talk Clothes Jasper 3]]>><<set $phase to 5>><</link>><br> <</if>><<effects>><<run statusCheck("Gwylan")>> <<switch $phase>> <<case 1>> "It looks like the tail of a fox," you say. "It comes to a point at the top, and the detail looks like the colour splitting." <br><br> <<He>> nods. "That is one part of it, yes. It's a bit of a trick, though." <<case 2>> "It looks like a rooster with a big tail," you say. "I can see the beak right there." <br><br> <<He>> nods. "That is one part of it, yes. It's a bit of a trick, though." <<case 3>> "It looks like a flame," you say. "The details make it look like its burning." <br><br> <<He>> nods. "That is one part of it, yes. It's a bit of a trick, though." <<case 4>> "It looks like the moon," you say. "The way the moon gets at the end of every month, if it were a crescent." <br><br> <<He>> blinks, turning it over in <<his>> hands. <<He>> tilts it slightly. "Huh. I suppose it can look like that." <<He>> smiles. "That wasn't the intention, but you've got a sharp mind to be able to see such things." <<default>> <<set $gwylan.progress++>> "It looks like a drop of blood. The negative space of the curve is meant to be a shining highlight." <br><br> <<He>> looks surprised, but starts slowly clapping. "Incredible. You're able to see past the components for what they are, and see their result instead. I'm very impressed." <<npcincr Gwylan dom 1>><<gyearning>> <</switch>> <br><br> <<He>> hands it back to you. "It's many things. A fox tail, a rooster, and a flame, depending on how you look at it. It's alchemy. The rooster represents gold, as it greets the sun every morning, and the sun also represents gold. The fox represents royal water; aqua regia. The flame is the reaction between them. Dissolve, heat, dissolve, repeat. The fox and rooster consume one another in an endless dance." <br><br> <<He>> gently holds your hands, and rotates the pendant in your palm. "Some called the result 'dragon's blood', for its intense red hue." <<He>> smiles. "It was a bit of an inspiration piece for me. You're welcome to buy it, of course. I can always make more." <br><br> <<endevent>><<npc Gwylan>><<person1>> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>><<set $daily.gwylan.clothesTalk++>> <<set $gwylanTalked.pushUnique("butterfly")>> You show Gwylan the butterfly costume. <br><br> <<He>> takes the hem of the dress in <<his>> hands. "Such lush colours," <<he>> says. "Where did you find it?" <br><br> You tell <<him>> about your adventures in the forest. <<if $background is "plantlover">> You explain that you've loved plants your whole life, and about your first taste of nectar. <<elseif isLoveInterest("Gwylan")>> You blush a bit as you start talking about your encounters with the plantpeople. You leave out some of the more lewd details until Gwylan starts pressing you for them. <<else>> You describe your encounters with the plantpeople. You leave out some of the more lewd details until Gwylan starts pressing you for them. <</if>> <br><br> <<He>> chuckles. "The nectar does taste good, doesn't it? Be careful, though. It can be quite addictive. Of course, the dryads know this, and they love mischief." <br><br> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>><<set $daily.gwylan.clothesTalk++>> <<set $gwylanTalked.pushUnique("succubus")>><<set $gwylan.progress++>> You show Gwylan the succubus costume. <br><br> <<He>> looks it over. Something passes over <<his>> face. <<if isLoveInterest("Gwylan") && $fallenangel gte 1>> You think you recognise what <<he>> feels. A similar emptiness yawns where your heart used to be. "What trouble befell you to find this?" <<he>> asks. <<else>> "How did you find this?" <<he>> asks. There's a hint of sadness in <<his>> voice. <</if>> <br><br> <<if $fallenangel gte 1>> <<set $gwylanSeen.pushUnique("fall_from_grace")>> You hesitate. Gwylan notices and takes your hands. <<takeHandholdingVirginity "Gwylan" `(V.gwylanSeen.includes("yearning") ? "romantic" : "consensual")`>> <br><br> <<He>> leads you to two chairs and sits you down in one. <<He>> sits in the other. "You can tell me," <<he>> says. "Whatever you say will stay between us." <<if isLoveInterest("Gwylan")>> You don't hesitate again. <<He>> would never judge you for this. <<else>> You nod, and take a deep breath. <</if>> <br><br> <<if $speech_attitude is "meek">> "I," you start, interrupting yourself as you sniffle. "I was holy and pure. But <<if $player.virginityDetails?.vaginal?.consensual || $player.virginityDetails?.penile?.consensual>>I w-wanted to show my love<<else>>I was defiled<</if>>. It hurt. So much. I tried to be good, but I couldn't be that good again. I'm... I don't think you ever can be that good again." <br><br> Gwylan takes your hand again. <<if isLoveInterest("Gwylan")>><<He>> squeezes it.<</if>> <<elseif $speech_attitude is "bratty">> "I was an angel," you say. "My wings were white as snow. Beautiful. But <<if $player.virginityDetails?.vaginal?.consensual || $player.virginityDetails?.penile?.consensual>>I lost that purity<<else>>my purity was stolen from me<</if>>. I never got it back." You laugh. "You can never get it back." <br><br> Gwylan smirks. It isn't a nice smirk. <<else>> "I was an angel," you say. "But <<if $player.virginityDetails?.vaginal?.consensual || $player.virginityDetails?.penile?.consensual>>I had sex.<<else>>I was raped.<</if>> So I fell. And since I couldn't get it back, I fell even further." <br><br> "You hit rock bottom," Gwylan says. <br><br> "Something like that," you say. "I guess once you go that low, you can't get back up." <br><br> <</if>> "No," <<he>> says. "You can't." <<else>> You tell <<him>> about your sexual exploits. You meant to only talk about the good, but you find that you talk about the bad too. The terrifying. <<if $demon gte 6>> You don't deny the thrill you get every time you defile someone. The highs it brings you. The hole it fills inside of you. The physiological need to do it again, and again. <</if>> <br><br> <</if>> <<He>> carefully folds the clothing. "This isn't something I would normally sell," <<he>> says. "But it's clear that you <<if $fallenangel gte 1 or $demon gte 6>>marched through Hell<<else>>suffered greatly<</if>> to find it. It has earned its place here." <br><br> <<He>> returns it to its spot. After one last look, <<he>> turns away. <br><br> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>> <<set $gwylanTalked.pushUnique("flowers")>> You show Gwylan the various flowers around the shop. The roses, the daisies, the flower crown, and the ones on <<his>> hat. <br><br> "Isn't it wonderful how these flowers never wilt? The ones that find their way into the shop only rot when discarded," <<he>> says proudly. "Roses are my favourite, but this crown is cute too." <br><br> <<switch $speech_attitude>> <<case "meek">> "I'm glad you think so. I actually made one that looks just like it," you say. <<case "bratty">> "Good, because I made one that looks just like it," you say. <<default>> "I made one just like that," you say. <</switch>> <br><br> <<He>> smiles at you. "It takes a practised hand to weave together something so delicate without ruining the petals. I have more around here somewhere." <<He>> starts rummaging around the shop, and returns with a collection of many different flowers. The smell of all of them together is overpowering, but pleasant. <<hallucinogen 20>><<ghallucinogens>> <br><br> You recognise most of them, but there's three that stick out from the rest. Three closed purple bulbs, similar to tulips but longer, and... glowing? <br><br> "I try to grow most of my own flowers and herbs. The shop likes some more than others, and I don't quite control which ones end up..." <br><br> <span class="pink">Gwylan's voice fades into incoherence. You're completely enraptured by the glowing flowers.</span> <br><br> <<link [[Touch them|Gwylan Talk Clothes Flowers Touch]]>><</link>> <br> <<link [[Do not|Gwylan Talk Clothes Flowers Listen]]>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> You shake off the compulsion, and focus on Gwylan's voice. It slowly fades back in. <br><br> "—crop rotation is important, even for flowers. Each type of plant needs different nutrients, and will take it all from the soil if permitted to. Soil will replenish itself as minerals and natural fertiliser, like animal carcasses or droppings, decay nearby. The soil needs rest and nourishment, just like we do." <br><br> Gwylan runs <<his>> hand along the edges of the flower crown's petals. For some reason, it feels as though Gwylan is touching your ears the same way <<hes>> touching the petals. <br><br> <<He>> continues. "There's almost nothing I can't grow. Almost. Any colour of rose - by the way, did you know that you can use water with food colouring to change the colour of their petals? - anyways, they all grow fine, except for the pink ones. No matter what I do, I can never get them to bloom, so I just pluck them early. Better to save nutrients for the others. Even trying to grow them in pink-dyed water just has them wither. Sometimes I think I'm cursed." <<He>> laughs, but looks sad for a moment. <br><br> <<He>> finally stops, and blushes. "Sorry. Thanks for listening to all of that. I don't get the chance to talk to many people about my flowers." <<tending 12>><<gggtending>> <br><br> You look down. The glowing flowers are gone. In their place is a single pristine pink rose. <br><br> <<set $plants_known.push("pink_rose")>> <span class="gold">You can now grow <<icon "tending/pink_rose.png">> pink roses.</span> <br><br> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>><<set $location to "meadow">><<set $outside to 1>><<set $phase to 0>> <<headundress "gwylan_bloom">><<headwear 14>> You reach out and touch them gently. The bulbs shimmer and open up. <br><br> When you next blink, you're no longer in the forest shop. You're sitting in a meadow, with tall grass and flowers blowing in the breeze around you. The smells of nature soothe you into a trance, along with <<if $seabird_lullaby gte 2>> <span class="teal">Seabird's Lullaby</span> <<else>> a <span class="teal">faintly familiar melody</span> <</if>> being hummed behind you. <br><br> You don't turn to look. You know who it is, and you're safe with <<him>>. <<He>> places a crown of flowers on your head, and whispers something in your ear. <<He>> takes your hand, and kisses your cheek. <<llltrauma>><<trauma -50>> <br><br> <<His>> head rests against you. You've never felt so at peace. You close your eyes, content with your place in the world. <br><br> Something pushes you. An alien presence pulling you downwards. You're sinking into the flowers, yet the ground gets no closer. No voice speaks, yet a command is made. <br><br> <span class="nextLinkWitch"><<link [[All dreams must end. Wake up.|Gwylan Talk Clothes Flowers End]]>><</link>></span> <br> <<link [[Resist|Gwylan Talk Clothes Flowers Resist]]>><<stress 3>><</link>><<gstress>> <br><<effects>><<run statusCheck("Gwylan")>> <<set $phase++>> <<switch $phase>> <<case 1>><span class="narration">Close your eyes, and imagine it with me.</span> <<case 2>><span class="narration">Push away everything else, even if just for a moment. Imagine the breeze. It's refreshing, like a cold drink on a hot day.</span> <<case 3>><span class="narration">The wind carries pollen like birdsong. It serves a similar purpose, seeking out a mate.</span> <<case 4>><span class="narration">It's comforting, don't you think? Flowers are a lot like us.</span> <<case 5>><span class="narration">They need interaction to thrive, sometimes in ways we can't understand. But, talking to them helps them grow, too.</span> <<case 6>><span class="narration">Don't resist the wind. Plants know to bend, lest they snap at the stem. Let it carry you in its gentle dance.</span> <<case 7>><span class="narration">Yet, your roots remain firm. The ground beneath you is life itself. It nourishes you, so long as you aren't avaricious. If you take too much, the soil will become depleted and die.</span> <<case 8>><span class="narration">We all share this earth, yet so many are cruel to it. Polluting and depleting everything, leaving poison in our wake. Any damage we cause to the world is a burden we'll share, whether we like it or not.</span> <<default>> <</switch>> <<if $phase lt 8>> <br><br> You keep your eyes shut. <</if>> <<switch $phase>> <<case 1>> <br><br> <span class="nextLinkWitch"><<link [[This isn't your memory to cherish. Wake up.|Gwylan Talk Clothes Flowers End]]>><</link>></span> <br> <<link [[Resist|Gwylan Talk Clothes Flowers Resist]]>><<pass 1>><<stress 6>><<trauma 3>><</link>><<gstress>><<gtrauma>> <<case 2>> The wind blows calmly against your skin. <br><br> <span class="nextLinkWitch"><<link [[You are trespassing. Wake up.|Gwylan Talk Clothes Flowers End]]>><</link>></span> <br> <<link [[Resist|Gwylan Talk Clothes Flowers Resist]]>><<pass 1>><<stress 9>><<trauma 6>><</link>><<ggstress>><<gtrauma>> <<case 3>> <<He>> lets out a contented sigh. <br><br> <span class="nextLinkWitch"><<link [[You've seen enough. Wake up.|Gwylan Talk Clothes Flowers End]]>><<stress -6>><<trauma -6>><</link>></span><<lstress>><<ltrauma>> <br> <<link [[Resist|Gwylan Talk Clothes Flowers Resist]]>><<pass 1>><<stress 12>><<trauma 9>><</link>><<ggstress>><<ggtrauma>> <<case 4>> <<He>> squeezes your hand. <br><br> <span class="nextLinkWitch"><<link [[Why are you doing this? Wake up.|Gwylan Talk Clothes Flowers End]]>><<stress -9>><<trauma -6>><</link>></span><<llstress>><<ltrauma>> <br> <<link [[Resist|Gwylan Talk Clothes Flowers Resist]]>><<pass 1>><<stress 15>><<trauma 12>><</link>><<gggstress>><<ggtrauma>> <<case 5>> You squeeze <<his>> hand back. <br><br> <span class="nextLinkWitch"><<link [[I don't want to see this. Wake up.|Gwylan Talk Clothes Flowers End]]>><<stress -12>><<trauma -9>><</link>></span><<llstress>><<lltrauma>> <br> <<link [[Resist|Gwylan Talk Clothes Flowers Resist]]>><<pass 1>><<stress 18>><<trauma 15>><</link>><<gggstress>><<gggtrauma>> <<case 6>> <<He>> stirs next to you. <br><br> <span class="nextLinkWitch"><<link [[Please. Wake up.|Gwylan Talk Clothes Flowers End]]>><<stress -15>><<trauma -12>><</link>></span><<lllstress>><<lltrauma>> <br> <<link [[Resist|Gwylan Talk Clothes Flowers Resist]]>><<pass 1>><<trauma 15>><<pain 6>><</link>><<gggtrauma>><<gpain>> <<case 7>> <<He>> holds you tightly. <br><br> <span class="nextLinkWitch"><<link [[It hurts.|Gwylan Talk Clothes Flowers End]]>><<trauma -15>><<pain -9>><</link>></span><<llltrauma>><<lpain>> <br> <<link [[Let me hurt with you.|Gwylan Talk Clothes Flowers Resist]]>><<pass 1>><<trauma 12>><<pain 9>><</link>><<ggtrauma>><<ggpain>> <<case 8>> <br><br> <span class="nextLinkWitch"><<link [[Why?|Gwylan Talk Clothes Flowers End]]>><<trauma -15>><<pain -12>><</link>></span><<llltrauma>><<llpain>> <br> <<link [[Because burdens are meant to be shared.|Gwylan Talk Clothes Flowers Resist]]>><<pass 1>><<trauma 9>><<pain 12>><</link>><<gtrauma>><<gggpain>> <<default>> <<He>> stirs again, leaving your embrace. Gwylan's voice breaks through. <br><br> "Did you fall asleep? Open your eyes." <br><br> <<link [[Open your eyes|Gwylan Memory Bloom]]>><<awareness 30>><</link>><<gggawareness>> <br> <span class="nextLinkWitch"><<link [[Resist.|Gwylan Talk Clothes Flowers End]]>><<trauma -12>><<pain -20>><</link>></span><<llltrauma>><<lllpain>> <</switch>> <br><<effects>><<run statusCheck("Gwylan")>><<set $location to "forest_shop">><<set $outside to 0>> <<headruined true>><<storeonhead "gwylan_bloom">> <<if $phase gte 9>> You keep your eyes shut. You don't know how much time passes, but the smells of the meadow fade. You don't feel the wind on your skin anymore. The comfort, and the pain, both fade away. All that remains is Gwylan's voice. You slowly open your eyes when you're sure it's over. <br><br> <<else>> You heed the command, and open your eyes. <</if>> You're back in the forest shop. <br><br> Gwylan runs <<his>> hand along the edges of the flower crown's petals. For some reason, it feels as though Gwylan is touching your ears the same way <<hes>> touching the petals. "—and, no matter what I do, I can never get the pink ones to bloom, so I just pluck them early. Better to save the nutrients for the other roses. Sometimes I think it's a curse." <br><br> <<He>> looks up and smiles at you, but it's immediately replaced by a look of concern. "Oh, are you alright? You look irritated." <br><br> You shake off the question. A sense of bliss just out of reach taunts you, but fades just as quickly. "Well, thanks for listening to all of that. I don't get the chance to talk to many people about my flowers." <<tending 6>><<ggtending>> <br><br> The three glowing blooms are gone. In their place is one pristine pink rose. <br><br> <<set $plants_known.push("pink_rose")>> <span class="gold">You can now grow <<icon "tending/pink_rose.png">> pink roses.</span> <br><br> <<endevent>><<npc Gwylan>><<person1>> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>> Your eyes flutter open. <br><br> You're still in the meadow. The flowers have all bloomed beautifully. A mousy-haired <<personsimple>> sits in front of you, holding both of your hands and smiling. <<He>> looks a lot like Gwylan, but a bit older. <br><br> "I didn't fall asleep," your voice says. "But I wouldn't mind falling asleep with you." <br><br> <<He>> giggles, and you help <<him>> stand. <<His>> smile fades. "Are you crying?" <<He>> caresses your face, wiping away your tears. "What's wrong, love?" <<llpain>> <br><br> "I... don't remember," your voice answers. <br><br> <<link [[Walk|Gwylan Memory Bloom Roses]]>><<set $pain to 0>><</link>> <br><<effects>><<run statusCheck("Gwylan")>><<wearProp "rose" "pink">> The two of you continue your walk. There's no one else here. The presence attempting to push you out is gone. <br><br> A look of awe crosses <<his>> face. "Look over there!" <<He>> points to something in the distance. A bramble dotted with countless pink flowers. <<He>> begins running towards it, and you run with <<him>>. <br><br> "I hardly ever see pink roses in the wild," <<he>> says as <<he>> starts picking a few. "You've seen my attempts to grow them at home. No matter what I do, they never bloom." <<He>> begins picking them. "A little help, love?" <br><br> You help <<him>> pick the roses, leaving any that have yet to bloom. <<tending 6>><<ggtending>> <br><br> "Maybe we're cursed," <<he>> muses. <<if $settings.pregnancySpeechEnabled and playerCanBreedWith("Gwylan")>> "Pink roses represent love and fertility. Maybe that's why we can't conceive." <<else>> "Pink roses represent the longevity of love through sickness and health. I'm sickly so often, and yet you love me all the same." <</if>> <<He>> cautiously holds out a bunch of roses to you, as if <<hes>> afraid they'll wilt in <<his>> hands. Despite the slight bitterness of <<his>> comment, <<hes>> smiling widely again. <br><br> "Want to see a magic trick? Put those down for a moment." <br><br> You nod, and <<he>> takes both of your hands. <<He>> cups them into a ball, and you suddenly feel a pinprick against your skin. You open your hands, now holding one last rose. "Ta-da!" <br><br> You start clapping for <<him>>, but <<he>> frowns and grabs your wrists. <<He>> looks at the palm of your right hand, <span class="red">now impaled by three small thorns</span>. "Oh, apologies, love. My trick inflicted a wound," <<he>> says dramatically, plucking out the thorns. "I'll be sure to care for your injury when we return home." <<gpain>> <br><br> You take the opportunity to pay <<him>> back. "No wound will slow me down," your voice responds just as dramatically. You hold <<his>> wrist, and twirl <<him>>. <br><br> <<link [[Dance|Gwylan Memory Bloom Petals]]>><<handheldon>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> You dance between the flowers as the wind picks up. <<He>> giggles all the while. <br><br> You waltz to a rhythm only the two of you can hear. Petals blow all around you, as if the meadow itself was dancing along with you. <br><br> The wind dies down, and your dance slows along with it, until you're merely shuffling side to side while embracing. Dark clouds begin to gather in the distance. <br><br> <<He>> looks up to you with love in <<his>> eyes. It's briefly cut off as <<he>> starts coughing into <<his>> arm. <br><br> <<He>> takes a deep breath as it subsides. "I'm tired," <<he>> says. "Why don't we head home, and I'll clean up your hand." Your faces get closer. <br><br> <<if $settings.pregnancySpeechEnabled and playerCanBreedWith("Gwylan")>> "After that... <span class="lewd">why don't we try breaking this curse?</span>" <<he>> whispers with a sly smile. <<else>> "After that... <span class="lewd">we can love each other, through sickness and through health,</span>" <<he>> whispers with a sly smile. <</if>> Your lips nearly meet. <br><br> <<link [[Kiss <<him>>|Gwylan Memory Bloom Thorns]]>><</link>> <br><<effects>><<run statusCheck("Gwylan")>><<canvas-model-override "mouth" "neutral">> <<set Weather.set("heavyPrecipitation", true, 5)>> <span class="red">A flash of lightning and the crash of thunder interrupts your moment of love. <<He>> falls backwards. The pink roses catch <<him>> in their thorny embrace.</span> <br><br> <<He>> vanishes, as if swallowed by the earth itself. <br><br> You catch yourself before you land face-first in the thorns, but <<he>> is gone. <br><br> The roses wilt before your eyes. The thorns grow long and cruel, each one dripping red. They grow towards you, trying to ensnare you. <br><br> You push yourself away, and look around in desperation. You scream <<his>> name. The howling wind is your only answer. <br><br> <<link [[Find <<him>>|Gwylan Memory Bloom Wilt]]>><</link>> <br><<effects>><<run statusCheck("Gwylan")>><<set $location to "forest">><<tearup>><<canvas-model-override "frown">> You wander, searching for <<him>>. The trees obscure your vision. <br><br> You yell <<his>> name. The wind drowns out your cries. <br><br> You run to cover more ground. The rain weighs heavy on you. <br><br> You fall to your knees. The earth provides no comfort. <br><br> You scream in anguish. The sky screams with you. <br><br> You clutch at your head. The flower crown rots away in your grip. <br><br> <<link [[...|Gwylan Memory Bloom Rot]]>><</link>> <br><<effects>><<run statusCheck("Gwylan")>><<set $location to "forest_shop">><<set $outside to 0>> If you stay here, you'll rot away and vanish, too. <br><br> Right now, you wouldn't mind. But you know that's foolish. You pick yourself up, and walk home. <br><br> It's empty. You prayed it wouldn't be. <br><br> "I'm home," <<he>> says to nobody, long after you're gone. <br><br> <span class="nextLinkWitch"><<link [[Wake up.|Gwylan Memory Bloom Perennial]]>><<pass 15>><</link>></span> <br><<effects>><<run statusCheck("Gwylan")>><<set $location to "forest_shop">><<set $outside to 0>><<set $daily.gwylan.noTalk to true>> <<canvas-model-override "clear">><<headruined true>><<storeonhead "gwylan_bloom">><<tearup>> You open your eyes. <br><br> You're back in the forest shop. You and Gwylan are holding each other's hands tightly. <<takeHandholdingVirginity "Gwylan" `(V.gwylanSeen.includes("yearning") ? "romantic" : "consensual")`>> <br><br> <span class="red">The flower crown lays crushed in your shared grip.</span> Your ears are ringing. <br><br> "...and, no matter what I do, I... I can never get the pink ones to bloom, so I just pluck them early," <<he>> says absently. Tears are running down <<his>> face. <br><br> "Why are you crying?" <<he>> says to you. <<He>> wipes the tears from your eyes, before wiping <<his>> own face. "Why... am <i>I</i> crying?" <<He>> looks down at the crushed flower crown in confusion. "I... can't remember," you both say in unison. <br><br> <<He>> sniffles. "I'm sorry. I don't feel well. Thank you for spending time with me, but I'm... I need to think." <<He>> slowly retreats through a dark doorway, and vanishes. <<npcincr Gwylan dom 10>><<gggyearning>> <br><br> You place the ruined flower crown back. One of the flowers comes loose. <br><br> <span class="pink">A pink rose.</span> Pristine, despite the rest of the crown being ruined. As you inspect it, you notice three red pinpricks in your right palm. <br><br> <<set $gwylanSeen.pushUnique("pink_rose")>> <<set $plants_known.push("pink_rose")>> <span class="gold">You can now grow <<icon "tending/pink_rose.png">> pink roses.</span> <br><br> <<link [[Next|Forest Shop Entrance]]>><<endevent>><</link>> <br><<effects>><<run statusCheck("Gwylan")>><<set _tf to checkTFparts()>><<set $daily.gwylan.clothesTalk++>> <<set $gwylanTalked.pushUnique("transformation")>> <<set _jasper to $gwylanTalked.includes("jasper") or $worn.neck.name is "jasper pendant">> You walk around the shop with Gwylan, collecting the eerie items. <br><br> You place them all on the counter. The cow bell, the feathered accessories, and the spirit mask. You think for a moment, and bring over the fake wings from the succubus outfit<<if _jasper>> and the jasper pendant<</if>>, too. <br><br> "Interesting combination of items," Gwylan says. "What made you pick these out as a group?" <br><br> <<set _tfPartList to Object.keys(_tf)>> <<set _tfPartSay to []>> <<if _tfPartList.includesAny("angelWings", "fallenAngelWings", "demonWings", "birdWings")>> <<set _tfPartSay.push("wings")>> <</if>> <<if _tfPartList.includesAny("angelHalo", "fallenAngelHalo")>> <<set _tfPartSay.push("halo")>> <</if>> <<if _tfPartList.includesAny("cowHorns", "demonHorns")>> <<set _tfPartSay.push("horns")>> <</if>> <<if _tfPartList.includesAny("wolfTail", "catTail", "cowTail", "birdTail", "foxTail", "demonTail")>> <<set _tfPartSay.push("tail")>> <</if>> <<if _tfPartList.includesAny("wolfEars", "catEars", "cowEars", "foxEars")>> <<set _tfPartSay.push("ears")>> <</if>> <<if _tfPartSay.length>> <<set _tfPartsPlural to _tfPartSay.length is 1 and _tfPartSay.includesAny("halo", "tail") ? false : true>> "They remind me of..." You gesture to your <<print formatList(_tfPartSay)>>. <<if !_tfPartsPlural>> "This." <<elseif _tfPartSay.length gte 3>> "All of this." <<else>> "These." <</if>> <<if _tfPartList.includesAny("foxEars", "foxTail")>> You point to the spirit mask<<if _jasper>> and jasper pendant<</if>>. "<<= _jasper ? "Those ones" : "This one">> especially." <<if $worn.head.name is "spirit mask" or $worn.neck.name is "jasper pendant">> <<if $worn.head.name is "spirit mask" and $worn.neck.name is "jasper pendant">> You point to the matching ones on your head and around your neck for emphasis. <<elseif $worn.head.name is "spirit mask">> You point to the matching one on your head for emphasis. <<elseif $worn.neck.name is "jasper pendant">> You point to the matching one around your neck for emphasis. <</if>> <</if>> <<if _tfPartList.includesAny("demonWings", "demonTail", "demonHorns")>> Your eyes drift over to the succubus costume. "That one too, but not in the same way." <</if>> <<elseif _tfPartList.includesAny("cowEars", "cowHorns", "cowTail")>> You point to the cow bell. "That one especially." <<if $worn.neck.name is "cow bell">> You point to the matching one around your neck for emphasis. <</if>> <<if _tfPartList.includesAny("demonWings", "demonTail", "demonHorns")>> Your eyes drift over to the succubus costume. "That one too, but not in the same way." <</if>> <<elseif _tfPartList.includesAny("birdWings", "birdTail")>> You point to the feathered hair clip and necklace. "Those ones especially." <<if $worn.head.name is "feathered hair clip" and $worn.neck.name is "feather necklace">> You point to the matching ones on your head and around your neck for emphasis. <<elseif $worn.head.name is "feathered hair clip">> You point to the matching one on your head for emphasis. <<elseif $worn.neck.name is "feather necklace">> You point to the matching one around your neck for emphasis. <</if>> <<if _tfPartList.includesAny("demonWings", "demonTail", "demonHorns")>> Your eyes drift over to the succubus costume. "That one too, but not in the same way." <</if>> <<elseif _tfPartList.includesAny("demonWings", "demonTail", "demonHorns")>> You point to the succubus costume. "That one especially. Although, it feels different to the others." <<else>> You pause. "Not directly, but like it's something distantly related." <<if $worn.neck.type.includes("eerie")>> You point to your $worn.neck.name. "Similar to this." <</if>> <</if>> <br><br> Gwylan walks around you, inspecting your <<if _tfPartSay.length gte 2>>unusual parts<<else>><<print _tfPartSay[0]>><</if>>. "Even if <<if _tfPartsPlural>>they were<<else>>it was<</if>> real, most people wouldn't believe it. Still, you're bold, showing <<if _tfPartsPlural>>these<<else>>this<</if>> off so freely. Lecherous types might find you more appealing." <br><br> <<He>> smiles and crosses <<his>> arms. "Some accessories help contribute to how you express your inner self, like these ones that you've found. They can ease the pain of the mind ripping through skin and bone to make it better fit its self-image. <<if _gwylanTF.known>> I still prefer to keep mine hidden." <<His>> tail swishes. "Not from you, though. I trust you. <</if>> <<if $gwylanSeen.includes("hypnosis_peace")>> Let me know if you need help coming to peace with it all again." <<elseif $gwylanSeen.includes("player_tf")>> Don't forget about my offer, if you find yourself doubting or rejecting yourself." <<else>> If you ever start doubting your inner self... <span class="blue">come talk to me</span>. I'll help you take care of it." <</if>> <<else>> "I don't know," you confess. "They all give off a strange feeling." <br><br> Gwylan walks around you, inspecting you. "There are parts of us, our personality, our being, that usually only exist on the inside," <<he>> explains. "Perhaps, if belief holds true, those inner parts can manifest on the outside. Such expression, when the mind rips through skin and bone, can be painful." <br><br> <<if _gwylanTF.known>> <<His>> tail swishes. "Some still feel the need to hide it from everyone, except for their most trusted friends." <</if>> <<He>> places <<his>> hand on your shoulder and brings <<his>> head to your ear. <<if !$settings.transformAnimalEnabled>> "None of it will be real. Not unless you start believing in it," <<he>> whispers. "If you ever do, <span class="blue">come talk to me</span>. I know how to help." <<elseif $gwylanSeen.includes("player_tf")>> "My offer still stands, even if you're hiding your inner self right now," <<he>> whispers. <<else>> "If you begin manifesting your inner self, and you're unsure or confused about it, <span class="blue">come talk to me</span>. I know how to help," <<he>> whispers. <</if>> <</if>> <br><br> <<set $gwylanSeen.pushUnique("player_tf")>> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>><<set $daily.gwylan.clothesTalk++>> <<set $gwylanTalked.pushUnique("mask")>> <<set _nobody to $awarelevel gte 3 and _saveLoaded ? "nobody" : "Gwylan">> <<if _nobody is "nobody">> <<run localStorage.setItem("gwylanTalk", "nobody")>> <</if>> You show <<= _nobody>> the fox mask and the islander mask, although you're not sure what made you pick out the two of them in particular. <br><br> <<if _nobody is "Gwylan">> "The elk and the fox," <<he>> says. "A noble prey animal, and an unassuming but mischievous predator. Masks for each, to conceal identity." <br><br> <<else>> Nobody answers. <br><br> <</if>> <<= _nobody.toUpperFirst()>> walks over to a window. <<if _nobody is "Gwylan">> "Those two animals were an important part of a local religion in more pagan times of worship, along with the hound, serpent, <<if $awarelevel gte 3>><span class="erase-from-history">whale, </span><</if>>rat, and bird. The cloister has largely done away with that symbolism. <br><br> "Elk were seen as a perfect form to aspire to, because of their antlers. Those with three prongs on each antler, specifically. After a religious schism, many instead saw them as unclean beasts in need of extermination." <br><br> <<He>> turns to you with an empty look on <<his>> face. "Then there's the fox. The treasured prey for games of the hunt, run by those that poison the world." <<He>> scowls. "The most favoured of victims. The hounds bray at the heels of the elk for scraps of the kill, and the rats eat what remains." <br><br> "I find this all very strange, as elk supposedly went extinct in this country several millennia ago. Regardless, here they are, a religious symbol. Protected by some, overhunted by others, and making meals of foxes despite being herbivores." <br><br> <<else>> <br><br> Nobody turns to you with an empty face. <br><br> Nobody finds this all very strange. <br><br> <</if>> "What about the bird?" you ask. <br><br> <<if _nobody is "Gwylan">> <<He>> smiles. "Supposedly, the bird is above it all. Yet, when all is said and done, they fly down to pick at the same scraps as the rats. If they're not the ones hunting down and feeding the foxes to their young themselves." The tone of <<his>> voice tells you that this probably isn't part of the original symbology. <br><br> <<else>> Nobody smiles. This isn't part. <br><br> <</if>> <<if $awarelevel gte 3 and !_saveLoaded>> "And what about the whale?" you ask. <br><br> Gwylan's head tilts. "I... didn't mention a whale," <<he>> says. <br><br> "Yes you did, I..." Your head feels fuzzy. Try as you might, you can't remember anything about a whale. <br><br> "Shhhhh. This is better for us both. Please. It's dangerous." Gwylan rubs the top of your head. It comforts you. <br><br> <<gwylanOptions>> <<elseif _nobody is "nobody">> <<pass 3 hours>><<pass 33>><<set $control to 0>><<trauma 333>> <<set $daily.gwylan.noTalk to true>><<gwylanNobody 1>> "Didn't we just have this conversation?" you ask nobody. <br><br> "<span class="witch-gone">I'm sorry. Listen, this is important. I'll be back soon, don't be scared, I just... I... I feel sick</span>," nobody answers. <br><br> The forest shop is empty and dark. Nobody rubs the top of your head. It comforts you. <<awareness -50>><<lllawareness>> <br><br> <<link [[...|Forest Shop Entrance]]>><<endevent>><</link>> <br> <<else>> <<gwylanOptions>> <</if>><<effects>><<run statusCheck("Gwylan")>> <<set $gwylanTalked.pushUnique("fox")>> You look at the fox mask, spirit mask, shrine maiden robes, and jasper pendant. You think about what Gwylan has said about them, and about foxes. <br><br> <<if _gwylanTF.known>> You flick Gwylan's fox ears. "I can't believe you were able to hide it from me for so long. It seems so obvious now," you say. <br><br> Gwylan pouts and crosses <<his>> arms. "Shush. Most people aren't as curious as you. That's why I like you." <br><br> <<gwylanOptions>> <<else>> "You sure do like foxes," you say. "You talk about them a lot." <br><br> <<He>> blushes and stammers for a moment. "I-I just think they're cute," <<he>> manages. "They're relatable." <<if $fox gte 6>> <<He>> pinches your cheek. "Like you." <</if>> <br><br> <<if $settings.transformAnimalEnabled and Object.values(_gwylanTF).includesAny("fake", "revealed") and $gwylanSeen.includes("hat_found")>> You remember what you saw. <<if ["fake", "revealed"].includes(_gwylanTF.tail)>> The tail. <</if>> <<if ["fake", "revealed"].includes(_gwylanTF.fangs)>> <<His>> teeth. <</if>> <<if ["fake", "revealed"].includes(_gwylanTF.ears)>> Those ears on <<his>> hat. <</if>> It might have been nothing, but what if it wasn't? <br><br> <<link [[Press|Gwylan Talk Clothes Fox 2]]>><<set $phase to 1>><</link>> <br> <<link [[Drop it|Gwylan Talk Clothes Fox 2]]>><<set $phase to 2>><</link>> <br> <<else>> You shrug, and decide not to press any further. Still, you can't shake the feeling that <<hes>> hiding something. <br><br> <<gwylanOptions>> <</if>> <</if>><<effects>><<run statusCheck("Gwylan")>><<set $daily.gwylan.clothesTalk++>> <<if $phase is 1>> "Just how relatable?" you ask, leaning in. "I always wondered why you wear that big hat, with the ears. Are you hiding something?" You reach up for Gwylan's head. <br><br> <<He>> backs away, covering it. "I'm afraid I don't know what you're talking about," <<he>> says. <br><br> <span class="blue">It's obvious now.</span> <br><br> "You talked about how the inner self can show up on the outside. <<if $fox gte 6>> You're just like me, aren't you? You're a fox, too." <<else>> You were talking about yourself, too, weren't you?" <</if>> <br><br> <span class="teal"><<His>> eyes widen slightly.</span> <br><br> "No, I just like to dress up, I..." <<He>> pauses, and takes a deep breath. <<He>> looks you up and down, and after a long moment, seems to come to a decision. "Very well. <span class="green">You're clever.</span>" <br><br> <<He>> ducks under the counter, and starts to rummage around for something. <br><br> <<link [[Next|Gwylan Talk TF Revealed]]>><</link>> <br> <<else>> You don't press it any further. It was surely nothing. <br><br> <<endevent>><<npc Gwylan>><<person1>> <<gwylanOptions>> <</if>><<effects>><<run statusCheck("Gwylan")>><<set _tf to checkTFparts()>><<set $daily.gwylan.clothesTalk++>> <<set $gwylanTalked.pushUnique("familiar_collar")>> <<if $worn.neck.name is "familiar collar">> <<if $worn.neck.cursed is 1 and $hypnosis_traits.devotion gte 4>> <<hypnosisText "You lean forward and proudly show Gwylan your familiar collar.">> <<He>> giggles and pets you. "<<pcPetname "Gwylan" "good">>." <<trauma -1>><<ltrauma>> <<else>> You lean forward and show Gwylan your familiar collar. <<He>> giggles and pets you. "<<pcPetname "Gwylan" "good">>." <</if>> <<else>> You hold out the familiar collar to Gwylan. <<He>> giggles. "I think it'd look better if you were wearing it, <<pcPetname "Gwylan">>." <</if>> <br><br> <<He>> rubs the gold heart. <<if $gwylanSeen.includes("player_tf")>> "There's another effect this will have on you. <span class="blue">It will preserve the more bestial side of your inner self, no matter what manifestation it takes.</span>" <<else>> "There's another effect this collar can have on you. Should you find your inner self expressing beast-like qualities, this collar will preserve them. <span class="blue">Any of them.</span>" <</if>> <<He>> slowly strokes your hair. "Only the best to keep my darling pet happy." <br><br> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>> <<unset $gwylanPassTime>> <<switch $speech_attitude>> <<case "meek">> "I... I don't remember, sorry," you say. <<case "bratty">> "I don't know, it's impossible to remember of all this," you say. <<default>> "I don't remember," you say. "Sorry." <</switch>> <br><br> <<He>> tilts <<his>> head. <<if $gwylanTalked.length gte 10>> "You're such a tease. Tell me when you do! Your stories are always so interesting." <<else>> "Well, come back and tell me if you do." <</if>> <br><br> <<gwylanOptions>><<effects>><<npc Gwylan>><<person1>><<run statusCheck("Gwylan")>> You search around for Gwylan, following the noise. <<if !$gwylanSeen.includes("talk_intro")>> <<set $gwylanSeen.pushUnique("talk_intro")>> You find <<him>> adjusting the pose of a wooden mannequin. A belted collar hangs from its finger, and a large forest green witch hat sits on its head. The hat is adorned with a cluster of flowers and decorated with brown animal ears of some kind. <br><br> <<if _gwylanStatus.includes("cautious")>> "Hello, dear," <<he>> says without turning around. "Is there something you need?" <<else>> Gwylan finishes posing it, and puts <<his>> hands on <<his>> hips as <<he>> looks it over. <<He>> then turns to you with a smile. "Hello dear, do you need something?" <</if>> <<elseif $gwylan.request.event is "meetAtShop" and !$daily.gwylan.preventProgress>> <<if $daily.gwylan.eventCancelled>> <<Hes>> still waiting behind the same counter. <<else>> You find <<him>> waiting behind an old counter. <<if Time.season is "winter">> <<Hes>> wearing an open-shoulder green tunic under a deep red winter coat. <<else>> <<Hes>> wearing an open-shoulder green tunic. <</if>> There's a thick belt around <<his>> waist, bound and tied with all manner of items. A small brown sack tied with some rope, several glass vials tucked into pouches, a small knife in a leather sheath, and various knick-knacks and charms. <</if>> <br><br> <<if $daily.gwylan.eventCancelled>> <<if $hypnosis_traits.devotion gte 1>> <<He>> smiles at you. "Come on dear, don't tease me. There's work to be done." <<His>> voice makes you shiver. <<else>> <<He>> smiles at you. "Are you ready yet?" <</if>> <<else>> <<if _gwylanLastSeenDays gte 14>> <<He>> looks surprised to see you. "I didn't think you were coming back. It's been weeks! You better have some more stories for me after this. Regardless, <<elseif _gwylanLastSeenDays gte 7>> "There you are! You kept me waiting for a long time. I was worried that I scared you off for good. <<elseif _gwylanLastSeenDays gte 3>> "There you are! You're a few days late. I was worried that I scared you off for good. <<elseif _gwylanLastSeenDays is 2>> "You never showed up yesterday," <<he>> says. "I was worried that I scared you off. <<else>> "Good timing," <<he>> says. "I'm nearly ready. <</if>> I'm glad you decided to come." <</if>> <<elseif !$gwylan.request.event and !$gwylanSeen.includes("ritual_beast") and $gwylanSeen.includesAny("caught", "caught_no_lewd")>> /* Re-apply meet request if it broke after leaving */ <<He>> smiles upon seeing you. "Hello, dear. Sorry about the wait, but I'm not quite ready yet. If you could come by <span class="gold">tomorrow</span>, that would be wonderful." <<run gwylanRequest("meetAtShop")>><<set $daily.gwylan.preventProgress to true>> <<elseif $halloween is 1 and !$gwylanSeen.includes("halloween") and $gwylanSeen.includes("hat_found")>> <<set $gwylanSeen.pushUnique("halloween")>> You find <<him>> sat in an old wooden chair with a mushroom-shaped back. <<Hes>> sewing something onto a witch hat. <<He>> looks up and smiles at you. <br><br> <<if $gwylanSeen.includes("robin_halloween")>> "<<if $gwylan.robin gte 10>>Robin<<else>>Your friend<</if>> was so eager to get into the Halloween spirit, it inspired me. <<else>> "I'm getting into the Halloween spirit. <</if>> My old hat is getting up there in years, so I'm making a new one." <<He>> holds up <<his>> work for you to see. There's a single fox ear sewn onto it, with another put off to the side, yet to be threaded. They look very realistic. <<elseif _gwylanLovePercent gte 100 and $gwylan.stage lte 4 and $gwylanSeen.includes("yearning")>> <<set $gwylan.stage to 5>> It seems to be moving around. Whenever you expect to see <<him>> around a corner, there's nothing. You suddenly feel two hands wrap around you from behind. Gwylan's head rests on your shoulder. "<span class="green">I can't remember the last time someone was able to find everything the shop has to offer.</span> You must have been through a lot to get to this point. Those who live normal lives don't find much here." <br><br> <<He>> kisses you on the cheek. "Thank you for everything, dear. You've made an old soul very happy." <<He>> blushes and disengages from you, retreating back behind a counter. <<elseif _gwylanLovePercent gte 75 and $gwylan.stage lte 3>> <<set $gwylan.stage to 4>> You find <<him>> tending to some vines hanging from high above. <<He>> turns and smiles at you. "You've seen a lot. I can tell by that look in your eyes. <span class="teal">There isn't much left here to escape your notice.</span> Stay strong, and you might just see it all. If that's what you want." <<elseif _gwylanLovePercent gte 50 and $gwylan.stage lte 2>> <<set $gwylan.stage to 3>> <<His>> head pops out from behind a large bookcase. <<He>> smiles at you. "<span class="blue">The shop seems to brighten up when you come around.</span> You've been all over, haven't you?" <<elseif _gwylanLovePercent gte 25 and $gwylan.stage lte 1>> <<set $gwylan.stage to 2>> You find <<him>> sorting wooden clothing hangars by tree species. "<span class="purple">There's still much to discover,</span> but you're making good progress. Be safe out there." <<elseif _gwylanLovePercent gte 10 and !$gwylan.stage>> <<set $gwylan.stage to 1>> You find <<him>> trying to fix an old shelf. It clatters to the ground noisily as you approach. "Find anything you like? I saw your eyes wandering earlier. The more you get around, the more you'll find the shop has to offer." <<else>> <<if !$daily.gwylan.found>> <<set $daily.gwylan.found to true>> You turn <<print either("a corner", "two corners", "three corners")>> and find <<him>> <<cleareventpool>> <<addinlineevent "gwy_find_1">> at the end of an aisle, <</addinlineevent>> <<addinlineevent "gwy_find_2">> at an old wooden counter, <</addinlineevent>> <<addinlineevent "gwy_find_3">> between a pair of bookcases, <</addinlineevent>> <<addinlineevent "gwy_find_4">> at the base of a long staircase, <</addinlineevent>> <<addinlineevent "gwy_find_5">> at the <<print either('first', 'second')>> counter to the <<print either('right', 'left')>>, <</addinlineevent>> <<runeventpool>> <<cleareventpool>> <<addinlineevent "gwy_doing_1">> polishing a mannequin. <</addinlineevent>> <<addinlineevent "gwy_doing_2">> brushing <<his>> hair. <</addinlineevent>> <<addinlineevent "gwy_doing_3">> sewing patches into a dress. <</addinlineevent>> <<addinlineevent "gwy_doing_4">> adjusting the legs of a hat stand. <</addinlineevent>> <<addinlineevent "gwy_doing_5">> intently inspecting a ?gwylanItem. <</addinlineevent>> <<addinlineevent "gwy_doing_6">> fitting new limbs onto a broken mannequin. <</addinlineevent>> <<addinlineevent "gwy_doing_7">> looking at price tags with a confused expression. <</addinlineevent>> <<addinlineevent "gwy_doing_8">> tangled up in some surprisingly lively vines. <<He>> manages to shake free just as you approach. <</addinlineevent>> <<addinlineevent "gwy_doing_9">> bent over and digging through a large cardboard box. Only <<his>> lower half is visible. <<He>> pulls a ?gwylanItem free from it after a brief struggle. <</addinlineevent>> <<addinlineevent "gwy_doing_10" 0.1>> moving around various sundries. One slips and lands on <<his>> head, causing <<him>> to let out an involuntary "Bweh!" <<He>> blushes when <<he>> realises that you heard it. <</addinlineevent>> <<if npcIsPregnant("Gwylan")>> <<addinlineevent "gwy_preggers_1" 2>> sitting in a rocking chair and knitting what appears to be baby clothes. <</addinlineevent>> <<addinlineevent "gwy_preggers_2" 2>> sitting in a rocking chair and looking at an old doll. It's more stitch than fabric. <</addinlineevent>> <<addinlineevent "gwy_preggers_3" 2>> sitting in a rocking chair with <<his>> eyes closed and <<his>> hand on <<his>> <<bellyDescription 'Gwylan'>>. <</addinlineevent>> <</if>> <<runeventpool>> <<if $halloween is 1 and $gwylanSeen.includes("halloween") and $gwylanSeen.includes("hat_found")>> <<if _gwylanTF.known>> <<Hes>> wearing a witch hat with holes for <<his>> fox ears to poke through. <<else>> <<Hes>> wearing a witch hat adorned with flowers, vines and a pair of <<if _gwylanTF.ears is "fake">>fake <</if>>fox ears. <<if !$gwylanSeen.includes("hat_colour") and $awarelevel gte 1>> <<set $gwylanSeen.pushUnique("hat_colour")>> You can't help but notice just how well they match <<his>> hair colour. <</if>> <<if _gwylanTF.ears is "visible">> <<set $gwylanSeen.pushUnique("gwylan_ears")>> <span class="pink">You swear that you see one of them twitch.</span> <</if>> <</if>> <</if>> <<else>> You quickly find <<him>> again. <</if>> <<if Time.isBloodMoon()>> <<He>> seems on edge. <<else>> <<if $gwylanRescue?.failed>> <br><br> <<gwylanRescueApology "shop">> <<else>> <<gwylanGreeting>> <</if>> <</if>> <</if>> <br><br> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>> <<set $gwylanSeen.pushUnique("tattoos_intro")>> <<switch $speech_attitude>> <<case "meek">> "Y-your tattoos are pretty," you say. "The ones on your tummy." <<case "bratty">> "You have some pretty intense tattoos on your stomach," you say. <<default>> "Your tattoos are really neat," you say. "The ones on your stomach." <</switch>> <br><br> Gwylan blushes and moves <<his>> hands to <<his>> stomach as if to ensure they're not visible. "Th-thank you. It's a family symbol. Or, rather, it's symbology passed down through my family," <<he>> corrects <<himself>>. <br><br> <<He>> takes a moment to compose <<himself>>. You're not sure why such a simple comment took <<him>> off guard. <br><br> "It represents the seed of life, and my obligation. It's supposed to help me purify the poison I take in. I've had it for as long as I can remember." <<if $location is "forest_shop">> <<He>> stares off into the gloom. <<else>> <<He>> stares wistfully at the ocean. <</if>> <<if $worn.neck.name is "stone pendant" and $gwylanTalked.includes("stone_pendant")>> <br><br> You break the silence by holding up your stone pendant. "I know we already talked about my pendant, but... the shape's the same. Does that mean it'll help me purify poison too?" <br><br> Gwylan gives you a wry smile. "I doubt it, dear. That doesn't mean it's not powerful in its own right, though. It's a storied symbol, and it's been around for longer than you or I have been alive." <<He>> touches <<his>> stomach. <</if>> "A three-cornered knot with no beginning or end that can never be untied. Part of me is in <<if $location is "forest_shop">>this<<else>>the<</if>> forest, and part of the forest is in me." <br><br> <<gwylanOptions>><<effects>> <<run statusCheck("Gwylan")>> <<if $phase is 0>> <<if $location isnot "forest_shop">><<set $outside to 1>><<set $location to "town">><</if>> <<set $daily.gwylan.greeting to true>> You nod. <<switch $speech_attitude>> <<case "meek">> "That would be really nice." <<case "bratty">> "Sure, that sounds good." <<default>> "I'd like that." <</switch>> <<if $worn.neck.name is "familiar collar" and $worn.neck.cursed is 1 or $gwylanSeen.includes("petplay") and $worn.neck.type.includes("leash")>> <<set _magicLeash to true>> The thought of being walked by Gwylan makes you blush a little. <</if>> <br><br> "<<pcPetname "Gwylan" "good">>. Now let's go! I'm starving." You take the route through <<if $bus is "domus">>Barb<<else>>Connudatus<</if>>. <br><br> <<schoolWalkChat "gwylan">> It doesn't take long for you to arrive at the cafe. <br><br> <<if !$gwylanSeen.includes("cafe_walk")>> <<set $gwylanSeen.pushUnique("cafe_walk")>> "I have a routine, but I can make room in it for you," <<he>> says. "Any day you'd like, <span class="gold">meet me on <<if $bus is "domus">>Domus<<else>>Danube<</if>> Street on any school day after <<ampm 7>>, or at my shop right before then</span>." <br><br> <</if>> <<link [[Next|Gwylan Ocean Breeze]]>><<endevent>><<set $location to "cafe">><<set $phase to 1>><</link>> <br> <<else>> <<switch $speech_attitude>> <<case "meek">> "Sorry..." you say, shuffling your feet. "I have other plans this morning. M-maybe tomorrow?" <<case "bratty">> "Not today," you say. "I've got things to do. Swing by some other day and the answer might change." <<default>> "I'm afraid I can't," you say. "I have some plans I need to take care of. Another time maybe?" <</switch>> <br><br> Gwylan pats your head. "Aww. Very well, I won't force you.<<if $location isnot "forest_shop" and $avery_mansion and ["ascended", "saved"].includes($avery_fate)>>" <<He>> looks around for a moment. <<if $bus is "danube">><<His>> eyes trail up Danube boulevard.<</if>> "Just, stay safe, alright?<</if>> Though if you change your mind, <<if !$gwylanSeen.includes("cafe_walk")>> <<set $gwylanSeen.pushUnique("cafe_walk")>> <span class="gold">meet me here after <<ampm 7>>, or at my shop right before then</span>." <<else>> I'll be there until <<ampm 9 20>>. Feel free to stop by!" <</if>> <<He>> waves goodbye. <br><br> <<if $location is "forest_shop">> <<link [[Next|Forest Shop Entrance]]>><<endevent>><</link>> <<elseif $bus is "domus">> <<link [[Next|Domus Street]]>><<endevent>><</link>> <<else>> <<link [[Next|Danube Street]]>><<endevent>><</link>> <</if>> <</if>><<set $location to "town">><<set $outside to 1>><<effects>> <<run statusCheck("Gwylan")>> <<switch $speech_attitude>> <<case "meek">> "May I walk to the cafe with you?" you ask. <<case "bratty">> "Breakfast time?" you ask. <<default>> "Can I walk to the cafe with you?" you ask. <</switch>> <br><br> <<if $worn.neck.name is "familiar collar" and $worn.neck.cursed is 1 or $gwylanSeen.includes("petplay") and $worn.neck.type.includes("leash")>> <<set _magicLeash to true>> You feel a tug on your collar <<if $worn.neck.name is "familiar collar">>as a glowing leash appears in Gwylan's hand<<else>>and look down to see Gwylan holding your leash<</if>>. "Walking <<pcpetname "Gwylan" "my">> would make my day," <<he>> says with a smile. <<if (between($chef_state, 7, 8) and $chef_rework lte 30)>> "Sadly the cafe's still undergoing renovation. Are you sure you want to just stand around with an old bird like me?" You assure <<him>> that you do. <<He>> smiles. "<<pcPetname "Gwylan" "good">>." <</if>> <<else>> <<if !(between($chef_state, 7, 8) and $chef_rework lte 30) or $gwylanSeen.includes("partners")>> <<He>> smiles. "Of course, dear. I'm just about ready to go." <<else>> <<He>> looks surprised. "Oh my, but the cafe's still being renovated. Are you sure you want to just stand around with an old bird like me?" You assure <<him>> that you do. <<He>> smiles. <</if>> <</if>> <br><br> You take the route through the park and Starfish Street. <br><br> <<schoolWalkChat "gwylan">> It doesn't take long for you to arrive at the cafe. <br><br> <<if !(between($chef_state, 7, 8) and $chef_rework lte 30)>> <<link [[Next|Gwylan Ocean Breeze]]>><<endevent>><<set $location to "cafe">><<set $daily.gwylan.cafe to true>><<set $phase to 1>><</link>> <<else>> <<link [[Next|Gwylan Cliff]]>><<endevent>><<set $location to "cafe">><<set $daily.gwylan.cafe to true>><<set $phase to 1>><</link>> <</if>> <br><<set $outside to 1>><<set $location to "town">><<effects>> <<run statusCheck("Gwylan")>><<set _robin to statusCheck("Robin")>> <<if ["walking_to_cafe", "cafe"].includes(gwylanSchedule())>> You leave the orphanage with Robin and wait for Gwylan. <br><br> Ten minutes go by, and you still see no sign of <<nnpc_him "Gwylan">>. <<if C.npc.Gwylan.state === "scorned">> You shift uncomfortably, realising <<nnpc_his "Gwylan">> absence is your fault. <<else>> You're not sure why <<nnpc_he "Gwylan">> hasn't shown up. <<nnpc_He "Gwylan">> always goes to the cafe in the morning. <</if>> <br><br> <<if $speech_attitude is "meek">> "I don't think <<nnpc_hes "Gwylan">> coming. Maybe it's better if we head to school," you say. <<elseif $speech_attitude is "bratty">> "<<nnpc_Hes "Gwylan">> not coming, let's just go before we're late,<<if Weather.temperature gte 30>> I'm melting out here,<<elseif Weather.temperature lte 0>> I'm freezing out here,<</if>>" you say. <<else>> "I don't think <<nnpc_he "Gwylan">>'ll be here. We should go before we're late for school," you say. <</if>> <br><br> "Yeah, you're probably right." Robin looks disappointed, but relents. <br><br> <<link [[Go to school (0:20)|Gwylan Walk School Robin]]>><<pass 20>><<set $phase to 2>><</link>> <<else>> <<npc Gwylan 2>><<person2>> <<if Time.minute gte 30>> You leave the orphanage with Robin and start to walk to school. <br><br> "Hey! You two <<if $robinromance is 1>>lovebirds <</if>>weren't about to leave little old me behind, were you?" <br><br> You both turn around to see Gwylan waving from the opposite sidewalk. <<He>> crosses the street and approaches you both, smiling. <br><br> "Cafe plans are still a go, right?" <br> "We didn't think you'd still be waiting for us." <br> <<if $gwylan.robin gte 50 and $gwylanSeen.includes("partners")>> "Oh, nonsense, I'll always make time for my two lushies. Now, let's go already, I'm starving!" <<else>> "Oh, nonsense, I always make time for friends. Now, let's go already, I'm starving!" <</if>> <br><br> <<if $gwylan.robin gte 20>> <<He>> doesn't wait for an answer, marching up to you and taking you and Robin each by a hand. <<else>> <<He>> doesn't wait for an answer as <<he>> starts walking away. You and Robin share a glance before picking up the pace. <</if>> <<else>> <<if $rng gte 51>> You leave the orphanage with Robin and see Gwylan already waiting outside. <br><br> You both walk over and exchange pleasantries before heading to the cafe together. <<else>> You leave the orphanage with Robin and wait for Gwylan. It doesn't take long for <<him>> to arrive. <br><br> You both wave <<him>> over and exchange pleasantries before heading out. <</if>> <</if>> <br><br> <<schoolWalkChat "gwylan" "robin">> It doesn't take long before you arrive. <br><br> <<link [[Next|Gwylan Ocean Breeze]]>><<endevent>><<set $daily.robin_in_cafe to 1>><<set $location to "cafe">><<set $phase to 2>><</link>> <</if>><<set $outside to 1>><<set $location to "town">><<effects>> <<run statusCheck("Gwylan")>> <<if Time.hour is 7 or Time.hour is 8 and Time.minute lt 50>> <<switch $speech_attitude>> <<case "meek">> "Apologies, but would it be alright if we went a little earlier?" you ask. "Please?" <<case "bratty">> "Hey, we'll be heading to school now. I need to get a leg up on studies," you say. <<default>> "Could we head to school a bit early?" you ask. "I need some time before class to study." <</switch>> <br><br> <<if Time.hour is 7>> <<He>> checks <<his>> wrist as if <<he>> was wearing a watch. "Already? <<if !(between($chef_state, 7, 8) and $chef_rework lte 30)>> I've barely had my <<seagullFood>>. Alright, just give me a moment." <<He>> quickly finishes <<his>> food, lightly dabbing <<his>> mouth with a handkerchief when done. <<if $rng lte 5>> <span class="purple"><<He>> suddenly burps</span>, quickly covering <<his>> mouth in embarrassment. "Oh dear, where are my manners?" <<he>> giggles. <</if>> <<else>> Trying to disrupt my routine even more?" <<He>> smiles. "I don't mind.<<if $worn.handheld.type.includes("bookbag")>> Don't forget your bag now!<</if>>" <</if>> <<else>> <<He>> smiles warmly. "No worries, <<pcpetname "Gwylan" "simple">>. I appreciate the scholarly spirit.<<if $worn.handheld.type.includes("bookbag")>> Don't forget your bag now!<</if>>" <</if>> <br><br> <</if>> <<if !(between($chef_state, 7, 8) and $chef_rework lte 30)>> <<He>> stands up with <<his>> plate. <<He>> empties the crumbs into the air, just as a flock of seagulls pass by. They don't let a single crumb land on the beach. <br><br> <</if>> <<if (Time.hour is 7 or Time.hour is 8 and Time.minute lt 50) and ($worn.neck.name is "familiar collar" and $worn.neck.cursed is 1 or $gwylanSeen.includes("petplay") and $worn.neck.type.includes("leash"))>> <<set _magicLeash to true>> You feel your collar being tugged on <<if $worn.neck.name is "familiar collar">>as a glowing leash appears in Gwylan's hand<<else>>and look down to see Gwylan holding your leash<</if>>. "Now here comes the highlight of my day," <<he>> begins, pulling you closer until <<his>> hand caresses your cheek. "Walking <<pcpetname "Gwylan" "my">>." <br><br> <</if>> You leave the cafe and walk to school. <<if $rng gte 81>> Sam sees you and waves you off. <</if>> <br><br> <<schoolWalkChat "gwylan">> You soon arrive at the front gates. <<if C.npc.Gwylan.dom gte random(10, 200)>> Gwylan suddenly grows a mischievous grin. <br><br> Just before you walk through, <<he>> takes you by the arm and pulls you into a big hug. "Have a good day at school, dear!" <<he>> says far too loudly. Loud enough for several students to turn and look at you. <<He>> rubs <<his>> face up against yours and makes a big show of it. <<stress 5>><<gstress>> <br><br> <<if $gwylanSeen.includes("yearning")>> <<He>> finishes it off with an exaggerated kiss to your cheek. "Mwah! Mmmmmwah!" You hear laughter from the other students. <<He>> finally releases you, giving you a wink before waving you off. <<else>> <<He>> releases you after a moment, and winks before waving you off. <</if>> <br><br> <<if $cool gte 160>> You expect to never hear the end of this as some of your friends approach you. "I thought you lived at the orphanage," one says. "I didn't think your <<if $pronoun is "m">>dad<<else>>mum<</if>> would be so hot," another says. "<<He>> doesn't even look the age." <br><br> You're embarrassed, but at least you're not being made fun of. <<stress 3>><<trauma -2>><<gstress>><<ltrauma>> <<else>> You can already hear some of the jokes about your '<<father>>' at your expense. <<status -1>><<lcool>> <</if>> <<else>> <<He>> wishes you a good day at school and waves you goodbye. <</if>> <br><br> <<link [[Next|School Front Courtyard]]>><<endevent>><</link>> <br><<effects>> <<run statusCheck("Gwylan")>> /* ToDo: Gwylan - Gwylan 'convincing' PC to go to school */ <<He>> tilts <<his>> head, but shrugs. "School is important, you know." <br><br> <<gwylanOptions>><<set $outside to 1>><<set $location to "town">><<effects>> <<run statusCheck("Gwylan")>><<set _robin to statusCheck("Robin")>><<set _gwylan to [0, 1].includes($phase) ? "gwylan" : "none">><<set _robin to $robin_in_cafe ? "robin" : "none">> <span class="red">ERROR: Unfinished scene. You're not supposed to get here. Please report this bug.</span> <br><br> <<schoolWalkChat _gwylan _robin>> You soon arrive at the front gates. <<if C.npc.Gwylan.dom gte random(10, 200) and [0, 1].includes($phase)>> Gwylan suddenly grows a mischievous grin. <br><br> Just before you walk through, <<he>> pulls you and Robin into a big hug. "Have a good day at school, dears!" <<he>> says far too loudly. Loud enough for several students to turn and look at you. <<He>> rubs <<his>> face up against yours and makes a big show of it. <<stress 5>><<gstress>> <br><br> <<if $gwylanSeen.includes("yearning") and $gwylan.robin gte 20>> <<He>> finishes it off with an exaggerated kiss to Robin's cheek, and then yours. "Mwah! Mmmmmwah!" You hear laughter from the other students. <<He>> finally releases you, giving you a wink before waving you off. <<else>> <<He>> releases you after a moment, and winks before waving you off. <</if>> <br><br> <<if $cool gte 160>> You expect to never hear the end of this as some of your friends approach you. "I thought you two lived at the orphanage," one says. "I didn't think your <<if $pronoun is "m">>dad<<else>>mum<</if>> would be so hot," another says. "<<He>> doesn't even look the age. Wait, are you two siblings?" <br><br> Robin's face turns bright red, and they don't let <<nnpc_him "Robin">> get a word in about it. You're embarrassed too, but at least you're not being made fun of. <<stress 3>><<trauma -2>><<npcincr Robin dom -5>><<gstress>><<ltrauma>><<lldom "Robin">> <<else>> You can already hear some of the jokes about your "<<father>>" at your expense. <<status -1>><<lcool>><<npcincr Robin dom -1>><<ldom "Robin">> <</if>> <<elseif [0, 1].includes($phase)>> <<He>> wishes you and Robin a good day at school and waves you both goodbye. <</if>> <br><br> Robin walks ahead, wanting to get a head start on studying. <br><br> <<link [[Next|School Front Courtyard]]>><<endevent>><</link>> <br><<set $outside to 0>><<effects>><<run statusCheck("Gwylan")>> <<npc Gwylan>><<if getRobinLocation() is "cafe">><<npc Robin 2>><</if>><<person1>> <<if $phase is 1>> The two of you enter the cafe proper. <<if $rng gte 81>>Sam notices and greets you warmly. <</if>>You take a seat at the balcony table<<if $worn.handheld.name isnot "naked">> and put aside your $worn.handheld.name<</if>>. <<if Weather.precipitation isnot "none">> The roof of the cafe extends far enough to shield it from the <<print Weather.precipitation>>. <</if>> Gwylan soon arrives with a plate of <<seagullFood>>. <<if $worn.handheld.type.includes("bookbag")>><<set $cafe_study to $worn.handheld.name>><</if>><<handheldundress "cafe_balcony">> <<elseif $phase is 2>> The three of you enter the cafe proper. <<if $rng gte 81>>Sam notices and greets you warmly. <</if>>You and Robin take a seat at the balcony table<<if $worn.handheld.name isnot "naked">>, and you put aside your $worn.handheld.name<</if>>. <<if Weather.precipitation isnot "none">> The roof of the cafe extends far enough to shield it from the <<print Weather.precipitation>>. <</if>> Gwylan soon arrives with a plate of <<seagullFood>>. <br><br> Robin absentmindedly thumbs through the menu. <<if $worn.handheld.type.includes("bookbag")>><<set $cafe_study to $worn.handheld.name>><</if>><<handheldundress "cafe_balcony">> <<else>> You head out to the cafe's balcony. <<if Weather.precipitation isnot "none">> The roof of the cafe extends far enough to shield it from the <<print Weather.precipitation>>. <</if>> Gwylan <<if $phase is 3>>and Robin sit<<else>>sits<</if>> at a solitary table, gazing out at the sea. <<if $daily.gwylan_skip_school>> An empty plate of sits in front of <<if $phase is 3>>Gwylan<<else>><<him>><</if>>. <<elseif Time.hour gte 8>> A plate of half-eaten <<seagullFood>> sits in front of <<if $phase is 3>>Gwylan<<else>><<him>><</if>>. <<else>> A plate of <<seagullFood>> sits in front of <<if $phase is 3>>Gwylan<<else>><<him>><</if>>. <</if>> <<if _gwylanStatus.includes("reunion")>> <br><br> <<gwylanReunion>> <br><br> <<if _gwylanStatus.includes("badEndReady") and $phase isnot 3>> <<set _noOptions to true>> <<He>> doesn't let go. "Please, just let me hold you for a little longer. I really though this would be the end. I thought I'd be alone again." <<switch $bodysize>> <<case 0 1>><<He>> withdraws only enough to look down into your eyes. <<case 2>><<He>> nuzzles <<his>> head into the crook of your neck. <<case 3>><<He>> presses <<his>> head into your chest. <</switch>> "Just a little longer." <br><br> You feel the slightest pinprick in your arm. <<pain 2>><<gpain>> <br><br> <span class="purple">The balcony starts to shift and distort.</span> Gwylan's face remains in perfect clarity at the center of your vision. <<He>> smiles sweetly, holding up a pink rose. Its stem drips red. <<hallucinogen 160>><<ggghallucinogens>> <br><br> You find your legs moving on their own. Gwylan guides you in a dance. "Shhh... just... a little longer." <br><br> <<hypnosisText "<<He>> snaps <<his>> fingers, and you're no longer where you once were.">> <<His>> voice fades away with the rest of the cafe. <br><br> <<if _gwylanStatus.includes("aurigaScarConfront")>> <<link [[Everything fades to black...|Forest Shop Nowhere Passout]]>><<pass 1 hour>><<endevent>><</link>> <<else>> <<link [[Everything fades to black...|Forest Shop Taken Start]]>><<pass 1 hour>><<endevent>><</link>> <</if>> <br> <<else>> <<He>> holds you for just a moment longer, before letting go and returning to <<his>> seat. <<He>> motions to a free seat opposite <<him>>. <<if !$gwylanSeen.includes("cafe")>> <<set $gwylanSeen.pushUnique("cafe")>> "Would you like to join <<if $phase is 3>>us<<else>>me<</if>>? I come here every morning to clear my head. Maybe it'll help for you, too." <<elseif $gwylan.hunting is 3>> "Take a seat. My eyes have missed looking at you. <<gwylanCommand "You'll be coming by the shop later, too.">> We have some catching up to do." <<elseif _badEndFollowup>> "The shop must have something new to show you after going through that. Be sure to take a look around later, and we can talk more. Until then, would you like to join <<if $phase is 3>>us<<else>>me<</if>>? A bit of fresh ocean air might be just what you need to clear your head." <<else>> "Would you like to join <<if $phase is 3>>us<<else>>me<</if>>? A bit of fresh ocean air might be just what you need to clear your head." <</if>> <</if>> <<elseif !$gwylanSeen.includes("cafe")>> <br><br> <<set $gwylanSeen.pushUnique("cafe")>> <<if $speech_attitude is "meek">> "Y-you look lonely," you say. "Do you mind if I sit?" <<elseif $speech_attitude is "bratty">> "You look like you could use some company," you say. "I hope this seat isn't taken." <<else>> "Do you mind if I take this seat?" you ask. "You look lonely." <</if>> <br><br> Gwylan looks to you with surprise. <<if $gwylanSeen.includes("chef_chat")>> "You've already used that line on me," <<else>> "Most don't pay me any mind here. Sometimes I think I'm invisible," <</if>> <<he>> says with a giggle. A large seagull lands on the balcony, and tilts its head at <<him>>. <<He>> flicks a crumb of food at it, which it catches in its mouth before flying off. <br><br> "I wouldn't mind the company," <<he>> finally says. <<if $worn.handheld.type.includes("bookbag")>><<set $cafe_study to $worn.handheld.name>><</if>><<handheldundress "cafe_balcony">> <<else>> <<if $gwylanRescue?.failed>> <br><br> <<gwylanRescueApology>> <<else>> <<gwylanGreeting>> <</if>> <<if $worn.handheld.type.includes("bookbag")>><<set $cafe_study to $worn.handheld.name>><</if>><<handheldundress "cafe_balcony">> <</if>> <</if>> <br><br> <<if !_noOptions>> <<gwylanOptions>> <</if>><<set $outside to 0>><<set $location to "cafe">><<effects>><<run statusCheck("Gwylan")>> <<npc Gwylan>><<person1>> <<if $phase is 1>> You and Gwylan head over to the railing down the road from the cafe. <<if Weather.precipitation isnot "none">> <<He>> unfolds a large dark green umbrella and starts watching the sea. There's plenty of room under it for you. <<else>> <<He>> leans against it and starts watching the sea. <</if>> <<else>> You approach Gwylan. <<if Weather.precipitation isnot "none">> <<Hes>> holding a large dark green umbrella, and watching the sea. <<else>> <<Hes>> leaning against a railing and watching the sea. <</if>> <<if _gwylanStatus.includes("reunion")>> <br><br> <<if $gwylanSeen.includes("partners")>> <<He>> notices you out of the corner of <<his>> eye. Before you can blink, you are wrapped up in <<his>> warm embrace. <<if _gwylanTF.known>><<His>> tail curls around you. It's very soft.<</if>> <br><br> "Oh, sweetheart," <<he>> whispers. "You've been gone so long, I was starting to think you were never coming back. What happened to you?" <<else>> <<He>> notices you out of the corner of <<his>> eye. <<He>> smiles widely. "There you are!" <<He>> walks up and hugs you. "I was starting to wonder if you had forgotten about me. What happened to you?" <</if>> <br><br> <<gwylanReunion>> <br><br> <<if _gwylanStatus.includes("badEndReady")>> <<set _noOptions to true>> <<He>> doesn't let go. <br><br> "Please, just let me hold you for a little longer. I really though this would be the end. I thought I'd be alone again." <<switch $bodysize>> <<case 0 1>><<He>> withdraws only enough to look down into your eyes. <<case 2>><<He>> nuzzles <<his>> head into the crook of your neck. <<case 3>><<He>> presses <<his>> head into your chest. <</switch>> "Just a little longer." <br><br> You feel the slightest pinprick in your arm. <<pain 2>><<gpain>> <br><br> <span class="purple">The street starts to shift and distort.</span> Gwylan's face remains in perfect clarity at the center of your vision. <<He>> smiles sweetly, holding up a pink rose. Its stem drips red. <<hallucinogen 160>><<ggghallucinogens>> <br><br> You find your legs moving on their own. Gwylan guides you in a dance. "Shhh... just... a little longer." <br><br> <<hypnosisText "<<He>> snaps <<his>> fingers, and you're no longer where you once were.">> <<His>> voice fades away with the rest of the town. <br><br> <<if _gwylanStatus.includes("aurigaScarConfront")>> <<link [[Everything fades to black...|Forest Shop Nowhere Passout]]>><<pass 1 hour>><<endevent>><</link>> <<else>> <<link [[Everything fades to black...|Forest Shop Taken Start]]>><<pass 1 hour>><<endevent>><</link>> <</if>> <<else>> <<He>> holds you for just a moment longer, before letting go. <<if !$gwylanSeen.includes("cafe")>> <<set $gwylanSeen.pushUnique("cafe")>> "Would you like to join me? I come to the cafe every morning to clear my head. Maybe it'll help for you, too." <<elseif $gwylan.hunting is 3>> "Take a seat. My eyes have missed looking at you. <<gwylanCommand "You'll be coming by the shop later, too.">> We have some catching up to do." <<elseif _badEndFollowup>> "The shop must have something new to show you after going through that. Be sure to take a look around later, and we can talk more. Until then, would you like to join me? A bit of fresh ocean air might be just what you need to clear your head." <<else>> "Would you like to join me? A bit of fresh ocean air might be just what you need to clear your head." <</if>> <</if>> <<elseif !$gwylanSeen.includes("cafe")>> <br><br> <<set $gwylanSeen.pushUnique("cafe")>> <<if $speech_attitude is "meek">> "Y-you look lonely," you say. "Do you mind if I join you?" <<elseif $speech_attitude is "bratty">> "You look like you could use some company," you say. "I hope there's room for me." <<else>> "Do you mind if I join you?" you ask. "You look lonely." <</if>> <br><br> Gwylan looks to you with surprise. <<if $gwylanSeen.includes("chef_chat")>> "You've already used that line on me," <<else>> "Most don't pay me any mind here. Sometimes I think I'm invisible," <</if>> <<he>> says with a giggle. A large seagull lands on the railing, and tilts its head at <<him>>. <<He>> flicks a bread crumb at it, which it catches in its mouth before flying off. <br><br> "I wouldn't mind the company," <<he>> finally says. <<else>> <<if Weather.precipitation isnot "none">> There's plenty of room under <<his>> umbrella for you. <</if>> <<if $gwylanRescue?.failed>> <br><br> <<gwylanRescueApology>> <<else>> <<gwylanGreeting>> <</if>> <</if>> <</if>> <br><br> <<if !_noOptions>> <<gwylanOptions>> <</if>><<effects>><<run statusCheck("Gwylan")>><<set _robin to statusCheck("Robin")>><<set _robinPresent to $location is "cafe" and $daily.robin_in_cafe is 1>><<silently>><<seagullFood>><</silently>> <<if $phase2 is 1>> <<switch $phase>> <<case "fruity ale">> <<wearProp "alcohol" 0 "fruity ale">><<set _food to "a fruity ale. It arrives quickly, served in a regular beer glass. It's very sweet and light. It's delicious">> <<case "winter ale">> <<wearProp "alcohol" 0 "winter ale">><<set _food to "winter ale. It arrives promptly, served in a beautifully curved glass. It's sweet, rather than bitter. It's delicious">> <<case "shandy">> <<wearProp "alcohol" 0 "shandy">><<set _food to "a shandy. It arrives quickly. It's served in a can with a beer glass; you're clearly meant to pour it yourself. It's lemon flavoured and very refreshing">> <<case "autumn ale">> <<wearProp "alcohol" 0 "autumn ale">><<set _food to "an autumn ale. It arrives quickly. It's sweet and has a hint of caramel. It's delicious">> <<case "coffee">> <<wearProp "coffee">><<set _food to "a cup of coffee. It's strong, but not too strong">> <<case "milkshake">> <<wearProp "milkshake">><<set _food to "a milkshake, with two straws. It's very sweet">> <<case "fruit salad">> <<wearProp "salad fork">><<set _food to "a fruit salad. It arrives promptly, full of fresh strawberries, blueberries, kiwi, and chunks of pineapple. It's sweet and delicious">> <<case "gingerbread">> <<wearProp "gingerbread">><<set _food to "a gingerbread man. It arrives promptly, a friendly icing face smiling up at you. It's sweet and delicious, and <<print $christmas is 1 and Time.monthDay is 25 ? `it's the perfect treat for Christmas Day` : `it reminds you of Christmas`>>">> <<case "pancakes">> <<wearProp "pancake">><<set _food to "a stack of freshly made pancakes. It arrives promptly, topped with a large helping of butter and jam. The smell is delicious, and has a hint of vanilla">> <<case "crepes">> <<wearProp "pancake">><<set _food to "a plate of crepes. It arrives quickly, filled with strawberries and topped with a light sprinkle of powdered sugar. It's very sweet">> <<case "deluxe cream bun">> <<wearProp "creambun">><<set _food to "one of the cafe's staple cream buns. It soon arrives, fresh from the oven and filled to the brim with creamy goodness. The flavour is divine">> <<default>> <<wearProp "fork">><<set _food to "the food. It arrives promptly, and it's delicious">> <</switch>> You order _food. <</if>> You stare out at the ocean with Gwylan<<if _robinPresent>> and Robin<</if>>, <<print Weather.precipitation is "rain" ? "entranced by the rain and the waves" : Weather.isSnow ? "entranced as snowflakes vanish into the waves" : "enjoying the breeze">>. <br><br> <<if $gwylan.request.event is "meetAtCafe">> /* Story progress, unlock intro for second ritual */ <<set $gwylanSeen.pushUnique("struggles")>><<gwylanRequestEnd "skip">> <<if _robinPresent>> "Robin, would you be a dear and give me and your <<if $robinromance>><<girl>><</if>>friend a moment to ourselves?" Gwylan says. "There's a personal matter I need to discuss with <<phim>> is all." <br><br> <<if Time.schoolDay>> <<He>> smiles. "We'll meet you outside afterwards. Don't forget your backpack, now." <<else>> <<He>> pulls out some cash, and hands it to Robin. "Here, go and order yourself something nice in the meantime, so the staff don't give you any trouble." <</if>> <br><br> Robin does a quick <<if _robin.pronoun is "m">>bow<<else>>curtsy<</if>> and exits the balcony. Gwylan turns <<his>> attention back to you. <br><br> <</if>> "I told you I needed to know something," <<he>> says. "I <i>need</i> to know. You've already told me so much, but I..." <br><br> <<He>> averts <<his>> gaze, watching the sea again. "I'm greedy. Every time you tell me something, it just makes me want to know more. Now there's something gnawing at me. Something I need to know more than ever." <<He>> has a look of grim fascination as <<he>> looks back to you. <br><br> "How do you keep going? Anyone else would have been broken down to nothing after everything you've told me.<br> <span class="gold"> <<if $gwylanSeen.includes("likes_tentacles")>>The tentacles that have violated you so much that you're now accustomed to them.<br><</if>> <<if $gwylanSeen.includes("kylar_kidnapped")>> That <<nnpc_gendery "Kylar">> Kylar, who kidnapped you and tried to force you to marry <<nnpc_him "Kylar">>.<br> <<elseif $gwylanSeen.includes("kylar_parents")>> That <<nnpc_gendery "Kylar">> Kylar, who kidnapped you.<br> <</if>> <<if $gwylanSeen.includes("farm_defended")>>The way you defended your farm from Remy, without giving so much as an inch.<br><</if>> <<if $gwylanSeen.includes("tenyclus")>>The gaps in your memory after you played that strange game too much.<br><</if>> <<if $gwylanSeen.includes("christmas_generosity")>>How you were so desperate for money that you resorted to stealing, and yet, when you found someone in more need than you, you left a large sum of money for them instead.<br><</if>> <<if $gwylanTalked.includes("underground_brothel")>>Your escape from sex slavery.<br><</if>> <<if $gwylanTalked.includes("underground_farm")>>The human cattle farm.<br><</if>> <<if $gwylanSeen.includes("eden_known")>>Your time with the hunter, and your efforts to smother <<nnpc_his "Eden">> loneliness.<br><</if>> <<if $gwylanSeen.includes("likes_wolves")>>Your integration into the local wolf pack.<br><</if>> <<if $gwylanTalked.includes("bird")>>Your time in the old castle with the hawk.<br><</if>> <<if $gwylanTalked.includes("prison")>>Your confinement in prison.<br><</if>> <<if $gwylanTalked.includes("asylum")>>Your treatments in the asylum.<br><</if>> <<if $gwylanTalked.includes("temple_confessor")>>The terrible truth told to you by the bishop.<br><</if>> <<if $gwylanTalked.includes("temple_exorcist")>>The way you rescued someone from a dark ritual while working a dance job.<br><</if>> <<if $gwylanTalked.includes("temple_sexy")>>The burdens of the world you've taken on while trying to purge its poisons.<br><</if>> <<if $gwylanTalked.includes("historic")>>The stories and history you've sought out.<br><</if>> <<if $gwylanTalked.includes("hookah")>>The terrible things you've seen, and how you inherited the hookah parlour.<br><</if>> <<if $chef_speech is "bailey">>How you bravely told everyone about what Bailey is doing at the orphanage during the cafe's grand re-opening.<br><</if>> <<if $gwylanTalked.includes("islander")>>Your exile to the island, and everything you've told me about the culture you found there.<br><</if>> <<if $gwylanTalked.includes("fox_mask")>>How you accompanied an Elk to the Rite of Renewal as a Fox.<br><</if>> <<if $brownFoxRevealed>> <<if $avery_mansion?.heist_suspicion isnot undefined>> How we stole the clutching bones together.<br> <<elseif $avery_mansion?.fox.stones>> How you boldly stole the clutching bones from Avery.<br> <</if>> <</if>> <<if $gwylanSeen.includes("auriga_scar")>> The Elk's wound over your heart.<br> <</if>> <<if $gwylanTalked.includes("succubus")>> <<if $gwylanSeen.includes("fall_from_grace")>> Your fall from grace. <<else>> Your personal march through Hell. <</if>> <br> <</if>> I memorised it all, in case you never returned to tell me more." </span> <br><br> <<His>> eyes scan you up and down, searching for something. "Yet, you did come back. You keep coming back, no matter what troubles or triumphs you face. What is it that stops you from giving up hope?" <br><br> You think about it for a long moment, recalling everything you've been through. <br><br> More than anything else, the thing that keeps you going is... <br> <<link [[Spite|Gwylan Talk Struggles Spite]]>><</link>> <br> <<link [[Survival instinct|Gwylan Talk Struggles Survival]]>><</link>> <br> <<link [[Thoughts of a better future|Gwylan Talk Struggles Optimism]]>><</link>> <br> <<if Object.values(V.children).length>> <<if Object.values(V.children).length is 1>> <<link [[Your child|Gwylan Talk Struggles Children]]>><</link>> <<else>> <<link [[Your children|Gwylan Talk Struggles Children]]>><</link>> <</if>> <br> <</if>> <<link [[The other orphans|Gwylan Talk Struggles Orphans]]>><</link>> <br> <<if $fame.good gte 400>> <<link [[The need to help others|Gwylan Talk Struggles Kind]]>><</link>><<note "Kindness fame" "green">> <br> <</if>> <<link [[Someone important to you|Gwylan Talk Struggles Special]]>><</link>> <br> <<if displayDefiantOption(850) or $sadism_level gte 2>> <<link [[Revenge|Gwylan Talk Struggles Revenge]]>><<if $submissive gt 850 and $wolfgirl gte 6>><<wolfDefiant 850>><</if>><</link>><<if displayDefiantOption(850)>><<defianttext 850>><<else>><<note "Sadist" "lewd">><</if>> <br> <</if>> <<if $angel gte 6 or $fallenangel gte 2 or ["monk","priest"].includes($temple_rank)>> <<link [[Divine purpose|Gwylan Talk Struggles Divine]]>><</link>><<if $angel gte 6>><<angel>><<elseif $fallenangel gte 2>><<fallenangel>><<else>><<note "Temple rank" "gold">><</if>> <br> <</if>> <<if $demon gte 6 or $backgroundTraits.includes("lustful") or $auriga_scar>> <<link [[Lust|Gwylan Talk Struggles Lust]]>><</link>><<if $demon gte 6>><<demon>><<elseif $auriga_scar>><<note "Elk-scarred" "red">><<else>><<note "Lustful" "lewd">><</if>> <br> <</if>> <<if $innocencestate is 1>> <<link [[Say you don't know what <<he>> means|Gwylan Talk Struggles Innocent]]>><</link>><<note "Innocent" "teal">> <br> <<elseif $awarelevel gte 4 or $temple_confessor_intro or $hookah_state gte 2 or $auriga_scar>> <<link [[The need to find answers|Gwylan Talk Struggles Answers]]>><</link>> <br> <</if>> <<link [[Say you don't know|Gwylan Talk Struggles Unknown]]>><</link>> <br> <<link [[Say you don't want to keep going|Gwylan Talk Struggles Desolate]]>><</link>> <br> <<else>> <<if $phase2 is 1>> Gwylan briefly looks over at your $phase. <<switch $phase>> <<case "coffee">> "Are you drinking that for flavour, or to wake up? It doesn't do anything for me unless I add a bunch of my own brew to it." <<case "fruity ale" "shandy" "autumn ale" "winter ale">> "Getting started early, are we?" <<if $stress gte ($stressmax / 5) * 3 or $trauma gte ($traumamax / 5) * 2>> <<set $gwylanSeen.pushUnique("bad_day_drinking")>> <<He>> looks concerned. "No judgement, but you should only drink to make a good day better. No offense either, but you look troubled as it is." <<elseif _gwylanLovePercent gte 50>> <<if npcIsPregnant("Gwylan")>> <<He>> pouts. "So rude to drink in front of me right now." <<He>> gently rubs <<his>> <<bellyDescription "Gwylan">>. <<else>> <<He>> thinks for a moment, before shrugging. "Why not? I'll cheer with you." <<He>> orders a $phase too<<if _robinPresent and !npcIsPregnant("Robin")>>, and another one for Robin<<set $daily.robin_cafe_food to 1>><</if>>. You clink your drinks together. <<if $islander_language gte 100>> <<He>> cheers in the islander's tongue. <<else>> <<He>> says something in a language you don't recognise, but it sounds like a cheer. <</if>> <</if>> <<else>> <<set $gwylanSeen.pushUnique("bad_day_drinking")>> <<He>> giggles. "You should only drink to make a good day better, so I hope your day's already going well." <</if>> <<case "milkshake">> <<He>> notices that there's two straws sticking out. <<if $gwylanSeen.includes("romance")>> "You're such a sap." <<He>> smiles. "It's okay. I like it." You enjoy the milkshake together. <<else>> "Really? Trying to buy my affections now?" <<He>> laughs. "You're lucky you're cute." <</if>> <<case "pancakes">> "Pancakes and crepes are very similar. The difference is that crepes don't use a leavening agent and are usually served with fruit. Overseas, pancakes are made much thicker. In fact, almost every country has a different kind of pancake." <<if Time.season isnot "winter">> <<He>> takes a bite of <<his>> crepes. "These are still my favourite." <</if>> <<if _robinPresent>> <br><br> Robin seems deep in thought. "I wish I could travel overseas someday. Heck, I'd take anywhere that isn't this dump of a town..." <<person2>><<He>> catches <<himself>>. "Um, n-not that I don't enjoy your company! I'd take you with me as well. The other orphans too if I could."<<person1>> <</if>> <<case "crepes">> <<if Time.season is "winter">> "I do like my crepes, but I can't eat it every day for a year straight. I need a break during the colder months." <<else>> "Ooh, little copycat," Gwylan says with a giggle. "Sammy likes to mix up the fruit the crepes get served with. <<nnpc_He "Sam">> tries to judge how the person ordering it is feeling that day, and picks a fruit to match." <</if>> <<case "gingerbread">> "There's a strange joy in eating a food that's shaped like people, isn't there?" <br><br> Gwylan looks at you with a serious glare, but cracks a smile and starts laughing. "I'm just kidding." <<default>> "Good choice." <</switch>> <br><br> <<elseif $phase2 is 2>> <<print either("Fishing", "Rummaging", "Searching", "Shuffling", "Sorting", "Digging")>> through your $cafe_study, you pull out your textbook on $phase. You spend some time going through the material. The <<if Weather.precipitation is "rain">>pouring rain makes<<else>>crashing waves make<</if>> for some pretty calming background noise for studying. <br><br> Gwylan watches idly as you flip through the pages<<if _gwylanTF.known>>, <<his>> large tail slowly swishing behind <<him>><</if>>. <<if $rng lte 20>> <br><br> You get stuck on one particular part. Despite re-reading it over and over, the information just doesn't seem to want to stick. <br><br> Gwylan picks up on it and asks what you're having difficulties with. You show <<him>> the page you're on. <<He>> grabs the book and quickly skims through it. <br><br> After a brief minute <<he>> hands it back to you, and guides you through each part, while still allowing you to reach the answers on your own. After some time, you feel that you can finally grasp the topic. <<if $gwylanSeen.includes("partners")>> You lean over and plant a kiss on <<his>> cheek in gratitude. <<He>> puts a hand over the spot and smiles bashfully. <<else>> You thank <<him>> for the help. <<He>> leans back and tips <<his>> hat in response. <</if>> <<else>> You manage to absorb the information in the chapter without too much effort, and bookmark where you left off for later. <</if>> <br><br> <<set _colour to $phase is "science" ? "blue" : $phase is "history" ? "yellow" : $phase is "maths" ? "red" : "green">> <<wearProp "textbook" _colour $phase>> <</if>> /* Robin arrives here if the player went to the cafe early. */ <<if $gwylanSeen.includes("cafe_walk_robin") and $robin.timer.hurt is 0 and !$daily.robin_in_cafe and $robinmissing is 0 and !$robinlocationoverride and Time.schoolDay and Time.hour gte 8 and false>> /* WARNING! Re-enable later for Gwybin cafe */ <<set $daily.robin_in_cafe to 1>><<set _robin to statusCheck("Robin")>><<set _robinPresent to true>><<npc Robin 2>><<person2>> The door to the cafe proper opens, and Robin steps out onto the balcony. <<if false>> /* If Robin hasn't seen PC in a long time */ <br><br> <<His>> jaw drops when <<he>> sees you. You have no time to react as you're quickly tackled into a hug. <br><br> <<His>> face buries into your shoulder as <<he>> starts spouting mostly incomprehensible gibberish. You are able to decipher some of it. <span class="green">It's about how much <<hes>> missed you.</span> <<trauma -6>><<ltrauma>> <br><br> <<He>> eventually pulls apart and wipes <<his>> tears. But <<his>> expression soon turns serious. "So, if you're here, why haven't you come to see me yet? I've been worried sick," <<he>> says. You struggle to come up with an answer. "Nevermind, it doesn't matter anymore. I'm just glad you're safe. <<if $robinromance>>I love you.<</if>>" <br><br> <<He>> composes <<himself>>, and smiles at you. Gwylan smiles too. "You have a very loyal friend, <<pcpetname "Gwylan">>. Be sure to take care of <<him>> like <<he>> takes care of you." <<elseif _robin.trauma gte 80>> <<He>> doesn't say a word as <<he>> sits down, slumped forward and expressionless. <br><br> You and Gwylan share a worried look, but don't press <<him>> on the matter. <<elseif _robin.dom gte 60 and _robin.trauma lt 40>> <<He>> waves at Gwylan and turns to you. <br><br> "I figured you'd be here! Mind if I join you?" <<He>> moseys over to the empty seat. <<if $phase2 is 1>> <<He>> notices your order. "$phase.toUpperFirst(), huh? Smells <<if !["fruity ale", "shandy", "autumn ale", "winter ale"].includes($phase)>>real good<<else>>interesting<</if>>." <<elseif $phase2 is 2>> <<He>> notices the $phase textbook in front of you. "Getting a head start on studying? Smart." <<He>> pulls out <<his>> own $phase textbook and starts leisurely browsing through some of the chapters. <</if>> <<else>> /* Expand this whole section depending on Robin's and the player's state */ <<He>> waves at Gwylan and turns to you. <br><br> "Ah, there you are! I thought you may have gone to school early." <<He>> takes the empty seat. <<if $phase2 is 1>> <<He>> notices your order. "Ooh, you got $phase? Smells<<if !["fruity ale", "shandy", "autumn ale", "winter ale"].includes($phase)>> lovely<<else>>... quite strong<</if>>." <<elseif $phase2 is 2>> <<He>> notices the $phase textbook in front of you. "Good idea. I've got a bit to catch up on myself, actually." <<He>> pulls out <<his>> own $phase textbook and flips to one of the later chapters, going quiet as <<he>> focuses on the material. <</if>> <</if>> <br><br> <<person1>> <</if>> You enjoy the view in silence for a while. <br><br> <<cleareventpool>> <<if $location is "cafe" and !(between($chef_state, 7, 8) and $chef_rework lte 30)>> <<if _robinPresent>> /* Robin-exclusive events */ <<if $phase2 is 1 and !$daily.robin_cafe_food>> <<addinlineevent "gwylan_watch_sea_robin_hungry" 1>> <<set $daily.robin_cafe_food to 1>><<set _noOptions to true>><<set _wouldBuy to ($robinmoney + (_robin.dom * 2) + ($robinpaid is 1 ? 200 : 0)) / 10 gte random(0, 100)>><<generateRole 2 0 "waiter/waitress">><<person2>> You're halfway through your $phase when you hear Robin's stomach rumble. <<switch $phase>> <<case "coffee">> <<if $robinmoney gte 2 and _wouldBuy>> <<set _isBuying to true>><<set _foodCost to 2>> <span class="red">TODO: Robin</span> <<else>> <span class="red">TODO: Robin</span> <</if>> <<case "fruity ale" "shandy" "autumn ale" "winter ale">> <<if !npcIsPregnant("Robin") and $robinmoney gte 7 and (_wouldBuy or _robin.trauma gte random(80, 105))>> <<set _isBuying to true>><<set _foodCost to 7>> <span class="red">TODO: Robin</span> <<elseif npcIsPregnant("Robin")>> <span class="red">TODO: Robin</span> <<else>> <span class="red">TODO: Robin</span> <</if>> <<case "fruit salad">> <<if $robinmoney gte 5 and _wouldBuy>> <<set _isBuying to true>><<set _foodCost to 5>> <span class="red">TODO: Robin</span> <<else>> <span class="red">TODO: Robin</span> <</if>> <<case "gingerbread">> <<if $robinmoney gte 6 and (_wouldBuy or (V.christmas and Time.monthDay is 25))>> <<set _isBuying to true>><<set _foodCost to 6>> <span class="red">TODO: Robin</span> <<else>> <span class="red">TODO: Robin</span> <</if>> <<case "pancakes">> You catch <<him>> looking at your plate. "Put some strawberry jam on there, and that would really hit the spot right now." <<if $robinmoney gte 10 and _wouldBuy>> <<set _isBuying to true>><<set _foodCost to 10>> <<He>> considers the idea for a moment, before waving to get the attention of the <<person3>><<person>> nearby. <<else>> <<He>> sighs. "I can never quite get them right back at the orphanage." <</if>> <<case "crepes">> <<if $robinmoney gte 10 and _wouldBuy>> <<set _isBuying to true>><<set _foodCost to 10>> <span class="red">TODO: Robin</span> <<else>> <span class="red">TODO: Robin</span> <</if>> <<case "deluxe cream bun">> <<if $robinmoney gte 50 and _wouldBuy>> <<set _isBuying to true>><<set _foodCost to 50>> <span class="red">TODO: Robin</span> <<else>> <span class="red">TODO: Robin</span> <</if>> <<default>> "That looks good." <</switch>> <br><br> <<if _isBuying is true>> /* Todo: Options */ <<socialiseicon "angry">> <<link [[Try to discourage <<him>>|Gwylan Ocean Breeze Robin Buy]]>> <<set $phase2 to 4>><<npcincr Robin dom -2>> <</link>><<lldom "Robin">><<note "- Robin's Love?" "red">><<if $phase is "deluxe cream bun">><<note "- - Robin's Money?" "blue">><<else>><<note "- Robin's Money?" "blue">><</if>> <br> <<if $money gte _foodCost * 100>> <<highicon>> <<link [[Pay for <<his>> $phase (£_foodCost)|Gwylan Ocean Breeze Robin Buy]]>> <<set $phase2 to 5>><<npcincr Robin love 2>><<money `-_foodCost*100` "cafe">> <</link>><<gglove "Robin">> <br> <</if>> <<skinicon "give">> <<link [[Offer <<him>> the rest of your $phase instead|Gwylan Ocean Breeze Robin Buy]]>> <<set $phase2 to 6>><<stress 8>><<npcincr Robin love 1>> <</link>><<gstress>><<glove "Robin">> <br> <<refuseicon>> <<link [[Let <<him>> order|Gwylan Ocean Breeze Robin Buy]]>> <<set $phase2 to 7>><<set $robinmoney -= _foodCost>><<npcincr Robin dom 1>> <</link>><<gdom "Robin">><<if $phase is "deluxe cream bun">><<note "- - Robin's Money" "blue">><<else>><<note "- Robin's Money" "blue">><</if>> <br> <<else>> <<if $money gte 200>> <<foodicon "coffee">><<link [[Buy Robin a coffee (£2)|Gwylan Ocean Breeze Robin Buy]]>> <<if $phase is "coffee">><<npcincr Robin dom 1>><</if>><<npcincr Robin love 1>> <<set $phase to "coffee">><<set $phase2 to 2>><<money -200 "cafe">> <</link>><<glove "Robin">><<if $phase is "coffee">><<gdom "Robin">><</if>> <br> <</if>> <<if $money gte 700 and !npcIsPregnant("Robin")>> <<if Time.season is "winter">> <<foodicon "winterale">> <<link [[Buy Robin a winter ale (£7)|Gwylan Ocean Breeze Robin Buy]]>> <<if $phase is "winter ale">><<npcincr Robin dom 1>><</if>><<npcincr Robin love 1>> <<set $phase to "winter ale">><<set $phase2 to 2>><<money -700 "cafe">> <</link>><<glove "Robin">><<if $phase is "winter ale">><<gdom "Robin">><</if>> <br> <<elseif Time.season is "spring">> <<foodicon "fruityale">> <<link [[Buy Robin a fruity ale (£7)|Gwylan Ocean Breeze Robin Buy]]>> <<if $phase is "fruity ale">><<npcincr Robin dom 1>><</if>><<npcincr Robin love 1>> <<set $phase to "fruity ale">><<set $phase2 to 2>><<money -700 "cafe">> <</link>><<glove "Robin">><<if $phase is "fruity ale">><<gdom "Robin">><</if>> <br> <<elseif Time.season is "summer">> <<foodicon "shandy">> <<link [[Buy Robin a shandy (£7)|Gwylan Ocean Breeze Robin Buy]]>> <<if $phase is "shandy">><<npcincr Robin dom 1>><</if>><<npcincr Robin love 1>> <<set $phase to "shandy">><<set $phase2 to 2>><<money -700 "cafe">> <</link>><<glove "Robin">><<if $phase is "shandy">><<gdom "Robin">><</if>> <br> <<else>> <<foodicon "autumnale">> <<link [[Buy Robin an autumn ale (£7)|Gwylan Ocean Breeze Robin Buy]]>> <<if $phase is "autumn ale">><<npcincr Robin dom 1>><</if>><<npcincr Robin love 1>> <<set $phase to "autumn ale">><<set $phase2 to 2>><<money -700 "cafe">> <</link>><<glove "Robin">><<if $phase is "autumn ale">><<gdom "Robin">><</if>> <br> <</if>> <<elseif npcIsPregnant("Robin")>> <span class="blue">You decide against ordering Robin alcohol, knowing <<hes>> with child.</span> <br> <</if>> <<if $money gte 500>> <<foodicon "fruitsalad">> <<link [[Buy Robin a fruit salad (£5)|Gwylan Ocean Breeze Robin Buy]]>> <<if $phase is "fruit salad">><<npcincr Robin dom 1>><</if>><<npcincr Robin love 1>> <<set $phase to "fruit salad">><<set $phase2 to 2>><<money -500 "cafe">> <</link>><<glove "Robin">><<if $phase is "fruit salad">><<gdom "Robin">><</if>> <br> <</if>> <<if $money gte 600 and Time.season is "winter">> <<foodicon "gingerbread">> <<link [[Buy Robin gingerbread (£6)|Gwylan Ocean Breeze Robin Buy]]>> <<if $phase is "gingerbread">><<npcincr Robin dom 1>><</if>><<npcincr Robin love 1>> <<set $phase to "gingerbread">><<set $phase2 to 2>><<money -600 "cafe">> <</link>><<glove "Robin">><<if $phase is "gingerbread">><<gdom "Robin">><</if>> <br> <</if>> <<if $money gte 1000>> <<foodicon "pancakes">> <<link [[Buy Robin pancakes (£10)|Gwylan Ocean Breeze Robin Buy]]>> <<if $phase is "pancakes">><<npcincr Robin dom 1>><</if>><<npcincr Robin love 1>> <<set $phase to "pancakes">><<set $phase2 to 2>><<money -1000 "cafe">> <</link>><<glove "Robin">><<if $phase is "pancakes">><<gdom "Robin">><</if>> <br> <<foodicon "crepes">> <<link [[Buy Robin crepes (£10)|Gwylan Ocean Breeze Robin Buy]]>> <<if $phase is "crepes">><<npcincr Robin dom 1>><</if>><<npcincr Robin love 1>> <<set $phase to "crepes">><<set $phase2 to 2>><<money -1000 "cafe">> <</link>><<glove "Robin">><<if $phase is "crepes">><<gdom "Robin">><</if>> <br> <</if>> <<if $money gte 5000>> <<foodicon "creambun">> <<link [[Buy Robin a Deluxe Cream Bun (£50)|Gwylan Ocean Breeze Robin Buy]]>> <<if $phase is "deluxe cream bun">><<npcincr Robin dom 1>><</if>><<npcincr Robin love 2>> <<set $phase to "deluxe cream bun">><<set $phase2 to 2>><<money -5000 "cafe">> <</link>><<gglove "Robin">><<if $phase is "deluxe cream bun">><<gdom "Robin">><</if>> <br> <</if>> <<if ["winter ale", "fruity ale", "shandy", "autumn ale"].includes($phase) and npcIsPregnant("Robin")>> <span class="blue">You decide against sharing your $phase with <<him>>, knowing <<hes>> with child.</span> <br> <<else>> <<skinicon "give">> <<link [[Share the rest of your $phase with <<him>>|Gwylan Ocean Breeze Robin Buy]]>> <<set $phase2 to 3>><<stress 8>><<npcincr Robin dom 1>><<npcincr Robin love 1>> <</link>><<gstress>><<glove "Robin">><<gdom "Robin">> <br> <</if>> <<refuseicon>> <<link [[Ignore <<him>>|Gwylan Ocean Breeze Watch]]>> <<set $phase2 to 0>><<npcincr Robin dom -2>> <</link>><<ldom "Robin">> <br><br> <</if>> <</addinlineevent>> <</if>> <<if _robin.crossdressing gte 2 and _robin.crossdressing lte 4 and _robin.dom lt 80 and !$weekly.gwylan_sea_talk_robin_cd>> <<addinlineevent "gwylan_watch_sea_robin_crossdressing" 1>> <<set $weekly.gwylan_sea_talk_robin_cd to 1>> Robin awkwardly adjusts <<person2>><<if Time.schoolDay>>the waistband of <<his>> school <<if $pronoun is "m">>skirt<<else>>shorts<</if>><<else>><<his>> <<npcClothesText _robin "upper">><</if>>. <<His>> attempts to be subtle clearly didn't work, as Gwylan quickly perks up. <br><br> "That fits you really well, you know?" <br><br> Robin shifts around some more, then pauses, realising the comment was for <<him>>. "Oh! Hah... I'm glad you think so," <<he>> says, looking down sheepishly. <br><br> Gwylan pouts a little, and leans in. "Look at me." Robin looks <<person1>><<him>> in the eyes. "You look gorgeous, so why do you look so ashamed?" <br><br> Robin appears at a loss for words for a moment, but <<his>> expression soon changes into that of a big smile. <<npcincr Robin dom 3>><<gwylanRobin>><<ggdom "Robin">> <br><br> <</addinlineevent>> <</if>> <</if>> <<addinlineevent "gwylan_watch_sea_feed" 1>> Gwylan takes a piece of <<seagullFood>><<if _seagullFood isnot "gingerbread">> in <<his>> fork<</if>>, and holds it out over the edge of the balcony. Immediately, a gull swoops by and eats it right off of <<if _seagullFood isnot "gingerbread">>the fork<<else>><<his>> palm<</if>> without stopping. <br><br> <</addinlineevent>> <<if _seagullFood is "cherry crepes">> <<addinlineevent "gwylan_watch_sea_cherry" 1>> "Watch this." Gwylan impales a cherry on <<his>> fork and eats it, stem and all. <<He>> chews for a few moments, before sticking <<his>> tongue out, revealing <span class="lewd">nothing but the stem, tied in a nearly perfect knot</span>. <br><br> <<if _robinPresent>> <<person2>>Robin's eyes quickly dart away as <<his>> cheeks flush.<<person1>> <br><br> <</if>> <<He>> spits it off to the side, where it's caught by a passing gull. <<He>> winks at you. <<npcincr Gwylan lust 1>><<glust>> <br><br> <</addinlineevent>> <</if>> <<if $gwylanSeen.includes("cafe_chef_truth") or $chef_speech is "truth">> <<addinlineevent "gwylan_watch_sea_cream_buns" 1>> "You've ruined these cream buns for me, you know?" <br><br> <<He>> quickly realises how that sounds, backpedaling. "By that, I mean the normal buns. Your special ones were already tastier, and then I found out how they were made? Honestly, how could I go back?" <br><br> <<if _robinPresent>> Robin looks at both of you, expecting either of you to elaborate. You and Gwylan simply share a look, and giggle. <br><br> <<person2>><<He>> pouts and crosses <<his>> arms. "Hey, what's with the big secret? You can tell me too!" <br><br> <<He>> soon gives up when it becomes clear neither of you are going to give a straight answer.<<person1>> <br><br> <</if>> <</addinlineevent>> <</if>> <<else>> <<if ($chef_rework lte 0 or $chef_state is 8) and !$weekly.gwylan_sea_talk_cafe_opening>> <<addinlineevent "gwylan_watch_sea_cafe_opening" 10>> <<set $weekly.gwylan_sea_talk_cafe_opening to true>> <<He>> looks over in the direction of the newly renovated cafe. <br><br> "The place is coming along nicely. Sammy always has been an ambitious one." <<He>> turns to you. "Thank you for making <<nnpc_his "Sam">> ambitions a reality." <br><br> There's a brief silence before <<he>> continues. "Me personally, I can't wait to finally have my routine back. It may have been monotone, but I've really missed it.<<if $gwylan.sea gte 20>> Well, monotone without you that is.<</if>>" <br><br> Another silence. "...Anyway, you better get going with the opening ceremony soon so I can get back to having my <<seagullFood>>!" <<he>> quips, gently punching your shoulder. "I'll be in attendance, so be sure to look out for me." <br><br> <</addinlineevent>> <</if>> <</if>> <<if !$weekly.gwylan_sea_talk_ice_cream and _robinPresent>> <<addinlineevent "gwylan_watch_sea_event_ice_cream" 1>> <<set _noOptions to true>> <<set $weekly.gwylan_sea_talk_ice_cream to true>><<if random(1, 2) is 1>><<generateNPC 2 t m m>><<else>><<generateNPC 2 t f f>><</if>><<person2>> You see a child <<print either("walking", "running", "gently humming", "spinning around")>> <<if $location is "cafe">> on the walkway below, <<else>> on the walkway nearby, <</if>> holding an ice cream cone. <<He>> trips and <span class="red">drops it onto the pavement</span>. <<He>> lowers <<his>> head, and you hear <<him>> begin to cry. Gwylan makes a small noise from beside you. <<person1>><<He>> rushes away from the <<if !between(V.chef_state, 7, 8)>>balcony<<else>>railing<</if>>. <br><br> <<if inappropriatePlayerState("clothes")>> <span class="blue">You don't think you should follow <<him>> in this state of dress.</span> <<elseif inappropriatePlayerState("bodywriting")>> <span class="blue">You don't think you should follow <<him>> while covered in lewd bodywriting.</span> <<elseif inappropriatePlayerState("fluids")>> <span class="blue">You don't think you should follow <<him>> while covered in lewd fluids.</span> <<elseif inappropriatePlayerState("drugs")>> <span class="blue">You don't think you should follow <<him>> while intoxicated.</span> <<else>> <<link [[Follow|Gwylan Ocean Breeze Ice Cream]]>><<set $phase to 0>><</link>> <</if>> <br> <<link [[Watch|Gwylan Ocean Breeze Ice Cream]]>><<set $phase to 1>><</link>> <br> <</addinlineevent>> <</if>> <<addinlineevent "gwylan_watch_sea_ocean_floor" 1>> "Strange to think that there are things on the ocean floor older than humans<<if _robinPresent>>," Gwylan says.<<else>>."<</if>> <br><br> You're not sure how to respond. <br><br> <</addinlineevent>> <<addinlineevent "gwylan_watch_sea_shore_tide" 1>> "The tide comes and goes without thought of the shore." <<if _robinPresent>>Gwylan<<else>><<He>><</if>> places <<his>> hands on the railing. "Sometimes I feel like the shore, and other times I feel like the tide." <br><br> <<if isLoveInterest("Gwylan")>> You place your hand on <<hers>>. <<if $speech_attitude is "meek">> "The shore can be patient," you say. "It will wait for the tides as long as the tides let it." <<elseif $speech_attitude is "bratty">> "The tides may go, but they always come back." You give <<his>> hand a squeeze. "I know you'll come back." <<else>> "Tides ebb and flow," you say. "The shore just has to wait." <</if>> <br><br> <</if>> <<He>> smiles at you, though it's tinged with sadness. You turn to watch the ocean again. <br><br> <</addinlineevent>> <<addinlineevent "gwylan_watch_sea_salty" 1>> "I've always loved the salty air near the beach. Makes me feel alive<<if _robinPresent>>," Gwylan says.<<else>>."<</if>> <br><br> <</addinlineevent>> <<addinlineevent "gwylan_watch_sea_fins" 1>> "We emerged from the deep parts of the sea on fins, and now we rule the earth. You can do anything you put your mind to, <<pcpetname "Gwylan" "name">><<if _robinPresent>>," Gwylan says.<<else>>."<</if>> <br><br> It's a comforting thought. <br><br> <</addinlineevent>> <<addinlineevent "gwylan_watch_sea_drowning" 1>> "Did you know that drowning is painful right up until you let the water into your lungs? Then it's peaceful." <<stress 3>><<gstress>><<if _robinPresent>><<npcincr Robin trauma 1>><<grtrauma>><</if>> <br><br> <</addinlineevent>> <<addinlineevent "gwylan_watch_sea_chips" 1>> You point out a flock of seagulls harrying a tourist for some chips. Gwylan giggles. It's a nice sound. <br><br> <</addinlineevent>> <<addinlineevent "gwylan_watch_sea_swimming" 1>> You ask if Gwylan has ever swam in the ocean. <<He>> looks away from you. <br><br> "I'm afraid if I do, I'll enjoy it too much." <br><br> <<He>> doesn't say anything else. <br><br> <</addinlineevent>> <<addinlineevent "gwylan_watch_sea_couple" 1>> A couple stop and kiss by the edge of the water. They're in complete bliss. Gwylan looks wistful as <<he>> watches. <br><br> <<if $gwylanSeen.includes("partners")>> <<if _robinPresent>> <<set _noOptions to true>> Your eyes wander to Gwylan's lips, looking dreadfully unkissed. However, <span class="lewd">Robin's right there</span>. You consider your options. <br><br> <<link [[Kiss Gwylan|Gwylan Ocean Breeze Kiss]]>><<set $phase to 0>><</link>><<kissvirginitywarning>> <br> <<if $robinromance is 1>> <<link [[Kiss Robin|Gwylan Ocean Breeze Kiss]]>><<set $phase to 1>><</link>><<kissvirginitywarning>> <br> <</if>> <<link [[Keep watching the couple|Gwylan Ocean Breeze Kiss]]>><<set $phase to 2>><</link>> <<else>> You lean forwards and kiss <<him>>. <<He>> smiles against your lips before kissing back. You only break apart to breathe. <<gwylanKiss>><<takeKissVirginity "Gwylan" `(isLoveInterest("Gwylan") ? "loveInterest" : "romantic")`>> <br><br> <</if>> <<elseif $loveInterest.primary isnot "None">> <<if $player.virginity.kiss === true>> You find yourself wondering what a kiss like that must feel like. <<elseif $loveInterest.primary is "Black Wolf">> Your mind drifts to the Black Wolf's <<if $blackwolfmonster is 1>>lips on yours<<else>>wet tongue licking your face<</if>>. <<elseif $loveInterest.primary is "Great Hawk">> Your mind drifts to the Great Hawk's <<if $greathawkmonster is 1>>lips on yours<<else>>beak gently preening you<</if>>. <<else>> Your mind drifts to <<= $loveInterest.primary>>'s lips on yours. <</if>> <br><br> <</if>> <</addinlineevent>> <<addinlineevent "gwylan_watch_sea_gulls" 1>> "I like listening to the seagulls. They have a lot to say, if you care enough to hear<<if _robinPresent>>," Gwylan says.<<else>>."<</if>> <br><br> <</addinlineevent>> <<addinlineevent "gwylan_watch_sea_nature" 1>> A fish jumps out of the water into the waiting talons of a bird. It flops a few times before going still. "Nature is brutal. That makes it beautiful, though, in its own way<<if _robinPresent>>," Gwylan says.<<else>>."<</if>> <br><br> <</addinlineevent>> <<if _gwylanStatus.includes("dom") or $gwylanSeen.includes("dog_bowl")>> <<addinlineevent "gwylan_watch_sea_scratch" 1>> <<set _tf to checkTFparts()>> <<if _robinPresent>>Gwylan<<else>><<He>><</if>> reaches over and scratches behind your ears. "<<pcPetname "Gwylan" "good">>." <br><br> You feel warm and a little aroused. <<arousal 900>><<garousal>> <<if _robinPresent>> <<npcincr Robin dom -1>><<ldom "Robin">> <</if>> <br><br> <</addinlineevent>> <</if>> <<addinlineevent "gwylan_watch_sea_bump_shoulder" 1>> You playfully bump your shoulder against <<if _robinPresent>>Gwylan's<<else>><<hers>><</if>>. After a moment, <<he>> returns the gesture. <br><br> <</addinlineevent>> <<if !$weekly.gwylan_sea_talk_business>> <<addinlineevent "gwylan_watch_sea_business" 1>> <<set $weekly.gwylan_sea_talk_business to 1>> You ask about the shop. Gwylan is happy enough to chat about it. Seems as though business <<if _gwylanLovePercent gte 100>> couldn't be better. <<elseif _gwylanLovePercent gte 75>> is going well. <<elseif _gwylanLovePercent gte 50>> is looking up. <<elseif _gwylanLovePercent gte 25>> is slow. <<else>> is non-existent. <</if>> <<if _robinPresent>> <<if _gwylanLovePercent gte 100>> Robin smiles, and asks a few questions <<person2>><<himself>>. <<elseif _gwylanLovePercent gte 50>> Robin smiles. <<else>> Robin offers <<him>> a sympathetic smile. <</if>> <</if>> <br><br> <</addinlineevent>> <</if>> <<if $trauma gte ($traumamax / 5) * 3>> <<addinlineevent "gwylan_watch_sea_trauma" 1>> "Are you taking care of yourself?" <<if _robinPresent>><<he>><<else>>Gwylan<</if>> asks. "If you can't sleep, come by the shop sometime. I'm sure it has something for you." <br><br> <<if _robinPresent and C.npc.Robin.trauma lt 80>> Robin puts a hand on your shoulder. "I'm here for you too. Always." <br><br> <</if>> <</addinlineevent>> <</if>> <<addinlineevent "gwylan_watch_sea_whale" 1>> "At night, I can hear whales singing all the way from my little shop," <<he>> says. "They sound so lonely. I wish I could sing back to them." <br><br> <<if _robinPresent>> "Really?" Robin asks. "That's so cool! <<if C.npc.Robin.trauma lt 20>> Maybe I should leave my window open tonight so I can hear them too." <<else>> I love the sound of whales. It helps me relax." <</if>> <br><br> <</if>> <</addinlineevent>> <<addinlineevent "gwylan_watch_sea_skateboard" 1>> A <<personsimple>> on a skateboard crashes. <<He>> gets up and looks around to see you<<if _robinPresent>>, Robin<</if>> and Gwylan staring down at <<him>>. Looking embarrassed, <<he>> continues on. You both giggle. <<stress -4>><<lstress>> <br><br> <</addinlineevent>> <<addinlineevent "gwylan_watch_sea_wind" 1>> The wind pulls at Gwylan's hat. <<He>> places a hand on it to keep it from blowing away. You think about how much it suits <<him>> and say as such. <<He>> smiles, blushing a little. <<npcincr Gwylan lust 1>><<glust>> <br><br> <</addinlineevent>> <<addinlineevent "gwylan_watch_sea_peaceful" 1>> <<if _robinPresent>> There are no words passing between you three, yet you feel at peace. You can tell that they feel the same. <<stress -6>><<npcincr Robin trauma -1>><<lstress>><<lrtrauma>> <<else>> There are no words passing between you two, yet you feel at peace. You can tell that Gwylan feels the same. <<stress -6>><<lstress>> <</if>> <br><br> <</addinlineevent>> <<if (Time.monthDay is Time.lastDayOfMonth or Time.isBloodMoon(Time.date)) and ($avery_tower?.progress is undefined or $avery_tower?.progress lt 100) and $world_corruption_hard gt 0 and $world_corruption_soft gt 99>> <<if $hallucinations gte 2>> <<addinlineevent "gwylan_watch_sea_nobody" .33>> <<set $daily.gwylan.noTalk to true>><<gwylanNobody 1>> <<set _noOptions to true>> You realise quickly that <<he>> seems more translucent than usual. <br><br> "<span class="witch-gone">I'm sorry,</span>" <<he>> says. <<His>> voice is hard to remember. "<span class="witch-gone">I'm not quite feeling myself today.</span>" <br><br> <<if _robinPresent>> <<set _noOptions to true>> <<person2>>Robin <<if C.npc.Robin.dom gte 80>>snaps <<his>> fingers<<else>>waves <<his>> hand<</if>> in front of your face. "Hellooo? Come on, we're going to be late for school if we don't go now." <br><br> Was that Robin's voice you heard earlier? Besides <<him>>, nobody's here. <br><br> <<awareness -10>><<trauma 9>><<lawareness>><<gtrauma>> <br><br> <<schoolicon "building">><<link [[Walk to school (0:10)|Gwylan Walk School Robin]]>><<pass 10>><<unset $cafe_study>><<storeon "cafe_balcony">><<set $phase to 2>><</link>> <br> <<getouticon>><<link [[Excuse yourself and go back inside (0:01)|Ocean Breeze]]>><<pass 1>><<unset $cafe_study>><<storeon "cafe_balcony">><<endevent>><</link>> <br> <<else>> You wonder who said that. You're the only one on the balcony, after all. Nobody is around. <br><br> <<if $location is "cafe" and !(between($chef_state, 7, 8) and $chef_rework lte 30)>> <<getouticon>><<link [[Go back inside (0:01)|Ocean Breeze]]>><<pass 1>><<unset $cafe_study>><<storeon "cafe_balcony">><<endevent>><</link>> <<elseif $location is "cafe">> <<getouticon>><<link [[Leave (0:01)|Cliff Street]]>><<pass 1>><<endevent>><<set $eventskip to 1>><</link>> <</if>> <br> <</if>> <</addinlineevent>> <<else>> <<addinlineevent "gwylan_watch_sea_blood_moon" .33>> <<set $daily.gwylan.noTalk to true>><<gwylanNobody 1>> <<set _noOptions to true>> <<He>> looks up at the sky. "The end of the month fills me with restless anticipation," <<he>> says. "It must be something in the water. The moon controls the tides, and the tides control me." <br><br> You look at <<him>>. <<He>> smiles, as if to reassure you. It feels hollow. Like if you looked too close, you'd fall into an endless void. <<stress 9>><<gstress>> <br><br> <<He>> turns back to the ocean. "I'm sorry, dear. I'm not feeling myself today. Come back tomorrow." <br><br> You make your exit. /* Robin variation here */ <br><br> <<if $location is "cafe" and !(between($chef_state, 7, 8) and $chef_rework lte 30)>> <<getouticon>><<link [[Go back inside (0:01)|Ocean Breeze]]>><<pass 1>><<unset $cafe_study>><<storeon "cafe_balcony">><<endevent>><</link>> <<elseif $location is "cafe">> <<getouticon>><<link [[Leave (0:01)|Cliff Street]]>><<pass 1>><<endevent>><<set $eventskip to 1>><</link>> <</if>> <</addinlineevent>> <</if>> <</if>> <<if Weather.precipitation isnot "none" and !$daily.gwylan_sea_talk_weather>> <<addinlineevent "gwylan_watch_sea_weather" 1>> <<set $daily.gwylan_sea_talk_weather to 1>> <<if Weather.precipitation is "rain">> "Do you like getting caught in the rain?" <<he>> asks. <br><br> <<if $uncomfortable.nude is true>> <<if $speech_attitude is "meek">> "I try not to get wet if I can avoid it," you admit. "People stare at me... and it makes me uncomfortable." <<elseif $speech_attitude is "bratty">> "People always stare at my <<chestsimple>> when my clothes get wet," you say. "I try not to get wet anymore." <<else>> "Not if I can help it," you say. "People like to stare." <</if>> <<else>> You blush. <<if $speech_attitude is "meek">> "Well... the rain is a good excuse to 'accidentally' show off," you say. <<elseif $speech_attitude is "bratty">> "It's a real dopamine rush, not knowing if I'll find cover in time," you say. <<else>> "I don't mind getting a bit wet, if that's what you're asking," you say. <</if>> <</if>> <br><br> <<He>> nods. "I love it. I'll sleep <<if $gwylanSeen.includes("partners")>><span class="lewd">naked</span> <</if>>in my garden whenever it rains. I feel nourished." <<if $gwylanSeen.includes("partners") and false>> /* Re-enable this when the ability to go to Gwylan's garden is added */ <<He>> pauses, <<his>> cheeks dusting pink. "If you want, you can stop by next time it's raining." <<npcincr Gwylan lust 1>><<glust>> <<else>> <<He>> smiles at you. "You should try it sometime." <</if>> <<elseif Weather.precipitation is "snow">> "I love this weather," <<if _robinPresent>>Gwylan<<else>><<he>><</if>> says. "There's something so satisfying about jumping into a snowbank. Like a blanket of cold. Did you ever do anything fun in the snow?" <br><br> You<<if _robinPresent>> and Robin<</if>> talk about all the snowball fights you had <<if _robinPresent>>together as children<<else>>as a child<</if>> before Bailey broke them up. Gwylan listens with a small smile. When you finish, <<he>> makes <<if _robinPresent>>three snowballs and hands one to each of you<<else>>two snowballs and hands one to you<</if>>. "Aim for that lamp post," <<he>> says. "First one to hit it wins." <br><br> <<if $rng lte 5>> <<generate3>> <span class="pink"><<if _robinPresent>><<print either("You accidentally hit", "Gwylan accidentally hits", "Robin accidentally hits")>><<else>><<print either("You accidentally hit", "Gwylan accidentally hits")>><</if>> a <<person3>><<person>> instead.</span> <<He>> yelps as cold snow soaks into <<his>> jacket. <<if _robinPresent>> The three of you duck under the railing before <<he>> sees you. You all giggle together. <<trauma -3>><<npcincr Robin trauma -1>><<ltrauma>><<lrtrauma>> <<else>> You both duck under the railing before <<he>> sees you. You both giggle. <<trauma -3>><<ltrauma>> <</if>> <<elseif random(-200, 1200) lt $athletics>> <span class="green">You manage to hit it first.</span> Gwylan leans forward and <<if $gwylanSeen.includes("partners")>>kisses you on the cheek<<else>>gives you a hug<</if>>. <<trauma -3>><<ltrauma>><<if _robinPresent and $gwylanSeen.includes("partners")>><<npcincr Robin dom -2>><<ldom "Robin">><</if>> <<elseif _robinPresent and $rng lte 50>> <span class="teal">Robin hits it first.</span> You <<person2>><<if $robinromance is 1>>lean forward and kiss <<him>> on the cheek<<else>>cheer for <<him>><</if>>. <<trauma -3>><<npcincr Robin love 1>><<ltrauma>><<glove "Robin" "simple">> <<else>> <span class="teal">Gwylan hits it first.</span> You <<if $gwylanSeen.includes("partners")>>lean forward and kiss <<him>> on the cheek<<else>><<if _robinPresent>>and Robin <</if>>cheer for <<him>><</if>>. <<trauma -3>><<ltrauma>> <</if>> <<else>> "How peculiar, I've never encountered this type of weather before," <<he>> says. <br><br> You look up, and see a large hole in the sky. <span class="red">Something's not right.</span> You feel that you should report this to a meteorologist, or somebody who can identify this phenomena, so it can be talked about with Gwylan. <br><br> ...In case it wasn't obvious already, this is a bug. <span class="teal">Please report.</span> <</if>> <br><br> <</addinlineevent>> <</if>> <<addinlineevent "gwylan_watch_sea_dog" 1>> <<endevent>> <<beastNEWinit 1 dog>><<npc Gwylan 2>><<person2>> <<if _robinPresent>>Gwylan<<else>><<He>><</if>> leans further out over the balcony. There's a <<beasttype 0>> biting at the leaves blowing in the wind. You smile at the sight. Gwylan smiles too.<<if _robinPresent>> Robin awws.<</if>> <<stress -4>><<lstress>><<if _robinPresent>><<npcincr Robin trauma -1>><<lrtrauma>><</if>> <br><br> <</addinlineevent>> <<if $chef_state>> <<addinlineevent "gwylan_watch_sea_sam" 1>> <<npc Sam 3>> You hear some footsteps behind you. Sam comes <<if !(between($chef_state, 7, 8) and $chef_rework lte 30)>>out onto the balcony<<else>>over and rests a hand on the railing<</if>>. <<person3>><<He>> smiles at you<<if _robinPresent>> and Robin<</if>> before turning to Gwylan. <<if !(between($chef_state, 7, 8) and $chef_rework lte 30)>> "Everything okay up here? Do you need anything?" <br><br> "Everything's fine," Gwylan says. <<if $gwylanSeen.includes("yearning")>><<person1>><<He>> takes your hand. <</if>>"Thank you for letting us up here, Sammy."<<if $gwylanSeen.includes("yearning")>> <<takeHandholdingVirginity "Gwylan" `(V.gwylanSeen.includes("partners") ? "romantic" : "consensual")`>><</if>> <br><br> "Any time!" Sam beams. "Gwylan is my best customer," <<person3>><<he>> tells you. <span class="lewd">"Always buying cream buns."</span> <br><br> <<if $gwylanSeen.includes("cafe_chef_truth") or $chef_speech is "truth">>Gwylan blushes and avoids looking at you.<<else>>Gwylan shrugs.<</if>> "What can I say? They're delicious." <br><br> "Next one is on the house," Sam says. <<He>> waves goodbye. Gwylan sighs. <br><br> "<<Hes>> such a sweetheart," <<person1>><<he>> says. <<person3>><<if $chef_state gte 9>>"I'm glad you helped <<him>> so much. The cafe is everything to <<him>>."<<else>>"<<He>> loves this cafe and wants to see it expand. I hope <<he>> can one day."<</if>> <<else>> "Everything okay out here?" <br><br> "Everything's fine," Gwylan says. <<if $gwylanSeen.includes("yearning")>><<person1>><<He>> takes your hand. <</if>>"I'm just missing my routine."<<if $gwylanSeen.includes("yearning")>> <<takeHandholdingVirginity "Gwylan" `(V.gwylanSeen.includes("partners") ? "romantic" : "consensual")`>><</if>> <br><br> "It won't be long! The renovations will be done before we know it," Sam beams. "Gwylan is my best customer," <<person3>><<he>> tells you. <span class="lewd">"Always buying cream buns."</span> <br><br> <<if $gwylanSeen.includes("cafe_chef_truth") or $chef_speech is "truth">>Gwylan blushes and avoids looking at you.<<else>>Gwylan shrugs.<</if>> "What can I say? They're delicious." <br><br> "When we re-open, first ones are on the house," Sam says. <<He>> waves goodbye. Gwylan sighs. <br><br> "<<Hes>> such a sweetheart," <<person1>><<he>> says. <<person3>> "I'm glad you're helping <<him>> so much. The cafe is everything to <<him>>." <</if>> <br><br> <</addinlineevent>> <</if>> <<addinlineevent "gwylan_watch_sea_sneeze" 1>> <<if _robinPresent>> <<if $rng gt 66>> Gwylan sneezes. The sudden noise makes you and Robin jump. Despite the surprise, it sounded cute. <<elseif $rng gt 33>> Robin sneezes. The sudden noise makes you jump. Gwylan reaches into <<his>> pocket and pulls out a handkerchief. <<He>> wipes Robin's nose before <<person2>><<he>> has a chance to. <<else>> You sneeze. Gwylan reaches into <<his>> pocket and pulls out a handkerchief. <<He>> wipes your nose before you have a chance to. <</if>> <<else>> <<if $rng gte 51>> <<He>> sneezes. The sudden noise makes you jump. Despite the surprise, it sounded cute. <<else>> You sneeze. <<He>> reaches into <<his>> pocket and pulls out a handkerchief. <<He>> wipes your nose before you have a chance to. <</if>> <</if>> <br><br> <</addinlineevent>> <<addinlineevent "gwylan_watch_sea_bird_yip" 1>> A bird lands right in front of <<if _robinPresent>>Gwylan<<else>><<him>><</if>>.<<if _gwylanTF.known and !_robinPresent>> <<His>> tail pops out and swishes.<</if>> <<He>> leans forwards until <<his>> hat threatens to fall off. <br><br> <<if $fox gte 6>> You yip at it. <<if _gwylanTF.known>> Gwylan yips too. <<if _robinPresent>> Robin looks bemused. <</if>> <</if>> <br><br> Startled, it flies away. <<else>> After watching it for a minute, it flies away. <</if>> <br><br> <</addinlineevent>> <<addinlineevent "gwylan_watch_sea_world" 1>> "Be careful out there," Gwylan says. "It's a dangerous world we live in." <br><br> <<if $trauma gte ($traumamax / 5) * 3>> You let your thoughts turn to the abuse you've suffered, and shiver. <br><br> <</if>> <<if _robinPresent and C.npc.Robin.trauma gte 80>> <<person2>>Robin fidgets in <<his>> seat. <br><br> <</if>> <</addinlineevent>> <<if !$gwylanSeen.includes("horse_fingers")>> <<addinlineevent "gwylan_watch_sea_horse" 1>> <<set $gwylanSeen.pushUnique("horse_fingers")>> "Horses run on bones not unlike our fingers," Gwylan says out of the blue. "That's why they can paw at the ground when they count." <br><br> <<He>> demonstrates using <<his>> pointer. You <<if $tending gte 400>>knew that already, but <<if _robinPresent>>Robin looks fascinated<<else>>enjoy the demonstration nonetheless<</if>>.<<else>>find it hard to believe, but trust that Gwylan must be right.<<if _robinPresent>> Robin looks fascinated.<</if>> <<tending 10>><<gtending>><</if>> <br><br> <</addinlineevent>> <</if>> <<addinlineevent "gwylan_watch_sea_song" 1>> <<if $seabird_lullaby gte 2>> <<if _robinPresent>>Gwylan<<else>><<He>><</if>> begins to hum <span class="teal">Seabird's Lullaby</span>. You join in with <<if $harpy gte 6>>your clear, beautiful voice<<else>>your best efforts to follow along<</if>>. You think <<hes>> happy for the company. <<else>> <<if _robinPresent>>Gwylan<<else>><<He>><</if>> begins to hum a <span class="teal">faintly familiar melody</span>. <</if>> <br><br> <<if _robinPresent>> <<person2>>Robin closes <<his>> eyes and listens intently. <<His>> shoulders start to relax. <<if $seabird_lullaby gte 2 and $harpy gte 6>><<npcincr Robin trauma -2>><<llrtrauma>><<else>><<npcincr Robin trauma -1>><<lrtrauma>><</if>> <br><br> <</if>> <</addinlineevent>> <<if $gwylan.robin gte 1 and !$weekly.gwylan_sea_talk_robin and !_robinPresent>> <<addinlineevent "gwylan_watch_sea_robin" 1>> <<set $weekly.gwylan_sea_talk_robin to 1>> <<if $gwylan.robin gte 10 or $gwylanSeen.includesAny("robin_cafe", "robin_cafe_trauma")>> "How's Robin doing?" <<he>> asks. <<else>> "How is your friend doing?" <<he>> asks. "Robin, right?" <<He>> smiles at you. <</if>> "You should bring <<nnpc_him "Robin">> to the shop <<if $gwylan.robinShop>>again<<else>>sometime<</if>>. I have plenty of outfits that would look good on <<nnpc_him "Robin">>." <br><br> <</addinlineevent>> <</if>> <<runeventpool>> <<if !$daily.gwylan.sea>> <<set $daily.gwylan.sea to true>> <<set $gwylan.sea++>> <</if>> <<if !_noOptions>> <<endevent>><<npc Gwylan>><<person1>> <<if _robinPresent>><<npc Robin 2>><<person1>><</if>> <<gwylanOptions>> <</if>> <</if>><<effects>><<run statusCheck("Gwylan")>><<set _robin to statusCheck("Robin")>> <<if $phase2 is 2 or $phase2 is 5 or $phase2 is 7>> /* Buy */ <<if $phase2 is 2>> /* Robin did nothing */ You signal for a <<person3>><<person>>. <<switch $speech_attitude>> <<case "meek">> "Hi... Err, could we have- um, order, some $phase please? F-for my friend, if it's not too much trouble?" you ask. <<case "bratty">> "Put in an order of $phase for my friend here, and make it snappy," you say. <<default>> "I'd like to order some $phase, thank you. It's for my friend," you say. <</switch>> You hand over the money. The <<personsimple>> nods and disappears into the cafe. <br><br> <<person2>>Robin smiles. "That's really sweet of you." <<elseif $phase2 is 5>> /* Robin tried to pay */ The <<person3>><<person>> quickly arrives at your table. "May I be of service?" <br><br> "Yes, I would like the $phase, thank you," Robin says. <<person2>><<He>> reaches into <<his>> wallet to pay, but you put your hand on <<hers>>. "I'll cover it." You pay the <<person3>><<personsimple>>. <br><br> Robin smiles and <<if $robinromance>>kisses you on the cheek<<else>>pulls you into a one-armed hug<</if>>. <<else>> /* Robin paid */ The <<person3>><<person>> quickly arrives at your table. "May I be of service?" <br><br> "Yes, I would like the $phase, thank you," Robin says, holding out a banknote. "Certainly, it'll be just a moment." The <<personsimple>> disappears into the cafe. <</if>> <br><br> <<person2>> <<switch $phase>> <<case "coffee">> The coffee arrives promptly, served with a light drizzle of creamer. <<if $robin.stayup is 2>> <<set $robin.stayup to 1>> Robin doesn't even wait for it to cool down. <<He>> downs the coffee like <<he>>'d been trapped in a desert the past week. "God, I really needed that.<<if $phase2 isnot 7>> Thank you.<</if>>" <<He>> sighs contentedly. <<else>> <<set $robin.stayup to 0>> "There's some schoolwork I need to get caught up on, so I could use the pick-me-up." <<He>> raises the cup. "Cheers." <</if>> <<case "fruity ale" "shandy" "autumn ale" "winter ale">> A tall glass of $phase arrives quickly. <<if _robin.trauma gte 60>> <<set $gwylanSeen.pushUnique("bad_day_drinking")>> Robin immediately takes a big gulp. <<He>> winces, then sets the glass down and coughs. "That's—" <<He>> coughs again. "That's strong..." <br><br> Despite that, <<he>> takes yet another gulp. Gwylan looks concerned. "Slow down, dear. You should really only drink to make a good day better, and no offense, but you don't seem to be having a good day." <br><br> "Huh? No, no, I'm having a lovely time. I'm here with my two best buddies. Life is great," Robin says. Gwylan smiles, but you see the concern in <<person1>><<his>> eyes. <<else>> Robin looks a little nervous as <<he>> inspects it. "I don't normally drink. This seems like a lot. <<switch $phase>> <<case "fruity ale" "shandy">>I do like fruit, though." <<case "autumn ale">>The colour reminds me of autumn, though." <<case "winter ale">>But hey, it looks festive!" <</switch>> <<He>> takes a sip. Immediately, <<his>> face scrunches up and <<he>> shakes <<his>> head. "Oh, that's strong." <<He>> takes a deep breath. <br><br> Gwylan watches in amusement. "You get used to it, and then you'll come to love it I guarantee you." <</if>> <<case "fruit salad">> After a brief moment, the salad arrives. <span class="red">TODO: Robin</span> <<case "gingerbread">> <<if $rng is 100>> A gingerbread man arrives promptly. Or rather, the <<person3>><<person>> arrives promptly with a gingerbread man on a plate. <<else>> The gingerbread arrives promptly. It's shaped like a little <<print either("man", "woman", "house", "dog", "cat", "cow")>>, and tastefully decorated with frosting. <</if>> <br><br> "They're so fun, these little shapes people make gingerbread into. Imagine if we did that with other food?" Robin giggles. "I'd be all for it.<<if $christmas and Time.monthDay is 25>> Merry Christmas!<</if>>" <<case "pancakes">> The pancakes arrive promptly, drenched in strawberry jam. <br><br> <span class="red">TODO: Robin</span> <<case "crepes">> The crepes soon arrive after a short wait. <br><br> <span class="red">TODO: Robin</span> <<case "deluxe cream bun">> <<set _gwylanKnows to $gwylanSeen.includes("cafe_chef_truth") or $chef_speech is "truth">><<set _face to $player.bodyliquid.face>><<set _mouth to $player.bodyliquid.mouth>> <<if _gwylanKnows>>Gwylan smirks at you. <</if>>The cream bun arrives after a few minutes, hot and ready, and packed with delicious creamy filling. Robin rubs <<his>> hands together as the food appears. <<if $chef_state>> "These look even better in person! It's a shame the price <<if $bun_value is 15000>>is through the roof<<else>>is so high<</if>>, or else I'd be eating them every day.<<if $phase2 isnot 7>> Thank you so much for getting me one!<</if>>" <<else>> "These always looked so good, but the price makes it hard to justify.<<if $phase2 isnot 7>> Thank you for getting me one!<</if>>" <</if>> <br><br> <<He>> lifts it up with both hands, closes <<his>> eyes, and takes a big, slow bite. When <<he>> lowers the bun, you realise that <<if $chef_state>> <span class="lewd"><<his>> entire lower face has been covered in cream</span>. <<arousal 600>><<garousal>> <<else>> <<his>> entire lower face has been covered in cream. <</if>> <br><br> <<if $chef_state>> You <<if _gwylanKnows>>and Gwylan <</if>>blush, trying to hold back laughter. Robin opens <<his>> eyes and looks at you befuzzled. "What? What's so funny?" <<He>> licks <<his>> mouth. <br><br> <<if _gwylanKnows>> You stare at Gwylan. <<person1>><<He>> stares back at you. It's too much. You both start giggling uncontrollably. It wasn't even that funny, but you're spurred on by each other's amusement. <br><br> Robin pouts. "Come on, tell me!" You struggle to create the words. All that comes out is a wheeze. You weakly point to <<person2>><<his>> mouth. "Oh! How clumsy..." Robin says, and tries to wipe it away. Instead, <<he>> just ends up <span class="lewd">smearing it out even more</span>. <<arousal 800>><<garousal>> <br><br> You clutch your stomach as tears well up in your eyes, pleading with Gwylan to please do something. <<pain 1>><<gpain>> <br><br> <<person1>><<He>> musters up the strength to produce a handkerchief from one of <<his>> pockets. <<He>> simply holds it out to Robin, who takes it and wipes the cream off. It takes several more minutes for you and Gwylan to sufficiently calm down. <<trauma -3>><<ltrauma>> <<if _face.goo + _face.semen + _face.nectar + _mouth.goo + _mouth.semen + _mouth.nectar gte 1>> <br><br> You were so focused on Robin's face that you had entirely forgotten your own face is just as messy. You feel pretty silly. <</if>> <<else>> Gwylan raises an eyebrow at you. "Indeed I wonder the same. Care to tell us, <<pcpetname "Gwylan" "my">>?" <<person1>><<he>> teases. <br><br> You point a finger at Robin's mouth. Gwylan shakes <<his>> head and produces a handkerchief. "It's just a little cream, silly <<girl>>." <<He>> wipes it off, and you soon come to your senses again. <<if _face.goo + _face.semen + _face.nectar + _mouth.goo + _mouth.semen + _mouth.nectar gte 1>> <br><br> You were so focused on Robin's face that you had entirely forgotten your own face is just as messy. You feel pretty silly. <</if>> <</if>> <<else>> "Let me take care of that, dear," Gwylan says, and pulls out a handkerchief. <<person1>><<He>> wipes Robin's cheeks and nose with it. "Those cream buns always get so messy. They're tasty of course, but I prefer to eat them with a knife and fork personally." <<if _face.goo + _face.semen + _face.nectar + _mouth.goo + _mouth.semen + _mouth.nectar gte 1>> <br><br> Once Robin's face is clean, <<he>> moves the handkerchief to yours. You had entirely forgotten about the gunk on yours, but it's wiped off just as quick. "There we are, two pretty little faces, all clean!" <<He>> boops both of you on the nose. <<bodyliquid "face" "all" -10>><<bodyliquid "mouth" "all" -2>> <</if>> <</if>> <<default>> The order arrives quickly. Robin looks surprised. "I didn't even know this was on the menu?" You shrug. "Must be one of those 'secret' menu items." <br><br> <<He>> digs in, and the rumbling hunger in <<his>> stomach soon subsides. <</switch>> <br><br> The three of you make some small talk as Robin finishes up. <<elseif $phase2 is 3 or $phase2 is 6>> /* Share */ You slide your $phase over to Robin. <<if $phase2 is 3>> /* Robin did nothing */ "Here. I'm full, so you can have the rest." <br><br> "Really? Are you sure?" <<he>> asks. You assure <<him>> it's fine. <<He>> hugs you. "Thank you! You're a great <<friend>>." <<else>> /* Robin tried to order */ "Save the money. I won't be finishing mine anyway, so it's yours if you want it." <br><br> <<He>> smiles. "Thank you! A small portion is actually plenty enough for me," <<he>> says. <</if>> <br><br> <<switch $phase>> <<case "coffee">> <<if $robin.stayup is 2>> <<set $robin.stayup to 1>> <<He>> downs the remainder of the coffee like <<he>>'d been trapped in a desert the past week. "God, I really needed that. Thank you." <<He>> sighs contentedly. <<else>> <<set $robin.stayup to 0>> "There's some schoolwork I need to get caught up on, so I could use the pick-me-up." <<He>> raises the cup. "Cheers." <</if>> <<case "fruity ale" "shandy" "autumn ale" "winter ale">> <span class="red">TODO: Robin</span> <<case "fruit salad">> <span class="red">TODO: Robin</span> <<case "gingerbread">> <span class="red">TODO: Robin</span> <<case "pancakes">> <span class="red">TODO: Robin</span> <<case "crepes">> <span class="red">TODO: Robin</span> <<case "deluxe cream bun">> <<He>> devours the remainder of the bun in almost record time. <<default>> <</switch>> <br><br> The three of you make some small talk as Robin finishes up. <<elseif $phase2 is 4>> /* Discourage */ <<set _success to (_robin.love + _robin.trauma - _robin.dom) gte random(20, 90)>> You glance at Robin with disapproval. <<He>> freezes up as <<he>> seems to sense your gaze. <br><br> You cross your arms. <<if $robinpaid is 1>> <<switch $speech_attitude>> <<case "meek">> "L-look, Robin. I understand that I'm paying for you and all, but your money's supposed to help ease that burden on me..." you admit. <<case "bratty">> "What do you think you're doing, huh? I work my ass off to support us both and yet here you are, throwing your money around without a care," you roar. <<default>> "It doesn't seem very fair that I'm paying for you, only for you to splurge on overpriced food. We need every penny we can get, you know," you sneer. <</switch>> <<elseif $robindebtknown is 1>> <<switch $speech_attitude>> <<case "meek">> "Um... pardon me, but don't you have a debt to cover too? I doubt Bailey's going to let you off easy if you're spending money at the cafe," you say. <<case "bratty">> "Robin, you fool. Did you never even consider that you still have a debt to pay off? Bailey's gonna be pissed if <<nnpc_he "Bailey">> finds out you spent it all here," you say. <<default>> "You're barely breaking even as it stands! Think, Robin. Do you really want to face Bailey's punishments again?" you say. <</switch>> <<else>> <<switch $speech_attitude>> <<case "meek">> "Robin, are you... are you sure you want to do that? The food here, it's not very... healthy," you say. <<case "bratty">> "Save your breath. This food is overpriced junk, you're better off just eating the food at <<if Time.schoolDay>>school<<else>>home<</if>>," you say. <<default>> "Hey, Robin, that's a lot of money for just some $phase. I really don't think it's worth it," you say. <</switch>> <</if>> <br><br> Robin turns to you. <<if _success>> <<He>> tries to say something, but stops <<himself>>, and lowers <<his>> head sheepishly. "<span class="green">Yeah, you're right...</span>" <<he>> sighs. "I just thought... nevermind." <br><br> The <<person3>><<person>> arrives. "Yes, did you need anything?" Robin shakes <<person2>><<his>> head. "No, sorry, it was nothing." The <<person3>><<personsimple>> rolls <<his>> eyes and walks away. <<else>> <<switch $phase>> <<case "coffee">><<set $robinmoney -= 2>> <<case "fruit salad">><<set $robinmoney -= 5>> <<case "gingerbread">><<set $robinmoney -= 6>> <<case "fruity ale" "shandy", "autumn ale", "winter ale">><<set $robinmoney -= 7>> <<case "pancakes" "crepes">><<set $robinmoney -= 10>> <<case "deluxe cream bun">><<set $robinmoney -= 50>> <<default>><span class="red">Error: Could not find $phase among the list of accepted food items. Please report.</span> <</switch>> <<His>> nose scrunches a bit. "<span class="red">But you're having $phase?</span> <<if $robinpaid>> <<if _robin.love gte 60 and _robin.trauma lt 60>> Just because you're paying my debt doesn't mean I'm not allowed to enjoy myself too..." <<elseif _robin.trauma lt 60>> I know you're paying for me, but I'm still my own person with wants and needs, so just let me have this." <<else>> Sure, you're paying for me, but that doesn't mean you control me. If you're going to hold that over my head then why did you even bother to take my debt in the first place?" <</if>> <<elseif $robindebtknown>> <<if _robin.love gte 60>> Look, you need to stop worrying about me so much. I can handle myself." <<else>> Look, I'm not a child. I can handle myself, and I don't appreciate you talking down to me." <</if>> <<else>> <<if _robin.love gte 60>> You're worrying over nothing." <<else>> Anyway, I can make my own purchasing decisions, thank you very much." <</if>> <</if>> <<npcincr Robin love -1>><<llove "Robin">> <br><br> You're unsure how to respond. The <<person3>><<person>> arrives. "Yes, did you need anything?" Robin nods. "One order of $phase, please," <<person2>><<he>> says, handing over the money. <br><br> The order soon arrives, and <<he>> enjoys it in silence. <</if>> <br><br> Gwylan plays with <<person1>><<his>> food, pretending not to hear anything. <</if>> <br><br> <<endevent "phaseless">><<npc Gwylan>><<npc Robin 2>><<person1>> <<if [2, 5, 7].includes($phase2) and $phase is "deluxe cream bun" and $chef_state>><<canvas-model-override "mouth" "smile">><<canvas-model-override "blush" 5>><<canvas-model-override "eyes_half" true>><<canvas-model-override "tears" 2>><</if>> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>> <<if $phase is 0>> You find Gwylan crouched in front of the <<person2>><<personsimple>>. <<person1>><<He>> pulls out a handkerchief and wipes away the <<person2>><<personsimple>>'s tears. <br><br> "You poor thing," <<person1>><<he>> says. "That looked like a nice ice cream. Was it a triple scoop?" <br><br> The <<person2>><<personsimple>> sniffs, and nods. Gwylan pats <<him>> on the head. <br><br> <<person1>><<He>> reaches behind the <<person2>><<personsimple>>'s ear and pulls out a large banknote. The <<personsimple>> stops crying. "Here, take this and buy yourself an even better one." <br><br> <<person1>><<He>> closes the <<person2>><<personsimple>>'s fist around the money. The <<personsimple>> stares at Gwylan. "This... this is so much money," <<he>> says. <<He>> gets to <<his>> feet with a watery smile. <<person1>>"<<print either("Thank you <<if $pronoun is 'm'>>mister<<else>>miss<</if>>!", "Yippee!", "You're the best!", "You're super nice, like my <<print either('dad', 'mum')>>.", "I will! Thank you.", "Th-thank you...", "You're really kind.", "<<print either('Father', 'Mother')>> told me not to talk to strangers, but... you seem alright!", "You're like, the coolest grown-up ever!", "Thank you. I... I like your hat.", "I'm gonna buy my <<print either('friend', 'brother', 'sister')>> one too!")>>" <<person2>><<He>> beams, and runs off in the direction of the boardwalk. <br><br> As Gwylan watches <<him>> go, you notice an expression on <<person1>><<his>> face so <<if $pronoun is "m">>fatherly<<else>>motherly<</if>> that you feel a tug in your chest. <<if Object.values(V.children).length>>Your mind wanders to your own child<<if Object.values(V.children).length gte 2>>ren<</if>>. <</if>><<He>> motions you back to the balcony. You hasten to follow. <br><br> <<endevent>><<npc Gwylan>><<person1>> <<gwylanOptions>> <<else>> You watch as Gwylan rushes to the <<person2>><<personsimple>>. <<person1>><<He>> spends quite a bit of time chatting. By the time <<he>> gives the <<person2>><<personsimple>> a light push, <<person2>><<hes>> already giggling. Gwylan waves as <<he>> skips away. <br><br> <<person1>><<He>> makes <<his>> way back to the balcony. There's an expression on <<his>> face so <<if $pronoun is "m">>fatherly<<else>>motherly<</if>> that you feel a tug in your chest. <<if Object.values(V.children).length>>Your mind wanders to your own child<<if Object.values(V.children).length gte 2>>ren<</if>>. <</if>><<He>> leans against the railing again. <br><br> <<if $gwylanSeen.includes("yearning")>> You reach out and take <<his>> hand. After a very long moment, <<he>> threads <<his>> fingers through yours. <<takeHandholdingVirginity "Gwylan" `(V.gwylanSeen.includes("partners") ? "romantic" : "consensual")`>><<npcincr Gwylan dom 3>><<ggyearning>> <br><br> <</if>> <<endevent>><<npc Gwylan>><<person1>> <<gwylanOptions>> <</if>><<effects>><<run statusCheck("Gwylan")>> <<if $phase is 0>> You lean forwards and kiss Gwylan. <<Hes>> surprised by your bold display, but smiles against your lips before kissing back. You only break apart to breathe. <<gwylanKiss>><<takeKissVirginity "Gwylan" `(isLoveInterest("Gwylan") ? "loveInterest" : "romantic")`>> <br><br> <<if $robinromance is 1>> Robin looks utterly horrified as <<person2>><<hes>> forced to watch it all unfold. <<npcincr Robin love -5>><<lllove "Robin">> <br><br> You snap out of it upon hearing a guttural noise and a rustle. You turn to see Robin's chair fallen over and the balcony door swinging back and forth. Robin <<himself>> is nowhere to be seen. <br><br> Gwylan bites <<person1>><<his>> lip. "I think you may have upset the <<person2>><<personsimple>>," <<person1>><<he>> says. <br><br> <<He>> pauses, and then flicks you on the nose. "Naughty <<pcpetname "Gwylan" "simple">>. You knew this would happen, didn't you? Let's hope for your own sake <<person2>><<hes>> the forgiving sort." <<unset $daily.robin_in_cafe>><<if $robin.timer.hurt is 0>><<set $robin.hurtReason to "you kissing Gwylan">><<set $robin.timer.hurt to 1>><</if>> <<endevent>><<npc Gwylan>><<person1>> <<else>> Robin completely deflates in <<person2>><<his>> seat as <<he>> watches your romantic display. /* Expand on this? */ <</if>> <<elseif $phase is 1>> You grab the back of Robin's head. Before <<person2>><<he>> even registers what you're doing you pull <<him>> into a deep kiss. <<takeKissVirginity "Robin" `(isLoveInterest("Robin") ? "loveInterest" : "romantic")`>> <br><br> <<He>> quickly melts in your embrace, savouring the taste of your lips on <<hers>>. <<npcincr Robin love 1>><<npcincr Robin lust 5>><<glove "Robin">><<glust "Robin">> <br><br> Gwylan frowns and slowly nods in approval when the two of you pull apart. "Looks like I still have things to learn," <<person1>><<he>> says. "You should teach me that technique sometime, <<pcpetname "Gwylan" "name">>." <br><br> <<He>> turns <<his>> gaze to Robin, then back at you, and giggles. "If you can convince your <<person2>><<if $robinromance is 1>><<personsimple>><</if>>friend, that is." <<else>> You choose to keep watching the couple. That kiss must have really fired them up, as they start fervorously groping at each other's bodies. <br><br> One of them suddenly tackles the other into the water like a wild beast in heat. Neither show a care in the world as the waves wash over them. <br><br> It's hard to see what they're doing at this point as they're both almost completely submerged, <<if $awareness gte 400>>but you have a pretty good idea, and it puts a big blush on your face. <<arousal 1000>><<ggarousal>><<elseif $awareness gte 0>>but it's clearly very lewd. You blush. <<arousal 600>><<garousal>><<else>>but it looks quite uncomfortable.<</if>> <br><br> Robin already looked away a long time ago, but Gwylan is still leaning over the railing in fascination. <<npcincr Robin lust 2>><<npcincr Gwylan lust 5>><<glust "Robin">><<glust "Gwylan">> <</if>> <br><br> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>> <<if $location isnot "forest_shop">> As you turn to leave, Gwylan suddenly grabs you by the wrist. "Wait. I have to know something." You turn to face <<him>> again. <br><br> <</if>> "I..." <br><br> <<He>> hesitates, and seems to lose <<his>> nerve. <<if $location isnot "forest_shop">><<He>> slowly releases your wrist.<</if>> <br><br> After a moment, <<he>> continues. <<if $location is "forest_shop">> "I'd like it if you could meet me <<if (between($chef_state, 7, 8) and ($chef_rework lte 30 or ($chef_rework is 31 and Time.hour gte 7)))>> on Cliff Street, next to the cafe <<else>> at the cafe <</if>> <<if Time.hour lt 7>> later. <<else>> tomorrow morning. <</if>> <<if $gwylan.sea gte 5>> I like watching the sea with you." <<else>> Come watch the sea with me." <</if>> <<else>> <<set $daily.gwylan.cafeSkip to true>> "I'd like it if you could come back again tomorrow morning. <<if $gwylan.sea gte 5>> I like watching the sea with you." <<else>> The company really helps." <</if>> <</if>> <br><br> <<He>> blushes. "That's all. Sorry for keeping you." <<gwylanRequestEnd "silent">> <<run gwylanRequest("meetAtCafe")>> <br><br> <<if $location is "cafe" and !(between($chef_state, 7, 8) and $chef_rework lte 30)>> <<link [[Next|Ocean Breeze]]>><<endevent>><</link>> <<elseif $location is "cafe">> <<link [[Next|Cliff Street]]>><<endevent>><<set $eventskip to 1>><</link>> <<else>> <<link [[Next|Forest Shop Entrance]]>><<endevent>><</link>> <</if>> <br><<effects>><<run statusCheck("Gwylan")>> <<set $gwylan.triumph to "spite">> <<switch $speech_attitude>> <<case "meek">> "I-I think everyone's out to get me," you say. "I don't... I don't want to let them win." <<case "bratty">> "Everyone is determined to knock me down," you say. "I'm determined to not give them the satisfaction of seeing me broken." <<default>> "It feels like everyone wants to hurt me," you say. "And I don't want to let them win." <</switch>> <br><br> Gwylan smiles sadly. "Well, I hope you know you're not alone in this fight of yours. I'll always be in your corner. If..." <<He>> pauses, trying to sort out <<his>> words. "If you ever stopped visiting, I'd miss our conversations. <span class="pink">I'd miss you.</span>" <br><br> <<link [[Say nothing|Gwylan Talk Struggles 2]]>><<set $phase to 1>><</link>> <br> <<link [[Say you'd miss Gwylan too|Gwylan Talk Struggles 2]]>><<set $phase to 2>><<npcincr Gwylan dom 1>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<set $gwylan.triumph to "survival">> <<switch $speech_attitude>> <<case "meek">> "What other choice do I have? If I stop, I'll just fade away," you say. <<case "bratty">> "It's not like I can just fall over and give up," you say. <<default>> "Survival is the only motivation I need," you say. "Everything else is secondary." <</switch>> <br><br> Gwylan thinks for a moment, before slowly nodding. "Many people think they'll be able to hold on through anything, but few are able to push through with sheer willpower alone. Eventually, something will break. The world won't make sense anymore, your head won't work right, your legs simply won't move no matter how hard you try. You must be very strong if that's all that's been pushing you on." <br><br> <<He>> cautiously smiles, and seems to be trying to sort <<his>> words. "Please be careful, and find something else to hold on for. If you ever stopped coming around, I'd miss our conversations. <span class="pink">I'd miss you.</span>" <br><br> <<link [[Say nothing|Gwylan Talk Struggles 2]]>><<set $phase to 1>><</link>> <br> <<link [[Say you'd miss Gwylan too|Gwylan Talk Struggles 2]]>><<set $phase to 2>><<npcincr Gwylan dom 1>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<set $gwylan.triumph to "optimism">> <<switch $speech_attitude>> <<case "meek">> "This too shall pass," you say. "All things do. I just have to keep my eyes forward, and I'll find a better future." <<case "bratty">> "There's a light at the end of this tunnel," you say. "A brighter future. I have to reach it, and to do that, I have to keep walking. If I can't walk, I'll crawl." <<default>> "Not every day will be rainy," you say. "I can make a better future. I know I can." <</switch>> <br><br> Gwylan stares at you, <<his>> head tilted and <<his>> mouth slightly open. <<He>> then giggles. "Incredible that you can say that after everything you've told me. You're strong, but still a little naive." <<He>> smiles. "Hold onto that. It's precious, and refreshing." <br><br> <<His>> smile slowly fades. "Take care not to break when that optimism crashes down. If you ever stopped coming around, I'd miss our conversations. <span class="pink">I'd miss you.</span>" <br><br> <<link [[Say nothing|Gwylan Talk Struggles 2]]>><<set $phase to 1>><</link>> <br> <<link [[Say you'd miss Gwylan too|Gwylan Talk Struggles 2]]>><<set $phase to 2>><<npcincr Gwylan dom 1>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<if Object.values(V.children).length is 1>> <<set $gwylan.triumph to "child">> <<getChildrenIds null "both">><<childSelect _childrenIds.last()>> <<switch $speech_attitude>> <<case "meek">> "I have a child. A <<childson>>, named <<childname>>. I can't leave <<childhim>> behind." <<case "bratty">> "I have a <<childson>>. I can't just leave little <<childname>> without a parent. There's enough orphans in this town." <<default>> "I have a <<childson>>," you say. "I have to be strong for little <<childname>>." <</switch>> <br><br> <<person1>>Gwylan puts a hand over <<his>> mouth, and almost looks like <<hes>> about to cry. <<childSelect _childrenIds.last()>> "You're better than most, wanting to stick by <<childhim>>. Thank you for thinking of <<childhim>>, because it's unlikely anyone else will. <<childHe>>'ll always love you, and <<childhe>>'d never be the same without you. If..." <<else>> <<set $gwylan.triumph to "children">> <<switch $speech_attitude>> <<case "meek">> "I have children. I can't leave them behind." <<case "bratty">> "I can't just leave my kids without a parent. There's enough orphans in this town." <<default>> "I have children," you say. "I have to be strong for them." <</switch>> <br><br> Gwylan puts a hand over <<his>> mouth, and almost looks like <<hes>> about to cry. "You're better than most, wanting to stick by them. Thank you for thinking of them, because it's unlikely anyone else will. They'll always love you, and they'd never be the same without you. If..." <</if>> <<He>> pauses, trying to sort out <<his>> words. "If you ever vanished, I'd miss our conversations. <span class="pink">I'd miss you, too.</span>" <br><br> <<link [[Say nothing|Gwylan Talk Struggles 2]]>><<set $phase to 1>><</link>> <br> <<link [[Say you'd miss Gwylan too|Gwylan Talk Struggles 2]]>><<set $phase to 2>><<npcincr Gwylan dom 1>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<set $gwylan.triumph to "orphans">> <<switch $speech_attitude>> <<case "meek">> "I have to be strong for the other orphans," you say. "They're the closest thing I have to a family." <<case "bratty">> "I need to be there for the other orphans," you say sternly. "Enough of us get broken every week." <<default>> "The other orphans need me," you say. "They're the closest thing I have to family." <</switch>> <br><br> Gwylan smiles. "That's awfully noble of you. I'm not surprised. I knew you had a good heart when I first saw you, and you know your place in the world well. I'm glad they have someone as strong as you to look out for them." <br><br> <<He>> returns <<his>> gaze to the ocean. "I had people to stick around for, too. People I couldn't leave behind. Not many left, though." <br><br> After a moment, <<he>> turns back to you. "Stay strong for them, and for me. If you ever stopped coming around, I'd miss our conversations. <span class="pink">I'd miss you.</span>" <<He>> pauses, <<his>> eyes closed, before saying softly, "Would you miss me, too, were I to disappear?" <br><br> <<link [[Yes|Gwylan Talk Struggles 2]]>><<set $phase to 2>><<npcincr Gwylan dom 1>><</link>> <br> <<link [[No|Gwylan Talk Struggles 2]]>><<set $phase to 3>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<set $gwylan.triumph to "kind">> <<switch $speech_attitude>> <<case "meek">> "I have people to protect," you say. "People more helpless than me." <<case "bratty">> "There are people that need protection, and a hand to lift them back up," you say. "Or else there will be nobody to pick me back up in return." <<default>> "There are others that need help more than I do, and no one else will do it," you say. <</switch>> <br><br> Gwylan smiles. "That's awfully noble of you. I'm not surprised. I knew you had a good heart when I first saw you, and you know your place in the world well. I'm glad there are still people like you around here." <br><br> <<He>> returns <<his>> gaze to the ocean. "I had people to protect, too. People I couldn't leave behind. Not many left, though." <br><br> After a moment, <<he>> turns back to you. "Stay strong for them, and for me. If you ever stopped coming around, I'd miss our conversations. <span class="pink">I'd miss you.</span>" <<He>> pauses, <<his>> eyes closed, before saying softly, "Would you miss me, too, were I to disappear?" <br><br> <<link [[Yes|Gwylan Talk Struggles 2]]>><<set $phase to 2>><<npcincr Gwylan dom 1>><</link>> <br> <<link [[No|Gwylan Talk Struggles 2]]>><<set $phase to 3>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<set $gwylan.triumph to "special">> <<switch $speech_attitude>> <<case "meek">> "Th-there's someone special that would miss me when I'm gone," you say. <<case "bratty">> "I'm important to someone who'd be heartbroken if I was gone," you say confidently. <<default>> "There's someone special to me, who'd miss me if I were to break," you say. <</switch>> <br><br> Gwylan chuckles. "If they're special to you, they must be impressive in their own right. You should bring them around some time, I'd like to meet them." <br><br> <<He>> returns <<his>> gaze to the ocean. "I had people to stick around for, too. People I couldn't leave behind. Not many left, though." <br><br> After a moment, <<he>> turns back to you. "Stay strong for them, and for me. If you ever stopped coming around, I'd miss our conversations. <span class="pink">I'd miss you, too.</span>" <<He>> pauses, <<his>> eyes closed, before saying softly, "Would you miss me, were I to disappear?" <br><br> <<link [[Yes|Gwylan Talk Struggles 2]]>><<set $phase to 2>><<npcincr Gwylan dom 1>><</link>> <br> <<link [[No|Gwylan Talk Struggles 2]]>><<set $phase to 3>><</link>> <br> <<link [[Say you were referring to <<him>>|Gwylan Talk Struggles 2]]>><<npcincr Gwylan dom 5>><<set $phase to 4>><</link>><<ggyearning>> <br><<effects>><<run statusCheck("Gwylan")>> <<set $gwylan.triumph to "revenge">> <<switch $speech_attitude>> <<case "meek">> "I've been hurt," you say quietly. "I need to hurt them back." <<case "bratty">> "I've been beaten. Violated. Tortured." Your fists clench. "I'm going to give it all back, and more. So, so much more." <<default>> "I have to make my own justice," you say. "There's people that have wronged me. Hurt me. Violated me. They must face consequences." <</switch>> <br><br> Gwylan stares ahead. "I remember a time when I was so fiery. It only keeps you going for so long. Every fire burns up the air around it. Eventually, there won't be any air left for you to breathe. You'll burn out, or consume all the fuel. What will be left at the end of that?" <<He>> looks back to you. <span class="red">"A pile of ashes."</span> <<He>> smiles. "Don't mistake my words. Wanting revenge is fine, but there must be more than that. It can't be all you live for." <br><br> <<He>> takes a deep breath, filling <<his>> lungs with the salty air. "I hope you know you're not alone in this fight of yours, either. I'll always be in your corner. If..." <<He>> pauses, trying to sort out <<his>> words. "If you burnt out like that, if you got your revenge and then faded away, I'd miss what we have. <span class="pink">I'd miss you.</span>" <br><br> <<link [[Say nothing|Gwylan Talk Struggles 2]]>><<set $phase to 1>><</link>> <br> <<link [[Say you'd miss Gwylan too|Gwylan Talk Struggles 2]]>><<set $phase to 2>><<npcincr Gwylan dom 1>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<set $gwylan.triumph to "divine">> <<if $angel gte 6 or $fallenangel gte 2>> "<<if $temple_confessor_intro>>Virgo<<else>>God<</if>> <<if $fallenangel gte 2>> must have given me wings for a reason, even if they're broken now. Perhaps I was meant to punish the sinners, or forgive them. Either way, I had purpose. Maybe I still do." <<trauma -3>><<ltrauma>> <<else>> must have given me wings for a reason. I belong here. Perhaps I'm meant to punish the sinners, or forgive them. Either way, I have purpose. I know I do." <<trauma -3>><<ltrauma>> <</if>> <br><br> Gwylan frowns. "It's comforting to think that way, isn't it? That some higher power is looking out for you? That someone will just make it all okay? Mother is the name for God on the lips and hearts of every child." <br><br> <<He>> sighs. <<if $fallenangel gte 2>> "Take care not to slip further. I'd hate to see you fall again." <<else>> "Take care not to lose those wings of yours. I'd hate to see you fall." <</if>> <<He>> pauses, and smiles. "But if you do... I'll be here to pick you back up. <span class="pink">I'd miss you too much otherwise.</span>" <<else>> "I have to uphold the Cloister's holy mission," you say. "We're protecting everyone." <br><br> <<He>> frowns. "It's comforting to put everything you have into faith in the divine, isn't it? To believe with all your heart that some higher power is looking out for you? That someone will just make it all okay? Mother is the name for God on the lips and hearts of every child." <br><br> <<He>> sighs. "Perhaps you can change things for the better. Many in your order would call me a heretic, an apostate, and..." <<His>> hands briefly clench. "I hope you don't begin to think of me that way. <span class="pink">I'd miss you terribly if you stopped coming around to share your stories.</span>" <</if>> <br><br> <<link [[Say nothing|Gwylan Talk Struggles 2]]>><<set $phase to 1>><</link>> <br> <<link [[Say you'd miss Gwylan too|Gwylan Talk Struggles 2]]>><<set $phase to 2>><<npcincr Gwylan dom 1>><</link>> <br><<set $gwylan.triumph to "lust">> <<if $demon gte 6>> "I laugh with the sinners. The saints can cry me a river," you say. "I must have been put here for a reason. Maybe this is some divine punishment. Maybe this is Hell. I might as well enjoy it, since I can't leave anyways." <<trauma -3>><<ltrauma>> <br><br> Gwylan frowns. "It's comforting to think that way, isn't it? That you're part of the problem, so the problem won't still hurt you? If you look deeper, you'll see the truth. All this pleasure is temporary, and the cost is great." <br><br> <<He>> sighs. "Take care, little imp. I'd hate to see you pass through real Hell." <<He>> pauses, and smiles. "But if you do... I'll jump in and drag you back out. <span class="pink">I'd miss you too much otherwise.</span>" <<elseif $auriga_scar>> "I saw something that I can't unsee," you start. "An eye in the blood moon. It was magnificent. It promised me things without words and left something on me. I want to see it again." <br><br> Gwylan winces. "Its promises are empty. As empty as you'll be when it's done with you. It won't comfort you, or fulfil you. It will <span class="red">devour</span> you. I hope you realise that before it's too late." <br><br> <<He>> sighs. "You aren't the first to think you'll be different, and you won't be the last. You'll end up in the Elk's gullet." <<He>> pauses, and smiles. "But in that case, I'll have to jump in and pull you back out. <span class="pink">I'd miss you too much otherwise.</span>" <<else>> "It's not all that bad," you say. "I get my share of the pleasure. I might as well enjoy it, since I can't leave anyways." <br><br> Gwylan frowns. "I didn't take you for a hedonist. It's comforting to think that way, isn't it? That you're part of the problem, so the problem won't hurt you? If you look deeper, you'll see the truth. All this pleasure is temporary, and the cost is great." <br><br> <<He>> sighs. "Take care, dear. This is Hell, and slipping deeper is no way to live." <<He>> pauses, and smiles. "But if you do slip deeper, I'll jump in and drag you back out. <span class="pink">I'd miss you too much otherwise.</span>" <</if>> <br><br> <<link [[Say nothing|Gwylan Talk Struggles 2]]>><<set $phase to 1>><</link>> <br> <<link [[Say you'd miss Gwylan too|Gwylan Talk Struggles 2]]>><<set $phase to 2>><<npcincr Gwylan dom 1>><</link>> <br><<set $gwylan.triumph to "innocent">> "I don't know what you mean. Is there anything particularly strange about what I've told you? Is getting all this attention not normal?" <br><br> Gwylan's eyes widen. "Oh, no. No no no, absolutely not." <<He>> starts shaking <<his>> head. "Meet me at the shop for the next ritual. Your eyes need to be opened, dear, and soon. Otherwise you'll be swallowed, and never even see it coming. I can't allow that. <span class="pink">I'd miss you too much.</span>" <br><br> <<link [[Say nothing|Gwylan Talk Struggles 2]]>><<set $phase to 1>><</link>> <br> <<link [[Say you'd miss Gwylan too|Gwylan Talk Struggles 2]]>><<set $phase to 2>><<npcincr Gwylan dom 1>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<set $gwylan.triumph to "curiosity">> <<switch $speech_attitude>> <<case "meek">> "There's something going on. Something big," you say. "Bigger than me. I need to know why everything is the way it is here. Why we have to suffer like this." <<case "bratty">> "There's something rotten going on in this town," you say. "Anyone could tell you that, but so many people act like it's normal. Why? Why does it feel like there's a big secret that everyone's in on except me?" <<default>> "I have too many questions," you say. "Why is this town is like this? Why does everyone act like its normal? Why do we have to suffer the way we do?" <</switch>> <br><br> Gwylan smiles sadly. "We have much in common. We're both far too curious for our own good. It's a dangerous thing, to poke one's nose into the bear's den like we do." <br><br> <<He>> places a hand on your shoulder. "I hope you continue returning here, to tell me what you've found. I promise you I'll keep remembering it all, so even if you never come back, these questions won't fade away in your absence. Don't take that as an excuse to be reckless, though. If you ever stopped coming around, I'd miss our conversations. <span class="pink">I'd miss you.</span>" <br><br> <<link [[Say nothing|Gwylan Talk Struggles 2]]>><<set $phase to 1>><</link>> <br> <<link [[Say you'd miss Gwylan too|Gwylan Talk Struggles 2]]>><<set $phase to 2>><<npcincr Gwylan dom 1>><</link>> <br><<set $gwylan.triumph to "unknown">> "I..." you continue thinking, but nothing comes to mind. "I don't know. I just keep going." <br><br> Gwylan smiles patiently. "It's alright. Sometimes the sheer determination to keep going is enough, but not for long. Think on it some more. Find out what it is that you value, and cherish." <br><br> <<He>> pauses. "I cherish our conversations. The stories you entrust me with. I hope you find something worth holding on for soon, because <span class="pink">I'd miss you if you gave up and vanished on me.</span>" <br><br> <<link [[Say nothing|Gwylan Talk Struggles 2]]>><<set $phase to 1>><</link>> <br> <<link [[Say you'd miss Gwylan too|Gwylan Talk Struggles 2]]>><<set $phase to 2>><<npcincr Gwylan dom 1>><</link>> <br><<set $gwylan.triumph to "desolate">> "I... don't want to," you say. A lump forms in your throat. "I don't want to anymore. I just want to lie down and..." <br><br> Gwylan stands and pulls you into a tight hug. "You wouldn't be standing here if you truly wanted to give up. You're stronger than you know. Don't give up now. Not after coming so far." <<He>> pets the top of your head. <<trauma -2>><<stress -2>><<lstress>><<ltrauma>> <br><br> <<He>> gently turns your head to look to the sea. "It's so tempting, isn't it? To let the waves pull you under? To embrace oblivion? That wouldn't be the end. It would be too easy. As things are now, there is no bottom to reach." <br><br> <<He>> sits back down. "I don't want to see you break. I cherish our conversations. The stories you entrust me with. I hope you find something worth holding on for soon, because <span class="pink">I'd miss you if you gave up and vanished on me.</span>" <br><br> <<link [[Say nothing|Gwylan Talk Struggles 2]]>><<set $phase to 1>><</link>> <br> <<link [[Say you'd miss Gwylan too|Gwylan Talk Struggles 2]]>><<set $phase to 2>><<npcincr Gwylan dom 1>><</link>> <br><<effects>><<run statusCheck("Gwylan")>><<set $daily.gwylan.cafeSkip to true>><<set $daily.gwylan.locked to true>> <<if $phase is 2>> /* player would miss Gwylan */ Gwylan smiles again. "That's an unfortunate burden to carry, but... thank you." <<elseif $phase is 3>> /* player would not miss Gwylan */ Gwylan smiles again. "Good. Let your heart remain unburdened." <<elseif $phase is 4>> /* player says they're holding on for Gwylan */ <<set $gwylan.triumph to "Gwylan">> <<switch $speech_attitude>> <<case "meek">> "I was... talking about you," you say shyly. <<case "bratty">> "I know you'd miss me, you were the one I was talking about," you say. <<default>> "I was talking about you," you say. <</switch>> <br><br> Gwylan stares at you, <<his>> expression entirely neutral. "That's nonsense. You hardly know me." <<He>> waves off your comment. <<if $hypnosis_traits.devotion gte 1>> "It's just the side effects of the hypnosis talking." <</if>> <</if>> <<His>> eyes get cloudy and dim as <<he>> watches the waves. "I'm sorry, but I'd like to be alone for a little while. I'll see you soon, though? I could use your help at the shop again, when the time comes." <br><br> <<if $location is "cafe" and !(between($chef_state, 7, 8) and $chef_rework lte 30)>> You turn to leave once again, returning to the inside of the cafe. <<else>> You turn to leave again, returning to Cliff street. <</if>> <br><br> <<set $gwylan.sea++>> <<if hasSharpSenses("hearing")>> <span class="teal">Your <<= hasSharpSenses("hearing")>> catch Gwylan's whispering.</span> <<He>> must think you're out of earshot. You listen in. <br><br> "<<pShes>> ready. I'm sure of it.<br> The faintest rumble answers <<him>>.<br> <<if $auriga_scar>> "Yes, even with the scar. <<pShes>> not the only one so marked." <<else>> "Don't 'I told you so' me, I needed to be sure."<br> <</if>> The waves crash against the shoreline.<br> "Yes, <span class="blue">next time</span>, I promise." <br><br> You wonder who <<hes>> talking to. <<else>> A shiver runs down your spine. You hear Gwylan whispering, but it's too faint to make out. You try to listen, but only manage to catch the end of it. <br><br> "<span class="blue">Next time</span>, I promise." <</if>> <br><br> <<set $daily.gwylan.preventProgress to true>> <<if $location is "cafe" and !(between($chef_state, 7, 8) and $chef_rework lte 30)>> <<if $daily.robin_in_cafe and Time.schoolDay>> <<getouticon>><<link [[Meet with Robin outside (0:01)|Gwylan Talk Struggles Meet Robin]]>><<pass 1>><<set $phase to 0>><<endevent "phaseless">><<unset $cafe_study>><<storeon "cafe_balcony">><</link>> <<elseif $daily.robin_in_cafe>> <<getouticon>><<link [[Meet with Robin inside (0:01)|Gwylan Talk Struggles Meet Robin]]>><<pass 1>><<set $phase to 1>><<endevent "phaseless">><<unset $cafe_study>><<storeon "cafe_balcony">><</link>> <<else>> <<getouticon>><<link [[Go back inside (0:01)|Ocean Breeze]]>><<pass 1>><<endevent>><<unset $cafe_study>><<storeon "cafe_balcony">><</link>> <</if>> <<else>> <<getouticon>><<link [[Leave (0:01)|Cliff Street]]>><<pass 1>><<endevent>><<set $eventskip to 1>><<unset $cafe_study>><<storeon "cafe_balcony">><</link>> <</if>><<effects>><<npc Robin>><<person1>> <<if $phase is 0>> <<set $outside to 1>> You spot Robin <<if Weather.precipitation is "rain">>under an awning<<else>>next to a streetlight<</if>>. <<He>> looks a little confused when you approach. <br><br> "Where's Gwylan?" <<he>> asks. "Is <<nnpc_he "Gwylan">> not coming with us?" <br><br> <<switch $speech_attitude>> <<case "meek">> "S-sorry, <<nnpc_he "Gwylan">> told me <<nnpc_he "Gwylan">> needed some time alone," you explain. <<case "bratty">> "Yeah, apparently not. <<nnpc_He "Gwylan">> got all mysterious and asked to be left alone," you say, shrugging. <<default>> "It would appear so. I think <<nnpc_he "Gwylan">> just wanted some space," you say. <</switch>> Robin looks a little worried, so you assure <<him>> that Gwylan's not upset with any of you. <br><br> "Okay, well... you'll still walk with me though, right?" <<he>> asks. <br><br> <<schoolicon "building">><<link [[Walk to school (0:10)|Gwylan Walk School Robin]]>><<pass 1>><<set $phase to 2>><</link>> <br> <<clifficon>><<link [[Make an excuse and leave (0:01)|Cliff Street]]>><<pass 1>><<endevent>><</link>> <<else>> You spot Robin by the counter. <<He>> looks to be waiting eagerly for <<his>> order. <br><br> <<He>> notices you as you approach. "Hey, what's up? You gonna order something too?" <br><br> <<switch $speech_attitude>> <<case "meek">> "Actually... Gwylan told me <<nnpc_he "Gwylan">> needed some time alone," you admit. <<case "bratty">> "Nope. Gwylan got all mysterious and asked to be left alone," you say, shrugging. <<default>> "No, but, I think Gwylan wants some space right now," you say. <</switch>> Robin looks a little worried, so you assure <<him>> that Gwylan's not upset with any of you. <br><br> "Sticky toffee pudding!" a voice calls out. "Here!" Robin replies. "Actually, could you put that in a bag for me? I'd like it to-go." <br><br> <<He>> turns back to you. "I guess I'll be heading back home then," <<he>> says with a hint of disappointment. But <<he>> perks up upon receiving <<his>> order. "Still, free dessert!" <br><br> <<link [[Next|Ocean Breeze]]>><<endevent>><</link>> <</if>><<effects>><<run statusCheck("Gwylan")>> <<if $phase is 1 or $phase is 2 and $hypnosis_traits.devotion gte 1 and !$willpowerSuccess>> <<set $gwylanSeen.pushUnique("cafe_chef_truth")>> <<if $phase is 2 and $hypnosis_traits.devotion gte 1 and !$willpowerSuccess>> You try to keep yourself quiet. <span class="red">You feel scolding disappointment wash over you, despite Gwylan's continued smile.</span> You can't help it. <span class="red">You tell <<him>> everything.</span> <<stress 6>><<gstress>> <<else>> You tell Gwylan that the key is in the cream, and exactly how you make it. <</if>> <br><br> <<if $gwylanSeen.includes("player_fluids_taste") and !$gwylanSeen.includes("player_fluids_realisation")>> <<set $gwylanSeen.pushUnique("player_fluids_realisation")>> <<He>> listens closely, <<his>> smile gradually fading into a look of realisation. "So that's why you taste so familiar," <<he>> says. <<else>> <<He>> listens closely, <<his>> smile gradually fading into an expression of pondering. <</if>> "Fascinating. Using your own bodily fluids." <<He>> starts to grill you for more details, such as your diet and any medications you take. <br><br> <<He>> gives you a satisfied smile when <<hes>> done. <<if C.npc.Gwylan.dom gte 15>> "<<pcPetname "Gwylan" "good">>, being so honest with me," <<he>> says, patting you on the head. <<if $hypnosis_traits.devotion gte 1>> <span class="witchbloom">It fills you with bliss.</span> <<stress -6>><<trauma -6>><<lstress>><<ltrauma>> <br><br> <</if>> <<else>> "Thank you. Your secret is safe with me." <<He>> pats you on the head. <</if>> <span class="pink">"I may ask you for a sample in the future."</span> <<He>> lightly caresses your shoulder as <<he>> walks by. <<arousal 500>><<garousal>> <<else>> <<if $hypnosis_traits.devotion gte 1>> <span class="green">You block out the compulsion.</span> <</if>> <<switch $speech_attitude>> <<case "meek">> "I-I can't tell," you say. "It's a secret recipe." <<case "bratty">> "I'm not giving my secret recipe away for anyone," you say, crossing your arms. "It's nothing personal." <<default>> "You're right, it's a secret. I can't reveal it," you say. <</switch>> <br><br> Gwylan pouts. "Very well. I'll squeeze it out of you one day." <<He>> brushes your shoulder as <<he>> walks by. <<His>> choice of words makes you wonder if <<he>> already knows, and just wanted to hear you say it. <</if>> <br><br> <<link [[Next|Cliff Street]]>><<endevent>><<set $eventskip to 1>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<set $gwylanSeen.pushUnique("gwylan_ears_talk")>> <<switch $speech_attitude>> <<case "meek">> "What's with those... fox ears?" you ask. "On your hat? They look so real." <<case "bratty">> "What's with those fox ears on your hat?" you ask. "It seems random to sew them on like that, and it's a little uncanny how real they look." <<default>> "What's with the fox ears on your hat?" you ask. "They look realistic, and they match your hair." <</switch>> <br><br> <<if $halloween is 1 and $gwylanSeen.includes("halloween")>> <<He>> reaches up and rubs them. <<else>> <<He>> grabs the hat from the mannequin, and puts it on. <<He>> rubs the ears. <</if>> "All the better to hear you with, my dear." <br><br> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>> <<set $gwylanSeen.pushUnique("gwylan_tail_talk")>> <<switch $speech_attitude>> <<case "meek">> "Why do you wear a fake tail?" you ask. <<case "bratty">> "What's with the tail?" you ask. "I saw you wearing it." <<default>> "I saw your tail," you say. "Why do you wear that?" <</switch>> <br><br> <<He>> blushes. "That's... I just like to dress up," <<he>> says. <br><br> "I saw it move," you say. "By itself, like a real one." <br><br> <<He>> stares at you. "I'm afraid you're mistaken." <br><br> <<if $awarelevel gte 2 and $settings.analEnabled and C.npc.Gwylan.penis is "none">> <<switch $speech_attitude>> <<case "meek">> "Is... is it a fetish thing? Like a buttplug?" <<case "bratty">> "Oh, I get it. It's a buttplug." <<default>> "Is it a fetish thing? A buttplug?" <</switch>> <br><br> "No!" <<he>> says. <br><br> A long moment of silence passes over you. <br><br> "...Yes," <<he>> finally relents. <</if>> <br><br> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>> <<set $gwylanSeen.pushUnique("gwylan_fangs_talk")>> <<switch $speech_attitude>> <<case "meek">> "Your canines are really pointy," you say nervously. <<case "bratty">> "Why the hell are your canines so sharp?" you say. <<default>> "Your canines are so sharp," you say. <</switch>> <<if $gwylanSeen.includes("hair_pull_bite")>> "They hurt. A lot." <<else>> "I saw them." <</if>> <br><br> <<if $gwylanSeen.includes("hair_pull_bite")>> <<He>> crosses <<his>> arms and grins. "Don't go breaking my rules and you'll never have to feel them down there again. All the better to eat you with, my dear." <<He>> licks them. <<else>> <<He>> blushes and covers <<his>> mouth. "It's rude to point out things like that," <<he>> says. "Yes, my teeth are sharp. All the better to eat you with if you keep prodding, my dear." <</if>> <br><br> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>> You remember what you saw. The tail. <<His>> teeth. Those ears on <<his>> hat. It might have been nothing, but what if it wasn't? <br><br> "I always wondered why you wear that big witch hat, with the ears. Are you hiding something?" You reach up for Gwylan's head. <br><br> <<He>> backs away, covering it. "I'm afraid I don't know what you're talking about," <<he>> says. <br><br> <span class="blue">It's obvious now.</span> <br><br> <<if $gwylanTalked.includes("transformation")>> "You talked about how the inner self can show up on the outside. <<else>> "You talked about my inner self, but what about you? <</if>> <<if $fox gte 6>> You're just like me, aren't you? You're a fox, too." <<else>> You were talking about yourself, too, weren't you?" <</if>> <br><br> <span class="teal"><<His>> eyes widen slightly.</span> <br><br> "No, I just like to dress up, I..." <<He>> pauses, and takes a deep breath. <<He>> looks you up and down, and after a long moment, seems to come to a decision. "Very well. <span class="green">You're clever.</span>" <br><br> <<He>> ducks under the counter, and starts to rummage around for something. <br><br> <<link [[Next|Gwylan Talk TF Revealed]]>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<set $gwylanSeen.pushUnique("gwylan_tf_revealed")>> <<He>> stands back up, holding a silver hand mirror. <<He>> holds it in front of <<his>> face, between the two of you so you can't see it. <br><br> <<He>> spends a moment adjusting <<his>> hair, and you hear <<him>> take another deep breath before lowering the mirror. <br><br> <span class="pink">A pair of fox ears sit atop <<his>> head, perfectly matching the colour of <<his>> hair.</span> <br><br> <<if $gwylanSeen.includes("romance")>> <<He>> crosses <<his>> arms and looks away. "It took you long enough to notice," <<he>> says. "This is why I was so hesitant about... us. Every instinct in my body tells me to find a mate for life, which wasn't possible for me." <<elseif $gwylanSeen.includes("yearning")>> <<He>> crosses <<his>> arms and looks away. "Do you understand, now? Do you understand why I can't let us become... more?" <<He>> points to <<his>> ears. "Every instinct in my body tells me to find a mate for life, something I can't have. Something you and I can't be." <<if $transformationParts.traits.mateForLife isnot "disabled">> <br><br> <<if $fox gte 6 and $transformationParts.fox.ears isnot "hidden">> <<He>> places a hand on your chest, and rubs your fox ears with the other. "I found some solace, knowing that you were bound by those same instincts. I feel as though you may be the only person that truly understands me. So please, my dear kin. Spare us both this pain. Please." <<npcincr Gwylan dom 5>><<ggyearning>> <<elseif $harpy gte 6 and $transformationParts.bird.plumage isnot "hidden">> <<He>> places a hand on your chest, right in the middle of your plumage. "My dear birdie, are you not bound by those same instincts? Spare us both this pain. Please." <<else>> <<He>> places a hand on your chest. "I know you understand, because you have those same instincts, don't you?" <</if>> <</if>> <<else>> <<He>> blushes as you stare at them, looking away. "Satisfied now?" <</if>> <br><br> <<link [[Keep staring|Gwylan Talk TF Revealed 2]]>><</link>> <br> <<link [[Stop|Gwylan Talk TF Revealed Stop]]>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> You keep staring. <<His>> arms cross. "I only showed you because I trust you. I hope you're grateful." <br><br> <<if $fox gte 6>> <<switch $speech_attitude>> <<case "meek">> "S-sorry, I just didn't think there were other foxes like me," you say. <<case "bratty">> "Why did you hold out on me? I didn't think there were other foxes like me, I thought I was alone," you say. <<default>> "I didn't think there were other foxes like me," you say. "I'm at a loss for words." <</switch>> <<elseif $wolfgirl gte 6 or $cat gte 6 or $cow gte 6 or $harpy gte 6 or $fallenangel gte 2 or $angel gte 6 or $demon gte 6>> <<switch $speech_attitude>> <<case "meek">> "S-sorry, I just didn't think there was anyone else like me," you say. <<case "bratty">> "I'm at a loss for words. I didn't think there was anyone else like me," you say. <<default>> "I didn't think there was anyone else like me," you say. <</switch>> <<else>> <<switch $speech_attitude>> <<case "meek">> "I-I am, I'm just surprised," you say. <<case "bratty">> "I am, but I'm at a loss for words," you say. <<default>> "I am, I'm just surprised," you say. <</switch>> <</if>> <br><br> <<He>> grumbles. <br><br> <<link [[Keep staring, and say they're cute|Gwylan Talk TF Revealed 3]]>><</link>> <br> <<link [[Stop staring|Gwylan Talk TF Revealed Stop]]>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> You keep staring. <br><br> "Are you quite done? I have customers to attend to," <<he>> says. The shop is completely empty save for the two of you, as usual. <br><br> <<switch $speech_attitude>> <<case "meek">>"Th-they're cute," you say. <<case "bratty">>"They're so cute, though!" you say. <<default>>"They're really cute," you say. <</switch>> <br><br> <<His>> blush deepens. "I know they are." <br><br> <<if hasSexStat("promiscuity", 2)>> <<link [[Ask to see Gwylan's tail too|Gwylan Talk TF Revealed Tail]]>><</link>><<promiscuous2>> <<else>> <<insufficientStat "promiscuity" "to ask to see Gwylan's tail">> <</if>> <br> <<link [[Stop staring|Gwylan Talk TF Revealed Stop]]>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<switch $speech_attitude>> <<case "meek">> "C-can I see your tail, too?" you ask. <<case "bratty">> "Don't hold out on me, show me your tail, too," you say. <<default>> "Can I see your tail too?" you ask. <</switch>> <br><br> <<if $gwylanSeen.includes("yearning") and C.npc.Gwylan.lust gte 25>> <<He>> grins through <<his>> blush, and turns around, <span class="lewd">lifting the skirt of <<his>> apron and tunic. <<Hes>> not wearing any underwear. You get a clear view of <<his>> <<npcGenitals 0>>, and a tail.</span> <<promiscuity2>> <<His>> tail sways back and forth. It looks very fluffy. "I hope you enjoyed the view," <<he>> says, quickly fixing <<his>> clothes. <br><br> <<else>> <<He>> huffs, but slowly turns around. A fox tail sways back and forth, poking through <<his>> clothes. It looks very fluffy. "Don't make me regret this, please." <<promiscuity2>> <</if>> <<if hasSexStat("promiscuity", 3)>> <<link [[Touch it|Gwylan Talk TF Revealed Tail 2]]>><<npcincr Gwylan lust 2>><</link>><<glust>><<promiscuous3>> <<else>> <<insufficientStat "promiscuity" "to touch Gwylan's tail">> <</if>> <br> <<link [[Stop staring|Gwylan Talk TF Revealed Stop]]>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> You gently touch <<his>> tail. <<promiscuity3>> Gwylan freezes up. <br><br> You start to run your hands up and down, <<if $fox gte 6>> knowing exactly where to pet. It's very similar to your own tail. <<else>> enjoying how soft it is. <</if>> <br><br> Gwylan pushes your hands away after a moment. "A-alright, quit molesting me," <<he>> says. "<span class="blue">I suppose there's no point in hiding it around you anymore,</span> so at least ask before touching, please." <br><br> <<endevent>><<npc Gwylan>><<person1>> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>> You stop staring. <<He>> seems relieved. "<span class="blue">I suppose there's no point in hiding it around you anymore.</span> I've kept your secrets, so I hope you'll keep mine, too." <br><br> <<endevent>><<npc Gwylan>><<person1>> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>> <<set $brownFoxRevealed to true>> You hold up the fox mask. "Gwylan, could you put this on for a moment?" <br><br> <<His>> head tilts curiously. <<if _gwylanTF.revealed and $gwylanSeen.includes("partners")>> "Oh, up for a bit of role playing, are you, <<pcpetname "Gwylan">>?" <<His>> ears twitch in amusement. <<else>> "I suppose so. It's only fair I put on something you request for once." <</if>> <<He>> dons the mask. <br><br> Your suspicions are confirmed. The colour is off, but all that's missing is a green cloak. <<He>> looks just like the brown fox. <<He>> smiles, seeming to sense your realisation. "I thought you'd never catch on. What gave it away?" <br><br> <<if $gwylanSeen.includes("romance")>> "I could practically feel it," you say. "I know your smell, too." <br><br> <<He>> blushes, and tries to suppress looking giddy with limited success. "Aww, aren't you a sweetheart." <<elseif $brownFoxWoundedHint>> "I saw the <<if _gwylanStatus.includes("wounded")>>bandages<<else>>scar<</if>> on your leg," you say. "It's a bit too much of a coincidence." <br><br> <<He>> nods. "I knew you were sharp. It's not like I could hide it forever." <<else>> "I know you," you say simply. "Did you think I'd forget?" <br><br> <<He>> frowns. "Most do." <<He>> leans forward, placing <<his>> head in <<his>> hand. "So it was the hypnosis, then. How troublesome." <</if>> <<He>> takes the mask back off. "Regardless, the brown fox and Gwylan must remain two separate entities. Keep it secret for me, would you, <<pcpetname "Gwylan">>?" <br><br> <<if $brownFoxCoverBlown>> You open your mouth to speak, but <<he>> interrupts you. <<if _gwylanStatus.includes("cautious")>> "Surely you don't want to blow my cover again. You'll owe me for that, dear. My leg still aches where the High Elk stabbed me." <<else>> "Surely you don't want to blow my cover again. My leg still aches where the High Elk stabbed me." <<He>> looks serious for only a moment, and starts smiling again. "It's alright. You've already more than made up for it." <</if>> <br><br> <</if>> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>> <<set $brownFoxMaskTalk to true>> "Is the brown fox mask really for concealing your identity? Do they really not know who you are by now?" <br><br> <<He>> giggles. "It's easier if they suspect some masked vigilante. If they started suspecting otherwise..." <<he>> pauses. "They might start making some connections. Dangerous ones." <br><br> "So why a fox mask specifically?" you ask. <br><br> <<He>> looks down. "It's symbolic. I want them to see the face of their victims biting back." <<He>> rubs the cheek of the mask. "When I wear this, I'm not Gwylan. I'm every single victim of the elks and hounds. I'm their vengeance." <<His>> hands clench slightly. "No one else will give it to them. The Cloister will just make them suffer more, use them as... vessels. Us foxes only have each other." <br><br> <<He>> puts the mask on. "That's what the brown fox symbolises." <<if $avery_fate is "ascended">> <<He>> looks away, concealing a frown. "I don't blame you for what happened. I know how hard it can be to say no, to keep struggling when it only brings more bruises. It isn't too late, but the path ahead is dark, so expect to find dark things. No matter what, us foxes need to look out for each other." <<elseif $avery_mansion.fox.progress gte 12 or $gwylanSeen.includes("ritual_sex")>> <<He>> looks away, and you catch the faintest blush beneath <<his>> mask. "I'm glad you're here with me, <<pcpetname "Gwylan" "name">>. I've worked alone for far too long." <<npcincr Gwylan dom 1>><<gyearning>> <</if>> <br><br> <<gwylanOptions>> <!-- End Gwylan talks --><<effects>> <<npc Gwylan>><<person1>> You approach the table Gwylan's sitting at. <br><br> There's a half-finished drink next to <<him>>, and <<his>> face is tucked into <<his>> arms on the table. <br><br> <<if numberOfEarSlime() and $earSlime.growth gte 80 - ($earSlime.promiscuity * 10)>> <span class="red">You feel the slime in your head command you to leave <<him>>.</span> The command is weak, almost desperate. <br><br> <</if>> <<link [[Wake <<him>>|Gwylan Pub Sulking Sit]]>><<set $phase to 1>><</link>> <br> <<link [[Sit next to <<him>>|Gwylan Pub Sulking Sit]]>><<set $phase to 2>><</link>> <br> <<link [[Leave <<him>> to sulk|Pub]]>><<endevent>><</link>> <br><<effects>> <<set $gwylanSeen.pushUnique("yearning_pub")>> <<if $phase is 1>> You reach towards Gwylan to wake <<him>>. <br><br> <span class="red"><<His>> hand grabs your wrist as it gets close.</span> <br><br> "No, you can't buy me a drink." <<else>> You sit down next to Gwylan. <br><br> "That seat was taken," <<he>> mumbles into <<his>> arms. <</if>> <br><br> <<He>> slowly rolls <<his>> head to look at you. "Oh. Hello dear." <<He>> looks very upset. The light in <<his>> eyes is gone. <<His>> face is rosy, but it's hard to tell if it's from the alcohol. <<His>> expression quickly changes to one of jubilation. <<if $phase is 1>> <<He>> pulls your wrist, forcing you to sit. <<else>> <<He>> motions for you to sit closer. <</if>> <br><br> "I'm happy to see you. I missed your face." <<He>> giggles unsettlingly. "As if I'm not seeing enough of it on the back of my eyelids." <br><br> <<link [[Ask if <<hes>> okay|Gwylan Pub Sulking Ask]]>><<set $phase to 1>><</link>> <br> <<link [[Hug <<him>>|Gwylan Pub Sulking Ask]]>><<set $phase to 2>><</link>> <br> <<link [[Say nothing|Gwylan Pub Sulking Ask]]>><<set $phase to 3>><</link>> <br><<effects>> <<if $phase is 1>> <<switch $speech_attitude>> <<case "meek">>"Are you... okay? I've never known you to be a drinker," you say. <<case "bratty">>"I didn't expect to see you in the cups," you say. "Are you alright?" <<default>>"Are you alright? This doesn't look very healthy," you say. <</switch>> <br><br> <<He>> scoffs. "Concerned about my health, now? Where was that concern when you were breaking my rules?" <<elseif $phase is 2>> You wrap your arms around <<him>>. <<He>> freezes up. <br><br> After a moment, <<he>> hesitantly returns it, but pushes you away just as quickly. "I don't need you getting the wrong idea again." <<else>> You say nothing. <br><br> <<He>> stares at you, <<his>> head slowly tilting. "Oh dear, the hypnosis is still in effect, is it?" <<He>> snaps <<his>> fingers in front of your face a few times. "Waaaake up." <</if>> <br><br> <<if $gwylanSeen.includes("bad_day_drinking")>> "You told me you should only drink to make a good day better," you respond. <br><br> <<He>> groans. "I did say that, didn't I?" <<He>> takes another swig of <<his>> drink. "I've never been better, dear. I'm just peachy. Right as rain. Hanging like a criminal." <<He>> pinches your cheek. It hurts. <<pain 2>><<gpain>> <br><br> <</if>> <<if $gwylanSeen.includes("bad_day_drinking") or $phase is 1>> <<He>> smiles, but it doesn't reach <<his>> ears. "Your concern is adorable, but I have a very high tolerance. Did you really come here looking for me like a lost puppy?" <<He>> pets the top of your head. <<else>> <<He>> pets the top of your head. "You're adorable, coming and looking for me like a lost puppy." <</if>> <<His>> tone is a little patronising. <br><br> <<link [[Apologise|Gwylan Pub Sulking Apologise]]>><</link>> <br> <<link [[Leave <<him>> to sulk|Gwylan Pub Sulking Leave]]>><</link>> <br><<effects>> You stand up and step away from <<him>>. <br><br> <<He>> waves you off. "Good, leave me be. I said I didn't ever want to see..." <<He>> chokes up. "I..." <br><br> <<His>> head lands in <<his>> arms again. "J-just go away." <br><br> <<set $gwylan.timer.scorned to new DateTime($gwylan.timer.scorned).addDays(3).timeStamp>> <<link [[Next|Pub]]>><<endevent>><</link>> <br><<effects>> <<switch $speech_attitude>> <<case "meek">>"I'm really sorry for... kissing you," you say. "I didn't think it would upset you this much." <<case "bratty">>"Are you really this upset over a kiss? I'm sorry, alright?" <<default>>"I'm sorry. With how many people try to kiss me all the time, I didn't think kissing you would upset you this much." <</switch>> <br><br> <<He>> starts to play with your hair. "I set the rules clearly. You not knowing the consequences doesn't give you an excuse." <<He>> starts to hum as <<he>> twirls your hair around <<his>> finger. "Rotten <<girl>>, rotten <<girl>>. I spoiled you too much and you got too bold. It's really my own fault, isn't it?" <<He>> giggles. <br><br> "I know why you're here." <<He>> tugs your hair, but stops just short of pulling a few strands out. <<He>> throws <<his>> leg over your lap and straddles you, before grabbing your wrists and pining you back against the wall. <br><br> "Rotten... naughty <<girl>>." <span class="pink"><<He>> leans forward and kisses you.</span> Cheers erupt from the other side of the pub as <<his>> tongue slips into your mouth. <br><br> <<link [[Push away|Gwylan Pub Sulking Kiss]]>><<set $phase to 1>><</link>> <br> <<link [[Return it|Gwylan Pub Sulking Kiss]]>><<set $phase to 2>><</link>> <br><<effects>><<set $gwylanSeen.pushUnique("yearning_pub_kiss")>> <<if $phase is 1>> You easily push Gwylan away, prompting <<him>> to squeak in surprise. <<takeKissVirginity "Gwylan" "rape">> <br><br> <<He>> stays sitting in your lap, and wraps <<his>> arms around you. "It's not so fun, is it?" <<He>> tucks <<his>> head into your shoulder. "You are so very irritating, <<pcpetname "Gwylan">>. You're the one that did this." <<else>> You start to return the kiss, wrapping your arms around Gwylan. <<takeKissVirginity "Gwylan" "romantic">> <br><br> After a moment, <<he>> withdraws with a gasp. <<He>> grabs your cheeks with one hand. "You're insatiable." <</if>> <br><br> <<He>> hums and rocks back and forth, but slows down as the tension in <<his>> body fades. <br><br> <<He>> suddenly pulls away and stands up, <<his>> face beetroot-red and looking more sober. <<His>> shoulders sink. "Oh, dear. I'm really making a mess of this now." There's shame in <<his>> voice as <<he>> turns away. <br><br> The noise of the pub dies down for a moment. <br><br> <<He>> looks over <<his>> shoulder at you. <<Hes>> giving you <<his>> old cheery smile, but there's an exhausted sadness behind it. "I'm sorry. Give me a few days to sort myself out, dear. We'll talk about this when the time is right." <br><br> <<He>> quickly leaves the pub. <<ggyearning>> <br><br> <<set $gwylan.timer.scorned to new DateTime($gwylan.timer.scorned).addDays(-3).timeStamp>> <<link [[Next|Pub]]>><<endevent>><</link>> <br><<effects>> You approach the window. There's a crow pecking at the glass. <span class="purple">It's looking right at you.</span> <br><br> There's something tied around its neck. You look closer. It's a piece of paper, <span class="purple">and it has your name on it</span>. <br><br> You open the window. It caws at you, but sits still. You take the paper and unfold it. It's fragrant. <br><br> <<link [[Read it|Gwylan Yearning Letter 2]]>><</link>> <br><<effects>> <span class="narration"> Hello, dear. <br><br> I'm sending my sincerest apology for snapping at you and kicking you out of the shop. I won't invent any justifications for my outburst. I've reflected over these passing days, and the simple truth is that it's boring around here without you to tell me your stories. I don't have many friends, and you are a dear one to me. <br><br> I miss you, is what I'm saying. <<if $gwylan.scratchDoor gte 3>> All your scratching at the shop's door didn't help. <</if>> <br><br> <<if $gwylanSeen.includes("yearning_pub")>> I'm also sorry about what happened at the pub. <<if $gwylanSeen.includes("yearning_pub_kiss")>> It was irresponsible of me, and I've gone and made everything more complicated now. <<else>> In case it wasn't obvious, you leaving me there was actually the last thing I wanted. I'm sorry for pushing you away like that. <</if>> <br><br> <</if>> If you find it in your heart to forgive me, come by the shop soon. If not, please come by anyways. There's something important I wish to discuss, and it's urgent. <br><br> Still here,<br> <<ind>>~ Gwylan </span> <br><br> The crow caws at you again as you finish reading. <br><br> <<link [[Tell it to tell Gwylan you'll be there|Gwylan Yearning Letter 3]]>><<set $phase to 1>><</link>> <br> <<link [[Give it back the letter|Gwylan Yearning Letter 3]]>><<set $phase to 2>><</link>> <br> <<link [[Shoo it away|Gwylan Yearning Letter 3]]>><<set $phase to 3>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<if $phase is 1>> <<switch $speech_attitude>> <<case "meek">>"Tell Gwylan I'll be there," you say to the crow. <<case "bratty">>"Fine. I'll come by," you say to the crow. <<default>>"Alright, I'll come by when I have time," you say to the crow. <</switch>> <br><br> It caws at you, and flies off. <<elseif $phase is 2>> You carefully tie the letter back around its neck. It caws at you, and flies off. <<else>> You shoo it away. It caws at you, and flies off. <</if>> <br><br> <<run gwylanRequest("yearning")>> <<link [[Next|$yearningLetterExit]]>><<endevent>><<set $yearningLetter to 2>><<unset $yearningLetterExit>><</link>> <br><<effects>> <<npc Gwylan>><<person1>> You enter the shop. There's a strange, musty smell in the air. <<hallucinogen 40>> <br><br> You can barely see in front of you. You run right into a shelf, which causes a ?gwylanItem to fall from above and hit you on the head. <<pain 3>><<gpain>> <br><br> You start to feel your way around, and call out. "Gwylan? Are you home?" <br><br> You hear the clacking of wood in response. <br><br> <<link [[Follow it|Gwylan Yearning Start 2]]>><<set $phase to 0>><</link>> <br> <<link [[Avoid it|Gwylan Yearning Start 2]]>><<set $phase to 1>><</link>> <br><<effects>> <<if $phase is 0>> You follow the sound. It's moving away from you, but only moves when you get close. <br><br> Finally, you bump into a mannequin. <<stress 3>><<gstress>> <br><br> It's posed in a mime of sobbing, its head in its hands. Another stands next to it, a hand on its shoulder, trying to comfort it. <br><br> A third stands beside them. It wears a black tunic with a white cross, as well as an emotionless white mask. It points to its left. You follow its arm, and find a dark doorway leading to a staircase. You see a faint light at the top. <<else>> You try avoiding the sound, but it seems to be following you. You can only hear it when you have a distinct way forward, though. As if it's guiding you by its lack of presence. <br><br> You eventually find a doorway leading to a staircase. You see a faint light at the top. <</if>> <br><br> <<link [[Climb|Gwylan Yearning Climb]]>><</link>> <br><<effects>> You start to climb the stairs. After nine steps, you realise that the staircase is curved. <br><br> You rub your eyes. You can still see a light straight ahead, but there should be a wall there. You reach forward, and feel smooth glass. There must be a mirror on the wall, reflecting the light from above. <br><br> You continue up, feeling your way along the wall. Not being able to see in front of or behind you makes you nervous and claustrophobic. <<stress 3>><<gstress>> <br><br> <<silently>><<dancedifficulty 300 800>><</silently>> <span class="red">You trip on the next step.</span> <<if $danceSuccess>> Luckily, <span class="green">you don't need your eyes to recover from a stumble.</span> You have experience thanks to all the dancing you've done. You take two controlled steps down, and stop your momentum. <<else>> <span class="red">You flail blindly,</span> and grab onto something. It's large and solid. You're almost certain whatever it is wasn't there before, because it's right behind where you were standing. <<stress 9>><<ggstress>> <</if>> <br><br> You orient yourself, and start to shimmy along the wall again. There's something wrong, though. <span class="blue">The wall's curve seems to be going in the opposite direction.</span> You're moving down now instead, as if the stairs were suddenly mirrored. <br><br> <<link [[Turn around and make sure you're going up|Gwylan Yearning Ascend]]>><</link>> <br> <<link [[Keep going down|Gwylan Yearning Descend]]>><</link>> <br><<effects>> You keep going down. <br><br> You exit in far fewer steps than it took you to get to where you were, and emerge in an unfamiliar room. Dim embers glow in an old furnace. It's just bright enough that you can tell it's a kitchen of some kind. That's your best guess, at least, with all the cutlery hanging around you. <br><br> There's another door here, and it's already open. You peek inside, and see <span class="red">three glowing eyes staring back at you</span>. <<stress 12>><<ggstress>> <br><br> You step back on instinct, but fall and land on your bottom. The door creaks open further. <br><br> The glow vanishes as more light enters the room beyond. On the wall straight ahead is an elk's skull, fashioned into a mask. Each of its antlers ends in three prongs. <br><br> Directly below it is a brown fox mask with a third eye on its forehead. Next to it, clasped to the wall, is a blade with a sudden curve near the end. It looks like a billhook, but its handle is broken. It reflects the dim light. <br><br> All around them are charms made of twigs, as well as countless hanging outfits that you've never seen in the main part of the shop. Many of them look ceremonial. There's nothing else in the room, so you turn around and head back up the stairs. <br><br> You manage to avoid tripping this time. After a long climb, your foot comes down hard, expecting another step where there is none. You're on a level surface. There's a bit of light here, creeping through the edges of a doorframe. <br><br> <<link [[Enter|Gwylan Yearning Door]]>><<set $phase to 0>><</link>> <br> <<link [[Knock first|Gwylan Yearning Door]]>><<set $phase to 1>><</link>> <br> <<set $skulduggerydifficulty to 800>> <<link [[Peek inside|Gwylan Yearning Door]]>><<set $phase to 2>><</link>><<skulduggerydifficulty>> <br><<effects>> You turn around, making sure you're still going up, even if it doesn't make sense. <br><br> Finally, your foot comes down hard, expecting another step where there is none. You're on a level surface. There's a bit of light here, creeping through the edges of a doorframe. <br><br> <<link [[Enter|Gwylan Yearning Door]]>><<set $phase to 0>><</link>> <br> <<link [[Knock first|Gwylan Yearning Door]]>><<set $phase to 1>><</link>> <br> <<set $skulduggerydifficulty to 800>> <<link [[Peek inside first|Gwylan Yearning Door]]>><<set $phase to 2>><</link>><<skulduggerydifficulty>> <br><<effects>><<run statusCheck("Gwylan")>> <<if $phase is 0>> <<set _seenRoom to true>> You turn the knob, and hear someone gasp in surprise on the other side. You enter to see an ornate bedroom. Gwylan stands in front of a vanity, rummaging around frantically before turning around. <br><br> "You really need to learn how to knock!" <<He>> crosses <<his>> arms, closing a drawer behind <<him>>. "It's fine, you've already broken in once. Come in and shut the door behind you." You step inside. <<elseif $phase is 1>> You knock on the door. You hear some rummaging around on the other side, followed by Gwylan's voice. "Come in." You enter. <<else>> There's no keyhole, so you open the door very slowly to take a peek. <<skulduggerycheck>> <<if $skulduggerysuccess>> <<set _seenRoom to true>> <span class="green">You open the door in complete silence, just enough to see inside.</span> It's an ornate bedroom. Gwylan stands in front of a vanity, looking down at a small object. <br><br> It's a pocketwatch on a chain. A very fancy one, too. It looks warped, but otherwise it's shiny and cared for. There's a snowflake etched into the glass. <br><br> You quietly close the door, and knock. You hear <<him>> rummage around for a moment. "Come in." You enter properly. <<else>> <span class="red">The door creaks.</span> You hear someone on the other side gasp in surprise, and back away from the door. <br><br> You hear some rummaging around, followed by Gwylan's voice. "It's okay, you can come in." You step inside. <</if>> <</if>> <br><br> <<if !_seenRoom>> It's a spacious, ornate bedroom. Gwylan stands in front of a vanity, and shuts a drawer behind <<him>> as you enter. <<else>> The room is spacious. <</if>> The bed, covered in frilly red and green blankets, has a canopy and curtains. The view from the solitary window suggests you're quite high up, as you can see some of the treetops. This must be the shop's tower, although it looks like it could be even higher than that somehow. <br><br> There are wardrobes and shelves full of books and knick-knacks littering the walls, leaving the smooth brickwork behind almost entirely covered. <br><br> Gwylan's wearing a strange outfit. It's a frilly <<if $pronoun is "m">>suit<<else>>dress<</if>> that looks straight out of the Victorian era. <<if _gwylanTF.known>> There's a wrapping around the back that allows <<his>> tail to poke out freely. <</if>> <br><br> "I'm glad you came," <<he>> says. <<Hes>> smiling, <span class="blue">but you can tell by the redness around <<his>> eyes that <<hes>> been crying</span>. "I seem to have forgotten to turn the lights on in the rest of the shop. I hope it wasn't too hard to find me." <br><br> <<set $yearningTalk to {}>> <<set $yearningTalk.increase to -15>> <<if $gwylanSeen.includes("yearning_pub_kiss")>> <<set $yearningTalk.increase += 5>> <</if>> /* Store yearning changes until end of scene when the stat is revealed and the breakpoint is passed */ <<link [[Ask <<him>> why <<he>> was crying|Gwylan Yearning Talk Cry]]>><<set $yearningTalk.cry to true>><</link>> <br> <<link [[Ask <<him>> why <<hes>> wearing such unusual clothing|Gwylan Yearning Talk Clothes]]>><<set $yearningTalk.clothes to true>><</link>> <br> <<link [[Ask <<him>> what was so urgent|Gwylan Yearning Talk Urgent]]>><<set $yearningTalk.urgent to true>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<switch $speech_attitude>> <<case "meek">>"Are you okay? You look so sad." <<case "bratty">>"You look pretty miserable," you say. "Are you okay?" <<default>>"Is everything alright? You look like you've been crying." <</switch>> <br><br> <<if _gwylanTF.known>> <<His>> face reddens, and <<his>> tail sways back and forth. <<else>> <<His>> face reddens. <</if>> "Yes, I'm alright," <<he>> says. <<He>> falters, though. "Sorry, I didn't have time to put on concealer before you got here." <br><br> You cross your arms. <br><br> "Okay, fine. My... grand<<father>> isn't long for this world. <<Hes>> very sick, and I don't think <<hes>> going to wake up again. It's got me in shreds." <<He>> pauses. "That's only half of it, though." <br><br> <<if $yearningTalk.cry and !$yearningTalk.hug>> <<link [[Hug <<him>>|Gwylan Yearning Talk Hug]]>><<set $yearningTalk.hug to true>><<set $yearningTalk.increase++>><</link>> <br> <</if>> <<if !$yearningTalk.clothes>> <<link [[Ask <<him>> why <<hes>> wearing such unusual clothing|Gwylan Yearning Talk Clothes]]>><<set $yearningTalk.clothes to true>><</link>> <br> <</if>> <<link [[Ask <<him>> what was so urgent|Gwylan Yearning Talk Urgent]]>><<set $yearningTalk.urgent to true>><</link>> <br><<effects>> You wrap your arms around Gwylan and hug <<him>> tightly. <<He>> tenses up and looks surprised, but returns it. After a moment, <<his>> embrace tightens. <br><br> You release <<him>>, but <<he>> holds on to you for a moment longer before letting go. "Thank you for that. I needed it." <br><br> <<if !$yearningTalk.clothes>> <<link [[Ask <<him>> why <<hes>> wearing such unusual clothing|Gwylan Yearning Talk Clothes]]>><<set $yearningTalk.clothes to true>><</link>> <br> <</if>> <<link [[Ask <<him>> what was so urgent|Gwylan Yearning Talk Urgent]]>><<set $yearningTalk.urgent to true>><</link>> <br><<effects>> <<switch $speech_attitude>> <<case "meek">>"Why are you wearing such old clothing?" <<case "bratty">>"Look at you, a <<personsimple>> out of time." <<default>>"What are you wearing?" <</switch>> <br><br> <<He>> smiles. "It's my grand<<father>>'s. I was reminiscing. I have big shoes to fill." <br><br> It fits <<him>> very well for being inherited. <br><br> <<if !$yearningTalk.cry>> <<link [[Ask <<him>> why <<he>> was crying|Gwylan Yearning Talk Cry]]>><<set $yearningTalk.cry to true>><</link>> <br> <<elseif $yearningTalk.cry and !$yearningTalk.hug>> <<link [[Hug <<him>>|Gwylan Yearning Talk Hug]]>><<set $yearningTalk.hug to true>><</link>> <br> <</if>> <<link [[Ask <<him>> what was so urgent|Gwylan Yearning Talk Urgent]]>><<set $yearningTalk.urgent to true>><</link>> <br><<effects>> <<switch $speech_attitude>> <<case "meek">>"What was the urgent thing you mentioned in your letter?" <<case "bratty">>"So, what was so urgent that made you want to see my rotten face again?" <<default>>"Did something happen? You mentioned something urgent in your letter." <</switch>> <br><br> <<He>> turns around, putting both hands on <<his>> vanity and looking down. <<Hes>> silent for a long moment. <br><br> "It's something selfish. You... broke me," <<he>> says quietly. "I had that rule for a reason. I can't handle intimacy or romance. Sex is one thing. Do it enough and there's no intimate connection anymore." <br><br> <<He>> turns to face you again. "You crossed those wires in my head again, though. The way you've been cosying up to me certainly didn't help, nor does the fact that you're just so... interesting." <<He>> smiles weakly. "I needed you to come back, because we need to set the record straight on what you and I are." <br><br> <<link [[Listen quietly|Gwylan Yearning Regret]]>><<set $phase to 0>><</link>> <br> <<link [[Apologise|Gwylan Yearning Regret]]>><<set $phase to 1>><</link>> <br> <<link [[Tell <<him>> you don't see what the problem is|Gwylan Yearning Regret]]>><<set $phase to 2>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<if $phase is 0>> You listen quietly. <<elseif $phase is 1>> "I'm sor—" Gwylan puts a finger to your lips. <br><br> "I'm not asking for an apology, dear. Let me speak." <<else>> "I don't see—" Gwylan puts a finger to your lips. <br><br> "I know you don't, so let me explain." <</if>> <br><br> <<He>> paces back and forth. "This isn't a path we can walk together, dear. One day, you won't come back. Or, you'll come around, and I won't be here anymore." <<He>> takes a deep breath, and snaps <<his>> fingers. "Just like that. Gone. We'll move on and forget. It's easier to do that if things remain simple between us." <<His>> head tilts slightly. "That's only if we're lucky, though. The more likely outcome is one of us getting chewed up into something unrecognisable. Then we can't move on. We'll be stuck trying to piece each other back together. Forever. That's worse than death." <br><br> <<His>> voice is monotone as <<he>> looks you in the eyes. "I called you here because I want you to tell me that your kiss meant nothing. I want you to tell me that it was just done in the heat of passion, and that you and I are not, and will never be, more than friends." <br><br> <<He>> looks away, as if ashamed. "For both of our sakes. <span class="red">Love bites can break skin</span>, and we've both been bitten plenty." <br><br> <<link [[Tell <<him>> what <<he>> wants to hear|Gwylan Yearning]]>><<set $phase to 0>><<set $yearningTalk.increase-->><</link>><<lyearning>> <br> <<link [[Tell <<him>> you don't know what it meant|Gwylan Yearning]]>><<set $phase to 1>><</link>> <br> <<link [[Tell <<him>> you won't lie to <<him>>|Gwylan Yearning]]>><<set $phase to 2>><<set $yearningTalk.increase++>><</link>><<gyearning true>> <br><<effects>><<run statusCheck("Gwylan")>> <<if $phase is 0>> "Fine. It meant nothing, it was just something silly I did in the heat of the moment," you say. <br><br> <<He>> stares at you, as if trying to measure your honesty. <<He>> doesn't seem satisfied. <<elseif $phase is 1>> "I... don't know what it meant," you say. "It just felt like the right thing to do at the time." <br><br> <<He>> huffs, disappointed. <<else>> "I won't lie to you just to make you feel better," you say. "It—" <br><br> <<He>> places a hand over your mouth. "Don't. Please." <</if>> <<He>> looks away from you after a moment, but takes a step forward <<if _gwylanTF.known>> and points to the fox ears on <<his>> head. "Do you know what these mean?" <<His>> voice is getting louder. "<span class="pink">Every instinct in my body screams to find a partner for life.</span> <<else>> and points to a small sculpture on a nearby shelf. It depicts two foxes tumbling over one another. "<span class="pink">Many foxes pair for life.</span> <</if>> <<if $transformationParts.traits.mateForLife isnot "disabled">> I know you understand the feeling, but do you truly understand what 'for life' means? That's forever, dear. <<else>> That's forever, dear. Do you have any idea how long that really is? <</if>> You aren't ready for forever. You're barely ready for right now." <br><br> <<He>> stops, and sighs. <<He>> takes another step towards you. "No. It isn't you. If one of a mated pair meets an early end, especially before they have kits, <span class="red">it's not uncommon for the other to die of a broken heart</span>." <br><br> Another step, and <<he>> puts a finger under your chin. "<span class="purple">Mine is already broken,</span> because I was never allowed what I craved. What I <i>needed</i>. Worse, it was dangled in front of me like the sweetest nectar, before being ripped away, over and over, each time worse than the last. Did you think you were my first lay? My first friend? Did you think you would be my first loss? Do you think yours are the first stories and memories I have to carry forever?" <<His>> voice trembles. <br><br> "I have nothing to give you. This can't even begin, nevermind end. Do you understand? <span class="red">I <i>can't</i> let myself go through this again.</span>" <br><br> <<He>> takes a step back, only now realising that <<hes>> backed you into the corner. "I'm sorry. This is my fault to begin with. The hypnosis, over time, can have effects like this. I told you I didn't want things to change between us. You're my friend. I don't want to lose you just because of some fake, hypnosis-induced puppy love. So, please. Tell me it meant nothing and mean it, so we can go back to the way things were." <br><br> <<link [[It meant nothing|Gwylan Yearning Revealed]]>><<set $phase to 0>><<set $yearningTalk.increase -= 15>><</link>><<lllyearning>> <br> <<link [[Stay silent|Gwylan Yearning Revealed]]>><<set $phase to 1>><</link>> <br> <<link [[It meant something important|Gwylan Yearning 2]]>><<set $yearningTalk.increase += 5>><</link>><<ggyearning true>> <br><<effects>><<run statusCheck("Gwylan")>> <<set $gwylan.yearnResponse to "important">> "I'm sorry, but it meant something. I wouldn't have kissed you otherwise." You grit your teeth. "I don't often get to choose who I do lewd things with, and when I do, I don't usually get to control what exactly we do. I felt safe enough with you to show you affection, by my own choice." <br><br> <<His>> fists clench. "You're making this very difficult for me, dear." <br><br> "You calling me 'dear' all the time doesn't help either!" <br><br> <<He>> grabs you by the wrists. "I know it's my own fault you're feeling this way. I didn't prepare you for the hypnosis enough, and I didn't set the boundaries for what our relationship can be." <span class="pink"><<He>> pulls you towards <<his>> bed.</span> "I know you already understand that sex is not love, and love is not sex. They can be tender and painful in equal measure. I'll ensure you're satisfied, so you... so <i>we</i> can start putting these feelings to rest." <br><br> <<link [[Let Gwylan pull you into bed|Gwylan Yearning Sex]]>><<set $sexstart to 1>><<npcincr Gwylan lust 2>><<set $yearningTalk.increase -= 2>><</link>><<glust>><<lyearning>> <br> <<link [[Pull away|Gwylan Yearning Revealed]]>><<set $phase to 2>><<set $yearningTalk.increase += 2>><</link>> <br><<run statusCheck("Gwylan")>> <<if $sexstart is 1>> <<set $sexstart to 0>> <<consensual>> <<set $consensual to 1>> <<neutral 1>> <<maninit>> <<npcexpose>> <<set $enemytrust += 200>> <<set $enemyarousalmax to 1200>> <<set $enemyarousal += (C.npc.Gwylan.lust + C.npc.Gwylan.dom)>> <<set $combat_player_orgasm_target to Math.ceil((C.npc.Gwylan.lust + C.npc.Gwylan.dom) / 100) + 1>> <<set $disableNormalImpregnation to true>> <<set $disableImpregnation to true>> <<set $noBodyWriting to true>><<set $noHypnosis to true>> <<npcexpose>> <<npc_attempt_sex>> <<He>> pushes you onto <<his>> bed. You nearly sink into the soft blankets. <<He>> closes the curtains and crawls on top of you. <</if>> <<effects>> <<effectsman>> <<man>> <<stateman>> <br><br> <<actionsman>> <<if $orgasmcurrent gte $combat_player_orgasm_target>> <span id="next"><<link [[Next|Gwylan Yearning Sex Finish]]>><</link>></span><<nexttext>> <<elseif _combatend>> <span id="next"><<link [[Next|Gwylan Yearning Sex Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Gwylan Yearning Sex]]>><</link>></span><<nexttext>> <</if>><<effects>><<run statusCheck("Gwylan")>> <<if $orgasmcurrent gte $combat_player_orgasm_target>> <<set $enemyarousal += 200>> <<if $enemyarousal gte $enemyarousalmax>> <<if $hallucinations gte 2 and $NPCList[0].chest isnot "clothed">> The tattoo on Gwylan's <<bellyDescription "Gwylan">> flares to life, and <<he>> shivers as you climax. <<else>> Your <<if $orgasmcurrent gt 1>>final<</if>> orgasm makes Gwylan shiver. <</if>> <span class="pink">It pushes <<him>> over the edge too.</span> <<ejaculation "short">><<npcincr Gwylan lust -25>><<llllust>> <<else>> <<He>> makes a pleased sound as your <<if $orgasmcurrent gt 1>>final<</if>> orgasm subsides. "That should do," <<he>> says. <<if $consensual is 0>> "The struggle was thrilling, dear, but I'm only trying to help you." <</if>> <<npcincr Gwylan lust 5>><<gglust>> <</if>> <<elseif $enemyarousal gte $enemyarousalmax>> <<ejaculation "short">><<npcincr Gwylan lust -20>><<lllust>> <<if $orgasmcurrent is 0>> <<He>> looks up at you, irritated. "This was supposed to be for your sake, dear." <<He>> pouts, pushing away from you. <<set $yearningTalk.increase++>><<gyearning true>> <<else>> <<He>> holds you tightly in the bed for a moment before pushing away from you. <</if>> <<elseif $enemyhealth lte 0>> Gwylan rolls away from you. "That hurt, but I'm glad to see you've already gotten it out of your system." <<set $yearningTalk.increase -= 2>><<lyearning>> <<else>> Gwylan rolls away from you. <</if>> <br><br> <<clotheson>> <<endcombat>> <<npc Gwylan>><<person1>> <<link [[Next|Gwylan Yearning Revealed]]>><<set $phase to 3>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<if $phase is 0>> <<set $gwylan.yearnResponse to "nothing">> "It meant nothing, and we're just friends. I don't want to lose that either," you say. <br><br> <<He>> sighs, looking relieved. "Thank you. I realise that, with what we do, it can be difficult not to deepen the attachment between us. Rather than pining for what we can't have, let's enjoy what we already do as friends." <<He>> takes both of your hands. "Let's put this behind us, then. This <span class="forest-green">yearning</span> will fade in time, I'm sure of it." <br><br> <<He>> smiles again, and it reaches <<his>> ears this time. "You're very special to me. Please don't forget that. I wouldn't feel so strongly about this otherwise." <<elseif $phase is 1>> You stay silent. <br><br> <<He>> frowns. "I understand. With what we do, it can be difficult not to deepen the attachment between us. Rather than pining for what we can't have, let's enjoy what we already do as friends, and nothing more." <<He>> takes both of your hands. "This <span class="forest-green">yearning</span> isn't something that can just be turned off like a lightswitch. It will take time, but I know we can get past it." <<elseif $phase is 2>> You pull your wrists free from Gwylan's hands. <<He>> doesn't make any effort to hold on to them, but looks confused. "Is this not what you wanted?" <br><br> You shake your head. "It wasn't ever about the sex." <br><br> <<His>> shoulders slump. "Ah. This has gone even further than I thought." <<He>> laughs sadly. "You're a sweet <<girl>>. You'll make someone very happy someday, but it should be someone who can return your affections, and someone your own age." <<He>> says the last part with the slightest scolding undertone. <<gyearning true>> <br><br> "I realise that, with what we do, it can be difficult not to deepen the attachment between us. Rather than pining for what we can't have, let's enjoy what we already do as friends." <<He>> takes both of your hands. "Let's just put this behind us, dear. This <span class="forest-green">yearning</span> will fade in time, I'm sure of it." <<else>> <<He>> helps you out of <<his>> bed. "As I said, it's about separating love and sex. Rather than pining for what we can't have, let's enjoy what we already do as friends." <<He>> takes both of your hands. "If we do this enough, I'm sure this <span class="forest-green">yearning</span> will fade. It will take time, but I know we can get past it." <</if>> <br><br> <<He>> seems to realise something. "Oh. I'm sorry for slapping you and calling you rotten." <br><br> <<set C.npc.Gwylan.title to "curious">> <<npcset Gwylan state "active">> <<unset $yearningLetter>> <<set $gwylanSeen.pushUnique("yearning")>> <<gwylanRequestEnd "skip">> <<if $yearningTalk.increase isnot undefined>> <<npcincr Gwylan dom $yearningTalk.increase>> <</if>> <<set C.npc.Gwylan.dom to Math.clamp(C.npc.Gwylan.dom, 1, 25)>> <<unset $yearningTalk>> <span class="gold">Gwylan's social menu entry has been updated.</span> <br><br> <<link [[Next|Gwylan Yearning End]]>><<pass 1>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<He>> leads you to the door. When it opens, you see only a short staircase leading down to the forest shop's main room. It's not dark anymore. <br><br> "I'll see you soon," <<he>> says. "I'm still looking forward to hearing more of your stories." <br><br> <<link [[Next|Forest Shop Entrance]]>><<endevent>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> Gwylan frowns, and removes <<his>> hand. "Alright. Next time." <br><br> <<gwylanOptions>><<set $outside to 1>><<set $location to "park">><<effects>> <<npc Gwylan>><<person1>> <<set $yearningScore to 1>> <<He>> smiles, and nearly jumps over the counter. <<He>> quickly grabs <<his>> hat<<if Weather.precipitation isnot "none">> and umbrella<</if>>, takes your hand, and dashes out the front door of the forest shop with you. <<takeHandholdingVirginity "Gwylan" "romantic">> <br><br> The two of you run into town. "Quick detour, first." You pass Nightingale Street and end up in the park. <br><br> <<He>> looks back and smiles at you brightly as you run with <<him>>. You feel warm, seeing <<him>> act so happy just being with you. <<stress -3>><<trauma -3>><<lstress>><<ltrauma>> <br><br> <<He>> suddenly releases your hand and runs ahead. "Hey, come on! Chase me!" <br><br> <<if $fox gte 6>> <<link [[Chase!|Gwylan Promenade Walk Chase]]>><<pass 10>><<tiredness 2>><<arousal 500>><</link>><<fox>><<gtiredness>><<garousal>><<gyearning true>> <<else>> <<link [[Chase|Gwylan Promenade Walk Chase]]>><<pass 10>><<tiredness 2>><</link>><<athleticsdifficulty>><<gtiredness>><<gyearning true>> <</if>> <br> <<link [[Just walk after <<him>>|Gwylan Promenade Walk Lazy]]>><<pass 10>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<if $fox gte 6>> <<set $yearningScore += 3>> Your fox instincts flare up, and you chase <<him>> around the park. You keep up with <<him>>, resisting the urge to chase on all fours. <<if _gwylanTF.known>> You can tell <<hes>> resisting that same urge. <</if>> <br><br> Each time you get close to catching <<him>>, <<he>> expertly evades in an unexpected direction. <<if _gwylanTF.known>> <<His>> tail flicks you in the face on your penultimate attempt. <</if>> Deciding you've had enough, you give in, getting on all fours and pouncing. <br><br> <span class="green">You meet your mark,</span> and bring <<him>> down into the grass. <<His>> arms wrap around you, and <<he>> giggles all the while. <<npcincr Gwylan lust 1>><<glust>> <<elseif $athleticsSuccess>> <<set $yearningScore += 2>> You decide you could use the exercise. You chase <<him>> around the park. <br><br> <<He>> makes you work for it. Each time you get close to catching <<him>>, <<he>> expertly evades in an unexpected direction. <<if _gwylanTF.known>> <<His>> tail flicks you in the face on your penultimate attempt. <</if>> <br><br> Sheer muscle won't win out here. <<Hes>> too clever. You slow down, and let yourself think. You watch the way <<he>> moves. You poke and prod, testing how <<he>> reacts to your advances. Finally, <span class="green">you see an opening</span>. You push yourself to your limit. <br><br> <span class="green">You grab <<if $pronoun is "m">><<his>> shirt<<else>><<his>> dress<</if>>,</span> and use the grip to bring <<him>> down into the grass. <<His>> arms wrap around you, and <<he>> giggles all the while. <<else>> <<set $yearningScore += 1>> You decide to go along with it. You chase <<him>> around the park. <br><br> <<He>> makes you work for it. Each time you get close to catching <<him>>, <<he>> expertly evades in an unexpected direction. <<if _gwylanTF.known>> <<His>> tail flicks you in the face on your final attempt. <</if>> <br><br> <span class="purple">You have to stop and catch your breath.</span> <<Hes>> too fast. Before you can, though, <<he>> wraps <<his>> arms around you and falls to the ground, giggling all the while. <</if>> <br><br> You lay with <<him>> in the grass. <<if $hypnosis_traits.devotion gte 2>> <<He>> stares at you with a smile that makes your heart sing. <<else>> <<He>> stares at you, still holding that same bright smile. <</if>> <<if $fox gte 6 or $athleticsSuccess>> "That was wonderful, <<pcpetname "Gwylan" "name">>! I feel so young!" <<trauma -2>><<ltrauma>> <</if>> <br><br> After resting for a few minutes, <<he>> helps you stand<<if Weather.precipitation isnot "none">>, and pats down some of the dampness in your clothes from the wet grass<</if>>. <br><br> The two of you continue your walk. You're not sure where you're going. <br><br> <<link [[Next|Gwylan Promenade Walk 2]]>><<pass 10>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> You walk after <<him>>. Each time you get close, <<he>> darts off again. <br><br> When <<he>> realises that you're not having any of it, <<he>> pouts. It's quickly replaced by a mischievous grin, though. <br><br> The next time you get close, <<he>> pounces on you, knocking both of you down to the ground. <<He>> giggles all the while. <br><br> <<He>> lays atop you in the grass. <<if $hypnosis_traits.devotion gte 2>> <<He>> stares at you with a smile that makes your heart sing. <<trauma -2>><<ltrauma>> <<else>> <<He>> stares at you, still holding that same bright smile. <</if>> <<npcincr Gwylan lust 1>><<glust>> <br><br> After resting for a few minutes, <<he>> helps you stand<<if Weather.precipitation isnot "none">>, and pats down some of the dampness in your clothes from the wet grass<</if>>. <br><br> The two of you continue your walk. You're not sure where you're going. <br><br> <<link [[Next|Gwylan Promenade Walk 2]]>><<pass 10>><<dry_full>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<set $location to "promenade">> You end up on Starfish Street. Gwylan walks you onto the promenade. <br><br> It's not too crowded, but there's many couples walking side by side. After a moment, Gwylan takes your arm and walks closer to you. "We should blend in," <<he>> says hastily. <br><br> You occasionally stop to peruse some of the stores. The two of you laugh as you point out obvious bootleg merchandise. <<He>> stops laughing at the next store, and stares intently at something on the wall. <<if _gwylanTF.known>> <<His>> tail sways back and forth rapidly. <</if>> <br><br> You follow <<his>> gaze. There's a huge fox plushie hanging up. Its tail is almost as large as the rest of it. <br><br> <<if $money gte 3000>> <<link [[Buy it for Gwylan (£30)|Gwylan Promenade Walk Fox Plushie]]>><<set $phase to "gwylan">><<money -3000 "shopping">><<set $yearningScore++>><</link>><<gyearning true>> <br> <<link [[Buy it for yourself (£30)|Gwylan Promenade Walk Fox Plushie]]>><<set $phase to "self">><<money -3000 "shopping">><</link>> <<else>> <span class="blue">You can't afford it.</span> <</if>> <br> <<link [[Keep walking|Gwylan Promenade Walk Sea]]>><<pass 10>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> You hand out the money to the vendor. Gwylan doesn't notice until the plushie is taken down and handed to you. <br><br> <<if $phase is "gwylan">> <<set $gwylanSeen.pushUnique("fox_plushie_gwylan")>> You then hand it to <<him>>. <<He>> blinks at you, and cautiously takes it. "Oh, dear, I wasn't staring at it because I wanted it!" <<He>> giggles. "But thank you. I'll cherish it." <<He>> thinks for a moment, before handing £30 to the vendor <<himself>>. A second fox plushie is handed through the window, which <<he>> then hands to you. <br><br> "You'll need something to remember this moment." <<He>> pets the tail. "Ah, it's a pillow! My bed will be inescapable at this rate." <<else>> <<He>> smiles at you. "Good choice. You'll need something to remember this moment." <<He>> pets the tail. "Ah, it's a pillow! I hope it brings you restful sleep." <</if>> <br><br> <<set $gwylanSeen.pushUnique("fox_plushie")>> <<link [[Next|Gwylan Promenade Walk Sea]]>><<pass 10>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> You stop by a railing, and watch the sea together for some time. <<stress -3>><<lstress>> <br><br> "Are you having fun?" <<he>> asks. "The true mark of connection is taking joy in doing nothing in particular, so long as it's with a dear friend." <br><br> <<He>> stays silent for a while after that, <<his>> smile slowly fading. <<He>> looks to <<his>> side. "Over there." <<He>> takes your hand and leads you over to a bench. <br><br> <<He>> motions for you to sit down first, and sits right next to you. <<if $gwylanSeen.includes("fox_plushie_gwylan")>> There's enough room on the bench for both of your massive fox plushies, too. <<elseif $gwylanSeen.includes("fox_plushie")>> There's enough room on the bench for your massive fox plushie, too. <</if>> Gwylan rests <<his>> head on your shoulder. You think you hear <<him>> let out a sigh of contentment. <br><br> <<link [[Pull <<him>> closer|Gwylan Promenade Walk Chat]]>><<set $phase to "pull">><<set $yearningScore++>><</link>><<gyearning true>> <br> <<link [[Sit still|Gwylan Promenade Walk Chat]]>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<if $phase is "pull">> You put your arm around Gwylan and pull <<him>> closer. <<He>> looks surprised, but leans into it. <br><br> <</if>> "Forgive me for how abrupt this all was, <<pcpetname "Gwylan" "name">>. I..." <<He>> pauses, and shakes <<his>> head. <br><br> "I wanted to... play pretend." <<He>> looks up at you. "To pretend that you and I could be something more. Your kiss poisoned my mind. After what you said, I still couldn't stop thinking about it. <<if $gwylan.yearnResponse is "important">> You told me it was important to you. You kept coming around, kept trying to break this wall I've put up. I felt so selfish." <<elseif $gwylan.yearnResponse is "nothing">> You told me it meant nothing, but then you kept coming back. You kept trying to chip away at this wall between us." <<else>> You keep coming back, and you keep chipping away at this wall between us." <</if>> <<He>> hugs you tighter, before pulling away. <br><br> "Despite my best efforts, you're stuck in my head. No amount of me trying to push you away will change that, now. So, I suppose I owe you my true feelings." <br><br> <<He>> doesn't continue at first. <<He>> seems to be trying to find the right words. Finally, <<he>> speaks. "Do you want to know how I really feel? You know I like collecting things. Clothes. Knick-knacks." A pause. "Memories." <br><br> Another pause. <br><br> <<link [[Next|Gwylan Promenade Walk Chat 2]]>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> "Everything in my shop has a purpose, even if I don't always remember. If I stare long enough, I will, though." <<Hes>> staring at you, now. "You're like that. A treasure. I want to hold you close and keep you. But that isn't love, and I can't rob you of your freedom like that. I meant it when I said that you're not ready for forever, but I was half wrong. I'm the one who's not ready for it, and I never was. You're a treasure I can't have." <<His>> hand squeezes yours. "<span class="purple">My heart can't love anymore.</span> Not truly. You're my treasure, but I can't love you." <br><br> <<if $auriga_scar>> <<He>> frowns. "Besides, your heart is already wounded, much like my own. Together, that would spell disaster." <br><br> <<elseif $templePromised isnot "">> <<He>> frowns, looking at your promise ring. "You wear a ring of binding on your finger. You're already breaking a promise. Would you do the same to me?" <br><br> <</if>> The silence that passes is agonising. The sea attacks the shore like a hungry predator. You sit and listen until you hear <<his>> voice again. <br><br> "<span class="green">But maybe it doesn't have to be forever.</span> Maybe we'll both hurt more if I keep being so thorny. Maybe I just need to..." <<He>> stops <<himself>> yet again, and chuckles dryly. <br><br> <<link [["\"Stop and smell the roses.\""|Gwylan Promenade Walk Love Interest]]>><<set $phase to "roses">><</link>> <br> <<link [["\"Speak the sea.\""|Gwylan Promenade Walk Love Interest]]>><<set $phase to "sea">><</link>> <br> <<link [["\"Share the burden with someone.\""|Gwylan Promenade Walk Love Interest]]>><<set $phase to "burden">><</link>> <br> <<link [[Say nothing|Gwylan Promenade Walk Love Interest]]>><<set $phase to "silent">><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<if $phase is "roses">> "Stop and smell the roses," you finish. <<He>> smiles. "Exactly." <<elseif $phase is "sea">> "Speak the sea." <<His>> eyes widen. You're not sure why you said that. The words just happened. <<elseif $phase is "burden">> "Share the burden with someone," you say. "With me." <<He>> looks sad for a moment. No, not sad. Nostalgic. <<else>> You don't say anything. You don't need to. You both already know. <</if>> <br><br> Without warning, <span class="lewd"><<he>> pulls you into a kiss</span>. <br><br> <<gwylanKiss>> <br><br> <<He>> pulls away. "What we have can't be love. But that doesn't mean we can't still enjoy it, with what time we do have together. We'll both be hurt some day, when this little affair of ours slips away. But let's just enjoy it for now. Not forever. Just for now." <br><br> <<He>> hugs you once more. "You're worth the hurt, because you've shared so much of that hurt with me already. If I don't want it to end, then I only need to stop trying to push you away." <br><br> <<He>> stands, and pulls you up, too. <<He>> braces <<himself>>. "If my heart could sing for anyone, my dear, it would be for you." <<He>> gives you another peck on the lips, and the two of you begin the walk back to the forest shop. <br><br> <<set $gwylanSeen.pushUnique("partners")>> <<loveInterestAdd "Gwylan">> <br><br> <<if $yearningScore gt 0>> <<npcincr Gwylan dom $yearningScore>> <</if>> <<unset $yearningScore>> <<link [[Next|Forest Shop Entrance]]>><<endevent>><<pass 10>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<set _hideHypnosisOptions to true>> <<if $gwylan.requestLast?.hold is $phase>> <<switch $speech_attitude>> <<case "meek">> "C-can we continue now, please?" you ask. <<case "bratty">> "Alright, I did what you wanted, can we continue now?" you ask. <<default>> "May we continue where we left off now?" you ask. <</switch>> <<else>> <<switch $phase>> <<case "peace">> <<if !$gwylanSeen.includes("hypnosis_peace")>> <<switch $speech_attitude>> <<case "meek">>"Y-you said you could help me with this," you say, gesturing to your unusual parts. <<case "bratty">>"So, can you help me with all this?" you ask, gesturing to your unusual parts. <<default>>"You said you could help me with my inner self," you say, gesturing to your unusual parts. <</switch>> <<else>> <<switch $speech_attitude>> <<case "meek">>"C-can you help me with my inner self again?" you ask. <<case "bratty">>"I need your help keeping my inner self under control again," you say. <<default>>"Could you help me come to terms with my inner self again?" you ask. <</switch>> <</if>> <<case "silence">> <<switch $speech_attitude>> <<case "meek">>"C-can you make <<if numberOfEarSlime() gt 1>>these things in my ears<<else>>this thing in my ear<</if>> stop?" you ask. <<case "bratty">>"Please, for the love of god, shut <<if numberOfEarSlime() gt 1>>these things in my ears<<else>>this thing in my ear<</if>> up," you say. <<default>>"Could you help me with <<if numberOfEarSlime() gt 1>>these things in my ears<<else>>this thing in my ear<</if>>?" you ask. <</switch>> <<case "slumber">> <<switch $speech_attitude>> <<case "meek">>"I-I've been having trouble sleeping," you say. "Can you help?" <<case "bratty">>"I need my beauty sleep, but it's not coming easy," you say. "Can you help?" <<default>>"I've been having trouble sleeping. Can you help?" you ask. <</switch>> <<case "insight">> <<switch $speech_attitude>> <<case "meek">>"I-I've been seeing things," you say. "Can you help?" <<case "bratty">>"I think I'm losing it. I'm seeing things that can't be real," you say. "Can you help?" <<default>>"I've been seeing things. Can you help?" you ask. <</switch>> <<case "removal">> <<switch $speech_attitude>> <<case "meek">>"I-I think someone else is in my head," you say. "Can you make it stop?" <<case "bratty">>"Someone's got my brain in a twist, I think. Can you help?" you ask. <<default>>"I don't feel like myself. I have strange impulses, and I think someone else hypnotised me," you explain. <</switch>> <<default>> <<set _hypnosisError to true>> <</switch>> <</if>> <br><br> <<if _hypnosisError>> You open your naughty mouth to ask Gwylan for help, but the only thing that comes out is salt. A branch slaps you square on the ass for your troubles. <<pain 2>><<arousal 200>><<gpain>><<garousal>> <br><br> "What?" Gwylan says. "Could you repeat that please?" <br><br> <span class="red">This is a bug. Please report this. phase: <<print $phase>></span> <br><br> <<set $phase to 0>> <<gwylanOptions>> <<elseif !$settings.hypnosisEnabled>> Gwylan smiles sadly. "<span class="blue">You've closed up your mind.</span> There's nothing I can do for you until you open it to being changed through <span class="purple">hypnosis</span>." <br><br> <i><span class="blue">Hypnosis must be enabled to continue.</span></i> <br><br> <<set $phase to 0>> <<gwylanOptions>> <<elseif $daily.gwylan.hypnosis and !$gwylanSeen.includes("yearning")>> Gwylan holds up <<his>> hands towards you. "One per day is enough for now. You need to pace yourself. Give it time to stick." <br><br> <<set $phase to 0>> <<gwylanOptions>> <<elseif $hypnosis_traits.devotion gte gwylanHypnoMax("trait") and !$gwylanSeen.includes("hypnosis_deepest") and $hypnosisTimers?.devotion.time + 10 > gwylanHypnoMax("value")>> <<if $hypnosis_traits.devotion gte 4 and !$gwylanSeen.includes("hypnosis_deepest")>> Gwylan frowns, but blushes. "You know the side effects deepen each time. You're already..." <br><br> <<He>> raises <<his>> hand, and a single finger. Your eyes lock on it. <<He>> then cups <<his>> hand near your face. <<hypnosisText "You raise your head instinctively, and <<he>> scratches under your chin.">> <br><br> "...trapped in my web," <<he>> says with a guilty laugh. "I'm afraid I'll break you if I let this go any further." <<if _gwylanLovePercent gte 80 and _gwylanStatus.includes("lust") and !$weekly.gwylanDeepest>> <<His>> thumb rubs your cheek. "Yet, a part of me wants this. To just give in and..." <br><br> <<His>> face comes close to yours. You feel <<his>> breath on your lips, but <<he>> stops short of kissing you. After a moment's hesitation, <<he>> releases you and steps around you. You turn to follow <<him>>. "<span class="witch">Stay,</span>" <<he>> says. <<hypnosisText "Your body obeys without question.">> <br><br> You feel <<his>> chin rest on your shoulder. "If you truly want this..." <<His>> whisper slides into your ears and echoes. Visions of your acts with Gwylan swim in schools, displacing the currents of your mental ocean. <<His>> breath tickles your ear. "Prove it." A thin red powder is drawn under your nose, and the visions dry up. <<llarousal>><<arousal -2000>> <br><br> "This will only last a minute." <<He>> steps back in front of you. "Sit." <br><br> <span class="teal">The usual compulsion isn't present.</span> <<He>> smiles. "If we sink any further, <span class="red">you won't be able to say 'no' to me until the hypnosis wears off.</span> So I need to hear the words from your mouth. I need to make sure it's <i>you</i> that wants this." <br><br> <<link [[Do nothing|Gwylan Hypnosis Deepest]]>><<set $phase2 to 1>><<npcincr Gwylan dom -5>><</link>><<llyearning>> <br> <<link [[Sit and tell <<him>> you want this|Gwylan Hypnosis Deepest]]>><<set $phase2 to 2>><<sub 1>><</link>> <br> <<else>> <<He>> lowers <<his>> hand, leaving you feeling cold. "You were never meant to fall this deep in. I'm sorry. Let it fade for a while, please. For both of our sakes. You should be ready again <<set _canRefreshHypnosisIn to $hypnosisTimers.devotion.time - (gwylanHypnoMax("value") - 10)>> <<if _canRefreshHypnosisIn is 1>> <span class="gold">tomorrow</span>." <<else>> in <span class="gold"><<number _canRefreshHypnosisIn>> days</span>." <</if>> <br><br> <<if $weekly.gwylanDeepest>> <span class="blue"><<He>> believes your requests are not your own, and that you have sunken too deep. Given time, <<he>> may be open to the possibility again.</span> <<else>> <span class="blue">There was hesitation in <<his>> voice. If pushed further into <span class="forest-green">yearning</span>, <<he>> might not show restraint.</span> <</if>> <br><br> <<set $phase to 0>> <<gwylanOptions>> <</if>> <<else>> <<if $gwylanSeen.includes("ritual_beast")>> <<if $phase is "silence">> Gwylan frowns. "I'm sorry, <span class="blue">but you're not ready to go any deeper into my trance yet</span>. I'm... I'm afraid of what you'd do for me, were I to ask. You'll have to hang in there for a little while longer." <<else>> Gwylan giggles. "I appreciate your enthusiasm, <span class="blue">but you're not ready to go deeper into my trance yet</span>. For both of our sakes, we shouldn't allow our... attachment... to go that far. You may end up doing something you regret if we do. Give your mind time to rationalise and recover." <</if>> <<else>> Gwylan shakes <<his>> head. "<span class="blue">You aren't ready to slip deeper into my trance.</span> Not yet, at least. The side effects are only harmless so long as we give you time to recover." <</if>> <br><br> <<He>> steps aside, and motions for you to follow. <<He>> pulls out a chair and has you sit. <br><br> "Just hold still a moment, dear." <<He>> leans in to look into your eyes. <<He>> then raises <<his>> hand, and snaps <<his>> fingers in various directions to measure your responsiveness. <<He>> asks you several questions pertaining to how you feel about <<him>>, interspersed with seemingly random ones such as what you had for breakfast. <br><br> <<He>> places a hand to <<his>> chin in thought. "You should be ready again... <<set _canRefreshHypnosisIn to $hypnosisTimers.devotion.time - (gwylanHypnoMax("value") - 10)>> <<if _canRefreshHypnosisIn is 1>> <span class="gold">tomorrow</span>." <<else>> in <span class="gold"><<number _canRefreshHypnosisIn>> days</span>." <</if>> <br><br> <<set $phase to 0>> <<gwylanOptions>> <</if>> <<elseif $phase isnot "removal" and $hypnosisTimers[$phase] and $hypnosisTimers[$phase]?.time gt Math.floor($hypnosisTimers[$phase]?.max / 2) and !$gwylanSeen.includes("hypnosis_deepest")>> Gwylan tilts <<his>> head. "The effects from last time should still be holding strong. Just hold still a moment, dear." <<He>> leans in to look into your eyes. <<He>> then raises <<his>> hand, and snaps <<his>> fingers in various directions to measure your responsiveness. <br><br> <<He>> places a hand to <<his>> chin in thought. "If you don't wish to leave any gaps in the effects, we should be able to perform that technique again... <<set _canRefreshHypnosisIn to $hypnosisTimers[$phase].time - Math.floor($hypnosisTimers[$phase]?.max / 2)>> <<if _canRefreshHypnosisIn is 1>> <span class="gold">tomorrow</span>." <<else>> in <span class="gold"><<number _canRefreshHypnosisIn>> days</span>." <</if>> <br><br> <<set $phase to 0>> <<gwylanOptions>> <<elseif !$gwylan.requestDone>> <<if $gwylan.request.event>> Gwylan thinks for a moment. "Sure, but only after <span class="blue">you do what I asked of you</span>." <<else>> <<if !$gwylanSeen.includes("request_intro")>> Gwylan thinks for a moment. "I can help, but I need you to do something for me first. It'll be nice and simple, don't worry." <<He>> smiles sweetly. <<run gwylanRequest("tutorial")>> <<gwylanRequestText>> <<else>> Gwylan thinks for a moment. "I can help, but I need you to do something for me first." <<He>> smiles sweetly. <<run gwylanRequest()>> <<gwylanRequestText>> <</if>> <</if>> <<set $gwylan.request.hold to $phase>> <br><br> <<set $phase to 0>> <<gwylanOptions>> <<else>> <<if $phase is "removal" and !$gwylanSeen.includes("hypnosis_removal")>> Gwylan nods. "I should warn you that there will be temporary side effects. Simply removing the impulses isn't possible, that would require erasing entire memories. Instead, I'll be <span class="pink">replacing them</span> with something that will fade naturally over time. <span class="red">There's a risk of damage to your psyche.</span> If you're alright with that, we can continue whenever you're ready." <<elseif !$gwylanSeen.includes("hypnosis_intro")>> Gwylan nods. "You'll need to trust me for it to work. It won't last long, but we can always redo it at a later date. There's also a limit to how much your mind can take at once. <<if $phase is "slumber">> <span class="blue">This particular method will require you to fall asleep, and may take up to a few hours.</span> <</if>> <span class="blue">There will be temporary side effects,</span> too. We can start whenever you're ready." <<elseif $phase is "slumber" and !$gwylanSeen.includes("hypnosis_slumber")>> Gwylan smiles. "<span class="blue">This particular method will require you to fall asleep, and may take up to a few hours.</span> We can start whenever you're ready." <<elseif _gwylanStatus.includes("lust") && $hypnosis_traits.devotion gte 5>> Gwylan smiles. "You want to go yet deeper, <<pcpetname "Gwylan" "my">>?" <<He>> cups under your chin. "Strange. I can't seem to say no to you. You must know what that's like by now." <<else>> Gwylan smiles. "Of course. We can start whenever you're ready. As you know, there will be temporary side effects." <</if>> <br><br> <<switch $phase>> <<case "peace">><<hypnosisicon>><<link [[Let Gwylan hypnotise you (1:00)|Gwylan Hypnosis Start 2]]>><<pass 10>><<endevent>><<set $phase to "peace">><</link>><<gwylanHypnoNote>> <<case "silence">><<hypnosisicon>><<link [[Let Gwylan hypnotise you (1:00)|Gwylan Hypnosis Start 2]]>><<pass 10>><<endevent>><<set $phase to "silence">><</link>><<gwylanHypnoNote>> <<case "slumber">><<hypnosisicon>><<link [[Let Gwylan hypnotise you (1:00)|Gwylan Hypnosis Start 2]]>><<pass 10>><<endevent>><<set $phase to "slumber">><</link>><<gwylanHypnoNote>> <<case "insight">><<hypnosisicon>><<link [[Let Gwylan hypnotise you (1:00)|Gwylan Hypnosis Start 2]]>><<pass 10>><<endevent>><<set $phase to "insight">><</link>><<gwylanHypnoNote>> <<case "removal">><<hypnosisicon>><<link [[Let Gwylan hypnotise you (1:00)|Gwylan Hypnosis Start 2]]>><<pass 10>><<endevent>><<set $phase to "removal">><</link>><<gwylanHypnoNote>> <</switch>> <br><br> <<set $phase to 0>> <<gwylanOptions>> <</if>><<effects>><<run statusCheck("Gwylan")>> <<set $outside to 0>><<set $location to "forest_shop_garden">> <<npc Gwylan>><<person1>> <<set $gwylan.requestDone to false>> <<if $gwylan.requestLast?.hold>> <<run delete $gwylan.requestLast.hold>> <</if>> <<set $hypnosis_potency to Math.ceil($hypnosis_traits.devotion / 2) || 1>> <<if $gwylanSeen.includes("garden_seen")>> <<if C.npc.Gwylan.dom gte 20>> <<He>> takes your hand and leads you to the garden. <<takeHandholdingVirginity "Gwylan" "consensual">> <<else>> <<He>> leads you to the garden. <</if>> You sit down on the large cushion in the covered room. <br><br> <<else>> <<He>> places a black blindfold over your eyes. "Sorry, but my garden is usually off-limits. I can't have anyone knowing how to get in." <br><br> <<if $gwylanSeen.includes("garden")>> <<He>> steadily walks you to the garden before removing it. <<He>> sits you down on a large cushion in the covered room. <<else>> <<set $gwylanSeen.pushUnique("garden")>> <<He>> steadily walks you somewhere. You hear doors open and shut. Eventually, you smell roses and feel the fresh air on your skin. <<He>> removes your blindfold. A large expanse of square stone tiles stretch along the ground, connecting patches of grass and raised sections filled with dirt, flowers and herbs. Surrounding it all is an impressive weaving of crossed wooden stakes well over two metres high, with gaps just large enough to allow vines to grab and climb through, shielding the whole area from prying outside eyes. <br><br> There's another raised section, but this one is different. It's covered by a wooden roof, <<if Weather.precipitation is "rain" or Weather.precipitation is "snow">> untouched by the <<print Weather.precipitation>>, <</if>> and the inside is padded with various cushions and quilts. Gwylan leads you over to it, sitting you down on a large cushion. <br><br> <</if>> <</if>> Gwylan leaves momentarily, returning with a tray that holds a teacup, many herbs, and a mortar and pestle. <<He>> places it in front of you on a small table. <<if $worn.handheld.name isnot "naked">> You set your <<= $worn.handheld.name>> aside. <<handheldundress "gwylanHypno">> <</if>> <br><br> <<He>> walks around the garden, picking a few herbs and tossing them into the mortar and pestle. <<He>> hums as <<he>> grinds them together. <<if !$gwylanSeen.includes("hypnosis_intro")>> When <<hes>> done, <<he>> gently grabs your arm and runs <<his>> fingernails down it, just enough to leave some small marks. You instinctively pull your arm away. "What are you doing?" <br><br> <<He>> gently grabs your arm again. "Simple allergy test." <<He>> rubs the freshly ground herbs on the marks <<he>> left, and watches closely. Nothing happens for several minutes. "Excellent." <<He>> adds the herbs to a filter. <<else>> <<He>> finishes grinding up the herbs, and adds them to a filter. <</if>> <<He>> then pours the hot water from the teapot through it, into the cup. "Drink this first. It's a herbal tea that will help you relax." <br><br> <<He>> turns away and lights a hanging incense burner. <<hallucinogen 20>> <br><br> <<link [[Drink the tea|Gwylan Hypnosis Start 3]]>><<pass 10>><<set $phase2 to "drink">><<stress -14>><<tiredness 3>><<hallucinogen 200>><<set $hypnosis_potency++>><</link>><<llstress>><<gtiredness>><<gwylanHypnoEffect>> <br> <<link [[Don't drink it|Gwylan Hypnosis Start 3]]>><<pass 10>><<set $phase2 to "no">><</link>><<gwylanWillpowerDifficulty>> <br><<effects>><<run statusCheck("Gwylan")>> <<if $phase2 is "no">> You decide against drinking it. Gwylan sits down at the opposite side of the small table, on a cushion of <<his>> own. <<if !$willpowerSuccess>> <<He>> frowns upon seeing the cup still full. "It won't bite, dear." <<He>> scoots over to your side of the table. "Here, just relax." <<He>> puts a hand on your shoulder. <br><br> <<hypnosisText "Your body won't move, yearning to be guided by <<him>>. <span class='red'><<He>> knows what's best.</span>">> <br><br> <<He>> lifts the cup to your lips, and you drink obediently. "There. See?" <<He>> strokes your head for a moment. You don't know what you were worried about. You relish in <span class="witch"><<his>></span> warmth. You find your arms and eyelids feeling heavier already. <<stress -12>><<tiredness 3>><<hallucinogen 200>><<set $hypnosis_potency++>><<llstress>><<gtiredness>><<gwylanHypnoEffect>> <<else>> <<He>> frowns upon seeing the cup still full, but doesn't mention it. <</if>> <<else>> You sip the tea, relishing in its warmth. You find your arms and eyelids feeling heavier already. Gwylan sits down at the opposite side of the small table, on a cushion of <<his>> own. <</if>> <<set $gwylanSeen.pushUnique("hypnosis_intro")>> <br><br> <<switch $phase>> <<case "peace">> "Tell me, dear. What is it about your inner self that bothers you?" <br><br> <<if $fox gte 4 and $gwylanSeen.includes("romance")>> <<His>> gaze lingers on you for a moment too long. <br><br> <</if>> <<link [[It attracts too much attention|Gwylan Hypnosis Peace]]>><<set $phase to "attention">><<stress 18>><</link>><<ggstress>> <br> <<link [[It's not who I am|Gwylan Hypnosis Peace]]>><<set $phase to "identity">><<trauma 18>><</link>><<ggtrauma>> <br> <<if $cow gte 4>> <<link [[Painful memories of the farm|Gwylan Hypnosis Peace]]>><<set $phase to "cow">><<trauma -3>><</link>><<ltrauma>> <br> <</if>> <<if $fallenangel gte 2 or $demon gte 6>> <<link [[Regret and shame for lost purity|Gwylan Hypnosis Peace]]>><<set $phase to "purity">><<stress 14>><<trauma -6>><</link>><<ggstress>><<ltrauma>> <br> <</if>> <<if ($wolfgirl gte 2 or $cat gte 2 or $cow gte 2 or $fox gte 2) and (playerHeatMinArousal() + playerRutMinArousal()) gte 1>> <<if playerHeatMinArousal() gte 1 and playerRutMinArousal() gte 1>> <<link [[Bothered by heat and rut|Gwylan Hypnosis Peace]]>><<set $phase to "heat">><<npcincr Gwylan lust 2>><</link>><<glust>> <<elseif playerRutMinArousal() gte 1>> <<link [[Bothered by rut|Gwylan Hypnosis Peace]]>><<set $phase to "heat">><<npcincr Gwylan lust 2>><</link>><<glust>> <<else>> <<link [[Bothered by heat|Gwylan Hypnosis Peace]]>><<set $phase to "heat">><<npcincr Gwylan lust 2>><</link>><<glust>> <</if>> <br> <</if>> <<case "silence">> <<He>> moves behind you and places <<his>> fingers under your ears. "Relax." <<His>> touch makes you shiver. <<He>> rubs the area for a moment, as if feeling for something. <br><br> "This may feel strange." <<He>> tilts your head to the side, and you feel a temperate liquid enter your ear canal. <<if numberOfEarSlime(true) gte 2>> <<He>> then tilts your head the other way and repeats with your other ear. <</if>> "It will keep <<if numberOfEarSlime(true) gte 2>>them<<else>>it<</if>> quiet until I can work." <br><br> <<link [[Next|Gwylan Hypnosis Silence]]>><</link>> <br> <<case "slumber">> "Tell me, why do you think sleep evades you?" <br><br> <<if $dissociation gte 1 and $controlled is 0>> <<link [[Say you can't tell what's real|Gwylan Hypnosis Slumber]]>><<set $phase to "dissociation">><</link>> <br> <<else>> <<link [[Say you just have trouble falling asleep|Gwylan Hypnosis Slumber]]>><<set $phase to "insomnia">><</link>> <br> <<if $nightmares gte 1>> <<link [[Say you have nightmares|Gwylan Hypnosis Slumber]]>><<set $phase to "nightmares">><</link>> <br> <</if>> <<if $anxiety gte 1>> <<link [[Say you're often too anxious to get restful sleep|Gwylan Hypnosis Slumber]]>><<set $phase to "anxiety">><</link>> <br> <</if>> <<if $panicattacks gte 1>> <<link [[Say you have panic attacks in your sleep|Gwylan Hypnosis Slumber]]>><<set $phase to "panic">><</link>> <br> <</if>> <<if $flashbacks gte 1>> <<link [[Say you have recurring nightmares of the torment you've faced|Gwylan Hypnosis Slumber]]>><<set $phase to "flashbacks">><</link>> <br> <</if>> <<if $dissociation gte 1>> <<link [[Say you can't tell what's real|Gwylan Hypnosis Slumber]]>><<set $phase to "dissociation">><</link>> <br> <</if>> <</if>> <<case "insight">> "What is it you see, that you should not?" <br><br> <<if $settings.tentaclesEnabled>> <<link [[Unnatural monsters with many limbs|Gwylan Hypnosis Insight]]>><<set $phase to "tentacles">><</link>> <br> <<if $settings.plantsEnabled>> <<link [[Plants that attack with branches, roots and vines|Gwylan Hypnosis Insight]]>><<set $phase to "plants">><</link>> <br> <</if>> <</if>> <<if $settings.slimesEnabled>> <<link [[Slime that moves with a will of its own|Gwylan Hypnosis Insight]]>><<set $phase to "slimes">><</link>> <br> <</if>> <<if $settings.monsterHallucinationsOnly and $settings.monsterChance gte 1>> <<link [[Animals with human characteristics|Gwylan Hypnosis Insight]]>><<set $phase to "monsters">><</link>> <br> <</if>> <<if $temple_confessor_intro>> <<link [[Holes in the world itself|Gwylan Hypnosis Insight]]>><<set $phase to "holes">><</link>> <br> <<else>> <<link [[Lots of little things that should not be|Gwylan Hypnosis Insight]]>><<set $phase to "lots">><</link>> <br> <</if>> <<case "removal">> "Tell me about these impulses, as well as any gaps in your memory." <br><br> <<if $hypnosis_traits.suggestion gte 1>> <<link [[Tell <<him>> about Harper's treatments|Gwylan Hypnosis Removal]]>><<set $phase to "suggestion">><</link>> <br> <</if>> <<if $hypnosis_traits.scream gte 1>> <<link [[Tell <<him>> about your inability to scream for help|Gwylan Hypnosis Removal]]>><<set $phase to "scream">><</link>> <br> <</if>> <<if $hypnosis_traits.cover gte 1>> <<link [[Tell <<him>> about your urge to flaunt|Gwylan Hypnosis Removal]]>><<set $phase to "cover">><</link>> <br> <</if>> <<if $hypnosis_traits.deviancy gte 1>> <<link [[Tell <<him>> about your urge to provoke beasts|Gwylan Hypnosis Removal]]>><<set $phase to "deviancy">><</link>> <br> <</if>> <<link [[Tell <<him>> that you can't remember|Gwylan Hypnosis Removal]]>><<set $phase to "forgot">><</link>> <br> <<default>> You blink, and realise that none of this actually happened. <<if !($phase is "no" and $willpowerSuccess)>>That must have been some fucked up tea. Wait, did you even drink it?<</if>> You're still standing in the forest shop. <span class="red">This is a bug, please report.</span> <span class="blue">Hypnosis selection: <<print $phase>></span> <br><br> <<unset $hypnosis_potency>> <<endevent>><<npc Gwylan>><<person1>><<set $location to "forest_shop">> <<gwylanOptions>> <</switch>><<effects>><<run statusCheck("Gwylan")>> <<if $phase is "attention">> <<switch $speech_attitude>> <<case "meek">>"Everyone looks at me funny," you say. "More than usual." <<case "bratty">>"Too many people get the wrong idea," you say. <<default>>"I get too many looks," you say. "I got too many before all this, it's just worse now." <</switch>> <br><br> Gwylan thinks for a moment, picking more herbs. <<if _gwylanTF.known>> <<if $fox gte 6>> "It's hard, isn't it? Us foxes are the favoured victims. Always the first choice, the prize for a hunt." <<else>> "I can relate, but not for the same reasons." <</if>> <<else>> "I understand. It's difficult enough without them." <</if>> <<elseif $phase is "identity">> <<switch $speech_attitude>> <<case "meek">>"I didn't want this," you say. "It just happened." <<case "bratty">>"I didn't ask for it," you say. "It just happened to me, but it's not me." <<default>>"I'm not comfortable with this," you say. "It's not me." <</switch>> <br><br> <<if $worn.neck.name is "familiar collar" and ($wolfgirl gte 4 or $cat gte 4 or $fox gte 4 or $cow gte 4 or $harpy gte 4)>> Gwylan caresses your familiar collar. "Your collar is preventing you from changing. It makes you wear your heart on your sleeve. Or neck, in this case." <<if $worn.neck.cursed is 1>> <<set _magicLeash to true>> Gwylan holds <<his>> hand up, and your leash appears. <<if $gwylan.taken>> "I can't allow you to remove it. I'll ensure you're at peace, and can hide away as you please. However, you should know that you can never truly hide yourself from me, my dear." <<else>> "If you wish to remove it, come speak to me. Until then, I'll ensure you're at peace." <</if>> <<else>> <<set _selfFulfilling to true>> <</if>> <<elseif $wolfgirl gte 4 and $worn.neck.name.includes("spiked collar")>> <<set _selfFulfilling to true>> Gwylan walks up to you and <<if $worn.neck.type.includes("leash")>> holds your leash. "I think you make a cute puppy, for what it's worth." <<arousal 400>><<garousal>> <<else>> examines your spiked collar. "Well, this isn't helping if you want to be rid of it entirely. You're accepting it by wearing this." <</if>> <<elseif $cat gte 4 and $worn.neck.name is "cat bell collar">> <<set _selfFulfilling to true>> Gwylan walks up to you and examines your collar. "This little kitty bell certainly won't help your self-perception. You're accepting it by wearing this." <<elseif $fox gte 4 and ($worn.head.name is "spirit mask" or $worn.neck.name is "jasper pendant")>> <<set _selfFulfilling to true>> <<if $worn.head.name is "spirit mask" and $worn.neck.name is "jasper pendant">> Gwylan walks up and examines the spirit mask and jasper pendant you're wearing. <<if !$gwylanTalked.includesAny("shine", "jasper")>> "Firstly, these are wonderful, please come talk to me about where you got these later. Secondly, you're accepting it by wearing these." <<else>> "You have a strange way of showing dissatisfaction. You're accepting it by wearing these." <</if>> <<else>> <<if $worn.head.name is "spirit mask">> Gwylan walks up and rubs <<his>> thumb over the mask on your head. <<if !$gwylanTalked.includes("shrine")>> "Firstly, this looks wonderful, please come talk to me about where you got it later. Secondly, you're accepting this manifestation by wearing it." <<else>> "You have a strange way of showing dissatisfaction. You're accepting it by wearing this." <</if>> <<else>> Gwylan walks up and rubs <<his>> thumb over the jasper pendant. <<if !$gwylanTalked.includes("jasper")>> "Firstly, this looks wonderful, please come talk to me about where you got it later. Secondly, you're accepting this manifestation by wearing it." <<else>> "You have a strange way of showing dissatisfaction. You're accepting it by wearing this." <</if>> <</if>> <</if>> <<elseif $cow gte 4 and $worn.neck.name is "cow bell">> <<set _selfFulfilling to true>> Gwylan walks up and pushes your cow bell with a finger, hearing it ring once. "You wear this willingly. If you wish to be rid of it, you'll need to shed this mark of submission and acceptance." <<elseif $harpy gte 4 and ($worn.head.name is "feathered hair clip" or $worn.neck.name is "feather necklace")>> <<set _selfFulfilling to true>> <<if $worn.head.name is "feathered hair clip" and $worn.neck.name is "feather necklace">> Gwylan walks up and examines the feathered accessories you're wearing. <<if !$gwylanTalked.includes("bird")>> "Firstly, these are wonderful, please come talk to me about where you got these later. Secondly, you're accepting it by wearing these." <<else>> "You're accepting it by wearing these, little birdie." <</if>> <<else>> Gwylan walks up and examines the feather you're wearing. <<if !$gwylanTalked.includes("bird")>> "Firstly, this looks wonderful, please come talk to me about where you got it later. Secondly, you're accepting this manifestation by wearing it." <<else>> "You're accepting it by wearing this, little birdie." <</if>> <</if>> <<elseif $demon gte 6 and $worn.lower.name is "succubus lower back wings">> <<set _selfFulfilling to true>> Gwylan walks behind you and examines the fake wings on your lower back. "You seem to have accepted it, in a way. Is it true acceptance, or are you trying to fit a role you never asked to play?" <</if>> <<if _selfFulfilling>> <<He>> smiles, and <<his>> voice is gentle. "I understand it can be difficult to let go. There's a comfort in forcing your face to fit a mask. It's a dangerous game to play, though. Accepting something you don't want, making it part of your identity, can only help so much. When you finally begin to heal, you may feel as though you're losing a part of yourself." <br><br> <</if>> <<if $angel gte 4 and $transformationParts.angel.halo isnot "hidden">> <<His>> finger traces your halo. "There are ways to be rid of it, but losing this would break you. I can imagine the struggle," <<he>> says sadly. <<elseif $fallenangel gte 2 and $transformationParts.fallenAngel.wings isnot "hidden">> <<His>> fingers run up and down your broken wings. <<if $gwylanSeen.includes("fallen_fault")>> "Forgiveness doesn't... come easy." <<He>> can't make eye contact with you again. "I hope you can find it in your heart to forgive me some day." <<else>> "Forgiveness doesn't come easy, does it?" <<He>> smiles sadly. "Forgiving yourself is much harder than just asking to be forgiven, so we take the easier option, even if it doesn't help." <</if>> <<elseif $demon gte 6 and $transformationParts.demon.wings isnot "hidden">> <<His>> fingers run up and down your wings. <<if $gwylanTalked.includes("succubus")>> "You've presented your most precious vulnerabilities to me. You must really trust me." <<He>> giggles. "I appreciate it. There is a dark beauty to these wings. I understand why it can be so hard to let go, to endure that searing light in your head." <<else>> "There is a dark beauty to them. I understand why it can be so hard to let go, to endure that searing light in your head." <</if>> <<else>> <<He>> cups your cheek. "There are ways to be rid of it, but such things take time. I'll ensure you're at peace with it until that time comes." <</if>> /* ToDo: Gwylan - ghostbrew intro here? */ <<if _gwylanTF.known and $fox gte 4>> <<He>> looks away, but you think you see the slightest hint of sadness on <<his>> face as <<he>> does. <</if>> <<elseif $phase is "cow">> <<switch $speech_attitude>> <<case "meek">>"It's too... dehumanising," you say. "I was treated like a real cow on that farm. I can't move on if I look like this." <<case "bratty">>"I hate it. I hate what that farm did to me. I hate feeling ashamed for wanting to act human." <<default>>"It brings backs memories of the farm. I can't stand it." <</switch>> <br><br> Gwylan nods solemnly. <<elseif $phase is "purity">> <<switch $speech_attitude>> <<case "meek">>"I can't ever be pure again, but... I at least want to go back to the way I was before," you say. <<case "bratty">>"I don't want to think about how I was before anymore," you say. <<default>>"It's nothing but a reminder of what things were like before," you say. <</switch>> <br><br> "You can't erase it," <<he>> says quickly. "There's no erasing it, ever. There's no forgetting either. There's only acceptance, or misery." <<He>> smiles. "Let's work on the former." <<else>> <<switch $speech_attitude>> <<case "meek">>"I... I'm in..." You can't muster the words. <<case "bratty">>"I'm bothered. Sexually. Like an animal." <<default>>"It's that time of year," you say, trying to hide your embarrassment. <</switch>> <br><br> <<if _gwylanTF.known>> <<if _gwylanStatus.includes("heat")>> <<He>> snickers. "That makes two of us. Maybe we should do something about that later." <<else>> <<He>> smiles. "I know something that can help relieve the pressure. I don't usually have to deal with it myself, I'm a bit... numb to it." <<He>> puts <<his>> hands over <<his>> belly. <</if>> <<else>> <<He>> smiles. "I understand. It's a hard impulse to overcome. This won't rid you of that, but it may at least make you feel less animalistic about it." <</if>> <</if>> <br><br> <<if $hypnosis_potency gt 4 or $hypnosis_traits.devotion gte 4>> <<He>> raises a single finger. "Follow it." <<He>> moves <<his>> hand side to side, then up and down. You follow it, and as you do, it almost looks like a small light forms on the tip. <br><br> <span class="purple">You quickly realise you're no longer able to look away.</span> <<else>> <<He>> reaches into the neck of <<his>> robes, and pulls out a pendant tipped with <<if $gwylanTalked.includes("jasper")>>jasper<<else>>a reddish gem<</if>>. "Follow it." <<He>> moves it side to side. Your eyes follow. <</if>> <br><br> "There's nothing in the forest except us." Everything outside the room slowly fades away. The corners of your vision blur, until there's nothing left but Gwylan. "Good. The next time you doubt your inner self, remember..." <br><br> <<set $_devotionUp to 10 + $hypnosis_potency>> <<gwylanHypnosis "devotion" $_devotionUp>> <br><br> <<He>> snaps <<his>> fingers, and you're no longer where you once were. <br><br> <<link [[Next|Gwylan Hypnosis Peace 2]]>><<pass 10>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<gwylanHypnoCanvas>><<strip>> <<revealTransformations>> <<set _tf to checkTFparts()>> <<set _earFind to Object.keys(T.tf).find(ear => ear.includes("Ears"))>> <<switch _earFind>> <<case "wolfEars">><<set _earText to "wolf ears">> <<case "catEars">><<set _earText to "cat ears">> <<case "cowEars">><<set _earText to "cow ears">> <<case "foxEars">><<set _earText to "fox ears">> <<default>><<set _earText to "error">> <</switch>> <<set _tailFind to Object.keys(T.tf).find(tail => tail.includes("Tail") && tail !== "demonTail_colour")>> <<switch _tailFind>> <<case "wolfTail">><<set _tailText to "wolf tail">> <<case "catTail">><<set _tailText to "cat tail">> <<case "cowTail">><<set _tailText to "cow tail">> <<case "foxTail">><<set _tailText to "fox tail">> <<case "birdTail">><<set _tailText to "bird tail">> <<case "demonTail">><<set _tailText to "demon tail">> <<default>><<set _tailText to "error">> <</switch>> You lie in a sea of roses. You feel more naked than you've ever been. <<if _unhidden>> The parts of yourself that you were previously hiding are exposed. <</if>> Someone is watching you, unravelling you with their gaze, but you don't know from where. <br><br> <<if _tf.wolfEars or _tf.catEars or _tf.foxEars>> "Sharpest of ears, listen well." <<elseif _tf.cowEars>> <<if $phase is "cow">> "Docile ears, seeking to return to humanity. Listen well." <<else>> "Docile ears, yearning for the praise of cattle. Listen well." <</if>> <<else>> "Listen well." <</if>> The voice makes you jump as it reverberates around you. The roses all tremble in unison. <span class="purple">You feel a breath on your ears.</span> You turn, and there's nobody. <<stress 2>><<gstress>> <br><br> The sky is pink. You feel fingers creep along your skin. A storm of rose petals swirls around you, and when they pass, Gwylan is embracing you. <br><br> <b>"<span class="witch">Delusion. Truth. The only difference is the face of the coin.</span>"</b> <br><br> <<if _earFind>> <<His>> hand runs along your head, rubbing your <<= _earText>>. <<He>> whispers. "Let them listen softly. The harsh sounds of civilisation are grating. Let there be no shame in hiding them away, lest your hearing become dull." <<He>> places <<his>> other hand on them, and lifts. <span class="red">Your ears lift away.</span> It looks like a headband. <<if _tf.cowHorns or _tf.demonHorns>> Your horns are on it, too. <</if>> <<He>> holds it in front of you, ensuring you can see it. <<if _tf.foxEars and _gwylanTF.known>> "I won't deny how this pains me, too. I see in you a kindred spirit, and it breaks my heart to see you made to hide away your beauty. I hope you'll still show your true self to me." <</if>> <<He>> puts it in your hands. "They will be here for you when you wish to hear the truth again." <br><br> <<elseif _tf.cowHorns or _tf.demonHorns>> <<His>> hand runs along your head, rubbing your horns. <<He>> whispers. "Shave them down, if you wish. They will grow back in time, when you feel you need their protection again." <<He>> places <<his>> other hand on them, and lifts. <span class="red">Your horns lift away.</span> It looks like a headband. <<He>> holds it in front of you, ensuring you can see it. <<He>> puts it in your hands. <br><br> <</if>> <<if _tf.angelHalo>> You hear a soft, metallic thrum as <<he>> runs <<his>> hand along your halo. "The light can't remain forever. A candle must be snuffed to allow one to rest." <<He>> gently grasps it, <span class="red">and pulls.</span> It's a headpiece with translucent resin, giving it the appearance of a real floating halo. It reflects the light extremely well. "When the darkness becomes too much, one merely needs to light another. Keep it safe, and it will keep you safe in turn." <br><br> <<elseif _tf.fallenAngelHalo>> You hear a discordant thrum as <<he>> runs <<his>> hand along the shards of your halo. "Are you ashamed? Is this self-flagellation for your loss?" <<He>> gently grasps it, <span class="red">and pulls.</span> It's a headpiece with translucent resin, giving it the appearance of a real floating halo. It's cracked and deformed in several places. "It's healthy to look back upon what could have been done differently, but it should not consume you. Life goes on, my dear." <br><br> <</if>> <<if _tailFind>> <<His>> hands trace down your body, making you shiver. They stop around your <<bottom>>. You suddenly feel off balance. <<He>> walks around you, <span class="red">now holding your disembodied <<= _tailText>></span>. There's an angled, rigid clip on the end. "Balance. Attracting mates. One must learn to crawl before they can walk, and you, my gentle one, face the challenge of sprinting in two different worlds." <<He>> hands you your tail. "The pace is yours to set. It will be ready for you to rejoin the wild, but only when you are, too." <br><br> <</if>> <<if _tf.catHeterochromia>> <<He>> cups your cheeks, and <<his>> hand approaches your eye. <span class="red"><<He>> pulls out a coloured contact lens.</span> "The eyes are the window to the soul. Does yours hold many facets?" <<He>> places it in a small case, and hands it to you. <br><br> <</if>> <<if _tf.birdWings or _tf.angelWings or _tf.fallenAngelWings or _tf.demonWings>> <<His>> arms wrap around you again. <<His>> hands rub your wings. <<if _tf.birdWings>> "These wings, these magnificent wings. If you find them too beautiful to show the world, let them fold without guilt. The sky will be waiting for you." You hear several clicks, and a sudden weight drops from your body. You somehow feel both lighter and heavier. <span class="red"><<He>> holds a strange backpack-like device, with large wing membranes on each side of it.</span> It's covered in straps and chords. "Only where the wind permits." Feathers fall all around you. <<elseif _tf.demonWings>> "An extra pair of limbs to embrace. Ever closer. A provocation themselves. Such things must be tempered." You hear a click, and a sudden weight drops from your body. You somehow feel both lighter and heavier. <span class="red"><<He>> holds a pair of bat-like wings.</span> "Should you need their comfort again, their embrace will return." <<else>> "Radiance. Tragedy. The most intimate reflections." You hear a click, and a sudden weight drops from your body. You somehow feel both lighter and heavier. <span class="red"><<He>> holds a pair of angel wings.</span> <<if _tf.fallenAngelWings>> They're worn and tattered. <<else>> They're white and fluffy. <</if>> "Should you need their comfort again, their embrace will return." <</if>> <br><br> <</if>> You feel like you've been shattered. You huddle in on yourself, scared and confused, clutching the pieces torn from your body. Was it ever real? <<trauma 16>><<ggtrauma>> <br><br> Just as you're about to slip further, <span class="green">they return to you</span>. "Do you understand?" Gwylan holds you tightly, stroking your hair. "Justifications. Illusions. All that matters is what you believe, and what you can bear." <<if _tf.birdWings or _tf.angelWings or _tf.fallenAngelWings or _tf.demonWings>> <<He>> rubs your wings. They can feel <<his>> hands. <</if>> <<if _tailFind>> Your tail moves on its own. <</if>> <<if _earFind>> You hear <<his>> whispers through your <<= _earText>>. <</if>> <<if _tf.angelHalo>> Your halo lights <<his>> face. <<elseif _tf.fallenAngelHalo>> Your broken halo briefly comes back together. <</if>> <br><br> With or without them, real or facsimile, you feel whole. <br><br> <<set _hypnoDays to 10 + ($hypnosis_potency * 3)>> <<gwylanHypnosis "peace" _hypnoDays>> <br><br> <<if $fox gte 6 and $gwylanSeen.includes("romance") and $phase is "identity">> <<link [[Next|Gwylan Hypnosis Peace Fox Breakdown]]>><</link>> <<else>> "Awaken." <<He>> snaps <<his>> fingers. <br><br> <<link [[Next|Gwylan Hypnosis Peace Wake]]>><<pass 30>><<clotheson>><</link>> <</if>> <br><<effects>><<run statusCheck("Gwylan")>> You close your eyes. <br><br> Nothing happens. You're still in the sea of roses. <br><br> Gwylan stares down at you. <span class="purple"><<His>> expression has changed.</span> <<His>> fox ears twitch. <br><br> "My dearest kin..." <<His>> mouth comes close to yours. "You're breaking my heart." <br><br> <span class="red">The sky turns a deep red.</span> "You say this isn't who you are?" <<His>> voice isn't gentle anymore. "You are the only other person in the world who understands what this is like, to be mated for life. You promised forever. Now you tell me that it isn't who you are?" <br><br> <<His>> breathing is fast and shallow. <<His>> pupils are slits. "Do you wish to abandon what you are? Do you wish to leave me cold and alone again?" <br><br> <<He>> looks around in panic and confusion. <span class="purple">You only now realise that <<his>> lips aren't moving when <<he>> speaks anymore.</span> <<He>> puts <<his>> hands over <<his>> ears. <br><br> "You're the only one who understands." A crack forms on <<his>> forehead.<br> "Perhaps you don't understand enough." The crack escapes <<his>> head, taking the shape of an antler.<br> "Perhaps you need to learn what an eternity alone feels like." The sky begins turning black.<br> "Without me." Gwylan starts getting pulled away from you. <<He>> reaches out for you in desperation.<br> "When it all returns to the tide." <br><br> You're both pulled into a black abyss. <<trauma 36>><<npcincr Gwylan dom -30>><<gggtrauma>><<lllyearning>> <br><br> "<<gwylanCommand "Awaken!">>" Gwylan desperately screams as <<his>> head is pulled under. <br><br> <<link [[...|Gwylan Hypnosis Peace Wake]]>><<pass 30>><<set $phase2 to "breakdown">><<clotheson>><</link>> <br><<set $location to "forest_shop_garden">><<effects>><<run statusCheck("Gwylan")>><<set _tf to checkTFparts()>> <<canvas-model-override "clear">> <<rehideTransformations>> <<if $phase2 is "breakdown">> Your focus snaps back. You're back in the garden. <br><br> Gwylan is still holding you. <<His>> hands are shaking. "I'm sorry about that," <<he>> says unsteadily. "I... I suppose I had some bad thoughts of my own that needed to be put away." <<He>> looks up. Tears streak down <<his>> face, but <<he>> quickly wipes them away. "I'm fine." <<else>> Your focus slowly returns. You're back in the garden. <<if $fox gte 6>> Gwylan is sitting behind you, brushing your tail. <<He>> pulls out clumps of loose fur, and it looks much more sleek than it did before. <br><br> <<if _gwylanTF.known>> "...and I personally find that pet shampoo works just as well, and leaves it quite fragrant. <<if random (0, 1) and !$gwylanSeen.includes("romance")>> If you've got a regular bed partner, you can use some perfumes made for people with allergies or sensitive skin. I recommend scents that can help soothe your partner if they have a habit of hugging your tail in their sleep, or spice things up when it's time to get hot and heavy, depending on what you want." <<else>> How do you think mine smells, dear?" <<His>> tail whiffs across you nose. <br><br> You rub your eyes. "It smells like fresh rain," you say. <br><br> <<He>> giggles. "So, like the rest of me, then." <</if>> <<else>> "...and I personally find that pet shampoo works just as well, although I wouldn't recommend trying to get that close to a wild fox in most circumstances unless you really know what you're doing." <</if>> <<He>> spends some more time brushing it. It feels good. <<if !_tf.foxTail>> When <<he>> releases your tail, it vanishes the next time you blink. <</if>> <<stress -3>><<lstress>> <</if>> <</if>> <br><br> The incense has burned out. "You should feel better now. I hope I've brought you peace." <<He>> starts to gather <<his>> things. <<if $phase is "heat" and $phase2 isnot "breakdown">> <<He>> pauses. "Oh! Would you also like help with your... <<if playerHeatMinArousal() gte 1 and playerRutMinArousal() gte 1>> heat and rut issue?" <<elseif playerRutMinArousal()>> rut issue?" <<else>> heat issue?" <</if>> <</if>> <br><br> <<set $gwylanSeen.pushUnique("hypnosis_peace")>> <<if $phase is "heat" and $phase2 isnot "breakdown">> <<link [[Nod|Gwylan Hypnosis Peace Heat]]>><</link>> <br> <</if>> <<link [[Go back in the shop|Gwylan Hypnosis End]]>><<endevent>><</link>> <br><<effects>><<run statusCheck("Gwylan")>><<set _tf to checkTFparts()>> You nod eagerly. <<if !$gwylanSeen.includes("ritual_sex")>>Gwylan blushes.<</if>> <br><br> "Alright, here, lay on your stomach like this." <<He>> guides you to laying flat on your tummy. <br><br> <<outfitChecks>> "You're going to feel my hand now, alright? Don't be alarmed." <<if _bottom>> You feel <<his>> hand slip under your clothes, where it rests <<else>> You feel <<his>> hand trail down your skin, where it rests <</if>> <<if _tf.wolfTail or _tf.catTail or _tf.foxTail or _tf.cowTail or _tf.demonTail>> right above your tail. <<else>> on your lower back. <</if>> "Just relax." <br><br> <<He>> starts to rub and knead the spot. You melt into <<his>> touch immediately. It feels amazing. <<stress -6>><<arousal 800>><<lstress>><<garousal>> <br><br> You let out an involuntary whine, which prompts <<him>> to giggle. "There's a <<pcpetname "Gwylan" "good">>." Being called that right now makes you feel strange, in a good way. Your legs shake with pleasure each time <<he>> presses <<his>> fingers against your tailbone. "Here, turn over." You eagerly obey, laying on your back. <br><br> <<He>> presses <<his>> hand firmly on your pelvis, <<if $player.vaginaExist and $player.penisExist>> right above your <<penis>> and your womb. <<He>> keeps eye contact with you the whole time, either unaware of or ignoring your erection. <<elseif $player.vaginaExist>> right above your womb. <<else>> right above your <<penis>>. <<He>> keeps eye contact with you the whole time, either unaware of or ignoring your erection. <</if>> <<He>> slowly presses down, and starts to massage your tummy. Your hips lift by themselves as <<he>> does. <<He>> rubs in small circles, alternating between light and heavy pressure. You grip the blankets. <<arousal 2500>><<ggarousal>> <br><br> <<if $arousal gte $arousalmax>> It's too much. <<if $player.vaginaExist>>Your womb is on fire.<</if>> You tense up, letting out short, shallow moans. <<orgasm>> <<if _deniedOrgasm>> <<He>> frowns upon seeing your lack of release. "That wasn't natural." <<elseif $gwylanSeen.includes("ritual_sex")>> <<He>> giggles again. "There, isn't that better?" <<else>> <<His>> blush deepens. "Oh my. It's alright, I don't mind. It's a natural response." <</if>> <<npcincr Gwylan lust 1>><<glust>> <br><br> <<He>> hums as you pant. Once you're steady, <<he>> helps you up. <br><br> <<link [[Next|Gwylan Hypnosis End]]>><<endevent>><</link>> <br> <<else>> <<if !$gwylanSeen.includes("ritual_sex")>> <<if _bottom>> "If you want more help, I'll need to remove your _bottom.name, is that alright?" <<else>> "Do you need me to continue?" <</if>> <<Hes>> not looking at you anymore. "This won't change anything between us. It's just a favour for a friend." <br><br> <<link [[Nod|Gwylan Hypnosis Peace Heat 2]]>><<npcincr Gwylan lust 2>><</link>><<glust>> <br> <<link [[Stop here|Gwylan Hypnosis End]]>><<endevent>><</link>> <br> <<elseif _gwylanStatus.includes("heat") and _gwylanTF.known>> <<He>> suddenly stops, and stares down at you for a long moment. <<if _bottom>> Without provocation, <<he>> <span class="pink">grabs your _bottom.name in <<his>> teeth and yanks it down</span>. <<else>> <<He>> shivers. <</if>> "Let's just solve this for both of us." <br><br> <<link [[Next|Gwylan Hypnosis Peace Heat Sex]]>><<set $sexstart to 1>><</link>> <br> <<elseif _gwylanStatus.includesAny("aroused", "lust")>> <<if _bottom>> <<He>> starts to slowly pull down your _bottom.name, and straddles you. "I'll make sure you feel better," <<he>> says with a seductive smile. <<else>> <<He>> straddles you. "I'll make sure you feel better," <<he>> says with a seductive smile. <</if>> <br><br> <<link [[Next|Gwylan Hypnosis Peace Heat Sex]]>><<set $sexstart to 1>><</link>> <br> <<else>> <<if _bottom>> <<He>> starts to pull down your _bottom.name. <</if>> "I'll have to get a little more hands-on. Is that alright?" <br><br> <<link [[Nod|Gwylan Hypnosis Peace Heat 2]]>><<npcincr Gwylan lust 2>><</link>><<glust>> <br> <<link [[Stop here|Gwylan Hypnosis End]]>><<endevent>><</link>> <br> <</if>> <</if>><<effects>><<run statusCheck("Gwylan")>><<set _tf to checkTFparts()>> You nod again, and <<he>> slips off your _bottom.name. <<lowerstrip>> <br><br> <<if $player.penisExist and $player.vaginaExist and !$gwylanSeen.includes("herm")>> <<set $gwylanSeen.pushUnique("herm")>> <<His>> eyes widen slightly upon seeing your <<genitals>>. <<if C.npc.Gwylan.gender is "h">> "We're alike in many ways, aren't we?" <<else>> "Wow. I've never seen a rebis in person before. You're full of surprises!" <</if>> <<elseif $crossdressing gte 1 and !$genderknown.includes("Gwylan")>> <<His>> head tilts slightly upon seeing your <<genitals>>. "Unexpected genitalia, not that I particularly mind." <</if>> <<set $genderknown.pushUnique("Gwylan")>> <<if $player.penisExist and $player.vaginaExist>> <<He>> gently wraps <<his>> hand around your shaft. The tip of each of <<his>> fingers send a tingle down it. <<He>> slowly runs <<his>> hand up and down, and uses <<his>> other hand to rub your <<pussy>>. Once <<hes>> sure you're ready, <<he>> gently slips two fingers in. <<elseif $player.penisExist>> <<He>> gently wraps <<his>> hand around your shaft. The tip of each of <<his>> fingers send a tingle down it. <<He>> slowly runs <<his>> hand up and down. <<else>> <<He>> gently starts to rub your <<pussy>>. Once <<hes>> sure you're ready, <<he>> gently slips two fingers in. <</if>> <<if playerChastity()>> Even with your $worn.genitals.name in the way, <<he>> manages. <<elseif $player.vaginaExist>> <<His>> fingers curl in just the right way to hit your most sensitive spots. <<else>> <<His>> thumb rubs the head smoothly. <</if>> <br><br> <<if $player.sex isnot "h">> <<He>> continues pressing on your tummy while servicing you. <<else>> After a moment, <<he>> withdraws <<his>> hand from your <<pussy>> to press on your tummy again. <</if>> <<if $player.vaginaExist>>Your womb is on fire.<</if>> Your hips buck as you let out a final moan. <<orgasm>> <<He>> smiles, <<his>> face a bright red. "Better?" You nod, still panting. <<He>> lays down next to you while you recover. <br><br> You lay there for a few minutes, until Gwylan helps you stand. <br><br> <<link [[Next|Gwylan Hypnosis End]]>><<clotheson>><<endevent>><</link>> <br><<run statusCheck("Gwylan")>> <<if $sexstart is 1>> <<set $sexstart to 0>> <<consensual>> <<set $consensual to 1>> <<neutral 1>> <<maninit>> <<npcexpose>> <<set $enemytrust += 200>> <<gwylanCombatInit>> <</if>> <<if $timer lte 0 and $trance is 1>> <<set $trance to 0>> <span class="teal">You snap out of Gwylan's trance.</span> <</if>> <<effects>> <<effectsman>> <<man>> <<stateman>> <br><br> <<actionsman>> <<if $orgasmcurrent gte $combat_player_orgasm_target>> <span id="next"><<link [[Next|Gwylan Hypnosis Peace Heat Sex Finish]]>><</link>></span><<nexttext>> <<elseif _combatend>> <span id="next"><<link [[Next|Gwylan Hypnosis Peace Heat Sex Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Gwylan Hypnosis Peace Heat Sex]]>><</link>></span><<nexttext>> <</if>><<effects>><<run statusCheck("Gwylan")>> <<if $orgasmcurrent gte $combat_player_orgasm_target>> <<set $enemyarousal += 200>> <<if $enemyarousal gte $enemyarousalmax>> <<if $hallucinations gte 2 and $NPCList[0].chest isnot "clothed">> The tattoo on Gwylan's <<bellyDescription "Gwylan">> flares to life, and <<he>> shivers as you climax. <<else>> Your <<if $orgasmcurrent gt 1>>final<</if>> orgasm makes Gwylan shiver. <</if>> <span class="pink">It pushes <<him>> over the edge too.</span> <<ejaculation>><<npcincr Gwylan lust -25>><<llllust>> <<else>> <<if _gwylanStatus.includesAny("dom", "lust")>> <<He>> hums and holds you tight you as you recover from your <<if $orgasmcurrent gt 1>>final<</if>> orgasm. <<gwylanHypnosis "devotion" 2>><br> <<if $consensual is 1>> "You did great, <<pcpetname "Gwylan">>," <<else>> "There, isn't that better?" <</if>> <<he>> coos. <<else>> <<He>> makes a pleased sound as your <<if $orgasmcurrent gt 1>>final<</if>> orgasm subsides. <<gwylanHypnosis "devotion" 1>><br> "That should do," <<he>> says. <<if $consensual is 0>> "The struggle was thrilling, dear, but I'm only trying to help you." <</if>> <</if>> <<if $penisfucked is 1>> <<He>> rubs <<his>> <<bellyDescription "Gwylan">> in satisfaction until you pull out of <<him>>. <<elseif $vaginafucked is 1>> <<He>> rubs your <<bellyDescription>> in satisfaction, and pulls out. <</if>> <<npcincr Gwylan lust 5>><<gglust>> <br><br> <</if>> <<elseif $enemyarousal gte $enemyarousalmax>> <<ejaculation>> <<if $orgasmcurrent is 0 and $hypnosis_traits.devotion>> <<gwylanHypnosis "devotion" -2>> <</if>> <<npcincr Gwylan lust -20>><<lllust>> <<elseif $enemyhealth lte 0>> <<set $gwylan.punishment to true>> Gwylan rolls away from you. "That hurt, dear." <<He>> giggles dryly. "Naughty, naughty. I'll remember this." <<npcincr Gwylan dom -2>><<lyearning>> <br><br> <<else>> Gwylan rolls away from you. <</if>> <<He>> helps you stand. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Gwylan Hypnosis End]]>><<endevent>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<if $hypnosis_potency gt 4 or $hypnosis_traits.devotion gte 4>> <<He>> raises a single finger. "Follow it." <<He>> moves <<his>> hand side to side, then up and down. You follow it, and as you do, it almost looks like a small light forms on the tip. <br><br> <span class="purple">You quickly realise you're no longer able to look away.</span> <<else>> <<He>> reaches into the neck of <<his>> robes, and pulls out a pendant tipped with <<if $gwylanTalked.includes("jasper")>>jasper<<else>>a reddish gem<</if>>. "Follow it." <<He>> moves it side to side. Your eyes follow. <</if>> <br><br> "There's nothing in the forest except us." Everything outside the room slowly fades away. The corners of your vision blur, until there's nothing left but Gwylan. "Good. The next time you hear these whispers, remember..." <br><br> <<set $_devotionUp to 10 + $hypnosis_potency>> <<gwylanHypnosis "devotion" $_devotionUp>> <br><br> <<He>> snaps <<his>> fingers, and you're no longer where you once were. <br><br> <<link [[Next|Gwylan Hypnosis Silence 2]]>><<pass 10>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<gwylanHypnoCanvas>> <<set $slimeOrigin to []>> <<if $parasite.left_ear?.origin is "Wraith" or $parasite.right_ear?.origin is "Wraith">> <<set $slimeOrigin.push("Wraith")>> <</if>> <<if $parasite.left_ear?.origin is "landfill" or $parasite.right_ear?.origin is "landfill">> <<set $slimeOrigin.push("landfill")>> <</if>> <<if !$slimeOrigin.length>> <<set $slimeOrigin.push("landfill")>> <</if>> <<if $slimeOrigin.includes("landfill")>> <<set $location to "landfill">> <<else>> <<set $location to "forest">> <</if>> <<if $slimeOrigin.includesAll("Wraith", "landfill")>> You are in the landfill on Elk Street. Piles of trash spiral into the sky, which is split in two. <br><br> The pillars of trash slowly become trees in the distance, and those trees then become pale tendrils. You see the lake nearby, too. The forest and landfill are grafted together with stitches, the space between lost. <<elseif $slimeOrigin.includes("Wraith")>> You are at the edge of the lake. The trees are made of undulating pale tendrils. <<else>> You are in the landfill on Elk Street. Piles of trash spiral into the sky. <</if>> <br><br> Something with antlers <<if $slimeOrigin.includesAll("Wraith", "landfill")>> emerges from the lake on many legs, and stalks between the heaps of trash. <<elseif $slimeOrigin.includes("Wraith")>> emerges from the lake on many legs. <<else>> walks on many legs between heaps of trash. <</if>> It doesn't belong here. <br><br> <span class="lewd">You feel the <<pluralise numberOfEarSlime(true) "slime">> in your head command you to approach.</span> It promises rewards if you comply and threatens consequences if you do not. <br><br> <<link[[Approach it|Hypnotic Silence Creature]]>><<set $phase to 0>><<stress -6>><<trauma -12>><</link>><<lltrauma>><<lstress>> <br> <<link[[Run from it|Hypnotic Silence Creature]]>><<set $phase to 1>><<stress 6>><<trauma 6>><<set $hypnosis_potency++>><</link>><<gwylanHypnoNote 1>> <br><<effects>> <<if $phase is 0>> <<if $slimeOrigin.includesAll("Wraith", "landfill")>> You walk the grafted line in the landscape, each step opening an old wound, <<elseif $slimeOrigin.includes("Wraith")>> You wade into the water, <<else>> You weave through the rubbish, <</if>> every step threatening to scare it away. It stays still as you draw closer. You reach a hand out, and it bows to you. Your palm connects with the top of its head. Now you know why it was here. You're glad that you could help it. <<else>> You resist the whispers. You turn and run from it. Each step sinks you further and further into the <<if $slimeOrigin.includesAll("Wraith", "landfill")>> wounds. <<elseif $slimeOrigin.includes("Wraith")>> water. <<else>> rubbish. <</if>> <br><br> You fall. <br><br> Its towering legs flank to your side. It bows to you, and you reach out to help yourself up. Your hands grasp either side of its head. Now you know why it was here. You're glad that it could help you. <</if>> <br><br> You lead your new companion away. <br><br> Something goes wrong. Its antlers are tangled in <<if $slimeOrigin.includesAll("Wraith", "landfill")>> the stitches that hold the world together. <<elseif $slimeOrigin.includes("Wraith")>> the tendrilled trees. <<else>> the fence. <</if>> Your hands are tangled in its antlers. Your antlers are tangled in <<pher>> hands. You don't know how this happened, only that this is now. You can't help each other like this. <br><br> <<link [[Struggle|Hypnotic Silence Creature 2]]>><<set $phase to 0>><</link>> <br> <<link [[Accept|Hypnotic Silence Creature 2]]>><<set $phase to 1>><</link>> <br><<effects>> <<if $phase is 0>> You try to pull your hand away. It's stuck. Using your other hand, you claw at yourself. Red sloughs off, and it's not clear from whom. You are both tugging on your hand and pushing into it. <<elseif $phase is 1>> You remain still. It pushes its head into the <<if $slimeOrigin.includesAll("Wraith", "landfill")>> stitches, <<elseif $slimeOrigin.includes("Wraith")>> trees, <<else>> fence, <</if>> into you. You push into your own hand. <</if>> Your antlers are tangled in the <<if $slimeOrigin.includesAll("Wraith", "landfill")>> stitches. <<elseif $slimeOrigin.includes("Wraith")>> trees. <<else>> fence. <</if>> <<pHer>> hands are tangled in your antlers. <br><br> <span class="red">You bite into your arm.</span> <br><br> Something approaches. Someone. <<He>> sings without sound. <<His>> hands are on your hands. <<His>> hands are on your antlers. Your hands are your antlers. <br><br> <<link [[Next|Hypnotic Silence Creature 3]]>><</link>> <br><<effects>> <<strip>> <<He>> pulls you apart. You dissolve. Hundreds of small, shiny creatures crawl away, leaving trails of red slime. You lie naked in <<his>> arms. <br><br> A hand rests on your head. You look up and see Gwylan. <<He>> smiles at you. It's tinged with sadness. "Sometimes, hounds wear the coats of foxes," <<he>> says. "What seems symbiotic is often parasitic. It hates to hear us sing, yet loves to hear us scream. Remember this." <br><br> <<His>> hand rubs your cheek. "Remember that you are you. Remember what will happen if you lose yourself." <<His>> hands clasp over your ears, and all goes silent. <br><br> <<His>> lips continue to move. <<His>> words appear directly in your head. "When these whispers slip into your ears again, you will not hear them. They are not you. Only you are you." <<if $gwylanSeen.includes("partners")>> The sadness leaves <<his>> smile. "And you, my dear, are perfect as you are." <</if>> <br><br> <<He>> closes your eyelids, and you slip further into blissful silence. "Awaken." <br><br> <<link [[Next|Gwylan Hypnosis Silence Wake]]>><<pass 30>><<clotheson>><</link>> <br><<set $location to "forest_shop_garden">><<effects>><<run statusCheck("Gwylan")>> <<canvas-model-override "clear">> Your focus slowly returns. You're back in the garden. <<corruption -20>><<lllcorruption true>> <br><br> The incense has burned out. "You'll be numb to the signals for some time. Like they aren't even there, hopefully." <<He>> starts to gather <<his>> things. "If it starts to wear down, come back and I'll shut them right up again. Otherwise, they should be considerably weaker when they do come back." <br><br> <<He>> smiles and helps you stand. "Easy, you might be off balance for a little while." <br><br> <<set _hypnoDays to 5 + ($hypnosis_potency * 2)>> <<gwylanHypnosis "silence" _hypnoDays>> <<if $earSlime.growth gte 50>> <<set $earSlime.growth to 49>> <</if>> <<set $earSlime.defyCooldown to 50>> <<set $earSlime.eventTimer to 10>> <<set $earSlime.event to "">> <<run delete $earSlime.forcedDressing>> <<run delete $earSlime.noSleep>> <<run delete $earSlime.alwaysSleepNaked>> <br><br> <<set $gwylanSeen.pushUnique("hypnosis_silence")>> <<link [[Go back in the shop|Gwylan Hypnosis End]]>><<endevent>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<switch $phase>> <<case "insomnia">> "I just can't seem to fall asleep," you say. "Sometimes it leads to me sleeping in." <br><br> <<He>> nods. "That could be caused by any number of things, even the smallest lingering trouble. Let's talk about it." <<case "nightmares">> "I have nightmares," you say. "Really bad ones." <br><br> <<He>> nods. "I'll have you tell me all about them, then. Anything you can remember will help." <<case "anxiety">> <<if $anxiety gte 2>> "I can't ever keep my mind calm enough to sleep," you say. "I'm always so anxious." <<else>> "I can't get certain thoughts out of my head," you say. "I'm always anxious." <</if>> <br><br> <<He>> nods. "We'll talk about what's making you anxious, then." <<case "panic">> <<if $panicattacks gte 2>> "I think I thrash around in my sleep," you say. "It sometimes feels like something is attacking me from all over." <<else>> "I get panic attacks," you say. "Even when I'm just laying in bed." <</if>> <br><br> <<He>> nods. "We'll talk about what you're afraid of, and what makes you jump." <<case "flashbacks">> "These scenes keep replaying in my head," you say. "I can't stop thinking about them." <br><br> <<He>> frowns. "I can't make you forget what happened, but I can help you face it." <<case "dissociation">> <<if $dissociation gte 2>> You stare ahead blankly. You don't know how to explain it. You don't even know if you're really here, if Gwylan is real. <br><br> You see a strange shape on Gwylan's head. You don't pay it any mind. There'd be no use struggling anyways. <br><br> <<His>> head tilts. "Oh my. It's worse than I thought." <<else>> "It's hard to tell when I'm awake and when I'm dreaming," you say. You shift side to side. "I'm really here, right? This isn't another nightmare?" <br><br> <<He>> smiles. "Yes, dear, this is real. I'll prove it to you. If it's this bad, then it should be easier for me to help you. I'll need you to trust me completely, though." <</if>> <</switch>> <br><br> <<if $gwylanSeen.includes("romance")>> <<He>> crawls around the table, and gently pushes your chest until you're laying down. <<He>> lays next to you. <<elseif _gwylanStatus.includesAny("aroused", "lust", "dom")>> <<He>> pats <<his>> lap. You shift over and lay your head down in it. <<else>> <<He>> motions for you to lay down. You do so. <</if>> <br><br> <<if $hypnosis_potency gt 4 or $hypnosis_traits.devotion gte 4>> <<He>> raises a single finger. "Follow it." <<He>> moves <<his>> hand side to side, then up and down. You follow it, and as you do, it almost looks like a small light forms on the tip. <br><br> <span class="purple">You quickly realise you're no longer able to look away.</span> <<else>> <<He>> reaches into the neck of <<his>> robes, and pulls out a pendant tipped with <<if $gwylanTalked.includes("jasper")>>jasper<<else>>a reddish gem<</if>>. "Follow it." <<He>> moves it side to side. Your eyes follow. <</if>> <br><br> "There's nothing in the forest except us." Everything outside the room slowly fades away. The corners of your vision blur, until there's nothing left but Gwylan. "Good. Now, tell me, the last time you had trouble sleeping..." <br><br> <<set $_devotionUp to 10 + $hypnosis_potency>> <<gwylanHypnosis "devotion" $_devotionUp>> <br><br> <<He>> snaps <<his>> fingers, and you fall asleep. <br><br> <<link [[Next|Gwylan Hypnosis Slumber Insomnia]]>><<pass 10>><<tiredness -1>><</link>><<ltiredness>> <br><<set $location to "meadow">><<effects>><<run statusCheck("Gwylan")>> <<gwylanHypnoCanvas>><<set $slumberDifficultyLow to 300>><<set $slumberDifficultyHigh to 600>> <<if $hypnosis_traits.slumber>> <<set $slumberDifficultyLow -= 100>><<set $slumberDifficultyHigh -= 100>> <</if>> Your eyes flutter open. <span class="red">You're inside a gargantuan rib cage.</span> The ribs are made of wood bleached white. A thin membrane stretches in between each massive trunk. It expands and contracts in a way that reminds you of breathing. You find that you match the rhythm of its rise and fall. <br><br> A voice breaks your trance. "Can't sleep, <<pcpetname "Gwylan" "name">>?" <br><br> You turn around. Gwylan sits in front of you amid a bed of <<if isLoveInterest("Gwylan")>>pink<<else>>red and white<</if>> roses. <<He>> twirls one by its stem. <br><br> "I can't either," <<he>> continues. "It's keeping me awake." <br><br> <<He>> points, but you don't need <<him>> to. You can hear the song coming from behind <<him>>. It's all you can hear. The call of something that has spent an eternity alone, only to find a kindred spirit at last. <br><br> <<if $nightmares gte 1>> <<link [[Confront your nightmares|Gwylan Hypnosis Slumber Nightmares]]>><</link>><<gtrauma>><<gwylanHypnoEffect>><<note "Nightmares" "blue">> <br> <<else>> <<link [[Delve into a nightmare|Gwylan Hypnosis Slumber Nightmares]]>><</link>><<gggtrauma>><<gwylanHypnoEffect>><<willpowerdifficulty $slumberDifficultyLow $slumberDifficultyHigh>> <br> <</if>> <<link [[Turn away and escape the vision|Gwylan Hypnosis Slumber Nightmares]]>><<set $phase to "wake">><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<if $nightmares gte 1 and $phase isnot "wake">> <<set _continue to true>> <span class="blue">You're no stranger to nightmares.</span> <<trauma 12>><<set $hypnosis_potency++>><<gtrauma>><<gwylanHypnoEffect>> <<elseif $willpowerSuccess and $phase isnot "wake">> <<set _continue to true>><<set $slumberDifficultyLow += 200>><<set $slumberDifficultyHigh += 200>> <span class="green">You shake away the tingling fear shooting through your fingertips.</span> They yearn to hold something. <<trauma 50>><<set $hypnosis_potency++>><<gggtrauma>><<gwylanHypnoEffect>> <<else>> <<if $phase isnot "wake">> <span class="red">You stand paralysed.</span> The ribcage becomes still, as does your breathing. Gwylan stands, taking your hands. <br><br> <</if>> You turn away from the song, and focus on Gwylan. <<He>> smiles sadly. "Without confronting our nightmares, they will only fester into something darker." <</if>> <br><br> <<if _continue>> <<tiredness -1>><<pass 10>> You walk around Gwylan. <<He>> doesn't stop you. A knife rests buried in the ground just behind <<him>>. Its handle is made of bone. A circle of purple bulbs sway around it. They part for you as you advance. The knife's song grows louder. It is deep and mournful, pulling at parts of you that you didn't know existed. <br><br> "I can't," Gwylan says. "This isn't my thorn to pull." <br><br> <<Hes>> standing next to you now. <<His>> hand is around your wrist. Nails bite into your skin. A thin sheen of sweat glistens on <<his>> brow. <<His>> eyes are trained on the knife, pupils little more than dots in the middle of <<his>> irises. <br><br> "Please be careful," <<he>> says. "To yank it out carelessly will only leave you bloodied." <br><br> The knife's song grows louder. It bounces off the wooden ribs. Splinters fall to the ground, littering among the roses, as rot spreads from within. It wriggles out of the cracks with writhing shadows shaped like <<if $settings.tentaclesEnabled>>tentacles<<else>>hands<</if>>. <br><br> Red sea water weeps from the knife handle. The ribcage expands and contracts faster. <br><br> <<if $anxiety gte 1>> <<link [[Embrace your anxiety|Gwylan Hypnosis Slumber Anxiety]]>><</link>><<gtrauma>><<gwylanHypnoEffect>><<anxiety_disorder_text>> <br> <<else>> <<link [[Let yourself worry|Gwylan Hypnosis Slumber Anxiety]]>><</link>><<gggtrauma>><<gwylanHypnoEffect>><<willpowerdifficulty $slumberDifficultyLow $slumberDifficultyHigh>> <br> <</if>> <<link [[Let it fester|Gwylan Hypnosis Slumber Anxiety]]>><<set $phase to "wake">><</link>> <br> <<else>> The emptiness fills. <br><br> <<link [[Next|Gwylan Hypnosis Slumber Wake]]>><<pass 30>><</link>> <br> <</if>><<effects>><<run statusCheck("Gwylan")>> <<if $anxiety gte 1 and $phase isnot "wake">> <<set _continue to true>> <span class="blue">You've been in darker places and seen what lies within.</span> You squeeze Gwylan's hand back. <<elseif $willpowerSuccess and $phase isnot "wake">> <<set _continue to true>><<set $slumberDifficultyLow += 200>><<set $slumberDifficultyHigh += 200>> <span class="green">You squeeze Gwylan's hand back.</span> <<else>> <<if $phase isnot "wake">> <span class="red">You can't resist. You need this thorn out of your paw.</span> <br><br> <</if>> You break free from Gwylan's grasp and take the knife by the handle, before yanking it out. Red seawater erupts from the wound, which grows with each pulse. Gwylan winces. "To bleed, or to fester. An impossible choice." <</if>> <br><br> <<if _continue>> <<tiredness -1>><<pass 10>> The knife calls to you. An urge to pick it up itches in your hand. You watch it move as if controlled by a string from far below. Gwylan clutches your wrist so hard you worry that <<he>>'ll break skin. <br><br> "Don't," <<he>> says. "You want to yank it out, but you have to be gentle. Slow." <br><br> You half-listen to <<him>>. It's begging you. After so long, It found you. You reach out, and wrap your hand around it. <br><br> The water reaches your ankles, but <span class="witch">you resist the call,</span> only lightly moving it. It hurts. <br> The water laps at your waist, <<if $willpower gte $slumberDifficultyLow>> <<set $slumberDifficultyLow += 50>><<set $slumberDifficultyHigh += 50>> but <span class="witch">you resist the call.</span> You slowly pull upwards. <<trauma 12>><<set $hypnosis_potency++>><<gtrauma>><<gwylanHypnoEffect>> <br> Your chest goes numb from the cold, <<if $willpower gte $slumberDifficultyLow>> <<set $slumberDifficultyLow += 75>><<set $slumberDifficultyHigh += 75>> but <span class="witch">you resist the call.</span> You exhale slowly as the red water flows faster. <<trauma 24>><<set $hypnosis_potency++>><<ggtrauma>><<gwylanHypnoEffect>> <br> You have to fight to keep your head above water, <<if $willpower gte $slumberDifficultyLow>> <<set _unbloodied to true>> <<set $slumberDifficultyLow += 100>><<set $slumberDifficultyHigh += 100>> but <span class="witch">you resist the call.</span> The knife is nearly free. <<trauma 50>><<set $hypnosis_potency++>><<gggtrauma>><<gwylanHypnoEffect>> <br> The waves close over your head, <</if>> <</if>> <</if>> <<if _unbloodied>> and you finally succumb... but you're already holding the freed blade. You didn't feel a thing. The ground around you crumbles. <br><br> Gwylan smiles, and crumbles. <<else>> and you <span class="erase-from-history">succumb,</span> yank<span class="erase-from-history">ing</span> the blade free. It slides free from the ground with no resistance. As it does, the ground around it crumbles. <br><br> Gwylan crumbles. <</if>> <br><br> You crumble. <br><br> Nobody is left in the dark. <br><br> <<if $panicattacks gte 1>> <<link [[Clutch your panic|Gwylan Hypnosis Slumber Panic]]>><</link>><<gtrauma>><<gwylanHypnoEffect>><<note "Panic Attacks" "pink">> <br> <<else>> <<link [[Embrace the panic|Gwylan Hypnosis Slumber Panic]]>><</link>><<gggtrauma>><<gwylanHypnoEffect>><<willpowerdifficulty $slumberDifficultyLow $slumberDifficultyHigh>> <br> <</if>> <<link [[Shut out everything|Gwylan Hypnosis Slumber Panic]]>><<set $phase to "wake">><</link>> <br> <<else>> The emptiness fills. <br><br> <<link [[Next|Gwylan Hypnosis Slumber Wake]]>><<pass 30>><</link>> <br> <</if>><<effects>><<run statusCheck("Gwylan")>> <<if $panicattacks gte 1 and $phase isnot "wake">> <<set _continue to true>> <span class="blue">You've been more afraid.</span> <<trauma 12>><<set $hypnosis_potency++>><<gtrauma>><<gwylanHypnoEffect>> <<elseif $willpowerSuccess and $phase isnot "wake">> <<set _continue to true>><<set $slumberDifficultyLow += 200>><<set $slumberDifficultyHigh += 200>> <span class="green">You keep your eyes open,</span> although it's hard to tell. Everything is pitch black. <<trauma 50>><<set $hypnosis_potency++>><<gggtrauma>><<gwylanHypnoEffect>> <<else>> <<if $phase isnot "wake">> <span class="red">You curl in on yourself.</span> You keep curling, your own body twisting and contorting... if only you had one. <br><br> <</if>> You lay still in emptiness, until something starts to break through the dark. <</if>> <br><br> <<if _continue>> <<canvas-model-override "arm_right" "hold">> <<wearProp "whale bone dagger">> <<tiredness -1>><<pass 10>> Only the knife lights your way. Its blue-white glow casts dark shadows that writhe and reach. You feel them caress you, trying to worm inside of you. Your muscles seize as you remember all of the suffering that has been inflicted upon you. <br><br> The shadows grow closer. One wraps <<if $settings.tentaclesEnabled>>a tentacle<<else>>its fingers<</if>> around your wrist. Another tries to pry your lips apart. <br><br> The knife begins to burn in your hand. You slash wildly. Bits of shadow fall to the ground and ooze back to the waiting void. You keep slashing, driven by an animalistic urge to be safe. <br><br> Except there is no safety in the dark. Not even the knife can protect you. The shadows, sensing triumph is close at hand, close over you. They promise you the bliss of Nothing. <br><br> <<if $flashbacks gte 1>> <<link [[Remember|Gwylan Hypnosis Slumber Flashbacks]]>><</link>><<gtrauma>><<gwylanHypnoEffect>><<note "Flashbacks" "purple">> <br> <<else>> <<link [[Attempt to stir your memory|Gwylan Hypnosis Slumber Flashbacks]]>><</link>><<gggtrauma>><<gwylanHypnoEffect>><<willpowerdifficulty $slumberDifficultyLow $slumberDifficultyHigh>> <br> <</if>> <<link [[Forget|Gwylan Hypnosis Slumber Flashbacks]]>><<set $phase to "wake">><</link>> <br> <<else>> The emptiness fills. <br><br> <<link [[Next|Gwylan Hypnosis Slumber Wake]]>><<pass 30>><</link>> <br> <</if>><<effects>><<run statusCheck("Gwylan")>> <<if $flashbacks gte 1 and $phase isnot "wake">> <<set _continue to true>> <span class="blue">You remember being through this.</span> <<trauma 12>><<set $hypnosis_potency++>><<gtrauma>><<gwylanHypnoEffect>> <<elseif $willpowerSuccess and $phase isnot "wake">> <<set _continue to true>><<set $slumberDifficultyLow += 200>><<set $slumberDifficultyHigh += 200>> <span class="green">You remember who, and where, you are. You remember that this was all painfully real, once.</span> <<trauma 50>><<set $hypnosis_potency++>><<gggtrauma>><<gwylanHypnoEffect>> <<else>> <span class="red">You forget the violation, but the emptiness remains. You forget the pain, but your skin still stings.</span> You tell yourself that you're better. A comforting lie. <br><br> You shut out the probing limbs, until something begins to appear in the darkness. <</if>> <br><br> <<if _continue>> <<tiredness -1>><<pass 10>> Shadows undulate all over your body. They reach in between your legs. Even more pry open your mouth and force their way inside. Grasping, squeezing hands. Fingers probing the most private parts of you. You writhe under all of the assaults you've ever faced. <br><br> It's too much. You sink lower into the dark. <br><br> There is nothing. There is nobody. <br><br> A voice whispers in your ear. "<span class="witch">Is this what you wanted?</span>" <br><br> You twitch. <br><br> "<span class="witch">Is this the life you want to live?</span>" <br><br> You inhale what feels like shards of frozen glass. <br><br> <<if $auriga_scar>> "<span class="witch">Rise, <<pcpetname "Gwylan">>. The void may promise comfort, but it is false, and the price is your soul.</span>" <<else>> "<span class="witch">Rise, <<pcpetname "Gwylan">>. To shut out the shadows is to give them power. The unknown and forgotten are always the more terrifying.</span>" <</if>> <br><br> The knife burns. Its light becomes searing. The shadows retreat in waves of oily, oozing blackness. You are left on the floor naked and revealed. <<revealTransformations>> You stand on shaking legs. Ahead of you is darkness. Behind you is a wall of dirt. All above you is the rib cage. Once white wood has decayed to brittle black. Insects crawl in and out of holes, their shells like shining jewels. <br><br> There is a trail of <<if isLoveInterest("Gwylan")>>pink<<else>>alternating red and white<</if>> roses leading into the dark. A sweet voice sings to you from far away. You lift your knife and follow its sound. <br><br> <<if $dissociation gte 1>> <<link [[There's something wrong with you|Gwylan Hypnosis Slumber Visibly Disturbed]]>><</link>><<ggtrauma>><<gwylanHypnoEffect>><<note "and nobody can tell" "red">> <br> <<else>> <<link [[Brave the dark|Gwylan Hypnosis Slumber Visibly Disturbed]]>><</link>><<gggtrauma>><<gwylanHypnoEffect>><<willpowerdifficulty $slumberDifficultyLow $slumberDifficultyHigh>> <br> <</if>> <<link [[Wake up|Gwylan Hypnosis Slumber Visibly Disturbed]]>><<set $phase to "wake">><</link>> <br> <<else>> The emptiness fills. <br><br> <<link [[Next|Gwylan Hypnosis Slumber Wake]]>><<pass 30>><</link>> <br> <</if>><<effects>><<run statusCheck("Gwylan")>> <<if $dissociation gte 1 and $phase isnot "wake">> <<set _continue to true>> <span class="blue">Nobody knows you. Nobody knows you better than anybody.</span> <<trauma 25>><<set $hypnosis_potency++>><<ggtrauma>><<gwylanHypnoEffect>> <<elseif $willpowerSuccess and $phase isnot "wake">> <<set _continue to true>><<set $slumberDifficultyLow += 200>><<set $slumberDifficultyHigh += 200>> <span class="green">You grip the handle of the knife tighter, until it hurts. You're still here.</span> <<trauma 50>><<set $hypnosis_potency++>><<gggtrauma>><<gwylanHypnoEffect>> <<else>> <span class="red">You step the wrong way, and you fall.</span> Perhaps you did it on purpose. Perhaps you weren't ready to see what lays at the end, at your core. <</if>> <br><br> <<if _continue>> <<tiredness -1>><<pass 10>> <<canvas-model-override "arm_right" "idle">><<handheldon>> Each step brings a new change. Insects twist and warp. Some bulge. Slime oozes out between the chitin of their shells. Others grow bigger, or smaller. You think they're all staring at you. <br><br> The ribs change, too. Patches of bark crumble away to reveal water pierced by light. Somehow, the water does not fall onto you. You forge onwards. The roses guide you. The song buoys you. <span class="teal">It's familiar.</span> <br><br> It isn't until the song is so loud you can almost feel it that you realise you've been changing too. The scars inside of you have become real. <<if $rapestat + $moleststat gte 500>>Hand prints are burnt into your thighs.<</if>> Parts of you have disintegrated to reveal that same watery visage. <br><br> "It's beautiful, isn't it?" <br><br> You look up. Gwylan is sitting at the end of the trail of roses. <<He>> smiles at you. <<His>> mousy hair is long and flows all around <<him>> like a pool of water<<if _gwylanTF.known>>, resting on <<his>> tail<</if>>. <<if isLoveInterest("Gwylan")>>Pink<<else>>Red and white<</if>> roses adorn <<his>> body like a <<if $pronoun is "m">>robe<<else>>dress<</if>>. <<if _gwylanTF.known>><<His>> ears twitch.<</if>> <br><br> "We are always more beautiful when we reveal what's inside of us," <<he>> says. <<He>> holds up a tightly wound bundle of rose petals. "Like a chrysalis opening up to a butterfly." <br><br> <<He>> blows on the rose petals. <br><br> <<if $dissociation gte 2>> <<link [[This feels real|Gwylan Hypnosis Slumber Dissociation]]>><</link>><<gwylanHypnoEffect>><<note "Dissociation" "forest-green">> <br> <<else>> <<link [[This doesn't feel real|Gwylan Hypnosis Slumber Dissociation]]>><</link>><<gwylanHypnoEffect>><<willpowerdifficulty $slumberDifficultyLow $slumberDifficultyHigh>> <br> <</if>> <<link [[This isn't real|Gwylan Hypnosis Slumber Dissociation]]>><<set $phase to "wake">><</link>> <br> <<else>> The emptiness fills. <br><br> <<link [[Next|Gwylan Hypnosis Slumber Wake]]>><<pass 30>><</link>> <br> <</if>><<effects>><<run statusCheck("Gwylan")>> The petals scatter into the air. You watch as they flutter all around you in an explosion of colour. Roses bloom from the cracks in the wooden ribs. You see them bloom on your watery patches, too. <br><br> <<if $dissociation gte 1 and $phase isnot "wake">> <span class="forest-green">This feels real.</span> <<trauma -50>><<set $hypnosis_potency++>><<llltrauma>><<gwylanHypnoEffect>> <<elseif $willpowerSuccess and $phase isnot "wake">> <span class="green">You let them wash over you.</span> <<trauma -25>><<set $hypnosis_potency++>><<lltrauma>><<gwylanHypnoEffect>> <<else>> <span class="red">You flinch away.</span> One brushes your cheek like a gentle caress, and you open your eyes again. You steady your breathing. The look on Gwylan's face makes you feel like everything will be alright. <</if>> <br><br> Gwylan steps over to join you. "Embracing our struggles makes us human," <<he>> says. "Pain can be breathtaking in its cruel majesty. Every rose has its thorn." <br><br> Vines weave together to form a bed. Gwylan leads you to it and pulls you down. Despite the thorns poking into you, you find it comfortable. <<He>> strokes your hair. Warmth fills you. <br><br> "Sleep," <<he>> says. <<He>> pulls a blanket of roses over you both. "Sleep, <<pcpetname "Gwylan">>. Trauma is not something to run from. It's something to confront. To reflect upon. To remember." <<npcincr Gwylan dom 1>><<gyearning>> <br><br> One of the rose petal butterflies lands on your hand. You smile and rest your head on Gwylan's chest. Soon, you are asleep, safe underneath the blanket of roses. <br><br> <<link [[Sleep|Gwylan Hypnosis Slumber Wake]]>><<pass 30>><<set $phase to "end">><<tiredness -20>><</link>> <br><<set $location to "forest_shop_garden">><<effects>><<run statusCheck("Gwylan")>> <<canvas-model-override "clear">><<handheldon>> <<unset $slumberDifficultyLow>><<unset $slumberDifficultyHigh>> <<rehideTransformations>> Your focus slowly returns. You're back in the garden. <br><br> The incense has burned out. <<if $phase is "end">> <<if $gwylanSeen.includes("romance")>> Gwylan holds you tightly. <<Hes>> fallen asleep <<himself>>. <br><br> <<He>> pushes <<his>> head into your chest, and lets out a sigh of contentment. You idly stroke <<his>> hair. <<npcincr Gwylan dom 3>><<ggyearning>> <br><br> After some time, <<his>> eyes flutter open. <<He>> smiles at you. "Oh, silly me. I got too comfortable." <<He>> yawns. "I haven't slept that well in ages. I think you helped me just as much as I helped you." <<elseif _gwylanStatus.includesAny("aroused", "lust", "dom")>> Gwylan runs <<his>> fingers through your hair. "Sleep well? You were out for a while." <<He>> smiles. "You did well, going so deep into the trance." <<else>> Gwylan looks down at you, smiling. "Sleep well? You were out for a while." <<He>> giggles. "You did well, going so deep into the trance." <</if>> <<He>> helps you stand. <br><br> You feel rested. "You should find sleep coming to you easier now, and you won't spend as much time tossing and turning when the bad thoughts hit. In fact, you might find the bad thoughts make sleep come even easier." <<else>> <<if $gwylanSeen.includes("romance")>> Gwylan still lays next to you, watching you. "Sleep well?" <<elseif _gwylanStatus.includesAny("aroused", "lust", "dom")>> Gwylan runs <<his>> fingers through your hair. "Sleep well?" <<else>> Gwylan looks down at you, smiling. "Sleep well?" <</if>> <br><br> <<if $hypnosis_potency gte 6>> You feel rested. You nod at Gwylan, and <<he>> helps you stand. <br><br> "Wonderful! You should find sleep coming to you easier now, and you won't spend as much time tossing and turning when the bad thoughts hit. In fact, you might find the bad thoughts make sleep come even easier." <<else>> You feel a little more rested. You nod at Gwylan, and <<he>> helps you stand. <br><br> "You weren't asleep very long, <span class="blue">so the hypnosis might not last.</span> Regardless, you should find sleep coming to you easier now, and you won't spend as much time tossing and turning when the bad thoughts hit. In fact, you might find the bad thoughts make sleep come even easier." <</if>> <</if>> <<He>> starts to gather <<his>> things. <br><br> <<set _hypnoDays to 5 + Math.floor($hypnosis_potency * 1.5)>> <<gwylanHypnosis "slumber" _hypnoDays>> <br><br> <<set $gwylanSeen.pushUnique("hypnosis_slumber")>> <<link [[Go back in the shop|Gwylan Hypnosis End]]>><<endevent>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<if $phase is "tentacles">> <<set $gwylanSeen.pushUnique("hypnosis_insight_tentacles")>> "I've seen monsters," you say. "Unnatural creatures with many grasping limbs, like tentacles." <br><br> <<if $gwylanSeen.includes("likes_tentacles")>> Gwylan nods. "If you see them, they see you. If 'see' is the right word. You've done much more than seeing, from what you've told me." <<else>> Gwylan nods. "If you see them, they see you. If 'see' is the right word." <</if>> <<elseif $phase is "plants">> <<set $gwylanSeen.pushUnique("hypnosis_insight_plants")>> "I've seen plants come to life," you say. "I know they're already alive, but not like this. Not moving their branches, roots, and vines with malicious intent." <br><br> "There are songs I could teach you," Gwylan says. "But it would take a long time to learn them all, and it might not be enough." <<elseif $phase is "slimes">> <<set $gwylanSeen.pushUnique("hypnosis_insight_slimes")>> "I've seen blobs of slime, of different sizes," you say. "They move as if they have a will, and they're not friendly." <br><br> "I've seen them too," Gwylan says. "But their origin is a mystery to me. They used to be far more rare, but they've multiplied since the Violet Elk moved in. Perhaps they've agitated a nest underground while searching where they shouldn't. Or maybe they make them, deliberately or otherwise." <<elseif $phase is "monsters">> <<set $gwylanSeen.pushUnique("hypnosis_insight_monsters")>> "I've seen animals that appear to have human characteristics," you say. "Including speech. It's surreal, especially in the park when people are walking their dogs." <br><br> "Sounds fun," Gwylan says. "In moderation." <<elseif $phase is "holes">> <<set $gwylanSeen.pushUnique("hypnosis_insight_holes")>> "There are holes in reality," you say. "As the temple calls them. I see them sometimes, and the corruption seeping through." <br><br> Gwylan nods. "That's indeed what they call them. I—" <<he>> pauses, then seems to change <<his>> mind. "They can be distracting." <<elseif $phase is "lots">> <<set $gwylanSeen.pushUnique("hypnosis_insight_lots")>> "This might sound silly," you say. "But it's more than one thing. Shadows watching me. Eyes staring from impossible places. It's hard to look into the dark." <br><br> "Some threats only become dangerous if they're noticed," Gwylan says. <</if>> <br><br> "It's not an easy thing, to forget what you know. It's too brutal, too costly. I can't offer you such. However," <<he>> decapitates a flower without looking at it, without needing to. "There's another way. An old way." <br><br> <<if $hypnosis_potency gt 4 or $hypnosis_traits.devotion gte 4>> <<He>> raises a single finger. "Follow it." <<He>> moves <<his>> hand side to side, then up and down. You follow it, and as you do, it almost looks like a small light forms on the tip. <br><br> <span class="purple">You quickly realise you're no longer able to look away.</span> <<else>> <<He>> reaches into the neck of <<his>> robes, and pulls out a pendant tipped with <<if $gwylanTalked.includes("jasper")>>jasper<<else>>a reddish gem<</if>>. "Follow it." <<He>> moves it side to side. Your eyes follow. <</if>> <br><br> "There's nothing in the forest except us." Everything outside the room slowly fades away. The corners of your vision blur, until there's nothing left but Gwylan. "Good. The next time you doubt your place in the world, remember..." <br><br> <<set $_devotionUp to 10 + $hypnosis_potency>> <<gwylanHypnosis "devotion" $_devotionUp>> <br><br> <<He>> snaps <<his>> fingers, and you're no longer where you once were. <br><br> /* ToDo: Gwylan - also needs a proper unlock condition */ <<if $phase is "tentacles">> <<link [[Next|Gwylan Hypnosis Insight Tentacles]]>><<pass 10>><</link>> <br> <<elseif $phase is "plants">> <<link [[Next|Gwylan Hypnosis Insight Plants]]>><<pass 10>><</link>> <br> <<elseif $phase is "slimes">> <<link [[Next|Gwylan Hypnosis Insight Slimes]]>><<pass 10>><</link>> <br> <<elseif $phase is "monsters">> <<link [[Next|Gwylan Hypnosis Insight Monsters]]>><<pass 10>><</link>> <br> <<elseif $phase is "holes">> <<link [[Next|Gwylan Hypnosis Insight Holes]]>><<pass 10>><</link>> <br> <<else>> <<link [[Next|Gwylan Hypnosis Insight Lots]]>><<pass 10>><</link>> <br> <</if>><<set $location to "drain">><<effects>><<run statusCheck("Gwylan")>> <<gwylanHypnoCanvas>> You find yourself in the storm drains beneath town. Water drips into the still canal beside you, each drop reflecting purple light. <br><br> A deep thump echoes through the tunnel, dislodging loose bricks from the ceiling. The caps of the pipes lining the waterway burst open, revealing grasping masses of purple tentacles. More than that, a shadow appears on the wall ahead, cast by something unseen. You hear the groan of tortured stone, like a great bulk forcing its way through, towards you. <br><br> From behind, a song echoes, loud enough to be heard beneath the groaning. It promises security, but this only agitates your anxiety. You turn and run towards the voice. Light continues to enter from the drains above, yet the tunnels around you darken, as if the dark itself were resisting, and growing stronger. <br><br> You come to a round room, with a pathway looping around a pool. In its centre a waterfall cascades, flowing into the water below without disturbing it. Within, a pair of eyes open, bearing a mischievous glimmer. It's Gwylan. <<He>> looks uncanny, as neither <<his>> hair nor clothes appear wet. <<He>> gives you a reassuring smile, then <<he>> reaches towards you. <<His>> hand presses against the side of the waterfall as if it were glass. <br><br> <<link [[Reach for Gwylan|Gwylan Hypnosis Insight Tentacles 2]]>><<set $phase2 to 1>><</link>> <br> <<link [[Step away|Gwylan Hypnosis Insight Tentacles 2]]>><<set $phase2 to 2>><</link>> <br><<effects>> <<if $phase2 is 1>> You reach for Gwylan, pushing your fingers into the waterfall. It feels like normal water, if warmer than you'd expect. Gwylan grasps your hand, then pulls you with an irresistible force. <<else>> You turn away from the waterfall. The water becomes more violent, and you hear the voice again. It's the same song, but more firm this time, carrying the tone of an anxious parent telling their child to step away from danger. <br><br> The force of it proves irresistible. You step back to the waterfall, and reach in. It feels like normal water, if a bit cooler than usual. <</if>> <br><br> A flash of green light fills your vision as you pass into the water, disorienting you. Your hands and knees find solid stone. Gwylan stands next to you, and crouches to help you to your feet. <<He>> looks oddly dry. <br><br> "You're not actually wet, you know," Gwylan says as if reading your mind. You look at the waterfall, <span class="pink">and see another pair of eyes staring back.</span> <br><br> "Don't look at it." Gwylan takes both your hands. "Look at me. Remember this waterfall, and where I brought you. Now your inability to forget works in your favour, see?" <br><br> <<link [[Ask for more details on what's going on|Gwylan Hypnosis Insight Ask]]>><</link>> <br> <<link [[Nod|Gwylan Hypnosis Insight Nod]]>><</link>> <br><<set $location to "farm_manors">><<effects>><<run statusCheck("Gwylan")>> <<gwylanHypnoCanvas>> You find yourself within a circular clearing in a hedge maze, perhaps its centre. A statue looms above you, staring at the horizon. Vines grow up its entire body, wrapping around its limbs and neck. It looks tall enough to see over the hedge. <br><br> The statue creaks as the vines tighten around it with impossible strength. Then the head snaps off, the neck reduced to a rain of splinters. Freed from the statue, the vines whip towards you, groping the air inches from your skin. <br><br> You hear singing, blown to you on the wind. It promises security, but that only agitates your anxiety. You step away from the vines, and enter the maze, following the sound of the voice. The hedge around you sways in an unseen wind, but lacks the malice of the vines. For now. <br><br> You come to another clearing, this one dominated by a fountain. Water flies a dozen or more feet into the air, landing in a second tier before cascading to the main vessel. A pair of eyes, bearing a mischievous glimmer, stare up at you. It's Gwylan, lying on <<his>> back. <<He>> gives you a reassuring smile, then <<he>> lifts a hand and presses it against the surface, as if it were glass. <br><br> <<link [[Reach for Gwylan|Gwylan Hypnosis Insight Plants 2]]>><<set $phase2 to 1>><</link>> <br> <<link [[Step away|Gwylan Hypnosis Insight Plants 2]]>><<set $phase2 to 2>><</link>> <br><<effects>> <<if $phase2 is 1>> You reach into the water, and grasp Gwylan's fingers. With an irresistible force, <<he>> pulls you into the fountain. <<else>> You turn away from the water, but Gwylan's song calls to you again, taking on a firmer tone, like an anxious parent calling their child away from danger. It proves an irresistible force. You turn back to the fountain. Gwylan takes your hand, and pulls you in. <</if>> <br><br> It's deeper than it looked, and your surroundings disappear in a disorienting flash of green light. Then you're on your hands and knees in shallow water, the fountain's water cascading on your back. Gwylan crouches, and helps you from the fountain. <<Hes>> somehow dry. <br><br> "You're not actually wet either, you know," Gwylan says, as if <<he>> read your mind. You look at the water, <span class="pink">and see a pair of eyes staring back.</span> <br><br> "Don't look at it." Gwylan takes both your hands. "Look at me. Remember this fountain, and where I brought you. Now your inability to forget works in your favour, see?" <br><br> <<link [[Ask for more details on what's going on|Gwylan Hypnosis Insight Ask]]>><</link>> <br> <<link [[Nod|Gwylan Hypnosis Insight Nod]]>><</link>> <br><<set $location to "underground">><<effects>><<run statusCheck("Gwylan")>> <<gwylanHypnoCanvas>> You find yourself in a cave, lit by glowing crystals. They reverberate a little, releasing a gentle tinkling sound. The cave looks natural, but there are footprints leading into the dark. <br><br> You move your foot, and find a sticky substance clinging to your heel. You steady yourself against the wall, only to find the substance on your hand as well. Slime is oozing through cracks in the floor and walls, arising from somewhere unseen. You step away, and a dollop lands where you just stood. It's emerging from the ceiling. <br><br> Singing echoes through the cave. It almost sounds like the crystals are singing along, amplifying the sound. It promises security, yet that only agitates your anxiety. You walk towards the voice. The crystals become larger and more numerous, until you reach an open space full of them. <br><br> In the centre of the space sits a pool of water, reflecting the light from the crystal, and almost appearing to glow itself. You step to its shore, and see a pair of eyes staring up at you, a mischievous glimmer within. It's Gwylan. <<He>> gives you a reassuring smile, perhaps aware of how disconcerting <<he>> looks. Then <<he>> lifts a hand and presses it against the surface, as if <<he>> were trapped in one of the crystals, not floating in a pool. <br><br> <<link [[Reach for Gwylan|Gwylan Hypnosis Insight Slimes 2]]>><<set $phase2 to 1>><</link>> <br> <<link [[Step away|Gwylan Hypnosis Insight Slimes 2]]>><<set $phase2 to 2>><</link>> <br><<effects>> <<if $phase2 is 1>> You reach for Gwylan's hand, pushing it into the chill water. Gwylan takes your hand in <<hers>>. With an irresistible force, <<he>> pulls you into the water. <<else>> You turn away, but the singing rings out, louder now, and with a new force to it. It sounds like an anxious parent, calling their child away from danger. The force proves irresistible. You turn back to the water. <br><br> Gwylan takes your hand in <<hers>>, and pulls you in. <</if>> <br><br> A flash of green light disorients you as you enter, then you find yourself on your knees, on the ground beside the pool. Gwylan helps you to your feet. <<His>> clothes are dry. <br><br> "You're not actually wet, you know," Gwylan says, as if reading your mind. You look at the water, <span class="pink">and see a pair of eyes staring back.</span> <br><br> "Don't look at it." Gwylan takes both your hands. "Look at me. Remember this pool, and where I brought you. Now your inability to forget works in your favour, see?" <br><br> <<link [[Ask for more details on what's going on|Gwylan Hypnosis Insight Ask]]>><</link>> <br> <<link [[Nod|Gwylan Hypnosis Insight Nod]]>><</link>> <br><<set $location to "forest">><<effects>><<run statusCheck("Gwylan")>> <<gwylanHypnoCanvas>> You find yourself elsewhere in the forest. Branches fork and twist above you, groping the sky. You put your hands on wiry grass, and push yourself into a sitting position. <br><br> A bullet blasts apart a nearby tree. You jump to your feet and, spinning in the direction of the shot, find a pair of wolf people. <br><br> "Blast!" <br> "I told you you'd miss. Give me the gun." <br> "One more try. Look, its stunned in fright." <br><br> You hear singing behind you. It promises security, yet that only agitates your anxiety. Lacking options, you turn and run in the direction of the voice. <br><br> You come to a still lake, but it's not the lake you're familiar with. It looks deep, even here at the shore. A sheer drop, if not for the water, with no bottom visible. <br><br> A pair of eyes appear beneath you, a mischievous glimmer clear despite the distortion of the water. It's Gwylan. <<He>> gives you a reassuring smile, then reaches towards you, stopping just short of the surface. <<His>> fingertips press against it, as if it were glass. <br><br> <<link [[Reach for Gwylan|Gwylan Hypnosis Insight Monsters 2]]>><<set $phase2 to 1>><</link>> <br> <<link [[Step away|Gwylan Hypnosis Insight Monsters 2]]>><<set $phase2 to 2>><</link>> <br><<effects>> <<if $phase2 is 1>> You crouch, and reach in. It feels like normal, cool lake water. <<else>> You step away from the lake. The surface stirs, and you hear the voice again. It's the same song, but more firm this time, carrying the tone of an anxious parent telling their child to step away from danger. <br><br> The force of it proves irresistible. You step back to the lake, and reach in. It feels like normal, cool lake water. <</if>> <br><br> Gwylan takes your hand in <<hers>>, flashes an apologetic smile, then pulls you towards <<him>> with an irresistible strength. You plunge into the water, and for a disorienting moment your surroundings vanish in a flash of green light. <br><br> Your hands and knees find solid ground, and you push yourself to your feet, emerging from the water. It's shallower than it appeared. Gwylan grasps your shoulder, and helps keep your slick feet steady. <<He>> looks dry, somehow. <br><br> "You're not actually wet either, you know," Gwylan says as if reading your mind. You look back at the water. It appears deep again, <span class="pink">and another pair of eyes stare back.</span> <br><br> "Don't look at it." Gwylan takes both your hands. "Look at me. Remember this lake, and where I brought you. Now your inability to forget works in your favour, see?" <br><br> <<link [[Ask for more details on what's going on|Gwylan Hypnosis Insight Ask]]>><</link>> <br> <<link [[Nod|Gwylan Hypnosis Insight Nod]]>><</link>> <br><<set $location to "town">><<effects>><<run statusCheck("Gwylan")>> <<gwylanHypnoCanvas>> You awaken in town, stood on what looks like High Street. Except its all wrong. The buildings, cars, and trees all look fine in isolation, but together appear somehow alien from one another. It feels like the space between them is sick, swollen, about to burst open. Like your presence could cause an irreparable rupture. You dare not glance at the people. <br><br> You hear singing over the traffic. You follow the sound of the voice, careful not to look anyone in the eye, until you come to a tiered fountain. Water cascades from a platform, high above. <br><br> Other people are giving the fountain a wide berth. You peer into the falling water, and see a pair of eyes, bearing a mischievous glint. It's Gwylan. <<He>> gives you a reassuring smile, then reaches towards you. <<His>> hand presses against the waterfall, as if it were glass. <br><br> <<link [[Reach for Gwylan|Gwylan Hypnosis Insight Holes 2]]>><<set $phase2 to 1>><</link>> <br> <<link [[Step away|Gwylan Hypnosis Insight Holes 2]]>><<set $phase2 to 2>><</link>> <br><<effects>> <<if $phase2 is 1>> You reach through the water. Gwylan takes your hand, and pulls you in with an irresistible strength. <<else>> You turn away from the fountain, <span class="red">only to find everyone on the street stood still, watching you.</span> You hear the singing again, now louder, and with the tone of an anxious parent calling their child away from danger. <br><br> The force proves irresistible. You turn back to the fountain and take Gwylan's hand. <<He>> pulls you in. <</if>> <br><br> Your hands and knees find solid ground. You're kneeling in the fountain. Gwylan helps you to your feet, gives you a reassuring squeeze, and helps you step from the water. <<He>> looks dry, somehow. <br><br> "You're not actually wet, you know," Gwylan says as if reading your mind. You look back at the cascading water. <span class="pink">Another pair of eyes stare back.</span> <br><br> "Don't look at it." Gwylan takes both your hands. "Look at me. Remember this fountain, and where I brought you. Now your inability to forget works in your favour, see?" <br><br> <<link [[Ask for more details on what's going on|Gwylan Hypnosis Insight Ask]]>><</link>> <br> <<link [[Nod|Gwylan Hypnosis Insight Nod]]>><</link>> <br><<set $location to "park">><<effects>><<run statusCheck("Gwylan")>> <<gwylanHypnoCanvas>> You awaken in town, in what looks like the park. You feel an odd stillness. You hear none of the usual sounds of town. <br><br> An electricity crawls over the side of your neck, and your hair stands on end. Something is watching you. You turn to face the culprit, but see only trees and other plants. You feel the sensation again, this time on the back of your neck. You whirl, but still see nothing. You feel, more than hear, a mocking laughter, coming from the trees themselves. Or something within them. <br><br> The silence is broken by a sweet voice, singing. You follow the sound, until you come to a bridge over a river. Peering into the water, you see a pair of eyes staring back, bearing a mischievous glint. It's Gwylan. <<He>> gives you a reassuring smile, then reaches towards you. <<His>> fingers press against the river's surface, as if it were glass. <br><br> <<link [[Take Gwylan's hand|Gwylan Hypnosis Insight Lots 2]]>><<set $phase2 to 1>><</link>> <br> <<link [[Step away from the water|Gwylan Hypnosis Insight Lots 2]]>><<set $phase2 to 2>><</link>> <br><<effects>> <<if $phase2 is 1>> You crouch, and reach through the side of the bridge. Gwylan grasps your hand. An irresistible force blows the bridge apart, and you fall into the water. <<else>> You turn away, but hear the singing again. It's louder now, and carries an urgent tone, like an anxious parent calling their child away from danger. It proves an irresistible force. You turn back to Gwylan, and take <<his>> hand. The bridge collapses, and you fall into the water. <</if>> <br><br> A flash of green light disorients you further, then you find yourself on your hands and knees on the riverbank. Gwylan crouches beside you, and helps you to your feet. <<He>> looks dry. <br><br> "You're not actually wet, you know," Gwylan says as if reading your mind. You look back at the rushing river. <span class="pink">Another pair of eyes stare back.</span> <br><br> "Don't look at it." Gwylan takes both your hands. "Look at me. Remember this river, and where I brought you. Now your inability to forget works in your favour, see?" <br><br> <<link [[Ask for more details on what's going on|Gwylan Hypnosis Insight Ask]]>><</link>> <br> <<link [[Nod|Gwylan Hypnosis Insight Nod]]>><</link>> <br><<effects>> <<if $speech_attitude is "meek">> "I hope it's not impudent," you say. "But can you share some details on how this works?" <<elseif $speech_attitude is "bratty">> "What was that thing in the water?" you ask. "It'll be easier to remember if you tell me what's going on." <<else>> "What's watching me from the water?" you ask. "What did you do?" <</if>> <br><br> "I just changed your perspective," Gwylan says. "I'd say I put you upside-down, but that implies there's a right way up. I dragged you into the water, don't look, and I dragged you from the water, but not both. Your compass now points south." <<He>> pauses. "Are these metaphors helping, or am I just confusing things further?" <br><br> <<He>> looks at the water, in thought. "You needn't worry about what you saw in there. Not unless you forget. That's the important thing." <<He>> snaps <<his>> fingers. "Awaken." <br><br> <<link [[Next|Gwylan Hypnosis Insight Wake]]>><<pass 30>><</link>> <br><<effects>> You nod. Gwylan looks at the water, in thought. "You needn't worry about what you saw in there. Not unless you forget." <<He>> snaps <<his>> fingers. "Awaken." <br><br> <<link [[Next|Gwylan Hypnosis Insight Wake]]>><<pass 30>><</link>> <br><<set $location to "forest_shop_garden">><<effects>><<run statusCheck("Gwylan")>> <<canvas-model-override "clear">> Your focus slowly returns. You're back in the garden. <br><br> The incense has burned out. "Be aware. Perspectives can change." <<He>> starts to gather <<his>> things. <br><br> <<set _hypnoDays to 10 + ($hypnosis_potency * 2)>> <<gwylanHypnosis "insight" _hypnoDays>> <br><br> <<set $gwylanSeen.pushUnique("hypnosis_insight")>> <<link [[Go back in the shop|Gwylan Hypnosis End]]>><<endevent>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<if $phase is "suggestion">> <<if $gwylanSeen.includes("hypnosis_removal_suggestion")>> "I think Harper put ideas in my head again," you say. <br><br> Gwylan frowns. "I'll have to dig around in your head some more, then." <<else>> <<switch $speech_attitude>> <<case "meek">>"Th-there's this doctor, named Harper. <<nnpc_Hes "Harper">> been giving me treatments, but they don't feel right." <<case "bratty">>"There's this quack named Harper. <<nnpc_Hes "Harper">> been giving me treatments, but they're... not right." <<default>>"There's this doctor named Harper. <<nnpc_He "Harper">> keeps giving me these strange treatments, and they feel wrong, somehow." <</switch>> You think for a moment. "I can't remember why, though." <br><br> Gwylan's face sours. "I can imagine what you mean. I'll have to dig around in your head a little." <<if !$brownFoxRevealed>> <br><br> "Do you know <<nnpc_him "Harper">>?" you ask. <<He>> doesn't answer. Maybe <<he>> didn't hear you. <</if>> <</if>> <<set $gwylanSeen.pushUnique("hypnosis_removal_suggestion")>> <<elseif $phase is "scream">> <<switch $speech_attitude>> <<case "meek">>"Whenever I... feel helpless, and like I want to scream for help, I end up hurting all over." <<case "bratty">>"There are times when I feel like I need to yell for someone to help me. Every time I do, I end up with bruises." <<default>>"Whenever I feel like I need to scream for help, I end up with bruises all over." <</switch>> <br><br> Gwylan nods. "I've heard this before. This should be easy to fix." <<set $gwylanSeen.pushUnique("hypnosis_removal_scream")>> <<elseif $phase is "cover">> "Whenever I get exposed and want to cover myself up, I just end up feeling even more exposed," you say. <br><br> Gwylan nods. "A common trick. We'll fix this." <<set $gwylanSeen.pushUnique("hypnosis_removal_cover")>> <<elseif $phase is "deviancy">> "Whenever I get attacked by animals, I think I end up provoking them somehow," you say. <br><br> <<if $hypnosis_traits.devotion gte 3>> Gwylan covers <<his>> mouth. "Oh dear. I hope that's not a side effect of what we've done together." <<else>> Gwylan frowns. "I'm familiar with such techniques. We'll fix this." <</if>> <<set $gwylanSeen.pushUnique("hypnosis_removal_deviancy")>> <<else>> "I can't remember. There's a lot of memories missing." <br><br> Gwylan nods. "I know how to bring up blocked memories. Let's have a dig through." <<set _hypnosisTypes to ["suggestion", "scream", "cover", "deviancy"].filter(h => V.hypnosis_traits[h] && V.hypnosis_traits[h] >= 1)>> <<if _hypnosisTypes.length>> <<set $phase to _hypnosisTypes.random()>> <</if>> <</if>> <br><br> <<if $hypnosis_potency gt 4 or $hypnosis_traits.devotion gte 4>> <<He>> raises a single finger. "Follow it." <<He>> moves <<his>> hand side to side, then up and down. You follow it, and as you do, it almost looks like a small light forms on the tip. <br><br> <span class="purple">You quickly realise you're no longer able to look away.</span> <<else>> <<He>> reaches into the neck of <<his>> robes, and pulls out a pendant tipped with <<if $gwylanTalked.includes("jasper")>>jasper<<else>>a reddish gem<</if>>. "Follow it." <<He>> moves it side to side. Your eyes follow. <</if>> <br><br> "There's nothing in the forest except us." Everything outside the room slowly fades away. The corners of your vision blur, until there's nothing left but Gwylan. "Good. Tell me, when's the last time..." <br><br> <<set $_devotionUp to 10 + $hypnosis_potency>> <<gwylanHypnosis "devotion" $_devotionUp>> <br><br> <<He>> snaps <<his>> fingers, and you're no longer where you once were. <br><br> <<switch $phase>> <<case "suggestion">><<link [[Next|Gwylan Hypnosis Removal Suggestion]]>><<pass 10>><</link>><br> <<case "scream">><<link [[Next|Gwylan Hypnosis Removal Scream]]>><<pass 10>><</link>><br> <<case "cover">><<link [[Next|Gwylan Hypnosis Removal Cover]]>><<pass 10>><</link>><br> <<case "deviancy">><<link [[Next|Gwylan Hypnosis Removal Deviancy]]>><<pass 10>><</link>><br> <<default>><<link [[Next|Gwylan Hypnosis Removal Error]]>><<pass 10>><</link>><br> <</switch>><<effects>><<run statusCheck("Gwylan")>> <<gwylanHypnoCanvas>> /* ToDo: Gwylan - underwhelming compared to others. Redo? */ The flash of a camera. <br><br> You feel dizzy as your eyes adjust. <br><br> <i>"...you won't remember this."</i> Harper's voice echoes in a white void. <br><br> "A little further back," Gwylan's voice says. "Just before that." <br><br> The click of a pen. Harper's voice speaks again. <i>"That's very good. Now, the next time you feel overwhelmed by it all, I want you to remember this feeling, and..."</i> <br><br> Gwylan speaks. "There it is. Alright. Listen well. Whenever you remember that feeling, <<cleareventpool>> <<addinlineevent "gwylan_hypno_removal_1">>instead, I want you to remember this smell." You smell a rich, earthy herb. It smells like...<</addinlineevent>> <<addinlineevent "gwylan_hypno_removal_2">>instead, I want you to remember this sensation." You feel <<his>> hands run through your hair. It feels like...<</addinlineevent>> <<addinlineevent "gwylan_hypno_removal_3">>instead, I want you to remember this taste." Your mouth opens, and a berry is placed on your tongue. It tastes like...<</addinlineevent>> <<addinlineevent "gwylan_hypno_removal_4">>instead, I want you to remember this sound." You hear a bird call. You wonder if Gwylan's making that sound <<himself>>. It sounds like...<</addinlineevent>> <<addinlineevent "gwylan_hypno_removal_5">>instead, I want you to remember this sound." You hear a chorus of frogs croaking. It almost sounds like...<</addinlineevent>> <<addinlineevent "gwylan_hypno_removal_6">>instead, I want you to remember this sound." You hear a phantom rhythm as the wind blows through the trees. It almost sounds like...<</addinlineevent>> <<addinlineevent "gwylan_hypno_removal_7">>instead, I want you to remember this word." You feel <<his>> breath on your ear. <<He>> says...<</addinlineevent>> <<addinlineevent "gwylan_hypno_removal_8">>instead, I want you to remember this sight." Something takes shape in the emptiness. It looks like...<</addinlineevent>> <<if $hypnosis_traits.devotion gte 2>> <<addinlineevent "gwylan_hypno_removal_devotion_1" 4>>instead, I want you to remember... me! I'll be right there, making sure you don't slip." <<He>> pinches your cheek.<</addinlineevent>> <</if>> <<if $hypnosis_traits.devotion gte 5>> <<addinlineevent "gwylan_hypno_removal_devotion_2" 10>>instead, I want you to remember... us. What it feels like when we're together." <<His>> arms wrap around you.<</addinlineevent>> <</if>> <<runeventpool>> <br><br> "The instructions <<nnpc_he "Harper">> gave you are unimportant. Heed them no more. In time, they will fade naturally." <<His>> face appears in the blank space before you. "Now. Awaken." <<He>> snaps <<his>> fingers. <<trauma 12>><<awareness 5>><<ggtrauma>><<gawareness>> <br><br> <<link [[Next|Gwylan Hypnosis Removal Wake]]>><<pass 30>><</link>> <br><<set $location to "alley">><<set $bus to "industrial">><<effects>><<run statusCheck("Gwylan")>> <<gwylanHypnoCanvas>> /* ToDo: Gwylan - underwhelming compared to others. Redo? */ You're in an alleyway. <br><br> You're not sure how you got here. You call out for Gwylan, but get no answer. <br><br> Something else hears you, though. The way out is blocked by a crowd of people. They converge on you! <br><br> There's too many. You couldn't hope to escape. Their hands are all over you. Your clothes tear away, and you're violated. <<gggstress>><<ggtrauma>><<stress 24>><<trauma 16>> <br><br> <<link [[Scream!|Gwylan Hypnosis Removal Scream 2]]>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> You open your mouth to scream, and everything freezes. <br><br> "There." Gwylan walks through the crowd of frozen people. You still can't move, either. <<He>> examines you closely and snaps <<his>> fingers. Everything starts moving again, and your voice escapes. <br><br> <span class="red"><<askrough>></span> <br><br> <<He>> snaps <<his>> fingers again, stopping everything once more. "Now, why would you go and say something like that?" <<His>> hand pulls away those that violate you, and <<he>> cups your cheek. "Tell me, dear. Do you have trouble asking others for help in normal situations? I think someone may have exploited that, and used it as the impetus for this behavior." <br><br> <<He>> smiles. "Remember, you came here to ask me for help. Wasn't it easy? Whenever you feel like this, instead of this self-destructive urge... just pretend you're asking me for help instead. Loudly." <br><br> One final time, <<he>> snaps <<his>> fingers. "Awaken." <br><br> <<link [[Next|Gwylan Hypnosis Removal Wake]]>><<pass 30>><</link>> <br><<set $location to "home">><<effects>><<run statusCheck("Gwylan")>> <<gwylanHypnoCanvas>><<strip>> You're in the orphanage washroom. <br><br> You're taking a bath. It's relaxing. You let yourself sink into the warm water. <br><br> You hear a loud bang, which makes you jump. <<stress 6>><<gstress>> <br><br> You look around the washroom. The lights are a little dim, but you're definitely alone. You take a deep breath. <br><br> <<link [[Relax|Gwylan Hypnosis Removal Cover 2]]>><<set $phase2 to 1>><</link>> <br> <<link [[Investigate|Gwylan Hypnosis Removal Cover 2]]>><<set $phase2 to 2>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<if $phase2 is 1>> You steady your heart rate and relax again. It was nothing. <br><br> You hear the squeak of skin on a glass pane. Was someone trying to peek in through the window? <br><br> You try not to think about it. <span class="red">Until the doorknob turns.</span> It opens. You reach for a towel to cover yourself, but there are none. Instead of covering up, your hands rub around your <<genitals>>, flaunting your nudity. You can't feel them, it's like your hands have gained a mind of their own. <br><br> A pair of glowing eyes stare at you from the darkness beyond, unblinking. You have to escape. They can see everything. <<gggstress>><<stress 24>> <br><br> <<link [[Escape through the window|Gwylan Hypnosis Removal Cover 3]]>><<set $phase2 to 3>><</link>> <br> <<link [[Close the door|Gwylan Hypnosis Removal Cover 3]]>><<set $phase2 to 4>><</link>> <br> <<else>> You reach for a towel, but there are none. You stand up naked and exposed. <br><br> You step from the bath, and hear three more loud bangs. It's coming from the fogged up window. <span class="red">There's a handprint on it. A pair of glowing eyes peer through it at you.</span> <br><br> You scream, taking a step back, but you don't cover yourself. Your body leans forward provocatively instead, your hands gesturing to every lewd detail of your body. You can't feel them, it's like your hands have gained a mind of their own. <br><br> You feel the eyes violating you. <span class="red">Many more handprints appear on the window.</span> It shakes under the pressure. There are so many. Your heart races. They're all going to see you! <<gggstress>><<stress 24>> <br><br> "Let me in." The voice sounds vaguely familiar, but it makes you shiver. <br><br> <<link [[Open the window|Gwylan Hypnosis Removal Cover 3]]>><<set $phase2 to 3>><</link>> <br> <<link [[Open the door and run|Gwylan Hypnosis Removal Cover 3]]>><<set $phase2 to 4>><</link>> <br> <</if>><<effects>><<run statusCheck("Gwylan")>> <<if $phase2 is 3>> You run to the window and open it. Steam escapes from the washroom, obscuring what's on the other side. <br><br> After a moment, it clears. You see... Gwylan's face. "Hello, <<pcpetname "Gwylan" "name">>. Thanks for letting me in." <<He>> climbs through the window, grabbing your wrists to steady <<himself>> as <<he>> does. <<else>> You run to the door, but <span class="red">slip</span>. You manage to avoid falling, but stumble right into something. <br><br> A pair of hands grab your wrists to steady you. It's Gwylan. "Hello, <<pcpetname "Gwylan" "name">>. I thought I might find you here." <<He>> steps into the room. <</if>> <br><br> "Are you quite alright? You look frazzled. And... where are your clothes?" <br><br> You try to cover yourself, but Gwylan won't release your hands, no matter how much you struggle. <<He>> looks down, perplexed. "Ah, I see." <<He>> lifts your wrists, <span class="blue">to reveal that your hands have been replaced by magnifying glasses</span>. <<He>> looks through one of them at you. <br><br> "I see it all, in fact. Nothing left to the imagination. Casual nudity is all well and good, I sometimes like to lounge around the garden in the nude myself." You feel yourself unravelling under <<his>> scrutiny. <br><br> You're painfully reminded of every time someone's seen you exposed against your will. The scenes play out all around you. Gwylan sees them, too, looking at them through your right magnifying-glass-hand. <<trauma 12>><<ggtrauma>> <br><br> "Good, tell me all about it." Your lips move, but you can't hear what you're saying. Gwylan continues nodding. You realise that the scenes around you are literally coming from your head. You look at the mirror, and see the screen of a camera in your mouth. <br><br> Gwylan takes a look at the camera, before reaching in and pulling it out. You cough and sputter. <<He>> starts to browse the videos on it for a little while, before pitching the camera <<if $phase2 is 3>> through the open window. <span class="purple">You don't hear it hit anything outside.</span> <<else>> at the closed window. <span class="red">The glass shatters loudly as the camera crashes through it.</span> <</if>> <br><br> <<link [[Next|Gwylan Hypnosis Removal Cover 4]]>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<He>> turns back to you with a smile, dusting <<his>> hands off. "Sometimes, the world forces you to bear everything no matter how much you try to hide it. Whether it's genital exposure, bruises, or trauma." <<He>> takes your wrists again, and pulls you closer. <<His>> arms wrap around you in a hug, before pulling something from behind you. It's a green cloak. <br><br> <<He>> pulls it over you, covering your exposure. As it passes over your hands, <span class="teal">they turn back to normal</span>. <<He>> takes them and squeezes them. "Modesty is a luxury. It might feel good in the moment to throw it all out..." <<He>> points to the <<if $phase2 is 4>>broken<</if>> window. "But that's just a short-term burst of excitement." <br><br> You're still exposed in the front. Gwylan steps around you, and guides your hands to help you cover yourself up. <<arousal 500>><<garousal>> <br><br> Many additional hands start to form around you, covering your skin. They slowly change colour, and turn into more clothes. You think you recognise this outfit from the forest shop. <br><br> "Now, if you ever feel like you're too exposed, and think it's a good idea to flaunt it instead of covering yourself up when you really need to... just think of covering up with some clothes from my shop, instead!" <br><br> You feel safe, and warm. Gwylan giggles and snaps <<his>> fingers. "Awaken." The washroom's light goes out. <br><br> <<link [[Next|Gwylan Hypnosis Removal Wake]]>><<pass 30>><<clotheson>><</link>> <br><<set $location to "forest">><<effects>><<run statusCheck("Gwylan")>> <<gwylanHypnoCanvas>> You're running through the forest. Something is chasing you. <br><br> You pant for breath. You've been running for so long. <<tiredness 2>><<gtiredness>> <br><br> You hear growls all around you, and countless sets of eyes peeling you apart. <<stress 12>><<ggstress>> <br><br> You can't take it anymore. If you just stop, if you just submit... <br><br> You fall to the ground. You can't see them, but you know they're getting closer. They're all around you. You close your eyes, but spread your legs. If you just make sure it's as fast as possible, you'll be okay. You just have to submit. <<stress 12>><<trauma 14>><<ggstress>><<ggtrauma>> <br><br> Footsteps approach. Something crashes into you, causing you to roll. Your head spins. <br><br> <<if _gwylanTF.known>> You see a pair of brown fox ears. They twitch. Your vision comes back into focus. <<else>> You see a head of mousy-brown hair. Your vision comes back into focus. <</if>> It's Gwylan. "Caught you," <<he>> giggles, straddling you. "I saw you running, dear, and I just had to catch up." <<if $gwylanSeen.includes("partners")>> <<He>> kisses you on the cheek before helping you up. <<else>> <<He>> helps you up. <</if>> "Why were you running to begin with, though?" <br><br> <<link [[Tell Gwylan why you were running|Gwylan Hypnosis Removal Deviancy 2]]>><<set $phase2 to 1>><</link>> <br> <<link [[Stay silent|Gwylan Hypnosis Removal Deviancy 2]]>><<set $phase2 to 2>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<if $phase2 is 1>> <<switch $speech_attitude>> <<case "meek">> You look down in shame. "I was running from the scary beasts," you say. "I ran for so long, though. I gave up, I thought it would be easier if I just..." <<case "bratty">> You look down and cross your arms. "I was running from... some kind of beast," you say. "But I ran out of energy, and figured it would go by faster if I..." <<default>> You look away. "I was running from the animals. I thought I could outrun them, but I got so tired, I thought it would hurt less if I..." <</switch>> <br><br> "Played dead," <<he>> finishes. You open your mouth to protest, but can't find the words to do so. That does seem similar to what you were doing. <<stress 6>><<gstress>> <<else>> You stay silent. Gwylan frowns. "I understand. I'll have to coax the answer out of you, though. Hold still for a moment. I'll be gentle." <br><br> <<He>> pulls you into a hug. You feel yourself come apart as <<he>> unravels you like a spool of twine. <<trauma 12>><<ggtrauma>> <br><br> "You were running from beasts, and thought to play dead," <<he>> says. You open your mouth to protest, but have already cast your voice aside. <</if>> <br><br> "We will correct this impulse. <<if $cow gte 6>> Reject your submissive instincts, dear calf." <<else>> Follow your instincts, <<pcpetname "Gwylan">>." <</if>> <br><br> Gwylan vanishes. You're left alone in the darkening forest. <br><br> <<link [[Wander|Gwylan Hypnosis Removal Deviancy 3]]>><<set $phase2 to "run">><</link>> <br> <<link [[Hunker down|Gwylan Hypnosis Removal Deviancy 3]]>><<set $phase2 to "hide">><</link>> <br><<effects>> <<if $phase2 is "run">> You start to walk through the forest again. <<else>> You find a hiding place in the foliage and hunker down. <</if>> You keep a sharp ear out for any intruding sound, but it's eerily silent. <br><br> It becomes darker. <br><br> A chilling voice echoes around you. <br><br> <<if $phase2 is 1>> "I can hear your steps, heavy with terror." It laughs. "Run. Run!" <<else>> "I can smell your sweet fear." It laughs. "Hide. Hide!" <</if>> <br><br> <<set $skulduggerydifficulty to random(500, 1000)>> <<link [[Run|Gwylan Hypnosis Removal Deviancy Run]]>><</link>><<athleticsdifficulty 500 1000>> <br> <<link [[Hide|Gwylan Hypnosis Removal Deviancy Hide]]>><</link>><<skulduggerydifficulty>> <br><<effects>> <<if $phase2 is "run">> You keep moving, breaking into a run. <<else>> You flee your hiding spot, and break into a run. <</if>> <<if $athleticsSuccess>> Rapid footsteps approach, <span class="green">but get no closer</span>. <<set $hypnosis_potency++>><<gwylanHypnoEffect>> <br><br> Eventually, they fade away behind you. You slow down to catch your breath. When you look up, you see three terrible green eyes staring at you from the shadows. <br><br> Whatever it is, it pounces on you. Brown fur fills your vision. <<else>> Rapid footsteps approach, <span class="red">and bear down on you</span>. <br><br> You're pounced upon by something massive. Brown fur fills your vision. <<stress 12>><<pain 3>><<ggstress>><<gpain>> <</if>> <br><br> <<link [[Submit|Gwylan Hypnosis Removal Deviancy 4]]>><<set $phase2 to "submit">><</link>> <br> <<link [[Fight back|Gwylan Hypnosis Removal Deviancy 4]]>><<set $phase2 to "fight">><</link>> <br><<effects>> <<if $phase2 is "run">> You dive into the nearby foliage and hunker down. <<else>> You stay in your hiding place. <</if>> Something stalks by on four legs. You hold your breath. <<skulduggerycheck>> <<set $hypnosis_potency++>><<gwylanHypnoEffect>> <br><br> <<if $skulduggerysuccess>> It passes by. You exhale. You don't know how long you wait for, but you emerge from your hiding spot, only to be met with three terrible green eyes staring at you from the shadows. <br><br> Whatever it is, it pounces on you. Brown fur fills your vision. <<else>> It stops. Three terrible green eyes fill your vision, and you're pounced upon by something massive. <</if>> <br><br> <<link [[Submit|Gwylan Hypnosis Removal Deviancy 4]]>><<set $phase2 to "submit">><</link>> <br> <<link [[Soothe|Gwylan Hypnosis Removal Deviancy 4]]>><<set $phase2 to "soothe">><</link>><<tendingdifficulty 500 1000>> <br> <<link [[Fight back|Gwylan Hypnosis Removal Deviancy 4]]>><<set $phase2 to "fight">><</link>><<physiquedifficulty 1 $physiquemax>> <br><<effects>><<run statusCheck("Gwylan")>> <<if $phase2 is "soothe">> <<if $tendingSuccess>> You instinctively hum <<if $seabird_lullaby gte 2>> <span class="teal">Seabird's Lullaby,</span> <<elseif $seabird_lullaby is 1>> a <span class="teal">faintly familiar melody,</span> <<else>> a soothing tune, <</if>> and stroke the beast's fur gently. After a moment, <span class="green">the beast stills,</span> and pulls you close to its underbelly in an embrace. <<trauma -6>><<lltrauma>> <<else>> You try to soothe the beast, <span class="red">but you're too afraid</span>. The slightest wrong movement is enough to make you lose your nerve. <<trauma 6>><<gtrauma>> <br><br> You lay still, anticipating the violation. It never comes. The beast simply lays atop you, covering your lower half. <</if>> <<elseif $phase2 is "fight">> You lash out at the beast. <<if $physiqueSuccess>> <span class="green">You land a strike in a vital spot, causing it to recoil.</span> It trills and grumbles, before simply flopping over on top of you. Its legs pull you to its underbelly, almost like a hug. <<trauma -6>><<lltrauma>> <<else>> <span class="red">Your strike is weak and misplaced.</span> You freeze, fearing the reprisal attack. <<trauma 6>><<gtrauma>> <br><br> It never comes. The beast simply lays atop you, covering your lower half. <</if>> <<else>> You lay still as the creature's hot breath blows against your face, hoping it will lose interest. You close your eyes, anticipating the violation. <<trauma 12>><<ggtrauma>> <br><br> It never comes. The beast simply lays atop you, covering your lower half. <</if>> <br><br> You look up. The beast is like a gigantic fox. Although, instead of a head, you see <span class="pink">Gwylan's entire upper body emerging from the neck</span>. <<Hes>> naked. <br><br> <<if $phase2 is "soothe" and $tendingSuccess>> Both the human and fox parts of <<his>> body stretch as <<he>> yawns. "My, my, <<pcpetname "Gwylan" "simple">>. That was quite the serenade." The legs of <<his>> fox half push you up towards the human half, and <<he>> hugs you close to <<his>> bare chest. <<if C.npc.Gwylan.breastsize gte 6>> <<He>> pushes your head between <<his>> <<= C.npc.Gwylan.breastsdesc>>. <</if>> <br><br> "You did well. You didn't give up, showing warmth rather than submission. It was risky, but it worked." <<He>> breathes gently. "Be wary of what beasts you try to become warm with. Not all will be so..." <<if $gwylanSeen.includes("partners")>> <<He>> pulls you into a brief kiss. <<else>> <<His>> embrace tightens. <</if>> "...warm in turn." The fox half seems to fall asleep. <<elseif $phase2 is "fight" and $physiqueSuccess>> <<He>> rubs a fresh bruise. "One decisive blow is often all it takes to make a predator back down. Well done." <<He>> smiles. "Your instincts serve you well. You were caught, but didn't give up. Be cautious, though. Might alone can only save you for so long." <br><br> <<He>> rolls over, freeing you. <<elseif $phase2 is "submit">> "You're lucky I wasn't something more dangerous, <<pcpetname "Gwylan">>." <<He>> giggles, and <<his>> massive tail brushes up against your face. <<else>> "It was a good attempt, dear. You didn't give up, and that's what's important." <<He>> stays lying atop you. <</if>> "<span class="blue">The fox that plays dead is the first devoured.</span> Remember this the next time you feel this impulse overtake you." <br><br> <<He>> snaps <<his>> fingers. "Awaken." <br><br> <<link [[Next|Gwylan Hypnosis Removal Wake]]>><<pass 30>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<gwylanHypnoCanvas>> You sit in an empty white void. There's nothing. At least, there's nothing until you look up. <br><br> Far, far up in the sky, there are red words floating. <br><br> <span class="red">ERROR: Invalid hypnosis removal scene: <<= $phase>>. Please report.</span> <br><br> <<set $phase to "error">> You wonder what that could possibly mean. Gwylan snaps <<his>> fingers. <br><br> <<link [[Next|Gwylan Hypnosis Removal Wake]]>><</link>> <br><<set $location to "forest_shop_garden">><<effects>><<run statusCheck("Gwylan")>> <<canvas-model-override "clear">> Your focus slowly returns. You're back in the garden. <br><br> The incense has burned out. <br><br> <<if $phase isnot "error">> <<set _hypnoDown to $hypnosis_potency * -1>> <<set _hypnoStartLevel to $hypnosis_traits[$phase]>> <<set _hypnoEndLevel to _hypnoStartLevel - $hypnosis_potency>> <<switch $phase>> <<case "scream">><<set _hypnoText to "Yearning">> <<case "cover">><<set _hypnoText to "Flaunting">> <<default>><<set _hypnoText to $phase.toUpperFirst()>> <</switch>> <<set _hypnoNames to [0, "Hypnotic", "Bewitched", "Beguiled", "Mesmeric", "Sublime"]>> <<set _hypnoColours to ["green", "lblue", "blue", "purple", "pink", "red"]>> Your <span @class="_hypnoColours[_hypnoStartLevel]"><<= _hypnoNames[_hypnoStartLevel]>> <<= _hypnoText>></span> has <<if _hypnoEndLevel lte 0>> <span class="green">drowned</span>. <<run delete $hypnosis_traits[$phase]>> <<else>> shallowed to <span @class="_hypnoColours[_hypnoEndLevel]"><<= _hypnoNames[_hypnoEndLevel]>> <<= _hypnoText>></span>. <<set $hypnosis_traits[$phase] to _hypnoEndLevel>> <</if>> <br><br> <<if _hypnoEndLevel lte 0>> "I think I got it all," Gwylan says, looking quite pleased with <<himself>>. "You should feel better now, although remember that there may still be side effects for a while." <<else>> "Some of the impulse may still linger, but it should be less intense, now. Give your head a few days to cool down, and then come back. We can try to smother the rest," Gwylan says. <</if>> <br><br> <</if>> <<set $gwylanSeen.pushUnique("hypnosis_removal")>> <<link [[Go back in the shop|Gwylan Hypnosis End]]>><<endevent>><</link>> <br><<effects>><<set $outside to 0>><<set $location to "forest_shop">><<run statusCheck("Gwylan")>> <<storeonhandheld "gwylanHypno">> <<npc Gwylan>><<person1>> Gwylan leads you back into the shop. "If there's anything else I can do for you, just ask." <br><br> <<unset $hypnosis_potency>><<set $daily.gwylan.hypnosis to true>> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>> <<if $phase2 is 2 or $phase2 is 3>> <<if $phase2 is 2>> /* Initial passage */ <<switch $speech_attitude>> <<case "meek">> You slowly drop to your knees. "P-please," you start. "I want this." <<case "bratty">> You sit cross-legged. "I want this," you say. "Really." <<default>> You slowly sit down. "I want to go deeper," you say. "Really." <</switch>> <br><br> <<He>> locks eyes with you. "Why?" Your head pounds painfully. <<pain 2>><<gpain>> <<else>> /* You want the hypnosis for its effects */ <<switch $speech_attitude>> <<case "meek">> "It's just... the only way," you say quietly. "The only way to <<case "bratty">> "Because I don't have any other options," you say firmly. "It's the only way to <<default>> "It's the only way," you say, shrugging. "The only way to <</switch>> <<switch $phase>> <<case "peace">> come to peace with what I am." <<case "silence">> get rid of the <<pluralise numberOfEarSlime(true) "thing">> in my <<pluralise numberOfEarSlime(true) "ear">>." <<case "slumber">> have a good night's sleep." <<case "insight">> know what's real and what's not." <<case "removal">> have control of myself." <br><br> Gwylan laughs bitterly. "<<pcPetname "Gwylan" "simple">>, if you're worried about <i>control</i>, this is the last thing you should be doing." <</switch>> <br><br> <<if $phase isnot "removal">> Gwylan closes <<his>> eyes, frowning. "Not good enough, <<pcpetname "Gwylan" "simple">>. This, what I'm about to do to you... it's not an acceptable byproduct for <i>anything</i>." <br><br> <</if>> <<switch $phase>> <<case "peace">> "But these pieces of myself—" <<case "silence">> "But the <<pluralise numberOfEarSlime(true) "slime">>—" <<case "slumber">> "But my sleep—" <<case "insight">> "But the visions—" <<case "removal">> "But the voices—" <</switch>> <br><br> "—<<= $phase is "slumber" or $phase is "silence" and numberOfEarSlime(true) is 1 ? "is" : "are">> not bad enough to justify this," <<he>> insists. "This is a cost too great for you to pay, unless you're certain you can accept it. Not just that; unless you're certain you want it." <</if>> <br><br> <<link [[Say nothing|Gwylan Hypnosis Deepest]]>><<set $phase2 to 1>><<npcincr Gwylan dom -5>><</link>><<llyearning>> <br> <<link [[Say it makes you feel safe|Gwylan Hypnosis Deepest]]>><<set $phase2 to 4>><</link>> <br> <<link [[Say you like feeling closer to <<him>>|Gwylan Hypnosis Deepest]]>><<set $phase2 to 5>><<npcincr Gwylan dom 1>><</link>><<gyearning>> <br> <<link [[Say you want answers|Gwylan Hypnosis Deepest]]>><<set $phase2 to 6>><</link>> <br> <<if $phase2 isnot 3>> <<link [[Say you just want the help you asked for|Gwylan Hypnosis Deepest]]>><<set $phase2 to 3>><<npcincr Gwylan dom -1>><</link>><<lyearning>> <</if>> <<elseif $phase2 is 4 or $phase2 is 5 or $phase2 is 6>> <<if $phase2 is 4>> /* It makes you feel safe */ You cross your arms over your chest. <<switch $speech_attitude>> <<case "meek">> "It... it makes me feel safe," you say. "You make me feel safe." <<case "bratty">> "The world is fucking scary," you say. "But what you do to me makes it feel safer." <<default>> "It makes me feel safe," you say. "Like you'll protect me from everything." <</switch>> <br><br> <<He>> looks at you sadly. "I'm not convinced." <<elseif $phase2 is 5>> /* You like feeling closer */ You shuffle a little closer to <<him>>. <<switch $speech_attitude>> <<case "meek">> "I... I like how close it makes me feel to you," you say. <<case "bratty">> "I want to feel closer to you," you say. "Willingly." <<default>> "I like feeling this close to you," you say. "I want more." <</switch>> <br><br> <<His>> face reddens, but <<his>> expression doesn't change. "I'm not convinced." <<else>> /* You want answers */ You look away. "There's something further down," you say. "I can't explain it, but I need to see it. I need the answer to this question." <br><br> <<He>> crosses <<his>> arms. "I'm not convinced." <</if>> <br><br> Your vision gets blurry for a moment. You find some of your memories missing or out of order. <<trauma 6>><<gtrauma>> <br><br> <<link [[Stop|Gwylan Hypnosis Deepest]]>><<set $phase2 to 1>><<npcincr Gwylan dom -5>><</link>><<llyearning>> <br> <<link [[Beg|Gwylan Hypnosis Deepest]]>><<set $phase2 to 7>><</link>> <br> <<if hasSexStat("deviancy", 3)>> <<link [[Beg like a dog|Gwylan Hypnosis Deepest]]>><<set $phase2 to 8>><<npcincr Gwylan lust 5>><</link>><<deviant3>><<gglust>> <<else>> <<insufficientStat "deviancy" "to willingly beg like a dog">> <</if>> <br> <<elseif $phase2 is 7 or $phase2 is 8>> <<set _tf to checkTFparts()>> <<if $phase2 is 7>> /* Beg */ You bow your head. "Please," you say. "I want this. I really do." <br><br> "What was that? I didn't hear you." <<He>> crouches down to your eye level. <br><br> <<switch $speech_attitude>> <<case "meek">> "P-please!" you say louder. <<case "bratty">> You sigh and roll your eyes. "Pleeeeeease," you say. <<default>> "Please," you say louder. <</switch>> <br><br> "Please what?" <<He>> cups your cheek. "Tell me you want to do everything I say without question." <<else>> /* Bark like a dog */ <<if $speech_attitude is "meek">> You straighten up on your knees, <<else>> You shift around to get on your knees, <</if>> folding your arms up to your chest. <<if _tf.wolfTail or _tf.catTail or _tf.cowTail or _tf.birdTail or _tf.foxTail or _tf.demonTail>> Your tail wags behind you. <</if>> <<if $worn.neck.collared is 1>> You <<pull_leash "give">> a tug for emphasis. <</if>> <<deviancy3>> <<if $worn.neck.collared is 1 and $worn.neck.type.includes("leash")>> <<He>> crouches down to your eye level, grabbing your leash and patting your head. <<else>> <<He>> crouches down to your eye level and pats your head. <</if>> "<<pcPetname "Gwylan" "good">>." <<arousal 500>><<garousal>> <br><br> <<He>> cups your cheek. "Tell me you want to do everything I say without question." <</if>> <br><br> <span class="purple">You feel the effects of the red powder wearing off. A heat rises within you, yearning for <<him>>.</span> <br><br> <<link [[Stay silent|Gwylan Hypnosis Deepest]]>><<set $phase2 to 1>><<npcincr Gwylan dom -5>><</link>><<llyearning>> <br> <<link [[Give <<him>> control|Gwylan Hypnosis Deepest Slip]]>><<set $phase2 to 0>><<npcincr Gwylan dom 3>><</link>><<ggyearning>> <br> <<else>> <<set _hideHypnosisOptions to true>><<set $weekly.gwylanDeepest to true>> You let out a deep breath, but do nothing more. <br><br> Gwylan frowns. "Forgive me. I should have never let you sink this far." <br><br> <<set $phase to 0>><<set $phase2 to 0>> <<gwylanOptions>> <</if>><<effects>><<run statusCheck("Gwylan")>> <<set $gwylanSeen.pushUnique("hypnosis_deepest")>> <<set $phase2 to 0>> <<if $hypnosisTimers.devotion>> <<set $hypnosisTimers.devotion.time to Math.clamp($hypnosisTimers.devotion.time, 75, 95)>> <</if>> You muster your willpower to make sure it sounds like you mean it. <<switch $speech_attitude>> <<case "meek">> "I w-want... I want to do everything you say." <<case "bratty">> "I want to do everything you say. Without question." <<default>> "I want to... do everything you say... without question." <</switch>> <br><br> "Tell me you want to belong to me," Gwylan says through ragged breaths. The shop begins to swirl around you in a haze. <br><br> "I want to belong to you," you say. <br><br> "Tell me you want to sink even deeper," <<he>> says, leaning towards you. <br><br> "I want to reach the bottom," you say, getting closer in turn. <br><br> "I suppose I have to believe you now, despite my doubts," <<he>> says, leaning away as you continually get even closer. "Dear, that's enough. Stop that." <<He>> pushes your face away gently. <br><br> Your lips itch. You feel your will is still your own for a precious few seconds, <span class="pink">yet part of you wants to slip even deeper,</span> as though you need to further prove yourself to <<him>>. Gwylan starts to stand. "Let's go." <br><br> <<link [[Follow <<him>>|Gwylan Hypnosis Start 2]]>><<endevent phaseless>><</link>> <br> <<link [[Tell Gwylan you love <<him>>|Gwylan Hypnosis Love]]>><<pass 1>><</link>><<gwylanHypnoNote "kiss">> <br><<effects>><<run statusCheck("Gwylan")>> "I love you," you say. "Those are my own words. Are they proof enough?" <br><br> <<His>> face goes beetroot-red. "That's just the hypnosis talking. It's not—" <br><br> You lean forward and close the minuscule remaining distance, kissing <<him>>. <<His>> eyes widen and <<he>> lets out a tiny squeak. But <<he>> doesn't push you away. <<gwylanKiss>> <br><br> <<if $gwylanSeen.includes("partners")>> <<He>> gingerly returns it. <<His>> eyes close. <<else>> <span class="green"><<He>> cautiously returns it. <<His>> eyes close.</span> <</if>> <br><br> <<He>> pulls away after a moment, and flicks you on the nose. "You're too much," <<he>> huffs. <<npcincr Gwylan dom 5>><<ggyearning>> <br><br> <<He>> brushes <<himself>> off and stands, helping you to your feet too. <br><br> <<link [[Follow <<him>>|Gwylan Hypnosis Start 2]]>><<endevent phaseless>><</link>> <br> <<link [[Ask <<him>> to say it back|Gwylan Hypnosis Deepest Love 2]]>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<switch $speech_attitude>> <<case "meek">> "You're so insensitive! Say it back!" you pout. <<case "bratty">> You clear your throat. <<He>> looks back at you. <br><br> "Well?" you say. <br><br> "Out the front door and to the left, mind the winch, it's a bit rusty," <<he>> responds. <br><br> "Say it back, smartass." <<default>> "How rude," you say. "Say it back." <</switch>> <br><br> <<He>> frowns, and turns away. "I've lied to you enough already." <<trauma 12>><<ggtrauma>> <br><br> <<link [[Follow <<him>>|Gwylan Hypnosis Start 2]]>><<endevent phaseless>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<set $gwylanSeen.pushUnique("ear_slime")>> <<if $gwylanJordanSlime>> <<switch $speech_attitude>> <<case "meek">> "S-someone told me you can help with something in my <<pluralise numberOfEarSlime(true) "ear">>," you say. <<case "bratty">> "I heard that you can stop <<if numberOfEarSlime(true) gte 2>>these demons<<else>>this demon<</if>> in my ear from whispering sweet nothings," you say. <<default>> "Jordan said you can help me with <<if numberOfEarSlime(true) gte 2>>these things that are<<else>>this thing that's<</if>> whispering in my ear," you say. <</switch>> <<else>> <<switch $speech_attitude>> <<case "meek">> "S-so, you said you can help with my intrusive thoughts?" <<case "bratty">> "Please tell me you actually know how to get <<if numberOfEarSlime(true) gte 2>>these things out of my ears<<else>>this thing out of my ear<</if>>." <<default>> "You said you could help me with <<if numberOfEarSlime(true) gte 2>>these things in my ears<<else>>this thing in my ear<</if>>." <</switch>> <</if>> <br><br> <<He>> nods, rummaging around in a shoebox. <<He>> pulls out a small metal object. <<He>> then walks around you, <<if $bodysize is 3>> standing on the tips of <<his>> toes to look <<elseif $bodysize is 0>> bending over to look <<else>> tilting your head to look <</if>> into your ear. You feel the cool touch of metal on the lobe. <<if numberOfEarSlime(true) gte 2>> <<He>> then walks around you, looking in your other ear, too. <</if>> <br><br> <<He>> sighs. "You're host to <<if numberOfEarSlime(true) gte 2>> a pair of terrible parasitic creatures. Ones that are capable of forcing you to protect them, overwriting your needs with their desires." <<He>> steps in front of you. "I don't have the tools to extract them safely, not anymore. I haven't needed such things in many years." <<else>> a terrible parasitic creature. One that's capable of forcing you to protect it, overwriting your needs with its desires." <<He>> steps in front of you. "I don't have the tools to extract it safely, not anymore. I haven't needed such things in many years." <</if>> <br><br> <<He>> turns <<his>> head and holds <<his>> earlobe forward. <span class="blue">There's a tiny tattoo shaped like an ornate X behind it.</span> The details are intricate, and some of the lines almost seem to be moving when you look too long. It's far more advanced than anything you've seen from the local tattoo parlour. <br><br> "It's a bit late for that to be a good solution for you, and I'm low on stock to make the ink anyways. The only permanent solution is quite dangerous, and involves laying upon the sunken altar in Lake Whiteflower when the moon rises red. Not only will you have to hold your breath for a very long time, <span class="red">but there's something in that lake that doesn't much appreciate trespassers</span>, and it's attracted to the presence of these very parasites." <br><br> <<He>> puts <<his>> hand to <<his>> chin. "I can help in the short term, at least. <span class="blue">I know a particular hypnosis technique that can silence <<if numberOfEarSlime(true) gte 2>>them<<else>>it<</if>>,</span> or at least let you automatically filter out <<if numberOfEarSlime(true) gte 2>>their<<else>>its<</if>> noises and chemical releases." <br><br> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>> <<switch $speech_attitude>> <<case "meek">> "I-I can't wear those clothes," you say. "The <<pluralise numberOfEarSlime(true) "slime">> in my head won't let me." <<case "bratty">> "I can't dress up for you," you say. "The <<pluralise numberOfEarSlime(true) "devil">> in my <<pluralise numberOfEarSlime(true) "ear">> won't permit it." <<default>> "I can't wear the clothes you asked me to," you say. "The <<pluralise numberOfEarSlime(true) "parasite">> in my head won't let me." <</switch>> <br><br> <<His>> brow furrows. <<if $gwylanSeen.includes("hypnosis_silence")>> <<if numberOfEarSlime(true) gte 2>> "The pests inside are back at it? In that case, let's make them take a nap. After you complete a different favour." <<else>> "The pest inside is back at it? In that case, let's make it take a nap. After you complete a different favour." <</if>> <<elseif $gwylanSeen.includes("ear_slime")>> "It's gotten that bad already? My offer still stands to silence <<if numberOfEarSlime(true) gte 2>>them<<else>>it<</if>>. I'll figure out something else you can do." <<else>> <<set $gwylanSeen.pushUnique("ear_slime_intro")>><<set $gwylanSeen.pushUnique("ear_slime")>> <<He>> rummages around in a shoebox, producing a metal object. <<He>> walks around you, <<if $bodysize is 3>> and stands on the tips of <<his>> toes to look <<elseif $bodysize is 0>> and bends over to look <<else>> and tilts your head to look <</if>> into your ear. You feel the cool touch of metal on the lobe. <<if numberOfEarSlime(true) gte 2>> <<He>> then walks around you, looking in your other ear, too. <</if>> <br><br> <<He>> sighs. "You're host to <<if numberOfEarSlime(true) gte 2>> a pair of terrible parasitic creatures. Ones that are capable of forcing you to protect them, overwriting your needs with their desires." <<He>> steps in front of you. "I don't have the tools to extract them safely, not anymore. I haven't needed such things in many years." <<else>> a terrible parasitic creature. One that's capable of forcing you to protect it, overwriting your needs with its desires." <<He>> steps in front of you. "I don't have the tools to extract it safely, not anymore. I haven't needed such things in many years." <</if>> <br><br> <<He>> turns <<his>> head and holds <<his>> earlobe forward. <span class="blue">There's a tiny tattoo shaped like an ornate X behind it.</span> The details are intricate, and some of the lines almost seem to be moving when you look too long. It's far more advanced than anything you've seen from the local tattoo parlour. <br><br> "It's a bit late for that to be a good solution for you, and I'm low on stock to make the ink anyways. The only permanent solution is quite dangerous, and involves laying upon the sunken altar in Lake Whiteflower when the moon rises red. Not only will you have to hold your breath for a very long time, <span class="red">but there's something in that lake that doesn't much appreciate trespassers</span>, and it's attracted to the presence of these very parasites." <br><br> <<He>> puts <<his>> hand to <<his>> chin. "I can help in the short term, at least. <span class="blue">I know a particular hypnosis technique that can silence <<if numberOfEarSlime(true) gte 2>>them<<else>>it<</if>>,</span> or at least let you automatically filter out <<if numberOfEarSlime(true) gte 2>>their<<else>>its<</if>> noises and chemical releases." <</if>> <br><br> <<He>> thinks for a moment. <<gwylanRequestEnd "skip">> <<run gwylanRequest()>> <<set $gwylan.request.hold to "silence">> <<gwylanRequestText>> <br><br> <<gwylanOptions>><<widget "gwylanHypnosis">> <<set $_trait to _args[0]>> <<set $_duration to _args[1]>> <<set $_level to _args[2] || 5>> /* Catch invalid arguments and escape */ <<if !["devotion", "peace", "silence", "slumber", "insight"].includes($_trait)>> <<exit '<span class="red">ERROR: Invalid hypnosis type: <<= $_trait>> inflicted. Please report.</span>'>> <</if>> <<if typeof $_duration isnot "number">> <<exit '<span class="red">ERROR: Invalid hypnosis duration: <<= $_duration>> inflicted. Please report.</span>'>> <</if>> /* Set up colours and text */ <<switch $_trait>> <<case "devotion">> <<switch $hypnosis_traits.devotion>> <<case 1 0 undefined>><<set $_hypnotic to "Hypnotic">><<set $_color to "lblue">> <<case 2>><<set $_hypnotic to "Bewitched">><<set $_color to "blue">> <<case 3>><<set $_hypnotic to "Beguiled">><<set $_color to "purple">> <<case 4>><<set $_hypnotic to "Mesmeric">><<set $_color to "pink">> <<case 5>><<set $_hypnotic to "Sublime">><<set $_color to "red">> <<case 6>><<set $_hypnotic to "Frenzied">><<set $_color to "basicHypnoCss()">> <</switch>> <<set $_traitText to $worn.neck.name is "familiar collar" and $worn.neck.cursed is 1 ? "Devotion" : "Curiosity">> <<case "peace">><<set $_hypnotic to "Hypnotic">><<set $_color to "forest-green">><<set $_traitText to "Peace">> <<case "silence">><<set $_hypnotic to "Hypnotic">><<set $_color to "purple">><<set $_traitText to "Silence">> <<case "slumber">><<set $_hypnotic to "Hypnotic">><<set $_color to "blue">><<set $_traitText to "Slumber">> <<case "insight">><<set $_hypnotic to "Hypnotic">><<set $_color to "grey">><<set $_traitText to $awareness gte 300 ? "Ignorance" : "Insight">> <</switch>> <<if !$hypnosis_traits[$_trait] and $_duration lte 0>> /* Error, escape */ <<exit '<span class="red">ERROR: Invalid negative hypnosis duration: <<= $_duration>> inflicted on non-existent trait: <<= $_trait>>. Please report.</span>'>> <<elseif !$hypnosis_traits[$_trait] and $_duration gt 0>> /* Initial trait gain */ <<set $hypnosis_traits[$_trait] to 1>> <<set $hypnosisTimers[$_trait] to {}>> <<set $hypnosisTimers[$_trait].time to $_duration>> <<if $_trait is "devotion">> /* Initial Curiosity/Devotion gain */ <<set $hypnosisTimers[$_trait].max to gwylanHypnoMax("value")>> <<set $hypnosisTimers[$_trait].time to Math.clamp($hypnosisTimers[$_trait].time, 0, gwylanHypnoMax("value"))>> <<set $gwylanSeen.pushUnique("hypnosis_first")>> <span @class="$_color">A question with no answer fills your mind, and visions of the forest linger. Gwylan looks a little softer around the edges.</span><br> You've gained the <span @class="$_color"><<= $_hypnotic>> <<= $_traitText>></span> trait. <<arousal 200>><<awareness 2>><<garousal>><<gawareness>> <<else>> /* Other trait gain */ <<set $hypnosisTimers[$_trait].max to $_duration>> You've gained the <span @class="$_color"><<= $_hypnotic>> <<= $_traitText>></span> trait. <</if>> <<hypnotised 1>> <<elseif $hypnosis_traits[$_trait] and $_duration lte 0>> /* Duration/trait down */ <<if $_trait is "devotion">> <<set $hypnosisTimers.devotion.time to Math.clamp($hypnosisTimers.devotion.time + $_duration, 0, gwylanHypnoMax("value"))>> <<if $hypnosisTimers.devotion.time lte gwylanHypnoMax("value", $hypnosis_traits.devotion - 1)>> <<switch $hypnosis_traits.devotion>> <<case 1>>/* Trait cleared */ <<run delete $hypnosis_traits.devotion>><<run delete $hypnosisTimers.devotion>> <span class="erase-from-history">You feel as </span><span class="erase-from-history">though you once </span><span class="erase-from-history">had a burning </span><span class="erase-from-history">question in your </span><span class="erase-from-history">mind, but you </span><span class="erase-from-history">can't remember it.</span><br> Your <span class="lblue">Hypnotic <<= $_traitText>></span> has <<print either("evaporated", "ebbed away", "receded")>>. <<awareness -2>><<lawareness>><br> <<case 2>>/* Decay to level 1 */ <<set $hypnosis_traits.devotion-->> <span class="lblue">The riddle stuck in your head becomes hollow, as if it never had an answer. The extra space someone once took up in your memory feels empty.</span><br> Your <span class="blue">Bewitched <<= $_traitText>></span> has shallowed to <span class="lblue">Hypnotic <<= $_traitText>></span>. <<awareness -4>><<lawareness>><br> <<case 3>>/* Decay to level 2 */ <<set $hypnosis_traits.devotion-->> <span class="blue">The mystery at the back of your mind begins to close and simplify. The visions of Gwylan's smiling face become blurry and indistinct.</span><br> Your <span class="purple">Beguiled <<= $_traitText>></span> has shallowed to <span class="blue">Bewitched <<= $_traitText>></span>. <<awareness -6>><<lawareness>><br> <<case 4>>/* Decay to level 3 */ <<set $hypnosis_traits.devotion-->> <span class="purple">The paradox looping in your mind breaks free, reaching a conclusion. The lurid visions of Gwylan fade to grey.</span><br> Your <span class="pink">Mesmeric <<= $_traitText>></span> has shallowed to <span class="purple">Beguiled <<= $_traitText>></span>. <<awareness -8>><<llawareness>><br> <<case 5>>/* Decay to level 4 */ <<set $hypnosis_traits.devotion-->> <span class="pink">The answer you once held vanishes, and with it, the repeating tide of new questions halts. You've forgotten something.</span><br> Your <span class="red">Sublime <<= $_traitText>></span> has shallowed to <span class="pink">Mesmeric <<= $_traitText>></span>. <<awareness -12>><<llawareness>><br> <<case 6>>/* Decay to level 5 */ <<set $hypnosis_traits.devotion-->> <span class="red">The maddening spiral finally releases you from its whirlpool grip.</span><br> Your <span @class="basicHypnoCss()">Frenzied <<= $_traitText>></span> has shallowed to <span class="red">Sublime <<= $_traitText>></span>. <<awareness -15>><<lllawareness>><br> <</switch>> <<elseif $_duration lte -2>> <span class="witchbloom">Your <span @class="$_color"><<= $_traitText>></span> shallows.</span> <</if>> <<if $hypnosisTimers.devotion>> <<set $hypnosisTimers.devotion.max to gwylanHypnoMax("value")>> <</if>> <<else>> <<if $hypnosisTimers[$_trait].time + $_duration lte 0>> <<run delete $hypnosis_traits[$_trait]>><<run delete $hypnosisTimers[$_trait]>> <<switch $_trait>> <<case "peace">> <span class="purple">A familiar uncertainty fills your being. Your Hypnotic Peace has faded.</span><br> <<case "silence">> <<if numberOfEarSlime()>> <span class='purple'>Familiar whispers fill your ears. Your Hypnotic Silence has faded.</span><br> <<else>> <span class='purple'>Your Hypnotic Silence has faded.</span><br> <</if>> <<default>> <span class="purple">Your Hypnotic <<= $_traitText>> has faded.</span><br> <</switch>> <</if>> <</if>> <<else>> /* Trait already exists */ <<if $_trait is "devotion">> /* Hypnotic Curiosity/Devotion trait levels and logic */ <<if $hypnosis_traits.devotion gt $_level>> /* Level of action is insufficient to increase curiosity/devotion */ <span class="witchbloom">A familiar embrace enwreathes your heart, but your <span @class="$_color"><<= $_traitText>></span> goes no deeper.</span> <<else>> <<if $hypnosisTimers.devotion.time + $_duration gt gwylanHypnoMax("value") and $hypnosis_traits.devotion gte gwylanHypnoMax("trait")>> /* Max current trait level, can't increase further */ <<if $daily.devotionWall>> <<if $hypnosis_traits.devotion gte 5>> <<set _devotionTrauma to true>> <span class="witchbloom">You slip deeper.</span> <<arousal 1000>><<trauma 12>><<ggarousal>><<ggtrauma>> <<else>> <span class="forest-green">Your mind rejects further <<= $_traitText>>, being pulled back to the shore of sense at the last moment.</span> <</if>> <<elseif $hypnosis_traits.devotion gte 5>> <<set _devotionTrauma to true>> <span class="witchbloom">Your mind delves ever deeper down a path of infinite questions.</span> <<arousal 500>><<stress -3>><<trauma 12>><<garousal>><<lstress>><<ggtrauma>> <<else>> <<set _devotionTrauma to true>> Your mind feels like it's on the edge of slipping into something deeper, <span class="forest-green">before being pulled back to the shore of sense at the last moment.</span> Your <span @class="$_color"><<= $_hypnotic>> <<= $_traitText>></span> can't yet sink further. <<arousal 500>><<stress -3>><<trauma 3>><<garousal>><<lstress>><<gtrauma>> <</if>> <<set $daily.devotionWall to true>> <<elseif $hypnosisTimers.devotion.time + $_duration gt gwylanHypnoMax("value")>> /* Trait level increases */ <<set $_score to Math.clamp($hypnosisTimers.devotion.time + $_duration, 0, gwylanHypnoMax("value", gwylanHypnoMax()))>> <<switch gwylanHypnoMax("level", $_score)>> <<case 0 1>> /* Should be impossible */ <<case 2>> <span class="blue">A riddle with no retort fills your mind, and visions of the forest shop linger. A strange feeling of attachment to Gwylan follows.</span><br> Your <span @class="$_color"><<= $_hypnotic>> <<= $_traitText>></span> has deepened. You are now <span class="blue">Bewitched</span>. <<arousal 500>><<awareness 4>><<garousal>><<gawareness>> <<case 3>> <span class="purple">A mystery with no closure fills your mind, and visions of Gwylan's smiling face linger. <<nnpc_He "Gwylan">> looks so safe and comforting.</span><br> Your <span @class="$_color"><<= $_hypnotic>> <<= $_traitText>></span> has deepened. You are now <span class="purple">Beguiled</span>. <<arousal 1000>><<awareness 6>><<ggarousal>><<gawareness>> <<case 4>> <span class="pink">A paradox with no resolution fills your mind, and visions of Gwylan's naked body linger. <<nnpc_He "Gwylan">> looks so warm and welcoming.</span><br> Your <span @class="$_color"><<= $_hypnotic>> <<= $_traitText>></span> has deepened, becoming <span class="pink">Mesmeric</span>. <<arousal 1000>><<awareness 8>><<ggarousal>><<ggawareness>> <<case 5>> <<if !$gwylanSeen.includes("hypnosis_sublime")>> <<set $gwylanSeen.pushUnique("hypnosis_sublime")>> <span class="red">An answer finally fills your mind. <<nnpc_Hes "Gwylan">> been in front of you all along. You expected to find the bottom, but you remain adrift in an ocean. <<nnpc_He "Gwylan">> only raises more questions, spiralling down into infinity. Visions of Gwylan snuff out any other thoughts you have. <<nnpc_He "Gwylan">> is everything.</span><br> Your <span @class="$_color"><<= $_hypnotic>> <<= $_traitText>></span> has blossomed, becoming <span class="red">Sublime</span>. <<arousal 1000>><<awareness 12>><<ggarousal>><<ggawareness>> <<else>> <span class="red">An answer finally fills your mind. <<nnpc_Hes "Gwylan">> been in front of you all along. <<nnpc_He "Gwylan">> is everything.</span><br> Your <span @class="$_color"><<= $_hypnotic>> <<= $_traitText>></span> has deepened beyond abyssal fathoms, becoming <span class="red">Sublime</span>. <<arousal 1000>><<awareness 12>><<ggarousal>><<ggawareness>> <</if>> <<case 6>> <span @class="basicHypnoCss()">You plunge below the bottom, into something that was never meant to be. You reach out and grip nothing. Nothing grips back, and nothing will ever be the same.</span><br> Your <span @class="$_color"><<= $_hypnotic>> <<= $_traitText>></span> has become <span class="basicHypnoCss()">Frenzied</span>. <<arousal 5000>><<awareness 20>><<gggarousal>><<gggawareness>> <<default>> <</switch>> <<set $hypnosis_traits.devotion to gwylanHypnoMax("level", $_score)>><<hypnotised 1>> <<else>> /* Trait level does not increase but value does */ <span class="blue">Your <span @class="$_color"><<= $_traitText>></span> deepens.</span> <</if>> <<set $hypnosisTimers[$_trait].time to Math.clamp($hypnosisTimers[$_trait].time + $_duration, 0, gwylanHypnoMax("value"))>> <<set $hypnosisTimers[$_trait].max to gwylanHypnoMax("value")>> <</if>> <<else>> <<set $hypnosisTimers[$_trait].time to Math.clamp($hypnosisTimers[$_trait].time + $_duration, 0, 30)>> /* Refreshing/adding duration of existing unleveled traits */ <<if $hypnosisTimers[$_trait].max lt $_duration>> /*If existing max is less than new base duration, equalise before overflow check */ <<set $hypnosisTimers[$_trait].max to $_duration>> <</if>> <<if $hypnosisTimers[$_trait].time gte $hypnosisTimers[$_trait].max>> /* Allow some overflow, up to 1/2 of overflow value added on to time and max */ <<set $_overflow to $hypnosisTimers[$_trait].time - $hypnosisTimers[$_trait].max>> <<set $_adjustment to Math.ceil($_overflow / 2)>> <<set $hypnosisTimers[$_trait].time to $hypnosisTimers[$_trait].max += $_adjustment>> <<set $_overflow to true>> <</if>> <<set $hypnosisTimers[$_trait].max to Math.max($hypnosisTimers[$_trait].max, $hypnosisTimers[$_trait].time)>> Your <span @class="$_color">Hypnotic <<= $_traitText>></span> has been nurtured. <<if $_overflow>> <span class="blue">Your trance felt deeper than last time.</span> <</if>> <<hypnotised 1>> <</if>> <</if>> <</widget>> <<widget "gwylanHypnoNote">> <<set $_note to "">> <<if _args[0] is "kiss" and !$gwylanSeen?.includes("kiss_hypno")>> /* Do nothing, no warning the first time hypnosis from kiss happens */ <<elseif $gwylanSeen?.includes("hypnosis_first")>> <<set $_devotion to $worn.neck.name is "familiar collar" and $worn.neck.cursed is 1 ? "Devotion" : "Curiosity">> <<set $_level to _args[0] || 6>> /* Change level later if needed, levelled actions not currently used */ <<if $_level is "kiss">><<set $_level to 6>><</if>> <<if $_level lte $hypnosis_traits.devotion>> <<set $_color to "black">> | <span @class='$_color'><<print $_devotion>></span> <<else>> <<switch $hypnosis_traits.devotion>> <<case 1>><<set $_color to "blue">> <<case 2>><<set $_color to "purple">> <<case 3>><<set $_color to "pink">> <<case 4>><<set $_color to "red">> <<case 5>><<set $_color to "witch">> <<default>><<set $_color to "lblue">> <</switch>> | <span @class='$_color'>+ <<print $_devotion>></span> <</if>> <</if>> <<if _args[0] is "kiss">> <<kissvirginitywarning>> <</if>> <</widget>> <<widget "gwylanWillpowerDifficulty">> <<set $_level to _args[0] || 1>> <<if !$hypnosis_traits.devotion or $hypnosis_traits.devotion lt $_level>> <<set $willpowerSuccess to 1>> <<elseif $hypnosis_traits.devotion gte 5>> /* resisting Gwylan is now impossible */ <<if !$settings.blindStatsEnabled>> <<if $settings.skillCheckStyle is "skillname">> <<hypnosisText "<span class='white'>|</span> <span class='orange'>Willpower</span>">> <<else>> | <span class='orange'>Willpower</span>: <<switch random(1, 18)>> <<case 1>><<hypnosisText "Snuffed.">> <<case 2>><<hypnosisText "Clay between my fingers.">> <<case 3>><<hypnosisText "Shush, <<pcpetname 'Gwylan'>>.">> <<case 4>><<hypnosisText "This is what you wanted, <<pcpetname 'Gwylan'>>.">> <<case 5>><<hypnosisText "Given away willingly.">> <<case 6>><<hypnosisText "Mine to keep.">> <<default>><<hypnosisText "Impossible.">> <</switch>> <</if>> <</if>> <<set $willpowerSuccess to 0>> <<elseif $hypnosis_traits.devotion gte 1>> <<willpowerdifficulty `120 * $hypnosis_traits.devotion` `350 * $hypnosis_traits.devotion`>> <<else>> <<set $willpowerSuccess to 1>> <</if>> <</widget>> <<widget "gwylanKiss">> <<set $_devotionUp to typeof _args[0] is "number" ? _args[0] : 5>> <<if $_devotionUp isnot 0>> <<if $daily.gwylan.kiss>> <<hypnosisText "Nothing else in the world matters to you right now.">> <<else>> <<hypnosisText "You feel the world fade away for a moment, your doubts and troubles vanishing as everything shrinks down to just the two of you.">> <</if>> <<set $gwylanSeen.pushUnique("kiss_hypno")>><<set $daily.gwylan.kiss to true>> <<gwylanHypnosis "devotion" 5>> <<if !_devotionTrauma>> <<trauma -4>><<ltrauma>> <</if>> <</if>> <<set $_lustUp to 0 + $gwylanSeen.count("partners") + $gwylanSeen.count("romance")>> <<if $_lustUp>> <<npcincr Gwylan lust $_lustUp>><<glust>> <</if>> <<if $player.virginity.kiss is true>> <<if $_devotionUp or $_lustup>><br><</if>> <<takeKissVirginity "Gwylan" "romantic">> <</if>> <</widget>> <<widget "gwylanCommand">><<silently>> <<set $_gwylanCommand to _args[0]>> <<set $_hypnosis_level to _args[1] or 1>> <<if $hypnosis_traits.devotion gte $_hypnosis_level>> <<set $_gwylanCommand to '<span class="witch">' + $_gwylanCommand + '</span>'>> <</if>> <</silently>><<print $_gwylanCommand>><</widget>> <<widget "gwylanHypnoCanvas">> <<canvas-model-override "left_eye" "green">> <<canvas-model-override "right_eye" "green">> <<canvas-model-override "trauma" true>> <<canvas-model-override "eyes_half" true>> <<canvas-model-override "mouth" "cry">> <<if !$sexRitual?.bondage>> <<canvas-model-override "arm_left" "idle">> <<canvas-model-override "arm_right" "idle">> <</if>> <</widget>> <<widget "gwylanHypnoEffect">><<silently>> <<if $gwylanSeen.includes("hypnosis_intro")>> <<set $_plus to _args[0]>> <<switch $_plus>> <<case 3>><<set $_text_output to " | <span class='teal'>+ + + Hypnosis Potency</span>">> <<case 2>><<set $_text_output to " | <span class='teal'>+ + Hypnosis Potency</span>">> <<case 1>><<set $_text_output to " | <span class='teal'>+ Hypnosis Potency</span>">> <<case -1>><<set $_text_output to " | <span class='purple'>- Hypnosis Potency</span>">> <<case -2>><<set $_text_output to " | <span class='purple'>- - Hypnosis Potency</span>">> <<case -3>><<set $_text_output to " | <span class='purple'>- - - Hypnosis Potency</span>">> <<default>><<set $_text_output to " | <span class='teal'>+ Hypnosis Potency</span>">> <</switch>> <</if>> <</silently>><<if $_text_output>><<print $_text_output>><</if>><</widget>> <<widget "gwylanSong">> <<if !$gwylan.lureSong>><<exit>><</if>> <<run statusCheck("Gwylan")>> <<if _args[0] isnot "end">> <<switch $gwylan.lureSong>> <<case 1>> <<if $islander_language gte 100>> <span class="narration"> <<if $rng gte 51 and ($wolfgirl gte 6 or $cat gte 6 or $cow gte 6 or $harpy gte 6 or $fox gte 6)>> <<if $wolfgirl gte 6>> Wild heart that beats <<if $gwylanSeen?.includes("partners")>>for<<else>>with<</if>> me<br> There lies a way to be<br> One with the waiting sea. <<elseif $cat gte 6>> Your curiosity<br> Will buoy us 'til we<br> May join the waiting sea. <<elseif $cow gte 6>> Your forced docility Won't halt our destiny; We'll join the waiting sea. <<elseif $harpy gte 6>> Bird of song, fly with me.<br> I'll bring you down to be<br> One with the waiting sea. <<else>> My dear kin, soon you'll see<br> <<if $auriga_scar>> Our black hearts stand ready<br> <<else>> Our hearts, a remedy<br> <</if>> To join the waiting sea. <</if>> <<else>> <<if $gwylanSeen?.includes("romance") and $rng lte 25>> Love, you could always see <<elseif $demon gte 6>> Passion guides you to see <<elseif $angel gte 6>> Virtue guides you to see <<elseif $fallenangel gte 4>> Forgiven hearts will see <<elseif $fallenangel gte 2 or $auriga_scar>> Your black heart yearns to see <<else>> It was in you to see <</if>><br> There lies a way to be<br> One with the waiting sea. <</if>> </span> <<else>> The words are in a language you don't recognise. <</if>> <<case 2>> <<if $islander_language gte 100>> <span class="narration"> <<if _gwylanStatus.includes("badEndReady") or $gwylanSeen?.includes("romance") and $rng gte 51>> Feel my hands on your skin,<br> whispered name on the wind,<br> let our touch settle in. <<else>> Feel the salt on your skin,<br> whispered name on the wind,<br> let the light settle in. <</if>> </span> <<else>> <span class="blue">The song sounds like a lullaby.</span> <</if>> <<case 3>> <<if $islander_language gte 100>> <span class="narration"> <<if _gwylanStatus.includes("badEndReady") or $gwylanSeen?.includes("romance") and $rng gte 51>> I'll soothe your tired bones,<br> A lover's word alone,<br> Like water shaping stone. <<else>> Embedded deep in bone,<br> Words maiden, mother, crone,<br> Like water carving stone. <</if>> </span> <<else>> <span class="purple">Your eyelids grow heavy.</span> <<tiredness 2>><<gtiredness>> <</if>> <<case 4>> <<if $islander_language gte 100>> <span class="narration"> <<if _gwylanStatus.includes("badEndReady") or $gwylanSeen?.includes("romance") and $rng gte 51 or $auriga_scar>> Walk here with me, we'll find<br> all that's been lost in time,<br> this broken seal we'll bind. <<else>> Tread your path, sunwise to<br> Seek what's lost, please don't rue,<br> For still, it sings for you. <</if>> </span> <<else>> <span class="purple">Your eyelids grow heavy.</span> <<tiredness 2>><<gtiredness>> <</if>> <<case 5>> <<if $islander_language gte 100>> <span class="narration"> <<if _gwylanStatus.includes("badEndReady") or $gwylanSeen?.includes("romance") and $rng gte 51 or $auriga_scar>> The river shifts its tide<br> for our names, cast aside,<br> lay unspoken, brookside. <<else>> Take root child, raise your shield.<br> Bear your name, unrevealed.<br> Rivers come. They will yield. <</if>> </span> <<else>> <span class="blue">The words of the song fade away, only the melody continuing. It sounds so familiar.</span> <</if>> <<default>> <span class="blue">The song's melody dances between the trees.</span> <</switch>> <<set $gwylan.lureSong++>> <<else>> <<if $islander_language gte 100>> <span class="narration"> <<if _gwylanStatus.includes("badEndReady")>> Hush now, return to sleep.<br> Fall further, slumber deep.<br> <span class="red">At last, you're mine to keep.</span> <<else>> Awaken, rise from sleep.<br> The <<if $auriga_scar>>Dark Elk<<else>>darkness<</if>> shall not reap<br> That which the earth will keep. <</if>> </span> <<else>> <span class="blue">The singing stops.</span> <</if>> <</if>> <</widget>><<effects>><<run statusCheck("Gwylan")>> <<if $gwylan.requestDone>> <<switch $speech_attitude>> <<case "meek">>"I-is there anything else I can do?" you ask. <<case "bratty">>"Do you have anything else for me to do?" you ask. <<default>>"Is there anything else I can help with?" you ask. <</switch>> <br><br> <<He>> tilts <<his>> head at you. "I appreciate the offer, but <span class="green">I already owe you</span>." <<He>> giggles. "Be careful. If you're this eager to help, I might start to take advantage." <<elseif $gwylan.request.event>> <<switch $speech_attitude>> <<case "meek">>"I-is there anything else I can do?" you ask. <<case "bratty">>"Do you have anything else for me to do?" you ask. <<default>>"Is there anything else I can help with?" you ask. <</switch>> <br><br> <<He>> tilts <<his>> head at you. "You still haven't done what I already asked of you." <<He>> pats the top of your head. "One thing at a time, dear." <<elseif $daily.gwylan.request and !$gwylanSeen.includesAny("caught", "caught_no_lewd") and ["clothing"].includes($gwylan.requestLast?.event)>> /* Prevent players from repeatedly skipping trigger for final snooping event */ <<switch $speech_attitude>> <<case "meek">>"I-is there anything else I can do?" you ask. <<case "bratty">>"Do you have anything else for me to do?" you ask. <<default>>"Is there anything else I can help with?" you ask. <</switch>> <br><br> <<He>> tilts <<his>> head at you. "I appreciate the offer, but if you keep this up I'm afraid you'll develop feelings for me, dear. Come back tomorrow if you're so eager." <<elseif !$gwylanSeen.includes("request_intro")>> <<switch $speech_attitude>> <<case "meek">>"I-is there anything I can help with?" you ask. <<case "bratty">>"Hey, you look busy. Do you need anything?" you ask. <<default>>"Is there anything I can help with?" you ask. <</switch>> <br><br> <<if _gwylanStatus.includes("cautious")>> <<He>> crosses <<his>> arms and looks sceptical. "What makes you want to help me?" <<He>> seems to realise something, and <<his>> expression quickly changes. "I'm sorry, that was rude of me. I could always use an extra pair of hands and eyes. Usually in my garden, but that's off-limits." <<else>> "You want to... help?" <<he>> asks, putting a hand under <<his>> chin. "I could always use an extra pair of hands and eyes. Usually in my garden, but that's off-limits." <</if>> <br><br> After a moment of thought, <<he>> snaps <<his>> fingers. <<run gwylanRequest("tutorial")>> <<gwylanRequestText>> <<else>> <<switch $speech_attitude>> <<case "meek">>"I-is there anything I can help with?" you ask. <<case "bratty">>"Hey, you look busy. Do you need anything?" you ask. <<default>>"Is there anything I can help with?" you ask. <</switch>> <br><br> "Yes, actually," <<he>> says with a smile. <<run gwylanRequest()>> <<gwylanRequestText>> <</if>> <br><br> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>> You hand Gwylan the wolfshrooms. <br><br> <<set _amountToRemove to 3 - $gwylanTutorialShrooms>> <<if $plants.wolfshroom.amount>> <<set $plants.wolfshroom.amount -= _amountToRemove>> <</if>> <<unset $gwylanTutorialShrooms>> /* Above is in case the player became proficient enough in tending to pick wolfshrooms without the tutorial exception half way through */ <<He>> turns them over in <<his>> hands. <<if currentSkillValue('tending') lt 300>> "Not the finest quality. Small, and this one's almost inert. You broke a few bits off when pulling them up, and the caps are warped too. Not bad, though. I'm sure you'll learn how to find better specimens in due time." <<else>> "Very nice. You've got a good eye. These will work well." <</if>> <br><br> <<He>> holds one up to the light. "They were thought to boost strength and virility, while imparting the spirit of the wolf, and that myth still persists. It's an understandable mistake to make considering their true effects. Wolfshrooms are aphrodisiacs and suppress fear responses. Consuming them certainly makes one more brave, and could enable feats one might not normally be capable of because of that. They also promote the growth of body hair." <br><br> <<He>> smiles at you. "Thank you. If you're still in the mood to help, I might have more for you to do. But, I need to pay you back first." <<gwylanRequestEnd>> <<set $gwylanSeen.pushUnique("request_tutorial")>> <br><br> <span class="gold">You can now complete tasks for Gwylan in exchange for services. More may become available as you tell <<him>> your stories.</span> <br><br> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>> <<if $gwylan.request.special is "gas mask">> <<set $gwylanSeen.pushUnique("request_gas_mask")>> Gwylan gently brushes <<his>> fingers against your cheek. You shiver, though you can't feel <<his>> touch through the thick rubber of your gas mask. <<He>> stares at you through the tinted lenses, <<his>> gaze stripping you bare. <br><br> When <<he>> speaks, <<his>> voice is quiet. "Every man, woman, and child in the country received one of these in the second World War. After the chemical warfare of the first, the government feared that civilians would be on the receiving end of it. Special masks were made for the littlest ones. Gas drills were held in schools, and posters were hung as a reminder to all: always carry your gas mask with you. They were fined if they were caught without one." <<He>> lowers <<his>> hand. "Fortunately, they were never needed. Unfortunately, the masks were made with asbestos fibers, leaving many with long-term health consequences. Sometimes decisions made with the best intentions do more harm than good. Sometimes the one devoted to protecting you is the one to kill you in the end." <<gghistory>><<historyskill 12>> <br><br> <<He>> gives you a wry smile. "I doubt this replica is in any way dangerous, but still, I'd like to have it." It's not a choice. <<He>> reaches for the straps securing your mask and carefully removes it. "Thank you for humouring an old soul's request. What can I do for you?" <<faceruined true>> <<gwylanRequestEnd>> <br><br> <<gwylanOptions>> <<elseif $gwylan.request.special is "gold accessories">> <<set $gwylanSeen.pushUnique("request_gold_accessories")>> Gwylan gently lifts your wrist, examining one of your gold bracelets. <<He>> then lifts the other, and holds your wrists together. "Iron and silver were often used as restraints, but gold had its place in that too. One shackled by gold is thought to be bound to the earth itself by greed, obsession, or yearning for something that was lost." <<He>> adjusts <<his>> grip and runs <<his>> fingers up your forearms, making your hands relax. <br><br> "In alchemy, gold was the symbol of purity and perfection. Its symbol was a simple circle with a dot in the middle, to represent the sun. A closed loop. Many a rich and powerful individual spent their fortunes on attempting to discover the art of chrysopoeia, or transmutation of base metals to gold, most commonly lead. The symbol of a snake devouring its own tail is often associated with the art. Another closed loop." <br><br> With a deft touch, <<he>> slips the bracelets off over your hands. <<He>> holds one in between you, looking at you through it with one eye. A dot within a circle. You feel profoundly exposed. <<stress 2>><<gstress>> <br><br> "Gold is soft enough to eat and biologically inert, and was often powdered and used as a food decoration thought to halt aging. It was worn to make one's skin vibrant and youthful. Even today, some believe infusions of gold into the skin keep the ravages of time at bay. Another metal that was thought to have this property was mercury sulfide, also called cinnabar. Related to the philosopher's stone, a mythical object capable of the aforementioned transmutation of metals. In reality, it was simply poison, and any who imbibed it met a slow, painful end." <br><br> <<He>> leans under the counter and grabs a small chisel. <<He>> gouges one of the bracelets with it, and looks closer. "As expected, these aren't gold all the way through. It's merely copper plated with gold. Are you noticing a pattern? In a way, we're still trying to transmute base metals. We're still binding ourselves with gilded shackles for vanity, and some still continue to drink poison in an effort to extend their life." <<ggscience>><<scienceskill 12>> <br><br> <<specialClothesUnlock "set" "jasper">><<set $daily.gwylan.jasper to true>> <<He>> holds out <<his>> hands, and you give <<him>> the <<if $worn.neck.name isnot "familiar collar">>choker and<</if>> anklets too. "I can still make use of these. Thank you for the lovely gifts. Now, what can I do to return the favour?" <<handsruined true>><<neckruined true>><<legsruined true>> <<gwylanRequestEnd>> <br><br> <<gwylanOptions>> <<else>> <<set _clothesToTake to []>> <<set _clothesToTakeText to []>> <<run $gwylan.request.items.filter(item => item.name === V.worn[item.slot].name).forEach(item => { T.clothesToTake.pushUnique(item.slot); T.clothesToTakeText.push(item.name); })>> <<switch $gwylan.request.special>> <<case "maid">> Gwylan walks around you, inspecting your $worn.upper.name. "A bit tight around the waist to accentuate curves, but comfortable enough for extended periods of service. Holds dust well, to prevent it from getting on the floor after cleaning. The maid drags the dirt and dust home with them, to do even more cleaning." <br><br> <<if $worn.upper.name is "traditional maid dress">> <<He>> crouches down, inspecting the lower half. "Thick apron all the way down, in anticipation of spills." <<He>> fleeces it down. "Good material." <<elseif $worn.upper.name is "Victorian maid dress">> <<He>> crouches down, inspecting the lower half. "An imitation of a much older style, but rugged." <<He>> fleeces it down. "The design is timeless." <<else>> <<He>> crouches down, inspecting the lower half. "A more modern design, more frilly than some older ones." <<He>> fleeces it down. "It has its own sort of appeal." <</if>> <br><br> <<if _gwylanStatus.includes("dom")>> <<He>> looks up at you and smiles. "Would you serve me in this, were I to ask?" <<He>> doesn't wait for you to answer. <</if>> <<He>> stands back up while gripping the skirt, <span class="pink">lifting the whole dress up over your head</span> along with your maid band. You barely even felt it happen. <<case "waiter" "waitress">> Gwylan walks around you, inspecting your $worn.upper.name. <<if $gwylan.request.special is "waitress">> "Well-pressed, good contrast to keep one's eyes high. The design on the front reminds one of an apron.<<if $gwylan_cafe_intro>> I bet you'd look cute in this while working at the cafe.<</if>>" <br><br> <<He>> suddenly crouches and lifts the short skirt, getting an unobstructed view of your <<undies>>. <<arousal 500>><<garousal>> <br> <<if $worn.under_lower.type.includes("naked")>> "Ah, a bold choice, letting yourself be exposed underneath. Lower rim is spacious, easy to move around in quickly. Breathable, too." <<npcincr Gwylan lust 1>><<glust>> <<else>> "Lower rim is spacious, easy to move around in quickly. Good for someone serving multiple clients at once." <</if>> <<else>> "Well-pressed, good contrast to keep one's eyes high. The waist apron is a cute touch.<<if $gwylan_cafe_intro>> I bet you'd look handsome in this while working at the cafe.<</if>>" <br> <<He>> suddenly yanks the apron forward, opening your trousers and getting an unobstructed view of your <<undies>>. <<arousal 500>><<garousal>> <<if $worn.under_lower.type.includes("naked")>> "Ah, a brave choice, letting yourself be exposed underneath. More loose than it looks. Breathable, too." <<npcincr Gwylan lust 1>><<glust>> <<else>> "Trousers are more spacious than they look. There's even a pouch behind the apron. Easy to move around in quickly. Good for someone serving multiple clients at once." <</if>> <</if>> <br><br> <<if !$gwylanSeen.includes("butterfly_pea_flower_tea")>> <<set $gwylanSeen.pushUnique ("butterfly_pea_flower_tea")>><<set _noOptions to true>> <<if !$gwylanTea>> <<He>> looks up at you with a thoughtful expression on <<his>> face. "Say, do you happen to know how to make butterfly pea flower tea?" <br><br> You've never even heard of that before. You shake your head, prompting Gwylan to smile. <<else>> <<He>> looks up at you with a thoughtful expression on <<his>> face. "Say, I never did show you how to make butterfly pea flower tea, did I?" <br><br> <<if $gwylanTea gte 3>> You barely manage to suppress a groan. Gwylan smiles. <<else>> You shake your head, prompting Gwylan to smile. <</if>> <</if>> "Well, you're about to learn! No <<= $player.gender_appearance is "m" ? "waiter" : "waitress">> in my shop can afford to live without such precious knowledge!" <<He>> vanishes in the back of the shop, and you hear some loud clinking for a few moments. <<He>> returns, balancing a tray laden with several herbs, a cup of freshly washed berries, a ladle, a patterned tea set and a glass pot of hot water. <br><br> <<link [[Next|Gwylan Request Clothes Waiter Tea]]>><</link>> <br> <<elseif _gwylanLovePercent gte 50 and C.npc.Gwylan.lust gte 25>> <<He>> looks up at you with a thoughtful expression on <<his>> face. <<if $worn.neck.collared is 1>> "You even brought a collar. You'd be ready to serve me," <<he>> says with a wink. <<else>> "All it's missing is a collar, and you'd be ready to serve me," <<he>> says with a wink. <</if>> <br><br> <</if>> <<if !_noOptions>> Right after <<his>> comment, <<he>> <span class="pink"> pulls your <<if $gwylan.request.special is "waitress">> trousers fully down, and your shirt up and over your head. <<else>> uniform up and over your head. <</if>> </span> <</if>> <<case "nurse" "plastic nurse">> Gwylan inspects your nurse costume. "I don't think that's standard garb for actual nurses. At least, not anymore. The job of a nurse is hard enough without all the ogling that uniform could cause." <<if $gwylan.request.special is "plastic nurse">> <<He>> runs <<his>> hands along it, causing the plastic to lightly squeak. "Oh, that's awful. It must be easy to clean, though." <br><br> <</if>> <<He>> smiles. "Still, it's better than being naked." With that, <<he>> grabs the rim of the skirt and <span class="pink">pulls the whole dress off over your head</span>, along with your nurse hat. <<if $gwylan.request.items.some(item => item.name === "nurse socks")>> Somehow, you feel even more exposed still wearing the nurse socks than if you were completely naked. You carefully take them off and hand them to Gwylan too, before <<he>> gets any ideas. <</if>> <<case "gothic">> <<set _noOptions to true>> Gwylan takes a step back to study your $worn.upper.name. <<He>> nods thoughtfully. "You look good. I'd like for you to keep this set. Very solemn. Like someone took a slice of midnight with a cookie cutter. It's not the most period-accurate representation, but it does remind one of the mourning dress of the Victorian era." <<He>> runs a hand over your sleeve. "Back then, they dipped clothes in arsenic to get that rich black. Deep and dark, for when you've lost the light of your life." <<He>> notices the look on your face and giggles. "Don't worry, dye methods have come a long way since then." <br><br> <<if $worn.head.name is "top hat">> "I'm sure you're familiar with mourning veils, but men had mourning attire as well. While the societal rules around proper dress were less stringent for them, they wore black coats and breeches." <<He>> takes your top hat off your head and measures the width of the band against <<his>> hand. "Many men tied a crepe sash around their hatband. Its width signaled their relationship with the deceased." <<He>> places it back on your head and adjusts it. <br><br> <<elseif $worn.upper.name.includes("gothic gown")>> "Women had particularly stringent societal rules around appropriate attire. Custom held that there were three mourning stages: first mourning, secondary mourning, and half mourning. There were plenty of rules around what kinds of fabrics and accoutrements were acceptable when." <<He>> nods at the bow on your dress. "For example, those bows and frills were acceptable for non-married women in first mourning, but not for widows. Their first mourning period was more intense, and was also referred to as deep mourning." <br><br> <</if>> <<He>> circles around you, examining you from different angles. "There were general rules around the appropriate length of mourning. Widows who stopped wearing mourning dress too soon were thought to be sexually promiscuous! It's interesting, really. How long should someone wait before seeking out companionship? I suppose some would say you never should. The queen herself mourned her husband until her dying day, and never stopped wearing black. Romantic, or tragic? Who's to say. I'm sure people judged her for mourning too long." <br><br> <<He>> stops pacing. "It's funny, the expectations people have. As if you could simply flip a switch"—<<he>> snaps <<his>> fingers; one of the light bulbs above you goes dark—"and stop mourning. Grief doesn't work that way. And even when you've 'moved on'... it always, always comes back. Not always in the same form. Not always on the same shores. But those tides of grief will find their way back to you. Over and over and over again. Some days you can see it before it rolls in. Some days it crashes down when you least expect it. Some days it's enough to drown in." <br><br> <<He>> meets your gaze and gives you a smile. It's strangely distant and wooden. There's a lump in your throat. You're not sure why. <br><br> Before you can speak, Gwylan pipes back up. "Well!" <<he>> says. <<His>> voice is falsely chipper at first, but <<he>> quickly adjusts. <<He>> sounds much more at ease when <<he>> continues. "Now that I've brought down the mood... what can I do for you?" <<gwylanRequestEnd>> <br><br> <<gwylanOptions>> <<case "karate">> Gwylan examines your karate outfit. <<switch $worn.upper.accessory_colour>> <<case "black">>"Wow, a black belt? You must really know how to defend yourself," <<he>> chuckles. <<case "brown">>"A brown belt. A step before the final rank. Represents maturity, like a ripe fruit." <<case "red">>"A red belt. Sometimes represents the third highest ranking, but is sometimes swapped in place with purple." <<case "purple">>"A purple belt. Sometimes represents the third highest ranking, but is sometimes swapped in place with red." <<case "blue">>"A blue belt. Usually between purple and red in ranking. Can represent water and the fluidity of movement." <<case "green">>"A green belt, representing the growth of the student. The first steps of progress on a long road." <<case "tangerine">>"An orange belt. These aren't always used, but when they are, it's meant to show a continuation of the yellow belt rank. Like the sun setting, and the period of rest before a new day of learning." <<case "yellow">>"A yellow belt, the first step above white. Represents the fresh enlightenment of a novice." <<case "white">>"A white belt, representing the blank slate of a new student. Not a symbol of shame, but of potential." <<default>>"I don't think that belt colour is recognised as an official rank," <<he>> chuckles. <</switch>> <<He>> unties the belt, and opens the jacket slightly before playfully poking your belly. "I hope you don't mind if I have this." <<He>> doesn't wait for an answer, <span class="pink">pulling the jacket off of you before pulling the trousers down, too</span>. <<case "sailor">> Gwylan examines your sailor costume. "This town has a rich maritime history. You can't escape the salt in the air, even out here in the forest. Our docks are famed for being a staging ground for large operations during the second World War. Unfortunately, that also made them an enticing target for bombings." <br><br> <<He>> lifts the sailor hat from your head. "The ocean is the root of all life in the world. It is the origin point. We used to worship it as it fed and nurtured us. Then we began to use it for travel and trade. We began to exploit it. Finally, we used it for war. We spilled each other's blood in the water for eons. One must wonder just how many gallons of it. Do you think such a thing could even be measured?" <br><br> <<His>> expression is hard to read as <<he>> walks around you. <<His>> fingers brush your neck. "In beautiful displays of hatred, we sank each other's ships to the bottom, consigning the souls aboard to eternal rest in the waves, caring not for the debris we left behind. Do you think the sea would eventually inherit our hatred after drinking so much of our blood, and chewing up the bones of our ships? No. The rotten hulls become new ecosystems in and of themselves, and life blooms from death. The ocean always adapts. But... what if it couldn't anymore?" <br><br> <<He>> gently presses <<his>> palms against your chest. "The ocean remembers everything, despite its ever-shifting fluidity. The history of life itself lies within it. All water eventually returns to the tide, and all of us do, too. So why have we forgotten? Why do we take its boons for granted?" <br><br> Gwylan smiles. "Just something to think about. I appreciate you bringing this to me." <span class="pink"><<He>> pulls the shirt up over your head.</span> <<case "short sailor">> Gwylan examines your short sailor costume. <br><br> As <<he>> walks behind you, you feel something get draped around your neck. It's a white scarf, patterned like some kind of bird. It feels heavy. <br><br> <<He>> circles you, avoiding eye contact until <<he>> turns on <<his>> heel in front of you. "The tales of the sea and forest are closer together than you might think. To kill a bird of the sea, or to slay a mother fox, is to invite disaster. There are stories aplenty of these beasts leading lost travelers to safety, only to be killed in suspicion of bringing misfortune. Which, of course, is then brought on by their death. A terrible cycle." <br><br> <<He>> smiles. "In frustration, the companions of the one who dealt the killing blow would make them wear the beast about their neck as a mark of shame, a symbol of the burden. Today, we wear such symbols willingly. Some are oh so eager to keep digging once they reach the bottom." <span class="pink"><<He>> pulls the shirt and scarf up over your head.</span> <<case "football">> Gwylan gives your $worn.head.name a solid knock. You hardly feel anything. "We should use these in some of our own sports." <<He>> lifts it off of you after a brief struggle. <br><br> "We sure do love hurting each other, don't we? We even make entertainment out of it. At least we take the proper precautions. Occasionally. I'd like to examine the padding on the rest of the outfit, too. Do you mind?" <br><br> <span class="pink">You realise <<hes>> asking you to strip,</span> and comply. <<case "cheerleader">> Gwylan circles around you, inspecting your cheerleader outfit. "Morale is a powerful thing. Having people you know cheering for you can inspire one to feats of great strength. There's a sense of defending one's home territory and people." <br><br> You blink at Gwylan. <br><br> "What I'm trying to say is, cheerleading is a natural evolution of the war chant. I would argue it's more effective due to the sexual tension it invokes, too. Anyways, do you mind if I have this?" <<He>> doesn't wait for you to answer, and twirls you by your arm. <span class="pink">Your cheerleader top flies right off, and the skirt follows soon after.</span> <<case "cowboy">> Gwylan takes your cowboy hat, briefly putting it on. "Good style, but not shady enough for my tastes." <br><br> <<He>> walks around you, and swiftly <span class="pink">yanks down your chaps</span>. <<case "bunny">> <<set _noOptions to true>><<upperstrip>><<lowerstrip>> Gwylan flicks your bunny ears. "Sex appeal is a great way to get customers to dish out more money. Even if they're not consciously thinking of recompense, the chemistry of the brain is pushed towards it." <br><br> <<if $worn.upper.name isnot "naked" or $worn.lower.name isnot "naked">> <<He>> stares at you for a moment. You realise <<he>> can't exactly see the rest with your clothes in the way, and strip down to your leotard. <br><br> <</if>> <<link [[Next|Gwylan Request Clothes Bunny]]>><</link>> <br> <<case "kitty">> <<if $worn.upper.name isnot "naked" or $worn.lower.name isnot "naked">> You tell Gwylan that you're wearing the catgirl underwear. "Wonderful," <<he>> says. "May I see?" <br><br> You strip down to your underwear. Gwylan's gaze makes you feel entirely naked, though. <br><br> <</if>> <<if _gwylanStatus.includesAny("aroused", "lust")>> "I'll be honest with you," Gwylan starts. "I just wanted to see you dressed up like this. You look adorable." <<He>> pats you on the head. <<else>> "You pull off that look pretty well," <<he>> says with a giggle. "You look adorable." <<He>> pats you on the head. <</if>> "There's something appealing about it, isn't there? Taking on the features of something animalistic? <<if $cat gte 6>> I'm sure you feel right at home like this." <<elseif $fox gte 6 or $wolfgirl gte 6 or $cow gte 6>> I'm sure you agree." <<else>> I think you'd make a cute cat." <</if>> <<if _gwylanTF.tail is "revealed">> <<His>> tail flits around behind <<him>>. <</if>> <br><br> <<if _gwylanStatus.includesAny("dom", "lust")>> <<set _noOptions to true>><<upperstrip>><<lowerstrip>><<feetstrip>><<handheldstrip>><<facestrip>> <<He>> gets very close to you and caresses your cheek. "Does my little cat want a treat? Will you purr for me?" <<His>> touch sends a shiver of pleasure through your body. <<arousal 500>><<garousal>> <br><br> <<link [[Purr|Gwylan Request Clothes Kitty]]>><<set $phase to 1>><<transform cat 1>><</link>><<if $cat gte 6>><<cat>><<else>><<deviant1>><</if>> <br> <<link [[Nod|Gwylan Request Clothes Kitty]]>><<set $phase to 2>><</link>> <br> <<link [[Shake head|Gwylan Request Clothes Kitty]]>><<set $phase to 3>><</link>><<gwylanWillpowerDifficulty>> <br> <<else>> <<He>> walks behind you and <span class="pink">unclips your bra, before pulling down your panties</span>. "I'll be keeping these." <</if>> <<default>> <<if $gwylan.request.items.length gte 2>> Gwylan inspects the clothes you've brought. After a moment, <<he>> grabs you by the arm and twirls you, <span class="pink">removing your <<print formatList(_clothesToTakeText)>> in a blurred flurry.</span> "I'll be keeping these," <<he>> says. <<else>> Gwylan inspects the <<print $gwylan.request.items[0].name>>. <<He>> hums as <<he>> looks it over. Suddenly, <<he>> <<if $gwylan.request.items[0].slot is "head">> lifts it off of your head. <<else>> tugs. With minimal resistance, <span class="pink">it comes right off of your body</span>. You expect to hear a rip, but it seems completely intact. <</if>> "I'll be keeping this," <<he>> says. <</if>> <</switch>> <<if !_noOptions>> <br><br> <<for _cl to 0; _cl lt _clothesToTake.length; _cl++>> <<set _noRebuy to true>> <<generalRuined _clothesToTake[_cl]>> <</for>> <<if $exposed gte 1>> "Might as well buy a replacement while you're here!" <<He>> hands you some towels. <<towelup>> <</if>> "Thank you for bringing this to me. If there's anything you need, I'll be here." <<gwylanRequestEnd>> <br><br> <<gwylanOptions>> <</if>> <</if>><<effects>><<run statusCheck("Gwylan")>> <<He>> pours the hot water. "It's very simple, but you can't be careless. Butterfly pea flowers are very delicate. If you're not careful while steeping, they'll crumble in the water and ruin the flavour." <<He>> shows you the proper technique, and you repeat it as best you can. <br><br> Your water turns a rich blue. "Perfect! Give it a taste." You do so. It's different than any other kind of tea you've had before. Gwylan asks what you think of it. <br><br> <<if $speech_attitude is "meek">> "It's a bit earthy," you mumble. <<elseif $speech_attitude is "bratty">> "It's like drinking lawn clippings," you say bluntly. <<else>> "It tastes like grass," you remark with a shrug. <</if>> "Are you sure I did this right?" <br><br> <<He>> chuckles. "You did it perfectly. I'm aware it's an acquired taste," Gwylan acknowledges with a nod, sipping <<his>> own tea. "I've just had enough time to get used to it, that's all. The berries should help." You give <<him>> a quizzical look, and <<he>> responds with an inscrutable smile. You shrug and take another sip. <<Hes>> right; the berries help. <br><br> "Now you're a proper <<= $player.gender_appearance is "m" ? "waiter" : "waitress">>. Unfortunately, I need these." As soon as you put your teacup down, <span class="pink">Gwylan strips you bare of your uniform</span> with two quick, precise pulls. <br><br> <<upperruined true>><<lowerruined true>> "Might as well buy a replacement while you're here!" <<He>> hands you some towels. <<towelup>> "Thank you for bringing this to me. If there's anything you need, I'll be here." <<gwylanRequestEnd>> <br><br> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>> <<He>> walks behind you, and runs <<his>> hands up the leotard. <<Hes>> only inspecting the clothing, but your body responds to <<his>> prodding regardless. <<arousal 1000>><<garousal>> <br><br> You hear a zipper unzip, <span class="pink">and your leotard falls right off</span>. "Sorry, I couldn't get a good look with your body in the way." <<He>> lifts it from the ground. <br><br> <<underupperruined true>><<underlowerruined true>><<headruined true>> <<if $gwylan.request.items.some(item => item.slot === "neck")>> <<neckruined true>> <</if>> <<clotheson>><<towelup>> "Thank you for bringing these to me. If there's anything you need, I'll be here." <<gwylanRequestEnd>> <br><br> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>> <<if $phase is 1 or $phase is 2 or ($phase is 3 and $hypnosis_traits.devotion gte 1 and !$willpowerSuccess)>> <<if $phase is 3>> <<hypnosisText "There's a brief spark of resistance in you, <span class='red'>but it's washed away as Gwylan continues to pet you.</span>">> The urge is too much. <br><br> <</if>> <<if $phase is 1 or $phase is 3>> <<if $cat gte 6>> You purr just like a cat. <<else>> You do your best impression of a cat's purr. <</if>> "<<pcPetname "Gwylan" "good">>," Gwylan whispers. <<else>> You slowly nod your head. <</if>> Your heart begins to race as you wonder what 'treat' <<he>> has in mind. <<if $phase is 1 and $cat lt 6>> <<deviancy1>> <<else>> <br><br> <</if>> <<if $hypnosis_traits.devotion gte 5 and $phase isnot 2>> "Oh, you poor thing," <<he>> coos. "You look like you can hardly wait." Your vision starts to get blurry, and shades of colour creep into your peripheral vision. "I won't make you wait, then." <br><br> <<hypnosisText "<<He>> snaps <<his>> fingers, and you're no longer where you once were.">> <br><br> <<link [[Next|Gwylan Cream Lick]]>><<set $worshipstart to 1>><<set $phase to 1>><</link>> <br> <<else>> <<His>> thumb touches the corner of your mouth. "Wait here." <<He>> briskly walks through a dark doorway. <<if _gwylanTF.tail is "revealed">> <<His>> tail swings back and forth rapidly as <<he>> leaves. <</if>> You hear the rustling of cloth, followed by the sound of compressed air and a dull thud. After a moment, you hear <<his>> voice again. "Alright. Here, kitty, kitty." <br><br> You walk to the doorway. The room is dark, and none of the light from outside seems to leak in. You take a cautious step forward. "Just follow my voice," <<he>> whispers from somewhere in the dark. You take another step towards <<him>>. <<if $worn.neck.collared is 1 and $worn.neck.type.includes("leash")>> Your leash starts to pull itself along the ground into the darkness. It suddenly goes taut, lightly pulling you in the same direction. <</if>> <br><br> <<link [[Follow|Gwylan Cream Lick]]>><<set $worshipstart to 1>><<set $phase to 2>><</link>> <br> <<link [[Turn around|Gwylan Cream Lick]]>><<set $worshipstart to 1>><<set $phase to 3>><</link>> <br> <</if>> <<else>> You blink at Gwylan, before shaking your head. "You're no fun," <<he>> pouts. <<His>> arms wrap around you, and <<he>> unhooks your bra. "I'll be keeping these." <<He>> then pulls down your panties, too. <br><br> <<underupperruined true>><<underlowerruined true>><<headruined true>> <<if $gwylan.request.items.some(item => item.slot === "neck")>> <<neckruined true>> <</if>> <<clotheson>><<towelup>> "Thank you for bringing these to me. If there's anything you need, I'll be here." <<gwylanRequestEnd>> <br><br> <<gwylanOptions>> <</if>><<effects>><<run statusCheck("Gwylan")>> <<set _itemsDelivered to []>> <<run $gwylan.request.items.forEach(item => { if (V.plants[item.name]) V.plants[item.name].amount -= item.need; })>> <<run $gwylan.request.items.forEach(item => _itemsDelivered.pushUnique(item.name))>> You hand the ingredients over to Gwylan. <br><br> <<cleareventpool>> <<if _itemsDelivered.includesAny("red_rose", "white_rose")>> <<addinlineevent "gwylan_ingredients_roses">> <<He>> smells the roses. "Lovely. You've picked some fine specimens." <</addinlineevent>> <</if>> <<if _itemsDelivered.includes("orchid")>> <<addinlineevent "gwylan_ingredients_orchid">> "Wonderfully fiery pink colours on these orchids. You've picked them well." <</addinlineevent>> <</if>> <<if _itemsDelivered.includes("daisy")>> <<addinlineevent "gwylan_ingredients_daisy">> "These are good daisies. Well done." <</addinlineevent>> <</if>> <<if _itemsDelivered.includes("tulip")>> <<addinlineevent "gwylan_ingredients_tulip">> "I've always been nostalgic for tulips, although I wish I could remember why." <</addinlineevent>> <</if>> <<if _itemsDelivered.includes("lotus")>> <<addinlineevent "gwylan_ingredients_lotus" 2>> "Oh, these lotus are wonderful." <<He>> gently cups them in <<his>> hands. "Did you know that our lake is named for them? Lake Whiteflower, for these beautiful floating blooms that grace the surface en masse." <<He>> pauses. "Well, that's not entirely true. The name is a mutation of the name of a now-extinct noble family, and that name roughly translated to 'little flower'." <</addinlineevent>> <</if>> <<if _itemsDelivered.includes("banana")>> <<addinlineevent "gwylan_ingredients_banana">> "Pulped bananas really improve the texture and thickness of drinks. You can also make dairy-free ice cream out of them if you know what you're doing." <</addinlineevent>> <</if>> <<if _itemsDelivered.includes("lemon")>> <<addinlineevent "gwylan_ingredients_lemon">> /* ToDo: Gwylan - Robin lemonade interaction, bringing lemonade to Gwylan at the cafe */ <<if $gwylanSeen.includes("robin_lemonade_get")>> "Your friend Robin. <<nnpc_He "Robin">> puts a lot of care into that lemonade. It seems like such a small thing, but it's easy to tell." <<else>> <<set $gwylanSeen.pushUnique("robin_lemonade")>> "There's this lemonade stand down by the beach," <<he>> starts. "I see it there from my table at the cafe every weekend. I always want to take a walk down there and buy some, but the beach... doesn't agree with me." <</if>> <</addinlineevent>> <</if>> <<if _itemsDelivered.includes("blood_lemon")>> <<addinlineevent "gwylan_ingredients_blood_lemon" 10>> "Blood lemons are a potent aphrodisiac, and a base for several reactive agents. You've done me a huge favour getting these." <</addinlineevent>> <</if>> <<if _itemsDelivered.includes("strawberry")>> <<addinlineevent "gwylan_ingredients_strawberry">> "Every morning, strawberry crepes," <<he>> says. "Sammy picks a fruit to put alongside my crepes every morning, based on how <<nnpc_he "Sam">> thinks I'll be feeling that day. I'm almost always feeling 'strawberries', apparently." <</addinlineevent>> <</if>> <<if _itemsDelivered.includes("plum")>> <<addinlineevent "gwylan_ingredients_plum" 2>> "I love plums," <<he>> says. "I wish I could do more with them. I tried making plum tea once, but it was a disaster." <</addinlineevent>> <</if>> <<if _itemsDelivered.includes("mushroom")>> <<addinlineevent "gwylan_ingredients_mushroom">> "Heartshrooms," <<he>> says. "A minor stimulant, but not hallucinogenic. I can use these for a lot." <</addinlineevent>> <</if>> <<if _itemsDelivered.includes("wolfshroom")>> <<addinlineevent "gwylan_ingredients_wolfshroom">> "I always need more wolfshrooms," <<he>> says. "They keep the wolves from breaking in. They have some other uses, too." <</addinlineevent>> <</if>> <<if _itemsDelivered.includes("ghostshroom")>> <<addinlineevent "gwylan_ingredients_ghostshroom">> "Legends say ghostshrooms only sprout on the site of a great injustice or tragedy. I'm not sure about that, but what I do know is that they're a good palette cleanser. They also help flush foreign substances out of the body." <</addinlineevent>> <</if>> <<if _itemsDelivered.includes("wild_honeycomb")>> <<addinlineevent "gwylan_ingredients_wild_honeycomb">> "Real honey is so hard to come by these days," <<he>> says. "Store-bought won't do me any good. Plus, the honeycombs themselves have uses, too." <</addinlineevent>> <</if>> <<if _itemsDelivered.includes("strange_flower")>> <<addinlineevent "gwylan_ingredients_strange_flower">> "A curious little flower, isn't it?" <<He>> picks up a strange flower with a pair of tongs. "It's often refined into all manner of awful substances, but many useful ones, too." <</addinlineevent>> <</if>> <<if _itemsDelivered.includes("bird_egg")>> <<addinlineevent "gwylan_ingredients_bird_egg">> <<He>> turns one of the bird eggs around in <<his>> hand. "Have you ever eaten one of these? They're quite tasty. They have a very distinct taste from chicken eggs. I only wish I didn't have to compete with the entire fox population for them. I suppose I didn't this time." <</addinlineevent>> <</if>> <<if _itemsDelivered.includes("plumeria")>> <<addinlineevent "gwylan_ingredients_plumeria">> <<He>> smells the plumerias. "Oh, I've missed this smell. It's been ages since I could work with these." <</addinlineevent>> <</if>> <<if _itemsDelivered.includes("salt")>> <<addinlineevent "gwylan_ingredients_salt" 0.8>> "Salt is useful for almost everything. Not just food or drink. Some say it can be used to ward away spirits and shear away bad luck." <</addinlineevent>> <</if>> <<if _itemsDelivered.includes("vegetable_oil")>> <<addinlineevent "gwylan_ingredients_vegetable_oil" 0.8>> "Vegetable oil is a perfect base for many concoctions. It can be used as lubricant in a pinch too. I wouldn't recommend it, though." <</addinlineevent>> <</if>> <<if _itemsDelivered.includes("sugar")>> <<addinlineevent "gwylan_ingredients_sugar" 0.8>> <<He>> sticks <<his>> finger in the sugar, pulls it out, and licks it. "What? You were thinking of doing it too, don't lie." <</addinlineevent>> <</if>> <<if _itemsDelivered.includesAny("red_wine", "white_wine")>> <<addinlineevent "gwylan_ingredients_wine" 0.8>> "Red and white, just like roses," <<he>> says as <<he>> picks up a bottle of wine. "Both red and white wine are perfect bases for many concoctions." <</addinlineevent>> <</if>> /* ToDo: Gwylan - More ingredient flavour text */ <<addinlineevent "gwylan_ingredients_default" 0.1>> <<He>> begins sorting them by colour and weight. <</addinlineevent>> <<runeventpool>> <<He>> smiles at you. "Thank you. Let me know if there's anything you need in return." <<gwylanRequestEnd>> <br><br> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>> <<if $gwylanSeen.includes("sample")>> <<switch $speech_attitude>> <<case "meek">> "Your measuring charms are all burnt up," you say to Gwylan. <<case "bratty">> "Your measuring charms are used up," you say to Gwylan. <<default>> "Your measuring charms have burned out," you say to Gwylan. <</switch>> <br><br> <<He>> nods. "I haven't had time to replace them, but you could help me. <<else>> <<if $temple_confessor_intro and $gwylanTalked.includes("temple_confessor")>> <<switch $speech_attitude>> <<case "meek">> "You mentioned a... poison in the world," you start. "It sounds like what the bishop told me. How do you keep track of it?" <<case "bratty">> "You mentioned poison in the world," you start. "It sounds a lot like what the bishop told me. How do you track it?" <<default>> "You mentioned poison in the world," you start. "It sounds similar to what bishop told me. How do you keep track of it?" <</switch>> <<else>> <<switch $speech_attitude>> <<case "meek">> "You mentioned a... p-poison in the world," you start. "How do you keep track of it?" <<case "bratty">> "You rattled on about some kind of poison in the world," you start. "How do you keep track of it?" <<default>> "You mentioned something about poison in the world," you start. "Can you elaborate? How do you keep track of it?" <</switch>> <</if>> <br><br> <<He>> gives you a tired smile. "I'm glad you asked. I haven't had the time to set up my usual method of tracking it, but it's something you might be able to help me with. <</if>> <<if $gwylan.request.event>> I need you to <span class="blue">do what I already asked of you first</span>, though." <br><br> <<gwylanOptions>> <<else>> If it's not too much trouble." <<He>> stands. <<run gwylanRequest("sample")>> <<set $gwylan.request.hold to "corruption">> <<set $gwylan.request.command to 1>> <<gwylanRequestText>> <br><br> <<gwylanOptions>> <</if>><<effects>><<run statusCheck("Gwylan")>> <<set _sampleSources to []>> <<run $gwylan.request.items.forEach(sample => _sampleSources.pushUnique(sample.name))>> You hand the vials over to Gwylan. <br><br> <<He>> smiles at you, and holds one up to the light. <<cleareventpool>> <<if _sampleSources.includes("human")>> <<addinlineevent "gwylan_sample_human_1">> "Humans aren't the only victims of this poison, but some spread it willingly." <</addinlineevent>> <<addinlineevent "gwylan_sample_human_2">> "Humans have the potential to be the most unchecked source of the poison's spread. By the time one realises something is wrong with them, they've often already spread it to others, or back into the world itself." <</addinlineevent>> <<addinlineevent "gwylan_sample_human_3">> "What have they been up to on Elk Street...?" <</addinlineevent>> <</if>> <<if _sampleSources.includes("wolf")>> <<addinlineevent "gwylan_sample_wolf_1">> "The spread is especially rapid between wolves. It amplifies aggression, which quickens spread, which further amplifies aggression. The tightly-knit pack doesn't help either." <</addinlineevent>> <<addinlineevent "gwylan_sample_wolf_2">> <<if $gwylanSeen.includes("likes_wolves")>> "I hope you had fun running with your wolves." <<else>> "I hope the pack didn't give you too much trouble." <</if>> <</addinlineevent>> <<if $gwylanSeen.includes("wolves_known")>> <<addinlineevent "gwylan_sample_wolf_3">> "I hope your pack is in good health." <</addinlineevent>> <</if>> <</if>> <<if _sampleSources.includes("fox")>> <<addinlineevent "gwylan_sample_fox_1">> <<if _gwylanTF.ears is "revealed">> <<His>> fox ears twitch. <</if>> "Foxes are more sensitive to the poison than most. They either avoid it by instinct, or fall prey to it easier than any other." <</addinlineevent>> <<addinlineevent "gwylan_sample_fox_2">> "I hope the foxes didn't give you too much of a run-around. Chasing them down is always a pain." <<if _gwylanTF.tail is "revealed">> <<His>> tail beats behind <<him>>. "Although, part of me enjoys the chase.<<if $fox gte 6>> I'm sure you understand.<</if>>" <</if>> <</addinlineevent>> <</if>> <<if _sampleSources.includes("cat")>> <<addinlineevent "gwylan_sample_cat_1">> "Large cats are most often exposed by accident. Curiosity and all that. I can relate." <</addinlineevent>> <<addinlineevent "gwylan_sample_cat_2">> "Let's see if the cats have been licking up anything they shouldn't be." <</addinlineevent>> <</if>> <<if _sampleSources.includes("lizard")>> <<addinlineevent "gwylan_sample_lizard_1">> "Reptiles see the most intense changes to their physiology when overexposed to the poison. I've yet to figure out why." <</addinlineevent>> <<addinlineevent "gwylan_sample_lizard_2">> "Overexposure to the poison leads to some interesting changes in reptiles. Pigmentation in the eyes is a common one. It makes their gaze unsettling, sometimes paralysing." <</addinlineevent>> <</if>> <<if _sampleSources.includes("dog")>> <<addinlineevent "gwylan_sample_dog_1">> "As man's best friend, dogs are a common vector for transmission. Usually by accident." <</addinlineevent>> <<addinlineevent "gwylan_sample_dog_2">> "Dogs are one of the easiest animals to influence thanks to selective breeding. Those with intentions pure and ill alike exploit them." <</addinlineevent>> <</if>> <<if _sampleSources.includes("boar")>> <<addinlineevent "gwylan_sample_boar_1">> "Boars are very temperamental beasts. Luckily we don't have razorbacks here. Their heightened aggression would be a disaster for the ecosystem." <</addinlineevent>> <<addinlineevent "gwylan_sample_boar_2">> "Boars had to be manually reintroduced to the ecosystem after being hunted to extinction. We sure have a knack for that." <</addinlineevent>> <</if>> <<if _sampleSources.includes("dolphin")>> <<addinlineevent "gwylan_sample_dolphin_1">> "Dolphins are very problematic when it comes to spreading the poison. Cetaceans are vulnerable as it is, but dolphins almost seem to spread it on porpoise with how often they..." <<he>> stops <<himself>>. "That wasn't even on <i>purpose</i>, sorry." <</addinlineevent>> <<addinlineevent "gwylan_sample_dolphin_2">> "Sexual promiscuity amidst dolphins would lead to rapid spread were the poison to become uncontrolled in the ocean." <</addinlineevent>> <<addinlineevent "gwylan_sample_dolphin_3">> "All returns to the tide eventually," <<he>> whispers. <</addinlineevent>> <</if>> <<if _sampleSources.includes("bear")>> <<addinlineevent "gwylan_sample_bear_1">> "I'm terribly sorry for making you collect samples from bears, but I knew you'd come out alright." <</addinlineevent>> <<addinlineevent "gwylan_sample_bear_2">> "Bears were once resistant to the taint. Let's hope that remains true." <</addinlineevent>> <</if>> <<if _sampleSources.includes("plant")>> <<addinlineevent "gwylan_sample_plant_1">> "Nectar is a sexual fluid too, and thus holds the same traces when the poison passes through." <</addinlineevent>> <<addinlineevent "gwylan_sample_plant_2">> "Animals aren't the only vector for the poison to spread. The very earth is vulnerable." <</addinlineevent>> <<addinlineevent "gwylan_sample_plant_3">> "It's hard to know how the dryads feel about anything serious like this. They're always so mischievous and whimsical." <</addinlineevent>> <</if>> <<if _sampleSources.length gte 4>> <<addinlineevent "gwylan_sample_variety_1">> "This is a good range of samples. It should tell me much." <</addinlineevent>> <<addinlineevent "gwylan_sample_variety_2">> "I hope it wasn't too much trouble to run around collecting all of these." <</addinlineevent>> <</if>> /* ToDo: Gwylan - more unique sample comments, make comments more likely based on number of matching samples */ <<addinlineevent "gwylan_sample_default" 0.5>> "The poison isn't spread through sexual fluid alone, but it always leaves traces behind in it." <</addinlineevent>> <<runeventpool>> <br><br> <<if $gwylan.request.hold is "corruption" and !$gwylan.requestDone>> <<He>> organises the vials on a countertop. "I'll use these right away. Thank you." <<gwylanRequestEnd>> <<set $gwylan.requestDone to false>> <<else>> <<He>> organises the vials on a countertop. "I'll use these right away. Thank you. If you need anything in return, just say the word." <<gwylanRequestEnd>> <</if>> <br><br> <<if $gwylanSeen.includes("sample")>> <<He>> disappears through a dark doorway, but keeps talking. "As a reminder, once I'm done, these should last for about <span class="blue">two weeks</span>. I'll leave them in the open, so you can see them even if I'm not here." <<He>> returns carrying a bucket of water, some scraps of patterned cloth, and a round pot. <br><br> <<He>> places the pot on a heating element and fills it with the water. As <<he>> waits for it to boil, <<he>> prepares the charms. "In case you've forgotten, each of these that turn <span class="purple">purple</span> will represent a <span class="purple">deep corruption</span>, one that would take considerable effort to cleanse. The largest one will measure the <span class="purple">total saturation</span> as a result of the former. Left alone, any discolouration will fade, which means <span class="blue">they'll stay accurate until they burn out</span>." You watch <<him>> prepare each, soaking them in a sample before splashing them with powder and dipping them in the now-boiling water. <<else>> <<He>> disappears through a dark doorway, but keeps talking. "Once I'm done, these should last for about <span class="blue">two weeks</span>. I'll leave them in the open, so you can see them even if I'm not here." <<He>> returns carrying a bucket of water and some scraps of patterned cloth, placing them down on the floor as <<he>> gets down on <<his>> hands and knees. After a brief struggle, <<he>> pulls a round pot out from under something. You crane your head to look, but you can't see any space where it could have fit. <br><br> <<He>> places the pot on some kind of heating element and fills it with water. As <<he>> waits for it to boil, <<he>> soaks each cloth in a sample before tossing a fistful of powder on them. "It's a complex reaction, but it's nothing out of the ordinary. There are chemicals left behind as tracers in samples of sexual fluid. These charms will react with them and change colour." <<He>> quickly dips each cloth into the now-boiling water, before hanging them on a rope directly above it. "Each of these that turn <span class="purple">purple</span> will represent a <span class="purple">deep corruption</span>, one that would take considerable effort to cleanse." <br><br> <<He>> produces a much larger piece of cloth, more like a small rug, and repeats the process. "This one will measure the <span class="purple">total saturation</span> as a result of the former. Left alone, any discolouration will fade, which means <span class="blue">they'll stay accurate until they burn out</span>." <</if>> <br><br> <<He>> wipes <<his>> brow and smiles. <<if $world_corruption_soft lte 25>> <span class="teal"><<His>> smile remains as the largest charm seems to be mostly inert.</span> <<He>> looks relieved. <<elseif $world_corruption_soft lte 99>> <span class="purple"><<His>> smile quickly fades as the largest charm starts to stain purple at the bottom.</span> "We have much work to do." <<else>> <span class="red"><<His>> smile rapidly fades to an expression of worry as the largest charm quickly becomes entirely purple.</span> "This outlook is grim. Is our work still not enough?" <<He>> seems frustrated for a moment, but quickly composes <<himself>>. <</if>> <br><br> <<set $gwylanSeen.pushUnique("sample")>> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>> /* ToDo: Gwylan */<<effects>><<run statusCheck("Gwylan")>><<set _tf to checkTFparts()>> <<if $gwylan.request.special is "feathers">> <<if $speech_attitude is "meek">> "If you want, you can just... take right from the source," you say. <<elseif $speech_attitude is "bratty">> "My wings are looking grubby," you say. "Why not just take the feathers from me directly?" <<else>> "My wings are feeling a bit dirty," you say. "Why not just take the feathers from me directly?" <</if>> <<elseif $gwylan.request.event is "preen">> <<if $speech_attitude is "meek">> "Go ahead, I wouldn't mind you preening me," you say. <<elseif $speech_attitude is "bratty">> "My wings are looking grubby anyways," you say. "I wouldn't mind you taking care of that for me." <<else>> "My wings are feeling a bit dirty," you say. "I wouldn't mind you getting your hands in there." <</if>> <<elseif $gwylanSeen.includes("request_preen")>> <<if $speech_attitude is "meek">> "Hey, Gwylan?" you ask. "Would you mind preening my wings again?" <<elseif $speech_attitude is "bratty">> "My wings are looking grubby," you say. "Could you take care of that for me?" <<else>> "My wings are feeling a bit dirty again," you say. "Fancy getting your hands in there?" <</if>> <<else>> <<if $speech_attitude is "meek">> "Gwylan?" you ask. "If it isn't too much trouble, can I take you up on your offer?" <<elseif $speech_attitude is "bratty">> "I'm ready to take you up on that offer," you say. <<else>> "You offered to preen my wings," you say. "Can I take you up on that now?" <</if>> <</if>> <<if !_tf.birdWings>> You unfurl your wings. <<else>> You spread out your wings. <</if>> <br><br> <<if $gwylan.timer.preen gt Time.date.timeStamp and $gwylan.request.event isnot "preen">> Gwylan's eyes brighten. "I still haven't used all of the last feathers you gave me," <<he>> says. "But I wouldn't mind at all! Thank you for trusting me with this. Please, come sit here." <<elseif $gwylan.request.event isnot "preen" and $gwylan.request.hold>> <<set $gwylan.requestDone to true>> Gwylan's eyes brighten. "Of course! I'll take this as payment for what you asked me to do for you, too. Thank you for trusting me with this. Please, come sit here." <<else>> Gwylan's eyes brighten. "Of course! Thank you for trusting me with this. Please, come sit here." <</if>> <br><br> <<He>> moves a pile of folded clothing off of an antique chair. You sit facing the back of it, leaving your wings exposed. Gwylan chatters as <<he>> moves around the shop. You can hear the excitement in <<his>> voice. <br><br> <<if !$gwylanSeen.includes("request_preen")>> "I never thought I would see feathers like this again. The <<if ($settings.monsterChance gte random(1, 100) and ($hallucinations gte 1 or !$settings.monsterHallucinationsOnly)) or $greathawkmonster is 2>>harpies<<else>>hawks<</if>> were thought to be extinct." <<His>> voice grows fainter as <<he>> moves deeper into the shop. "To think that you have gotten so close to one as to inherit its wings." <br><br> <<if isLoveInterest("Great Hawk")>> You slide a finger along your feathers. Visions of flying high above the moor with your spouse fill your mind. You think the skies would be empty without <<nnpc_his "Great Hawk">> silhouette. <<else>> You slide a finger along your feathers. Visions of flying high above the moor fill your mind. You remember how liberating it was to fly, and what it would be like if you never learned how to from the Great Hawk. <</if>> A profound sadness fills you at the thought. <br><br> "It's tragic, I know. We destroy what we can't understand." Gwylan's voice is right by your ear. You jump. <br><br> <<He>> giggles, clamping <<his>> hand over <<his>> mouth. "Sorry," <<he>> says. "I'm more quiet than I mean to be." <<else>> "I still can't believe it. If the <<if ($settings.monsterChance gte random(1, 100) and ($hallucinations gte 1 or !$settings.monsterHallucinationsOnly)) or $greathawkmonster is 2>>harpies<<else>>hawks<</if>> are returning, what else could be out there?" <<His>> voice grows fainter as <<he>> moves deeper into the shop. "What should I make this time? A restorative? Lurker repellent? Oh, maybe..." <br><br> <<His>> voice fully fades. You start to wonder what effects your feathers have that you don't know about. <br><br> "There's lots, and it depends on whether the feathers are crushed or not first." Gwylan's voice is right by your ear. You jump. <br><br> <<He>> giggles, clamping <<his>> hand over <<his>> mouth. "Sorry," <<he>> says. <</if>> <br><br> <<link [[Next|Gwylan Request Preen 2]]>><<pass 20>><</link>> <br><<effects>><<run statusCheck("Gwylan")>><<set _tf to checkTFparts()>> <<set _selfFeatherNum to 1>> Gwylan holds up a few instruments. A screw-top jar. A thin brush. A preserved beak<<if !($settings.monsterChance gte random(1, 100) and ($hallucinations gte 1 or !$settings.monsterHallucinationsOnly)) or $greathawkmonster is 0>> that looks eerily close to the Great Hawk's<</if>>. <<if !$gwylanSeen.includes("request_preen")>> They're covered with dust. "I admit they need a bit of a clean," <<he>> says, wiping them down with <<his>> sleeve. <<else>> You recognise them from last time. "I've been keeping them in good order," <<he>> says. <</if>> <br><br> <<He>> moves behind you. You can feel <<his>> breath on your wings. <<if $gwylanSeen.includes("yearning")>> <<if $speech_attitude is "meek">> You unfold one wing, then the other, biting your lip at the flush on your face. <<elseif $speech_attitude is "bratty">> You show off by fluffing up your feathers. <<else>> You spread your wings so that <<he>> can see better. <</if>> <</if>> "Oh," <<he>> says. "They're just as beautiful as I remember. May I?" <br><br> You nod. You feel <<his>> fingers ghost over the ridge of your wing. <<He>> brings them down to the tip of your largest feather. There's a reverence to <<his>> movements. <<if $museumintro is 1>> You begin to feel as though you're on display at Winter's museum. <<else>> You begin to feel like an art exhibit. <</if>> <br><br> <<if _tf.angelWings>> "Ooh, cold," <<he>> mutters as <<he>> touches the more angelic feathers. "I'll leave those ones be." You reach back and touch them yourself. They don't feel cold to you. <<elseif _tf.fallenAngelWings>> "Even torn and pallid, they're magnificent," <<he>> says with wonder. "I can see... no, I can <i>feel</i> everything you've gone through. Each missing feather is telling me a story. It's beautiful." <<He>> takes particular care around the bottom of your wings. <<elseif _tf.demonWings>> "I've never seen a shape like this before," <<he>> says with wonder. "I can imagine these cutting through the air with ease." <<He>> lifts your wings gently, examining how they can move and stretch. <</if>> "I would love to see you fly one day," Gwylan says. "I imagine it must be a <<if $gwylanSeen.includes("yearning")>>breathtaking <</if>>sight." <<He>> unscrews the jar behind you. A rich scent fills the air. "I harvested this from an old bird some years ago. I made sure none of its body went to waste. It should simulate their natural oils and make your feathers even more splendid." <br><br> You close your eyes as you feel <<him>> move the beak through your feathers. <<if isLoveInterest("Great Hawk")>>It feels just like your spouse.<</if>> It's very soothing, right up until <<he>> plucks a feather from your wing. You flinch. <br><br> "Sorry," <<he>> says, not sounding the least bit sorry. "There's going to be more of that as I go." <br><br> You settle forwards, crossing your arms on the top of the chair's back, and close your eyes again. This time, you're prepared for the pain. It doesn't make it hurt any less. <<pain 3>><<gpain>> <br><br> Despite the pain, you find that you feel relaxed. <<if $hypnosis_traits.devotion gte 5>><span class="pink">Almost too relaxed.</span><</if>> Your eyelids feel heavy. <<arousal 2000>><<garousal>> <br><br> <<if $hypnosis_traits.devotion gte 5>> <<link[[Next|Gwylan Request Preen Devotion]]>><<stress -12>><<tiredness -4>><</link>><<ltiredness>> <<else>> <<link[[Next|Gwylan Request Preen Finish]]>><<pass 20>><<stress -6>><<tiredness -2>><<set $phase to 0>><</link>><<ltiredness>> <</if>> <br><<effects>><<run statusCheck("Gwylan")>> <<set _selfFeatherNum to 1>><<set _birdFlowers to 1>> The shop melts away. Everything melts away but Gwylan, although <span class="pink"><<his>> apron melts way too, leaving <<his>> nude body exposed</span>. <br><br> <<He>> holds <<his>> arms out wide. You mimic the movement with your wings. <<if $gwylanSeen.includes("romance")>>Pink<<else>>Red and white<</if>> rose petals have replaced your feathers. <br><br> As you embrace, roses ripple out from your feet. It feels like you're falling into a perfumed sea. One with no bottom and no surface. Fear seizes you for a second. Gwylan hums <<if $seabird_lullaby gte 2>> <span class="teal">Seabird's Lullaby</span>, <<else>> a <span class="teal">haunting yet familiar melody</span>, <</if>> and you feel your fear disappear. With <<him>>, you are safe. <br><br> You flap your wings. The rose sea parts for you as you swim, though it feels like flying. Gwylan holds you close. It almost seems as if the two of you are dancing. Rose petals whirl around you in a tornado of colour. <br><br> Slowly, you come to a stop. Gwylan cups your cheeks in <<his>> hands. <<He>> kisses your forehead. Tingling warmth spreads all the way down to your toes. <br><br> There's a sharp prick of pain, as sweet as the scent around you. It clears your mind. You look up and see the surface. Gwylan gives you a gentle push, and you start to swim up, and up, and up. <br><br> <<link[[Next|Gwylan Request Preen Finish]]>><<pass 20>><<set $phase to 1>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<set $gwylanSeen.pushUnique("request_preen")>> <<if $phase is 0>> You open your eyes, somewhat groggy from your nap. Gwylan is chattering about something as <<he>> cleans up. Many of your feathers are gathered in a neat pile. <br><br> "Did you sleep well?" Gwylan asks. <<He>> smiles when you nod. <<else>> You break the surface with a gasp. The shop coalesces around you as you open your eyes. Gwylan is chattering about something as <<he>> cleans up. Many of your feathers are gathered in a neat pile. They look normal again. <br><br> "Did you sleep well?" Gwylan asks. There is a shrewd look on <<his>> face. It turns into a smile as you nod. <</if>> <br><br> "Now, you should avoid flight for a while. You'll be a little off balance until some new feathers grow in. Gliding should be fine." You stretch your wings out again. They feel noticeably lighter, but look magnificent. <br><br> <<if $phase is 1>> You feel Gwylan's arms wrap around you from behind. "Thank you for letting me fly with you," <<he>> whispers. "We'll have to try the real thing sometime." <<He>> kisses you on the cheek. <<garousal>><<arousal 500>> <br><br> <</if>> "Thank you again. If you need a favour, you know where to find me." <<if $gwylan.request.event is "preen">> <<gwylanRequestEnd>> <</if>> <br><br> <<set $plucked to 14>> <<endevent>><<npc Gwylan>><<person1>> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>> <<if $phase is 1>> <<set _featherCount to 10>> You hand Gwylan a big bundle of feathers. <<He>> looks surprised, and gently takes them. <br><br> "That works too, I suppose. Although, I confess I was quite looking forward to preening you." <<if $hypnosis_traits.devotion gte 1>> <<hypnosisText "You can feel <<his>> disappointment.">> <<trauma 6>><<gtrauma>> <<else>> There's a slight tinge of disappointment to <<his>> voice. <</if>> <br><br> "Apologies. They're magnificent." <<He>> rummages around for a moment, finding a small black vial. <<He>> removes the cap, which has a brush attached at the bottom. The brush is covered in a thin oily substance, which Gwylan starts to apply to the feathers. <<else>> <<set _featherCount to $gwylan.request.items.find(feather => feather.name === "feathers").need>> You hand the bundle of feathers over to Gwylan. <br><br> <<He>> gently takes them, marvelling at them for a moment. "Magnificent." <br><br> <<He>> rummages around for a moment, finding a small black vial. <<He>> removes the cap, which has a brush attached at the bottom. The brush is covered in a thin oily substance, which Gwylan starts to apply to the feathers. <</if>> <br><br> "You've done me a big favour. If there's anything you need, please just say the word." <<gwylanRequestEnd>> <<set $bird.materials.feathers -= _featherCount>> <br><br> <<endevent>><<npc Gwylan>><<person1>> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>> <<if $hypnosis_traits.devotion gte 5 and $gwylanSeen.includes("cream_lick")>> You open your mouth to speak. You're not quite sure what you said, but there's a feeling of lurid excitement within you. You're reminded of the taste of cream. <br><br> "Oh, you poor thing," <<he>> coos. "You look like you can hardly wait." Your vision starts to get blurry, and shades of colour creep into your peripheral vision. "I won't make you wait, then." <br><br> <<hypnosisText "<<He>> snaps <<his>> fingers, and you're no longer where you once were.">> <br><br> <<link [[Next|Gwylan Cream Lick]]>><<set $worshipstart to 1>><<set $phase to 4>><<strip>><</link>> <br> <<else>> <<switch $speech_attitude>> <<case "meek">> "I'm ready to take you up on that offer," you say with a blush. <<case "bratty">> "That cream better be fresh," you say. "Else I might start biting instead." <<default>> "I'm ready for the cream," you say. <</switch>> <br><br> <<His>> blush deepens. "Wait here." <<He>> briskly walks through a dark doorway. <<if _gwylanTF.tail is "revealed">> <<His>> tail swings back and forth rapidly as <<he>> leaves. <</if>> You hear the rustling of cloth, followed by the sound of compressed air and a dull thud. After a moment, you hear <<his>> voice again. <<if $cat gte 6>>"Alright. Here, kitty, kitty."<<else>>"Alright, come here, you."<</if>> <br><br> You walk to the doorway. The room is dark, and none of the light from outside seems to leak in. You take a cautious step forward. "Just follow my voice," <<he>> whispers from somewhere in the dark. You take another step towards <<him>>. <<if $worn.neck.collared is 1 and $worn.neck.type.includes("leash")>> Your leash starts to pull itself along the ground into the darkness. It suddenly goes taut, lightly pulling you in the same direction. <</if>> <br><br> <<link [[Follow|Gwylan Cream Lick]]>><<set $worshipstart to 1>><<set $phase to 5>><</link>> <br> <<if hasSexStat("exhibitionism", 4)>> <<link [[Strip, and then follow|Gwylan Cream Lick]]>><<set $worshipstart to 1>><<set $phase to 6>><</link>><<exhibitionist4>> <<else>> <<insufficientStat "exhibitionism" "to strip first">> <</if>> <br> <</if>><<effects>><<run statusCheck("Gwylan")>> <<set $gwylanSeen.pushUnique("cream_lick")>> <<set $consensual to 1>> <<if $worshipstart is 1>> <<set $worshipstart to 0>> <<set $worship to { fluid: "cream", action: "start", actionLast: "", source: "normal", body: 3, tummy: 3, breasts: Math.ceil(C.npc.Gwylan.breastsize / 3), genitals: 2, residue: 1, control: "player", arousal: C.npc.Gwylan.lust + Math.floor(C.npc.Gwylan.dom / 3), timer: 30 }>> <<if $gwylanSeen.includes("request_player_sample")>> <<set $worship.source to "player">> <</if>> <<if $phase is 1 or $phase is 4>> You blink away the confusion. There are candles lit all around you, and you're on your knees. Smooth skin fills your vision. You pull back, and see Gwylan in front of you. <span class="lewd"> <<Hes>> entirely naked, and the two of you lay on a quilted blanket. Trails of cream snake all along <<his>> body, covering <<his>> <<if _gwylanTF.tail is "revealed">> <<print C.npc.Gwylan.breastsdesc>>. <<His>> tail is between <<his>> legs, but it slowly moves to the side to reveal that <<his>> <<if C.npc.Gwylan.penis isnot "none">><<print C.npc.Gwylan.penisdesc>><<else>>pussy<</if>> is covered in it, too. <<else>> <<print C.npc.Gwylan.breastsdesc>> and <<npcGenitals 0>>. <</if>> </span> <br><br> <<if $worship.source is "player">> <span class="lewd">You can't help but wonder if this is what Gwylan used your 'sample' for. Is <<he>> covered in your cream?</span> <<arousal 1000>><<garousal>> <br><br> <</if>> An empty glass vial sits at <<his>> side, and a small amount of purple residue sticks to the corner of <<his>> mouth. "I'm the treat," <<he>> whispers with a giggle. <<His>> cheeks are bright red, and <<his>> gaze is full of hunger. "<span class="witch">Lick.</span>" <br><br> You can't hope to resist <<his>> command, and you're not sure if you would want to anyways. Your thoughts are a cloud of lust and confusion. Still, you can choose <i>how</i> to follow <<his>> command. <<else>> <<if $phase is 6>> You cast your clothes aside into the darkness. <<strip>><<exhibitionism4>> <</if>> <<if $phase is 2>> You continue following the sound of Gwylan's breathing and light giggling. It echoes all around you, making it hard to track. <<else>> You turn around, <span class="purple">only to find that the doorframe is gone.</span> You hear a giggle from the dark. "It's too late to run away now, dear." <</if>> <br><br> You feel something vaguely hand-shaped press against your face. It feels like smooth, polished wood. You think it's blocking your eyes, but it's so pitch-black in the room that you can't tell for sure. <br><br> You hear a flick. The intruding object slips away from you, revealing that candles have been lit. You can see again, and the first thing you see is Gwylan, sitting <span class="lewd"> entirely naked on a quilted blanket. Trails of cream snake all along <<his>> body, covering <<his>> <<if _gwylanTF.tail is "revealed">> <<print C.npc.Gwylan.breastsdesc>>. <<His>> tail covers <<his>> lower body, but it slowly moves to the side to reveal that <<his>> <<npcGenitals 0>> is covered in it, too. <<else>> <<print C.npc.Gwylan.breastsdesc>> and <<npcGenitals 0>>. <</if>> </span> <br><br> <<if $worship.source is "player">> <span class="lewd">You can't help but wonder if this is what Gwylan used your 'sample' for. Is <<he>> covered in your cream?</span> <<arousal 1000>><<garousal>> <br><br> <</if>> An empty glass vial sits at <<his>> side, and a small amount of purple residue sticks to the corner of <<his>> mouth. <<He>> smiles at you seductively. "Come get your treat," <<he>> whispers. One of <<his>> hands runs up <<his>> body. <<if $worn.neck.collared is 1 and $worn.neck.type.includes("leash")>> The other tugs your leash. <</if>> <br><br> You're surrounded by a sea of darkness, and only Gwylan offers shelter from it all. You're not sure how or when you ended up kneeling right in front of <<him>>. <</if>> <br><br> <</if>> <<gwylanWorshipEffects>> <<if $worship.end>> <<if ["milk", "genitals", "oral"].includes($worship.end) and $gwylanSeen.includes("partners")>> <<link [[Crawl up and kiss Gwylan|Gwylan Cream Lick End]]>><<set $phase to "kiss">><<npcincr Gwylan lust 5>><<npcincr Gwylan dom 1>><</link>><<gglust>><<gyearning>><<gwylanHypnoNote "kiss">> <<elseif $gwylanSeen.includes("partners")>> <<link [[Kiss Gwylan|Gwylan Cream Lick End]]>><<set $phase to "kiss">><<npcincr Gwylan lust 2>><<npcincr Gwylan dom 1>><</link>><<glust>><<gyearning>><<gwylanHypnoNote "kiss">> <</if>> <br> <<if ["genitals", "oral"].includes($worship.end) and C.npc.Gwylan.penis isnot "none">> <<link [[Let Gwylan see you swallow <<his>> cum|Gwylan Cream Lick End]]>><<set $phase to "swallow">><<npcincr Gwylan lust 2>><</link>><<glust>> <br> <</if>> <<link [[Cuddle with Gwylan for a while (0:10)|Gwylan Cream Lick End]]>><<stress -6>><<trauma -3>><<npcincr Gwylan dom 1>><<pass 10>><<set $phase to "cuddle">><</link>><<lstress>><<ltrauma>><<gyearning>> <br> <<link [[Just get up|Gwylan Cream Lick End]]>><<set $phase to "up">><</link>> <br> <<elseif $worship.timer lte 0 or ($worship.breasts lte 0 and $worship.genitals lte 0 and $worship.body lte 0 and $worship.tummy lte 0)>> <<link [[Next|Gwylan Cream Lick End]]>><<set $worship.end to "clean">><<set $phase to "clean">><</link>> <br> <<else>> <<gwylanWorshipActions>> <</if>><<effects>><<run statusCheck("Gwylan")>> <<if $worship.end is "oral">> You slowly pull your head up, releasing <<his>> <<npcPenis>> and taking a deep breath. <<elseif $worship.end is "milk">> You pull your mouth off of <<his>> breasts, taking a deep breath. <</if>> <<if $phase is "kiss">> <<if ["genitals", "oral"].includes($worship.end)>> You crawl up towards <<him>>, gently leaving a trail of kisses all the way up <<his>> body. <<His>> gaze is a mixture of anticipation and concern as you finally reach <<his>> face. You kiss <<him>> on the cheek, and then on the lips. <<else>> You lean up towards Gwylan's face and kiss <<him>>. <</if>> <<if $worship.end is "milk">> You push your tongue into <<his>> mouth, <span class="lewd">giving <<him>> a taste of <<his>> own milk</span>. It's only fair that you share the cream. <<elseif $worship.end is "oral" or $worship.end is "genitals" and C.npc.Gwylan.penis isnot "none">> You push your tongue into <<his>> mouth, <span class="lewd">giving <<him>> a taste of <<his>> own cum</span>. It's only fair that you share the cream. <<elseif $worship.end is "genitals">> You push your tongue into <<his>> mouth, <span class="lewd">letting <<him>> taste <<his>> own fluids</span>. <<else>> You push your tongue into <<his>> mouth, letting <<him>> partake in the lingering taste of cream. <</if>> <<gwylanKiss>> <br><br> <<if _gwylanStatus.includes("heat")>> <<set _encore to true>> After a moment, <<he>> puts <<his>> hand around your head and returns the kiss eagerly. <<He>> leans forward, pushing you back in <<his>> effort to kiss you even deeper, until you're toppled backwards. <br><br> <<He>> disengages for only a moment. A line of saliva and lewd fluid connects your mouths as <<he>> hovers over you. "More," <<he>> whispers, <<his>> expression still full of hunger. <<else>> <<He>> puts <<his>> hand on your cheek and returns the kiss for a moment, before pushing you away. "<<pcPetname "Gwylan" "good">>. Thanks for sharing," <<he>> giggles. <<He>> helps you stand. <</if>> <<elseif $phase is "swallow">> You look up to Gwylan, your mouth wide open and your tongue out. You retract it and swallow, opening your mouth again to show <<him>> that it's now empty. <br><br> <<He>> reaches down and caresses your cheek. "<<pcPetname "Gwylan" "good">>." <<if _gwylanStatus.includes("heat")>> <<set _encore to true>> <<He>> points to <<his>> lips. "Come here, you missed some." <br><br> You crawl up towards <<him>>. When you're close enough, <<he>> <span class="lewd"><<he>> licks a bit of cream off your cheek</span>. <<He>> licks again, closer to your mouth, then your lips. Suddenly, you're kissing each other, your tongues eagerly sharing the taste of cream. <<gwylanKiss>> <<He>> leans forward, pushing you back in <<his>> effort to kiss you even deeper, until you're toppled backwards. <br><br> <<He>> disengages for only a moment. A line of saliva and lewd fluid connects your mouths as <<he>> hovers over you. "More," <<he>> whispers, <<his>> expression still full of hunger. <<else>> <<His>> finger circles your mouth. <<He>> brings it back to <<his>> own, holding a small mound of cream. "You missed some," <<he>> giggles, licking it. <<He>> helps you stand. <</if>> <<elseif $phase is "cuddle">> You cling to Gwylan, and the two of you slowly lay back on the blanket. <<He>> pulls you closer, stroking your hair as <<he>> holds you. "<<pcPetname "Gwylan" "good">>," <<he>> whispers. <<if $bodysize is 3>> <<He>> buries <<his>> face in your shoulder. <<else>> You bury your face in <<his>> shoulder. <</if>> <br><br> <<His>> hand strokes up and down your back, and <<he>> continues humming <<if $seabird_lullaby gte 2>> <span class="teal">Seabird's Lullaby</span>. <<else>> a soothing, <span class='teal'>familiar</span> melody. You're not sure where you've heard it before. <</if>> The two of you stay like that for some time. Eventually, <<he>> helps you stand. <<elseif $phase is "up">> You quickly stand up, and wipe away any stray cream. Gwylan does the same. <<else>> <<if $worship.breasts lte 0 and $worship.genitals lte 0 and $worship.body lte 0 and $worship.tummy lte 0>> "There, all clean," <<he>> says. "<<pcPetname "Gwylan" "good">>." <<He>> pats the top of your head. <<else>> "That will have to do," <<he>> sighs. "We can't be here all day." <<He>> pats the top of your head. <</if>> <br><br> <<if _gwylanStatus.includes("heat")>> <<set _encore to true>> <<He>> points to <<his>> lips. "Come here, you missed some." <br><br> You crawl up towards <<him>>. When you're close enough, <<he>> <span class="lewd"><<he>> licks a bit of cream off your cheek</span>. <<He>> licks again, closer to your mouth, then your lips. Suddenly, you're kissing each other, your tongues eagerly sharing the taste of cream. <<gwylanKiss>> <<He>> leans forward, pushing you back in <<his>> effort to kiss you even deeper, until you're toppled backwards. <br><br> <<He>> disengages for only a moment. A line of saliva and lewd fluid connects your mouths as <<he>> hovers over you. "More," <<he>> whispers, <<his>> expression still full of hunger. <<else>> <<His>> finger circles your mouth. <<He>> brings it back to <<his>> own, holding a small mound of cream. "You missed some," <<he>> giggles, licking it. <<He>> helps you stand. <<npcincr Gwylan lust 2>><<glust>> <</if>> <</if>> <br><br> <<if _encore>> <<link [[Next|Gwylan Cream Sex]]>><<set $sexstart to 1>><</link>> <br> <<else>> "I hope you had as much fun as I did," <<he>> says, a little unsteady. <<if $worship.end isnot "clean">> "I don't often achieve... release." <</if>> <br><br> <<if $worship.breasts lte 0 and $worship.genitals lte 0 and $worship.body lte 0 and $worship.tummy lte 0>> <<He>> gets dressed, and rolls up the blanket. <<else>> <<He>> looks down at <<his>> body. There's still some cream left. "I'll need to wash." <<He>> starts to roll up the blanket, but stops and stares at it. <<He>> then wraps <<himself>> in it like a towel. "I'll need to wash this too, anyways." <</if>> The darkness in the room has faded, revealing that you're in a small storage room full of mannequins. They're all facing the two of you. <<clotheson>> Gwylan leads you back to the shop. "Thanks for that, dear. <<if $worship.end isnot "clean">>You've got some talent with that tongue.<</if>> We'll have to do this again sometime. If you need anything, you know where to find me." <<unset $worship>> <<gwylanRequestEnd>> <br><br> <<link [[Next|Forest Shop Entrance]]>><<endevent>><</link>> <br> <</if>><<run statusCheck("Gwylan")>> <<if $sexstart is 1>> <<set $sexstart to 0>> <<consensual>> <<set $consensual to 1>> <<neutral 1>> <<maninit>> <<npcexpose>> <<set $enemytrust += 200>> <<gwylanCombatInit>> <</if>> <<if $timer lte 0 and $trance is 1>> <<set $trance to 0>> <span class="teal">You snap out of Gwylan's trance.</span> <</if>> <<effects>> <<effectsman>> <<man>> <<stateman>> <br><br> <<actionsman>> <<if $orgasmcurrent gte $combat_player_orgasm_target>> <span id="next"><<link [[Next|Gwylan Cream Sex Finish]]>><</link>></span><<nexttext>> <<elseif _combatend>> <span id="next"><<link [[Next|Gwylan Cream Sex Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Gwylan Cream Sex]]>><</link>></span><<nexttext>> <</if>><<effects>><<run statusCheck("Gwylan")>> <<if $orgasmcurrent gte $combat_player_orgasm_target>> <<set $enemyarousal += 200>> <<if $enemyarousal gte $enemyarousalmax>> <<if $hallucinations gte 2 and $NPCList[0].chest isnot "clothed">> The tattoo on Gwylan's <<bellyDescription "Gwylan">> flares to life, and <<he>> shivers as you climax. <<else>> Your <<if $orgasmcurrent gt 1>>final<</if>> orgasm makes Gwylan shiver. <</if>> <span class="pink">It pushes <<him>> over the edge too.</span> <<ejaculation>><<npcincr Gwylan lust -25>><<llllust>> <<else>> <<if _gwylanStatus.includesAny("dom", "lust")>> <<He>> hums and holds you tight you as you recover from your <<if $orgasmcurrent gt 1>>final<</if>> orgasm. <<gwylanHypnosis "devotion" 2>><br> <<if $consensual is 1>> "You did great, <<pcpetname "Gwylan">>," <<else>> "There, isn't that better?" <</if>> <<he>> coos. <<else>> <<He>> makes a pleased sound as your <<if $orgasmcurrent gt 1>>final<</if>> orgasm subsides. <<gwylanHypnosis "devotion" 1>><br> "That should do," <<he>> says. <<if $consensual is 0>> "Don't fuss so much next time, dear. I'm only trying to help." <</if>> <</if>> <<if $penisfucked is 1>> <<He>> rubs <<his>> <<bellyDescription "Gwylan">> in satisfaction until you pull out of <<him>>. <<elseif $vaginafucked is 1>> <<He>> rubs your <<bellyDescription>> in satisfaction, and pulls out. <</if>> <<npcincr Gwylan lust 5>><<gglust>> <</if>> <<elseif $enemyarousal gte $enemyarousalmax>> <<ejaculation>> <<if $orgasmcurrent is 0 and $hypnosis_traits.devotion>> <<gwylanHypnosis "devotion" -2>> <</if>> <<npcincr Gwylan lust -20>><<lllust>> <<elseif $enemyhealth lte 0>> <<set $gwylan.punishment to true>> Gwylan rolls away from you. "That hurt, dear." <<He>> giggles dryly. "Naughty, naughty. I'll remember this." <<npcincr Gwylan dom -2>><<lyearning>> <<else>> Gwylan rolls away from you. <</if>> <br><br> "I hope you had as much fun as I did," <<he>> says, a little unsteady. <<if $enemyarousal gte $enemyarousalmax>> "I don't often achieve... release." <</if>> <br><br> <<if $worship.breasts lte 0 and $worship.genitals lte 0 and $worship.body lte 0 and $worship.tummy lte 0>> <<He>> gets dressed, and rolls up the blanket. <<else>> <<He>> looks down at <<his>> body. There's still some cream left, along with some lewd fluids. "I'll need to wash." <<He>> starts to roll up the blanket, but stops and stares at it. <<He>> then wraps <<himself>> in it like a towel. "I'll need to wash this too, anyways." <</if>> The darkness in the room has faded, revealing that you're in a small storage room full of mannequins. They're all facing the two of you. <<clotheson>> Gwylan leads you back to the shop. "Thanks for that, dear. <<if $worship.end isnot "clean">>You've got some talent with that tongue.<</if>> We'll have to do this again sometime. If you need anything, you know where to find me." <<unset $worship>> <<gwylanRequestEnd>> <br><br> <<endcombat>> <<link [[Next|Forest Shop Entrance]]>><<endevent>><</link>> <br><<set $outside to 0>><<set $location to "forest_shop">><<effects>><<run statusCheck("Gwylan")>> <<outfitChecks>> <<if $phase is "ritual" or $phase is "forced">> <<if $gwylanSeen.includes("ritual_sex")>> <<switch $speech_attitude>> <<case "meek">> "I'd like to do this with you, but... there's a problem. I'm stuck." <<case "bratty">> "I'd love to go for a roll with you again, but I'm a bit stuck." <<default>> "I'd like to do this with you, but I'm stuck." <</switch>> <<else>> <<switch $speech_attitude>> <<case "meek">> "I'm a bit nervous. Plus, I've got this thing stuck on me." <<case "bratty">> "I'm definitely interested in your proposal, but I've got this stupid thing on me." <<default>> "I'm interested, but I've got this thing stuck on me." <</switch>> <</if>> <<elseif $phase is "skip">> <<switch $speech_attitude>> <<case "meek">> "I've done what you asked of me. Will you help me now?" <<case "bratty">> "Alright, I did what you asked. Time for you to hold up your end of the deal." <<default>> "I did what you asked. Can you help me now?" <</switch>> <<else>> <<if $gwylanJordanChastity and !$gwylanSeen.includes("chastity_parasite")>> "I was told you could help me with a parasite problem that I have." <<else>> <<switch $speech_attitude>> <<case "meek">> "Would it be too much trouble to ask for help getting this off?" <<case "bratty">> "Please get this stupid thing off of me." <<default>> "Could you please help me remove this?" <</switch>> <</if>> <</if>> <<if _bottom>> You displace your _bottom.name just enough to show your $worn.genitals.name. <<else>> You gesture to your $worn.genitals.name. <</if>> <br><br> <<if _gwylanStatus.includes("lust") and ($gwylan.ritualMissed or $phase is "ritual" or $phase is "forced") and $gwylanSeen.includes("request_tutorial")>> <<set _gwylanEager to true>> <</if>> <<if $gwylan.request.event is "chastity" or $phase is "skip">> <<He>> smiles. "Of course. Let me take another look at what we're working with." <<elseif $gwylan.requestDone or $phase is "forced">> <<He>> nods. <<if $phase is "forced">> "Let me take a closer look." <<elseif $gwylan.requestLast.hold is "chastity">> "You've done what I asked, so I'll repay the favour." <<else>> "Let me take a closer look." <</if>> <<else>> <<He>> thinks for a moment. "Maybe. I might need something from you first. Let's have a look." <</if>> <<if _bottom>> <<He>> crouches down in front of you and <<if _bottom.skirt>>lifts<<else>>pulls down<</if>> your _bottom.name all the way. <<else>> <<He>> crouches down in front of you. <</if>> <<lowerstrip>><<underlowerstrip>> <<if $gwylanSeen.includes("romance")>> You can't help but get aroused at <<his>> touch after everything you've been through with <<him>>. <<arousal 1000>><<garousal>> <<elseif $gwylanSeen.includes("ritual_sex")>> You're a little embarrassed, but you and Gwylan have done much more lewd things together. <<arousal 500>><<garousal>> <<elseif $uncomfortable.underwear is false>> You can't help but feel excited having someone seeing you exposed this closely. <<arousal 500>><<garousal>> <<else>> You can't help but feel embarrassed having someone seeing you exposed this closely. <<stress 1>><<gstress>> <</if>> <br><br> <<if $worn.genitals.name is "gold chastity belt">> <<His>> brow furrows, but <<he>> seems to admire the craftsmanship for a moment. <<if $phase isnot "skip">>"Some of this looks like real gold." <<He>> gives it a knock, before trying to scratch it with an iron nail. "It's harder, though. Maybe an alloy."<</if>> <br><br> <<if $phase is "forced">> <<if $gwylan.request.event is "chastity" and gwylanRequestMet()>> <<He>> stands. "It looks like you already have what I need to break this off. Let's get it done." <<else>> <<He>> stands. "I can help you, but you'll owe me for the materials I use." <</if>> <br><br> <<link [[Next|Gwylan Chastity Removal Gold]]>><<pass 5>><</link>> <br> <<elseif $gwylan.request.event and $gwylan.request.event isnot "chastity">> <<set $gwylan.request.hold to "chastity">> <<He>> stands. "I can help you, but I need you to finish what I asked of you already. Then, I'll need you to gather some items for me. I don't have all the materials on hand." <<clotheson>> <<endevent>><<npc Gwylan>><<person1>> <<gwylanOptions>> <<elseif !$gwylan.requestDone and !$gwylan.request.event>> <<set $gwylan.request.hold to "chastity">> <<He>> stands. "I can help you, but I'll need a favour first, and after that, I'll additionally need you to gather some items for me. Let's start with the first, though." <<clotheson>> <<run gwylanRequest()>> <<gwylanRequestText>> <br><br> <<endevent>><<npc Gwylan>><<person1>> <<gwylanOptions>> <<else>> <<He>> stands. "I can help you, but I'll need you to retrieve a few things for me first. I don't have all the materials on hand." <<He>> looks around, before grabbing a piece of paper sticking out of a bookshelf. <<He>> produces a green pen and starts to write something down on it. <<clotheson>> <<if $gwylanSeen.includes("chastity_gold")>> <<He>> hands you the list of items. It's the same as last time. <<else>> After a moment, <<he>> hands it to you. It's a list. Salt, sugar, white wine... clams? A gold chain? You look up to <<him>>. "Trust me, this will break you out. The gold chains they sell at the clothing shop on High Street are actually mostly copper, and they just so happen to be the perfect blend for this." <<if $worn.neck.name is "familiar collar" and $worn.neck.cursed is 1>> <<He>> tugs your collar. "Don't worry about the gold chain, I'll source that myself." <</if>> <</if>> <br><br> <<if $gwylan.request.event is "chastity">> <span class="gold">Gwylan's request has been updated in your journal.</span> <<else>> <span class="gold">Gwylan's request has been added to your journal.</span> <</if>> <<if $gwylan.request.event is "chastity">> <<gwylanRequestEnd "skip">> <<run gwylanRequest("chastity")>> <<else>> <<run gwylanRequest("chastity")>> <<set $gwylan.request.timer to null>> <</if>> <br><br> <<endevent>><<npc Gwylan>><<person1>> <<gwylanOptions>> <</if>> <<elseif $worn.genitals.name is "chastity parasite">> <<if $gwylan.request.event is "chastity" or $phase is "skip">> "Right. This little thing." <<elseif $gwylanSeen.includes("chastity_parasite")>> "Oh my, another one?" <<else>> "Oh. Oh dear." <</if>> <<He>> pokes and prods at your parasite. It makes you shiver. <<arousal 1000>><<garousal>> <br><br> <<if $gwylan.request.event is "chastity" or $gwylan.requestDone or _gwylanEager>> <<if numberOfEarSlime()>> "A full infestation. I can remove it, but it will grow back eventually.<<if _gwylanEager>> Normally I'd ask a favour for this. You've gotten me excited, though.<</if>>" <<else>> "There shouldn't be an issue removing this.<<if _gwylanEager>> Normally I'd ask a favour, but you've gotten me excited.<</if>>" <</if>> <br><br> <<He>> stands and walks behind a shelf, looking for something. <br><br> <<link [[Next|Gwylan Chastity Removal 2]]>><<pass 5>><</link>> <br> <<elseif $gwylan.request.event>> <<set $gwylan.request.hold to "chastity">> "I can help you, but I need you to finish the task I gave you first. Then we'll jostle this thing free." <<He>> stands. <<clotheson>> <<endevent>><<npc Gwylan>><<person1>> <<gwylanOptions>> <<else>> <<set $gwylan.request.hold to "chastity">> "I can help you, but I need you to do something for me first. Then we'll jostle this thing free." <<He>> stands. <<clotheson>> <<run gwylanRequest()>> <<gwylanRequestText>> <br><br> <<endevent>><<npc Gwylan>><<person1>> <<gwylanOptions>> <</if>> <<else>> <<if $gwylan.request.event is "chastity" or $gwylan.requestDone or _gwylanEager>> <<if $worn.genitals.origin is "temple">> <<He>> runs <<his>> hands along the seams. "The temple's handiwork. Do you have a vow to keep?" <<He>> doesn't wait for you to answer. "Robust, but not impregnable. <<elseif $worn.genitals.origin is "Whitney">> <<He>> runs <<his>> hands along the seams. "There's something written here. 'Property of Whitney.'" <<if $gwylanSeen.includes("romance")>> <<He>> looks up to you with a smile. "I'm glad you're getting this removed. <<elseif _gwylanStatus.includes("dom")>> <<He>> snickers. "We'll see about that. <<else>> <<He>> giggles. "Having regrets? <</if>> <<else>> <<He>> runs <<his>> hands along the seams. "A simpler design, hobbyist level. <</if>> Give me a moment.<<if _gwylanEager>> Normally I'd ask a favour for this, you know.<</if>>" <br><br> <<He>> stands and walks behind a shelf, looking for something. <br><br> <<link [[Next|Gwylan Chastity Removal 2]]>><<pass 5>><</link>> <br> <<elseif $gwylan.request.event>> <<set $gwylan.request.hold to "chastity">> "I can help you, but I need you to finish the task I gave you first. Then we'll jostle this thing free." <<He>> stands. <<clotheson>> <<endevent>><<npc Gwylan>><<person1>> <<gwylanOptions>> <<else>> <<set $gwylan.request.hold to "chastity">> "I can help you, but I need you to do something for me first. Then we'll jostle this thing free." <<He>> stands. <<clotheson>> <<run gwylanRequest()>> <<gwylanRequestText>> <br><br> <<endevent>><<npc Gwylan>><<person1>> <<gwylanOptions>> <</if>> <</if>><<effects>><<run statusCheck("Gwylan")>> Gwylan rummages around the shop for a while, looking for something. "I can never find this thing when I'm looking for it, it only shows up when I don't need it. Aha!" <br><br> <<His>> head pokes back out from behind the shelf, with a smile. <<if $worn.genitals.origin is "temple">> <<set $gwylanSeen.pushUnique("chastity", "chastity_temple")>> <<He>> waves a small metal rod. "Found it!" <<He>> skips back up to you. It looks just like the ones they use at the temple. <br><br> You're curious. "Why do you have—" <br><br> "I stole it," <<he>> interrupts. "This will feel strange, brace yourself." <<He>> holds it against the belt. You feel a jolt and your belt clatters to the floor, the lock <span class="red">broken and smoldering</span>. "I made a few modifications to it, too. It's great for self-defense." <<He>> picks up the remains. "I could use the scrap from this. Ooh, I could make a durable set of undergarments! Or maybe..." <br><br> <<He>> walks away with it, rambling to <<himself>>. <<set $worn.genitals.type.push("broken")>><<genitalsruined>><<set _return to true>> <<elseif $worn.genitals.name is "chastity parasite" or $worn.genitals.origin is "ear slime">> <<set $gwylanSeen.pushUnique("chastity", "chastity_parasite")>> <<He>> waves a small metal rod. "Found it!" <<He>> skips back up to you. <br><br> <<He>> runs <<his>> hands along the fleshy growth again. It sends shivers down your spine. <<He>> holds the rod against the parasite. You feel a jolt and it immediately loosens its hold. Gwylan grips it tightly, pulling it free as it squirms. <br><br> <<He>> huffs with satisfaction, and holds it up to the light. "Don't you worry little one, I've got a nice home for you." <<He>> carries it, holding it in both hands as it tries to squirm free, to a small terrarium. "Until then, you go in the time-out box." <<He>> gently places it in and quickly covers it. The parasite continues to squirm in the terrarium, but slows as Gwylan flips on a heat lamp above it. <br><br> <<He>> puts <<his>> hands on <<his>> hips and smiles. <<if $gwylanSeen.includes("ritual_beast")>> "Parasites like this are adapted to the heat of the human body, they won't survive long without it. The heat lamp will keep it alive. Even if it doesn't want to be." <<He>> turns to you. "If I let it shrivel up and die, it'll just leak its poison back into the world. It'll need to be cleansed. Made into something else." <</if>> <<if $parasite.penis.name is "parasite">> <<removeparasite "penis">> <</if>> <<if $parasite.clit.name is "parasite">> <<removeparasite "clit">> <</if>> <<if numberOfEarSlime()>> <<llcorruption true>><<corruption -10>><br> <</if>> <<else>> <<set $gwylanSeen.pushUnique("chastity")>> <<He>> waves a small bladed instrument. "Found it!" <<He>> skips back up to you. <br><br> "Hold still." <<He>> jams it into the lock and twists, your belt clattering to the floor, the lock now broken. <<He>> picks up the remains. "I could use the scrap from this. Ooh, I could make a durable set of undergarments! Or maybe..." <br><br> <<He>> walks away with it, rambling to <<himself>>. <<set $worn.genitals.type.push("broken")>><<genitalsruined>><<set _return to true>> <</if>> <<if $vaginalchastityparasite isnot 0>> <span class="pink">With the chastity belt gone, the $vaginalchastityparasite fall out of your vagina.</span> <br> <<set $vaginalchastityparasite to 0>> <</if>> <<if $penilechastityparasite isnot 0>> <span class="pink">With the chastity belt gone, the $penilechastityparasite fall off of your penis.</span> <br> <<set $penilechastityparasite to 0>> <</if>> <<if $analchastityparasite isnot 0>> <span class="pink">With the chastity belt gone, the $analchastityparasite fall out of your anus.</span> <br> <<set $analchastityparasite to 0>> <</if>> <<if $gwylan.request.event is "chastity">> <<gwylanRequestEnd>> <<else>> <<set $gwylan.requestDone to false>> <</if>> <<if $gwylan.requestLast?.event is "chastity">> <<run delete $gwylan.requestLast.hold>> <</if>> <<if $gwylanSeen.includes("ritual_sex") and ($phase is "ritual" or $phase is "forced" or $gwylan.ritualMissed)>> <<clotheson>> <<if _return>> Gwylan marches back up to you and grabs you by the wrist. <<else>> Gwylan grabs you by the wrist. <</if>> <<if _gwylanStatus.includes("lust")>> <<His>> gaze is full of hunger. "Garden. Ritual. Now." <<He>> pulls you along. <<else>> "Alright, with that out of the way, let's go." <<He>> leads you to the garden. <</if>> <br><br> <<link [[Next|Gwylan Ritual Start Garden]]>><<endevent>><<set $phase to "fromChastityRemoval">><</link>><<gwylanHypnoNote>> <br> <<elseif $gwylan.requestLast?.event is "chastity" and $gwylanSeen.includes("ritual_sex") and _gwylanStatus.includesAny("aroused", "lust")>> You fix your- <br><br> <<if _return>> A pair of hands grab your clothes, preventing you from fixing them. Gwylan snuck back up on you. <<else>> Gwylan's hands grab your clothes, preventing you from fixing them. <</if>> "What do you think you're doing?" <<He>> kneels down. "With that out of the way..." <br><br> <<if _gwylanStatus.includes("lust")>> <<set _needsWillCheck to true>> "I'm starved, dear. I think I deserve repayment. Don't you?" <<else>> "We could have some fun." <</if>> <br><br> <<link [[Nod|Gwylan Chastity Removal Sex]]>><<set $sexstart to 1>><<npcincr Gwylan lust 2>><</link>><<glust>> <br> <<link [[Shake head|Gwylan Chastity Removal Sex Refuse]]>><</link>><<if _needsWillCheck>><<gwylanWillpowerDifficulty>><</if>> <br> <<else>> <<clotheson>> <<endevent>><<npc Gwylan>><<person1>> <<gwylanOptions>> <</if>><<set $location to "forest_shop_garden">><<effects>><<run statusCheck("Gwylan")>> <<if $phase isnot "forced" or $phase is "forced" and $gwylan.request.event is "chastity" and gwylanRequestMet()>> <<set _clothesToTake to []>> <<run $gwylan.request.items.forEach(item => { if (item.category === "clothing") T.clothesToTake.pushUnique(item.slot); if (item.category === "tending" && V.plants[item.name]) V.plants[item.name].amount -= item.need; })>> <<for _cl to 0; _cl lt _clothesToTake.length; _cl++>> <<set _noRebuy to true>> <<generalRuined _clothesToTake[_cl]>> <</for>> You place all the items Gwylan requested on a counter. <<He>> smiles. "Well done! I'll start the dissolution process right away. Wait here." <<He>> pulls a chair up for you. <<elseif $phase is "forced">> <<He>> quickly writes some things on a piece of paper and hands it to you. <<if $gwylanSeen.includes("chastity_gold")>> It's the same as last time. <<else>> It's a list. Salt, sugar, white wine... clams? A gold chain? You look up to <<him>>. "Trust me, this is a rough equivalent to what I'll be using. The gold chains they sell at the clothing shop on High Street are actually mostly copper, and they just so happen to be the perfect blend for this." <<if $worn.neck.name is "familiar collar" and $worn.neck.cursed is 1>> <<He>> tugs your collar. "Don't worry about the gold chain, I'll source that myself." <</if>> <</if>> <br><br> <<if $gwylan.request.event is "chastity">> <span class="gold">Gwylan's request has been updated in your journal.</span> <<else>> <span class="gold">Gwylan's request has been added to your journal.</span> <</if>> <<if $gwylan.request.event is "chastity">> <<gwylanRequestEnd "skip">> <<run gwylanRequest("chastityIngredients")>> <<else>> <<run gwylanRequest("chastityIngredients")>> <</if>> <<set $gwylan.request.command to 1>> <<set V.gwylan.request.timer = new DateTime(Time.date).addDays(2).timeStamp>> <br><br> "I'll start the dissolution process right away. Wait here." <<He>> pulls a chair up for you. <</if>> <br><br> You sit quietly for a few minutes, and Gwylan returns. "Right, burners are going, follow me." <br><br> <<if $gwylanSeen.includes("garden_seen")>> <<if C.npc.Gwylan.dom gte 20>> <<He>> takes your hand and leads you to the garden. <<takeHandholdingVirginity "Gwylan" "consensual">> <<else>> <<He>> grabs your wrist and leads you to the garden. <</if>> <br><br> <<else>> <<He>> places a black blindfold over your eyes and helps you stand. "Sorry, but my garden is usually off-limits. I can't have anyone knowing how to get in." <br><br> <<if $gwylanSeen.includes("garden")>> <<He>> steadily walks you to the garden before removing it. <<else>> <<set $gwylanSeen.pushUnique("garden")>> <<He>> steadily walks you somewhere. You hear doors open and shut. Eventually, you smell roses and feel the fresh air on your skin. <<He>> removes your blindfold. A large expanse of square stone tiles stretch along the ground, connecting patches of grass and raised sections filled with dirt, flowers and herbs. Surrounding it all is an impressive weaving of crossed wooden stakes at least eight feet high, with gaps just large enough to allow vines to grab and climb through, shielding the whole area from prying outside eyes. <br><br> There's another raised section, but this one is different. It's covered by a wooden roof, <<if Weather.precipitation is "rain" or Weather.precipitation is "snow">> untouched by the <<print Weather.precipitation>>, <</if>> and the inside is padded with various cushions and quilts. It's not where Gwylan is leading you, though. <br><br> <</if>> <</if>> <<if $phase is "forced">> <<He>> sits you down in another chair before darting back into the shop. You feel a little anxious being made to wait so long. <<stress 3>><<gstress>> <<else>> <<He>> sits you down in another chair before darting back into the shop. <<He>> returns quickly with a small plate, holding half a serving of freshly cooked chicken and a fork. "Eat up while you wait," <<he>> says with a smile, pinching your cheek before once again disappearing into the shop. <<if !$gwylanSeen.includes("chastity_gold")>> You had been wondering why a single serving of chicken was on <<his>> list. <</if>> <br><br> You relax and eat. The atmosphere of <<his>> garden is extremely calming. The chicken tastes very plain and dry. <<stress -6>><<hallucinogen 5>><<lstress>> <</if>> <br><br> <<link [[Wait|Gwylan Chastity Removal Gold 2]]>><<pass 10>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<undress "gwylanChastity">><<upperwear 87>><<feetwear 21 "black">> Gwylan returns once again after some time. <<if $phase is "forced">> <<He>> sets down a pair of rubber boots and a folded garment with <<else>> <<He>> takes your empty plate and sets down a pair of rubber boots and a folded garment with <</if>> <<if $gwylanSeen.includes("request_gas_mask")>> a gas mask on top. <span class="blue">It looks just like the one you got for <<him>> from the clothing shop.</span> <<else>> a medical respirator mask on top. <</if>> "Strip, please, and put these on. Run the gown under your belt if you can." Once more, <<he>> returns to the shop. <br><br> You oblige, quickly stripping and folding your clothes. <br><br> It's a pain, but you manage to tug the gown into your chastity belt and down through the bottom. There's a gap between your legs still. <br><br> <<link [[Next|Gwylan Chastity Removal Gold 3]]>><<pass 10>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<if $gwylanSeen.includes("request_gas_mask")>> You strap the gas mask on last, just in time for Gwylan to return. <<facewear 32>> <<else>> You put the respirator on last, just in time for Gwylan to return. <<facewear 3 "blue">> <</if>> <<Hes>> wearing a thick apron and a heavy pair of gloves. <<He>> shuffles towards you slowly, holding a metal tray with two glass beakers, a chisel, a hammer, and a small box. One of the beakers is empty, and the other has a tiny amount of a clear solution. <<if $gwylanSeen.includes("chastity_gold")>> Aqua regia, as you know. <</if>> <br><br> <<He>> carefully sets the tray down, and puts on a matching mask. <<if $gwylanSeen.includes("request_gas_mask")>> You wonder where <<he>> got another one. <</if>> <<He>> fleeces down your gown, giving it a hefty tug at the bottom. "Good!" <<He>> claps <<his>> gloved hands together. "Now, stand over there, please." <<He>> points to a metal basin on a bare spot of dirt, and follows you there with the tray. <br><br> <<if !$gwylanSeen.includes("chastity_gold")>> <<switch $speech_attitude>> <<case "meek">> "Y-you're starting to scare me, Gwylan. What is all this?" you ask. <<case "bratty">> "Am I your little lab rat now? What is all this?" you ask. You move to cross your arms, but Gwylan pushes them back to your sides. <<default>> "I'm starting to get worried. What are you doing? What is all this?" you ask. <</switch>> <br><br> "This? Protective clothing." <<He>> tugs your gown again, before inspecting your mask. <<He>> tugs the straps, ensuring there's a seal. <<He>> looks over to the tray. "In the box? Baking soda. In the beaker? Aqua regia." <<if $sciencetrait gte 3>> <br><br> <span class="teal">You remember one of Sirris' lessons,</span> <span class="red">and your heart skips a beat.</span> <<switch $speech_attitude>> <<case "meek">> "Th-that's dangerous! That's a very potent acid!" <<case "bratty">> "Are you out of your fucking mind? That's acid." <<default>> "What? That's acid!" <</switch>> <br> "You're quite smart!" <<he>> says with a bit of excitement. "Don't fret, I'm being very careful." <<He>> holds <<his>> gloved hands up. <br> <<switch $speech_attitude>> <<case "meek">> "Careful? I'm practically naked!" <<case "bratty">> "You're insane. You're handling acid while I'm practically naked." <<default>> "I'm practically naked. How is that careful?" <</switch>> <br> "Observant, too. You'll be alright, just don't try this at home." <<stress 12>><<ggstress>> <<else>> There's a long pause. "It's an acid for noble metals," <<he>> clarifies. <<stress 24>><<gggstress>> <br><br> <<switch $speech_attitude>> <<case "meek">> "Acid?! You're going to use acid on me? I'm practically naked!" you yell. <<case "bratty">> "You're insane. You're handling acid while I'm almost naked," you say. <<default>> "I'm practically naked!" you yell. <</switch>> <br> "No you're not." <<He>> tugs your gown again for emphasis. "You'll be alright, just don't try this at home." <</if>> <<else>> "I can't believe I'm letting you do this again," you say. <br> <<if $gwylanSeen.includes("request_gas_mask")>> You can't see <<his>> face, but you know <<hes>> smiling under the gas mask. <<else>> You can see just enough of <<his>> face to know <<hes>> smiling. <</if>> <<if $phase is "forced">> "Actions, meet consequences. You'll be wonderful friends." <<else>> "You're the one that asked me for help, silly <<girl>>." <<if $gwylan.request.command>> <br> "It's not like I had much of a choice," you grumble. <</if>> <</if>> <</if>> <br><br> <<if $sciencetrait gte 4 and !$gwylanSeen.includes("chastity_gold_sus") and $phase isnot "forced">> <span class="blue">A realisation hits you as you remember more of Sirris' lessons.</span> <br><br> "Hold on," you say. "There's no way you were able to make a batch of aqua regia with what I gave you. Not this quickly, at least." <br><br> Gwylan stops for a moment. <<if $gwylanSeen.includes("request_gas_mask")>> You can't tell <<his>> expression under the mask anymore. <<else>> <<His>> expression doesn't change, though. <</if>> "Oh, I already had a batch prepared! The materials you got me are for the batch to replace this one." <br><br> "You mentioned starting burners," you say.<br> "For the rooster," <<he>> responds quickly. "The chicken, I mean." You decide not to press further. <br><br> <<set $gwylanSeen.pushUnique("chastity_gold_sus")>> <</if>> <<He>> grabs a small dropper and pops the glass lid off of the beaker. "Stay still. This isn't a joke. One whiff and you're dead, one wrong movement and you'll have a new birthmark to show off after some of the worst pain you'll ever feel in your life." <br><br> <<link [[Next|Gwylan Chastity Removal Gold 4]]>><<pass 10>><<stress 3>><</link>><<gstress>> <br><<effects>><<run statusCheck("Gwylan")>> <<He>> brings the end of the dropper to your hip, on the thinnest part of the belt. You stay very still as <<he>> squeezes the end, letting two drops land on it. It begins to sizzle. <<He>> holds the empty beaker underneath to catch any runoff. After a few moments, <<he>> adds more. <br><br> <<He>> repeats adding two drops at a time for a few minutes. Your legs start to ache. "Loosen up," Gwylan says. "We'll be here a while, and you'll pass out if you stay that stiff." <<He>> waits for you to adjust before continuing. <br><br> Finally, you hear a distinctive crackle. "There we go, almost." <<He>> empties the dropper into the second flask. It has started to turn a deep yellow. <br><br> <<He>> grabs the hammer and chisel, and starts to chip away at the spot on the belt. Flakes of gold fall into the basin, which Gwylan scoops up and puts in the flask. <br><br> <<He>> switches between adding acid and chiselling at the belt. You think about chatting, but decide to let <<him>> focus. Immediately after you decide that, <<he>> speaks up instead. "So, how's school going?" <br><br> <<if $flashbackschoolready is 1 and $controlled is 0>> <<set $flashbackschoolready to 0>> <<flashbackschool>> You're snapped out of it as Gwylan grabs you by the arm and forces you to step out of the basin. <br><br> The first flask lays within, <span class="red">now half emptied</span>. The acid eats away at the bottom slowly. <<He>> lets out a breath as <<he>> picks up the flask. "That was close." <<He>> grabs the small box from the tray, and slowly pours baking soda on top of the spill. <<He>> turns to you. "I'm sorry, perhaps I shouldn't have asked. If it will make you feel better, though, don't hold back." <br><br> You tell Gwylan all about your troubles at school, and the assaults you've faced. The words spill out much like the acid from the flask, eating away at your lips. As if they were waiting to leave your body. <<He>> listens patiently, saying nothing until you're done. <<He>> removes <<his>> mask, and places <<his>> forehead against yours. <<His>> eyes dig into you, but there's a comfort in them. Like a wound being cleaned. It hurts now, but you know it's for your own good. <br><br> "I don't have any words for your troubles," <<he>> says, pulling you into a hug. "Just share them with me." <<trauma -6>><<npcincr Gwylan dom 2>><<ltrauma>><<gyearning>> <br><br> After a moment, <<he>> pulls away and clears <<his>> throat. <<He>> puts the gas mask back on, concealing <<his>> blush. "Let's continue." <br><br> <<link [[Next|Gwylan Chastity Removal Gold 5]]>><<set $phase2 to "spilled">><<pass 10>><</link>> <br> <<else>> <<link [[Chat about school|Gwylan Chastity Removal Gold 5]]>><<set $phase2 to "chat">><<pass 10>><<stress -2>><</link>><<lstress>> <br> <<link [[Stay quiet|Gwylan Chastity Removal Gold 5]]>><<set $phase2 to "quiet">><<pass 10>><</link>> <br> <<if $trauma gte ($traumamax / 7) or $stress gte ($stressmax / 7)>> <<link [[Complain about school|Gwylan Chastity Removal Gold 5]]>><<set $phase2 to "complain">><<pass 10>><<stress -6>><<trauma -6>><</link>><<lstress>><<ltrauma>> <br> <</if>> <</if>><<effects>><<run statusCheck("Gwylan")>> <<if $phase2 is "chat">> <<switch $speech_attitude>> <<case "meek">> "I-it's been..." You hesitate. <<He>> looks up at you, and you're pretty sure <<hes>> smiling. You ease up and chat about it. <<case "bratty">> You snort. "What are you, my <<father>>?" Silence follows. You decide to be less snarky and chat about it normally. <<default>> "I don't know, it's..." You hesitate. <<He>> looks up at you, and you're pretty sure <<hes>> smiling. You ease up and chat about it. <</switch>> <<elseif $phase2 is "quiet">> You don't answer. <<He>> doesn't seem to mind, and continues focusing. <<elseif $phase2 is "complain">> You sigh, and tell <<him>> about some of the things that have been bothering you about school. <<He>> doesn't say anything, but <<he>> doesn't need to. You feel better talking about it. <<else>> You stand for a bit longer as Gwylan finishes with the belt. <</if>> <br><br> <<if $hallucinations gte 2>> You rub your eyes. Your belt bleeds red as if wounded, and flakes of gold fall away like rose petals. <<else>> All around the contact point, the gold of the belt has turned red. <</if>> Gwylan holds up the disposal flask, the acid's gold tint having turned red, too. "Gold to blood. I'm magic," <<he>> muses. <br><br> Finally, with one last hit of the hammer on the chisel, your belt clatters to the ground. <<He>> re-seals the beaker before standing up, removing <<his>> mask to reveal a bright smile. "Let me clean up. You can remove the gown now." <<He>> places the remains of the belt on the tray. <<if $vaginalchastityparasite isnot 0>> <span class="pink">With the chastity belt gone, the $vaginalchastityparasite fall out of your vagina.</span> <br> <<set $vaginalchastityparasite to 0>> <</if>> <<if $penilechastityparasite isnot 0>> <span class="pink">With the chastity belt gone, the $penilechastityparasite fall off of your penis.</span> <br> <<set $penilechastityparasite to 0>> <</if>> <<if $analchastityparasite isnot 0>> <span class="pink">With the chastity belt gone, the $analchastityparasite fall out of your anus.</span> <br> <<set $analchastityparasite to 0>> <</if>> <<specialClothesUnlock "set" "jasper">><<set $daily.gwylan.jasper to true>> <<set $gwylanSeen.pushUnique("chastity", "chastity_gold")>> <<if $gwylan.request.event is "chastity">> <<if $gwylan.request.command>> <<gwylanRequestEnd "silent">> <<else>> <<gwylanRequestEnd "skip">> <</if>> <<else>> <<set $gwylan.requestDone to false>> <</if>> <<if $gwylan.requestLast?.event is "chastity">> <<run delete $gwylan.requestLast.hold>> <</if>> <<set $worn.genitals.type.push("broken")>><<genitalsruined>> <br><br> <<if $gwylanSeen.includes("ritual_sex") and ($phase is "ritual" or $phase is "forced" or $gwylan.ritualMissed)>> You start to strip and reach for your clothes. <<if _gwylanStatus.includes("lust")>> "Don't bother getting dressed," <<he>> calls from the door to the shop. "You're not going anywhere, <<pcpetname "Gwylan" "name">>. We have work to do." <<else>> "Don't bother getting dressed," <<he>> calls from the door to the shop. "You're not going anywhere. We have work to do." <</if>> <br><br> <<link [[Next|Gwylan Ritual Start Garden]]>><<endevent>><<upperruined>><<lowerruined>><<faceruined>><<feetruined>><<storeon "gwylanChastity">><<undress "gwylanRitual">><<set $phase to "fromChastityRemoval">><</link>><<gwylanHypnoNote>> <br> <<elseif $gwylan.requestLast?.event is "chastity" and $gwylanSeen.includes("ritual_sex") and _gwylanStatus.includesAny("aroused", "lust")>> <<storeon "gwylanChastity">><<strip>> You fix your- <br><br> <span class="red">Gwylan's hands snatch your clothes away from you.</span> "What do you think you're doing?" <<He>> kneels down. "With that out of the way..." <<He>> admires your <<genitals>>. <<if _gwylanStatus.includes("lust")>> <<set _needsWillCheck to true>> "I'm starved, dear. I think I deserve repayment. Don't you?" <<else>> "We could have some fun." <</if>> <br><br> <<link [[Nod|Gwylan Chastity Removal Sex]]>><<set $sexstart to 1>><<npcincr Gwylan lust 2>><</link>><<glust>> <br> <<link [[Shake head|Gwylan Chastity Removal Sex Refuse]]>><</link>><<if _needsWillCheck>><<gwylanWillpowerDifficulty>><</if>> <br> <<else>> <<upperruined true>><<lowerruined true>><<faceruined true>><<feetruined true>><<storeon "gwylanChastity">> <<clotheson>> You head back into the shop with Gwylan. <br><br> <<endevent>><<npc Gwylan>><<person1>><<set $location to "forest_shop">> <<gwylanOptions>> <</if>><<effects>><<run statusCheck("Gwylan")>> <<outfitChecks>> <<if $gwylan.request.command>> "I got my chastity device removed, just like you wanted," you say. <br><br> <<He>> smiles. "<<pcPetname "Gwylan" "good">>." <<He>> pets your head. <<gwylanRequestEnd>><<run delete $gwylan.requestLast.hold>> <br><br> <<if _gwylanStatus.includesAny("dom", "lust")>> <<His>> hand moves down to cup your cheek. "Let's make up for some of the time we've lost, then. <<if _fullyNaked>> <<gwylanCommand "Come.">>" <<else>> <<gwylanCommand "Strip.">>" <</if>> <br><br> <<if _fullyNaked>> <<link [[Follow|Gwylan Chastity Removal Sex]]>><<set $sexstart to 1>><<if $hypnosis_traits.devotion gte 1>><<hypnotised 1>><</if>><<set $phase to "strip">><<npcincr Gwylan lust 2>><</link>><<glust>> <<else>> <<link [[Strip|Gwylan Chastity Removal Sex]]>><<set $sexstart to 1>><<if $hypnosis_traits.devotion gte 1>><<hypnotised 1>><</if>><<set $phase to "strip">><<npcincr Gwylan lust 2>><</link>><<glust>> <</if>> <br> <<link [[Refuse|Gwylan Chastity Removal Sex Refuse]]>><<set $phase to "strip">><</link>><<gwylanWillpowerDifficulty>> <br> <<else>> <<He>> blushes. "Next time we conduct the ritual, let's make up for the... missed opportunities." <<npcincr Gwylan lust 5>><<gglust>> <br><br> <<gwylanOptions>> <</if>> <<else>> "I managed to break off my chastity device on my own," you say. <br><br> Gwylan smiles. "I hope you didn't hurt yourself doing that." <<gwylanRequestEnd "skip">><<run delete $gwylan.requestLast.hold>> <br><br> <<gwylanOptions>> <</if>><<effects>><<run statusCheck("Gwylan")>> <<if _gwylanStatus.includes("lust") and $hypnosis_traits.devotion gte 1 and !$willpowerSuccess>> You try to shake your head, <<hypnosisText "<span class='red'>but the muscles in your neck tense up painfully.">> You're unable to say no. <<if $phase is "strip">> <<strip>> In fact, you begin doing exactly as <<he>> asked. <</if>> <br><br> <<He>> smiles sweetly at you. "There's my <<pcpetname "Gwylan" "good">>. Come on." <<He>> takes your hand and leads you through a dark doorway. <br><br> <<link [[Next|Gwylan Chastity Removal Sex]]>><<set $molestationstart to 1>><<set $trance to 1>><</link>> <br> <<else>> <<if _gwylanStatus.includes("lust") and $hypnosis_traits.devotion gte 1 and $willpowerSuccess>> <span class="green">You manage to push through Gwylan's compulsion, and shake your head.</span> <<else>> You shake your head apologetically at Gwylan. <</if>> <br><br> <<He>> frowns, but it's brief. "Very well." <<if $location is "forest_shop_garden">> <<He>> leads you back into the shop without another word. <<else>> <<He>> leaves your side without another word. <</if>> <<npcincr Gwylan lust 2>><<glust>> <br><br> <<clotheson>> <<link [[Next|Forest Shop Entrance]]>><<endevent>><</link>> <br> <</if>><<run statusCheck("Gwylan")>> <<if $sexstart is 1>> <<set $sexstart to 0>> <<if $phase is "strip">> <<if !_fullyNaked>> You strip all of your clothes on the spot. <</if>> Gwylan smiles and takes your hand. "I'll go easy on you, <<pcpetname "Gwylan">>." <<strip>> <<He>> leads you through a dark doorway. All you can see within is a large quilt, which Gwylan lays down on, pulling you on top of <<him>>. <<else>> You nod, and Gwylan smiles. "Wonderful. Come here, <<pcpetname "Gwylan">>." <</if>> <br><br> <<consensual>> <<set $consensual to 1>> <<neutral 1>> <<maninit>> <<npcexpose>> <<set $enemytrust += 200>> <<gwylanCombatInit>> <<elseif $molestationstart is 1>> <<set $molestationstart to 0>> <<if $phase is "strip">> The room is dark. All you can see within is a large quilt, which Gwylan lays down on, pulling you on top of <<him>>. <</if>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<maninit>> <<gwylanCombatInit>> <<set $timer to $hypnosis_traits.devotion or 2>> <</if>> <<if $timer lte 0 and $trance is 1>> <<set $trance to 0>> <span class="teal">You snap out of Gwylan's trance.</span> <</if>> <<effects>> <<effectsman>> <<man>> <<stateman>> <br><br> <<actionsman>> <<if $orgasmcurrent gte $combat_player_orgasm_target>> <span id="next"><<link [[Next|Gwylan Chastity Removal Sex Finish]]>><</link>></span><<nexttext>> <<elseif _combatend>> <span id="next"><<link [[Next|Gwylan Chastity Removal Sex Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Gwylan Chastity Removal Sex]]>><</link>></span><<nexttext>> <</if>><<effects>><<run statusCheck("Gwylan")>> <<if $orgasmcurrent gte $combat_player_orgasm_target>> <<set $enemyarousal += 200>> <<if $enemyarousal gte $enemyarousalmax>> <<if $hallucinations gte 2 and $NPCList[0].chest isnot "clothed">> The tattoo on Gwylan's <<bellyDescription "Gwylan">> flares to life, and <<he>> shivers as you climax. <<else>> Your <<if $orgasmcurrent gt 1>>final<</if>> orgasm makes Gwylan shiver. <</if>> <span class="pink">It pushes <<him>> over the edge too.</span> <<ejaculation>><<npcincr Gwylan lust -25>><<llllust>> <<else>> <<if _gwylanStatus.includesAny("dom", "lust")>> <<He>> hums and holds you tight you as you recover from your <<if $orgasmcurrent gt 1>>final<</if>> orgasm. <<gwylanHypnosis "devotion" 2>><br> <<if $consensual is 1>> "You did great, <<pcpetname "Gwylan">>," <<else>> "There, isn't that better?" <</if>> <<he>> coos. <<else>> <<He>> makes a pleased sound as your <<if $orgasmcurrent gt 1>>final<</if>> orgasm subsides. <<gwylanHypnosis "devotion" 1>><br> "That should do," <<he>> says. <<if $consensual is 0>> "The struggle was thrilling, dear, but I'm only trying to help you." <</if>> <</if>> <<if $penisfucked is 1>> <<He>> rubs <<his>> <<bellyDescription "Gwylan">> in satisfaction until you pull out of <<him>>. <<elseif $vaginafucked is 1>> <<He>> rubs your <<bellyDescription>> in satisfaction, until you make <<him>> pull out. <</if>> <<npcincr Gwylan lust 5>><<gglust>> <</if>> <<elseif $enemyarousal gte $enemyarousalmax>> <<ejaculation>> <<if $orgasmcurrent is 0 and $hypnosis_traits.devotion>> <<gwylanHypnosis "devotion" -2>> <</if>> <<npcincr Gwylan lust -20>><<lllust>> <<elseif $enemyhealth lte 0>> <<set $gwylan.punishment to true>> Gwylan rolls away from you. "That hurt, dear." <<He>> giggles dryly. "Naughty, naughty. I'll remember this." <<npcincr Gwylan dom -2>><<lyearning>> <<else>> Gwylan rolls away from you. <</if>> <br><br> Gwylan leads you back to the shop. "I'm looking forward to what we can do with that pesky thing gone." <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Forest Shop Entrance]]>><<endevent>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<switch $speech_attitude>> <<case "meek">>"Gwylan, could you please lock my collar?" <<case "bratty">>"Could you do your fancy trick on my collar?" <<default>>"Can you lock my collar?" <</switch>> <br><br> <<if !$daily.gwylan.collar_lock>> <<cleareventpool>> <<addinlineevent "familiar_collar_1">> <<He>> giggles. "Aww, how could I say no?" <<He>> tenderly caresses your neck, and slowly pulls you into a kiss. <</addinlineevent>> <<addinlineevent "familiar_collar_2">> <<if $speech_attitude is "meek">> "Ooh, I adore it when you're so polite. Such a <<pcpetname "Gwylan" "good">>." <<else>> "Say please." <br><br> <<if $speech_attitude is "bratty">> You sigh. "Please do your fancy trick on my collar." <<else>> You oblige. "Can you please lock my collar?" <</if>> <br><br> "<<pcPetname "Gwylan" "good">>. Of course I will." <</if>> <br><br> <<He>> tenderly caresses your neck, and slowly pulls you into a kiss. <</addinlineevent>> <<if _gwylanStatus.includes("heat")>> <<addinlineevent "familiar_collar_heat">> You barely have time to make your request before <<he>> reaches in and hungrily pulls you into a kiss. <</addinlineevent>> <</if>> <<runeventpool>> <<gwylanKiss 25>> <br><br> A faint green light briefly illuminates your faces, and the golden heart on your collar pulses. <<if $arousal gte $arousalmax>> <br><br> <<orgasm>> Gwylan beams with pride as <<he>> pulls away. "<<pcPetname "Gwylan" "good">>!" <<He>> scratches you behind the ear. "That's right, who's my good, pent up <<girl>>? You are! Yes you are." <<npcincr Gwylan lust 2>><<glust>> <br><br> You melt into <<his>> embrace, panting from the <<if _deniedOrgasm>>denied <</if>>release. Gwylan continues praising you. <<if $hypnosis_traits.devotion gte 5>> The combined sensations make you feel <<if $drunk gte 300>> even more drunk than usual <<else>> almost drunk <</if>> as your brain fails to create any coherent thoughts. <</if>> You're snapped back to reality by a tug on your collar. <<else>> Gwylan pulls away, and gives the collar a tug. <</if>> It doesn't move.<<if $hypnosis_traits.devotion gte 5>> Good.<</if>> <<set _magicLeash to true>><<set $worn.neck.cursed to 1>><<set $daily.gwylan.collar_lock to 1>> <<else>> <<He>> crosses <<his>> arms. "Silly <<pcpetname "Gwylan" "simple">>, first you ask me to lock it, then to unlock it, and now you want me to lock it once more?" <br><br> Mockingly patting your head a few times, <<he>> continues. "You clearly need some time to sort through these conflicted emotions of yours. Ask me again tomorrow and maybe I'll take you more seriously." <<set $daily.gwylan.collar_lock to 2>> <</if>> <br><br> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>> <<switch $speech_attitude>> <<case "meek">>"Gwylan, could you please unlock my collar?" <<case "bratty">>"Could you let me take this thing off?" <<default>>"Can you unlock my collar?" <</switch>> <br><br> <<if !$gwylan.requestDone>> <<if $gwylan.request.event>> Gwylan thinks for a moment. "I suppose I can release you, but only after <span class="blue">you do what I asked of you.</span>" <<else>> <<if !$gwylanSeen.includes("request_intro")>> Gwylan thinks for a moment. "I suppose I can release you, but I need you to do something for me first. It'll be nice and simple, don't worry." <<He>> smiles sweetly. <<run gwylanRequest("tutorial")>> <<gwylanRequestText>> <<else>> Gwylan thinks for a moment. "I suppose I can release you, but I need you to do something for me first." <<He>> smiles sweetly. <<run gwylanRequest()>> <<gwylanRequestText>> <</if>> <</if>> <<set $gwylan.request.hold to "familiar">> <<else>> <<He>> frowns. "But I so adore it when you're my obedient <<pcpetname "Gwylan" "simple">>." <<He>> waits for a moment, seemingly hoping that you'll change your mind, before running <<his>> hands along your collar. <br><br> <<He>> leans in and whispers something. You hear a faint click, and feel cold. <br><br> "There. You're free." <<set $worn.neck.cursed to 0>> <</if>> <br><br> <<gwylanOptions>><<effects>><<run statusCheck("Gwylan")>> <<if !$gwylanSeen.includes("doggy_bed")>> <<set $gwylanSeen.pushUnique("doggy_bed")>> <<switch $speech_attitude>> <<case "meek">>"Gwylan, I..." you hesitate. Gwylan gives you a patient smile. "I feel comfortable here, and I'm really tired. Do you have somewhere I could rest?" <<case "bratty">>"I'm exhausted. Do you have somewhere I could shut my eyes? I'd even take a chair at this point." <<default>>"Gwylan, I'm exhausted. Do you have somewhere I could rest? I feel safe here." <</switch>> <br><br> Gwylan's head tilts. "You don't have a safe place to..." <<he>> stops <<himself>>. "Oh, where are my manners? Of course <<pcpetname "Gwylan" "my">> is welcome to sleep here!" <<He>> pulls you in <<if $worn.neck.cursed is 1>>by your collar<</if>> and kisses you on the cheek. "Wait here a moment." <br><br> <<He>> looks around, framing <<his>> hands in front of <<his>> face as if trying to visualise something. "There." <<He>> walks through a dark doorway. You hear something dragging along the ground. <br><br> Gwylan emerges, pulling a large cushioned object. <span class="lewd">It's a pet bed.</span> It looks luxurious. <<hypnosisText "You imagine falling asleep in it, and your eyes start to feel heavy.">> <br><br> <<He>> looks to the counter, and moves the bed a little more. "There. So I can see you while you're asleep. You should know, though. <span class="blue">You might have trouble falling asleep unless you're wearing your collar.</span>" <<He>> smiles, and pets the top of your head. "Anything for you, <<pcpetname "Gwylan" "my">>." <<hypnosisText "You melt at <<his>> touch.">> <<stress -3>><<trauma -1>><<tiredness 2>><<lstress>><<ltrauma>><<gtiredness>> <br><br> <span class="gold">You can now sleep at the forest shop while wearing your familiar collar.</span> <br><br> "I can't have you getting too comfortable here, though," <<he>> says. "I'll give you a week, but after that, <span class="blue">I'll make you work for pet bed privileges.</span>" <<set $gwylan.timer.petBed to new DateTime(Time.date).addDays(7).timeStamp>> <<else>> <<if $gwylan.timer.petBed>> <<switch $speech_attitude>> <<case "meek">>"I like sleeping here. Could you keep that bed out for me for a while longer?" <<case "bratty">>"Could you keep my bed out longer? It's convenient to have here." <<default>>"Can you keep my bed out for another week?" <</switch>> <<else>> <<switch $speech_attitude>> <<case "meek">>"Gwylan, could you... drag my bed out again, please?" <<case "bratty">>"Where's my bed? I need to rest." <<default>>"Can I have my pet bed back please?" <</switch>> <</if>> <br><br> <<if $gwylan.requestDone>> <<He>> smiles. "Of course, <<pcpetname "Gwylan" "simple">>. I like seeing you sleep over there." <<if !$gwylan.timer.petBed>> <<set $gwylan.timer.petBed to new DateTime(Time.date).addDays(7).timeStamp>> <<He>> giggles, and drags your pet bed into place. <<else>> <<set $gwylan.timer.petBed to new DateTime($gwylan.timer.petBed).addDays(7).timeStamp>> <</if>> <<elseif $tiredness gte 1700 and !$weekly.gwylanPetBedHold>> <<set $weekly.gwylanPetBedHold to true>> <<He>> looks you over. "Sure, but I need you to..." <<he>> stops <<himself>>, and frowns. "Oh. You look exhausted." <br><br> <<He>> puts a hand to <<his>> chin. "Alright. You can have it for <span class="blue">one day</span>, but after that I'll need a favour from you." <<He>> smiles. "I can't hope to turn you down looking like that." <<if !$gwylan.timer.petBed>> <<set $gwylan.timer.petBed to new DateTime(Time.date).addDays(1).timeStamp>> <<He>> drags your bed out, and kisses you on the cheek. "Sleep well, <<pcpetname "Gwylan" "name">>." <<else>> <<set $gwylan.timer.petBed to new DateTime($gwylan.timer.petBed).addDays(1).timeStamp>> <<He>> kisses you on the cheek. "Sleep well, <<pcpetname "Gwylan" "name">>." <</if>> <<elseif $gwylan.request.event>> Gwylan thinks for a moment. "I suppose I can let you rest here, but only after <span class="blue">you do what I asked of you.</span>" <<else>> <<if !$gwylanSeen.includes("request_intro")>> Gwylan thinks for a moment. "Sure, but I need you to do something for me first. It'll be nice and simple, don't worry." <<He>> smiles sweetly. <<run gwylanRequest("tutorial")>> <<gwylanRequestText>> <<else>> Gwylan thinks for a moment. "Sure, but I need you to do something for me first." <<He>> smiles sweetly. <<run gwylanRequest()>> <<gwylanRequestText>> <</if>> <<set $gwylan.request.hold to "petBed">> <</if>> <</if>> <br><br> <<gwylanOptions>><<widget "gwylanRequestText">> <<set $_request to gwylanRequest()>> <<switch $_request.event>> <<case "clothing">> <<if $_request.special is "gas mask">> "I've heard whispers that the clothing shop on High Street received a shipment of <u>gas masks</u>. I'd like to know if they're genuine, or just unusual costume items. Could you be a dear and fetch one for me? Specifically, a <span class="black">black</span> one with <span class="white">white</span> lenses. Be sure to <span class="gold">wear it here</span>." <<elseif $_request.special is "gold accessories">> "There's a set of accessories being sold at the adult shop on Elk street. <u>It's a matching set of gold. Bracelets, anklets, and a choker.</u> Would you suffer such a gift for little old me? Of course, <span class="gold">I'd like to see you wearing them first</span>." <<else>> <<set $_outfit to $_request.details.outfit>> <<set $_shops to $_request.details.shops>> <<set $_shopPrimary to $_shops.includes("clothing") ? "clothing" : $_shops[0]>> <<set $_shopText to $_shops.filter(shop => shop !== $_shopPrimary)>> "There's <<if $_outfit>>an outfit<<else>>a piece of clothing<</if>> that caught my eye over at the <<= $_shopPrimary>> shop<<if $_shopText.length gte 1>>, although I believe it's also stocked at the <<= formatList($_shopText, "and")>> shop<<if $_shopText.length gte 2>>s<</if>><</if>>. <<set $_shoppingList to $_request.items.filter(piece => !piece.skip && !piece.alt)>> <<set $_plural to $_outfit || $_shoppingList[0].word is "n">> <<if $_outfit>> <span class="teal">It's a full set.</span> <</if>> <<set _shoppingListText to []>> <<for $_i to 0; $_i lt $_shoppingList.length; $_i++>> <<set $_colour to $_shoppingList[$_i].colour_requirement>> <<set $_colour_acc to $_shoppingList[$_i].acc_colour_requirement>> <<set $_word to $_shoppingList[$_i].word>> <<if $_colour isnot "any">> <<set $_firstWord to $_word is "n" ? "a set of" : ["a","e","i","o","u"].some(letter => $_colour.startsWith(letter)) ? "an" : "a">> <<set $_firstWord += " <span class='" + $_colour + "'>" + $_colour + "</span>">> <<set $_secondWord to $_colour_acc isnot "any" ? " with " + " <span class='" + $_colour_acc + "'>" + $_colour_acc + "</span> details" : "">> <<else>> <<set $_firstWord to $_word is "n" ? "a set of" : $_word>> <<set $_secondWord to "">> <</if>> <<set $_theName to "<u>" + $_shoppingList[$_i].name + "</u>">> <<set $_theRest to $_firstWord += " " + $_theName + $_secondWord>> <<set _shoppingListText.push($_theRest)>> <</for>> <<= formatList(_shoppingListText, "and", true).toUpperFirst()>>. <<if $_request.items.some(item => item.integrity_requirement isnot "any")>> <<set $_full to []>><<set $_frayed to []>><<set $_torn to []>><<set $_tattered to []>> <<for $_i to 0; $_i lt $_shoppingList.filter(items => items.integrity_requirement isnot "any").length; $_i++>> <<switch $_shoppingList[$_i].integrity_word>> <<case "full">><<set $_full.push($_shoppingList[$_i].name)>> <<case "frayed">><<set $_frayed.push($_shoppingList[$_i].name)>> <<case "torn">><<set $_torn.push($_shoppingList[$_i].name)>> <<case "tattered">><<set $_tattered.push($_shoppingList[$_i].name)>> <</switch>> <</for>> <<if $_full.length>> <<if $_full.length gt 1>>The <<print formatList($_full, "and")>> were<<elseif $_plural>>They were<<else>>It was<</if>> <span class="green">pristine</span>. <</if>> <<if $_frayed.length>> I'd like to see how <<if $_frayed.length gt 1>>the <<print formatList($_frayed, "and")>> look<<elseif $_plural>>they look<<else>>it looks<</if>> after a little bit of wear, maybe even <span class="teal">frayed</span>. <</if>> <<if $_torn.length>> Don't be afraid to take <<if $_torn.length gt 1>>the <<print formatList($_torn, "and")>><<elseif $_plural>>them<<else>>it<</if>> out around town, I'd like to see how <<if $_torn.length gt 1>>they look<<else>>it looks<</if>> <span class="purple">torn</span>. <</if>> <<if $_tattered.length>> Wear <<if $_tattered.length gt 1>>the <<print formatList($_tattered, "and")>><<elseif $_plural>>them<<else>>it<</if>> for a while, until <<if $_tattered.length gt 1 || $_plural>>they're<<else>>it's<</if>> in <span class="red">tatters</span>. <</if>> <</if>> <<set $_conclusions to [ "I bet you'll look great in <<if $_plural>>them<<else>>it<</if>>! Be sure to <span class='gold'>wear <<if $_plural>>them<<else>>it<</if>> here</span> so I can see.", "<span class='gold'>Wear <<if $_plural>>them<<else>>it<</if>> here,</span> if you would be so kind.", "If you could <span class='gold'>wear <<if $_plural>>them<<else>>it<</if>> here,</span> that would be wonderful.", ]>> <<if $gwylanSeen.includes("yearning") and $gwylan.timer.ritual and Time.date.dayDifference(new DateTime($gwylan.timer.ritual)) lte 0>> <<set $_conclusions.push("<span class='gold'>Wear <<if $_plural>>them<<else>>it<</if>> here,</span> and maybe I'll rip them right off of you.")>> <</if>> <<print $_conclusions.pluck()>> <<if $_request.details.replacements is "allowed">> <<if $_outfit>>They come<<else>>It comes<</if>> in a few different styles, <span class="green">any of them will do</span>." <<elseif $_request.details.replacements is "blocked">> <<if $_outfit>>They come<<else>>It comes<</if>> in a few different styles, <span class="red">so make sure you get the right one<<if $_plural>>s<</if>>.</span>" <<else>> <<print either("It should be easy enough.", "No fuss, no muss.", "Go on then, dear.", "I'll owe you.")>>" <</if>> <</if>> <br><br> <span class="gold">Gwylan's request has been added to your journal.</span> <<case "ingredients">> <<if $_request.special is "tutorial">> <<set $_shroomAmount to $_request.items.find(shroom => shroom.name === "wolfshroom").need>> "Do you know what wolfshrooms are?" <br><br> <<if $scienceshroomknown is 1 and $scienceproject is "ongoing">> You nod. "I was thinking about using them in my current science project at school," you say. "They were popular with warriors in ancient times." <br><br> "Wonderful! I'm low on stock, and could use a few. <<elseif $plants.wolfshroom.amount>> You nod. "I've picked them before." <br><br> "Wonderful! I'm low on stock, and could use a few. <<elseif currentSkillValue('science') gte 200>> You remember hearing about them from school, and nod. "They were prized by warriors in ancient times," you say. <br><br> "Wonderful! I'm low on stock, and could use a few. <<else>> You shake your head. <br><br> "They're curious little things. Brown stem with a bright red cap. I can tell you more about them later. <</if>> If you could go find <span class="gold"><<number $_shroomAmount>></span> for me, you'd be making my day much easier." <<elseif $_request.special is "plums">> "I... have a craving. If you could just be a dear and... and go get me a bunch of plums." <<He>> reaches forward and pinches your cheek. "Please?" <br><br> <<He>> loweers <<his>> hands, placing them over <<his>> <<bellyDescription "Gwylan">>. "Lots of them. I'm eating for two right now, after all." <<else>> <<set $_types to []>> <<run $_request.items.forEach(item => $_types.pushUnique(item.type))>> <<if $_types.length is 1>> <<switch $_types[0]>> <<case "flower">> "My garden needs some genetic diversity, so I've been meaning to pick some wild flowers. <<case "fruit">> "I need a bunch of fruit for <<print either("fermentation", "seed extraction", "juicing")>>. <<case "ingredient">> "I need some base ingredients for something I'm mixing together. <<case "produce">> "I need some produce to use as a binder for... well, don't worry about it." <<default>> "I need a few <<print $_types[0]>>. <</switch>> <<elseif $_request.items.every(item => setup.plants[item.name].shop is "supermarket")>> "I have a bit of a shopping list here. It's not the most exciting task, but you would be saving me a trip. <<else>> <<set $_typesPlural to []>> <<run $_types.forEach(type => { if (type === "produce") { $_typesPlural.pushUnique(type) } else { $_typesPlural.pushUnique(type + "s") } })>> <<set $_typesPlural.push("the like")>> <<print either(`"I'm in need of a few ingredients for... well, don't worry about it.`, `"I'm trying something new, so I need a few ingredients.`, `"I'm going to try to make something, so I need a few ingredients.`)>> <<print formatList($_typesPlural, "and", true).toUpperFirst()>>. <</if>> <<set $_names to []>> <<run $_request.items.forEach(item => { if (item.need > 1) { $_names.pushUnique("<<number " + item.need + ">> " + setup.plants[item.name].plural); } else { if (["a","e","i","o","u"].some(letter => item.name.startsWith(letter))) { $_names.pushUnique("an " + setup.plants[item.name].name.replace(/_/g," ")); } else { $_names.pushUnique("a " + setup.plants[item.name].name.replace(/_/g," ")); } } })>> <span class="gold">I need <<print formatList($_names, "and", true)>>.</span> If you could gather those for me, I would be very thankful." <</if>> <br><br> <span class="gold">Gwylan's request has been added to your journal.</span> <<case "sample">> <<if $gwylanSeen.includes("sample")>> <<if $gwylan.request.hold is "corruption">> "I'll need some fresh <span class="pink">fluid samples</span> to make new measuring charms." <<elseif $gwylan.timer.sample gt Time.date.timeStamp>> "I'd like to refresh the measuring charms before they burn out. I need another round of <span class="pink">fluid samples</span>." <<else>> "I need to replace the measuring charms. You know how this goes. I need some fresh <span class="pink">fluid samples</span>." <</if>> <<else>> <<if $gwylan.request.hold is "corruption">> "In order to measure the taint, I'll need some <span class="pink">fluid samples</span>." <<else>> "I need to measure the poison in the world. How fast it's growing, and how deep it runs. For this, I need some... samples." <<He>> clears <<his>> throat. <span class="pink">"Fluid samples."</span> <</if>> <</if>> <br><br> <<He>> vanishes into a dark room. You hear some clanging, and <<he>> shortly returns with some glass vials. "Not from you.<<if $gwylanSeen.includes("player_sample")>> Not this time, at least.<</if>> <<set $_sampleSpecies to []>><<set $_sampleLocations to []>> <<run $gwylan.request.items.forEach(item => { $_sampleSpecies.pushUnique(item.name); if (["human", "dog", "cat"].includes(item.name)) $_sampleLocations.pushUnique("town"); if (["wolf", "fox", "lizard", "boar", "bear", "plant"].includes(item.name)) $_sampleLocations.pushUnique("forest"); if (["hawk", "fox", "cat"].includes(item.name)) $_sampleLocations.pushUnique("moor"); if (["dolphin"].includes(item.name)) $_sampleLocations.pushUnique("ocean"); })>> <<if $_sampleSpecies.length is 1>> <<set $_thisSpecies to $gwylan.request.items[0]>> <<set $_thisColour to hasSexStat("deviancy", 3) ? "pink" : "red">> <<if $_thisSpecies.name is "wolf">> <<set $_thisColour to $syndromewolves gte 1 ? "green" : "red">> <</if>> <<switch $_thisSpecies.name>> <<case "human">>I need a diverse array of samples from the <span class="purple">people of the town</span>. <<case "wolf">>I need to determine the agitation level of the local <span @class="$_thisColour">wolf pack</span>. I'll need some samples from them. <<case "plant">>I need a large amount of nectar samples from the <span class="forest-green">dryads of the forest</span>. If they become tainted, things will become very grim. <<case "fox">>The <span @class="$_thisColour">foxes</span> of our forest may be clever, but not even they are immune to the poison. I'll need some samples from them, or from the ones out in the moor. <<case "cat">>There's an interesting reaction in feline species, so I need samples from <span @class="$_thisColour">large cats</span>. It doesn't matter whether they're from the town or moor. <<case "dolphin">>I worry that the poison has begun leaking into the ocean. I need samples from large marine mammals, such as <span @class="$_thisColour">dolphins</span>. <<default>> I need a diverse array of samples from the <span @class="$_thisColour"><<print $_thisSpecies.name + "s">></span> of the <<print formatList($_sampleLocations, "and", true)>>. <</switch>> <span class="gold"><<Number $_thisSpecies.need>></span> <<pluralise $_thisSpecies.need "sample" "samples">> should be enough." <<else>> I need some samples from the <<print formatList($_sampleLocations, "and", true)>>. Specifically, I need <<for $_s to 0; $_s lt $_sampleSpecies.length; $_s++>> <<set $_thisSpecies to $gwylan.request.items.find(species => species.name === $_sampleSpecies[$_s])>> <<switch $_thisSpecies.name>> <<case "wolf">><<set $_thisSpeciesPlural to "wolves">> <<case "fox">><<set $_thisSpeciesPlural to "foxes">> <<case "plant">><<set $_thisSpeciesPlural to "the dryads of the forest">> <<default>><<set $_thisSpeciesPlural to $_thisSpecies.name + "s">> <</switch>> <<switch $_thisSpecies.name>> <<case "human">><<set $_thisSpeciesColour to "purple">> <<case "wolf">><<set $_thisSpeciesColour to $syndromewolves gte 1 ? "green" : hasSexStat("deviancy", 3) ? "pink" : "red">> <<case "plant">><<set $_thisSpeciesColour to "forest-green">> <<default>><<set $_thisSpeciesColour to hasSexStat("deviancy", 3) ? "pink" : "red">> <</switch>> <span class="gold"><<number $_thisSpecies.need>></span> <<if $_thisSpecies.name is "plant">> nectar <<else>> <<if maleChance() >= 100>> semen <<else>> fluid <</if>> <</if>> <<pluralise $_thisSpecies.need "sample" "samples">> from <span @class="$_thisSpeciesColour"><<print $_thisSpeciesPlural>></span><<if $_s is $_sampleSpecies.length - 2>>, and<<elseif $_s is $_sampleSpecies.length - 1>>."<<else>>,<</if>> <</for>> <</if>> <br><br> <<He>> hands you more vials than you need. <<if $_sampleSpecies.length gt 1>>Each one is labelled with the name of a sample source.<</if>> <<if $gwylanSeen.includes("sample")>> "I know you can handle this. You're strong. <<if $gwylanSeen.includes("romance") or _gwylanStatus.includes("dom")>> Still, be safe and come back to me in one piece." <<else>> Still, be safe." <</if>> <<else>> "I'm sorry to ask something so dangerous of you. I can't just use the fluids of those I lure here, as those are always oversaturated. The reading wouldn't be accurate. I wouldn't be asking if it wasn't important." <<He>> gives you an encouraging smile. "Be safe, please." <</if>> <br><br> <<if $gwylan.request.items.some(item => item.name === "plant")>> <<if $gwylanSeen.includes("plantperson_tip")>> <<He>> quickly turns back to you once more. "Oh, remember. You can harvest nectar from the <span class="green">vines</span> of the dryads too. You'll get a lot more that way." <<else>> <<set $gwylanSeen.pushUnique("plantperson_tip")>> <<He>> quickly turns back to you once more. "Oh, one more thing. You can harvest nectar from the <span class="green">vines</span> of the dryads too. You'll get a lot more that way." <</if>> <br><br> <</if>> <span class="gold">Gwylan's request has been added to your journal.</span> <<case "samplePlayer">> /* ToDo: Gwylan */ <<case "preen">> <<if $harpy gte 6>> "I'd like to preen your wings. <<if !$gwylanSeen.includes("preen")>> <<set $gwylanSeen.pushUnique("preen")>> They're very pretty, and I could use some of the feathers." <<else>> I need to restock on feathers." <</if>> <<else>> <<set $_featherCount to $gwylan.request.items.find(feather => feather.name === "feathers").need>> "I need some of the hawk's feathers. They're a very valuable ingredient. <span class="gold"><<Number $_featherCount>></span> should be enough." <br><br> <span class="gold">Gwylan's request has been added to your journal.</span> <</if>> <<case "cream">> "You've been very helpful to me lately. I think you deserve a treat. <<if $gwylanSeen.includes("cream_lick")>> <<if $cat gte 6>> <span class="lewd">I'd like to see you put that rough tongue to work again, cat<<girl>>,</span>" <<he>> says with a flushed smile. "Last time was so much fun! I've got more cream to use, too." <<else>> <span class="lewd">I'd like to see you put that tongue to work again,</span>" <<he>> says with a flushed smile. "Last time was so much fun! I've got more cream to use, too." <</if>> <<elseif $gwylanSeen.includes("nectar_lick")>> <<if $cat gte 6>> <span class="lewd">I'd like to see you put that rough tongue to work again, cat<<girl>>,</span>" <<he>> says with a flushed smile. "Last time was so much fun! I can't spare any nectar this time, but I've got some cream." <<else>> <span class="lewd">I'd like to see you put that tongue to work again,</span>" <<he>> says with a flushed smile. "Last time was so much fun! I can't spare any nectar this time, but I've got some cream." <</if>> <<else>> <<if $cat gte 6>> I... <span class="lewd">would like to see what that cat tongue of yours can do</span>," <<he>> says with a flushed smile. "I've got some cream for you." <<else>> I have a fun idea," <<he>> says with a flushed smile. "I've got some cream from the cafe, and... no, it should be a surprise." <</if>> <</if>> <br><br> <<His>> eyes remain locked on you. "Just let me know when you're ready. It may become... messy." <<case "robin">> /* ToDo: Gwylan */ <<default>> Gwylan opens <<his>> mouth to speak. <<He>> opens <<his>> mouth, and holds it. <<He>> then sneezes. <br><br> "Sorry, what were we talking about?" <br><br> <span class="red">This is a bug. Please report this.</span> <</switch>> <</widget>> <<widget "gwylanRequestEnd">> <<set $_skip to _args[0] is "skip" ? true : false>> <<set $_silent to _args[0] is "silent" ? true : false>> <<if !$_skip and $gwylan.request.event>> <<set $gwylan.requestDone to true>> <<set $gwylan.requestCount++>> <<set $daily.gwylan.request to true>> <<if !$_silent>> <<if !$gwylanSeen.includes("request_intro")>> <<set $_requestBr to true>> <<set $gwylanSeen.pushUnique("request_intro")>> <<He>> places <<his>> hand under <<his>> chin in thought as <<he>> looks you over. <<if $gwylan.request.hold>> "I know you already had something you wanted help with, but there's more I can do. <<else>> "There is something particular I may be able to do for you. <</if>> <span class="blue">If you ever have troubles with sleep, I know a technique that can help.</span> On a related note, <span class="blue">if you ever find yourself entranced by someone else's words, come talk to me.</span> I know ways of <span class="pink">overwriting and erasing</span> such hypnotic impulses." <<elseif $gwylan.request.hold>> <<set $_requestBr to true>> <<He>> puts <<his>> elbows on the counter. <<switch $gwylan.request.hold>> <<case "peace">>"You had asked me about bringing peace to your inner self." <<case "silence">>"We can silence that pest in your ear, now." <<case "slumber">>"You said you were having sleep troubles." <<case "insight">>"You said you were seeing things?" <<case "chastity">>"You wanted help removing a restrictive device, right?" <<case "familiar">> <<if $worn.neck.name is "familiar collar" and $worn.neck.cursed is 1>> "You said you wanted me to release your collar?" <<else>> "You said you wanted me to release your collar, right? It looks like you don't need help with that anymore." <</if>> <<case "petBed">>"I'll drag your bed back out right away, if you'd like." <<default>>"You already had something in mind, right?" <</switch>> <</if>> <</if>> <<if $hypnosis_traits.devotion>> <<if $_requestBr>> <br><br> <</if>> <<switch $hypnosis_traits.devotion>> <<case 1>> <<hypnosisText "<span class='lblue'>Completing Gwylan's request fills you with a strange sense of satisfaction.</span><<stress -3>><<trauma -3>><<lstress>><<ltrauma>>">> <<case 2>> <<hypnosisText "<span class='teal'>Completing Gwylan's request fills you with satisfaction.</span><<stress -6>><<trauma -6>><<lstress>><<ltrauma>>">> <<case 3>> <<hypnosisText "<span class='green'>Gwylan smiles at you proudly. It makes you feel warm and fulfilled.</span><<stress -6>><<trauma -10>><<hallucinogen 50>><<lstress>><<lltrauma>><<ghallucinogens>>">> <<case 4>> <<hypnosisText "<span class='purple'>Gwylan's warm smile makes your heart skip a beat. You've made <<him>> happy, which makes you happy in turn.</span><<trauma -12>><<arousal 1000>><<hallucinogen 80>><<lltrauma>><<garousal>><<ghallucinogens>>">> <<default>> <<hypnosisText "<span class='pink'>Gwylan's proud smile nearly brings you to your knees. You're awash with primal fulfillment.</span><<trauma -16>><<arousal 3000>><<drugs 80>><<lltrauma>><<gggarousal>><<gdrugged>>">> <</switch>> <</if>> /* Save as recently completed task for use later */ <<set $gwylan.timer[$gwylan.request.event] to new DateTime(Time.date).addDays(14).timeStamp>> <<set $gwylan.timer.requestLast to Time.date.timeStamp>> <</if>> <<set $gwylan.requestLast to $gwylan.request>> <<set $gwylan.request to {}>> <<if $gwylan.requestSeed isnot undefined>> <<set $_seedIncrement to 0.001>> <<set $gwylan.requestSeed to (($gwylan.requestSeed - 0.25 + $_seedIncrement) % (0.99 - 0.25)) + 0.25>> <</if>> <</widget>> <<widget "gwylanChastityRequest">> <<set $_consensual to _args[0] or 0>> <<if $_consensual is 0 or _gwylanStatus.includes("lust")>> <<if !$gwylan.request.event>> <<He>> thinks for a moment, then smiles. <br><br> "<<pcPetname "Gwylan">>, either get that chastity device removed, or come see me later and I'll break it off of you." <<run gwylanRequest("chastity")>> <<set V.gwylan.request.command to true>> <<set V.gwylan.request.timer = new DateTime(Time.date).addDays(1).timeStamp>> <<if $combat is 1>><<npcincr Gwylan lust 10>><</if>> /* Partially negates lust loss from ejaculation */ <br><br> <span class="gold">Gwylan's request has been added to your journal.</span> <<elseif $gwylan.request.event is "chastity" and $gwylan.request.command>> <<He>> looks down at you with a hint of annoyance. "I told you to remove that." <<else>> <<He>> looks down, annoyed. <</if>> <</if>> <</widget>> <<widget "gwylanJournalItems">> <<set $_itemsToList to $gwylan.request.items?.filter(item => !item.skip && !item.alt)>> <<if $_itemsToList?.length>> <<for $_requestIndex to 0; $_requestIndex lt $_itemsToList.length; $_requestIndex++>> <<set $_thisItem to $_itemsToList[$_requestIndex]>> <<switch $_thisItem.category>> <<case "clothing">> <<set $_thisItemSetup to clone(setup.clothes[$_thisItem.slot].find(it => it.name === $_thisItem.name))>> <<set $_thisItemSetup.colour to $_thisItem.colour_requirement isnot "any" ? $_thisItem.colour_requirement : $_thisItemSetup.colour_options.random()>> <<set $_thisItemSetup.accessory_colour to $_thisItem.acc_colour_requirement isnot "any" ? $_thisItem.acc_colour_requirement : $_thisItemSetup.accessory_colour_options.random()>> <<if gwylanRequestClothingSlotCheck($_thisItem.slot)>> <span class='fa-icon fa-selected'></span> <<else>> <span class='fa-icon fa-unselected'></span> <</if>> <<clothingicon $_thisItemSetup $_thisItem.slot>> <<print $_thisItemSetup.name_cap>> <<if $_thisItem.slot is "neck" and $worn.neck.name is "familiar collar" and $worn.neck.cursed is 1>> <span class="forest-green">or your familiar collar</span> <<elseif $_thisItemSetup.shopGroup and $gwylan.request.details?.replacements is "allowed">> <span class="green">or a variant</span> <<elseif $_thisItemSetup.shopGroup and $gwylan.request.details?.replacements is "blocked">> <span class="red">(specific variant)</span> <</if>> <<if $_thisItem.colour_requirement is "any" and $_thisItem.acc_colour_requirement is "any" and ($_thisItemSetup.colour_options.length or $_thisItemSetup.accessory_colour_options.length)>> (any colours) <<elseif $_thisItemSetup.colour_options.length or $_thisItemSetup.accessory_colour_options.length>> (<<if $_thisItemSetup.colour_options.length>><span @class='$_thisItem.colour_requirement'><<print $_thisItem.colour_requirement>> primary</span><</if>><<if $_thisItemSetup.colour_options.length and $_thisItemSetup.accessory_colour_options.length>> and <</if>><<if $_thisItemSetup.accessory_colour_options.length>><span @class='$_thisItem.acc_colour_requirement'><<print $_thisItem.acc_colour_requirement>> accessory</span><</if>>) <</if>> <<if ["upper", "lower", "under_upper", "under_lower"].includes($_thisItem.slot)>> <<switch $_thisItem.integrity_word>> <<case "any">>(any condition) <<case "full">><span class="green">(full)</span> <<case "frayed">><span class="teal">(frayed)</span> <<case "torn">><span class="purple">(torn)</span> <<case "tattered">><span class="red">(tattered)</span> <</switch>> <</if>> <<case "tending">> <<set $_itemAmount to $plants[$_thisItem.name].amount>> <<if $gwylan.request.special is "tutorial">> <<set $_itemAmount += $gwylanTutorialShrooms>> <</if>> <<if $_itemAmount gte $_thisItem.need>> <span class='fa-icon fa-selected'></span> <<else>> <span class='fa-icon fa-unselected'></span> <</if>> <<set $_thisItemIcon to setup.plants[$_thisItem.name].icon.replace(/\.[^/.]+$/, "")>> <<tendingicon $_thisItemIcon>> <<number $_thisItem.need>> <<if $_thisItem.need gt 1>> <<print setup.plants[$_thisItem.name].plural>> <<else>> <<print setup.plants[$_thisItem.name].name.replace(/_/g," ")>> <</if>> <<if $_itemAmount gte $_thisItem.need>> <span class='green'>($_itemAmount / $_thisItem.need)</span> <<elseif $_itemAmount is 0>> <span class='red'>($_itemAmount / $_thisItem.need)</span> <<else>> <span class='blue'>($_itemAmount / $_thisItem.need)</span> <</if>> <<case "sample">> <<if $_thisItem.have gte $_thisItem.need>> <span class='fa-icon fa-selected'></span> <<else>> <span class='fa-icon fa-unselected'></span> <</if>> <span class="gold"><<Number $_thisItem.need>></span> <<if $_thisItem.name is "plant">> nectar <<elseif maleChance() gte 100>> semen <<else>> lewd fluid <</if>> <<pluralise $_thisItem.need "sample" "samples">> from <<set $_sampleColour to $_thisItem.name is "wolf" and $syndromewolves gte 1 ? "green" : hasSexStat("deviancy", 3) ? "pink" : "red">> <<switch $_thisItem.name>> <<case "human">><span class="purple">humans</span>. <<case "plant">><span class="forest-green">plantpeople,</span> or their tentacles. <<case "wolf">><span @class="$_sampleColour">wolves</span>. <<case "fox">><span @class="$_sampleColour">foxes</span>. <<default>><span @class="$_sampleColour"><<print $_thisItem.name + "s">></span>. <</switch>> <<if $_thisItem.have lt $_thisItem.need>> You have <span class="blue"><<number $_thisItem.have>></span>. <</if>> <<default>> <</switch>> <br> <</for>> <</if>> <</widget>><<effects>><<run statusCheck("Gwylan")>> <<if $daily.gwylan.eventCancelled and $hypnosis_traits.devotion gte 1 and !$willpowerSuccess>> You try to turn to leave, <<hypnosisText "but you quickly lose your train of thought. It's replaced by another. What else is there for you to do today? You're not busy. There's work to be done here.">> <br><br> Gwylan smiles sweetly. It makes your chest flutter. <br><br> <<link [[Tell <<him>> you want to help (?:??)|Gwylan Forest Journey Prep]]>><<gwylanRequestEnd "skip">><<endevent>><<set $ritualForced to true>><</link>> <br> <<else>> <<if $daily.gwylan.eventCancelled and $hypnosis_traits.devotion gte 1>> <span class="green">You shake off the compulsion to go with Gwylan.</span> <</if>> <<He>> frowns. "Very well. Come back when you're ready." <br><br> <<link [[Next|Forest Shop Entrance]]>><<endevent>><<set $daily.gwylan.eventCancelled to true>><</link>> <br> <</if>><<effects>><<run statusCheck("Gwylan")>> <<npc Gwylan>><<person1>> <<set _hideRitualOptions to true>> <<if !$gwylanSeen.includes("ritual_beast")>> You tell Gwylan that you're ready to help. <br><br> <<elseif !$gwylanSeen.includes("ritual_sex_intro")>> You tell Gwylan that you want to help with <<his>> ritual. <br><br> <<elseif !$ritualForced>> You tell Gwylan that you'd rather lure one of the forest's denizens for purging. <br><br> <</if>> <<if Time.isBloodMoon() or Time.monthDay is Time.lastDayOfMonth and Time.hour gte 16>> <<set _ritualFailSafe to true>><<unset $ritualForced>> <<He>> shakes <<his>> head. "Not now. Not on nights like tonight. It's too dangerous." <br><br> <<gwylanOptions>> <<elseif Time.hour lte 8>> <<set _ritualFailSafe to true>><<unset $ritualForced>> <<set $daily.gwylan.ritualRequestBlocked to true>> <<He>> yawns. "Too early. Breakfast first.<<if $gwylan_cafe_intro>> Meet me at the cafe later?<</if>>" <br><br> <<gwylanOptions>> <<elseif $worn.feet.type.includes("heels") and !$ritualForced>> <<set _ritualFailSafe to true>> <<He>> leans forward, looking down at your $worn.feet.name. "You'll break an ankle moving through the forest in those heels! Go grab a pair of proper shoes or boots," <<he>> scolds. <br><br> <<gwylanOptions>> <<elseif $exposed gte 1 and !$ritualForced>> <<set _ritualFailSafe to true>><<unset $ritualForced>> <<He>> looks you over. "I'd recommend putting on some more clothes before we go." <br><br> <<gwylanOptions>> <<elseif !isBeastSceneAllowed() and !$settings.plantsEnabled>> <<set _ritualFailSafe to true>><<unset $ritualForced>> <<He>> frowns. "You look nervous. We'll be dealing with the <span class="blue">natural denizens of the forest</span>, and you don't look prepared to come to terms with that. Try <span class="blue">opening your mind,</span> then come back. <br><br> <i><span class="blue">Beasts, monsterpeople or plantpeople must be enabled to continue.</span></i> <br><br> <<gwylanOptions>> <<else>> <<set $beastRitual to { lure: "wolf", person: "Gwylan", difficultyMin: 550, difficultyMax: 850, binding: "none", petplay: 0, hasScent: false }>> <<if _gwylanTF.known>> <<set $beastRitual.difficultyMin += 150>><<set $beastRitual.difficultyMax += 300>> <</if>> <<if !$gwylanSeen.includes("ritual_beast")>> <<He>> clasps <<his>> hands together. "Wonderful! I'm excited, I can't remember the last time I had help with this. We'll be going deeper into the forest. By the end of the day, your curiosity should be sated." <<elseif $gwylanSeen.includes("struggles") and !$gwylanSeen.includes("ritual_sex_intro") and !_gwylanStatus.includes("cautious")>> <<He>> nods. "<span class="blue">There's something I want to talk to you about when we're done.</span> It can wait, though. Let me go get ready." <<He>> returns a few minutes later wearing a dark green belted tunic. Several bags, vials, and a sheathed knife adorn it. "Thanks for coming along. Let's go!" <<else>> <<He>> nods and heads to the back of the shop. "Give me a few minutes to get ready." <<He>> returns a few minutes later wearing a dark green belted tunic. Several bags, vials, and a sheathed knife adorn it. "Thanks for coming along. Let's go!" <</if>> <<if $ritualForced>> <<He>> pats you on the head. <<stress -1>><<lstress>> <</if>> <<unset $ritualForced>> <br><br> <<if $worn.feet.type.includes("heels")>> <<set _linebreak to true>> <<He>> glances down at your $worn.feet.name. "Take those off, you'll break an ankle running around the forest with those," <<he>> scolds. <<if $hypnosis_traits.devotion gte 1>> <<hypnosisText "You follow <<his>> command, not wanting to disappoint <<him>>.">> <<else>> <<Hes>> probably right. You stow away your $worn.feet.name and decide to go barefoot. <</if>> <<feetundress "gwylanRitual">> <<elseif $worn.upper.type.includes("athletic") and $worn.lower.type.includes("athletic")>> <<set _linebreak to true>> <<He>> looks over your clothing. "Good choice, that looks easy to move around in." <<if $worn.feet.type.includes("rugged")>> <<He>> then glances down at your $worn.feet.name. "Those will hold up well in the forest, too." <</if>> <<elseif $worn.feet.type.includes("rugged")>> <<set _linebreak to true>> <<He>> leans forward, looking down at your $worn.feet.name. "Good choice, those will hold up well in the forest." <</if>> <<if $leftarm is "bound" or $rightarm is "bound" or $feetuse is "bound">> <<set _linebreak to true>> As <<he>> passes you by, <span class="green">you feel your bindings come loose.</span> "Can't have you running around like that." <<unbind>> <</if>> <<set _petplayChance to 0>> <<if $gwylanSeen.includes("ritual_sex")>> <<if $worn.neck.name is "familiar collar" and $worn.neck.cursed is 1>> <<set _petplayChance to 100>> <<elseif _gwylanStatus.includesAny("dom", "lust")>> <<if $wolfgirl gte 6 or $cat gte 6 or $fox gte 6>> <<set _petplayChance += 20>> <</if>> <<set _petplayChance += Math.floor((C.npc.Gwylan.lust + C.npc.Gwylan.dom) / 2)>> <<if $worn.neck.collared is 1>> <<set _petplayChance += 20>> <<if $worn.neck.type.includes("leash")>> <<set _petplayChance += 10>> <</if>> <</if>> <<if $hypnosis_traits.devotion>> <<set _petplayChance += $hypnosis_traits.devotion * 10>> <</if>> <</if>> <</if>> <<if _petplayChance gte random(1, 100)>> <<if $worn.neck.name is "familiar collar" and $worn.neck.cursed is 1>> <<set _petplayOption to "command">> You feel your collar get tugged as your leash appears. "Does <<pcpetname "Gwylan" "my">> want a walk? <<gwylanCommand "Sit." 1>>" <<attach_leash true>><<set $beastRitual.leash to true>> <<set $gwylanSeen.pushUnique("petplay")>> <<set _linebreak to true>> <<elseif $worn.neck.collared is 1>> <<set _petplayOption to "ask">> <<if $worn.neck.type.includes("leash")>> <<set $beastRitual.binding to "leash">> You feel a tug on your leash as Gwylan walks past you. <<else>> Gwylan stops and slips <<his>> hand along your collar as <<he>> walks by. <</if>> "Aww, you came prepared! Does <<pcpetname "Gwylan" "my">> want a walk?<<if !$worn.neck.type.includes("leash")>> I know I have some leashes lying around. It'll stop us from being separated again.<</if>>" <<if !$gwylanSeen.includes("petplay")>> You can't tell if <<hes>> joking. <</if>> <<if !$worn.neck.type.includes("leash")>> <<if !$gwylanSeen.includes("petplay")>> <<He>> begins to rummage around behind a shelf, which immediately tells you that <<he>> isn't. <<else>> <<He>> begins to rummage around behind a shelf. <</if>> A moment later <<he>> walks back up to you, and you hear a small click. <span class="lewd"><<Hes>> attached a leash to your collar.</span> <<attach_leash true>><<set $beastRitual.leash to true>> <<elseif !$gwylanSeen.includes("petplay")>> The look on <<his>> face turns seductive, which tells you that <<he>> isn't. <</if>> <<npcincr Gwylan lust 2>><<glust>> <<if _gwylanStatus.includesAny("dom", "lust")>> <<set _petplayOption to "command">> <br><br> <<He>> wraps the leash around <<his>> hand, pulling you a little closer. "<<gwylanCommand "Sit." 1>>" <</if>> <<set $gwylanSeen.pushUnique("petplay")>> <<set _linebreak to true>> <<elseif !$worn.neck.cursed>> <<set _petplayOption to "ask">> <<set $beastRitual.binding to "leash">> <<if $worn.neck.name is "naked">> You feel something click around your neck. <<else>> You feel your $worn.neck.name lift away, and hear a click as something takes its place. <<neckundress "gwylanRitual">> <</if>> <span class="lewd">It's a collar with a leash.</span> It looks very well cared for. You're gently tugged by it. "Come on, <<pcpetname "Gwylan">>, it's time for a walk!" <<He>> giggles. <<neckwear 21>><<set $beastRitual.collared to true>> <<if _gwylanStatus.includesAny("dom", "lust")>> <<set _petplayOption to "command">> <br><br> <<He>> wraps the leash around <<his>> hand, pulling you a little closer. "But first... <<gwylanCommand "sit." 1>>" <<else>> "I can't have us getting separated again." <</if>> <<set $gwylanSeen.pushUnique("petplay")>> <<set _linebreak to true>> <</if>> <</if>> <<if _linebreak>><br><br><</if>> <<if _petplayOption is "command">> <<link [[Sit|Gwylan Forest Journey Pet]]>><<set $phase to 1>><</link>> <br> <<link [[Stay standing|Gwylan Forest Journey Pet]]>><<set $phase to 2>><</link>><<gwylanWillpowerDifficulty>> <br> <<if $wolfgirl gte 6>> <<link [[Sit and beg like a dog|Gwylan Forest Journey Pet]]>><<sub 1>><<set $phase to 3>><<npcincr Gwylan lust 2>><</link>><<wolfgirl>><<glust>> <br> <<elseif $cat gte 6>> <<link [[Roll over and stretch like a cat|Gwylan Forest Journey Pet]]>><<sub 1>><<set $phase to 3>><<npcincr Gwylan lust 2>><<transform cat 1>><</link>><<cat>><<glust>> <br> <<else>> <<link [[Sit and beg like a dog|Gwylan Forest Journey Pet]]>><<sub 1>><<set $phase to 3>><<npcincr Gwylan lust 2>><</link>><<deviant1>><<glust>> <br> <</if>> <<else>> <<if $gwylanSeen.includes("romance") or C.npc.Gwylan.dom gte random(20, 100) and $gwylanSeen.includes("forest_journey_handheld")>> <<if $beastRitual.binding is "leash">> <<set $beastRitual.binding to "both">> <<He>> holds your leash with one hand, and takes your hand in <<his>> other. <<He>> leads you out of the shop and into the forest. <<takeHandholdingVirginity "Gwylan" "consensual">> <<else>> <<set $beastRitual.binding to "handheld">> <<He>> takes your hand in <<his>> as <<he>> leads you out of the shop and into the forest. <<takeHandholdingVirginity "Gwylan" "consensual">> <</if>> <<elseif $beastRitual.binding is "leash">> <<He>> pinches your cheek. "Stay close, <<pcpetname "Gwylan" "simple">>." You leave the shop, and head out into the forest with <<him>>, led by your leash. <<else>> <<He>> pinches your cheek. "Stay close, I don't want you getting lost." You leave the shop, and head out into the forest with <<him>>. <</if>> <br><br> <<link [[Walk silently|Gwylan Forest Journey 2]]>><<pass 20>><<set $phase to 1>><</link>> <br> <<if !$gwylanSeen.includes("ritual_beast")>> <<link [[Ask <<him>> for details on what you'll be doing|Gwylan Forest Journey 2]]>><<pass 20>><<set $phase to 2>><</link>> <<else>> <<link [[Chat while walking|Gwylan Forest Journey 2]]>><<pass 20>><<set $phase to 3>><</link>> <</if>> <br> <<if $beastRitual.binding isnot "handheld">> <<link [[Take <<his>> hand|Gwylan Forest Journey 2]]>><<pass 20>><<set $phase to 4>><<if C.npc.Gwylan.dom lt 10>><<npcincr Gwylan dom 1>><</if>><</link>><<if C.npc.Gwylan.dom lt 10>><<gyearning>><</if>><<handholdingvirginitywarning>> <br> <</if>> <<if _petplayOption is "ask">> <<if hasSexStat("deviancy", 2)>> <<link [[Let <<him>> walk you like a dog|Gwylan Forest Journey 2]]>><<sub 1>><<pass 20>><<set $phase to 5>><<npcincr Gwylan lust 2>><</link>><<glust>><<deviant2>> <br> <<else>> <<insufficientStat "deviancy" "to let <<him>> walk you like a dog">> <</if>> <</if>> <</if>> <</if>><<effects>><<run statusCheck("Gwylan")>> <<set $beastRitual.binding to "leash">> <<if $phase is 1 or $phase is 2 and $hypnosis_traits.devotion gte 1 and !$willpowerSuccess>> /* Sit */ <<if $phase is 2 and $hypnosis_traits.devotion gte 1 and !$willpowerSuccess>> <<set $beastRitual.disobey to true>> You try to resist the compulsion. <<gwylanHypnoName "cap">>'s smile shallows ever so slightly, and it <span class="red">fills you with guilt</span>. <<hypnosisText "Your knees buckle, and you stumble into sitting.">> <br><br> "<<pcPetname "Gwylan" "bad">>, trying to resist me. I might need to punish you for that." <<He>> pats you on the head. <<if $phase is 1 and $hypnosis_traits.devotion gte 1>><<trauma -2>><<ltrauma>><</if>> <<else>> <<set $beastRitual.petplay++>> You sit on the floor of the shop. <br><br> "<<pcPetname "Gwylan" "good">>." <<He>> pats you on the head. <<if $phase is 1 and $hypnosis_traits.devotion gte 1>><<trauma -2>><<ltrauma>><</if>> <</if>> <br><br> "Come on, we have work to do." <<He>> pinches your cheek. "Stay close, <<pcpetname "Gwylan" "simple">>." You leave the shop, and head out into the forest with <<him>>, led by your leash. <br><br> <<link [[Walk silently|Gwylan Forest Journey 2]]>><<pass 20>><<set $phase to 1>><</link>> <br> <<link [[Chat while walking|Gwylan Forest Journey 2]]>><<pass 20>><<set $phase to 3>><</link>> <br> <<link [[Take <<his>> hand|Gwylan Forest Journey 2]]>><<pass 20>><<set $phase to 4>><<if C.npc.Gwylan.dom lt 10>><<npcincr Gwylan dom 1>><</if>><</link>><<if C.npc.Gwylan.dom lt 10>><<gyearning>><</if>><<handholdingvirginitywarning>> <br> <<if hasSexStat("deviancy", 2)>> <<link [[Let <<him>> walk you like a dog|Gwylan Forest Journey 2]]>><<sub 1>><<pass 20>><<set $phase to 5>><<npcincr Gwylan lust 2>><</link>><<glust>><<deviant2>> <br> <<else>> <<insufficientStat "deviancy" "to let <<him>> walk you like a dog">> <</if>> <<elseif $phase is 2>> /* Stay standing */ <<if $hypnosis_traits.devotion gte 1 and $willpowerSuccess>> You try to resist the compulsion. Gwylan's smile shallows ever so slightly, <span class="green">but you remain standing</span>. <<else>> You don't respond to Gwylan's command at all. <</if>> <<if C.npc.Gwylan.dom gte 50>> <<set $beastRitual.disobey to true>> <<He>> smiles again. "Ooh, being a <<pcpetname "Gwylan" "naughty">>? I'll have to think up a punishment for you," <<he>> says with a giggle as <<he>> tugs your leash. "Come on, we have work to do." <<else>> <<He>> frowns. "Fine. I'm still holding your leash, though. Come on, we have work to do." <</if>> <<He>> pinches your cheek. "Stay close, <<pcpetname "Gwylan" "simple">>." You leave the shop, and head out into the forest with <<him>>, led by your leash. <br><br> <<link [[Walk silently|Gwylan Forest Journey 2]]>><<pass 20>><<set $phase to 1>><</link>> <br> <<link [[Chat while walking|Gwylan Forest Journey 2]]>><<pass 20>><<set $phase to 3>><</link>> <br> <<link [[Take <<his>> hand|Gwylan Forest Journey 2]]>><<pass 20>><<set $phase to 4>><<if C.npc.Gwylan.dom lt 10>><<npcincr Gwylan dom 1>><</if>><</link>><<if C.npc.Gwylan.dom lt 10>><<gyearning>><</if>><<handholdingvirginitywarning>> <br> <<else>> /* Beast tf or deviancy petplay */ <<set $beastRitual.petplay += 2>> <<if $wolfgirl gte 6>> You sit like a dog, placing your arms up against your chest as if you're begging.<<if $transformationParts.wolf.tail isnot "hidden">> Your tail wags behind you.<</if>> You stick your tongue out and pant, looking up to <<gwylanHypnoName>> with submission. <<He>> crouches down to your level, and starts to pet you. <<elseif $cat gte 6>> You sit, before flopping over and stretching out like a cat. <<gwylanHypnoName "cap">> crouches down and starts to scratch your <<bellyDescription>>. <<else>> You sit like a dog, and let out a mock bark. You place your arms up against your chest as if you're begging, looking up to <<gwylanHypnoName>> with submission. <<deviancy1>> <</if>> "Aww, who's my <<pcpetname "Gwylan" "good">>?" <<if $hypnosis_traits.devotion gte 1>><<His>> touch fills you with bliss. <<stress -3>><<trauma -3>><<lstress>><<ltrauma>><</if>> <br><br> "I'd enjoy staying like this, but we have work to do." <<He>> whistles and tugs your leash. <br><br> <<link [[Stand up and walk silently|Gwylan Forest Journey 2]]>><<pass 20>><<set $phase to 1>><</link>> <br> <<link [[Stand up and chat while walking|Gwylan Forest Journey 2]]>><<pass 20>><<set $phase to 3>><</link>> <br> <<link [[Stand up and take <<his>> hand|Gwylan Forest Journey 2]]>><<pass 20>><<set $phase to 4>><<if C.npc.Gwylan.dom lt 10>><<npcincr Gwylan dom 1>><</if>><</link>><<if C.npc.Gwylan.dom lt 10>><<gyearning>><</if>><<handholdingvirginitywarning>> <br> <<if hasSexStat("deviancy", 2)>> <<link [[Follow on all fours|Gwylan Forest Journey 2]]>><<sub 1>><<pass 20>><<set $phase to 5>><<npcincr Gwylan lust 2>><</link>><<glust>><<deviant2>> <br> <<else>> <<insufficientStat "deviancy" "to stay on all fours while following <<him>>">> <</if>> <</if>><<set $outside to 1>><<set $location to "forest">><<effects>><<run statusCheck("Gwylan")>> <<if $worn.feet.type.includes("rugged") and $phase isnot 5>> <<set $beastRitual.difficultyMin -= 50>><<set $beastRitual.difficultyMax -= 50>> <</if>> <<if $phase is 1>> You stay quiet as you walk further into the forest. Gwylan marches forward, humming a tune. <br><br> <<He>> turns and faces you, now walking backwards. "You don't need to be so quiet. In fact, sometimes it's better to make a little noise. It'll keep the bears away." <<He>> turns back around. <<elseif $phase is 2>> Gwylan marches forward, humming a tune. <br><br> <<switch $speech_attitude>> <<case "meek">> "Can you please tell me what we're doing now?" you ask. <<case "bratty">> "Alright, spit it out, what are we doing?" you ask. <<default>> "Are you going to keep being secretive?" you ask. <</switch>> <br><br> <<He>> turns and faces you, now walking backwards. "Tsk tsk, all the more curious! That's what I like about you. Be patient." <<elseif $phase is 3>> You chatter with <<him>> as you walk through the forest. <<He>> does a lot of the talking, and you're fine listening. <<elseif $phase is 4>> Gwylan marches forward, humming a tune. <br><br> <<if $gwylanSeen.includes("forest_journey_handheld")>> <<set $gwylanSeen.pushUnique("forest_journey_handheld")>> You walk beside <<him>> and hold your hand out, grabbing one of <<hers>>. <<takeHandholdingVirginity "Gwylan" "consensual">> <span class="teal"><<He>> hesitantly squeezes yours back.</span> <<else>> You walk beside <<him>> and hold your hand out, grabbing one of <<hers>>. <<takeHandholdingVirginity "Gwylan" "consensual">> <<He>> stops humming, but keeps walking. <span class="teal"><<He>> hesitantly squeezes your hand back.</span> <<if $beastRitual.binding isnot "leash">> "Good idea, we're less likely to get separated this way." <</if>> <<He>> starts humming again after a short while. <</if>> <<if $beastRitual.binding is "leash">> <<set $beastRitual.binding to "both">> <<else>> <<set $beastRitual.binding to "handheld">> <</if>> <<else>> <<if $beastRitual.petplay is 2>> You remain on your hands and knees as you follow Gwylan out of the shop. <<else>> You get on your hands and knees, and follow Gwylan. <</if>> <<He>> doesn't seem to notice at first, humming a tune as <<he>> marches ahead. <<He>> turns and faces you, immediately coming to a stop. <<deviancy2>> <<He>> stares a moment, before giggling. <<if $beastRitual.petplay is 2>> "You're so eager." <<He>> crouches down and starts to pet you all over. "I like it. Keep being so good and maybe you'll get a treat later." <<He>> stands and tugs your leash again, and the two of you continue on. Your hands and knees quickly tire, so you stand up and walk the rest of the way. <<else>> "Aww, who's my <<pcpetname "Gwylan" "good">>?" <<He>> crouches down and starts to pet you all over. <<if $hypnosis_traits.devotion gte 1>><<His>> touch fills you with bliss. <<stress -3>><<trauma -3>><<lstress>><<ltrauma>><</if>> <br><br> "I'd enjoy continuing, but we have work to do." <<He>> whistles and tugs your leash. You follow Gwylan on all fours. <</if>> <<set $beastRitual.petplay++>> <</if>> <br><br> <<He>> leads you down a path that would be invisible if you weren't looking for it. The trees close in around you, and when you emerge, you're much deeper into the forest. <br><br> "It won't be much further now." <<He>> stops and kneels down, <<if $beastRitual.binding is "both">> releasing your hand and securing your leash to a tree before <<elseif $beastRitual.binding is "leash">> securing your leash to a tree before <<elseif $beastRitual.binding is "handheld">> releasing your hand and <</if>> inspecting something in the dirt. "In fact, we're already here." You look around. <<if $tending gte 700>> Thanks to your tending skill, <span class="blue">you know this is contested territory</span>. All sorts of beasts, and even some predatory plants, clash in this section of the forest. <<elseif $wolfpackleader gte 1>> <span class="blue">You know well that this is your wolf pack's territory.</span> <<elseif $syndromewolves gte 1>> <span class="blue">You know well that this is the wolf pack's territory.</span> <<elseif $wolfgirl gte 6>> <span class="blue">You know well that this is wolf territory.</span> <<else>> You can't tell how this area is special. <</if>> <br><br> <<if !$gwylanSeen.includes("ritual_beast")>> Gwylan scoffs. You look back to <<him>>, and see that <<hes>> holding a spent bullet casing. "Another lovely choking hazard, as if the beast it was spent on wasn't disturbance enough." <<He>> deposits it in a small bag on <<his>> belt. <br><br> <<He>> quickly returns to a cheery demeanour as <<he>> <<elseif $rng gte 51 or _gwylanStatus.includes("wounded")>> Gwylan holds <<his>> hands up in front of <<his>> face, as if <<he>> were framing a picture. <<He>> adjusts <<his>> position a few times, and smiles. "Right... there." <<He>> then turns, unsheathing the knife from <<his>> belt. <<He>> scratches a symbol into the bark of a nearby tree, facing the same direction. <<He>> then pats the tree. <br><br> <<He>> <<else>> <<He>> quickly climbs a nearby tree and sits on one of its branches. <<He>> opens a satchel on <<his>> belt and pulls out a charm of woven grass and twigs, hanging it by another branch. Rather than climb down, <<he>> jumps and lands gracefully. <br><br> <<He>> <</if>> pulls <<if $settings.plantsEnabled and $settings.tentaclesEnabled>>three<<else>>two<</if>> tinctures from <<his>> belt and holds them towards you. "Pick one." The tinctures are filled with a dark fluid, and have small pieces of paper attached to their stoppers. <br><br> One has a sketch of a wolf's head.<br> Another has a sketch of a fox jumping.<br> <<if $settings.plantsEnabled and $settings.tentaclesEnabled>> The final one has sketches of leaves. "This one will be the most dangerous, but also presents the largest opportunity for us to cleanse the poison."<br> <</if>> <br> <<link [[Wolf|Gwylan Forest Journey 3]]>><<set $beastRitual.lure to "wolf">><</link>> <br> <<link [[Fox|Gwylan Forest Journey 3]]>><<set $beastRitual.lure to "fox">><</link>><<if _gwylanTF.known>><<glust>><</if>> <br> <<if $settings.plantsEnabled and $settings.tentaclesEnabled>> <<link [[Leaves|Gwylan Forest Journey 3]]>><<set $beastRitual.lure to "dryad">><</link>> <br> <</if>> <<if $beastRitual.petplay>> <<if $fox gte 6>> <<link [[Yip|Gwylan Forest Journey 3]]>><<set $beastRitual.lure to "yip">><</link>> <<else>> <<link [[Bark|Gwylan Forest Journey 3]]>><<set $beastRitual.lure to "bark">><</link>> <</if>> <br> <</if>><<effects>> <<switch $beastRitual.lure>> <<case "wolf">>You point at the tincture with a wolf's head sketch. <<case "fox">>You point at the tincture with a fox sketch. <<case "dryad">>You point at the tincture with leaf sketches. <<case "bark">> <<set $beastRitual.petplay++>> You bark. <<if $settings.plantsEnabled and $settings.tentaclesEnabled and $rng gte 51>> <<set $beastRitual.lure to "dryad">> Gwylan giggles. "Bark, like on trees? I'll take it you mean this one, then." <<He>> holds up the tincture with leaf sketches. <<else>> <<set $beastRitual.lure to "wolf">> Gwylan giggles. "Wolves it is." <</if>> <<case "yip">> <<set $beastRitual.petplay++>><<set $beastRitual.lure to "fox">> You yip. Gwylan giggles. "Foxes it is." <<default>>You point at Gwylan. <<He>> blinks at you, and picks the wolf tincture. <span class="red">This is a bug, please report.</span> <<set $beastRitual.lure to "wolf">> <</switch>> <<He>> uncorks it with a loud pop, putting the other tinctures back in <<his>> belt. <<switch $beastRitual.lure>> <<case "wolf">> "This will produce a scent that's irresistible to wolves. It's not quite a musk, it's something I brewed up myself." <<if $wolfgirl gte 6>> <<He>> grins. "Hopefully you can handle it." <</if>> <<case "fox">> "This will produce a scent that's irresistible to foxes. It's not quite a musk, it's something I brewed up myself." <<if $fox gte 6>> <<He>> grins. "Hopefully you can handle it." <</if>> <<default>> "This will produce a scent that will beckon one of the naturalborn of the forest. It's something I brewed from their nectar." <<if $dryad gte 6>> <<He>> grins. "Hopefully you can handle it." <</if>> <</switch>> <br><br> <<if $beastRitual.lure is "wolf" and $wolfgirl gte 6 or $beastRitual.lure is "fox" and $fox gte 6 or $beastRitual.lure is "dryad" and $dryad gte 6>> <<Hes>> right. The scent is strong. You find yourself taking a step towards Gwylan involuntarily, <<else>> You try to get a sniff, <</if>> but <<he>> holds the tincture away from you. "It's also a potent hallucinogen. If you're not used to that kind of thing, it can be very dangerous." <<run statusCheck("Gwylan")>> <<if _gwylanStatus.includes("wounded")>> <<He>> moves <<his>> right leg out, as if testing it. <<He>> briefly winces. <<if $brownFoxRevealed>> "Unfortunately, there won't be any running today. My leg hasn't healed yet." <<else>> "I'm afraid my leg's sprained at the moment, so we'll have to take it easy." <</if>> <<He>> briefly tips it over, applying a small amount of the fluid to <<his>> cheeks. "That much will have to do." <<if $beastRitual.lure is "wolf" and $wolfgirl gte 6 or $beastRitual.lure is "fox" and $fox gte 6 or $beastRitual.lure is "dryad" and $dryad gte 6>> Even the small amount <<he>> applied is enough to make your head feel fuzzy. <<hallucinogen 40>><<ghallucinogens>> <<else>> The smell is strong, but manageable. <<hallucinogen 20>><<ghallucinogens>> <</if>> <br><br> <<He>> takes a deep breath. "With such a small dose, we should have time. We can enjoy the scenic route back." <<if C.npc.Gwylan.dom gte 15>> <<He>> takes your hand with a smile. <<takeHandholdingVirginity "Gwylan" "consensual">> <</if>> The two of you begin the walk back to the forest shop, the long way. It's relaxing. <<stress -6>><<lstress>> <br><br> <<link [[Next (0:45)|Gwylan Forest Run End]]>><<pass 45>><<set $phase to "walkWith">><</link>> <br> <<elseif playerIsPregnant() and playerPregnancyProgress() gte 0.6>> <<He>> covers the top with <<his>> other hand. "Plus, it can cause hormonal issues. Or contractions. It's not safe to use much around someone in the third trimester of pregnancy." <<He>> nods to your <<bellyDescription>>. <br><br> <<He>> briefly tips it over, applying a small amount of the fluid to <<his>> cheeks. "That much will have to do." <<if $beastRitual.lure is "wolf" and $wolfgirl gte 6 or $beastRitual.lure is "fox" and $fox gte 6 or $beastRitual.lure is "dryad" and $dryad gte 6>> Even the small amount <<he>> applied is enough to make your head feel fuzzy. <<hallucinogen 40>><<ghallucinogens>> <<else>> The smell is strong, but manageable. <<hallucinogen 20>><<ghallucinogens>> <</if>> <br><br> <<He>> takes a deep breath. "With such a small dose, we should have time. We can enjoy the scenic route back." <<if C.npc.Gwylan.dom gte 15>> <<He>> takes your hand with a smile. <<takeHandholdingVirginity "Gwylan" "consensual">> <</if>> The two of you begin the walk back to the forest shop, the long way. It's relaxing. <<stress -6>><<lstress>> <br><br> <<link [[Next (0:45)|Gwylan Forest Run End]]>><<pass 45>><<set $phase to "walkWith">><</link>> <br> <<elseif npcIsPregnant("Gwylan") and npcPregnancyProgress("Gwylan") gte 0.6>> <<He>> looks down at <<his>> <<bellyDescription "Gwylan">> and sighs. "I do need you to use a small amount of it on yourself. It would be unsafe for me to use a full dose while pregnant." <br><br> <<He>> briefly tips it over, applying a small amount of the fluid to your cheeks. "That much will have to do." <<if $beastRitual.lure is "wolf" and $wolfgirl gte 6 or $beastRitual.lure is "fox" and $fox gte 6 or $beastRitual.lure is "dryad" and $dryad gte 6>> It feels cold, but rapidly warms up. Even this small amount is enough to make your head spin. <<hallucinogen 40>><<ghallucinogens>> <<else>> The smell is strong, but manageable. <<hallucinogen 20>><<ghallucinogens>> <</if>> <br><br> <<He>> takes a deep breath. "With such a small dose, we should have time. We can enjoy the scenic route back." <<if C.npc.Gwylan.dom gte 15>> <<He>> takes your hand with a smile. <<takeHandholdingVirginity "Gwylan" "consensual">> <</if>> The two of you begin the walk back to the forest shop, the long way. It's relaxing. <<stress -6>><<lstress>> <br><br> <<link [[Next (0:45)|Gwylan Forest Run End]]>><<pass 45>><<set $phase to "walkWith">><</link>> <br> <<else>> <<He>> puts the cork back on, and starts doing some stretches. "Once I apply this, we'll need to run back to my garden. It'll leave a scent trail for them to follow." <<He>> keeps direct eye contact with you as <<he>> stretches. "I mean it. We'll have to <i>run</i>, and we can't take the shortcut. Limber up." <br><br> <<link [[Stretch|Gwylan Forest Journey 4]]>><<pass 10>><<set $phase to 1>><</link>><<dancedifficulty 600 900>> <br> <<link [[Watch Gwylan stretch|Gwylan Forest Journey 4]]>><<pass 10>><<set $phase to 2>><<npcincr Gwylan lust 2>><</link>><<glust>> <br> <<if $beastRitual.petplay>> <<if $cat gte 6>> <<link [[Stretch like a cat|Gwylan Forest Journey 4]]>><<pass 10>><<set $phase to 3>><<transform cat 1>><</link>><<cat>><<if $beastRitual.petplay gte 3 and !$beastRitual.petplayHypno>><<gwylanHypnoNote>><</if>> <<else>> <<link [[Curl up at Gwylan's feet|Gwylan Forest Journey 4]]>><<pass 10>><<set $phase to 3>><</link>><<if $beastRitual.petplay gte 3 and !$beastRitual.petplayHypno>><<gwylanHypnoNote>><</if>> <</if>> <br> <</if>> <</if>><<effects>><<run statusCheck("Gwylan")>> <<if $phase is 1>> <<if currentSkillValue("danceskill") gte 900>> <<set $beastRitual.difficultyMax -= 200>><<set $beastRitual.difficultyMin -= 200>> You spend some time stretching. You know how to prepare for things like this, thanks to all your time dancing. You even outpace Gwylan. <<He>> looks impressed by just how flexible you are. <span class="green">You feel a satisfying pop in your back as you stretch. Whatever comes next should be a little easier now.</span> <br><br> "You've got my expectations up," <<he>> says with a smile. <<else>> You spend some time stretching, trying to follow Gwylan's lead. <<He>> stands on the tips of <<his>> toes and curls <<his>> fingers together, putting both arms above <<his>> head and arching <<his>> back. <<if $danceSuccess>> <<set $beastRitual.difficultyMax -= 150>><<set $beastRitual.difficultyMin -= 150>> <span class="green">You feel a satisfying pop in your back as you copy <<him>>. Whatever comes next should be a little easier now.</span> <<else>> <<set $beastRitual.noPlayerBait to true>> <<set $beastRitual.difficultyMax += 50>><<set $beastRitual.difficultyMin += 50>> <span class="red">You feel a brief, sharp pain in your back. You nearly stumble backwards.</span> <<pain 6>><<gpain>> <br><br> Gwylan grabs your arm and keeps you steady. "Oops. Too much, too fast," <<he>> says, pulling you forward. <<He>> uses the momentum to step behind you, and puts <<his>> other hand on your back. "Here. Like this." <<He>> has you stretch again, and this time, <span class="green">you feel a satisfying pop instead.</span> You let out a brief, involuntary moan as the pain fades. <<pain -1>><<npcincr Gwylan lust 1>><<lpain>><<glust>> <br><br> <<He>> rubs your back for a moment, before stepping in front of you. "There, all better. Knowing one's limits is important." <<He>> pokes you on the nose. <</if>> <</if>> <<elseif $phase is 2>> You feign stretching and watch Gwylan closely. <<His>> eyes remain locked on you as you lazily copy <<him>>. <br><br> One of <<his>> stretches leads <<him>> to lean far forwards, and <<he>> looks up at you as <<he>> does so. <<if $gwylanSeen.includes("romance")>> <<He>> steps forward and straightens up, kissing you on the nose. "I like feeling your eyes on me, <<pcpetname "Gwylan" "simple">>." <<else>> <<He>> suddenly springs back up, and lifts your chin with one finger. "Careful, those eyes will get stuck to me if they stare too long," <<he>> giggles. <</if>> <<else>> <<if $cat gte 6>> You get down low to the ground and stretch your body forward, sticking your <<bottom>> up in the air conveniently in <<gwylanHypnoName>>'s direction. <br><br> "Aww, big kitty stretch!" <<he>> says with delight. You feel <<him>> start to scratch your lower back. You can't help but purr in response. <<else>> You crawl over to <<gwylanHypnoName>> while <<he>> stretches, and curl up at <<his>> feet in the most distracting way possible. <<He>> stops stretching, <<his>> movement hampered. <br><br> You suddenly feel a rapid scritching on your <<bellyDescription>>. You immediately roll over to give <<him>> better access. "Who's a <<pcpetname "Gwylan" "good">>? Is it you?" Your leg kicks by itself. <</if>> <<if $beastRitual.petplay gte 3 and !$beastRitual.petplayHypno>> <<set $beastRitual.petplayHypno to true>> <span class="witchbloom">It feels so right to be this way. <<gwylanHypnosis "devotion" 3>></span> <</if>> <br><br> "You're making this awfully difficult for me, you know. This is important work, but I just can't help myself with you acting like this." <<if $beastRitual.disobey>> <<if $cat gte 6>> <<He>> gives you a solid smack on your <<bottom>>. <<else>> <<He>> puts a hand under your chin and squeezes. <</if>> "If you weren't so disobedient earlier, I might even be giving you a treat right now." <<elseif _gwylanStatus.includesAny("dom", "lust") and $beastRitual.petplay gte 3>> <<He>> leans forward and whispers in your ear. "Maybe this will hold you over until we get back." <<if playerChastity("vagina") or playerChastity("penis")>> You feel <<his>> hand on your <<genitals>> through your clothes. Even with your chastity device in the way, <<he>> seems to know where to stroke and prod to get a reaction out of you. <<elseif $worn.lower.skirt is 1>> You feel <<his>> other hand slip lower, under your skirt. <<if $worn.under_lower.type.includes("naked")>> <<He>> caresses your exposed <<genitals>>. <<else>> <<He>> moves your $worn.under_lower.name aside and starts to caress your <<genitals>>. <</if>> <<elseif $worn.lower.type.includes("naked")>> You feel <<his>> other hand slip lower, and start to rub your <<genitals>>. <<else>> You feel <<his>> other hand slip into your $worn.lower.name, and start to caress your <<genitals>>. <</if>> <<if !playerChastity()>> <<if $player.penisExist>> <<His>> fingers gently wrap around your <<penis>>, and <<he>> slowly strokes it while using <<his>> thumb to rub the head. <<else>> One of <<his>> fingers slowly enters your <<pussy>>. <</if>> <</if>> You shiver. "Silly <<pcpetname "Gwylan" "simple">>." <<He>> gives your <<if $cat gte 6>><<bottom>><<else>><<bellyDescription>><</if>> a few light pats, before standing up and continuing <<his>> stretches. <<arousal 1200>><<ggarousal>> <</if>> <<set $beastRitual.petplay++>> <</if>> <br><br> <<if $phase is 3>> <<He>> concludes <<his>> pampering, and stands back up. <<else>> The two of you conclude your stretching. <</if>> <<if ["both", "leash"].includes($beastRitual.binding)>> <<He>> unbinds your leash from the tree, wrapping it around <<his>> hand again. <</if>> "Ready?" <<He>> puts <<his>> hand on the tincture. <br><br> <<link [[Ready|Gwylan Forest Journey 5]]>><<set $phase to 1>><</link>> <br> <<if hasSexStat("deviancy", 3)>> <<link [[Offer to use the bait on yourself instead|Gwylan Forest Journey 5]]>><<set $phase to 2>><</link>><<deviant3>> <<else>> <<insufficientStat "deviancy" "to offer to use the bait on yourself instead">> <</if>> <br><<effects>><<run statusCheck("Gwylan")>> <<if $phase is 1>> You nod. <<else>> <<switch $speech_attitude>> <<case "meek">> "I could use it instead, if you want," you say. You meekly put your hands forward. <<case "bratty">> "Here, give it to me, I can handle it," you say, grabbing for the tincture. <<default>> "It might be safer if I do it instead," you say, reaching for the tincture. <</switch>> <<if $beastRitual.noPlayerBait>> <<if $control lt $controlmax>> <<if !hasSexStat("deviancy", 4)>> <<set $deviancy += 2>> Performing such a lewd act excites you and <span class="green">restores your</span>- <<control 25>><<arousal 200>><<set $stress -= 600>><<combattrauma -60>> <<else>> Performing such a lewd act excites you, but does nothing to lift the cloud hanging over you. <span class="pink">You need to</span>- <<arousal 200>> <</if>> <<else>> <<if !hasSexStat("deviancy", 4)>> <<set $deviancy += 1>> You already feel in control, but performing such a lewd act <span class="green">soothes</span>- <<control 25>><<arousal 200>><<set $stress -= 600>><<combattrauma -60>> <<else>> You already feel in control and the act is <span class="pink">too tame to soothe</span>, but- <<arousal 200>> <</if>> <</if>> <br><br> "Absolutely not! Not after you just pulled a muscle," <<he>> scolds. "I can't have you falling behind while you smell like mating season. You could get hurt." <<else>> <<set $beastRitual.person to "player">> <<deviancy3>> <<He>> looks down to the vial, and back to you. "If you're sure you can handle it, I'll allow it." <</if>> <</if>> <<He>> pops open the vial once more. <<if $beastRitual.person is "player">> <<He>> empties the dark fluid into <<his>> hands and rubs it into your cheeks. It feels cold at first, but rapidly warms you. <br><br> <<if $beastRitual.lure is "wolf" and $wolfgirl gte 6 or $beastRitual.lure is "fox" and $fox gte 6 or $beastRitual.lure is "dryad" and $dryad gte 6>> <<set $beastRitual.isScent to true>> <<pass 3>> The smell is overpowering. You feel the urge to touch your own face, but Gwylan gently holds your hands away. <<Hes>> saying something, but it's all muffled noise to you. You can hear your own heart pounding in your ears, and all else is silent. <<trauma -6>><<hallucinogen 300>><<ltrauma>><<ggghallucinogens>> <br><br> <<if $hypnosis_traits.devotion gte 1>> "<<gwylanCommand "Look at me." 3>>" <<hypnosisText "Your attention returns to Gwylan.">> <<else>> You're brought back to attention as Gwylan snaps a finger in front of your face. <</if>> You shake off the confusion. "Good, you're back. We're short on time now, because <span class="pink">you stood perfectly still looking at the sky for three and a half minutes</span>. I hope it felt good." <<He>> giggles. <<else>> The smell is strong, but you quickly get used to it. It's harder to get used to the warmth. It feels like the sun is beating right down on your face. Gwylan says something, but it's all muffled noise to you. <<trauma -6>><<hallucinogen 100>><<ltrauma>><<gghallucinogens>> <br><br> <<He>> snaps <<his>> fingers in front of you, finally bringing you back. "Enjoying the ride? It can be a lot, but I need you to focus for me." <</if>> <br><br> <<if $fox gte 6 and $beastRitual.lure is "fox" and [_gwylanTF.ears, _gwylanTF.tail, _gwylanTF.fangs].includes("visible")>> <<if !_gwylanTF.known>> <<set $gwylanSeen.pushUnique("gwylan_ears", "gwylan_tail", "gwylan_fangs")>> You rub your eyes. <span class="pink">For a moment, it looked like Gwylan had fox-like ears, too. And a matching tail. And sharper teeth.</span> Your heart skips a beat. <<arousal 500>><<garousal>> <<else>> Gwylan's fox-like features look more pronounced than usual. <<arousal 500>><<garousal>> <</if>> <br><br> <</if>> <<if $beastRitual.lure is "fox">> <<npcincr Gwylan lust 5>> <<if _gwylanTF.known>> <<His>> face looks flushed. "S-sorry. I'm not used to smelling that on someone else, it's getting to me a little." <<gglust>> <br><br> <<else>> <<His>> face looks flushed. <</if>> <</if>> "I'll race you there," <<he>> says, taking a few steps forward. <<else>> <<He>> empties the dark fluid into <<his>> hands and rubs it into <<his>> cheeks. <<He>> closes <<his>> eyes and takes a deep breath, before letting it out shakily. You can smell the serum from here. <<if $wolfgirl gte 6 and $beastRitual.lure is "wolf" or $fox gte 6 and $beastRitual.lure is "fox" or $dryad gte 6 and $beastRitual.lure is "dryad">> <<set $beastRitual.hasScent to true>> <</if>> <<if $wolfgirl gte 6 and $beastRitual.lure is "wolf" or $fox gte 6 and $beastRitual.lure is "fox" or $beastRitual.petplay gte 3 and $hypnosis_traits.devotion gte 1>> <span class="pink"> <<if $wolfgirl gte 6 and $beastRitual.lure is "wolf" or $fox gte 6 and $beastRitual.lure is "fox">> It's pulling on all of your senses, making you feel hot. <<else>> It's strangely alluring. You feel warm. <</if>> <<if playerHeatMinArousal() gte 1 and _gwylanLovePercent gte 50>> <<set $beastRitual.lewdOption to true>> You were already in heat, and <<gwylanHypnoName>> now looks and smells like the perfect mate. <<arousal 2000>><<gggarousal>> <<elseif playerRutMinArousal() gte 1 and _gwylanLovePercent gte 50>> <<set $beastRitual.lewdOption to true>> You were already in rut, and <<gwylanHypnoName>> now looks and smells like the perfect mate. <<arousal 2000>><<gggarousal>> <<elseif hasSexStat("deviancy", 3) and _gwylanLovePercent gte 50>> <<set $beastRitual.lewdOption to true>> The world swirls around <<gwylanHypnoName>>, and <<he>> both looks and smells like the perfect mate for you. <<if $beastRitual.petplay gte 3>>Your pet-like behavior seems to have put you in a strange mindset.<</if>> <<arousal 2000>><<gggarousal>> <<else>> <span class="blue">You're barely able to shake off the strange impulse.</span> <<arousal 500>><<garousal>> <</if>> </span> <</if>> <<hallucinogen 80>><<ghallucinogens>> <br><br> <<if $beastRitual.lure is "fox" and [_gwylanTF.ears, _gwylanTF.tail, _gwylanTF.fangs].includes("visible")>> <<npcincr Gwylan lust 2>> <<He>> cracks <<his>> neck, and when <<his>> eyes open, they're slightly dilated. "I'll race you there," <<he>> says, getting on all fours. <<if _gwylanTF.known>> <<His>> ears are perked, and <<his>> tail is puffed up. <<elseif $fox gte 6>> <<set $gwylanSeen.pushUnique("gwylan_ears", "gwylan_tail", "gwylan_fangs")>> <br><br> You rub your eyes. From this position, Gwylan looks fox-like <<himself>>. Your vision blurs. <span class="pink">A set of mousy-brown fox ears sit atop <<his>> head, and a matching tail sways side to side behind <<him>>. Even <<his>> teeth look sharper.</span> <</if>> <<if $fox gte 6 and $beastRitual.lure is "fox" and _gwylanLovePercent gte 50>> <<if $beastRitual.lewdOption>> <span class="pink">Seeing <<him>> on all fours like this pushes your mating instincts to their limit.</span> <<else>> <span class="pink">Seeing <<him>> on all fours like this pushes you over the edge. <<He>> both looks and smells like the perfect mate.</span> <</if>> <<set $beastRitual.lewdOption to true>> <</if>> <<else>> "I'll race you there," <<he>> says, taking a few steps forward. <</if>> <</if>> "Come on!" <<set $beastRitual.distance to 0>> <<set $beastRitual.progress to 0>> <<set $beastRitual.time to 0>> <<if $beastRitual.binding is "handheld">> <<set $beastRitual.binding to "none">> <</if>> <<if $beastRitual.binding is "both" or $beastRitual.binding is "leash">> <<set $beastRitual.difficultyMin += 100>><<set $beastRitual.difficultyMax += 150>> <<He>> pulls you by your leash. The two of you dart off into the forest. <<set $beastRitual.binding to "leash">> <br><br> <<link [[Run with <<him>> (0:05)|Gwylan Forest Run Leashed]]>><<pass 5>><<tiredness 2>><<set $phase to "run">><</link>><<gtiredness>><<athleticsdifficulty $beastRitual.difficultyMin $beastRitual.difficultyMax true>> <br> <<else>> <<set $beastRitual.distance to -1>> The two of you dart off into the forest. You lose track of each other almost immediately in the dense trees. <br><br> <<link [[Race <<him>> (0:05)|Gwylan Forest Run]]>><<pass 5>><<tiredness 2>><<set $phase to "run">><</link>><<gtiredness>><<athleticsdifficulty $beastRitual.difficultyMin $beastRitual.difficultyMax true>> <br> <<link [[Just walk (0:10)|Gwylan Forest Run]]>><<stress -1>><<pass 10>><<set $phase to "walk">><</link>><<lstress>> <br> <</if>><<effects>><<run statusCheck("Gwylan")>> <<switch $beastRitual.progress>> <<case 0 1>> You are in the forest, racing Gwylan back to the shop. The trees are thick. You're still deep in. <<physique 1>> <<case 2 3>> You are in the forest, racing Gwylan back to the shop. <<physique 1>> <<default>> You're in the forest outskirts, racing Gwylan back to the shop. <<physique 1>> <</switch>> <br><br> <<set $beastRitual.progress++>> <<if $athleticsSuccess>> <<if $beastRitual.distance gte 1>> <<set $beastRitual.distance to 1>><<set _canBreakLeash to true>> You manage to keep your lead on Gwylan, <span class="blue">but the leash only lets you get so far ahead</span>. <<else>> <<set $beastRitual.distance++>> <<if $beastRitual.distance is 0>> <span class="green">You manage to catch back up to Gwylan.</span> <<else>> <span class="green">You manage to overtake Gwylan.</span> Your leash nearly goes taut. <</if>> <</if>> <<else>> <<if $beastRitual.distance lte -1>> <<set $beastRitual.distance to -1>><<set _canTripGwylan to true>> You continue to struggle, <span class="blue">but the leash only lets you fall so far behind</span>. Gwylan is forced to slow down for you. <<else>> <<set $beastRitual.distance-->> <<if $beastRitual.distance is 0>> <span class="pink">Gwylan catches up to you.</span> <<else>> <span class="pink">Gwylan overtakes you.</span> Your leash nearly goes taut. <</if>> <</if>> <</if>> <br><br> <<if $beastRitual.progress gte 6>> <span class="teal">You can see the shop through the trees. You're almost there!</span> <br><br> <<link [[Run! (0:05)|Gwylan Forest Run End]]>><<pass 5>><<tiredness 2>><<set $phase to "run">><</link>><<gtiredness>><<athleticsdifficulty $beastRitual.difficultyMin $beastRitual.difficultyMax true>> <br> <<else>> <<cleareventpool>> <<if !$beastRitual.eventSkip>> <<addinlineevent "gwylan_forest_run_leashed_tree">> <<set _noOptions to true>> There's a thick cluster of trees up ahead, blocking most of the path. <<if $beastRitual.distance is 1>> <<set $phase2 to 0>> <<elseif $beastRitual.distance is -1>> Gwylan shifts to the <<if random(0,1)>><<set $phase2 to "left">><<else>><<set $phase2 to "right">><</if>> <span class="blue">$phase2</span>. <<else>> <<if random(0,1)>><<set $phase2 to "left">><<else>><<set $phase2 to "right">><</if>> Gwylan looks unsure of which way to go. <</if>> <br><br> <<link [[Dodge to the left|Gwylan Forest Run Leashed Trees]]>><<set $phase to "left">><</link>> <br> <<link [[Dodge to the right|Gwylan Forest Run Leashed Trees]]>><<set $phase to "right">><</link>> <br> <</addinlineevent>> <</if>> <<addinlineevent "gwylan_forest_run_leashed_hikers" 0.5>> <span class="lewd">You run past a pair of hikers.</span> They give you both strange looks. <br><br> <</addinlineevent>> <<addinlineevent "gwylan_forest_run_leashed_nothing">> /* Nothing */ <</addinlineevent>> /* ToDo: Gwylan: More random events, can be flavour only */ <<runeventpool>> <<set $beastRitual.eventSkip to false>> <<if !_noOptions>> <<link [[Run (0:05)|Gwylan Forest Run Leashed]]>><<pass 5>><<tiredness 2>><<set $phase to "run">><</link>><<gtiredness>><<athleticsdifficulty $beastRitual.difficultyMin $beastRitual.difficultyMax true>> <br> <<if _canBreakLeash>> <<link [[Try to break free of the leash|Gwylan Forest Run Leashed Break]]>><<set $phase to "break">><</link>><<physiquedifficulty 4000 14000>> <br> <</if>> <<if _canTripGwylan>> <<link [[Stop and force Gwylan to release the leash|Gwylan Forest Run Leashed Stop]]>><<pain 5>><<set $phase to "stop">><</link>><<gpain>> <br> <</if>> <</if>> <</if>><<effects>><<run statusCheck("Gwylan")>> <<if $physiqueSuccess>> <<set $beastRitual.distance++>> You push forward with all your might. Gwylan holds the leash firmly, but is starting to stumble. You turn and grab the leash with both hands, yanking it. <span class="green">It flies out of <<his>> hands.</span> <br><br> <<He>> trips over <<himself>> with a look of surprise, and you keep running. <br><br> <<set $beastRitual.difficultyMin -= 100>><<set $beastRitual.difficultyMax -= 150>> <<link [[Run (0:05)|Gwylan Forest Run]]>><<pass 5>><<tiredness 2>><<set $phase to "run">><</link>><<gtiredness>><<athleticsdifficulty $beastRitual.difficultyMin $beastRitual.difficultyMax true>> <br> <<else>> You push forward with all your might, but Gwylan pulls back just as hard. <span class="pink">You can't get enough leverage to break <<his>> grip on the leash.</span> <br><br> <<link [[Run (0:05)|Gwylan Forest Run Leashed]]>><<pass 5>><<tiredness 2>><<set $phase to "run">><</link>><<gtiredness>><<athleticsdifficulty $beastRitual.difficultyMin $beastRitual.difficultyMax true>> <br> <</if>><<effects>><<run statusCheck("Gwylan")>> <<set $beastRitual.difficultyMin -= 100>><<set $beastRitual.difficultyMax -= 150>> <<if $bodysize is 3>> <<set $beastRitual.distance++>> You stop. Gwylan doesn't. <span class="green">Due to your large body, <<he>> completely wipes out as <<he>> reaches the end of the leash's length, unable to pull you along.</span> <br><br> You run ahead of <<him>> as <<he>> recovers, and you catch <<him>> sticking <<his>> tongue out at you. <br><br> <<link [[Run (0:05)|Gwylan Forest Run]]>><<pass 5>><<tiredness 2>><<set $phase to "run">><</link>><<gtiredness>><<athleticsdifficulty $beastRitual.difficultyMin $beastRitual.difficultyMax true>> <br> <<else>> <<set $beastRitual.distance-->><<set $beastRitual.time++>> You stop. Gwylan doesn't. You stumble forward, landing on your hands and knees. <<He>> stumbles in turn thanks to the sudden weight at your end of the leash, <span class="teal">forcing <<him>> to drop it</span> as <<he>> continues running. <<He>> has more distance on you now, but at least you're not being pulled along anymore. <br><br> <<link [[Run (0:05)|Gwylan Forest Run]]>><<pass 5>><<tiredness 2>><<set $phase to "run">><</link>><<gtiredness>><<athleticsdifficulty $beastRitual.difficultyMin $beastRitual.difficultyMax true>> <br> <<link [[Just walk (0:10)|Gwylan Forest Run]]>><<stress -1>><<pass 10>><<set $phase to "walk">><</link>><<lstress>> <br> <</if>><<effects>><<run statusCheck("Gwylan")>> <<if $beastRitual.distance is 1>> You dodge to the $phase of the trees. Gwylan follows. <br><br> <<link [[Run (0:05)|Gwylan Forest Run Leashed]]>><<set $beastRitual.eventSkip to true>><<pass 5>><<tiredness 2>><<set $phase to "run">><</link>><<gtiredness>><<athleticsdifficulty $beastRitual.difficultyMin $beastRitual.difficultyMax true>> <br> <<else>> <<if $phase2 is "left" and $phase is "right" or $phase2 is "right" and $phase is "left">> <<if $beastRitual.distance is 0>> You dodge to the $phase of the trees. Unfortunately, Gwylan dodged in the opposite direction. <<else>> You dodge to the $phase of the trees, opposite Gwylan. <</if>> <span class="pink">Your leash snags in the thicket between you,</span> pulling both of you back and sending you tumbling as the leash snaps out of Gwylan's hand. <br><br> "Ouch! We should have communicated that better." <<He>> rubs <<his>> hand as <<he>> stands back up, offering you <<his>> other hand to help you up too. <br><br> You get your bearings. Gwylan starts running ahead again once <<he>> knows you're mostly unharmed. <span class="teal">You're free of the leash.</span> <br><br> <<set $beastRitual.difficultyMin -= 100>><<set $beastRitual.difficultyMax -= 150>> <<gwylanChaseOptions>> <<else>> You dodge to the $phase of the trees, following Gwylan. <br><br> <<link [[Run (0:05)|Gwylan Forest Run Leashed]]>><<set $beastRitual.eventSkip to true>><<pass 5>><<tiredness 2>><<set $phase to "run">><</link>><<gtiredness>><<athleticsdifficulty $beastRitual.difficultyMin $beastRitual.difficultyMax true>> <br> <</if>> <</if>> <<set $phase2 to 0>><<effects>><<run statusCheck("Gwylan")>><<set $beastRitual.binding to "none">> <<switch $beastRitual.progress>> <<case 0 1>> You are in the forest, <<if $phase is "walk">>walking<<else>>racing Gwylan<</if>> back to the forest shop. The trees are thick. You're still deep in. <<case 2 3>> You are in the forest, <<if $phase is "walk">>walking<<else>>racing Gwylan<</if>> back to the forest shop. <<default>> You're in the forest outskirts, <<if $phase is "walk">>walking<<else>>racing Gwylan<</if>> back to the forest shop. <</switch>> <<if $phase is "run">> <<physique 1>> <<if $athleticsSuccess>> <<set $beastRitual.distance++>> <<if $beastRitual.foxChase>> You run with the grace of a fox, <span class="green">and manage to make good progress.</span> <<else>> You push yourself, <span class="green">and manage to make good progress.</span> <</if>> <<else>> <<set $beastRitual.time++>><<set $beastRitual.distance -= 1>> You push yourself, <span class="pink">but your pace is uneven and you're starting to get winded.</span> <</if>> <<elseif $phase is "walk">> <<set $beastRitual.distance -= 2>><<set $beastRitual.time++>> <<set $beastRitual.difficultyMin -= 50>><<set $beastRitual.difficultyMax -= 50>> You take your time, saving your energy. <</if>> <br><br> <<set $beastRitual.progress++>> <<if $beastRitual.time gte 3 and $beastRitual.distance lte -1 and !$beastRitual.waited>> <<set _gwylanWaiting to true>> <<set $beastRitual.distance to 0>> <</if>> <<if $beastRitual.hasScent>> You can easily smell the tincture on Gwylan. <<if $beastRitual.distance lte -3>> <span class="pink"><<Hes>> far ahead of you.</span> <<elseif $beastRitual.distance lte -1>> <span class="purple"><<Hes>> just ahead of you.</span> <<elseif $beastRitual.distance gte 3>> <span class="green">You've left <<him>> in the dust.</span> <<elseif $beastRitual.distance gte 1>> <span class="teal"><<Hes>> a short distance behind you.</span> <<else>> <span class="blue">It smells like <<hes>> nearby, about the same distance from the shop as you are.</span> <<arousal 500>><<garousal>> <</if>> <<elseif $fox gte 4>> Your fox-like instincts are sharp during the chase. <<if $beastRitual.distance lte -3>> <span class="pink">You can tell Gwylan is far ahead of you.</span> <<elseif $beastRitual.distance lte -1>> <span class="purple">You can tell Gwylan is just ahead of you.</span> <<elseif $beastRitual.distance gte 3>> <span class="green">You can tell you've left Gwylan in the dust.</span> <<elseif $beastRitual.distance gte 1>> <span class="teal">You can tell Gwylan is a short distance behind you.</span> <<else>> <span class="blue">It smells like Gwylan is nearby, about the same distance from the shop as you are.</span> <<arousal 500>><<garousal>> <</if>> <<else>> <<if $beastRitual.distance is 0 and !_gwylanWaiting>> You hear someone running nearby. <span class="blue">Gwylan must be close.</span> <<else>> You've lost track of Gwylan. <</if>> <</if>> <br><br> <<if _gwylanWaiting>> <<set $beastRitual.waited to true>> <<if $beastRitual.hasScent>> The scent suddenly becomes much stronger, as if it's coming back towards you. <<elseif $beastRitual.lewdOption>> You smell the serum that Gwylan applied to <<himself>>. <<He>> must be very close. <<else>> You hear rustling up ahead. <</if>> You stay low in the foliage and move to investigate. <br><br> You spot Gwylan in a small clearing, looking around with a concerned look on <<his>> face. <<His>> hands are clasped together near <<his>> chest. <br><br> <<He>> calls your name, but isn't looking in your direction. "Oh dear, oh dear, oh no no no! I hope <<pshe>> didn't get lost. I shouldn't have left <<phim>> so far behind." <br><br> <<if $beastRitual.lure is "fox" and $beastRitual.person is "player">> <span class="blue"><<His>> nose twitches. <<He>> turns and looks right at you.</span> <<He>> must be able to smell the fluid on you. <br><br> "Oh, thank goodness. I'm sorry for leaving you like that. It's not much further to the shop now, let's go!" <<He>> takes off again. <br><br> <<link [[Run (0:05)|Gwylan Forest Run]]>><<pass 5>><<tiredness 2>><<set $phase to "run">><</link>><<gtiredness>><<athleticsdifficulty $beastRitual.difficultyMin $beastRitual.difficultyMax true>> <br> <<link [[Walk (0:10)|Gwylan Forest Run]]>><<stress -1>><<pass 10>><<set $beastRitual.time++>><<set $phase to "walk">><</link>><<lstress>> <br> <<else>> <<if $hypnosis_traits.devotion gte 1 and $beastRitual.petplay gte 2>> <<set _beckoned to true>> <<gwylanHypnoName "cap">> calls your name again, this time with the inflection of an owner searching for a lost pet. <span class="witchbloom">You feel a strange compulsion to reveal yourself and go to <<him>>.</span> <<set _linebreak to true>> <</if>> <<if $beastRitual.lewdOption>> <<if _linebreak>> However, you also <<else>> You <</if>> feel your mating instincts working some devilry. You have a strong urge to pounce on <<him>><<if _linebreak>>, too<</if>>. <<set _linebreak to true>> <</if>> <<if _linebreak>><br><br><</if>> <<link [[Use this opportunity to get ahead of <<him>>|Gwylan Forest Run Clearing]]>><<set $phase to "past">><</link>><<if _beckoned>><<gwylanWillpowerDifficulty>><</if>> <br> <<if _beckoned>> <<link [[Approach <<him>> like a lost pet|Gwylan Forest Run Clearing]]>><<sub 1>><<set $phase to "pet">><</link>><<if $beastRitual.petplay gte 3 and !$beastRitual.petplayHypno>><<gwylanHypnoNote>><</if>> <<else>> <<link [[Reveal yourself|Gwylan Forest Run Clearing]]>><<set $phase to "reveal">><</link>> <</if>> <br> <<if $beastRitual.lewdOption>> <<link [[Ambush|Gwylan Forest Run Ambush]]>><<def 1>><<transform fox 1>><</link>> <br> <</if>> <</if>> <<elseif $beastRitual.progress gte 6>> <span class="teal">You can see the shop through the trees. You're almost there!</span> <br><br> <<link [[Run! (0:05)|Gwylan Forest Run End]]>><<pass 5>><<tiredness 2>><<set $phase to "run">><</link>><<gtiredness>><<athleticsdifficulty $beastRitual.difficultyMin $beastRitual.difficultyMax true>> <br> <<if !$beastRitual.foxChase>> <<link [[Walk (0:10)|Gwylan Forest Run End]]>><<stress -1>><<pass 10>><<set $phase to "walk">><</link>><<lstress>> <br> <</if>> <<else>> <<if $phase is "run">> <<if $beastRitual.stalkedProgress isnot undefined>> <<set $beastRitual.stalkedProgress++>> <</if>> <<else>> <<if $beastRitual.stalkedProgress isnot undefined>> <<set $beastRitual.stalkedProgress += 3>> <</if>> <</if>> <<cleareventpool>> <<if $beastRitual.person is "player" and $beastRitual.stalked isnot "done" and $beastRitual.stalked isnot "howl">> <<switch $beastRitual.lure>> <<case "wolf">> <<if !$beastRitual.stalked>> <<addinlineevent "gwylan_forest_run_wolf_start">> <<set $beastRitual.stalked to "wolf">><<set $beastRitual.stalkedProgress to 0>> <span class="red">You hear a howl close by. A chill runs up your spine.</span> <br><br> <</addinlineevent>> <<elseif $beastRitual.stalkedProgress gte 3>> <<addinlineevent "gwylan_forest_run_wolf_lunge" 10>> <<endevent>><<beastNEWinit 1 wolf>> A <<beasttype>> lunges at you from the bushes! <br><br> <<if $monster is 1 or $settings.bestialityEnabled>> <<set _noOptions to true>> <<link [[Next|Gwylan Forest Run Attacked]]>><<set $molestationstart to 1>><</link>> <br> <<else>> <<bHe>> chases you through the woods. You run until you can no longer hear <<bhim>> behind you. You're not sure if you outran <<bhim>> or <<bhe>> grew bored. <<beastescape>><<gtiredness>><<tiredness 4>> <br><br> <<endevent>><<npc Gwylan>><<person1>> <</if>> <</addinlineevent>> <</if>> <<case "fox">> <<if !$beastRitual.stalked>> <<addinlineevent "gwylan_forest_run_fox">> <<set $beastRitual.stalked to "fox">> <<endevent>><<beastNEWinit 1 fox>><<person1>><<set _noOptions to true>> You spot a <<beasttype>> in the bushes just before <<bhe>> pounces! <br><br> <<link [[Dodge <<bhim>>|Gwylan Forest Run Fox]]>><<set $phase to "dodge">><</link>><<dancedifficulty 1 1000>> <br> <<link [[Redirect <<bhis>> pounce|Gwylan Forest Run Fox]]>><<set $phase to "redirect">><</link>><<physiquedifficulty 4000 16000>> <br> <<if $fox gte 4>> <<link [[Scream at <<bhim>>|Gwylan Forest Run Fox]]>><<set $phase to "scream">><<transform fox 1>><</link>><<fox>> <br> <<elseif $harpy gte 6>> <<link [[Screech at <<bhim>>|Gwylan Forest Run Fox]]>><<set $phase to "screech">><<transform bird 1>><</link>><<harpy>> <br> <</if>> <</addinlineevent>> <</if>> <<default>> <</switch>> <</if>> <<addinlineevent "gwylan_forest_run_nothing" 2>> /* Nothing */ <</addinlineevent>> <<runeventpool>> <<if !_noOptions>> <<gwylanChaseOptions>> <</if>> <</if>><<effects>> <<set $beastRitual.stalked to "howl">> You howl in return. In the shade of the trees, you spot multiple sets of eyes. <<if $wolfgirl gte 6>> They look with hunger at first, but they also seem curious. <<else>> They recognise their pack leader's voice, and follow at a distance. <</if>> You can tell they won't attack, <span class="lewd">but they might all follow you back to the shop</span>. <br><br> <<gwylanChaseOptions>><<effects>><<run statusCheck("Gwylan")>> <<set $beastRitual.foxChase to true>> <<set $beastRitual.distance to 0>> <<set $beastRitual.difficultyMin -= 50>><<set $beastRitual.difficultyMax -= 50>> You stop to sniff the air. You know you can find <<him>>. <br><br> Your senses focus in, and you dart after a set of tracks hidden in the overgrowth. <br><br> They're easy to follow, as if left by someone that wanted you to chase them. Your muscles and lungs are invigorated by the chase. <br><br> You'll be feeling this later, but you don't mind. Your heart pounds as you continue to bound through the forest. <<if $hallucinations gte 1>> <span class="blue">It feels as though it yields to you, accepting you as one of its denizens. The space between the trees is just a little larger, and the ground provides slightly better traction.</span> <</if>> <br><br> Finally, <span class="green">you see Gwylan running ahead of you.</span> You push yourself even harder and manage to catch up to <<him>>. <<if _gwylanTF.known>> <<set $beastRitual.progress++>> <span class="pink"><<He>> grins. <<He>> was waiting for this.</span> <<He>> leads you on a grand chase. <br><br> Two foxes briefly forget their places in the world, and take solace this primal delight. <<trauma -6>><<npcincr Gwylan dom 1>><<ltrauma>><<gyearning>> <<else>> <<He>> looks surprised, but grins. <<He>> leads you on a brief chase. <</if>> <br><br> You're evenly matched with <<him>> for the moment. You quickly get separated again, but you're even more determined to beat <<him>> back to the shop now. <br><br> <<gwylanChaseOptions>><<effects>> <<if $phase is "scream">> <<set _escaped to true>> You duck and screech at <<bhim>>. <<bHe>> stops and screams back. You scream louder. <br><br> You get into a contest of screaming and barking at each other, until <<bhe>> backs down long enough for you to keep running. <<elseif $phase is "screech">> <<set _escaped to true>> You flare out your wings and let out a piercing screech. <<bHe>> stops in <<bhis>> tracks, <<bhis>> tail puffing up. <<bHe>> turns and runs without daring to challenge you again. <<elseif $phase is "dodge">> <<if $danceSuccess>> <<set _escaped to true>> <span class="green">You spin and duck under the <<beasttype>>'s pounce.</span> <<bHe>> looks back at you, <<bhis>> ear twitching. <<bHe>> doesn't seem to think you're worth chasing, despite your scent. <<else>> You try to dodge the <<beasttype>>'s pounce, <span class="red">but you're too slow</span>. <<if $monster is 1 or $settings.bestialityEnabled>> <<bHe>> tackles you to the ground. <br><br> <<link [[Next|Gwylan Forest Run Attacked]]>><<set $molestationstart to 1>><</link>> <br> <<else>> <<set _escaped to true>> <<bHe>> chases you through the woods. You run until you can no longer hear <<bhim>> behind you. You're not sure if you outran <<bhim>> or <<bhe>> grew bored. <<beastescape>><<gtiredness>><<tiredness 4>> <</if>> <</if>> <<else>> <<if $physiqueSuccess>> <<set _escaped to true>> <span class="green">You catch the <<beasttype>> mid-pounce and push <<bhim>> aside.</span> <<bHe>> tumbles to the ground and looks back at you, <<bhis>> ear twitching. <<bHe>> doesn't seem to think you're worth chasing, despite your scent. <<else>> You try to redirect the <<beasttype>>'s pounce, <span class="red">but you're not strong enough</span>. <<if $monster is 1 or $settings.bestialityEnabled>> <<bHe>> tackles you to the ground. <br><br> <<link [[Next|Gwylan Forest Run Attacked]]>><<set $molestationstart to 1>><</link>> <br> <<else>> <<set _escaped to true>> <<bHe>> chases you through the woods. You run until you can no longer hear <<bhim>> behind you. You're not sure if you outran <<bhim>> or <<bhe>> grew bored. <<beastescape>><<gtiredness>><<tiredness 4>> <</if>> <</if>> <</if>> <<set $phase to 0>> <<if _escaped>> <<endevent>><<npc Gwylan>><<person1>> <br><br> <<gwylanChaseOptions>> <</if>><<if $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<beastCombatInit>> <<if $beastRitual.distance lte 0 or $beastRitual.progress gte 4>> <<enable_rescue>> <</if>> <<set $enemytrust -= 40>> <</if>> <<effects>> <<effectsman>> <br> <<beast $enemyno>> <br><br> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Gwylan Forest Run Attacked Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Gwylan Forest Run Attacked]]>><</link>></span><<nexttext>> <</if>><<effects>><<set $beastRitual.stalked to "done">> <<if $enemyarousal gte $enemyarousalmax>> <<beastejaculation>> The <<beasttype>> grunts in satisfaction, and leaves you lying between the trees. <br><br> <<tearful>> you rise to your feet. You start heading towards the forest shop again. <<if $beastRitual.distance lte 2 and $beastRitual.distance gte 0>> You've definitely fallen behind now. <</if>> <<set $beastRitual.distance -= 2>><<set $beastRitual.time += 3>> <br><br> <<clotheson>> <<endcombat>> <<npc Gwylan>><<person1>> <<gwylanChaseOptions>> <<elseif $enemyhealth lte 0>> The <<beasttype>> yelps and flees into the forest. <br><br> <<tearful>> you gather yourself. You start heading towards the forest shop again. <<if $beastRitual.distance lte 2 and $beastRitual.distance gte 0>> You've definitely fallen behind now. <</if>> <<set $beastRitual.distance -= 2>><<set $beastRitual.time += 3>> <br><br> <<clotheson>> <<endcombat>> <<npc Gwylan>><<person1>> <<gwylanChaseOptions>> <<elseif $rescue is 1>> You hear something whip through the air as the <<beasttype>> growls. <span class="pink">A collar snaps in place around <<bhis>> neck with perfect accuracy.</span> <br><br> "Get off of <<phim>>!" Gwylan shouts as <<nnpc_he "Gwylan">> runs past, putting the leash over <<his>> shoulder and using <<his>> whole body weight to pull the <<beasttype>> off of you. <<bHis>> claws dig into the dirt, but <<bhes>> ultimately pulled away right as the collar snaps from the tension. Seeing <<bhes>> outnumbered, <<bhe>> flees back into the forest quickly. <br><br> Gwylan pants, but only stops briefly. "Race is still on!" <br><br> <<if $beastRitual.collared>> You look down at your own collar. You wonder how many of these Gwylan carries on <<nnpc_him "Gwylan">> at any given time. <br><br> <</if>> <<clotheson>> <<endcombat>> <<npc Gwylan>><<person1>> <<gwylanChaseOptions>> <<else>> The <<beasttype>> yelps and flees into the forest. <br><br> <<tearful>> you gather yourself. You start heading towards the forest shop again. <<if $beastRitual.distance lte 2 and $beastRitual.distance gte 0>> You've definitely fallen behind now. <</if>> <<set $beastRitual.distance -= 2>><<set $beastRitual.time += 3>> <br><br> <<clotheson>> <<endcombat>> <<npc Gwylan>><<person1>> <<gwylanChaseOptions>> <</if>><<effects>><<run statusCheck("Gwylan")>> <<if $phase is "pet" or ($phase is "past" and $hypnosis_traits.devotion gte 1 and $beastRitual.petplay gte 2 and !$willpowerSuccess)>> <<if $phase is "past" and $hypnosis_traits.devotion gte 1 and $beastRitual.petplay gte 2 and !$willpowerSuccess>> You begin to sneak around the edge of the clearing. Gwylan calls your name once more. <<hypnosisText "<span class='red'>The worry in <<his>> voice is palpable, and sends a needle of guilt through your heart. You can't help yourself.</span>">> <br><br> <</if>> You bound out of your hiding spot on all fours, right for Gwylan. <<He>> turns to you and smiles widely, <<his>> arms outstretched. <br><br> You leap into <<his>> embrace. <<if $bodysize gte 2>> <<Hes>> unable to hold against your full weight, and you easily topple <<him>>. <<else>> <<He>> catches you, but can't manage your momentum. The two of you twirl and fall. <</if>> <<He>> giggles as you lick <<his>> face. "Oh, that's a <<pcpetname "Gwylan" "good">>! I'm sorry for leaving you so far behind." <<He>> pets you, and you feel oddly safe. <<if $beastRitual.petplay gte 3 and !$beastRitual.petplayHypno>><<set $beastRitual.petplayHypno to true>>It feels right to act like this with Gwylan. <<gwylanHypnosis "devotion" 3>><</if>> <<stress -2>><<lstress>> <br><br> <<if $beastRitual.lewdOption>> <span class="pink">With Gwylan pinned under you, your mating instincts flare up again.</span> <br><br> <</if>> <<link [[Get up|Gwylan Forest Run Clearing Up]]>><</link>><<handholdingvirginitywarning>> <br> <<if $fox gte 4>> <<link [[Get up and run ahead!|Gwylan Forest Run Clearing Up Run]]>><<transform fox 1>><</link>><<fox>> <br> <</if>> <<if $beastRitual.lewdOption>> <<link [[Hump <<his>> leg|Gwylan Forest Run Clearing Hump]]>><</link>><<deviant1>> <br> <<if hasSexStat("deviancy", 3)>> <<link [[Mount <<him>>|Gwylan Forest Run Clearing Mount]]>><</link>><<deviant3>> <<else>> <<insufficientStat "deviancy" "to mount <<him>>">> <</if>> <br> <</if>> <<elseif $phase is "past">> <<if $hypnosis_traits.devotion gte 1 and $beastRitual.petplay gte 2>> <span class="green">You manage to shake off the compulsion to run up to <<him>>.</span> <</if>> You sneak around the clearing and continue. You don't get much of a lead before you hear <<him>> yell from behind you. "Oh, very clever!" <br><br> <<set $beastRitual.distance to 1>> <<gwylanChaseOptions>> <<else>> You slowly leave your hiding spot. <<switch $speech_attitude>> <<case "meek">> "I'm here, I'm sorry I fell so far behind," you say. <<case "bratty">> "Wow, didn't know you cared about me that much. I'm fine," you say. <<default>> "I'm right here, I'm fine! Sorry for worrying you," you say. <</switch>> <br><br> Gwylan smiles and looks relieved. "Oh, thank goodness. I'm sorry for leaving you so far behind. It's not much further to the shop now, let's go!" <<He>> takes off again. <br><br> <<set $beastRitual.distance to 0>> <<gwylanChaseOptions>> <</if>><<effects>><<run statusCheck("Gwylan")>> <<set $beastRitual.ambush to true>> <<if $phase is "ambush">> You hide in the foliage, waiting for Gwylan. The smell becomes more intense as <<he>> approaches, and you pounce as <<he>> comes into range. <br><br> <<if $skulduggerysuccess is 1>> <<set _continue to true>> <span class="green"><<He>> never saw you coming.</span> You easily pin <<him>> to the ground. <<else>> <<He>> turns at the last moment and <span class="red">ducks into your pounce, causing you to roll right over <<his>> shoulder.</span> You manage land on your hands and feet and recover quickly. <br><br> You look up. Gwylan grins at you as <<he>> continues running ahead. <br><br> <<set $beastRitual.distance to 0>><<set $beastRitual.time to 0>> <<gwylanChaseOptions>> <</if>> <<else>> <<set _continue to true>> You spring from your hiding spot on all fours. Gwylan turns to you with a relieved smile on <<his>> face, but it quickly drops as <<he>> realises what you're doing. <br><br> It's too late for <<him>> to do anything about it, though. You're already on <<him>>. <<His>> guard was down, and you easily pin <<him>> to the ground. <</if>> <<He>> struggles against your grip for a moment, but <<he>> isn't very strong. <<He>> quickly submits, looking up to you while panting. "Alright, <<pcpetname "Gwylan" "name">>, you got me. What's your next move?" <<npcincr Gwylan lust 4>><<gglust>> <br><br> <<if _continue>> <<if $beastRitual.lewdOption>> <span class="pink">With Gwylan pinned under you, your mating instincts flare up again.</span> <br><br> <</if>> <<link [[Get up|Gwylan Forest Run Clearing Up]]>><</link>><<handholdingvirginitywarning>> <br> <<if $fox gte 4>> <<link [[Get up and run ahead!|Gwylan Forest Run Clearing Up Run]]>><<transform fox 1>><</link>><<fox>> <br> <</if>> <<if $beastRitual.lewdOption>> <<link [[Hump <<his>> leg|Gwylan Forest Run Clearing Hump]]>><</link>><<deviant1>> <br> <<if hasSexStat("deviancy", 3)>> <<link [[Mount <<him>>|Gwylan Forest Run Clearing Mount]]>><</link>><<deviant3>> <<else>> <<insufficientStat "deviancy" "to mount <<him>>">> <</if>> <br> <</if>> <</if>><<effects>><<run statusCheck("Gwylan")>> You start to grind your pelvis against Gwylan's leg. The scent on <<him>> is making every touch more intense. <<deviancy1>> <<if _gwylanStatus.includes("dom")>> "Aww, is <<pcpetname "Gwylan" "my">> all pent up?" <<if $beastRitual.disobey>> <<He>> places <<his>> hands against your chest, and pushes. "That's just too bad." <span class="purple"><<He>> rolls out from under you and quickly stands.</span> "You were a naughty <<girl>> earlier, you haven't earned a treat yet." <<He>> winks, and starts to run again. <br><br> You feel frustrated. <br><br> <<set $beastRitual.distance to -1>><<set $beastRitual.time to 0>> <<gwylanChaseOptions>> <<else>> <<set _continue to true>> <<He>> puts <<his>> hands on your cheeks and strokes you. "Go on then." <<He>> raises <<his>> leg to help you along, lifting the tunic. <<arousal 1000>><<ggarousal>> <</if>> <<elseif _gwylanStatus.includesAny("aroused", "lust")>> <<set _continue to true>> <<His>> face turns bright red. "Ah. Well, I suppose this is my own fault. Go on, just be quick about it." <<He>> averts <<his>> eyes from you and lifts <<his>> tunic. <<else>> <<set _continue to true>> "What are you..." <<His>> face turns bright red. "Ah. I suppose the scent is... I should have considered that." <<He>> looks away, as if searching for an escape, before looking back down at you. "W-well, I suppose there's no harm in it, just be quick." <</if>> <<if _continue>> <br><br> <<outfitChecks>> <<if _bottom>> You feverishly displace your _bottom.name and <<else>> You readjust you position and <</if>> <<if $player.penisExist>> thrust your <<penis>> along <<his>> leg. <<else>> grind your <<pussy>> on <<his>> leg. <</if>> You pant as the heat inside you grows. <<gggarousal>><<arousal 5000>> <br><br> <<if $arousal gte $arousalmax>> <<orgasm>><<set _orgasm to true>><<set $beastRitual.orgasm to true>> Gwylan patiently smiles. "All better?" <<He>> gently pets you as the orgasm subsides. <<trauma -2>><<npcincr Gwylan lust 1>><<ltrauma>><<glust>> <br><br> <<else>> <<He>> softly hums a soothing tune as you continue. Your thrusts get faster. <<if _gwylanStatus.includesAny("dom", "lust")>> <<set _orgasmAssist to true>> <<His>> stare remains locked on you. "You're certainly taking your time, dear." <<He>> grins, before gently pushing against your chest. Your desperation to cum makes you resist it at first, but you eventually yield. <<He>> pushes you down on your back. "Let me help." <br><br> <<if $player.penisExist>> <<His>> hand genty wraps around your <<penis>>. <<His>> fingers slowly run up the shaft. <<else>> <<His>> hand gently rubs your <<pussy>>. <<His>> thumb slowly circles on your clit. <</if>> <<Hes>> barely even touching you, but it feels incredible. <<arousal 10000>><<gggarousal>> <<else>> You wrap your arms around <<him>> for more leverage. <<arousal 2000>><<ggarousal>> <</if>> <br><br> <<if $arousal gte $arousalmax>> <<orgasm>><<set _orgasm to true>><<set $beastRitual.orgasm to true>> Gwylan patiently smiles. "All better?" <<if _orgasmAssist>> <<He>> licks your fludis off of <<his>> hand. <<npcincr Gwylan lust 2>><<glust>> <<else>> <<He>> gently pets you as the orgasm subsides. <<trauma -2>><<npcincr Gwylan lust 1>><<ltrauma>><<glust>> <</if>> <br><br> <</if>> <</if>> <<if _orgasm>> You cling to <<him>> for a few minutes. <<He>> seems happy to oblige you. <<He>> looks down at <<his>> bare leg, and the <<if $player.penisExist>>cum<<else>>fluid<</if>> you left behind on it. "Oh, dear. You made a mess." <<He>> giggles. <<else>> Eventually, <<he>> gently pushes you away. "That's enough, we need to keep moving." You whine, but oblige. <<He>> looks down at <<his>> bare leg, and the <<if $player.penisExist>>precum<<else>>fluid<</if>> you left behind on it. "Oh, dear. You made a mess." <<He>> giggles. <</if>> "Come on, <<pcpetname "Gwylan">>. We've taken long enough, and the smell will attract our quarry soon." <br><br> <<link [[Get up|Gwylan Forest Run Clearing Up]]>><</link>> <br> <</if>><<effects>><<run statusCheck("Gwylan")>> You keep <<his>> arms pinned down, and start to grind your body against <<him>>. Your intentions are clear. <<outfitChecks>> <<if _bottom>> You have to partially release <<him>> to displace your _bottom.name. <<else>> You have to partially release <<him>> to displace <<his>> tunic. <</if>> <br><br> <<if _gwylanStatus.includes("heat")>> <<He>> does nothing to try stopping you. After a moment, <span class="pink"><<he>> even starts to help you.</span> <br><br> <<His>> breathing starts to get heavy, and <<his>> face is deep red. You can smell <<his>> arousal. <<if _gwylanTF.known and _gwylanTF.tail is "revealed">> <<His>> tail sways rapidly, and <<he>> lets out a few low whines. <</if>> <br><br> <<link [[Next|Gwylan Forest Run Sex]]>><<set $sexstart to 1>><</link>> <br> <<elseif _gwylanStatus.includesAny("dom", "lust") and !$beastRitual.disobey and !$gwylan.punishment and !_gwylanStatus.includes("cautious")>> "Oh my, you've gotten bold," <<he>> says with a hint of concern. "Slow down a little. Let me—" You're not listening. You fumble with <<his>> belt, unclasping it after a brief struggle. You grab <<his>> tunic in your mouth, tugging it down. <br><br> <<He>> bonks you on the head. "Let me help before you rip it!" You give <<him>> some room. <<He>> lets out a deep breath, and displaces <<his>> tunic to give you access. <br><br> <<He>> blushes, and looks around. "This spot is secluded enough. Come on then, <<pcpetname "Gwylan">>." <br><br> <<link [[Next|Gwylan Forest Run Sex]]>><<set $sexstart to 1>><</link>> <br> <<else>> <<He>> reaches down to <<his>> belt and grabs a vial, hastily uncorking it with <<his>> teeth and holding it up to your nose. It's filled with a fine blue powder and smells like a snowy beach. <<arousal -1000>><<llarousal>> <br><br> You blink, taking a moment to remember how you got here and what you were doing. As you do, Gwylan worms out from under you. <<if $gwylanSeen.includes("ritual_sex") and ($beastRitual.disobey or $gwylan.punishment)>> <<if $worn.neck.type.includes("leash")>> You feel a harsh tug on your leash. <<else>> You feel a hand gently lift your chin. <</if>> "<<pcPetname "Gwylan" "bad">>. We'll have to do something about this when we get back to my shop." <<He>> tsks. <<else>> "I'm sorry about this. I should have been more considerate about how the mixture would affect you. I should have warned you." <<He>> gives you a guilty smile. "You should feel better now." <</if>> <br><br> <<He>> stands and reaches a hand down to you. <br><br> <<link [[Take it|Gwylan Forest Run Clearing Up]]>><</link>><<handholdingvirginitywarning>> <br> <<if $gwylanSeen.includes("ritual_sex")>> <<if displayDefiantOption(500)>> <<link [[Try mounting <<him>> again|Gwylan Forest Run Clearing Mount Persist]]>><<wolfDefiant 500>><</link>><<defianttext 500>><<gwylanWillpowerDifficulty>> <br> <<else>> <<insufficientStat "submissive" "to try mounting <<him>> again">> <br> <</if>> <</if>> <</if>><<effects>><<run statusCheck("Gwylan")>> <<if $hypnosis_traits.devotion gte 1 and !$willpowerSuccess>> Your muscles twitch, <<hypnosisText "but you can't bear <<if $beastRitual.disobey or $gwylan.punishment>>further <</if>>disappointing <<gwylanHypnoName>>.">> <br><br> <<He>> gives you a patient smile despite your disobedience. <br><br> <<link [[Take <<his>> hand|Gwylan Forest Run Clearing Up]]>><</link>><<handholdingvirginitywarning>> <br> <<else>> You spring forward, grabbing the hem of <<his>> tunic in your teeth. <<He>> looks shocked. <br><br> You claw at <<his>> belt with both hands, fumbling for a moment before managing to undo the clasp. "<<pcPetname "Gwylan" "bad">>! Stop that!" You're not listening. <<He>> tries pushing you away, but you're determined. <br><br> You pull on <<his>> tunic with your teeth and hands, trying to pull it down over <<his>> shoulders. The urge to mate pushes you on. After some struggle, <span class="pink">the tunic slides off <<his>> shoulders. <<Hes>> not wearing anything underneath.</span> <<if $pronoun is "f">> <<He>> covers <<his>> exposed <<= C.npc.Gwylan.breastsdesc>>. <</if>> <<He>> tries to take a step away from you, only to stumble and land on <<his>> bottom. "D-down!" <br><br> There's fear in <<his>> voice, but a hint of arousal, too. You can smell both on <<him>>. You pull <<his>> tunic completely off. <<He>> looks around nervously. "This spot is secluded enough..." <br><br> You crawl on top of <<him>>. <<He>> swallows, and smiles. "Come on then, <<pcpetname "Gwylan">>. Show me you deserve it." <br><br> <<link [[Next|Gwylan Forest Run Sex]]>><<set $sexstart to 1>><</link>> <br> <</if>><<run statusCheck("Gwylan")>> <<if $sexstart is 1>> <<set $sexstart to 0>> <<consensual>> <<set $consensual to 1>> <<neutral 1>> <<lowerstrip>><<underlowerstrip>> <<maninit>> <<npcexpose>> <<set $enemytrust += 200>> <<gwylanCombatInit>> <</if>> <<if $timer lte 0 and $trance is 1>> <<set $trance to 0>> <span class="teal">You snap out of Gwylan's trance.</span> <</if>> <<effects>> <<effectsman>> <<man>> <<stateman>> <br><br> <<actionsman>> <<if $orgasmcurrent gte $combat_player_orgasm_target>> <span id="next"><<link [[Next|Gwylan Forest Run Sex Finish]]>><</link>></span><<nexttext>> <<elseif _combatend>> <span id="next"><<link [[Next|Gwylan Forest Run Sex Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Gwylan Forest Run Sex]]>><</link>></span><<nexttext>> <</if>><<effects>><<run statusCheck("Gwylan")>> <<if $orgasmcurrent gte $combat_player_orgasm_target>> <<set $enemyarousal += 200>> <<if $enemyarousal gte $enemyarousalmax>> <<if $hallucinations gte 2 and $NPCList[0].chest isnot "clothed">> The tattoo on Gwylan's <<bellyDescription "Gwylan">> flares to life, and <<he>> shivers as you climax. <<else>> Your <<if $orgasmcurrent gt 1>>final<</if>> orgasm makes Gwylan shiver. <</if>> <span class="pink">It pushes <<him>> over the edge too.</span> <<ejaculation>><<npcincr Gwylan lust -25>><<llllust>> <<else>> <<if _gwylanStatus.includesAny("dom", "lust")>> <<He>> hums and holds you tight you as you recover from your <<if $orgasmcurrent gt 1>>final<</if>> orgasm. <<gwylanHypnosis "devotion" 2>><br> <<if $consensual is 1>> "You did great, <<pcpetname "Gwylan">>," <<else>> "There, isn't that better?" <</if>> <<he>> coos. <<else>> <<He>> makes a pleased sound as your <<if $orgasmcurrent gt 1>>final<</if>> orgasm subsides. <<gwylanHypnosis "devotion" 1>><br> "That should do," <<he>> says. <<if $consensual is 0>> "The struggle was thrilling, dear, but I'm only trying to help you." <</if>> <</if>> <<if $penisfucked is 1>> <<He>> rubs <<his>> <<bellyDescription "Gwylan">> in satisfaction until you pull out of <<him>>. <<elseif $vaginafucked is 1>> <<He>> rubs your <<bellyDescription>> in satisfaction, until you make <<him>> pull out. <</if>> <</if>> <<npcincr Gwylan lust 5>><<gglust>> <br><br> <<He>> gets up and holds <<his>> hand out to you. <<elseif $enemyarousal gte $enemyarousalmax>> <<ejaculation>> <<if $orgasmcurrent is 0 and $hypnosis_traits.devotion>> <<gwylanHypnosis "devotion" -2>> <</if>> <<npcincr Gwylan lust -20>><<lllust>> <br><br> <<He>> gets up and holds <<his>> hand out to you. <<elseif $enemyhealth lte 0>> <<set $gwylan.punishment to true>> Gwylan rolls off of you. "That hurt, dear." <<He>> giggles dryly. "Naughty, naughty. I'll remember this." <<npcincr Gwylan dom -2>><<lyearning>> <br><br> <<His>> smile is dark, but <<he>> extends <<his>> hand to help you stand regardless. <<else>> Gwylan gets up and holds <<his>> hand out to you. <</if>> <<set $beastRitual.sex to true>> <<clotheson>> <<endcombat>> <<npc Gwylan>><<person1>> <<link [[Get up|Gwylan Forest Run Clearing Up]]>><</link>><<handholdingvirginitywarning>> <br> <<if $fox gte 4>> <<link [[Get up and run ahead!|Gwylan Forest Run Clearing Up Run]]>><<transform fox 1>><</link>><<fox>> <br> <</if>><<effects>><<run statusCheck("Gwylan")>> Gwylan helps you to your feet. "It's not much further to the shop now. Why don't we just walk the rest of the way?" <<He>> holds your hand. <<takeHandholdingVirginity "Gwylan" "consensual">> <br><br> <<set _distance to $beastRitual.progress || 1>> <<set _timeToPass to Math.floor(60 / $beastRitual.progress)>> <<set _hours to Math.floor(_timeToPass / 60)>> <<set _minutes to _timeToPass % 60>> <<set _timeString to " (" +_hours+ ":" + (_minutes lt 10 ? "0": "") + _minutes + ")">> <<capture _timeToPass>> <<link [["Walk back to the shop" + _timeString|Gwylan Forest Run End]]>><<stress -1>><<pass _timeToPass>><<set $phase to "walkWith">><</link>><<lstress>> <</capture>> <br><<effects>><<run statusCheck("Gwylan")>> You quickly dart around Gwylan's legs on all fours, getting a lead on <<him>>. <<He>> groans as <<he>> prepares to run after you. "Very clever, <<pcpetname "Gwylan" "simple">>." <br><br> <<set $beastRitual.distance to 1>> <<gwylanChaseOptions>><<effects>><<set $location to "forest_shop">><<set $outside to 0>><<run statusCheck("Gwylan")>> <<if $phase is "walkWith">> <<set $beastRitual.result to "tie">> <<if $beastRitual.petplay gte 3>> You make it back to the forest shop, Gwylan walking you like a dog for the end. <<He>> kneels down and pets your cheeks. <<if $beastRitual.sex or $beastRitual.orgasm>> "I expect you to be on your best behavior now that you've gotten your treat," <<he>> says. <<else>> You were a very <<pcpetname "Gwylan" "good">>." <<trauma -1>><<ltrauma>> <</if>> <<else>> You make it back to the forest shop, hand-in-hand with Gwylan. "That was nice," <<he>> says. "I'm so used to walking the forest alone." <<He>> turns and smiles at you. <</if>> <<else>> <<if $beastRitual.binding is "leash">> You and Gwylan are neck and neck. <<if $athleticsSuccess>> <span class="green">At the last minute, you manage to push yourself.</span> <</if>> <<if $beastRitual.distance gte 1>> <<set $beastRitual.result to "won">> <span class="green">You come out ahead.</span> <<elseif $beastRitual.distance is 0>> <<if $athleticsSuccess>> <<set $beastRitual.result to "won">> <span class="green">You take the lead at the last minute.</span> <<else>> <<set $beastRitual.result to "tie">> <span class="blue">You arrive at the exact same time.</span> <</if>> <<else>> <<set $beastRitual.result to "lost">> <span class="pink">Gwylan makes it first.</span> <</if>> <<elseif $phase is "walk">> You walk the rest of the way to the forest shop. <<if $beastRitual.distance gte 2>> <<set $beastRitual.result to "won">> <span class="green">You don't see Gwylan here yet. Despite walking for the final stretch, you won!</span> <br><br> Some time later, <<he>> shows up. <<else>> <<set $beastRitual.result to "lost">> <span class="pink">Gwylan is already here.</span> <</if>> <<else>> <<if $athleticsSuccess>> <<set $beastRitual.distance++>> <span class="green">You make the final stretch with grace.</span> <<else>> <span class="pink">Your pace is uneven during the final stretch.</span> <</if>> You reach the forest shop. <<if $beastRitual.distance gte 1>> <<set $beastRitual.result to "won">> <span class="green">You don't see Gwylan here yet. You won!</span> <br><br> Some time later, <<he>> shows up. <<elseif $beastRitual.distance is 0>> <<if $athleticsSuccess>> <<set $beastRitual.result to "won">> <span class="green">Gwylan shows up just after you. You just barely won!</span> <<else>> <<set $beastRitual.result to "lost">> <span class="pink">Gwylan is already here, but looks like <<he>> only just arrived. You just barely lost.</span> <</if>> <<else>> <<set $beastRitual.result to "lost">> <span class="pink">Gwylan is already here.</span> <</if>> <</if>> <br><br> <<if $beastRitual.distance lte -2>> <<He>> leans against the wall. <<else>> <<He>> breathes heavily. <</if>> <<if $beastRitual.result is "won">> "I'm... impressed. Very impressed." <<He>> smiles. "I know well how to move through the forest. There aren't many that can outpace me." <<npcincr Gwylan dom 1>><<gyearning>> <<elseif $beastRitual.result is "lost">> "Maybe next time," <<he>> says with a smile. "Don't feel bad. I have a lot of experience moving through the forest." <<else>> "Let's call it a tie, then. I'm impressed you were able to keep up." <</if>> <</if>> <br><br> <<He>> leads you into the shop. <<if !$gwylanSeen.includes("ritual_beast")>> "We're not done yet." <</if>> <<if $underupperwetstage gte 2 or $upperwetstage gte 2 or $lowerwetstage gte 2 or $underlowerwetstage gte 2>> <<He>> helps you dry off once you're inside, before peeling off <<his>> own soaked tunic. <<arousal 400>><<garousal>> <<dry_full>> <br><br> <</if>> <<storeonfeet "gwylanRitual">> The two of you head into the garden. <br><br> <<link [[Next|Gwylan Ritual Bait]]>><<pass 5>><<endevent>><</link>> <br><<effects>><<set $location to "forest_shop_garden">><<run statusCheck("Gwylan")>><<hallucinogen 10>> <<npc Gwylan>><<person1>> <<if $gwylanSeen.includes("ritual_beast")>> You enter the garden, and walk to the wooden bath. Gwylan enters just after you, holding two glasses of water and handing one of them to you before downing the other. <<stress -1>><<tiredness -1>><<lstress>><<ltiredness>> <br><br> <<else>> You enter the garden. Gwylan enters just after you, holding two glasses of water and handing one of them to you before downing the other. <<stress -1>><<tiredness -1>><<lstress>><<ltiredness>> <br><br> <<He>> sits you down next to a large wooden tub. <</if>> <<He>> disappears around a corner, and you hear something like a switch being flipped. <span class="green">The garden is bathed in pools of dancing green light.</span> <<He>> returns wearing a silk robe and holding a <<if $beastRitual.lure is "dryad">>bucket<<else>>small ivory bowl<</if>>. <<He>> places it down and lights an incense burner, before walking to a wooden hatch against the wall of the garden. <<He>> unlocks and opens it, revealing a moss-covered hole behind it. <br><br> <<if $beastRitual.sex or $beastRitual.orgasm and $beastRitual.person is "Gwylan">> <<set _scent to "our">> <<elseif $beastRitual.person is "Gwylan">> <<set _scent to "my">> <<else>> <<set _scent to "your">> <</if>> <<switch $beastRitual.lure>> <<case "wolf">>"The wolves are bound to have caught _scent scent. Now I need to ensure they're docile when they get here. They'll be looking to mate." <<case "fox">>"The foxes are bound to have caught _scent scent. Now I need to ensure they don't try anything clever when they get here." <<default>>"One of the forest's spirits is bound to have caught _scent scent. They're capricious, so I'll need to appease them before they arrive." <</switch>> <<He>> drops the head of a hose into the wooden tub. <<if !$gwylanSeen.includes("ritual_beast")>> "The mixture wasn't just for scent. It's a primer for sedation and suggestion, too. Sound is most effective for this in particular. <<if $beastRitual.hasScent or $beastRitual.isScent>> <span class="purple">Since you've been exposed to the scent, it may affect you, too.</span> The forest is part of you, after all. You may want to sit down." <<else>> <<if $fox gte 6 or $wolfgirl gte 6 or $dryad gte 6>> <span class="teal">You're not likely to be affected with the scent we used.</span> The forest is in you, though. Had we used a different tincture, this might have influenced you, too." <<else>> <span class="teal">You're not likely to be affected.</span> It only works to full effect on the <span class="forest-green">natural denizens of the forest</span>." <</if>> <</if>> <</if>> <br><br> <<He>> clears <<his>> throat, and clasps <<his>> hands together. <br><br> <<if $gwylanSeen.includes("ritual_beast")>> <<He>> takes a few slow, deep breaths, and starts to sing <<if $seabird_lullaby gte 2>> <span class="teal">Seabird's Lullaby</span>. <<else>> the <span class="teal">familiar melody</span>. <</if>> <<else>> After taking a few slow, deep breaths, <<he>> starts to sing a melody. <span class="teal">It's familiar.</span> You've heard it somewhere before, but you're not sure where. <</if>> <<He>> closes <<his>> eyes and raises <<his>> head. <<if _gwylanStatus.includes("heat") and $beastRitual.lure is "fox" and _gwylanTF.known>> <span class="pink">The singing is abruptly cut off as <<he>> lets out a fox-like mating scream.</span> <br><br> Gwylan doubles over, covering <<his>> mouth with both hands and blushing furiously. <<He>> stands and tries again, only for an even louder scream to follow. <br><br> After standing perfectly still for a moment, <<he>> walks back over to you and sits down, <<his>> tail beating in irritation. "This is your fault," <<he>> says, pouting. "Hopefully that was enough. Any foxes nearby will probably smell that I'm in <<if $pronoun is "m">>rut<<else>>heat<</if>> anyways." <br><br> <<He>> rests <<his>> head on your shoulder and trembles. <<He>> closes <<his>> eyes, but after a few minutes, <<he>> huffs and swings a leg over you to sit in your lap. <<His>> arms wrap around you, and <<he>> brings <<his>> mouth right to your ear. "If we had time, I would be all over you, but we shouldn't mix our fluids right now. It could... interfere..." <br><br> <span class="lewd"><<He>> starts to slowly grind on you.</span> "Just... sit still and..." <<He>> lets out hot breaths on your ear. <<arousal 1000>><<ggarousal>> <br><br> <<link [[Sit still|Gwylan Ritual Bait Heat]]>><<set $phase to 1>><<npcincr Gwylan lust -2>><</link>><<llust>> <br> <<link [[Scratch <<his>> lower back|Gwylan Ritual Bait Heat]]>><<set $phase to 2>><<npcincr Gwylan dom 3>><</link>><<ggyearning>> <br> <<link [[Use your hands to help <<him>>|Gwylan Ritual Bait Heat]]>><<set $phase to 3>><<npcincr Gwylan lust 5>><</link>><<gglust>> <br> <<elseif $islander_language gte 100>> <<if $gwylanSeen.includes("lullaby")>> After holding the tune for a moment, <<he>> adds the words to the song. <<elseif $gwylanSeen.includes("ritual_beast")>> After holding the tune for a moment, <<he>> adds words to the song. <span class="green">You understand them now. It's the islander tongue.</span> <<else>> After holding the tune for a moment, <<he>> adds words to the song. They're in another language, <span class="green">but one you know. It's the islander tongue.</span> <</if>> <br><br> /* ToDo: Gwylan - Option to sing with Gwylan after hearing the song once? */ <<link [[Listen|Gwylan Ritual Bait Song]]>><</link>> <br> <<else>> After holding the tune for a moment, <<he>> adds words to the song. <span class="blue">They're in another language, one you don't understand.</span> <br><br> <<He>> raises a hand after the first verse, the sleeves of <<his>> robe dancing in the wind. After the fourth, the words pause, and <<he>> begins a slow, elegant dance. <<if Weather.name is "thunderStorm">> A roll of thunder fills in for <<his>> voice. <<elseif Weather.name is "heavyPrecipitation">> The <<= Weather.precipitation>> itself yields to <<his>> performance. <<elseif Weather.name is "lightPrecipitation">> The <<= Weather.precipitation>> itself yields to <<his>> performance. <<elseif Time.season is "winter">> The winter air seems to warm all around the garden in response. <<else>> Fallen leaves swirl around in the wind, joining <<him>> in <<his>> dance. <</if>> <br><br> <<if $beastRitual.hasScent or $beastRitual.isScent or $hypnosis_traits.devotion gte 3>> <span class="pink">It's mesmerising. Your eyes stay locked on Gwylan the whole time.</span> The forest joins <<him>> in <<his>> dance as your vision becomes blurred. A sense of profound calmness washes over you. <<stress -12>><<llstress>> <br> <<gwylanHypnosis "devotion" 1>> <<elseif $hypnosis_traits.slumber gte 1>> <span class="pink">It's mesmerising. Your eyes stay locked on Gwylan the whole time.</span> <<hypnosisText "Your eyelids start to feel heavy.">> <<stress -12>><<tiredness 1>><<gtiredness>><<llstress>> <<else>> It's very pretty, and a sense of calmness washes over you. <<stress -3>><<lstress>> <</if>> <br><br> The dance slows to a stop as <<he>> begins the final verse, returning to the same melody that the song began with. <<He>> finishes it with a flourish. <br><br> <<if $gwylanSeen.includes("ritual_beast")>> <<He>> lets out a long breath, before turning to you with a smile. <<else>> <<He>> lets out a long breath, before turning to you with a blush. "I don't think I've ever had an audience before. I'm sure others have heard it, but no one's been in the garden with me. You're the first." <<He>> giggles. "I hope this satisfies your curiosity." <</if>> <<if _gwylanLovePercent gte 75>> <<He>> sits down next to you and rests <<his>> head on your shoulder. <<else>> <<He>> sits down next to you, tucking <<his>> knees up to <<his>> chest. <</if>> <br><br> <<link [[Wait|Gwylan Ritual Bait Wait]]>><<pass 5>><</link>> <br> <</if>><<effects>><<run statusCheck("Gwylan")>> <span class="narration"> <<if $beastRitual.lure is "wolf">> Noble hound, tread with me.<br> Shed this taint, let us be<br> cleansed by the kindest sea. <<elseif $beastRitual.lure is "fox">> Clever kin, tread with me.<br> Shed this taint, let us be<br> cleansed by the kindest sea. <<else>> Kin of leaves, leave your tree.<br> Shed this taint, child of three.<br> Approach and you'll be free. <</if>> <br><br> </span> <<He>> raises a hand, the sleeves of <<his>> robe dancing in the wind. <br><br> <span class="narration"> <<if $beastRitual.lure is "dryad">> <<if Weather.name is "thunderStorm">> Feel the thunder inside,<br> come take shelter in mine,<br> and drink deep of the tide. <<elseif ["lightPrecipitation", "heavyPrecipitation"].includes(Weather.name)>> Let the rain settle in,<br> whispered name on the wind,<br> wash this poison within. <<elseif ["heavyClouds"].includes(Weather.name)>> Heed not these greyest skies,<br> heed as my song unties<br> reflections in your eyes. <<else>> Feel <<if Time.dayState is "night">>moonlight<<else>>the sun<</if>> on your skin,<br> whispered name on the wind,<br> let the light settle in. <</if>> <<else>> Feel the salt on your skin,<br> whispered name on the wind,<br> let the tide settle in. <</if>> <br><br> Embedded deep in bone,<br> words maiden, mother, crone,<br> like water carving stone. <br><br> Tread your path, sunwise to<br> seek what's lost, please don't rue,<br> for still, it sings for you. <br><br> </span> <<He>> pauses singing, and begins an elegant, twirling dance. <<if Weather.name is "thunderStorm">> A roll of thunder fills in for <<his>> voice. <<elseif Weather.name is "heavyPrecipitation">> The <<= Weather.precipitation>> itself yields to <<his>> performance. <<elseif Weather.name is "lightPrecipitation">> The <<= Weather.precipitation>> itself yields to <<his>> performance. <<elseif Time.season is "winter">> The winter air seems to warm all around the garden in response. <<else>> Fallen leaves swirl around in the wind, joining <<him>> in <<his>> dance. <</if>> <<if $beastRitual.hasScent or $beastRitual.isScent or $hypnosis_traits.devotion gte 3>> <span class="pink">It's mesmerising. Your eyes stay locked on Gwylan the whole time.</span> The forest joins <<him>> in <<his>> dance as your vision becomes blurred. A sense of profound calmness washes over you. <<stress -12>><<llstress>> <br> <<gwylanHypnosis "devotion" 1>> <<elseif $hypnosis_traits.slumber gte 1>> <span class="pink">It's mesmerising. Your eyes stay locked on Gwylan the whole time.</span> <<hypnosisText "Your eyelids start to feel heavy.">> <<stress -12>><<tiredness 1>><<gtiredness>><<llstress>> <<else>> It's very pretty, and a sense of calmness washes over you. <<stress -3>><<lstress>> <</if>> <br><br> <span class="narration"> <<if $beastRitual.lure is "wolf">> Noble hound, hunt no more.<br> Shed this taint, walk this shore.<br> Feel my words in your core. <<elseif $beastRitual.lure is "fox">> Clever kin, skulk no more.<br> Shed this taint, walk this shore.<br> Feel my words in your core. <<else>> Take root child, raise your shield.<br> Bear your name, unrevealed.<br> Rivers come. They will yield. <</if>> <br><br> </span> The dance slows to a stop as <<he>> begins the final verse, returning to the same melody that the song began with. <br><br> <span class="narration"> Awake now, rise from sleep.<br> The <<if $awarelevel gte 2>>Dark Elk<<else>>darkness<</if>> shall not reap<br> that which the earth will keep. <br><br> </span> <<He>> finishes with a flourish, letting out a long breath. <br><br> <<if $gwylanSeen.includes("ritual_beast")>> <<He>> turns to you with a smile. <<else>> <<He>> turns to you with a blush. "I don't think I've ever had an audience before. I'm sure others have heard it, but no one's been in the garden with me. You're the first." <<He>> giggles. "I hope this satisfies your curiosity." <</if>> <<if _gwylanLovePercent gte 75>> <<He>> sits down next to you and rests <<his>> head on your shoulder. <<else>> <<He>> sits down next to you, tucking <<his>> knees up to <<his>> chest. <</if>> <br><br> <<link [[Wait|Gwylan Ritual Bait Wait]]>><<pass 5>><</link>> <br> <<if ($seabird_lullaby is 1 or $robin_photo_stage is 2) and !$gwylanSeen.includes("lullaby")>> <<link [[Ask Gwylan about the song|Gwylan Lullaby Ask]]>><</link>> <br> <</if>><<effects>><<run statusCheck("Gwylan")>> <<if $avery_fate is "ascended" and $avery_mansion?.fox?.end>> <<switch $speech_attitude>> <<case "meek">>"That song was so pretty, but I've heard a different version of it. Come to think of it, <<case "bratty">>"Where did you learn that song? I've heard it before, but the words were different. In fact, <<default>>"I know I've heard that song somewhere before. You changed the words though. Come to think of it, <</switch>> I had a strange dream about it. Someone with antlers was singing while playing the melody on a piano." <br><br> "Are you certain it was a dream?" <<He>> looks to you with a smile. "Dreams are often reflections of memories sprinkled with half-truths. The words are interchangeable. It's the melody that's important." <<elseif $avery_fate isnot "ascended" and $avery_mansion?.fox?.end and $brownFoxRevealed>> <<switch $speech_attitude>> <<case "meek">>"Your voice is so pretty. <<case "bratty">>"Nice singing. <<default>>"You have a lovely voice. <</switch>> Where did you learn the song? You said you'd tell me more about it, some day, and the words make it sound even more familiar." <br><br> <<His>> head tilts. "I'm glad you remembered, although I'm impressed you understood the words." <<elseif $jordansong>> <<switch $speech_attitude>> <<case "meek">>"That song was so pretty, where did you learn it? I've heard it recently, but the words were different." <<case "bratty">>"Where did you learn that song? I've heard it before, but with different words." <<default>>"I know I've heard that song somewhere before. The words were a little different, though. Where did you learn it?" <</switch>> <br><br> <<His>> head tilts. <<if $gwylanTalked.includes("islander")>> "I'm not surprised you know it, although I'm impressed that you picked up the tongue. Just how long were you on the island?" <<else>> "I'm not surprised you know it, although I'm surprised you could understand it! What else is rattling around in that head of yours?" <</if>> <<else>> <<switch $speech_attitude>> <<case "meek">>"That song was so pretty, where did you learn it? I've heard it recently, but not with words." <<case "bratty">>"Where did you learn that song? I've heard it before, but no one else has known the words." <<default>>"I know I've heard that song somewhere before. This is the first time someone else has known the words, though. Where did you learn it?" <</switch>> <br><br> <<His>> head tilts. <<if $gwylanTalked.includes("islander")>> "I'm not surprised you know it, although I'm impressed that you picked up the tongue. Just how long were you on the island?" <<else>> "I'm not surprised you know it, although I'm surprised you could understand it! What else is rattling around in that head of yours?" <</if>> <</if>> <<He>> ruffles your hair, but <<his>> expression slowly turns somber. <br><br> "It's called <span class="teal">Seabird's Lullaby</span>. A song passed down through my family." <<He>> huddles in on <<himself>> slightly, looking away. "My great <<if C.npc.Winter.pronoun is "m">>grandmother<<else>>grandfather<</if>> sang it to the orphans <<if C.npc.Winter.pronoun is "f">>he<<else>>she<</if>> took in back in the forties. Until the town deemed <<if C.npc.Winter.pronoun is "f">>him<<else>>her<</if>> unfit to be a caretaker due to a head injury." <br><br> <<He>> sighs. <<if $gwylanTalked.includes("vintage")>> "You already know the story. <span class="teal">Winter told you all about it, didn't <<nnpc_he "Winter">>?</span> I'm sure you can put the rest of the pieces together yourself. <<else>> "I'm sure someone else could tell the story better. <</if>> Regardless, it's been popular with orphans and their caretakers ever since those days." <br><br> You feel a vague memory creep towards the front of your mind as you look at Gwylan, and think about the song. It vanishes just as quickly. <br><br> <<set $seabird_lullaby to 2>> <<set $gwylanSeen.pushUnique("lullaby")>> <<link [[Wait|Gwylan Ritual Bait Wait]]>><<pass 5>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<if $phase is 1>> You sit still, letting Gwylan grind against you. It quickly becomes more intense, until it's more like <<hes>> riding you. <<He>> tucks <<his>> head into the crook of your neck. <br><br> <<He>> lets out short yips and barks as <<he>> gets closer, but <<he>> can't seem to finish by <<himself>>. <<He>> lets out a whine, slowing to a stop. <<His>> legs lock around you tightly in irritation. <br><br> You wrap your arms around <<him>> and hug <<him>>. <<His>> tail beats happily at that, at least. <<elseif $phase is 2>> You reach down and scratch Gwylan's lower back, right above the base of <<his>> tail. <<He>> tenses up against you for a moment, but <<his>> grinding slows down. <<His>> hug around you gets tighter. <br><br> You continue to scratch, and <<he>> seems to calm down further. <<switch $speech_attitude>> <<case "meek">> "Who's a pretty fox? Gwylan is," you say with a giggle. <<case "bratty">> "You're adorable when you're like this," you say. "Who's a good fox?" <<default>> "It's okay. Who's a good fox? Gwylan is," you say. <</switch>> <br><br> <<He>> lets out a contented sigh at your words, snuggling <<his>> head into the crook of your neck. <<His>> grinding finally stops, and <<he>> seems happy just to be held and scratched by you. <<His>> tail flits and wags side to side. <<else>> You slowly run your hands down over <<his>> body. <<He>> slows down and pulls back, giving you a glare. There's a glow to <<his>> eyes, and <<his>> pupils look just the slightest bit slitted. <br><br> Your hands reach <<his>> <<bellyDescription "Gwylan">>, which makes <<him>> shiver. "D-don't start something you can't finish," <<he>> says. You grin at <<him>> in return, easily slipping your hands into <<his>> loose robe. <br><br> <<if C.npc.Gwylan.penis isnot "none">> <<He>> tenses up as you get your hand around <<his>> fully erect <<npcPenis>>. You already feel precum on your hands. You use it to lubricate <<him>>, and start to work <<his>> shaft. <<He>> breathes heavily and starts to hump against your hand. <br><br> You move the bottom of <<his>> robe out of the way, giving you easier access, and rub the head with your thumb. <<His>> legs clench. You speed up, and <<he>> doesn't last long. <<His>> back arches and <<he>> lets out a long, quiet moan. <span class="pink"><<He>> shudders in climax, shooting ropes of hot cum over your hands.</span> <<bodyliquid "leftarm" "semen">><<bodyliquid "rightarm" "semen">> <<else>> <<He>> tenses up as you place your hand against <<his>> soaked <<npcVagina>>. You don't need any extra lubrication, and slip two fingers in easily. <<He>> breathes heavily and starts to hump against your hand. <br><br> You move the bottom of <<his>> robe out of the way, giving you easier access, and rub <<his>> clit with your thumb. <<His>> legs clench. You speed up, curling your fingers each time you push them all the way in, and <<he>> doesn't last long. <<His>> back arches and <<he>> lets out a long, quiet moan. <span class="pink"><<He>> shudders in climax, fluids squirting from <<his>> <<npcVagina>> all over your hands.</span> <<bodyliquid "leftarm" "goo">><<bodyliquid "rightarm" "goo">> <</if>> <br><br> <<He>> pants, wrapping <<himself>> around you again. <<His>> tail beats happily. "Thank you," <<he>> whispers, before kissing you on the cheek. <<He>> pulls away from you, still blushing fiercely. <<set _askKiss to true>> <</if>> <br><br> <<link [[Wait|Gwylan Ritual Bait Arrival]]>><<pass 5>><<endevent>><</link>> <br> <<if _askKiss>> <<link [[Ask for a kiss in return|Gwylan Ritual Bait Kiss]]>><</link>><<if C.npc.Gwylan.dom gte 50>><<gwylanHypnoNote "kiss">><</if>> <br> <</if>><<effects>><<run statusCheck("Gwylan")>> <<switch $speech_attitude>> <<case "meek">> "H-hey, don't I get a proper thank you?" you ask, tapping your lips. <<case "bratty">> You clear your throat, prompting <<him>> to look at you again. You tap your lips. <<default>> "You could show your gratitude properly," you say, pointing at your lips. <</switch>> <br><br> <<if $gwylanSeen.includes("romance")>> <<He>> sighs. "Greedy <<girl>>." <<He>> grabs the back of your head and pulls you into a kiss. <<gwylanKiss>> <<His>> tongue pushes in for a moment, before <<he>> pulls away and licks your cheek. "Thank you," <<he>> says much louder. "Satisfied now?" <<elseif C.npc.Gwylan.dom gte 60>> <<He>> sighs. After thinking for a moment, <<he>> leans in and kisses you. <<gwylanKiss>> <<He>> holds it and pulls away slowly. "Thank you," <<he>> says again. "Satisfied now?" <<else>> <<He>> growls, leaning in and giving you a quick peck on the lips. "That's the most you're getting." <</if>> <br><br> <<link [[Wait|Gwylan Ritual Bait Arrival]]>><<pass 5>><<endevent>><</link>> <br><<effects>><<run statusCheck("Gwylan")>><<hallucinogen 10>> <<if $beastRitual.hasScent or $beastRitual.isScent>> You find it difficult to move, your head only moving to track Gwylan. <<He>> notices, and pulls out yet another vial, this one filled with red powder. <<He>> opens it and holds it under your nose. <br><br> You blink, and the weight on your limbs lifts away. Your mind becomes more clear. "As I said, you're vulnerable to the primer just like the other denizens of the forest." <br><br> <</if>> You sit and wait with Gwylan, enjoying the sounds of nature. It's quite cosy in the garden, so long as you don't focus too hard on some of the more unusual things growing here. <<stress -3>><<lstress>> <br><br> Flecks of the green light creep into your peripheral vision as the incense fills the air. <<if ["lightPrecipitation", "heavyPrecipitation", "thunderStorm"].includes(Weather.name)>> The <<= Weather.precipitation>> simply doesn't seem to land around you and Gwylan, or anywhere on the stone path. <</if>> <br><br> <<if $islander_language gte 100>> You ponder the words of the song. You're sure you've heard a few of the verses somewhere before, although much of it was unfamiliar to you. <<else>> You ponder the song, and what Gwylan could have been singing about. <</if>> <br><br> <<if !$gwylanSeen.includes("ritual_beast")>> <<if $gwylanSeen.includes("caught_no_lewd")>> You wonder if you'll just be scrubbing down whatever arrives, like you saw Gwylan do when you snuck in. <<elseif $awarelevel gte 1>> You wonder if Gwylan intends to have you do what you saw <<him>> doing with the wolf. <<if hasSexStat("deviancy", 3)>><<arousal 500>><<garousal>><</if>> <<else>> You wonder what exactly you'll be doing after this. <</if>> <br><br> <</if>> <<if $gwylanSeen.includes("romance") or _gwylanStatus.includesAny("dom", "lust")>> Gwylan seems to have dozed off on your shoulder. <<else>> Gwylan hums and kicks <<his>> feet. <</if>> <br><br> <<link [[Wait|Gwylan Ritual Bait Arrival]]>><<pass 5>><<endevent>><</link>> <br><<effects>><<run statusCheck("Gwylan")>><<hallucinogen 100>> The rest of the time passes in silence, but you don't have to wait long. <br><br> <<set $beastRitual.purge to 0>><<set $beastRitual.purgeDirect to 0>> <<set $beastRitual.tainted to random(1, 100) lte $world_corruption_soft>> <<if $beastRitual.lure is "wolf">> You both stir as you hear the scraping of claws on dirt. Gwylan quickly stands, walking over to the hatch. <<nnpc_He "Gwylan">> crouches beside it, ready to close it. <br><br> <<if $beastRitual.stalked is "howl">> <<beastNEWinit 3 wolf>> <<else>> <<beastNEWinit 1 wolf>> <</if>> From the hole, a pair of dim yellow eyes scan the garden. A <<beasttype>> crawls out, sniffing the air. <<bHis>> gaze seems unfocused. <<if $monster is 1>> "The song," <<bhe>> murmurs. "The pretty howls." <<bHis>> tail is wagging. <<else>> <<bHe>> barks, <<bhis>> tail wagging. <</if>> <<if $beastRitual.person is "player">> <<bHis>> eyes lock on you. <<if $monster is 1>> "You... smell like mate." <</if>> <</if>> A second <<beasttype>> emerges from the hole, following the first. <<if $beastRitual.stalked is "howl">> Gwylan moves to slowly shut the hatch, <span class="pink">but another <<beasttype 1>> exits. Followed by three more.</span> A group of six <<beastsplural 2>> all stand in the garden. Gwylan's eyes widen, and <<nnpc_he "Gwylan">> quickly shuts and locks the hatch. <br><br> <<if $monster is 1>> "The howls," one of them repeats.<br> <<if $syndromewolves gte 1>> "<<pPackbrother>> is here, heard howls," another says.<br> <<else>> "Mate is here, heard howls, can share," another says.<br> <</if>> "Me first," the final one says. <<else>> They all quietly bark at each other, looking between you and Gwylan. <</if>> <<if $beastRitual.tainted>> <span class="purple">They seem agitated despite the trance.</span> <<else>> They otherwise seem docile. <</if>> <br><br> Gwylan scratches <<nnpc_his "Gwylan">> head. "There were only supposed to be two. I suppose we can work with this." <<nnpc_He "Gwylan">> looks to you. "Three for each of us." <<nnpc_He "Gwylan">> grabs two of them by the scruff, and they offer no resistance as <<nnpc_he "Gwylan">> walks them over to the wooden tub. The rest follow on their own. Their eyes all faintly glow with a green light. <<else>> <<if $monster is 1>> "The howls," the second repeats.<br> <<else>> They quietly bark at each other, looking between you and Gwylan. <</if>> <<if $beastRitual.tainted>> <span class="purple">They seem agitated despite the trance.</span> <<else>> They otherwise seem docile. <</if>> <br><br> Gwylan slowly shuts and locks the hatch behind them, and gently grabs them by the scruff. They offer no resistance as <<nnpc_he "Gwylan">> walks them over to the wooden tub. Their eyes faintly glow with the green light. <</if>> <<elseif $beastRitual.lure is "fox">> <<beastNEWinit 1 fox>> You both stir as you hear the scraping of claws on dirt. Gwylan quickly stands, walking over to the hatch. <<nnpc_He "Gwylan">> crouches beside it, ready to close it. <br><br> From the hole, a <<beasttype>> leaps out, shaking dirt off of <<bhimself>>. <<bHis>> vacant eyes scan the garden. <<if $beastRitual.tainted>> <<if $NPCList[0].traits.includes("cowardly")>> <<if $monster is 1>> "Th-the song," <<bhe>> mutters, looking <span class="purple">frightful</span>. "Will it keep me safe?" <<else>> <span class="purple"><<bHe>> looks frightful and hurt.</span> <</if>> <<elseif $NPCList[0].traits.includes("territorial")>> <<if $monster is 1>> "Who... who was singing?" <<bhe>> mutters. "I'll... <span class="purple">I'll claim you as mine.</span>" <<else>> <span class="purple"><<bHe>> lets out a harsh growl.</span> <</if>> <<elseif $NPCList[0].traits.includes("friendly")>> <<if $monster is 1>> "My children..." <<bhe>> mutters. "<span class="purple">The master promised me...</span>" <<else>> <span class="purple"><<bHe>> lets out a mournful whine.</span> <</if>> <<else>> <<if $monster is 1>> "The song," <<bhe>> mutters. "The song promised me something shiny... <span class="purple">why weren't the voices singing the same song?</span>" <<else>> <span class="purple"><<bHis>> eyes flit around the garden in a rapid, feverish madness.</span> <</if>> <</if>> <<else>> <<if $NPCList[0].traits.includes("cowardly")>> <<if $monster is 1>> "Th-the song," <<bhe>> mutters, looking skittish. "It was so beautiful." <<else>> <<bHe>> looks skittish, but calm. <</if>> <<elseif $NPCList[0].traits.includes("territorial")>> <<if $monster is 1>> "Who... who was singing?" <<bhe>> mutters. "I'll... outscream you..." <<else>> <<bHe>> lets out a low growl, but otherwise seems calm. <</if>> <<elseif $NPCList[0].traits.includes("friendly")>> <<if $monster is 1>> "My kin... where is my kin?" <<bhe>> mutters. "The song was so pretty..." <<else>> <<bHe>> lets out a sound like laughter, barking and yipping excitedly. <</if>> <<else>> <<if $monster is 1>> "The song," <<bhe>> mutters. "The song was so pretty. Was it here?" <<else>> <<bHe>> lays down quietly. <</if>> <</if>> <</if>> <<if $beastRitual.person is "player">> <<bHis>> eyes settle on you. <</if>> A second <<beasttype>> emerges from the hole, following the first. <br><br> Gwylan slowly shuts and locks the hatch behind them, and gently grabs them by the scruff. They offer no resistance as <<nnpc_he "Gwylan">> walks them over to the wooden tub. Their eyes faintly glow with the green light. <<else>> <<generatePlant1>><<person1>> <<if $beastRitual.tainted>> <<set $beastRitual.taintedArm to random(1, 2) is 1 ? "right arm" : "left arm">> <</if>> You both stir as you hear slithering and dragging. Gwylan quickly stands, walking over to the hatch. <<nnpc_He "Gwylan">> crouches beside it, ready to close it. <br><br> From the hole, several vines emerge, going tense and pulling something else through. A <<person "normal">> with <<plant_details>> braided into <<his>> hair emerges. <<He>> wears a garb that matches, but many of the leaves <<if $beastRitual.tainted>>and vines<</if>> are withered or blackened. "Who... who sings the wildsong? Who beckons?" <<he>> mutters. <<His>> eyes are vacant, staring at nothing. <br><br> <<if $beastRitual.tainted and (currentSkillValue('tending') gte 800 or $backgroundTraits.includes("plantlover"))>> <<if $backgroundTraits.includes("plantlover")>> Thanks to your lewd love of plants, <<else>> Thanks to your tending skill, <</if>> you notice something else off about <<him>>. The way <<his>> leaves are positioned is very deliberate. Being creatures so close to flowers, plantpeople are vain. <span class="purple">There's something underneath <<he>> doesn't want anyone to see.</span> <br><br> <</if>> Gwylan slowly shuts and locks the hatch behind <<him>>, and gently takes <<his>> hand. <<He>> offers no resistance as Gwylan walks <<him>> over to the wooden tub. <<His>> eyes faintly glow with the green light. <</if>> <br><br> <<if !$gwylanSeen.includes("ritual_beast")>> <<if $gwylanSeen.includes("caught_no_lewd")>> "Since you interrupted my last ritual," <<nnpc_he "Gwylan">> starts, "now you get to see where the actual treatment comes in. The poison spreads most quickly when mating, which also means it's the best way to... extract it. Here, in my garden, we can make sure it doesn't spread further, and neutralise it." <<nnpc_He "Gwylan">> points to <<nnpc_his "Gwylan">> tummy. <span class="lewd">"In our bodies."</span> <<else>> "Since you interrupted my last ritual," <<nnpc_he "Gwylan">> starts, "you're going to help me finish this one properly. Here, in my garden, is one of the only safe places to conduct cleansings. In most other places, it would just leak back into the forest. We'll be purifying it in our bodies, instead." <</if>> <<if $gwylanTalked.includes("temple_confessor")>> <br><br> <<nnpc_He "Gwylan">> smiles reassuringly at you. "This shouldn't be too different from what you've done at the temple." <<elseif $temple_confessor_intro>> <br><br> This all sounds familiar to you. <span class="purple">It reminds you of the purges you've done at the temple.</span> <</if>> <<nnpc_He "Gwylan">> clears <<nnpc_his "Gwylan">> throat. "We'll be washing <<if $beastRitual.lure is "dryad">><<him>><<else>>them<</if>> first, though." <</if>> <<nnpc_He "Gwylan">> leans down and whispers<<if $beastRitual.lure is "dryad">> into the <<personsimple>>'s ear<<else>> into the first <<beasttype>>'s ear<</if>>. "Bath time." <br><br> <<set _tendingDiffMin to 400>><<set _tendingDiffMax to 800>> <<if $beastRitual.person is "player">> <<set _tendingDiffMin -= 200>><<set _tendingDiffMax -= 200>> <</if>> <<if $beastRitual.tainted>> <<set _tendingDiffMin += 200>><<set _tendingDiffMax += 200>> <</if>> On command, <<if $beastRitual.lure is "dryad">> the <<personsimple>> slowly lifts <<himself>> from the ground with <<his>> vines and dips into the tub. The vines tremble in delight in the warm water, dangling off the sides at even intervals. <br><br> <<link [[Wash|Gwylan Ritual Bait Wash Plant]]>><<tiredness 1>><<set $phase to 1>><</link>><<gtiredness>><<tendingdifficulty _tendingDiffMin _tendingDiffMax>> <br> <<if hasSexStat("deviancy", 3)>> <<link [[Get a head start on 'cleaning'|Gwylan Ritual Bait Wash Plant]]>><<set $phase to 2>><</link>><<deviant3>> <<else>> <<insufficientStat "deviancy" "to get a head start on 'cleaning' the <<personsimple>>">> <</if>> <br> <<if $backgroundTraits.includes("plantlover") and $settings.tentaclesEnabled>> <<link [[Milk the <<persons>> vines for nectar|Gwylan Ritual Bait Wash Plant]]>><<set $phase to 3>><</link>><<if $submissive <= 850>><<note "Dendrophile" "lewd">><<else>><<note "Plant Lover" "lewd">><</if>> <br> <</if>> <<elseif $beastRitual.stalked is "howl">> the <<beastsplural>> all sit next to the tub, with one jumping in. Gwylan giggles while shielding <<nnpc_himself "Gwylan">> from the splash. <<nnpc_He "Gwylan">> tries to keep the rest under control, but two more jump in after the first. <br><br> <<link [[Wash|Gwylan Ritual Bait Wash Pack]]>><<tiredness 5>><<set $phase to 1>><</link>><<ggtiredness>><<tendingdifficulty _tendingDiffMin _tendingDiffMax>> <br> <<if hasSexStat("deviancy", 3)>> <<link [[Get a head start on 'cleaning' the remaining <<beastsplural>>|Gwylan Ritual Bait Wash Pack]]>><<set $phase to 2>><</link>><<deviant3>> <<else>> <<insufficientStat "deviancy" "to get a head start on 'cleaning' the remaining <<beastsplural>>">> <</if>> <br> <<if hasSexStat("deviancy", 5)>> <<link [[Goad the <<beastsplural>>|Gwylan Ritual Bait Wash Pack]]>><<set $phase to 3>><</link>><<deviant5>> <<else>> <<insufficientStat "deviancy" "to goad the <<beastsplural>>">> <</if>> <br> <<else>> <<set _tendingDiffMin -= 200>><<set _tendingDiffMax -= 200>> the first <<beasttype>> leaps into the water with a splash. Gwylan giggles while shielding <<nnpc_himself "Gwylan">> from it. The second quickly follows suit, now excited. <br><br> <<link [[Wash|Gwylan Ritual Bait Wash Beast]]>><<tiredness 1>><<set $phase to 1>><</link>><<gtiredness>><<tendingdifficulty _tendingDiffMin _tendingDiffMax>> <br> <<if hasSexStat("deviancy", 3)>> <<link [[Get a head start on 'cleaning' the second <<beasttype>>|Gwylan Ritual Bait Wash Beast]]>><<set $phase to 2>><</link>><<deviant3>> <<else>> <<insufficientStat "deviancy" "to get a head start on 'cleaning' the second <<beasttype>>">> <</if>> <br> <</if>><<effects>><<run statusCheck("Gwylan")>> Gwylan turns over a bottle of pungent green ooze into the water, which begins to bubble. <<nnpc_He "Gwylan">> tosses you a sponge. "We need to make sure they're clean outside first, for both their sake and ours." <<nnpc_He "Gwylan">> quickly looks in each of their ears. <br><br> <<nnpc_He "Gwylan">> pulls the ivory bowl closer. "The poison will fill this bowl when they reach climax." <<nnpc_He "Gwylan">> starts to scrub the head of the first <<beasttype>>. <<nnpc_He "Gwylan">> then uncorks a small vial. "Open." The first <<beasttype>> obeys, and Gwylan pours a shimmering purple fluid into <<bhis>> mouth. "This will encourage them to release more." <br><br> <<if $phase is 1>> You start to help, scrubbing down the other <<beasttype>>. <<if $tendingSuccess>> <<set $beastRitual.tendingSuccess to true>> <<set $beastRitual.purge++>> <span class="green">Your touch is gentle, and <<bhe>> stays in <<bhis>> trance.</span> <<if $beastRitual.lure is "fox">> <<bHe>> yips happily. <<else>> <<bHe>> remains docile. <</if>> Gwylan nods at you, producing another vial and feeding its contents to your <<beasttype>>. <<gwylanPurgeEffect>> <<else>> <<if $beastRitual.person is "Gwylan">> <span class="red"><<bHe>> doesn't seem to want your attention,</span> instead moving to Gwylan. You try again, but <<bhe>> growls at you. <<else>> Despite your scent, <span class="red"><<bHe>> loses interest in you,</span> instead moving to Gwylan. You try again, but <<bhe>> growls at you. <</if>> <br><br> "It's alright," Gwylan says, uncorking a second vial. "I think I can—" <br><br> <<if $beastRitual.lure is "fox">> <<set _oneOut to true>> The second <<beasttype>> snatches it right out of Gwylan's hands. It spills all over the ground as <<bhe>> jumps out of the bath. <<else>> The second <<beasttype>> rears up and tries to mount Gwylan, making <<nnpc_him "Gwylan">> spill the vial. <</if>> Gwylan sighs. "It's still alright. There just won't be as much released with this one. We'll have to move on." <</if>> <<else>> <<set $beastRitual.arousal to true>> You lean in and start to scratch your <<beasttype>>'s belly, before moving your hand lower towards <<bhis>> <<npcGenitals>>. It keeps <<bhim>> docile for a moment, but the excitement quickly gets to <<bhim>>. <<deviancy3>> <<bHis>> eyes start to focus. "Time is short," Gwylan says. "At least yours will be easier to make climax." <</if>> <br><br> Gwylan waves <<nnpc_his "Gwylan">> hand, and <<if _oneOut>> the other <<beasttype>> hops <<else>> both <<beastsplural>> hop <</if>> out of the tub, shaking themselves off and spraying water everywhere. <<nnpc_He "Gwylan">> leads them to the covered room, laying down some blankets. <br><br> <<link [[Next|Gwylan Ritual Bait Cleanse Beast]]>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> Gwylan raises a single finger. A blurry light dances on the end, like a firefly. It follows <<nnpc_his "Gwylan">> finger, and both of the <<beastsplural>> move their head to track it. "Lie down." Gwylan grabs the light in <<nnpc_his "Gwylan">> other palm and snaps <<nnpc_his "Gwylan">> fingers. <br><br> They both obey. <<nnpc_He "Gwylan">> starts to inspect them, <<if $beastRitual.tainted>> and sighs. "<span class="purple">They carry the taint deeply.</span> We're lucky we found them." <<else>> and nods. "They both carry the taint, as expected, <span class="teal">but not too deeply</span>." <</if>> <br><br> <<if $beastRitual.petplay gte 3>> <<nnpc_He "Gwylan">> whistles. <<if $hypnosis_traits.devotion gte 1>> <<hypnosisText "Your ears twitch, and you sit in front of <<nnpc_him 'Gwylan'>> like a <<if $cat gte 6>>cat<<else>>dog<</if>> without even thinking about it.">> <<else>> You realise it was directed at you. "<<gwylanCommand "Sit," 2>>" <<nnpc_he "Gwylan">> says, tugging your leash. You do so. <</if>> <br><br> <<nnpc_He "Gwylan">> giggles. "<<pcPetname "Gwylan" "good">>. This <<beasttype>> is all pent up. You're going to mate with <<bhim>>." <<nnpc_He "Gwylan">> sits down next to you, beckoning the other <<beasttype>>. <<arousal 500>><<garousal>> <br> <<else>> <<nnpc_He "Gwylan">> bends over and beckons one of them. <</if>> <<if $beastRitual.lure is "fox" and $beastRitual.tainted>> <<set $beastRitual.combatChase to true>> "I'll be right here next to you. Make yours reach climax however you can." <br><br> The second <<beasttype>> stops, instead looking over to the shop. <span class="purple"><<bHis>> eyes suddenly glow with an unholy light.</span> <<if $monster is 1>> "In... in there? I can see... so much." <<bHis>> tail puffs up. <<else>> <<bHis>> tail puffs up as <<bhe>> yips. <</if>> <span class="red"><<bHe>> suddenly darts away into the shop.</span> <br><br> "Hey!" Gwylan stands, immediately chasing after <<bhim>>. <<nnpc_He "Gwylan">> looks back to you briefly. "Tend to yours, I'll be back soon!" <br><br> The other <<beasttype>> approaches you. <br><br> <<link [[Next|Gwylan Ritual Bait Sex Beast]]>><<set $sexstart to 1>><</link>> <br> <<else>> "I'll be right here next to you. Make yours reach climax, however you can. Ready?" <br><br> Both <<beastsplural>> show signs of heavy arousal, and approach you. <br><br> <<link [[Ready|Gwylan Ritual Bait Sex Beast]]>><<set $sexstart to 1>><</link>> <br> <</if>><<run statusCheck("Gwylan")>> <<if $sexstart is 1>> <<set $sexstart to 0>> <<consensual>> <<set $consensual to 1>> <<neutral 1>> <<beastCombatInit>> <<set $enemyanger to 0>><<set $enemytrust += 200>> <<set $beastRitual.stateTimer to 0>> <<if $beastRitual.tainted>> <<set $enemyarousalmax += 100>> <<set $enemyhealth += 100>> <</if>> <<elseif $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<beastCombatInit>> <<set $beastRitual.stateTimer to 0>> <<if $beastRitual.tainted>> <<set $enemyarousalmax += 100>> <<set $enemyhealth += 100>> <</if>> <</if>> <<if $beastRitual.tainted and $enemyanger lte 100>> <<set $enemyanger += 3>> <</if>> <<effects>> <<effectsman>> <br><br> <<beast $enemyno>> <br> <<if $beastRitual.combatChase>> <<switch $beastRitual.stateTimer>> <<case 0>>Gwylan dashes into the forest shop after the other <<beasttype>>. <<case 1>>You hear something get knocked over from inside the shop. <<case 2>>You hear something break inside the shop. <<case 3>>You hear Gwylan from inside the shop. "Get back here with that!" <<case 4>> The other <<beasttype>> <<if $monster is 1>> runs out of the shop, clutching a ?gwylanItem in <<bhis>> hands. <<else>> darts back out of the shop, holding a ?gwylanItem in <<bhis>> mouth. <</if>> <<bHe>> looks back, and resumes fleeing as Gwylan comes out of the shop too. "Put that down!" <<if $monster is 1>> <<else>> <</if>> <<case 5>> Gwylan chases the other <<beasttype>> all around the garden. <<if _gwylanTF.known>> After a short time, <<nnpc_he "Gwylan">> gets on all fours and starts chasing like a fox. <</if>> <<case 6>>Gwylan tackles the fleeing <<beasttype>>. "Caught you! Naughty kit." <<case 7>>Gwylan speaks. "Hold still. Naughty foxes don't get to enjoy this." <<case 8>>Gwylan pleasures <<nnpc_his "Gwylan">> <<beasttype>> with <<nnpc_his "Gwylan">> hands. <<case 9>>Gwylan looks over to you, panting. "Keep it up, dear!" <<default>>Gwylan continues pleasuring the other <<beasttype>> with <<nnpc_his "Gwylan">> hands. <</switch>> <<else>> <<switch $beastRitual.stateTimer>> <<case 0>>Gwylan speaks. "Shhh, we'll make you feel better." <<nnpc_He "Gwylan">> starts to service the other <<beasttype>>. <<case 1>>Gwylan hums a soothing melody. <span class="green">The <<beastsplural>> both calm down slightly.</span> <<set $enemyanger -= 15>> <<case 2 3>>Gwylan continues soothing the <<beastsplural>> as <<nnpc_he "Gwylan">> works. <span class="green">They both calm down slightly.</span> <<set $enemyanger -= 15>> <<case 4>>Gwylan's humming stops. You see <<nnpc_his "Gwylan">> head bobbing. <<case 5>>The other <<beasttype>> <<if $beastRitual.lure is "fox">>yips<<else>>barks<</if>>. <<case 6>> <<if $gwylanSeen.includes("romance") or _gwylanStatus.includesAny("aroused", "lust")>> You feel Gwylan's hand grasp your arm briefly. <<nnpc_He "Gwylan">> squeezes it for comfort. You give it a squeeze back. <<stress -1>><<lstress>> <<else>> You feel Gwylan's hand grasp your arm briefly. <<nnpc_Hes "Gwylan">> making sure you're still there and okay. You give it a squeeze back. <</if>> <<npcincr Gwylan lust 1>><<glust>> <<case 7>>Gwylan lets out a breath. "There, this isn't so bad, is it?" <<case 8>> <<if $beastRitual.lure is "fox" and _gwylanTF.known>> The other <<beasttype>> suddenly starts a screaming contest with Gwylan. They're both very loud, and both <<beastsplural>> get more agitated. <<set $enemyanger += 15>> <<else>> The other <<beasttype>> seems contented. <<set $enemyanger -= 15>> <</if>> <<case 9>>Gwylan looks to you to make sure you're still okay. <<if $pain gte 50>><<nnpc_He "Gwylan">> winces upon seeing your current state.<</if>> <<case 10>> <span class="lewd">You feel Gwylan shudder next to you.</span> <<npcincr Gwylan lust 1>><<glust>> <<default>> Gwylan continues mating with the other <<beasttype>>. <<if $beastRitual.stateTimer % 5 is 0>> <span class="pink"><<nnpc_He "Gwylan">> lets out a soft breath as <<nnpc_he "Gwylan">> shudders.</span> <<npcincr Gwylan lust 1>><<glust>> <<else>> <<nnpc_He "Gwylan">> seems to be enjoying <<nnpc_himself "Gwylan">>. <</if>> <</switch>> <</if>> <<set $beastRitual.stateTimer++>> <br><br> <<stateman>> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Gwylan Ritual Bait Sex Beast Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Gwylan Ritual Bait Sex Beast]]>><</link>></span><<nexttext>> <</if>><<effects>><<run statusCheck("Gwylan")>> <<if $enemyarousal gte $enemyarousalmax>> <<set $beastRitual.end to "orgasm">> <<beastejaculation>><<set $beastRitual.purge++>><<set $beastRitual.ejac to true>> <<if $NPCList[0].vagina.toString().includes("mouth") or ["mouth", "vagina", "anus"].includes($NPCList[0].penis.toString())>> <<set $beastRitual.purgeDirect++>> <<if $temple_confessor_intro or $gwylanSeen.includes("ritual_beast")>> <span class="lewd">You take the poison into your body directly.</span> <<if $angel gte 6>> <span class="gold">The purity within you clashes with it, snuffing it out.</span><<trauma 6>><<pain 1>><<gtrauma>><<gpain>> <<elseif $fallenangel gte 2 and $fallenangel lt 4>> <span class="black">It rushes to fill the emptiness inside of you, and vanishes within. You feel nothing.</span> <<elseif $demon gte 6>> <span class="purple">It melds with your very being.</span><<stress -12>><<trauma -6>><<purity -40>><<llstress>><<ltrauma>><<lllpurity>> <<elseif $dryad gte 6>> <span cass="red">You feel violently ill as it twists your connection to the world. Your blossom turns sickly for a moment.</span><<stress 12>><<trauma 24>><<pain 10>><<ggstress>><<ggtrauma>><<ggpain>> <<else>> <<purity -25>><<llpurity>> <</if>> <br> <<else>> <span class="pink">A strange emptiness fills you.</span> <</if>> <<else>> The ivory bowl fills with a glowing pink fluid. <</if>> Satisfied, the <<beasttype>> licks your face and lies down in the garden. <<gwylanPurgeEffect>> <<else>> <<set $beastRitual.end to "beaten">> The <<beasttype>> backs away from you. <</if>> <br><br> You sit up and look over to Gwylan. <<if V.NPCList[0].penis isnot "none" and (C.npc.Gwylan.vagina isnot "none" or V.settings.analEnabled) and _gwylanStatus.includesAny("dom", "lust") and !$beastRitual.combatChase>> <<set $beastRitual.gwylanKnotted to true>><<set $gwylanSeen.pushUnique("knotted")>> <<nnpc_Hes 'Gwylan'>> on <<nnpc_his "Gwylan">> hands and knees right next to you. <<nnpc_His "Gwylan">> head rests in <<nnpc_his "Gwylan">> hand, while the other hand taps its fingers impatiently on the ground. <span class="pink"><<nnpc_Hes "Gwylan">> been knotted by the other <<beasttype>>.</span> <br><br> <<nnpc_He "Gwylan">> winks at you, softly exhaling as the knot deflates, freeing <<nnpc_him "Gwylan">>. <<if $gwylanSeen.includes("player_knotted_gwylan")>>"I still prefer yours," <<nnpc_he "Gwylan">> says with a blush. <<npcincr Gwylan lust 1>><<glust>><</if>> <<else>> <<nnpc_Hes "Gwylan">> already finished up with the other <<beasttype>>. <</if>> <<tearful>> you stand. Gwylan walks over to the hatch, and beckons the <<beastsplural>>. "Go home," <<nnpc_he "Gwylan">> says. "And stay out of trouble." The first one crawls through the hole and leaves the garden. <<if $beastRitual.tainted and $beastRitual.ejac>> <<set $beastRitual.purge++>> The second one hesitates, looking back at the two of you. <<if $monster is 1>> <<if $beastRitual.lure is "fox">> "Thank you. I can finally think straight again." <<else>> "Bad feelings gone. Humans to thank." <</if>> <<else>> <<bHe>> lets out a <<if $beastRitual.lure is "fox">>yip<<else>>low gruff<</if>>, and looks grateful. <</if>> <<bHe>> bounds up to you and licks your face before following <<bhis>> sibling. <<stress -2>><<lstress>> <<else>> The second follows quickly. <</if>> <br><br> <<if !$beastRitual.ejac>> "You weren't very gentle," Gwylan says to you. "Remember that we're here to help them." <<else>> "That wasn't so bad, was it?" Gwylan asks you. <</if>> <<nnpc_He "Gwylan">> leads you to the wooden bath. <<clotheson>> <<endcombat>> <<link [[Next|Gwylan Ritual Bait End]]>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> Gwylan wastes no time. <<nnpc_He "Gwylan">> empties out an entire bottle of a pungent green ooze into the water, which begins to bubble. <<nnpc_He "Gwylan">> tosses you a sponge, and starts looking frantic. "I didn't prepare for this many. I'll have to split the reagents I have, which means the trance won't last long, and the purging might be difficult." <br><br> <<nnpc_He "Gwylan">> pulls the ivory bowl closer with <<nnpc_his "Gwylan">> foot. "I don't know if this will be big enough to hold it all." <<if $monster is 1>> <<nnpc_He "Gwylan">> starts to scrub the head of the first <<beasttype>>, but the other two start to get handsy. "Me too," one says, headbutting Gwylan. <br><br> <<else>> <<nnpc_He "Gwylan">> starts to scrub the head of the first <<beasttype>>, but the other two in the tub try to push their way in, jealous of the attention the first is getting. <</if>> "Easy now, just wait your turn." <<nnpc_He "Gwylan">> uncorks a small vial. "Open." The first <<beasttype>> obeys, and Gwylan pours a shimmering purple fluid into <<bhis>> mouth. <br><br> <<if $beastRitual.person is "Gwylan">> A <<beasttype>> outside the tub walks up to Gwylan and reaches up, trying to grab <<nnpc_his "Gwylan">> tunic. <<else>> A <<beasttype>> outside the tub walks up to you and <span class="pink">tries to mount you</span>. <</if>> Gwylan whistles melodically but sharply. It almost sounds like birdsong, and causes all of the <<beastsplural>> to obediently sit still for a moment. <br><br> <<if $phase is 1>> You quickly start to help, taking some of the attention off of Gwylan. You scrub down another <<beasttype>>. <<if $tendingSuccess>> <<set $beastRitual.tendingSuccess to true>> <<set $beastRitual.purge++>> <span class="green">You manage to wash yours while appeasing the ones outside the tub with gentle words and attention.</span> It's not easy, but you manage. Gwylan nods thankfully at you. <span class="green">The two of you together manage to wash every last one of the <<beastsplural>>, and apply Gwylan's reagents to them.</span> <<gwylanPurgeEffect>> <<else>> <span class="red">The rest become even more jealous,</span> and start to paw at you. <br><br> <<if $beastRitual.tainted>> <<set _tainted to true>> <span class="red">All at once, the light fades from their eyes, being replaced by an unholy glow.</span> Gwylan's eyes widen. <br><br> <<if $monster is 1>> They all speak in sequence.<br> "Masters..."<br> "...command..."<br> "...we..."<br> "...obey." <<else>> They all howl in an unnaturally perfect unison. <</if>> <br><br> "Brace yourself," Gwylan says to you. "It's too late now. We just have to—" <br><br> Three soaking wet <<beastsplural>> all jump out of the tub and onto Gwylan, knocking <<nnpc_him "Gwylan">> over. The three outside the tub all converge on you! <<else>> Gwylan whistles sharply three more times, splashing some of the water on the <<beastsplural>> outside the tub. They shy away for the moment. "This won't do. We're already out of time." <<nnpc_He "Gwylan">> whistles once more, and the three <<beastsplural>> jump out of the tub one by one, each one shaking off and spraying water everywhere. "We'll need to skip to the end." <</if>> <</if>> <<elseif $phase is 2>> You lean over the tub and beckon the other two <<beastsplural>>. You reach down and start to fondle their genitals, sparing one hand for each so Gwylan can focus on one. <<deviancy3>> <<nnpc_He "Gwylan">> nods to you thankfully, but your lewd attention further agitates the ones outside the tub. They all start to paw at you, nearly knocking you over. <<if $beastRitual.tainted>> <<set _tainted to true>> <span class="red">All at once, the light fades from their eyes, being replaced by an unholy glow.</span> Gwylan's eyes widen. <br><br> <<if $monster is 1>> They all speak in sequence.<br> "Masters..."<br> "...command..."<br> "...we..."<br> "...obey." <<else>> They all howl in an unnaturally perfect unison. <</if>> <br><br> "Brace yourself," Gwylan says to you. "It's too late now. We just have to—" <br><br> Three soaking wet <<beastsplural>> all jump out of the tub and onto Gwylan, knocking <<nnpc_him "Gwylan">> over. The three outside the tub all converge on you! <<else>> Gwylan whistles sharply three more times, splashing some of the water on the <<beastsplural>> outside the tub. They shy away for the moment. "This won't do. We're already out of time." <<nnpc_He "Gwylan">> whistles once more, and the three <<beastsplural>> jump out of the tub one by one, each one shaking off and spraying water everywhere. "We'll need to skip to the end." <</if>> <<else>> <<set $beastRitual.goaded to true>> <<set _goaded to true>> You set the sponge aside, and get on your hands and knees. You give your <<bottom>> a provocative wiggle, which pushes all of the <<beastsplural>> over the edge. You're mounted immediately. <<deviancy5>> Gwylan's eyes widen. "What are you—" <br><br> Three soaking wet <<beastsplural>> all jump out of the tub and onto Gwylan, knocking <<nnpc_him "Gwylan">> over. <</if>> <br><br> <<if _tainted>> <<link [[Next|Gwylan Ritual Bait Sex Pack]]>><<set $molestationstart to 1>><</link>> <br> <<elseif _goaded>> <<link [[Next|Gwylan Ritual Bait Sex Pack]]>><<set $sexstart to 1>><</link>> <br> <<else>> <<link [[Next|Gwylan Ritual Bait Cleanse Pack]]>><</link>> <br> <</if>><<effects>><<run statusCheck("Gwylan")>> Gwylan raises a single finger. A blurry light dances on the end, like a firefly. It follows <<nnpc_his "Gwylan">> finger, and all of the <<beastsplural>> move their head to track it. "Lie down." Gwylan grabs the light in <<nnpc_his "Gwylan">> other palm and snaps <<nnpc_his "Gwylan">> fingers. <br><br> The <<beastsplural>> obey. <<nnpc_He "Gwylan">> starts to inspect the closest one, <<if $beastRitual.tainted>> and sighs. "<span class="purple">Every single one of them carries the taint deeply.</span> This will be a rough recovery." One of the <<beastsplural>> seems to mistake the word "rough" for a bark and tries to mount Gwylan, but <<nnpc_he "Gwylan">> pushes <<bhim>> back down gently. <<else>> and nods. "They all carry the taint, as expected, <span class="teal">but not too deeply</span>. This may be manageable after all." <</if>> <br><br> You can see telltale signs of arousal on all of them. <br><br> <<nnpc_He "Gwylan">> turns to you. "They're prepared. Make your three reach climax, however you can. Ready?" <<nnpc_He "Gwylan">> stands beside you. The <<beastsplural>> begin to circle around you. <br><br> <<link [[Ready|Gwylan Ritual Bait Sex Pack]]>><<set $sexstart to 1>><</link>> <br><<run statusCheck("Gwylan")>> <<if $sexstart is 1>> <<set $sexstart to 0>> <<consensual>> <<set $consensual to 1>> <<neutral 1>> <<beastCombatInit>> <<beastTrainGenerate>> <<set $enemyanger to 0>><<set $enemytrust += 200>> <<set $beastRitual.stateTimer to 0>> <<if $beastRitual.tainted>> <<set $enemyarousalmax += 100>> <<set $enemyhealth += 100>> <</if>> <<elseif $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<beastCombatInit>> <<beastTrainGenerate>> <<set $beastRitual.stateTimer to 0>> <<if $beastRitual.tainted>> <<set $enemyarousalmax += 100>> <<set $enemyhealth += 100>> <</if>> <</if>> <<if $beastRitual.tainted and $enemyanger lte 100>> <<set $enemyanger += 3>> <</if>> <<effects>> <<effectsman>> <br><br> <<beast $enemyno>> <br> <<if $consensual is 0 or $beastRitual.goaded>> <<switch $beastRitual.stateTimer>> <<case 0>>Gwylan struggles to get <<nnpc_his "Gwylan">> <<beastsplural>> under control. <<case 1>>Gwylan tries to get the <<beastsplural>> to heel, to no avail. <<case 2>>Gwylan hums a soothing melody. <span class="green">The <<beastsplural>> all calm down slightly.</span> <<set $enemyanger -= 15>> <<case 3 4 5>>Gwylan continues soothing the <<beastsplural>>. <span class="green">They all calm down slightly.</span> <<set $enemyanger -= 15>> <<case 6>>Gwylan's humming is <span class="red">abruptly cut off</span>. <<nnpc_He "Gwylan">> squeaks in surprise. <<case 7>>You hear wet thrusting sounds from next to you. <<case 8 9>>Gwylan is silent. <<case 10>> <<if $gwylanSeen.includes("romance") or _gwylanStatus.includesAny("aroused", "lust")>> You feel Gwylan's hand grasp your arm briefly. <<nnpc_He "Gwylan">> squeezes it for comfort. You give it a squeeze back. <<stress -1>><<lstress>> <<else>> You feel Gwylan's hand grasp your arm briefly. <<nnpc_Hes "Gwylan">> making sure you're still there. You give it a squeeze back. <</if>> <<npcincr Gwylan lust 1>><<glust>> <<case 11>>Gwylan gasps for breath. "There's a good—" <<nnpc_hes "Gwylan">> cut off again. <<case 12 13 14>>You hear the sounds of mating from Gwylan's direction. <<case 15>> <<if $consensual is 0>> The two of you are surrounded, trapped in a cuddly <<beasttype>> pile. It's hard to see anything beyond the pack. <span class="pink">You feel Gwylan shudder next to you, and let out a soft breath.</span><<npcincr Gwylan lust 1>><<glust>> <br><br> <<nnpc_He "Gwylan">> turns <<nnpc_his "Gwylan">> head to look at you. <<nnpc_His "Gwylan">> hand reaches out to cup your face, and <<nnpc_he "Gwylan">> giggles. "Hang in there, <<pcpetname "Gwylan">>." <<npcincr Gwylan lust 4>><<gglust>> <<else>> The two of you are surrounded, trapped in a vicious <<beasttype>> pile. It's hard to see anything beyond the pack. <span class="pink">You feel Gwylan shudder next to you, and let out a soft, pained moan.</span><<npcincr Gwylan lust 1>><<glust>> <br><br> <<nnpc_He "Gwylan">> manages to turn <<nnpc_his "Gwylan">> head to look at you. <<nnpc_His "Gwylan">> hand reaches out to cup your face, before a <<beasttype>> steps between you, obscuring your view of each other. <</if>> <<default>> Gwylan continues to be used. <<if $beastRitual.stateTimer % 5 is 0>> <<if $consensual is 0>> <span class="red"><<nnpc_He "Gwylan">> lets out a soft, pained moan.</span> <<else>> <span class="pink"><<nnpc_He "Gwylan">> lets out a soft breath as <<nnpc_he "Gwylan">> shudders.</span> <<npcincr Gwylan lust 1>><<glust>> <</if>> <<else>> <<nnpc_He "Gwylan">> works with it, trying to keep them all calm. <</if>> <</switch>> <<else>> <<switch $beastRitual.stateTimer>> <<case 0>>Gwylan speaks. "Down. You will wait your turn." <<case 1>>Gwylan starts to service one of <<nnpc_his "Gwylan">> <<beastsplural>>. <<case 2>>Gwylan hums a soothing melody. <span class="green">The <<beastsplural>> all calm down slightly.</span> <<set $enemyanger -= 15>> <<case 3 4 5>>Gwylan continues soothing the <<beastsplural>>. <span class="green">They all calm down slightly.</span> <<set $enemyanger -= 15>> <<case 6>>Gwylan's humming stops. You see <<nnpc_his "Gwylan">> head bobbing. <<case 7>>You hear wet thrusting sounds from next to you. <<case 8 9>>Gwylan is silent. <<case 10>> <<if $gwylanSeen.includes("romance") or _gwylanStatus.includesAny("aroused", "lust")>> You feel Gwylan's hand grasp your arm briefly. <<nnpc_He "Gwylan">> squeezes it for comfort. You give it a squeeze back. <<stress -1>><<lstress>> <<else>> You feel Gwylan's hand grasp your arm briefly. <<nnpc_Hes "Gwylan">> making sure you're still there and okay. You give it a squeeze back. <</if>> <<npcincr Gwylan lust 1>><<glust>> <<case 11>>Gwylan gasps for breath. "There's a good puppy." <<case 12 13 14>>You hear the sounds of mating from Gwylan's direction. <<case 15>> The two of you are surrounded, trapped in a cuddly <<beasttype>> pile. It's hard to see anything beyond the pack. <span class="pink">You feel Gwylan shudder next to you, and let out a soft breath.</span><<npcincr Gwylan lust 1>><<glust>> <br><br> <<nnpc_He "Gwylan">> turns <<nnpc_his "Gwylan">> head to look at you. <<nnpc_His "Gwylan">> hand reaches out to cup your face, and <<nnpc_he "Gwylan">> giggles. "Hang in there, <<pcpetname "Gwylan">>." <<npcincr Gwylan lust 4>><<gglust>> <<default>> Gwylan continues being mated. <<if $beastRitual.stateTimer % 5 is 0>> <span class="pink"><<nnpc_He "Gwylan">> lets out a soft breath as <<nnpc_he "Gwylan">> shudders.</span> <<npcincr Gwylan lust 1>><<glust>> <<else>> <<nnpc_He "Gwylan">> seems to be enjoying <<nnpc_himself "Gwylan">>. <</if>> <</switch>> <</if>> <<set $beastRitual.stateTimer++>> <br><br> <<stateman>> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Gwylan Ritual Bait Sex Pack Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Gwylan Ritual Bait Sex Pack]]>><</link>></span><<nexttext>> <</if>><<effects>><<run statusCheck("Gwylan")>> <<if $enemyarousal gte $enemyarousalmax>> <<beastejaculation>><<set $beastRitual.purge++>><<set $beastRitual.ejac to true>> <<if $NPCList[0].vagina.toString().includes("mouth") or ["mouth", "vagina", "anus"].includes($NPCList[0].penis.toString())>> <<set $beastRitual.purgeDirect++>> <<if $temple_confessor_intro or $gwylanSeen.includes("ritual_beast")>> <span class="lewd">You take the poison into your body directly.</span> <<if $angel gte 6>> <span class="gold">The purity within you clashes with it, snuffing it out.</span><<trauma 6>><<pain 1>><<gtrauma>><<gpain>> <<elseif $fallenangel gte 2 and $fallenangel lt 4>> <span class="black">It rushes to fill the emptiness inside of you, and vanishes within. You feel nothing.</span> <<elseif $demon gte 6>> <span class="purple">It melds with your very being.</span><<stress -12>><<trauma -6>><<purity -40>><<llstress>><<ltrauma>><<lllpurity>> <<elseif $dryad gte 6>> <span cass="red">You feel violently ill as it twists your connection to the world. Your blossom turns sickly for a moment.</span><<stress 12>><<trauma 24>><<pain 10>><<ggstress>><<ggtrauma>><<ggpain>> <<else>> <<purity -25>><<llpurity>> <</if>> <br> <<else>> <span class="pink">A strange emptiness fills you.</span> <</if>> <<else>> The ivory bowl fills with a glowing pink fluid. <</if>> <<if $combatTrain.length gt 0>> Satisfied, the <<beasttype>> makes room for the next. <<if $combatTrain.length is 2>> Gwylan speaks. "You're doing great, dear!" <<else>> Gwylan speaks. "Just a little longer!" <</if>> <<gwylanPurgeEffect>> <<combatTrainAdvance>> <br><br> <<link [[Next|Gwylan Ritual Bait Sex Pack]]>><</link>> <<else>> Satisfied, the <<beasttype>> licks your face and leaves you be. Gwylan pants. "It's... it's over." <<gwylanPurgeEffect>> <<combatTrainAdvance>> <br><br> <<link [[Next|Gwylan Ritual Bait Sex Pack Finish]]>><<set $finish to 1>><</link>> <</if>> <<elseif $enemyhealth lte 0>> <<beastwound>> <<if $combatTrain.length gt 0>> The <<beasttype>> recoils, but another takes <<bhis>> place. Gwylan speaks. "H-hey, <span class="blue">try to go easy on them</span>! We're still here to help them!" <<combatTrainAdvance>> <br><br> <<link [[Next|Gwylan Ritual Bait Sex Pack]]>><</link>> <<else>> The <<beasttype>> recoils. Gwylan pants. "It's... it's over." <<combatTrainAdvance>> <br><br> <<link [[Next|Gwylan Ritual Bait Sex Pack Finish]]>><<set $finish to 1>><</link>> <</if>> <<else>> <<set $beastRitual.end to "orgasm">> You lie flat on your back, trying to catch your breath. <<if $enemywounded is 1 and $enemyejaculated is 0>> The <<beasttype>> whimpers and backs away towards <<bhis>> siblings, who have all grouped together. <<elseif $enemywounded is 0 and $enemyejaculated is 1>> Satisfied, the <<beasttype>> rejoins <<bhis>> siblings, who have all grouped together. <<elseif $enemywounded gte 2 and $enemyejaculated is 0>> <<set $beastRitual.end to "beaten">> The <<beastsplural>> all keep their distance from you. <<else>> The <<beastsplural>> all join back into a group. <</if>> <br><br> <<if V.NPCList.some(wolf => wolf.penis and wolf.penis isnot "none") and (C.npc.Gwylan.vagina isnot "none" or V.settings.analEnabled)>> <<set _theKnottyBoy to V.NPCList.find(wolf => wolf.penis and wolf.penis isnot "none")>> <<set $beastRitual.gwylanKnotted to true>><<set $gwylanSeen.pushUnique("knotted")>> Except one. You turn your head over to Gwylan, and see <<nnpc_him 'Gwylan'>> on <<nnpc_his "Gwylan">> hands and knees right next to you. <<if $consensual is 1>> <<nnpc_His "Gwylan">> head rests in <<nnpc_his "Gwylan">> hand, while the other hand taps its fingers impatiently on the ground. <span class="pink"><<nnpc_Hes "Gwylan">> been knotted by the final _theKnottyBoy.type.</span> <br><br> <<nnpc_He "Gwylan">> shoots you a glare, but it slowly breaks into a smile. <<nnpc_He "Gwylan">> softly exhales as the knot deflates, freeing <<nnpc_him "Gwylan">>. <<else>> <<nnpc_His "Gwylan">> hands grip the ground, and <<nnpc_his "Gwylan">> teeth are clenched. <span class="pink"><<nnpc_Hes "Gwylan">> been knotted by the final _theKnottyBoy.type.</span> <br><br> <<nnpc_He "Gwylan">> slowly looks up, breathing heavily. <<nnpc_He "Gwylan">> winces as the knot deflates, freeing <<nnpc_him "Gwylan">>. <</if>> <<else>> Gwylan lies on the ground next to you, equally spent. <<if $consensual is 1>> <<nnpc_He "Gwylan">> glares at you, but it slowly breaks into a smile. <<else>> <<nnpc_His "Gwylan">> expression is almost perfectly neutral, which unnerves you more than if <<nnpc_he "Gwylan">> looked angry. <</if>> <</if>> <<if $beastRitual.goaded>> "I suppose this was your idea of a joke? In that case, congratulations, you're <i>very</i> funny." <<else>> "Why do I have the sneaking suspicion that you caused this, <<pcpetname "Gwylan" "simple">>? I knew one of those howls sounded familiar." <</if>> <<tearful>> you try to stand. Gwylan stands first, and helps you. <span class="red"><<nnpc_Hes "Gwylan">> covered in fresh scratch marks.<<if $consensual is 0>> A few of them trickle blood.<</if>></span> <br><br> Gwylan unsteadily walks over to the hatch, and beckons the <<beastsplural>>. "Go home," <<nnpc_he "Gwylan">> says. "And stay out of trouble." One by one, they crawl through the hole and leave the garden. <<if $beastRitual.tainted and $beastRitual.purge gte 3>> <<set $beastRitual.purge++>> <br><br> The last one hesitates, looking back at the two of you. <<if $monster is 1>> "Humans generous. Humans make the voices go away." <<else>> <<bHe>> lets out a low gruff, and looks grateful. <</if>> <<bHe>> bounds up to you and licks your face before following <<bhis>> siblings. <<stress -2>><<lstress>> <</if>> <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Gwylan Ritual Bait End Pack]]>><</link>> <br> <</if>><<effects>><<run statusCheck("Gwylan")>> <<npc Gwylan>><<person1>> Gwylan shuts and locks the hatch, and turns to you. <br><br> <<if _gwylanStatus.includes("heat") and _gwylanTF.known>> <<His>> eyes narrow, and <<he>> gets low to the ground. You instinctively take a step back. It doesn't matter. <<Hes>> too fast. <<He>> clears the distance between you and pounces. You're on your back before you know it. <br><br> "You howled for them, <<pcpetname "Gwylan" "naughty">>." <<He>> licks your cheek. "Now I want you to howl for me." <br><br> <<He>> opens <<his>> mouth, giving you a full view of <<his>> sharp teeth. <<His>> nails, which suddenly look sharper, scratch against your chest. <<pain 2>><<arousal 500>><<gpain>><<garousal>> <br><br> "I said... <<gwylanCommand "howl">>." <<He>> bites your neck, prompting you to cry out in <<if $masochism_level gte 1>> pained pleasure. <<pain 5>><<arousal 1200>><<ggpain>><<ggarousal>> <<else>> pain. <<pain 8>><<ggpain>> <</if>> <br><br> <<He>> releases you, only to kiss and suck on the spot <<he>> bit. The thought of <<him>> leaving a mark makes you shiver. <<stress 3>><<arousal 500>><<gstress>><<garousal>> <br><br> <<if $masochism_level gte 1>> "I'm not disappointed," <<else>> "That'll do," <</if>> <<he>> coos, wrapping <<his>> arms around you. The two of you lay there for a few minutes, before <<he>> helps you up once again. /* When bruises are implemented, have this leave a mark. */ <<bruise neck>> <<elseif $gwylanSeen.includes("player_knotted_gwylan") and $beastRitual.gwylanKnotted>> "Your knot still feels better," <<he>> says with a blush. <<else>> <<He>> sighs. "I've still had worse." <<He>> doesn't look like <<hes>> joking. <</if>> <br><br> "Let's go clean up your mess." <<He>> leads you over to the wooden tub. <br><br> <<link [[Next|Gwylan Ritual Bait End]]>><<endevent>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> Gwylan hands you a sponge and a pair of small shears, and starts to spray the <<persons>> leaves with a spray bottle. Whatever <<hes>> sprayed with sizzles into bubbles on contact, and <<he>> starts to relax. "Dryad nectar is a binding substance. It sponges up the poison, and blocks the rest from escaping like a clogged faucet. We'll be extracting as much as we can. First, however, we're going to prune <<him>> very carefully." <br><br> Gwylan very slowly cuts a withered flower from <<his>> hair, and places it in the bucket. The <<personsimple>> winces, but doesn't tense up at all. "The dryads are especially sensitive to the taint. If it becomes too much, they become a source themselves. Physical removal of tainted flora has to come first." <br><br> <<if $beastRitual.tainted>> <<nnpc_He "Gwylan">> holds up one of the <<personsimple>>'s vines. It looks much worse than all the rest. There are purple veins running along its length, and thorns jutting out at random. "There's no saving this vine, I'll need to <span class="red">amputate</span> so a new one can grow." <<nnpc_He "Gwylan">> pulls out a much larger, heavily angled pair of shears and holds the vine over the bucket. "Just hold still, you won't feel a thing." <br><br> You look away, and hear a heavy snip. The <<personsimple>> breathes heavier, but doesn't seem to struggle. When you look back, Gwylan has tied off the stump of the vine with a thick length of plant twine. "There, there, your body will absorb that when it's ready to heal." <br><br> <</if>> <<if $phase is 1>> You start to look for any dead or withering foliage on <<him>>. <<if $beastRitual.person is "player">> <span class="teal"><<He>> relaxes further when you get close.</span> "You smell very nice," <<he>> says wistfully, <<his>> faded eyes slightly focusing on you. <</if>> <<if $tendingSuccess>> <<set $beastRitual.tendingSuccess to true>> <<set $beastRitual.purge++>> <span class="green">Your touch is gentle but firm, and you don't cause <<him>> much discomfort.</span> You and Gwylan end up half-filling the bucket with dead foliage. <<gwylanPurgeEffect>> <<else>> <span class="red">You cut a flower too close to <<his>> skin.</span> <<His>> eyes snap to focus. <<if $beastRitual.person is "player">> "Why do you smell so familiar?" <</if>> Two of <<his>> vines wrap around your wrist, and <span class="red">sprout thorns</span>. You cry out in pain. <<pain 10>><<ggpain>> <br><br> Gwylan's hands wrap around your wrist with the vines. <<nnpc_He "Gwylan">> presses <<nnpc_his "Gwylan">> fingers into the vines at various points, and they steadily retract their thorns and go limp. The <<persons>> other vines all begin to flare up at the two of you as <<he>> rises from the tub. <br><br> Gwylan sprays <<him>> directly in the face a single time. <span class="green"><<He>> flops right back down into the tub with a splash, <<his>> eyes vacant once more.</span> <br><br> <<nnpc_He "Gwylan">> starts to pull stray thorns out of your wrist. <<nnpc_His "Gwylan">> touch is very gentle. "The sedative I'm using has diminishing returns. Once it's in your system, its effects dilute quickly. Just leave the rest of the pruning to me, dear." <</if>> <<elseif $phase is 2>> <<set $beastRitual.arousal to true>> You set the shears aside, instead focusing on <<his>> body. Gwylan watches you curiously as you scrub down the <<persons>> chest. <br><br> You work your way lower, until you find an opening in <<his>> plant skirt. You begin to fondle and wash <<his>> <<npcGenitals>>. <<deviancy3>> Gwylan giggles. "That's alright, that will warm <<him>> up for what comes next." Surely enough, the <<personsimple>> starts to lean into your touch and show signs of arousal. <<else>> <<set $beastRitual.purge++>><<set $beastRitual.arousal to true>><<set $beastRitual.milked to true>> You set aside the shears, instead gently running your hands along <<his>> vines. You grab one and rub your thumb on the tip. You can practically taste the nectar already. <br><br> Gwylan eyes you curiously. You stroke and work the vine, and start priming another one in the meantime. The <<personsimple>> starts to breathe heavier. You lick the first vine, and squeeze it firmly. You're rewarded with a slow stream of nectar on your tongue. <<nectarfed 10>> <<gwylanPurgeEffect>> <br><br> You continue working the two vines, lapping up their nectar when they yield it. <<if $gwylan.request.items?.some(item => item.category is "sample" and item.name is "plant")>> <<set $gwylan.request.items.find(item => item.category is "sample" and item.name is "plant").have++>> <span class="gold">You pull out one of the vials Gwylan gave you and make sure to save some of it.</span> <</if>> <br><br> Gwylan giggles, before grabbing the vines away from you. "Alright, you've had your fun. I can't have you getting <<him>> too excited yet, though." <</if>> <br><br> Gwylan finishes up, <<nnpc_his "Gwylan">> pace increasing. "There's only so much time. We need to move on." <<nnpc_He "Gwylan">> squeezes <<nnpc_his "Gwylan">> sponge out over the <<persons>> head. "Follow me." <br><br> The <<personsimple>> immediately stands up and steps out of the tub to do so. You follow, too. <br><br> <<link [[Next|Gwylan Ritual Bait Cleanse Plant]]>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> Gwylan raises a single finger. A blurry light dances on the end, like a firefly. It follows <<nnpc_his "Gwylan">> finger, and the <<persons>> head moves to track it. "Bloom." Gwylan grabs the light in <<nnpc_his "Gwylan">> other palm and snaps <<nnpc_his "Gwylan">> fingers. <br><br> The <<personsimple>> shudders, and <<his>> leafy clothes begins to move to expose <<him>> more, opening like one big flower. <<if $beastRitual.tainted>> Gwylan winces. <span class="purple">Parts of the <<persons>> skin are marked with deep cracks, like old rotten tree bark. <<His>> $beastRitual.taintedArm is thin and gangly. It looks about ready to snap off at the elbow.</span> <br><br> "It was almost too late for <<him>>," <<nnpc_he "Gwylan">> says, kneeling down to further inspect. "<<He>> was hiding the worst of it. We're lucky <<hes>> the one that answered us. <<He>> can still fully recover from this, although <<he>>'ll have some scars." <<else>> Gwylan nods. "I've seen worse." You notice that there are some discoloured patches of skin around <<his>> body, with cracks forming at their center. "<<He>>'ll be okay after we finish the cleansing." <</if>> <br><br> The <<person>> shudders, and starts to breathe heavily. <br><br> <<nnpc_He "Gwylan">> turns and smiles at you. "<<Hes>> ready. I need you to help me extract the poison. Make <<him>> release as much nectar as possible, however you can. I'll be right here next to you, helping. <<He>> may be receptive, but those vines might have a mind of their own with so much poison flowing through them. Ready?" <<nnpc_He "Gwylan">> stands beside you. The <<persons>> vines writhe towards you. <br><br> <<link [[Ready|Gwylan Ritual Bait Sex Plant]]>><<set $sexstart to 1>><</link>> <br><<run statusCheck("Gwylan")>> <<if $sexstart is 1>> <<set $sexstart to 0>> <<consensual>><<set $consensual to 1>><<set $fightTargets to []>> <<neutral 1>> <<maninit "plant">><<npcexpose>> <<set $enemyarousalmax to 800>> <<if $beastRitual.arousal>> <<set $enemyarousal += 120>> <</if>> <<set _tentacleCount to 9>> <<if $beastRitual.person is "player">> <<set _tentacleCount += 4>> <</if>> <<set _tentacleHealth to 8>> <<if $beastRitual.milked>> <<set _tentacleCount -= 2>> <</if>> <<if $beastRitual.tainted>> <<set $enemyhealthmax += 200>> <<set $enemyhealth += 200>> <<set $enemyarousalmax += 200>> <<set $enemytrust -= 30>> <<set $enemyanger += 15>> <<set _tentacleHealth += 6>> <<if $beastRitual.taintedArm is "right arm">> <<set $NPCList[0].righthand to "idle">> <<else>> <<set $NPCList[0].leftthand to "idle">> <</if>> <<makeAbomination _tentacleCount _tentacleHealth "vine" "tainted" "desc">> <<else>> <<makeAbomination _tentacleCount _tentacleHealth "vine" "vine" true>> <</if>> <<set $speechdisable to 1>><<set $genitalReactionDisable to true>> <<set $beastRitual.gwylan to { leftarm: 0, rightarm: 0, mouth: 0 }>> <<set $beastRitual.stateTimer to 0>> <</if>> <<if $beastRitual.tainted and $enemyanger lte 100>> <<set $enemyanger += 3>> <</if>> <<if $enemyanger gte 100 and !$beastRitual.forcedCalm and $beastRitual.gwylan.mouth isnot "choking">> <<set $beastRitual.forcedCalm to true>> Gwylan gently grabs the <<personsimple>> by the chin, <<nnpc_his "Gwylan">> eyes reflecting a green glow. "Behave yourself, seedling." <br><br> <span class="green">The <<personsimple>> loosens up, and seems to calm down.</span> <<if $beastRitual.tainted>> "I'm... I'm sorry. It hurts. Fill the... holes..." <<else>> "Oh... I'm sorry..." <</if>> <<set $enemyanger to 0>><<set $enemytrust += 50>> <<if $beastRitual.gwylan.leftarm isnot 0>> <<set _tentToFreeLeft to Object.values($tentacles).find(tentacle => tentacle.id === $beastRitual.gwylan.leftarm)>> <<if _tentToFreeLeft>> <<tentacleadvdisable _tentToFreeLeft>> <</if>> <</if>> <<if $beastRitual.gwylan.rightarm isnot 0>> <<set _tentToFreeRight to Object.values($tentacles).find(tentacle => tentacle.id === $beastRitual.gwylan.rightarm)>> <<if _tentToFreeRight>> <<tentacleadvdisable _tentToFreeRight>> <</if>> <</if>> <<set $beastRitual.gwylan.leftarm to 0>><<set $beastRitual.gwylan.rightarm to 0>><<set $beastRitual.gwylan.mouth to 0>> <<if $beastRitual.taintedArm is "right arm">> <<set $NPCList[0].righthand to "idle">><<set $NPCList[0].lefthand to 0>> <<else>> <<set $NPCList[0].righthand to 0>><<set $NPCList[0].leftthand to "idle">> <</if>> <br><br> <</if>> <<effects>> <<effectsabomination>> <<if $speechbanish gte 1 and $beastRitual.tainted and $beastRitual.gwylan.mouth isnot "choking">> <<set $speechbanish to 0>> <<if !$gwylanSeen.includes("ritual_banish")>> <<set $gwylanSeen.pushUnique("ritual_banish")>> Gwylan winces at the bright shimmer. <<nnpc_He "Gwylan">> seems to realise something. <<if $beastRitual.gwylan.mouth isnot 0>> <<nnpc_He "Gwylan">> momentarily removes the vine from <<nnpc_his "Gwylan">> mouth. <</if>> "Whatever you just did, <span class="green">it's working</span>. Do it again!" <<gwylanPurgeEffect>> <<elseif !$beastRitual.banish>> <<set $beastRitual.banish to true>> Gwylan winces at the bright shimmer. <<if $beastRitual.gwylan.mouth isnot 0>> <<nnpc_He "Gwylan">> momentarily removes the vine from <<nnpc_his "Gwylan">> mouth. <</if>> "You're burning the poison away! Keep going!" <<gwylanPurgeEffect>> <<elseif $beastRitual.gwylan.mouth is 0>> "Again! Banish another one!" <<gwylanPurgeEffect>> <</if>> <br> <</if>> <<if $angel gte 6 and Object.values($tentacles).some(tentacle => tentacle.head is "vaginaimminent" or tentacle.head is "penisimminent") and !$beastRitual.virginityProtected>> <<set _gwyTargetFeet to Object.values($tentacles).find(tentacle => tentacle.head is "vaginaimminent" or tentacle.head is "penisimminent")>> <<if _gwyTargetFeet>> <<set $beastRitual.virginityProtected to true>> With a sharp kick, Gwylan <span class="green">beats back the _gwyTargetFeet.fullDesc just before it ruins your purity forever</span>. <<if $transformationParts.angel.halo isnot "hidden">> <span class="blue">You think you see the reflection of your halo in <<nnpc_his "Gwylan">> eyes for a moment.</span> <</if>> <br> More vines creep around <<nnpc_him "Gwylan">>, ensnaring <<nnpc_his "Gwylan">> legs. <<tentacleadvdisable _gwyTargetFeet>> <<set _gwyTargetFeet.tentaclehealth -= 5>><<tentacle_record "damage" 5>> <<set $enemyanger += 15>> <br> <</if>> <</if>> <<abomination>> <<if $beastRitual.tainted>> <<His>> $beastRitual.taintedArm hangs limply at <<his>> side. <<if $beastRitual.taintedArm is "right arm">> <<set $NPCList[0].righthand to "idle">> <<else>> <<set $NPCList[0].leftthand to "idle">> <</if>> <br> <</if>> <br> <<set _gwyNameText ||= "Gwylan">><<set _gwySpeech to []>> <<for _gwyPart, _gwyVal range $beastRitual.gwylan>> <<set _gwyPartText to _gwyPart is "leftarm" ? "left arm" : _gwyPart is "rightarm" ? "right arm" : _gwyPart>> <<if ["leftarm", "rightarm"].includes(_gwyPart)>> <<if _gwyVal is 0 and ($head is "grappled" or $leftleg is "grappled" or $rightleg is "grappled" or $leftarm is "tentgrappled" or $rightarm is "tentgrappled")>> <<if $head is "grappled">> <<set _gwyTarget to "neck">><<set _gwyTargetBody to "neck">> <<elseif $leftleg is "grappled">> <<set _gwyTarget to "leftleg">><<set _gwyTargetBody to "left leg">> <<elseif $rightleg is "grappled">> <<set _gwyTarget to "rightleg">><<set _gwyTargetBody to "right leg">> <<elseif $leftarm is "tentgrappled">> <<set _gwyTarget to "leftarm">><<set _gwyTargetBody to "left arm">> <<elseif $rightarm is "tentgrappled">> <<set _gwyTarget to "rightarm">><<set _gwyTargetBody to "right arm">> <</if>> <<if _gwyTarget>> <<set _gwyTargetTentacle to Object.values($tentacles).find(tentacle => tentacle.shaft === _gwyTarget && tentacle.shaft !== "finished")>> <<if _gwyTargetTentacle>> <<= _gwyNameText>> grabs the _gwyTargetTentacle.fullDesc with <<nnpc_his "Gwylan">> <<= _gwyPartText>>, <span class="green">prying it off of your <<= _gwyTargetBody>> and freeing you</span>. <<tentacleadvdisable _gwyTargetTentacle>><<set _gwyNameText to "<<nnpc_He 'Gwylan'>>">> <<set $beastRitual.gwylan[_gwyPart] to _gwyTargetTentacle.id>><<set _gwyTargetTentacle.head to _gwyPart + "gwylan">><<set _gwyTargetTentacle.shaft to _gwyPart + "gwylan">> <<set _gwySpeechGrab to _gwySpeechGrab is "grab_one" ? "grab_two" : "grab_one">> <</if>> <</if>> <<elseif _gwyVal is 0>> <<set _gwyPossibleTargets to Object.values($tentacles).filter(tentacle => tentacle.desc && tentacle.head isnot "finished" && !["mouthgwylan", "leftarmgwylan", "rightarmgwylan"].includes(tentacle.shaft))>> <<if _gwyPossibleTargets.length>> <<set _gwyTargetTentacle to _gwyPossibleTargets.random()>> <<= _gwyNameText>> grabs the _gwyTargetTentacle.fullDesc with <<nnpc_his "Gwylan">> <<= _gwyPartText>>, and starts to work the shaft. <<tentacleadvdisable _gwyTargetTentacle>><<set _gwyNameText to "<<nnpc_He 'Gwylan'>>">> <<set $beastRitual.gwylan[_gwyPart] to _gwyTargetTentacle.id>><<set _gwyTargetTentacle.head to _gwyPart + "gwylan">><<set _gwyTargetTentacle.shaft to _gwyPart + "gwylan">> <<set _gwyTargetTentacle.tentaclehealth -= 1>><<tentacle_record "arousal" 1>> <</if>> <<else>> <<set _gwyTargetTentacle to Object.values($tentacles).find(tentacle => tentacle.id === _gwyVal && tentacle.shaft !== "finished")>> <<if _gwyTargetTentacle>> <<if $beastRitual.gwylan.mouth is 0 and $rng gte 66>> <<= _gwyNameText>> <span class="pink">guides the _gwyTargetTentacle.fullDesc into <<nnpc_his "Gwylan">> mouth</span> with <<nnpc_his "Gwylan">> <<= _gwyPartText>>. The shaft curls around <<nnpc_his "Gwylan">> chest. <<set _gwyTargetTentacle.tentaclehealth -= 1>><<tentacle_record "fluid" 1>><<set _mouthDisableTemp to true>> <<tentacleadvdisable _gwyTargetTentacle>> <<set _gwyTargetTentacle.head to "mouthgwylan">><<set _gwyTargetTentacle.shaft to "mouthgwylan">> <<set $beastRitual.gwylan[_gwyPart] to 0>><<set $beastRitual.gwylan.mouth to _gwyTargetTentacle.id>> <<else>> <<if _gwyPart is "left arm">> <<= _gwyNameText>> rubs and kneads the _gwyTargetTentacle.fullDesc with <<nnpc_his "Gwylan">> <<= _gwyPartText>>. Nectar flows out in bursts. <<else>> <<= _gwyNameText>> milks the _gwyTargetTentacle.fullDesc with <<nnpc_his "Gwylan">> <<= _gwyPartText>>. Nectar steadily leaks out. <</if>> <<set _gwyTargetTentacle.tentaclehealth -= 2>><<tentacle_record "fluid" 2>> <</if>> <<set _gwyNameText to "<<nnpc_He 'Gwylan'>>">> <<else>> <<set $beastRitual.gwylan[_gwyPart] to 0>> <</if>> <</if>> <<elseif ["mouth"].includes(_gwyPart)>> <<set _gwyTargetTentacle to Object.values($tentacles).find(tentacle => tentacle.id === $beastRitual.gwylan[_gwyPart] && tentacle.shaft !== "finished" || tentacle.shaft === "gwylanchoke")>> <<if _mouthDisableTemp>> <<elseif _gwyVal is "choking">> <<if _gwyTargetTentacle?.shaft is "gwylanchoke">> <span class="red">The _gwyTargetTentacle.fullDesc chokes Gwylan,</span> but <<nnpc_he "Gwylan">> continues working regardless. <<set _gwyTargetTentacle.tentaclehealth -= 2>><<tentacle_record "fluid" 2>> <<else>> <span class="green">Gwylan gasps as you free <<nnpc_him "Gwylan">> from the vine choking <<nnpc_him "Gwylan">>.</span> "Thanks, dear!" <<set $beastRitual.gwylan[_gwyPart] to 0>> <</if>> <<elseif _gwyTargetTentacle>> <<if $enemyanger gte 100 and !$beastRitual.choked and ($beastRitual.person is "Gwylan" or $rng gte 51)>> The _gwyTargetTentacle.fullDesc slowly worms deeper and deeper into Gwylan's throat, before the shaft <span class="red">suddenly curls around <<nnpc_his "Gwylan">> neck while the head thrusts faster.</span> <<nnpc_His "Gwylan">> eyes widen, but <<nnpc_he "Gwylan">> continues regardless. <<set $beastRitual.choked to true>> <<set $beastRitual.gwylan[_gwyPart] to "choking">><<set _gwyTargetTentacle.shaft to "gwylanchoke">> <<else>> Nectar leaks out of the corners of <<nnpc_his "Gwylan">> mouth as the _gwyTargetTentacle.fullDesc thrusts in and out. <<set _gwyTargetTentacle.tentaclehealth -= 2>><<tentacle_record "fluid" 2>> <</if>> <<else>> <<if _gwySpeechGrab>> <<if _gwySpeechGrab is "grab_two">> <<set _gwySpeech.push("I'll keep these two away from you.", "Come here, you've got two people to play with.")>> <<else>> <<set _gwySpeech.push("I'll keep this grabby one away from you.", "I need you to be able to move. I'll keep this one off of you.", "Come here, you've got two people to play with.")>> <</if>> <</if>> <<if $beastRitual.gwylan.mouth is 0 and _gwySpeech.length>> <<= _gwyNameText>> speaks. "<<print _gwySpeech.random()>>" <<set _gwyNameText to "<<nnpc_He 'Gwylan'>>">> <<else>> <<if $enemyanger gte 30>> <<set $enemyanger -= 10>> <<= _gwyNameText>> hums a soothing tune to the <<person>>. <span class="green"><<He>> calms downs lightly.</span> <<else>> <<= _gwyNameText>> hums a soothing tune to the vines. <span class="green">They become more sluggish.</span> <<for _i to 0; _i lt $tentacles.max; _i++>> <<set _tentacleSoothe to $tentacles[_i]>> <<if _tentacleSoothe isnot undefined>> <<set _tentacle.tentaclehealth -= 0.2>><<tentacle_record "soothe" 0.2>> <</if>> <</for>> <</if>> <</if>> <<set $beastRitual.gwylan[_gwyPart] to 0>> <</if>> <</if>> <<if _gwyTargetTentacle and _gwyTargetTentacle.tentaclehealth lte 0 and _gwyTargetTentacle.shaft isnot "finished">> <<if _gwyTargetTentacle.shaft is "gwylanchoke">> <span class="green">Worn out, it retracts from Gwylan's throat and away from the two of you.</span> <<nnpc_He "Gwylan">> gasps for breath and coughs. <<else>> <span class="green">Worn out, it retracts from the two of you.</span> <</if>> <<tentacleadvdisable _gwyTargetTentacle>> <<set _gwyTargetTentacle.shaft to "finished">><<set _gwyTargetTentacle.head to "finished">><<set $beastRitual.gwylan[_gwyPart] to 0>> <</if>> <</for>> <<if _freshFallen>> <<set $beastRitual.fallen to true>> <span class="blue"><<= _gwyNameText>> winces as <<nnpc_he "Gwylan">> watches the light fade from your eyes.</span> <br> <</if>> <<if $beastRitual.person is "Gwylan">> <<if $beastRitual.stateTimer is 5>> The vines seem primarily interested in Gwylan. <<elseif $beastRitual.stateTimer is 4>> Several more vines surround Gwylan. <<elseif $beastRitual.stateTimer is 3>> Vines worm their way up Gwylan's legs and body. <<elseif $beastRitual.stateTimer is 2>> One brave vine worms its way between Gwylan's thighs. <<nnpc_He 'Gwylan'>> clenches them together tightly in response, subduing it. <<elseif $beastRitual.stateTimer is 1>> A vine finally manages to get through, <<if C.npc.Gwylan.penis isnot "none">> wrapping around <<nnpc_his "Gwylan">> penis. <<else>> rubbing against <<nnpc_his "Gwylan">> vagina. <</if>> <<nnpc_He "Gwylan">> doesn't seem too bothered by it, though. In fact, <<nnpc_he "Gwylan">> might even be enjoying it. <<elseif $beastRitual.stateTimer is 0>> You and Gwylan are pulled closer together by the vines ensnaring you. <<if !$beastRitual.fallen and $beastRitual.gwylan.mouth isnot "choking">> <<nnpc_He "Gwylan">> smiles cheerfully at you before returning to work. <</if>> <</if>> <<elseif $beastRitual.stateTimer is 5>> The vines seem primarily interested in you. <<elseif $beastRitual.stateTimer is 0>> You and Gwylan are pulled closer together by the vines ensnaring you. <<if !$beastRitual.fallen and $beastRitual.gwylan.mouth isnot "choking">> <<nnpc_He "Gwylan">> smiles cheerfully at you before returning to work. <</if>> <</if>> <<set $beastRitual.stateTimer++>> <br><br> <<stateabomination>> <<actionsabomination>> <<if _combatend>> <span id="next"><<link [[Next|Gwylan Ritual Bait Sex Plant Finish]]>><</link>></span><<nexttext>> <<elseif ($pain gte 100 and $willpowerpain is 0 or $beastRitual.fallen) and $beastRitual.gwylan.mouth isnot "choking">> <span id="next"><<link [[Next|Gwylan Ritual Bait Sex Plant Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Gwylan Ritual Bait Sex Plant]]>><</link>></span><<nexttext>> <</if>><<effects>><<run statusCheck("Gwylan")>> <<unset $genitalReactionDisable>> <<set $beastRitual.purgeInfo to $combat_tentacle_record>> <<set $beastRitual.orgasms to $orgasmcurrent>> <<if $enemyarousal gte $enemyarousalmax>> <<set $beastRitual.end to "orgasm">> <<ejaculation "short">><<set $beastRitual.purge++>><<set $beastRitual.ejac to true>> <<if $NPCList[0].vagina.toString().includes("mouth") or ["mouth", "vagina", "anus"].includes($NPCList[0].penis.toString())>> <<set $beastRitual.purgeDirect++>> <<if $temple_confessor_intro or $gwylanSeen.includes("ritual_beast")>> <span class="lewd">You take the poison into your body directly.</span> <<if $angel gte 6>> <span class="gold">The purity within you clashes with it, snuffing it out.</span><<trauma 6>><<pain 1>><<gtrauma>><<gpain>> <<elseif $fallenangel gte 2 and $fallenangel lt 4>> <span class="black">It rushes to fill the emptiness inside of you, and vanishes within. You feel nothing.</span> <<elseif $demon gte 6>> <span class="purple">It melds with your very being.</span><<stress -12>><<trauma -6>><<purity -40>><<llstress>><<ltrauma>><<lllpurity>> <<elseif $dryad gte 6>> <span cass="red">You feel violently ill as it twists your connection to the world. Your blossom turns sickly for a moment.</span><<stress 12>><<trauma 24>><<pain 10>><<ggstress>><<ggtrauma>><<ggpain>> <<else>> <<purity -25>><<llpurity>> <</if>> <br> <<else>> <span class="pink">A strange emptiness fills you.</span> <</if>> <<else>> The ivory bowl fills with a glowing pink fluid. <</if>> Focus returns to the <<persons>> eyes as <<his>> vines retract from you and Gwylan. <<gwylanPurgeEffect>> <br><br> <<if $beastRitual.tainted>> <<set $beastRitual.purge++>> <<He>> looks around in a panic, clutching <<his>> limp arm with the other. "Where am I? Who..." <<He>> freezes upon seeing Gwylan, who returns a gentle smile. <br><br> <<He>> backs away slowly, but stops as you all hear a sizzling. A pure black fluid leaks from the cracks in <<his>> skin. The fluid drips to the ground, where it shimmers briefly before roses begin to bloom in their place. The same roses sprout from the cracks in <<his>> skin, sealing them. Thick vines grow down <<his>> shoulder, protecting <<his>> brittle arm. <br><br> <<He>> looks between the two of you. "Th... thank you." <<His>> vines flare, wrapping the three of you into a tight hug, which Gwylan tenderly returns. <<else>> <<He>> looks around in confusion. "Oh, wow, that felt great! Wait, why do I feel so naked? Did you prune me? Who..." <<He>> freezes upon seeing Gwylan, who returns a gentle smile. <br><br> "Oh, hell no." <<He>> moves to run, but stops as you all hear a sizzling. A pure black fluid leaks from the cracks in <<his>> skin. The fluid drips to the ground, where it shimmers briefly before roses begin to bloom in their place. The same roses sprout from the cracks in <<his>> skin, sealing them. <br><br> <<He>> looks between the two of you. "I, uh... thanks." <</if>> <br><br> <<His>> vines quickly propel <<him>> to the edge of the garden, where they climb the wall. <<Hes>> hauled over the top, and vanishes into the forest. <<tearful>> Gwylan brushes you down and looks you over. "You did great." <<clotheson>> <<endcombat>> <<link [[Next|Gwylan Ritual Bait End Plant]]>><</link>> <br> <<elseif $enemyhealth lte 0>> <<if $beastRitual.purgeInfo.banish gte 60 and $beastRitual.tainted>> <<set $beastRitual.end to "banish">> <<set $beastRitual.purge++>> <span class="gold"><<His>> vines all writhe and shimmer with your banishing light.</span> They flail in the air, but begin to return to a natural hue even as the <<person>> yells in pain. <br><br> Suddenly, <span class="purple">they all begin to expel a pure black fluid</span>. It drips to the ground, where it evaporates. <<His>> screams slowly turn into a relieved sigh. <br><br> <<He>> pants heavily, looking between you and Gwylan with eyes finally focused. "Where am I? Who..." <<He>> freezes upon seeing Gwylan, who returns a gentle smile. <br><br> <<He>> backs away slowly, but stops. The same black fluid leaks from the cracks in <<his>> skin. Roses sprout from them, sealing them. Thick vines grow down <<his>> shoulder, protecting <<his>> brittle arm. <br><br> <<He>> looks between the two of you. "Th... thank you, angels." Gwylan winces. The <<persons>> vines flare, wrapping the three of you into a tight hug, which Gwylan tenderly returns. <br><br> <<His>> vines quickly propel <<him>> to the edge of the garden, where they climb the wall. <<Hes>> hauled over the top, and vanishes into the forest. <<tearful>> Gwylan brushes you down and looks you over. "That isn't my usual method, but it worked. I'm blessed to have your help." <<He>> walks you over to the bath. <<clotheson>> <<endcombat>> <<link [[Next|Gwylan Ritual Bait End]]>><</link>> <br> <<else>> <<set $beastRitual.end to "beaten">> The <<person>> backpedals from you, looking between you and Gwylan warily as focus returns to <<his>> eyes. Gwylan sighs sadly and turns to you. "Oh dear, you weren't gentle enough." <br><br> <<if $beastRitual.tainted>> The <<person>> hisses. "Have I not suffered enough without you humans trying to take more from me? I won't be taken and farmed like my siblings!" <<else>> The <<person>> frowns. "You could have just asked if you wanted to have some fun. You didn't have to... do all this mind-game stuff, and then hurt me." <</if>> <br><br> <<His>> vines quickly propel <<him>> to the edge of the garden, where they climb the wall. <<Hes>> hauled over the top, and vanishes into the forest. <<tearful>> Gwylan brushes you down and looks you over. "That could have gone better. We'll have to hope we purged enough for <<him>> to recover on <<his>> own." <<He>> walks you over to the bath. <<clotheson>> <<endcombat>> <<link [[Next|Gwylan Ritual Bait End]]>><</link>> <br> <</if>> <<else>> /* Not sure about having this case, might make the encounter too forgiving */ <<set $beastRitual.end to "failed">> "Enough!" Gwylan yells. A green ribbon of light leaves <<nnpc_his "Gwylan">> eyes as the vines release <<nnpc_him "Gwylan">>. <<nnpc_He "Gwylan">> kneels down and peels the vines away from you one by one, before wiping the tears from your eyes. <br><br> Focus fully returns to the <<persons>> eyes. Gwylan gets up, standing between you and <<him>> protectively. <br><br> <<if $beastRitual.tainted>> <<He>> sneers down at your pitiful state. "Have I not suffered enough without you humans trying to take more from me? I won't be taken and farmed like my siblings! This is the least you deserve." <<else>> The <<person>> frowns. "You could have just asked if you wanted to have some fun. You didn't have to... do all this mind-game stuff. Then I wouldn't have had to hurt you." <</if>> <br><br> <<His>> vines quickly propel <<him>> to the edge of the garden, where they climb the wall. <<Hes>> hauled over the top, and vanishes into the forest. <<tearful>> Gwylan tries to help you up, mindful of all the thorns stuck in you. <<clotheson>> <<endcombat>> <<link [[Next|Gwylan Ritual Bait End]]>><</link>> <br> <</if>><<effects>><<run statusCheck("Gwylan")>> <<npc Gwylan>><<person1>> Gwylan pants for breath. <<His>> cheeks are flushed, and you're both covered in nectar. <br><br> <<if _gwylanStatus.includes("heat")>> <<He>> suddenly grabs you by the back of your neck. <<He>> pushes down gently, forcing you on your knees. <br><br> <<He>> smiles down at you, <<his>> eyes dilated. The nectar must have gotten to <<him>>, but you doubt that's all. <<Hes>> eyeing you hungrily. <br><br> "<<gwylanCommand "Clean me up, <<pcpetname 'Gwylan'>>.">>" <br><br> <<if $drugged gte 1>> <span class="pink">The nectar is making your head spin.</span> <br><br> <</if>> <<link [[Obey|Gwylan Ritual Nectar Lick]]>><<set $worshipstart to 1>><<set $phase to "willing">><</link>><<if $drugged>><<gwylanHypnoNote>><</if>> <br> <<link [[Defy|Gwylan Ritual Nectar Lick Refuse]]>><</link>><<gwylanWillpowerDifficulty>> <br> <<elseif _gwylanStatus.includes("lust")>> <<He>> avoids eye contact. "Sorry. The nectar is getting to me. Speaking of which." <br><br> <<He>> gets very close to you, and starts to <span class="pink">lick you.</span> <<He>> starts with some stray nectar on your face, and slowly gets lower. <<arousal 400>><<garousal>> <br> <<if $player.bodyliquid.chest.nectar gte 1>> <<bodyliquid "chest" "nectar" -1>> <<He>> licks around your <<breasts>>, briefly teasing your nipples on the way down. <<arousal 400>><<garousal>> <br> <</if>> <<if $player.bodyliquid.leftarm.nectar gte 1 or $player.bodyliquid.rightarm.nectar gte 1>> <<if $player.bodyliquid.leftarm.nectar gte 1>><<bodyliquid "leftarm" "nectar" -1>><</if>> <<if $player.bodyliquid.rightarm.nectar gte 1>><<bodyliquid "rightarm" "nectar" -1>><</if>> <<He>> lifts your arms, licking nectar off of your hands and fingers. <<arousal 400>><<garousal>> <br> <</if>> <<if $player.bodyliquid.tummy.nectar gte 1>> <<bodyliquid "tummy" "nectar" -1>> <<He>> blows a raspberry on your tummy, before cleaning it of all nectar. <<arousal 400>><<garousal>> <br> <</if>> <br> <<if $player.bodyliquid.penis.nectar gte 1 and $player.penisExist and !playerChastity()>> <<bodyliquid "penis" "nectar" -1>> <<He>> gently lifts up your <<penis>>, before running <<his>> tongue up its length. <<He>> quickly gets all the nectar, but gives you a few extra licks for good measure. <<arousal 1500>><<ggarousal>> <br> <<if $arousal gte $arousalmax>> <span class="kill-br"><<orgasm>></span> <<if !$femaleclimax>> It all lands right on Gwylan's face. <<He>> scoops it up and licks it up, too. <<His>> smile is as sweet as the nectar. <<else>> Gwylan giggles. <</if>> <br> <</if>> <br> <<elseif $player.bodyliquid.vaginaoutside.nectar gte 1 and $player.vaginaExist and !playerChastity()>> <<bodyliquid "vaginaoutside" "nectar" -1>> <<He>> gently spreads your thighs, before running <<his>> tongue along the outside of your pussy. It makes you shiver. <<He>> quickly gets all the nectar, but gives you a few extra licks for good measure. <<arousal 1500>><<ggarousal>> <br> <<if $arousal gte $arousalmax>> <span class="kill-br"><<orgasm>></span> Gwylan giggles. <br> <</if>> <br> <</if>> You're a little cleaner by the end, but still sticky. <<npcincr Gwylan lust 4>><<gglust>> <br><br> Gwylan stands back up. "Right. Bath time." <<He>> leads you to the wooden tub. <br><br> <<link [[Follow|Gwylan Ritual Bait End]]>><<endevent>><</link>> <br> <<link [[Offer to lick Gwylan clean first|Gwylan Ritual Nectar Lick]]>><<set $worshipstart to 1>><<set $phase to "offer">><</link>><<if $submissive <= 850>><<note "Dendrophile" "lewd">><<else>><<note "Plant Lover" "lewd">><</if>> <br> <<else>> <<He>> avoids eye contact. "Sorry. The nectar is getting to me." <br><br> <<He>> gets very close to you, and starts to collect the stray nectar from your skin. You help <<him>> scrape it into glass beakers, and then help <<him>> do the same for the nectar all over <<him>>. <<npcincr Gwylan lust 4>><<gglust>> <br><br> It takes a long while, but <<he>> smiles once it's done. "Alright. We're both all sticky now, so... bath time." <<He>> leads you to the wooden tub. <br><br> <<link [[Next|Gwylan Ritual Bait End]]>><<endevent>><</link>> <br> <</if>><<effects>><<run statusCheck("Gwylan")>> <<if $hypnosis_traits.devotion gte 1 and !$willpowerSuccess>> You open your mouth to speak, <span class="red">but your tongue just sticks out of your mouth.</span> Gwylan pushes <<his>> <<npcGenitals>> closer to you in response, taking it as permission. <br><br> <<link [[Lick|Gwylan Ritual Nectar Lick]]>><<set $worshipstart to 1>><</link>> <br> <<else>> You shake off the haze. "Gwylan, we're both all sticky..." <br><br> <<He>> pouts. "Very well. Bath time." <<He>> helps you stand back up, and pulls you over to the wooden tub. <br><br> <<link [[Next|Gwylan Ritual Bait End]]>><<endevent>><</link>> <br> <</if>><<effects>><<run statusCheck("Gwylan")>> <<if $worshipstart is 1>> <<set $worshipstart to 0>> <<set $worship to { fluid: "nectar", action: "start", actionLast: "", source: "plant", body: 5, tummy: 3, breasts: Math.ceil(C.npc.Gwylan.breastsize / 2), genitals: 3, control: "player", arousal: C.npc.Gwylan.lust + Math.floor(C.npc.Gwylan.dom / 3), timer: 30 }>> <<set $gwylanSeen.pushUnique("nectar_lick")>> <<if $phase is "willing" and $drugged>> <<gwylanHypnosis "devotion" 3>> <br> <<elseif $phase is "offer">> <<switch $speech_attitude>> <<case "meek">>"Can I return the favour first?" you ask shyly. <<case "bratty">>"Let me return the favour first. It'd be a shame to let all that nectar go to waste," you say. <<default>>"Why don't you let me return the favour first?" you ask. <</switch>> <br><br> <<He>> giggles. "What a <<pcpetname "Gwylan" "good">> you are." <<He>> sits down and spreads <<his>> legs for you. <br><br> <</if>> <</if>> <<gwylanWorshipEffects>> <<if $worship.end>> <<if ["milk", "genitals", "oral"].includes($worship.end) and $gwylanSeen.includes("partners")>> <<link [[Crawl up and kiss Gwylan|Gwylan Ritual Nectar Lick End]]>><<set $phase to "kiss">><<npcincr Gwylan lust 5>><<npcincr Gwylan dom 1>><</link>><<gglust>><<gyearning>><<gwylanHypnoNote "kiss">> <<elseif $gwylanSeen.includes("partners")>> <<link [[Kiss Gwylan|Gwylan Ritual Nectar Lick End]]>><<set $phase to "kiss">><<npcincr Gwylan lust 2>><<npcincr Gwylan dom 1>><</link>><<glust>><<gyearning>><<gwylanHypnoNote "kiss">> <</if>> <br> <<if ["genitals", "oral"].includes($worship.end) and C.npc.Gwylan.penis isnot "none">> <<link [[Let Gwylan see you swallow <<his>> cum|Gwylan Ritual Nectar Lick End]]>><<set $phase to "swallow">><<npcincr Gwylan lust 2>><</link>><<glust>> <br> <</if>> <<link [[Cuddle with Gwylan for a while (0:10)|Gwylan Ritual Nectar Lick End]]>><<stress -6>><<trauma -3>><<npcincr Gwylan dom 1>><<pass 10>><<set $phase to "cuddle">><</link>><<lstress>><<ltrauma>><<gyearning>> <br> <<link [[Just get up|Gwylan Ritual Nectar Lick End]]>><<set $phase to "up">><</link>> <br> <<elseif $worship.timer lte 0 or ($worship.breasts lte 0 and $worship.genitals lte 0 and $worship.body lte 0 and $worship.tummy lte 0)>> <<link [[Next|Gwylan Ritual Nectar Lick End]]>><<set $worship.end to "clean">><<set $phase to "clean">><</link>> <br> <<else>> <<gwylanWorshipActions>> <</if>><<effects>><<run statusCheck("Gwylan")>> <<if $worship.end is "oral">> You slowly pull your head up, releasing <<his>> <<npcPenis>> and taking a deep breath. <<elseif $worship.end is "milk">> You pull your mouth off of <<his>> breasts, taking a deep breath. <</if>> <<if $phase is "kiss">> <<if ["genitals", "oral"].includes($worship.end)>> You crawl up towards <<him>>, gently leaving a trail of kisses all the way up <<his>> body. <<His>> gaze is a mixture of anticipation and concern as you finally reach <<his>> face. You kiss <<him>> on the cheek, and then on the lips. <<else>> You lean up towards Gwylan's face and kiss <<him>>. <</if>> <<if $worship.end is "milk">> You push your tongue into <<his>> mouth, <span class="lewd">giving <<him>> a taste of <<his>> own milk</span>. It's only fair that you share the nectar. <<elseif $worship.end is "oral" or $worship.end is "genitals" and C.npc.Gwylan.penis isnot "none">> You push your tongue into <<his>> mouth, <span class="lewd">giving <<him>> a taste of <<his>> own cum</span>. It's only fair that you share the nectar. <<elseif $worship.end is "genitals">> You push your tongue into <<his>> mouth, <span class="lewd">letting <<him>> taste <<his>> own fluids</span>. <<else>> You push your tongue into <<his>> mouth, letting <<him>> partake in the lingering taste of the nectar. <</if>> <<gwylanKiss>> <br><br> <<He>> puts <<his>> hand on your cheek and returns the kiss for a moment, before pushing you away. "<<pcPetname "Gwylan" "good">>. Thanks for sharing," <<he>> giggles. <<He>> helps you stand. <<elseif $phase is "swallow">> You look up to Gwylan, your mouth wide open and your tongue out. You retract it and swallow, opening your mouth again to show <<him>> that it's now empty. <br><br> <<He>> reaches down and caresses your cheek. "<<pcPetname "Gwylan" "good">>." <<if _gwylanStatus.includes("heat")>> <<He>> points to <<his>> lips. "Come here, you missed some." <br><br> You crawl up towards <<him>>. When you're close enough, <<he>> <span class="lewd"><<he>> licks a bit of nectar off your cheek</span>. <<He>> licks again, closer to your mouth, then your lips. Suddenly, you're kissing each other, your tongues eagerly sharing the fizzy nectar. <<gwylanKiss>> <<He>> leans forward, pushing you back in <<his>> effort to kiss you even deeper, until you're toppled backwards. <br><br> <<He>> disengages. A line of saliva and nectar connects your mouths as <<he>> hovers over you. "We... should go get cleaned up before we get carried away," <<he>> laughs. <<He>> helps you stand. <<else>> <<His>> finger circles your mouth. <<He>> brings it back to <<his>> own, holding some nectar. "You missed some," <<he>> says, licking it. <<He>> helps you stand. <</if>> <<elseif $phase is "cuddle">> You cling to Gwylan, and the two of you slowly lay back on the garden's grass. <<He>> pulls you closer, stroking your hair as <<he>> holds you. "<<pcPetname "Gwylan" "good">>," <<he>> whispers. <<if $bodysize is 3>> <<He>> buries <<his>> face in your shoulder. <<else>> You bury your face in <<his>> shoulder. <</if>> <br><br> <<His>> hand strokes up and down your back, and <<he>> continues humming <<if $seabird_lullaby gte 2>> <span class="teal">Seabird's Lullaby</span>. <<else>> a soothing, <span class='teal'>familiar</span> melody. You're not sure where you've heard it before. <</if>> The two of you stay like that for some time. Eventually, <<he>> helps you stand. You're both covered in grass and dirt now, too. <<elseif $phase is "up">> You quickly stand up, and wipe away any stray nectar. Gwylan does the same. <<else>> <<if $worship.breasts lte 0 and $worship.genitals lte 0 and $worship.body lte 0 and $worship.tummy lte 0>> "There, all clean," <<he>> says. "<<pcPetname "Gwylan" "good">>." <<He>> pats the top of your head. <<else>> "That will have to do," <<he>> sighs. "We can't be here all day." <<He>> pats the top of your head. <</if>> <br><br> <<if _gwylanStatus.includes("heat")>> <<He>> points to <<his>> lips. "Come here, you missed some." <br><br> You crawl up towards <<him>>. When you're close enough, <<he>> <span class="lewd"><<he>> licks a bit of nectar off your cheek</span>. <<He>> licks again, closer to your mouth, then your lips. Suddenly, you're kissing each other, your tongues eagerly sharing the fizzy nectar. <<gwylanKiss>> <<He>> leans forward, pushing you back in <<his>> effort to kiss you even deeper, until you're toppled backwards. <br><br> <<He>> disengages. A line of saliva and nectar connects your mouths as <<he>> hovers over you. "We... should go get cleaned up before we get carried away," <<he>> laughs. <<He>> helps you stand. <<else>> <<His>> finger circles your mouth. <<He>> brings it back to <<his>> own, holding some nectar. "You missed some," <<he>> says, licking it. <<He>> helps you stand. <</if>> <</if>> <br><br> <<if !$gwylanSeen.includes("cream_lick")>> "You've got some talent with that tongue. It's giving me ideas." <<else>> "Cream or nectar, you're insatiable." <</if>> <<He>> leads you over to the wooden tub. "Bath time." <br><br> <<link [[Next|Gwylan Ritual Bait End]]>><<unset $worship>><<endevent>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<npc Gwylan>><<person1>><<outfitChecks>> The bath's water is still steaming, and looks like it's somehow entirely clean. <br><br> <<if $beastRitual.end is "failed">> Gwylan steadily leads you over to it, being mindful of the thorns stuck in you. <<He>> gently strips you, and helps you step in. <<if $beastRitual.fallen>> You're in no position to resist. Nothing around you feels real. <<else>> You're in too much pain to be modest. <</if>> <br><br> <<link [[Next|Gwylan Ritual Bait End Wash Failed]]>><<pass 10>><</link>> <br> <<else>> Gwylan drops <<his>> robe without any hesitation. <<He>> steps in first, slowly sinking down into the warm water and letting out a long breath. <br><br> <<if !$gwylanSeen.includes("ritual_beast")>> <<He>> opens <<his>> eyes and looks at you as if expecting something. "Are you waiting for an invitation? So polite. Come on in." <<elseif $worn.neck.collared is 1 and $worn.neck.type.includes("leash")>> <<He>> opens <<his>> eyes and looks at you. <<He>> slowly raises <<his>> hand out of the water, revealing that <<hes>> holding your leash. <<He>> smiles and gives it a tug. "Get in here, <<pcpetname "Gwylan">>." <<elseif $gwylanSeen.includes("romance")>> <<He>> opens <<his>> eyes and looks at you. "Get your butt in here." <</if>> There's plenty of room for both of you. <br><br> <<if _fullyNaked>> <<link [[Get in with <<him>>|Gwylan Ritual Bait End Wash]]>><<set $phase to "nude">><<pass 10>><</link>> <<elseif hasSexStat("exhibitionism", 3)>> <<link [[Strip and get in with <<him>>|Gwylan Ritual Bait End Wash]]>><<set $phase to "stripall">><<pass 10>><</link>><<exhibitionist3>> <<else>> <<insufficientStat "exhibitionism" "to strip naked and join <<him>>">> <</if>> <br> <<if !_underNaked>> <<link [[Strip to your underwear and join <<him>>|Gwylan Ritual Bait End Wash]]>><<set $phase to "stripunder">><<pass 10>><</link>><<exhibitionist1>> <br> <</if>> <<link [[Shake your head|Gwylan Ritual Bait End Wash]]>><<set $phase to "shake">><<pass 10>><</link>> <br> <</if>><<effects>><<run statusCheck("Gwylan")>> <<set _waterDoesNotAttractAttention to true>> <<strip>> You gasp as <<he>> lowers you into the water. <<water>><<effectswater "warm water">><<wash>> <br><br> <<if $beastRitual.lure is "dryad">> <<He>> stands behind you, carefully pulling thorns out of your skin. <<else>> <<He>> stands behind you, and scrubs a cool lotion into your various scratches and bite marks. <</if>> It stings at first, but you quickly start to feel better. The water's warmth soothes you. <<stress -12>><<pain -30>><<llstress>><<lllpain>> <br><br> <<if $beastRitual.fallen and $transformationParts.fallenAngel.halo isnot "hidden">> <<He>> pushes the pieces of your halo back together, but they quickly fall apart again. "I'm sorry. I've robbed the world of an angel." <<He>> squeezes your shoulders. <br><br> <</if>> You allow Gwylan to wash you. After some time, <<he>> drops <<his>> robes and steps in, too. <<if $gwylanSeen.includes("romance")>> <<He>> sits right next to you and rests <<his>> head on your shoulder. <<His>> presence is comforting. <<trauma -2>><<ltrauma>> <<elseif $gwylanSeen.includes("yearning")>> <<He>> sits next to you. <<arousal 200>><<garousal>> <<else>> <<He>> sits on the opposite side. <</if>> <br><br> <<if !$gwylanSeen.includes("ritual_beast")>> <<He>> doesn't seem at all bothered to be exposed. <</if>> <br><br> <<if !$gwylanSeen.includes("ritual_beast")>> <<link [[Next|Gwylan Ritual Bait End Wash First Time]]>><<set $phase to "failed">><<pass 20>><</link>> <br> <<else>> <<link [[Next|Gwylan Ritual Bait End Wash 3]]>><<set $phase to "failed">><</link>> <br> <</if>><<effects>><<run statusCheck("Gwylan")>><<outfitChecks>> <<set _waterDoesNotAttractAttention to true>> <<if $phase is "stripall">> <<strip>> You strip naked and join <<him>>. <<water>><<effectswater "warm water">><<wash>> <<exhibitionism3>> <<elseif $phase is "stripunder">> <<set _modesty to true>> <<upperstrip>><<lowerstrip>><<headstrip>><<legsstrip>><<feetstrip>><<handsstrip>><<handheldstrip>> You strip to your underwear and join <<him>>. <<water>><<effectswater "warm water">><<wash>> <<exhibitionism1>> <<elseif $phase is "shake">> <<if !_fullyNaked>> <<set _modesty to true>> <</if>> You shake your head. <br><br> <<if $hypnosis_traits.devotion gte 5>> <<He>> grins. "<<gwylanCommand "Get in here.">>" <br><br> <<hypnosisText "You obediently follow <<his>> command. You strip naked and join <<him>>.">> <<strip>> <<water>><<effectswater "warm water">><<wash>> <<elseif $worn.neck.name is "familiar collar" and $worn.neck.cursed is 1>> <<He>> grins, and you feel your leash suddenly shrink, pulling you closer. "Come on! Who's a <<pcpetname "Gwylan" "good">>? Jump on in, it's time to get clean!" <br><br> The leash shrinks again. You're not left with much of a choice. You hastily strip and enter. <<stress 6>><<gstress>> <<strip>> <<water>><<effectswater "warm water">><<wash>> <<else>> <<if $worn.neck.collared is 1 and $worn.neck.type.includes("leash")>> Without hesitation, <<he>> yanks your leash hard enough to make you tumble forward over the edge right into the tub anyways. <<else>> Without hesitation, <<he>> stands up and grabs you by the shoulders, before letting <<himself>> fall back into the tub with you in tow. <</if>> <<stress 6>><<gstress>><<pain 3>><<gpain>> <br> <<water>><<effectswater "warm water">> You gasp as you push yourself up out of the water. Gwylan laughs. "I'm sorry, I couldn't help myself. Might as well get comfortable now that you're soaked anyways." You grumble and settle in as best you can. <</if>> <<else>> You step into the wooden tub. <</if>> <br><br> You sit opposite to Gwylan. <<if !$gwylanSeen.includes("ritual_beast")>> <<if !_modesty>> <<He>> doesn't seem at all bothered to be exposed, nor by your own exposure. <<else>> <<He>> doesn't seem at all bothered to be exposed. <</if>> <</if>> The water's warmth soothes you. <<stress -12>><<pain -10>><<arousal 600>><<llstress>><<llpain>><<garousal>> <br><br> <<if _modesty>> <<He>> looks down at your soaked clothes. <<if $beastRitual.stalked is "howl">> "We just had coitus with an entire pack of wolves side-by-side, dear, and you were still worried about modesty?" <<elseif $gwylanSeen.includes("romance")>> "After everything we've been through, you're still shy?" <<elseif $gwylanSeen.includes("yearning")>> "Where was this modesty and hesitation when you were breaking the rules I had set for you?" <<elseif $gwylanSeen.includes("ritual_sex")>> "Dear, we've had coitus in this very garden, and you were still worried about modesty?" <<else>> "Were you shy?" <</if>> <<He>> giggles. "You're adorable." <br><br> <</if>> <<if $pain gt 1>> <<if $beastRitual.lure is "dryad">> <<He>> starts to pluck some thorns out of <<his>> own skin, before helping you do the same. <<else>> <<He>> rubs a cool lotion on your scratches and bites. It burns at first, but quickly makes you feel better. <</if>> <<pain -6>><<lpain>> <br><br> <</if>> Gwylan reaches for a bottle outside the tub, and starts to dump it into the water. It fills with suds. <br><br> <<if !$gwylan.punishment and $beastRitual.end isnot "beaten" and $gwylanSeen.includes("ritual_sex") and $beastRitual.petplay gte 3 and !$beastRitual.sex and !_gwylanStatus.includes("cautious")>> <<He>> suddenly stands up, fully exposing <<himself>> to you. <<He>> takes a single step over to you, turns around, and slowly sits down in your lap. <<arousal 600>><<garousal>> <br><br> <<His>> bottom is rubbing up against you. <<if $beastRitual.stalked is "howl">> "You were a <<pcpetname "Gwylan" "naughty">> today. However, I can't deny that your little trick was effective." <<else>> "You were a very <<pcpetname "Gwylan" "good">> today." <</if>> <<He>> looks back and smiles at you innocently. "Could you get my back, dear?" <<if $worn.neck.collared is 1>> <<He>> <<pull_leash "tugs">>. <</if>> <<if _gwylanTF.tail is "revealed">> The tip of <<his>> tail flicks against your face. <<arousal 500>><<garousal>> <</if>> <br><br> <<if $hypnosis_traits.devotion gte 4>> <<hypnosisText "<<His>> skin and hair look radiant. You feel an urge to touch <<him>> all over.">> <br><br> <</if>> <<link [[Help Gwylan wash|Gwylan Ritual Bait End Wash Help]]>><<set $phase to "helpLewd">><<arousal 1200>><<npcincr Gwylan lust 1>><</link>><<ggarousal>><<glust>> <br> <<link [[Refuse|Gwylan Ritual Bait End Wash Help Refuse]]>><<set $phase to "helpLewd">><</link>><<gwylanWillpowerDifficulty 4>> <br> <<else>> <<link [[Focus on washing yourself|Gwylan Ritual Bait End Wash 2]]>><<set $phase to "self">><</link>> <br> <<link [[Help Gwylan wash|Gwylan Ritual Bait End Wash Help]]>><<set $phase to "help">><<arousal 800>><<npcincr Gwylan lust 1>><</link>><<garousal>><<glust>> <br> <<if $settings.footFetishEnabled>> <<if hasSexStat("promiscuity", 2)>> <<link [[Use your foot to pleasure Gwylan under the water|Gwylan Ritual Bait End Wash Foot]]>><<set $phase to "foot">><<npcincr Gwylan lust 1>><</link>><<promiscuous2>><<glust>> <<else>> <<insufficientStat "promiscuity" "to use your foot to pleasure Gwylan under the water">> <</if>> <</if>> <</if>><<effects>><<run statusCheck("Gwylan")>> <<if $hypnosis_traits.devotion gte 4 and !$willpowerSuccess>> You try to push yourself back, but you slip. <span class="pink">You end up burying your face in <<his>> mousy hair. <<He>> smells divine. You can't help yourself. You need to touch <<him>>.</span> <br><br> <<link [[Help Gwylan Wash|Gwylan Ritual Bait End Wash Help]]>><<arousal 1200>><<npcincr Gwylan lust 1>><</link>><<ggarousal>><<glust>> <br> <<else>> <<if $hypnosis_traits.devotion gte 4>> You don't manage to free yourself from <<him>>, <span class="green">but you do manage to resist the urge</span>. <<else>> Trapped as you are, you can't escape. You keep your hands away from Gwylan, though. <</if>> <br><br> <<He>> huffs. "Very well. My generous reward will go unclaimed." <<He>> turns and lounges back dramatically. "You're still going to be my chair, though." <<arousal 800>><<garousal>> <br><br> <<link [[Next|Gwylan Ritual Bait End Wash 2]]>><<pass 5>><</link>> <br> <</if>><<effects>><<run statusCheck("Gwylan")>> <<if $phase isnot "helpLewd">> You push over to Gwylan and start to scrub <<him>> down. <</if>> <<if $gwylanSeen.includes("romance") or _gwylanStatus.includesAny("aroused", "lust") or $phase is "helpLewd">> <<He>> lifts <<himself>> forward to give you easier access. You rub <<him>> all over, leaving no spot unclean. <<if _gwylanTF.known>> You pay extra attention to <<his>> ears and tail. <</if>> <br><br> <<He>> takes your hands gently, and starts to guide them. <<if npcIsPregnant("Gwylan") and npcPregnancyProgress("Gwylan") gte 0.6>> <<He>> puts them both over <<his>> <<bellyDescription>> and holds them there for some time, leaning back into you. <span class="teal">You feel the baby kick.</span> <<trauma -6>><<npcincr Gwylan dom 3>><<ltrauma>><<ggyearning>> <br><br> <</if>> <<He>> pushes one of your hands down to <<his>> <<npcGenitals>>. <<if C.npc.Gwylan.pronoun is "f">> <<He>> guides the other to <<his>> <<print C.npc.Gwylan.breastsdesc>>, and has you squeeze and knead them. <<if $NPCList[0].lactation>> <span class="pink">Milk leaks from the buds.</span> <<He>> sighs in relief. <</if>> <</if>> <br><br> You gently fondle <<him>>, teasing out soft gasps from <<his>> lips. <<if $phase is "helpLewd">> "<<pcPetname "Gwylan" "good">>..." <<if $player.penisExist and !playerChastity("penis")>> <<He>> spreads <<his>> thighs and pushes back, taking your <<penis>> between them. <<He>> squeezes them back together, and starts to slowly move <<his>> legs. <<arousal 800>><<garousal>> <br><br> <<He>> slows <<his>> pace as you show signs of arousal, making sure you don't go over the edge. <<if C.npc.Gwylan.vagina is "none" and !$settings.analEnabled>> "Does <<pcpetname "Gwylan" "my">> want more?" <<else>> "Does <<pcpetname "Gwylan" "my">> want to be inside me?" <</if>> <<if C.npc.Gwylan.vagina isnot "none">> <<He>> grinds your <<penis>> against the lips of <<his>> pussy. With each slow thrust, it nearly slips in. <<else>> <<He>> continues stroking your <<penis>> with <<his>> thighs, faster now. <</if>> <<arousal 1200>><<ggarousal>> <br><br> "Well?" <<He>> looks back, waiting for an answer. <br><br> <<link [[Say yes|Gwylan Ritual Bait End Wash Sex]]>><<set $sexstart to 1>><</link>> <br> <<link [[Shake head|Gwylan Ritual Bait End Wash Orgasm]]>><</link>> <br> <<elseif $player.vaginaExist and !playerChastity("vagina")>> <<He>> suddenly moves to the side, and puts an arm around you, pulling you to sit on <<his>> lap instead. <br><br> <<if C.npc.Gwylan.penis isnot "none">> <<He>> pushes <<his>> erect penis through your thighs, and starts to grind it against the lips of your <<pussy>>. <<arousal 800>><<garousal>> <br><br> <<He>> slows <<his>> pace as you show signs of arousal, making sure you don't go over the edge. "Does <<pcpetname "Gwylan" "my">> want me to be inside <<phim>>?" <<else>> <<He>> pushes both <<his>> hands down, and slips a finger into your <<pussy>>. <<He>> starts to expertly finger you, knowing every right spot to touch. <<arousal 800>><<garousal>> <br><br> <<He>> slows <<his>> pace as you show signs of arousal, making sure you don't go over the edge. "Does <<pcpetname "Gwylan" "my">> want more?" <</if>> <<He>> speeds up again. You're barely able to suppress your moans. <<arousal 1200>><<ggarousal>> <br><br> "Well? I'm waiting." <br><br> <<link [[Say yes|Gwylan Ritual Bait End Wash Sex]]>><<set $sexstart to 1>><</link>> <br> <<link [[Shake head|Gwylan Ritual Bait End Wash Orgasm]]>><</link>> <br> <<else>> <<He>> reaches down, pulling against your $worn.genitals.name to no avail. <<He>> lets out a disappointed huff. "If not for this, I could give you the reward you deserve." <<gwylanChastityRequest 1>> <br><br> <<He>> turns, but remains sitting on your lap. "I'll have to think of something else." <<if C.npc.Gwylan.breastsize gte 6>> <<He>> suddenly leans forward, <span class="pink">pushing your head between <<his>> lightly-freckled <<print C.npc.Gwylan.breastsdesc>></span>. "Oops, how clumsy of me. I suppose you can sit in there until I think of something." <<He>> starts to grind against you, smothering you with <<his>> breasts. <<arousal 1200>><<ggarousal>> <<else>> <<He>> suddenly leans forward, grinding against you. <<He>> places <<his>> hands on your chest, and starts to fondle your nipples. <<He>> kisses and sucks on your neck. <<arousal 1200>><<ggarousal>> <</if>> <br><br> <<He>> reaches down again, rubbing your <<genitals true>> through your belt. <<His>> expert touch sends waves of pleasure through you even with the belt in the way. It takes a while, but eventually, <<he>> pushes you over the edge. <<orgasm>> <<He>> laughs seductively and pets your head as you shudder against <<him>>. <<He>> holds you in a warm embrace until it subsides. <br><br> <<link [[Next|Gwylan Ritual Bait End Wash 2]]>><<pass 5>><</link>> <br> <</if>> <<else>> <<if C.npc.Gwylan.pronoun is "f">> After a final squeeze, <<he>> moves your hand away from <<his>> <<print C.npc.Gwylan.breastsdesc>> and towards <<his>> mouth, where <<he>> puts one of your fingers in. <<else>> <<He>> moves your other hand towards <<his>> mouth, where <<he>> puts one of your fingers in. <</if>> <<if _gwylanTF.fangs is "revealed">> <<His>> sharp fangs brush up against it as <<he>> sticks <<his>> tongue out. <</if>> <<if _gwylanStatus.includes("heat")>> After a few minutes, <<he>> shudders, reaching climax with naught but a quiet yip. <<He>> breathes unevenly for a moment, before snuggling back against you and letting out a contented sigh. "You pest." <<npcincr Gwylan dom 1>><<gyearning>> <<else>> After a few minutes <<he>> pulls your hands away again. "I think that's enough, <<pcpetname "Gwylan" "simple">>. We just got clean, we shouldn't go getting dirty again." <</if>> <br><br> <<link [[Next|Gwylan Ritual Bait End Wash 2]]>><<pass 5>><</link>> <br> <</if>> <<else>> <<He>> looks surprised, but doesn't stop you. "Oh, could you get my back, <<pcpetname "Gwylan">>?" <<He>> moves forward, giving you room. <br><br> <<if $beastRitual.lure is "dryad">> There's some fresh scratch marks on <<his>> back, alongside plenty of old ones. You pick out a few more stray thorns. <<He>> winces at each one you pull. <<elseif $beastRitual.stalked is "howl">> There's fresh scratch marks on <<his>> back, alongside plenty of older ones. <<else>> There's lots of old scratch marks on <<his>> back. <</if>> You avoid touching anywhere too conspicuous. <br><br> <<if _gwylanTF.known>> You don't miss the chance to play with <<his>> fox ears, though. <<He>> makes a sound resembling a brief growl when you first touch them, but settles into your touch quickly as you wash them. <<npcincr Gwylan lust 1>><<glust>> <br><br> <</if>> <<link [[Next|Gwylan Ritual Bait End Wash 2]]>><<pass 5>><</link>> <br> <</if>><<effects>><<run statusCheck("Gwylan")>> You shake your head. Gwylan giggles. "That's okay. I can still..." <br><br> <<if $player.penisExist>> <<He>> reaches down and starts to rub the head of your <<penis>> with <<his>> thumb. Your legs buck on their own. Combined with the previous stimulation, it's too much. <<else>> <<He>> starts to rub your clit with <<his>> thumb. Combined with the previous stimulation, it's too much. <</if>> <<orgasm>> Gwylan quickly turns around, kneeling, and embraces you. "There's a <<pcpetname "Gwylan" "good">>." <<He>> holds you tightly and coos in your ear as you recover. <br><br> You hold each other for a short time, before <<he>> gets back on your lap. <br><br> <<link [[Next|Gwylan Ritual Bait End Wash 2]]>><<pass 5>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<if $sexstart is 1>> <<set $sexstart to 0>> <<consensual>> <<set $consensual to 1>> <<neutral 1>> <<lowerstrip>><<underlowerstrip>> <<maninit>> <<npcexpose>> <<npc_attempt_sex>> <<set $enemytrust += 200>> <<if $player.penisExist and !playerChastity("penis")>> <<if C.npc.Gwylan.vagina is "none" and !$settings.analEnabled>> <<He>> smiles. "Good. I do too." <<else>> <<He>> smiles, and moves to the other side of the tub. <<He>> places <<his>> hands on the rim and leans forward, shaking <<his>> bottom at you enticingly. <br><br> <<if $worn.neck.collared is 1 and $worn.neck.type.includes("leash")>> <<He>> tugs your leash, pulling you over to <<him>>. <</if>> <<if C.npc.Gwylan.vagina isnot "none">> <<He>> reaches down and spreads <<his>> <<pussy>> with two fingers. <<if _gwylanStatus.includes("heat")>> It's already drooling with fluid. <<if _gwylanTF.known and hasSharpSenses("instincts")>> Out of the water, you can smell <<his>> heat. <</if>> <</if>> <<if _gwylanStatus.includes("wantsPregnancy") and $settings.pregnancySpeechEnabled>> "Good, because I need this. I need you to put <<if $wolfgirl gte 6 or $fox gte 6 or $cat gte 6>>a litter<<else>>your child<</if>> in me." <<His>> voice trembles. <<elseif _gwylanStatus.includes("heat") and $settings.pregnancySpeechEnabled>> "Good, because I need you. I need you to breed me." <<His>> voice trembles. <</if>> <</if>> <<if _gwylanTF.tail is "revealed">> <<His>> tail sways back and forth. <</if>> <<if _gwylanStatus.includes("heat")>> <<if npcIsPregnant("Gwylan") and npcBellyVisible("Gwylan")>> "Get over here. Fill me with your seed until my tummy swells up even more." <<else>> "Get over here. Fill me with your seed until my tummy swells." <</if>> <<else>> "Come here and fill me up, <<pcpetname "Gwylan">>." <</if>> <</if>> <<else>> <<if C.npc.Gwylan.penis isnot "none">> <<He>> smiles. "Good. I do too." <<He>> prepares to penetrate you. <<else>> <<He>> smiles. "Good. I do too." <</if>> <</if>> <<gwylanCombatInit>> <</if>> <<if $timer lte 0 and $trance is 1>> <<set $trance to 0>> <span class="teal">You snap out of Gwylan's trance.</span> <</if>> <<effects>> <<effectsman>> <<man>> <<stateman>> <br><br> <<actionsman>> <<if $orgasmcurrent gte $combat_player_orgasm_target>> <span id="next"><<link [[Next|Gwylan Ritual Bait End Wash Sex Finish]]>><</link>></span><<nexttext>> <<elseif _combatend>> <span id="next"><<link [[Next|Gwylan Ritual Bait End Wash Sex Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Gwylan Ritual Bait End Wash Sex]]>><</link>></span><<nexttext>> <</if>><<effects>><<run statusCheck("Gwylan")>> <<if $orgasmcurrent gte $combat_player_orgasm_target>> <<set $enemyarousal += 200>> <<if $enemyarousal gte $enemyarousalmax>> <<if $hallucinations gte 2 and $NPCList[0].chest isnot "clothed">> The tattoo on Gwylan's <<bellyDescription "Gwylan">> flares to life, and <<he>> shivers as you climax. <<else>> Your <<if $orgasmcurrent gt 1>>final<</if>> orgasm makes Gwylan shiver. <</if>> <span class="pink">It pushes <<him>> over the edge too.</span> <<ejaculation>><<npcincr Gwylan lust -25>><<llllust>> <<else>> <<if _gwylanStatus.includesAny("dom", "lust")>> <<He>> hums and holds you tight you as you recover from your <<if $orgasmcurrent gt 1>>final<</if>> orgasm. <<gwylanHypnosis "devotion" 2>><br> <<if $consensual is 1>> "You did great, <<pcpetname "Gwylan">>," <<else>> "There, isn't that better?" <</if>> <<he>> coos. <<else>> <<He>> makes a pleased sound as your <<if $orgasmcurrent gt 1>>final<</if>> orgasm subsides. <<gwylanHypnosis "devotion" 1>><br> "That should do," <<he>> says. <<if $consensual is 0>> "The struggle was thrilling, dear, but I'm only trying to help you." <</if>> <</if>> <<if $penisfucked is 1>> <<He>> rubs <<his>> <<bellyDescription "Gwylan">> in satisfaction until you pull out of <<him>>. <<elseif $vaginafucked is 1>> <<He>> rubs your <<bellyDescription>> in satisfaction, until you make <<him>> pull out. <</if>> <<npcincr Gwylan lust 5>><<gglust>> <br><br> <</if>> <<elseif $enemyarousal gte $enemyarousalmax>> <<ejaculation>> <<if $orgasmcurrent is 0 and $hypnosis_traits.devotion>> <<gwylanHypnosis "devotion" -2>> <</if>> <<npcincr Gwylan lust -20>><<lllust>> <<elseif $enemyhealth lte 0>> <<set $gwylan.punishment to true>> Gwylan rolls off of you. "That hurt, dear." <<He>> giggles dryly. "Naughty, naughty. I'll remember this." <<npcincr Gwylan dom -2>><<lyearning>> <br><br> <<His>> smile is dark, but lightens up after a moment. <</if>> <<set $beastRitual.sex to true>> <<endcombat>> <<npc Gwylan>><<person1>> <<He>> sits on your lap again, sideways this time, and lounges back. <<His>> feet stick out over the edge of the tub. <br><br> <<link [[Next|Gwylan Ritual Bait End Wash 2]]>><<pass 5>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> You slowly push your foot forward, until it rests against Gwylan's <<npcGenitals>>. <<promiscuity2>> <<if !$gwylanSeen.includes("ritual_sex")>> <<He>> quickly grabs you by the ankle and stares at you. "I'm going to choose to believe that was an accident." <<He>> gently lifts your leg and puts it to <<his>> side instead. "See? Plenty of room for both of us." <br><br> <<link [[Next|Gwylan Ritual Bait End Wash 2]]>><<pass 5>><</link>> <br> <<else>> <<if $gwylanSeen.includes("yearning")>> <<He>> giggles. "Frisky, are we?" <span class="pink"><<He>> stretches <<his>> leg, placing <<his>> foot on your <<genitals>> too.</span> "Feel like making it a competition?" <br><br> <<set _scoreFootjob to 0>> <<if playerChastity()>> <<set _scoreFootjob += 2>> <</if>> <<set _scoreFootjob += Math.floor($feetskill / 100)>> <<He>> starts to fondle and press your <<genitals>>. You return the assault. <<arousal 1000>><<garousal>> <br><br> <<if _scoreFootjob gte 8>> It isn't long before you're both panting. <<if $arousal gte $arousalmax>> <<set _resultFootjob to "lost">> Just before you get a lead on <<him>>, you reach your limit. <<orgasm>> <<else>> <<set _resultFootjob to "won">> Just before you reach your limit, <span class="pink">Gwylan shudders</span>. <br><br> <</if>> <<elseif _scoreFootjob gte 6>> <<set _resultFootjob to "lost">> Just before you get a lead on <<him>>, you reach your limit. <<orgasm>> <<else>> <<set _resultFootjob to "lost">> It's not even close. <<Hes>> an expert, knowing the perfect movement and rhythm. <<orgasm>> <</if>> <<if _resultFootjob is "won">> <<He>> steadies <<himself>> against the side of the tub. "Well. Colour me impressed, <<pcpetname "Gwylan" "name">>." <<else>> <<He>> smiles sweetly. "I hope you enjoyed that." <</if>> <br><br> <<link [[Next|Gwylan Ritual Bait End Wash 2]]>><<pass 5>><</link>> <br> <<else>> <<He>> stares at you. "What do you think you're doing?" You answer <<him>> by moving your foot and up and down. <<His>> face starts to redden, and <<he>> allows you to continue for a moment before pulling your leg aside. "We just got clean, dear." <br><br> <<link [[Next|Gwylan Ritual Bait End Wash 2]]>><<pass 5>><</link>> <br> <</if>> <</if>><<effects>><<run statusCheck("Gwylan")>> <<if $phase is "self">> You focus on washing yourself, trying to ignore Gwylan's nudity. <<elseif $phase is "helpLewd">> You continue relaxing in the warm water with Gwylan on your lap. <<elseif $phase is "failed">> Gwylan hums a soothing melody for a short while. <<else>> <<if $gwylanSeen.includes("partners")>> Gwylan pushes <<himself>> along the side of the tub, until <<he>> sits right next to you and rests <<his>> head on your shoulder. <<elseif _gwylanStatus.includesAny("aroused", "lust")>> Gwylan pushes <<himself>> along the side of the tub, until <<he>> sits next to you. <<arousal 200>><<garousal>> <<else>> Gwylan avoids eye contact for most of the time. <</if>> <</if>> <br><br> The two of you sit in silence for a few minutes. The smells of the garden and the warmth of the water fill you with serenity. <br><br> <<if $tiredness gte (C.tiredness.max / 5) * 3 and $hypnosis_traits.slumber gte 1 and $gwylanSeen.includes("yearning")>> <<hypnosisText "You feel your eyelids grow heavy.">> <br><br> It felt like you merely blinked, and the sun is suddenly a little further in the sky. Gwylan is holding you. "I know it's been a long day, but don't fall asleep for too long, else we'll get all pruned up." <<tiredness -2>><<ltiredness>> <br><br> <</if>> <<if !$gwylanSeen.includes("ritual_beast")>> <<link [[Next|Gwylan Ritual Bait End Wash First Time]]>><<pass 20>><</link>> <br> <<else>> <<link [[Continue|Gwylan Ritual Bait End Wash 3]]>><<pass 20>><</link>> <br> <<if $beastRitual.collared and $worn.neck.name isnot "familiar collar">> <<link [[Ask Gwylan to let you keep the collar|Gwylan Ritual Bait End Wash 3]]>><<npcincr Gwylan lust 4>><<pass 20>><<set $phase2 to "collar">><</link>><<gglust>> <br> <</if>> <</if>><<effects>><<run statusCheck("Gwylan")>> <<set $gwylanSeen.pushUnique("ritual_beast")>> "Well. Now you know what I'm about," <<he>> says with a weak smile, breaking the silence. "I spend several days each week gathering the ingredients for this ritual, while my body purifies the taint from the previous week's. I call out to a suffering, tainted denizen of the forest, and hope that I get no answer. But I always do. I always will, so long as the Elk's river of poison flows into the forest." <<He>> rests <<his>> arms against the rim of the tub and gazes out into the treeline. <br><br> "It's never easy. Sometimes it goes wrong, and the trance wears off too quickly. Sometimes they get too excited, and make it hurt. Sometimes they don't listen. Sometimes love bites break skin." <br><br> Gwylan harshly scrubs a spot near <<his>> neck. <<He>> scrubs until some concealer is washed away, <span class="purple">revealing a deep bite scar</span>. <<if $gwylanSeen.includes("neck_bite")>> You wince, but Gwylan waves <<his>> hand dismissively. "This isn't from when you bit me, don't worry. This is an old wound. I have plenty." <</if>> A long moment of silence passes over you like a stormcloud. <br><br> "I don't think anyone else would understand. You're different, though. <span class="green">Your stories are fascinating. You've got a beautiful, curious mind. You've been around, you've seen what lurks under the surface. You've suffered, yet you're still here.</span>" <<His>> body sinks back under the water. <<His>> voice is somber. <br><br> "Most get chewed up and swallowed before they truly understand what's happening to them, and it's only getting worse. I can't hope to keep up with how fast the poison proliferates. Not alone, at least." <<He>> looks up with a hopeful smile. "Maybe I was waiting for someone as curious as you to stumble in. Someone who's seen just how dirty the world has become. Someone I can trust." <br><br> <<He>> looks away once more. "I won't insist upon you. I know this is a lot, but it would be easier with someone like you by my side. Someone to share this <span class="blue">burden</span> with. It's a selfish desire. I offer nothing in return, because I have nothing to give. This isn't a request or a service. It's thankless work, which one must tolerate, learn to enjoy, or... abandon." <br><br> <<He>> sinks further into the water. "There's no hard feelings if you refuse. I just hope this doesn't scare you off for good." <br><br> <<He>> stays quiet for a while. <br><br> <<link [[Next|Gwylan Ritual Bait End Wash 3]]>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<if $worn.neck.name is "familiar collar" and $worn.neck.cursed is 1>> <<He>> runs <<his>> hands along your collar affectionately. It makes you feel warm. <<trauma -6>><<ltrauma>> <<detach_leash>> <br><br> <<elseif $phase2 is "collar">> <<set $beastRitual.collared to false>><<set $beastRitual.leash to false>> <<set $worn.neck.type.push("broken")>><<neckruined true>> <<storeonneck "gwylanRitual">><<generalUndress "wardrobe" "neck">> <<neckwear 21>> <<switch $speech_attitude>> <<case "meek">> "Do you mind if I keep your collar? I like it," you say shyly. <<case "bratty">> "Can I keep this collar? It's growing on me," you say. <<default>> "Can I keep this collar?" you ask. <</switch>> <br><br> Gwylan blinks, then giggles. "If you really want to, dear. I've got plenty more if you lose it." <<Hes>> trying to hide it, but <<he>> seems pleased. <<if !$gwylanSeen.includes("familiar_collar")>> "Perhaps I'll make a special one just for you one of these days." <</if>> <br><br> <<elseif $beastRitual.collared is true>> <<set $worn.neck.type.push("broken")>><<neckruined true>> "Ah, before I forget..." <<He>> reaches around your neck and removes your collar. <<He>> spins it around on <<his>> finger for a moment before placing it outside the bath. <br><br> <<elseif $beastRitual.leash is true>> "Ah, before I forget..." <<He>> reaches around your neck and removes your leash. <<He>> whips it in the air a few times before placing it outside the bath. <<detach_leash>> <br><br> <</if>> <<if $beastRitual.purgeInfo>> <<set $beastRitual.purge += Math.floor($beastRitual.purgeInfo.fluid / 10)>> <<set $beastRitual.purge += Math.floor($beastRitual.purgeInfo.banish / 20)>> <</if>> <<if $beastRitual.ejac and ($beastRitual.hasScent or $beastRitual.isScent)>> <<set $beastRitual.purge++>> <</if>> <<if ["thunderStorm"].includes(Weather.name)>> The lull of the thunder leads the trees in a windy dance, yet you two remain untouched by the storm. <<elseif ["lightPrecipitation", "heavyPrecipitation"].includes(Weather.name)>> The smell of the <<= Weather.precipitation>> is soothing, too. <<elseif ["heavyClouds"].includes(Weather.name)>> You and Gwylan watch the forest dance in the wind. <<elseif Time.dayState is "dusk">> The two of you watch the forest dance in the hues of sunset. <<else>> The two of you enjoy the silence of the forest, basking in <<if Time.dayState is "night">>moonlight<<else>>the sun<</if>>. <</if>> <br><br> <<if $beastRitual.purge gte 5>> "<span class="green">We did very well today.</span> I can already feel it. I couldn't have done it without your help, either." <<elseif $beastRitual.purge gte 3>> "<span class="teal">We did well today.</span> The forest is a little cleaner." <<elseif $beastRitual.purge gte 1>> "<span class="blue">It wasn't much, but we surely purged some of the poison.</span> More than what I can accomplish alone, too." <<else>> "<span class="purple">We didn't do well,</span> but it could have been worse. We just have to keep trying." <</if>> <<if $beastRitual.purge gte 1>> <<earnFeat "First Verse">> <</if>> <br><br> <<He>> looks out to the forest, tapping a finger on the side of the tub. <br><br> <<if $gwylanSeen.includes("struggles") and !$gwylanSeen.includes("ritual_sex_intro") and !_gwylanStatus.includes("cautious")>> <<set $gwylanSeen.pushUnique("ritual_sex_intro")>> "There's something I wanted to talk to you about," <<he>> starts. "It's important." <<He>> doesn't turn to look at you. <br><br> <<if $gwylanTalked.includes("temple_confessor")>> "There's one thing the cloister is right about. The most effective way to purge is between two humans. <<else>> "The most effective cleansing method is between two humans. <</if>> However, it's also the most dangerous. Not just because humans are more dangerous themselves, but because the effectiveness is so great that it can harm the recipient of the poison if care isn't taken. It can be... difficult to stop once the transfer has begun." <<He>> sighs. <<if $gwylanTalked.includes("temple_confessor")>> "Besides that, I can't use the same method as the confessors. I'm not... one of them. <<else>> "Besides that, the setup is complex. <</if>> I'm out of practice, too. A connection to the forest is still needed for both participants, and it's more intense than this one. <span class="blue">It involves becoming a vessel for the forest itself.</span>" <br><br> <<He>> finally turns to you, and starts speaking faster. "What I'm trying to say is, I haven't had intercourse with another human in a long time, and I trust you enough that I..." <<His>> face turns bright red. "There's no easy way to say this, so let me just say it. <span class="pink">I want to have sex with you, and use the resulting connection to cleanse the forest</span>." <<npcincr Gwylan lust 1>><<glust>> <br><br> <<He>> takes a deep breath. "It's not a boundary that comes easy to cross, because I don't wish for things between us to change. <<if $gwylanSeen.includes("ritual_corruption_share_intimate")>> I've already told you that things between us can't become more intimate, and that holds true. <</if>> Becoming fluid-bonded with someone can lead to complicated emotions, so it's important that you understand that this doesn't mean you and I are..." <<He>> points between you and <<him>> repeatedly. "More than friends. <span class="purple">Sex isn't love, and love isn't sex.</span> With everything you've told me, I trust you to understand. Still, <span class="lewd">fluid transfer would be mandatory, and there mustn't be any obstructions</span>." <br><br> <<He>> sinks into the water. "We don't have to, of course. We can keep going as we have been, or come back to our current method at any time. We have a week to think about it." <<He>> quickly stands up, covering <<himself>> with a towel and tossing you a few. <<else>> <<if $beastRitual.tainted>> "Our quarry was particularly tainted. <span class="blue">More like them will show up as the poison takes root.</span> Luckily, as things are now, beings like that are often chased away by their peers. It keeps them isolated and safe until we can find them. Like many dying beasts, they prefer to crawl away and wither alone, preserving their dignity. However, if things get worse... much, much worse than they could get now, they may start to show up out in the open." <<His>> fingers trace shapes on the surface of the water. <br><br> <</if>> <<if $beastRitual.purgeInfo>> <<if Math.floor($beastRitual.purgeInfo.banish / 20) gte 1>> "That radiance. Your radiance. <span class="gold">It was brilliant</span>, but I don't believe less tainted dryads would be affected by it. Still, it's a boon." <<His>> eyes trace something above your head. <br> <</if>> <<if Math.floor($beastRitual.purgeInfo.fluid / 10) gte 1>> "Of course, <span class="blue">the more fluid we can extract, the more effective it will be</span>. Most animals only have so much to give, though. The dryads are a special case." <<He>> stares at the stains of nectar on the ground where you tended to the plantperson. <br> <</if>> <</if>> <<if $beastRitual.ejac and ($beastRitual.hasScent or $beastRitual.isScent)>> "There was a compatibility between you. <span class="blue">Purging is most effective between the same species,</span> but none of the forest's natural denizens have the capability to do so without human intervention. It's a poison we made, and one we must cleanse. <<if $fox gte 6 and $beastRitual.lure is "fox">> You're still more human than you are fox, <<elseif $dryad gte 6 and $beastRitual.lure is "dryad">> You're still more human than you are dryad, <<else>> You're still more human than you are wolf, <</if>> but there's no doubt it made our ritual more effective." <<He>> smiles at you. "I'm lucky to have you here." <<He>> leans back, watching the sky. <<else>> "Purging is most effective between the same species, but none of the forest's natural denizens have the capability to do so without human intervention. It's a poison we made, and one we must cleanse." <<He>> leans back, watching the sky. <</if>> <<if $gwylanSeen.includes("ritual_sex")>> "I don't mind continuing to use this method. I know the more intimate version of the ritual can be too much." <</if>> <br><br> <<if $beastRitual.tendingSuccess>> "Even just having an extra pair of capable hands makes a big difference. <<if $beastRitual.lure is "dryad">> Thanks to you, <span class="blue">I was able to prune much more of the dryad's tainted leaves.</span>" <<else>> Thanks to you, <span class="blue">we were able to make sure they were clean both inside and out.</span>" <</if>> <<else>> "It's important to make sure they're clean inside and out. <span class="purple">Unfortunately, we didn't quite manage that.</span> It's alright. I'm sure you'll become better with your hands if you keep up work like this." <</if>> <<He>> looks over the side of the tub at something. "On that note, we're plenty clean on the outside. It's time for me to get dirty on the inside." <<He>> stands and wraps a towel around <<his>> waist, stepping out of the tub. <<if $gwylanSeen.includes("yearning")>> "You can leave if you wish, although I wouldn't mind the company." <<else>> "Your part here is done. You may leave. Thank you for your help." <</if>> <</if>> <br><br> <<set $beastRitual.purgeInverse to $beastRitual.purge * -1>> <<world_corruption "soft" $beastRitual.purgeInverse>> <<set $gwylan.purged += $beastRitual.purge>> <<if $gwylan.request.event is "meetAtShop">> <<gwylanRequestEnd "silent">> <br><br> <</if>> You exit the bath, dry off, and get dressed. <<silently>><<clotheson>><</silently>><<dry_full>> <br><br> <<link [[Stay with Gwylan for a while (0:30)|Gwylan Ritual Bait Corruption]]>><<pass 30>><</link>> <br> <<link [[Leave|Gwylan Ritual Bait Exit]]>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<if !$gwylanSeen.includes("ritual_stay")>> <<set $gwylanSeen.pushUnique("ritual_stay")>> <<switch $speech_attitude>> <<case "meek">> "Can I stay with you, please?" you ask. <<case "bratty">> "No, I think I'll stay actually," you say. <<default>> "Since you gave me a choice, I think I'll stay," you say. <</switch>> <br><br> <<He>> looks surprised, but smiles. "You're certainly welcome to." <<He>> gestures to a raised section of the garden, retained by a stone ledge. You sit down on it. <<else>> You wordlessly follow Gwylan and sit on the stone ledge. <</if>> <br><br> <<He>> sits down, <<if _gwylanStatus.includes("lust")>>still topless<<else>>now robed<</if>>, next to you. <<if $beastRitual.lure is "dryad">> <<set $beastRitual.poisonAmount to 1>> <<if $beastRitual.tendingSuccess>> <<set $beastRitual.poisonAmount++>> <</if>> <<if $beastRitual.tainted>> <<set $beastRitual.poisonAmount++>> <</if>> <<He>> holds the bucket full of tainted plantperson foliage. <<if !$gwylanSeen.includes("ritual_corruption_dryad")>> <<set $gwylanSeen.pushUnique("ritual_corruption_dryad")>> "The fun part is over, this is the miserable bit." You watch as <<he>> picks up an antique salt shaker, unscrews the top, and dumps the entire thing into the bucket. <<He>> then shakes the bucket around. <br><br> <<switch $speech_attitude>> <<case "meek">> "Wait, what are you—" you start to ask. <<case "bratty">> "Uhh... what—" you start. <<default>> "What in the world are you—" you start to ask. <</switch>> You don't get the chance to finish. <<He>> pulls one of the dead leaves from the bucket, now covered in salt, and <span class="purple">eats it</span>. It sounds crunchy. <<stress 3>><<gstress>> <br><br> <<He>> turns to you and smiles after swallowing. "Yes, it's vile. That's what the salt is for. It masks most of the taste." <<He>> reaches in, and eats another one. <br><br> "Why?" you ask. <br><br> <<He>> holds up a finger as <<he>> chews. This one seems much less pleasant than the first. <<He>> reaches for a small glass of water right next to you, which you didn't see when you sat down. <<He>> drinks it, forcing <<himself>> to swallow the leaf. "Sorry. The crunchy ones aren't so bad, it's the chewy ones that really make me want to vomit." <br><br> You stare at <<him>> for a moment. "Oh! You meant why am I eating them. Well. They're tainted. If I leave them to decay, their poison will just leak back into the world. I can't let a single leaf, petal or thorn rot away." <<He>> makes a sinking gesture with <<his>> hands. <<He>> eats another. "Sometimes I dry them and use them as seasoning on my crepes. Sometimes I just salt them, like this. The thorns are capable of injecting the poison like a stinger, so for those, I simply..." <<He>> pulls one out of the bucket, and <span class="red">sticks it into <<his>> skin</span>. <<stress 12>><<ggstress>> <br><br> <<if $beastRitual.tainted>> "As for the whole vine we had to amputate, that has to be consumed too. <<else>> "When dryads get particularly tainted, some of their vines can become oversaturated. If those vines can't be purged, they'll have to be amputated and consumed, too. <</if>> I typically chop them up and use them in various dishes over the span of the week. It's easier on me if I don't do it all at once." <<He>> pulls the thorn back out of <<his>> skin. It's a noticeably lighter shade now. "I'm quite used to it. I have a routine, after all." <<He>> looks away from you. "Not that I particularly mind having that routine changed. I'm glad you're here, and grateful you chose to stay." <<else>> <<if $gwylanSeen.includes("request_gold_accessories") and !$gwylanSeen.includes("ritual_poison_talk")>> <<He>> kicks <<his>> feet, examining a drained thorn. "Do you remember what I told you about people trying to imbibe poison to extend their lives?" <br><br> You nod. <br><br> <<He>> crushes the thorn, brittle now that it's empty. "Do you think there could be any truth to it?" <<He>> turns to you and gives you a sly smile, not waiting for your answer. <br><br> <</if>> <<He>> dumps half of an antique salt shaker into the bucket and begins to pick out leaves and flower petals to consume. "Thank you for sticking around again," <<he>> says. "Having someone to talk to helps keep my mind off of how rotten this makes me feel inside." <</if>> <br><br> <<link [[Relax and chat with Gwylan|Gwylan Ritual Bait Corruption Relax]]>><<stress -2>><<trauma -2>><</link>><<lstress>><<ltrauma>> <br> <<if !$gwylanSeen.includes("ritual_corruption_share")>> <<link [[Offer to eat some of the poison|Gwylan Ritual Bait Corruption Share]]>><<npcincr Gwylan dom 1>><</link>> <<else>> <<link [[Offer to eat some of the poison|Gwylan Ritual Bait Corruption Share]]>><<npcincr Gwylan dom 1>><</link>><<gyearning>> <</if>> <br> <<else>> <<set $beastRitual.poisonAmount to $beastRitual.purge - $beastRitual.purgeDirect>> <<He>> holds the small ivory bowl. <<if $beastRitual.poisonAmount gte 5>> It's nearly overflowing with a glowing pink liquid. <<elseif $beastRitual.poisonAmount gte 3>> It's full of a glowing pink liquid. <<elseif $beastRitual.poisonAmount gte 1>> It's half-filled with a glowing pink liquid. <<else>> There's a small amount of pink liquid inside of it. <</if>> <<if !$gwylanSeen.includes("ritual_corruption_beast")>> <<set $gwylanSeen.pushUnique("ritual_corruption_beast")>> "Medicine for the world," <<he>> says, bringing the bowl to <<his>> lips. <<He>> drinks all of it. <br><br> <<He>> sits still for a moment, before <span class="purple">shuddering harshly and leaning forward</span>. <br><br> <<if $temple_confessor_intro>> You know from your time in the confessional that it's nothing to worry about, but you rub <<his>> back for comfort. You know how rotten it feels. <<else>> You're not sure what to do, so you rub <<his>> back for comfort. <</if>> <br><br> <<He>> sits up straight again, giving you a smile. "I'm alright, don't worry about me. This is what it takes to drain the poison from the world." <<He>> takes a moment to catch <<his>> breath. <br><br> "It takes two things. A stable vessel," <<he>> starts, pointing to <<himself>> with one hand and putting the other on your tummy. "And an area immunised to the poison." <<He>> spreads <<his>> arms out wide to gesture to the whole garden. It almost seems to grow as <<he>> does so. "It's what makes it so virulent. Even if a tainted creature dies, it will all just leak out again. It defies the natural cycle. But, if you get both of those things, you can trap it in your body." <<He>> holds up the bowl. It's covered in intricate carvings and symbols. "The bowl is for the leftovers. Any poison that doesn't end up in your body at the moment of climax gets captured in here instead." <br><br> <<He>> sets the bowl aside, leaning back. "Thank you for staying. Talking keeps my mind off of it while it settles." <br><br> <<link [[Relax and chat with Gwylan|Gwylan Ritual Bait Corruption Relax]]>><<set $phase to 1>><<stress -2>><<trauma -2>><</link>><<lstress>><<ltrauma>> <br> <<else>> <br><br> <<link [[Relax and chat with Gwylan|Gwylan Ritual Bait Corruption Relax]]>><<stress -2>><<trauma -2>><</link>><<lstress>><<ltrauma>> <br> <<if !$gwylanSeen.includes("ritual_corruption_share")>> <<link [[Offer to drink half of the poison|Gwylan Ritual Bait Corruption Share]]>><<npcincr Gwylan dom 1>><</link>> <<else>> <<link [[Offer to drink half of the poison|Gwylan Ritual Bait Corruption Share]]>><<npcincr Gwylan dom 1>><</link>><<gyearning>> <</if>> <</if>> <</if>><<effects>><<run statusCheck("Gwylan")>> <<set $beastRitual.sharedBurden to true>> <<if !$gwylanSeen.includes("ritual_corruption_share")>> <<if $temple_confessor_intro>> <<switch $speech_attitude>> <<case "meek">> "L-let me help," you say. "I can take half, I've done it before." <<case "bratty">> "That stuff is gross to take in," you say. "I know about it. Let me help." <<default>> "Let me help," you say. "I can take half, I've done it before." <</switch>> <<else>> <<switch $speech_attitude>> <<case "meek">> "L-let me help," you say. "I can take half." <<case "bratty">> "You're making me feel bad. Let me help." <<default>> "Let me help," you say. "I can take half." <</switch>> <</if>> <br><br> <<if $beastRitual.lure is "dryad">> Gwylan stops just before putting a withered flower petal in <<his>> mouth. <<else>> Gwylan stops with the bowl half-way to <<his>> lips. <</if>> "You want to share this burden with me?" <<He>> looks surprised, but slowly grows a bright smile. "That means more to me than you know. Thank you." <<gyearning>> <<else>> <<switch $speech_attitude>> <<case "meek">> "L-let me take half." <<case "bratty">> "Let me help. I'm not asking." <<default>> "Let me take half." <</switch>> <br><br> Gwylan smiles. "Thank you." <</if>> <br><br> <<set _stressFactor to $beastRitual.poisonAmount * 12>> <<set _traumaFactor to $beastRitual.poisonAmount * 6>> <<set _purityFactor to $beastRitual.poisonAmount * -25>> <<if $beastRitual.lure is "dryad">> <<if !$gwylanSeen.includes("ritual_corruption_share_dryad")>> <<set $gwylanSeen.pushUnique("ritual_corruption_share_dryad")>> <<He>> digs through the bucket for a moment. "Let me find you a crunchy one." After a moment, <<he>> pulls out a small blackened leaf and hands it to you. <br><br> It doesn't look too bad. You pop it in your mouth and start chewing. <br><br> <<if $fallenangel gte 2 and $fallenangel lt 4>> <span class="black">You taste nothing but the salt.</span> Gwylan watches you closely, waiting for a reaction. You turn to <<him>> and shrug. <br><br> <<He>> opens <<his>> mouth to say something, but ends up holding <<his>> tongue. <br><br> Despite being flavourless at first, a vile aftertaste starts to build up in the corners of your mouth. You gag involuntarily. <<elseif $demon gte 6>> It's not bad. In fact, <span class="purple">it's pretty tasty</span>. You reach for another one. <<stress -6>><<trauma -3>><<purity -10>><<lstress>><<ltrauma>><<lpurity>> <br><br> Gwylan doesn't stop you. "I suppose I should have expected that. Although, you should be warned that the aftertaste—" <br><br> The aftertaste hits you. <</if>> <span class="red">It is the single most vile thing you have ever tasted in your life.</span> Gwylan puts a hand over your mouth, and another on your back. "I'm sorry, but you can't spit it out." <<stress _stressFactor>><<purity -5>><<ggstress>><<lpurity>> <br><br> It's a struggle, but you manage to force yourself to swallow. Gwylan holds <<his>> hands over your mouth for another moment to be sure, but slowly releases you. <br><br> You gasp and heave. "You're telling me it's even worse without the salt?" <br><br> Gwylan nods sadly. <br><br> The two of you pick away at more of the tainted leaves for some time. "It doesn't taste quite as bad when shared. Thank you again." <<else>> You dig into the bucket. <<if $fallenangel gte 2 and $fallenangel lt 4>> <span class="black">Every bite is completely bereft of flavour or substance, save for the salt.</span> <br><br> <<if $transformationParts.fallenAngel.wings isnot "hidden">> Gwylan rubs your blackened wings. They twitch. They usually can't feel anything. <</if>> "Emptiness has value. Poetic irony." <<elseif $demon gte 6>> <span class="purple">You end up eating more of it than Gwylan does.</span> <<stress `(_stressFactor * -1)`>><<trauma `(_traumaFactor * -1)`>><<purity `(_purityFactor * 2)`>><<llstress>><<ltrauma>><<llpurity>> <br><br> <<if $transformationParts.demon.horns isnot "hidden" and $transformationParts.demon.tail isnot "hidden">> <<He>> strokes your horns. "Who's a good little imp?" Your tail wags in response. <<trauma -1>><<ltrauma>> <<else>> <<He>> pets your head. "You're wonderful, doing this for me." <<trauma -1>><<ltrauma>> <</if>> <<else>> <span class="red">Every bite is vile,</span> but you power through it. <<He>> deals with this every week. You can manage. <<stress _stressFactor>><<purity _purityFactor>><<ggstress>><<lpurity>> <br><br> Gwylan rubs your back. "You're doing a good thing for the world, and for me." <</if>> <</if>> <<else>> <<if $gwylanSeen.includes("ritual_corruption_share") and _gwylanLovePercent gte 75 and C.npc.Gwylan.dom gte 15 and $beastRitual.poisonAmount gte 2>> <<if !$gwylanSeen.includes("ritual_corruption_share_intimate")>> <<set $gwylanSeen.pushUnique("ritual_corruption_share_intimate")>> You reach for the bowl, but Gwylan holds it away from you. "I... I know a way that it can be made more tolerable for both of us." <<His>> face becomes a bit more red. "The poison is released and spread through coitus, but carnality isn't the only vector of transmission." <<He>> pauses, trying to choose <<his>> next words carefully. <br><br> "There's a specific human connection that can dull the sting of absorption." <<He>> looks away. "Just... close your eyes and open your mouth, please." <br><br> You close your eyes, and open your mouth. Gwylan tilts your head back and cups your cheeks. A moment later, you feel the fluid trickling into your mouth. <br><br> You open your eyes. <br><br> <<His>> face is very close. <span class="pink">You're nearly kissing. The poison drips from <<his>> tongue onto yours. <<His>> eyes are closed, and <<he>> holds <<his>> hair aside with one hand.</span> <br><br> <<His>> eyes blink open when you've shared it all. <<His>> face is beetroot red, and <<he>> steps away from you. "There's power in intimacy, especially when used in conjunction with carnality. <<if $gwylanSeen.includes("romance")>> You're the only person I could bear do this with." <<elseif $gwylanSeen.includes("yearning")>> You've already broken that boundary, so there's no reason not to." <<else>> Don't take this the wrong way, though. It can't go further than this between us." <<He>> shifts side to side. <<if $gwylanSeen.includes("ritual_sex")>> "There's a difference between coitus and intimacy. It's already more than I'd be comfortable doing with anyone else." <<else>> "We can't be intimate with each other. It's already more than I'd be comfortable doing with anyone else." <</if>> <</if>> <<else>> Gwylan's race reddens a bit as <<he>> drinks all of the fluid, and brings <<his>> face close to yours. <<He>> cups your face, and you open your mouth. <br><br> <<if $gwylanSeen.includes("romance") or _gwylanStatus.includes("lust")>> <<He>> doesn't bother letting it drip, instead pulling you right into a kiss. You feel the fluid enter your mouth alongside <<his>> tongue. <<takeKissVirginity "Gwylan" "romantic">> <<else>> Your eyes half-close on their own as half of the poison drips down into your mouth. <</if>> <</if>> <<npcincr Gwylan dom 1>><<gyearning>> <br><br> You swallow it. <<if $angel gte 6>> <span class="gold">The purity within you quietly snuffs it out.</span><<stress -2>><<trauma `(Math.floor(_traumaFactor/2))`>><<lstress>><<gtrauma>> <<elseif $fallenangel gte 2 and $fallenangel lt 4>> <span class="black">It rushes to fill the emptiness inside of you, and for a moment, you don't feel so empty anymore.</span> <<ltrauma>><<trauma -2>> <<elseif $demon gte 6>> <span class="purple">It blissfully melds with your very being.</span><<stress `(_stressFactor * -2)`>><<trauma `(_traumaFactor * -2)`>><<purity `(_purityFactor * 2)`>><<llstress>><<ltrauma>><<lllpurity>> <<elseif $dryad gte 6>> <span cass="pink">You feel weak as it twists your connection to the world, but your roots, connected to Gwylan, endure.</span><<stress `(Math.floor(_stressFactor/2))`>><<trauma `(Math.floor(_traumaFactor/2))`>><<pain 5>><<gstress>><<gtrauma>><<gpain>> <<else>> <<purity _purityFactor>><<llpurity>> <</if>> <br><br> <<if $gwylanSeen.includes("romance") or _gwylanStatus.includesAny("dom", "lust")>> Gwylan sits next to you, and pulls your head down into <<his>> lap. <<He>> strokes your hair. "You're my <<pcpetname "Gwylan" "good">>." <<trauma -1>><<ltrauma>> <<else>> Gwylan looks away and fails to make eye contact for the next several minutes. <</if>> <<else>> You put the bowl to your lips, and drink half of the fluid, <span class="lewd">absorbing the poison</span>. <<if $angel gte 6>> <span class="gold">The purity within you clashes with it, snuffing it out.</span><<trauma _traumaFactor>><<pain 1>><<gtrauma>><<gpain>> <<elseif $fallenangel gte 2 and $fallenangel lt 4>> <span class="black">It rushes to fill the emptiness inside of you, and vanishes within. You feel nothing.</span> <<elseif $demon gte 6>> <span class="purple">It melds with your very being.</span><<stress `(_stressFactor * -1)`>><<trauma `(_traumaFactor * -1)`>><<purity `(_purityFactor * 2)`>><<llstress>><<ltrauma>><<lllpurity>> <<elseif $dryad gte 6>> <span cass="red">You feel violently ill as it twists your connection to the world. Your blossom turns sickly for a moment.</span><<stress _stressFactor>><<trauma _traumaFactor>><<pain 10>><<ggstress>><<ggtrauma>><<ggpain>> <<else>> <<purity _purityFactor>><<llpurity>> <</if>> <br><br> Gwylan drinks the other half, and wipes <<his>> mouth. <<He>> shudders. "You're too kind, dear." <</if>> <</if>> <br><br> <<set $gwylanSeen.pushUnique("ritual_corruption_share")>> <<link [[Relax and chat with Gwylan|Gwylan Ritual Bait Corruption Relax]]>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<if !$beastRitual.sharedBurden and $beastRitual.lure isnot "dryad" and $phase isnot 1>> Gwylan downs the glowing fluid. <br><br> <<if $beastRitual.poisonAmount gte 5>> After a moment, <span class="red"><<he>> clutches <<his>> stomach and lies on <<his>> side</span>. You rub <<his>> back. <<npcincr Gwylan dom -3>><<llyearning>> <<elseif $beastRitual.poisonAmount gte 3>> After a moment, <span class="pink"><<he>> doubles over,</span> but manages to steady <<himself>>. <<npcincr Gwylan dom -2>><<lyearning>> <<elseif $beastRitual.poisonAmount gte 1>> After a moment, <span class="purple"><<he>> clutches <<his>> stomach,</span> but quickly steadies <<himself>>. <<npcincr Gwylan dom -1>><<lyearning>> <<else>> After a moment, <span class="blue"><<he>> winces,</span> but quickly composes <<himself>>. <</if>> <br><br> <</if>> You spend some time relaxing in the garden with <<him>>. <<if $gwylan.wary gt 1 and $beastRitual.purge gte 1>> <<set $gwylan.wary -= 1>> <<if $gwylan.wary lte 1>> <<set $gwylan.forgiven to true>> <<else>> <span class="green"><<He>> seems to let <<his>> guard down.</span> <<glove>> <</if>> <</if>> <br><br> <<He>> eventually stands up. <<if $gwylan.forgiven>> <<run delete $gwylan.forgiven>> <<He>> stares through you. <br><br> <<link [[Look away|Gwylan Ritual Forgive]]>><<set $phase to 1>><</link>> <br> <<link [[Stare back|Gwylan Ritual Forgive]]>><<set $phase to 2>><</link>> <br> <<else>> <br><br> <<link [[Next|Gwylan Ritual Bait Exit]]>><</link>> <br> <</if>><<effects>><<run statusCheck("Gwylan")>> Gwylan ushers you back inside. <<He>> enters the shop again <<himself>> a few minutes later. <br><br> <<if $beastRitual.fallen>> <<set $gwylanSeen.pushUnique("fallen_fault")>> <</if>> <<unset $beastRitual>> <<run delete $gwylan.ritualMissed>><<run delete $gwylan.ritualNext>> <<set $gwylan.timer.ritual to new DateTime(Time.date).addDays(7).timeStamp>> <<set $gwylan.hunting to 0>> <<set $gwylan.punishment to false>> <<set $daily.gwylan.ritual to true>> /* GwylanBeast managed to become NaN during testing, so in case the root cause was not fixed, fix here. */ <<if !$dateCount.GwylanBeast>> <<set $dateCount.GwylanBeast to 1>> <<else>> <<set $dateCount.GwylanBeast++>> <</if>> <<link [[Next|Forest Shop Entrance]]>><<endevent>><</link>> <br><<set $outside to 0>><<set $location to "forest_shop">><<effects>><<run statusCheck("Gwylan")>> <<set _hideRitualOptions to true>> You tell Gwylan that you're ready to help enact the ritual. <br><br> <<if Time.isBloodMoon() or Time.monthDay is Time.lastDayOfMonth and Time.hour gte 16>> <<set _ritualFailSafe to true>><<unset $ritualForced>> <<He>> shakes <<his>> head. "Not now. Not on nights like tonight. It's too dangerous." <br><br> <<gwylanOptions>> <<elseif Time.hour lte 8>> <<set _ritualFailSafe to true>><<unset $ritualForced>> <<set $daily.gwylan.ritualRequestBlocked to true>> <<He>> yawns. "Too early. Breakfast first.<<if $gwylan_cafe_intro>> Meet me at the cafe later?<</if>>" <br><br> <<gwylanOptions>> <<else>> <<if _gwylanStatus.includes("cautious")>> <<if $auriga_scar or $brownFoxRevealed>> <<He>> smiles. "You'll forgive me if I'm hesitant to do the more intense ritual. There's much on my mind." <<He>> looks you up and down. "I'm afraid you're bad for my focus right now." <<else>> <<He>> blinks. "Yes, of course. <span class="purple">We'll be sticking to the less intensive ritual for now.</span> I'm a bit..." <<he>> pauses, shifting to the right slightly and wincing. "Strained." <</if>> <br><br> <<ind>><<link [[Lure a denizen of the forest for purging|Gwylan Forest Journey Prep]]>><<endevent>><</link>> <br> <<elseif $gwylan.hunting is 3>> <<He>> smiles. "Finally. We'll be doing the more advanced ritual. I've missed your touch." <<He>> blushes, and looks away. "I mean, it's more effective, and—" <<he>> stops, taking a deep breath. "<span class="lewd">I've been craving you, <<pcpetname "Gwylan">>.</span> It's been too long." <br><br> <<ind>><<link [[Act as the forest's vessel|Gwylan Ritual Start]]>><</link>><<if $gwylanSeen.includes("ritual_sex")>><<gwylanHypnoNote>><</if>> <br> <<elseif $gwylan.ritualNext is "sex" or $gwylan.hunting gte 2>> <<if _gwylanStatus.includes("heat")>> <<He>> moves as if <<hes>> about to leap right over the counter, but stops half way. "Sorry! Sorry. I'm just excited. I need it to just be us this time, though." <<He>> looks away, blushing. <<else>> <<He>> smiles. "Good, I've been waiting. It'll just be me and you this time." <<He>> winks at you. <</if>> <br><br> <<ind>><<link [[Act as the forest's vessel|Gwylan Ritual Start]]>><</link>><<if $gwylanSeen.includes("ritual_sex")>><<gwylanHypnoNote>><</if>> <br> <<else>> <<He>> nods. "We can go out and lure one of the denizens of the forest, or you could act as the forest's vessel yourself. For the latter, <span class="lewd">fluid transfer is mandatory, and there can't be any obstructions</span>." <br><br> <<ind>><<link [[Lure a denizen of the forest for purging|Gwylan Forest Journey Prep]]>><<endevent>><</link>> <br> <<ind>><<link [[Act as the forest's vessel|Gwylan Ritual Start]]>><</link>><<if $gwylanSeen.includes("ritual_sex")>><<gwylanHypnoNote>><</if>> <br> <</if>> <br> <<gwylanOptions>> <</if>><<effects>><<run statusCheck("Gwylan")>> <<set _hideRitualOptions to true>> You tell Gwylan you want to act as the forest's vessel. <br><br> <<if !$settings.tentaclesEnabled or !$settings.hypnosisEnabled>> <<set _ritualFailSafe to true>><<unset $ritualForced>> <<He>> tilts <<his>> head at you. "Are you sure you're up for this kind of thing?" <<He>> ruffles your hair. "It can be an intense process, much more than the other ritual. You might see things you're not prepared for. Things that <span class="lewd">writhe</span> through the holes from the other side may make themselves known. You'll also need to be prepared for <span class="lewd">hypnotic influences</span>. <span class="blue">Try opening your mind a bit first, for your own sake.</span>" <br><br> <i><span class="blue">Tentacles and hypnosis must be enabled to continue.</span></i> <br><br> <<gwylanOptions>> <<elseif playerChastity()>> <<set $phase to "ritual">> <<include "Gwylan Chastity Removal">> <<else>> <<gwylanRitualStart>> <<if !$gwylanSeen.includes("ritual_sex")>> <<He>> blushes. "Very well, if you're sure you're ready. <<if $wolfpackleader gte 1 or $wolfgirl gte 6 or $fox gte 6 or $dryad gte 6>> <span class="green">You're already naturalised to the forest.</span>" <<if $wolfgirl gte 6>> <<if $transformationParts.wolf.ears isnot "hidden">> <<He>> rubs your wolf ears. <<else>> <<He>> pats your head, right where your wolf ears should be. <</if>> <<elseif $fox gte 6>> <<if $transformationParts.fox.ears isnot "hidden">> <<He>> rubs your fox ears. <<else>> <<He>> pats your head, right where your fox ears should be. <</if>> <<elseif $dryad gte 6>> <<He>> rubs down some of your leaves. <<else>> <<He>> pats your head. "You're the leader of the local wolf pack, no?" You wonder how <<he>> knows that. <</if>> "Despite that, there's certain preparations we need to make for the first time. <<else>> <span class="blue">Since you're not a natural denizen of the forest,</span> there's certain preparations we need to make for the first time. <</if>> We have to become bonded to one another." <br><br> <<He>> smiles. "It's a <span class="lewd">mating ritual</span>. A chase in the forest, between you and I. Give me a moment." <<He>> vanishes through a dark doorway. You hear the clinking of cookware, and a few minutes later, <<he>> returns with a goblet full of blood-red liquid. <br><br> /* ToDo: Gwylan - unlock ability to learn wolfbrew (and ghostbrew?) recipe later after this event */ <<if $wolfpackleader gte 1 or $wolfgirl gte 6 or $fox gte 6 or $dryad gte 6>> "This is <span class="purple">wolfbrew</span>. Normally, I'd have to have you drink this, but as said, the forest is already in you. We can start right away. <<if $fox gte 6>> You could still drink it if you wish, but I wouldn't recommend it. It may dull your foxiness." <<elseif $cow gte 6 or $cat gte 6 or $harpy gte 6>> You could still drink it if you wish, but you may find it changing your animalistic tendencies to be more... <span class="black">wolfish</span>." <<elseif $wolfgirl gte 6>> You could still drink it if you wish. It'll make you closer to your inner wolf. <<else>> You could still drink it if you wish." <</if>> <<if playerBellyVisible()>> <<He>> pauses, before looking down at your <<bellyDescription>>. "It's safe for the child, don't worry." <</if>> <br><br> You give it a whiff. It smells like wine. <br><br> <<link [[Drink|Gwylan Ritual Start Wolfbrew]]>><<tiredness -3>><<drugs 120>><</link>><<ggdrugged>> <br> <<link [[Do not|Gwylan Ritual Start Hunt]]>><</link>> <br> <<else>> "This is <span class="purple">wolfbrew</span>. It'll make you closer to the forest, for a time. You'll need to drink it. It has a kick, so be mindful." <<if playerBellyVisible()>> <<He>> pauses, before looking down at your <<bellyDescription>>. "It's safe for the child, don't worry." <</if>> <br><br> You give it a whiff. It smells like wine. <br><br> <<link [[Drink|Gwylan Ritual Start Wolfbrew]]>><<tiredness -3>><<drugs 120>><</link>><<ggdrugged>> <br> <</if>> <<else>> <<He>> smiles. "Very well. <<if $wolfpackleader gte 1 or $wolfgirl gte 6 or $fox gte 6 or $dryad gte 6>> As you're already part of the forest, we can skip right to the inspection." <<He>> pauses. "We can still repeat the mating ritual if you wish, though." <<else>> We're already fluid bonded, so we don't need to repeat the mating ritual. Completing it again would make the ritual more effective if you win the chase, though." <</if>> <br><br> <<link [[Do the whole ritual|Gwylan Ritual Start Hunt]]>><<tiredness 2>><</link>><<ggtiredness>><<glust>><<gwylanPurgeEffect>> <br> <<link [[Skip the mating ritual|Gwylan Ritual Start Garden]]>><<endevent>><<set $phase to "skip">><</link>> <br> <</if>> <</if>><<effects>> <<set $sexRitual.wolfbrew to true>> You bring the goblet to your lips and drink. <br><br> It sickly sweet, and burns your throat on the way down. It's intensely invigorating. <span class="pink">A heat rises within you.</span> "You might start growing some extra body hair," Gwylan says. "I probably should have mentioned that." <br><br> <<transform wolf 12>> <<link [[Next|Gwylan Ritual Start Hunt]]>><</link>> <br><<set $outside to 1>><<set $location to "forest">><<effects>><<run statusCheck("Gwylan")>> <<gwylanHuntStart>><<set $huntGame.hunterKnown to true>><<set $sexRitual.chase to true>> <<set $huntGame.event to "Gwylan Ritual Hunt">> You're led out to the front of the forest shop. <br><br> Gwylan starts stretching. "The rules are simple. If I catch you, I win. If you catch me, you win. If you win, the forest will accept you as one of its own, and the ritual will be more potent. I can't just let you win, though. It has to be a real hunt." <br><br> <<if $worn.feet.type.includes("heels")>> <<set _linebreak to true>> <<He>> glances down at your $worn.feet.name. "Take those off, you'll break an ankle running around the forest with those," <<he>> scolds. <<Hes>> probably right. You stow away your $worn.feet.name and decide to go barefoot. <<feetundress "gwylanRitual">> <</if>> <<if !_gwylanStatus.includes("wounded") and $brownFoxWoundedTimer>> <<unset $brownFoxWoundedTimer>> <<He>> cautiously stretches <<his>> right leg. Once it's fully extended, <<he>> smiles. "I've missed running." <<if !$brownFoxRevealed>> <<He>> pauses. "With a partner, I mean." <</if>> <<elseif _gwylanStatus.includes("wounded")>> <<He>> moves <<his>> right leg out, as if testing it. <<He>> briefly winces. <<if $brownFoxRevealed>> "Unfortunately, my leg hasn't healed yet. I'll push myself, but I'll be slower than normal." <<else>> "I'm afraid my leg's sprained at the moment, so I'll be slow." <</if>> <</if>> <<if _gwylanStatus.includesAny("aroused", "lust") and random(0, 2)>> <<He>> thinks for a moment, and grins. "I'll be hunting first. You've got twenty seconds. Best start running, <<pcpetname "Gwylan" "name">>." <br><br> You flee into the forest. After a few minutes, you stop to get a feel for the situation. <<else>> <<set $huntGame.hunter to "player">> <<He>> thinks for a moment. "You'll be hunting first. Wait twenty seconds, then come get me!" <<He>> doesn't wait for you to respond, and starts running. <br><br> You wait the requested twenty seconds, and run into the forest after <<him>>. After a few minutes, you stop to get a feel for the situation. <</if>> <br><br> What do you do? <br> <<gwylanHuntOptions>><<effects>><<run statusCheck("Gwylan")>> <<if ($drugged gte 1 or $fox gte 4 or $cat gte 4 or $wolfgirl gte 4) and !random(0, 10) and $huntGame.turn gte 1>> The forest is in you. <<else>> You are in the forest. <</if>> <<gwylanHuntEffects>> <<if $huntGame.end>> <<tiredness 1>> <br><br> <<if $huntGame.end is "ambushSuccess">> <<if $huntGame.otherHealth lte 1>> With a final, determined pounce, you <span class="green">catch <<= $huntGame.adversaryText>></span>. <<He>> squirms under you, but you hold <<his>> wrists down to the ground firmly. <<He>> submits. <<npcincr Gwylan lust 3>><<gglust>> <<elseif $huntGame.otherHealth is 2>> With a predatory pounce, you tackle <<= $huntGame.adversaryText>>. You roll with <<him>> for a moment, but <<he>> manages to squirm away. <span class="teal">You know <<he>> won't be able to escape again.</span> <<if !$huntGame.brownFox and $awarelevel gte 4 and _gwylanTF.known and $huntGame.otherHealth lte 2 and $hypnosis_traits.devotion gte 4 and !_gwylanStatus.includes("wounded")>> <<set $huntGame.brownFox to true>><<set $huntGame.adversaryText to "the brown fox">> <<set $huntGame.skills.athleticsMax += 75>><<set $huntGame.skills.skulduggeryMax += 75>><<set $huntGame.skills.danceMax += 75>> <br><br> You stand up. You don't see Gwylan running away from you. You see something else. <br><br> <span class="red">It's a massive brown fox. The air around it blurs as it runs away from you on all fours.</span> <</if>> <<else>> You pounce like a well-trained predator, and get your hands on <<= $huntGame.adversaryText>>. <<Hes>> fast, though. After a brief struggle, <<he>> manages to slip away from you. <</if>> <br><br> <<if $huntGame.otherHealth lte 1>> <<set $sexRitual.chaseWon to true>><<set $sexRitual.purge++>> <span class="gold">You've won the hunt!</span> <<gwylanPurgeEffect>> <br><br> <<if $huntGame.brownFox>> Your head suddenly feels more clear. You look down and see Gwylan beneath you rather than the fox. <<His>> face is bright red. <<else>> Gwylan looks up at you, <<his>> face bright red. <</if>> /* ToDo: Gwylan - variation for when Gwylan is in heat and gets caught or catches the player */ "Alright, you can get off of me now. You win." <<He>> smiles. <<if _gwylanStatus.includes("wounded")>> "You're lucky I'm hobbled. It wouldn't have been so easy otherwise." <<npcincr Gwylan dom 1>><<gyearning>> <<else>> "That was incredible! You moved so quickly." <<npcincr Gwylan dom 3>><<ggyearning>> <</if>> <br><br> You help Gwylan stand. The two of you walk back to the shop. <<tiredness 6>><<ggtiredness>> <br><br> <<link [[Next|Gwylan Ritual Start Garden]]>><<endevent>><<unset $huntGame>><<pass 10>><</link>> <br> <<else>> <<set $huntGame.otherHealth-->> <<gwylanHuntOptions>> <</if>> <<elseif $huntGame.end is "ambushFailed">> <<if $huntGame.hunter is "player">> You miss your pounce, and <<he>> starts to run! <br><br> <<if $huntGame.otherHealth lte 1>> This is the final stretch. <span class="green">If you catch <<him>> now, it's over.</span> <br><br> <</if>> <<link [[Chase!|Gwylan Ritual Chase]]>><<set $chasestart to 1>><</link>> <br> <<else>> You miss your pounce, and <<he>> makes a grab for you! <br><br> <<link [[Run!|Gwylan Ritual Chase]]>><<set $runstart to 1>><</link>> <br> <</if>> <<elseif $huntGame.end is "chase">> <<if $huntGame.otherHealth lte 1>> This is the final stretch. <span class="green">If you catch <<him>> now, it's over.</span> <br><br> <</if>> <<link [[Chase!|Gwylan Ritual Chase]]>><<set $chasestart to 1>><</link>> <br> <<else>> <<if !$huntGame.brownFox and $awarelevel gte 4 and _gwylanTF.known and $huntGame.otherHealth lte 2 and $hypnosis_traits.devotion gte 4 and !_gwylanStatus.includes("wounded")>> <<set $huntGame.brownFox to true>><<set $huntGame.adversaryText to "the brown fox">> <<set $huntGame.skills.athleticsMax += 75>><<set $huntGame.skills.skulduggeryMax += 75>><<set $huntGame.skills.danceMax += 75>> Except this isn't Gwylan. <br><br> <span class="red">It's a massive brown fox, its three eyes glowing a bright green. The air around it blurs as it pounces at you.</span> <br><br> <</if>> <<if $phase isnot "noDodge" and !$huntGame.noDodge>> <<link [[Dodge!|Gwylan Ritual Chase Dodge]]>><</link>><<dancedifficulty $huntGame.skills.danceMin $huntGame.skills.danceMax>> <br> <</if>> <<link [[Run!|Gwylan Ritual Chase]]>><<set $runstart to 1>><</link>> <br> <</if>> <<set $huntGame.tracked to false>> <<set $huntGame.distance to 2>> <<set $huntGame.playerAction to "">> <<set $huntGame.playerActionLast to "">> <<set $huntGame.playerTracked to false>><<set $huntGame.playerTrackedKnown to false>> <<run delete $huntGame.noMoreHiding>><<run delete $huntGame.otherHideTimer>> <<set $huntGame.otherAction to "run">> <<set $huntGame.turn to 0>> <<set $huntGame.end to false>> <<else>> <<gwylanHuntState>> <<gwylanHuntOptions>> <</if>><<effects>><<run statusCheck("Gwylan")>> <<set $huntGame.dance ||= 0>> <<if $danceSuccess>> <<set $huntGame.skills.danceMin += 100>><<set $huntGame.skills.danceMax += 175>> <<if $huntGame.dance is 0>> You <<dancetext>> grab <<him>> mid-pounce. You spin with <<his>> momentum in a dance-like twirl before pushing <<him>> away. <<He>> lands, and pounces again! <br><br> <<link [[Dodge again!|Gwylan Ritual Chase Dodge]]>><</link>><<dancedifficulty $huntGame.skills.danceMin $huntGame.skills.danceMax>> <br> <<link [[Run!|Gwylan Ritual Chase]]>><<set $huntGame.dance to 0>><<set $runstart to 1>><</link>> <br> <<elseif $huntGame.dance is 1>> <<if $huntGame.brownFox>> As <<he>> pounces, you expect to catch <<him>> by <<his>> front legs. Instead, your hands meet soft skin. Gwylan's determined face meets you instead of the fox's. <</if>> You <<dancetext>> grab <<him>> by the wrists and twirl <<him>> around you. Your dance continues, and you think you see the faintest hint of a smile from Gwylan. <br><br> <span class="blue">If you run now, you'll have a good head start on <<him>>.</span> Once more, <<he>> pounces for you! <br><br> <<if $huntGame.otherHealth lte 1>> <<link [[Dance|Gwylan Ritual Chase Dodge]]>><</link>><<dancedifficulty $huntGame.skills.danceMin $huntGame.skills.danceMax>> <<else>> <span class="blue">If you wear <<him>> down more, it might be possible to counter-attack next time.</span> <</if>> <br> <<link [[Run!|Gwylan Ritual Chase]]>><<set $huntGame.chaseDistance to 3>><<set $huntGame.dance to 0>><<set $runstart to 1>><</link>> <br> <<else>> One final time, you <<dancetext>> sidestep, grab, and twirl. <br><br> <<if $gwylanSeen.includes("yearning") and ($hypnosis_traits.devotion gte 4 or $auriga_scar or C.npc.Gwylan.dom gte 140)>> For a moment, this isn't a hunt anymore. The forest itself yields to your grace. Gwylan does, too. Time slows down. <br><br> You don't try to throw <<him>> aside this time, nor does <<he>> try to topple you over. Instead, you lean into each other. <br><br> You embrace. <br><br> You dance. <br><br> You step in time with six <span class="teal">familiar</span> notes. A pause. The first note staggers before the next bar, and its five siblings catch up. You repeat it three times. <br><br> You're no longer where you once were. <br><br> <<link [[Next|Gwylan Ritual Chase Dance]]>><</link>> <br> <<else>> You have <<him>>, and you're not letting go this time. You push forward, letting your momentum do the rest of the work, and pin <<= $huntGame.adversaryText>> to the ground. <<He>> squirms under you, but you hold <<his>> wrists down to the ground firmly. <<He>> submits. <<npcincr Gwylan lust 3>><<gglust>> <br><br> <<set $sexRitual.chaseWon to true>> <span class="gold">You've won the hunt!</span> <<if $gwylanSeen.includes("yearning")>> <span class="blue">Yet, your graceful dance leaves you feeling as though you were on the cusp of something more, were your <<if V.worn.neck.name === "familiar collar" && V.worn.neck.cursed === 1>>Devotion<<else>>Curiosity<</if>> deeper.</span> <</if>> <<set $sexRitual.purge++>><<gwylanPurgeEffect>> <br><br> <<if $huntGame.brownFox>> Your head suddenly feels more clear. You look down and see Gwylan beneath you rather than the fox. <<His>> face is bright red. <<else>> Gwylan looks up at you, <<his>> face bright red. <</if>> "Alright, you can get off of me now. You win." <<He>> smiles. <<if _gwylanStatus.includes("wounded")>> "Even with my leg hurt, you moved with me gracefully. I'll be feeling it tomorrow, but it was worth it." <<npcincr Gwylan dom 1>><<gyearning>> <<else>> "That was amazing. You moved so... gracefully." <<npcincr Gwylan dom 3>><<ggyearning>> <</if>> <br><br> You help Gwylan stand. The two of you walk back to the shop. <<tiredness 6>><<ggtiredness>> <br><br> <<link [[Next|Gwylan Ritual Start Garden]]>><<endcombat>><<clotheson>><<unset $huntGame>><<pass 10>><</link>> <br> <</if>> <</if>> <<set $huntGame.dance++>> <<else>> <<if $huntGame.playerHealth is 3>> You try to dodge, <span class="red">but you're too slow</span>. Or, rather, <<hes>> too fast. <br><br> <<if $huntGame.brownFox>> <<His>> claws nearly take you, but instead only snag. You fall to the ground as <<he>> darts by. <<pain 2>><<gpain>> <br><br> <<else>> <<He>> grabs you, and you fall. <<He>> does too, a short distance away. <</if>> You have enough time to get back on your feet, but <<he>> quickly pounces again. <br><br> <<if $huntGame.dance gte 2>> <<if $huntGame.otherHealth lte 1>> <<link [[Dance|Gwylan Ritual Chase Dodge]]>><</link>><<dancedifficulty $huntGame.skills.danceMin $huntGame.skills.danceMax>> <<else>> <span class="blue">If you wear <<him>> down more, it might be possible to counter-attack.</span> <</if>> <<else>> <<link [[Dodge again!|Gwylan Ritual Chase Dodge]]>><</link>><<dancedifficulty $huntGame.skills.danceMin $huntGame.skills.danceMax>> <</if>> <br> <<link [[Run!|Gwylan Ritual Chase]]>><<set $huntGame.dance to 0>><<set $runstart to 1>><</link>> <br> <<elseif $huntGame.playerHealth is 2>> Once again, you try to dodge, <span class="red">but <<hes>> too fast</span>. <br><br> <<if $huntGame.brownFox>> <<He>> topples you and rolls, but doesn't pin you down. <<He>> trots a few steps away and huffs. As if <<he>> wants you to try again. <<pain 2>><<gpain>> <<else>> <<He>> gets a solid hold on you, and wrestles you to the ground. You roll in a brief struggle, which has <<him>> release you. <</if>> <br><br> You shakily stand, and <<he>> pounces again. <br><br> <<if $huntGame.dance gte 2>> <<if $huntGame.otherHealth lte 1>> <<link [[Dance|Gwylan Ritual Chase Dodge]]>><</link>><<dancedifficulty $huntGame.skills.danceMin $huntGame.skills.danceMax>> <<else>> <span class="blue">If you wear <<him>> down more, it might be possible to counter-attack.</span> <</if>> <<else>> <<link [[Dodge again!|Gwylan Ritual Chase Dodge]]>><</link>><<dancedifficulty $huntGame.skills.danceMin $huntGame.skills.danceMax>> <</if>> <br> <<link [[Run!|Gwylan Ritual Chase]]>><<set $huntGame.dance to 0>><<set $runstart to 1>><</link>> <br> <<else>> <span class="red">You can't hope to get out of the way in time.</span> <br><br> <<if $huntGame.brownFox>> The brown fox pins you down. <<His>> snout comes down to your face, baring <<his>> sharp teeth at you. You turn your head and close your eyes. <br><br> Nothing happens. You hesitantly open one eye, and see Gwylan laying atop you with a smile. <<His>> feet kick in the air. <<else>> Gwylan's arms wrap around you. With a quick turn, <<he>> pins you to the ground under <<him>>. <br><br> <<He>> holds your wrists down until you submit, which prompts <<him>> to giggle. <</if>> <<if _gwylanStatus.includes("lust")>> <<He>> kisses you on the cheek. <<else>> <<He>> pokes your cheek. <</if>> "Caught you. It was a good attempt! I'll give you points for standing your ground so stubbornly." <<npcincr Gwylan lust 3>><<gglust>> <br><br> <<He>> helps you stand, and the two of you walk back to the forest shop. <<tiredness 6>><<ggtiredness>> <br><br> <<link [[Next|Gwylan Ritual Start Garden]]>><<endcombat>><<clotheson>><<unset $huntGame>><<pass 10>><</link>> <br> <</if>> <<set $huntGame.playerHealth-->> <</if>><<set $location to "estate">><<effects>><<run statusCheck("Gwylan")>> You're not sure where you are. <br><br> You're not sure that you care. <br><br> <<if $fox gte 6 and ($demon gte 6 or $auriga_scar)>> <<set _masked to "antlered fox">> <<elseif $fox gte 6 or isLoveInterest("Avery")>> <<set _masked to "fox">> <<elseif $demon gte 6>> <<set _masked to "elk">> <<elseif $wolfgirl gte 6>> <<set _masked to "hound">> <<else>> <<set _masked to "rat">> <</if>> The world around you is dim, obscured by the eyesockets of the <<= _masked>> mask on your face. <br><br> Gwylan dances with you, wearing <<if _masked is "antlered fox">> a fox mask of <<his>> own, although <<his>> antlers have been broken off. <<elseif _masked is "fox">> a fox mask of <<his>> own. <<else>> a fox mask. <</if>> <<His>> tunic is gone, replaced by <<if C.npc.Gwylan.pronoun is "m">> a frilly suit, decorated with white roses. <<else>> a frilly dress, decorated with red roses. <</if>> <<if _gwylanTF.known>> There's a wrapping around the back, allowing <<his>> tail to stick out. It wags back and forth gently as you dance. <</if>> <br><br> Others dance around you. <<if _masked is "elk">> The other elks watch with leering envy. <<else>> Leery elk masks watch with envy. <</if>> Their arms grab for you, but never reach. Their gazes strip you both bare, but neither of you pay it any mind. They don't matter. They have no power over you right now. <br><br> Gwylan leans into you as the dance slows. This close, you notice <<if _masked is "antlered fox">>another<<else>>a<</if>> flaw in <<his>> mask. There's a cracked mark perfectly centered on the forehead. It bleeds. <<He>> either doesn't notice or doesn't care. <br><br> There is nothing in the forest but the two of you. You are in the forest, and the forest is in you. <br><br> You are One. <br><br> Gwylan <<switch $bodysize>> <<case 0 1>>tilts your head up, <<case 2>>leans in, <<case 3>>stands on the tips of <<his>> toes, <</switch>> and kisses you. <<takeKissVirginity "Gwylan" "romantic">> <br><br> <<link [[Next|Gwylan Ritual Chase Dance 2]]>><<if $arousal lt 6000>><<set $arousal to 6000>><</if>><</link>> <br><<set $location to "forest">><<effects>><<run statusCheck("Gwylan")>> Your vision returns to the forest. <br><br> Gwylan is still kissing you, <<his>> arms wrapped around you tightly. <br><br> <<His>> eyes blink open. <<He>> quickly withdraws from you and turns away, although <<his>> arms are still around you. <br><br> <<He>> clears <<his>> throat. <br><br> Without saying anything, <<he>> takes your hand and starts walking. <<He>> leads you back to the forest shop. <<tiredness 6>><<ggtiredness>><<npcincr Gwylan dom 5>><<gggyearning>> <br><br> <<set $sexRitual.chaseWon to true>><<set $sexRitual.chaseTrue to true>><<set $gwylanSeen.pushUnique("chase_true")>> <span class="forest-green">The mating ritual is complete.</span> <<set $sexRitual.purge += 2>><<gwylanPurgeEffect 2>> <br><br> <<link [[Next|Gwylan Ritual Start Garden]]>><<endevent>><<unset $huntGame>><<pass 10>><</link>> <br><<run statusCheck("Gwylan")>> <<if $chasestart>> <<set $chasestart to 0>> <<set $consensual to 1>> <<neutral 1>> <<maninit>> <<stalk_init>> <<stalk_chased>> <<stalk_run>> <<set $NPCList[0].distance to $huntGame.chaseDistance || 2>><<run delete $huntGame.chaseDistance>> <<set $combatgoal to "confront">> <<set $NPCList[0].bold to 10000>> <<set $stalk_assess to true>> <<set $NPCList[0].skills.athletics to Math.floor(($huntGame.skills.athleticsMin + $huntGame.skills.athleticsMax) / 2)>> <<set $NPCList[0].skills.security to Math.floor(($huntGame.skills.skulduggeryMin + $huntGame.skills.skulduggeryMax) / 2)>> <<set $noIntroName to true>> <<elseif $runstart is 1>> <<set $runstart to 0>> <<set $consensual to 1>> <<neutral 1>> <<maninit>> <<stalk_init>> <<stalk_run>> <<set $NPCList[0].distance to $huntGame.chaseDistance || 2>><<run delete $huntGame.chaseDistance>> <<set $combatgoal to "confront">> <<set $NPCList[0].bold to 10000>> <<set $stalk_assess to true>> <<set $NPCList[0].skills.athletics to Math.floor(($huntGame.skills.athleticsMin + $huntGame.skills.athleticsMax) / 2)>> <<set $NPCList[0].skills.security to Math.floor(($huntGame.skills.skulduggeryMin + $huntGame.skills.skulduggeryMax) / 2)>> <<set $noIntroName to true>> <</if>> <<effects>> <<effectsman>><<man>> <<stateman>> <<actionsman>> <<if $stalk_end>> <span id="next"><<link [[Next|Gwylan Ritual Chase Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Gwylan Ritual Chase]]>><</link>></span><<nexttext>> <</if>><<effects>><<run statusCheck("Gwylan")>> <<person1>> <<if ["catch", "ambush"].includes($stalk_end)>> <<set $huntGame.distance to 4>> <<if $huntGame.otherHealth lte 1>> With a final, determined pounce, you <span class="green">catch <<= $huntGame.adversaryText>></span>. <<He>> squirms under you, but you hold <<his>> wrists down to the ground firmly. <<He>> submits. <<npcincr Gwylan lust 3>><<gglust>> <<elseif $huntGame.otherHealth is 2>> With a predatory pounce, you tackle <<= $huntGame.adversaryText>>. You roll with <<him>> for a moment, but <<he>> manages to squirm away. <span class="teal">You know <<he>> won't be able to escape again.</span> <<if !$huntGame.brownFox and $awarelevel gte 4 and _gwylanTF.known and $huntGame.otherHealth lte 2 and $hypnosis_traits.devotion gte 4 and !_gwylanStatus.includes("wounded")>> <<set $huntGame.brownFox to true>><<set $huntGame.adversaryText to "the brown fox">> <<set $huntGame.skills.athleticsMax += 75>><<set $huntGame.skills.skulduggeryMax += 75>><<set $huntGame.skills.danceMax += 75>> <br><br> You stand up. You don't see Gwylan running away from you. You see something else. <br><br> <span class="red">It's a massive brown fox. The air around it blurs as it runs away from you on all fours.</span> <</if>> <<else>> You pounce like a well-trained predator, and get your hands on <<= $huntGame.adversaryText>>. <<Hes>> fast, though. After a brief struggle, <<he>> manages to slip away. <</if>> <br><br> <<if $huntGame.otherHealth lte 1>> <<set $sexRitual.chaseWon to true>> <span class="gold">You've won the hunt!</span> <<set $sexRitual.purge++>><<gwylanPurgeEffect>> <br><br> <<if $huntGame.brownFox>> Your head suddenly feels more clear. You look down and see Gwylan beneath you rather than the fox. <<His>> face is bright red. <<else>> Gwylan looks up at you, <<his>> face bright red. <</if>> "Alright, you can get off of me now. You win." <<He>> smiles. <<if _gwylanStatus.includes("wounded")>> "You're lucky I'm hobbled. It wouldn't have been so easy otherwise." <<npcincr Gwylan dom 1>><<gyearning>> <<else>> "That was incredible! You moved so quickly." <<npcincr Gwylan dom 3>><<ggyearning>> <</if>> <br><br> You help Gwylan stand. The two of you walk back to the shop. <<tiredness 6>><<ggtiredness>> <br><br> <<link [[Next|Gwylan Ritual Start Garden]]>><<endcombat>><<clotheson>><<unset $huntGame>><<pass 10>><</link>> <br> <<else>> <span class="red">The chase intensifies...</span> <<note "+ Athletics Difficulty" "red">> <<set $huntGame.skills.athleticsMin += 50>><<set $huntGame.skills.athleticsMax += 50>> <<set $huntGame.otherHealth-->> <br><br> <<silently>><<endcombat>><<clotheson>><</silently>> <<npc Gwylan>><<person1>> <<gwylanHuntOptions>> <</if>> <<elseif $stalk_end is "escaped">> You pant for breath. You've managed to leave <<= $huntGame.adversaryText>> far behind, for now. <br><br> <span class="red">The chase intensifies...</span> <<note "+ + Athletics Difficulty" "red">> <<set $huntGame.skills.athleticsMin += 50>><<set $huntGame.skills.athleticsMax += 100>> <<set $huntGame.distance to 6>> <br><br> <<silently>><<endcombat>><<clotheson>><</silently>> <<npc Gwylan>><<person1>> <<gwylanHuntOptions>> <<elseif $stalk_end is "hide">> You cautiously step out of your hiding spot. You've avoided <<= $huntGame.adversaryText>>, for now. <br><br> <span class="purple">The hunt intensifies...</span> <<note "+ + Skulduggery Difficulty" "purple">> <<set $huntGame.skills.skulduggeryMin += 100>><<set $huntGame.skills.skulduggeryMax += 100>> <<set $huntGame.distance to 4>><<set $huntGame.playerTracked to false>><<set $huntGame.playerTrackedKnown to false>> <br><br> <<silently>><<endcombat>><<clotheson>><</silently>> <<npc Gwylan>><<person1>> <<gwylanHuntOptions>> <<elseif $stalk_end is "outpaced">> You pant for breath. <<= $huntGame.adversaryText.toUpperFirst()>> has escaped you. <br><br> The hairs on the back of your neck stand on end as something changes on the wind. <<if $huntGame.hunter is "player">> <br> <span class="red">You are no longer the hunter.</span> <<set $huntGame.hunter to "other">> <</if>> <br><br> <span class="red">The chase intensifies...</span> <<note "+ Athletics Difficulty" "red">> <<set $huntGame.skills.athleticsMin += 50>><<set $huntGame.skills.athleticsMax += 100>> <<set $huntGame.distance to 5>> <br><br> <<silently>><<endcombat>><<clotheson>><</silently>> <<npc Gwylan>><<person1>> <<gwylanHuntOptions>> <<else>> <<if $huntGame.brownFox>> The brown fox pins you down. <<His>> snout comes down to your face, baring <<his>> sharp teeth at you. You turn your head and close your eyes. <br><br> Nothing happens. You hesitantly open one eye, and see Gwylan laying atop you with a smile. <<His>> feet kick in the air. <<else>> Gwylan's arms wrap around you. With a quick turn, <<he>> pins you to the ground under <<him>>. <br><br> <<He>> holds your wrists down until you submit, which prompts <<him>> to giggle. <</if>> <<if _gwylanStatus.includes("lust")>> <<He>> kisses you on the cheek. <<else>> <<He>> pokes your cheek. <</if>> "Caught you! Don't worry, there's always next time." <<npcincr Gwylan lust 1>><<glust>> <br><br> <<He>> helps you stand, and the two of you walk back to the forest shop. <<tiredness 6>><<ggtiredness>> <br><br> <<link [[Next|Gwylan Ritual Start Garden]]>><<endcombat>><<clotheson>><<unset $huntGame>><<pass 10>><</link>> <br> <</if>><<set $outside to 0>><<set $location to "forest_shop_garden">><<effects>><<run statusCheck("Gwylan")>> <<npc Gwylan>><<person1>> <<gwylanRitualStart>> <<if $phase is "lured">> <<He>> clasps <<his>> hands together in delight. "Let me finish getting ready." <<He>> disappears into the shop. <br><br> <<Hes>> not gone for long. <<else>> <<if $phase is "skip">> <<He>> nods. "I'll go get ready." <</if>> <<He>> lets you into the garden through the mannequin room, and disappears up a set of stairs. <<if random(1, 100) is 100>> The mannequin in the black tunic and white mask is by the doorway, and seems to be giving you a thumbs-up. <</if>> <br><br> While you wait, you have a look around. <<if Weather.precipitation is "snow">> You notice that the snow doesn't seem to be sticking to the ground here. <</if>> <<if $tending gte 600>> You recognise a few of Gwylan's herbs and flowers. There's a lot of roses too, both red and white. Many of the flowers shouldn't be able to grow here. There's some you've never seen before. <<else>> You don't recognise many of the herbs or flowers, but you do notice a lot of red and white roses. <</if>> <<if $plants_known.includes("strange_flower")>> <span class="purple">You also recognise a patch of strange, purple flowers.</span> <</if>> <br><br> Gwylan returns, now entirely naked save for <<his>> witch hat<<if C.npc.Gwylan.penis is "none" and $settings.analEnabled and _gwylanTF.tail isnot "revealed">><<set $sexRitual.buttplug to true>><<if $awarelevel gte 1>> and fox-tail buttplug<<else>> and fake fox tail<</if>><</if>>. If <<he>> minds your gaze, <<he>> doesn't show it. <<garousal>> <br><br> <</if>> <<His>> arms are full, holding a few small vials, a jar, and some knick-knacks of unknown purpose. <<if _gwylanStatus.includesAny("wounded", "scarred")>> <<if _gwylanStatus.includes("wounded")>> <<set $brownFoxWoundedHint to true>> <span class="blue">There's a bandage wrapped around <<his>> upper right leg.</span> <<elseif !$gwylanSeen.includes("bf_scarred")>> <<set $brownFoxWoundedHint to true>> <<set $gwylanSeen.pushUnique("bf_scarred")>> <span class="teal">You notice a fresh scar on <<his>> upper right leg, but it looks to be healing well.</span> <</if>> <</if>> <<set $phase to 0>> <<if !$sexRitual.bondage>> <<if $leftarm is "bound" or $rightarm is "bound" or $feetuse is "bound">> As <<he>> passes you by, <span class="green">you feel your bindings come loose.</span> <<unbind>> <</if>> <</if>> <<outfitChecks>> <<if !_fullyNaked>> "Please shed your clothes." <<arousal 300>> <br><br> <<if $worn.under_lower.name isnot "naked">> <<link [[Strip to your underwear|Gwylan Ritual Strip]]>><<npcincr Gwylan lust 1>><<set $phase to 1>><</link>><<glust>> <br> <</if>> <<if hasSexStat("exhibitionism", 2) or $worn.under_lower.name is "naked">> <<link [[Strip naked|Gwylan Ritual Strip]]>><<set $phase to 2>><</link>><<if $worn.under_lower.name isnot "naked">><<exhibitionist2>><</if>> <br> <<if hasSexStat("exhibitionism", 4)>> <<link [[Strip naked and flaunt|Gwylan Ritual Strip]]>><<set $sexRitual.arousal += 5>><<set $phase to 3>><</link>><<exhibitionist4>> <br> <<else>> <<insufficientStat "exhibitionism" "to strip and flaunt your nudity">> <br> <</if>> <<else>> <<insufficientStat "exhibitionism" "to strip completely naked">> <br> <</if>> <<else>> <<arousal 600>> <br><br> <<link [[Wait|Gwylan Ritual Strip]]>><<set $phase to 4>><</link>> <br> <<if hasSexStat("exhibitionism", 4)>> <<link [[Flaunt your nudity|Gwylan Ritual Strip]]>><<set $sexRitual.arousal += 5>><<set $phase to 5>><</link>><<exhibitionist4>> <br> <<else>> <<insufficientStat "exhibitionism" "to flaunt your nudity">> <br> <</if>> <</if>><<set $outside to 0>><<set $location to "forest_shop_garden">><<effects>><<run statusCheck("Gwylan")>> <<npc Gwylan>><<person1>> <<gwylanRitualStart>> <<set $sexRitual.forced to true>> <<set $sexRitual.bondage to true>> <<bind>> <<canvas-model-temporary-effect "vines">> You awaken some time later. You try to move, but your arms and legs are bound. You can't see anything, but your prone body <<= Weather.temperature < -7 ? "is nestled on a bed of cushions and quilts." : "settles into a cushion.">> You feel bare. <br><br> /* Fast-forwarded version of the usual sex ritual checks */ <<outfitChecks>> <<if !_fullyNaked>> <span class="pink">Your clothes are all missing.</span> <<set _linebreak to true>> <</if>> <<undressOverClothes "gwylanRitual">><<undressclothes "gwylanRitual">><<undressmid "gwylanRitual">><<handsundress "gwylanRitual">><<handheldundress "gwylanRitual">><<legsundress "gwylanRitual">><<feetundress "gwylanRitual">><<faceundress "gwylanRitual">> <<outfitChecks>> <<if !_fullyNaked>> <<set _stillOn to (!_bottomless ? _bottom : _top)>> <<if _stillOn.cursed is 1>> <<if $worn.over_upper.cursed is 1>> <<set $sexRitual.overUpperCursed to true>> <<set $worn.over_upper.cursed to 0>> <</if>> <<if $worn.over_lower.cursed is 1>> <<set $sexRitual.overLowerCursed to true>> <<set $worn.over_lower.cursed to 0>> <</if>> <<if $worn.upper.cursed is 1>> <<set $sexRitual.upperCursed to true>> <<set $worn.upper.cursed to 0>> <</if>> <<if $worn.lower.cursed is 1>> <<set $sexRitual.lowerCursed to true>> <<set $worn.lower.cursed to 0>> <</if>> <<if $worn.under_upper.cursed is 1>> <<set $sexRitual.underUpperCursed to true>> <<set $worn.under_upper.cursed to 0>> <</if>> <<if $worn.under_lower.cursed is 1>> <<set $sexRitual.underLowerCursed to true>> <<set $worn.under_lower.cursed to 0>> <</if>> <</if>> <<undressclothes "gwylanRitual">> <</if>> <<facewear 5>> <<if playerChastity()>> <<if $worn.genitals.name is "gold chastity belt">> <span class="red">Somehow, your gold chastity belt is gone.</span> <<else>> <span class="red">Your $worn.genitals.name is gone.</span> <</if>> <<set _linebreak to true>> <<if $worn.genitals.name is "chastity parasite" or $worn.genitals.origin is "ear slime">> <<if $parasite.penis.name is "parasite">> <<removeparasite "penis">> <</if>> <<if $parasite.clit.name is "parasite">> <<removeparasite "clit">> <</if>> <<if numberOfEarSlime()>> <<corruption -10>> <</if>> <</if>> <<set $worn.genitals.type.push("broken")>><<genitalsruined>> <<if $vaginalchastityparasite isnot 0>> <<set $vaginalchastityparasite to 0>> <</if>> <<if $penilechastityparasite isnot 0>> <<set $penilechastityparasite to 0>> <</if>> <<if $analchastityparasite isnot 0>> <<set $analchastityparasite to 0>> <</if>> <<if $gwylan.request.event is "chastity">> <<gwylanRequestEnd "skip">> <</if>> <<if $gwylan.requestLast?.event is "chastity">> <<run delete $gwylan.requestLast.hold>> <</if>> <</if>> <<if _linebreak>> <br><br> <</if>> <<if $parasite.penis.name>> <<removeparasite penis>> <</if>> <<if $player.penisExist>> <<if !(C.npc.Gwylan.vagina is "none" and !$settings.analEnabled)>> <<set $sexRitual.canPenetrate to true>> <<if $player.virginity.vaginal is true and $player.virginity.penile is true>> <<set $sexRitual.virginity.pushUnique("penis")>> <<set $sexRitual.virginityCanTake to true>> <</if>> <</if>> <</if>> <<if $player.vaginaExist>> <<if C.npc.Gwylan.penis isnot "none" or C.npc.Gwylan.strapons?.length>> <<set $sexRitual.canPenetrate to true>> <<if $player.virginity.vaginal is true and $player.virginity.penile is true>> <<set $sexRitual.virginity.pushUnique("vagina")>> <<set $sexRitual.virginityCanTake to true>> <</if>> <</if>> <</if>> <<if $settings.analEnabled>> <<if $player.penisExist and $player.virginity.penile is true>> <<set $sexRitual.virginity.pushUnique("penis")>> <<set $sexRitual.virginityCanTake to true>> <</if>> <</if>> Still, it's dark and comfortable. Steam surrounds you, cradling you in its warmth. You can smell incense in the air.<<gghallucinogens>><<hallucinogen 400>> <br><br> You fight the urge to fall back asleep. <<if $phase2 is "sedative">> You're unsure why you're still so tired. You drift in a drowsy haze, unmoored from reality. <<else>> You drift in a drowsy haze, unmoored from reality. The sedative on the vines must have been particularly potent. <</if>> Something lifts your blindfold, rousing you from your stupor. Gwylan's <<= $gwylanSeen.includes("vine_bondage") ? "wry" : "warm">> smile greets you. You didn't hear <<him>> approach, but you usually don't. <br><br> <<if $gwylanSeen.includes("vine_bondage")>> "You really are a <<pcpetname "Gwylan" "naughty">>, dear," <<he>> says. <<if $gwylanSeen.includes("requested_bondage")>> "If you wanted to be tied up again, you could've just asked me. Or did you forget that was an option? Well, no matter. This way's fun too." <<else>> "Or did you want to be tied up again? I'm flattered you thought so highly of the experience. We <i>did</i> have fun with it, didn't we?" It's rhetorical. <</if>> <<elseif $phase2 is "sedative">> Gwylan searches your face for a moment. "Oh, don't fret, dear," <<he>> says. "I coated these vines in a sedative." <<He>> pats your cheek. After all, sex is more fun when you're nice and relaxed. And we <i>can</i> have fun with it, can't we, <<pcpetname "Gwylan" "naughty">>?" It's rhetorical. <<else>> "Still nice and relaxed, dear?" <<he>> says. It's rhetorical. "I'm glad. We can still have fun with this, even though you've been quite the <<pcpetname "Gwylan" "naughty">>." <</if>> <<if $gwylanSeen.includes("partners")>> <<He>> lowers your blindfold and gives you a quick peck on the lips. <<gwylanKiss>> <<else>> <<He>> lowers your blindfold again. <</if>> <br><br> "Let's get you <<= $liquidCount is 0 ? "in the tub" : "cleaned up">>," Gwylan says. "I already took care of inspecting you while you were asleep." The vines wrapped around your thighs squeeze tighter. "A practicality, really. After all, it would be terribly hard to do that part of the ritual with your legs restrained like this!" <<He>> giggles. <<stress 6>><<gstress>> <br><br> <<run $gwylanSeen.pushUnique("vine_bondage")>> <<link [[Next|Gwylan Ritual Forced Wash]]>><</link>><<effects>><<run statusCheck("Gwylan")>><<set _tf to checkTFparts()>><<hallucinogen 50>> <<canvas-model-temporary-effect "vines">> Something lowers you into the tub, submerging you in warm, soapy water. <<set _waterDoesNotAttractAttention to true>> <<water>><<effectswater "warm water">><<wash>> <<stress -12>><<llstress>> <br><br> You flinch as an unseen hand cradles your cheek, pressing a thumb against your lips. <<if $gwylanSeen.includes("ritual_sex") and $hypnosis_traits.devotion gte 2>> <<set $sexRitual.arousal += 1>> <<hypnosisText "You instinctively open your mouth before Gwylan can ask.">> "<<pcPetname "Gwylan" "good">>." <<npcincr Gwylan lust 1>><<glust>> <<else>> "Open," <<he>> says. <</if>> <br><br> <<if $transformationParts.traits.fangs isnot "disabled">> <<set $sexRitual.arousal += 4>> <<His>> thumb presses against one of your fangs. <<He>> delves further into your mouth, making you stick your tongue out. You can hear a small noise of admiration. <<arousal 500 "mouth">><<garousal>><<npcincr Gwylan lust 1>><<glust>> <br> <<else>> <<He>> drops <<his>> hand after a brief moment of inspection. <</if>> <<if _gwylanStatus.includes("lust")>> <<set $sexRitual.arousal += 10>><<set $sexRitual.gwylanDrugged to true>> You then hear Gwylan step into the tub <<himself>>. <<He>> straddles your still-bound thighs, pressing up against you. <<His>> hands cup your cheeks, and you feel <<his>> breath against your lips. "You've been rather cruel as of late," <<he>> murmurs, "neglecting me for so long. You know how I hunger for you, and you still let me starve. How ungrateful. I think I deserve repayment, don't you?" <<He>> kisses you greedily. <<takeKissVirginity "Gwylan" "rape">> <<His>> tongue pushes its way into your mouth as <<his>> arms wrap around you. You taste sweet fluid flow in. <<if $transformationParts.traits.fangs isnot "disabled">> <<set $sexRitual.arousal += 2>> <<His>> tongue continues to explore, running against your fangs. <</if>> <<He>> withdraws with a breathy little laugh. "You owe me so much more than that, but I'm getting carried away." <<npcincr Gwylan lust 3>><<npcincr Gwylan dom 1>><<gglust>><<gyearning>> <br><br> Gwylan stands up and shifts around you. <<He>> sits back down behind you and squeezes a sponge over your head. <<else>> A glass vial presses against your lips. It smells sweet. Gwylan tips your head back and feeds it to you. "It will take some time to work, so I have to administer it early." <<He>> squeezes a sponge out over your head, using <<his>> hand as a shield to prevent water from dripping down your face. <</if>> <br><br> <<link [[Next (0:08)|Gwylan Ritual Wash 2]]>><<pass 8>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> Gwylan lights two incense burners, one on each side of the covered room. <<He>> then places the reagents on a simple bedside table, ensuring the jar of blue sand is a safe distance away from the nearby burner. <br><br> <<switch $phase>> <<case 1>> You strip down to your underwear and stand in place awkwardly as Gwylan continues making preparations. <<undressOverClothes "gwylanRitual">><<undressmid "gwylanRitual">><<handsundress "gwylanRitual">><<handheldundress "gwylanRitual">><<legsundress "gwylanRitual">><<feetundress "gwylanRitual">> <br><br> <<case 2>> You comply and strip as <<he>> continues making preparations. Gwylan being so shameless makes it a little less embarrassing. <<undressclothes "gwylanRitual">><<handsundress "gwylanRitual">><<handheldundress "gwylanRitual">><<legsundress "gwylanRitual">><<feetundress "gwylanRitual">> <<exhibitionism2>> <<case 3>> You slowly strip your clothing, making sure to linger just long enough on each piece for Gwylan to notice in between <<his>> preparations. <<if _gwylanStatus.includesAny("aroused", "lust")>> <<He>> can't help but steal the occasional glance. <<He>> begins to work a bit faster. <<else>> "You're not impressing anyone, dear," <<he>> suddenly says. "You don't need to show off to me." <</if>> <<undressclothes "gwylanRitual">><<handsundress "gwylanRitual">><<handheldundress "gwylanRitual">><<legsundress "gwylanRitual">><<feetundress "gwylanRitual">> <<exhibitionism4>> <<case 4>> Already naked, you simply stand and watch as Gwylan continues to make preparations. <<handsundress "gwylanRitual">><<handheldundress "gwylanRitual">><<legsundress "gwylanRitual">><<feetundress "gwylanRitual">> <br><br> <<default>> Already exposed, you start doing some simple but suggestive stretches, adding in some strained noises for effect. It's just enough for Gwylan to notice in between <<his>> preparations. <<if _gwylanStatus.includesAny("aroused", "lust")>> <<He>> can't help but steal the occasional glance. <<He>> begins to work a bit faster. <<else>> "You're not impressing anyone, dear," <<he>> suddenly says. "You don't need to show off to me." <</if>> <<handsundress "gwylanRitual">><<handheldundress "gwylanRitual">><<legsundress "gwylanRitual">><<feetundress "gwylanRitual">> <<exhibitionism4>> <</switch>> <<if $worn.face.type.includesAny("covered", "mask")>> <<faceundress "gwylanRitual">> <</if>> <<He>> drops a garden hose into the large wooden tub and turns a valve. It begins to fill with steaming water. The incense and steam fill the air with warmth. <<gghallucinogens>><<hallucinogen 400>> <br><br> <<if !$gwylanSeen.includes("ritual_sex")>> "I'll need to inspect you," <<he>> says while tinkering with what looks like a small medical device. "I can afford to take my time for once. I'll make sure it's not unpleasant." <<else>> "I'll need to inspect you again." <</if>> <<outfitChecks>> <<if !_fullyNaked>> <<set _stillOn to (!_bottomless ? _bottom : _top)>> <<if _stillOn.type.includes("strap-on")>> <<He>> looks down at your _stillOn.name. "We won't be needing that." <<else>> <<He>> looks amused, seeing you still wearing your _stillOn.name. <<if $phase is 1>>"Are you shy?"<<else>>"Having trouble?"<</if>> <</if>> <<His>> hands gently wrap around your <<if !_bottomless>>waist<<else>>chest<</if>>. <<if _stillOn.cursed is 1>> <<He>> gives the _stillOn.name a tug, to no avail. "I understand." <<He>> gingerly slips <<his>> fingers underneath and begins to whisper something, and the material slowly begins to yield to <<his>> touch. "I'll have to put <<= _stillOn.plural is 1 ? "them" : "it">> back on you when we're done, else <<= _stillOn.plural is 1 ? "they" : "it">> will get angry." <span class="blue">The _stillOn.name <<= _stillOn.plural is 1 ? "release" : "releases">> you.</span> <<if $worn.over_upper.cursed is 1>> <<set $sexRitual.overUpperCursed to true>> <<set $worn.over_upper.cursed to 0>> <</if>> <<if $worn.over_lower.cursed is 1>> <<set $sexRitual.overLowerCursed to true>> <<set $worn.over_lower.cursed to 0>> <</if>> <<if $worn.upper.cursed is 1>> <<set $sexRitual.upperCursed to true>> <<set $worn.upper.cursed to 0>> <</if>> <<if $worn.lower.cursed is 1>> <<set $sexRitual.lowerCursed to true>> <<set $worn.lower.cursed to 0>> <</if>> <<if $worn.under_upper.cursed is 1>> <<set $sexRitual.underUpperCursed to true>> <<set $worn.under_upper.cursed to 0>> <</if>> <<if $worn.under_lower.cursed is 1>> <<set $sexRitual.underLowerCursed to true>> <<set $worn.under_lower.cursed to 0>> <</if>> <<else>> <<if _gwylanStatus.includes("lust")>> <<set $sexRitual.arousal += 1>> <<He>> pulls you a little closer. For a moment, you almost think <<hes>> going to kiss you, and you barely notice <<him>> continuing to strip you. <<else>> <<He>> helps you finish stripping, showing no hesitation or embarrassment. <</if>> <</if>> <<undressclothes "gwylanRitual">> <br><br> <</if>> <<if !$gwylanSeen.includes("ritual_sex")>> <<He>> gives you a serious glare. "It's been a long time since I've done this ritual with a human. It might be too much for you to handle. If you need to stop, <span class="blue">say something</span>. Additionally, <span class="blue">there are two rules that you must not break</span>. <br> Rule one. <span class="red">Keep your lips off of mine.</span> No matter how passionate you think this is. <br> Rule two.... <span class="purple">please don't pull my hair.</span>" <br><br> <<His>> glare turns into a cheery smile. "That's all. Other than that, <span class="green">we can have fun with it,</span> depending on how comfortable you are." <br><br> <<elseif !$gwylanSeen.includes("yearning")>> <<He>> gives you a serious look. "Remember the rules. <span class="purple">No kissing, and no hair pulling.</span> Other than that, we can have fun with it." <br><br> <</if>> <<if !$gwylanSeen.includes("ritual_sex")>> <<if $templePromised isnot "">> <<set $gwylanSeen.pushUnique("promised")>> <<set $sexRitual.virginity.pushUnique("temple")>> <<He>> briefly stops to inspect your promise ring. "What you're about to do could be considered adultery by your religion, you know. Keep that in mind before you get too excited." <br><br> <</if>> <<else>> <<if $templePromised isnot "">> <<if !$gwylanSeen.pushUnique("promised")>> <<set $gwylanSeen.pushUnique("promised")>> <<He>> briefly stops to inspect your promise ring. "Aww, you went and found someone special enough to become bound to, and you still came back to little old me?" <<else>> <<He>> briefly stops to inspect your promise ring, but doesn't say anything about it. <</if>> <<set $sexRitual.virginity.pushUnique("temple")>> <br><br> <</if>> <</if>> <<He>> starts to kneel. "I'm going to start with your genitals." <br><br> <<link [[Continue (0:03)|Gwylan Ritual Inspect]]>><<pass 3>><</link>> <br><<effects>><<run statusCheck("Gwylan")>><<set _tf to checkTFparts()>><<hallucinogen 100>> <<if $player.penisExist and $player.vaginaExist and !$gwylanSeen.includes("herm")>> <<set $gwylanSeen.pushUnique("herm")>> <<He>> holds your thighs slightly apart. <<if C.npc.Gwylan.gender is "h">> "We're alike in many ways, aren't we?" <<else>> "Wow. I've never seen a rebis in person before. You're full of surprises!" <</if>> <<elseif $sexRitual.crossdressing>> <<He>> holds your thighs slightly apart. "Unexpected genitalia, but not unwelcome. I'm nothing if not versatile." <</if>> <<set $genderknown.pushUnique("Gwylan")>> <<if $player.penisExist>> <<He>> starts with your <<penis true>>, <<if $parasite.penis.name>> and with a swift motion, <span class="teal"><<he>> twists and removes the $parasite.penis.name from you</span>. You barely even felt it happen. <<He>> turns and tosses it into a bucket on the other side of the garden with perfect aim. <<removeparasite penis>> <<He>> turns <<his>> attention back to your <<penis true>>, <</if>> <<switch $player.penissize>> <<case -2 -1>> just barely lifting it up with the tip of <<his>> finger. There isn't much to inspect. "You will need an extra dose," <<he>> says a little quicker than you would have liked. "It's cute, though." <<insecurity "penis_small" 2>><<ginsecurity "penis_small">> <<case 0 1>> lifting it up and examining its features. <<He>> slowly runs <<his>> fingers across the length, as if measuring. "Certainly workable. Size isn't everything." <<He>> gently rubs the tip with <<his>> thumb. You rapidly begin to harden and <<he>> repeats the first motion, measuring your more erect length. <<arousal 700 "genitals">><<ggarousal>> <<case 2 3>> lifting it up with <<his>> right hand and examining its features. <<He>> lifts it up and down before running <<his>> hand along the length slowly, seemingly measuring it. <<He>> slowly moves <<his>> hand back, and forward again. You start to harden with <<his>> touch, and <<he>> repeats the process, measuring your more erect length. <<arousal 700 "genitals">><<ggarousal>> <<case 4>> lifting it up with <<his>> right hand. <<He>> stops for a moment, and you see <<his>> face reddening once again. "It's quite large. I—" <<He>> pauses. "I can work with it, it's no issue." <<He>> lifts it up and down before running <<his>> hand along the length slowly, seemingly measuring its weight and length. <<He>> slowly moves <<his>> hand back, and forward again. You start to harden with <<his>> touch, and <<he>> repeats the process, measuring your more erect length. <<arousal 700 "genitals">><<ggarousal>> <</switch>> <<if !(C.npc.Gwylan.vagina is "none" and !$settings.analEnabled)>> <<set $sexRitual.canPenetrate to true>> <<if $player.virginity.vaginal is true and $player.virginity.penile is true>> <<set $sexRitual.virginity.pushUnique("penis")>> <<set $sexRitual.virginityCanTake to true>> <</if>> <</if>> <br><br> <</if>> <<if $player.vaginaExist>> <<if $player.penisExist>> <<He>> moves on to your <<pussy true>>, <<else>> <<He>> starts with your <<pussy true>>, <</if>> spreading your lips open with two fingers. <<He>> brings up a small metal object. You wince, expecting it to be cold, but it's not. Gwylan must have dipped it in the warm water beforehand. <<He>> slowly spreads open your vagina, looking inside. <<if setup.bodyliquid.combined("vagina") gte 4>> "Oh my. You've been active recently." <span class="lewd"><<He>> flicks off some escaping lewd fluid.</span> "We'll need to wash it out." <<elseif setup.bodyliquid.combined("vagina") gte 1 or setup.bodyliquid.combined("vaginaoutside") gte 1>> "You have some fresh fluid in here. We'll need to wash it out." <</if>> <<He>> removes the device with a click. <<if C.npc.Gwylan.penis isnot "none" or C.npc.Gwylan.strapons?.length>> <<set $sexRitual.canPenetrate to true>> <<if $player.virginity.vaginal is true and $player.virginity.penile is true>> <<set $sexRitual.virginity.pushUnique("vagina")>> <<set $sexRitual.virginityCanTake to true>> <</if>> <</if>> <br><br> <</if>> <<if $settings.analEnabled or _tf.wolfTail or _tf.catTail or _tf.cowTail or _tf.birdTail or _tf.foxTail or _tf.demonTail>> <<He>> grabs you by the hips and spins you around. <<if _tf.wolfTail or _tf.foxTail or _tf.catTail or _tf.cowTail or _tf.birdTail>> <<set $sexRitual.arousal += 2>> <<He>> lays out your tail, gently running <<his>> hand against it. <span class="teal"><<He>> spends a moment petting it.</span> <<elseif _tf.demonTail>> <<He>> grabs your tail, lifting and turning it for a moment. <</if>> <<if $settings.analEnabled>> You feel your cheeks spread slightly, and an intruding finger quickly swipes against your hole. <<if $player.penisExist and $player.virginity.penile is true>> <<set $sexRitual.virginity.pushUnique("penis")>> <<set $sexRitual.virginityCanTake to true>> <</if>> <</if>> <<He>> spins you back around. <br><br> <</if>> Gwylan's pace is rapid, but practised. <<if playerIsPregnant() and (playerAwareTheyArePregnant() or getPregnancyObject().fetus[0].father is "Gwylan")>> <<if getPregnancyObject().fetus[0].father is "Gwylan">> <<He>> suddenly places the side of <<his>> head against your <<bellyDescription "pc">>, wrapping <<his>> arms around you. <<He>> holds you tightly, closing <<his>> eyes. You instinctively place your hands around <<his>> head, returning the embrace. <<if playerAwareTheyArePregnant()>> <<if !playerBellyVisible()>> Does <<he>> know you're pregnant? <</if>> <<else>> You're not sure what <<hes>> doing, but you feel warm inside. <</if>> <<else>> <<He>> raises a hand to your belly, but hesitates, looking up to you for permission. You nod, and <<he>> places the side of <<his>> head against your <<bellyDescription "pc">>. <<He>> closes <<his>> eyes. <<He>> counts under <<his>> breath for a few seconds. <<if !playerBellyVisible()>> <span class="blue">You're not sure how <<he>> knew that you were pregnant.</span> <</if>> <</if>> <<stress -12>><<lstress>> <br><br> <<else>> <<He>> places <<his>> hands on your belly, pushing in a few places. It tickles. <</if>> <<He>> stands up, moving <<his>> hands to your <<breasts>>. <<if $player.breastsize gte 9>> <<He>> lifts them, seemingly impressed by their sheer weight. <<elseif $player.breastsize gte 3>> <<He>> cups them, pushing them together and looking at them from different angles. <</if>> <<if $player.breastsize gte 3 and $lactating is 1>> <span class="pink">A small bead of milk drips from your nipples at <<his>> stimulation.</span> "Oops." <<He>> wipes it away. <br><br> <</if>> <<He>> presses against your chest in various spots before gently running <<his>> hands up to your shoulders, then neck. <<He>> looks you in the eyes. Your body tingles everywhere Gwylan has touched. <br><br> <<if _gwylanStatus.includes("lust") or $gwylanSeen.includes("romance")>> <<set $sexRitual.arousal += 2>> <<He>> suddenly kisses you on the nose. "Let's get you washed so we can get to the fun part." <<npcincr Gwylan lust 1>><<glust>> <<else>> "Bath time," <<he>> says suddenly. <</if>> <br><br> <<He>> takes your wrist and leads you to the wooden tub. <<if $liquidcount is 0>> <<set $sexRitual.arousal += 2>> "You keep yourself clean all over. Still, this is part of the ritual." <<elseif setup.bodyliquid.combined("vagina") is 0 and setup.bodyliquid.combined("penis") is 0 and setup.bodyliquid.combined("anus") is 0>> "You keep yourself clean where it matters, but the ritual will be more effective if there's no third-party fluids involved at all." <<else>> "Whatever got all this fluid on you, I hope it was at least fun." <</if>> Your legs move on their own to keep up. <br><br> <<link [[Continue (0:02)|Gwylan Ritual Wash]]>><<set $phase to 0>><<pass 2>><</link>> <br> <<link [[Take Gwylan's hand (0:02)|Gwylan Ritual Wash]]>><<set $phase to 1>><<pass 2>><<if C.npc.Gwylan.dom lt 10>><<npcincr Gwylan dom 1>><</if>><</link>><<if C.npc.Gwylan.dom lt 10>><<gyearning>><</if>><<handholdingvirginitywarning>> <br><<effects>><<run statusCheck("Gwylan")>><<set _tf to checkTFparts()>><<hallucinogen 50>> <<if $phase is 1>> <<set $sexRitual.arousal += 1>> You allow your wrist to slip, instead taking Gwylan by the hand. <<takeHandholdingVirginity "Gwylan" "romantic">> <br><br> <</if>> <<set $phase to 0>> You step into the wooden tub as Gwylan turns the valve again, stopping the flow. "Sit," <<he>> says as <<he>> tosses a thick sponge in. The water is perfectly warm and already full of soap bubbles. You sit and submerge yourself. <<set _waterDoesNotAttractAttention to true>> <<water>><<effectswater "warm water">><<wash>> <<stress -12>><<llstress>> <br><br> Gwylan moves to the side of the building and flips a covered switch. The garden is bathed in dancing green light from above. <<He>> crouches in front of you and places a hand on your cheek, pressing <<his>> thumb against your lips. <<if $gwylanSeen.includes("ritual_sex") and $hypnosis_traits.devotion gte 2>> <<set $sexRitual.arousal += 1>> <<hypnosisText "You instinctively open your mouth before Gwylan can ask, which makes <<him>> smile.">> "<<pcPetname "Gwylan" "good">>." <<npcincr Gwylan lust 1>><<glust>> <<else>> "Open," <<he>> says. You oblige. <</if>> <br><br> <<if $transformationParts.traits.fangs isnot "disabled">> <<set $sexRitual.arousal += 4>> <<His>> thumb presses against one of your fangs. <<He>> pushes further into your mouth as <<he>> admires them, making you stick your tongue out. <<arousal 500 "mouth">><<garousal>><<npcincr Gwylan lust 1>><<glust>> <br> <<else>> <<He>> inspects the inside of your mouth, but doesn't linger. <</if>> <<if $gwylanSeen.includes("partners") and _gwylanStatus.includes("lust")>> <<set $sexRitual.arousal += 10>><<set $sexRitual.gwylanDrugged to true>> Gwylan then steps into the tub <<himself>>. <<He>> sits down, pressing up against you. <<He>> flicks the lid off of one of the vials, full of shimmering purple liquid, and puts it to <<his>> lips. <<His>> hands cup your cheeks, and <<he>> kisses you. <<takeKissVirginity "Gwylan" "romantic">> <<His>> tongue pushes its way into your mouth as <<his>> arms wrap around you. You taste the sweet fluid flow in. <<if $transformationParts.traits.fangs isnot "disabled">> <<set $sexRitual.arousal += 2>> <<His>> tongue continues to explore, running against your fangs. <</if>> <<He>> withdraws, <span class="blue">a line of the fluid briefly connecting your mouths</span>. "Apologies. I got carried away." <<npcincr Gwylan lust 3>><<npcincr Gwylan dom 1>><<gglust>><<gyearning>> <br><br> Gwylan stands up and shifts around you, sitting back down behind you. <<He>> picks up the sponge and squeezes it over your head. <<else>> <<He>> holds one of the vials to your lips. It's full of shimmering purple liquid with the consistency of syrup, and tastes just as sweet. "It will take some time to work, so I have to administer it early." <<He>> sets the empty vial aside and walks around you, picking up the sponge. <<He>> squeezes it out over your head. <</if>> <br><br> <<link [[Continue (0:08)|Gwylan Ritual Wash 2]]>><<pass 8>><</link>> <br> <<if $gwylanSeen.includes("vine_bondage") and !$sexRitual.forced>> <<link [[Ask to be tied up (0:08)|Gwylan Ritual Wash 2]]>><<set $phase to "bondage">><<pass 8>><</link>> <br> <</if>><<effects>><<run statusCheck("Gwylan")>><<set _tf to checkTFparts()>><<hallucinogen 10>> <<if C.npc.Gwylan.penis is "none" and C.npc.Gwylan.strapons?.length>> <<npcstrapon 0>> <</if>> <<if $phase is "bondage">> <<switch $speech_attitude>> <<case "meek">>"Um, Gwylan... Would it be okay if I asked you to tie me up again?" you ask. <<case "bratty">>"Hey, can you tie me up again?" you ask. <<default>>"Gwylan, would you mind tying me up again?" you ask. <</switch>> <<if !$gwylanSeen.includes("requested_bondage")>> <<run $gwylanSeen.pushUnique("requested_bondage")>> <<switch $speech_attitude>> <<case "meek">>"It felt really good." <<case "bratty">>"Not gonna lie, it was pretty hot." <<default>>"It was surprisingly fun." <</switch>> <br><br> The sponge stills against you for a moment. "You enjoyed it that much? If that's where your proclivities lie, I'm happy to oblige. That's no excuse to miss rituals again, though! Ask, don't force my hand." <<He>> lightly bops you on the head with the sponge<<if $gwylanSeen.includes("partners")>>, then kisses your cheek.<</if>>. <<else>> <br><br> "Of course," Gwylan says, sounding amused. "You certainly know what you like." <<if $gwylanSeen.includes("partners")>><<He>> kisses your cheek.<</if>> <</if>> <</if>> Gwylan begins to hum as <<he>> washes you. <<if $sexRitual.forced>> The vines binding your limbs release them, one at a time. Gwylan washes each thoroughly before dumping a pungent substance into the tub. As it sizzles pleasantly against your skin, the vines wind around your ankles and shackle them together before snaking their way towards your wrists. They lash your wrists together in front of your body. Your movement is restricted, but it's comfortable. Gwylan rifles <<his>> hands through your hair. <<feetwear 50>> <<else>> <<He>> lifts your arms and legs one by one, washing each, before pouring in a pungent green ooze. It sizzles against your skin pleasantly. <<His>> hands then rifle through your hair. <</if>> <<if _tf.wolfEars or _tf.foxEars>> <<set $sexRitual.arousal += 2>> <<He>> pays special attention to your <<if _tf.wolfEars>>wolf<<else>>fox<</if>> ears, rubbing the inside with <<his>> thumb. <<if $sexRitual.forced>>It feels good, despite the circumstances.<<else>>It fills you with bliss.<</if>> <<npcincr Gwylan lust 1>><<glust>> <<elseif _tf.catEars or _tf.cowEars>> <<He>> gently strokes your <<if _tf.catEars>>cat<<else>>cow<</if>> ears, spending some time lost in their softness. <<elseif _tf.demonHorns or _tf.cowHorns>> <<He>> inspects your horns, letting one poke <<his>> finger. <<elseif _tf.angelHalo>> <<He>> runs <<his>> hands along the rim of your halo, before petting your head underneath. <<elseif _tf.fallenAngelHalo>> <<He>> carefully moves the pieces of your halo enough for <<him>> to pet your head. <<else>> <<He>> starts to pet your head idly. <</if>> <<trauma -6>><<ltrauma>> <br><br> <<if numberOfEarSlime()>> <<if $parasite.left_ear.name is "slime" and $parasite.right_ear.name is "slime">> "You have something in your ears." <<elseif $parasite.left_ear.name is "slime">> "You have something in your left ear." <<else>> "You have something in your right ear." <</if>> <<He>> takes a closer look. <<if !$gwylanSeen.includes("ear_slime")>> "Oh my." <span class="purple">You feel the <<pluralise numberOfEarSlime() "slime">> wriggle.</span> "This may bring complications, but there's nothing to be done about it now. <span class="blue">We'll talk about it later. I'll be able to help when we have more time.</span>" <<elseif $hypnosis_traits.silence>> "<<if $parasite.left_ear.name is "slime" and $parasite.right_ear.name is "slime">>The slimes<<else>>The slime<</if>> may have caused us issues. It's fortunate we silenced <<if $parasite.left_ear.name is "slime" and $parasite.right_ear.name is "slime">>them<<else>>it<</if>>." <<else>> "Right. The <<pluralise numberOfEarSlime() "slime">>. This may cause complications, so be prepared." <</if>> <<set $gwylanSeen.pushUnique("ear_slime_intro")>> <br><br> <</if>> <<His>> hands move lower, washing your back. <<if _tf.angelWings or _tf.fallenAngelWings or _tf.demonWings or _tf.birdWings>> <<He>> carefully stretches out each of your wings, washing and patting them down. <</if>> They move lower again and <<he>> washes your <<bottom>>, before wrapping <<his>> arms around you to wash your <<genitals 2>>. <<if _gwylanStatus.includesAny("dom", "lust")>> <<set $sexRitual.arousal += 2>> <<His>> head rests on your shoulder. <<if $sexRitual.forced>> <<He>> gropes and fondles you, the sponge abandoned entirely. Your body reacts to <<his>> touch, and you flush with arousal. <<else>> You notice the sponge float to the top of the water, but Gwylan keeps rubbing. <<Hes>> just using <<his>> hands. <br><br> <<He>> gropes and fondles you, looking pleased as you show signs of arousal. <</if>> <<His>> humming is replaced by deep but steady breathing. <<arousal 1000 "genitals">><<ggarousal>> <<if $arousal gte $arousalmax>> <<set $sexRitual.arousal += 2>> <br> <<orgasm>> Gwylan giggles. "Try to save some for me." <<npcincr Gwylan lust 3>><<gglust>> <</if>> <<else>> All the while, <<he>> continues humming. <<arousal 500 "genitals">><<garousal>> <</if>> <br><br> You feel a warmth start to spread through your whole body, starting in your core and reaching your fingers and toes. You let out a long sigh. <<drugs 240>><<ggdrugged>> <br><br> "It's starting to kick in. You're ready." Gwylan stands up and rinses the soap and reagents from your body with the hose. Once <<hes>> finished, <<he>> grabs a pair of towels <<if _gwylanStatus.includesAny("aroused", "lust") or $gwylanSeen.includes("romance")>> and rubs you down one last time before helping you dry off. <<else>> and starts helping you dry off. <</if>> <br><br> <<if $phase is "bondage">> <<set $sexRitual.bondage to true>> <<He>> blindfolds you. Vines wind around your ankles and shackle them together before snaking their way towards your wrists. They lash your wrists together in front of your body. <<facewear 5>><<feetwear 50>> <br><br> <</if>> <<if $sexRitual.canPenetrate>> <<if _gwylanStatus.includes("heat") and !($sexRitual.virginity.length and $sexRitual.virginityCanTake) and $angel lt 6>> <<His>> hands grip you tightly, and you feel <<his>> hot breath on your skin. "I would normally leave the choice to you. Forgive me. <<if $player.penisExist>> <span class="pink">I need to feel you inside of me.</span>" <<else>> <span class="pink">I need to be inside you.</span>" <</if>> <br><br> <span class="pink">Your head feels too fuzzy to protest.</span> <br><br> <<link [[Next|Gwylan Ritual Drugged]]>><<set $phase to "noComment">><<set $sexRitual.target to "gwylanChoice">><</link>> <br> <<else>> <<if $sexRitual.virginity.length and $sexRitual.virginityCanTake>> <<if $gwylanSeen.includes("virgin")>> Gwylan hesitates. <<if $sexRitual.virginity.includes("temple")>> "You're promised to someone. Vows are powerful things. <<else>> "<span class="green">You're still a virgin.</span> <</if>> <<else>> Gwylan slows to a stop, as if suddenly unsure of <<himself>>. "I noticed something. <<if $sexRitual.virginity.includes("temple")>> Your ring. You're promised to someone. Vows are powerful things. <<if $sexRitual.virginity.includesAny("penis", "vagina")>> <span class="green">You're a virgin, too.</span> <</if>> <<else>> <span class="green">You're a virgin.</span> <</if>> <</if>> I can't knowingly take that from you." A pause. "<span class="blue">Not without your permission.</span> I'll let you decide. <<set $gwylanSeen.pushUnique("virgin")>> <<else>> "I'll let you decide. There are different ways we can fulfil the requirements of the ritual. <</if>> <<if C.npc.Gwylan.penis is "none" and C.npc.Gwylan.strapons?.length and !$player.penisExist>> I do have the <<pluralise C.npc.Gwylan.strapons.length "strap-on">> you gifted me, so we could achieve penetration that way. <</if>> Direct fluid transfer from you to me is most effective, <<if $sexRitual.bondage>> but if that fails, I can consume the collected poison from the ivory bowl. <<else>> but if that fails..." <<He>> nods to the ivory bowl. "I can consume the poison from there instead. <</if>> Otherwise, I can take your fluids <<set _optionsPenetrate to ["orally"]>> <<if $player.penisExist and C.npc.Gwylan.vagina isnot "none">> <<set _optionsPenetrate.push("vaginally")>> <</if>> <<if $settings.analEnabled and $player.penisExist>> <<set _optionsPenetrate.push("anally")>> <</if>> <<print formatList(_optionsPenetrate, "or", true)>>." <br><br> Your head feels just clear enough to make a choice, but your grip is slipping fast. You'll have to decide now. <br><br> /* ToDo: Gwylan - ask Gwylan to wear the brown fox mask */ <<if hasSexStat("promiscuity", 3)>> <<link [[Request oral|Gwylan Ritual Drugged]]>><<set $phase to "oral">><<set $sexRitual.target to "oral">><<if $sexRitual.virginityCanTake>><<set $sexRitual.virginityProtected to true>><</if>><</link>> <br> <<else>> <<insufficientStat "promiscuity" "to request oral">> <br> <</if>> <<if hasSexStat("promiscuity", 4)>> <<if $player.penisExist>> <<if $sexRitual.virginity.includes("penis")>> <<link [[Give Gwylan permission to take your penile virginity|Gwylan Ritual Drugged]]>><<set $phase to "virginity">><<set $sexRitual.target to "gwylanPenetration">><</link>> <br> <<if hasSexStat("promiscuity", 3)>> <<link [[Tell Gwylan you actively want <<him>> to take your penile virginity|Gwylan Ritual Drugged]]>><<set $phase to "virginityRequest">><<set $sexRitual.target to "gwylanPenetration">><<npcincr Gwylan lust 10>><<npcincr Gwylan dom 4>><</link>><<promiscuous3>><<ggglust>><<ggyearning>> <br> <</if>> <<else>> <<link [[Request for Gwylan take your fluids directly through intercourse|Gwylan Ritual Drugged]]>><<set $phase to "penetration">><<set $sexRitual.target to "gwylanPenetration">><</link>> <br> <</if>> <</if>> <<if C.npc.Gwylan.penis isnot "none" or C.npc.Gwylan.strapons?.length>> <<if $player.vaginaExist>> <<if $sexRitual.virginity.includes("vagina")>> <<link [[Give Gwylan permission to take your vaginal virginity|Gwylan Ritual Drugged]]>><<set $phase to "virginity">><<set $sexRitual.target to "playerVaginal">><</link>> <br> <<if hasSexStat("promiscuity", 3)>> <<link [[Tell Gwylan you actively want <<him>> to take your vaginal virginity|Gwylan Ritual Drugged]]>><<set $phase to "virginityRequest">><<set $sexRitual.target to "playerVaginal">><<npcincr Gwylan lust 10>><<npcincr Gwylan dom 4>><</link>><<promiscuous3>><<ggglust>><<ggyearning>> <br> <</if>> <<else>> <<link [[Request for Gwylan to fuck you vaginally|Gwylan Ritual Drugged]]>><<set $phase to "penetrationPlayer">><<set $sexRitual.target to "playerVaginal">><</link>> <br> <</if>> <<if $settings.analEnabled>> <<link [[Request for Gwylan to fuck you anally|Gwylan Ritual Drugged]]>><<set $phase to "penetrationPlayer">><<set $sexRitual.target to "playerAnal">><</link>> <br> <</if>> <</if>> <</if>> <<else>> <<insufficientStat "promiscuity" "to request intercourse">> <br> <</if>> <<link [[Request no penetration|Gwylan Ritual Drugged]]>><<set $phase to "noPen">><<npcincr Gwylan lust 1>><<set $sexRitual.virginityProtected to true>><<set $sexRitual.target to "gwylanChoice">><</link>><<glust>> <br> <<link [[Allow Gwylan to choose|Gwylan Ritual Drugged]]>><<set $phase to "gwylanChoice">><<set $sexRitual.target to "gwylanChoice">><</link>> <br> <</if>> <<else>> <<link [[Next|Gwylan Ritual Drugged]]>><<set $phase to "noComment">><<set $sexRitual.target to "gwylanChoice">><</link>> <br> <</if>><<effects>><<run statusCheck("Gwylan")>><<set _tf to checkTFparts()>><<hallucinogen 100>><<drugs 50>> <<if $phase is "oral">> <<switch $speech_attitude>> <<case "meek">>"L-let's just stick to oral," you barely manage to say. <<case "bratty">>"Oral, as long as you don't bite," you barely manage to say. <<default>>"Oral, please," you barely manage to say. <</switch>> <br><br> <<if $sexRitual.bondage>> "It's what I'm best at," Gwylan agrees. <<else>> <<He>> nods. "It's what I'm best at." <</if>> <<elseif $phase is "virginity">> <<switch $speech_attitude>> <<case "meek">>"G-go ahead, I don't mind," <<case "bratty">>"I know what I'm in for. Don't hold back," <<default>>"Let's do this properly," <</switch>> you say dreamily as your mind slips into the blissful haze. <br><br> <<if $sexRitual.forced>> <<if $sexRitual.virginity.includesAny("penis", "vagina")>> There's a pause. "I'll admit, I'm surprised you're open to the idea, given how you've been avoiding our ritual," Gwylan says. "Thank you for trusting me. I'll remember this." <<else>> "Thank you," Gwylan replies solemnly. <</if>> <<elseif $sexRitual.bondage>> <<if $sexRitual.virginity.includesAny("penis", "vagina")>> "Thank you for trusting me," Gwylan says. "I'll remember this." <<else>> "Thank you," Gwylan replies solemnly. <</if>> <<else>> <<if $sexRitual.virginity.includesAny("penis", "vagina")>> Gwylan pulls <<his>> hat down to cover <<his>> face. "Thank you for trusting me. I'll remember this." <<else>> Gwylan nods solemnly. "Thank you." <</if>> <</if>> <<elseif $phase is "virginityRequest">> <<set $sexRitual.arousal += 5>> <<switch $speech_attitude>> <<case "meek">>"It's okay, I want you to take my virginity," <<case "bratty">>"I could think of worse people to lose my virginity to. Let's do it," <<default>>"I want you to take my virginity," <</switch>> you say suggestively as your mind slips into the blissful haze. <<promiscuity3>> <<if $sexRitual.forced>> There's a pause. "You shouldn't say such things, not to someone like me," Gwylan says. "If this is really what you want... you have a strange way of showing it, given how you've been avoiding our ritual." <<else>> <<if $sexRitual.bondage>>There's a pause.<<else>>Gwylan pulls <<his>> hat down to cover <<his>> face.<</if>> "You shouldn't say such things, not to someone like me. If this is really what you want..." <</if>> <<elseif $phase is "penetrationPlayer">> <<switch $speech_attitude>> <<case "meek">>"I just need to... finish, right? It would be easier for me if you, you know...<<if $sexRitual.target is "playerAnal" and $player.vaginaExist>> Um, but in the other one...<</if>>" <<case "bratty">>"I just need to... finish, yeah? That would be easiest if you... you know. Fucked me. <<if $sexRitual.target is "playerAnal" and $player.vaginaExist>>In the ass.<</if>>" <<default>>"I don't mind being direct. If I just need to finish, it would be easier with <<if $sexRitual.target is "playerAnal" and $player.vaginaExist>>anal <</if>>penetration." <</switch>> You barely manage to get your thoughts out coherently. <br><br> <<if $sexRitual.bondage>> "If you're sure," Gwylan says. <<else>> Gwylan nods. "If you're sure." <</if>> <<elseif $phase is "noPen">> <<switch $speech_attitude>> <<case "meek">>"No penetration... please," you barely manage to say. <<case "bratty">>"No... no holes, please," you barely manage to say. <<default>>"No penetration, please," you barely manage to say. <</switch>> <<if $sexRitual.bondage>> There's a moment's pause. "Ah," Gwylan says suddenly. "Yes, of course. Apologies, I forgot you couldn't see me nod." <<He>> chuckles softly. <<else>> <<He>> nods. <</if>> <<elseif $phase is "gwylanChoice">> You don't feel coherent enough to make a decision. "Just... do what you need to do," you say as you slip into a blissful haze. <br><br> <<if $sexRitual.bondage>> After a moment's pause, Gwylan hums neutrally. <<else>> Gwylan frowns, but nods. <</if>> <</if>> <<if _gwylanStatus.includesAny("aroused", "lust")>> <<set $sexRitual.arousal += 2>> <<He>> finishes drying you off, but <<his>> hands linger on you. <<if $sexRitual.bondage>> Despite the blindfold, you can feel <<his>> eyes on you. <<else>> <<His>> gaze on you is full of poorly-concealed desire. <<He>> tosses the towels aside. <</if>> <<elseif $sexRitual.bondage>> <<He>> finishes drying you off and tosses the towels aside. <<else>> You finish drying off, and <<he>> takes the towels from you. <</if>> <br><br> <<if $sexRitual.bondage>> Gwylan stops humming. You strain to hear, but even the sounds of the forest have quieted. For a few moments, you stand alone, naked and deprived of all your senses. You're unable to tell what Gwylan is doing, or where <<he>> is, until you feel a hand against your chest. <<He>> presses against you, guiding you back towards the quilts once more. <<His>> other hand cradles your cheek, and <<he>> resumes humming. <<His>> fingers brush over the cloth shrouding your eyes. <br><br> <span class="forest-green">The darkness behind your blindfold is pierced by the hues of the deep forest.</span> Spots of green light fade in and out of your vision, a fractal folding in on itself again and again. The shifting pattern finally splits apart, forming the outlines of three glowing green eyes. They look inhuman, ethereal and foxlike. <br><br> With a single finger, Gwylan traces a complex shape against your breastbone that ends with an upward flourish. <<else>> <<He>> holds up a single finger. <<He>> slowly moves it to the left, then to the right. Your eyes instinctively follow it. <br><br> <span class="forest-green">Your peripheral vision is clouded by the hues of the deep forest.</span> The glow filling the garden recedes, and your vision along with it. <<if Time.dayState is "night">> Even for night time, everything around you seems darker than normal. <<else>> The day's natural light is gone. <</if>> You're alone in darkness, Gwylan's hum your only company, until a new light flickers into being at the center of your vision. <<if $gwylanTalked.includes("jasper")>> It's <<his>> jasper pendant. It swings left and right, just barely illuminating Gwylan's face. <<else>> It's a reddish gem, shaped like a flame. Or perhaps a fox's tail. It swings left and right from a pendant, just barely illuminating Gwylan's face. <</if>> <<if $hypnosis_traits.devotion gte 4>> <span class="purple">You're unable to look away.</span> <</if>> <br><br> Gwylan holds up a finger, and the pendant vanishes, leaving the light behind on <<his>> fingertip. Once again, it moves left, then right. It looks like a firefly. <<He>> traces a complex shape in the air, your eyes following along as its afterimage lingers. It ends with an upwards flourish, leaving the light dangling just above your head. <</if>> <br><br> <<link [[Next|Gwylan Ritual Hypnosis]]>><<set $phase to 0>><</link>> <br><<effects>><<run statusCheck("Gwylan")>><<set _tf to checkTFparts()>><<hallucinogen 50>><<drugs 30>> <b>"<span class="witch">Sit.</span>"</b> <br><br> <<gwylanHypnoCanvas>> The word hammers into your skull like a battering ram as Gwylan's finger flicks down. Your knees buckle, bringing you to a kneel. "<<pcPetname "Gwylan" "good">>." <<if $auriga_scar gte 1>> <span class="purple">Your scar sends a sharp pain through your chest in defiance.</span> <<ggpain>><<ggtrauma>><<pain 12>><<trauma 12>><<gwylanPurgeEffect -1>> <br><br> <<He>> places a hand over it, and the pain quickly fades. "Be calm, wounded heart. I will bring you peace." <<pain -12>><<llpain>> <<else>> <<gwylanHypnoName "cap">>'s voice fills you with satisfaction and relief. <<stress -12>><<llstress>> <</if>> <br><br> <<His>> hands cup your cheeks. <<He>> starts to whisper, each word tickling your ears.<br> "<i>You are the wind. Exhale.</i>"<br> You push all the air out of your lungs as best you can.<br> "<i>You are the leaves. Breathe in.</i>"<br> You take a deep breath. The trees tremble as the wind picks up.<br> "<i>You are the trunk. Endure.</i>"<br> You freeze. You don't know for how long. You feel dizzy. Something deep below the earth trembles, or perhaps you're shaking. <br><br> <<gwylanHypnosis "devotion" 5>> <br><br> <<set _visionDiffReduction to ($hypnosis_traits.devotion * 50) || 1>> <<set _visionDiffMin to 950 - _visionDiffReduction>><<set _visionDiffMax to 1250 - _visionDiffReduction>> <<link [[Keep holding your breath|Gwylan Ritual Hypnosis 2]]>><<set $phase to 1>><</link>><<willpowerdifficulty _visionDiffMin _visionDiffMax>> <br> <<link [[Breathe out|Gwylan Ritual Hypnosis 2]]>><<npcincr Gwylan lust 1>><<set $phase to 2>><</link>><<glust>> <br><<effects>><<run statusCheck("Gwylan")>><<set _tf to checkTFparts()>><<hallucinogen 10>><<drugs 10>> <<if $phase is 1>> You keep still. Your legs begin to tingle until you can't feel them anymore. You're being filled with something. Something vile, and the wrong kind of empty. <<if $willpowerSuccess>> <<set $gwylanSeen.pushUnique("vision")>><<set $sexRitual.vision to true>><<set $sexRitual.purge += 2>> It's taking root in you, and you want it gone. However, something stirs in your mind, and you realise that this is why you're here. <span class="green">You endure.</span> <br><br> You don't need to breathe. You feel the wind blow through you. Your legs are the roots, your arms the branches, your fingers the leaves. Birds nest in your branches. Serpents slither along your feet. You are nourished by the land and sun, even as this vile energy trickles into you. <span class="purple">To stop taking in the corruption is to stop living.</span> You remain perfectly frozen in place as you fill with poison. <br><br> You're no longer in the garden, and Gwylan is no longer here. <<if $sexRitual.bondage>>The three glowing green eyes wink into nothingness. <</if>>Your vision rushes between the trees, further and deeper into the forest. You rush past a cabin, past a cave. You follow a river, and dive into the lake. You pass through ruins, <<if $wraith>> <<switch $wraith.state>> <<case "haunt">> where a beautiful pale figure's red eyes turn to meet yours. It reaches out to you with a blackened, clawed hand. <<case "despair">> where a beautiful pale figure's empty eyes meet yours. It reaches out to you longingly. <<default>> where a beautiful pale figure sleeps, suspended in the water. Its blue eyes open to meet yours, and its head tilts at you curiously. It reaches out to you. <</switch>> Before it can touch you, you are pulled further and further down. <<else>> and are pulled further and further down. <</if>> <br><br> There is something below the lake. The sickening emptiness filling you is here. It's all here, every bit of wretched nothing. There is nothing below the lake. <span class="red">Nothing reaches out and touches you.</span> <<gggawareness>><<lllpurity>><<gwylanPurgeEffect 2>><<awareness 50>><<purity -50>> <br><br> "<i>You are the lake. Expel.</i>"<br> Gwylan's voice mercifully pulls you out. You let out your long-held breath, lungs filling with sweet air. "You're strong. Well done. Don't worry, we'll get it all back out of you." <<Hes>> cradling your head against <<his>> lightly-freckled <<if C.npc.Gwylan.breastsize gte 3>><<print C.npc.Gwylan.breastsdesc>><<else>>chest<</if>>. <<if _gwylanLovePercent gte 85>> <<He>> kisses the top of your head. <<else>> <<He>> rubs the top of your head. <</if>> <<trauma -12>><<lltrauma>><<npcincr Gwylan dom 1>><<gyearning>> <<else>> <span class="red">Your body can't take it.</span> You wretch and cough, but Gwylan quickly kneels and cradles your head.<br> "Shh, shh. That will do. <i>You are the lake. Expel.</i>"<br> You catch your breath, and it returns to an even pace. <<stress 6>><<willpower 6>><<gstress>><<gwillpower>> <</if>> <<else>> <<set $sexRitual.visionForced to true>><<set $sexRitual.purge += 1>> <<if $sexRitual.bondage>> Red spots swim behind your eyelids, blotting out the three-eyed vision. <</if>> You exhale and gasp for fresh air. <span class="red">The air tastes foul, as if you were breathing in smoke and ash. It burns. You can't help but cough.</span> <<if $sexRitual.bondage>> With each cough, the red spots fade. Gwylan cradles your head until it subsides. <<His>> touch is soothing. <<else>> Each cough briefly returns your vision, but Gwylan cradles your head until it subsides. <<His>> face remains a patient smile. <</if>> "Forgive me for this. You must endure, else the concord will not be fulfilled. <i>You are the leaves. Breathe in.</i>"<br> You breathe in again.<br> "<i>You are the trunk. <b><span class="witch">Endure.</span></b></i>" <br><br> You lock the wretched air in your lungs. It spreads, making your whole body feel weak. You can't take it. You open your mouth, but <span class="red">you can't exhale.</span> Gwylan's hand is around your throat, barely squeezing. <span class="red">Your mind fills with visions of the forest, every tree stripped of leaves and withering in an instant. It shifts to a pack of ravenous wolves, foaming at the mouth, pushed out of their home, now seeking prey within civilisation.</span> You feel on the verge of collapse. <<gwylanPurgeEffect>> <br><br> "<i>You are the lake. Expel.</i>"<br> <<if $sexRitual.bondage>> Just as you feel on the verge of blackout, <<he>> releases you. You gasp, sucking in a lungful of air before your mind returns to numbness. The three glowing green eyes emerge from the blank and the dark, hovering in the recesses of your vision. <<else>> Just as Gwylan's face begins to fade away, <<he>> releases you. You gasp, your vision of the garden briefly returning again, before fading away as your mind returns to numbness. <</if>> <<pain 6>><<stress 24>><<trauma 12>><<gpain>><<ggstress>><<gtrauma>> <</if>> <<if !$sexRitual.bondage>> <br><br> <<He>> continues to hold you, <<if _gwylanStatus.includes("wantsPregnancy")>> <<his>> stare making you feel warm <<else>> <<his>> face becoming unreadable <</if>> as <<he>> reaches for another vial. <</if>> <br><br> <<link [[Next|Gwylan Ritual Hypnosis 3]]>><<pass 1>><</link>> <br><<effects>><<run statusCheck("Gwylan")>><<set _tf to checkTFparts()>><<hallucinogen 10>> <<if $sexRitual.bondage>>You're dimly aware of another glass vial nudging your lips.<</if>> <b>"<span class="witch">Open.</span>"</b><br> You open your mouth.<br> "<i>You are the roots. Drink.</i>"<br> <<if $player.penisExist and $player.penissize lt 0>> <<He>> pours two vials full of <<= $sexRitual.bondage ? "sweet" : "thin pink">> fluid into your mouth. You swallow obediently. <<drugs 240>><<ggdrugged>> <<else>> <<He>> pours the vial full of <<= $sexRitual.bondage ? "sweet" : "thin pink">> fluid into your mouth. You swallow obediently. <<drugs 120>><<gdrugged>> <</if>> <br> "<<pcPetname "Gwylan" "good">>." <<He>> pets the top of your head. You shiver in ecstasy, leaning into it <<= $sexRitual.bondage ? "blindly. Your eyes drift closed, though your vision remains unchanged" : "and closing your eyes">>. <<stress -6>><<lstress>><<arousal 50>><<garousal>> <br><br> Gwylan's humming echoes around you. A fire is lit on your cheeks as <<he>> cups your face again.<br> <<if $sexRitual.bondage>> <b>"<span class="witch">Stay with me.</span>"</b> <br><br> Gwylan's face is nearly touching yours. The three glowing eyes are seared into the back of your retinas. <<if $gwylanSeen.includes("ritual_sex")>> They're inhuman, but they show an aged wisdom. Ribbons of green light escape from their corners. <<else>> There's something different about them. They shine bright beyond measure, yet they carry an aged experience and wisdom. Green ribbons of light escape from the corners of the foxlike eyes. <</if>> You're overcome by an unspeakable lust for Gwylan. <<else>> <b>"<span class="witch">Look at me.</span>"</b><br> Your eyes flutter open. <br><br> Gwylan's face is nearly touching yours. <<if $gwylanSeen.includes("ritual_sex")>> Ribbons of green light escape from the corners of <<his>> eyes, which now show an aged wisdom. <<else>> There's something different about it. <<His>> face looks beautiful beyond measure, yet there's an aged experience and wisdom behind <<his>> eyes, where green ribbons of light now escape from the corners. <</if>> You're overcome by an unspeakable lust for <<him>>. <</if>> <span class="lewd"> <<if $player.penisExist>> <<set $femaleclimax to 0>><<semenvolume 4>><<semen_amount 20>> Your <<penis 1>> grows erect. <<if $player.penissize lte 0>> <<set $sexRitual.penissize to $player.penissize>> <<set $player.penissize to 1>> More erect than you thought possible. Has it grown? <</if>> Precum begins to bead at the tip. <<arousal 500 "genitals">><<ggarousal>> <br> <</if>> <<if $player.vaginaExist>> <<if $player.penisExist>> Additionally, your <<else>> Your <</if>> <<pussy 1>> becomes very wet, and your womb burns with yearning. Fluid drips to the stone below. <<arousal 500 "genitals">><<ggarousal>> <br> <</if>> </span> <<orgasmcount -5>> <br> <<if _gwylanStatus.includes("heat")>> "G-<<pcpetname "Gwylan" "good">>," <<he>> whispers. <span class="lewd"><<His>> voice <<= $sexRitual.bondage ? "is" : "and gaze are">> full of lust, too.</span> <<elseif _gwylanStatus.includesAny("aroused", "lust")>> "<<pcPetname "Gwylan" "good">>," <<he>> whispers. <span class="lewd"><<His>> voice lightly trembles with desire.</span> <<else>> "<<pcPetname "Gwylan" "good">>," <<he>> whispers. <<His>> voice makes you feel safe. <</if>> <<He>> is the only thing in your mind. Your worries and doubts yield to <<his>> all-encompassing presence. <<trauma -12>><<lltrauma>> <br><br> <<if $hypnosis_traits.devotion gte 4>> <<set $sexRitual.hypnosis to "player">> <</if>> <<set _petplayChance to 0>> <<if $worn.neck.name is "familiar collar" and $worn.neck.cursed is 1>> <<set _petplayChance to 100>> <<elseif _gwylanStatus.includesAny("dom", "lust")>> <<if $wolfgirl gte 6 or $cat gte 6 or $fox gte 6>> <<set _petplayChance += 20>> <</if>> <<set _petplayChance += Math.floor((C.npc.Gwylan.lust + C.npc.Gwylan.dom) / 2)>> <<if $worn.neck.collared is 1>> <<set _petplayChance += 20>> <<if $worn.neck.type.includes("leash")>> <<set _petplayChance += 10>> <</if>> <</if>> <<if $hypnosis_traits.devotion>> <<set _petplayChance += $hypnosis_traits.devotion * 10>> <</if>> <</if>> <<if $worn.neck.name is "familiar collar" and $worn.neck.cursed is 1>> You feel a tug from your collar as your leash <<= $sexRitual.bondage ? "manifests" : "appears in Gwylan's hand">>. <<attach_leash true>><<set $sexRitual.leash to true>> <<set $sexRitual.petplay to 1>> <<set $gwylanSeen.pushUnique("petplay")>> <<elseif $worn.neck.collared is 1>> <<set $sexRitual.arousal += 1>> <<if !$worn.neck.type.includes("leash") and C.npc.Gwylan.lust gte 15 and _petplayChance isnot 0>> You feel a tug from your collar and hear a small click. <span class="lewd"><<Hes>> attached a leash to it.</span> <<attach_leash true>><<set $sexRitual.leash to true>> <<elseif $worn.neck.type.includes("leash")>> <<He>> gently tugs on your leash. <</if>> <<set $sexRitual.petplay to 1>> <<set $gwylanSeen.pushUnique("petplay")>> <<elseif !$worn.neck.cursed and (_petplayChance gte random(1, 100))>> <<set $sexRitual.arousal += 2>> <<if $worn.neck.name is "naked">> You feel something click around your neck. <<else>> You feel your $worn.neck.name lift away, and hear a click as something takes its place. <<neckundress "gwylanRitual">> <</if>> <<neckwear 21>><<set $sexRitual.collared to true>> <span class="lewd">It's a collar with a leash,</span> and you're gently tugged by it. <<set $sexRitual.petplay to 1>> <<set $gwylanSeen.pushUnique("petplay")>> <</if>> <<if $sexRitual.bondage>> Gwylan's voice floods through you. <<else>> Gwylan motions with <<his>> right hand towards the quilts. <</if>> <br> <b>"<span class="witch">Lay down.</span>"</b> <br><br> <<link [[Lay on your back|Gwylan Ritual Rose]]>><<pass 1>><<set $phase to 1>><</link>> <br> <<if $wolfgirl gte 6>> <<link [[Roll over like a dog|Gwylan Ritual Rose]]>><<pass 1>><<set $phase to 2>><<sub 1>><<npcincr Gwylan lust 1>><<set $sexRitual.hypnosis to "player">><</link>><<wolfgirl>><<glust>> <<gwylanHypnoNote>> <br> <<elseif hasSexStat("deviancy", 2)>> <<link [[Roll over like a dog|Gwylan Ritual Rose]]>><<pass 1>><<set $phase to 2>><<sub 1>><<npcincr Gwylan lust 1>><<set $sexRitual.hypnosis to "player">><</link>><<deviant2>><<glust>> <<gwylanHypnoNote>> <br> <<else>> <<insufficientStat "deviancy" "to act like a dog">> <</if>><<effects>><<run statusCheck("Gwylan")>><<set _tf to checkTFparts()>><<hallucinogen 10>><<drugs 10>> <<canvas-model-temporary-effect "petals">> <<if $phase is 2>> <<set $sexRitual.arousal += 4>> <<if $sexRitual.bondage>> You sit up on your knees and bend at the waist, stretching your bound arms out in front of you like a dog ready to play. You roll over on your back onto the quilts. <<else>> You crawl over to the quilts on all fours and roll over. <</if>> They're incredibly soft, and you sink down a little bit. There must be a full bed built into the floor. You bend your elbows and knees in, exposing your <<bellyDescription "pc">> to Gwylan <<= $sexRitual.bondage ? "in a docile display" : "like a dog">>. <<if $wolfgirl gte 6>> You even bark for effect. <<elseif $cat gte 6>> You even try to bark for effect, although it comes out more like a sharp meow. <<elseif $cow gte 6>> You even try to bark for effect, although it comes out more like a quick moo. <<elseif $harpy gte 6>> You even try to bark for effect, although it sounds more like a brief chirp. <<elseif $fox gte 6>> You even try to bark for effect, although it's more of a yip. <<else>> You even bark for effect, although you're not sure if you did it willingly. <</if>> Gwylan happily indulges your behavior. <<He>> rubs and scratches your belly, causing <<= $sexRitual.bondage ? "one bound leg to kick, the vined shackles swinging between your ankles" : "your leg to kick">>. <<if $wolfgirl gte 6>> <<stress -12>><<llstress>> <br><br> <<else>> <<deviancy2>> <</if>> <<if $sexRitual.hypnosis is "player">> <<gwylanHypnosis "devotion" 2>> <br><br> <</if>> <<elseif $sexRitual.hypnosis is "player">> <<if $sexRitual.bondage>> You stretch your bound legs out and lie back on the quilts. <<else>> You trudge over to the quilts and lie on your back. <</if>> They're incredibly soft, and you sink down a little bit. There must be a full bed built into the floor. <br><br> <<hypnosisText "You automatically bend your knees and elbows up like a dog on its back, exposing your <<bellyDescription 'pc'>> to Gwylan.">> <<if $wolfgirl gte 6>> You even bark for effect. <<elseif $cat gte 6>> You even try to bark for effect, although it comes out more like a sharp meow. <<elseif $cow gte 6>> You even try to bark for effect, although it comes out more like a quick moo. <<elseif $harpy gte 6>> You even try to bark for effect, although it sounds more like a brief chirp. <<elseif $fox gte 6>> You even try to bark for effect, although it's more of a yip. <<else>> You even bark for effect, although you're not sure if you did it willingly. <</if>> Gwylan happily indulges your behavior. <<He>> rubs and scratches your belly, causing <<= $sexRitual.bondage ? "one bound leg to kick, the vined shackles swinging between your ankles" : "your leg to kick">>. <br><br> <<else>> <<if $sexRitual.bondage>> You stretch your bound legs out and lie back on the quilts. <<else>> You trudge over to the quilts and lie on your back. <</if>> They're incredibly soft, and you sink down a little bit. There must be a full bed built into the floor. <br><br> <</if>> <<set $phase to 0>> <<if $sexRitual.bondage>> Gwylan hums softly as <<he>> continues <<his>> preparations. You think you hear the sound of candles being lit. <<He>> finally kneels next to you, <<his>> knees brushing against your side. <<if $gwylanSeen.includes("partners") and _gwylanStatus.includes("lust")>> <<set $sexRitual.arousal += 5>> <<He>> bends down, lips ghosting over your face. You smell roses as something blooms from <<his>> mouth, and the cool, velvety touch of fresh petals press into your cheek. Gwylan turns <<his>> head to the side and extricates the rose from <<his>> mouth. You hear a small hiss of pain, and a metallic scent fills your nostrils. Gwylan pushes <<his>> body against yours, pulling you into a deep kiss. <span class="red">You taste blood</span>, and you gasp into Gwylan's mouth when a thorn pricks your right cheek. <<gwylanKiss>><<gpain>><<pain 2>> <br> Petals flutter down from the ceiling. One lands on your face, and Gwylan gently brushes it aside. <<He>> swipes a finger over your cheek, collecting a droplet of your blood to join <<hers>>. <<if $worn.head.name is "naked">> <<headwear 40 "red">> <<He>> tucks the rose into your hair before kissing you again. <<else>> <<He>> kisses you again. <</if>> <<arousal 100>><<garousal>> <<set $sexRitual.roseKiss to true>><<set $gwylanSeen.pushUnique("rose_kiss")>> <<else>> <span class="red">You feel a small thorn prick your arm.</span> Gwylan swipes up a droplet of your blood with <<his>> finger. Fresh rose petals flutter down from the ceiling. <<gpain>><<pain 2>> <</if>> <<else>> You're able to see everything in the quilted room as if it was brightly lit, but the garden beyond looks pitch black. Gwylan circles you, sprinkling powder on the ground while humming softly again, regularly stopping to set down and light a candle. <<He>> finishes the loop in front of you, <<if _gwylanStatus.includesAny("aroused", "lust")>> tossing an empty container aside. <<He>> hastily drops down and crawls over you, <<his>> glowing eyes full of hunger. <<else>> setting an empty container aside. <<He>> slowly crouches down and starts to crawl over you. <</if>> <br><br> <<if $gwylanSeen.includes("partners") and _gwylanStatus.includes("lust")>> <<set $sexRitual.arousal += 5>> <<He>> opens <<his>> mouth, and the head of a white rose blooms from it. It twists as it pushes out, <span class="red">the thorns leaving streaks of blood behind on Gwylan's lips</span>. <<He>> quickly swivels <<his>> head to the left, now pursing the rose's stem sideways. <<He>> pushes <<his>> body against yours, pulling you into a deep kiss. <<gwylanKiss>><<gpain>><<pain 2>> <br> Blood is drawn up the stem. It turns the white petals scarlet. Red fumes flow from the top like blood in water, and fresh rose petals flutter down from the ceiling. Gwylan draws a cross on <<his>> right cheek with your mixed blood, <<if $worn.head.name is "naked">> <<headwear 40 "red">> tucking the rose into your hair before kissing you again. <<else>> tucking the rose into <<his>> hat before kissing you again. <</if>> <<arousal 100>><<garousal>> <<set $sexRitual.roseKiss to true>><<set $gwylanSeen.pushUnique("rose_kiss")>> <<else>> You feel a small pinch on your arm. You turn your head to see Gwylan holding a white rose, <span class="red">its thorns now dripping red</span>. Blood is drawn up the stem, turning the white petals scarlet. Red fumes flow from the top like blood in water, and Gwylan draws a cross on <<his>> right cheek with it. Fresh rose petals flutter down from the ceiling. <<gpain>><<pain 2>> <</if>> <</if>> <br><br> <<if $gwylanSeen.includes("rose_kiss")>> <<specialClothesUnlock "item" "rose">> <</if>> <<link [[Next|Gwylan Ritual Sex Select]]>><</link>> <br><<effects>><<run statusCheck("Gwylan")>><<set _tf to checkTFparts()>><<hallucinogen 2>><<drugs 2>> <<canvas-model-temporary-effect "petals">> <<if $player.penisExist>> /* Player has a penis */ <<if $sexRitual.roseKiss>> <<He>> separates after a few impassioned moments, leaving one more kiss on your neck before sitting upright to straddle you. <<else>> <<He>> straddles you and takes a deep breath. <</if>> <br><br> Your <<penis 2>> rubs against Gwylan's tummy, twitching in anticipation and leaving a shiny trail of precum on <<his>> tattoo. <<He>> takes it in <<if $player.penissize gte 3>>both hands<<else>>one hand<</if>> and begins working your shaft, lubricating it with the plentiful precum that continues to gently leak from the tip. <<if $sexRitual.hypnosis is "player">> <<hypnosisText "Continuing to act the part, you start to pant.">> <<else>> The stimulation is enough to make you <<= $sexRitual.bondage ? "moan" : "grip the quilts">>. <</if>> <<arousal 1000 "genitals">><<garousal>> <br><br> <<if $arousal gte $arousalmax>> <span class="lewd">Your back arches as you near your peak.</span> <<if _gwylanStatus.includesAny("aroused", "lust")>> <<set _skipGlow to true>> Gwylan quickly notices and pauses. <<if $sexRitual.bondage>> <<He>> seems to make a decision and continues stroking you, quickening <<his>> pace. <<else>> <<His>> eyes lock back to yours, and <<he>> seems to make a decision. With a smile, <<he>> continues stroking you, now at a faster pace. <</if>> "It's okay, let it out," <<he>> says softly. <<gwylanRitualOrgasm "player" "pre">> <<if $sexRitual.bondage>> Your cum splatters onto Gwylan's belly, triggering a response in you both. <<gwylanRitualTattooVision>> "Oh, what a mess you've made," <<he>> says. <<He>> releases your still-erect <<penis 2>> and scoops up your semen. <<He>> pops a finger between <<his>> lips, <<his>> mouth making a wet sound as <<he>> sucks it clean. <<else>> Your cum paints a trail across Gwylan's <<bellyDescription "Gwylan">>, <span class="lewd"><<his>> tattoos glowing in response</span>. "Look at the mess you made." <<He>> releases your still-erect <<penis 2>> and scoops up your semen, bringing <<his>> hand to <<his>> mouth and licking it up. <</if>> "I hope you make more."<<npcincr Gwylan lust 1>><<glust>> <<else>> <<set $sexRitual.arousal += 1>> Gwylan quickly notices and changes <<his>> grip, simply holding the tip of your <<penis 1>>. "No no, not yet," <<he>> says softly. Your toes curl, but you're just barely able to resist the orgasm. Gwylan pets your head for a while, waiting for you to cool down. "Hold on a little longer for me, dear." <<arousal -1200>><<llarousal>> <</if>> <br><br> <</if>> <<else>> /* Player does not have a penis */ <<if $sexRitual.roseKiss>> <<He>> separates after a few impassioned moments, leaving one more kiss on your neck before moving between your legs. <<else>> Gwylan positions <<himself>> between your legs and takes a deep breath. <</if>> <br><br> <<He>> caresses your <<bellyDescription "pc">>, running individual fingers over sensitive spots before they find their way to your <<pussy 1>>. <<He>> effortlessly pushes a finger in, sending a shockwave of pleasure through your whole body. <<if $sexRitual.hypnosis is "player">> <<hypnosisText "Continuing to act the part, you start to pant.">> <<else>> The stimulation is enough to make you <<= $sexRitual.bondage ? "moan" : "grip the quilts">>. <</if>> <<arousal 1000 "genitals">><<garousal>> <br><br> <<if $arousal gte $arousalmax>> <span class="lewd">Your back arches as you near your peak.</span> <<if _gwylanStatus.includesAny("aroused", "lust")>> Gwylan quickly notices and pauses. <<if $sexRitual.bondage>> <<He>> seems to make a decision and continues fingering you, quickening <<his>> pace. <<else>> <<His>> eyes lock back to yours, and <<he>> seems to make a decision. With a smile, <<he>> continues fingering you, now at a faster pace. <</if>> "It's okay, let it out," <<he>> says softly. <<gwylanRitualOrgasm "player" "pre">> Your juices cover Gwylan's hand. <<if $sexRitual.bondage>> "Oh, what a mess you've made," <<he>> says. <<He>> pops a finger between <<his>> lips, <<his>> mouth making a wet sound as <<he>> sucks it clean. <<else>> "Look at the mess you made." <<He>> brings <<his>> hand to <<his>> mouth and licks it. <</if>> "I hope you make more." <<npcincr Gwylan lust 1>><<glust>> <<else>> <<set $sexRitual.arousal += 1>> Gwylan quickly notices and stops. "No no, not yet," <<he>> says softly. Your toes curl, but you're just barely able to resist the orgasm. Gwylan pets your head for a little while, waiting for you to cool down. "Hold on a little longer for me, dear." <<arousal -1200>><<larousal>> <</if>> <br><br> <</if>> <</if>> /* If player let Gwylan decide or just requested no penetration, get target. Choices and available actions are based on Gwylan getting the player off. */ <<if !$sexRitual.target or $sexRitual.target is "gwylanChoice">> <<if $sexRitual.virginityCanTake>> <<set $sexRitual.virginityProtected to true>> <</if>> <<if $player.penisExist>> <<if C.npc.Gwylan.lust lt 20 or $brownFoxWoundedTimer>> <<set $sexRitual.target to "oral">> <<elseif C.npc.Gwylan.vagina isnot "none">> <<set $sexRitual.target to "gwylanPenetration">> <<elseif $settings.analEnabled and !$sexRitual.virginityProtected>> <<set $sexRitual.target to "gwylanPenetration">> <<else>> <<set $sexRitual.target to "oral">> <</if>> <<else>> <<if C.npc.Gwylan.lust lt 20 or $brownFoxWoundedTimer>> <<set $sexRitual.target to "oral">> <<elseif (C.npc.Gwylan.penis isnot "none" or C.npc.Gwylan.strapons?.length) and !$sexRitual.virginityProtected>> <<set $sexRitual.target to "playerVaginal">> <<else>> <<set $sexRitual.target to "oral">> <</if>> <</if>> <</if>> <<switch $sexRitual.target>> <<case "oral">> <<set $sexRitual.position to "service">> <<if $player.penisExist>> Gwylan releases your <<penis 2>> and starts to slowly run <<his>> fingers around the tip. <<He>> alternates between servicing the shaft and head. <<Hes>> precisely counting the time between each switch under <<his>> breath. <br><br> <<link [[Next|Gwylan Ritual Sex Oral]]>><</link>> <br> <<else>> <<He>> gently fingers you, slowly working <<his>> way up to pushing a second finger in. After a few moments <<he>> withdraws <<his>> fingers, and begins to rub the entrance. <<He>> gives your clit the most attention. <<He>> alternates between rubbing and fingering, precisely counting the time between each switch under <<his>> breath. <br><br> <<link [[Next|Gwylan Ritual Sex Oral]]>><</link>> <br> <</if>> <<case "gwylanPenetration">> <<if $sexRitual.petplay and !$sexRitual.virginityProtected>> <<if C.npc.Gwylan.vagina isnot "none">> <<set $sexRitual.position to "gwylanDoggyVaginal">> <<else>> <<set $sexRitual.position to "gwylanDoggyAnal">> <</if>> /* Gwylan Doggy Vaginal / Anal */ <<if $sexRitual.bondage>> Gwylan holds your leash slack in one hand, seemingly in deep thought. <<He>> suddenly dismounts and <span class="lewd">gets on all fours beneath you.</span> <<He>> tugs your leash, and you blindly fumble to mount <<him>> from behind. <<if !_skipGlow>><<gwylanRitualTattooVision>><</if>> <<else>> Gwylan holds your leash in one hand, locking eyes with you. <<He>> seems to be in deep thought. <<He>> suddenly dismounts you and <span class="lewd">gets on all fours, facing away from you.</span> <<He>> looks back and tugs your leash. Instinct overtakes you, and you mount <<him>> from behind. <<if !_skipGlow>><span class="lewd"><<His>> tattoos begin to softly glow.</span><</if>> <</if>> <br><br> <<link [[Continue|Gwylan Ritual Sex Gwylan Doggy]]>><</link>> <br> <<else>> Gwylan lifts <<himself>>, and slowly guides your penis towards <<his>> <<if C.npc.Gwylan.vagina isnot "none">> <<set $sexRitual.position to "gwylanRidingVaginal">> pussy. <<if $sexRitual.virginityProtected>> <<set $sexRitual.position to "gwylanRidingThighs">> Your head brushes against <<his>> labia, but <span class="teal"><<he>> lets it slip between <<his>> thighs instead</span>. <</if>> <<else>> <<set $sexRitual.position to "gwylanRidingAnal">> bottom. <</if>> /* Gwylan Riding Vaginal / Anal */ <<if !_skipGlow>> <<if $sexRitual.bondage>> <<gwylanRitualTattooVision>> <<else>> <span class="lewd"><<His>> tattoos begin to softly glow.</span> <</if>> <</if>> <br><br> <<if $sexRitual.virginityProtected>> <<link [[Next|Gwylan Ritual Sex Gwylan Riding Nopen]]>><</link>> <<else>> <<link [[Next|Gwylan Ritual Sex Gwylan Riding]]>><</link>> <</if>> <br> <</if>> <<case "playerVaginal">> <<if $sexRitual.petplay>> <<set $sexRitual.position to "playerDoggyVaginal">> /* Player Doggy Vaginal */ <<if $sexRitual.bondage>> Gwylan holds your leash slack in one hand, seemingly in deep thought. <<He>> suddenly climbs off you and tugs your leash. <br><br> <b>"<span class="witch">Roll over.</span>"</b> <br><br> <span class="lewd">You roll over and prop yourself up on your knees and elbows, sticking your rear out at Gwylan.</span> <<if _tf.wolfTail or _tf.catTail or _tf.cowTail or _tf.foxTail or _tf.birdTail or _tf.demonTail>> You swish your tail invitingly. <</if>> <<He>> mounts you from behind. <<if !_skipGlow>><<gwylanRitualTattooVision>><</if>> <<else>> Gwylan holds your leash in one hand, locking eyes with you. <<He>> seems to be in deep thought. <<He>> suddenly climbs off of you and tugs your leash. <br><br> <b>"<span class="witch">Roll over.</span>"</b> <br><br> <span class="lewd">You roll over, getting on all fours and sticking your rear out at Gwylan.</span> <<if _tf.wolfTail or _tf.catTail or _tf.cowTail or _tf.foxTail or _tf.birdTail or _tf.demonTail>> You swish your tail as you look back at <<him>>. <</if>> <<He>> mounts you from behind. <<if !_skipGlow>><span class="lewd"><<His>> tattoos begin to softly glow.</span><</if>> <</if>> <br><br> <<link [[Continue|Gwylan Ritual Sex Player Doggy]]>><</link>> <br> <<else>> <<set $sexRitual.position to "playerMissionaryVaginal">> /* Player Missionary Vaginal */ <<He>> takes <<his>> <<print C.npc.Gwylan.penisdesc>> in <<his>> other hand, and guides it towards your <<pussy 2>>. <<if !_skipGlow>> <<if $sexRitual.bondage>> <<gwylanRitualTattooVision>> <<else>> <span class="lewd"><<His>> tattoos begin to softly glow with the familiar green light.</span> <</if>> <</if>> <br><br> <<link [[Next|Gwylan Ritual Sex Player Missionary]]>><</link>> <br> <</if>> <<case "playerAnal">> <<set $sexRitual.position to "playerDoggyAnal">> /* Player Doggy Anal */ <<if $sexRitual.bondage>> <<if $sexRitual.petplay>> Gwylan holds your leash slack in one hand, seemingly in deep thought. <</if>> <<He>> suddenly climbs off of you <<if $sexRitual.petplay>>and tugs your leash<</if>>. <br><br> <b>"<span class="witch">Roll over.</span>"</b> <br><br> <span class="lewd">You roll over and prop yourself up on your knees and elbows, sticking your rear out at Gwylan.</span> <<if _tf.wolfTail or _tf.catTail or _tf.cowTail or _tf.foxTail or _tf.birdTail or _tf.demonTail>> You swish your tail invitingly. <</if>> <<else>> <<if $sexRitual.petplay>> Gwylan holds your leash in one hand, locking eyes with you. <<He>> seems to be in deep thought. <</if>> <<He>> suddenly climbs off of you <<if $sexRitual.petplay>>and tugs your leash<</if>>. <br><br> <b>"<span class="witch">Roll over.</span>"</b> <br><br> <span class="lewd">You roll over, getting on all fours and sticking your rear out at Gwylan.</span> <<if $sexRitual.petplay>> <<if _tf.wolfTail or _tf.catTail or _tf.cowTail or _tf.foxTail or _tf.birdTail or _tf.demonTail>> You swish your tail as you look back at <<him>>. <</if>> <</if>> <</if>> <<He>> mounts you from behind. <<if !_skipGlow>> <<if $sexRitual.bondage>> <<gwylanRitualTattooVision>> <<else>> <span class="lewd"><<His>> tattoos begin to softly glow with the familiar green light.</span> <</if>> <</if>> <br><br> <<link [[Continue|Gwylan Ritual Sex Player Doggy]]>><</link>> <br> <<default>> <span class="red">ERROR: Invalid sex position target <<= $sexRitual.target>>. Redoing passage and re-selecting targets.</span> <br><br> <<set $sexRitual.target to "gwylanChoice">> <<link [[Next|Gwylan Ritual Sex Select]]>><</link>> <br> <</switch>> <<run delete $sexRitual.canPenetrate>> <<run delete $sexRitual.virginity>> <<run delete $sexRitual.virginityCanTake>><<effects>><<run statusCheck("Gwylan")>><<set _tf to checkTFparts()>><<hallucinogen 2>><<drugs 2>> <<if _gwylanStatus.includesAny("aroused", "lust")>> Gwylan rubs <<his>> entrance, eagerly preparing it for your <<penis 2>>. <<else>> Gwylan rubs <<his>> entrance, preparing it for your <<penis 2>>. <</if>> "<i>You are the river. Pierce the earth.</i>"<br> <<switch $player.penissize>> <<case -2 -1 0 1>> <<He>> lowers <<himself>> down and your hips meet. Gwylan easily takes your whole <<penis 2>> in at once. <<case 2 3>> <<He>> lowers <<himself>> down, slowly taking all of you in. <<case 4>> <<bodyliquid "penis" "goo">> <<He>> lowers <<himself>> down, but fails to take you in, your <<penis>> sliding across <<his>> <<if $sexRitual.position is "gwylanRidingVaginal">><<bellyDescription "Gwylan">><<else>>skin<</if>>. <<if $sexRitual.bondage>> You startle as an unfamiliar fluid pours over your penis. Gwylan must have procured a bottle of lubricant. <<else>> A bottle appears in Gwylan's hand. You can't tell if <<he>> reached for it without you noticing, or if it simply appeared. <<He>> turns it over and lets its fluid cover your penis. <</if>> It's cool, but not uncomfortable. <<He>> spreads it up and down your length, before trying again. <br><br> Once again, your penis slips across <<his>> <<if $sexRitual.position is "gwylanRidingVaginal">>tummy<<else>>skin<</if>>. <<He>> takes another deep breath, leaning far <<if $sexRitual.position is "gwylanRidingVaginal">>forwards<<else>>backwards<</if>> this time. <<He>> guides the head in, and gently lowers <<himself>>, finally gaining purchase. <<He>> straightens up, and the rest of your penis slides into <<him>>. <<He>> winces and lets out a soft breath<<if !$sexRitual.bondage>>, <<his>> arms tucking up to <<his>> <<if C.npc.Gwylan.pronoun is "f">><<print $NPCList[0].breastsdesc>><<else>>chest<</if>> as <<his>> eyes widen<</if>>. <</switch>> <<if $sexRitual.position is "gwylanRidingVaginal">> <<gwylanRitualPenetrate "vagina" "penis">> <<else>> <<gwylanRitualPenetrate "anus" "penis">> <</if>> <br><br> <<switch $player.penissize>> <<case -2 -1 0 1>> <<He>> slowly grinds on you for a few moments, ensuring that you're comfortable. <<He>> places <<his>> hands on your chest as <<he>> starts to ride you. <<case 2 3>> <<He>> sits on top of you for a moment, shifting side to side and slowly grinding on you, ensuring that you're both comfortable. <<He>> places <<his>> hands on your chest as <<he>> starts to ride you. <<case 4>> <<He>> sits immobilised, trying to get used to your girth inside <<him>>. "I... knew I could take it," <<he>> says. <<He>> slowly caresses your chest, before firmly pushing against it for balance as <<he>> starts to ride you. <</switch>> <<if !$sexRitual.bondage and ["revealed", "visible"].includes(_gwylanTF.tail)>> <<if _gwylanTF.known>> You see Gwylan's tail swishing back and forth behind <<him>>, no longer hidden, and getting faster. <<elseif $sexRitual.buttplug>> <span class="lewd">You swear that you can see Gwylan's fake fox tail swishing back and forth behind <<him>>.</span> <<else>> <span class="lewd">You notice something swaying back and forth behind Gwylan. It looks like a tail. <<if _gwylanTF.tail is "visible">>You wonder how you didn't notice it before.<</if>></span> <</if>> <<set $gwylanSeen.pushUnique("gwylan_tail")>> <</if>> <<if _gwylanStatus.includesAny("aroused", "lust")>> <<set $sexRitual.speed to "fast">><<set $sexRitual.arousal += 3>> <<His>> pace is already rapid. <<Hes>> panting, taking your whole length with each movement. <<if !$sexRitual.bondage>> <<His>> eyes close, <span class="blue">cutting off part of the green glow and making you feel slightly more lucid</span>. <</if>> <<if $sexRitual.petplay>> <<He>> pulls on your leash gently. <</if>> <<sex 15 "genitals">><<ggarousal>> <<else>> <<set $sexRitual.speed to "slow">><<set $sexRitual.arousal += 1>> <<He>> starts off slow, only taking about half your length with each movement. <<if !$sexRitual.bondage>> <span class="purple"><<His>> eyes glow a little brighter, staying completely locked with yours.</span> <</if>> <<if $sexRitual.petplay>> <<He>> pulls on your leash gently. <</if>> <<sex 5 "genitals">><<garousal>> <</if>> <br><br> <<if $sexRitual.playerOrgasms gte 1>> "The connection is made, but hasn't been sealed. We need more." <br><br> <</if>> <<gwylanRitualOptions>><<effects>><<run statusCheck("Gwylan")>><<set _tf to checkTFparts()>><<hallucinogen 2>><<drugs 2>> <<He>> rubs your <<penis>> with <<his>> thighs. "<i>You are the shrooms. Release your spores.</i>" <br><br> <<switch $player.penissize>> <<case -2 -1 0 1>> <<He>> places <<his>> hands on your chest as <<he>> starts to grind on you. <<case 2 3>> <<He>> sits on top of you for a moment, shifting side to side and slowly grinding on you, ensuring that you're both comfortable. <<He>> places <<his>> hands on your chest as <<he>> starts to grind against your <<penis>>. <<case 4>> <<if $sexRitual.bondage>> <<He>> stills. Your fully-erect length pokes out between <<his>> thighs, and <<he>> reaches down to gingerly touch the head of your cock. <<else>> <<He>> looks down, seemingly intimidated by the size. <</if>> "At least I won't need to worry about it slipping in by accident." After a moment, <<he>> starts to grind against it. <</switch>> <<if !$sexRitual.bondage and ["revealed", "visible"].includes(_gwylanTF.tail)>> <<if _gwylanTF.known>> You see Gwylan's tail swishing back and forth behind <<him>>, no longer hidden, and getting faster. <<elseif $sexRitual.buttplug>> <span class="lewd">You swear that you can see Gwylan's fake fox tail swishing back and forth behind <<him>>.</span> <<else>> <span class="lewd">You notice something swaying back and forth behind Gwylan. It looks like a tail. <<if _gwylanTF.tail is "visible">>You wonder how you didn't notice it before.<</if>></span> <</if>> <<set $gwylanSeen.pushUnique("gwylan_tail")>> <</if>> <<if _gwylanStatus.includesAny("aroused", "lust")>> <<set $sexRitual.speed to "fast">><<set $sexRitual.arousal += 3>> <<His>> pace is already rapid. <<Hes>> panting, even though there's no penetration. <<if !$sexRitual.bondage>> <<His>> eyes close, <span class="blue">cutting off part of the green glow and making you feel slightly more lucid</span>. <</if>> <<if $sexRitual.petplay>> <<He>> pulls on your leash gently. <</if>> <<sex 15 "genitals">><<ggarousal>> <<else>> <<set $sexRitual.speed to "slow">><<set $sexRitual.arousal += 1>> <<if $sexRitual.bondage>> <<He>> starts off slow. <<Hes>> methodical and thorough, <<his>> attention fully fixed on you. <<else>> <<He>> starts off slow. <span class="purple"><<His>> eyes glow a little brighter, staying completely locked with yours.</span> <</if>> <<if $sexRitual.petplay>> <<He>> pulls on your leash gently. <</if>> <<sex 5 "genitals">><<garousal>> <</if>> <br><br> <<if $sexRitual.playerOrgasms gte 1>> "The connection is made, but hasn't been sealed. We need more." <br><br> <</if>> <<gwylanRitualOptions>><<effects>><<run statusCheck("Gwylan")>><<set _tf to checkTFparts()>><<hallucinogen 2>><<drugs 2>> "<i>You are the canopy. Shelter.</i>"<br> <<if C.npc.Gwylan.penissize gte 4>> <<bodyliquid "vagina" "goo">><<set _YEEEOWCH to true>> The head presses in, but the rest won't fit, and <<his>> <<npcPenis>> slips out and slides across your <<bellyDescription "pc">>. <<if $sexRitual.bondage>> <<He>> shifts above you. You startle as an unexpectedly slick finger rubs your entrance. Gwylan must have procured a bottle of lubricant. <<else>> <<He>> pauses. A bottle appears in Gwylan's hand. You can't tell if <<he>> reached for it without you noticing, or if it simply appeared. <<He>> turns it over and lets its fluid cover <<his>> <<npcPenis>>, and rubs some on your vagina as well. <</if>> It's cool, but not uncomfortable. <br><br> Once again, <<his>> <<npcPenis>> slips across your tummy. <<He>> eases two fingers into you, gently spreading you open, and tries once more. <<He>> finally gains purchase, and slowly lets the whole length glide in. <<else>> The head presses in easily, and <<he>> slowly penetrates you. <</if>> You let out another moan, the sensation amplified by whatever <<he>> had you drink. <<gwylanRitualPenetrate "penis" "vagina">> <br><br> <<if _YEEEOWCH>> <<He>> notices your continuing discomfort. <<if $sexRitual.bondage>> With one finger, <<he>> draws a new shape on your <<bellyDescription "pc">>, and the pain inside you quickly abates. <<pain -20>><<lpain>> <<else>> <<He>> raises <<his>> finger again, and draws a new shape on your <<bellyDescription "pc">>. It leaves a green trail behind, and as it fades into your skin, you feel the pain inside you quickly abating. <<pain -20>><<lpain>> <</if>> <br><br> <</if>> <<He>> stays motionless inside of you for a moment. "Are you okay? Does it<<if _YEEEOWCH>> still<</if>> hurt?" You weakly shake your head. <<He>> begins to thrust. <<if !$sexRitual.bondage and ["revealed", "visible"].includes(_gwylanTF.tail)>> <<if _gwylanTF.known>> You see Gwylan's tail swishing back and forth behind <<him>>, no longer hidden, and getting faster. <<elseif $sexRitual.buttplug>> <span class="lewd">You swear that you can see Gwylan's fake fox tail swishing back and forth behind <<him>>.</span> <<else>> <span class="lewd">You notice something swaying back and forth behind Gwylan. It looks like a tail. <<if _gwylanTF.tail is "visible">>You wonder how you didn't notice it before.<</if>></span> <</if>> <<set $gwylanSeen.pushUnique("gwylan_tail")>> <</if>> <<if _gwylanStatus.includesAny("aroused", "lust")>> <<set $sexRitual.speed to "fast">><<set $sexRitual.arousal += 3>> <<His>> pace is already rapid. <<Hes>> panting, thrusting in <<his>> whole length. <<if !$sexRitual.bondage>> <<His>> eyes close, <span class="blue">cutting off part of the green glow and making you feel slightly more lucid</span>. <</if>> <<if $sexRitual.petplay>> <<He>> pulls on your leash gently. <</if>> <<sex 15 "genitals">><<ggarousal>> <<else>> <<set $sexRitual.speed to "slow">><<set $sexRitual.arousal += 1>> <<He>> starts off slow, only inserting half of <<his>> <<npcPenis>> with each thrust. <<if !$sexRitual.bondage>> <span class="purple"><<His>> eyes glow a little brighter, staying completely locked with yours.</span> <</if>> <<if $sexRitual.petplay>> <<He>> pulls on your leash gently. <</if>> <<sex 5 "genitals">><<garousal>> <</if>> <br><br> <<if $sexRitual.playerOrgasms gte 1>> "The connection is made, but hasn't been sealed. We need more." <br><br> <</if>> <<gwylanRitualOptions>><<effects>><<run statusCheck("Gwylan")>><<set _tf to checkTFparts()>><<hallucinogen 2>><<drugs 2>> <<if ["revealed", "visible"].includes(_gwylanTF.tail)>> <<if $sexRitual.bondage>> <<if _gwylanTF.known>> You feel Gwylan's tail press against your chest. <<elseif $sexRitual.buttplug>> You feel something fluffy press against your chest. <span class="lewd">It must be Gwylan's fake tail, though it feels anything but fake as it swishes against your skin.</span> <<else>> <span class="lewd">You feel something fluffy press against your chest.</span> You ask Gwylan about it, but <<he>> doesn't answer. After a moment, it disappears. <</if>> <<else>> <<if _gwylanTF.known>> Gwylan's tail appears again. It gently sways back and forth, brushing against your chest as it raises for you. <<elseif $sexRitual.buttplug>> <span class="lewd">Gwylan's fake tail suddenly looks much less fake. You can't see it attached to anything but <<his>> tailbone. It gently sways from side to side, before lifting itself for you.</span> <<else>> You feel something fluffy against your chest. <span class="lewd">It looks like a fox tail, seemingly attached to Gwylan's tailbone.</span> <<if !$gwylanSeen.includes("gwylan_tail")>>You wonder how you didn't notice it before.<</if>> <</if>> <<set $gwylanSeen.pushUnique("gwylan_tail")>> <</if>> <</if>> <<if $sexRitual.bondage>> Gwylan reaches back and takes your penis in <<his>> hand, guiding it towards <<his>> entrance. <<else>> <<if _gwylanStatus.includesAny("aroused", "lust")>> Gwylan rubs <<his>> entrance, eagerly preparing it for your <<penis 2>>. <<else>> Gwylan rubs <<his>> entrance, preparing it for your <<penis 2>>. <</if>> You wrap your arms around <<him>>. <</if>> <br><br> <<if $sexRitual.position is "gwylanDoggyVaginal" and _gwylanStatus.includes("heat") and $settings.pregnancySpeechEnabled>> "<i>You are the river. P-pierce... pierce the...</i>"<br> <<He>> suddenly yanks your leash hard.<br> <b>"<span class="witch">Breed me.</span>"</b> <br><br> <<else>> "<i>You are the river. Pierce the earth.</i>"<br> <<He>> pulls your leash. <</if>> <<switch $player.penissize>> <<case -2 -1 0 1>> You move forward with it as Gwylan pushes back, and <<he>> easily takes your whole <<penis 2>> in at once. <<case 2 3>> You move forward with it as Gwylan pushes back, slowly inserting your <<penis>> into <<him>>. <<case 4>> You move forward with it as Gwylan pushes back, slowly inserting the head of your <<penis>> into <<him>>. You fail to fully penetrate, your <<penis>> sliding across <<his>> <<if $sexRitual.position is "gwylanRidingVaginal">><<bellyDescription "Gwylan">><<else>>ass<</if>>. Gwylan tugs your leash again, prompting you to retry. <<He>> pushes back even harder, and this time, you manage to slip into <<him>> all the way. <<He>> winces and lets out a soft grunt. <</switch>> <<if $sexRitual.position is "gwylanDoggyVaginal">> <<gwylanRitualPenetrate "vagina" "penis">> <<else>> <<gwylanRitualPenetrate "anus" "penis">> <</if>> <br><br> <<switch $player.penissize>> <<case -2 -1 0 1>> <<He>> continues pushing back against you. <<case 2 3>> <<He>> continues pushing back against you. <<case 4>> <<He>> braces <<his>> elbows on the floor, trying to get used to your girth inside of <<him>>. After a moment, <<he>> continues pushing back against you. <</switch>> <<if _gwylanStatus.includesAny("aroused", "lust")>> <<set $sexRitual.speed to "fast">><<set $sexRitual.arousal += 3>> <<Hes>> panting, taking your whole length with each thrust. <<He>> pulls on your leash to pull you towards <<him>> in time with <<his>> movements. <<sex 15 "genitals">><<ggarousal>> <<else>> <<set $sexRitual.speed to "slow">><<set $sexRitual.arousal += 1>> <<He>> starts off slow, only taking about half your length with each thrust. <<if !$sexRitual.bondage>>The green glow gets a little brighter.<</if>> <<if $sexRitual.petplay>> <<He>> pulls on your leash to pull you towards <<him>> in time with <<his>> movements. <</if>> <<sex 5 "genitals">><<garousal>> <</if>> <br><br> <<if $sexRitual.playerOrgasms gte 1>> "The connection is made, but hasn't been sealed. We need more." <br><br> <</if>> <<gwylanRitualOptions>><<effects>><<run statusCheck("Gwylan")>><<set _tf to checkTFparts()>><<hallucinogen 2>><<drugs 2>> <<He>> wraps one hand around your waist, and presses the head of <<his>> <<npcPenis>> into you. "<i>You are the canopy. Shelter.</i>"<br> <<He>> tugs your leash, pulling you back. <<if C.npc.Gwylan.penissize gte 4>> <<if $sexRitual.target is "playerVaginal">> <<bodyliquid "vagina" "goo">> <<else>> <<bodyliquid "anus" "goo">> <</if>> <<set _YEEEOWCH to true>> <<His>> <<npcPenis>> fails to penetrate and slides across your butt. <<if $sexRitual.bondage>> <<He>> shifts behind you. You startle as an unexpectedly slick finger rubs your entrance. Gwylan must have procured a bottle of lubricant. <<else>> <<He>> pauses. A bottle appears in Gwylan's hand. You can't tell if <<he>> reached for it without you noticing, or if it simply appeared. <<He>> turns it over and lets its fluid cover <<his>> <<npcPenis>>, and rubs some on your entrance as well. <</if>> It's cool, but not uncomfortable. <br><br> Once again, <<his>> <<npcPenis>> slips across your ass. <<He>> eases two fingers into you, gently spreading you open, and tries once more. <<He>> finally gains purchase, and slowly lets the whole length glide in. <<else>> <<He>> slowly penetrates you. <</if>> You let out another moan, the sensation amplified by whatever <<he>> had you drink. <<if $sexRitual.target is "playerVaginal">> <<gwylanRitualPenetrate "penis" "vagina">> <<else>> <<gwylanRitualPenetrate "penis" "anus">> <</if>> <br><br> <<if _YEEEOWCH>> <<He>> notices your continuing discomfort. <<if $sexRitual.bondage>> With one finger, <<he>> draws a new shape on your back, and the pain inside you quickly abates. <<pain -20>><<lpain>> <<else>> <<He>> raises <<his>> finger again, and draws a new shape on your back. It leaves a green trail behind, and as it fades into your skin, you feel the pain inside you quickly abating. <<pain -20>><<lpain>> <</if>> <br><br> <</if>> <<He>> stays motionless inside of you for a moment. "Are you okay? Does it<<if _YEEEOWCH>> still<</if>> hurt?" You weakly shake your head, and <<he>> begins to thrust. <<if _gwylanStatus.includesAny("aroused", "lust")>> <<set $sexRitual.speed to "fast">><<set $sexRitual.arousal += 3>> <<His>> pace is already rapid. <<Hes>> panting, thrusting in <<his>> whole length. <<if $sexRitual.petplay>> <<He>> pulls on your leash to pull you back in time with <<his>> thrusts. <</if>> <<sex 15 "genitals">><<ggarousal>> <<else>> <<set $sexRitual.speed to "slow">><<set $sexRitual.arousal += 1>> <<He>> starts off slow, only inserting half of <<his>> <<npcPenis>> with each thrust. <<if !$sexRitual.bondage>>The green glow gets a little brighter.<</if>> <<if $sexRitual.petplay>> <<He>> pulls on your leash to pull you back in time with <<his>> thrusts. <</if>> <<sex 5 "genitals">><<garousal>> <</if>> <br><br> <<if $sexRitual.playerOrgasms gte 1>> "The connection is made, but hasn't been sealed. We need more." <br><br> <</if>> <<gwylanRitualOptions>><<effects>><<run statusCheck("Gwylan")>><<set _tf to checkTFparts()>><<hallucinogen 2>><<drugs 2>> <<set $sexRitual.speed to "slow">> <<if $player.penisExist>> <<He>> dismounts you and moves <<his>> head to your <<penis>>. <<He>> slows down <<his>> stroking, and licks up your shaft. <<if $sexRitual.bondage>> <<His>> breath is <<= _gwylanStatus.includesAny("aroused", "lust") ? "hot and heavy" : "warm">>hot against your cock. <<else>> <<if _gwylanStatus.includesAny("aroused", "lust")>> <<His>> eyes resemble that of a hungry predator, completely locked with your own. <<else>> <<His>> eyes remain locked with yours. <</if>> <</if>> <<arousal 600 "genitals">><<garousal>> <br><br> <<if $arousal gte $arousalmax>> <<gwylanRitualOrgasm "player" "pre">> <<if $sexRitual.bondage>> Your cum splatters onto Gwylan's face. <<else>> Gwylan only briefly closes one eye as your cum leaves a streak on <<his>> face. <</if>> <<if _gwylanStatus.includes("dom")>> "Aww, someone was pent up," <<he>> says with a sultry tone. <</if>> <<if $sexRitual.bondage>> "I'll just clean this up," Gwylan says. <<He>> makes an exaggerated sound as <<he>> licks <<his>> fingers clean. <<else>> <<He>> collects the cum on <<his>> fingers and licks it up before continuing. <</if>> <</if>> <<if !$sexRitual.bondage and ["revealed", "visible"].includes(_gwylanTF.tail)>> <<if _gwylanTF.known>> You see Gwylan's tail swishing back and forth behind <<him>>, no longer hidden. <<elseif $sexRitual.buttplug>> <span class="lewd">You swear that you can see Gwylan's fake fox tail swishing back and forth behind <<him>>.</span> <<else>> <span class="lewd">You notice something swaying back and forth behind Gwylan. It looks like a fox tail. <<if !$gwylanSeen.includes("gwylan_tail")>>You wonder how you didn't notice it before.<</if>></span> <</if>> <<set $gwylanSeen.pushUnique("gwylan_tail")>> <</if>> <<if $sexRitual.virginityProtected and $player.virginity.penile is true and $virginitytest is 1 or !_gwylanStatus.includes("aroused", "lust")>> <<set $penisuse to "othermouth">><<set $NPCList[0].mouth to "penis">> <<He>> raises <<his>> head up further, placing <<his>> lips on the head of your <<penis>>. <<if $sexRitual.virginityProtected and $player.virginity.penile is true and $virginitytest is 1>> You think <<hes>> about to take it all in, but <<he>> shows restraint, <span class="green">not wanting to take your virginity</span>. <</if>> <<He>> simply kisses the tip, sending shockwaves of pleasure all the way down into your pelvis. <<arousal 800 "genitals">><<garousal>> <br><br> <<His>> tongue just barely caresses the head, moving in gentle patterns. <<He>> slowly starts to stroke you again. <<arousal 1000 "genitals">><<garousal>> <<if $arousal gte $arousalmax>> <br><br> <<gwylanRitualOrgasm "player" "pre">> <<if $sexRitual.bondage>> Gwylan gets every last drop of your cum. <<if _gwylanStatus.includes("heat")>> <<He>> lets out a refreshed sigh as <<he>> gulps it down. <<else>> <<He>> swallows audibly. <</if>> <<else>> Gwylan gets every last drop of your cum in <<his>> mouth, <<his>> eyes still never leaving yours. <<if _gwylanStatus.includesAny("aroused", "lust")>> <<He>> crawls halfway back up, <<his>> mouth still open to show you your own semen inside. <<if ["revealed", "visible"].includes(_gwylanTF.fangs)>> <<if _gwylanTF.known>> <<He>> licks <<his>> fangs and sticks <<his>> tongue out. <<else>> <span class="lewd"><<His>> canine teeth are more like the fangs of a beast<<if $transformationParts.traits.fangs isnot "disabled">>, similar to your own<</if>>.</span> <</if>> <<set $gwylanSeen.pushUnique("gwylan_fangs")>> <</if>> <<He>> closes it and swallows, then opens it again to show you that it's empty. <<arousal 200>><<garousal>> <br> <<else>> <<He>> closes <<his>> mouth and swallows. <</if>> <</if>> <</if>> <<else>> <<He>> raises <<his>> head up, planting a kiss on the head of your <<penis>>. It sends a jolt of pleasure all the way down to your pelvis. <<if _gwylanStatus.includesAny("heat")>> <<arousal 1600 "genitals">> <<He>> opens <<his>> mouth and takes you in hungrily, continuing to stroke you at the same time. <<He>> stops to gently nibble on it every few strokes, making you shiver. <<else>> <<arousal 800 "genitals">> <<He>> only takes the head in at first, letting <<his>> tongue circle it, before starting to work <<his>> way down. <</if>> <<if $player.penissize gte 4>> <<Hes>> only taking about half of it, but <<he>> eases down further and further each time. <<He>> doesn't gag, though. <</if>> <<gwylanRitualPenetrate "mouth" "penis">> <<if $arousal gte $arousalmax>> <br><br> <<gwylanRitualOrgasm "player" "pre">> <<if $player.penissize gte 4>> Gwylan forces <<himself>> to take your whole length and hold it as you climax. <<if $sexRitual.bondage>> When your spasms subside, <<if _gwylanStatus.includes("heat")>> <<he>> slowly releases your <<penis>> from <<his>> mouth, a thin line of saliva still connecting you together. "All gone," <<he>> tells you, voice husky with desire. You can hear <<his>> ragged panting. <<else>> <<he>> releases your <<penis>> from <<his>> mouth. You're just barely able to hear the breath <<he>> finally takes. A thin line of saliva connects your penis to <<his>> mouth. <</if>> <<else>> <<He>> closes <<his>> eyes until your spasms subside. <<if _gwylanStatus.includesAny("aroused", "lust")>> <<He>> slowly releases your <<penis>> from <<his>> mouth, a thin line of saliva still connecting you together. <<He>> takes a deep breath and keeps <<his>> tongue out, showing you that your semen went right down <<his>> throat. <<if ["revealed", "visible"].includes(_gwylanTF.fangs)>> <<if _gwylanTF.known>> <<He>> licks <<his>> fangs. <<else>> <span class="lewd"><<His>> canine teeth are more like the fangs of a beast<<if $transformationParts.traits.fangs isnot "disabled">>, similar to your own<</if>>.</span> <</if>> <<set $gwylanSeen.pushUnique("gwylan_fangs")>> <</if>> <<arousal 200>><<garousal>> <<else>> <<He>> releases your <<penis>> from <<his>> mouth, and you're just barely able to hear the breath <<he>> finally takes. A thin line of saliva connects your penis to <<his>> mouth, and your semen is already gone. <</if>> <</if>> <<else>> Gwylan briefly pauses as <<he>> feels your warm semen on <<his>> tongue. <<if $sexRitual.bondage>> <<if _gwylanStatus.includes("heat")>> <<He>> gulps it down with an audible moan of pleasure. <<else>> <<He>> swallows audibly. <</if>> <<else>> <<He>> slowly pulls <<his>> head up <<if _gwylanStatus.includesAny("aroused", "lust")>> and starts to crawl back up towards you, <<his>> mouth open to show you your semen inside. <<if ["revealed", "visible"].includes(_gwylanTF.fangs)>> <<if _gwylanTF.known>> <<He>> licks <<his>> fangs and sticks <<his>> tongue out briefly. <<else>> <span class="lewd"><<His>> canine teeth are more like the fangs of a beast<<if $transformationParts.traits.fangs isnot "disabled">>, similar to your own<</if>>.</span> <</if>> <<set $gwylanSeen.pushUnique("gwylan_fangs")>> <</if>> <<He>> closes it and swallows, then opens it again to show you that it's empty. <<arousal 200>><<garousal>> <<else>> and swallows. <</if>> <</if>> <</if>> <</if>> <</if>> <<else>> <<set $vaginause to "othermouth">><<set $NPCList[0].mouth to "vagina">> Gwylan moves <<his>> head to your <<pussy>>, removing <<his>> fingers from it. <<He>> gives you a single lick up to your clit. <<if !$sexRitual.bondage>> <<if _gwylanStatus.includesAny("aroused", "lust")>> <<His>> eyes resemble that of a hungry predator, completely locked with your own. <<else>> <<His>> eyes remain locked with yours. <</if>> <</if>> <<arousal 500 "genitals">><<garousal>> <br><br> <<if $arousal gte $arousalmax>> <<gwylanRitualOrgasm "player" "pre">> Gwylan only briefly <<= $sexRitual.bondage ? "pauses" : "closes one eye">> as you spasm. <<if _gwylanStatus.includes("dom")>> "Aww, someone was pent up," <<he>> says with a sultry tone. <</if>> <<if $sexRitual.bondage>> "I'll just clean this off," <<he>> says. <<He>> makes exaggerated noises as <<he>> licks your lewd fluids from <<his>> fingers. <<else>> <<He>> licks <<his>> fingers and your lewd fluids before continuing. <</if>> <</if>> <<if !$sexRitual.bondage and ["revealed", "visible"].includes(_gwylanTF.tail)>> <<if _gwylanTF.known>> You see Gwylan's tail swishing back and forth behind <<him>>, no longer hidden. <<elseif $sexRitual.buttplug>> <span class="lewd">You swear that you can see Gwylan's fake fox tail swishing back and forth behind <<him>>.</span> <<else>> <span class="lewd">You notice something swaying back and forth behind Gwylan. It looks like a fox tail. <<if !$gwylanSeen.includes("gwylan_tail")>>You wonder how you didn't notice it before.<</if>></span> <</if>> <<set $gwylanSeen.pushUnique("gwylan_tail")>> <</if>> <<He>> plants a kiss on your clit. It sends a jolt of pleasure all the way up your pelvis. <<if _gwylanStatus.includesAny("aroused", "lust")>> <<arousal 1000 "genitals">> <<He>> sticks <<his>> tongue in and starts to lick the inside of your pussy, hitting all the right spots. <<else>> <<arousal 800 "genitals">> <<He>> slowly sticks <<his>> tongue in and starts to lick the inside. <<He>> is slow, but methodical. <</if>> <<if $arousal gte $arousalmax>> <<gwylanRitualOrgasm "player" "pre">> <<if $sexRitual.bondage>> Gwylan gets every last drop of your lewd fluids. <<if _gwylanStatus.includes("heat")>> <<He>> moans as <<he>> drinks it down. <<else>> <<He>> swallows audibly. <</if>> <<else>> Gwylan gets every last drop of your lewd fluids in <<his>> mouth, <<his>> eyes still never leaving yours. <<if _gwylanStatus.includesAny("aroused", "lust")>> <<He>> crawls halfway back up, <<his>> mouth still open. <<if ["revealed", "visible"].includes(_gwylanTF.fangs)>> <<if _gwylanTF.known>> <<He>> licks <<his>> fangs and sticks <<his>> tongue out briefly. <<else>> <span class="lewd"><<His>> canine teeth are more like the fangs of a beast<<if $transformationParts.traits.fangs isnot "disabled">>, similar to your own<</if>>.</span> <</if>> <<set $gwylanSeen.pushUnique("gwylan_fangs")>> <</if>> <<He>> closes it and swallows, then opens it again to show you that it's empty. <<arousal 200>><<garousal>> <<else>> <<He>> closes <<his>> mouth and swallows. <</if>> <</if>> <</if>> <</if>> <br><br> <<if $sexRitual.virginityProtected and _gwylanStatus.includesAny("aroused", "lust")>> <<He>> stops for a moment. "You should know that this is driving me mad," <<he>> says, <<= $sexRitual.bondage ? "playfully teasing you" : "giving you a playful smile">>. "I want to take you. Badly." <<if $sexRitual.bondage>> The three foxlike eyes flash in your vision, betraying an all-too-human frustration and lust. Still, Gwylan resumes <<his>> service. <<else>> <<His>> gaze betrays frustration and lust, but <<he>> resumes <<his>> service. <</if>> <<elseif $sexRitual.playerOrgasms gte 1>> "The connection is made, but hasn't been sealed. We need more." <<He>> doesn't seem satisfied yet, and continues <<his>> service. <<elseif $sexRitual.bondage>> <<He>> continues <<his>> service. <<His>> renewed tenacity makes you think that <<hes>> surprised you've held out for this long. <<else>> <<He>> continues <<his>> service, looking surprised that you've held out this long. <</if>> <<if $sexRitual.petplay>> <<He>> pulls on your leash gently, forcing you to keep <<= $sexRitual.bondage ? "up" : "eye contact">> with <<him>>. <</if>> <br><br> <<gwylanRitualOptions>><<effects>><<run statusCheck("Gwylan")>><<set _tf to checkTFparts()>> <<gwylanRitualEffects>> <<canvas-model-temporary-effect "petals">> <<set _gwylanOrgasmLimit to _gwylanStatus.includes("heat") ? 8 : 6>> /* End conditions */ <<if $orgasmcount gte 24 or $sexRitual.playerOrgasmsFailed gte 3 or $sexRitual.timerToforceEnd lte 0>> <<set $sexRitual.end to "spent">> <<elseif $sexRitual.playerOrgasms gte $sexRitual.orgasmTarget>> <<set $sexRitual.end to "normal">> <<elseif $sexRitual.gwylanOrgasms gte _gwylanOrgasmLimit and !$sexRitual.tentacleEvent>> <<set $sexRitual.end to "Gwylan">> <</if>> <<if $sexRitual.end>> <<if $sexRitual.bondage>> <<unbind>> <<set $worn.face.type.push("broken")>> <<faceruined>> <</if>> <<canvas-model-override "clear">> <<if $sexRitual.tentacles gte 7 and $sexRitual.connectionBroken>> <<if $sexRitual.bondage>> Something is wrong. Behind your blindfold, the three glowing green eyes flicker. The outlines wobble and separate into squirming tendrils of green light. Where Gwylan's body presses against yours, you can feel something writhe under <<his>> skin. <br><br> The indecipherable tangle of lines quivers before you. It stretches and briefly solidifies into the three eyes once more. <<if $sexRitual.hypnosis is "Gwylan">> The outlines sharpen with the slightest bit of lucidity, before the glowing green light fades entirely. <<else>> The outlines blur together, unable to maintain their shape, then the glowing green light fades entirely. <</if>> Gwylan uses the last of <<his>> strength to remove your blindfold, <<his>> hands trembling. You blink as your vision returns to you. The soft lights that fill the garden feel harsh after so long in the darkness. When you make eye contact with Gwylan, they're vacant and unfocused. <br><br> The vines binding your arms and limbs fall to the ground. <<else>> <<His>> eyes remain vacant as something writhes under <<his>> skin. <br><br> They briefly focus on you, their light snuffed. <<if $sexRitual.hypnosis is "Gwylan">> The slightest bit of lucidity returns to them for a moment. <</if>> <<He>> uses the last of <<his>> strength to withdraw. <</if>> "St-stay... in the circle... I'm... sorry..." <br><br> <span class="red">Multiple tentacles emerge from <<him>>.</span> "I... need you, dear." <br><br> <<gwylanRitualPenetrate "withdraw">> <<link [[Next|Gwylan Ritual Abomination]]>><<set $molestationstart to 1>><</link>> <br> <<elseif $sexRitual.tentacles gte 1>> <<set $gwylanSeen.pushUnique("exorcism")>> <<if $sexRitual.bondage>> <span class="red">Gwylan spasms, and <<his>> body goes limp against you.</span> The vines binding your arms and legs slacken and fall to the ground. <<if $sexRitual.hypnosis is "player">> At the same moment, you feel your lucidity return to you. <</if>> <br><br> <<if $sexRitual.hypnosis is "Gwylan">> <<He>> jolts. <<His>> fingers scrabble at your blindfold, clawing it off of you. <<else>> <<He>> reaches for your blindfold and removes it, <<his>> fingers trembling. <</if>> You blink as your vision returns to you. The soft lights that fill the garden feel harsh after so long in the darkness. <<else>> <span class="red">Gwylan spasms, <<his>> arms going limp.</span> <<if $sexRitual.hypnosis is "player">> At the same moment, you feel your lucidity return to you. <</if>> <</if>> <br><br> <<if $sexRitual.hypnosis is "Gwylan">> <<He>> suddenly moves away from you, and gets on all fours. <<He>> whines, as if in pain, before <<he>> starts to make a gagging motion. It looks like <<hes>> trying to expel a hairball. <br><br> With an agonising push, <span class="red">a tentacle erupts from <<his>> mouth. Followed by another. And another.</span> <<else>> <<His>> head suddenly goes limp, but the writhing under <<his>> skin continues. "Hold on to me. Whatever happens, keep me in the circle. Don't let go of me. Please." <<His>> mouth stays open after the last word. <<His>> whole body seizes, <<his>> eyes going wide as the last bit of light leaves them. <br><br> <span class="red"><<His>> head jerks back as a tentacle erupts from <<his>> mouth. Followed by another. And another.</span> <</if>> <br><br> <<loveicon "hug">><<link [[Hold on to Gwylan|Gwylan Ritual Sex Exorcism]]>><</link>> <br> <<if $angel gte 4 and $angelBanish gte 1>> <<skinicon "banish">><<link [[Banish|Gwylan Ritual Sex Exorcism Banish]]>><<angelBanishAction>><</link>><<angelBanishNote>><<gwylanPurgeEffect>> <br> <<elseif $fallenangel gte 2>> <<tficon "fallenangel">><<link [[Expunge|Gwylan Ritual Sex Exorcism Expunge]]>><<purity -50>><</link>><<lllpurity>><<oralvirginitywarning>><<gwylanPurgeEffect>> <br> <</if>> <<if $sexRitual.forced>> <<ind>><<link [[Move away from Gwylan|Gwylan Ritual Sex Exorcism]]>><<set $phase to "move">><</link>><<gwylanWillpowerDifficulty>> <br> <</if>> <<else>> <<if $sexRitual.hypnosis is "Gwylan">> <<if $sexRitual.end is "spent">> Lucidity suddenly returns to <<him>>. <<if $sexRitual.bondage>> "Ah," <<he>> says, sounding sheepish. "Unforeseen." <<He>> removes your blindfold, and you blink as your vision returns to you. The soft lights that fill the garden feel harsh after so long in the darkness. <br><br> When your vision adjusts, your eyes land on Gwylan's face. <<Hes>> blushing fiercely. <<else>> <<He>> blinks, and looks around. <br><br> "Ah. Unforeseen." <<He>> blushes fiercely. <</if>> "It seems everything still went well, although you look spent, dear. Was... was it really that much better like this?" <<elseif $sexRitual.end is "Gwylan">> <<if $sexRitual.bondage>> <<He>> collapses back and pants. With one final bark, lucidity suddenly returns to <<him>>. <br><br> "Ah... oh dear." <<He>> sounds sheepish. <<He>> removes your blindfold, and you blink as your vision returns to you. The soft lights that fill the garden feel harsh after so long in the darkness. <br><br> When your vision adjusts, your eyes land on Gwylan's face. <<Hes>> blushing fiercely. <<else>> <<He>> collapses back and pants, an arm over <<his>> face. With one final bark, lucidity suddenly returns to <<him>>. <<He>> blinks, and looks around. <br><br> "Ah... oh dear." <<He>> blushes fiercely. <</if>> "It seems everything still went well, although... I'm quite spent." <<else>> Lucidity suddenly returns to <<him>>. <<if $sexRitual.bondage>> "Ah," <<he>> says, sounding sheepish. "Unforeseen." <<He>> removes your blindfold, and you blink as your vision returns to you. The soft lights that fill the garden feel harsh after so long in the darkness. <br><br> When your vision adjusts, your eyes land on Gwylan's face. <<Hes>> blushing fiercely. <<else>> <<He>> blinks, and looks around. <br><br> "Ah. Unforeseen." <<He>> blushes fiercely. <</if>> "It seems everything still went well." <</if>> <<He>> snaps <<his>> fingers, and the vines binding your arms and limbs fall to the ground. <<elseif $sexRitual.end is "askStop">> <<if $sexRitual.bondage>> <<He>> grabs something, and spreads a small amount of what feels like sand onto your lips. <<He>> removes your blindfold, and you feel all of your senses returning. You blink. The soft lights that fill the garden feel harsh after so long in the darkness. <<arousal -1000>><<npcincr Gwylan lust -2>><<larousal>><<llust>> <br><br> Gwylan snaps <<his>> fingers, and the vines binding your arms and legs release. <<else>> <<He>> grabs the jar of blue sand, and spreads a small amount of it onto your lips. You feel your senses returning. <<arousal -1000>><<npcincr Gwylan lust -2>><<larousal>><<llust>> <br><br> <</if>> <<He>> looks you over. "Is everything alright, dear? Too much?" <<He>> smiles warmly. "It takes some getting used to. Don't worry, you did well. We can try again next week." <<elseif $sexRitual.end is "spent">> <<He>> huffs in annoyance. "It looks like that's all we're getting out of you today. I don't want to start hurting you by pushing you too hard." <<if $sexRitual.bondage>> <<He>> grabs something, and spreads a small amount of what feels like sand onto your lips. <<He>> removes your blindfold, and you feel all of your senses returning. You blink. The soft lights that fill the garden feel harsh after so long in the darkness. <<arousal -1000>><<npcincr Gwylan lust -2>><<larousal>><<llust>> <br><br> Gwylan snaps <<his>> fingers, and the vines binding your arms and legs release. <<else>> <<He>> grabs the jar of blue sand, and spreads a small amount of it onto your lips. You feel your senses returning. <<arousal -1000>><<npcincr Gwylan lust 1>><<larousal>><<glust>> <br><br> <</if>> <<elseif $sexRitual.end is "Gwylan">> <<He>> pants in exhaustion, but laughs. "I'm impressed. You actually made me hit my limit."<<npcincr Gwylan dom 1>><<gyearning>> <br><br> <<if $sexRitual.bondage>> <<He>> grabs something, and spreads a small amount of what feels like sand onto your lips. <<He>> removes your blindfold, and you feel all of your senses returning. You blink. The soft lights that fill the garden feel harsh after so long in the darkness. <<arousal -1000>><<npcincr Gwylan lust -2>><<larousal>><<llust>> <br><br> Gwylan snaps <<his>> fingers, and the vines binding your arms and legs release. <<else>> <<He>> grabs the jar of blue sand, and spreads a small amount of it onto your lips. You feel your senses returning. <<arousal -1000>><<npcincr Gwylan lust 1>><<larousal>><<glust>> <br><br> <</if>> <<else>> <<He>> hums in satisfaction at your final orgasm. "That's plenty. Good work." <<if $sexRitual.bondage>> <<He>> grabs something, and spreads a small amount of what feels like sand onto your lips. <<He>> removes your blindfold, and you feel all of your senses returning. You blink. The soft lights that fill the garden feel harsh after so long in the darkness. <<arousal -1000>><<npcincr Gwylan lust -2>><<larousal>><<llust>> <br><br> Gwylan snaps <<his>> fingers, and the vines binding your arms and legs release. <<else>> <<He>> grabs the jar of blue sand, and spreads a small amount of it onto your lips. You feel your senses returning. <<arousal -1000>><<npcincr Gwylan lust 1>><<larousal>><<glust>> <br><br> <</if>> <</if>> <br><br> <<link [[Rest|Gwylan Ritual Sex End]]>><</link>> <br> <<if $sexRitual.forced>> <<link [[Run|Gwylan Ritual Sex End]]>><<set $phase to "resent">><</link>><<gwylanWillpowerDifficulty>> <br> <</if>> <</if>> <<else>> <<gwylanRitualActions>> <<gwylanRitualOptions>> <</if>><<effects>><<run statusCheck("Gwylan")>><<set _tf to checkTFparts()>> <<canvas-model-temporary-effect "petals">> <<set $sexRitual.arousal -= 5>> <<if $sexRitual.position is "playerMissionaryVaginal">> <<if $sexRitual.bondage>> You twist your body from side to side, trying to topple Gwylan. <<else>> You lock your legs around Gwylan and twist your body, trying to topple <<him>>. <</if>> <<elseif $sexRitual.position is "playerDoggyVaginal" or $sexRitual.position is "playerDoggyAnal">> You try to push your whole body weight back to topple Gwylan, now leaning back into <<his>> chest. <<elseif ["gwylanDoggyVaginal", "gwylanDoggyAnal"].includes($sexRitual.position)>> You try to take advantage of Gwylan's position under you, and push down on <<him>> to pin <<him>> to the ground. <<elseif $sexRitual.position is "service">> <<if $sexRitual.bondage>> You try to loop your bound wrists over Gwylan's head and pull <<him>> closer. <<else>> You buck your hips and try to sit up, grabbing Gwylan's head. <</if>> <<elseif $sexRitual.bondage>> You try to shift your body weight in order to get on top of Gwylan. <<else>> You grab Gwylan by the waist and push, trying to shift your body weight to get on top. <</if>> <br><br> <<if $sexRitual.hypnosis isnot "Gwylan">> <<if $sexRitual.bondage>> In your darkened field of vision, you see the outlines of three eyes. They widen, glowing with a newfound intensity. Gwylan gasps. <<else>> <<His>> eyes<<if _gwylanStatus.includesAny("aroused", "lust") and $sexRitual.position isnot "service">> snap back open.<<else>> widen.<</if>> <</if>> <<if $sexRitual.petplay>> <<if $sexRitual.position is "playerMissionaryVaginal">> <span class="red"><<He>> yanks your leash,</span> and presses <<his>> other hand down on your chest. <<elseif $sexRitual.position is "playerDoggyVaginal" or $sexRitual.position is "playerDoggyAnal">> <span class="red"><<He>> yanks your leash,</span> and uses <<his>> other hand to turn your chin, forcing you to look at <<him>><<if $sexRitual.bondage>> despite your blindfold<</if>>. <<elseif ["gwylanDoggyVaginal", "gwylanDoggyAnal"].includes($sexRitual.position)>> <<He>><<if !$sexRitual.bondage>> glares back at you and<</if>> pushes back hard, <span class="red">tightening your leash</span>. <<elseif $sexRitual.position is "service">> <span class="red"><<He>> yanks your leash,</span> and pushes <<his>> other hand against your stomach. <<else>> <span class="red"><<He>> yanks your leash,</span> and slams <<his>> hips down on you. <</if>> <<else>> <<if $sexRitual.position is "playerMissionaryVaginal">> <<He>> holds you down by the <<= $sexRitual.bondage ? "shoulders" : "arms">>. <<elseif $sexRitual.position is "playerDoggyVaginal" or $sexRitual.position is "playerDoggyAnal">> <<He>> grabs your chin and forces you to look at <<him>><<if $sexRitual.bondage>>, despite your blindfold<</if>>. <<elseif ["gwylanDoggyVaginal", "gwylanDoggyAnal"].includes($sexRitual.position)>> <<He>><<if !$sexRitual.bondage>> glares back at you and <</if>>pushes back hard. <<elseif $sexRitual.position is "service">> <<He>> pushes against your stomach with both hands. <<else>> <<He>> slams <<his>> hips down on you, and pins you down by the <<= $sexRitual.bondage ? "shoulders" : "arms">>. <</if>> <</if>> <<if $sexRitual.bondage>> The trio of eyes glares at you. Their gaze makes you feel lightheaded. <<else>> <<His>> gaze makes you feel lightheaded. <</if>> <br><br> <b>"<span class="witch">Down.</span>"</b> <br><br> <<if $physiqueSuccess and $willpowerSuccess>> <<set $sexRitual.onTop to true>><<set $sexRitual.action to "top">><<set $sexRitual.position to "top">><<set $sexRitual.topTimer to 0>> <<gwylanRitualPenetrate "withdraw">><<set $sexRitual.playerControlsSpeed to true>><<set $sexRitual.willContest to "none">> <<= $sexRitual.bondage ? "You" : "Your arms">> tremble, <span class="green">but you shrug off the demand.</span> You ram through the mental wall compelling you to submit, and knock over the mousy-haired <<personsimple>> standing behind it. <br><br> Gwylan is on <<his>> back, and you're on top of <<him>>. <<if !$sexRitual.bondage>> <<if ["revealed", "visible"].includes(_gwylanTF.ears)>> <<if _gwylanTF.known>> <<His>> hat lies on the floor above <<him>>, leaving <<his>> fox ears exposed. <<else>> <<His>> hat lies on the floor above <<him>>, <span class="lewd">but there's still a pair of fox ears on <<his>> head.</span> <</if>> <<set $gwylanSeen.pushUnique("gwylan_ears")>> <<else>> <<His>> hat lies on the floor above <<him>>. <</if>> <</if>> <<set $sexRitual.hatOff to true>> <<if $sexRitual.bondage>> The lines that make up the three-eyed vision begin to wobble and blur, pulsing bright red. <<if _gwylanStatus.includes("heat")>> However, they soon stabilise, and their red colour fades to a soft pink. "What are you waiting for?" Gwylan prompts, a hint of smugness to <<his>> voice. <<elseif _gwylanStatus.includesAny("dom", "lust")>> However, they soon stabilise, and their red colour shifts to a cautious yellow. "You'll be good for me, won't you?" Gwylan says. <<else>> They grow even shakier as Gwylan's voice rings out. "W-wait! Down! I said down!" <</if>> <<else>> <<His>> eyes are full of shock and the slightest hint of fear. <<if _gwylanStatus.includes("heat")>> However, <<he>> quickly switches to an eager smile with a hint of smugness as <<he>> <<if $sexRitual.petplay>> tugs your leash again, pulling you down to <<him>>. <<else>> wraps <<his>> arms around you and pulls you closer. <</if>> "What are you waiting for?" <<elseif _gwylanStatus.includesAny("dom", "lust")>> However, it slowly turns into a nervous smile. "You'll be good for me, won't you?" <<else>> "W-wait! Down! I said down!" <</if>> <</if>> <<control 25>><<gcontrol>> <br><br> <<gwylanRitualOptions>> <<else>> <<hypnosisText "<span class='red'>Your arms and legs go limp and stop responding to you.</span>">> <<controlloss>> <br><br> Gwylan <<= $sexRitual.bondage ? "lets out" : "softly smiles, letting out">> a huff. <<if _gwylanStatus.includesAny("aroused", "lust")>> "You're eager, but let me take care of you." <<else>> "You need not do such things. Let me work." <</if>> <<if ["gwylanDoggyVaginal", "gwylanDoggyAnal"].includes($sexRitual.position)>> <<He>> straightens up and presses a finger against your forehead, and you fall backwards. <<He>> turns, now straddling you. <<if $sexRitual.position is "gwylanDoggyVaginal">> <<set $sexRitual.position to "gwylanRidingVaginal">> <<else>> <<set $sexRitual.position to "gwylanRidingAnal">> <</if>> <</if>> <<if $sexRitual.petplay>> <<He>> wraps your leash around <<his>> hand, tightening it and pulling your head up. <<else>> <<if !$sexRitual.bondage>><<He>> cups <<his>> hand in your direction and slowly pulls it back. <</if>>You feel compelled to raise your head to <<him>>, as if it were being pulled by a string. <</if>> <<if $sexRitual.bondage>> The three eyes sear into your vision. They pulse softly as Gwylan speaks. <<else>> <<His>> eyes burn into you, but <<his>> face remains soft. <</if>> "You'll be good for me, won't you?" <<His>> voice carries an innocence unbecoming of <<his>> current position over you. <b>"<span class="witch">Apologise.</span>"</b> <br><br> /* Only actions available on the turn where the player fails to take control */ <<link [[Say nothing|Gwylan Ritual Sex]]>><<def 1>><<npcincr Gwylan lust -2>><<set $sexRitual.action to "quiet">><</link>><<llust>> <br> <<link [[Apologise|Gwylan Ritual Sex]]>><<set $sexRitual.action to "apologise">><</link>> <br> <<if $wolfgirl gte 6>> <<link [[Bark|Gwylan Ritual Sex]]>><<sub 1>><<npcincr Gwylan lust 1>><<set $sexRitual.action to "bark">><</link>><<wolfgirl>><<glust>><<gwylanHypnoNote>> <br> <<elseif hasSexStat("deviancy", 2)>> <<link [[Bark|Gwylan Ritual Sex]]>><<sub 1>><<npcincr Gwylan lust 1>><<set $sexRitual.action to "bark">><</link>><<deviant2>><<glust>><<gwylanHypnoNote>> <br> <</if>> <</if>> <<else>> <<set $sexRitual.onTop to true>><<set $sexRitual.action to "top">><<set $sexRitual.position to "top">><<set $sexRitual.topTimer to 0>> <<gwylanRitualPenetrate "withdraw">><<set $sexRitual.playerControlsSpeed to true>> <span class="green"><<He>> doesn't even resist you, letting you get on top without any fuss.</span> <<if !$sexRitual.hatOff and !$sexRitual.bondage>> <<if ["revealed", "visible"].includes(_gwylanTF.ears)>> <<if _gwylanTF.known>> <<His>> hat lies on the floor above <<him>>, leaving <<his>> fox ears exposed. <<else>> <<His>> hat lies on the floor above <<him>>, <span class="lewd">but there's still a pair of fox ears on <<his>> head.</span> <</if>> <<set $gwylanSeen.pushUnique("gwylan_ears")>> <<else>> <<His>> hat lies on the floor above <<him>>. <</if>> <</if>> <<He>> whines at you longingly. <br><br> <<gwylanRitualOptions>> <</if>><<effects>><<run statusCheck("Gwylan")>><<set _tf to checkTFparts()>> <<if $phase is 1>> <<switch $speech_attitude>> <<case "meek">> "Gwylan? Are you alright?<<if !$sexRitual.bondage>> Is... is that how I looked just a minute ago?<</if>>"<br> "Rrrarf!"<br> "H-how do we fix this?" <<case "bratty">> "You're not serious. You're faking it," you say.<br> "Rrrarf!"<br> "You're serious. <<= $sexRitual.bondage ? "Right, okay." : "Is that how I just looked too?">> How do I fix it?" <<default>> "Are you alright?"<br> "Rrrarf!"<br> "Right, okay. How do we fix this?" <</switch>> <br> "Woof!" <<elseif $phase is 2>> You <<if !$sexRitual.hatOff>>lift <<his>> hat and <</if>>pat <<him>> on the head. <<He>> leans into your hand. <<if ["revealed", "visible"].includes(_gwylanTF.ears)>> <<if _gwylanTF.ears is "revealed">> You give extra attention to <<his>> fox ears. <<else>> Your hands brush up against something unusual. You notice that <<his>> hat no longer has fox ears... <span class="lewd">but Gwylan does</span>. They feel realistic, and you spend a moment stroking them. <</if>> <<set $gwylanSeen.pushUnique("gwylan_ears")>> <</if>> <<set $sexRitual.hatOff to true>> <<switch $speech_attitude>> <<case "meek">> "G-good <<personsimple>>?" <<case "bratty">> "This is really weird, but weirdly cute. Who's a good <<personsimple>>?" <<default>> "Aww, who's a good <<personsimple>>?" <</switch>> <br><br> <<His>> back arches and <<his>> butt raises up as you pet <<him>>, and <<his>> panting gets heavier as <<his>> face turns very red. <<elseif $phase is 3>> You rub Gwylan's <<bellyDescription "Gwylan">>. <<He>> immediately flops over on <<his>> back, <<his>> leg kicking. <<switch $speech_attitude>> <<case "meek">> "G-good <<personsimple>>?" <<case "bratty">> "This is really weird, but weirdly cute. Who's a good <<personsimple>>?" <<default>> "Aww, who's a good <<personsimple>>?" <</switch>> <br><br> <<His>> panting gets heavier as <<his>> face turns very red. <<He>> rolls back over. <<elseif $phase is 4>> You blindly move your head towards Gwylan until you bump noses with <<him>>. You nuzzle them together. <<switch $speech_attitude>> <<case "meek">> You giggle. "Aww, what a cute doggy." <<case "bratty">> You snicker. "This is really weird, but weirdly cute." <<default>> You laugh. "You're being very cute right now." <</switch>> <br><br> Gwylan gives your face an enthusiastic lick. <<elseif $phase is 5>> <<switch $speech_attitude>> <<case "meek">> You smile timidly. "G-good <<personsimple>>?" <<case "bratty">> You can't help but grin. "Who's a good <<personsimple>>?" <<default>> "Aww, who's a good <<personsimple>>?" you coo. <</switch>> <br><br> <<He>> barks in reply. <<His>> panting gets heavier. <<else>> <<if $willpowerSuccess>> With the fog clouding your mind receding, <span class="green">you realise the position you're in</span> and turn away from <<him>> in resentment. <br><br> <<He>> whimpers, and tries to nudge you again.<<npcincr Gwylan lust -1>><<llust>> <<else>> You try to turn away from <<him>>, <span class="red">but you're overtaken by guilt.</span> Instead, you blindly feel your way forward, nudging <<him>> with your head.<<willpower 6>><<gwillpower>> <br><br> <<He>> nuzzles your face eagerly. <</if>> <</if>> <br><br> <<switch $sexRitual.position>> <<case "gwylanRidingVaginal" "gwylanRidingAnal">> <<He>> pushes against you with enough fervor to knock you on your back, and <<he>> crawls over you again. <<He>> lowers <<himself>> onto you, trying to sit on your lap like a dog, and takes your <<penis 2>> in again. <<He>> shivers and whines. <<case "gwylanRidingThighs">> <<He>> pushes against you with enough fervor to knock you on your back, and <<he>> crawls over you again. <<He>> lowers <<himself>> onto you, trying to sit on your lap like a dog, and takes your <<penis 2>> between <<his>> thighs again. <<case "gwylanRidingTrib">> <<He>> pushes against you with enough fervor to knock you on your back, and <<he>> crawls over you again. <<He>> lowers <<himself>> onto you, trying to sit on your lap like a dog, and grinds your pussies together again. <<case "playerMissionaryVaginal" "playerDoggyVaginal" "playerDoggyAnal">> <<set $sexRitual.position to "playerMissionaryVaginal">> <<He>> pushes against you with enough fervor to knock you on your back, and <<he>> crawls over you again to mount you. <<case "gwylanDoggyVaginal" "gwylanDoggyAnal">> <<if !$sexRitual.bondage>><<He>> turns away from you, spreading <<his>> legs slightly and looking back at you longingly<</if>>. <<He>> lowers <<himself>> right back down into your lap, taking in your <<penis 2>>. <<default>> <<if $sexRitual.onTop>> /* Any top position */ <<if $sexRitual.bondage>> <<He>> nudges you with <<his>> nose, whining longingly. <<else>> <<His>> head tilts, and <<he>> slowly spreads <<his>> legs for you. <<He>> whines longingly. <</if>> <<gwylanRitualPenetrate "withdraw">><<set $sexRitual.playerControlsSpeed to true>><<set $sexRitual.speed to "stop">><<set $sexRitual.position to "top">><<set $sexRitual.action to "top">> <</if>> <</switch>> <br><br> <<set $sexRitual.event to false>> <<set $phase to 0>> <<gwylanRitualOptions>><<run statusCheck("Gwylan")>> <<canvas-model-temporary-effect "petals">> <<if $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<set $consensual to 0>> <<maninit>><<npcexpose>> <<set $enemyarousalmax to 1200>> <<set $enemyanger to 0>> <<set _tentacleCount to Math.clamp($sexRitual.tentacles, 0, 20)>> <<makeAbomination _tentacleCount 8 "tentacle" "tentacle" true>> <<set $noBodyWriting to true>> <</if>> <<effects>> <<effectsabomination>> <<abomination>> <<stateabomination>> <br><br> <<actionsabomination>> <<if _combatend or $tentacles.active lte 0>> <span id="next"><<link [[Next|Gwylan Ritual Abomination Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Gwylan Ritual Abomination]]>><</link>></span><<nexttext>> <</if>> /* End states */<<effects>><<run statusCheck("Gwylan")>> <<canvas-model-temporary-effect "petals" "reverse">> <<if $enemyarousal gte $enemyarousalmax or $tentacles.active lte 0>> The tentacles all shudder, and retract into Gwylan. <<He>> doubles over and begins retching. <<else>> Gwylan doubles over as you land a final blow. The tentacles all retract back into <<his>> body. <<He>> begins retching. <</if>> <br><br> <<silently>><<endcombat>><</silently>> <<npc Gwylan>><<person1>> The tentacles re-emerge, this time from <<his>> mouth. They writhe in the air. A large lump appears in Gwylan's throat, and with a final tug, they pull themselves out forcefully. Or maybe they were pulled out against their will. Gwylan's eyes roll back, and <<he>> collapses into your arms. <br><br> A monster, a writhing mass of taint, floats in the air before you. It stares at you with one massive, baleful eye. It reaches to grab onto <<him>>, or you, or anything, but you hold <<him>> away from it. <br><br> Its limbs sharpen and shoot towards you. <span class="green">They crash against falling rose petals as if they were a glass wall, physically shielding you from its reach.</span> It floats upwards helplessly. <br><br> The rose petals all freeze in place. They start to float towards the monster, each contact bringing the sound of sizzling flesh to your ears. In a matter of seconds, it's completely covered. Its body disintegrates in a prism of green, red and purple lights. It screams. <<trauma 24>><<gggtrauma>> <br><br> Your ears ring as you continue clinging to Gwylan's limp body. With a final puff of smoke, the monster is gone. You feel the air rush to fill the hole it left, before the rose petals seal that away, too. A single purple flower falls to the ground in its place. <br><br> Finally, all is silent. <br><br> <<link [[Lie still|Gwylan Ritual Sex End]]>><<pass 5>><<set $phase to "abomination">><</link>> <br> <<if $sexRitual.forced>> <<link [[Push <<him>> away from you|Gwylan Ritual Sex End]]>><<set $phase to "away">><</link>><<gwylanWillpowerDifficulty>> <br> <</if>><<effects>><<canvas-model-temporary-effect "petals" "reverse">> <<if $phase is "move" and $willpowerSuccess>> <span class="green">You push against the compulsion</span>, and move as far from Gwylan as you can. <br><br> The tentacles writhe in the air. A large lump appears in Gwylan's throat, and with a final tug, they pull themselves out forcefully. Or maybe they were pulled out against their will. Gwylan's eyes roll back, and <<he>> collapses into the ground. <br><br> A monster, a writhing mass of taint, floats in the air before you. It stares at you with one massive, baleful eye. It reaches towards Gwylan. Realising what it's trying to do, you rush back and pull <<him>> away from it. <br><br> Its limbs sharpen and shoot towards you. <span class="green">They crash against falling rose petals as if they were a glass wall, physically shielding you from its reach.</span> It floats upwards helplessly. <br><br> The rose petals all freeze in place. They start to float towards the monster, each contact bringing the sound of sizzling flesh to your ears. In a matter of seconds, it's completely covered. Its body disintegrates in a prism of green, red and purple lights. It screams. <<trauma 24>><<gggtrauma>> <br><br> Your ears ring as you stand there bewildered, still grasping Gwylan's arm. With a final puff of smoke, the monster is gone. You feel the air rush to fill the hole it left, before the rose petals seal that away, too. <<else>> <<if $phase is "move">> You want to move away,<span class="red"> but <<he>> looks so vulnerable in your arms,</span> and you can't bring yourself to do it.<<willpower 6>><<gwillpower>> <br><br> <</if>> You hold on to <<him>> tightly. <br><br> The tentacles writhe in the air. A large lump appears in Gwylan's throat, and with a final tug, they pull themselves out forcefully. Or maybe they were pulled out against their will. Gwylan's eyes roll back, and <<he>> collapses into your arms. <br><br> A monster, a writhing mass of taint, floats in the air before you. It stares at you with one massive, baleful eye. It reaches to grab onto <<him>>, or you, or anything, but you hold <<him>> away from it. <br><br> Its limbs sharpen and shoot towards you. <span class="green">They crash against falling rose petals as if they were a glass wall, physically shielding you from its reach.</span> It floats upwards helplessly. <br><br> The rose petals all freeze in place. They start to float towards the monster, each contact bringing the sound of sizzling flesh to your ears. In a matter of seconds, it's completely covered. Its body disintegrates in a prism of green, red and purple lights. It screams. <<trauma 24>><<gggtrauma>> <br><br> Your ears ring as you continue clinging to Gwylan's limp body. With a final puff of smoke, the monster is gone. You feel the air rush to fill the hole it left, before the rose petals seal that away, too. <</if>> A single purple flower falls to the ground in its place. <br><br> Finally, all is silent. <br><br> <<link [[Hold Gwylan|Gwylan Ritual Sex End]]>><<pass 5>><<set $phase to "exorcism">><</link>> <br> <<if $sexRitual.forced>> <<link [[Let go of Gwylan|Gwylan Ritual Sex End]]>><<set $phase to "drop">><</link>><<gwylanWillpowerDifficulty>> <br> <</if>><<effects>><<canvas-model-temporary-effect "petals" "reverse">> <<set $sexRitual.purge++>> You make a series of intricate gestures with your hands, before placing them both on Gwylan's cheeks. <br><br> <<He>> fills with your light, which shines from <<his>> eyes and mouth. You hear a shriek, but it's far too shrill and otherworldly to be Gwylan's. The tentacles writhe in pain and desperation. You pour more light into <<him>>. <br><br> The falling rose petals dance around you, before all floating to Gwylan, covering <<his>> skin. A prism of green, red and purple lights fill the room, mixed with yours. The creature screams as it is banished from the world. <br><br> The tentacle goes stiff, its flesh turning black. <span class="green">It crumbles to dust.</span> <br><br> Gwylan, <<his>> throat now free of the creature, gasps and doubles over. <span class="purple"><<He>> orally expels a vibrant pink goo all over the ground.</span> All that's left of the creature. <br><br> You pat <<his>> back as <<he>> continues retching, grabbing <<his>> stomach in pain. <br><br> When <<hes>> done, <<he>> clings to you. <<His>> voice is hoarse. "You really are my angel." <<He>> coughs. <br><br> <<link [[Next|Gwylan Ritual Sex End]]>><<set $phase to "banish">><</link>> <br><<effects>> <<set $sexRitual.purge++>> You have no power over a creature like this. You did once, when your wings weren't black. When your halo was whole. Now, you have nothing. <br><br> Your eyes widen. <br><br> You have <i>nothing.</i> <br><br> You hold Gwylan. You still have the makings, you can be a lure. You faintly resemble what you once were. A facsimile of purity. Something it craves. <br><br> You bring your face close to Gwylan's, and open your mouth. It can't resist. <span class="purple">A tentacle shoots into your mouth.</span> <<takeVirginity "Lesser Elkspawn" "oral">> <br><br> It writhes into you, down your throat. There's so much, but you don't gag. You get closer, nearly kissing Gwylan now as it flows between you. <<His>> eyes focus on you, the light slowly returning to them, and <<his>> face turns red. <br><br> With a wet pop, the last of it leaves Gwylan and slips into you. <br><br> It knows it's been trapped, but far too late. It meets the empty void within you before it can put up any struggle, and is erased from the world, returning to nothing. You let out a single hiccup. <br><br> Gwylan looks away, and coughs up a tiny amount of pink goo. <<His>> voice is hoarse. "Even now, you're still an angel," <<he>> says with a smile. <br><br> <<link [[Next|Gwylan Ritual Sex End]]>><<set $phase to "expunge">><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<canvas-model-override "clear">><<set $orgasmdown to 0>> <<if ["resent","away","drop"].includesAny($phase)>><<set _resent to true>><</if>> <<if ["resent","away","drop"].includesAny($phase) and !$willpowerSuccess>> <span class="red">You stay perfectly still.</span> <br><br> <</if>> <<if $phase is "abomination" or ($phase is "away" and !$willpowerSuccess)>> Gwylan coughs in your arms, <<his>> eyes focusing. A small amount of pink goo trickles down <<his>> chin as <<he>> wakes. <br><br> <<He>> suddenly gasps in horror as <<he>> realises what happened. <<He>> reaches up and hugs you. "I'm sorry. I'm so sorry, dear." <<His>> eyes begin to water. "I should have been better prepared. It's... so difficult to resist. It gets under your skin, in your head, and it feels good. Too good. Next time, we need to ensure the connection doesn't slip." <<elseif $phase is "exorcism" or ($phase is "drop" and !$willpowerSuccess)>> Gwylan coughs in your arms, <<his>> eyes focusing. A small amount of pink goo trickles down <<his>> chin as <<he>> wakes. <br><br> <<He>> gazes up at you, smiling. "Good work. That was a lesser Elkspawn that we just exorcised." <<He>> coughs again. "I couldn't have done it alone." <<elseif $phase is "banish" or $phase is "expunge">> Gwylan hugs you. "Good work. That was a lesser Elkspawn that we just exorcised." <<He>> coughs again. "You have a talent for this." <</if>> /* The Gwylan lap pillow is mandatory. You can not escape it. */ /*Nuh-uh, you can't tell me what to do. */ <<if _resent and $willpowerSuccess>> Your will is strong, <span class="green">and you push through.</span> <br><br> <<if $phase is "resent">> Feeling your limbs fall free, you get up on your feet and scramble away from <<him>>. <<elseif $phase is "away">> You shove <<him>> away in horror. <br><br> Gwylan coughs, <<his>> eyes focusing. A small amount of pink goo trickles down <<his>> chin as <<he>> wakes. <br><br> <<He>> suddenly gasps in horror as <<he>> realises what happened, and moves towards you. <<He>> reaches out, but you recoil further. "I'm sorry. I'm so sorry, dear." <<His>> eyes begin to water. "I should have been better prepared. It's... so difficult to resist. It gets under your skin, in your head, and it feels good. Too good. Next time—" <br><br> You wince at the word, and <<he>> notices. <<elseif $phase is "drop">> You drop <<his>> arm, gather your belongings and head out of the garden. <br><br> You hear coughing behind you, and cast a glance over your shoulder. Gwylan is on <<his>> knees, wiping away a small amount of pink goo trickles from his mouth. <<He>> looks up at you confusedly. <</if>> <br><br> "D-Dear?" Gwylan reaches for you, but stops when <<he>> sees <<switch $speech_attitude>> <<case "meek">> the tears in your eyes. <<case "bratty">> the anger in your eyes. <<default>> the way you avoid looking into <<his>> eyes. <</switch>> <<if $sexRitual.hypnosis is "Gwylan">> "Did I scare you?" <<if _gwylanTF.tail is "revealed">> You catch <<his>> tail dropping dejectedly behind <<him>>. <<else>> <<His>> face is beet-rooted red, as if ashame of <<himself>>. <</if>> <br><br> "I'm sorry, I—" <<He>> takes a few steps towards you, then freezes when you recoil further. "...Sorry. I'll just stay right here." <<elseif $sexRitual.end is "askStop" or $sexRitual.end is "spent">> "What's wrong? Are you hurt?" <<He>> tries to get closer to check on you. You back away further. <<He>> gets the hint and stops <<himself>>. "I-I can help, dear!" <<elseif $sexRitual.end is "Gwylan">> "What's wrong, dear?" <<He>> looks you over. <<else>> <<He>> seems unsure what to do. <</if>> <<npcincr Gwylan lust -20>><<llllust>> <br><br> You feel empty and want nothing more than to get away from here. You turn and walk away from <<him>>. <br><br> "Wait!" <<He>> clenches <<his>> hand at <<his>> side. <<His>> expression is unreadable. "You agreed to this. You can't back away now."<<stress 3>><<gstress>> <br><br> You stand rooted on the spot, still not looking at <<him>>. <br><br> "At least... let me help." <<He>> wraps you in a towel and hugs you from behind. <br><br> <<if !$gwylanSeen.includes("PCResentGwylan")>> <<set $gwylanSeen.pushUnique("PCResentGwylan")>> "If you can find it in your heart to forgive me, can you—" <<He>> holds you tighter. "—return to me after a week. Please," <<he>> whispers. "I can't do this without you." <<else>> "My dear," <<he>> coos into your ear. "You know I can't do this without you." <</if>> <br><br> You try to move. <<He>> doesn't let up. "Don't go. Stay... even just for a while." <br><br> <<link [[Stay|Gwylan Ritual Sex End 2]]>><<set $phase to "stay">><</link>> <br> <<link [[Leave|Forest Shop Entrance]]>><<gwylanRitualPenetrate "withdraw">><<gwylanRitualEnd>><<endevent>><</link>> <br> <<else>> <<if $sexRitual.hypnosis is "Gwylan">> <<He>> has trouble keeping eye contact. <<if _gwylanTF.tail is "revealed">> You catch <<his>> tail still wagging like a puppy's for a while, especially whenever you look directly at <<him>>. <<else>> <<He>> blushes fiercely whenever you look directly at <<him>>. <</if>> <br><br> "Stop looking at me like that." <<He>> <span class="pink">shoves your head in <<his>> lap</span>. "There. Now I don't have to suffer your gaze." <<He>> holds you there for some time. <<pain -33>><<lllpain>> <<elseif $sexRitual.end is "askStop" or $sexRitual.end is "spent">> <<He>> fusses over you for a while. "Knowing your limits is important. There's no shame." <<He>> caresses your cheek and all but forces you to use <<his>> lap as a pillow for a while. <<pain -33>><<lllpain>> <<elseif $sexRitual.end is "Gwylan">> You move to stand, but <<he>> pulls you back down and forcibly cuddles you for some time. <<pain -33>><<lllpain>> <<else>> <<He>> pulls your head into <<his>> lap and strokes your head for a little while before helping you stand. <<pain -33>><<lllpain>> <</if>> <br><br> You feel empty, but in a comforting way. <br><br> "We should wait a week to make sure we recover. That's around how long it takes me to replace the reagents as well," <<he>> says, leading you over to the wooden tub again. <br><br> <<He>> hoses you both down with warm water. <<if ["exorcism", "banish", "expunge", "abomination","resent","away","drop"].includes($phase)>><<He>> spends some time rinsing <<his>> mouth, too.<</if>> <<wash>> <br><br> <<if !$gwylanSeen.includes("ritual_sex")>> "I hope it wasn't too much. I know this all must be a lot for you." <<He>> clasps <<his>> hands together in front of <<him>>. "I hope you realise how much trust I've put in you, showing you all of this and asking for your help. Not to mention being this physical with you. It doesn't come easy for me." <br><br> <<He>> briefly disappears into the shop, returning with <<his>> robe and a tray of tea. "It's lemon. It helps wash out the... aftertaste." You didn't notice it until <<he>> mentioned it, but you do have a strange taste in your mouth and throat. The tea helps. It's quite good. <<stress -2>><<lstress>> <<else>> <<He>> briefly disappears into the shop, returning with <<his>> robe and a tray of lemon tea. It's quite good. <<stress -2>><<lstress>> <</if>> <br><br> <<link [[Next|Gwylan Ritual Sex End 2]]>><<pass 10>><</link>> <br> <</if>><<effects>><<run statusCheck("Gwylan")>> <<if $phase is "stay">> <<He>> hoses you down with warm water, then dries you off with the towel. <<wash>> <<He>> briefly disappears into the shop, returning with <<his>> robe and a tray of lemon tea. It's quite good. <<stress -2>><<lstress>> <br><br> <</if>> <<outfitChecks>> You <<= !_fullyNaked ? "get dressed and enjoy" : "enjoy">> the sounds of the forest from the garden for a while. Gwylan's humming adds to the chorus. <br><br> <<He>> speaks. <<if !$sexRitual.sealed>> /* Shouldn't be reachable in current implementation */ "I'm afraid our efforts were for naught. <span class="red">The seal was never finished.</span> Everything will simply leak back into the world. We must be more vigilant next time." <<else>> <<if $auriga_scar gte 1 and $sexRitual.purge gte 1>> <<set $sexRitual.purge -= 1>> <</if>> <<if $sexRitual.purge gte 9>> "<span class="green">I don't think I've ever conducted such an effective cleansing before.</span>" <<He>> coughs, and you notice just how sickly <<he>> looks. <<He>> waves you off. "The worse I look, the better we did. I'll recover. It's all thanks to you, though. You're incredible." <<He>> leans in and kisses you on the cheek. <<npcincr Gwylan dom 3>><<ggyearning>> <<elseif $sexRitual.purge gte 6>> "<span class="teal">You did a fantastic job today.</span>" <<He>> smiles warmly, but looks a little pale. <<npcincr Gwylan dom 1>><<gyearning>> <<elseif $sexRitual.purge gte 3>> "We did good today, <span class="blue">although we could have done better</span>." <<else>> "<span class="purple">We didn't do very well,</span> although it wasn't any less effective than what I'm able to do alone. We'll just have to try harder next week." <</if>> <br><br> <<if $sexRitual.chaseTrue>> "The chase. <span class="forest-green">The mating ritual.</span> It was... nice." You expect <<him>> to look away, but instead, <<he>> stares at you longingly for a moment. <<elseif $sexRitual.chaseWon>> "<span class="green">You won our little chase,</span> which made the forest accept you as one of its own. It's a good bit of fun." <<elseif $sexRitual.chase>> "<span class="purple">If you had caught me during the mating ritual,</span> the forest would have accepted you as one of its own. Don't feel bad, though! I had a lot of fun with it." <<else>> "Without the mating ritual, <span class="purple">the forest won't fully accept you as one of its own</span>." <<He>> stares off into the treeline longingly. <</if>> <br><br> <<if $sexRitual.vision>> "<span class="green">You managed to withstand the initial intake of the poison and become the forest's vessel beautifully.</span> You were truly one with all of it for a precious moment. Such a feat requires impressive will." <<elseif $sexRitual.visionForced>> "I had to force you to withstand the initial intake of the poison long enough to become the forest's vessel. It was effective, <span class="blue">but would have been more so if you were able to do it yourself</span>. Such a feat requires great willpower." <<else>> "You weren't able to withstand much of the initial poison intake. Doing so requires great willpower, <span class="blue">but the trances I can put you in may make it easier</span>." <</if>> <<He>> starts to clean up as <<he>> talks. <br><br> <<set _purgeCount to $sexRitual.playerOrgasms -2>> <<if _purgeCount gt 1>> "After we became One, we purged <<if _purgeCount is 1>> <span class="purple">only once</span>. <<if $sexRitual.playerOrgasms is $sexRitual.orgasmTarget>> I don't know if you can handle more yet, and I didn't want to take any risks this time." <<He>> places a hand under <<his>> chin in thought. <<elseif $sexRitual.end is "Gwylan">> Try to relax next time. You're the one that has to reach climax, not me." <<He>> giggles. <<else>> We should work on your stamina and willpower." <<He>> giggles. <</if>> <<elseif _purgeCount is 2>> <span class="blue">twice</span>. <<if $sexRitual.playerOrgasms is $sexRitual.orgasmTarget>> I don't know if you can handle more yet, and I didn't want to take any risks this time." <<He>> places a hand under <<his>> chin in thought. <<elseif $sexRitual.end is "Gwylan">> Try to relax next time. You're the one that has to reach climax, not me." <<He>> giggles. <<else>> We should work on your stamina and willpower." <<He>> giggles. <</if>> <<elseif _purgeCount lte 5>> <span class="teal"><<number _purgeCount>> times</span>. Your performance was... satisfactory." <<He>> giggles. <<else>> <span class="green"><<number _purgeCount>> times</span>. Your performance was impressive, to say the least. You really know how to give a <<personsimple>> a good time." <<He>> giggles. <<npcincr Gwylan dom 1>><<gyearning>> <</if>> <<else>> "After we became One, <span class="red">we weren't able to purge any further</span>. Something blocked the connection." <</if>> <<if ["exorcism", "banish", "expunge", "abomination"].includes($phase)>> <br> <<if $phase is "abomination">> "The monstrosity that took me is gone, although there's no way to know if it's simply returned to the other side of consciousness. I'm... sorry, again." <<He>> hugs you. <<elseif $phase is "exorcism">> "The monstrosity we expelled is gone, although there's no way to know if it's simply returned to the other side of consciousness. I'm not used to them coming through so directly." <<He>> places a hand over <<his>> stomach. <<elseif $phase is "banish">> "The monstrosity that tried to take me... you banished it. It's gone forever. That alone will make the world a better place." <<He>> pats you on the head. <<elseif $phase is "expunge">> "The monstrosity that tried to take me... you... well, I don't know what you did, but I think it's safe to say that it's gone forever. That alone will make the world a better place." <<He>> pats you on the head. <</if>> <</if>> <</if>> <br><br> You finish your tea. <<if $gwylanSeen.includes("partners") and !_gwylanStatus.includes("cautious")>> Gwylan rests <<his>> head on your shoulder and wraps a single arm around you. <<else>> Gwylan sits right next to you, any concept of personal space between you very much broken after what you just went through. <</if>> You both take the chance to relax in the fading afterglow. <<if $world_corruption_soft gte 50>> You both know there's still much work to be done. <<else>> It might just be your imagination, but everything seems a little more vibrant. <</if>> <<if $gwylan.wary gt 1 and $sexRitual.purge gte 1>> <<set $gwylan.wary -= 1>> <<if $gwylan.wary lte 1>> <<set $gwylan.forgiven to true>> <<else>> <span class="green">Gwylan seems to let <<his>> guard down.</span> <<glove>> <</if>> <</if>> <br><br> <<specialClothesUnlock "item" "sage witch hat">> <<gwylanRitualPenetrate "withdraw">> <<gwylanRitualEnd>> <<if $gwylan.forgiven>> <<run delete $gwylan.forgiven>> Gwylan stares through you. <br><br> <<link [[Look away|Gwylan Ritual Forgive]]>><<set $phase to 1>><</link>> <br> <<link [[Stare back|Gwylan Ritual Forgive]]>><<set $phase to 2>><</link>> <br> <<else>> Eventually, Gwylan leads you back into the shop. <br><br> <<link [[Next|Forest Shop Entrance]]>><<endevent>><</link>> <br> <</if>><<effects>><<run statusCheck("Gwylan")>> <<if $phase is 1>> You look away. Gwylan stands up and walks in front of you. You look away again. <<He>> lightly grabs your chin and turns it back to face <<him>>. <<else>> You stare back, beginning an unspoken staring contest. You blink first. <<He>> doesn't seem to care. <</if>> <br><br> <<if $auriga_scar and $gwylanSeen.includes("auriga_scar") and !$gwylanSeen.includes("auriga_scar_forgiven")>> <<set $gwylanSeen.pushUnique("auriga_scar_forgiven")>><<set $gwylanSeen.pushUnique("nobody")>> <<He>> removes <<his>> witch hat. <<His>> face gets closer to yours. "Do you understand yet?" <br><br> Before you can answer, <<his>> hand rests on the back of your head. "Look closer." <br><br> <<His>> face is all that fills your vision. "Closer." <br><br> Your foreheads touch. You stare into each other's eyes. Your heart throbs, spreading a thin, crackling pain. <<His>> eyes close. <br><br> <span class="purple">Upon Gwylan's head sits a crown of warped, regal antlers, each tipped with three prongs. The space within them boils and writhes with emptiness, just like the invisible scar above your heart.</span> They make stars in your vision as <<he>> pulls away. <br><br> "We're the same. You were a fox, following along in the footsteps of the hound." <<His>> eyes reveal a deep exhaustion for just a moment. "We navigate the waters of damnation, trying to chart a course to clearer seas. We've misstepped, but mistakes make us... human." You hear a sound like crumbling glass as the wind blows. The shape of <<his>> antlers melds with the swaying tree branches behind <<him>>, until they're indistinguishable. "Let our sins be the wind at our backs, filling our sails. Where it guides us, well... we only need to steer." <br><br> <<He>> looks towards the town. You follow, and realise that's not really where either of you are looking. "My half-sibling said that to me, many years ago." <<if $avery_fate is "ascended">> <<His>> gaze trails upwards. The tip of Avery's skyscraper is just visible above the treeline. "The Violet Elk's tower casts a shadow, and will continue to bolster the poison. I can't continue the way I was, not anymore. I would break open like an overripe fruit if I tried to take it all in myself." <</if>> <<He>> looks back to you and <<if $gwylanSeen.includes("partners")>> kisses you on the forehead. <<else>> pokes you on the nose. <</if>> "You've steered away from the storm with me. Please don't leave me to sail this ship alone." <<else>> <<if $brownFoxRevealed>> <<He>> exhales. "I was hesitant to trust you after you blew my cover at the party. I suspected that you had loyalties to the Children of—" <<he>> clears <<his>> throat. "For the Violet Elk." <<His>> head tilts. "But here you are, aiding me in eating their poison." <<else>> <<He>> smiles. "Forgive me. I'm merely looking for something that isn't there." <</if>> <br><br> <<He>> pulls away from you. "You're still an enigma, but I appreciate all you're doing to help me." <</if>> <br><br> <span class="green">Gwylan is no longer wary of your intentions.</span> <<gglove>> <br><br> <<if $beastRitual>> <<link [[Next|Gwylan Ritual Bait Exit]]>><</link>> <br> <<else>> <<link [[Next|Forest Shop Entrance]]>><<endevent>><</link>> <br> <</if>><<effects>><<run statusCheck("Gwylan")>> <<canvas-model-temporary-effect "petals">> <span class="purple"><<He>> struggles against you, continually trying to push you away.</span> After a moment, <<he>> seems to give up. <<gwylanHypnosis "devotion" 1>> <br><br> <<link [[Keep kissing Gwylan|Gwylan Ritual Yearn 2]]>><<set $sexRitual.kissCount++>><<npcincr Gwylan dom 1>><</link>><<gwylanHypnoNote "kiss">><<ggyearning true>> <br> <<link [[Pull away|Gwylan Ritual Yearn Slap]]>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<canvas-model-temporary-effect "petals">> <span class="purple"><<if $sexRitual.bondage>>You feel <<him>> exhale<<else>><<His>> eyes close<</if>> as <<he>> submits to your kiss.</span> <<gwylanHypnosis "devotion" 1>> <br><br> <<link [[Keep kissing Gwylan|Gwylan Ritual Yearn Slap]]>><<set $sexRitual.kissCount++>><<npcincr Gwylan dom 1>><</link>><<gwylanHypnoNote "kiss">><<gggyearning true>> <br> <<link [[Pull away|Gwylan Ritual Yearn Slap]]>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<canvas-model-override "clear">> <<if $sexRitual.kissCount gte 3>> <<if $sexRitual.bondage>> <span class="red"><<He>> rips off your blindfold. You taste blood.</span> <<elseif $sexRitual.hypnosis is "Gwylan">> <span class="red">Light returns to <<his>> eyes as they snap open. You taste blood.</span> <<else>> <span class="red"><<His>> eyes snap open. You taste blood.</span> <</if>> <br><br> You withdraw, and cough. Several rose petals flutter out of your mouth. Gwylan takes the opportunity to harshly push you off of <<him>>. <<if $sexRitual.bondage and $sexRitual.hypnosis is "Gwylan">><<Hes>> fully lucid now.<</if>> <<else>> <<if $sexRitual.bondage>> <span class="red"><<He>> tears off your blindfold as you disengage.</span> You blink as your vision returns to you. The soft lights that fill the garden feel overbearing after so long in the darkness. Gwylan takes the opportunity to harshly push you off. <<elseif $sexRitual.hypnosis is "Gwylan">> <span class="red">Light returns to <<his>> eyes. <<He>> harshly pushes you off as you disengage.</span> <<else>> <span class="red"><<He>> harshly pushes you off as you disengage.</span> <</if>> <</if>> <br><br> <<He>> stands up, and turns away from you. <<if $sexRitual.bondage>> <<if $sexRitual.hypnosis isnot "Gwylan">>As your eyes adjust to the light, you feel your other senses rapidly returning.<</if>> You slowly bring yourself to a kneel, unable to stand with your legs still bound. <<else>> <<if $sexRitual.hypnosis isnot "Gwylan">>You feel your senses rapidly returning.<</if>> You slowly stand, too. <</if>> <br><br> Gwylan's fists are clenched. <<He>> turns around, <<his>> face full of rage, and <span class="red"><<he>> slaps you across the face.</span> <<pain 4>><<gpain>> <br><br> "Y-you... you rotten <<girl>>!" You see tears welling up in <<his>> eyes. "My first rule. I..." <br><br> <<He>> looks down, <<his>> eyes dark. "Get out. Leave. Now." <<if $sexRitual.bondage>> The vines that bind your arms and ankles slacken and fall to the ground. <<unbind>> <<set $worn.face.type.push("broken")>> <<faceruined>> <</if>> <br><br> <<link [[Apologise|Gwylan Ritual Sex Scorned]]>><<set $phase to 0>><</link>> <br> <<link [[Leave|Gwylan Ritual Sex Scorned]]>><<set $phase to 1>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<gwylanRitualPenetrate "withdraw">> <<gwylanRitualEnd>> <<set $orgasmdown to 0>><<arousal -500>> <<if $phase is 0>> "I'm sorry, I just... it was so nice, and you looked so—" <br><br> <b>"<span class="witch">Leave!</span>"</b> <br><br> The command shoots through you. Fear grips your mind. You collect your clothes and run to the garden's entrance. <<stress 33>><<gggstress>> <<else>> You quickly collect your clothes and walk back to the garden's entrance. <</if>> <br><br> You hear light sobbing behind you. "<span class="red">And... and don't ever come back. I never want to see your face again.</span>" <br><br> <<gwylanRequestEnd "skip">> <<npcset Gwylan state "scorned">> <<set $daily.gwylan.preventProgress to true>> <<set $gwylan.timer.scorned to new DateTime(Time.date).addDays(9).timeStamp>> You heart races. You leave the shop. <br><br> The front door slams shut behind you, and you hear several locks click into place. You can faintly hear Gwylan wailing in the garden from here. <br><br> <<link [[Next|Gwylan Ritual Sex Scorned 2]]>><</link>> <br><<effects>><<set $location to "forest_shop">><<run statusCheck("Gwylan")>> You turn to leave the shop behind, wondering what you should do. <br><br> As you start to walk, the shop creaks and groans mournfully, as if apologising. <span class="green">You hear a single lock come undone.</span> <br><br> Perhaps you haven't been entirely cast out. <br><br> <<link [[Next|Forest]]>><<endevent>><<set $forest to 0>><<set $eventskip to 1>><</link>> <br> <!-- End Gwylan sex event --><<widget "gwylanRitualTattooVision">> <<if !$sexRitual.bondageTattooSeen>> <<set $sexRitual.bondageTattooSeen to true>> Coloured spots drift across the darkness that fills your vision. They snake together and amalgamate into the shape of a tri-cornered knot. You recognise it as the tattoo on Gwylan's stomach. It glows brightly. <<else>> The vision of Gwylan's tattoo glows, imprinted on the back of your eyelids. <</if>> <</widget>> <<widget "gwylanRitualEffects">> <<if $sexRitual.playerControlsSpeed and !["continue","slow","fast","bodyhold","leghold","topAttempt","headPush","headPet","hairPlay","hairPull","askStop","askStopFail","thighsPenetrate"].includes($sexRitual.action) and $sexRitual.hypnosis isnot "Gwylan" and !$sexRitual.onTop>> <<set $sexRitual.playerControlsSpeed to false>> <span class="pink">You release Gwylan, relinquishing control.</span> <<set _skipControl to true>> <</if>> <<if $NPCList[0].mouth is "kiss" and $sexRitual.action isnot "kissPull">> /* Kissing Gwylan */ <<switch $sexRitual.kissCount>> <<case 1>> <<if $sexRitual.hypnosis is "Gwylan">> <<He>> sloppily licks your face as you try to keep kissing <<him>>. <<elseif _gwylanStatus.includes("heat")>> <<His>> tongue eagerly explores your mouth. <<else>> <<He>> hesitantly returns the kiss. <</if>> <<set $sexRitual.arousal += 4>> <<case 2>> <<if $sexRitual.hypnosis is "Gwylan">> <<He>> barks, which is muffled as you continue kissing <<him>>. <<elseif _gwylanStatus.includes("heat")>> <<His>> tongue eagerly explores your mouth. <<else>> <<He>> hesitantly returns the kiss. <</if>> <<set $sexRitual.arousal += 6>><<npcincr Gwylan dom 1>><<gyearning>> <<default>> <<set $sexRitual.noKiss to true>><<set $NPCList[0].mouth to 0>><<set $mouthuse to 0>> <<if _gwylanStatus.includes("heat")>> <<His>> hungrily returns the kiss for one more moment, before pushing your face away. <<else>> <<He>> lazily returns the kiss for one more moment, before pushing your face away. <</if>> <<if $sexRitual.hypnosis is "Gwylan">> <<He>> whines. <<else>> "You're insatiable." <</if>> <<set $sexRitual.arousal += 10>><<npcincr Gwylan dom 1>><<gyearning>> <</switch>> <br><br> <<set $sexRitual.kissCount++>> <</if>> <<switch $sexRitual.action>> /* actions after failing to top */ <<case "quiet">> <<set $sexRitual.arousal -= 5>><<set $sexRitual.action to "paralysed">> A small whine escapes your mouth, but you're able to resist apologising. Gwylan <<= $sexRitual.bondage ? "seems displeased" : "frowns">>. <<if $sexRitual.petplay>> <<He>> yanks your leash again, before slackening the grip and letting your head drop back onto a pillow. <<else>> <<He>> drops <<his>> hand, making your head feel heavy. You fall back onto a pillow. <</if>> <<= $sexRitual.bondage ? "Strands of green light swirl behind your blindfold, making you feel nauseous" : "The room spins">> as you lay flat on your back. <br><br> <<if _gwylanStatus.includesAny("dom", "lust") and $settings.asphyxiaLevel gte 1>> You feel <<his>> hands pressing on you again, <<if $sexRitual.bondage>> and the eddy of light stills, morphing once more into the shape of three foxlike eyes. <<else>> and <<his>> face comes into view. <</if>> <<He>> <span class="lewd">licks your cheek,</span> and then proceeds to <span class="red">wrap a hand around your throat.</span> <<Hes>> barely applying any pressure, only using the tips of <<his>> fingers, but you find yourself unable to breathe all the same. <<stress 24>><<ggstress>> <br><br> <b>"<span class="witch">Breathe.</span>"</b> <br><br> Your lungs suck in air. You don't feel Gwylan's hand on you anymore, and you wonder if <<he>> was even choking you to begin with. Satisfied with your obedience, <<he>> sits back up. <<elseif $sexRitual.bondage>> The vines that bind your wrists and ankles constrict <span class="red">and sprout thorns</span>. They don't hurt, but they are uncomfortable. Gwylan leans in close enough that you can feel <<his>> breath against your cheek. <<else>> You feel tension on your wrists, ankles and neck. You look to the side and see <span class="red">thorny vines</span> constricting them. The thorns don't hurt, though. Gwylan leans down on you, bringing your face close to <<hers>>. <</if>> "Behave. We need to do this right." <<case "apologise">> <<set $sexRitual.arousal += 1>> <<if $speech_attitude is "meek">> "I-I'm sorry, I'll be good," you say. <<elseif $speech_attitude is "bratty">> "I'm sorry," you try to say angrily. It comes out more like a whine. <<else>> "I'm sorry for being bad," you say. <</if>> <br><br> Gwylan <<= $sexRitual.bondage ? "gives a satisfied hum": "looks down at you with a satisfied expression">>. "<<pcPetname "Gwylan" "good">>." The words ring in your ears as feeling slowly returns to your limbs. <<set $sexRitual.action to "rest">> <<stress -6>><<lstress>><<arousal 50>><<garousal>> <<case "bark">> <<set $sexRitual.arousal += 3>> <<if $sexRitual.hypnosis is "player">> <<hypnosisText "You bark again, sticking your tongue out and showing off your belly in submission.">> <<else>> <<if $wolfgirl gte 6>> You bark <<elseif $cat gte 6>> You try to bark, although it comes out more like a sharp meow, <<elseif $cow gte 6>> You try to bark, although it comes out more like a quick moo, <<elseif $harpy gte 6>> You try to bark, although it sounds more like a brief chirp, <<elseif $fox gte 6>> You try to bark, although it's more of a yip, <<else>> You bark for effect, although you're not sure if you did it willingly, <</if>> and show off your belly. <<if $sexRitual.hypnosis isnot "player">><<gwylanHypnosis "devotion" 2>><br><br><</if>> <<set $sexRitual.hypnosis to "player">> <</if>> Gwylan <<= $sexRitual.bondage ? "hums" : "smiles">>. <<if _gwylanStatus.includesAny("dom", "lust")>> "I can't stay mad at you." <<elseif _gwylanLovePercent gte 75>> "<<pcPetname "Gwylan" "good">>." The words ring in your ears. <<stress -6>><<lstress>><<arousal 50>><<garousal>> <<else>> "Close enough." <</if>> <<if $sexRitual.petplay>> <<He>> slackens <<his>> grip on your leash. <<else>> <<He>> lowers <<his>> hand, and your head no longer feels like it's being pulled. <</if>> <<set $sexRitual.action to "rest">> Feeling slowly returns to your limbs. <<if $wolfgirl gte 6>> <br><br> <<else>> <<deviancy2>> <</if>> <<gwylanHypnosis "devotion" 2>> /* Player controlling speed */ <<case "fast">> <<if $sexRitual.willContest is "fast">> <<if $sexRitual.actionLast is "fast">> You continue to obey Gwylan's command, <<switch $sexRitual.position>> <<case "gwylanDoggyVaginal" "gwylanDoggyAnal" "gwylanRidingVaginal" "gwylanRidingAnal">> thrusting into <<him>> like a beast in rut. <<case "playerDoggyVaginal" "playerDoggyAnal">> pushing back against <<him>> like a beast in heat. <<case "gwylanRidingThighs">> fucking <<his>> thighs like a beast in rut. <<case "gwylanRidingTrib">> grinding your pussies together like a beast in rut. <<case "serviceTop">> servicing <<him>> as best you can. <<case "gwylanMissionaryVaginal" "gwylanMissionaryAnal">> mating <<him>> like a beast in rut. <<case "playerRidingVaginal" "playerRidingAnal">> riding <<him>> like a beast in heat. <<default>> fucking <<him>> like an animal. <</switch>> <<else>> You obey Gwylan's command, <<switch $sexRitual.position>> <<case "gwylanDoggyVaginal" "gwylanDoggyAnal" "gwylanRidingVaginal" "gwylanRidingAnal">> thrusting into <<him>> faster. <<case "playerDoggyVaginal" "playerDoggyAnal">> pushing back against <<him>> faster. <<case "gwylanRidingThighs">> fucking <<his>> thighs faster. <<case "gwylanRidingTrib">> grinding your pussies together faster. <<case "serviceTop">> servicing <<him>> faster and harder. <<case "gwylanMissionaryVaginal" "gwylanMissionaryAnal">> mating <<him>> faster. <<case "playerRidingVaginal" "playerRidingAnal">> riding <<him>> faster. <<default>> fucking <<him>> faster. <</switch>> <</if>> <<set $sexRitual.speed to "fast">> <<elseif ["stop", "slow"].includes($sexRitual.willContest)>> You try to defy Gwylan's command, opting to go faster. <<if $physiqueSuccess and $willpowerSuccess>> <<set _defied to true>><<set $sexRitual.speed to "fast">> <span class="green">You power through the compulsion to submit.</span> <<else>> <span class="red">Guilt and shame tug at your mind,</span> as if you're afraid of disappointing <<him>>. Your will bends to <<hers>>, and you <<if $sexRitual.willContest is "stop">> <<set $sexRitual.speed to "stop">><<set $sexRitual.action to "stop">> slow to a stop. <<if $sexRitual.onTop and !$sexRitual.sealed>> <span class="pink"><<He>> takes the opportunity to push you back.</span> "You've had your fun, now let me work." <<He>> spreads your legs. <<if $sexRitual.bondage>>The vine that shackles your ankles grows taut.<</if>> <<set $sexRitual.onTop to false>><<set $sexRitual.playerControlsSpeed to false>><<set $sexRitual.action to "rest">><<set $sexRitual.position to "service">><<set $sexRitual.speed to "slow">><<set $sexRitual.willContest to "none">> <<if $player.penisExist>> <<gwylanRitualPenetrate "mouth" "penis">> <<else>> <<set $vaginause to "othermouth">><<set $NPCList[0].mouth to "vagina">> <</if>> <</if>> <<else>> <<set $sexRitual.speed to "slow">><<set $sexRitual.action to "slow">> slow down. <</if>> <</if>> <<else>> <<if $sexRitual.actionLast is "fast">> <<switch $sexRitual.position>> <<case "gwylanDoggyVaginal" "gwylanDoggyAnal" "gwylanRidingVaginal" "gwylanRidingAnal">> You continue thrusting into <<him>> like a beast in rut. <<case "playerDoggyVaginal" "playerDoggyAnal">> You continue pushing back against <<him>> like a beast in heat. <<case "gwylanRidingThighs">> You continue fucking <<his>> thighs like a beast in rut. <<case "gwylanRidingTrib">> You continue grinding your pussies together like a beast in rut. <<case "service">> You continue pushing <<his>> head down quickly. <<case "serviceTop">> You continue <<if C.npc.Gwylan.penis isnot "none">> taking Gwylan's <<npcPenis>> fast and hard, servicing the shaft with your hands. <<else>> lapping at Gwylan's <<npcVagina>>, licking and poking your tongue in as far as you can. <</if>> <<case "facefuckTop">> You continue fucking Gwylan's <<if $player.penissize gte 3>>throat<<else>>mouth<</if>> ruthlessly. <<case "facesitTop">> You continue grinding on and humping Gwylan's face. <<case "gwylanMissionaryVaginal">> You continue mating Gwylan hard. <<case "gwylanMissionaryAnal">> You continue mating Gwylan hard. <<case "playerRidingVaginal">> You continue riding Gwylan hard, keeping <<him>> pinned under you. <<case "playerRidingAnal">> You continue riding Gwylan hard, keeping <<him>> pinned under you. <<default>> You continue fucking <<him>> like an animal. <</switch>> <<else>> <<switch $sexRitual.position>> <<case "gwylanDoggyVaginal" "gwylanDoggyAnal" "gwylanRidingVaginal" "gwylanRidingAnal">> You start thrusting into <<him>> faster. <<case "playerDoggyVaginal" "playerDoggyAnal">> You start pushing back against <<him>> faster. <<case "gwylanRidingThighs">> You start fucking <<his>> thighs faster. <<case "gwylanRidingTrib">> You start grinding your pussies together faster. <<case "service">> <<if $sexRitual.bondage>> You lock your bound wrists against the back of <<his>> head and start pushing <<him>> down quickly. <<else>> You start pushing <<his>> head down quickly. <</if>> <<case "serviceTop">> <<if C.npc.Gwylan.penis isnot "none">> You <<oraltext>> take Gwylan's <<npcPenis>> quickly and hungrily. <<else>> You <<oraltext>> lick and service Gwylan's <<npcVagina>> hungrily. <</if>> <<case "facefuckTop">> You hump Gwylan's face, <<peniletext>> fucking Gwylan's <<if $player.penissize gte 3>>throat<<else>>mouth<</if>>. <<case "facesitTop">> You <<vaginaltext>> grind on and hump Gwylan's face. <<case "gwylanMissionaryVaginal">> You bear down on Gwylan hard, <<peniletext>> mating with <<him>>. <<case "gwylanMissionaryAnal">> You bear down on Gwylan hard, <<peniletext>> fucking <<his>> ass. <<case "playerRidingVaginal">> You <<vaginaltext>> ride Gwylan hard, keeping <<him>> pinned under you. <<case "playerRidingAnal">> You <<analtext>> ride Gwylan hard, keeping <<him>> pinned under you. <<default>> You start fucking <<him>> faster. <</switch>> <</if>> <<set $sexRitual.speed to "fast">> <</if>> <<case "slow">> <<if $sexRitual.willContest is "slow">> <<if $sexRitual.actionLast is "slow">> You continue to obey Gwylan's command, <<switch $sexRitual.position>> <<case "gwylanDoggyVaginal" "gwylanDoggyAnal" "gwylanRidingVaginal" "gwylanRidingAnal">> thrusting into <<him>> slowly and gently. <<case "playerDoggyVaginal" "playerDoggyAnal">> pushing back against <<him>> slowly and gently. <<case "gwylanRidingThighs">> grinding against <<his>> thighs slowly and gently. <<case "gwylanRidingTrib">> grinding your pussies together slowly and gently. <<case "serviceTop">> <<if C.npc.Gwylan.penis isnot "none">> taking Gwylan's <<npcPenis>> gently. <<else>> licking and servicing Gwylan's <<npcVagina>> gently. <</if>> <<case "gwylanMissionaryVaginal">> making love to <<him>> slowly. <<case "gwylanMissionaryAnal">> fucking <<his>> ass gently. <<case "playerRidingVaginal">> <<= $sexRitual.bondage ? "riding" : "embracing">> <<him>> slowly. <<case "playerRidingAnal">> riding <<him>> slowly. <<default>> fucking <<him>> slowly. <</switch>> <<else>> You obey Gwylan's command, <<switch $sexRitual.position>> <<case "gwylanDoggyVaginal" "gwylanDoggyAnal" "gwylanRidingVaginal" "gwylanRidingAnal">> thrusting into <<him>> slower. <<case "playerDoggyVaginal">> pushing back against <<him>> slower. <<case "gwylanRidingThighs">> fucking <<his>> thighs slower. <<case "gwylanRidingTrib">> grinding your pussies together slower. <<case "serviceTop">> slowing down your service. <<case "gwylanMissionaryVaginal">> and start to make gentle love to <<him>>. <<case "gwylanMissionaryAnal">> and start fucking <<his>> ass slowly. <<case "playerRidingVaginal">> and start to gently grind against <<him>><<if !$sexRitual.bondage>> as you embrace<</if>>. <<case "playerRidingAnal">> and start to gently ride <<him>>. <<default>> fucking <<him>> slower. <</switch>> <</if>> <<set $sexRitual.speed to "slow">> <<elseif ["stop", "fast"].includes($sexRitual.willContest)>> You try to defy Gwylan's command, opting to continue slowly. <<if $physiqueSuccess and $willpowerSuccess>> <<set _defied to true>><<set $sexRitual.speed to "slow">> <span class="green">You power through the compulsion to submit.</span> <<else>> <span class="red">Guilt and shame tug at your mind,</span> as if you're afraid of disappointing <<him>>. Your will bends to <<hers>>, and you <<if $sexRitual.willContest is "stop">> <<set $sexRitual.speed to "stop">><<set $sexRitual.action to "stop">> slow to a stop. <<if $sexRitual.onTop and !$sexRitual.sealed>> <span class="pink"><<He>> takes the opportunity to push you back.</span> "You've had your fun, now let me work." <<He>> spreads your legs. <<if $sexRitual.bondage>>The vine that shackles your ankles grows taut.<</if>> <<set $sexRitual.onTop to false>><<set $sexRitual.playerControlsSpeed to false>><<set $sexRitual.action to "rest">><<set $sexRitual.position to "service">><<set $sexRitual.speed to "slow">><<set $sexRitual.willContest to "none">> <<if $player.penisExist>> <<gwylanRitualPenetrate "mouth" "penis">> <<else>> <<set $vaginause to "othermouth">><<set $NPCList[0].mouth to "vagina">> <</if>> <</if>> <<else>> <<set $sexRitual.speed to "fast">><<set $sexRitual.action to "fast">> speed up. <</if>> <</if>> <<else>> <<if $sexRitual.actionLast is "slow">> <<switch $sexRitual.position>> <<case "gwylanDoggyVaginal", "gwylanDoggyAnal", "gwylanRidingVaginal", "gwylanRidingAnal">> You continue thrusting into <<him>> slowly and gently. <<case "playerDoggyVaginal" "playerDoggyAnal">> You continue pushing back against <<him>> slowly and gently. <<case "gwylanRidingThighs">> You continue pressing between <<his>> thighs slowly and gently. <<case "gwylanRidingTrib">> You continue grinding your pussies together slowly and gently. <<case "service">> You continue pushing <<his>> head down slowly and gently. <<case "serviceTop">> <<if C.npc.Gwylan.penis isnot "none">> You continue taking <<his>> <<npcPenis>> slowly and gently. <<else>> You continue licking <<his>> <<npcVagina>> slowly and gently. <</if>> <<case "facefuckTop">> You continue slowly facefucking <<him>>. <<case "facesitTop">> You continue slowly grinding on <<his>> face. <<case "gwylanMissionaryVaginal">> You continue gently fucking <<him>>. <<case "gwylanMissionaryAnal">> You continue gently fucking <<him>>. <<case "playerRidingVaginal">> <<if $sexRitual.bondage>> You continue slowly riding <<him>>. <<else>> You continue holding <<him>> tightly as you slowly ride <<him>>. <</if>> <<case "playerRidingAnal">> You continue slowly pleasuring <<him>> with your ass. <<default>> You continue fucking <<him>> slowly and gently. <</switch>> <<else>> <<switch $sexRitual.position>> <<case "gwylanDoggyVaginal" "gwylanDoggyAnal" "gwylanRidingVaginal" "gwylanRidingAnal">> You start thrusting into <<him>> slower. <<case "playerDoggyVaginal", "playerDoggyAnal">> You start pushing back against <<him>> slower. <<case "gwylanRidingThighs">> You start fucking <<his>> thighs slower. <<case "gwylanRidingTrib">> You start grinding your pussies together slower. <<case "service">> You start pushing <<his>> head down slowly and gently. <<case "serviceTop">> <<if C.npc.Gwylan.penis isnot "none">> You slowly, gently, and <<oraltext>> nurse Gwylan's <<npcPenis>>. <<else>> You slowly, gently, and <<oraltext>> lick and service Gwylan's <<npcVagina>>. <</if>> <<case "facefuckTop">> You slowly and <<peniletext>> thrust your <<penis>> in and out of Gwylan's <<if $player.penissize gte 3>>throat<<else>>mouth<</if>>. <<case "facesitTop">> You slowly and <<vaginaltext>> grind and wriggle on Gwylan's face. <<case "gwylanMissionaryVaginal">> You slowly and <<peniletext>> make love to Gwylan beneath you. <<case "gwylanMissionaryAnal">> You slowly and <<peniletext>> thrust in and out of Gwylan's ass. <<case "playerRidingVaginal">> <<if $sexRitual.bondage>> You <<vaginaltext>> sit in Gwylan's lap and ride <<if C.npc.Gwylan.penis is "none">><<his>> strap-on<<else>><<him>><</if>>. <<else>> You <<vaginaltext>> sit in Gwylan's lap, your arms and legs wrapped around <<him>> as you ride. <</if>> <<case "playerRidingAnal">> You <<analtext>> ride Gwylan, taking <<him>> in and out of your anus. <<default>> You start fucking <<him>> slower. <</switch>> <</if>> <<set $sexRitual.speed to "slow">> <</if>> <<case "continue">> <<if $sexRitual.willContest is "stop">> You defy Gwylan's command, <<switch $sexRitual.position>> <<case "gwylanDoggyVaginal" "gwylanDoggyAnal" "gwylanRidingVaginal" "gwylanRidingAnal" "gwylanMissionaryVaginal" "gwylanMissionaryAnal">> and try to keep thrusting into <<him>>. <<case "playerDoggyVaginal" "playerDoggyAnal">> and try to keep pushing back against <<him>>. <<case "playerMissionaryVaginal">> <<if $sexRitual.bondage>> and try to press your hips up against <<him>>. <<else>> and try to keep your legs locked around <<him>>. <</if>> <<case "serviceTop">> and try to continue servicing <<him>>. <<case "playerRidingVaginal" "playerRidingAnal">> and try to continue riding <<him>>. <<default>> and try to continue fucking <<him>>. <</switch>> <<if $physiqueSuccess and $willpowerSuccess>> <span class="green">Your will overpowers <<hers>>,</span> and you continue. <<set _defied to true>><<set $sexRitual.speed to "fast">> <<else>> <span class="red">Your will bends to <<hers>>,</span> and you slow to a stop. <<set $sexRitual.speed to "stop">><<set $sexRitual.action to "stop">> <<if $sexRitual.onTop and !$sexRitual.sealed>> <span class="pink"><<He>> takes the opportunity to push you back.</span> "You've had your fun, now let me work." <<He>> spreads your legs. <<if $sexRitual.bondage>>The vine that shackles your ankles grows taut.<</if>> <<set $sexRitual.onTop to false>><<set $sexRitual.playerControlsSpeed to false>><<set $sexRitual.action to "rest">><<set $sexRitual.position to "service">><<set $sexRitual.speed to "slow">><<set $sexRitual.willContest to "none">> <<if $player.penisExist>> <<gwylanRitualPenetrate "mouth" "penis">> <<else>> <<set $vaginause to "othermouth">><<set $NPCList[0].mouth to "vagina">> <</if>> <</if>> <</if>> <<else>> <<switch $sexRitual.position>> <<case"gwylanDoggyVaginal" "gwylanDoggyAnal" "gwylanRidingVaginal" "gwylanRidingAnal" "gwylanMissionaryVaginal" "gwylanMissionaryAnal">> You resume thrusting into <<him>>. <<case "playerDoggyVaginal" "playerDoggyAnal">> You resume pushing back against <<him>>. <<case "playerMissionaryVaginal">> <<if $sexRitual.bondage>> You resume pressing your hips up against <<him>>. <<else>> You resume keeping your legs locked around <<him>>. <</if>> <<case "serviceTop">> You resume your service. <<case "playerRidingVaginal" "playerRidingAnal">> You resume riding <<him>>. <<default>> You resume fucking <<him>>. <</switch>> <<set $sexRitual.speed to "slow">> <</if>> <<case "stop">> <<if $sexRitual.onTop>> <<set $sexRitual.speed to "stop">> You stop. <<if $sexRitual.hypnosis isnot "Gwylan" and !$sexRitual.sealed>> <span class="pink"><<He>> takes the opportunity to push you back.</span> "You've had your fun, now let me work." <<He>> spreads your legs. <<if $sexRitual.bondage>>The vine that shackles your ankles grows taut.<</if>> <<set $sexRitual.onTop to false>><<set $sexRitual.playerControlsSpeed to false>><<set $sexRitual.action to "rest">><<set $sexRitual.position to "service">><<set $sexRitual.speed to "slow">><<set $sexRitual.willContest to "none">> <<if $player.penisExist>> <<gwylanRitualPenetrate "mouth" "penis">> <<else>> <<set $vaginause to "othermouth">><<set $NPCList[0].mouth to "vagina">> <</if>> <</if>> <<else>> <<set $sexRitual.playerControlsSpeed to false>><<set $sexRitual.speed to "stop">> You relinquish control, stopping entirely. <</if>> /* Player on top */ <<case "kiss">> <<set $sexRitual.kissCount to 0>><<set $sexRitual.noKiss to true>> <<if !$gwylanSeen.includes("partners") and !_gwylanStatus.includesAny("aroused", "lust") and $sexRitual.hypnosis isnot "Gwylan">> <<set $sexRitual.action to "rest">> You bring your face close to Gwylan's. <<if !$gwylanSeen.includes("yearning")>> <span class="red"><<He>> pushes your face away and <<= $sexRitual.bondage ? "growls" : "glares at you">> angrily.</span> <span class="blue">It might be possible to catch <<him>> off guard if <<he>> trusts you more.</span> <<else>> <span class="purple"><<He>> moves <<his>> head aside and flicks you on the nose.</span> "You didn't learn a thing, did you?" <</if>> <<else>> <<if !$gwylanSeen.includes("yearning")>> <<canvas-model-temporary-effect "petals">> You <<if $sexRitual.bondage>>blindly <</if>>bring your face close to Gwylan's. <<His>> hot breath caresses your face as you move in. <<if $sexRitual.hypnosis is "Gwylan">> <<if $sexRitual.bondage>> <<He>> doesn't protest as you kiss <<him>>. <<else>> <<His>> lips purse ever so slightly, and you kiss <<him>>. <</if>> <<else>> "What are you—" <<he>> starts, before your lips meet. <span class="purple"><<He>> tries pushing you away, but can't.</span> <</if>> <<gwylanKiss>> <br><br> <<link [[Keep kissing Gwylan|Gwylan Ritual Yearn]]>><<npcincr Gwylan dom 1>><<set $sexRitual.kissCount++>><</link>><<gyearning true>> <br> <<link [[Pull away|Gwylan Ritual Yearn Slap]]>><</link>> <br> <<exitAll>> <<else>> <<set $NPCList[0].mouth to "kiss">><<set $mouthuse to "kiss">> <<set $sexRitual.arousal += 2>> You bring your face close to Gwylan's. <<His>> hot breath caresses your face as you move in. <<if _gwylanStatus.includes("heat") or $gwylanSeen.includes("romance")>> <span class="pink"><<He>> eagerly kisses you.</span> <<elseif $sexRitual.bondage>> <span class="teal"><<He>> responds in kind as you kiss <<him>>.</span> <<else>> <span class="teal"><<His>> lips purse ever so slightly, and you kiss <<him>>.</span> <</if>> <br><br> <<gwylanKiss>> <<set $sexRitual.kissCount++>> <</if>> <</if>> <<case "kissPull">> <<set $sexRitual.noKiss to true>><<set $sexRitual.action to "rest">><<set $NPCList[0].mouth to 0>><<set $mouthuse to 0>> You pull your mouth away from Gwylan's. <<if _gwylanStatus.includes("heat")>> <<He>> huffs<<if $sexRitual.bondage>>, but doesn't seem angry<<else>> and smiles at you<</if>>. <<elseif $sexRitual.hypnosis is "Gwylan">> <<He>> whines, and licks your face one last time. <<elseif $sexRitual.bondage>> <<He>> makes a small, annoyed sound. <<else>> <<He>> looks mildly annoyed. <</if>> <<case "withdraw">> <<gwylanRitualPenetrate "withdraw">> <<set $sexRitual.playerControlsSpeed to true>> <<set $sexRitual.speed to "stop">> <<set $sexRitual.position to "top">> You withdraw from Gwylan. <<if _gwylanStatus.includesAny("aroused", "lust") and $sexRitual.sealed or _gwylanStatus.includes("heat")>> <<if ["facefuckTop", "facesitTop"].includes($sexRitual.position)>> <<He>> gasps for breath<<if !$sexRitual.bondage>>, but looks at you expectantly<</if>>. <<else>> <<if $sexRitual.hypnosis is "Gwylan">> <<if $sexRitual.bondage>> <<He>> whines needily. <<else>> <<He>> whines as <<if C.npc.Gwylan.penis isnot "none">> precum continues to bead at the tip of <<his>> <<npcPenis>>. <<else>> fluids continue to drip from <<his>> <<npcVagina>>. <</if>> <<He>> spreads <<his>> arms out, as if inviting you to come back. <</if>> <<else>> <<He>> groans. "Get back here and finish what you started, <<pcpetname "Gwylan">>." <</if>> <</if>> <<else>> <<if $sexRitual.hypnosis is "Gwylan">> <span class="pink"><<He>> takes the opportunity to push you back.</span> "Arf!" <<He>> forces <<his>> head between your legs. <<if $sexRitual.bondage>>The vine that shackles your ankles grows taut as <<he>> pushes your legs apart.<</if>> <<else>> <span class="pink"><<He>> takes the opportunity to push you back.</span> "You've had your fun, now let me work." <<He>> spreads your legs. <<if $sexRitual.bondage>>The vine that shackles your ankles grows taut.<</if>> <</if>> <<set $sexRitual.onTop to false>><<set $sexRitual.playerControlsSpeed to false>><<set $sexRitual.action to "rest">><<set $sexRitual.position to "service">><<set $sexRitual.speed to "slow">><<set $sexRitual.willContest to "none">> <<if $player.penisExist>> <<gwylanRitualPenetrate "mouth" "penis">> <<else>> <<set $vaginause to "othermouth">><<set $NPCList[0].mouth to "vagina">> <</if>> <</if>> <<case "serviceTop">> <<set $sexRitual.position to "serviceTop">> <<if $NPCList[0].mouth is "kiss">> You pull away from the kiss. <</if>> <<gwylanRitualPenetrate "withdraw">><<set $sexRitual.playerControlsSpeed to true>> <<if C.npc.Gwylan.penis isnot "none">> You move your head down, slowly taking Gwylan's <<npcPenis>> into your mouth. <<gwylanRitualPenetrate "penis" "mouth">> <<else>> You move your head down, and start to lick Gwylan's <<npcVagina>>. <</if>> <<if $sexRitual.hypnosis is "Gwylan">> <<if _gwylanTF.tail is "revealed" and !$sexRitual.bondage>> <<He>> pants, <<his>> tail wagging as you start to service <<him>>. <<else>> <<He>> pants as you start to service <<him>>. <</if>> <<else>> <<if $sexRitual.sealed or _gwylanStatus.includes("heat")>> <<He>> giggles, and puts a hand on your head. "Aww, what a <<pcpetname "Gwylan" "good">>." <<else>> <<He>> tries to back away from you, <<if $sexRitual.bondage>> but you move in closer. <<else>> but you hold <<him>> firmly. <</if>> <<if _gwylanStatus.includesAny("aroused", "lust")>> "<<pcPetname "Gwylan" "simple">>, I appreciate the gesture, but you're going to tarnish the ritual!" <<else>> "Stop this, the connection hasn't sealed yet. If you make me..." <</if>> <</if>> <</if>> <<set $sexRitual.speed to "slow">> <<set $sexRitual.arousal += 10 + Math.floor($oralskill / 10)>> <<case "facefuckTop">> <<set $sexRitual.position to "facefuckTop">> <<if $NPCList[0].mouth is "kiss">> You pull away from the kiss. <</if>> <<gwylanRitualPenetrate "withdraw">><<set $sexRitual.playerControlsSpeed to true>> You crawl up and shove your <<penis>> right in <<his>> face. <<if $sexRitual.hypnosis is "Gwylan" or _gwylanStatus.includes("heat")>> <<He>> opens <<his>> mouth, and you feel <<his>> hot breath on it. <<He>> takes it eagerly. <<else>> <<He>> grunts. "Careful! You almost poked my eye ou—" <<Hes>> silenced as you thrust again, this time finding <<his>> mouth. <</if>> <<gwylanRitualPenetrate "mouth" "penis">> <<set $sexRitual.speed to "slow">> <<set $sexRitual.arousal += 5>> <<case "facesitTop">> <<set $sexRitual.position to "facesitTop">> <<if $NPCList[0].mouth is "kiss">> You pull away from the kiss, and crawl above Gwylan. <<else>> You crawl above Gwylan. <</if>> <<gwylanRitualPenetrate "withdraw">><<set $sexRitual.playerControlsSpeed to true>> <<if $sexRitual.bondage>> With your legs still shackled, you fumble around on your knees, approaching <<his>> head in reverse. <</if>> <<if $sexRitual.hypnosis is "Gwylan" or _gwylanStatus.includes("heat")>> You sit right on <<his>> face. <<His>> eyes widen, but <<he>> accepts <<his>> position as your new chair quickly. <<else>> <<He>> takes a deep breath as you lower your hips, bringing you <<pussy>> right to <<his>> mouth. <<He>> sits still for a moment, <span class="lewd">but starts to lick</span>. <</if>> <<set $vaginause to "othermouth">><<set $NPCList[0].mouth to "vagina">> <<set $sexRitual.speed to "slow">> <<set $sexRitual.arousal += 5>> <<case "gwylanMissionaryVaginal">> <<set $sexRitual.position to "gwylanMissionaryVaginal">> <<if $NPCList[0].mouth is "kiss">> <<set $_keepKissing to true>> You briefly withdraw from the kiss. <</if>> <<gwylanRitualPenetrate "withdraw">><<set $sexRitual.playerControlsSpeed to true>> You mount Gwylan, and push your <<penis>> into <<his>> waiting <<npcVagina>>. <<gwylanRitualPenetrate "vagina" "penis">> <<if $sexRitual.hypnosis is "Gwylan" or _gwylanStatus.includes("heat")>> <<He>> whimpers, <<his>> hips already trying to goad you into thrusting as <<he>> clings to you tightly. <<if $sexRitual.hypnosis isnot "Gwylan">> "<<pcPetname "Gwylan">>... please, don't hold back. I need this." <</if>> <<elseif _gwylanStatus.includesAny("aroused", "lust")>> <<He>> breathes a gentle sigh, seemingly enjoying the feeling of you on top of <<him>> and inside <<him>>. "Come on, then. Mate with me, <<pcpetname "Gwylan">>." <<else>> <<He>> breathes a gentle sigh, shifting <<his>> hips to get comfortable. "Fine. Just hurry up." <</if>> <<if $_keepKissing>> <<set $NPCList[0].mouth to "kiss">><<set $mouthuse to "kiss">> You resume kissing <<him>> once you get your rhythm going. <</if>> <<set $sexRitual.speed to "fast">> <<set $sexRitual.arousal += 10 + Math.floor($penileskill / 10)>> <<case "gwylanMissionaryAnal">> <<set $sexRitual.position to "gwylanMissionaryAnal">> <<if $NPCList[0].mouth is "kiss">> <<set $_keepKissing to true>> You briefly withdraw from the kiss. <</if>> <<if $sexRitual.buttplug>> <<set $sexRitual.buttplug to false>> <<if _gwylanTF.known or _gwylanTF.tail is "revealed">> <<if $sexRitual.bondage>> With your arms still bound, you use your elbows to gently push <<his>> tail to the side. <<else>> You gently push <<his>> tail to the side, taking a moment to pet it. <</if>> <<elseif _gwylanTF.tail is "fake">> <<if $sexRitual.bondage>> With your wrists still bound together, you trap <<his>> <<if $awarelevel gte 1>>fox-tail buttplug<<else>>fake fox tail<</if>> between your hands and give it an awkward jerk. <<else>> You give <<his>> <<if $awarelevel gte 1>>fox-tail buttplug<<else>>fake fox tail<</if>> a firm tug. <</if>> It exits <<his>> ass with a quiet pop, prompting <<him>> to softly moan. <<if $sexRitual.hypnosis isnot "Gwylan">> "Hey, what do you think you're—" <</if>> <<else>> <<if $sexRitual.bondage>> With your wrists still bound together, you trap <<his>> <<if $awarelevel gte 1>>fox-tail buttplug<<else>>fake fox tail<</if>> between your hands and give it an awkward jerk. <span class="pink">It doesn't come off.</span> Gwylan yelps. "That hurt!" <<set $gwylanSeen.pushUnique("gwylan_tail")>> It seems that <<his>> ass is already free. The tail must be attached higher, somehow. <<else>> You give <<his>> <<if $awarelevel gte 1>>fox-tail buttplug<<else>>fake fox tail<</if>> a firm tug, <span class="pink">but it doesn't come off</span>. Gwylan yelps. "That hurt!" <<set $gwylanSeen.pushUnique("gwylan_tail")>> You push it aside, seeing <<his>> ass already free. The tail is attached higher, somehow. <</if>> <</if>> <</if>> <<gwylanRitualPenetrate "withdraw">><<set $sexRitual.playerControlsSpeed to true>> You mount Gwylan, and push your <<penis>> into <<his>> <<npcAnus>>. <<gwylanRitualPenetrate "anus" "penis">> <<if $sexRitual.hypnosis is "Gwylan" or _gwylanStatus.includes("heat")>> <<He>> lets out a short growl, but clings onto you tightly. <<if $sexRitual.hypnosis isnot "Gwylan">> "<<pcPetname "Gwylan">>..." <</if>> <<elseif _gwylanStatus.includesAny("aroused", "lust")>> <<He>> grunts, seemingly feeling only a small amount of discomfort. "Be gentle with me, <<pcpetname "Gwylan">>." <<else>> <<He>> grunts, clearly not comfortable with this arrangement. "Fine. Be careful, please." <</if>> <<if $_keepKissing>> <<set $NPCList[0].mouth to "kiss">><<set $mouthuse to "kiss">> You resume kissing <<him>> once you get your rhythm going. <</if>> <<set $sexRitual.speed to "fast">> <<set $sexRitual.arousal += 6 + Math.floor($penileskill / 10)>> <<case "playerRidingVaginal">> <<set $sexRitual.position to "playerRidingVaginal">> <<if $NPCList[0].mouth is "kiss">> <<set $_keepKissing to true>> You briefly withdraw from the kiss. <</if>> <<gwylanRitualPenetrate "withdraw">><<set $sexRitual.playerControlsSpeed to true>> <<if $sexRitual.bondage>> You spread your knees as far as you can with the vines binding your ankles, and straddle Gwylan's lap. You take <<his>> <<npcPenis>> into your <<pussy>>. <<gwylanRitualPenetrate "penis" "vagina">> <<else>> You straddle Gwylan, and take <<his>> <<npcPenis>> into your <<pussy>>. <<gwylanRitualPenetrate "penis" "vagina">> <</if>> <<if $sexRitual.hypnosis is "Gwylan" or _gwylanStatus.includes("heat")>> <<He>> pants and tenses up, wrapping <<his>> arms around you. <<if $sexRitual.hypnosis isnot "Gwylan">> "<<pcPetname "Gwylan">>... please, don't hold back. I need this." <</if>> <<elseif _gwylanStatus.includesAny("aroused", "lust")>> <<He>> breathes a gentle sigh, seemingly enjoying the feeling of you on top of <<him>> and being inside you. "Come on, then. Mate with me, <<pcpetname "Gwylan">>." <<else>> <<He>> breathes a gentle sigh. "Fine. Just hurry up." <</if>> <<if $_keepKissing>> <<set $NPCList[0].mouth to "kiss">><<set $mouthuse to "kiss">> You lean down and resume kissing <<him>> once you get your rhythm going. <</if>> <<set $sexRitual.speed to "slow">> <<set $sexRitual.arousal += 10 + Math.floor($vaginalskill / 10)>> <<case "playerRidingAnal">> <<set $sexRitual.position to "playerRidingAnal">> <<if $NPCList[0].mouth is "kiss">> <<set $_keepKissing to true>> You briefly withdraw from the kiss. <</if>> <<gwylanRitualPenetrate "withdraw">><<set $sexRitual.playerControlsSpeed to true>> <<if $sexRitual.bondage>> You spread your knees as far as you can with the vines binding your ankles, and straddle Gwylan's lap. You take <<his>> <<npcPenis>> into your ass. <<gwylanRitualPenetrate "penis" "anus">> <<else>> You straddle Gwylan, and take <<his>> <<npcPenis>> into your ass. <<gwylanRitualPenetrate "penis" "anus">> <</if>> <<if $sexRitual.hypnosis is "Gwylan" or _gwylanStatus.includes("heat")>> <<He>> pants and tenses up, wrapping <<his>> arms around you. <<if $sexRitual.hypnosis isnot "Gwylan">> "<<pcPetname "Gwylan">>... please, don't hold back. I need this." <</if>> <<elseif _gwylanStatus.includesAny("aroused", "lust")>> <<He>> breathes a gentle sigh, seemingly enjoying the feeling of you on top of <<him>> and being inside you. <<He>> giggles. "Dirty <<pcpetname "Gwylan" "simple">>!" <<else>> <<He>> breathes a gentle sigh. "Fine, if this will help you finish. Just hurry up." <</if>> <<if $_keepKissing>> <<set $NPCList[0].mouth to "kiss">><<set $mouthuse to "kiss">> You lean down and resume kissing <<him>> once you get your rhythm going. <</if>> <<set $sexRitual.speed to "fast">> <<set $sexRitual.arousal += 10 + Math.floor($analskill / 10)>> /* Misc actions */ <<case "handHold">> <<set $sexRitual.arousal += 4>> <<if $sexRitual.actionLast is "handHold">> You continue holding Gwylan's hands. <<else>> <<if $sexRitual.bondage>> /* Unreachable action while hands are bound */ You bump your bound wrists against Gwylan's hand and trap it between your hands. <<else>> <<if !$sexRitual.firstAction>> It's hard to focus, but you manage to force your hands to move up your chest to caress Gwylan's hands. <<else>> You reach for Gwylan's hands. <</if>> <<if _gwylanStatus.includes("heat")>> <<He>> quickly grabs them, using them for added balance as <<he>> continues to ride you. <<elseif _gwylanLovePercent gte 75>> <<He>> lifts them, allowing you to hold both as <<he>> continues to ride you. <<His>> face turns a little more red, as if this was somehow unexpected. <<else>> <<He>> doesn't move them, so you take them and lift them. <<He>> adjusts <<his>> balance to accommodate. <<His>> face turns a little more red, as if this was somehow unexpected. <</if>> <</if>> <<takeHandholdingVirginity "Gwylan" "romantic">> <</if>> <<case "bodyhold">> <<set $sexRitual.arousal += 3>> <<if $sexRitual.actionLast is "bodyhold" or ["gwylanDoggyVaginal", "gwylanDoggyAnal"].includes($sexRitual.position)>> You hold Gwylan tightly. <<else>> You wrap your <<if $sexRitual.bondage>>bound <</if>>arms around Gwylan and pull <<him>> down, your bodies now much closer. <</if>> <<case "headHold">> <<if $sexRitual.arousal lte 75>> <<set $sexRitual.arousal += 1>> <</if>> <<if $sexRitual.actionLast is "headHold">> You keep your <<= $sexRitual.bondage "bound wrists around" ? : "hands on">> Gwylan's head as <<he>> services you. <<elseif $sexRitual.bondage>> You loop your arms over Gwylan's head, nearly knocking <<his>> hat askew. You press your bound wrists against the back of <<his>> head. <<else>> You put a hand on Gwylan's head, pushing <<his>> hat down a little. <<He>> looks at you with amusement, but doesn't stop. <</if>> <<case "headPet">> <<if $sexRitual.arousal lte 75>> <<set $sexRitual.arousal += 2>> <</if>> <<if $sexRitual.bondage>> /* Unreachable action while wrists are bound */ You defy the laws of physics, somehow managing to twist your hands enough to pet Gwylan's head. <<elseif ["headPet", "slow", "fast", "headPush", "hairPlay", "hairPull", "cooperate"].includes($sexRitual.actionLast)>> You continue to pet Gwylan's head as <<he>> services you. <<if _gwylanTF.ears is "fake">> You rub the fox ears on <<his>> hat. <<set $sexRitual.arousal += 3>> <<elseif _gwylanTF.ears is "revealed">> You rub and stroke <<his>> fox ears. <<set $sexRitual.arousal += 3>> <</if>> <<if $sexRitual.hypnosis is "Gwylan" or _gwylanStatus.includes("heat")>> <<He>> eagerly leans into it. <<set $sexRitual.arousal += 6>> <</if>> <<else>> You move your hand under Gwylan's oversized hat and start to pet <<his>> head. <<if $sexRitual.hypnosis is "Gwylan" or _gwylanStatus.includes("heat")>> <<He>> leans up into it eagerly, <<his>> eyes momentarily closing. <<elseif _gwylanStatus.includesAny("aroused", "lust")>> <<He>> leans up into it for a moment, seeming to enjoy it. <<else>> <span class="teal"><<He>> entirely stops for a moment, staring at you.</span> "What are you doing?"<br><br> You stop.<br><br> "I didn't say to stop," <<he>> immediately says, resuming <<his>> service. <</if>> <</if>> <<case "headPush">> <<if $sexRitual.arousal lte 75>> <<set $sexRitual.arousal += 2>> <</if>> <<if $sexRitual.actionLast is "headPush">> You continue pushing down on <<his>> head, matching <<his>> rhythm. <<else>> <<if $sexRitual.bondage>> You press your bound wrists against the back of Gwylan's head and push <<his>> head down. <<else>> You firmly push down on <<his>> head. <</if>> <<if $sexRitual.virginityProtected>> <<His>> eyes go wide as <<he>> suddenly takes you in. <<gwylanRitualPenetrate "mouth" "penis">> <<else>> <<His>> eyes go wide for a moment as <<he>> takes your whole length. <<He>> doesn't seem to mind, though, and holds it in <<his>> throat as you hold <<him>> down. <</if>> <<He>> lets you set the pace. <</if>> <<set $sexRitual.playerControlsSpeed to true>> <<case "headLock">> <<if $sexRitual.bondage>> <<if $sexRitual.actionLast is "headPush">> You continue pressing your thighs around <<his>> head. <<else>> You press inwards with your thighs, squeezing the sides of <<his>> head. <<His>> eyes go wide for a moment, but <<he>> doesn't stop. <</if>> <<elseif $sexRitual.actionLast is "headPush">> You continue holding your legs around <<his>> head. <<else>> You firmly wrap your legs around <<his>> head. <<His>> eyes go wide for a moment, but <<he>> doesn't stop. <</if>> <<case "hairPlay">> <<set $sexRitual.arousal += 5>> <<if $sexRitual.bondage>> /* Unreachable action while hands are bound */ With your wrists lashed together, you awkwardly clasp at Gwylan's hair. <<elseif $sexRitual.hypnosis is "Gwylan">> <<He>> whines, but doesn't stop. <<elseif $sexRitual.actionLast is "hairPlay" or $sexRitual.willContest is "noHairPlay">> <<if $sexRitual.willContest is "noHairPlay">> <<if $willpowerSuccess>> <<set _defied to true>> <span class="green">You continue to play with <<his>> hair despite <<his>> demand.</span> <<He>> doesn't stop this time, pouting as <<he>> continues servicing you. <<else>> <<set $sexRitual.action to "rest">><<set $sexRitual.playerControlsSpeed to false>> <span class="red">Your fingers lose their grip, and your arms fall back to your sides.</span> <</if>> <<else>> You continue to play with Gwylan's mousy hair. <<He>> withdraws from you.<br> <b>"<span class="witch">Stop.</span>"</b> <<set $sexRitual.willContest to "noHairPlay">> <</if>> <<else>> You run your fingers through <<his>> mousy hair. <<He>> withdraws for a moment. "Stop that." <</if>> <<case "hairPull">> <<if $sexRitual.hypnosis is "Gwylan">> <<He>> whines and barks at you. "Grrarf!" <<elseif $sexRitual.bondage>> /* Unreachable action while hands are bound */ Your try to pull Gwylan's hair, but can't get a good enough grip with your wrists bound together. <<elseif $sexRitual.willContest is "noHairPlay" and !$willpowerSuccess>> <<set $sexRitual.noHairPull to true>> <<set $sexRitual.action to "rest">><<set $sexRitual.playerControlsSpeed to false>> <span class="red">Your fingers lose their grip, and your arms fall back to your sides.</span> <<else>> <<set $gwylanSeen.pushUnique("hair_pull_bite")>> <<set $sexRitual.noHairPull to true>> You pull Gwylan's hair. <br><br> <<if ["revealed", "visible"].includes(_gwylanTF.fangs)>> <<if _gwylanTF.known>> Without hesitation, <span class="red"><<he>> bites you. Hard. Fangs and all.</span> <<pain 12>><<stress 12>><<gggpain>><<ggstress>> <br><br> <<He>> holds <<his>> teeth on you for a moment, making sure you can see them on your <<if $player.penisExist>><<penis>><<else>><<pussy>><</if>>. <<He>> slowly releases you. "I warned you." <<He>> spits on your <<if $player.penisExist>><<penis>><<else>><<pussy>><</if>> and gets back to work. <<else>> Without hesitation, <span class="red"><<he>> bites you. Hard.</span> <<pain 12>><<stress 12>><<gggpain>><<ggstress>> <br><br> <<He>> holds <<his>> teeth on you for a moment, making sure you can see them on your <<if $player.penisExist>><<penis>><<else>><<pussy>><</if>>. <span class="lewd">They're more like the fangs of a beast<<if $transformationParts.traits.fangs isnot "disabled">>, similar to your own<</if>>.</span> <br><br> <<He>> slowly releases you. "I warned you." <<He>> spits on your <<if $player.penisExist>><<penis>><<else>><<pussy>><</if>> and gets back to work. <</if>> <<set $gwylanSeen.pushUnique("gwylan_fangs")>> <<else>> Without hesitation, <span class="red"><<he>> bites you.</span> <<pain 8>><<stress 12>><<ggpain>><<ggstress>> <br><br> <<He>> holds <<his>> teeth on you for a moment, making sure you can see them on your <<if $player.penisExist>><<penis>><<else>><<pussy>><</if>>. <<He>> slowly releases you. "I warned you." <<He>> spits on your <<if $player.penisExist>><<penis>><<else>><<pussy>><</if>> and gets back to work. <</if>> <</if>> <<case "thighsPenetrate">> You pull back just enough to free your <<penis>> from <<his>> thighs, and push upwards. Gwylan yips in surprise as it slips right in. <<gwylanRitualPenetrate "vagina" "penis">> <<set $sexRitual.position to "gwylanRidingVaginal">> <<case "askStop">> <<set $sexRitual.end to "askStop">> You tell Gwylan you need to stop. <<He>> complies immediately. <<case "askStopFail">> <<if $sexRitual.hypnosis is "Gwylan">> You tell Gwylan that you need to stop. <<if $sexRitual.bondage>> "Woof?" <<He>> doesn't seem to understand. <<else>> <<His>> head just tilts at you curiously. "Woof?" <</if>> <<else>> You tell Gwylan you need to stop. <<if $sexRitual.bondage>> <<His>> breath is slow and heavy. The three foxlike eyes swim in your darkened field of vision, blurry and unfocused. <<else>> <<His>> eyes are unfocused, but fall upon you. <</if>> "<span class="red">I... I can't, dear. Forgive... me.</span>" <</if>> <<case "beg">> <<if $sexRitual.hypnosis is "player">> <<hypnosisText "You open your mouth to speak, <span class='lewd'>and involuntarily bark.</span> You try again, this time letting out a dog-like whine.">> <</if>> <br><br> <<if $sexRitual.bondage>> Gwylan gives a satisfied hum. <<else>> Gwylan looks down at you with a satisfied expression. <</if>> "<<pcPetname "Gwylan" "good">>." The words ring in your ears as feeling slowly returns to your limbs. <<gwylanHypnosis "devotion" 2>> <<set $sexRitual.action to $sexRitual.actionLast>><<set $sexRitual.willContest to "none">><<set $sexRitual.speed to "fast">> /* Attempts to get control of speed */ <<case "hiphold">> <<if $sexRitual.bondage>> /* Unreachable action while hands are bound */ You defy the laws of physics and somehow manage to hold Gwylan's hips with your bound hands. <<elseif $sexRitual.actionLast is "hiphold">> <<set $sexRitual.arousal += 5>> You continue holding Gwylan. <<else>> <<if !$sexRitual.firstAction>> It's hard to focus, but you manage to force your hands to move up to Gwylan's hips and start to help <<him>> move. <<else>> You wrap your hands around Gwylan. <</if>> <<if $sexRitual.speed is "fast">> <<He>> slows, and starts grinding on you again. <</if>> <<if _gwylanStatus.includes("heat") or $sexRitual.arousal gte 180>> <<set $sexRitual.playerControlsSpeed to true>> <<He>> shakily tries to move your hands off of <<his>> hips, <span class="lewd">but <<he>> can't keep a grip on you as <<he>> shakes with arousal</span>. <<elseif _gwylanStatus.includesAny("aroused", "lust")>> <<set $sexRitual.playerControlsSpeed to true>><<set $sexRitual.speed to "slow">> <span class="teal"><<He>> doesn't say anything, but <<he>> seems to appreciate the chance to take a break.</span> <<elseif $gwylanSeen.includes("romance")>> <<set $sexRitual.playerControlsSpeed to true>><<set $sexRitual.speed to "slow">> <span class="green"><<He>> lets you take the reigns for a moment, happy to let you set the pace.</span> <<else>> <<set $sexRitual.action to "rest">> It only lasts for a moment. <span class="red"><<He>> grabs your wrists and pulls your hands off of <<his>> waist</span>, resuming <<his>> previous pace. <span class="blue">It seems <<he>> wants to be in complete control for now, but that might change.</span> <</if>> <</if>> <<case "leghold">> <<if $sexRitual.bondage>> /* Unreachable action while legs are bound */ You defy the laws of physics and somehow manage to wrap your bound legs around Gwylan. <<elseif $sexRitual.actionLast is "leghold">> <<set $sexRitual.arousal += 5>> You continue holding Gwylan with your legs. <<else>> You quickly wrap your legs around Gwylan and squeeze. <<if $sexRitual.speed is "fast">> <<He>> slows, lingering inside you after each thrust. <</if>> <<if _gwylanStatus.includes("heat") or $sexRitual.arousal gte 180>> <<set $sexRitual.playerControlsSpeed to true>> <<He>> shakily tries to move your legs off of <<his>> hips, <span class="lewd">but <<he>> can't keep a grip on you as <<he>> shakes with arousal</span>. <<elseif _gwylanStatus.includesAny("aroused", "lust")>> <<set $sexRitual.playerControlsSpeed to true>> <span class="teal"><<He>> doesn't say anything, but <<he>> seems to appreciate the extra momentum.</span> <<elseif $gwylanSeen.includes("romance")>> <<set $sexRitual.playerControlsSpeed to true>> <span class="green"><<He>> lets you do it, seeming to appreciate the extra traction.</span> <<else>> <<set $sexRitual.action to "rest">> It only lasts for a moment. <span class="red"><<He>> grabs your legs and pulls them away from <<his>> waist</span>, resuming <<his>> previous pace. <span class="blue">It seems <<he>> wants to be in complete control for now, but that might change.</span> <</if>> <</if>> <<case "uphold">> <<if $sexRitual.bondage>> /* Unreachable action while hands are bound */ You defy the laws of physics and manage to wrap your bound arms around Gwylan's stomach. <<elseif $sexRitual.actionLast is "uphold">> <<set $sexRitual.arousal += 5>> You hold Gwylan close to you as you continue thrusting into <<him>>. <<else>> You wrap your arms around Gwylan's <<bellyDescription "Gwylan">> and try to pull <<him>> up so <<his>> back meets your chest. <<if _gwylanStatus.includes("heat") or $sexRitual.arousal gte 180>> <<set $sexRitual.playerControlsSpeed to true>> <<He>> shakily reaches back to try and stop you, <span class="lewd">but ends up getting even closer to you as <<he>> shakes with arousal</span>. <<elseif _gwylanStatus.includesAny("aroused", "lust")>> <<set $sexRitual.playerControlsSpeed to true>> <<if $sexRitual.petplay>> <span class="teal"><<He>> lets you do it, grabbing your collar as <<he>> leans back into you.</span> <<else>> <span class="teal"><<He>> lets you do it, leaning back into you.</span> <</if>> <<elseif $gwylanSeen.includes("romance")>> <<set $sexRitual.playerControlsSpeed to true>> <span class="green"><<He>> leans into you, arching <<his>> back and turning <<his>> head to look into your eyes.</span> <<else>> <<set $sexRitual.action to "rest">> It only lasts for a moment. <span class="red"><<He>> grabs your arms and pulls them away from <<his>> waist</span>, returning to all fours. <span class="blue">It seems <<he>> wants to be in complete control for now, but that might change.</span> <</if>> <</if>> /* Various flavours of doing nothing */ <<case "paralysed">> <<if $sexRitual.bondage>> <span class="red">Your body remains limp.</span> <<else>> <span class="red">Your arms and legs lay limp at your sides.</span> <</if>> <<case "move">> <<if $willpowerSuccess>> <span class="green">Feeling slowly returns to your limbs.</span> <<elseif $sexRitual.bondage>> <<set $sexRitual.action to "paralysed">> <span class="red">Your body remains limp.</span> <<willpower 1>><<gwillpower>> <<else>> <<set $sexRitual.action to "paralysed">> <span class="red">Your arms and legs lay limp at your sides.</span> <<willpower 1>><<gwillpower>> <</if>> <<case "focus">> You try to clear your head and push through the haze of lust. <<case "cooperate">> <<switch $sexRitual.position>> <<case"gwylanDoggyVaginal" "gwylanDoggyAnal">>You thrust forward with Gwylan's rhythm. <<case "gwylanRidingVaginal" "gwylanRidingAnal">>You thrust upwards with Gwylan's rhythm. <<case "playerDoggyVaginal" "playerDoggyAnal">>You push back with Gwylan's rhythm. <<default>>You let the pleasure of Gwylan's touch wash over you. <</switch>> <<default>> <<if !_skipControl>> You lay still and allow Gwylan to have complete control. <</if>> <</switch>> <<if !$sexRitual.firstAction>> <<set $sexRitual.firstAction to $sexRitual.action>> <</if>> <<set $sexRitual.actionLast to $sexRitual.action>> <br><br> <</widget>> <<widget "gwylanRitualChecks">> <<if $sexRitual.sealed>> <<trauma 4>> <<else>> <<trauma 2>> <</if>> <<set $sexRitual.timerToforceEnd-->> <<if $settings.playerPregnancyHumanEnabled and _gwylanStatus.includes("wantsPregnancy")>> <<if ["gwylanRidingVaginal", "gwylanDoggyVaginal"].includes($sexRitual.position) and NPCPregnancyPossibleWithPlayer("Gwylan")>> <<set $sexRitual.pregnancy to "Gwylan">> <<elseif ["playerMissionaryVaginal", "playerDoggyVaginal"].includes($sexRitual.position) and playerPregnancyPossibleWith("Gwylan")>> <<set $sexRitual.pregnancy to "Player">> <</if>> <</if>> <<set _physiqueDiffMin to $physiquesize - 2000>><<set _physiqueDiffMax to $physiquesize + 1000>> <<set _willMod to ($hypnosis_traits.devotion * 100) || 1>> <<if $hypnosis_traits.devotion gte 5 and $sexRitual.hypnosis isnot "Gwylan">> <<set _willMod += 2000>> <<hypnosisText "<span class='red'>Resisting Gwylan is impossible.</span>">><br> <<set $_checkbr to true>> <</if>> <<set _willpowerDiffMin to 600 + _willMod>><<set _willpowerDiffMax to 800 + _willMod>> <<if $gwylanSeen.includes("partners") and !$sexRitual.forced>> <<set _willpowerDiffMinTop to 600>><<set _willpowerDiffMaxTop to 800>> <<else>> <<set _willpowerDiffMinTop to 600 + _willMod>><<set _willpowerDiffMaxTop to 800 + _willMod>> <</if>> <<if _gwylanStatus.includesAny("aroused", "lust") and $sexRitual.hypnosis isnot "Gwylan">> <<set _physiqueDiffMin -= 1000>> <<set _willpowerDiffMin -= 100>><<set _willpowerDiffMax -= 100>> <span class="pink">Gwylan's lust is hampering <<his>> ability to keep you docile.</span><br> <<set $_checkbr to true>> <</if>> <<if $sexRitual.petplay and $sexRitual.hypnosis isnot "Gwylan">> <<set _physiqueDiffMin += 1500>><<set _physiqueDiffMax += 1500>> <span class="pink">Your collar is allowing Gwylan to hold you down easier.</span><br> <<set $_checkbr to true>> <</if>> <<if $sexRitual.playerOrgasms>> <<set $_reduction to ($sexRitual.playerOrgasms * 20) + ($sexRitual.gwylanOrgasms * 20)>> <<set _willpowerDiffMin -= $_reduction>><<set _willpowerDiffMax -= $_reduction>> <</if>> <<if $sexRitual.gwylanOrgasmsBlocked>> <<set $_reduction to $sexRitual.gwylanOrgasmsBlocked * 100>> <<set _willpowerDiffMin -= $_reduction>><<set _willpowerDiffMax -= $_reduction>> <</if>> <<if $sexRitual.hypnosis is "Gwylan" and $sexRitual.event isnot "hypnosisBacklash">> <<set _physiqueDiffMin to 0>><<set _physiqueDiffMax to 1>> <<set _willpowerDiffMin to 0>><<set _willpowerDiffMax to 1>> <span class="lewd">Gwylan is acting like a puppy, and has no power over you.</span><br> <<set $_checkbr to true>> <</if>> <<if $_checkbr>><br><</if>> <</widget>> <<widget "gwylanRitualActions">> <<set $_speed to $sexRitual.speed>> <<switch $_speed>> <<case "stop">> <<set $sexRitual.arousal -= 10>> <<case "slow">> <<if !(["service", "facefuckTop", "facesitTop"].includes($sexRitual.position) and $sexRitual.arousal gte 100)>><<set $sexRitual.arousal += 2>><</if>> <<if $sexRitual.position isnot "serviceTop">><<sex 10 "genitals">><</if>> <<case "med">> <<if !(["service", "facefuckTop", "facesitTop"].includes($sexRitual.position) and $sexRitual.arousal gte 100)>><<set $sexRitual.arousal += 5>><</if>> <<if $sexRitual.position isnot "serviceTop">><<sex 15 "genitals">><</if>> <<case "fast">> <<if !(["service", "facefuckTop", "facesitTop"].includes($sexRitual.position) and $sexRitual.arousal gte 100)>><<set $sexRitual.arousal += 15>><</if>> <<if $sexRitual.position isnot "serviceTop">><<sex 20 "genitals">><</if>> <</switch>> <<if $sexRitual.penetrated or ["service", "facefuckTop", "facesitTop"].includes($sexRitual.position)>> <<sex 15 "genitals">> <</if>> <<if $sexRitual.onTop>> <<switch $sexRitual.position>> <<case "facefuckTop" "facesitTop">><<set $sexRitual.arousal += 4>><<sex 10 "genitals">> <<case "serviceTop">><<set $sexRitual.arousal += 10 + Math.floor($oralskill / 10)>><<sex 10 "mouth">> <<case "gwylanMissionaryVaginal">><<set $sexRitual.arousal += 10 + Math.floor($penileskill / 10)>><<sex 10 "genitals">> <<case "gwylanMissionaryAnal">><<set $sexRitual.arousal += 6 + Math.floor($penileskill / 10)>><<sex 10 "genitals">> <<case "playerRidingVaginal">><<set $sexRitual.arousal += 10 + Math.floor($vaginalskill / 10)>><<sex 10 "genitals">> <<case 'playerRidingAnal'>><<set $sexRitual.arousal += 10 + Math.floor($analskill / 10)>><<sex 10 "anus">> <<default>><<set $sexRitual.arousal += 10>><<sex 10 "genitals">> <</switch>> <</if>> <<if $arousal gte $arousalmax and $sexRitual.position isnot "serviceTop">> <<if $sexRitual.hypnosis isnot "Gwylan" and !$sexRitual.connectionBroken and $sexRitual.sealed and !$sexRitual.resistOrgasm>> <<set $sexRitual.resistOrgasm to false>> <<if !$sexRitual.limitChallenge>> <<set $sexRitual.limitChallenge to true>> You feel like you're on the edge of climax, <span class="purple">but something's wrong.</span> You can't reach release. <span class="purple">The poison doesn't want to leave you.</span> <<else>> <span class="purple">The poison tries to cling to you.</span> <</if>> <br> <<if $sexRitual.willContest is "cum">> <<set _playerWillOrgasm to true>> <span class="green">Gwylan's command pushes through it.</span> <<else>> <<set _orgDiffMin to 500 + ($sexRitual.purge * 50)>><<set _orgDiffMax to 800 + ($sexRitual.purge * 50)>> <<silently>><<willpowerdifficulty _orgDiffMin _orgDiffMax>><</silently>> <<if $willpowerSuccess>> <<set _playerWillOrgasm to true>> <span class="green">Your will pushes through it,</span> <span class="red">but it roils in response.</span> <<trauma 6>><<pain 4>><<gtrauma>><<gpain>> <<else>> <<set $sexRitual.playerOrgasmsFailed++>><<set _failedOrgasm to true>> <span class="red">Its roots hold firm inside you, your willpower unable to overcome it.</span> <<trauma 12>><<pain 8>><<purity -25>><<ggtrauma>><<ggpain>><<llpurity>> <</if>> <<set $willpowerSuccess to 0>> <</if>> <br><br> <<elseif $sexRitual.resistOrgasm>> <<if $sexRitual.resistOrgasmWillpowerSuccess>> <<set _resistedOrgasm to true>> You clench your teeth and focus, <span class="green">resisting the approaching orgasm.</span> <<set $arousal to Math.clamp($arousal, 0, 10000)>> <<arousal -2000>><<llarousal>> <<set $sexRitual.resistOrgasmWillpowerDiffMin += 200>> <<set $sexRitual.resistOrgasmWillpowerDiffMax += 200>> <<set $sexRitual.playerOrgasmsResisted++>> <<if $sexRitual.willContest is "cum">> <<set $sexRitual.willContest to "none">> <</if>> <<else>> You <span class="red">fail to push against the heat rising within you. The emptiness roils.</span> <<willpower 1>><<gwillpower>><<trauma 6>><<gtrauma>> <<set _playerWillOrgasm to true>> <</if>> <br><br> <<else>> <<set _playerWillOrgasm to true>> <</if>> <</if>> <<if ($sexRitual.playerControlsSpeed and ["slow","fast"].includes($sexRitual.action) or $sexRitual.onTop) and !_defied>> /* Player controls the speed */ <<if !$sexRitual.sealed and $sexRitual.arousal gte 190 and !_playerWillOrgasm and $sexRitual.hypnosis isnot "Gwylan" and !["service", "facefuckTop", "facesitTop"].includes($sexRitual.position)>> /* Gwylan tries to make player stop */ <<set $sexRitual.willContest to "stop">><<set _gwylanResistingOrgasm to true>> <b>"<span class="witch">Stop.</span>"</b> <br><br> Gwylan's demand comes strained. <<He>> seems to be trying to avoid orgasm<<if !["serviceTop"].includes($sexRitual.position)>> <<himself>><</if>>. <<elseif !$sexRitual.sealed and $sexRitual.arousal gte 150 and $sexRitual.speed is "fast" and !_playerWillOrgasm and $sexRitual.hypnosis isnot "Gwylan" and !["service", "facefuckTop", "facesitTop"].includes($sexRitual.position) and !_gwylanStatus.includes("heat")>> /* Gwylan tries to make player slow down */ <<set $sexRitual.willContest to "slow">> <b>"<span class="witch">Slower.</span>"</b> <<elseif $sexRitual.sealed and _gwylanStatus.includesAny("aroused", "lust") and $sexRitual.arousal gte 130 and $sexRitual.speed is "slow" and $sexRitual.hypnosis isnot "Gwylan" and !["service", "facefuckTop", "facesitTop"].includes($sexRitual.position)>> /* Gwylan tries to make player speed up */ <<set $sexRitual.willContest to "fast">> <b>"<span class="witch">Faster.</span>"</b> <<else>> /* Player control flavour text */ <<if $_speed is "slow">> <<switch $sexRitual.position>> <<case "gwylanRidingVaginal" "gwylanRidingAnal" "gwylanRidingThighs" "gwylanRidingTrib">> <<if $sexRitual.arousal gte 150 and $sexRitual.willContest isnot "slow" or _gwylanStatus.includes("heat")>> <<He>> tries to grind on your <<penis>> faster, trembling slightly. You make <<him>> stay at your pace. <<else>> <<He>> continues to grind at your slower pace, holding your hands on <<his>> hips. <</if>> <<case "gwylanDoggyVaginal" "gwylanDoggyAnal">> <<if $sexRitual.arousal gte 150 and $sexRitual.willContest isnot "slow" or _gwylanStatus.includes("heat")>> <<He>> tries to push back against you faster, but you make <<him>> stay at your pace. <<else>> <<He>> continues slowly pushing back against you, letting you set the pace. <</if>> <<case "playerDoggyVaginal" "playerDoggyAnal">> <<if $sexRitual.arousal gte 150 or _gwylanStatus.includes("heat")>> <<He>> trembles as you push back against <<him>> slowly. <<else>> <<He>> continues working with your rhythm. <</if>> <<case "service">> <<He>> continues <<if $player.penisExist>> slowly taking your length to the pace you set. <<else>> licking, moving up and down at the pace you set. <</if>> <<case "serviceTop">> <<if $sexRitual.arousal gte 150 or _gwylanStatus.includes("heat")>> <<His>> hips tremble as <<he>> caresses the top of your head. <<else>> <<He>> rubs the top of your head, playing with your hair. <</if>> <<case "facefuckTop">> <<if $sexRitual.hypnosis is "Gwylan" or _gwylanStatus.includes("heat")>> <<He>> eagerly takes your whole length with each thrust. <<else>> <<He>> lets you thrust into <<his>> mouth at your own pace, breathing through <<his>> nose. <</if>> <<case "facesitTop">> <<He>> holds your legs and licks your <<npcVagina>><<if _gwylanStatus.includes("heat")>> hungrily<</if>>. <<case "gwylanMissionaryVaginal">> <<if _gwylanStatus.includes("heat")>> <<He>> softly moans each time you push all the way in. <<elseif $sexRitual.arousal gte 150>> <<He>> holds you tightly, closing <<his>> eyes and letting out shallow breaths. <<else>> <<He>> holds you tightly. <</if>> <<case "gwylanMissionaryAnal">> <<if _gwylanStatus.includes("heat")>> <<He>> yips and moans, submitting to you entirely. <<elseif $sexRitual.arousal gte 150>> <<He>> holds you tightly, closing <<his>> eyes and letting out shallow breaths. <<else>> <<He>> holds you tightly. <</if>> <<case "playerRidingVaginal">> <<if _gwylanStatus.includes("heat")>> <<He>> hugs you tightly, trying to make you move faster. <<elseif $sexRitual.arousal gte 150>> <<He>> holds you in a tight embrace. <<elseif _gwylanStatus.includes("lust")>> <<He>> holds you in a warm lover's embrace as you mate. <<else>> <<He>> rubs your back and helps you move, returning the embrace. <</if>> <<case "playerRidingAnal">> <<He>> looks up at you with <<if _gwylanStatus.includes("heat")>> hunger, trying to make you move faster. <<elseif $sexRitual.arousal gte 150>> lust, working with your rhythm perfectly. <<elseif $sexRitual.willContest is "slow">> worry. <<else>> amusement, but seems to be enjoying it. <</if>> <<default>> <<He>> continues to let you set the pace. <</switch>> <<elseif $_speed is "fast">> <<switch $sexRitual.position>> <<case "gwylanRidingVaginal" "gwylanRidingAnal">> <<if $sexRitual.arousal gte 150>> Your hips make loud smacks as you thrust into <<him>> at full speed. <<He>> struggles to keep balance. <<if C.npc.Gwylan.breastsize gte 5 and !$sexRitual.bondage>> <<His>> <<= C.npc.Gwylan.breastsdesc>> bounce up and down with your movements. <</if>> <<else>> Your hips make loud smacks as you thrust into <<him>> at full speed. <</if>> <<case "gwylanRidingThighs">> <<He>> continues grinding on you at the rapid pace you've set, your <<penis 2>> nearly slipping into <<him>> with each thrust. <<case "gwylanRidingTrib">> <<He>> continues grinding on you at the rapid pace you've set. <<case "gwylanDoggyVaginal" "gwylanDoggyAnal">> <<if $sexRitual.arousal gte 150>> Your hips make loud smacks as you continue to mate <<him>> at full speed.<<if !$sexRitual.bondage>> <<His>> back begins to arch.<</if>> <<if _gwylanStatus.includes("heat")>> <<He>> yips and whimpers, clearly enjoying this position. <</if>> <<else>> Your hips make loud smacks as you continue to mate <<him>> at full speed. <</if>> <<case "playerDoggyVaginal" "playerDoggyAnal">> <<if $sexRitual.arousal gte 150>> Your hips make loud smacks as you push back against Gwylan at full speed. <<if _gwylanStatus.includes("heat") and C.npc.Gwylan.penis isnot "none">> <<He>> yips and whimpers, eager to fill you with <<his>> seed. <</if>> <<else>> <<He>> continues fucking you at the rapid pace you've set. <</if>> <<case "service">> <<if $player.penisExist>> <<if !$sexRitual.penetrated>> <<He>> holds the head of your <<penis 2>> in <<his>> mouth while expertly working your shaft. <<else>> <<He>> continues bobbing <<his>> head up and down to the pace you set. <</if>> <<else>> <<He>> holds your thighs as <<he>> continues deeply licking your <<pussy 2>>. <</if>> <<case "serviceTop">> <<if $sexRitual.arousal gte 150 or _gwylanStatus.includes("heat")>> <<His>> hips buck and tremble with your movements. <<else>> <<He>> rubs the top of your head. <</if>> <<case "facefuckTop">> <<if $player.penissize lte 1>> Your <<penis>> slips out every now and then, but <<he>> guides it back in each time. <<else>> Even in this position, <<he>> manages to take your whole <<penis>> like an expert. <</if>> <<case "facesitTop">> <<He>> holds your legs tightly and licks your <<npcVagina>> as you do. <<case "gwylanMissionaryVaginal">> <<if _gwylanStatus.includes("heat")>> <<He>> yips softly with each thrust, <<his>> legs locked around you tightly, eager to take your seed. <<elseif $sexRitual.arousal gte 150>> <<He>> holds you tightly, <<his>> legs wrapped around you as <<he>> lets out quiet, rhythmic moans. <<else>> <<He>> holds you tightly, letting out soft breaths with each thrust. <</if>> <<case "gwylanMissionaryAnal">> <<if _gwylanStatus.includes("heat")>> <<He>> whimpers with each thrust, <<his>> legs locked around you tightly, eager to take your seed. <<elseif $sexRitual.arousal gte 150>> <<He>> holds you tightly, <<his>> legs wrapped around you as <<he>> lets out quiet, rhythmic moans. <<else>> <<He>> holds you tightly, letting out soft breaths with each thrust. <</if>> <<case "playerRidingVaginal">> <<if _gwylanStatus.includes("heat") and C.npc.Gwylan.penis isnot "none">> <<He>> whimpers and yips with each thrust, <<his>> rhythm desperate and uneven, eager to fill you with <<his>> seed. <<elseif $sexRitual.arousal gte 150 and $sexRitual.willContest isnot "slow">> <<if $sexRitual.bondage>> <<His>> breath is ragged <<else>> One of <<his>> arms is limp over <<his>> face <</if>> as <<he>> lets you mate. <<elseif $sexRitual.willContest isnot "slow">> <<He>> holds your hips and thrusts with your rhythm<<if !$sexRitual.bondage>>, looking up at you with a smile<</if>>. <<else>> <<He>> tries to keep you under control, but can't do much more. <</if>> <<case "playerRidingAnal">> <<if _gwylanStatus.includes("heat") and C.npc.Gwylan.penis isnot "none">> <<He>> whimpers and yips with each thrust, <<his>> rhythm desperate and uneven, eager to fill you with <<his>> seed. <<elseif $sexRitual.arousal gte 150 and $sexRitual.willContest isnot "slow">> <<if $sexRitual.bondage>> <<His>> breath is ragged <<else>> One of <<his>> arms is limp over <<his>> face <</if>> as <<he>> lets you ride <<him>>. <<elseif $sexRitual.willContest isnot "slow">> <<He>> holds your hips and thrusts with your rhythm<<if !$sexRitual.bondage>>, looking up at you with a smile<</if>>. <<else>> <<He>> tries to keep you under control, but can't do much more. <</if>> <<default>> <<He>> continues to let you set the pace. <</switch>> <<else>> <<if $sexRitual.bondage>> <<He>> makes a curious noise. <<else>> <<His>> head tilts curiously. <</if>> <</if>> <</if>> <<elseif $sexRitual.playerControlsSpeed and ["continue","slow","fast"].includes($sexRitual.action) and _defied and !_playerWillOrgasm and !$sexRitual.hypnosis isnot "Gwylan" >> <<set _gwylanResistingOrgasm to true>><<set $sexRitual.willContest to "stop">> <<if $sexRitual.bondage>> The three eyes that fill your darkened vision widen and glow bright red. <<else>> Gwylan's eyes widen at your defiance. <</if>> <<if !$sexRitual.sealed>> <<print either('<b>"<span class="witch">Stop!</span>"</b>', '<b>"<span class="witch">Cease!</span>"</b>', `"I said stop! You're going to...!"`, `"No, no, stop!"`)>> <<else>> <<print either('<b>"<span class="witch">Stop!</span>"</b>', '<b>"<span class="witch">Cease!</span>"</b>')>> <</if>> <<else>> /* Gwylan in full control */ <<if !$sexRitual.sealed and $sexRitual.arousal gte 190 and !_playerWillOrgasm and !["service", "facefuckTop", "facesitTop"].includes($sexRitual.position)>> /* Gwylan stops if no player orgasm yet. */ <<set _gwylanResistingOrgasm to true>> <<if $sexRitual.speed is "stop">> Gwylan is catching <<his>> breath, trying to avoid orgasm. <<else>> <<set $sexRitual.speed to "stop">><<set $sexRitual.gwylanOrgasmsBlocked++>> Just as Gwylan seems like <<hes>> going to reach climax, <span class="teal"><<he>> suddenly stops.</span> <<if $sexRitual.bondage>> <<gwylanRitualTattooVision>> <<if $sexRitual.hypnosis is "player" and $sexRitual.gwylanDrugged>> <span class="purple">Purple sparks crackle outward from it.</span> <<else>> <span class="red">Red sparks crackle outward from it.</span> <</if>> <<else>> <<if $sexRitual.hypnosis is "player" and $sexRitual.gwylanDrugged>> <span class="purple">Purple sparks crackle from <<his>> tattoo.</span> <<else>> <span class="red">Red sparks crackle from <<his>> tattoo.</span> <</if>> <</if>> <<if ["gwylanRidingVaginal", "gwylanRidingAnal", "gwylanRidingThighs", "gwylanRidingTrib"].includes($sexRitual.position)>> <<He>> simply sits atop you for a moment, breathing heavily. <<elseif ["gwylanDoggyVaginal", "gwylanDoggyAnal"].includes($sexRitual.position)>> <<He>> leans forward, <<if !$sexRitual.bondage>>looking back to you and <</if>>breathing heavily. <<else>> <<He>> withdraws from you, breathing heavily. <</if>> <</if>> <<elseif !$sexRitual.sealed and $sexRitual.arousal gte 150 and !_playerWillOrgasm and !["service", "facefuckTop", "facesitTop"].includes($sexRitual.position) and $sexRitual.hypnosis isnot "Gwylan">> /* Gwylan slows down if no player orgasm yet. */ <<if $sexRitual.speed is "stop">> <<set $sexRitual.speed to "slow">> <<if ["gwylanRidingVaginal", "gwylanRidingAnal", "gwylanRidingThighs", "gwylanRidingTrib"].includes($sexRitual.position)>> Gwylan starts to slowly grind on you again. <<elseif ["gwylanDoggyVaginal", "gwylanDoggyAnal"].includes($sexRitual.position)>> Gwylan starts to slowly push back against you again. <<else>> Gwylan starts to slowly thrust into you again. <</if>> "Stop holding back. You need to release <<if $sexRitual.playerOrgasms gte 1>>more<</if>> before we can continue." <<elseif $sexRitual.speed is "fast">> <<set $sexRitual.speed to "slow">> <span class="blue">Gwylan slows down. <<if $sexRitual.bondage>> <<gwylanRitualTattooVision>> It lets off small green sparks. <<else>> <<His>> tattoo lets off small green sparks. <</if>> </span> <<else>> <<if ["gwylanRidingVaginal", "gwylanRidingAnal", "gwylanRidingThighs", "gwylanRidingTrib"].includes($sexRitual.position)>> Gwylan continues fucking you slowly, seeming to prioritise your pleasure and trying to avoid finishing <<himself>>. <<elseif ["gwylanDoggyVaginal", "gwylanDoggyAnal"].includes($sexRitual.position)>> Gwylan continues pushing back against you slowly, seeming to prioritise your pleasure and trying to avoid finishing <<himself>>. <<else>> Gwylan continues grinding on you slowly, seeming to prioritise your pleasure and trying to avoid finishing <<himself>>. <</if>> <</if>> <<if $sexRitual.willContest is "stop">> <<set $sexRitual.willContest to "none">> <</if>> <<elseif $sexRitual.position is "service" and $sexRitual.playerOrgasms gte 1 and C.npc.Gwylan.lust gte 15 and $player.penisExist and !$sexRitual.penetrated and !($sexRitual.virginityProtected and $player.virginity.penile is true and $virginitytest is 1)>> Gwylan takes a deep breath, and <span class="pink">takes your <<penis>> into <<his>> mouth properly</span>. <<gwylanRitualPenetrate "mouth" "penis">> <<elseif $sexRitual.position is "service" and $sexRitual.sealed and C.npc.Gwylan.lust gte 25 and C.npc.Gwylan.penis is "none" and ($player.vaginaExist or $settings.analEnabled and !($player.vaginaExist and $sexRitual.virginityProtected))>> <span class="pink"> <<if $player.penisExist>> <<He>> releases your <<penis>> with a gasp, and crawls up. <<if $sexRitual.virginityProtected>> <<set $sexRitual.position to "gwylanRidingThighs">> <<He>> straddles you, and takes your penis between <<his>> thighs. <<else>> <<He>> straddles you, and takes your <<penis>> in. <<if C.npc.Gwylan.vagina isnot "none">> <<set $sexRitual.position to "gwylanRidingVaginal">><<gwylanRitualPenetrate "vagina" "penis">> <<else>> <<set $sexRitual.position to "gwylanRidingAnal">><<gwylanRitualPenetrate "anus" "penis">> <</if>> <</if>> <<else>> <<He>> pulls away from your <<pussy>> with a gasp and crawls up. <<if C.npc.Gwylan.vagina isnot "none">> <<He>> straddles you, and presses <<his>> pussy against yours. <<He>> starts to grind them together. <<set $sexRitual.position to "gwylanRidingTrib">><<set $NPCList[0].vagina to "vagina">><<set $vaginastate to "othervagina">> <<else>> <<He>> grabs your hips, and presses <<his>> <<npcPenis>> into you. <<set $sexRitual.position to "playerMissionaryVaginal">><<gwylanRitualPenetrate "penis" "vagina">> <</if>> <</if>> </span> <<set $sexRitual.playerControlsSpeed to false>> <<elseif $_speed is "slow" and ((C.npc.Gwylan.lust gte 25 or $sexRitual.arousal gte 100 or _playerWillOrgasm) or ($sexRitual.position is "service" and $arousal gte 5000))>> <<set $sexRitual.speed to "med">> <<switch $sexRitual.position>> <<case "gwylanRidingVaginal" "gwylanRidingAnal">> <<He>> starts to ride you faster, now taking in your whole length with each movement. <<case "gwylanRidingThighs">> <<He>> starts to grind on you faster, rubbing your whole length with <<his>> thighs and the lips of <<his>> <<npcVagina>>. <<case "gwylanRidingTrib">> <<He>> starts to grind on you faster, rubbing your pussies together with fervor. <<case "playerMissionaryVaginal">> <<He>> starts thrusting faster, now pushing in <<his>> whole length with each movement. <<case "gwylanDoggyVaginal" "gwylanDoggyAnal">> <<He>> starts pushing back faster<<if $sexRitual.petplay>> and pulling your leash harder<</if>>, now taking in your whole length with each movement. <<case "playerDoggyVaginal" "playerDoggyAnal">> <<He>> starts thrusting faster<<if $sexRitual.petplay>> and pulling your leash harder<</if>>, now pushing in <<his>> whole length with each movement. <<default>> <<His>> methodical licking becomes a bit faster and less precise. <</switch>> <<elseif $_speed is "slow">> <<switch $sexRitual.position>> <<case "gwylanRidingVaginal" "gwylanRidingAnal" "gwylanRidingThighs" "gwylanRidingTrib">> <<He>> continues to slowly grind back and forth on you. <<case "playerMissionaryVaginal">> <<He>> continues to slowly thrust into you. <<case "gwylanDoggyVaginal" "gwylanDoggyAnal">> <<He>> continues slowly pushing back against you<<if $sexRitual.petplay>>, gently pulling your leash to keep you in check<</if>>. <<case "playerDoggyVaginal" "playerDoggyAnal">> <<He>> continues thrusting into you<<if $sexRitual.petplay>> and pulling your leash to keep your pace equal to <<his>><</if>>. <<default>> <<He>> continues <<if $player.penisExist and !$sexRitual.penetrated>> licking and stroking you slowly. <<elseif $player.penisExist>> slowly running <<his>> mouth up and down your shaft. <<else>> <<his>> slow, methodical licking. <</if>> <</switch>> <<elseif $_speed is "med" and (($sexRitual.sealed and (_gwylanStatus.includes("aroused") or $sexRitual.arousal gte 160 or _playerWillOrgasm)) or ($sexRitual.position is "service" and $arousal gte 8000))>> <<set $sexRitual.speed to "fast">> <<switch $sexRitual.position>> <<case "gwylanRidingVaginal" "gwylanRidingAnal">> <<He>> starts to ride you even faster. <<case "gwylanRidingThighs" "gwylanRidingTrib">> <<He>> starts to grind on you even faster. <<case "playerMissionaryVaginal">> <<He>> starts thrusting even faster. <<case "gwylanDoggyVaginal" "gwylanDoggyAnal">> <<He>> starts pushing back even faster<<if $sexRitual.petplay>> and pulling your leash even harder<</if>>. <<case "playerDoggyVaginal" "playerDoggyAnal">> <<He>> starts thrusting even faster<<if $sexRitual.petplay>> and pulling your leash even harder<</if>>. <<default>> <<if $player.penisExist and !$sexRitual.penetrated>> <<His>> licking and stroking become rapid as <<he>> <<if _gwylanStatus.includesAny("aroused", "lust")>>eagerly<</if>> tries extract your semen. <<elseif $player.penisExist>> <<He>> bobs <<his>> head up and down faster as <<he>> <<if _gwylanStatus.includesAny("aroused", "lust")>>eagerly<</if>> tries extract your semen. <<else>> <<His>> licking becomes deep and strong as <<he>> <<if _gwylanStatus.includesAny("aroused", "lust")>>eagerly<</if>> tries to extract your fluids. <</if>> <</switch>> <<elseif $_speed is "med">> <<switch $sexRitual.position>> <<case "gwylanRidingVaginal" "gwylanRidingAnal">> <<He>> continues riding you at a moderate pace. <<case "gwylanRidingThighs" "gwylanRidingTrib">> <<He>> continues grinding on you at a moderate pace. <<case "playerMissionaryVaginal">> <<He>> continues thrusting into you at a moderate pace. <<case "gwylanDoggyVaginal" "gwylanDoggyAnal">> <<He>> continues pushing back against you at a moderate pace<<if $sexRitual.petplay>>, pulling your leash<</if>>. <<case "playerDoggyVaginal" "playerDoggyAnal">> <<He>> continues thrusting into you at a moderate pace<<if $sexRitual.petplay>>, pulling your leash<</if>>. <<default>> <<if $player.penisExist and !$sexRitual.penetrated>> <<He>> strokes you with consistent speed, swirling <<his>> tongue around the head of your <<penis>>. <<elseif $player.penisExist>> <<He>> playfully nibbles on your <<penis>> in between stroking you. <<else>> <<His>> hot breath makes you shiver as <<he>> continues eating you out. <</if>> <</switch>> <<elseif $_speed is "fast">> <<switch $sexRitual.position>> <<case "gwylanRidingVaginal" "gwylanRidingAnal">> <<He>> continues riding you at full speed. <<case "gwylanRidingThighs">> <<He>> continues grinding on you at full speed, your <<penis 2>> nearly slipping into <<him>> with each thrust. <<case "gwylanRidingTrib">> <<He>> continues grinding on you at full speed. <<case "playerMissionaryVaginal">> <<He>> continues thrusting into you at full speed. <<case "gwylanDoggyVaginal" "gwylanDoggyAnal">> <<He>> continues pushing back against you at full speed<<if $sexRitual.petplay>>, holding your leash tightly<</if>>. <<case "playerDoggyVaginal" "playerDoggyAnal">> <<He>> continues thrusting into you at full speed<<if $sexRitual.petplay>>, holding your leash tightly<</if>>. <<default>> <<if $player.penisExist and !$sexRitual.penetrated>> <<He>> holds the head of your <<penis 2>> in <<his>> mouth while expertly working your shaft. <<elseif $player.penisExist>> <<He>> continues bobbing <<his>> head up and down, occasionally stopping to stroke and work your shaft like an expert. <<else>> <<He>> holds your thighs as <<he>> continues deeply licking your <<pussy 2>>. <</if>> <</switch>> <</if>> <</if>> <<if !$sexRitual.position is "serviceTop">> <<switch $_speed>> <<case "stop">> <<case "slow">><<garousal>><br><br> <<case "med">><<ggarousal>><br><br> <<case "fast">><<gggarousal>><br><br> <</switch>> <</if>> <br> <<if !$sexRitual.highArousalNotif and ($arousal gte 8000 or $sexRitual.arousal gte 160)>> <<set $sexRitual.highArousalNotif to true>> <<if $sexRitual.bondage>> The smell of the incense becomes more intense. <<gwylanRitualTattooVision>> The glow begins to shift in hue to vibrant purples and reds. <<else>> The smell of the incense becomes more intense, and the glow begins to shift in hue to vibrant purples and reds. <</if>> <span class="purple">You hear a heartbeat growing louder and louder, each pulse sending heat to your extremities and loins.</span> <<drugs 50>><<gdrugged>> <<elseif $sexRitual.tentacles gte 1>> <<if $sexRitual.purged gte 6>> <span class="purple"><<= $sexRitual.bondage ? "You feel engulfed by the" : "The walls themselves have become a">> warm, pulsing mass of defilement that surrounds the two of you.</span> <<elseif $sexRitual.purged gte 3>> <span class="purple">Tendrils creep into <<= $sexRitual.bondage ? "the corners of your vision" : "the room from the darkness outside">>.</span> <<else>> <span class="purple">The symbols on the quilts <<= $sexRitual.bondage ? "float through your mind, writhing and squirming" : "writhe and squirm">>.</span> <</if>> <<elseif $sexRitual.sealed>> <<if $sexRitual.purged gte 6>> <span class="forest-green">The air <<if !$sexRitual.bondage>>blurs and <</if>>shifts like water, and a pressure closes in.</span> <<elseif $sexRitual.purged gte 3>> <span class="forest-green">Vines creep into <<= $sexRitual.bondage ? "the corners of your vision" : "the room from the darkness outside">>.</span> <<else>> <span class="forest-green">Tranquil sounds of the forest and sea echo around you.</span> <</if>> <<elseif $sexRitual.bondage>> You smell rose petals. You think they're falling around you. <<else>> <<if $gwylanSeen.includes("romance")>>Pink<<else>>Red and white<</if>> rose petals gently fall around you. <</if>> <br> <<if $sexRitual.position is "service" and $sexRitual.arousal lt 100>> <<if $sexRitual.bondage>> Amidst the darkness of your blindfold, a trio of eyes glows bright. <<else>> <<His>> eyes remain locked on yours. <</if>> <<elseif ["facefuckTop", "facesitTop"].includes($sexRitual.position) and $sexRitual.arousal lt 150>> <<if $sexRitual.bondage>> You continue fucking Gwylan's face. <<else>> <span class="lewd">You can't see much of Gwylan's face, as you're currently fucking it.</span> <</if>> <<elseif $sexRitual.arousal gte 180>> <span class="red"><<Hes>> right on the edge of climax.</span> <<elseif $sexRitual.arousal gte 150>> <<if ["service", "facesitTop", "facefuckTop"].includes($sexRitual.position)>> <span class="lewd"><<He>> breathes heavily through <<his>> nose, the warm air tickling your skin.</span> <<else>> <span class="lewd"><<He>> pants for breath.</span> <</if>> <<elseif $sexRitual.arousal gte 100>> <<if $sexRitual.position is "serviceTop">> <span class="purple"><<His>> <<= $sexRitual.bondage ? "breath is heavy" : "face reddens">> as you work.</span> <<elseif $sexRitual.onTop>> <span class="purple"><<His>> <<= $sexRitual.bondage ? "breath is heavy" : "face reddens">> as you continue taking charge.</span> <<else>> <span class="purple"><<His>> <<= $sexRitual.bondage ? "breath is heavy" : "face reddens">> as <<he>> continues to push <<himself>>.</span> <</if>> <<elseif $sexRitual.hypnosis is "Gwylan">> <<if $sexRitual.arousal gte 50>> <span class="blue"><<He>> rubs against you as much as <<he>> can.</span> <<elseif $sexRitual.arousal gte 20>> <span class="teal"><<He>> <<= $sexRitual.bondage ? "sounds" : "looks">> like a happy puppy.</span> <<else>> <span class="green"> <<if $sexRitual.bondage>> <<He>> makes a curious noise. <<else>> <<His>> head tilts at you curiously. <</if>> </span> <</if>> <<elseif $sexRitual.arousal gte 50>> <span class="blue"><<He>> remains stoic and focused despite <<his>> signs of arousal.</span> <<elseif $sexRitual.arousal gte 20>> <span class="teal"><<He>> <<= $sexRitual.bondage ? "remains" : "looks sharp and">> focused.</span> <<else>> <span class="green"><<He>> <<= $sexRitual.bondage ? "remains" : "looks sharp and">> focused.</span> <</if>> <br><br> <<if !$gwylanSeen.includes("ritual_sex") and !$sexRitual.sealed>> <<set $sexRitual.arousal to Math.clamp($sexRitual.arousal, 0, 180)>> <<if $sexRitual.position is "serviceTop" and $sexRitual.arousal gte 160>> <<He>> manages to <span class="pink">push you away, on your back</span>. "Enough. You're far too eager, dear." <<He>> spreads your legs. <<if $sexRitual.bondage>>The vine that shackles your ankles grows taut. <</if>>"This is your first experience with the ritual. Let me work." <<set $sexRitual.onTop to false>><<set $sexRitual.playerControlsSpeed to false>><<set $sexRitual.action to "rest">><<set $sexRitual.position to "service">><<set $sexRitual.speed to "slow">><<set $sexRitual.willContest to "none">> <<if $player.penisExist>> <<gwylanRitualPenetrate "mouth" "penis">> <<else>> <<set $vaginause to "othermouth">><<set $NPCList[0].mouth to "vagina">> <</if>> <<if $sexRitual.willContest is "stop">> <<set $sexRitual.willContest to "none">> <</if>> <br><br> <</if>> <</if>> <<if !_playerWillOrgasm and (($arousal gte ($arousalmax / 5) * 4 and _defied) or (_resistedOrgasm or (_failedOrgasm and $sexRitual.playerOrgasmsFailed gte 2))) and $sexRitual.arousal lte 180 and !$sexRitual.orgasmForced and $sexRitual.hypnosis isnot "Gwylan" and $sexRitual.willContest isnot "beg" and $sexRitual.position isnot "serviceTop">> <<set $_actionbr to true>> <<set $sexRitual.willContest to "cum">><<set $sexRitual.orgasmForced to true>> <<if $NPCList[0].mouth isnot 0>> <<He>> momentarily withdraws to speak. <</if>> <<if _gwylanStatus.includes("heat")>> <<if $sexRitual.bondage>> "You're being bad, resisting me like this," <<he>> says. <<else>> "You're being bad, resisting me like this." <<He>> smiles. <</if>> <br> <b>"<span class="witch">Cum for me.</span>"</b> <<elseif _gwylanStatus.includes("dom")>> <<if $sexRitual.bondage>> "You're being bad, resisting me like this," <<he>> says. <<else>> "You're being bad, resisting me like this." <<He>> smiles. <</if>> <br> <b>"<span class="witch">Let it out.</span>"</b> <<else>> <<if $sexRitual.bondage>> There's a frown in <<his>> voice. <<else>> <<He>> frowns. <</if>> "Stop resisting. <b><span class="witch">Let it out.</span></b>" <</if>> <<elseif _playerWillOrgasm and $sexRitual.sealed and !$sexRitual.begTimer and (_gwylanStatus.includes("dom") or $sexRitual.orgasmForced) and $sexRitual.hypnosis isnot "Gwylan" and $sexRitual.willContest isnot "cum" and !["serviceTop", "facefuckTop", "facesitTop"].includes($sexRitual.position)>> <<set $_actionbr to true>> <<set $sexRitual.willContest to "beg">><<set $sexRitual.speed to "stop">><<set $sexRitual.begTimer to 1>> Gwylan seems to sense your incoming climax. <<switch $sexRitual.position>> <<case "gwylanRidingVaginal" "gwylanRidingAnal" "gwylanRidingThighs" "gwylanRidingTrib">> <span class="lewd"><<He>> suddenly stops,</span> sitting atop you with <<his>> hand on <<his>> chin. <<case "service">> <<if $player.penisExist>> <span class="lewd"><<He>> suddenly stops,</span> holding the head of your <<penis 2>> with two fingers. <<else>> <span class="lewd"><<He>> suddenly stops,</span> pinching your clit with two fingers. <</if>> <<He>> places <<his>> other elbow on your thigh, the hand against <<his>> cheek. <<case "gwylanMissionaryVaginal" "gwylanMissionaryAnal">> <span class="lewd"><<He>> holds <<his>> arms up against your chest, momentarily stopping your thrusts.</span> <<case "playerRidingVaginal" "playerRidingAnal">> <span class="lewd"><<He>> holds your hips tightly, momentarily stopping your riding.</span> <<default>> <span class="lewd"><<He>> suddenly stops.</span> <</switch>> "I don't remember saying you could finish again.<<if $sexRitual.orgasmForced>> You didn't seem to want to before.<</if>>"<<if !$sexRitual.bondage>> <<He>> smiles.<</if>><br> <b>"<span class="witch">Beg.</span>"</b> <<elseif _playerWillOrgasm and $sexRitual.willContest is "beg" and $sexRitual.action isnot "beg" and !_defied and $sexRitual.begTimer lt 5 and $sexRitual.hypnosis isnot "Gwylan">> <<set $_actionbr to true>> <<set $sexRitual.begTimer++>> <span class="red">You sit on the edge of climax. No matter what you do, you can't go over.</span> Gwylan gives you a wry smile. <<stress 24>><<ggstress>> <<elseif _playerWillOrgasm and $sexRitual.speed isnot "stop">> <<set $_actionbr to true>> <<if $sexRitual.begTimer gte 5 and $sexRitual.willContest is "beg">> <<set $sexRitual.willContest to "none">> <span class="green"><<He>> <<if !$sexRitual.bondage>>frowns and <</if>>finally lets you finish.</span> <<elseif $sexRitual.playerControlsSpeed or $sexRitual.onTop>> Gwylan seems to sense your impending orgasm. <<elseif $sexRitual.speed is "fast">> Gwylan seems to sense your impending orgasm and steadies <<his>> pace. <<else>> Gwylan seems to sense your impending orgasm and increases <<his>> pace. <</if>> <<if $sexRitual.hypnosis is "Gwylan">> <<if ["topFacesit", "topFacefuck"].includes($sexRitual.actionLast) or $NPCList[0].mouth isnot 0>> "<<print either("Awmmf!", "Wmmf!", "Yimmf!", "Mff!", "Bwff!")>>" <<else>> "<<print either("Awau!", "Woof!", "Yip!", "Arf!", "Wah!", "Bweh!")>>" <</if>> <<else>> <<if $hypnosis_traits.devotion gte 5>> <span class="witchbloom"><<if $sexRitual.bondage>>The three-eyed vision glows<<else>><<His>> eyes glow<</if>> brighter, and you hear <<his>> voice in your head.</span> <<elseif $sexRitual.position is "service">> <<if ["headPush", "slow", "fast"].includes($sexRitual.action)>> <<He>> pushes <<= $sexRitual.action is "headPush" ? "your hand" : "you">> away and briefly withdraws to speak. <<else>> <<He>> briefly withdraws to speak,<<if !$sexRitual.bondage>> pushing a lock of <<his>> hair away from <<his>> face and<</if>> continuing with <<his>> hands. <</if>> <<elseif ["facefuckTop", "facesitTop"].includes($sexRitual.position) or $NPCList[0].mouth isnot 0>> <<He>> manages to pull away from you for just long enough to speak. <</if>> <br> <<if $sexRitual.sealed>> <<switch $sexRitual.playerOrgasms>> <<case 0 1 2 3>> "<i>We are the forest. <b><span class="witch">Purged, As One.</span></b></i>" <<case 4>> "<i>We are the forest. <b><span class="witch">Purged.</span></b></i>" <<case 5>> "<i>The forest. <b><span class="witch">Purged.</span></b></i>" <<case 6>> "<i><b><span class="witch">Purge.</span></b></i>" <<default>> "<i><b><span class="witch">Purge!</span></b></i>" <</switch>> <<else>> <<if $sexRitual.playerOrgasms gte 1>> "<i>You are the forest. Connect our roots.</i>" <<else>> "<i>You are the forest. Spread your seeds.</i>" <</if>> <</if>> <</if>> <br> <<if $sexRitual.position is "service" and ["headPush", "slow", "fast"].includes($sexRitual.action)>> <<He>> <<if $sexRitual.action is "headPush">>puts your hand back on <<his>> head and <</if>>allows you to set the pace as you reach your peak. <<if $sexRitual.action is "slow">> You make <<him>> bob <<his>> head slowly. <<else>> You make <<him>> take the whole length again. <</if>> <br> <<elseif $sexRitual.position is "facefuckTop">> You quickly shove your <<penis>> back in <<his>> mouth as soon as <<hes>> done speaking. <<elseif $sexRitual.position is "facesitTop">> You quickly smother <<him>> beneath you again as soon as <<hes>> done speaking. <</if>> <<if $sexRitual.arousal gte 180 and $sexRitual.playerOrgasms gte 1>> <<if _gwylanResistingOrgasm>> <<if $sexRitual.bondage>> <<gwylanRitualTattooVision>> As you shudder, it stops sparking, <<else>> As you shudder, Gwylan's tattoo stops sparking, <</if>> and <<he>> finally lets <<himself>> go over the edge with you. <<else>> Your approaching climax drives Gwylan over the edge too. <</if>> <<gwylanRitualOrgasm "both">><<if _linebreak>><br><</if>> <<if !$sexRitual.connectionBroken and !$sexRitual.sealed and _deniedOrgasm>> <br> <<if $sexRitual.bondage>> The vision of Gwylan's tattoo pulses purple. <<else>> <<His>> tattoo pulses purple. <</if>> "W-wait, why didn't you finish?! The connection hasn't—" <br><br> <<if $sexRitual.hypnosis is "player" and $sexRitual.gwylanDrugged>> /* Hypnosis backlash */ <<canvas-model-override "clear">><<set $sexRitual.hypnosis to "Gwylan">><<set $sexRitual.event to "hypnosisBacklash">> <<set $sexRitual.action to "rest">><<set $sexRitual.speed to "stop">><<set $sexRitual.orgasmTarget += 2>> You feel something changing. Something moves from Gwylan to you, and you feel your head becoming clearer by the second. <<gwylanHypnosis "devotion" -15>> <br> <<gwylanRitualOrgasm "Gwylan">><<if _linebreak>><br><</if>> <<set $sexRitual.connectionBroken to true>><<set $sexRitual.sealed to true>><<set $sexRitual.tentacles += $sexRitual.purge * 2 || 2>><<set $sexRitual.willContest to "none">> <<if $sexRitual.bondage>> You shake off the haze of confusion. <br><br> Gwylan disengages from you, and the spectral tattoo briefly lets off purple sparks. Its glowing lines twist and shift as the vision morphs into the shape of three eyes. <span class="red">The light soon fades from them.</span> <br><br> "Woof!" Gwylan barks. <span class="lewd"><<He>> crawls around, panting audibly as <<he>> sniffs you. <<He>> seems to suddenly think <<hes>> a dog.</span> <br><br> <<He>> licks your face, before barking happily at you. "Arf!" You hear <<him>> pant. You imagine <<his>> tongue is lolling from <<his>> mouth. <<else>> You blink away the haze of confusion. <br><br> Gwylan disengages from you, <<his>> tattoo letting off purple sparks briefly. <<if ["gwylanDoggyVaginal", "gwylanDoggyAnal"].includes($sexRitual.position)>> <<He>> turns around. <<elseif ["playerDoggyVaginal", "playerDoggyAnal"].includes($sexRitual.position)>> You turn around to look at <<him>>. <<elseif !$sexRitual.bondage>> <<He>> looks down at you. <</if>> <span class="red"><<His>> eyes are empty and purple,</span> <<his>> head tilted at you curiously. "Woof!" <span class="lewd"><<He>> pants and crawls around you on all fours, <<his>> tongue sticking out as <<he>> sniffs you. <<He>> seems to suddenly think <<hes>> a dog.</span> <br><br> <<He>> licks your face, before barking happily at you. "Arf!" <<He>> moves to a crouching position, tucking <<his>> arms up at <<his>> chest and continuing to pant. <</if>> <span class="blue">You remember that <<he>> drank some of the tincture <<he>> gave you earlier.</span> <<else>> /* Tentacle backlash */ <span class="red">Something inside you recoils, and a pit forms in your stomach.</span> <<if $sexRitual.bondage>>The vision of <<his>><<else>><<His>><</if>> tattoo briefly lets off red sparks. <<gwylanRitualOrgasm "Gwylan">><<if _linebreak>><br><</if>> <<set $sexRitual.connectionBroken to true>><<set $sexRitual.sealed to true>><<set $sexRitual.tentacles += $sexRitual.purge * 2 || 2>><<set $sexRitual.willContest to "none">> Gwylan breathes heavily, still recovering from the orgasm. <<if _gwylanStatus.includes("heat")>> <<He>> giggles. "The connection is broken, but... I don't care. Just keep going." <<else>> "This is bad. The connection can't seal, but we can't stop now. <span class="red">Be prepared for the consequences.</span>" <</if>> <</if>> <<elseif $sexRitual.playerOrgasms gte 2 and !$sexRitual.sealed>> <br> <<set $sexRitual.sealed to true>> "That was close. <span class="purple">The connection nearly slipped,</span>" <<he>> says between breaths. "The transfer can begin now." <<set $sexRitual.purge++>> <<if $sexRitual.tentacles isnot 0>> <<set $sexRitual.tentacles++>> <</if>> <<gwylanPurgeEffect>> <</if>> <<elseif $sexRitual.playerOrgasms gte 1 and !$sexRitual.sealed>> <<gwylanRitualOrgasm "player">><<if _linebreak>><br><</if>> <<if !_deniedOrgasm>> <<set $sexRitual.sealed to true>> <<if $sexRitual.hypnosis is "Gwylan">> <<if $sexRitual.bondage>> The vision of Gwylan's tattoo wobbles in your mind's eye. <span class="red">It's still discoloured</span>. <<else>> <<He>> whines in worry as <<he>> looks down at <<his>> tattoo, <span class="red">which is still discoloured</span>. <</if>> <<elseif $sexRitual.connectionBroken>> "We're connected, <span class="red">but it's unstable</span>. We'll have to keep going regardless." <<elseif _gwylanStatus.includesAny("aroused", "lust") and !["service", "facefuckTop", "facesitTop"].includes($sexRitual.position)>> "The connection is sealed. <<if $sexRitual.playerControlsSpeed or $sexRitual.onTop>> <span class="pink">Don't hold back anymore.</span>" <<else>> <span class="pink">I won't be holding back anymore.</span>" <</if>> <<elseif ["facefuckTop", "facesitTop"].includes($sexRitual.position)>> "Would you let me speak?! <span class="green">The connection is sealed.</span> We are One—" <<if $sexRitual.position is "facefuckTop">> once again, you silence <<him>> by shoving your <<penis>> in <<his>> mouth. <<else>> you lean forwards and press your <<pussy>> against <<his>> mouth even harder, once again silencing <<him>>. <</if>> <<else>> "<span class="green">The connection is sealed.</span> We are One." <<if $sexRitual.onTop>> <<He>> lets you continue. <<else>> <<He>> resumes <<his>> work. <</if>> <</if>> <<set $sexRitual.purge++>> <<if $sexRitual.tentacles isnot 0>> <<set $sexRitual.tentacles++>> <</if>> <<gwylanPurgeEffect>> <</if>> <<elseif $sexRitual.sealed and $sexRitual.playerOrgasms gte 2 and $sexRitual.hypnosis isnot "Gwylan" and !$sexRitual.canStop>> <<gwylanRitualOrgasm "player">><<if _linebreak>><br><</if>> <<if !_deniedOrgasm>> <<set $sexRitual.canStop to true>> <<if $sexRitual.bondage>> Amidst the darkness of your blindfold, a trio of eyes glows bright. <<else>> <<His>> eyes glow brighter. <</if>> "The transfer has begun. <span class="blue">If you need to stop, say so.</span>" <</if>> <<elseif $sexRitual.position is "service" and $sexRitual.playerOrgasms gte 2 and !$sexRitual.coolTrick and !$sexRitual.playerControlsSpeed>> <<set $sexRitual.coolTrick to true>> <<if $player.penisExist>> <<He>> takes <<his>> hands off your <<penis true>>, <<= $sexRitual.bondage ? "and it twitches" : "watching it twitch">> for a moment. "I have a neat trick to show you." <<if $sexRitual.bondage>> <<He>> gently presses <<his>> knuckles into each of your thighs, and starts to make a rolling motion. <span class="lewd">Somehow, this is the final push you need.</span> <<He>> flattens <<his>> tongue against the tip of your <<penis 2>>. <<else>> <<He>> slowly raises one hand next to it, and starts making a stroking motion without touching it. With <<his>> other hand, <<he>> slowly presses <<his>> knuckles into your thigh and starts to make a rolling motion. <span class="lewd">Somehow, this is the final push you need.</span> <<He>> opens <<his>> mouth right above your <<penis 2>>. <</if>> <<set $NPCList[0].mouth to 0>> <<gwylanRitualOrgasm "player">> <<set $NPCList[0].mouth to "penis">> <<else>> <<He>> takes <<his>> hands off of you, and gently presses <<his>> knuckles into each of your thighs. "I have a neat trick to show you." <<He>> makes a slow rolling motion on both. <span class="lewd">Somehow, this is the final push you need.</span> <<set $vaginause to 0>> <<set $NPCList[0].mouth to 0>> <<gwylanRitualOrgasm "player">> <<set $NPCList[0].mouth to "vagina">> <</if>> <<else>> <<gwylanRitualOrgasm "player">> <</if>> <<elseif $sexRitual.arousal gte 200 and $sexRitual.speed isnot "stop">> <<set $_actionbr to true>> <<if !$sexRitual.connectionBroken and _gwylanResistingOrgasm and !$sexRitual.sealed>> <<if $sexRitual.bondage>> Amidst the darkness of your blindfold, the vision of <<his>> tattoo pulses purple. <<else>> <<His>> tattoo pulses purple. <</if>> "Wait, wait, no! The connection hasn't—" <br><br> <<if $sexRitual.hypnosis is "player" and $sexRitual.gwylanDrugged>> /* Hypnosis backlash */ <<canvas-model-override "clear">><<set $sexRitual.hypnosis to "Gwylan">><<set $sexRitual.event to "hypnosisBacklash">> <<set $sexRitual.action to "rest">><<set $sexRitual.speed to "stop">><<set $sexRitual.orgasmTarget += 2>> You feel something changing. Something moves from Gwylan to you, and you feel your head becoming clearer by the second. <<gwylanHypnosis "devotion" -15>> <br> <<gwylanRitualOrgasm "Gwylan">><<if _linebreak>><br><</if>> <<set $sexRitual.connectionBroken to true>><<set $sexRitual.sealed to true>><<set $sexRitual.tentacles += $sexRitual.purge * 2 || 2>><<set $sexRitual.willContest to "none">> <<if $sexRitual.bondage>> You shake off the haze of confusion. <br><br> Gwylan disengages from you, and the spectral tattoo briefly lets off purple sparks. Its glowing lines twist and shift as the vision morphs into the shape of three eyes. <span class="red">The light soon fades from them.</span> <br><br> "Woof!" Gwylan barks. <span class="lewd"><<He>> crawls around, panting audibly as <<he>> sniffs you. <<He>> seems to suddenly think <<hes>> a dog.</span> <br><br> <<He>> licks your face, before barking happily at you. "Arf!" You hear <<him>> pant. You imagine <<his>> tongue is lolling from <<his>> mouth. <<else>> You blink away the haze of confusion. <br><br> Gwylan disengages from you, <<his>> tattoo letting off purple sparks briefly. <<if ["gwylanDoggyVaginal", "gwylanDoggyAnal"].includes($sexRitual.position)>> <<He>> turns around. <<elseif ["playerDoggyVaginal", "playerDoggyAnal"].includes($sexRitual.position)>> You turn around to look at <<him>>. <<elseif !$sexRitual.bondage>> <<He>> looks down at you. <</if>> <span class="red"><<His>> eyes are empty and purple,</span> <<his>> head tilted at you curiously. "Woof!" <span class="lewd"><<He>> pants and crawls around you on all fours, <<his>> tongue sticking out as <<he>> sniffs you. <<He>> seems to suddenly think <<hes>> a dog.</span> <br><br> <<He>> licks your face, before barking happily at you. "Arf!" <<He>> moves to a crouching position, tucking <<his>> arms up at <<his>> chest and continuing to pant. <</if>> <span class="blue">You remember that <<he>> drank some of the tincture <<he>> gave you earlier.</span> <<else>> /* Tentacle backlash */ <span class="red">Something inside you recoils, and a pit forms in your stomach.</span> <<if $sexRitual.bondage>>The vision of <<his>><<else>><<His>><</if>> tattoo briefly lets off red sparks. <<gwylanRitualOrgasm "Gwylan">><<if _linebreak>><br><</if>> <<set $sexRitual.connectionBroken to true>><<set $sexRitual.sealed to true>><<set $sexRitual.tentacles += $sexRitual.purge * 2 || 2>><<set $sexRitual.willContest to "none">> Gwylan breathes heavily, still recovering from the orgasm. <<if _gwylanStatus.includes("heat")>> <<He>> giggles. "The connection is broken, but... I don't care. Just keep going." <<else>> "This is bad. The connection can't seal, but we can't stop now. <span class="red">Be prepared for the consequences.</span>" <</if>> <</if>> <<else>> <<gwylanRitualOrgasm "Gwylan">> <</if>> <</if>> <<if $_actionbr>><br><br><</if>> <</widget>> <<widget "gwylanRitualOptions">> <<gwylanRitualChecks>> <<canvas-model-temporary-effect "petals">> /* Resist orgasm checkbox */ <<if !["service", "facefuckTop", "facesitTop"].includes($sexRitual.position) and $arousal gte ($arousalmax / 5) * 4 and !$sexRitual.limitChallenge and !$sexRitual.connectionBroken and !$sexRitual.event is "hypnosisBacklash">> <<if !$sexRitual.resistOrgasmWillpowerDiffMin>> <<set $sexRitual.resistOrgasmWillpowerDiffMin to 400>> <<set $sexRitual.resistOrgasmWillpowerDiffMax to 600>> <</if>> <label> <<checkbox "$sexRitual.resistOrgasm" false true autocheck>> Try to resist orgasm <<llarousal>><<if $sexRitual.willContest is "cum">><<willpowerdifficulty _willpowerDiffMin _willpowerDiffMax>><<else>><<willpowerdifficulty $sexRitual.resistOrgasmWillpowerDiffMin $sexRitual.resistOrgasmWillpowerDiffMax>><</if>> </label> <<set $sexRitual.resistOrgasmWillpowerSuccess to clone($willpowerSuccess)>><<set $willpowerSuccess to 0>> <br> <<else>> <<set $sexRitual.resistOrgasm to false>> <</if>> <<if $sexRitual.event is "hypnosisBacklash">> <<if $sexRitual.bondage>> <<link [[Ask if <<hes>> alright|Gwylan Ritual Hypnosis Backlash]]>><<set $phase to 1>><</link>> <br> <<link [[Nuzzle <<his>> nose|Gwylan Ritual Hypnosis Backlash]]>><<set $phase to 4>><<npcincr Gwylan lust 4>><</link>><<gglust>> <br> <<link [[Call <<him>> a good <<personsimple>>|Gwylan Ritual Hypnosis Backlash]]>><<set $phase to 5>><<npcincr Gwylan lust 4>><</link>><<gglust>> <br> <<if $sexRitual.forced>> <<link [[Turn away|Gwylan Ritual Hypnosis Backlash]]>><<set $phase to "turn">><</link>><<gwylanWillpowerDifficulty>> <</if>> <<else>> <<link [[Ask if <<hes>> alright|Gwylan Ritual Hypnosis Backlash]]>><<set $phase to 1>><</link>> <br> <<link [[Pat <<his>> head|Gwylan Ritual Hypnosis Backlash]]>><<set $phase to 2>><<npcincr Gwylan lust 4>><</link>><<gglust>> <br> <<link [[Rub <<his>> <<bellyDescription "Gwylan">>|Gwylan Ritual Hypnosis Backlash]]>><<set $phase to 3>><<npcincr Gwylan lust 4>><</link>><<gglust>> <</if>> <br> <<elseif $sexRitual.action is "paralysed">> <<if $sexRitual.willContest is "beg">> <<link [[Beg|Gwylan Ritual Sex]]>><<sub 1>><<npcincr Gwylan lust 1>><<set $sexRitual.hypnosis to "player">><<set $sexRitual.action to "beg">><</link>><<glust>><<gwylanHypnoNote>> <br> <<else>> <<link [[Apologise|Gwylan Ritual Sex]]>><<set $sexRitual.action to "apologise">><</link>> <br> <</if>> <<link [[Lay still|Gwylan Ritual Sex]]>><<sub 1>><<set $sexRitual.action to "paralysed">><</link>> <br> <<link [[Try to move|Gwylan Ritual Sex]]>><<set $sexRitual.action to "move">><</link>><<physiquedifficulty _physiqueDiffMin _physiqueDiffMax>><<willpowerdifficulty _willpowerDiffMin _willpowerDiffMax>> <br> <<elseif $sexRitual.onTop>> /* Player on top */ <<if !$sexRitual.noKiss and !["serviceTop", "facefuckTop", "facesitTop"].includes($sexRitual.position)>> <<link [[Kiss Gwylan|Gwylan Ritual Sex]]>><<set $sexRitual.action to "kiss">><</link>><<gwylanHypnoNote "kiss">> <br> <<elseif $mouthuse is "kiss">> <<link [[Pull away|Gwylan Ritual Sex]]>><<set $sexRitual.action to "kissPull">><</link>> <br> <</if>> <<if $sexRitual.willContest is "beg">> <<link [[Beg|Gwylan Ritual Sex]]>><<sub 1>><<npcincr Gwylan lust 1>><<set $sexRitual.hypnosis to "player">><<set $sexRitual.action to "beg">><</link>><<glust>><<gwylanHypnoNote>> <br> <</if>> <<if ["serviceTop", "facefuckTop", "facesitTop", "gwylanMissionaryVaginal", "gwylanMissionaryAnal", "playerRidingVaginal", "playerRidingAnal"].includes($sexRitual.position)>> <<switch $sexRitual.position>> <<case "serviceTop">> <<set $_slowLink to "Service Gwylan gently">> <<set $_fastLink to "Service Gwylan firmly">> <<case "facefuckTop">> <<set $_slowLink to "Slowly facefuck Gwylan">> <<set $_fastLink to "Quickly facefuck Gwylan">> <<case "facesitTop">> <<set $_slowLink to "Slowly grind on Gwylan's face">> <<set $_fastLink to "Smother Gwylan's face">> <<case "gwylanMissionaryVaginal" "gwylanMissionaryAnal">> <<set $_slowLink to "Slowly fuck Gwylan">> <<if $sexRitual.bondage>> <<set $_fastLink to "Quickly fuck Gwylan">> <<else>> <<set $_fastLink to "Mating press Gwylan">> <</if>> <<case "playerRidingVaginal" "playerRidingAnal">> <<set $_slowLink to "Slowly ride Gwylan">> <<set $_fastLink to "Quickly ride Gwylan">> <</switch>> <<if $sexRitual.willContest is "stop" or $sexRitual.speed is "stop">> <<link [[Keep going|Gwylan Ritual Sex]]>><<set $sexRitual.action to "continue">><</link>><<if $sexRitual.willContest is "stop">><<physiquedifficulty _physiqueDiffMin _physiqueDiffMax>><<willpowerdifficulty _willpowerDiffMin _willpowerDiffMax>><</if>> <br> <<else>> <<link [[$_fastLink|Gwylan Ritual Sex]]>><<set $sexRitual.action to "fast">><</link>><<if ["stop", "slow"].includes($sexRitual.willContest)>><<physiquedifficulty _physiqueDiffMin _physiqueDiffMax>><<willpowerdifficulty _willpowerDiffMin _willpowerDiffMax>><</if>> <br> <<link [[$_slowLink|Gwylan Ritual Sex]]>><<set $sexRitual.action to "slow">><</link>><<if ["stop", "fast"].includes($sexRitual.willContest)>><<physiquedifficulty _physiqueDiffMin _physiqueDiffMax>><<willpowerdifficulty _willpowerDiffMin _willpowerDiffMax>><</if>> <br> <</if>> <<if $sexRitual.willContest is "stop">> <<link [[Stop|Gwylan Ritual Sex]]>><<sub 1>><<set $sexRitual.action to "stop">><</link>> <br> <<elseif $sexRitual.speed is "stop">> <<link [[Wait|Gwylan Ritual Sex]]>><<sub 1>><<set $sexRitual.action to "rest">><<stress -1>><</link>><<lstress>> <br> <<link [[Try to focus|Gwylan Ritual Sex]]>><<set $sexRitual.action to "focus">><<arousal -1000>><</link>><<larousal>> <br> <</if>> <<link [[Withdraw|Gwylan Ritual Sex]]>><<set $sexRitual.action to "withdraw">><</link>><<if ["slow", "cum"].includes($sexRitual.willContest)>><<physiquedifficulty _physiqueDiffMin _physiqueDiffMax>><<willpowerdifficulty _willpowerDiffMin _willpowerDiffMax>><</if>> <br> <<else>> <<link [[Go down on Gwylan|Gwylan Ritual Sex]]>><<set $sexRitual.action to "serviceTop">><</link>><<if C.npc.Gwylan.penis isnot "none">><<oralvirginitywarning>><</if>> <br> <<if $player.penisExist>> <<link [[Facefuck|Gwylan Ritual Sex]]>><<set $sexRitual.action to "facefuckTop">><</link>> <br> <<if C.npc.Gwylan.vagina isnot "none">> <<link [[Fuck Gwylan's vagina|Gwylan Ritual Sex]]>><<set $sexRitual.action to "gwylanMissionaryVaginal">><</link>><<penilevirginitywarning>> <br> <</if>> <<if $settings.analEnabled>> <<if $sexRitual.buttplug>> <<link [[Remove Gwylan's buttplug and fuck <<his>> ass|Gwylan Ritual Sex]]>><<set $sexRitual.action to "gwylanMissionaryAnal">><</link>><<penilevirginitywarning>> <<else>> <<link [[Fuck Gwylan's ass|Gwylan Ritual Sex]]>><<set $sexRitual.action to "gwylanMissionaryAnal">><</link>><<penilevirginitywarning>> <</if>> <br> <</if>> <</if>> <<if $player.vaginaExist>> <<if $settings.facesitEnabled>> <<link [[Sit on Gwylan's face|Gwylan Ritual Sex]]>><<set $sexRitual.action to "facesitTop">><</link>> <br> <</if>> <<if C.npc.Gwylan.penis isnot "none" or C.npc.Gwylan.strapons?.length>> <<link [[Ride Gwylan vaginally|Gwylan Ritual Sex]]>><<set $sexRitual.action to "playerRidingVaginal">><</link>><<vaginalvirginitywarning>> <br> <</if>> <</if>> <<if (C.npc.Gwylan.penis isnot "none" or C.npc.Gwylan.strapons?.length) and $settings.analEnabled>> <<link [[Ride Gwylan anally|Gwylan Ritual Sex]]>><<set $sexRitual.action to "playerRidingAnal">><</link>><<analvirginitywarning>> <br> <</if>> <</if>> <<else>> <<if $sexRitual.willContest is "beg">> <<link [[Beg|Gwylan Ritual Sex]]>><<sub 1>><<npcincr Gwylan lust 1>><<set $sexRitual.hypnosis to "player">><<set $sexRitual.action to "beg">><</link>><<glust>><<gwylanHypnoNote>> <br> <</if>> <<if $sexRitual.playerControlsSpeed and $sexRitual.willContest is "stop">> <<link [[Stop|Gwylan Ritual Sex]]>><<sub 1>><<set $sexRitual.action to "stop">><</link>> <br> <<elseif $sexRitual.speed is "stop">> <<link [[Wait|Gwylan Ritual Sex]]>><<sub 1>><<set $sexRitual.action to "rest">><<stress -1>><</link>><<lstress>> <br> <<link [[Try to focus|Gwylan Ritual Sex]]>><<set $sexRitual.action to "focus">><<arousal -1000>><</link>><<larousal>> <br> <<else>> <<link [[Let Gwylan continue|Gwylan Ritual Sex]]>><<sub 1>><<set $sexRitual.action to "rest">><<stress -1>><</link>><<lstress>> <br> <<if !$sexRitual.playerControlsSpeed>> <<link [[Cooperate|Gwylan Ritual Sex]]>><<sub 1>><<set $sexRitual.action to "cooperate">><<arousal 1000 "genitals">><</link>><<ggarousal>> <br> <</if>> <</if>> <<if ["gwylanRidingVaginal", "gwylanRidingAnal", "gwylanRidingThighs", "gwylanRidingTrib"].includes($sexRitual.position)>> <<if $sexRitual.action is "handHold">> <<link [[Keep holding Gwylan's hands|Gwylan Ritual Sex]]>><<trauma -1>><<set $sexRitual.action to "handHold">><</link>><<ltrauma>><<handholdingvirginitywarning>><<NPCvirginitywarning "Gwylan" "handholding">> <br> <<elseif !$sexRitual.bondage>> <<link [[Take Gwylan's hands as <<he>> rides you|Gwylan Ritual Sex]]>><<trauma -1>><<set $sexRitual.action to "handHold">><</link>><<ltrauma>><<handholdingvirginitywarning>><<NPCvirginitywarning "Gwylan" "handholding">> <br> <</if>> <<if $sexRitual.playerControlsSpeed>> <<if $sexRitual.willContest is "stop" or $sexRitual.speed is "stop">> <<set $_continueLink to ["gwylanRidingVaginal", "gwylanRidingAnal", "gwylanDoggyVaginal", "gwylanDoggyAnal", "gwylanMissionaryVaginal", "gwylanMissionaryAnal"].includes($sexRitual.position) ? "Keep thrusting into <<him>>" : ["serviceTop"].includes($sexRitual.position) ? "Keep servicing <<him>>" : "Keep grinding against <<him>>">> <<link [[$_continueLink|Gwylan Ritual Sex]]>><<set $sexRitual.action to "continue">><</link>><<if $sexRitual.willContest is "stop">><<physiquedifficulty _physiqueDiffMin _physiqueDiffMax>><<willpowerdifficulty _willpowerDiffMin _willpowerDiffMax>><</if>> <br> <<else>> <<set $_fastLink to ["gwylanRidingVaginal", "gwylanRidingAnal", "gwylanDoggyVaginal", "gwylanDoggyAnal"].includes($sexRitual.position) ? "Fuck Gwylan quickly" : "Grind against Gwylan quickly">> <<set $_slowLink to ["gwylanRidingVaginal", "gwylanRidingAnal", "gwylanDoggyVaginal", "gwylanDoggyAnal"].includes($sexRitual.position) ? "Fuck Gwylan slowly" : "Grind against Gwylan slowly">> <<link [[$_fastLink|Gwylan Ritual Sex]]>><<set $sexRitual.action to "fast">><</link>><<if ["stop", "slow"].includes($sexRitual.willContest)>><<physiquedifficulty _physiqueDiffMin _physiqueDiffMax>><<willpowerdifficulty _willpowerDiffMin _willpowerDiffMax>><</if>> <br> <<link [[$_slowLink|Gwylan Ritual Sex]]>><<set $sexRitual.action to "slow">><</link>><<if ["stop", "fast"].includes($sexRitual.willContest)>><<physiquedifficulty _physiqueDiffMin _physiqueDiffMax>><<willpowerdifficulty _willpowerDiffMin _willpowerDiffMax>><</if>> <br> <</if>> <<elseif !$sexRitual.bondage>> <<link [[Grab Gwylan's hips|Gwylan Ritual Sex]]>><<set $sexRitual.action to "hiphold">><<arousal 1000 "genitals">><</link>><<ggarousal>> <br> <</if>> <<if ["gwylanRidingThighs"].includes($sexRitual.position)>> <<link [[Slip your <<penis>> into <<his>> <<npcVagina>>|Gwylan Ritual Sex]]>><<set $sexRitual.action to "thighsPenetrate">><</link>><<gggarousal>><<penilevirginitywarning>> <br> <</if>> <</if>> <<if $sexRitual.position is "playerMissionaryVaginal" and !$sexRitual.bondage>> <<if $sexRitual.action is "bodyhold">> <<link [[Hold Gwylan|Gwylan Ritual Sex]]>><<trauma -1>><<set $sexRitual.action to "bodyhold">><</link>><<ltrauma>> <br> <<else>> <<link [[Pull Gwylan in closer|Gwylan Ritual Sex]]>><<trauma -1>><<set $sexRitual.action to "bodyhold">><</link>><<ltrauma>> <br> <</if>> <<if $sexRitual.playerControlsSpeed and ($sexRitual.willContest is "stop" or $sexRitual.speed is "stop")>> <<link [[Clench your legs around <<him>>|Gwylan Ritual Sex]]>><<set $sexRitual.action to "continue">><</link>><<if $sexRitual.willContest is "stop">><<physiquedifficulty _physiqueDiffMin _physiqueDiffMax>><<willpowerdifficulty _willpowerDiffMin _willpowerDiffMax>><</if>> <br> <<elseif $sexRitual.playerControlsSpeed>> <<link [[Keep your legs around Gwylan|Gwylan Ritual Sex]]>><<set $sexRitual.action to "leghold">><<arousal 1000 "genitals">><</link>><<ggarousal>> <br> <<else>> <<link [[Leglock Gwylan|Gwylan Ritual Sex]]>><<set $sexRitual.action to "leghold">><<arousal 1000 "genitals">><</link>><<ggarousal>> <br> <</if>> <</if>> <<if ["gwylanDoggyVaginal", "gwylanDoggyAnal"].includes($sexRitual.position)>> <<if !$sexRitual.bondage>> <<link [[Hold Gwylan|Gwylan Ritual Sex]]>><<trauma -1>><<set $sexRitual.action to "bodyhold">><</link>><<ltrauma>> <br> <</if>> <<if $sexRitual.playerControlsSpeed>> <<if $sexRitual.willContest is "stop" or $sexRitual.speed is "stop">> <<link [[Keep fucking <<him>>|Gwylan Ritual Sex]]>><<set $sexRitual.action to "continue">><</link>><<if $sexRitual.willContest is "stop">><<physiquedifficulty _physiqueDiffMin _physiqueDiffMax>><<willpowerdifficulty _willpowerDiffMin _willpowerDiffMax>><</if>> <br> <<else>> <<link [[Fuck Gwylan quickly|Gwylan Ritual Sex]]>><<set $sexRitual.action to "fast">><</link>><<if ["stop", "slow"].includes($sexRitual.willContest)>><<physiquedifficulty _physiqueDiffMin _physiqueDiffMax>><<willpowerdifficulty _willpowerDiffMin _willpowerDiffMax>><</if>> <br> <<link [[Fuck Gwylan slowly|Gwylan Ritual Sex]]>><<set $sexRitual.action to "slow">><</link>><<if ["stop", "fast"].includes($sexRitual.willContest)>><<physiquedifficulty _physiqueDiffMin _physiqueDiffMax>><<willpowerdifficulty _willpowerDiffMin _willpowerDiffMax>><</if>> <br> <</if>> <<elseif !$sexRitual.bondage>> <<link [[Pull <<him>> up to you|Gwylan Ritual Sex]]>><<set $sexRitual.action to "uphold">><<arousal 1000 "genitals">><</link>><<ggarousal>> <br> <</if>> <</if>> <<if ["playerDoggyVaginal", "playerDoggyAnal"].includes($sexRitual.position)>> <<link [[Push back against <<him>>|Gwylan Ritual Sex]]>><<set $sexRitual.action to "continue">><<arousal 1000 "genitals">><</link>><<ggarousal>><<if $sexRitual.willContest is "stop">><<physiquedifficulty _physiqueDiffMin _physiqueDiffMax>><<willpowerdifficulty _willpowerDiffMin _willpowerDiffMax>><</if>> <br> <</if>> <<if !$sexRitual.topAttempt or $sexRitual.hypnosis is "Gwylan" and !$sexRitual.onTop>> <<if ["playerMissionaryVaginal", "playerDoggyVaginal", "playerDoggyAnal", "gwylanRidingVaginal", "gwylanRidingAnal", "gwylanRidingThighs", "gwylanRidingTrib", "service"].includes($sexRitual.position)>> <<link [[Try to get on top|Gwylan Ritual Sex Top Attempt]]>><<def 1>><<set $sexRitual.action to "topAttempt">><<set $sexRitual.topAttempt to true>><</link>><<physiquedifficulty _physiqueDiffMin _physiqueDiffMax>><<willpowerdifficulty _willpowerDiffMinTop _willpowerDiffMaxTop>> <<else>> <<link [[Pin Gwylan down|Gwylan Ritual Sex Top Attempt]]>><<def 1>><<set $sexRitual.action to "topAttempt">><<set $sexRitual.topAttempt to true>><</link>><<physiquedifficulty _physiqueDiffMin _physiqueDiffMax>><<willpowerdifficulty _willpowerDiffMinTop _willpowerDiffMaxTop>> <</if>> <br> <</if>> <<if ["service"].includes($sexRitual.position)>> <<if ["headHold", "headPet", "headPush", "headLock", "hairPlay", "hairPull", "slow", "fast", "cooperate"].includes($sexRitual.action)>> <<if $sexRitual.bondage>> <<if $player.penisExist>> <<if $sexRitual.playerControlsSpeed>> <<link [[Push <<his>> head down quickly|Gwylan Ritual Sex]]>><<set $sexRitual.action to "fast">><</link>> <br> <<link [[Push <<his>> head down slowly|Gwylan Ritual Sex]]>><<set $sexRitual.action to "slow">><</link>> <<else>> <<link [[Push Gwylan's head down|Gwylan Ritual Sex]]>><<arousal 1000 "genitals">><<set $sexRitual.action to "headPush">><</link>><<garousal>> <</if>> <br> <<else>> <<link [[Wrap your bound arms around <<his>> head|Gwylan Ritual Sex]]>><<arousal 1000 "genitals">><<set $sexRitual.action to "headLock">><</link>><<garousal>> <br> <</if>> <<else>> <<link [[Pet Gwylan's head|Gwylan Ritual Sex]]>><<set $sexRitual.action to "headPet">><</link>><<garousal>> <br> <<if $player.penisExist>> <<if $sexRitual.playerControlsSpeed>> <<link [[Push <<his>> head down quickly|Gwylan Ritual Sex]]>><<set $sexRitual.action to "fast">><</link>> <br> <<link [[Push <<his>> head down slowly|Gwylan Ritual Sex]]>><<set $sexRitual.action to "slow">><</link>> <<else>> <<link [[Push Gwylan's head down|Gwylan Ritual Sex]]>><<arousal 1000 "genitals">><<set $sexRitual.action to "headPush">><</link>><<garousal>> <</if>> <br> <<else>> <<link [[Wrap your legs around <<his>> head|Gwylan Ritual Sex]]>><<arousal 1000 "genitals">><<set $sexRitual.action to "headLock">><</link>><<garousal>> <br> <</if>> <<set $_hairPlayLink to ["hairPlay", "hairPull"].includes($sexRitual.action) ? "Continue playing with <<his>> hair" : "Play with <<his>> hair">> <<link [[$_hairPlayLink|Gwylan Ritual Sex]]>><<set $sexRitual.action to "hairPlay">><</link>><<if $sexRitual.willContest is "noHairPlay">><<willpowerdifficulty _willpowerDiffMin _willpowerDiffMax>><</if>> <br> <<if $sexRitual.action is "hairPlay" and (!$sexRitual.noHairPull or $sexRitual.hypnosis is "Gwylan")>> <<link [[Pull <<his>> hair|Gwylan Ritual Sex]]>><<set $sexRitual.action to "hairPull">><</link>><<if $sexRitual.willContest is "noHairPlay">><<willpowerdifficulty _willpowerDiffMin _willpowerDiffMax>><</if>> <br> <</if>> <</if>> <<else>> <<if $sexRitual.bondage>> <<link [[Put your bound arms around Gwylan's head|Gwylan Ritual Sex]]>><<arousal 300 "genitals">><<set $sexRitual.action to "headHold">><</link>><<garousal>> <<else>> <<link [[Put your hands on Gwylan's head|Gwylan Ritual Sex]]>><<arousal 300 "genitals">><<set $sexRitual.action to "headHold">><</link>><<garousal>> <</if>> <br> <</if>> <</if>> <<if $sexRitual.canStop and !$sexRitual.stopAttempt>> <br> <<if $sexRitual.connectionBroken or $sexRitual.tentacles gte 4 or $sexRitual.hypnosis is "Gwylan">> <<link [[Tell Gwylan that you want to stop|Gwylan Ritual Sex]]>><<set $sexRitual.stopAttempt to true>><<set $sexRitual.action to "askStopFail">><</link>> <br> <<else>> <<link [[Tell Gwylan that you want to stop|Gwylan Ritual Sex]]>><<set $sexRitual.stopAttempt to true>><<set $sexRitual.action to "askStop">><</link>> <br> <</if>> <</if>> <</if>> <<if $debug is 1>> <br><u>DEBUG:</u><br> Player arousal: $arousal <br> Player orgasms: $sexRitual.playerOrgasms <br> Player orgasms resisted: $sexRitual.playerOrgasmsResisted <br> Player orgasms failed: $sexRitual.playerOrgasmsFailed <br> Player orgasm target: $sexRitual.orgasmTarget <br> Gwylan arousal: $sexRitual.arousal (max 200) <br> Gwylan orgasms: $sexRitual.gwylanOrgasms <br> Gwylan orgasms resisted: $sexRitual.gwylanOrgasmsBlocked <br> control: <<if $sexRitual.playerControlsSpeed>>Player<<else>>Gwylan<</if>> <br> speed: $sexRitual.speed <br> willContest: $sexRitual.willContest <br> position: $sexRitual.position <br> Gwylan states: <<print formatList(_gwylanStatus)>><br> Purge effectiveness: $sexRitual.purge <br> <br> <</if>> <</widget>> <<widget "gwylanRitualStart">> <<if !$sexRitual>> <<set $sexRitual to { virginity: [], penetrated: false, purge: 0, arousal: Math.floor((C.npc.Gwylan.lust + C.npc.Gwylan.dom) / 2), gwylanOrgasms: 0, gwylanOrgasmsBlocked: 0, playerOrgasms: 0, orgasmTarget: Math.ceil((C.npc.Gwylan.lust + C.npc.Gwylan.dom) / 50) + $gwylanSeen.count("yearning") + $gwylanSeen.count("partners") + $gwylanSeen.count("romance") + 4, playerOrgasmsFailed: 0, playerOrgasmsResisted: 0, tentacles: 0, hypnosis: "", wolfbrew: false, willContest: "none", timerToforceEnd: 100, bondageTattooSeen: false, bondage: false, }>> <<if $crossdressing gte 1 and !$genderknown.includes("Gwylan")>> <<set $sexRitual.crossdressing to true>> <</if>> <</if>> <<set $disableImpregnation to true>> <<set $disableNormalImpregnation to true>> <<set $enemyno to 1>> <<set $enemynomax to 1>> <<set $consensual to 1>> <</widget>> <<widget "gwylanRitualEnd">> <<run statusCheck("Gwylan")>> <<if $worn.neck.name is "familiar collar" and $worn.neck.cursed is 1>> <<detach_leash>> <<elseif $sexRitual.collared>> <<set $worn.neck.type.push("broken")>> <<neckruined true>> <<elseif $sexRitual.leash>> <<detach_leash>> <</if>> <<storeon "gwylanRitual">><<silently>><<clotheson>><</silently>> <<if $sexRitual.overUpperCursed>> <<set $worn.over_upper.cursed to 1>> <</if>> <<if $sexRitual.overLowerCursed>> <<set $worn.over_lower.cursed to 1>> <</if>> <<if $sexRitual.upperCursed>> <<set $worn.upper.cursed to 1>> <</if>> <<if $sexRitual.lowerCursed>> <<set $worn.lower.cursed to 1>> <</if>> <<if $sexRitual.underUpperCursed>> <<set $worn.under_upper.cursed to 1>> <</if>> <<if $sexRitual.underLowerCursed>> <<set $worn.under_lower.cursed to 1>> <</if>> <<if $sexRitual.penissize>> <<set $player.penissize to $sexRitual.penissize>> <</if>> <<set $gwylanSeen.pushUnique("ritual_sex")>> <<earnFeat "Wildsong">> <<if $sexRitual.sealed>> <<set _corruptionDown to $sexRitual.purge * -1>> <<world_corruption "soft" _corruptionDown>> <<set $gwylan.purged += $sexRitual.purge>> <</if>> <<if _gwylanStatus.includes("heat")>> <<set $_gwyLustDown to $sexRitual.gwylanOrgasms * -3>> <<npcincr Gwylan lust $_gwyLustDown>> <</if>> <<unset $sexRitual>> <<run delete $gwylan.ritualMissed>><<run delete $gwylan.ritualNext>> <<set $gwylan.timer.ritual to new DateTime(Time.date).addDays(7).timeStamp>> <<set $gwylan.timer.lastSeen to Time.date.timeStamp>> <<set $gwylan.hunting to 0>> <<set $daily.gwylan.ritual to true>> <<set $daily.gwylan.greeting to false>> <<set $gwylan.punishment to false>> <<set $dateCount.GwylanSex++>> <<set $consensual to 0>> <<dry_full>> <</widget>> <<widget "gwylanRitualOrgasm">> <<if ["player", "both"].includes(_args[0])>> <<if $sexRitual.playerOrgasms is 0>> <<if !$gwylanSeen.includes("ritual_sex")>> You feel something leave your body. Or maybe something filling it. Or both. It feels as though an emptiness has been mended. <<else>> The emptiness starts to mend. <</if>> <span class="blue">Visions of the forest flash by your eyes, and you feel as though you've been split across the landscape.</span> <<else>> <<set $_textPool to [ "You give Gwylan your poison.", "You feel the sickening emptiness within you vanishing." ]>> <<if $temple_confessor_intro>> <<run $_textPool.pushUnique( "The holes are filled.", "You give Gwylan your corruption.", "You feel your vessel emptying into Gwylan's.", "Gwylan takes away the emptiness inside you.", "You and Gwylan become As One for a torturously short moment." )>> <</if>> <<if $gwylanSeen.includes("vision")>> <<run $_textPool.pushUnique( "Visions of the lake flash by your eyes.", "Visions of an old churchyard fill your mind.", "Visions of the temple's garden fill your mind.", "Visions of an antlered humanoid figure fill your head.", "You hear a bell ring in the distance, but Gwylan doesn't react.", "An empty vision fills your mind, and you are reminded that there is nothing under the lake." )>> <</if>> <span class="purple"><<print $_textPool.pluck()>></span> <</if>> <<if _args[1] is "pre" or $sexRitual.deniedOrgasmFromSlime or !$gwylanSeen.includes("ritual_sex")>> <<set _noSlimes to true>> <</if>> <span class="kill-br"><<orgasm>></span> <<if _deniedOrgasm>> <br> <span class="red">The slime in your head rejects the ritual.</span> The effort leaves it considerably weakened. <<corruption -3>><<lcorruption>> <<set $sexRitual.deniedOrgasmFromSlime to true>><<set $sexRitual.playerOrgasmsFailed++>> <<else>> <<set $sexRitual.playerOrgasms++>> <<if ["playerMissionaryVaginal", "playerDoggyVaginal", "playerDoggyAnal", "playerRidingVaginal", "playerRidingAnal", "serviceTop"].includes($sexRitual.position) or $femaleclimax>> <span class="pink"><<= $sexRitual.bondage ? "You hear the sound of fluid filling the ivory bowl." : "The ivory bowl fills with glowing pink fluid.">></span> <</if>> <<if $femaleclimax and $player.sex is "m">> <<set $sexRitual.playerOrgasmsFailed++>> <</if>> <<set $sexRitual.arousal += 5>> <<if $sexRitual.sealed>> <<if $sexRitual.penetrated or $sexRitual.halfCount or ["gwylanRidingTrib"].includes($sexRitual.position)>> /* Decrease world corruption for every penetrative player orgasm (or tribbing to be fair to vag/vag pairs) */ <<set $sexRitual.purge++>><<set $sexRitual.halfCount to false>> <<if $sexRitual.tentacles isnot 0>> <<set $sexRitual.tentacles++>> <</if>> <<gwylanPurgeEffect>> <<else>> /* Decrease world corruption for every 2 non-penetrative orgasms */ <<set $sexRitual.halfCount to true>> <</if>> <</if>> <</if>> <br> <</if>> <<if _args[0] is "both" and !_deniedOrgasm and !$femaleclimax>> /* Gwylan and player cum at the same time */ <span class="lewd"> <<switch $sexRitual.position>> <<case "gwylanRidingVaginal" "gwylanRidingAnal">> <<if $sexRitual.position is "gwylanRidingVaginal">><<bodyliquid "penis" "goo">><</if>> <<if _gwylanStatus.includesAny("aroused", "lust")>> <<He>> <<if $sexRitual.petplay>>pulls your leash tight and <</if>>softly moans as <<he>> feels your semen fill <<him>>. <<else>> <<He>> <<if $sexRitual.petplay>>pulls your leash and <</if>>quietly shudders in orgasm. <</if>> <<if $sexRitual.bondage>> The three-eyed vision fills your mind, pulsing bright green. <<else>> <<His>> glowing eyes remain locked on yours. <</if>> <<case "gwylanRidingThighs">> <<bodyliquid "penis" "goo">> <<He>> <<if $sexRitual.petplay>>pulls your leash as <<he>> <</if>> quietly shudders in orgasm. <<if $sexRitual.bondage>> The three-eyed vision fills your mind, pulsing bright green. <<else>> <<His>> glowing eyes remain locked on yours. <</if>> <<case "gwylanRidingTrib">> <<bodyliquid "vaginaoutside" "goo">> <<He>> <<if $sexRitual.petplay>>pulls your leash as <<he>> <</if>> quietly shudders in orgasm. <<if $sexRitual.bondage>> The three-eyed vision fills your mind, pulsing bright green. <<else>> <<His>> glowing eyes remain locked on yours. <</if>> <<case "playerMissionaryVaginal">> <<if $gwylanSeen.includes("partners")>> <<He>> presses up against you tightly and kisses you as <<if C.npc.Gwylan.penis is "none">> <<he>> cums, grinding <<his>> clit against the base of <<his>> strap-on. <<else>> <<he>> cums inside you. <<bodyliquid "vagina" "semen">> <</if>> You kiss back, still shuddering from your own orgasm. <<takeKissVirginity "Gwylan" "romantic">> <<else>> <<He>> buries <<his>> face in your neck as <<if C.npc.Gwylan.penis is "none">> <<he>> cums, grinding <<his>> clit against the base of <<his>> strap-on. <<else>> <<he>> cums inside you. <<bodyliquid "vagina" "semen">> <</if>> <</if>> <<case "gwylanDoggyVaginal" "gwylanDoggyAnal">> <<bodyliquid "penis" "goo">> <<if _gwylanStatus.includesAny("aroused", "lust")>> <<He>> <<if $sexRitual.petplay>>pulls your leash tight and <</if>><<if $sexRitual.playerControlsSpeed>>leans<<else>>pushes<</if>> back, softly moaning as your semen fills <<him>>. <<else>> <<He>> <<if $sexRitual.petplay>>pulls your leash tight and <</if>><<if $sexRitual.playerControlsSpeed>>leans<<else>>pushes<</if>> back, quietly shuddering in orgasm as your seed fills <<him>>. <</if>> <<case "playerDoggyVaginal">> <<if _gwylanStatus.includes("heat")>> <<He>> wraps <<his>> arms around you and leans down, <span class="red">biting your shoulder</span> as <<if C.npc.Gwylan.penis is "none">> <<he>> cums. <<He>> moans as <<he>> grinds <<his>> clit against the base of <<his>> strap-on. <<else>> <<he>> cums deep into your womb. <<bodyliquid "vagina" "semen">> <</if>> <<if ["revealed", "visible"].includes(_gwylanTF.fangs)>> <<if _gwylanTF.fangs is "revealed">> <<His>> fangs <<= $sexRitual.bondage ? "sink into your skin" : "leave a mark">>. <<else>> It hurts, a lot more than you expect. <span class="pink"><<His>> teeth are sharp like a beast's.</span> <</if>> <<set $gwylanSeen.pushUnique("gwylan_fangs")>> <<pain 8>><<ggpain>> <<else>> <<pain 4>><<gpain>> <</if>> <br> <<elseif $gwylanSeen.includes("partners")>> <<He>> wraps <<his>> arms around you and lifts you so your back is pressing up against <<his>> chest, tilting your head to the side to kiss you as <<if C.npc.Gwylan.penis is "none">> <<he>> cums, grinding <<his>> clit against the base of <<his>> strap-on. <<else>> <<he>> cums deep into your womb. <<bodyliquid "vagina" "semen">> <</if>> You kiss back, still shuddering from your own orgasm. <<takeKissVirginity "Gwylan" "romantic">> <<else>> <<He>> buries <<his>> face in your neck as <<if C.npc.Gwylan.penis is "none">> <<he>> cums, grinding <<his>> clit against the base of <<his>> strap-on. <<else>> <<he>> cums inside you. <<bodyliquid "vagina" "semen">> <</if>> <</if>> <<case "playerDoggyAnal">> <<if _gwylanStatus.includes("heat")>> <<He>> wraps <<his>> arms around you and leans down, <span class="red">biting your shoulder</span> as <<if C.npc.Gwylan.penis is "none">> <<he>> cums. <<He>> moans as <<he>> grinds <<his>> clit against the base of <<his>> strap-on. <<else>> <<he>> cums deep in your ass. <<bodyliquid "anus" "semen">> <</if>> <<if ["revealed", "visible"].includes(_gwylanTF.fangs)>> <<if _gwylanTF.fangs is "revealed">> <<His>> fangs <<= $sexRitual.bondage ? "sink into your skin" : "leave a mark">>. <<else>> It hurts, a lot more than you expect. <span class="pink"><<His>> teeth are sharp like a beast's.</span> <</if>> <<set $gwylanSeen.pushUnique("gwylan_fangs")>> <<pain 8>><<ggpain>> <<else>> <<pain 4>><<gpain>> <</if>> <br> <<elseif $gwylanSeen.includes("partners")>> <<He>> wraps <<his>> arms around you and lifts you so your back is pressing up against <<his>> chest. <<He>> tilts your head to the side to kiss you as <<if C.npc.Gwylan.penis is "none">> <<he>> cums, grinding <<his>> clit against the base of <<his>> strap-on. <<else>> <<he>> cums deep in your ass. <<bodyliquid "anus" "semen">> <</if>> You kiss back, still shuddering from your own orgasm. <<takeKissVirginity "Gwylan" "romantic">> <<else>> <<He>> buries <<his>> face in your neck as <<if C.npc.Gwylan.penis is "none">> <<he>> cums, grinding <<his>> clit against the base of <<his>> strap-on. <<else>> <<he>> cums inside you. <<bodyliquid "anus" "semen">> <</if>> <</if>> <<case "serviceTop">> <<if C.npc.Gwylan.penis isnot "none">> <<bodyliquid "mouth" "semen">> You both shudder as <<his>> semen fills your mouth. <<else>> <<bodyliquid "mouth" "goo">> You both shudder as <<his>> juices squirt into your mouth. <</if>> <<case "gwylanMissionaryVaginal" "gwylanMissionaryAnal">> <<if $sexRitual.position is "gwylanMissionaryVaginal">><<bodyliquid "penis" "goo">><</if>> <<if _gwylanStatus.includesAny("aroused", "lust")>> <<He>> <<if $sexRitual.petplay>>yanks your leash tightly and <</if>>pulls you into a full embrace with <<his>> arms and legs, moaning as you fill <<him>> with your seed. <<if $sexRitual.bondage>> <<He>> doesn't seem to care that you can't embrace <<him>> back, given your bound limbs. <</if>> <<if _gwylanStatus.includes("heat")>> <<He>> bites your shoulder as <<he>> holds you. <<if ["revealed", "visible"].includes(_gwylanTF.fangs)>> <<if _gwylanTF.fangs is "revealed">> <<His>> fangs <<= $sexRitual.bondage ? "sink into your skin" : "leave a mark">>. <<else>> It hurts, a lot more than you expect. <span class="pink"><<His>> teeth are sharp like a beast's.</span> <</if>> <<set $gwylanSeen.pushUnique("gwylan_fangs")>> <<pain 8>><<ggpain>> <<else>> <<pain 4>><<gpain>> <</if>> <br> <<elseif $gwylanSeen.includes("partners")>> <<He>> hungrily kisses you before <<he>> lets you pull away. <<takeKissVirginity "Gwylan" "romantic">> <</if>> <<else>> <<He>> <<if $sexRitual.petplay>>yanks your leash and <</if>>pulls you into a full embrace, quietly shuddering in orgasm as your seed fills <<him>>. <<if $sexRitual.bondage>> <<He>> doesn't seem to care that you can't embrace <<him>> back, given your bound limbs. The three-eyed vision fills your mind, pulsing bright green. <<else>> <<His>> glowing eyes remain locked on yours. <</if>> <</if>> <<case "playerRidingVaginal" "playerRidingAnal">> <<if C.npc.Gwylan.penis is "none">> <<if _gwylanStatus.includes("heat")>> <<He>> thrusts into you hard as you both shudder in bliss. <<He>> bucks <<his>> hips, grinding <<his>> clit against the base of <<his>> strap-on as you bear down on <<him>>. <<elseif $gwylanSeen.includes("partners")>> <<He>> moans softly as your shared climax passes. <<He>> rocks <<his>> hips up into you, massaging <<his>> clit against the base of <<his>> strap-on. You both stop for a moment. <<if $sexRitual.speed is "slow">> You sit still in <<his>> lap, and <<he>> hungrily kisses you. You stay joined like this for some time. <<takeKissVirginity "Gwylan" "romantic">> <<else>> <<He>> sits up and gives you a quick peck on the lips. <<takeKissVirginity "Gwylan" "romantic">> <</if>> <<else>> <<if $sexRitual.bondage>> <<He>> stifles a moan <<else>> <<He>> covers <<his>> mouth <</if>> as you reach a shared climax. <<He>> rocks <<his>> hips up into you a moment longer, grinding <<his>> clit against the base of <<his>> strap-on. <</if>> <<else>> <<if $sexRitual.position is "playerRidingVaginal">><<bodyliquid "vagina" "semen">><<else>><<bodyliquid "anus" "semen">><</if>> <<if _gwylanStatus.includes("heat")>> <<He>> thrusts into you hard as you both shudder in bliss, filling you with <<his>> seed eagerly. <<elseif $gwylanSeen.includes("partners")>> <<He>> moans softly as your shared climax passes, filling you with <<his>> seed. You both stop for a moment. <<if $sexRitual.speed is "slow">> You sit still in <<his>> lap, and <<he>> hungrily kisses you. You stay joined like this for some time. <<takeKissVirginity "Gwylan" "romantic">> <<else>> <<He>> sits up and gives you a quick peck on the lips. <<takeKissVirginity "Gwylan" "romantic">> <</if>> <<else>> <<if $sexRitual.bondage>> <<He>> stifles a moan <<else>> <<He>> covers <<his>> mouth <</if>> as you reach a shared climax, filling you with <<his>> cum. <</if>> <</if>> <<default>> <<He>> shudders. <</switch>> </span> <<elseif _args[0] is "Gwylan" or _args[0] is "both" and _deniedOrgasm>> /* Only Gwylan cums */ <span class="lewd"> <<switch $sexRitual.position>> <<case "gwylanRidingVaginal" "gwylanRidingAnal">> <<if $sexRitual.position is "gwylanRidingVaginal">><<bodyliquid "penis" "goo">><</if>> <<if _gwylanResistingOrgasm>> <<if $sexRitual.petplay>> <<He>> tries to pull your leash to make you stop, but that only ends up bringing you closer together. <<He>> involuntarily moans as <<he>> shudders in climax. <<elseif $sexRitual.bondage>> <<He>> tries to pull away from you, but it's too late. <<He>> involuntarily shudders in climax. <<else>> <<He>> tries to dismount you, and reaches for the jar of blue sand, but doesn't make it. <<He>> involuntarily shudders in climax. <</if>> <<elseif _gwylanStatus.includesAny("aroused", "lust")>> <<He>> <<if $sexRitual.petplay>>pulls your leash tight and <</if>>moans as <<he>> shudders in climax, <<if $sexRitual.bondage>> and three glowing eyes flash through your mind once more. <<else>> <<his>> eyes still locked on yours. <</if>> <<else>> <<He>> <<if $sexRitual.petplay>>pulls your leash tight as <<he>> <</if>> quietly shudders in orgasm, <<if $sexRitual.bondage>> and three glowing eyes flash through your mind once more. <<else>> <<his>> eyes still locked on yours. <</if>> <</if>> <<case "gwylanRidingThighs">> <<if C.npc.Gwylan.penis is "none">><<bodyliquid "penis" "goo">><</if>> <<if _gwylanResistingOrgasm>> <<if $sexRitual.petplay>> <<He>> tries to pull your leash to make you stop, but that only ends up bringing you closer together. <<He>> involuntarily moans as <<he>> shudders in climax. <<elseif $sexRitual.bondage>> <<He>> tries to pull away from you, but it's too late. <<He>> involuntarily shudders in climax. <<else>> <<He>> tries to dismount you, and reaches for the jar of blue sand, but doesn't make it. <<He>> involuntarily shudders in climax. <</if>> <<else>> <<He>> <<if $sexRitual.petplay>>pulls your leash tight as <<he>> <</if>> quietly shudders in orgasm, <<if $sexRitual.bondage>> and three glowing eyes flash through your mind once more. <<else>> <<his>> glowing eyes still locked on yours. <</if>> <</if>> <<case "gwylanRidingTrib">> <<bodyliquid "vaginaoutside" "goo">> <<if _gwylanResistingOrgasm>> <<if $sexRitual.petplay>> <<He>> tries to pull your leash to make you stop, but that only ends up bringing you closer together. <<He>> involuntarily moans as <<he>> shudders in climax. <<elseif $sexRitual.bondage>> <<He>> tries to pull away from you, but it's too late. <<He>> involuntarily shudders in climax. <<else>> <<He>> tries to dismount you, and reaches for the jar of blue sand, but doesn't make it. <<He>> involuntarily shudders in climax. <</if>> <<else>> <<He>> <<if $sexRitual.petplay>>pulls your leash tight as <<he>> <</if>> quietly shudders in orgasm, <<if $sexRitual.bondage>> and three glowing eyes flash through your mind once more. <<else>> <<his>> glowing eyes still locked on yours. <</if>> <</if>> <<case "gwylanDoggyVaginal" "gwylanDoggyAnal">> <<if C.npc.Gwylan.penis is "none">><<bodyliquid "penis" "goo">><</if>> <<if _gwylanResistingOrgasm>> <<if $sexRitual.petplay>> <<He>> tries to pull your leash to make you stop, but that only ends up bringing you closer together. <<He>> involuntarily moans and shudders. <<else>> <<He>> tries to pull away from you, <<= $sexRitual.bondage ? "but fails" : "reaching for the jar of blue sand, but doesn't make it">>. <<He>> involuntarily shudders in climax. <</if>> <<elseif _gwylanStatus.includesAny("aroused", "lust")>> <<He>> <<if $sexRitual.petplay>>pulls your leash tight and <</if>><<if $sexRitual.playerControlsSpeed>>leans<<else>>pushes<</if>> back, moaning as <<he>> shudders. <<else>> <<He>> <<if $sexRitual.petplay>>pulls your leash tight and <</if>><<if $sexRitual.playerControlsSpeed>>leans<<else>>pushes<</if>> back, quietly shuddering in orgasm. <</if>> <<case "gwylanMissionaryVaginal" "gwylanMissionaryAnal">> <<if $sexRitual.position is "gwylanMissionaryVaginal">><<bodyliquid "penis" "goo">><</if>> <<if _gwylanStatus.includesAny("aroused", "lust")>> <<He>> <<if $sexRitual.petplay>>yanks your leash and <</if>>pulls you into a full embrace with <<his>> arms and legs, softly moaning as you continue fucking <<him>>. <<if _gwylanStatus.includes("heat")>> <<He>> bites your shoulder as <<he>> holds you. <<if ["revealed", "visible"].includes(_gwylanTF.fangs)>> <<if _gwylanTF.fangs is "revealed">> <<His>> fangs <<= $sexRitual.bondage ? "sink into your skin" : "leave a mark">>. <<else>> It hurts, a lot more than you expect. <span class="pink"><<His>> teeth are sharp like a beast's.</span> <</if>> <<set $gwylanSeen.pushUnique("gwylan_fangs")>> <<pain 8>><<ggpain>> <<else>> <<pain 4>><<gpain>> <</if>> <br> <<elseif $gwylanSeen.includes("partners")>> <<He>> hungrily kisses you, not letting you pull away. <<takeKissVirginity "Gwylan" "romantic">> <</if>> <<else>> <<He>> <<if $sexRitual.petplay>>yanks your leash and <</if>>pulls you into a full embrace, quietly shuddering in orgasm. <</if>> <<if $sexRitual.bondage>> <<He>> doesn't seem to care that you can't embrace <<him>> back, given your bound limbs. The three-eyed vision fills your mind, pulsing bright green. <<else>> <<His>> glowing eyes remain locked on yours. <<if C.npc.Gwylan.penis isnot "none">> A small streak of <<his>> own semen lingers on <<his>> tummy. <</if>> <</if>> <<case "playerMissionaryVaginal">> <<if _gwylanResistingOrgasm>> <<He>> tries pulling out of you, but your grip is too strong. <<if C.npc.Gwylan.penis is "none">> <<He>> cums with a strangled moan, <<his>> hips bucking involuntarily. <<else>> <<He>> cums deep inside your womb. <<bodyliquid "vagina" "semen">> <</if>> <<elseif $gwylanSeen.includes("partners")>> <<He>> presses up against you tightly and kisses you as <<if C.npc.Gwylan.penis is "none">> <<he>> cums, grinding <<his>> clit against the base of <<his>> strap-on. <<else>> <<he>> cums inside you. <<bodyliquid "vagina" "semen">> <</if>> <<takeKissVirginity "Gwylan" "romantic">> <<else>> <<He>> buries <<his>> face in your neck as <<if C.npc.Gwylan.penis is "none">> <<he>> cums, grinding <<his>> clit against the base of <<his>> strap-on. <<else>> <<he>> cums inside you. <<bodyliquid "vagina" "semen">> <</if>> <</if>> <<case "playerDoggyVaginal">> <<if _gwylanResistingOrgasm>> <<He>> tries to pull out, but you push further and further back against <<him>>, <<if $sexRitual.bondage>> blocking <<his>> retreat. <<else>> using your legs to trap <<him>>. <</if>> <<if C.npc.Gwylan.penis is "none">> <<He>> cums with an involuntary moan, hips shuddering against you. <<else>> <<He>> cums deep inside you. <<bodyliquid "vagina" "semen">> <</if>> <<elseif $gwylanSeen.includes("partners")>> <<He>> wraps <<his>> arms around you and lifts you so your back is pressing up against <<his>> chest. <<He>> tilts your head to the side to kiss you as <<if C.npc.Gwylan.penis is "none">> <<he>> cums, thrusting <<his>> strap-on deep inside you. <<else>> <<he>> cums deep into your womb. <<bodyliquid "vagina" "semen">> <</if>> <<takeKissVirginity "Gwylan" "romantic">> <<else>> <<He>> buries <<his>> face in your neck as <<if C.npc.Gwylan.penis is "none">> <<he>> cums, grinding <<his>> clit against the base of <<his>> strap-on. <<else>> <<he>> cums inside you. <<bodyliquid "vagina" "semen">> <</if>> <</if>> <<case "playerDoggyAnal">> <<if _gwylanResistingOrgasm>> <<He>> tries to pull out, but you push further and further back against <<him>>, <<if $sexRitual.bondage>> blocking <<his>> retreat. <<else>> using your legs to trap <<him>>. <</if>> <<if C.npc.Gwylan.penis is "none">> <<He>> cums with an involuntary moan, hips shuddering against you. <<else>> <<He>> cums deep inside you. <<bodyliquid "anus" "semen">> <</if>> <<elseif $gwylanSeen.includes("partners")>> <<He>> wraps <<his>> arms around you and lifts you so your back is pressing up against <<his>> chest. <<He>> tilts your head to the side to kiss you as <<if C.npc.Gwylan.penis is "none">> <<he>> cums, <<his>> hips slapping against your ass. <<else>> <<he>> cums deep into your ass. <<bodyliquid "anus" "semen">> <</if>> <<takeKissVirginity "Gwylan" "romantic">> <<else>> <<He>> buries <<his>> face in your neck as <<if C.npc.Gwylan.penis is "none">> <<he>> cums, grinding <<his>> clit against the base of <<his>> strap-on. <<else>> <<he>> cums inside you. <<bodyliquid "anus" "semen">> <</if>> <</if>> <<case "playerRidingVaginal" "playerRidingAnal">> <<if $sexRitual.position is "playerRidingVaginal">><<bodyliquid "vagina" "semen">><<else>><<bodyliquid "anus" "semen">><</if>> <<if _gwylanStatus.includes("heat")>> <<He>> thrusts into you hard as you continue riding <<him>>. <<if C.npc.Gwylan.penis is "none">> <<He>> pants through <<his>> orgasm, hips bucking eagerly. <<else>> <<He>> fills you with <<his>> seed eagerly. <</if>> <<elseif _gwylanStatus.includes("lust")>> <<He>> moans softly as <<if C.npc.Gwylan.penis is "none">> <<he>> cums, rocking <<his>> hips against you. <<else>> <<he>> fills you with <<his>> seed. <</if>> <<if $gwylanSeen.includes("partners")>> <<if $sexRitual.speed is "slow">> You sit still in <<his>> lap for a moment, and <<he>> hungrily kisses you. You stay joined like this for some time. <<takeKissVirginity "Gwylan" "romantic">> <<else>> <<He>> sits up and gives you a quick peck on the lips. <<takeKissVirginity "Gwylan" "romantic">> <</if>> <</if>> <<else>> <<if $sexRitual.bondage>> <<He>> stifles a moan <<else>> <<He>> covers <<his>> mouth <</if>> <<if C.npc.Gwylan.penis is "none">> as you ride <<him>> through <<his>> climax. <<else>> as <<he>> fills you with <<his>> cum. <</if>> <</if>> <<case "serviceTop">> <<if C.npc.Gwylan.penis isnot "none">> <<bodyliquid "mouth" "semen">> <<if _gwylanResistingOrgasm>> <<He>> tries to pull out of your mouth, <<if $transformationParts.traits.fangs isnot "disabled" and ($submissive lte 500 or $demon gte 6)>> <<set $_eagerly to true>> <span class="lewd">but you quickly flash your fangs on the head of <<his>> <<npcPenis>>,</span> forcing <<him>> to stay still so you can extract <<his>> precious seed. <<elseif $ejactrait gte 1 or $demon gte 6>> <<set $_eagerly to true>> <span class="lewd">but you take <<him>> all the way in<<if !$sexRitual.bondage>> and wrap your arms around <<his>> legs<</if>>,</span> forcing <<him>> to stay still so you can extract <<his>> precious seed. <<else>> but it's too late. <</if>> <<if $_eagerly>> You keep sucking, and are rewarded with shot after shot of <<his>> warm semen on your tongue as <<he>> shudders. You swallow it all. <<else>> You get a mouthful of <<his>> semen. <</if>> <<elseif _gwylanStatus.includesAny("aroused", "lust")>> <<He>> pushes your head down as <<he>> shudders. <<if $ejactrait gte 1 or $demon gte 6>> You eagerly take <<his>> whole length, holding it as you taste <<his>> precious seed. <<else>> You get a mouthful of <<his>> warm semen. <</if>> <<else>> <<His>> back slightly arches as <<if $ejactrait gte 1 or $demon gte 6>> you eagerly take <<his>> whole length, holding it. You taste <<his>> warm seed filling your mouth. <<else>> you get a mouthful of <<his>> warm semen. <</if>> <<He>> lets out a relieved sigh, patting your head. <</if>> <<else>> <<bodyliquid "mouth" "goo">> <<if _gwylanResistingOrgasm>> <<He>> tries to pull away from you, <<if $transformationParts.traits.fangs isnot "disabled" and ($submissive lte 500 or $demon gte 6)>> <<set $_eagerly to true>> <span class="lewd">but you quickly flash your fangs right above <<his>> clit,</span> forcing <<him>> to stay still so you can taste <<his>> juices. You keep licking, and are rewarded as <<his>> back arches, squirting into your waiting mouth. <<else>> but it's too late. You taste <<his>> juices. <</if>> <<elseif _gwylanStatus.includesAny("aroused", "lust")>> <<He>> pushes your head down as <<he>> shudders. <<His>> juices squirt into your mouth as <<he>> softly moans. <<else>> <<His>> back slightly arches as <<his>> juices squirt into your mouth. <<He>> lets out a relieved sigh, patting your head. <</if>> <</if>> <<default>> <<He>> shudders. <</switch>> </span> <<sex 20 "genitals">><<garousal>> <<set _linebreak to true>> <</if>> <<if ["player", "both"].includes(_args[0]) and !_deniedOrgasm and !$femaleclimax>> /* Followup if player came */ <<if _args[1] isnot "pre">> <<switch $sexRitual.position>> <<case "gwylanRidingVaginal" "gwylanRidingAnal">> <<if $sexRitual.bondage>> <<if $sexRitual.bondageTattooSeen>> The vision of Gwylan's tattoo pulses briefly. <<else>> <<gwylanRitualTattooVision>> <</if>> <<elseif _gwylanStatus.includesAny("aroused", "lust")>> Gwylan smiles smugly down at you, placing a hand on <<his>> <<bellyDescription "Gwylan">>. <<His>> tattoo pulses briefly. <<else>> <<if $sexRitual.action is "handHold">> <<He>> places a hand, still holding one of yours, on <<his>> <<bellyDescription "Gwylan">>. <<His>> tattoo pulses briefly. <<else>> <<He>> places a hand on <<his>> <<bellyDescription "Gwylan">>. <<His>> tattoo pulses briefly. <</if>> <</if>> <<case "gwylanRidingThighs">> <<if C.npc.Gwylan.penis isnot "none">><<bodyliquid "penis" "goo">><</if>> <<if $sexRitual.bondage>> <<if $sexRitual.bondageTattooSeen>> The vision of Gwylan's tattoo pulses briefly. <<else>> <<gwylanRitualTattooVision>> <</if>> <<He>> scoops up your semen. You hear a wet sound from <<his>> <<npcVagina>>, as <<he>> <span class="pink">pushes your cum inside</span>. <<else>> <<He>> places a hand on <<his>> <<bellyDescription "Gwylan">>, now streaked with your cum. <<His>> tattoo pulses briefly. <<He>> scoops it up with one hand. It trails down towards <<his>> <<npcVagina>>, where <<he>> <span class="pink">pushes your cum into <<himself>> with two fingers</span>. <</if>> <<case "gwylanRidingTrib">> <<bodyliquid "vaginaoutside" "goo">> <<if $sexRitual.bondage>> <<if $sexRitual.bondageTattooSeen>> The vision of Gwylan's tattoo pulses briefly. <<else>> <<gwylanRitualTattooVision>> <</if>> <<He>> reaches a hand between your bodies, and you hear a wet noise as <<he>> <span class="pink">pushes your juices into <<himself>></span>. <<else>> <<He>> places a hand on <<his>> <<bellyDescription "Gwylan">>, now wet with your mixed juices. <<His>> tattoo pulses briefly. <<He>> scoops it up with one hand. It trails down towards <<his>> <<npcVagina>>, where <<he>> <span class="pink">pushes your juices into <<himself>> with two fingers</span>. <</if>> <<case "playerMissionaryVaginal">> <<if $sexRitual.hypnosis is "Gwylan">> <<if $sexRitual.bondage>> <<He>> pauses, and you soon hear the sound of lapping coming from directly next to your head. Somehow, the ivory bowl must have ended up there. Gwylan drinks from it, treating it as if it were a dog bowl. <<else>> <<He>> pauses, staring down at the ivory bowl, which somehow ended up right next to your head. <<He>> starts drinking from it as if it were a dog bowl. <</if>> <<elseif $sexRitual.bondage>> <<He>> pauses long enough to pick something up. You hear the sound of draining liquid as Gwylan drinks the fluid from the ivory bowl. <<else>> <<He>> pauses long enough to consume the fluid from the ivory bowl. <</if>> <<case "playerDoggyVaginal" "playerDoggyAnal">> <<if $sexRitual.hypnosis is "Gwylan">> <<if $sexRitual.bondage>> Somehow, the ivory bowl must have ended up in front of you. You hear the sound of lapping as Gwylan drinks from it, treating it as if it were a dog bowl. <<else>> <<He>> pauses, staring down at the ivory bowl, which somehow ended up right in front of you. <<He>> starts drinking from it as if it were a dog bowl. <</if>> <<elseif $gwylanSeen.includes("partners")>> <<He>> wraps <<his>> arms around you and lifts you so your back is pressing up against <<his>> chest, tilting your head to the side to kiss you as you continue to shudder. <<takeKissVirginity "Gwylan" "romantic">> <<if $sexRitual.bondage>> <<He>> pauses long enough to pick something up. You hear the sound of draining liquid as Gwylan drinks the fluid from the ivory bowl. <<else>> <<He>> pauses long enough to consume the fluid from the ivory bowl. <</if>> <<else>> <<He>> slows down to let you recover. <<if $sexRitual.bondage>> <<He>> picks something up as you catch your breath. You hear the sound of draining liquid as Gwylan drinks the fluid from the ivory bowl. <<else>> <<He>> pauses long enough to consume the fluid from the ivory bowl. <</if>> <</if>> <<case "gwylanDoggyVaginal" "gwylanDoggyAnal">> <<if $sexRitual.bondage>> <<if $sexRitual.playerControlsSpeed>> Gwylan presses back against you. <<else>> You feel Gwylan's hips swaying from side to side. <</if>> <<if $sexRitual.bondageTattooSeen>> The vision of <<his>> tattoo pulses briefly. <<else>> <<gwylanRitualTattooVision>> <</if>> <<elseif $sexRitual.playerControlsSpeed>> <<He>> places a hand on <<his>> <<bellyDescription "Gwylan">>, <<his>> tattoo pulsing briefly. <<else>> <<He>> looks back at you, shaking <<his>> hips side to side. <<His>> tattoo pulses briefly. <</if>> <<case "serviceTop">> <<if $sexRitual.hypnosis is "Gwylan">> <<if $sexRitual.bondage>> After a pause, Gwylan moves away from you. There's a lapping sound as <<he>> drinks fluid from the ivory bowl, treating it as if it were a dog bowl. <<else>> <<He>> pauses, staring down at the ivory bowl next to the two of you. <<He>> moves away from you and starts drinking from it as if it were a dog bowl. <</if>> <<else>> <<He>> slows down to let you recover. <<if $sexRitual.bondage>> <<He>> picks something up as you catch your breath. You hear the sound of draining liquid as Gwylan drinks the fluid from the ivory bowl. <<else>> <<He>> pauses long enough to consume the fluid from the ivory bowl. <</if>> <</if>> <<case "facefuckTop" "facesitTop">> <<He>> gasps for breath as <<he>> escapes your hold on <<him>>. You hear <<him>> swallow, before moving <<his>> head back into place. <<case "gwylanMissionaryVaginal" "gwylanMissionaryAnal">> <<if $sexRitual.bondage>> <<if $sexRitual.bondageTattooSeen>> The vision of Gwylan's tattoo pulses briefly. <<else>> <<gwylanRitualTattooVision>> <</if>> <<elseif _gwylanStatus.includesAny("aroused", "lust")>> Gwylan smiles up at you, placing a hand on <<his>> <<bellyDescription "Gwylan">>. <<His>> tattoo pulses briefly. <<else>> <<He>> places a hand on <<his>> <<bellyDescription "Gwylan">>. <<His>> tattoo pulses briefly. <</if>> <<case "playerRidingVaginal" "playerRidingAnal">> <<if $sexRitual.hypnosis is "Gwylan">> <<if $sexRitual.bondage>> <<He>> shifts under you, whining, until you move enough for <<him>> to sit up. You feel <<him>> lean to the side. There's a lapping sound as <<he>> drinks fluid from the ivory bowl, treating it as if it were a dog bowl. <<else>> <<He>> pauses, staring down at the ivory bowl. <<He>> tries to move towards it, but you're still pinning <<him>> in place. You reach over and hand it to <<him>>, and <<he>> starts drinking from it as if it were a dog bowl. <</if>> <<elseif $gwylanSeen.includes("partners")>> <<He>> wraps <<his>> arms around you and pulls you down, kissing you as you continue to shudder. <<takeKissVirginity "Gwylan" "romantic">> <<if $sexRitual.bondage>> <<He>> pauses long enough to pick something up. You hear the sound of draining liquid as Gwylan drinks the fluid from the ivory bowl. <<else>> <<He>> pauses long enough to consume the fluid from the ivory bowl. <</if>> <<elseif $sexRitual.bondage>> <<He>> twists to the side and picks something up. You hear the sound of draining liquid as Gwylan drinks the fluid from the ivory bowl. <<else>> <<He>> takes the chance to consume the fluid from the ivory bowl before you resume. <</if>> <<default>> <<if $player.penisExist>> <<if $sexRitual.penetrated>> <<He>> holds your entire length in <<his>> mouth until <<hes>> sure you've let out everything. <<elseif $sexRitual.bondage>> <<He>> rests the head of your <<penis>> on <<his>> outstretched tongue as <<he>> continues milking you through your orgasm. After swallowing, <<he>> licks the shaft and head clean<<if $semen_amount gt 0>> as a last bit of cum dribbles out<</if>>. <<else>> <<He>> sticks out <<his>> tongue as <<he>> continues milking your <<penis>>. <<if $semen_amount gte 100>> The final rope overshoots, streaking <<his>> face. <<His>> breath on your <<penis>> makes you shiver as <<he>> wipes the cum away, licking it off <<his>> hand. <<else>> <<He>> takes the head in as the spurts become weaker. <</if>> After swallowing, <<he>> licks the shaft and head clean<<if $semen_amount gt 0>> as a last bit of cum dribbles out<</if>>. <</if>> <<else>> <<He>> licks your fluids from your vagina and thighs. <</if>> <</switch>> <</if>> <<if $world_corruption_soft gte 50 and $sexRitual.purge gte 4 and !$sexRitual.tentacleEvent and $gwylanSeen.includes("ritual_sex")>> <<set $sexRitual.tentacleEvent to true>><<set $sexRitual.tentacles += $sexRitual.purge>> <<if ["gwylanRidingVaginal", "gwylanRidingAnal", "gwylanRidingThighs", "gwylanDoggyVaginal", "gwylanDoggyAnal", "gwylanMissionaryVaginal", "gwylanMissionaryAnal"].includes($sexRitual.position)>> <span class="red">You feel something inside Gwylan squirm and writhe against your <<penis 2>>.</span> <<elseif ["gwylanRidingTrib"].includes($sexRitual.position)>> <span class="red">You feel something inside Gwylan squirm and writhe against your vagina, from <<his>> own. <<= $sexRitual.bondage ? "It feels like" : "It's">> a small tentacle.</span> <<elseif ["service", "facefuckTop", "facesitTop"].includes($sexRitual.position)>> <span class="red"><<= $sexRitual.bondage ? "Something slender" : "A thin, purple tentacle">> briefly twists itself around Gwylan's tongue. It caresses and wriggles against your skin. You feel something try to move into you.</span> <<else>> <span class="red">You feel something inside Gwylan squirm and writhe, trying to move into you.</span> <</if>> <<if $temple_confessor_intro>> You can feel its emptiness. It's the corruption you took from the forest, yearning to come back to you. <</if>> <<if $sexRitual.connectionBroken>> <span class="red">Nothing is stopping it, and it's nearly free.</span> <<if $sexRitual.hypnosis is "Gwylan">> Gwylan whines in pleasure, seemingly lost in it and providing no resistance in <<his>> current state. <<else>> Gwylan giggles, <<= $sexRitual.bondage ? "sounding" : "looking">> lost in pleasure, but quickly shakes <<himself>> back to lucidity. "It's okay... just stay in the circle and it can't get out. It'll be trapped in here with us." <</if>> <<else>> <<if $sexRitual.bondage>> <<gwylanRitualTattooVision>> Whatever you felt, it's quickly snuffed out. <<else>> It's quickly snuffed out as Gwylan's tattoo glows brighter. <</if>> "This is a lot more than I'm used to taking all at once, but... it's okay, I can take it. It can't leave the way it came in. It's trapped inside me for now." <</if>> <<elseif $sexRitual.tentacles gte 1>> <<set $sexRitual.tentacles += 1>> <<switch $sexRitual.tentacles>> <<case 1 2 3 4 5>><span class="purple"><<His>> breathing is shallow, and <<his>> hands tremble.</span> <<case 6 7 8>><span class="pink"><<if $sexRitual.bondage>><<His>><<else>><<He>> looks sickly, and <<his>><</if>> movements become weaker.</span> <<default>><span class="red"><<if $sexRitual.bondage>>You can feel something writhe<<else>><<His>> eyes briefly glaze over. Something writhes<</if>> under <<his>> skin as <<he>> loses <<himself>> to lust.</span> <</switch>> <<elseif !$sexRitual.sealed and $sexRitual.playerOrgasms is 1 and _args[1] isnot "pre" and $sexRitual.hypnosis isnot "Gwylan" and !$sexRitual.connectionBroken>> "The connection is made, but hasn't been sealed. We need more." <<elseif $sexRitual.willContest is "cum" and $sexRitual.hypnosis isnot "Gwylan">> <<set $sexRitual.willContest to "none">> <<if _gwylanStatus.includes("dom") and !_failedOrgasm>> <<if !["service", "facefuckTop", "facesitTop"].includes($sexRitual.position)>> <<He>> pulls away and giggles. <<else>> <<He>> giggles. <</if>> "<<pcPetname "Gwylan" "good">>, let it all out. See how much better it feels when you listen to me?" <</if>> <</if>> <<if numberOfEarSlime() and $sexRitual.sealed and !$sexRitual.connectionBroken>> <<if $sexRitual.penetrated>> <<llcorruption true>><<corruption -10>> <<else>> <<lcorruption true>><<corruption -5>> <</if>> <</if>> <<set _linebreak to true>> <</if>> <<if ["Gwylan", "both"].includes(_args[0])>> <<set _linebreak to true>> <<set $sexRitual.gwylanOrgasms++>> <<set $sexRitual.arousal to Math.floor((C.npc.Gwylan.lust + C.npc.Gwylan.dom) / 2)>> <<npcincr Gwylan lust -2>><<llust>> <</if>> <</widget>> <<widget "gwylanRitualPenetrate">> <<set $_gwylanPart to _args[0]>> <<set $_playerPart to _args[1]>> <<set _consensualOverride to true>> <<set _npcConsensualOverride to true>> <<if _args[0] is "withdraw">> <<if $player.penisExist>> <<set $penisstate to 0>><<set $penisuse to 0>><<set $penistarget to 0>> <</if>> <<if $player.vaginaExist>> <<set $vaginastate to 0>><<set $vaginause to 0>><<set $vaginatarget to 0>> <</if>> <<if C.npc.Gwylan.penis isnot "none">> <<set $NPCList[0].penis to 0>> <</if>> <<if C.npc.Gwylan.vagina isnot "none">> <<set $NPCList[0].vagina to 0>> <</if>> <<set $NPCList[0].mouth to 0>><<set $mouthuse to 0>><<set $sexRitual.playerControlsSpeed to false>><<set $sexRitual.penetrated to false>> <<elseif !["penis", "anus", "vagina", "mouth"].includes($_gwylanPart) or !["penis", "anus", "vagina", "mouth"].includes($_playerPart)>> <span class="red">You and Gwylan horrifically crash together, your sexual organs all out of whack. This is a bug. Please report. <br> Provided Gwylan Part: $_gwylanPart <br> Provided Player part: $_playerPart <br></span> <<else>> <<set $sexRitual.penetrated to $_gwylanPart>> <<if $_playerPart is "penis">> <<penilestat>><<set $penistarget to 0>><<set $sexRitual.arousal += $player.penissize>><<sex 20 "genitals">> <<if $_gwylanPart is "vagina">> <<set $penisuse to "othervagina">><<set $NPCList[0].vagina to "penis">> <<takeNPCVirginity "Gwylan" "vaginal">> <<if $speechNPCVaginaVirgin>> <span class="lewd"><<He>> <<= $sexRitual.bondage ? "lets out a surprised noise" : "looks surprised">>, clearly forgetting that <<he>> was technically a virgin again until now.</span> <</if>> <<elseif $_gwylanPart is "anus">> <<set $penisuse to "otheranus">> <<if C.npc.Gwylan.penis is "none">><<set $NPCList[0].vagina to "otheranus">><<else>><<set $NPCList[0].penis to "otheranus">><</if>> <<takeNPCVirginity "Gwylan" "anal">> <<if $speechNPCAnusVirgin>> <span class="lewd">In this body, at least.</span> <</if>> <<elseif $_gwylanPart is "mouth">> <<set $penisuse to "othermouth">><<set $NPCList[0].mouth to "penis">> <<takeNPCVirginity "Gwylan" "oral">> <<if $speechNPCOralVirgin>> <span class="lewd">In this body, at least.</span> <</if>> <</if>> <<if $player.virginity.penile is true and ($_gwylanPart isnot "mouth" or $virginitytest is 1)>> <<set $_virginityNotif to true>> <<set $gwylanSeen.pushUnique("virginity_penile")>> <<set $sexRitual.virginityTaken to "penile">> <<set $sexRitual.angelReact to $angel>> <span class="red">You feel your foreskin separate from your glans,</span> <<virginitylosttext "Gwylan">> <<sex 100 "genitals">><<takeVirginity "Gwylan" "penile">> <</if>> <<if $_gwylanPart isnot "mouth" or $virginitytest is 1>> <<takeTempleVirginity "Gwylan" "penile">><<raped>><<penisraped>> <</if>> <<elseif $_playerPart is "anus">> <<analstat>><<set $anustarget to 0>><<sex 30 "anus">> <<set $anususe to "penis">> <<takeNPCVirginity "Gwylan" "penile">> <<if $speechNPCPenisVirgin>> <span class="lewd"><<He>> <<= $sexRitual.bondage ? "lets out a surprised noise" : "looks surprised">>, clearly forgetting that <<he>> was technically a virgin again until now.</span> <</if>> <<if $player.virginity.anal is true>> <span class="red">You've been violated in a way you hadn't conceived of.</span> <<sex 100 "anus">><<takeVirginity "Gwylan" "anal">><<violence 100>> <</if>> <<raped>><<anusraped>> <<elseif $_playerPart is "mouth">> <<oralstat>><<raped>><<takeVirginity "Gwylan" "oral">> /* Nothing */ <<else>> <<vaginalstat>><<set $vaginatarget to 0>><<sex 30 "genitals">> <<set $vaginause to "penis">> <<takeNPCVirginity "Gwylan" "penile">> <<if $speechNPCPenisVirgin>> <span class="lewd"><<He>> <<= $sexRitual.bondage ? "lets out a surprised noise" : "looks surprised">>, clearly forgetting that <<he>> was technically a virgin again until now.</span> <</if>> <<if $player.virginity.vaginal is true>> <<set $_virginityNotif to true>> <<set _YEEEOWCH to true>> <<set $gwylanSeen.pushUnique("virginity_vaginal")>> <<set $sexRitual.virginityTaken to "vaginal">> <<set $sexRitual.angelReact to $angel>> <<if $sexStats.vagina.pregnancy.totalBirthEvents gt 0>> <span class="red">Despite your lack of a hymen, you feel something inside you change as your virginity and purity are taken.</span> <<else>> <<switch C.npc.Gwylan.penissize>> <<case 5>> The sheer size forces all thought from your mind. <span class="red">Your hymen is obliterated, <<virginitylosttext "Gwylan">></span> <<violence 30>> <<case 4>> <span class="red">Your hymen is destroyed, <<virginitylosttext "Gwylan">></span> <<violence 20>> <<default>> <span class="red">You feel your hymen tear, <<virginitylosttext "Gwylan">></span> <<violence 10>> <</switch>> <</if>> <<sex 100 "genitals">><<takeVirginity "Gwylan" "vaginal">> <</if>> <<takeTempleVirginity "Gwylan" "vaginal">><<raped>><<vaginaraped>> <</if>> <</if>> <<if $_virginityNotif and $sexRitual.hypnosis isnot "Gwylan">> <<if $sexRitual.bondage>> <<if $sexRitual.position is "gwylanDoggyAnal" or $sexRitual.position is "gwylanDoggyVaginal">> <<He>> straightens up so <<his>> back touches your chest and turns <<his>> head, making sure you're alright after losing your virginity. <<elseif $sexRitual.position is "playerDoggyVaginal">> <<He>> leans down and turns your head, making sure you're alright after losing your virginity. <<else>> <<He>> reaches up to touch your face, making sure you're alright after losing your virginity. <</if>> <<else>> <<if $sexRitual.position is "gwylanDoggyAnal" or $sexRitual.position is "gwylanDoggyVaginal">> <<He>> straightens up, <<his>> back now touching your chest, and looks back at you, making sure you're alright after losing your virginity. <<elseif $sexRitual.position is "playerDoggyVaginal">> <<He>> leans down and turns your head, making sure you're alright after losing your virginity. <<else>> <<He>> looks up to meet your gaze, making sure you're alright after losing your virginity. <</if>> <</if>> <<if $sexRitual.angelReact gte 6>> <<if $sexRitual.bondage>> <<He>> hesitates. "Is this really what you wanted?" <<elseif $fallenangel gte 2 and $transformationParts.fallenAngel.halo isnot "hidden">> <<He>> frowns, <<his>> face no longer brightly illuminated by your halo. "Is this really what you wanted?" <<else>> <<He>> frowns. "Is this really what you wanted?" <</if>> <<set $gwylanSeen.pushUnique("fallen_angel")>> <</if>> <<if $sexRitual.position is "gwylanDoggyAnal" or $sexRitual.position is "gwylanDoggyVaginal">> <<He>> places a kiss on your cheek before getting back on all fours. <<elseif $sexRitual.position is "playerDoggyVaginal">> <<He>> places a kiss on your forehead. <<elseif ["service", "facefuckTop"].includes($sexRitual.position)>> <<He>> places a gentle kiss on the head of your <<penis>>. <<else>> <<He>> briefly leans forward, placing a kiss on your forehead. <</if>> "I'll remember this gift you've given me." <<lpain>><<pain -4>> <<set $sexRitual.virginityProtected to false>> <</if>> <</widget>> /* ToDo: Gwylan - Gwylan recognises the taste of the player's fluids from the cafe */ /* ToDo: Gwylan - Divine tf has Gwylan offer hypnotic peace later */<<set $outside to 0>><<set $location to "forest_shop">><<effects>> <<specialClothesRefresh>><<run statusCheck("Gwylan")>> <<if $enteringForestShop>> <<set _justEntered to true>> <<unset $enteringForestShop>> <</if>> <<if $enteringForestShopTogether>> <<set _enteredTogether to true>> <<unset $enteringForestShopTogether>> <</if>> <<set _shopEvent to (!$robin_in_forest_shop and !$daily.gwylan.eventShop and !Time.isBloodMoon() and ["garden", "shop"].includes(gwylanSchedule()) and C.npc.Gwylan.state is "active")>> <<if $forest_shop_intro isnot 1>> <<set $daily.gwylan.eventShop to true>> <<include "Forest Shop Intro">> <<elseif _justEntered and _shopEvent and _gwylanStatus.includes("reunion")>> <<set $daily.gwylan.eventShop to true>><<unset $gwylanSteal>> <<include "Forest Shop Reunion">> <<elseif _justEntered and !$robin_in_forest_shop and _gwylanStatus.includes("aurigaScarConfront")>> <<set $daily.gwylan.eventShop to true>> <<include "Forest Shop Nowhere">> /* ToDo: Gwylan bad end - walking into the shop after escaping */ <<elseif _justEntered and _shopEvent and $dissociation gte 1 and !$weekly.gwylanTrauma>> <<set $daily.gwylan.eventShop to true>><<set $weekly.gwylanTrauma to true>> <<include "Forest Shop Trauma">> <<elseif _justEntered and !$robin_in_forest_shop and $gwylanSteal and !Time.isBloodMoon()>> <<set $daily.gwylan.eventShop to true>><<unset $gwylanSteal>> <<include "Forest Shop Thief">> <<elseif _justEntered and _shopEvent and _gwylanLovePercent gte 10 and !$gwylanSeen.includes("intruder")>> <<set $daily.gwylan.eventShop to true>> <<include "Forest Shop Intruder">> <<elseif _justEntered and _shopEvent and _gwylanLovePercent gte 85 and C.npc.Gwylan.dom gte 120 and $hypnosis_traits.devotion gte 3 and $gwylanSeen.includesAll("partners", "hypnosis_deepest", "petplay") and !$gwylanSeen.includes("familiar_collar")>> <<set $daily.gwylan.eventShop to true>> <<include "Forest Shop Familiar Collar">> <<elseif _justEntered and !$gwylan.timer.randomOrgasm and $hypnosis_traits.devotion and ($arousal gte 10000 or $gwylanSeen.includes("ritual_beast") and random(1, 40) is 1)>> <<set $gwylan.timer.randomOrgasm to new DateTime(Time.date).addDays(14).timeStamp>> <<include "Forest Shop Mystery Orgasm">> <<else>> <<if $gwylan.timer.eventShopEnd>> <<if Time.date.timeStamp gte $gwylan.timer.eventShopEnd>> <<run delete $gwylan.timer.eventShopEnd>> <<set $daily.gwylan.eventShop to true>> <</if>> <</if>> <<set _snoopEvent to _shopEvent and (_justEntered or $gwylan?.timer?.eventShopEnd)>> You are in the forest shop. The interior is dark and crowded by tall shelves, holding all manner of items. Most are useless knick-knacks, but some interest you. <br><br> <<if isPregnancyEnding()>> <<pregnancyPassout "forestShop">> <<else>> <<if _gwylanLovePercent gte 35 and !$gwylan.punishment and !$gwylan.taken and !$gwylan.timer.wrap and (pcAreArmsBound("any") or $feetuse is "bound")>> Your bindings catch on <<print either("a loose shelf", "a clothes hangar", "a low-hanging branch", "some unpleasantly sticky vines")>>. You try to pull away, and <span class="green">your bindings fall to tatters at your feet.</span> <<unbind>> <br><br> <</if>> <<if !$robin_in_forest_shop and (gwylanSchedule() isnot "shop" or $daily.gwylan.noTalk)>> <<if Weather.precipitation === "rain">> The shop is silent, save for the gentle rhythm of the rain. <<else>> The shop is silent. <</if>> <<if $daily.gwylan.noTalk or isGwylanAbsent() is "nobody">> <<if isGwylanAbsent() is "nobody">> Nobody is here. <<else>> Gwylan doesn't seem to be here. <</if>> <<else>> <<if $gwylanSeen.includes("fox_plushie_gwylan")>> A small sign hangs from the neck of a large fox plushie sitting on a counter.<br> It reads <<else>> A small sign on a nearby counter reads <</if>> <<if gwylanSchedule() is "cafe">> 'Out for breakfast. Exact change only, please!' <<elseif gwylanSchedule() is "garden">> 'Out in the garden. Exact change only, please!' <<else>> 'Will return soon. Exact change only, please!' <</if>> <</if>> <<else>> <<if $robin_in_forest_shop>> Robin is busy admiring the costumes. <br> <<if !$halloween_robin_costume or $halloween_robin_costume is "ghost">> <<socialiseicon>><<link [[Talk to Robin|Robin Forest Costume Intro]]>><</link>> <</if>> <<elseif _snoopEvent and _gwylanLovePercent gte 20 and $gwylanSeen.includes("intruder", "clothes_intro") and !$gwylanSeen.includes("hat_found")>> <<set $gwylan.timer.eventShopEnd to new DateTime(Time.date).addHours(3).timeStamp>> The shop is silent, and you see no sign of Gwylan anywhere. <span class="purple">It's a little darker than usual, too.</span> <br> <<investigateicon>><<link [[Try to find Gwylan|Forest Shop Hat]]>><</link>> <<elseif _snoopEvent and _gwylanLovePercent gte 35 and $gwylanSeen.includes("hat_found") and !$gwylanSeen.includes("lights") and $gwylan.progress gte 3 and $gwylan.requestCount gte 2>> <<set $gwylan.timer.eventShopEnd to new DateTime(Time.date).addHours(2).timeStamp>> The shop is silent, and you see no sign of Gwylan. <span class="purple">It's darker than usual.</span> <br> <<investigateicon>><<link [[Try to find Gwylan again|Forest Shop Lights]]>><</link>> <<elseif _snoopEvent and _gwylanLovePercent gte 50 and $gwylanSeen.includes("lights") and !$gwylanSeen.includesAny("caught", "caught_no_lewd") and $gwylanTalked.length gte 10 and $gwylan.progress gte 6 and !(["clothing"].includes($gwylan.request.event) && gwylanRequestMet())>> <<set $gwylan.timer.eventShopEnd to new DateTime(Time.date).addHours(2).timeStamp>> The shop is silent, and you see no sign of Gwylan. <span class="purple">It's darker than usual.</span> <br> <<investigateicon>><<link [[Try to find the hidden room again|Forest Shop Snoop]]>><</link>> <<else>> <<if Time.isBloodMoon()>> <<set $gwylan.timer.bloodVisit to new DateTime(Time.date).addDays(1).timeStamp>> Gwylan wanders around the shop. <<nnpc_He "Gwylan">> occasionally stops by a window to stare out at the red sky, before vanishing back into the gloom. <<else>> You hear Gwylan shuffling somewhere in the gloom. <</if>> <br> <<socialiseicon>><<link [[Look for Gwylan|Gwylan Talk Shop]]>><</link>> <</if>> <</if>> <br> <<icon "clothingshop.png">><<link [[Browse clothes|Forest Shop]]>><</link>> <br> <<if $gwylanSeen.includes("lights")>> <<if !$gwylanSeen.includes("sample")>> Some strips of decorated cloth hang from a line of rope. <br> <<investigateicon>><<link [[Examine them|Forest Shop Charms]]>><</link>> <br> <<else>> <<if $gwylan.timer.sample gte Time.date.timeStamp>> Some charms sway gently in a breeze you can't feel. <br> <<investigateicon>><<link [[Examine the charms|Forest Shop Charms]]>><</link>> <<else>> <<mysteryicon>><span class="purple">The charms have all burnt out, and are unreadable.</span> <</if>> <br> <</if>> <</if>> <<if !$robin_in_forest_shop and $gwylanSeen.includes("doggy_bed")>> <<if !$gwylan.timer.petBed>> <<bedicon "gwylanpet">><span class="purple">You can't find <<if $worn.neck.name is "familiar collar" and $worn.neck.cursed is 1>>your pet bed<<else>>the bed Gwylan left out for you<</if>>.</span> <<else>> <<set _doggyBedText to $worn.neck.name is "familiar collar" and $worn.neck.cursed is 1 ? "Your pet bed" : "Pet bed">> <<bedicon "gwylanpet">><<link [[_doggyBedText|Forest Shop Dog Bed]]>><</link>> <</if>> <br> <</if>> <<if $christmas_gift_robin is undefined and $christmas is 1 and C.npc.Robin.init is 1>> <<if isLoveInterest("Robin")>><<gifticon "love">><<else>><<gifticon "christmas">><</if>><<link [[Find a gift for Robin (0:10)|Forest Christmas Robin]]>><<pass 10>><</link>> <br> <</if>> <<if isPubfameTaskAccepted("gwylan")>> <<if $pubfame.gwylan.snowglobe isnot 1>> <<icon "snowgsnowglobelobe.gif">><<link [[Look for the snow globe (0:20)|Forest Snowglobe]]>><<pass 20>><</link>> <<elseif $money gte 2000 and ["shop", "garden"].includes(gwylanSchedule())>> <<icon "snowgsnowglobelobe.gif">><<link [[Purchase the snow globe (£20)|Forest Snowglobe Buy]]>><<money -2000>><</link>> <</if>> <br> <</if>> <br> <<if $robin_in_forest_shop>> <<getouticon>><<link [[Leave with Robin (0:10)|Robin Forest Shop Home]]>><<pass 10>><<endevent>><</link>> <<else>> <<getouticon>><<link [[Leave the shop|Forest]]>><<endevent>><<set $eventskip to 1>><<set $forest to 0>><</link>> <</if>> <br> <br><br> <<if $shopHuntMinigameTest>> <span class="orange">SHOP HUNT MINIGAME TESTING</span> <br> <<ind>><<link [[Forest Shop Hunt Test|Forest Shop Hunt Test]]>><</link>> <br> <</if>> <</if>> <</if>> /* Entrance override for lockout or blood moon */<<set $location to "forest_shop">><<effects>> <<if $yearningLetter is 2 and C.npc.Gwylan.state is "scorned" and !isGwylanAbsent()>> You raise your hand to the door. It creaks open. You didn't hear it unlock. <br><br> It's very dark inside. <br><br> <<link [[Enter|Gwylan Yearning Start]]>><<endevent>><</link>> <br> <<link [[Leave|Forest]]>><<endevent>><<set $eventskip to 1>><</link>> <br> <<else>> You try the shop's door. It won't budge, and you don't see anything resembling a keyhole. <<if Time.isBloodMoon()>>There's a faint glow coming from within.<</if>> <br><br> <<link [[Knock|Forest Shop Knock]]>><</link>> <br> <<link [[Leave|Forest]]>><<endevent>><<set $eventskip to 1>><</link>> <br> <</if>><<effects>> <<if $daily.gwylan.locked or $forest_shop_intro isnot 1 or C.npc.Gwylan.state is "scorned" or isGwylanAbsent()>> You knock on the door. There's no answer. <br><br> <<if C.npc.Gwylan.state is "scorned">> <<link [[Apologise|Forest Shop Scorned Apologise]]>><</link>> <br> <</if>> <<link [[Leave|Forest]]>><<endevent>><<set $eventskip to 1>><</link>> <br> <<elseif Time.isBloodMoon() and C.npc.Gwylan.love gte 10 and !$gwylanSteal>> You knock on the door. <<if $wraith and $wraith.hunt>> <<set $gwylan.timer.bloodKnock to new DateTime(Time.date).addDays(1).timeStamp>> Something in the building shudders, and you hear multiple additional locks clicking into place. <span class="red">You feel whatever's hunting you draw closer.</span> <<set $wraith.hunt++>><<set $foresthunt++>> You hope Gwylan heard you, <span class="blue"><<nnpc_he "Gwylan">> might at least come looking for you if you get caught</span>. <br><br> <<link [[Leave|Forest]]>><<endevent>><<set $eventskip to 1>><</link>> <br> <<else>> After a moment of silence, you hear Gwylan's voice. "Enter." <span class="blue"><<nnpc_He "Gwylan">> sounds strangely monotone.</span> You hear multiple locks click, and the door's handle twists to let you in. <br><br> <<if $gwylanSeen.includes("bloodmoon")>> <<link [[Next|Forest Shop Entrance]]>><<endevent>><<set $enteringForestShop to true>><</link>> <<else>> <<link [[Next|Forest Shop Blood]]>><</link>> <</if>> <br> <</if>> <<else>> /* Fallback case */ You knock on the door. There's no answer. <br><br> <<link [[Leave|Forest]]>><<endevent>><<set $eventskip to 1>><</link>> <br> <</if>><<effects>> "Gwylan? I'm sorry," you call out. <br><br> There's no answer. <br><br> <<link [[Leave|Forest]]>><<endevent>><<set $eventskip to 1>><</link>> <br> <<if $hypnosis_traits.devotion gte 3 or $wolfgirl gte 6 or $cat gte 6>> <<link [[Scratch at the door|Forest Shop Scorned Scratch]]>><</link>> <br> <</if>><<effects>> <<set $gwylan.scratchDoor ||= 0>> <<set $gwylan.scratchDoor++>> You scratch at the door like a <<if $cat gte 6>>cat<<else>>dog<</if>>. <<if $wolfgirl gte 6>> You even whine for good measure. <</if>> <br><br> There's still no response. <br><br> <<link [[Leave|Forest]]>><<endevent>><<set $eventskip to 1>><</link>> <br><<set $outside to 0>><<set $location to "forest_shop">><<effects>> <<set $gwylanSeen.pushUnique("bloodmoon")>><<set $gwylan.timer.bloodVisit to new DateTime(Time.date).addDays(1).timeStamp>> <<npc Gwylan 1>><<person1>> You enter, and the door slowly closes itself behind you. <span class="red">You can't see Gwylan anywhere.</span> <br><br> You hear rapid footsteps from the rear of the shop. Gwylan runs into view, holding a broomstick. <<He>> looks both relieved and confused upon seeing you. "How did you get in?" <br><br> "You let me in?" you reply. <br><br> "No, I—" <<He>> pauses, looking up to the ceiling with an annoyed expression. "Of course. Apologies, I'm a bit scattered tonight." <<He>> looks back to you with concern. "You shouldn't be out on nights like tonight, especially out here in the forest. It's dangerous." <<He>> returns to the gloom. <br><br> <<link [[Next|Forest Shop Entrance]]>><<endevent>><</link>> <br> <!-- Events that can happen on shop entrance -->/* included, no effects */ <<npc Gwylan>><<person1>><<run statusCheck("Gwylan")>> You enter the strange building. The interior is dark and crowded by tall shelves, holding all manner of items. <br><br> <<if _enteredTogether>> Gwylan lets go of your hand and gestures around <<him>>. <<else>> The quiet is broken by a scraping, then a thud. A mousy <<personsimple>> holding a stepladder appears at the end of the closest aisle. <<if _gwylanStatus.includes("met")>> It's Gwylan. <br><br> <<if $daily.gwylan.firstMet>> "You came! I wasn't expecting you so soon, I would have put some tea on otherwise," <<else>> "You came!" <</if>> <<else>> <br><br> "A customer!" <</if>> <<he>> says, dropping the ladder and walking over. <<He>> wipes <<his>> hands on <<his>> apron. <</if>> "Welcome to my shop." <<if $exposed gte 1>> <<He>> seems completely unbothered by your <<lewdness>>. <</if>> <br><br> <<if $gwylan_rescue is 1 and $gwylanRescue.failed>> <<gwylanRescueApology "shop" "intro">> <br><br> "I hope you find something you like," <<he>> says<<if !_enteredTogether>>, picking the ladder back up<</if>>. "But don't worry if you don't. My grand<<father>> would say the objects here hide from people they don't want to be bought by." <<He>> giggles. "I could believe it." <<elseif !_gwylanStatus.includes("met")>> <<He>> looks about your age, with mousy hair and a hint of freckles. "I'm older than I look," <<he>> says, as if reading your mind. "<span class="green">I'm Gwylan.</span>" <<He>> reaches forward, lifts your hand, and shakes it in both <<his>> own. "Pleased to meet you. I sell—" <<He>> pauses. "My grand<<father>> sells—" Another pause. "I sell clothes and knick-knacks here. <span class="blue">Things you won't find in normal shops.</span> Even I don't know what I have in stock!" <<He>> sounds proud. <br><br> "I hope you find something you like," <<he>> says, picking the ladder back up. "But don't worry if you don't. My grand<<father>> would say the objects here hide from people they don't want to be bought by." <<He>> giggles. "I could believe it." <<else>> <<He>> pinches your cheek, and smiles warmly. "I hope you find something you like," <<he>> says<<if !_enteredTogether>>, picking the ladder back up<</if>>. "But don't worry if you don't. My grand<<father>> would say the objects here hide from people they don't want to be bought by." <<He>> giggles. "I could believe it." <</if>> <br><br> <<if ["sleep"].includes(gwylanSchedule()) or Time.hour gte 22>> <<if _enteredTogether>> Gwylan checks the time. "It's rather late, but don't worry, the shop can take care of itself. Just leave exact change on the second counter on the left." <<else>> <<He>> then pokes you on the nose. "Sneaky <<pcpetname "Gwylan" "simple">>, coming in at this hour." <<He>> giggles again. "The shop can take care of itself if I'm out. Just leave exact change on the second counter on the left." <</if>> <br><br> <<elseif !["shop", "garden"].includes(gwylanSchedule())>> <<He>> seems to remember something. "I'm actually just about to leave, but don't worry, the shop can take care of itself. Just leave exact change on the second counter on the left." With that, <<he>> grabs an oversized hat from a spindly stand, hangs up <<his>> apron in the same spot, and darts out the door behind you. <br><br> <</if>> <<set $forest_shop_intro to 1>> <<link [[Next|Forest Shop Entrance]]>><<endevent>><</link>> <br>/* included, no effects */ <<npc Gwylan>><<person1>><<run statusCheck("Gwylan")>> <<outfitChecks>> <<if _shirtless and _bottomless>> <<set _startedNaked to true>> As you enter the forest shop, your foot meets a ?gwylanItem on the floor. <<else>> As you enter the forest shop, your <<if _shirtless>> <<bottoms>> <<is _bottom>> <<else>> <<top>> <<is _top>> <</if>> caught on the doorhook. <<if $gwylanSeen.includes("steal_again")>> Knowing what's about to happen, you try to grab onto something to steady yourself, but your balance is further thrown off as you trip over a ?gwylanItem. <</if>> <</if>> You stumble. <br><br> <<set _strippedAmount to 0>> <<if _overOutfit or $worn.over_upper.name isnot "naked">> <<if $worn.over_upper.cursed>> Your $worn.over_upper.name <<= $worn.over_upper.plural is 1 ? "don't" : "doesn't">> come free from the doorhook, and <<overupperit>> <span class="red">painfully <<= $worn.over_upper.plural is 1 ? "constrict" : "constricts">> as you fall.</span> You spring right back, slamming against the door, which sets you free but causes you to keep stumbling. <<pain 4>><<stress 12>><<gpain>><<ggstress>> <br> <<else>> Your $worn.over_upper.name never <<= $worn.over_upper.plural is 1 ? "come" : "comes">> free from the doorhook, <span class="red">and you fall right out of <<overupperit>> with a loud rip.</span> <<overupperruined true>> <<if _overOutfit>> <<overlowerruined true>> <</if>> <</if>> <<set _strippedAmount++>> <<set _continueStrippingOver to true>> <</if>> <<if $worn.over_lower.name isnot "naked">> <<if _continueStrippingOver>> You manage to stay on your feet, but you're still off balance. <</if>> Your $worn.over_lower.name <<= $worn.over_lower.plural is 1 ? "catch" : "catches">> on a misshapen shelf as you crash into it, <<if $worn.over_lower.cursed>> where <<overlowerit>> <<= $worn.over_lower.plural is 1 ? "fail" : "fails">> to come free. You give <<overlowerit>> a tug, but pull just a little too hard, causing you to continue stumbling as <<overlowerit>> <<= $worn.over_lower.plural is 1 ? "come" : "comes">> loose. <<stress 12>><<ggstress>> <<else>> and <<overloweritis>> <span class="red">torn from your body</span>. <<overlowerruined true>> <</if>> <<set _strippedAmount++>> <<set _continueStrippingOver to true>> <</if>> <<if _continueStrippingOver>> <br><br> <</if>> <<if _middleOutfit or $worn.upper.name isnot "naked">> Your $worn.upper.name <<= $worn.upper.plural is 1 ? "snag" : "snags">> on the long hook of a rusted hanger. <<if $worn.upper.cursed>> The entire stack of hangers comes spilling out of its shelf, further hindering your efforts to stay on your feet. <<stress 24>><<ggstress>> <br> <<else>> It finds purchase, and punches a hole right through <<upperit>>. The hook must be attached to something heavy, as you hear a loud thud <span class="red">followed by a rip</span> as the hook drags itself along. Your $worn.upper.name <span class="red"><<= $worn.upper.plural is 1 ? "fall" : "falls">> right off</span>. <<upperruined true>> <<if _middleOutfit>> <<lowerruined true>> <</if>> <</if>> <<set _strippedAmount++>> <<set _continueStrippingMid to true>> <</if>> <<if $worn.lower.name isnot "naked">> <<if _continueStrippingMid>> <<if $worn.upper.cursed>> You trip on the hangers, and continue your destructive stumble. <<else>> You keep tripping over yourself, every floorboard seeming to be in the perfect position to make sure you can't stop. <</if>> <</if>> A nail sticking out of an old vanity grabs your $worn.lower.name. <<if $worn.lower.cursed>> The resulting pressure on your <<bottom>> is painful, but brief, as <<lowerit>> <<= $worn.lower.plural is 1 ? "break" : "breaks">> free. <<pain 4>><<stress 12>><<gpain>><<ggstress>> <<else>> It tears a hole much bigger than the size of the nail should be capable of, <span class="red"> and <<= $worn.lower.plural is 1 ? "they fall" : "it falls">> away in two pieces</span>. <<lowerruined true>> <</if>> <<set _strippedAmount++>> <<set _continueStrippingMid to true>> <</if>> <<if _continueStrippingMid>> <br><br> <</if>> <<if _underOutfit or $worn.under_upper.name isnot "naked">> You stumble through the doors of an open wardrobe, the force of which causes the whole thing to nearly tip over as it turns with your momentum. A clothing hook gets a firm hold on your $worn.under_upper.name, <<if $worn.under_upper.cursed>> which <<= $worn.under_upper.plural is 1 ? "snap" : "snaps">> painfully against your back as you stumble back out. <<pain 4>><<stress 12>><<gpain>><<ggstress>> <br> <<else>> and <<underupperitis>> <span class="red">left behind</span> as you twirl back out of the wardrobe, the doors slamming shut. <<underupperruined true>> <<if _underOutfit>> <<underlowerruined true>> <</if>> <</if>> <<set _strippedAmount++>> <<set _continueStrippingUnder to true>> <</if>> <<if $worn.under_lower.name isnot "naked">> <<if _continueStrippingUnder>> Your twirling gets you caught on yet another intruding object, this time a thin tree branch. <<else>> You're assailed by a thin tree branch growing out of the woodwork. <</if>> Your $worn.under_lower.name <<underlowerplural>> grabbed by the waist, <<if $worn.over_lower.cursed>> and the tension makes <<underlowerit>> slap you right on your <<bottom>><<if _continueStrippingUnder and $worn.under_upper.cursed>> once again<</if>>. <<pain 4>><<stress 12>><<gpain>><<ggstress>> <<else>> and the branch <span class="red">tears <<underlowerit>> free</span>, the flexibility of the branch causing <<underlowerit>> to be flung off into the gloom before the branch then strikes you on your <<bottom>>. <<pain 2>><<stress 12>><<gpain>><<ggstress>> <<underlowerruined true>> <</if>> <<set _strippedAmount++>> <<set _continueStrippingUnder to true>> <</if>> <<if _continueStrippingUnder>> <br><br> <</if>> <<if $worn.head.name isnot "naked" or $worn.face.name isnot "naked">> You come to a sudden stop as your face is introduced to the hard surface of a support beam, <<if $worn.face.name isnot "naked">> <<if ["glasses", "cool"].includesAny($worn.face.type)>> your $worn.face.name <span class="red">making a sickening crack</span> before falling to the floor. <<else>> your $worn.face.name snagging on a piece of metal before <span class="red">being ripped off</span>. <</if>> <<if $worn.head.name isnot "naked">> Your $worn.head.name follow<<if $worn.head.plural is 0>>s<</if>> suit, a sudden gust of wind <span class="red">taking it god knows where</span>. <<headruined true>> <</if>> <<faceruined true>> <<else>> <<if $worn.head.type.includes("hat")>> the force of which knocks your $worn.head.name clean off, a sudden gust of wind <span class="red">taking it god knows where</span>. <<else>> <span class="red">ripping away your $worn.head.name</span> with ease. <</if>> <<headruined true>> <</if>> <<pain 8>><<stress 12>><<gpain>><<ggstress>> <br> <<set _strippedAmount++>> <<set _continueStrippingAcc to true>> <</if>> <<if $worn.neck.name isnot "naked">> <<if _continueStrippingAcc>> As you begin to fall backwards, <<else>> Tripping your way past a support beam, <</if>> your $worn.neck.name <<is $worn.neck>> caught <<if ["collar", "choker"].some(keyword => $worn.neck.name.includes(keyword))>> on a protruding nail, <<else>> in one of the cracks, <</if>> <<if $worn.neck.name is "familiar collar" and $worn.neck.cursed is 1>> <span class="forest-green">but immediately comes loose unscathed</span>. <<else>> <<if $settings.asphyxiaLevel gte 2>> tightening around your neck <<if $masochism_level gte 1>> <span class="lewd">until you can hardly breathe</span> <<else>> <span class="red">until you can hardly breathe</span> <</if>> <<else>> threatening to choke you <</if>> <<if $worn.neck.cursed is 1>> before suddenly coming loose. <<else>> <span class="red">before being violently ripped away</span>. <<neckruined true>> <</if>> <<if $settings.asphyxiaLevel gte 2 and $masochism_level gte 1>><<stress 24>><<arousal 400>><<ggstress>><<garousal>><<else>><<stress 12>><<gstress>><</if>> <</if>> <br> <<set _strippedAmount++>> <<set _continueStrippingAcc to true>> <</if>> <<if _continueStrippingAcc>> <br> <</if>> <<if $worn.feet.name isnot "naked">> Your legs flail desperately, trying to find a semblance of balance. <<if $worn.feet.cursed is 1>> The $worn.feet.name only seem to make this task harder as you collide with various furniture. <<else>> One after another, your $worn.feet.name are <span class="red">flung through the air</span>, one of which comes crashing down on your head. <<feetruined true>> <</if>> <<set _strippedAmount++>> <<set _continueStrippingFeet to true>> <</if>> <<if $worn.legs.name isnot "naked">> <<if _continueStrippingFeet>> Meanwhile, your <<else>> Your <</if>> $worn.legs.name drag across the floor, <<if $worn.legs.cursed is 1>> until they hook on a broken plank, <<else>> steadily coming loose before hooking onto a broken plank, <span class="red">tearing them off completely</span> and <<legsruined true>> <</if>> propelling you forward with a jolt of speed. <<if _continueStrippingFeet>><<pain 8>><<gpain>><</if>> <<set _strippedAmount++>> <<set _continueStrippingFeet to true>> <</if>> <<if _continueStrippingFeet>> <br><br> <</if>> <<if $worn.hands.name isnot "naked" or $worn.handheld.name isnot "naked">> <<if $worn.handheld.name isnot "naked">> You reflexively <span class="red">throw your $worn.handheld.name aside</span>, helplessly grasping <<handheldruined true>> <<else>> You helplessly grasp <</if>> at thin air in a desperate attempt to find anything to grab onto. <<if $worn.hands.name isnot "naked">> <<if $worn.hands.cursed is 1>> Your fingers wrap around something, but you quickly realise it's not fixed to anything. You accidentally drag a bunch of loose boxes down with you, a ?gwylanItem falling out of one of them and hitting you in the shoulder. <<else>> Your hands find a hanging rope, only to find it's been covered in something sticky. You can only watch as your $worn.hands.name <span class="red">are left behind</span>, the rope snapping around to whip you on the <<bottomsimple>>. <<handsruined true>> <</if>> <<pain 2>><<stress 6>><<gpain>><<gstress>> <</if>> <br><br> <</if>> <<outfitChecks>> <<if $gwylanSeen.includes("steal_first") and _fullyNaked and !$gwylan.timer.wrap or _startedNaked>> Another wardrobe yawns open, and you fall in. <<if gwylanSchedule() is "shop">> <<set $gwylan.timer.lastSeen to Time.date.timeStamp>> You look up to see Gwylan at the end of an aisle, looking right at you. <<if $gwylanSeen.includes("partners")>> <<He>> blows a kiss and waves as the doors of the wardrobe slam shut. <<else>> <<He>> smiles and waves as the doors of the wardrobe slam shut. <</if>> <</if>> <span class="lewd">You feel yourself get caught up in something sticky.</span> Whatever it is, it wraps around you and clings on. You fall against something hard as the wardrobe rumbles. Your stomach turns as you then crash into something else, as if the whole wardrobe was moving. <br><br> Whatever's wrapped around you constricts and kneads against your skin. <<pain 3>><<arousal 1500>><<gpain>><<ggarousal>> <br><br> <<link [[Next|Forest Shop Stolen Wrap]]>><</link>> <br> <<else>> The wooden floor creaks as if mocking you with each tortured, clumsy step you take. <<if gwylanSchedule() is "shop">> <<set $gwylan.timer.lastSeen to Time.date.timeStamp>> <<if !$gwylanSeen.includes("steal_first")>> <<set $gwylanSeen.pushUnique("steal_first")>> Gwylan claps as you <<if _strippedAmount gte 4>>finally <</if>>end up right in front of <<him>> at the counter, <<if _fullyNaked>>now stark-naked<<else>>sore and humiliated<</if>>. "What a dance! I've never seen someone lose a fight with a building so gracefully." <<He>> gives you a sweet smile, which slowly turns into a serious glare. <<He>> points behind you, at the entrance. There's a ladder at the door. You must have walked right under it. <br><br> "Bad luck, I suppose. Thieves with bad luck won't be thieves for long." <<He>> puts a finger under your chin. "Might as well buy some new clothes while you're here!" <<He>> returns to a sweet smile as <<he>> claps once more. <<else>> <<set $gwylanSeen.pushUnique("steal_again")>> Gwylan claps as you finally end up right in front of <<him>> at the counter, <<if _fullyNaked>>now stark-naked<<else>>sore and humiliated<</if>> once again. "You make bad luck look so beautiful." <<if Time.monthDay is 13 and Time.weekDay is 6>> <<He>> points to a calendar on the wall. <span class="pink">It's Friday. The 13th.</span> <<else>> <<He>> points behind you. <span class="pink"> <<print either( "There's a black cat in the window.", "A few ravens glare at you from the window.", "You walked under a ladder on your way in again.", "There's an antique salt shaker spilled over on a counter. You must have knocked it over on your way in." )>> </span> <</if>> "You really should be more careful. Luck is a nasty thing. Care to buy something now that you're here? Again?" <</if>> <<else>> <<tearful>> you cover your <<lewdness>>, thankful that no one else seems to be here. <</if>> <br><br> <<link [[Next|Forest Shop Entrance]]>><<endevent>><</link>> <br> <</if>>/* included, no effects */ <<npc Gwylan>><<person1>> <<if $gwylanRescue?.failed>> <<gwylanRescueApology "shop">> <<He>> walks up to you, and <<his>> normally bright smile sullens after getting a closer look at you. <<else>> As you enter the forest shop, Gwylan skips over to you. <<His>> normally bright smile sullens after getting a look at you. "Are... are you alright? You don't look well at all." <</if>> <<He>> reaches out to touch you. <br><br> Your body roils at the gesture. <span class="red">Nothing feels real. You forget where you are.</span> All you know is that you're in the forest somewhere. Are you lost? Wooden shelves carved into trees tower into an impossibly tall canopy. Something in the shape of a person steps away from you. <<if $awarelevel gte 4>>Something terrible, with a false name and antlers growing from its shadow.<</if>> <br><br> <<switch $speech_attitude>> <<case "meek">>"Please... please stay away from me!" Your voice quivers. <<case "bratty">>"Stay the hell away from me!" You shout, but your voice betrays your fear. <<default>>"Please... get away." Your voice is soft but shaky. <</switch>> <br><br> Gwylan takes a deep breath as <<he>> calms <<himself>>. "Alright." <<He>> sighs and walks away. With <<him>> out of sight, you gather yourself, but your mind wanders to the many assaults you've faced. You're not safe here. This place is no better than outside. You back yourself against the door. Your eyes dart around. They lock onto Gwylan, standing by a rotting wooden table. <<He>> sets a plate of fruits down. "Take one. It will make you feel better." <br><br> <<link[[Eat one|Forest Shop Trauma 2]]>><<set $phase to 0>><</link>> <br> <<link[[Ignore|Forest Shop Trauma 2]]>><<set $phase to 1>><</link>> <br><<effects>><<run statusCheck("Gwylan")>><<set $gwylanSeen.pushUnique("trauma")>> <<if $phase is 0>> <<canvas-model-override "mouth" "chew">> <<if !$gwylanSeen.includes("trauma_eat")>> <<set $gwylanSeen.pushUnique("trauma_eat")>> You walk with slow steps over to the plate. You haven't seen these types of fruits before. Carefully, you pick one up and take a small bite. You feel a pleasant warmth and your muscles relax. They seem safe to eat. <<stress -6>><<trauma -12>><<lstress>><<lltrauma>> <<else>> You walk with slow steps over to the plate. Carefully, you pick one up and take a small bite. You feel a pleasant warmth and your muscles relax. <<stress -6>><<trauma -12>><<lstress>><<lltrauma>> <</if>> <br><br> You almost animalistically eat the piece of fruit. Each bite gives you a sense of safety. You forget about the outside world as you continue to eat. Once you finish, you notice Gwylan out of the corner of your eye. <<He>> smiles sweetly at you. <br><br> <<if C.npc.Gwylan.love gte 25>> Your eyes lock on <<his>> smile. <<His>> face looks so welcoming. The shop starts to twist and meld around you, only Gwylan staying in focus. <<hallucinogen 80>><<ghallucinogens>> <br><br> <<He>> holds out <<his>> arms to you. You suddenly feel so cold, and <<he>> looks so warm. Your legs move on their own, but you don't feel them. If you could, you think you'd be walking even faster towards <<him>>. You collapse in <<his>> arms. <br><br> <<link [[Next (?:??)|Forest Shop Trauma 3]]>><<canvas-model-override "clear">><</link>> <br> <<else>> <<link [[Next|Forest Shop Entrance]]>><<canvas-model-override "clear">><<endevent>><</link>> <br> <</if>> <<else>> You keep away from the plate as if it were a bear trap. A sense of uneasiness grows in your stomach. You grip the handle for the door. You grip it until your fingers ache. <<pain 2>><<gpain>> <br><br> You don't open it, though. You stand there until Gwylan comes back into view. <<His>> hands are folded in front of <<him>>. <<if C.npc.Gwylan.love gte 25>> <<He>> looks a little sad, but nods at you politely before returning to the gloom. <<else>> <<He>> seems unsure of what to do, but gives you one last patient smile before returning to the gloom. <</if>> <br><br> <<link [[Next|Forest Shop Entrance]]>><<endevent>><</link>> <br> <</if>><<effects>> <<set _pass to random(10, 30)>> <<pass _pass>> When you come to, you're lying down with your head against something soft. Your head is gently stroked, and you feel warm and fuzzy. <<ltiredness>><<lltrauma>><<tiredness -6>><<trauma -24>> <br><br> You struggle to open your eyes. You want nothing more than to go back to sleep. <<if $hypnosis_traits.slumber gte 1>> <<hypnosisText "A sweet voice whispers in your ear, and you do just that, the last dregs of tension leaving your body.">> <<tiredness -2>><<ltiredness>> <<else>> A sweet voice whispers in your ear, and you do just that, the last dregs of tension leaving your body. <span class="witchbloom">It's pure bliss. You've never had sleep so restful.</span> <</if>> <br><br> <<link [[Next (?:??)|Forest Shop Trauma 4]]>><<tiredness -12>><<trauma -12>><</link>><<lltiredness>><<ltrauma>> <br><<effects>> <<set _pass to random(30, 60)>> <<pass _pass>> You wake up again, this time with a start. How long were you out? You try to lift your head, but a firm hand holds it down. "Easy there." It loosens enough for you to look up. <<if C.npc.Gwylan.breastsize gte 9>> You're met by a pair of <<print C.npc.Gwylan.breastsdesc>>, but you can just make out Gwylan's smiling face beyond. <<else>> Gwylan's gentle smile greets you again. <</if>> Your head is in <<his>> lap. <br><br> <<He>> idly strokes your head. "Feeling better?" <<if $auriga_scar gte 1>> <<His>> hand moves down to rest on your chest. Your heart skips a beat, <span class="purple">and you feel your scar writhe</span>. <</if>> <br><br> <<link [[Nod|Forest Shop Trauma 5]]>><<set $phase to 0>><</link>> <br> <<link [[Go back to sleep|Forest Shop Trauma 5]]>><<npcincr Gwylan lust 2>><<set $phase to 1>><</link>><<glust>><<gwylanHypnoNote>> <br> <<if !$gwylanSeen.includes("trauma_love")>> <<link [[Get angry|Forest Shop Trauma 5]]>><<npcincr Gwylan lust -2>><<set $phase to 2>><</link>><<llust>> <br> <</if>><<effects>><<run statusCheck("Gwylan")>> <<set $gwylanSeen.pushUnique("trauma_love")>> <<if $phase is 0>> You nod your head wordlessly. You really do feel better. You can't remember why you were so upset. <br><br> Gwylan lets you up. "Sorry I can't give you more, those fruits don't grow on tr—" <<He>> pauses. "They're not easy to grow." <br><br> <<if $gwylanSeen.includes("romance")>> <<He>> sadly smiles. "To love someone is not to rescue them, but to stand ready when they dare to rescue themselves." <<He>> leans in and kisses you. <<gwylanKiss 0>> <br><br> "I stand ready." <<He>> returns to the gloom, poorly concealing a beetroot-red blush. <<else>> <<He>> steps away, but stops on the edge of the gloom. "I can't walk this road of struggles for you, no matter how laden with thorns it is. But I can sell you a pair of shoes for the journey." <<He>> takes the final step, leaving you alone again. <</if>> <<elseif $phase is 1>> <<pass 5>> <<set _tf to checkTFparts()>> You bury your face back into Gwylan's lap. You're not able to fall asleep again, but <<hes>> happy to oblige you, <<if _tf.demonHorns or _tf.cowHorns>> gently stroking your head again and idly rubbing your horns. <<elseif _tf.angelHalo>> gently stroking your head again and running <<his>> other hand along your halo. <<elseif _tf.fallenAngelHalo>> gently stroking your head again and carefully trying to move the pieces of your broken halo back into place. They don't stay together. <<elseif _tf.wolfEars or _tf_foxEars>> gently rubbing your <<if _tf.wolfEars>>wolf<<else>>fox<</if>> ears. <<He>> seems to like them a lot. <<elseif _tf.catEars or _tf.cowEars>> gently stroking your head again and rubbing your <<if _tf.catEars>>cat<<else>>cow<</if>> ears. <<else>> gently stroking your head again. <</if>> After about five minutes, you get up. <<stress -6>><<lstress>> <br><br> <<if $hypnosis_traits.devotion and (!$hypnosis_traits.slumber or $hypnosisTimers.slumber and $hypnosisTimers.slumber.time lt Math.floor($hypnosisTimers.slumber.max / 2))>> <span class="witchbloom">You immediately yearn to return to <<his>> lap and sink back into the blissful slumber.</span> <br> <<gwylanHypnosis "slumber" 10>> <</if>> "Sorry I can't give you more, those fruits don't grow on tr—" <<He>> pauses. "They're not easy to grow." <br><br> <<if $gwylanSeen.includes("romance")>> <<He>> sadly smiles. "To love someone is not to rescue them, but to stand ready when they dare to rescue themselves." <<He>> leans in and kisses you. <<gwylanKiss 0>> <br><br> "I stand ready." <<He>> returns to the gloom, poorly concealing a beetroot-red blush. <<else>> <<He>> steps away, but stops on the edge of the gloom. "I can't walk this road of struggles for you, no matter how laden with thorns it is. But I can sell you a pair of shoes for the journey." <<He>> takes the final step, leaving you alone again. <</if>> <<else>> <<set $daily.gwylan.noTalk to true>> You force yourself up out of Gwylan's grasp. <<He>> makes no effort to stop you when <<he>> realises that you're not happy. <<switch $speech_attitude>> <<case "meek">> "Wh-what did I eat? What did you do to me?" You take a step back from Gwylan. <<He>> frowns. <br><br> "I'm sorry. I thought that would help." <<case "bratty">> "Did you fucking drug me?" you ask. <br><br> "Yes," <<he>> says plainly. "Didn't it help?" <<default>> "What was that? What did you do?" you ask. <br><br> "Are you upset? I thought it would help," <<he>> says with a frown. <</switch>> You stop and think for a moment. You can't remember why you were so upset when you came here. Did it help? <br><br> "I wanted to ease some of your burden. Maybe I'm out of touch. I'm sorry." <<He>> bows, before retreating behind a shelf and vanishing in the gloom. <</if>> <br><br> <<link [[Next|Forest Shop Entrance]]>><<endevent>><</link>> <br>/* included, no effects */ <<set $gwylanSeen.pushUnique("intruder")>> <<npc Gwylan>><<beastPARTNERinit 1 wolf 0>> As you move to open the forest shop's door, it's flung open from the inside. A dark, fuzzy shape barrels into you as it flees the shop, knocking you to the ground. <<gpain>><<pain 3>> <br><br> The shape flees, seemingly paying you no mind. Once you get your bearings, you're able to recognise that it's a <span class="lewd"><<beasttype 1>></span> fleeing deeper into forest. You brush yourself off and enter the shop. <br><br> <<person1>>Gwylan stands in front of you, looking worse for wear. <<His>> apron has a few fresh rips, and <<he>> pants, holding a broom in both hands as if ready to swing it at you. <<He>> lowers it right away upon realising that it's you. <br><br> "Sorry. Rowdy customer. <<if $NPCList[1].monster is "monster">> I'd happily have given <<bhim 1>> some clothes if <<bhe 1>>'d have asked. <</if>> I need to remember to leave some wolfshrooms out." <<He>> collects <<himself>>, looking down at <<his>> clothes. "Bah, I need to change first." <br><br> <<link [[Next|Forest Shop Entrance]]>><<endevent>><</link>> <br> <!-- Snooping events --><<effects>> <<set $daily.gwylan.eventShop to true>><<set $gwylanSeen.pushUnique("hat_found")>> <<npc Gwylan>><<person1>> As you walk around, it becomes apparent that the shop isn't the same as the last time you were here. None of the shelves are in the same place. You quickly notice that there doesn't seem to be any clothing in this section, despite the abundance of wooden mannequins. <br><br> You spend more time wandering, until you start to feel lost. You call out to the gloom. "Gwylan?" The light echo of your voice is the only answer. <br><br> <<link [[Keep looking (0:05)|Forest Shop Hat 2]]>><<pass 5>><<set $phase to 1>><</link>> <br> <<link [[Just leave (0:05)|Forest Shop Hat 2]]>><<pass 5>><</link>> <br><<effects>><<run statusCheck("Gwylan")>><<set _tf to checkTFparts()>> <<if $phase is 1>> You continue looking. You're unable to recognise what's on most of the shelves, but your eyes eventually fix on something unusual. <<else>> You turn around and start to retrace your steps. You make a bit of progress, but things quickly start to look unfamiliar. <<stress 6>><<gstress>> <br><br> Eventually, you spot something that sticks out from all the unidentifiable knick-knacks. <</if>> There's a small depression in the wall, like there's supposed to be a door there. Next to it, there's a wooden mannequin wearing a dark green witch hat with brown animal ears sewn on. The ears get darker near the tip. <<if _tf.foxEars>> <span class="pink">Your own ears twitch.</span> They're certainly meant to resemble fox ears. <</if>> It's the same one you saw Gwylan posing a mannequin with, and perhaps the same mannequin too. Now that you have a closer look, you notice that the flowers on the hat are very much alive. There are vines hanging from the brim. <br><br> You reach for it, gently taking it off of the mannequin's head. <span class="red">A wooden hand caresses your arm</span>. You jump back with a start, only to back right into someone behind you. <<stress 12>><<ggstress>> <br><br> You quickly turn around. It's just Gwylan. <br><br> <<if _gwylanStatus.includes("cautious")>> "Looking for something in particular? Or are you just skulking around?" <<else>> "Sorry, did I scare you? I heard you call out for me and came looking." <</if>> You look back to the mannequin. One of its hands is raised to its mouth. You can't say for sure whether it was already like that. <br><br> "Oh, you found my hat! I was looking all over for it!" Gwylan smiles at you, putting it on. "Even I lose track of things here. The shop must like you if it's showing you around and trying to give you my accessories." <<He>> holds <<his>> arms behind <<his>> back. "I know the shop can be confusing. It—" <<He>> pauses. "I... have to rearrange things frequently. Sorry, I'm a bit scattered." Gwylan leads you around, showing you how to get back to the main section of the shop, before leaving you to your business. <br><br> <<link [[Next|Forest Shop Entrance]]>><<endevent>><</link>> <br><<effects>> <<set $daily.gwylan.eventShop to true>><<set $gwylanSeen.pushUnique("lights")>> You wander around the shop again, looking for Gwylan or anything of interest. Everything on the shelves seems completely mundane to you, and you pass them by without thinking about it. You can't remember a single thing you see for more than a few seconds. <br><br> Instead, you feel a pull towards the back of the shop. Your legs move with purpose even if your mind hasn't quite caught up yet. You feel like you know what you're looking for and exactly where it is, moving on instinct. <<awareness 2>><<gawareness>> <br><br> You start to see a dim green glow peeking through the shelves. You follow it, and before too long, you're in front of a depression in the wall. The same one from last time. Green light spills from the seams. There's a door here after all. The air feels warmer, your head lighter. <<ghallucinogens>><<hallucinogen 200>> <br><br> It takes you a moment to find the mechanism to open it. It's... just a doorknob. But you didn't see it until your hand was on it. You give it a twist, and it opens. <br><br> <<link [[Next|Forest Shop Lights 2]]>><<pass 15>><</link>> <br><<effects>><<npc Gwylan 1>><<person1>> The room on the other side is pitch black. You take a step in, and immediately smell roses. You hear someone talking, but their voice sounds strange. It's like trying to remember a voice you haven't heard in years. <br><br> "...not my fault you led <<phim>> right to me!" <br> You hear a rumble at your feet. As if something deep below was trembling in protest. <br> "I don't usually need to lock the door! Excuse me for getting comfortable in my own home!" <br> Another rumble, pressing against your feet as you walk further into the blackness. <br> "That's <i>your</i> job. Can we please not fight? I think <<pshes>>—" <br><br> "Are you alright?" Now you recognise the voice. It's Gwylan. <<Hes>> standing right in front of you. At a counter. In the shop. <br><br> You're standing in the shop. It's normally lit, and the shelves are all in their usual place. You blink away the confusion. Gwylan looks at you with worry. "You've been standing there staring at me for a while." You still smell roses. <br><br> <<link [[Ask what just happened|Forest Shop Lights 3]]>><<set $phase to 1>><</link>> <br> <<link [[Say you're fine|Forest Shop Lights 3]]>><<set $phase to 2>><</link>> <br><<effects>> <<if $phase is 1>> <<switch $speech_attitude>> <<case "meek">> "I'm... I'm confused. Who were you talking to you? Where was I? I thought..." You trail off. You can't remember. <<case "bratty">> "My head hurts. I definitely heard you yelling at someone. How the hell did I get here? I was..." You trail off. You can't remember. <<default>> "Hang on, I heard you talking to someone. And I wasn't here, I was..." You trail off. You can't remember. <</switch>> <br><br> Gwylan's eyes widen. "Oh! I was talking to my grand<<father>> just before you came in." <<His>> face reddens. "Sorry if you overheard any of that. But, after you came in you started wandering around for about ten minutes, then you walked up here and started staring at me." <<else>> <<switch $speech_attitude>> <<case "meek">> "I'm fine," you say softly. <<case "bratty">> "I'm perfectly fine," you say. <<default>> "I'm fine," you say. <</switch>> It's a lie, but you're too confused to care. <</if>> <<He>> frowns, before <<his>> eyes move to your cheek. <<He>> reaches under the counter for a napkin, and wipes your face. <span class="lewd">There's some small blue grains on it.</span> <br><br> "You should be more careful about what you eat." <<npcincr Gwylan lust 2>><<glust>> <br><br> <<link [[Next|Forest Shop Entrance]]>><<endevent>><</link>> <br><<effects>> You navigate the gloom, letting the misplaced shelves guide you again until you see the same green glow. The air feels warmer, your head lighter. <<ghallucinogens>><<hallucinogen 40>> <br><br> You find the impression in the wall right next to a mannequin. You reach for the doorknob, but <span class="red">it doesn't budge</span>. Gwylan must have remembered to lock it this time. <br><br> <span class="blue">The mannequin is pointing away from the door, deeper into the shop.</span> <br><br> <<ind>><<link [[Go where the mannequin is pointing|Forest Shop Hunt Intro]]>><<set $phase to "garden">><</link>> <br> <<getouticon>><<link [[Back to the shop|Forest Shop Entrance]]>><<handheldon>><</link>> <br><<effects>><<npc Gwylan 1>><<person1>> <<set $daily.gwylan.eventShop to true>> The room beyond isn't pitch black this time. It's a wide room full of more wooden mannequins, awash in the green glow. <<stress 6>><<gstress>> <br><br> The glow is coming from further in, through an open doorframe on the other side of the room. It seems to be receding as you move towards it. You carefully navigate the maze of mannequins, and can't help but take note of the poses some of them are in. Many hold their wooden hands up to their cheeks, their heads thrown back in <<if $trauma gte 2500>> terror. <<else>> jubilation. <</if>> At least, that's your best guess. It's hard to tell with their entirely blank, smooth faces. Some hold one hand over where their mouths would be, <<if $trauma gte 2500>> showing disgust, maybe. <<else>> stifling laughter, perhaps. <</if>> Did Gwylan meticulously pose all of these <<himself>>? <br><br> Lost in thought, you nearly trip over something heavy, but steady yourself without too much noise. It's a large bag of dirt, next to a heaping stack of identical bags. On the wall behind them is a full arsenal of gardening equipment. You look up and almost jump out of your skin as you're met with a pale face. <<ggstress>><<stress 24>> <br><br> It's another mannequin. This one is dressed in a black tunic of some kind, decorated with a white cross on the chest. It also wears a white, emotionless mask, and its right arm is pointing off to the side towards the doorway. <br><br> You're close enough to hear Gwylan whispering, and a faint hum bounces off the walls. <<if Weather.precipitation is "rain">> You hear the gentle pitter-patter of rain, too. <<elseif Weather.precipitation is "snow">> You feel the outside chill creeping in, and smell fresh snow. <<elseif Time.dayState is "night">> You feel the cool night air creeping in. <<else>> <<switch Time.season>> <<case "spring">>You feel a mild spring breeze flow into the room. <<case "summer">>You feel the summer air warming the room. <<case "autumn">>You feel a damp autumn breeze flow into the room, and hear the rustle of leaves, too. <<case "winter">>You feel the cold winter air blow a stiff breeze into the room. <</switch>> <</if>> This must lead back outside. <br><br> You slowly approach the frame, and peek around the corner. <br><br> <<if $world_corruption_soft gte 25 and (($settings.monsterChance gte 1 and ($hallucinations gte 1 or !$settings.monsterHallucinationsOnly)) or $settings.bestialityEnabled)>> <<link [[Next|Forest Shop Caught 2]]>><<handheldon>><</link>> <<else>> <<link [[Next|Forest Shop Caught No Lewd]]>><<handheldon>><</link>> <</if>> <br><<set $location to "forest_shop_garden">><<effects>><<run statusCheck("Gwylan")>><<set _tf to checkTFparts()>> <<set $gwylanSeen.pushUnique("caught_no_lewd")>><<set $gwylanSeen.pushUnique("garden_seen")>> <<if $gwylanSeen.includes("garden")>> You're in Gwylan's garden. You weren't allowed to see the way here before. <br><br> The smell of roses overpowers the other floral smells. Your eyes follow the intensity of the rapidly dimming glow, making you peek all the way around the corner against the wall of the shop to the raised open room. <<if Weather.precipitation is "rain" or Weather.precipitation is "snow">> The inside is untouched by the <<print Weather.precipitation>>. <</if>> <br><br> Nearby, there's a wooden bath filled with steaming water. You also <<else>> <<set $gwylanSeen.pushUnique("garden")>> A large expanse of square stone tiles stretch along the ground, connecting patches of grass and raised sections filled with dirt, flowers and herbs. Surrounding it all is an impressive weaving of crossed wooden stakes at least eight feet high, with gaps just large enough to allow vines to grab and climb through, shielding the whole area from prying outside eyes. It's an enclosed garden. <br><br> You can smell roses, as well as burning incense. Your eyes follow the intensity of the rapidly dimming glow, making you peek all the way around the corner against the wall of the shop. There's another raised section, but this one is different. It's covered by a wooden roof, <<if Weather.precipitation is "rain" or Weather.precipitation is "snow">> untouched by the <<print Weather.precipitation>>, <</if>> and the inside is padded with various cushions and quilts. <br><br> Nearby, there's a wooden bath filled with steaming water. More interestingly, however, you <</if>> see Gwylan standing in front of it with <<his>> back to you. <<Hes>> wearing a silk robe and <<his>> large witch hat. <<if !$gwylanSeen.includes("hat_colour") and $awarelevel gte 1 and !_gwylanTF.known>> <<set $gwylanSeen.pushUnique("hat_colour")>> In this light, you notice just how well the fake ears on the hat match <<his>> hair colour. <</if>> <br><br> <<if !_gwylanTF.tail is "revealed">> <<Hes>> also wearing a... tail? <<if _tf.wolfTail or _tf.foxTail>> Your own tail swishes for a moment. <<elseif $cat gte 6 or $cow gte 6>> Your hair stands on end instinctively. <</if>> <<if _gwylanTF.tail is "visible">> <<set $gwylanSeen.pushUnique("gwylan_tail")>> As you look closer, you realise it's a fake one. However, just as the thought crosses your mind, <span class="pink">it moves from side to side on its own</span>. <<else>> However, as you look closer, it quickly becomes apparent that it's fake. <</if>> <br><br> <<else>> <<Hes>> also wearing <<his>> fake tail. <</if>> <<He>> continues whispering, interspersed with occasional melodic humming. <br><br> <<link [[Watch|Forest Shop Caught No Lewd 2]]>><</link>> <br><<effects>><<beastPARTNERinit 1 wolf 0>> <<His>> hands reach forward to something near waist-level. You adjust your viewing angle and see <span class="blue"> a <<beasttype 1>> <<if $NPCList[1].monster is "monster">> kneeling before <<him>> <<else>> sitting in front of <<him>> <</if>> </span> in a wooden bath. <br><br> <<bHis 1>> eyes are placid and glowing with a gentle green hue. "Roll," Gwylan says. The <<beasttype 1>> dunks <<bhis 1>> head under the water and rolls <<bhis 1>> body around, getting completely soaked. "Good <<if $NPCList[1].gender is "m">>boy<<else>>girl<</if>>," Gwylan whispers, gently patting <<bhim 1>> on the head. The <<beasttype 1>> leans into it, closing <<bhis 1>> glowing eyes. Green streaks of light escape from the corners. <br><br> Gwylan steps around <<bhim 1>>, inspecting <<bhim 1>> while humming softly again. It's soothing. Your body starts to relax, until <span class="red"><<nnpc_he "Gwylan">> looks right in your direction as <<he>> circles.</span> You quickly retreat around the corner, your heart pounding. <<stress 12>><<gstress>> <br><br> You wait there for a moment, frozen. You await the sound of footsteps, or for <<him>> to say something, but it never comes. You peek around the corner again. Despite facing you, <<he>> doesn't seem to actually see you. <<His>> eyes glow the same green, and <<his>> attention is entirely on the <<beasttype 1>>. <br><br> You notice that the front of <<his>> robe is loose and open near the bottom, exposing <<his>> stomach. There's something on it. A tattoo, or perhaps several. The central design is a triangle composed of three interwoven loops. Around it are various esoteric symbols continuing off of each other, bound by jagged roots and vines. <br><br> <<He>> squeezes out a soapy sponge over the <<beasttype 1>>'s head, and starts to scrub down <<bhis 1>> fur. <br><br> <<link [[Reveal yourself and ask Gwylan what <<hes>> doing|Forest Shop Caught No Lewd 3]]>><<set $phase to 1>><</link>> <br> <<link [[Just watch|Forest Shop Caught No Lewd 3]]>><<set $phase to 2>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<if $phase is 1>> You step out from your hiding place. "Hey, wh—" <<else>> You stay hidden around the corner. Gwylan continues to hum and wash the <<beasttype 1>>. <<He>> squeezes a bottle of pet shampoo over <<bhim 1>>. <br><br> You hear the repeated thrum of wood against stone from behind you. You start to turn, but are <span class="red">suddenly pushed out from your hiding place by something.</span> You stumble out. <</if>> <br><br> Gwylan shrieks and jumps upon seeing you, but quickly covers <<his>> mouth. <<if _gwylanTF.tail isnot "hidden" and _gwylanTF.tail isnot "revealed">> <span class="pink"><<His>> tail puffs up in fright, as if it were real.</span> <</if>> <<He>> adjusts <<his>> robe to cover up <<his>> stomach. "How did you—" <br><br> The <<beasttype 1>> stands and growls at you as the green glow around <<bhis 1>> eyes fades. Gwylan wraps <<his>> arms around <<bhim 1>>. "Shh, shh, it's okay." <<bHe 1>> obediently sits back down in the wooden bath. Gwylan looks back to you and whispers. "<<bHes 1>> in a trance. I'll explain, but let me finish up." <br><br> <<link [[Offer to help|Forest Shop Caught No Lewd 4]]>><<set $phase to 1>><</link>><<tendingdifficulty 200 600>> <br> <<link [[Wait (0:10)|Forest Shop Caught No Lewd 4]]>><<pass 10>><<set $phase to 2>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<if $phase is 1>> You approach the tub and slowly put your hands on the <<beasttype 1>>. <<if $tendingSuccess>> <<pass 5>> <span class="green"><<bHe 1>> leans into your touch, <<bhis 1>> tail wagging and splashing in the water.</span> <<if _gwylanStatus.includes("cautious")>> Gwylan looks hesitant, but sighs and hands you a sponge, seeming impressed at your gentleness. <<else>> Gwylan looks impressed, and hands you a sponge. <</if>> The two of you scrub the <<beasttype 1>> down together. <<npcincr Gwylan dom 1>><<npcincr Gwylan lust 2>><<glust>><<gyearning>> <<else>> <<pass 10>> <span class="red"><<bHe 1>> growls again, baring <<bhis 1>> teeth at you.</span> Gwylan waves you away. <<if _gwylanStatus.includes("cautious")>> "This requires a gentle touch. Please stay back." <<else>> "I appreciate the attempt, but this isn't casual work. Leave it to me, please." <</if>> <</if>> <<else>> You sit down and wait for Gwylan to finish washing the <<beasttype 1>>. <</if>> <br><br> Some time passes in silence. Gwylan cautiously breaks it with a soothing voice as to not startle the <<beasttype 1>> further. "You're awfully nosy, sneaking in here <span class="blue">again</span>. I suppose the shop showed you the way." <<He>> doesn't sound angry, but you can't quite tell. <br><br> <<He>> notices your confused look. "<span class="blue">You've been here once already.</span> You stumbled around in my storeroom, making all sorts of noise. I thought you were an intruder or thief." <<He>> gestures to a jar of blue powder on a nearby table. "<span class="pink">I... made you forget about it.</span>" <<He>> pauses. "I could make sure you don't remember this time either, but you're too curious. You'll just find your way in here again. Nothing to be done about it," <<he>> finishes with a smile. "You're lucky you're so interesting." <br><br> More silence. <<if $phase is 1 and $tendingSuccess>> You pause your scrubbing, looking at the <<beasttype 1>>. <<bHes 1>> covered in bites and scratches, which you can tell were from other wolves. <<bHis 1>> fur is matted and unkempt. <<bHe 1>> hasn't been cleaning <<bhimself 1>>. <<else>> You start to look the <<beasttype 1>> over. <<bHes 1>> covered in bites and scratches. <<bHis 1>> fur is matted and unkempt. <<bHe 1>> hasn't been cleaning <<bhimself 1>>. <</if>> <br><br> "<span class="red">This forest is sick</span>," Gwylan says, as if reading your mind. "Although, 'cursed' might be a more fitting word. Poisoned by the careless and malicious in equal parts." <<if $phase is 1 and $tendingSuccess>> <<He>> squeezes out more shampoo into your hand, alongside something else. A pungent green ooze that sizzles when it touches the water, but doesn't burn. <<else>> <<He>> squeezes out more shampoo into <<his>> hand, alongside something else. A pungent green ooze that sizzles when it touches the water, but doesn't seem to burn. <</if>> <br><br> "This poison spreads through the vegetation, into the animals that eat it, and then into the animals that eat them. <span class="purple">It grows like an infection,</span> until it inundates everything. It makes plants grow wild, strangling the earth, the animals, and each other. It makes beasts more aggressive, seeking out human prey when they otherwise wouldn't. I do all I can to treat them." As if on queue, the <<beasttype 1>> relaxes further. "It's an old concord. Making sure it never reaches the point of no return has been my..." <<He>> pauses. "My family's responsibility for generations." <br><br> <<link [[Next|Forest Shop Caught No Lewd 5]]>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<if _gwylanStatus.includes("cautious")>> <<if $auriga_scar gte 1>> <<He>> looks at your chest for a moment. "That might all sound familiar to you, <i>scar-bearer</i>. You've thrown your lot in with the worst of puppets and fools, the same ones responsible for the poison. <<else>> <<He>> stares at you for a moment. "That might all sound familiar to you. You've rubbed shoulders with the worst of puppets and fools, the same ones responsible for the poison. <</if>> I hope you can forgive my caution around you." <br><br> <<elseif $gwylanTalked.includes("temple_confessor")>> <<He>> smiles. "This might all look familiar to you, <i>confessor</i>. Cleansing the forest often requires... <span class="lewd">release</span>. I hope you don't find me too heretical for using your methods." <br><br> <</if>> Gwylan squeezes out the sponge again, before picking up a hose from nearby. <<He>> rinses the <<beasttype 1>> down. "It's always in flux. Some years, it's mild, and my simple remedies are enough. In others, it requires more severe measures to match." <<He>> pulls the <<beasttype 1>> by the scruff, and <<bhe 1>> jumps out of the tub and shakes off, spraying water everywhere. <br><br> Gwylan gently tugs <<bhim 1>> over to the garden's wall. There's a small, mossy hole leading into pitch blackness. "Go home," <<he>> whispers. "And stay out of trouble." The <<beasttype 1>> darts into the hole. Gwylan sighs in relief, shutting and locking a wooden hatch over it. <br><br> <<He>> marches up to you, and flicks you on the nose before crossing <<his>> arms. "Rude. This shop is my home, and you've broken in. You could stand to learn some manners." Despite appearing close to your age, Gwylan's tone makes you feel like a child being lightly scolded by <<pher>> parent, complete with the shame that follows. It's nothing like Bailey's scolding. Gwylan's voice is firm, but caring. Almost warm, in a way. <<switch $bodysize>> <<case 0>>It doesn't help that you have to look up to meet <<his>> gaze. <<case 1 2>> <<case 3>>Even though you're a fair bit taller than <<him>>, it makes you feel small. <</switch>> <<stress 4>><<gstress>> <br><br> <<if _gwylanStatus.includes("cautious")>> <<He>> continues staring you down. "If you wish to remain on friendly terms with me, you'll need to prove I can trust you. <<else>> <<He>> leans in. A sly smile crosses <<his>> face. "There are ways you can make it up to me. <</if>> <<if $gwylan.request.event>> <span class="blue">Disregard the last request I gave you.</span><</if>> Come by the shop tomorrow, and dress for exertion." <br><br> <<gwylanRequestEnd "skip">> <<run gwylanRequest("meetAtShop")>> <<link [[Say you'll be there|Forest Shop Caught No Lewd End]]>><<set $phase to 1>><</link>> <br> <<link [[Refuse|Forest Shop Caught No Lewd End]]>><<set $phase to 2>><</link>> <br> <<link [[Ask what you'll be doing|Forest Shop Caught No Lewd End]]>><<set $phase to 3>><</link>> <br><<effects>> <<if $phase is 1>> <<switch $speech_attitude>> <<case "meek">> "S-sure, I'll help with whatever it is you need. I'm sorry," you say. <<case "bratty">> "If I have to, I guess I owe it to you for peeping in," you say. <<default>> "If you insist, I'll be there," you say. <</switch>> <br><br> <<His>> face softens, and <<his>> arms uncross. "Good. You know my secret now, but only part of it. I'll make sure your curiosity is sated properly." <<elseif $phase is 2>> <<switch $speech_attitude>> <<case "meek">> "I-I don't think I should," you say. <<case "bratty">> "Hey, it's not my fault your locks suck," you say. <<default>> "I'd rather not," you say. <</switch>> <br><br> <<He>> tilts <<his>> head, and <<his>> eyes narrow. It makes your heart skip a beat. "It wasn't a request." <<His>> face comes close to yours. "I was being courteous, which is more than you're owed right now. If you won't take responsibility for your actions, I'll just have to..." You feel a finger push up against the bottom of your chin. You shiver. "...convince you. I can be very persuasive." <<He>> smiles sweetly at you. "I'll see you here again, one way or another." <<else>> <<switch $speech_attitude>> <<case "meek">> "W-what exactly will we be doing?" you ask. <<case "bratty">> "At least tell me what we'll be doing first," you say. <<default>> "What will we be doing?" you ask. <</switch>> <br><br> <<He>> clasps <<his>> hands together and smiles. "We'll be making sure your curiosity is properly sated! You know my secret now, but only part of it. Don't worry too much." <</if>> <br><br> <<He>> leads you back into the shop. <br><br> <<link [[Next|Forest Shop Entrance]]>><<endevent>><<set $daily.gwylan.preventProgress to true>><<set $gwylan.timer.lastSeen to Time.date.timeStamp>><</link>> <br><<set $location to "forest_shop_garden">><<effects>><<set _tf to checkTFparts()>><<run statusCheck("Gwylan")>> <<if $gwylanSeen.includes("garden")>> You're in Gwylan's garden. You weren't allowed to see the way here before. <br><br> The smell of roses overpowers the other floral smells. Your eyes follow the intensity of the rapidly dimming glow, making you peek all the way around the corner against the wall of the shop to the raised open room. <<if Weather.precipitation is "rain" or Weather.precipitation is "snow">> The inside is untouched by the <<print Weather.precipitation>>. <</if>> <br><br> You <<else>> <<set $gwylanSeen.pushUnique("garden")>> A large expanse of square stone tiles stretch along the ground, connecting patches of grass and raised sections filled with dirt, flowers and herbs. Surrounding it all is an impressive weaving of crossed wooden stakes at least eight feet high, with gaps just large enough to allow vines to grab and climb through, shielding the whole area from prying outside eyes. It's an enclosed garden. <br><br> You can smell roses, as well as burning incense. Your eyes follow the intensity of the rapidly dimming glow, making you peek all the way around the corner against the wall of the shop. There's another raised section, but this one is different. It's covered by a wooden roof, <<if Weather.precipitation is "rain" or Weather.precipitation is "snow">> untouched by the <<print Weather.precipitation>>, <</if>> and the inside is padded with various cushions and quilts. <br><br> More interestingly, however, you <</if>> see Gwylan standing in front of it with <<his>> back to you, <span class="pink">entirely naked</span> save for <<his>> large witch hat. <<if !$gwylanSeen.includes("hat_colour") and $awarelevel gte 1 and !_gwylanTF.known>> <<set $gwylanSeen.pushUnique("hat_colour")>> In this light, you notice just how well the fake ears on the hat match <<his>> hair colour. <</if>> <<if _gwylanTF.tail isnot "revealed">> <<Hes>> also wearing a... tail? <br><br> <<if _tf.wolfTail or _tf.foxTail>> Your own tail swishes for a moment. <<elseif $cat gte 6 or $cow gte 6>> Your hair stands on end instinctively. <</if>> <<if _gwylanTF.tail is "visible" and C.npc.Gwylan.penis is "none" and $settings.analEnabled>> <<set $gwylanSeen.pushUnique("gwylan_tail")>> As you look closer, you realise it's a fake one. <span class="lewd">It must be attached to a buttplug</span>. However, just as the thought crosses your mind, <span class="lewd">it moves from side to side on its own</span>. <<elseif $awarelevel gte 1 and C.npc.Gwylan.penis is "none" and $settings.analEnabled>> However, as you look closer, it becomes apparent that it's a fake. <span class="lewd">It must be attached to a buttplug</span>. <<else>> However, as you look closer, it quickly becomes apparent that it's fake. You wonder what it's attached to. <</if>> <<else>> <<if _gwylanTF.tail is "visible" and C.npc.Gwylan.penis is "none" and $settings.analEnabled>> <<set $gwylanSeen.pushUnique("gwylan_tail")>> <<Hes>> wearing <<his>> fake tail, too. <span class="lewd">It must be attached to a buttplug</span>. However, just as the thought crosses your mind, <span class="lewd">it moves from side to side on its own</span>. <<elseif $awarelevel gte 1 and C.npc.Gwylan.penis is "none" and $settings.analEnabled>> <<Hes>> wearing <<his>> fake tail, too. <span class="lewd">It must be attached to a buttplug</span>. <<else>> <<Hes>> wearing <<his>> fake tail, too. You wonder what its attached to. <</if>> <</if>> <<arousal 500>><<garousal>> <br><br> <<if Weather.temperature <= 10>> The chill air has raised goosebumps on <<his>> skin, but <<he>> doesn't shiver. <</if>> <<He>> continues whispering, interspersed with occasional melodic humming. <br><br> <<link [[Watch|Forest Shop Caught 3]]>><</link>> <br><<effects>><<beastPARTNERinit 1 wolf 0>> <<His>> hands reach forward to something near waist-level. You adjust your viewing angle and see <span class="lewd"> a <<beasttype 1>> <<if $NPCList[1].monster is "monster">> kneeling before <<him>>. <<else>> sitting in front of <<him>>. <</if>> </span> <br><br> <<bHis 1>> eyes are placid and glowing with a gentle green hue. "Open," Gwylan says. The <<beasttype 1>> opens <<bhis 1>> mouth obediently, and Gwylan pours a pink fluid from a small glass vial into <<bhis 1>> mouth. "Good <<if $NPCList[1].gender is "m">>boy<<else>>girl<</if>>," <<he>> whispers, gently patting <<bhim 1>> on the head. <<bHe 1>> leans into it, closing <<bhis 1>> glowing eyes. Green streaks of light escape from the corners, and you see those same streaks creeping around Gwylan's face. <br><br> Gwylan kneels down to <<bhis 1>> level, and resumes humming as <<he>> places <<his>> hands on the <<beasttype 1>>'s cheeks. <<He>> speaks again. "Look at me." The <<beasttype 1>> obeys, opening <<bhis 1>> eyes again. <br><br> After a moment of staring, <span class="lewd"> <<if $NPCList[1].penis isnot "none">> the <<beasttype 1>>'s <<print V.NPCList[1].penisdesc>> <<if $NPCList[1].monster is "monster">> begins to grow erect. Once at full size, precum begins to bead at the tip. <<bHe 1>> starts panting and gently grabs one of Gwylan's arms, giving <<him>> a pleading look. <<else>> swells out of its sheath. Once at full size, precum begins to bead at the tip. <<bHe 1>> starts panting, leaning further into Gwylan's touch. <</if>> <<else>> the <<beasttype 1>>'s vagina becomes visibly wet. <<if $NPCList[1].monster is "monster">> The fluid drips to the stone below. <<bHe 1>> begins to whine, putting one hand on <<bhis 1>> tummy and the other on Gwylan's hand. <<else>> <<bHe 1>> begins to whine, leaning further into Gwylan's touch. <</if>> <</if>> </span> "Good <<if $NPCList[1].gender is "m">>boy<<else>>girl<</if>>," <<he>> whispers again. <<His>> voice sends chills down your spine, but you can feel yourself letting your guard down. <<if hasSexStat("deviancy", 3) or $wolfgirl gte 4 or $fox gte 4>> <<arousal 2000>><<ggarousal>> <<else>> <<arousal 500>><<garousal>> <</if>> <br><br> <<link [[Continue watching (0:05)|Forest Shop Caught 4]]>><<pass 5>><</link>><<deviant1>> <br> <<link [[Leave and pretend you didn't see this|Forest Shop Caught Abort]]>><<pass 1>><<trauma 12>><</link>><<ggtrauma>> <br><<effects>> <<set $daily.gwylan.noTalk to true>> You've seen enough. You quietly retreat back around the corner, through the mannequin room, and out of the shop through the main room's door. <br><br> You do your best to forget that this ever happened. <br><br> <<link [[Leave|Forest]]>><<endevent>><<set $eventskip to 1>><</link>> <br><<effects>><<set $gwylanSeen.pushUnique("garden_seen")>> <<set _gwylan to C.npc.Gwylan>> <<set _partner to $NPCList[1]>> /* ToDo: Gwylan - redo so the player can be caught before sex as Gwylan feels their intrusion. Seeing whole thing requires discretion or skill check. */ You're far too curious to not see this through. You keep watching. <<deviancy1>> Gwylan takes a step forward, and motions with <<his>> right hand towards the quilted section. The <<beasttype 1>> keeps <<bhis 1>> eyes on <<him>>, completely entranced. "Lay down," <<he>> says. The <<beasttype 1>> <<if _partner.monster is "monster">> quickly lies on <<bhis 1>> back, <<bhis 1>> hands gripping the quilt with anticipation. <<else>> quickly lies down and rolls over, exposing <<bhis 1>> belly, among other things. <</if>> <br><br> Gwylan steps around <<bhim 1>>, inspecting <<bhim 1>> while humming softly again. <span class="red"><<person1>><<He>> looks right in your direction as <<he>> circles.</span> You quickly retreat around the corner, your heart pounding. <<stress 12>><<gstress>> <br><br> You wait there for a moment, frozen. You await the sound of footsteps, or for <<him>> to say something, but it never comes. You peek around the corner again. Despite facing you, <<he>> doesn't seem to actually see you. <<His>> eyes glow the same green, and <<his>> attention is entirely on the <<beasttype 1>>. <br><br> You get an unobstructed view of <<his>> <<npcGenitals 0>>, but there's something just above it. A tattoo, or perhaps several, centered on <<his>> pelvis and belly. The central design is a triangle composed of three interwoven loops. Around it are various esoteric symbols continuing off of each other, bound by jagged roots and vines that stretch around <<his>> hips. <br><br> <<link [[Keep watching|Forest Shop Caught 5]]>><</link>> <br><<effects>> <<set _gwylan to C.npc.Gwylan>> <<set _partner to $NPCList[1]>> <<if _partner.penis isnot "none">> /* Wolf/person has a penis */ <span class="lewd">Gwylan straddles the <<beasttype 1>> and takes a deep breath.</span> <br><br> The <<beasttype 1>>'s _partner.penisdesc rubs against Gwylan's tummy, leaving a shiny trail of precum on the tattoo. It twitches in anticipation. Gwylan takes it in <<if _partner.penissize gte 3>>both hands<<else>>one hand<</if>> and begins working the shaft, lubricating it with the plentiful precum that continues to gently leak from the tip. <<if _partner.monster is "monster">> The <<beasttype 1>> grips the quilt harder, and starts breathing heavily. <<else>> The <<beasttype 1>> continues panting, <<bhis 1>> tongue lolling out of <<bhis 1>> mouth. <</if>> <br><br> <<if _gwylan.vagina is "none">> <<if $settings.analEnabled>> <<set $phase to 1>> /* Anal */ Gwylan lifts <<himself>>, and slowly guides the <<beasttype 1>>'s penis into <<his>> bottom. <span class="lewd"><<His>> tattoos begin to softly glow with the familiar green light.</span> <<He>> leans back, placing both hands on the ground to steady <<himself>>, and begins riding the <<beasttype 1>>. <<else>> <<set $phase to 2>> /* Handjob */ Gwylan releases the _partner.penisdesc and starts to slowly run <<his>> fingers around the tip. <<He>> alternates between servicing the shaft and head, and you begin to notice a pattern. <<Hes>> precisely counting the time between each switch under <<his>> breath. <</if>> <<else>> <<set $phase to 1>> /* Vaginal */ Gwylan lifts <<himself>>, and slowly guides the <<beasttype 1>>'s penis into <<his>> pussy. <span class="lewd"><<His>> tattoos begin to softly glow with the familiar green light.</span> <<He>> leans forward, placing both hands on the ground to steady <<himself>>, and begins riding the <<beasttype 1>>. <</if>> <<else>> /* Wolf/person does not have a penis */ <span class="lewd">Gwylan positions <<himself>> between the <<beasttype 1>>'s legs and takes a deep breath.</span> <br><br> <<if _partner.monster is "monster">> The <<beasttype 1>> whines and moans, placing <<bhis 1>> hands over <<bhis 1>> tummy again. <<else>> The <<beasttype 1>> whines. <</if>> Is <<bhe 1>> in heat? Gwylan caresses the <<beasttype 1>>'s belly, running individual fingers over sensitive spots before they find their way to <<bhis 1>> pussy. <<He>> effortlessly pushes a finger in, causing the <<beasttype 1>> to arch <<bhis 1>> back and whine even louder. <br><br> <<if _gwylan.penis is "none">> <<set $phase to 3>> /* Fingering */ <<He>> gently fingers <<bhim 1>>, slowly working <<his>> way up to pushing a second finger in. After a few moments <<he>> withdraws <<his>> fingers, and begins to rub the entrance. <<if _partner.monster is "monster">><<He>> gives the clit the most attention.<</if>> <<He>> alternates between rubbing and fingering, and you begin to notice a pattern. <<Hes>> precisely counting the time between each switch under <<his>> breath. <<else>> <<set $phase to 4>> /* Vaginal */ <<He>> takes <<his>> _gwylan.penisdesc in <<his>> other hand, and guides it towards the <<beasttype 1>>'s pussy. <<He>> teases the entrance with it for a moment, before slowly pushing it in. <span class="lewd"><<His>> tattoos begin to softly glow with the familiar green light.</span> <<if _partner.monster is "monster">> The <<beasttype 1>> writhes and moans, before relaxing into Gwylan's rhythm. <<else>> The <<beasttype 1>> continues panting, <<bhis 1>> tongue lolling out of <<bhis 1>> mouth. <</if>> Gwylan makes gentle, soothing noises for <<bhim 1>>. <</if>> <</if>> <<if hasSexStat("deviancy", 3) or $wolfgirl gte 4 or $fox gte 4>> <<arousal 2000>><<ggarousal>> <<else>> <<arousal 500>><<garousal>> <</if>> <br><br> <<He>> moves with a practised certainty, as if <<hes>> done this many times before. A well-rehearsed routine. <<His>> face remains focused and stoic. <br><br> <<if hasSexStat("deviancy", 3)>> <<link [[Masturbate while watching (0:10)|Forest Shop Caught 6]]>><<set $phase2 to 1>><<pass 10>><<arousal 3000>><</link>><<deviant3>><<ggarousal>> <<else>> <<insufficientStat "deviancy" "to masturbate while watching">> <</if>> <br> <<link [[Keep watching (0:10)|Forest Shop Caught 6]]>><<pass 10>><</link>><<deviant1>> <br><<effects>> <<set _gwylan to C.npc.Gwylan>> <<set _partner to $NPCList[1]>> <<set $gwylanSeen.pushUnique("caught")>> <<if $phase2 is 1>> <<outfitChecks>> You make yourself comfortable against the side of the building. You <<if !_bottomless>>displace your _bottom.name and<</if>> start to pleasure yourself, switching between watching the mating display and closing your eyes to listen to it. <<deviancy3>> <</if>> Gwylan's breathing gets a little heavier. <<if $phase is 1 or $phase is 4>> <<He>> grinds <<his>> hips, barely making a noise. <<His>> expression is almost unreadable. <<else>> <<His>> green-tinted eyes remain locked on the <<beasttype 1>>, <<his>> expression almost unreadable. <</if>> <<His>> pace increases again. The smell of the incense becomes more intense, and the glow begins to shift in hue to vibrant purples and reds. <span class="lewd">You hear a heartbeat growing louder and louder, each pulse sending heat to your extremities and loins. You have phantom sensations all over your body, matching where Gwylan and the <<beasttype 1>> make contact.</span> <<if $phase2 is 1>> You match your masturbation to their rhythm. <<arousal 4000>><<gggarousal>> <<else>> <<arousal 1000>><<garousal>> <</if>> <br><br> "Purge," Gwylan says, speaking it like an order. <<if $temple_confessor_intro>> <span class="lewd">The word reverberates in your mind, pulling at your muscle memory from working the confessional.</span> <</if>> Your head begins to spin as the <<beasttype 1>> approaches climax. <<switch $phase>> <<case 1>> Gwylan lets out a quiet grunt as <<he>> plunges down onto the <<beasttype 1>>'s _partner.penisdesc. After a bit of resistance, the whole knot slips into <<him>>. <<His>> body shudders as the <<beasttype 1>>'s semen fills <<him>>. <<He>> grinds <<his>> hips down hard. The <<beasttype 1>> trembles. <<case 2>> Gwylan rubs the tip and shaft in tandem and sustains the rapid pace for a moment, before pushing <<his>> hair back and lowering <<his>> head to it. You can almost feel <<his>> hot breath on you, as if it were you under <<him>> instead. A thick rope of cum shoots into <<his>> open mouth as <<he>> closes <<his>> eyes. <<He>> quickly swallows it, before continuing to work the shaft. <<He>> opens <<his>> mouth again, expecting another load, but keeps <<his>> eyes open this time. <<case 3>> Gwylan rubs the <<beasttype 1>>'s clit with one hand, and fingers <<bhim 1>> with the other. <<bHis>> back arches again, but Gwylan doesn't slow down. <<He>> inserts a third finger. Lewd fluid gushes from the <<beasttype 1>>'s pussy. <<default>> Gwylan lets out a quiet grunt as <<he>> plunges fully into the <<beasttype 1>>'s pussy. <<if _partner.monster is "monster">> <<bHis 1>> legs lock around <<him>> as <<he>> grips the quilt again. <</if>> Lewd fluids gush from <<bhis 1>> pussy. <</switch>> <<arousal 2000>><<ggarousal>> <br><br> <<link [[Next|Forest Shop Caught 7]]>><</link>> <br><<effects>> <<set _gwylan to C.npc.Gwylan>> <<set _partner to $NPCList[1]>> <<if $phase2 is 1 or ($arousal gte $arousalmax and ($wolfgirl gte 6 or $fox gte 6))>> <<if $phase2 is 1>> <<set $gwylanSeen.pushUnique("caught_masturbate")>> You manage to time your own orgasm well. <<else>> The heat within you boils over. You're hit with a rush of pleasure and cover your mouth. <</if>> <<arousal 10000>><<orgasm>> <span class="lewd">Gwylan tenses up and suddenly moans, <<his>> body almost perfectly matching your own spasms.</span> <<Hes>> not ready for it, and <<his>> face is a mix of pleasure and shock. <span class="lewd">It's like <<he>> felt your orgasm <<himself>>.</span> <<He>> reaches for something off to <<his>> side, but <span class="red">knocks over one of the incense burners instead.</span> It shatters against the stone below. The glow fades from <<his>> eyes in an instant. <<His>> pupils dilate, and a look of horror washes over <<his>> face. <span class="red"><<Hes>> looking directly at you.</span> <br><br> <<He>> stares at you, <<his>> face beetroot-red. <<He>> begins stammering, starting several different explanations all at once without finishing a single word. <<else>> You hear the repeated thrum of wood against stone from behind you. You start to turn, but are <span class="red">suddenly pushed out from your hiding place by something.</span> You stumble out into the open. <br><br> Gwylan stops and tilts <<his>> head. The glow starts to fade from <<his>> eyes. The moment it's gone, <<he>> freezes. <<His>> pupils dilate, and a look of horror washes over <<his>> face. <span class="red"><<Hes>> looking directly at you.</span> <<He>> flails, attempting to cover <<himself>>, but <span class="red">knocks over one of the incense burners instead.</span> It shatters against the stone below. <br><br> <<He>> continues to stare at you, frozen in the midst of pleasuring this <<beasttype 1>>, <<his>> face beetroot-red. <<He>> begins stammering, starting several different explanations all at once without finishing a single word. <</if>> <<switch $phase>> <<case 1>> <<He>> shakily lifts <<his>> pelvis off the <<beasttype 1>>, the knot exiting with a <i>pop</i>. "W-wait," <<he>> finally manages. "I..." A final rope of cum shoots out from the <<beasttype 1>>'s penis, leaving a fresh unbroken streak of it right across Gwylan's face. <<Hes>> further interrupted by a growl from below <<him>>. The glow has faded from the <<beasttype 1>>'s eyes too. <<case 2>> "W-wait," <<he>> finally manages. "I..." <<Hes>> interrupted by a final rope of cum from the <<beasttype 1>>'s penis hitting <<him>> directly in the face, leaving an unbroken streak across it. <<Hes>> further interrupted by a growl from below <<him>>. The glow has faded from the <<beasttype 1>>'s eyes too. <<default>> "W-wait," <<he>> finally manages. "I..." <<Hes>> interrupted by a growl from below <<him>>. The glow has faded from the <<beasttype 1>>'s eyes too. <</switch>> <br><br> "Oh dear." <br><br> <<link [[Next|Forest Shop Caught 8]]>><</link>> <br><<effects>> <<set _gwylan to C.npc.Gwylan>> <<set _partner to $NPCList[1]>> <<switch $phase>> <<case 1>> <<if _partner.monster is "monster">> The <<beasttype 1>> shoves Gwylan off of <<bhim 1>>. "Witch," <<bhe 1>> barks. "We do this my way." <<bHe 1>> pushes Gwylan onto <<his>> stomach, mounting <<him>> from behind and easily pinning <<him>> in place with <<bhis 1>> weight. <<else>> The <<beasttype 1>> squirms free, before lunging its whole body weight at Gwylan. <<bHe 1>> topples <<him>> and mounts <<him>> from behind, easily holding <<him>> down with <<bhis 1>> weight. <</if>> <br><br> Gwylan looks at you with a hint of fear. "H-hold on, this is part of thhowww!" Gwylan slurs as the <<beasttype 1>> roughly thrusts back into <<him>>. "Th-this is the thanks I get for treating you so well?!" Gwylan clenches <<his>> teeth and fists, bracing <<himself>> against the <<beasttype 1>>'s rough thrusting. <<He>> lets out another grunt of pained pleasure as <<his>> hair is pulled back. <br><br> "Okay, no, that's... enough!" <<He>> struggles to say. <<He>> seems to remember you're there, and looks to you again. "Hey, over there! The jar of blue sand! Please!" <<He>> points over to the broken incense burner and sure enough, there's a jar of blue sand on a side table right next to it. <<case 2 3>> <<if _partner.monster is "monster">> The <<beasttype 1>> shoves Gwylan off of <<bhim 1>>. "Witch," <<bhe 1>> barks. "We do this my way." <<bHe 1>> pushes Gwylan onto <<his>> back, mounting <<him>> and easily pinning <<him>> in place with <<bhis 1>> weight. <<else>> The <<beasttype 1>> lunges its whole body weight at Gwylan. <<bHe 1>> topples <<him>> and mounts <<him>> from the front, easily holding <<him>> down with <<bhis 1>> weight. <</if>> <br><br> Gwylan looks at you with a hint of fear. "H-hold on, this is part of th—" Gwylan starts, but is silenced by the <<beasttype 1>>'s <<if _partner.penis isnot "none">> still-erect cock thrusting into <<his>> mouth. <<else>> pussy covering <<his>> mouth. <</if>> <<bHe 1>> keeps <<him>> pinned despite Gwylan's attempts to push <<bhim 1>> off. <<He>> taps on the <<beasttype 1>>'s side multiple times, but <<bhe 1>> shows no signs of stopping. After a moment, Gwylan starts pointing at something. You follow <<his>> hand, and see a jar of blue sand on a side table next to the now-broken incense burner. <<default>> <<if _partner.monster is "monster">> The <<beasttype 1>> locks <<bhis 1>> legs around Gwylan again. "Witch," <<bhe 1>> barks. "We do this my way." <<bHe 1>> twists <<bhis 1>> body, forcing Gwylan onto <<his>> back while straddling <<him>>. <<else>> The <<beasttype 1>> lunges its whole body weight at Gwylan. <<bHe 1>> topples <<him>> and mounts <<him>> from the front, easily holding <<him>> down with <<bhis 1>> weight. <</if>> <br><br> Gwylan looks at you with a hint of fear. "H-hold on, this is part of th—" <<if _partner.monster is "monster">> <<Hes>> cut off once again, this time by the <<beasttype 1>> <<if $NPCList[1].breastsize gte 3>> leaning forward and smothering <<his>> face between <<bhis 1>> breasts. <<else>> placing both <<bhis 1>> hands over Gwylan's face. <</if>> <<else>> <<Hes>> cut off once again, this time by the <<beasttype 1>> laying both of its front legs right on <<his>> face. <</if>> <<bHe 1>> inserts Gwylan's _gwylan.penisdesc into <<bhimself 1>> again, and starts to ride <<him>>. <br><br> You hear <<him>> say something muffled along the lines of 'This is the thanks I get for treating you so well?', before <<he>> manages to turn <<his>> head to the side. "Okay, no, that's... enough!" <<He>> struggles to say. <<He>> seems to remember you're there, and looks to you again. "B-be a dear and grab that jar for me, would you?" <<He>> points over to the broken incense burner and sure enough, there's a jar of blue sand on a side table right next to it. <</switch>> <br><br> <<link [[Help Gwylan|Forest Shop Caught Help]]>><</link>> <br> <<if hasSexStat("deviancy", 3)>> <<link [["Distract" the <<beasttype 1>>|Forest Shop Caught Distract]]>><<npcincr Gwylan lust 4>><</link>><<deviant3>><<if $phase is 2>><<oralvirginitywarning>><</if>><<gglust>> <<else>> <<insufficientStat "deviancy" "to 'distract' the <<beasttype 1>>">> <</if>> <br> <<link [[Just keep watching|Forest Shop Caught Watch]]>><<npcincr Gwylan lust 2>><</link>><<glust>> <br><<effects>> <<set _gwylan to C.npc.Gwylan>> <<set _partner to $NPCList[1]>> <<set $gwylanSeen.pushUnique("caught_action_help")>> You rush over to the side table, opening the small jar. It smells of the ocean and cools the heat within you. <<arousal -1000>><<larousal>> <br><br> You look to Gwylan for instructions. <<if $phase is 2 or $phase is 3>> <<He>> rapidly opens and closes <<his>> hand towards the <<beasttype 1>>'s face. You grab a small handful of the sand and blow it at <<bhim 1>>. <<else>> "Small handful, about four tablespoons, in <<bhis 1>> face!" You oblige, blowing your best estimation of four tablespoons of sand in the <<beasttype 1>>'s face. <</if>> <br><br> <span class="lblue">The effect is almost immediate. <<bHis 1>> thrusting slows down, <<bhis 1>> face entirely blank.</span> <br><br> Gwylan gasps for breath and slowly crawls out from under <<bhim 1>> before standing up, breathing heavily. <<He>> snaps <<his>> fingers in the <<beasttype 1>>'s face. No response. <<He>> roughly grabs <<bhim 1>> by the scruff, dragging <<bhim 1>> to the wall of the garden. The <<beasttype 1>> manages to stay on <<bhis 1>> feet with clumsy steps, but seems to only be animated by basic reflexes. <br><br> Gwylan stops in front of a small hatch. <<He>> opens it, revealing a mossy hole leading into pitch-blackness. "Go home," <<he>> whispers in <<bhis 1>> ear. The <<beasttype 1>> slowly and awkwardly crawls through the hole. Gwylan shuts and locks the hatch behind it. <br><br> <<He>> walks back to you, still entirely naked save for <<his>> witch hat <<if _gwylan.penis is "none" and $settings.analEnabled>>and 'tail' <</if>>but making no effort to hide <<his>> exposure. "Thanks," <<he>> says flatly, <<his>> face still beetroot-red in embarrassment. "I... can explain." <br><br> <<link [[Reassure Gwylan|Forest Shop Caught 9]]>><<set $phase2 to 1>><</link>> <br> <<link [[Tease Gwylan|Forest Shop Caught 9]]>><<npcincr Gwylan lust 2>><<set $phase2 to 2>><</link>><<glust>> <br> <<if hasSexStat("deviancy", 2)>> <<link [[Tell Gwylan you like doing things with wolves too|Forest Shop Caught 9]]>><<npcincr Gwylan lust 4>><<set $phase2 to 3>><</link>><<deviant2>><<gglust>> <br> <</if>><<effects>> <<set _gwylan to C.npc.Gwylan>> <<set _partner to $NPCList[1]>> <<set $gwylanSeen.pushUnique("caught_action_distract")>> You rush to Gwylan's side. <<switch $phase>> <<case 1>> Knowing exactly what to do, you wrap your hands around the <<beasttype 1>>, and force your hands in between <<bhis 1>> _partner.penisdesc and Gwylan. It takes a few tries, but you manage to grab it. <<bHe 1>> continues thrusting into your hands, not even aware of your subterfuge. <<deviancy3>> Gwylan slides out from under <<bhim 1>> right away. The <<beasttype 1>> is thrown off balance, but a tight squeeze on <<bhis 1>> penis makes <<bhim 1>> think twice about resisting. Gwylan reaches towards the side table, uncapping the jar and grabbing a small handful of the blue sand, <span class="lewd">just in time for the <<beasttype 1>> to ejaculate in your hands.</span> Gwylan blows the sand in <<bhis 1>> face. <<bodyliquid "leftarm" "semen">><<bodyliquid "rightarm" "semen">> <<case 2>> Knowing exactly what to do, you lie beside Gwylan and reach for the <<beasttype 1>>'s _partner.penisdesc. With some effort, you manage to get it out of Gwylan's mouth, guiding it instead into yours. <<if $player.virginity.penile is true>> It tastes strange. <<takeVirginity _partner.fullDescription "oral">> <</if>> You service <<bhim 1>> as best you can at this awkward angle. <<deviancy3>> The <<beasttype 1>> doesn't seem to mind the switch, giving Gwylan the chance to break free. <<He>> reaches towards the side table, uncapping the jar and grabbing a small handful of the blue sand, <span class="lewd">just in time for the <<beasttype 1>> to ejaculate in your mouth.</span> Gwylan blows the sand in <<bhis 1>> face. <<bodyliquid "mouth" "semen">> <<case 3>> Knowing exactly what to do, you wrap your hands around the <<beasttype 1>>, and force your hands in between <<bhis 1>> pussy and Gwylan. You slip your fingers inside, giving it much more direct stimulation. <<bHe 1>> continues thrusting against your hands, seeming to prefer this arrangement. <<deviancy3>> Gwylan slides out from under <<bhim 1>> right away. The <<beasttype 1>> is thrown off balance, but some extra stimulation from your hands seems to placate <<bhim 1>> for a moment. Gwylan reaches towards the side table, uncapping the jar and grabbing a small handful of the blue sand, <span class="lewd">just in time for the <<beasttype 1>> to shudder in climax.</span> Gwylan blows the sand in <<bhis 1>> face. <<bodyliquid "leftarm" "goo">><<bodyliquid "rightarm" "goo">> <<default>> Knowing exactly what to do, you wrap your hands around the <<beasttype 1>>, and force your hands in between <<bhis 1>> pussy and Gwylan's _gwylan.penisdesc. It takes a few tries, one of which led to an awkward almost-handjob for Gwylan, but you manage to slip your fingers inside the <<beasttype 1>>'s pussy. <<bHe 1>> continues thrusting against your hands, not even aware of your subterfuge. <<deviancy3>> Gwylan slides out from under <<bhim 1>> right away. The <<beasttype 1>> is thrown off balance, but some extra stimulation from your hands seems to placate <<bhim 1>> for a moment. Gwylan reaches towards the side table, uncapping the jar and grabbing a small handful of the blue sand, <span class="lewd">just in time for the <<beasttype 1>> to shudder in climax.</span> Gwylan blows the sand in <<bhis 1>> face. <<bodyliquid "leftarm" "goo">><<bodyliquid "rightarm" "goo">> <</switch>> <span class="lblue">The effect is almost immediate. <<bHis 1>> thrusting slows down, <<bhis 1>> face entirely blank.</span> <br><br> Gwylan breathes heavily. <<He>> snaps <<his>> fingers in the <<beasttype 1>>'s face. No response. <<He>> roughly grabs <<bhim 1>> by the scruff, dragging <<bhim 1>> to the wall of the garden. The <<beasttype 1>> manages to stay on <<bhis 1>> feet with clumsy steps, but seems to only be animated by basic reflexes. <br><br> Gwylan stops in front of a small hatch. <<He>> opens it, revealing a mossy hole leading into pitch-blackness. "Go home," <<he>> whispers in <<bhis 1>> ear. The <<beasttype 1>> slowly and awkwardly crawls through the hole. Gwylan shuts and locks the hatch behind it. <br><br> <<He>> walks back to you, still entirely naked save for <<his>> witch hat <<if _gwylan.penis is "none">>and 'tail' <</if>>but making no effort to hide <<his>> exposure. "Thanks," <<he>> says flatly, <<his>> face still beetroot-red in embarrassment. "That was a bit of a roundabout solution, but I'm the last person to judge. You... probably want an explanation." <br><br> <<link [[Reassure Gwylan|Forest Shop Caught 9]]>><<set $phase2 to 1>><</link>> <br> <<link [[Tease Gwylan|Forest Shop Caught 9]]>><<npcincr Gwylan lust 2>><<set $phase2 to 2>><</link>><<glust>> <br> <<if hasSexStat("deviancy", 2)>> <<link [[Tell Gwylan you like doing things with wolves too|Forest Shop Caught 9]]>><<npcincr Gwylan lust 4>><<set $phase2 to 3>><</link>><<deviant2>><<gglust>> <br> <</if>><<effects>> <<set _gwylan to C.npc.Gwylan>> <<set _partner to $NPCList[1]>> <<set $gwylanSeen.pushUnique("caught_action_watch")>> You stay rooted to the spot, not wanting to risk the <<beasttype 1>>'s ire. <br><br> <<switch $phase>> <<case 1>> Gwylan continues to be relentlessly fucked by the <<beasttype 1>>. <<bHis 1>> pace starts to even out, and Gwylan begins to relax, letting the <<beasttype 1>> use up <<bhis 1>> energy. <<He>> bites <<his>> own hand to suppress <<his>> moans, trying to keep some form of dignity in front of you. <br><br> <<He>> closes <<his>> eyes as the <<beasttype 1>> thrusts one final time, filling <<him>> up again. The <<beasttype 1>> doesn't have enough stamina to push the knot in again, and disengages with a huff. <<case 2>> Gwylan continues to be relentlessly facefucked by the <<beasttype 1>>. <<bHis 1>> pace starts to even out, and Gwylan begins to relax, letting the <<beasttype 1>> use up <<bhis 1>> energy. <br><br> The <<beasttype 1>> thrusts one final time, shooting <<bhis 1>> see down Gwylan's throat. <<He>> seems to be swallowing it all, as <<he>> doesn't make anything resembling a choking sound. The <<beasttype 1>> disengages with a huff. <<case 3>> Gwylan continues to be relentlessly facefucked by the <<beasttype 1>>. <<bHis 1>> pace starts to even out, and Gwylan begins to relax, letting the <<beasttype 1>> use up <<bhis 1>> energy. <br><br> The <<beasttype 1>> grinds <<bhis 1>> pussy against Gwylan's face one final time, shuddering. <<He>> disengages with a huff. <<default>> Gwylan continues to be relentlessly fucked by the <<beasttype 1>>. <<bHis 1>> pace starts to even out, and Gwylan begins to relax, letting the <<beasttype 1>> use up <<bhis 1>> energy. <<He>> bites <<his>> own hand to suppress <<his>> moans, trying to keep some form of dignity in front of you. <br><br> <<He>> closes <<his>> eyes as the <<beasttype 1>> grinds down on <<his>> pelvis, shuddering in climax. <<bHe 1>> pants heavily, then disengages with a huff. <</switch>> <br><br> <<if _partner.monster is "monster">> "So weak and vulnerable without your tricks," the <<beasttype 1>> says as <<bhe 1>> stands up. <<bHe 1>> yawns, exhausted by climaxing twice in such quick succession. <<else>> The <<beasttype 1>> backs away, sitting down and yawning. <<bHe 1>> must be exhausted from climaxing twice in such quick succession. <<bHe 1>> spends a moment licking <<bhis 1>> nethers, before shaking off. <</if>> <<bHe 1>> shambles over to the garden wall, towards an open hatch over a mossy hole leading into pitch-blackness. <<bHe 1>> clumsily climbs in, disappearing into the darkness. The hatch clatters shut behind <<bhim 1>>. <br><br> Gwylan just lays there for a few minutes, breathing heavily and covering <<his>> own face. <<He>> eventually catches <<his>> breath, standing up and walking up to you, still entirely naked save for <<his>> witch hat <<if _gwylan.penis is "none">>and 'tail' <</if>>but making no effort to hide <<his>> exposure. <<if $phase is 2>> Some of the <<beasttype 0>>'s semen lingers on the corner of <<his>> mouth. <</if>> "Rude," <<he>> says flatly, grabbing your cheeks. "You interrupted my ritual, <<if $gwylanSeen.includes("caught_masturbate")>>pleasured yourself watching me, <</if>>stood there gawking while I lost control, and wouldn't even clean up your mess." <<His>> face is still beetroot-red in embarrassment. "I don't think I even owe you an explanation now." <<He>> huffs and turns away. <br><br> <<link [[Reassure Gwylan|Forest Shop Caught 9]]>><<set $phase2 to 1>><</link>> <br> <<link [[Tease Gwylan|Forest Shop Caught 9]]>><<npcincr Gwylan lust 2>><<set $phase2 to 2>><</link>><<glust>> <br> <<if hasSexStat("deviancy", 2)>> <<link [[Tell Gwylan you like doing things with wolves too|Forest Shop Caught 9]]>><<npcincr Gwylan lust 4>><<set $phase2 to 3>><</link>><<deviant2>><<gglust>> <br> <</if>><<effects>> <<if $phase2 is 1>> <<switch $speech_attitude>> <<case "meek">> "I-if you don't want to talk about it, that's okay, I can pretend I never saw anything," <<case "bratty">> "Don't be so glum, do you have any idea how many fucked up people are in this town? This is pretty mild compared to some of the shit I've seen," <<default>> "It's okay, I'm not going to judge you," <</switch>> you say, giving Gwylan a patient smile. <<He>> quickly composes <<himself>>. <<elseif $phase2 is 2>> <<switch $speech_attitude>> <<case "meek">> "I-I guess I get it, it must get lonely out here by yourself," you say with a grin. "Do <<beastsplural 1>> make for good company?" <<case "bratty">> "I knew Gwylan was a Welsh name, but I wasn't expecting this," you say with a grin. <<default>> "You and that <<beasttype 1>> were really going at it," you say with a grin. "You can't just back out now, I know your dirty little secret." <</switch>> <br><br> "So rude!" <<he>> says, punching you on the shoulder. <<if $gwylanSeen.includes("likes_wolves")>> "I didn't poke fun when you told me about your escapades with the wolf pack, you could at least give me the same courtesy," <<he>> pouts. <</if>> Despite that, <<he>> composes <<himself>>. <<else>> <<switch $speech_attitude>> <<case "meek">> "I-it's okay, I didn't expect to meet someone else who really likes wolves," you say sheepishly. <<case "bratty">> "Look, I get it, I'm not much different. Sometimes humans don't cut it, right? I like a good lay with the wolves too," you say. <<default>> "You're not the only one that likes a good roll in the hay with wolves," you say. <</switch>> <<if $wolfgirl gte 6 and $transformationParts.wolf.ears isnot "hidden">> You give your wolf ears a tug for emphasis. <</if>> <<deviancy2>> <<if $gwylanSeen.includes("caught_action_distract")>> Gwylan nods. "I guessed as much, with the way you helped pull <<bhim 1>> off of me. <<if $gwylanSeen.includes("caught_masturbate")>> Not to mention you pleasuring yourself just around the corner. <<if $gwylanSeen.includes("likes_wolves")>> Or what you told me about your time with the wolf pack. <</if>> <<elseif $gwylanSeen.includes("likes_wolves")>> Not to mention what you told me about your time with the wolf pack. <</if>> You seemed to enjoy it." <<He>> smiles at you. <<elseif $gwylanSeen.includes("caught_action_watch")>> Gwylan stares at you for a moment. "I suppose that explains why you were just standing there enjoying the show. <<if $gwylanSeen.includes("caught_masturbate")>> Maybe a little too much.<</if>> <<if $gwylanSeen.includes("likes_wolves")>> Not to mention what you told me about your time with the wolf pack. <</if>> I hope it was gratifying." <<He>> loosens up and smiles at you. <<elseif $gwylanSeen.includes("likes_wolves")>> <<if $gwylanSeen.includes("caught_masturbate")>> Gwylan nods. "I guessed as much, you certainly seemed to enjoy watching. Not to mention what you told me about your time with the wolf pack." <<He>> loosens up. <<else>> Gwylan looks at you with surprise. "So, you meant what you said about your time with the wolf pack." <<He>> smiles at you. <</if>> <<else>> <<if $gwylanSeen.includes("caught_masturbate")>> Gwylan nods. "I guessed as much, you certainly seemed to enjoy watching." <<He>> loosens up. <<else>> Gwylan looks at you with surprise. "You... really? You're full of surprises." <<He>> smiles at you. <</if>> <</if>> <<set $gwylanSeen.pushUnique("likes_wolves")>> <</if>> <br><br> "Alright," <<he>> finally says, taking a deep breath. "Nothing to be done about it. That <<beasttype 1>> was tainted, and I was... cleaning <<bhim 1>>. <span class="red">This whole forest is sick.</span> Although, 'cursed' might be a more fitting word. Poisoned by the careless and malicious in equal parts. This poison spreads through the vegetation, into the animals that eat it, and then into the animals that eat them. <span class="purple">It grows like an infection,</span> until it inundates everything. It makes plants grow wild, strangling the earth, the animals, and each other. It makes beasts more aggressive, seeking out human prey when they otherwise wouldn't." <br><br> <<His>> eyes flit back and forth between you and something on the other side of the garden. "It's an old concord. An agreement of sorts. Making sure it never reaches the point of no return has been my..." <<He>> pauses. "My family's responsibility for generations." <br><br> Gwylan seems to remember that <<hes>> naked, and starts to search around for something. <<He>> picks up a silk robe from the ground, and pulls it over <<himself>>. <br><br> <<link [[Next|Forest Shop Caught 10]]>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> "It's always in flux. Some years, it's mild, and my simple remedies are enough. In others, it requires more severe measures to match, like what you just saw. It spreads most quickly when mating, which also means it's the best way to... extract the poison. Here, I can make sure it doesn't spread further, and neutralise it." <<He>> points to <<his>> tummy. "In my body." <br><br> <<if _gwylanStatus.includes("cautious")>> <<if $auriga_scar gte 1>> <<He>> looks at your chest. "That might all sound familiar to you, <i>scar-bearer</i>. You've thrown your lot in with the worst of puppets and fools, the same ones responsible for the poison. <<else>> <<He>> stares through you. "That might all sound familiar to you. You've rubbed shoulders with the worst of puppets and fools, the same ones responsible for the poison. <</if>> I hope you can forgive my caution around you." <br><br> <<elseif $gwylanTalked.includes("temple_confessor")>> <<He>> smiles. "That might all sound familiar to you, <i>confessor</i>. I hope you don't find me too heretical for using your methods." <br><br> <</if>> A long moment of silence passes. <<He>> crosses <<his>> arms. "You're awfully nosy, sneaking in here <span class="blue">again</span>. I suppose the shop showed you the way." <<He>> doesn't sound angry, but you can't quite tell. "You're lucky you're so interesting." <br><br> <<He>> notices your confused look. "<span class="blue">You've been here once already.</span> You stumbled around in my storeroom, making all sorts of noise. I thought you were an intruder or thief." <<He>> gestures to the jar of blue sand. "<span class="pink">I... made you forget about it.</span> I could make sure you don't remember this time either, but you're too curious. You'll just find your way in here again. So troublesome... You could do with learning some etiquette and manners. This shop is my home, and you've broken in and violated my privacy." <br><br> Despite appearing close to your age, Gwylan's tone makes you feel like a child being lightly scolded by <<pher>> parent, complete with the shame that follows. It's nothing like Bailey's scolding. Gwylan's voice is firm, but caring. <<switch $bodysize>> <<case 0>>It doesn't help that you have to look up to meet <<his>> gaze. <<case 1 2>> <<case 3>>Even though you're a fair bit taller than <<him>>, it makes you feel small. <</switch>> <<stress 4>><<gstress>> <br><br> <<if _gwylanStatus.includes("cautious")>> <<He>> continues staring you down. "If you wish to remain on friendly terms with me, you'll need to prove I can trust you. <<else>> <<He>> leans in. A sly smile crosses <<his>> face. "There are ways you can make it up to me. <</if>> <<if $gwylan.request.event>> <span class="blue">Disregard the last request I gave you.</span><</if>> Come by the shop tomorrow, and dress for exertion." <br><br> <<gwylanRequestEnd "skip">> <<run gwylanRequest("meetAtShop")>> <<link [[Say you'll be there|Forest Shop Caught End]]>><<set $phase to 1>><</link>> <br> <<link [[Refuse|Forest Shop Caught End]]>><<set $phase to 2>><</link>> <br> <<link [[Ask what you'll be doing|Forest Shop Caught End]]>><<set $phase to 3>><</link>> <br><<effects>> <<if $phase is 1>> <<switch $speech_attitude>> <<case "meek">> "S-sure, I'll help with whatever it is you need. I'm sorry," you say. <<case "bratty">> "If I have to, I guess I owe it to you for peeping in," you say. <<default>> "If you insist, I'll be there," you say. <</switch>> <br><br> <<His>> face softens, and <<his>> arms uncross. "Good. You know my secret now, and that comes with some obligations. I'll make sure your curiosity is sated properly." <<elseif $phase is 2>> <<switch $speech_attitude>> <<case "meek">> "I-I don't think I should," you say. <<case "bratty">> "Hey, it's not my fault your locks suck," you say. <<default>> "I'd rather not," you say. <</switch>> <br><br> <<He>> tilts <<his>> head, and <<his>> eyes narrow. It makes your heart skip a beat. "It wasn't a request." <<His>> face comes close to yours. "I was being courteous, which is more than you're owed right now. If you won't take responsibility for your actions, I'll just have to..." You feel a finger push up against the bottom of your chin. You shiver. "...convince you. I can be very persuasive." <<He>> smiles sweetly at you. "I'll see you here again, one way or another." <<else>> <<switch $speech_attitude>> <<case "meek">> "W-what exactly will we be doing?" you ask. <<case "bratty">> "At least tell me what we'll be doing first," you say. <<default>> "What will we be doing?" you ask. <</switch>> <br><br> <<He>> clasps <<his>> hands together and smiles. "We'll be making sure your curiosity is properly sated! You know my secret now, and that comes with some obligations. Don't worry too much." <</if>> <br><br> <<He>> leads you back into the shop. The floorboards creak with each step <<he>> takes, as if mocking <<him>>. <<if $gwylanSeen.includes("caught_masturbate")>> <<npcincr Gwylan lust 8>><<ggglust>> <<else>> <<npcincr Gwylan lust 4>><<gglust>> <</if>> <br><br> <<link [[Next|Forest Shop Entrance]]>><<endevent>><<set $daily.gwylan.preventProgress to true>><<set $gwylan.timer.lastSeen to Time.date.timeStamp>><</link>> <br>/* no effects, included */ <<npc Gwylan>><<person1>> <<set $gwylanSeen.pushUnique("familiar_collar")>> Gwylan excitedly skips up to you as you enter the shop. "<<pcPetname "Gwylan">>! I have a surprise for you," <<he>> says in a sing-song voice. <br><br> <<He>> does a brief twirl as <<he>> stops in front of you, and opens <<his>> hands to you. <br><br> <span class="lewd"><<He>> reveals a collar,</span> unlike any you've seen before. It's dark green, and when you reach out to touch it, it tingles in your grasp. It's mostly made of a soft fabric, woven with strange runes. The most striking feature is the golden heart on the front. <br><br> "I made it just for you," <<he>> says with a slight blush. <<He>> turns the heart around, revealing <span class="lewd">your name engraved on it</span>. <<if $hypnosis_traits.devotion gte 3>><<arousal 400>><<hypnosisText "<<garousal>>">><</if>> <br><br> "It's very special. I've... let's say, I've attuned it to you and I. It's a trick collar, of sorts. Normally, it won't do anything special, but I can... lock it." <<He>> caresses your neck. "If you let me do so, <span class="blue">no one but me will be able to remove it.</span> It'll protect your neck, and no one will even be able to attach a leash to it. Except me, of course." <br><br> <<He>> walks around you, and wraps <<his>> arms around you. "<span class="green">It might just let me know if you're in danger nearby, too.</span> There's just one catch." <br><br> <<He>> plants a kiss on your neck. <<if $hypnosis_traits.devotion gte 3>><<hypnosisText "The tension leaves your body.">><</if>> "It will <span class="lewd">make your trance last until it's removed.</span> You don't mind though, do you?" <<His>> voice is honey dripping into your mind. <br><br> "Won't you let me put it on you, <<pcpetname "Gwylan" "my">>? It would mean the world to me." <br><br> <<link [[Let Gwylan put the collar on you|Forest Shop Familiar Collar Wear]]>><<npcincr Gwylan dom 10>><</link>><<gggyearning>><<gwylanHypnoNote>> <br> <<link [[Do not|Forest Shop Familiar Collar Wear]]>><<set $phase to "resist">><<npcincr Gwylan dom -5>><</link>><<gwylanWillpowerDifficulty>><<llyearning>> <br><<effects>><<run statusCheck("Gwylan")>> <<if $phase is "resist">> <<if $willpowerSuccess>> <<set _resisted to true>> <<if $hypnosis_traits.devotion>> <span class="green">You push away the compulsion to submit.</span> <</if>> Gwylan pouts. "So rude, turning down a gift I worked so hard on. Very well. It'll be here in the shop if you want it. <span class="blue">Come see me if you want me to bind it.</span> It'll just be a normal collar otherwise." <<else>> <<hypnosisText "You push any thoughts of defiance away. How could you reject such a wonderful gift?">> <<if $hypnosis_traits.devotion gte 5>> You tremble in anticipation. "Please, put it on," you say. "I want to be yours." <<else>> You nod, and lift your head to give <<him>> easier access. <</if>> <</if>> <<else>> <<if $hypnosis_traits.devotion gte 5>> <<hypnosisText "You tremble in anticipation.">> "Please, put it on," you say. "I want to be yours." <<else>> You nod, and lift your head to give <<him>> easier access. <</if>> <</if>> <br><br> <<if !_resisted>> <<if $worn.neck.cursed is 1>> With a sharp click, your <<= $worn.neck.name>> releases your neck. In its place, the soft fabric embraces you. <<set $worn.neck.type.push("broken")>> <<neckruined true>> <<elseif $worn.neck.name isnot "naked">> Your <<= $worn.neck.name>> is lifted away. In its place, the soft fabric embraces you. <<generalUndress "wardrobe" "neck">> <<else>> Slowly, gently, the soft fabric embraces you. <</if>> <<neckwear 40>> You shiver. <br><br> It clicks into place. "<<pcPetname "Gwylan" "good">>. Now to lock it." <<He>> steps back around you, and pulls you into a tender kiss. <br><br> <<He>> holds the kiss, pulling you into a tight embrace. A faint green light illuminates your faces. Your heart pounds. You melt in <<his>> embrace, and become <<hers>>. <<gwylanKiss 25>> <<set $worn.neck.cursed to 1>> <br><br> <<He>> pulls away, but still cradles your head. "And with that, you're mine." <<He>> giggles, and gives you one last peck on the lips. "If you want me to release you, come talk to me. I might make you work for it, though." <br><br> <<He>> keeps holding you. You have no desire for <<him>> to let go, and feel a little empty when <<he>> finally does. You feel a pulse around your neck, from the golden heart, banishing the feeling and comforting you. As if Gwylan were still with you. Still embracing you. <</if>> <br><br> <<specialClothesUnlock "item" "familiar collar">> <<link [[Next|Forest Shop Entrance]]>><<endevent>><</link>> <br>/* no effects, included */ You walk into the forest shop, and- <br><br> <<lowerstrip>> <<upperstrip>> <<underlowerstrip>> <<underupperstrip>> <<pass 3>> <<orgasm>> <<silently>><<clotheson>><</silently>> You steady yourself against a nearby bookshelf, breathing heavily. Your mind feels foggy. <<trauma 3>><<gtrauma>> <br><br> You look down. There's no sign of what just happened to you. You look around. The shop is silent. <br><br> <<link [[Next|Forest Shop Entrance]]>><<endevent>><</link>> <br>/* no effects, included */ <<npc Gwylan>><<person1>> You enter the forest shop. <<if $gwylanSeen.includes("partners")>> Before you can get your bearings, you're wrapped up in a warm embrace. Gwylan clings to you. <<if _gwylanTF.known>><<His>> tail curls around you. It's very soft.<</if>> <br><br> "Oh, sweetheart," <<he>> whispers. "You've been gone so long, I was starting to think you were never coming back. What happened to you?" <<else>> You hear rapid footsteps approaching, and Gwylan emerges from the gloom. "There you are!" <<He>> walks up and hugs you. "I was starting to wonder if you had forgotten about me. What happened to you?" <</if>> <br><br> <<gwylanReunion>> <br><br> <<if _gwylanStatus.includes("badEndReady")>> <<He>> doesn't let go. <br><br> "Please, just let me hold you for a little longer. I really though this would be the end. I thought I'd be alone again." <<switch $bodysize>> <<case 0 1>><<He>> withdraws only enough to look down into your eyes. <<case 2>><<He>> nuzzles <<his>> head into the crook of your neck. <<case 3>><<He>> presses <<his>> head into your chest. <</switch>> "Just a little longer." <br><br> You feel the slightest pinprick in your arm. <<pain 2>><<gpain>> <br><br> <span class="purple">The room starts to shift and distort.</span> Gwylan's face remains in perfect clarity at the center of your vision. <<He>> smiles sweetly, holding up a pink rose. Its stem drips red. <<hallucinogen 160>><<ggghallucinogens>> <br><br> The floor attacks you from below, but Gwylan guides you down slowly. "Shhh... just... a little longer." <br><br> <<His>> voice fades away with the rest of the room. <br><br> <<if _gwylanStatus.includes("aurigaScarConfront")>> <<link [[Everything fades to black...|Forest Shop Nowhere Passout]]>><<pass 30>><<endevent>><</link>> <<else>> <<link [[Everything fades to black...|Forest Shop Taken Start]]>><<pass 30>><<endevent>><</link>> <</if>> <<else>> <<if _badEndFollowup>> <<He>> holds you for just a moment longer, before letting go. "The shop must have something new to show you after going through that. Be sure to take a look around. I'd like to hear more." <<He>> bows, and steps back into the gloom. <<else>> <<He>> holds you for just a moment longer, before letting go. "I'm glad you're back. If you have any new stories for me, you know where to look." <<He>> bows, and steps back into the gloom. <</if>> <br><br> <<link [[Next|Forest Shop Entrance]]>><<endevent>><</link>> <br> <</if>><<set $location to "forest_shop">><<set $outside to 0>><<effects>> <<npc Gwylan>><<person1>><<run statusCheck("Gwylan")>> <<pain 1>><<wash>><<dry_full>> <<if $passoutReason is "hyperthermia">> <<set Weather.Temperature.override.increase.inside(-5, "A small fan keeps you cool.")>> <<elseif $passoutReason is "hypothermia">> <<set Weather.Temperature.override.increase.inside(5, "A thick blanket keeps you warm.")>> <</if>> You awaken harshly, feeling as though you just hit the ground back-first. You gasp and thrash. You try to, at least. <span class="red">Your limbs feel impossibly heavy.</span> You try to move your neck, but even that comes with great effort. <br><br> The room you're in is dark, dimly lit by candles that surround you in what you assume to be a circle. You lay on a quilted rug, encircled by a large symbol on the floor. <span class="blue">You feel clean, as if freshly washed.</span> <br><br> <<if $hypnosis_traits.devotion gte 4>> "My dearest." Gwylan's voice sends a warm shiver through your body. <<else>> "My dearest." Gwylan's voice startles you. <</if>> <<He>> sits down next to you, <<his>> face awash with worry and the slightest hint of shame. "I hope you can forgive me." <br><br> <<He>> leans over you and puts the tip of <<his>> finger on your forehead. "Forgive me for not keeping you safe."<br> <<His>> finger trails down to the tip of your nose. "Forgive me for not acting sooner."<br> Finally, <<his>> finger presses against your lips. "And forgive me for this act of selfishness." <br><br> <<He>> throws a leg over you to straddle you. "Your absence has torn me open. I need your touch. I need to make sure you're healed before you can face the outside world again, and only then can I, myself, heal." <br><br> You're stuck to the floor like a squashed insect, although you feel more like one put up in pins in a display case. <<if $hypnosis_traits.devotion gte 4>> <<hypnosisText "Your heart aches with guilt.">> You've made <<him>> so worried. <<stress 10>><<trauma 10>><<ggstress>><<ggtrauma>> <<elseif $hypnosis_traits.devotion gte 1>> <<hypnosisText "Your heart aches with a guilt you're not sure is your own.">> <<stress 4>><<trauma 4>><<gstress>><<gtrauma>> <</if>> <br><br> <<He>> leans down and embraces you. <<He>> couldn't hold you any closer without being under your skin. <br><br> <<if $hypnosis_traits.devotion gte 3 or $trauma gte 9000>> <<link [[Ask Gwylan to take care of you|Forest Shop Taken Start 2]]>><<sub 1>><<set $phase to 1>><<npcincr Gwylan lust 10>><<npcincr Gwylan dom 20>><</link>><<gwylanHypnoNote>><<gglust>><<gggyearning>> <br> <</if>> <<link [[Quietly return the embrace|Forest Shop Taken Start 2]]>><<set $phase to 2>><</link>> <br> <<link [[Lay still|Forest Shop Taken Start 2]]>><<set $phase to 3>><</link>> <br> <<link [[Tell Gwylan you want to leave|Forest Shop Taken Start 2]]>><<def 1>><<set $phase to 4>><</link>><<gwylanWillpowerDifficulty>> <br><<effects>><<run statusCheck("Gwylan")>> <<if $passoutReason is "hyperthermia">> <<set Weather.Temperature.override.increase.inside(-5, "A small fan keeps you cool.")>> <<elseif $passoutReason is "hypothermia">> <<set Weather.Temperature.override.increase.inside(5, "A thick blanket keeps you warm.")>> <</if>> <<unset $passoutReason>> <<if $phase is 1 or $phase is 4 and $hypnosis_traits.devotion gte 5>> <<if $phase is 4 and $hypnosis_traits.devotion gte 5>> <<hypnosisText "The words change as they leave your mouth.">> <</if>> <<switch $speech_attitude>> <<case "meek">> "It's so scary out there," you say. "Please take good care of me here. I want to stay." <<case "bratty">> "I can't take it anymore," you say. "Just let me stay here where it's safe." <<default>> "The world is scary," you say. "Please let me stay here." <</switch>> <<if $phase is 4 and $hypnosis_traits.devotion gte 5>> <<hypnosisText "Those weren't your words... but they sounded so appealing.">> <</if>> <span class="teal">The weight in your arms lifts.</span> You eagerly return Gwylan's embrace. <<gwylanHypnosis "devotion" 15>> <br><br> "Oh, <<pcpetname "Gwylan" "simple">>." <<His>> smile threatens to burn the forest down with its smothering warmth. <<He>> caresses your face. "Of course. I'll keep you safe from the world. I'll take care of everything. You'll never have to worry again." <<elseif $phase is 2>> You try to move your arms to embrace Gwylan, but they still feel heavy. After a brief struggle, you're just barely able to manage it. <br><br> <<He>> trills in satisfaction upon feeling your touch. <<He>> strokes your head. "There's a <<pcpetname "Gwylan" "good">>. I'll take care of everything." <<elseif $phase is 3>> You lay perfectly still. <<He>> continues snuggling against you for a while. "It's okay. You don't need to move. I'll take care of everything." <<else>> You open your mouth to speak, <<if $willpowerSuccess>> and <span class="green">push through the compulsion to stay silent</span>. <<switch $speech_attitude>> <<case "meek">> "That sounds nice, but... I really need to leave—" <<case "bratty">> "Let me go," you say. "I need to leave—" <<default>> "I can't stay here," you say. "I need to leave—" <</switch>> <br><br> <<He>> kisses you, cutting you off as <<his>> tongue slips into your mouth. <<gwylanKiss>> <br><br> <<His>> eyes remain open the whole time. <<if $hallucinations gte 2>> As <<he>> withdraws, a faint blue mist leaks from the corners of <<his>> mouth. You try to speak again, <span class="red">only to find that your voice is gone</span>. <<trauma 12>><<ggtrauma>> <<else>> As <<he>> withdraws, you try to speak again, <span class="red">only to find that your voice is gone</span>. <<trauma 12>><<ggtrauma>> <</if>> <br><br> <<His>> face looks different now. It doesn't look warm and comforting. It looks scolding. "You deny your promise to me, dear? Such insolence, to toy with a <<personsimple>>'s heart like this." <<His>> smile returns, twisted and dark. Almost playful. <<npcincr Gwylan dom -5>><<stress 24>><<lyearning>><<gggstress>> <br><br> <<He>> leans back in, caressing your chest as <<he>> lays atop you. "You just need to... remember." <<else>> <span class="red">but your voice catches in your throat.</span> <br><br> Gwylan's head tilts at you curiously. <<He>> then smiles and giggles. "Don't worry, <<pcpetname "Gwylan">>. I'll take care of everything." <</if>> <</if>> <br><br> <<if $worn.neck.name is "familiar collar">> <<His>> hands caress your collar. <<else>> <<His>> hands place something around your neck with a click. <<if $worn.upper.cursed is 1>> <<set _neckRuinedHere to true>> <<set $worn.neck.type.push("broken")>> <<neckruined true>> <<elseif $worn.neck.name isnot "naked">> <<set _neckStrippedHere to true>> <<generalUndress "wardrobe" "neck">> <</if>> <<neckwear 40>> <</if>> <<He>> whispers something, and plants a kiss on your cheek. A brief flash of green highlights your faces. <<if !$hypnosis_traits.devotion>> <<gwylanHypnosis "devotion" 15>> <</if>> <br><br> <<link [[Next|Forest Shop Taken Start 3]]>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<set $worn.neck.cursed to 1>> <<if !$worn.neck.type.includes("leash")>> <<set $worn.neck.type.push("leash")>> <</if>> <<set $gwylan.timer.lastSeen to Time.date.timeStamp>> <<He>> lifts <<his>> hand. A ribbon of green light connects it with the collar around your neck. <br><br> "Your collar will ensure the hypnosis remains in place <span class="red">indefinitely</span>." <<He>> claps <<his>> hands together, looking delighted. "I hope you find it comfortable. I made it just for you!" <<He>> flips up the golden heart-shaped plate. It has your name engraved on it. <<Hes>> right. It is comfortable. So comfortable that your muscles can't help but relax. <br><br> Your mind fills with terrifying submission. You don't want to resist anymore, and it scares you. Your head then throbs, as if the thought of fearing Gwylan was heresy. <br><br> <<hypnosisText "You lay still as <<he>> leans in for <<if $phase is 4 and $willpowerSuccess>>another<<else>>a<</if>> kiss.</span>">> <<His>> emerald eyes, wide open, overtake your vision. <<gwylanKiss>> <br> You feel something leave you, alongside <<his>> tongue. Gwylan has taken something from you. The thought doesn't scare you anymore, though. <<hypnosisText "<<He>> knows what's best for you. This is all for your sake.">> <br><br> <<if $phase is 1 or $phase is 4 and $hypnosis_traits.devotion gte 5>> "You'll stay here with me," <<he>> pauses, putting a finger up to <<his>> chin in thought. "For as long as you want, <<pcpetname "Gwylan">>. You deserve a rest." <<elseif $phase is 4 and $willpowerSuccess>> "You'll stay here with me." <<He>> tugs your leash. "You'll be happy." <<His>> tone is a mixture of commanding, pleading, and reassuring. "Let me make you happy, even if it's only for a short time." <<else>> "You'll stay here with me, for as long as..." <<he>> pauses, putting a finger up to <<his>> chin in thought. "I don't know!" <<He>> shrugs, <<his>> carefree smile brightening up the room. "We'll figure that out together, I suppose." <</if>> /* ToDo: Gwylan - move this somewhere more appropriate "You'll never get my smell out of your clothes, you'll never get my face to vanish from behind your eyelids, and you'll never get my voice out of your head. You may run around and play pretend with whomever you so wish, but in the end, you <i>will</i> return to me. It's what you promised me, my love. And no promise for or against me has ever been broken." */ <br><br> <<He>> lays down beside you again, his eyes still staring into yours. "I love you." <br><br> <<He>> snaps <<his>> fingers, and you fall asleep. <br><br> /* ToDo: Gwylan - soft bad end */ <span class="red">DEV NOTE: Not yet implemented.</span> <br><br> <<link [[Next|Forest Shop Entrance]]>><<clotheson>><<endevent>><</link>> <br><<canvas-model-override "trauma" true>> <<canvas-model-override "eyes_half" true>> <<canvas-model-override "mouth" "cry">> <<canvas-model-freeze "player">> <<hallucinogen 10>> You enter the forest shop, and immediately realise something is wrong. It's empty. Nobody. <br><br> Not just of its keeper. It's <i>entirely</i> empty. No shelves, no clothes, no strange mossy cabinets packed with knick-knacks. No light. Not even from the door behind you. It stops at the threshold. <br><br> No walls. No ceiling. <br><br> You take a step forward, and realise far too late that there's <span class="red">no air, either</span>. Your vision goes hazy in an instant, stars creeping into the edges of your vision as your muscles seize. <br><br> No hope. No safety. No life. <br><br> A pain overtakes your chest, spreading out from your heart. You look down, and see a <span class="tentacle">crackling scar</span> erupting from your skin in the same spot. <<pain 4>><<trauma 50>> <br><br> No glory. No pleasure. Damnation. <br><br> Something appears in the emptiness ahead. A pair of antlers, made of the same writhing nothingness as your scar. You collapse. There's no floor. You fall. <br><br> Nowhere. <br><br> <<link [[Next|Forest Shop Nowhere Passout]]>><<endevent>><<pass 15>><</link>> <br><<set $location to "forest_shop">><<set $outside to 0>><<effects>> <<npc Gwylan>><<person1>><<run statusCheck("Gwylan")>> <<set $gwylanSeen.pushUnique("auriga_scar")>><<drugs 120>><<hallucinogen 120>> <<pain 1>> <<set $gwylan.wary += 2>> <<if $worn.under_upper.name isnot "naked">> <<set _underUpperStrippedHere to true>> <<generalUndress "wardrobe" "under_upper">> <<underupperwear 17>> <</if>> <<if $worn.upper.name isnot "naked">> <<set _upperStrippedHere to true>> <<upperstrip>> <</if>> <<if $worn.handheld.name isnot "naked">> <<handheldstrip>> <</if>> <<wash>><<dry_full>> <<if $passoutReason is "hyperthermia">> <<set Weather.Temperature.override.increase.inside(-5, "A small fan keeps you cool.")>> <<elseif $passoutReason is "hypothermia">> <<set Weather.Temperature.override.increase.inside(5, "A thick blanket keeps you warm.")>> <</if>> You awaken harshly, feeling as though you just hit the ground back-first. You gasp and thrash. <<if $gwylanSeen.includes("romance")>> You try to, at least. <span class="red">Your limbs feel impossibly heavy.</span> You try to move your neck, but even that comes with great effort. <br><br> The room you're in is dark, dimly lit by candles that surround you in what you assume to be a circle. You lay on a quilted rug, encircled by a large symbol on the floor. <span class="blue">You feel clean, as if freshly washed.</span> <br><br> <<if $hypnosis_traits.devotion gte 4>> "My dearest." Gwylan's voice sends a warm shiver through your body. <<else>> "My dearest." Gwylan's voice startles you. <</if>> "Look at what you've done to yourself." You move your neck back. Gwylan sits down next to you, <<his>> face awash with sorrow and worry. <<His>> hand gently caresses your chest, <<if _upperStrippedHere>>now<</if>> bare save for some bandages wrapped around you. It rests over your heart. "Your scar seeks to keep us apart, like magnets repelling each other." As if in response, the crackling mark slithers out from your bandages, into the air. The tip of Gwylan's finger pushes against it, and it retracts. <br><br> <span class="purple">The room turns purple. The space Gwylan occupies is empty, filled instead by a naked, bruised, burned body. Its arms are unnaturally long and blackened, tipped with sharp claws. On its head, a pair of regal, empty antlers. Scars to match your own.</span> <br><br> "Why? You know all that's at stake. You know what <i>they</i> do to people like us. Why did you play right into their schemes? Why did you let them do this to you?" <<He>> winces as a single black tear rolls down <<his>> cheek. <<if $avery_mansion and $brownFoxCoverBlown>> <<set $avery_mansion.fox.known to true>><<set $brownFoxRevealed to true>> "<span class="red">Why did you scream for them when you saw me?</span> Have they swayed you?" <<else>> "Have they swayed you?" <</if>> <<lllove>> <br><br> <span class="purple">The antlered figure vanishes, replaced by Gwylan again.</span> <<else>> Something holds you still, though. "Shhhhh. It's alright. You're safe." Your arms and legs feel heavy, and you have trouble moving. <br><br> You look up. Your head is in Gwylan's lap. <<if $gwylanSeen.includes("yearning")>><<His>> expression is blank.<<else>><<He>> gently smiles.<</if>> You're in the forest shop. Everything around you looks normal. <<if _upperStrippedHere or _underUpperStrippedHere>> You spot your clothes neatly folded next to you. <</if>> <br><br> <<His>> hand runs down your chest, making you shiver. You look down and realise that it's bare, save for some bandages. "You're hurt." <<His>> hand stops over your heart. "Here. There's something. Or perhaps there's nothing." <br><br> <span class="purple">Your vision blurs. Behind Gwylan's head, stuck to <<his>> shadow on the wall, is a pair of antlers.</span> <<He>> removes <<his>> hand, and your vision clears. It's just some branches behind <<him>>. <<stress 12>><<ggstress>> <br><br> <<if $gwylanSeen.includes("yearning")>> "Have you thrown your lot in with those who seek to poison my forest? <<if $gwylanSeen.includes("partners")>> <<set $gwylan.wary += 3>> I thought I could trust you, after I opened my home and my body to you. You know well what's at stake. You've seen what I..." <br><br> <<He>> pauses and covers <<his>> face. You hear a single quiet sob. "You know what I subject myself to. To oppose them. To keep the forest free of their poison. Does that mean nothing to you? Does our bond mean nothing to you? Why did you ever help me?" <<npcincr Gwylan dom -100>><<lllove>><<lllyearning>> <br><br> <<His>> tone is unnervingly neutral, despite <<his>> clear anguish. <<His>> hand lightly pets your head. <<else>> <<set $gwylan.wary++>> Is this some revenge of yours, some spite, because I wouldn't return your feelings?" <<His>> hand lightly pets your head. <<His>> tone is unnervingly neutral. "This is larger than us, dear." <<npcincr Gwylan dom -50>><<lllyearning>> <br><br> <</if>> <<He>> doesn't seem angry, yet the hairs on the back of your neck stand on end. <<stress 6>><<gstress>> <br><br> "You've made a ruinous mistake. The scar will never go away. If you fail to reverse course, it will only become worse. It won't be fast. It will surround your heart like a serpent, constricting it. Then, it will take a single bite. To taste you. To measure your value as a vessel. Regardless of the outcome, it will proceed to swallow you." <<His>> eyes bore into you, and you're afraid to move. "You won't die. <span class="red">You'll wish you could, though.</span>" <br><br> <<He>> caresses your cheek with the back of <<his>> hand. "Why did you let the Elk's servants do this to you?" <<else>> "I expected this would happen sooner or later. Your scar defies our union. It strives to keep us apart, so we can't heal the forest." <<He>> gently pets your head. "I won't hold your past mistakes over you. You've already helped me much. I'm certain you already have regrets, else you wouldn't keep coming here." <<He>> doesn't seem angry, yet the hairs on the back of your neck stand on end. <<stress 6>><<gstress>> <br><br> <<His>> smile is sad. "The scar will never go away. If you slip further, it will grow in turn. It won't be fast. It will surround your heart like a serpent, constricting it. Then, it will take a single bite. To taste you. To measure your value as a vessel. Regardless of the outcome, it will proceed to swallow you." <<He>> looks like a parent telling their child that their pet just passed away. "You won't die. <span class="red">You'll wish you could, though.</span>" <br><br> <<He>> caresses your cheek with the back of <<his>> hand. "Sate my curiosity, if you could, <<pcpetname "Gwylan" "name">>. Why did you let the Elk's servants do this to you?" <</if>> <</if>> <br><br> <<link [[Say you were helpless|Forest Shop Nowhere Talk]]>><<set $gwylan.trouble to "helpless">><</link>> <br> <<link [[Say you were afraid to defy Avery|Forest Shop Nowhere Talk]]>><<set $gwylan.trouble to "fear">><</link>> <br> <<link [[Say you want to watch Avery fall from greater heights|Forest Shop Nowhere Talk]]>><<set $gwylan.trouble to "pride">><</link>> <br> <<link [[Say you're afraid to leave this path of damnation|Forest Shop Nowhere Talk]]>><<set $gwylan.trouble to "damnation">><</link>> <br> <<if $temple_arcade_known or $sydneySeen?.includesAny("punishment", "corruptroom")>> <<link [[Say you want to oppose the temple|Forest Shop Nowhere Talk]]>><<set $gwylan.trouble to "sedition">><</link>> <br> <</if>> <<link [[Say you want to spite those that have hurt you|Forest Shop Nowhere Talk]]>><<set $gwylan.trouble to "spite">><</link>> <br> <<link [[Say you want to drown in bottomless lust|Forest Shop Nowhere Talk]]>><<set $gwylan.trouble to "lust">><</link>> <br> <<link [[Say you wanted to defy Bailey|Forest Shop Nowhere Talk]]>><<set $gwylan.trouble to "Bailey">><</link>> <br> <<if $brownFoxRevealed>> <<link [[Say you didn't trust Landry|Forest Shop Nowhere Talk]]>><<set $gwylan.trouble to "Landry">><</link>> <br> <</if>> <<if $hypnosis_traits.suggestion gte 4>> <<link [[Say you wanted to get close to Harper|Forest Shop Nowhere Talk]]>><<set $gwylan.trouble to "Harper">><</link>> <br> <</if>> <<if $gwylanSeen.includesAll("romance", "nobody") and $gwylan.triumph is "Gwylan">> <<link [[Say you wanted to become like <<him>>|Forest Shop Nowhere Talk Forever]]>><<set $gwylan.trouble to "Gwylan">><</link>> <br> <</if>><<effects>><<run statusCheck("Gwylan")>> <<if $passoutReason is "hyperthermia">> <<set Weather.Temperature.override.increase.inside(-5, "A small fan keeps you cool.")>> <<elseif $passoutReason is "hypothermia">> <<set Weather.Temperature.override.increase.inside(5, "A thick blanket keeps you warm.")>> <</if>> <<unset $passoutReason>> <<if $gwylanSeen.includes("romance")>> <<set $gwylan.trouble to "silenced">> You open your mouth to speak as <<his>> finger trails up your neck. A faint blue mist exits and swirls in between Gwylan's fingers. <span class="red">You have been silenced.</span> <br><br> <<if $avery_mansion and $brownFoxCoverBlown>> "Shhh... no more screaming, my dear child. I can't bear to hear you sing for the elks again. <<else>> "Shhh... you needn't say anything, my dear child. <</if>> I already understand. It can be so, so very difficult to refuse the hand that feeds you, even when the same hand strikes you. Even when your body flinches by instinct." <<He>> lays down on top of you, forcing you to look into <<his>> eyes. "I'm sorry I wasn't there to protect you. I failed you. I won't fail again. I will protect you from the world..." <br><br> <<if $worn.neck.name is "familiar collar">> <<His>> hands caress your collar. <<else>> <<His>> hands place something around your neck with a click. <<if $worn.upper.cursed is 1>> <<set _neckRuinedHere to true>> <<set $worn.neck.type.push("broken")>> <<neckruined true>> <<elseif $worn.neck.name isnot "naked">> <<set _neckStrippedHere to true>> <<generalUndress "wardrobe" "neck">> <</if>> <<neckwear 40>> <</if>> <<He>> whispers something, and plants a kiss on your cheek. A brief flash of green highlights your faces. <<if !$hypnosis_traits.devotion>> <<gwylanHypnosis "devotion" 15>> <</if>> <br><br> <span class="red">"...but I must also protect the world from you."</span> <br><br> <<link [[Next|Forest Shop Taken Alt Start]]>><</link>> <br> <<else>> <<switch $gwylan.trouble>> <<case "helpless">> <<if $gwylan.triumph is "innocent" and $innocencestate>> <<if $gwylan.wary gt 1>><<set $gwylan.wary-->><</if>> Gwylan scowls briefly, but seems to remember something. "You poor, naive child. You truly believe you're helpless, don't you?" <<He>> shakes <<his>> head. "Someone has taught you that helplessness. It is not who you are." <<He>> continues petting your hair, now looking almost protective of you. "We must break you out of this, or this world will chew you up." <<elseif $gwylanSeen.includes("yearning") or ["spite", "survival", "revenge", "divine"].includes($gwylan.triumph)>> <<set $gwylan.wary++>><<set _gwylanDisappointed to 1>> Gwylan frowns, <span class="red">looking disappointed</span>. "Nonsense. You've merely forgotten how strong you are." <<He>> leans in. "I haven't. I still remember everything you've told me. You are far from helpless. Why do you lie to yourself? What has made your heart waver like this?" <<He>> shakes <<his>> head, lifting yours out of <<his>> lap and laying you down on the floor. <<npcincr Gwylan dom -25>><<llyearning>> <br><br> <<if $avery_mansion?.fox?.known>> "Even if you were as weak and helpless as you're trying to make me believe, you had help. <span class="red">You denied it willingly.</span>" <<set $gwylan.wary++>> <</if>> <<He>> stands. <<switch $gwylan.triumph>> <<case "spite">>"You told me that spite is what kept you holding on. Did that spite simply vanish?" <<case "survival">>"The survival instincts you spoke of must be far off. The fox that plays dead is the first devoured." <<case "optimism">>"You spoke of a better future on the horizon. It just became so much further away." <<case "child">>"Helpless. How insulting to hear from someone that claimed to be holding on for <<pher>> child." <<case "children">>"Helpless. How insulting to hear from someone that claimed to be holding on for <<pher>> children." <<case "orphans" "kind">>"Helpless. How insulting to hear from someone that claimed to want to help others." <<case "special">>"You spoke of holding on for someone special. I think I know who you were talking about, now. You've made a terrible choice." <<case "Gwylan">>"Your words are just as empty as when you told me that I was the one you were holding on for." <<npcincr Gwylan dom -50>><<lllyearning>> <<case "revenge">>"Your desire for revenge must have been thoroughly erased." <<case "divine">>"The divine purpose you claimed to be your anchor must have rusted away. Where did your conviction go?" <<case "lust">>"You aren't just a toy to be used." <<case "innocent">>"There was an empty innocence behind your eyes, once. It's gone, now. Yet you hold on to this learned helplessness." <<case "curiosity">>"Your curiosity must have dulled." <<default>>"Letting yourself be thrashed by the tides is a sure way to be broken against the shore." <</switch>> <<else>> Gwylan continues to pet you. "You face powerful people. I understand. I wish I could keep you here and protect you from them, but we can't stay sheltered as the world outside burns." <</if>> <<case "fear">> <<switch $gwylan.triumph>> <<case "spite" "revenge" "divine">> <<set $gwylan.wary++>><<set _gwylanDisappointed to 1>> Gwylan frowns, <span class="red">looking disappointed</span>. "So your desire to uphold your own justice is gone, then. How tragic. Your teeth have been pulled." <<He>> shakes <<his>> head, lifting yours out of <<his>> lap and laying you down on the floor. <<npcincr Gwylan dom -25>><<llyearning>> <<case "survival">> <<if $gwylan.wary gt 1>><<set $gwylan.wary-->><</if>> <<if $gwylanSeen.includes("yearning")>><<His>> expression falters.<<else>><<He>> smiles sadly.<</if>> "You told me that survival comes before all else. You were just following your instincts, then." <<He>> looks down at <<his>> arms. "Anything it takes to survive. Even if one has to submit and take the beatings." <<npcincr Gwylan dom 5>><<gyearning>> <<case "child" "children" "orphans" "kind" "Gwylan">> <<set $gwylan.wary++>><<set _gwylanDisappointed to 1>> Gwylan frowns, <span class="red">looking disappointed</span>. "Fear? What of the fear that those you love will feel in this ever-darkening world?" <<He>> shakes <<his>> head, lifting yours out of <<his>> lap and laying you down on the floor. <<npcincr Gwylan dom -25>><<llyearning>> <<case "special">> <<if isLoveInterest("Avery")>> <<if $gwylan.wary gt 1>><<set $gwylan.wary-->><</if>> <<if $gwylanSeen.includes("yearning")>><<His>> expression falters.<<else>><<He>> smiles sadly.<</if>> "I understand. It can be so, so very difficult to refuse the hand that feeds you, even when the same hand strikes you. Even when your body flinches by instinct." <<He>> looks down at <<his>> arms. "Anything it takes to survive." <<npcincr Gwylan dom 5>><<gyearning>> <<else>> <<set $gwylan.wary++>><<set _gwylanDisappointed to 1>> Gwylan frowns, <span class="red">looking disappointed</span>. "Fear? What of the fear that those you love will feel in this ever-darkening world?" <<He>> shakes <<his>> head, lifting yours out of <<his>> lap and laying you down on the floor. <<npcincr Gwylan dom -25>><<llyearning>> <</if>> <<case "curiosity">> <<set $gwylan.wary++>><<set _gwylanDisappointed to 1>> Gwylan frowns, <span class="red">looking disappointed</span>. "So your curiosity is only as deep as a puddle, unable to break through something as weak as fear. How troublesome." <<He>> shakes <<his>> head, lifting yours out of <<his>> lap and laying you down on the floor. <<npcincr Gwylan dom -25>><<llyearning>> <<default>> <<if $gwylanSeen.includes("yearning")>> <<set $gwylan.wary++>><<set _gwylanDisappointed to 1>> Gwylan frowns, <span class="red">looking disappointed</span>. "After all you've told me, something as weak as fear is enough to make you heel? What of the fear I felt, worrying whether the fool Elk-puppets swayed you?" <<He>> shakes <<his>> head, lifting yours out of <<his>> lap and laying you down on the floor. <<npcincr Gwylan dom -25>><<llyearning>> <<else>> <<if $gwylan.wary gt 1>><<set $gwylan.wary-->><</if>> Gwylan pulls you up into a hug. "I understand. It can be so, so very difficult to refuse the hand that feeds you, even when the same hand strikes you. Even when your body flinches by instinct." <<He>> looks down at <<his>> hands behind you. "Anything it takes to survive." <<npcincr Gwylan dom 5>><<gyearning>> <</if>> <</switch>> <<case "pride">> <<if !$gwylanSeen.includes("yearning")>> <<if ["spite", "revenge"].includes($gwylan.triumph)>> A smile breaks through Gwylan's stern expression. "You told me you were spiteful, but I didn't expect it to go this deep. <<else>> <<He>> sighs, but continues to pet your head. "I hope you know how foolish that was. <</if>> It won't be worth it. Avery will drag us all down to Hell with <<nnpc_him "Avery">>, now. <<if $brownFoxRevealed>> This is exactly what Landry and I were trying to prevent. Spite isn't worth condemning the world, and the chance to spur the fall has long since passed." <<else>> It's exactly what La—" <<He>> catches <<himself>>. "Spite isn't worth condemning the world." <</if>> <<else>> <<set $gwylan.wary += 2>><<set _gwylanDisappointed to 1>> Gwylan scoffs. <span class="red"><<He>> looks disappointed.</span> "It's too late for that. When Avery falls, <<nnpc_He "Avery">>'ll be dragging us all down to Hell with <<nnpc_him "Avery">>. <<if $brownFoxRevealed>> It's exactly what Landry and I were trying to prevent, and you've fed right into it. Spite isn't worth condemning the world, and the chance to spur the fall has long since passed." <<else>> It's exactly what La—" <<He>> catches <<himself>>. "Spite isn't worth condemning the world." <</if>> <<He>> lifts your head and lays you flat on the ground. <<npcincr Gwylan dom -25>><<llyearning>> <br><br> <<He>> stands. <<switch $gwylan.triumph>> <<case "spite" "revenge">>"Ashes. That's all that will be left when your vision of deeper revenge is fulfilled." <<case "survival">>"The survival instincts you spoke of must be far off. The fox that plays dead is the first devoured." <<case "optimism">>"You spoke of a better future on the horizon. It just became so much further away." <<case "child">>"At this rate, your child won't have a world to grow up in." <<case "children">>"At this rate, your children won't have a world to grow up in." <<case "orphans" "kind" "special" "Gwylan">>"Those you love will suffer all the more thanks to your wish for a deeper revenge." <<case "divine">>"I should have known you'd miss the forest for the fire, just like the Cloister." <<case "lust">>"Your lust has turned to wrath." <<case "innocent">>"There was an empty innocence behind your eyes, once. It's gone, now. Perhaps it was a mistake to rid you of it." <<case "curiosity">>"This isn't morbid curiosity. This is lunacy." <<default>>"You were better off when you didn't know what you were holding on for." <</switch>> <</if>> <<case "damnation">> "The only way I can go is up. To step off the path is to fall," you say, <br><br> "You aren't the one rising, dear. You're the footstool." Gwylan stares down at you, expressionless. "Avery has tied a noose around <<nnpc_his 'Avery'>> own neck. You'll be kicked away and fall regardless. <<switch $gwylan.triumph>> <<case "spite" "revenge">>If this is your way of spiting those who hurt you, you're doing a poor job of it." <<He>> lifts your head and lays you flat on the ground. <<set _gwylanDisappointed to 1>><<npcincr Gwylan dom -25>><<llyearning>><<set $gwylan.wary++>> <<case "survival">>You said to me that survival was above all, yet you yearn to join <<nnpc_him "Avery">> in that noose." <<He>> lifts your head and lays you flat on the ground. <<set _gwylanDisappointed to 1>><<npcincr Gwylan dom -25>><<llyearning>><<set $gwylan.wary++>> <<case "optimism">>You spoke of a better future on the horizon. Have you already given up on that?" <<He>> lifts your head and lays you flat on the ground. <<set _gwylanDisappointed to 1>><<npcincr Gwylan dom -25>><<llyearning>><<set $gwylan.wary++>> <<case "special">>Now you tell me you'll stare down from the floor, yearning to join <<nnpc_him "Avery">> in that same noose?" <<He>> lifts your head and lays you flat on the ground. <<set _gwylanDisappointed to 1>><<npcincr Gwylan dom -25>><<llyearning>><<set $gwylan.wary++>> <<case "lust">>If you think it's too late to change course, you're wrong." <<He>> gives you a more patient smile. <<default>>You sound like a guilty initiate from the temple, determined to punish yourself far more than you deserve." <<He>> allows a softer smile to cross <<his>> face. <</switch>> <<case "sedition">> <<if $gwylan.triumph is "divine">> <<if $gwylan.wary gt 1>><<set $gwylan.wary-->><</if>> Gwylan lets out a long breath. <br><br> "Another soul betrayed by <<pher>> siblings, then." <<if $demon gte 6 or $fallenangel gte 2>> <<He>> frowns. "I can imagine what happened to make you turn against them." <<else>> <<He>> shakes <<his>> head. "I can't even be disappointed in you." <</if>> <<He>> continues petting your head. "I am no friend of the Cloister, but this is too much. It would be better to remove the poison they, too, are opposing. Still, I empathise with your desire to see them humbled." <<else>> <<if $gwylan.triumph is "lust">> <<set $gwylan.wary++>><<set _gwylanDisappointed to 1>> Gwylan frowns, <span class="red">looking disappointed</span>. "All for what, your desire for lust? I remember, dear. You fear they'll punish the hedonism that keeps you afloat in this sea of torment." <<He>> lifts your head and lays you flat on the ground. <<npcincr Gwylan dom -25>><<llyearning>> <<elseif $gwylanSeen.includes("yearning")>> <<set $gwylan.wary++>><<set _gwylanDisappointed to 1>> Gwylan frowns, <span class="red">looking disappointed</span>. "A fool's errand. You know by now that the best way to oppose the Cloister would be to remove the reason they take such extreme measures." <<He>> lifts your head and lays you flat on the ground. <<npcincr Gwylan dom -25>><<llyearning>> <<else>> Gwylan sighs. "I understand, but the best way to oppose the Cloister would be to remove the reason they take such extreme measures." <</if>> <</if>> <<case "lust">> <<set $gwylan.wary += 3>><<set _gwylanDisappointed to 2>> Gwylan stares down at you. <<He>> blinks, saying nothing, waiting for you to continue. You have nothing more to say. <br><br> <<if $gwylan.triumph is $gwylan.trouble and $gwylanSeen.includes("yearning")>> "So, what you told me that day holds true, but it's been twisted. Darkened." <<He>> holds <<his>> hand over your heart. "What happened to you? I want <<pcpetname "Gwylan" "my">> back." <<elseif $gwylanSeen.includes("partners")>> <<He>> looks wounded. "You have given me your heart, dear, and I know this is not its true rhythm." <<He>> then slaps you across the face. "You're being incredibly stupid. Give me back <<pcpetname "Gwylan" "my">>." <<He>> slaps you again. You can't even move to block it. <<pain 8>><<ggpain>> <<elseif $gwylanSeen.includes("yearning")>> <<He>> then slaps you across the face. "You're being incredibly stupid. Give me back <<pcpetname "Gwylan" "my">>." <<He>> slaps you again. You can't even move to block it. <<pain 8>><<ggpain>> <<else>> "That's it?" <<He>> giggles. "That reason is so utterly mundane that I can't tell if you're serious. Is that all it would take for you to throw the world away?" <<He>> smiles. It makes you uncomfortable. <</if>> <br><br> <<switch $gwylan.triumph>> <<case "spite">>"You're becoming one of them." <<case "survival">>"You spoke to me of survival above all else. You're laying down in the road, dear." <<case "optimism">>"You spoke of a better future on the horizon. Now you've turned, and are running away from it." <<case "child">>"You told me you were holding on for your child. What happened? Is this world no longer worthy of you?" <<case "children">>"You told me you were holding on for your children. What happened? Is this world no longer worthy of you?" <<case "orphans" "kind">>"How insulting to hear from someone that claimed to want to help others. You're dooming them all." <<case "special">>"You spoke of holding on for someone special. I think I know who you were talking about, now. You've made a terrible choice." <<case "Gwylan">>"You've lost yourself." <<case "revenge">>"Your desire for revenge must have been twisted." <<case "divine">>"The divine purpose you claimed to be your anchor must have rusted away. Where did your conviction go?" <<case "lust">>"Pleasure is temporary. This path will leave you empty." <<case "innocent">>"There was an empty innocence behind your eyes, once. It's gone, now." <<case "curiosity">>"This isn't morbid curiosity. this is lunacy." <<default>> <</switch>> <<He>> lifts your head and lays you flat on the floor. <<npcincr Gwylan dom -25>><<llyearning>> <<case "spite">> <<set $gwylan.wary += 1>><<set _gwylanDisappointed to 2>> <<switch $speech_attitude>> <<case "meek">>"Everyone has hurt me. I can't trust anybody. I have to go where I'm dragged to keep the pain away, and do what I can to hurt them back." <<case "bratty">>"A world as rotten as this isn't worth it. I'll drag everyone down to hell with me." <<default>>"I've been wronged and hurt. I know this will hurt them all back." <</switch>> <br><br> Gwylan stares down at you. <<He>> blinks, saying nothing, waiting for you to continue. You have nothing more to say. <<He>> smiles sadly. "You sound like Bailey." <<trauma 24>><<ggtrauma>> <br><br> <<He>> lifts your head, and props you up against the side of a wardrobe. "Tell me. Do you think me naive? Idealistic? Do you think my concern for you to be disingenuous? Do you think I've used you?" <<He>> opens the wardrobe, and starts fishing through it. "Is the world not worth helping for just one friend who understands? For one rose in the muck?" <<He>> pulls something out harshly. "Or do you simply want to pluck it? Do you think that's mercy?" <br><br> <span class="pink">You see <<his>> clothes drop around the corner of the wardrobe.</span> "You've told me so much. Please don't pretend that I don't understand." <<He>> chuckles. "Because I used to think exactly like you do." <br><br> <<He>> walks around the corner, <<his>> back facing you. <span class="red"><<Hes>> covered in dozens, possibly hundreds, of scars. Wounds you somehow missed despite seeing <<him>> naked before. Cuts. Scratches. Bites. Burns.</span> <br><br> As you stare, they seem to move, blur, and hide themselves, like a shifting canvas of torture. Older wounds fight to reach the surface of <<his>> skin. Each configuration paints a lifetime of suffering on <<his>> body. Finally, <<his>> skin clears of wounds, only for two much larger ones to rip down <<his>> back at <<his>> shoulder blades. <<He>> turns around and crouches down to your level, placing a finger over your heart. "You're not the only one with an invisible wound, dear. I understand more than you could possibly imagine." <<He>> puts <<his>> other hand on your cheek. "You are not alone." <<case "Bailey">> <<if $speech_attitude is "meek">> "Helping Avery will make Bailey regret selling me," you say. "Maybe it will send a message." <<elseif $speech_attitude is "bratty">> "Bailey seems to hate Avery, so helping Avery will hurt Bailey. That's all I care about." <<else>> "Bailey sold me," you say. "It's <<nnpc_his "Bailey">> fault. Helping Avery will hurt <<nnpc_him "Bailey">>." <</if>> <br><br> <<if $gwylan.triumph is "orphans">> <<He>> sighs. "I understand. The orphans are important to you, it's not just your own interests you're looking out for. Still, these are far worse people than Bailey you're getting mixed up with, dear. I can't say I don't understand, though." <<He>> continues petting your head. "It's a rotten thing, to be forced to put a personal struggle aside for the sake of the world. I understand. I understand more than you know." <<elseif ["child", "children"].includes($gwylan.triumph)>> <<He>> sighs. "I understand. You can't stand having your <<= $gwylan.triumph is "child" ? "child" : "children">> stuck under <<nnpc_his "Bailey">> care. Still, these are far worse people than Bailey you're getting mixed up with, dear. I can't say I don't understand, though." <<He>> continues petting your head. "It's a rotten thing, to be forced to put a personal struggle aside for the sake of the world. I understand. I understand more than you know." <<elseif $gwylanSeen.includes("yearning")>> <<set $gwylan.wary++>><<set _gwylanDisappointed to 1>> Gwylan frowns, <span class="red">looking disappointed</span>. "You know by now that there are bigger threats than Bailey." <<He>> lifts your head and lays you flat on the ground. <<npcincr Gwylan dom -25>><<llyearning>> <<else>> "These are far worse people than Bailey you're getting mixed up with, dear. I can't say I don't understand, though. Bailey is the root of all your personal struggles, no?" <<He>> continues petting your head. "It's a rotten thing, to be forced to put a personal struggle aside for the sake of the world. I understand. I understand more than you know." <</if>> <<case "Landry">> <<if $speech_attitude is "meek">> "Landry was so confusing when <<nnpc_he "Landry">> proposed this," you say. "I didn't want to hurt anyone." <<elseif $speech_attitude is "bratty">> "Landry was far too suspicious about it," you say. "I didn't want to play <<nnpc_his "Landry">> game and get someone hurt." <<else>> "Landry wasn't clear enough," you say. "<<nnpc_He "Landry">> was hiding something. I didn't want anyone getting hurt." <</if>> <br><br> <<if $gwylan.triumph is "kind">> <<He>> frowns. "Landry hides much. Someone as kindhearted as you couldn't understand the darkness bubbling up under the surface of this conflict. It's a terrible choice to have to make." <<elseif $gwylanSeen.includes("yearning")>> <<set $gwylan.wary++>><<set _gwylanDisappointed to 1>> Gwylan frowns, <span class="red">looking disappointed</span>. "You know the stakes. You know that the world can't become clean without us getting dirty." <<He>> lifts your head and lays you flat on the ground. <<npcincr Gwylan dom -25>><<llyearning>> <<else>> <<He>> sighs, and allows <<himself>> a small giggle. "<<nnpc_He "Landry">> hasn't been fully honest with me, either. I can imagine how shady <<nnpc_his "Landry">> proposal sounded." <</if>> <<case "Harper">> You forget your words as soon as they leave your mouth. <br><br> Gwylan looks at you with concern. "I am begging you to let me remove that <<nnpc_gender "Harper">>'s influence from your mind. <<nnpc_Hes "Harper">> using you as a tool, and <<nnpc_he "Harper">> will discard you as soon as your edges dull. If there is true evil in the world, it answers to <<nnpc_him "Harper">>." <</switch>> <br><br> <<if _gwylanDisappointed gte 1>> <<He>> looks down to your bandages again. <<else>> <<His>> head tilts back and forth, as if <<hes>> trying to see every part of you. Then, <<his>> eyes lock on the bandages. <</if>> "Forgive me, but I've already taken precautions while you were unconscious. Your wound shouldn't flare up from my mere presence anymore." <<if _gwylanDisappointed is 2>> <<set $daily.gwylan.locked to true>> <<His>> hands open and close at <<his>> sides. "This is not your truest heart. You wouldn't dare enter my forest again if that was how you really felt." <<He>> produces a red phial, opens it, and holds it under your nose. <span class="green">The weight lifts from your limbs.</span> <br><br> <<He>> helps you stand, and hugs you. "I'd like to be alone for today. <<if $gwylanSeen.includes("partners")>> Look at me. Hey. Look at me." <<He>> turns your head to look into <<his>> eyes. "I won't abandon you, no matter how much you lash out at the world." <<He>> gives you a peck on the lips. <<else>> I hope you return soon, though. There's much work to be done. I've made terrible mistakes of my own. Some worse than this." <</if>> <<His>> words sink deep into you, and you find yourself returning the embrace. <<trauma -12>><<lltrauma>> <br><br> <<He>> leads you outside. <br><br> <<link [[Next|Forest]]>><<clotheson>><<endevent>><<set $eventskip to 1>><<set $forest to 0>><</link>> <br> <<elseif _gwylanDisappointed is 1>> <<He>> kneels down, producing a red phial. <<He>> opens it and holds it under your nose. <span class="green">The weight lifts from your limbs.</span> <br><br> <<He>> helps you stand, and hugs you. "Do not betray yourself. The world is cruel, but beautiful. Nothing, and I truly do mean nothing, is worth aligning yourself with the servants of the Elk. A single mistake does not mean you deserve a spiral of damnation. I've made terrible mistakes of my own. Some worse than this." <br><br> <<He>> pulls away, and steps behind <<his>> usual counter. <br><br> <<link [[Next|Forest Shop Entrance]]>><<clotheson>><<endevent>><</link>> <br> <<else>> <<He>> pulls you into a hug. "There's much work to be done. Even if you've made a terrible mistake, I'd rather have you by my side. I've made terrible mistakes of my own in the past. Some worse than this." <br><br> <<He>> helps you stand, and steps behind <<his>> usual counter. <br><br> <<link [[Next|Forest Shop Entrance]]>><<clotheson>><<endevent>><</link>> <br> <</if>> <</if>><<effects>><<run statusCheck("Gwylan")>> <span class="red"><<He>> freezes, looking down at you in horror.</span> <br><br> "No. No, no no no. You can't become like me, dear. You don't understand what this is like. Nobody is worth this." More black tears start to run down <<his>> face. <span class="purple"><<He>> changes again. <<He>> pulls <<his>> hands away from you as they become gnarled and blackened.</span> <br><br> "A memory with no name. A heart that can't love without threat of bursting open. Hands that can't embrace without tearing to bloody ribbons. A body that can never know true parenthood. An identity in shreds. Nameless. Hopeless. Erased. And the antlers. Forever splitting, fracturing, rupturing." <<He>> clutches <<his>> head. <br><br> <<if $demon gte 6>> "Do you think you've reached the bottom? Do you believe these little wings and horns of yours have sealed your damnation? You've barely breached the surface. This..." <span class="red"><<His>> misshapen claws slowly rake fresh cuts into <<his>> body.</span> "This is what Hell really looks like, my little imp. I can't let you reach these depths. It would tear me apart." <span class="red">Black ichor trails down <<his>> skin. <<He>> runs a claw down your face, leaving some of it on you, too.</span> <br><br> <</if>> <span class="blue">You muster all your willpower, and manage to move your left arm.</span> You shakily place your hand against <<his>> chest and smile. "Nobody <i>is</i> worth this," you say. Your arm falls back to your side. <br><br> <<His>> pupils become pinpricks. "I'm sorry. I'm so sorry. It never should have come to this. It's all my fault." <<He>> steadies <<himself>>, wiping away <<his>> tears. "I'll take responsibility. I'll keep you safe from these delusions. I'll protect you from the world..." <br><br> <<if $worn.neck.name is "familiar collar">> <<His>> hands caress your collar. <<else>> <<His>> hands place something around your neck with a click. <<if $worn.upper.cursed is 1>> <<set _neckRuinedHere to true>> <<set $worn.neck.type.push("broken")>> <<neckruined true>> <<elseif $worn.neck.name isnot "naked">> <<set _neckStrippedHere to true>> <<generalUndress "wardrobe" "neck">> <</if>> <<neckwear 40>> <</if>> <<He>> whispers something, and plants a kiss on your cheek. A brief flash of green highlights your faces. <<if !$hypnosis_traits.devotion>> <<gwylanHypnosis "devotion" 15>> <</if>> <br><br> <span class="red">"...but I must also protect the world from you."</span> <br><br> <<link [[Next|Forest Shop Taken Alt Start]]>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<set $worn.neck.cursed to 1>> <<if !$worn.neck.type.includes("leash")>> <<set $worn.neck.type.push("leash")>> <</if>> <<set $gwylan.wary to 1>> <<set $gwylan.timer.lastSeen to Time.date.timeStamp>> <<He>> lifts <<his>> hand. A ribbon of green light connects it with the collar around your neck. <br><br> "I can not trust that your will is your own. Forgive me, but it must be..." <<he>> leans down and kisses you. <<gwylanKiss>> <br><br> <<He>> withdraws. "...suppressed. Your collar will ensure the hypnosis remains in place <span class="red">indefinitely</span>." <<He>> smiles, but it doesn't reach <<his>> ears. "I hope you find it comfortable. I made it just for you." <<He>> flips up the golden heart-shaped plate. It has your name engraved on it. <<Hes>> right. It is comfortable. So comfortable that your muscles can't help but relax. <br><br> Your mind fills with terrifying submission. You don't want to resist anymore, and it scares you. Your head then throbs, as if the thought of fearing Gwylan was heresy. <br><br> <<hypnosisText "You lay still as <<he>> leans in for another kiss.</span>">> <<His>> emerald eyes, wide open, overtake your vision. <br> <<if $hypnosis_traits.devotion lt 5>> <br> <<gwylanHypnosis "devotion" 25>><br>You slip further. <</if>> <<if $hypnosis_traits.devotion lt 5>> <<gwylanHypnosis "devotion" 25>><br>Further. <</if>> <<if $hypnosis_traits.devotion lt 5>> <<gwylanHypnosis "devotion" 25>><br>Yet further. <</if>> <<if $hypnosis_traits.devotion lt 5>> <<gwylanHypnosis "devotion" 25>><br>It's beautiful. <</if>> <br> You feel something leave you, alongside <<his>> tongue. Gwylan has taken something from you. The thought doesn't scare you anymore, though. <<hypnosisText "<<He>> knows what's best for you. This is all for your sake.">> <br><br> <<He>> smiles. "You'll stay here with me." <<He>> tugs your collar. "Forever. It's the only way to keep everyone safe. It's what we promised each other, my love. And no promise for or against me has ever been broken." <<He>> lays down beside you again, his eyes still staring into yours. "I love you." <br><br> <<He>> snaps <<his>> fingers, and you fall asleep. You know you won't wake up as the same person. <br><br> <<hypnosisText "<span class='red'>But you don't mind.</span>">> <br><br> /* ToDo: Gwylan - soft bad end, and have Gwylan explain the scar afterwards */ <span class="red">DEV NOTE: Not yet implemented.</span> <br><br> <<link [[Next|Forest Shop Entrance]]>><<clotheson>><<endevent>><</link>> <br> <!-- Events that happen when leaving the shop --><<effects>><<set $gwylanSteal to true>> <<if !$gwylanSeen.includes("steal_first")>> Your eyes dart around, looking for Gwylan. The way out seems clear. You hastily make for the exit with your stolen clothes. <br><br> Just before you make it out, the entire store seems to <span class="red">creak</span>. You look down at your feet, searching for loose floorboards, but find nothing. You quickly exit the shop. <<elseif !$gwylanSeen.includes("steal_again")>> Your eyes dart around, looking for Gwylan. The way out seems clear. You hastily make for the exit with your stolen clothes. <br><br> Just before you make it out, the entire store seems to <span class="red">creak</span>. It almost sounds <span class="red">angry</span>. You quickly exit the shop. <<else>> You make a break for the forest shop's exit with your stolen clothes. <span class="red">The floor creaks with each step you take.</span> Several intruding objects poke out from every shelf, wardrobe and piece of esoteric furniture you pass by, which you swear weren't there when you entered. Despite your best efforts, you can't avoid them all. Your clothes are repeatedly caught. <<set $stripintegrity to 120>> <<switch random(1,4)>> <<case 1>><<set $stripobject to "tree branch growing from the woodwork">> <<case 2>><<set $stripobject to "rusty clothing hanger">> <<case 3>><<set $stripobject to "antique paperweight">> <<default>><<set $stripobject to "splintered piece of wood from a shelf">> <</switch>> <<stripobject>> <br><br> You finally stumble out the front door. It slams shut behind you, and you hear a click shortly after. <<set $daily.gwylan.locked to true>> <</if>> <br><br> <<link [[Leave|Forest]]>><<endnpc "Gwylan">><<forestShopLeave>><</link>> <br><<effects>><<set $gwylanSeen.pushUnique("steal_wrap")>> <<underupperwear 37>><<upperwear 185>><<lowerwear 176>><<bind>><<set $gwylan.timer.wrap to new DateTime(Time.date).addDays(14).timeStamp>><<set $daily.gwylan.locked to true>> You're blinded as the doors open, revealing the forest. You're harshly spit out on the grass in front of the shop. You hear a door slam shut behind you, <span class="red">and a lock click into place</span>. <br><br> You struggle to stand, your arms bound behind you by something. You look down. <span class="lewd">You're covered in nothing but gift wrappings.</span> The shop rhythmically creaks from behind you, as if laughing. <br><br> <<specialClothesUnlock "set" "wrap">> <<link [[Leave|Forest]]>><<endevent>><<set $eventskip to 1>><</link>> <br> <!-- End shop exit events --> <!-- Events relating to other NPCs or quests --><<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>> <<gifticon "christmas hat">><<link [[Buy it|Forest Christmas Robin Buy]]>><<money -8000>><<set $christmas_gift_robin to "christmas_unwrapped">><</link>> <br> <</if>> <<getouticon>><<link [[Leave|Forest Shop Entrance]]>><<endevent>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<if ["shop", "garden"].includes(gwylanSchedule())>> You hand Gwylan the cash. <<else>> You leave £80 on the counter for Gwylan. <</if>> <<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 Entrance]]>><<endevent>><</link>> <br><<effects>><<npc Gwylan>><<run statusCheck("Gwylan")>> You prowl around the shop, looking under cloaks, on top of shelves and behind dressing racks. There's a vague sense of organisation, but things are scattered around anyway, so it could be anywhere. You find a few snow globes, but none with anything written on the bottom. <br><br> <<if ["shop", "garden"].includes(gwylanSchedule())>> "Are you looking for something in particular?" Gwylan says from beside you, startling you. <<He>> hadn't made a sound in <<his>> approach. "I know that look in your eye. You have something in mind." <br> <<if $speech_attitude is "meek">> "I'm trying to find a snow globe," you say. <<elseif $speech_attitude is "bratty">> "Yeah, there's a snow globe I'm looking for," you say. <<else>> "I'm looking for a specific snow globe," you say. <</if>> <br> <<He>> grins. "There's plenty of snow globes around, if that's the case." <br> You shake your head. "I need a specific one. It has something written on the bottom." <br><br> Gwylan thinks for a second. "I think I know which one you're talking about. Hold on." <<switch random(1,5)>> <<case 1>> <<He>> flips up a trapdoor in the floor a few feet away and pulls a snow globe out of a hidden compartment. You stare in bemusement. <<case 2>> <<He>> beelines for the shoe section, rummages through the sandals and pulls a snow globe out from the pile. You stare in bemusement. <<case 3>> <<He>> pushes a witch dress out of the way and enters what appears to be a hidden maintenance room. <<He>> emerges holding a snow globe. You stare in bemusement. <<case 4>> <<He>> quickly exits the shop. You see <<him>> reaching into a nearby bush before the door fully closes. <<He>> quickly enters again, holding a snow globe. You stare, bewildered. <<case 5>> <<He>> walks over to a shelf full of snow globes and plucks one out of the bunch. You resist the urge to groan. How did you miss that shelf? <</switch>> <br><br> <<He>> walks back to you and shows you the bottom. There's a string of random letters and numbers you can't understand. "This the one?" You nod. "Good! That'll be £20." <br><br> <<icon "snowgsnowglobelobe.gif">> <<if $money gte 2000>> <<link [[Purchase the snow globe (£20)|Forest Snowglobe Buy]]>><<money -2000>><<endevent>><</link>> <<else>> You can't afford it. <</if>> <<else>> <span class="blue">Maybe you should wait for Gwylan to be around.</span> <</if>> <br> <<getouticon>><<link [[Back|Forest Shop Entrance]]>><<set $pubfame.gwylan.snowglobe to 1>><<endevent>><</link>> <br><<effects>><<wearProp "snowglobe">> <<npc Gwylan>><<person1>> You hand over the money to Gwylan, and <<he>> hands you the snow globe. <<if $pubfame.tasksDone.includes("gwylan") and !$gwylanSeen.includes("mickey_snowglobe") and $gwylan.stage gte 3>> <<set $gwylanSeen.pushUnique("mickey_snowglobe")>><<set $pubfame.gwylan.niceDay to true>> "It's not the first time you asked for a snow globe with a weird code. Is there any chance you're getting that for..." <br><br> You see <<his>> lips prepare to form a name, but <<he>> pauses before it emerges. "Oh, sorry, you don't know their name yet, do you? I almost just did something very rude! Never mind me, tell them to have a nice day." <<else>> "Don't know how you knew there'd be something on the bottom," <<he>> says. "I bet it was looking for you, just as much as you were looking for it!" <</if>> <br><br> <<pubfameComplete "gwylan">> <<link [[Next|Forest Shop Entrance]]>><<endevent>><</link>> <br> <!-- End other NPC and quest events --><<effects>><<run statusCheck("Gwylan")>> <<if !$gwylanSeen.includes("sample")>> You examine the strips of cloth. They're decorated with strange branching patterns. Most are the same size, but one is significantly larger than the rest, around the size of a small rug. <br><br> Many of them are blackened and burnt near the bottom. <<if $world_corruption_hard gte 1>> <<set _charmsCorrupted to Math.ceil($world_corruption_hard / 2)>> <span class="purple"><<Number _charmsCorrupted>></span> of the smaller ones <<pluralise _charmsCorrupted "is" "are">> <span class="purple">stained purple</span>. Some of the others might be too, but it's hard to tell with how damaged they are. <<else>> You don't notice anything unusual about them, though. <span class="green">This fills you with a strange comfort.</span> <</if>> <<if ["shop", "garden"].includes(gwylanSchedule()) and !$gwylanSeen.includes("charms") and !$gwylan.timer.eventShopEnd>> <<set $gwylanSeen.pushUnique("charms")>> <<npc Gwylan>><<person1>> <br><br> "Don't worry about those." Gwylan's voice comes from right behind you, making you jump. "Just some old decorations. They're not for sale." <<He>> steps back into the gloom as quickly as <<he>> arrived. <</if>> <<else>> You examine the measuring charms. <br><br> <<if $world_corruption_hard gte 1>> <span class="purple"><<Number $world_corruption_hard>></span> of the small charms <<pluralise $world_corruption_hard "is" "are">> <span class="purple">stained purple</span>. A faint mist leaks from <<pluralise $world_corruption_hard "it" "them">>, into the larger charm at the center. <<else>> <span class="green">None of the small charms have stained purple.</span> <</if>> You look closer at the larger charm. On both the left and right sides of it, ten black lines have been sewn in at even intervals. <<if $world_corruption_soft is 0>> However, <span class="green">there's no stain on it at all.</span> <<elseif $world_corruption_soft lt 10>> The purple stain <span class="teal">doesn't even reach the first line.</span> <<else>> <<set _softCorruption to Math.ceil($world_corruption_soft / 10)>> <<switch _softCorruption>> <<case 10 9>><<set _corruptionColour to "red">> <<case 8 7>><<set _corruptionColour to "pink">> <<case 6 5>><<set _corruptionColour to "purple">> <<case 4 3>><<set _corruptionColour to "blue">> <<default>><<set _corruptionColour to "teal">> <</switch>> A purple stain creeps up from the bottom, reaching the <span @class="_corruptionColour"><<if _softCorruption is 10>>tenth<<else>><<print ordinalWritten(_softCorruption)>><</if>> line</span>. <</if>> <br><br> <<measuringcharmsimage>> <<if $world_corruption_soft lte 25>> You feel a breeze wash over you, but none of the charms move with it. It's refreshing and smells of the sea, but carries an anxious uncertainty. The shop creaks. <br><br> You reach out and touch one of the clean charms. <<if $world_corruption_hard gte 3>> Suddenly, you notice more charms hanging all around you. They're all different. Some are made from twigs, others from a thick sinewy substance. <span class="blue">All of them, even those with no discernible edges or points, feel like they're pointing towards the measuring charms. Each one is a mystery, a new uncertainty, a variable unaccounted for.</span> <<elseif $world_corruption_hard gt 0>> Suddenly, you notice more charms hanging all around you. They're all different, but most are made from twigs. <span class="teal">They remind you of various animals. Some sit in vigilance, while others frolic without a care. The rest are a mystery, something you can't place.</span> <<else>> Suddenly, you notice more charms hanging all around you. They're all made from twigs. <span class="green">They depict faintly familiar scenes of a life you've never known. One of peace. Love. Family. One just out of reach.</span> You shake your head. You know such memories aren't yours, but it's nice to pretend. <</if>> <<elseif $world_corruption_soft lte 99>> You feel a breeze wash over you. The charms blow with it. It's salty, and mixed with the smell of smoke. It reminds you of the docks, or the industrial alleyways. <br><br> You reach out and touch one of the clean charms. Or, perhaps, it settles into your outstretched hand. <<if $world_corruption_hard gte 3>> Suddenly, you notice more charms hanging all around you. They're all different. Some are made from twigs, others from a thick sinewy substance. <span class="purple">All of them, even those with no discernible edges or points, feel like they're pointing towards something outside. Each one is an enigma, or a potential danger.</span> <<elseif $world_corruption_hard gt 0>> Suddenly, you notice more charms hanging all around you. They're all different, but most are made from twigs. <span class="teal">They remind you of various animals. Most sit in vigilance, while others hide. The rest are a mystery, something you can't place.</span> <<else>> Suddenly, you notice more charms hanging all around you. They're all made from twigs. <span class="teal">Together, they depict a gigantic ribcage surrounding you. Your hair stands on end, yet there's a feeling of safety in it.</span> <</if>> <<else>> You feel a hot breeze wash over you, carrying with it the smell of smoke. You look around, briefly worried that the shop is burning. You're alone in the dark, with no blaze in sight. <br><br> More smoke. Your first instinct is to hold your breath, yet your body disobeys. Your lungs yearn to fill with the ashes of burning pleasure. You realise you're not alone after all, yet nobody is here with you. There is a blaze, you just can't see it. You can see the shadows it casts, though. Shadows that dance up the wall, each one extending a clawed hand towards you. <br><br> <span class="red">Is this the way it was always destined to end?</span> You reach for a clean charm, but none of them seem wholly untainted. Your hand burns, as nothing can become clean without another becoming dirty. <<if $world_corruption_hard gte 3>> Suddenly, you notice more charms hanging all around you. They're all different. Some are made from twigs, others from a thick sinewy substance. <span class="red">They depict a world on fire, and the eternal pleasure that will follow. Each one, even those with no discernible edges or points, feel like they're pointing towards you. You feel utterly exposed. They can all see you, they all know you, and they all want to become one with you. Yet, you know nothing about them.</span> <<elseif $world_corruption_hard gt 0>> Suddenly, you notice more charms hanging all around you. They're all different, but most are made from twigs. <span class="purple">They remind you of various animals. Most eye you with lust, while others flee their feral companions. The rest are a mystery, something you can't place.</span> <<else>> Suddenly, you notice more charms hanging all around you. They're all made from twigs. <span class="teal">Together, they depict a gigantic ribcage. Each rib feels like a name you know. Each one shields you from the shadowy figures, erecting a final, desperate barrier.</span> <br><br> Nobody stands at your side. <<if $dissociation gte 1>> <br><br> Nobody embraces you. <br><br> Nobody strokes your head, telling you everything will be alright. <br><br> Nobody fades away, because you were never alone all along. <</if>> <</if>> <</if>> <</if>> <br><br> <<link [[Next|Forest Shop Entrance]]>><<endevent>><</link>> <br><<effects>><<npc Gwylan>> <<set $gwylanSeen.pushUnique("sexToys")>> You approach the unfamiliar cabinet and peek inside it. <span class="lewd">It's filled with unusual devices.</span> Some look like <<= $awareness lte 200 ? "silicone sculptures" : "dildos">> fashioned after fantastical creatures. <<= $awareness lte 200 ? "Some of them have" : "A few of them appear to be buttplugs with">> tails attached. Others are clearly antique: a leather saddle with a phallus affixed to it; a hand-cranked mechanism with an oscillating end; a percussion massager with a thick cord that appears to screw into a lightbulb socket. A fragile sheet of paper tacked to the back of the cabinet claims that its "vibratory massage" cures insomnia, intestinal and digestive disorders, rheumatism, and gout. <br><br> "How did you find this?" a voice from behind you says. <br><br> You jump. "Sorry, I didn't mean to pry," you say, unable to mask your guilt. "I'd just never seen this before, and..." <br><br> "It's fine," Gwylan says. <<Hes>> blushing a little. "That's not what I meant. I'm just... wondering why the shop decided to show you this now? I haven't looked at these in years." <br><br> <<He>> wipes some dust off one of the dildos and examines it. <<if $gwylanSeen.includes("strapOnGifted")>> "I suppose it's reminding me that I have a place to store that gift you gave me. Thank you, again." <<else>> "This is a collection of vintage or novelty items I've picked up over the years. I'll admit, I don't tend to use them on my own. There's plenty of other ways to alleviate any masturbatory urges. But sharing a toy with a fluid-bonded partner... well. It's rather intimate." <<He>> gives you a fond smile. "I suppose it's telling me that it might be time to break them out again. The non-antique ones, anyway. I doubt either of us could get off using some of the more archaic devices here." <</if>> <br><br> <<link [[Next|Forest Shop Sex Toys Intro 2]]>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<He>> puts the dildo back on the cabinet shelf and begins moving them around. "These definitely aren't for sale," <<he>> says, shifting some to the side. <<He>> thinks for a moment before continuing to sort. "These, however... I'd be willing to part with these. They're unsullied, don't worry." <br><br> <<if $settings.analEnabled and (_gwylanTF.tail is "fake" or _gwylanTF.known)>> <<His>> hand hovers over the tailed buttplugs, as if trying to remember whether they've been used before, before decisively shifting them to the left. <br><br> One of the plugs has a fox tail on it. You run a hand over its soft fur and give Gwylan an odd look. "You said you've never used this one before?" <br><br> Gwylan shakes <<his>> head. "No. It's perfectly sanitary, if that's what you're worried about." Before you can elaborate, <<his>> eyes go wide. "Oh! You meant... well, can't a <<personsimple>> have more than one buttplug?" <<He>> looks away and busies <<himself>> with tidying the shelves. <br><br> <<if _gwylanTF.known>> "I don't know, does a certain <<personsimple>> like to pretend to have more than one tail?" You motion to the assorted buttplugs on the shelves, and <<he>> giggles. <br><br> "I'll leave that up to you to figure out." <br><br> <<elseif _gwylanTF.tail is "fake">> "I think your collection answers that question." You motion to the assorted buttplugs on the shelves, and <<he>> giggles. <br><br> "While I don't tend to use sex toys myself, my own fox tail buttplug is an exception," <<he>> admits. "This plug's a different brand. I'm quite attached to my current one, so I've never felt the desire to try another one." <br><br> <</if>> <</if>> "You're welcome to purchase them, if you like," <<he>> says. "The shop showed them to you for a reason, after all.<<if $adultshopunlocked>> Sirris runs a good business, but it's a wide world of adult merchandise, and I'm sure there's holes in <<nnpc_his "Sirris">> collection that I could fill." <<He>> pauses as <<his>> words catch up to <<him>>. "No pun intended.<</if>>" <<His>> cheeks are bright red. "And who knows? Maybe it would be nice to put some to good use. Now that I have a partner to use them with, that is." <<He>> smiles at you. "I'll leave the cabinet open. Feel free to check them out." <br><br> <<link [[Next|Forest Shop]]>><<endevent>><</link>> <br><<set $location to "forest_shop">><<set $outside to 0>><<effects>><<run statusCheck("Gwylan")>> <<npc Gwylan>><<person1>> You feel in control of your body again. <br><br> Gwylan sits you down at the table again. "That little gambit won't work again. I don't know if I'll be able to help you next time." <br><br> <<He>> sits down across from you, and lets out a sigh of relief. <<if $wraith.state is "haunt">> "You've really gone and done it now, <<pcpetname "Gwylan" "name">>. To have the lake spirit's ire?" <<else>> "What in the world did you do to attract the lake spirit's attention?" <</if>> <br><br> You sip the tea. It soothes your pain. <<pain -6>><<arousal -1000>><<lpain>><<larousal>> <br><br> <<if $necklaceThief is "player">> <<link [[Tell Gwylan you took its necklace|Forest Shop Wraith Talk 2]]>><<set $phase to "thief">><</link>> <br> <<elseif $necklaceThief is "diver">> <<link [[Tell Gwylan you drew attention to the lake|Forest Shop Wraith Talk 2]]>><<set $phase to "diver">><</link>> <br> <</if>> <<link [[Say you don't know why it's after you|Forest Shop Wraith Talk 2]]>><<set $phase to "unknown">><</link>> <br> <<link [[Stay silent|Forest Shop Wraith Talk 2]]>><<set $phase to "silent">><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<set $gwylanSeen.pushUnique("bloodmoon")>> <<if $phase is "thief">> <<switch $speech_attitude>> <<case "meek">>"I stole something I shouldn't have, and now it won't leave me alone," you say. <<case "bratty">>"I took a stupid necklace, and it hasn't left me alone since," you say. <<default>>"I think I took something important from it," you say. "A necklace." <</switch>> <br><br> <<He>> covers <<his>> mouth. "Oh, <<pcpetname "Gwylan">>. I doubt I need to tell you how bad that is." <<elseif $phase is "diver">> "I funded Winter's field office at the lake," you say. "That drew a lot of attention to it." <br><br> <<Hes>> silent for a long moment. "It could be worse. A lot worse." <<elseif $phase is "unknown">> "I don't know what it wants with me," you say. <br><br> <<He>> nods. "Not surprising, it's quite the enigmatic entity." <<else>> You stay silent. Gwylan frowns. "I know it's scary, but you're safe now." <</if>> <br><br> <<He>> stands back up. "Names have power, so one must be cautious when referring to it. Although, even were its true name remembered, I don't think anyone could speak it aloud." <br><br> <<He>> touches the wall of the shop. "One safe title for it is the <span class="purple">Ivory Wraith</span>. It's impersonal enough to not grant it any additional presence. The name stuck amidst the more eccentric. The cryptid-obsessed types." <br><br> You lean forward a little. "What exactly is it?" <br><br> <<He>> puts a hand to <<his>> chin. "Well, if you believe the myths, a wraith is typically someone who died recently, or a premonition of someone that will die soon. The Ivory one is an old, old soul, though. It shows up in tales dating back to the middle ages, if not earlier. There's another definition of that word that could fit, that being someone reduced to a pale, thin shadow of their former self." <<He>> starts pacing. <br><br> "It doesn't neatly fit into any category of spirit or apparition. It wails like a banshee, but its gender is always inconsistent or indiscernible, and banshees are typically said to be related to the earth, not water. <<if $wraith.state is "haunt">>It's vengeful like a revenant, and has the red eyes to match.<</if>> It shares some aspects with tales of guardian spirits, and even reminds me of some water spirits from cultures across the sea. I think it's something wholly unique." <<He>> almost sounds excited. "I'd give it a new name myself, but that would make it stronger." <br><br> "It seemed to know you," you say. <br><br> <<He>> looks back to you. "We've shared this forest a long time. More importantly, if it can touch you, it must have some form of attachment to you. On nights like tonight, do yourself a favour and don't sleep. I always stay awake during the blood moon, so you're welcome to stay here a while." <br><br> <<if _gwylanStatus.includes("badEndReady")>> As <<he>> finishes <<his>> words, you find your vision blurring. "In fact, I must insist." <<He>> giggles. <br><br> You fall out of your seat, but <<he>> catches you. <br><br> <<if _gwylanStatus.includes("aurigaScarConfront")>> <<link [[Everything fades to black...|Forest Shop Nowhere Passout]]>><<pass 30>><<endevent>><</link>> <<else>> <<link [[Everything fades to black...|Forest Shop Taken Start]]>><<pass 30>><<endevent>><</link>> <</if>> <<else>> <<He>> returns to the gloom. <br><br> <<link [[Next|Forest Shop Entrance]]>><<endevent>><</link>> <br> <</if>><<set $location to "forest_shop">><<set $outside to 0>><<effects>><<run statusCheck("Gwylan")>> <<npc Gwylan>><<person1>> Gwylan sits you down at a table, before disappearing through a dark doorway. <<He>> quickly returns with some towels, drying you off. <<dry_full>> <br><br> <<He>> brushes off your face with a napkin. <<pain -10>><<llpain>> <br><br> "Sit tight, dear." <<He>> leaves again, and returns with a tray that holds a tea kettle and a cup. <br><br> <<He>> pours you some tea, and sits down opposite you. It soothes your pain. <<pain -6>><<arousal -1000>><<lpain>><<larousal>> <br><br> "You're lucky that you're so interesting. I wouldn't stick my neck out like that for anyone else, you know." <<He>> reaches forward and pinches your cheek. <<if $gwylanSeen.includes("partners")>>"I can't have the Wraith stealing my little treasure."<</if>> <br><br> <<if _gwylanStatus.includes("badEndReady")>> As <<he>> finishes <<his>> words, you find your vision blurring. "What would I do without you here, <<pcpetname "Gwylan">>?" <<He>> giggles. <br><br> You fall out of your seat, but <<he>> catches you. "What... would I do without you?" <br><br> <<if _gwylanStatus.includes("aurigaScarConfront")>> <<link [[Everything fades to black...|Forest Shop Nowhere Passout]]>><<pass 30>><<endevent>><</link>> <<else>> <<link [[Everything fades to black...|Forest Shop Taken Start]]>><<pass 30>><<endevent>><</link>> <</if>> <<else>> <<He>> returns to the gloom. <br><br> <<link [[Next|Forest Shop Entrance]]>><<endevent>><</link>> <br> <</if>><<effects>> <<if $bedGuest is "Gwylan">> Gwylan spoons you in the pet bed, idly stroking your hair. <<hypnosisText "<<nnpc_He 'Gwylan'>> hums gently, making your body feel heavy and tired.">> <<else>> You curl up in the pet bed. There's a big fuzzy blanket folded next to it, which you pull over yourself. <</if>> <br><br> <<if Time.isBloodMoon() or Time.monthDay is Time.lastDayOfMonth and $bedGuest isnot "Gwylan">> <span class="red">The shop groans and creaks, preventing you from getting to sleep.</span> You feel a sudden sense of danger. <br><br> <<if Time.isBloodMoon()>> A beam of red moonlight lands on your face. <<else>> You remember that it's the last day of the month. <</if>> You stand. <br><br> <<link [[Next|Forest Shop Entrance]]>><<endevent>><</link>> <br> <<elseif isGwylanAbsent() is "nobody" and $bedGuest isnot "Gwylan">> You toss and turn for a few moments, before standing back up. <span class="red">You can't hope to sleep while nobody's here.</span> <br><br> <<link [[Next|Forest Shop Entrance]]>><<endevent>><</link>> <br> <<elseif !($worn.neck.name is "familiar collar" and $worn.neck.cursed is 1) and $bedGuest isnot "Gwylan">> You toss and turn for a few moments, your mind unable to quiet down. <br><br> <<if $worn.neck.name is "familiar collar">> You brush your hands against your collar. <<hypnosisText "You can't get comfortable unless you know it's safely locked.">> <<else>> You brush your hands against your neck. <<hypnosisText "You can't get comfortable without Gwylan's collar safely locked around your neck.">> <</if>> This is a bed for a pet, after all. <br><br> You stand back up. <br><br> <<link [[Next|Forest Shop Entrance]]>><<endevent>><</link>> <br> <<else>> It's very comfortable, fitting you <<if $bedGuest is "Gwylan">>both<</if>> easily. You let out a contented sigh and rub the heart on your collar. <br><br> <<nightmareCheck "Forest Shop Dog Bed Sleep">> <<generateSleepLinks "Forest Shop Dog Bed Sleep">> <<if $bedGuest isnot "Gwylan">> <<link [[Climb out|Forest Shop Entrance]]>><<endevent>><</link>> <</if>> <</if>><<set _autosavehere to true>> <<run statusCheck("Gwylan")>> <<sleep>> <<effects>> <<sleepeffects>> <<if isPregnancyEnding()>> <<pregnancyPassout "forestShop">> <<elseif _gwylanCafeWake>> <<npc Gwylan>><<person1>> You wake up to Gwylan gently petting your head. "<<pcPetname "Gwylan" "simple">>, it's breakfast time. Come on, let's go for a walk!" <<He>> kisses you on the cheek. <br><br> <<unset $gwylanbed>> <<hypnosisText "The word 'walk' fills you with vigor and excitement.">> You stand and stretch, and your head ends up finding Gwylan's hand again. <<tiredness -2>><<ltiredness>> <br><br> <<link [[Walk with Gwylan to the cafe (0:15)|Gwylan Walk Cafe Solo]]>><<pass 15>><</link>> <br> <<elseif _gwylanWake>> <<set $bedGuest to "Gwylan">><<set $gwylanbed to true>> <<npc Gwylan>><<person1>>You feel your blanket briefly get lifted, and someone crawls into the pet bed with you. Gwylan spoons you. "Shh... go back to sleep, <<pcpetname "Gwylan" "simple">>." <br><br> <<nightmareCheck "Forest Shop Dog Bed Sleep">> <<generateSleepLinks "Forest Shop Dog Bed Sleep">> <<else>> <<if $nightmares is 1 and $controlled is 0>> <<wakingEffects $sleepHoursTotal>> <<nightmareWake>> You quickly forget the specifics, but the sense of dread lingers. <br><br> <<else>> <<if !_wakingEffect>> <<wakingEffects $sleepHoursTotal>> <</if>> <<if ["dryheaving","nausea"].includes(_wakingEffect)>> <br><br> You slept soundly, but now feel a little rough. <<if $gwylanbed>> Gwylan rubs your back for comfort. <</if>> <br><br> <<elseif ($specialClothesEffects.bimbo.total gte random(100,1000) || $specialClothesEffects.pimp.total gte random(100,1000)) or $arousal gte ($arousalmax / 10) * 9>> <<wetDream>> <<if $gwylanbed>> Gwylan giggles. "Oh my, someone was pent up." <<npcincr Gwylan lust 3>><<gglust>> <br><br> <<He>> returns with some towels and helps you clean up. <</if>> <br><br> <<elseif !_wakingEffect>> You sleep soundly, and wake up refreshed. <<if $gwylanbed>> Gwylan kisses you on the cheek, and leaves you alone in the bed. <</if>> <br><br> <<else>> <br><br> <</if>> <</if>> <<getouticon>><<link [[Get out of bed|Forest Shop Entrance]]>><<endevent>><</link>> <br> <<unset $gwylanbed>> <</if>>/* Todo: Gwylan hunt, organize widgets in file so they make sense, not just order they were written */ <!-- Location special traits: inside: Player can hide inside. Guarantees successful hide, but they can't see, only hear Can't hide for too long against Gwylan. Mannequins can hide inside as well fall: Player can knock it over. Guaranteed to create a tripping hazard in that area, but makes noise and sets .hide to 0 hat: If player is wearing a hat, guaranteed successful hide, but only the first time scatter: Player can scatter items on the floor. Creates a tripping hazard without impacting .hide light: Player can use the light to get someone's attention, making an actor learn where the player is Almost always a bad thing, but good for Eden rescuing player from Gwylan mirror: Player can take a mirror with them, and use the light action if their location is adjacent to a location with light They can also use light on a far-away location, drawing actors attention to that area Lets player see behind them. Maybe also a special interaction with the Wraith/Elkspawn? UPDATE: mirror trait now hard-coded as an item at the tilted vanity noisy: Players can make a noise with this location, alerting actors to their area Searching for items here will also make a noise Actors will also make a noise when searching here, except for the Wraith and Nobody Actor states: roam: picks a random location they haven't been to in the last fifteen turns and pathfinds to it, inherently searching any areas they cross search: picks a random location they haven't been to in the last fifteen turns and pathfinds to it, inherently searching their area and any bordering areas. Only moves every second turn check: pathfinds to a specific area. Used for decoys, etc. They can be distracted out of this. Functionally identical to roam, used to distinguish behavior statue: picks a random location they haven't been to in the last fifteen turns and pathfinds to it, inherently searching any areas they cross. Does not move if they were close to the player recently march: pathfinds to a specific area. Can NOT be distracted away until they reach their destination chase: pathfinds to the area they last saw the target, constantly updating if they see the target again. If the target successfully damages them, they return to roam. If their target successfully hides, they continue until they hit a wall, then roam. If their area is bordering their target's for three turns, they catch the target and force a confrontation guard: waits in their specific location, automatically searching their area and any bordering areas ambush: hiding in the closet/wardrobe, only applicable for mannequins fight: fighting either the player or a non-player target. Cannot be distracted. Fight usually ends with both parties taking 1 damage. For fights with the player, outcome depends on player performance The Wraith and Elkspawn should take no damage from mannequins. Eden should not take damage from mannequins if they were the one to initiate the fight Idea: Eden can initiate and win fights with mannequins from a tile away by shooting them? follow: following a target, otherwise not interacting with them flee: pathfinds to the location as far away from a target as possible, cannot be distracted. Functionally identical to march, replace? guide: pathfinds to a specific area, trying to get the target to follow. Gwylan should do this to guide the player through obstacles hide: stays in an area and does not move, cannot be interacted with toPlayer: pathfinds to the player every turn rush: pathfinds to a specific area, moving two tiles per turn. Once they reach their target location, they either interact with the player if present or begin roaming drag: pathfinds to a specific location, cannot be distracted. Identical to march pathfinding-wise, intended for when actors are physically dragging the player somewhere, like Eden dragging the player to the door The Wraith's "dragging" takes the form of possession. Make into a different state? The only actors that should ever need to be this state are Eden and Wraith. No chance of conflict if two actors both have the drag state hold: stays in one place without moving, holding the player in place null: null as a value, not a string. This is the state for defeated actors; if an actor has a state of null, they cannot do anything and neither the player nor other actors can interact with them Common variables: $shopHunt: The core object where almost all information about the sequence is stored locations: hide: how good that area is for normal hiding. Locations with "inside" and "hat" traits have unique hiding interactions separate from this value special: special properties of that location. See "Location special traits" state: the current state of the location. Whether it's been fallen over, scattered, etc. borders: the borders of the CORE map. x indicates top and bottom edges, y indicates left and right edges shop: door: position: the coordinates where the door is spawned side: north, south, east or west. Just used for the visual map, no gameplay value open: whether the door is open or closed. Could theoretically be used for gameplay, but it's mostly just used for the visual map state: unused, remove? mannequins: how many mannequins the shop has in "stock". Only a limited number of mannequins can spawn per hunt footsteps: whether the player makes footsteps, causing them to make a small audio lure with each step (unless they move slowly?) shuffle: count: how many times the map has been reshuffled before max: how many times the map is allowed to be reshuffled in that encounter history: an array of the turns the map has reshuffled, with [0] being the most RECENT shuffle turn, not the first item: an object. Each item's location is stored as a string player: hide: how good the player's current hiding spot is. Derived from the location's .hide value, sometimes overwritten by context-specific things (noisy hiding spots, hiding inside the wardrobe/closet, etc) points: how many points the player has earned. Intended for friendly hide-and-seek games with Gwylan action: the player's current action. Also tracked as _act at the start of each turn state: unused, remove? position: the player's location, as coordinates seen: an array of things the player has seen, used for tracking what events the player has encountered history: a fifteen-turn log of the player's positions actions and hide values. Used to make sure players aren't camping in the closet or wardrobe map: a 2D array mimicking the real map, but instead keeping track of what areas the player has seen, searched, etc commands: a mechanic unique to having Gwylan as an enemy. Gwylan can forbid players with Hypnotic Devotion from taking certain actions; those actions are tracked here actors: id: the actor's numerical ID, also their array number obstaclePass: what types of obstacles the actor can pass through. At 0, actors cannot pass through any obstacles; at 1, actors can pass through "holes" (walls within the shops border); at 2, actors can pass through all walls stun: what an actor is prevented from doing, and for how long grip: various stats related to the checks needed to escape in the "drag" or "grip" states chaseTimer: how long the actor has been chasing the player. Counts down each turn, forces a confrontation once it hits zero points: how many points the actor has earned. Intended for friendly hide-and-seek games with Gwylan type: the internal type of actor. "eden", "gwylan", "mannequin", etc state: the actor's current state. See "Actor states" target: the actor's current target, used to determine their pathfinding role: the actor's role in the encounter. "enemy", "neutral" or "ally" team: an actor's allegiance. Used for determining when two enemy actors are also enemies with each other or not pronoun: the actor's pronoun used for writing scenes history: a fifteen-turn log of the actor's positions, states, locations and what they found. Used to determine behavior. Do not update to 18 or longer; actor pathfinding relies on there being at least one location that hasn't been visited in the history log seen: things the actor has seen, used to make sure they only trip over certain hazards once, only fall for the hat stand hiding trick once, etc movement: an array of "steps", used to determine the actor's movement. For example, if the first entry is [-1,0], that will be applied to their position to move them north position: the actor's location, as coordinates health: how much health they have name: the actor's name, to be printed in writing scenes title: whether the actor's name is a title or a name. The difference between "mannequin" and "the mannequin" footsteps: whether the actor makes footsteps when they walk. At 0, they never make footsteps. At 2, they always make footsteps. At 1, it depends on context; see shopHuntFootstepsHeard() ammo: how much of a resource an actor has left in their current magazine. Currently only used by Eden, 0-10 actorsArchive: identical to actors, but instead of tracking all active actors, it tracks all defeated actors. Once an actor's health property reaches zero, they're removed from the main actors array and put here context: the specific scene this hunt is following turns: how long the hunt has lasted. One passage means one turn. Actors take actions every turn, unless the player is fighting, in which case they only act every three turns lightTarget/ambushTarget/searchTarget: The target for certain specific actions $shopLocs: an array of all locations in the shop. Only stores names, used as a base for other variables $shopHuntMap: a 2D array of the map. [0][0] is top left, incrementing the first number moves down, incrementing the second number moves right $actorFound: an array with one entry for each actor, listing all the things the actor has found in this turn separated by area. Kept separate from their $shopHunt.actors variable. It's a story variable because it needs to persist to the beginning of the next turn, to be logged in the history $actorEvents: an array with one entry for each actor, listing all the things the actor has done in this turn. Kept separate from their $shopHunt.actors variable. It's a story variable because it needs to persist to the beginning of the next turn, to be logged in the history (Has not been used so far. Remove?) $shopHuntActive: which actor is currently "active" for the sake of <<shopHuntActorName>> and <<shopHuntPronoun>>. Essentially used the same as $index or $pronoun $shopHuntMess: an object that persists after the shop hunt is finished, keeping track of how much damage was done. Could be used for future events value: the numerical value of how much mess has been made events: specific events that occurred during the shop hunt, such as knocking over locations $mannequinDescs: an array of possible mannequin descriptors. Every time a mannequin is generated, one is plucked from the array, to ensure no two mannequins get the same description $gridConsoleEnable: a debug variable, used to control whether or not the map prints in the browser console $xSideOverride/$ySideOverride: debug variables, used to control whether the map is forced to generate with the length or width a specific size --> <<widget "shopHuntInit">> <<set $shopLocs to ["overspillingChest","hangingBasket","rottingCloset","squeakyRotatingRack","darkScreen","antiqueWardrobe","strangeIroningBoard","molderingHutch","rustedHangers","duskyDrawer","spindlyHatStand","gnarledWall","glowingBox","bentUmbrellaStand","tiltedVanity","wornStocking","decayingShelf","creakyCabinet"]>> <<set $_locationBase to { hide: 1, special: [], state: [], }>> <<set $_locationsUnique to { hide: { overspillingChest: 2, hangingBasket: 2, squeakyRotatingRack: 3, darkScreen: 3, antiqueWardrobe: 2, strangeIroningBoard: 3, molderingHutch: 2, rustedHangers: 3, duskyDrawer: 3, bentUmbrellaStand: 2, tiltedVanity: 2, decayingShelf: 2, creakyCabinet: 2 }, special: { hangingBasket: ["fall","scatter"], rottingCloset: ["inside"], squeakyRotatingRack: ["noisy"], antiqueWardrobe: ["inside"], strangeIroningBoard: ["fall"], spindlyHatStand: ["fall","hat"], gnarledWall: ["scatter"], glowingBox: ["light"], bentUmbrellaStand: ["fall"], wornStocking: ["scatter"], decayingShelf: ["scatter"], creakyCabinet: ["noisy"] } }>> <<set $shopHunt to { locations: {}, borders: { x: [0,0], y: [0,0] }, shop: { door: { position: [0,0], side: "", open: false }, shuffle: { count: 0, max: 0, history: [] }, state: "", mannequins: 6, footsteps: _args[0] is "kidnap", }, item: {}, player: { hide: 0, points: 0, action: "", state: "active", position: [0,0], seen: [], history: [], }, commands: [], actors: [], actorsArchive: [], context: _args[0], turns: 0 }>> <<switch _args[0]>> <<case "kidnap" "rescue" "garden">> <<set $shopHunt.shop.shuffle.max to 1>> <<case "game">> <!-- For the game, the shop shuffles after each point earned, so a hard-set "max" value is pointless --> <<set $shopHunt.shop.shuffle.max to 999>> <</switch>> <<run $shopLocs.forEach(x => { $shopHunt.locations[x] = clone($_locationBase); if ($_locationsUnique.hide[x]) $shopHunt.locations[x].hide = $_locationsUnique.hide[x]; if ($_locationsUnique.special[x]) $shopHunt.locations[x].special = $_locationsUnique.special[x]; })>> <<set $actorFound to {}>> <<set $actorEvents to {}>> <<set $shopHuntActive to 0>> <<set $mannequinDescs to ["hatted","bespectacled","fashionable","chic","slick","dapper","natty","trendy","swimsuit-wearing","undies-wearing","cloaked","varnished","comfortable","gangly"]>> <<if $gwylanSeen.includes("fox_plushie_gwylan")>> <<set $mannequinDescs.push("giant")>> <</if>> <<shopHuntShuffle "init">> <<set $shopHuntMess to { value: 0, events: [] }>> <</widget>> <<widget "shopHuntFight">> <<set $shopHunt.player.state to "fight">> <<set $shopHunt.player.action to _args[1] or "fight">> <<shopHuntActorSetState _args[0] "fight" "player">> <</widget>> <<widget "shopHuntShuffle">> <<if $shopHunt.shop.shuffle.count gte $shopHunt.shop.shuffle.max and _args[0] isnot "init">> <span class="red">ERROR: shopHuntShuffle called more than max allotted times! Shuffled <<print $shopHunt.shop.shuffle.count + 1>> times in $shopHunt.context event ($shopHunt.shop.shuffle.max shuffles permitted)</span> <br><br> <</if>> <<set $_locs to clone($shopLocs)>> <<if _args[0] isnot "init">> <<set $_locsMemory to {}>> <<for $_i range $shopLocs>> <<set $_memCoords to shopHuntCoords($_i)>> <<set $_locsMemory[$_i] to $shopHunt.player.map[$_memCoords[0]][$_memCoords[1]].searched>> <</for>> <<set $_locs to $_locs.filter(x => x !== $shopHunt.shop.door.position)>> <<set $shopHunt.shop.shuffle.count++>> <<set $_playerLoc to shopHuntFind("player")>> <<for $_i to 0; $_i lt $shopHunt.actors.length; $_i++>> <<if !!$shopHunt.actors[$_i].state>> <<shopHuntStun $_i 1 "all">> <<set $shopHunt.actors[$_i].movement to []>> <</if>> <</for>> <<switch _args[0]>> <<case "gardenKey">> <span class="black">The shop rumbles.</span> You look around as the shelves rattle and the few lights flicker. In the confusion, you bump into <<shopHuntActorName $shopHunt.item.key>>. Its wooden face is the last thing you see as the gloom envelops you. <<case "edenDoor">> <<set $_eden to $shopHunt.actors.find(x => x.type === "eden").id>> <<shopHuntActorSetState $_eden "roam">> <span class="black">The shop rumbles.</span> The gloom closes in on you and <<shopHuntActorName $_eden>>. <<shopHuntPronoun "His">> grip on your arm tightens painfully, before suddenly vanishing. <<shopHuntPronoun "His">> shout becomes muffled, as if you're hearing through wool. <<case "gameFall">> <<shopHuntPronoun "He">> yelps, rubbing <<shopHuntPronoun "his">> head. <<if $gwylanSeen.includes("shopHunt_fallPoint")>> "<<pcPetname "Gwylan" "naughty">>, just tag me normally!" <<shopHuntPronoun "he">> complains <span class="black">as the gloom closes in on you</span>. <<else>> <<set $gwylanSeen.pushUnique("shopHunt_fallPoint")>> "That doesn't count as a point," <<shopHuntPronoun "he">> pouts. <span class="black">The shop rumbles.</span> The gloom closes in on you. "Wait, what do you mean that co—" <<shopHuntPronoun "His">> protest becomes muffled, as if you're hearing through wool. <</if>> <<default>> <span class="black">The shop rumbles.</span> The gloom closes in on you. <</switch>> <br><br> When the gloom clears away, you open your eyes. You're still by the <<shopHuntLocName $_playerLoc>>, but <span class="pink">your surroundings seem entirely different</span>. <br><br> <</if>> <<set $_xSide to [2,3,3,4,4,5,5,6,6,7].random()>> <<if $xSideOverride>> <<set $_xSide to $xSideOverride>> <</if>> <<switch $_xSide>> <<case 2>> <<set $_ySide to [5,6,7].random()>> <<set $shopHunt.borders.y to [[2,3],[3,4]].random()>> <<case 3>> <<set $_ySide to [4,5,6].random()>> <<set $shopHunt.borders.y to [2,4]>> <<case 4>> <<set $_ySide to [3,4].random()>> <<set $shopHunt.borders.y to [[1,4],[2,5]].random()>> <<case 5>> <<set $_ySide to [2,3].random()>> <<set $shopHunt.borders.y to [1,5]>> <<case 6>> <<set $_ySide to [2,3].random()>> <<set $shopHunt.borders.y to [[0,5],[1,6]].random()>> <<case 7>> <<set $_ySide to 2>> <<set $shopHunt.borders.y to [0,6]>> <</switch>> <<if $ySideOverride>> <<set $_ySide to $ySideOverride>> <</if>> <<switch $_ySide>> <<case 2>> <<set $shopHunt.borders.x to [[2,3],[3,4]].random()>> <<case 3>> <<set $shopHunt.borders.x to [2,4]>> <<case 4>> <<set $shopHunt.borders.x to [[1,4],[2,5]].random()>> <<case 5>> <<set $shopHunt.borders.x to [1,5]>> <<case 6>> <<set $shopHunt.borders.x to [[0,5],[1,6]].random()>> <<case 7>> <<set $shopHunt.borders.x to [0,6]>> <</switch>> <<if $gridConsoleEnable>> <<run console.log($_xSide + " by " + $_ySide + " (" + $_xSide * $_ySide + ")")>> <<run console.log("[" + [$shopHunt.borders.y[0], $shopHunt.borders.x[0]] + "] to [" + [$shopHunt.borders.y[1], $shopHunt.borders.x[1]] + "]")>> <</if>> <<set $shopHuntMap to [ ["","","","","","",""], ["","","","","","",""], ["","","","","","",""], ["","","","","","",""], ["","","","","","",""], ["","","","","","",""], ["","","","","","",""] ]>> <<set $_posBase to { seen: 0, searched: false, known: [] }>> <<set $shopHunt.player.map to [ [clone($_posBase),clone($_posBase),clone($_posBase),clone($_posBase),clone($_posBase),clone($_posBase),clone($_posBase)], [clone($_posBase),clone($_posBase),clone($_posBase),clone($_posBase),clone($_posBase),clone($_posBase),clone($_posBase)], [clone($_posBase),clone($_posBase),clone($_posBase),clone($_posBase),clone($_posBase),clone($_posBase),clone($_posBase)], [clone($_posBase),clone($_posBase),clone($_posBase),clone($_posBase),clone($_posBase),clone($_posBase),clone($_posBase)], [clone($_posBase),clone($_posBase),clone($_posBase),clone($_posBase),clone($_posBase),clone($_posBase),clone($_posBase)], [clone($_posBase),clone($_posBase),clone($_posBase),clone($_posBase),clone($_posBase),clone($_posBase),clone($_posBase)], [clone($_posBase),clone($_posBase),clone($_posBase),clone($_posBase),clone($_posBase),clone($_posBase),clone($_posBase)] ]>> <<if _args[0] isnot "init">> <<set $_borderCount to $_xSide * $_ySide - 5>> <<set $_doorNum to random($_locs.length - $_borderCount, $_locs.length)>> <</if>> <<set $_hole to Math.clamp(6 - $world_corruption_hard, 1, 6)>> <<for $_x to 0; $_x lt $_xSide; $_x++>> <<for $_y to 0; $_y lt $_ySide; $_y++>> <<if $shopHunt.borders.y.includes($shopHunt.borders.y[0] + $_x) or $shopHunt.borders.x.includes($shopHunt.borders.x[0] + $_y)>> <<if $_doorNum and $_locs.length lte $_doorNum>> <<set $shopHuntMap[$shopHunt.borders.x[0] + $_y][$shopHunt.borders.y[0] + $_x] to $shopHunt.shop.door.position>> <<set $_doorNum to false>> <<else>> <<set $_newLoc to $_locs.pluck()>> <<set $shopHuntMap[$shopHunt.borders.x[0] + $_y][$shopHunt.borders.y[0] + $_x] to $_newLoc>> <</if>> <<elseif random(0,$_hole) is $_hole>> <<set $_newLoc to $_locs.pluck()>> <<set $shopHuntMap[$shopHunt.borders.x[0] + $_y][$shopHunt.borders.y[0] + $_x] to $_newLoc>> <<set $_hole-->><<set $_hole to Math.clamp($_hole, 1, 100)>> <<else>> <<set $_hole++>><<set $_hole *= 2>> <</if>> <</for>> <</for>> <<set $_available to []>> <<for $_x to 0; $_x lt 7; $_x++>> <<for $_y to 0; $_y lt 7; $_y++>> <<if $shopHuntMap[$_x][$_y] is "" and Object.values(shopHuntBordering([$_x, $_y], "noDoor")).length gte 1>> <<set $_available.push([$_x, $_y])>> <</if>> <</for>> <</for>> <<if $_locs.length gte 1>> <<if $gridConsoleEnable>> <<run console.log("Remainder: " + $_locs.length + " (" + $_locs.join(", ") + ")")>> <</if>> <<for $_i range $_locs>> <<set $_this to $_available.pluck()>> <<set $shopHuntMap[$_this[0]][$_this[1]] to $_i>> <</for>> <</if>> <<if _args[0] is "init">> <<set $shopHunt.item.key to shopHuntEmpty().random()>> <<set $shopHunt.item.mirror to "tiltedVanity">> <<set $shopHunt.shop.door.position to shopHuntWalls().random()>> <<set $_locsFromDoor to shopHuntLocationsByDistance($shopHunt.shop.door.position, "steps")>> <<switch $shopHunt.context>> <<case "garden">> <!-- Player position set in passage --> <<case "game">> <<set $shopHunt.player.position to shopHuntCoords(shopHuntEmpty().random())>> <<case "rescue" "kidnap">> <<set $shopHunt.player.position to shopHuntCoords($_locsFromDoor[0][0])>> <<default>> <<set $shopHunt.player.position to shopHuntCoords($_locsFromDoor[0][0])>> <</switch>> <<else>> <<set $shopHunt.player.position to shopHuntCoords($_playerLoc)>> <<if $gridConsoleEnable>> <<run console.log("Player location: [" + shopHuntCoords($_playerLoc) + "] (" + $_playerLoc + ")")>> <</if>> <<for $_s range Object.keys($_locsMemory)>> <<set $shopHunt.player.map[shopHuntCoords($_s)[0]][shopHuntCoords($_s)[1]].searched to $_locsMemory[$_s]>> <</for>> <<set _locRaw to shopHuntFind("player")>> <<set _loc to clone($shopHunt.locations[_locRaw])>> <<set _bordering to shopHuntBordering(shopHuntCoords(_locRaw))>> <<set $shopHunt.player.history[0].shuffle to true>> <<for $_i to 0; $_i lt $shopHunt.actors.length; $_i++>> /* Todo: context specific shuffles? Enemy Eden being sent to the furthest possible spot from PC, etc */ <<if !!$shopHunt.actors[$_i].state>> <<set $_actorNewLoc to shopHuntEmpty().random()>> <<set $shopHunt.actors[$_i].position to shopHuntCoords($_actorNewLoc)>> <</if>> <</for>> <<run shopHuntSeeLoc()>> <</if>> <<set $shopHunt.shop.door.side to Object.keys(shopHuntBordering(shopHuntCoords($shopHunt.shop.door.position), "wall")).filter(x => shopHuntBordering(shopHuntCoords($shopHunt.shop.door.position), "wall")[x] === "wall" && shopHuntBordering(shopHuntCoords($shopHunt.shop.door.position), "hole")[x] !== "hole").random()>> <<if $gridConsoleEnable and true>> <<shopHuntDebug "capWalls">> <</if>> <<set $shopHunt.shop.shuffle.history.unshift($shopHunt.turns)>> <</widget>> <<widget "shopHuntDebug">> <<if $debug and $shopHuntMinigameTest>> <<if $gridConsoleEnable>> <<run console.log("map: player's location")>> <<set $_console to [[],[],[],[],[],[],[]]>> <<for $_x to 0; $_x lt 7; $_x++>> <<for $_y to 0; $_y lt 7; $_y++>> <<if doArraysMatch([$_x,$_y],$shopHunt.player.position)>> <<set $_console[$_x].push($shopHuntMap[$_x][$_y].split(/(?=[A-Z])/)[0].substring(0,3).padStart(3, "x x").toUpperCase())>> <<elseif between($_x, $shopHunt.borders.x[0], $shopHunt.borders.x[1]) and between($_y, $shopHunt.borders.y[0], $shopHunt.borders.y[1])>> <<if shopHuntIsHole([$_x, $_y])>> <<set $_console[$_x].push($shopHuntMap[$_x][$_y].split(/(?=[A-Z])/)[0].substring(0,3).padStart(3, "x_x"))>> <<elseif between($_x, $shopHunt.borders.x[0], $shopHunt.borders.x[1], true) and between($_y, $shopHunt.borders.y[0], $shopHunt.borders.y[1], true) or !_args.includes("capWalls")>> <<set $_console[$_x].push($shopHuntMap[$_x][$_y].split(/(?=[A-Z])/)[0].substring(0,3).padStart(3, "x x"))>> <<else>> <<set $_console[$_x].push($shopHuntMap[$_x][$_y].split(/(?=[A-Z])/)[0].substring(0,3).padStart(3, "x x").toUpperFirst())>> <</if>> <<else>> <<set $_console[$_x].push($shopHuntMap[$_x][$_y].split(/(?=[A-Z])/)[0].substring(0,3).padStart(3, "x x"))>> <</if>> <</for>> <<run console.log($_console[$_x])>> <</for>> <</if>> <<if _args.includes("options")>> <br><br> <span class="orange">DEBUG OPTIONS</span> <br> <<link [[Mark every location as seen|Forest Shop Hunt]]>> <<shopHuntAction "debug">> <<for _x to 0; _x lt 7; _x++>> <<for _y to 0; _y lt 7; _y++>> <<if $shopLocs.includes($shopHuntMap[_x][_y])>> <<set $shopHunt.player.map[_x][_y].seen to 2>> <<elseif Object.keys(shopHuntBordering([_x, _y])).length gte 1>> <<set $shopHunt.player.map[_x][_y].seen to 1>> <</if>> <</for>> <</for>> <</link>> <br> <<link [[Mark every location as unseen|Forest Shop Hunt]]>> <<shopHuntAction "debug">> <<for _x to 0; _x lt 7; _x++>> <<for _y to 0; _y lt 7; _y++>> <<if Object.values(shopHuntBordering(shopHuntCoords(shopHuntFind("player")))).includes($shopHuntMap[_x][_y])>> <<set $shopHunt.player.map[_x][_y].seen to 1>> <<elseif $shopHuntMap[_x][_y] isnot shopHuntFind("player")>> <<set $shopHunt.player.map[_x][_y].seen to 0>> <</if>> <</for>> <</for>> <</link>> <br><br> <<set $shopHuntDebug to {}>> <<set $shopHuntDebug.actors to []>> <<for _i to 0; _i lt $shopHunt.actors.length; _i++>> <<if !!$shopHunt.actors[_i].state>> <<if $shopHunt.actors[_i].type is "mannequin">> <<set $shopHuntDebug.actors.push("mannequin" + $shopHunt.actors[_i].mannequinId)>> <<else>> <<set $shopHuntDebug.actors.push($shopHunt.actors[_i].type)>> <</if>> <</if>> <</for>> <<set $shopHuntDebug.actorSelected to $shopHuntDebug.actors[0]>> Actor: <<listbox "$shopHuntDebug.actorSelected" autoselect>> <<optionsfrom $shopHuntDebug.actors>> <</listbox>> <br> Location: <<set $shopHuntDebug.location to $shopLocs.random()>> <<listbox "$shopHuntDebug.location" autoselect>> <<optionsfrom $shopLocs>> <</listbox>> <br> State: <<set $_debugStates to ["roam", "search", "check", "march", "chase", "guard", "ambush", "fight", "follow", "flee", "guide", "hide", "rush", "drag", "toPlayer", "hold"]>> <<set $shopHuntDebug.state to $_debugStates.random()>> <<listbox "$shopHuntDebug.state" autoselect>> <<optionsfrom $_debugStates>> <</listbox>> <br><br> <<link [[Send actor to location|Forest Shop Hunt]]>> <<shopHuntActorSetState $shopHuntDebug.actors.indexOf($shopHuntDebug.actorSelected) "march" $shopHuntDebug.location>> <<unset $shopHuntDebug>> <</link>> <br> <<link [[Set actor to state|Forest Shop Hunt]]>> <<set $shopHunt.actors[$shopHuntDebug.actors.indexOf($shopHuntDebug.actorSelected)].state to $shopHuntDebug.state>> <<if $shopHuntDebug.state is "chase">> <<set $shopHunt.actors[$shopHuntDebug.actors.indexOf($shopHuntDebug.actorSelected)].chaseTimer to 4>> <<set $shopHunt.actors[$shopHuntDebug.actors.indexOf($shopHuntDebug.actorSelected)].target to "player">> <<elseif $shopHuntDebug.state is "guide">> <<set $shopHunt.actors[$shopHuntDebug.actors.indexOf($shopHuntDebug.actorSelected)].target to $shopHuntDebug.location>> <</if>> <<unset $shopHuntDebug>> <</link>> <br><br> <<if $gridConsoleEnable>> <<link [[Disable browser console messages|Forest Shop Hunt]]>><<unset $gridConsoleEnable>><<shopHuntAction "debug">><</link>> <<run console.log("END OF TURN ", $shopHunt.turns)>> <<run console.log("=================================================")>> <<else>> <<link [[Enable browser console messages|Forest Shop Hunt]]>><<set $gridConsoleEnable to true>><<shopHuntAction "debug">><</link>> <</if>> <br> <</if>> <</if>> <</widget>> <<widget "shopHuntEnd">> <<set $_end to _args[0]>> <<if $shopHunt.actors.filter(x => x.type is "eden" and x.role is "enemy").length gte 1 and ["rescue","kidnap"].includes($shopHunt.context)>> <<if ["gwylanRescue","gwylanKidnap"].includes($_end)>> <<gwylanRescueStats true "EdenShop">> <<elseif $_end is "edenKidnap">> <<gwylanRescueStats false "EdenShop">> <</if>> <</if>> <<unset $shopHunt>> <<unset $shopLocs>> <<unset $shopHuntMap>> <<unset $actorFound>> <<unset $actorEvents>> <<unset $shopHuntActive>> <<unset $mannequinDescs>> /* Do not add $shopHuntMess, this variable is intentionally preserved for use in later events */ <</widget>> <<widget "shopHuntMess">> <<set $_value to _args[0] or 1>> <<set $_events to _args[1] or []>> <<set $shopHuntMess.value += $_value>> <<set $shopHuntMess.events to $shopHuntMess.events.concatUnique($_events)>> <</widget>> <<widget "shopHuntCreateActorMannequin">> <<set _mannequinCount to Math.clamp(_args[0] or 1, 0, $shopHunt.shop.mannequins)>> <<if _mannequinCount gte 1>> <<for _m to 0; _m lt _mannequinCount; _m++>> <<if $shopHunt.shop.mannequins is 1 and $shopHunt.context isnot "garden">> <<set $_desc to "masked">> <<else>> <<set $_desc to $mannequinDescs.pluck()>> <</if>> <<shopHuntCreateActor "mannequin" _args[1] _args[2] $_desc>> <<set $shopHunt.actors[$shopHunt.actors.length - 1].mannequinId to $shopHunt.actors.filter(x => x.type is "mannequin").length - 1>> <<set $shopHunt.shop.mannequins-->> <</for>> <</if>> <</widget>> <<widget "shopHuntActorSearch">> <<switch $shopHunt.actors[_args[0]].state>> <<case "roam" "check" "guide" "toPlayer" "statue" "rush" "alert">> <<if $shopHunt.actors[_args[0]].type is "elkspawn" and $shopHunt.actors[_args[0]].state isnot "rush" or $shopHunt.actors[_args[0]].state is "alert" and $shopHunt.actors[_args[0]].target is shopHuntFind(_args[0])>> <<set $_range to 2>> <<else>> <<set $_range to 1>> <</if>> <<case "search" "guard" "chase" "follow">> <<set $_range to 2>> <<case "march" "ambush" "fight" "flee" "hide" "drag" "hold" null>> <<exit>> <<default>> <span class="red">Error: Invalid state for actor _args[0]: $shopHunt.actors[_args[0]].state. Please report this!</span> <<exit>> <</switch>> <<set $_searchField to [shopHuntFind(_args[0])]>> <<if $_range is 2>> <<set $_searchField to $_searchField.concat(Object.values(shopHuntBordering($shopHunt.actors[_args[0]].position)))>> <</if>> <<for $_i range $_searchField>> <<set $actorFound[_args[0]][$_i] to shopHuntContains($_i).filter(x => !["player",_args[0]].includes(x))>> <<run shopHuntCheckHide(_args[0], $_i)>> <</for>> <</widget>> <<widget "shopHuntCreateActor">> <<set $_actorNum to $shopHunt.actors.length>> <<set $shopHunt.actors.push({ id: $_actorNum, obstaclePass: 0, stun: {}, grip: { min: 2000, max: 10000, step: 1000, progress: 0, stages: 0 }, chaseTimer: 0, points: 0, type: _args[0].split(" ").pop().toLowerCase(), state: "roam", target: "", role: _args[1] or "enemy", pronoun: C.npc[_args[0]]?.pronoun or "i", history: [], seen: [], movement: [], position: _args[2] instanceof Array ? _args[2] : shopHuntCoords($shopLocs.includes(_args[2]) ? _args[2] : _args[2] isnot undefined ? shopHuntFind(_args[2]) : shopHuntEmpty().random()), })>> <<switch _args[0]>> <<case "Eden">> <<set $shopHunt.actors[$_actorNum].health to 5>> <<set $shopHunt.actors[$_actorNum].name to C.npc.Eden.name_known ? "Eden" : "<<nnpc_title 'Eden'>>">> <<set $shopHunt.actors[$_actorNum].title to C.npc.Eden.name_known ? false : true>> <<set $shopHunt.actors[$_actorNum].footsteps to 1>> <<set $shopHunt.actors[$_actorNum].team to "eden">> /* Lee Enfield has a 10 round magazine, but Eden has usually fired a few shots before this event. At least 1, up to 3. */ <<set $shopHunt.actors[$_actorNum].ammo to random(5, 7)>> <<set $shopHunt.actors[$_actorNum].grip to { min: 4000, max: 10000, step: 3000 }>> <<case "Gwylan">> <<set $shopHunt.actors[$_actorNum].health to 3>> <<set $shopHunt.actors[$_actorNum].name to "Gwylan">> <<set $shopHunt.actors[$_actorNum].footsteps to 1>> <<set $shopHunt.actors[$_actorNum].obstaclePass to 1>> <<set $shopHunt.actors[$_actorNum].team to "gwylan">> <<case "mannequin">> <<set $shopHunt.actors[$_actorNum].health to 1>> <<set $shopHunt.actors[$_actorNum].name to _args[3] + " mannequin">> <<set $shopHunt.actors[$_actorNum].footsteps to 1>> <<set $shopHunt.actors[$_actorNum].title to true>> <<set $shopHunt.actors[$_actorNum].grip.max to 5000>> <<if _args[3] is "masked">> <<set $shopHunt.actors[$_actorNum].health to 2>> <<set $shopHunt.actors[$_actorNum].obstaclePass to 1>> <<set $shopHunt.actors[$_actorNum].footsteps to 0>> <<set $shopHunt.actors[$_actorNum].grip.max to 5000>> <<set $shopHunt.actors[$_actorNum].grip.min to 2000>> <<elseif _args[3] is "giant">> <<set $shopHunt.actors[$_actorNum].name to "giant fox plushie">> <<set $shopHunt.actors[$_actorNum].footsteps to 0>> <<set $shopHunt.actors[$_actorNum].grip.step to 5000>> <</if>> <<if $shopHunt.actors[$_actorNum].role is "neutral">> <<set $shopHunt.actors[$_actorNum].state to "guard">> <</if>> <<set $shopHunt.actors[$_actorNum].team to "gwylan">> <<case "Elkspawn">> /* Todo: Gwylan hunt, what stats should the Elkspawn have? */ <<set $shopHunt.actors[$_actorNum].health to 999>> <<set $shopHunt.actors[$_actorNum].name to "Elkspawn">> <<set $shopHunt.actors[$_actorNum].footsteps to 2>> <<set $shopHunt.actors[$_actorNum].title to true>> <<set $shopHunt.actors[$_actorNum].team to "elkspawn">> <<shopHuntMess 20 "elkspawn">> <<case "Ivory Wraith">> <<set $shopHunt.actors[$_actorNum].health to 5>> <<set $shopHunt.actors[$_actorNum].name to "pale figure">> <<set $shopHunt.actors[$_actorNum].disguise to false>> <<set $shopHunt.actors[$_actorNum].footsteps to 0>> <<set $shopHunt.actors[$_actorNum].obstaclePass to 2>> <<set $shopHunt.actors[$_actorNum].title to true>> <<set $shopHunt.actors[$_actorNum].team to "wraith">> <<case "nobody">> /* Support for nobody isn't really done. Unsure if nobody will ever actually get involved in shop hunts */ <<set $shopHunt.actors[$_actorNum].health to 999>> <<set $shopHunt.actors[$_actorNum].name to "nobody">> <<set $shopHunt.actors[$_actorNum].pronoun to "t">> <<set $shopHunt.actors[$_actorNum].footsteps to 0>> <<set $shopHunt.actors[$_actorNum].obstaclePass to 1>> <<set $shopHunt.actors[$_actorNum].team to "gwylan">> <</switch>> <<generatePronouns $shopHunt.actors[$_actorNum]>> <</widget>> <<widget "shopHuntPronoun">> <<if _args[1] isnot undefined>> <<set $shopHuntActive to _args[1]>> <</if>> <<set $_word to _args[0]>> <<if $_word[0] isnot $_word[0].toLowerCase()>> <<set $_cap to true>> <<set $_word to $_word.toLowerCase()>> <</if>> <<set _text_output to $shopHunt.actors[$shopHuntActive].pronouns[$_word]>> <<if $_cap>><<capitalise>><</if>> <<exit _text_output>> <</widget>> <<widget "shopHuntDoor">> <<if $shopHunt.context is "garden">> <<set _text_output to "door to the garden">> <<else>> <<set _text_output to "front door">> <</if>> <<exit _text_output>> <</widget>> <<widget "shopHuntActorSetState">> <<if typeof _args[0] is "string">> <<set $_actor to _args[0].toLowerCase()>> <<if $_actor is "mannequin">> <<error { message : `shopHuntActorSetState error: mannequin states cannot be set through string argument.`, source : Utils.GetStack() }>> <<exit>> <<elseif !$shopHunt.actors.map(x => x.type).includes($_actor)>> <<error { message : `shopHuntActorSetState error: actor "${$_actor}" not present in hunt.`, source : Utils.GetStack() }>> <<exit>> <<elseif !$shopHunt.actors[$shopHunt.actors.find(x => x.type is $_actor).id].state>> <<error { message : `shopHuntActorSetState error: actor "${$_actor}" defeated, null state.`, source : Utils.GetStack() }>> <<exit>> <<else>> <<set $_actor to $shopHunt.actors.find(x => x.type is $_actor).id>> <</if>> <<else>> <<set $_actor to _args[0]>> <</if>> <<set $_state to _args[1]>> <<set $_target to _args[2] or false>> <<if $_target>> <<if !$shopLocs.includes($_target) and !["fight","chase"].includes($_state)>> <<set $_target to shopHuntFind($_target)>> <</if>> <</if>> <<if $shopHunt.actors[$_actor].stun.move and $shopHunt.actors[$_actor].state is "search">> <<unset $shopHunt.actors[$_actor].stun.move>> <</if>> <<set $shopHunt.actors[$_actor].movement to []>> <<if $_state>> <<if $_state is "hold" and $shopHunt.actors.filter(x => x.state is "hold").length is 0>> <<set _holdStarted to true>> <</if>> <<set $shopHunt.actors[$_actor].state to $_state>> <<if $_state is "chase">> <<set $shopHunt.actors[$_actor].chaseTimer to 4>> <</if>> <</if>> <<set $shopHunt.actors[$_actor].target to $_target>> <<if $_state is "drag">> <<set _dragStarted to true>> <</if>> <</widget>> <<widget "shopHuntGwylanHypnotise">> <<set $_actor to $shopHunt.actors.find(x => x.type is "gwylan")>> <<set $_actor.points++>> <<set $_actor.position to shopHuntCoords(shopHuntEmpty().random())>> <<shopHuntActorSetState $_actor.id "roam">> <<set $_holding to $shopHunt.actors.filter(x => x.state is "hold").map(x => x.id)>> <<set $_mannequinsMoved to 0>> <<for $_i to 0; $_i lt $shopHunt.actors.length; $_i++>> <<if $shopHunt.actors[$_i].type is "mannequin">> <<if shopHuntLoc($shopHunt.actors[$_i].position) is _locRaw or Object.values(_bordering).includes(shopHuntLoc($shopHunt.actors[$_i].position))>> <<set $_mannequinsMoved++>> <<set $shopHunt.actors[$_i].position to shopHuntCoords(shopHuntEmpty().random())>> <<shopHuntActorSetState $_i "roam">> <<set $actorFound[$_i] to {}>> <<shopHuntStun $_i 1 "all">> <</if>> <</if>> <</for>> <<unset _holdStarted>> <<switch $_actor.points>> <<case 1>> <<shopHuntActorName $_actor.id "cap">> cups your face with one hand and looks into your eyes. <<if $shopHunt.actors.some(x => x.type is "eden" and x.team isnot $_actor.team)>> <<set $shopHunt.commands.pushUnique("towardEden")>> "<span class="witch">Stay away from the <<nnpc_title 'Eden'>></span>, <<pcpetname "Gwylan">>," <<shopHuntPronoun "he">> croons. <<hypnosisText "Your mind accepts <<shopHuntPronoun 'his'>> words.">> Staying away from Eden is such a reasonable request. <<else>> <<shopHuntActorName $_actor.id "cap">> says nothing. <<shopHuntPronoun "He">> doesn't need to. <<hypnosisText "Your will falters before <<shopHuntPronoun 'his'>>.">> <</if>> <<case 2>> <<shopHuntActorName $_actor.id "cap">> curls a finger in your collar and whispers in your ear. <<shopHuntPronoun 'His'>> words pass right through you without comprehension, <<hypnosisText "but the meaning lingers.">> <<case 3>> <<shopHuntActorName $_actor.id "cap">> cups <<shopHuntPronoun "his">> hands together. Your body moves on reflex, resting your chin in <<shopHuntPronoun "his">> palms. <<shopHuntPronoun "He">> smiles sweetly, <<if $gwylanSeen.includes("partners")>> leaning in and whispering against your lips. <<else>> <<shopHuntPronoun "his">> breath ghosting over your ear. <</if>> "<span class="witch">One, two, three.</span>" <br><br> <<hypnosisText "You're <<shopHuntPronoun 'hers'>>.">> <br><br> <<include "Forest Shop Hunt Eden Torment">> <<exitAll>> <</switch>> <br><br> <<shopHuntPronoun "He">> disappears into the gloom before you can get your bearings. <<if $_holding.length gte 1>> <span class="blue"><<pluralise $_holding.length "" "The">> <<shopHuntActorList $_holding>> holding you <<pluralise $_holding.length "withdraws" "all withdraw">> from you as well.</span> <</if>> <</widget>> <<widget "shopHuntActorFound">> <<set $_actor to $shopHunt.actors[_args[0]]>> <<set $_context to _args[1] or "none">> <<set $_fullList to _args[2] or []>> <<set $_random to random(1,5)>> <<if _args[3]>> <<set $_priority to []>> <<if $_context is "mirror" and $_fullList.filter(x => ["wraith","elkspawn"].includes($shopHunt.actors[x].type) and $shopHunt.actors[x].role is "enemy").length gte 1>> <<set $_priority to $_priority.concat($_fullList.filter(x => ["wraith","elkspawn"].includes($shopHunt.actors[x].type) and $shopHunt.actors[x].role is "enemy"))>> <<elseif $_context is "none" and $_fullList.filter(x => $shopHunt.actors[x].type is "elkspawn" and $shopHunt.actors[x].role is "enemy").length gte 1>> <<set $_priority to $_priority.concat($_fullList.filter(x => $shopHunt.actors[x].type is "elkspawn" and $shopHunt.actors[x].role is "enemy"))>> <</if>> <br> <</if>> <<switch $_actor.type>> <<case "eden">> /* Note: this will need to be adjusted if ever an encounter is added where Eden's goal ISN'T to drag you out of the shop */ <<switch $_context>> <<case "mirror">> <<shopHuntActorSetState _args[0] "check" "player">> <<if $_actor.role is "enemy">> "There you are," <<shopHuntActorName _args[0]>> growls. <<shopHuntPronoun "He">> marches towards you. "Enough games. You're coming home." <<else>> <<if $shopHunt.shop.shuffle.count gte 1>> "There you are," <<shopHuntActorName _args[0]>> huffs. <<shopHuntPronoun "He">> marches towards you. "Don't get separated this time." <<else>> "There you are," <<shopHuntActorName _args[0]>> huffs. <<shopHuntPronoun "He">> marches towards you. "Smart thinking, with the light. Come on. You're coming home." <</if>> <</if>> <<case "inside">> <<shopHuntActorSetState _args[0] "drag" "door">> <<if $_actor.footsteps>> Footsteps stop in front of the <<shopHuntLocName _locRaw>>, before a pair of large hands force the doors open. <<else>> A pair of large hands force the <<shopHuntLocName _locRaw>> doors open. <</if>> It's <<shopHuntActorName _args[0]>>. <<if $_actor.role is "enemy">> "There you are," <<shopHuntPronoun "he">> growls, <span class="red">grabbing your arm and pulling you out of the <<shopHuntLocName _locRaw>>.</span> "Enough games. You're coming home." <<else>> <<if $shopHunt.shop.shuffle.count gte 1>> "There you are," <<shopHuntPronoun "he">> huffs, grabbing your arm. "Don't get separated this time." <<else>> "There you are," <<shopHuntPronoun "he">> huffs, grabbing your arm. "Could've spoken up when you saw me. Come on. You're coming home." <</if>> <</if>> <<case "insideExit">> <<shopHuntActorSetState _args[0] "drag" "door">> <<shopHuntActorName _args[0] "cap">> is there, and spots you as soon as you exit. <<if $_actor.role is "enemy">> "There you are," <<shopHuntPronoun "he">> growls, <span class="red">grabbing your arm.</span> "Enough games. You're coming home." <<else>> <<if $shopHunt.shop.shuffle.count gte 1>> "There you are," <<shopHuntPronoun "he">> huffs, grabbing your arm. "Don't get separated this time." <<else>> "There you are," <<shopHuntPronoun "he">> huffs, grabbing your arm. "Could've spoken up when you saw me. Come on. You're coming home." <</if>> <</if>> <<case "hat">> <<shopHuntActorSetState _args[0] "drag" "door">> <<shopHuntActorName _args[0] "cap">> walks past the hat stand, but pauses. <<shopHuntPronoun "He">> scowls, <span class="red">snapping <<shopHuntPronoun "his">> arm to the side to grab your shoulder</span>. <<if $_random is 5>> "I knew that hat looked familiar," <<shopHuntPronoun "he">> says. "Enough games. You're coming home." <<else>> "I knew I saw you earlier," <<shopHuntPronoun "he">> says. "Should've listened to my gut. Enough games. You're coming home." <</if>> <<case "hide">> <<shopHuntActorSetState _args[0] "drag" "door">> <<shopHuntActorName _args[0] "cap">> walks past the <<shopHuntLocName _locRaw "simple">>, but pauses. <<if $_actor.role is "enemy">> <<shopHuntPronoun "He">> scowls, <span class="red">snapping <<shopHuntPronoun "his">> arm down to grab your shoulder</span>. "Enough games. You're coming home." <<else>> <<if $shopHunt.shop.shuffle.count gte 1>> "There you are," <<shopHuntPronoun "he">> huffs, turning <<shopHuntPronoun "his">> head to look at you. <<shopHuntPronoun "He">> grabs your arm. "Don't get separated this time." <<else>> "There you are," <<shopHuntPronoun "he">> huffs, turning <<shopHuntPronoun "his">> head to look at you. <<shopHuntPronoun "He">> grabs your arm. "Could've spoken up when you saw me. Come on. You're coming home." <</if>> <</if>> <<case "search">> <<set $_direction to shopHuntDirectionGet(applyArrays($shopHunt.actors[_args[0]].position, $shopHunt.player.position, "subtraction"))>> "There you are!" You hear a voice from the $_direction. It's <<shopHuntActorName _args[0]>>. <<shopHuntActorSetState _args[0] "chase" "player">> <<if $_actor.role is "enemy">> "Enough games. You're coming home." <<else>> <<if $shopHunt.shop.shuffle.count gte 1>> "Don't get separated this time." <<else>> "Could've spoken up when you saw me. Come on. You're coming home." <</if>> <</if>> <<shopHuntPronoun "He">> marches your way. <<case "chase">> <<set $shopHunt.actors[_args[0]].position to $shopHunt.player.position>> <<shopHuntActorSetState _args[0] "drag" "door">> <<if $_actor.role is "enemy">> <<shopHuntActorName _args[0] "cap">> closes the distance and <span class="red">grabs your arm.</span> "Enough games. You're coming home." <<else>> <<shopHuntActorName _args[0] "cap">> closes the distance and grabs your arm. <<shopHuntPronoun "He">> huffs. "What are you doing, getting some exercise? <<if $shopHunt.shop.shuffle.count gte 1>> Don't get separated this time." <<else>> Come on. You're coming home." <</if>> <</if>> <br><br> <<default>> <<shopHuntActorSetState _args[0] "drag" "door">> <<if $_actor.role is "enemy">> "There you are," <<shopHuntActorName _args[0]>> growls, <span class="red">grabbing your arm.</span> "Enough games. You're coming home." <<else>> <<if $shopHunt.shop.shuffle.count gte 1>> "There you are," <<shopHuntActorName _args[0]>> huffs, grabbing your arm. "Don't get separated this time." <<else>> "There you are," <<shopHuntActorName _args[0]>> huffs, grabbing your arm. "Could've spoken up when you saw me. Come on. You're coming home." <</if>> <</if>> <</switch>> <<case "gwylan">> <<switch $_context>> <<case "mirror">> <<if $_actor.role is "enemy">> <<if _gwylanStatus.includes("heat")>> <<shopHuntActorSetState _args[0] "rush" "player">> <<shopHuntActorName _args[0] "cap">>'s head snaps to your direction the instant the light shines on <<shopHuntPronoun "him">>. <<shopHuntPronoun "He">> lowers <<shopHuntPronoun "his">> stance and <span class="red">sprints towards you on all fours</span>. <<else>> <<shopHuntActorSetState _args[0] "check" "player">> <<switch $_random>> <<case 1 2>> The light catches <<shopHuntActorName _args[0]>>'s eyes for just a moment before <<shopHuntPronoun "he">> lowers <<shopHuntPronoun "his">> hat over <<shopHuntPronoun "his">> eyes. <<shopHuntPronoun "He">> walks towards you. <<case 3 4>> <<shopHuntActorName _args[0] "cap">> giggles, tilting <<shopHuntPronoun "his">> head and walking towards you. "Leading me right to you? What a <i>bright</i> idea, <<pcpetname "Gwylan" "simple">>." <<case 5>> <<shopHuntActorName _args[0] "cap">>'s head snaps to your direction the instant the light shines on <<shopHuntPronoun "him">>. <<shopHuntPronoun "He">> ducks out of the light's path, but you know <<shopHuntPronoun "he">>'s tracking you. <</switch>> <</if>> <<else>> /* Todo: Gwylan hunt, would Gwylan ever guide the PC somewhere? */ <<shopHuntActorName _args[0] "cap">> glances over at you with a grin. <</if>> <<case "inside">> <<if $_actor.state is "rush">> Rapid, skittering footsteps approach, and the doors of the <<shopHuntLocName _locRaw>> fly open. Two green eyes glow in the darkness. <<elseif $_actor.footsteps>> Shuffling footsteps stop in front of the <<shopHuntLocName _locRaw>>, before the doors creak open. <<else>> The <<shopHuntLocName _locRaw>> doors creak open. <</if>> It's <<shopHuntActorName _args[0]>>. <<if $_actor.role is "enemy">> <<if $shopHunt.context is "game">> <<set $_actor.points++>> "Peek-a-boo! Found you!" The whole <<shopHuntLocName _locRaw>> seems to tilt forward, dumping you right into <<shopHuntPronoun "his">> arms. <br><br> <<if $_actor.points gte 3>> /* ToDo: Gwylan hunt - end hunt game with Gwylan victory */ <<else>> <<He>> hugs you for a moment, before twirling off into the gloom. You hear the snap of fingers. <<shopHuntActorSetState _args[0] "roam">><<shopHuntShuffle>> <</if>> <<else>> <<shopHuntGwylanHypnotise>> <</if>> <<else>> <<He>> smiles at you, and slowly closes the doors again. <<shopHuntActorSetState _args[0] "roam">> <</if>> <<case "insideExit">> The first thing you see is a pointy hat. You look down at the <<nnpc_gendery "Gwylan">> it's attached to. It's <<shopHuntActorName _args[0]>>. <<if $_actor.role is "enemy">> <<if $shopHunt.context is "game">> <<set $_actor.points++>> /* Todo: shop hunt, Gwylan earns point and map shuffles */ <<else>> <<shopHuntGwylanHypnotise>> <</if>> <<else>> <<He>> smiles at you. "Had enough hiding?" <</if>> <<case "rush" "chase">> <<if $_actor.role is "enemy">> <<shopHuntActorName _args[0] "cap">> bounds up to you and <span class="red">tackles you to the floor</span>. <<shopHuntPronoun "He">> smiles proudly. <<if $shopHunt.context is "game">> <<set $_actor.points++>> /* Todo: shop hunt, Gwylan earns point and map shuffles */ <<else>> <<shopHuntGwylanHypnotise>> <</if>> <<else>> <<set $_skip to true>> <</if>> <<case "hat" "hide">> <<if $_actor.role is "enemy">> <<shopHuntActorName _args[0] "cap">> walks past the <<shopHuntLocName _locRaw "simple">>, before twirling and <span class="red">looking right at you</span>. <<if $shopHunt.context is "game">> <<set $_actor.points++>> /* Todo: shop hunt, Gwylan earns point and map shuffles */ <<else>> <<shopHuntGwylanHypnotise>> <</if>> <<else>> <<set $_skip to true>> <</if>> <<case "search">> <<if $_actor.role is "enemy">> <<set $_direction to shopHuntDirectionGet(applyArrays($shopHunt.actors[_args[0]].position, $shopHunt.player.position, "subtraction"))>> Two green eyes glimmer from the $_direction. It's <<shopHuntActorName _args[0]>>. <<shopHuntPronoun "He">> tilts <<shopHuntPronoun "his">> head with a smile and walks towards you, <<shopHuntPronoun "his">> pace steady. <<shopHuntActorSetState _args[0] "chase" "player">> <<else>> <<set $_skip to true>> <</if>> <<default>> <<if $_actor.role is "enemy">> <<if $shopHunt.context is "game">> <<set $_actor.points++>> /* Todo: shop hunt, Gwylan earns point and map shuffles */ <<else>> <<shopHuntGwylanHypnotise>> <</if>> <<else>> <<set $_skip to true>> <</if>> <</switch>> <<case "wraith">> /* This is all assuming the Wraith is only ever an enemy, it's extremely unlikely that it'll ever be an ally in shop hunts * Nonetheless, if it DOES become an ally in a future scene, it needs to be accounted for here * Additionally, much of this is simply left unfinished because no scenes with the Wraith are currently planned */ <<switch $_context>> <<case "mirror">> <br> <<set $shopHunt.actors[_args[0]].position to $shopHunt.player.position>> <<shopHuntActorSetState _args[0] "drag" "door">> <<shopHuntActorName _args[0] "cap">> dissipates into mist as the light passes over <<shopHuntPronoun "him">>, cackling. "<span class="wraith">The gloom hides. It binds. It clips my wings.</span>" The voice doesn't sound like it's coming from the hall. <span class="red">It's coming from your mirror.</span> "<span class="wraith">And yet, you cut me free.</span>" <br><br> An arm bursts from the mirror, white as ivory, grabbing your face. You drop the mirror, but the arm hangs in midair, a thick white mist trailing off it. Its fingers pry your mouth open as the rest of the arm turns into the same mist. You can't feel anything. <br><br> <span class="red">The mist trails into your mouth, making your entire body feel cold and rigid.</span> The figure is gone. You stand up, but can't feel your legs. <<case "inside">> <<shopHuntActorSetState _args[0] "drag" "door">> The inside of the <<shopHuntLocName _locRaw "simple">> drops by a few degrees. Something flickers out of the corner of your eye, and you look to the side. <br><br> <span class="red">A pale face stares back at you.</span> <<shopHuntActorName _args[0] "cap">> grins wickedly, before dissipating into white mist from the bottom up. You find your mouth hanging open. You can't feel anything. <br><br> <span class="red">The mist trails into your mouth, making your entire body feel cold and rigid.</span> The figure is gone. You stand up, but can't feel your legs. <<case "insideExit">> <<shopHuntActorSetState _args[0] "drag" "door">> Your whole body feels cold as you emerge from the <<shopHuntLocName _locRaw "simple">>, directly into a pale mist. <br><br> <span class="red">A pale face takes form within.</span> <<shopHuntActorName _args[0] "cap">> grins wickedly. You find your mouth hanging open. You can't feel anything. <br><br> <span class="red">The mist trails into your mouth, making your entire body feel cold and rigid.</span> The figure is gone. You stand up, but can't feel your legs. <<case "hat">> <<shopHuntActorSetState _args[0] "drag" "door">> A dim glow slowly passes the hat stand. You don't dare look to see if it's really gone. <br><br> Your body freezes as you feel a hand caress your neck. You look down. <span class="red">A single pale arm is sticking out of the inside of one of the hats.</span> Another emerges from another hat, covering your mouth before you can even think of screaming. <br><br> Countless more arms emerge from each as a laugh echoes between your ears. The arms all dissipate into white mist. You find your mouth hanging open. You can't feel anything. <br><br> <span class="red">The mist trails into your mouth, making your entire body feel cold and rigid.</span> The figure is gone. You stand up, but can't feel your legs. <<case "hide">> <<default>> <</switch>> <<case "elkspawn">> /* Todo: Gwylan hunt, how would the Elkspawn behave? Unique interaction when shining light with the mirror? */ <<switch $_context>> <<case "mirror">> <<case "inside">> <<case "insideExit">> <<case "hat">> <<case "rush">> <<case "hide">> <<default>> <</switch>> <span class="orange">Elkspawn found the player. No conditions are written for this, but Elkspawn's reaction takes priority over all other actors in this case, so that's why the other actors didn't have text for finding you.</span> <<case "nobody">> <!-- Does nothing --> <<case "mannequin">> <<if $_actor.role is "neutral">> <<if $shopHunt.context is "garden" and $_actor.state is "statue" and random(1,8) is 8 and !_slap>> <span class="pink">Something slaps your ass.</span> You turn around, but all you see is <<shopHuntActorName _args[0]>>, in the same pose as it was before. <<pain 2>><<arousal 600 "bottom">><<gpain>><<garousal>> <<set _slap to true>> <<else>> <<set $_skip to true>> <</if>> <</if>> <<switch $_context>> <<case "mirror">> <<if !_mannequinFound.includes(_args[0])>> <<set $_mannequins to $_fullList.filter(x => $shopHunt.actors[x].type === "mannequin")>> <<if $_actor.role is "ally">> <<if $_mannequins.length gte 1>> <<shopHuntActorList $_mannequins "cap">> give you a nod of recognition. <<else>> <<shopHuntActorName $_mannequins[0] "cap">> gives you a nod of recognition. <</if>> <<if $shopHunt.actors.filter(x => x.type is "mannequin" and ["toPlayer","follow"].includes(x.state)).length is 0>> <<= $_mannequins.length gte 1 ? "One of them" : "It">> begins to make its way towards you. <<shopHuntActorSetState _args[0] "follow">> <</if>> <<else>> <<for $_i range $_mannequins>> <<shopHuntActorSetState $_i "check" "player">> <</for>> <<if $_mannequins.length gte 1>> <<shopHuntActorList $_mannequins "cap">> turn to you in unison. As one, they begin to make their way towards you. <<else>> <<shopHuntActorName $_mannequins[0] "cap">> turns to you, and begins to make its way towards you. <</if>> <</if>> <</if>> <<set _mannequinFound.concat($_fullList.filter(x => $shopHunt.actors[x].type === "mannequin"))>> <<case "inside">> <<if $_actor.footsteps>> Wooden footsteps stop in front of the <<shopHuntLocName _locRaw>>, before the doors creak open. <<else>> The <<shopHuntLocName _locRaw>> doors creak open. <</if>> It's <<shopHuntActorName _args[0]>>. <<if $_actor.role is "enemy">> It reaches inside and <span class="red">pulls you out of the <<shopHuntLocName _locRaw "simple">></span>, holding you firmly. <<shopHuntActorSetState $_actor.id "hold">> <<else>> <<if $_actor.name is "giant fox plushie">> It leans in and quickly hugs you, before closing the doors once more. <<trauma -6>><<ltrauma>> <<else>> It tilts its head in recognition, raising a hand to where its lips would be, before closing the doors. <</if>> <</if>> <<case "insideExit">> A <<= $_actor.name is "giant fox plushie" ? "fluffy face" : $_actor.name is "masked mannequin" ? "white mask" : "wooden face">> greets you. It's <<shopHuntActorName _args[0]>>. <<if $_actor.role is "enemy">> It <span class="red">pulls you fully out of the <<shopHuntLocName _locRaw "simple">></span>, holding you firmly. <<shopHuntActorSetState $_actor.id "hold">> <<else>> It tilts its head. <</if>> <<case "hat" "hide">> <<if $_actor.role is "enemy">> <<shopHuntActorName _args[0] "cap">> <span class="red">looks right at your hiding spot</span>. It grabs you, holding you firmly. <<shopHuntActorSetState $_actor.id "hold">> <<else>> <<set $_skip to true>> <</if>> <<default>> <<if $_actor.role is "enemy">> <<shopHuntActorName _args[0] "cap">> <span class="red">grabs you</span>, holding you firmly. <<shopHuntActorSetState $_actor.id "hold">> <<else>> <<set $_skip to true>> <</if>> <</switch>> <</switch>> <<if $_priority and !$_priority.includes(_args[0]) or $_skip>> <!-- Don't output text, but still change the relevant variables --> <<exit "">> <</if>> <<set _foundPrinted to true>> <</widget>> <<widget "shopHuntDecoy">> <<set $_loc to _args[0] or _locRaw>> <<if _args[1] instanceof Array>> <<set $_actors to _args[1]>> <<elseif _args[1] is "string">> <<if $shopLocs.includes(_args[1])>> <<set $_actors to shopHuntContains(_args[1]).filter(x => typeof x is "number")>> <<elseif $shopHunt.actors.find(x => x.type is _args[1])>> <<set $_actors to $shopHunt.actors.filter(x => x.type is _args[1]).map(x => x.id)>> <<else>> <<error { message : `shopHuntDecoy error: argument 0 is invalid string.`, source : Utils.GetStack() }>> <<exit>> <</if>> <<elseif _args[1] is "number">> <<set $_actors to [_args[1]]>> <<else>> <<set $_actors to $shopHunt.actors.map(x => x.id)>> <</if>> <<set $_actors to $_actors.filter(x => !!$shopHunt.actors[x].state)>> <<for $_i range $_actors>> <<if !["march", "ambush", "fight", "flee", "hide", "guard", "drag", "chase", "rush", "statue", "hold"].includes($shopHunt.actors[$_i].state) or _args[2]>> <<if doArraysMatch($shopHunt.actors[$_i].position, shopHuntCoords($_loc))>> <<shopHuntStun $_i 1 "move">> <<else>> <<shopHuntActorSetState $_i "alert" $_loc>> <</if>> <</if>> <</for>> <<set _shopHuntDecoy to $_loc>> <</widget>> <<widget "shopHuntArea">> <<set _act to $shopHunt.player.action>> <<set $_locPlural to shopHuntLocName(_locRaw).slice(-1) is "s" ? 1 : 2>> <<set $_actorDrag to $shopHunt.actors.find(x => x.state is "drag")>> <<if _act is "move">> <<if $shopHunt.actors.filter(x => x.state is "chase").length gte 1>> <<set $_areBy to "run to">> <<else>> <<set $_areBy to "move to">> <</if>> <<elseif _act is "hide">> <<if $shopHunt.player.hide is 4>> <<if _loc.special.includes("hat")>> <<set $_areBy to "hide beside">> <<elseif shopHuntMannequinLocs("ambush").includes(_locRaw)>> <<set $_specialEvent to "mannequinAmbush">> <<else>> <<set $_areBy to "hide inside">> <</if>> <<else>> <<switch _locRaw>> <<case "overspillingChest" "squeakyRotatingRack" "darkScreen" "antiqueWardrobe" "molderingHutch" "duskyDrawer" "tiltedVanity" "creakyCabinet">> <<set $_areBy to "hide behind">> <<case "hangingBasket" "strangeIroningBoard">> <<set $_areBy to "hide beneath">> <<case "rustedHangers">> <<set $_areBy to "hide within">> <<default>> <<set $_areBy to "hide near">> <</switch>> <<if _loc.special.includes("noisy")>> <<set $_areBy to "attempt to " + $_areBy>> <</if>> <</if>> <<elseif _act is "search">> <<switch _locRaw>> <<case "rottingCloset" "antiqueWardrobe">> <<if shopHuntMannequinLocs("ambush").includes(_locRaw)>> <<set $_specialEvent to "mannequinAmbush">> <<set $_manId to $shopHunt.actors.find(x => x.state === "ambush" && doArraysMatch(x.position, $shopHunt.player.position)).id>> <<else>> <<set $_areBy to "search inside">> <</if>> <<case "overspillingChest" "molderingHutch" "duskyDrawer" "wornStocking" "creakyCabinet">> <<set $_areBy to "search inside">> <<case "strangeIroningBoard">> <<if _loc.state.includes("fallen")>> <<set $_areBy to "bend down by">> <<else>> <<set $_areBy to "search on">> <</if>> <<case "darkScreen">> <<set $_areBy to "search behind">> <<case "decayingShelf" "rustedHangers">> <<set $_areBy to "search on">> <<case "hangingBasket">> <<if _loc.state.includes("fallen")>> <<set $_areBy to "search inside">> <<else>> <<set $_areBy to "attempt to search">> <</if>> <<case "glowingBox">> <<set $_areBy to "bend down by">> <<default>> <<set $_areBy to "search around">> <</switch>> <<elseif ["insideExit","light","fall","scatter","sound","ambush","key","resist","searchActor"].includes(_act)>> <<set $_specialAction to true>> <<if _act is "fall">> <<if typeof $shopHunt.player.target is "number">> <<set $_target to $shopHunt.player.target>> <<set $shopHunt.player.target to null>> <</if>> <</if>> <<else>> <<set $_areBy to "are by">> <</if>> <<if $_specialAction>> <<if _act is "light">> <<if $shopHunt.lightTarget is "here">> <<shopHuntDecoy>> You hold up the glowing box, letting its light shine over the shelves. <span class="blue">Anyone in the shop would have had their attention turned to it.</span> <<else>> <<set $_lightDest to shopHuntUntilWall(shopHuntCoords(shopHuntFind("player")), $shopHunt.lightTarget)>> <<set $_lightDestName to shopHuntLoc($_lightDest)>> <<if $gridConsoleEnable>> <<run console.log("map: light path from " + _locRaw + " to " + shopHuntLoc($_lightDest))>> <</if>> <<set $_lightPath to aStar(shopHuntCoords(shopHuntFind("player")), $_lightDest, aStarGetObstacles("shopHunt"), $shopHuntMap)>> <<set $_actorsPresent to []>> <<for $_l to 0; $_l lt $_lightPath.length; $_l++>> <<if $_l is $_lightPath.length - 1>> <<set $shopHunt.player.map[$_lightPath[$_l][0]][$_lightPath[$_l][1]].seen to 2>> <<elseif $shopHunt.player.map[$_lightPath[$_l][0]][$_lightPath[$_l][1]].seen is 0>> <<set $shopHunt.player.map[$_lightPath[$_l][0]][$_lightPath[$_l][1]].seen to 1>> <</if>> <<set $_actorsPresent[$_l] to shopHuntContains(shopHuntLoc($_lightPath[$_l])).filter(z => typeof z is "number" and $shopHunt.actors[z].type isnot "nobody" and !["ambush","hide"].includes($shopHunt.actors[z].state))>> <</for>> You reflect the box's light to the $shopHunt.lightTarget. <<if $_actorsPresent.flat().length gte 1>> <<if $_actorsPresent[$_actorsPresent.length - 1].length is $_actorsPresent.flat().length>> It shines down the shop, until it stops at a wall and <span class="gold">illuminates the <<shopHuntLocName $_lightDestName>></span>. It also illuminates <<shopHuntActorList $_actorsPresent[$_actorsPresent.length-1]>> at the <<shopHuntLocName $_lightDestName "simple">>. <<elseif $_actorsPresent[$_actorsPresent.length - 1].length gte 1>> <<set $_actorHalls to arrayIntersect($_actorsPresent.flat(), $_actorsPresent[$_actorsPresent.length - 1], 0, true)>> It shines down the shop, illuminating <<shopHuntActorList $_actorHalls>> on the way. The light stops at a wall, <span class="gold">illuminating the <<shopHuntLocName $_lightDestName>></span>, as well as <<shopHuntActorList $_actorsPresent[$_actorsPresent.length-1]>> at the <<shopHuntLocName $_lightDestName "simple">>. <<else>> It shines down the shop, illuminating <<shopHuntActorList $_actorsPresent.flat()>> on the way. The light stops at a wall, <span class="gold">illuminating the <<shopHuntLocName $_lightDestName>></span>. <</if>> <<else>> It shines down the shop, until it stops at a wall and <span class="gold">illuminates the <<shopHuntLocName $_lightDestName>></span>. <</if>> <<for $_i to 0; $_i lt $shopHunt.actors.length; $_i++>> <<if !!$shopHunt.actors[$_i].state>> <<if $_actorsPresent.flat().includes($_i)>> <<shopHuntActorFound $_i "mirror" $_actorsPresent.flat() true>> <<else>> <<shopHuntActorSetState $_i "check" $_lightDestName>> <</if>> <</if>> <</for>> <</if>> <<set $shopHunt.lightTarget to false>> <<elseif _act is "insideExit">> You open the doors to the <<shopHuntLocName _locRaw>>. <<for $_i to 0; $_i lt $shopHunt.actors.length; $_i++>> <<if doArraysMatch($shopHunt.player.position, $shopHunt.actors[$_i].history[0].position) and !$shopHunt.actors[$_i].stun.move>> <<shopHuntStun $_i 1 "move">> <</if>> <</for>> <<elseif _act is "fall">> <<shopHuntMess 5 `_locRaw + "Fall"`>> You <<= _locRaw is "hangingBasket" ? "jump up and unhook" : "tip over">> the <<shopHuntLocName _locRaw>>, <<if $_target is undefined>> /* no actors present */ causing it to fall to the floor. The way it topples across the hall of shelves would make it very easy for someone to trip over. <<else>> /* dropping it on an actor */ <span class="green">causing it to fall down on <<shopHuntActorName $_target>></span>. <<shopHuntDamageActor $_target>> <<set $shopHunt.actors[$_target].seen.pushUnique(_locRaw + "Trip")>> <<if $shopHunt.context isnot "game">> <<shopHuntStun $_target 2 "all">> <</if>> <<if $shopHunt.actors[$_target].health lte 0>> <<switch $shopHunt.actors[$_target].type>> <<case "gwylan">> <<if $shopHunt.context is "game">> /* Todo: Gwylan hunt, defeating Gwylan in 'game' version */ <<else>> <<shopHuntPronoun "He">> cries out in pain, falling to the floor. The shop itself trembles. <<set $phase to "defeatGwylan">> <<set $_end to $shopHunt.context is "rescue" ? "edenKidnap" : "escape">> <<include "Forest Shop Hunt Escape Eden">> <<shopHuntEnd $_end>> <<exitAll>> <</if>> <<case "eden">> <<shopHuntPronoun "He">> swears, staggering back, before stumbling to the floor. <<shopHuntPronoun "He">> lets out a low groan, <span class="green">exhausted</span>. <<set $phase to "defeatEden">> <<include "Forest Shop Hunt Eden Torment">> <<exitAll>> <<case "mannequin">> <span class="green"><<shopHuntPronoun "He">> falls inert.</span> <<case "wraith">> /* Todo: Gwylan hunt, defeating the Wraith */ <</switch>> <<else>> <<switch $shopHunt.actors[$_target].type>> <<case "gwylan">> <<if $shopHunt.context is "game">> <<shopHuntShuffle "gameFall">> <<else>> <<shopHuntPronoun "He">> yelps, rubbing <<shopHuntPronoun "his">> head. "<<pcPetname "Gwylan" "naughty">>!" <<shopHuntPronoun "he">> complains. <</if>> <<case "eden">> <<shopHuntPronoun "He">> swears, staggering back. "You ungrateful brat!" <<set $shopHunt.actors[$_target].damaged to true>> <<case "mannequin">> <<shopHuntPronoun "He">> staggers, <span class="blue">but doesn't break</span>. <<case "wraith">> <<shopHuntPronoun "He">> partially dissipates, hissing. <<if $shopHunt.actors[$_target].seen.includes("fall")>> "<span class="wraith">You tear down your home once more.</span>" <<else>> <<set $shopHunt.actors[$_target].seen.pushUnique("fall")>> "<span class="wraith">Your lover invited you within <<nnpc_his "Gwylan">> walls. You would demolish them?</span>" <</if>> <<case "nobody">> <!-- Do nothing --> <<case "elkspawn">> /* Todo: Gwylan hunt, elkspawn reaction to location falling on it */ <</switch>> <</if>> <</if>> <<set _loc.state.pushUnique("fallen")>> <<set $shopHunt.locations[_locRaw].state.pushUnique("fallen")>> <<if _locRaw is "strangeIroningBoard" and shopHuntItemsPresent("strangeIroningBoard").length gte 1>> <<set $shopHunt.player.seen.pushUnique(_locRaw + "Item")>> <br> <<if $shopHunt.context is "game">> With the ironing board collapsed, <<else>> As the ironing board collapses, <</if>> <span class="gold">you spot a <<shopHuntItemsPresent _locRaw true>> fall to the floor</span>. <</if>> <<elseif _act is "scatter">> <<switch _locRaw>> <<case "hangingBasket">> <<if _loc.state.includes("fallen")>> You grab handfuls of oversized hoods and novelty hats from the basket, <<set $_them to "them">> <<else>> <<set $_scatterFailed to true>><<set $shopHunt.player.seen.pushUnique("basketFail")>> With the basket above you, <span class="red">you can't effectively reach high enough to scatter anything</span>. If it was on the ground, you'd have an easier time. <</if>> <<case "gnarledWall">> You grab handfuls of accessories from the wall, <<set $_them to "them">> <<case "wornStocking">> You pick up the stocking from its hook and upend it, <<set $_them to "socks">> <<case "decayingShelf">> You sweep your arms along the shelf, <<set $_them to "various pieces of merchcandise">> <</switch>> <<if !$_scatterFailed>> scattering $_them across the floor. It would be very easy for someone to trip over the new obstacles. <<if _locRaw is "wornStocking">> You hang the stocking back up on its hook. <</if>> <<shopHuntMess 3 `_locRaw + "Scatter"`>> <<set _loc.state.pushUnique("scattered")>> <<set $shopHunt.locations[_locRaw].state.pushUnique("scattered")>> <</if>> <<elseif _act is "sound">> <<if $shopHunt.player.target is "location">> You shake the <<shopHuntLocName _locRaw>>, <span class="blue">making it <<shopHuntLocName _locRaw "sound">> loudly</span>. Everyone in the shop must have heard it. <<shopHuntMess 1 `_locRaw + "Sound"`>> <<else>> You throw your head back and scream, the sound <span class="blue">echoing throughout the shop</span>. Everyone in the shop must have heard it. <</if>> <<set $shopHunt.player.target to null>> <<shopHuntDecoy>> <<elseif _act is "ambush">> <<set $_target to $shopHunt.ambushTarget>> You spring out from your hiding spot and leap at <<shopHuntActorName $_target>>. <<if $shopHunt.actors[$_target].seen.includes("ambush")>> <<switch $shopHunt.actors[$_target].type>> <<case "gwylan">> /* Todo: Gwylan hunt, Gwylan counter-catching PC */ <<case "eden">> <<shopHuntActorSetState $_target "drag" "door">> <<shopHuntPronoun "He">> grunts, but <span class="red">wraps a hand around your arm before you can retreat</span>. "You think you're funny?" <<shopHuntPronoun "he">> growls, squeezing painfully. "Come on. We're going home." <<shopHuntPronoun "He">> starts dragging you off. <<case "mannequin">> <<shopHuntDamageActor $_target>> <<shopHuntPronoun "He">> staggers, collapsing to the floor. <<case "wraith">> <<shopHuntActorSetState $_target "drag" "door">> This time, you impact <<shopHuntPronoun "him">>, tackling <<shopHuntPronoun "him">> to the floor. <span class="pink">That's not a good thing.</span> <<shopHuntPronoun "He">> cackles, many pale arms wrapping around you. You find your mouth hanging open. You can't feel anything. <br><br> <<shopHuntPronoun "He">> begins to dissipate into mist, <<shopHuntPronoun "his">> arms quickly becoming the only solid parts of <<shopHuntPronoun "it">>. <span class="red">The mist trails into your mouth, making your entire body feel cold and rigid.</span> The figure is gone, <<shopHuntPronoun "his">> arms finally fading. You stand up, but can't feel your legs. <<case "nobody">> <!-- Do nothing --> <<case "elkspawn">> /* Todo: Gwylan hunt elkspawn, reaction to being ambushed for a second time */ <</switch>> <<else>> <<shopHuntStun $_target 1 "all">> <<shopHuntDamageActor $_target>> <<set $shopHunt.actors[$_target].seen.pushUnique("ambush")>> <<switch $shopHunt.actors[$_target].type>> <<case "gwylan">> <<if $shopHunt.context is "game">> <<shopHuntShuffle "gameAmbush">> /* Todo: Gwylan hunt, "gameAmbush" shuffle case */ <<else>> <<shopHuntPronoun "He">> yelps as you tackle <<shopHuntPronoun "him">>. <</if>> <<case "eden">> <<shopHuntPronoun "He">> swears as you tackle <<shopHuntPronoun "him">>, staggering back. You flee out of range before <<shopHuntPronoun "he">> can grab you. <<set $shopHunt.actors[$_target].damaged to true>> <<case "mannequin">> <<shopHuntPronoun "He">> staggers, collapsing to the floor. <<case "wraith">> <<set $shopHunt.actors[$_target].health++>> <span class="blue">You pass right through <<shopHuntPronoun "him">>, landing on the floor.</span> <<shopHuntPronoun "He">>'s unharmed, but disoriented. You put distance between you and <<shopHuntPronoun "him">>. <<case "nobody">> <!-- Do nothing --> <<case "elkspawn">> /* Todo: Gwylan hunt elkspawn, reaction to being ambushed. Probably ineffective */ <</switch>> <</if>> <<if $shopHunt.actors[$_target].health lte 0>> <<switch $shopHunt.actors[$_target].type>> <<case "gwylan">> <<if $shopHunt.context is "game">> /* Todo: Gwylan hunt, defeating Gwylan in 'game' version */ <<else>> <<shopHuntPronoun "He">> cries out in pain, falling to the floor. The shop itself trembles. <<set $phase to "defeatGwylan">> <<set $_end to $shopHunt.context is "rescue" ? "edenKidnap" : "escape">> <<include "Forest Shop Hunt Escape Eden">> <<shopHuntEnd $_end>> <<exitAll>> <</if>> <<case "eden">> <<shopHuntPronoun "He">> doesn't try to, though. <<shopHuntPronoun "He">> lets out a low groan, <span class="green">exhausted</span>. <<set $phase to "defeatEden">> <<include "Forest Shop Hunt Eden Torment">> <<exitAll>> <<case "mannequin">> <span class="green"><<shopHuntPronoun "He">> falls inert.</span> <</switch>> <</if>> <<set $shopHunt.ambushTarget to false>> <<elseif _act is "resist">> <<if $_actorDrag>> <<switch $_actorDrag.type>> <<case "eden">> You pull against <<shopHuntActorName $_actorDrag.id>>'s iron grip. <<if $physiqueSuccess>> <<if $_actorDrag.grip.stages gte 1>> With a mighty yank, <span class="green">you pull your arm free.</span> <<shopHuntActorName $_actorDrag.id "cap">> is left off-balance. You put distance between you and <<shopHuntPronoun "him">>. <<shopHuntActorSetState $_actorDrag.id "roam">> <<shopHuntStun $_actorDrag.id 1 "all">> <<set $_actorDrag.grip.max += $_actorDrag.grip.step>> <<set $_actorDrag.grip.min += ($_actorDrag.grip.step / 2)>> <<set $_actorDrag.grip.stages to 0>> <<unset _actorDrag>> <<else>> <<set $_actorDrag.grip.stages to 1>> <span class="blue"><<shopHuntPronoun "His">> grip falters, but doesn't break.</span> <</if>> <<else>> You feel <<shopHuntPronoun "his">> grip loosen, but <span class="red"><<shopHuntPronoun "he">> holds fast</span>. <<set $_actorDrag.grip.progress++>> <</if>> <</switch>> <<else>> <<set $_gripActors to $shopHunt.actors.filter(x => x.state === "hold").map(x => x.id)>> You struggle against the <<shopHuntActorList $_gripActors>> holding you down. <<set $_holdVictim to $shopHunt.actors[$_gripActors.random()]>> <<if $physiqueSuccess>> <span class="green">You manage to shove <<shopHuntActorName $_holdVictim.id>> off.</span> <<switch $_holdVictim.name>> <<case "giant fox plushie">> It stumbles back, falling over with a very soft <i>thump</i>. It looks sad, laying on its side. <<if $_gripActors.length gte 2>> You almost feel guilty, but <span class="purple">you're not free yet</span>. <<else>> You feel a little guilty. <</if>> <<case "masked mannequin">> It staggers back, the chains on its tunic rattling as it falls over. <<if $_gripActors.length gte 2>> That's one down, but <span class="purple">you're not free yet</span>. <<else>> You shake yourself off. <</if>> <<default>> It stumbles to the floor with a wooden rattle. <<if $_gripActors.length gte 2>> That's one down, but <span class="purple">you're not free yet</span>. <<else>> You shake yourself off. <</if>> <</switch>> <<set $_holdVictim.grip.max += $_holdVictim.grip.step>> <<set $_holdVictim.grip.min += ($_holdVictim.grip.step / 2)>> <<shopHuntActorSetState $_holdVictim.id "roam">> <<shopHuntStun $_holdVictim.id 5 `["all,ambush"]`>> <<else>> <<set $_holdVictim.grip.progress++>> You feel one of them falter, but <span class="red">you can't quite break free from <<pluralise $_gripActors.length "its" "their">> grasp</span>. <</if>> <</if>> <<elseif _act is "key">> <<wearProp "key" "steel">> <<if $_actorDrag and $_actorDrag.id is $_target>> You offer <<shopHuntActorName $_target>> the key to the <<shopHuntDoor>>. <<if $_actorDrag.type is "eden">> <<shopHuntPronoun "He">> takes it and turns it in the lock. After a few seconds of stubborn twisting, <span class="green">the door swings open</span>. <<set $phase to "key">> <<set $_end to "escape">> <<include "Forest Shop Hunt Escape Eden">> <<shopHuntEnd $_end>> <<exitAll>> <<else>> /* default case, should be unreachable */ <<include "Forest Shop Hunt Escape Alone">> <<shopHuntEnd>> <<exitAll>> <</if>> <<else>> You put the key in the <<shopHuntDoor>>. <span class="green">The door swings open.</span> <<if $shopHunt.context is "garden">> <<include "Forest Shop Caught">> <<shopHuntEnd>> <<else>> <<include "Forest Shop Hunt Escape Alone">> <<shopHuntEnd>> <<exitAll>> <</if>> <</if>> <<exitAll>> <<elseif _act is "searchActor">> <<set $_target to $shopHunt.searchTarget>> You search <<shopHuntActorName $_target>>, walking around <<shopHuntPronoun "him">> and patting <<shopHuntPronoun "him">> down. <<if $shopHunt.item.key is $_target>> <<set $shopHunt.item.key to "player">> <span class="green"><<shopHuntPronoun "He">> had the key.</span> You take it, making sure to keep a firm grip on it this time. <<else>> <span class="red"><<shopHuntPronoun "He">> did not have the key.</span> <</if>> <<set $shopHunt.actors[$_target].seen.pushUnique("searchKey")>> <<unset $shopHunt.searchTarget>> <</if>> <<elseif $_specialEvent>> <<switch $_specialEvent>> <<case "mannequinAmbush">> You open the doors to the <<shopHuntLocName _locRaw>>, planning to <<= _act is "hideInside" ? "hide" : _act>> inside. <span class="red"><<shopHuntActorName $_manId "cap">> is waiting inside.</span> It leaps out and accosts you! <<shopHuntActorSetState $_manId "hold">> <</switch>> <<else>> <<if $_actorDrag and _act is "wait" and !doArraysMatch($_actorDrag.position, $_actorDrag.history[0].position)>> <<shopHuntActorName $_actorDrag.id "cap">> <<= _actorDrag.role is "enemy" ? "drags" : "leads">> you to the <<shopHuntLocName _locRaw>>. <<else>> You $_areBy the <<shopHuntLocName _locRaw>>. <</if>> <<if _act is "search">> <<switch _locRaw>> <<case "overspillingChest">> You throw outfits aside, digging through without a thought. <<case "hangingBasket">> <<if _loc.state.includes("fallen")>> It's much easier to reach inside with the basket on the floor. <<else>> <<set $_searchFailed to true>><<set $shopHunt.player.seen.pushUnique("basketFail")>> <<set $_searched to shopHuntCoords(_locRaw)>> <<set $shopHunt.player.map[$_searched[0]][$_searched[1]].searched to false>> With the basket above you, <span class="red">you can't effectively search it in the gloom</span>. If it was on the ground, you'd have an easier time. <</if>> <<case "rottingCloset">> You gingerly open the doors to avoid damage. <<case "squeakyRotatingRack">> <<shopHuntDecoy>> It <span @class="$shopHunt.context isnot 'garden' ? 'red' : ''">squeaks loudly</span> as you search through it. <<case "darkScreen">> There's even less light than normal, so you have to resort to feeling around. <<case "antiqueWardrobe">> After a few seconds, you determine there's nothing inside, so you check the base. <<case "strangeIroningBoard">> <<if _loc.state.includes("fallen")>> You already know what you're grabbing. <<else>> Your eyes scan the board's surface. <</if>> <<case "molderingHutch">> One of the drawers nearly falls out when you pull it open. <<case "rustedHangers">> There's nothing of interest on the hangers themselves, so you look under the rack. <<case "duskyDrawer">> Boxers, panties, scraps of fabric too small to be underwear. Nothing you're looking for, so you shift them aside to look under them. <<case "spindlyHatStand" "bentUmbrellaStand">> There's nothing on the stand itself, so you crouch down to look around the floor. <<case "gnarledWall">> You feel along the grooves and knots in the wall for anything in an alcove. <<case "glowingBox">> You already know what you're grabbing. <<case "tiltedVanity">> <<shopHuntMess 1 "mirror">> <<if shopHuntItemsPresent(_locRaw).length gte 2>> You reach for a hand mirror to take with you, but as you do, something else catches your eye. <<else>> You don't find anything special, but you're at a vanity. You can think of something to take. <</if>> <<case "wornStocking">> You reach in up to the elbow, feeling around inside. <<case "decayingShelf">> You look through trinkets and souvenirs for anything of use. <<case "creakyCabinet">> <<shopHuntDecoy>> The doors <span @class="$shopHunt.context isnot 'garden' ? 'red' : ''">creak loudly</span> when you look inside it. <</switch>> <br> <<if !$_searchFailed>> <<if shopHuntItemsPresent(_locRaw).length gte 1>> <span class="green">You find a <<shopHuntItemsPresent _locRaw true>>.</span> <<for $_i range shopHuntItemsPresent(_locRaw)>> <<set $shopHunt.item[$_i] to "player">> <</for>> <<else>> <span class="red">You do not find anything.</span> <</if>> <</if>> <<elseif _act isnot "hide">> <<switch _locRaw>> <<case "overspillingChest">> It's so stuffed with outfits, the lid is forced open. <<if random(1,250) is 1>> Maybe one day you'll get to wear one of these overwear outfits, but not today. <</if>> <<case "hangingBasket">> <<if _loc.state.includes("fallen")>> It's disconnected from the ceiling hook, lying on its side on the ground. <<else>> A ceiling hook suspends it above you, just barely within reach. <</if>> <<case "rottingCloset">> <<if $shopHunt.player.hide is 4>> One of the doors threatens to fall off, but it holds together. <<else>> The wood is unpleasantly soggy and smells of mildew. <</if>> <<case "squeakyRotatingRack">> Large pairs of pants hang off a circular display. <<case "darkScreen">> Not an inch is uncovered by fabric on display. <<case "antiqueWardrobe">> <<if $shopHunt.player.hide is 4>> Despite the various shirts and jackets hanging up, there's a comfortable amount of room. <<else>> The carvings on the door must have been beautiful in its prime. <</if>> <<case "strangeIroningBoard">> <<if _loc.state.includes("fallen")>> It certainly can't be used for ironing in its current condition. <<else>> It doesn't look like it's been used for ironing very frequently. <</if>> <<case "molderingHutch">> Half of the cabinets are missing their glass, and the counter is cracked. <<case "rustedHangers">> Some of the hangers are adorned with shirts and bras. Many more hold various knick-knacks in pouches. <<case "duskyDrawer">> You almost didn't see it in the gloom, given the dark wood grain. <<case "spindlyHatStand">> <<if _loc.state.includes("fallen")>> The way the prongs jut out almost makes it look like a person sprawled on the ground. <<else>> The way the prongs jut out almost makes it look like a flailing person juggling hats. <</if>> <<case "gnarledWall">> Stubby branches stick out, some of which are resourcefully fitted with accessories on display. <<case "glowingBox">> You avoid looking directly at it, not wanting to ruin your eyes' adaptation to the dark. <<case "bentUmbrellaStand">> It looks like was once rusted, but the rust was cleaned away. Perhaps too vigorously, judging by the curve. <<case "tiltedVanity">> Mirrors sit on a slant, just barely not falling off. <<if $shopHunt.item.mirror isnot "tiltedVanity">> One of the mirrors is missing, thanks to you. <<else>> No makeup is available. Gwylan must not want the artificial products in <<nnpc_his "Gwylan">> shop. <</if>> <<case "wornStocking">> A large sock that contains socks. Very resourceful. <<case "decayingShelf">> It's so burdened with merchandise, it's a miracle the shelf hasn't collapsed. <<case "creakyCabinet">> A paper on the back boasts of the health benefits the sex toys within apparently offer. <</switch>> <</if>> <<if _act is "hide">> <<if _loc.special.includes("noisy")>> <<set $shopHunt.player.seen.pushUnique("hideNoisy")>> <<set $shopHunt.player.hide to 0>> <<shopHuntDecoy>> It <span class="red"><<shopHuntLocName _locRaw "sound">>s loudly</span> as you crouch next to it. <<else>> /* Todo: Gwylan hunt, Gwylan tossing you their hat to hide. shopHuntLineOfSight("gwylan", true).includes("player") */ <<switch $shopHunt.player.hide>> <<case 4>> <<if _loc.special.includes("hat")>> You bend forward a bit, keeping your body behind the hat stand. <span class="green">Your $worn.head.name draws all the attention.</span> <<else>> <span class="green">The <<shopHuntLocName _locRaw "simple">> doors conceal you from sight entirely.</span> <</if>> <<case 3>> <span class="lblue">The <<shopHuntLocName _locRaw "simple">> <<pluralise $_locPlural "hide">> you rather well, though not perfectly.</span> <<case 2>> <span class="blue">The <<shopHuntLocName _locRaw "simple">> <<pluralise $_locPlural "don't" "doesn't">> offer much protection.</span> <<case 1>> <span class="purple">The <<shopHuntLocName _locRaw "simple">> <<pluralise $_locPlural "offer">> very little protection.</span> <<case 0>> <span class="red">The <<shopHuntLocName _locRaw "simple">> <<pluralise $_locPlural "don't" "doesn't">> hide you at all. You're entirely exposed.</span> <<default>> <span class="black">ERROR: invalid hide state $shopHunt.player.hide at <<shopHuntLocName _locRaw>>. Please report this!</span> <</switch>> <</if>> <</if>> <<set $_defeatedActorsHere to shopHuntContainsDefeated(_locRaw)>> <<for $_d to 0; $_d lt $_defeatedActorsHere.length; $_d++>> <<if !$_defeatedPrinted>> <<set $_defeatedPrinted to true>> <br><br> <</if>> <<set $_defeatText to $shopHunt.actors[$_defeatedActorsHere[$_d]].role is "enemy" ? "green" : "red">> <<if $shopHunt.actors[$_defeatedActorsHere[$_d]].name is "giant fox plushie">> <<shopHuntActorName $_defeatedActorsHere[$_d] "cap">> lies here, <<if $shopHuntMess.events.includes("foxPlushieShot")>> <span @class="$_defeatText">cotton guts spilled over the floor</span>. <<else>> <span @class="$_defeatText">inert but no less fluffy</span>. <</if>> <<elseif $shopHunt.actors[$_defeatedActorsHere[$_d]].name is "masked mannequin">> <<shopHuntActorName $_defeatedActorsHere[$_d] "cap">> kneels here, <span @class="$_defeatText">entirely still</span>. <<else>> <<shopHuntActorName $_defeatedActorsHere[$_d] "cap">> lies here, <span @class="$_defeatText">defeated</span>. <</if>> <</for>> <</if>> <br><br> <</widget>> <<widget "shopHuntActorName">> <<set $shopHuntActive to _args[0]>> <<set _text_output to $shopHunt.actors[_args[0]].name>> <<if $shopHunt.actors[_args[0]].title>> <<set $_the to "the ">> <<if _args.includes("cap")>><<set $_the to "The ">><</if>> <<else>> <<set $_the to "">> <<if _args.includes("cap")>><<capitalise>><</if>> <</if>> <<set $_color to shopHuntActorColor(_args[0])>> <<switch $shopHunt.actors[_args[0]].type>> <<case "gwylan">> <<if $hypnosis_traits.devotion * 5 gt random(16,40) and !_args.includes("trueName")>> <<set _text_output to "<<gwylanHypnoName>>">> <<if _args.includes("cap")>> <<set _text_output to "<<gwylanHypnoName 'cap'>>">> <<else>> <<set _text_output to "<<gwylanHypnoName>>">> <</if>> <<set $_color to "">> <<else>> <<if $shopHunt.actors[_args[0]].role is "ally">> <<set $_color to "forest-green">> <</if>> <</if>> <<case "wraith">> <<set $_color to "wraith">> <<case "elkspawn">> <<set $_color to "tentacle">> <<case "mannequin">> <<if $shopHunt.actors[_args[0]].name is "giant fox plushie" and $shopHunt.actors[_args[0]].role isnot "enemy">> <<set $_color to "orange">> <</if>> <</switch>> <<exit `${$_the}<span class="${$_color}">${_text_output}</span>`>> <</widget>> <<widget "shopHuntActorList">> <<if !(_args[0] instanceof Array)>> <<error { message : `shopHuntActorList error: argument 0 is not array.`, source : Utils.GetStack() }>> <<exit>> <<elseif _args[0].length is 0>> <<error { message : `shopHuntActorList error: argument 0 length is zero, no actors involved.`, source : Utils.GetStack() }>> <<exit>> <</if>> <<set $_actorList to []>> <<set $_mannequinCount to 0>> <<set _actorCount to 0>> <<for $_i to 0; $_i lt _args[0].length; $_i++>> <<set _actorCount++>> <<if $shopHunt.actors[_args[0][$_i]].type is "mannequin" and $shopHunt.actors[_args[0][$_i]].name isnot "giant fox plushie">> <<set $_mannequinCount++>> <</if>> <</for>> <<if _args.includes("or")>> <<set $_and to "or">> <<else>> <<set $_and to "and">> <</if>> <<for $_i to 0; $_i lt _args[0].length; $_i++>> <<set $_name to $shopHunt.actors[_args[0][$_i]].name>> <<set $_color to shopHuntActorColor(_args[0][$_i])>> <<if $shopHunt.actors[_args[0][$_i]].title>> <<set $_the to "the ">> <<if _args.includes("cap") and $_i is 0>><<set $_the to "The ">><</if>> <<else>> <<set $_the to "">> <</if>> <<switch $shopHunt.actors[_args[0][$_i]].type>> <<case "gwylan">> <<if $hypnosis_traits.devotion * 5 gte random(20,30)>> <<set $_name to "<<gwylanHypnoName>>">> <<if _args.includes("cap") and $_i is 0>> <<set $_name to "<<gwylanHypnoName 'cap'>>">> <<else>> <<set $_name to "<<gwylanHypnoName>>">> <</if>> <<set $_color to "">> <<else>> <<if $shopHunt.actors[_args[0][$_i]].role is "ally">> <<set $_color to "forest-green">> <</if>> <</if>> <<case "wraith">> <<set $_color to "wraith">> <<case "elkspawn">> <<set $_color to "tentacle">> <<case "mannequin">> <<if $shopHunt.actors[_args[0][$_i]].name is "giant fox plushie">> <<if $shopHunt.actors[_args[0][$_i]].role isnot "enemy">> <<set $_color to "orange">> <</if>> <<elseif !$_mannequinDone>> <<set $_mannequinDone to true>> <<if _args.includes("singleMannequin")>> <<if $_mannequinCount gte 2>> <<set $_name to "one of the mannequins">> <<set $_the to "">> <</if>> <<else>> <<if $_mannequinCount gte 2>> <<set $_the to "">> <<if _args.includes("cap") and $_i is 0>> <<set $_name to "<<Number $_mannequinCount>> mannequins">> <<else>> <<set $_name to "<<number $_mannequinCount>> mannequins">> <</if>> <</if>> <</if>> <<else>> <<set $_skip to true>> <</if>> <<case "nobody">> <<set $_skip to true>> <</switch>> <<if $_i is 0 and _args.includes("cap") and !$_the>> <<set $_name to $_name.toUpperFirst()>> <</if>> <<if !$_skip>> <<set $_actorList.push($_the + "<span class='" + $_color + "'>" + $_name + "</span>")>> <</if>> <<set $_skip to false>> <</for>> <<set _text_output to formatList($_actorList, $_and)>> <<exit _text_output>> <</widget>> <<widget "shopHuntOptions">> <!-- Custom section for glowing box because it's so so special and unique --> <<if _locRaw is "glowingBox">> <<if $shopHunt.context is "garden">> The box emits light. <<if shopHuntLocsSearched().includes(_locRaw)>> Even without the light, you would know there's nothing here. You've already searched here. <<elseif shopHuntItemsPresent(_locRaw).length gte 1>> In the glow, <span class="green">you can already see a <<shopHuntItemsPresent _locRaw true>>.</span> <br> <<link [[Pick up the <<shopHuntItemsPresent _locRaw true>>|Forest Shop Hunt]]>><<shopHuntAction "search">><</link>> <<else>> In the glow, <span class="blue">you can see there's nothing here.</span> <</if>> <<else>> <<set $shopHunt.lightTarget to "here">> The box emits too much light. Hiding near it <span class="red">will be impossible.</span> <br> <<if shopHuntLocsSearched().includes(_locRaw)>> Even without the light, you would know there's nothing here. You've already searched here. <<else>> However, in the glow of the light, you don't need to waste time searching. <<if shopHuntItemsPresent(_locRaw).length gte 1>> <span class="green">You can already see a <<shopHuntItemsPresent _locRaw true>>.</span> <br> <<link [[Pick up the <<shopHuntItemsPresent _locRaw true>>|Forest Shop Hunt]]>><<shopHuntAction "search">><</link>> <<else>> <span class="blue">You can see there's nothing here.</span> <</if>> <</if>> <<if _act isnot "light">> <br><br> If you were to lift up the box, everyone in the shop would be able to see it. <<if $shopHunt.item.mirror is "player">> <<set $_icon to "mirror">> Alternatively, <span class="gold">you could use the mirror to shine light somewhere else</span> and draw their attention that way. <<else>> <<set $_icon to "light">> <</if>> <br> <<if $shopHunt.item.mirror is "player">> Direct the light... <br> <<for $_m range Object.keys(_bordering)>> <label><<print $_m.toUpperFirst()>> <<radiobutton "$shopHunt.lightTarget" $_m autocheck>></label> | <</for>> <label>Here <<radiobutton "$shopHunt.lightTarget" "here" autocheck>></label> <br> <</if>> <<shopHuntIcon $_icon "action">><<link [[Attract attention with light|Forest Shop Hunt]]>><<set $shopHunt.player.action to "light">><</link>> <</if>> <</if>> <<else>> <!-- Hide options --> <<if $shopHunt.context isnot "garden">> <<if _loc.state.includes("fallen")>> With the <<shopHuntLocName _locRaw "simple">> fallen, hiding near it <span class="red">will be impossible</span>. <<else>> <<if _loc.special.includes("noisy") and $shopHunt.player.seen.includes("hideNoisy")>> You know by now that the <<shopHuntLocName _locRaw>> is <span class="red">too noisy</span> to be an effective hiding spot. <<elseif _loc.special.includes("hat") and $worn.head.type.includes("hat")>> The <<shopHuntLocName _locRaw "simple">> would normally make for a <<print ["poor","decent","good"][_loc.hide]>> hiding spot. However, if you use your $worn.head.name to blend in, <span class="green">it will be an excellent hiding spot</span>. <<set $_hatSeen to $shopHunt.actors.filter(x => !!x.state and x.seen.includes("hat") and !["nobody","mannequin"].includes(x.type))>> <<if $_hatSeen.length gte 1>> <br> You've pulled this trick on <<shopHuntActorList $_hatSeen>>. It won't work twice. <</if>> <<set _loc.hide to 4>> <<else>> The <<shopHuntLocName _locRaw "simple">> would make for a <span @class="['pink','purple','blue','lblue'][_loc.hide]"><<print ["horrible","poor","decent","good"][_loc.hide]>></span> hiding spot. <</if>> <<if _loc.special.includes("inside")>> However, <span class="green">it would be an excellent hiding spot</span> if you hid inside. <</if>> <br> <<capture _loc>> <<if _loc.special.includes("inside")>> <<shopHuntIcon "hide">><<link [[Hide outside|Forest Shop Hunt]]>><<shopHuntAction "hide" _loc.hide>><</link>> <br> <<shopHuntIcon _locRaw "hide">><<link [[Hide inside|Forest Shop Hunt]]>><<shopHuntAction "hide" 4>><</link>> <<else>> <<shopHuntIcon "hide">><<link [[Hide|Forest Shop Hunt]]>><<shopHuntAction "hide" _loc.hide>><</link>> <</if>> <</capture>> <</if>> <br> <</if>> <!-- Searching options --> <<if $shopHunt.context is "garden" and $shopHunt.actors.filter(x => x.state is "statue").length gte 1>> <<set $_actorsPresent to shopHuntContains(_locRaw).filter(x => typeof x is "number" and !$shopHunt.actors[x].seen.includes("searchKey"))>> <<if $_actorsPresent.length gte 1 and $shopHunt.item.key isnot "player">> <<set $shopHunt.searchTarget to $_actorsPresent[0]>> Search... <br> <<for $_m range $_actorsPresent>> <<if $_m isnot $_actorsPresent[0]>> | <</if>> <label><<shopHuntActorName $_m "cap">> <<radiobutton "$shopHunt.searchTarget" $_m autocheck>></label> <</for>> <br> <<shopHuntIcon "search">><<link [[Search|Forest Shop Hunt]]>><<shopHuntAction "searchActor">><</link>> <</if>> <<else>> <<if shopHuntLocsSearched().includes(_locRaw)>> <<if $shopHunt.shop.shuffle.history[0] gt $shopHunt.player.map[shopHuntCoords(_locRaw)[0]][shopHuntCoords(_locRaw)[1]].searched and !$shopHunt.player.seen.includes("shuffleSearch")>> <<set $shopHunt.player.seen.pushUnique("shuffleSearch")>> The <<shopHuntLocName _locRaw>> isn't where you remember it, but the area itself looks unchanged. <</if>> You've already searched here. There's nothing here. <<elseif _locRaw is "hangingBasket" and !_loc.state.includes("fallen") and $shopHunt.player.seen.includes("basketFail")>> <span class="purple">There's no point in trying to search the basket while it's still hanging above you.</span> <<else>> <<if $shopHunt.player.seen.includes(_locRaw + "Item")>> <span class="gold">You already know what's here.</span> <br> <<shopHuntIcon "search">><<link [[Search for <<shopHuntItemsPresent _locRaw true>>|Forest Shop Hunt]]>><<shopHuntAction "search">><</link>> <<elseif $shopHunt.context is "garden">> <<if $shopHunt.item.key isnot "player">> <<shopHuntIcon "search">><<link [[Search for key|Forest Shop Hunt]]>><<shopHuntAction "search">><</link>> <</if>> <<else>> <<shopHuntIcon "search">><<link [[Search for items|Forest Shop Hunt]]>><<shopHuntAction "search">><</link>> <</if>> <</if>> <br> <</if>> <</if>> <!-- Special options --> <<if $shopHunt.context isnot "garden">> <<if _loc.special.includes("noisy") and _act isnot "sound">> <<if $shopHunt.commands.includes("voice")>> <<if !$shopHunt.player.seen.includes("voiceStolenLoc")>> <<set $shopHunt.player.seen.pushUnique("voiceStolenLoc")>> <br> Your voice has been stolen, but <span class="blue">you could get someone's attention by making the <<shopHuntLocName _locRaw "simple">> <<shopHuntLocName _locRaw "sound">></span>. <</if>> <</if>> <br> <<shopHuntIcon _locRaw>><<link [[Make noise with the <<shopHuntLocName _locRaw>>|Forest Shop Hunt]]>><<shopHuntAction "sound" "location">><</link>> <<elseif _act isnot "sound">> <<if $shopHunt.commands.includes("voice")>> <<if !$shopHunt.player.seen.includes("voiceStolen")>> <<set $shopHunt.player.seen.pushUnique("voiceStolen")>> <br> Your voice has been stolen. <span class="purple">You can't get attention by screaming.</span> <</if>> <<else>> <br> <<shopHuntIcon "yell">><<link [[Scream|Forest Shop Hunt]]>><<shopHuntAction "sound" "yell">><</link>> <</if>> <</if>> <<set $_actorsFound to arrayConvert(Object.keys($actorFound).filter(x => Object.values($actorFound[x]).flat().includes("player")), "number")>> <<set $_enemyPresent to _playerFound[_locRaw].filter(x => typeof x is "number" and $shopHunt.actors[x].role is "enemy" and Object.values($shopHunt.actors[x].stun).length is 0)>> <<set $_hasNotFound to arrayIntersect($_enemyPresent, $_actorsFound, 1, true)>> <<if $_hasNotFound.length gte 1 and _act isnot "ambush">> <<set $shopHunt.ambushTarget to $_hasNotFound[0]>> <br><br> <<shopHuntActorList $_hasNotFound "cap">> <<= $_hasNotFound.length is 1 ? "hasn't" : "haven't">> noticed you. You could ambush <<= $_hasNotFound.length is 1 ? "<<shopHuntPronoun 'him' $_hasNotFound[0]>>" : "one of them">>. <br> <<for $_m range $_hasNotFound>> <<if $_m isnot $_hasNotFound[0]>> | <</if>> <label><<shopHuntActorName $_m "cap" "trueName">> <<radiobutton "$shopHunt.ambushTarget" $_m autocheck>></label> <</for>> <br> <<shopHuntIcon "ambush">><<link [[Ambush|Forest Shop Hunt]]>><<shopHuntAction "ambush">><</link>> <</if>> <<if _loc.special.includes("fall") and !_loc.state.includes("fallen")>> <br><br> The <<shopHuntLocName _locRaw "simple">> <<= _locRaw is "hangingBasket" ? "hangs" : "stands">> precariously. <<if shopHuntActorsPresent(false, "enemy").length gte 1>> <<set $_present to shopHuntActorsPresent("id", "enemy")>> <span class="gold">You could make it fall on <<shopHuntActorList $_present "singleMannequin" "or">>.</span> <<if shopHuntActorsPresent(false, "enemy").length gte 2>> <span class="red">However, that will leave you wide open to the <<= shopHuntActorsPresent(false, "enemy").length is 2 ? "other" : "others">>.</span> <</if>> <br> <<for $_i to 0; $_i lt shopHuntActorsPresent(false, "enemy").length; $_i++>> <<capture $_i>> <<shopHuntIcon _locRaw "fallen">><<link [[Drop the <<shopHuntLocName _locRaw "simple">> on <<shopHuntActorName $_present[$_i] "trueName">>|Forest Shop Hunt]]>><<shopHuntAction "fall" `shopHuntActorsPresent(false, "enemy")[$_i].id`>><</link>> <br> <</capture>> <</for>> <<else>> <br> <<shopHuntIcon _locRaw "fallen">><<link [[Knock the <<shopHuntLocName _locRaw "simple">> down|Forest Shop Hunt]]>><<shopHuntAction "fall">><</link>> <</if>> <</if>> <<if _loc.special.includes("scatter") and !_loc.state.includes("scattered")>> <br> <<if _locRaw is "hangingBasket" and !_loc.state.includes("fallen") and $shopHunt.player.seen.includes("basketFail")>> <span class="purple">There's no point in trying to scatter the basket's contents while it's still hanging above you.</span> <<else>> The <<shopHuntLocName _locRaw "simple">> has plenty of things you could scatter on the floor. <br> <<shopHuntIcon "scatter">><<link [[Scatter items from the <<shopHuntLocName _locRaw "simple">>|Forest Shop Hunt]]>><<shopHuntAction "scatter">><</link>> <</if>> <</if>> <</if>> <<if shopHuntFind("door") is _locRaw>> <<if $shopHunt.context is "garden" and $shopHunt.item.key is "player" and $shopHunt.actors.filter(x => x.state is "guard").length gte 1>> <<for $_i to 0; $_i lt $shopHunt.actors.length; $_i++>> <<shopHuntActorSetState $_i "statue">> <</for>> <<set $shopHunt.item.key to Object.values(_playerFound).flat().random()>> <<shopHuntShuffle "gardenKey">> <span class="gold">The <<shopHuntDoor>> is here.</span> You reach to grab the key, but freeze. <span class="red">You lost the key.</span> <<else>> <br><br> <span class="gold">The <<shopHuntDoor>> is here.</span> <<if $shopHunt.item.key is "player">> <<if $shopHunt.actors.filter(x => ["eden","gwylan"].includes(x.type)).length is 2 and $shopHunt.actors.filter(x => ["eden","gwylan"].includes(x.type) and x.role is "enemy").length isnot 2>> You have the key, but <span class="blue">escaping would mean <<if $shopHunt.context is "rescue">> leaving Gwylan <<else>> leaving Eden <</if>> behind.</span> <<else>> <span class="green">You have the key!</span> <</if>> <br> <<shopHuntIcon "key">><<link [[Unlock the <<shopHuntDoor>>|Forest Shop Hunt]]>><<shopHuntAction "key">><</link>> <<else>> <span class="red">You do not have the key.</span> <</if>> <</if>> <</if>> <br><br> <<shopHuntMap>> <!-- Movement --> <b><u>Locations:</u></b><br> <<set $_go to $shopHunt.actors.filter(x => x.state is "chase").length gte 1 ? "Run" : "Go">> <<if Object.values(_bordering).length is 1 and _act is "move" and $shopHunt.shop.shuffle.history[0] isnot $shopHunt.turns>> <<set $_backLoc to Object.values(_bordering)[0]>> <span class="purple">It's a dead end.</span> The only way to go is back to the <<shopHuntLocName $_backLoc>>. <br> <</if>> <<for $_i range Object.keys(_bordering)>> <<capture $_i>> <<set $_direction to shopHuntPlayerKnownMap(2).tiles.flat().includes(_bordering[$_i]) ? $_i + " to the <<shopHuntLocName _bordering[$_i]>>" : $_i>> <<if $shopHunt.commands.includes("towardEden") and shopHuntFind("eden") is _bordering[$_i]>> <<shopHuntIcon _bordering[$_i] $_i>><span class="red">Gwylan has forbidden you from going toward Eden.</span> <<else>> <<shopHuntIcon _bordering[$_i] $_i>><<link [[$_go $_direction|Forest Shop Hunt]]>><<shopHuntAction "move" $_i>><</link>> <</if>> <</capture>> <br> <</for>> <<shopHuntIcon _locRaw>><<link [[Wait here|Forest Shop Hunt]]>><<set $shopHunt.player.action to "wait">><</link>> <br> <<set $shopHunt.player.hide to 0>> <</widget>> <<widget "shopHuntDefeatActor">> <<set $shopHunt.actorsArchive.push(clone($shopHunt.actors[_args[0]]))>> <<set $shopHunt.actorsArchive[$shopHunt.actorsArchive.length - 1].idArchive to $shopHunt.actorsArchive.length - 1>> <<set $shopHunt.actors[_args[0]].state to null>> <</widget>> <<widget "shopHuntEffects">> <<if !["garden","game","rescue","kidnap","wraith","elkspawn"].includes($shopHunt.context)>> <<shopHuntEmergencyExit>> <<exitAll>> <</if>> <<run statusCheck("Gwylan")>> <<set _locRaw to shopHuntFind("player")>> <<set _loc to clone($shopHunt.locations[_locRaw])>> <<set _bordering to shopHuntBordering(shopHuntCoords(_locRaw))>> <<set $shopHunt.turns++>> <<pass 15 seconds>> <<if ($shopHunt.actors.filter(x => !!x.state && x.type is "mannequin").length is 0 or $shopHunt.turns % 8 is 3) and $shopHunt.shop.mannequins gte 1>> <<set $_amount to 1>> <<switch $shopHunt.context>> <<case "game">> /* Todo: Gwylan hunt, figure out mannequin spawning rules for the game. Mannequins probably shouldn't spawn during the first round or if the player is losing */ <<set $_role to "enemy">> <<case "kidnap">> <<set $_role to "enemy">> <<case "rescue" "wraith" "elkspawn">> <<set $_role to "ally">> <<case "elkspawn">> <<set $_role to "ally">> <<set $_amount to 2>> <</switch>> <<shopHuntCreateActorMannequin $_amount $_role>> <</if>> <<set $shopHunt.player.history.unshift({ position: $shopHunt.player.position, action: $shopHunt.player.action, hide: $shopHunt.player.hide, })>> <<if $shopHunt.player.history.length gt 15>> <<run $shopHunt.player.history.deleteAt(15)>> <</if>> <<for $_i to 0; $_i lt $shopHunt.actors.length; $_i++>> <<if !!$shopHunt.actors[$_i].state>> <<set $shopHunt.actors[$_i].history.unshift({ position: $shopHunt.actors[$_i].position, state: $shopHunt.actors[$_i].state, location: shopHuntLoc($shopHunt.actors[$_i].position), found: $actorFound[$_i], })>> <<if $shopHunt.actors[$_i].history.length gt 15>> <<run $shopHunt.actors[$_i].history.deleteAt(15)>> <</if>> <<if $shopHunt.player.state isnot "fight" or $shopHunt.turns % 3 is 0>> <<if Object.keys($shopHunt.actors[$_i].stun).length gte 1>> <<for $_o range Object.keys($shopHunt.actors[$_i].stun)>> <<if $shopHunt.actors[$_i].stun[$_o] gt 1>> <<set $shopHunt.actors[$_i].stun[$_o]-->> <<else>> <<unset $shopHunt.actors[$_i].stun[$_o]>> <</if>> <</for>> <</if>> <</if>> <</if>> <</for>> <<run shopHuntSeeLoc()>> <<set $actorFound to {}>> <<set $actorEvents to {}>> <<set _mannequinFound to []>> <<set _actorMoved to {}>> <<set _shopHuntScent to {}>> <<set _shopHuntMessage to []>> <<for $_i to 0; $_i lt $shopHunt.actors.length; $_i++>> <<set $actorFound[$_i] to {}>> <<set $actorEvents[$_i] to {}>> <</for>> <<if $shopHunt.turns % 5 is 0>> <<shopHuntMess>> <</if>> <<pain -2>> <</widget>> <<widget "shopHuntEmergencyExit">> <span class="red bold">WARNING! I apologise, but this encounter is bugged and unplayable.</span> Please take the emergency exit link to safely return to the forest. Your save file will be unaffected, but this encounter will immediately end without consequence. <br> <<if ["0.5.6.6"].includes($saveVersion)>> <span class="green">This bug has already been reported and fixed in the latest version,</span> so you don't need to worry about reporting this. <<else>> Please export your save file and report this as a bug to the developers. Encounter context: $shopHunt.context <</if>> <br><br> <<link [[Emergency exit|Forest]]>><<set $forest to 0>><<set $eventskip to 1>><<endcombat>><<shopHuntEnd>><</link>> <br><br><br><br> <</widget>> <<widget "shopHuntAction">> <<set $_coords to shopHuntCoords(shopHuntFind("player"))>> <<switch _args[0]>> <<case "move">> <<set $shopHunt.player.position to applyArrays($shopHunt.player.position, shopHuntDirectionApply(_args[1]))>> <<case "hide">> <<set $shopHunt.player.hide to _args[1]>> <<case "search">> <<set $shopHunt.player.map[$_coords[0]][$_coords[1]].searched to $shopHunt.turns>> <<case "fall" "sound" "key">> <<set $shopHunt.player.target to _args[1]>> <</switch>> <<set $shopHunt.player.action to _args[0]>> <</widget>> <<widget "shopHuntMap">> <<set $_map to shopHuntPlayerKnownMap()>> <<set $_length to Math.abs($_map.xBorder[0] - $_map.xBorder[1])>> <<set $_width to Math.abs($_map.yBorder[0] - $_map.yBorder[1])>> <<if $options.images is 1>> <<set _boxLocations to []>> <<set $_xVal to 4>> <<for $_x to 0; $_x lte $_length; $_x++>> <<set $_yVal to 4>> <<set _boxLocations.push([])>> <<for $_y to 0; $_y lte $_width; $_y++>> <<set _boxLocations[$_x][$_y] to { x: $_yVal, y: $_xVal }>> <<set $_yVal += 32>> <</for>> <<set $_xVal += 32>> <</for>> <<set $_xVal += 4>><<set $_yVal += 4>> <<svg $_yVal $_xVal>> <<set $_xPos to 4>> <<for $_x to 0; $_x lte $_length; $_x++>> <<set $_yPos to 4>> <<for $_y to 0; $_y lte $_width; $_y++>> <<set $_mapLoc to $_map.tiles[$_x][$_y]>> <<set $_loc to $shopHunt.locations[$_mapLoc]>> <<set $_seen to $shopHunt.player.map[$_x + $_map.xBorder[0]][$_y + $_map.yBorder[0]].seen>> <<if $_mapLoc is "wall">> /* Todo: Gwylan hunt, make this work with only one wall image that gets rotated */ <<set $_wall to shopHuntBordering([$_x + $_map.xBorder[0], $_y + $_map.yBorder[0]])>> <<if $_wall.north and $shopHunt.player.map[$_x + $_map.xBorder[0] - 1][$_y + $_map.yBorder[0]].seen is 2>> <<set $_mod to doArraysMatch(shopHuntCoords($shopHunt.shop.door.position), [$_x + $_map.xBorder[0] - 1, $_y + $_map.yBorder[0]]) and $shopHunt.shop.door.side is "south" ? "_doorNorth" : "">> <<set $_mod += $_mod and $shopHunt.shop.door.open ? "Open" : "">> <<set $_modOffset to $_mod.includes("Open") ? 4 : 0>> <image @x="$_yPos" @y="$_xPos - $_modOffset / 2" class="zoomable" @xlink:href="'img/misc/icon/shopHunt/wallHorizontal' + $_mod + '.png'" width="32" @height="4 + $_modOffset"> </image> <</if>> <<if $_wall.south and $shopHunt.player.map[$_x + $_map.xBorder[0] + 1][$_y + $_map.yBorder[0]].seen is 2>> <<set $_mod to doArraysMatch(shopHuntCoords($shopHunt.shop.door.position), [$_x + $_map.xBorder[0] + 1, $_y + $_map.yBorder[0]]) and $shopHunt.shop.door.side is "north" ? "_doorSouth" : "">> <<set $_mod += $_mod and $shopHunt.shop.door.open ? "Open" : "">> <<set $_modOffset to $_mod.includes("Open") ? 4 : 0>> <image @x="$_yPos" @y="$_xPos + 28 + $_modOffset / 2" class="zoomable" @xlink:href="'img/misc/icon/shopHunt/wallHorizontal' + $_mod + '.png'" width="32" @height="4 + $_modOffset"> </image> <</if>> <<if $_wall.west and $shopHunt.player.map[$_x + $_map.xBorder[0]][$_y + $_map.yBorder[0] - 1].seen is 2>> <<set $_mod to doArraysMatch(shopHuntCoords($shopHunt.shop.door.position), [$_x + $_map.xBorder[0], $_y + $_map.yBorder[0] - 1]) and $shopHunt.shop.door.side is "east" ? "_doorWest" : "">> <<set $_mod += $_mod and $shopHunt.shop.door.open ? "Open" : "">> <<set $_modOffset to $_mod.includes("Open") ? 4 : 0>> <image @x="$_yPos - $_modOffset / 2" @y="$_xPos" class="zoomable" @xlink:href="'img/misc/icon/shopHunt/wallVertical' + $_mod + '.png'" @width="4 + $_modOffset" height="32"> </image> <</if>> <<if $_wall.east and $shopHunt.player.map[$_x + $_map.xBorder[0]][$_y + $_map.yBorder[0] + 1].seen is 2>> <<set $_mod to doArraysMatch(shopHuntCoords($shopHunt.shop.door.position), [$_x + $_map.xBorder[0], $_y + $_map.yBorder[0] + 1]) and $shopHunt.shop.door.side is "west" ? "_doorEast" : "">> <<set $_mod += $_mod and $shopHunt.shop.door.open ? "Open" : "">> <<set $_modOffset to $_mod.includes("Open") ? 4 : 0>> <image @x="$_yPos + 28 + $_modOffset / 2" @y="$_xPos" class="zoomable" @xlink:href="'img/misc/icon/shopHunt/wallVertical' + $_mod + '.png'" @width="4 + $_modOffset" height="32"> </image> <</if>> <<elseif typeof $_mapLoc is "string">> /* <<set _canMoveTo = $debug || Object.keys(shopHuntBordering("player")).includes($_mapLoc)>> */ <<set _canMoveTo to Object.keys(_bordering).includes($_mapLoc)>> <<set _showMarker to $debug || ($options.mapMarkers && _canMoveTo)>> <<if $_mapLoc is "tiltedVanity" and $shopHunt.item.mirror isnot "tiltedVanity">> <<set $_mapLoc += "_noMirror">> <</if>> <<if $_loc.state.includes("fallen")>> <<set $_mapLoc += "_fallen">> <</if>> <<if $_seen is 2>> <image @x="$_yPos" @y="$_xPos" class="zoomable" @xlink:href="'img/misc/icon/shopHunt/' + $_mapLoc + '.png'" width="32" height="32"> </image> <<else>> <image @x="$_yPos" @y="$_xPos" class="zoomable" xlink:href="img/misc/icon/shopHunt/unknownLocation.png" width="32" height="32"> </image> <</if>> <<if shopHuntFind("player") is $_mapLoc>> <image @x="$_yPos" @y="$_xPos" class="zoomable" xlink:href="img/misc/icon/shopHunt/player.png" width="32" height="32"> </image> <</if>> <<if $_mapLoc is _shopHuntDecoy>> <image @x="$_yPos - 4" @y="$_xPos - 4" class="zoomable" xlink:href="img/misc/icon/shopHunt/overlay_noise.png" width="40" height="40"> </image> <</if>> /* Todo: Gwylan hunt, make icon clicking work. For the life of me I cannot make it work, it either errors out or causes too much recursion even without clicking * Something to do with <<add_link>> maybe? @onclick="shopHuntMapMove($_mapLoc);" */ <a class="shopHuntMapMove" @alt="$_seen is 2 ? shopHuntLocNameCap($_mapLoc) : '???'" @title="$_seen is 2 ? shopHuntLocNameCap($_mapLoc) : '???'"> <rect @x="_boxLocations[$_x][$_y].x" @y="_boxLocations[$_x][$_y].y" height="32" width="32" @style="'stroke:cyan;fill-opacity:0;stroke-opacity:' + (_showMarker ? '1' : '0.1') + ';'"> </rect> </a> <</if>> /* Todo: Gwylan hunt, make this work with only one wall image that gets rotated */ /* Todo: Gwylan hunt, add image for the door for if door location is known. Maybe also image for the door being open? Probably not necessary since if the door is open, the scene is basically over. */ <<if $_x is 0>> <<if typeof $_mapLoc is "string" and $_mapLoc isnot "wall" and $shopHunt.player.map[$_x][$_y + $_map.yBorder[0]].seen is 2>> <<set $_mod to doArraysMatch(shopHuntCoords($shopHunt.shop.door.position), [$_x, $_y + $_map.yBorder[0]]) and $shopHunt.shop.door.side is "north" ? "_doorNorth" : "">> <<set $_mod += $_mod and $shopHunt.shop.door.open ? "Open" : "">> <<set $_modOffset to $_mod.includes("Open") ? 4 : 0>> <image @x="$_yPos" @y="0 - $_modOffset / 2" class="zoomable" @xlink:href="'img/misc/icon/shopHunt/wallHorizontal' + $_mod + '.png'" width="32" @height="4 + $_modOffset"> </image> <</if>> <<elseif $_x is $_length>> <<if typeof $_mapLoc is "string" and $_mapLoc isnot "wall" and $shopHunt.player.map[$_length + $_map.xBorder[0]][$_y + $_map.yBorder[0]].seen is 2>> <<set $_mod to doArraysMatch(shopHuntCoords($shopHunt.shop.door.position), [$_length + $_map.xBorder[0], $_y + $_map.yBorder[0]]) and $shopHunt.shop.door.side is "south" ? "_doorSouth" : "">> <<set $_mod += $_mod and $shopHunt.shop.door.open ? "Open" : "">> <<set $_modOffset to $_mod.includes("Open") ? 4 : 0>> <image @x="$_yPos" @y="$_xVal - 4 + $_modOffset / 2" class="zoomable" @xlink:href="'img/misc/icon/shopHunt/wallHorizontal' + $_mod + '.png'" width="32" @height="4 + $_modOffset"> </image> <</if>> <</if>> <<if $_y is 0>> <<if typeof $_mapLoc is "string" and $_mapLoc isnot "wall" and $shopHunt.player.map[$_x + $_map.xBorder[0]][$_y].seen is 2>> <<set $_mod to doArraysMatch(shopHuntCoords($shopHunt.shop.door.position), [$_x + $_map.xBorder[0], $_y]) and $shopHunt.shop.door.side is "west" ? "_doorWest" : "">> <<set $_mod += $_mod and $shopHunt.shop.door.open ? "Open" : "">> <<set $_modOffset to $_mod.includes("Open") ? 4 : 0>> <image @x="0 - $_modOffset / 2" @y="$_xPos" class="zoomable" @xlink:href="'img/misc/icon/shopHunt/wallVertical' + $_mod + '.png'" @width="4 + $_modOffset" height="32"> </image> <</if>> <<elseif $_y is $_width>> <<if typeof $_mapLoc is "string" and $_mapLoc isnot "wall" and $shopHunt.player.map[$_x + $_map.xBorder[0]][$_width + $_map.yBorder[0]].seen is 2>> <<set $_mod to doArraysMatch(shopHuntCoords($shopHunt.shop.door.position), [$_x + $_map.xBorder[0], $_width + $_map.yBorder[0]]) and $shopHunt.shop.door.side is "east" ? "_doorEast" : "">> <<set $_mod += $_mod and $shopHunt.shop.door.open ? "Open" : "">> <<set $_modOffset to $_mod.includes("Open") ? 4 : 0>> <image @x="$_yVal - 4 + $_modOffset / 2" @y="$_xPos" class="zoomable" @xlink:href="'img/misc/icon/shopHunt/wallVertical' + $_mod + '.png'" @width="4 + $_modOffset" height="32"> </image> <</if>> <</if>> <<if $shopHunt.player.map[$_x + $_map.xBorder[0]][$_y + $_map.yBorder[0]].seen is 2>> <<set $_walls to Object.keys(shopHuntBordering([$_x + $_map.xBorder[0],$_y + $_map.yBorder[0]],"wall")).filter(x => shopHuntBordering([$_x + $_map.xBorder[0],$_y + $_map.yBorder[0]],"wall")[x] === "wall")>> <<set $_cornerPos to []>> <<if $_walls.includesAll("north","west")>> <<set $_cornerPos.push({ x: -4, y: -4 })>> <</if>> <<if $_walls.includesAll("north","east")>> <<set $_cornerPos.push({ x: 32, y: -4 })>> <</if>> <<if $_walls.includesAll("south","west")>> <<set $_cornerPos.push({ x: -4, y: 32 })>> <</if>> <<if $_walls.includesAll("south","east")>> <<set $_cornerPos.push({ x: 32, y: 32 })>> <</if>> <<if $_cornerPos.length gte 1>> <<for $_c to 0; $_c lt $_cornerPos.length; $_c++>> <image @x="$_yPos + $_cornerPos[$_c].x" @y="$_xPos + $_cornerPos[$_c].y" class="zoomable" xlink:href="img/misc/icon/shopHunt/wallCorner.png" width="4" height="4"> </image> <</for>> <</if>> <<run delete $_cornerPos>> <</if>> <<if $debug and $shopHuntMinigameTest>> <<set $_actorsPresent to shopHuntContains(shopHuntLoc([$_x, $_y])).filter(z => typeof z is "number")>> <<if $_actorsPresent.length gte 1>> <<set $_actorPos to 0>> <<for $_a to 0; $_a lt $_actorsPresent.length; $_a++>> <<set $_actorX to $_a * 6>> <<set $_actorY to 0>> <<if $_actorX gte 24>> <<set $_actorY += Math.floor($_actorX / 24)>> <<set $_actorX %= 24>> <</if>> <<set $_actorY *= 8>> <<set $_actorX += 4>><<set $_actorY += 4>> /* Todo: Gwylan hunt IT WON'T FUCKING WORK THE FUCKING ICONS DON'T GO IN THE RIGHT SPOTS THEY'RE RANDOMLY OFFSET 32 PIXELS UP OR SOMETIMES THEY'RE NOT WHAT THE FUCK IS WRONG WITH THIS I'VE TRIED EVERYTHING * It's ultimately fine, this is debug code that isn't essential for release, but fucking hell it's frustrating * Just change the Y line from +4 to -28 based on what map is being tested. whatever man. */ <<if $shopHunt.actors[$_actorsPresent[$_a]].type is "mannequin">> /* Currently, the shop can only generate a maximum of six mannequins at once. However, just in case this is changed, there are enough images to support up to 13 mannequins at once */ <<set $_actorImage to $shopHunt.actors[$_actorsPresent[$_a]].mannequinId>> <<else>> <<set $_actorImage to $shopHunt.actors[$_actorsPresent[$_a]].type>> <</if>> <image @x="$_yPos + $_actorX" @y="$_xPos + $_actorY" class="zoomable" @xlink:href="'img/misc/icon/shopHunt/debug/' + $_actorImage + '.png'" width="5" height="8"> </image> <</for>> <</if>> <</if>> <<set $_yPos += 32>> <</for>> <<set $_xPos += 32>> <</for>> <</svg>> <br><br> <</if>> <</widget>> <<widget "shopHuntStun">> <<set $_id to _args[0]>> <<set $_turns to _args[1]>> <<if _args[2] instanceof Array>> <<for $_i range _args[2]>> <<if $shopHunt.actors[$_id].stun[$_i] is undefined>> <<set $shopHunt.actors[$_id].stun[$_i] to 0>> <</if>> <<if _args[3]>> <<set $shopHunt.actors[$_id].stun[$_i] to $_turns>> <<else>> <<set $shopHunt.actors[$_id].stun[$_i] += $_turns>> <</if>> <</for>> <<else>> <<if $shopHunt.actors[$_id].stun[_args[2]] is undefined>> <<set $shopHunt.actors[$_id].stun[_args[2]] to 0>> <</if>> <<if _args[3]>> <<set $shopHunt.actors[$_id].stun[_args[2]] to $_turns>> <<else>> <<set $shopHunt.actors[$_id].stun[_args[2]] += $_turns>> <</if>> <</if>> <</widget>> <<widget "shopHuntActors">> <<if $shopHunt.player.state isnot "fight" or $shopHunt.turns % 3 is 0>> <!-- Movement --> <<for $_i to 0; $_i lt $shopHunt.actors.length; $_i++>> <<if !!$shopHunt.actors[$_i].state and !$shopHunt.actors[$_i].stun.move and !$shopHunt.actors[$_i].stun.all and !($shopHunt.actors[$_i].role is "enemy" and shopHuntContains(_locRaw).includes($_i) and $shopHunt.actors[$_i].state isnot "drag" and !$shopHunt.player.hide) and $shopHunt.actors[$_i].target isnot "reload">> <<switch $shopHunt.actors[$_i].state>> <<case "roam" "search" "check" "rush" "statue" "alert">> <<if $shopHunt.actors[$_i].movement.length is 0>> <<if $shopHunt.actors[$_i].target>> <<set $_destination to $shopHunt.actors[$_i].target>> <<set $shopHunt.actors[$_i].target to false>> <<elseif $shopHunt.actors[$_i].type is "mannequin" and $shopHunt.actors[$_i].role is "enemy" and $shopHunt.actors[$_i].state is "roam" and $shopHunt.locations[shopHuntFind($_i)].special.includes("inside") and !$shopHunt.locations[shopHuntFind($_i)].state.includes("ambush")>> <<set $shopHunt.actors[$_i].state to "ambush">> <<set $shopHunt.locations[shopHuntFind($_i)].state.pushUnique("ambush")>> <<continue>> <<else>> <<set $_possibleLocs to arrayIntersect($shopHunt.actors[$_i].history.map(x => x.location), $shopLocs, 0, true).filter(x => $shopLocs.includes(x))>> <<set $_destination to $_possibleLocs.random()>> <<if ["check","rush","alert"].includes($shopHunt.actors[$_i].state)>> <<set $shopHunt.actors[$_i].state to "roam">> <</if>> <</if>> <<if $gridConsoleEnable>> <<run console.log("map: " + $shopHunt.actors[$_i].name + " (ID " + $_i + ") moving to " + $_destination + " in state " + $shopHunt.actors[$_i].state)>> <</if>> <<set $shopHunt.actors[$_i].movement to aStarMovement($shopHunt.actors[$_i].position, shopHuntCoords($_destination), aStarGetObstacles("shopHunt", $shopHunt.actors[$_i].obstaclePass), $shopHuntMap)>> <</if>> <<if $shopHunt.actors[$_i].state is "statue" and ( shopHuntFind($_i) is _locRaw or Object.values(T.bordering).includes(shopHuntFind($_i)) or Object.values(T.bordering).includes(shopHuntLoc(applyArrays($shopHunt.actors[$_i].position, $shopHunt.actors[$_i].movement[0]))) or $shopHunt.actors[$_i].history.map(x => x.found).slice(0,3).filter(x => x and Object.values(x).flat().includes("player")).length gte 1 and $shopHunt.player.history.slice(0,3).map(x => x.shuffle).filter(x => x === true).length is 0 )>> <!-- Do nothing --> <<else>> <<set $shopHunt.actors[$_i].position to applyArrays($shopHunt.actors[$_i].position, $shopHunt.actors[$_i].movement[0])>> <<run $shopHunt.actors[$_i].movement.deleteAt(0)>> <<if $shopHunt.actors[$_i].movement.length gte 1 and $shopHunt.actors[$_i].state is "rush">> <<set $shopHunt.actors[$_i].position to applyArrays($shopHunt.actors[$_i].position, $shopHunt.actors[$_i].movement[0])>> <<run $shopHunt.actors[$_i].movement.deleteAt(0)>> <</if>> <<if $shopHunt.actors[$_i].state is "search">> <<shopHuntStun $_i 1 "move">> <</if>> <<set _actorMoved[$_i] to $shopHunt.actors[$_i].position>> <</if>> <<case "march" "flee" "drag">> <<if $shopHunt.actors[$_i].movement.length gte 1>> <<set $shopHunt.actors[$_i].position to applyArrays($shopHunt.actors[$_i].position, $shopHunt.actors[$_i].movement[0])>> <<run $shopHunt.actors[$_i].movement.deleteAt(0)>> <<set _actorMoved[$_i] to $shopHunt.actors[$_i].position>> <<elseif $shopHunt.actors[$_i].target and $shopHunt.actors[$_i].target isnot shopHuntFind($_i)>> <<set $_destination to $shopHunt.actors[$_i].target>> <<set $shopHunt.actors[$_i].target to false>> <<if $gridConsoleEnable>> <<run console.log("map: " + $shopHunt.actors[$_i].name + " (ID " + $_i + ") moving to " + $_destination + " in state " + $shopHunt.actors[$_i].state)>> <</if>> <<set $shopHunt.actors[$_i].movement to aStarMovement($shopHunt.actors[$_i].position, shopHuntCoords($_destination), aStarGetObstacles("shopHunt", $shopHunt.actors[$_i].obstaclePass), $shopHuntMap)>> <<set $shopHunt.actors[$_i].position to applyArrays($shopHunt.actors[$_i].position, $shopHunt.actors[$_i].movement[0])>> <<run $shopHunt.actors[$_i].movement.deleteAt(0)>> <<set _actorMoved[$_i] to $shopHunt.actors[$_i].position>> <<else>> <<if $shopHunt.actors[$_i].state is "flee">> <<set $shopHunt.actors[$_i].state to "roam">> <<elseif $shopHunt.actors[$_i].state is "march">> <<set $shopHunt.actors[$_i].state to "guard">> <</if>> <</if>> <<if $shopHunt.actors[$_i].state is "drag">> <<set $shopHunt.player.position to $shopHunt.actors[$_i].position>> <<set _locRaw to shopHuntFind("player")>> <<set _loc to clone($shopHunt.locations[_locRaw])>> <<set _bordering to shopHuntBordering(shopHuntCoords(_locRaw))>> <</if>> <<case "chase" "follow">> <<if shopHuntContains(shopHuntLoc($shopHunt.actors[$_i].position)).includes($shopHunt.actors[$_i].target)>> <<if shopHuntCheckHide($_i, T.locRaw, true)>> <<shopHuntActorFound $_i "chase">> <<else>> <<if $shopHunt.actors[$_i].state is "chase">> <<set _shopHuntMessage.push({ actor: $_i, type: "chaseLost" })>> <</if>> <<set $_destination to shopHuntUntilWall($shopHunt.actors[$_i].position, shopHuntDirectionGet(applyArrays($shopHunt.actors[$_i].position, $shopHunt.actors[$_i].history.find(x => !doArraysMatch(V.shopHunt.actors[$_i].position, x.position)).position, "subtraction")))>> <<set $shopHunt.actors[$_i].movement to aStarMovement($shopHunt.actors[$_i].position, $_destination, aStarGetObstacles("shopHunt", $shopHunt.actors[$_i].obstaclePass), $shopHuntMap)>> <<set $shopHunt.actors[$_i].state to "check">> <<if $shopHunt.actors[$_i].movement.length is 0>> <<set $shopHunt.actors[$_i].state to "roam">> <<set $_possibleLocs to arrayIntersect($shopHunt.actors[$_i].history.map(x => x.location), $shopLocs, 0, true).filter(x => $shopLocs.includes(x))>> <<set $_destination to $_possibleLocs.random()>> <<set $shopHunt.actors[$_i].movement to aStarMovement($shopHunt.actors[$_i].position, shopHuntCoords($_destination), aStarGetObstacles("shopHunt", $shopHunt.actors[$_i].obstaclePass), $shopHuntMap)>> <</if>> <<set $shopHunt.actors[$_i].position to applyArrays($shopHunt.actors[$_i].position, $shopHunt.actors[$_i].movement[0])>> <<run $shopHunt.actors[$_i].movement.deleteAt(0)>> <<set _actorMoved[$_i] to $shopHunt.actors[$_i].position>> <<set $shopHunt.actors[$_i].target to false>> <</if>> <<elseif Object.values($shopHunt.actors[$_i].history[0].found).flat().includes($shopHunt.actors[$_i].target)>> <<if $gridConsoleEnable>> <<run console.log("map: " + $shopHunt.actors[$_i].name + " (ID " + $_i + ") moving to player's last known location in state " + $shopHunt.actors[$_i].state)>> <</if>> <<set $shopHunt.actors[$_i].movement to aStarMovement($shopHunt.actors[$_i].position, shopHuntCoords(Object.keys($shopHunt.actors[$_i].history[0].found).filter(x => $shopHunt.actors[$_i].history[0].found[x].includes($shopHunt.actors[$_i].target))[0]), aStarGetObstacles("shopHunt", $shopHunt.actors[$_i].obstaclePass), $shopHuntMap)>> <<set $shopHunt.actors[$_i].position to applyArrays($shopHunt.actors[$_i].position, $shopHunt.actors[$_i].movement[0])>> <<run $shopHunt.actors[$_i].movement.deleteAt(0)>> <<if $shopHunt.actors[$_i].state is "chase">> <<set $shopHunt.actors[$_i].chaseTimer-->> <<if $shopHunt.actors[$_i].chaseTimer lte 0>> <<shopHuntActorFound $_i "chase">> <<else>> <<set _shopHuntMessage.push({ actor: $_i, type: "chaseProgress" })>> <</if>> <</if>> <<set _actorMoved[$_i] to $shopHunt.actors[$_i].position>> <<else>> <<if $shopHunt.actors[$_i].state is "chase">> <<set _shopHuntMessage.push({ actor: $_i, type: "chaseLost" })>> <</if>> <<set $_direction to shopHuntDirectionGet(applyArrays($shopHunt.actors[$_i].position, $shopHunt.actors[$_i].history.find(x => !doArraysMatch(V.shopHunt.actors[$_i].position, x.position)).position, "subtraction"))>> <<set $shopHunt.actors[$_i].movement to aStarMovement($shopHunt.actors[$_i].position, $_destination, aStarGetObstacles("shopHunt", $shopHunt.actors[$_i].obstaclePass), $shopHuntMap)>> <<set $shopHunt.actors[$_i].state to "check">> <<if $shopHunt.actors[$_i].movement.length is 0>> <<set $shopHunt.actors[$_i].state to "roam">> <<set $_possibleLocs to arrayIntersect($shopHunt.actors[$_i].history.map(x => x.location), $shopLocs, 0, true).filter(x => $shopLocs.includes(x))>> <<set $_destination to $_possibleLocs.random()>> <<set $shopHunt.actors[$_i].movement to aStarMovement($shopHunt.actors[$_i].position, shopHuntCoords($_destination), aStarGetObstacles("shopHunt", $shopHunt.actors[$_i].obstaclePass), $shopHuntMap)>> <</if>> <<set $shopHunt.actors[$_i].position to applyArrays($shopHunt.actors[$_i].position, $shopHunt.actors[$_i].movement[0])>> <<run $shopHunt.actors[$_i].movement.deleteAt(0)>> <<set _actorMoved[$_i] to $shopHunt.actors[$_i].position>> <<set $shopHunt.actors[$_i].target to false>> <</if>> <<case "guide">> <<if shopHuntContains(shopHuntLoc($shopHunt.actors[$_i].position)).includes("player")>> <<if $shopHunt.actors[$_i].movement.length gte 1>> <<set $shopHunt.actors[$_i].position to applyArrays($shopHunt.actors[$_i].position, $shopHunt.actors[$_i].movement[0])>> <<run $shopHunt.actors[$_i].movement.deleteAt(0)>> <<set _actorMoved[$_i] to $shopHunt.actors[$_i].position>> <<elseif $shopHunt.actors[$_i].position is shopHuntCoords($shopHunt.actors[$_i].target)>> /* Todo: Gwylan hunt, actor successfully guiding the PC somewhere */ <<else>> <<if $gridConsoleEnable>> <<run console.log("map: " + $shopHunt.actors[$_i].name + " (ID " + $_i + ") moving to " + $shopHunt.actors[$_i].target + " in state " + $shopHunt.actors[$_i].state)>> <</if>> <<set $shopHunt.actors[$_i].movement to aStarMovement($shopHunt.actors[$_i].position, shopHuntCoords($shopHunt.actors[$_i].target), aStarGetObstacles("shopHunt"), $shopHuntMap)>> <<set $shopHunt.actors[$_i].position to applyArrays($shopHunt.actors[$_i].position, $shopHunt.actors[$_i].movement[0])>> <<run $shopHunt.actors[$_i].movement.deleteAt(0)>> <<set _actorMoved[$_i] to $shopHunt.actors[$_i].position>> <</if>> <<elseif Object.values(shopHuntBordering($shopHunt.actors[$_i].position)).includes(shopHuntFind("player"))>> <!-- Do nothing --> <<else>> <<if $gridConsoleEnable>> <<run console.log("map: " + $shopHunt.actors[$_i].name + " (ID " + $_i + ") moving to player's location in state " + $shopHunt.actors[$_i].state)>> <</if>> <<set $shopHunt.actors[$_i].movement to aStarMovement($shopHunt.actors[$_i].position, shopHuntCoords(shopHuntFind("player")), aStarGetObstacles("shopHunt", $shopHunt.actors[$_i].obstaclePass), $shopHuntMap)>> <<set $shopHunt.actors[$_i].position to applyArrays($shopHunt.actors[$_i].position, $shopHunt.actors[$_i].movement[0])>> <<run $shopHunt.actors[$_i].movement.deleteAt(0)>> <<set _actorMoved[$_i] to $shopHunt.actors[$_i].position>> <</if>> <<case "toPlayer">> <<if shopHuntContains(shopHuntLoc($shopHunt.actors[$_i].position)).includes("player")>> <<if $shopHunt.actors[$_i].role is "enemy">> /* Todo: Gwylan hunt, fighting */ <<else>> /* Todo: Gwylan hunt, allies switching to "guide" in certain contexts? */ <<set $shopHunt.actors[$_i].state to "follow">> <</if>> <<else>> <<if $gridConsoleEnable>> <<run console.log("map: " + $shopHunt.actors[$_i].name + " (ID " + $_i + ") moving to player's location in state " + $shopHunt.actors[$_i].state)>> <</if>> <<set $shopHunt.actors[$_i].movement to aStarMovement($shopHunt.actors[$_i].position, shopHuntCoords(shopHuntFind("player")), aStarGetObstacles("shopHunt", $shopHunt.actors[$_i].obstaclePass), $shopHuntMap)>> <<set $shopHunt.actors[$_i].position to applyArrays($shopHunt.actors[$_i].position, $shopHunt.actors[$_i].movement[0])>> <<run $shopHunt.actors[$_i].movement.deleteAt(0)>> <<set _actorMoved[$_i] to $shopHunt.actors[$_i].position>> <<if shopHuntContains(shopHuntLoc($shopHunt.actors[$_i].position)).includes("player")>> <<if $shopHunt.actors[$_i].role is "enemy">> /* Todo: Gwylan hunt, fighting */ <<else>> /* Todo: Gwylan hunt, allies switching to "guide" in certain contexts? */ <<set $shopHunt.actors[$_i].state to "follow">> <</if>> <</if>> <</if>> <<case "guard" "hide" "fight" "ambush" "hold">> <!-- Do nothing, move nowhere --> <</switch>> <</if>> <</for>> <!-- Searching --> <<for $_i to 0; $_i lt $shopHunt.actors.length; $_i++>> <<if !!$shopHunt.actors[$_i].state and !$shopHunt.actors[$_i].stun.search and !$shopHunt.actors[$_i].stun.all>> <<shopHuntActorSearch $_i>> <</if>> <</for>> <!-- Player searching --> <<set _playerFound to {}>> <<set $_playerSearchField to $shopLocs.filter(x => shopHuntWithinPlayerSight(x))>> <<if $_playerSearchField.includes(_locRaw)>> <<run $_playerSearchField.splice($_playerSearchField.indexOf(_locRaw), 1)>> <<set $_playerSearchField.unshift(_locRaw)>> <</if>> <<for $_i range $_playerSearchField>> <<set _playerFound[$_i] to shopHuntContains($_i).filter(x => typeof x is "number" and $shopHunt.actors[x].type isnot "nobody" and !["hide","ambush","drag"].includes($shopHunt.actors[x].state) and !($shopHunt.actors[x].state is "guard" and $shopHunt.actors[x].role is "neutral" and shopHuntSeenValue(shopHuntFind(x)) lt 2))>> <</for>> <</if>> <</widget>> <<widget "shopHuntTurn">> <!-- Messages --> <<for $_i to 0; $_i lt _shopHuntMessage.length; $_i++>> <<switch _shopHuntMessage[$_i].type>> <<case "chaseLost">> <span class="green"><<shopHuntActorName _shopHuntMessage[$_i].actor "cap">> lost your trail.</span> <<case "chaseProgress">> <<switch $shopHunt.actors[_shopHuntMessage[$_i].actor].chaseTimer>> <<case 3>> <span class="blue"><<shopHuntActorName _shopHuntMessage[$_i].actor "cap">> is chasing you.</span> <<case 2>> <span class="purple"><<shopHuntActorName _shopHuntMessage[$_i].actor "cap">> is closing in.</span> <<case 1>> <span class="pink"><<shopHuntActorName _shopHuntMessage[$_i].actor "cap">> is right on your heels!</span> <</switch>> <</switch>> <</for>> <<if _shopHuntMessage.length gte 1>> <br><br> <</if>> <!-- Footsteps text --> <<set $_footsteps to shopHuntFootstepsHeard()>> <<for $_i to 0; $_i lt Object.keys($_footsteps).length; $_i++>> <<set $_direction to Object.keys($_footsteps)[$_i]>> <<set $_footstepTypes to { close: [], distant: [] }>> <<for $_r range ["close","distant"]>> <<for $_o to 0; $_o lt Object.values($_footsteps)[$_i][$_r].length; $_o++>> <<switch shopHuntActorMakesFootsteps(Object.values($_footsteps)[$_i][$_r][$_o])>> <<case "vague">> <<set $_footstepTypes[$_r].pushUnique("movement")>> <<case "rush">> <<set $_footstepTypes[$_r].pushUnique("stampeding footsteps")>> <<case true>> <<switch $shopHunt.actors[Object.values($_footsteps)[$_i][$_r][$_o]].type>> <<case "eden">> <<set $_footstepTypes[$_r].pushUnique("creaky footsteps")>> <<case "mannequin">> <<set $_footstepTypes[$_r].pushUnique("wooden footsteps")>> <<case "elkspawn">> <<set $_footstepTypes[$_r].pushUnique("cacophonous stomps")>> <</switch>> <</switch>> <</for>> <</for>> <<if $shopHunt.context is "garden">> <<if $_footstepTypes.close.length gte 1>> <<set $_footstepsPrinted to true>> You hear <<formatList $_footstepTypes.close>> to the $_direction. <</if>> <<else>> <<if $_footstepTypes.close.length gte 1>> <<set $_footstepsPrinted to true>> You hear <<formatList $_footstepTypes.close>> close by, <<if $_footstepTypes.distant.length gte 1>> and more distant <<formatList $_footstepTypes.distant>>, <</if>> <<if $_direction is "here">> <span class="pink">right outside the <<shopHuntLocName _locRaw "simple">></span>. <<else>> to the $_direction. <</if>> <<elseif $_footstepTypes.distant.length gte 1>> <<set $_footstepsPrinted to true>> You hear distant <<formatList $_footstepTypes.distant>>, to the $_direction. <</if>> <</if>> <</for>> <<if $_footstepsPrinted>> <br><br> <</if>> <!-- Actors tripping out of sight of the player --> <<set $_tripPrinted to 0>> <<set $_mannequinsTripped to { north: 0, south: 0, east: 0, west: 0, northeast: 0, northwest: 0, southeast: 0, southwest: 0 }>> <<for $_i to 0; $_i lt Object.keys(_actorMoved).length; $_i++>> <<set $_actor to Number(Object.keys(_actorMoved)[$_i])>> <<set $_tripLoc to shopHuntLoc(Object.values(_actorMoved)[$_i])>> <<set $_direction to shopHuntRelativeDirection(_locRaw, $_tripLoc)>> <<set $_color to shopHuntActorColor($_actor, true)>> <<if !shopHuntWithinPlayerSight($_tripLoc) and !!$_tripLoc>> <<if $shopHunt.locations[$_tripLoc].state.includes("fallen") and !$shopHunt.actors[$_actor].seen.includes($_tripLoc + "Fall") and !["wraith","nobody"].includes($shopHunt.actors[$_actor].type)>> <<set $_tripPrinted++>><<shopHuntStun $_actor 1 "all">> <<set $shopHunt.actors[$_actor].seen.pushUnique($_tripLoc + "Fall")>> <<switch $shopHunt.actors[$_actor].type>> <<case "gwylan">> You hear <<shopHuntActorName $_actor>> yelp from the $_direction. You think <span @class="$_color"><<shopHuntPronoun "he">> tripped</span>. <<case "eden">> You hear a thud from the $_direction, followed by <<shopHuntActorName $_actor>> cursing. You think <span @class="$_color"><<shopHuntPronoun "he">> tripped</span>. <<set $shopHunt.actors[$_actor].tripped to true>> <<case "mannequin">> <<if $shopHunt.actors[$_actor].name is "giant fox plushie">> <<set $_silentTrip to true>> <<else>> <<set $_mannequinsTripped[$_direction]++>> <</if>> <<case "elkspawn">> <<shopHuntDamageActor $_actor 1 true>> /* Todo: Gwylan hunt elkspawn, how would it react here? I have it set that it takes damage from tripping because it's more cumbersome than the other actors */ <</switch>> <<elseif $shopHunt.locations[$_tripLoc].state.includes("scattered") and !$shopHunt.actors[$_actor].seen.includes($_tripLoc + "Scatter") and !["wraith","nobody"].includes($shopHunt.actors[$_actor].type)>> <<set $_tripPrinted++>><<shopHuntStun $_actor 1 "all">> <<set $shopHunt.actors[$_actor].seen.pushUnique($_tripLoc + "Scatter")>> <<switch $shopHunt.actors[$_actor].type>> <<case "gwylan">> You hear <<shopHuntActorName $_actor>> yelp from the $_direction. You think <span @class="$_color"><<shopHuntPronoun "he">> tripped</span>. <<case "eden">> You hear a thud from the $_direction, followed by <<shopHuntActorName $_actor>> cursing. You think <span @class="$_color"><<shopHuntPronoun "he">> tripped</span>. <<set $shopHunt.actors[$_actor].tripped to true>> <<case "mannequin">> <<if $shopHunt.actors[$_actor].name is "giant fox plushie">> <<set $_silentTrip to true>> <<else>> <<set $_mannequinsTripped[$_direction]++>> <</if>> <<case "elkspawn">> <<shopHuntDamageActor $_actor 1 true>> /* Todo: Gwylan hunt elkspawn, how would it react here? I have it set that it takes damage from tripping because it's more cumbersome than the other actors */ <</switch>> <</if>> <</if>> <</for>> <<if Object.values($_mannequinsTripped).reduce((a, b) => a + b) gte 1>> <<set $_mannequinDirections to Object.keys($_mannequinsTripped).filter(x => $_mannequinsTripped[x] gte 1)>> You hear the faint <<pluralise `Object.values($_mannequinsTripped).reduce((a, b) => a + b)` "sound">> of wood falling over from the <<formatList $_mannequinDirections>>. You think <span @class="$_color"><<number `Object.values($_mannequinsTripped).reduce((a, b) => a + b)`>> of the mannequins tripped</span>. <</if>> <<if $_silentTrip>> <<set $_silentTrip to false>> <<set $_tripPrinted-->> <</if>> <<if $_tripPrinted>> <br><br> <</if>> <!-- Scent, infrequent --> <<if Object.values(_shopHuntScent).length gte 1>> <<for $_i to 0; $_i lt Object.values(_shopHuntScent).length; $_i++>> <<set $_scentActor to $shopHunt.actors.find(x => x.type is Object.keys(_shopHuntScent)[$_i]).id>> <<if !Object.values(_playerFound).flat().includes($_scentActor)>> <<set $_direction to shopHuntRelativeDirection(_locRaw, Object.values(_shopHuntScent)[$_i])>> <<if !$_scentPrinted>> With your <span class="green"><<print hasSharpSenses("instincts")>></span>, you <<else>> You <</if>> catch <<shopHuntActorName $_scentActor>>'s scent to the $_direction. <<set $_scentPrinted to true>> <</if>> <</for>> <<if $_scentPrinted>> <br><br> <</if>> <</if>> <!-- Present --> <<set $_presentPrinted to 0>> <<if $shopHunt.player.hide isnot 4 or _locRaw is "spindlyHatStand">> <<for $_i to 0; $_i lt Object.values(_playerFound).length; $_i++>> <<if Object.values(_playerFound)[$_i].length gte 1>> <<set $_presentPrinted++>> <<if Object.keys(_playerFound)[$_i] is _locRaw>> <<for $_o range Object.values(_playerFound)[$_i]>> <<set $_presentClosePrinted to true>> <<if shopHuntFind($_o) is $shopHunt.actors[$_o].history[0].location>> <<if $shopHunt.actors[$_o].state is "hold">> <<shopHuntActorName $_o "cap">> holds you tight. <<elseif _act isnot "insideExit">> <<shopHuntActorName $_o "cap">> is here. <<else>> <<set $_presentPrinted-->> <</if>> <<else>> <<set $_direction to shopHuntRelativeDirection(shopHuntFind($_o), $shopHunt.actors[$_o].history[0].position)>> <<set $_origin to applyArrays($shopHunt.player.position, $_direction)>> <<if shopHuntObstacles().includes($_origin)>> <<if $shopHunt.actors[$_o].type is "wraith">> <<shopHuntActorName $_o "cap">> <span class="purple">emerges from the $_direction wall</span>. <<else>> <<shopHuntActorName $_o "cap">> <span class="purple">emerges from a hidden doorway in the $_direction wall</span>. <</if>> <<else>> <<shopHuntActorName $_o "cap">> arrives from the $_direction. <</if>> <<if $shopHunt.locations[Object.keys(_playerFound)[$_i]].state.includes("fallen") and !$shopHunt.actors[$_o].seen.includes(Object.keys(_playerFound)[$_i] + "Fall") and !["wraith","nobody"].includes($shopHunt.actors[$_o].type)>> <<set $_color to shopHuntActorColor($_o, true)>> <<shopHuntStun $_o 1 "all">> <<set $shopHunt.actors[$_o].seen.pushUnique(Object.keys(_playerFound)[$_i] + "Fall")>> <<switch $shopHunt.actors[$_o].type>> <<case "gwylan">> <<shopHuntPronoun "He">> yelps as <span @class="$_color"><<shopHuntPronoun "he">> trips on the <<shopHuntLocName `Object.keys(_playerFound)[$_i]`>></span>. <<case "eden">> <<shopHuntPronoun "He">> curses as <span @class="$_color"><<shopHuntPronoun "he">> trips on the <<shopHuntLocName `Object.keys(_playerFound)[$_i]`>></span>. <<set $shopHunt.actors[$_o].tripped to true>> <<case "mannequin">> <<shopHuntPronoun "He">> flails as <span @class="$_color"><<shopHuntPronoun "he">> trips on the <<shopHuntLocName `Object.keys(_playerFound)[$_i]`>></span>. <<case "elkspawn">> <<shopHuntDamageActor $_o 1 true>> <span class="orange">The elkspawn trips at the <<shopHuntLocName `Object.keys(_playerFound)[$_i]`>>.</span> /* Todo: Gwylan hunt elkspawn, how would it react here? I have it set that it takes damage from tripping because it's more cumbersome than the other actors */ <</switch>> <<elseif $shopHunt.locations[Object.keys(_playerFound)[$_i]].state.includes("scattered") and !$shopHunt.actors[$_o].seen.includes(Object.keys(_playerFound)[$_i] + "Scatter") and !["wraith","nobody"].includes($shopHunt.actors[$_o].type) and shopHuntFind($_o)>> <<set $_color to shopHuntActorColor($_o, true)>> <<shopHuntStun $_o 1 "all">> <<set $shopHunt.actors[$_o].seen.pushUnique(Object.keys(_playerFound)[$_i] + "Scatter")>> <<switch $shopHunt.actors[$_o].type>> <<case "gwylan">> <<shopHuntPronoun "He">> yelps as <span @class="$_color"><<shopHuntPronoun "he">> trips on the <<shopHuntLocName `Object.keys(_playerFound)[$_i]`>></span>. <<case "eden">> <<shopHuntPronoun "He">> curses as <span @class="$_color"><<shopHuntPronoun "he">> trips on the <<shopHuntLocName `Object.keys(_playerFound)[$_i]`>></span>. <<set $shopHunt.actors[$_o].tripped to true>> <<case "mannequin">> <<shopHuntPronoun "He">> flails as <span @class="$_color"><<shopHuntPronoun "he">> trips on the <<shopHuntLocName `Object.keys(_playerFound)[$_i]`>></span>. <<case "elkspawn">> <<shopHuntDamageActor $_o 1 true>> <span class="orange">The elkspawn trips at the scattered <<shopHuntLocName `Object.keys(_playerFound)[$_i]`>>.</span> /* Todo: Gwylan hunt elkspawn, how would it react here? I have it set that it takes damage from tripping because it's more cumbersome than the other actors */ <</switch>> <</if>> <</if>> <<if $shopHunt.actors[$_o].state is "guard" and $shopHunt.actors[$_o].role is "neutral" and $shopHunt.actors[$_o].target>> <<if $shopHunt.actors[$_o].target is "here">> <<shopHuntPronoun "He">> gestures <span @class="$shopHunt.item.key isnot 'player' ? 'gold' : ''">to the <<shopHuntLocName _locRaw "simple">></span>. <<elseif $shopHunt.actors[$_o].target>> <<shopHuntPronoun "He">> points towards the <span @class="$shopHunt.item.key isnot 'player' ? 'lblue' : ''"><<print $shopHunt.actors[$_o].target>></span>. <<if shopHuntLoc(applyArrays($shopHunt.player.position, shopHuntDirectionApply($shopHunt.actors[$_o].target))) is $shopHunt.item.key>> <span class="gold">This one seems more urgent than the others.</span> <</if>> <</if>> <</if>> <</for>> <<else>> <<if $_presentClosePrinted>> <br> <<set $_presentClosePrinted to false>> <</if>> <<set $_direction to shopHuntRelativeDirection(_locRaw, Object.keys(_playerFound)[$_i])>> <<shopHuntActorList `Object.values(_playerFound)[$_i]` "cap">> <<= _actorCount gt 1 ? "are" : "is">> to the <<if shopHuntSeenValue(_locRaw, $_direction) is 2>> $_direction, by the <<shopHuntLocName `Object.keys(_playerFound)[$_i]`>>. <<else>> $_direction. <</if>> <<for $_o range Object.values(_playerFound)[$_i]>> <<if $shopHunt.locations[Object.keys(_playerFound)[$_i]].state.includes("fallen") and !$shopHunt.actors[$_o].seen.includes(Object.keys(_playerFound)[$_i] + "Fall") and !["wraith","nobody"].includes($shopHunt.actors[$_o].type) and shopHuntFind($_o) isnot $shopHunt.actors[$_o].history[0].location>> <<set $_color to shopHuntActorColor($_o, true)>> <<shopHuntStun $_o 1 "all">> <<set $shopHunt.actors[$_o].seen.pushUnique(Object.keys(_playerFound)[$_i] + "Fall")>> <<switch $shopHunt.actors[$_o].type>> <<case "gwylan">> <<shopHuntActorName $_o "cap">> yelps as <span @class="$_color"><<shopHuntPronoun "he">> trips on the <<shopHuntLocName `Object.keys(_playerFound)[$_i]`>></span>. <<case "eden">> <<shopHuntActorName $_o "cap">> curses as <span @class="$_color"><<shopHuntPronoun "he">> trips on the <<shopHuntLocName `Object.keys(_playerFound)[$_i]`>></span>. <<set $shopHunt.actors[$_o].tripped to true>> <<case "mannequin">> <<shopHuntActorName $_o "cap">> flails as <span @class="$_color"><<shopHuntPronoun "he">> trips on the <<shopHuntLocName `Object.keys(_playerFound)[$_i]`>></span>. <<case "elkspawn">> <<shopHuntDamageActor $_o 1 true>> <span class="orange">The elkspawn trips at the <<shopHuntLocName `Object.keys(_playerFound)[$_i]`>>.</span> /* Todo: Gwylan hunt elkspawn, how would it react here? I have it set that it takes damage from tripping because it's more cumbersome than the other actors */ <</switch>> <<elseif $shopHunt.locations[Object.keys(_playerFound)[$_i]].state.includes("scattered") and !$shopHunt.actors[$_o].seen.includes(Object.keys(_playerFound)[$_i] + "Scatter") and !["wraith","nobody"].includes($shopHunt.actors[$_o].type) and shopHuntFind($_o) isnot $shopHunt.actors[$_o].history[0].location>> <<set $_color to shopHuntActorColor($_o, true)>> <<shopHuntStun $_o 1 "all">> <<set $shopHunt.actors[$_o].seen.pushUnique(Object.keys(_playerFound)[$_i] + "Scatter")>> <<switch $shopHunt.actors[$_o].type>> <<case "gwylan">> <<shopHuntActorName $_o "cap">> yelps as <span @class="$_color"><<shopHuntPronoun "he">> trips on the <<shopHuntLocName `Object.keys(_playerFound)[$_i]`>></span>. <<case "eden">> <<shopHuntActorName $_o "cap">> curses as <span @class="$_color"><<shopHuntPronoun "he">> trips on the <<shopHuntLocName `Object.keys(_playerFound)[$_i]`>></span>. <<set $shopHunt.actors[$_o].tripped to true>> <<case "mannequin">> <<shopHuntActorName $_o "cap">> flails as <span @class="$_color"><<shopHuntPronoun "he">> trips on the <<shopHuntLocName `Object.keys(_playerFound)[$_i]`>></span>. <<case "elkspawn">> <<shopHuntDamageActor $_o 1 true>> <span class="orange">The elkspawn trips at the scattered <<shopHuntLocName `Object.keys(_playerFound)[$_i]`>>.</span> /* Todo: Gwylan hunt elkspawn, how would it react here? I have it set that it takes damage from tripping because it's more cumbersome than the other actors */ <</switch>> <</if>> <</for>> <</if>> <</if>> <</for>> <<if $_presentPrinted>> <br><br> <</if>> <</if>> <!-- Eden shooting at other NPCs and being attacked by the shop --> <<if $shopHunt.actors.some(x => x.type is "eden" and x.state isnot null)>> <<set $_eden to $shopHunt.actors.find(x => x.type === "eden")>> <<set $_edenDirection to shopHuntRelativeDirection(_locRaw, $_eden.position)>> <<set $_edenDirectionPrint to $_edenDirection is "here" ? $shopHunt.player.hide is 4 and _loc.special.includes("inside") ? "outside the <<shopHuntLocName _locRaw 'simple'>>" : "here" : "the " + $_edenDirection>> <<set $_edenLoc to shopHuntFind("eden")>> <<set $_playerSeesEden to shopHuntLineOfSight("player", true).includes($_eden.id) and ($shopHunt.player.hide lte 3 or !_loc.special.includes("inside"))>> <<if $shopHunt.turns % 15 is 0 and $shopHunt.turns isnot 0 or $_eden.damaged or $_eden.tripped or $_eden.health lte 0>> /* Shop attacks with illusions, every X turns or if Eden is stunned? Too many sources of stun.all to use that */ <<shopHuntStun $_eden.id 1 "all">> <<set $shopHunt.illusion ||= 0>> <<switch $shopHunt.illusion>> <<case 0>> <<if $_playerSeesEden>> A phantasmal voice echoes from around <<shopHuntActorName $_eden.id>>. "<span class="witch">Do you think the forest has forgotten? It never does.</span>" <br> <<shopHuntPronoun "He">> looks around frantically. The sound of small creatures skittering echoes all around <<shopHuntPronoun "him">>. <<else>> A phantasmal voice echoes from the $_edenDirection. "<span class="witch">Do you think the forest has forgotten? It never does.</span>" <br> <<shopHuntActorName $_eden.id "cap">> growls. You hear hundreds of skittering footsteps from the same direction. <</if>> <<case 1>> <<if $_playerSeesEden>> A phantasmal voice echoes from around <<shopHuntActorName $_eden.id>>. "<span class="witch">You could never run far enough.</span>" <br> <<shopHuntPronoun "He">> takes aim at nothing. <<shopHuntPronoun "His">> hands lightly tremble. "I'm not running from anything." <<else>> A phantasmal voice echoes from the $_edenDirection. "<span class="witch">You could never run far enough.</span>" <br> <<shopHuntActorName $_eden.id "cap">> scoffs. "I'm not running from anything." <</if>> <<case 2>> <<if $_playerSeesEden>> A phantasmal voice echoes from around <<shopHuntActorName $_eden.id>>. "<span class="witch">You're terrified of your inability to keep <<phim>> safe. That feeling is so familiar, isn't it?</span>" <br> <<shopHuntPronoun "He">> yells into the gloom. "You don't know anything about me." A chorus of laughs answers <<shopHuntPronoun "him">>. <<else>> A phantasmal voice echoes from the $_edenDirection. "<span class="witch">You're terrified of your inability to keep <<phim>> safe. That feeling is so familiar, isn't it?</span>" <br> <<shopHuntActorName $_eden.id "cap">> yells. "You don't know anything about me." A chorus of laughs answers <<shopHuntPronoun "him">>. <</if>> <<case 3>> <<if $_playerSeesEden>> A phantasmal voice echoes from around <<shopHuntActorName $_eden.id>>. "<span class="witch">Every tree you've struck with a stray bullet. Every carcass you've left to rot. Your crimes are remembered.</span>" <br> <<shopHuntPronoun "He">> curses as footsteps echo all around <<shopHuntPronoun "him">>. <<else>> A phantasmal voice echoes from the $_edenDirection. "<span class="witch">Every tree you've struck with a stray bullet. Every carcass you've left to rot. Your crimes are remembered.</span>" <br> <<shopHuntActorName $_eden.id "cap">> curses. You hear stampeding footsteps from the same direction. <</if>> <<default>> <<if $_playerSeesEden>> A phantasmal voice echoes from around <<shopHuntActorName $_eden.id>>. "<span class="witch">I still remember the day. The day you damned more than one soul with your selfishness. Do you?</span>" There's a laugh. "<span class="witch">Oh my, that's right. That doesn't narrow it down at all, does it?</span>" <br> <<shopHuntPronoun "He">> flinches as a shadow leaps from the darkness. It fades before it strikes <<shopHuntPronoun "him">>. <span class="red">A screech pierces the gloom, and the darkness becomes tangible. It's suffocating.</span> <<else>> A phantasmal voice echoes from the $_edenDirection. "<span class="witch">I still remember the day. The day you damned more than one soul with your selfishness. Do you?</span>" There's a laugh. "<span class="witch">Oh my, that's right. That doesn't narrow it down at all, does it?</span>" <br> <span class="red">A screech pierces the gloom, and the darkness becomes tangible. It's suffocating.</span> <</if>> <</switch>> <br><br> <<set $shopHunt.illusion++>> <<if $_eden.health lte 0 or $shopHunt.illusion gte 5>> <<set $phase to "outlastEden">> <<include "Forest Shop Hunt Eden Torment">> <<exitAll>> <</if>> <<run delete $_eden.damaged>><<run delete $_eden.tripped>> <<elseif $_eden.target is "reload" and !$_eden.stun.all and !$_eden.stun.move>> /* Eden reloads */ <<shopHuntStun $_eden.id 1 "all">> <<set $_eden.ammo to 10>> <<set $_eden.target to false>> <<if $_playerSeesEden>> <span class="purple">You see <<shopHuntActorName $_eden.id>> pause to reload <<shopHuntPronoun "his">> rifle.</span> <<else>> You hear a series of sharp clicks from $_edenDirectionPrint. <span class="purple">Like a gun being reloaded.</span> <</if>> <br><br> <<elseif !$_eden.stun.all and !$_eden.stun.shoot and $_eden.target isnot "reload">> /* Eden tries to find a target in an adjecent tile and shoots */ /* ToDo: Gwylan hunt - allow Eden to shoot targets illuminated by the box or its redirected light? */ <<set $_edenTarget to $shopHunt.actors.filter(x => !!x.state && x.team !== $_eden.team && Object.values(shopHuntBordering($_eden.position)).includes(shopHuntFind(x.id)) && !["ambush","hide"].includes(x.state)).random()>> <<if $_edenTarget and !["chase", "ambush", "fight", "guide", "hide", "rush", "drag"].includes($_eden.state)>> <<set $_playerSeesTarget to shopHuntLineOfSight("player", true).includes($_edenTarget.id) and ($shopHunt.player.hide lte 3 or !_loc.special.includes("inside"))>> <<set $_bulletOrigin to $_eden.position>> <<set $_bulletDirection to shopHuntRelativeDirection($_eden.position, $_edenTarget.position)>> <<set $_bulletDest to arrayIntersect(shopHuntLocationsByDistance($_edenLoc, "steps", "ascending").map(x => x[0]), $shopHunt.actors.filter(x => countMatchesInArray(shopHuntUntilWall($_edenLoc, $_bulletDirection, true), x.position) && ["elkspawn","mannequin"].includes(x.type) && !!x.state).map(x => shopHuntLoc(x.position)))[0] or shopHuntLoc(shopHuntUntilWall("eden",$_bulletDirection))>> /* If you want to make it so the bullet stops upon hitting other actors, add them to the ["elkspawn","mannequin"] array in the above line. If you want to make it so the bullet DOESN'T stop at either of those, remove them */ <<set $_actorsAtBullet to shopHuntContains($_bulletDest).filter(x => typeof x is "number" && x isnot $_edenTarget.id || x is "player")>> <<set $_actorsBorderingBullet to []>> <<for $_b range Object.values(shopHuntBordering(shopHuntCoords($_bulletDest)))>> <<set $_actorsBorderingBullet to $_actorsBorderingBullet.concat(shopHuntContains($_b).filter(x => typeof x === "number" || x === "player"))>> <</for>> <<set $_edenTargetDirection to shopHuntRelativeDirection(_locRaw, $_edenTarget.position)>> <<set $_bulletDestDirection to shopHuntRelativeDirection(_locRaw, $_bulletDest)>> <<if !$_eden.ammo>> <<set $_eden.target to "reload">> <<if $_playerSeesEden>> <<shopHuntActorName $_eden.id "cap">> takes aim at <<if $_playerSeesTarget>> <<shopHuntActorName $_edenTarget.id>>, <<else>> something to <<shopHuntPronoun "his">> $_bulletDirection, <</if>> and pulls the trigger. <span class="blue">A dull click is the only result.</span> <<shopHuntPronoun "He" $_eden.id>> curses. <<else>> You hear a <span class="blue">dull click</span> from $_edenDirectionPrint, followed by <<shopHuntActorName $_eden.id>>'s voice cursing. <</if>> <<switch $_edenTarget.type>> <<case "gwylan">> <br> <<if $_playerSeesTarget>> <<shopHuntActorName $_edenTarget.id "cap">> giggles. <<else>> You hear <<shopHuntActorName $_edenTarget.id>> giggle <<if $_edenTargetDirection is "here">>right in front of you<<else>>from the $_edenTargetDirection<</if>>. <</if>> <<switch random(1,4)>> <<case 1>>"Forgetting to count your shots?" <<case 2>>"Oh my, you were really about to shoot me." <<shopHuntPronoun "He">> tuts. "How lucky for us both." <<case 3>>"Having trouble?" <<case 4>>"Run dry. If only your temper would follow." <</switch>> <<case "mannequin">> <br> <<if $_playerSeesTarget>> <<if $_edenTarget.name is "giant fox plushie">> You hear what sounds like the faintest high-pitched giggle in response. <<else>> <<shopHuntActorName $_edenTarget.id "cap">> claps mockingly. <</if>> <<else>> <<if $_edenTarget.name is "giant fox plushie">> You hear what sounds like the faintest high-pitched giggle in response. <<else>> You hear what sounds like wooden hands clapping from the $_edenTargetDirection in response. <</if>> <</if>> <<case "wraith">> <br> <<if $_playerSeesTarget>> <<shopHuntActorName $_edenTarget.id "cap">> smiles. <<else>> You hear <<shopHuntActorName $_edenTarget.id>> laugh in response. <</if>> "<span class="wraith">The venomous sting of futility.</span>" <<case "elkspawn">> <br> <<if $_playerSeesTarget>> <<shopHuntActorName $_edenTarget.id "cap">> lets out a strained, bestial laugh. <<else>> You hear strained, bestial laughter in response. <</if>> "Your hands tremble. Your heart pounds." <<default>> /* No response */ <</switch>> <<else>> <<set $_eden.ammo-->> <<shopHuntMess 1 `$_edenLoc + "BulletCasing"`>> <<if $_playerSeesEden>> <<shopHuntActorName $_eden.id "cap">> takes aim at <<if $_playerSeesTarget>> <<shopHuntActorName $_edenTarget.id>>, <<else>> something to <<shopHuntPronoun "his">> $_bulletDirection, <</if>> and pulls the trigger. <</if>> <<if $_edenTarget.type is "gwylan" and shopHuntContains(shopHuntLoc($_edenTarget.position)).includes("player") and !$shopHunt.player.hide>> <<shopHuntActorName $_edenTarget.id "cap">> grabs you and pulls you out of the way. <</if>> <<if $_playerSeesEden>> <span class="red">A deafening crack echoes through the shop.</span> <<else>> You hear a <span class="red">gunshot</span> from $_edenDirectionPrint. <</if>> <<if ["elkspawn","mannequin"].includes($_edenTarget.type) and !!$_edenTarget.state>> <<set $_edenTargetHit to $_edenTarget>> <<else>> <<set $_edenTargetHit to $shopHunt.actors.filter(x => ["elkspawn","mannequin"].includes(x.type) && !!x.state)[shopHuntContains($_bulletDest).random()] || null>> <</if>> <<if $_edenTargetHit>> <!-- Bullet hit an actor --> <<shopHuntDamageActor $_edenTargetHit.id>> <<if $_edenTargetHit.name is "giant fox plushie">> <<shopHuntMess 1 "foxPlushieShot">> <<shopHuntMess 5 `$_bulletDest + "CottonGuts"`>> <</if>> <<switch $_edenTargetHit.type>> <<case "mannequin">> <br> /* ToDo: Gwylan hunt - have adjacent mannequins also jump in front of the player if the player is in the path? */ <<if $_actorsAtBullet.includes("player")>> <<shopHuntActorName $_edenTargetHit.id "cap">> leaps in front of you, <span class="red">shielding you from the bullet</span>. <br> <</if>> <<if $_edenTargetHit.state is "hold">> <<if $_edenTargetHit.name is "giant fox plushie">> <span class="red">A spray of cotton flies from <<shopHuntActorName $_edenTargetHit.id>>, its grip faltering.</span> <<if $_edenTargetHit.health lte 0>> <span class="red">It sags and goes limp on the floor.</span> <</if>> <<trauma 50>><<gggtrauma>> <<elseif $_edenTargetHit.name is "masked mannequin">> <<if $_edenTargetHit.health lte 0>> <span class="red"><<shopHuntActorName $_edenTargetHit.id "cap">> lets go of you, and falls to its hands and knees in a disturbingly human way. Links of chain fall from its tunic.</span> <<trauma 24>><<ggtrauma>> <<else>> <<shopHuntActorName $_edenTargetHit.id "cap">> recoils, <span class="pink">briefly falling to one knee before standing back up and grabbing hold of you once more.</span> <</if>> <<else>> <<if $_edenTargetHit.health lte 0>> <span class="red"><<shopHuntActorName $_edenTargetHit.id "cap">> is blown to the ground in front of you. It reaches towards you, one wooden hand tapping your leg desperately, before falling lifeless.</span> <<trauma 24>><<ggtrauma>> <<else>> <<shopHuntActorName $_edenTargetHit.id "cap">> recoils, <span class="pink">briefly falling to one knee before standing back up and grabbing hold of you once more.</span> <</if>> <</if>> <<elseif $_playerSeesTarget>> <<if $_edenTargetHit.name is "giant fox plushie">> <span class="red">A spray of cotton flies from <<shopHuntActorName $_edenTargetHit.id>>.</span> <<if $_edenTargetHit.health lte 0>> <span class="red">It sags and goes limp on the floor.</span> <</if>> <<trauma 50>><<gggtrauma>> <<elseif $_edenTargetHit.name is "masked mannequin">> <<if $_edenTargetHit.health lte 0>> <span class="red"><<shopHuntActorName $_edenTargetHit.id "cap">> recoils, and falls to its hands and knees in a disturbingly human way. Links of chain fall from its tunic.</span> <<trauma 24>><<ggtrauma>> <<else>> <<shopHuntActorName $_edenTargetHit.id "cap">> recoils, <span class="pink">briefly falling to one knee before standing back up.</span> <</if>> <<else>> <<if $_edenTargetHit.health lte 0>> <<switch random(1, 5)>> <<case 1>><<shopHuntActorName $_edenTargetHit.id "cap">> does a mock swoon, appearing to faint. <span class="red">It clatters to the floor lifelessly.</span> <<case 2>><<shopHuntActorName $_edenTargetHit.id "cap">> is blown backwards, <span class="red">clattering to the floor lifelessly.</span> <<case 3>><<shopHuntActorName $_edenTargetHit.id "cap">>'s arm is blown clean off. It looks down at the remains, before slowly tipping forward. <span class="red">It clatters to the floor lifelessly.</span> <<case 4>><<shopHuntActorName $_edenTargetHit.id "cap">>'s head is blown clean off. It spreads its arms wide, gesturing at Eden as if personally affronted, before <span class="red">clattering to the floor lifelessly.</span> <<case 5>><span class="red"><<shopHuntActorName $_edenTargetHit.id "cap">> falls to the ground and starts writhing, as if in pain. After an agonising moment of struggle, it becomes lifeless.</span> <<trauma 24>><<ggtrauma>> <</switch>> <<else>> <<shopHuntActorName $_edenTargetHit.id "cap">> recoils, <span class="pink">briefly falling to one knee before standing back up.</span> <</if>> <</if>> <<else>> <<if $_edenTargetHit.name is "giant fox plushie">> <<set $_silentShot to true>> Strangely, <span class="purple">you don't hear it hit anything</span>. <<elseif $_edenTargetHit.name is "masked mannequin">> <<if $_edenTargetHit.health lte 0>> <span class="pink">The sound of something wooden collapsing to the floor follows, along with a soft metallic clanking.</span> <<else>> <span class="purple">The sound of something wooden falling over, and then standing back up, follows.</span> <</if>> <<else>> <<if $_edenTargetHit.health lte 0>> <span class="pink">The sound of something wooden collapsing to the floor follows.</span> <<else>> <span class="purple">The sound of something wooden falling over, and then standing back up, follows.</span> <</if>> <</if>> <<if !$_silentshot and $_edenTargetDirection isnot $_edenDirection>>It came from the $_edenTargetDirection.<</if>> <</if>> <<case "elkspawn">> /* ToDo: Gwylan hunt - elkspawn being shot */ <<default>> /* No response */ <</switch>> <<else>> <!-- Bullet did not hit an actor --> <<switch shopHuntLocName($_bulletDest)>> <<case "creakyCabinet">> <<if $_actorsAtBullet.includes("player")>> <span class="red">A bullet flies right by you,</span> striking the creaky cabinet. <<stress 24>><<trauma 12>><<ggstress>><<ggtrauma>> <<elseif $_actorsBorderingBullet.includes("player")>> <span class="red">A bullet hisses through the air nearby,</span> striking the creaky cabinet. <<stress 12>><<ggstress>> <<else>> It's followed by a dull creak from the<<if !$_silentshot and $_bulletDestDirection isnot $_edenDirection>> to the $_bulletDestDirection<</if>>. <<stress 6>><<gstress>> <</if>> <<case "squeakyRotatingRack">> <<if $_actorsAtBullet.includes("player")>> <span class="red">A bullet flies right by you,</span> striking the rotating rack. <<stress 24>><<trauma 12>><<ggstress>><<ggtrauma>> <<elseif $_actorsBorderingBullet.includes("player")>> <span class="red">A bullet hisses through the air nearby,</span> striking the rotating rack. <<stress 12>><<ggstress>> <<else>> It's followed by the droning squeak of the rotating rack<<if !$_silentshot and $_bulletDestDirection isnot $_edenDirection>> to the $_bulletDestDirection<</if>>. <<stress 6>><<gstress>> <</if>> <<case "tiltedVanity">> /* ToDo: Gwylan - vanity gets shattered. Becomes hazard? */ <<if $_actorsAtBullet.includes("player")>> <span class="red">A bullet flies right by you,</span> shattering the tilted vanity's mirror and sending a shower of glass raining down on you. <<stress 24>><<trauma 12>><<ggstress>><<ggtrauma>> <<elseif $_actorsBorderingBullet.includes("player")>> <span class="red">A bullet hisses through the air nearby,</span> shattering the tilted vanity's mirror. <<stress 12>><<ggstress>> <<else>> It's followed by the shattering of glass<<if !$_silentshot and $_bulletDestDirection isnot $_edenDirection>> to the $_bulletDestDirection<</if>>. <<stress 6>><<gstress>> <</if>> <<default>> <<if $_actorsAtBullet.includes("player")>> <span class="red">A bullet flies right by you,</span> striking the wall. <<stress 24>><<trauma 12>><<ggstress>><<ggtrauma>> <<elseif $_actorsBorderingBullet.includes("player")>> <span class="red">A bullet hisses through the air nearby,</span> striking the wall. <<stress 12>><<ggstress>> <<else>> It's followed by the faint rattle of a bullet coming to rest on the floor<<if !$_silentshot and $_bulletDestDirection isnot $_edenDirection>> to the $_bulletDestDirection<</if>>. <<stress 6>><<gstress>> <</if>> <</switch>> <</if>> <!-- reactions --> <<if !$shopHunt.player.hide and ($_actorsAtBullet.includes("player") and shopHuntWithinPlayerSight("gwylan") or $_edenTarget.type is "gwylan" and shopHuntContains(shopHuntLoc($_edenTarget.position)).includes("player"))>> <br> <<set $shopHuntActive to $shopHunt.actors.find(x => x.type is "gwylan").id>> <<shopHuntActorName $shopHuntActive "cap">> growls. "Watch where you're aiming! You almost hit <<phim>>!" <<elseif $_edenTargetHit and ["giant fox plushie", "masked mannequin"].includes($_edenTargetHit.name) and $_edenTargetHit.health lte 0 and $shopHunt.actors.find(x => x.type is "gwylan")?.state isnot null>> /* ToDo: Gwylan hunt - if Gwylan see the giant fox plushie or masked mannequin get destroyed, Gwylan moves to defeated actor, then attacks Eden */ <br> <<set $shopHuntActive to $shopHunt.actors.find(x => x.type is "gwylan").id>> <<shopHuntActorName $shopHuntActive "cap">> gasps. <<if $_edenTargetHit.name is "giant fox plushie">> "No! That was a gift from <<phim>>!" <<else>> "No!" <</if>> <<else>> <<switch $_edenTarget.type>> <<case "gwylan">> <br> <<if $_playerSeesTarget>> <<shopHuntActorName $_edenTarget.id "cap">> puts a hand to <<shopHuntPronoun "his" $_edenTarget.id>> mouth and giggles. <<else>> You then hear <<shopHuntActorName $_edenTarget.id>> giggle from the darkness. <</if>> <<if !$_edenTargetHit and $_bulletDest is "tiltedVanity">> <br> <<if shopHuntWithinPlayerSight("gwylan")>> <<shopHuntActorName $_edenTarget.id "cap">> giggles. <<else>> You hear <<shopHuntActorName $_edenTarget.id>> giggle from the darkness. <</if>> "That's another seven years of rotten luck for you." <<elseif $_edenTargetHit and $_edenTargetHit.health lte 0>> <<switch random(1,4)>> <<case 1>>"Is destruction all you know?" <<case 2>>"It will all crumble on top of you." <<case 3>>"You're a cancer on this forest." <<case 4>>"Ooh, you got me! Just kidding. You'll be paying for that mannequin, though." <</switch>> <<else>> <<switch random(1,4)>> <<case 1>>"You missed." <<case 2>>"Ooh, another unlucky miss." <<case 3>>"Surely your luck will turn around one of these times." <<case 4>>"What were you even aiming at? Jumping at shadows?" <</switch>> <</if>> <<case "wraith">> <br> <<if $_playerSeesTarget>> <<shopHuntActorName $_edenTarget.id "cap">> laughs. <<else>> You then hear <<shopHuntActorName $_edenTarget.id>> laugh from the darkness. <</if>> <<switch random(1,4)>> <<case 1>>"<span class="wraith">Your violence is nothing.</span>" <<case 2>>"<span class="wraith">Throw stones in a house of ashes.</span>" <<case 3>>"<span class="wraith">Like a parasite in the gut.</span>" <<case 4>>"<span class="wraith">Eden. Eden. Eden. Eden. Eden. Eden. Eden. Eden. Eden.</span>" <</switch>> <<default>> /* No response */ <</switch>> <</if>> <<shopHuntMess 5 `$_bulletDest + "BulletHole"`>> <</if>> <br><br> <</if>> <</if>> <</if>> <!-- States --> <<for $_i to 0; $_i lt $shopHunt.actors.length; $_i++>> <<if !!$shopHunt.actors[$_i].state and !$shopHunt.actors[$_i].stun.all and $shopHunt.actors[$_i].health gte 1>> <<set $_found to Object.values($actorFound[$_i]).flat()>> <<if $_found.includes("player")>> <<if $shopHunt.actors.find(x => x.state is "drag")>> /* Todo: Gwylan hunt, remove when interactions between actors on the same tile are added */ <<set $_foundSkip to true>> <<elseif $shopHunt.player.hide is 4 and _loc.special.includes("hat")>> <<set $_context to "hat">> <<elseif $shopHunt.player.hide gte 1>> <<set $_context to "hide">> <<elseif $shopHunt.actors[$_i].state is "rush">> <<set $_context to "rush">> <<elseif _act is "insideExit">> <<set $_context to "insideExit">> <<elseif $shopHunt.actors[$_i].state is "chase" and !doArraysMatch($shopHunt.actors[$_i].position, $shopHunt.player.position)>> <<set $_foundSkip to true>> <<elseif !shopHuntContains(_locRaw).includes($_i)>> <<set $_context to "search">> <<else>> <<set $_context to null>> <</if>> <<if !$_foundSkip>> <<shopHuntActorFound $_i $_context>> <</if>> <<set $_foundSkip to false>> <<elseif $_found.filter(x => typeof x is "number" and $shopHunt.actors[x].role isnot $shopHunt.actors[$_i].role).length gte 1>> /* Todo: Gwylan hunt (critical), fighting other actors */ <<switch $shopHunt.actors[$_i].type>> <<case "eden">> <</switch>> <</if>> <</if>> <</for>> <<if _foundPrinted>> <br><br> <</if>> <!-- Defeating actors --> <<for $_i to 0; $_i lt $shopHunt.actors.length; $_i++>> <<if $shopHunt.actors[$_i].health lte 0 and !!$shopHunt.actors[$_i].state>> <<shopHuntDefeatActor $_i>> <<for $_o range Object.keys(_playerFound)>> <<set _playerFound[$_o] to _playerFound[$_o].filter(x => x isnot $_i)>> <</for>> <</if>> <</for>> <</widget>> <<widget "shopHuntDamageActor">> <<set $_actor to _args[0]>> <<set $_damage to _args[1] or 1>> <<set $shopHunt.actors[$_actor].health -= $_damage>> <<if _args[2]>> <<set $shopHunt.actors[$_actor].health to Math.clamp($shopHunt.actors[$_actor].health, 1, 999)>> <</if>> <</widget>> <<widget "shopHuntIcon">> <<if $shopLocs.includes(_args[0])>> <<set $_icon to shopHuntPlayerKnownMap(2).tiles.flat().includes(_args[0]) ? _args[0] : "unknownLocation">> <<if $_icon is "tiltedVanity" and $shopHunt.item.mirror isnot "tiltedVanity">> <<set $_icon += "_noMirror">> <</if>> <<if _args[1]>> <<if ["hide"].includes(_args[1])>> <<set $_icon += "_" + _args[1]>> <<elseif ["north","south","west","east"].includes(_args[1])>> <<set $_overlay to _args[1]>> <<if $shopHunt.actors.filter(x => x.state is "chase").length gte 1>> <<set $_overlay += "Chase">> <</if>> <<icon `"shopHunt/overlay_" + $_overlay + ".png"` "infront">> <</if>> <</if>> <<if $shopHunt.locations[$_icon]?.state.includes("fallen") or _args[1] is "fallen">> <<set $_icon += "_fallen">> <</if>> <<icon `"shopHunt/" + $_icon + ".png"`>> <<else>> <<switch _args[0]>> <<case "ambush" "hide" "light" "scatter" "yell">> <<icon `"shopHunt/action_" + _args[0] + ".png"`>> <<case "mirror">> <<icon `"shopHunt/" + _args[1] + "_mirror.png"`>> <<case "search">> <<investigateicon>> <<case "key">> <<icon "maze_key.png">> <<default>><<icon "shopHunt/debug/placeholder.png">> <</switch>> <</if>> <</widget>> <<widget "shopHuntMapForget">> <<if shopHuntCampingCount() gte 5>> <<set $_seenLocs1 to shopHuntLocationsByDistance(shopHuntFind("player")).filter(x => $shopHunt.player.map[shopHuntCoords(x[0])[0]][shopHuntCoords(x[0])[1]].seen === 1 and !Object.values(_bordering).includes(x[0]))>> <<set $_seenLocs2 to shopHuntLocationsByDistance(shopHuntFind("player")).filter(x => $shopHunt.player.map[shopHuntCoords(x[0])[0]][shopHuntCoords(x[0])[1]].seen === 2)>> <<if $_seenLocs1.length gte 1>> <<set $shopHunt.player.map[shopHuntCoords($_seenLocs1[0][0])[0]][shopHuntCoords($_seenLocs1[0][0])[1]].seen-->> <<if $_seenLocs1.length gte 2 and shopHuntCampingCount() gte 6>> <<set $shopHunt.player.map[shopHuntCoords($_seenLocs1[1][0])[0]][shopHuntCoords($_seenLocs1[1][0])[1]].seen-->> <</if>> <<set $_forgot to true>> <</if>> <<if $_seenLocs2.length gte 1>> <<set $shopHunt.player.map[shopHuntCoords($_seenLocs2[0][0])[0]][shopHuntCoords($_seenLocs2[0][0])[1]].seen-->> <<if $_seenLocs2.length gte 2 and (shopHuntCampingCount() gte 6 or !$_forgot)>> <<set $shopHunt.player.map[shopHuntCoords($_seenLocs2[1][0])[0]][shopHuntCoords($_seenLocs2[1][0])[1]].seen-->> <<if $_seenLocs2.length gte 7 and (shopHuntCampingCount() gte 7)>> <<set $shopHunt.player.map[shopHuntCoords($_seenLocs2[2][0])[0]][shopHuntCoords($_seenLocs2[2][0])[1]].seen-->> <</if>> <</if>> <<set $_forgot to true>> <</if>> <</if>> <<if $_forgot>> You've been in the <<shopHuntLocName _locRaw "simple">> for a while. <span class="red">You're starting to forget the layout of the shop.</span> <br><br> <</if>> <</widget>> <<widget "shopHuntResistGrip">> <<if _args[0] is "hold">> <<set $_holders to $shopHunt.actors.filter(x => x.state === "hold")>> <<set $_gripProgress to $_holders.map(x => x.grip.progress).reduce((a, b) => a + b)>> <<set $_gripMin to $_holders.map(x => x.grip.min).reduce((a, b) => a + b) - ($_gripProgress * 100)>> <<set $_gripMax to $_holders.map(x => x.grip.max).reduce((a, b) => a + b) - ($_gripProgress * 1000)>> <<physiquedifficulty $_gripMin $_gripMax>> <<else>> <<set $_grip to clone($shopHunt.actors[_args[0]].grip)>> <<set $_min to $_grip.min - ($_grip.progress * 100)>> <<set $_max to $_grip.max - ($_grip.progress * 1000)>> /* Todo: Gwylan hunt, update this to willpower check for the Wraith */ <<if ["eden","mannequin"].includes($shopHunt.actors[_args[0]].type)>> <<physiquedifficulty $_grip.min $_grip.max>> <</if>> <</if>> <</widget>> <<widget "shopHuntHoldOptions">> <<if _holdStarted>> <<shopHuntActorSetState "gwylan" "check" _locRaw>> <<shopHuntActorName `$shopHunt.actors.find(x => x.state is "hold").id` "cap">> taps the floor rhythmically. <span class="red">You hear <<shopHuntActorName `$shopHunt.actors.find(x => x.type is "gwylan").id`>> giggle.</span> "Oh, so that's where you are. Coming!" <br><br> <</if>> <<shopHuntMap>> <<ind>><<link [[Resist|Forest Shop Hunt]]>><<shopHuntAction "resist">><</link>><<shopHuntResistGrip "hold">> <br> <<ind>><<link [[Wait|Forest Shop Hunt]]>><<shopHuntAction "wait">><</link>> <</widget>> <<widget "shopHuntDragOptions">> <<if _args[0]>> <<set _actorDrag to clone($shopHunt.actors.find(x => x.state is "drag"))>> <</if>> <<if _actorDrag.type is "eden">> <<if _locRaw is shopHuntFind("door")>> <<if $shopHunt.shop.shuffle.count lt $shopHunt.shop.shuffle.max>> <span class="gold">You're at the <<shopHuntDoor>>.</span> <<shopHuntActorName _actorDrag.id "cap">> tries the handle. It's locked. <br><br> <<shopHuntShuffle "edenDoor">> <<shopHuntOptions>> <<exit>> <<elseif !_actorDrag.stun.door>> <<if _actorDrag.points is 3>> <<shopHuntMess "door" 15>> <span @class="shopHuntActorColor(_actorDrag.id)">The door breaks open.</span> The shop groans as if in terrible pain. <<set $phase to "door">> <<set $_end to $shopHunt.context is "rescue" ? "edenKidnap" : "escape">> <<include "Forest Shop Hunt Escape Eden">> <<shopHuntEnd $_end>> <<exitAll>> <<else>> <<if _actorDrag.points is 2>> <<shopHuntActorName _actorDrag.id "cap">> continues kicking the door. <span class="blue">It creaks in protest. One more kick will do it.</span> <<elseif _actorDrag.points is 1>> <<shopHuntActorName _actorDrag.id "cap">> continues kicking the door. <<else>> <span class="gold">You're at the <<shopHuntDoor>>.</span> <<shopHuntActorName _actorDrag.id "cap">> tries the handle. It's locked. <<shopHuntPronoun "He">> starts kicking the door, gritting <<shopHuntPronoun "his">> teeth. "Let us out!" <</if>> <<set $shopHunt.actors.find(x => x.state is "drag").points++>><<shopHuntDecoy>> <br><br> <</if>> <</if>> <<shopHuntMap>> <<if _actorDrag.role is "enemy">> <<ind>><<link [[Resist|Forest Shop Hunt]]>><<shopHuntAction "resist">><</link>> <br> <<ind>><<link [[Wait|Forest Shop Hunt]]>><<shopHuntAction "wait">><</link>> <<else>> <<if shopHuntFind("key") is "player">> <<shopHuntIcon "key">><<link [[Offer key|Forest Shop Hunt]]>><<shopHuntAction "key" _actorDrag.id>><</link>> <br> <</if>> <<ind>><<link [[Wait|Forest Shop Hunt]]>><<shopHuntAction "wait">><</link>> <</if>> <<else>> <<if !_actorDrag.stun.move and _actorDrag.movement.length gte 1>> <<shopHuntActorName _actorDrag.id "cap">> starts <<= _actorDrag.role is "enemy" ? "dragging" : "taking">> you to the <<print shopHuntDirectionGet(_actorDrag.movement[0])>>. <br><br> <</if>> <<shopHuntMap>> <<if _args[0]>> <<ind>><<link [[Next|Forest Shop Hunt]]>><<shopHuntAction "wait">><</link>> <<elseif _actorDrag.role is "enemy">> <<ind>><<link [[Resist|Forest Shop Hunt]]>><<shopHuntAction "resist">><</link>><<shopHuntResistGrip _actorDrag.id>> <br> <<ind>><<link [[Let <<shopHuntPronoun "him">> take you|Forest Shop Hunt]]>><<shopHuntAction "wait">><</link>> <<else>> <<ind>><<link [[Go with <<shopHuntPronoun "him">>|Forest Shop Hunt]]>><<shopHuntAction "wait">><</link>> <</if>> <</if>> <<elseif _actorDrag.type is "wraith">> /* Todo: shop hunt, Wraith possessing player and making them walk to the exit */ <<else>> <span class="red">ERROR: unsupported actor type "_actorDrag.type" in drag state. Please report this!</span> <</if>> <</widget>><<set $location to "forest_shop">><<set $outside to 0>><<effects>> <br><br> <<link [[Find the key to the garden|Forest Shop Hunt Intro]]>><<set $phase to "garden">><</link>><<note "Complete!" "green">> <br> <<link [[Hide and seek game|Forest Shop Hunt Intro]]>><<npc Gwylan>><<person1>><<set $phase to "game">><</link>><<note "Only partially supported" "orange">> <br> <<link [[Rescue from Eden|Forest Shop Hunt Intro]]>><<set $phase to "rescue">><</link>><<note "Complete!" "green">> <br> <<link [[Rescue from Gwylan|Forest Shop Hunt Intro]]>><<set $phase to "kidnap">><<set $phase2 to "ally">><</link>><<note "Theoretically complete" "lblue">> <br> <<link [[Escape from both|Forest Shop Hunt Intro]]>><<set $phase to "kidnap">><<set $phase2 to "enemy">><</link>><<note "Complete!" "green">> <br> <<link [[Wraith|Forest Shop Hunt Intro]]>><<npc Gwylan>><<person1>><<set $phase to "wraith">><</link>><<note "Only partially supported" "orange">> <br> <<link [[Elkspawn|Forest Shop Hunt Intro]]>><<set $phase to "elkspawn">><</link>><<note "Only partially supported" "orange">> <br><<set $location to "forest_shop">><<set $outside to 0>><<effects>> <<shopHuntInit $phase>> <<switch $shopHunt.context>> <<case "garden">> <<set _keyLoc to shopHuntLocationsByDistance(shopHuntFind("door"),"steps").filter(x => x[1] lte 8 and x[0] isnot "hangingBasket")[0][0]>> <<set $shopHunt.item.key to _keyLoc>> <<if $gridConsoleEnable>> <<run console.log("map: line of mannequins from door to key")>> <</if>> <<set _line to aStar(shopHuntCoords($shopHunt.shop.door.position), shopHuntCoords(_keyLoc), aStarGetObstacles("shopHunt"), $shopHuntMap)>> <<set $shopHunt.player.position to _line[1]>> <<for _i to 1; _i lt _line.length; _i++>> <<shopHuntCreateActorMannequin 1 "neutral" _line[_i]>> <<set $shopHunt.actors[$shopHunt.actors.length - 1].target to shopHuntRelativeDirection(_line[_i], _line[Math.clamp(_i + 1, 0, _line.length - 1)])>> <<if $shopHunt.shop.mannequins is 0>> <<break>> <</if>> <</for>> <!-- Automatically spawn the rest of the mannequins in random locations --> <<shopHuntCreateActorMannequin 6 "neutral">> <<run shopHuntSeeLoc($shopHunt.shop.door.position)>> You follow where the mannequin is pointing, navigating through the gloom. <br><br> Before long, you find another mannequin. It's pointing off in another direction. <<case "game">> <<shopHuntCreateActor "Gwylan">> <span class="orange">Unfinished.</span> <br><br> "Let's play hide-and-seek," Gwylan says. <br> "Okay," you say. "Who's going to be 'it' first?" <br> Gwylan laughs. <br> "...Gwylan?" <br> Gwylan laughs louder. <<stress 6>><<gstress>> <<case "rescue">> <<npc Gwylan>><<npc Eden -1>><<person1>> <<shopHuntCreateActor "Gwylan" "ally">> <<shopHuntCreateActor "Eden" "enemy" "door">> The interior seems darker than usual, the shelves looming over you. <br><br> Gwylan locks the door. A moment later, the door pounds. Eden's voice comes through the door. "Open up, <<witch>>! Give <<phim>> back!" <br><br> Gwylan looks at the door, narrowing <<his>> eyes in thought. "Find somewhere to hide. I have an idea." <br><br> You hurry deeper into the shop. You hear the front door swing open once you're inside. <<case "kidnap">> <<npc Gwylan>><<npc Eden -1>><<person1>> <<shopHuntCreateActor "Gwylan">> <<shopHuntCreateActor "Eden" $phase2 "door">> <<set $shopHunt.commands.pushUnique("voice")>> The interior seems darker than usual, the shelves looming over you. <<if $gwylanSeen.includes("partners")>> Gwylan curls a finger into your collar and pulls you into a kiss, <<his>> finger trailing up your neck. <<gwylanKiss>> <br><br> <<if $hallucinations gte 2>> <<He>> pulls away an inch, <<his>> lips still parted. <span class="red">A faint blue mist leaves your mouth, sucked into <<hers>>.</span> <<He>> swallows and smiles again. <<else>> <<He>> pulls away an inch, smiling at you. <span class="red">Your voice catches in your throat. Try as you might, you can't say anything.</span> <</if>> <<else>> Gwylan traces a finger up your neck. <<if $hallucinations gte 2>> <span class="red">A faint blue mist leaves your mouth, twirling around <<his>> fingers.</span> <<else>> <span class="red">Your voice catches in your throat. Try as you might, you can't say anything.</span> <</if>> <</if>> "We can't have you screaming for that <<person2>><<personsimple>>, can we? Now be a <<pcpetname "Gwylan" "good">> and—" <br><br> The door pounds. Eden's voice comes through the door. "Open up, <<witch>>! Give <<phim>> back!" <br><br> Gwylan looks at the door, narrowing <<person1>><<his>> eyes in thought. "<span class="witch">Find somewhere to hide.</span> I have an idea." <br><br> Your legs take you deeper into the shop. You hear the front door swing open once you're inside. <<case "wraith">> <<shopHuntCreateActor "Gwylan" "ally">> <<shopHuntCreateActor "Wraith" "enemy">> <span class="orange">Unfinished.</span> <br><br> "<span class="wraith">Every year, many birds are caught in netting,</span>" the pale figure says. "<span class="wraith">Ropes and garbage entwined around their legs, chaining them to the ground. Condemning them to a slow end.</span>" <br><br> It points a <<= $wraith.state is "haunt" ? "blackened" : "">> finger at Gwylan. "<span class="wraith">The seabird falls to this same fate. You are enchained to the <<pcpetname "Wraith">>, in red strings.</span>" <br><br> Gwylan purses <<his>> lips. "See, I get what you were going for by saying that, but it just came off as clunky. There was too much buildup to have much impact." <br><br> "<span class="wraith">The line will be workshopped,</span>" the pale figure acknowledges. It tilts its head. "<span class="wraith">I am going to harm you now.</span>" <<case "elkspawn">> <<set $shopHunt.shop.mannequins to $mannequinDescs.length>> <<shopHuntCreateActorMannequin 2 "ally">> <<shopHuntCreateActor "Elkspawn" "enemy">> <span class="orange">Unfinished.</span> <br><br> There's an unauthorized fucking creature in the shop. <</switch>> <br><br> <<link [[Next|Forest Shop Hunt]]>><</link>> <br><br><<shopHuntEffects>> <<set _actorDrag to clone($shopHunt.actors.find(x => x.state is "drag"))>> <<if _actorDrag>> <<shopHuntActors>> <<shopHuntArea>> <<shopHuntTurn>> <<else>> <<shopHuntArea>> <<shopHuntActors>> <<shopHuntTurn>> <</if>> <<if $shopHunt.player.hide is 4 and $shopHunt.locations[shopHuntFind("player")].special.includes("inside")>> <!-- Hiding inside the rotting closet/antique wardrobe --> <<shopHuntMapForget>> <<shopHuntIcon _locRaw "hide">><<link [[Keep hiding|Forest Shop Hunt]]>><<set $shopHunt.player.action to "hide">><</link>> <br> <<shopHuntIcon _locRaw>><<link [[Leave the <<shopHuntLocName shopHuntFind("player") "simple">>|Forest Shop Hunt]]>><<set $shopHunt.player.hide to 0>><<set $shopHunt.player.action to "insideExit">><</link>> <<elseif _actorDrag or _dragStarted>> <<shopHuntDragOptions _dragStarted>> <<elseif $shopHunt.actors.filter(x => x.state is "hold").length gte 1>> <<shopHuntHoldOptions>> <<else>> <<shopHuntOptions>> <</if>> <<shopHuntDebug "options">><<run statusCheck("Gwylan")>> <<if $phase is "key">> Light banishes the gloom around you. You and Eden both cover your eyes. <<person2>><<He>> doesn't slow down, though. <<He>> drags you from the shop. <br><br> You hear a mournful rattle from the doorframe. As you look back, it seems like the light halts just before entering the shop. Two bright green eyes stare at you from within. <br><br> <<person1>> <<if $shopHunt.context is "kidnap">> <<if $gwylanSeen.includes("romance")>> Black tears drop onto the grass. "<<pcPetname "Gwylan" "simple">>. You promised." <<His>> tone is eerily neutral. "You will return." <<else>> You hear a slow clapping. "Well hunted," Gwylan's voice comes. <</if>> <<His>> eyes close, and the door slams shut. <<npcincr Gwylan dom -30>><<lllyearning>> <<else>> Eden continues dragging you along. The green eyes fade away, and the door slams shut. <<npcincr Gwylan dom -30>><<lllyearning>> <</if>> <<elseif $phase is "defeatGwylan">> Gwylan gasps. "No! No, I'm alright, I—" <br> The floor shakes underneath you. <br> "No, don't! I can—"<br> <span class="green">The door to the forest shop flies open, momentarily flooding it with light and banishing the gloom.</span> <br><br> Eden sees you and marches up to you, grabbing your arm. <<person2>><<He>> looks down to Gwylan with disgust, and drags you to the entrance. <br><br> <<person1>> <<if $shopHunt.context is "kidnap">> <<if $gwylanSeen.includes("romance")>> "<<pcPetname "Gwylan" "simple">>." Gwylan, says softly. You look back. Black tears trail down <<his>> face. "You promised." <<else>> Gwylan unsteadily stands, and claps. "Well hunted." <<He>> chuckles. <</if>> Eden pulls you across the threshold, and the door slams shut. <<npcincr Gwylan dom -30>><<lllyearning>> <<else>> The door slams shut behind you. <<npcincr Gwylan dom -30>><<lllyearning>> <</if>> <<else>> Light banishes the gloom around you. You and Eden both cover your eyes. <<person2>><<He>> doesn't slow down, though. <<He>> drags you from the shop. <br><br> <<person1>> You hear a rattle from the doorframe, like strained breathing. Gwylan emerges from the darkness, frantically inspecting the remains of the door. <<He>> rubs the frame as if <<he>> were comforting a hurt child. <<person2>><<He>> turns and glares at Eden. <<if $shopHunt.context is "kidnap" and $gwylanSeen.includes("romance")>> "You wish to take and destroy all I hold dear," <<he>> says in an eerily calm tone. "Soon, I'll have nothing to lose. You must know how that feels, Eden." <<else>> "All you do is destroy! You wish to drag everything down to be just as ugly as you are on the inside!" <<he>> yells. "Begone!" <</if>> <br><br> Eden doesn't give any indication of having heard Gwylan. <</if>> <br><br> You're dragged deeper into the forest. <<npcincr Eden dom 5>><<ggdom "Eden">> <br><br> <<set $daily.gwylan.cafeSkip to true>><<set $daily.gwylan.noTalk to true>><<set $daily.gwylan.locked to true>><<set $daily.gwylan.noHunt to true>> <<endevent>><<npc Eden>><<person1>> <<link [[Next (0:30)|Eden Caged Caught]]>><<set $phase to 0>><<pass 30>><</link>> <br><<run statusCheck("Gwylan")>> Light floods the shop and banishes the gloom for a brief moment. You cover your eyes, but you don't stop. You run, and leave both Gwylan and Eden behind. <<npcincr Gwylan dom -15>><<npcincr Eden dom -10>><<llyearning>><<lldom "Eden">> <br><br> <<set $daily.gwylan.cafeSkip to true>><<set $daily.gwylan.noTalk to true>><<set $daily.gwylan.locked to true>><<set $daily.gwylan.noHunt to true>> <<link [[Next|Forest]]>><<endevent>><</link>> <br><<run statusCheck("Gwylan")>> <<set _edenName to C.npc.Eden.name_known ? "Eden" : "the <<= C.npc.Eden.title>>">> <<if $phase is "defeatEden" or shopHuntContains(shopHuntFind("eden")).includes("player")>> One of the shop's lights flickers on overhead, illuminating you and <<= _edenName>>, but not the darkness beyond. <br><br> Something collides with you from behind, and drags you away. You don't see what it is, though. You can only see <<= _edenName>><<if $phase is "defeatEden">>, who struggles to <<nnpc_his "Eden">> feet<</if>>. <<else>> Suddenly, a blinding light shines from somewhere else. <<if $shopHunt.player.hide>> You emerge from your hiding place. <</if>> <<if shopHuntLineOfSight("player", true).includes($shopHunt.actors.find(x => x.type === "eden").id)>> A spotlight from above illuminates <<= _edenName>>, and a small area around <<nnpc_him "Eden">>. <<else>> A spotlight from above illuminates <<= _edenName>> in the darkness, and a small area around <<nnpc_him "Eden">>. <</if>> <</if>> <br><br> The shop trembles. <br><br> "<span class="witch">Aimless.</span>" <br><br> The shadows become jagged like teeth. The light appears like a maw, ready to swallow <<= _edenName>> in the center. <br><br> You don't dare open your own mouth. The gloom presses against your lips. <br><br> <<link [[Next|Forest Shop Hunt Eden Torment 2]]>><<endevent>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<set _edenName to C.npc.Eden.name_known ? "Eden" : "the <<= C.npc.Eden.title>>">> <<npc Eden 1>><<npc Gwylan 2>><<person1>> Laughter echoes all around <<him>>. <br><br> <<Hes>> surrounded. You can't see the assailants, but you know they're there. <<= _edenName.toUpperFirst()>> knows too. <<He>> fires into the darkness blindly. <br><br> "<span class="witch">Every careless bullet an atrocity without reason. How can one so reliant on aim be aimless?</span>" <br><br> The shadows bite at <<him>>. <<He>> turns and fires again, striking nothing. The bullet never lands. <br><br> "<span class="witch">I know how many bodies you've left behind. You kill. You consume. You discard. Aimlessly.</span>" <br><br> More laughter echoes. The word repeats like a curse. "<span class="witch">Aimless. Aimless. Aimless.</span>" <br><br> <<= _edenName.toUpperFirst()>> covers <<his>> ears, only for the shadows to slip between <<his>> fingers. <br><br> "<span class="witch">Aimless! Aimless! Aimless!</span>" <br><br> <<= _edenName.toUpperFirst()>> yells, shoving the barrel of <<his>> rifle into a shadow as it strikes. <<He>> pulls the trigger. <span class="red">You hear a cry of pain, followed by something slumping over.</span> <br><br> <<= _edenName.toUpperFirst()>> grins, panting. "Got you." <br><br> <<link [[Next|Forest Shop Hunt Eden Torment 3]]>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<set _edenName to C.npc.Eden.name_known ? "Eden" : "the <<= C.npc.Eden.title>>">> <<= _edenName.toUpperFirst()>>'s pupils shrink, and <<his>> grin fades. Something crawls into the light. <br><br> <span class="red">A brown fox, struck by <<his>> bullet. Blood trails behind it. It whimpers, and goes still.</span> <br><br> "No." Eden reaches down, picking up the fox. "No!" <br><br> The blood washes down <<= _edenName>>'s hands. <<He>> breathes heavily, lightly shaking the fox. "No, no, I didn't... I thought..." <br><br> The fox isn't a fox anymore. It's a person, being held in <<= _edenName>>'s arms, but no less still and bloody. A red smile is painted on its neck. It flickers back and forth, between being a fox and a person. It's head snaps into an upright position and stares at Eden. It speaks. <br><br> "<span class="witch">Aimless.</span>" <br><br> <<= _edenName.toUpperFirst()>> screams, dropping it. It doesn't leave <<his>> hands. Its body extends, becoming a snake that trails up <<his>> arm. No matter how <<he>> struggles, <<he>> can't shake it off. It wraps around <<his>> neck, becoming a fox once more and hanging limp about <<his>> shoulders. A blaring voice echoes through the darkness. <br><br> <b>"<span class="witch">An orphan's curse would drag to hell a spirit from on high!<br> Ever deeper, foxbane mine, is the curse in a dead mother's eye!<br> Unscored years since the day of sin, yet you still live this rotten lie!</span>"</b> <br><br> <span class="red">Strands of brown fur flutter down from above. The screams of starving kits fills the emptiness, awaiting a mother that will never return. The dead fox becomes a length of rope around <<= _edenName>>'s neck.</span> <br><br> The rope leads up into the darkness, which swirls. The head of a colossal, three-eyed fox screams, its tongue the rope. <<= _edenName.toUpperFirst()>>'s own screams are snuffed out as its voice comes from <<his>> mouth. <br><br> <b>"<span class="witch">Hid away in solitude, my self-made coffin-box!<br> Oblivious to the world I left as the Elk gnaws at the locks!<br> Faceless, fateless, restless, aimless, I shot the mother fox!</span>"</b> <br><br> <<link [[Next|Forest Shop Hunt Eden Torment 4]]>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<set _edenName to C.npc.Eden.name_known ? "Eden" : "the <<= C.npc.Eden.title>>">> /* ToDo: Gwylan - account for reunion and bad end start here. */ <span class="teal">Then, suddenly, it all stops.</span> The door of the shop flies open, banishing the gloom. <<= _edenName.toUpperFirst()>> stands still, hyperventilating and clutching <<his>> neck. <br><br> Below <<him>>, a mannequin lays with a bullet lodged in its torso. <br><br> <<He>> looks around frantically. <<His>> tormented eyes never even land on you, only the exit. <br><br> <<if $shopHunt.context is "rescue">> <span class="green"><<He>> flees the shop.</span> <<npcincr Eden dom -20>><<llldom "Eden">> <br><br> Gwylan shuffles out from behind a shelf. <<person2>><<He>> smiles sadly. "I'm sorry you had to see that. One day, perhaps <<person1>><<he>> will understand. It's a path only <<he>> can walk." <br><br> <<person2>><<He>> pets your head. "The shop knows much. Remembers much. Just look at how much it remembers about you." <<He>> gestures around to the clothes all around the shop. "It remembers triumphs and troubles in equal part, and Eden has much of both." <<else>> <span class="red"><<He>> flees the shop.</span> <<npcincr Eden dom -20>><<llldom "Eden">> <br><br> Gwylan shuffles out from behind a shelf. <<person2>><<He>> smiles sadly. "I'm sorry you had to see that. I hope you understand how terrible <<person1>><<he>> is by now." <<person2>><<He>> tuts. "You were a <<pcpetname "Gwylan" "naughty">>, but I can forgive that." <br><br> <<if $worn.neck.name is "familiar collar" and $worn.neck.cursed is 1>> <<He>> grabs your collar and pulls you into a kiss. <<gwylanKiss 10>> <br><br> <</if>> <<He>> pets your head. "The shop knows much. Remembers much. Just look at how much it remembers about you." <<He>> gestures around to the clothes all around the shop. "It remembers triumphs and troubles in equal part, and Eden has much of both." <</if>> <br><br> <<He>> looks around at the damage caused by <<= _edenName.toUpperFirst()>>'s rampage, and frowns. "I may need some time to clean up." <<He>> looks back to you with another smile. <<if $gwylanSeen.includes("romance")>> "Welcome home." <</if>> <br><br> <<shopHuntEnd `$shopHunt.context is "rescue" ? "gwylanRescue" : "gwylanKidnap"`>> <<earnFeat "Foxbane">> <<link [[Next|Forest Shop Entrance]]>><<endevent>><</link>> <br><div id="clothingShop-div" class="main-shop-div"> <<forestShop-main>> </div><<widget "forestShopLeave">> <<shopClothingFilterReset>><<unset $clothes_choice>><<ShowUnderEquip "normal">><<ShowUnderEquip "over">> <<set $tryOn.autoReset to true>><<set $eventskip to 1>><<unset $tempDisable>><<shopCommandoCheck>> <<unset $enteringForestShop>> <</widget>> <<widget "forestShop-main">> <<set $outside to 0>><<set $location to "forest_shop">><<effects>> <<set $shopName = "forest">> <<if $tryOn.autoReset isnot false>><<tryOnReset>><</if>> <div id="tryonstats-div"><<tryOnStats>></div> <<unset $shopListStartCount>> <<unset $clothes_choice>> <<set $shopPage = 0>> <span>Warmth:</span> <<warmthscale>> <div id="warmth-description"> <<warmth_description>> </div> <br><br> <<clothingcategoryicon "all(alt)">> <<link "View All">><<replace "#clothingShop-div">><<AllShop>><</replace>><</link>> <br><br> <!-- Purposefully does not use the actual shop location icons used in the shopHunt sequence. Clarity of clothing type is more important, given the links themselves don't specify. --> /* <<clothingcategoryicon "overoutfit">> <<link "Look in the overspilling chest">><<replace "#clothingShop-div">><<OverOutfitShop>><</replace>><</link>> <br> <<clothingcategoryicon "overhead">> <<link "Look in the hanging basket">><<replace "#clothingShop-div">><<OverHeadShop>><</replace>><</link>> <br> <<clothingcategoryicon "overupper">> <<link "Look in the rotting closet">><<replace "#clothingShop-div">><<OverTopShop>><</replace>><</link>> <br> <<clothingcategoryicon "overlower">> <<link "Look on the squeaky rotating rack">><<replace "#clothingShop-div">><<OverBottomShop>><</replace>><</link>> <br> */ <<clothingcategoryicon "outfit">> <<link "Look behind the dark screen">><<replace "#clothingShop-div">><<OutfitShop>><</replace>><</link>> <br> <<clothingcategoryicon "upper">> <<link "Look in the antique wardrobe">><<replace "#clothingShop-div">><<TopShop>><</replace>><</link>> <br> <<clothingcategoryicon "lower">> <<link "Look on the strange ironing board">><<replace "#clothingShop-div">><<BottomShop>><</replace>><</link>> <br> <<clothingcategoryicon "underoutfit">> <<link "Look in the moldering hutch">><<replace "#clothingShop-div">><<UnderOutfitShop>><</replace>><</link>> <br> <<clothingcategoryicon "underupper">> <<link "Look on the rusted hangers">><<replace "#clothingShop-div">><<UnderTopShop>><</replace>><</link>> <br> <<clothingcategoryicon "underlower">> <<link "Look in the dusky drawer">><<replace "#clothingShop-div">><<UnderBottomShop>><</replace>><</link>> <br> <<clothingcategoryicon "head">> <<link "Look on the spindly hat stand">><<replace "#clothingShop-div">><<HeadShop>><</replace>><</link>> <br> <<clothingcategoryicon "face">> <<link "Look on the gnarled wall">><<replace "#clothingShop-div">><<FaceShop>><</replace>><</link>> <br> <<clothingcategoryicon "neck">> <<link "Look in the glowing box">><<replace "#clothingShop-div">><<NeckShop>><</replace>><</link>> <br> <<clothingcategoryicon "handheld">> <<link "Look in the bent umbrella stand">><<replace "#clothingShop-div">><<HandheldShop>><</replace>><</link>> <br> <<clothingcategoryicon "hand">> <<link "Look in the tilted vanity">><<replace "#clothingShop-div">><<HandsShop>><</replace>><</link>> <br> <<clothingcategoryicon "legs">> <<link "Look in the worn stocking">><<replace "#clothingShop-div">><<LegsShop>><</replace>><</link>> <br> <<clothingcategoryicon "feet">> <<link "Look beneath the decaying shelf">><<replace "#clothingShop-div">><<FeetShop>><</replace>><</link>> <br> <<run statusCheck("Gwylan")>> <<if ["shop", "garden"].includes(gwylanSchedule()) and (_gwylanStatus?.includesAny("aroused", "lust") or $gwylanSeen.includes("strapOnGifted")) and !$gwylanSeen.includes("sexToys")>> <br> An unfamiliar cabinet door swings gently on its hinges. <br> <<mysteryicon>><<link [[Look in the creaky cabinet|Forest Shop Sex Toys Intro]]>><</link>> <br> <<elseif $gwylanSeen.includes("sexToys")>> <<clothingcategoryicon "strapon">><<link [[Look in the creaky cabinet|Forest Shop Sex Toys]]>><</link>> <br> <</if>> <br> <<run linkifyDivs('.button-back-to-shop')>> <<if $tryOn.value isnot 0>> <<icon "hanger.png">><<link "Return clothes">><<clothingReset>> <<updatesidebarimg>> <<updatesidebardescription>> <<updateallure>> <<updatewarmthscale>> <<updatewarmthdescription>> <<updateclothingshop>> <<run updateMoment()>> <</link>> <br> <<if $tryOn.value gt 0 and $tryOn.value lte $money>> <<sendItemsToDropdown>> <<shopicon "forest">><<link "Buy clothes">><<buyTryOnClothes "wear">><<updatesidebarmoney>><<updateclothingshop>><</link>> <br> <<wardrobeicon>><<link "Buy clothes and send to wardrobe">> <<buyTryOnClothes "wardrobe">> <<updatesidebarmoney>> <<updatesidebarimg>> <<updatesidebardescription>> <<updateallure>> <<updatewarmthscale>> <<updatewarmthdescription>> <<updateclothingshop>> <</link>> <br> <</if>> <<elseif $tryOn.value is 0>> <<getouticon>><<link [[Stop browsing clothes|Forest Shop Entrance]]>><<forestShopLeave>><</link>> <br> <</if>> <<if $tryOn.value gt 0 and !$robin_in_forest_shop>> <<if Object.values(V.tryOn.tryingOn).some(slot => slot?.type.includes("heavy"))>> <span class="red">The clothes you're trying on are too heavy to steal!</span> <<else>> <<getouticon>><<link [[Leave with stolen clothes|Forest Shop Stolen]]>> <<shopClothingFilterReset>> <<ShowUnderEquip "normal">> <<ShowUnderEquip "over">> <<buyTryOnClothes "wear" "steal">> <<set $tryOn.autoReset to true>> <<crimeUp `$tryOn.value / 100` "thievery">> <<shopHoodCheck>> <<shopCommandoCheck>> <</link>><<crime "thievery">> <</if>> <br> <</if>> <</widget>><<widget "gwylanGreeting">><<silently>> <<set $_gwylanSpeech to "">> <<if !$daily.gwylan.greeting>> <<set $daily.gwylan.greeting to true>> <<set $_gwylanSpeech to "<br><br>">> <<if $location is "cafe" and $daily.robin_in_cafe is 1>> <<set $_gwylanSpeech += "Gwylan ">> <<else>> <<set $_gwylanSpeech += "<<nnpc_He 'Gwylan'>> ">> <</if>> <<if $gwylan.wary gte 5>> <<set $_gwylanSpeech += "looks through you.">> <<elseif _gwylanLastSeenDays gte 21>> <<set $_gwylanSpeech += "looks surprised, but happy, to see you.">> <<elseif $gwylan.hunting is 3>> <<set $_gwylanSpeech += "looks both happy and irritated to see you.">> <<elseif $daily.gwylan.ritual>> <<set $_gwylanSpeech += "gives you a warm smile across beetroot-red cheeks.">> <<elseif _gwylanLovePercent gte 25>> <<set $_gwylanSpeech += "perks up upon seeing you.">> <<else>> <<if $location is "cafe">> <<set $_gwylanSpeech += "smiles softly, but continues staring out at the sea.">> <<else>> <<set $_gwylanSpeech += "waves you over.">> <</if>> <</if>> <<set $_linePool to []>> <<if $moorLuck gt 0>> <<set $_linePool.push(`"There's an air of luck around you today.`)>> <</if>> <<if $gwylanSeen.includes("romance")>> <<set $_linePool.push(`"Hello, dearest.`)>> <<else>> <<set $_linePool.push(`"Hello, dear.`)>> <</if>> <<if $gwylanSeen.includes("ritual_beast")>> <<set $_linePool.push(`"Hello, <<pcpetname 'Gwylan' 'name'>>.`)>> <</if>> <<if $location is "forest_shop" and $gwylanTalked.length gte 10 and (!$gwylan.wary or $gwylan.wary lte 1)>> <<set $_linePool.push(`"My favourite customer!`)>> <</if>> <<if $exposed gte 2 and $location is "forest_shop">> <<set $_linePool.push(`<<He>> avoids looking down. "Must be chilly in here.`)>> <</if>> <<if $worn.head.name is "rose" and $worn.head.colour.includes("pink")>> <<set $_linePool.push(`<<He>> frowns upon seeing the pink rose in your hair. "Hello.`)>> <<elseif $worn.head.name is "sage witch hat">> <<set $_linePool.push(`"Nice hat.`)>> <</if>> <<if $worn.upper.name === "chain tunic" && $worn.lower.name === "chain tunic skirt" || $worn.upper.name.includes("vintage") && $worn.lower.name.includes("vintage")>> <<set $_linePool.push(`"That looks really good on you.`)>> <<elseif $worn.upper.type.includes("costume") && $worn.lower.type.includes("costume") || (V.worn.upper.type.includes("naked") && V.worn.under_upper.type.includes("costume") && V.worn.lower.type.includes("naked") && V.worn.under_lower.type.includes("costume"))>> <<set $_linePool.push(`"Nice outfit.`)>> <</if>> <<if $location is "forest_shop" and $worn.feet.name is "reindeer slippers">> <<set $_linePool.push(`<<He>> notices your slippers. "Hello, deer.`)>> <</if>> <<if $_linePool.length>> <<set $_gwylanSpeech += " " + $_linePool.pluck()>> <<if _gwylanLastSeenDays gte 21>> <<set $_gwylanSpeech += `" <<He>> rubs the back of <<his>> head. "I'm glad to see you again. I was starting to think you had forgotten about me.`>> <</if>> <<if $location is "cafe" and getRobinLocation() is "cafe">> <<set $_gwylanSpeech += ` Come, join us." Robin smiles and waves at you.`>> <<else>> <<set $_gwylanSpeech += `"`>> <</if>> <</if>> <</if>> <</silently>><<print $_gwylanSpeech>><</widget>> <<widget "gwylanOptions">> <<if $gwylanPassTime>> <<pass $gwylanPassTime>> <<unset $gwylanPassTime>> <</if>> <<set _gwylanLocation to gwylanSchedule()>> <<set $gwylan.timer.lastSeen to Time.date.timeStamp>> <<if _gwylanLocation is "nowhere">> /* Nothing */ <<gwylanOptionsLeave>> <<exit>> <</if>> /* Story progress */ <<if !$gwylanSeen.includes("struggles") and $gwylan.progress gte 15 and _gwylanLovePercent gte 65 and $gwylanSeen.includes("ritual_beast") and $dateCount.GwylanBeast gte 2 and $gwylan.request.event isnot "meetAtCafe" and !gwylanRequestMet() and C.npc.Gwylan.dom gte 10 and C.npc.Gwylan.lust gte 25>> <<set $_noLeave to true>> <<if $location is "forest_shop">> <<He>> looks unsure of <<himself>> for a moment. "I need to ask you something," <<he>> blurts out. <br><br> <<link [[Next|Gwylan Talk Struggles Intro]]>><</link>> <br> <<else>> Gwylan's eyes have closed. <span class="blue">You try getting <<his>> attention, but <<he>> won't respond.</span> <br><br> <<if $location is "cafe" and !(between($chef_state, 7, 8) and $chef_rework lte 30)>> <<getouticon>><<link [[Say goodbye and go back inside (0:01)|Gwylan Talk Struggles Intro]]>><<pass 1>><</link>> <<elseif $location is "cafe">> <<getouticon>><<link [[Say goodbye (0:01)|Gwylan Talk Struggles Intro]]>><<pass 1>><</link>> <<else>> <<getouticon>><<link [[Back to the shop|Gwylan Talk Struggles Intro]]>><</link>> <</if>> <br> <</if>> <<exit>> <</if>> <<if $location is "forest_shop" and _gwylanLovePercent gte 80 and C.npc.Gwylan.dom gte 75 and $dateCount.GwylanSex gte 5 and $gwylan.sea gte 5 and !$gwylanSeen.includes("partners") and _gwylanStatus.includes("lust") and !$weekly.gwylanLIChance and $exposed is 0>> <<set $weekly.gwylanLIChance to true>> You feel Gwylan's hand on yours. <br><br> "Would you like to join me for a walk?" <<he>> asks. "I'd like to talk about something." <<He>> pauses. "I won't get angry at you again. Promise." <br><br> <<link [[Yes (1:00)|Gwylan Promenade Walk]]>><<endevent>><<pass 20>><<trauma -1>><</link>><<ltrauma>><<gyearning true>> <br> <<link [[Not right now|Gwylan Promenade Walk No]]>><<npcincr Gwylan dom -5>><</link>><<llyearning>> <br> <<exit>> <</if>> /* Leaving the cafe for elsewhere */ <<if $location is "cafe" and !(between($chef_state, 7, 8) and $chef_rework lte 30) and $gwylan.robin gte 10 and $daily.robin_in_cafe and getRobinLocation() isnot "cafe" and false>> /* WARNING! Re-enable later for Gwybin cafe */ Gwylan stands up with <<his>> plate. <<He>> empties the crumbs into the air, just as a flock of seagulls pass by. They don't let a single crumb land on the beach. <br><br> <<He>> smiles at you. "We better get going. You don't want to be late for school." Robin nods and grabs <<person2>><<his>> backpack. <span class="red">TODO: Walking to school with Gwylan and Robin.</span> <br><br> <<schoolicon "building">><<link [[Walk to school (0:05)|Gwylan Walk School Robin]]>><<set $daily.gwylan.cafeSkip to true>><<pass 5>><<unset $cafe_study>><<storeon "cafe_balcony">><<set $phase to 1>><</link>> <br> <<getouticon>><<link [[Excuse yourself and go back inside (0:01)|Ocean Breeze]]>><<pass 1>><<unset $cafe_study>><<storeon "cafe_balcony">><<endevent>><</link>> <br> <<exit>> <</if>> <<if $location is "cafe" and Time.schoolDay and (Time.hour is 8 and Time.minute gte 40 or Time.hour is 9) and !$daily.gwylan_skip_school and ($gwylanSeen.includes("cafe_walk") or ($gwylan.sea + ($gwylanTalked.count("fox_mask") * 20) + ($gwylanTalked.count("dark_pendant") * 20) gte 40))>> <<if _gwylanTF.known>> Gwylan's ears twitch, and <<he>> seems to realise something. <</if>> <<He>> smiles at you. <<if !$gwylanSeen.includes("cafe_walk")>> <<set $gwylanSeen.pushUnique("cafe_walk")>> "School starts for you soon, doesn't it?<<if $worn.neck.name is "familiar collar" and $worn.neck.cursed is 1 or $gwylanSeen.includes("petplay") and $worn.neck.type.includes("leash")>><<set _magicLeash to true>>" <<He>> grabs your leash and pulls you closer, trailing two fingers up your chest. "<<else>> <</if>>Want me to walk you there?" <<else>> "We better get going, <<if $worn.neck.name is "familiar collar" and $worn.neck.cursed is 1 or $gwylanSeen.includes("petplay") and $worn.neck.type.includes("leash")>><<set _magicLeash to true>><<pcpetname "Gwylan" "my">>." <<He>> grabs your leash and pulls you closer, trailing two fingers up your chest. "<<else>><<pcpetname "Gwylan" "simple">>. <</if>>You don't want to be late for school." <</if>> <br><br> <<schoolicon "building">><<link [[Walk to school (0:10)|Gwylan Walk School Solo]]>><<set $daily.gwylan.cafeSkip to true>><<pass 10>><<unset $cafe_study>><<storeon "cafe_balcony">><</link>> <br> <<refuseicon>><<link [[Decline the offer (0:01)|Gwylan Walk School Solo Decline]]>><<pass 1>><<set $daily.gwylan.cafeSkip to false>><<set $daily.gwylan_skip_school to 1>><</link>> <br> <<exit>> <</if>> <<if $location is "cafe" and !["cafe", "cliff", "walking_to_cafe"].includes(_gwylanLocation)>> <<if !(between($chef_state, 7, 8) and $chef_rework lte 30)>> Gwylan stands up with <<his>> plate. <<He>> empties the crumbs into the air, just as a flock of seagulls pass by. They don't let a single crumb land on the beach. <br><br> <</if>> "I'm heading back to the shop," <<he>> says. <<if $gwylan.request is "meetAtShop" and !$daily.gwylan.preventProgress>> "Remember to meet me there later, please." <<elseif $daily.gwylan.ritualRequestBlocked and $gwylanSeen.includes("ritual_beast")>> "If you still wish to enact the ritual today, you know where to find me." <<He>> winks, and leaves the balcony. <<else>> "Thank you for the company." <<He>> bows, and leaves the balcony. <</if>> <br><br> <<gwylanOptionsLeave>> <<exit>> <</if>> /* Leaving the forest shop for elsewhere */ <<if $location is "forest_shop" and ["walking_to_cafe", "cafe", "cliff"].includes(_gwylanLocation)>> Gwylan's eyes are glued to a nearby cuckoo clock. <<He>> suddenly walks by you, grabbing <<his>> hat and an umbrella from a stand. <<if ["walking_to_cafe", "cafe"].includes(_gwylanLocation)>> <<if $gwylanSeen.includesAny("cafe_walk", "struggles") or $gwylan.sea gte 10>> "Breakfast time," <<he>> says. <<if Time.schoolDay and $gwylanSeen.includes("cafe_walk")>> "Would you like to accompany me? I could walk you to school afterwards." <<else>> "Would you like to accompany me?" <</if>> <br><br> <<cafeicon>><<link [[Walk with Gwylan (0:15)|Gwylan Walk Cafe Solo]]>><<pass 15>><<set $phase to 0>><</link>> <br> <<refuseicon>><<link [[Decline the offer (0:01)|Gwylan Walk Cafe Solo]]>><<pass 1>><<set $phase to 1>><</link>> <<else>> "Breakfast time," <<he>> says. "Sorry. The <<if Time.season is "winter">>gingerbread waits<<else>>crepes wait<</if>> for nobody.<<if $gwylanSeen.includes("cafe")>> Meet me at the cafe later?<</if>>" <br><br> <<gwylanOptionsLeave>> <</if>> <<else>> "I'm going to..." <<He>> looks unsure for a moment. "Apologies, with my routine disrupted by the renovation I don't really know what to do with myself. I'll be on Cliff street." <br><br> <<gwylanOptionsLeave>> <</if>> <<exit>> <</if>> /* Normal options */ <<if $location is "forest_shop" and _gwylanLocation is "sleep">> <<He>> lets out an exaggerated yawn. "You sure know how to make the time run away from me. I'm off to sleep." <br><br> <<else>> <<if $location is "forest_shop">> <<set $daily.gwylan.clothesTalk ||= 0>> <<if $daily.gwylan.clothesTalk gte 3 and !$daily.gwylan.enoughTalk>> <<set $daily.gwylan.enoughTalk to true>> <<He>> stretches. "We have many stories to share, and I'd like us to actually remember them. I think I've heard enough for one day. Same time tomorrow?" <br><br> <span class="blue">Gwylan has heard enough of your stories for today.</span> <br><br> <<elseif $daily.gwylan.enoughTalk>> <span class="blue">Gwylan has heard enough of your stories for today.</span> <br><br> <</if>> <<gwylanOptionsSpecial>> <<if $gwylanSeen.includes("cafe_walk") and $exposed is 0 and (Time.hour === 6 && Time.minute >= 45 || Time.hour is 7)>> <<cafeicon>><<link [[Ask to walk to the cafe (0:15)|Gwylan Walk Cafe Ask]]>><<pass 15>><</link>> <br> <</if>> <<gwylanOptionsRequest>> <<gwylanOptionsService>> <<gwylanOptionsClothing>> <</if>> <<if $forest_shop_intro and !$gwylanSeen.includes("clothes_intro")>> <<set $_askbr to true>> <<socialiseicon "ask">><<link [[Ask Gwylan about the shop (0:10)|Gwylan Talk Clothes Intro]]>><<pass 10>><</link>> <br> <</if>> <<if $location is "cafe">> <<gwylanOptionsCafe>> <</if>> <<if $gwylanSeen.includes("yearning")>> <<gwylanOptionsGift>> <</if>> <</if>> <<gwylanOptionsLeave>> <</widget>> <<widget "gwylanOptionsSpecial">> <<if !_hideRitualOptions>> <<if $gwylanSeen.includes("ritual_beast")>> <<if $gwylan.timer.ritual and Time.date.dayDifference(new DateTime(V.gwylan.timer.ritual)) > 0>> <<set _ritualDays to Time.date.dayDifference(new DateTime(V.gwylan.timer.ritual))>> <<set $_askbr to true>> <<icon "clothes/witch_hat_sage.png">><span class="pink">Gwylan will be ready for another ritual in <<number _ritualDays>> <<pluralise _ritualDays "day" "days">>.</span> <<elseif $gwylanSeen.includes("ritual_sex_intro")>> <<set $_askbr to true>> <<icon "clothes/witch_hat_sage.png">><<link [[Help Gwylan with <<his>> ritual (?:??)|Gwylan Ritual Select]]>><</link>> <<else>> <<set $_askbr to true>> <<icon "clothes/witch_hat_sage.png">><<link [[Help Gwylan with <<his>> ritual (?:??)|Gwylan Forest Journey Prep]]>><<endevent>><</link>> <</if>> <br> <<if (!$gwylan.timer.sample or $gwylan.timer.sample lte Time.date.timeStamp) and !["meetAtCafe", "sample"].includes($gwylan.request.event)>> <<set $_askbr to true>> <<if $gwylanSeen.includes("sample")>> <<ind>><<link [[Help Gwylan replace the measuring charms|Gwylan Request Sample]]>><</link>> <<else>> <<ind>><<link [[Ask Gwylan about the poison in the world|Gwylan Request Sample]]>><</link>> <</if>> <br> <</if>> <<elseif !$gwylanSeen.includes("ritual_beast") and $gwylan.request.event is "meetAtShop" and !$daily.gwylan.preventProgress>> <<set $_askbr to true>> <<socialiseicon "ask">><<link [[Help Gwylan (?:??)|Gwylan Forest Journey Prep]]>><<endevent>><</link>> <br> <</if>> <</if>> /* ToDo: Gwylan ToDo: Magic Tattoos */ <<if $gwylanSeen.includes("ritual_beast") and !$gwylanSeen.includes("tattoos_intro")>> <<set $_askbr to true>> <<ind>><<link [[Ask Gwylan about <<his>> tattoos|Gwylan Talk Tattoos Intro]]>><</link>> <br> <</if>> <<if $gwylanSeen.includes("gwylan_ears") and !$gwylanSeen.includesAny("gwylan_ears_talk", "gwylan_tf_revealed") and $gwylanSeen.includes("hat_found")>> <<set $_askbr to true>> <<icon "clothes/witch_hat_sage.png">><<link [[Ask Gwylan about the ears on <<his>> hat (0:05)|Gwylan Talk TF Ears]]>><<pass 5>><</link>> <br> <</if>> <<if $gwylanSeen.includes("gwylan_tail") and !$gwylanSeen.includesAny("gwylan_tail_talk", "gwylan_tf_revealed")>> <<set $_askbr to true>> <<ind>><<link [[Ask Gwylan about <<his>> fake tail (0:05)|Gwylan Talk TF Tail]]>><<pass 5>><</link>> <br> <</if>> <<if $gwylanSeen.includes("gwylan_fangs") and !$gwylanSeen.includesAny("gwylan_fangs_talk", "gwylan_tf_revealed")>> <<set $_askbr to true>> <<ind>><<link [[Ask Gwylan about <<his>> sharp teeth (0:05)|Gwylan Talk TF Fangs]]>><<pass 5>><</link>> <br> <</if>> <<if $gwylanSeen.includesAll("gwylan_ears_talk", "gwylan_tail_talk", "gwylan_fangs_talk") and $settings.transformAnimalEnabled and ($gwylanTalked.includes("transformation") or $gwylanSeen.includes("player_tf")) and !$gwylanSeen.includes("gwylan_tf_revealed")>> <<set $_askbr to true>> <<icon "transformation.png">><<link [[Confront Gwylan about <<his>> foxiness (0:05)|Gwylan Talk TF Revealed Confront]]>><<pass 5>><</link>> <br> <</if>> <<if $avery_mansion>> <<if $avery_mansion.fox.known and $avery_mansion.fox.end and !$brownFoxRevealed and $gwylanTalked.includes("fox_mask") and ($brownFoxWoundedHint or $gwylanSeen.includes("yearning"))>> <<set $_askbr to true>> <<icon "clothes/foxmask.png">><<link [[Ask <<him>> to try on the fox mask (0:05)|Gwylan Talk Brown Fox]]>><<pass 5>><</link>> <br> <<elseif $brownFoxRevealed and !$brownFoxMaskTalk and $gwylanTalked.includes("fox_mask") and $avery_fate>> <<set $_askbr to true>> <<icon "clothes/foxmask.png">><<link [[Ask about the brown fox mask (0:05)|Gwylan Talk Brown Fox Mask]]>><<pass 5>><</link>> <br> <</if>> <</if>> <<if $_askbr>><br><</if>> <</widget>> <<widget "gwylanOptionsRequest">> <<if !$gwylan.request.event and $gwylanSeen.includes("hat_found")>> <<set $_reqbr to true>> <<socialiseicon "ask">><<link [[Ask <<him>> if <<he>> needs help with anything|Gwylan Request]]>><</link>> <br> <</if>> <<if $harpy gte 6 and $birdFly gte 1 and $gwylan.request.event isnot "preen" and !$plucked and $gwylanSeen.includesAny("preen", "request_preen")>> <<set $_reqbr to true>> <<tficon "bird">><<link [[Ask <<him>> to preen your wings (0:40)|Gwylan Request Preen]]>><</link>><<lstress>><<garousal>> <br> <</if>> <<if $gwylan.request.event and $location is "forest_shop">> <<switch $gwylan.request.event>> <<case "clothing">> <<if gwylanRequestMet()>> <<set $_reqbr to true>> <<set $_iconItem to $gwylan.request.items.find(item => item.root)>><<set $_iconWorn to V.worn[$_iconItem.slot]>> <<clothingicon $_iconWorn $_iconItem.slot>> <<if $gwylan.request.special and $gwylan.request.special isnot "none">> <<if $gwylan.request.special is "gold accessories">> <<link [[`Show <<him>> the gold accessories`|Gwylan Request Clothes Complete]]>><</link>> <<elseif $gwylan.request.details.outfit>> <<link [[`Show <<him>> the $gwylan.request.special outfit`|Gwylan Request Clothes Complete]]>><</link>> <<else>> <<link [[`Show <<him>> the $gwylan.request.special`|Gwylan Request Clothes Complete]]>><</link>> <</if>> <<elseif $_iconWorn.name>> <<link [[`Show <<him>> the $_iconWorn.name`|Gwylan Request Clothes Complete]]>><</link>> <<else>> <<link [[Show <<him>> the clothing <<he>> asked for|Gwylan Request Clothes Complete]]>><</link>> <</if>> <br> <<elseif $earSlime.forcedDressing and $gwylan.request.items.some(item => ![V.earSlime.forcedDressing, "n"].includes(item.gender)) || $earSlime.forcedCommando gt 0 && $gwylan.request.items.some(item => item.slot === "under_lower") || $gwylan.request.items.some(item => item.reveal lt earSlimeCorruptionClothes() && setup.clothingLayer.torso.includes(item.slot))>> <<set $_reqbr to true>> <<set _earSlimeText to numberOfEarSlime() gt 1 ? "ear slimes" : "ear slime">> <<socialiseicon "angry">><<link [[`Tell <<him>> your _earSlimeText won't let you complete <<his>> request`|Gwylan Talk Ear Slime Clothes]]>><</link>> <br> <</if>> <<case "ingredients">> <<if $gwylan.request.special is "tutorial" and $gwylanTutorialShrooms + $plants.wolfshroom.amount gte 3>> <<set $_reqbr to true>> <<tendingicon "wolfshroom">><<link [[Give <<him>> the wolfshrooms|Gwylan Request Tutorial Complete]]>><</link>> <br> <<elseif gwylanRequestMet()>> <<set $_reqbr to true>> <<set $_iconItem to $gwylan.request.items.find(item => item.root)>> <<set $_iconPlant to setup.plants[$_iconItem.name].icon.replace(/\.[^/.]+$/, "")>> <<tendingicon $_iconPlant>><<link [[Give <<him>> the ingredients <<he>> asked for|Gwylan Request Ingredients Complete]]>><</link>> <br> <</if>> <<case "sample">> <<if gwylanRequestMet()>> <<set $_reqbr to true>> <<scienceicon>><<link [[Give <<him>> the samples|Gwylan Request Sample Complete]]>><</link>> <br> <</if>> <<case "samplePlayer">> /* ToDo: Gwylan */ <<case "cream">> <<set $_reqbr to true>> <<tendingicon "cream">><<link [[Take up <<his>> lewd offer|Gwylan Request Cream]]>><</link>> <br> <<case "preen">> <<if $harpy gte 6 and $gwylan.request.special is "harpy">> <<set $_reqbr to true>> <<tficon "bird">><<link [[Let <<him>> preen your wings (0:40)|Gwylan Request Preen]]>><</link>><<lstress>><<garousal>> <br> <<if $bird?.materials?.feathers gte 10>> <<birdicon "feathers">><<link [[Give <<him>> 10 feathers instead|Gwylan Request Feathers]]>><<set $phase to 1>><</link>> <br> <</if>> <<elseif $bird?.materials?.feathers gte $gwylan.request.items.find(feather => feather.name === "feathers").need or $harpy gte 6>> <<set $_reqbr to true>> <<if $bird?.materials?.feathers gte $gwylan.request.items.find(feather => feather.name === "feathers").need>> <<birdicon "feathers">><<link [[Give <<him>> the requested feathers|Gwylan Request Feathers]]>><<set $phase to 2>><</link>> <br> <</if>> <<if $harpy gte 6>> <<tficon "bird">><<link [[Let <<him>> preen your wings instead (0:40)|Gwylan Request Preen]]>><</link>><<lstress>><<garousal>> <br> <</if>> <</if>> <<case "chastity">> <<if !playerChastity()>> <<lockicon "unlock">><<link [[Tell <<him>> you got your chastity device removed|Gwylan Chastity Removed]]>><</link>> <br> <<elseif playerChastity() and gwylanRequestMet()>> <<lockicon "unlock">><<link [[Give <<him>> the items <<he>> asked for (1:00)|Gwylan Chastity Removal Gold]]>><<pass 20>><</link>> <br> <</if>> <<default>> /* Request not applicable to interaction here */ <</switch>> <<if !gwylanRequestMet() and !$gwylan.request.command and $debug is 1>> /* ToDo: Gwylan - rerolling requests */ <span class="red">DEV NOTE: Request rerolling not yet implemented. Clears current request. May entirely break story progression if used carelessly.</span> <br> <<set $_reqbr to true>> <<icon "cross.png">><<link [[Ask Gwylan if you can do something else|Forest Shop Entrance]]>><<gwylanRequestEnd "skip">><<endevent>><</link>> <br> <</if>> <</if>> <<if $_reqbr>><br><</if>> <</widget>> <<widget "gwylanOptionsService">> <<if playerChastity() and $gwylan.request.hold isnot "chastity" and ($gwylanSeen.includesAny("chastity", "partners") or $gwylanJordanChastity or $gwylan.request.event is "chastity" and !$gwylan.request.items?.length)>> <<if $gwylan.requestLast?.hold is "chastity" and (!$gwylan.request.event or $gwylan.request.event is "chastity")>> <<lockicon>><<link [[Ask for help removing your chastity device|Gwylan Chastity Removal]]>><<set $phase to "skip">><</link>> <<else>> <<lockicon>><<link [[Ask for help removing your chastity device|Gwylan Chastity Removal]]>><</link>> <</if>> <br> <</if>> <<if !$gwylan.taken and $worn.neck.name is "familiar collar" and $gwylanSeen.includes("familiar_collar") and $daily.gwylan.collar_lock isnot 2>> <<if $worn.neck.cursed is 1>> <<icon "clothes/familiar_collar.png">><<link [[Ask Gwylan to unlock your familiar collar|Gwylan Familiar Collar Unlock]]>><</link>> <<else>> <<icon "clothes/familiar_collar.png">><<link [[Ask Gwylan to lock your familiar collar|Gwylan Familiar Collar Lock]]>><</link>><<gwylanHypnoNote>> <</if>> <br> <</if>> <<if $gwylanSeen.includesAll("partners", "familiar_collar") and (!$gwylan.timer.petBed or $gwylan.timer.petBed and Time.date.dayDifference(new DateTime(V.gwylan.timer.petBed)) <= 1) and $gwylan.request.hold isnot "petBed" and ($tiredness gte 1000 or $gwylanSeen.includes("doggy_bed"))>> <<if $gwylan.timer.petBed and Time.date.dayDifference(new DateTime(V.gwylan.timer.petBed)) <= 1>> <<bedicon "gwylanpet">><<link [[Ask Gwylan to keep your pet bed out for another week|Gwylan Dog Bed Request]]>><</link>> <<elseif $gwylanSeen.includes("doggy_bed")>> <<bedicon "gwylanpet">><<link [[Ask Gwylan to drag your pet bed out again|Gwylan Dog Bed Request]]>><</link>> <<else>> <<bedicon "default">><<link [[Ask Gwylan if you can sleep here|Gwylan Dog Bed Request]]>><</link>> <</if>> <br> <</if>> <<if !_hideHypnosisOptions>> <<if $gwylanSeen.includes("player_tf")>> <<if $angel gte 4 or $fallenangel gte 2 or $demon gte 4 or $wolfgirl gte 4 or $cat gte 4 or $cow gte 4 or $harpy gte 4 or $fox gte 4>> <<set $_hypnobr to true>> <<icon "transformation.png">><<link [[Ask for help coming to terms with your inner self|Gwylan Hypnosis Start]]>><<set $phase to "peace">><</link>><<gwylanHypnoNote>> <br> <</if>> <</if>> <<if numberOfEarSlime(true)>> <<if ($gwylanJordanSlime or $gwylanSeen.includes("ear_slime_intro")) and !$gwylanSeen.includes("ear_slime")>> <<set $_hypnobr to true>> <<socialiseicon "ask">><<link [[Ask about your ear <<pluralise numberOfEarSlime(true) "slime">>|Gwylan Talk Ear Slime]]>><</link>> <br> <<elseif $gwylanSeen.includes("ear_slime")>> <<set $_hypnobr to true>> <<hypnosisicon>><<link [[Ask for help silencing your ear <<pluralise numberOfEarSlime(true) "slime">>|Gwylan Hypnosis Start]]>><<set $phase to "silence">><</link>><<gwylanHypnoNote>> <br> <</if>> <</if>> <<if $gwylanSeen.includes("request_intro") and $sleeptrouble gte 1>> <<set $_hypnobr to true>> <<bedicon "zzz">><<link [[Tell Gwylan you're having trouble sleeping|Gwylan Hypnosis Start]]>><<set $phase to "slumber">><</link>><<gwylanHypnoNote>> <br> <</if>> /* ToDo: Gwylan - make proper unlock condition */ <<if $gwylanSeen.includes("ritual_beast") and $hallucinations gte 2>> <<set $_hypnobr to true>> <<symbol "awareness">><<link [[Ask Gwylan for help with hallucinations|Gwylan Hypnosis Start]]>><<set $phase to "insight">><</link>><<gwylanHypnoNote>> <br> <</if>> <<if $gwylanSeen.includes("request_intro") and Object.keys(V.hypnosis_traits).filter(trait => ["suggestion", "scream", "cover", "deviancy"].includes(trait) && V.hypnosis_traits[trait] >= 1).length>> <<set $_hypnobr to true>> <<hypnosisicon>><<link [[Ask for help forgetting hypnosis|Gwylan Hypnosis Start]]>><<set $phase to "removal">><</link>><<gwylanHypnoNote>> <br> <</if>> <<if $_hypnobr>><br><</if>> <</if>> /* ToDo: Gwylan - Sneaking into the garden */ /* ToDo: Gwylan - Punishments for disobedience, including familiar collar */ /* ToDo: Gwylan - break down to Gwylan about your troubles? Leads to existing fruit trauma scene. */ /* ToDo: Gwylan - Telling Gwylan about misc troubles. Pool of possible scenes based on trauma, traits, etc. Could unlock hypnosis services. 'tell Gwylan you've been having trouble sleeping' etc. V.gwylan.request.missed is 1 or V.gwylan.timer.lastSeen too high, say player feels bad about not seeing Gwylan */ /* ToDo: Gwylan - basic service unrelated to hypno that can be done without cooldown? */ <</widget>> <<widget "gwylanOptionsClothing">> <<if $gwylanSeen.includes("clothes_intro")>> <<if $daily.gwylan.enoughTalk>> /* Nothing */ <<else>> /* Get sets that the player can talk about */ <<set $_setsAtForestShop to getSpecialSets(sets => sets.shop.includes("forest"))>> /* Get unlocked sets */ <<set $_setsUnlocked to getUnlockedSpecialSets().filter(set => $_setsAtForestShop.includes(set) && !$gwylanTalked.includes(set))>> <<if !$gwylanSeen.includesAny("clothes_talk_cheated", "clothes_talk_bypassed")>> /* Count cheat sets for one-time event */ <<set $_setsCheated to getUnlockedSpecialSets(V.specialClothes.filter(c => c.unlocked === 1).map(c => c.name)).filter(set => $_setsAtForestShop.includes(set) && !$gwylanTalked.includes(set))>> <<set $_setsUnlocked to $_setsUnlocked.concat($_setsCheated)>> <</if>> <<if !$gwylanSeen.includes("clothes_talk_bypassed")>> /* Count feat sets for one-time event */ <<set $_setsBypassed to getUnlockedSpecialSets(V.specialClothes.filter(c => c.unlocked === 2).map(c => c.name)).filter(set => $_setsAtForestShop.includes(set) && !$gwylanTalked.includes(set))>> <<set $_setsUnlocked to $_setsUnlocked.concat($_setsBypassed)>> <</if>> <div class="no-numberify"> /* Talk to Gwylan about further heists after catsuit conversation */ <<if $gwylanTalked.includes("catsuit") and (($bird?.hunt?.estate is "complete" and !$gwylanTalked.includes("heist_silver")) or ($lakestealgold is 1 and !$gwylanTalked.includes("heist_gold")) or ($compound?.symbol.includes("docks") and !$gwylanTalked.includes("symbol")) or (($wrenHeist or $wrenSeen?.includes("heist")) and !$gwylanTalked.includes("heist_wren")))>> <<set $_catsuit to clone(setup.clothes.upper[75])>> <<set $_catsuit.colour to "black">> <<clothingicon $_catsuit "upper">><<link [[Tell <<him>> about your criminal adventures|Gwylan Talk Heists]]>><<set $phase to "silver">><</link>> <br> <</if>> <<if !$gwylanSeen.includes("clothes_talk_savescum") and _saveLoaded>> <<if localStorage.getItem("gwylanTalk") is "seen">> <<set $gwylanSeen.pushUnique("clothes_talk_savescum")>> <<elseif localStorage.getItem("gwylanTalk") is "nobody">> <!-- Do nothing. Don't trigger savescum message if nobody happens --> <<elseif !localStorage.getItem("gwylanTalk")>> <<run localStorage.setItem("gwylanTalk", 0)>> <<else>> <<run localStorage.setItem("gwylanTalk", Number(localStorage.getItem("gwylanTalk")) + 1)>> <</if>> <</if>> <<for $_label, _value range $_setsUnlocked>> <<set $_subsetVals to Object.keys(setup.specialClothesSets).filter(set => setup.specialClothesSets[set].subsetOf?.includes(_value))>> <<if $gwylanTalked.includesAll($_subsetVals)>> <<set $_clothesbr to true>> /* If value is a set that includes other sets, such as 'halloween', do not show the talk link unless all of its subsets have been talked about already. */ /* Empty arrays are valid to bypass this check, which is intended. */ /* Get icon provided by setup */ <<set _timeToPass to $_subsetVals.length ? 20 : 15>> <<set $_clothingObject to clone(setup.specialClothesSets[_value])>> <<if $_clothingObject.icon is "clothes">> <<set $_cIcon to clone(setup.clothes[$_clothingObject.iconSlot][$_clothingObject.iconIndex])>> <<set $_cIcon.colour to $_clothingObject.iconColor>><<set $_cIcon.accessory_colour to $_clothingObject.iconAccColor>> <<clothingicon $_cIcon $_clothingObject.iconSlot>> <<else>> <<set $_cIcon to $_clothingObject.icon>> <<icon $_cIcon>> <</if>> /* Passage names are "Gwylan Talk Clothes " + the set name from setup in title case with underscores removed */ <<set _incomingPassageText to toTitleCase(_value.replace(/_/g," "))>> <<capture _value, _incomingPassageText, _timeToPass>> <<if Number(localStorage.getItem("gwylanTalk")) gte 1>> <<link [[`Show <<him>> the $_clothingObject.text`|Gwylan Talk Clothes Savescum]]>><<set $clothesBeingTalkedAbout to _value>><</link>> <br> <<elseif !$_setsAtForestShop.includes(_value) or !setup.specialClothesSets[_value]>> <<link [[`Show <<him>> the $_clothingObject.text`|Gwylan Talk Clothes Error]]>><<set $clothesBeingTalkedAbout to _value>><</link>> <br> <<elseif $_setsCheated?.includes(_value)>> <<link [[`Show <<him>> the $_clothingObject.text`|Gwylan Talk Clothes Cheated]]>><<set $clothesBeingTalkedAbout to _value>><</link>> <br> <<elseif $_setsBypassed?.includes(_value)>> <<link [[`Show <<him>> the $_clothingObject.text`|Gwylan Talk Clothes Bypassed]]>><<set $clothesBeingTalkedAbout to _value>><</link>> <br> <<else>> <<if $_subsetVals.length>> <<link [[`Ask <<him>> about the $_clothingObject.text (0:_timeToPass)`|`Gwylan Talk Clothes `+ _incomingPassageText]]>><<set $gwylanPassTime to _timeToPass>><</link>><<glove>> <<else>> <<link [[`Show <<him>> the $_clothingObject.text (0:_timeToPass)`|`Gwylan Talk Clothes `+ _incomingPassageText]]>><<set $gwylanPassTime to _timeToPass>><</link>><<glove>> <</if>> <br> <</if>> <</capture>> <</if>> <</for>> </div> <</if>> <<if $_clothesbr>><br><</if>> <</if>> <</widget>> <<widget "gwylanOptionsGift">> <<if $location is "forest_shop" and checkSextoysGift("Gwylan") and C.npc.Gwylan.penis is "none" and checkIfNPCHasCategorySextoy("Gwylan","strap-on").length <= 5>> <<set $_giftbr to true>> <<for _key range Object.keys(V.NPCName[7].sextoys).filter(t => V.NPCName[7].sextoys[t][0].gift_state === "held")>> <<set _toy to V.NPCName[7].sextoys[_key][0]>> <<set _icon to `sexToys/${_toy.name.replace(/ /g, "_")}.png`>> <span @class="`clothes-${_toy.colour}`"><<icon _icon>></span> <<capture _toy>> <<link [[Gift Gwylan the _toy.colour _toy.name|Gwylan Gift Strap-on]]>> <<endevent>> <<set $phase to _toy.name>> <<set _toy.gift_state to "received">> <<generateNewStrapon _toy.size _toy.colour _toy.shape>> <<giveNNPCnewstrapon "Gwylan">> <</link>> <</capture>> <br> <</for>> <br> <</if>> <<if canGiftFood("Gwylan") and $location isnot "cliff">> <<set $_giftbr to true>> <<skinicon "give">><<link [[Give Gwylan food|Gwylan Gifts List]]>><</link>> <br> <</if>> <<if $_giftbr>><br><</if>> <</widget>> <<widget "gwylanOptionsCafe">> <<set $_schoolWalkAvailable to ($gwylanSeen.includes("cafe_walk") or ($gwylan.sea + ($gwylanTalked.count("fox_mask") * 20) + ($gwylanTalked.count("dark_pendant") * 20) gte 40)) or ($gwylan.robin gte 10 and $daily.robin_in_cafe and false)>> /* WARNING! Re-enable later for Gwybin cafe */ <<if $_schoolWalkAvailable and Time.schoolDay and ((Time.hour is 7 and Time.minute gte 45) or (Time.hour is 8 and Time.minute lte 35)) and !$daily.gwylan_skip_school>> <<set _passTime to "<<passTimeUntil 8 45>><<set $daily.gwylan.cafeSkip to true>>">><<set _passTimeDisplay to "0:" + ("0" + ((45 - Time.minute + 60) % 60)).slice(-2)>> <<elseif $_schoolWalkAvailable and Time.schoolDay and Time.hour is 8 and Time.minute gt 35 and !$daily.gwylan_skip_school>> <<set _passTime to "<<pass 10>><<set $daily.gwylan.cafeSkip to true>>">><<set _passTimeDisplay to "0:10">> <<elseif Time.hour lte 7 or (Time.hour is 8 and Time.minute lt 10)>> <<set _passTime to "<<pass 1 hour>>">><<set _passTimeDisplay to "1:00">> <<elseif Time.hour is 8 and Time.minute lte 20>> <<set _passTime to "<<passTimeUntil 9 20>><<set $daily.gwylan.cafeSkip to true>>">><<set _passTimeDisplay to "1:" + ("0" + (20 - Time.minute)).slice(-2)>> /* Because why stop socialising only minutes before you're going to leave anyway? */ <<elseif Time.hour is 9 and Time.minute gte 10>> <<set _passTime to "<<pass 10>><<set $daily.gwylan.cafeSkip to true>>">><<set _passTimeDisplay to "0:10">> /* So that Gwylan stays a little while longer if the player just arrived. */ <<else>> <<set _passTime to "<<passTimeUntil 9 20>><<set $daily.gwylan.cafeSkip to true>>">><<set _passTimeDisplay to "0:" + ("0" + ((20 - Time.minute + 60) % 60)).slice(-2)>> <</if>> <<beachicon>><<link [[Watch the sea with <<him>> (_passTimeDisplay)|Gwylan Ocean Breeze Watch]]>>_passTime<<stress -6>><<trauma -3>><<willpower 1>><</link>><<lstress>><<ltrauma>><<gwillpower>> <br> <<if $location is "cafe" and !(between($chef_state, 7, 8) and $chef_rework lte 30) and $daily.cafeEaten isnot 1>> <<if $money gte 200>> <<foodicon "coffee">><<link [[Buy coffee (_passTimeDisplay £2)|Gwylan Ocean Breeze Watch]]>> <<set $phase to "coffee">><<set $phase2 to 1>><<set $daily.cafeEaten to 1>><<money -200 "cafe">> <<stress -9>><<trauma -3>><<tiredness -4>><<willpower 1>>_passTime <</link>><<lstress>><<ltrauma>><<ltiredness>><<gwillpower>> <br> <</if>> <<if $money gte 700>> <<if Time.season is "winter">> <<foodicon "winterale">> <<if playerIsPregnant() and playerAwareTheyArePregnant()>> <span class="blue">You can't bring yourself to drink winter ale while you know you're with child.</span> <<else>> <<link [[Buy winter ale (_passTimeDisplay £7)|Gwylan Ocean Breeze Watch]]>> <<set $phase to "winter ale">><<set $phase2 to 1>><<set $daily.cafeEaten to 1>><<money -700 "cafe">> <<stress -12>><<alcohol 100>><<willpower 1>>_passTime <</link>><<llstress>><<ggalcohol>><<gwillpower>> <</if>> <br> <<elseif Time.season is "spring">> <<foodicon "fruityale">> <<if playerIsPregnant() and playerAwareTheyArePregnant()>> <span class="blue">You can't bring yourself to drink fruity ale while you know you're with child.</span> <<else>> <<link [[Buy fruity ale (_passTimeDisplay £7)|Gwylan Ocean Breeze Watch]]>> <<set $phase to "fruity ale">><<set $phase2 to 1>><<set $daily.cafeEaten to 1>><<money -700 "cafe">> <<stress -12>><<alcohol 60>><<willpower 1>>_passTime <</link>><<llstress>><<galcohol>><<gwillpower>> <</if>> <br> <<elseif Time.season is "summer">> <<foodicon "shandy">> <<if playerIsPregnant() and playerAwareTheyArePregnant()>> <span class="blue">You can't bring yourself to drink shandy while you know you're with child.</span> <<else>> <<link [[Buy shandy (_passTimeDisplay £7)|Gwylan Ocean Breeze Watch]]>> <<set $phase to "shandy">><<set $phase2 to 1>><<set $daily.cafeEaten to 1>><<money -700 "cafe">> <<stress -12>><<alcohol 40>><<willpower 1>>_passTime <</link>><<llstress>><<galcohol>><<gwillpower>> <</if>> <br> <<else>> <<foodicon "autumnale">> <<if playerIsPregnant() and playerAwareTheyArePregnant()>> <span class="blue">You can't bring yourself to drink autumn ale while you know you're with child.</span> <<else>> <<link [[Buy autumn ale (_passTimeDisplay £7)|Gwylan Ocean Breeze Watch]]>> <<set $phase to "autumn ale">><<set $phase2 to 1>><<set $daily.cafeEaten to 1>><<money -700 "cafe">> <<stress -12>><<alcohol 80>><<willpower 1>>_passTime <</link>><<llstress>><<galcohol>><<gwillpower>> <</if>> <br> <</if>> <</if>> <<if $money gte 300>> /* ToDo: Gwylan - bringing a milkshake to Gwylan at the forest shop */ <<if getRobinLocation() is "cafe">> <<if $gwylanSeen.includes("yearning")>> <<foodicon "milkshake">><<link [[Buy milkshake and share with Gwylan (_passTimeDisplay £3)|Gwylan Ocean Breeze Watch]]>> <<set $phase to "milkshake">><<set $phase2 to 2>><<set $daily.cafeEaten to 1>><<money -300 "cafe">> <<stress -12>><<willpower 1>>_passTime <</link>><<llstress>><<gwillpower>> <br> <</if>> <<if $robinromance is 1>> <<foodicon "milkshake">><<link [[Buy milkshake and share with Robin (_passTimeDisplay £3)|Gwylan Ocean Breeze Watch]]>> <<set $phase to "milkshake">><<set $phase2 to 3>><<set $daily.cafeEaten to 1>><<money -300 "cafe">> <<stress -12>><<willpower 1>>_passTime <</link>><<llstress>><<gwillpower>> <br> <</if>> <<if $gwylanSeen.includes("yearning") and $robinromance is 1>> <<foodicon "milkshake">><<link [[Buy milkshake and share with them both (_passTimeDisplay £3)|Gwylan Ocean Breeze Watch]]>> <<set $phase to "milkshake">><<set $phase2 to 4>><<set $daily.cafeEaten to 1>><<money -300 "cafe">> <<stress -12>><<willpower 1>>_passTime <</link>><<llstress>><<gwillpower>> <br> <</if>> <<else>> <<if $gwylanSeen.includes("yearning")>> <<foodicon "milkshake">><<link [[Buy milkshake and share (_passTimeDisplay £3)|Gwylan Ocean Breeze Watch]]>> <<set $phase to "milkshake">><<set $phase2 to 1>><<set $daily.cafeEaten to 1>><<money -300 "cafe">> <<stress -12>><<willpower 1>>_passTime <</link>><<llstress>><<gwillpower>> <br> <</if>> <</if>> <</if>> <<if $money gte 500>> <<foodicon "fruitsalad">> <<link [[Buy fruit salad (_passTimeDisplay £5)|Gwylan Ocean Breeze Watch]]>> <<set $phase to "fruit salad">><<set $phase2 to 1>><<set $daily.cafeEaten to 1>><<money -500 "cafe">> <<stress -12>><<trauma -3>><<willpower 1>>_passTime <</link>><<lstress>><<ltrauma>><<gwillpower>> <br> <</if>> <<if $money gte 600 and Time.season is "winter">> <<foodicon "gingerbread">> <<link [[Buy gingerbread (_passTimeDisplay £6)|Gwylan Ocean Breeze Watch]]>> <<set $phase to "gingerbread">><<set $phase2 to 1>><<set $daily.cafeEaten to 1>><<money -600 "cafe">> <<stress -14>><<willpower 1>>_passTime <</link>><<llstress>><<gwillpower>> <br> <</if>> <<if $money gte 1000>> <<foodicon "pancakes">> <<link [[Buy pancakes (_passTimeDisplay £10)|Gwylan Ocean Breeze Watch]]>> <<set $phase to "pancakes">><<set $phase2 to 1>><<set $daily.cafeEaten to 1>><<money -1000 "cafe">> <<stress -6>><<trauma -3>><<tiredness -6>><<willpower 1>>_passTime <</link>><<lstress>><<ltrauma>><<ltiredness>><<gwillpower>> <br> <<foodicon "crepes">> <<link [[Buy crepes (_passTimeDisplay £10)|Gwylan Ocean Breeze Watch]]>> <<set $phase to "crepes">><<set $phase2 to 1>><<set $daily.cafeEaten to 1>><<money -1000 "cafe">> <<stress -3>><<trauma -6>><<tiredness -6>><<willpower 1>>_passTime <</link>><<lstress>><<ltrauma>><<ltiredness>><<gwillpower>> <br> <</if>> <<if $money gte 5000>> <<foodicon "creambun">> <<link [[Buy Deluxe Cream Bun (_passTimeDisplay £50)|Gwylan Ocean Breeze Watch]]>> <<set $phase to "deluxe cream bun">><<set $phase2 to 1>><<set $daily.cafeEaten to 1>><<money -5000 "cafe">> <<transform cat 1>><<stress -24>><<trauma -3>><<willpower 1>>_passTime <</link>><<lllstress>><<ltrauma>><<gwillpower>> <br> <</if>> <</if>> <<if !(between($chef_state, 7, 8) and $chef_rework lte 30) and $cafe_study and ($studyBooks.rented isnot "none" or $studyBooks.stolen isnot "none") and Time.schoolDay>> <br> <<switch $studyBooks.rented>> <<case "science">><<scienceicon>><<link [[Study science (_passTimeDisplay)|Gwylan Ocean Breeze Watch]]>><<set $phase to "science">><<set $phase2 to 2>><<scienceskill>><<willpower 1>>_passTime<</link>><<gscience>><<gwillpower>><br> <<case "maths">><<mathicon>><<link [[Study maths (_passTimeDisplay)|Gwylan Ocean Breeze Watch]]>><<set $phase to "maths">><<set $phase2 to 2>><<mathsskill>><<willpower 1>>_passTime<</link>><<gmaths>><<gwillpower>><br> <<case "english">><<englishicon>><<link [[Study English (_passTimeDisplay)|Gwylan Ocean Breeze Watch]]>><<set $phase to "English">><<set $phase2 to 2>><<englishskill>><<willpower 1>>_passTime<</link>><<genglish>><<gwillpower>><br> <<case "history">><<historyicon>><<link [[Study history (_passTimeDisplay)|Gwylan Ocean Breeze Watch]]>><<set $phase to "history">><<set $phase2 to 2>><<historyskill>><<willpower 1>>_passTime<</link>><<ghistory>><<gwillpower>><br> <</switch>> <<switch $studyBooks.stolen>> <<case "science">><<scienceicon>><<link [[Study science (_passTimeDisplay)|Gwylan Ocean Breeze Watch]]>><<set $phase to "science">><<set $phase2 to 2>><<scienceskill>><<willpower 1>>_passTime<</link>><<gscience>><<gwillpower>><br> <<case "maths">><<mathicon>><<link [[Study maths (_passTimeDisplay)|Gwylan Ocean Breeze Watch]]>><<set $phase to "maths">><<set $phase2 to 2>><<mathsskill>><<willpower 1>>_passTime<</link>><<gmaths>><<gwillpower>><br> <<case "english">><<englishicon>><<link [[Study English (_passTimeDisplay)|Gwylan Ocean Breeze Watch]]>><<set $phase to "English">><<set $phase2 to 2>><<englishskill>><<willpower 1>>_passTime<</link>><<genglish>><<gwillpower>><br> <<case "history">><<historyicon>><<link [[Study history (_passTimeDisplay)|Gwylan Ocean Breeze Watch]]>><<set $phase to "history">><<set $phase2 to 2>><<historyskill>><<willpower 1>>_passTime<</link>><<ghistory>><<gwillpower>><br> <</switch>> <</if>> <br> <</widget>> <<widget "gwylanOptionsLeave">> <<set $_schoolWalkAvailable to ($gwylanSeen.includes("cafe_walk") or ($gwylan.sea + ($gwylanTalked.count("fox_mask") * 20) + ($gwylanTalked.count("dark_pendant") * 20) gte 40)) or ($gwylan.robin gte 10 and $daily.robin_in_cafe and false)>> /* WARNING! Re-enable later for Gwybin cafe */ <<if $gwylan.request.event is "meetAtShop" and $location is "forest_shop" and gwylanCanForceRitual("beast") and !_ritualFailSafe and !$daily.gwylan.preventProgress>> <<getouticon>><<link [[Back to the shop|Gwylan Forest Journey Cancel]]>><</link>><<if $daily.gwylan.eventCancelled>><<gwylanWillpowerDifficulty>><</if>> /* ToDo: Gwylan - forcing player into ritual if it's been too long */ <<elseif $location is "cafe" and !(between($chef_state, 7, 8) and $chef_rework lte 30)>> <<if $_schoolWalkAvailable and Time.schoolDay and !$daily.gwylan_skip_school>> <<if $daily.robin_in_cafe>> <<schoolicon "building">><<link [[Walk to school early (0:10)|Gwylan Walk School Robin]]>><<pass 10>><<set $daily.gwylan.cafeSkip to true>><<unset $cafe_study>><<storeon "cafe_balcony">><</link>> <<else>> <<schoolicon "building">><<link [[Walk to school early (0:10)|Gwylan Walk School Solo]]>><<pass 10>><<set $daily.gwylan.cafeSkip to true>><<unset $cafe_study>><<storeon "cafe_balcony">><</link>> <</if>> <br> <</if>> <<getouticon>><<link [[Say goodbye and go back inside (0:01)|Ocean Breeze]]>><<pass 1>><<unset $cafe_study>><<storeon "cafe_balcony">><<endevent>><</link>> <<elseif $location is "cafe">> <<getouticon>><<link [[Say goodbye (0:01)|Cliff Street]]>><<pass 1>><<endevent>><<set $eventskip to 1>><</link>> <<else>> <<getouticon>><<link [[Back to the shop|Forest Shop Entrance]]>><<endevent>><</link>> <</if>> <br> <</widget>> <<widget "seagullFood">><<silently>> <<if npcIsPregnant("Gwylan")>> <<set _seagullFood to "plum crepes">> <<elseif Time.season is "winter">> <<set _seagullFood to "gingerbread">> <<elseif _gwylanStatus?.includes("lust")>> <<set _seagullFood to "cherry crepes">> <<else>> <<set _seagullFood to "strawberry crepes">> <</if>> <</silently>><<print _seagullFood>><</widget>> <<widget "gwylanHypnoName">><<silently>> <<if $hypnosis_traits.devotion gte 4>> <<if _args[0] is "cap">> <<set $_text_output to `<span class="witch">Your <<nnpc_master "Gwylan">></span>`>> <<else>> <<set $_text_output to `<span class="witch">your <<nnpc_master "Gwylan">></span>`>> <</if>> <<else>> <<set $_text_output to "Gwylan">> <</if>> <</silently>><<print $_text_output>><</widget>> <<widget "gwylanNoChoice">> <<if _args[0] is "speech">> <<hypnosisText "The words are snatched from your mouth before you can speak them.">> <<else>> <<hypnosisText "Your body is not your own.">> <</if>> <br><br> Gwylan giggles. <<print either( `"<<pcPetname 'Gwylan' 'simple'>>...?"`, `"You look confused... shhh, it's okay."`, `"You wouldn't say 'no' to me, would you, dear?"`, )>> <br> <</widget>> <<widget "gwylanChaseOptions">> <<link [[Run (0:05)|Gwylan Forest Run]]>><<pass 5>><<tiredness 2>><<set $phase to "run">><</link>><<gtiredness>><<athleticsdifficulty $beastRitual.difficultyMin $beastRitual.difficultyMax true>> <br> <<if !$beastRitual.foxChase>> <<link [[Walk (0:10)|Gwylan Forest Run]]>><<stress -1>><<pass 10>><<set $beastRitual.time++>><<set $phase to "walk">><</link>><<lstress>> <br> <</if>> <<if $fox gte 4 and $beastRitual.distance lt 0 and !$beastRitual.foxChase>> <<link [[Track and chase Gwylan (0:05)|Gwylan Forest Run Fox Chase]]>><<transform fox 1>><<tiredness 6>><<trauma -8>><</link>><<ggtiredness>><<lltrauma>><<fox>> <br> <</if>> <<if $beastRitual.lewdOption and $beastRitual.distance gte 2 and !$beastRitual.ambush>> <<link [[Wait and ambush Gwylan|Gwylan Forest Run Ambush]]>><<def 1>><<transform fox 1>><<set $phase to "ambush">><</link>><<skill_difficulty `currentSkillValue("skulduggery")` "Skulduggery" 400 1000>> <br> <</if>> <<if $beastRitual.stalked is "wolf" and ($wolfgirl gte 6 or $wolfpackleader gte 1)>> <<if $wolfgirl gte 6>> <<link [[Howl|Gwylan Forest Run Howl]]>><</link>><<wolfgirl>> <<elseif $wolfpackleader gte 1>> <<link [[Howl|Gwylan Forest Run Howl]]>><</link>><<note "Pack Alpha" "red">> <</if>> <br> <</if>> <</widget>> <<widget "gwylanPurgeEffect">><<silently>> <<if $gwylanSeen.includes("ritual_beast") and $beastRitual or $gwylanSeen.includes("ritual_sex") and $sexRitual>> <<set $_plus to _args[0]>> <<switch $_plus>> <<case 3>><<set $_text_output to " | <span class='teal'>+ + + Purging Effectiveness</span>">> <<case 2>><<set $_text_output to " | <span class='teal'>+ + Purging Effectiveness</span>">> <<case 1>><<set $_text_output to " | <span class='teal'>+ Purging Effectiveness</span>">> <<case -1>><<set $_text_output to " | <span class='purple'>- Purging Effectiveness</span>">> <<case -2>><<set $_text_output to " | <span class='purple'>- - Purging Effectiveness</span>">> <<case -3>><<set $_text_output to " | <span class='purple'>- - - Purging Effectiveness</span>">> <<default>><<set $_text_output to " | <span class='teal'>+ Purging Effectiveness</span>">> <</switch>> <</if>> <</silently>><<if $_text_output>><<print $_text_output>><</if>><</widget>> <<widget "gwylanWorshipEffects">> <<set $_fluid to $worship.fluid>> <<switch $worship.action>> <<case "start">> <<He>> looks at you expectantly. <<case "none">> <<set $worship.arousal -= 5>> <<if $worship.actionLast is "none">> You continue to stare up at Gwylan. <<His>> hand caresses your cheek, before moving to your head. <span class="lewd"><<He>> pushes your head down to <<his>> <<npcGenitals 0>>.</span> <<set $worship.control to "Gwylan">> <<else>> You simply stare up at Gwylan. <<He>> smiles at you. <</if>> <<case "body">> <<set $worship.body-->><<set $worship.arousal += 3>><<arousal 100>> <<if $worship.actionLast is "none">> You start to lick Gwylan's skin, following the lines of $_fluid along <<his>> body. <<He>> exhales slowly. <<elseif $worship.actionLast is "body">> You continue licking Gwylan's body, savouring the taste of the sweet $_fluid. <<else>> You move to lick Gwylan's skin, savouring the taste of the sweet $_fluid on <<his>> body. <</if>> <<if $worship.body lte 0>> Finally, there's no $_fluid left on <<his>> skin. <<if $worship.breasts gte 3 and C.npc.Gwylan.breastsize gte 6>> <<He>> cups <<his>> $_fluid-covered breasts, giving you a clear preference for your next target. <<elseif $worship.genitals gte 2>> <<He>> smiles and spreads <<his>> legs, giving you a clear preference for your next target. <</if>> <<else>> <<if $_fluid is "nectar">><<nectarfed 3>><<elseif $_fluid is "cream">><<stress -1>><</if>> <</if>> <<case "tummy">> <<set $worship.tummy-->><<set $worship.arousal += 5>><<arousal 100>> <<if $worship.actionLast is "none">> You start to lick Gwylan's <<bellyDescription "Gwylan">>. <<He>> shivers as you taste the $_fluid. <<elseif $worship.actionLast is "body">> You continue licking Gwylan's <<bellyDescription "Gwylan">>. <<His>> skin tastes sweet, too. <<else>> You move to lick Gwylan's <<bellyDescription "Gwylan">> instead. <<He>> shivers as you taste the $_fluid. <</if>> <<if $worship.body lte 0>> Finally, there's no $_fluid left on <<his>> tummy. <<He>> giggles. <<else>> <<if $_fluid is "nectar">><<nectarfed 3>><<elseif $_fluid is "cream">><<stress -1>><</if>> <</if>> <<case "breasts">> <<set $worship.breasts-->><<set $worship.arousal += 2 + Math.floor(C.npc.Gwylan.breastsize / 2)>><<arousal 500>> <<if $worship.actionLast is "breasts">> You continue licking <<if $worship.breasts gt 0>>the $_fluid off of <</if>>Gwylan's <<= C.npc.Gwylan.breastsdesc>>, flicking at <<his>> nipple with your tongue occasionally. <<set $worship.arousal += 5>> <<else>> You lick Gwylan's <<= C.npc.Gwylan.breastsdesc>>. <<He>> places <<his>> hand behind your head. <</if>> <<if $worship.breasts lte 0 and !$worship.breastsClean>> <<set $worship.breastsClean to true>> Your licking reveals the freckles on <<if C.npc.Gwylan.breastsize lte 2>> <<his>> chest. <<else>> the top of <<his>> breasts. <</if>> <<elseif C.npc.Gwylan.breastsize gte 6 and $worship.breasts gte 1>> The contours of <<his>> breasts make you put a little more effort in to get all the $_fluid. <</if>> <<if $worship.breasts gt 0>> <<if $_fluid is "nectar">><<nectarfed 3>><<elseif $_fluid is "cream">><<stress -1>><</if>> <</if>> <<if $worship.breasts lte -5>> <<set $worship.noBreasts to true>> "Alright, enough of that," <<he>> whispers, pulling your head away. <</if>> <<if !$worship.promBreasts>><<set $worship.promBreasts to true>><<set _noBR to true>><<promiscuity1>><</if>> <<case "nipples">> <<set $worship.breasts-->><<set $worship.arousal += 4 + Math.floor(currentSkillValue("oralskill") / 40)>><<arousal 500>> <<if $worship.actionLast is "nipples">> You continue sucking on Gwylan's nipples. <<elseif $worship.actionLast is "nipplesBite">> You stop nibbling, and go back to sucking. <<He>> strokes the back of your head and giggles. <<ltrauma>><<trauma -1>><br> <<else>> You suck on Gwylan's nipples. The taste of <<if $worship.lactation>>milk<<else>>$_fluid still<</if>> lingers. <<He>> strokes the back of your head. <<ltrauma>><<trauma -1>><br> <</if>> <<if $NPCList[0].lactation is 1>> <<set $worship.arousal += 20>> <<if !$worship.lactation>> <<set $worship.lactation to true>> After a moment, <span class="lewd">you taste fresh milk.</span> Your eyes briefly widen. <<if npcIsPregnant("Gwylan")>> Even Gwylan looks a little surprised, but <<he>> laughs and slowly cradles your head. <<else>> Even Gwylan looks a little surprised for a moment, but a look of realisation follows. "Some of the herbs I work with are known to... induce lactation. I guess I haven't been careful enough with exposure." <<He>> giggles, and slowly cradles your head. "At least we have an easy solution." <</if>> <<else>> <<if $_fluid is "cream">> You drink more of Gwylan's milk, swallowing mouthful after mouthful of a different kind of cream. <<He>> hums softly to you. <<stress -3>><<lstress>><br> <<else>> You drink more of Gwylan's milk, swallowing mouthful after mouthful. <<He>> hums softly to you. <<stress -3>><<lstress>><br> <</if>> <</if>> <<breastfed>> <</if>> <<if $worship.breasts lte -5>> <<set $worship.noBreasts to true>> "Alright, enough of that," <<he>> whispers, <span class="blue">pulling your head away</span>. <<if $worship.lactation and npcIsPregnant("Gwylan")>> "Save some for the baby." <</if>> <</if>> <<case "nipplesBite">> <<set $worship.breasts-->><<set $worship.arousal += 5 + Math.floor(currentSkillValue("oralskill") / 35)>><<arousal 500>> You lightly nibble on Gwylan's nipples. <<He>> shudders. <<if $worship.breasts lte -5>> <<set $worship.noBreasts to true>> "Alright, enough of that," <<he>> whispers, pulling your head away. <</if>> <<case "genitals">> <<set $worship.genitals-->><<set $worship.arousal += 5 + Math.floor(currentSkillValue("oralskill") / 25)>><<arousal 800 "mouth">> <<if $worship.actionLast isnot "genitals">> You move your head to Gwylan's <<npcGenitals 0>> and <<if $worship.genitals gte 1>> start to lap up the $_fluid. <<else>> <<if C.npc.Gwylan.penis isnot "none">> lick <<his>> shaft up and down. It still tastes like $_fluid. <<else>> slowly insert your tongue into <<his>> pussy. <</if>> <</if>> <<else>> <<if $worship.genitals gte 1>> You continue lapping up the $_fluid around <<his>> <<npcGenitals 0>>. <<else>> <<if C.npc.Gwylan.penis isnot "none">> You continue licking Gwylan's shaft, taking breaks to kiss the tip and work your tongue around it. <<else>> You continue thrusting your tongue into Gwylan's pussy, taking breaks to lick <<his>> clit. <</if>> <</if>> <</if>> <<if $worship.control is "Gwylan">> <<He>> moans softly, gripping the back of your head and pulling. <<else>> <<He>> moans softly. <</if>> <<if !$worship.promGenitals and $worship.control is "player">><<set $worship.promGenitals to true>><<set _noBR to true>><<promiscuity2>><</if>> <<if $worship.genitals gt 0>> <<if $_fluid is "nectar">><<nectarfed 3>><<elseif $_fluid is "cream">><<stress -1>><</if>> <</if>> <<case "oral">> <<set $worship.arousal += 5 + Math.floor(currentSkillValue("oralskill") / 15)>><<arousal 1000 "mouth">> <<if $worship.actionLast is "oral">> <<else>> You slowly take Gwylan's <<npcPenis>> into your mouth. <<takeVirginity "Gwylan" "oral">> <<if $worship.genitals gte 1>> You clean it of any remaining $_fluid as you take it all the way. <<if $_fluid is "nectar">><<nectarfed 3>><<elseif $_fluid is "cream">><<stress -1>><</if>> <<else>> You bob your head up and down, savouring the lingering taste of $_fluid. <</if>> <<His>> hand grips the quilted blanket. <</if>> <<set $worship.genitals to 0>> <<case "residue">> <<set $worship.residue to 0>> You crawl forward. Gwylan looks surprised, backing away slightly as your face comes close to <<hers>>. You don't kiss <<him>>, though. Instead, you lick the side of <<his>> mouth. The small amount of purple fluid tastes sweet. <br><br> <<He>> smiles. "Brace yourself, that's a strong mixture. I'm used to it, but it might have a kick for you." You start to feel very warm. <<arousal 2000>><<drugs 120>><<ggarousal>><<ggdrugged>> <<case "splurt">> <<set $worship.arousal += 10>> You pull away, and angle your penis towards Gwylan's body just in time. <<He>> tilts <<his>> head. You don't have to do any additional work. Whatever drug you licked off of <<him>> is driving you over the edge. <<orgasm>> <<if $femaleclimax>> Gwylan blinks at you, seeming almost disappointed at the lack of semen for a moment. <<else>> <<set $worship.semen to true>> <<if _gwylanStatus.includes("dom")>> Gwylan grins. "Clean that up, silly <<pcpetname "Gwylan" "simple">>." <<else>> Gwylan blinks at you, your semen now mixed with some of the remaining $_fluid. "Do you... plan on cleaning that up, too?" <</if>> <</if>> <<case "splurtLick">> <<set $worship.arousal += 20>> You lick your own cum off of <<him>>. <<He>> laughs and pats your head. "<<pcPetname "Gwylan" "good">>, cleaning up after <<pherself>>." <<stress -2>><<lstress>> <</switch>> <<set $worship.actionLast to $worship.action>> <<set $worship.timer-->> <<if !_noBR>><br><br><</if>> <<if $worship.residue is 0 and $arousal gte $arousalmax>> <<set _orgasmAlt to true>> The heat within you reaches a boiling point. <span class="kill-br"><<orgasm>></span> <<if $worship.actionLast is "genitals">> <<set $worship.arousal += 30>> You press your tongue up against Gwylan's <<npcGenitals 0>> harder. Your service is clumsy, but <<he>> seems further aroused by your climax regardless. <<elseif $worship.actionLast is "oral">> <<set $worship.arousal += 60>> Your mouth tightens around <<his>> <<npcPenis>>. <<He>> shudders with you. <<elseif ["breasts", "nipples", "nipplesBite"].includes($worship.actionLast)>> You bury your face in Gwylan's chest as the waves of pleasure wash over you. <<He>> cradles your head and hums a soothing melody as you come down from the orgasm. <<else>> You cling onto Gwylan tightly as the waves of pleasure wash over you. <<He>> wraps an arm around you for comfort as you come down from the orgasm. <</if>> <br><br> <</if>> <<if $worship.arousal gte 200 and ["oral", "genitals", "breasts", "nipples", "nipplesBite", "tummy", "body"].includes($worship.actionLast)>> <<if _orgasmAlt>> <span class="lewd">The force of your orgasm pushes <<him>> over the edge, too.</span> <</if>> <<if $worship.actionLast is "genitals">> <<if $worship.control is "Gwylan">> <<He>> pulls your head even harder, <<else>> <<He>> pulls the back of your head, <</if>> <<if C.npc.Gwylan.penis isnot "none">> pressing <<his>> penis right up against you. <span class="lewd">A spurt of warm semen streaks across your face.</span> You change your position to catch a second and third in your mouth. <<bodyliquid "face" "semen">><<bodyliquid "mouth" "semen">><<cumswallow "human" 40>><<set $worship.end to "genitals">> <br><br> It's not over, though. <<His>> back arches, and <<he>> keeps cumming. <<if $ejactrait gte 1 or $demon gte 6>> <<if $_fluid is "cream">> You excitedly place your mouth directly on <<his>> head and work <<his>> shaft, wanting to extract as much of <<his>> precious cream as you can. <<else>> You excitedly place your mouth directly on <<his>> head and work <<his>> shaft, eager to mix the taste of <<his>> semen with the $_fluid. <</if>> <<else>> <<if $_fluid is "cream">> You place your mouth directly on the head and hold the shaft steady as your mouth fills with a different kind of cream. <<else>> You place your mouth directly on the head and hold the shaft steady as your mouth fills with <<his>> cum. <</if>> <</if>> <<else>> <<bodyliquid "face" "goo">><<bodyliquid "mouth" "goo">><<set $worship.end to "genitals">> forcing you to lick harder and deeper. <<His>> back arches as <<he>> cums. <<His>> fluids coat your tongue, mixing with the taste of the $_fluid. <</if>> <<elseif $worship.actionLast is "oral">> <<bodyliquid "mouth" "semen" 3>><<cumswallow "human" 80>><<set $worship.end to "oral">> <<if $worship.control is "Gwylan">> <<He>> presses down on your head even harder, <<else>> <<He>> presses down on your head, <</if>> <span class="lewd">forcing you to take more of <<his>> length as <<he>> cums</span>. The first spurt of warm semen tickles the back of your throat. <<His>> back arches, and <<he>> keeps cumming. <br><br> <<if $ejactrait gte 1 or $demon gte 6>> You brace yourself and excitedly work <<his>> shaft while continuing to circle your tongue on the head. You don't want to take <<his>> whole length; You want to savour the taste. You close your eyes as load after load of <<his>> precious <<if $_fluid is "cream">>cream<<else>>cum<</if>> fills your mouth. <<else>> <<if $_fluid is "cream">> You close your eyes and gently continue working <<his>> shaft as load after load of a different kind of cream fills your mouth. <<else>> You place your mouth directly on the head and hold the shaft steady as your mouth fills with <<his>> cum. <</if>> <</if>> <<elseif ["breasts", "nipples", "nipplesBite"].includes($worship.actionLast)>> <<His>> hums die down, and <<he>> holds you close. <<if _orgasmAlt>> You feel like you're being smothered. <</if>> <<if $worship.lactation>> <<set $worship.end to "milk">> <span class="lewd">More milk leaks from <<his>> nipples, filling your mouth again as <<he>> shudders in climax.</span> <<else>> <<set $worship.end to "breasts">> <span class="lewd">You continue teasing <<his>> breasts as <<he>> shudders in climax.</span> <</if>> <<else>> <<set $worship.end to "default">> <<if _orgasmAlt>> <span class="lewd"><<He>> holds you close in return. The two of you shudder in an orgasmic embrace.</span> <<else>> <span class="lewd"><<He>> holds you close as <<he>> shudders in climax.</span> <</if>> <</if>> <br><br> <<His>> tremors finally subside, and <<he>> breathes heavily. <<npcincr Gwylan lust -20>><<lllust>> <br><br> <<else>> <<if $worship.arousal gte 200>> <span class="pink"><<He>> tenses up sharply.</span> <<elseif $worship.arousal gte 180>> <span class="pink">You think <<hes>> approaching orgasm.</span> <<elseif $worship.arousal gte 150>> <span class="purple"><<He>> looks lustful.</span> <<elseif $worship.arousal gte 100>> <span class="blue"><<He>> looks horny.</span> <<elseif $worship.arousal gte 50>> <span class="lblue"><<He>> looks aroused.</span> <<else>> <span class="teal"><<He>> looks stimulated.</span> <</if>> <br> <<switch $worship.body>> <<case 8 7 6 5 4 3>><<His>> skin is <span class="pink">trailed with $_fluid</span><<if $worship.semen>> and <span class="pink">some of your semen</span><</if>>. <<case 2>><<His>> skin is <span class="blue">splattered with $_fluid</span><<if $worship.semen>> and <span class="pink">some of your semen</span><</if>>. <<case 1>><<His>> skin is <span class="teal">smeared with $_fluid</span><<if $worship.semen>> and <span class="pink">some of your semen</span><</if>>. <<default>><<His>> skin is <span class="green">clean</span><<if $worship.semen>>, save for <span class="pink">some of your semen</span><</if>>. <</switch>> <br> <<switch $worship.tummy>> <<case 8 7 6 5 4 3>><<His>> <<bellyDescription "Gwylan">> is <span class="pink">covered in $_fluid</span>. <<case 2>><<His>> <<bellyDescription "Gwylan">> is <span class="blue">splattered with $_fluid</span>. You can see parts of <<his>> tattoos peeking through. <<case 1>><<His>> <<bellyDescription "Gwylan">> is <span class="teal">smeared with $_fluid</span>. You can <<his>> tattoos peeking through. <<default>><<His>> <<bellyDescription "Gwylan">> is <span class="green">clean</span>. <<if $worship.arousal gte 150>>You can see <<his>> tattoos softly glowing.<</if>> <</switch>> <br> <<switch $worship.breasts>> <<case 8 7 6 5 4>><<His>> <<= C.npc.Gwylan.breastsdesc>> are <span class="pink">covered in $_fluid</span>. <<case 3 2>><<His>> <<= C.npc.Gwylan.breastsdesc>> are <span class="blue">splattered with $_fluid</span>. <<case 1>><<His>> <<= C.npc.Gwylan.breastsdesc>> are <span class="teal">smeared with $_fluid</span>. <<default>><<His>> <<= C.npc.Gwylan.breastsdesc>> are <span class="green">clean</span>. <</switch>> <br> <<switch $worship.genitals>> <<case 4 3 2>><<His>> <<npcGenitals 0>> is <span class="pink">barely concealed by $_fluid</span>. <<case 1>><<His>> <<npcGenitals 0>> is <span class="teal">smeared with $_fluid</span>. <<default>><<His>> <<npcGenitals 0>> is <span class="green">clean</span>. <</switch>> <br><br> <</if>> <</widget>> <<widget "gwylanWorshipActions">> <<set $_fluid to $worship.fluid>> <<if $worship.body gte 1 and $worship.control is "player">> <<set $_action to true>> <<if $worship.actionLast is "body">> <<link [[Continue licking the $_fluid off of Gwylan's body|$passage]]>><<set $worship.action to "body">><</link>> <<else>> <<link [[Lick the $_fluid off of Gwylan's body|$passage]]>><<set $worship.action to "body">><</link>> <</if>> <br> <</if>> <<if $worship.tummy gte 1 and $worship.control is "player">> <<set $_action to true>> <<if $worship.actionLast is "tummy">> <<link [[Continue licking the $_fluid off of Gwylan's <<bellyDescription "Gwylan">>|$passage]]>><<set $worship.action to "tummy">><</link>> <<else>> <<link [[Lick the $_fluid off of Gwylan's <<bellyDescription "Gwylan">>|$passage]]>><<set $worship.action to "tummy">><</link>> <</if>> <br> <</if>> <<if !$worship.noBreasts and $worship.control is "player">> <<set $_action to true>> <<if $worship.actionLast is "breasts">> <<link [[Continue licking Gwylan's <<npcChest 0>>|$passage]]>><<set $worship.action to "breasts">><</link>> <br> <<link [[Suck Gwylan's nipples|$passage]]>><<set $worship.action to "nipples">><</link>> <br> <<elseif ["nipples", "nipplesBite"].includes($worship.actionLast)>> <<link [[Continue sucking Gwylan's nipples|$passage]]>><<set $worship.action to "nipples">><</link>> <br> <<link [[Nibble on Gwylan's nipples|$passage]]>><<set $worship.action to "nipplesBite">><</link>> <br> <<else>> <<if $worship.breasts gte 1>> <<link [[Lick the $_fluid off of Gwylan's <<npcChest 0>>|$passage]]>><<set $worship.action to "breasts">><</link>><<if !$worship.promBreasts>><<promiscuous1>><</if>> <br> <<else>> <<link [[Lick Gwylan's <<npcChest 0>>|$passage]]>><<set $worship.action to "breasts">><</link>><<if !$worship.promBreasts>><<promiscuous1>><</if>> <br> <</if>> <</if>> <</if>> <<if $worship.actionLast is "genitals">> <<set $_action to true>> <<if $worship.genitals gte 1>> <<link [[Continue licking the $_fluid off of Gwylan's <<npcGenitals 0>>|$passage]]>><<set $worship.action to "genitals">><</link>> <br> <<else>> <<link [[Continue servicing Gwylan's <<npcGenitals 0>>|$passage]]>><<set $worship.action to "genitals">><</link>> <br> <</if>> <<if C.npc.Gwylan.penis isnot "none">> <<if hasSexStat("promiscuity", 3)>> <<link [[Take Gwylan's penis into your mouth|$passage]]>><<set $worship.action to "oral">><</link>><<oralvirginitywarning>> <<else>> <<insufficientStat "promiscuity" "to take Gwylan's penis into your mouth">> <</if>> <br> <</if>> <<else>> <<if $worship.genitals gte 1>> <<if hasSexStat("promiscuity", 2) or $worship.control is "Gwylan">> <<set $_action to true>> <<link [[Lick the $_fluid off of Gwylan's <<npcGenitals 0>>|$passage]]>><<set $worship.action to "genitals">><</link>><<if !$worship.promGenitals and $worship.control is "player">><<promiscuous2>><</if>> <<else>> <<insufficientStat "promiscuity" "to lick the $_fluid directly off of Gwylan's <<npcGenitals 0>>">> <</if>> <br> <<else>> <<if hasSexStat("promiscuity", 2) or $worship.control is "Gwylan">> <<set $_action to true>> <<link [[Lick Gwylan's <<npcGenitals 0>>|$passage]]>><<set $worship.action to "genitals">><</link>><<if !$worship.promGenitals and $worship.control is "player">><<promiscuous2>><</if>> <<else>> <<insufficientStat "promiscuity" "to service Gwylan's <<npcGenitals 0>>">> <</if>> <br> <</if>> <</if>> <<if $worship.actionLast is "oral">> <<set $_action to true>> <<link [[Continue servicing Gwylan's <<npcGenitals 0>>|$passage]]>><<set $worship.action to "oral">><</link>> <br> <</if>> <<if $worship.residue gte 1 and $worship.control is "player">> <<set $_action to true>> <<link [[Lick the purple residue on the corner of Gwylan's mouth|$passage]]>><<set $worship.action to "residue">><</link>> <br> <</if>> <<if ($worship.residue is 0 or $drugged) and $arousal gte 9000 and $player.penisExist is true and $worship.control is "player">> <<set $_action to true>> <<link [[Cum on <<him>>|$passage]]>><<set $worship.action to "splurt">><</link>> <br> <<elseif $worship.semen and $worship.control is "player">> <<set $_action to true>> <<link [[Lick your cum off of <<him>>|$passage]]>><<set $worship.action to "splurtLick">><</link>> <br> <</if>> <<if $hypnosis_traits.devotion isnot 5 and $worship.control is "player">> <<set $_action to true>> <<link [[Do nothing|$passage]]>><<sub 1>><<set $worship.action to "none">><</link>> <br> <</if>> <<if !$_action>> <<link [[Next|Gwylan Cream Lick End]]>><<set $worship.end to "clean">><<set $phase to "clean">><</link>> <</if>> <</widget>> <<widget "gwylanStalkInit">> <<set $_skillAdded to C.npc.Gwylan.lust + C.npc.Gwylan.dom>> <<if $location is "forest">> <<set $_skillAdded += 200>> <</if>> <<set $NPCList[0].skills.security to 600 + $_skillAdded + random(10, 100)>> <<set $NPCList[0].skills.athletics to 600 + $_skillAdded + random(10, 100)>> <<run statusCheck("Gwylan")>> <<if _gwylanStatus.includes("wounded")>> <<set $NPCList[0].skills.athletics -= 500>> <</if>> <<if _gwylanStatus.includesAny("reunion", "heat", "badEndReady") or $gwylan?.hunting gte 2>> <<set $NPCList[0].bold to 10000>> <<set $combatgoal to "confront">> <<elseif $gwylan?.hunting is 1 and ($settings.hypnosisEnabled or $hypnosis_devotion)>> <<set $NPCList[0].bold to 10000>> <<set $combatgoal to "confront">> <<else>> <<set $NPCList[0].bold to (($allure / 20) + (C.npc.Gwylan.lust * 2) + (C.npc.Gwylan.dom * 2) + (C.npc.Gwylan.love * 2))>> <</if>> <</widget>> <<widget "gwylanHuntStart">> <<set $huntGame to { otherHealth: 3, hunter: "other", hunterKnown: false, adversary: "Gwylan", adversaryText: "Gwylan", adversaryKnown: true, otherTracked: false, otherAction: "", playerHealth: 3, playerTracked: false, playerTrackedKnown: false, playerAction: "", consensual: 1, event: "", turn: 0, distance: 5, }>> <<set $_difficultyAdded to C.npc.Gwylan.lust + C.npc.Gwylan.dom>> <<set $huntGame.skills to { danceMin: 400 + $_difficultyAdded, danceMax: 700 + $_difficultyAdded, athleticsMin: 400 + $_difficultyAdded, athleticsMax: 700 + $_difficultyAdded, skulduggeryMin: 400 + $_difficultyAdded, skulduggeryMax: 800 + $_difficultyAdded, }>> <<set $_skillAdded to C.npc.Gwylan.lust + C.npc.Gwylan.dom>> <<if $location is "forest">> <<set $_skillAdded += 200>> <</if>> <<set $NPCList[0].skills.security to 600 + $_skillAdded + random(10, 100)>> <<set $NPCList[0].skills.athletics to 600 + $_skillAdded + random(10, 100)>> <<run statusCheck("Gwylan")>> <<if _gwylanStatus.includes("wounded")>> <<set $NPCList[0].skills.athletics -= 500>> <</if>> <</widget>> <<widget "gwylanHuntState">> <<if hasSharpSenses("instincts")>> <span class="teal">Your bestial instincts are prepared for the hunt.</span> <br> <<set $huntGame.hunterKnown to true>> <<if $huntGame.hunter is "other">> <span class="red"><<= $huntGame.adversaryText.toUpperFirst()>> is the hunter.</span> <<if (playerHeatMinArousal() gte 1 or playerRutMinArousal() gte 1)>> <<if $huntGame.adversary is "Gwylan" and _gwylanTF?.known or ["fox","wolf","Black Wolf"].includes($huntGame.adversary)>> <br> <<if playerHeatMinArousal() gte 1 and playerRutMinArousal() gte 1>> <span class="lewd"><<He>> can almost certainly smell that you're in heat and rut, and probably has your scent already.</span> <<elseif playerRutMinArousal()>> <span class="lewd"><<He>> can almost certainly smell that you're in rut, and probably has your scent already.</span> <<else>> <span class="lewd"><<He>> can almost certainly smell that you're in heat, and probably has your scent already.</span> <</if>> <</if>> <<set $huntGame.playerTracked to "scent">><<set $huntGame.playerTrackedKnown to true>> <<elseif $huntGame.playerTrackedKnown>> <br> <span class="pink">You know <<hes>> tracked you.</span> <</if>> <<else>> <span class="green">You are the hunter.</span> <<if $huntGame.playerTrackedKnown>> <br> <span class="pink">You know <<hes>> tracked you.</span> <</if>> <</if>> <<if $huntGame.adversary is "Gwylan" and _gwylanTF?.known and _gwylanStatus?.includes("heat")>> <br> <span class="pink">You can smell that <<hes>> in <<if C.npc.Gwylan.vagina isnot "none">>heat<<else>>rut<</if>>.</span> <<set $huntGame.otherTracked to "scent">> <</if>> <<else>> <<if $huntGame.hunterKnown>> <<if $huntGame.hunter is "other">> <span class="red"><<= $huntGame.adversaryText.toUpperFirst()>> is hunting you.</span> <<else>> <span class="green">You are hunting <<= $huntGame.adversaryText>>.</span> <</if>> <<if $huntGame.playerTrackedKnown>> <br> <span class="pink">You know <<hes>> tracked you.</span> <</if>> <<else>> <span class="blue">You're not sure if you're hunting <<= $huntGame.adversaryText>>, or <<= $huntGame.adversaryText>> is hunting you.</span> <</if>> <</if>> <<if $huntGame.otherTracked>> <br> <<if $huntGame.otherTracked is "scent">> You can smell <<= $huntGame.adversaryText>> <<else>> You can tell <<= $huntGame.adversaryText>> is <</if>> <<if $huntGame.distance gte 5>> <span class="teal">far away</span>. <<elseif $huntGame.distance gte 4>> <span class="blue">in the area</span>. <<elseif $huntGame.distance gte 3>> <span class="purple">somewhat close by</span>. <<elseif $huntGame.distance gte 2>> <span class="pink">very close by</span>. <<else>> <span class="red">here</span>! <</if>> <</if>> <br><br> <</widget>> <<widget "gwylanHuntEffects">> <<if $huntGame.timer gte 20>> <<set _forceConfrontation to true>> <<set $huntGame.distance to 0>> <</if>> /* Player actions */ <<switch $huntGame.playerAction>> <<case "hunt">> <<if $huntGame.hunterKnown and $huntGame.hunter is "other">> You try to circle back on <<= $huntGame.adversaryText>>, following <<his>> <<if $huntGame.otherTracked is "scent">>scent<<else>>trail<</if>>. <<else>> You follow <<= $huntGame.adversaryText>>'s <<if $huntGame.otherTracked is "scent">>scent<<else>>trail<</if>>. <</if>> <<if $huntGame.otherAction is "run">> <br> <<if $athleticsSuccess>> <<set $_actionPassed to true>> <<set $huntGame.distance -= 1>> <<if $huntGame.hunter is "player">> <<set $huntGame.distance -= 1>> <span class="green">You can tell you're gaining on <<him>>.</span> <<else>> <span class="purple">It won't be long until you force a confrontation at this rate.</span> <</if>> <<else>> <<if $huntGame.hunter is "player">> <<set $huntGame.distance -= 1>> <span class="purple">You're evenly paced with <<him>>.</span> <<else>> <span class="purple">It won't be long until you force a confrontation at this rate.</span> <</if>> <</if>> <<else>> <<set $huntGame.distance -= 2>> <</if>> <<case "track">> <<if hasSharpSenses("instincts")>> You sniff the air, trying to find <<= $huntGame.adversaryText>>'s scent. <<else>> You stay low, checking for any sign of <<= $huntGame.adversaryText>>'s passing. <</if>> <<if ["hide", "stealth"].includes($huntGame.otherAction)>><<set $skulduggerydifficulty += 100>><</if>> <<skulduggerycheck "silent">> <<if $skulduggerysuccess is 1>> <<set $_actionPassed to true>> <<if hasSharpSenses("instincts") and random(0, 1)>> <<set $huntGame.otherTracked to "scent">> <span class="green">Then, you smell it; the faintest hint on the wind. You have <<him>>.</span> <<else>> <<set $huntGame.otherTracked to "trail">> <span class="green">You manage to find <<print either("some disturbed leaves", "a broken branch", "a few faint footprints")>>. You have <<his>> trail.</span> <</if>> <br><br> <span class="purple">The hunt intensifies...</span> <<note "+ Skulduggery Difficulty" "purple">> <<set $huntGame.skills.skulduggeryMin += 20>><<set $huntGame.skills.skulduggeryMax += 20>> <<else>> <span class="red">You fail to find anything.</span> <</if>> <<case "stealth">> You skulk through the underbrush, trying to leave as little of a trail as possible. <<skulduggerycheck "silent">> <<if $skulduggerysuccess is 1>> <<if $huntGame.hunterKnown and $huntGame.hunter is "other" and $huntGame.otherTracked and $huntGame.playerTracked and $huntGame.playerTrackedKnown>> <span class="gold">You're sure you've made <<him>> lose your trail.</span> <<set $huntGame.playerTracked to false>><<set $huntGame.playerTrackedKnown to false>> <br><br> <span class="purple">The hunt intensifies...</span> <<note "+ Skulduggery Difficulty" "purple">> <<set $huntGame.skills.skulduggeryMin += 20>><<set $huntGame.skills.skulduggeryMax += 20>> <<else>> <span class="green">You pass without trace, making it more difficult for <<him>> to track you.</span> <</if>> <<set $_actionPassed to true>> <<if $huntGame.hunter is "player">> <<set $huntGame.distance-->> <<else>> <<set $huntGame.distance++>> <</if>> <<else>> <span class="red">You have limited success.</span> <</if>> <<case "hide">> <<if $huntGame.playerActionLast is "hide">> You continue hunkering down in your hiding spot. It's impossible to tell if <<he>> knows exactly where you are. <<else>> You find a hiding spot and hunker down. <</if>> <<skulduggerycheck "silent">> <<if $skulduggerysuccess is 1>> <<if $huntGame.hunterKnown and $huntGame.hunter is "other" and $huntGame.otherTracked and $huntGame.playerTracked and $huntGame.playerTrackedKnown>> <br> You steady your breathing and focus. The forest blankets you in silence. <span class="gold">You're sure you've made <<him>> lose your trail.</span> <<set $huntGame.playerTracked to false>><<set $huntGame.playerTrackedKnown to false>> <br><br> <span class="purple">The hunt intensifies...</span> <<note "+ Skulduggery Difficulty" "purple">> <<set $huntGame.skills.skulduggeryMin += 20>><<set $huntGame.skills.skulduggeryMax += 20>> <</if>> <<set $_actionPassed to true>> <</if>> /* Actions that lead into a proper chase or confrontation */ <<case "ambush">> <<if $physiqueSuccess>> <span class="green"><<He>> doesn't see you coming.</span> <<if $huntGame.consensual and $huntGame.hunter is "other">> <br> <span class="gold">You are now the hunter.</span> <<set $huntGame.hunter to "player">> <</if>> <<set $huntGame.end to "ambushSuccess">> <<else>> <span class="red"><<Hes>> ready for you.</span> <<set $huntGame.end to "ambushFailed">> <</if>> <<exit>> <<case "hideKeep">> <<if _forceConfrontation>> <span class="red"><<He>> suddenly turns to face you, and runs towards you!</span> <<set $huntGame.end to "caught">><<set $phase to "noDodge">> <<exit>> <<elseif $skulduggerysuccess>> After a moment of searching, <span class="green"><<he>> moves on. You stealthily follow.</span> <<if $huntGame.consensual and $huntGame.hunter is "other">> <br> <span class="gold">You are now the hunter.</span> <<set $huntGame.hunter to "player">> <</if>> <br><br> <span class="purple">The hunt intensifies...</span> <<note "+ Skulduggery Difficulty" "purple">> <<set $huntGame.skills.skulduggeryMin += 20>><<set $huntGame.skills.skulduggeryMax += 20>> <<set $huntGame.otherTracked to "trail">><<set $huntGame.distance to 2>> <<else>> <span class="red"><<He>> suddenly turns to face you, and runs towards you!</span> <<set $huntGame.end to "caught">><<set $phase to "noDodge">> <<exit>> <</if>> <</switch>> <br><br> /* Adversary actions */ <<if !$huntGame.playerTracked and ($huntGame.hunter is "other" or $huntGame.distance gte 3)>> <<set $huntGame.otherAction to "track">> <<set $_otherTrackingDiff to currentSkillValue("skulduggery")>> <<if ["stealth", "hide"].includes($huntGame.playerAction) and $_actionPassed>> /* Failed to track */ <<elseif $NPCList[0].skills.security gte random(1, $_otherTrackingDiff)>> <<set $huntGame.playerTracked to true>> <</if>> <<if ["hide"].includes($huntGame.playerAction) or $huntGame.playerAction is "stealth" and !$_actionPassed>> <<set $huntGame.distance-->> <</if>> <<elseif $huntGame.hunter is "player">> <<if ["hide", "ambush"].includes($huntGame.otherAction) and !$huntGame.noMoreHiding>> <<set $huntGame.otherHideTimer-->> <<if random(0, 2)>> <<set $huntGame.otherAction to "ambush">> <</if>> <<if $huntGame.otherHideTimer lte 0>> <<set $huntGame.noMoreHiding to true>> <</if>> <<elseif $huntGame.distance gte 3 and random(0, 1) and !$huntGame.noMoreHiding>> <<set $huntGame.otherAction to "hide">> <<set $huntGame.otherHideTimer ||= 3>> <<elseif $huntGame.distance gte 2>> <<set $huntGame.otherAction to "stealth">> <<if $huntGame.playerTracked and !($huntGame.playerAction is "hunt" and $huntGame.otherTracked and $_actionPassed)>> <<set $huntGame.distance++>> <<elseif !$huntGame.playerTracked>> <<set $huntGame.distance += random(-1, 1)>> <</if>> <<else>> <<set $huntGame.otherAction to "run">> <<if $huntGame.playerTracked and !($huntGame.playerAction is "hunt" and $huntGame.otherTracked and $_actionPassed)>> <<set $huntGame.distance += 2>> <<elseif $huntGame.playerTracked>> <<set $huntGame.distance += 1>> <<else>> <<set $huntGame.distance += random(-1, 2)>> <</if>> <</if>> <<elseif $huntGame.playerTracked>> <<set $huntGame.otherAction to "hunt">> <<set $huntGame.distance-->> <<else>> <<set $huntGame.otherAction to "stealth">> <</if>> /* Give player information if tracked */ <<if $huntGame.otherTracked>> <<if $huntGame.playerAction is "tracked" and $_actionPassed>> You spend some time following it, and realise that <<if $huntGame.otherAction is "track">> <<if $huntGame.playerTracked>> <<set $huntGame.hunterKnown to true>><<set $huntGame.playerTrackedKnown to true>> <<hes>> just tracked you too. <span class="pink">You're encircling each other.</span> It's cat and mouse, now. <<else>> <<set $huntGame.hunterKnown to true>> <<hes>> trying to track you too. <span class="green"><<He>> doesn't seem to know where you are yet!</span> <<if $huntGame.consensual and $huntGame.hunter is "other">> <br> <span class="gold">You are now the hunter.</span> <<set $huntGame.hunter to "player">> <</if>> <</if>> <<elseif $huntGame.otherAction is "stealth">> <<hes>> moving slowly and stealthily. Not stealthily enough, yet. <<elseif $huntGame.otherAction is "run">> <<hes>> running. <<if $huntGame.playerTracked>> <<He>> must know you have <<his>> trail. <<else>> Blindly. <<He>> doesn't know exactly where you are. <</if>> <<elseif $huntGame.otherAction is "hunt">> <<set $huntGame.hunterKnown to true>><<set $huntGame.playerTrackedKnown to true>> <<hes>> hunting you, too. <span class="pink">You're encircling each other.</span> It's cat and mouse, now. <<else>> <<hes>> likely hiding somewhere ahead. <</if>> <<else>> <<if ["hide"].includes($huntGame.playerAction) and $huntGame.otherTracked>> <<set $huntGame.otherTracked to false>> <span class="red">You lose <<his>> trail.</span> <<else>> <<switch $huntGame.otherAction>> <<case "track">> You can tell <<hes>> trying to track you, too. <<if $huntGame.playerTracked>> <<set $huntGame.hunterKnown to true>><<set $huntGame.playerTrackedKnown to true>> <span class="pink">You're encircling each other.</span> <<else>> <<set $huntGame.hunterKnown to true>> <span class="green"><<He>> doesn't seem to know where you are yet!</span> <<if $huntGame.consensual and $huntGame.hunter is "other">> <br> <span class="gold">You are now the hunter.</span> <<set $huntGame.hunter to "player">> <</if>> <</if>> <<case "stealth">> You can tell <<hes>> moving slowly and methodically. <<if !($huntGame.playerAction is "track" and $_actionPassed)>> <<set $skulduggerydifficulty to random($huntGame.skills.skulduggeryMin, $huntGame.skills.skulduggeryMax)>> <<skulduggerycheck "silent">> <</if>> <<if $skulduggerysuccess>> <span class="green">You still have <<his>> trail for now.</span> <<set $huntGame.skills.skulduggeryMin += 20>><<set $huntGame.skills.skulduggeryMax += 20>> <<else>> <span class="red"><<Hes>> good. You lose <<his>> trail.</span> <<set $huntGame.otherTracked to false>> <</if>> <<case "run">> You can tell <<hes>> running away. <<if $huntGame.playerTracked>> <<He>> must know you have <<his>> trail. <<else>> Blindly. <<He>> doesn't know exactly where you are. <</if>> <<case "hunt">> <<set $huntGame.hunterKnown to true>><<set $huntGame.playerTrackedKnown to true>> <<His>> movements are aggressive. <<Hes>> hunting you down. <<if $huntGame.hunter is "player">> <br> <span class="red">You are no longer the hunter.</span> <<set $huntGame.hunter to "other">> <</if>> <<default>> You can tell <<hes>> hiding somewhere. <<if !($huntGame.playerAction is "track" and $_actionPassed)>> <<set $skulduggerydifficulty to random($huntGame.skills.skulduggeryMin, $huntGame.skills.skulduggeryMax)>> <<skulduggerycheck "silent">> <</if>> <<if $skulduggerysuccess>> <span class="green">You still have <<his>> trail for now.</span> <<set $huntGame.skills.skulduggeryMin += 20>><<set $huntGame.skills.skulduggeryMax += 20>> <<else>> <span class="red"><<Hes>> good. You lose <<his>> trail.</span> <<set $huntGame.otherTracked to false>> <</if>> <</switch>> <</if>> <</if>> <br><br> <</if>> /* Confrontation */ <<if $huntGame.distance lte 1 and $huntGame.playerAction isnot "hide" or _forceConfrontation>> <<if ["hide","ambush"].includes($huntGame.otherAction) and $huntGame.hunter is "player" and $huntGame.playerAction is "stealth" and $_actionPassed and !_forceConfrontation>> <<set $huntGame.end to "chase">><<set $huntGame.chaseDistance to 1>> You spot <<= $huntGame.adversaryText>> hiding in the underbrush ahead! <span class="green">Thanks to your stealthy movement, you've spotted <<him>> first.</span> <br><br> You get the drop on <<him>>. <<He>> starts to run, but you're already right behind <<him>>. <<elseif $huntGame.otherAction is "ambush" or _forceConfrontation>> <<set $huntGame.end to "caught">> You hear a rustle from the bushes. <<He>> was waiting in ambush for you! <<if $huntGame.hunterKnown>> <br> <span class="red">You are no longer the hunter.</span> <</if>> <<set $huntGame.hunter to "other">> <<set $huntGame.playerTracked to true>> <<elseif $huntGame.hunter is "player">> <<set $huntGame.end to "chase">> You spot <<him>> skulking through the underbrush ahead. <<He>> sees you too. <<He>> starts running! <<else>> <<set $huntGame.end to "caught">> You hear running close by. <<Hes>> found you! <</if>> <<exit>> <</if>> <<set $huntGame.turn++>> <<if $huntGame.hunter is "player">> <<set $huntGame.playerHuntTimer ||= 7>> <<set $huntGame.playerHuntTimer-->> <<if !$huntGame.playerHuntTimer or _forceConfrontation>> <<if $huntGame.hunterKnown>> Something changes on the wind. You suddenly feel vulnerable. <br> <span class="red">You are no longer the hunter.</span> <br><br> <</if>> <<set $huntGame.hunter to "other">> <<set $huntGame.playerTracked to true>> <</if>> <</if>> <<set $huntGame.distance to Math.clamp($huntGame.distance, 0, 7)>> <<set $huntGame.playerActionLast to $huntGame.playerAction>> <<pass 2>> <</widget>> <<widget "gwylanHuntOptions">> <<set $skulduggerydifficulty to random($huntGame.skills.skulduggeryMin, $huntGame.skills.skulduggeryMax)>> <<if $huntGame.distance lte 1 and $huntGame.playerAction is "hide">> You peek out from your hiding spot and see <<him>> searching for you. <span class="green"><<He>> hasn't seen you yet.</span> <br><br> <<link [[Ambush|$huntGame.event]]>><<set $huntGame.playerAction to "ambush">><<transform fox 1>><</link>><<physiquedifficulty 4000 17000>> <br> <<if $huntGame.consensual>> <<link [[Keep hiding, and track <<him>> once <<he>> leaves|$huntGame.event]]>><<set $huntGame.playerAction to "hideKeep">><</link>><<skulduggerydifficulty>> <<else>> <<link [[Keep hiding, and escape once <<he>> leaves|$huntGame.event]]>><<set $huntGame.playerAction to "hideKeepEscape">><</link>><<skulduggerydifficulty>> <</if>> <br> <<else>> <<if $huntGame.otherTracked>> <<if $huntGame.hunterKnown and $huntGame.hunter is "other">> <<link [[Force a confrontation|$huntGame.event]]>><<set $huntGame.playerAction to "hunt">><</link>><<note "- - Distance" "teal">> <<else>> <<link [[Hunt <<= $huntGame.adversaryText>> down|$huntGame.event]]>><<set $huntGame.playerAction to "hunt">><</link>><<note "- Distance" "teal">> <<if $huntGame.otherTracked and $huntGame.otherAction is "run">><<athleticsdifficulty $huntGame.skills.athleticsMin $huntGame.skills.athleticsMax>><</if>> <</if>> <<else>> <<link [[Track <<= $huntGame.adversaryText>>|$huntGame.event]]>><<set $huntGame.playerAction to "track">><</link>><<skulduggerydifficulty>> <</if>> <br> <<if $huntGame.hunterKnown and $huntGame.hunter is "other" and $huntGame.otherTracked and $huntGame.playerTracked and $huntGame.playerTrackedKnown>> <<link [[Move stealthily, and try to make <<= $huntGame.adversaryText>> lose your trail|$huntGame.event]]>><<set $huntGame.playerAction to "stealth">><</link>><<skulduggerydifficulty>> <br> <<elseif $huntGame.hunterKnown and $huntGame.hunter is "other" and $huntGame.otherTracked>> <<link [[Move stealthily away from <<= $huntGame.adversaryText>>|$huntGame.event]]>><<set $huntGame.playerAction to "stealth">><</link>><<skulduggerydifficulty>> <br> <<else>> <<link [[Move stealthily|$huntGame.event]]>><<set $huntGame.playerAction to "stealth">><</link>><<skulduggerydifficulty>> <br> <</if>> <<link [[Hide|$huntGame.event]]>><<set $huntGame.playerAction to "hide">><</link>><<skulduggerydifficulty>> <br> <</if>> <</widget>> <<widget "gwylanCombatInit">> <<run statusCheck("Gwylan")>> <<set $enemyarousalmax to 1200>> <<set $enemyarousal += C.npc.Gwylan.lust>> <<if _gwylanStatus.includes("heat")>> <<set $enemyarousal += 100>> <</if>> <<set $combat_player_orgasm_target to Math.clamp(Math.ceil((C.npc.Gwylan.lust + C.npc.Gwylan.dom) / 100) + _gwylanStatus.count("heat"), 1, 10)>> <<if $arousal gte ($arousalmax / 5) * 4 and $combat_player_orgasm_target lte 1>> <<set $combat_player_orgasm_target++>> <</if>> <<if !_gwylanStatus.includes("wantsPregnancy")>> <<set $disableNormalImpregnation to true>> <<set $disableImpregnation to true>> <</if>> /* ToDo: Gwylan - delete when pregnancy is to be enabled */ <<set $disableNormalImpregnation to true>> <<set $disableImpregnation to true>> /* ToDo: Gwylan - Start combat effects from hypnosis traits or bad end triggers? */ <<set $_hypnoMessages to []>> <<if $gwylan.silence>> <<set $combat_silenced to true>> <<set $_hypnoMessages.push("<span class='red'>Gwylan steals your voice</span>")>> <</if>> <<if $gwylan.trance>> <<set $trance to 1>><<set $timer to $hypnosis_traits.devotion>> <<set $_hypnoMessages.push("<span class='lewd'>You are entranced</span>")>> <</if>> <<if $_hypnoMessages.length>> <<hypnosisText "<<= formatList($_hypnoMessages, '', true, '. ')>>.">> <br><br> <</if>> <</widget>> <<widget "gwylanNobody">> <<set $_banishedDays to _args[0] || 9>> <<if $gwylan.timer and ["active", "scorned"].includes(C.npc.Gwylan.state) and typeof $_banishedDays is "number">> <<set $gwylan.timer.nobody to new DateTime(Time.date).addDays($_banishedDays).timeStamp>> <<if $worn.neck.name is "familiar collar">> <<set $worn.neck.type.delete("leash")>> <<set $worn.neck.cursed to 0>> <</if>> <</if>> <</widget>> <<widget "gwylanDesc">><<silently>> <<if $forest_shop_intro or $gwylan_rescue or $gwylan_cafe_intro>> <<set _text_output to "Gwylan">> <<elseif _args.includes("the")>> <<set _text_output to "the mousy <<nnpc_gendery 'Gwylan'>>">> <<else>> <<set _text_output to "a mousy <<nnpc_gendery 'Gwylan'>>">> <</if>> <<if _args.includes("cap")>><<set _text_output to _text_output.toUpperFirst()>><</if>> <</silently>><<print _text_output>><</widget>> <<widget "shopkeeperDesc">><<silently>> <<if $forest_shop_intro or $gwylan_rescue or $gwylan_cafe_intro>> <<set _text_output to "shopkeeper">> <<else>> <<set _text_output to "<<nnpc_gendery 'Gwylan'>>">> <</if>> <<if _args.includes("cap")>><<capitalise>><</if>> <</silently>><<print _text_output>><</widget>> <<widget "gwylanRescueStats">> <<if !$gwylanRescue>> <<set $gwylanRescue to { seen: [], failed: "", count: 0, eden: 0, }>> <</if>> <<if !$gwylanRescue.seen.includes(_args[1])>> <<set _gwylanFirstRescue to _args[1]>> <</if>> <<if _args[0] is true>> <<set $rescued++>> <<set $gwylanRescue.count++>> <<if _args[2] is "Eden" and !$edenCagedEscape>> <<set $gwylanRescue.eden++>> <</if>> <<set $gwylanRescue.seen.pushUnique(_args[1])>> <<else>> <<set $gwylanRescue.failed to _args[1]>> <<set $gwylanRescue.seen.pushUnique(_args[1] + "Failed")>> <</if>> <</widget>> <<widget "gwylanReunion">> You tell <<him>> about your time <<badEndProse $badEndStats.last()?.source "at">>. <<He>> listens without speaking, stroking your hair as <<he>> does. When you finish, <<he>> kisses your forehead. <<switch $badEndStats.last()?.source>> <<case "Underground Farm">> <<if $brownFoxRevealed>> "You're lucky to have gotten away from the High Elk. <<nnpc_Hes "Remy">> a powerful <<nnpc_gender "Remy">>, especially alongside <<nnpc_his "Remy">> Cannibal Fox." <<else>> "You're lucky to have gotten away from Remy. <<nnpc_Hes "Remy">> a powerful <<nnpc_gender "Remy">>." <</if>> <<He>> holds your cheeks between <<his>> palms, looking into your eyes. <<if $dissociation gte 1>> "They've stolen the light from your eyes." <<He>> hugs you again, tighter now. <<else>> "Remember that you're still human. Nothing they do will change that." <<He>> hugs you again, tighter now. <</if>> <<if !$gwylanTalked.includes("underground_farm")>> <<set _badEndFollowup to true>> <</if>> <<case "Wolf Cave">> "The wolves are usually so docile, but the black one has been growing more and more bold," <<he>> says. "I'm so sorry that <<if ($settings.monsterChance gte random(1, 100) and ($hallucinations gte 1 or !$settings.monsterHallucinationsOnly)) or $blackwolfmonster is 2>><<nnpc_he "Black Wolf">><<else>>it<</if>> put you through that." <<if !$gwylanTalked.includes("loincloth")>> <<set _badEndFollowup to true>> <</if>> <<case "Eden">> "The forest knows," <<he>> says. "All <<nnpc_he "Eden">> does is take and destroy." <<His>> eyes darken. <<if !$gwylanTalked.includes("loincloth")>> <<set _badEndFollowup to true>> <</if>> <<case "Underground Dungeon">> "That's absolutely horrid. People trafficked like objects to be used and discarded, it makes me sick imagining how many weren't so lucky to escape." <<He>> hugs you tighter. "I'm ever grateful you did." <<if !$gwylanTalked.includes("underground_brothel")>> <<set _badEndFollowup to true>> <</if>> <<case "Mines">> "I can't believe something so sinister is going on right beneath our feet," <<he>> says. "You're very strong for making it out." <<case "Asylum">> "One can find <<pherself>> going mad from such treatment," <<he>> says. "<<if $gwylanSeen.includes("hypnosis_removal")>>Remember, if<<else>>If<</if>> that <<nnpc_gender "Harper">> has made you think something that you would never normally think, <span class="blue">please come see me at the shop</span>. I can help." <<if !$gwylanTalked.includes("asylum")>> <<set _badEndFollowup to true>> <</if>> <<case "Prison">> "We all have to reap what we sow," <<he>> says, "but sometimes the punishment does not fit the crime. <<if $badEndStats.find(stat => stat.source === "Prison").reasonEnd is "prisonServed">> I'm glad you were able to withstand your sentence's length without withering." <<else>> I'm glad you were resourceful enough to escape." <</if>> <<if !$gwylanTalked.includes("prison")>> <<set _badEndFollowup to true>> <</if>> <<case "Pound">> <<if isLoveInterest("Gwylan")>>"<span class="lewd">I'm the only one who can treat you like that.</span>"<<else>>"It's beyond cruel to turn a human into an animal. I hope you remember who you are."<</if>> <<case "Kylar Abduction">> "Your friend?" <<He>> doesn't sound surprised. "Whatever drove <<nnpc_him "Kylar">> to such extreme means must have been hard for both of you to bear." <br><br> <<if $syndromekylar is 1>> <<if !$gwylanTalked.includes("vampire")>> <<set _badEndFollowup to true>> <</if>> "It was, but I understand," you say. "<<nnpc_Hes "Kylar">> misunderstood and needs a friend. <<else>> "It was," you say. "I can't understand <<nnpc_him "Kylar">>. <</if>> I'm just glad it's over." <br><br> "I am, too," <<he>> says. <<if isLoveInterest("Gwylan")>>"I missed you."<</if>> <<case "Pirate Ship">> "That sounds... familiar," <<he>> says. "It sounds like quite an adventure. A heart at sea... I hope you didn't become lost in its depths." <<default>> Gwylan sticks a pinky in <<his>> ear. "What was that? Sorry, <span class="red">I think there's a bug here</span>. Go tell <span class="gold">PurityGuy</span> what you've been up to, not me." <</switch>> <</widget>> <<widget "schoolWalkChat">> <<set _gwylan to statusCheck("Gwylan")>><<set _robin to statusCheck("Robin")>> <<set _gwylanPresent to _args.includes("gwylan")>><<set _robinPresent to _args.includes("robin")>> <<cleareventpool>> <<if _gwylanPresent>> <<if !$weekly.gwylan_school_talk_classes>> <<addinlineevent "school_gwylan_classes" 1>> <<set $weekly.gwylan_school_talk_classes to 1>> <<if _robinPresent>> "How are classes going for you?" Gwylan asks. <<else>> "How are classes going for you?" <<nnpc_he "Gwylan">> asks. <</if>> <<if $sciencetrait + $mathstrait + $englishtrait + $historytrait gte 16>> You proudly tell <<nnpc_him "Gwylan">> how you've aced every single one. <<nnpc_He "Gwylan">> listens as you talk at length about the interesting facts you've learned. <br><br> "That's wonderful news, <<pcpetname "Gwylan" "simple">>." <<nnpc_He "Gwylan">> smiles. "Knowledge nourishes the brain. I hope you never stop trying to learn." <<elseif $sciencetrait + $mathstrait + $englishtrait + $historytrait gte 8 and ($sciencetrait lte 1 or $mathstrait lte 1 or $englishtrait lte 1 or $historytrait lte 1)>> <<set _badClass to $sciencetrait lte 1 ? "science" : $mathstrait lte 1 ? "maths" : $englishtrait lte 1 ? "English" : "history">> You tell <<nnpc_him "Gwylan">> they're are going well for the most part, but you're falling behind on _badClass. <br><br> <<nnpc_He "Gwylan">> pats your head. "Everyone has their shortcomings. It's natural, so don't beat yourself up over it. Just do your best, okay?" <<elseif $sciencetrait + $mathstrait + $englishtrait + $historytrait gte 8>> You tell <<nnpc_him "Gwylan">> you're making good headway, <<if $stress gte ($stressmax / 5) * 3>> but that you're feeling stressed about all the school work. <br><br> Gwylan leans in and hugs you<<if $gwylanSeen.includes("partners")>>, planting a kiss on your cheek. <<stress -10>><<llstress>><<else>>. <<stress -5>><<lstress>><</if>> <br><br> "I'm sorry to hear that. The school system can be very heartless when it comes to students' mental health. Don't let them whittle you down, you deserve a break." <<else>> and continuing to improve. <br><br> <<nnpc_He "Gwylan">> smiles. "Good work, <<pcpetname "Gwylan" "simple">>. It's always a wonder to learn more about this world we live in." <</if>> <<elseif $sciencetrait + $mathstrait + $englishtrait + $historytrait gte 4>> You tell <<nnpc_him "Gwylan">> it's going okay, nothing remarkable. <br><br> Gwylan shrugs. "I wouldn't say that. You're learning something new each day, no matter how small. That's good." <<elseif $sciencetrait + $mathstrait + $englishtrait + $historytrait is 0>> You grit your teeth. You know all your grades are awful. You try not to look at <<nnpc_him "Gwylan">> as you tell <<nnpc_him "Gwylan">> about your failures. <br><br> Gwylan frowns. "You're too hard on yourself. As long as you're trying, you're doing just fine, <<pcpetname "Gwylan">>." <<else>> <<set _goodClass to []>> <<if $sciencetrait gte 1>><<set _goodClass.push("science")>><</if>> <<if $mathstrait gte 1>><<set _goodClass.push("maths")>><</if>> <<if $englishtrait gte 1>><<set _goodClass.push("English")>><</if>> <<if $historytrait gte 1>><<set _goodClass.push("history")>><</if>> You tell <<nnpc_him "Gwylan">> about your forward strides in _goodClass.pluck(). <br><br> "Nice work. That's a difficult subject to grasp, so I'm proud of you for taking on the challenge!" <</if>> <br><br> <</addinlineevent>> <</if>> <<if Weather.precipitation is "rain">> <<addinlineevent "school_gwylan_rain" 1>> As you pass by a deep puddle, you're suddenly met with a big splash. <<lowerwet 100>><<underlowerwet 50>><<effectswater "water">><<exposure>> You look back to see Gwylan standing in the middle of it, jumping up and down without a care. <br><br> <<nnpc_He "Gwylan">> stops, looks up at you <<if $exposed gte 1>> drenched from the waist down, and covers <<nnpc_his "Gwylan">> mouth. "Oops," <<nnpc_he "Gwylan">> says, <<nnpc_his "Gwylan">> tone of voice betraying any attempt to appear surprised. <<else>> and smiles. "Sorry, I couldn't help it. That puddle was massive! Did you see the wave it made?" You can't help but agree. <</if>> <br><br> <<if hasSexStat("exhibitionism", 4) and $exposed is 1 and $uncomfortable.underwear is false or hasSexStat("exhibitionism", 5) and $exposed is 2 and $uncomfortable.nude is false>> <<if $worn.feet.type.includes("rugged")>> You smirk. Gwylan's not getting away with this. You get a running start, and jump straight towards <<nnpc_him "Gwylan">>. You manage to glimpse a brief moment of fear in <<nnpc_his "Gwylan">> eyes when <<nnpc_he "Gwylan">> realises what you're doing. <br><br> <<nnpc_He "Gwylan">> yelps as your feet come crashing down into the puddle, completely drenching <<nnpc_him "Gwylan">> in water too. You grin smugly. "Oops." <br><br> <<nnpc_He "Gwylan">> shakes some water off <<nnpc_his "Gwylan">> <<npcClothesText _gwylan "lower">> and pouts, but you clearly see <<nnpc_hes "Gwylan">> enjoying it too. "I guess I should've expected that. Now we're both wet." <<nnpc_He "Gwylan">> looks around and says "Come, we need to get dried off," taking your hand and running down the nearby alley, away from the rain. <<takeHandholdingVirginity "Gwylan" `(V.gwylanSeen.includes("partners") ? "romantic" : "consensual")`>> <br><br> You both spend a few minutes drying off before moving on. <<nnpc_He "Gwylan">> winks at you mischievously as you exit the alley. <<else>> You take the opportunity to strike a few lewd poses for anybody watching. Gwylan giggles. <br><br> "<<pcPetname "Gwylan" "naughty">>. Come on, let's go get you dried off already." <<nnpc_He "Gwylan">> takes your hand and leads you down an alley, away from the rain. <<takeHandholdingVirginity "Gwylan" `(V.gwylanSeen.includes("partners") ? "romantic" : "consensual")`>> <br><br> You spend a few minutes drying off before moving on. <</if>> <<fame 1 "exhibitionism">> <<elseif $exposed gte 1>> You instinctively <<if ["naked", "bellyShow"].includes($worn.upper.type)>>pull your $worn.upper.name down to <</if>>try to conceal your <<exposedlower>>. <br><br> "Aww, I'm sorry, <<pcpetname "Gwylan">>. Here, let's go get you dried off. Follow me." <<nnpc_He "Gwylan">> takes your hand and uses <<nnpc_his "Gwylan">> body to cover you as <<nnpc_he "Gwylan">> leads you down an alley, away from the rain. <<takeHandholdingVirginity "Gwylan" `(V.gwylanSeen.includes("partners") ? "romantic" : "consensual")`>> <br><br> You spend a few minutes drying off before moving on. <</if>> <br><br> <<dry_full>> <</addinlineevent>> <</if>> <<if $gwylanSeen.includes("yearning")>> <<addinlineevent "school_gwylan_handholding" 1>> You walk in silence for a while, when you feel Gwylan's hand brush up against yours. <<nnpc_He "Gwylan">> takes it absentmindedly, before realising what <<nnpc_hes "Gwylan">> doing. <<takeHandholdingVirginity "Gwylan" `(V.gwylanSeen.includes("partners") ? "romantic" : "consensual")`>> <br><br> <<if $gwylanSeen.includes("partners")>> <<nnpc_He "Gwylan">> suddenly grips your hand tighter, <span class="lewd">and kisses you on the cheek</span>. <<arousal 400>><<garousal>> <<else>> <<nnpc_He "Gwylan">> blushes, <span class="blue">and lets go</span>. <</if>> <br><br> <</addinlineevent>> <</if>> <<addinlineevent "school_gwylan_object" 1>> Gwylan gets your attention and points at <<print either( "a pretty rock.", "a piece of graffiti on the wall.", "a seagull swallowing a cigarette.", "a weird-looking house.", "a strangely shaped cloud.", "a kid with a fox beanie.", "a kid with a balloon.", "a street performer.", "a sign with a typo.", "a funny street name.", "a tired-looking teen.", "a family having a picnic.", "a funny licence plate.", "a police officer on a horse.", "a passing police car.", "a passing fire engine.", "a passing ambulance.", "a group of kids chasing after soap bubbles.", "some students chatting loudly.", "some kids playing on a slide.", "some people flying kites.", "someone dressed very extravagantly.", "someone getting splashed with a water balloon.", "someone shouting angrily into a phone.", "someone biking around with almost no clothes on.", "someone with very thick eyebrows.", "someone with enormous... assets.", "someone slapping a catcaller.", "someone in a rush dropping a stack of papers.", "someone struggling to eat a very thick sandwich.", "two shop owners arguing.", "two people arguing in a foreign language.", "two people stumbling out of a bar together.", "two birds fighting over a worm.", "two people sharing a large pizza.", "two people playfully fighting with sticks.", "three kids playing tag.", "three dogs jumping around and playing together." )>> <br><br> You spend some time chatting about it. <<if $rng gte 96>> You get really into the discussion, creating an elaborate but silly story from it. Gwylan laughs. <<stress -8>><<trauma -2>><<npcincr Gwylan dom 1>><<llstress>><<ltrauma>><<gyearning>> <<else>> <<stress -4>><<lstress>> <</if>> <br><br> <</addinlineevent>> <</if>> <<addinlineevent "school_talk_nothing" 1>> /* Nothing */ <</addinlineevent>> <<runeventpool>> <</widget>> <<widget "witch">> <<if C.npc.Gwylan.pronoun is "m">> <<set _text_output to "witch">> <<else>> <<set _text_output to "witch">> <</if>> <<exit _text_output>> <</widget>> <<widget "gwylanRobin">> <<set $_incr to _args[0] or 1>> <<set $_cap to _args[1] or 0>> /* Note: $_cap could be used to add automatic breakpoints based on `$gwylanSeen` properties. For now, they're done manually with argument */ <<if !$_cap or $gwylan.robin + $_incr lte $_cap>> <<set $gwylan.robin += $_incr>> <<elseif $gwylan.robin lt $_cap and $gwylan.robin + $_incr gte $_cap>> <<set $gwylan.robin to $_cap>> <</if>> <</widget>> <<widget "measuringcharmsimage">> <<set _softCorruption to Math.clamp(Math.ceil($world_corruption_soft / 10), 0, 10)>> <<set _hardCorruption to Math.clamp($world_corruption_hard, 0, 10)>> <<if $options.images is 1>> <div id="divcharms"> <<if $world_corruption_soft gt 0 and $world_corruption_soft lt 10>> <img id="map" src="img/misc/prop/charm_big_0b.png"> <<else>> <img id="map" @src="'img/misc/prop/charm_big_' + Math.clamp(Math.ceil($world_corruption_soft / 10), 0, 10) + '.png'"> <</if>> <img id="maparrow" @src="'img/misc/prop/charm_small_' + Math.clamp($world_corruption_hard, 0, 10) + '.png'"> </div> <br> <</if>> <</widget>><<effects>><<lakeeffects>> <<if $earSlime.defyCooldown>> <<if $earSlime.growth gte 100>> <<set $earSlime.defyCooldown += 2>> You ignore the slime's command. You feel a jolt of pain as the slime punishes you for your defiance. However, <span class="red">it doesn't stop you, knowing that it can punish you in other ways.</span> <<else>> You ignore the slime's command. The slime tries to overpower your will, and you feel a jolt of pain as it punishes you for your defiance. However, <span class="teal">it's still worn out from overpowering you earlier.</span> It tries <span class="green">and fails</span> to force you to go for a stroll. <</if>> <br><br> <<link [[Next|Lake Shore]]>><<endevent>><</link>> <br> <<elseif $earSlime.corruption gte (currentSkillValue('willpower') / 10)>> <<if hasSexStat("deviancy", 4) and $earSlime.growth lt 100>> <<set $earSlime.defyCooldown += 4>> <<else>> <<set $earSlime.defyCooldown += 8>> <</if>> The slime tries to assert control. <span class="red">It overpowers your will,</span> forcing you to take a stroll by the lake. <<ggwillpower>><<willpower 3>> <br><br> <<link [[Next|Lake Stroll]]>> <<pass 60>><<set $earSlimeLakeStroll to true>> <<if $exposed gte 2>> <<arousal 1000>><<rng>> <<if $laketeenspresent is 1>> <<set $phase to 2>> <<else>> <<set $phase to 3>> <</if>> <<else>> <<set $phase to 1>> <</if>> <</link>><<if $exposed gte 2>><<garousal>><</if>> <<else>> The slime tries to assert control, <span class="green">but you fight it off</span> and manage to wrench yourself away from where it wants you to walk. <<gwillpower>><<willpower 1>> <br><br> <<link [[Next|Lake Shore]]>><<endevent>><</link>> <br> <</if>><<set $outside to 1>><<set $location to "lake">><<effects>><<lakeeffects>> <<set $forest to 40>><<set $bus to "lakewaterfall">> <<if $earSlimeLakeStroll>>You follow the slime's command.<</if>> <<if $phase is 1>> <<set $phase to 0>> You take a stroll around the lake. The water is <<= Weather.precipitation is "rain" ? "alive with motion as rain breaks its surface" : "calm">>. <<if $laketeenspresent is 1>> <<set _in to Time.season is "winter" ? "near" : "in">> You hear students playing _in the waterfall and sitting _in the pond above. <<elseif Weather.dayState is "night">> Moonlight reveals the area around you and turns the falling water into a curtain of silver. <<else>> A calming wind gently caresses you. <</if>> <br> You think about all the things that happened lately. The stillness around you helps digest it. <br><br> You feel refreshed. <<set $eventskip to 0>> <br><br> <<link [[Return|Lake Shore]]>><<clotheson>><</link>> <<elseif $phase is 2>> <<flaunting>> you walk around the edge of the Lake. There are people scattered around, but you don't think they can tell how exposed you are. <<if !$earSlimeLakeStroll>><<exhibitionism5>><</if>> <<if $player.bodyliquid.vagina.semen gte 2>> A bit of semen drips from your <<pussy>> onto the ground.<</if>> <<if $beauty gte (($beautymax / 7) * 3)>> <<generate1>>As you walk further you notice a <<person1>><<person>> lying on <<his>> blanket trying to peek at your <<genitals>>. You face <<him>> and wave. <<He>> blushes and looks away. <br><br> Amused by <<his>> response, you continue your walk. <br><br> <<endevent>> <</if>> <<if $rng gte 71 and $lakestealgold is 0>> You spot a couple swimming together<<if Time.season is "winter">>, clad in wetsuits<</if>>. One points at the shore, then they both dive. <br> You peer towards the spot they pointed at, and see a small camp between the trees. <br><br> <<link [[Check it out |Lake CampGold]]>><<set $phase to 1>><</link>> <br> <<link [[Continue your walk |Lake CampGold]]>><<set $phase to 2>><</link>> <br> <<else>> You finish your walk. You feel refreshed. <br><br> <<endevent>> <<set $eventskip to 0>> <<link [[Return |Lake Shore]]>><<clotheson>><</link>> <</if>> <<elseif $phase is 3>> <<flaunting>> you walk around the edge of the lake. You don't see anybody nearby, but being so exposed is thrilling. <<if !$earSlimeLakeStroll>><<exhibitionism4>><</if>> <<if $player.bodyliquid.vagina.semen gte 2>> A bit of semen drips from your <<pussy>> onto the ground as you walk. <</if>> <<if $rng gte 81 and hasSexStat("deviancy", 2) and ($player.vaginaExist or ($lactating and $milk_amount gte 250 and $settings.breastFeedingEnabled)) and $settings.swarmsEnabled>> After a few minutes you find a nice glade. The soft wind feels nice. You decide to lie down. <br><br> You close your eyes and listen to the sound of the forest. <br><br> <<if ($player.vaginaExist and ($lactating and $milk_amount gte 250 and $settings.breastFeedingEnabled))>> <<set _part1 to "crotch and breasts tickle">> <<set _part2 to "<<genitals>> and nipples">> <<elseif $player.vaginaExist>> <<set _part1 to "crotch tickles">> <<set _part2 to "<<genitals>>">> <<else>> <<set _part1 to "breasts tickle">> <<set _part2 to "nipples">> <</if>> Your <<print _part1>>. You look down <<if $arousal gte ($arousalmax / 5) * 2>> and see a few bugs and insects crawling around your <<print _part2>>, mesmerised by the leaking fluid. <<else>> and see a few bugs and insects crawling on your <<print _part2>>. <</if>> <br><br> <<if hasSexStat("deviancy", 3)>> <<link [[Let them explore|Lake Insect]]>><<set $phase to 1>><</link>><<deviant3>> <br> <</if>> <<if hasSexStat("deviancy", 4)>> <<link [[Masturbate|Lake Insect]]>><<set $phase to 2>><</link>><<deviant4>> <br> <</if>> <<link [[Brush them away|Lake Insect]]>><<set $phase to 3>><</link>> <br> <<else>> You finish your walk. You feel refreshed. <br><br> <<endevent>> <<set $eventskip to 0>> <<link [[Return |Lake Shore]]>><<clotheson>><</link>> <</if>> <</if>> <<unset $earSlimeLakeStroll>><<set $outside to 1>><<set $location to "lake">><<effects>><<lakeeffects>> <<set $forest to 40>><<set $bus to "lakewaterfall">> <<if ($player.vaginaExist and ($lactating and $milk_amount gte 250))>> <<set _part to "<<genitals>> and nipples">> <<elseif $player.vaginaExist>> <<set _part to "<<genitals>>">> <<else>> <<set _part to "nipples">> <</if>> <<if $phase is 1>> You lie back and let them explore you. <<deviancy3>> <<if $arousal gte ($arousalmax / 5) * 2>> The bugs and insects search around for the source of the delicious "honey". <<else>> The bugs and insects explore your every inch. <</if>> It tingles. A warm feeling spreads through your <<print _part>>. <br><br> After a few minutes you brush them off. You rise to your feet and finish your walk. You feel refreshed. <br><br> <<endevent>> <<set $eventskip to 0>> <<link [[Return|Lake Shore]]>><<clotheson>><</link>> <<elseif $phase is 2>> You lie back and let them explore you. <<deviancy4>> <<if $arousal gte ($arousalmax / 5) * 2>> The bugs and insects search around for the source of the delicious "honey". <<else>> The bugs and insects explore your every inch. <</if>> It tingles. A warm feeling spreads through your <<print _part>>. <<if $player.vaginaExist>> You start touching yourself as you feel them crawl inside. <<else>> You start touching yourself as you feel them drain you of milk. <</if>> <br><br> <<link [[Next|Lake Masturbation]]>><<set $bugsinside to 1>><<set $masturbationstart to 1>><</link>> <<elseif $phase is 3>> You brush them off and continue your walk, until you arrive where you started. You feel refreshed. <br><br> <<endevent>> <<set $eventskip to 0>> <<link [[Return|Lake Shore]]>><<clotheson>><</link>> <</if>><<set $outside to 1>><<set $location to "lake">><<effects>><<lakeeffects>> <<set $forest to 40>><<set $bus to "lakewaterfall">> <<if $phase is 1>> You walk to the camp and look around. Something shiny catches your attention. <br><br> It's a small gold bar. The pair must have gotten lucky during diving. You hear them re-emerge from the water. They're swimming back. <br><br> <<link [[Steal|Lake StealGold]]>><<crimeUp 30 "thievery">><<set $phase to 3>><<arousal 1500>><</link>><<gcrime "thievery">><<garousal>><<deviant3>> <br> <<link [[Don't steal|Lake StealGold]]>><<endevent>><<set $phase to 4>><</link>> <<else>> <br> You had enough fun for now and decide to return. You finish your walk. You feel refreshed. <br><br> <<set $eventskip to 0>> <<link [[Return|Lake Shore]]>><<clotheson>><</link>> <</if>><<if $phase is 3>> <br> You think quickly. You are completely naked and they would notice immediately if you had anything in your hand. <br><br> <<wearProp "gold bar">> A really lewd and crazy idea pops in your head. <br> You have one 'pocket' at your disposal. A natural one. Your <<print ($player.vaginaExist ? "vagina" : "asshole")>>! <br> Not wasting any time you pick up one gold bar. Your heart is beating loudly. <<if $arousal gte ($arousalmax / 5) * 3>> <<if $player.vaginaExist>> <br><br> You are really aroused and your <<pussy>> is completely wet. It barely takes any effort to insert the tip of the gold bar in your vagina. <br> You start pushing it in with your full strength. Your vagina stretches as it easily swallows the gold bar. <br> <<if $player.bodyliquid.vagina.semen gte 3>> The semen leaking out of your womb also acts as a lubricant making it even easier to insert the gold bar.<</if>> <br> You feel the bar kissing your cervix and with one last strong push the whole gold bar is inside of you. <<else>> <br><br> You are so aroused it barely takes any much effort to insert the tip of the gold bar in your asshole. <br> You start pushing it in with your full strength. Your asshole stretches as it swallows the gold bar. <br> Within moments the whole gold bar is inside of you. <</if>> <<elseif $arousal gte ($arousalmax / 10) * 3>> <<if $player.vaginaExist>> <br><br> You are aroused and your <<pussy>> is a bit wet. It takes not much of an effort to insert the tip of the gold bar in your vagina. <br> You start pushing it in with your full strength. Your vagina stretches as it accepts the gold bar. It hurts a bit, but you manage. <br> <<if $player.bodyliquid.vagina.semen gte 3>> The semen leaking out of your womb also acts as a lubricant making it easier to insert the gold bar.<</if>> <br> You feel the bar kissing your cervix and with one last strong push the whole gold bar is inside of you. <<else>> <br><br> You are aroused, but it still takes some effort to insert the tip of the gold bar in your asshole. <br> You start pushing it in with your full strength. Your asshole stretches as it accepts the gold bar. It hurts a bit, but you manage. <br> Within moments the whole gold bar is inside of you. <</if>> <<elseif $arousal gte $arousalmax / 10>> <<if $player.vaginaExist>> <br><br> Your <<pussy>> is not really wet. It takes a lot effort to insert the tip of the gold bar in your vagina. <br> You start pushing it in with your full strength. Your vagina stretches painfully as it tries to accept the gold bar. It hurts, but you barely manage. <br> <<if $player.bodyliquid.vagina.semen gte 3>> The semen leaking out of your womb acts as a lubricant making it easier to insert the gold bar.<</if>> <br> You feel the bar kissing your cervix and with one last strong push the whole gold bar is inside of you. <<else>> <br><br> You are not really aroused and it takes great effort to insert the tip of the gold bar in your asshole. <br> You start pushing it in with your full strength. Your asshole stretches painfully as it tries accept the gold bar. It hurts, but you barely manage. <br> Within moments the whole gold bar is inside of you. <</if>> <</if>> <br><br> <<link [[Next|Lake GoldCheck]]>><<handheldon>><</link>> <<else>> Your thoughts keep hammering inside your head, but at the end you decide not to steal it. You leave as fast as you can and retrieve your clothes. <br> You had enough adventure this time. <<endevent>> <<set $eventskip to 0>> <br><br> <<link [[Return|Lake Shore]]>><<clotheson>><</link>> <</if>>You make it just in time, the couple is just swimming to the shore, they didn't saw your lewd act. You quickly cover your exposed <<genitals>> with your hands. <br> Running now would be suspicious so you are not moving an inch, trying to make it obvious that you are not doing "anything". <br> The couple quickly arrives and the woman's eye darts around looking for any change. <br><br> "What are you doing here and why are you naked?!" asks the woman, while the man is keeping an eye on you. <br> "I-I just arrived, I..I'm just taking a stroll," you lie as trying to pretend to be shy about your covered <<genitals>>. <br> You raise your empty hands as proof, but this just makes you even more aroused. <br> <<arousal 1000>> <<if $arousal gte ($arousalmax / 5) * 3>> <br> The couple has a hard time not looking at your <<if $player.penisExist>>fully erect penis<<else>>dripping wet pussy as your juices keep leaking out of you like honey<</if>>. <br> After a long moment they look at your hand. <br> <<else>> <br> The couple checks out your <<genitals>>. After a moment they look at your hand. <br> <</if>> <br> "I don't see anything in <<pher>> hands, <<pshe>> is obviously just a pervert," says the man. <br> "I-I didn't take anything. Can you just please l-let me go?" <br> The couple looks at each other and then back to you. <br><br> "Go," says the woman, "and don't come back here. This is our loot!" <br> You nod and start walking back to your clothes with the gold bar inside of you, your heart beating like never before. <br><br> You would have never thought this would work. You could sell this gold bar for quite a hefty price...after you wash it of course. <br><br> <<endevent>> <<set $lakestealgold to 1>> <<set $eventskip to 0>> <<set $antiquemoney += 1500>> <<link [[Return|Lake Shore]]>><<clotheson>><</link>><<set $outside to 1>><<set $location to "lake">><<effects>><<lakeeffects>> <<generatey1>><<person1>> You wake up unable to move. You're up to your neck in sand. <br><br> "You're awake," says a <<person>>. <<Hes>> not alone. "You looked so peaceful asleep on the beach. We decided to turn you into a mermaid. We are almost done, we just want a picture." They step back to admire their handiwork. The <<person>> looks up, and fear darkens <<his>> face. <<He>> and <<his>> friends run. <br><br> <<endevent>><<generatey1>><<generatey2>><<generatey3>> Seconds later a shadow is cast over you. It's a <<fullGroup>>. You recognise them from school. "What do we have here?" The <<person1>><<person>> says. <<He>> drops to <<his>> knees in front of you. <br><br> <<if $speech_attitude is "meek">> "P-please don't," you plead. <<elseif $speech_attitude is "bratty">> "Don't think I'm harmless," you say. "I'll rip you to pieces if you come near." <<else>> "Don't you dare," you say. <</if>> <br><br> "Don't worry," <<he>> says. "We aren't gonna touch you, but..." <<He>> grins at <<his>> friends. "I think this mermaid needs a makeover." <<His>> friends kneel beside <<him>>. <br><br> <<if isLoveInterest("Eden")>> <<link [[Scream for Eden|Lake Mermaid Eden]]>><</link>> <br> <<link [[Don't scream|Lake Mermaid 2]]>><</link>> <<else>> <<link [[Next|Lake Mermaid 2]]>><</link>> <</if>><<set $outside to 1>><<set $location to "lake">><<effects>><<lakeeffects>> You hear a gun fire from the forest. A bullet lands nearby, and the students scramble away from you in fear. "W-What was that?" one of them asks in a hesitant voice. <br><br> A second gunshot rings through the air. The bullet lands closer this time, causing them to jump up to their feet. A third one follows, making them run off in a panic. <br><br> Others along the shore flee the area, hearing the gunshots as well, leaving you stranded and stuck in the sand. Suddenly, you hear footsteps approach you. <br><br> <<endevent>><<npc Eden>> "What do we have here?" says a familiar voice. It's Eden. <<if $edenCagedEscape>> "I told you I'd catch you again." <<He>> digs you out and grips your wrist tight. The moment you're on your feet, <<he>> begins dragging you into the woods. <br><br> "You keep letting me down, and you still rely on me to save your ass." <<He>> glares over <<his>> shoulder, eyes narrowed. "You're overdue for your punishment." <<set $location to "forest">> <br><br> <<link [[Fight|Eden Caged Caught Resist]]>><<set $fightstart to 1>><<def 1>><</link>> <br> <<link [[Try to pull away (0:01)|Eden Caged Caught Pull]]>><<pass 1>><<def 1>><<npcincr Eden dom -1>><</link>><<physiquedifficulty 2000 18000>><<ldom>> <br> <<link [[Submit (0:30)|Eden Caged Caught]]>><<set $phase to 1>><<pass 30>><<sub 1>><<npcincr Eden dom 1>><</link>><<gdom>> <br> <<elseif edenFreedomStatus() is 0>> "I knew you'd end up like this. This place dangerous," <<he>> says, digging you out and helping you to your feet. "Let's go home." <br><br> <<He>> takes you back to <<his>> cabin. <br><br> <<link [[Next (0:30)|Eden Cabin]]>><<endevent>><<pass 30>><</link>> <br> <<else>> /* edenFreedomStatus gte 1 */ "I trusted you," <<he>> says. "This is what happens if you don't obey me. It's for your own protection." <<He>> digs you out and pulls you to your feet. "Let's go home." <br><br> <<link [[Next (0:30)|Eden Recaptured]]>><<pass 30>><</link>> <br> <</if>><<set $outside to 1>><<set $location to "lake">><<effects>><<lakeeffects>> <<if $NPCList[0].penis isnot "none">> They expose their penises and play with them, just inches from your face. You struggle against the sand, but you can't budge. The <<person>> cums first. It shoots all over your forehead and dribbles around your eyes. The others follow suit, and soon you're covered from the neck up. <<bodyliquid "face" "semen" 5>> <<else>> They expose their pussies and play with them, just inches from your face. You struggle against the sand, but you can't budge. The <<person>> cums first, and squirts all over your forehead. It dribbles around your eyes. The others follow suit, and you're soon covered in pussy juice from the neck up. <<bodyliquid "face" "goo" 5>> <</if>> <br><br> "Aren't we nice?" the <<person>> says. They stand and leave, but not before taking pictures. Others along the shore watch. <<gtrauma>><<trauma 6>><<famerape 30>><<status -30>><<llcool>> <br><br> <<endevent>> <<link [[Struggle (0:30)|Lake Mershame]]>><<pass 30>><</link>><<set $outside to 1>><<set $location to "lake">><<effects>><<lakeeffects>> <<generatey1>> You continue to struggle against the sand. A few people come for a closer look, and either laugh or take a picture. Or both. Until a <<person1>><<person>>, who kneels beside you digs you out. <<He>> at least suppresses <<his>> laughter. <br><br> <<endevent>> <<link [[Next|Lake Shore]]>><<set $eventskip to 1>><</link>><<set $outside to 1>><<set $location to "lake">><<effects>><<lakeeffects>> <<set $daily.lakeCouple to 1>> <<generate1>><<generatep2>> You walk into the light of the fire. You see them more closely now, a <<fullGroup>>. "Hey," the <<person1>><<person>> says. "What are you doing out here alone? Come join us." <br><br> <<link [[Join them (0:10)|Lake Couple 2]]>><<pass 10>><</link>> <br> <<link [[Decline and go on your way|Lake Campsite]]>><<endevent>><</link>> <br><<set $outside to 1>><<set $location to "lake">><<effects>><<lakeeffects>> You sit down beside them. "We're enjoying our time away from the city," the <<person2>><<person>> says while the <<person1>><<persons>> head rests on <<person2>><<his>> shoulder. You tell them a bit about yourself. <<lstress>><<stress -2>> <br><br> After chatting for a bit, the <<person1>><<person>> shivers. "It's chilly tonight," <<he>> says. <<He>> pats <<his>> lap. "Come on. We'll keep each other warm." <br><br> <<link [[Sit on lap (0:10)|Lake Couple 3]]>><<pass 10>><</link>> <br> <<link [[Decline and go on your way|Lake Campsite]]>><<endevent>><</link>> <br><<set $outside to 1>><<set $location to "lake">><<effects>><<lakeeffects>> You sit on the <<person1>><<persons>> lap. You hear the couple kiss each other. You sit together for several minutes, listening to the fire crackle and the gentle ripple of the water. <<stress -2>><<trauma -1>><<lstress>><<ltrauma>> <br><br> The <<person2>><<person>> leans over and kisses your cheek. <<He>> looks at the <<person1>><<person>> as if for approval. The <<person>> leans in and kisses you too. <br><br> <<link [[Return kisses|Lake Couple 4]]>><</link>><<promiscuous1>><<kissvirginitywarning>> <br> <<link [[Pull away and leave|Lake Campsite]]>><<endevent>><</link>> <br><<set $outside to 1>><<set $location to "lake">><<effects>><<lakeeffects>> You kiss them back. One after the other, while the other kisses your cheek. Sometimes they kiss each other. <<takeKissVirginity "Lake couple" "romantic" "human">> <<promiscuity1>> "I'm sorry," the <<person2>><<person>> pants. "I should have asked first." You're not sure who <<hes>> addressing. <br><br> <<person1>>"It's getting late," the <<person>> says. "The tent is waiting." <br><br> <<if hasSexStat("promiscuity", 2)>> <<link [[Join them|Lake Couple 5]]>><</link>><<promiscuous2>> <br> <<if hasSexStat("exhibitionism", 3)>> <<link [[Strip and join them|Lake Couple 5]]>><<strip>><<set $phase to 1>><</link>><<exhibitionist3>> <br> <</if>> <</if>> <<link [[Part ways|Lake Campsite]]>><<endevent>><</link>> <br><<set $outside to 1>><<set $location to "lake">><<effects>><<lakeeffects>> The <<person1>><<person>> holds your hand as you approach the tent. <<takeHandholdingVirginity "Lake couple" "romantic" "human" true>><<He>> lets go to enter and the <<person2>><<person>> follows <<person1>><<him>>. <<if $phase is 1>> You take off your clothes and enter after them. You shuffle between the sheets and lie naked between two strangers. <<exhibitionism3>> <<else>> You enter after them, shuffle between the sheets and lie between two strangers. <<promiscuity2>> <</if>> <<link [[Cuddle (0:30)|Lake Couple Cuddle]]>><<trauma -3>><<stress -6>><</link>><<ltrauma>><<lstress>> <br> <<if hasSexStat("promiscuity", 3)>> <<link [[Embrace and kiss|Lake Couple Sex]]>><<set $sexstart to 1>><</link>><<promiscuous3>> <br> <</if>> <<link [[Shuffle out and be on your way|Lake Campsite]]>><<clotheson>><<endevent>><</link>> <br><<set $outside to 1>><<set $location to "lake">><<effects>><<lakeeffects>> You snuggle up to them and they cuddle back. You lie there for a while, feeling their warm bodies pressed against yours. It's comforting, but soon becomes stuffy in the small tent. You leave and let them get their sleep. <br><br> <<link [[Next|Lake Campsite]]>><<clotheson>><<endevent>><</link>> <br><<if $sexstart is 1>> <<set $sexstart to 0>> <<consensual>> <<set $consensual to 1>> <<neutral 1>> <<maninit>> <<set $enemytrust += 200>> You roll over and embrace the <<person1>><<person>>. You kiss <<him>>. You feel the <<person2>><<person>> shift closer over behind you.<<person1>> <<promiscuity3>> <</if>> <<effects>> <<effectsman>> <<man>> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Lake Couple Sex Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Lake Couple Sex]]>><</link>></span><<nexttext>> <</if>><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<ejaculation>> You lie with them a little longer, feeling the warmth of their bodies against yours. It's comforting, but soon becomes stuffy in the small tent. You leave and let them get their sleep. <<elseif $enemyhealth lte 0>> You shove them away from you and leave the tent. <<elseif $finish is 1>> They stop touching you and let you leave the tent. <</if>> <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Lake Campsite]]>><</link>><<set $outside to 1>><<set $location to "lake">><<effects>><<lakeeffects>> <<if $cool gte 160>> They're eager to have you along. They form around you and vie for your attention. Everyone knows the forest is dangerous, but you should be safe in a group. <<status 1>><<gcool>> <br><br> <<if dangerEvent()>> <<lakejourney>> <<else>> You arrive at the lake without a problem. <br><br> <<link [[Next|Lake Shore]]>><</link>> <br> <</if>> <<elseif $cool gte 40>> They're happy to have you along. You chat as you travel, making sure to stay close. Everyone knows the forest is dangerous, but you should be safe in a group. <<status 1>><<gcool>> <br><br> <<if dangerEvent()>> <<lakejourney>> <<else>> You arrive at the lake without a problem. <br><br> <<link [[Next|Lake Shore]]>><</link>> <br> <</if>> <<else>> They look at each other and smirk at your request, but they don't turn you down. Everyone knows the forest is dangerous, but you should be safe in a group. <<status 1>><<gcool>> <br><br> <<if dangerEvent()>> <<lakejourney>> <<else>> You're nearing the lake when someone shoves you from behind. You fall to the ground. The group laughs, and leaves you alone in the forest. <<gtrauma>><<gstress>><<trauma 3>><<stress 3>> <br><br> <<link [[Next|Forest]]>><<set $forest to 30>><</link>> <br> <</if>> <</if>><<set $outside to 1>><<set $location to "lake">><<effects>><<lakeeffects>> <<if $cool gte 160>> They're eager to have you along. They form around you and vie for your attention. You stick to the road, safe from the dangers of the forest. <<status 1>><<gcool>> <br><br> You arrive at the lake without a problem. <br><br> <<link [[Dare them to take a wild path|Lake Journey Road Dare]]>><<status 1>><</link>><<gcool>> <br> <<link [[Stick to the road|Lake Shore]]>><</link>> <br> <<elseif $cool gte 40>> They're happy to have you along. You chat as you travel, making sure to stay close. You stick to the road, safe from the dangers of the forest. <<status 1>><<gcool>> <br><br> <<link [[Dare them to take a wild path|Lake Journey Road Dare]]>><<status 1>><</link>><<gcool>> <br> <<link [[Stick to the road|Lake Shore]]>><</link>> <br> <<else>> They look at each other and smirk at your request, but they don't turn you down. You stick to the road, safe from the dangers of the forest. <<status 1>><<gcool>> <br><br> You're nearing the lake when someone shoves you from behind. You fall to the ground. The group laughs, and leaves you alone in the forest. <<gtrauma>><<gstress>><<trauma 3>><<stress 3>> <br><br> <<link [[Next|Forest]]>><<set $forest to 15>><</link>> <br> <</if>><<effects>> You goad the students into leaving the safety of the road. It's easy to do, no one wants to be seen as a coward. <br><br> <<lakejourney>><<set $outside to 1>><<set $location to "lake">><<effects>><<lakeeffects>> You join the others in sprinting the rest of the way to the lake. You don't know if the <<beasttype>> gave chase, but you all arrive safely. <br><br> <<link [[Lake|Lake Shore]]>><<endevent>><</link>> <br><<if $sexstart is 1>> <<set $sexstart to 0>> <<consensual>> <<set $consensual to 1>> <<neutral 1>> <<beastCombatInit>> You step towards the <<beasttype>>. "Go," you say to the others. "It's not safe. I've got this." They must think you mad. You adopt an exaggerated combat stance. "Go!" you repeat. They run towards the lake. Once alone, you drop to the ground and assume a mating position. <<deviancy2>> <</if>> <<effects>> <<effectsman>> <br> <<beast $enemyno>> <br><br> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Lake Wolf Sex Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Lake Wolf Sex]]>><</link>></span><<nexttext>> <</if>><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<beastejaculation>> Satisfied, the <<beasttype>> wanders deeper into the forest. <br><br> <<tearful>> you continue to the lake. <<elseif $enemyhealth lte 0>> <<tearful>> you watch the <<beasttype>> flee deeper into the forest. <<else>> The <<beasttype>> wanders deeper into the forest. <br><br> <<tearful>> you continue to the lake. <</if>> <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Lake Shore]]>><</link>><<set $outside to 1>><<set $location to "lake">><<effects>><<lakeeffects>> <<cleareventpool>> <<addinlineevent "lake_hang_1">> You skip rocks across the lake's surface with several others. Someone's skips <<print either("five","six","seven","eight","nine","ten")>> times. <</addinlineevent>> <<addinlineevent "lake_hang_2">> You help build a sandcastle, until it collapses under its own weight. You have a nice time regardless. <</addinlineevent>> <<addinlineevent "lake_hang_3">> You play catch with a Frisbee. <<gathletics>><<athletics 3>><<physique 1>> <</addinlineevent>> <<addinlineevent "lake_hang_4">> <<if $cool gte 160>> You chat with some students you recognise from your classes. A <<generates1>><<person1>><<person>> tries to impress you by entering the forest alone. <<He>> doesn't get far before a strange noise scares <<him>> back. <<ltrauma>><<trauma -3>><<endevent>> <<elseif $cool gte 40>> You chat with some students you recognise from your classes. <<else>> You try to chat with some students you recognise from your classes. You're mostly ignored. <<gtrauma>><<trauma 3>> <</if>> <</addinlineevent>> <<addinlineevent "lake_hang_5">> An impromptu game of tag starts. <<if currentSkillValue('athletics') gte 800>> No one can catch you. <<gcool>><<status 1>><<gathletics>><<athletics 3>><<physique 1>> <<elseif currentSkillValue('athletics') gte 400>> You give as good as you get. <<gathletics>><<athletics 3>><<physique 1>> <<else>> Once "it" you struggle to catch anyone. <<lcool>><<status -5>><<gathletics>><<athletics 3>><<physique 1>> <</if>> <</addinlineevent>> <<addinlineevent "lake_hang_6">> Several students swim out into the lake. <<if clothingInStorage("lakeshore").length gt 1>> You join them.<<lstress>><<stress -6>><<swimmingskilluse>> <<else>> You stay dry on the coast. <</if>> <</addinlineevent>> <<runeventpool>> <<pass 30>> <br><br> <<if Time.hour is 20>> It's getting late, and the shadows of the forest are lengthening. People are preparing to return to town. No one wants to be left to travel alone. <br><br> <<if $exposed lte 0>> <<link [[Go with them (0:30)|Lake Return Journey]]>><<set $foresthunt to 0>><<pass 30>><</link>> <br> <</if>> <<link [[Stay|Lake Shore]]>><</link>> <br> <<elseif dangerEvent()>> <<if $cool gte 160>> A <<generates1>><<person1>><<person>> approaches you. "H-hi," <<he>> says. "Umm, c-can I ask you something?" <<He>> takes a deep breath. "Will you kiss me? They said they'd leave me alone if I could get a kiss from you." <<He>> looks down and blushes. The students <<hes>> referring to watch from a rock not far away. You've seen them bully the <<person>> before. <br><br> <<link [[Kiss|Lake Kiss]]>><<status -10>><</link>><<promiscuous1>><<lcool>><<kissvirginitywarning>> <br> <<link [[Refuse|Lake Refuse]]>><</link>> <br> <<link [[Laugh|Lake Laugh]]>><<status 1>><</link>><<gcool>> <br> <<else>> A <<generatey1>><<person1>><<person>> tackles you behind a rock and gropes you. <br><br> <<if hasSexStat("promiscuity", 2)>> <<link [[Grope back|Lake Hang Sex]]>><<set $sexstart to 1>><</link>><<promiscuous2>> <br> <</if>> <<link [[Shove away|Lake Hang Shove]]>><</link>> <br> <</if>> <<else>> <<link [[Hang out (0:30)|Lake Hang]]>><<stress -6>><<status 1>><</link>><<gcool>><<lstress>> <br> <<link [[Stop|Lake Shore]]>><</link>> <br> <</if>><<set $outside to 1>><<set $location to "lake">><<effects>><<lakeeffects>> You grip <<his>> collar and pull <<him>> close. <<His>> eyes widen in surprise, but then close. You feel <<him>> shiver. The bullies on the rock stare, dumbfounded. One throws an empty bottle to the ground in disgust. They drop from the rock and walk away. <<promiscuity1>><<takeKissVirginity `($pronoun is "m"?"shy boy":"shy girl")` "consensual">> You pull away from the <<person>>. <<Hes>> blushing and tearing up. "Th-thank you." <<He>> turns and runs. <<famegood 20>> <br><br> <<endevent>> <<link [[Hang out (0:30)|Lake Hang]]>><<stress -6>><<status 1>><</link>><<gcool>><<lstress>> <br> <<link [[Stop|Lake Shore]]>><</link>> <br><<set $outside to 1>><<set $location to "lake">><<effects>><<lakeeffects>> You shake your head. <<He>> smiles. "I know. It's unfair of me to ask. Thanks anyway." <<He>> walks away. The bullies on the rock jeer and taunt <<him>>. <br><br> <<endevent>> <<link [[Hang out (0:30)|Lake Hang]]>><<stress -6>><<status 1>><</link>><<gcool>><<lstress>> <br> <<link [[Stop|Lake Shore]]>><</link>> <br><<set $outside to 1>><<set $location to "lake">><<effects>><<lakeeffects>> You burst into laughter. The bullies on the rock follow suit. The <<person>> looks down and runs into the forest. <br><br> <<endevent>> <<link [[Hang out (0:30)|Lake Hang]]>><<stress -6>><<status 1>><</link>><<gcool>><<lstress>> <br> <<link [[Stop|Lake Shore]]>><</link>> <br><<set $outside to 1>><<set $location to "lake">><<effects>><<lakeeffects>> <<if $rng gte 81>> You shove <<him>> off you. <<He>> sneers and climbs back on, gagging your mouth with <<his>> hand. "Don't try that again <<bitch>>," <<he>> says. "This is happening." <br><br> <<link [[Next|Lake Hang Sex]]>><<set $molestationstart to 1>><</link>> <br> <<else>> You shove <<him>> off you. <<He>> shrugs and leaves to find someone else to pester. <br><br> <<endevent>> <<link [[Hang out (0:30)|Lake Hang]]>><<stress -6>><<status 1>><</link>><<gcool>><<lstress>> <br> <<link [[Stop|Lake Shore]]>><</link>> <br> <</if>><<if $sexstart is 1>> <<set $sexstart to 0>> <<consensual>> <<set $consensual to 1>> <<neutral 1>> <<maninit>> <<set $enemytrust += 100>> <<promiscuity2>> <</if>> <<if $molestationstart is 1>> <<set $molestationstart to 0>> <<set $consensual to 0>> <<neutral 1>> <<controlloss>> <<molested>> <<maninit>> <<hand_gag 0 left>> <<if isLoveInterest("Eden") and !$edenCagedEscape and $location is "lake" and random(1,2) is 2>> <<enable_rescue>> <</if>> <</if>> <<effects>> <<effectsman>> <<alarmstate>> <<man>> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Lake Hang Sex Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Lake Hang Sex]]>><</link>></span><<nexttext>> <</if>><<set $outside to 1>><<set $location to "lake">><<effects>><<lakeeffects>> <<if $enemyhealth lte 0>> <<He>> recoils in pain. <<tearful>> you run out into the open where <<he>> can't try that again. <<elseif $enemyarousal gte $enemyarousalmax>> <<ejaculation>> <<He>> lies on <<his>> back and pants. <<tearful>> you climb to your feet. <<elseif $rescue is 1 and $alarm is 1>> You hear a gun firing from the forest, and a bullet lands at the <<person>>'s feet. <<He>> backs off in fear and runs away. <br><br> <<endevent>><<npc Eden>> You look into the trees for your rescuer, but can't see <<him>>. <<tearful>> you climb to your feet. <<else>> <<He>> hesitates, but climbs off you. <<tearful>> you struggle to your feet as <<he>> wanders off. <</if>> <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Lake Shore]]>><</link>> <br><<set $outside to 1>><<set $location to "lake">><<effects>><<lakeeffects>> You join the others and enter the darkening forest. People don't talk much, until the lights of town can be seen between the trees. <br><br> <<link [[Next|Wolf Street]]>><</link>> <br><<set $outside to 1>><<set $location to "lake">><<effects>><<lakeeffects>><<rngWraith 1>> You wave at the <<person>>. <<He>> waves back. <<Hes>> a distance away, but you think <<hes>> smiling. <br><br> <<if _wraithEvent>> <<if ["haunt", "despair"].includes($wraith.state)>> <<His>> head tilts to the side, and <<his>> smile falters as <<he>> turns pale. For a brief moment, you see <<him>> clutching at <<his>> neck and reaching for you. You blink, and <<hes>> gone. <<trauma 6>><<gtrauma>> <<else>> Upon closer inspection, you see a necklace of ivory wrapped around <<his>> neck. You blink, and <<hes>> suddenly gone. <<trauma 3>><<gtrauma>> <</if>> <br><br> <</if>> <<link [[Next|Lake Shallows]]>><<endevent>><<set $eventskip to 1>><</link>> <br><<set $outside to 1>><<set $location to "lake">><<effects>><<lakeeffects>> <<if $worn.upper.exposed gte 2>> You bare your <<breasts>> above the water and wave. The <<person>> whistles at you. <<else>> You <<pullup>> your <<allTops>>, baring your <<breasts>> for the <<person>>. <<He>> whistles at you. <</if>> <<exhibitionism3>> <<link [[Next|Lake Shallows]]>><<endevent>><<set $eventskip to 1>><</link>> <br><<if $molestationstart is 1>> <<set $molestationstart to 0>> <<set $combat to 1>> <<molested>> <<controlloss>> <<set $enemytype to "vore">> <<set $vorestage to 1>> <<set $vorecreature to "frog">> <<set $vorestrength to 1>><<set $position to "doggy">> <<resetLastOptions>> <<getCombatDefaultsType>> <</if>> <<water>><<effects>><<voreeffects>> <<vore>> <<voreactions>> <<if $stress gte $stressmax>> <span id="next"><<link [[Next|Lake Vore Finish]]>><</link>></span><<nexttext>> <<elseif $vorestage lte 0>> <span id="next"><<link [[Next|Lake Vore Finish]]>><</link>></span><<nexttext>> <<elseif $vorestomach gte 5>> <span id="next"><<link [[Next|Lake Vore Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Lake Vore]]>><</link>></span><<nexttext>> <</if>><<water>><<effects>> <<if $stress gte $stressmax or $vorestomach gte 5>> It's all just too much for you. You pass out. <br><br> <<if $upperoff isnot 0>> <<upperruined>> <</if>> <<if $loweroff isnot 0>> <<lowerruined>> <</if>> <<if $underloweroff isnot 0>> <<underlowerruined>> <</if>> <<if $underupperoff isnot 0>> <<underupperruined>> <</if>> <<endcombat>> <<passoutlake>> <<else>> <<tearful>> you haul yourself out of the $vorecreature's maw. It disappears back into the depths. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Lake Depths]]>><</link>> <br> <</if>><<location "forest">><<effects>> <<set $forest to 10>> <<set $leftarm to "bound">><<set $rightarm to "bound">><<handheldruined>> <<upperruined>><<lowerruined>><<underruined>> <<generateCultist 1>><<person1>> <<if $pronoun is "m">> <<generatem2>><<generatem3>><<generatem4>><<generatem5>><<generatem6>> <<else>> <<generatef2>><<generatef3>><<generatef4>><<generatef5>><<generatef6>> <</if>> <<for _i = 0; _i < $NPCList.length; _i++>> <<npcClothesType $NPCList[_i] "temple">> <</for>> You awaken naked on a stone slab with your arms tied down. All around you loom <<monks>> wearing ceremonial attire. They chant in a language you don't understand. They fall silent, then reach for you. <br><br> <<link [[Next|Lake Ritual Molestation]]>><<set $molestationstart to 1>><</link>> <br><<if $molestationstart is 1>> <<set $molestationstart to 0>> <<set $consensual to 0>> <<neutral 1>> <<controlloss>> <<molested>> <<maninit>> <<npcidlegenitals>> <<set $enemyarousalmax /= 2>> <<set $enemyarousal /= 2>> <<if isLoveInterest("Eden") and !$edenCagedEscape and (random(1, 2) is 2 or $eden_rescue isnot 1)>> <<enable_rescue>> <<set $phase2 to 1>> <<elseif $wraith.state and $wraithIntro and $hallucinations gte 2>> <<enable_rescue>> <<set $phase2 to 2>> <</if>> <</if>> <<effects>> <<effectsman>> <<alarmstate>> <<man>> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Lake Ritual Molestation Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Lake Ritual Molestation]]>><</link>></span><<nexttext>> <</if>><<effects>> <<if $enemyhealth lte 0>> They back away from you, not wanting to be the next one hit. They whisper amongst themselves for a moment, then disappear into the forest. <br><br> You struggle against the bonds holding you in place. You feel them become looser, and they soon snap. <br><br> <<clotheson>> <<endcombat>> <<pass 20>> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <<elseif $rescue is 1 and $alarm is 1>> <<if $phase2 is 2>> <<set $wraith.seen++>> You hear your own scream echo back through the trees. The group backs off, looking to the source. They all go quiet. After a moment, you see a flash of <<wraithEyes>> from the darkness. <<rainWraith true>> <br><br> One of the <<person1>><<monks>> is hurled backwards by an unseen force, colliding with a tree. Splinters of bark fall after <<him>> as <<he>> comes crashing to the ground. The rest all clutch their heads in agony, attempting to block their ears. You don't hear anything. <br><br> Another <<monk>> attempts to run. You see a long translucent limb ensnare <<his>> legs, lifting <<him>> helplessly into the air. Phantom shapes dance through the air, slowly taking the form of a pale humanoid figure. <br><br> "<span class="wraith">The mercy of silence has left you.</span>" <br><br> A blaring shriek fills your ears as the figure opens its mouth. With the way you're bound, you have no way to block it out. <<stress 24>><<trauma 24>><<gggstress>><<gggtrauma>> <br><br> <<link [[Next|Lake Ritual Molestation Finish 2]]>><</link>> <<else>> You hear a gun fire close by, and a bullet lands at the group's feet. They back off and whisper amongst themselves for a moment, then disappear into the forest. <br><br> <<clotheson>> <<unbind>> <<endcombat>> Eden emerges, slashes your bindings, and helps you collect yourself. "Damn bastards," <<nnpc_he "Eden">> mutters. "Are you okay?" <br><br> <<if $gwylanRescue?.eden gte 1>> Eden glances around for a moment. "We must be in too deep for that shopkeep," <<nnpc_he "Eden">> says. <br><br> <</if>> <<if $eden_rescue isnot 1>> <<set $eden_rescue to 1>> Eden pats you on the shoulder. "I was able to save you because I happened to be in the area," <<nnpc_he "Eden">> says. "<span class="gold">I might not always be around, but I should be able to save you anywhere in the forest.</span> Give me a holler if you're in trouble." <br><br> <</if>> <<link [[Go back to the cabin (0:30)|Forest Cabin Return]]>><<pass 30>><</link>> <br> <<link [[Say goodbye|Lake Shore]]>><<endevent>><</link>> <</if>> <<else>> <<ejaculation>> "The ritual is complete," the <<person1>><<person>> stammers. "We can return to the temple." They disappear into the forest. They don't untie you. <br><br> You struggle against the bonds holding you in place. You feel them become looser, and they soon snap. <br><br> <<clotheson>> <<endcombat>> <<pass 20>> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <</if>> <br> <<set $stress -= 1000>><<effects>> The <<monk>> is lifted high into the air and slammed into the ground. You think <<hes>> screaming, but it's too loud to hear. Dirt and rocks are kicked up by the impact. Two more <<monks>> are grabbed by translucent limbs. The remaining <<monks>> flee, and you take the opportunity to follow. You struggle against the bonds holding you in place. You feel them become looser, and they soon snap. Not a moment too soon. <br><br> <<if C.npc["Ivory Wraith"].lust gte 10>> You run away as fast as you can, but it doesn't feel like you're getting anywhere. You see the trees as you run past them, but the pale figure doesn't get any further away. It slowly approaches you, always in the corner of your eye no matter where you look. Its mouth is closed, but the screaming still persists. <br><br> You stumble briefly, and the figure dissipates with a quiet laugh, somehow audible over the shrieking. "<span class="wraith">Forget that you have nowhere to go. Run from your sins.</span>" <<stress 12>><<ggstress>> <<else>> You run away as fast as you can, until the screams grow distant. After a few minutes, you hear it speak again. <br><br> "<span class="wraith">Finally... some quiet...</span>" <</if>> <br><br> You quicken your pace. <br><br> <<clotheson>> <<endcombat>> <<pass 20>> <<link [[Next|Forest]]>><<endRainWraith>><<set $eventskip to 1>><</link>><<set $outside to 1>><<effects>><<lakeeffects>> You stand your ground. The <<beasttype>> doesn't consider long before charging you. <<if $rng gte 51>> Before <<bhe>> reaches you, however, <<bhe>> runs in a semicircle and back towards the forest. You hear <<= Weather.isFrozen("lake") ? "the lake ice crack" : "a splash in the lake">> behind you, but when you turn, there's nothing there. <br><br> <<endevent>> <<set $eventskip to 1>> <<destinationlake>> <<else>> <<bHe>> knocks you to the ground with <<bhis>> first pass, and leaps on you with the second. <br><br> <<link [[Next|Lake Boar Rape]]>><<set $molestationstart to 1>><</link>> <br> <</if>><<set $outside to 1>><<effects>><<lakeeffects>> You sprint away from the <<beasttype>>. You hear <<bhis>> paws breaking the dirt behind you. <<if $athleticsSuccess>> <span class="green">You run fast enough that the <<beasttype>> gives up.</span> You turn and see <<bhim>> returning to the litter by the tree. <br><br> <<endevent>> <<set $eventskip to 1>> <<destinationlake>> <<else>> <span class="red">You're not fast enough.</span> The <<beasttype>> knocks you to the ground and leaps on top of you. <br><br> <<link [[Next|Lake Boar Rape]]>><<set $molestationstart to 1>><</link>> <br> <</if>><<if $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<beastCombatInit>> <<set $NPCList[0].stance to "top">> <<if isLoveInterest("Eden") and !$edenCagedEscape and (random(1, 2) is 2 or $eden_rescue isnot 1)>> <<enable_rescue>> <</if>> <</if>> <<effects>> <<effectsman>> <<alarmstate>> <<beast $enemyno>> <br><br> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Lake Boar Rape Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Lake Boar Rape]]>><</link>></span><<nexttext>> <</if>><<set $outside to 1>><<set $location to "lake">><<effects>><<lakeeffects>> <<if $enemyarousal gte $enemyarousalmax>> <<beastejaculation>> Satisfied, the <<beasttype>> returns to the litter by the tree. <br><br> <<tearful>> you climb to your feet. <br><br> <<clotheson>> <<endcombat>> <<set $eventskip to 1>> <<destinationlake>> <<elseif $enemyhealth lte 0>> The <<beasttype>> squeals and flees into the trees. <br><br> <<tearful>> you climb to your feet. <br><br> <<clotheson>> <<endcombat>> <<set $eventskip to 1>> <<destinationlake>> <<elseif $rescue is 1 and $alarm is 1>> You hear a gun fire close by, and a bullet lands at the <<beasttype>>'s feet. <<bHe>> backs off in fear and flees into the trees. <br><br> Eden emerges and helps you collect yourself. "Damn boars," <<nnpc_he "Eden">> mutters. "Are you okay?" <br><br> <<clotheson>> <<endcombat>> <<if $gwylanRescue?.eden gte 1>> Eden glances around for a moment. "We must be in too deep for that shopkeep," <<nnpc_he "Eden">> says. <br><br> <</if>> <<if $eden_rescue isnot 1>> <<set $eden_rescue to 1>> Eden pats you on the shoulder. "I was able to save you because I happened to be in the area," <<nnpc_he "Eden">> says. "<span class="gold">I might not always be around, but I should be able to save you anywhere in the forest.</span> Give me a holler if you're in trouble." <br><br> <</if>> <<link [[Go back to the cabin (0:30)|Forest Cabin Return]]>><<pass 30>><</link>> <br> <<link [[Say goodbye|Lake Shore]]>><<endevent>><</link>> <</if>><<effects>> <<if $masturbationstart is 1>> <<set $masturbationstart to 0>> <<set $masturbationstat += 1>> <<masturbationstart>> <</if>> <<masturbationeffects>> <<masturbationactions>> <<masturbationControls>><<effects>> <<endmasturbation>> <<endcombat>> You stand, your <<genitals>> still tingling. <br><br> You walk back to your clothes and get dressed. That was quite the stroll. <<unset $bugsinside>> <<set $eventskip to 0>> <br><br> <<link [[Next|Lake Shore]]>><<clotheson>><</link>> <br><<effects>> You don't want to look, <<if $willpowerSuccess>> <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 96>> 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>><<effects>> <<if $rng gte 96>> 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>><<effects>> <<if playerIsPregnant() and playerAwareTheyArePregnant()>> You lie on your belly as best as you can, given your <<bellyDescription "pc">>, and spread out your weight. You shuffle to a safer part of the lake. <<else>> You lie on your belly and spread out your weight. You shuffle to a safer part of the lake. <</if>> <br><br> <<destination_lake_ice>><<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 icy water.<<ggstress>><<stress 18>> <br><br> <<link [[Next|Lake Underwater]]>><</link>> <br> <</if>><<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>><<effects>> You shift your weight, spin, <<if $danceSuccess>> <span class="green">and manage to stay upright.</span> The danger over, that felt pretty cool.<<lstress>><<stress -6>> <<else>> <span class="red">and land on your back with your legs in the air.</span><<ggstress>><<gpain>><<stress 6>><<pain 4>> <<if $laketeenspresent is 1 and $bus is "lakeshallows">> <br><br> You hear laughter. The others thought your fall funny.<<lcool>><<status -10>> <</if>> <</if>> <br><br> <<destination_lake_ice>><<effects>> <<if $struggle_start is 1>> <<set $combat to 1>> <<controlloss>> <<violence 1>> <<molested>> <<if $player.penisExist>> <<set $struggle.penis.creature to "pale slime">><<set $penisuse to "struggle">><<set $penisstate to "struggle">><<set $struggle.enemy[0].location to "penis">> <<else>> <<set $struggle.vagina.creature to "pale slime">><<set $vaginause to "struggle">><<set $vaginastate to "struggle">><<set $struggle.enemy[0].location to "vagina">> <</if>> <<unset $struggle_start>> <<elseif $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<set $enemytype to $wraith.type>> <</if>> <<underwater>><<effectsWraith>> <<switch $wraith.type>> <<case "man">> <<if _combatend>> <span id="next"><<link [[Next|Wraith Underwater Rape Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Wraith Underwater Rape]]>><</link>></span><<nexttext>> <</if>> <<case "tentacles">> <<if $tentacles.active lte ($tentacles.max / 2)>> <span id="next"><<link [[Next|Wraith Underwater Rape Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Wraith Underwater Rape]]>><</link>></span><<nexttext>> <</if>> <<case "slime">> <<if $struggle.done gte $struggle.number>> <span id="next"><<link [[Next|Wraith Underwater Rape Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Wraith Underwater Rape]]>><</link>></span><<nexttext>> <</if>> <</switch>><<underwater>><<effects>> <<if $enemyhealth lte 0 and $wraith.type is "man">> The figure looks down at you in shock as <<he>> staggers backwards. <<if $wraith.gen is "abomination">> The tentacles drop lifelessly back into the darkness, and sublimate into a pink mist. <<elseif $wraith.gen is "arms">> <<His>> extra arms fold back in. <</if>> <<His>> head snaps back, and <<he>> dissipates into nothingness with a brief shriek that echoes in your mind. The water rushes in to fill the empty space, sending a shockwave out that leaves you tumbling in the water. Your ears ring, and you think you hear laughter. "<span class="wraith">You can't keep me away forever, <<pcpetname "Wraith">>.</span>" <br><br> <<tearful>> you try to get your bearings. <<set $wraith.defeated++>> <<else>> <<ejacW>> With a bright flash, <<he>> vanishes. You feel lewd energy linger in the water, and <<his>> laughs echo between your ears. "<span class="wraith">Worry not, we'll meet again soon.</span>" <br><br> <<tearful>> you try to get your bearings. <</if>> <<clotheson>> <<endcombat>> <<link [[Next|Lake Ruin]]>><<endWraith>><</link>> <br><<effects>> <<if $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<set $enemytype to $wraith.type>> <<set $timer to 15>> <</if>> <<effectsWraith>> <<if _combatend or $timer lte 0>> <span id="next"><<link [[Next|Asylum Machine Wraith Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Asylum Machine Wraith]]>><</link>></span><<nexttext>> <</if>><<effects>> <<if $enemyhealth lte 0>> With both feet, you kick as hard as you can. The cover of the machine flies open. <<set $wraith.defeated++>> <<elseif $enemyarousal gte $enemyarousalmax>> <<ejacW>> Light floods into the machine as the cover is finally pried open. Laughter echoes between your ears. "<span class="wraith">See you soon.</span>" <br><br> <<else>> The <<person>> caresses your face. "<span class="wraith">Time is fleeting, like sand slipping through your fingers. See you soon.</span>" <<kissWraith>> <br><br> Light floods into the machine as the cover is finally pried open. <</if>> You feel yourself being pulled out, and hear many voices. You look up to see several orderlies clad in gas masks. There's no sign of the <<person>> anywhere. <br><br> Someone rushes up to you. It's Harper, also wearing a gas mask. "Thank goodness. The machine began to malfunction, and we couldn't get it open. Please accept my sincerest apologies." <<suspicion -10>><<lllsuspicion>> <<tearful>> they look you over and help you to your feet. <<clotheson>> "You've done well today," the doctor says. "I hope you weren't too distressed. Be well." <<if C.npc["Ivory Wraith"].lust gte 16>> <<He>> looks pale. You hope it's just the lighting. <<stress 6>><<gstress>> <</if>> <br><br> You leave the room, still shaking. <br><br> <<endcombat>> <<link [[Next|Asylum]]>><<endWraith>><</link>> <br><<location "forest">><<effects>> You swallow the pill. A daze descends on you and a perverse warmth grows in your belly. Everything spins. You taste something strange, and you feel like what you just swallowed wasn't even a pill. <br><br> You turn to <<him>>. <<His>> skin has turned a stark white. <<if $wraith.seen gte 3>> You immediately recognise it as the pale being that's been following you. <<elseif $wraith.seen gte 1>> <<His>> pale visage looks familiar, and you feel as though you should panic, but whatever you just consumed won't let you. <</if>> <<He>> smiles. "<span class="wraith">I can feel your heart beating. Give in.</span>" <<endevent>><<generateWraith 1 true>> <<initWraith>><<rainWraith true>> <br><br> <<switch $wraith.gen>> <<case "man">> <<He>> raises <<his>> hand to the air, and an unseen force pushes you to the ground. <<case "tentacles" "abomination" "slimetentacles">> You feel something slithering up your legs. You look down to see a mass of pale tendrils surrounding you! <<case "slime">> <<He>> raises <<his>> hands to the air, and a shimmering purple mass appears above you. A group of pale, undulating slimes jump out! <<case "arms">> A manic grin crosses <<his>> face, and several additional pairs of arms spring from <<his>> back, each one gesturing in strange patterns. <</switch>> <br><br> <<if Time.isBloodMoon()>> <<link [[Next|Wraith Caught]]>><<set $wraith.exit to "forest">><</link>> <<else>> <<link [[Next|Pub Wraith Mimic Attack]]>><</link>> <</if>> <br><<location "forest">><<effects>> You shake your head. <<He>> freezes in an unnatural position, and grins. Your pulse quickens. <<His>> skin grows more and more pale by the second. <br><br> <<if Time.isBloodMoon()>> "<span class="wraith"><<pcPetname "Wraith">>. You never had a choice.</span>" <<if $wraith.seen gte 3>> You immediately recognise it as the pale being that's been following you. <<elseif $wraith.seen gte 1>> <<His>> pale visage looks familiar. <</if>> <<He>> smiles. "<span class="wraith">I can feel your heart beating. Give in.</span>" <<endevent>><<generateWraith 1 true>> <<initWraith>><<rainWraith true>> <br><br> <<switch $wraith.gen>> <<case "man">> <<He>> raises <<his>> hand to the air, and an unseen force pushes you to the ground. <<case "tentacles" "abomination" "slimetentacles">> You feel something slithering up your legs. You look down to see a mass of pale tendrils surrounding you! <<case "slime">> <<He>> raises <<his>> hands to the air, and a shimmering purple mass appears above you. A group of pale, undulating slimes jump out! <<case "arms">> A manic grin crosses <<his>> face, and several additional pairs of arms spring from <<his>> back, each one gesturing in strange patterns. <</switch>> <br><br> <<link [[Next|Wraith Caught]]>><<set $wraith.exit to "forest">><</link>> <br> <<else>> "<span class="wraith">Clever.</span>" The voice seems to come from all around you. Your vision goes fuzzy for a brief moment, and when it clears, <<hes>> gone. You look around in a panic. <<stress 6>><<gstress>><<trauma 12>><<ggtrauma>> <br><br> You begin to jump at every shadow. Your breathing grows heavier. You break out into a run, leaving the clearing far behind. <br><br> <<link [[Next|Forest]]>><<set $forest to 0>><<endevent>><</link>> <br> <</if>><<effects>> <<if $struggle_start is 1>> <<set $combat to 1>> <<controlloss>> <<violence 1>> <<molested>> <<unset $struggle_start>> <<set $forest to 0>> <<elseif $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<set $enemytype to $wraith.type>> <</if>> <<set $rescue to 0>> <<effectsWraith>> <<switch $wraith.type>> <<case "man">> <<if _combatend>> <span id="next"><<link [[Next|Pub Wraith Mimic Attack Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Pub Wraith Mimic Attack]]>><</link>></span><<nexttext>> <</if>> <<case "tentacles">> <<if $tentacles.active lte ($tentacles.max / 2)>> <span id="next"><<link [[Next|Pub Wraith Mimic Attack Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Pub Wraith Mimic Attack]]>><</link>></span><<nexttext>> <</if>> <<case "slime">> <<if $struggle.done gte $struggle.number>> <span id="next"><<link [[Next|Pub Wraith Mimic Attack Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Pub Wraith Mimic Attack]]>><</link>></span><<nexttext>> <</if>> <</switch>> <br><<set $outside to 0>><<effects>> <<if $enemyhealth lte 0 and $wraith.type is "man">> The <<person>> looks down at you in shock as <<he>> staggers backwards. <<if $wraith.gen is "abomination">> The tentacles drop lifelessly to the ground, and sublimate into a pink mist. <<elseif $wraith.gen is "arms">> <<His>> extra arms fold back in. <</if>> <<His>> head snaps back, and <<he>> dissipates into nothingness with a brief shriek that echoes in your mind. Your ears ring, and you think you hear laughter. "<span class="wraith">I am everywhere. You will never escape me.</span>" <br><br> <<tearful>> you run from the clearing, not daring to look back. <<set $wraith.defeated++>> <<else>> <<ejacW>> <<kissWraith>> <br><br> <<He>> breaks off and gives you a regal bow as <<he>> vanishes in a torrent of water, and <<his>> laughs echo between your ears. "<span class="wraith">I could be anyone. I am anyone. See you soon.</span>" <br><br> <<tearful>> you look around, trying to make sure <<hes>> really gone. <</if>> <<endRainWraith true>> <<clotheson>> <<endcombat>> <<link [[Next|Forest]]>><<set $forest to 0>><<endWraith>><<set $eventskip to 1>><</link>> <br><<effects>> <<if $struggle_start is 1>> <<set $combat to 1>> <<controlloss>> <<violence 1>> <<molested>> <<unset $struggle_start>> <<elseif $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<set $enemytype to $wraith.type>> <</if>> <<set $rescue to 0>> <<effectsWraith>> <<switch $wraith.type>> <<case "man">> <<if _combatend>> <span id="next"><<link [[Next|Wraith Moor Ring Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Wraith Moor Ring]]>><</link>></span><<nexttext>> <</if>> <<case "tentacles">> <<if $tentacles.active lte ($tentacles.max / 2)>> <span id="next"><<link [[Next|Wraith Moor Ring Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Wraith Moor Ring]]>><</link>></span><<nexttext>> <</if>> <<case "slime">> <<if $struggle.done gte $struggle.number>> <span id="next"><<link [[Next|Wraith Moor Ring Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Wraith Moor Ring]]>><</link>></span><<nexttext>> <</if>> <</switch>> <br><<set $outside to 0>><<effects>> <<if $enemyhealth lte 0 and $wraith.type is "man">> The <<person>> looks down at you in shock as <<he>> staggers backwards. <<if $wraith.gen is "abomination">> The tentacles drop lifelessly to the ground, and sublimate into a pink mist. <<elseif $wraith.gen is "arms">> <<His>> extra arms fold back in. <</if>> <<His>> head snaps back, and <<he>> dissipates into nothingness with a brief shriek that echoes in your mind. Your ears ring, and you think you hear laughter. "<span class="wraith">I am everywhere. You will never escape me.</span>" <br><br> <<tearful>> you run from the glowing shore, not daring to look back. <<set $wraith.defeated++>> <<else>> <<ejacW>> <<kissWraith>> <br><br> <<He>> breaks off and gives you a regal bow as <<he>> vanishes in a torrent of water, and <<his>> laughs echo between your ears. "<span class="wraith">Leave the dead to their slumber, thief.</span>" <br><br> <<tearful>> you look around, trying to make sure <<hes>> really gone. <</if>> <<endRainWraith true>> <<clotheson>> <<endcombat>> <<link [[Next|Moor]]>><<endWraith>><<set $eventskip to 1>><</link>> <br><<effects>> <<set $wraith.exit to "town">> <<if $speech_attitude is "meek">> You look away from Kylar. "S-sorry," you say. "Not today." <<elseif $speech_attitude is "bratty">> You put your hands on your hips. "In a creepy alley," you say. "Really? No." <<else>> You shake your head. <</if>> <br><br> Kylar stares at the ground and nods. <<Hes>> grinning widely. <<He>> turns as if to leave, but then lunges forward and shoves you against a wall with <<his>> hand. <br><br> Except that's not a hand. Many long, translucent limbs are pinning you to the wall. <br><br> You see <<his>> skin ripple, like wax melting down a candle. <<His>> arms take on an unnatural, ivory pallor. <<endevent>><<generateWraith 1 true>><<initWraith "abomination">> <br><br> This isn't Kylar. <<trauma 12>><<ggtrauma>><<set $wraith.revealed to true>> <br><br> <<if $wraith.offspring is "dead">> "<span class="wraith">This one couldn't save them,</span>" <<he>> hisses. "<span class="wraith">You let them die.</span>" The translucent limbs converge on you. <<elseif $wraith.offspring is "sold">> "<span class="wraith">This one couldn't save them,</span>" <<he>> hisses. "<span class="wraith">You threw them away.</span>" The translucent limbs converge on you. <<elseif $wraith.state is "despair">> "<span class="wraith">Where is it? Have you seen it? My necklace...</span>" <<he>> pleads. The translucent limbs converge on you. <<else>> "<span class="wraith">You stole it from me,</span>" <<he>> hisses. "<span class="wraith">Give it back.</span>" The translucent limbs converge on you. <</if>> <br><br> <<if Time.isBloodMoon()>> <<link [[Next|Wraith Caught]]>><</link>> <<else>> <<link [[Next|Wraith Mimic Fight]]>><</link>> <</if>> <br><<effects>> You cuddle Robin, but <<his>> hands continue to wander and grope. <<He>> pulls you closer. <br><br> <<link [[Insist on just cuddling|Wraith Mimic Robin Bed]]>><<trauma -6>><<stress -12>><</link>><<llove>><<ldom>><<ltrauma>><<lstress>> <br> <<link [[Give in|Wraith Mimic Fight]]>><<set $sexstart to 1>><</link>><<gdom>> <br><<effects>><<set $sleepWraith to true>> <<wearoutfit>> You snuggle under the covers with Robin. <br><br> <<generateSleepLinks "Sleep">> <<link [[Climb out of bed|Wraith Mimic Robin Refuse]]>><<storeon "bed">><<set $wardrobe_location to "wardrobe">><<loadTempHairStyle>><<unset $sleepWraith>><</link>><<effects>><<unset $robinbed>> You try to climb out of bed, but a hand grabs you. Robin pulls you back to the bed with one hand and pins you down with the other. <<He>> strokes your cheek with a third hand. <br><br> Except that's not a hand. Many long, translucent limbs are pinning you to the bed. <br><br> You see <<his>> skin ripple, like wax melting down a candle. <<His>> arms take on an unnatural, ivory pallor. <<endevent>><<generateWraith 1 true>><<initWraith "abomination">> <br><br> This isn't Robin. <<trauma 12>><<ggtrauma>><<set $wraith.revealed to true>> <br><br> "<span class="wraith">You built your cage, now lie in it,</span>" <<he>> hisses. "<span class="wraith">Lie until you forget the truth.</span>" The translucent limbs converge on you. <br><br> <<link [[Next|Wraith Mimic Fight]]>><</link>> <br><<effects>> <<if $sexstart is 1>> <<set $sexstart to 0>> <<consensual>> <<set $consensual to 1>> <<neutral 1>> <<maninit>> <<set $wraith.type to "man">><<set $wraith.gen to "man">> <<switch $wraith.mimic>> <<case "Kylar">> <<He>> pulls you into the alley, then around another corner, away from prying eyes. There's a mattress already here. Kylar collapses on it, pulling you down atop <<him>>. <<case "Robin">> <<npckiss>><<unset $robinbed>> <</switch>> <<set $speechdisable to 1>> <<elseif $struggle_start is 1>> <<set $combat to 1>> <<controlloss>> <<violence 1>> <<molested>> <<if $player.penisExist>> <<set $struggle.penis.creature to "pale slime">><<set $penisuse to "struggle">><<set $penisstate to "struggle">><<set $struggle.enemy[0].location to "penis">> <<else>> <<set $struggle.vagina.creature to "pale slime">><<set $vaginause to "struggle">><<set $vaginastate to "struggle">><<set $struggle.enemy[0].location to "vagina">> <</if>> <<unset $struggle_start>> <<elseif $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<if $wraith.revealed>> <<set $enemytype to $wraith.type>> <<else>> <<set $wraith.type to "man">><<set $wraith.gen to "man">> <<maninit>><<set $enemyhealth to 600>><<set $enemyhealthmax to 600>> <</if>> <<set $speechdisable to 1>> <</if>> <<effectsWraith>> <<if $wraith.revealed>> <<switch $wraith.type>> <<case "man">> <<if _combatend>> <span id="next"><<link [[Next|Wraith Mimic Fight Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Wraith Mimic Fight]]>><</link>></span><<nexttext>> <</if>> <<case "tentacles">> <<if $tentacles.active lte ($tentacles.max / 2)>> <span id="next"><<link [[Next|Wraith Mimic Fight Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Wraith Mimic Fight]]>><</link>></span><<nexttext>> <</if>> <<case "slime">> <<if $struggle.done gte $struggle.number>> <span id="next"><<link [[Next|Wraith Mimic Fight Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Wraith Mimic Fight]]>><</link>></span><<nexttext>> <</if>> <</switch>> <<else>> <<if $enemyhealth lte ($enemyhealthmax / 2)>> <span id="next"><<link [[Next|Wraith Mimic Fight Revealed]]>><<set $phase to 1>><</link>></span><<nexttext>> <<elseif $enemyarousal gte $enemyarousalmax>> <span id="next"><<link [[Next|Wraith Mimic Fight Revealed]]>><<set $phase to 2>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Wraith Mimic Fight]]>><</link>></span><<nexttext>> <</if>> <br> <</if>><<effects>> <<if $phase is 1>> <<His>> head snaps back at an unnatural angle. You wince. <<His>> arms hang down, limp. <br><br> <<His>> skin turns more and more pale as you stare. Slowly, <<he>> rights <<his>> head to look at you with a manic grin. <<else>> As you think <<hes>> about to reach climax, <<he>> laughs in a voice that isn't <<hers>>. <<if $wraith.seen gte 3>> It's a voice that fills you with dread. You instinctively push yourself away. <<else>> You freeze up. <</if>> <br><br> <<His>> skin begins to turn pale. <<His>> eyes flash a bright <<wraithEyes>>, and a baleful white glow surrounds <<him>>. <<rainWraith true>> <</if>> <br><br> This isn't $wraith.mimic. <<trauma 24>><<gggtrauma>><<set $wraith.revealed to true>> <br><br> <<silently>><<endcombat>><</silently>> <<generateWraith 1 true>><<initWraith "abomination">> <<if $phase is 1>> <<set $enemyhealth -= 200>> <<else>> <<set $enemyarousal += 200>> <</if>> <<if $wraith.state is "haunt">> <<if $wraith.mimic is "Eden">> "<span class="wraith">Vulture.</span>" <<elseif $wraith.mimic is "Robin">> "<span class="wraith">We all have something to protect.</span>" <<elseif $wraith.mimic is "Gwylan">> "<span class="wraith">Bodies. Vessels.</span>" <<else>> "<span class="wraith">Give it back.</span>" <</if>> <<elseif $wraith.state is "despair">> <<if C.npc["Ivory Wraith"].lust gte 12>> "<span class="wraith"><<pcPetname "Wraith">>. It's so cold without it... keep me warm.</span>" <<else>> "<span class="wraith">Where is it? Have you seen it? My necklace...</span>" <</if>> <<elseif $wraith.offspring is "dead" and $settings.tentaclesEnabled>> "<span class="wraith">You let them die. We will make more.</span>" <<elseif $wraith.offspring is "sold" and $settings.tentaclesEnabled>> "<span class="wraith">You threw them away. We will make more.</span>" <<else>> "<span class="wraith">Carnal lust. Passion. Beautiful. <<pcPetname "Wraith">>.</span>" <</if>> <br><br> <<startWraith>> <br><br> <<if Time.isBloodMoon()>> <<link [[Next|Wraith Caught]]>><</link>> <<else>> <<link [[Next|Wraith Mimic Fight]]>><</link>> <</if>> <br><<effects>> <<if $wraith.type is "man" and $enemyhealth lte 0>> The <<person>> looks down at you in shock as <<he>> staggers backwards. <<if $wraith.gen is "abomination">> The tentacles drop lifelessly to the ground, and sublimate into a pink mist. <<elseif $wraith.gen is "arms">> <<His>> extra arms fold back in. <</if>> <<His>> head snaps back, and <<he>> dissipates into nothingness with a brief shriek that echoes in your mind. Your ears ring, and you think you hear laughter. "<span class="wraith">I am everyone. You will never escape me, <<pcpetname "Wraith">>.</span>" <br><br> <<tearful>> you look around, trying to make sure <<hes>> really gone. <<set $wraith.defeated++>> <<else>> <<ejacW>> <<kissWraith>> <br><br> <<He>> breaks off and gives you a regal bow as <<he>> vanishes in a torrent of water, and <<his>> laughs echo between your ears. "<span class="wraith">Such magnificent lust. Perhaps I will visit <<nnpc_him $wraith.mimic>> next.</span>" <br><br> <<tearful>> you look around, trying to make sure <<hes>> really gone. <</if>> <<clotheson>> <<endcombat>> <<exitWraith>><<effects>> Without a second thought, you<<if $phase is 1>> jump out and<</if>> break out into a run. You hear a terrible blaring screech from behind you, getting closer and closer. <br><br> You hear a harsh whipping sound. A pale tendril springs from a drainage grate, and lashes for your legs. <<if $athleticsSuccess>> <span class="green">You jump over it at the last possible moment, and keep running.</span> The noise grows more distant. <br><br> You turn a corner, panting. It likely won't give up that easily. <br><br> <<set $wraith.hunt -= 2>> <<exitWraith>> <<else>> You try to jump over it, <span class="red">but it catches you.</span> The ground hurdles towards your face. Your stomach rises to your throat as you're flipped upside down. <br><br> A pale visage materialises before you. <<generateWraith>><<initWraith "abomination">> <<startWraith>> <br><br> <<link [[Next|Wraith Caught]]>><<set $wraith.exit to "town">><</link>> <br> <</if>><<effects>> It hasn't seen you yet. You frantically look for a place to hide. Your eyes land on <<if $location is "park">>a large bush<<else>>an empty dumpster<</if>>. <br><br> You vault into it as quietly as you can. The <<print Weather.precipitation>> starts to become heavier. You sit and wait, daring a peek outside every few minutes. <br><br> Your ears begin to ring. Through the tiny gap, you see a long, white robe dragging against the ground. <br><br> <<if $rng gte 51 or !$settings.slimesEnabled>> <<if numberOfEarSlime()>> <span class="red">You feel the slime in your head make a strange noise, as if calling out to something.</span> <br><br> <</if>> <<link [[Hold your breath and stay calm|Wraith Hide Hold]]>><</link>><<willpowerdifficulty 1 $willpowermax>> <br> <<else>> You feel something prod your rear. You slowly look behind you, as quiet as you can manage. A small pale slime has started to crawl on you. <br><br> <<link [[Keep it quiet|Wraith Hide Struggle]]>><<set $struggle_start to 1>><</link>> <br> <</if>> <<link [[Jump out and run|Wraith Run]]>><<set $phase to 1>><</link>><<athleticsdifficulty 800 1500>> <br><<effects>> You slowly take in a breath, and hold it. You hope it can't hear you. <<if $willpowerSuccess>> The white cloth makes no sound as it drags past the <<if $location is "park">>bushes<<else>>dumpster<</if>>. It isn't even slowing down. <br><br> You don't dare move for a long while. You wait, but you don't know for how long. Eventually, you hazard a peek. <br><br> <<if $rng lte 15>> <span class="red">You see nothing but a pair of glowing <<wraithEyes>> eyes staring directly into yours, only inches away.</span> You're pulled out violently, and slammed into the ground. <<pain 4>><<gpain>> <br><br> <<generateWraith 1 true>><<initWraith "abomination">> <<startWraith>> <br><br> <<link [[Next|Wraith Caught]]>><</link>> <br> <<else>> <span class="green">You don't see anyone.</span> You slip out, taking one last look around. You're safe, if only for a precious moment. <<stress -3>><<lstress>> <<set $wraith.hunt -= 2>> <br><br> <<exitWraith>> <</if>> <<else>> You try not to think about the other ways it could find you. <span class="red">Like the <<if numberOfEarSlime()>>slime<<else>>visions<</if>> in your head.</span> Your breathing grows heavier. You begin to panic. <<stress 6>><<gstress>> <br><br> Your vision begins to get blurry. You're tearing up, and choking back a sob. Your breathing is deafening, and only causing you to panic further. <<stress 12>><<ggstress>> <br><br> Even with your hand over your mouth, it's so loud. You inhale sharply, and hold it. <br><br> You still hear heavy breathing. It's low, and almost sounds like a gurgle. From right next to you. <br><br> Your entire body goes numb with fear. You barely manage to turn your head, and come face to face with a pale visage. You don't get the chance to scream. <br><br> You're violently thrown out. It floats out after you. <<generateWraith 1 true>><<initWraith "abomination">> <<startWraith>> <br><br> <<link [[Next|Wraith Caught]]>><</link>> <br> <</if>><<effects>> <<if $struggle_start is 1>> <<struggle_init>> <<set $struggle.creature to "pale slime">> <<struggle_creatures 1 2>> <<set $combat to 1>> <<controlloss>> <<violence 1>> <<molested>> <<if $settings.analEnabled>> <<set $struggle.anus.creature to "pale slime">><<set $anususe to "struggle">><<set $anusstate to "struggle">><<set $struggle.enemy[0].location to "anus">> <</if>> <<unset $struggle_start>> <</if>> <<struggle>> <<if $struggle.done gte $struggle.number>> <span id="next"><<link [[Next|Wraith Hide Struggle End]]>><</link>></span> <br> <<else>> <span id="next"><<link [[Next|Wraith Hide Struggle]]>><</link>></span> <br> <</if>><<effects>> The slime slips away without a sound. <<tearful>> you peek outside. <br><br> You don't see anyone. You're safe, if only for a precious moment. <<stress -3>><<lstress>> <<set $wraith.hunt -= 2>> <br><br> <<clotheson>> <<endcombat>> <<exitWraith>><<effects>> You focus your mind on the abomination emerging from the <<= $location is "sewers" ? "canal" : "manhole">>, then make an intricate gesture with your hand. <span class="green">The pale tentacle shimmers and recoils violently,</span> then retreats from you as if burned. <br><br> In the distance, something inhuman howls. You should have some breathing room, at least for now. <<stress -3>><<lstress>> <<set $wraith.hunt -= 2>> <br><br> <<exitWraith>><<effects>> <<physiquedifficulty 5000 16000 true>> You grab the tentacle and try calm it. <<deviancy1>> <<if $physiqueSuccess>> It thrashes against you, <span class="green">then slows to a rhythmic, thrusting movement.</span> Before you realise what it is doing, the tentacle ejaculates slime all over your hands. <<bodyliquid "leftarm" "goo">><<bodyliquid "rightarm" "goo">> <br><br> <<if $location is "sewers">> <<water>> Worn out, the pale tentacle retracts as several more emerge from the canal, wrapping around your limbs and waist and pulling you into the water. They're easily able to hold your weight. <<else>> Worn out, the pale tentacle retracts as several more emerge from the manhole, wrapping around your limbs and waist and pulling you underground. They're easily able to hold your weight. <</if>> <br><br> <<link [[Next|Wraith Tentacle Rape]]>><<set $molestationstart to 1>><</link>> <br> <<else>> As it thrashes against your grip, <span class="red">it gets under your leg and trips you.</span> <<gpain>><<pain 5>><<gtrauma>><<gstress>><<stress 6>><<trauma 6>> <br><br> You feel the sense of dread building, and can't shake the notion that whatever's hunting you knows exactly where you are now. <<set $wraith.hunt++>> <br><br> <<exitWraith>> <</if>><<if $molestationstart is 1>> <<set $molestationstart to 0>> <<set $combat to 1>> <<set $enemytype to "tentacles">> <<controlloss>> <<molested>> <<tentaclestart 8 20 "tentacle" "pale">> <</if>> <<statetentacles>> <<effects>> <<effectstentacles>> <<tentacles>> <<actionstentacles>> <<if $tentacles.active lte ($tentacles.max / 2)>> <span id="next"><<link [[Next|Wraith Tentacle Sex Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Wraith Tentacle Rape]]>><</link>></span><<nexttext>> <</if>><<effects>> <<if $location is "sewers">> The pale tentacles recoil from you and disappear into the canal. <<tearful>> you climb out of the water. <<else>> The pale tentacles recoil from you and disappear into the sewer. <</if>> You're not sure why, but you feel as though whatever's hunting you has lost some progress. <<set $wraith.hunt -= 2>> <<clotheson>> <<endcombat>> <<exitWraith>><<effects>> You pull away from the pale tentacle, hoping to shake it off. <span class="red">It holds firm.</span> <br><br> The vision of the pale figure in your head grows more and more intense, and you feel a warmth building up. The tentacle ejaculates slime all over your leg, and quickly retreats. The slime smells strange. <<ghallucinogens>> <br><br> The dread builds, and you can't shake the notion that whatever's hunting you knows exactly where you are now. <<set $wraith.hunt++>> <br><br> <<exitWraith>><<effects>> <<if $struggle_start is 1>> <<struggle_init>> <<set $struggle.creature to "pale slime">> <<struggle_creatures 1 2>> <<set $combat to 1>> <<controlloss>> <<violence 1>> <<molested>> <<unset $struggle_start>> <<set $timer to 7>> <</if>> <<if $timer is 1>> <<struggle_add 2 1>> <span class="pink">Two more slimes drop from the ceiling!</span> <br><br> <</if>> <<struggle>> <<if $struggle.done gte $struggle.number>> <span id="next"><<link [[Next|Wraith Sewers Struggle End]]>><</link>></span> <br> <<else>> <span id="next"><<link [[Next|Wraith Sewers Struggle]]>><</link>></span> <br> <</if>><<effects>> The slime slips away without a sound. <<tearful>> you peek around. <br><br> You don't see anything. You're safe, if only for a precious moment. <<stress -3>><<lstress>> <<set $wraith.hunt -= 2>> <br><br> <<clotheson>> <<endcombat>> <<exitWraith>><<effects>> It moves in a hypnotic pattern, leaving phantom shapes in the air. A warmth builds in your head. You fall to your knees without resistance. <br><br> <<generateWraith 1 true>> <<initWraith "arms" "abomination">> <<if $wraith.state is "haunt" or $wraith.offspring is "dead">> A pair of pale hands grabs your head. <<if $wraith.gen is "arms">> Followed by many more. You look up and see several extra arms and hands springing from <<his>> back. <<else>> Something slithers around your legs and arms. <</if>> "<span class="wraith">Drown with me.</span>" <<else>> A pale hand lifts your chin. Your mind goes blank as you look into <<his>> eyes. <<if $wraith.gen is "arms">> Many additional pairs of arms emerge from <<his>> back. <<else>> Something slithers around your legs and arms. <</if>> "<span class="wraith">Like a puppet on strings.</span>" <</if>> <br><br> <<if $wraith.state is "haunt" or $wraith.offspring is "dead">> <<set $enemyanger -= 20>> <<link [[Next|Wraith Caught]]>><</link>> <<else>> The figure begins to rapidly dissipate into white mist from the bottom up. You find your mouth hanging open. You can't feel anything. <br><br> <span class="red">The mist trails into your mouth, making your entire body feel cold and rigid.</span> The figure is gone. <<if $location is "lake_ruin">> You right yourself in the water, but can't feel your arms. <<else>> You stand up, but can't feel your legs. <</if>> <br><br> <<link [[Next|Wraith Snatched Intro]]>><<endcombat>><<endWraith>><<wraithPossess>><</link>> <</if>> <br><<effects>> <<if $willpowerSuccess is 1>> You try to tear your eyes away from the pale figure. With a great deal of effort, you turn away. <span class="green">The ringing stops, and you regain feeling in your legs.</span> Even with your back to it, you still feel as though you can see it behind you. <br><br> When you turn around again, it's gone. Laughter echoes between your ears. <<switch $location>> <<case "town" "park" "alley">> The streets are still empty, and baleful red light shines down on you. You're not in the clear yet. <<case "forest" "lake">> The forest grows quiet. You see shapes between the trees, and red moonlight covers everything in a red glow. You're not in the clear yet. <<case "sewers">> The sewers are still empty, and the air is uncomfortably chilly. You're not in the clear yet. <</switch>> <br><br> <<set $wraith.hunt to 6>> <<set $forestHunter to "Ivory Wraith">> <<set $wraith.evaded++>> <<exitWraith>> <<else>> Even with your eyes closed, <span class="red">you still see it.</span> Its arms move in a hypnotic pattern, leaving phantom shapes in the air. Your whole body goes numb. <<willpower 3>><<gwillpower>> <br><br> <<generateWraith 1 true>> <<initWraith "abomination">> <<if $wraith.state is "haunt" or $wraith.offspring is "dead">> A pair of pale hands grabs your head. <<if $wraith.gen is "arms">> Followed by many more. You look up and see several extra arms and hands springing from <<his>> back. <<else>> Something slithers around your legs and arms. <</if>> "<span class="wraith">Flail and writhe, you'll only drown faster.</span>" <br><br> <<link [[Next|Wraith Caught]]>><</link>> <br> <<else>> A pale hand lifts your chin. Your mind goes blank as you look into <<his>> eyes. <<if $wraith.gen is "arms">> Many additional pairs of arms emerge from <<his>> back. <<else>> Something slithers around your legs and arms. Pale tentacles have completely surrounded you. <</if>> "<span class="wraith">You will learn.</span>" <br><br> <<link [[Next|Wraith Caught]]>><</link>> <br> <</if>> <</if>><<effects>> You close your eyes and whisper a prayer. <span class="red">You still see it through your closed eyelids.</span> <br><br> It frowns at you. "<span class="wraith">No one will answer. A merciful silence.</span>" <br><br> Your eyes snap open. The figure is gone, but you hear laughter echo in your head. <<switch $location>> <<case "town" "park" "alley">> The streets are still empty, and baleful red light shines down on you. You're not in the clear yet. <<case "forest" "lake">> The forest grows quiet. You see shapes between the trees, and red moonlight covers everything in a red glow. You're not in the clear yet. <<case "sewers">> The sewers are still empty, and the air is uncomfortably chilly. You're not in the clear yet. <</switch>> <br><br> <<set $wraith.hunt to 8>> <<set $forestHunter to "Ivory Wraith">> <<set $wraith.evaded++>> <<exitWraith>><<effects>> <<if $struggle_start is 1>> <<set $combat to 1>> <<controlloss>> <<violence 1>> <<molested>> <<if $player.penisExist>> <<set $struggle.penis.creature to "pale slime">><<set $penisuse to "struggle">><<set $penisstate to "struggle">><<set $struggle.enemy[0].location to "penis">> <<else>> <<set $struggle.vagina.creature to "pale slime">><<set $vaginause to "struggle">><<set $vaginastate to "struggle">><<set $struggle.enemy[0].location to "vagina">> <</if>> <<unset $struggle_start>> <<elseif $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<set $enemytype to $wraith.type>> <</if>> <<set $rescue to 0>> <<if $location is "lake_ruin">> <<underwater>> <</if>> <<effectsWraith>> <<switch $wraith.type>> <<case "man">> <<if _combatend or ($pain gte 100 and $willpowerpain is 0)>> <span id="next"><<link [[Next|Wraith Caught Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Wraith Caught]]>><</link>></span><<nexttext>> <</if>> <<case "tentacles">> <<if $tentacles.active lte ($tentacles.max / 2)>> <span id="next"><<link [[Next|Wraith Caught Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Wraith Caught]]>><</link>></span><<nexttext>> <</if>> <<case "slime">> <<if $struggle.done gte $struggle.number>> <span id="next"><<link [[Next|Wraith Caught Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Wraith Caught]]>><</link>></span><<nexttext>> <</if>> <</switch>> <br><<effects>> <<if !$wraithCount>> <<if C.npc["Ivory Wraith"].lust lte 10>> <<set $wraithCount to 1>><<set $wraithMax to 1>> <<else>> <<set $wraithCount to 0>> <<set $wraithMax to 3>> <<if $wraith.offspring is "dead">> <<set $wraithMax++>> <</if>> <<if !$settings.tentaclesEnabled>> <<set $wraithMax -->> <</if>> <</if>> <</if>> <<if $wraith.type is "man" and $enemyhealth lte 0>> <<if $location is "lake_ruin">> The figure looks down at you in shock as <<he>> staggers backwards. <<if $wraith.gen is "abomination">> The tentacles drop lifelessly into the dark water. <<elseif $wraith.gen is "arms">> <<His>> extra arms fold back in. <</if>> <<His>> head snaps back, and <<he>> dissipates into nothingness with a brief shriek that echoes in your mind. The water rushes in to fill the empty space, sending a shockwave out that leaves you tumbling in the water. Your ears ring, and you think you hear laughter. "<span class="wraith">Just breathe.</span>" <br><br> <<tearful>> you try to get your bearings. <<else>> The <<person>> looks down at you in shock as <<he>> staggers backwards. <<if $wraith.gen is "abomination">> The tentacles drop lifelessly to the ground, and sublimate into a pink mist. <<elseif $wraith.gen is "arms">> <<His>> extra arms fold back in. <</if>> <<His>> head snaps back, and <<he>> dissipates into nothingness with a brief shriek that echoes in your mind. Your ears ring, and you think you hear laughter. "<span class="wraith">I am everywhere. You will never escape me.</span>" <br><br> <<tearful>> you look around, trying to make sure <<hes>> really gone. <</if>> <<set $wraith.defeated++>> <<set $wraith.timer to -30>> <<set $wraith.hunt to 0>> <<clotheson>> <<endcombat>> <<exitWraith>> <<elseif $location is "forest" and $rescue is 1 and gwylanCanRescueFromWraith()>> The figure growls as <<he>> looks to the treeline. <<He>> begins to rapidly dissipate into white mist from the bottom up. You find your mouth hanging open. You can't feel anything. <br><br> <span class="red">The mist trails into your mouth, making your entire body feel cold and rigid.</span> The figure is gone. You stand up, but can't feel your legs. <br><br> <<silently>><<clotheson>><<endcombat>><</silently>><<wraithPossess>> <<if $gwylanRescue?.seen.includes("Wraith")>> <<set $wraith.exit to "forest">> <<npc Gwylan>><<person1>> Three green eyes stare from the shadows. A shape like a massive fox darts away, before reappearing somewhere else. It's all around you. <br><br> A branch breaks, and your body turns just in time to be tackled by something. <span class="green">It's Gwylan.</span> <<if npcIsPregnant("Gwylan")>> Your body rolls with <<him>>, but throws <<him>> off. <<Hes>> sent reeling, but recovers quickly. <<else>> Your body rolls with <<him>>, before kicking both of your legs into Gwylan's gut. <<Hes>> sent reeling, but recovers quickly. <</if>> <br><br> Your body and Gwylan stare each other down. The storm becomes more intense, and lightning strikes a tree off in the distance. <br><br> "I know you can hear me in there, <<pcpetname "Gwylan" "name">>. I'll do my best, but..." <<His>> voice trembles. "I won't be able to get you out by myself. I need you to fight it, however you can." <br><br> <<if $hypnosis_traits.devotion gte 4>> You feel like a fly trapped between two spiders. <br><br> <</if>> Gwylan runs towards you! <br><br> <<if !$wraithWillMessage>> <<set $wraithWillMessage to true>> <i><span class="red">Fully restore your </span><span class="green">control</span><span class="red"> to take back your body.</span></i> <br><br> <</if>> <span class="nextLink"><<link [[Fight|Wraith Snatched Gwylan Fight]]>><<set $fightstart to 1>><</link>></span> <br> <<else>> <<set $wraith.exit to "Gwylan">> Gwylan emerges from the treeline. <<nnpc_Hes "Gwylan">> wearing a green hooded cloak. "There you are! <<if $gwylan.timer.bloodVisit>> I got worried after you left the shop earlier. Then I heard you scream. <<elseif $gwylan.timer.bloodKnock>> I heard someone knocking at the shop, and I thought it might have been you. Then I heard you scream. <<else>> I heard you scream. <</if>> I dropped everything and..." <<nnpc_He "Gwylan">> looks you over, and steps closer. "Oh dear." <br><br> You stare at <<nnpc_him "Gwylan">>. You try to open your mouth, <span class="red">but your body doesn't obey</span>. <br><br> <<include "Wraith Snatched Intro">> <</if>> <<elseif $pain gte 95 and $willpowerpain is 0>> <<set $wraith.hunt to 0>> <span class="red">You're too battered and bruised to resist.</span> The figure begins to rapidly dissipate into white mist from the bottom up. You find your mouth hanging open. You can't feel anything. <br><br> <span class="red">The mist trails into your mouth, making your entire body feel cold and rigid.</span> The figure is gone. <<if $location is "lake_ruin">> You right yourself in the water, but can't feel your arms. <<else>> You stand up, but can't feel your legs. <</if>> <br><br> <<link [[Next|Wraith Snatched Intro]]>><<endWraith>><<clotheson>><<endcombat>><<wraithPossess>><</link>> <br> <<elseif $enemyarousal gte $enemyarousalmax or ($wraith.type is "tentacles" and $tentacles.active lte ($tentacles.max / 2)) or ($wraith.type is "slime" and $struggle.done gte $struggle.number)>> <<set $wraithCount++>> <<ejacW>> <<if $wraithCount gte $wraithMax>> <<kissWraith "stress">> <br><br> <<if $moonstate is "morning" and Time.hour gte 6>> <<He>> floats away from you, looking to the sky as the sun comes up. <<He>> sneers. "<span class="wraith">Alas, time is fleeting. Worry not, <<pcpetname "Wraith">>, we'll meet again soon.</span>" <br><br> <<His>> glow begins to dim, and <<he>> slowly melts away in a torrent of water. The dread slowly passes. <span class="blue"><i>You're safe until the next blood moon.</i></span> <br><br> <<tearful>> you stand, wondering if it's really over. <<set $wraith.hunt to 0>> <<clotheson>> <<endcombat>> <<exitWraith>> <<clearWraith>> <<elseif $stress gte $stressmax>> <<set $wraith.hunt to 0>> This is too much for you. You feel your consciousness slipping. The figure begins to rapidly dissipate into white mist from the bottom up. You find your mouth hanging open. You can't feel anything. <br><br> <span class="red">The mist trails into your mouth, making your entire body feel cold and rigid.</span> The figure is gone. <<if $location is "lake_ruin">> You right yourself in the water, but can't feel your arms. <<else>> You stand up, but can't feel your legs. <</if>> <br><br> <<link [[Next|Wraith Snatched Intro]]>><<endWraith>><<clotheson>><<endcombat>><<wraithPossess>><</link>> <br> <<elseif $wraith.state is "haunt" or $wraith.offspring is "dead">> "<span class="wraith">Your will is strong. But you will bend, or you will break.</span>" <br><br> <<if $location is "lake_ruin">> With a bright flash, <<he>> vanishes. You feel lewd energy linger in the water, and <<his>> laughs echo between your ears. <br><br> <<tearful>> you try to get your bearings. <<else>> <<He>> breaks off and gives you a regal bow as <<he>> vanishes in a torrent of water, and <<his>> laughs echo between your ears. <br><br> <<tearful>> you look around, trying to make sure <<hes>> really gone. <</if>> <<set $wraith.timer -= 20>> <<set $wraith.hunt to 0>> <<clotheson>> <<endcombat>> <<exitWraith>> <<else>> <<if $location is "lake_ruin">> With a bright flash, <<he>> vanishes. You feel lewd energy linger in the water, and <<his>> laughs echo between your ears. "<span class="wraith">Such magnificent lust. I like you.</span>" <br><br> <<tearful>> you try to get your bearings. <<else>> <<He>> breaks off and gives you a regal bow as <<he>> vanishes in a torrent of water, and <<his>> laughs echo between your ears. "<span class="wraith">Such magnificent lust. I like you.</span>" <br><br> <<tearful>> you look around, trying to make sure <<hes>> really gone. <</if>> <<set $wraith.timer -= 20>> <<set $wraith.hunt to 0>> <<clotheson>> <<endcombat>> <<exitWraith>> <</if>> <<else>> <<continueWraith>> <br><br> <<link [[Next|Wraith Caught]]>><</link>> <br> <</if>> <</if>><<set $outside to 0>><<set $location to "home">><<effects>><<seenPassage>> You walk up to the mirror and gaze into its depths. It no longer reflects, but glows with a curious light. It's a bright white. Like snow. <br><br> The light begins to take shape. A pale hand gently presses up against the surface from the other side. A pale figure stares back, smiling. Its <<wraithEyes>> eyes hold your gaze. <<if $wraith.seen gte 3 or $wraithPrison>> <span class="blue">You recognise it.</span> You feel as though you should be full of dread, but you aren't. <<else>> You feel like you should be scared, but you aren't. <</if>> <br><br> <<link [[Reach out|Christmas Mirror Reach]]>><</link>><<handholdingvirginitywarning>> <br> <<link [[Watch|Christmas Mirror Watch]]>><</link>> <br> <<link [[Step away|Christmas Mirror Leave]]>><</link>> <br>You step away from the mirror. The next time you blink, it's returned to normal. <br><br> <<link [[Next|Bedroom]]>><<endevent>><</link>> <br>You keep your eyes fixed on the hand. Its fingers slowly creep through the surface, revealing gnarled claws as they gingerly grip the frame. <br><br> The shape behind it flickers. The claws vanish, replaced by supple skin. You look up to see the figure still smiling warmly at you. It holds out its other hand, without a word. <br><br> <<link [[Take the hand|Christmas Mirror Reach]]>><</link>><<handholdingvirginitywarning>> <br> <<link [[Step away|Christmas Mirror Leave]]>><</link>> <br><<effects>> <<generateWraith 1 true>> <<set $pronoun to C.npc["Ivory Wraith"].gender>> You reach forward, taking the hand in yours. <<takeHandholdingVirginity "Ivory Wraith" "consensual">> <br><br> The skin ripples, changing between a ghastly pale and a normal tone. <br><br> <<if $seabird_lullaby gte 2>> <span class="teal"><<He>> hums Seabird's Lullaby.</span> <<else>> <<set $seabird_lullaby to 1>> <span class="teal"><<He>> hums a familiar tune.</span> <</if>> <br><br> <<Hes>> cloaked in a white robe, standing under a red moon. <<He>> has <<his>> other arm spread out to you in a welcoming gesture. You feel profoundly calm as you take a step forward. <br><br> <<set $christmas_wraith to true>> <<freezePlayerStats>> <<set Weather.Temperature.set(-15)>> <<rainWraith>> <<link [[Step in (0:05)|Christmas Mirror 2]]>><<pass 5>><</link>> <br><<effects>><<set $location to "old_temple">><<set $outside to 0>> You're surrounded by trees, all covered in snow. You look down to see a bed of coals at your feet. The red moon vanishes. Your feet burn. You collapse forward, into <<his>> arms. <<He>> embraces you. <<Hes>> congratulating you, smiling and laughing. You're crying. <br><br> "You did it! I knew you could do it!" <<He>> speaks in a language you don't know, and yet, you find yourself understanding the words. Another voice speaks in unison. <br><br> "<span class="wraith">We may never reach the bottom. We can only hope.</span>" <br><br> The pale figure holds you close. <<if ["haunt", "despair"].includes($wraith.state)>> <<His>> eyes flicker red for a brief moment, before returning to a calm blue. <<else>> <<His>> deep blue eyes fill you with an inner peace. <</if>> "<span class="wraith">No one deserves to die in a cage.</span>" <br><br> The world around you begins to shift. <br><br> <<link [[Next|Christmas Mirror 3]]>><<pass 5>><</link>> <br><<effects>> You're in the middle of a large cathedral. Tables are set up for a great feast. All around you, faces you <<if $wraithPrison and $wraithPrison.vision is true>> vaguely <<else>> don't <</if>> recognise smile and make merriments. They're all surrounded by a pale glow. The longer you look, the more translucent they become. <br><br> "<span class="wraith">But for now, we are whole again. Enjoy it. Like sand slipping through our fingers.</span>" <br><br> You find yourself returning the embrace. You don't want to let go. The inner warmth begins to fade, and the faces around you become unrecognisable. They begin to distort into unnatural shapes. You're instantly filled with panic. The pale figure slips backwards, out of your reach. <br><br> The tapestries on the walls peel away, revealing utter emptiness as the figures fall to the ground, clutching the sides of their heads where their ears used to be. A bell tolls. <br><br> <<His>> skin turns marble white once again, and <<he>> begins to fade away. The faint <<wraithEyes>> light of <<his>> eyes flicker out in a rapidly expanding darkness. <br><br> "<span class="wraith">Remember us, <<pcpetname "Wraith" "nice">>, not as we are, but as how we were.</span>" <br><br> As the light draws away, you begin to fall. You can't hear wind in your ears, or against your skin, but somehow you know you're falling. Snowflakes and shards of glass brush past, mingling and dissolving. <br><br> <<link [[Reach out|Christmas Mirror 4]]>><</link>> <br> <<link [[Fall|Christmas Mirror Fall]]>><</link>><<effects>> You reach your arm out. You're not sure what you're reaching for, but you feel a presence approach. It doesn't beckon you, but neither does it push you away. <br><br> <<if $wraithPrison and $wraithPrison.vision is true>> <<link [[Apologise|Christmas Mirror 5]]>><<set $phase to 1>><</link>> <<else>> <<link [[Ask|Christmas Mirror 5]]>><</link>> <</if>> <br> <<link [[Fall|Christmas Mirror Fall]]>><<set $phase to 1>><</link>> <br><<effects>> You open your mouth. <<if $phase is 1>> You try to apologise. For what it's been through, for what it's lived through, for all the ways it's suffered. For all the things you've done. <<else>> You try to ask why. Why it follows you, why it torments you. Why it seeks you specifically, and why it brought you here. <</if>> <br><br> The words fail to form. But still, a response comes. <br><br> "<span class="wraith">I can't answer,</span>" <<he>> murmurs. <<He>> remains silent for a long time. "<span class="wraith">I would be wrong.</span>" <<lobsession 2>> <br><br> <<link [[Fall|Christmas Mirror Fall]]>><<set $phase to 1>><</link>> <br><<effects>> <<if $phase is 1>> You let your arm drop back to your side. <</if>> You fall, and you fall, and further you fall still. You're not sure if you're falling down anymore. You're not sure where down is. <br><br> Your descent is beautiful. <br><br> <<link [[Wake up|Christmas Mirror End]]>><</link>> <br><<set $location to "home">><<set $outside to 0>><<effects>> <<unfreezePlayerStats>> You cry out, and shoot up. You're in your bed, sweating, and breathing heavily. <br><br> You rub the tiredness out of your eyes. You catch a glimpse of yourself in the mirror. You look pale. <<trauma 4>><<gtrauma>> <br><br> <<link [[Next|Bedroom]]>><<endevent>><<endWraith>><</link>> <br><<if $molestationstart is 1>> <<set $molestationstart to 0>> <<violence 1>> <<neutral 1>> <<maninit>> <<stalk_init>> <<set $combatgoal to "confront">> <</if>> <<effects>> <<effectsman>><<man>> <<stateman>> <br><br> <<actionsman>> <<if $stalk_end>> <span id="next"><<link [[Next|Wraith Stalk Finish]]>><<if $feetaction is "confront">><<set $phase to 1>><<else>><<set $phase to 0>><</if>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Wraith Stalk]]>><</link>></span><<nexttext>> <</if>><<effects>> <<if $stalk_end is "escaped">> You slow to a walk. You hear faint laughter around you, but nobody is nearby. <<tearful>> you continue your journey. <br><br> <<clotheson>> <<endcombat>> <<destinationeventend>> <<elseif $stalk_end is "passed">> The mist slowly fades from view. <<tearful>> you continue your journey. <br><br> <<clotheson>> <<endcombat>> <<destinationeventend>> <<elseif $stalk_end is "hide">> The mist slowly fades from view. <<covered>> <<tearful>> you emerge from your hiding place. You continue your journey. <br><br> <<set $stealtextskip to 1>> <<stealclothes>> <<clotheson>> <<endcombat>> <<destinationeventend>> <br> <<elseif $stalk_end is "ambush">> The mist slowly fades from view. <<covered>> <<tearful>> you stand up and brush yourself off. You continue your journey. <br><br> <<set $stealtextskip to 1>> <<stealclothes>> <<clotheson>> <<endcombat>> <<destinationeventend>> <br> <<elseif $stalk_end is "confront">> <<silently>><<endcombat>><</silently>> <<generateWraith 1 true>><<person1>> <<initWraith>><<set $wraith.exit to "town">> The pale figure laughs, leaning forward at an unnatural angle. <<rainWraith true>> <<switch $wraith.gen>> <<case "man">> <<He>> raises <<his>> hand to the air, and an unseen force pushes you to the ground. <<case "tentacles" "abomination" "slimetentacles">> You feel something slithering up your legs. You look down to see a mass of pale tendrils surrounding you! <<case "slime">> <<He>> raises <<his>> hands to the air, and a shimmering purple mass appears above you. A group of pale, undulating slimes jump out! <<case "arms">> A manic grin crosses <<his>> face, and several additional pairs of arms spring from <<his>> back, each one gesturing in strange patterns. <</switch>> <br><br> <<if Time.isBloodMoon()>> <<link [[Next|Wraith Caught]]>><</link>> <<else>> <<link [[Next|Wraith Stalk Attack]]>><</link>> <</if>> <br> <</if>><<effects>> <<if $struggle_start is 1>> <<set $combat to 1>> <<controlloss>> <<violence 1>> <<molested>> <<unset $struggle_start>> <<elseif $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<set $enemytype to $wraith.type>> <</if>> <<set $rescue to 0>> <<effectsWraith>> <<switch $wraith.type>> <<case "man">> <<if _combatend>> <span id="next"><<link [[Next|Wraith Stalk Attack Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Wraith Stalk Attack]]>><</link>></span><<nexttext>> <</if>> <<case "tentacles">> <<if $tentacles.active lte ($tentacles.max / 2)>> <span id="next"><<link [[Next|Wraith Stalk Attack Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Wraith Stalk Attack]]>><</link>></span><<nexttext>> <</if>> <<case "slime">> <<if $struggle.done gte $struggle.number>> <span id="next"><<link [[Next|Wraith Stalk Attack Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Wraith Stalk Attack]]>><</link>></span><<nexttext>> <</if>> <</switch>> <br><<set $outside to 0>><<effects>> <<if $enemyhealth lte 0 and $wraith.type is "man">> The <<person>> looks down at you in shock as <<he>> staggers backwards. <<if $wraith.gen is "abomination">> The tentacles drop lifelessly to the ground, and sublimate into a pink mist. <<elseif $wraith.gen is "arms">> <<His>> extra arms fold back in. <</if>> <<His>> head snaps back, and <<he>> dissipates into nothingness with a brief shriek that echoes in your mind. Your ears ring, and you think you hear laughter. "<span class="wraith">You'll see me soon. I'll see you sooner.</span>" <br><br> <<tearful>> you run, not daring to look back. <<set $wraith.defeated++>> <<else>> <<ejacW>> <<kissWraith>> <br><br> <<He>> breaks off and gives you a regal bow as <<he>> vanishes in a torrent of water, and <<his>> laughs echo between your ears. "<span class="wraith">We'll meet again. We'll meet again. We'll meet.</span>" <br><br> <<tearful>> you look around, trying to make sure <<hes>> really gone. <</if>> <<endRainWraith true>> <<clotheson>> <<endcombat>> <<link [[Next|Forest]]>><<set $forest to 0>><<endWraith>><<set $eventskip to 1>><</link>> <br><<schismStart>> <<set _thermoDisable to true>><<effects>> <<set Weather.set("clear", true, 1000)>> You pick at the shackles binding your legs together. It's how you've passed most of the time, tonight. How could you sleep? Your crude bedroll offers no comfort, and your thoughts stay fixated on the others. <br><br> You can hear people elsewhere. The room must be quite large. It's too dark to see anything. Not too dark to hear the whipping, or the laughing, though. <<gtrauma>><<trauma 6>> <br><br> All you can do now is wait, and pray. <br><br> <<link [[Wait (?:??)|Schism 2]]>><<set $phase to 1>><<trauma 18>><</link>><<gtrauma>> <br> <<link [[Pray (?:??)|Schism 2]]>><<set $phase to 2>><<control 10>><<stress 18>><</link>><<gcontrol>><<gstress>> <br><<set _thermoDisable to true>><<effects>> <<set $phaseWraith to 0>> <<set Time.setTime(5, 22)>> <<if $phase is 1>> You sit and wait, continuing to pick at your leg shackles. You break another fingernail. You move on to the next finger. <br><br> You think about what happened. It's blurred together. You remember making preparations for a ritual, and then screaming. The <<people>> in black robes. Masks with antlers. <br><br> You decide to not think so much, after all. You clutch your necklace. <<else>> You kneel in the cell. It's spacious. You wonder why they aren't keeping multiple people in each cell. <br><br> You place your hands together, and pray for the other members of the order. With any luck, only you and a few others were grabbed. You clutch your necklace. <</if>> <<canvas-model-override "arm_right" "hold">> <br><br> You're glad it wasn't lost in the struggle. You rub the largest sapphire, and find yourself calming down. <<stress -6>><<trauma -6>><<lstress>><<ltrauma>> <br><br> <<generatev1>><<generatev2>><<person1>> As you move your thumb away, you catch the reflection of light in it. You look to the source. Someone's entering the room with a torch. It looks like they're coming up from a large staircase, followed by many black-robed figures. You remember being led upwards with a bag over your head. That must be the entrance. Or exit, if you're lucky. <br><br> The figure begins to light up the sconces along the walls, flooding the room with light. You grab the bars of your cage, and stand. You look around the room again. You can see a few members you know in the other cages. You wince as you recognise a few of them as initiates. You had hoped they only targeted more senior members. <br><br> You see the Cardinal in a far cage, looking around in much the same way as you. You remember how hard <<he>> fought to protect the other members. You're surprised <<he>> can stand. Next to <<him>> is an initiate you'd easily recognise anywhere. You remember being there for <<person2>><<his>> first trial of purity. You remember how happy <<he>> was when <<he>> passed, and how <<he>> ran up and hugged you. <br><br> <<link [[Call out to the Cardinal|Schism 3]]>><<set $phase to 1>><</link>> <br> <<link [[Call out to the initiate|Schism 3]]>><<set $phase to 2>><</link>> <br><<set _thermoDisable to true>><<effects>> <<pass 30>><<pain 3>> <<canvas-model-override "eyes_half" false>> <<if $phase is 1>> You call out to the Cardinal. <<person1>><<He>> immediately locks eyes with you, and gives you a weary smile. <<He>> assures you that <<hes>> fine. <<He>> yells reassurance to the other caged <<people>>, giving them instructions, but is cut off as a black-robed figure slams a torch against the bars. <br><br> The figure yells in a language you don't understand, before unlocking the cage and storming in. The initiate in the next cage screams, helpless to do anything but watch as the Cardinal is beaten, and worse. <<stress 18>><<trauma 12>><<ggstress>><<gtrauma>> <br><br> <<Hes>> dragged out with <<his>> hands bound, clothing torn, and sporting fresh bruises. <<He>> turns to you one last time, and mouths the word "ritual" before being led down the stairs. <<else>> You call out to the initiate. <<person2>><<His>> face lights up as soon as <<he>> sees you. <<He>> calls out your name, and you see tears in <<his>> eyes. You yell reassurances to <<him>> from across the room, and place your palm against the bars of your cage. <<He>> does the same. <br><br> One of the black-robed figures slams the bars of <<his>> cage with a torch. <<He>> immediately stumbles back, landing on <<his>> bottom. The figure yells in a language you don't understand, before unlocking the cage and storming in. The Cardinal in the next cage screams at the figure, spitting threats and attempting to reach through the bars. There's nothing <<person1>><<he>> can do. <br><br> You scream even louder. You beg the figure to take you instead. Your pleas fall on deaf ears. <<pain 10>><<stress 40>><<trauma 24>><<gggstress>><<ggtrauma>> <br><br> <<person2>><<Hes>> dragged out with <<his>> hands bound, clothing torn, and sporting fresh bruises. <<His>> eyes are empty. You yell <<his>> name, but there's no reaction. You slam the bars as <<hes>> led down the stairs. <br><br> The tears come quickly, but you're snapped out of it as the Cardinal calls your name. Through your hysteria, you make out the word "ritual". <</if>> <br><br> The ritual. <br><br> You remember. <br><br> You rub your necklace. <<stress -6>><<trauma -6>><<lstress>><<ltrauma>> <br><br> <<link [[Remember|Schism 4]]>><<endevent>><</link>> <br><<set _thermoDisable to true>><<effects>> <<canvas-model-override "clear">> <<generate1>><<person1>> You were assisting with a ritual when it happened. More specifically, it was a counter-ritual. A sect of the order had gone rogue, and was attempting to commit sacrilege. A summoning, of some kind. The hymns echo in your mind. <br><br> You hope the ritual was finished in your absence. If the heretics were to finish their own ritual... <br><br> You're snapped back again. A masked figure slams your cage with a large rod. You don't know how much time has passed, but many of the cages are now empty. <<stress 6>><<trauma 12>><<awareness 5>><<gstress>><<gtrauma>><<gawareness>> <br><br> <<He>> throws in a clump of a strange purple plant. You recognise it immediately. It's a divine herb, used to grant visions to the faithful. <<He>> yells at you, demanding you consume it. <br><br> <<link [[Eat|Schism Lichen Eat]]>><<pain 2>><<hallucinogen 120>><<trauma 50>><</link>><<ggtrauma>><<gghallucinogens>> <br> <<link [[Refuse|Schism Lichen Refuse]]>><<pain 4>><</link>> <br><<set _thermoDisable to true>><<effects>> <<set Time.setTime(11, 11)>> <<canvas-model-override "arm_right" "hold">> You slowly consume the plant. The figure makes a pleased sound, before moving on to the next cage and repeating the process. <br><br> You watch as other figures do the same, all around the room. You hear a yell, and watch a black-robed figure leap upon an initiate that refused to eat the herb. <<stress 24>><<trauma 24>><<ggstress>><<ggtrauma>> <br><br> You say a prayer, and rub your necklace. <<stress -6>><<trauma -6>><<lstress>><<ltrauma>> <br><br> <<link [[Rest|Schism 5]]>><<endevent>><</link>> <br><<set _thermoDisable to true>><<effects>> <<set Time.setTime(21, 43)>> The figure yells again, and hastily unlocks your cage. You push yourself backwards against the floor, mumbling a prayer to yourself and clutching your necklace. <br><br> <<He>> lifts up your robe, revealing your <span class="lewd">gold chastity belt</span>. <<He>> curses, but you see a grin form from under <<his>> mask. Before you can react, you're struck with the rod. <br><br> <<link [[Everything fades to black...|Schism Lichen Refuse 2]]>><<trauma 60>><<stress 60>><</link>> <br><<set _thermoDisable to true>><<effects>><<canvas-model-override "arm_right" "hold">> <<pain 6>> You awaken with your arms hanging upwards. You look up, and see the floor. <br><br> You're suspended upside-down by your leg shackles. You quickly pat around your neck, feeling a spike of dread. <br><br> ...no, it's still there. <br><br> You hold your necklace. <<stress -6>><<trauma -6>><<lstress>><<ltrauma>> <br><br> Several masked figures enter your cell. You only now notice that your robe is hanging downwards over your belly, totally exposing you from the waist down. Or, in this case, waist up. <br><br> You rush to cover yourself. The figure in front laughs. <<He>> makes a grab for your necklace, which you instinctively expose yourself to clutch away. <<He>> nods to the other figures. <br><br> <<link [[Next|Schism Lichen Refuse 3]]>><</link>> <br><<set _thermoDisable to true>><<effects>> One of the figures holds a torch up to your groin, making sure not to catch your robes ablaze. You look up in horror. <br><br> <span class="red">Your gold chastity belt quickly begins to heat up.</span> <br><br> You beg them to stop. They all laugh at you. You begin to sob. It's only warm right now, but you know you won't last long like this. <br><br> You yell and beg and cry. Finally, the figure in front kneels down to your level. <<He>> holds your cheeks to keep your mouth open, and inserts a mass of the purple herb. You can feel <<his>> gaze through the mask as you chew. <<trauma 50>><<gggtrauma>><<hallucinogen 180>><<gghallucinogens>> <br><br> You're suddenly dropped, coming to rest on the floor. The figures all laugh once again as they exit your cage. You fix your robe, and cough. <br><br> You hold your necklace, as you lie down to rest. <<stress -6>><<trauma -6>><<lstress>><<ltrauma>> <br><br> <<link [[Rest|Schism 5]]>><<endevent>><</link>> <br><<set _thermoDisable to true>><<effects>> <<set Time.setDate(new DateTime(Time.year, Time.month, 29, 6, 56))>> <<canvas-model-override "clear">> <<pass 1 hour>><<pain 1>><<set $tiredness to 1000>> <<generate1>><<person1>> You doze off quickly, but are once again awakened by a slam against your cage. Another masked figure stares at you, with an arm resting against the cage, and a hand under <<his>> chin. You can feel the sheer malice emanating off of <<him>>. <br><br> <<He>> asks for your gold bracelets and anklets, as well as your hairpin. You didn't even realise you were still wearing them, thinking they would have been stolen by now. You look down. Their sparkle catches the light. The bands were a gift from the late bishop for reaching your current place in the order. <br><br> <<link [[Give them|Schism Gold Give]]>><</link>> <br> <<link [[Refuse|Schism Gold Refuse]]>><</link>> <br><<set _thermoDisable to true>><<effects>><<handsruined>><<legsruined>><<headruined>> <<canvas-model-override "arm_right" "hold">> You shakily remove your anklets first, struggling to manipulate them around your shackles. The figure watches patiently. <br><br> You remove your bracelets and hairpin too, and slide them to the edge of the cage. <<He>> picks them up through the bars, and thanks you in an overly polite tone before leaving. <br><br> You clutch your necklace. <<stress -6>><<trauma -6>><<lstress>><<ltrauma>> <br><br> <<link [[Rest|Schism 6]]>><<endevent>><</link>> <br><<set _thermoDisable to true>><<effects>><<handsruined>><<legsruined>><<headruined>> <<canvas-model-override "arm_right" "hold">> <<generatev2>> You shake your head no, and say they mean too much to you. The figure nods in understanding before walking out of sight, to the next cage. <br><br> You slowly crawl forward, wondering if <<person1>><<hes>> really gone. You hear a yell from the next cell, and the slamming of a door. The figure walks back into view, holding a struggling initiate. The initiate immediately stills as the figure produces a wicked-looking bladed instrument and holds it to <<person2>><<his>> throat. <<stress 50>><<trauma 50>><<gggstress>><<ggtrauma>> <br><br> <<He>> looks to you with pleading eyes. You quickly remove your regalia, tossing them through the bars. The figure immediately releases the initiate, who makes a run for it. Other black-robed figures pursue <<him>>, but the figure before you casually inspects <<person1>><<his>> prize. <br><br> You see the initiate disappear down the stairs. You say a prayer for <<person2>><<his>> safety, and rub your necklace. <<stress -6>><<trauma -6>><<lstress>><<ltrauma>> <br><br> <<link [[Rest|Schism 6]]>><<endevent>><</link>> <br><<set _thermoDisable to true>><<effects>> <<canvas-model-override "clear">> <<set Time.setDate(new DateTime(Time.year, Time.month, 30, 18, 46))>> <<pass 30>><<pain 1>> <<generateCultist 1>><<person1>> The cages have begun to run empty. You've lost track of how long you've been here. It must have been days. Only you and half a dozen others remain now, the rest having been led down the dark staircase one by one. <br><br> A fine pink mist has started to fill the prison. You're unsure of the source, but it smells sweet. <<hallucinogen 80>><<ghallucinogens>> <br><br> It looks like it won't be long until you're next. A figure approaches you carrying a set of rags and a rope, demanding your robe. <br><br> <<link [[Surrender your robe|Schism Robes Accept]]>><<stress 24>><<trauma 24>><</link>><<gstress>><<gtrauma>> <br> <<link [[Refuse|Schism Robes Refuse]]>><<set $molestationstart to 1>><</link>> <br><<set _thermoDisable to true>><<effects>> <<canvas-model-override "arm_right" "hold">> <<upperruined>><<lowerruined>> <<upperwear 156>> You shakily disrobe. You can feel the hungry eyes of figures all around the room. You choke back a sob as you walk towards the door, covering yourself with your robe, before handing it to <<him>>. <br><br> <<He>> grabs your arm through the bars, and pulls you in. You yelp as <<he>> holds you there and threatens that <<he>> would take you right there were you not needed. <<He>> harshly releases you, tossing in rags to cover yourself with as <<he>> leaves with your robe. <br><br> You hastily cover yourself with the rags as best you can, securing them around your waist with the rope. You sit in the corner, and let out a long breath. <br><br> You hold your necklace. <<stress -6>><<trauma -6>><<lstress>><<ltrauma>> <br><br> <<link [[Rest|Schism 7]]>><<endevent>><</link>><<set _thermoDisable to true>><<effects>> <<if $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<maninit>><<npcstrip>><<npcidlegenitals>> You weakly shake your head. <<He>> slams the bars before unlocking your door, and storming in. <<stress 24>><<ggstress>> <br><br> <<set $speechdisable to 1>> <</if>> <<effectsman>> <<man>> <<stateman>> <br><br> <<actionsman>> <<if _combatend or ($worn.upper.type.includes("naked") and $worn.lower.type.includes("naked"))>> <span id="next"><<link [[Next|Schism Robes Refuse Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Schism Robes Refuse]]>><</link>></span><<nexttext>> <</if>><<set _thermoDisable to true>><<effects>><<canvas-model-override "arm_right" "hold">> <<if $enemyhealth lte 0>> <<He>> crashes back against the bars and slumps against the floor. Other figures enter the cell to pull <<him>> out, giving you a wide space and wary looks. You're happy with this small revenge. <<stress -24>><<trauma -24>><<control 15>><<lstress>><<ltrauma>><<ggcontrol>> <br><br> <<tearful>> you rise to your feet, and clutch your necklace. <<stress -6>><<trauma -6>><<lstress>><<ltrauma>> <<else>> <<if $enemyarousal gte $enemyarousalmax>> <<ejaculation>> <</if>> <<He>> leaves with your clothing, leaving behind a few rags. You hastily cover yourself with them. <<stealclothes>> <br><br> <<tearful>> you rise to your feet, and clutch your necklace. <<stress -6>><<trauma -6>><<lstress>><<ltrauma>> <br><br> <<upperwear 156>> <</if>> <br><br> <<clotheson>> <<endcombat>> <<link [[Rest|Schism 7]]>><</link>><<set _thermoDisable to true>><<effects>> <<canvas-model-override "clear">> <<set Time.setDate(new DateTime(Time.year, Time.month, 31, 21, 40))>> <<pass 1 hour>> <<pain 10>> <<set $moonstate to "evening">> <<generate1>><<person1>><<generate2>><<generate3>><<generate4>><<generate5>><<generate6>> You awaken in a different cell than the one you fell asleep in. It's much smaller, but has a barred window. <br><br> You gaze outside, as you're mocked by the bars across the moon. It's red, tonight. <br><br> You hear the door open behind you. It's finally time. Four <<monks>> enter your cage, and grab you. You let yourself be led out. <br><br> One of the <<monks>> makes a grab for your necklace, stating its obvious value. You immediately break free from the first <<monk>>, grabbing the offender's hand and biting it. Hard. <br><br> <<He>> screams as the other <<monks>> quickly restrain you. The masked one chastises <<him>>, calling <<him>> a petty thief, and saying <<he>> should have learned from the <<monk>> that made a grab for you when you were first brought here. <br><br> The <<monk>> holds <<his>> hand and mumbles something, and you're led down the dark stairs. At this point, they're practically carrying you, with each <<monk>> holding you up by a limb. <br><br> <<link [[Next|Schism 8]]>><</link>> <br><<set _thermoDisable to true>><<effects>> The staircase is dimly lit by torches. You spot a glowing rune at the very end of it, a long way down. <br><br> The lead <<monk>> places a hand against it, and the wall opens. <<if !$settings.tentaclesEnabled>> You exit out into... <br><br> ...a temple? Everything looks wrong. Thuribles float suspended by nothing, and windows open into endless white. You feel something terrible on the edge of your mind. <br><br> You look down, and see your skin ripple. The vision is starting to fall apart. <br><br> You see visions of long, boneless limbs and writhing masses of purple tendrils. <span class="red">You're terrified by them,</span> and start pushing against your consciousness, trying to force yourself to wake up. However, for one brief moment of lucidity, <span class="lewd">you wonder what would happen if you opened your mind to it.</span> <br><br> <<link [[Try to continue the vision|Schism Continue]]>><</link>><<willpowerdifficulty 1 1>> | <span class="pink">This will enable tentacles.</span> <!-- Appears even with blind stats enabled. Intentional --> <br> <<link [[Wake up|Schism Failure]]>><<endevent>><</link>> <br> <<else>> You exit out into the temple. Much of the iconography has been defaced. You feel sick seeing it in this state. <br><br> You're led further down into the temple. Your pulse starts to rise. They're taking you to the plinth room, and you can feel it. <br><br> Your limbs feel as though they're becoming weaker. Your struggles against the <<monks>> go almost unnoticed. <br><br> Before long, you reach an ornate door. The masked <<monk>> produces a bronze key, and two others open it ahead of <<him>>. <br><br> <<link [[Next|Schism 9]]>><</link>> <br> <</if>><<set _thermoDisable to true>><<effects>> <<set $settings.tentaclesEnabled to true>> <span class="green">You steel your mind, and focus on the vision.</span> It begins to reverse itself, as the temple comes into view. <br><br> <i><span class="lewd">Tentacles are now enabled.</span></i> <br><br> <<link [[Next|Schism 8]]>><</link>> <br><<set _thermoDisable to true>><<effects>><<canvas-model-override "arm_right" "hold">> Purple smoke hisses through the door, as the rest of the <<monks>> don their antlered masks. You're carried in. The mist assails your mind, and you start to see shadows moving, writhing, and pointing at you. <<hallucinogen 400>><<ggghallucinogens>> <br><br> You pray. <br><br> You hold your necklace. <<stress -6>><<trauma -6>><<lstress>><<ltrauma>> <br><br> You're placed on the large plinth, facing upwards. The ceiling extends up into sheer nothingness, and a faint red glow emanates from the floor. You hear whispers all around you. You can't tell which ones are from the black-robed figures. <br><br> You expect to be restrained, and clutch your necklace to your chest with both hands. However, you instead find all of your limbs immobilised by an invisible force. Candles are lit all around you. <br><br> You listen to the figures chant louder and louder. Your gaze is fixed on the expanse of darkness above, unable to look away. You're barely staying conscious. Tears begin to stream from your eyes. You wonder, you pray, that any of the others escaped, and didn't meet your fate. <br><br> <<link [[Pray|Schism 10]]>><</link>> <br><<set _thermoDisable to true>><<effects>> <<set Weather.set("heavyPrecipitation", true)>> The only thing you can feel is the pendant of your necklace between your hands. You clutch it, shaking in fear. You see something start to take shape above you. <br><br> You can't look away. Not even closing your eyes works; it takes shape in the darkness of your eyelids. Your mind goes numb, but doesn't grant you the mercy of suppressing the dread. <<set $pain to 0>> <br><br> The purple mist swirls into a vortex, growing larger and larger as the figures raise their hands in triumph. Writhing purple tendrils slowly emerge from the vortex, grabbing the nothingness and physically pulling itself into the world. You lose count of how many there are. The air itself crackles at its presence. With the sound of thunder, it stops. <br><br> <<unbind>> The leading <<monk>> orders for the sacrifice to be offered. Your leg bindings are removed. It sees you. Tendrils shoot down from above. Several tentacles worm their way around your legs and into your clothes. They slither into your gold chastity belt, and start to pull away at it. They cause you immense pain as they struggle against the shining metal. You hear sizzling, and it seems to be harming them, too. <<pain 6>><<gpain>> <br><br> With one final pull, the metal fractures and splinters, sending shards of gold clattering to the ground as your belt yields and shatters in a bright flash of light. The figures resume chanting, and your clothing meets a similar fate. <<set $worn.genitals.type.push("broken")>><<genitalsruined>><<upperruined>><<lowerruined>><<underupperruined>> <br><br> You finish your prayer, and clutch your necklace. <<stress -6>><<trauma -6>><<lstress>><<ltrauma>> <br><br> <<link [[Next|Schism Awakening]]>><<endevent>><<set $molestationstart to 1>><</link>> <br><<set _thermoDisable to true>> <<if $molestationstart is 1>> <<canvas-model-override "clear">> <<set $molestationstart to 0>> <<set $combat to 1>> <<set $enemytype to "tentacles">> <<controlloss>> <<molested>> <<tentaclestart 18 15>> <<set $timer to 20>> <</if>> Purple mist swirls in the chamber. <<hallucinogen 10>><<ghallucinogens>> <br> <<statetentacles>> <<effects>> <<effectstentacles>> <<tentacles>> <<actionstentacles>> <<if $tentacles.active lte ($tentacles.max / 2) or $timer lte 0>> <span id="next"><<link [[Next|Schism Awake]]>><</link>></span><<nexttext>> <<elseif $pain gte 100 and $willpowerpain is 0 or $stress gte $stressmax or $trauma gte $traumamax>> <span id="next"><<link [[Next|Schism Failure]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Schism Awakening]]>><</link>></span><<nexttext>> <</if>><<set _thermoDisable to true>><<effects>> <<if $timer lte 0>> The tentacles continue to have their way with you, as you lie helpless. <<else>> You push one final tentacle away, and the rest pause. <</if>> The swirling mass above begins to widen. The creature, empowered by your body, continues to pull itself into the world. Your ears start to ring, and you see flakes in your vision. Something was taken from you. <br><br> You think you see it open its eyes. You think they were already open, watching you. You can't think anymore. More bindings are wrapped around your body. You refuse to stop clutching your necklace, so your arms are bound forwards. <<legbind>> <br><br> More tendrils descend towards you. <br><br> <<link [[Pray|Schism Battle]]>><<clotheson>><<endcombat>><</link>> <br><<set _thermoDisable to true>><<effects>> <<canvas-model-override "arm_right" "hold">> A bright flash lights up the room, and the tentacles heading for you are sliced through by a solid mass of light. They vanish in the mist. <br><br> The black-robed figures begin shouting in panic, their gaze drawn to the large doorway. It takes all of your effort, but you manage to lift your head to look. A brilliant golden light floods in. A pair of large arms grab the doorway. Then another. And another. <br><br> A large shrouded head with luminous hair looks in, with closed eyes. Behind it, a mass of wings follows. Two of the arms clutch a gigantic spear. It pulls itself through the doorway, and moves its head to look up at the creature. <br><br> For a moment, you think your prayers have been answered; an angel has come to deliver you from evil. Then, you remember the ritual. It must have been finished after all. <br><br> You manage a weak smile. You've more than likely gone mad, and are seeing things. You realise this, but you decide to let the delusion take you. It's less painful than the alternative. <br><br> At least the heretics see something equally as terrifying, based on their panic. You allow yourself to enjoy their despair. <br><br> <<link [[Watch|Schism Battle 2]]>><</link>> <br><<set _thermoDisable to true>><<effects>> The angelic figure has fully pulled itself through. It must be four men tall, if not more. You count six arms, but can't count the wings. Its body is naked and largely featureless, but you think you see many open eyes on its legs. Each time one looks at a black-robed figure, they clutch their head and collapse. <br><br> You whisper a prayer. You hear an answer. <br><br> Purple tendrils lash out at the angel. Most are cut away by the spear, moving faster than you can track. A few make it through and pierce it. It falls to a knee, but quickly retaliates. It beats its wings, soaring upwards into the gaping expanse above. <br><br> Your vision gets blurry. You want to believe that what you're seeing is real. You've been taught all your life that belief is power, after all. <br><br> The heretics begin to regain consciousness, and start to say something about sinking. Panic sets in. <br><br> The battle above becomes a spectacle of flashing golden and purple lights. Parts of the foundation are ripped away, and float upwards. Severed purple tendrils scatter and dissipate, while flawless white feathers fall like snow. One lands on your chest. You struggle against your bindings just enough to reach for it. It spreads an alien chill through your body. <br><br> The room begins to shake and rumble. You hear a sound not unlike a waterfall building up. <br><br> The heretics all flee the room, leaving you bound to the plinth. <br><br> <<link [[Next|Schism Battle 3]]>><</link>> <br><<set _thermoDisable to true>><<effects>> <<canvas-model-override "clear">> The angel comes hurtling down. It narrowly avoids crushing you. The ground cracks, and water begins rising from it. <br><br> The impact makes the whole room tremble. You're sent rolling off of the plinth, your bindings becoming twisted around it. You manage to stand, but you're still bound. The ropes are hopelessly tangled. <br><br> The angel braces its spear, and aims it upwards. It says something that makes your head feel full, and gestures strangely with its four free hands before taking off again. It hits its mark, and disappears into the purple vortex, pushing the creature with it. The portal closes behind it with a crackle. <br><br> A jet of water erupts from in between stone bricks. You struggle against your bindings, but it's no use. Your heart races as the water rises. <br><br> <<link [[Struggle|Schism Struggle]]>><</link>> <br><<set _thermoDisable to true>><<effects>> <<if !$schismStruggle>> <<set $schismStruggle to 0>> <</if>> <<switch $schismStruggle>> <<case 0>> You struggle against your bindings. <br><br> <span class="red">The water rises to your knees.</span> <<case 1>> You struggle against your bindings. <br><br> <span class="red">The water rises to your groin.</span> <<case 2>> You struggle against your bindings, and weakly scream for help. <br><br> <span class="red">The water rises to your tummy.</span> <<case 3>> <<silently>><<water>><</silently>> <<set $hairtype to "ruffled">><<set $fringetype to "sideswept braid">> You desperately struggle, choking back sobs. <br><br> <span class="red">The water rises to your chest.</span> <<case 4>> <<silently>><<water>><</silently>><<canvas-model-override "arm_right" "hold">> You clutch your necklace. <<stress -6>><<trauma -6>><<lstress>><<ltrauma>> <br><br> <span class="red">The water rises to your neck.</span> <</switch>> <br><br> <<if $schismStruggle lt 4>> <<link [[Struggle!|Schism Struggle]]>><<stress 24>><</link>><<gggstress>> <br> <</if>> <<set $schismStruggle ++>> <<link [[Close your eyes|Schism Drown]]>><</link>> <br><<set _thermoDisable to true>><<effects>> <<silently>><<wash>><</silently>> <<set $hairtype to "ruffled">><<set $fringetype to "sideswept braid">><<canvas-model-override "arm_right" "hold">> <<if $schismStruggle gte 2>> Your struggling is senseless. <</if>> <<unset $schismStruggle>> You close your eyes. Your heart rate slows. You can hear it pounding in your ears, but it slowly grows quiet. <br><br> You breathe deeply. You focus on the sound of the water. You let it lull you into a trance. <br><br> You say one last prayer. <br><br> The water reaches your chin. <br><br> You let out one last breath. <br><br> You hold your necklace. <br><br> One last time. <br><br> <<link [[Sleep|Schism Drowned]]>><<set $wraithSkin to 1>><</link>> <br><<silently>><<dry>><</silently>><<set _thermoDisable to true>><<effects>><<set $location to "lake_ruin">><<set $possessed to true>><<canvas-model-override "clear">><<set $wraith.state to "active">><<canvas-model-override "blink" false>> <<neckruined>><<upperruined>><<lowerruined>><<underupperruined>><<headruined>><<unbind>><<set $arousal to 0>> <<upperwear 156>><<handswear 12>><<legswear 35>><<set $worn.upper.integrity to 10>><<set $worn.lower.integrity to 10>> <<canvas-model-temporary-effect "underwater" "noMouth">> <<set Time.setDate(new DateTime(361, 2, 1, 11, 0))>> <<set Weather.set("clear", true)>> <<if $trauma lte ($traumamax / 5) and $stress lte $stressmax / 5>> <<set $pain to 0>> <<else>> <<set $pain to 5>> <</if>> <<set $moonstate to 0>> You open your eyes. <br><br> You're underwater. You can't breathe, but it's okay. You don't feel like you need to anymore. <br><br> You can see everything. You can see through the walls, and all around you. There's a silent beauty to the submerged place. <br><br> You hold your... <br><br> ... <br><br> Where is it? <br><br> You drift through the empty ruin. You can feel it pulling you. You see it. It's still on the plinth. <br><br> <<link [[Enter|Schism Necklace]]>><</link>> <br><<set _thermoDisable to true>><<effects>><<canvas-model-temporary-effect "underwater" "noMouth">> You can't. You can't enter. The room is only walls, and no doors. But that's okay. You only need to see it. <br><br> You place your palm against the wall. You feel it around your neck. You hold your necklace. <br><br> It's all you need. But no one else can be down here. This is yours. No one can take it. <br><br> <<link [[Watch|Schism Ghost]]>><</link>> <br><<set _thermoDisable to true>><<effects>><<canvas-model-temporary-effect "underwater" "noMouth">> <<set Time.setDate(new DateTime(649, 10, 24, 21, 3))>> <<canvas-model-override "mouth" "smile">><<canvas-model-override "arm_right" "hold">> <<neckwear 23>> You watch the moon. You watch the things around you crumble, while you stay eternally beautiful. As long as you have it. <br><br> You watch people you think you knew in life rebuild. They make a beautiful chapel, and practise their faith. They don't remember you, but that's okay. As long as you have it. <br><br> You watch time pass. You watch the seasons change. You watch the people of the fledgeling town nearby use your lake to swim. That's okay. As long as they stay up there. <br><br> Sometimes, you try to appear to them. Sometimes, you play with them. It's okay. As long as they don't come down here. <br><br> You watch. <br><br> You laugh. <br><br> You cry. <br><br> You hold your necklace. <br><br> <<link [[Hold|Schism Wraith]]>><</link>> <br><<set _thermoDisable to true>><<effects>><<canvas-model-override "mouth" "neutral">><<canvas-model-temporary-effect "underwater" "noMouth">> <<if $schismTime>> <<run Time.setDate(new DateTime($schismTime))>> <<run Weather.set($schismWeather.name)>> <<run Weather.setTemperature($schismWeather.temp)>> <<set V.weatherObj.snow = ($schismWeather.snow)>> <<else>> <<run Time.setDate(new DateTime(Time.startDate.timeStamp))>> <</if>> Someone's coming down. <<if $necklaceThief is "player">> <<set _isPGenderM to $frozenValues.player.sex is "m">> A <<if _isPGenderM>>boy<<else>>girl<</if>> with <<set _hcolour to $frozenValues.haircolour>> <<if $frozenValues.hairColourStyle is "gradient">> two-toned <<elseif _hcolour in setup.colours.hair_map>> <<print setup.colours.hair_map[_hcolour].name>> <<else>> _hcolour <</if>> hair and <<print ($frozenValues.leftEyeColour is $frozenValues.rightEyeColour ? $frozenValues.leftEyeColour : "mismatched")>> <<if $frozenValues.angel gte 4>> eyes, and a ring of light proudly circling <<if _isPGenderM>>his<<else>>her<</if>> head. <<elseif $frozenValues.fallenangel gte 2>> eyes, and a shattered ring of light circling <<if _isPGenderM>>his<<else>>her<</if>> head. <<elseif $frozenValues.demon gte 2>> eyes, and two baleful horns protruding from <<if _isPGenderM>>his<<else>>her<</if>> head. <<else>> eyes. <</if>> You try to stop <<if _isPGenderM>>him<<else>>her<</if>>. You can't. <br><br> You yell. You scream. You cry. <br><br> <<if _isPGenderM>>He<<else>>She<</if>> enters the plinth room. You can't follow. You wail. You claw at the walls. You churn the waves. <br><br> <<if _isPGenderM>>He<<else>>She<</if>> takes it. It disappears from around your neck. <<else>> A smooth, featureless mass in the shape of a person, with a harsh metal weight strapped to its back and face. It seeks to pilfer. You try to stop it. You can't. <br><br> You yell. You scream. You cry. <br><br> It enters the plinth room. You can't follow. You wail. You claw at the walls. You churn the waves. <br><br> It takes the necklace. It disappears from around your neck. <</if>> <br><br> <<link [[Hate.|Schism Wraith 2]]>><</link>> <br><<set _thermoDisable to true>><<effects>><<set $moonstate to "evening">><<set $wraith.state to "haunt">><<canvas-model-temporary-effect "underwater" "noMouth">> <<canvas-model-override "mouth" "cry">><<canvas-model-override "arm_right" "hold">><<canvas-model-override "scars" true>> <<set Time.setDate(new DateTime(Time.year, Time.month, Time.lastDayOfMonth, 22, 56))>> <<set Weather.set("heavyPrecipitation", true)>> <<neckruined>><<set $pain to 80>> You cry. <br><br> You scream. <br><br> You float endlessly, clawing at your bare neck, sobbing, sulking, longing. <br><br> <<if $necklaceThief is "player">> <<set _isPGenderM to $frozenValues.player.sex is "m">> You hate <<if _isPGenderM>>him<<else>>her<</if>>. <<if _isPGenderM>>He<<else>>She<</if>> took the last thing you have. <br><br> But that's okay. <br><br> As long as you take everything from <<if _isPGenderM>>him<<else>>her<</if>>. <<else>> You hate them all. They took the last thing you have. <br><br> But that's okay. <br><br> As long as you take everything from them. <</if>> <br><br> <<link [[Wake up|Schism End]]>><<unset $wraithSkin>><</link>> <br><<schismEnd>><<effects>> <<earnFeat "Schism">> <<set $pain to 30>> You gasp for air, and snap to an upright position. You immediately turn your head and start retching, coughing up water. <br><br> You feel sick, dizzy and confused. That might have been the most intense nightmare you've ever had. You look around, but the pale figure seems to be gone. You look for a way out. <br><br> Your vision is blurry. You wipe the tears from your eyes, but you don't remember when you started crying, or why. <span class="blue"><i>You're safe until the next blood moon.</i></span> <<if $wraithPrison>> <<set $wraithPrison.state to "gone">> <<if !$wraithPrison.vision>> <<set $wraithPrison.vision to true>><<lobsession 5>> <</if>> <</if>> <<endWraith>> <<clearWraith>> <br><br> <<link [[Next|Lake Ruin Prison]]>><</link>> <br><<schismEnd>><<effects>> <span class="red">Your mind can't handle the vision any longer. Everything fades away.</span> <br><br> You gasp for air, and find yourself back in the underwater prison. You look around frantically, but the pale figure is nowhere to be seen. <br><br> The feeling of dread rapidly fades. <span class="blue"><i>You're safe until the next blood moon.</i></span> <<endcombat>> <<clotheson>> <<if $wraithPrison>> <<set $wraithPrison.state to "gone">> <</if>> <<unset _wraithEvent>> <<endWraith>> <<clearWraith>> <<if $wraithPrison and !$wraithPrison.vision>> <span class="blue">You wonder what would have happened next, had you not woken up.</span> <br><br> <</if>> <<link [[Next|Lake Ruin Prison]]>><</link>> <br><<widget "schismStart">> /*Store player stats*/ <<if !$frozenValues>> <<freezePlayerStats>> <</if>> /*morph player into Clánha*/ <<visionPrepMorph>> <<set $settings.condomLevel to 0>> <<unset $condoms>> <<set $player.gender to C.npc["Ivory Wraith"].gender>> <<set $player.sex to C.npc["Ivory Wraith"].gender>> <<set $player.breastsize to C.npc["Ivory Wraith"].breastsize>> <<if $player.sex is "f">> <<set $vaginastate to 0>> <<set $vaginause to 0>> <<set $penisstate to "none">> <<set $penisuse to "none">> <<set $player.vaginaExist to true>> <<set $player.penisExist to false>> <<set $player.ballsExist to false>> <<elseif $player.sex is "m">> <<set $penisstate to 0>> <<set $penisuse to 0>> <<set $vaginastate to "none">> <<set $vaginause to "none">> <<set $player.vaginaExist to false>> <<set $player.penisExist to true>> <<set $player.ballsExist to true>> <<else>> <<set $vaginastate to 0>> <<set $vaginause to 0>> <<set $penisstate to 0>> <<set $penisuse to 0>> <<set $player.vaginaExist to true>> <<set $player.penisExist to true>> <<set $player.ballsExist to false>> <</if>> <<if $player.penisExist is true>> <<set $player.penissize to C.npc["Ivory Wraith"].penissize>> <<set $semen_volume to 300>> <<set $semen_amount to 300>> <</if>> <<set $player.virginity.temple to true>> <<set $sexStats.vagina.pregnancy.totalBirthEvents to 0>> <<set $sexStats.anus.pregnancy.motherStatus to 0>> <<set $heterochromia to 0>> <<set $vaginaWetness to 0>> <<set $penisWetness to 0>> <<set $anusWetness to 0>> <<set $uncomfortable.hypnosis to true>> <<set $haircolour to "white">> <<set $hairColourStyle to "simple">> <<set $hairfringecolour to "white">> <<set $hairFringeColourStyle to "simple">> <<set $hairlength to 800>> <<set $hairlengthstage to "thighs">> <<set $hairtype to "defined curl">> <<set $fringelength to 200>> <<set $fringelengthstage to "shoulder">> <<set $fringetype to "loose">> <<set $rightEyeColour to "dark blue">> <<set $leftEyeColour to "dark blue">> <<set $naturalhaircolour = "white">> <<set $makeup.lipstick = 0>> <<set $makeup.eyeshadow = 0>> <<set $makeup.eyelenses = {"left":0, "right":0}>> <<set $makeup.blusher = 0>> <<set $makeup.mascara = 0>> <<set $makeup.mascara_running = 0>> <<set $makeup.pbcolour = 0>> <<set $makeup.browscolour = 0>> <<set $makeup.concealer = 0>> <<set $pbgrowth to 0>> <<set $pblevel to 0>> <<set $pain to 10>> <<set $tiredness to 1500>> <<set $stress to 500>> <<set $trauma to 200>> <<set $submissive to 1000>> <<set $awareness to 100>> <<set $awarelevel to 1>> <<set $spraymax to 0>> <<set $angel to 4>> <<set $angelbuild to 40>> <<set $purity to 1000>> <<set $beauty to 10000>> <<set $drugged to 0>> <<set $hallucinogen to 0>> <<set $promiscuity to 0>> <<set $exhibitionism to 0>> <<set $deviancy to 0>> <<set $tending to 800>> <<set $temple_rank to "priest">><<set $templePromised to "">> <<set $farm_stage to 0>><<set $islander_language to 0>><<set $quicksand to 0>> <<set $robinpaid to 0>><<set $syndromeeden to 0>><<set $syndromekylar to 0>><<set $syndromewolves to 0>><<set $syndromebird to 0>> <<set $harper_appointments.hypnosis to 0>><<set $hypnosis_traits to {}>><<set $hypnosisTimers to {}>> <<set $backgroundTraits to ['beautiful']>> <<set $prof.whip to 600>><<set $temple_weapon to "whip">> <<set $angelBanish to 3>><<set $angelBanishMax to 3>> <<set $loveInterest to { primary: "None", secondary: "None", tertiary: "None" }>> /*change location and time*/ <<set $moonstate to 0>> <<set Time.setDate(new DateTime(361, 1, 28, 5, 16))>> <<set $location to "old_temple">> /*give player clothes*/ <<feetwear 3>> <<upperwear 32>> <<underupperwear 17>> <<handswear 7>> <<legswear 10>> <<genitalswear 3>> <<headwear 64>> <<generalRuined "under_lower">> <<generalRuined "face">> <<generalRuined "handheld">> <<set $upperTucked to 0>><<set $lowerTucked to 0>> <<neckwear 23>> <</widget>> <<widget "schismEnd">> <<if !$frozenValues>> <<exit>> <</if>> <<if !$replayScene>> <<unfreezePlayerStats>> <<endcombat>> /* legacy support for old saves updated in the event mid combat */ <<passTimeUntil 6>> <<else>> /* Restore the players looks in the sidebar during the sciene viewer */ <<set $player to clone($frozenValues.player)>> <<set $worn to clone($frozenValues.worn)>> <<set $fringetype to clone($frozenValues.fringetype)>> <<set $fringelength to clone($frozenValues.fringelength)>> <<set $fringelengthstage to clone($frozenValues.fringelengthstage)>> <<set $hairtype to clone($frozenValues.hairtype)>> <<set $hairlength to clone($frozenValues.hairlength)>> <<set $hairlengthstage to clone($frozenValues.hairlengthstage)>> <<set $haircolour to clone($frozenValues.haircolour)>> <<set $hairColourGradient to clone($frozenValues.hairColourGradient)>> <<set $hairfringecolour to clone($frozenValues.hairfringecolour)>> <<set $hairFringeColourGradient to clone($frozenValues.hairFringeColourGradient)>> <<set $skin to clone($frozenValues.skin)>> <<set $parasite to clone($frozenValues.parasite)>> <</if>> <<canvas-model-override "clear">> <<set $wraith.init to 1>> <</widget>><<effects>> You shamble over to your mirror. A pale <<girl>> with <<wraithEyes>> eyes stares back. <br><br> <<link [[Step away (0:01)|Wraith Snatched Home Mirror 2]]>><<pass 1>><</link>> <br> <span class="nextLink"><<link [[Stare (0:01)|Wraith Snatched Home Mirror 2]]>><<pass 1>><</link>></span> <br><<effects>> You move each finger individually, as if to test them. <br><br> You place your hand against the mirror. <<if Time.hour is 3 and $hallucinations gte 2 and $daily.mirrorTentacles isnot 1 and $settings.tentaclesEnabled>> The surface flashes a terrible red. You see an open space on the other side, but it quickly dissolves away. <<else>> You can't feel the surface. <</if>> <br><br> Your head quickly tilts to the side, making sickening cracks. Your hands open and clench. <br><br> <<set $wraithWillMessage to true>> <i><span class="red">Fully restore your </span><span class="green">control</span><span class="red"> to take back your body.</span></i> <br><br> <span class="nextLink"><<link [[Step away (0:01)|Bedroom]]>><<pass 1>><<set $phase2 to 1>><</link>></span> <br><<pass 10>><<effects>><<getTarget>> You steady yourself against the wall, and push yourself to the window. <br><br> <<if Time.hour gte 6 and $moonstate is "morning">> The sun has started to come up. You stare at the horizon for some time. You can feel your mind begin to focus. You try to move your arm. <span class="green">It twitches.</span> <br><br> You sigh, and look at yourself in the reflection of the glass. You don't look so pale anymore. You giggle. <br><br> "<span class="nextLink">See you soon,</span>" the reflection says. <<trauma 50>><<gggtrauma>> <br><br> You shamble back to your bed, and crawl in. You slowly feel yourself slipping back into place, able to feel your skin, your hands, your legs, yourself again. <<control 50>><<ggcontrol>> <br><br> <span class="blue"><i>You're safe until the next blood moon.</i></span> <br><br> <<endWraith>> <<clearWraith>> <<link [[Separate|Sleep]]>><<set $sleephour to 1>><<unset $possessed>><<canvas-model-override "clear">><</link>><<ltiredness>> <br> <<else>> <<set $nextPassage to "Wraith Snatched Home Leave">> <<set $nextPassageCheck to "Wraith Snatched Home Leave">> The red moon fills you with a horrible chill. Translucent pale limbs quietly open the window. You place your hands on the frame. <br><br> <span class="nextLink"><<link [[Go.|Wraith Snatched Home Leave]]>><</link>></span> <br> <<link [[Grip the frame|Bedroom]]>><</link>> <br> <</if>><<pass 10>><<effects>><<getTarget>><<rainWraith>> You push yourself out your window, into the night air. <br><br> The ground comes hurtling towards you. You never hit it. <br><br> Just before you do, you slow in mid-air and right yourself. The tips of your feet gently touch the ground without any disturbance or noise. You don't feel the <<print Weather.precipitation>> on your skin. <br><br> A long, translucent limb slithers up the side of the orphanage, and shuts your window. <br><br> <span class="nextLink"><<link [[Walk.|Domus Street]]>><<set $location to "town">><<set $wraith.exit to "town">><<set $bus to "domus">><<set $phase2 to 1>><<set $phaseWraith to 0>><</link>></span> <br><<effects>> You shamble over to the mirror. A pale <<girl>> with <<wraithEyes>> eyes stares back. <br><br> <<link [[Step away (0:01)|Wraith Snatched Cabin Mirror 2]]>><<pass 1>><</link>> <br> <span class="nextLink"><<link [[Stare (0:01)|Wraith Snatched Cabin Mirror 2]]>><<pass 1>><</link>></span> <br><<effects>> You move each finger individually, as if to test them. <br><br> You place your hand against the mirror. You can't feel the surface. <br><br> Your head quickly tilts to the side, making sickening cracks. Your hands open and clench. <br><br> <<set $wraithWillMessage to true>> <i><span class="red">Fully restore your </span><span class="green">control</span><span class="red"> to take back your body.</span></i> <br><br> <span class="nextLink"><<link [[Step away (0:01)|Cabin Actions]]>><<pass 1>><<set $phase2 to 1>><</link>></span> <br><<effects>><<getTarget>><<rainWraith>> Your gaze passes over Eden one last time. You open the door, walk out into the <<print Weather.precipitation>>, and escape into the forest. <br><br> <<if !$edenfreedom>> <<set $edenescape to true>> <</if>> <span class="nextLink"><<link [[Walk.|Forest]]>><<endevent>><<set $location to "forest">><<set $wraith.exit to "forest">><<set $forest to 90>><<set $phase2 to 1>><<set $phaseWraith to 0>><</link>></span><<effects>> You approach the stream. You reach a hand in, and the surface becomes completely still. <br><br> You look at your reflection. A pale <<girl>> with <<wraithEyes>> eyes stares back. <br><br> <<link [[Step away (0:01)|Wraith Snatched Cave Reflection 2]]>><<pass 1>><</link>> <br> <span class="nextLink"><<link [[Stare (0:01)|Wraith Snatched Cave Reflection 2]]>><<pass 1>><</link>></span> <br><<effects>> You move each finger individually, as if to test them. <br><br> Your head quickly tilts to the side, making sickening cracks. Your hands open and clench. The <<wolf_cave_plural>> begin barking and howling at you, their tails frayed. <br><br> <<set $wraithWillMessage to true>> <i><span class="red">Fully restore your </span><span class="green">control</span><span class="red"> to take back your body.</span></i> <br><br> <span class="nextLink"><<link [[Step away (0:01)|Wolf Cave Clearing]]>><<pass 1>><<set $phase2 to 1>><</link>></span> <br><<pass 10>><<effects>><<getTarget>> You point. You see a translucent limb strike a <<beastNEWinit 1 wolf>><<beasttype>>, who yelps and staggers away. <<endevent>> <br><br> The rest of them back away. You walk out into the forest, but can tell some of them are trying to follow you. <br><br> <span class="nextLink"><<link [[Walk.|Forest]]>><<set $location to "forest">><<set $wraith.exit to "forest">><<set $forest to 90>><<set $phase2 to 1>><<set $phaseWraith to 0>><</link>></span><<effects>> You shamble over to the mirror. A pale <<girl>> with <<wraithEyes>> eyes stares back. <br><br> <<link [[Step away (0:01)|Wraith Snatched Mansion Mirror 2]]>><<pass 1>><</link>> <br> <span class="nextLink"><<link [[Stare (0:01)|Wraith Snatched Mansion Mirror 2]]>><<pass 1>><</link>></span> <br><<effects>> You move each finger individually, as if to test them. <br><br> You place your hand against the mirror. You can't feel the surface. <br><br> Your head quickly tilts to the side, making sickening cracks. Your hands open and clench. <br><br> <<set $wraithWillMessage to true>> <i><span class="red">Fully restore your </span><span class="green">control</span><span class="red"> to take back your body.</span></i> <br><br> <span class="nextLink"><<link [[Step away (0:01)|Mansion Bedroom]]>><<pass 1>><<set $phase2 to 1>><</link>></span> <br><<effects>><<getTarget>><<rainWraith>> Your gaze passes over the mansion one last time. <br><br> You walk out into the <<print Weather.precipitation>>, and escape into the town. <br><br> <span class="nextLink"><<link [[Walk.|Danube Street]]>><<endevent>><<set $location to "town">><<set $wraith.exit to "town">><<set $phase2 to 1>><<set $phaseWraith to 0>><</link>></span><<effects>><<endevent>> You shamble over to the mirror. A pale <<girl>> with <<wraithEyes>> eyes stares back. <br><br> <<link [[Step away (0:01)|Wraith Snatched Far Mirror 2]]>><<pass 1>><</link>> <br> <span class="nextLink"><<link [[Stare (0:01)|Wraith Snatched Far Mirror 2]]>><<pass 1>><</link>></span> <br><<effects>> You move each finger individually, as if to test them. <br><br> You place your hand against the mirror. It passes right through. The surface flashes a terrible red. <br><br> Your head quickly tilts to the side, making sickening cracks. Your free hand opens and clenches. <br><br> <span class="nextLink"><<link [[Step inside (0:01)|Wraith Snatched Far Mirror 3]]>><<pass 1>><</link>></span> <br><<effects>><<set $location to "tentworld">><<set $outside to 0>> You put your foot forward. It passes through the mirror. You place your other hand in. <br><br> You fall forwards, and everything goes a brilliant purple. You see writhing masses blotting out the sky, and an endless expanse of tendrils. It doesn't last. <br><br> You pass through a swirling purple disc, and emerge in a thicket. It looks like the forest just outside town. You look behind you, and see the Asylum. <br><br> Your head swiftly turns again, causing more cracks. You can't feel anything anymore. <br><br> <<set $wraithWillMessage to true>> <i><span class="red">Fully restore your </span><span class="green">control</span><span class="red"> to take back your body.</span></i> <br><br> <span class="nextLink"><<link [[Walk.|Forest]]>><<set $location to "forest">><<set $wraith.exit to "forest">><<set $forest to 90>><<set $phase2 to 1>><<set $phaseWraith to 0>><</link>></span> <br><<effects>> You shamble over to an empty bottle on the floor. You pick it up. Against the tinted glass, a pale <<girl>> with <<wraithEyes>> eyes stares back. <br><br> <<link [[Drop it (0:01)|Wraith Snatched Pirate Mirror 2]]>><<pass 1>><</link>> <br> <span class="nextLink"><<link [[Stare (0:01)|Wraith Snatched Pirate Mirror 2]]>><<pass 1>><</link>></span> <br><<effects>><<getTarget>><<rainWraith>> You move each finger individually, as if to test them. <br><br> You place your finger against the bottle. The surface flashes a terrible red, and you see a glimpse of an open space on the other side. You hold it up to you, as if judging the size. <br><br> You drop the bottle to your feet, shattering it. Your head quickly tilts to the side, making sickening cracks. Your hands open and clench. <br><br> <<set $wraithWillMessage to true>> <i><span class="red">Fully restore your </span><span class="green">control</span><span class="red"> to take back your body.</span></i> <br><br> <span class="nextLink"><<link [[Step away (0:01)|Pirate Bilge]]>><<pass 1>><<set $phase2 to 1>><</link>></span> <br><<effects>><<getTarget>> You grip the railing and look down. The waves, reflecting a red light, churn beneath you. <br><br> You stare at the water below. Slowly, the area directly below you begins to calm, until a perfect circle of still water floats amidst the waves, undisturbed even by the <<print Weather.precipitation>>. <br><br> You reach down toward the circle, and it flashes purple, the water beginning to swirl. You grip the railing, preparing to heft yourself over the side. <br><br> <span class="nextLink"><<link [[Dive (0:01)|Wraith Snatched Pirate Railing 2]]>><<pass 1>><</link>></span> <br><<effects>><<npc "Zephyr">><<person1>> "What you be doing out here?" a voice calls behind you. It's Captain Zephyr, blinking wearily. "Thought I heard a bottle break. It's awful late to be admiring the view, <<if $pirate_rank is 0>><<girl>><<else>><<lass>><</if>>. Especially on the night of the blood sea." <<outfitChecks>> <<if _fullyNaked>> <<He>> takes in your nudity. "Your rags better not be overboard." <</if>> <br><br> You turn to look at Zephyr, stepping away from the railing. The circle stills once more. Words spill from your mouth. <<if $spear_vessel is "Zephyr">> "<span class="wraith">You found warmth and locked it in a cage.</span>" <<elseif $wraith.state is "despair">> "<span class="wraith">A thief, proud. Did you take it? No, no...</span>" <<else>> "<span class="wraith">A nuisance. You'll try to keep <<phim>>, won't you?</span>" <</if>> Your head tilts at an unnatural angle. <br><br> Zephyr frowns. On a whim, <<he>> takes <<his>> spyglass from <<his>> side and peers at you. <<He>> clicks <<his>> tongue. "Ah. That'd do it." With a silent glare, <<he>> strides toward you. <br><br> <span class="nextLink"><<link [[Fight.|Wraith Snatched Pirate Fight]]>><<set $fightstart to 1>><</link>></span><<if $fightstart is 1>> <<set $fightstart to 0>> <<neutral 1>> <<maninit>> <<set $enemytrust to -100>> <<set $enemyanger to 200>> <<npcidlegenitals>> <<set $noAdmire to true>><<set $noBodyWriting to true>> Your body is made to laugh. "<span class="wraith">Maybe this time you'll finally drown.</span>" <br><br> <</if>> <<effects>> <<effectsman>> <<man>> <<stateman>> <br><br> <<actionsman>> <<if _combatend or _controlRegain is 1>> <span id="next" class="nextWraith"><<link [[Next.|Wraith Snatched Pirate Fight Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next" class="nextWraith"><<link [[Next.|Wraith Snatched Pirate Fight]]>><</link>></span><<nexttext>> <</if>><<effects>><<getTarget true>> <<if $control gte $controlmax>> <<wraithExorcise true true>><<clearWraith>><<endWraith>> <span class="gold">You stop.</span> You can feel it pushing you to keep going, to keep fighting, but you dig your heels in and focus. You have your body back, and you don't plan on giving it up. <br><br> You double over in agony. It's pulling itself out of you, knowing it's been bested. You see a pair of pale, translucent arms erupt from your chest. With a great amount of effort, it expels itself out of you. <br><br> Its head snaps back, and it dissipates into nothingness with a brief shriek that echoes in your mind. Your ears ring, and you hear its voice all around you. "<span class="wraith">It's a great misfortune, learning to swim.</span>" Below you, the circle of still water returns to crashing waves. <br><br> <<npc "Zephyr">><<person1>> <<if Weather.precipitation isnot "none">> Zephyr scowls as the figure disappears. <<else>> Zephyr scowls as the <<print Weather.precipitation>> begins to clear up. <</if>> "And stay gone, dredgie." <<He>> looks you over. "I don't know what ye did to earn that thing's ire. You'd best keep its business out of me ship." <<He>> slaps you in the face twice, shocking you out of your stupor, before trudging back to <<his>> cabin. <<pain 2>><<gpain>> <br><br> <<tearful>> you gather yourself. <br><br> <<endcombat>> <<link [[Next|Pirate Deck]]>><<clotheson>><<set $eventskip to 1>><</link>> <<else>> <<set $zephyr_seen to "wraith">> <<if $enemyarousal gte $enemyarousalmax>><<ejaculation "short">><</if>> Zephyr is shoved away from you, falling over <<himself>>. <<He>> slowly stands <<himself>> up, a grim look on <<his>> face. <br><br> You turn away from <<him>>, gripping the railing and lifting yourself up. Below you, the circle of undisturbed water ripples, becoming an angry purple whirlpool. You look over your shoulder at <<him>>. "<span class="wraith">Someday, captain mine, the waves will chew you too.</span>" <br><br> "No!" <<he>> bellows, already back on <<his>> feet. <<He>> charges at you, stretching out <<his>> arm. <<Hes>> too late. You slip off the railing and through the whirlpool. Everything goes a brilliant purple. You see writhing masses blotting out the sky, and an endless expanse of tendrils. It doesn't last. <br><br> You pass through a swirling purple disc, and emerge in a thicket. It looks like the forest just outside town. You look behind you, and see the Asylum. <br><br> Your head swiftly turns again, causing more cracks. You can't feel anything anymore. <br><br> <<endcombat>> <span class="nextLink"><<link [[Walk.|Forest]]>><<clotheson>><<set $location to "forest">><<set $wraith.exit to "forest">><<set $forest to 90>><<set $phase2 to 1>><<set $phaseWraith to 0>><</link>></span> <</if>><<pass 10>><<effects>><<getTarget>> <<set $nextPassage to "Wraith Snatched Guest 2">> <<if $location is "home">> <<if $robinbed is "yours" or $robinbed is "theirs">> <<set _bedGuest to "Robin">> <<else>> <<set _bedGuest to "Kylar">> <</if>> <<elseif $location is "cabin">> <<set _bedGuest to "Eden">> <<elseif $location is "avery_mansion">> <<set _bedGuest to "Avery">> <</if>> You quietly approach the bed. You stare at _bedGuest, unmoving. <br><br> You remain purely focused on <<nnpc_him _bedGuest>>. You raise an arm, and begin to reach for <<nnpc_him _bedGuest>>. <br><br> <<link [[Try to scream|Bedroom]]>><</link>> <br> <<if C.npc["Ivory Wraith"].lust gte random(12, 16) or !$wraithIntro>> <span class="nextLink"><<link [[Take.|Wraith Snatched Guest 2]]>><</link>></span> <<else>> <<set $wraithBedSpeech to true>> <span class="nextLink"><<link [[Touch.|Wraith Snatched Guest 2]]>><</link>></span> <</if>> <br><<pass 5>><<effects>><<getTarget>><<set $phase2 to 1>> <<if $willpowerSuccess>> <span class="green">You manage to force a short exhale.</span> <br><br> <</if>> <<if $location is "home">> <<if $robinbed is "yours" or $robinbed is "theirs">> <<set _bedGuest to "Robin">> <<else>> <<set _bedGuest to "Kylar">> <</if>> <<elseif $location is "cabin">> <<set _bedGuest to "Eden">> <<elseif $location is "avery_mansion">> <<set _bedGuest to "Avery">> <</if>> You place your hand on <<nnpc_his _bedGuest>> cheek. You can't feel it. You stroke it gently. <br><br> <<if $wraithBedSpeech>> <<silently>><<speechWraith _bedGuest>><</silently>> You speak in a voice that makes no sound. "<span class="wraith">_line1<<if $rng lte 10>> _line2<</if>></span>" <br><br> You slowly turn away. <<else>> <<if $settings.tentaclesEnabled and random(0, 1)>> You hear a faint slithering. The blankets move. You see pale tendrils creep into your vision as they begin to worm their way up the bed, and over <<nnpc_him _bedGuest>>. <br><br> <<nnpc_He _bedGuest>> stirs slightly, and all the tendrils snap away, vanishing out of sight without a sound. <<else>> Another hand softly touches <<nnpc_him _bedGuest>>. Then another, on <<nnpc_his _bedGuest>> chest. Another one begins tracing down <<nnpc_his _bedGuest>> stomach. <br><br> <<nnpc_He _bedGuest>> stirs slightly, and all the arms snap away, vanishing out of sight without a sound. <</if>> <br><br> <<nnpc_He _bedGuest>> stills. You can't feel yourself breathing. <</if>> <br><br> <<switch $wraith.exit>> <<case "home">> <span class="nextLink"><<link [[Step away|Bedroom]]>><</link>></span> <<case "cabin">> <span class="nextLink"><<link [[Step away|Cabin Actions]]>><</link>></span> <<case "mansion">> <span class="nextLink"><<link [[Step away|Mansion Bedroom]]>><</link>></span> <</switch>> <br><<control 20>><<effects>><<getTarget>> You clumsily walk over to the <<print $container[$location].name.toLowerCase()>>. <<set $outside to 0>> <<set _container to $container[$location]>> <<set $checkboxResult to {}>><<set _paleCount to 0>> <<for _i to 0; _i lt Object.keys(_container.creatures).length; _i++>> <<if _container.creatures[_i] isnot null and _container.creatures[_i].creature.includes("Pale")>> <<set _paleCount ++>> <</if>> <</for>> You feverishly check on your pale <<pluralise _paleCount "child" "children">>, taking <<pluralise _paleCount "it" "them">> out and holding <<pluralise _paleCount "it" "them">>. <br> <<creatureVisit>> <br><br> You hold <<pluralise _paleCount "it" "them">> close to you. You feel a strange warmth growing within, and your vision starts to get blurry. <br><br> You're crying. <<set $pain to 100>><<set $phase2 to 2>> <br><br> You don't know how long you sit there. You hardly feel anything. Your face remains locked in cold unexpression. <<set _palePass to (45 + (15 * _paleCount))>><<pass _palePass>><<ggcontrol>> <br><br> Eventually, your gaze turns to <<if $wraith.exit is "home" and ($robinbed is "yours" or $robinbed is "theirs" or $kylarbed is 1)>><<if $robinbed is "yours" or $robinbed is "theirs">>Robin.<<else>>Kylar.<</if>><<else>>the lake.<</if>> <br><br> <<switch $wraith.exit>> <<case "home">> <<set $nextPassage to "Bedroom">> <<set $nextPassageCheck to "Bedroom">> <span class="nextLink"><<link [[Step away|Bedroom]]>><</link>></span> <br> <<link [[Try to stay still|Containers]]>><</link>> <<case "lake">> <<set $nextPassage to "Lake Waterfall">> <<set $nextPassageCheck to "Lake Waterfall">> <span class="nextLink"><<link [[The lake.|Lake Waterfall]]>><</link>></span> <br> <<link [[Try to stay still|Containers]]>><</link>> <<case "alex_farm">> <<set $nextPassage to "Bedroom">> <span class="nextLink"><<link [[Step away|Bedroom]]>><</link>></span> <br> <<link [[Try to stay still|Containers]]>><</link>> <</switch>> <br><<effects>> <<set $wraithWillMessage to true>> <<if $location is "park">> You shamble over to the fountain, <<elseif $location is "forest" or $location is "moor">> You shamble over to a <<if Weather.isSnow>>frozen <</if>>pool of water, <<elseif $bus is "lakeshore">> You shamble over to the edge of the lake, <<elseif $bus is "lakewaterfall">> You shamble over to the <<if Weather.isSnow>>frozen <</if>>pond, <<elseif $location is "lake_ruin">> You float over to a reflective part of the wall, <<elseif $location is "drain">> You peek over the edge of the walkway, <<elseif $location is "sewers">> You shamble over to a nearby shard of broken glass, <<elseif $location is "forest_shop">> You shamble over to an antique snowglobe, <<elseif $outside is 1>> You shamble over to a puddle, <<else>> You shamble over to a window, <</if>> and look at your reflection. A pale <<girl>> with <<wraithEyes>> eyes stares back. <br><br> <<if $wraith.exit is "Gwylan">> "I know you can hear me. Quit ignoring me." <br><br> <</if>> You move each finger individually, as if to test them. <br><br> Your head quickly tilts to the side, making sickening cracks. Your hands open and clench. <br><br> <i><span class="red">Fully restore your</span> <span class="green">control</span> <span class="red">to take back your body.</span></i> <br><br> <span class="nextLink"><<exitWraith true>></span><<rainWraith>> <br><<effects>> <<if Time.hour gte 6 and $moonstate is "morning">> Your body begins to grow heavy as the first rays of sunlight crest over the horizon. You try to move your arm. <span class="green">It twitches.</span> <br><br> You fall to your knees, and your vision grows blurry. You see a set of pale, translucent arms emerging from your own. Your body goes stiff, and you start leaning backwards. <br><br> <<if $wraithIntro>> The pale figure exits your body, staring back at you <<if $wraith.state is "haunt">> scornfully as it scratches at its scarred neck. <br><br> "<span class="wraith">You belong to me, thief.</span>" <<elseif $wraith.state is "despair">> mournfully as it scratches at its scarred, bare neck. <br><br> "<span class="wraith">Please... help me find it...</span>" <<else>> playfully as it thumbs a necklace made of ivory. <br><br> "<span class="wraith">You belong to me.</span>" <</if>> <<trauma 50>><<gggtrauma>> <br><br> <<else>> A beautiful pale figure floats out of your body, towering over you. <<if $wraith.state is "haunt">> It angrily claws at its own neck as it stares you down. It places a hand under your chin. <br><br> "<span class="wraith">Cut short. Next time. See you soon, <<pcpetname "Wraith">>.</span>" <<elseif $wraith.state is "despair">> It mournfully claws at its own scarred, bare neck as it stares you down. <br><br> "<span class="wraith">Have you seen my necklace? I...</span>" <<else>> It's naked, save an ornate necklace of ivory around its neck. It places a hand under your chin. <br><br> "<span class="wraith">Cut short. Next time. See you soon, <<pcpetname "Wraith">>.</span>" <</if>> <<trauma 50>><<gggtrauma>> <br><br> <</if>> It vanishes in a torrent of water. You slowly regain feeling in your body, and try to stand. It takes a few tries, but eventually, you hoist yourself up. <br><br> <<tearful>> you try to make sense of what happened to you. <br><br> <<else>> <span class="gold">You stop.</span> <br><br> You can feel it pushing you to take another step. It clashes against you, pushing against your mind and body, trying to assert its dominance. You have a hold of it now, and you're not letting go. <br><br> You double over in agony. It's pulling itself out of you, knowing it's been bested. You see a pair of pale, translucent arms erupt from your chest. With a great amount of effort, it expels itself out of you. <br><br> <<if $wraithIntro>> The pale figure floats before you, staring at you <<if $wraith.state is "haunt">> scornfully as it scratches at its scarred neck. <br><br> "<span class="wraith">You belong to me. You will not hold against me forever, thief.</span>" <<elseif $wraith.state is "despair">> mournfully as it scratches at its scarred, bare neck. <br><br> "<span class="wraith">Please... help me find it...</span>" <<else>> playfully as it thumbs a necklace made of ivory. <br><br> "<span class="wraith">You belong to me. You will not hold against me forever.</span>" <</if>> <<trauma 50>><<gggtrauma>> <br><br> <<else>> A beautiful pale figure floats before you. <<if $wraith.state is "haunt">> It angrily claws at its own neck as it stares you down. It places a hand under your chin. <br><br> "<span class="wraith">I will have you, graverobber. Soon.</span>" <<elseif $wraith.state is "despair">> It mournfully claws at its own scarred, bare neck as it stares you down. <br><br> "<span class="wraith">Have you seen my necklace? I...</span>" <<else>> It's naked, save an ornate necklace of ivory around its neck. It places a hand under your chin. <br><br> "<span class="wraith">Your will is strong. I like you.</span>" <</if>> <<trauma 50>><<gggtrauma>> <br><br> <</if>> A massive torrent of water shoots up from below, completely engulfing it. You can only see its <<wraithEyes>> eyes glowing through it. When it passes, the figure is gone. <<tearful>> you try to make sense of what you just went through. <br><br> <</if>> <<exposure>> <<clotheson>> <<exitWraith>> <<clearWraith>><<effects>> <<if Time.hour gte 6 and $moonstate is "morning">> Your body begins to grow heavy as the first rays of sunlight reach the depths. You try to move your arm. <span class="green">It twitches.</span> <br><br> You float aimlessly in the water, and your vision grows blurry. You see a set of pale, translucent arms emerging from your own. Your body goes stiff, and you start leaning backwards. <br><br> <<if $wraithIntro>> The pale figure exits your body, staring back at you <<if $wraith.state is "haunt">> scornfully as it scratches at its scarred neck. <br><br> "<span class="wraith">You belong to me, thief.</span>" <<elseif $wraith.state is "despair">> pleadingly as it scratches at its scarred neck. <br><br> "<span class="wraith">Where is it?</span>" <<else>> playfully as it thumbs a necklace made of ivory. <br><br> "<span class="wraith">You belong to me.</span>" <</if>> <<trauma 50>><<gggtrauma>> <br><br> <<else>> A beautiful pale figure floats out of your body, towering over you. <<if $wraith.state is "haunt">> It angrily claws at its own neck as it stares you down. It places a hand under your chin. <br><br> "<span class="wraith">Cut short. Next time. See you soon, <<pcpetname "Wraith">>.</span>" <<elseif $wraith.state is "despair">> It mournfully claws at its own scarred neck as it stares you down. <br><br> "<span class="wraith">Have you seen my necklace? I...</span>" <<else>> It's naked, save an ornate necklace of ivory around its neck. It places a hand under your chin. <br><br> "<span class="wraith">Cut short. Next time. See you soon, <<pcpetname "Wraith">>.</span>" <</if>> <<trauma 50>><<gggtrauma>> <br><br> <</if>> It vanishes with a bright flash. You slowly regain feeling in your body, and try to swim. It takes some time, but you're able to move yourself again. <br><br> <<tearful>> you try to make sense of what happened to you. <<else>> <span class="gold">You stop.</span> <br><br> You can feel it pushing you to keep going. It clashes against you, pushing against your mind and body, trying to assert its dominance. You have a hold of it now, and you're not letting go. <br><br> You double over in agony. It's pulling itself out of you, knowing it's been bested. You see a pair of pale, translucent arms erupt from your chest. With a great amount of effort, it expels itself out of you. <br><br> <<if $wraithIntro>> The pale figure floats before you, staring at you <<if $wraith.state is "haunt">> scornfully as it scratches at its scarred neck. <br><br> "<span class="wraith">You belong to me. You will not hold against me forever, thief.</span>" <<elseif $wraith.state is "despair">> mournfully as it scratches at its scarred, bare neck. <br><br> "<span class="wraith">Please... help me find it...</span>" <<else>> playfully as it thumbs a necklace made of ivory. <br><br> "<span class="wraith">You belong to me. You will not hold against me forever.</span>" <</if>> <<trauma 50>><<gggtrauma>> <br><br> <<else>> A beautiful pale figure floats before you. <<if $wraith.state is "haunt">> It angrily claws at its own neck as it stares you down. It places a hand under your chin. <br><br> "<span class="wraith">I will have you, graverobber. Soon.</span>" <<elseif $wraith.state is "despair">> It mournfully claws at its own scarred, bare neck as it stares you down. <br><br> "<span class="wraith">Have you seen my necklace? I...</span>" <<else>> It's naked, save an ornate necklace of ivory around its neck. It places a hand under your chin. <br><br> "<span class="wraith">Your will is strong. I like you.</span>" <</if>> <<trauma 50>><<gggtrauma>> <br><br> <</if>> A bright flash of light blinds you. When it passes, the figure is gone. <<tearful>> you try to make sense of what you just went through. <br><br> <</if>> <<exposure>> <<clotheson>> <<exitWraith>> <<clearWraith>><<effects>> DEBUG PASSAGE. Should be unreachable. <br><br> <<link [[Fuck|Bedroom]]>><<endevent>><</link>><<effects>> DEBUG PASSAGE. Should be unreachable. <br><br> <<link [[Fuck|Bedroom]]>><<endevent>><</link>><<effects>><<getTarget>> You look down. You see your reflection in the ice. A pale <<girl>> with <<wraithEyes>> eyes still stares back. <br><br> You find yourself sinking through the ice, submerging without causing a break. <br><br> <span class="nextLink"><<link [[Down.|Lake Underwater]]>><<set $phase2 to 1>><</link>></span> <br><<effects>> You hear the trees rustle behind you. You slowly turn to look. Something digs at the back of your mind, as if surprised at the intrusion. It quickly turns to annoyance. <br><br> Someone emerges from the treeline. <span class="green">It's Gwylan.</span> <<nnpc_Hes "Gwylan">> wearing a green hooded cloak. <br><br> "There you are! <<if $gwylan.timer.bloodVisit>> I got worried after you left the shop earlier." <<elseif $gwylan.timer.bloodKnock>> I heard someone knocking at the shop, and I thought it might have been you." <<else>> I thought I saw you shambling past the shop." <</if>> <<nnpc_He "Gwylan">> looks you over, and steps closer. "Oh dear." <br><br> You stare at <<nnpc_him "Gwylan">>. <br><br> <span class="nextLink"><<link [[...|Forest Wraith Gwylan]]>><</link>></span> <br><<effects>> <<npc Gwylan>><<person1>> You hear the trees rustle behind you. You slowly turn to look. Something digs at the back of your mind, as if surprised at the intrusion. It quickly turns to annoyance. <br><br> Three green eyes stare from the shadows. A shape like a massive fox darts away, before reappearing somewhere else. It's all around you. <br><br> A branch breaks, and your body turns just in time to be tackled by something. <span class="green">It's Gwylan.</span> <<if npcIsPregnant("Gwylan")>> Your body rolls with <<him>>, but throws <<him>> off. <<Hes>> sent reeling, but recovers quickly. <<else>> Your body rolls with <<him>>, before kicking both of your legs into Gwylan's gut. <<Hes>> sent reeling, but recovers quickly. <</if>> <br><br> Your body and Gwylan stare each other down. <<rainWraith>> <br><br> "I know you can hear me in there, <<pcpetname "Gwylan" "name">>. I'll do my best, but..." <<His>> voice trembles. "I won't be able to get you out by myself. I need you to fight it, however you can." <br><br> <<if $hypnosis_traits.devotion gte 4>> You feel like a fly trapped between two spiders. <br><br> <</if>> Gwylan runs towards you! <br><br> <span class="nextLink"><<link [[Fight|Wraith Snatched Gwylan Fight]]>><<set $fightstart to 1>><</link>></span> <br><<set $outside to 1>><<set $location to "forest">><<effects>><<set _notMoving to true>><<getTarget>> <<npc Gwylan>><<person1>> <<set $nextPassage to "Forest Wraith Gwylan 2">> Gwylan grabs your shoulder, looking into your eyes. <br><br> You take in a deep breath. <br><br> <<link [[Beg for help|Forest]]>><</link>> <br> <span class="nextLink"><<link [[I'm well, Gwylan.|Forest Wraith Gwylan 2]]>><</link>></span> <br><<effects>><<set _notMoving to true>><<getTarget>> <<set $nextPassage to "Forest Wraith Gwylan 3">> Your body speaks. <<if $willpowerSuccess>> <span class="green">Your voice cracks.</span> <</if>> "I'm well, Gwylan. I must have been sleepwalking. Thank you." <br><br> <<He>> tilts <<his>> head, looking closer. "Sleepwalking. <<if $exposed gte 2>>Naked.<</if>> Right." <<He>> takes a step back. "In that case, why not come by my shop? I have a remedy for sleepwalking<<if $exposed gte 2>>, and some warm clothes<</if>>." <br><br> You feel a throb in your head. <br><br> <<link [[Yes|Forest]]>><</link>> <br> <span class="nextLink"><<link [[No, thank you.|Forest Wraith Gwylan 3]]>><</link>></span> <br><<effects>><<set _notMoving to true>><<getTarget>> <<set $nextPassage to "Forest Wraith Gwylan 4">> <<if $willpowerSuccess>> <span class="green">You lean towards <<him>>, ever so slightly.</span> <br><br> <</if>> Your body speaks. "No, thank you. I think I'm going..." You pause. "Home." The word doesn't sound right. <br><br> <<He>> frowns. "Alright. Let me walk with you, then. It's a dangerous night." You feel another throb. <br><br> <<link [[Please|Forest]]>><</link>> <br> <span class="nextLink"><<link [[No, thank you.|Forest Wraith Gwylan 4]]>><</link>></span> <br><<effects>><<set _notMoving to true>><<getTarget>> <<set $nextPassage to "Forest">> <<if $willpowerSuccess>> <span class="green">You manage to let out a short, strained breath.</span> <br><br> <</if>> Your body speaks. "No, thank you. I prefer the solitude. It's a beautiful night." <br><br> <<He>> sighs. "Okay. Well... come see me tomorrow, then. I'm worried about you." <<He>> turns away, but pauses. <br><br> <<He>> walks back over to you, and hugs you tightly. Your body doesn't return it. "Your skin is very cold," <<he>> says. "Don't take long. I don't want you getting sick." <span class="red"><<He>> turns, and leaves.</span> <br><br> <<endevent>><<set $gwylanDoesALittleTrolling to true>> <span class="nextLink"><<link [[Walk.|Forest]]>><<set $phase2 to 1>><</link>></span> <br><<effects>><<getTarget>> <<npc Gwylan>><<person1>> <<unset $nextPassage>> You shamble through the forest. You know- <br><br> "Where are you going?" Your head throbs multiple times in quick succession upon hearing Gwylan's voice. "That isn't towards home. That's towards the lake." <br><br> You hear rapid footsteps, and <<he>> grabs you by the shoulders from behind. "I'm afraid I have to insist now. You're coming with me, back to the shop." <<He>> grabs your hand, and tries to pull you along. <br><br> You don't budge. You slowly turn to face <<him>>. The intruder in your body feels distant for a moment, as if thinking. It pulls against you, testing your will. <br><br> After a moment, <span class="green">you start to walk with <<him>></span>. <br><br> <span class="nextLink"><<link [[Follow. For now.|Forest Wraith Gwylan 6]]>><<set $phase2 to 1>><<pass 10>><</link>></span> <br><<set $outside to 0>><<set $location to "forest_shop">><<effects>><<getTarget>><<set $nextPassage to "Forest Wraith Gwylan 7">> "I've got a remedy that will make sure you sleep through the whole night. I wouldn't recommend drinking it more than twice a week though, unless you want regular sleep paralysis—" <br><br> Your body tunes Gwylan out. It does its best impression of normal walking. You feel strange. Almost as though it's going along with you, rather than you going along with it. <span class="purple">It's biding its time.</span> <br><br> You make it back to the forest shop with Gwylan. <<He>> leads you to a small table, before heading through a dark doorway. <br><br> Your eyes slowly move around the room, catching on a few of the knick-knacks around. "The gull's nest is empty," your body says. "You are all that remains." <br><br> "Sorry, what was that?" Gwylan's head pops out from the doorway. You stare at each other for a moment, saying nothing. <<He>> slowly ducks back into the other room. <br><br> You stare straight ahead for several minutes. The intruder's will pokes at yours. "<span class='wraith'>Fortunate, <<pcpetname "Wraith">>. Interference from the witch.</span>" You hear something like a laugh. <<if $wraith.state is "haunt">> "<span class='wraith'>You will be pulled apart between us. Whom do you think is worse?</span>" <<else>> "<span class='wraith'>Let us see which of us claims the fly from the web.</span>" <</if>> <br><br> Gwylan returns holding a tray with a tea kettle. <<He>> pours hot water into a cup, and holds it in front of you. "There you go! <<if $gwylanTea gte 4>> Sorry that it isn't your favourite butterfly pea flower tea, but I think you'll enjoy it. <</if>> Drink it up." <<He>> pinches you on the cheek. You don't feel it. <<He>> sits on the opposite end of the table. <br><br> Your eyes look down at it. A <<wraithEyes>> tinge flashes over your vision, and your body feels sick looking at it. <br><br> <<link [[Drink it|Forest Shop]]>><</link>> <br> <span class="nextLink"><<link [[Do not.|Forest Wraith Gwylan 7]]>><</link>></span> <br><<effects>><<set _notMoving to true>><<getTarget>><<set $nextPassage to "Forest Wraith Gwylan 8">> <<if $willpowerSuccess>> <span class="green">Your arm twitches.</span> <</if>> The teacup sits in front of you, untouched. Your body looks back up to Gwylan. <br><br> You stare at each other. <br><br> "Something wrong?" <<he>> says.<br> "I'm not thirsty," your body says.<br> "Ah, drank too much water?"<br> Your head throbs. <br><br> You sit still. <br><br> <<link [[Drink it|Forest Shop]]>><</link>> <br> <span class="nextLink"><<link [[Do not.|Forest Wraith Gwylan 8]]>><</link>></span> <br><<effects>><<set _notMoving to true>><<getTarget>><<unset $nextPassage>> <<if $willpowerSuccess>> <span class="green">Your arm twitches.</span> <</if>> The teacup sits in front of you, untouched. "Go on, dear. It will help." You sit still. <br><br> Gwylan leans forward. <br><br> "I'll stay up with you then. I don't mind."<br> Your head throbs again. "Why?"<br> <<if $gwylanSeen.includes("romance")>> "Because we're one." <<else>> "Because burdens are meant to be shared." <</if>> <br><br> You let out a strained laugh. "<span class="wraith">To think your black heart is capable of such intimacy. Yours is more dead than mine.</span>" <br><br> Gwylan blinks. "Well, that was rude." <<He>> leans forward a little further. "It's just tea, dear. It's not like it will... <i>drown</i> you." <br><br> <span class="red">Your body lunges for <<him>> over the table.</span> <br><br> <<link [[Resist|Forest Wraith Gwylan 9]]>><</link>> <br><<effects>><<run statusCheck("Gwylan")>> <<if $control gte $controlmax>> <span class="gold">You stop.</span> The pale figure doesn't. It flies out of your body as it lunges for Gwylan. <br><br> <<if $wraith.state is "haunt">> <<He>> ducks, narrowly avoiding being raked by its blackened arm <<else>> <<He>> ducks, narrowly avoiding being grabbed <</if>> as it soars right past <<him>>. <<He>> rushes to your side, helping you stand as the numbness fades from your body. <<He>> stands protectively between you and it. <br><br> "This is my home. You have no power here. Begone." The entire shop seems to shudder in response. <span class="purple">Dozens of wooden mannequins stand behind the pale figure, each one making a grab for it.</span> <br><br> It waves its hand, and wooden limbs are scattered everywhere as a single pale tendril whips across them. <<if $wraith.state is "haunt">> It sneers. "<span class="wraith">Cruel gull. <<pShe>> is mine. If not on this night, then the next. I will wait forever if need be.</span>" <<else>> It laughs. "<span class="wraith">Clever gull. <<pShe>> is mine. I know you understand. To be alone forever-</span>" <</if>> <br><br> "You aren't ready for forever," Gwylan says back. "You aren't even ready for right now." <<He>> raises a hand and snaps <<his>> fingers. The mannequins stand again, and despite many missing arms, they all approach. Most are knocked away and broken further, but a few find their mark, restraining its limbs. It simply sprouts more, which grab and tear the mannequins apart. <br><br> It turns back with a smug grin, just in time for a ?gwylanItem to bounce off of its head with a loud thud. Its head is knocked to a tilt. It looks stunned for a moment, as if surprised it was actually hit by that. It was just a distraction, though. Gwylan runs towards it, a golden bracelet in hand. <<He>> clasps it around the figure's arm, and yells a command. <br><br> <b>"<span class="witch">Go home!</span>"</b> <br><br> A matching golden shackle appears around the bracelet. The nearest window flies open on its own as Gwylan darts back to your side. <span class="purple">A screeching wind rips through the air, towards the window.</span> The figure is yanked towards it. Its many hands grip the window frame for purchase, but each one becomes clasped in another golden shackle. It gives you both one last piercing look, before <span class="green">it's expelled from the shop</span>. <<else>> Gwylan ducks, narrowly avoiding your lunge. You land behind <<him>> and turn. <br><br> "This is my home. You have no power here. Begone." The entire shop seems to shudder in response. <span class="purple">Dozens of wooden hands wrap around your arms and legs. You're surrounded by mannequins.</span> <br><br> Your body struggles against them. <<if $wraith.state is "haunt">> It sneers. "<span class="wraith">Cruel gull. <<pShe>> is mine. Join us. We can share this bliss forever.</span>" <<else>> It laughs. "<span class="wraith">Clever gull. <<pShe>> is mine. Join us. We can share this bliss forever.</span>" <</if>> <br><br> "You aren't ready for forever," Gwylan says back. "You aren't even ready for right now." <<if $hypnosis_traits.devotion gte 4>> <<He>> slowly, but confidently, walks up to you and places a hand on your head. You don't feel it. "Besides, you're wrong. <<pShes>> mine." <<He>> giggles, before whispering in your ear. <br><br> <b>"<span class="witch">Sit.</span>"</b> <br><br> <<hypnosisText "<span class='blue'>Your body sits obediently.</span>">> The mannequins all release you. <br><br> The Wraith pushes against you, trying to force you to move. <span class="green">It can't.</span> You continue to sit in place. "<<pcPetname "Gwylan" "good">>." <<He>> pets your head. You can feel it. The numbness is fading. <<trauma -1>><<ltrauma>><<gcontrol>> <br><br> <<He>> turns your head to face the nearest window, and whispers another command. <<else>> <<He>> grabs a ?gwylanItem from a nearby shelf, tosses it up and down in <<his>> hand for a moment, and <span class="red">whips it at you</span>. <br><br> It bounces off of your head with a loud thud, but you don't feel any pain. The intruder feels rattled, though. Just enough for you to exert your will for a precious moment. <<gcontrol>> <br><br> Gwylan runs up to you, and turns your head to face the nearest window. <<He>> whispers a command into your ear. <</if>> <br><br> <b>"<span class="witch">Go home.</span>"</b> <br><br> The window flies open on its own. Your vision focuses on something, far into the forest. The trees seem to part for you. It's the lake. <span class="purple">A screeching wind rips through the air, towards it.</span> The figure is pulled out of your body. Its many hands grip the window frame for purchase, but each one becomes clasped in a golden shackle. It gives you both one last piercing look, before <span class="green">it's expelled from the shop</span>. <</if>> <br><br> The window slams shut. Gwylan holds you tightly. <br><br> <<set $wraith.state to "">> <<clearWraith>> <<set $wraithSkip to true>> <<gwylanRescueStats true "Wraith">> <<link [[Next|Forest Shop Wraith Talk]]>><<wraithExorcise true true>><<endevent>><</link>> <br><<if $fightstart is 1>> <<set $fightstart to 0>> <<neutral 1>> <<maninit>> <<set $enemytrust to -100>> <<set $enemyanger to 200>> <<npcidlegenitals>> <<set $noAdmire to true>><<set $noBodyWriting to true>> <<if !$wraith.will>> <<set $wraith.will to random(1300, 1700)>> <</if>> Your body is made to laugh. "<span class="wraith">Wretched, jealous gull, picking at the scraps.</span>" <br><br> <</if>> <<effects>> <<effectsman>> <<man>> <<stateman>> <br><br> <<actionsman>> <<if _combatend or _controlRegain is 1>> <span id="next" class="nextWraith"><<link [[Next.|Wraith Snatched Gwylan Fight Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next" class="nextWraith"><<link [[Next.|Wraith Snatched Gwylan Fight]]>><</link>></span><<nexttext>> <</if>><<effects>><<getTarget true>> <<if $control gte $controlmax>> <<wraithExorcise true true>><<clearWraith>><<endWraith>> <<npc Gwylan>><<person1>> <span class="gold">You stop.</span> You can feel it pushing you to keep going, to keep fighting, but you dig your heels in and focus. You have your body back, and you don't plan on giving it up. <br><br> <<if $hypnosis_traits.devotion gte 4>> <b>"<span class="witch">Sit!</span>"</b> <br><br> <<hypnosisText "<span class='blue'>You can't resist that, though. Your body collapses.</span>">> Gwylan quickly kneels next to you, pulling a vial from <<his>> belt. <<He>> rips the cork out, and holds it under your nose. <br><br> You tremble. All at once, the Wraith is pulled out of your body from above. It dissipates into nothingness with a brief shriek that echoes in your mind. Your ears ring, and you hear its voice all around you. <<else>> You double over in agony. It's pulling itself out of you, knowing it's been bested. You see a pair of pale, translucent arms erupt from your chest. With a great amount of effort, it expels itself out of you. <br><br> Its head snaps back, and it dissipates into nothingness with a brief shriek that echoes in your mind. Your ears ring, and you hear its voice all around you. <</if>> <<if $wraith.state is "haunt">> "<span class="wraith">The albatross around your throat will drag you to the bottom.</span>" <<else>> "<span class="wraith">The fox snatches the albatross from the wind.</span>" <</if>> <br><br> <<if Weather.precipitation isnot "none">> Gwylan huffs as the figure disappears. <<else>> Gwylan huffs as the <<print Weather.precipitation>> begins to clear up. <</if>> "I'm sorry, but I won't let you have <<phim>>." <<He>> looks back to you. "You're a troublesome one, you know that?" <<He>> hugs you tightly. <br><br> <<if $hypnosis_traits.devotion gte 4>> "Why didn't you lead with that?" you ask, hugging back. <br><br> "It had too much control, and the mixture wasn't what freed you. That just made the exit more clean." <<He>> smiles. <</if>> "Come on. I'll make you some tea back at the shop." <br><br> You're in no position to resist. <<if $pain gte 75>> Gwylan puts one of your arms around <<him>> and helps you walk. <</if>> It isn't a long trip to the shop. <<endcombat>> <br><br> <<link [[Next|Forest Shop Wraith Talk Repeat]]>><<clotheson>><<set $forest to 0>><</link>> <<else>> Gwylan falls to the ground. You fall on top of <<him>>, your hands around <<his>> throat. "<span class="wraith">The fox plays the part of the prey.</span>" <br><br> <<He>> can't breathe. <<His>> hands grip your wrists, but <<he>> can't pull them away. <<He>> reaches for something on <<his>> belt, but it's smacked away by another arm. <br><br> <span class="red"><<His>> struggling becomes weaker and weaker, <<his>> eyes becoming more dim. <<He>> releases you, <<his>> arms falling limp at <<his>> sides.</span> <br><br> "<span class="wraith">Alas. Your torment was never mine to end.</span>" <br><br> You release <<him>>, and <<he>> gasps for breath. <<He>> coughs as you stand. "<span class="wraith">Hie away, witch. Suffer alone in your self-made cage.</span>" <br><br> You start to walk away, but <<he>> grabs your ankle. <<if $gwylanSeen.includes("partners") and C.npc.Gwylan.dom gte 135>> <<gwylanRescueStats true "WraithFight">> <<silently>><<endcombat>><</silently>><<npc Gwylan>><<person1>> "You..." <<he>> gasps, <<his>> breath ragged and hoarse. "...can't have <<phim>>." <<He>> drags <<himself>> forwards. You look down in bemusement. "Nobody can." <br><br> <span class="nextLink"><<link [[Next|Wraith Snatched Gwylan Fight Finish Nobody]]>><</link>></span> <<else>> <<gwylanRescueStats false "WraithFight">> <<His>> grip is weak and desperate. You kick it aside without effort. <br><br> You leave Gwylan weak and breathless in the clearing. <<endcombat>> <br><br> <span class="nextLink"><<exitWraith true>></span> <</if>> <</if>><<canvas-model-freeze "precipitation">> <span class="red">A whale sings a mournful song for its lost pod. A fox cries out for its kits. An albatross crashes to the sand with broken wings. A serpent sheds its skin, before devouring its own eggs.</span> The sky screams in anguish, before everything goes completely silent. <<if Weather.precipitation isnot "none">>The <<print Weather.precipitation>> freezes in the air.<</if>> <br><br> Nobody is here. <br><br> Nobody stands up. <br><br> Nobody's sharp, blackened fingers pierce through your chest. You feel nothing. <br><br> Nobody screams, antlers ablaze in red moonlight. All is silent. <br><br> Nobody rips the intruder from your body. <br><br> Nobody, and the Wraith, fade away in a torrent of water and rose petals. <br><br> <<link [[...|Wraith Snatched Gwylan Fight Finish Nobody 2]]>><</link>>No one is here. You're alone. <<if Weather.precipitation isnot "none">>The <<print Weather.precipitation>> crashes to the ground.<</if>> <<silently>><<clotheson>><</silently>> <<set $wraith.state to "">> <<gwylanNobody 21>><<world_corruption "soft" 15>><<set $gwylanSeen.pushUnique("nobody")>> /* ToDo: Gwylan - have Gwylan mention this somehow after they return in 3 weeks */ <br><br> Your head hurts. <<awareness -20>><<llawareness>> <br><br> <<exitWraith>> <<clearWraith>> <<set $wraithSkip to true>><<widget "getTarget">> <<if $possessed>> <<set $eventskip to 1>> <<if _args[0]>> <<switch $passage>> <<case "Bedroom">> <<pass 1>> <<set $wraith.exit to "home">> <<if !$nextPassageCheck>> <<set $phaseWraith to 0>> <<set $nextPassageCheck to "Mirror">> <<set $nextPassage to "Wraith Snatched Home Mirror">> <<if pcAreArmsBound("any") or $feetuse is "bound">> <<set $unbind to 1>> <</if>> <<else>> <<if $phaseWraith lt 1 and $container and $container.home and $container.home.count gte 1 and !$wraithPaleVisit>> <<for _i to 0; _i lt Object.keys($container.home.creatures).length; _i++>> <<if $container.home.creatures[_i] isnot null and $container.home.creatures[_i].creature.includes("Pale")>> <<set $wraithPaleVisit to "home">> <</if>> <</for>> <<set $phaseWraith to 1>> <</if>> <<if $phaseWraith lt 2 and $wraithPaleVisit and $wraithPaleVisit is "home">> <<set $nextPassageCheck to "Containers">> <<set $nextPassage to "Wraith Snatched Offspring">> <<set $phaseWraith to 2>> <<elseif $phaseWraith lt 3 and ($robinbed is "yours" or $robinbed is "theirs" or $kylarbed is 1)>> <<set $nextPassageCheck to "Bed">> <<set $nextPassage to "Wraith Snatched Guest">> <<set $phaseWraith to 3>> <<else>> <<set $nextPassageCheck to "Bedroom">> <<set $nextPassage to "Wraith Snatched Home Window">> <<set $phaseWraith to 4>> <</if>> <</if>> <<case "Eden Cabin">> <<pass 1>> <<set $wraith.exit to "cabin">> <<if !$nextPassageCheck>> <<set $nextPassageCheck to "Cabin Actions">> <<set $nextPassage to "Cabin Actions">> <<set $phaseWraith to 0>> <<else>> <<set $phaseWraith to 4>> <<set $nextPassageCheck to "Eden Clearing">> <<set $nextPassage to "Wraith Snatched Cabin Leave">> <</if>> <<case "Cabin Actions">> <<pass 1>> <<if $phaseWraith is 0>> <<set $phaseWraith to 1>> <<set $nextPassageCheck to "Eden Mirror">> <<set $nextPassage to "Wraith Snatched Cabin Mirror">> <<elseif $phaseWraith lt 2>> <<set $nextPassageCheck to "Eden Cabin Bed">> <<set $nextPassage to "Wraith Snatched Guest">> <<set $phaseWraith to 2>> <<elseif $phaseWraith lt 3>> <<set $nextPassageCheck to "Eden Cabin">> <<set $nextPassage to "Eden Cabin">> <<set $phaseWraith to 3>> <<endevent>> <<set $phase2 to 1>> <</if>> <<case "Wolf Cave">> <<pass 1>> <<if !$nextPassageCheck>> <<set $nextPassageCheck to "Wolf Cave Clearing">> <<set $nextPassage to "Wolf Cave Clearing">> <<set $phaseWraith to 0>> <</if>> <<case "Wolf Cave Clearing">> <<pass 5>> <<if $phaseWraith is 0>> <<set $nextPassageCheck to "Wolf Cave Wash">> <<set $nextPassage to "Wraith Snatched Cave Reflection">> <<set $phaseWraith to 1>> <<else>> <<set $nextPassageCheck to "Forest">> <<set $nextPassage to "Wraith Snatched Cave Leave">> <</if>> <<case "Bird Tower">> <<set $nextPassageCheck to "Bird Tower Mirror">> <<set $nextPassage to "Wraith Snatched Far Mirror">> <<case "Farm Alex Bedroom">> <<set $nextPassageCheck to "Farm Bedroom">> <<set $nextPassage to "Farm Bedroom">> <<case "Farm Bedroom">> <<set $nextPassageCheck to "Farm Mirror">> <<set $nextPassage to "Wraith Snatched Far Mirror">> <<case "Pirate Bilge">> <<if $phaseWraith is 0>> <<set $nextPassageCheck to "Wraith Snatched Pirate Mirror">> <<set $nextPassage to "Wraith Snatched Pirate Mirror">> <<set $phaseWraith to 1>> <<else>> <<set $nextPassageCheck to "Pirate Cabin">> <<set $nextPassage to "Pirate Cabin">> <</if>> <<case "Pirate Cabin">> <<set $nextPassageCheck to "Pirate Deck">> <<set $nextPassage to "Pirate Deck">> <<case "Pirate Deck">> <<set $nextPassageCheck to "Wraith Snatched Pirate Railing">> <<set $nextPassage to "Wraith Snatched Pirate Railing">> <<case "Mansion Bedroom">> <<pass 1>> <<set $wraith.exit to "mansion">> <<if !$nextPassageCheck>> <<set $phaseWraith to 0>> <<set $nextPassageCheck to "Mansion Mirror">> <<set $nextPassage to "Wraith Snatched Mansion Mirror">> <<if pcAreArmsBound("any") or $feetuse is "bound">> <<set $unbind to 1>> <</if>> <<else>> <<if $phaseWraith is 0 and $avery_mansion.schedule is "sleep">> <<set $nextPassageCheck to "Mansion Talk">> <<set $nextPassage to "Wraith Snatched Guest">> <<set $phaseWraith to 1>> <<else>> <<set $nextPassageCheck to "Mansion Garden">> <<set $nextPassage to "Mansion Garden">> <<set $phaseWraith to 2>> <</if>> <</if>> <<case "Mansion Garden">> <<set $nextPassageCheck to "Danube Street">> <<set $nextPassage to "Wraith Snatched Mansion Leave">> <<case "Domus Street" "Barb Street" "Danube Street" "Residential Drain">> <<pass 5>> <<set $nextPassageCheck to "Residential Alleyways">> <<set $nextPassage to "Residential Alleyways">> <<case "Residential Alleyways">> <<pass 5>> <<set $nextPassageCheck to "Connudatus Street">> <<set $nextPassage to "Connudatus Street">> <<case "Connudatus Street" "Cliff Street" "Wolf Street" "Commercial Drain">> <<pass 5>> <<set $nextPassageCheck to "Commercial Alleyways">> <<set $nextPassage to "Commercial Alleyways">> <<case "Commercial Alleyways">> <<pass 5>> <<set $nextPassageCheck to "High Street">> <<set $nextPassage to "High Street">> <<case "Drain Exit">> <<pass 5>> <<set $nextPassageCheck to "Industrial Drain">> <<set $nextPassage to "Industrial Drain">> <<case "Sewers Residential" "Sewers Commercial" "Sewers Industrial">> <<set $nextPassageCheck to "Sewers Possessed">> <<set $nextPassage to "Sewers Possessed">> <<case "Sewers Scrap" "Sewers Wood">> <<set $nextPassageCheck to "Sewers Residential">> <<set $nextPassage to "Sewers Residential">> <<case "Sewers Mud" "Sewers Ruins">> <<set $nextPassageCheck to "Sewers Commercial">> <<set $nextPassage to "Sewers Commercial">> <<case "Sewers Waterfall" "Sewers Algae" "Sewers Rubble">> <<set $nextPassageCheck to "Sewers Industrial">> <<set $nextPassage to "Sewers Industrial">> <<case "Sewers Lake">> <<set $nextPassageCheck to "Sewers Waterfall">> <<set $nextPassage to "Sewers Waterfall">> <<case "Sewers Webs">> <<set $nextPassageCheck to "Sewers Wood">> <<set $nextPassage to "Sewers Wood">> <<case "Sewers Shrooms">> <<set $nextPassageCheck to "Sewers Mud">> <<set $nextPassage to "Sewers Mud">> <<case "Sewers Hole">> <<set $nextPassageCheck to "Sewers Ruins">> <<set $nextPassage to "Sewers Ruins">> <<case "Sewers Workshop">> <<set $nextPassageCheck to "Sewers Scrap">> <<set $nextPassage to "Sewers Scrap">> <<case "Harvest Street" "Mer Street" "Industrial Drain">> <<pass 5>> <<set $nextPassageCheck to "Industrial Alleyways">> <<set $nextPassage to "Industrial Alleyways">> <<case "Industrial Alleyways">> <<pass 5>> <<set $nextPassageCheck to "Oxford Street">> <<set $nextPassage to "Oxford Street">> <<case "Oxford Street" "Starfish Street" "High Street">> <<pass 5>> <<set $nextPassageCheck to "Park">> <<set $nextPassage to "Park">> <<case "Park" "Elk Street">> <<pass 5>> <<set $nextPassageCheck to "Nightingale Street">> <<set $nextPassage to "Nightingale Street">> <<case "Nightingale Street">> <<pass 5>> <<set $nextPassageCheck to "Forest">> <<set $nextPassage to "Forest">> <<set $forest to 0>> <<set $wraith.exit to "forest">> <<case "Forest">> <<pass 8>> <<set $_gwylanRescueChance to 0>> <<if $gwylan.timer.bloodVisit>> <<set $_gwylanRescueChance += 30>> <<elseif $gwylan.timer.bloodKnock>> <<set $_gwylanRescueChance += 15>> <</if>> <<if $forest lte 20>> <<set $_gwylanRescueChance += 10>> <<set $nextPassageCheck to "Forest Blood Deeper">> <<if gwylanCanRescueFromWraith() and $_gwylanRescueChance gte random(1, 100)>> <<if $gwylanRescue?.seen.includes("Wraith")>> <<set $nextPassage to "Forest Blood Gwylan Rescue Repeat">> <<else>> <<set $nextPassage to "Forest Blood Gwylan Rescue">> <</if>> <<else>> <<set $nextPassage to "Forest">> <</if>> <<if $phaseWraith isnot 5>> <<set $phaseWraith to 5>> <<else>> <<set $forestmod to 1.5>><<set $forest += 5>> <<if $forest is 25>> <<set _nextPassageCheckTemp to "Lake Shore">> <<set _nextPassageTemp to "Lake Shore">> <<set $wraith.exit to "lake">> <</if>> <</if>> <<elseif $forest gt 40 and $forest lte 50>> <<set $nextPassageCheck to "Lake Fishing Rock">> <<set $nextPassage to "Lake Fishing Rock">> <<set $wraith.exit to "lake">> <<elseif $forest gt 30>> <<set $nextPassageCheck to "Forest Blood Less Deep">> <<set $nextPassage to "Forest">> <<if $phaseWraith isnot 5>> <<set $phaseWraith to 5>> <<else>> <<set $forestmod to 1.5>><<set $forest -= 5>> <<if $forest is 50>> <<set _nextPassageCheckTemp to "Lake Fishing Rock">> <<set _nextPassageTemp to "Lake Fishing Rock">> <</if>> <</if>> <<else>> <<set $nextPassageCheck to "Lake Shore">> <<set $nextPassage to "Lake Shore">> <<set $wraith.exit to "lake">> <</if>> <<case "Lake Campsite">> <<pass 5>> <<set $nextPassageCheck to "Lake Fishing Rock">> <<set $nextPassage to "Lake Fishing Rock">> <<set $wraith.exit to "lake">> <<case "Lake Fishing Rock">> <<pass 5>> <<set $nextPassageCheck to "Lake Waterfall">> <<set $nextPassage to "Lake Waterfall">> <<set $wraith.exit to "lake">> <<case "Lake Firepit">> <<pass 5>> <<set $nextPassageCheck to "Lake Shore">> <<set $nextPassage to "Lake Shore">> <<set $wraith.exit to "lake">> <<case "Lake Waterfall">> <<pass 5>> <<if $phaseWraith lt 1 and $container and $container.lake and $container.lake.count gte 1 and !$wraithPaleVisit>> <<for _i to 0; _i lt Object.keys($container.lake.creatures).length; _i++>> <<if $container.lake.creatures[_i] isnot null and $container.lake.creatures[_i].creature.includes("Pale")>> <<set $wraithPaleVisit to "lake">> <</if>> <</for>> <<set $phaseWraith to 1>> <</if>> <<if $wraithPaleVisit and $wraithPaleVisit is "lake" and $phaseWraith lt 3>> <<set $nextPassageCheck to "Containers">> <<set $nextPassage to "Wraith Snatched Offspring">> <<set $phaseWraith to 3>> <<else>> <<set $nextPassageCheck to "Lake Shore">> <<set $nextPassage to "Lake Shore">> <<set $wraith.exit to "lake">> <</if>> <<case "Lake Shore">> <<pass 5>> <<if $phaseWraith lt 1 and $container and $container.lake and $container.lake.count gte 1 and !$wraithPaleVisit>> <<for _i to 0; _i lt $container.lake.count; _i++>> <<if $container.lake.creatures[_i].creature.includes("Pale")>> <<set $wraithPaleVisit to "lake">> <</if>> <</for>> <<set $phaseWraith to 1>> <</if>> <<if $phaseWraith lt 2 and $wraithPaleVisit and $wraithPaleVisit is "lake">> <<set $nextPassageCheck to "Lake Waterfall">> <<set $nextPassage to "Lake Waterfall">> <<set $phaseWraith to 2>> <<else>> <<if Weather.isFrozen("lake")>> <<set $nextPassageCheck to "Lake Shallows Ice">> <<set $nextPassage to "Lake Shallows Ice">> <<else>> <<set $nextPassageCheck to "Lake Shallows">> <<set $nextPassage to "Lake Shallows">> <</if>> <</if>> <<case "Lake Shallows">> <<pass 5>> <<set $nextPassageCheck to "Lake Depths">> <<set $nextPassage to "Lake Depths">> <<case "Lake Shallows Ice">> <<pass 5>> <<set $nextPassageCheck to "Lake Depths Ice">> <<set $nextPassage to "Lake Depths Ice">> <<case "Lake Depths">> <<pass 5>> <<set $nextPassageCheck to "Lake Underwater">> <<set $nextPassage to "Lake Underwater">> <<case "Lake Depths Ice">> <<pass 5>> <<set $nextPassageCheck to "Lake Depths Ice Break">> <<set $nextPassage to "Lake Depths Ice Break">> <<case "Lake Underwater" "Lake Ruin Deep">> <<pass 5>> <<set $nextPassageCheck to "Lake Ruin">> <<set $nextPassage to "Lake Ruin">> <<case "Lake Ruin">> <<pass 2>> <<set $nextPassageCheck to "Lake Ruin Prison Intro">> <<set $nextPassage to "Lake Ruin Prison Intro">> <</switch>> <</if>> <<if !$wraith.will>> <<if $wraith.state is "haunt">> <<set $wraith.will to random(1300, 1700)>> <<else>> <<set $wraith.will to random(1100, 1500)>> <</if>> <</if>> <<set _wraithWill to Math.floor(1 + $wraith.will)>> <<if $wraith.possessCount is undefined>> <<if $location is "forest" or $location is "lake">> <<set _wraithWill /= 3>> <<else>> <<set _wraithWill /= 2>> <</if>> <</if>> <<if $wraithWillMessage and !$combat>> <<if $phase2 is 1>> <<set $phase2 to 0>> <<controlcaption>> <br> <<elseif ($passage isnot "Forest" or $passagePrev isnot "Forest") and $passage is $nextPassageIntended or $nextPassageCheck is $nextPassageIntended>> <<controlcaption>> <<set $willpowerSuccess to 0>> <br> <span class="pink">You let it take you.</span> <<pain -2>><<stress -12>><<sub 2>><<lpain>><<llstress>><<set $wraith.will += 30>> <<if numberOfEarSlime() and $worn.genitals.name is "chastity parasite" and $earSlime.vibration lt 60 and !$earSlime.defyCooldown>><<set $earSlime.vibration to 60>><<garousal>><</if>> <br><br> <<else>> <<if numberOfEarSlime() and $earSlime.growth gte 100>><<set $earSlime.vibration to 0>><<set $earSlime.defyCooldown++>><</if>> <<set $willpowerSuccess to 0>> <<willpowerdifficulty 1 _wraithWill true>> <<if $willpowerSuccess>> <<control `Math.floor(currentSkillValue('willpower') / 80)`>> <<controlcaption>> <br> <<if _notMoving>> <span class="green">You fight for control.</span> <<else>> <span class="green">You fight for control. It becomes slower.</span> <<pass 4>> <</if>> <<pain 4>><<stress 12>><<trauma 12>><<def 2>><<gpain>><<ggtrauma>><<ggstress>><<gcontrol>><<set $wraith.will -= Math.floor(currentSkillValue('willpower') / 8)>> <br><br> <<else>> <<controlcaption>> <br> <span class="red">Your body does not obey.</span> <<stress 6>><<trauma 6>><<willpower 1>><<def 1>><<gtrauma>><<gstress>><<gwillpower>><<set $wraith.will -= Math.floor(currentSkillValue('willpower') / 10)>> <br><br> <</if>> <</if>> <</if>> <<if _nextPassageCheckTemp>> <<set $nextPassage to _nextPassageTemp>> <<set $nextPassageCheck to _nextPassageCheckTemp>> <</if>> <<if $phase2 is 2>> <<set $phase2 to 0>><<set $pain to 0>> <</if>> <<if _args[0]>> <<if $passage is "Forest" and $gwylanDoesALittleTrolling>> <<unset $gwylanDoesALittleTrolling>> <<set $nextPassage to "Forest Wraith Gwylan 5">> <<elseif $bus isnot "lake_ruin_prison" and (Time.hour gte 6 and $moonstate is "morning" and $wraith.exit isnot "home" or $control gte $controlmax)>> <<if $location is "lake_ruin">> <<set $nextPassage to "Wraith Resisted Lake">> <<else>> <<set $nextPassage to "Wraith Resisted">> <</if>> <</if>> <</if>> <</if>> <</widget>><<set $outside to 0>><<set $location to "lake_ruin">><<set $bus to "lake_ruin_prison">><<set $wraith.exit to "lake_ruin">><<underwater>><<effects>> You place your hand against the rune. You trace a symbol around it with your other hand, and it flashes to life with a red glow. <br><br> The walls rumble. Plumes of purple steam hiss as seams appear between the stone. Masses of lichen crumble and float away. The wall around the rune begins to retract backwards, before falling into the floor. You swim into the breach. <br><br> Before you is a staircase leading up into darkness. Small patches of lichen illuminate sections of the wall. At the top, you can see a faint glow. You clumsily pull yourself along the walls leading up. <br><br> <span class="nextLink"><<link [[Up (0:02)|Lake Ruin Prison Intro 2]]>><<pass 2>><</link>></span> <br><<set $outside to 0>><<set $location to "lake_ruin">><<set $bus to "lake_ruin_prison">><<set $wraith.exit to "lake_ruin">><<effects>> You hear the scraping of stone behind you as you climb. After some time, you fall forwards, landing on your hands. <span class="blue">You've left the water.</span> There's a large air pocket here, and the air is filled with a purple mist. You crawl up the last of the stairs. <br><br> <<if $wraithPrison>> You're back in the underwater prison. <<else>> As you reach the top, you see the source of the glow. You're in a massive stone room lit by a colossal colony of glowing purple lichen. It snakes along the walls, occasionally following the pattern of intricate carvings. All around you are sets of large cages, many of which have rusted away. You spot a set of shackles in one of them. Another one of the cages seems to be the epicentre of the lichen colony, with much of it completely covered. <br><br> <</if>> You double over in pain. A pale, translucent limb emerges from your chest, followed by another. You're forcefully pushed into leaning backwards as it leaves you. <<pain 10>><<ggpain>> <br><br> <<endWraith>> <<generateWraith 1 true>> You collapse on the cold stone floor, with your senses slowly returning to you. You retch, coughing up water. You sharply inhale, and taste a sickening sweetness in the air. <<hallucinogen 40>><<gghallucinogens>> <br><br> <<if !$wraithIntro>> <<set $wraithIntro to true>> Before you floats a beautiful pale figure. <<if $wraith.state is "haunt">> It regards you with angry red eyes, clutching at its own scarred neck. <br><br> "<span class="wraith">Sealed away forever. As a thief should.</span>" <br><br> It grabs you by the neck and effortlessly pushes you to the ground. It floats down, coming to rest as it straddles you, and begins to put pressure on your neck. <span class="red">You can't breathe!</span> <<elseif $wraith.state is "despair">> It regards you with miserable, tired red eyes. It clutches at its own scarred, bare neck. <br><br> "<span class="wraith">H...have you seen my necklace...?</span>" <br><br> It gently puts its hands on your neck, and pushes you down on your back. It floats down, coming to rest as it straddles you. <<else>> It's naked, save for a necklace of ivory around its neck, set with large blue gemstones. It regards you with curious blue eyes, lifting your chin with its hand. It feels cold. <br><br> "<span class="wraith">Bask in immaculance. We will be beautiful.</span>" <br><br> It gently puts its hands on your neck, and pushes you down on your back. It floats down, coming to rest as it straddles you. <</if>> <<else>> The pale figure floats before you. <<if $wraith.state is "haunt">> <<if $wraithPrison and $wraithPrison.vision>> It places a clawed hand on your chest. You can feel a bitter chill in your whole body. You feel the room spin, and your back touch the floor. <br><br> "<span class="wraith">Do you understand yet, thief? Don't make me repeat myself.</span>" <<else>> It scratches its scarred neck, before pushing you over effortlessly. It floats down, and comes to rest as it straddles you. It grabs you by the neck. <span class="red">You can't breathe!</span> <br><br> "<span class="wraith">If you wish to steal from the dead, you will join them.</span>" <</if>> <<elseif $wraith.state is "despair">> <<if $wraithPrison and $wraithPrison.vision>> It places a clawed hand on your chest. You can feel a bitter chill in your whole body. You feel the room spin, and your back touch the floor. <br><br> "<span class="wraith">I can't find it. It's so cold without my necklace. Won't you keep me warm, <<pcpetname "Wraith">>?</span>" <<else>> It scratches at its bare neck, before gently pushing you on your back. It floats down, and comes to rest as it straddles you. <br><br> "<span class="wraith">It's so cold without my necklace. Won't you keep me warm, <<pcpetname "Wraith">>?</span>" <</if>> <<else>> It thumbs its necklace, before gently pushing you on your back. It floats down, and comes to rest as it straddles you. <br><br> "<span class="wraith">Welcome home, <<pcpetname "Wraith">>.</span>" <</if>> <</if>> Its gaze bores into you, keeping your body weak and unresponsive. <<if C.npc["Ivory Wraith"].lust gte 12 and $wraith.state is "haunt">> A sadistic smile creeps across its face. <<else>> It seems to hesitate for a moment, as if in thought. <</if>> <<if !$wraithPrison>> <br><br> <<link [[Beg|Lake Prison Intro 3]]>><<set $phase to 1>><<sub 1>><</link>> <br> <<link [[Struggle|Lake Prison Intro 3]]>><<set $phase to 2>><<def 1>><</link>> <br> <<else>> <<if $settings.parasitesEnabled and ($parasite.left_ear.name is undefined or $parasite.right_ear.name is undefined) and $settings.slimesEnabled and !$noEarSlime>> It raises a hand to the side, and a swirling purple disc appears in the air. It reaches in, and pulls out a writhing red mass. A living slime. It lowers it down to your ear. <br><br> <<link [[Struggle|Lake Prison Slime Resist]]>><</link>> <br> <<link [[Stay still|Lake Prison Slime]]>><</link>> <<else>> <<initWraith "abomination">> <<startWraith>> <br><br> <<link [[Next|Lake Prison Intro Fight]]>><</link>> <</if>> <</if>> <br> <<if !$wraithPrison>> <<set $wraithPrison to {timer: 0, timePassed: 0, search: 0, state: "present", possession: false, masturbation: false}>> <<else>> <<set $wraithPrison.timer to 0>> <<set $wraithPrison.timePassed to 0>> <<set $wraithPrison.search to 0>> <<set $wraithPrison.state to "present">> <<set $wraithPrison.possession to false>> <<set $wraithPrison.masturbation to false>> <</if>><<set $outside to 0>><<set $location to "lake_ruin">><<set $bus to "lake_ruin_prison">><<set $wraith.exit to "lake_ruin">><<effects>> <<if $phase is 1>> <<if $speech_attitude is "meek">> "P-please, don't hurt me..." you beg. <<elseif $speech_attitude is "bratty">> "Whatever you are, please leave me alone!" you yell. <<else>> "Please, I'm sorry! Don't hurt me!" you beg. <</if>> <br><br> <<if $wraith.state is "haunt">> "<span class="wraith">A thief is not one to beg.</span>" It grabs your neck more violently, cutting off your pleas. <<pain 8>><<gpain>> <<elseif $wraith.state is "despair">> "<span class="wraith">Did you take it? No, no...</span>" It gives you a profoundly sad frown, before grabbing you by the neck. <<pain 4>><<gpain>> <<else>> "<span class="wraith">I promise endless pleasure. Is this not enough?</span>" It giggles, before grabbing you by the neck. <<pain 4>><<gpain>> <</if>> <<else>> You try to pry its hands off of you, to no end. It smiles at you. <<if $wraith.state is "haunt">> "<span class="wraith">Struggle. It will only drown you faster.</span>" <<elseif $wraith.state is "despair">> "<span class="wraith">Did you take it? No, no...</span>" <<else>> "<span class="wraith">Save your energy. You will need it.</span>" <</if>> <</if>> <br><br> <<if $settings.parasitesEnabled and ($parasite.left_ear.name is undefined or $parasite.right_ear.name is undefined) and $settings.slimesEnabled and !$noEarSlime>> It raises a hand to the side, and a swirling purple disc appears in the air. It reaches in, and pulls out a writhing red mass. A living slime. It lowers it down to your ear. <br><br> <<link [[Struggle|Lake Prison Slime Resist]]>><</link>> <br> <<link [[Stay still|Lake Prison Slime]]>><</link>> <<else>> <<initWraith "abomination">> <<startWraith>> <br><br> <<link [[Next|Lake Prison Intro Fight]]>><</link>> <</if>> <br><<set $outside to 0>><<set $location to "lake_ruin">><<set $bus to "lake_ruin_prison">><<set $wraith.exit to "lake_ruin">><<effects>> With the last of your willpower, you keep moving your head, preventing the slime from entering. <br><br> It looks down at you and whispers. "<span class="wraith">You will bend. Or you will break.</span>" <<initWraith "abomination">> <<startWraith>> <br><br> <<link [[Next|Lake Prison Intro Fight]]>><</link>> <br><<set $outside to 0>><<set $location to "lake_ruin">><<set $bus to "lake_ruin_prison">><<set $wraith.exit to "lake_ruin">><<effects>> <<set $wraithParasite to true>> It brings the slime down to your <<if $parasite.left_ear.name is undefined>> left ear, <span class="lewd">where it squirms in.</span> <<parasite left_ear slime>> <<set $parasite.left_ear.origin to "Wraith">> <<elseif $parasite.right_ear.name is undefined>> right ear, <span class="lewd">where it squirms in.</span> <<parasite right_ear slime>> <<set $parasite.right_ear.origin to "Wraith">> <</if>> <br><br> You shake in the figure's grasp. You feel unnaturally aroused, especially with it straddling you like this. It's a small feeling at first. Then it grows, until <span class="lewd">an overwhelming desire for lewdity overtakes you.</span> It looks pleased. <<lobsession>> <br><br> <<if numberOfEarSlime() is 1>> <i>A corruption bar has appeared in the Characteristics tab.</i> <br><br> <</if>> Its grip on you loosens<<if $wraith.state is "haunt">>, and you gasp for breath<</if>>. You hear whispers all around you. <<if numberOfEarSlime() gte 2>> <span class="lewd">The ear slimes are stronger now, redoubled. It commands you to give yourself to the pale figure.</span> By now you know how good it will feel to comply. <<else>> <span class="lewd">Something inside pressures you to give yourself to the pale figure.</span> Somehow, you know going along with the urges will feel good, and disobeying will be painful. <</if>> <<initWraith "abomination">> <<startWraith>> <br><br> <<if hasSexStat("promiscuity", 4) and $submissive gte 1900>> <<link [[Submit|Lake Prison Intro Fight]]>> <<set $sexstart to 1>><<corruption 3>><<pain -8>><<stress -12>><<trauma -24>><<sub 2>> <<if $earSlime.promiscuity lt 4>><<set $earSlime.promiscuity to 4>><</if>> <<if $earSlime.deviancy lt 4>><<set $earSlime.deviancy to 4>><</if>> <<set $earSlime.startedThreats to true>> <</link>><<promiscuous4>><<ggcorruption>><<llpain>><<llltrauma>><<llstress>> <br> <</if>> <<link [[Obey|Lake Prison Intro Fight]]>> <<corruption 1>><<pain -4>><<stress -6>><<trauma -12>><<sub 1>> <<if $earSlime.promiscuity lt 2>><<set $earSlime.promiscuity to 2>><</if>> <<if $earSlime.deviancy lt 2>><<set $earSlime.deviancy to 2>><</if>> <</link>><<gcorruption>><<lpain>><<lltrauma>><<lstress>> <br> <<link [[Defy|Lake Prison Intro Fight]]>><<corruption -1>><<pain 8>><<stress 6>><<trauma 6>><<def 1>><</link>><<lcorruption>><<ggpain>><<ggtrauma>><<ggstress>> <br><<effects>> <<if $sexstart is 1>> <<set $sexstart to 0>> <<consensual>> <<set $consensual to 1>> <<neutral 1>> <<set $enemytype to $wraith.type>> <<elseif $struggle_start is 1>> <<set $combat to 1>> <<controlloss>> <<violence 1>> <<molested>> <<if $player.penisExist>> <<set $struggle.penis.creature to "pale slime">><<set $penisuse to "struggle">><<set $penisstate to "struggle">><<set $struggle.enemy[0].location to "penis">> <<else>> <<set $struggle.vagina.creature to "pale slime">><<set $vaginause to "struggle">><<set $vaginastate to "struggle">><<set $struggle.enemy[0].location to "vagina">> <</if>> <<unset $struggle_start>> <<elseif $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<set $enemytype to $wraith.type>> <</if>> <<effectsWraith>> <<switch $wraith.type>> <<case "man">> <<if _combatend>> <span id="next"><<link [[Next|Lake Prison Intro Fight Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Lake Prison Intro Fight]]>><</link>></span><<nexttext>> <</if>> <<case "tentacles">> <<if $tentacles.active lte ($tentacles.max / 2)>> <span id="next"><<link [[Next|Lake Prison Intro Fight Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Lake Prison Intro Fight]]>><</link>></span><<nexttext>> <</if>> <<case "slime">> <<if $struggle.done gte $struggle.number>> <span id="next"><<link [[Next|Lake Prison Intro Fight Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Lake Prison Intro Fight]]>><</link>></span><<nexttext>> <</if>> <</switch>> <br><<effects>> <<if !$wraithCount>> <<set $wraithCount to 0>> <</if>> <<if !$wraithMax>> <<set $wraithCount to 0>> <<set $wraithMax to 2>> <<if C.npc["Ivory Wraith"].lust gt 10>> <<set $wraithMax++>> <</if>> <<if !$settings.tentaclesEnabled>> <<set $wraithMax -->> <</if>> <</if>> <<if $wraith.type is "man" and $enemyhealth lte 0>> The <<person>> looks down at you in shock as <<he>> staggers backwards. <<if $wraith.gen is "abomination">> The tentacles drop lifelessly to the ground, and sublimate into a pink mist. <<elseif $wraith.gen is "arms">> <<His>> extra arms fold back in. <</if>> A terrible shriek pierces the air, forcing you to your knees. It grabs you by the neck, and lifts you. <<if $worn.neck.cursed is 1>> There's a flash of light, a deep groaning sound, and your $worn.neck.name is no more. <<set $worn.neck.type.push("broken")>> <<neckruined>> <</if>> <br><br> You're dragged and thrust into the cage next to the centre of the lichen colony. There's no door. The figure becomes more translucent, and begins fading. "<span class="wraith">I must recover. You will wait.</span>" It vanishes in a bright flash. <br><br> <<tearful>> you look around, trying to make sure its really gone. <<set $wraith.defeated++>> <<set $wraithPrison.timer to 120>> <<set $wraithPrison.state to "recovering">> <<clotheson>> <<endcombat>> <<endWraith>> <br> <<link [[Next|Lake Ruin Prison]]>><<unset $wraithParasite>><</link>> <br> <<elseif $enemyarousal gte $enemyarousalmax or ($wraith.type is "tentacles" and $tentacles.active lte ($tentacles.max / 2)) or ($wraith.type is "slime" and $struggle.done gte $struggle.number)>> <<set $wraithCount++>> <<ejacW>> <<if $wraithCount gte $wraithMax or $wraithCount gte 5>> <<kissWraith>> <br><br> <<if $settings.parasitesEnabled and ($parasite.left_ear.name is undefined or $parasite.right_ear.name is undefined) and $settings.slimesEnabled and !$wraithParasite and !$noEarSlime>> <<set $wraithParasite to true>> It brings the slime down to your <<if $parasite.left_ear.name is undefined>> left ear, <span class="lewd">where it squirms in.</span> <<parasite left_ear slime>> <<set $parasite.left_ear.origin to "Wraith">> <<elseif $parasite.right_ear.name is undefined>> right ear, <span class="lewd">where it squirms in.</span> <<parasite right_ear slime>> <<set $parasite.right_ear.origin to "Wraith">> <</if>> <br><br> You shake in the figure's grasp. You feel unnaturally aroused, especially with it straddling you like this. It's a small feeling at first. Then it grows, until <span class="lewd">an overwhelming desire for lewdity overtakes you.</span> <br><br> <<if !$earSlime.corruption>> <i>A corruption bar has appeared in the Characteristics tab.</i> <br><br> <</if>> Its grip on you loosens<<if $wraith.state is "haunt">>, and you gasp for breath<</if>>. You hear whispers all around you. <span class="lewd">Something inside pressures you to give yourself to the pale figure.</span> Somehow, you know going along with the urges will feel good, and disobeying will be painful. <br><br> <</if>> It suddenly lifts you, and begins to carry you. You're helpless to resist. You're placed in a decrepit cage, right next to the centre of the lichen colony. There's no door. <<if $wraith.state is "haunt">> <<if !$wraithPrison.vision>> "<span class="wraith">I will break open your mind, and then I will show you. And then you will. Give. It. Back.</span>" <<else>> "<span class="wraith">The descent begins again. Isn't it beautiful?</span>" <</if>> <<elseif $wraith.state is "despair">> <<if !$wraithPrison.vision>> "<span class="wraith">Help me find it. See what I've seen. Stay.</span>" <<else>> "<span class="wraith">Again. Again. Descending. Where is it?</span>" <</if>> <</if>> <<if $worn.neck.cursed is 1>> It rests a hand against your $worn.neck.name. There's a flash of light, a deep groaning sound, and your $worn.neck.name is no more. <<set $worn.neck.type.push("broken")>> <<neckruined>> <</if>> It floats away from the cell, out of sight. <<tearful>> you look around, trying to think of a way out. The figure is nowhere to be seen. <<set $wraithPrison.timer to 60>> <<set $wraithPrison.state to "recovering">> <<clotheson>> <<endcombat>> <<endWraith>> <br> <<link [[Next|Lake Ruin Prison]]>><<unset $wraithParasite>><</link>> <br> <<else>> <<continueWraith>> <br><br> <<link [[Next|Lake Prison Intro Fight]]>><</link>> <br> <</if>> <<else>> It suddenly lifts you, and begins to carry you. You're helpless to resist. You're placed in a decrepit cage, right next to the centre of the lichen colony. There's no door. <<if $wraith.state is "haunt">> <<if !$wraithPrison.vision>> "<span class="wraith">I will break open your mind, and then I will show you. And then you will. Give. It. Back.</span>" <<else>> "<span class="wraith">The descent begins again. Isn't it beautiful?</span>" <</if>> <<elseif $wraith.state is "despair">> <<if !$wraithPrison.vision>> "<span class="wraith">Help me find it. See what I've seen. Stay.</span>" <<else>> "<span class="wraith">Again. Again. Descending. Where is it?</span>" <</if>> <</if>> <<if $worn.neck.cursed is 1>> It rests a hand against your $worn.neck.name. There's a flash of light, a deep groaning sound, and your $worn.neck.name is no more. <<set $worn.neck.type.push("broken")>> <<neckruined>> <</if>> It floats away from the cell, out of sight. <<tearful>> you look around, trying to think of a way out. The figure is nowhere to be seen. <<set $wraithPrison.timer to 60>> <<set $wraithPrison.state to "recovering">> <<clotheson>> <<endcombat>> <<endWraith>> <br> <<link [[Next|Lake Ruin Prison]]>><<unset $wraithParasite>><</link>> <br> <</if>><<set $outside to 0>><<set $location to "lake_ruin">><<set $wraith.exit to "lake_ruin">><<set $bus to "lake_ruin_prison">><<effects>> You are in a submerged prison. Pink mist swirls in the air. <<ghallucinogens>> <br><br> <<if $wraithPrison.state is "present">> <<set _wraithEvent to true>> <</if>> <<if isPregnancyEnding() and !$possessed>> <<set $wraithPrison.state to "gone">> <<endWraith>> <<clearWraith>> <<pregnancyPassout "wraith">> <<else>> <<if $moonstate is "morning" and Time.hour gte 6 and $wraithPrison.timePassed gte 120 and $wraithPrison.state isnot "gone">> You see the figure near the staircase leading down. It's flickering. <br><br> <<if $wraith.state is "haunt">> <<if !$wraithPrison.vision>> It stares at you with pure anger and hatred. It screams, and begins floating in circles, clawing at its own bare neck and wailing. <br><br> It flickers out, only to flicker back right in front of you. It grabs you by the neck, its hand long and clawed. It swiftly drags you to the stairs, and plunges your head under the water. <<stress 24>><<pain 10>><<gpain>><<gstress>> <br><br> You struggle against it. It screams. "<span class="wraith">I will show you exactly what you've done. I will find you again, thief. You have not suffered enough. You were not ready.</span>" <<gobsession>> <br><br> It flickers backwards. You bring your head back up above the water, and cough. <<tearful>> you stand. The rune at the bottom of the stairs glows again. <<elseif C.npc["Ivory Wraith"].lust gte 12>> It stares at you with pure anger. It growls, and begins floating in circles, holding its own neck. <br><br> It flickers out, only to flicker back right in front of you. It grabs you by the neck, its hand long and clawed. You're pressed back against the wall. <<stress 12>><<pain 5>><<gpain>><<gstress>> <br><br> You struggle against it. It whispers. "<span class="wraith">You've seen it. Do you seek penance? More. More pain, first.</span>" <br><br> It flickers backwards. You slide down the wall. <<tearful>> you stand. The rune at the bottom of the stairs glows again. <<lobsession>> <<else>> It stares at you with apprehension, before appearing directly in front of you. It brings a clawed hand up, as if to strike you, and you instinctively cover your face. <br><br> You instead feel a gentle caress against your cheek. You slowly open your eyes. <span class="green">The clawed hand is gone, replaced by pale, supple skin. You see a faint familiarity in its face.</span> <br><br> "<span class="wraith">We're still falling, nowhere near the bottom. But maybe we don't need to reach the bottom.</span>" <<lobsession>> <</if>> <<elseif $wraith.state is "despair">> <<if !$wraithPrison.vision>> It stares at you with a look of regret. It screams, and begins floating in circles, clawing at its own bare neck and wailing. <br><br> It flickers out, only to flicker back right in front of you. It reaches out for your neck, its hand long and clawed. But it stops short. It begins to sob, and collapses before you. <br><br> "<span class="wraith">I'm sorry. You were not ready. We must suffer more.</span>" <<gobsession>> <br><br> It flickers backwards, away from you. The rune at the bottom of the stairs glows again. <<elseif C.npc["Ivory Wraith"].lust gte 12>> It stares at you with anger and regret. It growls, and begins floating in circles, clawing at its own bare neck. <br><br> It flickers out, only to flicker back right in front of you. It grabs you by the neck, its hand long and clawed. You're pressed back against the wall. <<stress 12>><<pain 5>><<gpain>><<gstress>> <br><br> You struggle against it. It immediately drops you, looking horrified. "<span class="wraith">I'm sorry. It wasn't you. It wasn't you...</span>" <<lobsession>> <br><br> It floats backwards. You slide down the wall. <<tearful>> you stand. The rune at the bottom of the stairs glows again. <<else>> It stares at you with a look of regret. It flickers out of sight, only to appear right before you. <br><br> "<span class="wraith">You've seen it. Have you seen it? Will you help me? You will help me.</span>" <<lobsession>> <br><br> It floats backwards, away from you. The rune at the bottom of the stairs glows again. <</if>> <<else>> "<span class="wraith">My time comes to an end. You will return, next moon.</span>" <<if numberOfEarSlime()>> <<if $earSlime.growth gte 200>> It giggles, and you feel the slime in your head briefly take full control over your body. "<span class="wraith">This is the only place you can free yourself from the parasites you have become one with, after all.</span>" <<else>> It giggles, and you feel the slime in your head wriggle. "<span class="wraith">This is the only place you can free yourself from the parasite, after all.</span>" <</if>> <</if>> <</if>> <br><br> A torrent of water shoots up from the stairs, and when it passes, the figure is gone. <span class="blue"><i>You're safe until the next blood moon.</i></span> <br><br> <<set $wraithPrison.state to "gone">> <<unset _wraithEvent>> <<endWraith>> <<clearWraith>> <</if>> <<if _wraithEvent is true>> <<if ["haunt", "despair"].includes($wraith.state) and $trauma gte ($traumamax / 10) * 4 and $wraithPrison.timePassed gte 140>> The pale figure emerges from the ground. You feel your energy being sapped away already. You're pushed into one of the cells and onto a bed of lichen by an unseen force. <br><br> <<if $wraith.state is "haunt">> It looks you over with a cold gaze, and grabs your cheeks with a clawed hand. <<if !$wraithPrison.vision>> "<span class="wraith">What was it you were seeking when you stole from the dead? Answers? I'll show you what it's like to drown with the corpse of this temple. May your curiosity be sated as the waves chew your bones. <<pcPetname "Wraith">>. <<pcPetname "Wraith">>.</span>" <<else>> "<span class="wraith">Down we go, once again. <<pcPetname "Wraith">>.</span>" <</if>> <<else>> It looks you over with a desperate gaze, and grabs your cheeks with a clawed hand. <<if !$wraithPrison.vision>> "<span class="wraith">You must see. You must understand. You must help me. Where is it? <<pcPetname "Wraith">>.</span>" <<else>> "<span class="wraith">Help me. Where is it? <<pcPetname "Wraith">>.</span>" <</if>> <</if>> <br><br> It grabs a handful of lichen from the centre of the large colony, and tilts your head back. It begins to drop the crushed lichen into your mouth. <<if $wraithPrison.vision>> You know better than to try to resist. <<else>> You try to spit it out, but your body isn't obeying you. <</if>> Once your mouth is full of the flowering lichen, it kisses you. You tense up, but soon enough, you feel an odd sense of relief. <<takeKissVirginity "Ivory Wraith" "rape">> <<stress -200>><<lllstress>><<trauma 36>><<gggtrauma>><<purity -50>><<lllpurity>><<physique_loss 16>><<llphysique>><<pain -15>><<llpain>> <br><br> Everything spins out around you, leaving only you and a pale face in a swirling sea of nothing. Your mind screams for release as your thoughts burn away. <<ggghallucinogens>> <br><br> Your vision turns and warps in ways you didn't know were possible. Your skin ripples, like wax melting off a candle. You see yourself from above, backlit by the glowing lichen. You look down at your arms, and find them to be unnaturally pale. <br><br> <span class="nextLink"><<link [[Wake up.|Schism]]>><</link>></span> <br> <<else>> <<generateWraith 1>> The pale figure emerges from the ground. You're pulled towards it by an unseen force. It looks you over. <br><br> <<if $wraith.state is "haunt">> "<span class="wraith"><<print either( "Open your eyes.", "<<pcPetname \"Wraith\">>.", "You must sleep before you can awaken.", "You must open your mind, only then can you face penance.", "You aren't ready to see yet, thief. I will make you ready.", "I will take everything from you. Only then will you understand." )>></span>" <<elseif $wraith.state is "despair">> "<span class="wraith"><<print either( "So cold.", "I'm sorry.", "Have you seen it?", "We must suffer together.", "<<pcPetname \"Wraith\">>.", "You are everything I have." )>></span>" <<else>> "<span class="wraith"><<print either( "Do not resist.", "Won't you give in?", "Drown with me, forever.", "<<pcPetname \"Wraith\">>.", "I am already inside you.", "This is everything you have." )>></span>" <</if>> <br><br> <<if $rng gte 91>> It grabs a handful of the pink lichen, and grabs your face with its other hand, forcing your mouth open. It crumbles the lichen, and flakes begin to fall into your mouth. <br><br> <<set $skulduggerydifficulty to 600>> <<link [[Accept it|Lake Ruin Lichen Eat]]>><<trauma 100>><<stress -50>><<set $phaseWraith to 1>><<hallucinogen 220>><</link>><<gggtrauma>><<lllstress>><<gghallucinogens>> <br> <<link [[Pretend to eat|Lake Ruin Lichen Eat]]>><<set $phaseWraith to 2>><</link>><<skulduggerydifficulty>> <br> <<link [[Spit it out|Lake Ruin Lichen Eat]]>><<set $phaseWraith to 3>><</link>> <br> <<elseif $rng gte 71 and $wraithPrison.possession is false>> <<if !$wraith.will>> <<set $wraith.will to random(1300, 1700)>> <</if>> <<set _wraithWill to Math.floor(1 + $wraith.will)>> You feel it try to enter your body. <br><br> <<link [[Give in|Lake Ruin Prison Possession]]>><<if numberOfEarSlime()>><<corruption 1>><<pain -4>><<stress -6>><<trauma -12>><</if>><<sub 1>><</link>><<if numberOfEarSlime()>><<gcorruption>><<lpain>><<lltrauma>><<lstress>><</if>> <br> <<link [[Resist|Lake Ruin Prison Possession Resist]]>><<set $phase to 1>><<if numberOfEarSlime()>><<corruption -1>><<pain 8>><<stress 6>><<trauma 6>><</if>><<def 1>><</link>><<if numberOfEarSlime()>><<lcorruption>><<ggpain>><<ggtrauma>><<ggstress>><</if>><<willpowerdifficulty 1 _wraithWill>> <br> <<elseif $rng gte 51 and !$wraithPrison.masturbation>> <<if !$wraith.will>> <<set $wraith.will to random(1300, 1700)>> <</if>> <<set _wraithWill to Math.floor(1 + $wraith.will)>> You feel it try to enter your body. <br><br> <<link [[Give in|Lake Ruin Prison Masturbation Start]]>><<if numberOfEarSlime()>><<corruption 1>><<pain -4>><<stress -6>><<trauma -12>><</if>><<sub 1>><</link>><<if numberOfEarSlime()>><<gcorruption>><<lpain>><<lltrauma>><<lstress>><</if>> <br> <<link [[Resist|Lake Ruin Prison Masturbation Resist]]>><<set $phase to 1>><<if numberOfEarSlime()>><<corruption -1>><<pain 8>><<stress 6>><<trauma 6>><</if>><<def 1>><</link>><<if numberOfEarSlime()>><<lcorruption>><<ggpain>><<ggtrauma>><<ggstress>><</if>><<willpowerdifficulty 1 _wraithWill>> <br> <<else>> <<initWraith>> <<startWraith>> <br><br> <<link [[Next|Lake Ruin Prison Rape]]>><</link>> <br> <</if>> <</if>> <<elseif $wraithPrison.state is "gone">> <<link [[Enter the water|Lake Ruin Prison Leave]]>><<wraith_pass 2>><</link>> <br> <<elseif !$wraithPrison.search>> <<link [[Search for a way out (0:30)|Lake Ruin Prison Search]]>><<wraith_pass 30>><</link>> <br> <<else>> <<if $wraithPrison.search is 1>> <<link [[Examine the cages (0:15)|Lake Ruin Prison Search]]>><<wraith_pass 15>><</link>> <br> <<elseif $wraithPrison.search is 2>> <<link [[Keep searching (0:30)|Lake Ruin Prison Search]]>><<wraith_pass 30>><</link>> <br> <<elseif $wraithPrison.search is 3>> <<link [[Swim down the stairs|Lake Ruin Prison Search]]>><<wraith_pass 2>><</link>> <br> <</if>> <<if $wraithPrison.search gte 2>> <<link [[Rest (1:00)|Lake Ruin Prison Rest]]>><<wraith_pass 60>><<set $tiredness -= 500>><<trauma 50>><</link>><<ltiredness>><<ggtrauma>> <</if>> <</if>> <</if>><<effects>> <<if !$wraithPrison.search>> <<set $wraithPrison.search to 1>> You look around the large chamber. The colony of glowing lichen is unlike anything you've ever seen before, and you wonder how it's survived. As you ponder, you realise this room should be flooded like the rest of the ruin. <br><br> You see discoloured marks on the walls, and the remains of rusted shackles below them. The cages are incapable of holding anything anymore, but you notice that each one has a large patch of lichen in the same corner. <<elseif $wraithPrison.search is 1>> <<set $wraithPrison.search to 2>> You examine the cages. The glowing lichen has completely covered the bars in some places. You run your hand against it, and some of the bars crumble entirely away. <br><br> You become uneasy as you think about why the lichen starts in the back right corner of each cell. You take a closer look, and start to clear some of it away. <br><br> You find a large scrap of cloth underneath, torn in countless places by the lichen growing through. <<if $historytrait gte 4>>It looks like the remains of an ancient bedroll.<</if>> <<elseif $wraithPrison.search is 2>> <<set $wraithPrison.search to 3>> You find the smashed remains of a small statue at the far end of the room. It's damaged beyond any value, but you think you can make out the shape of arms and wings. <br><br> You approach the stairs leading downwards. Dark water extends into nothingness. You spot a faint glow at the end. <<elseif $wraithPrison.search is 3>> <<set $wraithPrison.search to 4>> You take a deep breath, and swim down. It's a long distance. <<loxygen>> <br><br> <<water>><<effectswater "water">> When you finally reach the end, you see the same glowing rune. You place your hand against it, but nothing happens. You try pushing, but it's hopeless. You swim back up. <br><br> <span class="red">There's no way out.</span> <</if>> <br><br> <<link [[Next|Lake Ruin Prison]]>><</link>> <br><<effects>> You clear away some of the lichen in one of the cells, and lie on the tattered cloth. You close your eyes, but feel like you can still see the entire room. <br><br> You don't know how much time passes. Your body feels refreshed, but your mind feels exhausted. <br><br> <<link [[Next|Lake Ruin Prison]]>><</link>> <br><<effects>> <<if $struggle_start is 1>> <<set $combat to 1>> <<controlloss>> <<violence 1>> <<molested>> <<if $player.penisExist>> <<set $struggle.penis.creature to "pale slime">><<set $penisuse to "struggle">><<set $penisstate to "struggle">><<set $struggle.enemy[0].location to "penis">> <<else>> <<set $struggle.vagina.creature to "pale slime">><<set $vaginause to "struggle">><<set $vaginastate to "struggle">><<set $struggle.enemy[0].location to "vagina">> <</if>> <<unset $struggle_start>> <<elseif $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<set $enemytype to $wraith.type>> <</if>> <<effectsWraith>> <<switch $wraith.type>> <<case "man">> <<if _combatend>> <span id="next"><<link [[Next|Lake Ruin Prison Rape Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Lake Ruin Prison Rape]]>><</link>></span><<nexttext>> <</if>> <<case "tentacles">> <<if $tentacles.active lte ($tentacles.max / 2)>> <span id="next"><<link [[Next|Lake Ruin Prison Rape Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Lake Ruin Prison Rape]]>><</link>></span><<nexttext>> <</if>> <<case "slime">> <<if $struggle.done gte $struggle.number>> <span id="next"><<link [[Next|Lake Ruin Prison Rape Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Lake Ruin Prison Rape]]>><</link>></span><<nexttext>> <</if>> <</switch>> <br><<effects>> <<if !$wraithCount>> <<set $wraithCount to 0>> <</if>> <<if !$wraithMax>> <<set $wraithCount to 0>> <<set $wraithMax to 1>> <<if C.npc["Ivory Wraith"].lust gt 10>> <<set $wraithMax++>> <</if>> <<if !$settings.tentaclesEnabled>> <<set $wraithMax -->> <</if>> <</if>> <<if $wraith.type is "man" and $enemyhealth lte 0>> The <<person>> looks down at you in shock as <<he>> staggers backwards. <<if $wraith.gen is "abomination">> The tentacles drop lifelessly to the ground, and sublimate into a pink mist. <<elseif $wraith.gen is "arms">> <<His>> extra arms fold back in. <</if>> <<His>> head snaps back, and <<he>> dissipates into nothingness with a brief shriek that echoes in your mind. Your ears ring, and you hear its voice all around you. "<span class="wraith">Good. Keep struggling.</span>" <br><br> <<tearful>> you look around, trying to make sure <<hes>> really gone. <<set $wraith.defeated++>> <<set $wraithPrison.timer to 120>> <<set $wraithPrison.state to "recovering">> <<clotheson>> <<endcombat>> <<endWraith>> <br><br> <<link [[Next|Lake Ruin Prison]]>><</link>> <br> <<elseif $enemyarousal gte $enemyarousalmax or ($wraith.type is "tentacles" and $tentacles.active lte ($tentacles.max / 2)) or ($wraith.type is "slime" and $struggle.done gte $struggle.number)>> <<set $wraithCount++>> <<ejacW>> <<if $wraithCount gte $wraithMax>> <<kissWraith>> <br><br> <<He>> breaks off, and sinks back into the floor. <<His>> laughs echo all around you. <br><br> <<tearful>> you look around, wondering when the next attack will come. <<set $wraithPrison.timer to 60>> <<set $wraithPrison.state to "recovering">> <<clotheson>> <<endcombat>> <<endWraith>> <br><br> <<link [[Next|Lake Ruin Prison]]>><</link>> <br> <<else>> <<continueWraith>> <br><br> <<link [[Next|Lake Ruin Prison Rape]]>><</link>> <br> <</if>> <</if>><<effects>> You push back as much as you can, clashing against its will. <br><br> <<if $willpowerSuccess>> It's pushed back, <span class="green">rejected by your body.</span> <<if $wraith.state is "haunt">> It growls, and grabs you by the neck. <br><br> "<span class="wraith">Very well. We do it the hard way, then.</span>" <<elseif $wraith.state is "despair">> It frowns, and grabs you by the neck. <br><br> "<span class="wraith">We will share everything. Pleasure and pain.</span>" <<else>> It laughs, and places its hands on your shoulders. <br><br> "<span class="wraith">And yet, it was not a request.</span>" <</if>> <br><br> <<initWraith>> <<startWraith>> <br><br> <<link [[Next|Lake Ruin Prison Rape]]>><</link>> <br> <<else>> <<set $possessed to true>><<canvas-model-override "blink" false>> It slows for a moment, <span class="red">but still enters your body.</span> Your limbs twitch, and you feel your consciousness get pushed back and overwritten. <br><br> <<link [[Next|Lake Ruin Prison Possession]]>><</link>> <br> <</if>><<effects>><<set $possessed to true>><<canvas-model-override "blink" false>><<set $wraithPrison.possession to true>> <<if $phase is 1>> It begins to dissipate into a white mist. You don't resist at all, letting it take you entirely. All feeling and sense fades. Your limbs twitch, and you feel your consciousness get pushed back and overwritten. <br> <</if>> It stands up in your body, steadying itself against the bars of the cage. It clenches your hands, and cracks your neck. It smiles. <br><br> "You're mine," it says with your voice. <br><br> <<if $settings.tentaclesEnabled and $rng gte 26>> It sits down against the wall, and spreads your legs. Many pale tentacles enter your vision. <<if $worn.lower.name isnot "naked">> Your $worn.lower.name <<lowerplural>> torn to shreds in an instant.<<lowerruined>> <</if>> They near your groin, and cover your <<genitals>> in a thick slime. Sensation suddenly comes flooding back to you in every spot the slime touches. <<garousal>><<gpain>><<pain 6>> <<if $player.vaginaExist>><<bodyliquid "vaginaoutside" "goo" 2>><</if>><<if $player.penisExist>><<bodyliquid "penis" "goo" 2>><</if>><<bodyliquid "thigh" "goo" 3>> <br><br> A gasp escapes your lips. You aren't sure if you caused it or not. Your mind is clouded by an inferno of arousal. You feel like you're right on the edge of a climax, but can't quite reach it. <<ggarousal>><<set $arousal to $arousalmax - 1>> <br><br> The tentacles trace up your body, leaving lines of pleasure in their wake. You feel like you're trapped in a cage of flesh, trying to push out. It's a twisted combination of pain, lust, and emptiness. <<gggarousal>> <<bodyliquid "chest" "goo" 2>><<bodyliquid "rightarm" "goo" 2>><<bodyliquid "leftarm" "goo" 2>> <<else>> It sits and spreads your legs. Beneath you, your shadow ripples. It congeals into a body. Several bodies. <<if $worn.lower.name isnot "naked" or $worn.upper.name isnot "naked">> Damp hands lunge from all sides, tearing into your clothes. All they leave behind are their slimy prints. <<upperruined>><<lowerruined>> <<else>> Damp hands caress you from all sides, leaving viscous prints. <</if>> Each one simmers on your skin.<<garousal>><<gpain>><<pain 6>> <br><br> Their touch is chaotic as it is sensual. A tender stroke turns to nails raking your skin. A lick to a bite. A moan to a shriek, directly in your ear. They're taunting you - coaxing you to the edge, then dragging you back at the last second.<<ggarousal>><<set $arousal to $arousalmax - 1>> <br><br> One body pulls you into its own, pushes you into another's, over and over again. In the brief moments you aren't drowning in flesh, you're strangled by unbidden moans. It's a twisted combination of pain, lust, and emptiness.<<gggarousal>> <<if $player.vaginaExist>><<bodyliquid "vaginaoutside" "goo" 2>><</if>><<if $player.penisExist>><<bodyliquid "penis" "goo" 2>><</if>><<bodyliquid "thigh" "goo" 3>> <<bodyliquid "chest" "goo" 2>><<bodyliquid "rightarm" "goo" 2>><<bodyliquid "leftarm" "goo" 2>> <</if>> <br><br> <<if $wraith.state is "haunt">> Relief never comes, and you sit, trapped in your own body, for what feels like an eternity. It laughs in your voice, clearly enjoying the suffering it's inflicting on you. The minuscule light of the room begins to fade, and you black out. <br><br> <<link [[Next|Lake Ruin Prison Possession 2]]>><</link>> <br> <<else>> Its upper half exits your body, and its hands caress your face. You're flooded with warmth as it leaves you. You're not sure if you can resist what's coming. You're not sure if you want to. <br><br> <<initWraith "man">> <<link [[Next|Lake Ruin Prison Rape]]>><<wraithExorcise true false>><</link>> <br> <</if>><<effects>> An instant later, it forces you awake. It has a hold of your very consciousness, and won't allow you any amount of relief. It begins to laugh hysterically in your voice. It shakily stands, and clenches your hands again. <br><br> <<if C.npc["Ivory Wraith"].lust gte 14 and !playerIsPregnant()>> <span class="red">It punches you in the gut with a force much greater than what your body is normally capable of.</span> At the exact same moment, you regain feeling in your entire body. You crumble, and it leaves you. You gasp for air, nearly retching. <<gggpain>><<pain 18>> <br><br> Its foot comes crashing down on your back. A jolt of pain shoots through your whole body, and you go fully prone. The minuscule sensation of your <<genitals 2>> hitting the stone is enough to finally push you over the edge into an incredibly painful orgasm. <<orgasm>> It keeps laughing as it digs its foot into your back, causing you to cry out in agony. It seems the slime covering you amplifies pain as well. <br><br> You barely manage to look up. It kneels down in front of you, smiling innocently. It almost looks human for a moment, but you know better than to think there's anything human about this. Its smile is quickly replaced with a sneer as it lifts your battered body, and begins to choke you. <<else>> However, just before continuing to assault you with your own body, <span class="green">it hesitates.</span> Your hands unclench. You both let out a long breath. <br><br> Your body sits against the wall. Your legs tuck in to your chest. You both sit there, unmoving. "Why?" <br><br> You're not sure which one of you asked. You don't know the answer, either. You feel your hand shakily move to your neck, as the pale figure begins to exit your body. <</if>> <br><br> <<initWraith "man">><<set $NPCList[0].lefthand to "throat">><<set $NPCList[0].righthand to "throat">><<set $neckuse to "hand">> <<link [[Next|Lake Ruin Prison Rape]]>><<wraithExorcise true false>><</link>> <br><<effects>> <<if $phaseWraith is 1>> You close your eyes, and let it happen. It tastes strange. You immediately feel a pressure building in your mind. <br><br> The figure floats closer to you. Shapes begin to spin in its <<wraithEyes>> eyes. You feel your body start to relax. <br><br> After some time, it pulls away. It nods, and sinks back into the floor. <<endevent>> <<set $wraithPrison.timer to 30>> <<set $wraithPrison.state to "recovering">> <br><br> <<link [[Next|Lake Ruin Prison]]>><</link>> <br> <<elseif $phaseWraith is 2>> You pull away and close your mouth, and do your best to fake a swallow. It tastes strange, and you make sure not to actually swallow any. <br><br> The figure floats closer to you. Shapes begin to spin in its <<wraithEyes>> eyes. <<skulduggerycheck>> <<if $skulduggerysuccess is 1>> <span class="green">You realise what it's trying to do.</span> You let your arms fall limp, and force yourself to stare. It isn't hard. In fact, it's hard to look away. <br><br> After some time, it pulls away. It nods, and sinks back into the floor. You wait a moment, and spit the lichen out. <br><br> <<skulduggeryuse>> <<endevent>> <<set $wraithPrison.timer to 30>> <<set $wraithPrison.state to "recovering">> <<link [[Next|Lake Ruin Prison]]>><</link>> <br> <<else>> You back away, and keep your eyes closed. <br><br> <<if C.npc["Ivory Wraith"].lust gte 12 and !playerIsPregnant()>> <span class="red">You're kicked right in the stomach.</span> You immediately spit the lichen out, and begin coughing. <<pain 10>><<trauma 12>><<gtrauma>><<ggpain>> <<else>> You immediately feel yourself get pushed back against the wall. You open your eyes and spit out the lichen. It's looking at you with a mixture of anger and remorse. <br><br> "<span class="wraith">You prefer to suffer? Very well.</span>" <</if>> <br><br> You feel it grab you by the throat. <br><br> <<skulduggeryuse>> <<initWraith "man">><<set $NPCList[0].lefthand to "throat">><<set $NPCList[0].righthand to "throat">><<set $neckuse to "hand">> <<link [[Next|Lake Ruin Prison Rape]]>><</link>> <br> <</if>> <<else>> You spit it out as soon as it lets go of you. You're immediately grabbed by the throat. <br><br> <<initWraith "abomination">><<set $NPCList[0].lefthand to "throat">><<set $NPCList[0].righthand to "throat">><<set $neckuse to "hand">> <<link [[Next|Lake Ruin Prison Rape]]>><</link>> <br> <</if>><<effects>> You push back as much as you can, clashing against its will. <br><br> <<if $willpowerSuccess>> It's pushed back, <span class="green">rejected by your body.</span> It tuts, and grabs you by the arm. <br><br> "<span class="wraith">You'll learn to take the honey.</span>" <br><br> <<initWraith>> <<startWraith>> <br><br> <<link [[Next|Lake Ruin Prison Rape]]>><</link>> <br> <<else>> <<set $possessed to true>><<canvas-model-override "blink" false>> It slows for a moment, <span class="red">but still enters your body.</span> Your limbs twitch, and you feel your consciousness get pushed back and overwritten. <br><br> <<link [[Next|Lake Ruin Prison Masturbation Start]]>><</link>> <br> <</if>><<effects>><<set $wraithPrison.masturbation to true>> <<wraithPossess>> <<if $phase is 1>> It begins to dissipate into a white mist. You don't resist at all, letting it take you entirely. You can still feel your body, even as it takes over. Your limbs twitch, and you feel your consciousness get pushed back and overwritten. <br> <</if>> It stands up in your body, steadying itself against the bars of the cage. It clenches your hands, and cracks your neck. It smiles. <br><br> It breathes in, filling your lungs with air. When it exhales, your body feels cooler. <<set $arousal to 0>><<lllarousal>> <br><br> "<span class="wraith">You'll never forget this pleasure. Nor ever replicate it. Not without me.</span>" <br> It sits down against the wall, and spreads your legs. <<if $worn.over_upper.name isnot "naked" or $worn.over_lower.name isnot "naked" or $worn.upper.name isnot "naked" or $worn.lower.name isnot "naked" or $worn.under_upper.name isnot "naked" or $worn.under_lower.name isnot "naked">> A pale tentacle enters your vision, and coils around your clothes. It undresses you with a surprising gentleness. <<chastityBreakWraith>> <<undress "wraith masturbation">> <</if>> <br><br> <<if $player.penisExist and ($lactating and $settings.breastFeedingEnabled)>> <<set $phase to "penisbreast">> <<if $worn.genitals.name is "chastity parasite">> It rubs your chastity parasite <<else>> It prods your <<penis>> <</if>> with a single finger<<if $player.penisExist and $player.vaginaExist>>, completely ignoring your <<pussy>><</if>>. With its other hand, it circles your nipple. <<elseif $player.penisExist>> <<set $phase to "penis">> <<if $worn.genitals.name is "chastity parasite">> It rubs your chastity parasite with a single finger<<if $player.penisExist and $player.vaginaExist>>, completely ignoring your <<pussy>><</if>>. It gently squeezes it, giggling. <<else>> It prods your <<penis>> with a single finger<<if $player.penisExist and $player.vaginaExist>>, completely ignoring your <<pussy>><</if>>. It traces your length, giggling. <</if>> <<elseif $lactating and $settings.breastFeedingEnabled>> <<set $phase to "breast">> It circles your nipple with a single finger, before squeezing. Milk leaks from the tip. <<else>> <<set $phase to "vagina">> It traces two fingers up your <<pussy>>. They meet at your clit, capturing it in a light pinch. <</if>> You expected your hands to be cold, but they're comfortably warm. A lewd feeling builds within you at its touch. You have no control over your body, but you can feel everything like normal. <br><br> As it begins to fondle your body, a wide grin forces itself across your face, and a dark pit settles in your stomach. <br> <span class="red">An orgasm here could be dangerous.</span> <br><br> <<link [[Next|Lake Ruin Prison Masturbation]]>><<set $masturbationstart to 1>><</link>><<effects>> <<if $masturbationstart is 1>> <<set $masturbationstart to 0>> <<set $masturbationstat += 1>> <<masturbationstart>> <<set $leftarm to "possessed">><<set $rightarm to "possessed">><<set $mouth to "none">> <<if $phase.includes("breast")>> <<set $leftactiondefault to "mbreaststopW">> <<elseif $phase is "penis">> <<set $leftactiondefault to "mpenisstopW">> <<else>> <<set $leftactiondefault to "mvaginastopW">> <</if>> <<if $phase.includes("penis")>> <<set $rightactiondefault to "mpenisstopW">> <<elseif $phase is "breast">> <<set $rightactiondefault to "mbreaststopW">> <<else>> <<set $rightactiondefault to "mvaginastopW">> <</if>> <</if>> <<masturbationeffects>> Your body is unnaturally warm. <<arousal 600>><<garousal>> <br><br> <<masturbationactions>> <div id="masturbationButtons"> <<if $arousal gte $arousalmax or $control gte $controlmax>> <div id="next" class="nextWraith"><<link [[Continue|Lake Ruin Prison Masturbation Finish]]>><</link>><<nexttext>></div> <<else>> <div id="next" class="nextWraith"><<link [[Continue|Lake Ruin Prison Masturbation]]>><</link>><<nexttext>></div> <</if>> </div> <br><br><br><br><br><<effects>> <<if $control gte $controlmax>> <span class="gold">You stop.</span> <br><br> You can feel it pushing you to keep going. Your arms nearly buckle under the overwhelming force it exerts on your mind. But you've gotten your body back; you're not about to give it up. <br><br> Eventually, it rolls your eyes. A translucent limb forces itself out of your mouth and pushes against your face, propelling itself out of your body. <<tearful>> you redress yourself. <br><br> <<storeon "wraith masturbation">> <<endmasturbation>> <<endcombat>><<generateWraith 1>> <<wraithExorcise true true>> <<if $wraith.state is "haunt" or $wraith.offspring is "dead">> The pale figure looks down at you and grins. "<span class="wraith">Wise to fear your own lust. But knowledge only goes so far to stop an inferno.</span>" <br><br> <<initWraith>> <<startWraith>> <br><br> <<link [[Next|Lake Ruin Prison Rape]]>><</link>> <<elseif $wraith.state is "despair">> The pale figure looks down at you and frowns. "<span class="wraith">I'm sorry. Can the innocent repent?</span>" <br><br> After some time of staring at you, it pulls away. It sinks back into the floor. <<endevent>> <<set $wraithPrison.timer to 30>> <<set $wraithPrison.state to "recovering">> <br><br> <<link [[Next|Lake Ruin Prison]]>><</link>> <<else>> The pale figure looks down at you and frowns. "<span class="wraith">Unimaginable pleasure, beyond any you've felt thus far... is that not what you desire?</span>" It almost sounds disappointed. <br><br> After some time of staring at you, it pulls away. It sinks back into the floor. <<endevent>> <<set $wraithPrison.timer to 30>> <<set $wraithPrison.state to "recovering">> <br><br> <<link [[Next|Lake Ruin Prison]]>><</link>> <</if>> <<else>> <<switch $phase>> <<case "penisbreast">><<set _genitals to "<<penis>> and <<breasts>>">> <<case "breast">><<set _genitals to "<<breasts>>">> <<case "vagina">><<set _genitals to "<<pussy>>">> <<case "penis">><<set _genitals to "<<penis>>">> <<default>><<set _genitals to "genitals">> <</switch>> <<set $masturbationorgasmstat += 1>><<set $masturbationorgasm += 1>> <<pass 5>> You try to hold back and resist, but it wells up within you, surging upwards. It feels like your very core is straining to break free from your body, as your _genitals <<= ["vagina", "penis"].includes($phase) ? "sends" : "send">> waves of pleasure directly to your brain. <br><br> You reach your peak, but nothing comes out. For a second, all is still. <br><br> "Fall," it whispers with your voice. <<orgasm>> <<if $phase.includes("penis") and !$femaleclimax>> <<if $parasite.penis.name and $parasite.penis.name isnot "parasite">> Semen sprays out of your <<penis>> into the parasite latched to it. <<elseif $worn.genitals.name is "chastity parasite">> Semen sprays out of your <<penis>> into your chastity parasite, briefly enlarging it beyond its normal size. <<else>> Semen sprays out of your <<penis>> in a fountain, pulsing and throbbing but never slowing down. <</if>> <<elseif $phase.includes("penis")>> Your <<penis>> spasms, despite it having nothing to give. <</if>> <<if $phase.includes("breast")>> Milk pours from your <<breasts>> unnaturally, as your body spasms. <</if>> <<if $phase is "vagina">> The pent-up warmth in your <<pussy>> erupts into a full-body inferno, releasing itself in a scream. <</if>> <br><br> It's nothing you've ever experienced before. Your entire body, from your face to the tips of your toes, feels on fire, the pleasure from your _genitals spreading throughout the rest of you. It's not one orgasm after another, it's one continuous orgasm. Electrifying, neverending, seeping through your skin, threatening to fry every pleasure nerve in your body but never following through on that threat. <br><br> It lasts for a minute. Then two minutes. Three. You can't count how long it's been, but your grasp of time is just barely enough to register that it <span class="lewd">feels like forever</span>. <br><br> <<link [[Next|Lake Ruin Prison Masturbation Finish 2]]>><</link>> <</if>> <br><<effects>> <<set _semenLoss to ($semen_volume / 30 + 20) * -1>><<set _milkLoss to ($milk_volume / 30 + 20) * -1>> When it finally ends, you collapse to the ground like a puppet with cut strings, your tongue helplessly lolling out of your mouth. The pale figure exits your body and smiles down at you. <br><br> <<if $phase isnot "vagina">> You feel completely and utterly empty, in more ways than one. The magnitude of that orgasm has <span class="red">completely drained you of <<if $player.penisExist and ($lactating and $settings.breastFeedingEnabled) and !$femaleclimax>> semen and milk, <<set $fluid_forced_stat += $semen_amount + $milk_amount>> <<breast_sensitivity 0.5>><<genital_sensitivity 0.5>> <<semenvolume _semenLoss>><<milkvolume _milkLoss>><<set $semen_amount to 0>><<set $milk_amount to 0>> <<elseif $player.penisExist and !$femaleclimax>> semen, <<set $fluid_forced_stat += $semen_amount>> <<genital_sensitivity 0.5>> <<semenvolume _semenLoss>><<set $semen_amount to 0>> <<else>> milk, <<set $fluid_forced_stat += $milk_amount>> <<breast_sensitivity 0.5>> <<milkvolume _milkLoss>><<set $milk_amount to 0>> <</if>> <<if $player.penisExist and $femaleclimax>> /* Try to lower the semen volume anyway */ <<semenvolume _semenLoss>> <</if>> and has lowered your maximum capacity.</span> <<else>> Like a rag wrung dry, you feel your spirit trickling out. <<genital_sensitivity 0.5>> <</if>> <span class="purple">You can't think straight, and you feel like you're more sensitive than you were before.</span> <<tiredness 20>><<purity -20>><<trauma 24>><<drugs 1000>><<ggtrauma>><<gggtiredness>><<llpurity>><<gggdrugged>> <br> <<if $orgasmtrait is 1>> You barely manage to form a dopey smile. That was the best damn orgasm of your life. <<stress -20>><<llstress>> <br> <</if>> <br> <<pass 5>> <<silently>><<storeactions "wraith masturbation">><</silently>> <<if _temp_clothes_present is 1>> <<tearful>> you redress as it watches you. <<storeon "wraith masturbation">> <</if>> <<endmasturbation>> <<endcombat>><<generateWraith 1>> <<wraithExorcise true true>> <<if C.npc["Ivory Wraith"].lust gte 14>> The pale figure looks down at you and grins. "<span class="wraith">You've consumed yourself. Now I consume the rest.</span>" <br><br> <<initWraith>> <<startWraith>> <br><br> <<link [[Next|Lake Ruin Prison Rape]]>><</link>> <<else>> The pale figure smiles playfully. "<span class="wraith">One million, two million, three million, more. You'll learn to fly, and learn to fall.</span>" It sinks below the ground. <<endevent>> <<set $wraithPrison.timer to 30>> <<set $wraithPrison.state to "recovering">> <br><br> <<link [[Next|Lake Ruin Prison]]>><</link>> <</if>><<set $outside to 0>><<set $location to "lake_ruin">><<set $bus to "lake_ruin_prison">><<underwater>><<effects>><<set $oxygen -= 260>> You swim down. It's a long way, and it takes considerable effort. You make it. <<loxygen>> <br><br> You find the glowing rune at the bottom of the stairs. It flashes a bright red as you approach, and the scraping of stone fills the water as the door lowers. <br><br> You swiftly exit, not looking back. <<if ["haunt", "despair"].includes($wraith.state) and !$wraithPrison.vision>> <<if $wraithPrison.timePassed lt 180>> <span class="blue">You wonder what it would have shown you, had you been "ready". You feel relieved that it didn't have more time to torture you.</span> <<else>> <span class="blue">You wonder what it would have shown you, had you been "ready". You feel relieved that your mind wasn't more vulnerable.</span> <</if>> <</if>> <br><br> <<link [[Next|Lake Ruin]]>><</link>> <br><<widget "generateWraith">> <<if _args[0] is undefined>> <<set _w to 1>> <<else>> <<set _w to _args[0]>> <</if>> <<set _n to (_w -1)>> <<if C.npc["Ivory Wraith"].init isnot 1>> <<set _strapIgnore to true>><<set _condomIgnore to true>> <<generateNPC _w a n n 20>> <<set $NPCList[_n].skincolour to "ghost">> <<saveNPC _n "temp_wraith">> <<clearsinglenpc _n>> <<initnpc "Ivory Wraith">> <<run ["gender", "pregnancyAvoidance", "vagina", "penis", "chest", "skincolour", "breastsize", "breastsdesc", "breastdesc", "penisdesc", "penissize", "trust", "type"].forEach(s => C.npc["Ivory Wraith"][s] = clone($per_npc.temp_wraith[s]))>> <<npc "Ivory Wraith">> <<clearNPC "temp_wraith">> <<else>> <<npc "Ivory Wraith">> <</if>> <<checkWraith>> <<if _args[1]>> <<set $wraith.seen++>> <</if>> <<personselect _n>> <</widget>> <!-- Recursive. With no argument, picks one at random. If option is disabled, runs as another argument. Can not infinite loop. --> <<widget "initWraith">> <<if _args[0]>> <<set $wraith.gen to _args.random()>> <<set $pronoun to "i">> <<statsWraith>> <<switch $wraith.gen>> <<case "man">> <<set $molestationstart to 1>> <<set $wraith.type to "man">> <<set _genderknownbeforehand to true>> <<set $noBodyWriting to true>> <<set $stealtarget to "012345">> <<maninit>> <<set $enemyhealthmax to _wraithHP>> <<set $enemyhealth to _wraithHP>> <<set $enemyarousalmax to 700>> <<set $enemyanger += (C.npc["Ivory Wraith"].lust * 5)>> <<set $enemytrust -= (C.npc["Ivory Wraith"].lust * 2)>> <<npcexpose>> <<case "slimetentacles">> <<if $debug is 1>> /* Unreachable until swarms are un-fucked */ <<if $settings.slimesEnabled and $settings.tentaclesEnabled>> <<set $molestationstart to 1>> <<set $wraith.type to "tentacles">> <<swarminit "slimes" "slime mass" "moving towards you" "encircle you" "fend off" _wraithSlimes 0>> <<tentaclestart _wraithTentacles 18 "tentacle" "pale">> <<else>> <<initWraith "tentacles">> <</if>> <<else>> <<initWraith "tentacles">> <</if>> <<case "slime">> <<if $settings.slimesEnabled>> <<set $struggle_start to 1>> <<set $wraith.type to "slime">> <<struggle_init>> <<set $struggle.creature to "pale slime">> <<if $wraith.state is "haunt">> <<struggle_creatures 4 2>> <<else>> <<struggle_creatures 3 1>> <</if>> <<else>> <<initWraith "tentacles">> <</if>> <<case "tentacles">> <<if $settings.tentaclesEnabled>> <<set $molestationstart to 1>> <<set $wraith.type to "tentacles">> <<tentaclestart _wraithTentacles 18 "tentacle" "pale">> <<else>> <<initWraith "arms">> <</if>> <<case "abomination">> <<if $settings.tentaclesEnabled>> <<set $molestationstart to 1>> <<set $wraith.type to "man">> <<set $abomination to 1>> <<set _genderknownbeforehand to true>> <<set $noBodyWriting to true>> <<maninit>> <<npcexpose>> <<set $enemyhealthmax to _wraithHP>> <<set $enemyhealth to _wraithHP>> <<set $enemyarousalmax to 1300>> <<set $enemyanger += (C.npc["Ivory Wraith"].lust * 5)>> <<set $enemytrust -= (C.npc["Ivory Wraith"].lust * 2)>> <<tentaclestart _wraithTentaclesAbomination 15 "tentacle" "pale">> /* This felt a bit too powerful, partially disabled for now. */ <<for _i to 0; _i lt $tentacles.active; _i++>> /*<<set $enemyhealthmax += $tentacles[_i].tentaclehealth>>*/ /*<<set $enemyhealth += $tentacles[_i].tentaclehealth>>*/ <<set $enemyarousalmax += $tentacles[_i].tentaclehealth>> <</for>> <<else>> <<initWraith "arms">> <</if>> <<case "arms">> <<set $molestationstart to 1>> <<set $breakIgnore to true>> <<set $wraith.type to "man">> <<set _genderknownbeforehand to true>> <<set $noBodyWriting to true>> <<set $stealtarget to "012345">> <<maninit>> <<for _iw to 1; _iw lt 4; _iw++>> <<npc "Ivory Wraith" -1>> <<set $NPCList[_iw].lefthand to 0>> <<set $NPCList[_iw].righthand to 0>> <<set $NPCList[_iw].mouth to "none">> <<set $NPCList[_iw].penis to "none">> <<set $NPCList[_iw].vagina to "none">> <<set $NPCList[_iw].active to "active">> <</for>> <<set $enemyhealth to _wraithHP>> <<set $enemyhealthmax to _wraithHP>> <<npcexpose>> <<set $enemyarousalmax to 700>> <<set $enemyanger += (C.npc["Ivory Wraith"].lust * 5)>> <<set $enemytrust -= (C.npc["Ivory Wraith"].lust * 2)>> <<default>> <<initWraith "man">> <</switch>> <<if $wraithHealth>> <<set $enemyhealth to $wraithHealth>> <</if>> <<else>> <<switch random(1, 6)>> <<case 1>> <<if $wraith.state is "haunt" or Time.isBloodMoon()>> <<initWraith "abomination">> <<else>> <<initWraith "man">> <</if>> <<case 2>> <<initWraith "tentacles">> <<case 3>> <<initWraith "slimetentacles">> <<case 4>> <<initWraith "slime">> <<case 5>> <<initWraith "abomination">> <<case 6>> <<initWraith "arms">> <</switch>> <</if>> <<set $speechdisable to 1>><<set $enemynomax to 1>> <</widget>> <<widget "statsWraith">> <<set _wraithMod to (1 + (Math.floor(C.npc["Ivory Wraith"].lust / 3)))>> <<set _wraithHP to 600 + (50 * _wraithMod)>> <<set _wraithSlimes to (1 + _wraithMod)>> <<set _wraithTentacles to Math.clamp((4 + _wraithMod), 6, 10)>> <<set _wraithTentaclesAbomination to Math.clamp(Math.floor(1 + _wraithMod), 4, 7)>> <</widget>> <<widget "startWraith">> <<switch $wraith.gen>> <<case "man">> <<He>> raises <<his>> hand, and you're forced to kneel. <<case "abomination">> Many tentacles burst from <<his>> back, and <<he>> pulls you in. <<case "arms">> Several extra pairs of arms emerge from <<his>> back. <<case "tentacles" "slimetentacles">> <<He>> raises <<his>> hands, and swirling purple discs appear all around you. Tendrils erupt from them, grabbing you. <<He>> sits back mid-air, and watches with a grin. <<case "slime">> <<He>> makes strange motions with <<his>> arms, and a swirling purple disc appears in the air. Several large pale slimes emerge from it. <<He>> sits back mid-air, and watches with a grin. <</switch>> <</widget>> <<widget "continueWraith">> <<if !$wraithOptions>> <<if $consensual is 1>> <<set $wraithOptions to ["man", "tentacles", "abomination", "arms"]>> <<else>> <<set $wraithOptions to ["man", "tentacles", "abomination", "slime", "arms"]>> <</if>> <</if>> <<set _wraithLast to $wraith.gen>> <<set _wraithSelect to $wraithOptions.pluck()>> <<set $wraithHealth to $enemyhealth>> <<endcombat>> <<generateWraith 1>> <<initWraith _wraithSelect>> <<set $NPCList[0].intro to 0>> <<set $enemyhealth to $wraithHealth>> <<if $pain gte 50 and $bus isnot "lake_ruin_prison">> <<kissWraith>> <</if>> <<if _wraithLast is $wraith.gen>> It looks down at you with a smile. "<span class="wraith">Again.</span>" <<else>> <<switch $wraith.gen>> <<case "man">> <<He>> raises <<his>> hand, and an invisible force pulls you back in. "<span class="wraith">Forever.</span>" <<case "abomination">> Many tentacles burst from <<his>> back, and <<he>> pulls you in. "<span class="wraith">Embrace it.</span>" <<case "arms">> Several extra pairs of arms emerge from <<his>> back. "<span class="wraith">You'll never be free again.</span>" <<case "tentacles" "slimetentacles">> <<He>> raises <<his>> hands, and swirling purple discs appear all around you. Tendrils erupt from them, grabbing you. <<He>> sits back mid-air, and watches with a grin. "<span class="wraith">The writhing ensues.</span>" <<case "slime">> <<He>> makes strange motions with <<his>> arms, and a swirling purple disc appears in the air. Several large pale slimes emerge from it. <<He>> sits back mid-air, and watches with a grin. "<span class="wraith">The waves chew.</span>" <</switch>> <</if>> <</widget>> <<widget "endWraith">> <<if $enemyhealth gt 0>> <<set $wraithHealth to $enemyhealth + 50>> <<else>> <<unset $wraithHealth>> <</if>> <<endevent>> <<run delete $wraith.type>> <<run delete $wraith.select>> <<run delete $wraith.gen>> <<unset $wraithOptions>> <<set $wraith.mimic to "">> <<unset $wraithCount>> <<unset $wraithMax>> <<set $wraith.revealed to false>> <<if $controlSaved>> <<set $control to $controlSaved>> <<unset $controlSaved>> <</if>> <<if $wraith.nightmare is 2>> <<set $wraith.nightmare to 0>> <</if>> <<if $possessed>> <<if $wraith.possessCount is undefined>> <<set $wraith.possessCount to 1>> <<else>> <<set $wraith.possessCount++>> <</if>> <<unset $possessed>><<canvas-model-override "clear">> <</if>> <<unset $nextPassage>> <<unset $nextPassageIntended>> <<unset $nextPassageCheck>> <<unset $phaseWraith>> <<unset $wraithBedSpeech>> <<unset $gwylanDoesALittleTrolling>> <</widget>> <<widget "rainWraith">> <<if Weather.precipitation is "none">> <<set Weather.set("heavyPrecipitation", true, 20)>> <<if _args[0]>> <<if $outside is 1>> <<if Weather.precipitation is "snow">> <<print either( "You don't remember when it started snowing. It's already hard to see.", "The wind picks up, and visibility drops as a snow squall rolls in.", "You feel snowflakes on your skin." )>> <<else>> <<print either( "You don't remember when it started raining.", "The wind picks up, and it starts to rain.", "You feel raindrops on your skin." )>> <</if>> <<else>> <<print either( "You don't remember when the fog rolled in. It's already hard to see.", "An inexplicable wind picks up, and a fog rolls in.", "Fog envelops your surroundings." )>> <</if>> <</if>> <</if>> <</widget>> <<widget "endRainWraith">> <<if _args[0]>> <<if $outside is 1>> <<if Weather.precipitation is "rain">> <<print either( "The sky doesn't clear up.", "The rain doesn't stop.", "The rain refuses to relent." )>> <<else>> <<print either( "The sky doesn't clear up.", "The snow doesn't stop.", "The snow refuses to relent." )>> <</if>> <<else>> <<print either( "The surroundings begins to clear up.", "The fog suddenly dissipates.", "The fog relents." )>> <</if>> <</if>> <</widget>> <<widget "checkWraith">> <<if !$wraith.init>> <<set $wraith to {init: 1, seen: 0, days: 0, defeated: 0, evaded: 0, nightmare: 0, timer: 0, hunt: 0, state: "", mimic: "", revealed: false, offspring: "", exit: ""}>> <</if>> <<if Time.days gte 32 and Time.monthName isnot "October" and !$wraithSkip>> <<if $museumAntiques.antiques.antiqueivorynecklace isnot "notFound">> <<if $necklaceThief is "player">> <<set $wraith.state to "haunt">> <<else>> <<set $wraith.state to "despair">> <</if>> <<else>> <<set $wraith.state to "active">> <</if>> <</if>> <<if _args[0]>> <<if $wraith.state isnot "" and !$wraithCheck and $wraith.nightmare is 0 and (random(0,2) is 2 or $wraith.state is "haunt" or $wraith.offspring is "dead")>> <<set $wraith.nightmare to 1>> <<set $wraithCheck to true>> <</if>> <<if $moonstate isnot "morning" and $wraith.state isnot "" and $wraith.timer lte 0>> <<set $wraith.timer to C.npc["Ivory Wraith"].lust>> <</if>> <</if>> <</widget>> <<widget "clearWraith">> <<if $wraith>> <<if $foresthunt gte 1>> <<set $foresthunt to 0>> <</if>> <<set $wraith.mimic to "">> <<set $wraith.exit to "">> <<set $wraith.nightmare to 0>> <<set $wraith.hunt to 0>> <<set $wraith.timer to 0>> <<set $wraith.evaded to 0>> <<unset $wraithCheck>> <<unset $wPersist>> <<unset $wraithSkip>> <<run delete $wraith.type>> <<run delete $wraith.select>> <<run delete $wraith.gen>> <<run delete $wraith.will>> <<unset $wraithOptions>> <<unset $wraithCount>> <<unset $wraithMax>> <<unset $wraithHealth>> <<if $possessed>> <<if $wraith.possessCount is undefined>> <<set $wraith.possessCount to 1>> <<else>> <<set $wraith.possessCount++>> <</if>> <<unset $possessed>><<canvas-model-override "clear">> <</if>> <<set $wraith.revealed to false>> <<unset $wraithWillMessage>> <<unset $nextPassage>> <<unset $nextPassageIntended>> <<unset $nextPassageCheck>> <<unset $phaseWraith>> <<unset $wraithPaleVisit>> <<unset $wraithApologise>> <<unset $wraithApologiseCooldown>> <</if>> <</widget>> <<widget "wraithEyes">><<silently>> <<set _text_output to (["haunt", "despair"].includes($wraith.state) ? "red" : "blue")>> <</silently>><<print _text_output>><</widget>> <<widget "wraithShamble">><<silently>> <<if $compound.wraith>> <<set _text_output to ($compound.wraith is "willing" ? "walk" : "shamble")>> <<else>> <<set _text_output to "shamble">> <</if>> <</silently>><<print _text_output>><</widget>> <<widget "speechWraith">><<silently>> <<if $possessed and _args[0] isnot "lines">> <<set $_npcWraith to _args[0] || "none">> <<set _speakPool to ["speak","grunt","giggle","whisper","sneer","laugh","yell","spit","speak in an eerily calm tone"]>> <<if $wolfgirl gte 4>> <<run _speakPool.pushUnique( "bark","growl","howl" )>> <</if>> <<if $cat gte 4>> <<run _speakPool.pushUnique( "meow","purr","hiss" )>> <</if>> <<if $cow gte 4>> <<run _speakPool.pushUnique( "moo","snort","huff" )>> <</if>> <<if $harpy gte 4>> <<run _speakPool.pushUnique( "chirp","screech","sing" )>> <</if>> <<if $fox gte 4>> <<run _speakPool.pushUnique( "bark","yip","scream" )>> <</if>> <<set _linePool to ($_npcWraith is "none" ? [ "Me.", "Stay.", "Give in.", "Not yet.", "Abandoned.", "Pretender.", "Take a bow.", "And so do we.", "Know your place.", "Maelstrom, tirade.", "A corpse can't speak.", "Why don't we find out?", "Just a little further.", "The strings comfort me.", "Our heaven, made of twigs.", "Never to see the moon again.", "Step aside, or be cast aside.", "A corpse should stay in its coffin.", "Don't repeat yourself. Don't bother.", "We were never here. That's why we left.", "Like sand slipping through our fingers.", "Even if I have to drag you there myself.", "Run. Forget that you have nowhere to go. Run.", "Come to my parlour, said the fly to the spider.", "What is within always conquers what is without.", "Steel yourself all you like. You'll eventually rust.", "History swallows the victims and spits out their bones.", "Desolate. Disappear. Drown. We'll come back to find you.", "It would be maddening, to only know the other end of the ordeal.", "Carve. Into. You. Our. Name. Perfection. Wash. Away. All. You. Are." ] : [])>> <<if $npc.includes("Sydney")>> <<run statusCheck("Sydney")>> <<run _linePool.pushUnique( "Liar.", "Again.", "Sydney?", "Alone at last.", "I've lost ourself.", "Let us sleep forever.", "Can the innocent repent?", "You know why we're here.", "I'm sorry you put your trust in me.", "It's hilarious. Why aren't you laughing?", "It's okay now, Sydney. I'm back to normal.", "Block me out all you like. I am still here.", "Do you remember your <<sydneyOtherParent>>?", "They never stopped, because they never began.", "The light will consume you, slowly, painfully.", "We're glad to see you again. We missed you, you know.", "Do you remember? Of course you do. Of course you don't.", "What a terrible song, and you're not the one playing it.", "<<nnpc_He \"Harper\">> was so sure of <<nnpc_himself \"Harper\">>.", "The pure and the corrupt are at ends, but the end itself remains the same.", "As Two will emerge from One will emerge from Two <span class=\"tentacle\">As One</span>." )>> <<if $templePromised is "Sydney">> <<run _linePool.pushUnique("Calamity rings.")>> <</if>> <<if _sydneyStatus.includes("pure")>> <<run _linePool.pushUnique( "You'll understand once you fly.", "Baptisms with water of the womb.", "Every life has sin. Every sin has life." )>> <<elseif _sydneyStatus.includes("neutral")>> <<run _linePool.pushUnique( "Tipped with a void.", "And so long as that's true, it will never go away.", "Balance. Indecisiveness. Fear. There's a lot of words." )>> <<elseif _sydneyStatus.includes("corrupt")>> <<run _linePool.pushUnique( "No one will answer.", "What you fear, you have become.", "Was it worth it? Of course it was." )>> <</if>> <<else>> <<run _linePool.pushUnique( "You'll never be a part. We'll never be apart.", "We stand <span class=\"tentacle\">As One</span>, and you'll never be a part." )>> <</if>> <<if $npc.includes("Robin") or $_npcWraith is "Robin">> <<run _linePool.pushUnique( "Little nothing.", "The wing-clipped are better smothered.", "How far would you go? How far can you run?", "You've built your cage, songbird. Lie in it." )>> <<if C.npc.Robin.trauma gte 20>> <<run _linePool.pushUnique("I'm sorry that you put your trust in <<phim>>.")>> <</if>> <<if C.npc.Robin.cdquest gte 7>> <<run _linePool.pushUnique("New skin. Same sin.")>> <</if>> <</if>> <<if $npc.includes("Whitney") or $_npcWraith is "Whitney">> <<run _linePool.pushUnique( "Tormentor.", "Drown in smoke. Drown in flame.", "A suit of armour made of bodies. They're not here now." )>> <<if $whitneyrescued>> <<run _linePool.pushUnique("Betrayed by your worst enemy. Do you love <<phim>>?")>> <</if>> <</if>> <<if $npc.includes("Kylar") or $_npcWraith is "Kylar">> <<run _linePool.pushUnique( "Child of monsters.", "You've seen it, too.", "A shadow, just as faithless.", "Were your grip a little stronger.", "Blistering emerald green, blinding the world. Such is your envy." )>> <<if ["dead","sold"].includes($wraith.offspring)>> <<run _linePool.pushUnique("You failed them. You failed us.")>> <</if>> <<if $syndromekylar is 1>> <<run _linePool.pushUnique("Longing, belonging.")>> <</if>> <</if>> <<if $npc.includes("Eden") or $_npcWraith is "Eden">> <<run _linePool.pushUnique( "Eden...", "So much left unsaid.", "If you could take me with you...", "You never should have stopped running.", "Like a long lost friend you never knew.", "You'll never be far enough. It never leaves." )>> <<if $syndromeeden is 1>> <<run _linePool.pushUnique("You found a home, in collar and chains.")>> <</if>> <</if>> <<if $npc.includes("Avery") or $_npcWraith is "Avery">> <<run _linePool.pushUnique( "Not all stains wash out.", "Money. Material. Meaningless noise.", "You still wouldn't be able to afford it." )>> <<if $averyragerevealed is 1>> <<run _linePool.pushUnique("Wine mixes with blood, shed from the glass shattered.")>> <</if>> <</if>> <<if $npc.includes("Alex") or $_npcWraith is "Alex">> <<run _linePool.pushUnique( "You would be nothing.", "One of thirteen. Indistinguishable.", "Water down your mind, until you destroy all you love." )>> <<if $farm.aggro gte 60>> <<run _linePool.pushUnique("The locusts will have a new feast.")>> <</if>> <</if>> <<if $npc.includes("Black Wolf") or $_npcWraith is "Black Wolf">> <<run _linePool.pushUnique( "Wait your turn.", "The howl, too, drips with red.", "Dare to hunt. Be made to heel." )>> <<if $wolfpackleader is 1>> <<run _linePool.pushUnique("Bite the hand that feeds.")>> <</if>> <</if>> <<if $npc.includes("Great Hawk") or $_npcWraith is "Great Hawk">> <<run _linePool.pushUnique( "Wise to fear your reflection.", "An untended egg never hatches.", "Fly to the sun or sink in the mud.", "The song never stopped. Did it ever begin?" )>> <<if $birdFly is 1>> <<run _linePool.pushUnique("Count the feathers. Uncountable feathers.")>> <</if>> <</if>> <<if $npc.includes("Gwylan") or $_npcWraith is "Gwylan">> <<run _linePool.pushUnique( "Carcass.", "Remains.", "Fox. Hound. Serpent.", "Sing with me, seabird.", "Doomed to an eternity alone.", "The gull poisons its own nest.", "Bereft of name. Bereft of hope.", "Always your eyes on the sea's horizon.", "You've flown for so long. Your legs have withered.", "Like a snake shedding its skin. Devour your offspring.", "Those who lay with beasts must be prepared for the bite.", "The arrow of time struck midnight long after you were born.", "You will never leave the forest. The forest will never leave you.", "Collect and hoard time itself, before it slips through your fingers.", "You've built your cage, phoenix. Gilded with ashes, helpless to watch them vanish in the wind." )>> <<if $gwylanSeen?.includes("ritual_sex")>> <<run _linePool.pushUnique( "Purges. Urges.", "Howl in sorrow.", "Dry, dead roses, waiting to burn.", "The kiss of the thorn, stained red.", "To pluck the buds before they bloom." )>> <</if>> <<if $gwylanSeen?.includes("yearning")>> <<run _linePool.pushUnique( "Is <<pshe>> any different?", "You'll forget <<phim>> too.", "That your black heart might love again.", "Love will grind hearts of stone to dust.", "The chains tighten as the tide rolls in.", "Love. Memory. Burdens you carry willingly.", "You're so afraid to say you love <<phim>>. You may never get the chance.", "Again. And again. And again. And again. And again. And again. And again. And again. And..." )>> <<if !$gwylanSeen.includes("romance")>> <<run _linePool.pushUnique("The gull scorns its mate again.")>> <</if>> <</if>> <</if>> <<if $npc.includes($spear_vessel)>> <<run _linePool.pushUnique( "Crossways, ablaze.", "Your balance is imperfect.", "You who bear the torch, may you burn.", "See the blade for all its overwhelming might and realise your smallness.", "Raise up your spear, salvation attain. Still we stand here, <span class=\"tentacle\">As One</span> we remain." )>> <</if>> <<set _npc to {0:0,1:1,2:2,3:3,4:4,5:5}>><<set _title to {0:0,1:1,2:2,3:3,4:4,5:5}>> <<for $_g to 0; $_g lt 6; $_g++>> <<if $npc[$_g]>> <<set _npc[$_g] to clone($npc[$_g])>> <<if _npc[$_g] is "Gwylan">> <<set _npc[$_g] to "Seabird">> <<set _title[$_g] to "witch">> <<else>> <<set _title[$_g] to C.npc[$npc[$_g]].title.split(" ").pop()>> <</if>> <<run _linePool.pushUnique( _npc[$_g] + " " + _npc[$_g] + " " + _npc[$_g] + " " + _npc[$_g] + " " + _npc[$_g] + " " + _npc[$_g] + " " + _npc[$_g] + " " + _npc[$_g] + ".", "Hie away, " + _title[$_g] + " mine, hie away." )>> <</if>> <</for>> <<set _speak to _speakPool.pluck()>> <<set _line1 to "<span class=\"wraith\">" + _linePool.pluck() + "</span>">> <<set _line2 to "<span class=\"wraith\">" + _linePool.pluck() + "</span>">> <<if random(0,2)>> <<set _speechWraith to "You _speak. \"_line1 _line2\"">> <<else>> <<set _speechWraith to "You _speak. \"_line1\"">> <</if>> <<elseif $wraith.state is "" and _args[0] isnot "lines">> <<set _speechWraith to ["The <<person>> holds <<his>> necklace tightly.", "The <<person>> whispers incoherently.","The <<person>> giggles quietly.","The <<person>> speaks in a language you don't understand.","The <<person>> opens <<his>> mouth, and your ears begin ringing.","The <<person>> says something, but you immediately forget what it was.","The <<person>> doesn't speak."].pluck()>> <<elseif $wraith.mimic isnot "" and $wraith.revealed is false and _args[0] isnot "lines">> <<switch $wraith.mimic>> <<case "Sydney">> <<set _speechWraith to either( "<<He>> speaks. \"Th-the temple will punish me for this... but I don't care anymore!\"", "<<He>> speaks. \"This is worth any punishment the temple will do to me.\"", "<<He>> speaks. \"We're both sinners now, aren't we?\"", "<<He>> speaks. \"This... still feels so wrong... but...\"", "<<He>> speaks. \"I love the feeling of you inside me.\"", "<<He>> speaks. \"We're still pure, right? This doesn't count?\"", "<<He>> speaks. \"Are you sure this feels good for you?\"", "<<He>> speaks. \"You look so cute down there.\"", "<<He>> barely manages to speak. \"If... if you... I'm going to...\"", "<<He>> speaks. \"I love being this close together.\"", "<<He>> speaks. \"I'm getting used to this feeling.\"", "<<He>> giggles. \"G... go ahead. Just be gentle, please.\"", "<<He>> moans. \"Do it! Deflower me! Make me yours!\"", "<<He>> giggles nervously. \"This is dangerous...\"", "<<He>> smiles gleefully. \"We both have to stay pure, after all!\"", "<<He>> laughs. \"I love it when you're rough!\"", "<<He>> lets out a clearly fake yawn. \"Already bored of the foreplay.\"", "<<He>> giggles. \"I wouldn't want anyone else to touch me like this.\"", "<<He>> speaks. \"Just relax, and let me take care of this.\"", "<<He>> giggles. \"I didn't know this spot could make someone feel good!\"", "<<He>> speaks. \"You're staring. At least let me look at yours, too...\"", "<<He>> speaks. \"I was always taught that this was sinful, but...\"", "<<He>> takes a deep breath. \"We... need to stay quiet...\"", "<<He>> giggles. \"I've sinned... is this my punishment?\"", "<<He>> giggles. \"W... we're doing this in the temple, and nothing is stopping us...\"", "<<He>> freezes. \"Wh... who? Who is it?!\"" )>> <<default>> <</switch>> <<elseif $wraith.state is "active" and $rng lte 8 and _args[0] isnot "lines">> <<set _speechWraith to "<<He>> holds <<his>> necklace close.">> <<else>> <<if _args[0] isnot "lines">> <<set _speaks to [ "<<He>> snarls", "<<He>> growls", "<<He>> cackles", "<<He>> purrs", "<<He>> hisses", "<<He>> emanates", "<<He>> speaks", "<<He>> grunts", "<<He>> giggles", "<<He>> whispers", "<<He>> speaks in an eerily calm tone", "<<His>> voice comes from directly behind you" ].pluck()>> <</if>> <<if $alarm is 1>> <<set _speaks to "<<He>> repeats your screams for help in a mocking tone, in your own voice">> <</if>> <<set _linePool to [ "You.", "Give in.", "Take a bow.", "All for this.", "And so do you.", "The pursuit bends.", "Tick-tock, tick-tock.", "Endless, in the skies.", "Just a little further.", "I know why you're here.", "Relentless, in disguise.", "Is this your idea of heaven?", "Don't make me repeat myself.", "I can feel your heart pounding.", "With a dream that casts a shadow.", "But we both knew that, didn't we?", "Join me, why don't you? It's not far.", "Like sand slipping through your fingers.", "All that matters is the blissful present.", "One million, two million, three million, four.", "What is within is greater than what is without.", "I'm glad to see you again. I missed you, you know.", "Why did they leave? Because they were never there.", "We're all that's left. Can you hear them? No, you can't.", "It would be maddening, to only know one end of the ordeal.", "Here we stand, As Two, <span class=\"tentacle\">As One</span>.", "The pure die young, and the corrupt are as lambs to the slaughter.", "At the bottom, you'll find only darkness, and the darkness will be your everything.", "<<pcPetname \"Wraith\">>.","<<pcPetname \"Wraith\">>.","<<pcPetname \"Wraith\">>.", "<<pcPetname \"Wraith\">>, <<pcpetname \"Wraith\">>.", "<<pcPetname \"Wraith\">>, <<pcpetname \"Wraith\">>." ]>> <<if $wraith.state is "haunt">> <<run _linePool.pushUnique( "Thief.", "Vulture.", "Graverobber.", "Give it back.", "Sleep forever.", "Cut you to perfection.", "Wrath wrath ?sin ?sin ?sin ?sin ?sin wrath.", "Water down your shame, until the lake runs dry.", "Shoot for the stars, that you may crash and burn.", "Until naught remains, but carved bone and midnight blue." )>> <<else>> <<run _linePool.pushUnique( "Just once, can't they stay?", "You did it. I knew you could do it.", "Lust lust ?sin ?sin ?sin ?sin ?sin lust.", "I'm sorry that you put your trust in me.", "Can I pretend you're back, if only for a while?" )>> <</if>> <<if $wraith.state is "despair">> <<run _linePool.pushUnique( "Where is it?", "You're so warm.", "Don't leave me.", "I can't find it.", "So cold.", "So cold.", "Can the innocent repent?", "Where did you go? Come back.", "Never to see the moon again.", "I see you. I see you. I see through you.", "Through my closed eyelids, you still glare.", "Have you seen my necklace?", "Have you seen my necklace?" )>> <</if>> <<if C.npc["Ivory Wraith"].lust gte 10>> <<run _linePool.pushUnique( "Safety. Love. What beautiful lies.", "Carve your name. I'll wash it away.", "Even if I have to drag you there myself.", "You don't have enough. You never had enough.", "Let's see how you like being the puppet, hmm?" )>> <</if>> <<if $templePromised is "Sydney">> <<run _linePool.pushUnique( "And you are wedded to calamity." )>> <</if>> <<if playerIsPregnant()>> <<run _linePool.pushUnique( "Cruel baptism.", "Twin heartbeats, led astray." )>> <</if>> <<if $wraithPrison and $wraithPrison.vision is true>> <<run _linePool.pushUnique( "Different place, same disgrace.", "It's comforting to know we have that in common.", "Stepped from the past. Steeped in the present. Yet to be stopped." )>> <</if>> <<if $wraith.offspring is "dead">> <<run _linePool.pushUnique( "Join them.", "Cast away forever.", "They cried for you, in their last moments." )>> <<if $wraith.state is "haunt">> <<run _linePool.pushUnique("Have you not stolen enough from me?")>> <</if>> <</if>> <<if $wraith.mimic isnot "">> <<run _linePool.pushUnique( "Pretender.", "$wraith.mimic $wraith.mimic $wraith.mimic $wraith.mimic $wraith.mimic $wraith.mimic $wraith.mimic $wraith.mimic." )>> <<else>> <<run _linePool.pushUnique("No one else. Alone. Desolate. Disappear. Drown.")>> <</if>> <<if $wraith.mimic is "Sydney" or ($wraith.mimic is "" and isLoveInterest("Sydney"))>> <<run _linePool.pushUnique( "I was <<nnpc_his \"Sydney\">> only friend, in that dark place beyond the trees.", "You think you can trust <<nnpc_him \"Sydney\">>. That's hilarious, but no one's laughing.", "Close your eyes and sleep, and only then will you truly see. I learned that from <<nnpc_him \"Sydney\">>." )>> <</if>> <<if $museumAntiques.antiques.antiquebell isnot "notFound">> <<run _linePool.pushUnique("The cold iron bell rings again.")>> <</if>> <<if $town_projects and $town_projects.road gte 3>> <<run _linePool.pushUnique( "Let the roads remain buried.", "Trespassers. Trespassers. It was you, wasn't it?", "Choking, cracking... smoking, smacking... will the noise ever stop?" )>> <</if>> <<if $hookah_state gte 2>> <<run _linePool.pushUnique( "All for this?", "It's happening again. It's happened again." )>> <</if>> <<if $awarelevel gte 2>> <<run _linePool.pushUnique( "The Elk fancies itself the predator.", "To be blind again. You'll miss your ignorance.", "The arrow of time struck midnight long before you were born." )>> <</if>> <<if $awarelevel gte 3>> <<run _linePool.pushUnique( "The shattered lie under the edge of blue.", "The chained are bound, by countless chains. The chains are bound to countless chained.", "Under bloody moon, under faithless sun. Dancing to my tune, standing here <span class=\"tentacle\">As One</span>." )>> <</if>> <<if $awareness gte 500>> <<run _linePool.pushUnique( "As Two, As One, yet the Third remains unfound.", "Reach out, with your six dreams.", "Blaze a trail across the sky.", "All things happen in threes.", "Until the Sands run dry.", )>> <</if>> <<if $angel gte 6>> <<run _linePool.pushUnique( "It won't last. It never does.", "Your descent will be beautiful.", "Fly with me, gaoler. Fly and fall.", "You were only a prisoner, after everything." )>> <<elseif $fallenangel gte 2>> <<run _linePool.pushUnique( "Falling. Falling. Falling.", "Almost like looking in a mirror.", "Was it worth it? Don't answer, you would be wrong.", "Open your eyes, blacken your wings, harden your heart." )>> <<elseif $demon gte 6>> <<run _linePool.pushUnique( "Sapphire and brimstone.", "All the world's to defile.", "You wear a mask. Your face moulds to fit it.", "You think you've found the bottom. You've barely breached the surface." )>> <<if $spear_vessel is "held">> <<run _linePool.pushUnique("You've cut off your horns to spite your face.")>> <<elseif $spear_vessel is "Zephyr">> <<run _linePool.pushUnique("The horns split and grow. One million, two million...")>> <</if>> <</if>> <<if $spear_vessel>> <<if $spear_vessel is "held">> <<run _linePool.pushUnique( "A maze, ablaze.", "Too bright. Too warm." )>> <<elseif $spear_vessel is "sea">> <<run _linePool.pushUnique( "Ivory thinner than water. Irony thicker than blood.", "Like sand counting down eternity. The blade crumbles." )>> <<elseif $spear_vessel is "Zephyr">> <<run _linePool.pushUnique( "The light dims. The torch fades.", "You handed away salvation. Get it back.", )>> <</if>> <</if>> <<if $fox gte 6>> <<run _linePool.pushUnique( "Wishing stones. Clutching bones.", "The predator has forgotten its place.", "Behind silver masks, a thief on a string. Beside the Elk basks, <span class=\"tentacle\">As One</span> broken wing.", )>> <</if>> <<if $harpy gte 6>> <<run _linePool.pushUnique( "Clipped wings and a song no one hears." )>> <</if>> <<if $avery_fate is "ascended">> <<run _linePool.pushUnique( "The fox feeds the elk willingly.", "You've made <<nnpc_his 'Avery'>> bed. You will die in it.", "You won't rise with <<nnpc_him 'Avery'>> in rapture. You will be left behind." )>> <<elseif $avery_fate is "saved">> <<run _linePool.pushUnique( "Insignificant mercy.", "Your heart bleeds most for those who stab at it." )>> <<elseif $avery_fate is "fallen" or $avery_fate is "kicked">> <<run _linePool.pushUnique( "It's raining bodies.", "Fall. Falling. Fallen.", "All the gold in the world only made <<nnpc_him 'Avery'>> fall faster.", "You understand. To succumb to the weight of the world is the only justice." )>> <<if $avery_fate is "kicked">> <<run _linePool.pushUnique( "Your actions will stain your soul forever.", "It was a virtue to cast <<nnpc_him 'Avery'>> to the bottom.", "The world cannot become clean without one's hands becoming dirty." )>> <</if>> <</if>> <<if $museumAntiques?.paintings?.paintingward is "museum" or $gwylanSeen?.includes("preen")>> <<run _linePool.pushUnique("Beings thrice damned, you dance on their strings. Two rotten black hearts, birds of a feather. One still missing, plucked from great beast's wings. As Three. As Two. <span class=\"tentacle\">As One.</span> Forever.")>> <</if>> <<if _rngWraithLineChance is 1>> /* Social menu */ <<if Time.isBloodMoon()>> <<run _linePool.pushUnique("The truth will ensnare you, reflection.")>> <</if>> <<if $wraithCompoundEvent>> <<if $wraith.state is "haunt">> <<run _linePool.pushUnique("Fill the hole.")>> <<else>> <<run _linePool.pushUnique("A grain of sand can destroy an empire.")>> <</if>> <</if>> <<if $wraith.state is "haunt">> <<run _linePool.pushUnique("You opened a hole that must be filled.")>> <</if>> <<if C.npc["Ivory Wraith"].love gte 5>> <<if C.npc["Ivory Wraith"].lust gte 10>> <<run _linePool.pushUnique("Together, As One.")>> <<else>> <<run _linePool.pushUnique("In Hell and in high water.")>> <</if>> <<else>> <<if C.npc["Ivory Wraith"].lust gte 10>> <<run _linePool.pushUnique("The tides wear away mountains.")>> <<else>> <<run _linePool.pushUnique("Pearls are not born, but created.")>> <</if>> <</if>> <</if>> <<set _line1 to "<span class=\"wraith\">" + _linePool.pluck() + "</span>">> <<set _line2 to "<span class=\"wraith\">" + _linePool.pluck() + "</span>">> <<if random(0,2)>> <<set _speechWraith to "_speaks. \"_line1 _line2\"">> <<else>> <<set _speechWraith to "_speaks. \"_line1\"">> <</if>> <</if>> <</silently>><<print _speechWraith>><</widget>> <<widget "effectsWraith">> <<switch $wraith.gen>> <<case "man">> <<effectsman>> <<if $wraithApologise>> <<apologyWraith>> <<else>> <<man>> <</if>> <<rescueWraith>> <<stateman>> <br><br> <<actionsman>> <<case "arms">> <<set $enemynomax to 4>> <<effectsman>> <<for _iw to 1; _iw lt 4; _iw++>> <<set $NPCList[_iw].intro to -1>> <</for>> <<if $wraithApologise>> <<apologyWraith>> <<else>> <<man>> <</if>> <br> <<rescueWraith>> <<set $enemyno to 1>> <<stateman>> <br><br> <<actionsman>> <<case "tentacles">> <<chastityBreakWraith>> <<set $NPCList[0].intro to 1>> <<effectstentacles>><<speechWraith>><<tentacles>> <<statetentacles>> <br><br> <<actionstentacles>> <<case "slimetentacles">> <<chastityBreakWraith>> <<set $NPCList[0].intro to 1>> <<swarmeffects>><<effectstentacles>><<speechWraith>> <<swarm>><<tentacles>> <<statetentacles>> <br><br> <<actionsOmni>> <<case "slime">> <<set $NPCList[0].intro to 1>> <<speechWraith>><<struggle>> <<case "abomination">> <<chastityBreakWraith>> <<effectsabomination>> <<if $wraithApologise>> <<apologyWraith>> <<else>> <<abomination>> <</if>> <br> <<rescueWraith>> <<stateabomination>> <br><br> <<actionsabomination>> <</switch>> <</widget>> <<widget "chastityBreakWraith">> <<if $worn.genitals.name is "chastity parasite">> /* Do Nothing */ <<elseif $possessed>> <<if $worn.under_lower.vagina_exposed is 1 and $worn.lower.vagina_exposed is 1 and playerChastity()>> Several tentacles worm their way around your legs. They slither into your $worn.genitals.name, and your own hand seems to guide them. It closes your fist, and the tentacles pull with an impossible force, <<if $worn.genitals.name.includes("gold")>> causing you immense pain as they struggle against the shining metal. You hear sizzling, and it seems to be harming the tentacles. <<gpain>><<pain 6>> <br><br> With one final pull, the metal fractures and splinters, sending shards of gold clattering to the ground as your $worn.genitals.name yields and shatters in a bright flash of light. Both the figure and the tentacles seem to be considerably weaker after the effort. <<if !$wraith.will>> <<set $wraith.will to random(1300,1700)>> <</if>> <<set $wraith.will -= 100>> <<else>> ripping your $worn.genitals.name to shreds. <</if>> <<set $worn.genitals.type.push("broken")>> <<genitalsruined>> <<if $vaginalchastityparasite isnot 0 or $analchastityparasite isnot 0 or $penilechastityparasite isnot 0>> <<set $vaginalchastityparasite to 0>><<set $analchastityparasite to 0>><<set $penilechastityparasite to 0>> <span class="lblue">The parasites within writhe their way out of your body, <<if $underwater is 1>> fading into the murk <<else>> falling to the ground <</if>> with a hiss.</span> <</if>> <</if>> <<else>> <<if $worn.under_lower.vagina_exposed is 1 and $worn.lower.vagina_exposed is 1 and playerChastity()>> Several tentacles worm their way around your legs. They slither into your $worn.genitals.name, seemingly being puppeteered by the pale figure. It closes its fist, and the tentacles pull with an impossible force, <<if $worn.genitals.name.includes("gold")>> causing you immense pain as they struggle against the shining metal. You hear sizzling, and it seems to be harming the tentacles. <<gpain>><<pain 6>> <br><br> With one final pull, the metal fractures and splinters, sending shards of gold clattering to the ground as your $worn.genitals.name yields and shatters in a bright flash of light. Both the figure and the tentacles seem to be considerably weaker after the effort. <<if $abomination is 1>> <<set $enemyhealth -= 150>><<set $enemyarousal += 150>> <</if>> <<set _tentDefeated to 0>> <<for _i to 0; _i lt $tentacles.active; _i++>> <<if _tentDefeated gte 3>> <<break>> <</if>> <<if $tentacles[_i].tentaclehealth gt 0>> <<set $tentacles[_i].tentaclehealth -= 20>> <<set _tentDefeated++>> <</if>> <</for>> <<else>> ripping your $worn.genitals.name to shreds. <</if>> <<set $worn.genitals.type.push("broken")>> <<genitalsruined>> <<if $vaginalchastityparasite isnot 0 or $analchastityparasite isnot 0 or $penilechastityparasite isnot 0>> <<set $vaginalchastityparasite to 0>><<set $analchastityparasite to 0>><<set $penilechastityparasite to 0>> <span class="lblue">The parasites within writhe their way out of your body, <<if $underwater is 1>> fading into the murk <<else>> falling to the ground <</if>> with a hiss.</span> <</if>> <</if>> <</if>> <</widget>> <<widget "apologyWraith">> <<unset $wraithApologise>> <br> <<He>> freezes, and dissipates slightly. A face you swear you've seen before appears in the mist. <<He>> looks at you with an unreadable expression and raises <<his>> arm, just a bit. <<He>> quickly shies away, reforming the mist around <<himself>>. <span class="green"><<He>> seems unable to act.</span> <br><br> <</widget>> <<widget "rescueWraith">> <<if $alarm is 1>> <<if $location is "forest">> <<if $forest lte gwylanForestRescueRange() and (!$gwylanRescue?.failed.includes("Wraith") or gwylanCanRescueFromWraith() and $passage is "Wraith Caught")>> <<if gwylanCanRescueFromWraith() and $passage is "Wraith Caught">> <<set $rescue to 1>> <span class="forest-green">You hear rustling in the trees nearby.</span> <br><br> <<else>> <<gwylanRescueStats false "Wraith">> You see <<gwylanDesc>> burst through the treeline, alarmed by your shout. <<nnpc_He "Gwylan">> looks around, puzzled. <<nnpc_His "Gwylan">> gaze passes right over you, as if you weren't there, <span class="red">then <<nnpc_he "Gwylan">> turns and walks away.</span> <br><br> <</if>> <<else>> <<set $canRescue to []>> <<forestRescueCheck>> <</if>> <</if>> <</if>> <</widget>> <<widget "ejacW">> <<if $wraith.gen is "slime">> The <<person>> raises <<his>> hand. Incorporeal lines of energy flow to <<him>> from the slimes. They disengage, retreating back to the <<person>>. <<He>> picks one up, and begins to pet it. <<else>> <<ejaculation>> <</if>> <</widget>> <<widget "ejaculation-wraith">> <<if !_ejacRepeatFix>> <<switch $wraith.gen>> <<case "man">> <<He>> glows a bright white. <<case "abomination">> <<He>> glows a bright white, and begins laughing. <<His>> pale tentacles disperse in the radiance. <<case "tentacles" "slimetentacles">> <<He>> pulls back <<his>> hand, and <<his>> eyes flash <<wraithEyes>>. The tentacles retreat from you, back to <<his>> side.<<if $wraith.gen is "slimetentacles">> The slimes quickly follow.<</if>> <<case "arms">> <<set $enemyno to 1>> <<He>> glows a bright white, and begins laughing.<<set $NPCList[0].intro to 0>> <<He>> begins to make strange gestures with <<his>> extra arms. <<set _ejacRepeatFix to true>> <<default>> <</switch>> <!-- Temporary until Wraith has its own bodyliquid --> <<for _nn to 0;_nn lt $enemynomax; _nn++>> <<if $NPCList[_nn].penis is "vagina">> <<vaginalejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "vagina" "semen">> <<recordVaginalSperm "pc" $NPCList[_nn] `($enemytype is "man" ? "human" : $NPCList[_nn].type)`>> <<elseif $NPCList[_nn].penis is "anus">> <<analejacstat>><<ejacstat>><<set $hygiene += 500>><<bodyliquid "anus" "semen">> <<recordAnusSperm "pc" $NPCList[_nn] `($enemytype is "man" ? "human" : $NPCList[_nn].type)`>> <</if>> <</for>> <<if $pain gte 100>> <<He>> seems to revel in your suffering. <<elseif C.npc["Ivory Wraith"].lust gte random(10,30) and $wraith.state is "haunt" and !playerIsPregnant()>> <<His>> body flickers and <span class="red">something strikes your stomach</span>. You double over and <<he>> <<if ["abomination","arms"].includes($wraith.gen)>>laughs louder<<else>>laughs<</if>>. <<gstress>><<gtrauma>><<gpain>><<violence 10>> <</if>> <br><br> <</if>> <</widget>> <<widget "kissWraith">> <<if _args[0] is "stress" and $stress gte $stressmax>> <<set $_wraithStress to true>> <</if>> <<set $pronoun to "i">> <<He>> approaches you, <<if $wraith.type is "tentacles" or $wraith.gen is "abomination">> pushing some tentacles aside. <<if $tentacleMouth>> <<set $_outof to (["tentacle", "tentacledeep"].includes($mouthstate) ? "out of" : "away from")>> <<He>> <span class="lblue">yanks the $tentacleMouth $_outof your mouth.</span> <</if>> <<else>> <<if C.npc["Ivory Wraith"].lust gte 16>> grabbing your hair in a painful grip with <<if $wraith.gen is "arms">>more than two<<else>>both<</if>> hands. <<trauma 12>><<stress 6>><<arousal 1000>> <<elseif C.npc["Ivory Wraith"].lust gte 11>> holding the back of your neck with one hand. <<trauma 6>><<arousal 500>> <<else>> cupping your cheek with a surprising gentleness. <</if>> <</if>> <<He>> kisses you, and your ears immediately begin to ring. Your fingers and toes go cold, and your face becomes fiery hot. Until it, too, grows cold. You feel as though some part of you was drained away. <<takeKissVirginity "Ivory Wraith" "rape">> <<arousal 2000 "mouth">><<gggarousal>> <<trauma 30>><<gggtrauma>><<purity -50>><<lllpurity>><<physique_loss 16>><<llphysique>> <<if $pain lt 100>> <<pain -15>><<llpain>> <</if>> <<if $arousal gte $arousalmax>> <br><br> <<orgasm>> Your climax is torturous and painful as you writhe against <<him>>. <<His>> assault only grows more intense. You feel weak. <<trauma 30>><<gggtrauma>><<purity -25>><<llpurity>><<physique_loss 8>><<lphysique>><<awareness -20>><<lllawareness>><<gobsession>> <<if $_wraithStress>> <<set $stress to $stressmax>> <</if>> <</if>> <</widget>> <<widget "wHunt">> <<if !$possessed>> <<switch _args[0]>> <<case "town">> <<if npcCanHunt("Ivory Wraith") and $wraith.state and $wraith.hunt is 0 and $wraith.timer gte (random(0, 50))>> <br><br> <<set $wraith.hunt to 1>> A wave of dizziness and confusion washes over you. Every time you blink, you see a blurred image. <br> You hold your eyes shut, and it begins to come into focus. You see a tall robed figure, bathed in red moonlight, its skin as pale as ivory. As soon as you see it, you can't help but think that it sees you too. The sound of a chain breaking echoes in your ears. <<stress 6>><<gstress>><<trauma 6>><<gtrauma>> <br> <<if $wraith.state is "haunt">> <span class="red">You are being hunted.</span> <<else>> <span class="red">Dread lingers in the air.</span> <</if>> <<elseif $wraith.hunt>> <<if $moonstate is "morning" and Time.hour gte 6>> <br><br> With the rising of the sun, you feel a sense of relief. The dread passes. <span class="blue"><i>You're safe until the next blood moon.</i></span> <<clearWraith>> <<elseif $wPersist is 1>> <<set $wPersist to 2>> <br><br> The feeling of dread remains. Something's wrong. <span class="red">Whatever was hunting you is still coming.</span><<stress 3>><<gstress>> <<elseif $wraith.state is "haunt">> <span class="red">Something terrible is hunting you.</span> <<set $wraith.hunt += (0.5 + (C.npc["Ivory Wraith"].lust / 40))>> <<if $wraith.hunt gte ($rng / 10)>> <<set $eventforced to true>> <</if>> <<else>> <span class="red">Something unnatural stalks the streets.</span> <<set $wraith.hunt += (0.5 + (C.npc["Ivory Wraith"].lust / 40))>> <<if $wraith.hunt gte ($rng / 10)>> <<set $eventforced to true>> <</if>> <</if>> <</if>> <<case "forest">> <<if $wraith.hunt is 0>> <<set $rng2 to random(1, 3)>> <<if $rng2 is 1 and $edenfreedom gte 1>> A chill runs up your spine, a warning from some primal instinct. <span class="red">Something is hunting you.</span> <<set $forestHunter to "Eden">> <<else>> A wave of dizziness and confusion washes over you. Every time you blink, you see a blurred image. <br> You hold your eyes shut, and it begins to come into focus. You see a tall robed figure, bathed in red moonlight, its skin as pale as ivory. As soon as you see it, you can't help but think that it sees you too. The sound of a chain breaking echoes in your ears. <<stress 6>><<gstress>><<trauma 6>><<gtrauma>> <br> <span class="red">Something is hunting you.</span> <</if>> <<set $wraith.hunt to 1>> <<else>> You begin to see strange shapes in the air around you. A chill runs up your spine. <span class="red">Something is still hunting you.</span> <</if>> <<set $forestHunter to "Ivory Wraith">> <<set $foresthunt to $wraith.hunt>> <br><br> <<link [[Next|Forest]]>><<set $eventskip to 1>><</link>> <<case "drain">> <<if npcCanHunt("Ivory Wraith") and $wraith.state and $wraith.hunt is 0 and $wraith.timer gte (random(0, 60))>> <<set $wraith.hunt to 1>> <br><br> A wave of dizziness and confusion washes over you. Every time you blink, you see a blurred image. <br> You hold your eyes shut, and it begins to come into focus. You see a tall robed figure, bathed in red moonlight, its skin as pale as ivory. As soon as you see it, you can't help but think that it sees you too. The sound of a chain breaking echoes in your ears. <<stress 6>><<gstress>><<trauma 6>><<gtrauma>> <br> <<if $wraith.state is "haunt">> <span class="red">You are being hunted.</span> <<else>> <span class="red">Dread lingers in the air.</span> <</if>> <<elseif $wraith.hunt>> <<if $moonstate is "morning" and Time.hour gte 6>> <br><br> As the first rays of sunlight trickle through open manholes and grates, you feel a sense of relief. The dread passes. <span class="blue"><i>You're safe until the next blood moon.</i></span> <<clearWraith>> <<elseif $wraith.state is "haunt">> <span class="red">Something terrible is hunting you.</span> <<set $wraith.hunt += (0.5 + (C.npc["Ivory Wraith"].lust / 40))>> <<if $wraith.hunt gte ($rng / 10)>> <<set $eventforced to true>> <</if>> <<else>> <span class="red">Something unnatural stalks the streets above.</span> <<set $wraith.hunt += (0.5 + (C.npc["Ivory Wraith"].lust / 40))>> <<if $wraith.hunt gte ($rng / 10)>> <<set $eventforced to true>> <</if>> <</if>> <</if>> <<case "sewers">> <<if npcCanHunt("Ivory Wraith") and $wraith.state and $wraith.hunt is 0 and $wraith.timer gte (random(0, 60))>> <<set $wraith.hunt to 1>> <br><br> A wave of dizziness and confusion washes over you. Every time you blink, you see a blurred image. <br> You hold your eyes shut, and it begins to come into focus. You see a tall robed figure, bathed in red moonlight, its skin as pale as ivory. As soon as you see it, you can't help but think that it sees you too. The sound of a chain breaking echoes in your ears. <<stress 6>><<gstress>><<trauma 6>><<gtrauma>> <br> <<if $wraith.state is "haunt">> <span class="red">You are being hunted.</span> <<else>> <span class="red">Dread lingers in the air.</span> <</if>> <<elseif $wraith.hunt>> <<if $moonstate is "morning" and Time.hour gte 6>> <br><br> You feel a sense of relief, and instinctively know the sun has risen. The dread passes. <span class="blue"><i>You're safe until the next blood moon.</i></span> <<clearWraith>> <<elseif $wraith.state is "haunt">> <span class="red">Something terrible is hunting you.</span> <<set $wraith.hunt += (0.5 + (C.npc["Ivory Wraith"].lust / 40))>> <<if $wraith.hunt gte ($rng / 10)>> <<set $eventforced to true>> <</if>> <<else>> <span class="red">Something unnatural stalks the sewers.</span> <<set $wraith.hunt += 0.5>> <<if $wraith.hunt gte ($rng / 10)>> <<set $eventforced to true>> <</if>> <</if>> <</if>> <<case "lake">> Your ears begin to ring, and you feel like you're being watched. Out of instinct, you turn around. <br><br> <<if $bus is "lakeshore" or $bus is "lakeshallows" or $bus is "lakedepths">> A beautiful pale figure hovers over the centre of the lake. You see a long stream of silver hair flowing in the wind. As soon as you see it, it vanishes. <<stress 6>><<gstress>> <br><br> <<elseif $location is "lake_ruin">> A beautiful pale figure floats in the water. Long streams of silver hair flow in the current. As soon as you see it, it vanishes. <<stress 6>><<gstress>> <br><br> <<else>> For a moment, you think you see the shape of a pale face between the trees. <<stress 6>><<gstress>> <br><br> <</if>> <span class="red">You're trespassing. Something is hunting you.</span> <<set $forestHunter to "Ivory Wraith">> <<set $wraith.hunt to 1>> <<set $foresthunt to $wraith.hunt>> <br><br> <<set $eventskip to 1>> <<if $location is "lake_ruin">> <<destinationlakeruin>> <<else>> <<if Weather.isSnow and ($bus is "lakeshallows" or $bus is "lakedepths")>> <<destination_lake_ice>> <<else>> <<destinationlake>> <</if>> <</if>> <</switch>> <</if>> <</widget>> <<widget "wPersist">> <<if $wraith.state and !$possessed>> <<if $wraith.hunt and npcCanHunt("Ivory Wraith")>> <<if _args[0] is "forest">> <<if $foresthunt gte 1>> <<set $wraith.hunt to $foresthunt>> <<set $forestHunter to "Ivory Wraith">> <<if !$wPersist>> <<set $wPersist to 1>> <</if>> <<else>> <<set $foresthunt to $wraith.hunt>><<set $forestHunter to "Ivory Wraith">> You enter the treeline, <span class="red">but can't shake the feeling that something's still coming for you.</span> <</if>> <<if ($location is "lake" or $location is "lake_ruin") and !$possessed>> <<set $wraith.hunt += 1.5>> <<set $foresthunt += 1.5>> <<if $moonstate is "morning" and Time.hour gte 6>> With the rising of the sun, you feel a sense of relief. The dread passes. <span class="blue"><i>You're safe until the next blood moon.</i></span> <<clearWraith>> <br><br> <<else>> <<rng 60>> <<if $rng lte 20>> <span class="red">You are being hunted. Red moonlight reflects off of the water.</span> <<stress 6>><<gstress>> <br><br> <<elseif $rng lte 40>> <span class="red">You are being hunted. You hear distant laughter.</span> <<trauma 6>><<gtrauma>> <br><br> <<else>> <span class="red">You are being hunted. You feel a pressure building around you.</span> <<stress 6>><<gstress>><<trauma 6>><<gtrauma>> <br><br> <</if>> <</if>> <</if>> <</if>> <<elseif npcCanHunt("Ivory Wraith") and !$possessed>> <<wTimerProgress>> <</if>> <</if>> <</widget>> <<widget "wTimerProgress">> <<if $wraith.state and $wraith.hunt is 0 and Time.isBloodMoon()>> <<set $wraith.timer++>> <<set $wraith.timer += Math.floor(C.npc["Ivory Wraith"].lust / 10)>> <<if $rng gte 61 and numberOfEarSlime()>> You hear the slime in your ear make an unusual sound, <span class="red">as if it's calling out to something.</span> <<set $wraith.timer++>> <</if>> <</if>> <</widget>> <<widget "exitWraith">> <<switch $wraith.exit>> <<case "home">> <<link [[Next|Bedroom]]>><<endevent>><<set $eventskip to 1>><<if _args[0]>><<set $phase2 to 1>><</if>><</link>> <br> <<case "sleep">> <<set $wardrobe_location to "wardrobe">> <<wardrobeSelection true>> <<radiooutfits>> <br><br> <<link [[Next|Bedroom]]>><<endevent>><<set $eventskip to 1>><<if _args[0]>><<set $phase2 to 1>><</if>><</link>> <br> <<case "cabin">> <<link [[Next|Eden Cabin]]>><<endevent>><<set $eventskip to 1>><<if _args[0]>><<set $phase2 to 1>><</if>><</link>> <br> <<case "alex_cottage">> <<link [[Next|Farm Cottage]]>><<endevent>><<set $eventskip to 1>><<if _args[0]>><<set $phase2 to 1>><</if>><</link>> <br> <<case "tower">> <<link [[Next|Bird Tower]]>><<endevent>><<set $eventskip to 1>><<if _args[0]>><<set $phase2 to 1>><</if>><</link>> <br> <<case "town">> <<destinationeventend>> <<endevent>><<if _args[0]>><<set $phase2 to 1>><</if>> <<case "forest">> <<link [[Next|Forest]]>><<endevent>><<set $eventskip to 1>><<if _args[0]>><<set $phase2 to 1>><</if>><</link>> <br> <<case "Gwylan">> <<link [[...|Forest Wraith Gwylan]]>><<endevent>><<set $eventskip to 1>><<if _args[0]>><<set $phase2 to 1>><</if>><</link>> <br> <<case "forest_shop">> <<link [[Next|Forest]]>><<endevent>><<set $eventskip to 1>><<set $forest to 0>><<if _args[0]>><<set $phase2 to 1>><</if>><</link>> <br> <<case "lake_ruin">> <<destinationlakeruin>> <<endevent>><<set $eventskip to 1>><<if _args[0]>><<set $phase2 to 1>><</if>> <<case "lake">> <<if Weather.isSnow and ($bus is "lakedepths" or $bus is "lakeshallows")>> <<destination_lake_ice>> <<else>> <<destinationlake>> <</if>> <<endevent>><<set $eventskip to 1>><<if _args[0]>><<set $phase2 to 1>><</if>> <<case "wolf_cave">> <<link [[Next|Wolf Cave]]>><<endevent>><<set $eventskip to 1>><<if _args[0]>><<set $phase2 to 1>><</if>><</link>> <br> <<case "moor">> <<link [[Next|Moor]]>><<endevent>><<set $eventskip to 1>><<if _args[0]>><<set $phase2 to 1>><</if>><</link>> <br> <<case "farm_assault">> <<link [[Next|Farm Assault]]>><<endevent>><<if _args[0]>><<set $phase2 to 1>><</if>><</link>> <br> <<case "sewers">> <<destinationsewers>> <<endevent>><<set $eventskip to 1>> <<case "pirates">> <<link [[Next|Pirate Deck]]>><<endevent>><<set $eventskip to 1>><<if _args[0]>><<set $phase2 to 1>><</if>><</link>> <br> <<case "mansion">> <<link [[Next|Mansion Bedroom]]>><<endevent>><<set $eventskip to 1>><</link>> <br> <<default>> <span class="red">Something went wrong. There's nowhere to place you due to a failure of the Wraith's code. Please inform PurityGuy.</span> <br><br> Offending event: $passage | Location: $location ($bus) | Exit: $wraith.exit <br><br> <<endWraith>> <<clearWraith>> <<link [[Portal to the bedroom|Bedroom]]>><<endevent>><<set $eventskip to 1>><<hallucinogen 180>><</link>><<gghallucinogens>> <br> <</switch>> <<if !_args[0]>> <<endWraith>> <</if>> <</widget>> <<widget "rngWraith">> <<if $wraith.state>> <<if _args[1] is "night" and Time.dayState isnot "night" or _args[1] is "noBlood" and Time.isBloodMoon()>> <<set _wraithEvent to false>> <<else>> <<set _rngWraith to 2 + (Math.floor(C.npc["Ivory Wraith"].lust / 10))>> <<if Time.dayState is "night">> <<set _rngWraith += 2>> <</if>> <<set _wraithHallucinations to (_args[0] is 1 or _args[0] is 2 ? _args[0] : 0)>> <<if ($hallucinations gte _wraithHallucinations and _rngWraith gte random(1,100)) or Time.isBloodMoon()>> <<set _wraithEvent to true>> <</if>> <</if>> <</if>> <</widget>> <<widget "rngWraithSocial">> <<if !_rngWraithSocialCheck>> <<set _rngWraithSocialCheck to true>> <<set _rngWraithFace to ($wraith.type ? Math.ceil(Math.random() * 10) : Math.ceil(Math.random() * 30))>> <<set _rngWraithLineChance to Math.ceil(Math.random() * 15)>> <<set _rngWraithSocial to 2 + (Math.floor(C.npc["Ivory Wraith"].lust / 10))>> <<if Time.dayState is "night">> <<set _rngWraithSocial += 2>> <</if>> <<if ($hallucinations gte 1 and _rngWraithSocial gte Math.ceil(Math.random() * 100)) or Time.isBloodMoon()>> <<set _wraithEventSocial to true>> <</if>> <<if $wraith.mimic isnot "" and $wraith.revealed>> <<set _wraithTitle to "pretender">> <<else>> <<switch $wraith.gen>> <<case "tentacles">><<set _wraithTitle to "writhing">> <<case "abomination">><<set _wraithTitle to "profane">> <<case "arms">><<set _wraithTitle to "vain">> <<default>><<set _wraithTitle to (["haunt", "despair"].includes($wraith.state) ? "forlorn" : "reflection")>> <</switch>> <</if>> <</if>> <</widget>> <<widget "wraithEventStreet">> <<set $wraith.exit to "town">> <<if $wraith.hunt gte 10>> <<if !$wraithIntro>> <<wraithIntro>> <<else>> <<wraithCaught>> <</if>> <<else>> <<cleareventpool>> <<if $wraith.hunt gte 5>> <<if !$wraithIntro>> <<addevent "wraithIntro" 0.1>> <<else>> <<addinlineevent "wraithClose1" 0.1>> As you walk, your footfalls become lighter. You're having trouble breathing<<if $exposed lte 0>>, and your clothes feel heavy<</if>>. <<rainWraith true>> <br><br> Your ears begin to ring, and you see something taking shape in the <<print Weather.precipitation>>. A beautiful pale figure floats just above the ground, wearing translucent white robes that flow in the wind. Its eyes flash a bright <<wraithEyes>> as it sees you. Your mind feels cloudy as you see shapes dancing in the air and behind its eyes. <br><br> Before you can look away, it makes a hypnotic motion with its hands. <<if $wraith.state is "haunt">> It then raises a hand to its neck, seemingly trying to grab something that isn't there. Its hand clenches. <br><br> "<span class="wraith">Thief. You will never be free again.</span>" <br><br> <<if numberOfEarSlime()>> <span class="lewd">You feel the slime in your head command you to</span> <span class="red">give it back.</span> <br><br> <</if>> <<elseif $wraith.state is "despair">> It then raises a hand to its neck, seemingly trying to grab something that isn't there. Its hand clenches. <br><br> "<span class="wraith">It's so cold. You're so warm.</span>" <br><br> <<if numberOfEarSlime()>> <span class="lewd">You feel the slime in your head command you to</span> <span class="red">kneel.</span> <br><br> <</if>> <<else>> It raises a hand to its chest, rubbing its ivory necklace. The glint of the inlaid blue gemstones match its glowing eyes. <br><br> "<span class="wraith">Kneel.</span>" <br><br> <<if numberOfEarSlime()>> <span class="lewd">You feel the slime in your head command you to kneel.</span> <br><br> <</if>> <</if>> <<link [[Give in|Wraith Caught Obey]]>><<if numberOfEarSlime()>><<corruption 1>><<pain -4>><<stress -6>><<trauma -12>><</if>><<sub 1>><</link>><<if numberOfEarSlime()>><<gcorruption>><<lpain>><<lltrauma>><<lstress>><</if>> <br> <<link [[Try to look away|Wraith Caught Resist]]>><<if numberOfEarSlime()>><<corruption -1>><<pain 8>><<stress 6>><<trauma 6>><</if>><<def 1>><</link>><<if numberOfEarSlime()>><<lcorruption>><<ggpain>><<ggtrauma>><<ggstress>><</if>><<willpowerdifficulty 1 $willpowermax>> <br> <</addinlineevent>> <<addinlineevent "wraithClose2" 0.1>> Something whispers your name directly in your ear. You flail to the side, but there's nothing there. <<if $loveInterest.primary isnot "None" and $loveInterest.primary isnot "Black Wolf" and $loveInterest.primary isnot "Great Hawk">> You think it sounded like $loveInterest.primary. <<if $wraith.seen gte 5>>You know better, though.<</if>> <</if>> <br><br> When you turn around, your blood freezes. The pale figure <<if $location is "park">>floats atop the fountain<<else>>stands at the end of the street<</if>>. <<rainWraith>> <br><br> <<link [[Run|Wraith Run]]>><</link>><<athleticsdifficulty 800 1500>> <br> <<link [[Hide (0:10)|Wraith Hide]]>><<pass 10>><</link>> <br> <</addinlineevent>> <<addinlineevent "wraithClose3" 0.1>> <<if $settings.tentaclesEnabled>> You see a blur of white from the corner of your eye, and feel something touch your thighs. You look down to see a pale tentacle extending from an open manhole. <span class="red">You feel whatever's hunting you drawing near.</span> <br><br> <<if !pcAreArmsBound("both") and $angel gte 4 and $angelBanish gte 1>> <<link [[Banish the tentacle|Wraith Tentacle Banish]]>><<angelBanishAction>><</link>><<angelBanishNote>> <br> <</if>> <<link [[Grab the tentacle|Wraith Tentacle Grab]]>><</link>><<physiquedifficulty 6000 16000>><<deviant1>> <br> <<if hasSexStat("deviancy", 5)>> <<link [[Offer yourself|Wraith Tentacle Rape]]>><<set $molestationstart to 1>><</link>><<deviant5>> <br> <</if>> <<link [[Try to run|Wraith Tentacle Run]]>><<stress 3>><<trauma 3>><</link>><<gtrauma>><<gstress>> <br> <<else>> You see a blur of white from the corner of your eye, and feel something grab your ankle. You immediately try to jump back, but trip as it tightens its grip. <<pain 2>><<gpain>> <br><br> You look down to see a pale hand retreating into a storm drain. <<stress 6>><<gstress>> <br><br> You scramble to your feet and keep moving. <br><br> <<set $wraith.hunt++>> <<destinationeventend>> <</if>> <</addinlineevent>> <<addinlineevent "wraithClose4" 0.2>> Everything around you is bathed in red light. As you walk, you notice large spans of time where there seems to be no one else around. <br><br> You're not sure whether this is a reprieve, or a sign of something much worse. <br><br> <<destinationeventend>> <</addinlineevent>> <<addinlineevent "wraithClose5" 0.1>> You hear an intense rumbling from under you. It sounds like it's coming from the sewers. You see a massive column of water shoot up from an open manhole, carrying water high into the air. <br><br> The rumbling becomes heavier. A drainage grate much closer to you erupts in water. You look down, and realise you're standing right on top of a grate. <br><br> <<if (currentSkillValue('danceskill') + $rng) gte 800>> Thanks to your agility, you <span class="green">reflexively pivot and throw yourself out of the way</span> as another column of water shoots up. <<else>> You try to throw yourself out of the way, but <span class="red">you're too slow.</span> You're soaked by a column of water from below. <<water>><<effectswater "water">><<exposure>><<covered>> <</if>> <br><br> A final water spout shoots up from another manhole far behind you. You see a ghostly pale figure standing at the crest, surrounded by translucent watery tendrils. <<stress 12>><<ggstress>> <br><br> You run in the opposite direction. <<set $wraith.hunt++>> <br><br> <<exitWraith>> <</addinlineevent>> <</if>> <</if>> <<addinlineevent "wraith1" 0.2>> From the corner of your eye, you catch a glimpse of a pale face watching you from <<if $location is "park">> behind a tree. <<else>> a high window. <</if>> When you blink, it's gone. <<stress 6>><<gstress>> <br><br> <<destinationeventend>> <</addinlineevent>> <<addinlineevent "wraith2" 0.1>> You think you hear someone call your name. You don't see a single person around you. <<stress 6>><<gstress>> <br><br> <<destinationeventend>> <</addinlineevent>> <<addinlineevent "wraith3" 0.1>> <<generate1>><<person1>>A <<person>> runs by, nearly knocking you over. <<Hes>> barely staying on <<his>> feet, and keep looking towards you with panic. <br><br> You realise <<hes>> looking behind you. You turn, but there's nothing except <<if $location is "park">> the empty park. <<else>> empty streets. <</if>> <br><br> <<endevent>> <<destinationeventend>> <</addinlineevent>> <<addinlineevent "wraith4" 0.2>> Red moonlight reflects off distant windows and parked cars. As eerie as the atmosphere is, you can't deny that it's also rather beautiful. <<stress -3>><<lstress>> <br><br> <<destinationeventend>> <</addinlineevent>> <<addinlineevent "wraith5" 0.1>> As you pass over a grate, you hear a faint rumbling from down below. It gets louder the longer you listen. <br><br> You decide not to linger. <br><br> <<destinationeventend>> <</addinlineevent>> <<addinlineevent "wraithEventSkip" 0.3>> <<set _wraithEventSkipped to true>> <<eventsstreet>> <</addinlineevent>> <<runeventpool>> <</if>> <</widget>> <<widget "wraithEventSewers">> <<set $wraith.exit to "sewers">> <<if $wraith.hunt gte 10>> <<if !$wraithIntro>> <<wraithIntro>> <<else>> <<wraithCaught>> <</if>> <<else>> <<cleareventpool>> <<if $wraith.hunt gte 5>> <<if !$wraithIntro>> <<addevent "wraithIntro" 0.1>> <<else>> <<addinlineevent "wraithClose1" 0.1>> As you walk, your footfalls become lighter. You're having trouble breathing<<if $exposed lte 0>>, and your clothes feel heavy<</if>>. <<rainWraith true>> <br><br> Your ears begin to ring, and you see something taking shape in the fog. A beautiful pale figure floats just above the ground, wearing translucent white robes that flow in the wind. Its eyes flash a bright <<wraithEyes>> as it sees you. Your mind feels cloudy as you see shapes dancing in the air and behind its eyes. <br><br> Before you can look away, it makes a hypnotic motion with its hands. <<if $wraith.state is "haunt">> It then raises a hand to its neck, seemingly trying to grab something that isn't there. Its hand clenches. <br><br> "<span class="wraith">Thief. You will never be free again.</span>" <br><br> <<if numberOfEarSlime()>> <span class="lewd">You feel the slime in your head command you to</span> <span class="red">give it back.</span> <br><br> <</if>> <<elseif $wraith.state is "despair">> It then raises a hand to its neck, seemingly trying to grab something that isn't there. Its hand clenches. <br><br> "<span class="wraith">It's so cold. You're so warm.</span>" <br><br> <<if numberOfEarSlime()>> <span class="lewd">You feel the slime in your head command you to</span> <span class="red">kneel.</span> <br><br> <</if>> <<else>> It raises a hand to its chest, rubbing its ivory necklace. The glint of the inlaid blue gemstones match its glowing eyes. <br><br> "<span class="wraith">Kneel.</span>" <br><br> <<if numberOfEarSlime()>> <span class="lewd">You feel the slime in your head command you to kneel.</span> <br><br> <</if>> <</if>> <<link [[Give in|Wraith Caught Obey]]>><<if numberOfEarSlime()>><<corruption 1>><<pain -4>><<stress -6>><<trauma -12>><</if>><<sub 1>><</link>><<if numberOfEarSlime()>><<gcorruption>><<lpain>><<lltrauma>><<lstress>><</if>> <br> <<link [[Try to look away|Wraith Caught Resist]]>><<if numberOfEarSlime()>><<corruption -1>><<pain 8>><<stress 6>><<trauma 6>><</if>><<def 1>><</link>><<if numberOfEarSlime()>><<lcorruption>><<ggpain>><<ggtrauma>><<ggstress>><</if>><<willpowerdifficulty 1 $willpowermax>> <br> <</addinlineevent>> <<addinlineevent "wraithClose2" 0.1>> <<if $settings.tentaclesEnabled>> You see a blur of white from the corner of your eye, and feel something touch your thighs. You look down to see a pale tentacle extending from the canal. <span class="red">You feel whatever's hunting you drawing near.</span> <br><br> <<if !pcAreArmsBound("both") and $angel gte 4 and $angelBanish gte 1>> <<link [[Banish the tentacle|Wraith Tentacle Banish]]>><<angelBanishAction>><</link>><<angelBanishNote>> <br> <</if>> <<link [[Grab the tentacle|Wraith Tentacle Grab]]>><</link>><<physiquedifficulty 6000 16000>><<deviant1>> <br> <<if hasSexStat("deviancy", 5)>> <<link [[Offer yourself|Wraith Tentacle Rape]]>><<set $molestationstart to 1>><</link>><<deviant5>> <br> <</if>> <<link [[Try to run|Wraith Tentacle Run]]>><<stress 3>><<trauma 3>><</link>><<gtrauma>><<gstress>> <br> <<else>> You see a blur of white from the corner of your eye, and feel something grab your ankle. You immediately try to jump back, but trip as it tightens its grip. <<pain 2>><<gpain>> <br><br> You look down to see a pale hand retreating into a storm drain. <<stress 6>><<gstress>> <br><br> You scramble to your feet and keep moving. <br><br> <<set $wraith.hunt++>> <<destinationsewers>> <</if>> <</addinlineevent>> <<addinlineevent "wraithClose3" 0.1>> You notice the ceiling glisten. <<if $settings.slimesEnabled>> A sticky substance drops to the floor with a splat. It's thick, slimy and pale. It shambles toward you, and more appear from the fog. <br><br> <<link [[Next|Wraith Sewers Struggle]]>><<set $struggle_start to 1>><</link>> <<else>> You step to the side just as a pale slime drops to the floor with a splat. You run before it gives chase, but feel whatever's hunting you draw closer. <<stress 6>><<gstress>> <br><br> <<set $wraith.hunt++>> <<destinationsewers>> <</if>> <</addinlineevent>> <</if>> <</if>> <<addinlineevent "wraith1" 0.2>> From the corner of your eye, you catch a glimpse of a pale face watching you from the shadows. When you blink, it's gone. <<stress 6>><<gstress>> <br><br> <<destinationsewers>> <</addinlineevent>> <<addinlineevent "wraith2" 0.1>> You think you hear someone call your name. You don't see a single person around you. <<stress 6>><<gstress>> <br><br> <<destinationsewers>> <</addinlineevent>> <<addinlineevent "wraith3" 0.1>> The water churns unnaturally, before leaping at you. You jump back, but the water stops in midair. It slowly retreats back into the canal, as if changing its mind. <<stress 6>><<gstress>> <br><br> <<destinationsewers>> <</addinlineevent>> <<addinlineevent "wraithEventSkip" 0.1>> <<set _wraithEventSkipped to true>> <<eventssewers>> <</addinlineevent>> <<runeventpool>> <</if>> <</widget>> <<widget "wraithIntro">> <<set $wraithIntro to true>> As you walk, your footfalls become lighter. You're having trouble breathing<<if $exposed lte 0>>, and your clothes feel heavy<</if>>. <br><br> <<if $location is "forest" or $location is "lake">> You steady yourself against a tree, panting. You look around, and notice that everything's gone quiet. <<switch Weather.precipitation>> <<case "snow">> A cold breeze accompanies the snowfall. You look back, finding your footprints already covered. You've completely lost your sense of direction. <<case "rain">> Only the rain breaks the silence. <<default>> <<if Weather.isSnow>> The snow falls quietly. You don't remember when it started snowing, though. <<rainWraith>> <<else>> Only the rain breaks the silence. You don't remember when it started raining, though. <<rainWraith>> <</if>> <</switch>> Your ears begin to ring. <br><br> The shape of a person begins to form in the <<print Weather.precipitation>>, and your pulse quickens. <<elseif $location is "sewers">> <<rainWraith>> The air around you chills. You swear you feel <<print Weather.precipitation>> on your skin, but there is no <<print Weather.precipitation>> in the sewers. Only a rapidly expanding fog. <br><br> Your ears begin to ring. An image starts to take shape in the fog, and your pulse quickens. <<else>> You look around. The area is completely devoid of people. You take a moment to steady yourself. The image of the robed figure slowly fades from your head. <<rainWraith true>> <br><br> Your ears begin to ring. An image starts to take shape in the <<print Weather.precipitation>>, and your pulse quickens. <</if>> You try to turn and run, but your legs won't move, and you can't help but look. A beautiful pale figure floats just above the ground, wearing translucent white robes that flow in the wind. Its eyes flash a bright <<wraithEyes>> as it sees you. <<if $wraith.state is "haunt">> It raises a hand to its scarred neck, seemingly trying to grab something that isn't there. <br><br> "<span class="wraith">Thief. Give it back, or <<if Weather.precipitation is "snow">>this blizzard will freeze you<<else>>this deluge will drown you<</if>>.</span>" <br><br> <<if numberOfEarSlime()>> <span class="lewd">You feel the slime in your head command you to</span> <span class="red">give it back.</span> <br><br> <</if>> <<elseif $wraith.state is "despair">> It then raises a hand to its neck, seemingly trying to grab something that isn't there. Its hand clenches. <br><br> "<span class="wraith">H...have you seen my necklace?</span>" <br><br> <<if numberOfEarSlime()>> <span class="lewd">You feel the slime in your head command you to</span> <span class="red">kneel.</span> <br><br> <</if>> <<else>> It raises a hand to its chest, rubbing its ivory necklace. The glint of the inlaid blue gemstones match its glowing eyes. <br><br> "<span class="wraith">A poor, lonely soul. Come. I will make us beautiful.</span>" <br><br> <<if numberOfEarSlime()>> <span class="lewd">You feel the slime in your head command you to kneel.</span> <br><br> <</if>> <</if>> <<link [[Give in|Wraith Caught Obey]]>><<if numberOfEarSlime()>><<corruption 1>><<pain -4>><<stress -6>><<trauma -12>><</if>><<sub 1>><</link>><<if numberOfEarSlime()>><<gcorruption>><<lpain>><<lltrauma>><<lstress>><</if>> <br> <<link [[Try to look away|Wraith Caught Resist]]>><<if numberOfEarSlime()>><<corruption -1>><<pain 8>><<stress 6>><<trauma 6>><</if>><<def 1>><</link>><<if numberOfEarSlime()>><<lcorruption>><<ggpain>><<ggtrauma>><<ggstress>><</if>><<willpowerdifficulty 250 $willpowermax>> <br> <<if $angel gte 6>> <<link [[Pray|Wraith Intro Pray]]>><</link>><<angel>> <br> <</if>> <</widget>> <<widget "wraithCaught">> <<rainWraith>> <<if $passage is "Lake Meditate">> You're suddenly snapped out of your meditation. Your arms<<if $exposed lte 0>> and clothes<</if>> grow heavy, and you feel like you're floating. <br><br> As soon as you look behind you, you feel something violently grab into your neck and lift you clear off the ground. <br><br> <<if $wraithIntro>> A pale figure stands before you. <<if $wraith.state is "haunt">> It holds a clenched hand to its neck, and bares its teeth at you. <br><br> "<span class="wraith">Drown.</span>" <<elseif $wraith.state is "despair">> It holds a clenched hand to its neck, and frowns at you. <br><br> "<span class="wraith">Where is it? So cold.</span>" <<else>> Its necklace shimmers blue, despite the red moonlight. <br><br> "<span class="wraith">You belong to me.</span>" <</if>> <<else>> <<set $wraithIntro to true>> A beautiful pale figure stands before you. It looks you over, before pulling you closer. It's hard to look away. <br><br> <<if $wraith.state is "haunt">> It holds a clenched hand to its scarred neck, and bares its teeth at you. <br><br> "<span class="wraith">Thief. Give it back.</span>" <<elseif $wraith.state is "despair">> It holds a clenched hand to its neck, and frowns at you. <br><br> "<span class="wraith">H...have you seen my necklace?</span>" <<else>> Its necklace shimmers blue, despite the red moonlight. <br><br> "<span class="wraith">Don't resist. I will make us beautiful.</span>" <</if>> <</if>> <<elseif $location is "lake_ruin" or $bus is "lakedepths" or $bus is "lakeshallows">> <<if $bus is "lakeshallows" or $bus is "lakedepths">> <<set $location to "lake_ruin">> <<if Weather.isSnow>> You stumble forward, and feel your foot hit ice cold water. You didn't hear any ice break. <br><br> You look back, and see a pale hand sticking out of the ice without a breach. <span class="red">It pulls, and you begin to pass right through the ice.</span> You have nothing to grab onto, and are helplessly pulled under. <<else>> You feel a tug on your leg. Without warning, <span class="red">you're pulled under the surface violently.</span> <</if>> <br><br> <<else>> You feel a sudden tug downwards. You struggle in the water, but fail to move. You look around, and see many long, translucent limbs ensnaring you. <br><br> <</if>> <<if $wraithIntro>> A pale figure floats in the water before you. <<if $wraith.state is "haunt" or $wraith.offspring is "dead">> It holds a clenched hand to its neck, and bares its teeth at you. <br><br> "<span class="wraith">Drown.</span>" <<elseif $wraith.state is "despair">> It holds a clenched hand to its neck, and smiles at you. <br><br> "<span class="wraith"><<pcPetname "Wraith">>. You've returned. Have you seen my necklace?</span>" <<else>> Its necklace shimmers a striking blue, causing reflections in the water all around you. <br><br> "<span class="wraith">You've returned.</span>" <</if>> <<else>> <<set $wraithIntro to true>> A beautiful pale figure encircles you. Long streaks of silver hair flow in the water behind it. It almost seems to be inspecting you. <br><br> <<if $wraith.state is "haunt">> It scratches at its bare neck, and regards you with striking red eyes. <br><br> "<span class="wraith">Thief. You've returned. Give it back at once.</span>" <<elseif $wraith.state is "despair">> It holds a clenched hand to its neck, and frowns at you. <br><br> "<span class="wraith">H...have you seen my necklace?</span>" <<else>> It places a hand over its ivory necklace, as if to guard it from you. <br><br> "<span class="wraith">Trespasser. Do you come to steal from the dead?</span>" <</if>> <</if>> <<else>> You suddenly feel like you're walking through waist-high water. Your arms<<if $exposed lte 0>> and clothes<</if>> grow heavy, and your feet don't seem to hit the ground anymore. <br><br> As soon as you look behind you, you feel something violently grab into your neck and lift you clear off the ground. A pale figure stands before you. <<if ["haunt", "despair"].includes($wraith.state)>> It has a hand pressed to its own bare neck, and regards you with striking red eyes. <<else>> Its silver hair flows in a breeze you can't feel. It places its free hand over its necklace. <</if>> <br><br> <<if $wraith.state is "haunt" or $wraith.offspring is "dead">> "<span class="wraith">Drown.</span>" <<elseif $wraith.state is "despair">> "<span class="wraith">So cold. Where is it?</span>" <<else>> "<span class="wraith">You belong to me.</span>" <</if>> <</if>> <br><br> <<generateWraith 1 true>> <<initWraith "abomination">> <<if $wraith.gen is "abomination">> Pale tendrils keep you suspended in place. <<else>> Many translucent arms swirl behind it. <</if>> <br><br> <<link [[Next|Wraith Caught]]>><</link>> <br> <</widget>> <<widget "wraith_pass">> <<if _args[0]>> <<pass _args[0]>> <<set $wraithPrison.timer -= _args[0]>> <<if $wraithPrison.timer lte 0 and $wraithPrison.state isnot "gone">> <<set $wraithPrison.state to "present">> <<elseif $wraithPrison.state isnot "gone">> <<set $wraithPrison.state to "recovering">> <</if>> <<set $wraithPrison.timePassed += _args[0]>> <<hallucinogen `(_args[0] * 3)`>> <<set $arousal += (_args[0] * 3)>> <</if>> <</widget>> <<widget "wraithPossess">> <<set $possessed to true>><<canvas-model-override "blink" false>> <<set $controlSaved to $control>><<set $control to 0>> <<set $wraith.hunt to 0>> <<if $forestHunter is "Wraith">> <<set $foresthunt to 0>> <</if>> <<if _args[0]>> <<set $wraith.exit to _args[0]>> <</if>> <</widget>> <<widget "wraithExorcise">> <<unset $possessed>><<canvas-model-override "clear">> <<if _args[0]>> <<if $wraith.possessCount is undefined>> <<set $wraith.possessCount to 1>> <<else>> <<set $wraith.possessCount++>> <</if>> <</if>> <<if _args[1] and $controlSaved isnot undefined>> <<set $control to $controlSaved>><<unset $controlSaved>> <</if>> <</widget>> <<widget "gobsession">> <<if !$wraith.init>> <span class="red">ERROR: Wraith is not initialised.</span> <br><br> Offending event: $passage | Location: $location ($bus) <<else>> <<set $_change to (_args[0] ? _args[0] : 1)>> <<set C.npc["Ivory Wraith"].lust += $_change>> <<if !$settings.blindStatsEnabled and $_change gt 0>> | <<if $_change gt 4>> <span class="red">+ + + Obsession</span> <<elseif $_change gt 2>> <span class="red">+ + Obsession</span> <<else>> <span class="red">+ Obsession</span> <</if>> <</if>> <</if>> <<relationshipclamp>> <</widget>> <<widget "lobsession">> <<if !$wraith.init>> <span class="red">ERROR: Wraith is not initialised.</span> <br><br> Offending event: $passage | Location: $location ($bus) <<else>> <<set $_change to (_args[0] ? _args[0] : 1)>> <<set C.npc["Ivory Wraith"].lust -= $_change>> <<if $wraith.state is "haunt" and C.npc["Ivory Wraith"].lust lt 10>> <<set $_change -= (10 - C.npc["Ivory Wraith"].lust)>> <</if>> <<if !$settings.blindStatsEnabled and $_change gt 0>> | <<if $_change gt 4>> <span class="blue">- - - Obsession</span> <<elseif $_change gt 2>> <span class="blue">- - Obsession</span> <<else>> <span class="blue">- Obsession</span> <</if>> <</if>> <</if>> <<relationshipclamp>> <</widget>> <<widget "possessedWord">><<set $_colour to _args[1] ? _args[1] : "">><span @class="$possessed ? 'wraith ' + $_colour : '$_colour'"><<print _args[0]>></span><</widget>><<set $outside to 1>><<set $location to "lake">><<effects>><<lakeeffects>> <<set _earSlimeEnableSwimwear to true>> <<set $forest to 30>><<set $bus to "lakeshore">><<wearoutfit>> You are at the shore of the <<= Weather.isFrozen("lake") ? "frozen lake" : "lake">>. <<if Time.hour gte 15 and $halloween is 1 and Time.monthDay is 31 and $halloween_lake is 1>> There are several people hanging out for the Halloween party. <<elseif $laketeenspresent is 1>> <<if Weather.isFrozen("lake")>> Students hang out nearby, while others practise ice skating. <<else>> <<if Time.season isnot "winter">>There are several people playing in the water. <</if>>You can see the swimmer's dock with a few students sitting on it. <</if>> <<elseif Time.dayState is "night">> <<if Time.isWeekEnd()>> You can see faint light from a fire at the campsite across the water. <<else>> Dark water ripples unseen. <</if>> <<elseif Time.dayState is "dusk" or Time.dayState is "dawn">> <<if Weather.isFrozen("lake")>> The sun reflects off the ice. <<else>> Undulating waves splash against the sand and rocks. A bear eats fish on the opposite bank. <</if>> <<else>> You can see your reflection in its surface. <<if Weather.isFrozen("lake")>> You could walk out to the swimmers dock if you wanted. <<else>> The swimmers dock sits idle out on the water. <</if>> <</if>> <<if Weather.precipitation is "rain">> The <<= Weather.isFrozen("lake") ? "ice" : "water">> is alive with motion as rain <<= Weather.isFrozen("lake") ? "bounces off" : "breaks">> its surface. <<elseif Weather.precipitation is "snow">> Snow <<= Weather.isFrozen("lake") ? "settles on the ice" : "drifts into the frigid water">>. <<elseif Weather.isFrozen("lake")>> The ice is serene. <<else>> The water is calm. <</if>> <br><br> <<if $exposed gte 1 and $laketeenspresent is 1>> You keep low and stay among the trees to keep your <<lewdness>> hidden. <br><br> <</if>> <<if $stress gte $stressmax and !$possessed>> <<passoutlake>> <<elseif $foresthunt gte 10>> <<foresthunt>> <<elseif dangerEvent() and $eventskip is 0 and $laketeenspresent isnot 1 and !$possessed>> <<eventlake>> <<elseif $town_projects.diving is 1 and $exposed lte 0 and !$possessed>> <<set $town_projects.diving to 2>> <<npc Winter>><<person1>> <<if Weather.precipitation is "rain">> You see Winter stood on the shore, the wind catching <<his>> grey hair beneath a black umbrella. <<else>> You see Winter stood on the shore, the wind catching <<his>> grey hair. <</if>> <<He>> glances your way. <<if Time.dayState is "night">> "Didn't expect company at this hour," <<he>> says. <<elseif Time.schoolDay and Time.hour gte 9 and Time.hour lt 15>> "Shouldn't you be in school?" <<he>> asks, then chuckles. "I suppose you could ask the same of me." <<elseif Time.schoolDay>> "I didn't expect company," <<he>> says. <<elseif Time.weekDay is 7 or Time.weekDay is 1>> "Don't worry," <<he>> says. "I won't be away from the museum long." <<else>> "I didn't expect company," <<he>> says. <</if>> <br><br> <<He>> looks out over the lake. <<if $winterlakeknown is 1>> "Do you remember my mention of old structures beneath the water? <<else>> "There are old structures beneath the water. <</if>> Ancient. A wealth of heritage. I once wrote up plans for a field office here, so I could investigate. My petition fell on deaf ears." <br><br> <<He>> turns towards the trees, in the direction of town. "Forgive my ramblings. You stay safe out here." <br><br> <i>You could enquire about the field office at the town hall.</i> <br><br> <<link [[Next|Lake Shore]]>><<endevent>><<set $eventskip to 1>><</link>> <br> <<elseif $town_projects.diving is 3 and $exposed lte 0 and !$possessed>> <<set $town_projects.diving to 4>> <<npc Winter>><<person1>> You hear voices up ahead. Several people are hammering pegs around a dark green tent. Winter stands some distance away. <<He>> notices you, and springs over. <br><br> "Thank you," <<he>> says, clasping <<his>> hands over yours and shaking them. "The mayor called personally. Said a certain someone had provided the funds for my field office." <br><br> <<earnFeat "Field Work">> <<link [[Next|Lake Shore Diving]]>><</link>> <br> <<elseif Time.season isnot "winter" and !Time.isBloodMoon() and numberOfEarSlime() and !$daily.earSlimeStroll and random(0,100) gte 92 and (($exposed lte 1 and earSlimeMakingMundaneRequests()) or ($laketeenspresent isnot 1 and $exposed gte 2 and $earSlime.growth gte 20 - $earSlime.exhibitionism) or ($laketeenspresent is 1 and $exposed gte 2 and $earSlime.growth gte 50 - $earSlime.exhibitionism))>> <<set $daily.earSlimeStroll to true>> <span @class="$earSlime.startedThreats ? 'lewd' : 'lblue'">You feel the slime in your head command you to go for a stroll by the lake.</span> It promises rewards if you comply<<if $earSlime.startedThreats>> and threatens consequences if you do not<</if>>. <br><br> /* Link decreases stress by both the ear slime and taking a stroll */ <<link [[Obey|Lake Stroll]]>> <<pass 60>><<set $earSlimeLakeStroll to true>> <<if $exposed gte 2>> <<arousal 1000>><<rng>> <<if $laketeenspresent is 1>> <<set $phase to 2>> <<else>> <<set $phase to 3>> <</if>> <<else>> <<set $phase to 1>> <</if>> <<corruption 1>><<pain -4>><<stress -12>><<trauma -12>><<sub 2>> <</link>><<gcorruption>><<lpain>><<lltrauma>><<llstress>><<if $exposed gte 2>><<garousal>><</if>> <br> <<if $earSlime.startedThreats>> <<link [[Defy|Lake Stroll Slime Defy]]>><<corruption -1>><<pain 8>><<stress 6>><<trauma 6>><<def 1>><</link>><<lcorruption>><<ggpain>><<ggtrauma>><<ggstress>> <<else>> <<link [[Ignore|Lake Shore]]>><</link>> <</if>> <<else>> <<eventlakesafe>> <<lakereturnjourney>> <<if clothingInStorage("lakeshore").length lt 1>> There's a rocky alcove where you could store your clothes. <br> <</if>> <<lakeclothes>> <<if !Weather.isFrozen("lake") or (Weather.isFrozen("lake") and !Weather.isSnow)>> <<if Weather.isFrozen("lake")>> The ice shines dully with your reflection, <<else>> The lake shimmers with your reflection, <</if>> <<if Weather.bloodMoon>> drowning in blood. <<elseif Time.dayState is 'dawn'>> with an afterglow of amber from the dawn. <<elseif Time.dayState is 'day'>> leaving no impurities in the image. <<elseif Time.dayState is 'dusk'>> with an afterglow of amber from the dusk. <<else>> the moonlight illuminating the surface. <</if>> <br> <<set _pondicon to Weather.isFrozen("lake") ? "pond_frozen" : "pond">> <<watericon _pondicon>><<link [[Check your reflection|Lake Shore Mirror]]>><<preMirror>><</link>> <br><br> <</if>> <<if Time.hour gte 18 and $halloween is 1 and Time.monthDay is 31 and $halloween_lake is 1>> <<socialiseicon "party">><<link [[Join the party (0:10)|Lake Halloween Party]]>><<pass 10>><<stress -6>><<status 1>><</link>><<gcool>><<lstress>> <br> <<elseif $laketeenspresent is 1 and $exposed lte 0 and Time.hour isnot 20 and !Weather.isFrozen("lake")>> <<socialiseicon>><<link [[Hang out (0:30)|Lake Hang]]>><<stress -6>><<status 1>><</link>><<gcool>><<lstress>> <br> <</if>> <<if Weather.isFrozen("lake")>> <<if $nextPassageCheck is "Lake Shallows Ice">> <span class="nextLink"><<lakeicon>><<link [[Walk.|Lake Shallows Ice]]>><<pass 2>><</link>></span> <<else>> <<lakeicon>><<link [[Walk onto the ice (0:02)|Lake Shallows Ice]]>><<pass 2>><</link>> <</if>> <br> <<else>> <<if $nextPassageCheck is "Lake Shallows">> <span class="nextLink"><<swimicon>><<link [[Swim.|Lake Shallows]]>><<pass 2>><</link>></span> <<else>> <<swimicon>><<link [[Swim (0:02)|Lake Shallows]]>><<pass 2>><</link>> <<swim_check>> <<if _swim_check isnot 1 and !$settings.blindStatsEnabled>> | <span class="purple">You are not wearing any swimwear!</span> <</if>> <</if>> <br> <</if>> <<if $town_projects.diving gte 4>> <<if $exposed gte 2>> It's not the best idea to stroll into the archaeological field office in your state. <<else>> <<lakeicon "field office">><<link [[Archaeological field office (0:02)|Lake Office]]>><<pass 2>><</link>> <</if>> <br> <</if>> <<if !Weather.isFrozen("lake") and !Time.isBloodMoon()>> <<if $exposed gte 2>> <<if hasSexStat("exhibitionism", 5) and $laketeenspresent is 1>> <<walkicon>><<link [[Take a stroll (1:00)|Lake Stroll]]>><<pass 60>><<stress -6>><<arousal 1000>><<rng>><<set $phase to 2>><</link>><<exhibitionist5>><<garousal>><<lstress>> <br> <<elseif hasSexStat("exhibitionism", 4) and $laketeenspresent isnot 1>> <<walkicon>><<link [[Take a stroll (1:00)|Lake Stroll]]>><<pass 60>><<stress -6>><<arousal 1000>><<rng>><<set $phase to 3>><</link>><<exhibitionist4>><<garousal>><<lstress>> <br> <</if>> <<else>> <<walkicon>><<link [[Take a stroll (1:00)|Lake Stroll]]>><<pass 60>><<stress -6>><<set $phase to 1>><</link>><<lstress>> <br> <</if>> <</if>> <<if $debug is 1>> <<lakeicon "campfire">><<link [[North to firepit (0:10)|Lake Firepit]]>><<pass 10>><</link>> <br> <</if>> <<if $earSlime.forcedCommando isnot undefined and $worn.under_lower.name isnot "naked">> <<elseif $town_projects.road gte 4>> <<busicon>><<link [[North to bus stop|Lake Bus]]>><</link>> <br> <</if>> <<if $nextPassageCheck is "Lake Waterfall">> <span class="nextLink"><<watericon "waterfall">><<link [[South to waterfall (0:10)|Lake Waterfall]]>><<pass 10>><</link>></span> <<else>> <<watericon "waterfall">><<link [[South to waterfall (0:10)|Lake Waterfall]]>><<pass 10>><</link>> <</if>> <br><br> /* Added $exhibitionism due to situations where the player can be softlocked and unsure how best to deal with it */ <<if $earSlime.forcedCommando isnot undefined and !$worn.under_lower.type.includes("naked") and hasSexStat("exhibitionism", 3)>> <span class="red">The slime in your ear refuses to allow you to leave with <<underwearTypeText>> on.</span> <<else>> <<foresticon>><<link [[Forest (0:10)|Forest]]>><<pass 10>><</link>> <</if>> <br> <<set $eventskip to 0>> <</if>><<effects>> "It might not look like much," Winter says. "But it will keep the warmth in these old bones well enough. Let me show you." <br><br> Winter leads you into the tent. It's spacious. A long table runs down the length. Diving suits hang on a rack near an area separated by a flap. They're visibly wet, and were likely used recently. <br><br> "They're running cables for power," <<he>> says. <span class="green">"You'll be able to find me here on weekdays, after school."</span> <br><br> <<if Time.dayState is "night">> "I can't wait to get started, but it's late. Again, thank you. I can scarcely wait to start!" <<elseif Time.weekDay gte 1 and Time.weekDay lte 5>> <<if Time.schoolDay and Time.hour gte 9 and Time.hour lt 15>> "I can't wait to get started, but I can't neglect my students. Again, thank you. I can scarcely wait to start!" <<else>> "I can't wait to get started, but it's late. Again, thank you. I can scarcely wait to start!" <</if>> <<else>> <<He>> places a bag upon the table, and begins unpacking. "Again, thank you. I can't wait to start!" <</if>> <br><br> <<link [[Next|Lake Office]]>><<endevent>><</link>> <br><<set $outside to 0>><<location "lake_office">><<effects>> You are in the archaeological office at the lake. Green tent walls surround a spacious interior. <<if Time.schoolDay and Time.hour gte 16 and Time.hour lte 20 or !Time.schoolDay and Time.hour gte 6 and Time.hour lte 20>> <<npc Winter>><<person1>> Winter sits in front of a table, engrossed in study. <</if>> <br><br> <<if (Time.schoolDay and Time.hour gte 16 and Time.hour lte 20 or !Time.schoolDay and Time.hour gte 6 and Time.hour lte 20)>> <<if !$weekly.winterLakeTalk>> <<socialiseicon "ask">><<link [[Ask about Winter's research|Lake Office Ask]]>><</link>> <br> <</if>> <<if $winterLakeTalk is 1 and $bogProgress is 1>> <<socialiseicon>><<link [[Tell Winter about the bog|Lake Office Ask Bog]]>><<npcincr Winter love 2>><</link>><<glove>> <br> <</if>> <</if>> <<getouticon>><<link [[Leave|Lake Shore]]>><<endevent>><</link>> <br><<set $outside to 0>><<location "lake_office">><<effects>> <<set $winterLakeTalk = ($winterLakeTalk || 0)>> <<if $winterLakeTalk is 0>> <<if $speech_attitude is "meek">> "Was... was this worth it? Have you learned anything?" <<elseif $speech_attitude is "bratty">> "So, was this whole project worth the money? Did you learn anything?" <<else>> "Has the office been helpful? Did you learn anything?" <</if>> <<else>> <<if $speech_attitude is "meek">> "H-have you learned anything new?" <<elseif $speech_attitude is "bratty">> "Anything new?" <<else>> "What's new?" <</if>> <</if>> you ask. <br><br> <<switch $winterLakeTalk>> <<case 0>> <<set $winterLakeTalk to 1>><<set $weekly.winterLakeTalk to true>> <<His>> head tilts slightly. "Normally I wouldn't be so inclined to share new and potentially flawed information, but you're to thank for all of this. I can make an exception." <<npcincr Winter love 1>><<glove>> <br><br> "Manmade interference is obvious, even beyond the submerged ruins. Erosion patterns show that the channel leading north towards the town is at least partially artificial. The former natural waterway that leads east became a small brook due to the redirection." <br><br> <<He>> pauses for a moment. "We can't place a definitive date, and nothing about the northern waterway exists in the town's records. However, the stagnation caused by the reduced flow may have led to the formation of the bog to the east. <span class="green">One could possibly traverse the dry section of the riverbed to bypass the dense foliage between here and there</span>. I may have more information for you soon, depending on whether or not I can find someone to <span class="blue">scout the brook for me.</span>" <br><br> <<if !$brookIntro>> <<set $brookIntro to 1>> <span class="gold">You've discovered the offshoot brook near the waterfall.</span> <br><br> <</if>> <<link [[Next|Lake Office]]>><<endevent>><</link>> <br> <<case 1>> <<if $bogProgress gte 2>> <<set $winterLakeTalk to 2>><<set $weekly.winterLakeTalk to true>> <<He>> turns to you. "The lake is fed by a tributary river that forms in the mountain to the west. However, the lake wasn't always here. That much is made obvious by the old ruins. The questions are when, and why? Where did the river lead to before then?" <br><br> <<He>> pauses. "I'll be sending a group to take notes on the bog. <span class="green">We finally have some volunteers thanks to your scouting.</span> Come see me in a week, and I may have more for you." <<else>> <<set $weekly.winterLakeTalk to true>> <<He>> frowns. "Afraid not. <span class="blue">I need someone to investigate the brook's path.</span> Until then, we're stuck." <</if>> <br><br> <<link [[Next|Lake Office]]>><<endevent>><</link>> <br> <<case 2>> <<set $winterLakeTalk to 3>> <<set $bogTeam to { state: "active", robinKnown: false, robinPresent: false, timer: 0 }>> <<He>> nods. "My team has collected samples—" <br><br> As if on cue, someone enters the tent. It's Sirris. <<npc Sirris 2>><<person2>> <<He>> drops a large backpack onto the desk beside Winter, smiling. "Branch trimmings, a sketch of the heartwood rings, and a small jar of sap," <<he>> says proudly before smiling at you. <br><br> <<npc Niki 3>><<npc Wren 4>> <<run getRobinLocation()>> <<if _robin_location isnot $robinmissing>> <<npc Robin 5>><<set $bogTeam.robinKnown to true>><<set $bogTeam.robinPresent to true>> Two more enter. You first notice Robin shuffling awkwardly and looking downtrodden. <<person5>><<He>> lightens up upon seeing you. "Hey. Winter said <<person1>><<he>> needed help, so I volunteered!" Behind <<person5>><<him>> is a <<person4>><<personsimple>> with <<if $pronoun is "m">>short<<else>>shoulder-length<</if>> hair. There's a pistol holstered on <<his>> belt. <<if $wrenSeen.includesAny("cards", "letter", "prison", "catsuit")>> <span class="gold">It's Wren.</span> <br><br> "Well, if it isn't my favourite troublemaker," <<he>> says with a grin. <<He>> places a hand on Robin's head, ruffling <<person5>><<his>> hair. <<if $robinromance is 1>> "Never guessed this would be your <<girlfriend>>, Ro." Robin pushes Wren's hand away. The emotion on <<his>> face is hard to read, but you think you catch a mixture of disgust and 'help me'. <<else>> "Never guessed this would be the friend you were telling me all about, Ro." Robin pushes Wren's hand away and takes a step out of reach. The emotion on <<his>> face is hard to read. <</if>> <<elseif $wrenSeen.length>> <span class="gold">It's Wren.</span> <br><br> "Well, fancy seeing you here," <<he>> says with a grin. <<He>> places a hand on Robin's head, ruffling <<person5>><<his>> hair. <<if $robinromance is 1>> "Never guessed this would be your <<girlfriend>>, Ro." Robin pushes Wren's hand away. The emotion on <<his>> face is hard to read, but you think you catch a mixture of disgust and 'help me'. <<else>> "Never guessed this would be the friend you were telling me all about, Ro." Robin pushes Wren's hand away and takes a step out of reach. The emotion on <<his>> face is hard to read. <</if>> <<else>> <br><br> <<if $robinromance is 1>> "Oh, is this your <<girlfriend>>, Ro? <span class="gold">The name's Wren,</span>" <<he>> says, ruffling Robin's hair as <<he>> looks at you. Robin pushes Wren's hand away. The emotion on <<person5>><<his>> face is hard to read, but you think you catch a mixture of disgust and 'help me'. <<else>> "Oh, is this the friend you were telling me about, Ro? <span class="gold">The name's Wren,</span>" <<he>> says, ruffling Robin's hair as <<he>> looks at you. Robin pushes Wren's hand away and takes a step out of reach. The emotion on <<person5>><<his>> face is hard to read. <</if>> <</if>> Wren frowns, but is cut off by <<else>> Two more enter the tent. You first notice a <<person4>><<personsimple>> with <<if $pronoun is "m">>short<<else>>shoulder-length<</if>> hair. There's a pistol holstered on <<his>> belt. <<if $wrenSeen.includesAny("cards", "letter", "prison", "catsuit")>> <span class="gold">It's Wren.</span> <br><br> "Well, if it isn't my favourite troublemaker," <<he>> says with a grin. <<elseif $wrenSeen.length>> <span class="gold">It's Wren.</span> <br><br> "Well, fancy seeing you here," <<he>> says with a grin. <<else>> "Damn, how much more help are you planning on pulling in, Winter?" <<He>> regards you with a grin. <span class="gold">"The name's Wren."</span> <</if>> <<Hes>> cut off by <</if>> a young <<person3>><<personsimple>> with a stick in <<his>> mouth pushing in, looking down at a camera. <br><br> <<if !$nikiSeen.length>> "That's Niki," Sirris says. "A photographer who works in town. When Winter came calling, I thought <<he>> would be interested." Niki acknowledges you with a nod. <<elseif $nikiSeen.includes("adult_shop_opening")>> It's Niki, the photographer. "You remember Niki, right?" Sirris asks. "From the opening of the shop." Niki acknowledges you with a nod. <<elseif $nikiSeen.includes("farm")>> <span class="red">It's Niki,</span> the photographer from Remy's farm. <<He>> looks alarmed to see you. "That's Niki," Sirris says. "A photographer who works in town. When Winter came calling, I thought <<he>> would be interested." <<gtrauma>><<trauma 6>> <<else>> It's Niki, the photographer. <<He>> acknowledges you with a nod. "That's Niki," Sirris says. "A photographer who works in town. When Winter came calling, I thought <<he>> would be interested." <</if>> <br><br> <<set $wrenSeen.pushUnique("winter")>> <<set $wrenSeenLast to "winter">> <<set $nikiSeen.pushUnique("winter")>> <<link [[Next|Lake Office Volunteers]]>><</link>> <br> <<case 3>> "Nothing new, yet. It may be some time before we make any meaningful progress." <br><br> <<link [[Next|Lake Office]]>><<endevent>><</link>> <br> <<default>> "Nothing yet," <<he>> says with a hint of regret. "We've hit something of a standstill." <br><br> <<link [[Next|Lake Office]]>><<endevent>><</link>> <br> <</switch>><<set $outside to 0>><<location "lake_office">><<effects>> <<set $bogProgress to 2>><<set $weekly.winterLakeTalk to false>> <<if $speech_attitude is "meek">> "You were right about that brook, it leads into a scary bog," you say. "It looks dangerous." <<elseif $speech_attitude is "bratty">> "You're right on the money about the brook, it leads into a bog," you say. "I went and looked for you. Aren't I sweet?" <<else>> "You were right about the brook. It leads into a bog," you say. <</if>> You also tell <<him>> how it can be safely traversed, and about the one-way drop into the bog. <br><br> You see a smile cross <<his>> face, but only for a moment. "You didn't have to do that. It could have been dangerous. But this is valuable information. Thank you." <<glove>> <br><br> <<He>> pauses. "I'm sure I'll be able to find volunteers now that they won't have to go in completely blind, or go all the way around through the moor." <br><br> <<link [[Next|Lake Office]]>><<endevent>><</link>> <br><<set $outside to 0>><<location "lake_office">><<effects>> <<person1>>Winter clears <<his>> throat. "Thank you, you <<if $bogTeam.robinKnown>>four<<else>>three<</if>>. You look like you've worked hard today. I appreciate excellence, but remember not to overdo it." <<if !$bogTeam.robinKnown>> Winter turns to you. "I had hoped to ask your classmate Robin for aid as well, but I haven't seen <<nnpc_him "Robin">>." <</if>> <br><br> The group leaves the tent, saying their goodbyes. "I may ask you to join them on one of their trips in the future. However, to answer your initial question..." <<He>> begins to dig through Sirris' backpack. "This lake should not exist. More water drains than is fed into it. The only explanation currently feasible is that the lake is connected to an underground aquifer or aqueduct that feeds it. But the divers have found no such passage." <br><br> <<He>> examines a jar of tree sap. "Patterns of old-growth trees show that the area around the lake was logged heavily. Sirris' current theory is that the lack of sturdy vegetation, combined with an unseasonably warm spring and rapid snowmelt, led to the river bursting its banks and forming a large sinkhole some centuries ago." <br><br> <<He>> continues. "The persistence of such dense vegetation around the brook still eludes me. Perhaps it's an invasive species that requires less water. This is all we've learned as of now." <br><br> <<link [[Next|Lake Office]]>><<endevent>><</link>> <br><<effects>> <<link [[Step away|Lake Shore]]>><<handheldon>><<unset $mirrorMenu>><<unset $bodywritingSet>><</link>> <br> <<mirror "reflection">> <br><br><<set $outside to 1>><<set $location to "lake">><<set $bus to "lakebus">><<effects>><<lakeeffects>> You are at the bus stop beside the lake. The road from town terminates here, ending in a paved circle. The lake proper is visible over a ridge. <br><br> <<if $exposed lte 0>> <<busicon>><<link [[Wait for a bus (0:02)|Bus]]>><<pass 2>><</link>><br> <</if>> <<lakeicon>><<link [[South to shore|Lake Shore]]>><</link>> <br><<set $outside to 1>><<set $location to "lake">><<effects>><<lakeeffects>> <<set $forest to 40>><<set $bus to "lakewaterfall">> You are at the waterfall. <<if Weather.isFrozen("lake")>> It feeds the lake through a gap in the ice. <<elseif $laketeenspresent is 1>> <<set _in to Time.season is "winter" ? "near" : "in">> Some of the students are playing _in the falling water. Others sit _in the pond above. <<elseif Time.dayState is "night">> It's a curtain of silver in the moonlight. <<else>> Water is flowing down from the pond up on the rocks. A refreshing mist rolls out. <</if>> <<if Weather.precipitation is "snow">> Snow <<= Weather.isFrozen("lake") ? "settles on its surface" : "drifts into the frigid water">>. <<elseif Weather.isFrozen("lake")>> The ice is <<= Weather.precipitation is "rain" ? "pelted with frigid rain" : "serene">>. <<else>> The water is <<= Weather.precipitation is "rain" ? "alive with motion as rain breaks its surface" : "calm">>. <</if>> <br><br> <<if $exposed gte 1 and $laketeenspresent is 1>> <<if hasSexStat("exhibitionism", 5)>> You keep low and stay among the trees. You really wish to show your <<lewdness>>, but you restrain yourself from doing so. <<else>> You keep low and stay among the trees to keep your <<lewdness>> from being seen. <</if>> <br><br> <</if>> <<if $stress gte $stressmax and !$possessed>> <<passoutlake>> <<elseif $foresthunt gte 10>> <<foresthunt>> <<elseif dangerEvent() and $eventskip is 0 and $laketeenspresent isnot 1>> <<eventlake>> <<elseif !$brookIntro and $historytrait gte 4 and $sciencetrait gte 2 and $tending gte 200 and !$possessed>> <<set $brookIntro to 1>> You let yourself listen to the trickle of water for a moment. Curiosity gets the better of you. You look at the waterfall, and follow the stream that runs off. It slowly but gradually gets weaker as it disappears into a nearly impassible wall of foliage. <span class="green">Nearly.</span> <br><br> You remember your science and history lessons. This is an offshoot distributary of the lake. It flows east towards the moor, instead of north towards the ocean. All rivers end somewhere, and this one must flow sharply downwards into the bog between the forest and moor. <br><br> <span class="gold">With some care, you could traverse the brook's channel deeper into the forest, and eventually into the bog and moor.</span> <span class="red">But it would be a one-way trip.</span> <br><br> <<link [[Next|Lake Waterfall]]>><<set $eventskip to 1>><</link>> <br> <<else>> <<eventlakesafe>> <<lakereturnjourney>> <<if $pregnancyStats.parasiteDoctorEvents gte 2>> <<containersLink>> <</if>> <<if $mason_count gte 2 and !Weather.isFrozen("lake")>> <<lakeicon "pond">><<link [[Mason's pond (0:05)|Mason Pond]]>><<pass 5>><</link>> <br> <</if>> <<if $nextPassageCheck is "Lake Shore">> <<lakeicon>><span class="nextLink"><<link [[The lake.|Lake Shore]]>><<pass 10>><</link>></span> <<else>> <<lakeicon>><<link [[North to shore (0:10)|Lake Shore]]>><<pass 10>><</link>> <</if>> <br> <<lakeicon "fishing">><<link [[South to fishing rock (0:10)|Lake Fishing Rock]]>><<pass 10>><</link>> <br> <<if $brookIntro gte 1>> <<if $worn.feet.type.includes("heels")>> <span class="red">Traversing the brook in heels would be impossible.</span> <<else>> <<foresticon "river">><<link [[East to brook (0:10)|Forest Brook]]>><<pass 10>><<tiredness 4>><</link>><<gtiredness>> <</if>> <br> <</if>> <br> <<if $earSlime.forcedCommando isnot undefined and !$worn.under_lower.type.includes("naked") and hasSexStat("exhibitionism", 3)>> <span class="red">The slime in your ear refuses to allow you to leave with <<underwearTypeText>> on.</span> <<else>> <<foresticon>><<link [[Forest (0:10)|Forest]]>><<pass 10>><</link>> <</if>> <br> <<set $eventskip to 0>> <</if>><<set $outside to 1>><<set $location to "lake">><<effects>><<lakeeffects>> <<set $forest to 50>><<set $bus to "lakefishingrock">> You are on the fishing rock. <<if $laketeenspresent is 1>> You see people on the other side of the <<= Weather.isFrozen("lake") ? "frozen lake" : "lake. Fish splash up to eat insects. It's peaceful, though the nearby trees are foreboding">>. <<elseif Time.dayState is "night">> Dark water ripples unseen beneath the <<= Weather.isFrozen("lake") ? "ice" : "lake surface">>. <<elseif Time.dayState is "dusk" or Time.dayState is "dawn">> <<= Weather.isFrozen("lake") ? "The lake ice sparkles in the dim light" : "Fish splash up to eat insects">>. It's peaceful, though the nearby trees are foreboding. <<else>> From here you have a clear view of the entire lake. You see fish swimming <<= Weather.isFrozen("lake") ? "beneath the ice" : "in the water">>. <</if>> <<if Weather.isFrozen("lake")>> <<= Weather.precipitation is "snow" ? "Snow settles on the ice" : "The ice is serene">>. <<else>> The water is <<= Weather.precipitation is "rain" ? "alive with motion as rain breaks its surface" : "calm">>. <</if>> <br><br> <<if $exposed gte 1 and $laketeenspresent is 1>> <<if hasSexStat("exhibitionism", 5)>> You keep low and stay among the trees. You really wish to show your <<lewdness>>, but you restrain yourself from doing so. <<else>> You keep low and stay among the trees to keep your <<lewdness>> from being seen. <</if>> <br><br> <</if>> <<if $stress gte $stressmax and !$possessed>> <<passoutlake>> <<elseif $foresthunt gte 10>> <<foresthunt>> <<elseif dangerEvent() and $eventskip is 0 and $laketeenspresent isnot 1>> <<eventlake>> <<else>> <<eventlakesafe>> <<lakereturnjourney>> <<lakeicon "meditate">><<link [[Meditate|Lake Meditate]]>><<set $phase to 1>><</link>> <br> <<if $nextPassageCheck is "Lake Waterfall">> <<lakeicon>><span class="nextLink"><<link [[The lake.|Lake Waterfall]]>><<pass 10>><</link>></span> <<else>> <<watericon "waterfall">><<link [[North to waterfall (0:10)|Lake Waterfall]]>><<pass 10>><</link>> <</if>> <br> <<lakeicon "campfire">><<link [[South to campsite (0:20)|Lake Campsite]]>><<pass 20>><</link>> <br><br> <<if $earSlime.forcedCommando isnot undefined and !$worn.under_lower.type.includes("naked") and hasSexStat("exhibitionism", 3)>> <span class="red">The slime in your ear refuses to allow you to leave with <<underwearTypeText>> on.</span> <<else>> <<foresticon>><<link [[Forest (0:10)|Forest]]>><<pass 10>><</link>> <</if>> <br> <<set $eventskip to 0>> <</if>><<set $outside to 1>><<set $location to "lake">><<effects>><<lakeeffects>> <<set $forest to 30>><<set $bus to "lakefirepit">> You are at the Firepit. <<if $laketeenspresent is 1>> Several students sit on a circle of stone benches. <<= Weather.isFrozen("lake") ? "Others try to skate on the nearby ice" : "You can see several people splashing in the water down on the shore">>. <<elseif Time.dayState is "night">> <<if $laketeensfire is 1>> People are sitting around the fire as it burns, talking and drinking. The reflection of the fire on the lake's <<= Weather.isFrozen("lake") ? "ice" : "surface">> is almost mesmerising. <<else>> Dark water ripples unseen beneath the lake's <<= Weather.isFrozen("lake") ? "ice" : "surface">>. <</if>> <<else>> There are stone benches circling the pit. <</if>> <<if Weather.isFrozen("lake")>> <<= Weather.precipitation is "snow" ? "Snow settles on the ice below" : "The ice is serene">>. <<else>> The water is <<= Weather.precipitation is "rain" ? "alive with motion as rain breaks its surface" : "calm">>. <</if>> <br><br> <<if $exposed gte 1 and ($laketeenspresent is 1 or $laketeensfire is 1)>> <<if hasSexStat("exhibitionism", 5)>> You keep low and stay among the trees. You really wish to show your <<lewdness>>, but you restrain yourself from doing so. <<else>> You keep low and stay among the trees to keep your <<lewdness>> from being seen. <</if>> <br><br> <</if>> <<if $stress gte $stressmax and !$possessed>> <<passoutlake>> <<elseif $foresthunt gte 10>> <<foresthunt>> <<elseif dangerEvent() and $eventskip is 0 and $laketeenspresent isnot 1>> <<eventlake>> <<else>> <<if $arousal gte $arousalmax>> <<orgasmLocation "lake" `$laketeenspresent isnot 1`>> <</if>> <<eventlakesafe>> <<lakereturnjourney>> <<link [[South to shore (0:10)|Lake Shore]]>><<pass 10>><</link>> <br><br> <<if $earSlime.forcedCommando isnot undefined and !$worn.under_lower.type.includes("naked") and hasSexStat("exhibitionism", 3)>> <span class="red">The slime in your ear refuses to allow you to leave with <<underwearTypeText>> on.</span> <<else>> <<foresticon>><<link [[Forest (0:10)|Forest]]>><<pass 10>><</link>> <</if>> <br> <<set $eventskip to 0>> <</if>><<set $outside to 1>><<set $location to "lake">><<effects>><<lakeeffects>> <<set $forest to 50>><<set $bus to "lakecampsite">> <<if $phase is "extinguish">> <<unset $phase>> <<cleareventpool>> <<addinlineevent "campsite_extinguish" 2>> You extinguish the embers. <</addinlineevent>> <<if $settings.watersportsEnabled and hasSexStat("deviancy", 2)>> <<addinlineevent "campsite_extinguish_urination" 0.5>> <<if setup.clothes.lower[clothesIndex('lower', $worn.lower)].skirt is 1>> <<if $player.penisExist>> You lift your $worn.lower.name over your <<penis>>. <<else>> You lift your $worn.lower.name. <</if>> <<else>> You lower your $worn.lower.name. <</if>> After a brief pause, you start to <<print either("piss", "urinate", "pee")>> over the fireplace. <<if $arousal gte $arousalmax>> <br><br> Your depravity fills you with a mixture of disgust and arousal, as you finish urinating you are hit with another urge. <<orgasmstat>><<orgasmcount 1>><<set $orgasmdown to 3>> <<if $player.penisExist>> <span class="pink">Your body shudders as a surge of <<semen>> erupts from your <<penis>>.</span> <<semenOrgasm>> <</if>> <<if $player.vaginaExist>> <span class="pink">Fluids stream from your <<pussy>>, with each jolt spraying over the fire.</span> <<vaginaFluidOrgasm>> <</if>> <<arousal -10000>> <<wetnessCalculate>> <br><br> The embers have been extinguished from the combination of <<print either("piss", "urine")>> and other fluids. <<else>> By the time you're finished, all of the embers have been extinguished. <</if>> <</addinlineevent>> <</if>> <<runeventpool>> <br><br> <</if>> You are at the campsite. <<if Time.dayState is "night">> <<if Weather.precipitation is "none" and Time.hour gte 18 and $daily.lakeCouple isnot 1>> A couple cuddles beside a small fire. There is a tent set up nearby. <<elseif Weather.precipitation is "rain" or Weather.precipitation is "snow">> An unlit fireplace sits in the centre of the clearing. The <<= Weather.precipitation>> may have driven off campers. <<else>> Embers burn beside a tent. <</if>> <<elseif Time.dayState is "dawn">> It looks like it was used recently. <<else>> An unlit fireplace sits in the centre of the clearing. <</if>> <br><br> <<if Weather.precipitation is "none" and Time.hour gte 18 and $exposed gte 1 and $daily.lakeCouple isnot 1>> <<if hasSexStat("exhibitionism", 5)>> You keep low and stay among the trees. You really wish to show your <<lewdness>>, but you restrain yourself from doing so. <<else>> You keep low and stay among the trees to keep your <<lewdness>> from being seen. <</if>> <br><br> <</if>> <<if $stress gte $stressmax and !$possessed>> <<passoutlake>> <<elseif $foresthunt gte 10>> <<foresthunt>> <<elseif dangerEvent() and $eventskip is 0 and $laketeenspresent isnot 1>> <<eventlake>> <<else>> <<if $arousal gte $arousalmax>> <<orgasmLocation "campsite">> <</if>> <<eventlakesafe>> <<lakereturnjourney>> <<if Weather.precipitation is "none" and Time.hour gte 18 and $exposed lte 0 and $daily.lakeCouple isnot 1>> <<socialiseicon "ask">><<link [[Approach the couple|Lake Couple]]>><</link>> <br> <<elseif Weather.precipitation is "none">> <<if $housekeeping >= 400>> <<lakeicon "campfire">><<link [[Ignite the fireplace (0:02)|Lake Campsite Warmth Ignite]]>><<set $phase to "quickly">><</link>> <<else>> <<lakeicon "campfire">><<link [[Ignite the fireplace (0:10)|Lake Campsite Warmth Ignite]]>><<set $phase to "normally">><</link>> <</if>> <br> <</if>> <<if $nextPassageCheck is "Lake Fishing Rock">> <<lakeicon>><span class="nextLink"><<link [[The lake.|Lake Fishing Rock]]>><</link>></span> <<else>> <<lakeicon "fishing">><<link [[North to fishing rock (0:10)|Lake Fishing Rock]]>><<pass 10>><</link>> <</if>> <br><br> <<if $earSlime.forcedCommando isnot undefined and !$worn.under_lower.type.includes("naked") and hasSexStat("exhibitionism", 3)>> <span class="red">The slime in your ear refuses to allow you to leave with <<underwearTypeText>> on.</span> <<else>> <<foresticon>><<link [[Forest (0:10)|Forest]]>><<pass 10>><</link>> <</if>> <br> <<set $eventskip to 0>> <</if>><<effects>><<lakeeffects>> You collect pieces of dry tinder, and other kindling. You manage to build up a sizeable fireplace of wood. <br><br> <<if $phase is "quickly">> /* May want to remove span-green as this is usually for checks. */ <span class="green">You succeed in creating embers which begin to engulf your firewood.</span> <<else>> It takes several minutes of trying, but you eventually manage to ignite your firewood. <</if>> <<unset $phase>> <br><br> <<link [[Rest (0:15)|Lake Campsite Warmth]]>><<pass 15>><</link>><<gwarmth>> <br> <<link [[Leave|Lake Campsite]]>><<set $phase to "extinguish">><</link>><<effects>><<lakeeffects>> <<set _outsideTemp to Weather.Temperature.getCelsius()>> <<set _tempIncrease to sigmoid(3, 37, 0.25, -4, _outsideTemp)>> <<set _tempOverride to _outsideTemp + _tempIncrease>> /* Increases ambient temp by ~3c to ~40c based on current ambient temp */ /* This allows people to make use of it as a source for warmth */ /* without causing massive exhaustion during warm days */ /* Update the parameters as needed to improve user experience */ <<set Weather.Temperature.override.outside = _tempOverride>> <<dry>> You warm yourself against the heat emanating from the fireplace. <br><br> <<cleareventpool>> <<addinlineevent "campfire_rustling_wind">> The trees around the campfire rustle from the wind. <<if Time.dayState is "night">> <<gstress>><<stress 2>> <</if>> <</addinlineevent>> <<if Time.dayState is "day" and Time.season isnot "winter">> <<addinlineevent "campfire_butterfly" 0.5>> You see an occasional butterfly. <<lstress>><<ltrauma>><<stress -2>><<trauma -1>> <</addinlineevent>> <</if>> <<if Weather.bodyTemperature < setup.WeatherTemperature.minTemperature + 1>> <<addinlineevent "campfire_hypothermia" 5>> You shiver in front of the open fire. You focus on breathing to ease the piercing coldness. <</addinlineevent>> <</if>> <<runeventpool>> <br><br> <<link [[Continue resting (0:15)|Lake Campsite Warmth]]>><<pass 15>><</link>><<gwarmth>> <br> <<link [[Leave|Lake Campsite]]>><<set $phase to "extinguish">><</link>><<set $outside to 1>><<set $location to "lake">><<set $bus to "lakeshallows">><<water>><<effects>><<lakeeffects>> <<if $laketeenspresent is 1>> You are swimming in the lake near the shore. The beach is alive with activity. <<if Time.season isnot "winter">>People play in the sand and water.<</if>> <<else>> <<if Weather.precipitation is "rain">> You are swimming in the lake near the shore. The rain drowns out the sounds of the forest. <<else>> You are swimming in the lake near the shore. There is no one at the beach today. The sound of the forest fills the air. <</if>> <</if>> <<if !Time.schoolDay and Weather.precipitation is "rain" and Time.dayState is "day">> Someone is swimming further out, past the dock. <</if>> <<if $sciencetrait gte 2 and !$plants_known.includes("lotus")>> Lotus flowers float by you. <</if>> <br><br> <<if $laketeenspresent is 1 and $exposed gte 1>> <<if hasSexStat("exhibitionism", 5)>> You keep low beneath the water. You really wish to show your <<lewdness>>, but you restrain yourself from doing so and probably should find something to cover yourself with. <<else>> You keep low beneath the water to keep your <<lewdness>> from being seen. You'll need to find something to cover with. <</if>> <br><br> <</if>> <<if $lakeswim is 1>> <<set $lakeswim to 0>> You practise swimming in the lake. <<if Weather.dayState is "night">> <<if Weather.precipitation is "rain">> The dark water dances with the rain. It's exhilarating, if scary. <<else>> The black water is gentle. <</if>> <<elseif Weather.dayState is "dusk">> <<if Weather.precipitation is "rain">> Rain agitates the cool water. <<else>> The sun falls over the trees, casting its double in the water. <</if>> <<elseif Weather.dayState is "dawn">> <<if Weather.precipitation is "rain">> Rain agitates the cool water. <<else>> The morning sun rises over the trees, casting its double in the water. <</if>> <<else>> <<if Weather.precipitation is "rain">> Rain agitates the warm water. <<else>> The water is warm and gentle. <</if>> <</if>> <<physique 3>><<swimmingskilluse>><<pass 30>> <br><br> <</if>> <<if $phase is 1>> <<set $phase to 0>> You improvise a garment made from reeds and lilies and tie it around your chest. It's fragile and revealing, and you don't think you could take it off without breaking it, but it's better than nothing. <<plantupper "seaweed">> <br><br> <<if $rng gte 91 and $parasite.nipples.name is undefined and $settings.parasitesEnabled>> Your satisfaction is interrupted by a pinching sensation on your <<nipples>>. Shocked, you pull down your top to find the culprit. Two small and soft invertebrates have latched to your chest. They massage and suck your nipples as if trying to nurse. They don't hurt at all, but the sensations are arousing you. You tug them in a bid to be free of their molestation, but they cling too tightly. What's more, touching them with any amount of force makes them suck more intensely. You'll need help to remove them. <<parasite nipples urchin>><<garousal>><<arousal 600 "breasts">> <br><br> <</if>> <<exposure>> <</if>> <<if $phase is 2>> <<set $phase to 0>> You improvise a garment made from reeds and lilies and tie it around your waist. It's fragile and revealing, and you don't think you could take it off without breaking it, but it's better than nothing. <<plantlower "seaweed">> <br><br> <<if $parasite.penis.name is "parasite" or $parasite.clit.name is "parasite">> /* Prevents the 2 types of parasites from interacting */ <<elseif $rng gte 91 and $parasite.penis.name is undefined and $player.penisExist and $settings.parasitesEnabled and !playerChastity("penis")>> Your satisfaction is interrupted by a pinching sensation on your <<penis>>. Shocked, you lift your skirt to find the culprit. A small and soft invertebrate has latched on. It massages and sucks as if trying to nurse. It doesn't hurt at all, but the sensations are making you feel shamefully aroused. You tug it in a bid to be free of its molestation, but it clings too tightly. What's more, touching it with any amount of force makes it suck more intensely. You'll need help to remove it. <<parasite penis urchin>><<garousal>><<arousal 600 "genitals">> <br><br> <<elseif $rng gte 91 and $parasite.clit.name is undefined and $player.vaginaExist and $settings.parasitesEnabled and !playerChastity("hidden") and !$player.penisExist>> Your satisfaction is interrupted by a pinching sensation on your <<pussy>>. Shocked, you lift your skirt to find the culprit. A small and soft invertebrate has latched onto your clit. It massages and sucks as if trying to nurse. It doesn't hurt at all, but the sensations are making you feel shamefully aroused. You tug it in a bid to be free of its molestation, but it clings too tightly. What's more, touching it with any amount of force makes it suck more intensely. You'll need help to remove it. <<parasite clit urchin>><<garousal>><<arousal 600 "genitals">> <br><br> <</if>> <<exposure>> <</if>> <<if $stress gte $stressmax and !$possessed>> <<passoutlake>> <<elseif $foresthunt gte 10>> <<foresthunt>> <<elseif dangerEvent(0.5) and $eventskip is 0>> <<eventlakewater>> <<else>> <<swimicon "back">><<link [[Practise swimming (0:30)|Lake Shallows]]>><<stress -6>><<tiredness 6>><<set $lakeswim to 1>><<slimeEventEnd "swimming">><</link>><<gswimming>><<lstress>><<gtiredness>> <br> <<if $worn.upper.exposed gte 2 and $worn.under_upper.exposed gte 1 or $worn.upper.exposed gte 2 and $underupperwetstage gte 3 or $upperwetstage gte 3 and $worn.under_upper.exposed gte 1 or $upperwetstage gte 3 and $underupperwetstage gte 3>> <<beachicon "seaweed">><<link [[Make a top out of plants (0:20)|Lake Shallows]]>><<pass 20>><<set $phase to 1>><</link>> <br> <</if>> <<if $worn.lower.exposed gte 2 and $worn.under_lower.exposed gte 1 or $worn.lower.exposed gte 2 and $underlowerwetstage gte 3 or $lowerwetstage gte 3 and $worn.under_lower.exposed gte 1 or $lowerwetstage gte 3 and $underlowerwetstage gte 3>> <<beachicon "seaweed">><<link [[Make a skirt out of plants (0:20)|Lake Shallows]]>><<pass 20>><<set $phase to 2>><</link>> <br> <</if>> <<if $sciencetrait gte 2 and !$plants_known.includes("lotus")>> <<icon "tending/lotus.png">> <<link [[Search for seeds (0:30)|Lake Lotus]]>><<set $plants_known.push("lotus")>><<pass 30>><<tending 6>><</link>><<gtending>> <br> <</if>> <<if $exposed gte 1 and $laketeenspresent is 1>> <br> <<elseif $debug is 1>> <<lakeicon "dock">><<link [[Swim to dock (0:10)|Lake Dock]]>><<pass 10>><</link>> <br> <</if>> <<if $nextPassageCheck is "Lake Depths">> <<swimicon>><span class="nextLink"><<link [[Further.|Lake Depths]]>><<pass 12>><</link>></span> <<else>> <<swimicon>><<link [[Swim further out (0:12)|Lake Depths]]>><<pass 12>><</link>> <</if>> <br> <<if $exposed gte 1 and $laketeenspresent is 1>> <<if $exposed gte 2 and hasSexStat("exhibitionism", 5)>> <<lakeicon>><<link [[Leave the water exposed (0:02)|Lake Shore Exposed]]>><<set $phase to 0>><<pass 2>><</link>><<exhibitionist5>> <<elseif $exposed gte 1 and hasSexStat("exhibitionism", 4)>> <<lakeicon>><<link [[Leave the water exposed (0:02)|Lake Shore Exposed]]>><<set $phase to 1>><<pass 2>><</link>><<exhibitionist4>> <</if>> <<else>> <<lakeicon>><<link [[Shore (0:02)|Lake Shore]]>><<pass 2>><</link>> <br> <</if>> <<set $eventskip to 0>> <</if>><<effects>> <<fameschoolex 5>> <<generatey1>><<generatey2>> <<if ($phase is 0 and ($uncomfortable.nude is false) or ($phase is 1 and $uncomfortable.underwear is false))>> In a moment of daring, you casually emerge from the lake despite your <<lewdness>>. <<flaunting>> you stroll right past a group of students. It takes a moment for anyone to notice, but eventually a <<person1>><<person>> gasps and points at you, drawing the attention of several more. <br><br> A few avert their eyes in embarrassment, but many more have their eyes glued to you as you stride over to the rocky alcove. A <<person2>><<person>> especially takes an interest in you, but seems to hesitate before doing anything. You decide to increase your pace. <br><br> You sit by the rocky alcove, just out of sight. You wonder how many are still looking in your direction. <<else>> In a moment of daring, you emerge from the lake despite your <<lewdness>>. You run right past a group of students, attempting to cover yourself however you can. A <<person1>><<person>> points and laughs as you run, drawing the attention of several more. <<status -10>><<llcool>> <br><br> A few avert their eyes in embarrassment, but many more have their eyes glued to you as you stride over to the rocky alcove. A <<person2>><<person>> especially takes an interest in you, and for a moment, you think <<hes>> going to chase you. You increase your pace. <br><br> You sit by the rocky alcove, just out of sight. You wonder how many are still looking in your direction. <</if>> <<if $phase is 0>> <<exhibitionism5>> <<else>> <<exhibitionism4>> <</if>> <<link [[Next|Lake Shore]]>><<endevent>><<set $eventskip to 1>><</link>> <br><<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. Students practise ice skating nearby. <<else>> <<if Weather.precipitation 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 $sciencetrait gte 2 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>> <<if $stress gte $stressmax and !$possessed>> <<passoutlake>> <<elseif $foresthunt gte 10>> <<foresthunt>> <<elseif dangerEvent(0.5) and $eventskip is 0>> <<eventlakeice>> <<else>> <<eventlakesafe>> <<lakereturnjourney>> <<lakeicon "skate">><<link [[Ice skate (0:30)|Lake Skate]]>><<pass 30>><<tiredness 5>><<danceskill 5>><</link>><<gtiredness>><<gdanceskill>> <br> <<if $sciencetrait gte 2 and !$plants_known.includes("lotus")>> <<icon "tending/lotus.png">> <<link [[Search for seeds (0:30)|Lake Lotus Ice]]>><<set $plants_known.push("lotus")>><<pass 30>><<tending 6>><</link>><<gtending>> <br> <</if>> <<if $nextPassageCheck is "Lake Depths Ice">> <<ind>><span class="nextLink"><<link [[Further (0:12)|Lake Depths Ice]]>><<pass 12>><</link>></span> <<else>> <<getinicon>><<link [[Walk further out (0:12)|Lake Depths Ice]]>><<pass 12>><</link>> <</if>> <br> <<lakeicon>><<link [[Shore (0:02)|Lake Shore]]>><<pass 2>><</link>> <br> <<set $eventskip to 0>> <</if>><<effects>><<wearProp "lotus">> You swim among the lotus flowers, gathering seeds. <span class="gold">You can now grow <<icon "tending/lotus.png">> lotus.</span> <i>Lotus are valuable, but need a special environment to grow.</i> <br><br> <<link [[Next|Lake Shallows]]>><<handheldon>><</link>> <br><<effects>><<wearProp "lotus">> You free the lotus flowers from the ice, gathering the seeds. <span class="gold">You can now grow <<icon "tending/lotus.png">> lotus.</span> <i>Lotus are valuable, but need a special environment to grow.</i> <br><br> <<link [[Next|Lake Shallows Ice]]>><<handheldon>><</link>> <br><<set $outside to 1>><<set $location to "lake">><<set $bus to "lakedepths">><<water>><<effects>><<lakeeffects>> <<if $laketeenspresent is 1>> You are swimming in the middle of the lake near the dock. You see several students hanging out on and around it. <<else>> <<if Weather.precipitation is "rain">> You are swimming in the lake near the shore. The rain is so thick you can't see the shore. An endless deluge surrounds you in all directions. <<else>> You are swimming in the middle of the lake near the dock. <</if>> <</if>> <<if !Time.schoolDay and Weather.precipitation is "rain" and Time.dayState is "day">> <span class="lblue">Mason swims nearby.</span> <</if>> <br><br> <<if $laketeenspresent is 1 and $exposed gte 1>> <<if hasSexStat("exhibitionism", 5)>> You keep low beneath the water. You really wish to show your <<lewdness>>, but you restrain yourself from doing so and probably should find something to cover yourself with. <<else>> You keep low beneath the water to keep your <<lewdness>> from being seen. You'll need to find something to cover with. <</if>> <br><br> <</if>> <<if $lakeswim is 1>> <<set $lakeswim to 0>> You practise swimming in the lake. <<if Weather.dayState is "night">> <<if Weather.precipitation is "rain">> The dark water dances with the rain. It's exhilarating, if scary. <<else>> The black water is gentle. <</if>> <<elseif Weather.dayState is "dusk">> <<if Weather.precipitation is "rain">> Rain agitates the cool water. <<else>> The evening sun falls over the trees, casting its double in the water. <</if>> <<elseif Weather.dayState is "dawn">> <<if Weather.precipitation is "rain">> Rain agitates the cool water. <<else>> The morning sun rises over the trees, casting its double in the water. <</if>> <<else>> <<if Weather.precipitation is "rain">> Rain agitates the warm water. <<else>> The water is warm and gentle. <</if>> <</if>> <<physique 3>><<swimmingskilluse>><<pass 30>> <br><br> <</if>> <<if $phase is 1>> <<set $phase to 0>> You improvise a garment made from reeds and lilies and tie it around your chest. It's fragile and revealing, and you don't think you could take it off without breaking it, but it's better than nothing. <<plantupper "seaweed">> <br><br> <<if $rng gte 91 and $parasite.nipples.name is undefined and $settings.parasitesEnabled>> Your satisfaction is interrupted by a pinching sensation on your <<nipples>>. Shocked, you pull down your top to find the culprit. Two small and soft invertebrates have latched to your chest. They massage and suck your nipples as if trying to nurse. They don't hurt at all, but the sensations are arousing you. You tug them in a bid to be free of their molestation, but they cling too tightly. What's more, touching them with any amount of force makes them suck more intensely. You'll need help to remove them. <<parasite nipples urchin>><<garousal>><<arousal 600 "breasts">> <br><br> <</if>> <</if>> <<if $phase is 2>> <<set $phase to 0>> You improvise a garment made from reeds and lilies and tie it around your waist. It's fragile and revealing, and you don't think you could take it off without breaking it, but it's better than nothing. <<plantlower "seaweed">> <br><br> <<if $parasite.penis.name is "parasite" or $parasite.clit.name is "parasite">> /* Prevents the 2 types of parasites from interacting */ <<elseif $rng gte 91 and $parasite.penis.name is undefined and $player.penisExist and $settings.parasitesEnabled and !playerChastity("penis")>> Your satisfaction is interrupted by a pinching sensation on your <<penis>>. Shocked, you lift your skirt to find the culprit. A small and soft invertebrate has latched on. It massages and sucks as if trying to nurse. It doesn't hurt at all, but the sensations are making you feel shamefully aroused. You tug it in a bid to be free of its molestation, but it clings too tightly. What's more, touching it with any amount of force makes it suck more intensely. You'll need help to remove it. <<parasite penis urchin>><<garousal>><<arousal 600 "genitals">> <br><br> <<elseif $rng gte 91 and $parasite.clit.name is undefined and $player.vaginaExist and $settings.parasitesEnabled and !playerChastity("hidden")>> Your satisfaction is interrupted by a pinching sensation on your <<pussy>>. Shocked, you lift your skirt to find the culprit. A small and soft invertebrate has latched onto your clit. It massages and sucks as if trying to nurse. It doesn't hurt at all, but the sensations are making you feel shamefully aroused. You tug it in a bid to be free of its molestation, but it clings too tightly. What's more, touching it with any amount of force makes it suck more intensely. You'll need help to remove it. <<parasite clit urchin>><<garousal>><<arousal 600 "genitals">> <br><br> <</if>> <</if>> <<if $stress gte $stressmax and !$possessed>> <<passoutlake>> <<elseif $foresthunt gte 10>> <<foresthunt>> <<elseif dangerEvent(1, 9900, $allure + 1000) and $eventskip is 0 and $lakesurface is 1>> <span class="purple">Something followed you from the depths.</span> <<eventlakewater>> <<elseif dangerEvent(0.5) and $eventskip is 0>> <<eventlakewater>> <<else>> <<swimicon>><<link [[Practise swimming (0:30)|Lake Depths]]>><<stress -6>><<tiredness 6>><<set $lakeswim to 1>><<slimeEventEnd "swimming">><</link>><<gswimming>><<lstress>><<gtiredness>> <br> <<if !Time.schoolDay and Weather.precipitation is "rain" and Time.dayState is "day" and $daily.masonSpoken isnot 1 and !$possessed>> <<if $mason_count gte 1>> <<swimicon>><<link [[Swim out to Mason (0:05)|Lake Mason]]>><<pass 5>><<set $daily.masonSpoken to 1>><</link>> <br> <<else>> <<swimicon>><<link [[Swim out to Mason (0:05)|Lake Mason Intro]]>><<pass 5>><</link>> <br> <</if>> <</if>> <<if $worn.upper.exposed gte 2 and $worn.under_upper.exposed gte 1 or $worn.upper.exposed gte 2 and $underupperwetstage gte 3 or $upperwetstage gte 3 and $worn.under_upper.exposed gte 1 or $upperwetstage gte 3 and $underupperwetstage gte 3>> <<beachicon "seaweed">><<link [[Make a top out of plants (0:20)|Lake Depths]]>><<pass 20>><<set $phase to 1>><</link>> <br> <</if>> <<if $worn.lower.exposed gte 2 and $worn.under_lower.exposed gte 1 or $worn.lower.exposed gte 2 and $underlowerwetstage gte 3 or $lowerwetstage gte 3 and $worn.under_lower.exposed gte 1 or $lowerwetstage gte 3 and $underlowerwetstage gte 3>> <<beachicon "seaweed">><<link [[Make a skirt out of plants (0:20)|Lake Depths]]>><<pass 20>><<set $phase to 2>><</link>> <br> <</if>> <<if $nextPassageCheck is "Lake Underwater">> <<swimicon "down">><span class="nextLink"><<link [[Down.|Lake Underwater]]>><<pass 1>><</link>></span> <<else>> <<swimicon "dive">><<link [[Dive (0:01)|Lake Underwater]]>><<set _oxygenRecoveryBlocked to true>><<pass 1>><</link>> <</if>> <br> <<oxygenrecovery 0>> <<swimicon "back">><<link [[Swim towards shore (0:12)|Lake Shallows]]>><<pass 12>><</link>> <br><br> <<if $exposed gte 1 and $laketeenspresent is 1>> <<elseif $debug is 1>> <<lakeicon "dock">><<link [[Swim to dock (0:02)|Lake Dock]]>><<pass 2>><</link>> <br> <</if>> <<set $eventskip to 0>> <</if>> <<set $lakesurface to 0>><<set $outside to 1>><<set $location to "lake">><<set $bus to "lakedepths">><<effects>><<lakeeffects>> You are in the middle of the frozen lake, near the swimming dock. <<if Weather.precipitation === "snow">> Thick snow makes it difficult to see the surrounding forest. <</if>> <br><br> <<if !Weather.isFrozen("lake")>> As the temperature increases, the ice suddenly gives way. You plunge into icy water.<<ggstress>><<stress 18>> <br><br> <<link [[Next|Lake Underwater]]>><</link>> <<exit>> <</if>> <<if !Time.schoolDay and Weather.isFrozen("lake") and Time.dayState is "day">> Someone's dug through the ice beside the swimming dock. <<else>> <<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. <<else>> There's a hole in the ice, allowing access to the water below. <</if>> <</if>> <br><br> <<if $exposed gte 1>> <<covered>> There's nowhere to hide out here. <br><br> <</if>> <<if $stress gte $stressmax and !$possessed>> <<passoutlake>> <<elseif $foresthunt gte 10>> <<foresthunt>> <<elseif dangerEvent(1, 9900, $allure + 1000) and $eventskip is 0 and $lakesurface is 1>> <span class="purple">Something followed you from the depths.</span> <<eventlakewater>> <<elseif dangerEvent(0.5) and $eventskip is 0>> <<eventlakeice>> <<else>> <<if !Time.schoolDay and Weather.isFrozen("lake") and Time.dayState is "day">> <<set $lake_ice_broken to 1>> <</if>> <<if $nextPassageCheck is "Lake Depths Ice Break">> <<swimicon "down">><span class="nextLink"><<link [[Down.|Lake Depths Ice Break]]>><<pass 12>><</link>></span> <br> <<elseif $lake_ice_broken is undefined>> <<swimicon "break">><<link [[Break the ice (0:30)|Lake Ice Break]]>><<pass 30>><<set $lake_ice_broken to 2>><<tiredness 3>><</link>><<gtiredness>> <br> <<else>> <<swimicon "dive">><<link [[Dive (0:01)|Lake Underwater]]>><<set _oxygenRecoveryBlocked to true>><<pass 1>><</link>> <<swim_check>> <<if _swim_check isnot 1 and !$settings.blindStatsEnabled>> | <span class="purple">You are not wearing any swimwear!</span> <</if>> <br> <</if>> <<oxygenrecovery 0>> <<lakeicon>><<link [[Walk towards shore (0:12)|Lake Shallows Ice]]>><<pass 12>><</link>> <br><br> <<set $eventskip to 0>> <</if>> <<set $lakesurface to 0>><<effects>><<wearProp "shovel">> You lift the shovel, and thrust it into the ice. It's hard work, but you manage to make a sizeable hole. <br><br> <<link [[Next|Lake Depths Ice]]>><<handheldon>><</link>> <br><<set $outside to 1>><<set $location to "lake">><<effects>><<lakeeffects>> <<if $laketeenspresent is 1>> You are on the swimming dock. Several students accompany you on the dock. There is a bikini sitting on the edge with no signs of its owner. <<elseif Weather.precipitation is "rain">> You are on the swimming dock. The sound of the rain hitting the water surrounding you is almost deafening. <<if $hallucinations gte 1>>You can't see far, yet you feel like something's watching you.<</if>> <<elseif Time.dayState is "day">> You are on the swimming dock. The lake looks placid. You feel like the only person in the entire world. <<elseif Time.dayState is "night">> <<if $laketeensfire is 1>> You are on the swimming dock. You can see the fire from the party a little ways in the distance. Stars dot the water. You feel like you are floating among them. <<else>> You are on the swimming dock. Stars dot the water. You feel like you are floating among them. <<if $hallucinations gte 1>>You can't see far in the dark, yet you feel like something's watching you.<</if>> <</if>> <<else>> You are on the swimming dock. The only sounds you hear are waves crashing upon the sides of the dock. <</if>> <br><br> <<swimicon>><<link [[Go swimming|Lake Depths]]>><</link>> <br><<set $outside to 1>><<set $location to "lake">><<effects>><<lakeeffects>> <<if $phase is 1>> <<set $phase to 0>> You sit on the rock and look out at the lake. <<if !Weather.isFreezing>> <<if Time.dayState is "night">> <<if Weather.precipitation is "rain">> The violent darkness roils before you. <<else>> The blackness stretches before you. <</if>> <<else>> <<if Weather.precipitation is "rain">> The water dances with raindrops. <<else>> The water is almost perfect in its stillness. <</if>> <</if>> <<else>> <<if Time.dayState is "night">> <<if Weather.precipitation is "snow">> Silent snow settles in darkness. <<else>> The blackness stretches before you. <</if>> <<else>> <<if Weather.isSnow is "snow">> Snow blankets the ice. <<else>> The ice reflects the world. <</if>> <</if>> <</if>> <i>Meditation effectiveness depends on willpower.</i> <<elseif $phase is 2>> <<set $phase to 0>> With some effort you quiet your thoughts until they still. <br><br> An hour passes, and you feel less burdened. <<elseif $phase is 3>> <<set $phase to 0>> You detach yourself from your thoughts. You witness them come and go, as if summoned by something else. <<if $awareness gte 400>> <br><br> The <<if Weather.isFrozen("lake")>>ice<<else>>water<</if>> parts, revealing a gaping abyss. Terror shivers up your spine, and breaks your concentration. <<gtrauma>><<gstress>><<trauma 6>><<stress 6>> <</if>> <<elseif $phase is 4 or $phase is 5>> <<set $phase to 0>> Your thoughts turn to your <<penis>>, and the mocking way people regard it. The torment returns. You try to remain detached. <br><br> An hour passes, and for a few moments the weight of scrutiny lifts. <<if $acceptance_penis_small gte 1000>> <<set _penisSize to setup.penisSizes[$player.penissize + 2].toUpperFirst()>> <br><br> Realisation dawns as you lean back. Your <<penis>> is beautiful. Why should you care what other people say about it? You've gained the <span class="green">Acceptance: _penisSize Penis</span> trait. <</if>> <<elseif $phase is 6>> <<set $phase to 0>> Your thoughts turn to your <<penis>>, and the mocking way people regard it. The torment returns. You try to remain detached. <br><br> An hour passes, and for a few moments the weight of scrutiny lifts. <<if $acceptance_penis_big gte 1000>> <<set _penisSize to setup.penisSizes[$player.penissize + 2].toUpperFirst()>> <br><br> Realisation dawns as you lean back. Your <<penis>> is beautiful. Why should you care what other people say about it? You've gained the <span class="green">Acceptance: _penisSize Penis</span> trait. <</if>> <<elseif $phase is 7>> <<set $phase to 0>> Your thoughts turn to your flat chest, and the mocking way people regard it. The torment returns. You try to remain detached. <br><br> An hour passes, and for a few moments the weight of scrutiny lifts. <<if $acceptance_breasts_small gte 1000>> <br><br> Realisation dawns as you lean back. Your chest is beautiful. Why should you care what other people say about it? You've gained the <span class="green">Acceptance: Flat Chest</span> trait. <</if>> <<elseif $phase is 8>> <<set $phase to 0>> Your thoughts turn to your <<breasts>>, and the mocking way people regard them. The torment returns. You try to remain detached. <br><br> An hour passes, and for a few moments the weight of scrutiny lifts. <<if $acceptance_breasts_small gte 1000>> <br><br> <<set _breastSizeName to setup.breastsizes[$player.breastsize].toUpperFirst()>> Realisation dawns as you lean back. Your <<breasts>> beautiful. Why should you care what other people say about them? You've gained the <span class="green">Acceptance: _breastSizeName Breasts</span> trait. <</if>> <<elseif $phase is 9>> <<set $phase to 0>> Your thoughts turn to your <<breasts>>, and the mocking way people regard them. The torment returns. You try to remain detached. <br><br> An hour passes, and for a few moments the weight of scrutiny lifts. <<if $acceptance_breasts_big gte 1000>> <<set _breastSizeName to setup.breastsizes[$player.breastsize].toUpperFirst()>> <br><br> Realisation dawns as you lean back. Your <<breasts>> are beautiful. Why should you care what other people say about them? You've gained the <span class="green">Acceptance: _breastSizeName Breasts</span> trait. <</if>> <<elseif $phase is 10>> <<set $phase to 0>> Your thoughts turn to your <<print playerAwareTheyArePregnant() ? "pregnant belly" : "pregnant looking belly">>, and the mocking way people regard it. The torment returns. You try to remain detached. <br><br> An hour passes, and for a few moments the weight of scrutiny lifts. <<if $acceptance_pregnancy gte 1000>> <br><br> Realisation dawns as you lean back. Your belly is beautiful. Why should you care what other people say about it? You've gained the <span class="green"><<print playerAwareTheyArePregnant() ? "Acceptance: Pregnant Belly" : "Acceptance: Pregnant Looking Belly">></span> trait. <</if>> <</if>> <br><br> <<if $stress gte $stressmax and !$possessed>> <<passoutlake>> <<elseif $foresthunt gte 10>> <<foresthunt>> <<else>> <<meditateoptions>> <</if>> <<set $eventskip to 0>><<effects>> You approach the pair. <<if $speech_attitude is "meek">> "A party?" you ask. "May I come?" <<elseif $speech_attitude is "bratty">> "Whatever you're doing," you say. "I want in." <<else>> "What's this about a party?" you ask. "Sounds fun." <</if>> <br><br> <<if $cool gte 240>> The <<person1>><<person>> perks up at your approach. "We're having a party at the lake," <<he>> says. "Halloween night. Everyone's invited." <br><br> <<His>> friend grabs your arm in excitement. "You should come!" <<person2>><<he>> says, before backing off with a blush. "I-if you want to." <br><br> They wave over their shoulders as they continue <<if $location is "school">>down the hall<<else>>into the woods<</if>>. <<elseif $cool gte 120>> The <<person2>><<person>> glances over, holding <<his>> phone aside. "There's gonna be a Halloween party at the lake," <<he>> says. <br><br> <<His>> friend nods. "It's open-invite." <<person1>><<He>> pauses, <<his>> gaze crawling up your body. "You should come." <br><br> They bid you goodbye and continue <<if $location is "school">>down the hall<<else>>into the woods<</if>>. <<else>> The <<person1>><<person>> regards you with a sneer. "Party at the lake," <<he>> says. "On Halloween." <br><br> "Don't think about crashing it," the <<person2>><<person>> butts in. "A freak like you'd scare everyone away." <br><br> Their mocking laughter fades as they <<if $location is "school">>round a corner<<else>>disappear past the trees<</if>>. <</if>> <br><br> <<if $location is "school">> <<link [[Next|Hallways]]>><<endevent>><<set $eventskip to 1>><</link>> <br> <<else>> <<link [[Next|Forest]]>><<endevent>><<set $eventskip to 1>><</link>> <br> <</if>><<effects>> You continue past the pair. <<if $cool gte 240>> The <<person1>><<person>> gives you a smile, but doesn't stop to chat. <<elseif $cool gte 120>> They ignore you, too caught up in their conversation. <<else>> The <<person1>><<person>> spits in your direction, but doesn't stop to harass you further.<<trauma 2>><<gtrauma>> <</if>> <br><br> As you pass, you can't help overhearing the <<person2>><<person>>. "Don't be chicken," <<he>> laughs. "We won't go past the lake. You'd rather spend the night trick-or-treating?" <br><br> You don't catch the rest as the two <<if $location is "school">>round a corner<<else>>disappear past the trees<</if>>. <br><br> <<if $location is "school">> <<link [[Next|Hallways]]>><<endevent>><<set $eventskip to 1>><</link>> <br> <<else>> <<link [[Next|Forest]]>><<endevent>><<set $eventskip to 1>><</link>> <br> <</if>><<set $outside to 1>><<set $location to "lake">><<effects>> <<if $phase is 0>> You settle down by the bonfire, surrounded by raucous youths. <<if $cool gte 240>> They greet you with a cheer, drunkenly stumbling over each other for a seat beside you. <<elseif $cool gte 120>> They greet you warmly. You suspect the alcohol has something to do with that. <<else>> No one pays you any mind, not even to pester you. Perhaps they don't recognise you in the dim light. Or they're too drunk to care. <</if>> <br><br> <</if>> <<if playerAwareTheyArePregnant()>> You sit and chat under the moonlight, though you refrain from any drinks. <<else>> <<wearProp "solo cup">> You sit, chat, and drink under the moonlight. <</if>> The others try to entertain themselves with ghost stories. <<generatey1>><<person1>> <<switch random(1, 5)>> <<case 5>>They're not very scary, but a <<person>> is still shaking by the end. <<case 4>>A <<person>> claims the lake itself is haunted. The others laugh <<him>> off. <<case 3>>They're not very scary. Most of the fun comes from jokes at the storytellers' expense. <<case 2>>A <<persons>> story leaves the whole party howling with ridicule. <<He>> washes down the shame with another beer. <<case 1>>One drives a <<person>> to tears, to the amusement of the group. <<He>> sniffles and retreats to the woods, drawing further laughter. <</switch>> <br><br> <<if $syndromewolves is 1 and !$halloweenWolves>><<set $halloweenWolves to 1>> The party is suddenly silenced by a cry from the woods. A howl, followed by cursing, then a pained yelp. <br><br> <<link [[Investigate|Lake Halloween Wolves Investigate]]>><<endevent>><</link>> <br> <<link [[Stay seated|Lake Halloween Wolves Ignore]]>><<endevent>><</link>> <br> <<elseif Time.monthDay isnot 31>> It's getting late, and the shadows of the forest are lengthening. People are preparing to return to town. No one wants to be left to travel alone. <br><br> <<set _storedClothes to clothingInStorage("lakeshore")>> <<if $earSlime.forcedCommando isnot undefined and _storedClothes.find(item => item.slot is "under_lower" and !item.type.includes("naked"))>> <span class="red">The slime in your ear refuses to allow you to leave with <<underwearTypeText>> on.</span> <<set _earSlimeText to true>> <<elseif _storedClothes.length>> <<link [[Get changed, then go with them (0:40)|Lake Return Journey]]>><<endevent>><<storeload "lakeshore">><<set $foresthunt to 0>><<pass 40>><</link>> <br> <</if>> <<if $earSlime.forcedCommando isnot undefined and !$worn.under_lower.type.includes("naked")>> <<if _earSlimeText>><span class="red">The slime in your ear refuses to allow you to leave with <<underwearTypeText>> on.</span><</if>> <<elseif $exposed lte 0>> <<link [[Go with them (0:30)|Lake Return Journey]]>><<endevent>><<set $foresthunt to 0>><<pass 30>><</link>> <br> <</if>> <<link [[Stay|Lake Shore]]>><<endevent>><</link>> <br> <<else>> <<if playerAwareTheyArePregnant()>> <<socialiseicon "party">><<link [[Keep partying (0:10)|Lake Halloween Party]]>><<endevent>><<set $phase to 1>><<stress -4>><<status 1>><<pass 10>><</link>><<lstress>><<gcool>> <<else>> <<socialiseicon "party">><<link [[Keep partying (0:10)|Lake Halloween Party]]>><<endevent>><<set $phase to 1>><<stress -4>><<alcohol 20>><<status 1>><<pass 10>><</link>><<lstress>><<gcool>><<galcohol>> <</if>> <br> <<getouticon>><<link [[Leave|Lake Shore]]>><<endevent>><<set $phase to 0>><</link>> <br> <</if>><<set $outside to 1>><<set $location to "lake">><<effects>> <<beastNEWinit 1 wolf>><<generatey2>> You peer between the trees, where you find a <<beasttype 0>> hounded by a gang of delinquents. From the look of <<bhis 0>> <<if $monster is 1>> mussed hair and the bruises lining <<bhis 0>> body, <<else>> patchy fur and haggard stance, <</if>> <<bhes>> fighting a losing battle. <br><br> "Piss off, mutt," a <<person2>><<person>> slurs. <<He>> hurls a rock at the <<beasttype 0>>, hitting <<bhim 0>> dead in the <<if $monster is 1>>face<<else>>snout<</if>>. <<bHe 0>> howls in pain. The onlookers cheer.<<stress 6>><<gstress>> <br><br> Guilt takes you as you watch the <<beasttype 0>> limp <<bhis 0>> way into the brush, towards the cave. <span class="blue">You should check up on them.</span> <br><br> <<endevent>> <<link [[Next|Lake Shore]]>><</link>> <br><<set $outside to 1>><<set $location to "lake">><<effects>> <<beastNEWinit 1 wolf>><<generatey2>> Leaves rustle behind you. You turn in time to catch a <<beasttype 0>> rushing past. <<bHis 0>> eyes are wild with fear, and <<bhe 0>> doesn't stop to regard you. <br><br> The others scream at the intrusion and scurry away in a panic. Until a <<person2>><<person>> bursts through, armed with a heavy branch. <<He>> swings it, hitting the <<beasttype 0>> dead in the chest. <<bHe 0>> howls in pain. The onlookers cheer.<<stress 6>><<gstress>> <br><br> Guilt takes you as you watch the <<beasttype>> limp <<bhis 0>> way into the brush, towards the cave. <span class="blue">You should check up on them.</span> <br><br> <<endevent>> <<socialiseicon "party">><<link [[Keep partying (0:10)|Lake Halloween Party]]>><<set $phase to 1>><<pass 10>><<status 1>><</link>><<gcool>> <br> <<getouticon>><<link [[Leave|Lake Shore]]>><</link>> <br><<set $daily.masonLake to true>> <<effects>> <<npc Mason>><<person1>> You swim into the middle of the lake. There Mason swims in a wide circle. <<He>> notices you approach, and faces you, treading water. <br><br> "It's nice to see you out here," <<he>> says. "If it's okay though, I'd like to continue my laps." <<He>> swims away before you can get close. <br><br> <<swimicon>><<link [[Try to catch <<him>> (0:05)|Lake Mason Swim]]>><<tiredness 1>><</link>><<swimmingdifficulty 1 300>><<gtiredness>> <br> <<getouticon>><<link [[Leave|Lake Depths]]>><<endevent>><</link>> <br><<effects>> <<if $swimmingskill gte 1000>> <<set $mason_count to 1>> You swim after <<him>>, <span class="green">and manage to close the distance.</span> <<He>> glances over <<his>> shoulder, and swims faster, but still you manage to keep up. You're almost close enough to touch <<him>> when <<he>> stops and turns. <br><br> "I-I see someone's been paying attention in class," <<he>> says. <<He>> holds <<his>> arms beneath the water in a strange way, close to <<his>> body. "If only the rest of the class were so capable. We'd have our own swim team." <br><br> You look down, through the rain-broken water, and see the reason for <<his>> behaviour. <span class="lewd"><<Hes>> naked.</span> Something in your expression gives you away, and <<his>> face turns a deep shade of red. <br><br> "I-I," <<he>> begins, voice quivering. "I prefer swimming like this. It's just more fun." <br><br> <<link [[Pretend you haven't noticed|Lake Mason Pretend]]>><<npcincr Mason love 1>><</link>><<glove>> <br> <<link [[Tease|Lake Mason Tease]]>><<npcincr Mason love -1>><<npcincr Mason lust 1>><<npcincr Mason dom -1>><</link>><<llove>><<glust>><<ldom>><<promiscuous1>> <br> <<link [[Act nonchalant|Lake Mason Nonchalant]]>><</link>> <br> <<elseif currentSkillValue('swimmingskill') gte random(1, 300)>> <<set $mason_count to 1>> You swim after <<him>>, but <<hes>> too fast. You'd need to be pretty skilled to match <<him>>, let alone catch up. <br><br> You try to head <<him>> off, but <<he>> swims in unexpected directions. It's as if <<hes>> avoiding you. <br><br> <span class="green">You have an idea.</span> You dive beneath the water and hold your breath, right in Mason's path. You wait for <<his>> shimmer to appear in the murk, then emerge from the water. <<He>> almost collides with you. <br><br> "I-I didn't expect to see a student out here," <<he>> says as you wipe water from your eyes. <<He>> holds <<his>> arms beneath the water in a strange way, close to <<his>> body. "Though I'm glad to see you practising outside school hours." <br><br> You look down, through the rain-broken water, and see the reason for <<his>> behaviour. <span class="lewd"><<Hes>> naked.</span> Something in your expression gives you away, and <<his>> face turns a deep shade of red. <br><br> "I-I," <<he>> begins, voice quivering. "I prefer swimming like this. It's just more fun." <br><br> <<link [[Pretend you haven't noticed|Lake Mason Pretend]]>><<npcincr Mason love 1>><</link>><<glove>> <br> <<link [[Tease|Lake Mason Tease]]>><<npcincr Mason love -1>><<npcincr Mason lust 1>><<npcincr Mason dom -1>><</link>><<llove>><<glust>><<ldom>><<promiscuous1>> <br> <<link [[Act nonchalant|Lake Mason Nonchalant]]>><</link>> <br> <<else>> You swim after <<him>>, <span class="red">but <<hes>> too fast.</span> You'd need to be pretty skilled to match <<him>>, let alone catch up. <br><br> You try to head <<him>> off, but <<he>> swims in unexpected directions. It's as if <<hes>> avoiding you. <br><br> <<link [[Next|Lake Depths]]>><<endevent>><</link>> <br> <</if>><<effects>> You smile at <<him>>, and try to look confused. <<if $speech_attitude is "meek">> "In the rain?" you say. "I like it too." <<elseif $speech_attitude is "bratty">> "Swimming in the rain isn't that weird," you say. "I like it myself. It's bracing." <<else>> "Don't worry," you say. "I like swimming in the rain too." <</if>> <br><br> <<He>> looks confused for just a moment. "Th-thank you for understanding," <<he>> says, still covering <<himself>> beneath the water. "I need to get back to my laps. Keep practising, you've shown promising skill." <br><br> <<link [[Next|Lake Depths]]>><<endevent>><</link>> <br><<effects>> <<if $exposed gte 2>> <<if $speech_attitude is "meek">> "Please don't be embarrassed," you giggle. "I'm naked too." <<elseif $speech_attitude is "bratty">> "You've nothing to be shy about," you say. "I'm not wearing anything either." <<else>> "Don't be shy," you say. "You're not the only one swimming naked." <</if>> <<promiscuity1>> You didn't think it possible, but <<his>> blush deepens. <<He>> looks away, and opens <<his>> mouth to speak. Instead, you get a good look at <<his>> toned ass near the surface of the water as <<he>> turns and swims away. <<else>> <<if $speech_attitude is "meek">> "Please don't be embarrassed," you say. "You know swimming best." <<elseif $speech_attitude is "bratty">> "You've nothing to be shy about," you say. "I'd show off too if I had a body like that." <<else>> "Don't be shy," you say. "You look good." <</if>> <<promiscuity1>> You didn't think it possible, but <<his>> blush deepens. "I-I need to return to my laps," <<he>> says. You get a good look at <<his>> toned ass near the surface of the water as <<he>> turns and swims away. <</if>> <br><br> <<link [[Next|Lake Depths]]>><<endevent>><</link>> <br><<effects>> You ignore <<his>> bashfulness. <<if $exposed gte 2>> <<if $speech_attitude is "meek">> "Me too," you say. "I'm naked right now." <<elseif $speech_attitude is "bratty">> "I get it," you say. "That's why I'm naked." <<else>> "I know what you mean," you say. "I'm naked too." <</if>> You didn't think it possible, but <<his>> blush deepens. "I-I need to return to my laps," <<he>> says. You get a good look at <<his>> toned ass near the surface of the water as <<he>> turns and swims away. <<else>> <<if $speech_attitude is "meek">> "I-it's fine," you say. "Lots of people do it." <<elseif $speech_attitude is "bratty">> "It's fine," you say. "Not like anyone would find out anyway. Except me, but I'm great." <<else>> "Don't worry," you say. "That isn't strange." <</if>> <<He>> seems relieved by your words, but doesn't move <<his>> arms. "I-I need to return to my laps," <<he>> says. You get a good look at <<his>> toned ass near the surface of the water as <<he>> turns and swims away. <</if>> <br><br> <<link [[Next|Lake Depths]]>><<endevent>><</link>> <br><<effects>> <<set $daily.masonLake to true>> <<npc Mason>><<person1>> You swim towards Mason. <<He>> doesn't try to outswim you, and starts treading water as you draw close. <<He>> covers <<his>> toned body beneath the water. <br><br> "C-can I help you?" <<he>> asks, eager to return to <<his>> laps. <br><br> <<link [[Just say hello|Lake Mason Greet]]>><<stress -6>><</link>><<lstress>> <br> <<if $mason_count lte 1>> <<link [[Ask to chat|Lake Mason Ask]]>><<npcincr Mason love 1>><</link>><<glove>> <br> <</if>> <<if hasSexStat("promiscuity", 2)>> <<link [[Ask to see|Lake Mason Flirt]]>><<npcincr Mason love -1>><<npcincr Mason lust 1>><<npcincr Mason dom -1>><</link>><<llove>><<glust>><<ldom>><<promiscuous2>> <br> <</if>><<effects>> <<set $mason_count to 2>> You ask Mason if <<hes>> free to talk. <<He>> glances beneath the water. "N-not right now," <<he>> says. "But there's a place nearby I go to relax in the evening, after my swim. You can find me there if you want to talk." <br><br> <span class="gold"><<He>> gives you directions to <<his>> secret spot near the waterfall. <<He>> will be there on rainy non-school evenings.</span> <br><br> <<link [[Next|Lake Depths]]>><<endevent>><</link>> <br><<effects>> You exchange awkward pleasantries. <<He>> remains covered and blushing the whole time, before returning to <<his>> laps. You get a nice look at <<his>> toned ass near the surface of the water as <<he>> swims away. <br><br> <<link [[Next|Lake Depths]]>><<endevent>><</link>> <br><<effects>> <<if $speech_attitude is "meek">> "I-I don't mean to be rude," you say. "But can I see? No one will know." <<elseif $speech_attitude is "bratty">> "Don't be coy," you say. "You want people to see. You've got a good body, it's only natural you'd want to show it off. So show me." <<else>> "Let me see," you say. "No one will know." <</if>> <br><br> <<if C.npc.Mason.lust gte 10>> <<earnFeat "Mason's Secret">> <<He>> blushes. "F-Fine," <<he>> says, voice quivering with anger as much as embarrassment. "If that's what it'll take to get you to stop bothering me." <br><br> <<He>> hesitates despite <<his>> words, then slowly moves <<his>> arms aside. You dive under the water for a better look at <<his>> sleek and toned body. <<if $pronoun is "f">> <<if $NPCList[0].penis isnot "none">> Your eyes are drawn to <<his>> <span class="lewd"><<print $NPCList[0].breastsdesc>> and <<print $NPCList[0].penisdesc>>.</span> You're used to seeing their contours beneath <<his>> tight swimsuit, but seeing them exposed in the water is something else. <<else>> Your eyes are drawn to <<his>> <span class="lewd"><<print $NPCList[0].breastsdesc>>.</span> You're used to seeing their contours beneath <<his>> tight swimsuit, but seeing them exposed in the water is something else. <</if>> <<else>> <<if $NPCList[0].penis isnot "none">> Your eyes are drawn to <<his>> <span class="lewd"><<print $NPCList[0].penisdesc>>.</span> You're used to seeing its contours beneath <<his>> tight swimsuit, but seeing it exposed in the water is something else. <<else>> Your eyes are drawn to <<his>> <span class="lewd">pussy.</span> You're used to seeing its contours beneath <<his>> tight swimsuit, but seeing it exposed in the water is something else. <</if>> <</if>> <br><br> <<He>> covers <<himself>> again when you come up for air. "I-I hope you're satisfied," <<he>> says. "Now leave me to finish my laps in peace." <<He>> turn and swims away. <br><br> <<link [[Next|Lake Depths]]>><<endevent>><</link>> <br> <<else>> <<He>> blushes. "Th-that's no request to make of your teacher!" <<he>> says. "Now please, let me get back to my laps." You get a nice look at <<his>> toned ass near the surface of the water as <<he>> swims away. <br><br> <<link [[Next|Lake Depths]]>><<endevent>><</link>> <br> <</if>><<set $location to "lake">><<set $outside to 1>><<effects>> You follow one of the streams feeding the lake, to the pond Mason likes to relax in. Water bubbles up from a spring beneath it. <br><br> <<if Time.dayState is "dusk" and ($daily.masonLake or !Time.schoolDay and Weather.precipitation is "rain")>> <<set $daily.masonLake to true>> <<npc Mason>><<person1>>Mason sits in it, wearing a swimsuit. <<His>> arms rest on the rocky bank, and <<his>> eyes are shut. <br><br> <<if $exposed gte 2>> <<if hasSexStat("exhibitionism", 5)>> <<icon "actions/swim.png">><<link [[Sit in the pond|Mason In Pond Naked]]>><</link>><<if $daily.ex.mason isnot 1>><<exhibitionist5>><</if>> <br> <<icon "actions/perch_get_up.png">><<link [[Sit beside the pond|Mason Beside Pond Naked]]>><</link>><<if $daily.ex.mason isnot 1>><<exhibitionist5>><</if>> <br> <<else>> <<covered>> You couldn't alert Mason to your presence like this! <br><br> <</if>> <<elseif $exposed gte 1>> <<if hasSexStat("exhibitionism", 3)>> <<icon "actions/swim.png">><<link [[Sit in the pond|Mason In Pond Naked]]>><</link>><<if $daily.ex.mason isnot 1>><<exhibitionist3>><</if>> <br> <<icon "actions/perch_get_up.png">><<link [[Sit beside the pond|Mason Beside Pond Naked]]>><</link>><<if $daily.ex.mason isnot 1>><<exhibitionist3>><</if>> <br> <<else>> <<covered>> You couldn't alert Mason to your presence like this! <br><br> <</if>> <<else>> <<icon "actions/swim.png">><<link [[Sit in the pond|Mason In Pond]]>><</link>> <br> <<icon "actions/perch_get_up.png">><<link [[Sit beside the pond|Mason Beside Pond]]>><</link>> <br> <</if>> <br> <<getouticon>><<link [[Leave|Lake Waterfall]]>><<endevent>><</link>> <br> <<else>> The pond is empty. Mason likes to come here on rainy evenings on weekends and school holidays, after swimming in the lake. <br><br> <<getouticon>><<link [[Leave|Lake Waterfall]]>><</link>> <br> <</if>><<effects>> <<if $mason_count gte 3>> You sit beside the pond. Mason opens <<his>> eyes when <<he>> hears you. <br><br> <<mason_greet>> <br><br> <<mason_actions>> <<else>><<set $mason_count to 3>> <<swim_check>> You sit beside the pond. Mason opens <<his>> eyes when <<he>> hears you. <br><br> <<if _swim_check is 1>> "I'm glad you found me," <<he>> says. "You can get in if you like." <<else>> "I'm glad you found me," <<he>> says. "You can get in if you like. There's a little hidey-hole at the shore of the lake if you need somewhere to keep your clothes." <</if>> <br><br> <<mason_actions>> <</if>><<effects>><<water>> <<if $mason_count gte 3>> You slip into the pond opposite Mason. <<His>> eyes open when <<he>> hears the splash. <br><br> <<mason_greet>> <br><br> <<mason_actions>> <<else>><<set $mason_count to 3>> <<swim_check>> You slip into the pond opposite Mason. <<His>> eyes open when <<he>> hears the splash. <br><br> <<if _swim_check is 1>> "I'm glad you found me," <<he>> says. "The water here is lovely, and it's so secluded." <<else>> "I'm glad you found me," <<he>> says. "The water here is lovely, and it's so secluded." <<He>> looks at your clothes. "You've got your clothes all wet! There's a little hidey-hole at the shore of the lake if you need somewhere to keep them in the future." <</if>> <br><br> <<mason_actions>> <</if>><<effects>> <<flaunting>> you sit beside the pond. Mason opens <<his>> eyes when <<he>> hears you, but shuts them again when <<he>> sees your <<lewdness>>. <<if !C.npc.Mason.chastityKeyCarried and playerChastity() and $worn.genitals.origin is "Winter" and (C.npc.Mason.love gte 5 or C.npc.Mason.lust gte 10) and getVisibleClothesList().find(o => o === V.worn.genitals)>> After a moment, <<he>> opens <<his>> eyes again and stares at your $worn.genitals.name. <<He>> stares hard enough that it briefly becomes uncomfortable before <<he>> catches <<himself>> and averts <<his>> gaze with a blush. <<set C.npc.Mason.chastityKeyCarried to 1>><<set $daily.masonChastityRemovalDeclined to 1>> <</if>> <<if $exposed gte 2>> <<if $daily.ex.mason isnot 1>> <<exhibitionism5>> <<set $daily.ex.mason to 1>> <<else>> <br><br> <</if>> <<else>> <<if $daily.ex.mason isnot 1>> <<exhibitionism3>> <<set $daily.ex.mason to 1>> <<else>> <br><br> <</if>> <</if>> <<if $mason_count gte 3>> <<mason_greet_lust>> <br><br> <<mason_actions>> <<else>><<set $mason_count to 3>> "I-I'm glad you found me here," <<he>> says. "But could you put some clothes on?" <br><br> <<mason_actions>> <</if>><<effects>><<water>> <<flaunting>> you slip into the pond. Mason opens <<his>> eyes when <<he>> hears the splash, but shuts them again when <<he>> sees your <<lewdness>>. <<if !C.npc.Mason.chastityKeyCarried and playerChastity() and $worn.genitals.origin is "Winter" and (C.npc.Mason.love gte 5 or C.npc.Mason.lust gte 10) and getVisibleClothesList().find(o => o === V.worn.genitals)>> After a moment, <<he>> opens <<his>> eyes again and stares at your $worn.genitals.name. <<He>> stares hard enough that it briefly becomes uncomfortable before <<he>> catches <<himself>> and averts <<his>> gaze with a blush. <<set C.npc.Mason.chastityKeyCarried to 1>><<set $daily.masonChastityRemovalDeclined to 1>> <</if>> <<if $exposed gte 2>> <<if $daily.ex.mason isnot 1>> <<exhibitionism5>> <<set $daily.ex.mason to 1>> <<else>> <br><br> <</if>> <<else>> <<if $daily.ex.mason isnot 1>> <<exhibitionism3>> <<set $daily.ex.mason to 1>> <<else>> <br><br> <</if>> <</if>> <<if $mason_count gte 3>> <<mason_greet_lust>> <br><br> <<mason_actions>> <<else>><<set $mason_count to 3>> "I-I'm glad you found me here," <<he>> says. "But could you put some clothes on?" <br><br> <<mason_actions>> <</if>><<effects>> You chat with Mason. <<if $rng gte 81>> <<He>> talks about the lake and the forest surrounding it. It seems they're a big reason <<he>> moved here. <<elseif $rng gte 61>> <<He>> asks about school, and probes you for what the other students think of <<him>>. <<elseif $rng gte 41>> <<He>> talks about <<his>> successes in competitive swimming. <<elseif $rng gte 21>> <<He>> talks about the computer games <<hes>> played recently. <<else>> <<He>> talks about the other teachers. <<Hes>> careful not to insult any of them. <</if>> <br><br> <<if $swimmingskill lte 999 and random(1, 3) is 3>> <<He>> explains some of <<his>> swimming technique to you. <<swimmingskilluse>> <br><br> <</if>> <<mason_actions>><<effects>> <<if $exposed gte 1>> You chat with Mason, and draw attention to your exposed body. <<He>> tries not to look, but glances over occasionally regardless. <<He>> seems uncomfortable. <<else>> You chat with Mason, and keep commenting about how nice <<his>> body looks. <<He>> looks uncomfortable, and covers <<his>> swimsuit with <<his>> hands as if naked. <</if>> <<promiscuity1>> <<mason_actions>><<effects>> <<dry>><<towelup>><<set $foresthunt to 0>> Mason gives you some towels to dry with, and wraps one around <<himself>>. Together you walk <<if $masonDressed is true>> to where you hid your clothes, then after getting dressed, continue <<unset $masonDressed>> <</if>> through the dark forest in the direction of town. <br><br> You arrive on Danube Street without incident. Mason insists on walking you up to the orphanage before waving you goodbye. <br><br> <<link [[Next|Domus Street]]>><<set $eventskip to 1>><<endevent>><</link>> <br><<effects>> <<if $speech_attitude is "meek">> "I don't want to be a bother," you say. "I'll be okay." <<elseif $speech_attitude is "bratty">> "Do I look like I'm afraid of the dark?" you ask. "I'll be fine." <<else>> "It's okay," you say. "I know my way around the forest." <</if>> <br><br> Mason seems unsure, but nods. "If you're sure. Be careful." <<He>> dries <<himself>> with a towel as <<he>> walks into the forest. <br><br> <<link [[Next|Lake Waterfall]]>><<endevent>><</link>> <br><<widget "mason_actions">> <<if $mason_pond is undefined and C.npc.Mason.love gte 30>> <<set $mason_pond to 1>> "There's a lot of water underground around here," Mason says. "There's a stream beneath Domus Street, in fact. I've always wanted to own a home there. I could make my own spring." <br><br> <<He>> sits up with a splash, and looks at you. "You live on Domus Street, right?" <<he>> asks. <<He>> sits back in the water. "It would be expensive. And you'd need permission from your caretaker. It's fun to think about though." <br><br> <</if>> <<if Time.dayState is "night">> The last of the sun's light fades between the leaves. Mason stands up. "We'll catch a chill if we're out here too long," <<he>> says. "The forest can be dangerous after dark. Let me walk you home." <br><br> <<set _storedClothes to clothingInStorage("lakeshore")>> <<if $earSlime.forcedCommando isnot undefined and (_storedClothes.find(item => item.slot is "under_lower" and !item.type.includes("naked")) or !$worn.under_lower.type.includes("naked"))>> <span class="red">The slime in your ear refuses to allow you to<<if $worn.under_lower.type.includes("naked")>> get changed and<</if>> leave with underwear on.</span> <<set _earSlimeText to true>> <<elseif _storedClothes.length>> <<link [[Get changed, then walk home with Mason (0:40)|Mason Walk]]>><<pass 40>><<storeload "lakeshore">><<set $masonDressed to true>><</link>> <<else>> <<link [[Walk home with Mason (0:30)|Mason Walk]]>><<pass 30>><</link>> <</if>> <br> <<link [[Say you'll be okay|Mason Walk Refuse]]>><</link>> <br> <<elseif playerChastity() and $worn.genitals.origin is "Winter" and C.npc.Mason.chastityKeyCarried and !$daily.masonChastityRemovalDeclined and getVisibleClothesList().find(o => o === V.worn.genitals) and (C.npc.Mason.love gte 10 or C.npc.Mason.lust gte 15)>> <<include "Mason Chastity Prompt">> <<else>> <<socialiseicon>><<link [[Chat (0:30)|Mason Pond Chat]]>><<npcincr Mason love 1>><<pass 30>><<stress -6>><</link>><<glove>><<lstress>> <br> <<brothelicon>><<link [[Flirt (0:30)|Mason Pond Flirt]]>><<pass 30>><<npcincr Mason love -1>><<npcincr Mason lust 1>><</link>><<promiscuous1>><<llove>><<glust>> <br> <<getouticon>><<link [[Leave|Lake Waterfall]]>><<endevent>><</link>> <br> <</if>> <</widget>> <<widget "mason_greet">> <<if C.npc.Mason.love gte 30>> "It's good to see you," <<he>> says, smiling. "I like the company." <<elseif C.npc.Mason.love gte 10>> "I was hoping to see you," <<he>> says. <<elseif C.npc.Mason.love gte -10>> "Hey," <<he>> says. <<elseif C.npc.Mason.love gte -30>> "What do you want?" <<he>> asks. <<else>> "Please don't disturb me," <<he>> says. <</if>> <</widget>> <<widget "mason_greet_lust">> <<if C.npc.Mason.lust gte 30>> "P-please put some clothes on," <<he>> says, shifting as if to conceal something. <<elseif C.npc.Mason.lust gte 10>> "You should put some clothes on," <<he>> says. "People might get the wrong idea if they catch us." <<elseif C.npc.Mason.lust gte -10>> "You should put some clothes on," <<he>> says. <<elseif C.npc.Mason.lust gte -30>> "That's no way to present yourself to your teacher," <<he>> says. <<else>> <<He>> sighs in resignation. <</if>> <</widget>><<effects>> <<if $speech_attitude is "meek">> "D-don't be worried," you say. "I'll be careful." <<elseif $speech_attitude is "bratty">> "I can look after myself," you say. "It's warmer down there than up here, anyway." <<else>> "Don't worry about me," you say. "I'll be careful." <</if>> <br><br> <<if $swimmingSuccess>> <<set $mason_ice_lake to 2>> Mason watches you a moment, <span class="green">then sighs in resignation.</span> <<if $worn.upper.type.includes("diving") and $worn.lower.type.includes("diving")>> "At least you're dressed for it," <<he>> says. "Just be careful, alright?" <<else>> "At least dress properly for it," <<he>> says. "They sell diving gear in town." <</if>> <<He>> swings <<his>> legs over the hole in the ice, and drops beneath.<<glove>><<npcincr Mason love 1>> <br><br> <<link [[Next|Lake Depths Ice]]>><<endevent>><<set $eventskip to 1>><</link>> <br> <<else>> Mason watches you a moment, <span class="red">then shakes <<his>> head.</span> <<if $worn.upper.type.includes("diving") and $worn.lower.type.includes("diving")>> "You might be dressed for it," <<he>> says. "But the ice is treacherous." <<else>> "You don't even have proper diving gear," <<he>> says. "You'll freeze." <</if>> <<He>> swings <<his>> legs over the hole in the ice, and drops beneath.<<llove>><<npcincr Mason love -1>> <br><br> <<link [[Next|Lake Depths Ice]]>><<endevent>><<set $eventskip to 1>><</link>> <br> <</if>><<effects>> <<if $speech_attitude is "meek">> You thank Mason, avoiding eye contact. <<elseif $speech_attitude is "bratty">> You thank Mason. <<else>> You thank Mason. <</if>> <<He>> smiles. "No problem," <<he>> says, swinging <<his>> legs over the hole in the ice. "Go get yourself warmed up." <<He>> disappears into the water. <br><br> <<link [[Next|Lake Depths Ice]]>><<endevent>><<set $eventskip to 1>><</link>> <br><<effects>> <<if $speech_attitude is "meek">> "I-I was down there on purpose," you say. <<elseif $speech_attitude is "bratty">> "Don't interfere with my business," you say. <<else>> "I was down there on purpose," you say. <</if>> <br><br> Mason shakes <<his>> head. "I can't be negligent," <<he>> says. "I don't care if you don't appreciate that. Keep working hard in class, and someday you'll be an accomplished enough diver." <<He>> swings <<his>> legs over the hole in the ice, and disappears below the water. <br><br> <<link [[Next|Lake Depths Ice]]>><<endevent>><<set $eventskip to 1>><</link>> <br><!-- no effects, this is an alternative passage ending --> <<if $location is "pool">> As you get closer, <<person1>><<he>> points to your $worn.genitals.name and blushes, <<else>> Pointing to your $worn.genitals.name and blushing, <<he>> says, <</if>> <<if !C.npc.Mason.chastityRemovalDeclined>> <<switch C.npc.Mason.chastityRemoved>> <<case 0 undefined null>> "Y-you know, I might have something for that." <<He>> follows up with a hasty, "Only if you want, of course." <<case 1>> "What have you been doing to draw the ire of Old Winter to end up in one of these again? Still, I should be able to remove it." <<He>> follows up with a hasty statement, "Only if you want, of course." <<default>> "I don't understand. What have you been doing to keep getting caught in those things? Old Winter only ever ended up doing that to me when I..." <br><br> Mason's face gets even redder, which you did not think possible, as <<he>> changes the subject. "N-never mind! The point is, I should be able to remove it again if you like." <</switch>> <<else>> <<print [ '"Y-you know, I might have something for that. Just let me know,"', '"M-my offer still stands. If you need out of that, I could help,"', '"Talk to me if you ever change your mind about that thing,"', ].random()>> says Mason while pointing at your $worn.genitals.name. <</if>> <br><br> <<link [[No thanks|Mason Chastity Decline]]>><<set C.npc.Mason.chastityRemovalDeclined to 1>><<set $daily.masonChastityRemovalDeclined to 1>><<set $weekly.masonChastityRemovalDeclined to 1>><</link>> <br> <<if C.npc.Mason.chastityKeyCarried is 1 or !hasSexStat("exhibitionism", 5)>> <<link [[Ask|Mason Chastity Ask]]>><</link>> <<elseif hasSexStat("exhibitionism", 5)>> <<link [[Accept|Mason Chastity Accept]]>> <<arousal 600>><<exhibitionism5>><<set C.npc.Mason.chastityRemovalDeclined to 0>><<run delete $daily.masonChastityRemovalDeclined>><<run delete $weekly.masonChastityRemovalDeclined>> <</link>><<garousal>><<exhibitionist5>> <<else>> <br><<insufficientStat "exhibitionism" "to let Mason strip you">> <</if>> <br><<effects>> "No thanks," you say while shifting to cover the $worn.genitals.name a little. <br><br> "I understand," says Mason blushing. "I just thought I'd offer." <<He>> cannot help but glance at your $worn.genitals.name once more before turning away. <<npcincr Mason lust 1>><<glust>> <br><br> <<if $location is "pool">> /* Exit to Pool */ <<link [[Rejoin the Class|Swimming Lesson]]>><<endevent>><</link>> <<else>> /* Exit to Mason Pond */ <<mason_actions>> <</if>> <br><<effects>><<set C.npc.Mason.chastityKeyCarried to 2>> "Like what?" you ask. <br><br> Mason pulls out a small key. "You've had a run in with Old Winter. I think this might fit. W-would you mind if I tried?" <br><br> <<link [[No thanks|Mason Chastity Decline]]>><<set C.npc.Mason.chastityRemovalDeclined to 1>><<set $daily.masonChastityRemovalDeclined to 1>><<set $weekly.masonChastityRemovalDeclined to 1>><</link>> <br> <<if hasSexStat("exhibitionism", 5)>> <<link [[Accept|Mason Chastity Accept]]>> <<arousal 600>><<exhibitionism5>><<set C.npc.Mason.chastityRemovalDeclined to 0>><<run delete $daily.masonChastityRemovalDeclined>><<run delete $weekly.masonChastityRemovalDeclined>> <</link>><<garousal>><<exhibitionist5>> <<else>> <br><<insufficientStat "exhibitionism" "to let Mason strip you">> <</if>> <br><<effects>> <<if C.npc.Mason.chastityRemoved is undefined>><<set C.npc.Mason.chastityRemoved to 0>><</if>> /* Player */ <<switch C.npc.Mason.chastityRemoved>> <<case 0>> <<if $speech_attitude is "meek">> "O-only if you think it will fit," you say, blushing and averting your eyes. <<elseif $speech_attitude is "bratty">> "I bet it would fit," you say, smiling and tilting your head suggestively. <<else>> "Do you think it will fit?" you ask as you look at the key and back to Mason. <</if>> <<case 1>> <<if $speech_attitude is "meek">> "Y-you sure you don't just want another peek?" you ask, blushing and averting your eyes. <<elseif $speech_attitude is "bratty">> "I bet you just want another peek," you say, smiling and tilting your head suggestively. <<else>> "I don't mind letting you see, have another look," you say as you look at the key and back to Mason. <</if>> <<default>> <<if $speech_attitude is "meek">> "I-I'm ok with letting you peek again. M-maybe you can even touch if you want," you say, blushing and averting your eyes. <<elseif $speech_attitude is "bratty">> "Are you sure you are not just trying to get another peek? Maybe I'll even let you touch if you like," you say, smiling and tilting your head suggestively. <<else>> "Sure, I can let you have another peek and maybe let you touch if you like," you say with a smile. <</if>> <</switch>> <br><br> /* Action */ <<He>> tries to ignore your comment but unconsciously licks <<his>> lips. <<He>> <<if $location is "pool">> pulls you off to the side of the pool where there is at least a slight amount of privacy and <</if>> brings the key to your $worn.genitals.name with trembling fingers. <<if $worn.over_lower.vagina_exposed gte 1 and $worn.lower.vagina_exposed gte 1 and $worn.under_lower.vagina_exposed gte 1>> <<switch random(0,1)>> <<case 0>> You thrust your hips forward, letting Mason have full access to your $worn.genitals.name. <<default>> You spread your legs, giving Mason full access to your $worn.genitals.name. <</switch>> <<else>> <<set _worn to [$worn.over_lower, $worn.lower, $worn.under_lower].filter(w => w.name !== "naked").map(w => w.name).formatList({useOxfordComma: true})>> You pull off your <<print $underlowerwetstage gte 3 or $overlowerwetstage gte 3 or $lowerwetstage gte 3 ? "soaked " : "">>_worn to give Mason full access to your $worn.genitals.name. <</if>> The key fits perfectly, and with a loud click, the $worn.genitals.name comes off, exposing your <<genitals 1>>. <<set $worn.genitals.type.push("broken")>><<genitalsruined>> <br><br> /* Reaction */ <<switch C.npc.Mason.chastityRemoved>> <<case 0>> Mason marvels at your <<genitals 2>> for longer than <<he>> means to and, upon realising it, closes <<his>> eyes and quickly turns away. "Well, it does fit, so you're welcome. It's not the first time I've had a run in with one of these." <<npcincr Mason lust 5>><<gglust>><<npcincr Mason love 1>><<glove>> <<case 1>> Mason stares at your <<genitals 2>> for longer than intended, and <<his>> hand raises, as if to touch you. When <<he>> realises, <<he>> pulls back <<his>> hand and turns away, closing <<his>> eyes. "You're welcome, though you should try to be more careful. Winter has... unique interests." <<npcincr Mason lust 5>><<gglust>><<npcincr Mason love 1>><<glove>> <<default>> Mason marvels at your <<genitals 2>> for longer than <<he>> means to. As if it had a mind of its own, <<his>> hand raises. <</switch>> <<set C.npc.Mason.chastityRemoved += 1>> <br><br> /* Options */ <<if C.npc.Mason.chastityRemoved gte 3>> <<if !hasSexStat("promiscuity", 3)>> <<insufficientStat "promiscuity" "to take things any further">> <<else>> <<link [[Grab Mason's Hand|Mason Chastity Grab]]>><</link>><<handholdingvirginitywarning>><<NPCvirginitywarning "Mason" "handholding">> <</if>> <br> <<link [[Do nothing|Mason Chastity Escape]]>><</link>> <<else>> <<if $location is "pool">> <<link [[Rejoin the Class|Swimming Lesson]]>><<endevent>><</link>> <<else>> <<mason_actions>> <</if>> <</if>> <br><<effects>> <<npc Mason>><<person1>> Upon realising what <<he>> is about to do, Mason pulls <<his>> hand back and closes <<his>> eyes while quickly turning away. "You're welcome, though you should try to be more careful. Winter has... unique interests." <<npcincr Mason lust 5>><<gglust>><<npcincr Mason love 1>><<glove>> <br><br> <<if $location is "pool">> <<link [[Rejoin the Class|Swimming Lesson]]>><<endevent>><</link>> <<else>> <<mason_actions>> <</if>><<effects>> Before Mason loses <<his>> nerve, you catch <<his>> hand and pull it toward your <<genitals>>. <<takeHandholdingVirginity "Mason" "consensual">> <br><br> <<if C.npc.Mason.love gte 20 or C.npc.Mason.lust gte 25>> <<set _part to $player.penisExist and $player.vaginaExist ? ["penis","pussy"].random() : $player.penisExist ? "penis" : "pussy">> <<He>> panics and attempts to pull <<his>> hand back, but your grip is too firm. When <<his>> fingers touch your <<genitals 2>>, <<his>> struggling stops, but <<his>> hand is shaking. You gently guide <<his>> trembling fingers to your _part. Mason's eyes go wide as <<he>> <<if _part is "pussy">>probes your pussy. <<else>>grasps your penis.<</if>> With timid fingers, <<he>> slowly begins to <<if _part is "pussy">>rub your pussy. <<else>>stroke your penis.<</if>> <<npcincr Mason lust 5>><<gglust>><<npcincr Mason love -2>><<llove>><<npcincr Mason dom -1>><<arousal 1800 _part>><<ggarousal>> <br><br> <<if $arousal gte $arousalmax>> <<orgasm>> You shudder as a wave of pleasure washes over you<<if !$femaleclimax and !_deniedOrgasm>> and you cum on Mason's hand<</if>>. <<He>> does not immediately remove <<his>> hand, though, and instead gives you a few more moments of pleasure before withdrawing. <br><br> Mason inspects <<his>> hand and catches your eye. <<He>> quickly turns away, "We shouldn't have done that." <<else>> Mason continues to <<if _part is "pussy">>rub your pussy <<else>>stroke your penis<</if>> for a few moments before finally pulling <<his>> hand away. <<He>> catches your eye and quickly turns away, "We shouldn't have done that." <</if>> <<else>> <<He>> panics and pulls <<his>> hand from your grip. Mason scowls at you and opens <<his>> mouth to protest, but thinks better of it and turns away with a blush.<<npcincr Mason lust 1>><<glust>><<npcincr Mason love -1>><<llove>><<gdom>><<npcincr Mason dom 1>> <</if>> <br><br> <<if $location is "pool">> <<link [[Rejoin the Class|Swimming Lesson]]>><<endevent>><</link>> <<else>> <<mason_actions>> <</if>><<effects>> <<npc Mason>><<person1>> The hard pressure on your chest wakes you up. You open your eyes, but all you can see is a blurred figure kneeling beside you. <br><br> You try to make out who it is.<span class="green"> It's Mason.</span> <br><br> <<if $location is "pool">> Several heads poke in to observe you, making it feel harder to breathe. <<stress 10>><<ggstress>> <br> Mason shoos them away, giving you space. <br><br> <</if>> <<He>> opens <<his>> mouth, trying to say something, but you can't hear anything. The only sound is a loud buzzing that makes your head ring. The water must've gotten inside your ears.<<trauma 18>><<ggtrauma>> <br><br> You can infer some of <<his>> words. <<Hes>> calling your name. You feel <<his>> toned hands pumping on your sternum, and <<he>> leans down. <<His>> face gets closer, and<<if C.npc.Mason.lust gte 40>> you can see <<his>> flushed cheeks as<</if>> <<his>> parted lips engulf your own.<<npcincr Mason lust 1>><<glust>> <br><br> <<if $player.virginity.kiss is true>> <<takeKissVirginity "Mason">> <br><br> <</if>> You feel the air forcing its way into your battered lungs, and you can finally breathe. You cough up water. Mason pulls away from you, looking relieved after hearing your coughs and faint breathing. <<He>> calls your name again, but you can feel your consciousness slipping. <br><br> <<link [[Next|Ambulance Mason]]>><</link>><<effects>> You feel yourself being lifted onto a stretcher. From the corner of your eyes, you can see Mason trailing along as they take you away. Mason's concerned look is the last thing you see before you black out. <br><br> <<link [[Sleep|Hospital Bed]]>><<endevent>><</link>><<effects>> You don a pair of ice skates, and push yourself onto the lake. <<if currentSkillValue('danceskill') gte 1000>> You glide across, leaping and spinning with grace. <<if $laketeenspresent is 1 and $rng gte 51>> <span class="green">The students watch, awed by your skill.</span><<ltrauma>><<gcool>><<trauma -6>><<status 1>> <</if>> <<elseif currentSkillValue('danceskill') gte 800>> You glide across at a good pace, and practise more advanced tricks. <<if $laketeenspresent is 1 and $rng gte 81>> <span class="green">The students watch, awed by your skill.</span><<ltrauma>><<gcool>><<trauma -6>><<status 1>> <</if>> <<elseif currentSkillValue('danceskill') gte 600>> You glide across at a good pace. <<elseif currentSkillValue('danceskill') gte 400>> You move at a good pace, and rarely wobble. <<elseif currentSkillValue('danceskill') gte 200>> You're a bit wobbly, but manage to put one foot in front of the other without falling. <<elseif currentSkillValue('danceskill') gte 100>> You're able to remain upright, but little more than that. <<else>> You struggle to even remain upright.<<gpain>><<pain 4>> <<if $laketeenspresent is 1>> <br><br> <<if $cool gte random(1, 400)>> <<generatey1>><<person1>> The other students giggle, but are sympathetic. You're far from the only one struggling. A <<person1>><<person>> lends an arm to steady you.<<gdanceskill>> <<elseif random(1, 400) gte $cool>> The other students laugh at your expense.<<gtrauma>><<gstress>><<llcool>><<status -10>><<trauma 6>><<stress 6>> <<else>> The other students giggle, but are sympathetic. You're far from the only one struggling. <</if>> <</if>> <</if>> <br><br> <<endevent>> <<if dangerEvent() and $laketeenspresent is 1>> <<if $rng gte 81>> <<generatey1>><<person1>> A <<person>> skates by. <<He>> spins as <<he>> passes, and winks. <<Hes>> trying to show off. <br><br> <<link [[Challenge (0:05)|Lake Skate Challenge]]>><<pass 5>><</link>><<dancedifficulty 200 1000>> <br> <<link [[Ignore|Lake Shallows Ice]]>><<endevent>><</link>> <br> <<elseif $rng gte 61>> You catch a <<generatey1>><<person1>><<person>> admiring you from the shore. <<He>> looks away when your eyes meet <<hers>>. <br><br> <<link [[Bring <<him>> onto the ice (0:05)|Lake Skate Flirt]]>><<pass 5>><</link>><<promiscuous1>> <br> <<link [[Ignore|Lake Shallows Ice]]>><<endevent>><</link>> <br> <<elseif $rng gte 41>> <<generatey1>><<person1>> A <<person>> skates up to you, and wraps <<his>> arms around you from behind. <<He>> licks your ear.<<gtrauma>><<gstress>><<trauma 6>><<stress 6>> <br><br> <<link [[Shove|Lake Skate Shove]]>><<trauma -6>><<def 1>><</link>><<ltrauma>> <br> <<link [[Endure|Lake Skate Endure]]>><<stress 6>><<arousal 600>><</link>><<gstress>><<garousal>> <br> <<elseif $rng gte 21>> <<generatey1>><<person1>> <<dancedifficulty 400 1000 true>> <<if $danceSuccess>> A <<person>> wobbles as <<he>> skates up to you. "C-could you teach me how to skate as well as you?" <br><br> <<link [[Teach (0:20)|Lake Skate Teach]]>><<trauma -6>><<pass 20>><</link>><<ltrauma>> <br> <<link [[Refuse|Lake Skate Refuse]]>><</link>> <br> <<else>> A <<person>> glides to a halt in front of you. "Fancy a hand?" <<he>> asks. "I could give you some pointers." <br><br> <<link [[Accept (0:20)|Lake Skate Learn]]>><<trauma -6>><<pass 20>><<danceskill 6>><</link>><<gdanceskill>> <br> <<link [[Refuse|Lake Skate Learn Refuse]]>><</link>> <br> <</if>> <<else>> <<generatey1>><<person1>><<generatey2>><<generatey3>><<generatey4>> A few delinquents surround a <<person>>. They push <<him>> away from the other students, trying to isolate <<him>>. <br><br> <<link [[Intervene (0:05)|Lake Skate Intervene]]>><<def 1>><<famegood 4>><<pass 5>><</link>> <br> <<link [[Ignore|Lake Shallows Ice]]>><<endevent>><</link>> <br> <</if>> <<else>> <<link [[Next|Lake Shallows Ice]]>><</link>> <br> <</if>><<effects>> You <<if currentSkillValue('danceskill') gte 200>> skate <<else>> wobble <</if>> over to the <<person>> and delinquents. <<if $speech_attitude is "meek">> "L-leave <<him>> alone," you say. <<elseif $speech_attitude is "bratty">> "Oi fuckers," you say. "Leave <<him>> alone." <<else>> "Leave <<him>> alone," you say. <</if>> <br><br> <<person2>> The delinquents abandon their quarry, and skate in your direction. "Sounds like someone wants a beating," a <<person>> says, leading the way. <br><br> <<if $rng gte 71>> Before you can respond, one of the other delinquents, a <<person3>><<person>>, tumbles to the ice. The <<person1>><<person>> lies behind <<person3>><<him>>, arms around the <<persons>> legs. <br><br> The other two delinquents almost slip as they spin, shocked by the <<person1>><<persons>> daring. <br><br> <<link [[Charge|Lake Skate Charge]]>><</link>><<dancedifficulty 1 600>> <br> <<link [[Mock|Lake Skate Mock]]>><</link>><<englishdifficulty 1 1000>> <br> <<else>> <<link [[Charge|Lake Skate Charge 2]]>><</link>><<dancedifficulty 1 1000>> <br> <<link [[Brace|Lake Skate Brace]]>><</link>><<physiquedifficulty 1 $physiquemax>> <br> <</if>><<effects>> You skate toward the distracted delinquents, and collide with the <<person2>><<person>>. <<if $danceSuccess>> <span class="green">You manage to remain upright</span> as <<he>> tumbles to the ground, grabbing <<his>> friend's arm and bringing <<person4>><<him>> down as well. <br><br> You help the <<person1>><<person>> to <<his>> feet, and skate back to shore before the delinquents can recover. <br><br> <<else>> <<He>> grasps <<his>> friend's arm, and yours, as <<he>> falls, <span class="red">dragging you with <<him>>.</span><<gstress>><<gpain>><<stress 6>><<pain 4>> <br><br> A pair of hands grasps your wrists. It's the <<person1>><<person>>. <<He>> helps you to your feet, and together you skate back to shore before the delinquents can recover. <br><br> <</if>> "I don't know what they were gonna do to me," <<he>> says. "I don't want to think about it. It doesn't matter. You saved me. Th-thank you."<<ltrauma>><<trauma -6>> <br><br> <<link [[Next|Lake Shallows Ice]]>><<endevent>><</link>> <br><<effects>> <<if $englishSuccess>> <<if $speech_attitude is "meek">> "B-be careful," you say. "Ice can be slippery." <<elseif $speech_attitude is "bratty">> "Keep sliding like that," you say. "I mean it. It's hilarious." <<else>> "You need to be more careful," you say. "Ice can be slippery." <</if>> <br><br> The <<person2>><<person>> swivels to face you, <span class="green">and loses <<his>> footing.</span> <<He>> slides to the ground, dragging <<his>> remaining friend with <<him>>. <br><br> You help the <<person1>><<person>> to <<his>> feet, and skate back to shore before the delinquents can recover. <br><br> <<else>> <<if $speech_attitude is "meek">> "S-silly pooheads," you say. <<elseif $speech_attitude is "bratty">> "Fucking shitheads," you say. <<else>> "Stupid bullies," you say. <</if>> <span class="red">It sounded more clever in your head.</span> <br><br> The <<person2>><<person>> wobbles to a halt in front of you. <<He>> tries to throw a punch, but loses balance. <<He>> grasps <<his>> friend's arm, and yours, and together you tumble to the ice.<<gpain>><<gstress>><<pain 4>><<stress 6>> <br><br> A pair of hands grasps your wrists. It's the <<person1>><<person>>. <<He>> helps you to your feet, and together you skate back to shore before the delinquents can recover. <br><br> <</if>> "I don't know what they were gonna do to me," <<he>> says. "I don't want to think about it. It doesn't matter. You saved me. Th-thank you."<<ltrauma>><<trauma -6>> <br><br> <<link [[Next|Lake Shallows Ice]]>><<endevent>><</link>> <br><<if $danceSuccess>> You skate towards the delinquents as fast as you can. <span class="green">Surprised by your audacity,</span> they throw up their arms in a defensive reflex. You shoulder barge the <<person2>><<person>> into <<his>> friend, sending them both sprawling. The remaining delinquent almost slips in <<person4>><<his>> haste to get away. <br><br> You grasp the <<person1>><<persons>> hand, and together skate back to shore. "I don't know what they were gonna do to me," <<he>> says. "I don't want to think about it. It doesn't matter. You saved me. Th-thank you."<<ltrauma>><<trauma -6>> <br><br> <<link [[Next|Lake Shallows Ice]]>><<endevent>><</link>> <br> <<else>> You skate towards the delinquents as fast you can, <span class="red">but lose balance.</span> You tumble to the ground, skidding to a halt in front of them.<<ggpain>><<gstress>><<pain 8>><<stress 6>> <br><br> The delinquents roar with laughter, so much that they almost slip up themselves. The <<person2>><<person>> grasps your arms, and starts dragging you across the ice. <br><br> <<link [[Next|Lake Skate Drag]]>><</link>> <br> <</if>><<effects>> You brace for impact. The <<person2>><<person>> hits first, <<if $physiqueSuccess>> barging into you. <span class="green">You manage to keep your footing.</span> A <<person3>><<person>> comes next. You grasp <<his>> arm as <<his>> body connects with yours. You spin around, redirecting <<his>> momentum and sending <<him>> back the way <<he>> came. Right at a <<person4>><<person>>. <br><br> They collide, and tumble to the ice. The <<person2>><<person>> laughs at <<his>> friends' misfortune, but doesn't seem keen to approach you again. <br><br> You grasp the <<person1>><<persons>> hand, and together skate back to shore. "I don't know what they were gonna do to me," <<he>> says. "I don't want to think about it. It doesn't matter. You saved me. Th-thank you."<<ltrauma>><<trauma -6>> <br><br> <<link [[Next|Lake Shallows Ice]]>><<endevent>><</link>> <br> <<else>> barging into you. <span class="red">The force sends you skidding to the ground.</span><<ggpain>><<gstress>><<pain 8>><<stress 6>> <br><br> The delinquents roar with laughter, so much that they almost slip up themselves. The <<person2>><<person>> grasps your arms, and starts dragging you across the ice. <br><br> <<link [[Next|Lake Skate Drag]]>><</link>> <br> <</if>><<effects>> <<set $rescued += 1>> The delinquents drag you further from shore, debating what to do with you and threatening to kick you with their ice skates if you don't play along. <<if playerIsPregnant() and playerAwareTheyArePregnant()>> You desperately hope it's just an empty threat, since their grasp on your arms prevents you from shielding your <<pregnancyBabyText "pc">> from any blows. You try to squirm free, to no avail. <</if>> <<gtrauma>><<trauma 6>> <br><br> <<if $syndromeeden gte 1 and $rng gte 76>> You hear a gunshot, distant, but clear across the open lake. You hear the bullet whistle through the air before <span class="red">thudding into the nearby ice.</span> <br><br> The trio stop in their tracks. "Was that a gun?" the <<person3>><<person>> asks. <br><br> A second gunshot answers. <span class="red">The bullet lands closer.</span> The ice explodes this time, throwing shards into the air. <br><br> "F-fuck this," the <<person4>><<person>> whimpers. <<He>> turns and skates the way <<he>> came. The others follow close behind. <br><br> <<tearful>> you rise to your feet. You peer in the direction the bullets came, but can't see your rescuer. They could be lurking anywhere along that tree line. <br><br> <<endevent>> <<link [[Next|Lake Depths Ice]]>><</link>> <br> <!-- Modified for Monster People --> <<elseif $syndromewolves gte 1 and $rng gte 51 and $wolfpacktrust gte 24>> <<person3>> "What's that?" the <<person>> says, pointing at a dark shape across the ice. <br><br> The <<person2>><<person>> peers at it. "It's getting closer," <<he>> says, voice betraying worry. <br><br> The third delinquent, a <<person4>><<person>> takes a step backwards. <span class="red">"It-it's a wolf,"</span> <<he>> stutters. The trio stand motionless for a moment, then, slipping more than once, turn and skate away. You're left alone on the ice. <br><br> <<endevent>><<npc "Black Wolf">> You hear rapid footsteps, then a warm tongue licks your face. It's the Black Wolf.<<lstress>><<stress -6>> <br><br> <<if $monster is 1>> "Humans. So crude. You belong with wolf." <<bHe>> watches the delinquents run, before turning and walking away. <<bHe>> looks at you over <<bhis>> shoulder. <<else>> <<bHe>> seems uninterested in pursuing the delinquents, instead walking back the way it came. It stops and looks over its shoulder. <</if>> <br><br> <<endevent>> <<link [[Go to the wolf cave (0:30)|Wolf Cave Clearing]]>><<pass 30>><</link>> <br> <<link [[Stay at the lake|Lake Depths Ice]]>><</link>> <br> <<else>> <span class="green">They're interrupted by a shout.</span> It's the <<person1>><<person>>, following across the ice. <<Hes>> not alone. <br><br> The delinquents hurl insults at the pursuers, but they're outnumbered. They skate away, leaving you lying on the ice. <br><br> <<generatey5>> <<tearful>> you rise to your feet. The <<person1>><<person>> and <<his>> friends arrive at your side. They're all a bit older than <<him>>. It's a <<person5>><<person>> who speaks. <br><br> "Heard you saved my li'l <<person1>><<if $pronoun is "m">>bro<<else>>sis<</if>>," <<person5>><<he>> says. "Good of you. Excuse me though." <<He>> pushes <<himself>> after the delinquents, and the other friends follow. The <<person1>><<person>> stays behind, and gives you a shy smile. Together, you return to shore.<<gcool>><<status 1>> <br><br> <<link [[Next|Lake Shallows Ice]]>><<endevent>><</link>> <br> <</if>><<effects>> There's no substitute for practice, but your presence is great for the <<persons>> confidence. You give <<him>> pointers, and offer an arm when <<he>> needs it. <<He>> doesn't seem quite so wobbly by the end. <br><br> <<link [[Next|Lake Shallows Ice]]>><<endevent>><</link>> <br><<effects>> "Thanks anyway," the <<person>> says, disappointed. <<He>> wobbles away. <br><br> <<link [[Next|Lake Shallows Ice]]>><<endevent>><</link>> <br><<effects>> <<if currentSkillValue('danceskill') gte 800>> You perform some tricks in front of the <<person>>. <<He>> watches, then points out the flaws in your technique. <<elseif currentSkillValue('danceskill') gte 400>> You skate in front of the <<person>>. <<He>> watches, then offers tips on how to improve your speed and balance. <<elseif currentSkillValue('danceskill') gte 100>> The skate in front of the <<person>>. <<He>> watches, then offers tips on how to improve your balance. <<else>> The <<person>> holds your arm as you skate, and gives you pointers. You're able to skate more adventurously than normal, knowing you aren't going to end up on your ass. <</if>> You learn a lot. <br><br> <<link [[Next|Lake Shallows Ice]]>><<endevent>><</link>> <br><<effects>> The <<person>> shrugs. "Suit yourself," <<he>> says. "Good luck." <<He>> skates away. <br><br> <<link [[Next|Lake Shallows Ice]]>><<endevent>><</link>> <br><<effects>> You shove the <<person>> away from you. <<He>> loses <<his>> footing, and lands on <<his>> back. You hear laughter from several directions. <br><br> <<if $rng gte 81>> Incensed, the <<person>> rises to <<his>> feet, and lunges. <br><br> <<link [[Next|Lake Skate Rape]]>><<set $molestationstart to 1>><<set $phase to 1>><</link>> <br> <<else>> Pride wounded, the <<person>> rises to <<his>> feet, and skates away. <br><br> <<link [[Next|Lake Shallows Ice]]>><</link>> <br> <</if>><<effects>> <<if $rng gte 61>> The <<person>> gropes and fondles you, then puts <<his>> hand over your mouth. <br><br> <<link [[Next|Lake Skate Rape]]>><<set $molestationstart to 1>><<set $phase to 0>><</link>> <br> <<else>> The <<person>> gropes and fondles you for a few moments, before skating off to find someone else to harass. <br><br> <<link [[Next|Lake Shallows Ice]]>><</link>> <br> <</if>><<effects>> <<if $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<maninit>> <<if $phase is 1>> <<set $enemyanger += 150>> <<else>> <<hand_gag 0 left>> <</if>> <<enable_rescue>> <</if>> <<effects>> <<effectsman>> <<alarmstate>> <<man>> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Lake Skate Rape Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Lake Skate Rape]]>><</link>></span><<nexttext>> <</if>><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<ejaculation>> <<He>> shoves you forward, and skates off to find someone else to harass. <br><br> <<tearful>> you steady yourself. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Lake Shallows Ice]]>><</link>> <br> <<elseif $enemyhealth lte 0>> You shove the <<person>> onto <<his>> ass. <<tearful>> you skate away. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Lake Shallows Ice]]>><</link>> <br> <<else>> <<set $rescued += 1>> The cry attracts attention. The <<person>> looks around, nervous. <<He>> shoves you forward and skates away. <br><br> <<tearful>> you steady yourself. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Lake Shallows Ice]]>><</link>> <br> <</if>><<effects>> You race after the <<person>>. <<He>> speeds up when <<he>> notices you following. <<if $danceSuccess>> <<if currentSkillValue('danceskill') gte 600>> You're able to keep up, <span class="green">and then overtake <<him>>.</span> You spin and wink. <<else>> Driven by the desire to win, you manage to keep up, <span class="green">and even overtake <<him>></span> You spin and wink. <</if>> <<gcool>><<status 1>> <br><br> <<link [[Next|Lake Shallows Ice]]>><<endevent>><</link>> <br> <<else>> <<if currentSkillValue('danceskill') gte 800>> <<Hes>> fast, <span class="red">too fast.</span> Realising you won't catch up, you slow to a stop.<<llcool>><<status -10>> <<else>> In your rush to catch up, <span class="red">you lose your balance.</span> You're left sprawled on the ice.<<gpain>><<gstress>><<lcool>><<pain 4>><<stress 6>><<status -1>> <</if>> <br><br> <<link [[Next|Lake Shallows Ice]]>><<endevent>><</link>> <br> <</if>><<effects>> <<if currentSkillValue('danceskill') gte 200>> You skate over. <<else>> You manage to wobble your way over. <</if>> <<Hes>> blushing. <br><br> <<if $speech_attitude is "meek">> "I-it's okay to be shy," you say. "But I saw you watching me." <<elseif $speech_attitude is "bratty">> "I saw you watching me," you say. "No need to be shy." <<else>> "There's no need to be shy," you say. <</if>> <<Hes>> already wearing ice skates. You hold out your hand. <<promiscuity1>> <<if currentSkillValue('danceskill') gte 200>> You help <<him>> across the ice. You have to steady <<him>> more than once when <<he>> slips. <<He>> laughs, embarrassed, but <<his>> nervousness abates. <br><br> <<else>> You're not much more experienced than <<him>>, and inevitably end up sprawled together on the ice. <<He>> laughs, <<his>> nervousness abated. <br><br> <</if>> You're a fair way onto the ice, well away from the other students. <br><br> <<if hasSexStat("promiscuity", 2)>> <<link [[Seduce|Lake Skate Seduce]]>><</link>><<promiscuous2>> <br> <</if>> <<link [[Help <<him>> back to shore|Lake Skate Shore]]>><</link>> <br><<effects>> <<set $seductiondifficulty to 4000>> <<seductioncheck>> <<seductionskilluptext>> <<seductionskilluse>> <<if currentSkillValue('danceskill') gte 200>> You press your body against the <<persons>>, and breathe on <<his>> neck. <<else>> You roll on top of the <<person>>, and breathe on <<his>> neck. <</if>> <<promiscuity2>> <<if $seductionrating gte $seductionrequired>> <<He>> shivers, <span class="green">and pulls you closer.</span> <br><br> <<link [[Next|Lake Skate Sex]]>><<set $sexstart to 1>><</link>> <br> <<else>> <<He>> shivers, <span class="red">but <<his>> nervousness returns,</span> and <<he>> looks away. <br><br> <<if currentSkillValue('danceskill') gte 200>> You help <<him>> back to shore. <<else>> You help <<him>> to <<his>> feet, and back to shore. <</if>> <<He>> looks like <<he>> wants to say something, but can't find the words. <br><br> <<link [[Next|Lake Shallows Ice]]>><</link>> <br> <</if>><<if $sexstart is 1>> <<set $sexstart to 0>> <<consensual>> <<set $consensual to 1>> <<neutral 1>> <<maninit>> <<set $enemytrust += 100>> <</if>> <<effects>> <<effectsman>> <<man>> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Lake Skate Sex Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Lake Skate Sex]]>><</link>></span><<nexttext>> <</if>><<set $outside to 0>><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<ejaculation>> <<He>> pants against the ice. <br><br> <<clotheson>> <<tearful>> you help <<him>> to shore. <<He>> gives you a parting kiss on the cheek. <br><br> <<endcombat>> <<link [[Next|Lake Shallows Ice]]>><</link>> <<elseif $enemyhealth lte 0>> You pull away from the <<person>>. <<He>> tries to follow, but slips on the ice. <br><br> <<tearful>> you make it some distance away. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Lake Shallows Ice]]>><</link>> <<else>> <<clotheson>> You help the <<person>> back to shore. <<He>> looks like <<he>> wants to say something, but can't find the words. <br><br> <<tearful>> you skate back onto the ice. <br><br> <<endcombat>> <<link [[Next|Lake Shallows Ice]]>><</link>> <</if>><<effects>> <<if currentSkillValue('danceskill') gte 200>> You help the <<person>> back to shore. <<He>> kisses your cheek before you part.<<ltrauma>><<trauma -6>> <br><br> <<else>> You help each other to your feet, and return to the shore. The <<person>> is still giggling. <<He>> kisses your cheek before you part.<<ltrauma>><<trauma -6>> <br><br> <</if>> <<link [[Next|Lake Shallows Ice]]>><<endevent>><</link>> <br><<set $outside to 0>><<set $location to "lake_ruin">><<set $bus to "lakeunderwater">><<underwater>><<effects>><<lakeeffects>> <<if $stress gte $stressmax and !$possessed>> <<passoutlake>> <<elseif $foresthunt gte 10>> <<foresthunt>> <<elseif npcCanHunt("Ivory Wraith") and $wraith.state and $wraith.hunt is 0 and $wraith.timer gte random(0, 10) and !$possessed>> <<wHunt "lake">> <<else>> <<if Weather.isFrozen("lake")>> You are beneath the lake. You swim beneath a crystal ceiling, between tall weeds. <<if Weather.dayState is "night">> <<if Weather.isSnow>> The ice is pitch black. <<elseif Weather.is("heavyClouds")>> The ice is black. <<else>> Pale moonlight spills through. <</if>> <<else>> <<if Weather.isSnow>> The ice is white. <<elseif Weather.is("heavyClouds")>> The ice is a dull grey. <<else>> Sunlight pierces through. <</if>> <</if>> <<else>> You are beneath the lake. You swim over dark silt and between tall weeds. <<if Weather.dayState is "night">> <<if Weather.precipitation is "rain">> The water is black. It dulls the sound of the rain above. <<elseif Weather.is("heavyClouds")>> The water is black. <<else>> The plants glisten in moonlight. <</if>> <<else>> <<if Weather.precipitation is "rain">> The water is dark. It dulls the sound of the rain above. <<elseif Weather.is("heavyClouds")>> The water is dark. <<else>> Sunlight pierces the gloom. <</if>> <</if>> <</if>> <<if !Time.schoolDay and Weather.isSnow and Weather.dayState is "day" and $mason_ice_lake gte 1>> You glimpse Mason through the plants. <</if>> <br><br> <<if $arousal gte $arousalmax>> <<orgasmLocation "underwater">> <</if>> <<if !Time.schoolDay and Weather.isSnow and Weather.dayState is "day" and $mason_ice_lake is undefined>> <<set $mason_ice_lake to 1>> <<npc Mason>><<person1>> A shape looms from the dark. Strong arms clutch you, pressing you against a sleek muscular body as you are carried back towards the light. <br><br> You're pushed onto the ice. The figure climbs after you. It's Mason, clad in a wetsuit. <<if $exposed gte 1>> <<He>> grabs a towel from a bag on the swimming dock, and wraps it around you. <<towelup>> <</if>> <<He>> shivers in the cold air, but seems more concerned about you. <br><br> "You shouldn't dive this time of year," <<he>> says. "It's dangerous." <br><br> <<link [[Reassure|Lake Mason Reassure]]>><</link>><<swimmingdifficulty 600 1000>> <br> <<link [[Thank|Lake Mason Thank]]>><<npcincr Mason love 1>><</link>><<glove>> <br> <<link [[Get angry|Lake Mason Angry]]>><<def 1>><<npcincr Mason love -1>><</link>><<llove>> <br> <<elseif !Time.schoolDay and Weather.isFrozen("lake") and Weather.dayState is "day" and $mason_ice_lake is 1 and random(1, 5) is 5>> <<npc Mason>><<person1>> Mason spots you, and speeds in your direction. <<He>> scoops you up in <<his>> arms, and kicks towards the light. You're pushed onto the ice. <br><br> <<if $exposed gte 1>> <<He>> grabs a towel from a bag on the swimming dock, and wraps it around you. <<towelup>> <</if>> <<He>> shivers in the cold air, but seems more concerned about you. <br><br> "I appreciate eagerness," <<he>> says. "But I meant what I said. It's dangerous. I can't let a student down there." <br><br> <<link [[Reassure|Lake Mason Reassure]]>><</link>><<swimmingdifficulty 600 1000>> <br> <<link [[Thank|Lake Mason Thank]]>><</link>> <br> <<link [[Get angry|Lake Mason Angry]]>><</link>> <br> <<else>> <<if $nextPassageCheck is "Lake Ruin">> <<swimicon>><span class="nextLink"><<link [[Swim inside ruin|Lake Ruin]]>><<wateraction>><</link>><<loxygen>></span> <<else>> <<swimicon>><<link [[Swim inside ruin|Lake Ruin]]>><<wateraction>><</link>><<loxygen>> <</if>> <br> <<if !Time.schoolDay and Weather.isSnow and Weather.dayState is "day">> <<set $lake_ice_broken to 1>> <</if>> <<if Weather.isFrozen("lake")>> <<if $lake_ice_broken is undefined>> <<swimicon "up">><<link [[Surface|Lake Underwater Ice]]>><</link>> <br> <<else>> <<swimicon "up">><<link [[Surface|Lake Depths Ice]]>><</link>> <br> <</if>> <<else>> <<swimicon "up">><<link [[Surface|Lake Depths]]>><<set $lakesurface to 1>><</link>> <br> <</if>> <</if>> <</if>><<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><<underwater>><<effects>> <<if $physiqueSuccess>> You smash your <<if pcAreArmsBound("both")>>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 pcAreArmsBound("both")>>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>><<underwater>><<effects>> <<if $willpowerSuccess>> 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>><<set $outside to 0>><<set $location to "lake_ruin">><<set $bus to "lake_ruin">><<underwater>><<effects>><<lakeeffects>> You are in the submerged ruin beneath the lake. Glowing purple lichen covers ancient walls. <<if $wraithPrison or $sciencelichenlake is 1 or $scienceproject is "won" or $scienceproject is "done">> A strange rune glimmers on a flat section of the wall. <</if>> <br><br> <<if $stress gte $stressmax and !$possessed>> <<passoutlake>> <<elseif $foresthunt gte 10>> <<foresthunt>> <<elseif npcCanHunt("Ivory Wraith") and $wraith.state and $wraith.hunt is 0 and $wraith.timer gte random(0, 10) and !$possessed>> <<wHunt "lake">> <<else>> <<if $arousal gte $arousalmax>> <<orgasmLocation "underwater">> <</if>> <<swimicon "down">><<link [[Swim deeper|Lake Ruin Deep]]>><<wateraction>><</link>><<loxygen>> <br> <<swimicon "up">><<link [[Swim towards the surface|Lake Underwater]]>><<wateraction>><</link>><<loxygen>> <br><br> <<if $sciencelichenknown is 1 and $sciencelichenlake isnot 1 and $scienceproject is "ongoing">> <<scienceicon "purple lichen">><<link [[Retrieve lichen for your science project|Lake Lichen]]>><<set $sciencelichenlake to 1>><<wateraction>><</link>><<loxygen>> <br> <</if>> <<if $nextPassageCheck is "Lake Ruin Prison Intro">> <<investigateicon>><span class="nextLink"><<link [[Inspect the rune|Lake Ruin Prison Intro]]>><<wateraction>><</link>><<loxygen>></span> <br> <<elseif $wraithPrison or $sciencelichenlake is 1 or $scienceproject is "won" or $scienceproject is "done">> <<investigateicon>><<link [[Inspect the rune|Lake Ruin Symbol]]>><<wateraction>><</link>><<loxygen>> <br> <</if>> <br> <</if>><<set $outside to 0>><<set $location to "lake_ruin">><<set $bus to "lake_ruin">><<underwater>><<effects>><<lakeeffects>> You run your hand over the carved symbol in the wall. Nothing happens. <br><br> <<if $wraithPrison>> You shiver, knowing what's on the other side. <br><br> <</if>> <<link [[Next|Lake Ruin]]>><</link>> <br><<set $outside to 0>><<set $location to "lake_ruin">><<set $bus to "lake_ruin_deep">><<underwater>><<effects>><<lakeeffects>> You are deep in the submerged ruin beneath the lake. Pots of different sizes fill the room. <br><br> <<if $stress gte $stressmax and !$possessed>> <<passoutlake>> <<elseif $foresthunt gte 10>> <<foresthunt>> <<elseif npcCanHunt("Ivory Wraith") and $wraith.state and $wraith.hunt is 0 and $wraith.timer gte random(0, 10) and !$possessed>> <<wHunt "lake">> <<else>> <<if $arousal gte $arousalmax>> <<orgasmLocation "underwater">> <</if>> <<lakeicon "pots">><<link [[Search pots|Lake Pots]]>><<wateraction>><</link>><<loxygen>> <br> <<if $nextPassageCheck is "Lake Ruin">> <<swimicon "up">><span class="nextLink"><<link [[Swim towards exit|Lake Ruin]]>><<wateraction>><</link>><<loxygen>></span> <<else>> <<swimicon "up">><<link [[Swim towards exit|Lake Ruin]]>><<wateraction>><</link>><<loxygen>> <</if>> <br><br> <<plinthroom>> <</if>><<set $outside to 0>><<set $location to "lake_ruin">><<underwater>><<effects>><<lakeeffects>> <<set $lakeruinkey to 2>><<wearProp "key" "bronze">> You hear the ancient mechanism creak and the door groans open. Beyond is a plinth, stood alone in a rubble-strewn room. <<if $museumAntiques.antiques.antiqueivorynecklace isnot "notFound">> You look around the barren room. You don't see anything besides the plinth. <<else>> Atop it sits an ivory necklace. It's studded with blue jewels. <</if>> <br><br> <<lakeicon "plinth">><<link [[Swim inside|Lake Ruin Plinth]]>><<handheldon>><</link>> <br><<set $outside to 0>><<set $location to "lake_ruin">><<underwater>><<effects>><<lakeeffects>> You grip the plinth, and pull your <<bottom>> against it. The instant you do, a red light blazes into life, illuminating the room. Previously unseen statues stare down at you from above. <br><br> <<if !(!$player.vaginaExist and playerIsPregnant())>> You jerk back, and convulse. The room shakes and trembles. A crack appears in the floor. It widens, letting in more of the red light. <<if numberOfEarSlime(true) gte 2>> You feel the slimes squirm from your ears. They vanish into the crevice. <<world_corruption "soft" 20>> <<else>> You feel the slime squirm from your ear. It vanishes into the crevice. <<world_corruption "soft" 10>> <</if>> <br><br> <<set $earSlime.corruption to 0>> <<if $slime_tf is 1>> <<set $slime_tf to 0>> <<set $physicalTransform to 0>> <</if>> <<if $player.sex is "f" and ["mixed", "impregnation"].includes($earSlime.focus) and $player.ballsExist>> <<set $player.ballsExist to false>> <</if>> <<if $parasite.left_ear.name is "slime">> <<removeparasite left_ear>> <</if>> <<if $parasite.right_ear.name is "slime">> <<removeparasite right_ear>> <</if>> <<set $noEarSlime to true>> <<if $settings.tentaclesEnabled>> The light fades, and all falls quiet. Yet you feel a presence. Something stayed behind. <br><br> Over a dozen tentacles curl up the side of the plinth, forming a prison around you. <br><br> <<link [[Next|Lake Ruin Sit Tentacles]]>><<set $molestationstart to 1>><</link>> <br> <<else>> <<link [[Next|Lake Ruin Plinth]]>><</link>> <br> <</if>> <<else>> Seconds after, and just as fast as before, it returns to normal. It seems that something's restraining itself. <<if playerAwareTheyArePregnant()>>You wonder if it has to do with your pregnancy.<</if>> <br><br> <<link [[Next|Lake Ruin Plinth]]>><</link>> <</if>><<if $molestationstart is 1>> <<set $molestationstart to 0>> <<set $combat to 1>> <<set $enemytype to "tentacles">> <<controlloss>> <<molested>> <<tentaclestart 16 16>> <</if>> <<statetentacles>> <<underwater>><<effects>> <<effectstentacles>> <<tentacles>> <<actionstentacles>> <<if $tentacles.active lte ($tentacles.max / 2)>> <span id="next"><<link [[Next|Lake Ruin Sit Tentacles Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Lake Ruin Sit Tentacles]]>><</link>></span><<nexttext>> <</if>><<underwater>><<effects>> The creature recoils from you and disappears into darkness. <<tearful>> you look around, but see no other threats. <<clotheson>> <<endcombat>> <<link [[Next|Lake Ruin Plinth]]>><<set $phase to 1>><</link>> <br><<set $outside to 0>><<set $location to "lake_ruin">><<underwater>><<effects>><<lakeeffects>> You are deep in the lake ruin, in a small room with a plinth. <<if $museumAntiques.antiques.antiqueivorynecklace is "notFound">> An ivory necklace sits atop it. It's studded with blue jewels. <</if>> <<set _leave to 1>> <<set _bmoon to Time.isBloodMoon()>> <<set _parasite to !!numberOfEarSlime(true)>> <<if _bmoon>> /* Display these on every blood moon entry */ <<if $wraith.hunt>> You sense the presence following you come to a stop. <span class="blue">It can't reach you in here.</span> <<set $wraith.hunt to 0>><<set $foresthunt to 0>><<set $wraith.timer += 5>> <</if>> Red moonlight filters down from cracks in the ceiling. There isn't much, but the plinth seems to glow where the light hits it. <br><br> <<if $moonEvent and !_parasite and $worn.genitals.name is "gold chastity belt">> /* Moon event if no parasites and has gold cb */ <<unset $moonEvent>><<set $worn.genitals.integrity *= 0.5>> You're drawn to the plinth, and feel an odd sense of peace.<<gggcontrol>><<control 50>> <br><br> <<set $phase to 1>> <</if>> <</if>> <<if _bmoon and _parasite>> /* Clear the possibility of the other moon event, but this event can be revisited if it is skipped */ <<unset $moonEvent>> You feel it pull to you. <br><br> <<lakeicon "plinth">><<link [[Sit on the plinth|Lake Ruin Sit]]>><</link>> <br> <<elseif $settings.tentaclesEnabled and $hallucinations gte 2 and !_bmoon>> You look around the barren room. You don't see anything besides the plinth<<if $museumAntiques.antiques.antiqueivorynecklace is "notFound">> and necklace<</if>>, but you hear a faint slithering sound. <span class="blue">Something's watching you.</span> <br><br> <<investigateicon>><<link [[Search|Lake Ruin Deep Offer]]>><</link>><<loxygen>> <br> <<elseif $settings.tentaclesEnabled and _bmoon and $phase isnot 1 and $museumAntiques.antiques.antiqueivorynecklace isnot "notFound">> <<set _leave to 0>> You feel the water stirring around you, growing more agitated as you look around. From the darkness, thinly illuminated by the red moonlight, tentacles lash out. <span class="red">Two of them wrap around your ankles, beginning to pull you further into the room!</span> <br><br> <<if !pcAreArmsBound("both") and $angel gte 4 and $angelBanish gte 1>> <<link [[Banish and escape|Lake Ruin Deep NonConsentacles Banish]]>><<angelBanishAction>><</link>><<angelBanishNote>> <br> <</if>> <<link [[Submit|Lake Ruin Deep NonConsentacles]]>><<set $molestationstart to 1>><</link>> <br> <<link [[Escape|Lake Ruin Deep Consentacles Leave]]>><</link>><<loxygen>><<swimmingdifficulty 600 1200>> <br> <<elseif _bmoon>> The water around you is eerily silent, and deathly still, the room barely illuminated in the red glow. <br><br> <<else>> The water sways with your movements in the dark room. <br><br> <</if>> <<if _leave>> <<if $museumAntiques.antiques.antiqueivorynecklace is "notFound">> <<icon "clothes/ivory_necklace.png">><<link [[Take the necklace|Lake Ruin Ivory]]>><<set $antiquemoney += 2000>><<museumAntiqueStatus "antiqueivorynecklace" "found">><<set $necklaceThief to "player">><</link>> <br> <</if>> <<swimicon "back">><<link [[Leave|Lake Ruin Deep]]>><<set $phase to 0>><</link>> <br> <</if>><<effects>><<wearProp "ivory necklace">> You lift the necklace from the plinth. The craftsmanship is masterful, and you get the feeling that this meant a lot to someone. <br><br> <<if C.npc["Ivory Wraith"].init is 1>> <<set C.npc["Ivory Wraith"].lust to 20>> <</if>> <<if !$schismTime>> <<set $schismTime to Time.date.timeStamp>> <<set $schismWeather to { name: Weather.name, temp: Weather.temperature, snow: V.weatherObj.snow }>> <</if>> <<if Time.isBloodMoon()>> You suddenly hear pounding on the walls all around you. <<if $wraith.seen gte 1>>A familiar<<else>>An unfamiliar<</if>> voice cries out, and it feels like something's grabbing at your arms and legs. You instinctively flail and push yourself backwards through the water. <<trauma 12>><<ggtrauma>> <br><br> It dies down after a few moments, leaving you shaken. <<if $wraith.hunt>> The dread slowly passes, and you no longer sense the presence hunting you. <span class="blue"><i>You're safe until the next blood moon.</i></span> <br><br> <</if>> <<if $wraith>> <<set $wraith.state to "">> <<clearWraith>> <<set $wraithSkip to true>> <</if>> <<tearful>> you exit the room. <<elseif $wraith.state>> You feel a twinge of dread as you look at your reflection in the blue gemstones. You look pale. <<stress 6>><<gstress>> <br><br> You decide not to linger, and leave the room with the necklace in hand. <<else>> You can see your reflection in the blue gemstones. This will fetch a high price. <</if>> <br><br> <<link [[Next|Lake Ruin Deep]]>><<handheldon>><</link>> <br><<set $outside to 0>><<set $location to "lake_ruin">><<underwater>><<effects>><<lakeeffects>> You search around for the source. Whatever it is, it sounds like it's behind you. No matter what direction you face, it's always behind you. <br><br> You sense a thirst. <br><br> <<if hasSexStat("deviancy", 4)>> <<lakeicon "plinth">><<link [[Offer yourself|Lake Ruin Deep Offer 2]]>><</link>><<loxygen>><<deviant4>> <br> <</if>> <<swimicon "back">><<link [[Leave|Lake Ruin Deep]]>><</link>> <br><<set $outside to 0>><<set $location to "lake_ruin">><<underwater>><<effects>><<lakeeffects>> <<if $museumAntiques.antiques.antiqueivorynecklace is "notFound">> You gingerly move the necklace aside. <</if>> <<if _topless and _bottomless>> You move to the plinth, then spread your arms and legs out, presenting your body to the thing in the room. <<else>> <<strip>> You move to the plinth, then strip naked and give a suggestive wiggle, trying to goad the presence. <</if>> <<deviancy4>> After a moment, you sense a number of tentacles approach you from behind. They prod you gently, testing your offer. Though underwater, your skin slickens at their touch. <br><br> Several of the tentacles begin to explore your body, trailing slime wherever they go. You feel two of them wrap around your ankles. <span class="lewd">Everywhere they make contact, a stimulating tingle electrifies your skin.</span> You are filled with an intense excitement as the tendrils slide up your thighs and towards your <<genitals>>. <<ggarousal>><<arousal 1500>> <br><br> <<link [[Continue|Lake Ruin Deep Consentacles]]>><<set $sexstart to 1>><</link>><<loxygen>> <br> <<link [[Escape|Lake Ruin Deep Consentacles Leave]]>><</link>><<loxygen>><<swimmingdifficulty 1 1000>>Sensing imminent danger, you decide not to take any risks and leave the room. <br><br> <<link [[Continue|Lake Ruin Deep]]>><</link>><<loxygen>> <br><<if $sexstart is 1>> <<set $sexstart to 0>> <<consensual>> <<set $consensual to 1>> <<set $enemytype to "tentacles">> <<neutral 1>> <<set $enemytrust += 100>> <<tentaclestart 6 8>> <</if>> <<statetentacles>> <<underwater>><<effects>> <<effectstentacles>> <<tentacles>> <<actionstentacles>> <<if $tentacles.active lte ($tentacles.max / 2)>> <span id="next"><<link [[Next|Lake Underwater Tentacles Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Lake Ruin Deep Consentacles]]>><</link>></span><<nexttext>> <</if>>Deciding you've had enough, you attempt to unravel yourself and leave the room. <br><br> <<if $swimmingSuccess>> <span class="green">You free your ankles and make your escape.</span> The tentacles grasp at you with increasing desperation. You narrowly avoid one shooting for your leg, and swim through the doorway. The tentacles protrude from the room and grope around the walls, but they refuse to chase you any further. They slink away. <<clotheson>> <br><br> <<link [[Continue|Lake Ruin Deep]]>><</link>><<loxygen>> <br> <<else>> You try to swim towards the doorway, <span class="red">but you're unable to free yourself.</span> The tentacles snaring your ankles drag you back into the centre of the room while the rest surround you from all sides. <br><br> <<link [[Next|Lake Ruin Deep NonConsentacles]]>><<set $molestationstart to 1>><</link>> <br> <</if>>You focus your mind on one of the abominations restraining your ankles, then make an intricate gesture with your hand. <span class="green">The tentacle shimmers and recoils violently,</span> releasing you and fleeing back into the darkness. <br><br> The other tentacle shudders and weakens, and you easily kick it away. Once free, you turn and swim for the entrance. A few more tentacles make half-hearted attempts to grab you, but you avoid them and swim through the doorway. <br><br> Once through, the tentacles give up the pursuit. <br><br> <<link [[Continue|Lake Ruin Deep]]>><</link>><<loxygen>> <br><<if $molestationstart is 1>> <<set $molestationstart to 0>> <<set $combat to 1>> <<set $enemytype to "tentacles">> <<controlloss>> <<molested>> <<tentaclestart 6 8>> <</if>> <<statetentacles>> <<underwater>><<effects>> <<effectstentacles>> <<tentacles>> <<actionstentacles>> <<if $tentacles.active lte ($tentacles.max / 2)>> <span id="next"><<link [[Next|Lake Underwater Tentacles Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Lake Ruin Deep NonConsentacles]]>><</link>></span><<nexttext>> <</if>><<set $outside to 0>><<set $location to "lake_ruin">><<set $bus to "lake_ruin_deep">><<underwater>><<effects>><<lakeeffects>> <<if $stress gte $stressmax and !$possessed>> <<passoutlake>> <<elseif $arousal gte $arousalmax>> <<orgasmLocation "underwater">> <<lakeicon "pots">><<link [[Search pots|Lake Pots]]>><<wateraction>><<handheldon>><</link>><<loxygen>> <br> <<swimicon "back">><<link [[Swim towards exit|Lake Ruin]]>><<wateraction>><<handheldon>><</link>><<loxygen>> <br><br> <<plinthroom>> <<elseif $foresthunt gte 10>> <<foresthunt>> <<else>> <<cleareventpool>> <<addinlineevent "ivory box" 20>> <<wearProp "ivory box">> You reach inside one of the pots, and find a small ivory box. It's sealed by a bronze lock. <br><br> <<if $historytrait gte 4>> The box itself is very old. It must be valuable. <br><br> <</if>> <<set $skulduggerydifficulty to 300>> <<lockicon "unlock">><<link [[Open it|Lake Ruin Box]]>><<wateraction>><<handheldon>><</link>><<skulduggerydifficulty>><<loxygen>> <br> <<if $historytrait gte 4>> <<antiqueicon "ivory_box">><<link [[Just take the box|Lake Ruin Deep]]>><<set $antiquemoney += 20>><<museumAntiqueStatus "antiquebox" "found">><<handheldon>><</link>> <br> <</if>> <<lakeicon "pots">><<link [[Search pots|Lake Pots]]>><<wateraction>><<handheldon>><</link>><<loxygen>> <br> <<swimicon "up">><<link [[Swim towards exit|Lake Ruin]]>><<wateraction>><<handheldon>><</link>><<loxygen>> <br><br> <<plinthroom>> <</addinlineevent>> <<if $settings.swarmsEnabled>> <<addinlineevent "swarm" 3>> You reach inside one of the pots. Swarms of small fish surge out, surrounding you. <br><br> <<link [[Next|Lake Swarm]]>><<set $molestationstart to 1>><</link>> <br> <</addinlineevent>> <</if>> <<addinlineevent "dust" `27 + (!$settings.swarmsEnabled ? 3 : 0)`>> You reach inside one of the pots. There's purple dust at the bottom. Your probing disturbs it, and it swirls around your arm. You feel heated. <<gstress>><<stress `!$settings.swarmsEnabled and random(30) gte 27 ? 6 : 3`>><<garousal>><<arousal 600>> <br><br> <<if $arousal gte $arousalmax>> <<orgasmLocation "underwater">> <<lakeicon "pots">><<link [[Search pots|Lake Pots]]>><<wateraction>><<handheldon>><</link>><<loxygen>> <br> <<swimicon "up">><<link [[Swim towards exit|Lake Ruin]]>><<wateraction>><<handheldon>><</link>><<loxygen>> <br><br> <<plinthroom>> <<else>> <<lakeicon "pots">><<link [[Search pots|Lake Pots]]>><<wateraction>><</link>><<loxygen>> <br> <<swimicon "up">><<link [[Swim towards exit|Lake Ruin]]>><<wateraction>><</link>><<loxygen>> <br><br> <<plinthroom>> <</if>> <</addinlineevent>> <<if $lakeruinkey is undefined>> <<addinlineevent "bronze key" 10>> <<wearProp "key" "bronze">> You reach inside one of the pots. You find a decaying bronze key. <<set $lakeruinkey to 1>> <br><br> <<lakeicon "pots">><<link [[Search pots|Lake Pots]]>><<handheldon>><<wateraction>><</link>><<loxygen>> <br> <<swimicon "up">><<link [[Swim towards exit|Lake Ruin]]>><<wateraction>><<handheldon>><</link>><<loxygen>> <br><br> <<plinthroom>> <</addinlineevent>> <</if>> <<addinlineevent "empty" 40>> <<rng>> <<if $rng gte 81>> You reach inside one of the pots. It's full of broken ceramics. <<elseif $rng gte 61>> You reach inside one of the pots. Something inside snaps at you. You pull your hand away in time, but it was close. <<gstress>><<stress 3>> <<elseif $rng gte 41>> You reach inside one of the pots. It's full of mud. <<elseif $rng gte 21>> You reach inside one of the pots. It's full of pebbles. <<else>> You reach inside one of the pots. It's empty. <</if>> <br><br> <<lakeicon "pots">><<link [[Search pots|Lake Pots]]>><<wateraction>><</link>><<loxygen>> <br> <<swimicon "up">><<link [[Swim towards exit|Lake Ruin]]>><<wateraction>><</link>><<loxygen>> <br><br> <<plinthroom>> <</addinlineevent>> <<runeventpool>> <</if>><<if $molestationstart is 1>> <<set $molestationstart to 0>> <<molested>> <<controlloss>> <<set $combat to 1>> <<set $enemytype to "swarm">> <<swarminit "fish" "container" "shaking" "shatter" "steady" 4 6>> <<set $swimdistance to 8>> <<set $water to 1>> <</if>> <<if $swimdistance gte 8>> You're caught in the middle of the swarm. <<elseif $swimdistance gte 2>> You're escaping the swarm. <<else>> You've almost escaped. <</if>> <<underwater>><<effects>><<swarmeffects>> <<swarm>> <<swarmactions>> <<if $stress gte $stressmax>> <span id="next"><<link [[Next|Lake Swarm Finish]]>><</link>></span><<nexttext>> <<elseif $swimdistance lte 0>> <span id="next"><<link [[Next|Lake Swarm Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Lake Swarm]]>><</link>></span><<nexttext>> <</if>><<set $outside to 0>><<set $location to "lake_ruin">><<underwater>><<effects>><<lakeeffects>> <<if $stress gte $stressmax>> It's all just too much for you. You pass out. <br><br> <<if $upperoff isnot 0>> <<upperruined>> <</if>> <<if $loweroff isnot 0>> <<lowerruined>> <</if>> <<if $underloweroff isnot 0>> <<underlowerruined>> <</if>> <<if $underupperoff isnot 0>> <<underupperruined>> <</if>> <<endcombat>> <<passoutlake>> <<else>> <<tearful>> you swim away from the swarms of fish, who stay near their pots. They disappear inside them. <br><br> <<clotheson>> <<endcombat>> <<lakeicon "pots">><<link [[Search pots|Lake Pots]]>><<wateraction>><</link>><<loxygen>> <br> <<swimicon "up">><<link [[Swim towards exit|Lake Ruin]]>><<wateraction>><</link>><<loxygen>> <br> <</if>><<set $outside to 0>><<set $location to "lake_ruin">><<underwater>><<effects>><<lakeeffects>> <<skulduggerycheck>> <<skulduggeryuse>> <<if $skulduggerysuccess is 1>> <<if $rng gte 96>> <<if random(1,100) gte 81>> <<wearProp "chastity">> You find a gold chastity belt. <<set $antiquemoney += 2000>><<museumAntiqueStatus "antiquegoldchastitybelt" "found">> <<set _goldchastity to true>> <br><br> <<else>> <<wearProp "gold necklace">> You find a gold necklace. <<set $antiquemoney += 500>><<museumAntiqueStatus "antiquegoldnecklace" "found">> <br><br> <</if>> <<else>> <<wearProp "silver ring">> You find a silver ring. <<set $antiquemoney += 30>><<museumAntiqueStatus "antiquesilverring" "found">> <br><br> <</if>> <<if $historytrait gte 4>> You take the empty box too. It belongs in a museum. <<set $antiquemoney += 20>><<museumAntiqueStatus "antiquebox" "found">> <br><br> <</if>> <<if $worn.genitals.name is "naked" and _goldchastity and playerBellySize() lte 7>> <<antiqueicon "chastity">><<link [[Wear it|Lake Gold Chastity Belt]]>><<wateraction>><<handheldon>><</link>><<loxygen>> <br> <</if>> <<lakeicon "pots">><<link [[Search pots|Lake Pots]]>><<handheldon>> <<if _goldchastity>> <<set $gold_chastity_held to true>> <</if>> <<wateraction>><</link>><<loxygen>> <br> <<swimicon "up">><<link [[Swim towards exit|Lake Ruin]]>><<handheldon>> <<if _goldchastity>> <<set $gold_chastity_held to true>> <</if>> <<wateraction>><</link>><<loxygen>> <br> <<else>> <<wearProp "ivory box">> You fail to pick the lock. <br><br> <<lockicon "unlock">><<link [[Try again|Lake Ruin Box]]>><<handheldon>><<wateraction>><</link>><<skulduggerydifficulty>><<loxygen>> <br> <<if $historytrait gte 4>> <<antiqueicon "ivory_box">><<link [[Just take the box|Lake Ruin Deep]]>><<handheldon>><<set $antiquemoney += 20>><<museumAntiqueStatus "antiquebox" "found">><</link>> <br> <</if>> <<lakeicon "pots">><<handheldon>><<link [[Search pots|Lake Pots]]>><<wateraction>><</link>><<loxygen>> <br> <<swimicon "up">><<link [[Swim towards exit|Lake Ruin]]>><<handheldon>><<wateraction>><</link>><<loxygen>> <br> <</if>><<set $outside to 0>><<set $location to "lake_ruin">><<underwater>><<effects>><<lakeeffects>> <<set $antiquemoney -= 2000>> You examine the gold chastity belt in your hands. You think you see a faint glow emanating from it. You wonder what it felt like having something so beautiful protecting your <<genitals 1>>. <br><br> You feel an urge to try it on. You wrap it around your waist. As it clicks shut you wonder if there's a key somewhere. <br><br> <<clothesstrip>> <<genitalswear 3>> <<earnFeat "Locked In Gold">> <<set $worn.genitals.origin to "Underwater Temple">> <<lakeicon "pots">><<link [[Search pots|Lake Pots]]>><<handheldon>><<wateraction>><<clotheson>><</link>><<loxygen>> <br> <<swimicon "up">><<link [[Swim towards exit|Lake Ruin]]>><<handheldon>><<wateraction>><<clotheson>><</link>><<loxygen>> <br><<set $outside to 0>><<set $location to "lake_ruin">><<underwater>><<effects>><<lakeeffects>> <<hallucinogen 180>><<wearProp "lichen" "purple">> The lichen crumbles at your touch, but you collect enough for your science project. <<if !$wraithPrison>>Where the lichen breaks, you notice a rune carved into the wall. <</if>> <br><br> <span class="gold">You can add the lichen you found to your project in your room or the school library.</span> <br><br> A warmth spreads through your fingers, up your arm and into the rest of your body. You feel light-headed. <br><br> <i>You've been afflicted by a hallucinogen. You'll have the Hallucinations and Severe Hallucinations traits until it wears off. High trauma or awareness will also cause hallucinations.</i> <br><br> <<generateWraith 1 true>> <<if $wraith.state isnot "">> <<rainWraith>> You suddenly feel yourself yanked away, and you come face to face with a beautiful pale figure. <<if $wraith.state is "haunt">> "<span class="wraith">The thief returns to pilfer again.</span>" <<else>> "<span class="wraith">Trespasser...</span>" <</if>> <br><br> <<initWraith "abomination">> <<He>> has a hand wrapped around your neck. <<set $NPCList[0].lefthand to "throat">><<set $neckuse to "hand">> <<if $wraith.gen is "abomination">> <<He>> raises <<his>> other hand, and a swarm of pale tendrils rise from the shadows. <<else>> Several more pairs of arms creep around you. <</if>> <br><br> <<if $wraith.state is "haunt" and Time.isBloodMoon()>> <<link [[Next|Wraith Caught]]>><<handheldon>><<set $wraith.exit to "lake_ruin">><</link>> <<else>> <<link [[Next|Wraith Underwater Rape]]>><<handheldon>><<set $molestationstart to 1>><</link>> <</if>> <br> <<else>> <<initWraith "man">> You hear whispers, and turn to see a beautiful pale figure floating before you. <<if $museumAntiques.antiques.antiqueivorynecklace isnot "notFound">> <<Hes>> naked and has a hand pressed to <<his>> neck, regarding you with rage and disgust. <<else>> <<Hes>> naked, save a necklace of ivory around <<his>> neck. <</if>> <<if $settings.tentaclesEnabled>> <<He>> raises <<his>> hand, and a mass of tendrils rise from the dark. They dart towards you. <br><br> <<link [[Next|Lake Underwater Tentacles]]>><<handheldon>><<set $molestationstart to 1>><</link>> <br> <<else>> <<He>> shouts something unintelligible, then lunges for you. <br><br> <<link [[Next|Lake Underwater Rape]]>><<handheldon>><<set $molestationstart to 1>><</link>> <br> <</if>> <</if>><<if $molestationstart is 1>> <<set $molestationstart to 0>> <<set $combat to 1>> <<set $enemytype to "tentacles">> <<controlloss>> <<molested>> <<tentaclestart 6 8>> <</if>> <<statetentacles>> <<underwater>><<effects>><<speechWraith>> <<effectstentacles>> <<tentacles>> <<actionstentacles>> <<if $tentacles.active lte ($tentacles.max / 2)>> <span id="next"><<link [[Next|Lake Underwater Tentacles Finish]]>><<set $phase2 to 1>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Lake Underwater Tentacles]]>><</link>></span><<nexttext>> <</if>><<underwater>><<effects>> The creature recoils from you and disappears into darkness. <<tearful>> you turn to the exit. When you look back, the pale figure has vanished. <<clotheson>> <<endcombat>> <<link [[Next|Lake Ruin]]>><<endWraith>><</link>> <br><<underwater>><<effects>> <<set _phase to $phase2>> <<if $bus is "lake_ruin_deep">> <<set _nextroom to "Lake Ruin Deep">> <<elseif $bus is "lake_ruin">> <<set _nextroom to "Lake Ruin">> <</if>> The creature recoils from you and disappears into darkness. <<tearful>> you turn to the exit. <<if _phase is 1>>When you look back, the pale figure has vanished.<</if>> <<clotheson>> <<endcombat>> <<if _phase is 1>><<endWraith>><</if>> <<link [[Next|_nextroom]]>><</link>> <br><<if $molestationstart is 1>> <<set $molestationstart to 0>> <<set $consensual to 0>> <<neutral 1>> <<controlloss>> <<molested>> <<maninit>> <</if>> <<underwater>><<effects>> <<effectsman>><<man>><<speechWraith>> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Lake Underwater Rape Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Lake Underwater Rape]]>><</link>></span><<nexttext>> <</if>><<set $outside to 1>><<set $location to "lake_ruin">><<underwater>><<effects>><<lakeeffects>> <<if $enemyhealth lte 0>> <<He>> recoils from you and disappears into darkness. <<tearful>> you turn to the exit. <br><br> <<clotheson>> <<endcombat>> <<else>> <<silently>><<ejaculation>><</silently>> <<He>> giggles and disappears into darkness. <<tearful>> you turn to the exit. <br><br> <<clotheson>> <<endcombat>> <</if>> <<link [[Next|Lake Ruin]]>><<endWraith>><</link>> <br><<if $molestationstart is 1>> <<set $molestationstart to 0>> <<molested>> <<controlloss>> <<set $combat to 1>> <<set $enemytype to "swarm">> <<if $settings.slimesEnabled and Time.isBloodMoon()>> <<swarminit "pale slimes" "slime mass" "moving towards you" "encircle you" "fend off" 8 0>> <<else>> <<swarminit "fish" "swarm" "moving towards you" "encircle you" "fend off" 1 7>> <</if>> <<set $swimdistance to 12>> <<set $water to 1>> <</if>> <<if $swimdistance gte 8>> You're caught in the middle of the swarm. <<elseif $swimdistance gte 2>> You're escaping the swarm. <<else>> You've almost escaped. <</if>> <<water>><<effects>><<swarmeffects>> <<swarm>> <<swarmactions>> <<if $stress gte $stressmax>> <span id="next"><<link [[Next|Lake Depths Swarm Finish]]>><</link>></span><<nexttext>> <<elseif $swimdistance lte 0>> <span id="next"><<link [[Next|Lake Depths Swarm Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Lake Depths Swarm]]>><</link>></span><<nexttext>> <</if>><<effects>> <<if $stress gte $stressmax>> It's all just too much for you. You pass out. <br><br> <<if $upperoff isnot 0>> <<upperruined>> <</if>> <<if $loweroff isnot 0>> <<lowerruined>> <</if>> <<if $underloweroff isnot 0>> <<underlowerruined>> <</if>> <<if $underupperoff isnot 0>> <<underupperruined>> <</if>> <<endcombat>> <<passoutlake>> <<else>> <<tearful>> you escape the swarms of <<if $settings.slimesEnabled and Time.isBloodMoon()>>pale slimes<<else>>fish<</if>>. They don't pursue. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Lake Depths]]>><<set $eventskip to 1>><</link>> <br> <</if>><<widget "lakeeffects">> <<set $laketeenspresent to teensPresentCheck("lake")>> <<if Weather.precipitation is "none" and Time.hour gte 18>> <<set $laketeensfire to 1>> <<else>> <<set $laketeensfire to 0>> <</if>> <<wPersist "forest">><<getTarget true>> <</widget>> <<widget "destinationlake">> <<if $bus is "lakeshallows">> <<link [[Next|Lake Shallows]]>><</link>> <br> <<elseif $bus is "lakedepths">> <<link [[Next|Lake Depths]]>><</link>> <br> <<elseif $bus is "lakefirepit">> <<link [[Next|Lake Firepit]]>><</link>> <br> <<elseif $bus is "lakefishingrock">> <<link [[Next|Lake Fishing Rock]]>><</link>> <br> <<elseif $bus is "lakecampsite">> <<link [[Next|Lake Campsite]]>><</link>> <br> <<elseif $bus is "lakewaterfall">> <<link [[Next|Lake Waterfall]]>><</link>> <br> <<elseif $bus is "lakebus">> <<link [[Next|Lake Bus]]>><</link>> <br> <<else>> <<link [[Next|Lake Shore]]>><</link>> <br> <</if>> <</widget>> <<widget "passoutlake">> <<if isPregnancyEnding()>> <<pregnancyPassout "lake">> <<else>> You've pushed yourself too much. <br><br> <<passout>> <<if $exposed gte 1 and $syndromeeden is 1 and random(1,2) is 2>> <<link [[Next|Eden Passout Lake Rescue]]>><</link>> <<elseif C.npc.Mason.init is 1 and !Time.schoolDay and Weather.precipitation is "rain" and Time.dayState is "day" and random(1,2) is 1>> <<link [[Everything fades to black...|Mason CPR]]>><</link>> <<elseif dangerEvent()>> <<if $laketeenspresent is 1 and !Weather.isSnow>> <<link [[Next|Lake Mermaid]]>><</link>> <br> <<else>> <<link [[Next|Lake Ritual]]>><</link>> <br> <</if>> <<else>> <<set $foresthunt to 0>> <<ambulance>> <</if>> <<pass 1 hour>> <<trauma 6>><<set $stress -= 2000>> <</if>> <</widget>> <<widget "lakejourney">> <<beastNEWinit 1 wolf>> Someone screams. You turn with the others to see that a <<beasttype>> has emerged from the trees. There are a few more screams, and people start backing away. <br><br> <<if $monster is 1>> <<bHis>> nude body leaves little to the imagination, <<bhis>> genitals on full display to the crowd. <<bHe>> makes no attempt to cover <<bhimself>>, several people shielding their eyes while others laugh nervously. <br><br> <</if>> <<bHe>> stands some way apart and watches. <br><br> <!-- Modified for Monster People --> <<if hasSexStat("deviancy", 2) and ($monster is 1 or $settings.bestialityEnabled)>> <<link [[Deal with <<bhim>>|Lake Wolf Sex]]>><<set $sexstart to 1>><</link>><<deviant2>><<status 2>><<gcool>> <br> <</if>> <<link [[Run away|Lake Wolf Run]]>><<stress 3>><</link>><<gstress>> <br> <</widget>> <<widget "lakereturnjourney">> <<if $laketeenspresent is 1 and Time.hour is 20>> It's getting late, and the shadows of the forest grow longer. People are preparing to return to town. No one wants to be left to travel alone. <br><br> <<if $earSlime.forcedCommando isnot undefined and $worn.under_lower.name isnot "naked">> <<elseif $exposed lte 0>> <<entertownicon>><<link [[Go with them (0:30)|Lake Return Journey]]>><<set $foresthunt to 0>><<pass 30>><</link>> <br><br> <</if>> <</if>> <</widget>> <<widget "eventlakesafe">> <<if random(1, 20) is 1 and !$possessed>> <<eventAmbient>> <</if>> <</widget>> <<widget "eventlakewater">> <<if npcCanHunt("Ivory Wraith") and $wraith.state and $wraith.hunt is 0 and $wraith.timer gte random(0, 10)>> <<wHunt "lake">> <<elseif $bus is "lakeshallows">> <<if $laketeenspresent is 1>> <<generatey1>><<person1>> A <<person>> watches you from the bank. <br><br> <<link [[Wave (0:01)|Lake Wave]]>><<stress -2>><<pass 1>><</link>><<lstress>> <br> <<link [[Ignore|Lake Shallows]]>><<endevent>><<set $eventskip to 1>><</link>> <br> <<if $player.gender_appearance is "f" and hasSexStat("exhibitionism", 3)>> <<link [[Flash|Lake Flash]]>><</link>><<exhibitionist3>> <br> <</if>> <<else>> Your leg gets tangled in some weeds. It takes a few minutes of struggling to free yourself. <<gtiredness>><<tiredness 2>> <br><br> <<pass 3>> <<link [[Next|Lake Shallows]]>><<set $eventskip to 1>><</link>> <br> <</if>> <<else>> <<if $rng gte 91 and Weather.precipitation is "rain" and $settings.bestialityEnabled and $settings.voreEnabled and $hallucinations gte 2 and $controlled is 0>> Something large surges through the water beneath you. A gaping maw grips your thighs. <br><br> <<link [[Next|Lake Vore]]>><<set $molestationstart to 1>><</link>> <br> <<elseif $rng gte 81 and $settings.swarmsEnabled>> <<if $settings.slimesEnabled and Time.isBloodMoon()>> The water is agitated. Swarms of pale slimes encircle you. <<else>> The water is agitated. Swarms of small fish encircle you. <</if>> <br><br> <<link [[Next|Lake Depths Swarm]]>><<set $molestationstart to 1>><</link>> <br> <<else>> <<if Time.dayState is "night" and Weather.precipitation is "rain">> Something brushes your leg and startles you. You look beneath the dark and violent water, but can't see anything. You feel strange. <<garousal>><<arousal 600>><<gstress>><<stress 6>> <br><br> <<else>> Something brushes your leg and startles you. You look beneath the water, but can't see anything. <<garousal>><<arousal 600>><<gstress>><<stress 6>> <br><br> <</if>> <<link [[Next|Lake Depths]]>><<set $eventskip to 1>><</link>> <br> <</if>> <</if>> <</widget>> <<widget "eventlakeice">> <<rng>> <<if npcCanHunt("Ivory Wraith") and $wraith.state and $wraith.hunt is 0 and $wraith.timer gte random(0, 10)>> <<wHunt "lake">> <<elseif $rng gte 81>> <<dancedifficulty 1 1000 true>> <<if $danceSuccess>> The wind picks up, almost knocking you over, <span class="green">but you manage to keep your footing.</span> <<else>> The wind picks up, <span class="red">and you lose your footing,</span> slipping on the ice. <<if playerIsPregnant() and playerAwareTheyArePregnant()>> Your hands and knees hurt from the hard landing, but at least you were able to protect your <<pregnancyBabyText "pc">>. <</if>> <<gstress>><<gpain>><<stress 6>><<pain 4>> <</if>> <br><br> <<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 students 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]]>><<pass 10>><</link>> <br> <<link [[Walk normally|Lake Ice Normal]]>><</link>> <br> <<elseif $rng gte 21>> <<if Weather.precipitation is "snow">> The snow falls heavy, and conceals the trees around the lake. <<if currentSkillValue('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 Time.dayState is "night">> <<if Time.isBloodMoon()>> 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 Time.dayState is "night">> The surrounding trees are almost invisible in the dark.<<gstress>><<stress 6>> <br><br> <<else>> <<beastNEWinit 1 fox>> You see a <<beasttype>> rummaging in the dirt at the lake's edge. <<bHis>> ears perk, and <<bhe>> bounds between the trees. <br><br> <<endevent>> <</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">><<llcool>><</if>><<gstress>> <br> <<link [[Try to stay upright|Lake Ice Stay]]>><</link>><<dancedifficulty 1 600>> <br> <</if>> <</widget>> <<widget "destination_lake_ice">> <<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>> <</widget>> <<widget "eventlake">> <<if npcCanHunt("Ivory Wraith") and $wraith.state and $wraith.hunt is 0 and $wraith.timer gte random(0, 10)>> <<wHunt "lake">> <<elseif $rng gte 81>> <!-- Modified for Monster People --> <<beastNEWinit 1 boar>> You see a <<beasttype>> rifling through litter at the base of a tree. <<bHe>> spots you. <br><br> <<if $monster is 1 or $settings.bestialityEnabled>> <<link [[Stand your ground|Lake Boar Stand]]>><</link>> <br> <<link [[Run|Lake Boar Run]]>><</link>><<athleticsdifficulty>> <br> <<else>> You turn and run into the forest. Branches tear at you until you trip and collapse in a heap. You think you got away, but your heart continues to pound.<<beastescape>> <br><br> <<endevent>> <<set $eventskip to 1>> <<destinationlake>> <</if>> <<elseif $rng gte 51>> <<if $wraith.state or $hallucinations gte 1>> You thought you heard someone call your name, but there's no one there. <<gtrauma>><<trauma 3>> <<else>> The wind makes a low howl as it passes through the trees. <<if $awarelevel gte 1>>For a moment, it looks as though the trees are all blowing away from the lake.<</if>> <<gstress>><<stress 1>> <</if>> <br><br> <<set $eventskip to 1>> <<destinationlake>> <<else>> A pair of eyes stares at you from between the trees, then vanishes. <<gstress>><<stress 6>> <br><br> <<set $eventskip to 1>> <<destinationlake>> <</if>> <</widget>> <<widget "meditateoptions">> <<link [[Still your thoughts (1:00)|Lake Meditate]]>><<pass 60>><<set $phase to 2>><<willpower 1>> <<if $willpower gte (($willpowermax / 7) * 6)>> <<stress -6>><<awareness -2>><<arousal -1200>> <<elseif $willpower gte (($willpowermax / 7) * 5)>> <<stress -6>><<awareness -1>><<arousal -1000>> <<elseif $willpower gte (($willpowermax / 7) * 4)>> <<stress -5>><<awareness -1>><<arousal -800>> <<elseif $willpower gte (($willpowermax / 7) * 3)>> <<stress -4>><<awareness -1>><<arousal -600>> <<elseif $willpower gte (($willpowermax / 7) * 2)>> <<stress -3>><<awareness -1>><<arousal -500>> <<elseif $willpower gte (($willpowermax / 7) * 1)>> <<stress -2>><<awareness -1>><<arousal -400>> <<else>> <<stress -1>><<awareness -1>><<arousal -300>> <</if>> <</link>><<lawareness>><<gwillpower>><<lstress>><<larousal>> <br> <<if insecurityExists("penis_small") and $daily.lakeMeditate isnot 1>> <<link [[Meditate on your small penis (1:00)|Lake Meditate]]>><<pass 60>><<set $phase to $player.penissize lt 0 ? 4 : 5>><<willpower 1>><<set $daily.lakeMeditate to 1>> <<if $willpower gte (($willpowermax / 7) * 6)>> <<stress 5>><<acceptance "penis_small" 20>> <<elseif $willpower gte (($willpowermax / 7) * 5)>> <<stress 5>><<acceptance "penis_small" 18>> <<elseif $willpower gte (($willpowermax / 7) * 4)>> <<stress 6>><<acceptance "penis_small" 16>> <<elseif $willpower gte (($willpowermax / 7) * 3)>> <<stress 7>><<acceptance "penis_small" 14>> <<elseif $willpower gte (($willpowermax / 7) * 2)>> <<stress 8>><<acceptance "penis_small" 12>> <<elseif $willpower gte (($willpowermax / 7) * 1)>> <<stress 10>><<acceptance "penis_small" 10>> <<else>> <<stress 12>><<acceptance "penis_small" 8>> <</if>> <</link>><<gstress>><<gwillpower>><<gacceptance>> <br> <</if>> <<if insecurityExists("penis_big") and $daily.lakeMeditate isnot 1>> <<link [[Meditate on your big penis (1:00)|Lake Meditate]]>><<pass 60>><<set $phase to 6>><<willpower 1>><<set $daily.lakeMeditate to 1>> <<if $willpower gte (($willpowermax / 7) * 6)>> <<stress 5>><<acceptance "penis_big" 20>> <<elseif $willpower gte (($willpowermax / 7) * 5)>> <<stress 5>><<acceptance "penis_big" 18>> <<elseif $willpower gte (($willpowermax / 7) * 4)>> <<stress 6>><<acceptance "penis_big" 16>> <<elseif $willpower gte (($willpowermax / 7) * 3)>> <<stress 7>><<acceptance "penis_big" 14>> <<elseif $willpower gte (($willpowermax / 7) * 2)>> <<stress 8>><<acceptance "penis_big" 12>> <<elseif $willpower gte (($willpowermax / 7) * 1)>> <<stress 10>><<acceptance "penis_big" 10>> <<else>> <<stress 12>><<acceptance "penis_big" 8>> <</if>> <</link>><<gstress>><<gwillpower>><<gacceptance>> <br> <</if>> <<if insecurityExists("breasts_small") and $daily.lakeMeditate isnot 1>> <<link [[Meditate on your small breasts (1:00)|Lake Meditate]]>><<pass 60>><<set $phase to $player.breastsize ? 7 : 8>><<willpower 1>><<set $daily.lakeMeditate to 1>> <<if $willpower gte (($willpowermax / 7) * 6)>> <<stress 5>><<acceptance "breasts_small" 20>> <<elseif $willpower gte (($willpowermax / 7) * 5)>> <<stress 5>><<acceptance "breasts_small" 18>> <<elseif $willpower gte (($willpowermax / 7) * 4)>> <<stress 6>><<acceptance "breasts_small" 16>> <<elseif $willpower gte (($willpowermax / 7) * 3)>> <<stress 7>><<acceptance "breasts_small" 14>> <<elseif $willpower gte (($willpowermax / 7) * 2)>> <<stress 8>><<acceptance "breasts_small" 12>> <<elseif $willpower gte (($willpowermax / 7) * 1)>> <<stress 10>><<acceptance "breasts_small" 10>> <<else>> <<stress 12>><<acceptance "breasts_small" 8>> <</if>> <</link>><<gstress>><<gwillpower>><<gacceptance>> <br> <</if>> <<if insecurityExists("breasts_big") and $daily.lakeMeditate isnot 1>> <<link [[Meditate on your big breasts (1:00)|Lake Meditate]]>><<pass 60>><<set $phase to 9>><<willpower 1>><<set $daily.lakeMeditate to 1>> <<if $willpower gte (($willpowermax / 7) * 6)>> <<stress 5>><<acceptance "breasts_big" 20>> <<elseif $willpower gte (($willpowermax / 7) * 5)>> <<stress 5>><<acceptance "breasts_big" 18>> <<elseif $willpower gte (($willpowermax / 7) * 4)>> <<stress 6>><<acceptance "breasts_big" 16>> <<elseif $willpower gte (($willpowermax / 7) * 3)>> <<stress 7>><<acceptance "breasts_big" 14>> <<elseif $willpower gte (($willpowermax / 7) * 2)>> <<stress 8>><<acceptance "breasts_big" 12>> <<elseif $willpower gte (($willpowermax / 7) * 1)>> <<stress 10>><<acceptance "breasts_big" 10>> <<else>> <<stress 12>><<acceptance "breasts_big" 8>> <</if>> <</link>><<gstress>><<gwillpower>><<gacceptance>> <br> <</if>> <<if insecurityExists("pregnancy") and $daily.lakeMeditate isnot 1>> <<set _pregnancyLink to (playerAwareTheyArePregnant() ? "Meditate on your pregnant belly (1:00)" : "Meditate on your pregnant looking belly (1:00)")>> <<link [[_pregnancyLink|Lake Meditate]]>><<pass 60>><<set $phase to 10>><<willpower 1>><<set $daily.lakeMeditate to 1>> <<if $willpower gte (($willpowermax / 7) * 6)>> <<stress 5>><<acceptance "pregnancy" 20>> <<elseif $willpower gte (($willpowermax / 7) * 5)>> <<stress 5>><<acceptance "pregnancy" 18>> <<elseif $willpower gte (($willpowermax / 7) * 4)>> <<stress 6>><<acceptance "pregnancy" 16>> <<elseif $willpower gte (($willpowermax / 7) * 3)>> <<stress 7>><<acceptance "pregnancy" 14>> <<elseif $willpower gte (($willpowermax / 7) * 2)>> <<stress 8>><<acceptance "pregnancy" 12>> <<elseif $willpower gte (($willpowermax / 7) * 1)>> <<stress 10>><<acceptance "pregnancy" 10>> <<else>> <<stress 12>><<acceptance "pregnancy" 8>> <</if>> <</link>><<gstress>><<gwillpower>><<gacceptance>> <br> <</if>> <<link [[Observe your thoughts (1:00)|Lake Meditate]]>><<pass 60>><<set $phase to 3>><<willpower 1>> <<if $willpower gte (($willpowermax / 7) * 6)>> <<stress 5>><<awareness 2>> <<elseif $willpower gte (($willpowermax / 7) * 5)>> <<stress 5>><<awareness 1>> <<elseif $willpower gte (($willpowermax / 7) * 4)>> <<stress 6>><<awareness 1>> <<elseif $willpower gte (($willpowermax / 7) * 3)>> <<stress 7>><<awareness 1>> <<elseif $willpower gte (($willpowermax / 7) * 2)>> <<stress 8>><<awareness 1>> <<elseif $willpower gte (($willpowermax / 7) * 1)>> <<stress 10>><<awareness 1>> <<else>> <<stress 12>><<awareness 1>> <</if>> <</link>><<gawareness>><<gstress>><<gwillpower>> <br> <<link [[Stop|Lake Fishing Rock]]>><</link>> <br> <</widget>> <<widget "lakeclothes">> <<if !$possessed>> <br> <<storeactions "lakeshore">> <<wardrobeSelection true>> <<set _store_location to "lakeshore">> <<storeon _store_location "check">> <<if _store_check is 1>> <<set _clothes to clothingInStorage(_store_location)>> <<if _clothes.length gt 0>> <<if _clothes.length gt 2>> Your clothes are lying on the ground behind a rock. <br> <<elseif _clothes.length is 2>> Your _clothes[0].name and _clothes[1].name are lying on the ground behind a rock. <br> <<else>> Your _clothes[0].name is lying on the ground behind a rock. <br> <</if>> <<clothingicon _clothes[0] _clothes[0].slot>><<link [[Put on clothes|$passage]]>><<set $eventskip to 1>><<storeload _store_location>><</link>> <br><br> <</if>> <</if>> //Swimming sets:// <br> <<listswimoutfits $wardrobe_location _store_location true>> <br> <<unset $wearoutfittext>> <</if>> <</widget>> <<widget "destinationlakeruin">> <<switch $bus>> <<case "lakeunderwater">> <<link [[Next|Lake Underwater]]>><<endevent>><<set $eventskip to 1>><</link>> <<case "lake_ruin">> <<link [[Next|Lake Ruin]]>><<endevent>><<set $eventskip to 1>><</link>> <<case "lake_ruin_deep">> <<link [[Next|Lake Ruin Deep]]>><<endevent>><<set $eventskip to 1>><</link>> <<case "lake_ruin_prison">> <<link [[Next|Lake Ruin Prison]]>><<endevent>><<set $eventskip to 1>><</link>> <<default>> <<link [[Next|Lake Ruin Deep]]>><<endevent>><<set $eventskip to 1>><</link>> <</switch>> <br> <</widget>> <<widget "halloween_lake_invite">> <<set $halloween_lake to 1>> <<generates1>><<generates2>>You pass a <<person1>><<person>> <<if $location is "school">> with a stack of flyers tucked under <<his>> arm. <<else>> toting a cooler over <<his>> shoulder. <</if>> At <<his>> side, a <<person2>><<person>> is deep in a phone call. <<He>> mentions a Halloween party. <br><br> <<link [[Enquire|Lake Halloween Invite Inquire]]>><</link>> <br> <<link [[Ignore|Lake Halloween Invite Ignore]]>><</link>> <br> <</widget>> <<widget "plinthroom">> There's an ancient door opposite the entrance. <<if $lakeruinkey isnot 2>> It's closed. <<else>> It's open. <</if>> <br> <<if $lakeruinkey is 1>> <<lockicon "bronze key">><<link [[Use bronze key|Lake Ruin Door]]>><<wateraction>><</link>><<loxygen>> <br> <</if>> <<if $lakeruinkey is 2>> <<lakeicon "plinth">><<link [[Swim inside plinth room|Lake Ruin Plinth]]>><<wateraction>><</link>><<loxygen>> <br> <</if>> <</widget>><<effects>> <<set $settings.tentaclesEnabled to true>> <span class="green">You steel your mind, and focus on the portal.</span> A mental barrier inside you breaks. <br><br> <i><span class="lewd">Tentacles are now enabled.</span></i> <br><br> <<link [[Next|Tentacle Forest Entrance]]>><<set $tentacleEntrance to "hookah">><<endevent>><</link>> <br><<location "tentworld">><<set $outside to 0>><<effects>> <<undress "hookah">> <<set $tentacle_forest_lurker to []>> <<set $tentacle_forest_time to 0>> You awaken in a clearing, surrounded by giant tentacles. There are paths between them, snaking out of sight. <br><br> A warm breeze makes your hair stand on end. <span class="lewd">Your clothes are missing.</span> <br><br> <<if $arousal gte 6000>> <<set $arousal to 6000>> <</if>> <span class="red">An orgasm here could be dangerous.</span> <br><br> <<link [[Next|Tentacle Forest]]>><</link>> <br><<set $bus to "tentacle_forest_main">><<effects>> You are in the tentacle forest, in a clearing surrounded by giant tentacles, packed tight. Two viable paths lead away, one ascending, one descending. <br><br> <<tentacle_forest_safe_orgasm>> <<tentacle_forest_time>> <br><br> <<if $tentacle_forest_time gte 60>> <<tentacle_forest_end_scene>> <<elseif $stress gte $stressmax>> <<tentacle_forest_stress_scene>> <<elseif $arousal gte 10000 and !$tentacle_forest_lurker.includes("defeated")>> <<tentacle_forest_orgasm_scene>> <<else>> <<link [[Ascend (0:05)|Tentacle Forest Pool]]>><<tentacle_forest_pass 5>><</link>><<note "Move deeper into the forest" "lblue">> <br> <<link [[Descend (0:05)|Tentacle Forest Stream]]>><<tentacle_forest_pass 5>><</link>><<note "Move deeper into the forest" "lblue">> <br><br> <<link [[Climb (0:05)|Tentacle Forest Climb]]>><<tentacle_forest_pass 5>><</link>><<willpowerdifficulty 1 1200>> <br><br> Strange fruits hang from the thinner branches, within reach. <br> <<link [[Eat (0:15)|Tentacle Forest Hands]]>><<tentacle_forest_pass 15>><</link>><<note "+ Hand skill?" "blue">> <br><br> <<link [[Wake up|Tentacle Forest Wake]]>><</link>> <</if>><<effects>> You think about the hookah parlour, and notice you can feel two bodies. One here in the tentacle forest, another lying on a cushion. <br><br> <<tentacle_forest_end_scene>><<effects>> You enter a cave beneath the forest through a fissure in the roof, and land on your <<bottom>> in a shallow pool of pink fluid. <br><br> <<if $tentacle_forest_lurker.includes("defeated")>> You struggle to your feet. <span class="green">No creature emerges to greet you.</span> You climb the wall, and escape through a fissure in the ceiling. <br><br> <<link [[Next|Tentacle Forest]]>><</link>> <br> <<else>> A bulbous creature the size of a car squirms across the ceiling. It has no eyes, nor any other outward feature, save a gigantic maw. A large tongue emerges, tastes the air. The creature <span class="purple">lurches in your direction.</span> <br><br> <<if !$tentacle_forest_lurker.includes("hide")>> <<set $skulduggerydifficulty to 500>> <<link [[Hide under the fluid|Tentacle Forest Orgasm Hide]]>><<set $skulduggerydifficulty to 500>><</link>><<skulduggerydifficulty 500>> <br> <</if>> <<if !$tentacle_forest_lurker.includes("run")>> <<link [[Run|Tentacle Forest Orgasm Run]]>><</link>><<athleticsdifficulty 1 800>> <br> <</if>> <<if !$tentacle_forest_lurker.includes("scare")>> <<link [[Scare|Tentacle Forest Orgasm Scare]]>><</link>><<willpowerdifficulty 1 800>> <br> <</if>> <<set $skulduggerydifficulty to 1000>> <<link [[Lay an ambush|Tentacle Forest Orgasm Ambush]]>><<set $skulduggerydifficulty to 1000>><</link>><<skulduggerydifficulty>> <br> <</if>><<effects>> You dive beneath the fluid, hoping it will mask your scent. <br><br> <<skulduggerycheck>> <<if $skulduggerysuccess is 1>> The creature drops from the ceiling, landing in the thick liquid and sending a wave that lifts you, <span class="green">but you remain submerged.</span> <br><br> You hear the creature squirm away, but hold your breath for a while longer to be on the safe side. <br><br> <<skulduggeryuse>> <i>The creature won't be fooled by that a second time. Another orgasm could be dangerous.</i> <<set $tentacle_forest_lurker.pushUnique("hide")>> <br><br> You emerge from the goop, and look around. A slope leads up one of the rocky walls, leading to a crack in the ceiling. You climb it, and emerge in the tentacle forest. <br><br> <<link [[Next|Tentacle Forest]]>><</link>> <br> <<else>> The creature drops from the ceiling, landing in the thick liquid and sending a wave that <span class="red">lifts you clear from the goop.</span> The creature picks up your scent, and heads your way. <br><br> <<skulduggeryuse>> <<link [[Next|Tentacle Forest Orgasm Defeat]]>><</link>> <br> <</if>><<effects>> You turn and run as fast as the thick fluid allows, each step kicking forth dollops of the stuff. The cave shakes as the creature drops to the floor. You hear it squirming after you, but dare not spare a glance. <br><br> There's a fissure in the ceiling up ahead. You should be able to reach the nearby rocks and climb up, but you hear the creature gaining ground. It slams against the floor once again, close enough that the ground shakes with a violent quake, <<if $athleticsSuccess>> <span class="green">but you manage to keep your footing.</span> <br><br> You clamber up the rocks and squeeze through the fissure, emerging back in the tentacle forest. It's much too tight for the creature to follow. <br><br> <<set $tentacle_forest_lurker.pushUnique("run")>> <i>The creature has learned of your strengths. Running won't work a second time. Another orgasm could be dangerous.</i> <br><br> <<link [[Next|Tentacle Forest]]>><</link>> <br> <<else>> <span class="red">sending you tumbling off your feet.</span> <br><br> <<link [[Next|Tentacle Forest Orgasm Defeat]]>><</link>> <br> <</if>><<effects>> <<if $willpowerSuccess>> You charge at the creature, kicking great sloshes of fluid ahead of you. <span class="green">Your aggression startles the creature,</span> and it squirms away in fright. <br><br> <<set $tentacle_forest_lurker.pushUnique("scare")>> <i>The creature is inured to your tricks. Scaring it won't work a second time.</i> <br><br> You climb the side of the cave, up to a fissure in the ceiling, and emerge in the tentacle forest. <br><br> <<link [[Next|Tentacle Forest]]>><</link>> <br> <<else>> You charge at the creature, <span class="red">but the thick fluid slows you,</span> and you lose the element of surprise.<<gwillpower>><<willpower 3>> <br><br> It drops from the ceiling mere feet from you, sending a wave of fluid that knocks you on your <<bottom>>. <br><br> <<link [[Next|Tentacle Forest Orgasm Defeat]]>><</link>> <br> <</if>><<effects>> You jump beneath the fluid, and thrash around like a wounded animal. The creature drops from the ceiling, making the ground quake, and squirms closer. <br><br> <<skulduggerycheck>> <<if $skulduggerysuccess is 1>> <<earnFeat "Lurker Beyond">> You wait, continuing to flail and watching for any sign of weakness. <span class="green">Then you notice a pattern in its movements.</span> It licks the air constantly, tasting you, but stops whenever it shifts direction. It's masked by the chaotic squirming, but it can't move and turn at the same time. <br><br> Its maw is mere feet away. You launch yourself into motion, running around the creature's side. It turns as fast as it can, but far too slow for you. You're able to stay right behind it, where its body tapers into a tail. <br><br> A thought strikes you. An impossible thought. But why not? <br><br> You grasp the tail with one hand and, with little required strength, hurl the creature across the cave. It collides with a wall, explodes, and showers the room with more fluid. <br><br> The creature defeated, there's nothing stopping you from climbing to a fissure in the ceiling, and returning to the forest. <br><br> <span class="green"><i>The creature won't bother you again, should you have another orgasm.</i></span> <br><br> <<set $tentacle_forest_lurker.pushUnique("defeated")>> <<skulduggeryuse>> <<link [[Next|Tentacle Forest]]>><</link>> <br> <<else>> You watch for any sign of weakness. The only discernible feature is that maw. Is it a weak spot? <br><br> <span class="red">There's no time to decide,</span> it's on you already. You lunge, fist first, at the creature. Your impotent blow is deflected by its rubbery hide, and the force knocks you on your <<bottom>>. <br><br> <<skulduggeryuse>> <<link [[Next|Tentacle Forest Orgasm Defeat]]>><</link>> <br> <</if>><<effects>> <<if $settings.voreEnabled>> The creature scoops you face-first with its maw, lifts you into the air, and lets gravity slide you deeper. You push against the sides of its mouth for purchase, and stop it from sucking you any deeper than your waist. <br><br> A faint pink light illuminates the interior. The creature's tongue squirms over your face, then <<breasts>>. It slides between your body and its lip, squirming over your <<genitals>> and between your thighs until it licks your <<bottom>>.<<gggarousal>><<arousal 3000>> <br><br> Hooked between your thighs, the tongue tries to draw you deeper. <br><br> <<link [[Next|Tentacle Forest Orgasm Defeat 2]]>><</link>> <br> <<else>> The creature bares down on you, but then halts in its tracks. <span class="blue">Something is coming for you.</span> You feel it. The creature feels it too, and flees deeper into the cave. <br><br> Time parts to allow the newcomer's passage. It whirls around you, unravelling this reality. <br><br> <<link [[Next|Flats Hookah End]]>><<tentacleworldend>><</link>> <br> <</if>><<effects>> The creature squeezes your bottom with its mouth as it pulls you deeper. You feel about for anything you can grasp, but the best you can find is a fleshy uvula hanging above. <br><br> Your raised arms leave your <<breasts>> exposed. Two tentacles emerge from deeper within the creature, snaking towards you. <br><br> <<link [[Cover your chest|Tentacle Forest Orgasm Defeat Cover]]>><</link>> <br> <<link [[Cling|Tentacle Forest Orgasm Defeat Cling]]>><</link>> <br><<effects>> You cover your <<breasts>>, saving them from the tentacles' attentions. Without your grasp on the uvula however, the tongue forces you the rest of the way into the creature's mouth, and down its gullet. <br><br> The walls press in, trapping you completely. They squeeze to a peculiar rhythm, pushing you deeper. Apertures on the walls squirt you with a sweet-smelling liquid, while others produce tendrils that grope and squirm, <span class="pink">leaving you more sensitive.</span><<genital_sensitivity 0.5>> <br><br> It's too much for you. You pass out. <br><br> <<link [[Next|Flats Hookah End]]>><<passout>><<tentacleworldend>><</link>> <br><<effects>> You cling to the uvula, preventing the creature from pulling you any deeper, but allowing the tentacles to snake over and latch onto your <<breasts>>. <br><br> <<if $lactating is 1 and $settings.breastFeedingEnabled and $milk_amount gte 1>> They squeeze, sucking milk from your erect buds as the tongue pushes against your <<bottom>>. <<set $milk_produced_stat += 800>> <<milk_amount -800>> <<else>> They squeeze and knead your flesh as the tongue pushes against your <<bottom>>. <</if>> <br><br> It's too much for you. You pass out. <br><br> <<link [[Next|Flats Hookah End]]>><<passout>><<tentacleworldend>><</link>> <br><<effects>> Up close, the large tentacles are marked with deep rivets and gnarled with thick bumps. Enough for you to find purchase, and ascend. <br><br> <<if $willpowerSuccess>> <span class="green">The tentacles seem to twist and bend themselves to make your passage easier.</span> With their help, you're able to ascend high above the forest floor. <br><br> The tentacles taper near the top, letting you see through the landscape beyond. The forest stretches far, but a faint mist hangs in the air, swallowing the horizon. <br><br> <<link [[Next|Tentacle Forest Climb 2]]>><</link>> <br> <<else>> However, <span class="red">the tentacles revolt against your effort.</span> They twist and turn, making every inch an ordeal, until your fingers slip and you fall to the ground. It's fortunate you didn't get very high.<<gpain>><<pain 4>><<gwillpower>><<willpower 3>> <br><br> <<link [[Next|Tentacle Forest]]>><</link>> <br> <</if>><<effects>> The ground slopes below, ascending and descending. Ascending, you see a glimmering pool. Beyond is another clearing, covered in small, white-tipped tentacles, and beyond that is a great gate. Even from here, you can make out a gigantic lock. <br><br> In the opposite direction runs a stream, descending and turning. Small shapes leap from the surface. It runs into a clearing filled with wide-petalled flowers. They move to an unnatural rhythm. <br><br> The stream continues, and disappears down a ravine. Tentacles rise from its depths, as tall as the giant you cling to, but much thinner. The mist seems thicker here. <<if $tentacle_forest_key isnot 1>>One of the tentacles wraps around a metal object.<</if>> <br><br> <<link [[Next|Tentacle Forest Climb 3]]>><</link>> <br><<effects>> You climb to the forest floor. The tentacle bends lower as you near, and you hop down. <br><br> <<link [[Next|Tentacle Forest]]>><</link>> <br><<set $bus to "tentacle_forest_stream">><<effects>> You are in the tentacle forest, beside a rushing stream. You can't see the bottom, and strange, slug-like creatures hop from the surface. It crashes down a waterfall on one edge of the clearing, and disappears between tentacles opposite. <br><br> <<tentacle_forest_safe_orgasm>> <<tentacle_forest_time>> <br><br> <<if $tentacle_forest_time gte 60>> <<tentacle_forest_end_scene>> <<elseif $town_projects.bridge gte 5>> <<if $settings.slugsEnabled>> The bridge waits for you to cross. The leaping slugs might be a problem, however. <br><br> <<if $tentacle_forest_time gte 60>> <<tentacle_forest_end_scene>> <<elseif $stress gte $stressmax>> <<tentacle_forest_stress_scene>> <<elseif $arousal gte 10000 and !$tentacle_forest_lurker.includes("defeated")>> <<tentacle_forest_orgasm_scene>> <<else>> <<if $tentacle_forest_stream is undefined>> <<set $tentacle_forest_stream to 5>> <</if>> <<switch $tentacle_forest_stream>> <<case 5>> <span class="pink">The stream is teeming with leaping slugs.</span> <<case 4>> <span class="purple">The stream is still full of leaping slugs.</span> <<case 3>> <span class="blue">Your efforts have reduced the population, but many slugs still leap from the surface.</span> <<case 2>> <span class="lblue">The stream is significantly emptier than when you found it, but several slugs still burst from the surface here and there.</span> <<case 1>> <span class="teal">The stream is almost clear, save the occasional, solitary slug.</span> <<default>> <span class="green">The stream is free of slugs.</span> <</switch>> <br><br> <<if $tentacle_forest_stream gte 1>> <<link [[Catch some slugs from the shore, making it safer to cross (0:05)|Tentacle Forest Stream Catch]]>><<tentacle_forest_pass 5>><</link>><<tendingdifficulty 1 400>> <br> <</if>> <<set _stream_difficulty to 300 * $tentacle_forest_stream>> <<link [[Cross as fast as you can (0:05)|Tentacle Forest Stream Fast]]>><<tentacle_forest_pass 5>><</link>><<athleticsdifficulty 1 _stream_difficulty>><<note "Move deeper into the forest" "lblue">> <br> <<link [[Cross slowly, ready to fend off any slugs that come your way (0:05)|Tentacle Forest Stream Slow]]>><<tentacle_forest_pass 5>><</link>><<willpowerdifficulty 1 _stream_difficulty>><<note "Move deeper into the forest" "lblue">> <br><br> <<if $settings.footFetishEnabled>> Some of the fatter slugs have washed up on shore, and struggle to make it back to the stream. <br> <<link [[Step on them (0:15)|Tentacle Forest Feet]]>><<tentacle_forest_pass 15>><</link>><<note "+ Feet Skill?" "blue">> <br><br> <</if>> <<link [[Return to your arrival point (0:05)|Tentacle Forest]]>><<tentacle_forest_pass 5>><</link>> <br> <</if>> <<else>> You'll need to take it very slowly however, or risk being swept away. <br><br> <<link [[Cross|Tentacle Forest Stream Safe]]>><<tentacle_forest_pass 20>><<arousal 2000>><</link>><<ggarousal>> <br><br> <<if $settings.footFetishEnabled>> Some of the fatter slugs have washed up on shore, and struggle to make it back to the stream. <br> <<link [[Step on them (0:15)|Tentacle Forest Feet]]>><<tentacle_forest_pass 15>><</link>><<note "+ Feet skill?" "blue">> <br><br> <</if>> <<link [[Return to your arrival point (0:05)|Tentacle Forest]]>><<tentacle_forest_pass 5>><</link>> <br> <</if>> <<elseif $town_projects.bridge is 4>> <<set $town_projects.bridge to 5>> A bridge has appeared beneath the water, connecting the ruined pillars. It's built low, the water rushes over it and crossing will still be difficult, <span class="green">but it's now possible.</span> <br><br> <<link [[Next|Tentacle Forest Stream]]>><</link>> <br> <<else>> <<if $town_projects.bridge is undefined>> <<set $town_projects.bridge to 1>> <</if>> Two pillars on each side suggest there used to be a bridge here, but no longer. You kick a loose tentacle into the churning water. It's dragged under at once, and does not resurface. Crossing will be impossible, <span class="blue">for now.</span> <br><br> <<if $settings.footFetishEnabled>> Some of the fatter slugs have washed up on shore, and struggle to make it back to the stream. <br> <<link [[Step on them (0:15)|Tentacle Forest Feet]]>><<tentacle_forest_pass 15>><</link>><<note "+ Feet Skill?" "blue">> <br><br> <</if>> <<link [[Turn back|Tentacle Forest]]>><</link>> <br> <</if>><<effects>><<wearProp "tenta slug">> You kneel beside the stream and watch for the slugs squirming beneath the surface. <<if $tendingSuccess>> <span class="green">You snatch one from the water.</span> It's a thick, weighty and squirmy thing. You throw it between the giant tentacles behind you, then snatch another. <br><br> You soon have the population significantly reduced. <<set $tentacle_forest_stream -= 1>> <br><br> <<link [[Next|Tentacle Forest Stream]]>><<handheldon>><</link>> <br> <<else>> You snatch one from the water, <span class="red">but it squirms from your grasp and crawls up your arm.</span> You try to grasp it, but it leaps onto your breasts, slithers over your <<genitals>>, then leaps back into the stream.<<garousal>><<arousal 1000>> <br><br> <<link [[Next|Tentacle Forest Stream]]>><<handheldon>><</link>> <br> <</if>><<effects>> <<if $athleticsSuccess>> You run across the river as fast as you can. The slugs leap at you, <span class="green">but you weave between them,</span> and make it to the other side. <br><br> <<link [[Next|Tentacle Forest Flowers]]>><</link>> <br> <<else>> You run across the river as fast as you can. A slug leaps at you, <span class="red">slamming into your waist and knocking you off balance.</span> You trip and tumble into the stream. <br><br> You avoid being swept away, but more slugs leap from the water. <br><br> <<link [[Next|Tentacle Forest Stream Struggle]]>><<set $struggle_start to 1>><</link>> <br> <</if>><<effects>> <<if $willpowerSuccess>> You walk across the stream, watching the water with care. Slugs leap from the surface, straight at you, <span class="green">but you swat them aside with your fists.</span> <br><br> You make it to the other side, leaving a trail of defeated slugs in your wake. <br><br> <<link [[Next|Tentacle Forest Flowers]]>><</link>> <br> <<else>> You walk across the stream, watching the water with care. Slugs leap from the surface, straight at you. You try to bash them aside with your fists, <span class="red">but there are too many.</span> You tumble into the stream.<<gwillpower>><<willpower 3>> <br><br> You avoid being swept away, but more slugs leap from the water. <br><br> <<link [[Next|Tentacle Forest Stream Struggle]]>><<set $struggle_start to 1>><</link>> <br> <</if>><<effects>> <<if $struggle_start is 1>> <<struggle_init>> <<set $struggle.creature to "slug">> <<struggle_creatures 2 1>> <<set $combat to 1>> <<controlloss>> <<violence 1>> <<molested>> <<set $timer to 20>> <<unset $struggle_start>> <</if>> <<if $tentacle_forest_stream is 5 and $timer is 1 or $tentacle_forest_stream is 4 and $timer is 5 or $tentacle_forest_stream is 3 and $timer is 9 or $tentacle_forest_stream is 2 and $timer is 14 or $tentacle_forest_stream is 1 and $timer is 18>> <<struggle_add 1 1>>/*Adds more creatures, with a specific health.*/ <span class="pink">Another creature attacks!</span> <br><br> <</if>> <<struggle>> <<if $struggle.done gte $struggle.number>> <span id="next"><<link [[Next|Tentacle Forest Stream Struggle End]]>><</link>></span> <br> <<elseif $orgasmdown gte 1>> <span id="next"><<link [[Next|Tentacle Forest Stream Struggle End 2]]>><</link>></span> <br> <<else>> <span id="next"><<link [[Next|Tentacle Forest Stream Struggle]]>><</link>></span> <br> <</if>><<effects>> With the last slug driven away, the others seem too fearful to approach. You make it to the other side of the river. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Tentacle Forest Flowers]]>><</link>> <br><<effects>> The orgasm wracks you, leaving you to be swept away by the water. Instead of taking advantage of your vulnerability however, the slugs flee upstream. <br><br> The ground quakes, and ruptures. Tentacles burst through, moving in a violent, directed fashion. Directed at you. <br><br> They seize your limbs before your orgasm subsides, and drag you below. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Tentacle Forest Orgasm]]>><</link>> <br><<effects>> You put one foot in front of the other, making sure you have firm purchase before continuing. The river is wide, but you manage to make it to the other side without issue. <br><br> <<link [[Next|Tentacle Forest Flowers]]>><</link>> <br><<set $bus to "tentacle_forest_flowers">><<effects>> You are in the tentacle forest, in a clearing full of fleshlike flowers. The petals always face you, following. They spray a purple mist if you draw too close. <br><br> <<tentacle_forest_safe_orgasm>> <<tentacle_forest_time>> <br><br> <<if $tentacle_forest_time gte 60>> <<tentacle_forest_end_scene>> <<elseif $town_projects.road gte 5>> A road runs across the clearing, providing the safest route across. <br><br> <<if $tentacle_forest_time gte 60>> <<tentacle_forest_end_scene>> <<elseif $stress gte $stressmax>> <<tentacle_forest_stress_scene>> <<elseif $arousal gte 10000 and !$tentacle_forest_lurker.includes("defeated")>> <<tentacle_forest_orgasm_scene>> <<else>> <<link [[Run (0:05)|Tentacle Forest Flowers Run]]>><<tentacle_forest_pass 5>><</link>><<willpowerdifficulty 1 1000>><<note "Move deeper into the forest" "lblue">> <br> <<link [[Cross while singing (0:05)|Tentacle Forest Flowers Sing]]>><<tentacle_forest_pass 5>><</link>><<tendingdifficulty 1 1000>><<note "Move deeper into the forest" "lblue">> <br><br> Vines hang around the edge of the clearing, dripping a sickly sweet nectar. <<if $backgroundTraits.includes("plantlover") and $nectar_timer lte 14>> You sniff it and frown. It's not the nectar you're addicted to; this won't satisfy your cravings. <</if>> <br> <<link [[Suck (0:15)|Tentacle Forest Oral]]>><<tentacle_forest_pass 15>><</link>><<note "+ Oral Skill?" "blue">> <br><br> <<link [[Return to your arrival point (0:05)|Tentacle Forest]]>><<tentacle_forest_pass 5>><</link>> <br> <</if>> <<elseif $town_projects.road gte 4>> <<set $town_projects.road to 5>> A road of thick pink glass bricks has appeared, connecting one side of the clearing to the other. A haze lingers over it, <span class="green">but crossing should now be possible.</span> <br><br> <<link [[Next|Tentacle Forest Flowers]]>><</link>> <br> <<else>> Just a whiff of fragrance sends your head spinning, and it's too far for anyone to hold their breath. <span class="blue">You'll need to find another solution.</span> <<if $town_projects.road is undefined>> <<set $town_projects.road to 1>> <</if>> <br><br> Vines hang around the edge of the clearing, dripping a sickly sweet nectar. <<if $backgroundTraits.includes("plantlover") and $nectar_timer lte 14>> You sniff it and frown. It's not the nectar you're addicted to; this won't satisfy your cravings. <</if>> <br> <<link [[Suck (0:15)|Tentacle Forest Oral]]>><<tentacle_forest_pass 15>><</link>><<note "+ Oral Skill?" "blue">> <br><br> <<link [[Turn back|Tentacle Forest]]>><</link>> <br> <</if>><<effects>> You run down the road, winding around patches of sweet-smelling flowers. Their pollen assaults your senses, even kept at bay by the road. <<garousal>><<arousal 600>><<hallucinogen 120>> <br><br> <<if $willpowerSuccess>> You feel lightheaded, <span class="green">but remain focused on your task,</span> and reach the other side. You continue through the forest. <br><br> <<link [[Next|Tentacle Forest Cliff]]>><</link>> <br> <<else>> You feel lightheaded, <span class="red">and stumble to the ground.</span> You try to crawl the rest of the way, but tentacles snake to enwrap you. <br><br> <<link [[Next|Tentacle Forest Flowers Tentacles]]>><<set $molestationstart to 1>><</link>> <br> <</if>><<effects>> You hum as you walk, soothing the sweet-smelling flowers. Their pollen assaults your senses, even kept at bay by the road. <<garousal>><<arousal 600>><<hallucinogen 120>> <br><br> <<if $tendingSuccess>> A gentle tune comes to mind. <span class="green">The flowers close their petals</span> when they hear it. You make it to the other side of the clearing. <br><br> <<link [[Next|Tentacle Forest Cliff]]>><</link>> <br> <<else>> The flower petals droop at the sound of your voice, <span class="red">but the haze only deepens,</span> making you more lightheaded, until you stumble and fall. <br><br> Tentacles snake to enwrap you before you can begin to stand. <br><br> <<link [[Next|Tentacle Forest Flowers Tentacles]]>><<set $molestationstart to 1>><</link>> <br> <</if>><<effects>> <<if $molestationstart is 1>> <<set $molestationstart to 0>> <<set $combat to 1>> <<set $enemytype to "tentacles">> <<molested>> <<controlloss>> <<tentaclestart 8 16>> <</if>> <<statetentacles>> <<effects>> <<effectstentacles>> <<tentacles>> <<actionstentacles>> <<if $orgasmdown gte 1>> <span id="next"><<link [[Next|Tentacle Forest Flowers Tentacles Finish 2]]>><</link>></span><<nexttext>> <<elseif $tentacles.active lte ($tentacles.max / 2)>> <span id="next"><<link [[Next|Tentacle Forest Flowers Tentacles Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Tentacle Forest Flowers Tentacles]]>><</link>></span><<nexttext>> <</if>><<effects>> You struggle free from the writhing tentacles, and make it the rest of the way through the clearing. <br><br> <<tearful>> you walk further into the forest. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Tentacle Forest Cliff]]>><</link>> <br><<effects>> The orgasm wracks you, leaving you at the mercy of the tentacles. The ground quakes, and ruptures. More tentacles burst through, moving in a violent, directed fashion. Directed at you. <br><br> They seize your limbs before your orgasm subsides, and drag you below. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Tentacle Forest Orgasm]]>><</link>> <br><<set $bus to "tentacle_forest_cliff">><<effects>> You are in the tentacle forest, at the edge of a great fissure in the ground. A wall of thin tentacles rises from the depths. In the distance, a vast plain stretches on as far as you can see. The closer you try to look, the further it seems to stretch. <br><br> <<if $tentacle_forest_time gte 60>> <<tentacle_forest_end_scene>> <<elseif $town_projects.diving gte 5>> A staircase, carved from rock, descends along the edge. <br><br> <<if $tentacle_forest_time gte 60>> <<tentacle_forest_end_scene>> <<elseif $stress gte $stressmax>> <<tentacle_forest_stress_scene>> <<elseif $arousal gte 10000 and !$tentacle_forest_lurker.includes("defeated")>> <<tentacle_forest_orgasm_scene>> <<else>> <<if $tentacle_forest_key isnot 1>> <<link [[Retrieve the object (0:05)|Tentacle Forest Cliff Key]]>><<tentacle_forest_pass 5>><</link>> <br><br> <</if>> Some of the tentacles beckon, challenging you. <br> <<link [[Wrestle (0:15)|Tentacle Forest Chest]]>><<tentacle_forest_pass 15>><</link>><<note "+ Chest Skill?" "blue">> <br><br> <<link [[Return to your arrival point (0:05)|Tentacle Forest]]>><<tentacle_forest_pass 5>><</link>> <br> <</if>> <<elseif $town_projects.diving gte 4>> <<set $town_projects.diving to 5>> A staircase has appeared, carved from rock, <span class="green">descending the cliff.</span> <br><br> You see a glint of light. One of the tentacles clutches an object, far below. <br><br> <<link [[Next|Tentacle Forest Cliff]]>><</link>> <br> <<else>> You peer down the edge, and see a glint of light. One of the tentacles clutches an object, far below. However, there's no way you could climb down such a sheer cliff. <span class="blue">You'll need to find another solution.</span> <<if $town_projects.diving is undefined>> <<set $town_projects.diving to 1>> <</if>> <br><br> Some of the tentacles beckon, challenging you. <br> <<link [[Wrestle (0:15)|Tentacle Forest Chest]]>><<tentacle_forest_pass 15>><</link>><<note "+ Chest Skill?" "blue">> <br><br> <<link [[Turn back|Tentacle Forest]]>><</link>> <br> <</if>><<effects>> <<set $tentacle_forest_key to 1>> You walk down the steps. You draw close enough to the object to see that it's a thick key, made from silver metal. The colour is out of place here. <br><br> You reach over a short gap. The tentacle gives up the key without a struggle. <br><br> <<link [[Return to your arrival point|Tentacle Forest]]>><</link>> <br><<set $bus to "tentacle_forest_pool">><<effects>> You are in the tentacle forest, beside a glimmering pool. The ripples reflect a rainbow of colour. <br><br> <<tentacle_forest_safe_orgasm>> <<tentacle_forest_time>> <br><br> <<if $tentacle_forest_time gte 60>> <<tentacle_forest_end_scene>> <<elseif $town_projects.thicket gte 5>> The water is placid, but innumerable eyes stare up at you. You'll have to be careful. <br><br> <<if $tentacle_forest_time gte 60>> <<tentacle_forest_end_scene>> <<elseif $stress gte $stressmax>> <<tentacle_forest_stress_scene>> <<elseif $arousal gte 10000 and !$tentacle_forest_lurker.includes("defeated")>> <<tentacle_forest_orgasm_scene>> <<else>> <<link [[Paddle (0:05)|Tentacle Forest Pool Focus]]>><<tentacle_forest_pass 5>><</link>><<willpowerdifficulty 1 1000>><<note "Move deeper into the forest" "lblue">> <br> <<link [[Swim (0:05)|Tentacle Forest Pool Swim]]>><<tentacle_forest_pass 5>><</link>><<swimmingdifficulty 1 1000>><<note "Move deeper into the forest" "lblue">> <br><br> Large lily pads float around the gentle edge of the pool. They look able to support your weight. <br> <<link [[Sit (0:15)|Tentacle Forest Bottom]]>><<tentacle_forest_pass 15>><</link>><<note "+ Bottom Skill?" "blue">> <br><br> <<link [[Return to your arrival point (0:05)|Tentacle Forest]]>><<tentacle_forest_pass 5>><</link>> <br> <</if>> <<elseif $town_projects.thicket gte 4>> <<set $town_projects.thicket to 5>> You peer into the pool. The eyes are still there, but the water is placid, and gentle. <span class="green">Crossing should now be possible.</span> <br><br> <<link [[Next|Tentacle Forest Pool]]>><</link>> <br> <<else>> There's another path on the other side, but there's no way to cross without swimming. You peer beneath the surface. Innumerable eyes greet your gaze, and the water whirls in a violent torrent. <span class="blue">You'll need to find another solution.</span> <<if $town_projects.thicket is undefined>> <<set $town_projects.thicket to 1>> <</if>> <br><br> Large lily pads float around the gentle edge of the pool. They look able to support your weight. <br> <<link [[Sit (0:15)|Tentacle Forest Bottom]]>><<tentacle_forest_pass 15>><</link>><<note "+ Bottom Skill?" "blue">> <br><br> <<link [[Turn back|Tentacle Forest]]>><</link>> <br> <</if>><<effects>> <<water>> You paddle across the pool. You feel the eyes below, leering at your unprotected nudity, <<if $willpowerSuccess>> <span class="green">but you manage to resist looking down.</span> You reach the other side of the pool, and continue deeper into the forest. <br><br> <<link [[Next|Tentacle Forest Plants]]>><</link>> <br> <<else>> <span class="red">and can't resist glancing down.</span> As their gaze meets yours, tentacles surge from the depths. <br><br> <<link [[Next|Tentacle Forest Pool Tentacles]]>><<set $molestationstart to 1>><</link>> <br> <</if>><<effects>> <<water>> You swim across the pool, disturbing the eyes below. Tentacles surge from the depths, <<if $swimmingSuccess>> trailing behind you, <span class="green">but you manage to outpace them.</span> <br><br> You make it to the other side of the pool, and continue deeper into the forest. <br><br> <<link [[Next|Tentacle Forest Plants]]>><</link>> <br> <<else>> trailing behind. <span class="red">A couple wrap around your ankles,</span> slowing you long enough for others to catch up. <br><br> <<link [[Next|Tentacle Forest Pool Tentacles]]>><<set $molestationstart to 1>><</link>> <br> <</if>><<if $molestationstart is 1>> <<set $molestationstart to 0>> <<set $combat to 1>> <<set $enemytype to "tentacles">> <<molested>> <<controlloss>> <<tentaclestart 8 16>> <</if>> <<water>> <<statetentacles>> <<effects>> <<effectstentacles>> <<tentacles>> <<actionstentacles>> <<if $orgasmdown gte 1>> <<link [[Next|Tentacle Forest Pool Tentacles Finish 2]]>><</link>> <br> <<elseif $tentacles.active lte ($tentacles.max / 2)>> <span id="next"><<link [[Next|Tentacle Forest Pool Tentacles Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Tentacle Forest Pool Tentacles]]>><</link>></span><<nexttext>> <</if>><<effects>> You struggle free from the writhing tentacles, and make it the rest of the way across the pool. <br><br> <<tearful>> you walk further into the forest. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Tentacle Forest Plants]]>><</link>> <br><<effects>> The orgasm wracks you, leaving you at the mercy of the tentacles. The water swirls in a violent whirlpool, and drags you below. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Tentacle Forest Orgasm]]>><</link>> <br><<set $bus to "tentacle_forest_plants">><<effects>> You are in the tentacle forest, in a clearing full of shoulder-high tentacles. They're dark purple at the base, and become paler towards the top. They give the impression of long grass. <br><br> <<tentacle_forest_safe_orgasm>> <<tentacle_forest_time>> <br><br> <<if $tentacle_forest_time gte 60>> <<tentacle_forest_end_scene>> <<elseif $town_projects.green gte 5>> Some of the tentacles are tall enough to climb, but you'll need to be careful. <br><br> <<if $tentacle_forest_time gte 60>> <<tentacle_forest_end_scene>> <<elseif $stress gte $stressmax>> <<tentacle_forest_stress_scene>> <<elseif $arousal gte 10000 and !$tentacle_forest_lurker.includes("defeated")>> <<tentacle_forest_orgasm_scene>> <<else>> <<link [[Swing (0:05)|Tentacle Forest Plants Swing]]>><<tentacle_forest_pass 5>><</link>><<willpowerdifficulty 1 1000>><<note "Move deeper into the forest" "lblue">> <br> <<link [[Climb (0:05)|Tentacle Forest Plants Climb]]>><<tentacle_forest_pass 5>><</link>><<athleticsdifficulty 1 1000>><<note "Move deeper into the forest" "lblue">> <br><br> Similar, taller tentacles rise either side of you, climbing high enough to weave between the thicker tentacles around the clearing. They bend low to the ground. <br> <<link [[Shimmy (0:15)|Tentacle Forest Thighs]]>><<tentacle_forest_pass 15>><</link>><<note "+ Thigh Skill?" "blue">> <br><br> <<link [[Return to your arrival point (0:05)|Tentacle Forest]]>><<tentacle_forest_pass 5>><</link>> <br> <</if>> <<elseif $town_projects.green gte 4>> <<set $town_projects.green to 5>> Some of the tentacles have grown to prodigious size. They bend under their own weight, many low enough to reach. <span class="green">Crossing should now be possible.</span> <br><br> <<link [[Next|Tentacle Forest Plants]]>><</link>> <br> <<else>> You try to push between them, but they're much sturdier than they look, and push against you. They form an impassable barrier. <span class="blue">You'll need to find another solution.</span> <<if $town_projects.green is undefined>> <<set $town_projects.green to 1>> <</if>> <br><br> Similar, taller, tentacles rise either side of you, climbing high enough to weave between the thicker tentacles around the clearing. They bend low to the ground. <br> <<link [[Shimmy (0:15)|Tentacle Forest Thighs]]>><<tentacle_forest_pass 15>><</link>><<note "+ Thigh Skill?" "blue">> <br><br> <<link [[Turn back|Tentacle Forest]]>><</link>> <br> <</if>><<effects>> You take a great leap, hurtling through the air and grasping the nearest hanging tentacle. <<if $willpowerSuccess>> You use the momentum, and hurl yourself to the next, then the next, <span class="green">until you've crossed the whole field.</span> You continue deeper into the forest. <br><br> <<link [[Next|Tentacle Forest Door]]>><</link>> <br> <<else>> You hesitate, considering what to do next, <span class="red">and your fingers slip.</span> <br><br> You fall onto a bed of writhing tentacles. <br><br> <<link [[Next|Tentacle Forest Plants Tentacles]]>><<set $molestationstart to 1>><</link>> <br> <</if>><<effects>> You climb the gnarled trunk of the nearest tentacle. It bends towards another. There's a bit of a gap, <<if $athleticsSuccess>> <span class="green">and you manage to leap across.</span> You travel across the field from tentacle to tentacle, until you arrive on the other side. <br><br> <<link [[Next|Tentacle Forest Door]]>><</link>> <br> <<else>> <span class="red">and your fingers slip.</span> You slide onto a bed of writhing tentacles. <br><br> <<link [[Next|Tentacle Forest Plants Tentacles]]>><<set $molestationstart to 1>><</link>> <br> <</if>><<effects>> <<if $molestationstart is 1>> <<set $molestationstart to 0>> <<set $combat to 1>> <<set $enemytype to "tentacles">> <<molested>> <<controlloss>> <<tentaclestart 8 15>> <</if>> <<statetentacles>> <<effects>> <<effectstentacles>> <<tentacles>> <<actionstentacles>> <<if $orgasmdown gte 1>> <span id="next"><<link [[Next|Tentacle Forest Plants Tentacles Finish 2]]>><</link>></span><<nexttext>> <<elseif $tentacles.active lte ($tentacles.max / 2)>> <span id="next"><<link [[Next|Tentacle Forest Plants Tentacles Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Tentacle Forest Plants Tentacles]]>><</link>></span><<nexttext>> <</if>><<effects>> You struggle free from the writhing tentacles, and fall to the ground. You've made it across the field. <br><br> <<tearful>> you walk further into the forest. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Tentacle Forest Door]]>><</link>> <br><<effects>> The orgasm wracks you, leaving you at the mercy of the tentacles. The ground quakes, and ruptures. More tentacles burst through, moving in a violent, directed fashion. Directed at you. <br><br> They seize your limbs before your orgasm subsides, and drag you below. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Tentacle Forest Orgasm]]>><</link>> <br><<set $bus to "tentacle_forest_door">><<effects>> You are in the tentacle forest, stood before a gigantic stone door. Despite the size of its frame, the keyhole is tiny, and within reach. <br><br> <<if $tentacle_forest_time gte 60>> <<tentacle_forest_end_scene>> <<elseif $tentacle_forest_key is 1>> <<if $hookah_plot gte 1>> <<link [[Enter|Tentacle Forest Prison]]>><</link>> <br> <<else>> <span class="green">The key you found down the ravine will fit.</span> <br><br> <<link [[Enter|Tentacle Forest Quinn]]>><</link>> <br> <</if>> <<link [[Return to entrance|Tentacle Forest]]>><</link>> <br> <<else>> <<link [[Return to entrance|Tentacle Forest]]>><</link>> <br> <</if>><<set $bus to "tentacle_forest_prison">><<effects>> The door unlocks with a click. You pull it open, and brace to stop the sour wind from knocking you over. <br><br> You enter the tunnel, bathed in purple light. Other corridors lead away from this one, their walls etched with strange symbols. <br><br> <<if $tentacle_forest_time gte 60>> <<tentacle_forest_end_scene>> <<elseif $stress gte $stressmax>> <<tentacle_forest_stress_scene>> <<elseif $arousal gte 10000 and !$tentacle_forest_lurker.includes("defeated")>> <<tentacle_forest_orgasm_scene>> <<else>> <<if $settings.analEnabled>> <<link [[Decipher (0:15)|Tentacle Forest Anal]]>><<tentacle_forest_pass 15>><</link>><<note "+ Anal Skill?" "blue">> <br> <</if>> <<link [[Return to arrival point|Tentacle Forest]]>><</link>> <br> <</if>><<effects>> The door unlocks with a click. You pull it open, and a sour wind throws it the rest of the way, knocking you to the ground. <br><br> Inside is a tunnel, bathed in a dim purple light. You see movement in the distance, but it's too far to make out. <br><br> You enter, passing corridors leading away from the main tunnel, but the movement in the distance beckons you on. <br><br> <<link [[Next|Tentacle Forest Quinn 2]]>><</link>> <br><<effects>> <<set $hookah_plot to 1>> <<set $hookah_state to 2>> <<hookah_init>> <<npc Quinn>><<person1>> You draw close enough to make out a writhing mass. There's a figure in the centre. They hang limp, suspended by violating tentacles. One curls around their head, covering their eyes. Yet you can tell who it is. <span class="pink">It's Quinn, the mayor.</span><<gggawareness>><<awareness 24>> <br><br> You hear a thud, then a shattering of glass. You can't pinpoint the source. "This trespass," echoes a disembodied voice. "Will have consequences." The walls vanish brick by brick as the voice reverberates down the tunnel. <br><br> <span class="blue">You glimpse an expanse behind the wall.</span> <span class="pink">Your mind rejects it,</span> and reality unravels to escape it. <br><br> <<link [[Next|Tentacle Forest Quinn 3]]>><<endevent>><<tentacleworldend>><</link>> <br><<location "flats">><<set $outside to 0>><<effects>> <<storeon "hookah">> <<loadNPC 0 "hookah">><<person1>> You awaken in the hookah parlour. You're alone. The hookah itself lies in pieces. The door has been broken off its hinges. <br><br> Lying in the entrance are a pair of tiny spectacles. A piece of paper is wrapped around the left temple. You unfurl it. There's writing, hastily scrawled. <br><br> "I've searched for so long. <span class="green">The glasses, and the parlour, are yours.</span> Thank you." <br><br> <<earnFeat "Hookah Master">> <<specialClothesUnlock "set" "hookah">> <<link [[Look around|Tentacle Forest Quinn 4]]>><<facesend 31 $wardrobe_location>><</link>> <br><<effects>> Even in its ransacked state, the parlour looks like it was once a normal flat. There's a kitchen with a working fridge. You open it. There are five cages inside. <span class="pink">A strange creature writhes within the lowest.</span> <br><br> You look through the rest of the parlour. There's no bed anywhere, and cleaning will take a lot of work. <br><br> <<link [[Next|Flats Hookah]]>><<endevent>><</link>> <br><<effects>> Seized by a bizarre competitiveness, you wrestle one of the tentacles to the ground. You toss to and fro, <<set _rng to random(1, 2)>> <<if _rng is 1>> until you manage to pin it beneath your weight. <br><br> You luxuriate in victory.<<gchestskill>><<chestskill 1>> <br><br> <<destination_tentacle_forest>> <<else>> until it hurls you aside. <br><br> <<tentacle_forest_events>> <</if>><<effects>> You sit on one of the pads, dipping your feet in the water. You find you can propel yourself by shifting your weight back and forth. <<set _rng to random(1, 2)>> <<if _rng is 1>> You can't travel far, but moving in a little circle proves relaxing.<<gbottomskill>><<bottomskill 1>> <br><br> <<destination_tentacle_forest>> <<else>> You tumble into the water with a splash. You're glad the water is shallow here. <br><br> <<tentacle_forest_events>> <</if>><<effects>> You climb atop a low-hanging tentacle, and shimmy along with length between your thighs. <<set _rng to random(1, 2)>> <<if _rng is 1>> It sways a little, but you manage to hold on. You journey between the larger tentacles, before looping back around to the clearing.<<gthighskill>><<thighskill 1>> <br><br> <<destination_tentacle_forest>> <<else>> It sways this way and that. The rocking is too violent for you to cling, and you fall to the ground in a heap. <br><br> <<tentacle_forest_events>> <</if>><<effects>> You attempt to take one of the vines into your mouth. <<set _rng to random(1, 2)>> <<if _rng is 1>> It seems to follow your head, and enters your mouth without much difficulty. You eagerly lap up the nectar.<<goralskill>><<oralskill 1>> <br><br> <<destination_tentacle_forest>> <<else>> It sways away from you, and it lightly smacks you on the cheek when you try to persist. <br><br> <<tentacle_forest_events>> <</if>><<effects>> You reach for the fruit. The tentacle 'branches' they attach to lift as you do, pulling the fruit beyond your grasp. <<set _rng to random(1, 2)>> <<if _rng is 1>> <<wearProp "tenta fruit">> You manage to snag one by jumping. <br><br> Despite its juicy appearance, it tastes most similar to pork. <<ghandskill>><<handskill 1>> <br><br> <<destination_tentacle_forest>> <<else>> Even jumping just makes the tentacles jump away in response. <br><br> <<tentacle_forest_events>> <</if>><<effects>> You try to stomp on one of the slugs, but the threat gives it a burst of energy, and it slithers away with surprising speed. <<set _rng to random(1, 2)>> <<if _rng is 1>> <<wearProp "tenta slug">> You catch it before it makes it to the stream. White fluid squirts from the tip, deflating it and leaving it similar to the other slugs. Now free of its extra bulk, it escapes into the stream. <<gfeetskill>><<feetskill 1>> <br><br> <<destination_tentacle_forest>> <<else>> It slips into the stream before you can catch it. <br><br> <<tentacle_forest_events>> <</if>><<effects>> You try to read the writing etched on the walls. The symbols change as you look, resettling into new, <<set _rng to random(1, 2)>> <<if _rng is 1>> strange patterns. Meaning floods your mind. You blush.<<ganalskill>><<analskill 1>> <br><br> <<destination_tentacle_forest>> <<else>> disturbing patterns. Meaning floods your mind. You shudder. <<set _rng to random(1, 5)>> <<switch _rng>> <<case 1>> <<if $awareness lt 600>> <<gawareness>><<awareness 3>> <<else>> <<ggarousal>><<arousal 1800>> <</if>> <<case 2>> <<ggarousal>><<arousal 1800>> <<case 3>> <<gstress>><<stress 18>> <<case 4>> <<gtrauma>><<trauma 18>> <<case 5>> <<gwillpower>><<willpower 3>> <</switch>> <br><br> <<link [[Next|Tentacle Forest Prison]]>><</link>> <br> <</if>><<widget "passouttentacleworld">> <<if isPregnancyEnding()>> <<pregnancyPassout "tentacleworld">> <<else>> <<passout>> <<link [[Everything fades to black...|Passout Tentacle World]]>><</link>> <</if>> <</widget>> <<widget "tentacleworldintro">> <<set $tentnorth to 0>> <<set $tenteast to 0>> <<if $rng gte 51>> <<set $tentportalnorth to either(-5, -4, 4, 5)>> <<set $tentportaleast to random(-5, 5)>> <<else>> <<set $tentportalnorth to random(-5, 5)>> <<set $tentportaleast to either(-5, -4, 4, 5)>> <</if>> <</widget>> <<widget "tentacleworldend">> <<unset $tentacleadmire>> <<unset $tentaclewolf>> <<unset $tentacleangel>> <<unset $tentaclefallenangel>> <<unset $tentacleEntrance>> <<unset $tentaclecat>> <<unset $tentaclecow>> <<unset $tentaclefox>> <<unset $tentacleorgasmignore>> <<unset $tentacle_forest_time>> <<unset $tentacle_forest_stream>> <<unset $tentacle_forest_lurker>> <</widget>> <<widget "tentacle_forest_safe_orgasm">> <<if $arousal gte 10000 and $tentacle_forest_lurker.includes("defeated")>> You fall to your hands and knees as the sensations become too much to bear. <<orgasm>> <br><br> You struggle to your feet. Despite being in a vulnerable state, <span class="teal">nothing assaults you.</span> <br><br> <</if>> <</widget>> <<widget "tentacle_forest_end_scene">> <span class="blue">Something is coming for you.</span> You feel it. Time parts to allow its passage. It whirls around you, unravelling this reality. <br><br> <<set $bus to "barb">> <<link [[Next|Flats Hookah End]]>><<tentacleworldend>><</link>> <br> <</widget>> <<widget "tentacle_forest_orgasm_scene">> You fall to your hands and knees as the sensations become too much to bear. <<orgasm>> <br><br> The ground quakes, and ruptures. Tentacles burst through, moving in a violent, directed fashion. Directed at you. <br><br> They seize your limbs before your orgasm subsides, and drag you below. <br><br> <<link [[Next|Tentacle Forest Orgasm]]>><</link>> <br> <</widget>> <<widget "tentacle_forest_stress_scene">> <<if isPregnancyEnding()>> <<pregnancyPassout "tentacleforest">> <<else>> You've pushed yourself too much, and collapse to your knees. <br><br> <span class="red">A fissure erupts beneath you, and several tentacles emerge.</span> They grasp your limbs, and draw your weakened body underground. <br><br> <<if $tentacle_forest_lurker.includes("defeated")>> You land on your <<bottom>> in the cave beneath the forest. <span class="red">The strange creature has returned,</span> and squirms towards you. <<else>> You land on your <<bottom>> in a pool of thick, pink fluid, surrounded by cavernous walls. A strange creature squirms towards you. It has no discernible features, save a single, colossal maw. <</if>> <br><br> <<link [[Next|Tentacle Forest Orgasm Defeat]]>><</link>> <br> <</if>> <</widget>> <<widget "tentaclewolf">> <<if $wolfgirl gte 6 and $syndromewolves gte 1>> <<if $tentaclewolf is undefined>> <<set $tentaclewolf to 0>> You hear something familiar in the distance, but you aren't sure what it is. It breaks through the fog and reminds you of the forest. <<lstress>><<larousal>><<stress -6>><<arousal -6>> <br><br> <<elseif $tentaclewolf is 0>> <<set $tentaclewolf to 1>> You hear it again. It came from <<tentacledirection>> <<lstress>><<larousal>><<stress -6>><<arousal -6>> <br><br> <<elseif $tentaclewolf is 1>> <<set $tentaclewolf to 2>> The familiar sound is louder now. It sounds like howling. It's coming from <<tentacledirection>> <<lstress>><<larousal>><<stress -6>><<arousal -6>> <br><br> <</if>> <</if>> <</widget>> <<widget "tentacledirection">> <<if $tentportalnorth gt $tentnorth>> <<if $tentportaleast gt $tenteast>> the Northeast. <<elseif $tentportaleast lt $tenteast>> the Northwest. <<else>> the North. <</if>> <<elseif $tentportalnorth lt $tentnorth>> <<if $tentportaleast gt $tenteast>> the Southeast. <<elseif $tentportaleast lt $tenteast>> the Southwest. <<else>> the South. <</if>> <<else>> <<if $tentportaleast gt $tenteast>> the East. <<elseif $tentportaleast lt $tenteast>> the West. <<else>> nearby. <</if>> <</if>> <</widget>> <<widget "tentacle_forest_pass">> <<if _args[0]>> <<pass _args[0]>> <<set $tentacle_forest_time += _args[0]>> <<set $tentacle_forest_time to Math.clamp($tentacle_forest_time, 0, 120)>> <</if>> <</widget>> <<widget "tentacle_forest_time">> Time remaining in the forest: <<print (60 - $tentacle_forest_time)>> <</widget>> <<widget "destination_tentacle_forest">> <<switch $bus>> <<case "tentacle_forest_main">> <<link [[Next|Tentacle Forest]]>><<handheldon>><</link>> <br> <<case "tentacle_forest_stream">> <<link [[Next|Tentacle Forest Stream]]>><<handheldon>><</link>> <br> <<case "tentacle_forest_flowers">> <<link [[Next|Tentacle Forest Flowers]]>><<handheldon>><</link>> <br> <<case "tentacle_forest_cliff">> <<link [[Next|Tentacle Forest Cliff]]>><<handheldon>><</link>> <br> <<case "tentacle_forest_pool">> <<link [[Next|Tentacle Forest Pool]]>><<handheldon>><</link>> <br> <<case "tentacle_forest_plants">> <<link [[Next|Tentacle Forest Plants]]>><<handheldon>><</link>> <br> <<case "tentacle_forest_door">> <<link [[Next|Tentacle Forest Door]]>><<handheldon>><</link>> <br> <<case "tentacle_forest_prison">> <<link [[Next|Tentacle Forest Prison]]>><<handheldon>><</link>> <br> <<default>> <<link [[Next|Tentacle Forest]]>><<handheldon>><</link>> <br> <</switch>> <</widget>> <<widget "tentacle_forest_events">> <<cleareventpool>> <<addinlineevent "tentacle_forest_1" 1>> A vine-like tentacle erupts from the canopy above, slicing through the air and delivering a sharp blow to your <<bottom>>.<<gpain>><<ggarousal>><<pain 4>><<arousal 1800>> <br><br> The force jolts you forwards. <<dancedifficulty 1 1000>> <<if $danceSuccess>> You almost trip over yet another tentacle, lying low near the ground, <span class="green">but manage to keep your footing.</span> <br><br> <<destination_tentacle_forest>> <<else>> <span class="red">You trip over another tentacle</span>, lying low near the ground. It coils around your waist, holding you still as the first slithers up your thigh. <br><br> <<if $player.penisExist>> You feel a flick against your <<genitals 1>>. The tentacle slithers up and down your length, squeezing in a rhythmic fashion. <<else>> You feel a flick against your labia. The tentacle slithers across your skin, and wraps around your clit, squeezing in a rhythmic fashion. <</if>> You pull both tentacles away from you, allowing you to stand, but you can't stop the heat rising.<<gggarousal>><<arousal 3600>> <br><br> <<destination_tentacle_forest>> <</if>> <</addinlineevent>> <<addinlineevent "tentacle_forest_2" 1>> An aperture on one of the larger tentacles opens, and sprays a thick pink mist. It makes you feel lightheaded.<<ggarousal>><<arousal 1800>> <br><br> <<destination_tentacle_forest>> <</addinlineevent>> <<addinlineevent "tentacle_forest_3" 1>> You feel a squishiness beneath your feet. You move your foot, and see a large eye staring up at you. It blinks. The lid becomes a pair of lips. One whisper, and you find yourself lying on your back, staring up at the tentacles swaying overhead. <br><br> You can't remember what was said. <<if $awareness lt 600>> <<gawareness>><<awareness 3>> <<else>> <<ggarousal>><<arousal 1800>> <</if>> <br><br> <<destination_tentacle_forest>> <</addinlineevent>> <<addinlineevent "tentacle_forest_4" 1>> A dollop of slick stickiness falls from above. <<random_goo>> <br><br> <<destination_tentacle_forest>> <</addinlineevent>> <<addinlineevent "tentacle_forest_5" 1>> <<set _rng to random(1, 4)>> <<switch _rng>> <<case 1>> You hear something whisper your name. <<case 2>> Innumerable eyes open, all around. You blink, and they're gone. <<case 3>> A tremor shakes the ground. It journeys up the giant tentacles, shaking them right to the tip. <<default>> You hear a distant keening sound. Another responds. <</switch>> <<ggstress>><<stress 18>> <br><br> <<destination_tentacle_forest>> <</addinlineevent>> <<runeventpool>> <</widget>><<location "tentworld">><<set $outside to 0>><<effects>><<set $phase to 0>> <<tentacleworldintro>> You open the door, revealing an alien landscape. Giant tentacles writhe against the sky. <span class="red">An orgasm here could be dangerous.</span> <br><br> <<link [[Next|Tentacle Plains]]>><<set $tentacleEntrance to "asylum">><</link>> <br><<location "tentworld">><<effects>> <<strip>> You wake, realising with horror that you are trapped naked within a mass of tentacles. They hold you several feet above the ground, your limbs and torso secure in their gentle but unyielding embrace. Struggling to escape, you move your arms and legs in hopes of disrupting the tentacles' grip. You fail, as every movement is countered effortlessly by the unconcerned appendages. Your desperation rises as your thrashing has no effect. <br><br> But desperation is not the only thing to rise. As you continue to breathe in the musky air and feel your captor's wriggling flesh pressing against your arms and hips and calves, you find your body flush with growing arousal. Your genitals react. Sweat breaks out across your skin. Your <<nipples>> harden. Unsatisfied by your previous climaxes, your body yearns to be touched. To be toyed with. To be pleasured. <br><br> And yet your <<genitals_are 1>> not assaulted. Your ass remains unmolested. Instead, the tentacles seem only interested in holding you in this bondage. It's maddening, the pleasure rising within you like the tide. Though you wish to be free, your body wants to be used. Closing your eyes, you moan with frustrated lust even as you ponder escape. <br><br> That sound spurs the tentacles into movement. Several begin to caress your chest and back, thighs and tummy. Far from your most sensitive areas, they nevertheless drive you wild as you find yourself bucking against them. You ache with arousal, your mind drifting in a sea of desire. <br><br> It's too much. Though unable to get yourself off, or perhaps because of it, you find your body tingling as your climax begins to build. You moan as the tentacles increase their speed, the dam within you breaking. It is slow, the pleasure building upon itself as the orgasmic energy pours into your pelvis and you suck in deep ragged breaths. It's too much. <br><br> You cum, twitching against your captor as you groan through your climax. It lasts for many seconds, the tentacles gliding over your flesh as the pleasure pulses brighter and brighter within you. Your stiff body collapses and you let out a long exhausted exhale. <<orgasmstat>><<orgasmcount 1>> <br><br> <<link [[Next|Passout Tentacle World 2]]>><</link>> <br><<location "tentworld">><<set $outside to 0>><<effects>> But it's not over. Before you can regain your senses, two naughty tentacles find your <<nipples>> and begin to vigorously grind against them. You squeal at this spike of pleasure, your eyes flying open as you look down at your chest. Instead of feeling your orgasm dissipate, it seems that this new assault has created an echo chamber within your nervous system and you realise with horror and anticipation that a new climax is beginning to build within you. <br><br> Before it peaks, however, a third tentacle slides between your bottom and rubs aggressively over your hole, eliciting an even louder squeal from you as the pleasure in your <<nipples>> and asshole merge into a tsunami that crashes against you. Your climax speeds towards you and you open your mouth to scream. <br><br> Instead you cry out as the tentacles force you to cum hard. You buck and writhe against your bindings. Your eyes flutter open and closed. Moans escape your throat as you endure the orgasm, the time growing indistinct as you cum and cum and cum. <<orgasmstat>><<orgasmcount 1>> <br><br> Eventually, the powerful feelings start to fade. Despite the tentacles still teasing your body, you feel the effects of this newest climax receding. Your mind, soaked for so long in a fog of unrelenting pleasure, starts to clear. <br><br> <<link [[Next|Passout Tentacle World 3]]>><</link>> <br><<location "tentworld">><<set $outside to 0>><<effects>> Then a tentacle flicks the tip of your <<print ($player.penisExist ? "penis" : "clit")>> hard, sending a jolt right to your brain. With tentacles torturing your ass and nipples, this lone strike against your most sensitive place, which up until now had not been subjected to any sensations, overloads your system. You cum suddenly, your body unprepared for the unstoppable pleasure. The explosion within you causes your body to spasm, your hands clenched tight and your feet kicking out spastically. <<orgasmstat>><<orgasmcount 1>> <br><br> Before this newest climax can properly fade, your <<genitals_are 1>> subjected to another hard slap that sends you spiralling into a fourth orgasm. You scream as the tingling breaks down your mental barriers. <<orgasmstat>><<orgasmcount 1>> <br><br> Another slap. <<set $arousal to 10000>><<orgasm>> Another. <<set $arousal to 10000>><<orgasm>> It goes on and on and on, your body no longer distinguishing one peak from the next. Your breathing ragged, your body fights the losing battle against the pleasure being forced upon you and your mind begins to shatter. <br><br> Overwhelmed with unending orgasms, you eventually crash into unconsciousness. <br><br> <<link [[Next|Passout Tentacle World 4]]>><<clotheson>><</link>> <br><<set $outside to 0>><<effects>> <<if $tentacleEntrance is "mirror">><<set $location to "home">> You wake up on the floor next to your mirror. That was quite the nightmare. <br><br> <<tentacleworldend>> <<link [[Next|Bedroom]]>><</link>> <<else>> <<set $location to "asylum">> You wake in darkness. You're back in the asylum, in the tiny room.<<endevent>><<npc Harper>><<person1>> <br><br> <<tentacleworldend>> <<link [[Next|Asylum Room 2]]>><</link>> <</if>> <br><<location "tentworld">><<set $outside to 0>><<effects>> <<if $tentacleorgasmignore is undefined>><<set $tentacleorgasmignore to 0>><</if>> You are on the tentacle plains. <<if $phase is 5>> You feel the slime in your head make a strange noise as you head in the direction it wants you to go. Tendrils growing from the ground seem to avoid you while the air seems clearer than before. <<if $tentacleorgasmignore is 0>><<set $tentacleorgasmignore to 1>><</if>> <<else>> Tendrils growing from the ground strain to reach your <<genitals>>, caressing your thighs and whatever else they can reach. The air is sweet. <<drugs 10>><<ggarousal>><<arousal 1200>> <</if>> <br><br> <<switch $phase>> <<case 1>> You walk north. <br><br> <<case 2>> You walk south. <br><br> <<case 3>> You walk east. <br><br> <<case 4>> You walk west. <br><br> <</switch>> <<tentaclewolf>> <<set $phase to 0>> <<if $stress gte $stressmax>> <<passouttentacleworld>> <<elseif $arousal gte $arousalmax and $eventskip isnot 1 and $tentacleorgasmignore lte 0>> <<orgasm>> Energised, the tentacles around you dart higher than normal. They wrap around your arms and drag you to the ground. <br><br> <<link [[Next|Tentacle Rape]]>><<set $molestationstart to 1>><</link>> <br> <<else>> <<if $arousal gte $arousalmax and $tentacleorgasmignore gte 1>> <<orgasm>><<set $tentacleorgasmignore -= 1>> The tentacles don't take advantage of your vulnerability. <br><br> <</if>> <<if $tentnorth is 0 and $tenteast is 0>> <<if $tentacleEntrance is "mirror">> You stand in front of your mirror. <br> <<mirroricon "blood">><<link [[Walk through|Tentacle Home Return]]>><</link>> <<else>> The door to the asylum is nearby. <br> <<asylumicon "door">><<link [[Return to asylum|Tentacle Return]]>><</link>> <</if>> <br><br> <</if>> <<if $tentnorth is $tentportalnorth and $tenteast is $tentportaleast>> <<if $wolfgirl gte 6 and $syndromewolves gte 1>> You see another door in the distance, similar to the one that led you here. It's surrounded by tentacles. The door is wide open, and the forest lies on the other side, promising escape. You see a black blur shift before snapping and snarling at one of the tendrils. <br><br> <<foresticon>><<link [[Run for the door|Tentacle Wolf Escape]]>><</link>> <br><br> <<else>> A door stands open here. There's a forest beyond. <br> <<foresticon>><<link [[Enter|Tentacle Escape]]>><</link>> <br><br> <</if>> <</if>> <<if $tentnorth gte 5 or $tentnorth lte -5 or $tenteast gte 5 or $tenteast lte -5>> The plains stretch to the horizon. You don't want to wander too far from the portal. <br><br> <</if>> <<if $tentnorth is 4 and $tenteast is 4 and $tentspray isnot 1>> A red light hovers in the air at chest-height, held aloft by thin tendrils. <br> <<peppersprayicon>><<link [[Touch|Tentacle Plains Spray]]>><<set $spraymax += 1>><<set $tentspray to 1>><<spray 5>><</link>><<gspraymax>> <br><br> <</if>> <<if numberOfEarSlime() gte 2 and $earSlime.growth gt 50 and $earSlime.focus isnot "none" and !$weekly.earSlimeTentaclePlains and $tentnorth lte 0 and $tenteast lte 1>> <span class="red">You feel the slime in your head urge you to face a specific way, as if it wants you to head towards something.</span> <br> <<if $tentnorth is -5 and $tenteast is -4>> <<ind>><<link [[Follow the slime's directions (0:10)|Tentacle Plains Ear Slime]]>><<pass 10>><</link>> <<else>> <<ind>><<link [[Follow the slimes' directions (0:10)|Tentacle Plains]]>> <<pass 10>><<set $phase to 5>> <<if $tenteast gte -3 and random(0,100) gte 50>> <<set $tenteast -= 1>> <<elseif $tenteast is -5 and random(0,100) gte 50>> <<set $tenteast += 1>> <<elseif $tentnorth gt -5>> <<set $tentnorth -= 1>> <<elseif $tenteast gte -3>> <<set $tenteast -= 1>> <<elseif $tenteast is -5>> <<set $tenteast += 1>> <</if>> <</link>> <</if>> <br> <</if>> <<if $tentnorth lt 5>> <<tentacleicon "north">><<link [[North (0:10)|Tentacle Plains]]>><<pass 10>><<set $tentnorth += 1>><<set $phase to 1>><</link>> <br> <</if>> <<if $tentnorth gt -5>> <<tentacleicon "south">><<link [[South (0:10)|Tentacle Plains]]>><<pass 10>><<set $tentnorth -= 1>><<set $phase to 2>><</link>> <br> <</if>> <<if $tenteast lt 5>> <<tentacleicon "east">><<link [[East (0:10)|Tentacle Plains]]>><<pass 10>><<set $tenteast += 1>><<set $phase to 3>><</link>> <br> <</if>> <<if $tenteast gt -5>> <<tentacleicon "west">><<link [[West (0:10)|Tentacle Plains]]>><<pass 10>><<set $tenteast -= 1>><<set $phase to 4>><</link>> <br> <</if>> <<if $demon gte 6 and $tentacleadmire gte 1>> <<tficon "demon">><<link [[Offer yourself|Tentacle Plains Admire]]>><</link>><<demon>> <br> <<elseif $demon gte 6>> <<tficon "demon">><<link [[Admire|Tentacle Plains Admire]]>><</link>><<demon>> <br> <</if>> <<if $tentaclewolf gte 2>> <<tficon "wolf">><<link [[Howl|Tentacle Plains Howl]]>><<transform wolf 1>><</link>><<wolfgirl>> <br> <</if>> <<if $angel gte 6 and $tentacleangel gte 2>> <<tficon "angel">><<link [[Resist|Tentacle Plains Resist]]>><</link>><<angel>> <br> <<elseif $angel gte 6>> <<tficon "angel">><<link [[Focus|Tentacle Plains Resist]]>><</link>><<angel>> <br> <</if>> <<if $fallenangel gte 2>> <<tficon "fallenangel">><<link [[Despair|Tentacle Plains Despair]]>><</link>><<fallenangel>> <br> <</if>> <<if $cat gte 6>> <<tficon "cat">><<link [[Pounce|Tentacle Plains Cat]]>><<transform cat 1>><</link>><<cat>> <br> <</if>> <<if $cow gte 6 and $settings.breastFeedingEnabled>> <<tficon "cow">><<link [[Let the tentacles milk your breasts|Tentacle Cow Breasts]]>><<transform cow 1>><</link>><<cow>> <br> <</if>> <<if $cow gte 6 and $player.penisExist and !playerChastity("penis")>> <<tficon "cow">><<link [[Let the tentacles milk your penis|Tentacle Cow Penis]]>><<transform cow 1>><</link>><<cow>> <br> <</if>> <<if $harpy gte 6>> <<tficon "bird">><<link [[Get a bird's eye view|Tentacle Bird]]>><<transform bird 1>><</link>><<flight_text>> <br> <</if>> <<if $fox gte 6>> <<tficon "fox">><<link [[Look for something to steal|Tentacle Plains Fox]]>><<transform fox 1>><</link>><<fox>> <br> <</if>> <</if>> <<set $eventskip to 0>><<set $location to "home">><<set $outside to 0>><<effects>> You step through the mirror, and you're back in your room. The eerie light fades, as if it were never there. <br><br> <<tentacleworldend>> <<link [[Next|Bedroom]]>><</link>> <br><<location "tentworld">><<set $outside to 0>><<effects>> <<if $tentaclefallenangel is undefined>> <<set $tentaclefallenangel to 0>> You growl at the unfairness of the situation. Flashbacks of the last few days play out through your head, filling you with anger and dread. What did you do to deserve this? The world robbed you of your purity, and has now dumped you here. You deliver a vicious kick to one of the tentacles at your feet. You have fallen so far. Your anger distracts you from the lewd warmth within you. <<gstress>><<larousal>><<stress 6>><<arousal -600>> <br><br> <<link [[Next|Tentacle Plains]]>><</link>> <br> <<elseif $tentaclefallenangel is 0>> <<set $tentaclefallenangel to 1>> The anger keeps building. The injustices committed against you all come rushing back. Memories of the pain you've experienced resurface at full force, opening wounds that should have long since healed. The pain is as real as when you first felt it, driving you to keel over in agony. The tentacles around you recoil. <<gpain>><<llarousal>><<pain 20>><<arousal -1200>> <br><br> <<link [[Next|Tentacle Plains]]>><</link>> <br> <<elseif $tentaclefallenangel is 1>> <<set $tentaclefallenangel to 2>> You remember the faces of everyone who wronged you. Every single one is floating around you, laughing at your torment and mocking you for your weakness. They jeer into the sickeningly sweet air in unison. Each word is another scar on your tattered existence. You fall to the ground, writhing in pain. The tears sting your face. <<gpain>><<lllarousal>><<pain 20>><<arousal -1800>> <br><br> <<link [[Next|Tentacle Plains]]>><</link>> <br> <<elseif $tentaclefallenangel is 2>> <<set $tentaclefallenangel to 3>> The world has wronged you. You've been forsaken in an alien land. As the pain overwhelms you, your vision begins to fade. The tendrils creep closer. <br><br> "No." Surprised by your own voice, you snap back to full attention. You get back to your feet. The pain is almost too much to bear. Almost. You throw your head back, and release an agonised scream. It carries the lifetime of torment that tortures you. <br><br> The tentacles retreat. The world thinks it can just dump you here to be forgotten and used by alien creatures like a toy. Maybe you deserve it, but you're not going to let it happen. <br><br> Whether this world is real or not, you're determined to make it back to your own out of pure spite alone. You'll show them all. Nobody has seen the last of you, but they're going to wish they had. <<gpain>><<lltrauma>><<llstress>><<lllarousal>><<pain 30>><<trauma -18>><<stress -18>><<arousal -2400>> <br><br> <<link [[Next|Tentacle Plains]]>><</link>> <br> <<else>> Each memory is more pain, and you have no shortage of them. It drives you to keep moving, and the sting keeps you alert as you search for a way out. <<gpain>><<llarousal>><<pain 10>><<arousal -1800>> <br><br> <<link [[Next|Tentacle Plains]]>><</link>> <br> <</if>><<location "tentworld">><<set $outside to 0>><<effects>> <<if $tentacleangel is undefined>> <<set $tentacleangel to 0>> You kneel and reflect upon the events that led you to this place. Completely disgusted by your surroundings, you find the willpower to continue. These horrors will not hold you. <<llarousal>><<arousal -1200>> <br><br> <<link [[Next|Tentacle Plains]]>><</link>> <br> <<elseif $tentacleangel is 0>> <<set $tentacleangel to 1>> As you meditate in the barren plains, the ground around you almost seems to get brighter. You feel better about your situation. <<lstress>><<stress -6>><<llarousal>><<arousal -1200>> <br><br> <<link [[Next|Tentacle Plains]]>><</link>> <br> <<elseif $tentacleangel is 1>> <<set $tentacleangel to 2>> In the depths of your mind, you hear a distant choir sing a single note. The halo above your head is getting brighter, and the lewd warmth within you melts away. <span class="gold">This place will not hold you.</span> <<lllarousal>><<arousal -2400>> <br><br> <<link [[Next|Tentacle Plains]]>><</link>> <br> <<elseif $tentacleangel is 2>> <<set $tentacleangel to 3>> You are a beacon of light. The tentacles grasping your feet retract away from you. You are above this wasteland, it does not deserve your radiant presence. You keep repeating that to yourself. <span class="gold">This place will not hold you.</span> <<lllarousal>><<arousal -2400>> <br><br> <<link [[Next|Tentacle Plains]]>><</link>> <br> <<else>> The light from your halo is blinding. You are above this place. You are above this place. You repeat the mantra out loud. The floor falls away from beneath you. You can't see the tentacles. The light from your halo encompasses all. You feel yourself rising higher and higher, the dark sky offering no resistance to your ascent. You rise and rise. <br><br> <<if $tentacleEntrance is "asylum">> <<asylumescape>> <<badEndTrackingEnd "Asylum" { reason: "asylumTentacleAngel" }>> <</if>> <<endevent>><<tentacleworldend>> <<set $forest to random(50, 100)>> <<link [[Next|Mirror]]>><<set $location to "home">><</link>> <br> <</if>><<location "tentworld">><<set $outside to 0>><<effects>> You make a mad dash for the door, pushing every muscle to its limits. The Black Wolf turns and sees you. It howls into the air in triumph at your approach. The tendrils shift their attention to you. A stray tentacle grabs you by the leg, tripping you. <br><br> You twist yourself over and bite the tentacle, piercing it with your fangs. It recoils and retreats. You get to your feet and keep going. <br><br> The door is within arm's reach. You jump forward to cover the final distance as a surge of tendrils chase you. A few gain purchase around your legs, but the Black Wolf grabs your neck<<npc "Black Wolf">><<if $monster isnot 1>> in its jaws<</if>> and pulls you through the door. <br><br> You fall forward and kick the remaining tentacles off. The door slams shut behind you, and vanishes. You are deep in the forest. The asylum stands before you. The Black Wolf gruffs and licks your face. <<if $monster is 1>> "Heard you, smelled you. Knew trouble. Bad land. Safe now. Home." <<bHe>> lifts you up, and you journey to the cave. <<else>> The wolf lets you climb on to its back, and together you journey to the cave. <</if>> <<lstress>><<ltrauma>><<stress -6>><<trauma -6>> <br><br> <<if $tentacleEntrance is "asylum">> <<asylumescape>> <<badEndTrackingEnd "Asylum" { reason: "asylumBlackWolf" }>> <</if>> <<endevent>><<tentacleworldend>> <<set $forest to random(50, 100)>> <<link [[Next (0:30)|Wolf Cave Clearing]]>><<pass 30>><</link>> <br><<location "tentworld">><<set $outside to 0>><<effects>> You rear your head back and howl to the bleak sky. A much louder, more energetic howl responds from <<tentacledirection>> You can feel the adrenaline as your wild spirit ignites. You don't know how, but you feel like escape is at hand, and the thought drives you to continue. <br><br> <<link [[Next|Tentacle Plains]]>><</link>> <br><<location "tentworld">><<set $outside to 0>><<effects>> <<if $tentaclecat is undefined>> <<set $tentaclecat to 1>> Your eyes focus. There are so many writhing, slippery little things here. One small tentacle catches your attention as it brushes against your foot. You swipe at it, and it recoils. <<larousal>><<lstress>><<arousal -120>><<stress -6>> <br><br> <<link [[Next|Tentacle Plains]]>><</link>> <br> <<elseif $tentaclecat is 1>> <<set $tentaclecat to 2>> You pounce after another tentacle. Other tentacles begin to slither away from you. This is fun! <<larousal>><<llstress>><<arousal -120>><<stress -12>> <br><br> <<link [[Next|Tentacle Plains]]>><</link>> <br> <<elseif $tentaclecat is 2>> <<set $tentaclecat to 3>> You pounce, catching a small tentacle and biting down on it. You catch another. And another. You make a small bundle of tentacles and paw it around. <<larousal>><<llstress>><<arousal -120>><<stress -12>> <br><br> <<link [[Next|Tentacle Plains]]>><</link>> <br> <<else>> <<unset $tentaclecat>> You pounce and grab onto a larger tentacle, biting into it and wrestling it to the ground. It quickly retreats from you. <<set $tentacleorgasmignore += 1>><span class = green>There are no other tentacles nearby. Your next orgasm might not be so dangerous.</span> <br><br> <<link [[Next|Tentacle Plains]]>><</link>> <br> <</if>><<location "tentworld">><<set $outside to 0>><<effects>> <<if $tentaclefox is undefined>> <<set $tentaclefox to 1>> You look around. There's a lot of moving things, but very few shiny things that catch your eye. A particularly slick tentacle looks shiny enough. You make a grab for it, but it slips away. <<larousal>><<lstress>><<arousal -120>><<stress -6>> <br><br> <<link [[Next|Tentacle Plains]]>><</link>> <br> <<elseif $tentaclefox is 1>> <<set $tentaclefox to 2>> You get low to the ground, stalking another shiny tentacle. You see a lump halfway up its length. Your pupils dilate. <br><br> You pounce, but miss, and the tentacle slithers into the ground. Not satisfied, you jump into the air, diving right into the same spot. You end up buried to your waist, upper body lodged in the ground. <br><br> Exactly as planned. You're able to grab the tentacle with your right hand, and rapidly push yourself back out of the fresh hole you've made in the soft ground. It squirms to no avail. <br><br> You take off with your prize. <<larousal>><<llstress>><<arousal -120>><<stress -12>> <br><br> <<link [[Next|Tentacle Plains]]>><</link>> <br> <<elseif $tentaclefox is 2>> <<set $tentaclefox to 3>> You raid another tentacle den, and find another lumpy tentacle. You squeeze them, and they produce two small, egg-shaped objects! <br><br> You shove them both into your mouth without a moment's hesitation. <br><br> You immediately realise how stupid that was to do. <<drugs 70>><<gdrugged>> <br><br> <<link [[Next|Tentacle Plains]]>><</link>> <br> <<else>> <<unset $tentaclefox>> You clumsily stumble around, trying to find more tentacles to harass. <<set $tentacleorgasmignore += 1>><span class = green>But they seem to be avoiding you. Your next orgasm might not be so dangerous.</span> <br><br> <<link [[Next|Tentacle Plains]]>><</link>> <br> <</if>><<location "tentworld">><<set $outside to 0>><<effects>> <<if $tentaclecow is undefined>> <<set $tentaclecow to 1>> You think you know a way to satisfy the tentacles. <<else>> You prepare to satisfy the tentacle's thirst. <</if>> You drop to all fours, and they begin slithering up your arms. <<outfitChecks>> <<if _top>> <<if pcAreArmsBound("any")>> A pair of tentacles <<else>> You <</if>> displace your <<allTopsUnderwear>>.<<overupperstrip>><<upperstrip>><<underupperstrip>> <</if>> You wiggle in place, drawing attention to your <<breasts>>. The response is almost immediate. The tentacles latch on to your chest and begin sucking. <br><br> <<= $lactating is 1 ? "Milk leaks from your buds, and your body shakes. Your fluid is sucked away by the tentacles. You" : "Your body shakes as you">> remain on your hands and knees, two tentacles clinging to your <<breasts>>. <<arousal 1000 "breasts">><<ggarousal>> <br><br> <<if $lactating is 1>> <<set _tentacles_milk to ($milk_amount / 2)>> <<milk_amount `-_tentacles_milk`>> <<set $milk_produced_stat += Math.trunc(_tentacles_milk)>> <<if _tentacles_milk gte 50>> <<set $tentacleorgasmignore += 1>> Full, the tentacles release you and scatter. <span class = "green">They seem satisfied. Your next orgasm might not be so dangerous.</span> <<else>> The tentacles keep sucking. <span class = "red">They aren't satisfied by the amount of milk you produce.</span> Eventually, their sucking becomes painful, forcing you to pull them off. <<pain 10>><<gpain>> <</if>> <<else>> You fail to produce any milk. <span class = "red">The tentacles aren't satisfied.</span> <</if>> <<purity -5>> <<clotheson>> <<endcombat>> <<link [[Next|Tentacle Plains]]>><<endevent>><</link>> <br><<location "tentworld">><<set $outside to 0>><<effects>> <<if $tentaclecow is undefined>> <<set $tentaclecow to 1>> You think you know a way to satisfy the tentacles. <<else>> You prepare to satisfy the tentacle's thirst. <</if>> You drop to all fours, and they begin slithering up your legs. <<outfitChecks>> <<if _bottom>> <<if $feetuse is "bound">> A pair of tentacles <<else>> You <</if>> displace your <<allBottomsUnderwear>>.<<overlowerstrip>><<lowerstrip>><<underlowerstrip>> <</if>> <<set $penisuse to "tentacle">><<set $tentaclePenis to "tentacle">> <<set _tentacles_semen to ($semen_amount / 2)>> You wiggle your <<bottom>>, drawing attention to your <<penis>>. The response is almost immediate. A tentacle latches on to you, and begins sucking. <br><br> You gasp at the sensation. The tentacle expands and shrinks while sucking. <<arousal 10000>><<ggarousal>> <<orgasm>> <br><br> Your semen is sucked away, and the tentacle releases you. Another one takes its place before you can react. <<orgasm>> <br><br> <<semen_amount `-_tentacles_semen`>> <<set $semen_produced_stat += _tentacles_semen>> <<if _tentacles_semen gte 100>> <<set $tentacleorgasmignore += 1>> Full, the tentacles release you and scatter. <span class = "green">They seem satisfied. Your next orgasm might not be so dangerous.</span> <<else>> The tentacle keeps sucking. <span class = "red">It isn't satisfied by the amount of semen you produce.</span> Eventually, its sucking becomes painful, forcing you to pull it off. <<pain 10>><<gpain>> <</if>> <<purity -20>> <<clotheson>> <<endcombat>> <<link [[Next|Tentacle Plains]]>><<endevent>><</link>> <br><<location "tentworld">><<set $outside to 0>><<effects>> <<if $tentacleadmire is undefined>> <<set $tentacleadmire to 0>> As your eyes scan the unending horizon, everything seems to slow down. The smooth sway of the tentacles becomes almost hypnotic to you. Before long you're swaying in place, too. The tentacles at your feet tickle you. <<ltrauma>><<lstress>><<garousal>> <br><br> <<trauma -6>><<stress -6>><<arousal 600>> <<link [[Next|Tentacle Plains]]>><</link>> <br> <<elseif $tentacleadmire is 0>> <<set $tentacleadmire to 1>> Everything begins to melt away as you focus on the landscape. Nothing else seems to matter. The world outside holds no meaning. Your only thoughts are of the immense pleasure this realm could offer you. Your tail moves in a phantom breeze, and a tentacle gently creeps up your leg. <<ltrauma>><<lstress>><<garousal>> <br><br> <<trauma -6>><<stress -6>><<arousal 600>> <<link [[Next|Tentacle Plains]]>><</link>> <br> <<elseif $tentacleadmire is 1>> <<set $tentacleadmire to 2>> You feel no guilt or self-loathing as the heat builds within you. Every tentacle seems to provocatively motion for you to just come one step closer. You can't help yourself any longer. You fall to your knees and present yourself to the countless tentacles surrounding you. They respond to your offering and snake up your arms, legs, and tail. <<gcontrol>><<control 25>><<ltrauma>><<lstress>><<ggarousal>> <br><br> <<trauma -6>><<stress -6>><<arousal 1200>> <<if pcAreArmsBound("any") or $feetuse is "bound">> A pair of tentacles reach your <<if pcAreArmsBound("any")>>arms<<if $feetuse is "bound">> and <</if>><</if>> <<if $feetuse is "bound">>legs<</if>> and squirt a viscous liquid onto your bindings, slowly dissolving them.<<unbind>> <br><br> <</if>> <<link [[Next|Tentacle Plains Admire Sex]]>><<set $sexstart to 1>><</link>> <<else>> Just thinking about what's to come is driving you mad with lust. You could leave at any time, and yet here you remain. You crouch low to the ground, taking a tentacle in each hand. They respond to your touch eagerly, and an entire swarm of tentacles is soon upon you. <<gcontrol>><<control 25>><<ltrauma>><<lstress>><<ggarousal>> <br><br> <<trauma -6>><<stress -6>><<arousal 1200>> <<link [[Next|Tentacle Plains Admire Sex]]>><<set $sexstart to 1>><</link>> <</if>><<location "tentworld">><<set $outside to 0>> <<if $sexstart is 1>><<set $sexstart to 0>> <<set $combat to 1>> <<set $enemytype to "tentacles">> <<consensual>> <<set $consensual to 1>> <<tentaclestart 6 8>> <<set $tentacles[0].shaft to "waist">> <</if>> <<statetentacles>> <<effects>> <<effectstentacles>> <<tentacles>> <<actionstentacles>> <<if $tentacles.active lte ($tentacles.max / 2)>> <span id="next"><<link [[Next|Tentacle Plains Admire Sex Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Tentacle Plains Admire Sex]]>><</link>></span><<nexttext>> <</if>><<effects>> As your body is completely covered by the warm, writhing masses, you take another look at the land around you. This twisted world is a perversion of all that is right, a vile mockery of the world you know. It's defiled, it's corrupt, it's evil. It's just like you. <br><br> <<set $eventskip to 1>> <<clotheson>> <<endcombat>> <<link [[Next|Tentacle Plains]]>><</link>> <br><<location "tentworld">><<set $outside to 0>><<effects>> You step through the door. It seals shut behind you. You're in the forest. <br><br> <<if $tentacleEntrance is "asylum">> <<asylumescape>> <<badEndTrackingEnd "Asylum" { reason: "asylumTentacle" }>> <</if>> <<endevent>><<tentacleworldend>> <<set $forest to random(50, 100)>> <<link [[Next|Forest]]>><</link>> <br><<location "asylum">><<set $outside to 0>><<effects>> You go through the door back to the asylum. It seals shut behind you. <br><br> <<endevent>><<npc Harper>><<person1>><<tentacleworldend>> <<link [[Next|Asylum Room 2]]>><</link>> <br><<location "tentworld">><<set $outside to 0>> <<if $molestationstart is 1>> <<set $molestationstart to 0>> <<set $combat to 1>> <<set $enemytype to "tentacles">> <<controlloss>> <<molested>> <<tentaclestart 12 15>> <<set $tentacles[0].shaft to "waist">> <</if>> <<statetentacles>> <<effects>> <<effectstentacles>> <<tentacles>> <<actionstentacles>> <<if $tentacles.active lte ($tentacles.max / 2)>> <span id="next"><<link [[Next|Tentacle Rape Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Tentacle Rape]]>><</link>></span><<nexttext>> <</if>><<effects>> The tentacles lose interest in you, for now. <<tearful>> you struggle to your feet. <br><br> <<set $eventskip to 1>> <<clotheson>> <<endcombat>> <<arousal -1000>> <<link [[Next|Tentacle Plains]]>><</link>> <br><<location "tentworld">><<set $outside to 0>><<effects>><<wearProp "pepperspray">> The light pulses and fades at your touch. The tendrils fall away. Your pepper spray feels warm. <br><br> <span class="gold">You've gained an additional pepper spray charge.</span> <br><br> <<link [[Next|Tentacle Plains]]>><<handheldon>><</link>> <br><<effects>> You take to the air, leaving the writhing tentacles far below. Your wings soon tire, but you're able to get a good view. <br><br> <<set _tent_portal_north to $tentnorth - $tentportalnorth>> <<set _tent_portal_east to $tenteast - $tentportaleast>> <<set _tent_spray_north to $tentnorth - 4>> <<set _tent_spray_east to $tenteast - 4>> <<if _tent_portal_north lte 2 and _tent_portal_north gte -2 and _tent_portal_east lte 2 and _tent_portal_east gte -2>> <<set _tent_found to true>> You see a green door. <<if _tent_portal_north is 0>> <<elseif _tent_portal_north gte 1>> <<Number _tent_portal_north*10>> minutes to the south. <<elseif _tent_portal_north lt 0>> <<Number _tent_portal_north*-10>> minutes to the north. <</if>> <<if _tent_portal_east is 0>> <<elseif _tent_portal_east gte 1>> <<Number _tent_portal_east*10>> minutes to the west. <<elseif _tent_portal_east lt 0>> <<Number _tent_portal_east*-10>> minutes to the east. <</if>> <br> <</if>> <<if $tentnorth gte -2 and $tentnorth lte 2 and $tenteast gte -2 and $tenteast lte 2>> <<set _tent_found to true>> <<if $tentacleEntrance is "mirror">> You see the mirror to your bedroom. <<else>> You see the door to the asylum. <</if>> <<if $tentnorth is 0>> <<elseif $tentnorth gte 1>> <<Number $tentnorth*10>> minutes to the south. <<elseif $tentnorth lt 0>> <<Number $tentnorth*-10>> minutes to the north. <</if>> <<if $tenteast is 0>> <<elseif $tenteast gte 1>> <<Number $tenteast*10>> minutes to the west. <<elseif $tenteast lt 0>> <<Number $tenteast*-10>> minutes to the east. <</if>> <br> <</if>> <<if _tent_spray_north gte -2 and _tent_spray_north lte 2 and _tent_spray_east gte -2 and _tent_spray_east lte 2>> <<set _tent_found to true>> You see a strange object. <<if _tent_spray_north is 0>> <<elseif _tent_spray_north gte 1>> <<Number _tent_spray_north*10>> minutes to the south. <<elseif _tent_spray_north lt 0>> <<Number _tent_spray_north*-10>> minutes to the north. <</if>> <<if _tent_spray_east is 0>> <<elseif _tent_spray_east gte 1>> <<Number _tent_spray_east*10>> minutes to the west. <<elseif _tent_spray_east lt 0>> <<Number _tent_spray_east*-10>> minutes to the east. <</if>> <br> <</if>> <<if _tent_found isnot true>> You don't see anything interesting. <br> <</if>> <br> <<link [[Next|Tentacle Plains]]>><<set $eventskip to 1>><</link>> <br><<effects>> <<set $weekly.earSlimeTentaclePlains to true>> You continue following the slime's direction, walking well beyond where you would normally dare to go on this endless plain of tentacles. <<if !$earSlime.pod>> Just as you pass one of the largest tentacles you've been near so far, you spot what looks like a pod opening up. A feeling of dread fills you. <<else>> As you pass the large tentacle again, you spot the pod opening up once more. You shiver knowing what it will do if you lie in it. <</if>> <br><br> <span class="lewd">You feel the slime in your head command you to lie down inside the pod.</span> <span class="red">It expects to be obeyed.</span> <br><br> <<link [[Obey|Tentacle Plains Ear Slime Obey]]>><<corruption 1>><<pain -4>><<stress -6>><<trauma -12>><<sub 2>><</link>><<gcorruption>><<lpain>><<lltrauma>><<lstress>> <br> <<link [[Defy|Tentacle Plains Ear Slime Defy]]>><<corruption -1>><<pain 8>><<stress 6>><<trauma 6>><<def 1>><</link>><<lcorruption>><<ggpain>><<ggtrauma>><<ggstress>> <br><<effects>> Following the slime's instructions, you walk to the pod<<if !$earSlime.pod>> while doing your best to ignore the growing feeling of dread<<else>>, unable to stop shaking<</if>>. Hesitating a moment, you gulp and then climb into it. <br><br> <<link [[Next|Tentacle Plains Ear Slime 2]]>><</link>><<effects>> <<if $earSlime.corruption + $earSlime.growth gte (currentSkillValue('willpower') / 5)>> <<if $earSlime.growth gte 100>> <<set $earSlime.defyCooldown += 12>> <</if>> The slime tries to assert control. <span class="red">It overpowers your will,</span> forcing you to walk towards the pod. <<if !$earSlime.pod>> The feeling of dread quickly escalates<<else>> You can't stop trembling.<</if>>. You're unable to stop yourself from climbing into it. <<ggwillpower>><<willpower 3>> <br><br> <<link [[Next|Tentacle Plains Ear Slime 2]]>><</link>> <<else>> <<set $earSlime.defyCooldown += 6>> The slime tries to assert control, <span class="green">but you fight it</span> and manage to walk back towards where you entered the tentacle plains. <<gwillpower>><<willpower 1>> <br><br> <<link [[Next|Tentacle Plains]]>><<endevent>><</link>> <br> <</if>><<effects>> <<set $earSlime.pod to ($earSlime.pod or 0) + 1>> <<set $earSlimeGrown to $earSlime.growth lt 200>> <<set $earSlime.growth += 25>> The moment you lie down, the pod's entrance closes up, and your vision is quickly clouded by a dense fog that you helplessly start breathing in. Pleasure quickly builds in your <<genitals>><<if $earSlime.focus isnot "impregnation">> and <<breasts>><</if>>.<<drugs 500>><<gggdrugged>><<gggarousal>> <br><br> <<if playerChastity("hidden")>> With your $worn.genitals.name in the way, you're unable to do anything but <<if $earSlime.focus isnot "impregnation">> play with your <<breasts>>, as much as it only seems to make the situation worse for you. <<else>> squirm in the small space. <</if>> <<elseif $worn.genitals.name is "chastity parasite">> You can't help but desperately squeeze your $worn.genitals.name, as much as it only seems to make the situation worse for you. <<elseif playerChastity("cage") and !$player.vaginaExist>> You can't help but desperately try to get to your <<penis>> despite it being inside of the $worn.genitals.name. <<elseif $player.penisExist and !playerChastity("penis")>> You can't help but desperately stroke your <<penis>><<if $player.vaginaExist>> while fingering your vagina<</if>>, as much as it only seems to make the situation worse for you. <<else>> You can't help but desperately finger your vagina, as much as it only seems to make the situation worse for you. <</if>> It's not long before you're pushed over the edge. <br><br> <<orgasm>> <<if _deniedOrgasm>> Despite your ruined orgasm, you soon climax a second... third... then fourth time, each one more intense than the last. <br><br> <<orgasm>> <<orgasm>> <<orgasm>> You feel your consciousness fade even as you close in on the next ruined orgasm. <<else>> You soon climax a second... third... then fourth time, each one more intense than the last. <br><br> <<orgasm>> <<orgasm>> <<orgasm>> You feel your consciousness fade even as you close in on the next orgasm. <</if>> <<set $arousal to $arousalmax>> <br><br> /* May run physicalAdjustments or earSlimeDaily twice, its intended */ <<link [[Next|Tentacle Plains Ear Slime 3]]>><<pass 120>><<physicalAdjustments>><<earSlimeDaily true>><<set $arousal to 0>><</link>><<effects>> <<if $genitalsensitivity lt 3>> <<genital_sensitivity 1>> <</if>> <<if $bottomsensitivity lt 3>> <<set $bottomsensitivity += 1>> <</if>> <<if $earSlime.focus isnot "impregnation" and $breastsensitivity lt 3>> <<breast_sensitivity 1>> <</if>> You wake with your <<genitals>><<if $earSlime.focus isnot "impregnation">> and chest<</if>> <span class="pink">feeling more sensitive</span> than before. <<if $earSlimeGrown>>You suspect that it's not the only thing that's changed.<</if>> Noticing that the pod is open, you carefully exit and leave the pod prison behind. <br><br> <<if $tentacleorgasmignore lt 2>> <<set $tentacleorgasmignore to 2>><span class="green">The tentacles still seem to be avoiding you. Your next orgasm might not be so dangerous.</span> <br><br> <</if>> <<link [[Next|Tentacle Plains]]>><<unset $earSlimeGrown>><<endevent>><</link>><<if $sexstart is 1>> <<set $sexstart to 0>> <<consensual>> <<set $consensual to 1>> <<neutral 1>> <<beastCombatInit>> You shift your body to make things easier for the horny <<beasttype>>. <<deviancy1>><<set $enemytrust -= 20>> <<if $wolfpackharmony gte 1>> <<enable_rescue>> <</if>> <<elseif $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<beastCombatInit>> <<set $enemytrust -= 40>> <<if $wolfpackharmony gte 1>> <<enable_rescue>> <</if>> <</if>> <<effects>> <<effectsman>> <<alarmstate '<span class="red">The pack is too busy thinking about themselves to help you.</span>'>> <<beast $enemyno>> <br><br> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Wolf Cave Fight Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Wolf Cave Fight]]>><</link>></span><<nexttext>> <</if>><<set $location to "wolf_cave">><<effects>> You cry for help. <br><br> <<if $wolfpackharmony gte 1>> <<if statusCheck("Black Wolf").love gte 100 and $wolfstate is "cave">> <<endevent>> <<npc "Black Wolf">> The Black Wolf appears quickly at the noise, bounding towards the aggressor and snarling in a way that sends chills down your spine. They flee immediately. <br><br> The Black Wolf huffs before nuzzling your cheek. <<if $monster is 1>> <<if $wolfpackharmony gt $wolfpackferocity>> "I protect mate," <<bhe>> says. <<else>> "Mate is <i>mine</i>," <<bhe>> says. <</if>> <</if>> <br><br> The other <<wolf_cave_plural>> give <<bhim>> a wide berth as <<bhe>> leaves. <<else>> The other <<beastsplural>> growl at the aggressor, who slinks away in response. <</if>> <<lharmony>> <br><br> <<destinationwolfcave>> <<else>> The other <<beastsplural>> don't care. <br><br> <<link [[Next|Wolf Cave Fight]]>><<set $molestationstart to 1>><</link>> <br> <</if>><<set $location to "wolf_cave">><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<beastejaculation>> <br> The <<beasttype>> yawns and lies down.<<wolfpacktrust>> <br><br> <<tearful>> you climb to your feet. <br><br> <<clotheson>> <<endcombat>> <<elseif $enemyhealth lte 0>> The <<beasttype>> limps away from you. <<if $monster is 1>>"Was just playing... too rough..."<</if>> <br><br> <<tearful>> you climb to your feet. <br><br> <<clotheson>> <<endcombat>> <<elseif $rescue is 1 and $alarm is 1>><<set $rescued += 1>> The other <<beastsplural>> growl at the <<beasttype>> assaulting you. <<bHe>> growls back at first, but then backs down and leaves you alone. <<lharmony>> <br><br> <<tearful>> you climb to your feet. <br><br> <<clotheson>> <<endcombat>> <<else>> The <<beasttype>> yawns and lies down. <br><br> <<tearful>> you climb to your feet. <br><br> <<clotheson>> <<endcombat>> <</if>> <<destinationwolfcave>><<set $location to "wolf_cave">><<effects>> <<if $phase is 0>> You stroke the low ranking <<beasttype 0>>, and <<bhis 0>> ears perk up. The more dominant <<beasttype 1>> growls, but doesn't press it. <<gharmony>><<lferocity>> <br><br> <<deviancy1>> <<endevent>> <<loadNPC 0 wolf_rank_1>> <<clearNPC wolf_rank_1>> <<clearNPC wolf_rank_2>> <<link [[Next|Wolf Cave Fight]]>><<set $sexstart to 1>><</link>> <br> <<elseif $phase is 1>> You stroke the high ranking <<beasttype 1>>. The less dominant <<beasttype 0>> walks away with <<bhis 0>> tail down. <<lharmony>><<gferocity>> <br><br> <<deviancy1>> <<endevent>> <<loadNPC 0 wolf_rank_2>> <<clearNPC wolf_rank_1>> <<clearNPC wolf_rank_2>> <<link [[Next|Wolf Cave Fight]]>><<set $sexstart to 1>><</link>> <br> <<elseif $phase is 2>> <<endevent>> <<loadNPC 0 wolf_rank_2>> <<loadNPC 1 wolf_rank_1>> <<clearNPC wolf_rank_1>> <<clearNPC wolf_rank_2>> You stroke both of them. The dominant <<beasttype 0>> seems less pleased, but doesn't cause a fuss. <<bHe 0>> insists on taking you first. <<gharmony>><<gferocity>> <br><br> <<deviancy2>> <<link [[Next|Wolf Cave Fight Duo]]>><<set $sexstart to 1>><</link>> <br> <<else>> You turn away from them both. The more dominant <<beasttype 1>> growls, but doesn't press it. <br><br> <<endevent>> <<destinationwolfcave>> <</if>><<set $location to "wolf_cave">><<effects>> <<if $phase is 0>> You cover the wounded <<beasttype>> with your body. The other <<beasttype>> bares its teeth at you, but relents. <<gharmony>><<lferocity>> <br><br> <<elseif $phase is 1>> You stroke the <<beasttype>> who drew blood. <<bHe>> jumps at your touch, as if expecting attack, but continues once <<bhe>> realises what you're doing. <<lharmony>><<gferocity>> <br><br> <<else>> You ignore the <<beastsplural>>. The wounded <<beasttype>> whimpers, and the other stops. <br><br> <</if>> <<destinationwolfcave>><<set $location to "wolf_cave">><<effects>> <<if $phase is 0>> You walk over to the Black Wolf and drop to your knees to stroke <<bhis>> head. <<bHe>> shakes you off, then presents <<bhis>> genitals to you. <<if $monster is 1>> "Angry. Help.<<print ((playerHeatMinArousal() and (V.player.vaginaExist or canBeMPregnant()) and V.NPCList[0].penis !== "none") ? ' You ready.' : '')>><<print ((playerRutMinArousal() and $NPCList[0].vagina isnot "none") ? " I'm ready." : '')>>" <</if>> <br><br> <<if pcAreArmsBound("both")>> <span class="red">Both of your arms are bound</span>, so you are unable to use your hands. <<else>> <<link [[Take in hand|Wolf Cave Black Wolf]]>><<set $sexstart to 1>><</link>><<deviant1>> <</if>> <br> <<if hasSexStat("deviancy", 4)>> <<link [[Take it in mouth|Wolf Cave Black Wolf]]>><<set $phase to 1>><<set $sexstart to 1>><</link>><<deviant4>> <br> <</if>> <<if $wolfgirl gte 6 and hasSexStat("deviancy", 5)>> <<if playerAwareTheyAreInHeat() and $NPCList[0].penis isnot "none" and (($player.vaginaExist and !playerChastity("vagina")) or (canBeMPregnant() and !playerChastity("anus")))>> <<link [[Present your behind|Wolf Cave Black Wolf]]>><<set $phase to 2>><<set $sexstart to 1>><</link>><<deviant5>><<wolfgirl>><<heat>> <br> <</if>> <<if playerRutMinArousal() and $NPCList[0].vagina isnot "none" and !playerChastity("penis")>> <<link [[Playful bite|Wolf Cave Black Wolf]]>><<set $phase to 3>><<set $sexstart to 1>><</link>><<deviant5>><<wolfgirl>><<rut>> <br> <</if>> <</if>> <<link [[Refuse|Wolf Cave Calm]]>><<set $phase to 1>><</link>> <br> <<elseif $phase is 1>> <<if $monster is 1>> "No challenge. Obey!" <</if>> The Black Wolf continues harassing the other <<wolf_cave_plural>>, who do their best to avoid <<bhim>>. <<bHe>> eventually calms down, but leaves the rest of the pack anxious. <<lharmony>> <br><br> <<destinationwolfcave>> <<else>> You look the Black Wolf right in the eyes and bare your <<if $transformationParts.traits.fangs isnot "disabled">>fangs<<else>>teeth<</if>>. <<bHis>> anger is wiped from <<bhis>> <<if $monster is 1>>face<<else>>muzzle<</if>> for a moment, but soon returns. <<bHe>> growls and lunges at you. <<if $monster is 1>> "I am alpha. I'll punish you." <</if>> <br><br> <<link [[Next|Wolf Cave Challenge]]>><<set $molestationstart to 1>><</link>> <br> <</if>><<if $sexstart is 1>> <<set $sexstart to 0>> <<consensual>> <<set $consensual to 1>> <<neutral 1>> <<beastCombatInit>> <<if $phase is 0>> You reach beneath the <<beasttype>> and take it in your hand. <<npchand>><<deviancy1>> <<elseif $phase is 2>> <<clothesstrip>><<deviancy5>> You bend forward, assuming a submissive stance on your hands and knees, before bringing your shoulders down to stick your butt up and leave your <<print ($player.vaginaExist ? '<<pussy>>' : 'anus')>> exposed to the <<beasttype>>. <<bHe>> bears down on you, keeping you grounded under <<bhis>> massive size. <<npc_attempt_sex>> <<set $position to "doggy">> <<set $position_lock to 1>> <<set $NPCList[0].location.head to "head">> <<set $NPCList[0].location.genitals to "genitals">> <<elseif $phase is 3>> <<clothesstrip>><<deviancy5>> You draw closer to the Black Wolf, bringing your mouth closer to <<bhis>> dark fur. You attempt to place a playful bite on <<bhim>> but the Black Wolf puts <<bhis>> <<if $NPCList[0].monster>>hand<<else>>paw<</if>> on your chest, before driving you down onto the ground with little to no effort. <<bHis>> overwhelming weight and size leaves you with few other options. <<npc_attempt_sex>> <<set $position to "missionary">> <<set $position_lock to 1>> <<set $NPCList[0].location.head to "head">> <<set $NPCList[0].location.genitals to "genitals">> <<else>> You lean beneath the <<beasttype>>. <<npcoral>><<deviancy4>> <</if>> <<blackwolfhealth>><<set $enemytrust -= 20>> <!--Prevents the mate event from occurring back to back with Black Wolf sex--> <<set $daily.blackWolfHeatEvent to Time.hour>> <<elseif $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<beastCombatInit>> <<blackwolfhealth>><<set $enemytrust -= 40>> <</if>> <<effects>> <<effectsman>> <br> <<beast $enemyno>> <br><br> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Wolf Cave Black Wolf Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Wolf Cave Black Wolf]]>><</link>></span><<nexttext>> <</if>><<set $location to "wolf_cave">><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<if $phase is 3 and $orgasmcurrent is 0 and $NPCList[0].vagina is "penis">> <<set _forcedOrgasm to true>> <<set $orgasmdown to 3>> <</if>> <<beastejaculation>> <br> <<if _forcedOrgasm>> Despite having an orgasm, the Black Wolf continues pleasuring your <<penis>>. <<set $penisuse to "othervagina">> <<orgasm>> <</if>> <<clotheson>> <<endcombat>> <<beastNEWinit 2 wolf>> The Black Wolf calms down. The other <<beastsplural>> look grateful and relieved. <<wolfpacktrust>><<gharmony>> <br><br> <<endevent>> <<tearful>> you climb to your feet. <br><br> <<destinationwolfcave>> <<elseif $enemyhealth lte 0>> <<if $wolfpackleader is 1>> The Black Wolf limps away from you. The pack looks relieved. <<gharmony>> <br><br> <<else>> The whole pack watches as the Black Wolf rolls onto <<bhis>> back in submission. <br><br> <<tearful>> you howl. The other <<wolf_cave_plural>> howl with you. <<if $monster is 1>> The Black Wolf speaks. "You're... strong. Stronger than Black Wolf. I knew taking you was right choice." <</if>> The Black Wolf hobbles away to nurse <<bhis>> injuries. <span class="gold">You can now lead the pack on hunts.</span> <<set $wolfpackleader to 1>><<earnFeat "Head of the Pack">> <br><br> <</if>> <<clotheson>> <<endcombat>> <<destinationwolfcave>> <<else>> The Black Wolf stops bothering you, but continues to bite and growl at the others. <<lharmony>> <br><br> <<tearful>> you climb to your feet. <br><br> <<clotheson>> <<endcombat>> <<destinationwolfcave>> <</if>><<if $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<beastCombatInit>> <<blackwolfhealth>><<set $enemyanger += 200>><<set $enemytrust -= 40>> <</if>> <<effects>> <<effectsman>> <br> <<beast $enemyno>> <br><br> <<stateman>> <br><br> <<actionsman>> <<if _combatend or ($pain gte 100 and $willpowerpain is 0)>> <span id="next"><<link [[Next|Wolf Cave Challenge Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Wolf Cave Challenge]]>><</link>></span><<nexttext>> <</if>><<set $location to "wolf_cave">><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<beastejaculation>> <br> The Black Wolf calms down. The other <<beastsplural>> look grateful and relieved. <<wolfpacktrust>><<gharmony>> <br><br> <<tearful>> you climb to your feet. <br><br> <<clotheson>> <<endcombat>> <<destinationwolfcave>> <<elseif $enemyhealth lte 0>> The whole pack watches as the Black Wolf rolls onto <<bhis>> back in submission. <br><br> <<tearful>> you howl. The other <<beastsplural>> howl with you. <<if $monster is 1>> The Black Wolf speaks. "You're... strong. Stronger than Black Wolf. I knew taking you was right choice." <</if>> The Black Wolf hobbles away to nurse its injuries. <span class="gold">You can now lead the pack on hunts.</span> <<set $wolfpackleader to 1>><<earnFeat "Head of the Pack">> <br><br> <<clotheson>> <<endcombat>> <<destinationwolfcave>> <<else>> You fall to the ground, unable to fight any longer. The Black Wolf grabs your neck<<if $monster isnot 1>> in its jaws<</if>> and holds you to the floor for a moment, then releases you.<<gtrauma>><<gstress>><<trauma 6>><<stress 6>> <br><br> <<if $monster is 1>> "<<pPackbrother>> weak. Should stay in <<pher>> place if know better." <<bHe>> sneers <<else>> <<bHe>> gives you a low, warning growl <</if>> before walking off. The other <<wolf_cave_plural>> follow in the footsteps of their alpha. <br><br> <<if $wolfpackpoisoned isnot 1>> <i>The Black Wolf is very strong. There must be a way to even things.</i> <br><br> <</if>> <<clotheson>> <<endcombat>> <<destinationwolfcave>> <</if>><<deviancy5>> <<if $phase is 1>> <<if $NPCList[0].monster>> You draw closer to the Black Wolf, bringing your mouth closer to <<bhis>> dark fur. You place a playful bite on <<bhim>>. You begin rubbing your head against <<bhim>> while you continue to bite at <<bhis>> body. "Very frisky today," <<bhe>> says. "<<pPackbrother>> must be in a rut." <br><br> <<bHe>> allows you to continue, but only for a few moments. After a while, the Black Wolf places <<bhis>> hand on your chest, before effortlessly pushing you down onto the ground. Before you have a chance to respond, <<bhe>> moves up and pins you down under <<bhis>> massive size. "<<pPackbrother>> wants breed? Will give breed," <<bhe>> says with a big, lustful smile. <<else>> You draw closer to the Black Wolf, bringing your mouth closer to <<bhis>> dark fur. You place a playful bite on <<bhim>>. You begin rubbing your head against <<bhim>> while you continue to bite at <<bhis>> body. Shortly after, <<bhe>> reciprocates your affection with a gentle bite of <<bhis>> own. <<bHe>> nuzzles you in return. <br><br> Your teasing continues, albeit briefly. The Black Wolf puts <<bhis>> paw on you, before driving you down onto the ground with little to no effort. <<bHe>> eyes you with lustful desire, <<bhis>> leering hinting at what's to come. The Black Wolf eases down on you, intent on mating. <<bHis>> overwhelming weight and size leaves you with few other options. <</if>> <<else>> You bend forward, assuming a submissive stance on your hands and knees, before bringing your shoulders down to stick your butt up and leave your <<print ($player.vaginaExist ? '<<pussy>>' : 'anus')>> exposed to the <<beasttype>>. You begin to whimper softly, demanding the Black Wolf's attention. <<if $NPCList[0].monster>> <br><br> "<<pPackbrother>> must be ready to mate," <<bhe>> says. "Will gladly help with that." <<bHe>> bears down on you, keeping you grounded under <<bhis>> massive size. <<else>> <br><br> <<bHe>> takes notice of your invitation, and draws near to sniff your groin. <<bHe>> seems to understand your intentions, and bears down on you, keeping you grounded under its massive size. <</if>> <</if>> <br><br> <<link [[Next|Wolf Cave Black Wolf Mate]]>><<set $sexstart to 1>><</link>><<if $sexstart is 1>> <<set $sexstart to 0>> <<consensual>> <<set $consensual to 1>> <<neutral 1>> <<beastCombatInit>> <<clothesstrip>> <<if $phase is 1>> <<set $position to "missionary">> <<set $position_lock to 1>> <<else>> <<set $position to "doggy">> <<set $position_lock to 1>> <</if>> <<npc_attempt_sex>> <<set $NPCList[0].location.head to "head">> <<set $NPCList[0].location.genitals to "genitals">> <<blackwolfhealth>> <</if>> <<effects>> <<effectsman>> <br> <<beast $enemyno>> <br><br> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Wolf Cave Black Wolf Mate Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Wolf Cave Black Wolf Mate]]>><</link>></span><<nexttext>> <</if>><<if $enemyarousal gte $enemyarousalmax and $phase is 1 and $NPCList[0].vagina is "penis">> <<if $orgasmcurrent is 0>> <<set _forcedOrgasm to true>> <<set $orgasmdown to 3>> <</if>> <<beastejaculation>> <br> <<if _forcedOrgasm>> Despite having an orgasm, the Black Wolf continues pleasuring your <<penis>>. <<set $penisuse to "othervagina">> <<orgasm>> <</if>> The Black Wolf pulls back once satisfied, having hardly broken a sweat. <<if $monster is 1>> "Tired already?" <<bhe>> taunts. "Guess <<ppackbrother>> doesn't want another go." <<bHe>> turns in place, before finally settling down to rest once again. "Felt very good." <<bHe>> turns to you. "Never felt as good and special as with <<ppackbrother>>, hope to birth some strong pups." <<else>> It turns around before slowly dropping it's body down to <<bhis>> settle upon <<bhis>> rock once again. Despite <<bhis>> apparently absent attitude, <<bhe>> seems genuinely satisfied and even relieved to have you with <<bhim>>. <</if>> <br><br> <<elseif $enemyarousal gte $enemyarousalmax and $phase is 0 and (($player.vaginaExist and $NPCList[0].penis is "vagina") or (!$player.vaginaExist and $NPCList[0].penis is "anus"))>> <<beastejaculation>> <br> The Black Wolf pulls back once satisfied, having hardly broken a sweat. <<if $monster is 1>> "Tired already?" <<bhe>> taunts. "Guess <<ppackbrother>> doesn't want another go." <<bHe>> turns in place, before finally settling down to rest once again. "Felt very good." <<bHe>> turns to you. "Never felt as good and special as with <<ppackbrother>>, hope you birth some strong pups." <<else>> It turns around before slowly dropping it's body down to <<bhis>> settle upon <<bhis>> rock once again. Despite <<bhis>> apparently absent attitude, <<bhe>> seems genuinely satisfied and even relieved to have you with <<bhim>>. <</if>> <br><br> <<elseif $enemyarousal gte $enemyarousalmax>> <<beastejaculation>> <br> The Black Wolf looks perplexed. <<if $monster is 1>> "Didn't you need to mate?" <<else>> <<bHe>> nudges your belly with <<bhis>> nose. <</if>> <br><br> <<else>> The Black Wolf looks perplexed. <<if $monster is 1>> "Didn't you need to mate?" <<else>> <<bHe>> nudges your belly with <<bhis>> nose. <</if>> <br><br> <</if>> You climb to your feet. <br> <<clotheson>> <<endcombat>> <<destinationwolfcave>><<set $location to "wolf_cave">><<effects>> <<if $phase is 0>> You rush over to the young <<beasttype>> and stroke <<bhis>> head. <<bHe>> rears up and licks your face. <<bHes>> fine, just upset by the fall. <<gharmony>><<lferocity>><<ltrauma>><<lstress>><<trauma -6>><<stress -12>> <br><br> <<destinationwolfcave>> <<else>> You ignore the young <<beasttype>>. <<bHe>> soon starts playing again. <<bHes>> fine. <<lharmony>><<gferocity>> <br><br> <<destinationwolfcave>> <</if>><<set $outside to 1>><<set $location to "wolf_cave">><<effects>> <<if $phase is 1>> <<set $phase to 0>> You search for plants long and sturdy enough to build an improvised garment. You find some suitable specimens and tie them together around your chest. It's fragile and revealing, but it's better than nothing. <<plantupper>> <br><br> <<elseif $phase is 2>><<set $phase to 0>> You search for plants long and sturdy enough to build an improvised garment. You find some suitable specimens and tie them together around your waist. It's fragile and revealing, but it's better than nothing. <<plantlower>> <br><br> <</if>> <<link [[Next|Wolf Cave Clearing]]>><</link>> <br><<set $outside to 0>><<set $location to "wolf_cave">><<effects>> You play fight with the young <<beasttype>>. <<bHe>> bites your arm and tries to drag you to the ground. When that fails, <<bhe>> bites your leg and tries there. <<bHes>> not very strong. <br><br> <<destinationwolfcave>><<if $sexstart is 1>> <<set $sexstart to 0>> <<consensual>> <<set $consensual to 1>> <<neutral 1>> <<beastCombatInit>> You adopt a mating posture and present yourself to the <<beasttype>>. <<deviancy2>><<set $enemytrust -= 20>> <<if $wolfpackharmony gte 1>> <<enable_rescue>> <</if>> <</if>> <<effects>> <<effectsman>> <<alarmstate "<span class='red'>The <<beastsplural>> are too busy thinking about themselves to help you.</span>">> <<beast $enemyno>> <br><br> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Wolf Cave Lewd Play Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Wolf Cave Lewd Play]]>><</link>></span><<nexttext>> <</if>><<set $location to "wolf_cave">><<effects>> <<if $enemyarousal gte $enemyarousalmax>> <<beastejaculation>> <br> The <<beasttype>> yawns and lies down.<<wolfpacktrust>> <br><br> <<tearful>> you climb to your feet. <br><br> <<clotheson>> <<endcombat>> <<elseif $enemyhealth lte 0>> The <<beasttype>> limps away from you. <br><br> <<tearful>> you climb to your feet. <br><br> <<clotheson>> <<endcombat>> <<elseif $rescue is 1 and $alarm is 1>><<set $rescued += 1>> The other <<beastsplural>> growl at the <<beasttype>> assaulting you. <<bHe>> growls back at first, but then backs down and leaves you alone. <<lharmony>> <br><br> <<tearful>> you climb to your feet. <br><br> <<clotheson>> <<endcombat>> <<else>> The <<beasttype>> yawns and lies down. <br><br> <<tearful>> you climb to your feet. <br><br> <<clotheson>> <<endcombat>> <</if>> <<destinationwolfcave>><<if $sexstart is 1>> <<set $sexstart to 0>> <<consensual>> <<set $consensual to 1>> <<neutral 1>> <<beastCombatInit>> <<beastTrainGenerate>> You shift your body to make things easier for the horny <<beasttype>>. <<deviancy1>><<set $enemytrust -= 20>> <<if $wolfpackharmony gte 1>> <<enable_rescue>> <</if>> <<elseif $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<beastCombatInit>> <<set $enemytrust -= 40>> <<if $wolfpackharmony gte 1>> <<enable_rescue>> <</if>> <</if>> <<effects>> <<effectsman>> <<alarmstate "<span class='red'>The <<wolf_cave_plural>> are too busy thinking about themselves to help you.</span>">> <<beast $enemyno>> <br><br> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Wolf Cave Fight Duo Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Wolf Cave Fight Duo]]>><</link>></span><<nexttext>> <</if>><<effects>> <<if $enemyhealth lte 0>> <<beastwound>> <<if $combatTrain.length gt 0>> The <<beasttype>> recoils in pain and fear, but the other is eager for a go. <<combatTrainAdvance>> <br><br> <<link [[Next|Wolf Cave Fight Duo]]>><</link>> <<else>> The <<beasttype>> recoils in pain and fear. <<combatTrainAdvance>> <br><br> <<link [[Next|Wolf Cave Fight Duo Finish]]>><<set $finish to 1>><</link>> <</if>> <<elseif $enemyarousal gte $enemyarousalmax>> <<beastejaculation>> <<if $combatTrain.length gt 0>> Satisfied, the <<beasttype>> moves and another takes its turn. <<wolfpacktrust>> <<combatTrainAdvance>> <br><br> <<link [[Next|Wolf Cave Fight Duo]]>><</link>> <<else>> Satisfied, the <<beasttype>> moves away from you. <<combatTrainAdvance>> <<wolfpacktrust>> <br><br> <<link [[Next|Wolf Cave Fight Duo Finish]]>><<set $finish to 1>><</link>> <</if>> <<else>> <<if $consensual is 1>> The <<beastsplural>> groom each other. <br><br> <<else>> <<if $enemywounded is 1 and $enemyejaculated is 0>> The <<beasttype>> whimpers and flees into the darkness between the trees. <<elseif $enemywounded is 0 and $enemyejaculated is 1>> The <<beasttype>> leaves you lying on the grass. <<elseif $enemywounded gte 2 and $enemyejaculated is 0>> Feeling that you're more trouble than you're worth, the <<beasttype 0>> and <<beasttype 1>> flee between the trees. <<elseif $enemywounded is 0 and $enemyejaculated gte 2>> The <<beasttype 0>> and <<beasttype 1>> leave you spent and shivering on the grass. <<elseif $enemywounded gte 1 and $enemyejaculated gte 1>> The <<beasttype 0>> and <<beasttype 1>> leave you spent and shivering on the grass. <</if>> <br><br> <</if>> <<tearful>> you gather yourself. <br><br> <<clotheson>> <<endcombat>> <<destinationwolfcave>> <</if>><<effects>> <<if $phase is 0>> You sit on a nearby log and watch the <<wolf_cave_plural>> howling lively into the crisp air. <<if $sciencetrait gte 3>> You think back to your biology lessons. Wolves can howl for a multitude of reasons, such as bonding, communicating positions, or warding off trespassers. <<else>> You are unsure as to why wolves howl together, but you're content with knowing that it must be a sign of a healthy and sociable pack. <</if>> <br><br> Seeing the pack united and willing to partake in such activities together brings you a feeling of contentment. <<stress -6>><<trauma -3>><<lstress>><<ltrauma>> <<else>> You take a spot in the middle of the noisy crowd. You take a deep breath, before shutting your eyes and raising your head to howl into the crisp forest air. <br><br> <<if $wolfgirl gte 6>> You let your wilder, primal senses take over. <span class="green">Your howling blends beautifully and naturally with that of your brethren.</span> The other <<wolf_cave_plural>> seem to accept you among them, content with letting you howl along with them as just another wolf of the pack. <<stress -12>><<trauma -12>><<llstress>><<lltrauma>> <<elseif $fox gte 6>> You join the rest of the <<wolf_cave_plural>>, letting your instincts take over. You manage some high-pitched yips and yowls, and it doesn't sound too out of place. The <<wolf_cave_plural>> seem to hesitantly accept you among them. <<stress -6>><<lstress>> <<elseif $harpy gte 6>> You join the rest of the <<wolf_cave_plural>>, or so you think. Your instincts take over, and your howling is instead more reminiscent of a cheerful singing. Your harmonic melodies clash with your brethren's howling, leaving them mildly exasperated. <<stress -3>><<lstress>> <<else>> Despite your best efforts, your <<if $cat gte 6>>yowling<<elseif $cow gte 6>>mooing<<else>>scratchy howling<</if>> doesn't seem to convince most of the <<wolf_cave_plural>>. Most don't seem to mind, but some of them are put off by your lacklustre attempts. <<stress -3>><<lstress>> <</if>> <</if>> <br><br> <<destinationwolfcave>><<effects>><<beastNEWinit 1 wolf>><<person1>> You approach the hunters who are resting in their usual spots in preparation for the upcoming hunt. <br><br> Feeling like you could do with a bit of exercise, you assume a belligerent position on all fours and bare your <<if $transformationParts.traits.fangs isnot "disabled">>fangs<<else>>teeth<</if>>. <br><br> One of the hunters, a <<beasttype>>, <<if $wolfpackharmony gte 10 and $wolfpackferocity gte 10>> answers your call to spar and prepares to fight. <<if $monster is 1>> "<<pPackbrother>> should not hold back!" <</if>> <<elseif $wolfpackharmony gte 10>> yawns and lazily walks over to answer your call to spar. <<if $monster is 1>> "Worse ways to kill time." <</if>> <<elseif $wolfpackferocity gte 10>> eagerly jumps up and answers your call to spar. <<if $monster is 1>> "<<pPackbrother>>, you will fall!" <</if>> <<elseif $wolfpackferocity gte 1>> huffs and walks over to you, answering your call to spar. <<if $monster is 1>> "This is fine." <</if>> <<else>> glances your way, before lying down. <<if $monster is 1>> <span class="red">"Cannot waste energy. No point."</span> <<else>> <span class="red"><<bHe>> doesn't have the energy to spare.</span> <</if>> <<set _reject to 1>> <</if>> <br><br> <<if _reject>> <<link [[Next|Wolf Cave Clearing]]>><</link>> <<else>> <<pass 20>><<stress -6>> <<link [[Go for heavy hits (0:10)|Wolf Cave Spar 2]]>><<set $phase to 0>><</link>><<physiquedifficulty 2000 $physiquemax>> <br> <<link [[Win by stamina (0:10)|Wolf Cave Spar 2]]>><<set $phase to 1>><</link>><<athleticsdifficulty 200 1000>> <br> <<link [[Outmanoeuvre <<bhim>> (0:10)|Wolf Cave Spar 2]]>><<set $phase to 2>><</link>><<dancedifficulty 200 1000>> <br> <</if>><<effects>> <<switch $phase>> <<case 0>> You try to overpower the <<beasttype>> with a few powerful hits, to end the fight quickly and decisively. The <<beasttype>> ducks under your first two swings, but <<if $physiqueSuccess>> <<set _victory to 1>> the third staggers <<bhim>> and the fourth <span class="green">sends <<bhim>> to the ground.</span> <<else>> you catch <<bhim>> with the third. <span class="red"><<bHe>> barely flinches.</span> <<bHe>> <<if $monster is 1>>kicks<<else>>charges into<</if>> your knees with force, and you crumple. <</if>> <<physique 2>> <<case 1>> You try to waste the <<beasttypes>> energy, while expanding as little of your own as possible. The <<beasttype>> lunges forward to attack, and you backpedal. <<bHe>> follows up with a charge, and you step to the side. <<if $athleticsSuccess>> <<set _victory to 1>> <span class="green"><<bHe>> pants, and you strike. <<bHes>> not able to dodge in time.</span> <<else>> <span class="red">Your foot catches a root.</span> You collapse to the ground, and <<bhes>> on you in an instant. With <<bhis>> <<if $monster is 1>>hand<<else>>jaws<</if>> wrapped around your throat, it's clear who the victor is. <</if>> <<athletics 1>> <<case 2>> You try to dance around <<bhim>>, getting in hits while avoiding all of <<bhers>>. <<if $danceSuccess>> <<set _victory to 1>> <span class="green">You find it easy to stave off your opponent's attacks.</span> You evade the <<beasttype>>'s pounce and deliver a decisive blow to <<bhis>> <<if $monster is 1>>face<<else>>muzzle<</if>>. <<else>> You're agile. <span class="red">But not as agile as <<bhim>>.</span> No matter how you try, you can't even land a single blow on <<bhim>>. It's clear <<bhes>> toying with you, and you drop to your knees in exhaustion and defeat. <</if>> <<physique 1>><<danceskill 2>> <</switch>> <<gtiredness>><<tiredness 12>> <<if !_victory>> <<pain 6>><<gpain>> <</if>> <<pass 10>> <br><br> <<if _victory>> <<if $wolfpackharmony gte 10>> Yelping from pain, the <<beasttype>> takes a few steps back before turning and presenting <<bhis>> backside to you. <<if $monster is 1>> "<<pPackbrother>> may take <<pher>> reward." <</if>> <br><br> <<if $settings.bestialityEnabled or $monster is 1>> <<if hasSexStat("deviancy", 3)>> <<link [[Accept the invitation|Wolf Cave Spar Sex]]>><<set $sexstart to 1>><<set $phase to 0>><</link>><<deviant3>> <<else>> <<insufficientStat "deviancy" "to accept such an offer">> <</if>> <br> <</if>> <<link [[Refuse|Wolf Cave Clearing]]>><<endevent>><</link>> <<elseif $wolfpackferocity gte 10>> Yelping from pain, the <<beasttype>> takes a few steps back and growls. <<bHe>> bares <<bhis>> fangs when you try to approach to make sure <<bhe>> isn't hurt. <<if $monster is 1>> "What else <<ppackbrother>> want? You won." <</if>> <br><br> <<link [[Next|Wolf Cave Clearing]]>><<endevent>><</link>> <<else>> Yelping from pain, the <<beasttype>> takes a few steps back before bowing <<bhis>> head and returning to <<bhis>> resting spot. <br><br> <<link [[Next|Wolf Cave Clearing]]>><<endevent>><</link>> <</if>> <<else>> <<if $wolfpackferocity gte 10>> The <<beasttype>> bares <<bhis>> fangs and pins you to the ground. <<bHes>> not satisfied with just beating you in a fight. <br><br> <<if $settings.bestialityEnabled or $monster is 1>> <<if hasSexStat("deviancy", 3)>> <<link [[Submit|Wolf Cave Spar Sex]]>><<set $sexstart to 1>><<set $phase to 1>><<sub 1>><</link>><<deviant3>> <br> <</if>> <<link [[Struggle|Wolf Cave Spar Sex]]>><<set $molestationstart to 1>><<def 1>><</link>> <<else>> You manage to squirm out from under its weight. It growls, snapping at your heels as you flee.<<beastescape>><<pass 5>> <br><br> <<link [[Next (0:05)|Wolf Cave Clearing]]>><<endevent>><</link>> <</if>> <<elseif $wolfpackharmony gte 10>> The <<beasttype>> lets out a satisfied chuff and nudges you with <<bhis>> <<if $monster is 1>>hand<<else>>nose<</if>>. <<bHis>> tail wags affectionately. <br><br> <<if hasSexStat("deviancy", 3) and ($settings.bestialityEnabled or $monster is 1)>> <<link [[Reward|Wolf Cave Spar Sex]]>><<set $sexstart to 1>><<set $phase to 2>><<sub 1>><</link>><<deviant3>> <br> <</if>> <<link [[Take a breather (0:05)|Wolf Cave Clearing]]>><<endevent>><<pass 5>><</link>> <<else>> The <<beasttype>> lets out a satisfied chuff and returns to <<bhis>> resting spot. <br><br> <<link [[Take a breather (0:05)|Wolf Cave Clearing]]>><<endevent>><<pass 5>><</link>> <</if>> <</if>><<if $sexstart is 1>> <<set $sexstart to 0>> <<consensual>> <<set $consensual to 1>> <<neutral 1>> <<beastCombatInit>> <<if $wolfpackharmony gte 1>> <<enable_rescue>> <</if>> <<if $phase is 1>> You decide that struggling will only lead to you getting hurt, so you show the <<beasttype>> that you're willing to cooperate. <<set $enemytrust -= 20>><<set $enemyanger += 20>> <<elseif $phase is 2>> You adopt a mating posture and present yourself to the <<beasttype>>. <<else>> You accept the <<beasttype>>'s invitation. <</if>> <<deviancy3>> <<elseif $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<beastCombatInit>> <<set $enemytrust -= 40>> <<if $wolfpackharmony gte 1>> <<enable_rescue>> <</if>> Not keen on letting the <<beasttype>> use you in this manner, you try to tackle <<bhim>> aside. <<bHe>> growls. <<if $monster is 1>> "<<pPackbrother>> lost! Now <<ppackbrother>> submits!" <</if>> <</if>> <<effects>> <<effectsman>> <<alarmstate "<span class='red'>The <<beastsplural>> are too busy thinking about themselves to help you.</span>">> <<beast $enemyno>> <br><br> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Wolf Cave Spar Sex Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Wolf Cave Spar Sex]]>><</link>></span><<nexttext>> <</if>><<if $enemyarousal gte $enemyarousalmax>> <<beastejaculation>> <br> The <<beasttype>> yawns and lies down.<<wolfpacktrust>> <<elseif $enemyhealth lte 0>> The <<beasttype>> limps away from you. <<if $monster is 1>>"<<pPackbrother>> won... in the end..."<</if>> <<elseif $rescue is 1 and $alarm is 1>><<set $rescued += 1>> The other <<beastsplural>> growl at the <<beasttype>> assaulting you. <<bHe>> growls back at first, but then backs down and leaves you alone. <<lharmony>> <<else>> The <<beasttype>> yawns and returns to where <<bhe>> was resting. <</if>> <br><br> <<tearful>> you climb to your feet. <br><br> <<clotheson>> <<endcombat>> <<link [[Next|Wolf Cave Clearing]]>><</link>><<effects>> You clamber atop the Black Wolf's rock, high enough that it can hear you speak. "Why don't you say hello?" you say. <br><br> The <<beasttype>> doesn't react at first. You drop from the rock. Only then does the Black Wolf move, jumping to the grass in a single bound. <<bHe>> walks into the forest. <<if $monster is 1>>"You frightened the pups," you hear. "It's funny—"<</if>> <<gharmony>> <br><br> <<destinationwolfcave>><<effects>> You leave them to their staring contest. <<gferocity>> <br><br> <<destinationwolfcave>><<effects>> <<if $phase is 1>> <<if speech_attitude is "meek">> "I-I'm sorry," you stammer. "But I tried my best, it wasn't my fault!" <<elseif speech_attitude is "bratty">> "Whatever!" you shout back. "It's not my fault you're all useless!" <<else>> "Calm down," you reply. "It wasn't my fault!" <</if>> <br><br> They continue to snarl at you despite your pleas. You decide to walk away and leave the pair of them behind. <br><br> <<elseif $phase is 2>> You ignore both of them and walk away, leaving the snarling pair behind. <br><br> <</if>> Their noises grow quieter as you gain distance. You eventually stop hearing them completely. <<gferocity>><<lharmony>> <br><br> <<endevent>> <<destinationwolfcave>><<effects>> The situation is funny enough that it makes you laugh. Some of the tension aggravating you melts away.<<lltrauma>><<llstress>><<trauma -24>><<stress -24>> <br><br> <<if $speech_attitude is "meek">> "It's very cute," you say. "I'm glad you showed me." <<elseif $speech_attitude is "bratty">> "You're so weird." You laugh. "Good <<if C.npc["Black Wolf"].pronoun is "m">>boy<<else>>girl<</if>>." <<else>> "Thanks," you say. "That's kind of you." <</if>> <br><br> <<if $monster is 1>> <<if C.npc["Black Wolf"].love gte 10>> "Pack feels happier when you're happy," <<bhe>> states while wagging <<bhis>> tail. <<else>> "Pack is stronger when everyone's happy," <<bhe>> states with a nod. <</if>> <<else>> <<if C.npc["Black Wolf"].love gte 10>> Emboldened by your display of gratitude, the wolf walks over you to nuzzle against your face. You laugh while protecting the baby rabbit from <<bhis>> clumsy paws with your hands. <<else>> The wolf simply watches you intensely before breaking eye contact. <</if>> <</if>> <br><br> You tentatively pet the rabbit. It shivers under your touch but does not recoil. You spend some time with your gift before asking the Black Wolf to take it back. Sadly, you do not think taking in a rabbit pet among a wolf pack could end without tragedy. It's better to set it free.<<ltrauma>><<trauma -4>> <br><br> <<link [[Next|Wolf Cave Clearing]]>><<endevent>><</link>><<effects>> <<if $outside>> You are in the wolf cave. The ceiling hangs low. There's a breeze blowing from the back. <<else>> You are in the clearing outside the wolf cave. A stream runs by. <</if>> Most of the pack is out hunting. Younger members of the pack growl and snap at each other, practising their fighting. <br><br> An alarmed yelp <<if $outside>>outside<<else>>from the treeline<</if>> attracts your attention. <br><br> <<link [[Investigate|Wolf Cave Bear 2]]>><<set $phase to 0>><</link>><br> <<link [[Ignore|Wolf Cave Bear 2]]>><<set $phase to 1>><</link>><br><<effects>> <<beastNEWinit 1 bear>><<person1>> <<if $phase is 1>> The <<wolf_cave_plural>> are probably just play-fighting. You decide to ignore the noise and continue with what you were doing. This doesn't last long. A large shadow falls over you, and the yelping and growling gets louder. The owner of the shadow bumps into you and groans. <br><br> You turn to find yourself face-to-face with a <<beasttype>>. The creature has been backed up into you by the <<wolf_cave_plural>> trying to drive <<bhim>> away. <<bHe>> shifts <<bhis>> attention to you and growls. <<if $wolfpackleader gte 1>> <br><br> <<if $settings.monsterChance gt 0 and ($hallucinations gte 1 or !$settings.monsterHallucinationsOnly)>> You hear <<wolf_cave_plural>> calling out for you to deal with <<bhim>><<if $settings.monsterChance lt 100>>, alongside whines and growls of encouragement<</if>>. <<else>> You hear whines and growls of encouragement. <</if>> The pack wants you to fight. <</if>> <<else>> Curious as to the cause of the commotion, <<if $outside is 1>> you make your way over to a group of pups by the trees and <<else>> you leave the cave and <</if>> immediately spot a group of agitated young <<wolf_cave_plural>>. You jog over. <br><br> <<set $outside to 1>> As you draw close, you make out the hulking form that has the group snarling. A <<beasttype>> growls and swipes at one of the <<wolf_cave_plural>> that surround <<bhim>>. <<if $monster is 1>> <br><br> "Loud <<wolf_cave_plural>>," the <<beasttype>> huffs out, "disturb my sleep when hunting. Should teach you all to stay quiet." <</if>> <<if $wolfpackleader gte 1>> <br><br> <<generateBEAST 2 wolf>><<person2>> A <<beasttype 1>> backs up to where you stand. <<if $NPCList[1].monster is "monster">> "Do something!" <<else>> <<bHe>> whines, looking up at you with pleading eyes. <</if>> The pack wants you to fight. <<person1>><<clearsinglenpc 2>> <</if>> <</if>> <br><br> <<set $bus to "wolfcaveclearing">> /* when event is resolved, player will be deposited in the clearing regardless of where they started */ <<link [[Try to calm the <<beasttype>>|Wolf Cave Bear Calm]]>><</link>><<tendingdifficulty 600 1200>><br> <<if $monster is 1 or $settings.bestialityEnabled>> <<link [[Fight|Wolf Cave Bear Fight]]>><<set $phase to 0>><<set $molestationstart to 1>><</link>><br> <<else>> <<link [[Fight|Wolf Cave Bear Fight Finish]]>><<set $phase to 1>><</link>><br> /* autoresolve */ <</if>><<effects>> <<if $speech_attitude is "meek">> "D-did we upset you somehow? That isn't very g-good of us. Please, let us make it up to you." You pick a bone up off the ground, a remnant from the pack's last hunt, and show it to the <<beasttype>>. "S-some of our next hunt, maybe?" <<elseif $speech_attitude is "bratty">> "Hey man, calm down! You don't think that we can come to a deal?" You pick a bone up off the ground, a remnant from the pack's last hunt, and wave it in the air. "If we give you a cut of our next hunt, will that make you happy? Think about it, a big juicy cut of meat. Sounds good, big <<if $NPCList[0].pronoun is "m">>guy<<else>>gal<</if>>?" <<else>> "I'm sorry that you're upset," you begin. "Are you sure we can't find a way to make you happy?" You pick a bone up off the ground, a remnant from the pack's last hunt, and hold it up in the air. "Maybe we can give you a big cut of our next hunt?" <</if>> <br><br> <<if $tendingSuccess>> <<if $monster is 1>> The <<beasttype>> considers the picked-over bone. "Good deal," <<bhe>> huffs out. "Food is good. Make me plump for winter." <<else>> The <<beasttype>> sniffs the picked-over bone and huffs in agreement. <<bHe>> seems to accept your deal. <</if>> <br><br> You hold your breath until the <<beasttype>> leaves. You hope that <<bhe>> won't return. The tension vanishes as the pack resumes play-fighting. <<gharmony>> <br><br> <<destinationwolfcave>> <<else>> Your words only seem to enrage <<bhim>> further. With a snarl, the <<beasttype>> leaps forwards, intent on taking <<bhis>> anger out on you. <br><br> <<if $monster is 1 or $settings.bestialityEnabled>> <<link [[Fight|Wolf Cave Bear Fight]]>><<set $phase to 0>><<set $molestationstart to 1>><</link>><br> <<else>> <<link [[Fight|Wolf Cave Bear Fight Finish]]>><<set $phase to 1>><</link>><br> /* autoresolve */ <</if>> <</if>><<if $molestationstart is 1>> <<set $molestationstart to 0>> <<controlloss>> <<violence 1>> <<neutral 1>> <<molested>> <<beastCombatInit>> <<npcidlegenitals>> <<set $enemyanger to 200>> <<set $enemytrust -= 40>> Letting out a loud yell, you pounce forwards, intent on defending your home. <</if>> <<effects>> <<effectsman>> <<alarmstate '<span class="red">The <<wolf_cave_plural>> aren\'t willing to join the fray.</span>'>> <br><br> <<beast $enemyno>> <br><br> <<stateman>> <br><br> <<actionsman>> <<if _combatend>> <span id="next"><<link [[Next|Wolf Cave Bear Fight Finish]]>><</link>></span><<nexttext>> <<else>> <span id="next"><<link [[Next|Wolf Cave Bear Fight]]>><</link>></span><<nexttext>> <</if>><<effects>> <<if $enemyhealth lte 0 or $phase is 1>> With a scream, you kick out at the <<beasttype>>'s face, landing a strong hit. <<bHe>> lets out an equally loud <<if $monster is 1>>yell<<else>>roar<</if>> as <<bhe>> rears back. The pack snarls in delight at your victory. <<if $phase is 1>> /* autoresolve */ However, the exertion leaves you worse for wear. <<beastescape>> <</if>> <br><br> Cautious and wounded, the <<beasttype>> backs away from you and the <<wolf_cave_plural>> who circle around you, growing more confident and aggressive. <<if $monster is 1>> "Too strong. Stronger than thought," <<bhe>> breathes out, <<else>> <<bHe>> lets out a scared growl <</if>> before turning tail and fleeing. <<gferocity>> <<elseif $enemyarousal gte $enemyarousalmax>> <<beastejaculation>> The <<beasttype>> lets out a satisfied noise and pulls away from you. <<if $monster>> "Noises forgotten. I will go home now." <</if>> <<bHe>> nuzzles at your face before turning and lumbering off, leaving you on the ground. <br><br> The <<wolf_cave_plural>> seem disappointed, but relieved that no one got hurt. <</if>> <br><br> <<clotheson>> <<endcombat>> <<destinationwolfcave>><<effects>> You open your mouth, letting the Black Wolf invade your mouth with <<bhis>> large tongue. <<bHe>> circles your mouth, tasting you, before withdrawing.<<takeKissVirginity "Black Wolf" `($syndromewolves?"loveInterest":"consensual")`>> <br><br> <<bHe>> walks away as if nothing happened. <br><br> <<endevent>> <<destinationwolfcave>><<effects>> You pet the Black Wolf's head as <<bhe>> continues licking your face, as if tasting you. <<bHe>> tires of <<bhis>> assault after a few moments, and walks away as if nothing happened. <br><br> <<endevent>> <<destinationwolfcave>><<effects>> You endure the Black Wolf's assault as <<bhe>> continues licking your face, as if tasting you. <<bHe>> tires after a few moments, and walks away as if nothing happened. <br><br> <<endevent>> <<destinationwolfcave>><<effects>> What would you like to give the Black Wolf? <br><br> <<food_gift_list>> <<if _food_gift_found is true>> <<skinicon "give">><<link [[Give gift (0:05)|Black Wolf Gifts]]>><<pass 5>><<give_gift "Black Wolf">><</link>> <br> <</if>> <<refuseicon>><<link [[Reconsider|Black Wolf Gifts Reconsider]]>><</link>> <br><<effects>> The Black Wolf sniffs the air. <br><br> <<link [[Next|Wolf Relax]]>><</link>> <br><<effects>> <<set _gift to $gift.handheld_gift || $gift.handheld>> <<wearProp _gift>> <<if $phase is 1>> "I've brought you something," you say. <<elseif $phase is 2>> "I made something," you say. "Just for you." <<else>> "I've made you a gift," you say. "I hope you like it." <</if>> <br><br> <<if $gift.special.includes("carnivore")>> The Black Wolf looks at the <<recipe_name $gift.name>> with predatory eyes. <<bHe>> sniffs, then leaps at it, knocking you off your feet. <<bHe>> devours the meal in seconds.<<glove>><<npcincr "Black Wolf" love 1>> <br><br> <<if $monster gte 1>> <<bHe>> licks <<bhis>> lips. "Tender," <<bhe>> says. "Sweet. No blood. Strange, but I like it." <<else>> <<bHe>> licks <<bhis>> lips, then your face, with approval. <</if>> <br><br> The Black Wolf lies down, contented. <br><br> <<saveFavoriteFood "Black Wolf" $gift.name>> <<earnFeat "Encroaching Civilisation">> <<elseif $gift.special.includes("drink")>> The Black Wolf looks at the <<recipe_name $gift.name>> with predatory eyes. <<bHe>> sniffs, then sticks <<bhis>> tongue in. <<bHe>> laps up the drink, knocking the vessel over in <<bhis>> eagerness, but <<bhe>> seems happy enough to lick it off the floor.<<glove>><<npcincr "Black Wolf" love 1>> <br><br> <<if $monster gte 1>> "Tasty," <<bhe>> says. "Town water? Don't tell others. They'd take dangerous risks." <<else>> <<bHe>> licks your face, in thanks, when finished. <</if>> <br><br> The Black Wolf lies down, contented. <br><br> <<saveFavoriteFood "Black Wolf" $gift.name>> <<earnFeat "Encroaching Civilisation">> <<else>> The Black Wolf looks at the <<recipe_name $gift.name>> with predatory eyes. <<bHe>> sniffs, then leaps at it, knocking you off your feet. <<bHe>> bites into the meal, then spits it out, and growls at you. <br><br> <<if $monster gte 1>> "That's not food," <<bhe>> says. "It's got plants in it. You tricked me." <<else>> <span class="blue">Perhaps <<bhe>> wants something fit for a carnivore.</span> <</if>> <br><br> <<bHe>> lies down, and sulks. <br><br> <</if>> <<link [[Next|Wolf Relax]]>><<handheldon>><</link>> <br><<effects>><<beastNEWinit 2 wolf>> <<unset $halloween_lake>><<unset $halloweenWolves>> You approach the noisy mob of wolves. They've gathered around a distressed and injured member. It's the <<beasttype 0>> you saw at the lake being attacked by students. <br><br> <<if $monster is 1>> The Black Wolf rushes to the scene, shoving the others aside. "Move, stand back!" <<nnpc_he "Black Wolf">> yells. <<nnpc_His "Black Wolf">> eyes widen in shock after seeing the <<beasttype 0>>. The Black Wolf carries a look of concern, but tries <<nnpc_his "Black Wolf">> best to hide it. "What has happened to pack sibling?" <br><br> "Was hungry, looking for scraps at... lake." <<bHe 0>> admits ashamed. "Humans saw and attacked. Some followed while ran away..." <<bhe>> says, still shaken from the encounter. <br><br> "Pack not supposed to tread lake!" the Black Wolf protests. "Why would sibling disobey orders?" <<nnpc_Hes "Black Wolf">> beside <<nnpc_himself "Black Wolf">> with anger. "Humans attack sibling, and now walking into pack territory," <<nnpc_he "Black Wolf">> growls. "Must teach lesson!" <<else>> The Black Wolf rushes to the scene, shoving the others aside. <<bHis>> eyes widen in shock after seeing the <<beasttype 0>>. You spot what seems to be a look of concern on the Black Wolf's posture. <<nnpc_He "Black Wolf">> draws closer to inspect the wolf. <br><br> Upon closer inspection, you notice that the <<beasttype 0>> has a minor injury over <<bhis>> side, no doubt from <<bhis>> run in with the students. The bruise doesn't seem very concerning, so the animal is most likely just spooked. <br><br> The Black Wolf catches on to the scent lingering over the <<beasttype 0>> and growls furiously in response. <<nnpc_He "Black Wolf">> must be aware that this is the work of a human. The Black Wolf rises up and marches on in the direction of the lake. <</if>> <br><br> <<link [[Next|Wolf Halloween 2]]>><</link>><<effects>> <<if $monster is 1>> Before the Black Wolf has a chance to leave, a younger <<beasttype 1>> stands in the way and embraces <<bhim>>. "Black Wolf stay!" <<bhe>> pleads. "Must protect pack!" The Black Wolf stops for a moment and considers. <<nnpc_His "Black Wolf">> demeanour changes, and <<nnpc_he "Black Wolf">> crouches down to soothe the trembling <<beasttype 1>>. <br><br> "Will go look for humans!" declares another <<beasttype 0>>. "Will teach not to intrude in pack territory!" <br><br> The Black Wolf nods in response, while seeing to the other member's state. <<nnpc_He "Black Wolf">> glances over at you, but says nothing. <<else>> Before the Black Wolf has a chance to leave, a younger <<beasttype 1>> stands in the way and snuggles <<nnpc_him "Black Wolf">>, nudging <<nnpc_him "Black Wolf">> with <<bhis 1>> snout. The youngster must be worried about the cave being left unprotected. The Black Wolf stops for a moment and considers. <<nnpc_His "Black Wolf">> demeanour changes, and <<nnpc_he "Black Wolf">> crouches down to soothe the trembling <<beasttype 1>>. <br><br> Another <<beasttype 0>> seems to have other plans. A small group of <<wolf_cave_plural>> gathers around it, intent on hunting down the responsible humans. <br><br> The Black Wolf seems satisfied with the proposition. <<bHe>> stays in order to see to the other member's state. <<bHe>> glances over at you curiously. <</if>> <br><br> <<if $pound and $pound.progress gte 6>> <<link [[Go with the hunting party|Wolf Halloween Dog]]>><</link>> <<else>> <<link [[Go with the hunting party|Wolf Halloween 3]]>><<set $phase to 0>><</link>> <</if>> <br> <<link [[Stay at the cave|Wolf Halloween Stay]]>><</link>><<effects>> You shake your head and walk away from the group. The <<beasttype 0>> huffs, before taking off and disappearing into the night. A few other <<wolf_cave_plural>> follow the lead. <br><br> <<destinationwolfcave>><<effects>><<loadNPC 2 "black_dog">> You join the group of <<wolf_cave_plural>>. <<if $monster is 1>> "Glad to have <<ppackbrothers>> help," <<bhe>> says. <<else>> They seem glad to have you at their side. <</if>> <br><br> As the party prepares to leave, you spot a large looming figure appear from behind the bushes. It's the Black Dog. <<if $monster is 1>> "If going after humans, should let me follow," <<bhe 2>> declares. "Saved from them once, allow to return favour." A hint of apprehension betrays <<bhis 2>> seemingly determined attitude. <<else>> You wonder if the dog may feel an odd sense of gratitude towards you for saving <<bhim 2>> from the pound. It may prove advantageous to have more help during the expedition. <</if>> <br><br> <<link [[Accept|Wolf Halloween 3]]>><<set $phase to 1>><</link>> <br> <<link [[Decline|Wolf Halloween 3]]>><<set $phase to 2>><</link>><<effects>> <<if $phase is 0>> <<endevent>><<beastNEWinit 3 wolf>> You join the group of <<wolf_cave_plural>>. <<if $monster is 1>> "Glad to have <<ppackbrothers>> help," <<bhe>> says. <<else>> They seem glad to have you at their side. <</if>> <<elseif $phase is 1>> <<set $blackDog to true>> You nod at the Black Dog, prompting <<bhim 2>> to join the party. "Have dealt with humans before, know what pack will face," <<bhe 2>> comments. <<elseif $phase is 2>> You reach out to the Black Dog, signalling <<bhim 2>> to stay. The dog gives you a worried look, but nods in response. You gather the rest of the <<wolf_cave_plural>> and venture out. <</if>> <br><br> <<generateyv4>><<generateyv5>><<generateyv6>> You walk through the forest along with <<if $blackDog>>the Black Dog and<</if>> the rest of the <<wolf_cave_plural>>. A more well-seasoned <<beasttype 0>> follows a set of tracks for the others to follow. <br><br> Your group suddenly comes to a halt. Despite your disadvantage in tracking skills, you hear the echoing of laughter while the smell of beer hangs in the air. The students from the lake must be nearby. You sneak through the bushes and spot three people around your age. They can be heard bantering and laughing loudly to one another. <br><br> "You're a real bastard, you know that?" says a <<person4>><<person>> wearing a scarecrow costume. <br><br> "Oh, shut your mouth, that fucking mutt was going to attack us. I'm a bloody hero!" answers the <<person5>><<person>> through <<his>> robot helmet. <br><br> "It looked just like my dog, I wanted to pet it!" adds a <<person6>><<person>> donning a lion onesie. <br><br> The <<group>> chatter amongst themselves, completely unaware to your presence. <br><br> <<link [[Confront|Wolf Halloween 4]]>><<set $phase to 0>><</link>> <br> <<link [[Warn|Wolf Halloween 4]]>><<set $phase to 1>><</link>><<effects>> You creep around the unaware partygoers, stepping out of the bushes to meet them face to face. <<if $phase is 0>> <<if $speech_attitude is "meek">> "H-Hey you...! Stop!" <<elseif $speech_attitude is "bratty">> "Hey assholes, listen here!" <<else>> "Hold it right there, you lot!" <</if>> you shout. <br><br> The trio is startled for a moment, before setting their eyes on you and laughing in relief. "What's this dumb slut doing here?" the <<person5>><<person>> chuckles. <br><br> "You lost?" asks the <<person4>><<person>>. "You cute little thing. Come with us, we'll keep you company." <br><br> <<if $speech_attitude is "meek">> "You three... You're so mean!" you say. "Now we're going to teach you a lesson!" <<elseif $speech_attitude is "bratty">> "You fuckers never should have come here," you spit. "We're pissed now, and we want payback!" <<else>> "Attacking a defenceless animal was a huge mistake," you say. "We're here to get even!" <</if>> <br><br> They stare at you in a mix of confusion and anger. The <<person5>><<person>> laughs. "Who is <i>we</i>, slut?" <<elseif $phase is 1>> <<if $speech_attitude is "meek">> "You guys really messed up..." you say. "T-They are so mad now. You should have just run!" <<elseif $speech_attitude is "bratty">> "You three are knee deep in it now," you say. "They're fucking pissed, not sure if I can help you now..." <<else>> "You've really done it now," you say. "They're fuming right now. They'll want to teach you a lesson." <</if>> <br><br> "They?" asks the <<person5>><<person>>. "Are you threatening us, slut? Who is they?" <</if>> <br><br> <<link [[Next|Wolf Halloween 5]]>><</link>><<effects>> <<if $blackDog>> The <<person4>><<person>> moves closer, but is immediately flanked by the Black Dog. The <<beasttype 2>> has no trouble throwing the teen to the ground. <<else>> The <<person4>><<person>> moves closer, but is immediately jumped by a <<beasttype 1>>. The beast catches the student by surprise, and drives <<person4>><<him>> down onto the ground. <</if>> <br><br> The other two students yell. The <<person6>><<person>> reaches for a rock in the ground. As <<he>> winds for a throw, <<his>> arm is caught in the maws of a <<beasttype 0>> emerging from the bushes. They tussle for a moment, before the <<beasttype 0>> manages to wrestle <<person6>><<him>> to the floor. <br><br> "Call someone, go get some help please!" they shout to the <<person5>><<person>>. <<He>> comes to <<his>> senses and makes a run for it, before being cut off by two other pack members. The <<person>> freezes in place. <br><br> The three are rounded up together. The pack circles around them with an anger they can barely contain. <br><br> <<link [[Leave them with a warning|Wolf Halloween 6]]>><<set $phase to 0>><</link>> <br> <<link [[Tease them|Wolf Halloween 6]]>><<set $phase